diff --git a/README.md b/README.md index 4d489e9..0a7d1ac 100644 --- a/README.md +++ b/README.md @@ -234,24 +234,34 @@ export default { ``` -## 支持作者 +# 我要支持作者 -### 掘金小册 +开发这样一个复杂的预览库,需要投入很多的个人时间,作者经常在周末、节假日进行该项目的开发,付出很多精力,如果该项目帮到了您,还请您不吝打赏。 + +![](https://501351981.github.io/vue-office/examples/dist/static/wx.png) + + +## 为什么没有开放源码(打赏50+送源码) + +我们都知道,如果一件事情没有收益,那是很难长久的,特别是对于一个大龄程序员来说,花费大量的时间"用爱发电"对大家来说是非常值得尊敬的,而我感觉对家庭来说可能是不道德的,没有收益,没有正反馈,很难把这个库完善下去,我们也看到了,很多开源库已经多年没有更新了。为了后续开发出更好用的前端office文件预览库,本项目需要大家的支持! + +源码需付费向作者索要(_**打赏50**+_),打赏用户(无论多少)均可添加作者微信,交流该库或者前端领域话题,源码不得用于开源(这也是关闭源码的原因之一,有些人直接复制开源作为自己项目)。 + + +## excel预览库众筹中 + +当前excel预览库还不完善,如果能得到大家的支持,后续准备从头开发一个更好用的excel预览库。 + +支持本次众筹参与方式:打赏50+,添加作者微信,并备注(众筹支持) + +您将获得: +- 免费获取作者自研的pptx文件预览库源码(企业购买需5k+) +- 后续开发的excel预览库源码(源码不会在github开放,仅通过微信发送给打赏用户) +- 可选择加入高质量前端交流群 +- 与作者日常前端问题交流 + +本次众筹金额达到5k+(100位朋友支持)则会启动 Excel预览库的自研设计与开发。 + +## 掘金小册 我的掘金小册[《如何写出高质量的前端代码》](https://juejin.cn/book/7351005935306801188) 已经上线啦,欢迎前端同学关注,希望能够提升大家的前端编码水平。 - -### 打赏支持 - -**如果该项目帮您节省了开发时间**,可以请作者喝杯咖啡,加微信交个朋友,交流前端问题。不能打赏的朋友麻烦帮点个免费的赞 - -赞助二维码 - -## 打赏50及以上可向作者索要源码(仅限自己项目使用,不能复制开源) - -打赏的朋友欢迎**添加微信**,交流前端开发中遇到的技术、问题和困惑。 - ->【**仅添加**打赏过的用户,不定期删除屏蔽朋友圈的好友(为什么打赏了才能微信问问题?那别人为什么要先付出时间去解答你的问题?都是成年人了,人与人之间是价值交换,不是单向付出)】 -> [常见问题](https://501351981.github.io/vue-office/examples/docs/guide/faq.html) - -个人微信 - diff --git a/examples/dist/assets/DocxDemo-821b74b0.js b/examples/dist/assets/DocxDemo-821b74b0.js new file mode 100644 index 0000000..926e4a6 --- /dev/null +++ b/examples/dist/assets/DocxDemo-821b74b0.js @@ -0,0 +1 @@ +import{d as r}from"./docx-7f17a379.js";import{d as p}from"./url-065d6777.js";import{d as x,_ as l,r as _,o as h,w as v,a as m,c as g,b as D,e as w,f as y,g as O,u as B}from"./index-b9f20394.js";import{P as R,u}from"./PreviewWrapper-b82be9e1.js";import"./jszip.min-e66ecff9.js";import"./_commonjs-dynamic-modules-302442b1.js";typeof window.setImmediate>"u"&&(window.setImmediate=function(e,...o){setTimeout(()=>e(o))});const $=x({name:"VueOfficeDocx",props:{src:[String,ArrayBuffer,Blob],requestOptions:{type:Object,default:()=>({})},options:{type:Object,default:()=>({})}},emits:["rendered","error"],setup(e,{emit:o}){const n=_(null);let c=null;function a(){let t=n.value;r.getData(e.src,e.requestOptions).then(async i=>{c=await r.getBlob(i),r.render(c,t,e.options).then(()=>{o("rendered")}).catch(f=>{r.render("",t,e.options),o("error",f)})}).catch(i=>{r.render("",t,e.options),o("error",i)})}h(()=>{e.src&&a()}),v(()=>e.src,()=>{e.src?a():r.render("",n.value,e.options).then(()=>{o("rendered")})});function s(t){p(t||`vue-office-docx-${new Date().getTime()}.docx`,c)}return{rootRef:n,save:s}}}),b={class:"vue-office-docx"},V={class:"vue-office-docx-main",ref:"rootRef"};function k(e,o,n,c,a,s){return m(),g("div",b,[D("div",V,null,512)])}const d=l($,[["render",k]]);d.install=function(e){e.component(d.name,d)};const q={__name:"DocxDemo",setup(e){function o(){u.hideLoading()}function n(t){console.log("出差",t),u.hideLoading()}const c=location.origin+(location.pathname+"/").replace("//","/")+"static/test-files/test.docx",a=_(),s={headers:{"component-name":"VueOfficeDocx"}};return(t,i)=>(m(),w(R,{accept:".docx",placeholder:"请输入docx文件地址","default-src":c},{default:y(f=>[O(B(d),{ref_key:"docxRef",ref:a,src:f.src,"request-options":s,style:{flex:"1",height:"0"},onRendered:o,onError:n},null,8,["src"])]),_:1}))}},P=l(q,[["__scopeId","data-v-844ea5ef"]]);export{P as default}; diff --git a/examples/dist/assets/ExcelDemo-961dc2bd.js b/examples/dist/assets/ExcelDemo-961dc2bd.js new file mode 100644 index 0000000..4e609c8 --- /dev/null +++ b/examples/dist/assets/ExcelDemo-961dc2bd.js @@ -0,0 +1 @@ +import{r as $,S as L,a as b,g as C,b as q,t as F,c as E}from"./hack-bf966667.js";import{l as V}from"./lodash-1ce1e4ec.js";import{d as W}from"./url-065d6777.js";import{d as j,_ as M,r as S,o as N,n as A,h as H,w as P,a as T,c as U,b as z,i as G,e as J,f as K,j as Q,g as X,u as Y}from"./index-b9f20394.js";import{P as Z,u as O}from"./PreviewWrapper-b82be9e1.js";import"./_commonjs-dynamic-modules-302442b1.js";const k={xls:!1,minColLength:20},ee=j({name:"VueOfficeExcel",props:{src:[String,ArrayBuffer,Blob],requestOptions:{type:Object,default:()=>({})},options:{type:Object,default:()=>({...k})}},emits:["rendered","error","switchSheet","cellSelected","cellsSelected"],setup(e,{emit:n}){const u=S(null),f=S(null);let a={_worksheets:[]},r=[],h=0,x=null,t=null,w=null,o=null;function d(_){o=_,q(_,e.options.xls).then(i=>{if(!i._worksheets||i._worksheets.length===0)throw new Error("未获取到数据,可能文件格式不正确或文件已损坏");e.options.beforeTransformData&&typeof e.options.beforeTransformData=="function"&&(i=e.options.beforeTransformData(i));let{workbookData:m,medias:y,workbookSource:s}=F(i,{...k,...e.options});e.options.transformData&&typeof e.options.transformData=="function"&&(m=e.options.transformData(m)),r=y,a=s,w=null,h=0,E(),t.loadData(m),b(x,r,a._worksheets[h],w,e.options),n("rendered"),n("switchSheet",0)}).catch(i=>{console.warn(i),r=[],a={_worksheets:[]},E(),t&&t.loadData({}),n("error",i),n("switchSheet",0)})}const l=V.debounce($,200).bind(this,f.value),c=new MutationObserver(l),v={attributes:!0,childList:!0,subtree:!0};N(()=>{A(()=>{c.observe(f.value,v),l(f),t=new L(f.value,{mode:"read",showToolbar:!1,showContextmenu:e.options.showContextmenu||!1,view:{height:()=>u.value&&u.value.clientHeight||300,width:()=>u.value&&u.value.clientWidth||1200},row:{height:24,len:100},col:{len:26,width:80,indexWidth:60,minWidth:60},autoFocus:!1}).loadData({}),t.on("cell-selected",(s,p,D)=>{n("cellSelected",{cell:s,rowIndex:p,columnIndex:D})}),t.on("cells-selected",(s,{sri:p,sci:D,eri:I,eci:B})=>{n("cellsSelected",{cell:s,startRowIndex:p,startColumnIndex:D,endRowIndex:I,endColumnIndex:B})});let _=t.bottombar.swapFunc;t.bottombar.swapFunc=function(s){_.call(t.bottombar,s),h=s,setTimeout(()=>{t.reRender(),b(x,r,a._worksheets[h],w,e.options),n("switchSheet",s)})};let i=t.sheet.editor.clear;t.sheet.editor.clear=function(...s){i.apply(t.sheet.editor,s),setTimeout(()=>{b(x,r,a._worksheets[h],w,e.options)})};let m=t.sheet.editor.setOffset;t.sheet.editor.setOffset=function(...s){m.apply(t.sheet.editor,s),w=s[0],b(x,r,a._worksheets[h],w,e.options)},x=f.value.querySelector("canvas").getContext("2d"),e.src&&C(e.src,e.requestOptions).then(d).catch(s=>{r=[],a={_worksheets:[]},t.loadData({}),n("error",s)})})}),H(()=>{c.disconnect(),t=null}),P(()=>e.src,()=>{e.src?C(e.src,e.requestOptions).then(d).catch(_=>{r=[],a={_worksheets:[]},t.loadData({}),n("error",_)}):(r=[],a={_worksheets:[]},t.loadData({}),n("error",new Error("src属性不能为空")))});function R(_){W(_||`vue-office-excel-${new Date().getTime()}.xlsx`,o)}return{wrapperRef:u,rootRef:f,save:R}}}),te={class:"vue-office-excel",ref:"wrapperRef"},oe={class:"vue-office-excel-main",ref:"rootRef"};function se(e,n,u,f,a,r){return T(),U("div",te,[z("div",oe,null,512)],512)}const g=M(ee,[["render",se]]);g.install=function(e){e.component(g.name,g)};const fe={__name:"ExcelDemo",setup(e){function n(){O.hideLoading()}function u(o){console.log("出差",o),O.hideLoading()}function f(o){return console.log("transformData",o),o}const a=location.origin+(location.pathname+"/").replace("//","/")+"static/test-files/test.xlsx",r=S();function h(o){return console.log("beforeTransformData",o,r),o._worksheets.forEach(d=>{let l=0;if(d._rows[l]&&d._rows[l]._cells)for(let c=0;c{const l=G("loading");return T(),J(Z,{accept:".xlsx,.xls",placeholder:"请输入xlsx文件地址","default-src":a},{default:K(c=>[Q(X(Y(g),{ref_key:"docxRef",ref:r,src:c.src,options:{beforeTransformData:h,transformData:f,xls:c.xls},style:{flex:"1",height:"0"},onRendered:n,onError:u,onSwitchSheet:x,onCellSelected:t,onCellsSelected:w},null,8,["src","options"]),[[l,!0]])]),_:1})}}};export{fe as default}; diff --git a/examples/dist/assets/JsDocxDemo-8c9affec.js b/examples/dist/assets/JsDocxDemo-8c9affec.js new file mode 100644 index 0000000..270189b --- /dev/null +++ b/examples/dist/assets/JsDocxDemo-8c9affec.js @@ -0,0 +1 @@ +var p=Object.defineProperty;var c=(i,e,t)=>e in i?p(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var n=(i,e,t)=>(c(i,typeof e!="symbol"?e+"":e,t),t);import{d as r}from"./docx-7f17a379.js";import{d as l}from"./url-065d6777.js";import{r as h,o as d,a as u,c as m}from"./index-b9f20394.js";import"./jszip.min-e66ecff9.js";import"./_commonjs-dynamic-modules-302442b1.js";typeof window.setImmediate>"u"&&(window.setImmediate=function(i,...e){setTimeout(()=>i(e))});class w{constructor(e,t={},s={}){n(this,"container",null);n(this,"wrapper",null);n(this,"wrapperMain",null);n(this,"options",{});n(this,"requestOptions",{});n(this,"fileData",null);this.container=e,this.options=t,this.requestOptions=s,this.createWrapper()}createWrapper(){this.wrapper=document.createElement("div"),this.wrapper.className="vue-office-docx",this.wrapperMain=document.createElement("div"),this.wrapperMain.className="vue-office-docx-main",this.wrapper.appendChild(this.wrapperMain),this.container.appendChild(this.wrapper)}setOptions(e){this.options=e}setRequestOptions(e){this.requestOptions=e}preview(e){return new Promise((t,s)=>{r.getData(e,this.requestOptions).then(async o=>{this.fileData=await r.getBlob(o),r.render(this.fileData,this.wrapperMain,this.options).then(()=>{t()}).catch(a=>{r.render("",this.wrapperMain,this.options),s(a)})}).catch(o=>{r.render("",this.wrapperMain,this.options),s(o)})})}save(e){l(e||`js-preview-docx-${new Date().getTime()}.docx`,this.fileData)}destroy(){this.container.removeChild(this.wrapper),this.container=null,this.wrapper=null,this.wrapperMain=null,this.options=null,this.requestOptions=null}}function f(i,e,t){return new w(i,e,t)}const v={init:f};const g={__name:"JsDocxDemo",setup(i){const e=h(null);return d(()=>{let t=v.init(e.value);t.preview("/vue-office/examples/dist/static/test-files/test.docx").then(s=>{console.log("docx preview done"),setTimeout(()=>{t.preview("/vue-office/examples/dist/static/test-files/test2.docx")},3e3)}).catch(s=>{console.log("err",s)})}),(t,s)=>(u(),m("div",{ref_key:"dom",ref:e},null,512))}};export{g as default}; diff --git a/examples/dist/assets/JsExcelDemo-367f5469.js b/examples/dist/assets/JsExcelDemo-367f5469.js new file mode 100644 index 0000000..2e7ce1f --- /dev/null +++ b/examples/dist/assets/JsExcelDemo-367f5469.js @@ -0,0 +1 @@ +var f=Object.defineProperty;var w=(r,e,t)=>e in r?f(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var s=(r,e,t)=>(w(r,typeof e!="symbol"?e+"":e,t),t);import{S as x,a as l,b as m,t as S,c as p,r as b,g as D}from"./hack-bf966667.js";import{l as k}from"./lodash-1ce1e4ec.js";import{d as v}from"./url-065d6777.js";/* empty css */import{r as _,o as g,a as E,c as I}from"./index-b9f20394.js";import"./_commonjs-dynamic-modules-302442b1.js";const y={xls:!1,minColLength:20};class O{constructor(e,t={},o={}){s(this,"container",null);s(this,"wrapper",null);s(this,"wrapperMain",null);s(this,"options",{});s(this,"requestOptions",{});s(this,"mediasSource",[]);s(this,"workbookDataSource",{_worksheets:[]});s(this,"sheetIndex",1);s(this,"ctx",null);s(this,"xs",null);s(this,"offset",null);s(this,"observer",null);s(this,"fileData",null);this.container=e,this.options={...y,...t},this.requestOptions=o,this.createWrapper(),this.initSpreadsheet(),this.hack()}createWrapper(){this.wrapper=document.createElement("div"),this.wrapper.className="vue-office-excel",this.wrapperMain=document.createElement("div"),this.wrapperMain.className="vue-office-excel-main",this.wrapper.appendChild(this.wrapperMain),this.container.appendChild(this.wrapper)}initSpreadsheet(){this.xs=new x(this.wrapperMain,{mode:"read",showToolbar:!1,showContextmenu:this.options.showContextmenu||!1,view:{height:()=>this.wrapper&&this.wrapper.clientHeight||300,width:()=>this.wrapper&&this.wrapper.clientWidth||1200},row:{height:24,len:100},col:{len:26,width:80,indexWidth:60,minWidth:60},autoFocus:!1}).loadData({}),this.options.cellSelected&&typeof this.options.cellSelected=="function"&&this.xs.on("cell-selected",(i,h,c)=>{this.options.cellSelected({cell:i,rowIndex:h,columnIndex:c})}),this.options.cellsSelected&&typeof this.options.cellsSelected=="function"&&this.xs.on("cells-selected",(i,{sri:h,sci:c,eri:u,eci:d})=>{this.options.cellsSelected({cell:i,startRowIndex:h,startColumnIndex:c,endRowIndex:u,endColumnIndex:d})});let e=this,t=this.xs.bottombar.swapFunc;this.xs.bottombar.swapFunc=function(i){t.call(e.xs.bottombar,i),e.sheetIndex=i,setTimeout(()=>{e.xs.reRender(),l(e.ctx,e.mediasSource,e.workbookDataSource._worksheets[e.sheetIndex],e.offset)})};let o=this.xs.sheet.editor.clear;this.xs.sheet.editor.clear=function(...i){o.apply(e.xs.sheet.editor,i),setTimeout(()=>{l(e.ctx,e.mediasSource,e.workbookDataSource._worksheets[e.sheetIndex],e.offset)})};let a=this.xs.sheet.editor.setOffset;this.xs.sheet.editor.setOffset=function(...i){a.apply(e.xs.sheet.editor,i),e.offset=i[0],l(e.ctx,e.mediasSource,e.workbookDataSource._worksheets[e.sheetIndex],e.offset)};const n=this.wrapperMain.querySelector("canvas");this.ctx=n.getContext("2d")}renderExcel(e){return this.fileData=e,m(e,this.options.xls).then(t=>{if(!t._worksheets||t._worksheets.length===0)throw new Error("未获取到数据,可能文件格式不正确或文件已损坏");this.options.beforeTransformData&&typeof this.options.beforeTransformData=="function"&&(t=this.options.beforeTransformData(t));let{workbookData:o,medias:a,workbookSource:n}=S(t,this.options);this.options.transformData&&typeof this.options.transformData=="function"&&(o=this.options.transformData(o)),this.mediasSource=a,this.workbookDataSource=n,this.offset=null,this.sheetIndex=0,p(),this.xs.loadData(o),l(this.ctx,this.mediasSource,this.workbookDataSource._worksheets[this.sheetIndex],this.offset)}).catch(t=>(this.mediasSource=[],this.workbookDataSource={_worksheets:[]},p(),this.xs.loadData({}),Promise.reject(t)))}hack(){const e=k.debounce(b,200).bind(this,this.wrapperMain);this.observer=new MutationObserver(e);const t={attributes:!0,childList:!0,subtree:!0};this.observer.observe(this.wrapperMain,t),e(this.wrapperMain)}setOptions(e){this.options=e}setRequestOptions(e){this.requestOptions=e}preview(e){return new Promise((t,o)=>{D(e,this.requestOptions).then(a=>{this.renderExcel(a).then(t).catch(n=>{this.mediasSource=[],this.workbookDataSource={_worksheets:[]},this.xs.loadData({}),o(n)})}).catch(a=>{this.mediasSource=[],this.workbookDataSource={_worksheets:[]},this.xs.loadData({}),o(a)})})}save(e){v(e||`js-preview-excel-${new Date().getTime()}.xlsx`,this.fileData)}destroy(){this.observer.disconnect(),this.container.removeChild(this.wrapper),this.container=null,this.wrapper=null,this.wrapperMain=null,this.ctx=null,this.xs=null,this.observer=null,this.options=null,this.requestOptions=null,this.mediasSource=null,this.workbookDataSource=null}}function C(r,e,t){return new O(r,e,t)}const M={init:C},J={__name:"JsExcelDemo",setup(r){const e=_(null);return g(()=>{window.myExcelPreview=M.init(e.value,{transformData:function(t){return console.log("transformData",t),t},cellSelected(t){console.log(t)}}),window.myExcelPreview.preview("/vue-office/examples/dist/static/test-files/test.xlsx").then(t=>{console.log("excel preview done",window.myExcelPreview)}).catch(t=>{console.log("err",t)})}),(t,o)=>(E(),I("div",{ref_key:"dom",ref:e,style:{height:"calc(100vh - 50px)"}},null,512))}};export{J as default}; diff --git a/examples/dist/assets/JsPdfDemo-a7b21b70.js b/examples/dist/assets/JsPdfDemo-a7b21b70.js new file mode 100644 index 0000000..319bc3c --- /dev/null +++ b/examples/dist/assets/JsPdfDemo-a7b21b70.js @@ -0,0 +1 @@ +var S=Object.defineProperty;var B=(N,l,Z)=>l in N?S(N,l,{enumerable:!0,configurable:!0,writable:!0,value:Z}):N[l]=Z;var R=(N,l,Z)=>(B(N,typeof l!="symbol"?l+"":l,Z),Z);import{l as J,g as M,d as L}from"./url-065d6777.js";import{_ as Y,o as h}from"./function-e46b3664.js";/* empty css */import{r as T,o as E,a as p,c as s}from"./index-b9f20394.js";const y="dmFyIEE9ezkzMDY6KEEsZSx0KT0+e3ZhciBpPXQoNDkwMSksYT10KDY4MjMpLHM9VHlwZUVycm9yO0EuZXhwb3J0cz1mdW5jdGlvbihBKXtpZihpKEEpKXJldHVybiBBO3Rocm93IG5ldyBzKGEoQSkrIiBpcyBub3QgYSBmdW5jdGlvbiIpfX0sMzUwNjooQSxlLHQpPT57dmFyIGk9dCgzOTI1KSxhPVN0cmluZyxzPVR5cGVFcnJvcjtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7aWYoaShBKSlyZXR1cm4gQTt0aHJvdyBuZXcgcygiQ2FuJ3Qgc2V0ICIrYShBKSsiIGFzIGEgcHJvdG90eXBlIil9fSw3MDgwOihBLGUsdCk9Pnt2YXIgaT10KDQ0MDIpLmhhcztBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7cmV0dXJuIGkoQSksQX19LDY3OTooQSxlLHQpPT57dmFyIGk9dCgxNjI1KSxhPVR5cGVFcnJvcjtBLmV4cG9ydHM9ZnVuY3Rpb24oQSxlKXtpZihpKGUsQSkpcmV0dXJuIEE7dGhyb3cgbmV3IGEoIkluY29ycmVjdCBpbnZvY2F0aW9uIil9fSw4NTUxOihBLGUsdCk9Pnt2YXIgaT10KDM0KSxhPVN0cmluZyxzPVR5cGVFcnJvcjtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7aWYoaShBKSlyZXR1cm4gQTt0aHJvdyBuZXcgcyhhKEEpKyIgaXMgbm90IGFuIG9iamVjdCIpfX0sNzgxMTpBPT57QS5leHBvcnRzPSJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJiJ1bmRlZmluZWQiIT10eXBlb2YgRGF0YVZpZXd9LDczOTQ6KEEsZSx0KT0+e3ZhciBpPXQoNDU3NiksYT10KDY3MDYpLHM9dCgyMTk1KSxuPWkuQXJyYXlCdWZmZXIscj1pLlR5cGVFcnJvcjtBLmV4cG9ydHM9biYmYShuLnByb3RvdHlwZSwiYnl0ZUxlbmd0aCIsImdldCIpfHxmdW5jdGlvbihBKXtpZigiQXJyYXlCdWZmZXIiIT09cyhBKSl0aHJvdyBuZXcgcigiQXJyYXlCdWZmZXIgZXhwZWN0ZWQiKTtyZXR1cm4gQS5ieXRlTGVuZ3RofX0sMzIzODooQSxlLHQpPT57dmFyIGk9dCg0NTc2KSxhPXQoNzQ3Nikscz10KDczOTQpLG49aS5BcnJheUJ1ZmZlcixyPW4mJm4ucHJvdG90eXBlLGc9ciYmYShyLnNsaWNlKTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7aWYoMCE9PXMoQSkpcmV0dXJuITE7aWYoIWcpcmV0dXJuITE7dHJ5e3JldHVybiBnKEEsMCwwKSwhMX1jYXRjaChBKXtyZXR1cm4hMH19fSw1MTY5OihBLGUsdCk9Pnt2YXIgaT10KDMyMzgpLGE9VHlwZUVycm9yO0EuZXhwb3J0cz1mdW5jdGlvbihBKXtpZihpKEEpKXRocm93IG5ldyBhKCJBcnJheUJ1ZmZlciBpcyBkZXRhY2hlZCIpO3JldHVybiBBfX0sNTYzNjooQSxlLHQpPT57dmFyIGk9dCg0NTc2KSxhPXQoOTUwNCkscz10KDY3MDYpLG49dCg3Njk2KSxyPXQoNTE2OSksZz10KDczOTQpLG89dCg0NDgzKSxJPXQoMTU0OCksYz1pLnN0cnVjdHVyZWRDbG9uZSxoPWkuQXJyYXlCdWZmZXIsQz1pLkRhdGFWaWV3LEI9TWF0aC5taW4sbD1oLnByb3RvdHlwZSxRPUMucHJvdG90eXBlLEU9YShsLnNsaWNlKSx1PXMobCwicmVzaXphYmxlIiwiZ2V0IiksZD1zKGwsIm1heEJ5dGVMZW5ndGgiLCJnZXQiKSxmPWEoUS5nZXRJbnQ4KSxwPWEoUS5zZXRJbnQ4KTtBLmV4cG9ydHM9KEl8fG8pJiZmdW5jdGlvbihBLGUsdCl7dmFyIGksYT1nKEEpLHM9dm9pZCAwPT09ZT9hOm4oZSksbD0hdXx8IXUoQSk7aWYocihBKSxJJiYoQT1jKEEse3RyYW5zZmVyOltBXX0pLGE9PT1zJiYodHx8bCkpKXJldHVybiBBO2lmKGE+PXMmJighdHx8bCkpaT1FKEEsMCxzKTtlbHNle3ZhciBRPXQmJiFsJiZkP3ttYXhCeXRlTGVuZ3RoOmQoQSl9OnZvaWQgMDtpPW5ldyBoKHMsUSk7Zm9yKHZhciBtPW5ldyBDKEEpLHk9bmV3IEMoaSksdz1CKHMsYSksRD0wO0Q8dztEKyspcCh5LEQsZihtLEQpKX1yZXR1cm4gSXx8byhBKSxpfX0sNDY0NDooQSxlLHQpPT57dmFyIGksYSxzLG49dCg3ODExKSxyPXQoMzcyNCksZz10KDQ1NzYpLG89dCg0OTAxKSxJPXQoMzQpLGM9dCg5Mjk3KSxoPXQoNjk1NSksQz10KDY4MjMpLEI9dCg2Njk5KSxsPXQoNjg0MCksUT10KDIxMDYpLEU9dCgxNjI1KSx1PXQoMjc4NyksZD10KDI5NjcpLGY9dCg4MjI3KSxwPXQoMzM5MiksbT10KDExODEpLHk9bS5lbmZvcmNlLHc9bS5nZXQsRD1nLkludDhBcnJheSxiPUQmJkQucHJvdG90eXBlLGs9Zy5VaW50OENsYW1wZWRBcnJheSxGPWsmJmsucHJvdG90eXBlLFM9RCYmdShEKSxSPWImJnUoYiksRz1PYmplY3QucHJvdG90eXBlLE49Zy5UeXBlRXJyb3IseD1mKCJ0b1N0cmluZ1RhZyIpLFU9cCgiVFlQRURfQVJSQVlfVEFHIiksTT0iVHlwZWRBcnJheUNvbnN0cnVjdG9yIixMPW4mJiEhZCYmIk9wZXJhIiE9PWgoZy5vcGVyYSksSj0hMSxIPXtJbnQ4QXJyYXk6MSxVaW50OEFycmF5OjEsVWludDhDbGFtcGVkQXJyYXk6MSxJbnQxNkFycmF5OjIsVWludDE2QXJyYXk6MixJbnQzMkFycmF5OjQsVWludDMyQXJyYXk6NCxGbG9hdDMyQXJyYXk6NCxGbG9hdDY0QXJyYXk6OH0sWT17QmlnSW50NjRBcnJheTo4LEJpZ1VpbnQ2NEFycmF5Ojh9LHY9ZnVuY3Rpb24oQSl7dmFyIGU9dShBKTtpZihJKGUpKXt2YXIgdD13KGUpO3JldHVybiB0JiZjKHQsTSk/dFtNXTp2KGUpfX0sSz1mdW5jdGlvbihBKXtpZighSShBKSlyZXR1cm4hMTt2YXIgZT1oKEEpO3JldHVybiBjKEgsZSl8fGMoWSxlKX07Zm9yKGkgaW4gSCkocz0oYT1nW2ldKSYmYS5wcm90b3R5cGUpP3kocylbTV09YTpMPSExO2ZvcihpIGluIFkpKHM9KGE9Z1tpXSkmJmEucHJvdG90eXBlKSYmKHkocylbTV09YSk7aWYoKCFMfHwhbyhTKXx8Uz09PUZ1bmN0aW9uLnByb3RvdHlwZSkmJihTPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IE4oIkluY29ycmVjdCBpbnZvY2F0aW9uIil9LEwpKWZvcihpIGluIEgpZ1tpXSYmZChnW2ldLFMpO2lmKCghTHx8IVJ8fFI9PT1HKSYmKFI9Uy5wcm90b3R5cGUsTCkpZm9yKGkgaW4gSClnW2ldJiZkKGdbaV0ucHJvdG90eXBlLFIpO2lmKEwmJnUoRikhPT1SJiZkKEYsUiksciYmIWMoUix4KSlmb3IoaSBpbiBKPSEwLFEoUix4LHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcyk/dGhpc1tVXTp2b2lkIDB9fSksSClnW2ldJiZCKGdbaV0sVSxpKTtBLmV4cG9ydHM9e05BVElWRV9BUlJBWV9CVUZGRVJfVklFV1M6TCxUWVBFRF9BUlJBWV9UQUc6SiYmVSxhVHlwZWRBcnJheTpmdW5jdGlvbihBKXtpZihLKEEpKXJldHVybiBBO3Rocm93IG5ldyBOKCJUYXJnZXQgaXMgbm90IGEgdHlwZWQgYXJyYXkiKX0sYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjpmdW5jdGlvbihBKXtpZihvKEEpJiYoIWR8fEUoUyxBKSkpcmV0dXJuIEE7dGhyb3cgbmV3IE4oQyhBKSsiIGlzIG5vdCBhIHR5cGVkIGFycmF5IGNvbnN0cnVjdG9yIil9LGV4cG9ydFR5cGVkQXJyYXlNZXRob2Q6ZnVuY3Rpb24oQSxlLHQsaSl7aWYocil7aWYodClmb3IodmFyIGEgaW4gSCl7dmFyIHM9Z1thXTtpZihzJiZjKHMucHJvdG90eXBlLEEpKXRyeXtkZWxldGUgcy5wcm90b3R5cGVbQV19Y2F0Y2godCl7dHJ5e3MucHJvdG90eXBlW0FdPWV9Y2F0Y2goQSl7fX19UltBXSYmIXR8fGwoUixBLHQ/ZTpMJiZiW0FdfHxlLGkpfX0sZXhwb3J0VHlwZWRBcnJheVN0YXRpY01ldGhvZDpmdW5jdGlvbihBLGUsdCl7dmFyIGksYTtpZihyKXtpZihkKXtpZih0KWZvcihpIGluIEgpaWYoKGE9Z1tpXSkmJmMoYSxBKSl0cnl7ZGVsZXRlIGFbQV19Y2F0Y2goQSl7fWlmKFNbQV0mJiF0KXJldHVybjt0cnl7cmV0dXJuIGwoUyxBLHQ/ZTpMJiZTW0FdfHxlKX1jYXRjaChBKXt9fWZvcihpIGluIEgpIShhPWdbaV0pfHxhW0FdJiYhdHx8bChhLEEsZSl9fSxnZXRUeXBlZEFycmF5Q29uc3RydWN0b3I6dixpc1ZpZXc6ZnVuY3Rpb24oQSl7aWYoIUkoQSkpcmV0dXJuITE7dmFyIGU9aChBKTtyZXR1cm4iRGF0YVZpZXciPT09ZXx8YyhILGUpfHxjKFksZSl9LGlzVHlwZWRBcnJheTpLLFR5cGVkQXJyYXk6UyxUeXBlZEFycmF5UHJvdG90eXBlOlJ9fSw1MzcwOihBLGUsdCk9Pnt2YXIgaT10KDYxOTgpO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCl7Zm9yKHZhciBhPTAscz1hcmd1bWVudHMubGVuZ3RoPjI/dDppKGUpLG49bmV3IEEocyk7cz5hOyluW2FdPWVbYSsrXTtyZXR1cm4gbn19LDk2MTc6KEEsZSx0KT0+e3ZhciBpPXQoNTM5NyksYT10KDU2MTApLHM9dCg2MTk4KSxuPWZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihlLHQsbil7dmFyIHI9aShlKSxnPXMocik7aWYoMD09PWcpcmV0dXJuIUEmJi0xO3ZhciBvLEk9YShuLGcpO2lmKEEmJnQhPXQpe2Zvcig7Zz5JOylpZigobz1yW0krK10pIT1vKXJldHVybiEwfWVsc2UgZm9yKDtnPkk7SSsrKWlmKChBfHxJIGluIHIpJiZyW0ldPT09dClyZXR1cm4gQXx8SXx8MDtyZXR1cm4hQSYmLTF9fTtBLmV4cG9ydHM9e2luY2x1ZGVzOm4oITApLGluZGV4T2Y6bighMSl9fSw0NTI3OihBLGUsdCk9Pnt2YXIgaT10KDM3MjQpLGE9dCg0Mzc2KSxzPVR5cGVFcnJvcixuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iscj1pJiYhZnVuY3Rpb24oKXtpZih2b2lkIDAhPT10aGlzKXJldHVybiEwO3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoW10sImxlbmd0aCIse3dyaXRhYmxlOiExfSkubGVuZ3RoPTF9Y2F0Y2goQSl7cmV0dXJuIEEgaW5zdGFuY2VvZiBUeXBlRXJyb3J9fSgpO0EuZXhwb3J0cz1yP2Z1bmN0aW9uKEEsZSl7aWYoYShBKSYmIW4oQSwibGVuZ3RoIikud3JpdGFibGUpdGhyb3cgbmV3IHMoIkNhbm5vdCBzZXQgcmVhZCBvbmx5IC5sZW5ndGgiKTtyZXR1cm4gQS5sZW5ndGg9ZX06ZnVuY3Rpb24oQSxlKXtyZXR1cm4gQS5sZW5ndGg9ZX19LDc2Mjg6KEEsZSx0KT0+e3ZhciBpPXQoNjE5OCk7QS5leHBvcnRzPWZ1bmN0aW9uKEEsZSl7Zm9yKHZhciB0PWkoQSksYT1uZXcgZSh0KSxzPTA7czx0O3MrKylhW3NdPUFbdC1zLTFdO3JldHVybiBhfX0sOTkyODooQSxlLHQpPT57dmFyIGk9dCg2MTk4KSxhPXQoMTI5MSkscz1SYW5nZUVycm9yO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCxuKXt2YXIgcj1pKEEpLGc9YSh0KSxvPWc8MD9yK2c6ZztpZihvPj1yfHxvPDApdGhyb3cgbmV3IHMoIkluY29ycmVjdCBpbmRleCIpO2Zvcih2YXIgST1uZXcgZShyKSxjPTA7YzxyO2MrKylJW2NdPWM9PT1vP246QVtjXTtyZXR1cm4gSX19LDYzMTk6KEEsZSx0KT0+e3ZhciBpPXQoODU1MSksYT10KDk1MzkpO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCxzKXt0cnl7cmV0dXJuIHM/ZShpKHQpWzBdLHRbMV0pOmUodCl9Y2F0Y2goZSl7YShBLCJ0aHJvdyIsZSl9fX0sMjE5NTooQSxlLHQpPT57dmFyIGk9dCg5NTA0KSxhPWkoe30udG9TdHJpbmcpLHM9aSgiIi5zbGljZSk7QS5leHBvcnRzPWZ1bmN0aW9uKEEpe3JldHVybiBzKGEoQSksOCwtMSl9fSw2OTU1OihBLGUsdCk9Pnt2YXIgaT10KDIxNDApLGE9dCg0OTAxKSxzPXQoMjE5NSksbj10KDgyMjcpKCJ0b1N0cmluZ1RhZyIpLHI9T2JqZWN0LGc9IkFyZ3VtZW50cyI9PT1zKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk7QS5leHBvcnRzPWk/czpmdW5jdGlvbihBKXt2YXIgZSx0LGk7cmV0dXJuIHZvaWQgMD09PUE/IlVuZGVmaW5lZCI6bnVsbD09PUE/Ik51bGwiOiJzdHJpbmciPT10eXBlb2YodD1mdW5jdGlvbihBLGUpe3RyeXtyZXR1cm4gQVtlXX1jYXRjaChBKXt9fShlPXIoQSksbikpP3Q6Zz9zKGUpOiJPYmplY3QiPT09KGk9cyhlKSkmJmEoZS5jYWxsZWUpPyJBcmd1bWVudHMiOml9fSw3NzQwOihBLGUsdCk9Pnt2YXIgaT10KDkyOTcpLGE9dCg1MDMxKSxzPXQoNzM0Nyksbj10KDQ5MTMpO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCl7Zm9yKHZhciByPWEoZSksZz1uLmYsbz1zLmYsST0wO0k8ci5sZW5ndGg7SSsrKXt2YXIgYz1yW0ldO2koQSxjKXx8dCYmaSh0LGMpfHxnKEEsYyxvKGUsYykpfX19LDIyMTE6KEEsZSx0KT0+e3ZhciBpPXQoOTAzOSk7QS5leHBvcnRzPSFpKChmdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXt9cmV0dXJuIEEucHJvdG90eXBlLmNvbnN0cnVjdG9yPW51bGwsT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBBKSE9PUEucHJvdG90eXBlfSkpfSwyNTI5OkE9PntBLmV4cG9ydHM9ZnVuY3Rpb24oQSxlKXtyZXR1cm57dmFsdWU6QSxkb25lOmV9fX0sNjY5OTooQSxlLHQpPT57dmFyIGk9dCgzNzI0KSxhPXQoNDkxMykscz10KDY5ODApO0EuZXhwb3J0cz1pP2Z1bmN0aW9uKEEsZSx0KXtyZXR1cm4gYS5mKEEsZSxzKDEsdCkpfTpmdW5jdGlvbihBLGUsdCl7cmV0dXJuIEFbZV09dCxBfX0sNjk4MDpBPT57QS5leHBvcnRzPWZ1bmN0aW9uKEEsZSl7cmV0dXJue2VudW1lcmFibGU6ISgxJkEpLGNvbmZpZ3VyYWJsZTohKDImQSksd3JpdGFibGU6ISg0JkEpLHZhbHVlOmV9fX0sNDY1OTooQSxlLHQpPT57dmFyIGk9dCgzNzI0KSxhPXQoNDkxMykscz10KDY5ODApO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCl7aT9hLmYoQSxlLHMoMCx0KSk6QVtlXT10fX0sMjEwNjooQSxlLHQpPT57dmFyIGk9dCgyODMpLGE9dCg0OTEzKTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSxlLHQpe3JldHVybiB0LmdldCYmaSh0LmdldCxlLHtnZXR0ZXI6ITB9KSx0LnNldCYmaSh0LnNldCxlLHtzZXR0ZXI6ITB9KSxhLmYoQSxlLHQpfX0sNjg0MDooQSxlLHQpPT57dmFyIGk9dCg0OTAxKSxhPXQoNDkxMykscz10KDI4Myksbj10KDk0MzMpO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCxyKXtyfHwocj17fSk7dmFyIGc9ci5lbnVtZXJhYmxlLG89dm9pZCAwIT09ci5uYW1lP3IubmFtZTplO2lmKGkodCkmJnModCxvLHIpLHIuZ2xvYmFsKWc/QVtlXT10Om4oZSx0KTtlbHNle3RyeXtyLnVuc2FmZT9BW2VdJiYoZz0hMCk6ZGVsZXRlIEFbZV19Y2F0Y2goQSl7fWc/QVtlXT10OmEuZihBLGUse3ZhbHVlOnQsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6IXIubm9uQ29uZmlndXJhYmxlLHdyaXRhYmxlOiFyLm5vbldyaXRhYmxlfSl9cmV0dXJuIEF9fSw2Mjc5OihBLGUsdCk9Pnt2YXIgaT10KDY4NDApO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCl7Zm9yKHZhciBhIGluIGUpaShBLGEsZVthXSx0KTtyZXR1cm4gQX19LDk0MzM6KEEsZSx0KT0+e3ZhciBpPXQoNDU3NiksYT1PYmplY3QuZGVmaW5lUHJvcGVydHk7QS5leHBvcnRzPWZ1bmN0aW9uKEEsZSl7dHJ5e2EoaSxBLHt2YWx1ZTplLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pfWNhdGNoKHQpe2lbQV09ZX1yZXR1cm4gZX19LDM3MjQ6KEEsZSx0KT0+e3ZhciBpPXQoOTAzOSk7QS5leHBvcnRzPSFpKChmdW5jdGlvbigpe3JldHVybiA3IT09T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LDEse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pWzFdfSkpfSw0NDgzOihBLGUsdCk9Pnt2YXIgaSxhLHMsbixyPXQoNDU3NiksZz10KDk0MjkpLG89dCgxNTQ4KSxJPXIuc3RydWN0dXJlZENsb25lLGM9ci5BcnJheUJ1ZmZlcixoPXIuTWVzc2FnZUNoYW5uZWwsQz0hMTtpZihvKUM9ZnVuY3Rpb24oQSl7SShBLHt0cmFuc2ZlcjpbQV19KX07ZWxzZSBpZihjKXRyeXtofHwoaT1nKCJ3b3JrZXJfdGhyZWFkcyIpKSYmKGg9aS5NZXNzYWdlQ2hhbm5lbCksaCYmKGE9bmV3IGgscz1uZXcgYygyKSxuPWZ1bmN0aW9uKEEpe2EucG9ydDEucG9zdE1lc3NhZ2UobnVsbCxbQV0pfSwyPT09cy5ieXRlTGVuZ3RoJiYobihzKSwwPT09cy5ieXRlTGVuZ3RoJiYoQz1uKSkpfWNhdGNoKEEpe31BLmV4cG9ydHM9Q30sNDA1NTooQSxlLHQpPT57dmFyIGk9dCg0NTc2KSxhPXQoMzQpLHM9aS5kb2N1bWVudCxuPWEocykmJmEocy5jcmVhdGVFbGVtZW50KTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7cmV0dXJuIG4/cy5jcmVhdGVFbGVtZW50KEEpOnt9fX0sNjgzNzpBPT57dmFyIGU9VHlwZUVycm9yO0EuZXhwb3J0cz1mdW5jdGlvbihBKXtpZihBPjkwMDcxOTkyNTQ3NDA5OTEpdGhyb3cgZSgiTWF4aW11bSBhbGxvd2VkIGluZGV4IGV4Y2VlZGVkIik7cmV0dXJuIEF9fSw1MDAyOkE9PntBLmV4cG9ydHM9e0luZGV4U2l6ZUVycm9yOntzOiJJTkRFWF9TSVpFX0VSUiIsYzoxLG06MX0sRE9NU3RyaW5nU2l6ZUVycm9yOntzOiJET01TVFJJTkdfU0laRV9FUlIiLGM6MixtOjB9LEhpZXJhcmNoeVJlcXVlc3RFcnJvcjp7czoiSElFUkFSQ0hZX1JFUVVFU1RfRVJSIixjOjMsbToxfSxXcm9uZ0RvY3VtZW50RXJyb3I6e3M6IldST05HX0RPQ1VNRU5UX0VSUiIsYzo0LG06MX0sSW52YWxpZENoYXJhY3RlckVycm9yOntzOiJJTlZBTElEX0NIQVJBQ1RFUl9FUlIiLGM6NSxtOjF9LE5vRGF0YUFsbG93ZWRFcnJvcjp7czoiTk9fREFUQV9BTExPV0VEX0VSUiIsYzo2LG06MH0sTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6e3M6Ik5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiIsYzo3LG06MX0sTm90Rm91bmRFcnJvcjp7czoiTk9UX0ZPVU5EX0VSUiIsYzo4LG06MX0sTm90U3VwcG9ydGVkRXJyb3I6e3M6Ik5PVF9TVVBQT1JURURfRVJSIixjOjksbToxfSxJblVzZUF0dHJpYnV0ZUVycm9yOntzOiJJTlVTRV9BVFRSSUJVVEVfRVJSIixjOjEwLG06MX0sSW52YWxpZFN0YXRlRXJyb3I6e3M6IklOVkFMSURfU1RBVEVfRVJSIixjOjExLG06MX0sU3ludGF4RXJyb3I6e3M6IlNZTlRBWF9FUlIiLGM6MTIsbToxfSxJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3I6e3M6IklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUiIsYzoxMyxtOjF9LE5hbWVzcGFjZUVycm9yOntzOiJOQU1FU1BBQ0VfRVJSIixjOjE0LG06MX0sSW52YWxpZEFjY2Vzc0Vycm9yOntzOiJJTlZBTElEX0FDQ0VTU19FUlIiLGM6MTUsbToxfSxWYWxpZGF0aW9uRXJyb3I6e3M6IlZBTElEQVRJT05fRVJSIixjOjE2LG06MH0sVHlwZU1pc21hdGNoRXJyb3I6e3M6IlRZUEVfTUlTTUFUQ0hfRVJSIixjOjE3LG06MX0sU2VjdXJpdHlFcnJvcjp7czoiU0VDVVJJVFlfRVJSIixjOjE4LG06MX0sTmV0d29ya0Vycm9yOntzOiJORVRXT1JLX0VSUiIsYzoxOSxtOjF9LEFib3J0RXJyb3I6e3M6IkFCT1JUX0VSUiIsYzoyMCxtOjF9LFVSTE1pc21hdGNoRXJyb3I6e3M6IlVSTF9NSVNNQVRDSF9FUlIiLGM6MjEsbToxfSxRdW90YUV4Y2VlZGVkRXJyb3I6e3M6IlFVT1RBX0VYQ0VFREVEX0VSUiIsYzoyMixtOjF9LFRpbWVvdXRFcnJvcjp7czoiVElNRU9VVF9FUlIiLGM6MjMsbToxfSxJbnZhbGlkTm9kZVR5cGVFcnJvcjp7czoiSU5WQUxJRF9OT0RFX1RZUEVfRVJSIixjOjI0LG06MX0sRGF0YUNsb25lRXJyb3I6e3M6IkRBVEFfQ0xPTkVfRVJSIixjOjI1LG06MX19fSw4NzI3OkE9PntBLmV4cG9ydHM9WyJjb25zdHJ1Y3RvciIsImhhc093blByb3BlcnR5IiwiaXNQcm90b3R5cGVPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidG9Mb2NhbGVTdHJpbmciLCJ0b1N0cmluZyIsInZhbHVlT2YiXX0sNjE5MzooQSxlLHQpPT57dmFyIGk9dCg0MjE1KTtBLmV4cG9ydHM9Ik5PREUiPT09aX0sMjgzOTooQSxlLHQpPT57dmFyIGk9dCg0NTc2KS5uYXZpZ2F0b3IsYT1pJiZpLnVzZXJBZ2VudDtBLmV4cG9ydHM9YT9TdHJpbmcoYSk6IiJ9LDk1MTk6KEEsZSx0KT0+e3ZhciBpLGEscz10KDQ1NzYpLG49dCgyODM5KSxyPXMucHJvY2VzcyxnPXMuRGVubyxvPXImJnIudmVyc2lvbnN8fGcmJmcudmVyc2lvbixJPW8mJm8udjg7SSYmKGE9KGk9SS5zcGxpdCgiLiIpKVswXT4wJiZpWzBdPDQ/MTorKGlbMF0raVsxXSkpLCFhJiZuJiYoIShpPW4ubWF0Y2goL0VkZ2VcLyhcZCspLykpfHxpWzFdPj03NCkmJihpPW4ubWF0Y2goL0Nocm9tZVwvKFxkKykvKSkmJihhPStpWzFdKSxBLmV4cG9ydHM9YX0sNDIxNTooQSxlLHQpPT57dmFyIGk9dCg0NTc2KSxhPXQoMjgzOSkscz10KDIxOTUpLG49ZnVuY3Rpb24oQSl7cmV0dXJuIGEuc2xpY2UoMCxBLmxlbmd0aCk9PT1BfTtBLmV4cG9ydHM9bigiQnVuLyIpPyJCVU4iOm4oIkNsb3VkZmxhcmUtV29ya2VycyIpPyJDTE9VREZMQVJFIjpuKCJEZW5vLyIpPyJERU5PIjpuKCJOb2RlLmpzLyIpPyJOT0RFIjppLkJ1biYmInN0cmluZyI9PXR5cGVvZiBCdW4udmVyc2lvbj8iQlVOIjppLkRlbm8mJiJvYmplY3QiPT10eXBlb2YgRGVuby52ZXJzaW9uPyJERU5PIjoicHJvY2VzcyI9PT1zKGkucHJvY2Vzcyk/Ik5PREUiOmkud2luZG93JiZpLmRvY3VtZW50PyJCUk9XU0VSIjoiUkVTVCJ9LDg1NzQ6KEEsZSx0KT0+e3ZhciBpPXQoOTUwNCksYT1FcnJvcixzPWkoIiIucmVwbGFjZSksbj1TdHJpbmcobmV3IGEoInp4Y2FzZCIpLnN0YWNrKSxyPS9cblxzKmF0IFteOl0qOlteXG5dKi8sZz1yLnRlc3Qobik7QS5leHBvcnRzPWZ1bmN0aW9uKEEsZSl7aWYoZyYmInN0cmluZyI9PXR5cGVvZiBBJiYhYS5wcmVwYXJlU3RhY2tUcmFjZSlmb3IoO2UtLTspQT1zKEEsciwiIik7cmV0dXJuIEF9fSw2NTE4OihBLGUsdCk9Pnt2YXIgaT10KDQ1NzYpLGE9dCg3MzQ3KS5mLHM9dCg2Njk5KSxuPXQoNjg0MCkscj10KDk0MzMpLGc9dCg3NzQwKSxvPXQoMjc5Nik7QS5leHBvcnRzPWZ1bmN0aW9uKEEsZSl7dmFyIHQsSSxjLGgsQyxCPUEudGFyZ2V0LGw9QS5nbG9iYWwsUT1BLnN0YXQ7aWYodD1sP2k6UT9pW0JdfHxyKEIse30pOmlbQl0mJmlbQl0ucHJvdG90eXBlKWZvcihJIGluIGUpe2lmKGg9ZVtJXSxjPUEuZG9udENhbGxHZXRTZXQ/KEM9YSh0LEkpKSYmQy52YWx1ZTp0W0ldLCFvKGw/STpCKyhRPyIuIjoiIyIpK0ksQS5mb3JjZWQpJiZ2b2lkIDAhPT1jKXtpZih0eXBlb2YgaD09dHlwZW9mIGMpY29udGludWU7ZyhoLGMpfShBLnNoYW18fGMmJmMuc2hhbSkmJnMoaCwic2hhbSIsITApLG4odCxJLGgsQSl9fX0sOTAzOTpBPT57QS5leHBvcnRzPWZ1bmN0aW9uKEEpe3RyeXtyZXR1cm4hIUEoKX1jYXRjaChBKXtyZXR1cm4hMH19fSw2MDgwOihBLGUsdCk9Pnt2YXIgaT10KDc0NzYpLGE9dCg5MzA2KSxzPXQoNjE2KSxuPWkoaS5iaW5kKTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSxlKXtyZXR1cm4gYShBKSx2b2lkIDA9PT1lP0E6cz9uKEEsZSk6ZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseShlLGFyZ3VtZW50cyl9fX0sNjE2OihBLGUsdCk9Pnt2YXIgaT10KDkwMzkpO0EuZXhwb3J0cz0haSgoZnVuY3Rpb24oKXt2YXIgQT1mdW5jdGlvbigpe30uYmluZCgpO3JldHVybiJmdW5jdGlvbiIhPXR5cGVvZiBBfHxBLmhhc093blByb3BlcnR5KCJwcm90b3R5cGUiKX0pKX0sOTU2NTooQSxlLHQpPT57dmFyIGk9dCg2MTYpLGE9RnVuY3Rpb24ucHJvdG90eXBlLmNhbGw7QS5leHBvcnRzPWk/YS5iaW5kKGEpOmZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYSxhcmd1bWVudHMpfX0sMzUwOihBLGUsdCk9Pnt2YXIgaT10KDM3MjQpLGE9dCg5Mjk3KSxzPUZ1bmN0aW9uLnByb3RvdHlwZSxuPWkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iscj1hKHMsIm5hbWUiKSxnPXImJiJzb21ldGhpbmciPT09ZnVuY3Rpb24oKXt9Lm5hbWUsbz1yJiYoIWl8fGkmJm4ocywibmFtZSIpLmNvbmZpZ3VyYWJsZSk7QS5leHBvcnRzPXtFWElTVFM6cixQUk9QRVI6ZyxDT05GSUdVUkFCTEU6b319LDY3MDY6KEEsZSx0KT0+e3ZhciBpPXQoOTUwNCksYT10KDkzMDYpO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCl7dHJ5e3JldHVybiBpKGEoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihBLGUpW3RdKSl9Y2F0Y2goQSl7fX19LDc0NzY6KEEsZSx0KT0+e3ZhciBpPXQoMjE5NSksYT10KDk1MDQpO0EuZXhwb3J0cz1mdW5jdGlvbihBKXtpZigiRnVuY3Rpb24iPT09aShBKSlyZXR1cm4gYShBKX19LDk1MDQ6KEEsZSx0KT0+e3ZhciBpPXQoNjE2KSxhPUZ1bmN0aW9uLnByb3RvdHlwZSxzPWEuY2FsbCxuPWkmJmEuYmluZC5iaW5kKHMscyk7QS5leHBvcnRzPWk/bjpmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcy5hcHBseShBLGFyZ3VtZW50cyl9fX0sOTQyOTooQSxlLHQpPT57dmFyIGk9dCg0NTc2KSxhPXQoNjE5Myk7QS5leHBvcnRzPWZ1bmN0aW9uKEEpe2lmKGEpe3RyeXtyZXR1cm4gaS5wcm9jZXNzLmdldEJ1aWx0aW5Nb2R1bGUoQSl9Y2F0Y2goQSl7fXRyeXtyZXR1cm4gRnVuY3Rpb24oJ3JldHVybiByZXF1aXJlKCInK0ErJyIpJykoKX1jYXRjaChBKXt9fX19LDc3NTE6KEEsZSx0KT0+e3ZhciBpPXQoNDU3NiksYT10KDQ5MDEpO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDI/KHQ9aVtBXSxhKHQpP3Q6dm9pZCAwKTppW0FdJiZpW0FdW2VdO3ZhciB0fX0sMTc2NzpBPT57QS5leHBvcnRzPWZ1bmN0aW9uKEEpe3JldHVybntpdGVyYXRvcjpBLG5leHQ6QS5uZXh0LGRvbmU6ITF9fX0sODUxOihBLGUsdCk9Pnt2YXIgaT10KDY5NTUpLGE9dCg1OTY2KSxzPXQoNDExNyksbj10KDYyNjkpLHI9dCg4MjI3KSgiaXRlcmF0b3IiKTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7aWYoIXMoQSkpcmV0dXJuIGEoQSxyKXx8YShBLCJAQGl0ZXJhdG9yIil8fG5baShBKV19fSw4MTooQSxlLHQpPT57dmFyIGk9dCg5NTY1KSxhPXQoOTMwNikscz10KDg1NTEpLG49dCg2ODIzKSxyPXQoODUxKSxnPVR5cGVFcnJvcjtBLmV4cG9ydHM9ZnVuY3Rpb24oQSxlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPDI/cihBKTplO2lmKGEodCkpcmV0dXJuIHMoaSh0LEEpKTt0aHJvdyBuZXcgZyhuKEEpKyIgaXMgbm90IGl0ZXJhYmxlIil9fSw1OTY2OihBLGUsdCk9Pnt2YXIgaT10KDkzMDYpLGE9dCg0MTE3KTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSxlKXt2YXIgdD1BW2VdO3JldHVybiBhKHQpP3ZvaWQgMDppKHQpfX0sMzc4OTooQSxlLHQpPT57dmFyIGk9dCg5MzA2KSxhPXQoODU1MSkscz10KDk1NjUpLG49dCgxMjkxKSxyPXQoMTc2NyksZz0iSW52YWxpZCBzaXplIixvPVJhbmdlRXJyb3IsST1UeXBlRXJyb3IsYz1NYXRoLm1heCxoPWZ1bmN0aW9uKEEsZSl7dGhpcy5zZXQ9QSx0aGlzLnNpemU9YyhlLDApLHRoaXMuaGFzPWkoQS5oYXMpLHRoaXMua2V5cz1pKEEua2V5cyl9O2gucHJvdG90eXBlPXtnZXRJdGVyYXRvcjpmdW5jdGlvbigpe3JldHVybiByKGEocyh0aGlzLmtleXMsdGhpcy5zZXQpKSl9LGluY2x1ZGVzOmZ1bmN0aW9uKEEpe3JldHVybiBzKHRoaXMuaGFzLHRoaXMuc2V0LEEpfX0sQS5leHBvcnRzPWZ1bmN0aW9uKEEpe2EoQSk7dmFyIGU9K0Euc2l6ZTtpZihlIT1lKXRocm93IG5ldyBJKGcpO3ZhciB0PW4oZSk7aWYodDwwKXRocm93IG5ldyBvKGcpO3JldHVybiBuZXcgaChBLHQpfX0sNDU3NjpmdW5jdGlvbihBKXt2YXIgZT1mdW5jdGlvbihBKXtyZXR1cm4gQSYmQS5NYXRoPT09TWF0aCYmQX07QS5leHBvcnRzPWUoIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzKXx8ZSgib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93KXx8ZSgib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYpfHxlKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWwpfHxlKCJvYmplY3QiPT10eXBlb2YgdGhpcyYmdGhpcyl8fGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KCl8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCl9LDkyOTc6KEEsZSx0KT0+e3ZhciBpPXQoOTUwNCksYT10KDg5ODEpLHM9aSh7fS5oYXNPd25Qcm9wZXJ0eSk7QS5leHBvcnRzPU9iamVjdC5oYXNPd258fGZ1bmN0aW9uKEEsZSl7cmV0dXJuIHMoYShBKSxlKX19LDQyMTpBPT57QS5leHBvcnRzPXt9fSwzOTc6KEEsZSx0KT0+e3ZhciBpPXQoNzc1MSk7QS5leHBvcnRzPWkoImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50Iil9LDU5MTc6KEEsZSx0KT0+e3ZhciBpPXQoMzcyNCksYT10KDkwMzkpLHM9dCg0MDU1KTtBLmV4cG9ydHM9IWkmJiFhKChmdW5jdGlvbigpe3JldHVybiA3IT09T2JqZWN0LmRlZmluZVByb3BlcnR5KHMoImRpdiIpLCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pKX0sNzA1NTooQSxlLHQpPT57dmFyIGk9dCg5NTA0KSxhPXQoOTAzOSkscz10KDIxOTUpLG49T2JqZWN0LHI9aSgiIi5zcGxpdCk7QS5leHBvcnRzPWEoKGZ1bmN0aW9uKCl7cmV0dXJuIW4oInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pKT9mdW5jdGlvbihBKXtyZXR1cm4iU3RyaW5nIj09PXMoQSk/cihBLCIiKTpuKEEpfTpufSwzMTY3OihBLGUsdCk9Pnt2YXIgaT10KDQ5MDEpLGE9dCgzNCkscz10KDI5NjcpO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCl7dmFyIG4scjtyZXR1cm4gcyYmaShuPWUuY29uc3RydWN0b3IpJiZuIT09dCYmYShyPW4ucHJvdG90eXBlKSYmciE9PXQucHJvdG90eXBlJiZzKEEsciksQX19LDM3MDY6KEEsZSx0KT0+e3ZhciBpPXQoOTUwNCksYT10KDQ5MDEpLHM9dCg3NjI5KSxuPWkoRnVuY3Rpb24udG9TdHJpbmcpO2Eocy5pbnNwZWN0U291cmNlKXx8KHMuaW5zcGVjdFNvdXJjZT1mdW5jdGlvbihBKXtyZXR1cm4gbihBKX0pLEEuZXhwb3J0cz1zLmluc3BlY3RTb3VyY2V9LDExODE6KEEsZSx0KT0+e3ZhciBpLGEscyxuPXQoODYyMikscj10KDQ1NzYpLGc9dCgzNCksbz10KDY2OTkpLEk9dCg5Mjk3KSxjPXQoNzYyOSksaD10KDYxMTkpLEM9dCg0MjEpLEI9Ik9iamVjdCBhbHJlYWR5IGluaXRpYWxpemVkIixsPXIuVHlwZUVycm9yLFE9ci5XZWFrTWFwO2lmKG58fGMuc3RhdGUpe3ZhciBFPWMuc3RhdGV8fChjLnN0YXRlPW5ldyBRKTtFLmdldD1FLmdldCxFLmhhcz1FLmhhcyxFLnNldD1FLnNldCxpPWZ1bmN0aW9uKEEsZSl7aWYoRS5oYXMoQSkpdGhyb3cgbmV3IGwoQik7cmV0dXJuIGUuZmFjYWRlPUEsRS5zZXQoQSxlKSxlfSxhPWZ1bmN0aW9uKEEpe3JldHVybiBFLmdldChBKXx8e319LHM9ZnVuY3Rpb24oQSl7cmV0dXJuIEUuaGFzKEEpfX1lbHNle3ZhciB1PWgoInN0YXRlIik7Q1t1XT0hMCxpPWZ1bmN0aW9uKEEsZSl7aWYoSShBLHUpKXRocm93IG5ldyBsKEIpO3JldHVybiBlLmZhY2FkZT1BLG8oQSx1LGUpLGV9LGE9ZnVuY3Rpb24oQSl7cmV0dXJuIEkoQSx1KT9BW3VdOnt9fSxzPWZ1bmN0aW9uKEEpe3JldHVybiBJKEEsdSl9fUEuZXhwb3J0cz17c2V0OmksZ2V0OmEsaGFzOnMsZW5mb3JjZTpmdW5jdGlvbihBKXtyZXR1cm4gcyhBKT9hKEEpOmkoQSx7fSl9LGdldHRlckZvcjpmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ7aWYoIWcoZSl8fCh0PWEoZSkpLnR5cGUhPT1BKXRocm93IG5ldyBsKCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICIrQSsiIHJlcXVpcmVkIik7cmV0dXJuIHR9fX19LDQyMDk6KEEsZSx0KT0+e3ZhciBpPXQoODIyNyksYT10KDYyNjkpLHM9aSgiaXRlcmF0b3IiKSxuPUFycmF5LnByb3RvdHlwZTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7cmV0dXJuIHZvaWQgMCE9PUEmJihhLkFycmF5PT09QXx8bltzXT09PUEpfX0sNDM3NjooQSxlLHQpPT57dmFyIGk9dCgyMTk1KTtBLmV4cG9ydHM9QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24oQSl7cmV0dXJuIkFycmF5Ij09PWkoQSl9fSwxMTA4OihBLGUsdCk9Pnt2YXIgaT10KDY5NTUpO0EuZXhwb3J0cz1mdW5jdGlvbihBKXt2YXIgZT1pKEEpO3JldHVybiJCaWdJbnQ2NEFycmF5Ij09PWV8fCJCaWdVaW50NjRBcnJheSI9PT1lfX0sNDkwMTpBPT57dmFyIGU9Im9iamVjdCI9PXR5cGVvZiBkb2N1bWVudCYmZG9jdW1lbnQuYWxsO0EuZXhwb3J0cz12b2lkIDA9PT1lJiZ2b2lkIDAhPT1lP2Z1bmN0aW9uKEEpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBBfHxBPT09ZX06ZnVuY3Rpb24oQSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIEF9fSwyNzk2OihBLGUsdCk9Pnt2YXIgaT10KDkwMzkpLGE9dCg0OTAxKSxzPS8jfFwucHJvdG90eXBlXC4vLG49ZnVuY3Rpb24oQSxlKXt2YXIgdD1nW3IoQSldO3JldHVybiB0PT09SXx8dCE9PW8mJihhKGUpP2koZSk6ISFlKX0scj1uLm5vcm1hbGl6ZT1mdW5jdGlvbihBKXtyZXR1cm4gU3RyaW5nKEEpLnJlcGxhY2UocywiLiIpLnRvTG93ZXJDYXNlKCl9LGc9bi5kYXRhPXt9LG89bi5OQVRJVkU9Ik4iLEk9bi5QT0xZRklMTD0iUCI7QS5leHBvcnRzPW59LDQxMTc6QT0+e0EuZXhwb3J0cz1mdW5jdGlvbihBKXtyZXR1cm4gbnVsbD09QX19LDM0OihBLGUsdCk9Pnt2YXIgaT10KDQ5MDEpO0EuZXhwb3J0cz1mdW5jdGlvbihBKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIEE/bnVsbCE9PUE6aShBKX19LDM5MjU6KEEsZSx0KT0+e3ZhciBpPXQoMzQpO0EuZXhwb3J0cz1mdW5jdGlvbihBKXtyZXR1cm4gaShBKXx8bnVsbD09PUF9fSw2Mzk1OkE9PntBLmV4cG9ydHM9ITF9LDc1NzooQSxlLHQpPT57dmFyIGk9dCg3NzUxKSxhPXQoNDkwMSkscz10KDE2MjUpLG49dCg3MDQwKSxyPU9iamVjdDtBLmV4cG9ydHM9bj9mdW5jdGlvbihBKXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIEF9OmZ1bmN0aW9uKEEpe3ZhciBlPWkoIlN5bWJvbCIpO3JldHVybiBhKGUpJiZzKGUucHJvdG90eXBlLHIoQSkpfX0sNTA3OihBLGUsdCk9Pnt2YXIgaT10KDk1NjUpO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCl7Zm9yKHZhciBhLHMsbj10P0E6QS5pdGVyYXRvcixyPUEubmV4dDshKGE9aShyLG4pKS5kb25lOylpZih2b2lkIDAhPT0ocz1lKGEudmFsdWUpKSlyZXR1cm4gc319LDI2NTI6KEEsZSx0KT0+e3ZhciBpPXQoNjA4MCksYT10KDk1NjUpLHM9dCg4NTUxKSxuPXQoNjgyMykscj10KDQyMDkpLGc9dCg2MTk4KSxvPXQoMTYyNSksST10KDgxKSxjPXQoODUxKSxoPXQoOTUzOSksQz1UeXBlRXJyb3IsQj1mdW5jdGlvbihBLGUpe3RoaXMuc3RvcHBlZD1BLHRoaXMucmVzdWx0PWV9LGw9Qi5wcm90b3R5cGU7QS5leHBvcnRzPWZ1bmN0aW9uKEEsZSx0KXt2YXIgUSxFLHUsZCxmLHAsbSx5PXQmJnQudGhhdCx3PSEoIXR8fCF0LkFTX0VOVFJJRVMpLEQ9ISghdHx8IXQuSVNfUkVDT1JEKSxiPSEoIXR8fCF0LklTX0lURVJBVE9SKSxrPSEoIXR8fCF0LklOVEVSUlVQVEVEKSxGPWkoZSx5KSxTPWZ1bmN0aW9uKEEpe3JldHVybiBRJiZoKFEsIm5vcm1hbCIsQSksbmV3IEIoITAsQSl9LFI9ZnVuY3Rpb24oQSl7cmV0dXJuIHc/KHMoQSksaz9GKEFbMF0sQVsxXSxTKTpGKEFbMF0sQVsxXSkpOms/RihBLFMpOkYoQSl9O2lmKEQpUT1BLml0ZXJhdG9yO2Vsc2UgaWYoYilRPUE7ZWxzZXtpZighKEU9YyhBKSkpdGhyb3cgbmV3IEMobihBKSsiIGlzIG5vdCBpdGVyYWJsZSIpO2lmKHIoRSkpe2Zvcih1PTAsZD1nKEEpO2Q+dTt1KyspaWYoKGY9UihBW3VdKSkmJm8obCxmKSlyZXR1cm4gZjtyZXR1cm4gbmV3IEIoITEpfVE9SShBLEUpfWZvcihwPUQ/QS5uZXh0OlEubmV4dDshKG09YShwLFEpKS5kb25lOyl7dHJ5e2Y9UihtLnZhbHVlKX1jYXRjaChBKXtoKFEsInRocm93IixBKX1pZigib2JqZWN0Ij09dHlwZW9mIGYmJmYmJm8obCxmKSlyZXR1cm4gZn1yZXR1cm4gbmV3IEIoITEpfX0sOTUzOTooQSxlLHQpPT57dmFyIGk9dCg5NTY1KSxhPXQoODU1MSkscz10KDU5NjYpO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCl7dmFyIG4scjthKEEpO3RyeXtpZighKG49cyhBLCJyZXR1cm4iKSkpe2lmKCJ0aHJvdyI9PT1lKXRocm93IHQ7cmV0dXJuIHR9bj1pKG4sQSl9Y2F0Y2goQSl7cj0hMCxuPUF9aWYoInRocm93Ij09PWUpdGhyb3cgdDtpZihyKXRocm93IG47cmV0dXJuIGEobiksdH19LDk0NjI6KEEsZSx0KT0+e3ZhciBpPXQoOTU2NSksYT10KDIzNjApLHM9dCg2Njk5KSxuPXQoNjI3OSkscj10KDgyMjcpLGc9dCgxMTgxKSxvPXQoNTk2NiksST10KDc2NTcpLkl0ZXJhdG9yUHJvdG90eXBlLGM9dCgyNTI5KSxoPXQoOTUzOSksQz1yKCJ0b1N0cmluZ1RhZyIpLEI9Ikl0ZXJhdG9ySGVscGVyIixsPSJXcmFwRm9yVmFsaWRJdGVyYXRvciIsUT1nLnNldCxFPWZ1bmN0aW9uKEEpe3ZhciBlPWcuZ2V0dGVyRm9yKEE/bDpCKTtyZXR1cm4gbihhKEkpLHtuZXh0OmZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTtpZihBKXJldHVybiB0Lm5leHRIYW5kbGVyKCk7dHJ5e3ZhciBpPXQuZG9uZT92b2lkIDA6dC5uZXh0SGFuZGxlcigpO3JldHVybiBjKGksdC5kb25lKX1jYXRjaChBKXt0aHJvdyB0LmRvbmU9ITAsQX19LHJldHVybjpmdW5jdGlvbigpe3ZhciB0PWUodGhpcyksYT10Lml0ZXJhdG9yO2lmKHQuZG9uZT0hMCxBKXt2YXIgcz1vKGEsInJldHVybiIpO3JldHVybiBzP2kocyxhKTpjKHZvaWQgMCwhMCl9aWYodC5pbm5lcil0cnl7aCh0LmlubmVyLml0ZXJhdG9yLCJub3JtYWwiKX1jYXRjaChBKXtyZXR1cm4gaChhLCJ0aHJvdyIsQSl9cmV0dXJuIGgoYSwibm9ybWFsIiksYyh2b2lkIDAsITApfX0pfSx1PUUoITApLGQ9RSghMSk7cyhkLEMsIkl0ZXJhdG9yIEhlbHBlciIpLEEuZXhwb3J0cz1mdW5jdGlvbihBLGUpe3ZhciB0PWZ1bmN0aW9uKHQsaSl7aT8oaS5pdGVyYXRvcj10Lml0ZXJhdG9yLGkubmV4dD10Lm5leHQpOmk9dCxpLnR5cGU9ZT9sOkIsaS5uZXh0SGFuZGxlcj1BLGkuY291bnRlcj0wLGkuZG9uZT0hMSxRKHRoaXMsaSl9O3JldHVybiB0LnByb3RvdHlwZT1lP3U6ZCx0fX0sNzEzOihBLGUsdCk9Pnt2YXIgaT10KDk1NjUpLGE9dCg5MzA2KSxzPXQoODU1MSksbj10KDE3NjcpLHI9dCg5NDYyKSxnPXQoNjMxOSksbz1yKChmdW5jdGlvbigpe3ZhciBBPXRoaXMuaXRlcmF0b3IsZT1zKGkodGhpcy5uZXh0LEEpKTtpZighKHRoaXMuZG9uZT0hIWUuZG9uZSkpcmV0dXJuIGcoQSx0aGlzLm1hcHBlcixbZS52YWx1ZSx0aGlzLmNvdW50ZXIrK10sITApfSkpO0EuZXhwb3J0cz1mdW5jdGlvbihBKXtyZXR1cm4gcyh0aGlzKSxhKEEpLG5ldyBvKG4odGhpcykse21hcHBlcjpBfSl9fSw3NjU3OihBLGUsdCk9Pnt2YXIgaSxhLHMsbj10KDkwMzkpLHI9dCg0OTAxKSxnPXQoMzQpLG89dCgyMzYwKSxJPXQoMjc4NyksYz10KDY4NDApLGg9dCg4MjI3KSxDPXQoNjM5NSksQj1oKCJpdGVyYXRvciIpLGw9ITE7W10ua2V5cyYmKCJuZXh0ImluKHM9W10ua2V5cygpKT8oYT1JKEkocykpKSE9PU9iamVjdC5wcm90b3R5cGUmJihpPWEpOmw9ITApLCFnKGkpfHxuKChmdW5jdGlvbigpe3ZhciBBPXt9O3JldHVybiBpW0JdLmNhbGwoQSkhPT1BfSkpP2k9e306QyYmKGk9byhpKSkscihpW0JdKXx8YyhpLEIsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksQS5leHBvcnRzPXtJdGVyYXRvclByb3RvdHlwZTppLEJVR0dZX1NBRkFSSV9JVEVSQVRPUlM6bH19LDYyNjk6QT0+e0EuZXhwb3J0cz17fX0sNjE5ODooQSxlLHQpPT57dmFyIGk9dCg4MDE0KTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7cmV0dXJuIGkoQS5sZW5ndGgpfX0sMjgzOihBLGUsdCk9Pnt2YXIgaT10KDk1MDQpLGE9dCg5MDM5KSxzPXQoNDkwMSksbj10KDkyOTcpLHI9dCgzNzI0KSxnPXQoMzUwKS5DT05GSUdVUkFCTEUsbz10KDM3MDYpLEk9dCgxMTgxKSxjPUkuZW5mb3JjZSxoPUkuZ2V0LEM9U3RyaW5nLEI9T2JqZWN0LmRlZmluZVByb3BlcnR5LGw9aSgiIi5zbGljZSksUT1pKCIiLnJlcGxhY2UpLEU9aShbXS5qb2luKSx1PXImJiFhKChmdW5jdGlvbigpe3JldHVybiA4IT09QigoZnVuY3Rpb24oKXt9KSwibGVuZ3RoIix7dmFsdWU6OH0pLmxlbmd0aH0pKSxkPVN0cmluZyhTdHJpbmcpLnNwbGl0KCJTdHJpbmciKSxmPUEuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCl7IlN5bWJvbCgiPT09bChDKGUpLDAsNykmJihlPSJbIitRKEMoZSksL15TeW1ib2xcKChbXildKilcKS4qJC8sIiQxIikrIl0iKSx0JiZ0LmdldHRlciYmKGU9ImdldCAiK2UpLHQmJnQuc2V0dGVyJiYoZT0ic2V0ICIrZSksKCFuKEEsIm5hbWUiKXx8ZyYmQS5uYW1lIT09ZSkmJihyP0IoQSwibmFtZSIse3ZhbHVlOmUsY29uZmlndXJhYmxlOiEwfSk6QS5uYW1lPWUpLHUmJnQmJm4odCwiYXJpdHkiKSYmQS5sZW5ndGghPT10LmFyaXR5JiZCKEEsImxlbmd0aCIse3ZhbHVlOnQuYXJpdHl9KTt0cnl7dCYmbih0LCJjb25zdHJ1Y3RvciIpJiZ0LmNvbnN0cnVjdG9yP3ImJkIoQSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KTpBLnByb3RvdHlwZSYmKEEucHJvdG90eXBlPXZvaWQgMCl9Y2F0Y2goQSl7fXZhciBpPWMoQSk7cmV0dXJuIG4oaSwic291cmNlIil8fChpLnNvdXJjZT1FKGQsInN0cmluZyI9PXR5cGVvZiBlP2U6IiIpKSxBfTtGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc9ZigoZnVuY3Rpb24oKXtyZXR1cm4gcyh0aGlzKSYmaCh0aGlzKS5zb3VyY2V8fG8odGhpcyl9KSwidG9TdHJpbmciKX0sNzQxOkE9Pnt2YXIgZT1NYXRoLmNlaWwsdD1NYXRoLmZsb29yO0EuZXhwb3J0cz1NYXRoLnRydW5jfHxmdW5jdGlvbihBKXt2YXIgaT0rQTtyZXR1cm4oaT4wP3Q6ZSkoaSl9fSw2MDQzOihBLGUsdCk9Pnt2YXIgaT10KDkzMDYpLGE9VHlwZUVycm9yLHM9ZnVuY3Rpb24oQSl7dmFyIGUsdDt0aGlzLnByb21pc2U9bmV3IEEoKGZ1bmN0aW9uKEEsaSl7aWYodm9pZCAwIT09ZXx8dm9pZCAwIT09dCl0aHJvdyBuZXcgYSgiQmFkIFByb21pc2UgY29uc3RydWN0b3IiKTtlPUEsdD1pfSkpLHRoaXMucmVzb2x2ZT1pKGUpLHRoaXMucmVqZWN0PWkodCl9O0EuZXhwb3J0cy5mPWZ1bmN0aW9uKEEpe3JldHVybiBuZXcgcyhBKX19LDI2MDM6KEEsZSx0KT0+e3ZhciBpPXQoNjU1KTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSxlKXtyZXR1cm4gdm9pZCAwPT09QT9hcmd1bWVudHMubGVuZ3RoPDI/IiI6ZTppKEEpfX0sMjM2MDooQSxlLHQpPT57dmFyIGksYT10KDg1NTEpLHM9dCg2ODAxKSxuPXQoODcyNykscj10KDQyMSksZz10KDM5Nyksbz10KDQwNTUpLEk9dCg2MTE5KSxjPSJwcm90b3R5cGUiLGg9InNjcmlwdCIsQz1JKCJJRV9QUk9UTyIpLEI9ZnVuY3Rpb24oKXt9LGw9ZnVuY3Rpb24oQSl7cmV0dXJuIjwiK2grIj4iK0ErIjwvIitoKyI+In0sUT1mdW5jdGlvbihBKXtBLndyaXRlKGwoIiIpKSxBLmNsb3NlKCk7dmFyIGU9QS5wYXJlbnRXaW5kb3cuT2JqZWN0O3JldHVybiBBPW51bGwsZX0sRT1mdW5jdGlvbigpe3RyeXtpPW5ldyBBY3RpdmVYT2JqZWN0KCJodG1sZmlsZSIpfWNhdGNoKEEpe312YXIgQSxlLHQ7RT0idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmRvbWFpbiYmaT9RKGkpOihlPW8oImlmcmFtZSIpLHQ9ImphdmEiK2grIjoiLGUuc3R5bGUuZGlzcGxheT0ibm9uZSIsZy5hcHBlbmRDaGlsZChlKSxlLnNyYz1TdHJpbmcodCksKEE9ZS5jb250ZW50V2luZG93LmRvY3VtZW50KS5vcGVuKCksQS53cml0ZShsKCJkb2N1bWVudC5GPU9iamVjdCIpKSxBLmNsb3NlKCksQS5GKTpRKGkpO2Zvcih2YXIgYT1uLmxlbmd0aDthLS07KWRlbGV0ZSBFW2NdW25bYV1dO3JldHVybiBFKCl9O3JbQ109ITAsQS5leHBvcnRzPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKEEsZSl7dmFyIHQ7cmV0dXJuIG51bGwhPT1BPyhCW2NdPWEoQSksdD1uZXcgQixCW2NdPW51bGwsdFtDXT1BKTp0PUUoKSx2b2lkIDA9PT1lP3Q6cy5mKHQsZSl9fSw2ODAxOihBLGUsdCk9Pnt2YXIgaT10KDM3MjQpLGE9dCg4Njg2KSxzPXQoNDkxMyksbj10KDg1NTEpLHI9dCg1Mzk3KSxnPXQoMTA3Mik7ZS5mPWkmJiFhP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzOmZ1bmN0aW9uKEEsZSl7bihBKTtmb3IodmFyIHQsaT1yKGUpLGE9ZyhlKSxvPWEubGVuZ3RoLEk9MDtvPkk7KXMuZihBLHQ9YVtJKytdLGlbdF0pO3JldHVybiBBfX0sNDkxMzooQSxlLHQpPT57dmFyIGk9dCgzNzI0KSxhPXQoNTkxNykscz10KDg2ODYpLG49dCg4NTUxKSxyPXQoNjk2OSksZz1UeXBlRXJyb3Isbz1PYmplY3QuZGVmaW5lUHJvcGVydHksST1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGM9ImVudW1lcmFibGUiLGg9ImNvbmZpZ3VyYWJsZSIsQz0id3JpdGFibGUiO2UuZj1pP3M/ZnVuY3Rpb24oQSxlLHQpe2lmKG4oQSksZT1yKGUpLG4odCksImZ1bmN0aW9uIj09dHlwZW9mIEEmJiJwcm90b3R5cGUiPT09ZSYmInZhbHVlImluIHQmJkMgaW4gdCYmIXRbQ10pe3ZhciBpPUkoQSxlKTtpJiZpW0NdJiYoQVtlXT10LnZhbHVlLHQ9e2NvbmZpZ3VyYWJsZTpoIGluIHQ/dFtoXTppW2hdLGVudW1lcmFibGU6YyBpbiB0P3RbY106aVtjXSx3cml0YWJsZTohMX0pfXJldHVybiBvKEEsZSx0KX06bzpmdW5jdGlvbihBLGUsdCl7aWYobihBKSxlPXIoZSksbih0KSxhKXRyeXtyZXR1cm4gbyhBLGUsdCl9Y2F0Y2goQSl7fWlmKCJnZXQiaW4gdHx8InNldCJpbiB0KXRocm93IG5ldyBnKCJBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCIpO3JldHVybiJ2YWx1ZSJpbiB0JiYoQVtlXT10LnZhbHVlKSxBfX0sNzM0NzooQSxlLHQpPT57dmFyIGk9dCgzNzI0KSxhPXQoOTU2NSkscz10KDg3NzMpLG49dCg2OTgwKSxyPXQoNTM5NyksZz10KDY5NjkpLG89dCg5Mjk3KSxJPXQoNTkxNyksYz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2UuZj1pP2M6ZnVuY3Rpb24oQSxlKXtpZihBPXIoQSksZT1nKGUpLEkpdHJ5e3JldHVybiBjKEEsZSl9Y2F0Y2goQSl7fWlmKG8oQSxlKSlyZXR1cm4gbighYShzLmYsQSxlKSxBW2VdKX19LDg0ODA6KEEsZSx0KT0+e3ZhciBpPXQoMTgyOCksYT10KDg3MjcpLmNvbmNhdCgibGVuZ3RoIiwicHJvdG90eXBlIik7ZS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihBKXtyZXR1cm4gaShBLGEpfX0sMzcxNzooQSxlKT0+e2UuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzfSwyNzg3OihBLGUsdCk9Pnt2YXIgaT10KDkyOTcpLGE9dCg0OTAxKSxzPXQoODk4MSksbj10KDYxMTkpLHI9dCgyMjExKSxnPW4oIklFX1BST1RPIiksbz1PYmplY3QsST1vLnByb3RvdHlwZTtBLmV4cG9ydHM9cj9vLmdldFByb3RvdHlwZU9mOmZ1bmN0aW9uKEEpe3ZhciBlPXMoQSk7aWYoaShlLGcpKXJldHVybiBlW2ddO3ZhciB0PWUuY29uc3RydWN0b3I7cmV0dXJuIGEodCkmJmUgaW5zdGFuY2VvZiB0P3QucHJvdG90eXBlOmUgaW5zdGFuY2VvZiBvP0k6bnVsbH19LDE2MjU6KEEsZSx0KT0+e3ZhciBpPXQoOTUwNCk7QS5leHBvcnRzPWkoe30uaXNQcm90b3R5cGVPZil9LDE4Mjg6KEEsZSx0KT0+e3ZhciBpPXQoOTUwNCksYT10KDkyOTcpLHM9dCg1Mzk3KSxuPXQoOTYxNykuaW5kZXhPZixyPXQoNDIxKSxnPWkoW10ucHVzaCk7QS5leHBvcnRzPWZ1bmN0aW9uKEEsZSl7dmFyIHQsaT1zKEEpLG89MCxJPVtdO2Zvcih0IGluIGkpIWEocix0KSYmYShpLHQpJiZnKEksdCk7Zm9yKDtlLmxlbmd0aD5vOylhKGksdD1lW28rK10pJiYofm4oSSx0KXx8ZyhJLHQpKTtyZXR1cm4gSX19LDEwNzI6KEEsZSx0KT0+e3ZhciBpPXQoMTgyOCksYT10KDg3MjcpO0EuZXhwb3J0cz1PYmplY3Qua2V5c3x8ZnVuY3Rpb24oQSl7cmV0dXJuIGkoQSxhKX19LDg3NzM6KEEsZSk9Pnt2YXIgdD17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsYT1pJiYhdC5jYWxsKHsxOjJ9LDEpO2UuZj1hP2Z1bmN0aW9uKEEpe3ZhciBlPWkodGhpcyxBKTtyZXR1cm4hIWUmJmUuZW51bWVyYWJsZX06dH0sMjk2NzooQSxlLHQpPT57dmFyIGk9dCg2NzA2KSxhPXQoMzQpLHM9dCg3NzUwKSxuPXQoMzUwNik7QS5leHBvcnRzPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8KCJfX3Byb3RvX18iaW57fT9mdW5jdGlvbigpe3ZhciBBLGU9ITEsdD17fTt0cnl7KEE9aShPYmplY3QucHJvdG90eXBlLCJfX3Byb3RvX18iLCJzZXQiKSkodCxbXSksZT10IGluc3RhbmNlb2YgQXJyYXl9Y2F0Y2goQSl7fXJldHVybiBmdW5jdGlvbih0LGkpe3JldHVybiBzKHQpLG4oaSksYSh0KT8oZT9BKHQsaSk6dC5fX3Byb3RvX189aSx0KTp0fX0oKTp2b2lkIDApfSw0MjcwOihBLGUsdCk9Pnt2YXIgaT10KDk1NjUpLGE9dCg0OTAxKSxzPXQoMzQpLG49VHlwZUVycm9yO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUpe3ZhciB0LHI7aWYoInN0cmluZyI9PT1lJiZhKHQ9QS50b1N0cmluZykmJiFzKHI9aSh0LEEpKSlyZXR1cm4gcjtpZihhKHQ9QS52YWx1ZU9mKSYmIXMocj1pKHQsQSkpKXJldHVybiByO2lmKCJzdHJpbmciIT09ZSYmYSh0PUEudG9TdHJpbmcpJiYhcyhyPWkodCxBKSkpcmV0dXJuIHI7dGhyb3cgbmV3IG4oIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfX0sNTAzMTooQSxlLHQpPT57dmFyIGk9dCg3NzUxKSxhPXQoOTUwNCkscz10KDg0ODApLG49dCgzNzE3KSxyPXQoODU1MSksZz1hKFtdLmNvbmNhdCk7QS5leHBvcnRzPWkoIlJlZmxlY3QiLCJvd25LZXlzIil8fGZ1bmN0aW9uKEEpe3ZhciBlPXMuZihyKEEpKSx0PW4uZjtyZXR1cm4gdD9nKGUsdChBKSk6ZX19LDc5Nzk6KEEsZSx0KT0+e3ZhciBpPXQoODU1MSk7QS5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIEE9aSh0aGlzKSxlPSIiO3JldHVybiBBLmhhc0luZGljZXMmJihlKz0iZCIpLEEuZ2xvYmFsJiYoZSs9ImciKSxBLmlnbm9yZUNhc2UmJihlKz0iaSIpLEEubXVsdGlsaW5lJiYoZSs9Im0iKSxBLmRvdEFsbCYmKGUrPSJzIiksQS51bmljb2RlJiYoZSs9InUiKSxBLnVuaWNvZGVTZXRzJiYoZSs9InYiKSxBLnN0aWNreSYmKGUrPSJ5IiksZX19LDc3NTA6KEEsZSx0KT0+e3ZhciBpPXQoNDExNyksYT1UeXBlRXJyb3I7QS5leHBvcnRzPWZ1bmN0aW9uKEEpe2lmKGkoQSkpdGhyb3cgbmV3IGEoIkNhbid0IGNhbGwgbWV0aG9kIG9uICIrQSk7cmV0dXJuIEF9fSw5Mjg2OihBLGUsdCk9Pnt2YXIgaT10KDQ0MDIpLGE9dCg4NDY5KSxzPWkuU2V0LG49aS5hZGQ7QS5leHBvcnRzPWZ1bmN0aW9uKEEpe3ZhciBlPW5ldyBzO3JldHVybiBhKEEsKGZ1bmN0aW9uKEEpe24oZSxBKX0pKSxlfX0sMzQ0MDooQSxlLHQpPT57dmFyIGk9dCg3MDgwKSxhPXQoNDQwMikscz10KDkyODYpLG49dCg1MTcwKSxyPXQoMzc4OSksZz10KDg0NjkpLG89dCg1MDcpLEk9YS5oYXMsYz1hLnJlbW92ZTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7dmFyIGU9aSh0aGlzKSx0PXIoQSksYT1zKGUpO3JldHVybiBuKGUpPD10LnNpemU/ZyhlLChmdW5jdGlvbihBKXt0LmluY2x1ZGVzKEEpJiZjKGEsQSl9KSk6byh0LmdldEl0ZXJhdG9yKCksKGZ1bmN0aW9uKEEpe0koZSxBKSYmYyhhLEEpfSkpLGF9fSw0NDAyOihBLGUsdCk9Pnt2YXIgaT10KDk1MDQpLGE9U2V0LnByb3RvdHlwZTtBLmV4cG9ydHM9e1NldCxhZGQ6aShhLmFkZCksaGFzOmkoYS5oYXMpLHJlbW92ZTppKGEuZGVsZXRlKSxwcm90bzphfX0sODc1MDooQSxlLHQpPT57dmFyIGk9dCg3MDgwKSxhPXQoNDQwMikscz10KDUxNzApLG49dCgzNzg5KSxyPXQoODQ2OSksZz10KDUwNyksbz1hLlNldCxJPWEuYWRkLGM9YS5oYXM7QS5leHBvcnRzPWZ1bmN0aW9uKEEpe3ZhciBlPWkodGhpcyksdD1uKEEpLGE9bmV3IG87cmV0dXJuIHMoZSk+dC5zaXplP2codC5nZXRJdGVyYXRvcigpLChmdW5jdGlvbihBKXtjKGUsQSkmJkkoYSxBKX0pKTpyKGUsKGZ1bmN0aW9uKEEpe3QuaW5jbHVkZXMoQSkmJkkoYSxBKX0pKSxhfX0sNDQ0OTooQSxlLHQpPT57dmFyIGk9dCg3MDgwKSxhPXQoNDQwMikuaGFzLHM9dCg1MTcwKSxuPXQoMzc4OSkscj10KDg0NjkpLGc9dCg1MDcpLG89dCg5NTM5KTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7dmFyIGU9aSh0aGlzKSx0PW4oQSk7aWYocyhlKTw9dC5zaXplKXJldHVybiExIT09cihlLChmdW5jdGlvbihBKXtpZih0LmluY2x1ZGVzKEEpKXJldHVybiExfSksITApO3ZhciBJPXQuZ2V0SXRlcmF0b3IoKTtyZXR1cm4hMSE9PWcoSSwoZnVuY3Rpb24oQSl7aWYoYShlLEEpKXJldHVybiBvKEksIm5vcm1hbCIsITEpfSkpfX0sMzgzODooQSxlLHQpPT57dmFyIGk9dCg3MDgwKSxhPXQoNTE3MCkscz10KDg0NjkpLG49dCgzNzg5KTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7dmFyIGU9aSh0aGlzKSx0PW4oQSk7cmV0dXJuIShhKGUpPnQuc2l6ZSkmJiExIT09cyhlLChmdW5jdGlvbihBKXtpZighdC5pbmNsdWRlcyhBKSlyZXR1cm4hMX0pLCEwKX19LDg1Mjc6KEEsZSx0KT0+e3ZhciBpPXQoNzA4MCksYT10KDQ0MDIpLmhhcyxzPXQoNTE3MCksbj10KDM3ODkpLHI9dCg1MDcpLGc9dCg5NTM5KTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7dmFyIGU9aSh0aGlzKSx0PW4oQSk7aWYocyhlKTx0LnNpemUpcmV0dXJuITE7dmFyIG89dC5nZXRJdGVyYXRvcigpO3JldHVybiExIT09cihvLChmdW5jdGlvbihBKXtpZighYShlLEEpKXJldHVybiBnKG8sIm5vcm1hbCIsITEpfSkpfX0sODQ2OTooQSxlLHQpPT57dmFyIGk9dCg5NTA0KSxhPXQoNTA3KSxzPXQoNDQwMiksbj1zLlNldCxyPXMucHJvdG8sZz1pKHIuZm9yRWFjaCksbz1pKHIua2V5cyksST1vKG5ldyBuKS5uZXh0O0EuZXhwb3J0cz1mdW5jdGlvbihBLGUsdCl7cmV0dXJuIHQ/YSh7aXRlcmF0b3I6byhBKSxuZXh0Okl9LGUpOmcoQSxlKX19LDQ5MTY6KEEsZSx0KT0+e3ZhciBpPXQoNzc1MSksYT1mdW5jdGlvbihBKXtyZXR1cm57c2l6ZTpBLGhhczpmdW5jdGlvbigpe3JldHVybiExfSxrZXlzOmZ1bmN0aW9uKCl7cmV0dXJue25leHQ6ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTohMH19fX19fTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7dmFyIGU9aSgiU2V0Iik7dHJ5eyhuZXcgZSlbQV0oYSgwKSk7dHJ5e3JldHVybihuZXcgZSlbQV0oYSgtMSkpLCExfWNhdGNoKEEpe3JldHVybiEwfX1jYXRjaChBKXtyZXR1cm4hMX19fSw1MTcwOihBLGUsdCk9Pnt2YXIgaT10KDY3MDYpLGE9dCg0NDAyKTtBLmV4cG9ydHM9aShhLnByb3RvLCJzaXplIiwiZ2V0Iil8fGZ1bmN0aW9uKEEpe3JldHVybiBBLnNpemV9fSwzNjUwOihBLGUsdCk9Pnt2YXIgaT10KDcwODApLGE9dCg0NDAyKSxzPXQoOTI4Niksbj10KDM3ODkpLHI9dCg1MDcpLGc9YS5hZGQsbz1hLmhhcyxJPWEucmVtb3ZlO0EuZXhwb3J0cz1mdW5jdGlvbihBKXt2YXIgZT1pKHRoaXMpLHQ9bihBKS5nZXRJdGVyYXRvcigpLGE9cyhlKTtyZXR1cm4gcih0LChmdW5jdGlvbihBKXtvKGUsQSk/SShhLEEpOmcoYSxBKX0pKSxhfX0sNDIwNDooQSxlLHQpPT57dmFyIGk9dCg3MDgwKSxhPXQoNDQwMikuYWRkLHM9dCg5Mjg2KSxuPXQoMzc4OSkscj10KDUwNyk7QS5leHBvcnRzPWZ1bmN0aW9uKEEpe3ZhciBlPWkodGhpcyksdD1uKEEpLmdldEl0ZXJhdG9yKCksZz1zKGUpO3JldHVybiByKHQsKGZ1bmN0aW9uKEEpe2EoZyxBKX0pKSxnfX0sNjExOTooQSxlLHQpPT57dmFyIGk9dCg1NzQ1KSxhPXQoMzM5Mikscz1pKCJrZXlzIik7QS5leHBvcnRzPWZ1bmN0aW9uKEEpe3JldHVybiBzW0FdfHwoc1tBXT1hKEEpKX19LDc2Mjk6KEEsZSx0KT0+e3ZhciBpPXQoNjM5NSksYT10KDQ1NzYpLHM9dCg5NDMzKSxuPSJfX2NvcmUtanNfc2hhcmVkX18iLHI9QS5leHBvcnRzPWFbbl18fHMobix7fSk7KHIudmVyc2lvbnN8fChyLnZlcnNpb25zPVtdKSkucHVzaCh7dmVyc2lvbjoiMy4zOC4xIixtb2RlOmk/InB1cmUiOiJnbG9iYWwiLGNvcHlyaWdodDoiwqkgMjAxNC0yMDI0IERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpIixsaWNlbnNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9ibG9iL3YzLjM4LjEvTElDRU5TRSIsc291cmNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcyJ9KX0sNTc0NTooQSxlLHQpPT57dmFyIGk9dCg3NjI5KTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSxlKXtyZXR1cm4gaVtBXXx8KGlbQV09ZXx8e30pfX0sMTU0ODooQSxlLHQpPT57dmFyIGk9dCg0NTc2KSxhPXQoOTAzOSkscz10KDk1MTkpLG49dCg0MjE1KSxyPWkuc3RydWN0dXJlZENsb25lO0EuZXhwb3J0cz0hIXImJiFhKChmdW5jdGlvbigpe2lmKCJERU5PIj09PW4mJnM+OTJ8fCJOT0RFIj09PW4mJnM+OTR8fCJCUk9XU0VSIj09PW4mJnM+OTcpcmV0dXJuITE7dmFyIEE9bmV3IEFycmF5QnVmZmVyKDgpLGU9cihBLHt0cmFuc2ZlcjpbQV19KTtyZXR1cm4gMCE9PUEuYnl0ZUxlbmd0aHx8OCE9PWUuYnl0ZUxlbmd0aH0pKX0sNDQ5NTooQSxlLHQpPT57dmFyIGk9dCg5NTE5KSxhPXQoOTAzOSkscz10KDQ1NzYpLlN0cmluZztBLmV4cG9ydHM9ISFPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYhYSgoZnVuY3Rpb24oKXt2YXIgQT1TeW1ib2woInN5bWJvbCBkZXRlY3Rpb24iKTtyZXR1cm4hcyhBKXx8IShPYmplY3QoQSlpbnN0YW5jZW9mIFN5bWJvbCl8fCFTeW1ib2wuc2hhbSYmaSYmaTw0MX0pKX0sNTYxMDooQSxlLHQpPT57dmFyIGk9dCgxMjkxKSxhPU1hdGgubWF4LHM9TWF0aC5taW47QS5leHBvcnRzPWZ1bmN0aW9uKEEsZSl7dmFyIHQ9aShBKTtyZXR1cm4gdDwwP2EodCtlLDApOnModCxlKX19LDU4NTQ6KEEsZSx0KT0+e3ZhciBpPXQoMjc3NyksYT1UeXBlRXJyb3I7QS5leHBvcnRzPWZ1bmN0aW9uKEEpe3ZhciBlPWkoQSwibnVtYmVyIik7aWYoIm51bWJlciI9PXR5cGVvZiBlKXRocm93IG5ldyBhKCJDYW4ndCBjb252ZXJ0IG51bWJlciB0byBiaWdpbnQiKTtyZXR1cm4gQmlnSW50KGUpfX0sNzY5NjooQSxlLHQpPT57dmFyIGk9dCgxMjkxKSxhPXQoODAxNCkscz1SYW5nZUVycm9yO0EuZXhwb3J0cz1mdW5jdGlvbihBKXtpZih2b2lkIDA9PT1BKXJldHVybiAwO3ZhciBlPWkoQSksdD1hKGUpO2lmKGUhPT10KXRocm93IG5ldyBzKCJXcm9uZyBsZW5ndGggb3IgaW5kZXgiKTtyZXR1cm4gdH19LDUzOTc6KEEsZSx0KT0+e3ZhciBpPXQoNzA1NSksYT10KDc3NTApO0EuZXhwb3J0cz1mdW5jdGlvbihBKXtyZXR1cm4gaShhKEEpKX19LDEyOTE6KEEsZSx0KT0+e3ZhciBpPXQoNzQxKTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7dmFyIGU9K0E7cmV0dXJuIGUhPWV8fDA9PT1lPzA6aShlKX19LDgwMTQ6KEEsZSx0KT0+e3ZhciBpPXQoMTI5MSksYT1NYXRoLm1pbjtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7dmFyIGU9aShBKTtyZXR1cm4gZT4wP2EoZSw5MDA3MTk5MjU0NzQwOTkxKTowfX0sODk4MTooQSxlLHQpPT57dmFyIGk9dCg3NzUwKSxhPU9iamVjdDtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7cmV0dXJuIGEoaShBKSl9fSwyNzc3OihBLGUsdCk9Pnt2YXIgaT10KDk1NjUpLGE9dCgzNCkscz10KDc1Nyksbj10KDU5NjYpLHI9dCg0MjcwKSxnPXQoODIyNyksbz1UeXBlRXJyb3IsST1nKCJ0b1ByaW1pdGl2ZSIpO0EuZXhwb3J0cz1mdW5jdGlvbihBLGUpe2lmKCFhKEEpfHxzKEEpKXJldHVybiBBO3ZhciB0LGc9bihBLEkpO2lmKGcpe2lmKHZvaWQgMD09PWUmJihlPSJkZWZhdWx0IiksdD1pKGcsQSxlKSwhYSh0KXx8cyh0KSlyZXR1cm4gdDt0aHJvdyBuZXcgbygiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlIil9cmV0dXJuIHZvaWQgMD09PWUmJihlPSJudW1iZXIiKSxyKEEsZSl9fSw2OTY5OihBLGUsdCk9Pnt2YXIgaT10KDI3NzcpLGE9dCg3NTcpO0EuZXhwb3J0cz1mdW5jdGlvbihBKXt2YXIgZT1pKEEsInN0cmluZyIpO3JldHVybiBhKGUpP2U6ZSsiIn19LDIxNDA6KEEsZSx0KT0+e3ZhciBpPXt9O2lbdCg4MjI3KSgidG9TdHJpbmdUYWciKV09InoiLEEuZXhwb3J0cz0iW29iamVjdCB6XSI9PT1TdHJpbmcoaSl9LDY1NTooQSxlLHQpPT57dmFyIGk9dCg2OTU1KSxhPVN0cmluZztBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7aWYoIlN5bWJvbCI9PT1pKEEpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0IGEgU3ltYm9sIHZhbHVlIHRvIGEgc3RyaW5nIik7cmV0dXJuIGEoQSl9fSw2ODIzOkE9Pnt2YXIgZT1TdHJpbmc7QS5leHBvcnRzPWZ1bmN0aW9uKEEpe3RyeXtyZXR1cm4gZShBKX1jYXRjaChBKXtyZXR1cm4iT2JqZWN0In19fSwzMzkyOihBLGUsdCk9Pnt2YXIgaT10KDk1MDQpLGE9MCxzPU1hdGgucmFuZG9tKCksbj1pKDEuLnRvU3RyaW5nKTtBLmV4cG9ydHM9ZnVuY3Rpb24oQSl7cmV0dXJuIlN5bWJvbCgiKyh2b2lkIDA9PT1BPyIiOkEpKyIpXyIrbigrK2ErcywzNil9fSw3MDQwOihBLGUsdCk9Pnt2YXIgaT10KDQ0OTUpO0EuZXhwb3J0cz1pJiYhU3ltYm9sLnNoYW0mJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yfSw4Njg2OihBLGUsdCk9Pnt2YXIgaT10KDM3MjQpLGE9dCg5MDM5KTtBLmV4cG9ydHM9aSYmYSgoZnVuY3Rpb24oKXtyZXR1cm4gNDIhPT1PYmplY3QuZGVmaW5lUHJvcGVydHkoKGZ1bmN0aW9uKCl7fSksInByb3RvdHlwZSIse3ZhbHVlOjQyLHdyaXRhYmxlOiExfSkucHJvdG90eXBlfSkpfSwyODEyOkE9Pnt2YXIgZT1UeXBlRXJyb3I7QS5leHBvcnRzPWZ1bmN0aW9uKEEsdCl7aWYoQTx0KXRocm93IG5ldyBlKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpO3JldHVybiBBfX0sODYyMjooQSxlLHQpPT57dmFyIGk9dCg0NTc2KSxhPXQoNDkwMSkscz1pLldlYWtNYXA7QS5leHBvcnRzPWEocykmJi9uYXRpdmUgY29kZS8udGVzdChTdHJpbmcocykpfSw4MjI3OihBLGUsdCk9Pnt2YXIgaT10KDQ1NzYpLGE9dCg1NzQ1KSxzPXQoOTI5Nyksbj10KDMzOTIpLHI9dCg0NDk1KSxnPXQoNzA0MCksbz1pLlN5bWJvbCxJPWEoIndrcyIpLGM9Zz9vLmZvcnx8bzpvJiZvLndpdGhvdXRTZXR0ZXJ8fG47QS5leHBvcnRzPWZ1bmN0aW9uKEEpe3JldHVybiBzKEksQSl8fChJW0FdPXImJnMobyxBKT9vW0FdOmMoIlN5bWJvbC4iK0EpKSxJW0FdfX0sNjU3MzooQSxlLHQpPT57dmFyIGk9dCgzNzI0KSxhPXQoMjEwNikscz10KDMyMzgpLG49QXJyYXlCdWZmZXIucHJvdG90eXBlO2kmJiEoImRldGFjaGVkImluIG4pJiZhKG4sImRldGFjaGVkIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBzKHRoaXMpfX0pfSw3OTM2OihBLGUsdCk9Pnt2YXIgaT10KDY1MTgpLGE9dCg1NjM2KTthJiZpKHt0YXJnZXQ6IkFycmF5QnVmZmVyIixwcm90bzohMH0se3RyYW5zZmVyVG9GaXhlZExlbmd0aDpmdW5jdGlvbigpe3JldHVybiBhKHRoaXMsYXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06dm9pZCAwLCExKX19KX0sODEwMDooQSxlLHQpPT57dmFyIGk9dCg2NTE4KSxhPXQoNTYzNik7YSYmaSh7dGFyZ2V0OiJBcnJheUJ1ZmZlciIscHJvdG86ITB9LHt0cmFuc2ZlcjpmdW5jdGlvbigpe3JldHVybiBhKHRoaXMsYXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06dm9pZCAwLCEwKX19KX0sNDExNDooQSxlLHQpPT57dmFyIGk9dCg2NTE4KSxhPXQoODk4MSkscz10KDYxOTgpLG49dCg0NTI3KSxyPXQoNjgzNyk7aSh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsYXJpdHk6MSxmb3JjZWQ6dCg5MDM5KSgoZnVuY3Rpb24oKXtyZXR1cm4gNDI5NDk2NzI5NyE9PVtdLnB1c2guY2FsbCh7bGVuZ3RoOjQyOTQ5NjcyOTZ9LDEpfSkpfHwhZnVuY3Rpb24oKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KFtdLCJsZW5ndGgiLHt3cml0YWJsZTohMX0pLnB1c2goKX1jYXRjaChBKXtyZXR1cm4gQSBpbnN0YW5jZW9mIFR5cGVFcnJvcn19KCl9LHtwdXNoOmZ1bmN0aW9uKEEpe3ZhciBlPWEodGhpcyksdD1zKGUpLGk9YXJndW1lbnRzLmxlbmd0aDtyKHQraSk7Zm9yKHZhciBnPTA7ZzxpO2crKyllW3RdPWFyZ3VtZW50c1tnXSx0Kys7cmV0dXJuIG4oZSx0KSx0fX0pfSw0NjI4OihBLGUsdCk9Pnt2YXIgaT10KDY1MTgpLGE9dCg2MDQzKTtpKHt0YXJnZXQ6IlByb21pc2UiLHN0YXQ6ITB9LHt3aXRoUmVzb2x2ZXJzOmZ1bmN0aW9uKCl7dmFyIEE9YS5mKHRoaXMpO3JldHVybntwcm9taXNlOkEucHJvbWlzZSxyZXNvbHZlOkEucmVzb2x2ZSxyZWplY3Q6QS5yZWplY3R9fX0pfSw5NDc5OihBLGUsdCk9Pnt2YXIgaT10KDQ1NzYpLGE9dCgzNzI0KSxzPXQoMjEwNiksbj10KDc5NzkpLHI9dCg5MDM5KSxnPWkuUmVnRXhwLG89Zy5wcm90b3R5cGU7YSYmcigoZnVuY3Rpb24oKXt2YXIgQT0hMDt0cnl7ZygiLiIsImQiKX1jYXRjaChlKXtBPSExfXZhciBlPXt9LHQ9IiIsaT1BPyJkZ2ltc3kiOiJnaW1zeSIsYT1mdW5jdGlvbihBLGkpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLEEse2dldDpmdW5jdGlvbigpe3JldHVybiB0Kz1pLCEwfX0pfSxzPXtkb3RBbGw6InMiLGdsb2JhbDoiZyIsaWdub3JlQ2FzZToiaSIsbXVsdGlsaW5lOiJtIixzdGlja3k6InkifTtmb3IodmFyIG4gaW4gQSYmKHMuaGFzSW5kaWNlcz0iZCIpLHMpYShuLHNbbl0pO3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sImZsYWdzIikuZ2V0LmNhbGwoZSkhPT1pfHx0IT09aX0pKSYmcyhvLCJmbGFncyIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6bn0pfSw3NjQyOihBLGUsdCk9Pnt2YXIgaT10KDY1MTgpLGE9dCgzNDQwKTtpKHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6IXQoNDkxNikoImRpZmZlcmVuY2UiKX0se2RpZmZlcmVuY2U6YX0pfSw4MDA0OihBLGUsdCk9Pnt2YXIgaT10KDY1MTgpLGE9dCg5MDM5KSxzPXQoODc1MCk7aSh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiF0KDQ5MTYpKCJpbnRlcnNlY3Rpb24iKXx8YSgoZnVuY3Rpb24oKXtyZXR1cm4iMywyIiE9PVN0cmluZyhBcnJheS5mcm9tKG5ldyBTZXQoWzEsMiwzXSkuaW50ZXJzZWN0aW9uKG5ldyBTZXQoWzMsMl0pKSkpfSkpfSx7aW50ZXJzZWN0aW9uOnN9KX0sMzg1MzooQSxlLHQpPT57dmFyIGk9dCg2NTE4KSxhPXQoNDQ0OSk7aSh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiF0KDQ5MTYpKCJpc0Rpc2pvaW50RnJvbSIpfSx7aXNEaXNqb2ludEZyb206YX0pfSw1ODc2OihBLGUsdCk9Pnt2YXIgaT10KDY1MTgpLGE9dCgzODM4KTtpKHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6IXQoNDkxNikoImlzU3Vic2V0T2YiKX0se2lzU3Vic2V0T2Y6YX0pfSwyNDc1OihBLGUsdCk9Pnt2YXIgaT10KDY1MTgpLGE9dCg4NTI3KTtpKHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6IXQoNDkxNikoImlzU3VwZXJzZXRPZiIpfSx7aXNTdXBlcnNldE9mOmF9KX0sNTAyNDooQSxlLHQpPT57dmFyIGk9dCg2NTE4KSxhPXQoMzY1MCk7aSh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiF0KDQ5MTYpKCJzeW1tZXRyaWNEaWZmZXJlbmNlIil9LHtzeW1tZXRyaWNEaWZmZXJlbmNlOmF9KX0sMTY5ODooQSxlLHQpPT57dmFyIGk9dCg2NTE4KSxhPXQoNDIwNCk7aSh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiF0KDQ5MTYpKCJ1bmlvbiIpfSx7dW5pb246YX0pfSw3NDY3OihBLGUsdCk9Pnt2YXIgaT10KDc2MjgpLGE9dCg0NjQ0KSxzPWEuYVR5cGVkQXJyYXksbj1hLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Qscj1hLmdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvcjtuKCJ0b1JldmVyc2VkIiwoZnVuY3Rpb24oKXtyZXR1cm4gaShzKHRoaXMpLHIodGhpcykpfSkpfSw0NzMyOihBLGUsdCk9Pnt2YXIgaT10KDQ2NDQpLGE9dCg5NTA0KSxzPXQoOTMwNiksbj10KDUzNzApLHI9aS5hVHlwZWRBcnJheSxnPWkuZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yLG89aS5leHBvcnRUeXBlZEFycmF5TWV0aG9kLEk9YShpLlR5cGVkQXJyYXlQcm90b3R5cGUuc29ydCk7bygidG9Tb3J0ZWQiLChmdW5jdGlvbihBKXt2b2lkIDAhPT1BJiZzKEEpO3ZhciBlPXIodGhpcyksdD1uKGcoZSksZSk7cmV0dXJuIEkodCxBKX0pKX0sOTU3NzooQSxlLHQpPT57dmFyIGk9dCg5OTI4KSxhPXQoNDY0NCkscz10KDExMDgpLG49dCgxMjkxKSxyPXQoNTg1NCksZz1hLmFUeXBlZEFycmF5LG89YS5nZXRUeXBlZEFycmF5Q29uc3RydWN0b3IsST1hLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QsYz0hIWZ1bmN0aW9uKCl7dHJ5e25ldyBJbnQ4QXJyYXkoMSkud2l0aCgyLHt2YWx1ZU9mOmZ1bmN0aW9uKCl7dGhyb3cgOH19KX1jYXRjaChBKXtyZXR1cm4gOD09PUF9fSgpO0koIndpdGgiLHt3aXRoOmZ1bmN0aW9uKEEsZSl7dmFyIHQ9Zyh0aGlzKSxhPW4oQSksST1zKHQpP3IoZSk6K2U7cmV0dXJuIGkodCxvKHQpLGEsSSl9fS53aXRoLCFjKX0sODk5MjooQSxlLHQpPT57dmFyIGk9dCg2NTE4KSxhPXQoNDU3Nikscz10KDY3OSksbj10KDg1NTEpLHI9dCg0OTAxKSxnPXQoMjc4Nyksbz10KDIxMDYpLEk9dCg0NjU5KSxjPXQoOTAzOSksaD10KDkyOTcpLEM9dCg4MjI3KSxCPXQoNzY1NykuSXRlcmF0b3JQcm90b3R5cGUsbD10KDM3MjQpLFE9dCg2Mzk1KSxFPSJjb25zdHJ1Y3RvciIsdT0iSXRlcmF0b3IiLGQ9QygidG9TdHJpbmdUYWciKSxmPVR5cGVFcnJvcixwPWFbdV0sbT1RfHwhcihwKXx8cC5wcm90b3R5cGUhPT1CfHwhYygoZnVuY3Rpb24oKXtwKHt9KX0pKSx5PWZ1bmN0aW9uKCl7aWYocyh0aGlzLEIpLGcodGhpcyk9PT1CKXRocm93IG5ldyBmKCJBYnN0cmFjdCBjbGFzcyBJdGVyYXRvciBub3QgZGlyZWN0bHkgY29uc3RydWN0YWJsZSIpfSx3PWZ1bmN0aW9uKEEsZSl7bD9vKEIsQSx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBlfSxzZXQ6ZnVuY3Rpb24oZSl7aWYobih0aGlzKSx0aGlzPT09Qil0aHJvdyBuZXcgZigiWW91IGNhbid0IHJlZGVmaW5lIHRoaXMgcHJvcGVydHkiKTtoKHRoaXMsQSk/dGhpc1tBXT1lOkkodGhpcyxBLGUpfX0pOkJbQV09ZX07aChCLGQpfHx3KGQsdSksIW0mJmgoQixFKSYmQltFXSE9PU9iamVjdHx8dyhFLHkpLHkucHJvdG90eXBlPUIsaSh7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLGZvcmNlZDptfSx7SXRlcmF0b3I6eX0pfSwzMjE1OihBLGUsdCk9Pnt2YXIgaT10KDY1MTgpLGE9dCgyNjUyKSxzPXQoOTMwNiksbj10KDg1NTEpLHI9dCgxNzY3KTtpKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7ZXZlcnk6ZnVuY3Rpb24oQSl7bih0aGlzKSxzKEEpO3ZhciBlPXIodGhpcyksdD0wO3JldHVybiFhKGUsKGZ1bmN0aW9uKGUsaSl7aWYoIUEoZSx0KyspKXJldHVybiBpKCl9KSx7SVNfUkVDT1JEOiEwLElOVEVSUlVQVEVEOiEwfSkuc3RvcHBlZH19KX0sNDUyMDooQSxlLHQpPT57dmFyIGk9dCg2NTE4KSxhPXQoOTU2NSkscz10KDkzMDYpLG49dCg4NTUxKSxyPXQoMTc2NyksZz10KDk0NjIpLG89dCg2MzE5KSxJPXQoNjM5NSksYz1nKChmdW5jdGlvbigpe2Zvcih2YXIgQSxlLHQ9dGhpcy5pdGVyYXRvcixpPXRoaXMucHJlZGljYXRlLHM9dGhpcy5uZXh0Ozspe2lmKEE9bihhKHMsdCkpLHRoaXMuZG9uZT0hIUEuZG9uZSlyZXR1cm47aWYoZT1BLnZhbHVlLG8odCxpLFtlLHRoaXMuY291bnRlcisrXSwhMCkpcmV0dXJuIGV9fSkpO2koe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkl9LHtmaWx0ZXI6ZnVuY3Rpb24oQSl7cmV0dXJuIG4odGhpcykscyhBKSxuZXcgYyhyKHRoaXMpLHtwcmVkaWNhdGU6QX0pfX0pfSwyNTc3OihBLGUsdCk9Pnt2YXIgaT10KDY1MTgpLGE9dCgyNjUyKSxzPXQoOTMwNiksbj10KDg1NTEpLHI9dCgxNzY3KTtpKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7ZmluZDpmdW5jdGlvbihBKXtuKHRoaXMpLHMoQSk7dmFyIGU9cih0aGlzKSx0PTA7cmV0dXJuIGEoZSwoZnVuY3Rpb24oZSxpKXtpZihBKGUsdCsrKSlyZXR1cm4gaShlKX0pLHtJU19SRUNPUkQ6ITAsSU5URVJSVVBURUQ6ITB9KS5yZXN1bHR9fSl9LDM5NDk6KEEsZSx0KT0+e3ZhciBpPXQoNjUxOCksYT10KDI2NTIpLHM9dCg5MzA2KSxuPXQoODU1MSkscj10KDE3NjcpO2koe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITB9LHtmb3JFYWNoOmZ1bmN0aW9uKEEpe24odGhpcykscyhBKTt2YXIgZT1yKHRoaXMpLHQ9MDthKGUsKGZ1bmN0aW9uKGUpe0EoZSx0KyspfSkse0lTX1JFQ09SRDohMH0pfX0pfSwxNDU0OihBLGUsdCk9Pnt2YXIgaT10KDY1MTgpLGE9dCg3MTMpO2koe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOnQoNjM5NSl9LHttYXA6YX0pfSw4ODcyOihBLGUsdCk9Pnt2YXIgaT10KDY1MTgpLGE9dCgyNjUyKSxzPXQoOTMwNiksbj10KDg1NTEpLHI9dCgxNzY3KSxnPVR5cGVFcnJvcjtpKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7cmVkdWNlOmZ1bmN0aW9uKEEpe24odGhpcykscyhBKTt2YXIgZT1yKHRoaXMpLHQ9YXJndW1lbnRzLmxlbmd0aDwyLGk9dD92b2lkIDA6YXJndW1lbnRzWzFdLG89MDtpZihhKGUsKGZ1bmN0aW9uKGUpe3Q/KHQ9ITEsaT1lKTppPUEoaSxlLG8pLG8rK30pLHtJU19SRUNPUkQ6ITB9KSx0KXRocm93IG5ldyBnKCJSZWR1Y2Ugb2YgZW1wdHkgaXRlcmF0b3Igd2l0aCBubyBpbml0aWFsIHZhbHVlIik7cmV0dXJuIGl9fSl9LDc1NTA6KEEsZSx0KT0+e3ZhciBpPXQoNjUxOCksYT10KDI2NTIpLHM9dCg5MzA2KSxuPXQoODU1MSkscj10KDE3NjcpO2koe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITB9LHtzb21lOmZ1bmN0aW9uKEEpe24odGhpcykscyhBKTt2YXIgZT1yKHRoaXMpLHQ9MDtyZXR1cm4gYShlLChmdW5jdGlvbihlLGkpe2lmKEEoZSx0KyspKXJldHVybiBpKCl9KSx7SVNfUkVDT1JEOiEwLElOVEVSUlVQVEVEOiEwfSkuc3RvcHBlZH19KX0sMTc5NTooQSxlLHQpPT57dmFyIGk9dCg2NTE4KSxhPXQoODU1MSkscz10KDI2NTIpLG49dCgxNzY3KSxyPVtdLnB1c2g7aSh7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86ITAscmVhbDohMH0se3RvQXJyYXk6ZnVuY3Rpb24oKXt2YXIgQT1bXTtyZXR1cm4gcyhuKGEodGhpcykpLHIse3RoYXQ6QSxJU19SRUNPUkQ6ITB9KSxBfX0pfSw0OTc5OihBLGUsdCk9Pnt2YXIgaT10KDY1MTgpLGE9dCg0NTc2KSxzPXQoNzc1MSksbj10KDY5ODApLHI9dCg0OTEzKS5mLGc9dCg5Mjk3KSxvPXQoNjc5KSxJPXQoMzE2NyksYz10KDI2MDMpLGg9dCg1MDAyKSxDPXQoODU3NCksQj10KDM3MjQpLGw9dCg2Mzk1KSxRPSJET01FeGNlcHRpb24iLEU9cygiRXJyb3IiKSx1PXMoUSksZD1mdW5jdGlvbigpe28odGhpcyxmKTt2YXIgQT1hcmd1bWVudHMubGVuZ3RoLGU9YyhBPDE/dm9pZCAwOmFyZ3VtZW50c1swXSksdD1jKEE8Mj92b2lkIDA6YXJndW1lbnRzWzFdLCJFcnJvciIpLGk9bmV3IHUoZSx0KSxhPW5ldyBFKGUpO3JldHVybiBhLm5hbWU9USxyKGksInN0YWNrIixuKDEsQyhhLnN0YWNrLDEpKSksSShpLHRoaXMsZCksaX0sZj1kLnByb3RvdHlwZT11LnByb3RvdHlwZSxwPSJzdGFjayJpbiBuZXcgRShRKSxtPSJzdGFjayJpbiBuZXcgdSgxLDIpLHk9dSYmQiYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLFEpLHc9ISgheXx8eS53cml0YWJsZSYmeS5jb25maWd1cmFibGUpLEQ9cCYmIXcmJiFtO2koe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6bHx8RH0se0RPTUV4Y2VwdGlvbjpEP2Q6dX0pO3ZhciBiPXMoUSksaz1iLnByb3RvdHlwZTtpZihrLmNvbnN0cnVjdG9yIT09Yilmb3IodmFyIEYgaW4gbHx8cihrLCJjb25zdHJ1Y3RvciIsbigxLGIpKSxoKWlmKGcoaCxGKSl7dmFyIFM9aFtGXSxSPVMucztnKGIsUil8fHIoYixSLG4oNixTLmMpKX19LDM2MTE6KEEsZSx0KT0+e3ZhciBpPXQoNjUxOCksYT10KDQ1NzYpLHM9dCgyMTA2KSxuPXQoMzcyNCkscj1UeXBlRXJyb3IsZz1PYmplY3QuZGVmaW5lUHJvcGVydHksbz1hLnNlbGYhPT1hO3RyeXtpZihuKXt2YXIgST1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsInNlbGYiKTshbyYmSSYmSS5nZXQmJkkuZW51bWVyYWJsZXx8cyhhLCJzZWxmIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGF9LHNldDpmdW5jdGlvbihBKXtpZih0aGlzIT09YSl0aHJvdyBuZXcgcigiSWxsZWdhbCBpbnZvY2F0aW9uIik7ZyhhLCJzZWxmIix7dmFsdWU6QSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH0pfSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH0pfWVsc2UgaSh7Z2xvYmFsOiEwLHNpbXBsZTohMCxmb3JjZWQ6b30se3NlbGY6YX0pfWNhdGNoKEEpe319LDQ2MDM6KEEsZSx0KT0+e3ZhciBpPXQoNjg0MCksYT10KDk1MDQpLHM9dCg2NTUpLG49dCgyODEyKSxyPVVSTFNlYXJjaFBhcmFtcyxnPXIucHJvdG90eXBlLG89YShnLmFwcGVuZCksST1hKGcuZGVsZXRlKSxjPWEoZy5mb3JFYWNoKSxoPWEoW10ucHVzaCksQz1uZXcgcigiYT0xJmE9MiZiPTMiKTtDLmRlbGV0ZSgiYSIsMSksQy5kZWxldGUoImIiLHZvaWQgMCksQysiIiE9ImE9MiImJmkoZywiZGVsZXRlIiwoZnVuY3Rpb24oQSl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PWU8Mj92b2lkIDA6YXJndW1lbnRzWzFdO2lmKGUmJnZvaWQgMD09PXQpcmV0dXJuIEkodGhpcyxBKTt2YXIgaT1bXTtjKHRoaXMsKGZ1bmN0aW9uKEEsZSl7aChpLHtrZXk6ZSx2YWx1ZTpBfSl9KSksbihlLDEpO2Zvcih2YXIgYSxyPXMoQSksZz1zKHQpLEM9MCxCPTAsbD0hMSxRPWkubGVuZ3RoO0M8UTspYT1pW0MrK10sbHx8YS5rZXk9PT1yPyhsPSEwLEkodGhpcyxhLmtleSkpOkIrKztmb3IoO0I8UTspKGE9aVtCKytdKS5rZXk9PT1yJiZhLnZhbHVlPT09Z3x8byh0aGlzLGEua2V5LGEudmFsdWUpfSkse2VudW1lcmFibGU6ITAsdW5zYWZlOiEwfSl9LDc1NjY6KEEsZSx0KT0+e3ZhciBpPXQoNjg0MCksYT10KDk1MDQpLHM9dCg2NTUpLG49dCgyODEyKSxyPVVSTFNlYXJjaFBhcmFtcyxnPXIucHJvdG90eXBlLG89YShnLmdldEFsbCksST1hKGcuaGFzKSxjPW5ldyByKCJhPTEiKTshYy5oYXMoImEiLDIpJiZjLmhhcygiYSIsdm9pZCAwKXx8aShnLCJoYXMiLChmdW5jdGlvbihBKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9ZTwyP3ZvaWQgMDphcmd1bWVudHNbMV07aWYoZSYmdm9pZCAwPT09dClyZXR1cm4gSSh0aGlzLEEpO3ZhciBpPW8odGhpcyxBKTtuKGUsMSk7Zm9yKHZhciBhPXModCkscj0wO3I8aS5sZW5ndGg7KWlmKGlbcisrXT09PWEpcmV0dXJuITA7cmV0dXJuITF9KSx7ZW51bWVyYWJsZTohMCx1bnNhZmU6ITB9KX0sODcyMTooQSxlLHQpPT57dmFyIGk9dCgzNzI0KSxhPXQoOTUwNCkscz10KDIxMDYpLG49VVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZSxyPWEobi5mb3JFYWNoKTtpJiYhKCJzaXplImluIG4pJiZzKG4sInNpemUiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgQT0wO3JldHVybiByKHRoaXMsKGZ1bmN0aW9uKCl7QSsrfSkpLEF9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfSl9fSxlPXt9O2Z1bmN0aW9uIHQoaSl7dmFyIGE9ZVtpXTtpZih2b2lkIDAhPT1hKXJldHVybiBhLmV4cG9ydHM7dmFyIHM9ZVtpXT17ZXhwb3J0czp7fX07cmV0dXJuIEFbaV0uY2FsbChzLmV4cG9ydHMscyxzLmV4cG9ydHMsdCkscy5leHBvcnRzfXQuZD0oQSxlKT0+e2Zvcih2YXIgaSBpbiBlKXQubyhlLGkpJiYhdC5vKEEsaSkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLGkse2VudW1lcmFibGU6ITAsZ2V0OmVbaV19KX0sdC5vPShBLGUpPT5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoQSxlKTt2YXIgaT1nbG9iYWxUaGlzLnBkZmpzV29ya2VyPXt9O3QuZChpLHtXb3JrZXJNZXNzYWdlSGFuZGxlcjooKT0+TmR9KSx0KDQxMTQpLHQoNjU3MyksdCg4MTAwKSx0KDc5MzYpLHQoNDYyOCksdCg3NjQyKSx0KDgwMDQpLHQoMzg1MyksdCg1ODc2KSx0KDI0NzUpLHQoNTAyNCksdCgxNjk4KSx0KDc0NjcpLHQoNDczMiksdCg5NTc3KSx0KDg5OTIpLHQoMzk0OSksdCgxNDU0KSx0KDc1NTApLHQoMzYxMSksdCg0NjAzKSx0KDc1NjYpLHQoODcyMSk7Y29uc3QgYT0hKCJvYmplY3QiIT10eXBlb2YgcHJvY2Vzc3x8cHJvY2VzcysiIiE9IltvYmplY3QgcHJvY2Vzc10ifHxwcm9jZXNzLnZlcnNpb25zLm53fHxwcm9jZXNzLnZlcnNpb25zLmVsZWN0cm9uJiZwcm9jZXNzLnR5cGUmJiJicm93c2VyIiE9PXByb2Nlc3MudHlwZSkscz1bMSwwLDAsMSwwLDBdLG49Wy4wMDEsMCwwLC4wMDEsMCwwXSxyPTEuMzUsZz0uMjU5MjU5MjU5MjU5MjU5MjQsbz0icGRmanNfaW50ZXJuYWxfZWRpdG9yXyIsST17UFJJTlQ6NCxNT0RJRllfQ09OVEVOVFM6OCxDT1BZOjE2LE1PRElGWV9BTk5PVEFUSU9OUzozMixGSUxMX0lOVEVSQUNUSVZFX0ZPUk1TOjI1NixDT1BZX0ZPUl9BQ0NFU1NJQklMSVRZOjUxMixBU1NFTUJMRToxMDI0LFBSSU5UX0hJR0hfUVVBTElUWToyMDQ4fSxjPSJHcm91cCIsaD0zMixDPTgxOTIsQj02NTUzNixsPXtFOiJNb3VzZSBFbnRlciIsWDoiTW91c2UgRXhpdCIsRDoiTW91c2UgRG93biIsVToiTW91c2UgVXAiLEZvOiJGb2N1cyIsQmw6IkJsdXIiLFBPOiJQYWdlT3BlbiIsUEM6IlBhZ2VDbG9zZSIsUFY6IlBhZ2VWaXNpYmxlIixQSToiUGFnZUludmlzaWJsZSIsSzoiS2V5c3Ryb2tlIixGOiJGb3JtYXQiLFY6IlZhbGlkYXRlIixDOiJDYWxjdWxhdGUifSxRPXtXQzoiV2lsbENsb3NlIixXUzoiV2lsbFNhdmUiLERTOiJEaWRTYXZlIixXUDoiV2lsbFByaW50IixEUDoiRGlkUHJpbnQifSxFPXtPOiJQYWdlT3BlbiIsQzoiUGFnZUNsb3NlIn0sdT17RVJST1JTOjAsV0FSTklOR1M6MSxJTkZPUzo1fSxkPXtOT05FOjAsQklOQVJZOjF9LGY9MTAscD0xMSxtPTEyLHk9Mzcsdz00NCxEPTU4LGI9NTksaz03MCxGPTcxLFM9ODMsUj04NTtsZXQgRz11LldBUk5JTkdTO2Z1bmN0aW9uIE4oKXtyZXR1cm4gR31mdW5jdGlvbiB4KEEpe0c+PXUuSU5GT1MmJmNvbnNvbGUubG9nKGBJbmZvOiAke0F9YCl9ZnVuY3Rpb24gVShBKXtHPj11LldBUk5JTkdTJiZjb25zb2xlLmxvZyhgV2FybmluZzogJHtBfWApfWZ1bmN0aW9uIE0oQSl7dGhyb3cgbmV3IEVycm9yKEEpfWZ1bmN0aW9uIEwoQSxlKXtBfHxNKGUpfWZ1bmN0aW9uIEooQSxlPW51bGwsdD1udWxsKXtpZighQSlyZXR1cm4gbnVsbDt0cnl7aWYodCYmInN0cmluZyI9PXR5cGVvZiBBKXtpZih0LmFkZERlZmF1bHRQcm90b2NvbCYmQS5zdGFydHNXaXRoKCJ3d3cuIikpe2NvbnN0IGU9QS5tYXRjaCgvXC4vZyk7ZT8ubGVuZ3RoPj0yJiYoQT1gaHR0cDovLyR7QX1gKX1pZih0LnRyeUNvbnZlcnRFbmNvZGluZyl0cnl7QT10QShBKX1jYXRjaHt9fWNvbnN0IGk9ZT9uZXcgVVJMKEEsZSk6bmV3IFVSTChBKTtpZihmdW5jdGlvbihBKXtzd2l0Y2goQT8ucHJvdG9jb2wpe2Nhc2UiaHR0cDoiOmNhc2UiaHR0cHM6IjpjYXNlImZ0cDoiOmNhc2UibWFpbHRvOiI6Y2FzZSJ0ZWw6IjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX0oaSkpcmV0dXJuIGl9Y2F0Y2h7fXJldHVybiBudWxsfWZ1bmN0aW9uIEgoQSxlLHQsaT0hMSl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLGUse3ZhbHVlOnQsZW51bWVyYWJsZTohaSxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITF9KSx0fWNvbnN0IFk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKEEsZSl7dGhpcy5tZXNzYWdlPUEsdGhpcy5uYW1lPWV9cmV0dXJuIEEucHJvdG90eXBlPW5ldyBFcnJvcixBLmNvbnN0cnVjdG9yPUEsQX0oKTtjbGFzcyB2IGV4dGVuZHMgWXtjb25zdHJ1Y3RvcihBLGUpe3N1cGVyKEEsIlBhc3N3b3JkRXhjZXB0aW9uIiksdGhpcy5jb2RlPWV9fWNsYXNzIEsgZXh0ZW5kcyBZe2NvbnN0cnVjdG9yKEEsZSl7c3VwZXIoQSwiVW5rbm93bkVycm9yRXhjZXB0aW9uIiksdGhpcy5kZXRhaWxzPWV9fWNsYXNzIHEgZXh0ZW5kcyBZe2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEsIkludmFsaWRQREZFeGNlcHRpb24iKX19Y2xhc3MgVCBleHRlbmRzIFl7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSwiTWlzc2luZ1BERkV4Y2VwdGlvbiIpfX1jbGFzcyBQIGV4dGVuZHMgWXtjb25zdHJ1Y3RvcihBLGUpe3N1cGVyKEEsIlVuZXhwZWN0ZWRSZXNwb25zZUV4Y2VwdGlvbiIpLHRoaXMuc3RhdHVzPWV9fWNsYXNzIFcgZXh0ZW5kcyBZe2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEsIkZvcm1hdEVycm9yIil9fWNsYXNzIE8gZXh0ZW5kcyBZe2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEsIkFib3J0RXhjZXB0aW9uIil9fWZ1bmN0aW9uIFooQSl7Im9iamVjdCI9PXR5cGVvZiBBJiZ2b2lkIDAhPT1BPy5sZW5ndGh8fE0oIkludmFsaWQgYXJndW1lbnQgZm9yIGJ5dGVzVG9TdHJpbmciKTtjb25zdCBlPUEubGVuZ3RoLHQ9ODE5MjtpZihlPHQpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxBKTtjb25zdCBpPVtdO2ZvcihsZXQgYT0wO2E8ZTthKz10KXtjb25zdCBzPU1hdGgubWluKGErdCxlKSxuPUEuc3ViYXJyYXkoYSxzKTtpLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLG4pKX1yZXR1cm4gaS5qb2luKCIiKX1mdW5jdGlvbiBqKEEpeyJzdHJpbmciIT10eXBlb2YgQSYmTSgiSW52YWxpZCBhcmd1bWVudCBmb3Igc3RyaW5nVG9CeXRlcyIpO2NvbnN0IGU9QS5sZW5ndGgsdD1uZXcgVWludDhBcnJheShlKTtmb3IobGV0IGk9MDtpPGU7KytpKXRbaV09MjU1JkEuY2hhckNvZGVBdChpKTtyZXR1cm4gdH1mdW5jdGlvbiBYKEEpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKEE+PjI0JjI1NSxBPj4xNiYyNTUsQT4+OCYyNTUsMjU1JkEpfWZ1bmN0aW9uIFYoQSl7cmV0dXJuIE9iamVjdC5rZXlzKEEpLmxlbmd0aH1jbGFzcyBfe3N0YXRpYyBnZXQgaXNMaXR0bGVFbmRpYW4oKXtyZXR1cm4gSCh0aGlzLCJpc0xpdHRsZUVuZGlhbiIsZnVuY3Rpb24oKXtjb25zdCBBPW5ldyBVaW50OEFycmF5KDQpO3JldHVybiBBWzBdPTEsMT09PW5ldyBVaW50MzJBcnJheShBLmJ1ZmZlciwwLDEpWzBdfSgpKX1zdGF0aWMgZ2V0IGlzRXZhbFN1cHBvcnRlZCgpe3JldHVybiBIKHRoaXMsImlzRXZhbFN1cHBvcnRlZCIsZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG5ldyBGdW5jdGlvbigiIiksITB9Y2F0Y2h7cmV0dXJuITF9fSgpKX1zdGF0aWMgZ2V0IGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkKCl7cmV0dXJuIEgodGhpcywiaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQiLCJ1bmRlZmluZWQiIT10eXBlb2YgT2Zmc2NyZWVuQ2FudmFzKX1zdGF0aWMgZ2V0IHBsYXRmb3JtKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJiJzdHJpbmciPT10eXBlb2YgbmF2aWdhdG9yPy5wbGF0Zm9ybT9IKHRoaXMsInBsYXRmb3JtIix7aXNNYWM6bmF2aWdhdG9yLnBsYXRmb3JtLmluY2x1ZGVzKCJNYWMiKSxpc1dpbmRvd3M6bmF2aWdhdG9yLnBsYXRmb3JtLmluY2x1ZGVzKCJXaW4iKSxpc0ZpcmVmb3g6InN0cmluZyI9PXR5cGVvZiBuYXZpZ2F0b3I/LnVzZXJBZ2VudCYmbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygiRmlyZWZveCIpfSk6SCh0aGlzLCJwbGF0Zm9ybSIse2lzTWFjOiExLGlzV2luZG93czohMSxpc0ZpcmVmb3g6ITF9KX1zdGF0aWMgZ2V0IGlzQ1NTUm91bmRTdXBwb3J0ZWQoKXtyZXR1cm4gSCh0aGlzLCJpc0NTU1JvdW5kU3VwcG9ydGVkIixnbG9iYWxUaGlzLkNTUz8uc3VwcG9ydHM/Ligid2lkdGg6IHJvdW5kKDEuNXB4LCAxcHgpIikpfX1jb25zdCB6PUFycmF5LmZyb20oQXJyYXkoMjU2KS5rZXlzKCksKEE9PkEudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSkpO2NsYXNzICR7c3RhdGljIG1ha2VIZXhDb2xvcihBLGUsdCl7cmV0dXJuYCMke3pbQV19JHt6W2VdfSR7elt0XX1gfXN0YXRpYyBzY2FsZU1pbk1heChBLGUpe2xldCB0O0FbMF0/KEFbMF08MCYmKHQ9ZVswXSxlWzBdPWVbMl0sZVsyXT10KSxlWzBdKj1BWzBdLGVbMl0qPUFbMF0sQVszXTwwJiYodD1lWzFdLGVbMV09ZVszXSxlWzNdPXQpLGVbMV0qPUFbM10sZVszXSo9QVszXSk6KHQ9ZVswXSxlWzBdPWVbMV0sZVsxXT10LHQ9ZVsyXSxlWzJdPWVbM10sZVszXT10LEFbMV08MCYmKHQ9ZVsxXSxlWzFdPWVbM10sZVszXT10KSxlWzFdKj1BWzFdLGVbM10qPUFbMV0sQVsyXTwwJiYodD1lWzBdLGVbMF09ZVsyXSxlWzJdPXQpLGVbMF0qPUFbMl0sZVsyXSo9QVsyXSksZVswXSs9QVs0XSxlWzFdKz1BWzVdLGVbMl0rPUFbNF0sZVszXSs9QVs1XX1zdGF0aWMgdHJhbnNmb3JtKEEsZSl7cmV0dXJuW0FbMF0qZVswXStBWzJdKmVbMV0sQVsxXSplWzBdK0FbM10qZVsxXSxBWzBdKmVbMl0rQVsyXSplWzNdLEFbMV0qZVsyXStBWzNdKmVbM10sQVswXSplWzRdK0FbMl0qZVs1XStBWzRdLEFbMV0qZVs0XStBWzNdKmVbNV0rQVs1XV19c3RhdGljIGFwcGx5VHJhbnNmb3JtKEEsZSl7cmV0dXJuW0FbMF0qZVswXStBWzFdKmVbMl0rZVs0XSxBWzBdKmVbMV0rQVsxXSplWzNdK2VbNV1dfXN0YXRpYyBhcHBseUludmVyc2VUcmFuc2Zvcm0oQSxlKXtjb25zdCB0PWVbMF0qZVszXS1lWzFdKmVbMl07cmV0dXJuWyhBWzBdKmVbM10tQVsxXSplWzJdK2VbMl0qZVs1XS1lWzRdKmVbM10pL3QsKC1BWzBdKmVbMV0rQVsxXSplWzBdK2VbNF0qZVsxXS1lWzVdKmVbMF0pL3RdfXN0YXRpYyBnZXRBeGlhbEFsaWduZWRCb3VuZGluZ0JveChBLGUpe2NvbnN0IHQ9dGhpcy5hcHBseVRyYW5zZm9ybShBLGUpLGk9dGhpcy5hcHBseVRyYW5zZm9ybShBLnNsaWNlKDIsNCksZSksYT10aGlzLmFwcGx5VHJhbnNmb3JtKFtBWzBdLEFbM11dLGUpLHM9dGhpcy5hcHBseVRyYW5zZm9ybShbQVsyXSxBWzFdXSxlKTtyZXR1cm5bTWF0aC5taW4odFswXSxpWzBdLGFbMF0sc1swXSksTWF0aC5taW4odFsxXSxpWzFdLGFbMV0sc1sxXSksTWF0aC5tYXgodFswXSxpWzBdLGFbMF0sc1swXSksTWF0aC5tYXgodFsxXSxpWzFdLGFbMV0sc1sxXSldfXN0YXRpYyBpbnZlcnNlVHJhbnNmb3JtKEEpe2NvbnN0IGU9QVswXSpBWzNdLUFbMV0qQVsyXTtyZXR1cm5bQVszXS9lLC1BWzFdL2UsLUFbMl0vZSxBWzBdL2UsKEFbMl0qQVs1XS1BWzRdKkFbM10pL2UsKEFbNF0qQVsxXS1BWzVdKkFbMF0pL2VdfXN0YXRpYyBzaW5ndWxhclZhbHVlRGVjb21wb3NlMmRTY2FsZShBKXtjb25zdCBlPVtBWzBdLEFbMl0sQVsxXSxBWzNdXSx0PUFbMF0qZVswXStBWzFdKmVbMl0saT1BWzBdKmVbMV0rQVsxXSplWzNdLGE9QVsyXSplWzBdK0FbM10qZVsyXSxzPUFbMl0qZVsxXStBWzNdKmVbM10sbj0odCtzKS8yLHI9TWF0aC5zcXJ0KCh0K3MpKioyLTQqKHQqcy1hKmkpKS8yLGc9bityfHwxLG89bi1yfHwxO3JldHVybltNYXRoLnNxcnQoZyksTWF0aC5zcXJ0KG8pXX1zdGF0aWMgbm9ybWFsaXplUmVjdChBKXtjb25zdCBlPUEuc2xpY2UoMCk7cmV0dXJuIEFbMF0+QVsyXSYmKGVbMF09QVsyXSxlWzJdPUFbMF0pLEFbMV0+QVszXSYmKGVbMV09QVszXSxlWzNdPUFbMV0pLGV9c3RhdGljIGludGVyc2VjdChBLGUpe2NvbnN0IHQ9TWF0aC5tYXgoTWF0aC5taW4oQVswXSxBWzJdKSxNYXRoLm1pbihlWzBdLGVbMl0pKSxpPU1hdGgubWluKE1hdGgubWF4KEFbMF0sQVsyXSksTWF0aC5tYXgoZVswXSxlWzJdKSk7aWYodD5pKXJldHVybiBudWxsO2NvbnN0IGE9TWF0aC5tYXgoTWF0aC5taW4oQVsxXSxBWzNdKSxNYXRoLm1pbihlWzFdLGVbM10pKSxzPU1hdGgubWluKE1hdGgubWF4KEFbMV0sQVszXSksTWF0aC5tYXgoZVsxXSxlWzNdKSk7cmV0dXJuIGE+cz9udWxsOlt0LGEsaSxzXX1zdGF0aWMjQShBLGUsdCxpLGEscyxuLHIsZyxvKXtpZihnPD0wfHxnPj0xKXJldHVybjtjb25zdCBJPTEtZyxjPWcqZyxoPWMqZyxDPUkqKEkqKEkqQSszKmcqZSkrMypjKnQpK2gqaSxCPUkqKEkqKEkqYSszKmcqcykrMypjKm4pK2gqcjtvWzBdPU1hdGgubWluKG9bMF0sQyksb1sxXT1NYXRoLm1pbihvWzFdLEIpLG9bMl09TWF0aC5tYXgob1syXSxDKSxvWzNdPU1hdGgubWF4KG9bM10sQil9c3RhdGljI2UoQSxlLHQsaSxhLHMsbixyLGcsbyxJLGMpe2lmKE1hdGguYWJzKGcpPDFlLTEyKXJldHVybiB2b2lkKE1hdGguYWJzKG8pPj0xZS0xMiYmdGhpcy4jQShBLGUsdCxpLGEscyxuLHIsLUkvbyxjKSk7Y29uc3QgaD1vKioyLTQqSSpnO2lmKGg8MClyZXR1cm47Y29uc3QgQz1NYXRoLnNxcnQoaCksQj0yKmc7dGhpcy4jQShBLGUsdCxpLGEscyxuLHIsKC1vK0MpL0IsYyksdGhpcy4jQShBLGUsdCxpLGEscyxuLHIsKC1vLUMpL0IsYyl9c3RhdGljIGJlemllckJvdW5kaW5nQm94KEEsZSx0LGksYSxzLG4scixnKXtyZXR1cm4gZz8oZ1swXT1NYXRoLm1pbihnWzBdLEEsbiksZ1sxXT1NYXRoLm1pbihnWzFdLGUsciksZ1syXT1NYXRoLm1heChnWzJdLEEsbiksZ1szXT1NYXRoLm1heChnWzNdLGUscikpOmc9W01hdGgubWluKEEsbiksTWF0aC5taW4oZSxyKSxNYXRoLm1heChBLG4pLE1hdGgubWF4KGUscildLHRoaXMuI2UoQSx0LGEsbixlLGkscyxyLDMqKDMqKHQtYSktQStuKSw2KihBLTIqdCthKSwzKih0LUEpLGcpLHRoaXMuI2UoQSx0LGEsbixlLGkscyxyLDMqKDMqKGktcyktZStyKSw2KihlLTIqaStzKSwzKihpLWUpLGcpLGd9fWNvbnN0IEFBPVswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw3MjgsNzExLDcxMCw3MjksNzMzLDczMSw3MzAsNzMyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDgyMjYsODIyNCw4MjI1LDgyMzAsODIxMiw4MjExLDQwMiw4MjYwLDgyNDksODI1MCw4NzIyLDgyNDAsODIyMiw4MjIwLDgyMjEsODIxNiw4MjE3LDgyMTgsODQ4Miw2NDI1Nyw2NDI1OCwzMjEsMzM4LDM1MiwzNzYsMzgxLDMwNSwzMjIsMzM5LDM1MywzODIsMCw4MzY0XTtmdW5jdGlvbiBlQShBKXtpZihBWzBdPj0iw68iKXtsZXQgZTtpZigiw74iPT09QVswXSYmIsO/Ij09PUFbMV0/KGU9InV0Zi0xNmJlIixBLmxlbmd0aCUyPT0xJiYoQT1BLnNsaWNlKDAsLTEpKSk6IsO/Ij09PUFbMF0mJiLDviI9PT1BWzFdPyhlPSJ1dGYtMTZsZSIsQS5sZW5ndGglMj09MSYmKEE9QS5zbGljZSgwLC0xKSkpOiLDryI9PT1BWzBdJiYiwrsiPT09QVsxXSYmIsK/Ij09PUFbMl0mJihlPSJ1dGYtOCIpLGUpdHJ5e2NvbnN0IHQ9bmV3IFRleHREZWNvZGVyKGUse2ZhdGFsOiEwfSksaT1qKEEpLGE9dC5kZWNvZGUoaSk7cmV0dXJuIGEuaW5jbHVkZXMoIhsiKT9hLnJlcGxhY2VBbGwoL1x4MWJbXlx4MWJdKig/Olx4MWJ8JCkvZywiIik6YX1jYXRjaChBKXtVKGBzdHJpbmdUb1BERlN0cmluZzogIiR7QX0iLmApfX1jb25zdCBlPVtdO2ZvcihsZXQgdD0wLGk9QS5sZW5ndGg7dDxpO3QrKyl7Y29uc3QgYT1BLmNoYXJDb2RlQXQodCk7aWYoMjc9PT1hKXtmb3IoOysrdDxpJiYyNyE9PUEuY2hhckNvZGVBdCh0KTspO2NvbnRpbnVlfWNvbnN0IHM9QUFbYV07ZS5wdXNoKHM/U3RyaW5nLmZyb21DaGFyQ29kZShzKTpBLmNoYXJBdCh0KSl9cmV0dXJuIGUuam9pbigiIil9ZnVuY3Rpb24gdEEoQSl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlc2NhcGUoQSkpfWZ1bmN0aW9uIGlBKEEpe3JldHVybiB1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoQSkpfWZ1bmN0aW9uIGFBKEEsZSl7aWYoQS5sZW5ndGghPT1lLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHQ9MCxpPUEubGVuZ3RoO3Q8aTt0KyspaWYoQVt0XSE9PWVbdF0pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gc0EoQT1uZXcgRGF0ZSl7cmV0dXJuW0EuZ2V0VVRDRnVsbFllYXIoKS50b1N0cmluZygpLChBLmdldFVUQ01vbnRoKCkrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksQS5nZXRVVENEYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksQS5nZXRVVENIb3VycygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpLEEuZ2V0VVRDTWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpLEEuZ2V0VVRDU2Vjb25kcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpXS5qb2luKCIiKX1sZXQgbkE9bnVsbCxyQT1udWxsO3QoMzIxNSk7Y29uc3QgZ0E9U3ltYm9sKCJDSVJDVUxBUl9SRUYiKSxvQT1TeW1ib2woIkVPRiIpO2xldCBJQT1PYmplY3QuY3JlYXRlKG51bGwpLGNBPU9iamVjdC5jcmVhdGUobnVsbCksaEE9T2JqZWN0LmNyZWF0ZShudWxsKTtjbGFzcyBDQXtjb25zdHJ1Y3RvcihBKXt0aGlzLm5hbWU9QX1zdGF0aWMgZ2V0KEEpe3JldHVybiBjQVtBXXx8PW5ldyBDQShBKX19Y2xhc3MgQkF7Y29uc3RydWN0b3IoQSl7dGhpcy5jbWQ9QX1zdGF0aWMgZ2V0KEEpe3JldHVybiBJQVtBXXx8PW5ldyBCQShBKX19Y29uc3QgbEE9ZnVuY3Rpb24oKXtyZXR1cm4gbEF9O2NsYXNzIFFBe2NvbnN0cnVjdG9yKEE9bnVsbCl7dGhpcy5fbWFwPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy54cmVmPUEsdGhpcy5vYmpJZD1udWxsLHRoaXMuc3VwcHJlc3NFbmNyeXB0aW9uPSExLHRoaXMuX19ub25TZXJpYWxpemFibGVfXz1sQX1hc3NpZ25YcmVmKEEpe3RoaXMueHJlZj1BfWdldCBzaXplKCl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX21hcCkubGVuZ3RofWdldChBLGUsdCl7bGV0IGk9dGhpcy5fbWFwW0FdO3JldHVybiB2b2lkIDA9PT1pJiZ2b2lkIDAhPT1lJiYoaT10aGlzLl9tYXBbZV0sdm9pZCAwPT09aSYmdm9pZCAwIT09dCYmKGk9dGhpcy5fbWFwW3RdKSksaSBpbnN0YW5jZW9mIEVBJiZ0aGlzLnhyZWY/dGhpcy54cmVmLmZldGNoKGksdGhpcy5zdXBwcmVzc0VuY3J5cHRpb24pOml9YXN5bmMgZ2V0QXN5bmMoQSxlLHQpe2xldCBpPXRoaXMuX21hcFtBXTtyZXR1cm4gdm9pZCAwPT09aSYmdm9pZCAwIT09ZSYmKGk9dGhpcy5fbWFwW2VdLHZvaWQgMD09PWkmJnZvaWQgMCE9PXQmJihpPXRoaXMuX21hcFt0XSkpLGkgaW5zdGFuY2VvZiBFQSYmdGhpcy54cmVmP3RoaXMueHJlZi5mZXRjaEFzeW5jKGksdGhpcy5zdXBwcmVzc0VuY3J5cHRpb24pOml9Z2V0QXJyYXkoQSxlLHQpe2xldCBpPXRoaXMuX21hcFtBXTtpZih2b2lkIDA9PT1pJiZ2b2lkIDAhPT1lJiYoaT10aGlzLl9tYXBbZV0sdm9pZCAwPT09aSYmdm9pZCAwIT09dCYmKGk9dGhpcy5fbWFwW3RdKSksaSBpbnN0YW5jZW9mIEVBJiZ0aGlzLnhyZWYmJihpPXRoaXMueHJlZi5mZXRjaChpLHRoaXMuc3VwcHJlc3NFbmNyeXB0aW9uKSksQXJyYXkuaXNBcnJheShpKSl7aT1pLnNsaWNlKCk7Zm9yKGxldCBBPTAsZT1pLmxlbmd0aDtBPGU7QSsrKWlbQV1pbnN0YW5jZW9mIEVBJiZ0aGlzLnhyZWYmJihpW0FdPXRoaXMueHJlZi5mZXRjaChpW0FdLHRoaXMuc3VwcHJlc3NFbmNyeXB0aW9uKSl9cmV0dXJuIGl9Z2V0UmF3KEEpe3JldHVybiB0aGlzLl9tYXBbQV19Z2V0S2V5cygpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLl9tYXApfWdldFJhd1ZhbHVlcygpe3JldHVybiBPYmplY3QudmFsdWVzKHRoaXMuX21hcCl9c2V0KEEsZSl7dGhpcy5fbWFwW0FdPWV9aGFzKEEpe3JldHVybiB2b2lkIDAhPT10aGlzLl9tYXBbQV19Zm9yRWFjaChBKXtmb3IoY29uc3QgZSBpbiB0aGlzLl9tYXApQShlLHRoaXMuZ2V0KGUpKX1zdGF0aWMgZ2V0IGVtcHR5KCl7Y29uc3QgQT1uZXcgUUEobnVsbCk7cmV0dXJuIEEuc2V0PShBLGUpPT57TSgiU2hvdWxkIG5vdCBjYWxsIGBzZXRgIG9uIHRoZSBlbXB0eSBkaWN0aW9uYXJ5LiIpfSxIKHRoaXMsImVtcHR5IixBKX1zdGF0aWMgbWVyZ2Uoe3hyZWY6QSxkaWN0QXJyYXk6ZSxtZXJnZVN1YkRpY3RzOnQ9ITF9KXtjb25zdCBpPW5ldyBRQShBKSxhPW5ldyBNYXA7Zm9yKGNvbnN0IEEgb2YgZSlpZihBIGluc3RhbmNlb2YgUUEpZm9yKGNvbnN0W2UsaV1vZiBPYmplY3QuZW50cmllcyhBLl9tYXApKXtsZXQgQT1hLmdldChlKTtpZih2b2lkIDA9PT1BKUE9W10sYS5zZXQoZSxBKTtlbHNlIGlmKCEodCYmaSBpbnN0YW5jZW9mIFFBKSljb250aW51ZTtBLnB1c2goaSl9Zm9yKGNvbnN0W2UsdF1vZiBhKXtpZigxPT09dC5sZW5ndGh8fCEodFswXWluc3RhbmNlb2YgUUEpKXtpLl9tYXBbZV09dFswXTtjb250aW51ZX1jb25zdCBhPW5ldyBRQShBKTtmb3IoY29uc3QgQSBvZiB0KWZvcihjb25zdFtlLHRdb2YgT2JqZWN0LmVudHJpZXMoQS5fbWFwKSl2b2lkIDA9PT1hLl9tYXBbZV0mJihhLl9tYXBbZV09dCk7YS5zaXplPjAmJihpLl9tYXBbZV09YSl9cmV0dXJuIGEuY2xlYXIoKSxpLnNpemU+MD9pOlFBLmVtcHR5fWNsb25lKCl7Y29uc3QgQT1uZXcgUUEodGhpcy54cmVmKTtmb3IoY29uc3QgZSBvZiB0aGlzLmdldEtleXMoKSlBLnNldChlLHRoaXMuZ2V0UmF3KGUpKTtyZXR1cm4gQX1kZWxldGUoQSl7ZGVsZXRlIHRoaXMuX21hcFtBXX19Y2xhc3MgRUF7Y29uc3RydWN0b3IoQSxlKXt0aGlzLm51bT1BLHRoaXMuZ2VuPWV9dG9TdHJpbmcoKXtyZXR1cm4gMD09PXRoaXMuZ2VuP2Ake3RoaXMubnVtfVJgOmAke3RoaXMubnVtfVIke3RoaXMuZ2VufWB9c3RhdGljIGZyb21TdHJpbmcoQSl7Y29uc3QgZT1oQVtBXTtpZihlKXJldHVybiBlO2NvbnN0IHQ9L14oXGQrKVIoXGQqKSQvLmV4ZWMoQSk7cmV0dXJuIHQmJiIwIiE9PXRbMV0/aEFbQV09bmV3IEVBKHBhcnNlSW50KHRbMV0pLHRbMl0/cGFyc2VJbnQodFsyXSk6MCk6bnVsbH1zdGF0aWMgZ2V0KEEsZSl7Y29uc3QgdD0wPT09ZT9gJHtBfVJgOmAke0F9UiR7ZX1gO3JldHVybiBoQVt0XXx8PW5ldyBFQShBLGUpfX1jbGFzcyB1QXtjb25zdHJ1Y3RvcihBPW51bGwpe3RoaXMuX3NldD1uZXcgU2V0KEE/Ll9zZXQpfWhhcyhBKXtyZXR1cm4gdGhpcy5fc2V0LmhhcyhBLnRvU3RyaW5nKCkpfXB1dChBKXt0aGlzLl9zZXQuYWRkKEEudG9TdHJpbmcoKSl9cmVtb3ZlKEEpe3RoaXMuX3NldC5kZWxldGUoQS50b1N0cmluZygpKX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiB0aGlzLl9zZXQudmFsdWVzKCl9Y2xlYXIoKXt0aGlzLl9zZXQuY2xlYXIoKX19Y2xhc3MgZEF7Y29uc3RydWN0b3IoKXt0aGlzLl9tYXA9bmV3IE1hcH1nZXQgc2l6ZSgpe3JldHVybiB0aGlzLl9tYXAuc2l6ZX1nZXQoQSl7cmV0dXJuIHRoaXMuX21hcC5nZXQoQS50b1N0cmluZygpKX1oYXMoQSl7cmV0dXJuIHRoaXMuX21hcC5oYXMoQS50b1N0cmluZygpKX1wdXQoQSxlKXt0aGlzLl9tYXAuc2V0KEEudG9TdHJpbmcoKSxlKX1wdXRBbGlhcyhBLGUpe3RoaXMuX21hcC5zZXQoQS50b1N0cmluZygpLHRoaXMuZ2V0KGUpKX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiB0aGlzLl9tYXAudmFsdWVzKCl9Y2xlYXIoKXt0aGlzLl9tYXAuY2xlYXIoKX0qaXRlbXMoKXtmb3IoY29uc3RbQSxlXW9mIHRoaXMuX21hcCl5aWVsZFtFQS5mcm9tU3RyaW5nKEEpLGVdfX1mdW5jdGlvbiBmQShBLGUpe3JldHVybiBBIGluc3RhbmNlb2YgQ0EmJih2b2lkIDA9PT1lfHxBLm5hbWU9PT1lKX1mdW5jdGlvbiBwQShBLGUpe3JldHVybiBBIGluc3RhbmNlb2YgQkEmJih2b2lkIDA9PT1lfHxBLmNtZD09PWUpfWZ1bmN0aW9uIG1BKEEsZSl7cmV0dXJuIEEgaW5zdGFuY2VvZiBRQSYmKHZvaWQgMD09PWV8fGZBKEEuZ2V0KCJUeXBlIiksZSkpfWZ1bmN0aW9uIHlBKEEsZSl7cmV0dXJuIEEubnVtPT09ZS5udW0mJkEuZ2VuPT09ZS5nZW59Y2xhc3Mgd0F7Z2V0IGxlbmd0aCgpe00oIkFic3RyYWN0IGdldHRlciBgbGVuZ3RoYCBhY2Nlc3NlZCIpfWdldCBpc0VtcHR5KCl7TSgiQWJzdHJhY3QgZ2V0dGVyIGBpc0VtcHR5YCBhY2Nlc3NlZCIpfWdldCBpc0RhdGFMb2FkZWQoKXtyZXR1cm4gSCh0aGlzLCJpc0RhdGFMb2FkZWQiLCEwKX1nZXRCeXRlKCl7TSgiQWJzdHJhY3QgbWV0aG9kIGBnZXRCeXRlYCBjYWxsZWQiKX1nZXRCeXRlcyhBKXtNKCJBYnN0cmFjdCBtZXRob2QgYGdldEJ5dGVzYCBjYWxsZWQiKX1hc3luYyBnZXRJbWFnZURhdGEoQSxlKXtyZXR1cm4gdGhpcy5nZXRCeXRlcyhBLGUpfWFzeW5jIGFzeW5jR2V0Qnl0ZXMoKXtNKCJBYnN0cmFjdCBtZXRob2QgYGFzeW5jR2V0Qnl0ZXNgIGNhbGxlZCIpfWdldCBpc0FzeW5jKCl7cmV0dXJuITF9Z2V0IGNhbkFzeW5jRGVjb2RlSW1hZ2VGcm9tQnVmZmVyKCl7cmV0dXJuITF9cGVla0J5dGUoKXtjb25zdCBBPXRoaXMuZ2V0Qnl0ZSgpO3JldHVybi0xIT09QSYmdGhpcy5wb3MtLSxBfXBlZWtCeXRlcyhBKXtjb25zdCBlPXRoaXMuZ2V0Qnl0ZXMoQSk7cmV0dXJuIHRoaXMucG9zLT1lLmxlbmd0aCxlfWdldFVpbnQxNigpe2NvbnN0IEE9dGhpcy5nZXRCeXRlKCksZT10aGlzLmdldEJ5dGUoKTtyZXR1cm4tMT09PUF8fC0xPT09ZT8tMTooQTw8OCkrZX1nZXRJbnQzMigpe3JldHVybih0aGlzLmdldEJ5dGUoKTw8MjQpKyh0aGlzLmdldEJ5dGUoKTw8MTYpKyh0aGlzLmdldEJ5dGUoKTw8OCkrdGhpcy5nZXRCeXRlKCl9Z2V0Qnl0ZVJhbmdlKEEsZSl7TSgiQWJzdHJhY3QgbWV0aG9kIGBnZXRCeXRlUmFuZ2VgIGNhbGxlZCIpfWdldFN0cmluZyhBKXtyZXR1cm4gWih0aGlzLmdldEJ5dGVzKEEpKX1za2lwKEEpe3RoaXMucG9zKz1BfHwxfXJlc2V0KCl7TSgiQWJzdHJhY3QgbWV0aG9kIGByZXNldGAgY2FsbGVkIil9bW92ZVN0YXJ0KCl7TSgiQWJzdHJhY3QgbWV0aG9kIGBtb3ZlU3RhcnRgIGNhbGxlZCIpfW1ha2VTdWJTdHJlYW0oQSxlLHQ9bnVsbCl7TSgiQWJzdHJhY3QgbWV0aG9kIGBtYWtlU3ViU3RyZWFtYCBjYWxsZWQiKX1nZXRCYXNlU3RyZWFtcygpe3JldHVybiBudWxsfX1jb25zdCBEQT0vXlsxLTldXC5cZCQvO2Z1bmN0aW9uIGJBKEEpe2xldCBlO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBBJiYoZT1PYmplY3QuY3JlYXRlKG51bGwpLEEoZSksQT1udWxsKSxlfX1jbGFzcyBrQSBleHRlbmRzIFl7Y29uc3RydWN0b3IoQSxlKXtzdXBlcihgTWlzc2luZyBkYXRhIFske0F9LCAke2V9KWAsIk1pc3NpbmdEYXRhRXhjZXB0aW9uIiksdGhpcy5iZWdpbj1BLHRoaXMuZW5kPWV9fWNsYXNzIEZBIGV4dGVuZHMgWXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBLCJQYXJzZXJFT0ZFeGNlcHRpb24iKX19Y2xhc3MgU0EgZXh0ZW5kcyBZe2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEsIlhSZWZFbnRyeUV4Y2VwdGlvbiIpfX1jbGFzcyBSQSBleHRlbmRzIFl7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSwiWFJlZlBhcnNlRXhjZXB0aW9uIil9fWZ1bmN0aW9uIEdBKEEpe2NvbnN0IGU9QS5sZW5ndGg7aWYoMD09PWUpcmV0dXJuIG5ldyBVaW50OEFycmF5KDApO2lmKDE9PT1lKXJldHVybiBuZXcgVWludDhBcnJheShBWzBdKTtsZXQgdD0wO2ZvcihsZXQgaT0wO2k8ZTtpKyspdCs9QVtpXS5ieXRlTGVuZ3RoO2NvbnN0IGk9bmV3IFVpbnQ4QXJyYXkodCk7bGV0IGE9MDtmb3IobGV0IHQ9MDt0PGU7dCsrKXtjb25zdCBlPW5ldyBVaW50OEFycmF5KEFbdF0pO2kuc2V0KGUsYSksYSs9ZS5ieXRlTGVuZ3RofXJldHVybiBpfWZ1bmN0aW9uIE5BKHtkaWN0OkEsa2V5OmUsZ2V0QXJyYXk6dD0hMSxzdG9wV2hlbkZvdW5kOmk9ITB9KXtsZXQgYTtjb25zdCBzPW5ldyB1QTtmb3IoO0EgaW5zdGFuY2VvZiBRQSYmKCFBLm9iaklkfHwhcy5oYXMoQS5vYmpJZCkpOyl7QS5vYmpJZCYmcy5wdXQoQS5vYmpJZCk7Y29uc3Qgbj10P0EuZ2V0QXJyYXkoZSk6QS5nZXQoZSk7aWYodm9pZCAwIT09bil7aWYoaSlyZXR1cm4gbjsoYXx8PVtdKS5wdXNoKG4pfUE9QS5nZXQoIlBhcmVudCIpfXJldHVybiBhfWNvbnN0IHhBPVsiIiwiQyIsIkNDIiwiQ0NDIiwiQ0QiLCJEIiwiREMiLCJEQ0MiLCJEQ0NDIiwiQ00iLCIiLCJYIiwiWFgiLCJYWFgiLCJYTCIsIkwiLCJMWCIsIkxYWCIsIkxYWFgiLCJYQyIsIiIsIkkiLCJJSSIsIklJSSIsIklWIiwiViIsIlZJIiwiVklJIiwiVklJSSIsIklYIl07ZnVuY3Rpb24gVUEoQSxlPSExKXtMKE51bWJlci5pc0ludGVnZXIoQSkmJkE+MCwiVGhlIG51bWJlciBzaG91bGQgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLiIpO2NvbnN0IHQ9W107bGV0IGk7Zm9yKDtBPj0xZTM7KUEtPTFlMyx0LnB1c2goIk0iKTtpPUEvMTAwfDAsQSU9MTAwLHQucHVzaCh4QVtpXSksaT1BLzEwfDAsQSU9MTAsdC5wdXNoKHhBWzEwK2ldKSx0LnB1c2goeEFbMjArQV0pO2NvbnN0IGE9dC5qb2luKCIiKTtyZXR1cm4gZT9hLnRvTG93ZXJDYXNlKCk6YX1mdW5jdGlvbiBNQShBKXtyZXR1cm4gQTw9MD8wOk1hdGguY2VpbChNYXRoLmxvZzIoQSkpfWZ1bmN0aW9uIExBKEEsZSl7cmV0dXJuIEFbZV08PDI0Pj4yNH1mdW5jdGlvbiBKQShBLGUpe3JldHVybiBBW2VdPDw4fEFbZSsxXX1mdW5jdGlvbiBIQShBLGUpe3JldHVybihBW2VdPDwyNHxBW2UrMV08PDE2fEFbZSsyXTw8OHxBW2UrM10pPj4+MH1mdW5jdGlvbiBZQShBKXtyZXR1cm4gMzI9PT1BfHw5PT09QXx8MTM9PT1BfHwxMD09PUF9ZnVuY3Rpb24gdkEoQSxlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShBKT8obnVsbD09PWV8fEEubGVuZ3RoPT09ZSkmJkEuZXZlcnkoKEE9PiJudW1iZXIiPT10eXBlb2YgQSkpOkFycmF5QnVmZmVyLmlzVmlldyhBKSYmKDA9PT1BLmxlbmd0aHx8Im51bWJlciI9PXR5cGVvZiBBWzBdKSYmKG51bGw9PT1lfHxBLmxlbmd0aD09PWUpfWZ1bmN0aW9uIEtBKEEsZSl7cmV0dXJuIHZBKEEsNik/QTplfWZ1bmN0aW9uIHFBKEEsZSl7cmV0dXJuIHZBKEEsNCk/QTplfWZ1bmN0aW9uIFRBKEEsZSl7cmV0dXJuIHZBKEEsNCk/JC5ub3JtYWxpemVSZWN0KEEpOmV9ZnVuY3Rpb24gUEEoQSl7Y29uc3QgZT0vKC4rKVxbKFxkKylcXSQvO3JldHVybiBBLnNwbGl0KCIuIikubWFwKChBPT57Y29uc3QgdD1BLm1hdGNoKGUpO3JldHVybiB0P3tuYW1lOnRbMV0scG9zOnBhcnNlSW50KHRbMl0sMTApfTp7bmFtZTpBLHBvczowfX0pKX1mdW5jdGlvbiBXQShBKXtjb25zdCBlPVtdO2xldCB0PTA7Zm9yKGxldCBpPTAsYT1BLmxlbmd0aDtpPGE7aSsrKXtjb25zdCBhPUEuY2hhckNvZGVBdChpKTsoYTwzM3x8YT4xMjZ8fDM1PT09YXx8NDA9PT1hfHw0MT09PWF8fDYwPT09YXx8NjI9PT1hfHw5MT09PWF8fDkzPT09YXx8MTIzPT09YXx8MTI1PT09YXx8NDc9PT1hfHwzNz09PWEpJiYodDxpJiZlLnB1c2goQS5zdWJzdHJpbmcodCxpKSksZS5wdXNoKGAjJHthLnRvU3RyaW5nKDE2KX1gKSx0PWkrMSl9cmV0dXJuIDA9PT1lLmxlbmd0aD9BOih0PEEubGVuZ3RoJiZlLnB1c2goQS5zdWJzdHJpbmcodCxBLmxlbmd0aCkpLGUuam9pbigiIikpfWZ1bmN0aW9uIE9BKEEpe3JldHVybiBBLnJlcGxhY2VBbGwoLyhbKClcXFxuXHJdKS9nLChBPT4iXG4iPT09QT8iXFxuIjoiXHIiPT09QT8iXFxyIjpgXFwke0F9YCkpfWZ1bmN0aW9uIFpBKEEsZSx0LGkpe2lmKCFBKXJldHVybjtsZXQgYT1udWxsO2lmKEEgaW5zdGFuY2VvZiBFQSl7aWYoaS5oYXMoQSkpcmV0dXJuO2E9QSxpLnB1dChhKSxBPWUuZmV0Y2goQSl9aWYoQXJyYXkuaXNBcnJheShBKSlmb3IoY29uc3QgYSBvZiBBKVpBKGEsZSx0LGkpO2Vsc2UgaWYoQSBpbnN0YW5jZW9mIFFBKXtpZihmQShBLmdldCgiUyIpLCJKYXZhU2NyaXB0Iikpe2NvbnN0IGU9QS5nZXQoIkpTIik7bGV0IGk7ZSBpbnN0YW5jZW9mIHdBP2k9ZS5nZXRTdHJpbmcoKToic3RyaW5nIj09dHlwZW9mIGUmJihpPWUpLGkmJj1lQShpKS5yZXBsYWNlQWxsKCJcMCIsIiIpLGkmJnQucHVzaChpKX1aQShBLmdldFJhdygiTmV4dCIpLGUsdCxpKX1hJiZpLnJlbW92ZShhKX1mdW5jdGlvbiBqQShBLGUsdCl7Y29uc3QgaT1PYmplY3QuY3JlYXRlKG51bGwpLGE9TkEoe2RpY3Q6ZSxrZXk6IkFBIixzdG9wV2hlbkZvdW5kOiExfSk7aWYoYSlmb3IobGV0IGU9YS5sZW5ndGgtMTtlPj0wO2UtLSl7Y29uc3Qgcz1hW2VdO2lmKHMgaW5zdGFuY2VvZiBRQSlmb3IoY29uc3QgZSBvZiBzLmdldEtleXMoKSl7Y29uc3QgYT10W2VdO2lmKCFhKWNvbnRpbnVlO2NvbnN0IG49W107WkEocy5nZXRSYXcoZSksQSxuLG5ldyB1QSksbi5sZW5ndGg+MCYmKGlbYV09bil9fWlmKGUuaGFzKCJBIikpe2NvbnN0IHQ9W107WkEoZS5nZXQoIkEiKSxBLHQsbmV3IHVBKSx0Lmxlbmd0aD4wJiYoaS5BY3Rpb249dCl9cmV0dXJuIFYoaSk+MD9pOm51bGx9Y29uc3QgWEE9ezYwOiImbHQ7Iiw2MjoiJmd0OyIsMzg6IiZhbXA7IiwzNDoiJnF1b3Q7IiwzOToiJmFwb3M7In07ZnVuY3Rpb24qVkEoQSl7Zm9yKGxldCBlPTAsdD1BLmxlbmd0aDtlPHQ7ZSsrKXtjb25zdCB0PUEuY29kZVBvaW50QXQoZSk7dD41NTI5NSYmKHQ8NTczNDR8fHQ+NjU1MzMpJiZlKysseWllbGQgdH19ZnVuY3Rpb24gX0EoQSl7Y29uc3QgZT1bXTtsZXQgdD0wO2ZvcihsZXQgaT0wLGE9QS5sZW5ndGg7aTxhO2krKyl7Y29uc3QgYT1BLmNvZGVQb2ludEF0KGkpO2lmKDMyPD1hJiZhPD0xMjYpe2NvbnN0IHM9WEFbYV07cyYmKHQ8aSYmZS5wdXNoKEEuc3Vic3RyaW5nKHQsaSkpLGUucHVzaChzKSx0PWkrMSl9ZWxzZSB0PGkmJmUucHVzaChBLnN1YnN0cmluZyh0LGkpKSxlLnB1c2goYCYjeCR7YS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKX07YCksYT41NTI5NSYmKGE8NTczNDR8fGE+NjU1MzMpJiZpKyssdD1pKzF9cmV0dXJuIDA9PT1lLmxlbmd0aD9BOih0PEEubGVuZ3RoJiZlLnB1c2goQS5zdWJzdHJpbmcodCxBLmxlbmd0aCkpLGUuam9pbigiIikpfWZ1bmN0aW9uIHpBKEEsZT0hMSl7Y29uc3QgdD0vXigifCcpLiooInwnKSQvLmV4ZWMoQSk7aWYodCYmdFsxXT09PXRbMl0pe2lmKG5ldyBSZWdFeHAoYFteXFxcXF0ke3RbMV19YCkudGVzdChBLnNsaWNlKDEsLTEpKSlyZXR1cm4gZSYmVShgRm9udEZhbWlseSBjb250YWlucyB1bmVzY2FwZWQgJHt0WzFdfTogJHtBfS5gKSwhMX1lbHNlIGZvcihjb25zdCB0IG9mIEEuc3BsaXQoL1sgXHRdKy8pKWlmKC9eKFxkfCgtKFxkfC0pKSkvLnRlc3QodCl8fCEvXltcdy1cXF0rJC8udGVzdCh0KSlyZXR1cm4gZSYmVShgRm9udEZhbWlseSBjb250YWlucyBpbnZhbGlkIDxjdXN0b20taWRlbnQ+OiAke0F9LmApLCExO3JldHVybiEwfWZ1bmN0aW9uICRBKEEpe2NvbnN0IGU9bmV3IFNldChbIjEwMCIsIjIwMCIsIjMwMCIsIjQwMCIsIjUwMCIsIjYwMCIsIjcwMCIsIjgwMCIsIjkwMCIsIjEwMDAiLCJub3JtYWwiLCJib2xkIiwiYm9sZGVyIiwibGlnaHRlciJdKSx7Zm9udEZhbWlseTp0LGZvbnRXZWlnaHQ6aSxpdGFsaWNBbmdsZTphfT1BO2lmKCF6QSh0LCEwKSlyZXR1cm4hMTtjb25zdCBzPWk/aS50b1N0cmluZygpOiIiO0EuZm9udFdlaWdodD1lLmhhcyhzKT9zOiI0MDAiO2NvbnN0IG49cGFyc2VGbG9hdChhKTtyZXR1cm4gQS5pdGFsaWNBbmdsZT1pc05hTihuKXx8bjwtOTB8fG4+OTA/IjE0IjphLnRvU3RyaW5nKCksITB9ZnVuY3Rpb24gQWUoQSl7Y29uc3QgZT1uZXcgUmVnRXhwKCJeXFxzKigiK1siYXBwLmxhdW5jaFVSTCIsIndpbmRvdy5vcGVuIiwieGZhLmhvc3QuZ290b1VSTCJdLmpvaW4oInwiKS5yZXBsYWNlQWxsKCIuIiwiXFwuIikrIilcXCgoPzonfFwiKShbXidcIl0qKSg/Oid8XCIpKD86LFxccyooXFx3KylcXCl8XFwpKSIsImkiKS5leGVjKEEpO2lmKGU/LlsyXSl7Y29uc3QgQT1lWzJdO2xldCB0PSExO3JldHVybiJ0cnVlIj09PWVbM10mJiJhcHAubGF1bmNoVVJMIj09PWVbMV0mJih0PSEwKSx7dXJsOkEsbmV3V2luZG93OnR9fXJldHVybiBudWxsfWZ1bmN0aW9uIGVlKEEpe2lmKE51bWJlci5pc0ludGVnZXIoQSkpcmV0dXJuIEEudG9TdHJpbmcoKTtjb25zdCBlPU1hdGgucm91bmQoMTAwKkEpO3JldHVybiBlJTEwMD09MD8oZS8xMDApLnRvU3RyaW5nKCk6ZSUxMD09MD9BLnRvRml4ZWQoMSk6QS50b0ZpeGVkKDIpfWZ1bmN0aW9uIHRlKEEpe2lmKCFBKXJldHVybiBudWxsO2NvbnN0IGU9bmV3IE1hcDtmb3IoY29uc3RbdCxpXW9mIEEpe2lmKCF0LnN0YXJ0c1dpdGgobykpY29udGludWU7bGV0IEE9ZS5nZXQoaS5wYWdlSW5kZXgpO0F8fChBPVtdLGUuc2V0KGkucGFnZUluZGV4LEEpKSxBLnB1c2goaSl9cmV0dXJuIGUuc2l6ZT4wP2U6bnVsbH1mdW5jdGlvbiBpZShBKXtyZXR1cm4gZnVuY3Rpb24oQSl7cmV0dXJuL15bXHgwMC1ceDdGXSokLy50ZXN0KEEpfShBKT9BOnNlKEEsITApfWZ1bmN0aW9uIGFlKEEpe2NvbnN0IGU9W107Zm9yKGxldCB0PTAsaT1BLmxlbmd0aDt0PGk7dCsrKXtjb25zdCBpPUEuY2hhckNvZGVBdCh0KTtlLnB1c2goKGk+PjgmMjU1KS50b1N0cmluZygxNikucGFkU3RhcnQoMiwiMCIpLCgyNTUmaSkudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSl9cmV0dXJuIGUuam9pbigiIil9ZnVuY3Rpb24gc2UoQSxlPSExKXtjb25zdCB0PVtdO2UmJnQucHVzaCgiw77DvyIpO2ZvcihsZXQgZT0wLGk9QS5sZW5ndGg7ZTxpO2UrKyl7Y29uc3QgaT1BLmNoYXJDb2RlQXQoZSk7dC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoaT4+OCYyNTUpLFN0cmluZy5mcm9tQ2hhckNvZGUoMjU1JmkpKX1yZXR1cm4gdC5qb2luKCIiKX1mdW5jdGlvbiBuZShBLGUsdCl7c3dpdGNoKEEpe2Nhc2UgOTA6cmV0dXJuWzAsMSwtMSwwLGUsMF07Y2FzZSAxODA6cmV0dXJuWy0xLDAsMCwtMSxlLHRdO2Nhc2UgMjcwOnJldHVyblswLC0xLDEsMCwwLHRdO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHJvdGF0aW9uIil9fWZ1bmN0aW9uIHJlKEEpe3JldHVybiBNYXRoLmNlaWwoTWF0aC5jZWlsKE1hdGgubG9nMigxK0EpKS84KX1jbGFzcyBnZSBleHRlbmRzIHdBe2NvbnN0cnVjdG9yKEEsZSx0LGkpe3N1cGVyKCksdGhpcy5ieXRlcz1BIGluc3RhbmNlb2YgVWludDhBcnJheT9BOm5ldyBVaW50OEFycmF5KEEpLHRoaXMuc3RhcnQ9ZXx8MCx0aGlzLnBvcz10aGlzLnN0YXJ0LHRoaXMuZW5kPWUrdHx8dGhpcy5ieXRlcy5sZW5ndGgsdGhpcy5kaWN0PWl9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmVuZC10aGlzLnN0YXJ0fWdldCBpc0VtcHR5KCl7cmV0dXJuIDA9PT10aGlzLmxlbmd0aH1nZXRCeXRlKCl7cmV0dXJuIHRoaXMucG9zPj10aGlzLmVuZD8tMTp0aGlzLmJ5dGVzW3RoaXMucG9zKytdfWdldEJ5dGVzKEEpe2NvbnN0IGU9dGhpcy5ieXRlcyx0PXRoaXMucG9zLGk9dGhpcy5lbmQ7aWYoIUEpcmV0dXJuIGUuc3ViYXJyYXkodCxpKTtsZXQgYT10K0E7cmV0dXJuIGE+aSYmKGE9aSksdGhpcy5wb3M9YSxlLnN1YmFycmF5KHQsYSl9Z2V0Qnl0ZVJhbmdlKEEsZSl7cmV0dXJuIEE8MCYmKEE9MCksZT50aGlzLmVuZCYmKGU9dGhpcy5lbmQpLHRoaXMuYnl0ZXMuc3ViYXJyYXkoQSxlKX1yZXNldCgpe3RoaXMucG9zPXRoaXMuc3RhcnR9bW92ZVN0YXJ0KCl7dGhpcy5zdGFydD10aGlzLnBvc31tYWtlU3ViU3RyZWFtKEEsZSx0PW51bGwpe3JldHVybiBuZXcgZ2UodGhpcy5ieXRlcy5idWZmZXIsQSxlLHQpfX1jbGFzcyBvZSBleHRlbmRzIGdle2NvbnN0cnVjdG9yKEEpe3N1cGVyKGooQSkpfX1jbGFzcyBJZSBleHRlbmRzIGdle2NvbnN0cnVjdG9yKCl7c3VwZXIobmV3IFVpbnQ4QXJyYXkoMCkpfX1jbGFzcyBjZSBleHRlbmRzIGdle2NvbnN0cnVjdG9yKEEsZSx0KXtzdXBlcihuZXcgVWludDhBcnJheShBKSwwLEEsbnVsbCksdGhpcy5jaHVua1NpemU9ZSx0aGlzLl9sb2FkZWRDaHVua3M9bmV3IFNldCx0aGlzLm51bUNodW5rcz1NYXRoLmNlaWwoQS9lKSx0aGlzLm1hbmFnZXI9dCx0aGlzLnByb2dyZXNzaXZlRGF0YUxlbmd0aD0wLHRoaXMubGFzdFN1Y2Nlc3NmdWxFbnN1cmVCeXRlQ2h1bms9LTF9Z2V0TWlzc2luZ0NodW5rcygpe2NvbnN0IEE9W107Zm9yKGxldCBlPTAsdD10aGlzLm51bUNodW5rcztlPHQ7KytlKXRoaXMuX2xvYWRlZENodW5rcy5oYXMoZSl8fEEucHVzaChlKTtyZXR1cm4gQX1nZXQgbnVtQ2h1bmtzTG9hZGVkKCl7cmV0dXJuIHRoaXMuX2xvYWRlZENodW5rcy5zaXplfWdldCBpc0RhdGFMb2FkZWQoKXtyZXR1cm4gdGhpcy5udW1DaHVua3NMb2FkZWQ9PT10aGlzLm51bUNodW5rc31vblJlY2VpdmVEYXRhKEEsZSl7Y29uc3QgdD10aGlzLmNodW5rU2l6ZTtpZihBJXQhPTApdGhyb3cgbmV3IEVycm9yKGBCYWQgYmVnaW4gb2Zmc2V0OiAke0F9YCk7Y29uc3QgaT1BK2UuYnl0ZUxlbmd0aDtpZihpJXQhPTAmJmkhPT10aGlzLmJ5dGVzLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYEJhZCBlbmQgb2Zmc2V0OiAke2l9YCk7dGhpcy5ieXRlcy5zZXQobmV3IFVpbnQ4QXJyYXkoZSksQSk7Y29uc3QgYT1NYXRoLmZsb29yKEEvdCkscz1NYXRoLmZsb29yKChpLTEpL3QpKzE7Zm9yKGxldCBBPWE7QTxzOysrQSl0aGlzLl9sb2FkZWRDaHVua3MuYWRkKEEpfW9uUmVjZWl2ZVByb2dyZXNzaXZlRGF0YShBKXtsZXQgZT10aGlzLnByb2dyZXNzaXZlRGF0YUxlbmd0aDtjb25zdCB0PU1hdGguZmxvb3IoZS90aGlzLmNodW5rU2l6ZSk7dGhpcy5ieXRlcy5zZXQobmV3IFVpbnQ4QXJyYXkoQSksZSksZSs9QS5ieXRlTGVuZ3RoLHRoaXMucHJvZ3Jlc3NpdmVEYXRhTGVuZ3RoPWU7Y29uc3QgaT1lPj10aGlzLmVuZD90aGlzLm51bUNodW5rczpNYXRoLmZsb29yKGUvdGhpcy5jaHVua1NpemUpO2ZvcihsZXQgQT10O0E8aTsrK0EpdGhpcy5fbG9hZGVkQ2h1bmtzLmFkZChBKX1lbnN1cmVCeXRlKEEpe2lmKEE8dGhpcy5wcm9ncmVzc2l2ZURhdGFMZW5ndGgpcmV0dXJuO2NvbnN0IGU9TWF0aC5mbG9vcihBL3RoaXMuY2h1bmtTaXplKTtpZighKGU+dGhpcy5udW1DaHVua3MpJiZlIT09dGhpcy5sYXN0U3VjY2Vzc2Z1bEVuc3VyZUJ5dGVDaHVuayl7aWYoIXRoaXMuX2xvYWRlZENodW5rcy5oYXMoZSkpdGhyb3cgbmV3IGtBKEEsQSsxKTt0aGlzLmxhc3RTdWNjZXNzZnVsRW5zdXJlQnl0ZUNodW5rPWV9fWVuc3VyZVJhbmdlKEEsZSl7aWYoQT49ZSlyZXR1cm47aWYoZTw9dGhpcy5wcm9ncmVzc2l2ZURhdGFMZW5ndGgpcmV0dXJuO2NvbnN0IHQ9TWF0aC5mbG9vcihBL3RoaXMuY2h1bmtTaXplKTtpZih0PnRoaXMubnVtQ2h1bmtzKXJldHVybjtjb25zdCBpPU1hdGgubWluKE1hdGguZmxvb3IoKGUtMSkvdGhpcy5jaHVua1NpemUpKzEsdGhpcy5udW1DaHVua3MpO2ZvcihsZXQgYT10O2E8aTsrK2EpaWYoIXRoaXMuX2xvYWRlZENodW5rcy5oYXMoYSkpdGhyb3cgbmV3IGtBKEEsZSl9bmV4dEVtcHR5Q2h1bmsoQSl7Y29uc3QgZT10aGlzLm51bUNodW5rcztmb3IobGV0IHQ9MDt0PGU7Kyt0KXtjb25zdCBpPShBK3QpJWU7aWYoIXRoaXMuX2xvYWRlZENodW5rcy5oYXMoaSkpcmV0dXJuIGl9cmV0dXJuIG51bGx9aGFzQ2h1bmsoQSl7cmV0dXJuIHRoaXMuX2xvYWRlZENodW5rcy5oYXMoQSl9Z2V0Qnl0ZSgpe2NvbnN0IEE9dGhpcy5wb3M7cmV0dXJuIEE+PXRoaXMuZW5kPy0xOihBPj10aGlzLnByb2dyZXNzaXZlRGF0YUxlbmd0aCYmdGhpcy5lbnN1cmVCeXRlKEEpLHRoaXMuYnl0ZXNbdGhpcy5wb3MrK10pfWdldEJ5dGVzKEEpe2NvbnN0IGU9dGhpcy5ieXRlcyx0PXRoaXMucG9zLGk9dGhpcy5lbmQ7aWYoIUEpcmV0dXJuIGk+dGhpcy5wcm9ncmVzc2l2ZURhdGFMZW5ndGgmJnRoaXMuZW5zdXJlUmFuZ2UodCxpKSxlLnN1YmFycmF5KHQsaSk7bGV0IGE9dCtBO3JldHVybiBhPmkmJihhPWkpLGE+dGhpcy5wcm9ncmVzc2l2ZURhdGFMZW5ndGgmJnRoaXMuZW5zdXJlUmFuZ2UodCxhKSx0aGlzLnBvcz1hLGUuc3ViYXJyYXkodCxhKX1nZXRCeXRlUmFuZ2UoQSxlKXtyZXR1cm4gQTwwJiYoQT0wKSxlPnRoaXMuZW5kJiYoZT10aGlzLmVuZCksZT50aGlzLnByb2dyZXNzaXZlRGF0YUxlbmd0aCYmdGhpcy5lbnN1cmVSYW5nZShBLGUpLHRoaXMuYnl0ZXMuc3ViYXJyYXkoQSxlKX1tYWtlU3ViU3RyZWFtKEEsZSx0PW51bGwpe2Z1bmN0aW9uIGkoKXt9ZT9BK2U+dGhpcy5wcm9ncmVzc2l2ZURhdGFMZW5ndGgmJnRoaXMuZW5zdXJlUmFuZ2UoQSxBK2UpOkE+PXRoaXMucHJvZ3Jlc3NpdmVEYXRhTGVuZ3RoJiZ0aGlzLmVuc3VyZUJ5dGUoQSksaS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0aGlzKSxpLnByb3RvdHlwZS5nZXRNaXNzaW5nQ2h1bmtzPWZ1bmN0aW9uKCl7Y29uc3QgQT10aGlzLmNodW5rU2l6ZSxlPU1hdGguZmxvb3IodGhpcy5zdGFydC9BKSx0PU1hdGguZmxvb3IoKHRoaXMuZW5kLTEpL0EpKzEsaT1bXTtmb3IobGV0IEE9ZTtBPHQ7KytBKXRoaXMuX2xvYWRlZENodW5rcy5oYXMoQSl8fGkucHVzaChBKTtyZXR1cm4gaX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGkucHJvdG90eXBlLCJpc0RhdGFMb2FkZWQiLHtnZXQoKXtyZXR1cm4gdGhpcy5udW1DaHVua3NMb2FkZWQ9PT10aGlzLm51bUNodW5rc3x8MD09PXRoaXMuZ2V0TWlzc2luZ0NodW5rcygpLmxlbmd0aH0sY29uZmlndXJhYmxlOiEwfSk7Y29uc3QgYT1uZXcgaTtyZXR1cm4gYS5wb3M9YS5zdGFydD1BLGEuZW5kPUErZXx8dGhpcy5lbmQsYS5kaWN0PXQsYX1nZXRCYXNlU3RyZWFtcygpe3JldHVyblt0aGlzXX19Y2xhc3MgaGV7Y29uc3RydWN0b3IoQSxlKXt0aGlzLmxlbmd0aD1lLmxlbmd0aCx0aGlzLmNodW5rU2l6ZT1lLnJhbmdlQ2h1bmtTaXplLHRoaXMuc3RyZWFtPW5ldyBjZSh0aGlzLmxlbmd0aCx0aGlzLmNodW5rU2l6ZSx0aGlzKSx0aGlzLnBkZk5ldHdvcmtTdHJlYW09QSx0aGlzLmRpc2FibGVBdXRvRmV0Y2g9ZS5kaXNhYmxlQXV0b0ZldGNoLHRoaXMubXNnSGFuZGxlcj1lLm1zZ0hhbmRsZXIsdGhpcy5jdXJyUmVxdWVzdElkPTAsdGhpcy5fY2h1bmtzTmVlZGVkQnlSZXF1ZXN0PW5ldyBNYXAsdGhpcy5fcmVxdWVzdHNCeUNodW5rPW5ldyBNYXAsdGhpcy5fcHJvbWlzZXNCeVJlcXVlc3Q9bmV3IE1hcCx0aGlzLnByb2dyZXNzaXZlRGF0YUxlbmd0aD0wLHRoaXMuYWJvcnRlZD0hMSx0aGlzLl9sb2FkZWRTdHJlYW1DYXBhYmlsaXR5PVByb21pc2Uud2l0aFJlc29sdmVycygpfXNlbmRSZXF1ZXN0KEEsZSl7Y29uc3QgdD10aGlzLnBkZk5ldHdvcmtTdHJlYW0uZ2V0UmFuZ2VSZWFkZXIoQSxlKTt0LmlzU3RyZWFtaW5nU3VwcG9ydGVkfHwodC5vblByb2dyZXNzPXRoaXMub25Qcm9ncmVzcy5iaW5kKHRoaXMpKTtsZXQgaT1bXSxhPTA7cmV0dXJuIG5ldyBQcm9taXNlKCgoQSxlKT0+e2NvbnN0IHM9KHt2YWx1ZTpuLGRvbmU6cn0pPT57dHJ5e2lmKHIpe2NvbnN0IGU9R0EoaSk7cmV0dXJuIGk9bnVsbCx2b2lkIEEoZSl9YSs9bi5ieXRlTGVuZ3RoLHQuaXNTdHJlYW1pbmdTdXBwb3J0ZWQmJnRoaXMub25Qcm9ncmVzcyh7bG9hZGVkOmF9KSxpLnB1c2gobiksdC5yZWFkKCkudGhlbihzLGUpfWNhdGNoKEEpe2UoQSl9fTt0LnJlYWQoKS50aGVuKHMsZSl9KSkudGhlbigoZT0+e3RoaXMuYWJvcnRlZHx8dGhpcy5vblJlY2VpdmVEYXRhKHtjaHVuazplLGJlZ2luOkF9KX0pKX1yZXF1ZXN0QWxsQ2h1bmtzKEE9ITEpe2lmKCFBKXtjb25zdCBBPXRoaXMuc3RyZWFtLmdldE1pc3NpbmdDaHVua3MoKTt0aGlzLl9yZXF1ZXN0Q2h1bmtzKEEpfXJldHVybiB0aGlzLl9sb2FkZWRTdHJlYW1DYXBhYmlsaXR5LnByb21pc2V9X3JlcXVlc3RDaHVua3MoQSl7Y29uc3QgZT10aGlzLmN1cnJSZXF1ZXN0SWQrKyx0PW5ldyBTZXQ7dGhpcy5fY2h1bmtzTmVlZGVkQnlSZXF1ZXN0LnNldChlLHQpO2Zvcihjb25zdCBlIG9mIEEpdGhpcy5zdHJlYW0uaGFzQ2h1bmsoZSl8fHQuYWRkKGUpO2lmKDA9PT10LnNpemUpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO2NvbnN0IGk9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7dGhpcy5fcHJvbWlzZXNCeVJlcXVlc3Quc2V0KGUsaSk7Y29uc3QgYT1bXTtmb3IoY29uc3QgQSBvZiB0KXtsZXQgdD10aGlzLl9yZXF1ZXN0c0J5Q2h1bmsuZ2V0KEEpO3R8fCh0PVtdLHRoaXMuX3JlcXVlc3RzQnlDaHVuay5zZXQoQSx0KSxhLnB1c2goQSkpLHQucHVzaChlKX1pZihhLmxlbmd0aD4wKXtjb25zdCBBPXRoaXMuZ3JvdXBDaHVua3MoYSk7Zm9yKGNvbnN0IGUgb2YgQSl7Y29uc3QgQT1lLmJlZ2luQ2h1bmsqdGhpcy5jaHVua1NpemUsdD1NYXRoLm1pbihlLmVuZENodW5rKnRoaXMuY2h1bmtTaXplLHRoaXMubGVuZ3RoKTt0aGlzLnNlbmRSZXF1ZXN0KEEsdCkuY2F0Y2goaS5yZWplY3QpfX1yZXR1cm4gaS5wcm9taXNlLmNhdGNoKChBPT57aWYoIXRoaXMuYWJvcnRlZCl0aHJvdyBBfSkpfWdldFN0cmVhbSgpe3JldHVybiB0aGlzLnN0cmVhbX1yZXF1ZXN0UmFuZ2UoQSxlKXtlPU1hdGgubWluKGUsdGhpcy5sZW5ndGgpO2NvbnN0IHQ9dGhpcy5nZXRCZWdpbkNodW5rKEEpLGk9dGhpcy5nZXRFbmRDaHVuayhlKSxhPVtdO2ZvcihsZXQgQT10O0E8aTsrK0EpYS5wdXNoKEEpO3JldHVybiB0aGlzLl9yZXF1ZXN0Q2h1bmtzKGEpfXJlcXVlc3RSYW5nZXMoQT1bXSl7Y29uc3QgZT1bXTtmb3IoY29uc3QgdCBvZiBBKXtjb25zdCBBPXRoaXMuZ2V0QmVnaW5DaHVuayh0LmJlZ2luKSxpPXRoaXMuZ2V0RW5kQ2h1bmsodC5lbmQpO2ZvcihsZXQgdD1BO3Q8aTsrK3QpZS5pbmNsdWRlcyh0KXx8ZS5wdXNoKHQpfXJldHVybiBlLnNvcnQoKGZ1bmN0aW9uKEEsZSl7cmV0dXJuIEEtZX0pKSx0aGlzLl9yZXF1ZXN0Q2h1bmtzKGUpfWdyb3VwQ2h1bmtzKEEpe2NvbnN0IGU9W107bGV0IHQ9LTEsaT0tMTtmb3IobGV0IGE9MCxzPUEubGVuZ3RoO2E8czsrK2Epe2NvbnN0IHM9QVthXTt0PDAmJih0PXMpLGk+PTAmJmkrMSE9PXMmJihlLnB1c2goe2JlZ2luQ2h1bms6dCxlbmRDaHVuazppKzF9KSx0PXMpLGErMT09PUEubGVuZ3RoJiZlLnB1c2goe2JlZ2luQ2h1bms6dCxlbmRDaHVuazpzKzF9KSxpPXN9cmV0dXJuIGV9b25Qcm9ncmVzcyhBKXt0aGlzLm1zZ0hhbmRsZXIuc2VuZCgiRG9jUHJvZ3Jlc3MiLHtsb2FkZWQ6dGhpcy5zdHJlYW0ubnVtQ2h1bmtzTG9hZGVkKnRoaXMuY2h1bmtTaXplK0EubG9hZGVkLHRvdGFsOnRoaXMubGVuZ3RofSl9b25SZWNlaXZlRGF0YShBKXtjb25zdCBlPUEuY2h1bmssdD12b2lkIDA9PT1BLmJlZ2luLGk9dD90aGlzLnByb2dyZXNzaXZlRGF0YUxlbmd0aDpBLmJlZ2luLGE9aStlLmJ5dGVMZW5ndGgscz1NYXRoLmZsb29yKGkvdGhpcy5jaHVua1NpemUpLG49YTx0aGlzLmxlbmd0aD9NYXRoLmZsb29yKGEvdGhpcy5jaHVua1NpemUpOk1hdGguY2VpbChhL3RoaXMuY2h1bmtTaXplKTt0Pyh0aGlzLnN0cmVhbS5vblJlY2VpdmVQcm9ncmVzc2l2ZURhdGEoZSksdGhpcy5wcm9ncmVzc2l2ZURhdGFMZW5ndGg9YSk6dGhpcy5zdHJlYW0ub25SZWNlaXZlRGF0YShpLGUpLHRoaXMuc3RyZWFtLmlzRGF0YUxvYWRlZCYmdGhpcy5fbG9hZGVkU3RyZWFtQ2FwYWJpbGl0eS5yZXNvbHZlKHRoaXMuc3RyZWFtKTtjb25zdCByPVtdO2ZvcihsZXQgQT1zO0E8bjsrK0Epe2NvbnN0IGU9dGhpcy5fcmVxdWVzdHNCeUNodW5rLmdldChBKTtpZihlKXt0aGlzLl9yZXF1ZXN0c0J5Q2h1bmsuZGVsZXRlKEEpO2Zvcihjb25zdCB0IG9mIGUpe2NvbnN0IGU9dGhpcy5fY2h1bmtzTmVlZGVkQnlSZXF1ZXN0LmdldCh0KTtlLmhhcyhBKSYmZS5kZWxldGUoQSksZS5zaXplPjB8fHIucHVzaCh0KX19fWlmKCF0aGlzLmRpc2FibGVBdXRvRmV0Y2gmJjA9PT10aGlzLl9yZXF1ZXN0c0J5Q2h1bmsuc2l6ZSl7bGV0IEE7aWYoMT09PXRoaXMuc3RyZWFtLm51bUNodW5rc0xvYWRlZCl7Y29uc3QgZT10aGlzLnN0cmVhbS5udW1DaHVua3MtMTt0aGlzLnN0cmVhbS5oYXNDaHVuayhlKXx8KEE9ZSl9ZWxzZSBBPXRoaXMuc3RyZWFtLm5leHRFbXB0eUNodW5rKG4pO051bWJlci5pc0ludGVnZXIoQSkmJnRoaXMuX3JlcXVlc3RDaHVua3MoW0FdKX1mb3IoY29uc3QgQSBvZiByKXtjb25zdCBlPXRoaXMuX3Byb21pc2VzQnlSZXF1ZXN0LmdldChBKTt0aGlzLl9wcm9taXNlc0J5UmVxdWVzdC5kZWxldGUoQSksZS5yZXNvbHZlKCl9dGhpcy5tc2dIYW5kbGVyLnNlbmQoIkRvY1Byb2dyZXNzIix7bG9hZGVkOnRoaXMuc3RyZWFtLm51bUNodW5rc0xvYWRlZCp0aGlzLmNodW5rU2l6ZSx0b3RhbDp0aGlzLmxlbmd0aH0pfW9uRXJyb3IoQSl7dGhpcy5fbG9hZGVkU3RyZWFtQ2FwYWJpbGl0eS5yZWplY3QoQSl9Z2V0QmVnaW5DaHVuayhBKXtyZXR1cm4gTWF0aC5mbG9vcihBL3RoaXMuY2h1bmtTaXplKX1nZXRFbmRDaHVuayhBKXtyZXR1cm4gTWF0aC5mbG9vcigoQS0xKS90aGlzLmNodW5rU2l6ZSkrMX1hYm9ydChBKXt0aGlzLmFib3J0ZWQ9ITAsdGhpcy5wZGZOZXR3b3JrU3RyZWFtPy5jYW5jZWxBbGxSZXF1ZXN0cyhBKTtmb3IoY29uc3QgZSBvZiB0aGlzLl9wcm9taXNlc0J5UmVxdWVzdC52YWx1ZXMoKSllLnJlamVjdChBKX19dCg0NTIwKSx0KDk0NzkpLHQoMjU3NyksdCg4ODcyKTtjbGFzcyBDZXtjb25zdHJ1Y3RvcihBLGUpe3RoaXMubmFtZT1BLHRoaXMubnVtQ29tcHM9ZX1nZXRSZ2IoQSxlKXtjb25zdCB0PW5ldyBVaW50OENsYW1wZWRBcnJheSgzKTtyZXR1cm4gdGhpcy5nZXRSZ2JJdGVtKEEsZSx0LDApLHR9Z2V0UmdiSXRlbShBLGUsdCxpKXtNKCJTaG91bGQgbm90IGNhbGwgQ29sb3JTcGFjZS5nZXRSZ2JJdGVtIil9Z2V0UmdiQnVmZmVyKEEsZSx0LGksYSxzLG4pe00oIlNob3VsZCBub3QgY2FsbCBDb2xvclNwYWNlLmdldFJnYkJ1ZmZlciIpfWdldE91dHB1dExlbmd0aChBLGUpe00oIlNob3VsZCBub3QgY2FsbCBDb2xvclNwYWNlLmdldE91dHB1dExlbmd0aCIpfWlzUGFzc3Rocm91Z2goQSl7cmV0dXJuITF9aXNEZWZhdWx0RGVjb2RlKEEsZSl7cmV0dXJuIENlLmlzRGVmYXVsdERlY29kZShBLHRoaXMubnVtQ29tcHMpfWZpbGxSZ2IoQSxlLHQsaSxhLHMsbixyLGcpe2NvbnN0IG89ZSp0O2xldCBJPW51bGw7Y29uc3QgYz0xPDxuLGg9dCE9PWF8fGUhPT1pO2lmKHRoaXMuaXNQYXNzdGhyb3VnaChuKSlJPXI7ZWxzZSBpZigxPT09dGhpcy5udW1Db21wcyYmbz5jJiYiRGV2aWNlR3JheSIhPT10aGlzLm5hbWUmJiJEZXZpY2VSR0IiIT09dGhpcy5uYW1lKXtjb25zdCBlPW48PTg/bmV3IFVpbnQ4QXJyYXkoYyk6bmV3IFVpbnQxNkFycmF5KGMpO2ZvcihsZXQgQT0wO0E8YztBKyspZVtBXT1BO2NvbnN0IHQ9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDMqYyk7aWYodGhpcy5nZXRSZ2JCdWZmZXIoZSwwLGMsdCwwLG4sMCksaCl7ST1uZXcgVWludDhBcnJheSgzKm8pO2xldCBBPTA7Zm9yKGxldCBlPTA7ZTxvOysrZSl7Y29uc3QgaT0zKnJbZV07SVtBKytdPXRbaV0sSVtBKytdPXRbaSsxXSxJW0ErK109dFtpKzJdfX1lbHNle2xldCBlPTA7Zm9yKGxldCBpPTA7aTxvOysraSl7Y29uc3QgYT0zKnJbaV07QVtlKytdPXRbYV0sQVtlKytdPXRbYSsxXSxBW2UrK109dFthKzJdLGUrPWd9fX1lbHNlIGg/KEk9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDMqbyksdGhpcy5nZXRSZ2JCdWZmZXIociwwLG8sSSwwLG4sMCkpOnRoaXMuZ2V0UmdiQnVmZmVyKHIsMCxpKnMsQSwwLG4sZyk7aWYoSSlpZihoKSFmdW5jdGlvbihBLGUsdCxpLGEscyxuKXtuPTEhPT1uPzA6bjtjb25zdCByPXQvYSxnPWkvcztsZXQgbyxJPTA7Y29uc3QgYz1uZXcgVWludDE2QXJyYXkoYSksaD0zKnQ7Zm9yKGxldCBBPTA7QTxhO0ErKyljW0FdPTMqTWF0aC5mbG9vcihBKnIpO2ZvcihsZXQgdD0wO3Q8czt0Kyspe2NvbnN0IGk9TWF0aC5mbG9vcih0KmcpKmg7Zm9yKGxldCB0PTA7dDxhO3QrKylvPWkrY1t0XSxlW0krK109QVtvKytdLGVbSSsrXT1BW28rK10sZVtJKytdPUFbbysrXSxJKz1ufX0oSSxBLGUsdCxpLGEsZyk7ZWxzZXtsZXQgZT0wLHQ9MDtmb3IobGV0IGE9MCxuPWkqczthPG47YSsrKUFbZSsrXT1JW3QrK10sQVtlKytdPUlbdCsrXSxBW2UrK109SVt0KytdLGUrPWd9fWdldCB1c2VzWmVyb1RvT25lUmFuZ2UoKXtyZXR1cm4gSCh0aGlzLCJ1c2VzWmVyb1RvT25lUmFuZ2UiLCEwKX1zdGF0aWMgX2NhY2hlKEEsZSx0LGkpe2lmKCF0KXRocm93IG5ldyBFcnJvcignQ29sb3JTcGFjZS5fY2FjaGUgLSBleHBlY3RlZCAibG9jYWxDb2xvclNwYWNlQ2FjaGUiIGFyZ3VtZW50LicpO2lmKCFpKXRocm93IG5ldyBFcnJvcignQ29sb3JTcGFjZS5fY2FjaGUgLSBleHBlY3RlZCAicGFyc2VkQ29sb3JTcGFjZSIgYXJndW1lbnQuJyk7bGV0IGEscztBIGluc3RhbmNlb2YgRUEmJihzPUEsQT1lLmZldGNoKEEpKSxBIGluc3RhbmNlb2YgQ0EmJihhPUEubmFtZSksKGF8fHMpJiZ0LnNldChhLHMsaSl9c3RhdGljIGdldENhY2hlZChBLGUsdCl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCdDb2xvclNwYWNlLmdldENhY2hlZCAtIGV4cGVjdGVkICJsb2NhbENvbG9yU3BhY2VDYWNoZSIgYXJndW1lbnQuJyk7aWYoQSBpbnN0YW5jZW9mIEVBKXtjb25zdCBpPXQuZ2V0QnlSZWYoQSk7aWYoaSlyZXR1cm4gaTt0cnl7QT1lLmZldGNoKEEpfWNhdGNoKEEpe2lmKEEgaW5zdGFuY2VvZiBrQSl0aHJvdyBBfX1pZihBIGluc3RhbmNlb2YgQ0Epe2NvbnN0IGU9dC5nZXRCeU5hbWUoQS5uYW1lKTtpZihlKXJldHVybiBlfXJldHVybiBudWxsfXN0YXRpYyBhc3luYyBwYXJzZUFzeW5jKHtjczpBLHhyZWY6ZSxyZXNvdXJjZXM6dD1udWxsLHBkZkZ1bmN0aW9uRmFjdG9yeTppLGxvY2FsQ29sb3JTcGFjZUNhY2hlOmF9KXtjb25zdCBzPXRoaXMuX3BhcnNlKEEsZSx0LGkpO3JldHVybiB0aGlzLl9jYWNoZShBLGUsYSxzKSxzfXN0YXRpYyBwYXJzZSh7Y3M6QSx4cmVmOmUscmVzb3VyY2VzOnQ9bnVsbCxwZGZGdW5jdGlvbkZhY3Rvcnk6aSxsb2NhbENvbG9yU3BhY2VDYWNoZTphfSl7Y29uc3Qgcz10aGlzLmdldENhY2hlZChBLGUsYSk7aWYocylyZXR1cm4gcztjb25zdCBuPXRoaXMuX3BhcnNlKEEsZSx0LGkpO3JldHVybiB0aGlzLl9jYWNoZShBLGUsYSxuKSxufXN0YXRpYyBfcGFyc2UoQSxlLHQ9bnVsbCxpKXtpZigoQT1lLmZldGNoSWZSZWYoQSkpaW5zdGFuY2VvZiBDQSlzd2l0Y2goQS5uYW1lKXtjYXNlIkciOmNhc2UiRGV2aWNlR3JheSI6cmV0dXJuIHRoaXMuc2luZ2xldG9ucy5ncmF5O2Nhc2UiUkdCIjpjYXNlIkRldmljZVJHQiI6cmV0dXJuIHRoaXMuc2luZ2xldG9ucy5yZ2I7Y2FzZSJEZXZpY2VSR0JBIjpyZXR1cm4gdGhpcy5zaW5nbGV0b25zLnJnYmE7Y2FzZSJDTVlLIjpjYXNlIkRldmljZUNNWUsiOnJldHVybiB0aGlzLnNpbmdsZXRvbnMuY215aztjYXNlIlBhdHRlcm4iOnJldHVybiBuZXcgbGUobnVsbCk7ZGVmYXVsdDppZih0IGluc3RhbmNlb2YgUUEpe2NvbnN0IGE9dC5nZXQoIkNvbG9yU3BhY2UiKTtpZihhIGluc3RhbmNlb2YgUUEpe2NvbnN0IHM9YS5nZXQoQS5uYW1lKTtpZihzKXtpZihzIGluc3RhbmNlb2YgQ0EpcmV0dXJuIHRoaXMuX3BhcnNlKHMsZSx0LGkpO0E9czticmVha319fXJldHVybiBVKGBVbnJlY29nbml6ZWQgQ29sb3JTcGFjZTogJHtBLm5hbWV9YCksdGhpcy5zaW5nbGV0b25zLmdyYXl9aWYoQXJyYXkuaXNBcnJheShBKSl7Y29uc3QgYT1lLmZldGNoSWZSZWYoQVswXSkubmFtZTtsZXQgcyxuLHIsZyxvLEk7c3dpdGNoKGEpe2Nhc2UiRyI6Y2FzZSJEZXZpY2VHcmF5IjpyZXR1cm4gdGhpcy5zaW5nbGV0b25zLmdyYXk7Y2FzZSJSR0IiOmNhc2UiRGV2aWNlUkdCIjpyZXR1cm4gdGhpcy5zaW5nbGV0b25zLnJnYjtjYXNlIkNNWUsiOmNhc2UiRGV2aWNlQ01ZSyI6cmV0dXJuIHRoaXMuc2luZ2xldG9ucy5jbXlrO2Nhc2UiQ2FsR3JheSI6cmV0dXJuIHM9ZS5mZXRjaElmUmVmKEFbMV0pLGc9cy5nZXRBcnJheSgiV2hpdGVQb2ludCIpLG89cy5nZXRBcnJheSgiQmxhY2tQb2ludCIpLEk9cy5nZXQoIkdhbW1hIiksbmV3IHBlKGcsbyxJKTtjYXNlIkNhbFJHQiI6cz1lLmZldGNoSWZSZWYoQVsxXSksZz1zLmdldEFycmF5KCJXaGl0ZVBvaW50Iiksbz1zLmdldEFycmF5KCJCbGFja1BvaW50IiksST1zLmdldEFycmF5KCJHYW1tYSIpO2NvbnN0IGM9cy5nZXRBcnJheSgiTWF0cml4Iik7cmV0dXJuIG5ldyBtZShnLG8sSSxjKTtjYXNlIklDQ0Jhc2VkIjpjb25zdCBoPWUuZmV0Y2hJZlJlZihBWzFdKS5kaWN0O249aC5nZXQoIk4iKTtjb25zdCBDPWguZ2V0KCJBbHRlcm5hdGUiKTtpZihDKXtjb25zdCBBPXRoaXMuX3BhcnNlKEMsZSx0LGkpO2lmKEEubnVtQ29tcHM9PT1uKXJldHVybiBBO1UoIklDQ0Jhc2VkIGNvbG9yIHNwYWNlOiBJZ25vcmluZyBpbmNvcnJlY3QgL0FsdGVybmF0ZSBlbnRyeS4iKX1pZigxPT09bilyZXR1cm4gdGhpcy5zaW5nbGV0b25zLmdyYXk7aWYoMz09PW4pcmV0dXJuIHRoaXMuc2luZ2xldG9ucy5yZ2I7aWYoND09PW4pcmV0dXJuIHRoaXMuc2luZ2xldG9ucy5jbXlrO2JyZWFrO2Nhc2UiUGF0dGVybiI6cmV0dXJuIHI9QVsxXXx8bnVsbCxyJiYocj10aGlzLl9wYXJzZShyLGUsdCxpKSksbmV3IGxlKHIpO2Nhc2UiSSI6Y2FzZSJJbmRleGVkIjpyPXRoaXMuX3BhcnNlKEFbMV0sZSx0LGkpO2NvbnN0IEI9ZS5mZXRjaElmUmVmKEFbMl0pKzEsbD1lLmZldGNoSWZSZWYoQVszXSk7cmV0dXJuIG5ldyBRZShyLEIsbCk7Y2FzZSJTZXBhcmF0aW9uIjpjYXNlIkRldmljZU4iOmNvbnN0IFE9ZS5mZXRjaElmUmVmKEFbMV0pO249QXJyYXkuaXNBcnJheShRKT9RLmxlbmd0aDoxLHI9dGhpcy5fcGFyc2UoQVsyXSxlLHQsaSk7Y29uc3QgRT1pLmNyZWF0ZShBWzNdKTtyZXR1cm4gbmV3IEJlKG4scixFKTtjYXNlIkxhYiI6cz1lLmZldGNoSWZSZWYoQVsxXSksZz1zLmdldEFycmF5KCJXaGl0ZVBvaW50Iiksbz1zLmdldEFycmF5KCJCbGFja1BvaW50Iik7Y29uc3QgdT1zLmdldEFycmF5KCJSYW5nZSIpO3JldHVybiBuZXcgeWUoZyxvLHUpO2RlZmF1bHQ6cmV0dXJuIFUoYFVuaW1wbGVtZW50ZWQgQ29sb3JTcGFjZSBvYmplY3Q6ICR7YX1gKSx0aGlzLnNpbmdsZXRvbnMuZ3JheX19cmV0dXJuIFUoYFVucmVjb2duaXplZCBDb2xvclNwYWNlIG9iamVjdDogJHtBfWApLHRoaXMuc2luZ2xldG9ucy5ncmF5fXN0YXRpYyBpc0RlZmF1bHREZWNvZGUoQSxlKXtpZighQXJyYXkuaXNBcnJheShBKSlyZXR1cm4hMDtpZigyKmUhPT1BLmxlbmd0aClyZXR1cm4gVSgiVGhlIGRlY29kZSBtYXAgaXMgbm90IHRoZSBjb3JyZWN0IGxlbmd0aCIpLCEwO2ZvcihsZXQgZT0wLHQ9QS5sZW5ndGg7ZTx0O2UrPTIpaWYoMCE9PUFbZV18fDEhPT1BW2UrMV0pcmV0dXJuITE7cmV0dXJuITB9c3RhdGljIGdldCBzaW5nbGV0b25zKCl7cmV0dXJuIEgodGhpcywic2luZ2xldG9ucyIse2dldCBncmF5KCl7cmV0dXJuIEgodGhpcywiZ3JheSIsbmV3IEVlKX0sZ2V0IHJnYigpe3JldHVybiBIKHRoaXMsInJnYiIsbmV3IHVlKX0sZ2V0IHJnYmEoKXtyZXR1cm4gSCh0aGlzLCJyZ2JhIixuZXcgZGUpfSxnZXQgY215aygpe3JldHVybiBIKHRoaXMsImNteWsiLG5ldyBmZSl9fSl9fWNsYXNzIEJlIGV4dGVuZHMgQ2V7Y29uc3RydWN0b3IoQSxlLHQpe3N1cGVyKCJBbHRlcm5hdGUiLEEpLHRoaXMuYmFzZT1lLHRoaXMudGludEZuPXQsdGhpcy50bXBCdWY9bmV3IEZsb2F0MzJBcnJheShlLm51bUNvbXBzKX1nZXRSZ2JJdGVtKEEsZSx0LGkpe2NvbnN0IGE9dGhpcy50bXBCdWY7dGhpcy50aW50Rm4oQSxlLGEsMCksdGhpcy5iYXNlLmdldFJnYkl0ZW0oYSwwLHQsaSl9Z2V0UmdiQnVmZmVyKEEsZSx0LGksYSxzLG4pe2NvbnN0IHI9dGhpcy50aW50Rm4sZz10aGlzLmJhc2Usbz0xLygoMTw8cyktMSksST1nLm51bUNvbXBzLGM9Zy51c2VzWmVyb1RvT25lUmFuZ2UsaD0oZy5pc1Bhc3N0aHJvdWdoKDgpfHwhYykmJjA9PT1uO2xldCBDPWg/YTowO2NvbnN0IEI9aD9pOm5ldyBVaW50OENsYW1wZWRBcnJheShJKnQpLGw9dGhpcy5udW1Db21wcyxRPW5ldyBGbG9hdDMyQXJyYXkobCksRT1uZXcgRmxvYXQzMkFycmF5KEkpO2xldCB1LGQ7Zm9yKHU9MDt1PHQ7dSsrKXtmb3IoZD0wO2Q8bDtkKyspUVtkXT1BW2UrK10qbztpZihyKFEsMCxFLDApLGMpZm9yKGQ9MDtkPEk7ZCsrKUJbQysrXT0yNTUqRVtkXTtlbHNlIGcuZ2V0UmdiSXRlbShFLDAsQixDKSxDKz1JfWh8fGcuZ2V0UmdiQnVmZmVyKEIsMCx0LGksYSw4LG4pfWdldE91dHB1dExlbmd0aChBLGUpe3JldHVybiB0aGlzLmJhc2UuZ2V0T3V0cHV0TGVuZ3RoKEEqdGhpcy5iYXNlLm51bUNvbXBzL3RoaXMubnVtQ29tcHMsZSl9fWNsYXNzIGxlIGV4dGVuZHMgQ2V7Y29uc3RydWN0b3IoQSl7c3VwZXIoIlBhdHRlcm4iLG51bGwpLHRoaXMuYmFzZT1BfWlzRGVmYXVsdERlY29kZShBLGUpe00oIlNob3VsZCBub3QgY2FsbCBQYXR0ZXJuQ1MuaXNEZWZhdWx0RGVjb2RlIil9fWNsYXNzIFFlIGV4dGVuZHMgQ2V7Y29uc3RydWN0b3IoQSxlLHQpe3N1cGVyKCJJbmRleGVkIiwxKSx0aGlzLmJhc2U9QSx0aGlzLmhpZ2hWYWw9ZTtjb25zdCBpPUEubnVtQ29tcHMqZTtpZih0aGlzLmxvb2t1cD1uZXcgVWludDhBcnJheShpKSx0IGluc3RhbmNlb2Ygd0Epe2NvbnN0IEE9dC5nZXRCeXRlcyhpKTt0aGlzLmxvb2t1cC5zZXQoQSl9ZWxzZXtpZigic3RyaW5nIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFcoYEluZGV4ZWRDUyAtIHVucmVjb2duaXplZCBsb29rdXAgdGFibGU6ICR7dH1gKTtmb3IobGV0IEE9MDtBPGk7KytBKXRoaXMubG9va3VwW0FdPTI1NSZ0LmNoYXJDb2RlQXQoQSl9fWdldFJnYkl0ZW0oQSxlLHQsaSl7Y29uc3QgYT10aGlzLmJhc2UubnVtQ29tcHMscz1BW2VdKmE7dGhpcy5iYXNlLmdldFJnYkJ1ZmZlcih0aGlzLmxvb2t1cCxzLDEsdCxpLDgsMCl9Z2V0UmdiQnVmZmVyKEEsZSx0LGksYSxzLG4pe2NvbnN0IHI9dGhpcy5iYXNlLGc9ci5udW1Db21wcyxvPXIuZ2V0T3V0cHV0TGVuZ3RoKGcsbiksST10aGlzLmxvb2t1cDtmb3IobGV0IHM9MDtzPHQ7KytzKXtjb25zdCB0PUFbZSsrXSpnO3IuZ2V0UmdiQnVmZmVyKEksdCwxLGksYSw4LG4pLGErPW99fWdldE91dHB1dExlbmd0aChBLGUpe3JldHVybiB0aGlzLmJhc2UuZ2V0T3V0cHV0TGVuZ3RoKEEqdGhpcy5iYXNlLm51bUNvbXBzLGUpfWlzRGVmYXVsdERlY29kZShBLGUpe3JldHVybiFBcnJheS5pc0FycmF5KEEpfHwoMiE9PUEubGVuZ3RoPyhVKCJEZWNvZGUgbWFwIGxlbmd0aCBpcyBub3QgY29ycmVjdCIpLCEwKTohTnVtYmVyLmlzSW50ZWdlcihlKXx8ZTwxPyhVKCJCaXRzIHBlciBjb21wb25lbnQgaXMgbm90IGNvcnJlY3QiKSwhMCk6MD09PUFbMF0mJkFbMV09PT0oMTw8ZSktMSl9fWNsYXNzIEVlIGV4dGVuZHMgQ2V7Y29uc3RydWN0b3IoKXtzdXBlcigiRGV2aWNlR3JheSIsMSl9Z2V0UmdiSXRlbShBLGUsdCxpKXtjb25zdCBhPTI1NSpBW2VdO3RbaV09dFtpKzFdPXRbaSsyXT1hfWdldFJnYkJ1ZmZlcihBLGUsdCxpLGEscyxuKXtjb25zdCByPTI1NS8oKDE8PHMpLTEpO2xldCBnPWUsbz1hO2ZvcihsZXQgZT0wO2U8dDsrK2Upe2NvbnN0IGU9cipBW2crK107aVtvKytdPWUsaVtvKytdPWUsaVtvKytdPWUsbys9bn19Z2V0T3V0cHV0TGVuZ3RoKEEsZSl7cmV0dXJuIEEqKDMrZSl9fWNsYXNzIHVlIGV4dGVuZHMgQ2V7Y29uc3RydWN0b3IoKXtzdXBlcigiRGV2aWNlUkdCIiwzKX1nZXRSZ2JJdGVtKEEsZSx0LGkpe3RbaV09MjU1KkFbZV0sdFtpKzFdPTI1NSpBW2UrMV0sdFtpKzJdPTI1NSpBW2UrMl19Z2V0UmdiQnVmZmVyKEEsZSx0LGksYSxzLG4pe2lmKDg9PT1zJiYwPT09bilyZXR1cm4gdm9pZCBpLnNldChBLnN1YmFycmF5KGUsZSszKnQpLGEpO2NvbnN0IHI9MjU1LygoMTw8cyktMSk7bGV0IGc9ZSxvPWE7Zm9yKGxldCBlPTA7ZTx0OysrZSlpW28rK109cipBW2crK10saVtvKytdPXIqQVtnKytdLGlbbysrXT1yKkFbZysrXSxvKz1ufWdldE91dHB1dExlbmd0aChBLGUpe3JldHVybiBBKigzK2UpLzN8MH1pc1Bhc3N0aHJvdWdoKEEpe3JldHVybiA4PT09QX19Y2xhc3MgZGUgZXh0ZW5kcyBDZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCJEZXZpY2VSR0JBIiw0KX1nZXRPdXRwdXRMZW5ndGgoQSxlKXtyZXR1cm4gNCpBfWlzUGFzc3Rocm91Z2goQSl7cmV0dXJuIDg9PT1BfX1jbGFzcyBmZSBleHRlbmRzIENle2NvbnN0cnVjdG9yKCl7c3VwZXIoIkRldmljZUNNWUsiLDQpfSN0KEEsZSx0LGksYSl7Y29uc3Qgcz1BW2VdKnQsbj1BW2UrMV0qdCxyPUFbZSsyXSp0LGc9QVtlKzNdKnQ7aVthXT0yNTUrcyooLTQuMzg3MzMyMzg0NjA5OTg4KnMrNTQuNDg2MTUxOTQxODkxNzYqbisxOC44MjI5MDUwMjE2NTMwMipyKzIxMi4yNTY2MjQ1MTYzOTU4NSpnLTI4NS4yMzMxMDI2MTM3MDA0KStuKigxLjcxNDk3NjM0NzczNjIxMzQqbi01LjYwOTY3MzY5MDQwNDczMTUqcistMTcuODczODcwODYxNDE1NDQ0KmctNS40OTcwMDY0MjcxOTYzNjYpK3IqKC0yLjUyMTczNDAxMzE2ODMwMzMqci0yMS4yNDg5MjMzMzczNTMwNzMqZysxNy41MTE5MjcwODQxODEzKStnKigtMjEuODYxMjIxNDc0NjM2MDUqZy0xODkuNDgxODA4MzU5MjI3NDcpLGlbYSsxXT0yNTUrcyooOC44NDEwNDE0MjIwMzYxNDkqcys2MC4xMTgwMjcwNDU1OTczNjYqbis2Ljg3MTQyNTU5MjA0OTAwNypyKzMxLjE1OTEwMDEzMDA1NTkyMipnLTc5LjI5NzA4NDQ4MTY1NDgpK24qKC0xNS4zMTAzNjEzMDY5Njc4MTcqbisxNy41NzUyNTEyNjExMDk0ODIqcisxMzEuMzUyNTA5MTI0OTM5NzYqZy0xOTAuOTQ1MzMwMjU4ODk1MSkrciooNC40NDQzMzkxMDI4NTI3Mzkqcis5Ljg2MzI4NjE0OTM0MDUqZy0yNC44Njc0MTU4MjU1NTg3OCkrZyooLTIwLjczNzMyNTQ3MTE4MTAzNCpnLTE4Ny44MDQ1MzcwOTcxOTU3OCksaVthKzJdPTI1NStzKiguODg0MjUyMjQzMDAwMzI5NipzKzguMDc4Njc3NTAzMTEyOTI4Km4rMzAuODk5NzgzMDk3MDM3Mjkqci0uMjM4ODMyMzg2ODkxNzg5MzQqZy0xNC4xODM1NzY3OTk2NzMyODYpK24qKDEwLjQ5NTkzMjczNDMyMDcyKm4rNjMuMDIzNzg0OTQ3NTQwNTIqcis1MC42MDY5NTc2NTYzNjA3MzQqZy0xMTIuMjM4ODQyNTM3MTkyNDgpK3IqKC4wMzI5NjA0MTExNDg3MzIxNypyKzExNS42MDM4NDQ0OTY0NjY0MSpnLTE5My41ODIwOTM1Njg2MTUwNSkrZyooLTIyLjMzODE2ODA3MzA5ODg2KmctMTgwLjEyNjEzOTc0NzA4MzY3KX1nZXRSZ2JJdGVtKEEsZSx0LGkpe3RoaXMuI3QoQSxlLDEsdCxpKX1nZXRSZ2JCdWZmZXIoQSxlLHQsaSxhLHMsbil7Y29uc3Qgcj0xLygoMTw8cyktMSk7Zm9yKGxldCBzPTA7czx0O3MrKyl0aGlzLiN0KEEsZSxyLGksYSksZSs9NCxhKz0zK259Z2V0T3V0cHV0TGVuZ3RoKEEsZSl7cmV0dXJuIEEvNCooMytlKXwwfX1jbGFzcyBwZSBleHRlbmRzIENle2NvbnN0cnVjdG9yKEEsZSx0KXtpZihzdXBlcigiQ2FsR3JheSIsMSksIUEpdGhyb3cgbmV3IFcoIldoaXRlUG9pbnQgbWlzc2luZyAtIHJlcXVpcmVkIGZvciBjb2xvciBzcGFjZSBDYWxHcmF5Iik7aWYoW3RoaXMuWFcsdGhpcy5ZVyx0aGlzLlpXXT1BLFt0aGlzLlhCLHRoaXMuWUIsdGhpcy5aQl09ZXx8WzAsMCwwXSx0aGlzLkc9dHx8MSx0aGlzLlhXPDB8fHRoaXMuWlc8MHx8MSE9PXRoaXMuWVcpdGhyb3cgbmV3IFcoYEludmFsaWQgV2hpdGVQb2ludCBjb21wb25lbnRzIGZvciAke3RoaXMubmFtZX0sIG5vIGZhbGxiYWNrIGF2YWlsYWJsZWApOyh0aGlzLlhCPDB8fHRoaXMuWUI8MHx8dGhpcy5aQjwwKSYmKHgoYEludmFsaWQgQmxhY2tQb2ludCBmb3IgJHt0aGlzLm5hbWV9LCBmYWxsaW5nIGJhY2sgdG8gZGVmYXVsdC5gKSx0aGlzLlhCPXRoaXMuWUI9dGhpcy5aQj0wKSwwPT09dGhpcy5YQiYmMD09PXRoaXMuWUImJjA9PT10aGlzLlpCfHxVKGAke3RoaXMubmFtZX0sIEJsYWNrUG9pbnQ6IFhCOiAke3RoaXMuWEJ9LCBZQjogJHt0aGlzLllCfSwgWkI6ICR7dGhpcy5aQn0sIG9ubHkgZGVmYXVsdCB2YWx1ZXMgYXJlIHN1cHBvcnRlZC5gKSx0aGlzLkc8MSYmKHgoYEludmFsaWQgR2FtbWE6ICR7dGhpcy5HfSBmb3IgJHt0aGlzLm5hbWV9LCBmYWxsaW5nIGJhY2sgdG8gZGVmYXVsdC5gKSx0aGlzLkc9MSl9I3QoQSxlLHQsaSxhKXtjb25zdCBzPShBW2VdKmEpKip0aGlzLkcsbj10aGlzLllXKnMscj1NYXRoLm1heCgyOTUuOCpuKiouMzMzMzMzMzMzMzMzMzMzMy00MC44LDApO3RbaV09cix0W2krMV09cix0W2krMl09cn1nZXRSZ2JJdGVtKEEsZSx0LGkpe3RoaXMuI3QoQSxlLHQsaSwxKX1nZXRSZ2JCdWZmZXIoQSxlLHQsaSxhLHMsbil7Y29uc3Qgcj0xLygoMTw8cyktMSk7Zm9yKGxldCBzPTA7czx0Oysrcyl0aGlzLiN0KEEsZSxpLGEsciksZSs9MSxhKz0zK259Z2V0T3V0cHV0TGVuZ3RoKEEsZSl7cmV0dXJuIEEqKDMrZSl9fWNsYXNzIG1lIGV4dGVuZHMgQ2V7c3RhdGljI2k9bmV3IEZsb2F0MzJBcnJheShbLjg5NTEsLjI2NjQsLS4xNjE0LC0uNzUwMiwxLjcxMzUsLjAzNjcsLjAzODksLS4wNjg1LDEuMDI5Nl0pO3N0YXRpYyNhPW5ldyBGbG9hdDMyQXJyYXkoWy45ODY5OTI5LC0uMTQ3MDU0MywuMTU5OTYyNywuNDMyMzA1MywuNTE4MzYwMywuMDQ5MjkxMiwtLjAwODUyODcsLjA0MDA0MjgsLjk2ODQ4NjddKTtzdGF0aWMjcz1uZXcgRmxvYXQzMkFycmF5KFszLjI0MDQ1NDIsLTEuNTM3MTM4NSwtLjQ5ODUzMTQsLS45NjkyNjYsMS44NzYwMTA4LC4wNDE1NTYsLjA1NTY0MzQsLS4yMDQwMjU5LDEuMDU3MjI1Ml0pO3N0YXRpYyNuPW5ldyBGbG9hdDMyQXJyYXkoWzEsMSwxXSk7c3RhdGljI3I9bmV3IEZsb2F0MzJBcnJheSgzKTtzdGF0aWMjZz1uZXcgRmxvYXQzMkFycmF5KDMpO3N0YXRpYyNvPW5ldyBGbG9hdDMyQXJyYXkoMyk7c3RhdGljI0k9KDI0LzExNikqKjMvODtjb25zdHJ1Y3RvcihBLGUsdCxpKXtpZihzdXBlcigiQ2FsUkdCIiwzKSwhQSl0aHJvdyBuZXcgVygiV2hpdGVQb2ludCBtaXNzaW5nIC0gcmVxdWlyZWQgZm9yIGNvbG9yIHNwYWNlIENhbFJHQiIpO2NvbnN0W2EscyxuXT10aGlzLndoaXRlUG9pbnQ9QSxbcixnLG9dPXRoaXMuYmxhY2tQb2ludD1lfHxuZXcgRmxvYXQzMkFycmF5KDMpO2lmKFt0aGlzLkdSLHRoaXMuR0csdGhpcy5HQl09dHx8bmV3IEZsb2F0MzJBcnJheShbMSwxLDFdKSxbdGhpcy5NWEEsdGhpcy5NWUEsdGhpcy5NWkEsdGhpcy5NWEIsdGhpcy5NWUIsdGhpcy5NWkIsdGhpcy5NWEMsdGhpcy5NWUMsdGhpcy5NWkNdPWl8fG5ldyBGbG9hdDMyQXJyYXkoWzEsMCwwLDAsMSwwLDAsMCwxXSksYTwwfHxuPDB8fDEhPT1zKXRocm93IG5ldyBXKGBJbnZhbGlkIFdoaXRlUG9pbnQgY29tcG9uZW50cyBmb3IgJHt0aGlzLm5hbWV9LCBubyBmYWxsYmFjayBhdmFpbGFibGVgKTsocjwwfHxnPDB8fG88MCkmJih4KGBJbnZhbGlkIEJsYWNrUG9pbnQgZm9yICR7dGhpcy5uYW1lfSBbJHtyfSwgJHtnfSwgJHtvfV0sIGZhbGxpbmcgYmFjayB0byBkZWZhdWx0LmApLHRoaXMuYmxhY2tQb2ludD1uZXcgRmxvYXQzMkFycmF5KDMpKSwodGhpcy5HUjwwfHx0aGlzLkdHPDB8fHRoaXMuR0I8MCkmJih4KGBJbnZhbGlkIEdhbW1hIFske3RoaXMuR1J9LCAke3RoaXMuR0d9LCAke3RoaXMuR0J9XSBmb3IgJHt0aGlzLm5hbWV9LCBmYWxsaW5nIGJhY2sgdG8gZGVmYXVsdC5gKSx0aGlzLkdSPXRoaXMuR0c9dGhpcy5HQj0xKX0jYyhBLGUsdCl7dFswXT1BWzBdKmVbMF0rQVsxXSplWzFdK0FbMl0qZVsyXSx0WzFdPUFbM10qZVswXStBWzRdKmVbMV0rQVs1XSplWzJdLHRbMl09QVs2XSplWzBdK0FbN10qZVsxXStBWzhdKmVbMl19I2goQSxlLHQpe3RbMF09MSplWzBdL0FbMF0sdFsxXT0xKmVbMV0vQVsxXSx0WzJdPTEqZVsyXS9BWzJdfSNDKEEsZSx0KXt0WzBdPS45NTA0NyplWzBdL0FbMF0sdFsxXT0xKmVbMV0vQVsxXSx0WzJdPTEuMDg4ODMqZVsyXS9BWzJdfSNCKEEpe3JldHVybiBBPD0uMDAzMTMwOD90aGlzLiNsKDAsMSwxMi45MipBKTpBPj0uOTk1NTQ1MjU/MTp0aGlzLiNsKDAsMSwxLjA1NSpBKiooMS8yLjQpLS4wNTUpfSNsKEEsZSx0KXtyZXR1cm4gTWF0aC5tYXgoQSxNYXRoLm1pbihlLHQpKX0jUShBKXtyZXR1cm4gQTwwPy10aGlzLiNRKC1BKTpBPjg/KChBKzE2KS8xMTYpKiozOkEqbWUuI0l9I0UoQSxlLHQpe2lmKDA9PT1BWzBdJiYwPT09QVsxXSYmMD09PUFbMl0pcmV0dXJuIHRbMF09ZVswXSx0WzFdPWVbMV0sdm9pZCh0WzJdPWVbMl0pO2NvbnN0IGk9dGhpcy4jUSgwKSxhPSgxLWkpLygxLXRoaXMuI1EoQVswXSkpLHM9MS1hLG49KDEtaSkvKDEtdGhpcy4jUShBWzFdKSkscj0xLW4sZz0oMS1pKS8oMS10aGlzLiNRKEFbMl0pKSxvPTEtZzt0WzBdPWVbMF0qYStzLHRbMV09ZVsxXSpuK3IsdFsyXT1lWzJdKmcrb30jdShBLGUsdCl7aWYoMT09PUFbMF0mJjE9PT1BWzJdKXJldHVybiB0WzBdPWVbMF0sdFsxXT1lWzFdLHZvaWQodFsyXT1lWzJdKTtjb25zdCBpPXQ7dGhpcy4jYyhtZS4jaSxlLGkpO2NvbnN0IGE9bWUuI3I7dGhpcy4jaChBLGksYSksdGhpcy4jYyhtZS4jYSxhLHQpfSNkKEEsZSx0KXtjb25zdCBpPXQ7dGhpcy4jYyhtZS4jaSxlLGkpO2NvbnN0IGE9bWUuI3I7dGhpcy4jQyhBLGksYSksdGhpcy4jYyhtZS4jYSxhLHQpfSN0KEEsZSx0LGksYSl7Y29uc3Qgcz10aGlzLiNsKDAsMSxBW2VdKmEpLG49dGhpcy4jbCgwLDEsQVtlKzFdKmEpLHI9dGhpcy4jbCgwLDEsQVtlKzJdKmEpLGc9MT09PXM/MTpzKip0aGlzLkdSLG89MT09PW4/MTpuKip0aGlzLkdHLEk9MT09PXI/MTpyKip0aGlzLkdCLGM9dGhpcy5NWEEqZyt0aGlzLk1YQipvK3RoaXMuTVhDKkksaD10aGlzLk1ZQSpnK3RoaXMuTVlCKm8rdGhpcy5NWUMqSSxDPXRoaXMuTVpBKmcrdGhpcy5NWkIqbyt0aGlzLk1aQypJLEI9bWUuI2c7QlswXT1jLEJbMV09aCxCWzJdPUM7Y29uc3QgbD1tZS4jbzt0aGlzLiN1KHRoaXMud2hpdGVQb2ludCxCLGwpO2NvbnN0IFE9bWUuI2c7dGhpcy4jRSh0aGlzLmJsYWNrUG9pbnQsbCxRKTtjb25zdCBFPW1lLiNvO3RoaXMuI2QobWUuI24sUSxFKTtjb25zdCB1PW1lLiNnO3RoaXMuI2MobWUuI3MsRSx1KSx0W2ldPTI1NSp0aGlzLiNCKHVbMF0pLHRbaSsxXT0yNTUqdGhpcy4jQih1WzFdKSx0W2krMl09MjU1KnRoaXMuI0IodVsyXSl9Z2V0UmdiSXRlbShBLGUsdCxpKXt0aGlzLiN0KEEsZSx0LGksMSl9Z2V0UmdiQnVmZmVyKEEsZSx0LGksYSxzLG4pe2NvbnN0IHI9MS8oKDE8PHMpLTEpO2ZvcihsZXQgcz0wO3M8dDsrK3MpdGhpcy4jdChBLGUsaSxhLHIpLGUrPTMsYSs9MytufWdldE91dHB1dExlbmd0aChBLGUpe3JldHVybiBBKigzK2UpLzN8MH19Y2xhc3MgeWUgZXh0ZW5kcyBDZXtjb25zdHJ1Y3RvcihBLGUsdCl7aWYoc3VwZXIoIkxhYiIsMyksIUEpdGhyb3cgbmV3IFcoIldoaXRlUG9pbnQgbWlzc2luZyAtIHJlcXVpcmVkIGZvciBjb2xvciBzcGFjZSBMYWIiKTtpZihbdGhpcy5YVyx0aGlzLllXLHRoaXMuWlddPUEsW3RoaXMuYW1pbix0aGlzLmFtYXgsdGhpcy5ibWluLHRoaXMuYm1heF09dHx8Wy0xMDAsMTAwLC0xMDAsMTAwXSxbdGhpcy5YQix0aGlzLllCLHRoaXMuWkJdPWV8fFswLDAsMF0sdGhpcy5YVzwwfHx0aGlzLlpXPDB8fDEhPT10aGlzLllXKXRocm93IG5ldyBXKCJJbnZhbGlkIFdoaXRlUG9pbnQgY29tcG9uZW50cywgbm8gZmFsbGJhY2sgYXZhaWxhYmxlIik7KHRoaXMuWEI8MHx8dGhpcy5ZQjwwfHx0aGlzLlpCPDApJiYoeCgiSW52YWxpZCBCbGFja1BvaW50LCBmYWxsaW5nIGJhY2sgdG8gZGVmYXVsdCIpLHRoaXMuWEI9dGhpcy5ZQj10aGlzLlpCPTApLCh0aGlzLmFtaW4+dGhpcy5hbWF4fHx0aGlzLmJtaW4+dGhpcy5ibWF4KSYmKHgoIkludmFsaWQgUmFuZ2UsIGZhbGxpbmcgYmFjayB0byBkZWZhdWx0cyIpLHRoaXMuYW1pbj0tMTAwLHRoaXMuYW1heD0xMDAsdGhpcy5ibWluPS0xMDAsdGhpcy5ibWF4PTEwMCl9I2YoQSl7cmV0dXJuIEE+PTYvMjk/QSoqMzoxMDgvODQxKihBLTQvMjkpfSNwKEEsZSx0LGkpe3JldHVybiB0K0EqKGktdCkvZX0jdChBLGUsdCxpLGEpe2xldCBzPUFbZV0sbj1BW2UrMV0scj1BW2UrMl07ITEhPT10JiYocz10aGlzLiNwKHMsdCwwLDEwMCksbj10aGlzLiNwKG4sdCx0aGlzLmFtaW4sdGhpcy5hbWF4KSxyPXRoaXMuI3Aocix0LHRoaXMuYm1pbix0aGlzLmJtYXgpKSxuPnRoaXMuYW1heD9uPXRoaXMuYW1heDpuPHRoaXMuYW1pbiYmKG49dGhpcy5hbWluKSxyPnRoaXMuYm1heD9yPXRoaXMuYm1heDpyPHRoaXMuYm1pbiYmKHI9dGhpcy5ibWluKTtjb25zdCBnPShzKzE2KS8xMTYsbz1nK24vNTAwLEk9Zy1yLzIwMCxjPXRoaXMuWFcqdGhpcy4jZihvKSxoPXRoaXMuWVcqdGhpcy4jZihnKSxDPXRoaXMuWlcqdGhpcy4jZihJKTtsZXQgQixsLFE7dGhpcy5aVzwxPyhCPTMuMTMzOSpjKy0xLjYxNypoKy0uNDkwNipDLGw9LS45Nzg1KmMrMS45MTYqaCsuMDMzMypDLFE9LjA3MipjKy0uMjI5KmgrMS40MDU3KkMpOihCPTMuMjQwNipjKy0xLjUzNzIqaCstLjQ5ODYqQyxsPS0uOTY4OSpjKzEuODc1OCpoKy4wNDE1KkMsUT0uMDU1NypjKy0uMjA0KmgrMS4wNTcqQyksaVthXT0yNTUqTWF0aC5zcXJ0KEIpLGlbYSsxXT0yNTUqTWF0aC5zcXJ0KGwpLGlbYSsyXT0yNTUqTWF0aC5zcXJ0KFEpfWdldFJnYkl0ZW0oQSxlLHQsaSl7dGhpcy4jdChBLGUsITEsdCxpKX1nZXRSZ2JCdWZmZXIoQSxlLHQsaSxhLHMsbil7Y29uc3Qgcj0oMTw8cyktMTtmb3IobGV0IHM9MDtzPHQ7cysrKXRoaXMuI3QoQSxlLHIsaSxhKSxlKz0zLGErPTMrbn1nZXRPdXRwdXRMZW5ndGgoQSxlKXtyZXR1cm4gQSooMytlKS8zfDB9aXNEZWZhdWx0RGVjb2RlKEEsZSl7cmV0dXJuITB9Z2V0IHVzZXNaZXJvVG9PbmVSYW5nZSgpe3JldHVybiBIKHRoaXMsInVzZXNaZXJvVG9PbmVSYW5nZSIsITEpfX1mdW5jdGlvbiB3ZShBLGUpe2xldCB0PTA7Zm9yKGxldCBpPTA7aTw9ZTtpKyspdD10PDw4fEFbaV07cmV0dXJuIHQ+Pj4wfWZ1bmN0aW9uIERlKEEsZSl7cmV0dXJuIDE9PT1lP1N0cmluZy5mcm9tQ2hhckNvZGUoQVswXSxBWzFdKTozPT09ZT9TdHJpbmcuZnJvbUNoYXJDb2RlKEFbMF0sQVsxXSxBWzJdLEFbM10pOlN0cmluZy5mcm9tQ2hhckNvZGUoLi4uQS5zdWJhcnJheSgwLGUrMSkpfWZ1bmN0aW9uIGJlKEEsZSx0KXtsZXQgaT0wO2ZvcihsZXQgYT10O2E+PTA7YS0tKWkrPUFbYV0rZVthXSxBW2FdPTI1NSZpLGk+Pj04fWZ1bmN0aW9uIGtlKEEsZSl7bGV0IHQ9MTtmb3IobGV0IGk9ZTtpPj0wJiZ0PjA7aS0tKXQrPUFbaV0sQVtpXT0yNTUmdCx0Pj49OH1jb25zdCBGZT0xNjtjbGFzcyBTZXtjb25zdHJ1Y3RvcihBKXt0aGlzLmJ1ZmZlcj1BLHRoaXMucG9zPTAsdGhpcy5lbmQ9QS5sZW5ndGgsdGhpcy50bXBCdWY9bmV3IFVpbnQ4QXJyYXkoMTkpfXJlYWRCeXRlKCl7cmV0dXJuIHRoaXMucG9zPj10aGlzLmVuZD8tMTp0aGlzLmJ1ZmZlclt0aGlzLnBvcysrXX1yZWFkTnVtYmVyKCl7bGV0IEEsZT0wO2Rve2NvbnN0IHQ9dGhpcy5yZWFkQnl0ZSgpO2lmKHQ8MCl0aHJvdyBuZXcgVygidW5leHBlY3RlZCBFT0YgaW4gYmNtYXAiKTtBPSEoMTI4JnQpLGU9ZTw8N3wxMjcmdH13aGlsZSghQSk7cmV0dXJuIGV9cmVhZFNpZ25lZCgpe2NvbnN0IEE9dGhpcy5yZWFkTnVtYmVyKCk7cmV0dXJuIDEmQT9+KEE+Pj4xKTpBPj4+MX1yZWFkSGV4KEEsZSl7QS5zZXQodGhpcy5idWZmZXIuc3ViYXJyYXkodGhpcy5wb3MsdGhpcy5wb3MrZSsxKSksdGhpcy5wb3MrPWUrMX1yZWFkSGV4TnVtYmVyKEEsZSl7bGV0IHQ7Y29uc3QgaT10aGlzLnRtcEJ1ZjtsZXQgYT0wO2Rve2NvbnN0IEE9dGhpcy5yZWFkQnl0ZSgpO2lmKEE8MCl0aHJvdyBuZXcgVygidW5leHBlY3RlZCBFT0YgaW4gYmNtYXAiKTt0PSEoMTI4JkEpLGlbYSsrXT0xMjcmQX13aGlsZSghdCk7bGV0IHM9ZSxuPTAscj0wO2Zvcig7cz49MDspe2Zvcig7cjw4JiZpLmxlbmd0aD4wOylufD1pWy0tYV08PHIscis9NztBW3NdPTI1NSZuLHMtLSxuPj49OCxyLT04fX1yZWFkSGV4U2lnbmVkKEEsZSl7dGhpcy5yZWFkSGV4TnVtYmVyKEEsZSk7Y29uc3QgdD0xJkFbZV0/MjU1OjA7bGV0IGk9MDtmb3IobGV0IGE9MDthPD1lO2ErKylpPSgxJmkpPDw4fEFbYV0sQVthXT1pPj4xXnR9cmVhZFN0cmluZygpe2NvbnN0IEE9dGhpcy5yZWFkTnVtYmVyKCksZT1uZXcgQXJyYXkoQSk7Zm9yKGxldCB0PTA7dDxBO3QrKyllW3RdPXRoaXMucmVhZE51bWJlcigpO3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKC4uLmUpfX1jbGFzcyBSZXthc3luYyBwcm9jZXNzKEEsZSx0KXtjb25zdCBpPW5ldyBTZShBKSxhPWkucmVhZEJ5dGUoKTtlLnZlcnRpY2FsPSEhKDEmYSk7bGV0IHM9bnVsbDtjb25zdCBuPW5ldyBVaW50OEFycmF5KEZlKSxyPW5ldyBVaW50OEFycmF5KEZlKSxnPW5ldyBVaW50OEFycmF5KEZlKSxvPW5ldyBVaW50OEFycmF5KEZlKSxJPW5ldyBVaW50OEFycmF5KEZlKTtsZXQgYyxoO2Zvcig7KGg9aS5yZWFkQnl0ZSgpKT49MDspe2NvbnN0IEE9aD4+NTtpZig3PT09QSl7c3dpdGNoKDMxJmgpe2Nhc2UgMDppLnJlYWRTdHJpbmcoKTticmVhaztjYXNlIDE6cz1pLnJlYWRTdHJpbmcoKX1jb250aW51ZX1jb25zdCB0PSEhKDE2JmgpLGE9MTUmaDtpZihhKzE+RmUpdGhyb3cgbmV3IEVycm9yKCJCaW5hcnlDTWFwUmVhZGVyLnByb2Nlc3M6IEludmFsaWQgZGF0YVNpemUuIik7Y29uc3QgQz0xLEI9aS5yZWFkTnVtYmVyKCk7c3dpdGNoKEEpe2Nhc2UgMDppLnJlYWRIZXgobixhKSxpLnJlYWRIZXhOdW1iZXIocixhKSxiZShyLG4sYSksZS5hZGRDb2Rlc3BhY2VSYW5nZShhKzEsd2UobixhKSx3ZShyLGEpKTtmb3IobGV0IEE9MTtBPEI7QSsrKWtlKHIsYSksaS5yZWFkSGV4TnVtYmVyKG4sYSksYmUobixyLGEpLGkucmVhZEhleE51bWJlcihyLGEpLGJlKHIsbixhKSxlLmFkZENvZGVzcGFjZVJhbmdlKGErMSx3ZShuLGEpLHdlKHIsYSkpO2JyZWFrO2Nhc2UgMTppLnJlYWRIZXgobixhKSxpLnJlYWRIZXhOdW1iZXIocixhKSxiZShyLG4sYSksaS5yZWFkTnVtYmVyKCk7Zm9yKGxldCBBPTE7QTxCO0ErKylrZShyLGEpLGkucmVhZEhleE51bWJlcihuLGEpLGJlKG4scixhKSxpLnJlYWRIZXhOdW1iZXIocixhKSxiZShyLG4sYSksaS5yZWFkTnVtYmVyKCk7YnJlYWs7Y2FzZSAyOmkucmVhZEhleChnLGEpLGM9aS5yZWFkTnVtYmVyKCksZS5tYXBPbmUod2UoZyxhKSxjKTtmb3IobGV0IEE9MTtBPEI7QSsrKWtlKGcsYSksdHx8KGkucmVhZEhleE51bWJlcihJLGEpLGJlKGcsSSxhKSksYz1pLnJlYWRTaWduZWQoKSsoYysxKSxlLm1hcE9uZSh3ZShnLGEpLGMpO2JyZWFrO2Nhc2UgMzppLnJlYWRIZXgobixhKSxpLnJlYWRIZXhOdW1iZXIocixhKSxiZShyLG4sYSksYz1pLnJlYWROdW1iZXIoKSxlLm1hcENpZFJhbmdlKHdlKG4sYSksd2UocixhKSxjKTtmb3IobGV0IEE9MTtBPEI7QSsrKWtlKHIsYSksdD9uLnNldChyKTooaS5yZWFkSGV4TnVtYmVyKG4sYSksYmUobixyLGEpKSxpLnJlYWRIZXhOdW1iZXIocixhKSxiZShyLG4sYSksYz1pLnJlYWROdW1iZXIoKSxlLm1hcENpZFJhbmdlKHdlKG4sYSksd2UocixhKSxjKTticmVhaztjYXNlIDQ6aS5yZWFkSGV4KGcsQyksaS5yZWFkSGV4KG8sYSksZS5tYXBPbmUod2UoZyxDKSxEZShvLGEpKTtmb3IobGV0IEE9MTtBPEI7QSsrKWtlKGcsQyksdHx8KGkucmVhZEhleE51bWJlcihJLEMpLGJlKGcsSSxDKSksa2UobyxhKSxpLnJlYWRIZXhTaWduZWQoSSxhKSxiZShvLEksYSksZS5tYXBPbmUod2UoZyxDKSxEZShvLGEpKTticmVhaztjYXNlIDU6aS5yZWFkSGV4KG4sQyksaS5yZWFkSGV4TnVtYmVyKHIsQyksYmUocixuLEMpLGkucmVhZEhleChvLGEpLGUubWFwQmZSYW5nZSh3ZShuLEMpLHdlKHIsQyksRGUobyxhKSk7Zm9yKGxldCBBPTE7QTxCO0ErKylrZShyLEMpLHQ/bi5zZXQocik6KGkucmVhZEhleE51bWJlcihuLEMpLGJlKG4scixDKSksaS5yZWFkSGV4TnVtYmVyKHIsQyksYmUocixuLEMpLGkucmVhZEhleChvLGEpLGUubWFwQmZSYW5nZSh3ZShuLEMpLHdlKHIsQyksRGUobyxhKSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYEJpbmFyeUNNYXBSZWFkZXIucHJvY2VzcyAtIHVua25vd24gdHlwZTogJHtBfWApfX1yZXR1cm4gcz90KHMpOmV9fWNvbnN0IEdlPW5ldyBVaW50OEFycmF5KDApO2NsYXNzIE5lIGV4dGVuZHMgd0F7Y29uc3RydWN0b3IoQSl7aWYoc3VwZXIoKSx0aGlzLl9yYXdNaW5CdWZmZXJMZW5ndGg9QXx8MCx0aGlzLnBvcz0wLHRoaXMuYnVmZmVyTGVuZ3RoPTAsdGhpcy5lb2Y9ITEsdGhpcy5idWZmZXI9R2UsdGhpcy5taW5CdWZmZXJMZW5ndGg9NTEyLEEpZm9yKDt0aGlzLm1pbkJ1ZmZlckxlbmd0aDxBOyl0aGlzLm1pbkJ1ZmZlckxlbmd0aCo9Mn1nZXQgaXNFbXB0eSgpe2Zvcig7IXRoaXMuZW9mJiYwPT09dGhpcy5idWZmZXJMZW5ndGg7KXRoaXMucmVhZEJsb2NrKCk7cmV0dXJuIDA9PT10aGlzLmJ1ZmZlckxlbmd0aH1lbnN1cmVCdWZmZXIoQSl7Y29uc3QgZT10aGlzLmJ1ZmZlcjtpZihBPD1lLmJ5dGVMZW5ndGgpcmV0dXJuIGU7bGV0IHQ9dGhpcy5taW5CdWZmZXJMZW5ndGg7Zm9yKDt0PEE7KXQqPTI7Y29uc3QgaT1uZXcgVWludDhBcnJheSh0KTtyZXR1cm4gaS5zZXQoZSksdGhpcy5idWZmZXI9aX1nZXRCeXRlKCl7Y29uc3QgQT10aGlzLnBvcztmb3IoO3RoaXMuYnVmZmVyTGVuZ3RoPD1BOyl7aWYodGhpcy5lb2YpcmV0dXJuLTE7dGhpcy5yZWFkQmxvY2soKX1yZXR1cm4gdGhpcy5idWZmZXJbdGhpcy5wb3MrK119Z2V0Qnl0ZXMoQSxlPW51bGwpe2NvbnN0IHQ9dGhpcy5wb3M7bGV0IGk7aWYoQSl7Zm9yKHRoaXMuZW5zdXJlQnVmZmVyKHQrQSksaT10K0E7IXRoaXMuZW9mJiZ0aGlzLmJ1ZmZlckxlbmd0aDxpOyl0aGlzLnJlYWRCbG9jayhlKTtjb25zdCBhPXRoaXMuYnVmZmVyTGVuZ3RoO2k+YSYmKGk9YSl9ZWxzZXtmb3IoOyF0aGlzLmVvZjspdGhpcy5yZWFkQmxvY2soZSk7aT10aGlzLmJ1ZmZlckxlbmd0aH1yZXR1cm4gdGhpcy5wb3M9aSx0aGlzLmJ1ZmZlci5zdWJhcnJheSh0LGkpfWFzeW5jIGdldEltYWdlRGF0YShBLGU9bnVsbCl7aWYoIXRoaXMuY2FuQXN5bmNEZWNvZGVJbWFnZUZyb21CdWZmZXIpcmV0dXJuIHRoaXMuZ2V0Qnl0ZXMoQSxlKTtjb25zdCB0PWF3YWl0IHRoaXMuc3RyZWFtLmFzeW5jR2V0Qnl0ZXMoKTtyZXR1cm4gdGhpcy5kZWNvZGVJbWFnZSh0LGUpfXJlc2V0KCl7dGhpcy5wb3M9MH1tYWtlU3ViU3RyZWFtKEEsZSx0PW51bGwpe2lmKHZvaWQgMD09PWUpZm9yKDshdGhpcy5lb2Y7KXRoaXMucmVhZEJsb2NrKCk7ZWxzZXtjb25zdCB0PUErZTtmb3IoO3RoaXMuYnVmZmVyTGVuZ3RoPD10JiYhdGhpcy5lb2Y7KXRoaXMucmVhZEJsb2NrKCl9cmV0dXJuIG5ldyBnZSh0aGlzLmJ1ZmZlcixBLGUsdCl9Z2V0QmFzZVN0cmVhbXMoKXtyZXR1cm4gdGhpcy5zdHI/dGhpcy5zdHIuZ2V0QmFzZVN0cmVhbXMoKTpudWxsfX1jbGFzcyB4ZSBleHRlbmRzIE5le2NvbnN0cnVjdG9yKEEsZT1udWxsKXtsZXQgdD0wO2Zvcihjb25zdCBlIG9mIEEpdCs9ZSBpbnN0YW5jZW9mIE5lP2UuX3Jhd01pbkJ1ZmZlckxlbmd0aDplLmxlbmd0aDtzdXBlcih0KSx0aGlzLnN0cmVhbXM9QSx0aGlzLl9vbkVycm9yPWV9cmVhZEJsb2NrKCl7Y29uc3QgQT10aGlzLnN0cmVhbXM7aWYoMD09PUEubGVuZ3RoKXJldHVybiB2b2lkKHRoaXMuZW9mPSEwKTtjb25zdCBlPUEuc2hpZnQoKTtsZXQgdDt0cnl7dD1lLmdldEJ5dGVzKCl9Y2F0Y2goQSl7aWYodGhpcy5fb25FcnJvcilyZXR1cm4gdm9pZCB0aGlzLl9vbkVycm9yKEEsZS5kaWN0Py5vYmpJZCk7dGhyb3cgQX1jb25zdCBpPXRoaXMuYnVmZmVyTGVuZ3RoLGE9aSt0Lmxlbmd0aDt0aGlzLmVuc3VyZUJ1ZmZlcihhKS5zZXQodCxpKSx0aGlzLmJ1ZmZlckxlbmd0aD1hfWdldEJhc2VTdHJlYW1zKCl7Y29uc3QgQT1bXTtmb3IoY29uc3QgZSBvZiB0aGlzLnN0cmVhbXMpe2NvbnN0IHQ9ZS5nZXRCYXNlU3RyZWFtcygpO3QmJkEucHVzaCguLi50KX1yZXR1cm4gQS5sZW5ndGg+MD9BOm51bGx9fWNsYXNzIFVlIGV4dGVuZHMgTmV7Y29uc3RydWN0b3IoQSxlKXtlJiYoZSo9LjgpLHN1cGVyKGUpLHRoaXMuc3RyPUEsdGhpcy5kaWN0PUEuZGljdCx0aGlzLmlucHV0PW5ldyBVaW50OEFycmF5KDUpfXJlYWRCbG9jaygpe2NvbnN0IEE9dGhpcy5zdHI7bGV0IGU9QS5nZXRCeXRlKCk7Zm9yKDtZQShlKTspZT1BLmdldEJ5dGUoKTtpZigtMT09PWV8fDEyNj09PWUpcmV0dXJuIHZvaWQodGhpcy5lb2Y9ITApO2NvbnN0IHQ9dGhpcy5idWZmZXJMZW5ndGg7bGV0IGksYTtpZigxMjI9PT1lKXtmb3IoaT10aGlzLmVuc3VyZUJ1ZmZlcih0KzQpLGE9MDthPDQ7KythKWlbdCthXT0wO3RoaXMuYnVmZmVyTGVuZ3RoKz00fWVsc2V7Y29uc3Qgcz10aGlzLmlucHV0O2ZvcihzWzBdPWUsYT0xO2E8NTsrK2Epe2ZvcihlPUEuZ2V0Qnl0ZSgpO1lBKGUpOyllPUEuZ2V0Qnl0ZSgpO2lmKHNbYV09ZSwtMT09PWV8fDEyNj09PWUpYnJlYWt9aWYoaT10aGlzLmVuc3VyZUJ1ZmZlcih0K2EtMSksdGhpcy5idWZmZXJMZW5ndGgrPWEtMSxhPDUpe2Zvcig7YTw1OysrYSlzW2FdPTExNzt0aGlzLmVvZj0hMH1sZXQgbj0wO2ZvcihhPTA7YTw1OysrYSluPTg1Km4rKHNbYV0tMzMpO2ZvcihhPTM7YT49MDstLWEpaVt0K2FdPTI1NSZuLG4+Pj04fX19Y2xhc3MgTWUgZXh0ZW5kcyBOZXtjb25zdHJ1Y3RvcihBLGUpe2UmJihlKj0uNSksc3VwZXIoZSksdGhpcy5zdHI9QSx0aGlzLmRpY3Q9QS5kaWN0LHRoaXMuZmlyc3REaWdpdD0tMX1yZWFkQmxvY2soKXtjb25zdCBBPXRoaXMuc3RyLmdldEJ5dGVzKDhlMyk7aWYoIUEubGVuZ3RoKXJldHVybiB2b2lkKHRoaXMuZW9mPSEwKTtjb25zdCBlPUEubGVuZ3RoKzE+PjEsdD10aGlzLmVuc3VyZUJ1ZmZlcih0aGlzLmJ1ZmZlckxlbmd0aCtlKTtsZXQgaT10aGlzLmJ1ZmZlckxlbmd0aCxhPXRoaXMuZmlyc3REaWdpdDtmb3IoY29uc3QgZSBvZiBBKXtsZXQgQTtpZihlPj00OCYmZTw9NTcpQT0xNSZlO2Vsc2V7aWYoIShlPj02NSYmZTw9NzB8fGU+PTk3JiZlPD0xMDIpKXtpZig2Mj09PWUpe3RoaXMuZW9mPSEwO2JyZWFrfWNvbnRpbnVlfUE9OSsoMTUmZSl9YTwwP2E9QToodFtpKytdPWE8PDR8QSxhPS0xKX1hPj0wJiZ0aGlzLmVvZiYmKHRbaSsrXT1hPDw0LGE9LTEpLHRoaXMuZmlyc3REaWdpdD1hLHRoaXMuYnVmZmVyTGVuZ3RoPWl9fWNvbnN0IExlPS0xLEplPVtbLTEsLTFdLFstMSwtMV0sWzcsOF0sWzcsN10sWzYsNl0sWzYsNl0sWzYsNV0sWzYsNV0sWzQsMF0sWzQsMF0sWzQsMF0sWzQsMF0sWzQsMF0sWzQsMF0sWzQsMF0sWzQsMF0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzMsM10sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl0sWzEsMl1dLEhlPVtbLTEsLTFdLFsxMiwtMl0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFsxMSwxNzkyXSxbMTEsMTc5Ml0sWzEyLDE5ODRdLFsxMiwyMDQ4XSxbMTIsMjExMl0sWzEyLDIxNzZdLFsxMiwyMjQwXSxbMTIsMjMwNF0sWzExLDE4NTZdLFsxMSwxODU2XSxbMTEsMTkyMF0sWzExLDE5MjBdLFsxMiwyMzY4XSxbMTIsMjQzMl0sWzEyLDI0OTZdLFsxMiwyNTYwXV0sWWU9W1stMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWzgsMjldLFs4LDI5XSxbOCwzMF0sWzgsMzBdLFs4LDQ1XSxbOCw0NV0sWzgsNDZdLFs4LDQ2XSxbNywyMl0sWzcsMjJdLFs3LDIyXSxbNywyMl0sWzcsMjNdLFs3LDIzXSxbNywyM10sWzcsMjNdLFs4LDQ3XSxbOCw0N10sWzgsNDhdLFs4LDQ4XSxbNiwxM10sWzYsMTNdLFs2LDEzXSxbNiwxM10sWzYsMTNdLFs2LDEzXSxbNiwxM10sWzYsMTNdLFs3LDIwXSxbNywyMF0sWzcsMjBdLFs3LDIwXSxbOCwzM10sWzgsMzNdLFs4LDM0XSxbOCwzNF0sWzgsMzVdLFs4LDM1XSxbOCwzNl0sWzgsMzZdLFs4LDM3XSxbOCwzN10sWzgsMzhdLFs4LDM4XSxbNywxOV0sWzcsMTldLFs3LDE5XSxbNywxOV0sWzgsMzFdLFs4LDMxXSxbOCwzMl0sWzgsMzJdLFs2LDFdLFs2LDFdLFs2LDFdLFs2LDFdLFs2LDFdLFs2LDFdLFs2LDFdLFs2LDFdLFs2LDEyXSxbNiwxMl0sWzYsMTJdLFs2LDEyXSxbNiwxMl0sWzYsMTJdLFs2LDEyXSxbNiwxMl0sWzgsNTNdLFs4LDUzXSxbOCw1NF0sWzgsNTRdLFs3LDI2XSxbNywyNl0sWzcsMjZdLFs3LDI2XSxbOCwzOV0sWzgsMzldLFs4LDQwXSxbOCw0MF0sWzgsNDFdLFs4LDQxXSxbOCw0Ml0sWzgsNDJdLFs4LDQzXSxbOCw0M10sWzgsNDRdLFs4LDQ0XSxbNywyMV0sWzcsMjFdLFs3LDIxXSxbNywyMV0sWzcsMjhdLFs3LDI4XSxbNywyOF0sWzcsMjhdLFs4LDYxXSxbOCw2MV0sWzgsNjJdLFs4LDYyXSxbOCw2M10sWzgsNjNdLFs4LDBdLFs4LDBdLFs4LDMyMF0sWzgsMzIwXSxbOCwzODRdLFs4LDM4NF0sWzUsMTBdLFs1LDEwXSxbNSwxMF0sWzUsMTBdLFs1LDEwXSxbNSwxMF0sWzUsMTBdLFs1LDEwXSxbNSwxMF0sWzUsMTBdLFs1LDEwXSxbNSwxMF0sWzUsMTBdLFs1LDEwXSxbNSwxMF0sWzUsMTBdLFs1LDExXSxbNSwxMV0sWzUsMTFdLFs1LDExXSxbNSwxMV0sWzUsMTFdLFs1LDExXSxbNSwxMV0sWzUsMTFdLFs1LDExXSxbNSwxMV0sWzUsMTFdLFs1LDExXSxbNSwxMV0sWzUsMTFdLFs1LDExXSxbNywyN10sWzcsMjddLFs3LDI3XSxbNywyN10sWzgsNTldLFs4LDU5XSxbOCw2MF0sWzgsNjBdLFs5LDE0NzJdLFs5LDE1MzZdLFs5LDE2MDBdLFs5LDE3MjhdLFs3LDE4XSxbNywxOF0sWzcsMThdLFs3LDE4XSxbNywyNF0sWzcsMjRdLFs3LDI0XSxbNywyNF0sWzgsNDldLFs4LDQ5XSxbOCw1MF0sWzgsNTBdLFs4LDUxXSxbOCw1MV0sWzgsNTJdLFs4LDUyXSxbNywyNV0sWzcsMjVdLFs3LDI1XSxbNywyNV0sWzgsNTVdLFs4LDU1XSxbOCw1Nl0sWzgsNTZdLFs4LDU3XSxbOCw1N10sWzgsNThdLFs4LDU4XSxbNiwxOTJdLFs2LDE5Ml0sWzYsMTkyXSxbNiwxOTJdLFs2LDE5Ml0sWzYsMTkyXSxbNiwxOTJdLFs2LDE5Ml0sWzYsMTY2NF0sWzYsMTY2NF0sWzYsMTY2NF0sWzYsMTY2NF0sWzYsMTY2NF0sWzYsMTY2NF0sWzYsMTY2NF0sWzYsMTY2NF0sWzgsNDQ4XSxbOCw0NDhdLFs4LDUxMl0sWzgsNTEyXSxbOSw3MDRdLFs5LDc2OF0sWzgsNjQwXSxbOCw2NDBdLFs4LDU3Nl0sWzgsNTc2XSxbOSw4MzJdLFs5LDg5Nl0sWzksOTYwXSxbOSwxMDI0XSxbOSwxMDg4XSxbOSwxMTUyXSxbOSwxMjE2XSxbOSwxMjgwXSxbOSwxMzQ0XSxbOSwxNDA4XSxbNywyNTZdLFs3LDI1Nl0sWzcsMjU2XSxbNywyNTZdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDJdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs1LDEyOF0sWzUsMTI4XSxbNSwxMjhdLFs1LDEyOF0sWzUsMTI4XSxbNSwxMjhdLFs1LDEyOF0sWzUsMTI4XSxbNSwxMjhdLFs1LDEyOF0sWzUsMTI4XSxbNSwxMjhdLFs1LDEyOF0sWzUsMTI4XSxbNSwxMjhdLFs1LDEyOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOF0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzUsOV0sWzYsMTZdLFs2LDE2XSxbNiwxNl0sWzYsMTZdLFs2LDE2XSxbNiwxNl0sWzYsMTZdLFs2LDE2XSxbNiwxN10sWzYsMTddLFs2LDE3XSxbNiwxN10sWzYsMTddLFs2LDE3XSxbNiwxN10sWzYsMTddLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDRdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFs2LDE0XSxbNiwxNF0sWzYsMTRdLFs2LDE0XSxbNiwxNF0sWzYsMTRdLFs2LDE0XSxbNiwxNF0sWzYsMTVdLFs2LDE1XSxbNiwxNV0sWzYsMTVdLFs2LDE1XSxbNiwxNV0sWzYsMTVdLFs2LDE1XSxbNSw2NF0sWzUsNjRdLFs1LDY0XSxbNSw2NF0sWzUsNjRdLFs1LDY0XSxbNSw2NF0sWzUsNjRdLFs1LDY0XSxbNSw2NF0sWzUsNjRdLFs1LDY0XSxbNSw2NF0sWzUsNjRdLFs1LDY0XSxbNSw2NF0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN10sWzQsN11dLHZlPVtbLTEsLTFdLFstMSwtMV0sWzEyLC0yXSxbMTIsLTJdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWzExLDE3OTJdLFsxMSwxNzkyXSxbMTEsMTc5Ml0sWzExLDE3OTJdLFsxMiwxOTg0XSxbMTIsMTk4NF0sWzEyLDIwNDhdLFsxMiwyMDQ4XSxbMTIsMjExMl0sWzEyLDIxMTJdLFsxMiwyMTc2XSxbMTIsMjE3Nl0sWzEyLDIyNDBdLFsxMiwyMjQwXSxbMTIsMjMwNF0sWzEyLDIzMDRdLFsxMSwxODU2XSxbMTEsMTg1Nl0sWzExLDE4NTZdLFsxMSwxODU2XSxbMTEsMTkyMF0sWzExLDE5MjBdLFsxMSwxOTIwXSxbMTEsMTkyMF0sWzEyLDIzNjhdLFsxMiwyMzY4XSxbMTIsMjQzMl0sWzEyLDI0MzJdLFsxMiwyNDk2XSxbMTIsMjQ5Nl0sWzEyLDI1NjBdLFsxMiwyNTYwXSxbMTAsMThdLFsxMCwxOF0sWzEwLDE4XSxbMTAsMThdLFsxMCwxOF0sWzEwLDE4XSxbMTAsMThdLFsxMCwxOF0sWzEyLDUyXSxbMTIsNTJdLFsxMyw2NDBdLFsxMyw3MDRdLFsxMyw3NjhdLFsxMyw4MzJdLFsxMiw1NV0sWzEyLDU1XSxbMTIsNTZdLFsxMiw1Nl0sWzEzLDEyODBdLFsxMywxMzQ0XSxbMTMsMTQwOF0sWzEzLDE0NzJdLFsxMiw1OV0sWzEyLDU5XSxbMTIsNjBdLFsxMiw2MF0sWzEzLDE1MzZdLFsxMywxNjAwXSxbMTEsMjRdLFsxMSwyNF0sWzExLDI0XSxbMTEsMjRdLFsxMSwyNV0sWzExLDI1XSxbMTEsMjVdLFsxMSwyNV0sWzEzLDE2NjRdLFsxMywxNzI4XSxbMTIsMzIwXSxbMTIsMzIwXSxbMTIsMzg0XSxbMTIsMzg0XSxbMTIsNDQ4XSxbMTIsNDQ4XSxbMTMsNTEyXSxbMTMsNTc2XSxbMTIsNTNdLFsxMiw1M10sWzEyLDU0XSxbMTIsNTRdLFsxMyw4OTZdLFsxMyw5NjBdLFsxMywxMDI0XSxbMTMsMTA4OF0sWzEzLDExNTJdLFsxMywxMjE2XSxbMTAsNjRdLFsxMCw2NF0sWzEwLDY0XSxbMTAsNjRdLFsxMCw2NF0sWzEwLDY0XSxbMTAsNjRdLFsxMCw2NF1dLEtlPVtbOCwxM10sWzgsMTNdLFs4LDEzXSxbOCwxM10sWzgsMTNdLFs4LDEzXSxbOCwxM10sWzgsMTNdLFs4LDEzXSxbOCwxM10sWzgsMTNdLFs4LDEzXSxbOCwxM10sWzgsMTNdLFs4LDEzXSxbOCwxM10sWzExLDIzXSxbMTEsMjNdLFsxMiw1MF0sWzEyLDUxXSxbMTIsNDRdLFsxMiw0NV0sWzEyLDQ2XSxbMTIsNDddLFsxMiw1N10sWzEyLDU4XSxbMTIsNjFdLFsxMiwyNTZdLFsxMCwxNl0sWzEwLDE2XSxbMTAsMTZdLFsxMCwxNl0sWzEwLDE3XSxbMTAsMTddLFsxMCwxN10sWzEwLDE3XSxbMTIsNDhdLFsxMiw0OV0sWzEyLDYyXSxbMTIsNjNdLFsxMiwzMF0sWzEyLDMxXSxbMTIsMzJdLFsxMiwzM10sWzEyLDQwXSxbMTIsNDFdLFsxMSwyMl0sWzExLDIyXSxbOCwxNF0sWzgsMTRdLFs4LDE0XSxbOCwxNF0sWzgsMTRdLFs4LDE0XSxbOCwxNF0sWzgsMTRdLFs4LDE0XSxbOCwxNF0sWzgsMTRdLFs4LDE0XSxbOCwxNF0sWzgsMTRdLFs4LDE0XSxbOCwxNF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs5LDE1XSxbOSwxNV0sWzksMTVdLFs5LDE1XSxbOSwxNV0sWzksMTVdLFs5LDE1XSxbOSwxNV0sWzEyLDEyOF0sWzEyLDE5Ml0sWzEyLDI2XSxbMTIsMjddLFsxMiwyOF0sWzEyLDI5XSxbMTEsMTldLFsxMSwxOV0sWzExLDIwXSxbMTEsMjBdLFsxMiwzNF0sWzEyLDM1XSxbMTIsMzZdLFsxMiwzN10sWzEyLDM4XSxbMTIsMzldLFsxMSwyMV0sWzExLDIxXSxbMTIsNDJdLFsxMiw0M10sWzEwLDBdLFsxMCwwXSxbMTAsMF0sWzEwLDBdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl1dLHFlPVtbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFs2LDldLFs2LDhdLFs1LDddLFs1LDddLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDVdLFs0LDVdLFs0LDVdLFs0LDVdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDNdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdLFsyLDJdXTtjbGFzcyBUZXtjb25zdHJ1Y3RvcihBLGU9e30pe2lmKCFBfHwiZnVuY3Rpb24iIT10eXBlb2YgQS5uZXh0KXRocm93IG5ldyBFcnJvcignQ0NJVFRGYXhEZWNvZGVyIC0gaW52YWxpZCAic291cmNlIiBwYXJhbWV0ZXIuJyk7bGV0IHQ7Zm9yKHRoaXMuc291cmNlPUEsdGhpcy5lb2Y9ITEsdGhpcy5lbmNvZGluZz1lLkt8fDAsdGhpcy5lb2xpbmU9ZS5FbmRPZkxpbmV8fCExLHRoaXMuYnl0ZUFsaWduPWUuRW5jb2RlZEJ5dGVBbGlnbnx8ITEsdGhpcy5jb2x1bW5zPWUuQ29sdW1uc3x8MTcyOCx0aGlzLnJvd3M9ZS5Sb3dzfHwwLHRoaXMuZW9ibG9jaz1lLkVuZE9mQmxvY2s/PyEwLHRoaXMuYmxhY2s9ZS5CbGFja0lzMXx8ITEsdGhpcy5jb2RpbmdMaW5lPW5ldyBVaW50MzJBcnJheSh0aGlzLmNvbHVtbnMrMSksdGhpcy5yZWZMaW5lPW5ldyBVaW50MzJBcnJheSh0aGlzLmNvbHVtbnMrMiksdGhpcy5jb2RpbmdMaW5lWzBdPXRoaXMuY29sdW1ucyx0aGlzLmNvZGluZ1Bvcz0wLHRoaXMucm93PTAsdGhpcy5uZXh0TGluZTJEPXRoaXMuZW5jb2Rpbmc8MCx0aGlzLmlucHV0Qml0cz0wLHRoaXMuaW5wdXRCdWY9MCx0aGlzLm91dHB1dEJpdHM9MCx0aGlzLnJvd3NEb25lPSExOzA9PT0odD10aGlzLl9sb29rQml0cygxMikpOyl0aGlzLl9lYXRCaXRzKDEpOzE9PT10JiZ0aGlzLl9lYXRCaXRzKDEyKSx0aGlzLmVuY29kaW5nPjAmJih0aGlzLm5leHRMaW5lMkQ9IXRoaXMuX2xvb2tCaXRzKDEpLHRoaXMuX2VhdEJpdHMoMSkpfXJlYWROZXh0Q2hhcigpe2lmKHRoaXMuZW9mKXJldHVybi0xO2NvbnN0IEE9dGhpcy5yZWZMaW5lLGU9dGhpcy5jb2RpbmdMaW5lLHQ9dGhpcy5jb2x1bW5zO2xldCBpLGEscyxuLHI7aWYoMD09PXRoaXMub3V0cHV0Qml0cyl7aWYodGhpcy5yb3dzRG9uZSYmKHRoaXMuZW9mPSEwKSx0aGlzLmVvZilyZXR1cm4tMTtsZXQgcyxyLGc7aWYodGhpcy5lcnI9ITEsdGhpcy5uZXh0TGluZTJEKXtmb3Iobj0wO2Vbbl08dDsrK24pQVtuXT1lW25dO2ZvcihBW24rK109dCxBW25dPXQsZVswXT0wLHRoaXMuY29kaW5nUG9zPTAsaT0wLGE9MDtlW3RoaXMuY29kaW5nUG9zXTx0Oylzd2l0Y2gocz10aGlzLl9nZXRUd29EaW1Db2RlKCkscyl7Y2FzZSAwOnRoaXMuX2FkZFBpeGVscyhBW2krMV0sYSksQVtpKzFdPHQmJihpKz0yKTticmVhaztjYXNlIDE6aWYocz1yPTAsYSl7ZG97cys9Zz10aGlzLl9nZXRCbGFja0NvZGUoKX13aGlsZShnPj02NCk7ZG97cis9Zz10aGlzLl9nZXRXaGl0ZUNvZGUoKX13aGlsZShnPj02NCl9ZWxzZXtkb3tzKz1nPXRoaXMuX2dldFdoaXRlQ29kZSgpfXdoaWxlKGc+PTY0KTtkb3tyKz1nPXRoaXMuX2dldEJsYWNrQ29kZSgpfXdoaWxlKGc+PTY0KX1mb3IodGhpcy5fYWRkUGl4ZWxzKGVbdGhpcy5jb2RpbmdQb3NdK3MsYSksZVt0aGlzLmNvZGluZ1Bvc108dCYmdGhpcy5fYWRkUGl4ZWxzKGVbdGhpcy5jb2RpbmdQb3NdK3IsMV5hKTtBW2ldPD1lW3RoaXMuY29kaW5nUG9zXSYmQVtpXTx0OylpKz0yO2JyZWFrO2Nhc2UgNzppZih0aGlzLl9hZGRQaXhlbHMoQVtpXSszLGEpLGFePTEsZVt0aGlzLmNvZGluZ1Bvc108dClmb3IoKytpO0FbaV08PWVbdGhpcy5jb2RpbmdQb3NdJiZBW2ldPHQ7KWkrPTI7YnJlYWs7Y2FzZSA1OmlmKHRoaXMuX2FkZFBpeGVscyhBW2ldKzIsYSksYV49MSxlW3RoaXMuY29kaW5nUG9zXTx0KWZvcigrK2k7QVtpXTw9ZVt0aGlzLmNvZGluZ1Bvc10mJkFbaV08dDspaSs9MjticmVhaztjYXNlIDM6aWYodGhpcy5fYWRkUGl4ZWxzKEFbaV0rMSxhKSxhXj0xLGVbdGhpcy5jb2RpbmdQb3NdPHQpZm9yKCsraTtBW2ldPD1lW3RoaXMuY29kaW5nUG9zXSYmQVtpXTx0OylpKz0yO2JyZWFrO2Nhc2UgMjppZih0aGlzLl9hZGRQaXhlbHMoQVtpXSxhKSxhXj0xLGVbdGhpcy5jb2RpbmdQb3NdPHQpZm9yKCsraTtBW2ldPD1lW3RoaXMuY29kaW5nUG9zXSYmQVtpXTx0OylpKz0yO2JyZWFrO2Nhc2UgODppZih0aGlzLl9hZGRQaXhlbHNOZWcoQVtpXS0zLGEpLGFePTEsZVt0aGlzLmNvZGluZ1Bvc108dClmb3IoaT4wPy0taTorK2k7QVtpXTw9ZVt0aGlzLmNvZGluZ1Bvc10mJkFbaV08dDspaSs9MjticmVhaztjYXNlIDY6aWYodGhpcy5fYWRkUGl4ZWxzTmVnKEFbaV0tMixhKSxhXj0xLGVbdGhpcy5jb2RpbmdQb3NdPHQpZm9yKGk+MD8tLWk6KytpO0FbaV08PWVbdGhpcy5jb2RpbmdQb3NdJiZBW2ldPHQ7KWkrPTI7YnJlYWs7Y2FzZSA0OmlmKHRoaXMuX2FkZFBpeGVsc05lZyhBW2ldLTEsYSksYV49MSxlW3RoaXMuY29kaW5nUG9zXTx0KWZvcihpPjA/LS1pOisraTtBW2ldPD1lW3RoaXMuY29kaW5nUG9zXSYmQVtpXTx0OylpKz0yO2JyZWFrO2Nhc2UgTGU6dGhpcy5fYWRkUGl4ZWxzKHQsMCksdGhpcy5lb2Y9ITA7YnJlYWs7ZGVmYXVsdDp4KCJiYWQgMmQgY29kZSIpLHRoaXMuX2FkZFBpeGVscyh0LDApLHRoaXMuZXJyPSEwfX1lbHNlIGZvcihlWzBdPTAsdGhpcy5jb2RpbmdQb3M9MCxhPTA7ZVt0aGlzLmNvZGluZ1Bvc108dDspe2lmKHM9MCxhKWRve3MrPWc9dGhpcy5fZ2V0QmxhY2tDb2RlKCl9d2hpbGUoZz49NjQpO2Vsc2UgZG97cys9Zz10aGlzLl9nZXRXaGl0ZUNvZGUoKX13aGlsZShnPj02NCk7dGhpcy5fYWRkUGl4ZWxzKGVbdGhpcy5jb2RpbmdQb3NdK3MsYSksYV49MX1sZXQgbz0hMTtpZih0aGlzLmJ5dGVBbGlnbiYmKHRoaXMuaW5wdXRCaXRzJj0tOCksdGhpcy5lb2Jsb2NrfHx0aGlzLnJvdyE9PXRoaXMucm93cy0xKXtpZihzPXRoaXMuX2xvb2tCaXRzKDEyKSx0aGlzLmVvbGluZSlmb3IoO3MhPT1MZSYmMSE9PXM7KXRoaXMuX2VhdEJpdHMoMSkscz10aGlzLl9sb29rQml0cygxMik7ZWxzZSBmb3IoOzA9PT1zOyl0aGlzLl9lYXRCaXRzKDEpLHM9dGhpcy5fbG9va0JpdHMoMTIpOzE9PT1zPyh0aGlzLl9lYXRCaXRzKDEyKSxvPSEwKTpzPT09TGUmJih0aGlzLmVvZj0hMCl9ZWxzZSB0aGlzLnJvd3NEb25lPSEwO2lmKCF0aGlzLmVvZiYmdGhpcy5lbmNvZGluZz4wJiYhdGhpcy5yb3dzRG9uZSYmKHRoaXMubmV4dExpbmUyRD0hdGhpcy5fbG9va0JpdHMoMSksdGhpcy5fZWF0Qml0cygxKSksdGhpcy5lb2Jsb2NrJiZvJiZ0aGlzLmJ5dGVBbGlnbil7aWYocz10aGlzLl9sb29rQml0cygxMiksMT09PXMpe2lmKHRoaXMuX2VhdEJpdHMoMTIpLHRoaXMuZW5jb2Rpbmc+MCYmKHRoaXMuX2xvb2tCaXRzKDEpLHRoaXMuX2VhdEJpdHMoMSkpLHRoaXMuZW5jb2Rpbmc+PTApZm9yKG49MDtuPDQ7KytuKXM9dGhpcy5fbG9va0JpdHMoMTIpLDEhPT1zJiZ4KCJiYWQgcnRjIGNvZGU6ICIrcyksdGhpcy5fZWF0Qml0cygxMiksdGhpcy5lbmNvZGluZz4wJiYodGhpcy5fbG9va0JpdHMoMSksdGhpcy5fZWF0Qml0cygxKSk7dGhpcy5lb2Y9ITB9fWVsc2UgaWYodGhpcy5lcnImJnRoaXMuZW9saW5lKXtmb3IoOzspe2lmKHM9dGhpcy5fbG9va0JpdHMoMTMpLHM9PT1MZSlyZXR1cm4gdGhpcy5lb2Y9ITAsLTE7aWYocz4+MT09MSlicmVhazt0aGlzLl9lYXRCaXRzKDEpfXRoaXMuX2VhdEJpdHMoMTIpLHRoaXMuZW5jb2Rpbmc+MCYmKHRoaXMuX2VhdEJpdHMoMSksdGhpcy5uZXh0TGluZTJEPSEoMSZzKSl9dGhpcy5vdXRwdXRCaXRzPWVbMF0+MD9lW3RoaXMuY29kaW5nUG9zPTBdOmVbdGhpcy5jb2RpbmdQb3M9MV0sdGhpcy5yb3crK31pZih0aGlzLm91dHB1dEJpdHM+PTgpcj0xJnRoaXMuY29kaW5nUG9zPzA6MjU1LHRoaXMub3V0cHV0Qml0cy09OCwwPT09dGhpcy5vdXRwdXRCaXRzJiZlW3RoaXMuY29kaW5nUG9zXTx0JiYodGhpcy5jb2RpbmdQb3MrKyx0aGlzLm91dHB1dEJpdHM9ZVt0aGlzLmNvZGluZ1Bvc10tZVt0aGlzLmNvZGluZ1Bvcy0xXSk7ZWxzZXtzPTgscj0wO2Rve2lmKCJudW1iZXIiIT10eXBlb2YgdGhpcy5vdXRwdXRCaXRzKXRocm93IG5ldyBXKCdJbnZhbGlkIC9DQ0lUVEZheERlY29kZSBkYXRhLCAib3V0cHV0Qml0cyIgbXVzdCBiZSBhIG51bWJlci4nKTt0aGlzLm91dHB1dEJpdHM+cz8ocjw8PXMsMSZ0aGlzLmNvZGluZ1Bvc3x8KHJ8PTI1NT4+OC1zKSx0aGlzLm91dHB1dEJpdHMtPXMscz0wKToocjw8PXRoaXMub3V0cHV0Qml0cywxJnRoaXMuY29kaW5nUG9zfHwocnw9MjU1Pj44LXRoaXMub3V0cHV0Qml0cykscy09dGhpcy5vdXRwdXRCaXRzLHRoaXMub3V0cHV0Qml0cz0wLGVbdGhpcy5jb2RpbmdQb3NdPHQ/KHRoaXMuY29kaW5nUG9zKyssdGhpcy5vdXRwdXRCaXRzPWVbdGhpcy5jb2RpbmdQb3NdLWVbdGhpcy5jb2RpbmdQb3MtMV0pOnM+MCYmKHI8PD1zLHM9MCkpfXdoaWxlKHMpfXJldHVybiB0aGlzLmJsYWNrJiYocl49MjU1KSxyfV9hZGRQaXhlbHMoQSxlKXtjb25zdCB0PXRoaXMuY29kaW5nTGluZTtsZXQgaT10aGlzLmNvZGluZ1BvcztBPnRbaV0mJihBPnRoaXMuY29sdW1ucyYmKHgoInJvdyBpcyB3cm9uZyBsZW5ndGgiKSx0aGlzLmVycj0hMCxBPXRoaXMuY29sdW1ucyksMSZpXmUmJisraSx0W2ldPUEpLHRoaXMuY29kaW5nUG9zPWl9X2FkZFBpeGVsc05lZyhBLGUpe2NvbnN0IHQ9dGhpcy5jb2RpbmdMaW5lO2xldCBpPXRoaXMuY29kaW5nUG9zO2lmKEE+dFtpXSlBPnRoaXMuY29sdW1ucyYmKHgoInJvdyBpcyB3cm9uZyBsZW5ndGgiKSx0aGlzLmVycj0hMCxBPXRoaXMuY29sdW1ucyksMSZpXmUmJisraSx0W2ldPUE7ZWxzZSBpZihBPHRbaV0pe2ZvcihBPDAmJih4KCJpbnZhbGlkIGNvZGUiKSx0aGlzLmVycj0hMCxBPTApO2k+MCYmQTx0W2ktMV07KS0taTt0W2ldPUF9dGhpcy5jb2RpbmdQb3M9aX1fZmluZFRhYmxlQ29kZShBLGUsdCxpKXtjb25zdCBhPWl8fDA7Zm9yKGxldCBpPUE7aTw9ZTsrK2kpe2xldCBBPXRoaXMuX2xvb2tCaXRzKGkpO2lmKEE9PT1MZSlyZXR1cm5bITAsMSwhMV07aWYoaTxlJiYoQTw8PWUtaSksIWF8fEE+PWEpe2NvbnN0IGU9dFtBLWFdO2lmKGVbMF09PT1pKXJldHVybiB0aGlzLl9lYXRCaXRzKGkpLFshMCxlWzFdLCEwXX19cmV0dXJuWyExLDAsITFdfV9nZXRUd29EaW1Db2RlKCl7bGV0IEEsZT0wO2lmKHRoaXMuZW9ibG9jayl7aWYoZT10aGlzLl9sb29rQml0cyg3KSxBPUplW2VdLEE/LlswXT4wKXJldHVybiB0aGlzLl9lYXRCaXRzKEFbMF0pLEFbMV19ZWxzZXtjb25zdCBBPXRoaXMuX2ZpbmRUYWJsZUNvZGUoMSw3LEplKTtpZihBWzBdJiZBWzJdKXJldHVybiBBWzFdfXJldHVybiB4KCJCYWQgdHdvIGRpbSBjb2RlIiksTGV9X2dldFdoaXRlQ29kZSgpe2xldCBBLGU9MDtpZih0aGlzLmVvYmxvY2spe2lmKGU9dGhpcy5fbG9va0JpdHMoMTIpLGU9PT1MZSlyZXR1cm4gMTtpZihBPWU+PjU9PTA/SGVbZV06WWVbZT4+M10sQVswXT4wKXJldHVybiB0aGlzLl9lYXRCaXRzKEFbMF0pLEFbMV19ZWxzZXtsZXQgQT10aGlzLl9maW5kVGFibGVDb2RlKDEsOSxZZSk7aWYoQVswXSlyZXR1cm4gQVsxXTtpZihBPXRoaXMuX2ZpbmRUYWJsZUNvZGUoMTEsMTIsSGUpLEFbMF0pcmV0dXJuIEFbMV19cmV0dXJuIHgoImJhZCB3aGl0ZSBjb2RlIiksdGhpcy5fZWF0Qml0cygxKSwxfV9nZXRCbGFja0NvZGUoKXtsZXQgQSxlO2lmKHRoaXMuZW9ibG9jayl7aWYoQT10aGlzLl9sb29rQml0cygxMyksQT09PUxlKXJldHVybiAxO2lmKGU9QT4+Nz09MD92ZVtBXTpBPj45PT0wJiZBPj43IT0wP0tlWyhBPj4xKS02NF06cWVbQT4+N10sZVswXT4wKXJldHVybiB0aGlzLl9lYXRCaXRzKGVbMF0pLGVbMV19ZWxzZXtsZXQgQT10aGlzLl9maW5kVGFibGVDb2RlKDIsNixxZSk7aWYoQVswXSlyZXR1cm4gQVsxXTtpZihBPXRoaXMuX2ZpbmRUYWJsZUNvZGUoNywxMixLZSw2NCksQVswXSlyZXR1cm4gQVsxXTtpZihBPXRoaXMuX2ZpbmRUYWJsZUNvZGUoMTAsMTMsdmUpLEFbMF0pcmV0dXJuIEFbMV19cmV0dXJuIHgoImJhZCBibGFjayBjb2RlIiksdGhpcy5fZWF0Qml0cygxKSwxfV9sb29rQml0cyhBKXtsZXQgZTtmb3IoO3RoaXMuaW5wdXRCaXRzPEE7KXtpZigtMT09PShlPXRoaXMuc291cmNlLm5leHQoKSkpcmV0dXJuIDA9PT10aGlzLmlucHV0Qml0cz9MZTp0aGlzLmlucHV0QnVmPDxBLXRoaXMuaW5wdXRCaXRzJjY1NTM1Pj4xNi1BO3RoaXMuaW5wdXRCdWY9dGhpcy5pbnB1dEJ1Zjw8OHxlLHRoaXMuaW5wdXRCaXRzKz04fXJldHVybiB0aGlzLmlucHV0QnVmPj50aGlzLmlucHV0Qml0cy1BJjY1NTM1Pj4xNi1BfV9lYXRCaXRzKEEpeyh0aGlzLmlucHV0Qml0cy09QSk8MCYmKHRoaXMuaW5wdXRCaXRzPTApfX1jbGFzcyBQZSBleHRlbmRzIE5le2NvbnN0cnVjdG9yKEEsZSx0KXtzdXBlcihlKSx0aGlzLnN0cj1BLHRoaXMuZGljdD1BLmRpY3QsdCBpbnN0YW5jZW9mIFFBfHwodD1RQS5lbXB0eSk7Y29uc3QgaT17bmV4dDooKT0+QS5nZXRCeXRlKCl9O3RoaXMuY2NpdHRGYXhEZWNvZGVyPW5ldyBUZShpLHtLOnQuZ2V0KCJLIiksRW5kT2ZMaW5lOnQuZ2V0KCJFbmRPZkxpbmUiKSxFbmNvZGVkQnl0ZUFsaWduOnQuZ2V0KCJFbmNvZGVkQnl0ZUFsaWduIiksQ29sdW1uczp0LmdldCgiQ29sdW1ucyIpLFJvd3M6dC5nZXQoIlJvd3MiKSxFbmRPZkJsb2NrOnQuZ2V0KCJFbmRPZkJsb2NrIiksQmxhY2tJczE6dC5nZXQoIkJsYWNrSXMxIil9KX1yZWFkQmxvY2soKXtmb3IoOyF0aGlzLmVvZjspe2NvbnN0IEE9dGhpcy5jY2l0dEZheERlY29kZXIucmVhZE5leHRDaGFyKCk7aWYoLTE9PT1BKXJldHVybiB2b2lkKHRoaXMuZW9mPSEwKTt0aGlzLmVuc3VyZUJ1ZmZlcih0aGlzLmJ1ZmZlckxlbmd0aCsxKSx0aGlzLmJ1ZmZlclt0aGlzLmJ1ZmZlckxlbmd0aCsrXT1BfX19Y29uc3QgV2U9bmV3IEludDMyQXJyYXkoWzE2LDE3LDE4LDAsOCw3LDksNiwxMCw1LDExLDQsMTIsMywxMywyLDE0LDEsMTVdKSxPZT1uZXcgSW50MzJBcnJheShbMyw0LDUsNiw3LDgsOSwxMCw2NTU0Nyw2NTU0OSw2NTU1MSw2NTU1MywxMzEwOTEsMTMxMDk1LDEzMTA5OSwxMzExMDMsMTk2NjQzLDE5NjY1MSwxOTY2NTksMTk2NjY3LDI2MjIxMSwyNjIyMjcsMjYyMjQzLDI2MjI1OSwzMjc4MTEsMzI3ODQzLDMyNzg3NSwzMjc5MDcsMjU4LDI1OCwyNThdKSxaZT1uZXcgSW50MzJBcnJheShbMSwyLDMsNCw2NTU0MSw2NTU0MywxMzEwODEsMTMxMDg1LDE5NjYyNSwxOTY2MzMsMjYyMTc3LDI2MjE5MywzMjc3NDUsMzI3Nzc3LDM5MzM0NSwzOTM0MDksNDU5MDA5LDQ1OTEzNyw1MjQ4MDEsNTI1MDU3LDU5MDg0OSw1OTEzNjEsNjU3NDA5LDY1ODQzMyw3MjQ5OTMsNzI3MDQxLDc5NDYyNSw3OTg3MjEsODY4MzUzLDg3NjU0NV0pLGplPVtuZXcgSW50MzJBcnJheShbNDU5MDA4LDUyNDM2OCw1MjQzMDQsNTI0NTY4LDQ1OTAyNCw1MjQ0MDAsNTI0MzM2LDU5MDAxNiw0NTkwMTYsNTI0Mzg0LDUyNDMyMCw1ODk5ODQsNTI0Mjg4LDUyNDQxNiw1MjQzNTIsNTkwMDQ4LDQ1OTAxMiw1MjQzNzYsNTI0MzEyLDU4OTk2OCw0NTkwMjgsNTI0NDA4LDUyNDM0NCw1OTAwMzIsNDU5MDIwLDUyNDM5Miw1MjQzMjgsNTllNCw1MjQyOTYsNTI0NDI0LDUyNDM2MCw1OTAwNjQsNDU5MDEwLDUyNDM3Miw1MjQzMDgsNTI0NTcyLDQ1OTAyNiw1MjQ0MDQsNTI0MzQwLDU5MDAyNCw0NTkwMTgsNTI0Mzg4LDUyNDMyNCw1ODk5OTIsNTI0MjkyLDUyNDQyMCw1MjQzNTYsNTkwMDU2LDQ1OTAxNCw1MjQzODAsNTI0MzE2LDU4OTk3Niw0NTkwMzAsNTI0NDEyLDUyNDM0OCw1OTAwNDAsNDU5MDIyLDUyNDM5Niw1MjQzMzIsNTkwMDA4LDUyNDMwMCw1MjQ0MjgsNTI0MzY0LDU5MDA3Miw0NTkwMDksNTI0MzcwLDUyNDMwNiw1MjQ1NzAsNDU5MDI1LDUyNDQwMiw1MjQzMzgsNTkwMDIwLDQ1OTAxNyw1MjQzODYsNTI0MzIyLDU4OTk4OCw1MjQyOTAsNTI0NDE4LDUyNDM1NCw1OTAwNTIsNDU5MDEzLDUyNDM3OCw1MjQzMTQsNTg5OTcyLDQ1OTAyOSw1MjQ0MTAsNTI0MzQ2LDU5MDAzNiw0NTkwMjEsNTI0Mzk0LDUyNDMzMCw1OTAwMDQsNTI0Mjk4LDUyNDQyNiw1MjQzNjIsNTkwMDY4LDQ1OTAxMSw1MjQzNzQsNTI0MzEwLDUyNDU3NCw0NTkwMjcsNTI0NDA2LDUyNDM0Miw1OTAwMjgsNDU5MDE5LDUyNDM5MCw1MjQzMjYsNTg5OTk2LDUyNDI5NCw1MjQ0MjIsNTI0MzU4LDU5MDA2MCw0NTkwMTUsNTI0MzgyLDUyNDMxOCw1ODk5ODAsNDU5MDMxLDUyNDQxNCw1MjQzNTAsNTkwMDQ0LDQ1OTAyMyw1MjQzOTgsNTI0MzM0LDU5MDAxMiw1MjQzMDIsNTI0NDMwLDUyNDM2Niw1OTAwNzYsNDU5MDA4LDUyNDM2OSw1MjQzMDUsNTI0NTY5LDQ1OTAyNCw1MjQ0MDEsNTI0MzM3LDU5MDAxOCw0NTkwMTYsNTI0Mzg1LDUyNDMyMSw1ODk5ODYsNTI0Mjg5LDUyNDQxNyw1MjQzNTMsNTkwMDUwLDQ1OTAxMiw1MjQzNzcsNTI0MzEzLDU4OTk3MCw0NTkwMjgsNTI0NDA5LDUyNDM0NSw1OTAwMzQsNDU5MDIwLDUyNDM5Myw1MjQzMjksNTkwMDAyLDUyNDI5Nyw1MjQ0MjUsNTI0MzYxLDU5MDA2Niw0NTkwMTAsNTI0MzczLDUyNDMwOSw1MjQ1NzMsNDU5MDI2LDUyNDQwNSw1MjQzNDEsNTkwMDI2LDQ1OTAxOCw1MjQzODksNTI0MzI1LDU4OTk5NCw1MjQyOTMsNTI0NDIxLDUyNDM1Nyw1OTAwNTgsNDU5MDE0LDUyNDM4MSw1MjQzMTcsNTg5OTc4LDQ1OTAzMCw1MjQ0MTMsNTI0MzQ5LDU5MDA0Miw0NTkwMjIsNTI0Mzk3LDUyNDMzMyw1OTAwMTAsNTI0MzAxLDUyNDQyOSw1MjQzNjUsNTkwMDc0LDQ1OTAwOSw1MjQzNzEsNTI0MzA3LDUyNDU3MSw0NTkwMjUsNTI0NDAzLDUyNDMzOSw1OTAwMjIsNDU5MDE3LDUyNDM4Nyw1MjQzMjMsNTg5OTkwLDUyNDI5MSw1MjQ0MTksNTI0MzU1LDU5MDA1NCw0NTkwMTMsNTI0Mzc5LDUyNDMxNSw1ODk5NzQsNDU5MDI5LDUyNDQxMSw1MjQzNDcsNTkwMDM4LDQ1OTAyMSw1MjQzOTUsNTI0MzMxLDU5MDAwNiw1MjQyOTksNTI0NDI3LDUyNDM2Myw1OTAwNzAsNDU5MDExLDUyNDM3NSw1MjQzMTEsNTI0NTc1LDQ1OTAyNyw1MjQ0MDcsNTI0MzQzLDU5MDAzMCw0NTkwMTksNTI0MzkxLDUyNDMyNyw1ODk5OTgsNTI0Mjk1LDUyNDQyMyw1MjQzNTksNTkwMDYyLDQ1OTAxNSw1MjQzODMsNTI0MzE5LDU4OTk4Miw0NTkwMzEsNTI0NDE1LDUyNDM1MSw1OTAwNDYsNDU5MDIzLDUyNDM5OSw1MjQzMzUsNTkwMDE0LDUyNDMwMyw1MjQ0MzEsNTI0MzY3LDU5MDA3OCw0NTkwMDgsNTI0MzY4LDUyNDMwNCw1MjQ1NjgsNDU5MDI0LDUyNDQwMCw1MjQzMzYsNTkwMDE3LDQ1OTAxNiw1MjQzODQsNTI0MzIwLDU4OTk4NSw1MjQyODgsNTI0NDE2LDUyNDM1Miw1OTAwNDksNDU5MDEyLDUyNDM3Niw1MjQzMTIsNTg5OTY5LDQ1OTAyOCw1MjQ0MDgsNTI0MzQ0LDU5MDAzMyw0NTkwMjAsNTI0MzkyLDUyNDMyOCw1OTAwMDEsNTI0Mjk2LDUyNDQyNCw1MjQzNjAsNTkwMDY1LDQ1OTAxMCw1MjQzNzIsNTI0MzA4LDUyNDU3Miw0NTkwMjYsNTI0NDA0LDUyNDM0MCw1OTAwMjUsNDU5MDE4LDUyNDM4OCw1MjQzMjQsNTg5OTkzLDUyNDI5Miw1MjQ0MjAsNTI0MzU2LDU5MDA1Nyw0NTkwMTQsNTI0MzgwLDUyNDMxNiw1ODk5NzcsNDU5MDMwLDUyNDQxMiw1MjQzNDgsNTkwMDQxLDQ1OTAyMiw1MjQzOTYsNTI0MzMyLDU5MDAwOSw1MjQzMDAsNTI0NDI4LDUyNDM2NCw1OTAwNzMsNDU5MDA5LDUyNDM3MCw1MjQzMDYsNTI0NTcwLDQ1OTAyNSw1MjQ0MDIsNTI0MzM4LDU5MDAyMSw0NTkwMTcsNTI0Mzg2LDUyNDMyMiw1ODk5ODksNTI0MjkwLDUyNDQxOCw1MjQzNTQsNTkwMDUzLDQ1OTAxMyw1MjQzNzgsNTI0MzE0LDU4OTk3Myw0NTkwMjksNTI0NDEwLDUyNDM0Niw1OTAwMzcsNDU5MDIxLDUyNDM5NCw1MjQzMzAsNTkwMDA1LDUyNDI5OCw1MjQ0MjYsNTI0MzYyLDU5MDA2OSw0NTkwMTEsNTI0Mzc0LDUyNDMxMCw1MjQ1NzQsNDU5MDI3LDUyNDQwNiw1MjQzNDIsNTkwMDI5LDQ1OTAxOSw1MjQzOTAsNTI0MzI2LDU4OTk5Nyw1MjQyOTQsNTI0NDIyLDUyNDM1OCw1OTAwNjEsNDU5MDE1LDUyNDM4Miw1MjQzMTgsNTg5OTgxLDQ1OTAzMSw1MjQ0MTQsNTI0MzUwLDU5MDA0NSw0NTkwMjMsNTI0Mzk4LDUyNDMzNCw1OTAwMTMsNTI0MzAyLDUyNDQzMCw1MjQzNjYsNTkwMDc3LDQ1OTAwOCw1MjQzNjksNTI0MzA1LDUyNDU2OSw0NTkwMjQsNTI0NDAxLDUyNDMzNyw1OTAwMTksNDU5MDE2LDUyNDM4NSw1MjQzMjEsNTg5OTg3LDUyNDI4OSw1MjQ0MTcsNTI0MzUzLDU5MDA1MSw0NTkwMTIsNTI0Mzc3LDUyNDMxMyw1ODk5NzEsNDU5MDI4LDUyNDQwOSw1MjQzNDUsNTkwMDM1LDQ1OTAyMCw1MjQzOTMsNTI0MzI5LDU5MDAwMyw1MjQyOTcsNTI0NDI1LDUyNDM2MSw1OTAwNjcsNDU5MDEwLDUyNDM3Myw1MjQzMDksNTI0NTczLDQ1OTAyNiw1MjQ0MDUsNTI0MzQxLDU5MDAyNyw0NTkwMTgsNTI0Mzg5LDUyNDMyNSw1ODk5OTUsNTI0MjkzLDUyNDQyMSw1MjQzNTcsNTkwMDU5LDQ1OTAxNCw1MjQzODEsNTI0MzE3LDU4OTk3OSw0NTkwMzAsNTI0NDEzLDUyNDM0OSw1OTAwNDMsNDU5MDIyLDUyNDM5Nyw1MjQzMzMsNTkwMDExLDUyNDMwMSw1MjQ0MjksNTI0MzY1LDU5MDA3NSw0NTkwMDksNTI0MzcxLDUyNDMwNyw1MjQ1NzEsNDU5MDI1LDUyNDQwMyw1MjQzMzksNTkwMDIzLDQ1OTAxNyw1MjQzODcsNTI0MzIzLDU4OTk5MSw1MjQyOTEsNTI0NDE5LDUyNDM1NSw1OTAwNTUsNDU5MDEzLDUyNDM3OSw1MjQzMTUsNTg5OTc1LDQ1OTAyOSw1MjQ0MTEsNTI0MzQ3LDU5MDAzOSw0NTkwMjEsNTI0Mzk1LDUyNDMzMSw1OTAwMDcsNTI0Mjk5LDUyNDQyNyw1MjQzNjMsNTkwMDcxLDQ1OTAxMSw1MjQzNzUsNTI0MzExLDUyNDU3NSw0NTkwMjcsNTI0NDA3LDUyNDM0Myw1OTAwMzEsNDU5MDE5LDUyNDM5MSw1MjQzMjcsNTg5OTk5LDUyNDI5NSw1MjQ0MjMsNTI0MzU5LDU5MDA2Myw0NTkwMTUsNTI0MzgzLDUyNDMxOSw1ODk5ODMsNDU5MDMxLDUyNDQxNSw1MjQzNTEsNTkwMDQ3LDQ1OTAyMyw1MjQzOTksNTI0MzM1LDU5MDAxNSw1MjQzMDMsNTI0NDMxLDUyNDM2Nyw1OTAwNzldKSw5XSxYZT1bbmV3IEludDMyQXJyYXkoWzMyNzY4MCwzMjc2OTYsMzI3Njg4LDMyNzcwNCwzMjc2ODQsMzI3NzAwLDMyNzY5MiwzMjc3MDgsMzI3NjgyLDMyNzY5OCwzMjc2OTAsMzI3NzA2LDMyNzY4NiwzMjc3MDIsMzI3Njk0LDAsMzI3NjgxLDMyNzY5NywzMjc2ODksMzI3NzA1LDMyNzY4NSwzMjc3MDEsMzI3NjkzLDMyNzcwOSwzMjc2ODMsMzI3Njk5LDMyNzY5MSwzMjc3MDcsMzI3Njg3LDMyNzcwMywzMjc2OTUsMF0pLDVdO2NsYXNzIFZlIGV4dGVuZHMgTmV7Y29uc3RydWN0b3IoQSxlKXtzdXBlcihlKSx0aGlzLnN0cj1BLHRoaXMuZGljdD1BLmRpY3Q7Y29uc3QgdD1BLmdldEJ5dGUoKSxpPUEuZ2V0Qnl0ZSgpO2lmKC0xPT09dHx8LTE9PT1pKXRocm93IG5ldyBXKGBJbnZhbGlkIGhlYWRlciBpbiBmbGF0ZSBzdHJlYW06ICR7dH0sICR7aX1gKTtpZig4IT0oMTUmdCkpdGhyb3cgbmV3IFcoYFVua25vd24gY29tcHJlc3Npb24gbWV0aG9kIGluIGZsYXRlIHN0cmVhbTogJHt0fSwgJHtpfWApO2lmKCgodDw8OCkraSklMzEhPTApdGhyb3cgbmV3IFcoYEJhZCBGQ0hFQ0sgaW4gZmxhdGUgc3RyZWFtOiAke3R9LCAke2l9YCk7aWYoMzImaSl0aHJvdyBuZXcgVyhgRkRJQ1QgYml0IHNldCBpbiBmbGF0ZSBzdHJlYW06ICR7dH0sICR7aX1gKTt0aGlzLmNvZGVTaXplPTAsdGhpcy5jb2RlQnVmPTB9YXN5bmMgZ2V0SW1hZ2VEYXRhKEEsZSl7Y29uc3QgdD1hd2FpdCB0aGlzLmFzeW5jR2V0Qnl0ZXMoKTtyZXR1cm4gdD8uc3ViYXJyYXkoMCxBKXx8dGhpcy5nZXRCeXRlcyhBKX1hc3luYyBhc3luY0dldEJ5dGVzKCl7dGhpcy5zdHIucmVzZXQoKTtjb25zdCBBPXRoaXMuc3RyLmdldEJ5dGVzKCk7dHJ5e2NvbnN0e3JlYWRhYmxlOmUsd3JpdGFibGU6dH09bmV3IERlY29tcHJlc3Npb25TdHJlYW0oImRlZmxhdGUiKSxpPXQuZ2V0V3JpdGVyKCk7aS53cml0ZShBKSxpLmNsb3NlKCk7Y29uc3QgYT1bXTtsZXQgcz0wO2ZvciBhd2FpdChjb25zdCBBIG9mIGUpYS5wdXNoKEEpLHMrPUEuYnl0ZUxlbmd0aDtjb25zdCBuPW5ldyBVaW50OEFycmF5KHMpO2xldCByPTA7Zm9yKGNvbnN0IEEgb2YgYSluLnNldChBLHIpLHIrPUEuYnl0ZUxlbmd0aDtyZXR1cm4gbn1jYXRjaHtyZXR1cm4gdGhpcy5zdHI9bmV3IGdlKEEsMixBLmxlbmd0aCx0aGlzLnN0ci5kaWN0KSx0aGlzLnJlc2V0KCksbnVsbH19Z2V0IGlzQXN5bmMoKXtyZXR1cm4hMH1nZXRCaXRzKEEpe2NvbnN0IGU9dGhpcy5zdHI7bGV0IHQsaT10aGlzLmNvZGVTaXplLGE9dGhpcy5jb2RlQnVmO2Zvcig7aTxBOyl7aWYoLTE9PT0odD1lLmdldEJ5dGUoKSkpdGhyb3cgbmV3IFcoIkJhZCBlbmNvZGluZyBpbiBmbGF0ZSBzdHJlYW0iKTthfD10PDxpLGkrPTh9cmV0dXJuIHQ9YSYoMTw8QSktMSx0aGlzLmNvZGVCdWY9YT4+QSx0aGlzLmNvZGVTaXplPWktPUEsdH1nZXRDb2RlKEEpe2NvbnN0IGU9dGhpcy5zdHIsdD1BWzBdLGk9QVsxXTtsZXQgYSxzPXRoaXMuY29kZVNpemUsbj10aGlzLmNvZGVCdWY7Zm9yKDtzPGkmJi0xIT09KGE9ZS5nZXRCeXRlKCkpOylufD1hPDxzLHMrPTg7Y29uc3Qgcj10W24mKDE8PGkpLTFdLGc9cj4+MTYsbz02NTUzNSZyO2lmKGc8MXx8czxnKXRocm93IG5ldyBXKCJCYWQgZW5jb2RpbmcgaW4gZmxhdGUgc3RyZWFtIik7cmV0dXJuIHRoaXMuY29kZUJ1Zj1uPj5nLHRoaXMuY29kZVNpemU9cy1nLG99Z2VuZXJhdGVIdWZmbWFuVGFibGUoQSl7Y29uc3QgZT1BLmxlbmd0aDtsZXQgdCxpPTA7Zm9yKHQ9MDt0PGU7Kyt0KUFbdF0+aSYmKGk9QVt0XSk7Y29uc3QgYT0xPDxpLHM9bmV3IEludDMyQXJyYXkoYSk7Zm9yKGxldCBuPTEscj0wLGc9MjtuPD1pOysrbixyPDw9MSxnPDw9MSlmb3IobGV0IGk9MDtpPGU7KytpKWlmKEFbaV09PT1uKXtsZXQgQT0wLGU9cjtmb3IodD0wO3Q8bjsrK3QpQT1BPDwxfDEmZSxlPj49MTtmb3IodD1BO3Q8YTt0Kz1nKXNbdF09bjw8MTZ8aTsrK3J9cmV0dXJuW3MsaV19I20oQSl7eChBKSx0aGlzLmVvZj0hMH1yZWFkQmxvY2soKXtsZXQgQSxlLHQ7Y29uc3QgaT10aGlzLnN0cjt0cnl7ZT10aGlzLmdldEJpdHMoMyl9Y2F0Y2goQSl7cmV0dXJuIHZvaWQgdGhpcy4jbShBLm1lc3NhZ2UpfWlmKDEmZSYmKHRoaXMuZW9mPSEwKSxlPj49MSwwPT09ZSl7bGV0IGU7aWYoLTE9PT0oZT1pLmdldEJ5dGUoKSkpcmV0dXJuIHZvaWQgdGhpcy4jbSgiQmFkIGJsb2NrIGhlYWRlciBpbiBmbGF0ZSBzdHJlYW0iKTtsZXQgdD1lO2lmKC0xPT09KGU9aS5nZXRCeXRlKCkpKXJldHVybiB2b2lkIHRoaXMuI20oIkJhZCBibG9jayBoZWFkZXIgaW4gZmxhdGUgc3RyZWFtIik7aWYodHw9ZTw8OCwtMT09PShlPWkuZ2V0Qnl0ZSgpKSlyZXR1cm4gdm9pZCB0aGlzLiNtKCJCYWQgYmxvY2sgaGVhZGVyIGluIGZsYXRlIHN0cmVhbSIpO2xldCBhPWU7aWYoLTE9PT0oZT1pLmdldEJ5dGUoKSkpcmV0dXJuIHZvaWQgdGhpcy4jbSgiQmFkIGJsb2NrIGhlYWRlciBpbiBmbGF0ZSBzdHJlYW0iKTtpZihhfD1lPDw4LGEhPT0oNjU1MzUmfnQpJiYoMCE9PXR8fDAhPT1hKSl0aHJvdyBuZXcgVygiQmFkIHVuY29tcHJlc3NlZCBibG9jayBsZW5ndGggaW4gZmxhdGUgc3RyZWFtIik7dGhpcy5jb2RlQnVmPTAsdGhpcy5jb2RlU2l6ZT0wO2NvbnN0IHM9dGhpcy5idWZmZXJMZW5ndGgsbj1zK3Q7aWYoQT10aGlzLmVuc3VyZUJ1ZmZlcihuKSx0aGlzLmJ1ZmZlckxlbmd0aD1uLDA9PT10KS0xPT09aS5wZWVrQnl0ZSgpJiYodGhpcy5lb2Y9ITApO2Vsc2V7Y29uc3QgZT1pLmdldEJ5dGVzKHQpO0Euc2V0KGUscyksZS5sZW5ndGg8dCYmKHRoaXMuZW9mPSEwKX1yZXR1cm59bGV0IGEscztpZigxPT09ZSlhPWplLHM9WGU7ZWxzZXtpZigyIT09ZSl0aHJvdyBuZXcgVygiVW5rbm93biBibG9jayB0eXBlIGluIGZsYXRlIHN0cmVhbSIpO3tjb25zdCBBPXRoaXMuZ2V0Qml0cyg1KSsyNTcsZT10aGlzLmdldEJpdHMoNSkrMSxpPXRoaXMuZ2V0Qml0cyg0KSs0LG49bmV3IFVpbnQ4QXJyYXkoV2UubGVuZ3RoKTtsZXQgcjtmb3Iocj0wO3I8aTsrK3IpbltXZVtyXV09dGhpcy5nZXRCaXRzKDMpO2NvbnN0IGc9dGhpcy5nZW5lcmF0ZUh1ZmZtYW5UYWJsZShuKTt0PTAscj0wO2NvbnN0IG89QStlLEk9bmV3IFVpbnQ4QXJyYXkobyk7bGV0IGMsaCxDO2Zvcig7cjxvOyl7Y29uc3QgQT10aGlzLmdldENvZGUoZyk7aWYoMTY9PT1BKWM9MixoPTMsQz10O2Vsc2UgaWYoMTc9PT1BKWM9MyxoPTMsQz10PTA7ZWxzZXtpZigxOCE9PUEpe0lbcisrXT10PUE7Y29udGludWV9Yz03LGg9MTEsQz10PTB9bGV0IGU9dGhpcy5nZXRCaXRzKGMpK2g7Zm9yKDtlLS0gPjA7KUlbcisrXT1DfWE9dGhpcy5nZW5lcmF0ZUh1ZmZtYW5UYWJsZShJLnN1YmFycmF5KDAsQSkpLHM9dGhpcy5nZW5lcmF0ZUh1ZmZtYW5UYWJsZShJLnN1YmFycmF5KEEsbykpfX1BPXRoaXMuYnVmZmVyO2xldCBuPUE/QS5sZW5ndGg6MCxyPXRoaXMuYnVmZmVyTGVuZ3RoO2Zvcig7Oyl7bGV0IGU9dGhpcy5nZXRDb2RlKGEpO2lmKGU8MjU2KXtyKzE+PW4mJihBPXRoaXMuZW5zdXJlQnVmZmVyKHIrMSksbj1BLmxlbmd0aCksQVtyKytdPWU7Y29udGludWV9aWYoMjU2PT09ZSlyZXR1cm4gdm9pZCh0aGlzLmJ1ZmZlckxlbmd0aD1yKTtlLT0yNTcsZT1PZVtlXTtsZXQgaT1lPj4xNjtpPjAmJihpPXRoaXMuZ2V0Qml0cyhpKSksdD0oNjU1MzUmZSkraSxlPXRoaXMuZ2V0Q29kZShzKSxlPVplW2VdLGk9ZT4+MTYsaT4wJiYoaT10aGlzLmdldEJpdHMoaSkpO2NvbnN0IGc9KDY1NTM1JmUpK2k7cit0Pj1uJiYoQT10aGlzLmVuc3VyZUJ1ZmZlcihyK3QpLG49QS5sZW5ndGgpO2ZvcihsZXQgZT0wO2U8dDsrK2UsKytyKUFbcl09QVtyLWddfX19Y29uc3QgX2U9W3txZToyMjAxNyxubXBzOjEsbmxwczoxLHN3aXRjaEZsYWc6MX0se3FlOjEzMzEzLG5tcHM6MixubHBzOjYsc3dpdGNoRmxhZzowfSx7cWU6NjE0NSxubXBzOjMsbmxwczo5LHN3aXRjaEZsYWc6MH0se3FlOjI3NTMsbm1wczo0LG5scHM6MTIsc3dpdGNoRmxhZzowfSx7cWU6MTMxMyxubXBzOjUsbmxwczoyOSxzd2l0Y2hGbGFnOjB9LHtxZTo1NDUsbm1wczozOCxubHBzOjMzLHN3aXRjaEZsYWc6MH0se3FlOjIyMDE3LG5tcHM6NyxubHBzOjYsc3dpdGNoRmxhZzoxfSx7cWU6MjE1MDUsbm1wczo4LG5scHM6MTQsc3dpdGNoRmxhZzowfSx7cWU6MTg0MzMsbm1wczo5LG5scHM6MTQsc3dpdGNoRmxhZzowfSx7cWU6MTQzMzcsbm1wczoxMCxubHBzOjE0LHN3aXRjaEZsYWc6MH0se3FlOjEyMjg5LG5tcHM6MTEsbmxwczoxNyxzd2l0Y2hGbGFnOjB9LHtxZTo5MjE3LG5tcHM6MTIsbmxwczoxOCxzd2l0Y2hGbGFnOjB9LHtxZTo3MTY5LG5tcHM6MTMsbmxwczoyMCxzd2l0Y2hGbGFnOjB9LHtxZTo1NjMzLG5tcHM6MjksbmxwczoyMSxzd2l0Y2hGbGFnOjB9LHtxZToyMjAxNyxubXBzOjE1LG5scHM6MTQsc3dpdGNoRmxhZzoxfSx7cWU6MjE1MDUsbm1wczoxNixubHBzOjE0LHN3aXRjaEZsYWc6MH0se3FlOjIwNzM3LG5tcHM6MTcsbmxwczoxNSxzd2l0Y2hGbGFnOjB9LHtxZToxODQzMyxubXBzOjE4LG5scHM6MTYsc3dpdGNoRmxhZzowfSx7cWU6MTQzMzcsbm1wczoxOSxubHBzOjE3LHN3aXRjaEZsYWc6MH0se3FlOjEzMzEzLG5tcHM6MjAsbmxwczoxOCxzd2l0Y2hGbGFnOjB9LHtxZToxMjI4OSxubXBzOjIxLG5scHM6MTksc3dpdGNoRmxhZzowfSx7cWU6MTAyNDEsbm1wczoyMixubHBzOjE5LHN3aXRjaEZsYWc6MH0se3FlOjkyMTcsbm1wczoyMyxubHBzOjIwLHN3aXRjaEZsYWc6MH0se3FlOjg3MDUsbm1wczoyNCxubHBzOjIxLHN3aXRjaEZsYWc6MH0se3FlOjcxNjksbm1wczoyNSxubHBzOjIyLHN3aXRjaEZsYWc6MH0se3FlOjYxNDUsbm1wczoyNixubHBzOjIzLHN3aXRjaEZsYWc6MH0se3FlOjU2MzMsbm1wczoyNyxubHBzOjI0LHN3aXRjaEZsYWc6MH0se3FlOjUxMjEsbm1wczoyOCxubHBzOjI1LHN3aXRjaEZsYWc6MH0se3FlOjQ2MDksbm1wczoyOSxubHBzOjI2LHN3aXRjaEZsYWc6MH0se3FlOjQzNTMsbm1wczozMCxubHBzOjI3LHN3aXRjaEZsYWc6MH0se3FlOjI3NTMsbm1wczozMSxubHBzOjI4LHN3aXRjaEZsYWc6MH0se3FlOjI0OTcsbm1wczozMixubHBzOjI5LHN3aXRjaEZsYWc6MH0se3FlOjIyMDksbm1wczozMyxubHBzOjMwLHN3aXRjaEZsYWc6MH0se3FlOjEzMTMsbm1wczozNCxubHBzOjMxLHN3aXRjaEZsYWc6MH0se3FlOjEwODksbm1wczozNSxubHBzOjMyLHN3aXRjaEZsYWc6MH0se3FlOjY3MyxubXBzOjM2LG5scHM6MzMsc3dpdGNoRmxhZzowfSx7cWU6NTQ1LG5tcHM6MzcsbmxwczozNCxzd2l0Y2hGbGFnOjB9LHtxZTozMjEsbm1wczozOCxubHBzOjM1LHN3aXRjaEZsYWc6MH0se3FlOjI3MyxubXBzOjM5LG5scHM6MzYsc3dpdGNoRmxhZzowfSx7cWU6MTMzLG5tcHM6NDAsbmxwczozNyxzd2l0Y2hGbGFnOjB9LHtxZTo3MyxubXBzOjQxLG5scHM6Mzgsc3dpdGNoRmxhZzowfSx7cWU6Mzcsbm1wczo0MixubHBzOjM5LHN3aXRjaEZsYWc6MH0se3FlOjIxLG5tcHM6NDMsbmxwczo0MCxzd2l0Y2hGbGFnOjB9LHtxZTo5LG5tcHM6NDQsbmxwczo0MSxzd2l0Y2hGbGFnOjB9LHtxZTo1LG5tcHM6NDUsbmxwczo0Mixzd2l0Y2hGbGFnOjB9LHtxZToxLG5tcHM6NDUsbmxwczo0Myxzd2l0Y2hGbGFnOjB9LHtxZToyMjAxNyxubXBzOjQ2LG5scHM6NDYsc3dpdGNoRmxhZzowfV07Y2xhc3MgemV7Y29uc3RydWN0b3IoQSxlLHQpe3RoaXMuZGF0YT1BLHRoaXMuYnA9ZSx0aGlzLmRhdGFFbmQ9dCx0aGlzLmNoaWdoPUFbZV0sdGhpcy5jbG93PTAsdGhpcy5ieXRlSW4oKSx0aGlzLmNoaWdoPXRoaXMuY2hpZ2g8PDcmNjU1MzV8dGhpcy5jbG93Pj45JjEyNyx0aGlzLmNsb3c9dGhpcy5jbG93PDw3JjY1NTM1LHRoaXMuY3QtPTcsdGhpcy5hPTMyNzY4fWJ5dGVJbigpe2NvbnN0IEE9dGhpcy5kYXRhO2xldCBlPXRoaXMuYnA7MjU1PT09QVtlXT9BW2UrMV0+MTQzPyh0aGlzLmNsb3crPTY1MjgwLHRoaXMuY3Q9OCk6KGUrKyx0aGlzLmNsb3crPUFbZV08PDksdGhpcy5jdD03LHRoaXMuYnA9ZSk6KGUrKyx0aGlzLmNsb3crPWU8dGhpcy5kYXRhRW5kP0FbZV08PDg6NjUyODAsdGhpcy5jdD04LHRoaXMuYnA9ZSksdGhpcy5jbG93PjY1NTM1JiYodGhpcy5jaGlnaCs9dGhpcy5jbG93Pj4xNix0aGlzLmNsb3cmPTY1NTM1KX1yZWFkQml0KEEsZSl7bGV0IHQ9QVtlXT4+MSxpPTEmQVtlXTtjb25zdCBhPV9lW3RdLHM9YS5xZTtsZXQgbixyPXRoaXMuYS1zO2lmKHRoaXMuY2hpZ2g8cylyPHM/KHI9cyxuPWksdD1hLm5tcHMpOihyPXMsbj0xXmksMT09PWEuc3dpdGNoRmxhZyYmKGk9biksdD1hLm5scHMpO2Vsc2V7aWYodGhpcy5jaGlnaC09cywwIT0oMzI3NjgmcikpcmV0dXJuIHRoaXMuYT1yLGk7cjxzPyhuPTFeaSwxPT09YS5zd2l0Y2hGbGFnJiYoaT1uKSx0PWEubmxwcyk6KG49aSx0PWEubm1wcyl9ZG97MD09PXRoaXMuY3QmJnRoaXMuYnl0ZUluKCkscjw8PTEsdGhpcy5jaGlnaD10aGlzLmNoaWdoPDwxJjY1NTM1fHRoaXMuY2xvdz4+MTUmMSx0aGlzLmNsb3c9dGhpcy5jbG93PDwxJjY1NTM1LHRoaXMuY3QtLX13aGlsZSgwPT0oMzI3NjgmcikpO3JldHVybiB0aGlzLmE9cixBW2VdPXQ8PDF8aSxufX1jbGFzcyAkZSBleHRlbmRzIFl7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSwiSmJpZzJFcnJvciIpfX1jbGFzcyBBdHtnZXRDb250ZXh0cyhBKXtyZXR1cm4gQSBpbiB0aGlzP3RoaXNbQV06dGhpc1tBXT1uZXcgSW50OEFycmF5KDY1NTM2KX19Y2xhc3MgZXR7Y29uc3RydWN0b3IoQSxlLHQpe3RoaXMuZGF0YT1BLHRoaXMuc3RhcnQ9ZSx0aGlzLmVuZD10fWdldCBkZWNvZGVyKCl7cmV0dXJuIEgodGhpcywiZGVjb2RlciIsbmV3IHplKHRoaXMuZGF0YSx0aGlzLnN0YXJ0LHRoaXMuZW5kKSl9Z2V0IGNvbnRleHRDYWNoZSgpe3JldHVybiBIKHRoaXMsImNvbnRleHRDYWNoZSIsbmV3IEF0KX19Y29uc3QgdHQ9MioqMzEtMSxpdD0tKDIqKjMxKTtmdW5jdGlvbiBhdChBLGUsdCl7Y29uc3QgaT1BLmdldENvbnRleHRzKGUpO2xldCBhPTE7ZnVuY3Rpb24gcyhBKXtsZXQgZT0wO2ZvcihsZXQgcz0wO3M8QTtzKyspe2NvbnN0IEE9dC5yZWFkQml0KGksYSk7YT1hPDI1Nj9hPDwxfEE6NTExJihhPDwxfEEpfDI1NixlPWU8PDF8QX1yZXR1cm4gZT4+PjB9Y29uc3Qgbj1zKDEpLHI9cygxKT9zKDEpP3MoMSk/cygxKT9zKDEpP3MoMzIpKzQ0MzY6cygxMikrMzQwOnMoOCkrODQ6cyg2KSsyMDpzKDQpKzQ6cygyKTtsZXQgZztyZXR1cm4gMD09PW4/Zz1yOnI+MCYmKGc9LXIpLGc+PWl0JiZnPD10dD9nOm51bGx9ZnVuY3Rpb24gc3QoQSxlLHQpe2NvbnN0IGk9QS5nZXRDb250ZXh0cygiSUFJRCIpO2xldCBhPTE7Zm9yKGxldCBBPTA7QTx0O0ErKylhPWE8PDF8ZS5yZWFkQml0KGksYSk7cmV0dXJuIHQ8MzE/YSYoMTw8dCktMToyMTQ3NDgzNjQ3JmF9Y29uc3QgbnQ9WyJTeW1ib2xEaWN0aW9uYXJ5IixudWxsLG51bGwsbnVsbCwiSW50ZXJtZWRpYXRlVGV4dFJlZ2lvbiIsbnVsbCwiSW1tZWRpYXRlVGV4dFJlZ2lvbiIsIkltbWVkaWF0ZUxvc3NsZXNzVGV4dFJlZ2lvbiIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLCJQYXR0ZXJuRGljdGlvbmFyeSIsbnVsbCxudWxsLG51bGwsIkludGVybWVkaWF0ZUhhbGZ0b25lUmVnaW9uIixudWxsLCJJbW1lZGlhdGVIYWxmdG9uZVJlZ2lvbiIsIkltbWVkaWF0ZUxvc3NsZXNzSGFsZnRvbmVSZWdpb24iLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLCJJbnRlcm1lZGlhdGVHZW5lcmljUmVnaW9uIixudWxsLCJJbW1lZGlhdGVHZW5lcmljUmVnaW9uIiwiSW1tZWRpYXRlTG9zc2xlc3NHZW5lcmljUmVnaW9uIiwiSW50ZXJtZWRpYXRlR2VuZXJpY1JlZmluZW1lbnRSZWdpb24iLG51bGwsIkltbWVkaWF0ZUdlbmVyaWNSZWZpbmVtZW50UmVnaW9uIiwiSW1tZWRpYXRlTG9zc2xlc3NHZW5lcmljUmVmaW5lbWVudFJlZ2lvbiIsbnVsbCxudWxsLG51bGwsbnVsbCwiUGFnZUluZm9ybWF0aW9uIiwiRW5kT2ZQYWdlIiwiRW5kT2ZTdHJpcGUiLCJFbmRPZkZpbGUiLCJQcm9maWxlcyIsIlRhYmxlcyIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLCJFeHRlbnNpb24iXSxydD1bW3t4Oi0xLHk6LTJ9LHt4OjAseTotMn0se3g6MSx5Oi0yfSx7eDotMix5Oi0xfSx7eDotMSx5Oi0xfSx7eDowLHk6LTF9LHt4OjEseTotMX0se3g6Mix5Oi0xfSx7eDotNCx5OjB9LHt4Oi0zLHk6MH0se3g6LTIseTowfSx7eDotMSx5OjB9XSxbe3g6LTEseTotMn0se3g6MCx5Oi0yfSx7eDoxLHk6LTJ9LHt4OjIseTotMn0se3g6LTIseTotMX0se3g6LTEseTotMX0se3g6MCx5Oi0xfSx7eDoxLHk6LTF9LHt4OjIseTotMX0se3g6LTMseTowfSx7eDotMix5OjB9LHt4Oi0xLHk6MH1dLFt7eDotMSx5Oi0yfSx7eDowLHk6LTJ9LHt4OjEseTotMn0se3g6LTIseTotMX0se3g6LTEseTotMX0se3g6MCx5Oi0xfSx7eDoxLHk6LTF9LHt4Oi0yLHk6MH0se3g6LTEseTowfV0sW3t4Oi0zLHk6LTF9LHt4Oi0yLHk6LTF9LHt4Oi0xLHk6LTF9LHt4OjAseTotMX0se3g6MSx5Oi0xfSx7eDotNCx5OjB9LHt4Oi0zLHk6MH0se3g6LTIseTowfSx7eDotMSx5OjB9XV0sZ3Q9W3tjb2Rpbmc6W3t4OjAseTotMX0se3g6MSx5Oi0xfSx7eDotMSx5OjB9XSxyZWZlcmVuY2U6W3t4OjAseTotMX0se3g6MSx5Oi0xfSx7eDotMSx5OjB9LHt4OjAseTowfSx7eDoxLHk6MH0se3g6LTEseToxfSx7eDowLHk6MX0se3g6MSx5OjF9XX0se2NvZGluZzpbe3g6LTEseTotMX0se3g6MCx5Oi0xfSx7eDoxLHk6LTF9LHt4Oi0xLHk6MH1dLHJlZmVyZW5jZTpbe3g6MCx5Oi0xfSx7eDotMSx5OjB9LHt4OjAseTowfSx7eDoxLHk6MH0se3g6MCx5OjF9LHt4OjEseToxfV19XSxvdD1bMzk3MTcsMTk0MSwyMjksNDA1XSxJdD1bMzIsOF07ZnVuY3Rpb24gY3QoQSxlLHQsaSxhLHMsbixyKXtpZihBKXJldHVybiBTdChuZXcgYnQoci5kYXRhLHIuc3RhcnQsci5lbmQpLGUsdCwhMSk7aWYoMD09PWkmJiFzJiYhYSYmND09PW4ubGVuZ3RoJiYzPT09blswXS54JiYtMT09PW5bMF0ueSYmLTM9PT1uWzFdLngmJi0xPT09blsxXS55JiYyPT09blsyXS54JiYtMj09PW5bMl0ueSYmLTI9PT1uWzNdLngmJi0yPT09blszXS55KXJldHVybiBmdW5jdGlvbihBLGUsdCl7Y29uc3QgaT10LmRlY29kZXIsYT10LmNvbnRleHRDYWNoZS5nZXRDb250ZXh0cygiR0IiKSxzPVtdO2xldCBuLHIsZyxvLEksYyxoO2ZvcihyPTA7cjxlO3IrKylmb3IoST1zW3JdPW5ldyBVaW50OEFycmF5KEEpLGM9cjwxP0k6c1tyLTFdLGg9cjwyP0k6c1tyLTJdLG49aFswXTw8MTN8aFsxXTw8MTJ8aFsyXTw8MTF8Y1swXTw8N3xjWzFdPDw2fGNbMl08PDV8Y1szXTw8NCxnPTA7ZzxBO2crKylJW2ddPW89aS5yZWFkQml0KGEsbiksbj0oMzE3MzUmbik8PDF8KGcrMzxBP2hbZyszXTw8MTE6MCl8KGcrNDxBP2NbZys0XTw8NDowKXxvO3JldHVybiBzfShlLHQscik7Y29uc3QgZz0hIXMsbz1ydFtpXS5jb25jYXQobik7by5zb3J0KChmdW5jdGlvbihBLGUpe3JldHVybiBBLnktZS55fHxBLngtZS54fSkpO2NvbnN0IEk9by5sZW5ndGgsYz1uZXcgSW50OEFycmF5KEkpLGg9bmV3IEludDhBcnJheShJKSxDPVtdO2xldCBCLGwsUT0wLEU9MCx1PTAsZD0wO2ZvcihsPTA7bDxJO2wrKyljW2xdPW9bbF0ueCxoW2xdPW9bbF0ueSxFPU1hdGgubWluKEUsb1tsXS54KSx1PU1hdGgubWF4KHUsb1tsXS54KSxkPU1hdGgubWluKGQsb1tsXS55KSxsPEktMSYmb1tsXS55PT09b1tsKzFdLnkmJm9bbF0ueD09PW9bbCsxXS54LTE/UXw9MTw8SS0xLWw6Qy5wdXNoKGwpO2NvbnN0IGY9Qy5sZW5ndGgscD1uZXcgSW50OEFycmF5KGYpLG09bmV3IEludDhBcnJheShmKSx5PW5ldyBVaW50MTZBcnJheShmKTtmb3IoQj0wO0I8ZjtCKyspbD1DW0JdLHBbQl09b1tsXS54LG1bQl09b1tsXS55LHlbQl09MTw8SS0xLWw7Y29uc3Qgdz0tRSxEPS1kLGI9ZS11LGs9b3RbaV07bGV0IEY9bmV3IFVpbnQ4QXJyYXkoZSk7Y29uc3QgUz1bXSxSPXIuZGVjb2RlcixHPXIuY29udGV4dENhY2hlLmdldENvbnRleHRzKCJHQiIpO2xldCBOLHgsVSxNLEwsSj0wLEg9MDtmb3IobGV0IEE9MDtBPHQ7QSsrKWlmKGEmJihKXj1SLnJlYWRCaXQoRyxrKSxKKSlTLnB1c2goRik7ZWxzZSBmb3IoRj1uZXcgVWludDhBcnJheShGKSxTLnB1c2goRiksTj0wO048ZTtOKyspe2lmKGcmJnNbQV1bTl0pe0ZbTl09MDtjb250aW51ZX1pZihOPj13JiZOPGImJkE+PUQpZm9yKEg9SDw8MSZRLGw9MDtsPGY7bCsrKXg9QSttW2xdLFU9TitwW2xdLE09U1t4XVtVXSxNJiYoTT15W2xdLEh8PU0pO2Vsc2UgZm9yKEg9MCxMPUktMSxsPTA7bDxJO2wrKyxMLS0pVT1OK2NbbF0sVT49MCYmVTxlJiYoeD1BK2hbbF0seD49MCYmKE09U1t4XVtVXSxNJiYoSHw9TTw8TCkpKTtjb25zdCB0PVIucmVhZEJpdChHLEgpO0ZbTl09dH1yZXR1cm4gU31mdW5jdGlvbiBodChBLGUsdCxpLGEscyxuLHIsZyl7bGV0IG89Z3RbdF0uY29kaW5nOzA9PT10JiYobz1vLmNvbmNhdChbclswXV0pKTtjb25zdCBJPW8ubGVuZ3RoLGM9bmV3IEludDMyQXJyYXkoSSksaD1uZXcgSW50MzJBcnJheShJKTtsZXQgQztmb3IoQz0wO0M8STtDKyspY1tDXT1vW0NdLngsaFtDXT1vW0NdLnk7bGV0IEI9Z3RbdF0ucmVmZXJlbmNlOzA9PT10JiYoQj1CLmNvbmNhdChbclsxXV0pKTtjb25zdCBsPUIubGVuZ3RoLFE9bmV3IEludDMyQXJyYXkobCksRT1uZXcgSW50MzJBcnJheShsKTtmb3IoQz0wO0M8bDtDKyspUVtDXT1CW0NdLngsRVtDXT1CW0NdLnk7Y29uc3QgdT1pWzBdLmxlbmd0aCxkPWkubGVuZ3RoLGY9SXRbdF0scD1bXSxtPWcuZGVjb2Rlcix5PWcuY29udGV4dENhY2hlLmdldENvbnRleHRzKCJHUiIpO2xldCB3PTA7Zm9yKGxldCB0PTA7dDxlO3QrKyl7aWYobiYmKHdePW0ucmVhZEJpdCh5LGYpLHcpKXRocm93IG5ldyAkZSgicHJlZGljdGlvbiBpcyBub3Qgc3VwcG9ydGVkIik7Y29uc3QgZT1uZXcgVWludDhBcnJheShBKTtwLnB1c2goZSk7Zm9yKGxldCBuPTA7bjxBO24rKyl7bGV0IHIsZyxvPTA7Zm9yKEM9MDtDPEk7QysrKXI9dCtoW0NdLGc9bitjW0NdLHI8MHx8ZzwwfHxnPj1BP288PD0xOm89bzw8MXxwW3JdW2ddO2ZvcihDPTA7QzxsO0MrKylyPXQrRVtDXS1zLGc9bitRW0NdLWEscjwwfHxyPj1kfHxnPDB8fGc+PXU/bzw8PTE6bz1vPDwxfGlbcl1bZ107Y29uc3QgQj1tLnJlYWRCaXQoeSxvKTtlW25dPUJ9fXJldHVybiBwfWZ1bmN0aW9uIEN0KEEsZSx0LGksYSxzLG4scixnLG8sSSxjLGgsQyxCLGwsUSxFLHUpe2lmKEEmJmUpdGhyb3cgbmV3ICRlKCJyZWZpbmVtZW50IHdpdGggSHVmZm1hbiBpcyBub3Qgc3VwcG9ydGVkIik7Y29uc3QgZD1bXTtsZXQgZixwO2ZvcihmPTA7ZjxpO2YrKyl7aWYocD1uZXcgVWludDhBcnJheSh0KSxhKWZvcihsZXQgQT0wO0E8dDtBKyspcFtBXT1hO2QucHVzaChwKX1jb25zdCBtPVEuZGVjb2Rlcix5PVEuY29udGV4dENhY2hlO2xldCB3PUE/LUMudGFibGVEZWx0YVQuZGVjb2RlKHUpOi1hdCh5LCJJQURUIixtKSxEPTA7Zm9yKGY9MDtmPHM7KXt3Kz1BP0MudGFibGVEZWx0YVQuZGVjb2RlKHUpOmF0KHksIklBRFQiLG0pLEQrPUE/Qy50YWJsZUZpcnN0Uy5kZWNvZGUodSk6YXQoeSwiSUFGUyIsbSk7bGV0IGk9RDtmb3IoOzspe2xldCBhPTA7bj4xJiYoYT1BP3UucmVhZEJpdHMoRSk6YXQoeSwiSUFJVCIsbSkpO2NvbnN0IHM9bip3K2EsRD1BP0Muc3ltYm9sSURUYWJsZS5kZWNvZGUodSk6c3QoeSxtLGcpLGI9ZSYmKEE/dS5yZWFkQml0KCk6YXQoeSwiSUFSSSIsbSkpO2xldCBrPXJbRF0sRj1rWzBdLmxlbmd0aCxTPWsubGVuZ3RoO2lmKGIpe2NvbnN0IEE9YXQoeSwiSUFSRFciLG0pLGU9YXQoeSwiSUFSREgiLG0pO0YrPUEsUys9ZSxrPWh0KEYsUyxCLGssKEE+PjEpK2F0KHksIklBUkRYIixtKSwoZT4+MSkrYXQoeSwiSUFSRFkiLG0pLCExLGwsUSl9bGV0IFI9MDtvPzEmYz9SPVMtMTppKz1TLTE6Yz4xP2krPUYtMTpSPUYtMTtjb25zdCBHPXMtKDEmYz8wOlMtMSksTj1pLSgyJmM/Ri0xOjApO2xldCB4LFUsTTtpZihvKWZvcih4PTA7eDxTO3grKyl7aWYocD1kW04reF0sIXApY29udGludWU7TT1rW3hdO2NvbnN0IEE9TWF0aC5taW4odC1HLEYpO3N3aXRjaChoKXtjYXNlIDA6Zm9yKFU9MDtVPEE7VSsrKXBbRytVXXw9TVtVXTticmVhaztjYXNlIDI6Zm9yKFU9MDtVPEE7VSsrKXBbRytVXV49TVtVXTticmVhaztkZWZhdWx0OnRocm93IG5ldyAkZShgb3BlcmF0b3IgJHtofSBpcyBub3Qgc3VwcG9ydGVkYCl9fWVsc2UgZm9yKFU9MDtVPFM7VSsrKWlmKHA9ZFtHK1VdLHApc3dpdGNoKE09a1tVXSxoKXtjYXNlIDA6Zm9yKHg9MDt4PEY7eCsrKXBbTit4XXw9TVt4XTticmVhaztjYXNlIDI6Zm9yKHg9MDt4PEY7eCsrKXBbTit4XV49TVt4XTticmVhaztkZWZhdWx0OnRocm93IG5ldyAkZShgb3BlcmF0b3IgJHtofSBpcyBub3Qgc3VwcG9ydGVkYCl9ZisrO2NvbnN0IEw9QT9DLnRhYmxlRGVsdGFTLmRlY29kZSh1KTphdCh5LCJJQURTIixtKTtpZihudWxsPT09TClicmVhaztpKz1SK0wrSX19cmV0dXJuIGR9ZnVuY3Rpb24gQnQoQSxlKXtjb25zdCB0PXt9O3QubnVtYmVyPUhBKEEsZSk7Y29uc3QgaT1BW2UrNF0sYT02MyZpO2lmKCFudFthXSl0aHJvdyBuZXcgJGUoImludmFsaWQgc2VnbWVudCB0eXBlOiAiK2EpO3QudHlwZT1hLHQudHlwZU5hbWU9bnRbYV0sdC5kZWZlcnJlZE5vblJldGFpbj0hISgxMjgmaSk7Y29uc3Qgcz0hISg2NCZpKSxuPUFbZSs1XTtsZXQgcj1uPj41Jjc7Y29uc3QgZz1bMzEmbl07bGV0IG89ZSs2O2lmKDc9PT1uKXtyPTUzNjg3MDkxMSZIQShBLG8tMSksbys9MztsZXQgZT1yKzc+PjM7Zm9yKGdbMF09QVtvKytdOy0tZT4wOylnLnB1c2goQVtvKytdKX1lbHNlIGlmKDU9PT1ufHw2PT09bil0aHJvdyBuZXcgJGUoImludmFsaWQgcmVmZXJyZWQtdG8gZmxhZ3MiKTt0LnJldGFpbkJpdHM9ZztsZXQgST00O3QubnVtYmVyPD0yNTY/ST0xOnQubnVtYmVyPD02NTUzNiYmKEk9Mik7Y29uc3QgYz1bXTtsZXQgaCxDO2ZvcihoPTA7aDxyO2grKyl7bGV0IGU7ZT0xPT09ST9BW29dOjI9PT1JP0pBKEEsbyk6SEEoQSxvKSxjLnB1c2goZSksbys9SX1pZih0LnJlZmVycmVkVG89YyxzPyh0LnBhZ2VBc3NvY2lhdGlvbj1IQShBLG8pLG8rPTQpOnQucGFnZUFzc29jaWF0aW9uPUFbbysrXSx0Lmxlbmd0aD1IQShBLG8pLG8rPTQsNDI5NDk2NzI5NT09PXQubGVuZ3RoKXtpZigzOCE9PWEpdGhyb3cgbmV3ICRlKCJpbnZhbGlkIHVua25vd24gc2VnbWVudCBsZW5ndGgiKTt7Y29uc3QgZT1RdChBLG8pLGk9ISEoMSZBW28rRXRdKSxhPTYscz1uZXcgVWludDhBcnJheShhKTtmb3IoaXx8KHNbMF09MjU1LHNbMV09MTcyKSxzWzJdPWUuaGVpZ2h0Pj4+MjQmMjU1LHNbM109ZS5oZWlnaHQ+PjE2JjI1NSxzWzRdPWUuaGVpZ2h0Pj44JjI1NSxzWzVdPTI1NSZlLmhlaWdodCxoPW8sQz1BLmxlbmd0aDtoPEM7aCsrKXtsZXQgZT0wO2Zvcig7ZTxhJiZzW2VdPT09QVtoK2VdOyllKys7aWYoZT09PWEpe3QubGVuZ3RoPWgrYTticmVha319aWYoNDI5NDk2NzI5NT09PXQubGVuZ3RoKXRocm93IG5ldyAkZSgic2VnbWVudCBlbmQgd2FzIG5vdCBmb3VuZCIpfX1yZXR1cm4gdC5oZWFkZXJFbmQ9byx0fWZ1bmN0aW9uIGx0KEEsZSx0LGkpe2NvbnN0IGE9W107bGV0IHM9dDtmb3IoO3M8aTspe2NvbnN0IHQ9QnQoZSxzKTtzPXQuaGVhZGVyRW5kO2NvbnN0IGk9e2hlYWRlcjp0LGRhdGE6ZX07aWYoQS5yYW5kb21BY2Nlc3N8fChpLnN0YXJ0PXMscys9dC5sZW5ndGgsaS5lbmQ9cyksYS5wdXNoKGkpLDUxPT09dC50eXBlKWJyZWFrfWlmKEEucmFuZG9tQWNjZXNzKWZvcihsZXQgQT0wLGU9YS5sZW5ndGg7QTxlO0ErKylhW0FdLnN0YXJ0PXMscys9YVtBXS5oZWFkZXIubGVuZ3RoLGFbQV0uZW5kPXM7cmV0dXJuIGF9ZnVuY3Rpb24gUXQoQSxlKXtyZXR1cm57d2lkdGg6SEEoQSxlKSxoZWlnaHQ6SEEoQSxlKzQpLHg6SEEoQSxlKzgpLHk6SEEoQSxlKzEyKSxjb21iaW5hdGlvbk9wZXJhdG9yOjcmQVtlKzE2XX19Y29uc3QgRXQ9MTc7ZnVuY3Rpb24gdXQoQSxlKXtjb25zdCB0PUEuaGVhZGVyLGk9QS5kYXRhLGE9QS5lbmQ7bGV0IHMsbixyLGcsbz1BLnN0YXJ0O3N3aXRjaCh0LnR5cGUpe2Nhc2UgMDpjb25zdCBBPXt9LGU9SkEoaSxvKTtpZihBLmh1ZmZtYW49ISEoMSZlKSxBLnJlZmluZW1lbnQ9ISEoMiZlKSxBLmh1ZmZtYW5ESFNlbGVjdG9yPWU+PjImMyxBLmh1ZmZtYW5EV1NlbGVjdG9yPWU+PjQmMyxBLmJpdG1hcFNpemVTZWxlY3Rvcj1lPj42JjEsQS5hZ2dyZWdhdGlvbkluc3RhbmNlc1NlbGVjdG9yPWU+PjcmMSxBLmJpdG1hcENvZGluZ0NvbnRleHRVc2VkPSEhKDI1NiZlKSxBLmJpdG1hcENvZGluZ0NvbnRleHRSZXRhaW5lZD0hISg1MTImZSksQS50ZW1wbGF0ZT1lPj4xMCYzLEEucmVmaW5lbWVudFRlbXBsYXRlPWU+PjEyJjEsbys9MiwhQS5odWZmbWFuKXtmb3IoZz0wPT09QS50ZW1wbGF0ZT80OjEsbj1bXSxyPTA7cjxnO3IrKyluLnB1c2goe3g6TEEoaSxvKSx5OkxBKGksbysxKX0pLG8rPTI7QS5hdD1ufWlmKEEucmVmaW5lbWVudCYmIUEucmVmaW5lbWVudFRlbXBsYXRlKXtmb3Iobj1bXSxyPTA7cjwyO3IrKyluLnB1c2goe3g6TEEoaSxvKSx5OkxBKGksbysxKX0pLG8rPTI7QS5yZWZpbmVtZW50QXQ9bn1BLm51bWJlck9mRXhwb3J0ZWRTeW1ib2xzPUhBKGksbyksbys9NCxBLm51bWJlck9mTmV3U3ltYm9scz1IQShpLG8pLG8rPTQscz1bQSx0Lm51bWJlcix0LnJlZmVycmVkVG8saSxvLGFdO2JyZWFrO2Nhc2UgNjpjYXNlIDc6Y29uc3QgST17fTtJLmluZm89UXQoaSxvKSxvKz1FdDtjb25zdCBjPUpBKGksbyk7aWYobys9MixJLmh1ZmZtYW49ISEoMSZjKSxJLnJlZmluZW1lbnQ9ISEoMiZjKSxJLmxvZ1N0cmlwU2l6ZT1jPj4yJjMsSS5zdHJpcFNpemU9MTw8SS5sb2dTdHJpcFNpemUsSS5yZWZlcmVuY2VDb3JuZXI9Yz4+NCYzLEkudHJhbnNwb3NlZD0hISg2NCZjKSxJLmNvbWJpbmF0aW9uT3BlcmF0b3I9Yz4+NyYzLEkuZGVmYXVsdFBpeGVsVmFsdWU9Yz4+OSYxLEkuZHNPZmZzZXQ9Yzw8MTc+PjI3LEkucmVmaW5lbWVudFRlbXBsYXRlPWM+PjE1JjEsSS5odWZmbWFuKXtjb25zdCBBPUpBKGksbyk7bys9MixJLmh1ZmZtYW5GUz0zJkEsSS5odWZmbWFuRFM9QT4+MiYzLEkuaHVmZm1hbkRUPUE+PjQmMyxJLmh1ZmZtYW5SZWZpbmVtZW50RFc9QT4+NiYzLEkuaHVmZm1hblJlZmluZW1lbnRESD1BPj44JjMsSS5odWZmbWFuUmVmaW5lbWVudERYPUE+PjEwJjMsSS5odWZmbWFuUmVmaW5lbWVudERZPUE+PjEyJjMsSS5odWZmbWFuUmVmaW5lbWVudFNpemVTZWxlY3Rvcj0hISgxNjM4NCZBKX1pZihJLnJlZmluZW1lbnQmJiFJLnJlZmluZW1lbnRUZW1wbGF0ZSl7Zm9yKG49W10scj0wO3I8MjtyKyspbi5wdXNoKHt4OkxBKGksbykseTpMQShpLG8rMSl9KSxvKz0yO0kucmVmaW5lbWVudEF0PW59SS5udW1iZXJPZlN5bWJvbEluc3RhbmNlcz1IQShpLG8pLG8rPTQscz1bSSx0LnJlZmVycmVkVG8saSxvLGFdO2JyZWFrO2Nhc2UgMTY6Y29uc3QgaD17fSxDPWlbbysrXTtoLm1tcj0hISgxJkMpLGgudGVtcGxhdGU9Qz4+MSYzLGgucGF0dGVybldpZHRoPWlbbysrXSxoLnBhdHRlcm5IZWlnaHQ9aVtvKytdLGgubWF4UGF0dGVybkluZGV4PUhBKGksbyksbys9NCxzPVtoLHQubnVtYmVyLGksbyxhXTticmVhaztjYXNlIDIyOmNhc2UgMjM6Y29uc3QgQj17fTtCLmluZm89UXQoaSxvKSxvKz1FdDtjb25zdCBsPWlbbysrXTtCLm1tcj0hISgxJmwpLEIudGVtcGxhdGU9bD4+MSYzLEIuZW5hYmxlU2tpcD0hISg4JmwpLEIuY29tYmluYXRpb25PcGVyYXRvcj1sPj40JjcsQi5kZWZhdWx0UGl4ZWxWYWx1ZT1sPj43JjEsQi5ncmlkV2lkdGg9SEEoaSxvKSxvKz00LEIuZ3JpZEhlaWdodD1IQShpLG8pLG8rPTQsQi5ncmlkT2Zmc2V0WD00Mjk0OTY3Mjk1JkhBKGksbyksbys9NCxCLmdyaWRPZmZzZXRZPTQyOTQ5NjcyOTUmSEEoaSxvKSxvKz00LEIuZ3JpZFZlY3Rvclg9SkEoaSxvKSxvKz0yLEIuZ3JpZFZlY3Rvclk9SkEoaSxvKSxvKz0yLHM9W0IsdC5yZWZlcnJlZFRvLGksbyxhXTticmVhaztjYXNlIDM4OmNhc2UgMzk6Y29uc3QgUT17fTtRLmluZm89UXQoaSxvKSxvKz1FdDtjb25zdCBFPWlbbysrXTtpZihRLm1tcj0hISgxJkUpLFEudGVtcGxhdGU9RT4+MSYzLFEucHJlZGljdGlvbj0hISg4JkUpLCFRLm1tcil7Zm9yKGc9MD09PVEudGVtcGxhdGU/NDoxLG49W10scj0wO3I8ZztyKyspbi5wdXNoKHt4OkxBKGksbykseTpMQShpLG8rMSl9KSxvKz0yO1EuYXQ9bn1zPVtRLGksbyxhXTticmVhaztjYXNlIDQ4OmNvbnN0IHU9e3dpZHRoOkhBKGksbyksaGVpZ2h0OkhBKGksbys0KSxyZXNvbHV0aW9uWDpIQShpLG8rOCkscmVzb2x1dGlvblk6SEEoaSxvKzEyKX07NDI5NDk2NzI5NT09PXUuaGVpZ2h0JiZkZWxldGUgdS5oZWlnaHQ7Y29uc3QgZD1pW28rMTZdO0pBKGksbysxNyksdS5sb3NzbGVzcz0hISgxJmQpLHUucmVmaW5lbWVudD0hISgyJmQpLHUuZGVmYXVsdFBpeGVsVmFsdWU9ZD4+MiYxLHUuY29tYmluYXRpb25PcGVyYXRvcj1kPj4zJjMsdS5yZXF1aXJlc0J1ZmZlcj0hISgzMiZkKSx1LmNvbWJpbmF0aW9uT3BlcmF0b3JPdmVycmlkZT0hISg2NCZkKSxzPVt1XTticmVhaztjYXNlIDQ5OmNhc2UgNTA6Y2FzZSA1MTpjYXNlIDYyOmJyZWFrO2Nhc2UgNTM6cz1bdC5udW1iZXIsaSxvLGFdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3ICRlKGBzZWdtZW50IHR5cGUgJHt0LnR5cGVOYW1lfSgke3QudHlwZX0pIGlzIG5vdCBpbXBsZW1lbnRlZGApfWNvbnN0IEk9Im9uIit0LnR5cGVOYW1lO0kgaW4gZSYmZVtJXS5hcHBseShlLHMpfWZ1bmN0aW9uIGR0KEEsZSl7Zm9yKGxldCB0PTAsaT1BLmxlbmd0aDt0PGk7dCsrKXV0KEFbdF0sZSl9Y2xhc3MgZnR7b25QYWdlSW5mb3JtYXRpb24oQSl7dGhpcy5jdXJyZW50UGFnZUluZm89QTtjb25zdCBlPUEud2lkdGgrNz4+Myx0PW5ldyBVaW50OENsYW1wZWRBcnJheShlKkEuaGVpZ2h0KTtBLmRlZmF1bHRQaXhlbFZhbHVlJiZ0LmZpbGwoMjU1KSx0aGlzLmJ1ZmZlcj10fWRyYXdCaXRtYXAoQSxlKXtjb25zdCB0PXRoaXMuY3VycmVudFBhZ2VJbmZvLGk9QS53aWR0aCxhPUEuaGVpZ2h0LHM9dC53aWR0aCs3Pj4zLG49dC5jb21iaW5hdGlvbk9wZXJhdG9yT3ZlcnJpZGU/QS5jb21iaW5hdGlvbk9wZXJhdG9yOnQuY29tYmluYXRpb25PcGVyYXRvcixyPXRoaXMuYnVmZmVyLGc9MTI4Pj4oNyZBLngpO2xldCBvLEksYyxoLEM9QS55KnMrKEEueD4+Myk7c3dpdGNoKG4pe2Nhc2UgMDpmb3Iobz0wO288YTtvKyspe2ZvcihjPWcsaD1DLEk9MDtJPGk7SSsrKWVbb11bSV0mJihyW2hdfD1jKSxjPj49MSxjfHwoYz0xMjgsaCsrKTtDKz1zfWJyZWFrO2Nhc2UgMjpmb3Iobz0wO288YTtvKyspe2ZvcihjPWcsaD1DLEk9MDtJPGk7SSsrKWVbb11bSV0mJihyW2hdXj1jKSxjPj49MSxjfHwoYz0xMjgsaCsrKTtDKz1zfWJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3ICRlKGBvcGVyYXRvciAke259IGlzIG5vdCBzdXBwb3J0ZWRgKX19b25JbW1lZGlhdGVHZW5lcmljUmVnaW9uKEEsZSx0LGkpe2NvbnN0IGE9QS5pbmZvLHM9bmV3IGV0KGUsdCxpKSxuPWN0KEEubW1yLGEud2lkdGgsYS5oZWlnaHQsQS50ZW1wbGF0ZSxBLnByZWRpY3Rpb24sbnVsbCxBLmF0LHMpO3RoaXMuZHJhd0JpdG1hcChhLG4pfW9uSW1tZWRpYXRlTG9zc2xlc3NHZW5lcmljUmVnaW9uKCl7dGhpcy5vbkltbWVkaWF0ZUdlbmVyaWNSZWdpb24oLi4uYXJndW1lbnRzKX1vblN5bWJvbERpY3Rpb25hcnkoQSxlLHQsaSxhLHMpe2xldCBuLHI7QS5odWZmbWFuJiYobj1mdW5jdGlvbihBLGUsdCl7bGV0IGksYSxzLG4scj0wO3N3aXRjaChBLmh1ZmZtYW5ESFNlbGVjdG9yKXtjYXNlIDA6Y2FzZSAxOmk9RHQoQS5odWZmbWFuREhTZWxlY3Rvcis0KTticmVhaztjYXNlIDM6aT1rdChyLGUsdCkscisrO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3ICRlKCJpbnZhbGlkIEh1ZmZtYW4gREggc2VsZWN0b3IiKX1zd2l0Y2goQS5odWZmbWFuRFdTZWxlY3Rvcil7Y2FzZSAwOmNhc2UgMTphPUR0KEEuaHVmZm1hbkRXU2VsZWN0b3IrMik7YnJlYWs7Y2FzZSAzOmE9a3QocixlLHQpLHIrKzticmVhaztkZWZhdWx0OnRocm93IG5ldyAkZSgiaW52YWxpZCBIdWZmbWFuIERXIHNlbGVjdG9yIil9cmV0dXJuIEEuYml0bWFwU2l6ZVNlbGVjdG9yPyhzPWt0KHIsZSx0KSxyKyspOnM9RHQoMSksbj1BLmFnZ3JlZ2F0aW9uSW5zdGFuY2VzU2VsZWN0b3I/a3QocixlLHQpOkR0KDEpLHt0YWJsZURlbHRhSGVpZ2h0OmksdGFibGVEZWx0YVdpZHRoOmEsdGFibGVCaXRtYXBTaXplOnMsdGFibGVBZ2dyZWdhdGVJbnN0YW5jZXM6bn19KEEsdCx0aGlzLmN1c3RvbVRhYmxlcykscj1uZXcgYnQoaSxhLHMpKTtsZXQgZz10aGlzLnN5bWJvbHM7Z3x8KHRoaXMuc3ltYm9scz1nPXt9KTtjb25zdCBvPVtdO2Zvcihjb25zdCBBIG9mIHQpe2NvbnN0IGU9Z1tBXTtlJiZvLnB1c2goLi4uZSl9Y29uc3QgST1uZXcgZXQoaSxhLHMpO2dbZV09ZnVuY3Rpb24oQSxlLHQsaSxhLHMsbixyLGcsbyxJLGMpe2lmKEEmJmUpdGhyb3cgbmV3ICRlKCJzeW1ib2wgcmVmaW5lbWVudCB3aXRoIEh1ZmZtYW4gaXMgbm90IHN1cHBvcnRlZCIpO2NvbnN0IGg9W107bGV0IEM9MCxCPU1BKHQubGVuZ3RoK2kpO2NvbnN0IGw9SS5kZWNvZGVyLFE9SS5jb250ZXh0Q2FjaGU7bGV0IEUsdTtmb3IoQSYmKEU9RHQoMSksdT1bXSxCPU1hdGgubWF4KEIsMSkpO2gubGVuZ3RoPGk7KXtDKz1BP3MudGFibGVEZWx0YUhlaWdodC5kZWNvZGUoYyk6YXQoUSwiSUFESCIsbCk7bGV0IGk9MCxhPTA7Y29uc3QgRT1BP3UubGVuZ3RoOjA7Zm9yKDs7KXtjb25zdCBFPUE/cy50YWJsZURlbHRhV2lkdGguZGVjb2RlKGMpOmF0KFEsIklBRFciLGwpO2lmKG51bGw9PT1FKWJyZWFrO2xldCBkO2lmKGkrPUUsYSs9aSxlKXtjb25zdCBhPWF0KFEsIklBQUkiLGwpO2lmKGE+MSlkPUN0KEEsZSxpLEMsMCxhLDEsdC5jb25jYXQoaCksQiwwLDAsMSwwLHMsZyxvLEksMCxjKTtlbHNle2NvbnN0IEE9c3QoUSxsLEIpLGU9YXQoUSwiSUFSRFgiLGwpLGE9YXQoUSwiSUFSRFkiLGwpO2Q9aHQoaSxDLGcsQTx0Lmxlbmd0aD90W0FdOmhbQS10Lmxlbmd0aF0sZSxhLCExLG8sSSl9aC5wdXNoKGQpfWVsc2UgQT91LnB1c2goaSk6KGQ9Y3QoITEsaSxDLG4sITEsbnVsbCxyLEkpLGgucHVzaChkKSl9aWYoQSYmIWUpe2NvbnN0IEE9cy50YWJsZUJpdG1hcFNpemUuZGVjb2RlKGMpO2xldCBlO2lmKGMuYnl0ZUFsaWduKCksMD09PUEpZT1GdChjLGEsQyk7ZWxzZXtjb25zdCB0PWMuZW5kLGk9Yy5wb3NpdGlvbitBO2MuZW5kPWksZT1TdChjLGEsQywhMSksYy5lbmQ9dCxjLnBvc2l0aW9uPWl9Y29uc3QgdD11Lmxlbmd0aDtpZihFPT09dC0xKWgucHVzaChlKTtlbHNle2xldCBBLGksYSxzLG4scj0wO2ZvcihBPUU7QTx0O0ErKyl7Zm9yKHM9dVtBXSxhPXIrcyxuPVtdLGk9MDtpPEM7aSsrKW4ucHVzaChlW2ldLnN1YmFycmF5KHIsYSkpO2gucHVzaChuKSxyPWF9fX19Y29uc3QgZD1bXSxmPVtdO2xldCBwLG0seT0hMTtjb25zdCB3PXQubGVuZ3RoK2k7Zm9yKDtmLmxlbmd0aDx3Oyl7bGV0IGU9QT9FLmRlY29kZShjKTphdChRLCJJQUVYIixsKTtmb3IoO2UtLTspZi5wdXNoKHkpO3k9IXl9Zm9yKHA9MCxtPXQubGVuZ3RoO3A8bTtwKyspZltwXSYmZC5wdXNoKHRbcF0pO2ZvcihsZXQgQT0wO0E8aTtwKyssQSsrKWZbcF0mJmQucHVzaChoW0FdKTtyZXR1cm4gZH0oQS5odWZmbWFuLEEucmVmaW5lbWVudCxvLEEubnVtYmVyT2ZOZXdTeW1ib2xzLEEubnVtYmVyT2ZFeHBvcnRlZFN5bWJvbHMsbixBLnRlbXBsYXRlLEEuYXQsQS5yZWZpbmVtZW50VGVtcGxhdGUsQS5yZWZpbmVtZW50QXQsSSxyKX1vbkltbWVkaWF0ZVRleHRSZWdpb24oQSxlLHQsaSxhKXtjb25zdCBzPUEuaW5mbztsZXQgbixyO2NvbnN0IGc9dGhpcy5zeW1ib2xzLG89W107Zm9yKGNvbnN0IEEgb2YgZSl7Y29uc3QgZT1nW0FdO2UmJm8ucHVzaCguLi5lKX1jb25zdCBJPU1BKG8ubGVuZ3RoKTtBLmh1ZmZtYW4mJihyPW5ldyBidCh0LGksYSksbj1mdW5jdGlvbihBLGUsdCxpLGEpe2NvbnN0IHM9W107Zm9yKGxldCBBPTA7QTw9MzQ7QSsrKXtjb25zdCBlPWEucmVhZEJpdHMoNCk7cy5wdXNoKG5ldyBwdChbQSxlLDAsMF0pKX1jb25zdCBuPW5ldyB5dChzLCExKTtzLmxlbmd0aD0wO2ZvcihsZXQgQT0wO0E8aTspe2NvbnN0IGU9bi5kZWNvZGUoYSk7aWYoZT49MzIpe2xldCB0LGksbjtzd2l0Y2goZSl7Y2FzZSAzMjppZigwPT09QSl0aHJvdyBuZXcgJGUoIm5vIHByZXZpb3VzIHZhbHVlIGluIHN5bWJvbCBJRCB0YWJsZSIpO2k9YS5yZWFkQml0cygyKSszLHQ9c1tBLTFdLnByZWZpeExlbmd0aDticmVhaztjYXNlIDMzOmk9YS5yZWFkQml0cygzKSszLHQ9MDticmVhaztjYXNlIDM0Omk9YS5yZWFkQml0cyg3KSsxMSx0PTA7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgJGUoImludmFsaWQgY29kZSBsZW5ndGggaW4gc3ltYm9sIElEIHRhYmxlIil9Zm9yKG49MDtuPGk7bisrKXMucHVzaChuZXcgcHQoW0EsdCwwLDBdKSksQSsrfWVsc2Ugcy5wdXNoKG5ldyBwdChbQSxlLDAsMF0pKSxBKyt9YS5ieXRlQWxpZ24oKTtjb25zdCByPW5ldyB5dChzLCExKTtsZXQgZyxvLEksYz0wO3N3aXRjaChBLmh1ZmZtYW5GUyl7Y2FzZSAwOmNhc2UgMTpnPUR0KEEuaHVmZm1hbkZTKzYpO2JyZWFrO2Nhc2UgMzpnPWt0KGMsZSx0KSxjKys7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgJGUoImludmFsaWQgSHVmZm1hbiBGUyBzZWxlY3RvciIpfXN3aXRjaChBLmh1ZmZtYW5EUyl7Y2FzZSAwOmNhc2UgMTpjYXNlIDI6bz1EdChBLmh1ZmZtYW5EUys4KTticmVhaztjYXNlIDM6bz1rdChjLGUsdCksYysrO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3ICRlKCJpbnZhbGlkIEh1ZmZtYW4gRFMgc2VsZWN0b3IiKX1zd2l0Y2goQS5odWZmbWFuRFQpe2Nhc2UgMDpjYXNlIDE6Y2FzZSAyOkk9RHQoQS5odWZmbWFuRFQrMTEpO2JyZWFrO2Nhc2UgMzpJPWt0KGMsZSx0KSxjKys7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgJGUoImludmFsaWQgSHVmZm1hbiBEVCBzZWxlY3RvciIpfWlmKEEucmVmaW5lbWVudCl0aHJvdyBuZXcgJGUoInJlZmluZW1lbnQgd2l0aCBIdWZmbWFuIGlzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm57c3ltYm9sSURUYWJsZTpyLHRhYmxlRmlyc3RTOmcsdGFibGVEZWx0YVM6byx0YWJsZURlbHRhVDpJfX0oQSxlLHRoaXMuY3VzdG9tVGFibGVzLG8ubGVuZ3RoLHIpKTtjb25zdCBjPW5ldyBldCh0LGksYSksaD1DdChBLmh1ZmZtYW4sQS5yZWZpbmVtZW50LHMud2lkdGgscy5oZWlnaHQsQS5kZWZhdWx0UGl4ZWxWYWx1ZSxBLm51bWJlck9mU3ltYm9sSW5zdGFuY2VzLEEuc3RyaXBTaXplLG8sSSxBLnRyYW5zcG9zZWQsQS5kc09mZnNldCxBLnJlZmVyZW5jZUNvcm5lcixBLmNvbWJpbmF0aW9uT3BlcmF0b3IsbixBLnJlZmluZW1lbnRUZW1wbGF0ZSxBLnJlZmluZW1lbnRBdCxjLEEubG9nU3RyaXBTaXplLHIpO3RoaXMuZHJhd0JpdG1hcChzLGgpfW9uSW1tZWRpYXRlTG9zc2xlc3NUZXh0UmVnaW9uKCl7dGhpcy5vbkltbWVkaWF0ZVRleHRSZWdpb24oLi4uYXJndW1lbnRzKX1vblBhdHRlcm5EaWN0aW9uYXJ5KEEsZSx0LGksYSl7bGV0IHM9dGhpcy5wYXR0ZXJucztzfHwodGhpcy5wYXR0ZXJucz1zPXt9KTtjb25zdCBuPW5ldyBldCh0LGksYSk7c1tlXT1mdW5jdGlvbihBLGUsdCxpLGEscyl7Y29uc3Qgbj1bXTtBfHwobi5wdXNoKHt4Oi1lLHk6MH0pLDA9PT1hJiZuLnB1c2goe3g6LTMseTotMX0se3g6Mix5Oi0yfSx7eDotMix5Oi0yfSkpO2NvbnN0IHI9Y3QoQSwoaSsxKSplLHQsYSwhMSxudWxsLG4scyksZz1bXTtmb3IobGV0IEE9MDtBPD1pO0ErKyl7Y29uc3QgaT1bXSxhPWUqQSxzPWErZTtmb3IobGV0IEE9MDtBPHQ7QSsrKWkucHVzaChyW0FdLnN1YmFycmF5KGEscykpO2cucHVzaChpKX1yZXR1cm4gZ30oQS5tbXIsQS5wYXR0ZXJuV2lkdGgsQS5wYXR0ZXJuSGVpZ2h0LEEubWF4UGF0dGVybkluZGV4LEEudGVtcGxhdGUsbil9b25JbW1lZGlhdGVIYWxmdG9uZVJlZ2lvbihBLGUsdCxpLGEpe2NvbnN0IHM9dGhpcy5wYXR0ZXJuc1tlWzBdXSxuPUEuaW5mbyxyPW5ldyBldCh0LGksYSksZz1mdW5jdGlvbihBLGUsdCxpLGEscyxuLHIsZyxvLEksYyxoLEMsQil7aWYobil0aHJvdyBuZXcgJGUoInNraXAgaXMgbm90IHN1cHBvcnRlZCIpO2lmKDAhPT1yKXRocm93IG5ldyAkZShgb3BlcmF0b3IgIiR7cn0iIGlzIG5vdCBzdXBwb3J0ZWQgaW4gaGFsZnRvbmUgcmVnaW9uYCk7Y29uc3QgbD1bXTtsZXQgUSxFLHU7Zm9yKFE9MDtRPGE7USsrKXtpZih1PW5ldyBVaW50OEFycmF5KGkpLHMpZm9yKEU9MDtFPGk7RSsrKXVbRV09cztsLnB1c2godSl9Y29uc3QgZD1lLmxlbmd0aCxmPWVbMF0scD1mWzBdLmxlbmd0aCxtPWYubGVuZ3RoLHk9TUEoZCksdz1bXTtBfHwody5wdXNoKHt4OnQ8PTE/MzoyLHk6LTF9KSwwPT09dCYmdy5wdXNoKHt4Oi0zLHk6LTF9LHt4OjIseTotMn0se3g6LTIseTotMn0pKTtjb25zdCBEPVtdO2xldCBiLGssRixTLFIsRyxOLHgsVSxNLEw7Zm9yKEEmJihiPW5ldyBidChCLmRhdGEsQi5zdGFydCxCLmVuZCkpLFE9eS0xO1E+PTA7US0tKWs9QT9TdChiLGcsbywhMCk6Y3QoITEsZyxvLHQsITEsbnVsbCx3LEIpLERbUV09aztmb3IoRj0wO0Y8bztGKyspZm9yKFM9MDtTPGc7UysrKXtmb3IoUj0wLEc9MCxFPXktMTtFPj0wO0UtLSlSXj1EW0VdW0ZdW1NdLEd8PVI8PEU7aWYoTj1lW0ddLHg9SStGKkMrUypoPj44LFU9YytGKmgtUypDPj44LHg+PTAmJngrcDw9aSYmVT49MCYmVSttPD1hKWZvcihRPTA7UTxtO1ErKylmb3IoTD1sW1UrUV0sTT1OW1FdLEU9MDtFPHA7RSsrKUxbeCtFXXw9TVtFXTtlbHNle2xldCBBLGU7Zm9yKFE9MDtRPG07USsrKWlmKGU9VStRLCEoZTwwfHxlPj1hKSlmb3IoTD1sW2VdLE09TltRXSxFPTA7RTxwO0UrKylBPXgrRSxBPj0wJiZBPGkmJihMW0FdfD1NW0VdKX19cmV0dXJuIGx9KEEubW1yLHMsQS50ZW1wbGF0ZSxuLndpZHRoLG4uaGVpZ2h0LEEuZGVmYXVsdFBpeGVsVmFsdWUsQS5lbmFibGVTa2lwLEEuY29tYmluYXRpb25PcGVyYXRvcixBLmdyaWRXaWR0aCxBLmdyaWRIZWlnaHQsQS5ncmlkT2Zmc2V0WCxBLmdyaWRPZmZzZXRZLEEuZ3JpZFZlY3RvclgsQS5ncmlkVmVjdG9yWSxyKTt0aGlzLmRyYXdCaXRtYXAobixnKX1vbkltbWVkaWF0ZUxvc3NsZXNzSGFsZnRvbmVSZWdpb24oKXt0aGlzLm9uSW1tZWRpYXRlSGFsZnRvbmVSZWdpb24oLi4uYXJndW1lbnRzKX1vblRhYmxlcyhBLGUsdCxpKXtsZXQgYT10aGlzLmN1c3RvbVRhYmxlczthfHwodGhpcy5jdXN0b21UYWJsZXM9YT17fSksYVtBXT1mdW5jdGlvbihBLGUsdCl7Y29uc3QgaT1BW2VdLGE9NDI5NDk2NzI5NSZIQShBLGUrMSkscz00Mjk0OTY3Mjk1JkhBKEEsZSs1KSxuPW5ldyBidChBLGUrOSx0KSxyPTErKGk+PjEmNyksZz0xKyhpPj40JjcpLG89W107bGV0IEksYyxoPWE7ZG97ST1uLnJlYWRCaXRzKHIpLGM9bi5yZWFkQml0cyhnKSxvLnB1c2gobmV3IHB0KFtoLEksYywwXSkpLGgrPTE8PGN9d2hpbGUoaDxzKTtyZXR1cm4gST1uLnJlYWRCaXRzKHIpLG8ucHVzaChuZXcgcHQoW2EtMSxJLDMyLDAsImxvd2VyIl0pKSxJPW4ucmVhZEJpdHMociksby5wdXNoKG5ldyBwdChbcyxJLDMyLDBdKSksMSZpJiYoST1uLnJlYWRCaXRzKHIpLG8ucHVzaChuZXcgcHQoW0ksMF0pKSksbmV3IHl0KG8sITEpfShlLHQsaSl9fWNsYXNzIHB0e2NvbnN0cnVjdG9yKEEpezI9PT1BLmxlbmd0aD8odGhpcy5pc09PQj0hMCx0aGlzLnJhbmdlTG93PTAsdGhpcy5wcmVmaXhMZW5ndGg9QVswXSx0aGlzLnJhbmdlTGVuZ3RoPTAsdGhpcy5wcmVmaXhDb2RlPUFbMV0sdGhpcy5pc0xvd2VyUmFuZ2U9ITEpOih0aGlzLmlzT09CPSExLHRoaXMucmFuZ2VMb3c9QVswXSx0aGlzLnByZWZpeExlbmd0aD1BWzFdLHRoaXMucmFuZ2VMZW5ndGg9QVsyXSx0aGlzLnByZWZpeENvZGU9QVszXSx0aGlzLmlzTG93ZXJSYW5nZT0ibG93ZXIiPT09QVs0XSl9fWNsYXNzIG10e2NvbnN0cnVjdG9yKEEpe3RoaXMuY2hpbGRyZW49W10sQT8odGhpcy5pc0xlYWY9ITAsdGhpcy5yYW5nZUxlbmd0aD1BLnJhbmdlTGVuZ3RoLHRoaXMucmFuZ2VMb3c9QS5yYW5nZUxvdyx0aGlzLmlzTG93ZXJSYW5nZT1BLmlzTG93ZXJSYW5nZSx0aGlzLmlzT09CPUEuaXNPT0IpOnRoaXMuaXNMZWFmPSExfWJ1aWxkVHJlZShBLGUpe2NvbnN0IHQ9QS5wcmVmaXhDb2RlPj5lJjE7aWYoZTw9MCl0aGlzLmNoaWxkcmVuW3RdPW5ldyBtdChBKTtlbHNle2xldCBpPXRoaXMuY2hpbGRyZW5bdF07aXx8KHRoaXMuY2hpbGRyZW5bdF09aT1uZXcgbXQobnVsbCkpLGkuYnVpbGRUcmVlKEEsZS0xKX19ZGVjb2RlTm9kZShBKXtpZih0aGlzLmlzTGVhZil7aWYodGhpcy5pc09PQilyZXR1cm4gbnVsbDtjb25zdCBlPUEucmVhZEJpdHModGhpcy5yYW5nZUxlbmd0aCk7cmV0dXJuIHRoaXMucmFuZ2VMb3crKHRoaXMuaXNMb3dlclJhbmdlPy1lOmUpfWNvbnN0IGU9dGhpcy5jaGlsZHJlbltBLnJlYWRCaXQoKV07aWYoIWUpdGhyb3cgbmV3ICRlKCJpbnZhbGlkIEh1ZmZtYW4gZGF0YSIpO3JldHVybiBlLmRlY29kZU5vZGUoQSl9fWNsYXNzIHl0e2NvbnN0cnVjdG9yKEEsZSl7ZXx8dGhpcy5hc3NpZ25QcmVmaXhDb2RlcyhBKSx0aGlzLnJvb3ROb2RlPW5ldyBtdChudWxsKTtmb3IobGV0IGU9MCx0PUEubGVuZ3RoO2U8dDtlKyspe2NvbnN0IHQ9QVtlXTt0LnByZWZpeExlbmd0aD4wJiZ0aGlzLnJvb3ROb2RlLmJ1aWxkVHJlZSh0LHQucHJlZml4TGVuZ3RoLTEpfX1kZWNvZGUoQSl7cmV0dXJuIHRoaXMucm9vdE5vZGUuZGVjb2RlTm9kZShBKX1hc3NpZ25QcmVmaXhDb2RlcyhBKXtjb25zdCBlPUEubGVuZ3RoO2xldCB0PTA7Zm9yKGxldCBpPTA7aTxlO2krKyl0PU1hdGgubWF4KHQsQVtpXS5wcmVmaXhMZW5ndGgpO2NvbnN0IGk9bmV3IFVpbnQzMkFycmF5KHQrMSk7Zm9yKGxldCB0PTA7dDxlO3QrKylpW0FbdF0ucHJlZml4TGVuZ3RoXSsrO2xldCBhLHMsbixyPTEsZz0wO2ZvcihpWzBdPTA7cjw9dDspe2ZvcihnPWcraVtyLTFdPDwxLGE9ZyxzPTA7czxlOyluPUFbc10sbi5wcmVmaXhMZW5ndGg9PT1yJiYobi5wcmVmaXhDb2RlPWEsYSsrKSxzKys7cisrfX19Y29uc3Qgd3Q9e307ZnVuY3Rpb24gRHQoQSl7bGV0IGUsdD13dFtBXTtpZih0KXJldHVybiB0O3N3aXRjaChBKXtjYXNlIDE6ZT1bWzAsMSw0LDBdLFsxNiwyLDgsMl0sWzI3MiwzLDE2LDZdLFs2NTgwOCwzLDMyLDddXTticmVhaztjYXNlIDI6ZT1bWzAsMSwwLDBdLFsxLDIsMCwyXSxbMiwzLDAsNl0sWzMsNCwzLDE0XSxbMTEsNSw2LDMwXSxbNzUsNiwzMiw2Ml0sWzYsNjNdXTticmVhaztjYXNlIDM6ZT1bWy0yNTYsOCw4LDI1NF0sWzAsMSwwLDBdLFsxLDIsMCwyXSxbMiwzLDAsNl0sWzMsNCwzLDE0XSxbMTEsNSw2LDMwXSxbLTI1Nyw4LDMyLDI1NSwibG93ZXIiXSxbNzUsNywzMiwxMjZdLFs2LDYyXV07YnJlYWs7Y2FzZSA0OmU9W1sxLDEsMCwwXSxbMiwyLDAsMl0sWzMsMywwLDZdLFs0LDQsMywxNF0sWzEyLDUsNiwzMF0sWzc2LDUsMzIsMzFdXTticmVhaztjYXNlIDU6ZT1bWy0yNTUsNyw4LDEyNl0sWzEsMSwwLDBdLFsyLDIsMCwyXSxbMywzLDAsNl0sWzQsNCwzLDE0XSxbMTIsNSw2LDMwXSxbLTI1Niw3LDMyLDEyNywibG93ZXIiXSxbNzYsNiwzMiw2Ml1dO2JyZWFrO2Nhc2UgNjplPVtbLTIwNDgsNSwxMCwyOF0sWy0xMDI0LDQsOSw4XSxbLTUxMiw0LDgsOV0sWy0yNTYsNCw3LDEwXSxbLTEyOCw1LDYsMjldLFstNjQsNSw1LDMwXSxbLTMyLDQsNSwxMV0sWzAsMiw3LDBdLFsxMjgsMyw3LDJdLFsyNTYsMyw4LDNdLFs1MTIsNCw5LDEyXSxbMTAyNCw0LDEwLDEzXSxbLTIwNDksNiwzMiw2MiwibG93ZXIiXSxbMjA0OCw2LDMyLDYzXV07YnJlYWs7Y2FzZSA3OmU9W1stMTAyNCw0LDksOF0sWy01MTIsMyw4LDBdLFstMjU2LDQsNyw5XSxbLTEyOCw1LDYsMjZdLFstNjQsNSw1LDI3XSxbLTMyLDQsNSwxMF0sWzAsNCw1LDExXSxbMzIsNSw1LDI4XSxbNjQsNSw2LDI5XSxbMTI4LDQsNywxMl0sWzI1NiwzLDgsMV0sWzUxMiwzLDksMl0sWzEwMjQsMywxMCwzXSxbLTEwMjUsNSwzMiwzMCwibG93ZXIiXSxbMjA0OCw1LDMyLDMxXV07YnJlYWs7Y2FzZSA4OmU9W1stMTUsOCwzLDI1Ml0sWy03LDksMSw1MDhdLFstNSw4LDEsMjUzXSxbLTMsOSwwLDUwOV0sWy0yLDcsMCwxMjRdLFstMSw0LDAsMTBdLFswLDIsMSwwXSxbMiw1LDAsMjZdLFszLDYsMCw1OF0sWzQsMyw0LDRdLFsyMCw2LDEsNTldLFsyMiw0LDQsMTFdLFszOCw0LDUsMTJdLFs3MCw1LDYsMjddLFsxMzQsNSw3LDI4XSxbMjYyLDYsNyw2MF0sWzM5MCw3LDgsMTI1XSxbNjQ2LDYsMTAsNjFdLFstMTYsOSwzMiw1MTAsImxvd2VyIl0sWzE2NzAsOSwzMiw1MTFdLFsyLDFdXTticmVhaztjYXNlIDk6ZT1bWy0zMSw4LDQsMjUyXSxbLTE1LDksMiw1MDhdLFstMTEsOCwyLDI1M10sWy03LDksMSw1MDldLFstNSw3LDEsMTI0XSxbLTMsNCwxLDEwXSxbLTEsMywxLDJdLFsxLDMsMSwzXSxbMyw1LDEsMjZdLFs1LDYsMSw1OF0sWzcsMyw1LDRdLFszOSw2LDIsNTldLFs0Myw0LDUsMTFdLFs3NSw0LDYsMTJdLFsxMzksNSw3LDI3XSxbMjY3LDUsOCwyOF0sWzUyMyw2LDgsNjBdLFs3NzksNyw5LDEyNV0sWzEyOTEsNiwxMSw2MV0sWy0zMiw5LDMyLDUxMCwibG93ZXIiXSxbMzMzOSw5LDMyLDUxMV0sWzIsMF1dO2JyZWFrO2Nhc2UgMTA6ZT1bWy0yMSw3LDQsMTIyXSxbLTUsOCwwLDI1Ml0sWy00LDcsMCwxMjNdLFstMyw1LDAsMjRdLFstMiwyLDIsMF0sWzIsNSwwLDI1XSxbMyw2LDAsNTRdLFs0LDcsMCwxMjRdLFs1LDgsMCwyNTNdLFs2LDIsNiwxXSxbNzAsNSw1LDI2XSxbMTAyLDYsNSw1NV0sWzEzNCw2LDYsNTZdLFsxOTgsNiw3LDU3XSxbMzI2LDYsOCw1OF0sWzU4Miw2LDksNTldLFsxMDk0LDYsMTAsNjBdLFsyMTE4LDcsMTEsMTI1XSxbLTIyLDgsMzIsMjU0LCJsb3dlciJdLFs0MTY2LDgsMzIsMjU1XSxbMiwyXV07YnJlYWs7Y2FzZSAxMTplPVtbMSwxLDAsMF0sWzIsMiwxLDJdLFs0LDQsMCwxMl0sWzUsNCwxLDEzXSxbNyw1LDEsMjhdLFs5LDUsMiwyOV0sWzEzLDYsMiw2MF0sWzE3LDcsMiwxMjJdLFsyMSw3LDMsMTIzXSxbMjksNyw0LDEyNF0sWzQ1LDcsNSwxMjVdLFs3Nyw3LDYsMTI2XSxbMTQxLDcsMzIsMTI3XV07YnJlYWs7Y2FzZSAxMjplPVtbMSwxLDAsMF0sWzIsMiwwLDJdLFszLDMsMSw2XSxbNSw1LDAsMjhdLFs2LDUsMSwyOV0sWzgsNiwxLDYwXSxbMTAsNywwLDEyMl0sWzExLDcsMSwxMjNdLFsxMyw3LDIsMTI0XSxbMTcsNywzLDEyNV0sWzI1LDcsNCwxMjZdLFs0MSw4LDUsMjU0XSxbNzMsOCwzMiwyNTVdXTticmVhaztjYXNlIDEzOmU9W1sxLDEsMCwwXSxbMiwzLDAsNF0sWzMsNCwwLDEyXSxbNCw1LDAsMjhdLFs1LDQsMSwxM10sWzcsMywzLDVdLFsxNSw2LDEsNThdLFsxNyw2LDIsNTldLFsyMSw2LDMsNjBdLFsyOSw2LDQsNjFdLFs0NSw2LDUsNjJdLFs3Nyw3LDYsMTI2XSxbMTQxLDcsMzIsMTI3XV07YnJlYWs7Y2FzZSAxNDplPVtbLTIsMywwLDRdLFstMSwzLDAsNV0sWzAsMSwwLDBdLFsxLDMsMCw2XSxbMiwzLDAsN11dO2JyZWFrO2Nhc2UgMTU6ZT1bWy0yNCw3LDQsMTI0XSxbLTgsNiwyLDYwXSxbLTQsNSwxLDI4XSxbLTIsNCwwLDEyXSxbLTEsMywwLDRdLFswLDEsMCwwXSxbMSwzLDAsNV0sWzIsNCwwLDEzXSxbMyw1LDEsMjldLFs1LDYsMiw2MV0sWzksNyw0LDEyNV0sWy0yNSw3LDMyLDEyNiwibG93ZXIiXSxbMjUsNywzMiwxMjddXTticmVhaztkZWZhdWx0OnRocm93IG5ldyAkZShgc3RhbmRhcmQgdGFibGUgQi4ke0F9IGRvZXMgbm90IGV4aXN0YCl9Zm9yKGxldCBBPTAsdD1lLmxlbmd0aDtBPHQ7QSsrKWVbQV09bmV3IHB0KGVbQV0pO3JldHVybiB0PW5ldyB5dChlLCEwKSx3dFtBXT10LHR9Y2xhc3MgYnR7Y29uc3RydWN0b3IoQSxlLHQpe3RoaXMuZGF0YT1BLHRoaXMuc3RhcnQ9ZSx0aGlzLmVuZD10LHRoaXMucG9zaXRpb249ZSx0aGlzLnNoaWZ0PS0xLHRoaXMuY3VycmVudEJ5dGU9MH1yZWFkQml0KCl7aWYodGhpcy5zaGlmdDwwKXtpZih0aGlzLnBvc2l0aW9uPj10aGlzLmVuZCl0aHJvdyBuZXcgJGUoImVuZCBvZiBkYXRhIHdoaWxlIHJlYWRpbmcgYml0Iik7dGhpcy5jdXJyZW50Qnl0ZT10aGlzLmRhdGFbdGhpcy5wb3NpdGlvbisrXSx0aGlzLnNoaWZ0PTd9Y29uc3QgQT10aGlzLmN1cnJlbnRCeXRlPj50aGlzLnNoaWZ0JjE7cmV0dXJuIHRoaXMuc2hpZnQtLSxBfXJlYWRCaXRzKEEpe2xldCBlLHQ9MDtmb3IoZT1BLTE7ZT49MDtlLS0pdHw9dGhpcy5yZWFkQml0KCk8PGU7cmV0dXJuIHR9Ynl0ZUFsaWduKCl7dGhpcy5zaGlmdD0tMX1uZXh0KCl7cmV0dXJuIHRoaXMucG9zaXRpb24+PXRoaXMuZW5kPy0xOnRoaXMuZGF0YVt0aGlzLnBvc2l0aW9uKytdfX1mdW5jdGlvbiBrdChBLGUsdCl7bGV0IGk9MDtmb3IobGV0IGE9MCxzPWUubGVuZ3RoO2E8czthKyspe2NvbnN0IHM9dFtlW2FdXTtpZihzKXtpZihBPT09aSlyZXR1cm4gcztpKyt9fXRocm93IG5ldyAkZSgiY2FuJ3QgZmluZCBjdXN0b20gSHVmZm1hbiB0YWJsZSIpfWZ1bmN0aW9uIEZ0KEEsZSx0KXtjb25zdCBpPVtdO2ZvcihsZXQgYT0wO2E8dDthKyspe2NvbnN0IHQ9bmV3IFVpbnQ4QXJyYXkoZSk7aS5wdXNoKHQpO2ZvcihsZXQgaT0wO2k8ZTtpKyspdFtpXT1BLnJlYWRCaXQoKTtBLmJ5dGVBbGlnbigpfXJldHVybiBpfWZ1bmN0aW9uIFN0KEEsZSx0LGkpe2NvbnN0IGE9bmV3IFRlKEEse0s6LTEsQ29sdW1uczplLFJvd3M6dCxCbGFja0lzMTohMCxFbmRPZkJsb2NrOml9KSxzPVtdO2xldCBuLHI9ITE7Zm9yKGxldCBBPTA7QTx0O0ErKyl7Y29uc3QgQT1uZXcgVWludDhBcnJheShlKTtzLnB1c2goQSk7bGV0IHQ9LTE7Zm9yKGxldCBpPTA7aTxlO2krKyl0PDAmJihuPWEucmVhZE5leHRDaGFyKCksLTE9PT1uJiYobj0wLHI9ITApLHQ9NyksQVtpXT1uPj50JjEsdC0tfWlmKGkmJiFyKXtjb25zdCBBPTU7Zm9yKGxldCBlPTA7ZTxBJiYtMSE9PWEucmVhZE5leHRDaGFyKCk7ZSsrKTt9cmV0dXJuIHN9Y2xhc3MgUnR7cGFyc2VDaHVua3MoQSl7cmV0dXJuIGZ1bmN0aW9uKEEpe2NvbnN0IGU9bmV3IGZ0O2ZvcihsZXQgdD0wLGk9QS5sZW5ndGg7dDxpO3QrKyl7Y29uc3QgaT1BW3RdO2R0KGx0KHt9LGkuZGF0YSxpLnN0YXJ0LGkuZW5kKSxlKX1yZXR1cm4gZS5idWZmZXJ9KEEpfXBhcnNlKEEpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkOiBKYmlnMkltYWdlLnBhcnNlIil9fWNsYXNzIEd0IGV4dGVuZHMgTmV7Y29uc3RydWN0b3IoQSxlLHQpe3N1cGVyKGUpLHRoaXMuc3RyZWFtPUEsdGhpcy5kaWN0PUEuZGljdCx0aGlzLm1heWJlTGVuZ3RoPWUsdGhpcy5wYXJhbXM9dH1nZXQgYnl0ZXMoKXtyZXR1cm4gSCh0aGlzLCJieXRlcyIsdGhpcy5zdHJlYW0uZ2V0Qnl0ZXModGhpcy5tYXliZUxlbmd0aCkpfWVuc3VyZUJ1ZmZlcihBKXt9cmVhZEJsb2NrKCl7dGhpcy5kZWNvZGVJbWFnZSgpfWRlY29kZUltYWdlKEEpe2lmKHRoaXMuZW9mKXJldHVybiB0aGlzLmJ1ZmZlcjtBfHw9dGhpcy5ieXRlcztjb25zdCBlPW5ldyBSdCx0PVtdO2lmKHRoaXMucGFyYW1zIGluc3RhbmNlb2YgUUEpe2NvbnN0IEE9dGhpcy5wYXJhbXMuZ2V0KCJKQklHMkdsb2JhbHMiKTtpZihBIGluc3RhbmNlb2Ygd0Epe2NvbnN0IGU9QS5nZXRCeXRlcygpO3QucHVzaCh7ZGF0YTplLHN0YXJ0OjAsZW5kOmUubGVuZ3RofSl9fXQucHVzaCh7ZGF0YTpBLHN0YXJ0OjAsZW5kOkEubGVuZ3RofSk7Y29uc3QgaT1lLnBhcnNlQ2h1bmtzKHQpLGE9aS5sZW5ndGg7Zm9yKGxldCBBPTA7QTxhO0ErKylpW0FdXj0yNTU7cmV0dXJuIHRoaXMuYnVmZmVyPWksdGhpcy5idWZmZXJMZW5ndGg9YSx0aGlzLmVvZj0hMCx0aGlzLmJ1ZmZlcn1nZXQgY2FuQXN5bmNEZWNvZGVJbWFnZUZyb21CdWZmZXIoKXtyZXR1cm4gdGhpcy5zdHJlYW0uaXNBc3luY319ZnVuY3Rpb24gTnQoe3NyYzpBLHNyY1BvczplPTAsZGVzdDp0LHdpZHRoOmksaGVpZ2h0OmEsbm9uQmxhY2tDb2xvcjpzPTQyOTQ5NjcyOTUsaW52ZXJzZURlY29kZTpuPSExfSl7Y29uc3Qgcj1fLmlzTGl0dGxlRW5kaWFuPzQyNzgxOTAwODA6MjU1LFtnLG9dPW4/W3Mscl06W3Isc10sST1pPj4zLGM9NyZpLGg9QS5sZW5ndGg7dD1uZXcgVWludDMyQXJyYXkodC5idWZmZXIpO2xldCBDPTA7Zm9yKGxldCBpPTA7aTxhO2krKyl7Zm9yKGNvbnN0IGk9ZStJO2U8aTtlKyspe2NvbnN0IGk9ZTxoP0FbZV06MjU1O3RbQysrXT0xMjgmaT9vOmcsdFtDKytdPTY0Jmk/bzpnLHRbQysrXT0zMiZpP286Zyx0W0MrK109MTYmaT9vOmcsdFtDKytdPTgmaT9vOmcsdFtDKytdPTQmaT9vOmcsdFtDKytdPTImaT9vOmcsdFtDKytdPTEmaT9vOmd9aWYoMD09PWMpY29udGludWU7Y29uc3QgaT1lPGg/QVtlKytdOjI1NTtmb3IobGV0IEE9MDtBPGM7QSsrKXRbQysrXT1pJjE8PDctQT9vOmd9cmV0dXJue3NyY1BvczplLGRlc3RQb3M6Q319Y2xhc3MgeHQgZXh0ZW5kcyBZe2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEsIkpwZWdFcnJvciIpfX1jbGFzcyBVdCBleHRlbmRzIFl7Y29uc3RydWN0b3IoQSxlKXtzdXBlcihBLCJETkxNYXJrZXJFcnJvciIpLHRoaXMuc2NhbkxpbmVzPWV9fWNsYXNzIE10IGV4dGVuZHMgWXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBLCJFT0lNYXJrZXJFcnJvciIpfX1jb25zdCBMdD1uZXcgVWludDhBcnJheShbMCwxLDgsMTYsOSwyLDMsMTAsMTcsMjQsMzIsMjUsMTgsMTEsNCw1LDEyLDE5LDI2LDMzLDQwLDQ4LDQxLDM0LDI3LDIwLDEzLDYsNywxNCwyMSwyOCwzNSw0Miw0OSw1Niw1Nyw1MCw0MywzNiwyOSwyMiwxNSwyMywzMCwzNyw0NCw1MSw1OCw1OSw1Miw0NSwzOCwzMSwzOSw0Niw1Myw2MCw2MSw1NCw0Nyw1NSw2Miw2M10pLEp0PTQwMTcsSHQ9Nzk5LFl0PTM0MDYsdnQ9MjI3NixLdD0xNTY3LHF0PTM3ODQsVHQ9NTc5MyxQdD0yODk2O2Z1bmN0aW9uIFd0KEEsZSl7bGV0IHQsaSxhPTAscz0xNjtmb3IoO3M+MCYmIUFbcy0xXTspcy0tO2NvbnN0IG49W3tjaGlsZHJlbjpbXSxpbmRleDowfV07bGV0IHIsZz1uWzBdO2Zvcih0PTA7dDxzO3QrKyl7Zm9yKGk9MDtpPEFbdF07aSsrKXtmb3IoZz1uLnBvcCgpLGcuY2hpbGRyZW5bZy5pbmRleF09ZVthXTtnLmluZGV4PjA7KWc9bi5wb3AoKTtmb3IoZy5pbmRleCsrLG4ucHVzaChnKTtuLmxlbmd0aDw9dDspbi5wdXNoKHI9e2NoaWxkcmVuOltdLGluZGV4OjB9KSxnLmNoaWxkcmVuW2cuaW5kZXhdPXIuY2hpbGRyZW4sZz1yO2ErK310KzE8cyYmKG4ucHVzaChyPXtjaGlsZHJlbjpbXSxpbmRleDowfSksZy5jaGlsZHJlbltnLmluZGV4XT1yLmNoaWxkcmVuLGc9cil9cmV0dXJuIG5bMF0uY2hpbGRyZW59ZnVuY3Rpb24gT3QoQSxlLHQpe3JldHVybiA2NCooKEEuYmxvY2tzUGVyTGluZSsxKSplK3QpfWZ1bmN0aW9uIFp0KEEsZSx0LGksYSxzLG4scixnLG89ITEpe2NvbnN0IEk9dC5tY3VzUGVyTGluZSxjPXQucHJvZ3Jlc3NpdmUsaD1lO2xldCBDPTAsQj0wO2Z1bmN0aW9uIGwoKXtpZihCPjApcmV0dXJuIEItLSxDPj5CJjE7aWYoQz1BW2UrK10sMjU1PT09Qyl7Y29uc3QgaT1BW2UrK107aWYoaSl7aWYoMjIwPT09aSYmbyl7Y29uc3QgaT1KQShBLGUrPTIpO2lmKGUrPTIsaT4wJiZpIT09dC5zY2FuTGluZXMpdGhyb3cgbmV3IFV0KCJGb3VuZCBETkwgbWFya2VyICgweEZGREMpIHdoaWxlIHBhcnNpbmcgc2NhbiBkYXRhIixpKX1lbHNlIGlmKDIxNz09PWkpe2lmKG8pe2NvbnN0IEE9bSooOD09PXQucHJlY2lzaW9uPzg6MCk7aWYoQT4wJiZNYXRoLnJvdW5kKHQuc2NhbkxpbmVzL0EpPj01KXRocm93IG5ldyBVdCgiRm91bmQgRU9JIG1hcmtlciAoMHhGRkQ5KSB3aGlsZSBwYXJzaW5nIHNjYW4gZGF0YSwgcG9zc2libHkgY2F1c2VkIGJ5IGluY29ycmVjdCBgc2NhbkxpbmVzYCBwYXJhbWV0ZXIiLEEpfXRocm93IG5ldyBNdCgiRm91bmQgRU9JIG1hcmtlciAoMHhGRkQ5KSB3aGlsZSBwYXJzaW5nIHNjYW4gZGF0YSIpfXRocm93IG5ldyB4dChgdW5leHBlY3RlZCBtYXJrZXIgJHsoQzw8OHxpKS50b1N0cmluZygxNil9YCl9fXJldHVybiBCPTcsQz4+Pjd9ZnVuY3Rpb24gUShBKXtsZXQgZT1BO2Zvcig7Oyl7c3dpdGNoKGU9ZVtsKCldLHR5cGVvZiBlKXtjYXNlIm51bWJlciI6cmV0dXJuIGU7Y2FzZSJvYmplY3QiOmNvbnRpbnVlfXRocm93IG5ldyB4dCgiaW52YWxpZCBodWZmbWFuIHNlcXVlbmNlIil9fWZ1bmN0aW9uIEUoQSl7bGV0IGU9MDtmb3IoO0E+MDspZT1lPDwxfGwoKSxBLS07cmV0dXJuIGV9ZnVuY3Rpb24gdShBKXtpZigxPT09QSlyZXR1cm4gMT09PWwoKT8xOi0xO2NvbnN0IGU9RShBKTtyZXR1cm4gZT49MTw8QS0xP2U6ZSsoLTE8PEEpKzF9bGV0IGQsZj0wLHA9MCxtPTA7ZnVuY3Rpb24geShBLGUsdCxpLGEpe2NvbnN0IHM9dCVJO209KHQvSXwwKSpBLnYraTtjb25zdCBuPXMqQS5oK2E7ZShBLE90KEEsbSxuKSl9ZnVuY3Rpb24gdyhBLGUsdCl7bT10L0EuYmxvY2tzUGVyTGluZXwwO2NvbnN0IGk9dCVBLmJsb2Nrc1BlckxpbmU7ZShBLE90KEEsbSxpKSl9Y29uc3QgRD1pLmxlbmd0aDtsZXQgYixrLEYsUyxSLEc7Rz1jPzA9PT1zPzA9PT1yP2Z1bmN0aW9uKEEsZSl7Y29uc3QgdD1RKEEuaHVmZm1hblRhYmxlREMpLGk9MD09PXQ/MDp1KHQpPDxnO0EuYmxvY2tEYXRhW2VdPUEucHJlZCs9aX06ZnVuY3Rpb24oQSxlKXtBLmJsb2NrRGF0YVtlXXw9bCgpPDxnfTowPT09cj9mdW5jdGlvbihBLGUpe2lmKGY+MClyZXR1cm4gdm9pZCBmLS07bGV0IHQ9cztjb25zdCBpPW47Zm9yKDt0PD1pOyl7Y29uc3QgaT1RKEEuaHVmZm1hblRhYmxlQUMpLGE9MTUmaSxzPWk+PjQ7aWYoMD09PWEpe2lmKHM8MTUpe2Y9RShzKSsoMTw8cyktMTticmVha310Kz0xNjtjb250aW51ZX10Kz1zO2NvbnN0IG49THRbdF07QS5ibG9ja0RhdGFbZStuXT11KGEpKigxPDxnKSx0Kyt9fTpmdW5jdGlvbihBLGUpe2xldCB0PXM7Y29uc3QgaT1uO2xldCBhLHIsbz0wO2Zvcig7dDw9aTspe2NvbnN0IGk9ZStMdFt0XSxzPUEuYmxvY2tEYXRhW2ldPDA/LTE6MTtzd2l0Y2gocCl7Y2FzZSAwOmlmKHI9UShBLmh1ZmZtYW5UYWJsZUFDKSxhPTE1JnIsbz1yPj40LDA9PT1hKW88MTU/KGY9RShvKSsoMTw8bykscD00KToobz0xNixwPTEpO2Vsc2V7aWYoMSE9PWEpdGhyb3cgbmV3IHh0KCJpbnZhbGlkIEFDbiBlbmNvZGluZyIpO2Q9dShhKSxwPW8/MjozfWNvbnRpbnVlO2Nhc2UgMTpjYXNlIDI6QS5ibG9ja0RhdGFbaV0/QS5ibG9ja0RhdGFbaV0rPXMqKGwoKTw8Zyk6KG8tLSwwPT09byYmKHA9Mj09PXA/MzowKSk7YnJlYWs7Y2FzZSAzOkEuYmxvY2tEYXRhW2ldP0EuYmxvY2tEYXRhW2ldKz1zKihsKCk8PGcpOihBLmJsb2NrRGF0YVtpXT1kPDxnLHA9MCk7YnJlYWs7Y2FzZSA0OkEuYmxvY2tEYXRhW2ldJiYoQS5ibG9ja0RhdGFbaV0rPXMqKGwoKTw8ZykpfXQrK300PT09cCYmKGYtLSwwPT09ZiYmKHA9MCkpfTpmdW5jdGlvbihBLGUpe2NvbnN0IHQ9UShBLmh1ZmZtYW5UYWJsZURDKSxpPTA9PT10PzA6dSh0KTtBLmJsb2NrRGF0YVtlXT1BLnByZWQrPWk7bGV0IGE9MTtmb3IoO2E8NjQ7KXtjb25zdCB0PVEoQS5odWZmbWFuVGFibGVBQyksaT0xNSZ0LHM9dD4+NDtpZigwPT09aSl7aWYoczwxNSlicmVhazthKz0xNjtjb250aW51ZX1hKz1zO2NvbnN0IG49THRbYV07QS5ibG9ja0RhdGFbZStuXT11KGkpLGErK319O2xldCBOLHg9MDtjb25zdCBNPTE9PT1EP2lbMF0uYmxvY2tzUGVyTGluZSppWzBdLmJsb2Nrc1BlckNvbHVtbjpJKnQubWN1c1BlckNvbHVtbjtsZXQgTCxKO2Zvcig7eDw9TTspe2NvbnN0IHQ9YT9NYXRoLm1pbihNLXgsYSk6TTtpZih0PjApe2ZvcihrPTA7azxEO2srKylpW2tdLnByZWQ9MDtpZihmPTAsMT09PUQpZm9yKGI9aVswXSxSPTA7Ujx0O1IrKyl3KGIsRyx4KSx4Kys7ZWxzZSBmb3IoUj0wO1I8dDtSKyspe2ZvcihrPTA7azxEO2srKylmb3IoYj1pW2tdLEw9Yi5oLEo9Yi52LEY9MDtGPEo7RisrKWZvcihTPTA7UzxMO1MrKyl5KGIsRyx4LEYsUyk7eCsrfX1pZihCPTAsTj1WdChBLGUpLCFOKWJyZWFrO2lmKE4uaW52YWxpZCYmKFUoYGRlY29kZVNjYW4gLSAke3Q+MD8idW5leHBlY3RlZCI6ImV4Y2Vzc2l2ZSJ9IE1DVSBkYXRhLCBjdXJyZW50IG1hcmtlciBpczogJHtOLmludmFsaWR9YCksZT1OLm9mZnNldCksIShOLm1hcmtlcj49NjU0ODgmJk4ubWFya2VyPD02NTQ5NSkpYnJlYWs7ZSs9Mn1yZXR1cm4gZS1ofWZ1bmN0aW9uIGp0KEEsZSx0KXtjb25zdCBpPUEucXVhbnRpemF0aW9uVGFibGUsYT1BLmJsb2NrRGF0YTtsZXQgcyxuLHIsZyxvLEksYyxoLEMsQixsLFEsRSx1LGQsZixwO2lmKCFpKXRocm93IG5ldyB4dCgibWlzc2luZyByZXF1aXJlZCBRdWFudGl6YXRpb24gVGFibGUuIik7Zm9yKGxldCBBPTA7QTw2NDtBKz04KUM9YVtlK0FdLEI9YVtlK0ErMV0sbD1hW2UrQSsyXSxRPWFbZStBKzNdLEU9YVtlK0ErNF0sdT1hW2UrQSs1XSxkPWFbZStBKzZdLGY9YVtlK0ErN10sQyo9aVtBXSwwIT0oQnxsfFF8RXx1fGR8Zik/KEIqPWlbQSsxXSxsKj1pW0ErMl0sUSo9aVtBKzNdLEUqPWlbQSs0XSx1Kj1pW0ErNV0sZCo9aVtBKzZdLGYqPWlbQSs3XSxzPVR0KkMrMTI4Pj44LG49VHQqRSsxMjg+Pjgscj1sLGc9ZCxvPVB0KihCLWYpKzEyOD4+OCxoPVB0KihCK2YpKzEyOD4+OCxJPVE8PDQsYz11PDw0LHM9cytuKzE+PjEsbj1zLW4scD1yKnF0K2cqS3QrMTI4Pj44LHI9cipLdC1nKnF0KzEyOD4+OCxnPXAsbz1vK2MrMT4+MSxjPW8tYyxoPWgrSSsxPj4xLEk9aC1JLHM9cytnKzE+PjEsZz1zLWcsbj1uK3IrMT4+MSxyPW4tcixwPW8qdnQraCpZdCsyMDQ4Pj4xMixvPW8qWXQtaCp2dCsyMDQ4Pj4xMixoPXAscD1JKkh0K2MqSnQrMjA0OD4+MTIsST1JKkp0LWMqSHQrMjA0OD4+MTIsYz1wLHRbQV09cytoLHRbQSs3XT1zLWgsdFtBKzFdPW4rYyx0W0ErNl09bi1jLHRbQSsyXT1yK0ksdFtBKzVdPXItSSx0W0ErM109ZytvLHRbQSs0XT1nLW8pOihwPVR0KkMrNTEyPj4xMCx0W0FdPXAsdFtBKzFdPXAsdFtBKzJdPXAsdFtBKzNdPXAsdFtBKzRdPXAsdFtBKzVdPXAsdFtBKzZdPXAsdFtBKzddPXApO2ZvcihsZXQgQT0wO0E8ODsrK0EpQz10W0FdLEI9dFtBKzhdLGw9dFtBKzE2XSxRPXRbQSsyNF0sRT10W0ErMzJdLHU9dFtBKzQwXSxkPXRbQSs0OF0sZj10W0ErNTZdLDAhPShCfGx8UXxFfHV8ZHxmKT8ocz1UdCpDKzIwNDg+PjEyLG49VHQqRSsyMDQ4Pj4xMixyPWwsZz1kLG89UHQqKEItZikrMjA0OD4+MTIsaD1QdCooQitmKSsyMDQ4Pj4xMixJPVEsYz11LHM9NDExMisocytuKzE+PjEpLG49cy1uLHA9cipxdCtnKkt0KzIwNDg+PjEyLHI9cipLdC1nKnF0KzIwNDg+PjEyLGc9cCxvPW8rYysxPj4xLGM9by1jLGg9aCtJKzE+PjEsST1oLUkscz1zK2crMT4+MSxnPXMtZyxuPW4rcisxPj4xLHI9bi1yLHA9byp2dCtoKll0KzIwNDg+PjEyLG89bypZdC1oKnZ0KzIwNDg+PjEyLGg9cCxwPUkqSHQrYypKdCsyMDQ4Pj4xMixJPUkqSnQtYypIdCsyMDQ4Pj4xMixjPXAsQz1zK2gsZj1zLWgsQj1uK2MsZD1uLWMsbD1yK0ksdT1yLUksUT1nK28sRT1nLW8sQzwxNj9DPTA6Qz49NDA4MD9DPTI1NTpDPj49NCxCPDE2P0I9MDpCPj00MDgwP0I9MjU1OkI+Pj00LGw8MTY/bD0wOmw+PTQwODA/bD0yNTU6bD4+PTQsUTwxNj9RPTA6UT49NDA4MD9RPTI1NTpRPj49NCxFPDE2P0U9MDpFPj00MDgwP0U9MjU1OkU+Pj00LHU8MTY/dT0wOnU+PTQwODA/dT0yNTU6dT4+PTQsZDwxNj9kPTA6ZD49NDA4MD9kPTI1NTpkPj49NCxmPDE2P2Y9MDpmPj00MDgwP2Y9MjU1OmY+Pj00LGFbZStBXT1DLGFbZStBKzhdPUIsYVtlK0ErMTZdPWwsYVtlK0ErMjRdPVEsYVtlK0ErMzJdPUUsYVtlK0ErNDBdPXUsYVtlK0ErNDhdPWQsYVtlK0ErNTZdPWYpOihwPVR0KkMrODE5Mj4+MTQscD1wPC0yMDQwPzA6cD49MjAyND8yNTU6cCsyMDU2Pj40LGFbZStBXT1wLGFbZStBKzhdPXAsYVtlK0ErMTZdPXAsYVtlK0ErMjRdPXAsYVtlK0ErMzJdPXAsYVtlK0ErNDBdPXAsYVtlK0ErNDhdPXAsYVtlK0ErNTZdPXApfWZ1bmN0aW9uIFh0KEEsZSl7Y29uc3QgdD1lLmJsb2Nrc1BlckxpbmUsaT1lLmJsb2Nrc1BlckNvbHVtbixhPW5ldyBJbnQxNkFycmF5KDY0KTtmb3IobGV0IEE9MDtBPGk7QSsrKWZvcihsZXQgaT0wO2k8dDtpKyspanQoZSxPdChlLEEsaSksYSk7cmV0dXJuIGUuYmxvY2tEYXRhfWZ1bmN0aW9uIFZ0KEEsZSx0PWUpe2NvbnN0IGk9QS5sZW5ndGgtMTtsZXQgYT10PGU/dDplO2lmKGU+PWkpcmV0dXJuIG51bGw7Y29uc3Qgcz1KQShBLGUpO2lmKHM+PTY1NDcyJiZzPD02NTUzNClyZXR1cm57aW52YWxpZDpudWxsLG1hcmtlcjpzLG9mZnNldDplfTtsZXQgbj1KQShBLGEpO2Zvcig7IShuPj02NTQ3MiYmbjw9NjU1MzQpOyl7aWYoKythPj1pKXJldHVybiBudWxsO249SkEoQSxhKX1yZXR1cm57aW52YWxpZDpzLnRvU3RyaW5nKDE2KSxtYXJrZXI6bixvZmZzZXQ6YX19Y2xhc3MgX3R7Y29uc3RydWN0b3Ioe2RlY29kZVRyYW5zZm9ybTpBPW51bGwsY29sb3JUcmFuc2Zvcm06ZT0tMX09e30pe3RoaXMuX2RlY29kZVRyYW5zZm9ybT1BLHRoaXMuX2NvbG9yVHJhbnNmb3JtPWV9cGFyc2UoQSx7ZG5sU2NhbkxpbmVzOmU9bnVsbH09e30pe2Z1bmN0aW9uIHQoKXtjb25zdCBlPUpBKEEsbik7bis9MjtsZXQgdD1uK2UtMjtjb25zdCBpPVZ0KEEsdCxuKTtpPy5pbnZhbGlkJiYoVSgicmVhZERhdGFCbG9jayAtIGluY29ycmVjdCBsZW5ndGgsIGN1cnJlbnQgbWFya2VyIGlzOiAiK2kuaW52YWxpZCksdD1pLm9mZnNldCk7Y29uc3QgYT1BLnN1YmFycmF5KG4sdCk7cmV0dXJuIG4rPWEubGVuZ3RoLGF9ZnVuY3Rpb24gaShBKXtjb25zdCBlPU1hdGguY2VpbChBLnNhbXBsZXNQZXJMaW5lLzgvQS5tYXhIKSx0PU1hdGguY2VpbChBLnNjYW5MaW5lcy84L0EubWF4Vik7Zm9yKGNvbnN0IGkgb2YgQS5jb21wb25lbnRzKXtjb25zdCBhPU1hdGguY2VpbChNYXRoLmNlaWwoQS5zYW1wbGVzUGVyTGluZS84KSppLmgvQS5tYXhIKSxzPU1hdGguY2VpbChNYXRoLmNlaWwoQS5zY2FuTGluZXMvOCkqaS52L0EubWF4Viksbj1lKmkuaCxyPXQqaS52KjY0KihuKzEpO2kuYmxvY2tEYXRhPW5ldyBJbnQxNkFycmF5KHIpLGkuYmxvY2tzUGVyTGluZT1hLGkuYmxvY2tzUGVyQ29sdW1uPXN9QS5tY3VzUGVyTGluZT1lLEEubWN1c1BlckNvbHVtbj10fWxldCBhLHMsbj0wLHI9bnVsbCxnPW51bGwsbz0wO2NvbnN0IEk9W10sYz1bXSxoPVtdO2xldCBDPUpBKEEsbik7aWYobis9Miw2NTQ5NiE9PUMpdGhyb3cgbmV3IHh0KCJTT0kgbm90IGZvdW5kIik7Qz1KQShBLG4pLG4rPTI7QTpmb3IoOzY1NDk3IT09Qzspe2xldCBCLGwsUTtzd2l0Y2goQyl7Y2FzZSA2NTUwNDpjYXNlIDY1NTA1OmNhc2UgNjU1MDY6Y2FzZSA2NTUwNzpjYXNlIDY1NTA4OmNhc2UgNjU1MDk6Y2FzZSA2NTUxMDpjYXNlIDY1NTExOmNhc2UgNjU1MTI6Y2FzZSA2NTUxMzpjYXNlIDY1NTE0OmNhc2UgNjU1MTU6Y2FzZSA2NTUxNjpjYXNlIDY1NTE3OmNhc2UgNjU1MTg6Y2FzZSA2NTUxOTpjYXNlIDY1NTM0OmNvbnN0IEU9dCgpOzY1NTA0PT09QyYmNzQ9PT1FWzBdJiY3MD09PUVbMV0mJjczPT09RVsyXSYmNzA9PT1FWzNdJiYwPT09RVs0XSYmKHI9e3ZlcnNpb246e21ham9yOkVbNV0sbWlub3I6RVs2XX0sZGVuc2l0eVVuaXRzOkVbN10seERlbnNpdHk6RVs4XTw8OHxFWzldLHlEZW5zaXR5OkVbMTBdPDw4fEVbMTFdLHRodW1iV2lkdGg6RVsxMl0sdGh1bWJIZWlnaHQ6RVsxM10sdGh1bWJEYXRhOkUuc3ViYXJyYXkoMTQsMTQrMypFWzEyXSpFWzEzXSl9KSw2NTUxOD09PUMmJjY1PT09RVswXSYmMTAwPT09RVsxXSYmMTExPT09RVsyXSYmOTg9PT1FWzNdJiYxMDE9PT1FWzRdJiYoZz17dmVyc2lvbjpFWzVdPDw4fEVbNl0sZmxhZ3MwOkVbN108PDh8RVs4XSxmbGFnczE6RVs5XTw8OHxFWzEwXSx0cmFuc2Zvcm1Db2RlOkVbMTFdfSk7YnJlYWs7Y2FzZSA2NTQ5OTpjb25zdCB1PUpBKEEsbik7bis9Mjtjb25zdCBkPXUrbi0yO2xldCBmO2Zvcig7bjxkOyl7Y29uc3QgZT1BW24rK10sdD1uZXcgVWludDE2QXJyYXkoNjQpO2lmKGU+PjQ9PTApZm9yKGw9MDtsPDY0O2wrKylmPUx0W2xdLHRbZl09QVtuKytdO2Vsc2V7aWYoZT4+NCE9MSl0aHJvdyBuZXcgeHQoIkRRVCAtIGludmFsaWQgdGFibGUgc3BlYyIpO2ZvcihsPTA7bDw2NDtsKyspZj1MdFtsXSx0W2ZdPUpBKEEsbiksbis9Mn1JWzE1JmVdPXR9YnJlYWs7Y2FzZSA2NTQ3MjpjYXNlIDY1NDczOmNhc2UgNjU0NzQ6aWYoYSl0aHJvdyBuZXcgeHQoIk9ubHkgc2luZ2xlIGZyYW1lIEpQRUdzIHN1cHBvcnRlZCIpO24rPTIsYT17fSxhLmV4dGVuZGVkPTY1NDczPT09QyxhLnByb2dyZXNzaXZlPTY1NDc0PT09QyxhLnByZWNpc2lvbj1BW24rK107Y29uc3QgcD1KQShBLG4pO24rPTIsYS5zY2FuTGluZXM9ZXx8cCxhLnNhbXBsZXNQZXJMaW5lPUpBKEEsbiksbis9MixhLmNvbXBvbmVudHM9W10sYS5jb21wb25lbnRJZHM9e307Y29uc3QgbT1BW24rK107bGV0IHk9MCx3PTA7Zm9yKEI9MDtCPG07QisrKXtjb25zdCBlPUFbbl0sdD1BW24rMV0+PjQsaT0xNSZBW24rMV07eTx0JiYoeT10KSx3PGkmJih3PWkpO2NvbnN0IHM9QVtuKzJdO1E9YS5jb21wb25lbnRzLnB1c2goe2g6dCx2OmkscXVhbnRpemF0aW9uSWQ6cyxxdWFudGl6YXRpb25UYWJsZTpudWxsfSksYS5jb21wb25lbnRJZHNbZV09US0xLG4rPTN9YS5tYXhIPXksYS5tYXhWPXcsaShhKTticmVhaztjYXNlIDY1NDc2OmNvbnN0IEQ9SkEoQSxuKTtmb3Iobis9MixCPTI7QjxEOyl7Y29uc3QgZT1BW24rK10sdD1uZXcgVWludDhBcnJheSgxNik7bGV0IGk9MDtmb3IobD0wO2w8MTY7bCsrLG4rKylpKz10W2xdPUFbbl07Y29uc3QgYT1uZXcgVWludDhBcnJheShpKTtmb3IobD0wO2w8aTtsKyssbisrKWFbbF09QVtuXTtCKz0xNytpLChlPj40PT0wP2g6YylbMTUmZV09V3QodCxhKX1icmVhaztjYXNlIDY1NTAxOm4rPTIscz1KQShBLG4pLG4rPTI7YnJlYWs7Y2FzZSA2NTQ5ODpjb25zdCBiPTE9PSsrbyYmIWU7bis9Mjtjb25zdCBrPUFbbisrXSxGPVtdO2ZvcihCPTA7QjxrO0IrKyl7Y29uc3QgZT1BW24rK10sdD1hLmNvbXBvbmVudElkc1tlXSxpPWEuY29tcG9uZW50c1t0XTtpLmluZGV4PWU7Y29uc3Qgcz1BW24rK107aS5odWZmbWFuVGFibGVEQz1oW3M+PjRdLGkuaHVmZm1hblRhYmxlQUM9Y1sxNSZzXSxGLnB1c2goaSl9Y29uc3QgUz1BW24rK10sUj1BW24rK10sRz1BW24rK107dHJ5e2NvbnN0IGU9WnQoQSxuLGEsRixzLFMsUixHPj40LDE1JkcsYik7bis9ZX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgVXQpcmV0dXJuIFUoYCR7ZS5tZXNzYWdlfSAtLSBhdHRlbXB0aW5nIHRvIHJlLXBhcnNlIHRoZSBKUEVHIGltYWdlLmApLHRoaXMucGFyc2UoQSx7ZG5sU2NhbkxpbmVzOmUuc2NhbkxpbmVzfSk7aWYoZSBpbnN0YW5jZW9mIE10KXtVKGAke2UubWVzc2FnZX0gLS0gaWdub3JpbmcgdGhlIHJlc3Qgb2YgdGhlIGltYWdlIGRhdGEuYCk7YnJlYWsgQX10aHJvdyBlfWJyZWFrO2Nhc2UgNjU1MDA6bis9NDticmVhaztjYXNlIDY1NTM1OjI1NSE9PUFbbl0mJm4tLTticmVhaztkZWZhdWx0OmNvbnN0IE49VnQoQSxuLTIsbi0zKTtpZihOPy5pbnZhbGlkKXtVKCJKcGVnSW1hZ2UucGFyc2UgLSB1bmV4cGVjdGVkIGRhdGEsIGN1cnJlbnQgbWFya2VyIGlzOiAiK04uaW52YWxpZCksbj1OLm9mZnNldDticmVha31pZighTnx8bj49QS5sZW5ndGgtMSl7VSgiSnBlZ0ltYWdlLnBhcnNlIC0gcmVhY2hlZCB0aGUgZW5kIG9mIHRoZSBpbWFnZSBkYXRhIHdpdGhvdXQgZmluZGluZyBhbiBFT0kgbWFya2VyICgweEZGRDkpLiIpO2JyZWFrIEF9dGhyb3cgbmV3IHh0KCJKcGVnSW1hZ2UucGFyc2UgLSB1bmtub3duIG1hcmtlcjogIitDLnRvU3RyaW5nKDE2KSl9Qz1KQShBLG4pLG4rPTJ9aWYoIWEpdGhyb3cgbmV3IHh0KCJKcGVnSW1hZ2UucGFyc2UgLSBubyBmcmFtZSBkYXRhIGZvdW5kLiIpO3RoaXMud2lkdGg9YS5zYW1wbGVzUGVyTGluZSx0aGlzLmhlaWdodD1hLnNjYW5MaW5lcyx0aGlzLmpmaWY9cix0aGlzLmFkb2JlPWcsdGhpcy5jb21wb25lbnRzPVtdO2Zvcihjb25zdCBBIG9mIGEuY29tcG9uZW50cyl7Y29uc3QgZT1JW0EucXVhbnRpemF0aW9uSWRdO2UmJihBLnF1YW50aXphdGlvblRhYmxlPWUpLHRoaXMuY29tcG9uZW50cy5wdXNoKHtpbmRleDpBLmluZGV4LG91dHB1dDpYdCgwLEEpLHNjYWxlWDpBLmgvYS5tYXhILHNjYWxlWTpBLnYvYS5tYXhWLGJsb2Nrc1BlckxpbmU6QS5ibG9ja3NQZXJMaW5lLGJsb2Nrc1BlckNvbHVtbjpBLmJsb2Nrc1BlckNvbHVtbn0pfXRoaXMubnVtQ29tcG9uZW50cz10aGlzLmNvbXBvbmVudHMubGVuZ3RofV9nZXRMaW5lYXJpemVkQmxvY2tEYXRhKEEsZSx0PSExKXtjb25zdCBpPXRoaXMud2lkdGgvQSxhPXRoaXMuaGVpZ2h0L2U7bGV0IHMsbixyLGcsbyxJLGMsaCxDLEIsbCxRPTA7Y29uc3QgRT10aGlzLmNvbXBvbmVudHMubGVuZ3RoLHU9QSplKkUsZD1uZXcgVWludDhDbGFtcGVkQXJyYXkodSksZj1uZXcgVWludDMyQXJyYXkoQSkscD00Mjk0OTY3Mjg4O2xldCBtO2ZvcihjPTA7YzxFO2MrKyl7aWYocz10aGlzLmNvbXBvbmVudHNbY10sbj1zLnNjYWxlWCppLHI9cy5zY2FsZVkqYSxRPWMsbD1zLm91dHB1dCxnPXMuYmxvY2tzUGVyTGluZSsxPDwzLG4hPT1tKXtmb3Iobz0wO288QTtvKyspaD0wfG8qbixmW29dPShoJnApPDwzfDcmaDttPW59Zm9yKEk9MDtJPGU7SSsrKWZvcihoPTB8SSpyLEI9ZyooaCZwKXwoNyZoKTw8MyxvPTA7bzxBO28rKylkW1FdPWxbQitmW29dXSxRKz1FfWxldCB5PXRoaXMuX2RlY29kZVRyYW5zZm9ybTtpZih0fHw0IT09RXx8eXx8KHk9bmV3IEludDMyQXJyYXkoWy0yNTYsMjU1LC0yNTYsMjU1LC0yNTYsMjU1LC0yNTYsMjU1XSkpLHkpZm9yKGM9MDtjPHU7KWZvcihoPTAsQz0wO2g8RTtoKyssYysrLEMrPTIpZFtjXT0oZFtjXSp5W0NdPj44KSt5W0MrMV07cmV0dXJuIGR9Z2V0IF9pc0NvbG9yQ29udmVyc2lvbk5lZWRlZCgpe3JldHVybiB0aGlzLmFkb2JlPyEhdGhpcy5hZG9iZS50cmFuc2Zvcm1Db2RlOjM9PT10aGlzLm51bUNvbXBvbmVudHM/MCE9PXRoaXMuX2NvbG9yVHJhbnNmb3JtJiYoODIhPT10aGlzLmNvbXBvbmVudHNbMF0uaW5kZXh8fDcxIT09dGhpcy5jb21wb25lbnRzWzFdLmluZGV4fHw2NiE9PXRoaXMuY29tcG9uZW50c1syXS5pbmRleCk6MT09PXRoaXMuX2NvbG9yVHJhbnNmb3JtfV9jb252ZXJ0WWNjVG9SZ2IoQSl7bGV0IGUsdCxpO2ZvcihsZXQgYT0wLHM9QS5sZW5ndGg7YTxzO2ErPTMpZT1BW2FdLHQ9QVthKzFdLGk9QVthKzJdLEFbYV09ZS0xNzkuNDU2KzEuNDAyKmksQVthKzFdPWUrMTM1LjQ1OS0uMzQ0KnQtLjcxNCppLEFbYSsyXT1lLTIyNi44MTYrMS43NzIqdDtyZXR1cm4gQX1fY29udmVydFljY1RvUmdiYShBLGUpe2ZvcihsZXQgdD0wLGk9MCxhPUEubGVuZ3RoO3Q8YTt0Kz0zLGkrPTQpe2NvbnN0IGE9QVt0XSxzPUFbdCsxXSxuPUFbdCsyXTtlW2ldPWEtMTc5LjQ1NisxLjQwMipuLGVbaSsxXT1hKzEzNS40NTktLjM0NCpzLS43MTQqbixlW2krMl09YS0yMjYuODE2KzEuNzcyKnMsZVtpKzNdPTI1NX1yZXR1cm4gZX1fY29udmVydFljY2tUb1JnYihBKXtsZXQgZSx0LGksYSxzPTA7Zm9yKGxldCBuPTAscj1BLmxlbmd0aDtuPHI7bis9NCllPUFbbl0sdD1BW24rMV0saT1BW24rMl0sYT1BW24rM10sQVtzKytdPXQqKC02NjA2MzU2Njk0MjAzNjRlLTE5KnQrLjAwMDQzNzEzMDQ3NTkyNjIzMippLTU0MDgwNjEwMDY0NTk5ZS0xOCplKy4wMDA0ODQ0OTc5NzEyMDI4MSphLS4xNTQzNjIxNTE4NzExMjYpLTEyMi42NzE5NTQwNjg5NCtpKigtLjAwMDk1Nzk2NDM3ODQ0NTc3MyppKy4wMDA4MTcwNzY5MTEzNDY2MjUqZS0uMDA0NzcyNzE0MDU0MDg3NDcqYSsxLjUzMzgwMjUzMjIxNzM0KStlKiguMDAwOTYxMjUwMTg0MTMwNjg4KmUtLjAwMjY2MjU3MzMyMjgzOTMzKmErLjQ4MzU3MDg4NDUxMjY1KSthKigtLjAwMDMzNjE5NzE3NzYxODM5NCphKy40ODQ3OTE1NjE0OTA3NzYpLEFbcysrXT0xMDcuMjY4MDM5Mzk3NzI0K3QqKDIxOTkyNzEwNDUyNTc0MWUtMTkqdC0uMDAwNjQwOTkyMDE4Mjk3OTQ1KmkrLjAwMDY1OTM5NzAwMTI0NTU3NyplKy4wMDA0MjYxMDU2NTI5Mzg4MzcqYS0uMTc2NDkxNzkyNDYyODc1KStpKigtLjAwMDc3ODI2OTk0MTUxMzY4MyppKy4wMDEzMDg3MjI2MTQwODI3NSplKy4wMDA3NzA0ODI2MzE4MDExMzIqYS0uMTUxMDUxNDkyNzc1NTYyKStlKiguMDAxMjY5MzUzNjgxMTQ4NDMqZS0uMDAyNjUwOTAxODkwMTA4OTgqYSsuMjU4MDI5MTAyMDY4NDUpK2EqKC0uMDAwMzE4OTEzMTE3NTg4MzI4KmEtLjIxMzc0MjQwMDMyMzY2NSksQVtzKytdPXQqKC0uMDAwNTcwMTE1MTk2OTczNjc3KnQtMjYzNDA5MDUxMDA0NTg5ZS0xOSppKy4wMDIwNzQxMDg4MTE1MDEyKmUtLjAwMjg4MjYwMjM2ODUzNDQyKmErLjgxNDI3Mjk2ODM1OTI5NSktMjAuODEwMDEyNTQ2OTQ3K2kqKC0xNTM0OTYwNTc0NDA5NzVlLTE5KmktLjAwMDEzMjY4OTA0Mzk2MTQ0NiplKy4wMDA1NjA4MzM2OTEyNDI4MTIqYS0uMTk1MTUyMDI3NTM0MDQ5KStlKiguMDAxNzQ0MTgxMzI5Mjc1ODIqZS0uMDAyNTUyNDMzMjE0MzkzNDcqYSsuMTE2OTM1MDIwNDY1MTQ1KSthKigtLjAwMDM0MzUzMTk5NjUxMDU1NSphKy4yNDE2NTI2MDIzMjQwNyk7cmV0dXJuIEEuc3ViYXJyYXkoMCxzKX1fY29udmVydFljY2tUb1JnYmEoQSl7Zm9yKGxldCBlPTAsdD1BLmxlbmd0aDtlPHQ7ZSs9NCl7Y29uc3QgdD1BW2VdLGk9QVtlKzFdLGE9QVtlKzJdLHM9QVtlKzNdO0FbZV09aSooLTY2MDYzNTY2OTQyMDM2NGUtMTkqaSsuMDAwNDM3MTMwNDc1OTI2MjMyKmEtNTQwODA2MTAwNjQ1OTllLTE4KnQrLjAwMDQ4NDQ5Nzk3MTIwMjgxKnMtLjE1NDM2MjE1MTg3MTEyNiktMTIyLjY3MTk1NDA2ODk0K2EqKC0uMDAwOTU3OTY0Mzc4NDQ1NzczKmErLjAwMDgxNzA3NjkxMTM0NjYyNSp0LS4wMDQ3NzI3MTQwNTQwODc0NypzKzEuNTMzODAyNTMyMjE3MzQpK3QqKC4wMDA5NjEyNTAxODQxMzA2ODgqdC0uMDAyNjYyNTczMzIyODM5MzMqcysuNDgzNTcwODg0NTEyNjUpK3MqKC0uMDAwMzM2MTk3MTc3NjE4Mzk0KnMrLjQ4NDc5MTU2MTQ5MDc3NiksQVtlKzFdPTEwNy4yNjgwMzkzOTc3MjQraSooMjE5OTI3MTA0NTI1NzQxZS0xOSppLS4wMDA2NDA5OTIwMTgyOTc5NDUqYSsuMDAwNjU5Mzk3MDAxMjQ1NTc3KnQrLjAwMDQyNjEwNTY1MjkzODgzNypzLS4xNzY0OTE3OTI0NjI4NzUpK2EqKC0uMDAwNzc4MjY5OTQxNTEzNjgzKmErLjAwMTMwODcyMjYxNDA4Mjc1KnQrLjAwMDc3MDQ4MjYzMTgwMTEzMipzLS4xNTEwNTE0OTI3NzU1NjIpK3QqKC4wMDEyNjkzNTM2ODExNDg0Myp0LS4wMDI2NTA5MDE4OTAxMDg5OCpzKy4yNTgwMjkxMDIwNjg0NSkrcyooLS4wMDAzMTg5MTMxMTc1ODgzMjgqcy0uMjEzNzQyNDAwMzIzNjY1KSxBW2UrMl09aSooLS4wMDA1NzAxMTUxOTY5NzM2NzcqaS0yNjM0MDkwNTEwMDQ1ODllLTE5KmErLjAwMjA3NDEwODgxMTUwMTIqdC0uMDAyODgyNjAyMzY4NTM0NDIqcysuODE0MjcyOTY4MzU5Mjk1KS0yMC44MTAwMTI1NDY5NDcrYSooLTE1MzQ5NjA1NzQ0MDk3NWUtMTkqYS0uMDAwMTMyNjg5MDQzOTYxNDQ2KnQrLjAwMDU2MDgzMzY5MTI0MjgxMipzLS4xOTUxNTIwMjc1MzQwNDkpK3QqKC4wMDE3NDQxODEzMjkyNzU4Mip0LS4wMDI1NTI0MzMyMTQzOTM0NypzKy4xMTY5MzUwMjA0NjUxNDUpK3MqKC0uMDAwMzQzNTMxOTk2NTEwNTU1KnMrLjI0MTY1MjYwMjMyNDA3KSxBW2UrM109MjU1fXJldHVybiBBfV9jb252ZXJ0WWNja1RvQ215ayhBKXtsZXQgZSx0LGk7Zm9yKGxldCBhPTAscz1BLmxlbmd0aDthPHM7YSs9NCllPUFbYV0sdD1BW2ErMV0saT1BW2ErMl0sQVthXT00MzQuNDU2LWUtMS40MDIqaSxBW2ErMV09MTE5LjU0MS1lKy4zNDQqdCsuNzE0KmksQVthKzJdPTQ4MS44MTYtZS0xLjc3Mip0O3JldHVybiBBfV9jb252ZXJ0Q215a1RvUmdiKEEpe2xldCBlLHQsaSxhLHM9MDtmb3IobGV0IG49MCxyPUEubGVuZ3RoO248cjtuKz00KWU9QVtuXSx0PUFbbisxXSxpPUFbbisyXSxhPUFbbiszXSxBW3MrK109MjU1K2UqKC02NzQ3MTQ3MDczNjAyNDQxZS0yMCplKy4wMDA4Mzc5MjYyMTIxMDEzNzI3KnQrLjAwMDI4OTQ3MTgxODg2NDMyOTQqaSsuMDAzMjY0MjMxMDU3NTM3ODA2KmEtMS4xMTg1NjExODY3MjAzOTM3KSt0KigyNjM3NDEwNzYxNjA4OTQwNWUtMjEqdC04NjI2OTQ5MTU4NjM4NTcyZS0yMCppLS4wMDAyNzQ4NzY5MDY3NDk5NDkxKmEtLjAyMTU1Njg4Nzk0OTc4OTY3KStpKigtMzg3ODA5OTIxMjg2OTM2M2UtMjAqaS0uMDAwMzI2NzgwODI3OTQ4NTI4NiphKy4wNjg2NzQyMjM4NTk1MzQ1KS1hKiguMDAwMzM2MTk3MTc3NjE4MzkzNyphKy43NDMwNjU5MTUxMzQyMjU0KSxBW3MrK109MjU1K2UqKC4wMDAxMzU5NjM3MjgxMzU4ODg0OCplKy4wMDA5MjQ1MzcxMzI1NzM1ODUqdCsuMDAwMTA1NjczNTk2MTg2ODM1OTMqaSsuMDAwNDc5MTg2NDY4NzQzNjUxMiphLS4zMTA5Njg5NTg3NTE1ODc1KSt0KigtLjAwMDIzNTQ1MzQ2MTA4MzcwMzQ0KnQrLjAwMDI3MDI4NDUyNTM1MzQ3MTQqaSsuMDAyMDIwMDMwODk3NzMwNzE1NiphLS43NDg4MDUyMTY3MDE1NDk0KStpKig2ODM0ODE1OTk4MjM1NjYyZS0yMCppKy4wMDAxNTE2ODQ1MjM2MzQ2MDk3MyphLS4wOTc1MTkyNzc3NDcyODkzMyktYSooLjAwMDMxODkxMzExNzU4ODMyODEqYSsuNzM2NDg4MzgwNzczMzE2OCksQVtzKytdPTI1NStlKigxMzU5ODY1MDQxMTM4NTMwN2UtMjEqZSsuMDAwMTI0MjM5NTYxNzU0OTA4NTEqdCsuMDAwNDc1MTk4NTA5NzU4MzU4OSppLTM2NzI5MzE3NDc2NjMwNDIyZS0yMiphLS4wNTU2MjE4Njk4MDI2NDAzNCkrdCooLjAwMDE2MTQxMzgwNTk4NzI0Njc2KnQrLjAwMDk2OTIyMzkxMzA3MjUxODYqaSsuMDAwNzc4MjY5MjQ1MDAzNjI1MyphLS40NDAxNTIzMjM2NzUyNjQ2MykraSooNS4wNjg4ODI5MTQwNjg3NjllLTcqaSsuMDAxNzc3ODM2OTAxMTM3NTA3MSphLS43NTkxNDU0NjQ5NzQ5NjA5KS1hKiguMDAwMzQzNTMxOTk2NTEwNTU1MyphKy43MDYzNzcwMTg2MTYwMTQ0KTtyZXR1cm4gQS5zdWJhcnJheSgwLHMpfV9jb252ZXJ0Q215a1RvUmdiYShBKXtmb3IobGV0IGU9MCx0PUEubGVuZ3RoO2U8dDtlKz00KXtjb25zdCB0PUFbZV0saT1BW2UrMV0sYT1BW2UrMl0scz1BW2UrM107QVtlXT0yNTUrdCooLTY3NDcxNDcwNzM2MDI0NDFlLTIwKnQrLjAwMDgzNzkyNjIxMjEwMTM3MjcqaSsuMDAwMjg5NDcxODE4ODY0MzI5NCphKy4wMDMyNjQyMzEwNTc1Mzc4MDYqcy0xLjExODU2MTE4NjcyMDM5MzcpK2kqKDI2Mzc0MTA3NjE2MDg5NDA1ZS0yMSppLTg2MjY5NDkxNTg2Mzg1NzJlLTIwKmEtLjAwMDI3NDg3NjkwNjc0OTk0OTEqcy0uMDIxNTU2ODg3OTQ5Nzg5NjcpK2EqKC0zODc4MDk5MjEyODY5MzYzZS0yMCphLS4wMDAzMjY3ODA4Mjc5NDg1Mjg2KnMrLjA2ODY3NDIyMzg1OTUzNDUpLXMqKC4wMDAzMzYxOTcxNzc2MTgzOTM3KnMrLjc0MzA2NTkxNTEzNDIyNTQpLEFbZSsxXT0yNTUrdCooLjAwMDEzNTk2MzcyODEzNTg4ODQ4KnQrLjAwMDkyNDUzNzEzMjU3MzU4NSppKy4wMDAxMDU2NzM1OTYxODY4MzU5MyphKy4wMDA0NzkxODY0Njg3NDM2NTEyKnMtLjMxMDk2ODk1ODc1MTU4NzUpK2kqKC0uMDAwMjM1NDUzNDYxMDgzNzAzNDQqaSsuMDAwMjcwMjg0NTI1MzUzNDcxNCphKy4wMDIwMjAwMzA4OTc3MzA3MTU2KnMtLjc0ODgwNTIxNjcwMTU0OTQpK2EqKDY4MzQ4MTU5OTgyMzU2NjJlLTIwKmErLjAwMDE1MTY4NDUyMzYzNDYwOTczKnMtLjA5NzUxOTI3Nzc0NzI4OTMzKS1zKiguMDAwMzE4OTEzMTE3NTg4MzI4MSpzKy43MzY0ODgzODA3NzMzMTY4KSxBW2UrMl09MjU1K3QqKDEzNTk4NjUwNDExMzg1MzA3ZS0yMSp0Ky4wMDAxMjQyMzk1NjE3NTQ5MDg1MSppKy4wMDA0NzUxOTg1MDk3NTgzNTg5KmEtMzY3MjkzMTc0NzY2MzA0MjJlLTIyKnMtLjA1NTYyMTg2OTgwMjY0MDM0KStpKiguMDAwMTYxNDEzODA1OTg3MjQ2NzYqaSsuMDAwOTY5MjIzOTEzMDcyNTE4NiphKy4wMDA3NzgyNjkyNDUwMDM2MjUzKnMtLjQ0MDE1MjMyMzY3NTI2NDYzKSthKig1LjA2ODg4MjkxNDA2ODc2OWUtNyphKy4wMDE3Nzc4MzY5MDExMzc1MDcxKnMtLjc1OTE0NTQ2NDk3NDk2MDkpLXMqKC4wMDAzNDM1MzE5OTY1MTA1NTUzKnMrLjcwNjM3NzAxODYxNjAxNDQpLEFbZSszXT0yNTV9cmV0dXJuIEF9Z2V0RGF0YSh7d2lkdGg6QSxoZWlnaHQ6ZSxmb3JjZVJHQkE6dD0hMSxmb3JjZVJHQjppPSExLGlzU291cmNlUERGOmE9ITF9KXtpZih0aGlzLm51bUNvbXBvbmVudHM+NCl0aHJvdyBuZXcgeHQoIlVuc3VwcG9ydGVkIGNvbG9yIG1vZGUiKTtjb25zdCBzPXRoaXMuX2dldExpbmVhcml6ZWRCbG9ja0RhdGEoQSxlLGEpO2lmKDE9PT10aGlzLm51bUNvbXBvbmVudHMmJih0fHxpKSl7Y29uc3QgQT1zLmxlbmd0aCoodD80OjMpLGU9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KEEpO2xldCBpPTA7aWYodCkhZnVuY3Rpb24oQSxlKXtpZihfLmlzTGl0dGxlRW5kaWFuKWZvcihsZXQgdD0wLGk9QS5sZW5ndGg7dDxpO3QrKyllW3RdPTY1NzkzKkFbdF18NDI3ODE5MDA4MDtlbHNlIGZvcihsZXQgdD0wLGk9QS5sZW5ndGg7dDxpO3QrKyllW3RdPTE2ODQzMDA4KkFbdF18MjU1fShzLG5ldyBVaW50MzJBcnJheShlLmJ1ZmZlcikpO2Vsc2UgZm9yKGNvbnN0IEEgb2YgcyllW2krK109QSxlW2krK109QSxlW2krK109QTtyZXR1cm4gZX1pZigzPT09dGhpcy5udW1Db21wb25lbnRzJiZ0aGlzLl9pc0NvbG9yQ29udmVyc2lvbk5lZWRlZCl7aWYodCl7Y29uc3QgQT1uZXcgVWludDhDbGFtcGVkQXJyYXkocy5sZW5ndGgvMyo0KTtyZXR1cm4gdGhpcy5fY29udmVydFljY1RvUmdiYShzLEEpfXJldHVybiB0aGlzLl9jb252ZXJ0WWNjVG9SZ2Iocyl9aWYoND09PXRoaXMubnVtQ29tcG9uZW50cyl7aWYodGhpcy5faXNDb2xvckNvbnZlcnNpb25OZWVkZWQpcmV0dXJuIHQ/dGhpcy5fY29udmVydFljY2tUb1JnYmEocyk6aT90aGlzLl9jb252ZXJ0WWNja1RvUmdiKHMpOnRoaXMuX2NvbnZlcnRZY2NrVG9DbXlrKHMpO2lmKHQpcmV0dXJuIHRoaXMuX2NvbnZlcnRDbXlrVG9SZ2JhKHMpO2lmKGkpcmV0dXJuIHRoaXMuX2NvbnZlcnRDbXlrVG9SZ2Iocyl9cmV0dXJuIHN9fWNsYXNzIHp0IGV4dGVuZHMgTmV7Y29uc3RydWN0b3IoQSxlLHQpe3N1cGVyKGUpLHRoaXMuc3RyZWFtPUEsdGhpcy5kaWN0PUEuZGljdCx0aGlzLm1heWJlTGVuZ3RoPWUsdGhpcy5wYXJhbXM9dH1nZXQgYnl0ZXMoKXtyZXR1cm4gSCh0aGlzLCJieXRlcyIsdGhpcy5zdHJlYW0uZ2V0Qnl0ZXModGhpcy5tYXliZUxlbmd0aCkpfWVuc3VyZUJ1ZmZlcihBKXt9cmVhZEJsb2NrKCl7dGhpcy5kZWNvZGVJbWFnZSgpfWRlY29kZUltYWdlKEEpe2lmKHRoaXMuZW9mKXJldHVybiB0aGlzLmJ1ZmZlcjtBfHw9dGhpcy5ieXRlcztmb3IobGV0IGU9MCx0PUEubGVuZ3RoLTE7ZTx0O2UrKylpZigyNTU9PT1BW2VdJiYyMTY9PT1BW2UrMV0pe2U+MCYmKEE9QS5zdWJhcnJheShlKSk7YnJlYWt9Y29uc3QgZT17ZGVjb2RlVHJhbnNmb3JtOnZvaWQgMCxjb2xvclRyYW5zZm9ybTp2b2lkIDB9LHQ9dGhpcy5kaWN0LmdldEFycmF5KCJEIiwiRGVjb2RlIik7aWYoKHRoaXMuZm9yY2VSR0JBfHx0aGlzLmZvcmNlUkdCKSYmQXJyYXkuaXNBcnJheSh0KSl7Y29uc3QgQT10aGlzLmRpY3QuZ2V0KCJCUEMiLCJCaXRzUGVyQ29tcG9uZW50Iil8fDgsaT10Lmxlbmd0aCxhPW5ldyBJbnQzMkFycmF5KGkpO2xldCBzPSExO2NvbnN0IG49KDE8PEEpLTE7Zm9yKGxldCBBPTA7QTxpO0ErPTIpYVtBXT0yNTYqKHRbQSsxXS10W0FdKXwwLGFbQSsxXT10W0FdKm58MCwyNTY9PT1hW0FdJiYwPT09YVtBKzFdfHwocz0hMCk7cyYmKGUuZGVjb2RlVHJhbnNmb3JtPWEpfWlmKHRoaXMucGFyYW1zIGluc3RhbmNlb2YgUUEpe2NvbnN0IEE9dGhpcy5wYXJhbXMuZ2V0KCJDb2xvclRyYW5zZm9ybSIpO051bWJlci5pc0ludGVnZXIoQSkmJihlLmNvbG9yVHJhbnNmb3JtPUEpfWNvbnN0IGk9bmV3IF90KGUpO2kucGFyc2UoQSk7Y29uc3QgYT1pLmdldERhdGEoe3dpZHRoOnRoaXMuZHJhd1dpZHRoLGhlaWdodDp0aGlzLmRyYXdIZWlnaHQsZm9yY2VSR0JBOnRoaXMuZm9yY2VSR0JBLGZvcmNlUkdCOnRoaXMuZm9yY2VSR0IsaXNTb3VyY2VQREY6ITB9KTtyZXR1cm4gdGhpcy5idWZmZXI9YSx0aGlzLmJ1ZmZlckxlbmd0aD1hLmxlbmd0aCx0aGlzLmVvZj0hMCx0aGlzLmJ1ZmZlcn1nZXQgY2FuQXN5bmNEZWNvZGVJbWFnZUZyb21CdWZmZXIoKXtyZXR1cm4gdGhpcy5zdHJlYW0uaXNBc3luY319dCg0OTc5KTt2YXIgJHQsQWk9KCR0PSJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQuY3VycmVudFNjcmlwdD8uc3JjOnZvaWQgMCxmdW5jdGlvbihBPXt9KXt2YXIgZSx0LGk9QTtuZXcgUHJvbWlzZSgoKEEsaSk9PntlPUEsdD1pfSkpLGkuZGVjb2RlPWZ1bmN0aW9uKEEse251bUNvbXBvbmVudHM6ZT00LGlzSW5kZXhlZENvbG9ybWFwOnQ9ITEsc21hc2tJbkRhdGE6YT0hMX0pe2NvbnN0IHM9QS5sZW5ndGgsbj1pLl9tYWxsb2Mocyk7aS5IRUFQVTguc2V0KEEsbik7Y29uc3Qgcj1pLl9qcDJfZGVjb2RlKG4scyxlPjA/ZTowLCEhdCwhIWEpO2lmKGkuX2ZyZWUobikscil7Y29uc3R7ZXJyb3JNZXNzYWdlczpBfT1pO3JldHVybiBBPyhkZWxldGUgaS5lcnJvck1lc3NhZ2VzLEEpOiJVbmtub3duIGVycm9yIn1jb25zdHtpbWFnZURhdGE6Z309aTtyZXR1cm4gaS5pbWFnZURhdGE9bnVsbCxnfTt2YXIgYT1PYmplY3QuYXNzaWduKHt9LGkpLHM9Ii4vdGhpcy5wcm9ncmFtIixuPSIiOyJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJmRvY3VtZW50LmN1cnJlbnRTY3JpcHQmJihuPWRvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjKSwkdCYmKG49JHQpLG49bi5zdGFydHNXaXRoKCJibG9iOiIpPyIiOm4uc3Vic3RyKDAsbi5yZXBsYWNlKC9bPyNdLiovLCIiKS5sYXN0SW5kZXhPZigiLyIpKzEpO3ZhciByLGcsbyxJLGMsaD1pLnByaW50fHxjb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpLEM9aS5wcmludEVycnx8Y29uc29sZS5lcnJvci5iaW5kKGNvbnNvbGUpO2Z1bmN0aW9uIEIoKXt2YXIgQT1nLmJ1ZmZlcjtpLkhFQVA4PW89bmV3IEludDhBcnJheShBKSxpLkhFQVAxNj1uZXcgSW50MTZBcnJheShBKSxpLkhFQVBVOD1JPW5ldyBVaW50OEFycmF5KEEpLGkuSEVBUFUxNj1uZXcgVWludDE2QXJyYXkoQSksaS5IRUFQMzI9bmV3IEludDMyQXJyYXkoQSksaS5IRUFQVTMyPWM9bmV3IFVpbnQzMkFycmF5KEEpLGkuSEVBUEYzMj1uZXcgRmxvYXQzMkFycmF5KEEpLGkuSEVBUEY2ND1uZXcgRmxvYXQ2NEFycmF5KEEpfU9iamVjdC5hc3NpZ24oaSxhKSxhPW51bGwsaS5hcmd1bWVudHMmJmkuYXJndW1lbnRzLGkudGhpc1Byb2dyYW0mJihzPWkudGhpc1Byb2dyYW0pLGkucXVpdCYmaS5xdWl0LGkud2FzbUJpbmFyeSYmKHI9aS53YXNtQmluYXJ5KTt2YXIgbCxRPVtdLEU9W10sdT1bXSxkPTAsZj1udWxsLHA9bnVsbCxtPSJkYXRhOmFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtiYXNlNjQsIix5PUE9PkEuc3RhcnRzV2l0aChtKTtmdW5jdGlvbiB3KEEsZSl7dmFyIHQsaT1mdW5jdGlvbihBKXtpZihBPT1sJiZyKXJldHVybiBuZXcgVWludDhBcnJheShyKTt2YXIgZT1mdW5jdGlvbihBKXtpZih5KEEpKXJldHVybiBmdW5jdGlvbihBKXtmb3IodmFyIGU9YXRvYihBKSx0PW5ldyBVaW50OEFycmF5KGUubGVuZ3RoKSxpPTA7aTxlLmxlbmd0aDsrK2kpdFtpXT1lLmNoYXJDb2RlQXQoaSk7cmV0dXJuIHR9KEEuc2xpY2UobS5sZW5ndGgpKX0oQSk7aWYoZSlyZXR1cm4gZTt0aHJvdydzeW5jIGZldGNoaW5nIG9mIHRoZSB3YXNtIGZhaWxlZDogeW91IGNhbiBwcmVsb2FkIGl0IHRvIE1vZHVsZVsid2FzbUJpbmFyeSJdIG1hbnVhbGx5LCBvciBlbWNjLnB5IHdpbGwgZG8gdGhhdCBmb3IgeW91IHdoZW4gZ2VuZXJhdGluZyBIVE1MIChidXQgbm90IEpTKSd9KEEpO3JldHVybiB0PW5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoaSksW25ldyBXZWJBc3NlbWJseS5JbnN0YW5jZSh0LGUpLHRdfXZhciBEPUE9Pntmb3IoO0EubGVuZ3RoPjA7KUEuc2hpZnQoKShpKX07aS5ub0V4aXRSdW50aW1lO3ZhciBiLGs9QT0+e3ZhciBlPShBLWcuYnVmZmVyLmJ5dGVMZW5ndGgrNjU1MzUpLzY1NTM2O3RyeXtyZXR1cm4gZy5ncm93KGUpLEIoKSwxfWNhdGNoKEEpe319LEY9e30sUz0oKT0+e2lmKCFTLnN0cmluZ3Mpe3ZhciBBPXtVU0VSOiJ3ZWJfdXNlciIsTE9HTkFNRToid2ViX3VzZXIiLFBBVEg6Ii8iLFBXRDoiLyIsSE9NRToiL2hvbWUvd2ViX3VzZXIiLExBTkc6KCJvYmplY3QiPT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzWzBdfHwiQyIpLnJlcGxhY2UoIi0iLCJfIikrIi5VVEYtOCIsXzpzfHwiLi90aGlzLnByb2dyYW0ifTtmb3IodmFyIGUgaW4gRil2b2lkIDA9PT1GW2VdP2RlbGV0ZSBBW2VdOkFbZV09RltlXTt2YXIgdD1bXTtmb3IodmFyIGUgaW4gQSl0LnB1c2goYCR7ZX09JHtBW2VdfWApO1Muc3RyaW5ncz10fXJldHVybiBTLnN0cmluZ3N9LFI9W251bGwsW10sW11dLEc9InVuZGVmaW5lZCIhPXR5cGVvZiBUZXh0RGVjb2Rlcj9uZXcgVGV4dERlY29kZXIoInV0ZjgiKTp2b2lkIDAsTj0oQSxlLHQpPT57Zm9yKHZhciBpPWUrdCxhPWU7QVthXSYmIShhPj1pKTspKythO2lmKGEtZT4xNiYmQS5idWZmZXImJkcpcmV0dXJuIEcuZGVjb2RlKEEuc3ViYXJyYXkoZSxhKSk7Zm9yKHZhciBzPSIiO2U8YTspe3ZhciBuPUFbZSsrXTtpZigxMjgmbil7dmFyIHI9NjMmQVtlKytdO2lmKDE5MiE9KDIyNCZuKSl7dmFyIGc9NjMmQVtlKytdO2lmKChuPTIyND09KDI0MCZuKT8oMTUmbik8PDEyfHI8PDZ8ZzooNyZuKTw8MTh8cjw8MTJ8Zzw8Nnw2MyZBW2UrK10pPDY1NTM2KXMrPVN0cmluZy5mcm9tQ2hhckNvZGUobik7ZWxzZXt2YXIgbz1uLTY1NTM2O3MrPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTZ8bz4+MTAsNTYzMjB8MTAyMyZvKX19ZWxzZSBzKz1TdHJpbmcuZnJvbUNoYXJDb2RlKCgzMSZuKTw8NnxyKX1lbHNlIHMrPVN0cmluZy5mcm9tQ2hhckNvZGUobil9cmV0dXJuIHN9LHg9KEEsZSk9PkE/TihJLEEsZSk6IiIsVT17YzooQSxlLHQpPT5JLmNvcHlXaXRoaW4oQSxlLGUrdCksZzpmdW5jdGlvbihBLGUpe0E+Pj0yO2NvbnN0IHQ9aS5pbWFnZURhdGE9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGUpLGE9aS5IRUFQMzIuc3ViYXJyYXkoQSxBK2UpO3Quc2V0KGEpfSxmOmZ1bmN0aW9uKEEsZSx0LGEpe0E+Pj0yLGU+Pj0yLHQ+Pj0yO2NvbnN0IHM9aS5pbWFnZURhdGE9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDMqYSksbj1pLkhFQVAzMi5zdWJhcnJheShBLEErYSkscj1pLkhFQVAzMi5zdWJhcnJheShlLGUrYSksZz1pLkhFQVAzMi5zdWJhcnJheSh0LHQrYSk7Zm9yKGxldCBBPTA7QTxhO0ErKylzWzMqQV09bltBXSxzWzMqQSsxXT1yW0FdLHNbMypBKzJdPWdbQV19LGU6ZnVuY3Rpb24oQSxlLHQsYSxzKXtBPj49MixlPj49Mix0Pj49MixhPj49Mjtjb25zdCBuPWkuaW1hZ2VEYXRhPW5ldyBVaW50OENsYW1wZWRBcnJheSg0KnMpLHI9aS5IRUFQMzIuc3ViYXJyYXkoQSxBK3MpLGc9aS5IRUFQMzIuc3ViYXJyYXkoZSxlK3MpLG89aS5IRUFQMzIuc3ViYXJyYXkodCx0K3MpLEk9aS5IRUFQMzIuc3ViYXJyYXkoYSxhK3MpO2ZvcihsZXQgQT0wO0E8cztBKyspbls0KkFdPXJbQV0sbls0KkErMV09Z1tBXSxuWzQqQSsyXT1vW0FdLG5bNCpBKzNdPUlbQV19LGs6QT0+e3ZhciBlPUkubGVuZ3RoLHQ9MjE0NzQ4MzY0ODtpZigoQT4+Pj0wKT50KXJldHVybiExO2Zvcih2YXIgaSxhPTE7YTw9NDthKj0yKXt2YXIgcz1lKigxKy4yL2EpO3M9TWF0aC5taW4ocyxBKzEwMDY2MzI5Nik7dmFyIG49TWF0aC5taW4odCwoaT1NYXRoLm1heChBLHMpKSsoNjU1MzYtaSU2NTUzNiklNjU1MzYpO2lmKGsobikpcmV0dXJuITB9cmV0dXJuITF9LGw6KEEsZSk9Pnt2YXIgdD0wO3JldHVybiBTKCkuZm9yRWFjaCgoKGksYSk9Pnt2YXIgcz1lK3Q7Y1tBKzQqYT4+Ml09cywoKEEsZSk9Pntmb3IodmFyIHQ9MDt0PEEubGVuZ3RoOysrdClvW2UrK109QS5jaGFyQ29kZUF0KHQpO29bZV09MH0pKGkscyksdCs9aS5sZW5ndGgrMX0pKSwwfSxtOihBLGUpPT57dmFyIHQ9UygpO2NbQT4+Ml09dC5sZW5ndGg7dmFyIGk9MDtyZXR1cm4gdC5mb3JFYWNoKChBPT5pKz1BLmxlbmd0aCsxKSksY1tlPj4yXT1pLDB9LG46QT0+NTIsajpmdW5jdGlvbihBLGUsdCxpLGEpe3JldHVybiA3MH0sYjooQSxlLHQsaSk9Pntmb3IodmFyIGEscyxuLHI9MCxnPTA7Zzx0O2crKyl7dmFyIG89Y1tlPj4yXSxCPWNbZSs0Pj4yXTtlKz04O2Zvcih2YXIgbD0wO2w8QjtsKyspYT1BLHM9SVtvK2xdLG49dm9pZCAwLG49UlthXSwwPT09c3x8MTA9PT1zPygoMT09PWE/aDpDKShOKG4sMCkpLG4ubGVuZ3RoPTApOm4ucHVzaChzKTtyKz1CfXJldHVybiBjW2k+PjJdPXIsMH0sbzpmdW5jdGlvbihBLGUpe0E+Pj0yO2NvbnN0IHQ9aS5pbWFnZURhdGE9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDQqZSksYT1pLkhFQVAzMi5zdWJhcnJheShBLEErZSk7Zm9yKGxldCBBPTA7QTxlO0ErKyl0WzQqQV09dFs0KkErMV09dFs0KkErMl09YVtBXSx0WzQqQSszXT0yNTV9LGk6ZnVuY3Rpb24oQSxlLHQpe0E+Pj0yLGU+Pj0yO2NvbnN0IGE9aS5pbWFnZURhdGE9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDQqdCkscz1pLkhFQVAzMi5zdWJhcnJheShBLEErdCksbj1pLkhFQVAzMi5zdWJhcnJheShlLGUrdCk7Zm9yKGxldCBBPTA7QTx0O0ErKylhWzQqQV09YVs0KkErMV09YVs0KkErMl09c1tBXSxhWzQqQSszXT1uW0FdfSxkOmZ1bmN0aW9uKEEpe2NvbnN0IGU9eChBKTsoaS53YXJufHxjb25zb2xlLndhcm4pKGBPcGVuSlBFRzogJHtlfWApfSxoOmZ1bmN0aW9uKEEsZSx0LGEpe0E+Pj0yLGU+Pj0yLHQ+Pj0yO2NvbnN0IHM9aS5pbWFnZURhdGE9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDQqYSksbj1pLkhFQVAzMi5zdWJhcnJheShBLEErYSkscj1pLkhFQVAzMi5zdWJhcnJheShlLGUrYSksZz1pLkhFQVAzMi5zdWJhcnJheSh0LHQrYSk7Zm9yKGxldCBBPTA7QTxhO0ErKylzWzQqQV09bltBXSxzWzQqQSsxXT1yW0FdLHNbNCpBKzJdPWdbQV0sc1s0KkErM109MjU1fSxhOmZ1bmN0aW9uKEEpe2NvbnN0IGU9eChBKTtpLmVycm9yTWVzc2FnZXM/aS5lcnJvck1lc3NhZ2VzKz0iXG4iK2U6aS5lcnJvck1lc3NhZ2VzPWV9fSxNPWZ1bmN0aW9uKCl7dmFyIEE9e2E6VX07ZnVuY3Rpb24gZShBLGUpe3ZhciB0O3JldHVybiBNPUEuZXhwb3J0cyxnPU0ucCxCKCksdD1NLnEsRS51bnNoaWZ0KHQpLGZ1bmN0aW9uKEEpe2lmKGQtLSxpLm1vbml0b3JSdW5EZXBlbmRlbmNpZXM/LihkKSwwPT1kJiYobnVsbCE9PWYmJihjbGVhckludGVydmFsKGYpLGY9bnVsbCkscCkpe3ZhciBlPXA7cD1udWxsLGUoKX19KCksTX1pZihkKyssaS5tb25pdG9yUnVuRGVwZW5kZW5jaWVzPy4oZCksaS5pbnN0YW50aWF0ZVdhc20pdHJ5e3JldHVybiBpLmluc3RhbnRpYXRlV2FzbShBLGUpfWNhdGNoKEEpe0MoYE1vZHVsZS5pbnN0YW50aWF0ZVdhc20gY2FsbGJhY2sgZmFpbGVkIHdpdGggZXJyb3I6ICR7QX1gKSx0KEEpfXJldHVybiBsfHwobD0iZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LEFHRnpiUUVBQUFBQnpnRWFZQU4vZjM4QmYyQUVmMzkvZndGL1lBRi9BR0FDZjM4QVlBRi9BWDlnQTM5L2Z3QmdBbjkvQVg5Z0JIOS9mMzhBWUFOL2ZuOEJmbUFGZjM5L2YzOEJmMkFDZm44QmYyQUNmbjhCZm1BRmYzOS9mMzhBWUFOL2ZuOEJmMkFBQVg5Z0IzOS9mMzkvZjM4QmYyQUpmMzkvZjM5L2YzOS9BWDlnQzM5L2YzOS9mMzkvZjM5L0FYOWdCbjkvZjM5L2Z3Ri9ZQVovZkg5L2YzOEJmMkFJZjM5L2YzOS9mMzhBWUFoL2YzOS9mMzkvZndGL1lBQUFZQVovZjM5L2YzOEFZQWQvZjM5L2YzOS9BR0FDZkg4QmZBSmJEd0ZoQVdFQUFnRmhBV0lBQVFGaEFXTUFCUUZoQVdRQUFnRmhBV1VBREFGaEFXWUFCd0ZoQVdjQUF3RmhBV2dBQndGaEFXa0FCUUZoQVdvQUNRRmhBV3NBQkFGaEFXd0FCZ0ZoQVcwQUJnRmhBVzRBQkFGaEFXOEFBd1BBQWI0QkJ3SUZBQVlFQUFVR0JBVUJCQXdGRkFZQ0FnSUNBQVlRRVFRQ0NoSUNCUUlFQndRQ0RnSUNEUVlDRlFNSEFBQUVBd0VXQ1FrREFBa0dBUVFFQlFVT0R3RUJBd0FEQmdJUUJCY1lBZ2NHQXdjSEFRRUNBQVFaQkFZSEJBOE1BQVFDQWdJQUJnQUdBUUVCQVFFQkFRRUFBQUFBQUFZREFnSUNBd01EQXdNQUF4TUlCQTRFQUFnREF3a0VDQW9MQ0FBQUFRRUJBUUVCQVFFTkFRQUVCQVVKRHdFU0VRRUFBQVlEQXdFRkJRVUZCUVVGQlFFTEFRRUJBUUVCQVFFQkNnUUZBWEFCYm00RkJ3RUJnZ0tBZ0FJR0NBRi9BVUdRMlFVTEJ4c0dBWEFDQUFGeEFFRUJjZ0NZQVFGekFCQUJkQUVBQVhVQWx3RUp2UUVCQUVFQkMyMVJ6QUhDQVhOek5xY0JuQUdaQVlzQmlnR0pBWWdCaHdHR0FZVUJoQUZTZ1FHQUFYOStmWHg3ZW5sNGQzWjF5d0hLQWNrQnlBSEhBY1lCUU1VQnhBRkFRTU1Cd1FIQUFiOEJ2Z0c5QWJ3QnV3RzZBYmtCc3dHb0FhWUJwUUdrQWFNQm9nR2hBYUFCbndHZUFaMEJtd0dhQVVsS1RGSklnd0ZUT0ZDQ0FVOUZSazRySjZzQnFnR3NBYlFCdUFHMUFhOEJxUUd0QWE0QnRnRzNBWEN3QWJFQnNnRlJsZ0dWQVl3QmpnR05BWklCa3dHVUFaQUJqd0VLa1pvT3ZnR0NBZ0VEZnlNQVFaQUVheUlFSkFBQ1FDQUFSUTBBQWtBQ1FBSkFBa0FnQVVFQmF3NEVBQUVFQWdRTElBQkJER29oQVF3Q0N5QUFRUkJxSVFFZ0FFRUVhaUVBREFFTElBQkJGR29oQVNBQVFRaHFJUUFMSUFFb0FnQWlCVVVOQUNBQ1JRMEFJQUFvQWdBaEJpQUVRUUJCZ0FRUUZTSUJJQU0yQW93RUl3QkJvQUZySWdBa0FDQUFJQUUyQXBRQklBQkIvd00yQXBnQklBQkJBRUdRQVJBVklnQkJmellDVENBQVFlWUFOZ0lrSUFCQmZ6WUNVQ0FBSUFCQm53RnFOZ0lzSUFBZ0FFR1VBV28yQWxRZ0FVRUFPZ0FBSUFBZ0FpQURRZWNBUWVnQUVHc2dBRUdnQVdva0FDQUJRUUE2QVA4RElBRWdCaUFGRVFNQUN5QUVRWkFFYWlRQUM5QUNBUVYvSUFBRVFDQUFRUVJySWdNb0FnQWlCQ0VCSUFNaEFpQUFRUWhyS0FJQUlnQWdBRUYrY1NJQVJ3UkFJQUlnQUdzaUFpZ0NCQ0lCSUFJb0FnZ2lCVFlDQ0NBRklBRTJBZ1FnQUNBRWFpRUJDeUFESUFScUlnQW9BZ0FpQXlBQUlBTnFRUVJyS0FJQVJ3UkFJQUFvQWdRaUJDQUFLQUlJSWdBMkFnZ2dBQ0FFTmdJRUlBRWdBMm9oQVFzZ0FpQUJOZ0lBSUFJZ0FVRjhjV3BCQkdzZ0FVRUJjallDQUNBQ0FuOGdBaWdDQUVFSWF5SUFRZjhBVFFSQUlBQkJBM1pCQVdzTUFRc2dBR2NoQXlBQVFSMGdBMnQyUVFSeklBTkJBblJyUWU0QWFpQUFRZjhmVFEwQUdrRS9JQUJCSGlBRGEzWkJBbk1nQTBFQmRHdEJ4d0JxSWdBZ0FFRS9UeHNMSWdGQkJIUWlBRUdneHdGcU5nSUVJQUlnQUVHb3h3RnFJZ0FvQWdBMkFnZ2dBQ0FDTmdJQUlBSW9BZ2dnQWpZQ0JFR296d0ZCcU04QktRTUFRZ0VnQWEyR2hEY0RBQXNMeVFJQkJIOGdBVUVBTmdJQUFrQWdBa1VOQUNBQklBSnFJUU1DUUNBQ1FSQkpCRUFnQUNFQkRBRUxBa0FnQUNBQ2FpQUJUUTBBSUFBZ0EwOE5BQ0FBSVFFTUFRc2dBMEVRYXlFR0lBQWdBa0Z3Y1NJRmFpRUJJQU1nQldzaEF3TkFJQVlnQkdzZ0FDQUVhdjBBQUFEOURBQUFBQUFBQUFBQUFBQUFBQUFBQUFEOURROE9EUXdMQ2drSUJ3WUZCQU1DQVFEOUN3QUFJQVJCRUdvaUJDQUZSdzBBQ3lBQ0lBVkdEUUVMQWtBZ0FrRURjU0lHUlFSQUlBVWhCQXdCQzBFQUlRQWdCU0VFQTBBZ0EwRUJheUlESUFFdEFBQTZBQUFnQkVFQmFpRUVJQUZCQVdvaEFTQUFRUUZxSWdBZ0JrY05BQXNMSUFVZ0FtdEJmRXNOQUFOQUlBTkJBV3NnQVMwQUFEb0FBQ0FEUVFKcklBRXRBQUU2QUFBZ0EwRURheUFCTFFBQ09nQUFJQU5CQkdzaUF5QUJMUUFET2dBQUlBRkJCR29oQVNBRVFRUnFJZ1FnQWtjTkFBc0xDNEFFQVFOL0lBSkJnQVJQQkVBZ0FDQUJJQUlRQWlBQUR3c2dBQ0FDYWlFREFrQWdBQ0FCYzBFRGNVVUVRQUpBSUFCQkEzRkZCRUFnQUNFQ0RBRUxJQUpGQkVBZ0FDRUNEQUVMSUFBaEFnTkFJQUlnQVMwQUFEb0FBQ0FCUVFGcUlRRWdBa0VCYWlJQ1FRTnhSUTBCSUFJZ0Ewa05BQXNMQWtBZ0EwRjhjU0lFUWNBQVNRMEFJQUlnQkVGQWFpSUZTdzBBQTBBZ0FpQUJLQUlBTmdJQUlBSWdBU2dDQkRZQ0JDQUNJQUVvQWdnMkFnZ2dBaUFCS0FJTU5nSU1JQUlnQVNnQ0VEWUNFQ0FDSUFFb0FoUTJBaFFnQWlBQktBSVlOZ0lZSUFJZ0FTZ0NIRFlDSENBQ0lBRW9BaUEyQWlBZ0FpQUJLQUlrTmdJa0lBSWdBU2dDS0RZQ0tDQUNJQUVvQWl3MkFpd2dBaUFCS0FJd05nSXdJQUlnQVNnQ05EWUNOQ0FDSUFFb0FqZzJBamdnQWlBQktBSThOZ0k4SUFGQlFHc2hBU0FDUVVCcklnSWdCVTBOQUFzTElBSWdCRThOQVFOQUlBSWdBU2dDQURZQ0FDQUJRUVJxSVFFZ0FrRUVhaUlDSUFSSkRRQUxEQUVMSUFOQkJFa0VRQ0FBSVFJTUFRc2dBQ0FEUVFScklnUkxCRUFnQUNFQ0RBRUxJQUFoQWdOQUlBSWdBUzBBQURvQUFDQUNJQUV0QUFFNkFBRWdBaUFCTFFBQ09nQUNJQUlnQVMwQUF6b0FBeUFCUVFScUlRRWdBa0VFYWlJQ0lBUk5EUUFMQ3lBQ0lBTkpCRUFEUUNBQ0lBRXRBQUE2QUFBZ0FVRUJhaUVCSUFKQkFXb2lBaUFEUncwQUN3c2dBQXN3QVFGL0FrQWdBRVVOQUNBQlJRMEFRUWdnQUNBQmJDSUJFQ1VpQUFSQUlBQkJBQ0FCRUJVYUN5QUFJUUlMSUFJTEVRQWdBRVVFUUVFQUR3dEJDQ0FBRUNVTDhnSUNBbjhCZmdKQUlBSkZEUUFnQUNBQk9nQUFJQUFnQW1vaUEwRUJheUFCT2dBQUlBSkJBMGtOQUNBQUlBRTZBQUlnQUNBQk9nQUJJQU5CQTJzZ0FUb0FBQ0FEUVFKcklBRTZBQUFnQWtFSFNRMEFJQUFnQVRvQUF5QURRUVJySUFFNkFBQWdBa0VKU1EwQUlBQkJBQ0FBYTBFRGNTSUVhaUlESUFGQi93RnhRWUdDaEFoc0lnRTJBZ0FnQXlBQ0lBUnJRWHh4SWdScUlnSkJCR3NnQVRZQ0FDQUVRUWxKRFFBZ0F5QUJOZ0lJSUFNZ0FUWUNCQ0FDUVFocklBRTJBZ0FnQWtFTWF5QUJOZ0lBSUFSQkdVa05BQ0FESUFFMkFoZ2dBeUFCTmdJVUlBTWdBVFlDRUNBRElBRTJBZ3dnQWtFUWF5QUJOZ0lBSUFKQkZHc2dBVFlDQUNBQ1FSaHJJQUUyQWdBZ0FrRWNheUFCTmdJQUlBUWdBMEVFY1VFWWNpSUVheUlDUVNCSkRRQWdBYTFDZ1lDQWdCQitJUVVnQXlBRWFpRUJBMEFnQVNBRk53TVlJQUVnQlRjREVDQUJJQVUzQXdnZ0FTQUZOd01BSUFGQklHb2hBU0FDUVNCcklnSkJIMHNOQUFzTElBQUxKd0VCZnlNQVFSQnJJZ01rQUNBRElBSTJBZ3dnQUNBQklBSkJBRUVBRUdzZ0EwRVFhaVFBQytnRkFRbC9JQUZGQkVCQkFBOExBbjhnQUVVRVFFRUlJQUVRSlF3QkN5QUJSUVJBSUFBUUVFRUFEQUVMQWtBZ0FVRkhTdzBBSUFBQ2YwRUlJQUZCQTJwQmZIRWdBVUVJVFJzaUIwRUlhaUVCQWtBQ2Z3SkFJQUJCQkdzaUNpSUVLQUlBSWdVZ0JHb2lBaWdDQUNJSklBSWdDV29pQ0VFRWF5Z0NBRWNFUUNBSUlBRWdCR29pQTBFUWFrOEVRQ0FDS0FJRUlnVWdBaWdDQ0NJQ05nSUlJQUlnQlRZQ0JDQURJQWdnQTJzaUFqWUNBQ0FESUFKQmZIRnFRUVJySUFKQkFYSTJBZ0FnQXdKL0lBTW9BZ0JCQ0dzaUFrSC9BRTBFUUNBQ1FRTjJRUUZyREFFTElBSkJIU0FDWnlJRmEzWkJCSE1nQlVFQ2RHdEI3Z0JxSUFKQi94OU5EUUFhUVQ4Z0FrRWVJQVZyZGtFQ2N5QUZRUUYwYTBISEFHb2lBaUFDUVQ5UEd3c2lBa0VFZENJRlFhREhBV28yQWdRZ0F5QUZRYWpIQVdvaUJTZ0NBRFlDQ0NBRklBTTJBZ0FnQXlnQ0NDQUROZ0lFUWFqUEFVR296d0VwQXdCQ0FTQUNyWWFFTndNQUlBUWdBVFlDQUF3RUN5QURJQWhMRFFFZ0FpZ0NCQ0lCSUFJb0FnZ2lBellDQ0NBRElBRTJBZ1FnQkNBRklBbHFJZ0UyQWdBTUF3c2dCU0FCUVJCcVR3UkFJQVFnQVRZQ0FDQUVJQUZCZkhGcVFRUnJJQUUyQWdBZ0FTQUVhaUlESUFVZ0FXc2lBVFlDQUNBRElBRkJmSEZxUVFScklBRkJBWEkyQWdBZ0F3Si9JQU1vQWdCQkNHc2lBVUgvQUUwRVFDQUJRUU4yUVFGckRBRUxJQUZCSFNBQlp5SUVhM1pCQkhNZ0JFRUNkR3RCN2dCcUlBRkIveDlORFFBYVFUOGdBVUVlSUFScmRrRUNjeUFFUVFGMGEwSEhBR29pQVNBQlFUOVBHd3NpQVVFRWRDSUVRYURIQVdvMkFnUWdBeUFFUWFqSEFXb2lCQ2dDQURZQ0NDQUVJQU0yQWdBZ0F5Z0NDQ0FETmdJRVFhalBBVUdvendFcEF3QkNBU0FCcllhRU53TUFRUUVNQkF0QkFTQUJJQVZORFFFYUMwRUFDd3dCQ3lBRUlBRkJmSEZxUVFScklBRTJBZ0JCQVFzTkFScEJDQ0FIRUNVaUFVVU5BQ0FCSUFBZ0J5QUtLQUlBUVFocklnWWdCaUFIU3hzUUVob2dBQkFRSUFFaEJnc2dCZ3NMTndFQ2Z5TUFRUkJySWdFa0FDQUFCSDhnQVVFTWFrRVFJQUFRYkNFQVFRQWdBU2dDRENBQUd3VkJBQXNoQWlBQlFSQnFKQUFnQWdzWEFDQUFMUUFBUVNCeFJRUkFJQUVnQWlBQUVEMGFDd3U4QkFFRmZ5QUNJQUFvQWpBaUJVMEVRQ0FCSUFBb0FpUWdBaEFTR2lBQUlBQW9BaVFnQW1vMkFpUWdBQ0FBS0FJd0lBSnJOZ0l3SUFBZ0FDa0RPQ0FDclh3M0F6Z2dBZzhMSUFBdEFFUkJCSEVFUUNBQklBQW9BaVFnQlJBU0dpQUFLQUl3SVFFZ0FFRUFOZ0l3SUFBZ0FTQUFLQUlrYWpZQ0pDQUFJQUFwQXpnZ0FhMThOd000SUFWQmZ5QUZHdzhMQWtBZ0JRUkFJQUVnQUNnQ0pDQUZFQkloQkNBQUlBQW9BaUFpQnpZQ0pDQUFLQUl3SVFFZ0FFRUFOZ0l3SUFBZ0FDa0RPQ0FCclh3M0F6Z2dBaUFCYXlFQ0lBRWdCR29oQVF3QkN5QUFJQUFvQWlBaUJ6WUNKQXNDUUFKQUEwQUNRQ0FBS0FJQUlRUWdBQ2dDRUNFR0FrQWdBQ2dDUUNJSUlBSkxCRUFnQUNBSElBZ2dCQ0FHRVFBQUlnWTJBakFnQmtGL1JnUkFEQVlMSUFJZ0JrME5BaUFCSUFBb0FpUWdCaEFTR2lBQUlBQW9BaUFpQnpZQ0pDQUFLQUl3SVFRTUFRc2dBQ0FCSUFJZ0JDQUdFUUFBSWdRMkFqQWdCRUYvUmdSQURBVUxJQUlnQkUwTkF5QUFJQUFvQWlBaUJ6WUNKQ0FFSVFZTElBQkJBRFlDTUNBQUlBQXBBemdnQksxOE53TTRJQUVnQkdvaEFTQUNJQVJySVFJZ0JTQUdhaUVGREFFTEN5QUJJQUFvQWlRZ0FoQVNHaUFBSUFBb0FpUWdBbW8yQWlRZ0FDQUFLQUl3SUFKck5nSXdJQUFnQUNrRE9DQUNyWHczQXpnZ0FpQUZhZzhMSUFCQkFEWUNNQ0FBSUFBb0FpQTJBaVFnQUNBQUtRTTRJQVN0ZkRjRE9DQUVJQVZxRHdzZ0EwRUVRWnYxQUVFQUVBOGdBRUVBTmdJd0lBQWdBQ2dDUkVFRWNqWUNSQ0FGUVg4Z0JSc0xpd2NDRFg4QmZpQUFLQUlRSWdkQklFOEVRQ0FBS1FNSXB3OExBa0FnQUNnQ0dDSUNRUVJPQkVBZ0FDZ0NBQ0lCS0FJQUlRUWdBQ0FDUVFScklnVTJBaGdnQUNBQlFRUnFOZ0lBREFFTFFYOUJBQ0FBS0FJY0d5RUVJQUpCQUV3RVFDQUNJUVVNQVFzZ0FrRUJjU0VNSUFBb0FnQWhBUUpBSUFKQkFVWUVRQ0FCSVFZTUFRc2dBa0grLy8vL0IzRWhDZ05BSUFBZ0FVRUJhallDQUNBQkxRQUFJUWtnQUNBQlFRSnFJZ1kyQWdBZ0FDQUNRUUZyTmdJWUlBRXRBQUVoQVNBQUlBSkJBbXNpQWpZQ0dDQUVRZjhCSUFOMFFYOXpjU0FKSUFOMGNrR0EvZ01nQTNSQmYzTnhJQUVnQTBFSWNuUnlJUVFnQTBFUWFpRURJQVloQVNBRlFRSnFJZ1VnQ2tjTkFBc0xRUUFoQlNBTVJRMEFJQUFnQmtFQmFqWUNBQ0FHTFFBQUlRRWdBQ0FDUVFGck5nSVlJQVJCL3dFZ0EzUkJmM054SUFFZ0EzUnlJUVFMSUFBb0FoUWhBU0FBSUFSQkdIWWlDa0gvQVVZMkFoUWdBRUVIUVFnZ0FSc2lBVUVIUVFnZ0JFSC9BWEVpQmtIL0FVWWJhaUlDUVFkQkNDQUVRUWgyUWY4QmNTSURRZjhCUmh0cUlnbEJCMEVJSUFSQkVIWkIvd0Z4SWdSQi93RkdHeUFIYW1vaUNEWUNFQ0FBSUFBcEF3Z2dBeUFCZENBRUlBSjBjaUFLSUFsMGNpQUdjcTBnQjYyR2hDSU9Od01JSUFoQkgwMEVRQUpBSUFWQkJFNEVRQ0FBS0FJQUlnRW9BZ0FoQWlBQUlBVkJCR3MyQWhnZ0FDQUJRUVJxTmdJQURBRUxRUUFoQTBGL1FRQWdBQ2dDSEJzaEFpQUZRUUJNRFFBZ0JVRUJjU0VOSUFBb0FnQWhBUUpBSUFWQkFVWUVRQ0FCSVFRTUFRc2dCVUgrLy8vL0IzRWhDVUVBSVFZRFFDQUFJQUZCQVdvMkFnQWdBUzBBQUNFTElBQWdBVUVDYWlJRU5nSUFJQUFnQlVFQmF6WUNHQ0FCTFFBQklRRWdBQ0FGUVFKcklnVTJBaGdnQWtIL0FTQURkRUYvYzNFZ0N5QURkSEpCZ1A0RElBTjBRWDl6Y1NBQklBTkJDSEowY2lFQ0lBTkJFR29oQXlBRUlRRWdCa0VDYWlJR0lBbEhEUUFMQ3lBTlJRMEFJQUFnQkVFQmFqWUNBQ0FFTFFBQUlRRWdBQ0FGUVFGck5nSVlJQUpCL3dFZ0EzUkJmM054SUFFZ0EzUnlJUUlMSUFBZ0FrRVlkaUlCUWY4QlJqWUNGQ0FBUVFkQkNDQUtRZjhCUmhzaUJFRUhRUWdnQWtIL0FYRWlCa0gvQVVZYmFpSUZRUWRCQ0NBQ1FRaDJRZjhCY1NJRFFmOEJSaHRxSWdkQkIwRUlJQUpCRUhaQi93RnhJZ0pCL3dGR0d5QUlhbW8yQWhBZ0FDQURJQVIwSUFJZ0JYUnlJQUVnQjNSeUlBWnlyU0FJcllZZ0RvUWlEamNEQ0FzZ0RxY0xhd0VCZnlNQVFZQUNheUlGSkFBQ1FDQUNJQU5NRFFBZ0JFR0F3QVJ4RFFBZ0JTQUJJQUlnQTJzaUEwR0FBaUFEUVlBQ1NTSUJHeEFWR2lBQlJRUkFBMEFnQUNBRlFZQUNFQmtnQTBHQUFtc2lBMEgvQVVzTkFBc0xJQUFnQlNBREVCa0xJQVZCZ0FKcUpBQUxNUUFnQVFKL0lBSW9Ba3hCQUVnRVFDQUFJQUVnQWhBOURBRUxJQUFnQVNBQ0VEMExJZ0JHQkVBUEN5QUFJQUZ1R2dzWEFDQUFJQUVnQWlBRElBUWdCU0FHSUFkQkFSQW1HZ3VoQVFFRWZ5QUJRUUJNQkVCQkFBOExJQUFvQWd3aEFpQUFLQUlRSVFNRFFDQUJJUVVDUUNBRERRQWdBQ0FDUVFoMFFZRCtBM0VpQWpZQ0RDQUFRUWRCQ0NBQ1FZRCtBMFliSWdNMkFoQWdBQ2dDQ0NJQklBQW9BZ1JQRFFBZ0FDQUJRUUZxTmdJSUlBQWdBaUFCTFFBQWNpSUNOZ0lNQ3lBQUlBTkJBV3NpQXpZQ0VDQUNJQU4yUVFGeElBVkJBV3NpQVhRZ0JISWhCQ0FGUVFGTERRQUxJQVFMSGdBZ0FDZ0NEQVJBSUFCQkFEWUNLQU5BSUFBb0FoaEJBRW9OQUFzTEMyb0JBMzhnQUFSQUlBQW9BaGdpQVFSQUlBQW9BaEFpQWdSL1FRQWhBUU5BSUFBb0FoZ2dBVUUwYkdvb0Fpd2lBd1JBSUFNUUVDQUFLQUlRSVFJTElBRkJBV29pQVNBQ1NRMEFDeUFBS0FJWUJTQUJDeEFRQ3lBQUtBSWNJZ0VFUUNBQkVCQUxJQUFRRUFzTGtoVUJEMzhDUUFKQUlBQW9BZ3hGQkVCQkFTRVBJQUFvQWdSQkFFb05BU0FBS0FJSVFRRktEUUVNQWd0QkFTRU5JQUFvQWdoQkFFb05BQ0FBS0FJRVFRSklEUUVMSUFBb0FnQWlDQ0FOUVFWMGFpRUVBa0FnQUNnQ0VDSUhJQUFvQWhRaUNrOE5BQ0FFSUFkQkJuUnFJUUVDUUNBS0lBZHJRUU54SWdaRkJFQWdCeUVDREFFTElBY2hBZ05BSUFFZ0FmMEFCQUQ5REZoMm5UOVlkcDAvV0hhZFAxaDJuVC85NWdIOUN3UUFJQUVnQWYwQUJCRDlERmgyblQ5WWRwMC9XSGFkUDFoMm5ULzk1Z0g5Q3dRUUlBRkJRR3NoQVNBQ1FRRnFJUUlnQTBFQmFpSURJQVpIRFFBTEN5QUhJQXByUVh4TERRQURRQ0FCSUFIOUFBUUEvUXhZZHAwL1dIYWRQMWgyblQ5WWRwMC8vZVlCL1FzRUFDQUJJQUg5QUFRUS9ReFlkcDAvV0hhZFAxaDJuVDlZZHAwLy9lWUIvUXNFRUNBQklBSDlBQVJBL1F4WWRwMC9XSGFkUDFoMm5UOVlkcDAvL2VZQi9Rc0VRQ0FCSUFIOUFBUlEvUXhZZHAwL1dIYWRQMWgyblQ5WWRwMC8vZVlCL1FzRVVDQUJJQUg5QUFTQUFmME1XSGFkUDFoMm5UOVlkcDAvV0hhZFAvM21BZjBMQklBQklBRWdBZjBBQkpBQi9ReFlkcDAvV0hhZFAxaDJuVDlZZHAwLy9lWUIvUXNFa0FFZ0FTQUIvUUFFd0FIOURGaDJuVDlZZHAwL1dIYWRQMWgyblQvOTVnSDlDd1RBQVNBQklBSDlBQVRRQWYwTVdIYWRQMWgyblQ5WWRwMC9XSGFkUC8zbUFmMExCTkFCSUFGQmdBSnFJUUVnQWtFRWFpSUNJQXBIRFFBTEN5QUlJQTlCQlhScUlRVUNRQ0FBS0FJWUlnWWdBQ2dDSENJTFR3MEFJQVVnQmtFR2RHb2hBUUpBSUFzZ0JtdEJBM0VpQ0VVRVFDQUdJUUlNQVF0QkFDRURJQVloQWdOQUlBRWdBZjBBQkFEOURBQVkwRDhBR05BL0FCalFQd0FZMEQvOTVnSDlDd1FBSUFFZ0FmMEFCQkQ5REFBWTBEOEFHTkEvQUJqUVB3QVkwRC85NWdIOUN3UVFJQUZCUUdzaEFTQUNRUUZxSVFJZ0EwRUJhaUlESUFoSERRQUxDeUFHSUF0clFYeExEUUFEUUNBQklBSDlBQVFBL1F3QUdOQS9BQmpRUHdBWTBEOEFHTkEvL2VZQi9Rc0VBQ0FCSUFIOUFBUVEvUXdBR05BL0FCalFQd0FZMEQ4QUdOQS8vZVlCL1FzRUVDQUJJQUg5QUFSQS9Rd0FHTkEvQUJqUVB3QVkwRDhBR05BLy9lWUIvUXNFUUNBQklBSDlBQVJRL1F3QUdOQS9BQmpRUHdBWTBEOEFHTkEvL2VZQi9Rc0VVQ0FCSUFIOUFBU0FBZjBNQUJqUVB3QVkwRDhBR05BL0FCalFQLzNtQWYwTEJJQUJJQUVnQWYwQUJKQUIvUXdBR05BL0FCalFQd0FZMEQ4QUdOQS8vZVlCL1FzRWtBRWdBU0FCL1FBRXdBSDlEQUFZMEQ4QUdOQS9BQmpRUHdBWTBELzk1Z0g5Q3dUQUFTQUJJQUg5QUFUUUFmME1BQmpRUHdBWTBEOEFHTkEvQUJqUVAvM21BZjBMQk5BQklBRkJnQUpxSVFFZ0FrRUVhaUlDSUF0SERRQUxDeUFLSUFBb0FnZ2lDU0FBS0FJRUlnNGdEV3NpQUNBQUlBbEtHeUlJSUFnZ0Nrc2JJUXdnQkVFZ2FpRUJBbjhnQjBVRVFDQU1SUVJBUVFBaEF5QUJEQUlMSUFRZ0JQMEFCQUFnQmYwQUJBQWdCUDBBQkNEOTVBSDlERlVUNHo1VkUrTStWUlBqUGxVVDR6Nzk1Z0g5NVFIOUN3UUFJQVFnQlAwQUJCQWdCZjBBQkJBZ0JQMEFCREQ5NUFIOURGVVQ0ejVWRStNK1ZSUGpQbFVUNHo3OTVnSDk1UUg5Q3dRUVFRRWhBeUFFUWVBQWFnd0JDeUFCSUFjaUEwRUdkR29MSVFJZ0F5QU1TUVJBQTBBZ0FrRWdheUlBSUFEOUFBUUFJQUpCUUdyOUFBUUFJQUw5QUFRQS9lUUIvUXhWRStNK1ZSUGpQbFVUNHo1VkUrTSsvZVlCL2VVQi9Rc0VBQ0FDUVJCcklnQWdBUDBBQkFBZ0FrRXdhLzBBQkFBZ0F2MEFCQkQ5NUFIOURGVVQ0ejVWRStNK1ZSUGpQbFVUNHo3OTVnSDk1UUg5Q3dRQUlBSkJRR3NoQWlBRFFRRnFJZ01nREVjTkFBc0xJQWdnQ2s4aURVVUVRQ0FDUVNCcklnQWdBUDBBQkFBZ0FrRkFhdjBBQkFEOURGVVRZejlWRTJNL1ZSTmpQMVVUWXovOTVnSDk1UUg5Q3dRQUlBSkJFR3NpQUNBQS9RQUVBQ0FDUVRCci9RQUVBUDBNVlJOalAxVVRZejlWRTJNL1ZSTmpQLzNtQWYzbEFmMExCQUFMSUFzZ0RpQUpJQTlySWdBZ0FDQU9TaHNpRGlBTElBNUpHeUVKSUFWQklHb2hBaUFKQW44Z0JrVUVRQ0FKUlFSQUlBSWhBMEVBREFJTElBVWdCZjBBQkFBZ0JQMEFCQUFnQmYwQUJDRDk1QUg5REhZR1lqOTJCbUkvZGdaaVAzWUdZai85NWdIOTVRSDlDd1FBSUFVZ0JmMEFCQkFnQlAwQUJCQWdCZjBBQkREOTVBSDlESFlHWWo5MkJtSS9kZ1ppUDNZR1lqLzk1Z0g5NVFIOUN3UVFJQVZCNEFCcUlRTkJBUXdCQ3lBQ0lBWkJCblJxSVFNZ0Jnc2lBRXNFUUFOQUlBTkJJR3NpQ0NBSS9RQUVBQ0FEUVVCcS9RQUVBQ0FEL1FBRUFQM2tBZjBNZGdaaVAzWUdZajkyQm1JL2RnWmlQLzNtQWYzbEFmMExCQUFnQTBFUWF5SUlJQWo5QUFRQUlBTkJNR3Y5QUFRQUlBUDlBQVFRL2VRQi9ReDJCbUkvZGdaaVAzWUdZajkyQm1JLy9lWUIvZVVCL1FzRUFDQURRVUJySVFNZ0FFRUJhaUlBSUFsSERRQUxDeUFMSUE1TklnaEZCRUFnQTBFZ2F5SUFJQUQ5QUFRQUlBTkJRR3I5QUFRQS9ReDJCdUkvZGdiaVAzWUc0ajkyQnVJLy9lWUIvZVVCL1FzRUFDQURRUkJySWdBZ0FQMEFCQUFnQTBFd2EvMEFCQUQ5REhZRzRqOTJCdUkvZGdiaVAzWUc0ai85NWdIOTVRSDlDd1FBQ3dKQUlBZEZCRUFnREVVRVFFRUFJUWNNQWdzZ0JDQUUvUUFFQUNBRi9RQUVBQ0FFL1FBRUlQM2tBZjBNcmdGWlBhNEJXVDJ1QVZrOXJnRlpQZjNtQWYza0FmMExCQUFnQkNBRS9RQUVFQ0FGL1FBRUVDQUUvUUFFTVAza0FmME1yZ0ZaUGE0QldUMnVBVms5cmdGWlBmM21BZjNrQWYwTEJCQWdCRUhnQUdvaEFVRUJJUWNNQVFzZ0FTQUhRUVowYWlFQkN5QUhJQXhKQkVBRFFDQUJRU0JySWdBZ0FQMEFCQUFnQVVGQWF2MEFCQUFnQWYwQUJBRDk1QUg5REs0QldUMnVBVms5cmdGWlBhNEJXVDM5NWdIOTVBSDlDd1FBSUFGQkVHc2lBQ0FBL1FBRUFDQUJRVEJyL1FBRUFDQUIvUUFFRVAza0FmME1yZ0ZaUGE0QldUMnVBVms5cmdGWlBmM21BZjNrQWYwTEJBQWdBVUZBYXlFQklBZEJBV29pQnlBTVJ3MEFDd3NnRFVVRVFDQUJRU0JySWdBZ0FQMEFCQUFnQVVGQWF2MEFCQUQ5REs0QjJUMnVBZGs5cmdIWlBhNEIyVDM5NWdIOTVBSDlDd1FBSUFGQkVHc2lBQ0FBL1FBRUFDQUJRVEJyL1FBRUFQME1yZ0haUGE0QjJUMnVBZGs5cmdIWlBmM21BZjNrQWYwTEJBQUxBa0FnQmtVRVFDQUpSUVJBUVFBaEJnd0NDeUFGSUFYOUFBUUFJQVQ5QUFRQUlBWDlBQVFnL2VRQi9ReHpCc3MvY3diTFAzTUd5ejl6QnNzLy9lWUIvZVFCL1FzRUFDQUZJQVg5QUFRUUlBVDlBQVFRSUFYOUFBUXcvZVFCL1F4ekJzcy9jd2JMUDNNR3l6OXpCc3MvL2VZQi9lUUIvUXNFRUNBRlFlQUFhaUVDUVFFaEJnd0JDeUFDSUFaQkJuUnFJUUlMSUFZZ0NVa0VRQU5BSUFKQklHc2lBQ0FBL1FBRUFDQUNRVUJxL1FBRUFDQUMvUUFFQVAza0FmME1jd2JMUDNNR3l6OXpCc3MvY3diTFAvM21BZjNrQWYwTEJBQWdBa0VRYXlJQUlBRDlBQVFBSUFKQk1HdjlBQVFBSUFMOUFBUVEvZVFCL1F4ekJzcy9jd2JMUDNNR3l6OXpCc3MvL2VZQi9lUUIvUXNFQUNBQ1FVQnJJUUlnQmtFQmFpSUdJQWxIRFFBTEN5QUlEUUFnQWtFZ2F5SUFJQUQ5QUFRQUlBSkJRR3I5QUFRQS9ReHpCa3RBY3daTFFITUdTMEJ6Qmt0QS9lWUIvZVFCL1FzRUFDQUNRUkJySWdBZ0FQMEFCQUFnQWtFd2EvMEFCQUQ5REhNR1MwQnpCa3RBY3daTFFITUdTMEQ5NWdIOTVBSDlDd1FBQ3d0ZEFRUi9JQUFFUUNBQUtBSVVJZ0VnQUNnQ0VDSUNiQVJBQTBBZ0FDZ0NHQ0FEUVFKMGFpZ0NBQ0lFQkVBZ0JCQVFJQUFvQWhBaEFpQUFLQUlVSVFFTElBTkJBV29pQXlBQklBSnNTUTBBQ3dzZ0FDZ0NHQkFRSUFBUUVBc0xoUUVCQW44Q1FBSkFJQUFvQWdRaUF5QUFLQUlBSWdSSEJFQWdBQ2dDQ0NFRERBRUxJQUFnQTBFS2FpSUVOZ0lFSUFBb0FnZ2dCRUVDZEJBWElnTkZEUUVnQUNBRE5nSUlJQUFvQWdBaEJBc2dBeUFFUVFKMGFpQUJOZ0lBSUFBZ0JFRUJhallDQUVFQkR3c2dBQ2dDQ0JBUUlBQkNBRGNDQUNBQ1FRRkIwaTVCQUJBUFFRQUxrd1FDQm44Q2ZnSkFBa0FEUUNBQUlBQkJBV3R4RFFFZ0FVRkhTdzBCSUFCQkNDQUFRUWhMSWdjYklRQkJxTThCS1FNQUlnZ0NmMEVJSUFGQkEycEJmSEVnQVVFSVRSc2lBVUgvQUUwRVFDQUJRUU4yUVFGckRBRUxJQUZuSVFNZ0FVRWRJQU5yZGtFRWN5QURRUUowYTBIdUFHb2dBVUgvSDAwTkFCcEJQeUFCUVI0Z0EydDJRUUp6SUFOQkFYUnJRY2NBYWlJRElBTkJQMDhiQ3lJRHJZZ2lDVUlBVWdSQUEwQWdDU0FKZWlJSWlDRUpBbjRnQXlBSXAyb2lBMEVFZENJRVFhakhBV29vQWdBaUFpQUVRYURIQVdvaUJVY0VRQ0FDSUFBZ0FSQThJZ1FOQmlBQ0tBSUVJZ1FnQWlnQ0NDSUdOZ0lJSUFZZ0JEWUNCQ0FDSUFVMkFnZ2dBaUFGS0FJRU5nSUVJQVVnQWpZQ0JDQUNLQUlFSUFJMkFnZ2dBMEVCYWlFRElBbENBWWdNQVF0QnFNOEJRYWpQQVNrREFFSitJQU90aVlNM0F3QWdDVUlCaFFzaUNVSUFVZzBBQzBHb3p3RXBBd0FoQ0F0QlB5QUllYWRySVFVQ1FDQUlVQVJBUVFBaEFnd0JDeUFGUVFSMElnUkJxTWNCYWlnQ0FDRUNJQWhDZ0lDQWdBUlVEUUJCNHdBaEF5QUNJQVJCb01jQmFpSUdSZzBBQTBBZ0EwVU5BU0FDSUFBZ0FSQThJZ1FOQkNBRFFRRnJJUU1nQWlnQ0NDSUNJQVpIRFFBTEN5QUJJQUJCTUdwQk1DQUhHMm9RYlEwQUN5QUNSUTBBSUFJZ0JVRUVkRUdneHdGcUlnTkdEUUFEUUNBQ0lBQWdBUkE4SWdRTkFpQUNLQUlJSWdJZ0EwY05BQXNMUVFBaEJBc2dCQXZhSXdJcmZ3TjdBa0FnQUNnQ0FDSUpJQU5KRFFBZ0FTQURUdzBBSUFFZ0NVOE5BQ0FBS0FJRUlna2dCRWtOQUNBQ0lBUlBEUUFnQWlBSlR3MEFJQVZCSEdzaEp5QUFLQUlJSWhsQkFuUWhFU0FIUVFKMElROGdCa0VDZENFZklBVkJCR3NoS0NBQ0lBQW9BZ3h1SVI0Z0dTQVpJQUVnR1c0aUtXd2dBV3RxSVNvZ0JrRUlSeUVqSUFJaEhRTkFJQUFvQWd3aUNTRUtJQUlnSFVZRVFDQUpJQUlnQ1hCcklRb0xJQW9nQkNBZGF5SU1JQW9nREVrYkloTkJmSEVoR3lBVFFRTnhJUllnRTBGNGNTRXJJQk5CQjNFaEpDQVRRUUZySVJvZ0dTQUpRUUowSUFwQkFuUnJRUVJxYkNFZ0lBWkJBa1lnRTBFQlJuRWhMQ0FKSUFwcklCbHNJU1VnSnlBUElCMGdBbXNpREd3aUNXb2hKaUFKSUNocUlTMGdCU0FKYWlFdUlBVWdCeUFNYkVFQ2RHb2hIQ0FwSVNFZ0FTRVlBMEFnS2lBWklBRWdHRVliSWd3Z0F5QVlheUlKSUFrZ0RFc2JJUkFnR1NBTWF5RUpJQ0ZCQW5RaURTQUFLQUlZSUFBb0FoQWdIbXhCQW5ScWFpZ0NBQ0VTQWtBQ1FDQUlCRUFDUUFKQUFrQUNRQUpBSUJJRVFDQVNJQ1ZCQW5ScUlBbEJBblJxSVFvZ0dDQUJheUVOSUFaQkFVWU5CQ0FjSUFZZ0RXeEJBblJxSVFzZ0VFRUJSZzBESUN3TkFpQWpEUUVnRUVFSFRRMEJJQk5GRFFnZ0ppQU5JQjlzYWlBUVFRVjBhaUVWSUJJZ0lDQVFRUUowYWlBTVFRSjBhMm9oSWlBUVFYeHhJUTFCQUNFU0RBVUxJQVpCQVVjRVFDQVRSUTBJSUJCQmZIRWhEU0FRUVFOeElRd2dIQ0FZSUFGcklBWnNRUUowYWlFTFFRQWhFaUFRUVFGclFRTkpJUlFEUUFKQUlCQkZEUUJCQUNFSlFRQWhDa0VBSVE0Z0ZFVUVRQU5BSUFzZ0JpQUtiRUVDZEdwQkFEWUNBQ0FMSUFwQkFYSWdCbXhCQW5ScVFRQTJBZ0FnQ3lBS1FRSnlJQVpzUVFKMGFrRUFOZ0lBSUFzZ0NrRURjaUFHYkVFQ2RHcEJBRFlDQUNBS1FRUnFJUW9nRGtFRWFpSU9JQTFIRFFBTEN5QU1SUTBBQTBBZ0N5QUdJQXBzUVFKMGFrRUFOZ0lBSUFwQkFXb2hDaUFKUVFGcUlna2dERWNOQUFzTElBc2dEMm9oQ3lBVElCSkJBV29pRWtjTkFBc01DQXNnRTBVTkJ5QVFRUUowSVF3Z0hDQVlJQUZyUVFKMGFpRUxRUUFoQ1NBYVFRZFBCRUFEUUNBTFFRQWdEQkFWSUE5cVFRQWdEQkFWSUE5cVFRQWdEQkFWSUE5cVFRQWdEQkFWSUE5cVFRQWdEQkFWSUE5cVFRQWdEQkFWSUE5cVFRQWdEQkFWSUE5cVFRQWdEQkFWSUE5cUlRc2dDVUVJYWlJSklDdEhEUUFMQzBFQUlRa2dKRVVOQndOQUlBdEJBQ0FNRUJVZ0Qyb2hDeUFKUVFGcUlna2dKRWNOQUFzTUJ3c2dFMFVOQmlBUVFYeHhJUlFnRUVFRGNTRVNRUUFoRFNBUVFRRnJRUU5KSVJjTUJRdEJBQ0VKSUJCQmZIRWlEZ1JBQTBBZ0N5QUpRUU4wYWlBS0lBbEJBblJxS0FJQU5nSUFJQXNnQ1VFQmNpSVVRUU4wYWlBS0lCUkJBblJxS0FJQU5nSUFJQXNnQ1VFQ2NpSVVRUU4wYWlBS0lCUkJBblJxS0FJQU5nSUFJQXNnQ1VFRGNpSVVRUU4wYWlBS0lCUkJBblJxS0FJQU5nSUFJQWxCQkdvaUNTQU9TUTBBQ3dzZ0NTQVFUdzBGQWtBZ0VDQUpheUlVUVJCSkRRQWdMaUFOSUI5c0lnMXFJQWxCQTNScUlCSWdJR29pRGlBUUlBeHJRUUowYWtrRVFDQU9JQWtnREd0QkFuUnFJQTBnTFdvZ0VFRURkR3BKRFFFTElBb2dDVUVDZEdvaERTQUovUkg5REFBQUFBQUJBQUFBQWdBQUFBTUFBQUQ5cmdFaE5DQUpJQlJCZkhFaURHb2hDVUVBSVE0RFFDQUxJRFJCQWYyckFTSTEvUnNBUVFKMGFpQU5JQTVCQW5ScS9RQUNBQ0kyL1ZvQ0FBQWdDeUExL1JzQlFRSjBhaUEyL1ZvQ0FBRWdDeUExL1JzQ1FRSjBhaUEyL1ZvQ0FBSWdDeUExL1JzRFFRSjBhaUEyL1ZvQ0FBTWdOUDBNQkFBQUFBUUFBQUFFQUFBQUJBQUFBUDJ1QVNFMElBNUJCR29pRGlBTVJ3MEFDeUFNSUJSR0RRWUxRUUFoRENBSklRNGdFQ0FKYTBFRGNTSU5CRUFEUUNBTElBNUJBM1JxSUFvZ0RrRUNkR29vQWdBMkFnQWdEa0VCYWlFT0lBeEJBV29pRENBTlJ3MEFDd3NnQ1NBUWEwRjhTdzBGQTBBZ0N5QU9RUU4wYWlBS0lBNUJBblJxS0FJQU5nSUFJQXNnRGtFQmFpSUpRUU4wYWlBS0lBbEJBblJxS0FJQU5nSUFJQXNnRGtFQ2FpSUpRUU4wYWlBS0lBbEJBblJxS0FJQU5nSUFJQXNnRGtFRGFpSUpRUU4wYWlBS0lBbEJBblJxS0FJQU5nSUFJQTVCQkdvaURpQVFSdzBBQ3d3RkN5QVRSUTBFUVFBaENTQWFRUU5QQkVBRFFDQUxJQW9vQWdBMkFnQWdDeUFQYWlJTUlBb2dFV29pRFNnQ0FEWUNBQ0FNSUE5cUlnd2dEU0FSYWlJTktBSUFOZ0lBSUF3Z0Qyb2lEQ0FOSUJGcUlnMG9BZ0EyQWdBZ0RTQVJhaUVLSUF3Z0Qyb2hDeUFKUVFScUlna2dHMGNOQUFzTFFRQWhDU0FXUlEwRUEwQWdDeUFLS0FJQU5nSUFJQW9nRVdvaENpQUxJQTlxSVFzZ0NVRUJhaUlKSUJaSERRQUxEQVFMSUJ3Z0RVRUNkR29oQ3lBUVFRUkhCRUFnRTBVTkJDQVFRUUowSVFsQkFDRU9JQnBCQTA4RVFBTkFJQXNnQ2lBSkVCSWhNQ0FLSUJGcUlnMGdFV29pQ3lBUmFpSVNJQkZxSVFvZ01DQVBhaUFOSUFrUUVpQVBhaUFMSUFrUUVpQVBhaUFTSUFrUUVpQVBhaUVMSUE1QkJHb2lEaUFiUncwQUN3dEJBQ0VPSUJaRkRRUURRQ0FMSUFvZ0NSQVNJVEVnQ2lBUmFpRUtJREVnRDJvaEN5QU9RUUZxSWc0Z0ZrY05BQXNNQkFzZ0UwVU5BMEVBSVFrZ0drRURUd1JBQTBBZ0N5QUsvUUFDQVAwTEFnQWdDeUFQYWlJTUlBb2dFV29pRGYwQUFnRDlDd0lBSUF3Z0Qyb2lEQ0FOSUJGcUlnMzlBQUlBL1FzQ0FDQU1JQTlxSWd3Z0RTQVJhaUlOL1FBQ0FQMExBZ0FnRFNBUmFpRUtJQXdnRDJvaEN5QUpRUVJxSWdrZ0cwY05BQXNMUVFBaENTQVdSUTBEQTBBZ0N5QUsvUUFDQVAwTEFnQWdDaUFSYWlFS0lBc2dEMm9oQ3lBSlFRRnFJZ2tnRmtjTkFBc01Bd3NEUUVFQUlRa2dEUVJBQTBBZ0N5QUpRUVYwYWlBS0lBbEJBblJxS0FJQU5nSUFJQXNnQ1VFQmNpSU1RUVYwYWlBS0lBeEJBblJxS0FJQU5nSUFJQXNnQ1VFQ2NpSU1RUVYwYWlBS0lBeEJBblJxS0FJQU5nSUFJQXNnQ1VFRGNpSU1RUVYwYWlBS0lBeEJBblJxS0FJQU5nSUFJQWxCQkdvaUNTQU5TUTBBQ3dzQ1FDQUpJQkJQRFFBQ1FDQVFJQWxySWhSQkNFOEVRQUpBSUFzZ0NVRUZkR29nSWlBUklCSnNhazhOQUNBS0lBbEJBblJxSUJVZ0R5QVNiR3BQRFFBZ0NTRU1EQUlMSUFuOUVmME1BQUFBQUFFQUFBQUNBQUFBQXdBQUFQMnVBU0UwSUFrZ0ZFRjhjU0lYYWlFTVFRQWhEZ05BSUFzZ05FRUQvYXNCSWpYOUd3QkJBblJxSUFvZ0NTQU9ha0VDZEdyOUFBSUFJamI5V2dJQUFDQUxJRFg5R3dGQkFuUnFJRGI5V2dJQUFTQUxJRFg5R3dKQkFuUnFJRGI5V2dJQUFpQUxJRFg5R3dOQkFuUnFJRGI5V2dJQUF5QTAvUXdFQUFBQUJBQUFBQVFBQUFBRUFBQUEvYTRCSVRRZ0RrRUVhaUlPSUJkSERRQUxJQlFnRjBZTkFnd0JDeUFKSVF3TFFRQWhEaUFRSUF3aUNXdEJBM0VpRkFSQUEwQWdDeUFKUVFWMGFpQUtJQWxCQW5ScUtBSUFOZ0lBSUFsQkFXb2hDU0FPUVFGcUlnNGdGRWNOQUFzTElBd2dFR3RCZkVzTkFBTkFJQXNnQ1VFRmRHb2dDaUFKUVFKMGFpZ0NBRFlDQUNBTElBbEJBV29pREVFRmRHb2dDaUFNUVFKMGFpZ0NBRFlDQUNBTElBbEJBbW9pREVFRmRHb2dDaUFNUVFKMGFpZ0NBRFlDQUNBTElBbEJBMm9pREVFRmRHb2dDaUFNUVFKMGFpZ0NBRFlDQUNBSlFRUnFJZ2tnRUVjTkFBc0xJQW9nRVdvaENpQUxJQTlxSVFzZ0V5QVNRUUZxSWhKSERRQUxEQUlMSUJKRkJFQkJBU0FBS0FJSUlBQW9BZ3hzUVFKMEVCTWlFa1VFUUVFQUR3c2dBQ2dDR0NBQUtBSVFJQjVzUVFKMGFpQU5haUFTTmdJQUN5QVNJQ1ZCQW5ScUlBbEJBblJxSVFzZ0dDQUJheUVKQWtBQ1FBSkFBa0FnQmtFQlJ3UkFJQndnQmlBSmJFRUNkR29oQ2lBUVFRRkdEUUVnSXcwQ0lCQkJCMDBOQWlBVFJRMEdJQ1lnQ1NBZmJHb2dFRUVGZEdvaElpQWdJQkJCQW5ScUlBeEJBblJySVM4Z0VFRjhjU0VVUVFBaERBTkFRUUFoQ1NBVUJFQURRQ0FMSUFsQkFuUnFJQW9nQ1VFRmRHb29BZ0EyQWdBZ0N5QUpRUUZ5SWcxQkFuUnFJQW9nRFVFRmRHb29BZ0EyQWdBZ0N5QUpRUUp5SWcxQkFuUnFJQW9nRFVFRmRHb29BZ0EyQWdBZ0N5QUpRUU55SWcxQkFuUnFJQW9nRFVFRmRHb29BZ0EyQWdBZ0NVRUVhaUlKSUJSSkRRQUxDd0pBSUFrZ0VFOE5BQUpBSUJBZ0NXc2lGMEVJVHdSQUFrQWdDeUFKUVFKMGFpQWlJQXdnRDJ4cVR3MEFJQW9nQ1VFRmRHb2dFaUF2SUF3Z0VXeHFhazhOQUNBSklRME1BZ3NnQ2YwUi9Rd0FBQUFBQVFBQUFBSUFBQUFEQUFBQS9hNEJJVFFnQ1NBWFFYeHhJaFZxSVExQkFDRU9BMEFnQ3lBSklBNXFRUUowYWlBS0lEUkJBLzJyQVNJMS9Sc0RRUUowYWlBS0lEWDlHd0pCQW5ScUlBb2dOZjBiQVVFQ2RHb2dDaUExL1JzQVFRSjBhdjBKQWdEOVZnSUFBZjFXQWdBQy9WWUNBQVA5Q3dJQUlEVDlEQVFBQUFBRUFBQUFCQUFBQUFRQUFBRDlyZ0VoTkNBT1FRUnFJZzRnRlVjTkFBc2dGU0FYUmcwQ0RBRUxJQWtoRFF0QkFDRU9JQkFnRFNJSmEwRURjU0lYQkVBRFFDQUxJQWxCQW5ScUlBb2dDVUVGZEdvb0FnQTJBZ0FnQ1VFQmFpRUpJQTVCQVdvaURpQVhSdzBBQ3dzZ0RTQVFhMEY4U3cwQUEwQWdDeUFKUVFKMGFpQUtJQWxCQlhScUtBSUFOZ0lBSUFzZ0NVRUJhaUlOUVFKMGFpQUtJQTFCQlhScUtBSUFOZ0lBSUFzZ0NVRUNhaUlOUVFKMGFpQUtJQTFCQlhScUtBSUFOZ0lBSUFzZ0NVRURhaUlOUVFKMGFpQUtJQTFCQlhScUtBSUFOZ0lBSUFsQkJHb2lDU0FRUncwQUN3c2dDeUFSYWlFTElBb2dEMm9oQ2lBVElBeEJBV29pREVjTkFBc01CZ3NnSENBSlFRSjBhaUVLSUJCQkJFWU5BaUFUUlEwRklCQkJBblFoQ1VFQUlRNGdHa0VEVHdSQUEwQWdDeUFLSUFrUUVpRXlJQW9nRDJvaURTQVBhaUlMSUE5cUloSWdEMm9oQ2lBeUlCRnFJQTBnQ1JBU0lCRnFJQXNnQ1JBU0lCRnFJQklnQ1JBU0lCRnFJUXNnRGtFRWFpSU9JQnRIRFFBTEMwRUFJUTRnRmtVTkJRTkFJQXNnQ2lBSkVCSWhNeUFLSUE5cUlRb2dNeUFSYWlFTElBNUJBV29pRGlBV1J3MEFDd3dGQ3lBVFJRMEVRUUFoQ1NBYVFRTlBCRUFEUUNBTElBb29BZ0EyQWdBZ0N5QVJhaUlNSUFvZ0Qyb2lEU2dDQURZQ0FDQU1JQkZxSWd3Z0RTQVBhaUlOS0FJQU5nSUFJQXdnRVdvaURDQU5JQTlxSWcwb0FnQTJBZ0FnRENBUmFpRUxJQTBnRDJvaENpQUpRUVJxSWdrZ0cwY05BQXNMUVFBaENTQVdSUTBFQTBBZ0N5QUtLQUlBTmdJQUlBc2dFV29oQ3lBS0lBOXFJUW9nQ1VFQmFpSUpJQlpIRFFBTERBUUxJQk5GRFFNZ0VFRjhjU0VVSUJCQkEzRWhFa0VBSVEwZ0VFRUJhMEVEU1NFWERBRUxJQk5GRFFKQkFDRUpJQnBCQTA4RVFBTkFJQXNnQ3YwQUFnRDlDd0lBSUFzZ0VXb2lEQ0FLSUE5cUlnMzlBQUlBL1FzQ0FDQU1JQkZxSWd3Z0RTQVBhaUlOL1FBQ0FQMExBZ0FnRENBUmFpSU1JQTBnRDJvaURmMEFBZ0Q5Q3dJQUlBMGdEMm9oQ2lBTUlCRnFJUXNnQ1VFRWFpSUpJQnRIRFFBTEMwRUFJUWtnRmtVTkFnTkFJQXNnQ3YwQUFnRDlDd0lBSUFvZ0Qyb2hDaUFMSUJGcUlRc2dDVUVCYWlJSklCWkhEUUFMREFJTEEwQUNRQ0FRUlEwQVFRQWhEa0VBSVFsQkFDRU1JQmRGQkVBRFFDQUxJQWxCQW5ScUlBb2dCaUFKYkVFQ2RHb29BZ0EyQWdBZ0N5QUpRUUZ5SWhWQkFuUnFJQW9nQmlBVmJFRUNkR29vQWdBMkFnQWdDeUFKUVFKeUloVkJBblJxSUFvZ0JpQVZiRUVDZEdvb0FnQTJBZ0FnQ3lBSlFRTnlJaFZCQW5ScUlBb2dCaUFWYkVFQ2RHb29BZ0EyQWdBZ0NVRUVhaUVKSUF4QkJHb2lEQ0FVUncwQUN3c2dFa1VOQUFOQUlBc2dDVUVDZEdvZ0NpQUdJQWxzUVFKMGFpZ0NBRFlDQUNBSlFRRnFJUWtnRGtFQmFpSU9JQkpIRFFBTEN5QUxJQkZxSVFzZ0NpQVBhaUVLSUJNZ0RVRUJhaUlOUncwQUN3d0JDd05BQWtBZ0VFVU5BRUVBSVE1QkFDRUpRUUFoRENBWFJRUkFBMEFnQ3lBR0lBbHNRUUowYWlBS0lBbEJBblJxS0FJQU5nSUFJQXNnQ1VFQmNpSVZJQVpzUVFKMGFpQUtJQlZCQW5ScUtBSUFOZ0lBSUFzZ0NVRUNjaUlWSUFac1FRSjBhaUFLSUJWQkFuUnFLQUlBTmdJQUlBc2dDVUVEY2lJVklBWnNRUUowYWlBS0lCVkJBblJxS0FJQU5nSUFJQWxCQkdvaENTQU1RUVJxSWd3Z0ZFY05BQXNMSUJKRkRRQURRQ0FMSUFZZ0NXeEJBblJxSUFvZ0NVRUNkR29vQWdBMkFnQWdDVUVCYWlFSklBNUJBV29pRGlBU1J3MEFDd3NnQ2lBUmFpRUtJQXNnRDJvaEN5QU5RUUZxSWcwZ0UwY05BQXNMSUNGQkFXb2hJU0FRSUJocUloZ2dBMGtOQUFzZ0hrRUJhaUVlSUJNZ0hXb2lIU0FFU1EwQUN3dEJBUXZETXdVbWZ3OStBWHNCZlFGOEl3QkIwQUJySWc0a0FDQU9RWkQvQXpZQ0tDQUFLQUpzSUFBb0FtaHNJUmNDZndKQUFrQUNRQ0FBS0FJSUlndEJDRWNFUUVFQUlBdEJnQUpIRFFRYUlBNUIyZjhETmdJb0RBRUxJQUF0QUVSQkFYRU5BQ0FYUVFGeElTSWdGMEY4Y1NFUElCZEJBV3V0UW93c2ZpSXhRaUNJcDBFQVJ5RWpJREduSVNRZ0RrSE5BR29oSlNBT1Fjd0FhaUVvSUE1QnlBQnFJU2tnRjBFa1NTRXFRWkQvQXlFTEFrQUNRQUpBQTBBQ1FDQUxRWlAvQTBZTkFBSkFBMEFnQ1NrRENDSXhVQVIrUWdBRklERWdDU2tET0gwTFVBUkFJQUJCd0FBMkFnZ01Bd3NnQ1NBQUtBSVFRUUlnQ2hBYVFRSkhCRUFnQ2tFQlFaWVNRUUFRRDBFQURBc0xJQUFvQWhBZ0RrRWtha0VDRUJFZ0RpZ0NKQ0lMUVFGTkJFQWdDa0VCUVljdVFRQVFEMEVBREFzTEFrQWdEaWdDS0VHQWdRSkdCRUFnQ1NrRENDSXhVQVIrUWdBRklERWdDU2tET0gwTFVBMEJJQTRvQWlRaEN3c2dBQ2dDQ0NJVVFSQnhCRUFnQUNBQUtBSVlJQXRyUVFKck5nSVlDeUFPSUF0QkFtc2lFallDSkVIZ3ZRRWhEQ0FPS0FJb0lRMERRQ0FNSWdzb0FnQWlHQVJBSUF0QkRHb2hEQ0FOSUJoSERRRUxDeUFMS0FJRUlCUnhSUVJBSUFwQkFVSDhLRUVBRUE5QkFBd01Dd0pBSUFBb0FoUWdFazhFUUNBQUtBSVFJUXdNQVFzZ0NTa0RDQ0l4VUFSK1FnQUZJREVnQ1NrRE9IMExJQkt0VXdSQUlBcEJBVUdNTEVFQUVBOUJBQXdOQ3lBQUtBSVFJQTRvQWlRUUZ5SU1SUVJBSUFBb0FoQVFFQ0FBUWdBM0F4QWdDa0VCUWRRbFFRQVFEMEVBREEwTElBQWdERFlDRUNBQUlBNG9BaVFpRWpZQ0ZBc2dDU0FNSUJJZ0NoQWFJZ3dnRGlnQ0pFY0VRQ0FLUVFGQmxoSkJBQkFQUVFBTURBc2dDeWdDQ0NJTFJRUkFJQXBCQVVIYTFnQkJBQkFQUVFBTURBc2dBQ0FBS0FJUUlBd2dDaUFMRVFFQVJRUkFJQTRnRGlnQ0tEWUNJQ0FLUVFGQmxPZ0FJQTVCSUdvUUQwRUFEQXdMSUFrcEF6Z2hNU0FPS0FJa0lSRWdBQ2dDeUFFaUZDZ0NLQ0lTSUFBb0Fzd0JJZ3hCS0d3aURXb2lGaWdDRkNJY1FRRnFJaDBnRmlnQ0hDSUxTd1JBSUJZQ2Z5QUxzME1BQU1oQ2tpSkJRd0FBZ0U5ZElFRkRBQUFBQUdCeEJFQWdRYWtNQVF0QkFBc2lDellDSENBV0tBSVlJQXRCR0d3UUZ5RUxJQlFvQWlnaUVpQU5haUVXSUF0RkRRTWdGaUFMTmdJWUlCWW9BaFFpSEVFQmFpRWRDeUFOSUJKcUlnMG9BaGdnSEVFWWJHb2lDeUFSUVFScU5nSVFJQXNnTWFjZ0VXdEJCR3NpREt3M0F3Z2dDeUFZT3dFQUlBMGdIVFlDRkFKQUlCaEJrUDhEUncwQUlBMG9BaEFpQ3dSQUlBc2dEU2dDREVFWWJHb2dESzAzQXdBTElBa3BBemluSUE0b0FpUnJRUVJyclNJeElBQXBBekJYRFFBZ0FDQXhOd013Q3lBQUxRQkVRUVJ4QkVBZ0NTQUFOUUlZSUFvZ0NTZ0NLQkVJQUNBQU5RSVlVZ1JBSUFwQkFVR1dFa0VBRUE5QkFBd05DeUFPUVpQL0F6WUNLQXdFQ3lBSklBQW9BaEJCQWlBS0VCcEJBa2NFUUNBS1FRRkJsaEpCQUJBUFFRQU1EQXNnQUNnQ0VDQU9RU2hxUVFJUUVTQU9LQUlvUVpQL0EwY05BUXdEQ3dzZ0FFSEFBRFlDQ0F3QkN5QVdLQUlZRUJBZ0ZDZ0NLQ0FNUVNoc2FpSUFRUUEyQWh3Z0FFSUFOd0lVSUFwQkFVR0ZIVUVBRUE5QkFBd0lDd0pBSUFrcEF3Z2lNVkFFZmtJQUJTQXhJQWtwQXpoOUMxQUVRQ0FBS0FJSVFjQUFSZzBCQ3dKQUFrQWdBQzBBUkNJTFFRUnhSUVJBSUFBb0Fzd0JRWXdzYkNFTUlBQW9BcHdCSVM0Q1FBSkFJQUFvQWpnRVFDQUpLUU1JSWpGUUJINUNBQVVnTVNBSktRTTRmUXVuSVJNTUFRc2dBQ2dDR0NJVFFRSkpEUUVMSUFBZ0UwRUNheUlUTmdJWUN5QXVJQXhxSVJnZ0UwVU5BU0FKS1FNSUlqRlFCSDVDQUFVZ01TQUpLUU00ZlFzZ0U2MVRCRUFnQUNnQ3VBRUVRQ0FLUVFGQnVTeEJBQkFQUVFBTURRc2dDa0VDUWJrc1FRQVFEd3NnQUNnQ0dDSU5RWDVQQkVBZ0NrRUJRZjRLUVFBUUQwRUFEQXdMQWtBZ0dDZ0MzQ3NpREFSQUlCZ29BdUFySWd0QmZTQU5hMHNFUUNBS1FRRkJsZ2xCQUJBUFFRQU1EZ3NnRENBTElBMXFRUUpxRUJjaUN3UkFJQmdnQ3pZQzNDc01CQXNnR0NnQzNDc1FFQ0FZUVFBMkF0d3JEQUVMSUJnZ0RVRUNhaEFVSWdzMkF0d3JJQXNOQWdzZ0NrRUJRWWN2UVFBUUQwRUFEQXNMSUFCQkNEWUNDQ0FBSUF0QitnRnhPZ0JFREFFTElBQW9Bc2dCSWhZRVFDQVdLQUlvSWhJZ0FDZ0N6QUVpRkVFb2JDSVJhaUlNS0FJUUlBd29BZ3hCR0d4cUlnc2dDU2tET0NJeVFnSjlJakUzQXdnZ0N5QXlJQUExQWhoOE53TVFJQUFvQWhnaERRSkFJQXdvQWhRaUhFRUJhaUlkSUF3b0Fod2lDMDBFUUNBTUtBSVlJUXdNQVFzZ0RBSi9JQXV6UXdBQXlFS1NJa0ZEQUFDQVQxMGdRVU1BQUFBQVlIRUVRQ0JCcVF3QkMwRUFDeUlMTmdJY0lBd29BaGdnQzBFWWJCQVhJUXdnRmlnQ0tDSVNJQkZxSVFzZ0RFVU5CaUFMSUF3MkFoZ2dDeWdDRkNJY1FRRnFJUjBMSUF3Z0hFRVliR29pQ3lBTlFRSnFOZ0lRSUFzZ01jUTNBd2dnQzBHVC93TTdBUUFnRVNBU2FpQWROZ0lVQ3lBQUtBSVlJUXdDUUNBVFJRUkFRUUFoRXd3QkN5QUpJQmdvQXR3cklCZ29BdUFyYWlBTUlBb1FHaUVUSUFBb0FoZ2hEQXNnQUVFSVFjQUFJQXdnRTBZYk5nSUlJQmdnR0NnQzRDc2dFMm8yQXVBcklBQXRBRVFpQzBFSmNVRUJSdzBBSUFBZ0MwRUljam9BUkNBQUtBTE1BU0VOSUFrb0FoeEJBa1lOQUNBSktRTTRJakZDZjFFTkFBSkFBMEJCQUNFTUlBa2dEa0hHQUdvaUMwRUNJQW9RR2tFQ1J3MEJJQXNnRGtGQWEwRUNFQkVnRGlnQ1FFR1Evd05IRFFGQmxoSWhFaUFKSUF0QkFpQUtFQnBCQWtjTkNTQUxJQTVCUEdwQkFoQVJJQTRvQWp4QkNrY0VRRUdITGlFU0RBb0xJQTVCQ0RZQ1BDQUpJQTVCeGdCcVFRZ2dDaEFhSWdzZ0RpZ0NQRWNOQ1NBTFFRaEhCRUJCdlI0aEVnd0tDeUFPUWNZQWFpQU9RVGhxUVFJUUVTQXBJQTVCTkdwQkJCQVJJQ2dnRGtFd2FrRUJFQkVnSlNBT1FTeHFRUUVRRVNBTklBNG9BamhIQkVBZ0RpZ0NOQ0lMUVE1SkRRSWdEaUFMUVF4cklnczJBalFnQ1NBTHJTQUtJQWtvQWlnUkNBQWdEalVDTkZFTkFRd0NDd3NnRGlnQ01DQU9LQUlzUmlFTUN5QUpJREVnQ2lBSktBSXNFUTBBUlEwSUlBeEZEUUFnQUNBQUxRQkVRZTRCY1VFUWNqb0FSQUpBSUJkRkRRQWdBQ2dDbkFFaEUwRUFJUXNDUUNBcURRQWdFMEhZSzJvaURDQWthaUFNU1NBamNnMEFBMEFnRXlBTFFZd3NiR29pSENnQzJDc2lIZjBSSUJNZ0MwRUJja0dNTEd4cUloZ29BdGdySWhiOUhBRWdFeUFMUVFKeVFZd3NiR29pRVNnQzJDc2lGUDBjQWlBVElBdEJBM0pCakN4c2FpSU5LQUxZS3lJTS9Sd0QvUXdBQUFBQUFBQUFBQUFBQUFBQUFBQUEvVGdpUVAwYkFFRUJjUVJBSUJ4QjJDdHFJQjFCQVdvMkFnQUxJRUQ5R3dGQkFYRUVRQ0FZUWRncmFpQVdRUUZxTmdJQUN5QkEvUnNDUVFGeEJFQWdFVUhZSzJvZ0ZFRUJhallDQUFzZ1FQMGJBMEVCY1FSQUlBMUIyQ3RxSUF4QkFXbzJBZ0FMSUF0QkJHb2lDeUFQUncwQUN5QVhJQThpQzBZTkFRc2dDMEVCY2lFTUlDSUVRQ0FUSUF0QmpDeHNhaUlOS0FMWUt5SUxCRUFnRFVIWUsyb2dDMEVCYWpZQ0FBc2dEQ0VMQ3lBTUlCZEdEUUFEUUNBVElBdEJqQ3hzYWlJTktBTFlLeUlNQkVBZ0RVSFlLMm9nREVFQmFqWUNBQXNnRFVIazF3QnFJZzBvQWdBaURBUkFJQTBnREVFQmFqWUNBQXNnQzBFQ2FpSUxJQmRIRFFBTEN5QUtRUUpCbE1RQVFRQVFEd3NnQUMwQVJFRUJjUTBBSUFrZ0FDZ0NFRUVDSUFvUUdrRUNSd1JBQWtBZ0FDZ0N6QUZCQVdvZ0YwY05BQ0FYUlEwQUlBQW9BcHdCSVF4QkFDRUxBMEFnRENBTFFZd3NiR29pQ1NnQzFDdEZCRUFnQ1NnQzJDdEZEUWdMSUF0QkFXb2lDeUFYUncwQUN3c2dDa0VCUVpZU1FRQVFEMEVBREFrTElBQW9BaEFnRGtFb2FrRUNFQkVnRGlnQ0tDRUxJQUF0QUVSQkFYRU5BaUFMUWRuL0EwY05BUXdDQ3dzZ0RpZ0NLQ0VMQ3lBTFFkbi9BMGNOQWlBQUtBSUlRWUFDUmcwQ0lBQkJnQUkyQWdnZ0FFRUFOZ0xNQVF3Q0N5QUxLQUlZRUJBZ0ZpZ0NLQ0FVUVNoc2FpSUFRUUEyQWh3Z0FFSUFOd0lVSUFwQkFVR0ZIVUVBRUE5QkFBd0VDeUFPSUFzMkFoQWdDa0VFUWVmUkFDQU9RUkJxRUE4Z0FDQUxOZ0xNQVNBT1Fkbi9BellDS0NBQVFZQUNOZ0lJQ3lBQUtBTE1BU0VMSUFBb0Fwd0JJUWtDUUFKQUlBQXRBRVJCQVhFTkFBSkFBa0FnQ3lBWFR3MEFJQWtnQzBHTUxHeHFJUk1EUUNBVEtBTGNLdzBCSUFBZ0MwRUJhaUlMTmdMTUFTQVRRWXdzYWlFVElBc2dGMGNOQUFzTUFRc2dDeUFYUncwQkN5QUlRUUEyQWdBTUFRc0NRQUpBSUFwQkFTQUpJQXRCakN4c2FpSVJLQUswS0FSL1FadzBCU0FSTFFDSUxFRUNjVVVOQWdKQUlCRW9BcWdvSWc5RkJFQkJBQ0VNREFFTElCRW9BcXdvSVFsQkFDRU1RUUFoQ3lBUFFRUlBCRUFnRDBGOGNTRUwvUXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFJVUJCQUNFU0EwQWdDU0FTUVFOMGFpSU1RUnhxSUF4QkZHb2dERUVNYWlBTS9Ra0NCUDFXQWdBQi9WWUNBQUw5VmdJQUF5QkEvYTRCSVVBZ0VrRUVhaUlTSUF0SERRQUxJRUFnUUNCQS9RMElDUW9MREEwT0R3QUJBZ01BQVFJRC9hNEJJa0FnUUNCQS9RMEVCUVlIQUFFQ0F3QUJBZ01BQVFJRC9hNEIvUnNBSVF3Z0N5QVBSZzBCQ3dOQUlBa2dDMEVEZEdvb0FnUWdER29oRENBTFFRRnFJZ3NnRDBjTkFBc0xJQkVnREJBVUlnazJBclFvSUFrTkFVR1hIZ3RCQUJBUElBcEJBVUgxUEVFQUVBOUJBQXdGQ3lBUklBdzJBcndvSUJFb0Fxd29JUWtnRVNnQ3FDZ2lEQVJBUVFBaEVrRUFJUXNEUUNBSklBdEJBM1FpRkdvaURTZ0NBQ0lQQkVBZ0VTZ0N0Q2dnRW1vZ0R5QU5LQUlFRUJJYUlCRW9BcXdvSUJScUlna29BZ1FoTHlBSktBSUFFQkFnRVNnQ3JDZ2lDU0FVYWtJQU53SUFJQzhnRW1vaEVpQVJLQUtvS0NFTUN5QUxRUUZxSWdzZ0RFa05BQXNMSUJGQkFEWUNxQ2dnQ1JBUUlCRkJBRFlDckNnZ0VTQVJLQUswS0RZQ3NDZ2dFU0FSS0FLOEtEWUN1Q2dMQW45QkFDRW9JQUFvQXRBQklnc29BaHdpSmlnQ1RDQUFLQUxNQVNJSlFZd3NiR29vQXRBcklSc2dDeWdDR0NJVUtBSVlJU2NnQ3lnQ0ZDZ0NBQ0llSUNZb0FnUWdKaWdDRENJTElBa2dDU0FtS0FJWUlnbHVJZ3dnQ1d4cmJHb2lEU0FVS0FJQUlna2dDU0FOU1JzaUR6WUNBQ0FlUVg4Z0N5QU5haUlKSUFrZ0RVa2JJZ3NnRkNnQ0NDSUpJQWtnQzBzYklnazJBZ2dDUUNBSklBOUtJQTlCQUU1eFJRUkFJQXBCQVVHQk0wRUFFQThNQVFzZ0hpZ0NGQ0VRSUI0Z0ppZ0NDQ0FNSUNZb0FoQWlDMnhxSWc4Z0ZDZ0NCQ0lKSUFrZ0Qwa2JJZ3cyQWdRZ0hrRi9JQXNnRDJvaUNTQUpJQTlKR3lJTElCUW9BZ3dpQ1NBSklBdExHeUlKTmdJTUlBa2dERW9nREVFQVRuRkZCRUFnQ2tFQlFkc3lRUUFRRHd3QkN3SkFJQnNvQWdRRVFDQWVLQUlRRFFGQkFRd0RDeUFLUVFGQjFTaEJBQkFQREFFTEFrQUNRQU5BSUNkQkFEWUNKQ0FRSUNjMEFnQWlOVUlCZlNJeElCNDBBZ0I4SURWL1BnSUFJQkFnSnpRQ0JDSTBRZ0Y5SWpJZ0hqUUNCSHdnTkg4K0FnUWdFQ0F4SUI0MEFnaDhJRFYvUGdJSUlCNDBBZ3doTVNBUUlDZzJBaEFnRUNBeElESjhJRFIvUGdJTUlCQWdHeWdDQkNJTE5nSVVJQkJCQVNBTElDWW9BbEFpQ1dzZ0NTQUxTeHMyQWhnZ0VDZ0NOQkFRSUJCQkFEWUNSQ0FRL1F3QUFBQUFBQUFBQUFBQUFBQUFBQUFBL1FzQ05DQUxRWmdCYkNFTUFrQWdFQ2dDSENJSlJRUkFJQkFnREJBVUlnazJBaHdnQ1VVTkJTQVFJQXcyQWlBZ0NVRUFJQXdRRlJvTUFRc2dEQ0FRS0FJZ1RRMEFJQWtnREJBWElndEZCRUFnQ2tFQlFZQVhRUUFRRHlBUUtBSWNFQkFnRUVJQU53SWNEQVVMSUJBZ0N6WUNIQ0FMSUJBb0FpQWlDV3BCQUNBTUlBbHJFQlVhSUJBZ0REWUNJQXNnRUNnQ0ZDSUxCRUFnRzBHd0Iyb2hIU0FiUWF3R2FpRVlJQnRCSEdvaEZ5QVFLQUljSVJwQkFDRXJBMEFnR2tKL0lBdEJBV3NpQ2EwaU00WkNmNFVpTWlBUU5BSUFmQ0F6aDZjaUZqWUNBQ0FhSURJZ0VEUUNCSHdnTTRlbkloRTJBZ1FnR2lBeUlCQTBBZ2g4SURPSElqR25JaFEyQWdnZ0dpQXlJQkEwQWd4OElET0hJalNuSWcwMkFnd2dNY1JDQVNBWUlDdEJBblFpREdvb0FnQWlINjBpTVlaOFFnRjlJREdIcHlBZmRDSVBRUUJJRFFRZ05NUkNmeUFNSUIxcUtBSUFJaUN0SWpHR1FuK0ZmQ0F4aDZjZ0lIUWlERUVBU0EwRUlCb2dERUYvSUNCMElCRnhJaE5ySUNCMVFRQWdEU0FSUnhzaUREWUNGQ0FhSUE5QmZ5QWZkQ0FXY1NJaWF5QWZkVUVBSUJRZ0ZrY2JJZzgyQWhBQ1FDQVBSUTBBSUErdElBeXRma0lnaUZBTkFBd0VDeUFNSUE5c0lpTkI1OHlaTTA4TkF5QWpRU2hzSVNFZ0dpQXJCSDhnSUVFQmF5RWdJQjlCQVdzaEh5QVRyRUlCZkVJQmlLY2hFeUFpckVJQmZFSUJpS2NoSWtFREJVRUJDellDR0NBYVFSeHFJUlZDQVNBTHJTSTJoaUUzUW44Z0d5Z0NEQ0lMSUNBZ0N5QWdTUnNpTEswaVBJWkNmNFVoUFVKL0lCc29BZ2dpQ3lBZklBc2dIMGtiSWkydElqNkdRbitGSVQ5QkFDRXBBMEFDZmlBclJRUkFJRElnRURRQ0JId2dNNGNoT0NBeUlCQTBBZ0I4SURPSElUbEJBQ0VMSURJaU1TRTZJRE1NQVFzZ055QXBRUUZxSWd0QkFYYXRJRE9HUW4rRmZDSTZJQkEwQWdSOElEYUhJVGdnTnlBTFFRRnhyU0F6aGtKL2hYd2lNU0FRTkFJQWZDQTJoeUU1SURZTElUc2dFRFFDQ0NFMUlCQTBBZ3doTkNBVklEZytBZ1FnRlNBNVBnSUFJQlVnQ3pZQ0VDQVZJRFFnT253Z080YytBZ3dnRlNBeElEVjhJRHVIUGdJSVFRQWhEQUpBSUJzb0FoUkZEUUFnQzBVTkFFRUNRUUVnQzBFRFJoc2hEQXRFQUFBQUFBQUE4RDhoUWdKQUlDY29BaGdnREdvZ0Z5Z0NBQ0lNYXlJTFFZQUlUZ1JBUkFBQUFBQUFBT0IvSVVJZ0MwSC9EMGtFUUNBTFFmOEhheUVMREFJTFJBQUFBQUFBQVBCL0lVSkIvUmNnQ3lBTFFmMFhUeHRCL2c5cklRc01BUXNnQzBHQmVFb05BRVFBQUFBQUFBQmdBeUZDSUF0QnVIQkxCRUFnQzBISkIyb2hDd3dCQzBRQUFBQUFBQUFBQUNGQ1FmQm9JQXNnQzBId2FFMGJRWklQYWlFTEN5QVZJQmNvQWdTM1JBQUFBQUFBQUVBL29rUUFBQUFBQUFEd1A2QWdRaUFMUWY4SGFxMUNOSWEvb3FLMk9BSWdJQlVnRENBYktBS2tCbXBCQVdzMkFod2dGU2dDRkNFTEFrQUNRQUpBSUNORkRRQWdDdzBBSUJVZ0lSQVVJZ3MyQWhRZ0MwVUVRQ0FLUVFGQmxCVkJBQkFQREFvTElBdEJBQ0FoRUJVYUlCVWdJVFlDR0F3QkN5QWhJQlVvQWhoTEJFQWdDeUFoRUJjaURFVUVRQ0FLUVFGQmxCVkJBQkFQSUJVb0FoUVFFQ0FWUWdBM0FoUU1DZ3NnRlNBTU5nSVVJQXdnRlNnQ0dDSUxha0VBSUNFZ0Myc1FGUm9nRlNBaE5nSVlDeUFqUlEwQkN5QVZLQUlVSVF0QkFDRWtBMEFnQ3lBa0lDUWdHaWdDRUNJTWJpSVdJQXhzYXlJTklCOTBJQ0pxSWc4Z0ZTZ0NBQ0lNSUF3Z0QwZ2JJaEUyQWdBZ0N5QVdJQ0IwSUJOcUlnOGdGU2dDQkNJTUlBd2dEMGdiSWhRMkFnUWdDeUFOUVFGcUlCOTBJQ0pxSWc4Z0ZTZ0NDQ0lNSUF3Z0Qwb2JJZzAyQWdnZ0N5QVdRUUZxSUNCMElCTnFJZzhnRlNnQ0RDSU1JQXdnRDBvYklndzJBZ3dnQ3lBL0lBMnNmQ0EraDZjZ0VTQXRkU0lXYXlBdGRDQXRkU0lQTmdJUUlBc2dQU0FNckh3Z1BJZW5JQlFnTEhVaUVXc2dMSFFnTEhVaUREWUNGQ0FNSUE5c0lpV3RRZ2FHUWlDSVFnQlNCRUFnQ2tFQlFlVVZRUUFRRHd3SkN5QWxRUVowSVEwQ1FBSi9Ba0FnQ3lnQ0dDSU1EUUFnSlVVTkFDQUxJQTBRRkNJTU5nSVlJQXhGRFFzZ0RFRUFJQTBRRlJvZ0MwRWNhZ3dCQ3lBTklBc29BaHhORFFFZ0RDQU5FQmNpRDBVRVFDQUxLQUlZRUJBZ0MwSUFOd0lZSUFwQkFVSGpFa0VBRUE4TUN3c2dDeUFQTmdJWUlBOGdDeWdDSENJTWFrRUFJQTBnREdzUUZSb2dDMEVjYWdzZ0RUWUNBQXNnQ3lnQ0ZDRU5JQXNvQWhBaER5QUxBbjhnQ3lnQ0lDSU1SUVJBSUE4Z0RTQUtFR01NQVFzZ0RDQVBJQTBnQ2hCaEN6WUNJQ0FMS0FJVUlRMGdDeWdDRUNFUElBc0NmeUFMS0FJa0lneEZCRUFnRHlBTklBb1FZd3dCQ3lBTUlBOGdEU0FLRUdFTE5nSWtJQ1VFUUVFQUlSSURRQ0FTSUFzb0FoQWlEVzRoSEFKQUlBc29BaGdnRWtFR2RHb2lHU2dDQUNJVUJFQWdHU2dDT0NFUElCa29BZ1FoRENBWktBSXdJU29nR1NnQ1BCQVFJQm45REFBQUFBQUFBQUFBQUFBQUFBQUFBQUQ5Q3dJb0lCbENBRGNDT0NBWi9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQS9Rc0NHQ0FaL1F3QUFBQUFBQUFBQUFBQUFBQUFBQUFBL1FzQ0NDQVpJQlEyQWdBZ0dTQXFOZ0l3SUNvRVFDQVVRUUFnS2tFWWJCQVZHZ3NnR1NBUE5nSTRJQmtnRERZQ0JBd0JDeUFaUVFwQkdCQVRJZ3cyQWdBZ0RFVU5DeUFaUVFvMkFqQUxJQmtnRWlBTklCeHNheUFXYWlJVUlDMTBJZzhnQ3lnQ0FDSU1JQXdnRDBnYk5nSUlJQmtnRVNBY2FpSU5JQ3gwSWc4Z0N5Z0NCQ0lNSUF3Z0QwZ2JOZ0lNSUJrZ0ZFRUJhaUF0ZENJUElBc29BZ2dpRENBTUlBOUtHellDRUNBWklBMUJBV29nTEhRaUR5QUxLQUlNSWd3Z0RDQVBTaHMyQWhRZ0VrRUJhaUlTSUNWSERRQUxDeUFMUVNocUlRc2dKRUVCYWlJa0lDTkhEUUFMQ3lBWFFRaHFJUmNnRlVFa2FpRVZJQ2xCQVdvaUtTQWFLQUlZU1EwQUN5QWFRWmdCYWlFYUlBa2hDeUFyUVFGcUlpc2dFQ2dDRkVrTkFBc0xJQ2RCTkdvaEp5QVFRY3dBYWlFUUlCdEJ1QWhxSVJzZ0tFRUJhaUlvSUI0b0FoQkpEUUFMUVFFTUF3c2dDa0VCUVpRV1FRQVFEd3dCQ3lBS1FRRkJzeEZCQUJBUEMwRUFDMFVFUUNBS1FRRkJ3aHRCQUJBUFFRQU1CQXNnQUNnQ3pBRWhDU0FPSUFBb0FtZ2dBQ2dDYkd3MkFnUWdEaUFKUVFGcU5nSUFJQXBCQkVHKzF3QWdEaEFQSUFFZ0FDZ0N6QUUyQWdBZ0NFRUJOZ0lBSUFJRVFDQUNJQUFvQXRBQlFRQVFWQ0lCTmdJQVFRQWdBVUYvUmcwRUdnc2dBeUFBS0FMUUFTZ0NGQ2dDQUNJQktBSUFOZ0lBSUFRZ0FTZ0NCRFlDQUNBRklBRW9BZ2cyQWdBZ0JpQUJLQUlNTmdJQUlBY2dBU2dDRURZQ0FDQUFJQUFvQWdoQmdBRnlOZ0lJQzBFQkRBSUxJQXBCQVNBU1FRQVFEd3NnQ2tFQlFlUWJRUUFRRDBFQUN5RXdJQTVCMEFCcUpBQWdNQXZlRUFJTmZ3SitBa0FnQUNnQ0lDSUZEUUFDUUNBQUtBSVFJZ2xCQlVvRVFDQUpJUU1NQVFzQ1FBSkFJQUFvQWhRaUFrRUZUZ1JBSUFBb0FnQWlBU2dDQUNFRklBQWdBVUVFYWpZQ0FDQUNRUVJySVFjTUFRc2dBa0VBVEFSQVFYOGhCUXdDQ3lBQUtBSUFJUUVDZnlBQ1FRRkdCRUJCZnlFR1FRQU1BUXRCZnlFR0lBSkJBV3NpQTBFQmNTRU5Ba0FnQWtFQ1JnUkFRUUFoQlNBQ0lRUU1BUXNnQTBGK2NTRUxRUUFoQlNBQklRTWdBaUVFQTBBZ0FDQURRUUZxTmdJQUlBTXRBQUFoRENBQUlBTkJBbW9pQVRZQ0FDQUFJQVJCQVdzMkFoUWdBeTBBQVNFRElBQWdCRUVDYXlJRU5nSVVJQVpCL3dFZ0JYUkJmM054SUF3Z0JYUnlRWUQrQXlBRmRFRi9jM0VnQXlBRlFRaHlkSEloQmlBRlFSQnFJUVVnQVNFRElBaEJBbW9pQ0NBTFJ3MEFDd3NnRFFSQUlBQWdBVUVCYWlJRE5nSUFJQUV0QUFBaEFTQUFJQVJCQVdzMkFoUWdCa0gvQVNBRmRFRi9jM0VnQVNBRmRISWhCaUFESVFFTElBSkJBM1JCQ0dzTElRVWdBQ0FCUVFGcU5nSUFJQVpCL3dFZ0JYUkJmM054SUFFdEFBQkJEM0lnQlhSeUlRVUxJQUFnQnpZQ0ZBc2dBQ2dDR0NFQklBQWdCVUVZZGlJSFFmOEJSallDR0NBQUlBa2dCVUVRZGtIL0FYRWlDRUgvQVVZaUNpQUZRUWgyUWY4QmNTSUxRZjhCUmlJTUlBRWdCVUgvQVhFaUJFSC9BVVlpQW1wcWFpSUJhMEVnYWlJRE5nSVFJQUFnQUNrRENDQUVRUWRCQ0NBQ0czUWdDM0pCQjBFSUlBd2JkQ0FJY2tFSFFRZ2dDaHQwSUFkeXJTQUJJQWxyUVNCcXJZYUVOd01JUVFBaEJTQURRUVpJRFFFTElBQW9BaHdpQVVFQ2RFR2duUUZxS0FJQUlRSUNmaUFBS1FNSUlnNUNBRk1FUUVFTUlBRkJBV29nQVVFTFRoc2hCQ0FEUVFGcklRTkJmeUFDZEVGL2MwRUJkQ0VCUWdFTUFRc2dBVUVCYTBFQUlBRkJBVW9iSVFRZ0RrRS9JQUpycllpblFYOGdBblJCZjNOeFFRRjBRUUZ5SVFFZ0F5QUNRUUZxSWdKcklRTWdBcTBMSVE4Z0FDQUROZ0lRSUFBZ0JEWUNIQ0FBSUE0Z0Q0WTNBd2dnQUNBQnJDQUFLUU1vUWtDRGhEY0RLRUVCSVFVZ0EwRUdTQTBBSUFBb0Fod2lBVUVDZEVHZ25RRnFLQUlBSVFJQ2ZpQUFLUU1JSWc1Q0FGTUVRRUVNSUFGQkFXb2dBVUVMVGhzaEJDQURRUUZySVFOQmZ5QUNkRUYvYzBFQmRDRUJRZ0VNQVFzZ0FVRUJhMEVBSUFGQkFVb2JJUVFnRGtFL0lBSnJyWWluUVg4Z0FuUkJmM054UVFGMFFRRnlJUUVnQXlBQ1FRRnFJZ0pySVFNZ0FxMExJUThnQUNBRE5nSVFJQUFnQkRZQ0hDQUFJQTRnRDRZM0F3Z2dBQ0FBS1FNb1F2OUFneUFCckVJSGhvUTNBeWhCQWlFRklBTkJCa2dOQUNBQUtBSWNJZ0ZCQW5SQm9KMEJhaWdDQUNFQ0FuNGdBQ2tEQ0NJT1FnQlRCRUJCRENBQlFRRnFJQUZCQzA0YklRUWdBMEVCYXlFRFFYOGdBblJCZjNOQkFYUWhBVUlCREFFTElBRkJBV3RCQUNBQlFRRktHeUVFSUE1QlB5QUNhNjJJcDBGL0lBSjBRWDl6Y1VFQmRFRUJjaUVCSUFNZ0FrRUJhaUlDYXlFRElBS3RDeUVQSUFBZ0F6WUNFQ0FBSUFRMkFod2dBQ0FPSUErR053TUlJQUFnQUNrREtFTC8vMENESUFHc1FnNkdoRGNES0VFRElRVWdBMEVHU0EwQUlBQW9BaHdpQVVFQ2RFR2duUUZxS0FJQUlRSUNmaUFBS1FNSUlnNUNBRk1FUUVFTUlBRkJBV29nQVVFTFRoc2hCQ0FEUVFGcklRTkJmeUFDZEVGL2MwRUJkQ0VCUWdFTUFRc2dBVUVCYTBFQUlBRkJBVW9iSVFRZ0RrRS9JQUpycllpblFYOGdBblJCZjNOeFFRRjBRUUZ5SVFFZ0F5QUNRUUZxSWdKcklRTWdBcTBMSVE4Z0FDQUROZ0lRSUFBZ0JEWUNIQ0FBSUE0Z0Q0WTNBd2dnQUNBQUtRTW9Rdi8vLzBDRElBR3NRaFdHaERjREtFRUVJUVVnQTBFR1NBMEFJQUFvQWh3aUFVRUNkRUdnblFGcUtBSUFJUUlDZmlBQUtRTUlJZzVDQUZNRVFFRU1JQUZCQVdvZ0FVRUxUaHNoQkNBRFFRRnJJUU5CZnlBQ2RFRi9jMEVCZENFQlFnRU1BUXNnQVVFQmEwRUFJQUZCQVVvYklRUWdEa0UvSUFKcnJZaW5RWDhnQW5SQmYzTnhRUUYwUVFGeUlRRWdBeUFDUVFGcUlnSnJJUU1nQXEwTElROGdBQ0FETmdJUUlBQWdCRFlDSENBQUlBNGdENFkzQXdnZ0FDQUFLUU1vUXYvLy8vOUFneUFCckVJY2hvUTNBeWhCQlNFRklBTkJCa2dOQUNBQUtBSWNJZ0ZCQW5SQm9KMEJhaWdDQUNFQ0FuNGdBQ2tEQ0NJT1FnQlRCRUJCRENBQlFRRnFJQUZCQzA0YklRUWdBMEVCYXlFRFFYOGdBblJCZjNOQkFYUWhBVUlCREFFTElBRkJBV3RCQUNBQlFRRktHeUVFSUE1QlB5QUNhNjJJcDBGL0lBSjBRWDl6Y1VFQmRFRUJjaUVCSUFNZ0FrRUJhaUlDYXlFRElBS3RDeUVQSUFBZ0F6WUNFQ0FBSUFRMkFod2dBQ0FPSUErR053TUlJQUFnQUNrREtFTC8vLy8vLzBDRElBR3RRaU9HaERjREtFRUdJUVVnQTBFR1NBMEFJQUFvQWh3aUFVRUNkRUdnblFGcUtBSUFJUUlDZmlBQUtRTUlJZzVDQUZNRVFFRU1JQUZCQVdvZ0FVRUxUaHNoQkNBRFFRRnJJUU5CZnlBQ2RFRi9jMEVCZENFQlFnRU1BUXNnQVVFQmEwRUFJQUZCQVVvYklRUWdEa0UvSUFKcnJZaW5RWDhnQW5SQmYzTnhRUUYwUVFGeUlRRWdBeUFDUVFGcUlnSnJJUU1nQXEwTElROGdBQ0FETmdJUUlBQWdCRFlDSENBQUlBNGdENFkzQXdnZ0FDQUFLUU1vUXYvLy8vLy8vMENESUFHdFFpcUdoRGNES0VFSElRVWdBMEVHU0EwQUlBQW9BaHdpQVVFQ2RFR2duUUZxS0FJQUlRSUNmaUFBS1FNSUlnNUNBRk1FUUVFTUlBRkJBV29nQVVFTFRoc2hCQ0FEUVFGcklRTkJmeUFDZEVGL2MwRUJkQ0VCUWdFTUFRc2dBVUVCYTBFQUlBRkJBVW9iSVFRZ0RrRS9JQUpycllpblFYOGdBblJCZjNOeFFRRjBRUUZ5SVFFZ0F5QUNRUUZxSWdKcklRTWdBcTBMSVE4Z0FDQUROZ0lRSUFBZ0JEWUNIQ0FBSUE0Z0Q0WTNBd2dnQUNBQUtRTW9Rdi8vLy8vLy8vOUFneUFCclVJeGhvUTNBeWhCQ0NFRkN5QUFJQVZCQVdzMkFpQWdBQ0FBS1FNb0lnNUNCNGczQXlnZ0RxZEIvd0J4Q3lJQkFYOGdBQVJBSUFBb0Fnd2lBUVJBSUFFUUVDQUFRUUEyQWd3TElBQVFFQXNMaWdFQ0FYNEZmd0pBSUFCQ2dJQ0FnQkJVQkVBZ0FDRUNEQUVMQTBBZ0FVRUJheUlCSUFCQ0NvQWlBa0wyQVg0Z0FIeW5RVEJ5T2dBQUlBQkMvLy8vLzU4QlZpRUdJQUloQUNBR0RRQUxDeUFDUWdCU0JFQWdBcWNoQXdOQUlBRkJBV3NpQVNBRFFRcHVJZ1JCOWdGc0lBTnFRVEJ5T2dBQUlBTkJDVXNoQnlBRUlRTWdCdzBBQ3dzZ0FRdjU0Z0VFZW44R2V3aCtBWDBqQUVFUWF5Sk9KQUFDUUNBQUxRQUlRWUFCY1VVTkFDQUFLQUxNQVNBQlJ3MEFJQUFvQXB3QklBRkJqQ3hzYWlKUEtBTGNLeUlWUlFSQUlFOFFMZ3dCQ3lBQUtBTElBUm9nQUNnQzBBRWhHU0FBS0FKTUlnZEZCRUFnQUNnQ1NDRUhDeUFIS0FJQUlRWWdCeWdDQkNFTElBY29BZ2doQ1NBSEtBSU1JUTBnQUNnQ1BDRUhJQUFvQWtBaENDQlBLQUxnS3lFS0l3QkJFR3NpUUNRQUlCa2dBVFlDSkNBWktBSWNLQUpNSVF3Z0dVRUJOZ0pBSUJrZ0RUWUNQQ0FaSUFrMkFqZ2dHU0FMTmdJMElCa2dCallDTUNBWklBd2dBVUdNTEd4cU5nSWdJQmtvQWtRUUVFRUFJUXNnR1VFQU5nSkVBa0FnQndSQVFRUWdHU2dDR0NnQ0VCQVRJZ3RGQkVBTUFndEJBQ0VOUVFBaENTQUhRUVJQQkVBZ0IwRjhjU0VNUVFBaEFRTkFJQXNnQ0NBSlFRSjBhaUlHS0FJQVFRSjBha0VCTmdJQUlBc2dCaWdDQkVFQ2RHcEJBVFlDQUNBTElBWW9BZ2hCQW5ScVFRRTJBZ0FnQ3lBR0tBSU1RUUowYWtFQk5nSUFJQWxCQkdvaENTQUJRUVJxSWdFZ0RFY05BQXNMSUFkQkEzRWlBUVJBQTBBZ0N5QUlJQWxCQW5ScUtBSUFRUUowYWtFQk5nSUFJQWxCQVdvaENTQU5RUUZxSWcwZ0FVY05BQXNMSUJrZ0N6WUNSQXNDUUFKQUlCa29BaGdpQmlnQ0VDSU5SUTBBUVFBaENRSkFBMEFDUUNBTEJFQWdDeUFKUVFKMGFpZ0NBRVVOQVFzZ0JpZ0NHQ0FKUVRSc2FpSUJOUUlFSW9ZQlFnRjlJb29CSUJrMUFqeDhJSVlCZ0NHTEFTQUJOUUlBSW9jQlFnRjlJb2dCSUJrMUFqaDhJSWNCZ0NHTUFTQ0tBU0FaTlFJMGZDQ0dBWUFoaGdFZ0dTZ0NGQ2dDQUNnQ0ZDQUpRY3dBYkdvaUFTZ0NGQ0FCS0FJWWF5SUhRUjlMRFFBQ1FDQ0lBU0FaTlFJd2ZDQ0hBWUNuSWdnZ0FTZ0NBR3NpREVFQUlBZ2dERThiSUFkMkRRQWdoZ0duSWdnZ0FTZ0NCR3NpREVFQUlBZ2dERThiSUFkMkRRQWdBU2dDQ0NJSUlJd0JwMnNpREVFQUlBZ2dERThiSUFkMkRRQWdBU2dDRENJQklJc0JwMnNpQ0VFQUlBRWdDRThiSUFkMlJRMEJDeUFaUVFBMkFrQU1BZ3NnQ1VFQmFpSUpJQTFIRFFBTElCa29Ba0JGRFFBZ0RVVU5BVUVBSVEwRFFDQVpLQUlVS0FJQUtBSVVJQTFCekFCc2FpSUJLQUljSUFFb0FoaEJtQUZzYWlJSFFaUUJheWdDQUNFR0lBZEJqQUZyS0FJQUlRc2dCMEdZQVdzb0FnQWhDU0FIUVpBQmF5Z0NBQ0VJQWtBZ0dTZ0NSQ0lIQkVBZ0J5QU5RUUowYWlnQ0FFVU5BUXNnQ3lBR2F5RUhJQWdnQ1dzaENRSkFJQVlnQzBZTkFDQUhyU0FKclg1Q0lJaFFEUUFnQlVFQlFaUVdRUUFRRHd3R0N5QUhJQWxzSWdkQmdJQ0FnQVJQQkVBZ0JVRUJRWlFXUVFBUUR3d0dDeUFCSUFkQkFuUWlCellDTEFKL0FrQUNRQUpBSUFFb0FpUWlCZ1JBSUFjZ0FTZ0NNRTBOQlNBQktBSW9EUUVMSUFFZ0J4QVlJZ2MyQWlRZ0IwRUJJQUVvQWl3aUJ4dEZEUUVnQVNBSE5nSXdJQUZCS0dvTUF3c2dCaEFRSUFFZ0FTZ0NMQkFZSWdjMkFpUWdCdzBCSUFGQkFEWUNNQ0FCUWdBM0FpZ0xJQVZCQVVHVUZrRUFFQThNQndzZ0FTQUJLQUlzTmdJd0lBRkJLR29MUVFFMkFnQUxJQTFCQVdvaURTQVpLQUlZSWdZb0FoQkpEUUFMREFFTElBMUZEUUFnQmlnQ0dDRVBJQmtvQWhRb0FnQW9BaFFoRmtFQUlRRURRQUpBSUFzRVFDQUxJQUZCQW5ScUtBSUFSUTBCQ3lBV0lBRkJ6QUJzYWlJSElBY29BZ0FpQ1NBUElBRkJOR3hxSWdnMUFnQWloZ0ZDQVgwaWlnRWdHVFVDTUh3Z2hnR0FweUlNSUFrZ0RFc2JJZ2syQWpnZ0J5QUhLQUlFSWd3Z0NEVUNCQ0tIQVVJQmZTS0xBU0FaTlFJMGZDQ0hBWUNuSWdnZ0NDQU1TUnNpQ0RZQ1BDQUhJQWNvQWdnaURDQ0tBU0FaTlFJNGZDQ0dBWUNuSWhjZ0RDQVhTUnNpRERZQ1FDQUhJQWNvQWd3aUZ5Q0xBU0FaTlFJOGZDQ0hBWUNuSWc0Z0RpQVhTeHNpRnpZQ1JDQUpJQXhMRFFNZ0NDQVhTdzBESUFjb0FoUWlEa1VOQUNBT3JTR0xBU0FYclNHSUFTQU1yU0dNQVNBSXJTR05BU0FKclNHSkFTQUhLQUljSVFsQ0FDR0hBUU5BSUFrZ2h3R25JZ2hCbUFGc2FpSUhRbjhnRGlBSVFYOXphcTBpaGdHR1FuK0ZJb29CSUlnQmZDQ0dBWWcrQXBRQklBY2dpZ0VnakFGOElJWUJpRDRDa0FFZ0J5Q0tBU0NOQVh3Z2hnR0lQZ0tNQVNBSElJa0JJSW9CZkNDR0FZZytBb2dCSUljQlFnRjhJb2NCSUlzQlVnMEFDd3NnQVVFQmFpSUJJQTFIRFFBTEN5QkFRUUEyQWdnZ0dTZ0NIQ0VCUVFGQkNCQVRJaHNFUUNBYklBRTJBZ1FnR3lBR05nSUFDeUFiUlEwQklCa29BaVFoRVNBWktBSVVLQUlBSVNBakFFSHdBR3NpRXlRQUlCRkJqQ3hzSWdFZ0d5Z0NCQ0lJS0FKTWFpSWNLQUtrQXlFb0FuOGdHeWdDQUNJZUlSY2dCU0V6UVFBaERTTUFRU0JySWc4a0FDQUJJQWdvQWt4cUloMG9BcVFESVJnQ1FDQVhLQUlRSWhaQmtBUnNFQlFpREVVTkFBSkFJQlpCQW5RUUZDSUxSUVJBSUF3aEN3d0JDd0ovSUFnb0Frd2dFVUdNTEd4cUlna29BcVFESWhwQkFXb2lBVUh3QVJBVElnY0VRQUpBSUFFRVFDQVhLQUlRSVE0Z0J5RUJBMEFnQVNBek5nTHNBU0FCSUE1QkVCQVRJZ1kyQXNnQklBWkZEUUlnQVNBWEtBSVFJaDgyQXNRQlFRQWhCa0VBSVE0Z0h3UkFBMEFnQVNnQ3lBRWdCa0VFZEdvaURpQUpLQUxRS3lBR1FiZ0liR29pSHlnQ0JFRVFFQk1pSVRZQ0RDQWhSUTBFSUE0Z0h5Z0NCRFlDQ0NBR1FRRnFJZ1lnRnlnQ0VDSU9TUTBBQ3dzZ0FVSHdBV29oQVNBU0lCcEdJWE1nRWtFQmFpRVNJSE5GRFFBTEN5QUhEQUlMSUFjb0FnUWlBUVJBSUFFUUVDQUhRUUEyQWdRTElBY2hBVUVBSVFrRFFDQUJLQUxJQVNJR0JFQkJBQ0VPSUFFb0FzUUJJaElFZndOQUlBWW9BZ3dpSHdSQUlCOFFFQ0FHUVFBMkFnd2dBU2dDeEFFaEVnc2dCa0VRYWlFR0lBNUJBV29pRGlBU1NRMEFDeUFCS0FMSUFRVWdCZ3NRRUNBQlFRQTJBc2dCQ3lBQlFmQUJhaUVCSUFrZ0drWWhkQ0FKUVFGcUlRa2dkRVVOQUFzZ0J4QVFDMEVBQ3lJSEJFQUNRQ0FXUlEwQVFRQWhDU0FNSVFZZ0ZrRUVUd1JBSUFZZ0ZrRjhjU0lKUVpBRWJHb2hCaUFNSVFFRFFDQUxJQkJCQW5ScUlBSDlFZjBNQUFBQUFCQUNBQUFnQkFBQU1BWUFBUDJ1QWYwTEFnQWdBVUhBRUdvaEFTQVFRUVJxSWhBZ0NVY05BQXNnQ1NBV1JnMEJDd05BSUFzZ0NVRUNkR29nQmpZQ0FDQUdRWkFFYWlFR0lBbEJBV29pQ1NBV1J3MEFDd3NnQ3lFT1FRQWhFaUFJS0FKTUlCRkJqQ3hzYWlnQzBDc2hBU0FYS0FJWUlRa2dEeUFJS0FJRUlBZ29BZ3dnRVNBUklBZ29BaGdpQm00aUN5QUdiR3RzYWlJR0lCY29BZ0FpRUNBR0lCQkxHellDRkNBUFFYOGdCaUFJS0FJTWFpSVFJQVlnRUVzYklnWWdGeWdDQ0NJUUlBWWdFRWtiTmdJUUlBOGdDQ2dDQ0NBSUtBSVFJQXRzYWlJR0lCY29BZ1FpQ3lBR0lBdExHellDRENBUFFYOGdCaUFJS0FJUWFpSUxJQVlnQzBzYklnWWdGeWdDRENJTElBWWdDMGtiTmdJSUlBOUJBRFlDR0NBUFFRQTJBaHdnRDBILy8vLy9CellDQkNBUFFmLy8vLzhITmdJQUlCY29BaEFFUUFOQUlBNEVmeUFPSUJKQkFuUnFLQUlBQlVFQUN5RUxJQWsxQWdRaWhnRkNBWDBpaWdFZ0R6VUNDSHdnaGdHQUlZc0JJQWsxQWdBaWh3RkNBWDBpaUFFZ0R6VUNFSHdnaHdHQUlZd0JJSW9CSUE4MUFneDhJSVlCZ0NHR0FTQ0lBU0FQTlFJVWZDQ0hBWUFoaHdFZ0FTZ0NCQ0lJSUE4b0FoeExCRUFnRHlBSU5nSWNJQUVvQWdRaENBc2dDQVJBSUlzQlF2Ly8vLzhQZ3lHS0FTQ01BVUwvLy8vL0Q0TWhpd0VnaGdGQy8vLy8vdytESVlnQklJY0JRdi8vLy84UGd5R01BU0FCUWJBSGFpRWZJQUZCckFacUlTRkJBQ0VhQTBBZ0h5QWFRUUowSWhCcUtBSUFJUVlnRUNBaGFpZ0NBQ0VSUVFBaEVDQUxCRUFnQ3lBR05nSUVJQXNnRVRZQ0FDQUxRUWhxSVJBTEFrQWdFU0FJUVFGcklnaHFJZ3RCSDBzTkFDQUpLQUlBSWlKQmZ5QUxka3NOQUNBUElBOG9BZ1FpSnlBaUlBdDBJZ3NnQ3lBblN4czJBZ1FMQWtBZ0JpQUlhaUlMUVI5TERRQWdDU2dDQkNJaVFYOGdDM1pMRFFBZ0R5QVBLQUlBSWljZ0lpQUxkQ0lMSUFzZ0owc2JOZ0lBQzBFQUlRc2dpZ0ZDZnlBSXJTS0dBWVpDZjRVaWh3RjhJSVlCaUNLTkFVTC8vLy8vRDROQ0FTQUdyU0tKQVlaOFFnRjlJSWtCaUtjZ2h3RWdpQUY4SUlZQmlLY2lJaUFHZG10QmZ5QUdkbkZCQUNBaUlJMEJwMGNiSVFZZ2h3RWdpd0Y4SUlZQmlDS05BVUwvLy8vL0Q0TkNBU0FSclNLSkFZWjhRZ0Y5SUlrQmlLY2dod0VnakFGOElJWUJpS2NpSWlBUmRtdEJmeUFSZG5GQkFDQWlJSTBCcDBjYklSRWdFQVJBSUJBZ0JqWUNCQ0FRSUJFMkFnQWdFRUVJYWlFTEN5QUdJQkZzSWdZZ0R5Z0NHRXNFUUNBUElBWTJBaGdMSUJwQkFXb2lHaUFCS0FJRVNRMEFDd3NnQ1VFMGFpRUpJQUZCdUFocUlRRWdFa0VCYWlJU0lCY29BaEJKRFFBTEN5QVlRUUZxSVNFZ0R5Z0NIQ0VSSUE4b0FoZ2hFaUFIUVFBMkFnUUNRQ0FkS0FJSVFRRnFJZ0d0SUJFZ0VpQVdiQ0lpYkNJYXJYNUNJSWhRQkVBZ0J5QUJJQnBzSWdFMkFnZ2dCeUFCUVFJUUV5SUJOZ0lFSUFFTkFRc2dEQkFRSUE0UUVDQUhLQUlFSWdFRVFDQUJFQkFnQjBFQU5nSUVDeUFoUlFSQUlBY2hDd3dEQzBFQUlRc2dCeUVCQTBBZ0FTZ0N5QUVpQ1FSQVFRQWhCaUFCS0FMRUFTSVFCSDhEUUNBSktBSU1JZ2dFUUNBSUVCQWdDVUVBTmdJTUlBRW9Bc1FCSVJBTElBbEJFR29oQ1NBR1FRRnFJZ1lnRUVrTkFBc2dBU2dDeUFFRklBa0xFQkFnQVVFQU5nTElBUXNnQVVId0FXb2hBU0FMSUJoR0lYVWdDMEVCYWlFTElIVkZEUUFMSUFjaEN3d0NDeUFYS0FJWUlSY2dCeUFQS0FJVUlpYzJBc3dCSUFjZ0R5Z0NEQ0l3TmdMUUFTQUhJQThvQWhBaUxUWUMxQUVnQnlBUEtBSUlJaXMyQXRnQklBY2dHallDRENBSElDSTJBaEFnQnlBU05nSVVRUUVoSHlBSFFRRTJBaGdnRmdSQUlBY29Bc2dCSVFGQkFDRUlJQmNoQ3dOQUlBNGdDRUVDZEdvb0FnQWhDU0FCSUFzb0FnQTJBZ0FnQVNBTEtBSUVOZ0lFQWtBZ0FTZ0NDQ0lOUlEwQUlBRW9BZ3doQmlBTlFRRkhCRUFnRFVGK2NTRXZRUUFoRUFOQUlBWWdDU2dDQURZQ0FDQUdJQWtvQWdRMkFnUWdCaUFKS0FJSU5nSUlJQVlnQ1NnQ0REWUNEQ0FHSUFrb0FoQTJBaEFnQmlBSktBSVVOZ0lVSUFZZ0NTZ0NHRFlDR0NBR0lBa29BaHcyQWh3Z0JrRWdhaUVHSUFsQklHb2hDU0FRUVFKcUloQWdMMGNOQUFzTElBMUJBWEZGRFFBZ0JpQUpLQUlBTmdJQUlBWWdDU2dDQkRZQ0JDQUdJQWtvQWdnMkFnZ2dCaUFKS0FJTU5nSU1DeUFMUVRScUlRc2dBVUVRYWlFQklBaEJBV29pQ0NBV1J3MEFDd3NnSVVFQlN3UkFJQWNoRFFOQUlBMGdLellDeUFNZ0RTQXROZ0xFQXlBTklEQTJBc0FESUEwZ0p6WUN2QU1nRFVFQk5nS0lBaUFOSUJJMkFvUUNJQTBnSWpZQ2dBSWdEU0FhTmdMOEFTQVdCRUFnRFNnQ3VBTWhBVUVBSVFnZ0Z5RUxBMEFnRGlBSVFRSjBhaWdDQUNFSklBRWdDeWdDQURZQ0FDQUJJQXNvQWdRMkFnUUNRQ0FCS0FJSUlpRkZEUUFnQVNnQ0RDRUdJQ0ZCQVVjRVFDQWhRWDV4SVM5QkFDRVFBMEFnQmlBSktBSUFOZ0lBSUFZZ0NTZ0NCRFlDQkNBR0lBa29BZ2cyQWdnZ0JpQUpLQUlNTmdJTUlBWWdDU2dDRURZQ0VDQUdJQWtvQWhRMkFoUWdCaUFKS0FJWU5nSVlJQVlnQ1NnQ0hEWUNIQ0FHUVNCcUlRWWdDVUVnYWlFSklCQkJBbW9pRUNBdlJ3MEFDd3NnSVVFQmNVVU5BQ0FHSUFrb0FnQTJBZ0FnQmlBSktBSUVOZ0lFSUFZZ0NTZ0NDRFlDQ0NBR0lBa29BZ3cyQWd3TElBdEJOR29oQ3lBQlFSQnFJUUVnQ0VFQmFpSUlJQlpIRFFBTEN5QU5JQTBwQWdRM0F2UUJJQmdnSDBjaGRpQU5RZkFCYWlFTklCOUJBV29oSHlCMkRRQUxDeUFNRUJBZ0RoQVFJQjBvQXFRRElRc0NRQ0FkTFFDSUxFRUVjUVJBSUF0QmYwWU5BU0FkUWFnRGFpRUdJQjBvQWdnaEFVRUFJUkFnQnlFSkEwQWdCaWdDSkNFTklBbEJBVFlDTENBSklBMDJBbFFnQ1NBR0tBSUFOZ0l3SUFZb0FnUWhEU0FKUWdBM0FrUWdDU0FOTmdJMElBa2dCaWdDRERZQ1BDQUpJQVlvQWhBMkFrQWdCaWdDQ0NFTklBa2dFallDVENBSklBMGdBU0FCSUExTEd6WUNPQ0FHUVpRQmFpRUdJQWxCOEFGcUlRa2dDeUFRUmlGM0lCQkJBV29oRUNCM1JRMEFDd3dCQ3lBTFFYOUdEUUFnSFNnQ0NDRUdJQjBvQWdRaERTQUhJUWtnQ3dSQUlBdEJBV3BCZm5FaENFRUFJUUVEUUNBSlFnQTNBa1FnQ1VFQU5nSTBJQWxDQVRjQ0xDQUpJQTAyQWxRZ0NTQVJOZ0k4SUFrZ0RUWUN4QUlnQ1NBU05nSk1JQWtnQmpZQ09DQUpRZ0EzQXJRQ0lBbEJBRFlDcEFJZ0NVSUJOd0tjQWlBSklCRTJBcXdDSUFrZ0JqWUNxQUlnQ1NBU05nSzhBaUFKSUFrb0FzUUJOZ0pBSUFrZ0NTZ0N0QU0yQXJBQ0lBbEI0QU5xSVFrZ0FVRUNhaUlCSUFoSERRQUxDeUFMUVFGeERRQWdDVUlBTndKRUlBbEJBRFlDTkNBSlFnRTNBaXdnQ1NBTk5nSlVJQWtnRVRZQ1BDQUpJQkkyQWt3Z0NTQUdOZ0k0SUFrZ0NTZ0N4QUUyQWtBTElBY2hEUXdDQ3lBTUVCQUxJQXNRRUFzZ0QwRWdhaVFBUVFBZ0RTSUhSUTBBR2lBb1FRRnFJUTRnRlNFZElBY2hDd0pBQWtBRFFDQUxLQUpVUVg5R0RRSWdIaWdDRUVFQ2RCQVVJZ0ZGRFFJZ0FVRUJJQjRvQWhCQkFuUVFGU0VKSUFzUVZ3UkFBMEFnSUNnQ0ZDRUlBa0FDUUNBTEtBSW9JQndvQWd4UERRQWdDeWdDSUNJQklBZ2dDeWdDSEVITUFHeHFJZ1lvQWhoUERRQWdCaWdDSENBQlFaZ0JiR29pRFNnQ0dFVU5BQ0FOUVJ4cUlRaEJBQ0VCQWtBRFFDQVpJQXNvQWh3Z0N5Z0NJQ0FJSUFGQkpHeHFJZ1lvQWhBZ0JpZ0NGQ0FMS0FJa1FTaHNhaUlHS0FJQUlBWW9BZ1FnQmlnQ0NDQUdLQUlNRURsRkJFQWdBVUVCYWlJQklBMG9BaGhKRFFFTUFnc0xJQWtnQ3lnQ0hFRUNkR3BCQURZQ0FDQVRRUUEyQW1nZ0d5Z0NCQ0FnS0FJVUlCd2dDeUFUUWV3QWFpQWRJQk5CNkFCcUlBb2dNeEJXUlEwR0lBc29BaUFoQ0NBTEtBSWNJUllnRXlnQ2FDRWFJQk1vQW13RVFDQVRRUUEyQW1nZ0lDZ0NGQ0FXUWN3QWJHb29BaHdnQ0VHWUFXeHFJaDhvQWhnaUFRUi9JQW9nR21zaEdDQUtJQjFxSVNFZ0gwRWNhaUVNUVFBaEVVRUFJUThnR2lBZGFpSWlJUklEUUFKQUlBd29BZ2dnRENnQ0FFWU5BQ0FNS0FJTUlBd29BZ1JHRFFBZ0RDZ0NGQ0FMS0FJa1FTaHNhaUlHS0FJVUlBWW9BaEJzSWloRkRRQWdCaWdDR0NFQlFRQWhGZ05BSUE4RVFDQUJRUUEyQWpRTElBRW9BaVFpRndSQUlBRW9BZ0FoQ0FKQUlBRWdBU2dDS0NJR0JIOGdDQ0FHUVJoc2FpSUlRUlJyS0FJQUlBaEJER3NvQWdCSEJFQWdDRUVZYXlFSURBSUxJQVpCQVdvRlFRRUxOZ0lvQ3dKQUEwQUNRQUpBQWtBZ0NDZ0NGQ0lOSUJKQmYzTkxEUUFnRHcwQUlBMGdFbW9nSVUwTkFRc2dDeWdDSENFR0lBc29BaUFoRnlBTEtBSWtJUThnR3lnQ0JDZ0NhQVJBSUJNZ0JqWUNXQ0FUSUJjMkFsUWdFeUFSTmdKUUlCTWdEellDVENBVElCWTJBa2dnRXlBWU5nSkVJQk1nRFRZQ1FDQXpRUUZCOHUwQUlCTkJRR3NRRHd3UkN5QVRJQVkyQWpnZ0V5QVhOZ0kwSUJNZ0VUWUNNQ0FUSUE4MkFpd2dFeUFXTmdJb0lCTWdHRFlDSkNBVElBMDJBaUFnTTBFQ1FmTHRBQ0FUUVNCcUVBOGdBVUVBTmdJMElBZ2dDQ2dDRUNJR0lBZ29BZ1JxTmdJRUlBRWdBU2dDSkNJTklBWnJJaGMyQWlSQkFTRVBJQVlnRFVZTkFTQUJJQUVvQWloQkFXb2lDRFlDS0F3REN5QUJLQUlFSVJBZ0FTZ0NOQ0lQSUFFb0FqaEhCSDhnRndVZ0VDQVBRUUYwUVFGeUlnWkJBM1FRRnlJUVJRUkFJRE5CQVVHQUNFRUFFQThNRVFzZ0FTQUdOZ0k0SUFFZ0VEWUNCQ0FCS0FJMElROGdDQ2dDRkNFTklBRW9BaVFMSVFZZ0VDQVBRUU4wYWlJWElBMDJBZ1FnRnlBU05nSUFJQUVnRDBFQmFqWUNOQ0FJSUFnb0FnQWdEV28yQWdBZ0NDQUlLQUlRSWhBZ0NDZ0NCR29pRHpZQ0JDQUJJQVlnRUdzaUZ6WUNKQ0FJSUE4MkFnZ2dEU0FTYWlFU1FRQWhEeUFHSUJCR0RRQWdBU0FCS0FJb1FRRnFOZ0lvSUFoQkdHb2hDQXNnRncwQUN5QUJLQUlvSVFnTElBRWdDRFlDTEFzZ0FVRkFheUVCSUJaQkFXb2lGaUFvUncwQUN5QWZLQUlZSVFFTElBeEJKR29oRENBUlFRRnFJaEVnQVVrTkFBc2dDeWdDSENFV0lBc29BaUFoQ0NBWUlCSWdJbXNnRHhzRlFRQUxJQnBxSVJvTElCNG9BaGdnRmtFMGJHb2lBU0FJSUFFb0FpUWlBU0FCSUFoSkd6WUNKQXdDQ3lBZ0tBSVVJUWdMSUJOQkFEWUNhQ0FiS0FJRUlBZ2dIQ0FMSUJOQjdBQnFJQjBnRTBIb0FHb2dDaUF6RUZaRkRRUWdDeWdDSENFV0lCTW9BbWdoR2lBVEtBSnNSUTBBQWtBZ0lDZ0NGQ0FXUWN3QWJHb29BaHdnQ3lnQ0lDSWlRWmdCYkdvaUFTZ0NHQ0lvUlFSQVFRQWhGd3dCQ3lBS0lCcHJJUkFnQVVFY2FpRU1JQXNvQWlRaElVRUFJUmRCQUNFWUEwQUNRQ0FNS0FJSUlBd29BZ0JHRFFBZ0RDZ0NEQ0FNS0FJRVJnMEFJQXdvQWhRZ0lVRW9iR29pQVNnQ0ZDQUJLQUlRYkNJblJRMEFJQUVvQWhnaEVVRUFJUjhEUUNBUktBSWtJZ0VFUUNBUktBSUFJUWdDUUNBUklCRW9BaWdpRWdSL0lBZ2dFa0VZYkdvaUNFRVVheWdDQUNBSVFReHJLQUlBUndSQUlBaEJHR3NoQ0F3Q0N5QVNRUUZxQlVFQkN5SVNOZ0lvQ3dKQUFrQWdDQ2dDRkNJUElCZHFJZzBnRDBrTkFDQU5JQkJMRFFBRFFDQU5JUmNnQ0NBSUtBSVFJZzBnQ0NnQ0JHbzJBZ1FnQVNBTmF5RUdJQUVnRFVZTkFpQVJJQkpCQVdvaUVqWUNLQ0FJS0FJc0lnOGdGMm9pRFNBUFR3UkFJQWhCR0dvaENDQUdJUUVnRFNBUVRRMEJDd3NnRVNBR05nSWtDeUFiS0FJRUtBSm9JUUVnRXlBV05nSVlJQk1nSWpZQ0ZDQVRJQmcyQWhBZ0V5QWhOZ0lNSUJNZ0h6WUNDQ0FUSUJBMkFnUWdFeUFQTmdJQUlETkJBVUVDSUFFYlFaM3RBQ0FURUE4Z0FRMEtJQXNvQWh3aEZnd0ZDeUFSSUFZMkFpUUxJQkZCUUdzaEVTQWZRUUZxSWg4Z0owY05BQXNMSUF4QkpHb2hEQ0FZUVFGcUloZ2dLRWNOQUFzTElCY2dHbW9oR2dzQ1FDQUpJQlpCQW5ScUtBSUFSUTBBSUI0b0FoZ2dGa0UwYkdvaUFTZ0NKQTBBSUFFZ0lDZ0NGQ0FXUWN3QWJHb29BaGhCQVdzMkFpUUxJQW9nR21zaENpQWFJQjFxSVIwZ0N4QlhEUUFMQ3lBSkVCQWdDMEh3QVdvaEN5QWpRUUZxSWlNZ0hDZ0NwQU5ORFFBTElBY2dEaEE2SUVBZ0hTQVZhellDQ0VFQkRBSUxJQWNnRGhBNklBa1FFRUVBREFFTElBY2dEaEE2UVFBTElYZ2dFMEh3QUdva0FDQWJFQ3dnZUVVTkFTQVpLQUlnS0FMUUt5RUpJQmtvQWhRb0FnQWlGaWdDRkNFZElFQkJBVFlDREVFQUlRMUJBQ0VWSUJrb0FpQWlBU2dDRENBQktBSUlSZ1JBSUFrb0FoQkJCSFpCQVhFaEZRc0NRQ0FXS0FJUUlqRkZEUUFEUUFKQUlCa29Ba1FpQVFSQUlBRWdEVUVDZEdvb0FnQkZEUUVMSUVCQkRHb2hFMEVBSVRFQ1FDQWRLQUlZSWdGRkRRQWdHU2dDTENFUUEwQWdIU2dDSENBeFFaZ0JiR29pRENnQ0dDSUxCRUFnREVFY2FpRVNJQXdvQWhRaEFTQU1LQUlRSVJkQkFDRU9BMEFnQVNBWGJBUkFJQklnRGtFa2JHb2hEMEVBSVFnRFFDQVpJQjBvQWhBZ01TQVBLQUlRSUE4b0FoUWdDRUVvYkdvaUJ5Z0NBQ0FIS0FJRUlBY29BZ2dnQnlnQ0RCQTVJUVlnQnlnQ0ZDSUxJQWNvQWhBaUNtd2hBUUpBSUFZRVFDQUJSUTBCUVFBaENnTkFBa0FnR1NBZEtBSVFJREVnRHlnQ0VDQUhLQUlZSUFwQkJuUnFJZ1lvQWdnZ0JpZ0NEQ0FHS0FJUUlBWW9BaFFRT1VVRVFDQUdLQUk4SWdGRkRRRWdBUkFRSUFaQkFEWUNQQXdCQ3lBWktBSkFSUVJBSUFZb0Fqd05BU0FHS0FJUUlBWW9BZ2hHRFFFZ0JpZ0NGQ0FHS0FJTVJnMEJDMEVCUVN3UUV5SUJSUVJBSUVCQkFEWUNEQXdLQ3lBWktBSkFJUXNnQVVFQU5nSWtJQUVnRXpZQ0hDQUJJQWsyQWhRZ0FTQWROZ0lRSUFFZ0R6WUNEQ0FCSUFZMkFnZ2dBU0F4TmdJRUlBRWdDellDQUNBQklCVTJBaWdnQVNBek5nSWdJQUVnRUNnQ0JFRUJTallDR0NBUVFRNGdBUkF0SUVBb0FneEZEUWtMSUFwQkFXb2lDaUFIS0FJVUlBY29BaEJzU1EwQUN3d0JDeUFCUlEwQVFRQWhGd05BSUFjb0FoZ2dGMEVHZEdvaUFTZ0NQQ0lHQkVBZ0JoQVFJQUZCQURZQ1BDQUhLQUlRSVFvZ0J5Z0NGQ0VMQ3lBWFFRRnFJaGNnQ2lBTGJFa05BQXNMSUFoQkFXb2lDQ0FNS0FJVUlnRWdEQ2dDRUNJWGJFa05BQXNnRENnQ0dDRUxDeUFPUVFGcUlnNGdDMGtOQUFzZ0hTZ0NHQ0VCQ3lBeFFRRnFJakVnQVVrTkFBc0xJRUFvQWd4RkRRSWdGaWdDRUNFeEN5QUpRYmdJYWlFSklCMUJ6QUJxSVIwZ0RVRUJhaUlOSURGSkRRQUxDMEVBSVRFZ0dTZ0NMQkFnSUVBb0FneEZEUUVDUUNBWktBSkFEUUFnR1NnQ0dDSWRLQUlRUlEwQVFRQWhDUU5BSUJrb0FoUW9BZ0FvQWhRZ0NVSE1BR3hxSWdFb0Fod2dIU2dDR0NBSlFUUnNhaWdDSkVHWUFXeHFJZ2NvQW9nQklRWWdCeWdDa0FFaEN5QUhLQUtNQVNFS0lBY29BcFFCSVFjZ0FTZ0NOQkFRSUFGQkFEWUNOQUpBSUJrb0FrUWlEUVJBSUEwZ0NVRUNkR29vQWdCRkRRRUxJQVlnQzBZTkFDQUhJQXBHRFFBZ0J5QUtheUlIclNBTElBWnJJZ2F0ZmtJZ2lFSUFVZ1JBSUROQkFVR1VGa0VBRUE4TUJRc2dCaUFIYkNJSFFZQ0FnSUFFVHdSQUlETkJBVUdVRmtFQUVBOE1CUXNnQVNBSFFRSjBFQmdpQVRZQ05DQUJEUUFnTTBFQlFaUVdRUUFRRHd3RUN5QUpRUUZxSWdrZ0dTZ0NHQ0lkS0FJUVNRMEFDd3NnR1NnQ0lDRWRJQmtvQWhRb0FnQWlGeWdDRUFSQUlCY29BaFFoQ1NBZEtBTFFLeUVkSUJrb0FoZ29BaGdoRFVFQUlRc0RRQUpBSUJrb0FrUWlBUVJBSUFFZ0MwRUNkR29vQWdCRkRRRUxJQTBvQWlSQkFXb2hBU0FkS0FJVVFRRkdCRUFnQVNFZVFRQWhCa0VBSVF6OURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBaGdBRWpBRUVnYXlJbEpBQUNRQUpBSUJrb0FrQUVRRUVCSVFjZ0FVRUJSZzBDSUFrb0Fod2lEQ0FKS0FJWVFaZ0JiR29pQVVHUUFXc29BZ0FpRUNBQlFaZ0JheWdDQUNJVFJnMENJQXdvQWdRaEVTQU1LQUlNSVJnZ0RDZ0NBQ0VhSUF3b0FnZ2hHeUFaS0FJc0lnNG9BZ1FoRmlBZVFRRnJJZ29oRlNBTUlRY0NRQ0FLUVFSUEJFQWdDa0VEY1NFVklBY2dDa0Y4Y1NJSVFaZ0JiR29oQjBFQUlRRURRQ0NBQVNBTUlBRkJtQUZzYWlJR1FlZ0VhaUFHUWRBRGFpQUdRYmdDYWlBRy9Ra0NvQUg5VmdJQUFmMVdBZ0FDL1ZZQ0FBTWdCa0hnQkdvZ0JrSElBMm9nQmtHd0Ftb2dCdjBKQXBnQi9WWUNBQUg5VmdJQUF2MVdBZ0FEL2JFQi9ia0JJQVpCN0FScUlBWkIxQU5xSUFaQnZBSnFJQWI5Q1FLa0FmMVdBZ0FCL1ZZQ0FBTDlWZ0lBQXlBR1FlUUVhaUFHUWN3RGFpQUdRYlFDYWlBRy9Ra0NuQUg5VmdJQUFmMVdBZ0FDL1ZZQ0FBUDlzUUg5dVFFaGdBRWdBVUVFYWlJQklBaEhEUUFMSUlBQklJQUJJSUFCL1EwSUNRb0xEQTBPRHdBQkFnTUFBUUlEL2JrQklvQUJJSUFCSUlBQi9RMEVCUVlIQUFFQ0F3QUJBZ01BQVFJRC9ia0IvUnNBSVFZZ0NDQUtSZzBCQ3dOQUlBWWdCeWdDb0FFZ0J5Z0NtQUZySWdFZ0FTQUdTUnNpQVNBSEtBS2tBU0FIS0FLY0FXc2lCaUFCSUFaTEd5RUdJQWRCbUFGcUlRY2dGVUVCYXlJVkRRQUxDMEVBSVFjZ0JrSC8vLzgvU3cwQ0lDVWdCa0VGZENJU0VERWlEellDRUNBUFJRMENJQ1VnRHpZQ0FDQUtCRUFnRUNBVGF5RVFJQmdnRVdzaENDQWJJQnBySVFFRFFDQUpLQUlrSVJNZ0pTQUlJaFUyQWdnZ0pTQUJJZ2MyQWhnZ0RDZ0NuQUVoQmlBTUtBS2tBU0VJSUF3b0FxQUJJUUVnSlNBTUtBS1lBU0lSUVFKdk5nSWNJQ1VnQVNBUmF5SUJJQWRyTmdJVUFrQWdGa0VDU0NJYVJTQUlJQVpySWdoQkFVdHhSUVJBUVFBaEJpQUlSUTBCQTBBZ0pVRVFhaUFUSUFZZ0VHeEJBblJxRUYwZ0JrRUJhaUlHSUFoSERRQUxEQUVMSUFnZ0ZpQUlJQlpKR3lJUlFRRnJJUnNnQ0NBUmJpRVlRUUFoQndOQVFTUVFGQ0lHUlEwRklDWDlBQUlRSVlBQklBWWdFellDR0NBR0lCQTJBaFFnQmlBQk5nSVFJQVlnZ0FIOUN3SUFJQVlnQnlBWWJEWUNIQ0FISUJ0R0lSOGdCaUFJSUFkQkFXb2lCeUFZYkNBZkd6WUNJQ0FHSUJJUU1TSWZOZ0lBSUI5RkJFQkJBQ0VISUE0UUlDQUdFQkFnRHhBUURBY0xJQTVCQ2lBR0VDMGdCeUFSUncwQUN5QU9FQ0FMSUNVZ0NDQVZhellDQkNBbElBd29BcHdCUVFKdk5nSU1Ba0FnR2tVZ0FVRUJTM0ZGQkVCQkNDRUhRUUFoQmlBQlFRaFBCRUFEUUNBbElCTWdCa0VDZEdvZ0VFRUlFREFnQnlJR1FRaHFJZ2NnQVUwTkFBc0xJQUVnQmswTkFTQWxJQk1nQmtFQ2RHb2dFQ0FCSUFackVEQU1BUXNnQVNBV0lBRWdGa2tiSWhWQkFXc2hHQ0FCSUJWdUlSRkJBQ0VIQTBCQkpCQVVJZ1pGRFFVZ0pmMEFBZ0FoZ0FFZ0JpQVROZ0lZSUFZZ0VEWUNGQ0FHSUFnMkFoQWdCaUNBQWYwTEFnQWdCaUFISUJGc05nSWNJQWNnR0VZaEdpQUdJQUVnQjBFQmFpSUhJQkZzSUJvYk5nSWdJQVlnRWhBeElobzJBZ0FnR2tVRVFFRUFJUWNnRGhBZ0lBWVFFQ0FQRUJBTUJ3c2dEa0VMSUFZUUxTQUhJQlZIRFFBTElBNFFJQXNnREVHWUFXb2hEQ0FLUVFGcklnb05BQXNMUVFFaEJ5QVBFQkFNQWd0QkFTRUhJQWtvQWh3aUNDQWVRWmdCYkdvaU5VR1lBV3NpWHlnQ0FDQTFRWkFCYXlnQ0FFWU5BU0ExUVpRQmF5SmdLQUlBSURWQmpBRnJLQUlBUmcwQklBZ29BZ1FoRGlBSUtBSU1JUThnQ0NnQ0FDRVdJQWdvQWdnaEVDQUpLQUpFSVNFZ0NTZ0NRQ0VpSUFrb0Fqd2hLQ0FKS0FJNElUQWdDU0FlRUZ3aU9VVUVRRUVBSVFjTUFnc0NRQUpBSUI1QkFVY0VRQUpBQWtBZ0hrRUJheUlLUVFSSkJFQWdDaUVCSUFnaEJ3d0JDeUFLUVFOeElRRWdDQ0FLUVh4eEloVkJtQUZzYWlFSEEwQWdnQUVnQ0NBTVFaZ0JiR29pQmtIb0JHb2dCa0hRQTJvZ0JrRzRBbW9nQnYwSkFxQUIvVllDQUFIOVZnSUFBdjFXQWdBRElBWkI0QVJxSUFaQnlBTnFJQVpCc0FKcUlBYjlDUUtZQWYxV0FnQUIvVllDQUFMOVZnSUFBLzJ4QWYyNUFTQUdRZXdFYWlBR1FkUURhaUFHUWJ3Q2FpQUcvUWtDcEFIOVZnSUFBZjFXQWdBQy9WWUNBQU1nQmtIa0JHb2dCa0hNQTJvZ0JrRzBBbW9nQnYwSkFwd0IvVllDQUFIOVZnSUFBdjFXQWdBRC9iRUIvYmtCSVlBQklBeEJCR29pRENBVlJ3MEFDeUNBQVNDQUFTQ0FBZjBOQ0FrS0N3d05EZzhBQVFJREFBRUNBLzI1QVNLQUFTQ0FBU0NBQWYwTkJBVUdCd0FCQWdNQUFRSURBQUVDQS8yNUFmMGJBQ0VHSUFvZ0ZVWU5BUXNEUUNBR0lBY29BcUFCSUFjb0FwZ0JheUlLSUFZZ0Nrc2JJZ1lnQnlnQ3BBRWdCeWdDbkFGcklnb2dCaUFLU3hzaEJpQUhRWmdCYWlFSElBRkJBV3NpQVEwQUN3c2dCa0dBZ0lDQUFVOE5BaUFHUVFSMEVERWlGRVVOQWdKQUlCNUZEUUFnRHlBT2F5RVNJQkFnRm1zaEdpQVVRUVJySVRzZ0ZFRUVhaUVrSUJSQkRHb2hLU0FVUVJ4cUlVTWdGRUVZYWlFZklCUkJGR29oSUNBVVFReHJJVVFnRkVFSWFpRXFJQlJCRUdvaE5pQVVRUkJySVRjZ0ZFRUlheUZCSUNHdElZWUJJQ0t0SVljQklDaXRJWW9CSURDdElZc0JRUUVoUmdOQUlBZ29BcHdCSWdGQkFtOGhSeUFJS0FLWUFTSUhRUUp2SVR3Z0NDZ0NwQUVnQVdzaUp5QVNheUVzSUFnb0FxQUJJQWRySWkwZ0dtc2hMaUF3SWd3aEJ5QW9JZ1loQ2lBaUlnRWhPaUFoSWc4aEVRSkFJQWtvQWhRaUZTQkdSZzBBSUJVZ1Jtc2hGVUVBSVFwQkFDRUhJQXdFUUVKL0lCV3RJb2dCaGtKL2hTQ0xBWHdnaUFHSXB5RUhDeUFvQkVCQ2Z5QVZyU0tJQVlaQ2Y0VWdpZ0Y4SUlnQmlLY2hDZ3RCQUNFUFFRQWhBU0FpQkVCQ2Z5QVZyU0tJQVlaQ2Y0VWdod0Y4SUlnQmlLY2hBUXNnSVFSQVFuOGdGYTBpaUFHR1FuK0ZJSVlCZkNDSUFZaW5JUThMUVFBaE9rRUFJUXhCQVNBVlFRRnJkQ0lPSURCSkJFQWdNQ0FPYTYxQ2Z5QVZyU0tJQVlaQ2Y0VjhJSWdCaUtjaERBc2dEaUFpU1FSQUlDSWdEbXV0UW44Z0ZhMGlpQUdHUW4rRmZDQ0lBWWluSVRvTFFRQWhFVUVBSVFZZ0RpQW9TUVJBSUNnZ0RtdXRRbjhnRmEwaWlBR0dRbitGZkNDSUFZaW5JUVlMSUE0Z0lVOE5BQ0FoSUE1cnJVSi9JQld0SW9nQmhrSi9oWHdnaUFHSXB5RVJDMEYvSURvZ0NDZ0N0QUVpRldzaURrRUFJQTRnT2swYklnNUJBbW9pRmlBT0lCWkxHeUlPSUM0Z0RpQXVTUnNpTkVGL0lBRWdDQ2dDMkFFaUUyc2lEa0VBSUFFZ0RrOGJJZ0ZCQW1vaURpQUJJQTVMR3lJQklCb2dBU0FhU1JzaUppQThHMEVCZENJQklDWWdOQ0E4RzBFQmRFRUJjaUlPSUFFZ0Rrc2JJa2dnTFVraEdDQU1JQlZySWdGQkFDQUJJQXhOR3lJQlFRSnJJZ3hCQUNBQklBeFBHeUlRSUFjZ0Uyc2lBVUVBSUFFZ0IwMGJJZ0ZCQW1zaURFRUFJQUVnREU4YkloWWdQQnRCQVhRaURDQVdJQkFnUEJ0QkFYUkJBWElpSzBraEx5QUtJQWdvQXJnQklodHJJaFZCQUNBS0lCVlBHeUlLUVFKckloVkJBQ0FLSUJWUEd5SVZJU01nQmlBSUtBTGNBU0lLYXlJT1FRQWdCaUFPVHhzaUJrRUNheUlPUVFBZ0JpQU9UeHNpRGlFOVFYOGdEeUFiYXlJR1FRQWdCaUFQVFJzaUJrRUNhaUlQSUFZZ0Qwc2JJZ1lnRWlBR0lCSkpHeUliSVQ1QmZ5QVJJQXBySWdaQkFDQUdJQkZOR3lJR1FRSnFJZ29nQmlBS1N4c2lCaUFzSUFZZ0xFa2JJaHdoUHlCSEJFQWdGU0U5SUJ3aFBpQWJJVDhnRGlFakN5QklJQzBnR0JzaFNTQU1JQ3NnTHhzaEdDQVNJQnhxSVZBZ0RpQVNhaUZSSUNjRVFDQVVJQlpCQTNRaUJtb2lSVUVFYWlBN0lDNUJBM1FpQ21vaVVpQVdJQzVJSWd3YklWTWdCaUFrYWlJR0lDWWdMaUFtSUM1SUd5SVBJQWNnRXlBSElCTkpHMEVDSUFFZ0FVRUNUeHRxSWdGcUloTWdCMnRCQW1zaUVVRURkQ0lyYWlBR1NTQXBJQWNnQVd0QkEzUnFJZ0VnSzJvZ0FVbHlJQkZCLy8vLy93RkxjaUZVSURRZ0drRUJheUFhSURSS0d5RXZRUUFoRVNBYVFRRktJQzVCQUVweUlWVWdKQ0E4UVFKMElnRnJJQkJCQTNScUlWWWdBU0JGYWlGWElCWWdCMEYvY3lBVGFpSktRWHh4SWpKcUlUZ2dGa0VCYWlJVElESnFJVUlnR2lBMGFpRllJQkFnR21vaFdTQVcvUkg5REFBQUFBQUJBQUFBQWdBQUFBTUFBQUQ5cmdFaGd3RWdGQ0FZUVFKMGFpRmFJRUVnR2tFRGRDSUJhaUZMSUFFZ08yb2hUQ0FLSUVGcUlVMGdHa1VnTGtFQlJuRWhXeUFVSUVsQkFuUWlBV29oWENBQklEdHFJVjBnRS8wUi9Rd0FBQUFBQVFBQUFBSUFBQUFEQUFBQS9hNEJJWVFCSURzZ0ZpQXVJQXdiUVFOMGFpRmVBMEFDUUFKQUlCRWdHMGtnRVNBVlQzRU5BQ0FSSUZCSklCRWdVVTl4RFFBZ0VVRUJhaUVyREFFTElDMGdTRXNFUUNCZFFRQTJBZ0FnWEVFQU5nSUFDeUE1SUJZZ0VTQW1JQkZCQVdvaUt5QlhRUUpCQUJBZUlEa2dXU0FSSUZnZ0t5QldRUUpCQUJBZUFrQUNRQUpBSUR4RkJFQWdWVVVOQXlBV0lDWk9EUUlDUUFKQUlCWkJBRW9FUUNCZUtBSUFJUWNNQVFzZ0pDZ0NBQ0lISVFFZ0ZrRUFTQTBCQ3lBSElRRWdVeWdDQUNFSEN5QkZJRVVvQWdBZ0FTQUhha0VDYWtFQ2RXczJBZ0FnRXlJSElBOU9EUUZCQUNFSElJUUJJWUFCSUlNQklZSUJJQk1oQVNBV0lRb2dTa0VVU1NCVWNrVUVRQU5BSUJRZ2dBRkJBZjJyQVNLQkFmMGJBRUVDZEdvaUFTQVVJSUVCL1JzRFFRSjBhaUlHSUJRZ2dRSDlHd0pCQW5ScUlnb2dGQ0NCQWYwYkFVRUNkR29pRENBQi9Ra0NBUDFXQWdBQi9WWUNBQUw5VmdJQUF5QVVJSUlCUVFIOXF3SDlEQUVBQUFBQkFBQUFBUUFBQUFFQUFBRDlVQ0tGQWYwYkEwRUNkR29nRkNDRkFmMGJBa0VDZEdvZ0ZDQ0ZBZjBiQVVFQ2RHb2dGQ0NGQWYwYkFFRUNkR3I5Q1FJQS9WWUNBQUg5VmdJQUF2MVdBZ0FESUJRZ2dRSDlEQUVBQUFBQkFBQUFBUUFBQUFFQUFBRDlVQ0tCQWYwYkEwRUNkR29nRkNDQkFmMGJBa0VDZEdvZ0ZDQ0JBZjBiQVVFQ2RHb2dGQ0NCQWYwYkFFRUNkR3I5Q1FJQS9WWUNBQUg5VmdJQUF2MVdBZ0FEL2E0Qi9Rd0NBQUFBQWdBQUFBSUFBQUFDQUFBQS9hNEJRUUw5ckFIOXNRRWlnUUg5V2dJQUFDQU1JSUVCL1ZvQ0FBRWdDaUNCQWYxYUFnQUNJQVlnZ1FIOVdnSUFBeUNDQWYwTUJBQUFBQVFBQUFBRUFBQUFCQUFBQVAydUFTR0NBU0NBQWYwTUJBQUFBQVFBQUFBRUFBQUFCQUFBQVAydUFTR0FBU0FIUVFScUlnY2dNa2NOQUFzZ1FpRUJJRGdoQ2lBUElRY2dNaUJLUmcwQ0N3TkFJQlFnQVVFRGRHb2lCeUFIS0FJQUlCUWdDa0VEZEdvb0FnUWdCeWdDQkdwQkFtcEJBblZyTmdJQUlBRWlDa0VCYWlJQklBOUhEUUFMSUE4aEJ3d0JDd0pBSUZ0RkJFQWdGaUlISUNaT0RRRURRQ0FVSUFkQkEzUnFJZ0VvQWdRaEJpQUJJQVlDZndKQUlBZEJBRTRFUUNBQklFMGdCeUF1U0Jzb0FnQWhPaUFIUVFGcUlRRU1BUXNnRkNnQ0FDRTZRUUFoQVNBVUlBZEJBV29pQncwQkdnc2dBU0F1VGdSQUlBRWhCeUJOREFFTElCUWdBU0lIUVFOMGFnc29BZ0FnT21wQkFtcEJBblZyTmdJRUlBY2dKa2dOQUFzTUFRc2dGQ0FVS0FJQVFRSnROZ0lBREFNTElCQWlCeUEwVGcwQ0EwQWdGQ0FIUVFOMGFpSUJLQUlBSVFvQ2Z5QUhRUUJJQkVBZ0pDZ0NBQ0VHSUNRTUFRc2dGQ0FIUVFOMGFrRUVhaUJNSUFjZ0drZ2JLQUlBSVFZZ0pDQUhSUTBBR2lCTUlBRkJCR3NnQnlBYVNoc0xJUXdnQVNBTUtBSUFJQVpxUVFGMUlBcHFOZ0lBSUFkQkFXb2lCeUEwUncwQUN3d0NDeUFISUNaT0RRQURRQ0FVSUFkQkEzUnFJZ0VnQVNnQ0FBSi9Ba0FnQjBFQVNnUkFJRHNnQnlBdUlBY2dMa2diUVFOMGFpZ0NBQ0VLREFFTElDUW9BZ0FoQ2lBa0lBZEJBRWdOQVJvTElGSWdCeUF1VGcwQUdpQVVJQWRCQTNScVFRUnFDeWdDQUNBS2FrRUNha0VDZFdzMkFnQWdCMEVCYWlJSElDWkhEUUFMQ3lBUUlEUk9EUUFnTHlBUUlnRWlCMG9FUUFOQUlCUWdCMEVEZEdvaUFTQUJLQUlFSUJRZ0IwRUJhaUlIUVFOMGFpZ0NBQ0FCS0FJQWFrRUJkV28yQWdRZ0J5QXZSdzBBQ3lBdklRRUxJQUVnTkU0TkFBTkFBbjhDUUNBQklnZEJBRTRFUUNBVUlBRkJBM1JxSUVzZ0FTQWFTQnNvQWdBaERDQUJRUUZxSVFvTUFRc2dGQ2dDQUNFTVFRQWhDaUFVSUFkQkFXb2lBUTBCR2dzZ0NpQWFUZ1JBSUFvaEFTQkxEQUVMSUJRZ0NpSUJRUU4wYWdzaEJpQVVJQWRCQTNScUlnY2dCeWdDQkNBR0tBSUFJQXhxUVFGMWFqWUNCQ0FCSURSSURRQUxDeUE1SUJnZ0VTQkpJQ3NnV2tFQlFRQkJBQkFtUlEwR0N5QXJJaEVnSjBjTkFBc0xJQWhCbUFGcUlRZ2dQa0VCZENJQklEOUJBWFJCQVhJaUJ5QUJJQWRMR3lJQklDY2dBU0FuU1JzaFNDQkRJQlZCQlhRaUFXb2dPeUFzUVFWMElnZHFJQlVnTEVnaUJoc2hTaUFCSUI5cUlBY2dRV29nQmhzaFN5QUJJQ0JxSUFjZ1JHb2dCaHNoVENBQklEWnFJQWNnTjJvZ0Joc2hUU0FjSUJKQkFXc2dFaUFjU2hzaERDQXNRUUJLSWc4Z0VrRUJTbkloVWlBQklCUnFJaXNnUjBFRWRHb2hVeUFwSUJKQkEzUWlHa0VJYXlJK1FRQWdFa0VBVEJ0QkFuUWlDbW9oVkNBS0lDcHFJVlVnQ2lBa2FpRldJQW9nRkdvaFZ5QXBRUUFnTEVFRGRDSUtRUWhySWo4Z0R4dEJBblFpRDJvaFdDQVBJQ3BxSVZrZ0R5QWthaUZhSUE4Z0ZHb2hXeUFVUVFRZ1IwRUNkR3RCQW5ScUlBNUJCWFJxSVZ3Z0d5QXNJQnNnTEVnYklROGdGVUVCYWlFUUlCUWdJMEVCZENJV0lEMUJBWFJCQVhJaUV5QVRJQlpMR3lKZFFRUjBhaUZlSUFFZ0tXb2hQU0FCSUNwcUlTTWdBU0FrYWlFdklCcEJBV3NoT0NBYVFRSnJJVUlnR2tFRGF5RXVJQlFnRWtFRmRHb2hZU0FhUVFScklUUWdDa0VGYXlGaUlBcEJCbXNoWXlBS1FRZHJJV1FnRWtVZ0xFRUJSbkVoWlNBcElBZEJFR3NpQVdvaEppQUJJQ3BxSVRvZ0FTQWthaUU4SUFFZ0ZHb2hSU0FwSUQ1QkFuUWlBV29oYUNBQklDcHFJV2tnQVNBa2FpRnFJQUVnRkdvaGF5QTdJQlVnTENBR0cwRUZkQ0lCYWlGc0lBRWdRV29oRXlBQklFUnFJUkVnQVNBM2FpRnRJQ2tnUDBFQ2RDSUJhaUZ1SUFFZ0ttb2hieUFCSUNScUlYQWdBU0FVYWlGeEEwQUNRQUpBQW44Q1FDQVlJaFlnU1VrRVFDQTVJQllnRlVFRUlFa2dGbXNpQVNBQlFRUlBHeUFXYWlJWUlCc2dVMEVCUVFnUUhpQTVJQllnVVNBWUlGQWdYRUVCUVFnUUhpQkhSUVJBSUZKRkRRVWdGU0FiVGcwRUFuOGdGVUVBU2dSQUlHMG9BZ0FoQnlBVElRWWdFU0VLSUd3TUFRc2dOaWdDQUNFSElCVkJBRWdOQXlBZklRWWdJQ0VLSUVNTElYa2dLeUFyS0FJQUlBY2dUU2dDQUdwQkFtcEJBblZyTmdJQUlDOGdMeWdDQUNBS0tBSUFJRXdvQWdCcVFRSnFRUUoxYXpZQ0FDQWpJQ01vQWdBZ0JpZ0NBQ0JMS0FJQWFrRUNha0VDZFdzMkFnQWdTaWdDQUNFSElIa29BZ0FNQXdzZ1pRUkFJQlFnRkNnQ0FFRUNiVFlDQUNBa0lDUW9BZ0JCQW0wMkFnQWdLaUFxS0FJQVFRSnROZ0lBSUNrZ0tTZ0NBRUVDYlRZQ0FBd0ZDeUFiSUJVaUIwb0VRQU5BSUFkQkEzUWhBUUovQWtBZ0IwRUFTQVJBSUFkQmYwWU5BU0FVSUFGQkFuUnFJZ0VnQVNnQ0VDQVVLQUlBUVFGMFFRSnFRUUoxYXpZQ0VDQUJJQUVvQWhRZ0pDZ0NBRUVCZEVFQ2FrRUNkV3MyQWhRZ0FTQUJLQUlZSUNvb0FnQkJBWFJCQW1wQkFuVnJOZ0lZSUNrb0FnQkJBWFJCQW1vaEJpQUJRUnhxREFJTElDd2dCMEVCYWlJR1RBUkFJQlFnQVVFQ2RHb2lDaUFLS0FJUUlCUWdBU0EvSUFjZ0xFZ2lCaHRCQW5ScUtBSUFJSEVvQWdCcVFRSnFRUUoxYXpZQ0VDQUtJQW9vQWhRZ0ZDQUJRUUZ5SUdRZ0JodEJBblJxS0FJQUlIQW9BZ0JxUVFKcVFRSjFhellDRkNBS0lBb29BaGdnRkNBQlFRSnlJR01nQmh0QkFuUnFLQUlBSUc4b0FnQnFRUUpxUVFKMWF6WUNHQ0FVSUFGQkEzSWdZaUFHRzBFQ2RHb29BZ0FnYmlnQ0FHcEJBbW9oQmlBS1FSeHFEQUlMSUJRZ0FVRUNkR29pQVNBQktBSVFJQUVvQWdBZ0ZDQUdRUVYwYWlJR0tBSUFha0VDYWtFQ2RXczJBaEFnQVNBQktBSVVJQUVvQWdRZ0JpZ0NCR3BCQW1wQkFuVnJOZ0lVSUFFZ0FTZ0NHQ0FCS0FJSUlBWW9BZ2hxUVFKcVFRSjFhellDR0NBQktBSU1JQVlvQWd4cVFRSnFJUVlnQVVFY2Fnd0JDeUEzSURjb0FnQWdGQ2dDQUNCYktBSUFha0VDYWtFQ2RXczJBZ0FnUkNCRUtBSUFJQ1FvQWdBZ1dpZ0NBR3BCQW1wQkFuVnJOZ0lBSUVFZ1FTZ0NBQ0FxS0FJQUlGa29BZ0JxUVFKcVFRSjFhellDQUNBcEtBSUFJRmdvQWdCcVFRSnFJUVlnT3dzaUFTQUJLQUlBSUFaQkFuVnJOZ0lBSUFkQkFXb2lCeUFiUncwQUN3c2dIQ0FPSWdkTURRUURRQ0FIUVFOMElRRUNmeUFIUVFCSUJFQWdGQ0FCUVFKMGFpSUJJQUVvQWdBZ05pZ0NBRUVCZEVFQmRXbzJBZ0FnQVNBQktBSUVJQlFvQWhSQkFYUkJBWFZxTmdJRUlBRWdBU2dDQ0NBVUtBSVlRUUYwUVFGMWFqWUNDQ0FVS0FJY1FRRjBJUW9nQVVFTWFnd0JDeUFIQkVBZ0ZDQUJRUUowYWlJR0lBWW9BZ0FnWVNBR0lBY2dFa29pTWh0QkVHc29BZ0FnRkNBQlFRUnlJRFFnQnlBU1NDSUtHMEVDZEdvb0FnQnFRUUYxYWpZQ0FDQUdJQVlvQWdRZ1JDQWFJQUVnTWh0QkFuUWlNbW9vQWdBZ0ZDQUJRUVZ5SUM0Z0NodEJBblJxS0FJQWFrRUJkV28yQWdRZ0JpQUdLQUlJSURJZ1FXb29BZ0FnRkNBQlFRWnlJRUlnQ2h0QkFuUnFLQUlBYWtFQmRXbzJBZ2dnTWlBN2FpZ0NBQ0FVSUFGQkIzSWdPQ0FLRzBFQ2RHb29BZ0JxSVFvZ0JrRU1hZ3dCQ3lBVUlCUW9BZ0FnTmlnQ0FDQVVRUVFnTkNBSElCSklJZ0ViUVFKMGFpZ0NBR3BCQVhWcU5nSUFJQ1FnSkNnQ0FDQVVLQUlVSUJSQkJTQXVJQUViUVFKMGFpZ0NBR3BCQVhWcU5nSUFJQ29nS2lnQ0FDQVVLQUlZSUJSQkJpQkNJQUViUVFKMGFpZ0NBR3BCQVhWcU5nSUFJQlFvQWh3Z0ZFRUhJRGdnQVJ0QkFuUnFLQUlBYWlFS0lDa0xJZ0VnQVNnQ0FDQUtRUUYxYWpZQ0FDQUhRUUZxSWdjZ0hFY05BQXNNQkFzZ0xTRWFJQ2NoRWlCR1FRRnFJa1lnSGtjTkJRd0dDeUFySUNzb0FnQWdCMEVCZEVFQ2FrRUNkV3MyQWdBZ0x5QXZLQUlBSUNBb0FnQkJBWFJCQW1wQkFuVnJOZ0lBSUNNZ0l5Z0NBQ0FmS0FJQVFRRjBRUUpxUVFKMWF6WUNBQ0JES0FJQUlnY0xJUUVnUFNBOUtBSUFJQUVnQjJwQkFtcEJBblZyTmdJQUlCVWhCaUFRSWdFaUJ5QVBTQVJBQTBBZ0ZDQUJRUVYwYWlJSElBZjlBQUlBSURZZ0JrRUZkR3I5QUFJQUlBZjlBQUlRL2E0Qi9Rd0NBQUFBQWdBQUFBSUFBQUFDQUFBQS9hNEJRUUw5ckFIOXNRSDlDd0lBSUFFaUJrRUJhaUlCSUE5SERRQUxJQThoQndzZ0J5QWJUZzBBQTBBZ0IwRURkQ0VCSUFjZ0xFZ2hCZ0pBSUFkQkFFd0VRQ0EyS0FJQUlRb2dCMEVBVGdSQUlCUWdBVUVDZENJQmFpSXlJRElvQWdBZ0NpQUJJRFpxSUVVZ0Joc29BZ0JxUVFKcVFRSjFhellDQUNBQklDUnFJZ29nQ2lnQ0FDQWdLQUlBSUFFZ0lHb2dQQ0FHR3lnQ0FHcEJBbXBCQW5Wck5nSUFJQUVnS21vaUNpQUtLQUlBSUI4b0FnQWdBU0FmYWlBNklBWWJLQUlBYWtFQ2FrRUNkV3MyQWdBZ1F5Z0NBQ0FCSUVOcUlDWWdCaHNvQWdCcVFRSnFJUVlnQVNBcGFpRUJEQUlMSUJRZ0FVRUNkQ0lCYWlJR0lBWW9BZ0FnQ2tFQmRFRUNha0VDZFdzMkFnQWdBU0FrYWlJR0lBWW9BZ0FnRkNnQ0ZFRUJkRUVDYWtFQ2RXczJBZ0FnQVNBcWFpSUdJQVlvQWdBZ0ZDZ0NHRUVCZEVFQ2FrRUNkV3MyQWdBZ0FTQXBhaUVCSUJRb0FoeEJBWFJCQW1vaEJnd0JDeUFVSUFjZ0xDQUdHMEVEZEVFRWEwRUNkQ0lLYWlnQ0FDRXlJQVpGQkVBZ0ZDQUJRUUowSWdGcUlnWWdCaWdDQUNBeUlFVW9BZ0JxUVFKcVFRSjFhellDQUNBQklDUnFJZ1lnQmlnQ0FDQUtJQ1JxS0FJQUlEd29BZ0JxUVFKcVFRSjFhellDQUNBQklDcHFJZ1lnQmlnQ0FDQUtJQ3BxS0FJQUlEb29BZ0JxUVFKcVFRSjFhellDQUNBQklDbHFJUUVnQ2lBcGFpZ0NBQ0FtS0FJQWFrRUNhaUVHREFFTElCUWdBVUVDZENJQmFpSUdJQVlvQWdBZ01pQUdLQUlRYWtFQ2FrRUNkV3MyQWdBZ0FTQWthaUlHSUFZb0FnQWdDaUFrYWlnQ0FDQUdLQUlRYWtFQ2FrRUNkV3MyQWdBZ0FTQXFhaUlHSUFZb0FnQWdDaUFxYWlnQ0FDQUdLQUlRYWtFQ2FrRUNkV3MyQWdBZ0NpQXBhaWdDQUNBQklDbHFJZ0VvQWhCcVFRSnFJUVlMSUFFZ0FTZ0NBQ0FHUVFKMWF6WUNBQ0FIUVFGcUlnY2dHMGNOQUFzTElBNGdIRTROQUNBTUlBNGlBU0lIU2dSQUEwQWdGQ0FCUVFWMGFpSUhJQWY5QUFJZ0lBZjlBQUlBL2E0QlFRSDlyQUVnQi8wQUFoRDlyZ0g5Q3dJUUlBRkJBV29pQVNBTVJ3MEFDeUFNSVFjTElBY2dIRTROQUFOQUlFTWdCMEVEZENJQlFRSjBhaUl5QW44Z0IwRUFTQVJBSUJRb0FnQWhCaUFIUVg5SEJFQWdOaUFCUVFKMElnRnFJZ29nQ2lnQ0FDQUdhallDQUNBQklDQnFJZ1lnQmlnQ0FDQWtLQUlBYWpZQ0FDQUJJQjlxSWdFZ0FTZ0NBQ0FxS0FJQWFqWUNBQ0FwS0FJQURBSUxJRFlnQVVFQ2RDSUJhaUlLSUFvb0FnQWdWeWdDQUNBR2FrRUJkV28yQWdBZ0FTQWdhaUlHSUFZb0FnQWdWaWdDQUNBa0tBSUFha0VCZFdvMkFnQWdBU0FmYWlJQklBRW9BZ0FnVlNnQ0FDQXFLQUlBYWtFQmRXbzJBZ0FnVkNnQ0FDQXBLQUlBYWtFQmRRd0JDeUFCSUQ0Z0J5QVNTQnNoQmlBU0lBZEJBV29pWmt3RVFDQTJJQUZCQW5RaUNtb2lBU0FCS0FJQUlHc29BZ0FnRkNBR1FRSjBhaUlCS0FJQWFrRUJkV28yQWdBZ0NpQWdhaUlHSUFZb0FnQWdhaWdDQUNBQktBSUVha0VCZFdvMkFnQWdDaUFmYWlJR0lBWW9BZ0FnYVNnQ0FDQUJLQUlJYWtFQmRXbzJBZ0FnYUNnQ0FDQUJLQUlNYWtFQmRRd0JDeUEySUFGQkFuUWlDbW9pQVNBQktBSUFJQlFnWmtFRmRHb2lBU2dDQUNBVUlBWkJBblJxSWdZb0FnQnFRUUYxYWpZQ0FDQUtJQ0JxSW1ZZ1ppZ0NBQ0FCS0FJRUlBWW9BZ1JxUVFGMWFqWUNBQ0FLSUI5cUlnb2dDaWdDQUNBQktBSUlJQVlvQWdocVFRRjFhallDQUNBQktBSU1JQVlvQWd4cVFRRjFDeUF5S0FJQWFqWUNBQ0FIUVFGcUlnY2dIRWNOQUFzTElEa2dGaUJkSUJnZ1NDQmVRUUZCQkVFQUVDWU5BQXNMREFJTElCUVFFRUVCSVFjTElEa2dOVUVRYXlnQ0FDSUJJRjhvQWdBaUJtc2dOVUVNYXlnQ0FDQmdLQUlBSWdwcklEVkJDR3NvQWdBaUNDQUdheUExUVFScktBSUFJQXBySUFrb0FqUkJBU0FJSUFGckVCNGdPUkFqREFNTElEa1FJeUFVRUJCQkFDRUhEQUlMSURrUUkwRUFJUWNNQVF0QkFDRUhJQTRRSUNBUEVCQUxJQ1ZCSUdva0FDQUhEUUVNQlFzZ0FTRUlRUUFoRHYwTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNHQUFTTUFRVUJxSWh3a0FBSkFBbjhDUUNBWktBSkFCRUFnQ1NnQ0hDSVZJQWtvQWhoQm1BRnNhaUlCUVpnQmF5Z0NBQ0VhSUFGQmtBRnJLQUlBSVJzZ0ZTZ0NCQ0VNSUJVb0Fnd2hlaUFWS0FJQUlSQWdGU2dDQ0NFVFFRRWhCeUFaS0FJc0loOG9BZ1FoS3lBSVFRRkdEUU5CQUNFR0lBaEJBV3NpRmlFSUlCVWhBUUpBSUJaQkJFOEVRQ0FXUVFOeElRZ2dBU0FXUVh4eElncEJtQUZzYWlFQlFRQWhCd05BSUlBQklCVWdCMEdZQVd4cUlnWkI2QVJxSUFaQjBBTnFJQVpCdUFKcUlBYjlDUUtnQWYxV0FnQUIvVllDQUFMOVZnSUFBeUFHUWVBRWFpQUdRY2dEYWlBR1FiQUNhaUFHL1FrQ21BSDlWZ0lBQWYxV0FnQUMvVllDQUFQOXNRSDl1UUVnQmtIc0JHb2dCa0hVQTJvZ0JrRzhBbW9nQnYwSkFxUUIvVllDQUFIOVZnSUFBdjFXQWdBRElBWkI1QVJxSUFaQnpBTnFJQVpCdEFKcUlBYjlDUUtjQWYxV0FnQUIvVllDQUFMOVZnSUFBLzJ4QWYyNUFTR0FBU0FIUVFScUlnY2dDa2NOQUFzZ2dBRWdnQUVnZ0FIOURRZ0pDZ3NNRFE0UEFBRUNBd0FCQWdQOXVRRWlnQUVnZ0FFZ2dBSDlEUVFGQmdjQUFRSURBQUVDQXdBQkFnUDl1UUg5R3dBaEJpQUtJQlpHRFFFTEEwQWdCaUFCS0FLZ0FTQUJLQUtZQVdzaUJ5QUdJQWRMR3lJSElBRW9BcVFCSUFFb0Fwd0JheUlHSUFZZ0Iwa2JJUVlnQVVHWUFXb2hBU0FJUVFGcklnZ05BQXNMUVFBaEJ5QUdRZi8vL3o5TERRTWdIQ0FHUVFWMElrWVFHQ0lCTmdJZ0lBRkZEUU1nSENBQk5nSUFJQlpGQkVCQkFTRUhJQUVRRUF3RUN5QjZJQXhySVE4Z0V5QVFheUVPUVFJZ0swRUJkaUlCSUFGQkFrMGJJVWNnQ1NnQ0pDSUtJQnRCSEd3aVRTQWFRUnhzSWw5cmFpRXZJQW9nRzBFWWJDSmdJQnBCR0d3aVVtdHFJVDBnQ2lBYlFSUnNJbE1nR2tFVWJDSlVhMm9oUGlBS0lCdEJCSFFpVlNBYVFRUjBJbFpyYWlFL0lBb2dHMEVNYkNKWElCcEJER3dpV0d0cUlUZ2dHeUFhYXlJUVFRZHNJVWtnRUVFR2JDRkZJQkJCQld3aE1pQVFRUU5zSVVnZ0VFRUJkQ0ZRSUFvZ0VFRURkQ0pSYWlGQ0lBb2dFRUVDZENKQmFpRVVJQkJCQlhRaFdTQVEvUkVoaEFFRFFDQWNJQTgyQWdnZ0hDQU9JZ0UyQWlnZ0ZTZ0NuQUVoSkNBVktBS2tBU0VwSUJVb0FxQUJJUjRnRlNnQ21BRWhJQ0FjUVFBMkFqZ2dIQ0FCTmdJMElCeEJBRFlDTUNBY0lDQkJBbThpR0RZQ0xDQWNJQjRnSUdzaURpQUJheUlUTmdJOElCd2dFellDSkFKQUlDdEJBa2dpV2tVZ0tTQWtheUlQUVE5TGNVVUVRRUVBSVFjZ0NpRUdJQTlCQ0VrTkFTQS9JQVlnVXlBZVFRSjBJZ0ZxSUZRZ0lFRUNkQ0lJYW10cUlqcEpJRDRnQmlBQklGVnFJQWdnVm1wcmFpSkRTWEVnUFNCRFNTQS9JQVlnQVNCZ2FpQUlJRkpxYTJvaVBFbHhjaUF2SUVOSklEOGdCaUFCSUUxcUlBZ2dYMnByYWlKRVNYRnlJVnNnUFNCRVNTQXZJRHhKY1NGY0lENGdSRWtnTHlBNlNYRWhYU0E4SUQ1TElEb2dQVXR4SVY0Z1FpQUdJQUVnVjJvZ0NDQllhbXRxSWtwSklEZ2dCaUFCSUZGcUlBaHJhaUpMU1hFaFlTQVVJRXBKSURnZ0JpQWJJQjVxSUJvZ0lHcHJRUUowYWlKTVNYRWhZaUFVSUV0SklFSWdURWx4SVdNZ0JpQUJJQWhyYWlFcUlBNUJmSEVoQ0NBY0tBSWdJaE1nRGtFRmRHb2lFVUVRYXlFbElCRkJGR3NoTENBUlFSaHJJUzRnRVVFY2F5RTJJQkZCQkdzaE9TQVJRUWhySVRzZ0VVRU1heUUwUVFBaEdDQVRRUXhxSWlNZ0hpQWdRWDl6YWlJTVFRVjBJZ0ZxSUNOSklBeEIvLy8vUDBzaURDQVRRUVJxSWlFZ0FXb2dJVWtnQVNBVGFpQVRTWEp5SUJOQkNHb2lJaUFCYWlBaVNYSnlJQTVCeUFKSmNpRmtJQk5CRkdvaUtDQUJhaUFvU1NBVFFSQnFJaWNnQVdvZ0owbHlJQXh5SUJOQkdHb2lNQ0FCYWlBd1NYSWdFMEVjYWlJdElBRnFJQzFKY2lBT1FkUUFTWEloWlFOQUlBY2hEQ0FjUVNCcUlnRWdCaUFRUVFnUU95QUJFQ0lDUUNBT1JRMEFJQmdnV1d3aEIwRUFJUUVDUUFKQUlHUU5BQ0JoSUFZZ05ra2dFeUFISUNwcUlqZEpjU0FHSUFjZ1Ntb2lFa2tnS2lBNFMzRWdGQ0FxU1NBR0lBY2dUR29pSmtseElBWWdCeUJMYWlJMVNTQXFJRUpMY1hKeWNpQUdJQzVKSUNFZ04wbHhjaUFHSUN4SklDSWdOMGx4Y2lBR0lDVkpJQ01nTjBseGNpQmpjaUJpY2lBVElDWkpJQWNnRkdvaU55QTJTWEZ5SUNFZ0pra2dMaUEzUzNGeUlDSWdKa2tnTENBM1MzRnlJQ01nSmtrZ0pTQTNTM0Z5Y2cwQUlCTWdOVWtnQnlCQ2FpSW1JRFpKY1EwQUlDRWdOVWtnSmlBdVNYRU5BQ0FpSURWSklDWWdMRWx4RFFBZ0l5QTFTU0FsSUNaTGNRMEFJQWNnT0dvaUppQTJTU0FTSUJOTGNRMEFJQ1lnTGtrZ0VpQWhTM0VOQUNBbUlDeEpJQklnSWt0eERRQWdFaUFqU3lBbElDWkxjUTBBQTBBZ0JpQUJRUUowYWlBVElBRkJCWFJxSWhMOUNRSUFJQklxQWlEOUlBRWdFa0ZBYXlvQ0FQMGdBaUFTS2dKZy9TQUQvUXNDQUNBR0lBRWdFR3BCQW5ScUlCTDlDUUlFSUJJcUFpVDlJQUVnRWlvQ1JQMGdBaUFTS2dKay9TQUQvUXNDQUNBR0lBRWdVR3BCQW5ScUlCTDlDUUlJSUJJcUFpajlJQUVnRWlvQ1NQMGdBaUFTS2dKby9TQUQvUXNDQUNBR0lBRWdTR3BCQW5ScUlCTDlDUUlNSUJJcUFpejlJQUVnRWlvQ1RQMGdBaUFTS2dKcy9TQUQvUXNDQUNBQlFRUnFJZ0VnQ0VjTkFBc2dDQ0lCSUE1R0RRRUxBMEFnQmlBQlFRSjBhaUFUSUFGQkJYUnFJaElxQWdBNEFnQWdCaUFCSUJCcVFRSjBhaUFTS2dJRU9BSUFJQVlnQVNCUWFrRUNkR29nRWlvQ0NEZ0NBQ0FHSUFFZ1NHcEJBblJxSUJJcUFndzRBZ0FnQVVFQmFpSUJJQTVIRFFBTEMwRUFJUUVDUUNCbERRQWdYQ0FISUQ1cUloSWdORWtnSnlBSElEcHFJaVpKY1NCYklBY2dQMm9pTlNBMFNTQW5JQWNnUTJvaU4wbHhjaUFvSURkSklEVWdPMGx4Y2lBd0lEZEpJRFVnT1VseGNpQXRJRGRKSUJFZ05VdHhjaUJlY2lCZGNuSWdFaUE3U1NBbUlDaExjWElnRWlBNVNTQW1JREJMY1hJZ0ppQXRTeUFSSUJKTGNYSnlEUUFnQnlBOWFpSVNJRFJKSUNjZ0J5QThhaUltU1hFTkFDQVNJRHRKSUNZZ0tFdHhEUUFnRWlBNVNTQW1JREJMY1EwQUlDWWdMVXNnRVNBU1MzRU5BQ0FISUM5cUloSWdORWtnSnlBSElFUnFJZ2RKY1EwQUlCSWdPMGtnQnlBb1MzRU5BQ0FTSURsSklBY2dNRXR4RFFBZ0J5QXRTeUFSSUJKTGNRMEFBMEFnQmlBQklFRnFRUUowYWlBVElBRkJCWFJxSWdmOUNRSVFJQWNxQWpEOUlBRWdCeW9DVVAwZ0FpQUhLZ0p3L1NBRC9Rc0NBQ0FHSUFFZ01tcEJBblJxSUFmOUNRSVVJQWNxQWpUOUlBRWdCeW9DVlAwZ0FpQUhLZ0owL1NBRC9Rc0NBQ0FHSUFFZ1JXcEJBblJxSUFmOUNRSVlJQWNxQWpqOUlBRWdCeW9DV1AwZ0FpQUhLZ0o0L1NBRC9Rc0NBQ0FHSUFFZ1NXcEJBblJxSUFmOUNRSWNJQWNxQWp6OUlBRWdCeW9DWFAwZ0FpQUhLZ0o4L1NBRC9Rc0NBQ0FCUVFScUlnRWdDRWNOQUFzZ0NDSUJJQTVHRFFFTEEwQWdCaUFCSUVGcVFRSjBhaUFUSUFGQkJYUnFJZ2NxQWhBNEFnQWdCaUFCSURKcVFRSjBhaUFIS2dJVU9BSUFJQVlnQVNCRmFrRUNkR29nQnlvQ0dEZ0NBQ0FHSUFFZ1NXcEJBblJxSUFjcUFodzRBZ0FnQVVFQmFpSUJJQTVIRFFBTEN5QVlRUUZxSVJnZ0RFRUlhaUVISUFZZ1VVRUNkR29oQmlBTVFROXFJQTlKRFFBTERBRUxJQThnRDBFRGRpSUhJQ3NnQnlBclNSc2lFbTVCZUhFaEVTQVBRWGh4SVFkQkFDRUlJQW9oQmdOQVFUQVFGQ0lNUlEwRUlBd2dSaEFZSWlNMkFnQWdJMFVFUUNBZkVDQWdEQkFRUVFBTUJnc2dEQ0FHTmdJb0lBd2dFRFlDSkNBTUlBNDJBaUFnRENBVE5nSWNJQXhCQURZQ0dDQU1JQUUyQWhRZ0RFRUFOZ0lRSUF3Z0dEWUNEQ0FNSUFFMkFnZ2dEQ0FUTmdJRUlBd2dCeUFJSUJGc2F5QVJJQWhCQVdvaUNDQVNSaHNpSXpZQ0xDQWZRUXdnREJBdElBWWdFQ0FqYkVFQ2RHb2hCaUFJSUJKSERRQUxJQjhRSUFzQ1FDQUhJQTlQRFFBZ0hFRWdhaUlCSUFZZ0VDQVBJQWRySWhnUU95QUJFQ0lnRGtVTkFDQWNLQUlnSWlNZ0hrRUZkRUVCSUJnZ0dFRUJUUnNpRWtFQ2RHb2dJRUVGZEd0cVFTQnJJUjRnRWtFRGNTRWdJQkpCZkhFaERDQkJJQkpCQVd0c0lTRkJBQ0VJQTBBZ0l5QUlRUVYwYWlFVFFRQWhCd0pBQWtBZ0dFRUVTUTBBSUI0Z0JpQUlRUUowSWhGcUlnRWdCaUFSSUNGcWFpSVJJQUVnRVVrYlN3UkFJQ01nQVNBUklBRWdFVXNiUVFScVNRMEJDeUFJL1JFaGdRSDlEQUFBQUFBQkFBQUFBZ0FBQUFNQUFBQWhnQUZCQUNFQkEwQWdCaUNBQVNDRUFmMjFBU0NCQWYydUFTS0NBZjBiQUVFQ2RHb2dFeUFCUVFKMGF2MEFBZ0FpZ3dIOUh3QTRBZ0FnQmlDQ0FmMGJBVUVDZEdvZ2d3SDlId0U0QWdBZ0JpQ0NBZjBiQWtFQ2RHb2dnd0g5SHdJNEFnQWdCaUNDQWYwYkEwRUNkR29nZ3dIOUh3TTRBZ0FnZ0FIOURBUUFBQUFFQUFBQUJBQUFBQVFBQUFEOXJnRWhnQUVnQVVFRWFpSUJJQXhIRFFBTElBd2lCeUFTUmcwQkMwRUFJUkVnQnlFQklDQUVRQU5BSUFZZ0FTQVFiQ0FJYWtFQ2RHb2dFeUFCUVFKMGFpb0NBRGdDQUNBQlFRRnFJUUVnRVVFQmFpSVJJQ0JIRFFBTEN5QUhJQkpyUVh4TERRQURRQ0FHSUFFZ0VHd2dDR3BCQW5ScUlCTWdBVUVDZEdvcUFnQTRBZ0FnQmlBQlFRRnFJZ2NnRUd3Z0NHcEJBblJxSUJNZ0IwRUNkR29xQWdBNEFnQWdCaUFCUVFKcUlnY2dFR3dnQ0dwQkFuUnFJQk1nQjBFQ2RHb3FBZ0E0QWdBZ0JpQUJRUU5xSWdjZ0VHd2dDR3BCQW5ScUlCTWdCMEVDZEdvcUFnQTRBZ0FnR0NBQlFRUnFJZ0ZIRFFBTEN5QUlRUUZxSWdnZ0RrY05BQXNMSUJ3Z0R5QWNLQUlJSWd4ckloTTJBZ1FnRlNnQ25BRWhBU0FjUVFBMkFoQWdIQ0FNTmdJVUlCeEJBRFlDR0NBY0lCTTJBaHdnSENBQlFRSnZJaGcyQWd3Q1FDQmFSU0FPUVE5TGNVVUVRQ0FLSVFFZ0RrRUlTUTBCSUE5QmZuRWhJU0FQUVFGeElTSWdFMEYrY1NFb0lCTkJBWEVoSnlBTVFYNXhJVEFnREVFQmNTRXRJQ2tnSkVGL2Myb2hJeUFjS0FJQUloSWdHRUVGZENJSGFpRWdJQklnQjJ0QklHb2hIaUFNSUJCc1FRSjBJU29nRGlFSUEwQkJBQ0VHUVFBaEJ3SkFBa0FDUUNBTURnSUNBUUFMQTBBZ0lDQUdRUVowYWlJUklBRWdCaUFRYkVFQ2RHb2lKZjBBQWdEOUN3SUFJQkVnSmYwQUFoRDlDd0lRSUNBZ0JrRUJjaUlSUVFaMGFpSWxJQUVnRUNBUmJFRUNkR29pRWYwQUFoRDlDd0lRSUNVZ0VmMEFBZ0Q5Q3dJQUlBWkJBbW9oQmlBSFFRSnFJZ2NnTUVjTkFBc0xJQzFGRFFBZ0lDQUdRUVowYWlJSElBRWdCaUFRYkVFQ2RHb2lCdjBBQWdEOUN3SUFJQWNnQnYwQUFoRDlDd0lRQ3dKQUlBd2dEMFlOQUNBQklDcHFJUWRCQUNFR1FRQWhFU0FNSUNOSEJFQURRQ0FlSUFaQkJuUnFJaVVnQnlBR0lCQnNRUUowYWlJcy9RQUNBUDBMQWdBZ0pTQXMvUUFDRVAwTEFoQWdIaUFHUVFGeUlpVkJCblJxSWl3Z0J5QVFJQ1ZzUVFKMGFpSWwvUUFDRVAwTEFoQWdMQ0FsL1FBQ0FQMExBZ0FnQmtFQ2FpRUdJQkZCQW1vaUVTQW9SdzBBQ3dzZ0owVU5BQ0FlSUFaQkJuUnFJaEVnQnlBR0lCQnNRUUowYWlJSC9RQUNBUDBMQWdBZ0VTQUgvUUFDRVAwTEFoQUxJQndRSWdKQUlBOUZEUUJCQUNFR1FRQWhCeUFqQkVBRFFDQUJJQVlnRUd4QkFuUnFJaEVnRWlBR1FRVjBhaUlsL1FBQ0FQMExBZ0FnRVNBbC9RQUNFUDBMQWhBZ0FTQUdRUUZ5SWhFZ0VHeEJBblJxSWlVZ0VpQVJRUVYwYWlJUi9RQUNFUDBMQWhBZ0pTQVIvUUFDQVAwTEFnQWdCa0VDYWlFR0lBZEJBbW9pQnlBaFJ3MEFDd3NnSWtVTkFDQUJJQVlnRUd4QkFuUnFJZ2NnRWlBR1FRVjBhaUlHL1FBQ0FQMExBZ0FnQnlBRy9RQUNFUDBMQWhBTElBRkJJR29oQVNBSVFRaHJJZ2hCQjBzTkFBc01BUXRCQVNBT1FRTjJJZ0VnUnlBQklFZEpHeUlJSUFoQkFVMGJJUkVnRGlBSWJrRjRjU0VTSUE1QmVIRWhJRUVBSVFjZ0NpRUJBMEJCTUJBVUlnWkZEUVFnQmlCR0VCZ2lIallDQUNBZVJRUkFJQjhRSUNBR0VCQkJBQXdHQ3lBR0lBRTJBaWdnQmlBUU5nSWtJQVlnRHpZQ0lDQUdJQk0yQWh3Z0JrRUFOZ0lZSUFZZ0REWUNGQ0FHUVFBMkFoQWdCaUFZTmdJTUlBWWdERFlDQ0NBR0lCTTJBZ1FnQmlBZ0lBY2dFbXhySUJJZ0IwRUJhaUlISUFoR0d5SWVOZ0lzSUI5QkRTQUdFQzBnQVNBZVFRSjBhaUVCSUFjZ0VVY05BQXNnSHhBZ0N3SkFJQTVCQjNFaUVrVU5BQ0FZUVFWMElTQWdIQ2dDQUNFSUFrQWdERVVOQUNBSUlDQnFJUkVnRWtFQ2RDRVlRUUFoQmlBTVFRRkhCRUFnREVGK2NTRWVRUUFoQndOQUlCRWdCa0VHZEdvZ0FTQUdJQkJzUVFKMGFpQVlFQklhSUJFZ0JrRUJjaUlqUVFaMGFpQUJJQkFnSTJ4QkFuUnFJQmdRRWhvZ0JrRUNhaUVHSUFkQkFtb2lCeUFlUncwQUN3c2dERUVCY1VVTkFDQVJJQVpCQm5ScUlBRWdCaUFRYkVFQ2RHb2dHQkFTR2dzQ1FDQU1JQTlHRFFBZ0NDQWdhMEVnYWlFSElBRWdEQ0FRYkVFQ2RHb2hFU0FTUVFKMElSaEJBQ0VHSUF3Z0tTQWtRWDl6YWtjRVFDQVRRWDV4SVNCQkFDRU1BMEFnQnlBR1FRWjBhaUFSSUFZZ0VHeEJBblJxSUJnUUVob2dCeUFHUVFGeUloNUJCblJxSUJFZ0VDQWViRUVDZEdvZ0dCQVNHaUFHUVFKcUlRWWdERUVDYWlJTUlDQkhEUUFMQ3lBVFFRRnhSUTBBSUFjZ0JrRUdkR29nRVNBR0lCQnNRUUowYWlBWUVCSWFDeUFjRUNJZ0QwVU5BQ0FTUVFKMElRZEJBQ0VHSUNSQkFXb2dLVWNFUUNBUFFYNXhJUXhCQUNFUkEwQWdBU0FHSUJCc1FRSjBhaUFJSUFaQkJYUnFJQWNRRWhvZ0FTQUdRUUZ5SWhNZ0VHeEJBblJxSUFnZ0UwRUZkR29nQnhBU0dpQUdRUUpxSVFZZ0VVRUNhaUlSSUF4SERRQUxDeUFQUVFGeFJRMEFJQUVnQmlBUWJFRUNkR29nQ0NBR1FRVjBhaUFIRUJJYUN5QVZRWmdCYWlFVklCWkJBV3NpRmcwQUMwRUJEQUlMUVFFaEJ5QUpLQUljSWd3Z0NFR1lBV3hxSWlOQm1BRnJJaThvQWdBZ0kwR1FBV3NvQWdCR0RRSWdJMEdVQVdzaVBTZ0NBQ0FqUVl3QmF5Z0NBRVlOQWlBTUtBSUVJUThnRENnQ0RDRVdJQXdvQWdBaEVDQU1LQUlJSVJNZ0NTZ0NSQ0VTSUFrb0FrQWhFU0FKS0FJOElSb2dDU2dDT0NFZklBa2dDQkJjSWg1RkJFQkJBQ0VIREFNTElBaEJBVVlFUUNBZUlDTkJFR3NvQWdBaUFTQXZLQUlBSWdacklDTkJER3NvQWdBZ1BTZ0NBQ0lLYXlBalFRaHJLQUlBSWdnZ0Jtc2dJMEVFYXlnQ0FDQUtheUFKS0FJMFFRRWdDQ0FCYXhBZUlCNFFJd3dEQzBFQUlRWUNRQUpBSUFoQkFXc2lDa0VFU1FSQUlBb2hCeUFNSVFFTUFRc2dDa0VEY1NFSElBd2dDa0Y4Y1NJVlFaZ0JiR29oQVFOQUlJQUJJQXdnRGtHWUFXeHFJZ1pCNkFScUlBWkIwQU5xSUFaQnVBSnFJQWI5Q1FLZ0FmMVdBZ0FCL1ZZQ0FBTDlWZ0lBQXlBR1FlQUVhaUFHUWNnRGFpQUdRYkFDYWlBRy9Ra0NtQUg5VmdJQUFmMVdBZ0FDL1ZZQ0FBUDlzUUg5dVFFZ0JrSHNCR29nQmtIVUEyb2dCa0c4QW1vZ0J2MEpBcVFCL1ZZQ0FBSDlWZ0lBQXYxV0FnQURJQVpCNUFScUlBWkJ6QU5xSUFaQnRBSnFJQWI5Q1FLY0FmMVdBZ0FCL1ZZQ0FBTDlWZ0lBQS8yeEFmMjVBU0dBQVNBT1FRUnFJZzRnRlVjTkFBc2dnQUVnZ0FFZ2dBSDlEUWdKQ2dzTURRNFBBQUVDQXdBQkFnUDl1UUVpZ0FFZ2dBRWdnQUg5RFFRRkJnY0FBUUlEQUFFQ0F3QUJBZ1A5dVFIOUd3QWhCaUFLSUJWR0RRRUxBMEFnQmlBQktBS2dBU0FCS0FLWUFXc2lDaUFHSUFwTEd5SUdJQUVvQXFRQklBRW9BcHdCYXlJS0lBWWdDa3NiSVFZZ0FVR1lBV29oQVNBSFFRRnJJZ2NOQUFzTEFrQWdCa0dBZ0lEQUFFOE5BQ0FjSUFaQkJYUVFHQ0loTmdJZ0lDRkZEUUFnSENBaE5nSUFBa0FnQ0FSQUlCWWdEMnNoQ2lBVElCQnJJUVlnSVVFZ2FpRStJQWl0SVljQklCS3RJWW9CSUJHdElZc0JJQnF0SVlnQklCK3RJWXdCSUFrb0FoUWlRcTBoalFGQ0FTR0dBUU5BSUJ3Z0NqWUNDQ0FjSUFZMkFpZ2dEQ2dDcEFFaEJ5QU1LQUtnQVNFSUlBd29BcHdCSVFFZ0hDQU1LQUtZQVNJVlFRSnZJaUkyQWl3Z0hDQUJRUUp2SWo4MkFnd2dIQ0FJSUJWcklpQWdCbXNpS0RZQ0pDQWNJQWNnQVdzaUV5QUtheUk0TmdJRUlCOGlGaUVJSUJvaUFTRU9JQkVpQnlFWUlCSWlGU0VQQWtBZ2hnRWdqUUZSRFFBZ1FpQ0dBYWRySVJCQkFDRU9RUUFoQ0NBV0JFQkNmeUFRclNLSkFZWkNmNFVnakFGOElJa0JpS2NoQ0FzZ0dnUkFRbjhnRUswaWlRR0dRbitGSUlnQmZDQ0pBWWluSVE0TFFRQWhGVUVBSVFjZ0VRUkFRbjhnRUswaWlRR0dRbitGSUlzQmZDQ0pBWWluSVFjTElCSUVRRUovSUJDdElva0Joa0ovaFNDS0FYd2dpUUdJcHlFVkMwRUFJUmhCQUNFV1FRRWdFRUVCYTNRaUd5QWZTUVJBSUI4Z0cydXRRbjhnRUswaWlRR0dRbitGZkNDSkFZaW5JUllMSUJFZ0cwc0VRQ0FSSUJ0cnJVSi9JQkN0SW9rQmhrSi9oWHdnaVFHSXB5RVlDMEVBSVE5QkFDRUJJQm9nRzBzRVFDQWFJQnRyclVKL0lCQ3RJb2tCaGtKL2hYd2dpUUdJcHlFQkN5QVNJQnRORFFBZ0VpQWJhNjFDZnlBUXJTS0pBWVpDZjRWOElJa0JpS2NoRHd0QmZ5QVlJQXdvQXJRQkloQnJJaHRCQUNBWUlCdFBHeUlZUVFScUloc2dHQ0FiU3hzaUdDQW9JQmdnS0VrYklpMUJmeUFISUF3b0F0Z0JJaGhySWh0QkFDQUhJQnRQR3lJSFFRUnFJaHNnQnlBYlN4c2lCeUFHSUFZZ0Iwc2JJaXNnSWh0QkFYUWlCeUFySUMwZ0lodEJBWFJCQVhJaUd5QUhJQnRMR3lJb0lDQkpJUlFnRmlBUWF5SUhRUUFnQnlBV1RSc2lCMEVFYXlJV1FRQWdCeUFXVHhzaUp5QUlJQmhySWdkQkFDQUhJQWhOR3lJSFFRUnJJZ2hCQUNBSElBaFBHeUl3SUNJYlFRRjBJaGdnTUNBbklDSWJRUUYwUVFGeUlpUkpJU2tnRGlBTUtBSzRBU0lXYXlJSFFRQWdCeUFPVFJzaUIwRUVheUlJUVFBZ0J5QUlUeHNpQ0NFUUlBRWdEQ2dDM0FFaURtc2lCMEVBSUFFZ0IwOGJJZ0ZCQkdzaUIwRUFJQUVnQjA4YklnRWhCMEYvSUJVZ0Ztc2lGa0VBSUJVZ0ZrOGJJaFZCQkdvaUZpQVZJQlpMR3lJVklBb2dDaUFWU3hzaUZpRVZRWDhnRHlBT2F5SU9RUUFnRGlBUFRSc2lEa0VFYWlJUElBNGdEMHNiSWc0Z09DQU9JRGhKR3lJYklROGdQd1JBSUFFaEVDQVdJUThnR3lFVklBZ2hCd3NnS0NBZ0lCUWJJU2dnR0NBa0lDa2JJUmdnSENBdE5nSThJQndnSnpZQ09DQWNJQ3MyQWpRZ0hDQXdOZ0l3QWtBZ0UwRUlTUVJBUVFjaEJrRUFJUTRNQVFzZ1BpQWlRUVYwSWc1cklDZEJCblJxSVRnZ0RpQWhhaUF3UVFaMGFpRVVJQVlnTFdvaExTQUdJQ2RxSVNjZ0NpQWJhaUVrSUFFZ0Ntb2hLU0FoSUJoQkJYUnFJU3BCQUNFT0EwQUNRQUpBSUE0Z0Zra2dEa0VIY2lJR0lBaFBjUTBBSUE0Z0pFa2dCaUFwVDNFTkFDQU9RUWhxSVE0TUFRdEJDQ0FUSUE1cklnWWdCa0VJVHhzaEpVRUFJUVlEUUNBZUlEQWdCaUFPYWlJaUlDc2dJa0VCYWlJc0lCUWdCa0VDZENJdWFrRVFRUUFRSGlBZUlDY2dJaUF0SUN3Z0xpQTRha0VRUVFBUUhpQUdRUUZxSWdZZ0pVY05BQXNnSEVFZ2FoQWlJQjRnR0NBT0lDZ2dEa0VJYWlJT0lDcEJDRUVCUVFBUUprVU5CUXNnRGtFSGNpSUdJQk5KRFFBTEN3SkFJQTRnRTA4TkFDQU9JQlpKSUFZZ0NFOXhSUVJBSUE0Z0NpQWJhazhOQVNBR0lBRWdDbXBKRFFFTElCeEJJR29oQmtFQUlTSWdFeUFPYXlJd0JFQURRQ0FlSUFZb0FoQWlMU0FPSUNKcUlpY2dCaWdDRkNBblFRRnFJaXNnSWtFQ2RDSTRJQVlvQWdBZ0JpZ0NERUVGZEdvZ0xVRUdkR3BxUVJCQkFCQWVJQjRnQmlnQ0dDSXRJQVlvQWdnaUZHb2dKeUFHS0FJY0lCUnFJQ3NnQmlnQ0FDQUdLQUlNUVFWMGF5QXRRUVowYWlBNGFrRWdha0VRUVFBUUhpQWlRUUZxSWlJZ01FY05BQXNMSUFZUUlpQWVJQmdnRGlBb0lCTWdJU0FZUVFWMGFrRUlRUUZCQUJBbVJRMERDeUFjSUJzMkFod2dIQ0FCTmdJWUlCd2dGallDRkNBY0lBZzJBaEFnR0NBb1NRUkFJQlZCQVhRaUJpQVBRUUYwUVFGeUloVWdCaUFWU3hzaUJpQVRJQVlnRTBrYklRWWdQaUEvUVFWMEloVnJJQUZCQm5ScUlRNGdGU0FoYWlBSVFRWjBhaUVWSUFvZ0cyb2hEeUFCSUFwcUlRb2dJU0FRUVFGMElnRWdCMEVCZEVFQmNpSUhJQUVnQjBrYklnZEJCWFJxSVJBRFFDQWVJQmdnQ0VFSUlDZ2dHR3NpQVNBQlFRaFBHeUFZYWlJQklCWWdGVUVCUVJBUUhpQWVJQmdnQ2lBQklBOGdEa0VCUVJBUUhpQWNFQ0lnSGlBWUlBY2dBU0FHSUJCQkFVRUlRUUFRSmtVTkJDQVlRUWhxSWhnZ0tFa05BQXNMSUF4Qm1BRnFJUXdnSUNFR0lCTWhDaUNHQVVJQmZDS0dBU0NIQVZJTkFBc0xRUUVoQnlBZUlDTkJFR3NvQWdBaUFTQXZLQUlBSWdacklDTkJER3NvQWdBZ1BTZ0NBQ0lLYXlBalFRaHJLQUlBSWdnZ0Jtc2dJMEVFYXlnQ0FDQUtheUFKS0FJMFFRRWdDQ0FCYXhBZUlCNFFJeUFoRUJBTUJBc2dIaEFqSUNFUUVFRUFJUWNNQXdzZ0hoQWpRUUFoQnd3Q0N5QWZFQ0JCQUFzaEJ5QWNLQUlnRUJBTElCeEJRR3NrQUNBSERRQU1CQXNnSFVHNENHb2hIU0FOUVRScUlRMGdDVUhNQUdvaENTQUxRUUZxSWdzZ0Z5Z0NFRWtOQUFzZ0dTZ0NJQ0VkSUJrb0FoUW9BZ0FoRndzQ1FDQWRLQUlRSWdsRkRRQWdHU2dDUkEwQUlCY29BaFFpRFNnQ0hDRUJBa0FDUUFKQUlCa29Ba0FpQmdSQUlCY29BaEFpQzBFRFNRMENBa0FnRFNnQ0dDSUhJQTBvQW1SR0JFQWdCeUFOS0FLd0FVWU5BUXNnTTBFQlFkVEtBRUVBRUE4TUJ3c0NRQ0FaS0FJWUtBSVlJZ29vQWlRaUNDQUtLQUpZUncwQUlBZ2dDaWdDakFGSERRQWdBU0FIUVpnQmJDSUthaUlCUVl3QmF5Z0NBQ0FCUVpRQmF5Z0NBR3NnQVVHUUFXc29BZ0FnQVVHWUFXc29BZ0JyYkNJQklBMG9BbWdnQ21vaUIwR01BV3NvQWdBZ0IwR1VBV3NvQWdCcklBZEJrQUZyS0FJQUlBZEJtQUZyS0FJQWEyeEhEUUFnRFNnQ3RBRWdDbW9pQjBHTUFXc29BZ0FnQjBHVUFXc29BZ0JySUFkQmtBRnJLQUlBSUFkQm1BRnJLQUlBYTJ3Z0FVWU5BZ3NnTTBFQlFkVEtBRUVBRUE4TUJnc2dGeWdDRUNJTFFRTkpEUUVDUUNBWktBSVlLQUlZSWdjb0FpUWlDaUFIS0FKWVJ3MEFJQW9nQnlnQ2pBRWlDRWNOQUNBQklBcEJtQUZzSWdkcUlnRW9BcFFCSUFFb0Fvd0JheUFCS0FLUUFTQUJLQUtJQVd0c0lnRWdCeUFOS0FKb2FpSUhLQUtVQVNBSEtBS01BV3NnQnlnQ2tBRWdCeWdDaUFGcmJFY05BQ0FOS0FLMEFTQUlRWmdCYkdvaUJ5Z0NsQUVnQnlnQ2pBRnJJQWNvQXBBQklBY29Bb2dCYTJ3Z0FVWU5BUXNnTTBFQlFkVEtBRUVBRUE4TUJRc2dDVUVDUmdSQUlCMG9BdWdyUlEwRElBdEJBblFRRkNJTFJRMEZJQmNvQWhBaUNFVU5BaUFaS0FKQUJFQkJBQ0VYQWtBZ0NFRU1TUVJBUVFBaEJnd0JDeUFOUVNScUlRb0NRQ0FMSUEwZ0NFSE1BR3hxUVNSclR3MEFJQW9nQ3lBSVFRSjBhazhOQUVFQUlRWU1BUXNnRFVHSUFtb2hEQ0FOUWJ3QmFpRVZJQTFCOEFCcUlRNGdEU0FJUVh4eElnWkJ6QUJzYWlFTlFRQWhDUU5BSUFzZ0NVRUNkR29nRENBSlFjd0FiQ0lIYWlBSElCVnFJQWNnRG1vZ0J5QUthdjBKQWdEOVZnSUFBZjFXQWdBQy9WWUNBQVA5Q3dJQUlBbEJCR29pQ1NBR1J3MEFDeUFHSUFoR0RRUUxBa0FnQ0VFRGNTSUhSUVJBSUFZaENRd0JDeUFHSVFrRFFDQUxJQWxCQW5ScUlBMG9BaVEyQWdBZ0NVRUJhaUVKSUExQnpBQnFJUTBnRjBFQmFpSVhJQWRIRFFBTEN5QUdJQWhyUVh4TERRTWdDMEVNYWlFR0lBdEJDR29oQ2lBTFFRUnFJUXdEUUNBTElBbEJBblFpQjJvZ0RTZ0NKRFlDQUNBSElBeHFJQTBvQW5BMkFnQWdCeUFLYWlBTktBSzhBVFlDQUNBR0lBZHFJQTBvQW9nQ05nSUFJQTFCc0FKcUlRMGdDVUVFYWlJSklBaEhEUUFMREFNTFFRQWhGd0pBSUFoQkRFa0VRRUVBSVFZTUFRc2dEVUUwYWlFS0FrQWdDeUFOSUFoQnpBQnNha0VVYTA4TkFDQUtJQXNnQ0VFQ2RHcFBEUUJCQUNFR0RBRUxJQTFCbUFKcUlRd2dEVUhNQVdvaEZTQU5RWUFCYWlFT0lBMGdDRUY4Y1NJR1Fjd0FiR29oRFVFQUlRa0RRQ0FMSUFsQkFuUnFJQXdnQ1VITUFHd2lCMm9nQnlBVmFpQUhJQTVxSUFjZ0NtcjlDUUlBL1ZZQ0FBSDlWZ0lBQXYxV0FnQUQvUXNDQUNBSlFRUnFJZ2tnQmtjTkFBc2dCaUFJUmcwREN3SkFJQWhCQTNFaUIwVUVRQ0FHSVFrTUFRc2dCaUVKQTBBZ0N5QUpRUUowYWlBTktBSTBOZ0lBSUFsQkFXb2hDU0FOUWN3QWFpRU5JQmRCQVdvaUZ5QUhSdzBBQ3dzZ0JpQUlhMEY4U3cwQ0lBdEJER29oQmlBTFFRaHFJUW9nQzBFRWFpRU1BMEFnQ3lBSlFRSjBJZ2RxSUEwb0FqUTJBZ0FnQnlBTWFpQU5LQUtBQVRZQ0FDQUhJQXBxSUEwb0Fzd0JOZ0lBSUFZZ0Iyb2dEU2dDbUFJMkFnQWdEVUd3QW1vaERTQUpRUVJxSWdrZ0NFY05BQXNNQWdzZ0hTZ0MwQ3NvQWhSQkFVWUVRQ0FHQkVBZ0RTZ0NKQ0FOS0FKd0lBMG9BcndCSUFFUVh3d0VDeUFOS0FJMElBMG9Bb0FCSUEwb0Fzd0JJQUVRWHd3REN5QUdCRUFnRFNnQ0pDQU5LQUp3SUEwb0Fyd0JJQUVRWGd3REN5QU5LQUkwSUEwb0FvQUJJQTBvQXN3QklBRVFYZ3dDQ3lCQUlBczJBZ0FnTTBFQlFaSExBQ0JBRUE4TUFRc2dHU2dDR0NnQ0dDZ0NJQm9DZnlBZEtBTG9LeUVIUVFBaERrRUFJQWhCQTNRUUZDSU5SUTBBR2dKQUlBRkZEUUFnQ0VVTkFDQU5JQWhCQW5ScUlSTWdDRUY4Y1NFUElBaEJBM0VoRENBSVFRRnJJUkFEUUVFQUlSZEJBQ0VKSUJCQkEwOEVRQU5BSUEwZ0YwRUNkQ0lHYWlBR0lBdHFLQUlBS2dJQU9BSUFJQTBnQmtFRWNpSUthaUFLSUF0cUtBSUFLZ0lBT0FJQUlBMGdCa0VJY2lJS2FpQUtJQXRxS0FJQUtnSUFPQUlBSUEwZ0JrRU1jaUlHYWlBR0lBdHFLQUlBS2dJQU9BSUFJQmRCQkdvaEZ5QUpRUVJxSWdrZ0QwY05BQXNMUVFBaENpQU1CRUFEUUNBTklCZEJBblFpQm1vZ0JpQUxhaWdDQUNvQ0FEZ0NBQ0FYUVFGcUlSY2dDa0VCYWlJS0lBeEhEUUFMQzBFQUlRWWdCeUVYQTBBZ0V5QUdRUUowSWhKcUlnbEJBRFlDQUVNQUFBQUFJWTRCUVFBaENrRUFJUllnRUVFQ1N3UkFBMEFnQ1NBWEtnSUFJQTBnQ2tFQ2RHb2lGU29DQUpRZ2pnR1NJbzRCT0FJQUlBa2dGeW9DQkNBVktnSUVsQ0NPQVpJaWpnRTRBZ0FnQ1NBWEtnSUlJQlVxQWdpVUlJNEJraUtPQVRnQ0FDQUpJQmNxQWd3Z0ZTb0NESlFnamdHU0lvNEJPQUlBSUFwQkJHb2hDaUFYUVJCcUlSY2dGa0VFYWlJV0lBOUhEUUFMQzBFQUlSVWdEQVJBQTBBZ0NTQVhLZ0lBSUEwZ0NrRUNkR29xQWdDVUlJNEJraUtPQVRnQ0FDQUtRUUZxSVFvZ0YwRUVhaUVYSUJWQkFXb2lGU0FNUncwQUN3c2dDeUFTYWlJS0lBb29BZ0FpQ2tFRWFqWUNBQ0FLSUk0Qk9BSUFJQVpCQVdvaUJpQUlSdzBBQ3lBT1FRRnFJZzRnQVVjTkFBc0xJQTBRRUVFQkN5RjdJQXNRRUNCN1JRMENDeUFaS0FJVUtBSUFJaFlvQWhCRkJFQkJBU0V4REFJTElCa29BaUFvQXRBckloZEJ1QWhxSVJNZ0YwRzBDR29oRWlBWktBSkVJUkFnRmlnQ0ZDRUhJQmtvQWhnb0FoZ2hDa0VBSVFnRFFBSkFJQkFFUUNBUUlBaEJBblJxS0FJQVJRMEJDeUFIS0FJY0lnRWdDaWdDSkVHWUFXeHFJUXNDZnlBWktBSkFSUVJBSUFzb0FwUUJJQXNvQW93QmF5RUdJQXNvQXBBQklBc29Bb2dCYXlFQlFRQWhERUUwREFFTElBRWdCeWdDR0VHWUFXeHFJZ1pCa0FGcktBSUFJQXNvQWdnZ0N5Z0NBR3NpQVNBR1FaZ0JheWdDQUdwcklRd2dDeWdDRENBTEtBSUVheUVHUVNRTElRa2dDaWdDR0NFTEFuOGdDaWdDSUFSQVFRRWdDMEVCYTNRaUMwRUJheUVkUVFBZ0Myc01BUXRCZnlBTGRFRi9jeUVkUVFBTElROGdBVVVOQUNBR1JRMEFJQWNnQ1dvb0FnQWhDU0FYS0FJVVFRRkdCRUFnRXlBSVFiZ0liQ0lMYWlFUklBc2dFbW9oR0NBQlFRRnhJUm9nQVVFQ2RDRXpJQUZCZkhFaURrRUNkQ0ViSUIzOUVTR0NBU0FQL1JFaGdBRkJBQ0VWSUFGQkJFa2hId05BQWtBQ1FBSkFJQjhOQUNBSklCRkpJQmdnQ1NBemFrbHhEUUFnQ1NBYmFpRU5JQmY5Q1FLMENDR0RBVUVBSVFzRFFDQUpJQXRCQW5ScUlpQWdnQUVnZ3dFZ0lQMEFBZ0Q5cmdFaWhBRWdnZ0g5dGdFZ2hBRWdnQUg5T2YxUy9Rc0NBQ0FMUVFScUlnc2dEa2NOQUFzZ0RpSUxJQUZHRFFJTUFRc2dDU0VOUVFBaEN3c2dDMEVCY2lFSklCb0VRQ0FOSUE4Z0Z5Z0N0QWdnRFNnQ0FHb2lDeUFkSUFzZ0hVZ2JJQXNnRDBnYk5nSUFJQTFCQkdvaERTQUpJUXNMSUFFZ0NVWU5BQU5BSUEwZ0R5QVhLQUswQ0NBTktBSUFhaUlKSUIwZ0NTQWRTQnNnQ1NBUFNCczJBZ0FnRFNBUElCY29BclFJSUEwb0FnUnFJZ2tnSFNBSklCMUlHeUFKSUE5SUd6WUNCQ0FOUVFocUlRMGdDMEVDYWlJTElBRkhEUUFMQ3lBTklBeEJBblJxSVFrZ0ZVRUJhaUlWSUFaSERRQUxEQUVMSUIyc0lZWUJJQStzSVljQlFRQWhGUU5BUVFBaEN3TkFJQWtDZnlBZElBa3FBZ0FpamdGREFBQUFUMTROQUJvZ0R5Q09BVU1BQUFEUFhRMEFHaUNIQVNBWE5BSzBDQUovSUk0QmtDS09BWXREQUFBQVQxMEVRQ0NPQWFnTUFRdEJnSUNBZ0hnTHJId2lpZ0VnaGdFZ2hnRWdpZ0ZWR3lDSEFTQ0tBVlVicHdzMkFnQWdDVUVFYWlFSklBdEJBV29pQ3lBQlJ3MEFDeUFKSUF4QkFuUnFJUWtnRlVFQmFpSVZJQVpIRFFBTEN5QUhRY3dBYWlFSElCZEJ1QWhxSVJjZ0NrRTBhaUVLUVFFaE1TQUlRUUZxSWdnZ0ZpZ0NFRWtOQUFzTUFRc2dCVUVCUVpvWlFRQVFEd3NnUUVFUWFpUUFJREZGQkVBZ1R4QXVJQUFnQUNnQ0NFR0FnQUp5TmdJSUlBVkJBVUh3MUFCQkFCQVBEQUVMQWtBZ0FrVU5BQUovSUFJaEIwRUFJUVlDUUNBQUtBTFFBU0lWUVFFUVZDSUJRWDlHRFFBZ0FTQURTdzBBUVFFZ0ZTZ0NHQ0lCS0FJUVJRMEJHaUFCS0FJWUlRZ2dGU2dDRkNnQ0FDZ0NGQ0VYQTBBZ0NDZ0NHQ0lCUVFkeElRSWdBVUVEZGlFRElCY29BaHdpQmlBSUtBSWtRWmdCYkdvaEFRSi9JQlVvQWtBRVFDQUdJQmNvQWhoQm1BRnNhaUlHUVpBQmF5Z0NBQ0FCS0FJSUlBRW9BZ0JySWdzZ0JrR1lBV3NvQWdCcWF5RU1JQUVvQWd3Z0FTZ0NCR3NoQ1VFa0RBRUxJQUVvQXBRQklBRW9Bb3dCYXlFSklBRW9BcEFCSUFFb0FvZ0JheUVMUVFBaERFRTBDeUFYYWlnQ0FDRUJBa0FDUUFKQUFrQUNRRUVFSUFNZ0FrRUFSMm9pQWlBQ1FRTkdHMEVCYXc0RUFRSUVBQVFMSUFsRkRRTWdDeUFNYWlFR0lBdEJBblFoQWlBSlFRUlBCRUFnQ1VGOGNTRUtRUUFoQ3dOQUlBY2dBU0FDRUJJaEJ5QUJJQVpCQW5RaUEyb2lEU0FEYWlJTUlBTnFJZzRnQTJvaEFTQUNJQWRxSUEwZ0FoQVNJQUpxSUF3Z0FoQVNJQUpxSUE0Z0FoQVNJQUpxSVFjZ0MwRUVhaUlMSUFwSERRQUxDMEVBSVFzZ0NVRURjU0lEUlEwREEwQWdCeUFCSUFJUUVpRUhJQUVnQmtFQ2RHb2hBU0FDSUFkcUlRY2dDMEVCYWlJTElBTkhEUUFMREFNTElBbEZJQXRGY2lFQ0lBZ29BaUJGRFFFZ0FnMENJQXRCQW5RaERpQUxRWHh4SWdOQkFuUWhEMEVBSVEwRFFBSkFBa0FDUUNBTFFRUkpEUUFnQVNBSElBdHFTU0FCSUE1cUlBZExjUTBBSUFNZ0Iyb2hmQ0FCSUE5cUlRWkJBQ0VLQTBBZ0J5QUthaUFCSUFwQkFuUnEvUUFDQVAwTUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAwTkFBUUlEQUFBQUFBQUFBQUFBQUFBQVAxYUFBQUFJQXBCQkdvaUNpQURSdzBBQ3lCOElRY2dBeUlDSUF0R0RRSU1BUXNnQVNFR1FRQWhBZ3RCQUNFS0lBc2dBaUlCYTBFSGNTSVdCRUFEUUNBSElBWW9BZ0E2QUFBZ0FVRUJhaUVCSUFkQkFXb2hCeUFHUVFScUlRWWdDa0VCYWlJS0lCWkhEUUFMQ3lBQ0lBdHJRWGhMRFFBRFFDQUhJQVlvQWdBNkFBQWdCeUFHS0FJRU9nQUJJQWNnQmlnQ0NEb0FBaUFISUFZb0FndzZBQU1nQnlBR0tBSVFPZ0FFSUFjZ0JpZ0NGRG9BQlNBSElBWW9BaGc2QUFZZ0J5QUdLQUljT2dBSElBZEJDR29oQnlBR1FTQnFJUVlnQVVFSWFpSUJJQXRIRFFBTEN5QUdJQXhCQW5ScUlRRWdEVUVCYWlJTklBbEhEUUFMREFJTElBbEZJQXRGY2lFQ0lBZ29BaUFFUUNBQ0RRSWdDMEVDZENFT0lBdEJBWFFoRHlBTFFYeHhJZ05CQW5RaEZpQURRUUYwSVJCQkFDRU5BMEFDUUFKQUFrQWdDMEVFU1EwQUlBRWdCeUFQYWtrZ0FTQU9haUFIUzNFTkFDQUJJQlpxSVFZZ0J5QVFhaUY5UVFBaENnTkFJQWNnQ2tFQmRHb2dBU0FLUVFKMGF2MEFBZ0Q5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUQ5RFFBQkJBVUlDUXdOQUFFQUFRQUJBQUg5V3dFQUFDQUtRUVJxSWdvZ0EwY05BQXNnZlNFSElBTWlBaUFMUmcwQ0RBRUxJQUVoQmtFQUlRSUxRUUFoQ2lBTElBSWlBV3RCQjNFaUV3UkFBMEFnQnlBR0tBSUFPd0VBSUFGQkFXb2hBU0FIUVFKcUlRY2dCa0VFYWlFR0lBcEJBV29pQ2lBVFJ3MEFDd3NnQWlBTGEwRjRTdzBBQTBBZ0J5QUdLQUlBT3dFQUlBY2dCaWdDQkRzQkFpQUhJQVlvQWdnN0FRUWdCeUFHS0FJTU93RUdJQWNnQmlnQ0VEc0JDQ0FISUFZb0FoUTdBUW9nQnlBR0tBSVlPd0VNSUFjZ0JpZ0NIRHNCRGlBSFFSQnFJUWNnQmtFZ2FpRUdJQUZCQ0dvaUFTQUxSdzBBQ3dzZ0JpQU1RUUowYWlFQklBMUJBV29pRFNBSlJ3MEFDd3dDQ3lBQ0RRRWdDMEVDZENFT0lBdEJBWFFoRHlBTFFYeHhJZ05CQW5RaEZpQURRUUYwSVJCQkFDRU5BMEFDUUFKQUFrQWdDMEVFU1EwQUlBRWdCeUFQYWtrZ0FTQU9haUFIUzNFTkFDQUJJQlpxSVFZZ0J5QVFhaUYrUVFBaENnTkFJQWNnQ2tFQmRHb2dBU0FLUVFKMGF2MEFBZ0Q5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUQ5RFFBQkJBVUlDUXdOQUFFQUFRQUJBQUg5V3dFQUFDQUtRUVJxSWdvZ0EwY05BQXNnZmlFSElBTWlBaUFMUmcwQ0RBRUxJQUVoQmtFQUlRSUxRUUFoQ2lBTElBSWlBV3RCQjNFaUV3UkFBMEFnQnlBR0tBSUFPd0VBSUFGQkFXb2hBU0FIUVFKcUlRY2dCa0VFYWlFR0lBcEJBV29pQ2lBVFJ3MEFDd3NnQWlBTGEwRjRTdzBBQTBBZ0J5QUdLQUlBT3dFQUlBY2dCaWdDQkRzQkFpQUhJQVlvQWdnN0FRUWdCeUFHS0FJTU93RUdJQWNnQmlnQ0VEc0JDQ0FISUFZb0FoUTdBUW9nQnlBR0tBSVlPd0VNSUFjZ0JpZ0NIRHNCRGlBSFFSQnFJUWNnQmtFZ2FpRUdJQUZCQ0dvaUFTQUxSdzBBQ3dzZ0JpQU1RUUowYWlFQklBMUJBV29pRFNBSlJ3MEFDd3dCQ3lBQ0RRQWdDMEVDZENFT0lBdEJmSEVpQTBFQ2RDRVBRUUFoRFFOQUFrQUNRQUpBSUF0QkJFa05BQ0FCSUFjZ0MycEpJQUVnRG1vZ0IwdHhEUUFnQXlBSGFpRi9JQUVnRDJvaEJrRUFJUW9EUUNBSElBcHFJQUVnQ2tFQ2RHcjlBQUlBL1F3QUFBQUFBQUFBQUFBQUFBQUFBQUFBL1EwQUJBZ01BQUFBQUFBQUFBQUFBQUFBL1ZvQUFBQWdDa0VFYWlJS0lBTkhEUUFMSUg4aEJ5QURJZ0lnQzBZTkFnd0JDeUFCSVFaQkFDRUNDMEVBSVFvZ0N5QUNJZ0ZyUVFkeEloWUVRQU5BSUFjZ0JpZ0NBRG9BQUNBQlFRRnFJUUVnQjBFQmFpRUhJQVpCQkdvaEJpQUtRUUZxSWdvZ0ZrY05BQXNMSUFJZ0MydEJlRXNOQUFOQUlBY2dCaWdDQURvQUFDQUhJQVlvQWdRNkFBRWdCeUFHS0FJSU9nQUNJQWNnQmlnQ0REb0FBeUFISUFZb0FoQTZBQVFnQnlBR0tBSVVPZ0FGSUFjZ0JpZ0NHRG9BQmlBSElBWW9BaHc2QUFjZ0IwRUlhaUVISUFaQklHb2hCaUFCUVFocUlnRWdDMGNOQUFzTElBWWdERUVDZEdvaEFTQU5RUUZxSWcwZ0NVY05BQXNMSUJkQnpBQnFJUmNnQ0VFMGFpRUlRUUVoQmlCeVFRRnFJbklnRlNnQ0dDZ0NFRWtOQUFzTElBWUxSUTBCSUU4b0F0d3JJZ0ZGRFFBZ0FSQVFJRTlDQURjQzNDc0xJQUFnQUMwQVJFSCtBWEU2QUVRZ0FDQUFLQUlJUWY5K2NUWUNDRUVCSVdjZ0JDa0RDQ0tHQVZBRWZrSUFCU0NHQVNBRUtRTTRmUXRRSUFBb0FnZ2lBVUhBQUVaeERRQWdBVUdBQWtZTkFDQUVJRTVCQ21wQkFpQUZFQnBCQWtjRVFDQUZRUUZCQWlBQUtBSzRBUnRCbGhKQkFCQVBJQUFvQXJnQlJTRm5EQUVMSUU1QkNtb2dUa0VNYWtFQ0VCRWdUaWdDRENJQlFaRC9BMFlOQUNBQlFkbi9BMFlFUUNBQVFZQUNOZ0lJSUFCQkFEWUN6QUVNQVFzZ0JDa0RDQ0tHQVZBRWZrSUFCU0NHQVNBRUtRTTRmUXRRQkVBZ0FFSEFBRFlDQ0NBRlFRSkJyRDlCQUJBUERBRUxRUUFoWnlBRlFRRkI3RDVCQUJBUEN5Qk9RUkJxSkFBZ1p3c0xBQ0FBQkVBZ0FCQVFDd3UwQVFFQmZ5QUFLQUlNUlFSQUlBSWdBQ2dDSkNBQkVRTUFEd3NDUUVFSUVCUWlBMFVOQUNBRElBSTJBZ1FnQXlBQk5nSUFRUWdRRkNJQlJRUkFJQU1RRUE4TElBRWdBellDQUNBQUlBQW9BZ1JCNUFCc0lnSTJBaWdEUUNBQUtBSVlJQUpLRFFBTElBRWdBQ2dDRkRZQ0JDQUFJQUUyQWhRZ0FDQUFLQUlZUVFGcU5nSVlJQUFvQWh3aUFVVU5BQ0FCS0FJQVFRQTJBZ2dnQUNBQktBSUVOZ0ljSUFBZ0FDZ0NJRUVCYXpZQ0lDQUJFQkFMQy9vQ0FRUi9Ba0FnQUVVTkFDQUFLQUtzS0NJQkJFQWdBQ2dDcUNnaUFnUkFRUUFoQVFOQUlBQW9BcXdvSUFGQkEzUnFLQUlBSWdNRVFDQURFQkFnQUNnQ3FDZ2hBZ3NnQVVFQmFpSUJJQUpKRFFBTElBQW9BcXdvSVFFTElBQkJBRFlDcUNnZ0FSQVFJQUJCQURZQ3JDZ0xJQUFvQXJRb0lnRUVRQ0FCRUJBZ0FFRUFOZ0swS0FzZ0FDZ0MwQ3NpQVFSQUlBRVFFQ0FBUVFBMkF0QXJDeUFBS0FMc0t5SUJCRUFnQVJBUUlBQkJBRFlDN0NzTElBQW9BdWdySWdFRVFDQUJFQkFnQUVFQU5nTG9Ld3NnQUNnQy9Dc2lBUVJBSUFFUUVDQUFRUUEyQW9Rc0lBQkNBRGNDL0NzTElBQW9BdkFySWdFRVFDQUFLQUwwS3lJREJIOUJBQ0VDQTBBZ0FTZ0NEQ0lFQkVBZ0JCQVFJQUZCQURZQ0RDQUFLQUwwS3lFREN5QUJRUlJxSVFFZ0FrRUJhaUlDSUFOSkRRQUxJQUFvQXZBckJTQUJDeEFRSUFCQkFEWUM4Q3NMSUFBb0F1UXJJZ0VFUUNBQkVCQWdBRUVBTmdMa0t3c2dBQ2dDM0NzaUFVVU5BQ0FCRUJBZ0FFSUFOd0xjS3dzTHlBY0NFWDhCZmlBQUtBSVFJZ2hCSUU4RVFDQUFLUU1JcHc4TEFrQWdBQ2dDRkNJRFFRUk9CRUFnQUNnQ0FDSUNRUU5yS0FJQUlRRWdBQ0FEUVFScklnTTJBaFFnQUNBQ1FRUnJOZ0lBREFFTElBTkJBRXdFUUF3QkN5QURRUUZ4SVEwZ0FDZ0NBQ0VDQWtBZ0EwRUJSZ1JBUVJnaEJBd0JDeUFEUWY3Ly8vOEhjU0VKUVJnaEJBTkFJQUFnQWtFQmF5SUdOZ0lBSUFJdEFBQWhEQ0FBSUFKQkFtc2lBallDQUNBQUlBTkJBV3MyQWhRZ0JpMEFBQ0VHSUFBZ0EwRUNheUlETmdJVUlBd2dCSFFnQVhJZ0JpQUVRUWhyZEhJaEFTQUVRUkJySVFRZ0JVRUNhaUlGSUFsSERRQUxDeUFOQkVBZ0FDQUNRUUZyTmdJQUlBSXRBQUFoRGlBQUlBTkJBV3MyQWhRZ0RpQUVkQ0FCY2lFQkMwRUFJUU1MSUFBb0FoZ2hBaUFBSUFGQi93RnhJZ2xCandGTE5nSVlJQUJCQjBFSUlBRkJnSUNBK0FkeFFZQ0FnUGdIUmh0QkNDQUNHeUlDUVFoQkIwRUlJQUZCZ0lEOEEzRkJnSUQ4QTBZYklBRkIvLy8vLzNoTkcyb2lCRUVJUVFkQkNDQUJRWUQrQVhGQmdQNEJSaHNnQVVFUWRrSC9BWEVpQlVHUEFVMGJhaUlHUVFoQkIwRUlJQUZCL3dCeFFmOEFSaHNnQVVFSWRrSC9BWEVpQjBHUEFVMGJJQWhxYWlJS05nSVFJQUFnQUNrRENDQUZJQUowSUFGQkdIWnlJQWNnQkhSeUlBa2dCblJ5clNBSXJZYUVJaEkzQXdnZ0NrRWZUUVJBQWtBZ0EwRUVUZ1JBSUFBb0FnQWlBa0VEYXlnQ0FDRUJJQUFnQTBFRWF6WUNGQ0FBSUFKQkJHczJBZ0FNQVFzZ0EwRUFUQVJBUVFBaEFRd0JDeUFEUVFGeElSQWdBQ2dDQUNFQ0FrQWdBMEVCUmdSQVFSZ2hCRUVBSVFFTUFRc2dBMEgrLy8vL0IzRWhCa0VZSVFSQkFDRUJRUUFoQlFOQUlBQWdBa0VCYXlJSE5nSUFJQUl0QUFBaER5QUFJQUpCQW1zaUFqWUNBQ0FBSUFOQkFXczJBaFFnQnkwQUFDRUhJQUFnQTBFQ2F5SUROZ0lVSUE4Z0JIUWdBWElnQnlBRVFRaHJkSEloQVNBRVFSQnJJUVFnQlVFQ2FpSUZJQVpIRFFBTEN5QVFSUTBBSUFBZ0FrRUJhellDQUNBQ0xRQUFJUkVnQUNBRFFRRnJOZ0lVSUJFZ0JIUWdBWEloQVFzZ0FDQUJRZjhCY1NJQ1FZOEJTellDR0NBQVFRaEJCMEVJSUFGQmdJQ0ErQWR4UVlDQWdQZ0hSaHNnQ1VHUEFVMGJJZ05CQ0VFSFFRZ2dBVUdBZ1B3RGNVR0FnUHdEUmhzZ0FVSC8vLy8vZUUwYmFpSUVRUWhCQjBFSUlBRkJnUDRCY1VHQS9nRkdHeUFCUVJCMlFmOEJjU0lGUVk4QlRSdHFJZ2hCQ0VFSFFRZ2dBVUgvQUhGQi93QkdHeUFCUVFoMlFmOEJjU0lKUVk4QlRSc2dDbXBxTmdJUUlBQWdCU0FEZENBQlFSaDJjaUFKSUFSMGNpQUNJQWgwY3EwZ0NxMkdJQktFSWhJM0F3Z0xJQktuQzhrVUFoMS9CbnNnQUNnQ0NDSUtJQUFvQWdScUlRZ0NRQ0FBS0FJTVJRUkFJQWhCQWtnTkFTQURRUUJNRFFFZ0FDZ0NBQ0lGSUFoQkJHc2lCa0VCZGlJTVFRSjBJZ2tnQVNBS1FRSjBhaUlISUFOQkFuUWlCR3BxUVFScVNTQUZJQXhCQTNScVFRaHFJZ0FnQjBFRWFrdHhJQVVnQVNBRWFpQUpha0VFYWtrZ0FVRUVhaUFBU1hGeUlSSWdDRUVFU1NJVUlBSkJBVWR5SVJVZ0FrRUJSaUFHUVFWTGNTRVdJQWhCL1AvLy93ZHhJUk1nQ0VFQmNTRVhJQXBCQVdvaER5QUlRUU54SVJFZ0FTQUZheUVZSUFVZ0NFRUNkR29oR1NBRklBaEJBV3NpQUVFQ2RHb2hHaUFNUVFGcUlodEJmSEVpRUVFQmRDRUxJQUlnQ214QkFuUWhIQ0FBUVFGMklBSnNRUUowSVIwRFFDQUJLQUlBSUFFZ0hHb29BZ0FpQ1VFQmFrRUJkV3NoQndKQUlCUUVRQ0FKSVFSQkFDRUdEQUVMUVFBaEJnSkFBbjlCQUNBV1JRMEFHa0VBSUJJTkFCb2dDZjBSSVNJZ0IvMFJJU0g5REFBQUFBQUNBQUFBQkFBQUFBWUFBQUFoSlVFQUlRQURRQ0FCSUFCQkFuUnEvUUFDQkNFa0lBRWdBQ0FQYWtFQ2RHcjlBQUlBSVNNZ0JTQUFRUU4wYWlJRUlDSDlXZ0lBQXlBRVFRaHFJQ1FnSXlBaUlDUDlEUXdORGc4UUVSSVRGQlVXRnhnWkdoc2lKUDJ1QWYwTUFnQUFBQUlBQUFBQ0FBQUFBZ0FBQVAydUFVRUMvYXdCL2JFQklpTDlXZ0lBQUNBRVFSQnFJQ0w5V2dJQUFTQUVRUmhxSUNMOVdnSUFBaUFGSUNYOURBRUFBQUFCQUFBQUFRQUFBQUVBQUFEOVVDSW0vUnNBUVFKMGFpQWlJQ0VnSXYwTkRBME9EeEFSRWhNVUZSWVhHQmthRy8ydUFVRUIvYXdCSUNUOXJnRWlJZjFhQWdBQUlBVWdKdjBiQVVFQ2RHb2dJZjFhQWdBQklBVWdKdjBiQWtFQ2RHb2dJZjFhQWdBQ0lBVWdKdjBiQTBFQ2RHb2dJZjFhQWdBRElDWDlEQWdBQUFBSUFBQUFDQUFBQUFnQUFBRDlyZ0VoSlNBaUlTRWdJeUVpSUFCQkJHb2lBQ0FRUncwQUN5QWkvUnNESVFRZ0lmMGJBeUVISUJBZ0cwWU5BU0FMSVFZZ0JDRUpJQkFMSVFBRFFDQUJJQUJCQVdvaUNpQUNiRUVDZEdvb0FnQWhIaUFCSUFBZ0Qyb2dBbXhCQW5ScUtBSUFJUVFnQlNBR1FRSjBhaUlPSUFjMkFnQWdEaUFISUI0Z0JDQUpha0VDYWtFQ2RXc2lCMnBCQVhVZ0NXbzJBZ1FnQmtFQ2FpRUdJQUFnREVjaEh5QUVJUWtnQ2lFQUlCOE5BQXNNQVFzZ0N5RUdDeUFGSUFaQkFuUnFJQWMyQWdCQmZDRUFJQmNFZnlBYUlBRWdIV29vQWdBZ0JFRUJha0VCZFdzaUFEWUNBQ0FBSUFkcVFRRjFJUWRCZUFWQmZBc2dHV29nQkNBSGFqWUNBRUVBSVFaQkFDRUFRUUFoQkFKQUlCVWdHQ0FOUVFKMGFrRVFTWEpGQkVBRFFDQUJJQUJCQW5RaUJHb2dCQ0FGYXYwQUFnRDlDd0lBSUFCQkJHb2lBQ0FUUncwQUN5QVRJZ1FnQ0VZTkFRc2dCQ0VBSUJFRVFBTkFJQUVnQUNBQ2JFRUNkR29nQlNBQVFRSjBhaWdDQURZQ0FDQUFRUUZxSVFBZ0JrRUJhaUlHSUJGSERRQUxDeUFFSUFoclFYeExEUUFEUUNBQklBQWdBbXhCQW5ScUlBVWdBRUVDZEdvb0FnQTJBZ0FnQVNBQVFRRnFJZ1FnQW14QkFuUnFJQVVnQkVFQ2RHb29BZ0EyQWdBZ0FTQUFRUUpxSWdRZ0FteEJBblJxSUFVZ0JFRUNkR29vQWdBMkFnQWdBU0FBUVFOcUlnUWdBbXhCQW5ScUlBVWdCRUVDZEdvb0FnQTJBZ0FnQUVFRWFpSUFJQWhIRFFBTEN5QUJRUVJxSVFFZ0RVRUJhaUlOSUFOSERRQUxEQUVMQWtBQ1FBSkFJQWhCQVdzT0FnQUJBZ3NnQTBFQVRBMENRUUFoQWdKQUlBTkJCRWtFUUNBQklRQU1BUXNnQVNBRFFmei8vLzhIY1NJQ1FRSjBhaUVBQTBBZ0FTQUdRUUowYWlJRUlBVDlBQUlBSWlIOUd3QkJBbTM5RVNBaC9Sc0JRUUp0L1J3QklDSDlHd0pCQW0zOUhBSWdJZjBiQTBFQ2JmMGNBLzBMQWdBZ0JrRUVhaUlHSUFKSERRQUxJQUlnQTBZTkF3c0RRQ0FBSUFBb0FnQkJBbTAyQWdBZ0FFRUVhaUVBSUFKQkFXb2lBaUFEUncwQUN3d0NDeUFEUVFCTURRRWdBQ2dDQUNFSklBSWdDbXhCQW5RaEJ3TkFJQWtnQVNnQ0FDQUJJQWRxSWdRb0FnQkJBV3BCQVhWcklnQTJBZ1FnQ1NBQUlBUW9BZ0JxSWdBMkFnQWdBU0FBTmdJQUlBRWdBa0VDZEdvZ0NTZ0NCRFlDQUNBQlFRUnFJUUVnQmtFQmFpSUdJQU5IRFFBTERBRUxJQWhCQTBnTkFDQURRUUJNRFFBZ0FDZ0NBQ0lGSUFnZ0NFRUJjU0lVUlNJR2EwRUVheUlKUVFGMklndEJBblFpQnlBQklBTkJBblFpQUdwcVNTQUZJQXRCQTNScVFReHFJZ1FnQVVFRWFrdHhJQVZCQkdvZ0FDQUJJQXBCQW5ScUlnQnFJQWRxUVFocVNTQUFRUWhxSUFSSmNYSWhGU0FDUVFGSElBaEJCRWx5SVJZZ0FrRUJSaUFKUVFWTGNTRVhJQWhCL1AvLy93ZHhJUkFnQ0VFRGNTRVJJQUVnQldzaEdDQUZJQWhCQW5ScVFRUnJJUmtnQlNBSVFRSnJJZ0JCQW5ScUlSb2dDMEVCYWlJU1FYeHhJZ3hCQVhJaEV5QU1RUUYwUVFGeUlRc2dBaUFLYkVFQ2RDRWJJQUFnQm10QkFra2hIQ0FJUVFGMlFRRnJJQUpzUVFKMElSMERRQ0FGSUFFb0FnQWdBU0FiYWlJUElBSkJBblJxS0FJQUlna2dEeWdDQUNJQWFrRUNha0VDZFdzaUJ5QUFhallDQUVFQklRUUNRQ0FjQkVBZ0NTRUdEQUVMQWtBQ2YwRUJJQmRGRFFBYVFRRWdGUTBBR2lBSi9SRWhJU0FIL1JFaElrRUFJUUFEUUNBRklBQkJBM1JxSWdjZ0FTQUFRUUowSWdScS9RQUNCQ0FoSUFRZ0QycjlBQUlJSWlIOURRd05EZzhRRVJJVEZCVVdGeGdaR2hzaUpDQWgvYTRCL1F3Q0FBQUFBZ0FBQUFJQUFBQUNBQUFBL2E0QlFRTDlyQUg5c1FFaUl5QWpJQ0lnSS8wTkRBME9EeEFSRWhNVUZSWVhHQmthRy8ydUFVRUIvYXdCSUNUOXJnRWlKUDBOQkFVR0J4Z1pHaHNJQ1FvTEhCMGVILzBMQWhRZ0J5QWlJQ1Q5RFF3TkRnOFFFUklUQUFFQ0F4UVZGaGNnSS8wTkFBRUNBd1FGQmdjUUVSSVREQTBPRC8wTEFnUWdJeUVpSUFCQkJHb2lBQ0FNUncwQUN5QWgvUnNESVFZZ0l2MGJBeUVISUF3Z0VrWU5BU0FMSVFRZ0JpRUpJQk1MSVFBRFFDQUJJQUFnQW14QkFuUnFLQUlBSVI0Z0R5QUFRUUZxSWdvZ0FteEJBblJxS0FJQUlRWWdCU0FFUVFKMGFpSU9JQWMyQWdBZ0RpQUhJQjRnQmlBSmFrRUNha0VDZFdzaUIycEJBWFVnQ1dvMkFnUWdCRUVDYWlFRUlBQWdFa2NoSUNBS0lRQWdCaUVKSUNBTkFBc01BUXNnQ3lFRUN5QVlJQTFCQW5ScUlRa2dCU0FFUVFKMGFpQUhOZ0lBQWtBZ0ZFVUVRQ0FhSUFFZ0hXb29BZ0FnQmtFQmFrRUJkV3NpQUNBSGFrRUJkU0FHYWpZQ0FBd0JDeUFHSUFkcUlRQUxJQmtnQURZQ0FFRUFJUVpCQUNFQVFRQWhCQUpBSUJZZ0NVRVFTWEpGQkVBRFFDQUJJQUJCQW5RaUJHb2dCQ0FGYXYwQUFnRDlDd0lBSUFCQkJHb2lBQ0FRUncwQUN5QVFJZ1FnQ0VZTkFRc2dCQ0VBSUJFRVFBTkFJQUVnQUNBQ2JFRUNkR29nQlNBQVFRSjBhaWdDQURZQ0FDQUFRUUZxSVFBZ0JrRUJhaUlHSUJGSERRQUxDeUFFSUFoclFYeExEUUFEUUNBQklBQWdBbXhCQW5ScUlBVWdBRUVDZEdvb0FnQTJBZ0FnQVNBQVFRRnFJZ1FnQW14QkFuUnFJQVVnQkVFQ2RHb29BZ0EyQWdBZ0FTQUFRUUpxSWdRZ0FteEJBblJxSUFVZ0JFRUNkR29vQWdBMkFnQWdBU0FBUVFOcUlnUWdBbXhCQW5ScUlBVWdCRUVDZEdvb0FnQTJBZ0FnQUVFRWFpSUFJQWhIRFFBTEN5QUJRUVJxSVFFZ0RVRUJhaUlOSUFOSERRQUxDd3MzQVFKL0l3QkJFR3NpQVNRQUlBQUVmeUFCUVF4cVFTQWdBQkJzSVFCQkFDQUJLQUlNSUFBYkJVRUFDeUVDSUFGQkVHb2tBQ0FDQ3hzQkFYOGdBQVJBSUFBb0FnZ2lBUVJBSUFFUUVBc2dBQkFRQ3dzeEFRSi9RUUZCREJBVElnQUVRQ0FBUVFvMkFnUWdBRUVLUVFRUUV5SUJOZ0lJSUFFRVFDQUFEd3NnQUJBUUMwRUFDeThCQVg4Z0FBUkFJQUFvQWdRaUFRUkFJQUFvQWdBZ0FSRUNBQXNnQUNnQ0lCQVFJQUJCQURZQ0lDQUFFQkFMQ3lvQUlBQUVRQ0FBS0FJd0lBQkJGRUVRSUFBb0Frd2JhaWdDQUJFQ0FDQUFRUUEyQWpBZ0FCQVFDd3RUQVFKL0lBQkJBRFlDTUNBQUlBQW9BaUEyQWlRZ0FTQUFLQUlBSUFBb0Fod1JDZ0FoQkNBQUtBSkVJUUlnQkVVRVFDQUFJQUpCQkhJMkFrUkJBQThMSUFBZ0FUY0RPQ0FBSUFKQmUzRTJBa1JCQVF1R0F3SUZmd3ArSXdCQklHc2lBeVFBQWtBZ0FDZ0NFQ0lGUlFSQVFRRWhBZ3dCQ3dKQUlBQTBBZ0FpQjBJQVV3MEFJQUEwQWdRaUNFSUFVdzBBSUFBMEFnZ2lDVUlBVXcwQUlBQTBBZ3dpQ2tJQVV3MEFJQUFvQWhnaEFDQUhRZ0Y5SVF3Z0NFSUJmU0VOSUFsQ0FYMGhDU0FLUWdGOUlRb0RRQ0FBSUF3Z0FDZ0NBQ0lDclNJSGZDQUhnQ0lMUGdJUUlBQWdEU0FBS0FJRUlnYXRJZ2Q4SUFlQUlnNCtBaFJDQVNBQU5RSW9JZ2VHSWc5Q0FYMGlDQ0FKSUFLc0loQjhJQkIveEh3Z0I0ZW5JQWdnQzhSOElBZUhwMnNpQWtFQVNBUkFJQU1nQWpZQ0JDQURJQVEyQWdBZ0FVRUJRZFBrQUNBREVBOUJBQ0VDREFNTElBQWdBallDQ0NBSUlBb2dCcXdpQzN3Z0MzL0VmQ0FIaDZjZ0RzUWdEM3hDQVgwZ0I0ZW5heUlDUVFCSUJFQWdBeUFDTmdJVUlBTWdCRFlDRUNBQlFRRkJtT1VBSUFOQkVHb1FEMEVBSVFJTUF3c2dBQ0FDTmdJTUlBQkJOR29oQUVFQklRSWdCRUVCYWlJRUlBVkhEUUFMREFFTElBRkJBVUduTTBFQUVBOExJQU5CSUdva0FDQUNDOWNHQVFaL0lBQUVRQUpBSUFBb0FnQUVRQ0FBS0FJTUlnRUVRQ0FCRUM0Z0FDZ0NEQkFRSUFCQkFEWUNEQXNnQUNnQ0VDSUJCRUFnQVJBUUlBQkNBRGNERUFzZ0FDZ0NRQkFRSUFCQ0FEY0NQQXdCQ3lBQUtBSXNJZ0VFUUNBQkVCQWdBRUVBTmdJc0N5QUFLQUlnSWdFRVFDQUJFQkFnQUVJQU53TWdDeUFBS0FJMElnRkZEUUFnQVJBUUlBQkNBRGNDTkFzZ0FDZ0MwQUVRVlNBQUtBS2NBU0lCQkVBZ0FDZ0NhQ0FBS0FKc2JDSURCSDhEUUNBQkVDNGdBVUdNTEdvaEFTQUNRUUZxSWdJZ0EwY05BQXNnQUNnQ25BRUZJQUVMRUJBZ0FFRUFOZ0tjQVFzZ0FDZ0NkQ0lCQkVBZ0FDZ0NjQ0lDQkVCQkFDRUJBMEFnQUNnQ2RDQUJRUU4wYWlnQ0FDSURCRUFnQXhBUUlBQW9BbkFoQWdzZ0FVRUJhaUlCSUFKSkRRQUxJQUFvQW5RaEFRc2dBRUVBTmdKd0lBRVFFQ0FBUVFBMkFuUUxJQUFvQW9nQkVCQWdBRUVBTmdKNElBQkJBRFlDaUFFZ0FDZ0NaQkFRSUFCQkFEWUNaQ0FBTFFDOEFVRUNjVVVFUUNBQUtBS29BUkFRQ3lBQVFkQUFha0VBUWZBQUVCVWFJQUFvQXNBQkVESWdBRUVBTmdMQUFTQUFLQUxFQVJBeUlBQkJBRFlDd0FFZ0FDZ0N5QUVpQVFSQUlBRW9BaHdpQWdSQUlBSVFFQ0FCUVFBMkFod0xJQUVvQWlnaUFnUkFJQUVvQWlRRVFBTkFJQUlnQlVFb2JDSURhaWdDSkNJRUJFQWdCQkFRSUFFb0FpZ2lBaUFEYWtFQU5nSWtDeUFDSUFOcUtBSVFJZ1FFUUNBRUVCQWdBU2dDS0NJQ0lBTnFRUUEyQWhBTElBSWdBMm9vQWhnaUJBUkFJQVFRRUNBQktBSW9JZ0lnQTJwQkFEWUNHQXNnQlVFQmFpSUZJQUVvQWlSSkRRQUxDeUFDRUJBZ0FVRUFOZ0lvQ3lBQkVCQUxJQUJCQURZQ3lBRWdBQ2dDU0JBaElBQkJBRFlDU0NBQUtBSk1FQ0VnQUVFQU5nSk1JQUFvQXRRQklnTUVRQUpBSUFNb0FnaEZEUUFnQXlnQ0RBUkFJQU5CQURZQ0tBTkFJQU1vQWhoQkFFb05BQXNMSUFOQkFUWUNFQ0FES0FJQUVCQWdBeWdDSENJQ1JRMEFBMEFnQWlnQ0JDRUJJQUlRRUNBRElBRTJBaHdnQVNJQ0RRQUxDeUFES0FJa0lnSUVRQ0FDS0FJRUlnVkJBRW9FUUVFQUlRRURRQ0FDS0FJQUlBRkJER3hxSWdRb0FnZ2lCZ1JBSUFRb0FnUWdCaEVDQUNBQ0tBSUVJUVVMSUFGQkFXb2lBU0FGU0EwQUN3c2dBaWdDQUJBUUlBSVFFQXNnQXhBUUN5QUFRUUEyQXRRQklBQVFFQXNMNWdNQ0NIOEVmaUFBS0FJVUtBSUFLQUlVSUFGQnpBQnNhaUlKS0FJTUlnZ2dBQ2dDR0NnQ0dDQUJRVFJzYWlJS05RSUVJaEJDQVgwaUVpQUFOUUk4ZkNBUWdLY2lDeUFJSUF0Skd5RU1JQWtvQWdnaUNDQUtOUUlBSWhGQ0FYMGlFeUFBTlFJNGZDQVJnS2NpQ2lBSUlBcEpHeUVLSUFrb0FnUWlDQ0FTSUFBMUFqUjhJQkNBcHlJTElBZ2dDMHNiSVFzZ0NTZ0NBQ0lJSUJNZ0FEVUNNSHdnRVlDbklnMGdDQ0FOU3hzaERVRUFJUWdnQUNnQ0lDZ0MwQ3NnQVVHNENHeHFLQUlVSVE0Q1FDQUpLQUlVUVFBZ0FtdEJmeUFDRzJvaUFrVUVRQ0FLSVFBZ0RTRUlJQXNoQVF3QkN5QURRUUZ4SUFKQkFXc2lEM1FpQ1NBTlNRUkFJQTBnQ1d1dFFuOGdBcTBpRUlaQ2Y0VjhJQkNJcHlFSUMwRUFJUUJCQUNFQklBTkJBWFlnRDNRaUF5QUxTUVJBSUFzZ0EydXRRbjhnQXEwaUVJWkNmNFY4SUJDSXB5RUJDeUFKSUFwSkJFQWdDaUFKYTYxQ2Z5QUNyU0lRaGtKL2hYd2dFSWluSVFBTElBTWdERThFUUVFQUlRd01BUXNnRENBRGE2MUNmeUFDclNJUWhrSi9oWHdnRUlpbklRd0xRWDhnQUVFQ1FRTWdEa0VCUmhzaUFtb2lBeUFBSUFOTEd5QUVTMEYvSUFJZ0RHb2lBQ0FBSUF4Skd5QUZTM0VnQ0NBQ2F5SUFRUUFnQUNBSVRSc2dCa2x4SUFFZ0Ftc2lBRUVBSUFBZ0FVMGJJQWRKY1F1aUFRRUdmeUFBQkVBZ0FDZ0NCQ0lDQkVBZ0FoQVFJQUJCQURZQ0JBc2dBUVJBSUFBaEFnTkFJQUlvQXNnQklnTUVRRUVBSVFVZ0FpZ0N4QUVpQkFSL0EwQWdBeWdDRENJR0JFQWdCaEFRSUFOQkFEWUNEQ0FDS0FMRUFTRUVDeUFEUVJCcUlRTWdCVUVCYWlJRklBUkpEUUFMSUFJb0FzZ0JCU0FEQ3hBUUlBSkJBRFlDeUFFTElBSkI4QUZxSVFJZ0IwRUJhaUlISUFGSERRQUxDeUFBRUJBTEM5VVpBaE4vQTNzZ0FDZ0NBQ0lLSUFBb0Fnd2lEVUVGZENJRmFpRUdJQW9nQldzaEZpQUFLQUlRSVFVZ0FDZ0NIQ0VMSUFBb0FoUWhDU0FBS0FJSUlRNENRQUpBQWtBQ1FDQURRUWhKRFFBZ0FVRVBjUTBBSUFaQkQzRkZEUUVMSUFVZ0NVOE5BZ0pBQWtBZ0EwRUJhdzRDQUFFREN3SkFJQWtnQldzaUNFRVlTUTBBSUFFZ0JVRUNkR29oQnlBTlFRVjBJZ1FnQ2lBRlFRWjBhbW9nQVNBSlFRSjBha2tFUUNBSElBb2dDVUVHZEdvZ0JHcEJQR3RKRFFFTElBWDlFZjBNQUFBQUFBRUFBQUFDQUFBQUF3QUFBUDJ1QVNFWUlBVWdDRUY4Y1NJUGFpRUZRUUFoQkFOQUlBWWdHRUVFL2FzQkloZjlHd0JCQW5ScUlBY2dCRUVDZEdyOUFBSUFJaG45SHdBNEFnQWdCaUFYL1JzQlFRSjBhaUFaL1I4Qk9BSUFJQVlnRi8wYkFrRUNkR29nR2YwZkFqZ0NBQ0FHSUJmOUd3TkJBblJxSUJuOUh3TTRBZ0FnR1AwTUJBQUFBQVFBQUFBRUFBQUFCQUFBQVAydUFTRVlJQVJCQkdvaUJDQVBSdzBBQ3lBSUlBOUdEUVFMSUFVaEJDQUpJQVZyUVFOeElnY0VRRUVBSVFnRFFDQUdJQVJCQm5ScUlBRWdCRUVDZEdvcUFnQTRBZ0FnQkVFQmFpRUVJQWhCQVdvaUNDQUhSdzBBQ3dzZ0JTQUphMEY4U3cwREEwQWdCaUFFUVFaMGFpQUJJQVJCQW5ScUtnSUFPQUlBSUFZZ0JFRUJhaUlGUVFaMGFpQUJJQVZCQW5ScUtnSUFPQUlBSUFZZ0JFRUNhaUlGUVFaMGFpQUJJQVZCQW5ScUtnSUFPQUlBSUFZZ0JFRURhaUlGUVFaMGFpQUJJQVZCQW5ScUtnSUFPQUlBSUFSQkJHb2lCQ0FKUncwQUN3d0RDeUFCSUFKQkFuUnFJUWdDUUNBSklBVnJJZzlCUEVrRVFDQUZJUVFNQVFzZ0NpQUZRUVowSUExQkJYUnFhaUlFSUFrZ0JVRi9jMm9pQjBFR2RDSVFhaUFFU1FSQUlBVWhCQXdCQ3lBRVFRUnFJZ1FnRUdvZ0JFa0VRQ0FGSVFRTUFRc2dCMEgvLy84ZlN3UkFJQVVoQkF3QkN5QU5RUVYwSWdRZ0NpQUZRUVowYW1vaUJ5QUJJQUlnQ1dwQkFuUnFTU0FLSUFsQkJuUnFJQVJxUVRocklnUWdBU0FDSUFWcVFRSjBha3R4QkVBZ0JTRUVEQUVMSUFjZ0FTQUpRUUowYWtrZ0FTQUZRUUowYWlBRVNYRUVRQ0FGSVFRTUFRc2dCZjBSL1F3QUFBQUFBUUFBQUFJQUFBQURBQUFBL2E0QklSZ2dCU0FQUVh4eEloQnFJUVJCQUNFSEEwQWdCaUFZUVFUOXF3RWlGLzBiQUVFQ2RHb2lFU0FCSUFVZ0IycEJBblFpREdyOUFBSUFJaG45SHdBNEFnQWdCaUFYL1JzQlFRSjBhaUlUSUJuOUh3RTRBZ0FnQmlBWC9Sc0NRUUowYWlJVUlCbjlId0k0QWdBZ0JpQVgvUnNEUVFKMGFpSVZJQm45SHdNNEFnQWdFU0FJSUF4cS9RQUNBQ0lYL1I4QU9BSUVJQk1nRi8wZkFUZ0NCQ0FVSUJmOUh3STRBZ1FnRlNBWC9SOERPQUlFSUJqOURBUUFBQUFFQUFBQUJBQUFBQVFBQUFEOXJnRWhHQ0FIUVFScUlnY2dFRWNOQUFzZ0R5QVFSZzBEQ3lBRVFRRnFJUVVnQ1NBRWEwRUJjUVJBSUFZZ0JFRUdkR29pQnlBQklBUkJBblFpQkdvcUFnQTRBZ0FnQnlBRUlBaHFLZ0lBT0FJRUlBVWhCQXNnQlNBSlJnMENBMEFnQmlBRVFRWjBhaUlGSUFFZ0JFRUNkQ0lIYWlvQ0FEZ0NBQ0FGSUFjZ0NHb3FBZ0E0QWdRZ0JpQUVRUUZxSWdWQkJuUnFJZ2NnQVNBRlFRSjBJZ1ZxS2dJQU9BSUFJQWNnQlNBSWFpb0NBRGdDQkNBRVFRSnFJZ1FnQ1VjTkFBc01BZ3NnQlNBSlR3MEJJQUVnQWtFQ2RHb2hDQU5BSUFZZ0JVRUdkR29pQkNBQklBVkJBblJxS2dJQU9BSUFJQVFnQVNBQ0lBVnFJZ2RCQW5ScUtnSUFPQUlFSUFRZ0FTQUNJQWRxSWdkQkFuUnFLZ0lBT0FJSUlBUWdBU0FDSUFkcUlnZEJBblJxS2dJQU9BSU1JQVFnQVNBQ0lBZHFJZ2RCQW5ScUtnSUFPQUlRSUFRZ0FTQUNJQWRxSWdkQkFuUnFLZ0lBT0FJVUlBUWdBU0FDSUFkcVFRSjBJZ2RxS2dJQU9BSVlJQVFnQnlBSWFpb0NBRGdDSENBRlFRRnFJZ1VnQ1VjTkFBc01BUXNnQVNBQ1FRSjBhaUVJSUFOQkEwWWhCeUFEUVFSR0lROGdBMEVGUmlFUUlBTkJCMFloRVFOQUlBWWdCVUVHZEdvaUJDQUJJQVZCQW5ScUtnSUFPQUlBSUFRZ0FTQUNJQVZxSWd4QkFuUnFLZ0lBT0FJRUlBUWdBU0FDSUF4cUlneEJBblJxS2dJQU9BSUlBa0FnQncwQUlBUWdBU0FDSUF4cUlneEJBblJxS2dJQU9BSU1JQThOQUNBRUlBRWdBaUFNYWlJTVFRSjBhaW9DQURnQ0VDQVFEUUFnQkNBQklBSWdER29pREVFQ2RHb3FBZ0E0QWhRZ0EwRUdSZzBBSUFRZ0FTQUNJQXhxUVFKMElneHFLZ0lBT0FJWUlCRU5BQ0FFSUFnZ0RHb3FBZ0E0QWh3TElBVkJBV29pQlNBSlJ3MEFDd3NnRmtFZ2FpRUdJQUVnRGtFQ2RHb2hCQ0FBS0FJWUlRVUNRQUpBQWtBZ0EwRUlTUTBBSUFSQkQzRU5BQ0FHUVE5eFJRMEJDeUFGSUF0UERRRUNRQUpBQWtBZ0EwRUJhdzRDQUFFQ0N3SkFJQXNnQldzaUFFRWNTUTBBSUFvZ0JVRUdkRUVnY2lBTlFRVjBJZ0pyYWlBQklBc2dEbXBCQW5ScVNRUkFJQUVnQlNBT2FrRUNkR29nQzBFR2RDQUNheUFLYWtFY2Ewa05BUXNnQkNBRlFRSjBhaUVESUFYOUVmME1BQUFBQUFFQUFBQUNBQUFBQXdBQUFQMnVBU0VZSUFVZ0FFRjhjU0lCYWlFRlFRQWhBZ05BSUFZZ0dFRUUvYXNCSWhmOUd3QkJBblJxSUFNZ0FrRUNkR3I5QUFJQUlobjlId0E0QWdBZ0JpQVgvUnNCUVFKMGFpQVovUjhCT0FJQUlBWWdGLzBiQWtFQ2RHb2dHZjBmQWpnQ0FDQUdJQmY5R3dOQkFuUnFJQm45SHdNNEFnQWdHUDBNQkFBQUFBUUFBQUFFQUFBQUJBQUFBUDJ1QVNFWUlBSkJCR29pQWlBQlJ3MEFDeUFBSUFGR0RRUUxJQVVoQWlBTElBVnJRUU54SWdBRVFFRUFJUUVEUUNBR0lBSkJCblJxSUFRZ0FrRUNkR29xQWdBNEFnQWdBa0VCYWlFQ0lBRkJBV29pQVNBQVJ3MEFDd3NnQlNBTGEwRjhTdzBEQTBBZ0JpQUNRUVowYWlBRUlBSkJBblJxS2dJQU9BSUFJQVlnQWtFQmFpSUFRUVowYWlBRUlBQkJBblJxS2dJQU9BSUFJQVlnQWtFQ2FpSUFRUVowYWlBRUlBQkJBblJxS2dJQU9BSUFJQVlnQWtFRGFpSUFRUVowYWlBRUlBQkJBblJxS2dJQU9BSUFJQUpCQkdvaUFpQUxSdzBBQ3d3REN5QUVJQUpCQW5ScUlRTUNRQ0FMSUFWcklnQkJ4QUJKQkVBZ0JTRUNEQUVMSUFvZ0JVRUdkQ0lKUVNCeUlBMUJCWFFpQ0d0cUlnY2dDeUFGUVg5emFpSVBRUVowSWhCcUlBZEpCRUFnQlNFQ0RBRUxJQW9nQ1VFa2NpQUlhMm9pQ1NBUWFpQUpTUVJBSUFVaEFnd0JDeUFQUWYvLy94OUxCRUFnQlNFQ0RBRUxJQW9nQlVFR2RFRWdjaUFOUVFWMElnbHJhaUlOSUFFZ0N5QU9haUlJSUFKcVFRSjBha2tnQzBFR2RDQUpheUFLYWtFWWF5SUpJQUVnRGtFQ2RHb2dCVUVDZEdvaUNpQUNRUUowYWt0eEJFQWdCU0VDREFFTElBMGdBU0FJUVFKMGFra2dDU0FLUzNFRVFDQUZJUUlNQVFzZ0JmMFIvUXdBQUFBQUFRQUFBQUlBQUFBREFBQUEvYTRCSVJnZ0JTQUFRWHh4SWdscUlRSkJBQ0VCQTBBZ0JpQVlRUVQ5cXdFaUYvMGJBRUVDZEdvaUNpQUVJQUVnQldwQkFuUWlEV3I5QUFJQUlobjlId0E0QWdBZ0JpQVgvUnNCUVFKMGFpSU9JQm45SHdFNEFnQWdCaUFYL1JzQ1FRSjBhaUlJSUJuOUh3STRBZ0FnQmlBWC9Sc0RRUUowYWlJSElCbjlId000QWdBZ0NpQURJQTFxL1FBQ0FDSVgvUjhBT0FJRUlBNGdGLzBmQVRnQ0JDQUlJQmY5SHdJNEFnUWdCeUFYL1I4RE9BSUVJQmo5REFRQUFBQUVBQUFBQkFBQUFBUUFBQUQ5cmdFaEdDQUJRUVJxSWdFZ0NVY05BQXNnQUNBSlJnMERDeUFDUVFGcUlRQWdDeUFDYTBFQmNRUkFJQVlnQWtFR2RHb2lBU0FFSUFKQkFuUWlBbW9xQWdBNEFnQWdBU0FDSUFOcUtnSUFPQUlFSUFBaEFnc2dBQ0FMUmcwQ0EwQWdCaUFDUVFaMGFpSUFJQVFnQWtFQ2RDSUJhaW9DQURnQ0FDQUFJQUVnQTJvcUFnQTRBZ1FnQmlBQ1FRRnFJZ0JCQm5ScUlnRWdCQ0FBUVFKMElnQnFLZ0lBT0FJQUlBRWdBQ0FEYWlvQ0FEZ0NCQ0FDUVFKcUlnSWdDMGNOQUFzTUFnc2dCQ0FDUVFKMGFpRUJJQU5CQTBZaENTQURRUVJHSVFvZ0EwRUZSaUVOSUFOQkIwWWhEZ05BSUFZZ0JVRUdkR29pQUNBRUlBVkJBblJxS2dJQU9BSUFJQUFnQkNBQ0lBVnFJZ2hCQW5ScUtnSUFPQUlFSUFBZ0JDQUNJQWhxSWdoQkFuUnFLZ0lBT0FJSUFrQWdDUTBBSUFBZ0JDQUNJQWhxSWdoQkFuUnFLZ0lBT0FJTUlBb05BQ0FBSUFRZ0FpQUlhaUlJUVFKMGFpb0NBRGdDRUNBTkRRQWdBQ0FFSUFJZ0NHb2lDRUVDZEdvcUFnQTRBaFFnQTBFR1JnMEFJQUFnQkNBQ0lBaHFRUUowSWdocUtnSUFPQUlZSUE0TkFDQUFJQUVnQ0dvcUFnQTRBaHdMSUFWQkFXb2lCU0FMUncwQUN3d0JDeUFGSUF0UERRQWdCQ0FDUVFKMGFpRUJBMEFnQmlBRlFRWjBhaUlBSUFRZ0JVRUNkR29xQWdBNEFnQWdBQ0FFSUFJZ0JXb2lBMEVDZEdvcUFnQTRBZ1FnQUNBRUlBSWdBMm9pQTBFQ2RHb3FBZ0E0QWdnZ0FDQUVJQUlnQTJvaUEwRUNkR29xQWdBNEFnd2dBQ0FFSUFJZ0Eyb2lBMEVDZEdvcUFnQTRBaEFnQUNBRUlBSWdBMm9pQTBFQ2RHb3FBZ0E0QWhRZ0FDQUVJQUlnQTJwQkFuUWlBMm9xQWdBNEFoZ2dBQ0FCSUFOcUtnSUFPQUljSUFWQkFXb2lCU0FMUncwQUN3c0xtd01CQkg4Z0FTQUFRUVJxSWdScVFRRnJRUUFnQVd0eElnVWdBbW9nQUNBQUtBSUFJZ0ZxUVFSclRRUi9JQUFvQWdRaUF5QUFLQUlJSWdZMkFnZ2dCaUFETmdJRUlBUWdCVWNFUUNBQUlBQkJCR3NvQWdCQmZuRnJJZ01nQlNBRWF5SUVJQU1vQWdCcUlnVTJBZ0FnQXlBRlFYeHhha0VFYXlBRk5nSUFJQUFnQkdvaUFDQUJJQVJySWdFMkFnQUxBbjhnQVNBQ1FSaHFUd1JBSUFBZ0FtcEJDR29pQXlBQklBSnJRUWhySWdFMkFnQWdBeUFCUVh4eGFrRUVheUFCUVFGeU5nSUFJQU1DZnlBREtBSUFRUWhySWdGQi93Qk5CRUFnQVVFRGRrRUJhd3dCQ3lBQlp5RUVJQUZCSFNBRWEzWkJCSE1nQkVFQ2RHdEI3Z0JxSUFGQi94OU5EUUFhUVQ4Z0FVRWVJQVJyZGtFQ2N5QUVRUUYwYTBISEFHb2lBU0FCUVQ5UEd3c2lBVUVFZENJRVFhREhBV28yQWdRZ0F5QUVRYWpIQVdvaUJDZ0NBRFlDQ0NBRUlBTTJBZ0FnQXlnQ0NDQUROZ0lFUWFqUEFVR296d0VwQXdCQ0FTQUJyWWFFTndNQUlBQWdBa0VJYWlJQk5nSUFJQUFnQVVGOGNXb01BUXNnQUNBQmFndEJCR3NnQVRZQ0FDQUFRUVJxQlVFQUN3dkNBUUVEZndKQUlBRWdBaWdDRUNJREJIOGdBd1VnQWhBK0RRRWdBaWdDRUFzZ0FpZ0NGQ0lFYTBzRVFDQUNJQUFnQVNBQ0tBSWtFUUFBRHdzQ1FBSkFJQUlvQWxCQkFFZ05BQ0FCUlEwQUlBRWhBd05BSUFBZ0Eyb2lCVUVCYXkwQUFFRUtSd1JBSUFOQkFXc2lBdzBCREFJTEN5QUNJQUFnQXlBQ0tBSWtFUUFBSWdRZ0Ewa05BaUFCSUFOcklRRWdBaWdDRkNFRURBRUxJQUFoQlVFQUlRTUxJQVFnQlNBQkVCSWFJQUlnQWlnQ0ZDQUJhallDRkNBQklBTnFJUVFMSUFRTFdRRUJmeUFBSUFBb0FrZ2lBVUVCYXlBQmNqWUNTQ0FBS0FJQUlnRkJDSEVFUUNBQUlBRkJJSEkyQWdCQmZ3OExJQUJDQURjQ0JDQUFJQUFvQWl3aUFUWUNIQ0FBSUFFMkFoUWdBQ0FCSUFBb0FqQnFOZ0lRUVFBTHpBSUJCSDhnQVNBQS9RQUNBUDBMQWdBZ0FTZ0NHQ0lDQkVBZ0FTZ0NFQ0lEQkg5QkFDRUNBMEFnQVNnQ0dDQUNRVFJzYWlnQ0xDSUVCRUFnQkJBUUlBRW9BaEFoQXdzZ0FrRUJhaUlDSUFOSkRRQUxJQUVvQWhnRklBSUxFQkFnQVVFQU5nSVlDeUFCSUFBb0FoQWlBallDRUNBQklBSkJOR3dRRkNJQ05nSVlJQUlFUUNBQktBSVFCRUJCQUNFREEwQWdBaUFEUVRSc0lnVnFJZ0lnQUNnQ0dDQUZhaUlFL1FBQ0FQMExBZ0FnQWlBRUtBSXdOZ0l3SUFJZ0JQMEFBaUQ5Q3dJZ0lBSWdCUDBBQWhEOUN3SVFJQUVvQWhnaUFpQUZha0VBTmdJc0lBTkJBV29pQXlBQktBSVFTUTBBQ3dzZ0FTQUFLQUlVTmdJVUlBRWdBQ2dDSUNJQ05nSWdJQUlFUUNBQklBSVFGQ0lDTmdJY0lBSkZCRUFnQVVJQU53SWNEd3NnQWlBQUtBSWNJQUFvQWlBUUVob1BDeUFCUVFBMkFod1BDeUFCUVFBMkFoQWdBVUVBTmdJWUN3UUFRUUVMeGdFQkEzOERRQ0FBUVFSMElnRkJwTWNCYWlBQlFhREhBV29pQWpZQ0FDQUJRYWpIQVdvZ0FqWUNBQ0FBUVFGcUlnQkJ3QUJIRFFBTFFUQVFiUm9qQUVFUWF5SUFKQUFDUUNBQVFReHFJQUJCQ0dvUURBMEFRYkRQQVVFSUlBQW9BZ3hCQW5SQkJHb1FKU0lCTmdJQUlBRkZEUUJCQ0NBQUtBSUlFQ1VpQVFSQVFiRFBBU2dDQUNJQ0lBQW9BZ3hCQW5ScVFRQTJBZ0FnQWlBQkVBdEZEUUVMUWJEUEFVRUFOZ0lBQ3lBQVFSQnFKQUJCek04QlFTbzJBZ0JCbE5BQlFkalFBVFlDQUF1UUJnSUZmd043SXdCQkVHc2lCaVFBQW44Z0FDZ0NDRUVRUmdSQUlBQW9BcHdCSUFBb0Fzd0JRWXdzYkdvTUFRc2dBQ2dDREFzaEFBSkFJQU1vQWdBaUJVVUVRRUVBSVFJZ0JFRUJRY0FUUVFBUUR3d0JDeUFBS0FMUUt5RUpJQU1nQlVFQmF6WUNBQ0FDSUFaQkRHcEJBUkFSSUFrZ0FVRzRDR3hxSWdjZ0JpZ0NEQ0lBUVFWMk5nS2tCaUFISUFCQkgzRWlBVFlDR0NBQ1FRRnFJUUFnQXdKL0FuOENRQUovQWtBQ1FDQUJEZ0lBQXdFTElBTW9BZ0FNQVFzZ0F5Z0NBRUVCZGdzaUJVSGlBRThFZnlBR1F1R0FnSUNRRERjQ0JDQUdJQVUyQWdBZ0JFRUNRY1g0QUNBR0VBOGdCeWdDR0FVZ0FRc0VRQ0FGSWdFTkFVRUFEQUlMSUFVRVFDQUhRUnhxSVFGQkFDRUNBMEFnQUNBR1FReHFRUUVRRVNBQ1FlQUFUUVJBSUFZb0Fnd2hCQ0FCSUFKQkEzUnFJZ2hCQURZQ0JDQUlJQVJCQTNZMkFnQUxJQUJCQVdvaEFDQUNRUUZxSWdJZ0JVY05BQXNMUVFBaEFpQURLQUlBSWdBZ0JVa05BeUFBSUFWckRBSUxJQWRCSEdvaEJFRUFJUUlEUUNBQUlBWkJER3BCQWhBUklBSkI0QUJOQkVBZ0JDQUNRUU4wYWlJRklBWW9BZ3dpQ0VIL0QzRTJBZ1FnQlNBSVFRdDJOZ0lBQ3lBQVFRSnFJUUFnQWtFQmFpSUNJQUZIRFFBTElBRkJBWFFMSVFCQkFDRUNJQU1vQWdBaUFTQUFTUTBCSUFFZ0FHc0xOZ0lBUVFFaEFpQUhLQUlZUVFGSERRQWdCMEVjYWlFRUlBZjlDUUljSVF3Z0J5Z0NJQ0VEL1F3QkFBQUFBZ0FBQUFNQUFBQUVBQUFBSVF0QkFDRUJBMEFnQkNBQlFRTjBhaUlBUVJocUlBd2dDLzBNLy8vLy8vLy8vLy8vLy8vLy8vLy8vLzJ1QVNJSy9Sc0FRUU51L1JFZ0N2MGJBVUVEYnYwY0FTQUsvUnNDUVFOdS9Sd0NJQXI5R3dOQkEyNzlIQVA5c1FIOURBQUFBQUFBQUFBQUFBQUFBQUFBQUFEOXVBRWlDdjFhQWdBQ0lBQkJFR29nQ3YxYUFnQUJJQUJCQ0dvZ0N2MWFBZ0FBSUFRZ0FVRUVhaUlCUVFOMGFpSUZJQXI5V2dJQUF5QUFJQU0yQWh3Z0FDQUROZ0lVSUFBZ0F6WUNEQ0FGSUFNMkFnUWdDLzBNQkFBQUFBUUFBQUFFQUFBQUJBQUFBUDJ1QVNFTElBRkI0QUJIRFFBTEN5QUdRUkJxSkFBZ0FndWZCZ0VHZnlNQVFTQnJJZ1lrQUFKL0lBQW9BZ2hCRUVZRVFDQUFLQUtjQVNBQUtBTE1BVUdNTEd4cURBRUxJQUFvQWd3TElRVUNRQ0FES0FJQVFRUk5CRUJCQUNFQUlBUkJBVUdkRTBFQUVBOE1BUXNnQWlBRktBTFFLeUFCUWJnSWJHb2lCU0lKUVFScVFRRVFFU0FGSUFVb0FnUkJBV29pQnpZQ0JDQUhRU0pQQkVBZ0JrRWhOZ0lFSUFZZ0J6WUNBQ0FFUVFGQitUa2dCaEFQUVFBaEFBd0JDeUFISUFBb0FxQUJJZ2hOQkVBZ0JpQUhOZ0lZSUFZZ0NEWUNGQ0FHSUFFMkFoQWdCRUVCUWJUN0FDQUdRUkJxRUE4Z0FDQUFLQUlJUVlDQUFuSTJBZ2hCQUNFQURBRUxJQUpCQVdvZ0JVRUlha0VCRUJFZ0JTQUZLQUlJUVFKcU5nSUlJQUpCQW1vZ0JVRU1ha0VCRUJFZ0JTQUZLQUlNUVFKcUlnQTJBZ3dDUUFKQUlBVW9BZ2dpQVVFS1N3MEFJQUJCQ2tzTkFDQUFJQUZxUVExSkRRRUxRUUFoQUNBRVFRRkJ3eWxCQUJBUERBRUxJQUpCQTJvZ0JVRVFha0VCRUJFZ0JTMEFFRUdBQVhFRVFFRUFJUUFnQkVFQlFZc3lRUUFRRHd3QkN5QUNRUVJxSUFWQkZHcEJBUkFSSUFVb0FoUkJBazhFUUVFQUlRQWdCRUVCUWNveFFRQVFEd3dCQ3lBRElBTW9BZ0JCQldzaUJ6WUNBRUVCSVFBZ0JTZ0NCQ0VCSUFVdEFBQkJBWEZGQkVBZ0FVVU5BU0FGUWJBSGFpRUJJQVZCckFacUlRSkJBQ0VGQTBBZ0FpQUZRUUowSWdCcVFRODJBZ0FnQUNBQmFrRVBOZ0lBUVFFaEFDQUZRUUZxSWdVZ0NTZ0NCRWtOQUFzTUFRc2dBU0FIVFFSQUFrQWdBVVVFUUVFQUlRRU1BUXNnQWtFRmFpQUdRUnhxUVFFUUVTQUZJQVlvQWh3aUFFRUVkallDc0FjZ0JTQUFRUTl4TmdLc0JpQUZLQUlFSWdGQkFrOEVRQ0FGUWJBSGFpRUhJQVZCckFacUlRZ2dBa0VHYWlFQVFRRWhCUU5BSUFBZ0JrRWNha0VCRUJFQ1FDQUdLQUljSWdGQkVFOEVRQ0FCUVE5eElnSU5BUXRCQUNFQUlBUkJBVUh3TFVFQUVBOE1CUXNnQ0NBRlFRSjBJZ3BxSUFJMkFnQWdCeUFLYWlBQlFRUjJOZ0lBSUFCQkFXb2hBQ0FGUVFGcUlnVWdDU2dDQkNJQlNRMEFDd3NnQXlnQ0FDRUhDeUFESUFjZ0FXczJBZ0JCQVNFQURBRUxRUUFoQUNBRVFRRkJuUk5CQUJBUEN5QUdRU0JxSkFBZ0FBdFNBQ0FCSUFBdEFBQTZBQWNnQVNBQUxRQUJPZ0FHSUFFZ0FDMEFBam9BQlNBQklBQXRBQU02QUFRZ0FTQUFMUUFFT2dBRElBRWdBQzBBQlRvQUFpQUJJQUF0QUFZNkFBRWdBU0FBTFFBSE9nQUFDNUlCQVFSL0lBQWdBVFlDb0FFQ1FDQUFLQUpJSWdORkRRQWdBeWdDR0NJR1JRMEFJQUFvQWd3aUJFVU5BQ0FFS0FMUUswVU5BQ0FES0FJUUlnUkZCRUJCQVE4TFFRQWhBd05BSUFFZ0FDZ0NEQ2dDMENzZ0EwRzRDR3hxS0FJRVR3UkFJQUpCQVVHaXhRQkJBQkFQUVFBUEN5QUdJQU5CTkd4cUlBRTJBaWhCQVNFRklBTkJBV29pQXlBRVJ3MEFDd3NnQlF1c0J3SUpmd2grSXdCQkVHc2lDaVFBQWtBZ0FrVUVRQ0FEUVFGQit0VUFRUUFRRHd3QkN5QUNLQUlRSWdzZ0FDZ0NTQ0lHS0FJUVNRUkFJQU5CQVVHMXpnQkJBQkFQREFFTElBUWdBQ2dDYUNJRklBQW9BbXhzSWdkUEJFQWdDaUFFTmdJQUlBb2dCMEVCYXpZQ0JDQURRUUZCOS9vQUlBb1FEMEVBSVFVTUFRc2dBaUFBS0FKVUlBUWdCU0FFSUFWdUlnZHNheUlJSUFBb0FseHNhaUlGTmdJQUlBSWdCU0FHS0FJQUlnWWdCU0FHU3hzaUJqWUNBQ0FDSUFBb0FsUWdBQ2dDWENBSVFRRnFiR29pQlRZQ0NDQUNJQVVnQUNnQ1NDZ0NDQ0lJSUFVZ0NFa2JJZ2cyQWdnZ0FpQUFLQUpZSUFBb0FtQWdCMnhxSWdVMkFnUWdBaUFGSUFBb0FrZ29BZ1FpQ1NBRklBbExHeUlKTmdJRUlBSWdBQ2dDV0NBQUtBSmdJQWRCQVdwc2FpSUZOZ0lNSUFJZ0JTQUFLQUpJS0FJTUlnY2dCU0FIU1JzaUJUWUNEQ0FBS0FKSUlnd29BaEFpQndSQUlBV3NRZ0Y5SVJFZ0NLeENBWDBoRWlBSnJVSUJmU0VUSUFhdFFnRjlJUlFnRENnQ0dDRUlJQUlvQWhnaEJVRUFJUVlEUUNBRklBZ2dCa0UwYkdvb0FpZ2lDVFlDS0NBRklCUWdCU2dDQUNJTXJTSU9mQ0FPZ0NJVlBnSVFJQVVnRXlBRktBSUVJZzJ0SWc1OElBNkFJaEErQWhRZ0JVSi9JQW10SWc2R0lnOGdFTVI5SUE2SHB5QVBJQkVnRGF3aUVId2dFSC9FZlNBT2g2ZHJOZ0lNSUFVZ0R5QVZ4SDBnRG9lbklBOGdFaUFNckNJUGZDQVBmOFI5SUE2SHAyczJBZ2dnQlVFMGFpRUZJQVpCQVdvaUJpQUhSdzBBQ3dzZ0J5QUxTUVJBSUFJb0FoZ2hCUU5BSUFVZ0IwRTBiQ0lHYWlnQ0xCQVFJQUlvQWhnaUJTQUdha0VBTmdJc0lBZEJBV29pQnlBQ0tBSVFTUTBBQ3lBQ0lBQW9Ba2dvQWhBMkFoQUxJQUFvQWt3aUJRUkFJQVVRSVFzZ0FFRUJRU1FRRXlJSE5nSk1RUUFoQlNBSFJRMEFJQUlnQnhBL0lBQWdCRFlDTENBQUtBTEFBVUVYSUFNUUpFVU5BQ0FBS0FMQUFTSUVLQUlBSVFZZ0JDZ0NDQ0VIQWtBZ0JnUkFRUUVoQlNBR1FRRnhJUXNnQmtFQlJnUi9RUUFGSUFaQmZuRWhDRUVBSVFZRFFBSi9RUUFnQlVVTkFCcEJBQ0FBSUFFZ0F5QUhLQUlBRVFBQVJRMEFHaUFBSUFFZ0F5QUhLQUlFRVFBQVFRQkhDeUVGSUFkQkNHb2hCeUFHUVFKcUlnWWdDRWNOQUFzZ0JVRUJjd3NoQmdKQUFrQWdDd1JBSUFZTkFTQUFJQUVnQXlBSEtBSUFFUUFBUVFCSElRVUxJQVJCQURZQ0FDQUZRUUZ4UlEwQkRBTUxJQVJCQURZQ0FBc2dBQ2dDU0JBaFFRQWhCU0FBUVFBMkFrZ01BZ3NnQkVFQU5nSUFDeUFBSUFJUVJ5RUZDeUFLUVJCcUpBQWdCUXZ5QXdFRmZ3SkFBa0FnQUNnQ1BDSUNSUVJBSUFFb0FoQU5BVUVCRHdzZ0FrRTBiQkFVSWdWRkRRRWdBU2dDRUFSQUlBRW9BaGdoQWdOQUlBSWdBMEUwYkNJRWFpZ0NMQkFRSUFFb0FoZ2lBaUFFYWtFQU5nSXNJQU5CQVdvaUF5QUJLQUlRSWdSSkRRQUxDeUFCSUFBb0Fqd0VmeUFBS0FKTUtBSVlJUU5CQUNFQ0EwQWdCU0FDUVRSc2FpSUVJQU1nQUNnQ1FDQUNRUUowYWlnQ0FFRTBiQ0lHYWlJRC9RQUNBUDBMQWdBZ0JDQURLQUl3TmdJd0lBUWdBLzBBQWlEOUN3SWdJQVFnQS8wQUFoRDlDd0lRSUFRZ0FDZ0NUQ2dDR0NJRElBWnFJZ1lvQWlRMkFpUWdCQ0FHS0FJc05nSXNJQVpCQURZQ0xDQUNRUUZxSWdJZ0FDZ0NQQ0lHU1EwQUN5QUJLQUlRQlNBRUN3Ui9JQUFvQWt3b0FoZ2hBa0VBSVFNRFFDQUNJQU5CTkd3aUJHb29BaXdRRUNBQUtBSk1LQUlZSWdJZ0JHcEJBRFlDTENBRFFRRnFJZ01nQVNnQ0VFa05BQXNnQUNnQ1BBVWdCZ3MyQWhBZ0FTZ0NHQkFRSUFFZ0JUWUNHRUVCRHdzZ0FTZ0NHQ0VFSUFBb0Frd29BaGdoQTBFQUlRSURRQ0FFSUFKQk5Hd2lCV29pQkNBRElBVnFLQUlrTmdJa0lBUW9BaXdRRUNBQktBSVlJZ1FnQldvZ0FDZ0NUQ2dDR0NJRElBVnFJZ1VvQWl3MkFpd2dCVUVBTmdJc0lBSkJBV29pQWlBQktBSVFTUTBBQzBFQkR3c2dBQ2dDU0JBaElBQkJBRFlDU0VFQUM4NEVBUWgvQWtBZ0FrVU5BQUpBSUFBb0FxQUJJZ1ZGRFFBZ0FDZ0NTQ0lFUlEwQUlBUW9BaEJGRFFBZ0JDZ0NHQ2dDS0NBRlJ3MEFJQUlvQWhBaUNFVU5BQ0FDS0FJWUlnWW9BaWdOQUNBR0tBSXNEUUJCQUNFRUlBaEJDRThFUUNBSVFYaHhJUWtEUUNBR0lBUkJOR3hxSUFVMkFpZ2dCaUFFUVFGeVFUUnNhaUFGTmdJb0lBWWdCRUVDY2tFMGJHb2dCVFlDS0NBR0lBUkJBM0pCTkd4cUlBVTJBaWdnQmlBRVFRUnlRVFJzYWlBRk5nSW9JQVlnQkVFRmNrRTBiR29nQlRZQ0tDQUdJQVJCQm5KQk5HeHFJQVUyQWlnZ0JpQUVRUWR5UVRSc2FpQUZOZ0lvSUFSQkNHb2hCQ0FLUVFocUlnb2dDVWNOQUFzTElBaEJCM0VpQ0FSQUEwQWdCaUFFUVRSc2FpQUZOZ0lvSUFSQkFXb2hCQ0FMUVFGcUlnc2dDRWNOQUFzTElBSWdBeEEzRFFCQkFBOExJQUFvQWt3aUJVVUVRQ0FBUVFGQkpCQVRJZ1UyQWt3Z0JVVU5BUXNnQWlBRkVEOGdBQ2dDd0FGQkZpQURFQ1JGRFFBZ0FDZ0N3QUVpQmlnQ0FDRUVJQVlvQWdnaEJRSkFJQVFFUUVFQklRY2dCRUVCY1NFSUlBUkJBVVlFZjBFQUJTQUVRWDV4SVFsQkFDRUVBMEFDZjBFQUlBZEZEUUFhUVFBZ0FDQUJJQU1nQlNnQ0FCRUFBRVVOQUJvZ0FDQUJJQU1nQlNnQ0JCRUFBRUVBUndzaEJ5QUZRUWhxSVFVZ0JFRUNhaUlFSUFsSERRQUxJQWRCQVhNTElRUUNRQUpBSUFnRVFDQUVEUUVnQUNBQklBTWdCU2dDQUJFQUFFRUFSeUVIQ3lBR1FRQTJBZ0FnQjBFQmNVVU5BUXdEQ3lBR1FRQTJBZ0FMSUFBb0FrZ1FJU0FBUVFBMkFraEJBQThMSUFaQkFEWUNBQXNnQUNBQ0VFY2hCd3NnQnd2NEJBRUdmd0pBUVFGQk1CQVRJZ0lFZnlBQ0lBQW9Bc2dCSWdIOUFBTUEvUXNEQUNBQ0lBRXBBeEEzQXhBZ0FpQUJLQUlZSWdFMkFoZ2dBaUFCUVJoc0VCUWlBVFlDSENBQlJRUkFJQUlRRUVFQUR3c0NRQ0FBS0FMSUFTZ0NIQ0lEQkVBZ0FTQURJQUlvQWhoQkdHd1FFaG9NQVFzZ0FSQVFJQUpCQURZQ0hBc2dBaUFBS0FMSUFTZ0NKQ0lCTmdJa0lBSWdBVUVvRUJNaUFUWUNLQ0FCUlFSQUlBSW9BaHdRRUNBQ0VCQkJBQThMQWtBZ0FDZ0N5QUVvQWlnRVFDQUNLQUlrUlEwQkEwQWdBU0FGUVNoc0lnTnFJQUFvQXNnQktBSW9JQU5xS0FJVUlnRTJBaFFnQVVFWWJCQVVJUUVnQWlnQ0tDSUVJQU5xSWdZZ0FUWUNHQ0FCUlFSQUlBVUVmMEVBSVFFRFFDQUNLQUlvSUFGQktHeHFLQUlZRUJBZ0FVRUJhaUlCSUFWSERRQUxJQUlvQWlnRklBUUxFQkFNQlFzQ1FDQUFLQUxJQVNnQ0tDQURhaWdDR0NJRUJFQWdBU0FFSUFZb0FoUkJHR3dRRWhvZ0FpZ0NLQ0VCREFFTElBRVFFQ0FDS0FJb0lnRWdBMnBCQURZQ0dBc2dBU0FEYWlBQUtBTElBU2dDS0NBRGFpZ0NCQ0lCTmdJRUlBRkJHR3dRRkNFQklBSW9BaWdpQkNBRGFpSUdJQUUyQWhBZ0FVVUVRQ0FGQkg5QkFDRUJBMEFnQVVFb2JDSUFJQUlvQWlocUtBSVlFQkFnQWlnQ0tDQUFhaWdDRUJBUUlBRkJBV29pQVNBRlJ3MEFDeUFDS0FJb0JTQUVDeEFRREFVTEFrQWdBQ2dDeUFFb0FpZ2dBMm9vQWhBaUJBUkFJQUVnQkNBR0tBSUVRUmhzRUJJYUlBSW9BaWdoQVF3QkN5QUJFQkFnQWlnQ0tDSUJJQU5xUVFBMkFoQUxJQUVnQTJwQ0FEY0NJQ0FGUVFGcUlnVWdBaWdDSkVrTkFBc01BUXNnQVJBUUlBSkJBRFlDS0FzZ0FnVkJBQXNQQ3lBQ0tBSWNFQkFnQWhBUVFRQUxvQVlDRG44QmV5TUFRUkJySWdna0FDQUFLQUpJS0FJUUlRMGdDRUVCUVRnUUV5SUJOZ0lNQWtBZ0FVVU5BQ0FCSUFBb0FrZ29BaEFpQ1RZQ0dDQUJJQUQ5QUFKVS9Rc0NBQ0FCSUFBb0FtZzJBaEFnQUNnQ2JDRUNJQUZCQURZQ05DQUJJQUkyQWhRZ0FTQUFLQUlNSWd3b0FnQTJBaUFnQVNBTUtBSUVOZ0lrSUFFZ0RDZ0NDRFlDS0NBQklBd29BaEEyQWl3Z0FTQUpRYmdJRUJNaUFEWUNNQ0FBQkVBZ0RRUkFBMEFnRGtHNENHd2lBQ0FCS0FJd2FpSUZJQXdvQXRBcklBQnFJZ1Q5QUFJQUlnLzlDd0lFSUFVZ0JDZ0NFRFlDRkNBRklBUW9BaFEyQWhnZ0QvMGJBU0lBUVNCTkJFQWdCVUcwQjJvZ0JFR3dCMm9nQUJBU0dpQUZRYkFHYWlBRVFhd0dhaUFFS0FJRUVCSWFDeUFGSUFRb0FoZ2lBRFlDSENBRklBUW9BcVFHTmdLb0JrRUJJUVlDUUNBQVFRRkhCRUFnQkNnQ0JFRURiQ0lBUVFOclFkOEFTdzBCSUFCQkFtc2hCZ3NnQlVHa0Eyb2hDU0FGUVNCcUlRb2dCRUVjYWlFTFFRQWhBQUpBSUFaQkNFa05BQ0FFSUFaQkEzUnFRUnhxSUFwTEJFQWdDeUFGSUFaQkFuUnFRYVFEYWtrTkFRc2dCa0Y4Y1NFQVFRQWhBZ05BSUFvZ0FrRUNkQ0lEYWlBTElBSkJBM1JxSWdkQkhHb2dCMEVVYWlBSFFReHFJQWY5Q1FJRS9WWUNBQUg5VmdJQUF2MVdBZ0FEL1FzQ0FDQURJQWxxSUFkQkdHb2dCMEVRYWlBSFFRaHFJQWY5Q1FJQS9WWUNBQUg5VmdJQUF2MVdBZ0FEL1FzQ0FDQUNRUVJxSWdJZ0FFY05BQXNnQUNBR1JnMEJDeUFBUVFGeUlRTWdCa0VCY1FSQUlBb2dBRUVDZENJQ2FpQUxJQUJCQTNScUlnQW9BZ1EyQWdBZ0FpQUphaUFBS0FJQU5nSUFJQU1oQUFzZ0F5QUdSZzBBQTBBZ0NpQUFRUUowSWdKcUlBc2dBRUVEZEdvaUF5Z0NCRFlDQUNBQ0lBbHFJQU1vQWdBMkFnQWdDaUFBUVFGcUlnTkJBblFpQW1vZ0N5QURRUU4wYWlJREtBSUVOZ0lBSUFJZ0NXb2dBeWdDQURZQ0FDQUFRUUpxSWdBZ0JrY05BQXNMSUFVZ0JDZ0NxQVkyQXF3R0lBNUJBV29pRGlBTlJ3MEFDd3NnQVNFRERBRUxJQWhCREdvRVFDQUlLQUlNSWdFb0FqQWlBQVIvSUFBUUVDQUlLQUlNQlNBQkN4QVFJQWhCQURZQ0RBc0xJQWhCRUdva0FDQURDL2tFQVFoL0l3QkJnQUpySWdNa0FDQUFCRUJCL0F4QkVTQUNFQjBnQXlBQUtBSUFOZ0x3QVNBQ1Fab1JJQU5COEFGcUVCWWdBeUFBS0FJRU5nTGdBU0FDUWFjUklBTkI0QUZxRUJZZ0F5QUFLQUlJTmdMUUFTQUNRWUkzSUFOQjBBRnFFQllnQXlBQUtBSVFOZ0xBQVNBQ1FmMFFJQU5Cd0FGcUVCWWdBVUVBU2dSQUEwQWdBQ2dDMENzaEJDQURJQWMyQXJBQklBSkJvZzBnQTBHd0FXb1FGaUFESUFRZ0IwRzRDR3hxSWdRb0FnQTJBcUFCSUFKQm1SRWdBMEdnQVdvUUZpQURJQVFvQWdRMkFwQUJJQUpCOURjZ0EwR1FBV29RRmlBRElBUW9BZ2cyQW9BQklBSkJvRFlnQTBHQUFXb1FGaUFESUFRb0FndzJBbkFnQWtHd05pQURRZkFBYWhBV0lBTWdCQ2dDRURZQ1lDQUNRWWdSSUFOQjRBQnFFQllnQXlBRUtBSVVOZ0pRSUFKQnRqZ2dBMEhRQUdvUUZrSFZDMEVYSUFJUUhTQUVLQUlFQkVBZ0JFR3dCMm9oQmlBRVFhd0dhaUVJUVFBaEJRTkFJQWdnQlVFQ2RDSUphaWdDQUNFS0lBTWdCaUFKYWlnQ0FEWUNSQ0FESUFvMkFrQWdBa0dMRENBRFFVQnJFQllnQlVFQmFpSUZJQVFvQWdSSkRRQUxDeUFDRUc0Z0F5QUVLQUlZTmdJd0lBSkJ3RFlnQTBFd2FoQVdJQU1nQkNnQ3BBWTJBaUFnQWtIeE5pQURRU0JxRUJaQkFTRUdRZTBMUVJRZ0FoQWRBa0FnQkNnQ0dFRUJSd1JBSUFRb0FnUWlCVUVBVEEwQklBVkJBMnhCQW1zaEJnc2dCRUVjYWlFSVFRQWhCUU5BSUFNZ0NDQUZRUU4wYWlrQ0FFSWdpVGNERUNBQ1FZc01JQU5CRUdvUUZpQUZRUUZxSWdVZ0JrY05BQXNMSUFJUWJpQURJQVFvQXFnR05nSUFJQUpCNERZZ0F4QVdRWmtNUVFVZ0FoQWRJQWRCQVdvaUJ5QUJSdzBBQ3d0Qm1neEJCQ0FDRUIwTElBTkJnQUpxSkFBTDVnb0RDWDhCZXdGK0l3QkJzQUZySWdVa0FBSkFJQUZCZ0FOeEJFQkJuaTFCQ3lBQ0VCME1BUXNDUUNBQlFRRnhSUTBBSUFBb0FrZ2lCa1VOQUNNQVFkQUFheUlESkFCQjdneEJEU0FDRUIwZ0EwRUFPZ0JQSUFOQkNUb0FUaUFESUFZcEFnQTNBa1FnQXlBRFFjNEFhaUlFTmdKQUlBSkJoamtnQTBGQWF4QVdJQU1nQmlrQ0NEY0NOQ0FESUFRMkFqQWdBa0gxT0NBRFFUQnFFQllnQXlBR0tBSVFOZ0lrSUFNZ0JEWUNJQ0FDUVpNM0lBTkJJR29RRmdKQUlBWW9BaGhGRFFBZ0JpZ0NFRVVOQUFOQUlBTWdBMEhPQUdvaUNqWUNFQ0FESUFjMkFoUWdBa0dPRFNBRFFSQnFFQllnQmlnQ0dDQUhRVFJzYWlFSUl3QkJNR3NpQkNRQUlBUkJDVHNBTGlBRVFRazZBQzBnQkNBSUtRSUFOd0lrSUFRZ0JFRXRhaUlKTmdJZ0lBSkJ6ellnQkVFZ2FoQVdJQVFnQ0NnQ0dEWUNGQ0FFSUFrMkFoQWdBa0hGT0NBRVFSQnFFQllnQkNBSUtBSWdOZ0lFSUFRZ0NUWUNBQ0FDUWFvNElBUVFGaUFFUVRCcUpBQWdBeUFLTmdJQUlBSkJsQXdnQXhBV0lBZEJBV29pQnlBR0tBSVFTUTBBQ3d0Qm5BeEJBaUFDRUIwZ0EwSFFBR29rQUFzQ1FDQUJRUUp4UlEwQUlBQW9Ba2hGRFFCQitRMUJKQ0FDRUIwZ0JTQUFLUUpVTndPZ0FTQUNRZWNSSUFWQm9BRnFFQllnQlNBQUtRSmNOd09RQVNBQ1FjVVJJQVZCa0FGcUVCWWdCU0FBS1FOb053T0FBU0FDUWRjUklBVkJnQUZxRUJZZ0FDZ0NEQ0FBS0FKSUtBSVFJQUlRUzBHY0RFRUNJQUlRSFFzQ1FDQUJRUWh4UlEwQUlBQW9Ba2hGRFFBZ0FDZ0NhQ0FBS0FKc2JDSUVSUTBBSUFBb0Fwd0JJUU1EUUNBRElBQW9Ba2dvQWhBZ0FoQkxJQU5CakN4cUlRTWdDMEVCYWlJTElBUkhEUUFMQ3lBQlFSQnhSUTBBSUFBb0FzZ0JJUUZCMHcxQkpTQUNFQjBnQlNBQi9RQURBUDBMQkhBZ0FrSEpLeUFGUWZBQWFoQVdRY0VOUVJFZ0FoQWRBa0FnQVNnQ0hFVU5BQ0FCS0FJWVJRMEFRUUFoQXdOQUlBRW9BaHdnQTBFWWJHb2lBQzhCQUNFRUlBQXBBd2doRFNBRklBQW9BaEEyQW1BZ0JTQU5Od05ZSUFVZ0JEWUNVQ0FDUVlzNElBVkIwQUJxRUJZZ0EwRUJhaUlESUFFb0FoaEpEUUFMQzBHYURFRUVJQUlRSFFKQUlBRW9BaWdpQkVVTkFDQUJLQUlrSWdkRkRRQkJBQ0VEUVFBaEFBSkFJQWRCQkU4RVFDQUhRWHh4SVFBRFFDQUVJQU5CQTNKQktHeHFRUVJxSUFRZ0EwRUNja0VvYkdwQkJHb2dCQ0FEUVFGeVFTaHNha0VFYWlBRUlBTkJLR3hxL1FrQ0JQMVdBZ0FCL1ZZQ0FBTDlWZ0lBQXlBTS9hNEJJUXdnQTBFRWFpSURJQUJIRFFBTElBd2dEQ0FNL1EwSUNRb0xEQTBPRHdBQkFnTUFBUUlEL2E0Qklnd2dEQ0FNL1EwRUJRWUhBQUVDQXdBQkFnTUFBUUlEL2E0Qi9Sc0FJUU1nQUNBSFJnMEJDd05BSUFRZ0FFRW9iR29vQWdRZ0Eyb2hBeUFBUVFGcUlnQWdCMGNOQUFzTElBTkZEUUJCc0ExQkVDQUNFQjBnQVNnQ0pBUkFJQUVvQWlnaEFFRUFJUWNEUUNBRklBQWdCMEVvYkNJRWFpZ0NCQ0lHTmdKRUlBVWdCellDUUNBQ1FkRTRJQVZCUUdzUUZpQUJLQUlvSVFBQ1FDQUdSUTBBUVFBaEF5QUFJQVJxS0FJUVJRMEFBMEFnQVNnQ0tDQUVhaWdDRUNBRFFSaHNhaUlBL1FBREFDRU1JQVVnQUNrREVEY0RPQ0FGSUF6OUN3TW9JQVVnQXpZQ0lDQUNRYVhSQUNBRlFTQnFFQllnQTBFQmFpSURJQVpIRFFBTElBRW9BaWdoQUFzQ1FDQUFJQVJxSWdZb0FoaEZEUUJCQUNFRElBWW9BaFJGRFFBRFFDQUFJQVJxS0FJWUlBTkJHR3hxSWdBdkFRQWhCaUFBS1FNSUlRMGdCU0FBS0FJUU5nSVFJQVVnRFRjRENDQUZJQVkyQWdBZ0FrR0xPQ0FGRUJZZ0EwRUJhaUlESUFFb0FpZ2lBQ0FFYWlnQ0ZFa05BQXNMSUFkQkFXb2lCeUFCS0FJa1NRMEFDd3RCbWd4QkJDQUNFQjBMUVp3TVFRSWdBaEFkQ3lBRlFiQUJhaVFBQzQ4Q0FRTi9Ba0JCQVVIb0FSQVRJZ0VFZnlBQlFRRTJBZ0FnQVVFQk5nSzRBU0FCSUFFdEFMd0JRUVp5T2dDOEFTQUJRUUZCakN3UUV5SUFOZ0lNSUFCRkRRRWdBVUVCUWVnSEVCTWlBRFlDRUNBQVJRMEJJQUZDQURjRE1DQUJRWDgyQWl3Z0FVSG9CellDRkFKQVFRRkJNQkFUSWdBRVFDQUFRUUEyQWhnZ0FFSGtBRFlDSUNBQVFlUUFRUmdRRXlJQ05nSWNJQUlOQVNBQUVCQUxJQUZCQURZQ3lBRU1BZ3NnQUVFQU5nSW9JQUVnQURZQ3lBRWdBUkF6SWdBMkFzUUJJQUJGRFFFZ0FSQXpJZ0EyQXNBQklBQkZEUUVDUUJDUkFVVU5BQXNnQVVFQUVHWWlBRFlDMUFFZ0FFVUVRQ0FCUVFBUVppSUFOZ0xVQVNBQVJRMENDeUFCQlVFQUN3OExJQUVRT0VFQUM0MEpBZ2wvQVg0akFFSFFBV3NpQnlRQUlBQW9Ba2doQ1FKQUFrQUNRQ0FBS0FKb1FRRkhEUUFnQUNnQ2JFRUJSdzBBSUFBb0Fwd0JLQUxjS3cwQkN5QUFLQUlJUVFoR0RRQWdCa0VCUWVIT0FFRUFFQThNQVFzQ1FDQUJLQUlRSWd4RkRRQWdBQ2dDb0FFaENpQUJLQUlZSVFzZ0RFRUlUd1JBSUF4QmVIRWhEd05BSUFzZ0NFRTBiR29nQ2pZQ0tDQUxJQWhCQVhKQk5HeHFJQW8yQWlnZ0N5QUlRUUp5UVRSc2FpQUtOZ0lvSUFzZ0NFRURja0UwYkdvZ0NqWUNLQ0FMSUFoQkJISkJOR3hxSUFvMkFpZ2dDeUFJUVFWeVFUUnNhaUFLTmdJb0lBc2dDRUVHY2tFMGJHb2dDallDS0NBTElBaEJCM0pCTkd4cUlBbzJBaWdnQ0VFSWFpRUlJQTVCQ0dvaURpQVBSdzBBQ3dzZ0RFRUhjU0lNUlEwQUEwQWdDeUFJUVRSc2FpQUtOZ0lvSUFoQkFXb2hDQ0FOUVFGcUlnMGdERWNOQUFzTElBSWdBM0lnQkhJZ0JYSkZCRUFnQmtFRVFhOHdRUUFRRHlBQVFnQTNBaHdnQUNBQUtRSm9Od0lrSUFFZ0NmMEFBZ0Q5Q3dJQUlBRWdCaEEzSVFnTUFRc2dBa0VBU0FSQUlBY2dBallDQUNBR1FRRkJ4OTBBSUFjUUQwRUFJUWdNQVFzZ0FpQUpLQUlJSWdoTEJFQWdCeUFJTmdJVUlBY2dBallDRUNBR1FRRkJtK0VBSUFkQkVHb1FEMEVBSVFnTUFRc0NRQ0FDSUFrb0FnQWlDRWtFUUNBSElBZzJBc1FCSUFjZ0FqWUN3QUVnQmtFQ1FmdmpBQ0FIUWNBQmFoQVBJQUJCQURZQ0hDQUpLQUlBSVFJTUFRc2dBQ0FDSUFBb0FsUnJJQUFvQWx4dU5nSWNDeUFCSUFJMkFnQWdBMEVBU0FSQUlBY2dBellDSUNBR1FRRkJoOTBBSUFkQklHb1FEMEVBSVFnTUFRc2dBeUFKS0FJTUlnSkxCRUFnQnlBQ05nSTBJQWNnQXpZQ01DQUdRUUZCN3Q4QUlBZEJNR29RRDBFQUlRZ01BUXNDUUNBRElBa29BZ1FpQWtrRVFDQUhJQUkyQXJRQklBY2dBellDc0FFZ0JrRUNRY3ppQUNBSFFiQUJhaEFQSUFCQkFEWUNJQ0FKS0FJRUlRTU1BUXNnQUNBRElBQW9BbGhySUFBb0FtQnVOZ0lnQ3lBQklBTTJBZ1JCQUNFSUlBUkJBRXdFUUNBSElBUTJBa0FnQmtFQlFjWGNBQ0FIUVVCckVBOE1BUXNnQkNBSktBSUFJZ0pKQkVBZ0J5QUNOZ0pVSUFjZ0JEWUNVQ0FHUVFGQm91TUFJQWRCMEFCcUVBOE1BUXNDUUNBRUlBa29BZ2dpQWtzRVFDQUhJQUkyQXFRQklBY2dCRFlDb0FFZ0JrRUNRY1BnQUNBSFFhQUJhaEFQSUFBZ0FDZ0NhRFlDSkNBSktBSUlJUVFNQVFzZ0FDQUFOUUpjSWhBZ0JDQUFLQUpVYTYxOFFnRjlJQkNBUGdJa0N5QUJJQVEyQWdnZ0JVRUFUQVJBSUFjZ0JUWUNZQ0FHUVFGQmd0d0FJQWRCNEFCcUVBOE1BUXNnQlNBSktBSUVJZ0pKQkVBZ0J5QUNOZ0owSUFjZ0JUWUNjQ0FHUVFGQjh1RUFJQWRCOEFCcUVBOE1BUXNDUUNBRklBa29BZ3dpQWtzRVFDQUhJQUkyQXBRQklBY2dCVFlDa0FFZ0JrRUNRWlhmQUNBSFFaQUJhaEFQSUFBZ0FDZ0NiRFlDS0NBSktBSU1JUVVNQVFzZ0FDQUFOUUpnSWhBZ0JTQUFLQUpZYTYxOFFnRjlJQkNBUGdJb0N5QUJJQVUyQWd3Z0FDQUFMUUJFUVFKeU9nQkVJQUVnQmhBM0lnaEZCRUJCQUNFSURBRUxJQWNnQWYwQUFnRDlDd1NBQVNBR1FRUkJ0RGtnQjBHQUFXb1FEd3NnQjBIUUFXb2tBQ0FJQzVVQ0FRZC9Jd0JCSUdzaUJTUUFBbjhnQUNnQ1NDSUVSUVJBSUFOQkFVSEY1Z0JCQUJBUFFRQU1BUXRCQUVFRUlBUW9BaEFRRXlJRVJRMEFHaUFCQkVBZ0FDZ0NTQ0VJQTBBQ1FBSkFJQUlnQmtFQ2RHb29BZ0FpQnlBSUtBSVFUd1JBSUFVZ0J6WUNFQ0FEUVFGQitSRWdCVUVRYWhBUERBRUxJQVFnQjBFQ2RHb2lDU2dDQUVVTkFTQUZJQWMyQWdBZ0EwRUJRWTBhSUFVUUR3c2dCQkFRUVFBTUF3c2dDVUVCTmdJQUlBWkJBV29pQmlBQlJ3MEFDd3NnQkJBUUlBQW9Ba0FRRUFKQUlBRUVRQ0FBSUFGQkFuUWlCQkFVSWdNMkFrQWdBMFVFUUNBQVFRQTJBanhCQUF3REN5QURJQUlnQkJBU0dnd0JDeUFBUVFBMkFrQUxJQUFnQVRZQ1BFRUJDeUVLSUFWQklHb2tBQ0FLQzd3RkFRZC9JQUZCQVVFa0VCTWlCRFlDU0FKQUFrQWdCRVVOQUFKQUlBRW9Bc1FCUVJJZ0F4QWtCRUFnQVNnQ3hBRkJFeUFERUNRTkFRc01BZ3NnQVNnQ3hBRWlCeWdDQUNFR0lBY29BZ2doQkFKQUlBWUVRRUVCSVFVZ0JrRUJSd1JBSUFaQmZuRWhDUU5BQW45QkFDQUZSUTBBR2tFQUlBRWdBQ0FESUFRb0FnQVJBQUJGRFFBYUlBRWdBQ0FESUFRb0FnUVJBQUJCQUVjTElRVWdCRUVJYWlFRUlBaEJBbW9pQ0NBSlJ3MEFDd3NDUUFKQUlBWkJBWEVFUUNBRlJRMEJJQUVnQUNBRElBUW9BZ0FSQUFCQkFFY2hCUXNnQjBFQU5nSUFJQVZGRFFFTUF3c2dCMEVBTmdJQUN3d0RDeUFIUVFBMkFnQUxBa0FnQVNnQ3dBRkJGQ0FERUNRRVFDQUJLQUxBQVVFVklBTVFKQTBCQ3d3Q0N5QUJLQUxBQVNJSEtBSUFJUVlnQnlnQ0NDRUVBa0FnQmdSQVFRRWhCU0FHUVFGeElRa2dCa0VCUmdSL1FRQUZJQVpCZm5FaEJrRUFJUWdEUUFKL1FRQWdCVVVOQUJwQkFDQUJJQUFnQXlBRUtBSUFFUUFBUlEwQUdpQUJJQUFnQXlBRUtBSUVFUUFBUVFCSEN5RUZJQVJCQ0dvaEJDQUlRUUpxSWdnZ0JrY05BQXNnQlVVTElRWUNRQUpBSUFrRVFDQUdEUUVnQVNBQUlBTWdCQ2dDQUJFQUFFRUFSeUVGQ3lBSFFRQTJBZ0FnQlVVTkFRd0RDeUFIUVFBMkFnQUxEQU1MSUFkQkFEWUNBQXNnQWtFQlFTUVFFeUlBTmdJQUlBQkZEUUFnQVNnQ1NDQUFFRDhnQVNnQ3lBRWdBU2dDYkNBQktBSm9iQ0lBTmdJa0lBQkJLQkFUSVFNZ0FTZ0N5QUVpQUNBRE5nSW9Ba0FnQTBVTkFDQUFLQUlrUlFSQVFRRVBDMEVBSVFRRFFDQURJQVJCS0d3aUJXb2lBRUVBTmdJVUlBQkI1QUEyQWh4QjVBQkJHQkFUSVFBZ0JTQUJLQUxJQVNJSEtBSW9JZ05xSUFBMkFoZ2dBRVVOQVVFQklRb2dCRUVCYWlJRUlBY29BaVJKRFFBTERBRUxJQUlvQWdBUUlVRUFJUW9nQWtFQU5nSUFDeUFLRHdzZ0FTZ0NTQkFoSUFGQkFEWUNTRUVBQ3dJQUN3UUFRUUVMTkFBQ1FDQUFSUTBBSUFGRkRRQWdBQ0FCS0FJRU5nS2tBU0FBSUFFb0FnQTJBcUFCSUFBZ0FTZ0N1RUJCQW5FMkF1QUJDd3UwQlFFSWZ5QUFLQUlZSWdRb0FoQWlDVVVFUUVFQUR3c2dCQ2dDR0NFRklBQW9BaFFvQWdBb0FoUWhCQUpBQWtBZ0FVVUVRRUVBSVFFRFFDQUZLQUlZSVFJZ0JDZ0NIQ0FFS0FJWVFaZ0JiR29pQUVHTUFXc29BZ0FpQnlBQVFaUUJheWdDQUNJSWF5RURJQUJCa0FGcktBSUFJQUJCbUFGcktBSUFheUVBQWtBZ0J5QUlSZzBBSUFDdElBT3Rma0lnaUZBTkFBd0VDeUFBSUFOc0lRTUNRRUVFSUFKQkEzWWdBa0VIY1VFQVIyb2lBQ0FBUVFOR0d5SUNSUTBBSUFLdElBT3Rma0lnaUZBTkFBd0VDMEYvSVFBZ0FpQURiQ0lDSUFGQmYzTkxEUUlnQkVITUFHb2hCQ0FGUVRScUlRVWdBU0FDYWlJQklRQWdCa0VCYWlJR0lBbEhEUUFMREFFTFFRQWhBU0FBS0FKQVJRUkFBMEFnQlNnQ0dDRUNJQVFvQWh3Z0JDZ0NHRUdZQVd4cUlnQkJCR3NvQWdBaUJ5QUFRUXhyS0FJQUlnaHJJUU1nQUVFSWF5Z0NBQ0FBUVJCcktBSUFheUVBQWtBZ0J5QUlSZzBBSUFDdElBT3Rma0lnaUZBTkFBd0VDeUFBSUFOc0lRTUNRRUVFSUFKQkEzWWdBa0VIY1VFQVIyb2lBQ0FBUVFOR0d5SUNSUTBBSUFLdElBT3Rma0lnaUZBTkFBd0VDMEYvSVFBZ0FpQURiQ0lDSUFGQmYzTkxEUUlnQkVITUFHb2hCQ0FGUVRScUlRVWdBU0FDYWlJQklRQWdCa0VCYWlJR0lBbEhEUUFMREFFTEEwQWdCU2dDR0NFQ0lBUW9BaHdnQkNnQ0dFR1lBV3hxSWdCQmpBRnJLQUlBSWdjZ0FFR1VBV3NvQWdBaUNHc2hBeUFBUVpBQmF5Z0NBQ0FBUVpnQmF5Z0NBR3NoQUFKQUlBY2dDRVlOQUNBQXJTQURyWDVDSUloUURRQU1Bd3NnQUNBRGJDRURBa0JCQkNBQ1FRTjJJQUpCQjNGQkFFZHFJZ0FnQUVFRFJoc2lBa1VOQUNBQ3JTQURyWDVDSUloUURRQU1Bd3RCZnlFQUlBSWdBMndpQWlBQlFYOXpTdzBCSUFSQnpBQnFJUVFnQlVFMGFpRUZJQUVnQW1vaUFTRUFJQVpCQVdvaUJpQUpSdzBBQ3dzZ0FBOExRWDhMMmdRQkMzOGdBQVJBSUFBb0FoUWlBUVJBSUFFb0FnQWlCUVJBSUFVb0FoUWhBeUFGS0FJUUJIOUJFRUVSSUFBdEFDaEJBWEViSVFnRFFDQURLQUljSWdJRVFDQURLQUlnSWdGQm1BRnVJUXBCQUNFSklBRkJtQUZQQkg4RFFDQUNLQUl3SWdFRVFDQUNLQUkwSWdaQktHNGhCMEVBSVFRZ0JrRW9Ud1IvQTBBZ0FTZ0NJQkFwSUFGQkFEWUNJQ0FCS0FJa0VDa2dBVUVBTmdJa0lBRWdDQkVDQUNBQlFTaHFJUUVnQkVFQmFpSUVJQWRIRFFBTElBSW9BakFGSUFFTEVCQWdBa0VBTmdJd0N5QUNLQUpVSWdFRVFDQUNLQUpZSWdaQktHNGhCMEVBSVFRZ0JrRW9Ud1IvQTBBZ0FTZ0NJQkFwSUFGQkFEWUNJQ0FCS0FJa0VDa2dBVUVBTmdJa0lBRWdDQkVDQUNBQlFTaHFJUUVnQkVFQmFpSUVJQWRIRFFBTElBSW9BbFFGSUFFTEVCQWdBa0VBTmdKVUN5QUNLQUo0SWdFRVFDQUNLQUo4SWdaQktHNGhCMEVBSVFRZ0JrRW9Ud1IvQTBBZ0FTZ0NJQkFwSUFGQkFEWUNJQ0FCS0FJa0VDa2dBVUVBTmdJa0lBRWdDQkVDQUNBQlFTaHFJUUVnQkVFQmFpSUVJQWRIRFFBTElBSW9BbmdGSUFFTEVCQWdBa0VBTmdKNEN5QUNRWmdCYWlFQ0lBbEJBV29pQ1NBS1J3MEFDeUFES0FJY0JTQUNDeEFRSUFOQkFEWUNIQXNDUUNBREtBSW9SUTBBSUFNb0FpUWlBVVVOQUNBQkVCQWdBLzBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBUDBMQWlRTElBTW9BalFRRUNBRFFjd0FhaUVESUF0QkFXb2lDeUFGS0FJUVNRMEFDeUFGS0FJVUJTQURDeEFRSUFWQkFEWUNGQ0FBS0FJVUtBSUFFQkFnQUNnQ0ZDSUJRUUEyQWdBTElBRVFFQ0FBUVFBMkFoUUxJQUFvQWtRUUVDQUFFQkFMQzhzVEFSVi9Jd0JCSUdzaUR5UUFJQThnQlRZQ0dDQUJJQU1vQWh4QnpBQnNhaWdDSENBREtBSWdRWmdCYkdvaEVRSkFBa0FnQXlnQ0tBMEFJQkVvQWhoRkRRQWdFVUVjYWlFSkEwQUNRQ0FKS0FJSUlBa29BZ0JIQkg4Z0NTZ0NEQ0FKS0FJRVJnVkJBUXNOQUNBREtBSWtJZ0VnQ1NnQ0dFRW9iazhFUUNBSVFRRkJnaFZCQUJBUERBUUxJQWtvQWhRZ0FVRW9iR29pQVNnQ0lCQmlJQUVvQWlRUVlpQUJLQUlVSUFFb0FoQnNJZzFGRFFBZ0FTZ0NHQ0VCSUExQkNFOEVRQ0FOUVhoeElRdEJBQ0VLQTBBZ0FVSUFOd0xvQXlBQlFnQTNBcWdESUFGQ0FEY0M2QUlnQVVJQU53S29BaUFCUWdBM0F1Z0JJQUZDQURjQ3FBRWdBVUlBTndKb0lBRkNBRGNDS0NBQlFZQUVhaUVCSUFwQkNHb2lDaUFMUncwQUN3dEJBQ0VLSUExQkIzRWlEVVVOQUFOQUlBRkNBRGNDS0NBQlFVQnJJUUVnQ2tFQmFpSUtJQTFIRFFBTEN5QUpRU1JxSVFrZ0RFRUJhaUlNSUJFb0FoaEpEUUFMQ3lBRklRMENRQ0FDTFFBQVFRSnhSUTBBSUFkQkJVMEVRQ0FJUVFKQnNSOUJBQkFQREFFTEFrQWdCUzBBQUVIL0FVWUVRQ0FGTFFBQlFaRUJSZzBCQ3lBSVFRSkIyeDlCQUJBUERBRUxJQThnQlVFR2FpSU5OZ0lZQzBFVUVCUWlDMFVOQUFKL0lBQXRBR3hCQVhFRVFDQUFRU2hxSVFjZ0FDZ0NLQ0VOSUFCQkxHb01BUXNnQWkwQWlDeEJBbkVFUUNBQ1FiQW9haUVISUFJb0FyQW9JUTBnQWtHOEtHb01BUXNnRHlBRklBZHFJQTFyTmdJY0lBOUJHR29oQnlBUFFSeHFDeUlTS0FJQUlRQWdDMElBTndJTUlBc2dEVFlDQ0NBTElBMDJBZ0FnQ3lBQUlBMXFOZ0lFSUF0QkFSQWZSUVJBSUFzUVpCb2dDeWdDQ0NBTEtBSUFheUVhSUFzUUxDQWFJQTFxSVFFQ1FDQUNMUUFBUVFSeFJRMEFJQWNvQWdBZ0VpZ0NBQ0FCYTJwQkFVMEVRQ0FJUVFKQm1DRkJBQkFQREFFTEFrQWdBUzBBQUVIL0FVWUVRQ0FCTFFBQlFaSUJSZzBCQ3lBSVFRSkJ3aUZCQUJBUERBRUxJQUZCQW1vaEFRc2dFaUFTS0FJQUlBY29BZ0FnQVd0cU5nSUFJQWNnQVRZQ0FDQUVRUUEyQWdBZ0JpQVBLQUlZSUFWck5nSUFRUUVoRnd3QkN5QVJLQUlZQkVBZ0VVRWNhaUVRQTBBZ0F5Z0NKQ0VBSUJBb0FoUWhBUUpBSUJBb0FnZ2dFQ2dDQUVjRWZ5QVFLQUlNSUJBb0FnUkdCVUVCQ3cwQUlBRWdBRUVvYkdvaUZDZ0NGQ0FVS0FJUWJDSVlSUTBBSUJRb0FoZ2hDVUVBSVJVRFFBSkFBbjhnQ1NnQ0tFVUVRQ0FMSUJRb0FpQWdGU0FES0FJb1FRRnFFR0FNQVFzZ0MwRUJFQjhMUlFSQUlBbEJBRFlDSkF3QkN5QUpLQUlvUlFSQVFRQWhBUU5BSUFFaUFFRUJhaUVCSUFzZ0ZDZ0NKQ0FWSUFBUVlFVU5BQXNnRUNnQ0hDRUJJQWxCQXpZQ0lDQUpJQUUyQWhnZ0NTQUJJQUJyUVFGcU5nSWNDeUFKQW45QkFTQUxRUUVRSDBVTkFCcEJBaUFMUVFFUUgwVU5BQm9nQzBFQ0VCOGlBRUVEUndSQUlBQkJBMm9NQVFzZ0MwRUZFQjhpQUVFZlJ3UkFJQUJCQm1vTUFRc2dDMEVIRUI5QkpXb0xOZ0lrUVFBaEFRTkFJQUVpQUVFQmFpRUJJQXRCQVJBZkRRQUxJQWtnQ1NnQ0lDQUFhallDSUFKQUFrQUNmeUFKS0FJb0lnQkZCRUFnQWlnQzBDc2dBeWdDSEVHNENHeHFLQUlRSVFBZ0NTZ0NNRVVFUUNBSktBSUFRZkFCRUJjaUFVVU5CQ0FKSUFFMkFnQWdBU0FKS0FJd1FSaHNha0VBUWZBQkVCVWFJQWxCQ2pZQ01Bc2dDU2dDQUNJQi9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQS9Rc0NBQ0FCUWdBM0FoQkJBVUVLUWUwQUlBQkJBWEViSUFCQkJIRWJJUXBCQUF3QkN5QUpLQUlBSWdFZ0FFRUJheUlNUVJoc2FpSUtLQUlFSUFvb0FneEhEUUVnQWlnQzBDc2dBeWdDSEVHNENHeHFLQUlRSVFvZ0NTZ0NNQ0lNSUFCQkFXcEpCSDhnQVNBTVFRcHFJZ3hCR0d3UUZ5SUJSUTBESUFrZ0FUWUNBQ0FCSUFrb0FqQkJHR3hxUVFCQjhBRVFGUm9nQ1NBTU5nSXdJQWtvQWdBRklBRUxJQUJCR0d4cUlnSDlEQUFBQUFBQUFBQUFBQUFBQUFBQUFBRDlDd0lBSUFGQ0FEY0NFQUovUVFFZ0NrRUVjUTBBR2tIdEFDQUtRUUZ4UlEwQUdrRUNRUUpCQVNBQlFReHJLQUlBSWdwQkNrWWJJQXBCQVVZYkN5RUtJQUFMSVF3Z0FTQUtOZ0lNQ3lBSktBSWtJUUFnQWlnQzBDc2dBeWdDSEVHNENHeHFMUUFRUWNBQWNRUkFBMEFnREVFWWJDSU9JQWtvQWdCcUlBQkJBU0FNR3lJVE5nSVFJQWtvQWlBaEZrRUFJUW9nQUNFQklCTkJBazhFUUFOQUlBcEJBV29oQ2lBQlFRTkxJUnNnQVVFQmRpRUJJQnNOQUFzTElBb2dGbW9pQVVFaFR3UkFJQThnQVRZQ0VDQUlRUUZCdlBRQUlBOUJFR29RRHd3REN5QUxJQUVRSHlFS0lBa29BZ0FpQVNBT2FpSU9JQW8yQWhRZ0FDQU9LQUlRYXlJQVFRQk1EUU1nQWlnQzBDc2dBeWdDSEVHNENHeHFLQUlRSVFvZ0NTZ0NNQ0lPSUF4QkFtcEpCRUFnQVNBT1FRcHFJZzVCR0d3UUZ5SUJSUTBESUFrZ0FUWUNBQ0FCSUFrb0FqQkJHR3hxUVFCQjhBRVFGUm9nQ1NBT05nSXdJQWtvQWdBaEFRc2dBU0FNUVFGcUlneEJHR3hxSWdIOURBQUFBQUFBQUFBQUFBQUFBQUFBQUFEOUN3SUFJQUZDQURjQ0VDQUJBbjlCQVNBS1FRUnhEUUFhUWUwQUlBcEJBWEZGRFFBYVFRSkJBa0VCSUFGQkRHc29BZ0FpQVVFS1Joc2dBVUVCUmhzTE5nSU1EQUFMQUFzRFFDQU1RUmhzSWc0Z0NTZ0NBR29pQVNBQktBSU1JQUVvQWdScklnRWdBQ0FBSUFGS0d5SUJOZ0lRSUFrb0FpQWhFMEVBSVFvZ0FVRUNUd1JBQTBBZ0NrRUJhaUVLSUFGQkEwc2hIQ0FCUVFGMklRRWdIQTBBQ3dzZ0NpQVRhaUlCUVNGUEJFQWdEeUFCTmdJQUlBaEJBVUc4OUFBZ0R4QVBEQUlMSUFzZ0FSQWZJUW9nQ1NnQ0FDSUJJQTVxSWc0Z0NqWUNGQ0FBSUE0b0FoQnJJZ0JCQUV3TkFpQUNLQUxRS3lBREtBSWNRYmdJYkdvb0FoQWhDaUFKS0FJd0lnNGdERUVDYWtrRVFDQUJJQTVCQ21vaURrRVliQkFYSWdGRkRRSWdDU0FCTmdJQUlBRWdDU2dDTUVFWWJHcEJBRUh3QVJBVkdpQUpJQTQyQWpBZ0NTZ0NBQ0VCQ3lBQklBeEJBV29pREVFWWJHb2lBZjBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBUDBMQWdBZ0FVSUFOd0lRSUFFQ2YwRUJJQXBCQkhFTkFCcEI3UUFnQ2tFQmNVVU5BQnBCQWtFQ1FRRWdBVUVNYXlnQ0FDSUJRUXBHR3lBQlFRRkdHd3MyQWd3TUFBc0FDeUFMRUN3TUJRc2dDVUZBYXlFSklCVkJBV29pRlNBWVJ3MEFDd3NnRUVFa2FpRVFJQmxCQVdvaUdTQVJLQUlZU1EwQUN3c2dDeEJrUlFSQUlBc1FMQXdCQ3lBTEtBSUlJQXNvQWdCcklSMGdDeEFzSUIwZ0RXb2hBUUpBSUFJdEFBQkJCSEZGRFFBZ0J5Z0NBQ0FTS0FJQUlBRnJha0VCVFFSQUlBaEJBa0dZSVVFQUVBOE1BUXNDUUNBQkxRQUFRZjhCUmdSQUlBRXRBQUZCa2dGR0RRRUxJQWhCQWtIQ0lVRUFFQThNQVFzZ0FVRUNhaUVCQ3lBU0lCSW9BZ0FnQnlnQ0FDQUJhMm8yQWdBZ0J5QUJOZ0lBUVFFaEZ5QUVRUUUyQWdBZ0JpQVBLQUlZSUFWck5nSUFDeUFQUVNCcUpBQWdGd3VXSkFJVWZ3NStBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FBS0FKVURnVUFBUUlEQkFvTEFrQWdBQ2dDTkNJR0lBQW9Bc1FCSWdGSkJFQWdBQ2dDUUNJSElBRkJBV3BKRFFFTElBQW9BdXdCUVFGQjlEOUJBQkFQREF3TElBQW9BaXhGQkVBZ0FDZ0NKQ0VDUVFBaEFRd0ZDeUFBUVFBMkFpd2dBQ2dDUkNFRFFRRWhBUXdFQ3dKQUlBQW9BalFpQmlBQUtBTEVBU0lCU1FSQUlBQW9Ba0FpQnlBQlFRRnFTUTBCQ3lBQUtBTHNBVUVCUWFIQUFFRUFFQThNQ3dzZ0FDZ0NMRVVFUUNBQUtBSWtJUVJCQUNFQkRBZ0xJQUJCQURZQ0xDQUFLQUl3SVFOQkFTRUJEQWNMQWtBZ0FDZ0NOQ0lFSUFBb0FzUUJJZ3BKQkVBZ0FDZ0NRQ0lPSUFwQkFXcEpEUUVMSUFBb0F1d0JRUUZCcU1FQVFRQVFEd3dLQ3lBQUtBSXNSUVJBSUFBb0FpZ2hDd3dHQ3lBQVFnQTNBdVFCSUFCQkFEWUNMQ0FBS0FMSUFTRU1BMEFnRENBSFFRUjBhaUlGS0FJSUlnOEVRQ0FGS0FJTUlSSkJBQ0VCQTBBQ1FDQVBJQUZCZjNOcUloQWdFaUFCUVFSMGFpSVJLQUlBYWlJSlFSOUxEUUFnQlNnQ0FDSVRRWDhnQ1haTERRQWdBQ0FDSUJNZ0NYUWlDU0FDSUFsSkd5QUpJQUliSWdJMkF1UUJDd0pBSUJFb0FnUWdFR29pQ1VFZlN3MEFJQVVvQWdRaUVFRi9JQWwyU3cwQUlBQWdBeUFRSUFsMElna2dBeUFKU1JzZ0NTQURHeUlETmdMb0FRc2dBVUVCYWlJQklBOUhEUUFMQ3lBSFFRRnFJZ2NnQ2tjTkFBc2dBa1VOQnlBRFJRMEhJQUF0QUFCRkJFQWdBQ0FBS0FMUUFUWUNiQ0FBSUFBb0Fzd0JOZ0prSUFBZ0FDZ0MyQUUyQW5BZ0FDQUFLQUxVQVRZQ2FBc2dBQ2dDTUNFRlFRRWhBUXdGQ3dKQUlBQW9BalFpQlNBQUtBTEVBU0lKU1FSQUlBQW9Ba0FpRWlBSlFRRnFTUTBCQ3lBQUtBTHNBVUVCUWZ2QUFFRUFFQThNQ1FzZ0FDZ0NMRVVFUUNBQUtBTElBU0lOSUFBb0Fod2lCRUVFZEdvaEN5QUFLQUlvSVFnTUJBc2dBRUlBTndMa0FTQUFRUUEyQWl3Z0FDZ0N5QUVoRFFOQUlBMGdCa0VFZEdvaUNpZ0NDQ0lPQkVBZ0NpZ0NEQ0VRUVFBaEFRTkFBa0FnRGlBQlFYOXphaUlSSUJBZ0FVRUVkR29pRXlnQ0FHb2lERUVmU3cwQUlBb29BZ0FpRkVGL0lBeDJTdzBBSUFBZ0FpQVVJQXgwSWd3Z0FpQU1TUnNnRENBQ0d5SUNOZ0xrQVFzQ1FDQVRLQUlFSUJGcUlneEJIMHNOQUNBS0tBSUVJaEZCZnlBTWRrc05BQ0FBSUFNZ0VTQU1kQ0lNSUFNZ0RFa2JJQXdnQXhzaUF6WUM2QUVMSUFGQkFXb2lBU0FPUncwQUN3c2dCa0VCYWlJR0lBbEhEUUFMSUFKRkRRWWdBMFVOQmdKQUlBQXRBQUFFUUNBQUtBSnNJUVlNQVFzZ0FDQUFLQUxRQVNJR05nSnNJQUFnQUNnQ3pBRTJBbVFnQUNBQUtBTFlBVFlDY0NBQUlBQW9BdFFCTmdKb0MwRUJJUUVNQXdzQ1FDQUFLQUkwSWdZZ0FDZ0N4QUVpQVVrRVFDQUFLQUpBSWc4Z0FVRUJha2tOQVFzZ0FDZ0M3QUZCQVVIT3dBQkJBQkFQREFZTElBQW9BaXhGQkVBZ0FDZ0N5QUVnQUNnQ0hDSUdRUVIwYWlFRklBQW9BaWdoQjBFQUlRRU1BZ3NnQUNBR05nSWNJQUJCQURZQ0xFRUJJUUVNQVFzRFFBSi9Ba0FnQVVVRVFDQUNRUUZxSVFJTUFRc2dBQ0FETmdJb0lBQW9BamdnQTAwTkNTQUFLQUl3SVFSQkFBd0JDMEVCQ3lFQkEwQUNRQUpBQWtBQ1FDQUJSUVJBSUFBZ0JEWUNJQ0FFSUFBb0FqeFBEUUVnQUNBR05nSWNJQVloQVVFQUlRVU1CQXNnQUNBQ05nSWtJQUFvQWt3Z0FrMEVRQ0FBS0FJY0lRRkJBU0VGREFRTElBQW9BaEFnQUNnQ0lHd2dBQ2dDRENBQUtBSW9iR29nQUNnQ0ZDQUFLQUljYkdvZ0FDZ0NHQ0FDYkdvaUFTQUFLQUlJVHdSQURBd0xJQUFvQWdRZ0FVRUJkR29pQVM4QkFBMEJEQTBMSUFBb0FpaEJBV29oQXd3QkMwRUFJUUVNQXd0QkFTRUJEQUlMQTBBQ1FBSkFBa0FnQlVVRVFDQUJJQWRQRFFFZ0FDZ0NJQ0lGSUFBb0FzZ0JJQUZCQkhScUlnMG9BZ2hQRFFNZ0FDMEFBRVVFUUNBQUlBMG9BZ3dnQlVFRWRHb2lBU2dDRENBQktBSUliRFlDVEFzZ0FDZ0NTQ0VDUVFFaEFRd0ZDeUFBSUFGQkFXb2lBVFlDSEF3QkN5QUFLQUlnUVFGcUlRUkJBQ0VCREFNTFFRQWhCUXdCQzBFQklRVU1BQXNBQ3dBTEFBc0RRQUovQWtBZ0FVVUVRQ0FBSUFkQkFXb2lCellDS0F3QkN5QUdJQTlQRFFnZ0FFSUFOd0xrQVNBQUtBTElBU0FHUVFSMGFpSUZLQUlJSWd0RkRRZ2dCU2dDRENFS1FRQWhBa0VBSVFSQkFDRUJBMEFDUUNBTElBRkJmM05xSWdrZ0NpQUJRUVIwYWlJT0tBSUFhaUlJUVI5TERRQWdCU2dDQUNJTVFYOGdDSFpMRFFBZ0FDQUVJQXdnQ0hRaUNDQUVJQWhKR3lBSUlBUWJJZ1EyQXVRQkN3SkFJQTRvQWdRZ0NXb2lDRUVmU3cwQUlBVW9BZ1FpQ1VGL0lBaDJTdzBBSUFBZ0FpQUpJQWgwSWdnZ0FpQUlTUnNnQ0NBQ0d5SUNOZ0xvQVFzZ0FVRUJhaUlCSUF0SERRQUxJQVJGRFFZZ0FrVU5CZ0pBSUFBdEFBQUVRQ0FBS0FKc0lRSU1BUXNnQUNBQUtBTFFBU0lDTmdKc0lBQWdBQ2dDekFFMkFtUWdBQ0FBS0FMWUFUWUNjQ0FBSUFBb0F0UUJOZ0pvQzBFQURBRUxRUUVMSVFFRFFBSkFBa0FDUUFKQUlBRkZCRUFnQUNBQ05nTGdBU0FDSUFBb0FuQlBEUUVnQUNnQ1pDRU5RUUFoQVF3RUN5QUFLQUk0SUFkTkJFQWdBQ2dDSUNFRFFRRWhBUXdFQ3lBQUtBSVFJQUFvQWlCc0lBQW9BZ3dnQjJ4cUlBQW9BaFFnQm14cUlBQW9BaGdnQUNnQ0pHeHFJZ0VnQUNnQ0NFOEVRQXdMQ3lBQUtBSUVJQUZCQVhScUlnRXZBUUFOQVF3TUN5QUFJQVpCQVdvaUJqWUNIQXdCQzBFQUlRRU1Bd3RCQVNFQkRBSUxBMEFDUUFKQUFrQWdBQUovSUFGRkJFQWdBQ0FOTmdMY0FTQU5JQUFvQW1oUERRSWdBQ2dDTUF3QkN5QURRUUZxQ3lJRE5nSWdJQUFvQWp3aUFTQUZLQUlJSWdRZ0FTQUVTUnNnQTBzRVFDQUZLQUlBSWdFZ0FhMGlIaUFFSUFOQmYzTnFJZ2l0SWhhR0loY2dGb2luUncwRElBVW9BZ1FpQkVKL0lCYUlwM0VnQkVjTkF5QUVyU0lWSUJhR0loaENBWDBpR1NBQU5RTFlBWHdnR0lBaEh5QVpJQUFvQXRBQklnbXRmQ0FZZ0NFYUlCZENBWDBpR3lBQU5RTFVBWHdnRjRBaElDQWJJQUFvQXN3QklnNnRmQ0FYZ0NFY0lBRkNmeUFGS0FJTUlBTkJCSFJxSWdzb0FnQWlDaUFJYXEwaUhZaW5jU0FCUncwRElBUWdGU0FMS0FJRUlnRWdDR3F0SWhXR0lpRWdGWWluUncwRElBQW9BdUFCSWdTdElpSWdJWUpDQUZJRVFDQUVJQWxIRFFSQ2Z5QVZoa0ovaFNBYVF2Ly8vLzhQZ3lBV2hvTlFEUVFMSUFBb0F0d0JJZ1N0SWhVZ0hpQWRob0pDQUZJRVFDQUVJQTVIRFFSQ2Z5QWRoa0ovaFNBY1F2Ly8vLzhQZ3lBV2hvTlFEUVFMSUFzb0FnZ2lCRVVOQXlBTEtBSU1SUTBESUJ5bklnc2dJS2RHRFFNZ0dxY2lDQ0FmcDBZTkF5QUFJQUFvQWtRaUJ6WUNLQ0FBSUJVZ0czd2dGNENuSUFwMklBc2dDblpySUJrZ0lud2dHSUNuSUFGMklBZ2dBWFpySUFSc2FqWUNKRUVCSVFFTUJRc2dBQ2dDM0FFaUFTQUFLQUxrQVNJRWFpQUJJQVJ3YXlFTkRBRUxJQUFvQXVBQklnRWdBQ2dDNkFFaUJHb2dBU0FFY0dzaEFrRUFJUUVNQXd0QkFDRUJEQUVMUVFFaEFRd0FDd0FMQUFzQUN3TkFBbjhDUUNBQlJRUkFJQUFnQ0VFQmFpSUlOZ0lvREFFTElBQWdCallDNEFFZ0FDZ0NjQ0FHVFEwSElBQW9BbVFoRDBFQURBRUxRUUVMSVFFRFFBSkFBa0FDUUFKQUlBRkZCRUFnQUNBUE5nTGNBU0FQSUFBb0FtaFBEUUVnQUNBRk5nSWNJQVVoQkVFQUlRRU1CQXNnQUNnQ09DQUlUUVJBSUFBb0FpQWhCMEVCSVFFTUJBc2dBQ2dDRUNBQUtBSWdiQ0FBS0FJTUlBaHNhaUFBS0FJVUlBUnNhaUFBS0FJWUlBQW9BaVJzYWlJQklBQW9BZ2hQQkVBTUNnc2dBQ2dDQkNBQlFRRjBhaUlCTHdFQURRRU1Dd3NnQUNnQzRBRWlBU0FBS0FMb0FTSUdhaUFCSUFad2F5RUdEQUVMUVFBaEFRd0RDMEVCSVFFTUFnc0RRQUpBQWtBQ1FBSkFJQUZGQkVBZ0JDQVNUdzBDSUFBZ0FDZ0NNQ0lITmdJZ0lBMGdCRUVFZEdvaEN3d0JDeUFBSUFkQkFXb2lCellDSUFzZ0FDZ0NQQ0lCSUFzb0FnZ2lBaUFCSUFKSkd5QUhTd1JBSUFzb0FnQWlBU0FCclNJZUlBSWdCMEYvYzJvaUNxMGlGb1lpRnlBV2lLZEhEUU1nQ3lnQ0JDSUNRbjhnRm9pbmNTQUNSdzBESUFLdEloVWdGb1lpR0VJQmZTSVpJQUExQXRnQmZDQVlnQ0VmSUJrZ0FDZ0MwQUVpRHExOElCaUFJUm9nRjBJQmZTSWJJQUExQXRRQmZDQVhnQ0VnSUJzZ0FDZ0N6QUVpREsxOElCZUFJUndnQVVKL0lBc29BZ3dnQjBFRWRHb2lBeWdDQUNJSklBcHFyU0lkaUtkeElBRkhEUU1nQWlBVklBTW9BZ1FpQVNBS2FxMGlGWVlpSVNBVmlLZEhEUU1nQUNnQzRBRWlBcTBpSWlBaGdrSUFVZ1JBSUFJZ0RrY05CRUovSUJXR1FuK0ZJQnBDLy8vLy93K0RJQmFHZzFBTkJBc2dBQ2dDM0FFaUFxMGlGU0FlSUIyR2drSUFVZ1JBSUFJZ0RFY05CRUovSUIyR1FuK0ZJQnhDLy8vLy93K0RJQmFHZzFBTkJBc2dBeWdDQ0NJQ1JRMERJQU1vQWd4RkRRTWdIS2NpQXlBZ3AwWU5BeUFhcHlJS0lCK25SZzBESUFBZ0FDZ0NSQ0lJTmdJb0lBQWdGU0FiZkNBWGdLY2dDWFlnQXlBSmRtc2dHU0FpZkNBWWdLY2dBWFlnQ2lBQmRtc2dBbXhxTmdJa1FRRWhBUXdGQ3lBQUlBUkJBV29pQkRZQ0hBd0JDeUFBS0FMY0FTSUJJQUFvQXVRQklnSnFJQUVnQW5CcklROUJBQ0VCREFNTFFRQWhBUXdCQzBFQklRRU1BQXNBQ3dBTEFBc0RRQUovQWtBZ0FVVUVRQ0FBSUF0QkFXb2lDellDS0F3QkN5QUFJQVUyQWlBZ0FDZ0NQQ0FGVFEwR0lBQW9BbXdoQ0VFQURBRUxRUUVMSVFFRFFBSkFBa0FDUUFKQUlBRkZCRUFnQUNBSU5nTGdBU0FJSUFBb0FuQlBEUUVnQUNnQ1pDRU5RUUFoQVF3RUN5QUFLQUk0SUF0TkJFQWdBQ2dDSENFR1FRRWhBUXdFQ3lBQUtBSVFJQUFvQWlCc0lBQW9BZ3dnQzJ4cUlBQW9BaFFnQUNnQ0hHeHFJQUFvQWhnZ0FDZ0NKR3hxSWdFZ0FDZ0NDRThFUUF3SkN5QUFLQUlFSUFGQkFYUnFJZ0V2QVFBTkFRd0tDeUFBS0FJZ1FRRnFJUVVNQVF0QkFDRUJEQU1MUVFFaEFRd0NDd05BQWtBQ1FBSkFBa0FnQVVVRVFDQUFJQTAyQXR3QklBMGdBQ2dDYUU4TkFpQUFJQVEyQWh3Z0JDRUdEQUVMSUFBZ0JrRUJhaUlHTmdJY0N5QUdJQTVKQkVBZ0FDZ0NJQ0lISUFBb0FzZ0JJQVpCQkhScUlnRW9BZ2dpQTA4TkF5QUJLQUlBSWdJZ0FxMGlIaUFESUFkQmYzTnFJZ3F0SWhhR0loY2dGb2luUncwRElBRW9BZ1FpQTBKL0lCYUlwM0VnQTBjTkF5QURyU0lWSUJhR0loaENBWDBpR1NBQU5RTFlBWHdnR0lBaEh5QVpJQUFvQXRBQklnK3RmQ0FZZ0NFYUlCZENBWDBpR3lBQU5RTFVBWHdnRjRBaElDQWJJQUFvQXN3QklnbXRmQ0FYZ0NFY0lBSkNmeUFCS0FJTUlBZEJCSFJxSWdFb0FnQWlCeUFLYXEwaUhZaW5jU0FDUncwRElBTWdGU0FCS0FJRUlnSWdDbXF0SWhXR0lpRWdGWWluUncwRElBQW9BdUFCSWdPdElpSWdJWUpDQUZJRVFDQURJQTlIRFFSQ2Z5QVZoa0ovaFNBYVF2Ly8vLzhQZ3lBV2hvTlFEUVFMSUFBb0F0d0JJZ090SWhVZ0hpQWRob0pDQUZJRVFDQURJQWxIRFFSQ2Z5QWRoa0ovaFNBY1F2Ly8vLzhQZ3lBV2hvTlFEUVFMSUFFb0FnZ2lBMFVOQXlBQktBSU1SUTBESUJ5bklnRWdJS2RHRFFNZ0dxY2lDaUFmcDBZTkF5QUFJQUFvQWtRaUN6WUNLQ0FBSUJVZ0czd2dGNENuSUFkMklBRWdCM1pySUJrZ0lud2dHSUNuSUFKMklBb2dBblpySUFOc2FqWUNKRUVCSVFFTUJRc2dBQ2dDM0FFaUFTQUFLQUxrQVNJQ2FpQUJJQUp3YXlFTkRBRUxJQUFvQXVBQklnRWdBQ2dDNkFFaUFtb2dBU0FDY0dzaENFRUFJUUVNQXd0QkFDRUJEQUVMUVFFaEFRd0FDd0FMQUFzQUN3TkFBbjhDUUNBQlJRUkFJQVJCQVdvaEJBd0JDeUFBSUFNMkFpQWdBQ2dDUENBRFRRMEZJQUFvQWtRaEFrRUFEQUVMUVFFTElRRURRQUpBQWtBQ1FBSkFJQUZGQkVBZ0FDQUNOZ0lvSUFJZ0FDZ0NPRThOQVNBQUlBWTJBaHdnQmlFQlFRQWhCUXdFQ3lBQUlBUTJBaVFnQUNnQ1RDQUVUUVJBSUFBb0Fod2hBVUVCSVFVTUJBc2dBQ2dDRUNBQUtBSWdiQ0FBS0FJTUlBQW9BaWhzYWlBQUtBSVVJQUFvQWh4c2FpQUFLQUlZSUFSc2FpSUJJQUFvQWdoUEJFQU1DQXNnQUNnQ0JDQUJRUUYwYWlJQkx3RUFEUUVNQ1FzZ0FDZ0NJRUVCYWlFRERBRUxRUUFoQVF3REMwRUJJUUVNQWdzRFFBSkFBa0FDUUNBRlJRUkFJQUVnQjA4TkFTQUFLQUlnSWdVZ0FDZ0N5QUVnQVVFRWRHb2lEU2dDQ0U4TkF5QUFMUUFBUlFSQUlBQWdEU2dDRENBRlFRUjBhaUlCS0FJTUlBRW9BZ2hzTmdKTUN5QUFLQUpJSVFSQkFTRUJEQVVMSUFBZ0FVRUJhaUlCTmdJY0RBRUxJQUFvQWloQkFXb2hBa0VBSVFFTUF3dEJBQ0VGREFFTFFRRWhCUXdBQ3dBTEFBc0FDMEVBRHdzZ0FDZ0M3QUZCQVVHYUNrRUFFQThMUVFBUEN5QUJRUUU3QVFCQkFRdVJDd0VLZndKQUlBRW9BZ0FnQkVFRGJDSU1kaUlHUVpDQWdBRnhEUUFnQUNBQVFSeHFJZzRnQUNnQ2JDQUdRZThEY1dvdEFBQkJBblJxSWdvMkFtZ2dBQ0FBS0FJRUlBb29BZ0FpQ1NnQ0FDSUlheUlHTmdJRUFrQWdDQ0FBS0FJQUlnZEJFSFpMQkVBZ0NTZ0NCQ0VMSUFBZ0NEWUNCQ0FLSUFsQkNFRU1JQVlnQ0VraUJodHFLQUlBTmdJQUlBc2dDMFVnQmhzaENTQUFLQUlJSVFZRFFBSkFJQVlOQUNBQUtBSVFJZ1pCQVdvaEN5QUdMUUFCSVFvZ0JpMEFBRUgvQVVZRVFDQUtRWkFCVHdSQUlBQWdBQ2dDREVFQmFqWUNEQ0FIUVlEK0Eyb2hCMEVJSVFZTUFnc2dBQ0FMTmdJUUlBY2dDa0VKZEdvaEIwRUhJUVlNQVFzZ0FDQUxOZ0lRUVFnaEJpQUhJQXBCQ0hScUlRY0xJQUFnQmtFQmF5SUdOZ0lJSUFBZ0IwRUJkQ0lITmdJQUlBQWdDRUVCZENJSU5nSUVJQWhCZ0lBQ1NRMEFDeUFJSVFZTUFRc2dBQ0FISUFoQkVIUnJJZ2MyQWdBZ0JrR0FnQUp4UlFSQUlBa29BZ1FoQ3lBS0lBbEJERUVJSUFZZ0NFa2lDQnRxS0FJQU5nSUFJQXRGSUFzZ0NCc2hDU0FBS0FJSUlRZ0RRQUpBSUFnTkFDQUFLQUlRSWdoQkFXb2hDeUFJTFFBQklRb2dDQzBBQUVIL0FVWUVRQ0FLUVpBQlR3UkFJQUFnQUNnQ0RFRUJhallDRENBSFFZRCtBMm9oQjBFSUlRZ01BZ3NnQUNBTE5nSVFJQWNnQ2tFSmRHb2hCMEVISVFnTUFRc2dBQ0FMTmdJUVFRZ2hDQ0FISUFwQkNIUnFJUWNMSUFBZ0NFRUJheUlJTmdJSUlBQWdCMEVCZENJSE5nSUFJQUFnQmtFQmRDSUdOZ0lFSUFaQmdJQUNTUTBBQ3d3QkN5QUpLQUlFSVFrTElBbEZEUUFnQUNBT0lBRW9BZ1FnREVFUmFuWkJCSEVnQVVFRWF5SU5LQUlBSUF4QkUycDJRUUZ4SUFFb0FnQWlDQ0FNUVJCcWRrSEFBSEVnQ0NBTWRrR3FBWEZ5SUFnZ0RFRU1ha0VPSUFRYmRrRVFjWEp5Y2lJUFFkQzVBV290QUFCQkFuUnFJZ3MyQW1nZ0FDQUdJQXNvQWdBaUNpZ0NBQ0lJYXlJR05nSUVBa0FnQ0NBSFFSQjJTd1JBSUFvb0FnUWhDU0FBSUFnMkFnUWdDeUFLUVFoQkRDQUdJQWhKSWdZYmFpZ0NBRFlDQUNBSklBbEZJQVliSVFvZ0FDZ0NDQ0VHQTBBQ1FDQUdEUUFnQUNnQ0VDSUdRUUZxSVFzZ0JpMEFBU0VKSUFZdEFBQkIvd0ZHQkVBZ0NVR1FBVThFUUNBQUlBQW9BZ3hCQVdvMkFnd2dCMEdBL2dOcUlRZEJDQ0VHREFJTElBQWdDellDRUNBSElBbEJDWFJxSVFkQkJ5RUdEQUVMSUFBZ0N6WUNFRUVJSVFZZ0J5QUpRUWgwYWlFSEN5QUFJQVpCQVdzaUJqWUNDQ0FBSUFkQkFYUWlCellDQUNBQUlBaEJBWFFpQ0RZQ0JDQUlRWUNBQWtrTkFBc01BUXNnQUNBSElBaEJFSFJySWdrMkFnQWdCa0dBZ0FKeFJRUkFJQW9vQWdRaEJ5QUxJQXBCREVFSUlBWWdDRWtpQ0J0cUtBSUFOZ0lBSUFkRklBY2dDQnNoQ2lBQUtBSUlJUWNEUUFKQUlBY05BQ0FBS0FJUUlnZEJBV29oQ3lBSExRQUJJUWdnQnkwQUFFSC9BVVlFUUNBSVFaQUJUd1JBSUFBZ0FDZ0NERUVCYWpZQ0RDQUpRWUQrQTJvaENVRUlJUWNNQWdzZ0FDQUxOZ0lRSUFrZ0NFRUpkR29oQ1VFSElRY01BUXNnQUNBTE5nSVFRUWdoQnlBSklBaEJDSFJxSVFrTElBQWdCMEVCYXlJSE5nSUlJQUFnQ1VFQmRDSUpOZ0lBSUFBZ0JrRUJkQ0lHTmdJRUlBWkJnSUFDU1EwQUN3d0JDeUFLS0FJRUlRb0xJQUpCQUNBRGF5QURJQW9nRDBIUXV3RnFMUUFBY3lJREd6WUNBQ0FOSUEwb0FnQkJJQ0FNZEhJMkFnQWdBU0FCS0FJQUlBTkJFM1JCRUhJZ0RIUnlOZ0lBSUFFZ0FTZ0NCRUVJSUF4MGNqWUNCQ0FFSUFWeVJRUkFJQUZCZmlBQUtBSjhhMEVDZEdvaUFpQUNLQUlFUVlDQUFuSTJBZ1FnQWlBQ0tBSUFJQU5CSDNSeVFZQ0FCSEkyQWdBZ0FrRUVheUlDSUFJb0FnQkJnSUFJY2pZQ0FBc2dCRUVEUncwQUlBRWdBQ2dDZkVFQ2RHb2lBRUVFYWlBQUtBSUVRUVJ5TmdJQUlBQWdBQ2dDREVFQmNqWUNEQ0FBSUFBb0FnZ2dBMEVTZEhKQkFuSTJBZ2dMQzZzTEFRbC9Ba0FnQVNnQ0FDQUVRUU5zSWcxMklnZEJrSUNBQVhFTkFDQUhRZThEY1NJSFJRMEFJQUFnQUVFY2FpSU9JQUFvQW13Z0Iyb3RBQUJCQW5ScUlnczJBbWdnQUNBQUtBSUVJQXNvQWdBaUNpZ0NBQ0lKYXlJSE5nSUVBa0FnQ1NBQUtBSUFJZ2hCRUhaTEJFQWdDaWdDQkNFTUlBQWdDVFlDQkNBTElBcEJDRUVNSUFjZ0NVa2lCeHRxS0FJQU5nSUFJQXdnREVVZ0J4c2hDaUFBS0FJSUlRY0RRQUpBSUFjTkFDQUFLQUlRSWdkQkFXb2hEQ0FITFFBQklRc2dCeTBBQUVIL0FVWUVRQ0FMUVpBQlR3UkFJQUFnQUNnQ0RFRUJhallDRENBSVFZRCtBMm9oQ0VFSUlRY01BZ3NnQUNBTU5nSVFJQWdnQzBFSmRHb2hDRUVISVFjTUFRc2dBQ0FNTmdJUVFRZ2hCeUFJSUF0QkNIUnFJUWdMSUFBZ0IwRUJheUlITmdJSUlBQWdDRUVCZENJSU5nSUFJQUFnQ1VFQmRDSUpOZ0lFSUFsQmdJQUNTUTBBQ3lBSklRY01BUXNnQUNBSUlBbEJFSFJySWdnMkFnQWdCMEdBZ0FKeFJRUkFJQW9vQWdRaERDQUxJQXBCREVFSUlBY2dDVWtpQ1J0cUtBSUFOZ0lBSUF4RklBd2dDUnNoQ2lBQUtBSUlJUWtEUUFKQUlBa05BQ0FBS0FJUUlnbEJBV29oRENBSkxRQUJJUXNnQ1MwQUFFSC9BVVlFUUNBTFFaQUJUd1JBSUFBZ0FDZ0NERUVCYWpZQ0RDQUlRWUQrQTJvaENFRUlJUWtNQWdzZ0FDQU1OZ0lRSUFnZ0MwRUpkR29oQ0VFSElRa01BUXNnQUNBTU5nSVFRUWdoQ1NBSUlBdEJDSFJxSVFnTElBQWdDVUVCYXlJSk5nSUlJQUFnQ0VFQmRDSUlOZ0lBSUFBZ0IwRUJkQ0lITmdJRUlBZEJnSUFDU1EwQUN3d0JDeUFLS0FJRUlRb0xBa0FnQ2tVTkFDQUFJQTRnQVNnQ0JDQU5RUkZxZGtFRWNTQUJRUVJySWc4b0FnQWdEVUVUYW5aQkFYRWdBU2dDQUNJSklBMUJFR3AyUWNBQWNTQUpJQTEyUWFvQmNYSWdDU0FOUVF4cVFRNGdCQnQyUVJCeGNuSnlJZ3BCMExrQmFpMEFBRUVDZEdvaUREWUNhQ0FBSUFjZ0RDZ0NBQ0lMS0FJQUlnbHJJZ2MyQWdRZ0NrSFF1d0ZxTFFBQUlRNENRQ0FKSUFoQkVIWkxCRUFnQ3lnQ0JDRUtJQUFnQ1RZQ0JDQU1JQXRCQ0VFTUlBY2dDVWtpQnh0cUtBSUFOZ0lBSUFvZ0NrVWdCeHNoQ3lBQUtBSUlJUWNEUUFKQUlBY05BQ0FBS0FJUUlnZEJBV29oRENBSExRQUJJUW9nQnkwQUFFSC9BVVlFUUNBS1FaQUJUd1JBSUFBZ0FDZ0NERUVCYWpZQ0RDQUlRWUQrQTJvaENFRUlJUWNNQWdzZ0FDQU1OZ0lRSUFnZ0NrRUpkR29oQ0VFSElRY01BUXNnQUNBTU5nSVFRUWdoQnlBSUlBcEJDSFJxSVFnTElBQWdCMEVCYXlJSE5nSUlJQUFnQ0VFQmRDSUlOZ0lBSUFBZ0NVRUJkQ0lKTmdJRUlBbEJnSUFDU1EwQUN3d0JDeUFBSUFnZ0NVRVFkR3NpQ2pZQ0FDQUhRWUNBQW5GRkJFQWdDeWdDQkNFSUlBd2dDMEVNUVFnZ0J5QUpTU0lKRzJvb0FnQTJBZ0FnQ0VVZ0NDQUpHeUVMSUFBb0FnZ2hDQU5BQWtBZ0NBMEFJQUFvQWhBaUNFRUJhaUVNSUFndEFBRWhDU0FJTFFBQVFmOEJSZ1JBSUFsQmtBRlBCRUFnQUNBQUtBSU1RUUZxTmdJTUlBcEJnUDREYWlFS1FRZ2hDQXdDQ3lBQUlBdzJBaEFnQ2lBSlFRbDBhaUVLUVFjaENBd0JDeUFBSUF3MkFoQkJDQ0VJSUFvZ0NVRUlkR29oQ2dzZ0FDQUlRUUZySWdnMkFnZ2dBQ0FLUVFGMElnbzJBZ0FnQUNBSFFRRjBJZ2MyQWdRZ0IwR0FnQUpKRFFBTERBRUxJQXNvQWdRaEN3c2dBa0VBSUFOcklBTWdDeUFPY3lJQ0d6WUNBQ0FQSUE4b0FnQkJJQ0FOZEhJMkFnQWdBU0FCS0FJQUlBSkJFM1JCRUhJZ0RYUnlOZ0lBSUFFZ0FTZ0NCRUVJSUExMGNqWUNCQ0FFSUFaeVJRUkFJQUVnQlVFQ2RHc2lBQ0FBS0FJRVFZQ0FBbkkyQWdRZ0FDQUFLQUlBSUFKQkgzUnlRWUNBQkhJMkFnQWdBRUVFYXlJQUlBQW9BZ0JCZ0lBSWNqWUNBQXNnQkVFRFJ3MEFJQUVnQlVFQ2RHb2lBQ0FBS0FJRVFRRnlOZ0lFSUFBZ0FDZ0NBQ0FDUVJKMGNrRUNjallDQUNBQVFRUnJJZ0FnQUNnQ0FFRUVjallDQUFzZ0FTQUJLQUlBUVlDQWdBRWdEWFJ5TmdJQUN3dXRBUUFnQUVId25RRTJBbVFnQUVId25RRTJBbUFnQUVId25RRTJBbHdnQUVId25RRTJBbGdnQUVId25RRTJBbFFnQUVId25RRTJBbEFnQUVId25RRTJBa3dnQUVId25RRTJBa2dnQUVId25RRTJBa1FnQUVId25RRTJBa0FnQUVId25RRTJBandnQUVId25RRTJBamdnQUVId25RRTJBalFnQUVId25RRTJBakFnQUVId25RRTJBaXdnQUVId25RRTJBaWdnQUVId25RRTJBaVFnQUVId25RRTJBaUFnQUVId25RRTJBaHdMa2dZQ0NYOEVmaUFBSUFFMkFnQWdBUDBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBUDBMQXdnZ0FDQUROZ0ljSUFBZ0FrRUJheUlGTmdJWUlBRkJBM0VoQ2dKL0lBSkJBRXdFUUNBQklRUWdBd3dCQ3lBQUlBRkJBV29pQkRZQ0FDQUJMUUFBQ3lFQlFRZ2hCeUFBUVFnMkFoQWdBQ0FCclNJTk53TUlJQUFnRFVML0FZTWlEa0wvQVZFaUNUWUNGQUpBSUFwQkEwWU5BQ0FBSUFKQkFtc2lDRFlDR0FKL0lBSkJBa2dFUUNBRUlRRWdBd3dCQ3lBQUlBUkJBV29pQVRZQ0FDQUVMUUFBQ3lFRUlBQkJEMEVRSUE1Qy93RlJHeUlITmdJUUlBQWdCSzBpRGtML0FZTWlEMEwvQVZFaUNUWUNGQ0FBSUE1Q0NJWWdEWVFpRFRjRENDQUtRUUpHQkVBZ0FTRUVJQVVoQWlBSUlRVU1BUXNnQUNBQ1FRTnJJZ3MyQWhnZ0FBSi9JQUpCQTBnRVFDQUJJUVlnQXd3QkN5QUFJQUZCQVdvaUJqWUNBQ0FCTFFBQUM2MGlEa0wvQVlNaUVFTC9BVkVpQ1RZQ0ZDQUFRUWRCQ0NBUFF2OEJVUnNnQjJvaUFUWUNFQ0FBSUE0Z0I2MkdJQTJFSWcwM0F3Z2dDa0VCUmdSQUlBWWhCQ0FCSVFjZ0NDRUNJQXNoQlF3QkN5QUFJQUpCQkdzaUJUWUNHQ0FBQW44Z0FrRUVTQVJBSUFZaEJDQUREQUVMSUFBZ0JrRUJhaUlFTmdJQUlBWXRBQUFMclNJT1F2OEJnMEwvQVZFaUNUWUNGQ0FBUVFkQkNDQVFRdjhCVVJzZ0FXb2lCellDRUNBQUlBNGdBYTJHSUEyRUlnMDNBd2dnQ3lFQ0N3SkFJQUpCQlU0RVFDQUVLQUlBSVFNZ0FDQUNRUVZyTmdJWUlBQWdCRUVFYWpZQ0FBd0JDMEVBSVFGQmYwRUFJQU1iSVFNZ0FrRUNTQTBBQTBBZ0FDQUVRUUZxSWdJMkFnQWdCQzBBQUNFRUlBQWdCVUVCYXlJR05nSVlJQU5CL3dFZ0FYUkJmM054SUFRZ0FYUnlJUU1nQVVFSWFpRUJJQVZCQVVzaERDQUNJUVFnQmlFRklBd05BQXNMSUFBZ0EwRVlkaUlCUWY4QlJqWUNGQ0FBUVFkQkNDQUpHeUlDUVFkQkNDQURRZjhCY1NJRVFmOEJSaHRxSWdWQkIwRUlJQU5CQ0haQi93RnhJZ1pCL3dGR0cyb2lDRUVIUVFnZ0EwRVFka0gvQVhFaUEwSC9BVVliSUFkcWFqWUNFQ0FBSUFZZ0FuUWdBeUFGZEhJZ0FTQUlkSElnQkhLdElBZXRoaUFOaERjRENBdTJCUUlTZndKK0FuOGdBQ2dDSENBQlFaZ0JiR29pQWtHUUFXc29BZ0FnQWtHWUFXc29BZ0JySWdNaEJTQUNRWXdCYXlnQ0FDQUNRWlFCYXlnQ0FHc2lBaUVHUWNBQUlBTWdBMEhBQUU4YklRTkJ3QUFnQWlBQ1FjQUFUeHNoQkFKQUlBVkZEUUFnQmtVTkFDQURSUTBBSUFSRkRRQkJmeUFFYmtFQ2RpQURTUTBBUVFGQkhCQVRJZ0lnQkRZQ0RDQUNJQU0yQWdnZ0FpQUdOZ0lFSUFJZ0JUWUNBQ0FDSUFTdEloUWdCcTE4UWdGOUlCU0FJaFNuSWdRMkFoUWdBaUFEclNJVklBV3RmRUlCZlNBVmdDSVZweUlETmdJUUFrQWdGRUwvLy8vL0Q0TWdGVUwvLy8vL0Q0TitRaUNJcHcwQUlBSkJCQ0FESUFSc0VCTWlBellDR0NBRFJRMEFJQUlNQWdzZ0FoQVFDMEVBQ3lJSlJRUkFRUUFQQ3dKQUlBRUVRQU5BSUE1Qm1BRnNJZzhnQUNnQ0hHb2lCU2dDR0NJQ0JFQWdCVUVjYWlFUUlBVW9BaFFoQXlBRktBSVFJUVJCQUNFS0EwQWdBeUFFYkFSQUlCQWdDa0VrYkdvaEJrRUFJUXNEUUNBR0tBSVVJQXRCS0d4cUlnZ29BaFFpQWlBSUtBSVFJZ2RzQkVCQkFDRUVBMEFnQ0NnQ0dDQUVRUVowYWlJREtBSThJaEVFUUNBREtBSU1JUWNnQXlnQ0ZDRVNJQU1vQWhBaERDQURLQUlJSWhNZ0JpZ0NBR3NoQXlBR0tBSVFJZzFCQVhFRVFDQUFLQUljSUE5cUlnSkJrQUZyS0FJQUlBTnFJQUpCbUFGcktBSUFheUVEQ3lBSElBWW9BZ1JySVFJZ0RVRUNjUVJBSUFJZ0FDZ0NIQ0FQYWlJTlFZd0JheWdDQUdvZ0RVR1VBV3NvQWdCcklRSUxJQWtnQXlBQ0lBTWdEQ0FUYXlJTWFpQVNJQWRySUFKcUlCRkJBU0FNUVFBUUprVU5DU0FJS0FJUUlRY2dDQ2dDRkNFQ0N5QUVRUUZxSWdRZ0FpQUhiRWtOQUFzZ0JTZ0NFQ0VFSUFVb0FoUWhBd3NnQzBFQmFpSUxJQU1nQkd4SkRRQUxJQVVvQWhnaEFnc2dDa0VCYWlJS0lBSkpEUUFMQ3lBT1FRRnFJZzRnQVVjTkFBc0xJQWtQQ3lBSkVDTkJBQXZRREFJUWZ3WjdJQUFvQWdnaUN5QUFLQUlFYWlFSEFrQWdBQ2dDREVVRVFDQUhRUUpJRFFFZ0FTZ0NBQ0FCSUF0QkFuUnFJZzBvQWdBaUJFRUJha0VCZFdzaEF5QUFLQUlBSVFZQ1FDQUhRUVJKQkVBZ0JDRUNEQUVMSUFkQkJHc2lBRUVCZGlJSlFRRnFJUXdDUUNBQVFSWkpCRUJCQVNFQURBRUxJQVlnQVNBTFFRSjBhaUlGSUFsQkFuUWlBbXBCQ0dwSklBWWdDVUVEZEdwQkNHb2lBQ0FGUVFScVMzRUVRRUVCSVFBTUFRc2dCaUFCSUFKcVFRaHFTU0FCUVFScUlBQkpjUVJBUVFFaEFBd0JDeUFNUWZ6Ly8vOEhjU0lGUVFGeUlRQWdCVUVCZENFSUlBVDlFU0VTSUFQOUVTRVQvUXdBQUFBQUFnQUFBQVFBQUFBR0FBQUFJUlpCQUNFQ0EwQWdBU0FDUVFKMFFRUnlJZ05xL1FBQ0FDRVZJQU1nRFdyOUFBSUFJUlFnQmlBQ1FRTjBhaUlESUJQOVdnSUFBeUFEUVFocUlCVWdGQ0FTSUJUOURRd05EZzhRRVJJVEZCVVdGeGdaR2hzaUZmMnVBZjBNQWdBQUFBSUFBQUFDQUFBQUFnQUFBUDJ1QVVFQy9hd0IvYkVCSWhMOVdnSUFBQ0FEUVJCcUlCTDlXZ0lBQVNBRFFSaHFJQkw5V2dJQUFpQUdJQmI5REFFQUFBQUJBQUFBQVFBQUFBRUFBQUQ5VUNJWC9Sc0FRUUowYWlBU0lCTWdFdjBOREEwT0R4QVJFaE1VRlJZWEdCa2FHLzJ1QVVFQi9hd0JJQlg5cmdFaUUvMWFBZ0FBSUFZZ0YvMGJBVUVDZEdvZ0UvMWFBZ0FCSUFZZ0YvMGJBa0VDZEdvZ0UvMWFBZ0FDSUFZZ0YvMGJBMEVDZEdvZ0UvMWFBZ0FESUJiOURBZ0FBQUFJQUFBQUNBQUFBQWdBQUFEOXJnRWhGaUFTSVJNZ0ZDRVNJQUpCQkdvaUFpQUZSdzBBQ3lBUy9Sc0RJUUlnRS8wYkF5RURJQVVnREVZTkFTQUNJUVFMQTBBZ0FTQUFRUUowSWdKcUtBSUFJUWtnQWlBTmFpZ0NBQ0VDSUFZZ0NFRUNkR29pQlNBRE5nSUFJQVVnQXlBSklBSWdCR3BCQW1wQkFuVnJJZ05xUVFGMUlBUnFOZ0lFSUFoQkFtb2hDQ0FBSUF4SElSQWdBaUVFSUFCQkFXb2hBQ0FRRFFBTEN5QUdJQWhCQW5ScUlBTTJBZ0JCZkNFQUlBZEJBWEVFZnlBR0lBZEJBV3NpQUVFQ2RHb2dBU0FBUVFGMGFpZ0NBQ0FDUVFGcVFRRjFheUlBTmdJQUlBQWdBMnBCQVhVaEEwRjRCVUY4Q3lBR0lBZEJBblFpQUdwcUlBSWdBMm8yQWdBZ0FTQUdJQUFRRWhvUEN3SkFBa0FDUUNBSFFRRnJEZ0lBQVFJTElBRWdBU2dDQUVFQ2JUWUNBQThMSUFBb0FnQWlCQ0FCS0FJQUlBRWdDMEVDZEdvaUF5Z0NBRUVCYWtFQmRXc2lBRFlDQkNBRUlBQWdBeWdDQUdvMkFnQWdBU0FFS1FJQU53SUFEd3NnQjBFRFNBMEFJQUFvQWdBaUNpQUJLQUlBSUFFZ0MwRUNkR29pRGlnQ0JDSUVJQTRvQWdBaUFHcEJBbXBCQW5WcklnTWdBR28yQWdCQkFTRUlBa0FnQjBFQ2F5SUdJQWRCQVhFaURFVWlBR3RCQWtrRVFDQUVJUUlNQVFzZ0J5QUFhMEVFYXlJQVFRRjJJZ0pCQVdvaER3SkFBa0FnQUVFV1NRMEFJQXBCQkdvaUJTQUJJQUpCQW5RaUFHcEJDR3BKSUFvZ0FrRURkR3BCREdvaUFpQUJRUVJxUzNFTkFDQUZJQUFnQVNBTFFRSjBhaUlBYWtFTWFra2dBRUVJYWlBQ1NYRU5BQ0FQUVh4eElnVkJBWEloQUNBRlFRRjBRUUZ5SVFnZ0JQMFJJUk1nQS8wUklSSkJBQ0VDQTBBZ0NpQUNRUU4wYWlJRUlBRWdBa0VDZENJRGF2MEFBZ1FnRXlBRElBNXEvUUFDQ0NJVC9RME1EUTRQRUJFU0V4UVZGaGNZR1JvYkloVWdFLzJ1QWYwTUFnQUFBQUlBQUFBQ0FBQUFBZ0FBQVAydUFVRUMvYXdCL2JFQkloUWdGQ0FTSUJUOURRd05EZzhRRVJJVEZCVVdGeGdaR2h2OXJnRkJBZjJzQVNBVi9hNEJJaFg5RFFRRkJnY1lHUm9iQ0FrS0N4d2RIaC85Q3dJVUlBUWdFaUFWL1EwTURRNFBFQkVTRXdBQkFnTVVGUllYSUJUOURRQUJBZ01FQlFZSEVCRVNFd3dORGcvOUN3SUVJQlFoRWlBQ1FRUnFJZ0lnQlVjTkFBc2dFLzBiQXlFQ0lCTDlHd01oQXlBRklBOUdEUUlnQWlFRURBRUxRUUVoQUFzRFFDQUJJQUJCQW5ScUtBSUFJUTBnRGlBQVFRRnFJZ1ZCQW5ScUtBSUFJUUlnQ2lBSVFRSjBhaUlKSUFNMkFnQWdDU0FESUEwZ0FpQUVha0VDYWtFQ2RXc2lBMnBCQVhVZ0JHbzJBZ1FnQ0VFQ2FpRUlJQUFnRDBjaEVTQUNJUVFnQlNFQUlCRU5BQXNMSUFvZ0NFRUNkR29nQXpZQ0FBSkFJQXhGQkVBZ0NpQUdRUUowYWlBQklBZEJBWFJxUVFScktBSUFJQUpCQVdwQkFYVnJJZ0FnQTJwQkFYVWdBbW8yQWdBTUFRc2dBaUFEYWlFQUN5QUtJQWRCQW5RaUEycEJCR3NnQURZQ0FDQUJJQW9nQXhBU0dnc0xvQWNEQTMwRGV3Si9JQU5CQ0U4RVFDQURRUU4ySVFzRFFDQUIvUUFFQUNFSElBQWdBUDBBQkFBaUNDQUMvUUFFQUNJSi9ReThkTE0vdkhTelA3eDBzeis4ZExNLy9lWUIvZVFCL1FzRUFDQUJJQWdnQi8wTXp6R3dQczh4c0Q3UE1iQSt6ekd3UHYzbUFmM2xBU0FKL1F6aDBUWS80ZEUyUCtIUk5qL2gwVFkvL2VZQi9lVUIvUXNFQUNBQ0lBZ2dCLzBNNWREaVArWFE0ai9sME9JLzVkRGlQLzNtQWYza0FmMExCQUFnQWYwQUJCQWhCeUFBSUFEOUFBUVFJZ2dnQXYwQUJCQWlDZjBNdkhTelA3eDBzeis4ZExNL3ZIU3pQLzNtQWYza0FmMExCQkFnQVNBSUlBZjlETTh4c0Q3UE1iQSt6ekd3UHM4eHNENzk1Z0g5NVFFZ0NmME00ZEUyUCtIUk5qL2gwVFkvNGRFMlAvM21BZjNsQWYwTEJCQWdBaUFJSUFmOURPWFE0ai9sME9JLzVkRGlQK1hRNGovOTVnSDk1QUg5Q3dRUUlBSkJJR29oQWlBQlFTQnFJUUVnQUVFZ2FpRUFJQXBCQVdvaUNpQUxSdzBBQ3dzQ1FDQURRUWR4SWdORkRRQWdBU29DQUNFRUlBQWdBaW9DQUNJR1E3eDBzeitVSUFBcUFnQWlCWkk0QWdBZ0FTQUZJQVJEenpHd3ZwU1NJQVpENGRFMnY1U1NPQUlBSUFJZ0JTQUVRK1hRNGorVWtqZ0NBQ0FEUVFGR0RRQWdBU29DQkNFRUlBQWdBaW9DQkNJR1E3eDBzeitVSUFBcUFnUWlCWkk0QWdRZ0FTQUZJQVJEenpHd3ZwU1NJQVpENGRFMnY1U1NPQUlFSUFJZ0JTQUVRK1hRNGorVWtqZ0NCQ0FEUVFKR0RRQWdBU29DQ0NFRUlBQWdBaW9DQ0NJR1E3eDBzeitVSUFBcUFnZ2lCWkk0QWdnZ0FTQUZJQVJEenpHd3ZwU1NJQVpENGRFMnY1U1NPQUlJSUFJZ0JTQUVRK1hRNGorVWtqZ0NDQ0FEUVFOR0RRQWdBU29DRENFRUlBQWdBaW9DRENJR1E3eDBzeitVSUFBcUFnd2lCWkk0QWd3Z0FTQUZJQVJEenpHd3ZwU1NJQVpENGRFMnY1U1NPQUlNSUFJZ0JTQUVRK1hRNGorVWtqZ0NEQ0FEUVFSR0RRQWdBU29DRUNFRUlBQWdBaW9DRUNJR1E3eDBzeitVSUFBcUFoQWlCWkk0QWhBZ0FTQUZJQVJEenpHd3ZwU1NJQVpENGRFMnY1U1NPQUlRSUFJZ0JTQUVRK1hRNGorVWtqZ0NFQ0FEUVFWR0RRQWdBU29DRkNFRUlBQWdBaW9DRkNJR1E3eDBzeitVSUFBcUFoUWlCWkk0QWhRZ0FTQUZJQVJEenpHd3ZwU1NJQVpENGRFMnY1U1NPQUlVSUFJZ0JTQUVRK1hRNGorVWtqZ0NGQ0FEUVFaR0RRQWdBU29DR0NFRUlBQWdBaW9DR0NJR1E3eDBzeitVSUFBcUFoZ2lCWkk0QWhnZ0FTQUZJQVJEenpHd3ZwU1NJQVpENGRFMnY1U1NPQUlZSUFJZ0JTQUVRK1hRNGorVWtqZ0NHQXNMNEFFQ0JuOERld0pBSUFORkRRQWdBMEVFVHdSQUlBTkJmSEVoQmdOQUlBQWdCRUVDZENJRmFpSUhJQWY5QUFJQUlBSWdCV29pQi8wQUFnQWlDeUFCSUFWcUlnWDlBQUlBSWd6OXJnRkJBdjJzQWYyeEFTSUtJQXY5cmdIOUN3SUFJQVVnQ3YwTEFnQWdCeUFLSUF6OXJnSDlDd0lBSUFSQkJHb2lCQ0FHUncwQUN5QURJQVpHRFFFTEEwQWdBQ0FHUVFKMElnUnFJZ1VnQlNnQ0FDQUNJQVJxSWdVb0FnQWlCeUFCSUFScUlnZ29BZ0FpQ1dwQkFuVnJJZ1FnQjJvMkFnQWdDQ0FFTmdJQUlBVWdCQ0FKYWpZQ0FDQUdRUUZxSWdZZ0EwY05BQXNMQzkwQkFRUi9Jd0JCZ0FGcklnWWtBQ0FHSVFVQ1FDQUJLQUlNSUFKQkJIUnFJZ0lvQWdBaUJFVUVRQ0FDSVFFTUFRc0RRQ0FGSUFJMkFnQWdCVUVFYWlFRklBUWlBU0lDS0FJQUlnUU5BQXNMUVFBaEJBTkFJQUVvQWdnaUFpQUVTQVJBSUFFZ0JEWUNDQ0FFSVFJTEFrQWdBaUFEVGcwQUEwQWdBaUFCS0FJRVRnMEJBa0FnQUVFQkVCOEVRQ0FCSUFJMkFnUU1BUXNnQWtFQmFpRUNDeUFDSUFOSURRQUxDeUFCSUFJMkFnZ2dCU0FHUndSQUlBVkJCR3NpQlNnQ0FDRUJJQUloQkF3QkN3c2dBU2dDQkNFSElBWkJnQUZxSkFBZ0J5QURTQXY5QmdFTGZ5TUFRWUFDYXlJS0pBQUNRQ0FBUlFSQVFRQWhBQXdCQ3dKQUlBRWdBQ2dDQUVZRVFDQUFLQUlFSUFKR0RRRUxJQUFnQWpZQ0JDQUFJQUUyQWdBZ0NpQUNOZ0lBSUFvZ0FUWUNnQUVnQWlFRUlBRWhCUU5BSUFvZ0J5SU1RUUZxSWdkQkFuUWlDR29nQkVFQmFrRUNiU0lKTmdJQUlBcEJnQUZxSUFocUlBVkJBV3BCQW0waUNEWUNBQ0FHSUFRZ0JXd2lDMm9oQmlBSklRUWdDQ0VGSUF0QkFVc05BQXNnQUNBR05nSUlBa0FDUUFKQUFrQWdCa1VFUUNBQUtBSU1JZ1JGRFFJZ0FFRU1haUVGREFFTElBWkJCSFFpQkNBQUtBSVFUUTBESUFBb0Fnd2dCQkFYSWdFTkFpQURRUUZCbWpGQkFCQVBJQUJCREdvaUJTZ0NBQ0lFUlEwQkN5QUVFQkFnQlVFQU5nSUFDeUFBRUJCQkFDRUFEQU1MSUFBZ0FUWUNEQ0FCSUFBb0FoQWlBbXBCQUNBRUlBSnJFQlVhSUFBZ0JEWUNFQ0FBS0FJRUlRSWdBQ2dDQUNFQkN5QUFLQUlNSVFVZ0RBUkFRUUFoQXlBRklBRWdBbXhCQkhScUlnUWhCZ05BQWtBZ0NpQURRUUowSWdGcUtBSUFJZ2hCQUV3TkFDQUlRUUZySVF0QkFDRUpBa0FDUUNBS1FZQUJhaUFCYWlnQ0FDSUNRUUJNQkVBZ0NFRUJjU0VOUVFBaEJ5QUlRUUZIRFFFZ0JpRUJEQUlMQTBBZ0JpRUJJQUloQmdOQUFrQWdCU0FFTmdJQUlBWkJBVVlFUUNBRlFSQnFJUVVnQkVFUWFpRUVEQUVMSUFVZ0JEWUNFQ0FFUVJCcUlRUWdCVUVnYWlFRklBWkJBa29oRGlBR1FRSnJJUVlnRGcwQkN3c2dCQ0FCSUFKQkJIUnFJQWtnQ1NBTFJuSkJBWEVpQnhzaEJpQUVJQUVnQnhzaEJDQUpRUUZxSWdrZ0NFY05BQXNNQWdzZ0NFSCsvLy8vQjNFaENBTkFJQWNnQzBZaEFTQUhRUUpxSVFjZ0JDQUdJQUViSWdRaEJpQUVJUUVnQ1VFQ2FpSUpJQWhIRFFBTEN5QU5SUVJBSUFRaEJnd0JDeUFFSUFFZ0FrRUVkR29nQnlBSElBdEdja0VCY1NJQ0d5RUdJQVFnQVNBQ0d5RUVDeUFEUVFGcUlnTWdERWNOQUFzTElBVkJBRFlDQUFzZ0FDZ0NDQ0lCUlEwQUlBQW9BZ3doQkNBQlFRUlBCRUFnQVVGOGNTRUNRUUFoQlFOQUlBUkJBRFlDUENBRVF1Y0hOd0kwSUFSQkFEWUNMQ0FFUXVjSE53SWtJQVJCQURZQ0hDQUVRdWNITndJVUlBUkJBRFlDRENBRVF1Y0hOd0lFSUFSQlFHc2hCQ0FGUVFScUlnVWdBa2NOQUFzTElBRkJBM0VpQVVVTkFFRUFJUVVEUUNBRVFRQTJBZ3dnQkVMbkJ6Y0NCQ0FFUVJCcUlRUWdCVUVCYWlJRklBRkhEUUFMQ3lBS1FZQUNhaVFBSUFBTHNRRUJBMzhDUUNBQVJRMEFJQUFvQWdnaUFVVU5BQ0FBS0FJTUlRQWdBVUVFVHdSQUlBRkJmSEVoQXdOQUlBQkJBRFlDUENBQVF1Y0hOd0kwSUFCQkFEWUNMQ0FBUXVjSE53SWtJQUJCQURZQ0hDQUFRdWNITndJVUlBQkJBRFlDRENBQVF1Y0hOd0lFSUFCQlFHc2hBQ0FDUVFScUlnSWdBMGNOQUFzTElBRkJBM0VpQVVVTkFFRUFJUUlEUUNBQVFRQTJBZ3dnQUVMbkJ6Y0NCQ0FBUVJCcUlRQWdBa0VCYWlJQ0lBRkhEUUFMQ3d2N0JRRVFmeU1BUVlBQ2F5SUlKQUFDZjBFQlFSUVFFeUlHUlFSQUlBSkJBVUgwTUVFQUVBOUJBQXdCQ3lBR0lBRTJBZ1FnQmlBQU5nSUFJQWdnQVRZQ0FDQUlJQUEyQW9BQkEwQWdDQ0FGSWcxQkFXb2lCVUVDZENJSGFpQUJRUUZxUVFKdElnTTJBZ0FnQ0VHQUFXb2dCMm9nQUVFQmFrRUNiU0lITmdJQUlBUWdBQ0FCYkNJSmFpRUVJQU1oQVNBSElRQWdDVUVCU3cwQUN5QUdJQVEyQWdnZ0JFVUVRQ0FHRUJCQkFBd0JDeUFHSUFSQkVCQVRJZ00yQWd3Z0EwVUVRQ0FDUVFGQjJocEJBQkFQSUFZUUVFRUFEQUVMSUFZZ0JpZ0NDQ0lMUVFSME5nSVFJQU1oQUNBTkJFQWdBeUFHS0FJRUlBWW9BZ0JzUVFSMGFpSUVJUUVEUUFKQUlBZ2dEa0VDZENJQ2FpZ0NBQ0lKUVFCTURRQWdDVUVCYXlFTVFRQWhCd0pBSUFoQmdBRnFJQUpxS0FJQUlnSkJBRXdFUUVFQUlRVWdDVUVCUndSQUlBbEIvdi8vL3dkeElRb0RRQ0FGSUF4R0lROGdCVUVDYWlFRklBRWdCQ0FQR3lJRUlRRWdCMEVDYWlJSElBcEhEUUFMQ3lBSlFRRnhEUUVnQkNFQkRBSUxBMEFnQkNFRklBSWhCQU5BQWtBZ0FDQUJOZ0lBSUFSQkFVWUVRQ0FBUVJCcUlRQWdBVUVRYWlFQkRBRUxJQUFnQVRZQ0VDQUJRUkJxSVFFZ0FFRWdhaUVBSUFSQkFrb2hFQ0FFUVFKcklRUWdFQTBCQ3dzZ0FTQUZJQUpCQkhScUlBY2dCeUFNUm5KQkFYRWlDaHNoQkNBQklBVWdDaHNoQVNBSFFRRnFJZ2NnQ1VjTkFBc01BUXNnQVNBRUlBSkJCSFJxSUFVZ0JTQU1SbkpCQVhFaUJSc2hFU0FCSUFRZ0JSc2hBU0FSSVFRTElBNUJBV29pRGlBTlJ3MEFDd3NnQUVFQU5nSUFBa0FnQzBVTkFDQUxRUVJQQkVBZ0MwRjhjU0VBUVFBaEFRTkFJQU5CQURZQ1BDQURRdWNITndJMElBTkJBRFlDTENBRFF1Y0hOd0lrSUFOQkFEWUNIQ0FEUXVjSE53SVVJQU5CQURZQ0RDQURRdWNITndJRUlBTkJRR3NoQXlBQlFRUnFJZ0VnQUVjTkFBc0xJQXRCQTNFaUFFVU5BRUVBSVFFRFFDQURRUUEyQWd3Z0EwTG5CemNDQkNBRFFSQnFJUU1nQVVFQmFpSUJJQUJIRFFBTEN5QUdDeUVTSUFoQmdBSnFKQUFnRWd0VEFRRi9BbjhnQUMwQURFSC9BVVlFUUNBQVFvRCtnNER3QURjQ0RFRUFJQUFvQWdnaUFTQUFLQUlFVHcwQkdpQUFJQUZCQVdvMkFnZ2dBQ0FCTFFBQVFZRCtBM0kyQWd3TElBQkJBRFlDRUVFQkN3dCtBZ0YvQVg0Z0FMMGlBMEkwaUtkQi93OXhJZ0pCL3c5SEJId2dBa1VFUUNBQklBQkVBQUFBQUFBQUFBQmhCSDlCQUFVZ0FFUUFBQUFBQUFEd1E2SWdBUkJsSVFBZ0FTZ0NBRUZBYWdzMkFnQWdBQThMSUFFZ0FrSCtCMnMyQWdBZ0EwTC8vLy8vLy8vL2g0Qi9nMEtBZ0lDQWdJQ0E4RCtFdndVZ0FBc0xTUUVCZndKQVFRRkJMQkFUSWdFRVFDQUJRUUEyQWhBQ1FDQUFRUUJNQkVBZ0FVRUJRUWdRRXlJQU5nSWtJQUJGRFFFTUF3c2dBVUVBTmdJTUN5QUJFQkFMUVFBaEFRc2dBUXVSQWdBZ0FFVUVRRUVBRHdzQ2Z3SkFJQUZCL3dCTkRRQUNRRUdVMEFFb0FnQW9BZ0JGQkVBZ0FVR0FmM0ZCZ0w4RFJnMENEQUVMSUFGQi93OU5CRUFnQUNBQlFUOXhRWUFCY2pvQUFTQUFJQUZCQm5aQndBRnlPZ0FBUVFJTUF3c2dBVUdBUUhGQmdNQURSeUFCUVlDd0EwOXhSUVJBSUFBZ0FVRS9jVUdBQVhJNkFBSWdBQ0FCUVF4MlFlQUJjam9BQUNBQUlBRkJCblpCUDNGQmdBRnlPZ0FCUVFNTUF3c2dBVUdBZ0FSclFmLy9QMDBFUUNBQUlBRkJQM0ZCZ0FGeU9nQURJQUFnQVVFU2RrSHdBWEk2QUFBZ0FDQUJRUVoyUVQ5eFFZQUJjam9BQWlBQUlBRkJESFpCUDNGQmdBRnlPZ0FCUVFRTUF3c0xRWlRIQVVFWk5nSUFRWDhNQVFzZ0FDQUJPZ0FBUVFFTEM3d0NBQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBZ0FVRUphdzRTQUFnSkNnZ0pBUUlEQkFvSkNnb0lDUVVHQndzZ0FpQUNLQUlBSWdGQkJHbzJBZ0FnQUNBQktBSUFOZ0lBRHdzZ0FpQUNLQUlBSWdGQkJHbzJBZ0FnQUNBQk1nRUFOd01BRHdzZ0FpQUNLQUlBSWdGQkJHbzJBZ0FnQUNBQk13RUFOd01BRHdzZ0FpQUNLQUlBSWdGQkJHbzJBZ0FnQUNBQk1BQUFOd01BRHdzZ0FpQUNLQUlBSWdGQkJHbzJBZ0FnQUNBQk1RQUFOd01BRHdzZ0FpQUNLQUlBUVFkcVFYaHhJZ0ZCQ0dvMkFnQWdBQ0FCS3dNQU9RTUFEd3NnQUNBQ0lBTVJBd0FMRHdzZ0FpQUNLQUlBSWdGQkJHbzJBZ0FnQUNBQk5BSUFOd01BRHdzZ0FpQUNLQUlBSWdGQkJHbzJBZ0FnQUNBQk5RSUFOd01BRHdzZ0FpQUNLQUlBUVFkcVFYaHhJZ0ZCQ0dvMkFnQWdBQ0FCS1FNQU53TUFDM01CQm44Z0FDZ0NBQ0lETEFBQVFUQnJJZ0ZCQ1VzRVFFRUFEd3NEUUVGL0lRUWdBa0hNbWJQbUFFMEVRRUYvSUFFZ0FrRUtiQ0lGYWlBQklBVkIvLy8vL3dkelN4c2hCQXNnQUNBRFFRRnFJZ1UyQWdBZ0F5d0FBU0VHSUFRaEFpQUZJUU1nQmtFd2F5SUJRUXBKRFFBTElBSUx0QlFDRlg4QmZpTUFRVUJxSWdna0FDQUlJQUUyQWp3Z0NFRW5haUVXSUFoQktHb2hFUUpBQWtBQ1FBSkFBMEJCQUNFSEEwQWdBU0VOSUFjZ0RrSC8vLy8vQjNOS0RRSWdCeUFPYWlFT0FrQUNRQUpBQWtBZ0FTSUhMUUFBSWdzRVFBTkFBa0FDUUNBTFFmOEJjU0lCUlFSQUlBY2hBUXdCQ3lBQlFTVkhEUUVnQnlFTEEwQWdDeTBBQVVFbFJ3UkFJQXNoQVF3Q0N5QUhRUUZxSVFjZ0N5MEFBaUVaSUF0QkFtb2lBU0VMSUJsQkpVWU5BQXNMSUFjZ0RXc2lCeUFPUWYvLy8vOEhjeUlYU2cwSklBQUVRQ0FBSUEwZ0J4QVpDeUFIRFFjZ0NDQUJOZ0k4SUFGQkFXb2hCMEYvSVJBQ1FDQUJMQUFCUVRCcklnbEJDVXNOQUNBQkxRQUNRU1JIRFFBZ0FVRURhaUVIUVFFaEVpQUpJUkFMSUFnZ0J6WUNQRUVBSVF3Q1FDQUhMQUFBSWd0QklHc2lBVUVmU3dSQUlBY2hDUXdCQ3lBSElRbEJBU0FCZENJQlFZblJCSEZGRFFBRFFDQUlJQWRCQVdvaUNUWUNQQ0FCSUF4eUlRd2dCeXdBQVNJTFFTQnJJZ0ZCSUU4TkFTQUpJUWRCQVNBQmRDSUJRWW5SQkhFTkFBc0xBa0FnQzBFcVJnUkFBbjhDUUNBSkxBQUJRVEJySWdGQkNVc05BQ0FKTFFBQ1FTUkhEUUFDZnlBQVJRUkFJQVFnQVVFQ2RHcEJDallDQUVFQURBRUxJQU1nQVVFRGRHb29BZ0FMSVE4Z0NVRURhaUVCUVFFTUFRc2dFZzBHSUFsQkFXb2hBU0FBUlFSQUlBZ2dBVFlDUEVFQUlSSkJBQ0VQREFNTElBSWdBaWdDQUNJSFFRUnFOZ0lBSUFjb0FnQWhEMEVBQ3lFU0lBZ2dBVFlDUENBUFFRQk9EUUZCQUNBUGF5RVBJQXhCZ01BQWNpRU1EQUVMSUFoQlBHb1FhU0lQUVFCSURRb2dDQ2dDUENFQkMwRUFJUWRCZnlFS0FuOUJBQ0FCTFFBQVFTNUhEUUFhSUFFdEFBRkJLa1lFUUFKL0FrQWdBU3dBQWtFd2F5SUpRUWxMRFFBZ0FTMEFBMEVrUncwQUlBRkJCR29oQVFKL0lBQkZCRUFnQkNBSlFRSjBha0VLTmdJQVFRQU1BUXNnQXlBSlFRTjBhaWdDQUFzTUFRc2dFZzBHSUFGQkFtb2hBVUVBSUFCRkRRQWFJQUlnQWlnQ0FDSUpRUVJxTmdJQUlBa29BZ0FMSVFvZ0NDQUJOZ0k4SUFwQkFFNE1BUXNnQ0NBQlFRRnFOZ0k4SUFoQlBHb1FhU0VLSUFnb0Fqd2hBVUVCQ3lFVEEwQWdCeUVVUVJ3aENTQUJJaGdzQUFBaUIwSDdBR3RCUmtrTkN5QUJRUUZxSVFFZ0J5QVVRVHBzYWtHL3dBRnFMUUFBSWdkQkFXdEJDRWtOQUFzZ0NDQUJOZ0k4QWtBZ0IwRWJSd1JBSUFkRkRRd2dFRUVBVGdSQUlBQkZCRUFnQkNBUVFRSjBhaUFITmdJQURBd0xJQWdnQXlBUVFRTjBhaWtEQURjRE1Bd0NDeUFBUlEwSUlBaEJNR29nQnlBQ0lBWVFhQXdCQ3lBUVFRQk9EUXRCQUNFSElBQkZEUWdMSUFBdEFBQkJJSEVOQ3lBTVFmLy9lM0VpQ3lBTUlBeEJnTUFBY1JzaERFRUFJUkJCc0FnaEZTQVJJUWtDUUFKQUFuOENRQUpBQWtBQ1FBSkFBa0FDZndKQUFrQUNRQUpBQWtBQ1FBSkFJQmdzQUFBaUIwRlRjU0FISUFkQkQzRkJBMFliSUFjZ0ZCc2lCMEhZQUdzT0lRUVdGaFlXRmhZV0ZoQVdDUVlRRUJBV0JoWVdGaFlDQlFNV0Znb1dBUllXQkFBTEFrQWdCMEhCQUdzT0J4QVdDeFlRRUJBQUN5QUhRZE1BUmcwTERCVUxJQWdwQXpBaEhFR3dDQXdGQzBFQUlRY0NRQUpBQWtBQ1FBSkFBa0FDUUNBVVFmOEJjUTRJQUFFQ0F3UWNCUVljQ3lBSUtBSXdJQTQyQWdBTUd3c2dDQ2dDTUNBT05nSUFEQm9MSUFnb0FqQWdEcXczQXdBTUdRc2dDQ2dDTUNBT093RUFEQmdMSUFnb0FqQWdEam9BQUF3WEN5QUlLQUl3SUE0MkFnQU1GZ3NnQ0NnQ01DQU9yRGNEQUF3VkMwRUlJQW9nQ2tFSVRSc2hDaUFNUVFoeUlReEIrQUFoQndzZ0VTRUJJQWdwQXpBaUhFSUFVZ1JBSUFkQklIRWhEUU5BSUFGQkFXc2lBU0FjcDBFUGNVSFF4QUZxTFFBQUlBMXlPZ0FBSUJ4Q0QxWWhHaUFjUWdTSUlSd2dHZzBBQ3dzZ0FTRU5JQWdwQXpCUURRTWdERUVJY1VVTkF5QUhRUVIyUWJBSWFpRVZRUUloRUF3REN5QVJJUUVnQ0NrRE1DSWNRZ0JTQkVBRFFDQUJRUUZySWdFZ0hLZEJCM0ZCTUhJNkFBQWdIRUlIVmlFYklCeENBNGdoSENBYkRRQUxDeUFCSVEwZ0RFRUljVVVOQWlBS0lCRWdBV3NpQVVFQmFpQUJJQXBJR3lFS0RBSUxJQWdwQXpBaUhFSUFVd1JBSUFoQ0FDQWNmU0ljTndNd1FRRWhFRUd3Q0F3QkN5QU1RWUFRY1FSQVFRRWhFRUd4Q0F3QkMwR3lDRUd3Q0NBTVFRRnhJaEFiQ3lFVklCd2dFUkFxSVEwTElCTWdDa0VBU0hFTkVTQU1RZi8vZTNFZ0RDQVRHeUVNQWtBZ0NDa0RNQ0ljUWdCU0RRQWdDZzBBSUJFaERVRUFJUW9NRGdzZ0NpQWNVQ0FSSUExcmFpSUJJQUVnQ2tnYklRb01EUXNnQ0NrRE1DRWNEQXNMQW45Qi8vLy8vd2NnQ2lBS1FmLy8vLzhIVHhzaURDSUhRUUJISVFrQ1FBSkFBa0FnQ0NnQ01DSUJRWVFNSUFFYklnMGlBVUVEY1VVTkFDQUhSUTBBQTBBZ0FTMEFBRVVOQWlBSFFRRnJJZ2RCQUVjaENTQUJRUUZxSWdGQkEzRkZEUUVnQncwQUN3c2dDVVVOQVFKQUlBRXRBQUJGRFFBZ0IwRUVTUTBBQTBCQmdJS0VDQ0FCS0FJQUlnbHJJQWx5UVlDQmdvUjRjVUdBZ1lLRWVFY05BaUFCUVFScUlRRWdCMEVFYXlJSFFRTkxEUUFMQ3lBSFJRMEJDd05BSUFFZ0FTMEFBRVVOQWhvZ0FVRUJhaUVCSUFkQkFXc2lCdzBBQ3d0QkFBc2lBU0FOYXlBTUlBRWJJZ0VnRFdvaENTQUtRUUJPQkVBZ0N5RU1JQUVoQ2d3TUN5QUxJUXdnQVNFS0lBa3RBQUFORHd3TEN5QUlLUU13SWh4Q0FGSU5BVUlBSVJ3TUNRc2dDZ1JBSUFnb0FqQU1BZ3RCQUNFSElBQkJJQ0FQUVFBZ0RCQWNEQUlMSUFoQkFEWUNEQ0FJSUJ3K0FnZ2dDQ0FJUVFocUlnYzJBakJCZnlFS0lBY0xJUXRCQUNFSEEwQUNRQ0FMS0FJQUlnMUZEUUFnQ0VFRWFpQU5FR2NpRFVFQVNBMFBJQTBnQ2lBSGEwc05BQ0FMUVFScUlRc2dCeUFOYWlJSElBcEpEUUVMQzBFOUlRa2dCMEVBU0EwTUlBQkJJQ0FQSUFjZ0RCQWNJQWRGQkVCQkFDRUhEQUVMUVFBaENTQUlLQUl3SVFzRFFDQUxLQUlBSWcxRkRRRWdDRUVFYWlJS0lBMFFaeUlOSUFscUlna2dCMHNOQVNBQUlBb2dEUkFaSUF0QkJHb2hDeUFISUFsTERRQUxDeUFBUVNBZ0R5QUhJQXhCZ01BQWN4QWNJQThnQnlBSElBOUlHeUVIREFnTElCTWdDa0VBU0hFTkNVRTlJUWtnQUNBSUt3TXdJQThnQ2lBTUlBY2dCUkVUQUNJSFFRQk9EUWNNQ2dzZ0J5MEFBU0VMSUFkQkFXb2hCd3dBQ3dBTElBQU5DU0FTUlEwRFFRRWhCd05BSUFRZ0IwRUNkR29vQWdBaUFBUkFJQU1nQjBFRGRHb2dBQ0FDSUFZUWFFRUJJUTRnQjBFQmFpSUhRUXBIRFFFTUN3c0xRUUVoRGlBSFFRcFBEUWtEUUNBRUlBZEJBblJxS0FJQURRRWdCMEVCYWlJSFFRcEhEUUFMREFrTFFSd2hDUXdHQ3lBSUlCdzhBQ2RCQVNFS0lCWWhEU0FMSVF3TElBb2dDU0FOYXlJTElBb2dDMG9iSWdvZ0VFSC8vLy8vQjNOS0RRTkJQU0VKSUE4Z0NpQVFhaUlCSUFFZ0QwZ2JJZ2NnRjBvTkJDQUFRU0FnQnlBQklBd1FIQ0FBSUJVZ0VCQVpJQUJCTUNBSElBRWdERUdBZ0FSekVCd2dBRUV3SUFvZ0MwRUFFQndnQUNBTklBc1FHU0FBUVNBZ0J5QUJJQXhCZ01BQWN4QWNJQWdvQWp3aEFRd0JDd3NMUVFBaERnd0RDMEU5SVFrTFFaVEhBU0FKTmdJQUMwRi9JUTRMSUFoQlFHc2tBQ0FPQzZnQ0FRUi9Jd0JCMEFGcklnVWtBQ0FGSUFJMkFzd0JJQVZCb0FGcUlnSkJBRUVvRUJVYUlBVWdCU2dDekFFMkFzZ0JBa0JCQUNBQklBVkJ5QUZxSUFWQjBBQnFJQUlnQXlBRUVHcEJBRWdOQUNBQUtBSk1RUUJJSVFnZ0FDQUFLQUlBSWdkQlgzRTJBZ0FDZndKQUFrQWdBQ2dDTUVVRVFDQUFRZEFBTmdJd0lBQkJBRFlDSENBQVFnQTNBeEFnQUNnQ0xDRUdJQUFnQlRZQ0xBd0JDeUFBS0FJUURRRUxRWDhnQUJBK0RRRWFDeUFBSUFFZ0JVSElBV29nQlVIUUFHb2dCVUdnQVdvZ0F5QUVFR29MSVFFZ0JnUi9JQUJCQUVFQUlBQW9BaVFSQUFBYUlBQkJBRFlDTUNBQUlBWTJBaXdnQUVFQU5nSWNJQUFvQWhRYUlBQkNBRGNERUVFQUJTQUJDeG9nQUNBQUtBSUFJQWRCSUhGeU5nSUFJQWdOQUFzZ0JVSFFBV29rQUFzbkFRRi9RUndoQXlBQlFRTnhCSDlCSEFVZ0FDQUJJQUlRSlNJQU5nSUFRUUJCTUNBQUd3c0wvUU1CQlg4Q2YwSGd4QUVvQWdBaUFpQUFRUWRxUVhoeElnRkJCMnBCZUhFaUEyb2hBQUpBSUFOQkFDQUFJQUpORzBVRVFDQUFQd0JCRUhSTkRRRWdBQkFLRFFFTFFaVEhBVUV3TmdJQVFYOE1BUXRCNE1RQklBQTJBZ0FnQWdzaUFrRi9Sd1JBSUFFZ0Ftb2lBRUVFYTBFUU5nSUFJQUJCRUdzaUEwRVFOZ0lBQWtBQ2YwR2d6d0VvQWdBaUFRUi9JQUVvQWdnRlFRQUxJQUpHQkVBZ0FpQUNRUVJyS0FJQVFYNXhheUlFUVFScktBSUFJUVVnQVNBQU5nSUlJQVFnQlVGK2NXc2lBQ0FBS0FJQWFrRUVheTBBQUVFQmNRUkFJQUFvQWdRaUFTQUFLQUlJSWdRMkFnZ2dCQ0FCTmdJRUlBQWdBeUFBYXlJQk5nSUFEQU1MSUFKQkVHc01BUXNnQWtFUU5nSUFJQUlnQURZQ0NDQUNJQUUyQWdRZ0FrRVFOZ0lNUWFEUEFTQUNOZ0lBSUFKQkVHb0xJZ0FnQXlBQWF5SUJOZ0lBQ3lBQUlBRkJmSEZxUVFScklBRkJBWEkyQWdBZ0FBSi9JQUFvQWdCQkNHc2lBVUgvQUUwRVFDQUJRUU4yUVFGckRBRUxJQUZCSFNBQlp5SURhM1pCQkhNZ0EwRUNkR3RCN2dCcUlBRkIveDlORFFBYVFUOGdBVUVlSUFOcmRrRUNjeUFEUVFGMGEwSEhBR29pQVNBQlFUOVBHd3NpQVVFRWRDSURRYURIQVdvMkFnUWdBQ0FEUWFqSEFXb2lBeWdDQURZQ0NDQURJQUEyQWdBZ0FDZ0NDQ0FBTmdJRVFhalBBVUdvendFcEF3QkNBU0FCcllhRU53TUFDeUFDUVg5SEM3MEJBUUovQWtBZ0FDZ0NUQ0lCUVFCT0JFQWdBVVVOQVVITXp3RW9BZ0FnQVVILy8vLy9BM0ZIRFFFTEFrQWdBQ2dDVUVFS1JnMEFJQUFvQWhRaUFTQUFLQUlRUmcwQUlBQWdBVUVCYWpZQ0ZDQUJRUW82QUFBUEN5QUFFRzhQQ3lBQVFjd0FhaUlCSUFFb0FnQWlBa0gvLy8vL0F5QUNHellDQUFKQUFrQWdBQ2dDVUVFS1JnMEFJQUFvQWhRaUFpQUFLQUlRUmcwQUlBQWdBa0VCYWpZQ0ZDQUNRUW82QUFBTUFRc2dBQkJ2Q3lBQktBSUFHaUFCUVFBMkFnQUxmQUVDZnlNQVFSQnJJZ0VrQUNBQlFRbzZBQThDUUFKQUlBQW9BaEFpQWdSL0lBSUZJQUFRUGcwQ0lBQW9BaEFMSUFBb0FoUWlBa1lOQUNBQUtBSlFRUXBHRFFBZ0FDQUNRUUZxTmdJVUlBSkJDam9BQUF3QkN5QUFJQUZCRDJwQkFTQUFLQUlrRVFBQVFRRkhEUUFnQVMwQUR4b0xJQUZCRUdva0FBdXdBZ0VDZnlBQUJFQWdBQ2dDQUJBNElBQkJBRFlDQUNBQUtBSklJZ0VFUUNBQkVCQWdBRUVBTmdKSUN5QUFLQUpFSWdFRVFDQUJFQkFnQUVFQU5nSkVDeUFBS0FKc0lnRUVRQ0FCRUJBZ0FFRUFOZ0pzQ3lBQUtBSjBJZ0VFUUNBQktBSUFJZ0lFUUNBQ0VCQWdBQ2dDZENJQlFRQTJBZ0FMSUFFUUVDQUFRUUEyQW5RTElBQW9BbmdpQVFSQUlBRW9BZ3dpQWdSQUlBSVFFQ0FBS0FKNElnRkJBRFlDREFzZ0FTZ0NCQ0lDQkVBZ0FoQVFJQUFvQW5naUFVRUFOZ0lFQ3lBQktBSUlJZ0lFUUNBQ0VCQWdBQ2dDZUNJQlFRQTJBZ2dMSUFFb0FnQWlBZ1JBSUFJUUVDQUFLQUo0SWdGQkFEWUNBQXNnQVJBUUlBQkJBRFlDZUFzZ0FDZ0NCQ0lCQkVBZ0FSQXlJQUJCQURZQ0JBc2dBQ2dDQ0NJQkJFQWdBUkF5SUFCQkFEWUNDQXNnQUJBUUN3dUxHd0llZndWN0l3QkI4QUZySWdra0FFRUJJUTRDUUNBQUtBSUFLQUk4RFFBZ0FDZ0NnQUVOQUFKQUFrQWdBQ2dDZENJSVJRUkFJQUFvQW5naEJBd0JDeUFCS0FJUUlRTWdDQzhCQkNFR0FrQWdBQ2dDZUNJRVJRMEFJQVFvQWd4RkRRQWdCQzBBRWlFREN3SkFJQVlFUUNBSUtBSUFJUWdEUUNBSUlBVkJCbXhxSWdvdkFRQWlCeUFEVHdSQUlBa2dBellDdEFFZ0NTQUhOZ0t3QVNBQ1FRRkJvT1lBSUFsQnNBRnFFQTlCQUNFT0RBWUxBa0FnQ2k4QkJDSUtSUTBBSUFwQi8vOERSZzBBSUFwQkFXc2lDaUFEU1EwQUlBa2dBellDcEFFZ0NTQUtOZ0tnQVNBQ1FRRkJvT1lBSUFsQm9BRnFFQTlCQUNFT0RBWUxJQVZCQVdvaUJTQUdSdzBBQ3d3QkN5QUREUUlNQVFzRFFDQURRUUZySVFOQkFDRUZBMEFnQ0NBRlFRWnNhaThCQUNBRFJ3UkFJQVZCQVdvaUJTQUdSdzBCREFRTEN5QUREUUFMQ3dKQUlBUkZEUUFnQkNnQ0RDSUtSUTBBQWtBQ1FDQUVMUUFTSWdnRVFFRUFJUVZCQVNFSEEwQWdBU2dDRUNJRElBb2dCVUVDZEdvdkFRQWlCRTBFUUNBSklBTTJBcFFCSUFrZ0JEWUNrQUVnQWtFQlFhRG1BQ0FKUVpBQmFoQVBRUUFoQndzZ0JVRUJhaUlGSUFoSERRQUxJQWhCQkJBVElnTkZEUUZCQUNFRkEwQUNRQ0FLSUFWQkFuUnFJZ1F0QUFJaUJrRUNUd1JBSUFrZ0JqWUNSQ0FKSUFVMkFrQWdBa0VCUWN2WkFDQUpRVUJyRUE5QkFDRUhEQUVMSUFnZ0JDMEFBeUlFVFFSQUlBa2dCRFlDZ0FFZ0FrRUJRWlBaQUNBSlFZQUJhaEFQUVFBaEJ3d0JDeUFESUFSQkFuUnFJUXNDUUNBR1FRRkhJZ3dOQUNBTEtBSUFSUTBBSUFrZ0JEWUNVQ0FDUVFGQnZOVUFJQWxCMEFCcUVBOUJBQ0VIREFFTEFrQWdCZzBBSUFSRkRRQWdDU0FFTmdKa0lBa2dCVFlDWUNBQ1FRRkJpdGdBSUFsQjRBQnFFQTlCQUNFSERBRUxBa0FnREEwQUlBUWdCVVlOQUNBSklBUTJBbmdnQ1NBRk5nSjBJQWtnQlRZQ2NDQUNRUUZCcnRnQUlBbEI4QUJxRUE5QkFDRUhEQUVMSUF0QkFUWUNBQXNnQlVFQmFpSUZJQWhIRFFBTFFRQWhCUU5BQWtBQ1FDQURJQVZCQW5RaUJHb29BZ0JGQkVBZ0JDQUthaTBBQWcwQkN5QUZRUUZxSWdVZ0NFY05BaUFIUlEwQklBRW9BaEJCQVVjTkJVRUFJUVVEUUNBRElBVkJBblJxS0FJQUJFQWdDQ0FGUVFGcUlnVkhEUUVNQndzTFFRQWhCeUFDUVFKQjdzVUFRUUFRRHlBSVFSQlBCRUFnQ0VId0FYRWhCMEVBSVFRRFFDQUtJQVJCQW5ScUlnWkJBVG9BQWlBR0lBUTZBQU1nQmtFQk9nQStJQVpCQVRvQU9pQUdRUUU2QURZZ0JrRUJPZ0F5SUFaQkFUb0FMaUFHUVFFNkFDb2dCa0VCT2dBbUlBWkJBVG9BSWlBR1FRRTZBQjRnQmtFQk9nQWFJQVpCQVRvQUZpQUdRUUU2QUJJZ0JrRUJPZ0FPSUFaQkFUb0FDaUFHUVFFNkFBWWdCaUFFUVFGeU9nQUhJQVlnQkVFUGNqb0FQeUFHSUFSQkRuSTZBRHNnQmlBRVFRMXlPZ0EzSUFZZ0JFRU1jam9BTXlBR0lBUkJDM0k2QUM4Z0JpQUVRUXB5T2dBcklBWWdCRUVKY2pvQUp5QUdJQVJCQ0hJNkFDTWdCaUFFUVFkeU9nQWZJQVlnQkVFR2Nqb0FHeUFHSUFSQkJYSTZBQmNnQmlBRVFRUnlPZ0FUSUFZZ0JFRURjam9BRHlBR0lBUkJBbkk2QUFzZ0JFRVFhaUlFSUFkSERRQUxJQWNnQ0VZTkJnc0RRQ0FLSUFkQkFuUnFJZ1FnQnpvQUF5QUVRUUU2QUFJZ0IwRUJhaUlISUFoSERRQUxEQVVMSUFrZ0JUWUNNQ0FDUVFGQnlOSUFJQWxCTUdvUUQwRUFJUWNnQlVFQmFpSUZJQWhIRFFFTEN5QURFQkJCQUNFT0RBVUxJQWhCQkJBVElnTU5BUXRCQUNFT0lBSkJBVUdLMndCQkFCQVBEQU1MSUFNUUVBc0NRQ0FBS0FKNElnTkZEUUFnQXlnQ0RDSVBSUVJBSUFNb0FnUVFFQ0FBS0FKNEtBSUlFQkFnQUNnQ2VDZ0NBQkFRSUFBb0FuZ2lBeWdDRENJRUJIOGdCQkFRSUFBb0FuZ0ZJQU1MRUJBZ0FFRUFOZ0o0REFFTElBRW9BaGdoRFFKQUFrQWdBeTBBRWlJS0JFQWdBeWdDQUNFVUlBTW9BZ1FoQmlBREtBSUlJUWhCQUNFRkFrQURRQ0FOSUE4Z0JVRUNkR292QVFCQk5HeHFLQUlzQkVBZ0NpQUZRUUZxSWdWSERRRU1BZ3NMSUFrZ0JUWUNJQ0FDUVFGQnd1Y0FJQWxCSUdvUUQwRUFJUTRNQmdzZ0NrRTBiQkFVSWd0RkRRRkJBQ0VGQTBBZ0R5QUZRUUowYWlJREx3RUFJUWNnQ3lBRExRQUNCSDhnQXkwQUF3VWdCUXRCTkd4cUlnUWdEU0FIUVRSc2FpSUQvUUFDQVAwTEFnQWdCQ0FES0FJd05nSXdJQVFnQS8wQUFpRDlDd0lnSUFRZ0EvMEFBaEQ5Q3dJUUlBc2dCVUUwYkdvaUJDQURLQUlJSUFNb0FneHNRUUowRUJnaUF6WUNMQ0FEUlFSQUlBVUVRQ0FGUWYvL0EzRWhBQU5BSUFCQk5Hd2dDMnBCQ0dzb0FnQVFFQ0FBUVFGcklnQU5BQXNMSUFzUUVFRUFJUTRnQWtFQlFZN25BRUVBRUE4TUJ3c2dCQ0FGSUFocUxRQUFOZ0lZSUFRZ0JTQUdhaTBBQURZQ0lDQUZRUUZxSWdVZ0NrY05BQXNnQUNnQ2VDOEJFQ0lRUVFGcklSSURRQ0FMSUJOQk5HeHFJZ01vQWd3Z0F5Z0NDR3doQmlBTklBOGdFMEVDZEdvaUJDOEJBRUUwYkdvb0Fpd2hDQUpBSUFRdEFBSkZCRUFnQmtVTkFTQURLQUlzSVFWQkFDRUhRUUFoQkFKQUlBWkJCRWtOQUNBRklBaHJRUkJKRFFBZ0JrRjhjU0VFUVFBaEF3TkFJQVVnQTBFQ2RDSU1haUFJSUF4cS9RQUNBUDBMQWdBZ0EwRUVhaUlESUFSSERRQUxJQVFnQmtZTkFnc2dCQ0VESUFaQkEzRWlEQVJBQTBBZ0JTQURRUUowSWhGcUlBZ2dFV29vQWdBMkFnQWdBMEVCYWlFRElBZEJBV29pQnlBTVJ3MEFDd3NnQkNBR2EwRjhTdzBCQTBBZ0JTQURRUUowSWdScUlBUWdDR29vQWdBMkFnQWdCU0FFUVFScUlnZHFJQWNnQ0dvb0FnQTJBZ0FnQlNBRVFRaHFJZ2RxSUFjZ0NHb29BZ0EyQWdBZ0JTQUVRUXhxSWdScUlBUWdDR29vQWdBMkFnQWdBMEVFYWlJRElBWkhEUUFMREFFTElBWkZEUUFnRkNBRUxRQURJZ05CQW5ScUlRUWdDeUFEUVRSc2FpZ0NMQ0VGUVFBaEF5QUdRUUZIQkVBZ0JrRitjU0VWUVFBaERBTkFJQVVnQTBFQ2RDSUhhaUFFSUFjZ0NHb29BZ0FpRVNBU0lCQWdFVW9iUVFBZ0VVRUFUaHNnQ214QkFuUnFLQUlBTmdJQUlBVWdCMEVFY2lJSGFpQUVJQWNnQ0dvb0FnQWlCeUFTSUFjZ0VFZ2JRUUFnQjBFQVRoc2dDbXhCQW5ScUtBSUFOZ0lBSUFOQkFtb2hBeUFNUVFKcUlnd2dGVWNOQUFzTElBWkJBWEZGRFFBZ0JTQURRUUowSWdOcUlBUWdBeUFJYWlnQ0FDSURJQklnQXlBUVNCdEJBQ0FEUVFCT0d5QUtiRUVDZEdvb0FnQTJBZ0FMSUJOQkFXb2lFeUFLUncwQUN3d0NDeUFLUVRSc0VCUWlDdzBCQzBFQUlRNGdBa0VCUVk3bkFFRUFFQThNQXdzZ0FTZ0NFQ0lEQkVCQkFDRUZBMEFnRFNBRlFUUnNhaWdDTENJRUJFQWdCQkFRQ3lBRlFRRnFJZ1VnQTBjTkFBc0xJQTBRRUNBQklBbzJBaEFnQVNBTE5nSVlDeUFBS0FKMElnVkZEUUVnQlNnQ0FDRUhJQVV2QVFRaUN3UkFJQWRCS21vaEVpQUhRU1JxSVJNZ0IwRWVhaUVSSUFkQkdHb2hGQ0FIUVJKcUlSVWdCMEVNYWlFV0lBZEJCbW9oRnlBTFFRSnJJUmhCQUNFRlFRRWhCQU5BQWtBZ0FTZ0NFQ0lESUFjZ0JVRUdiR29pRFM4QkFDSUdUUVJBSUFrZ0F6WUNGQ0FKSUFZMkFoQWdBa0VDUWN3M0lBbEJFR29RRHd3QkN5QU5Md0VFSWdoQkFXcEIvLzhEY1VFQlRRUkFJQUVvQWhnZ0JrRTBiR29nRFM4QkFqc0JNQXdCQ3lBSVFRRnJJZ3BCLy84RGNTSVBJQU5QQkVBZ0NTQUROZ0lFSUFrZ0R6WUNBQ0FDUVFKQm96Y2dDUkFQREFFTEFrQWdCaUFQUmcwQUlBMHZBUUlOQUNBSklBRW9BaGdpQ0NBR1FUUnNhaUlES0FJd05nTG9BU0FKSUFQOUFBSWcvUXNEMkFFZ0NTQUQvUUFDRVAwTEE4Z0JJQWtnQS8wQUFnRDlDd080QVNBRElBZ2dEMEUwYkNJTWFpSUlLUUlJTndJSUlBTWdDQ2tDRURjQ0VDQURJQWdwQWhnM0FoZ2dBeUFJS1FJZ053SWdJQU1nQ0NrQ0tEY0NLQ0FESUFnb0FqQTJBakFnQXlBSUtRSUFOd0lBSUFFb0FoZ2dER29pQXlBSi9RQUR1QUg5Q3dJQUlBTWdDZjBBQTlnQi9Rc0NJQ0FESUFuOUFBUElBZjBMQWhBZ0F5QUpLQUxvQVRZQ01DQUZRUUZxSUF0UERRQWdCQ0VJSUJnZ0JXdEIvLzhEY1NJRFFRZFBCRUFnQkNBRFFRRnFJaGxCK1A4SGNTSVFhaUVJSUFyOUVDRWtJQWI5RUNFalFRQWhEQU5BSUNNZ0pDQVNJQVFnREdwQkJtd2lBMm9pR2lBRElCTnFJaHNnQXlBUmFpSWNJQU1nRkdvaUhTQURJQlZxSWg0Z0F5QVdhaUlmSUFNZ0Yyb2lJQ0FESUFkcUlnUDlDQUVBL1ZVQkFBSDlWUUVBQXYxVkFRQUQvVlVCQUFUOVZRRUFCZjFWQVFBRy9WVUJBQWNpSVNBai9TNGdJU0FrL1MwaUpmMU8vVkloSWlBaElDUDlMU0FsL1ZBaUlmMFpBRUVCY1FSQUlBTWdJdjFaQVFBQUN5QWgvUmtCUVFGeEJFQWdJQ0FpL1ZrQkFBRUxJQ0g5R1FKQkFYRUVRQ0FmSUNMOVdRRUFBZ3NnSWYwWkEwRUJjUVJBSUI0Z0l2MVpBUUFEQ3lBaC9Sa0VRUUZ4QkVBZ0hTQWkvVmtCQUFRTElDSDlHUVZCQVhFRVFDQWNJQ0w5V1FFQUJRc2dJZjBaQmtFQmNRUkFJQnNnSXYxWkFRQUdDeUFoL1JrSFFRRnhCRUFnR2lBaS9Wa0JBQWNMSUF4QkNHb2lEQ0FRUncwQUN5QVFJQmxHRFFFTEEwQWdDaUVEQWtBZ0JpQUhJQWhCQm14cUlnd3ZBUUFpRUVjRVFDQUdJUU1nRHlBUVJ3MEJDeUFNSUFNN0FRQUxJQXNnQ0VFQmFpSUlRZi8vQTNGSERRQUxDeUFCS0FJWUlBWkJOR3hxSUEwdkFRSTdBVEFMSUFSQkFXb2hCQ0FGUVFGcUlnVWdDMGNOQUFzZ0FDZ0NkQ0lGS0FJQUlRY0xJQWNFZnlBSEVCQWdBQ2dDZEFVZ0JRc1FFQ0FBUVFBMkFuUU1BUXRCQUNFT0lBSkJBVUdoeGdCQkFCQVBDeUFKUWZBQmFpUUFJQTRMNlFFQkJuOGpBRUVnYXlJRUpBQUNmd0pBSUFBb0Fqd2lBd1JBUVFFaEJRTkFJQUFvQWt3b0FoZ2dBQ2dDUUNBQ1FRSjBhaWdDQUNJR1FUUnNhaWdDTEVVRVFDQUVJQVkyQWhBZ0FVRUNRZG81SUFSQkVHb1FEMEVBSVFVZ0FDZ0NQQ0VEQ3lBQ1FRRnFJZ0lnQTBrTkFBc01BUXRCQVNFRlFRRWdBQ2dDVENJREtBSVFSUTBCR2dOQUlBTW9BaGdnQWtFMGJHb29BaXhGQkVBZ0JDQUNOZ0lBSUFGQkFrSGFPU0FFRUE5QkFDRUZJQUFvQWt3aEF3c2dBa0VCYWlJQ0lBTW9BaEJKRFFBTEMwRUJJQVVOQUJvZ0FVRUJRYjhWUVFBUUQwRUFDeUVISUFSQklHb2tBQ0FIQ3dRQVFYOExoZ2NDRm44Q2ZpQUFLQUlZSWhBb0FoQkZCRUJCQVE4TElCQW9BaGdoRFNBQUtBSVVLQUlBS0FJVUlRc0RRQ0FCSUEwb0FpUWlBallDSkNBTEtBSWNJZ1lnQWtHWUFXeHFJUU1DUUFKQUFuOGdBQ2dDUUNJUkJFQWdCaUFMS0FJWVFaZ0JiR29pQWtHUUFXc29BZ0FnQWtHWUFXc29BZ0JySVF3Z0EwRU1haUVHSUFOQkJHb2hCQ0FES0FJSUlRSWdBeWdDQUNFRlFTUU1BUXNnQTBHVUFXb2hCaUFEUVl3QmFpRUVJQU1vQXBBQklnSWdBeWdDaUFFaUJXc2hERUUwQ3lBTGFpZ0NBQ0lTUlEwQUlBUW9BZ0FoQnlBR0tBSUFJUWtnQWlBRmF5RUdJQUVvQWdnaUEwSi9JQUUxQWlnaUdJWkNmNFVpR1NBQk5RSVFmQ0FZaUtjaUNHb2hCQUovSUFVZ0NFc0VRQ0FGSUFocklRNUJBQ0VJUVFBZ0FpQUVUUTBCR2lBR0lBUWdCV3NpQm1zTUFRc2dDQ0FGYXlFSUlBSWdCRTBFUUNBR0lBaHJJUVpCQUNFT1FRQU1BUXRCQUNFT0lBTWhCaUFDSUFSckN5RVZJQWtnQjJzaEFpQUJLQUlNSWdRZ0dTQUJOUUlVZkNBWWlLY2lDbW9oQlFKL0lBY2dDa3NFUUNBSElBcHJJUTlCQUNFS1FRQWdCU0FKVHcwQkdpQUNJQVVnQjJzaUFtc01BUXNnQ2lBSGF5RUtJQVVnQ1U4RVFDQUNJQXBySVFKQkFDRVBRUUFNQVF0QkFDRVBJQVFoQWlBSklBVnJDeUVIUVFBaEJTQUlRUUJJRFFFZ0NrRUFTQTBCSUJWQkFFZ05BU0FIUVFCSURRRWdCa0VBU0EwQklBSkJBRWdOQVNBRElBOXNJQTVxSVFjZ0NpQU1iQ0FJYWlFSkFrQUNRQUpBSUFFb0Fpd2lDQTBBSUFrTkFDQUhEUUFnQXlBTVJ3MEFJQU1nQmtjTkFDQUNJQVJIRFFFZ0FTQUxRU1JCTkNBUkcyb2lBaWdDQURZQ0xDQUNRUUEyQWdBTUF3c2dDQTBCQ3lBRVJRMENJQVN0SUFPdGZrSWdpS2NOQWlBRElBUnNJZ05CLy8vLy93TkxEUUlnQVNBRFFRSjBFQmdpQXpZQ0xDQURSUTBDSUFZZ0FTZ0NDQ0lFUmlBQktBSU1JZ1VnQWtaeERRQWdBMEVBSUFRZ0JXeEJBblFRRlJvTElBSkZEUUFnQWtFQmNTRVhJQVpCQW5RaEJpQUJLQUlzSUFkQkFuUnFJUVFnRWlBSlFRSjBhaUVGSUFKQkFVY0VRQ0FDUWY3Ly8vOEhjU0VIUVFBaEFnTkFJQVFnQlNBR0VCSWhGaUFGSUF4QkFuUWlDV29pQ0NBSmFpRUZJQllnQVNnQ0NFRUNkR29nQ0NBR0VCSWdBU2dDQ0VFQ2RHb2hCQ0FDUVFKcUlnSWdCMGNOQUFzTElCZEZEUUFnQkNBRklBWVFFaG9MSUF0QnpBQnFJUXNnRFVFMGFpRU5JQUZCTkdvaEFVRUJJUVVnRkVFQmFpSVVJQkFvQWhCSkRRRUxDeUFGQzlVU0FnbC9ESDRqQUVHZ0FXc2lCU1FBQWtBZ0FrRWpUUVJBUVFBaEFpQURRUUZCdGk1QkFCQVBEQUVMSUFKQkpHc2lBaUFDUVFOdUlnbEJBMnhIQkVCQkFDRUNJQU5CQVVHMkxrRUFFQThNQVFzZ0FDZ0NTQ0VHSUFFZ0JVR2NBV29pQWtFQ0VCRWdBQ0FGS0FLY0FUc0JVQ0FCUVFKcUlBWkJDR3BCQkJBUklBRkJCbW9nQmtFTWFrRUVFQkVnQVVFS2FpQUdRUVFRRVNBQlFRNXFJQVpCQkdwQkJCQVJJQUZCRW1vZ0FFSGNBR3BCQkJBUklBRkJGbW9nQUVIZ0FHcEJCQkFSSUFGQkdtb2dBRUhVQUdwQkJCQVJJQUZCSG1vZ0FFSFlBR3BCQkJBUklBRkJJbW9nQWtFQ0VCRUNRQUpBQWtBZ0JTZ0NuQUVpQWtHQWdBRk5CRUFnQmlBQ05nSVFJQUlnQ1VjRVFDQUZJQWsyQW9RQklBVWdBallDZ0FFZ0EwRUJRWkh3QUNBRlFZQUJhaEFQUVFBaEFnd0ZDeUFHS0FJRUlnSWdCaWdDRENJSVNTQUdLQUlJSWdzZ0JpZ0NBQ0lFUzNGRkJFQWdCU0FJclNBQ3JYMDNBM2dnQlNBTHJTQUVyWDAzQTNBZ0EwRUJRZHZzQUNBRlFmQUFhaEFQUVFBaEFnd0ZDeUFBS0FKY0lnZEJBQ0FBS0FKZ0lnb2JSUVJBSUFVZ0NqWUNCQ0FGSUFjMkFnQWdBMEVCUVlQeEFDQUZFQTlCQUNFQ0RBVUxBa0FDUUNBQUtBSlVJZ3dnQkVzTkFFRi9JQWNnREdvaUJ5QUhJQXhKR3lBRVRRMEFJQUFvQWxnaUJ5QUNTdzBBUVg4Z0J5QUthaUlLSUFjZ0Nrc2JJQUpMRFFFTFFRQWhBaUFEUVFGQjFoUkJBQkFQREFVTEFrQWdBQ2dDNEFFTkFDQUFLQUxZQVNJSFJRMEFJQUFvQXR3QklncEZEUUFnQ3lBRWF5SUVJQWRHSUFnZ0Ftc2lBaUFLUm5FTkFDQUZJQUkyQW13Z0JTQUVOZ0pvSUFVZ0NqWUNaQ0FGSUFjMkFtQWdBMEVCUWNQb0FDQUZRZUFBYWhBUFFRQWhBZ3dGQ3lBR0lBbEJOQkFUSWdRMkFoZ2dCRVVOQVFKQUlBWW9BaEJGRFFBZ0FVRWthaUFGUVpnQmFpSUNRUUVRRVNBRUlBVW9BcGdCSWdsQkIzWWlDallDSUNBRUlBbEIvd0J4UVFGcUlndzJBaGdnQUNnQzRBRWhDeUFCUVNWcUlBSkJBUkFSSUFRZ0JTZ0NtQUUyQWdBZ0FVRW1haUFDUVFFUUVTQUVJQVVvQXBnQklnZzJBZ1JCQUNFQ0lBUW9BZ0FpQjBHQUFtdEJnWDVKQkVCQkFDRUpEQVVMUVFBaENTQUlRWUFDYTBHQmZra05CQ0FFS0FJWUlnaEJIMHNOQXlBRVFRQTJBaVFnQkNBQUtBS2dBVFlDS0VFQklRa2dCaWdDRUVFQlRRMEFRUUFnQ2lBTEd5RUtRUUFnRENBTEd5RUxJQUZCSjJvaEFRTkFJQUVnQlVHWUFXcEJBUkFSSUFRZ0JTZ0NtQUVpQjBFSGRpSUlOZ0pVSUFRZ0IwSC9BSEZCQVdvaUJ6WUNUQUpBSUFBb0F1QUJEUUFnQUMwQXZBRkJCSEVOQUNBSElBdEdJQWdnQ2taeERRQWdCU0FJTmdKVUlBVWdCellDVUNBRklBazJBa3dnQlNBS05nSklJQVVnQ3pZQ1JDQUZJQWsyQWtBZ0EwRUNRY2Z1QUNBRlFVQnJFQThMSUFGQkFXb2dCVUdZQVdvaUNFRUJFQkVnQkNBRktBS1lBVFlDTkNBQlFRSnFJQWhCQVJBUklBUWdCU2dDbUFFaUNEWUNPQ0FFS0FJMElnZEJnQUpyUVlGK1NRMEZJQWhCZ0FKclFZQitUUTBGSUFRb0Frd2lDRUVnVHcwRUlBRkJBMm9oQVNBRVFRQTJBbGdnQkNBQUtBS2dBVFlDWENBRVFUUnFJUVFnQ1VFQmFpSUpJQVlvQWhCSkRRQUxDMEVBSVFJZ0FDZ0NYQ0lJUlEwRUlBQW9BbUFpQzBVTkJDQUFJQWl0SWcxQ0FYMGlEeUFHS0FJSUlBQW9BbFFpQjJ1dGZDQU5nS2NpQVRZQ2FDQUFJQXV0SWc1Q0FYMGlFQ0FHS0FJTUlBQW9BbGdpQ211dGZDQU9nS2NpQkRZQ2JBSkFBa0FnQVVVTkFDQUVSUTBBUWYvL0F5QUViaUFCVHcwQkN5QUZJQVEyQWhRZ0JTQUJOZ0lRSUFOQkFVRzE2UUFnQlVFUWFoQVBEQVVMSUFFZ0JHd2hDUUpBSUFBdEFFUkJBbkVFUUNBQUlBQW9BaHdnQjJzZ0NHNDJBaHdnQUNBQUtBSWdJQXBySUF0dU5nSWdJQUFnRHlBQUtBSWtJQWRyclh3Z0RZQStBaVFnQUNBUUlBQW9BaWdnQ211dGZDQU9nRDRDS0F3QkN5QUFJQVEyQWlnZ0FDQUJOZ0lrSUFCQ0FEY0NIQXNnQUNBSlFZd3NFQk1pQVRZQ25BRWdBVVVFUUNBRFFRRkJ6UjFCQUJBUERBVUxJQVlvQWhCQnVBZ1FFeUVCSUFBb0Fnd2dBVFlDMENzZ0FDZ0NEQ2dDMEN0RkJFQWdBMEVCUWMwZFFRQVFEd3dGQzBFS1FSUVFFeUVCSUFBb0Fnd2dBVFlDOENzZ0FDZ0NEQ0lCS0FMd0swVUVRQ0FEUVFGQnpSMUJBQkFQREFVTElBRkJDallDK0N0QkNrRVVFQk1oQVNBQUtBSU1JQUUyQXZ3cklBQW9BZ3dpQVNnQy9DdEZCRUFnQTBFQlFjMGRRUUFRRHd3RkN5QUJRUW8yQW9Rc0FrQWdCaWdDRUNJRVJRMEFJQVlvQWhnaENFRUFJUUVnQkVFQlJ3UkFJQVJCZm5FaEN3TkFJQWdnQVVFMGJHb2lCeWdDSUVVRVFDQUFLQUlNS0FMUUt5QUJRYmdJYkdwQkFTQUhLQUlZUVFGcmREWUN0QWdMSUFnZ0FVRUJjaUlIUVRSc2FpSUtLQUlnUlFSQUlBQW9BZ3dvQXRBcklBZEJ1QWhzYWtFQklBb29BaGhCQVd0ME5nSzBDQXNnQVVFQ2FpRUJJQUpCQW1vaUFpQUxSdzBBQ3dzZ0JFRUJjVVVOQUNBSUlBRkJOR3hxSWdJb0FpQU5BQ0FBS0FJTUtBTFFLeUFCUWJnSWJHcEJBU0FDS0FJWVFRRnJkRFlDdEFnTElBa0VRQ0FBS0FLY0FTRUJRUUFoQWdOQUlBRWdCaWdDRUVHNENCQVRJZ1EyQXRBcklBUkZCRUJCQUNFQ0lBTkJBVUhOSFVFQUVBOE1Cd3NnQVVHTUxHb2hBU0FDUVFGcUlnSWdDVWtOQUFzTElBQkJCRFlDQ0NBR0tBSVFJZ01FUUVGL0lBQW9BbGdpQVNBQUtBSmdJZ0lnQUNnQ2JFRUJhMnhxSWdRZ0Ftb2lBaUFDSUFSSkd5SUNJQVlvQWd3aUJDQUNJQVJKRzYwaEVFRi9JQUFvQWxRaUFpQUFLQUpjSWdRZ0FDZ0NhRUVCYTJ4cUlnQWdCR29pQkNBQUlBUkxHeUlBSUFZb0FnZ2lCQ0FBSUFSSkc2MGhFU0FCSUFZb0FnUWlBQ0FBSUFGSkc2MGhFaUFDSUFZb0FnQWlBQ0FBSUFKSkc2MGhFeUFHS0FJWUlRQkJBQ0VCQTBBZ0FDQUFOUUlFSWcxQ0FYMGlGQ0FTZkNBTmdDSVZQZ0lVSUFBZ0FEVUNBQ0lPUWdGOUloWWdFM3dnRG9BaUZ6NENFQ0FBUW44Z0FEVUNLQ0lQaGtKL2hTSVlJQkFnRkh3Z0RZQWdGWDFDLy8vLy93K0RmQ0FQaUQ0Q0RDQUFJQkVnRm53Z0RvQWdGMzFDLy8vLy93K0RJQmg4SUErSVBnSUlJQUJCTkdvaEFDQUJRUUZxSWdFZ0EwY05BQXNMUVFFaEFnd0VDeUFGSUFJMkFwQUJJQU5CQVVIMk95QUZRWkFCYWhBUFFRQWhBZ3dEQzBFQUlRSWdCa0VBTmdJUUlBTkJBVUhOSFVFQUVBOE1BZ3NnQlNBSU5nSTBJQVVnQ1RZQ01DQURRUUZCdC9NQUlBVkJNR29RRHd3QkN5QUZJQWcyQWlnZ0JTQUhOZ0lrSUFVZ0NUWUNJQ0FEUVFGQmtlc0FJQVZCSUdvUUR3c2dCVUdnQVdva0FDQUNDNTREQVFkL0l3QkJFR3NpQmlRQUFuOGdBaUFDUVFGQkFpQUFLQUpJS0FJUUlnaEJnUUpKR3lJSFFRRjBRUVZxSWdSdUlnVWdCR3hHSUFJZ0JFOXhSUVJBSUFOQkFVR0tJMEVBRUE5QkFBd0JDd0ovSUFBb0FnaEJFRVlFUUNBQUtBS2NBU0FBS0FMTUFVR01MR3hxREFFTElBQW9BZ3dMSVFSQkFDRUFJQVF0QUlnc0lnSkJCSEVFUUNBRUtBS2tBMEVCYWlFQUN5QUFJQVZxSWdWQklFOEVRQ0FHSUFVMkFnQWdBMEVCUVlzN0lBWVFEMEVBREFFTElBUWdBa0VFY2pvQWlDd2dBQ0FGU1FSQUlBUWdBRUdVQVd4cVFhZ0RhaUVDQTBBZ0FTQUNRUUVRRVNBQlFRRnFJZ0VnQWtFRWFpQUhFQkVnQVNBSGFpSUJJQUpCQ0dwQkFoQVJJQUlnQWlnQ0NDSURJQVFvQWdnaUNTQURJQWxKR3pZQ0NDQUJRUUpxSUFKQkRHcEJBUkFSSUFGQkEyb2lBU0FDUVJCcUlBY1FFU0FCSUFkcUlnRWdCa0VNYWtFQkVCRWdBaUFHS0FJTU5nSWtJQUlnQWlnQ0VDSURJQWdnQXlBSVNSczJBaEFnQWtHVUFXb2hBaUFCUVFGcUlRRWdBRUVCYWlJQUlBVkhEUUFMQ3lBRUlBVkJBV3MyQXFRRFFRRUxJUW9nQmtFUWFpUUFJQW9MN0FFQkJIOGpBRUVRYXlJRUpBQUNmd0pBSUFFZ0JFRUlhZ0ovSUFBb0FrZ29BaEJCZ0FKTkJFQWdBZ1JBUVg4aEJVRUJEQUlMSUFOQkFVRytJMEVBRUE5QkFBd0RDeUFDUVFGTkRRRkJmaUVGUVFJTElnWVFFU0FFSUFJZ0JXbzJBZ3dnQkNnQ0NDSUNJQUFvQWtnb0FoQWlCVThFUUNBRUlBVTJBZ1FnQkNBQ05nSUFJQU5CQVVIR09pQUVFQTlCQUF3Q0N5QUFJQUlnQVNBR2FpQUVRUXhxSUFNUVFrVUVRQ0FEUVFGQnZpTkJBQkFQUVFBTUFndEJBU0FFS0FJTVJRMEJHaUFEUVFGQnZpTkJBQkFQUVFBTUFRc2dBMEVCUWI0alFRQVFEMEVBQ3lFSElBUkJFR29rQUNBSEM5a0JBUVIvSXdCQkVHc2lCQ1FBSUFRZ0FqWUNEQUpBQWtBZ0FFRUFJQUVnQkVFTWFpQURFRUpGRFFBZ0JDZ0NEQTBBQW44Z0FDZ0NDRUVRUmdSQUlBQW9BcHdCSUFBb0Fzd0JRWXdzYkdvTUFRc2dBQ2dDREFzaEIwRUJJUVVnQUNnQ1NDZ0NFRUVDU1EwQklBY29BdEFySWdKQkhHb2hCa0VCSVFFZ0FpRURBMEFnQXlBQ0tBSVlOZ0xRQ0NBRElBSW9BcVFHTmdMY0RpQURRZFFJYWlBR1FZZ0dFQklhSUFOQnVBaHFJUU1nQVVFQmFpSUJJQUFvQWtnb0FoQkpEUUFMREFFTElBTkJBVUhXSWtFQUVBOExJQVJCRUdva0FDQUZDOVlCQVFOL0l3QkJFR3NpQkNRQUFrQWdBa0VCUVFJZ0FDZ0NTQ2dDRUNJR1FZRUNTUnNpQlVFQ2FrY0VRRUVBSVFBZ0EwRUJRWW9nUVFBUUR3d0JDd0ovSUFBb0FnaEJFRVlFUUNBQUtBS2NBU0FBS0FMTUFVR01MR3hxREFFTElBQW9BZ3dMSVFJZ0FTQUVRUXhxSUFVUUVVRUJJUUFnQVNBRmFpSUZJQVJCQ0dwQkFSQVJJQVlnQkNnQ0RDSUJUUVJBSUFRZ0JqWUNCQ0FFSUFFMkFnQWdBMEVCUWRqdkFDQUVFQTlCQUNFQURBRUxJQVZCQVdvZ0FpZ0MwQ3NnQVVHNENHeHFRYWdHYWtFQkVCRUxJQVJCRUdva0FDQUFDNFFDQVFWL0l3QkJFR3NpQkNRQUFuOGdBQ2dDQ0VFUVJnUkFJQUFvQXB3QklBQW9Bc3dCUVl3c2JHb01BUXNnQUNnQ0RBc2hCZ0pBSUFKQkFVRUNJQUFvQWtnaUJ5Z0NFRUdCQWtrYklnVk5CRUJCQUNFQ0lBTkJBVUdrSTBFQUVBOE1BUXNnQkNBRlFYOXpJQUpxTmdJTUlBRWdCRUVJYWlBRkVCRWdCQ2dDQ0NJSUlBY29BaEJQQkVCQkFDRUNJQU5CQVVHQTZRQkJBQkFQREFFTFFRRWhBaUFCSUFWcUlnRWdCaWdDMENzZ0NFRzRDR3hxUVFFUUVTQUFJQVFvQWdnZ0FVRUJhaUFFUVF4cUlBTVFRMFVFUUVFQUlRSWdBMEVCUWFRalFRQVFEd3dCQ3lBRUtBSU1SUTBBUVFBaEFpQURRUUZCcENOQkFCQVBDeUFFUVJCcUpBQWdBZ3VzQmdFSGZ5TUFRUkJySWdZa0FDQUdJQUkyQWd3Z0FDZ0NTQ0VKQW44Z0FDZ0NDRUVRUmdSQUlBQW9BcHdCSUFBb0Fzd0JRWXdzYkdvTUFRc2dBQ2dDREFzaUJDQUVMUUNJTEVFQmNqb0FpQ3dDUUNBQ1FRUk5CRUFnQTBFQlFid2lRUUFRRHd3QkN5QUJJQVJCQVJBUklBUW9BZ0JCQ0U4RVFDQURRUUZCbWlKQkFCQVBEQUVMSUFGQkFXb2dCa0VJYWtFQkVCRWdCQ0FHS0FJSUlnSTJBZ1FnQWtFRlRnUkFJQU5CQVVIeElVRUFFQThnQkVGL05nSUVDeUFCUVFKcUlBUkJDR3BCQWhBUklBUW9BZ2dpQjBHQWdBUnJRWUNBZkUwRVFDQUdJQWMyQWdBZ0EwRUJRYWs5SUFZUUR3d0JDeUFFSUFBb0FxUUJJZ0lnQnlBQ0d6WUNEQ0FCUVFScUlBUkJFR3BCQVJBUklBUW9BaEJCQWs4RVFDQURRUUZCaHlwQkFCQVBEQUVMSUFGQkJXb2hBaUFHSUFZb0FneEJCV3MyQWd3Q1FDQUpLQUlRSWdkRkRRQWdCQ2dDQUVFQmNTRUlJQVFvQXRBcklRUkJBQ0VKSUFkQkNFOEVRQ0FIUVhoeElRRURRQ0FFSUFWQnVBaHNhaUFJTmdJQUlBUWdCVUVCY2tHNENHeHFJQWcyQWdBZ0JDQUZRUUp5UWJnSWJHb2dDRFlDQUNBRUlBVkJBM0pCdUFoc2FpQUlOZ0lBSUFRZ0JVRUVja0c0Q0d4cUlBZzJBZ0FnQkNBRlFRVnlRYmdJYkdvZ0NEWUNBQ0FFSUFWQkJuSkJ1QWhzYWlBSU5nSUFJQVFnQlVFSGNrRzRDR3hxSUFnMkFnQWdCVUVJYWlFRklBcEJDR29pQ2lBQlJ3MEFDd3NnQjBFSGNTSUJSUTBBQTBBZ0JDQUZRYmdJYkdvZ0NEWUNBQ0FGUVFGcUlRVWdDVUVCYWlJSklBRkhEUUFMQzBFQUlRVWdBRUVBSUFJZ0JrRU1haUFERUVORkJFQWdBMEVCUWJ3aVFRQVFEd3dCQ3lBR0tBSU1CRUFnQTBFQlFid2lRUUFRRHd3QkN3Si9JQUFvQWdoQkVFWUVRQ0FBS0FLY0FTQUFLQUxNQVVHTUxHeHFEQUVMSUFBb0Fnd0xJUUVnQUNnQ1NDZ0NFRUVDVHdSQUlBRW9BdEFySWdFb0FnUkJBblFoQnlBQlFiQUhhaUVLSUFGQnJBWnFJUU5CQVNFSklBRWhBZ05BSUFJZ0FmMEFBZ1Q5Q3dLOENDQUNJQUVvQWhRMkFzd0lJQUpCNUE1cUlBTWdCeEFTR2lBQ1FlZ1BhaUFLSUFjUUVob2dBa0c0Q0dvaEFpQUpRUUZxSWdrZ0FDZ0NTQ2dDRUVrTkFBc0xRUUVoQlFzZ0JrRVFhaVFBSUFVTDdBa0JCbjhqQUVId0FHc2lCQ1FBSUFSQkFEWUNhQUpBSUFKQkNFY0VRQ0FEUVFGQnZSNUJBQkFQSUFOQkFVRzlIa0VBRUE4TUFRc2dBU0FBUWN3QmFrRUNFQkVnQVVFQ2FpQUVRZXdBYWtFRUVCRWdBVUVHYWlBRVFlUUFha0VCRUJFZ0FVRUhhaUFFUWVnQWFrRUJFQkVnQUNnQ3pBRWlBaUFBS0FKb0lnZ2dBQ2dDYkd4UEJFQWdCQ0FDTmdKZ0lBTkJBVUdkT3lBRVFlQUFhaEFQREFFTElBQW9BcHdCSUFKQmpDeHNhaUVGSUFJZ0NHNGhCeUFFS0FKa0lRRUNRQ0FBS0FJc0lnWkJBRTRnQWlBR1IzRU5BQ0FGS0FMVUswRUJhaUlHSUFGR0RRQWdCQ0FHTmdKWUlBUWdBVFlDVkNBRUlBSTJBbEFnQTBFQlFiVTdJQVJCMEFCcUVBOUJBQ0VGREFFTElBVWdBVFlDMUNzQ1FBSkFJQVFvQW13aUFVRUJhMEVNVFFSL0lBRkJERWNOQVNBRVFRdzJBakFnQTBFQ1FlWFhBQ0FFUVRCcUVBOGdCQ2dDYkFVZ0FRdEZCRUFnQTBFRVFiTFBBRUVBRUE4Z0FFRUJOZ0k0Q3dKQUFrQUNRQUpBSUFVb0F0Z3JJZ0VFUUNBRUtBSmtJZ1lnQVVrTkFTQUVJQUUyQWlRZ0JDQUdOZ0lnSUFOQkFVR0ZKeUFFUVNCcUVBOGdBRUVCTmdJNFFRQWhCUXdIQ3lBRUtBSm9JZ1lOQVF3REN5QUVLQUpvSWdaRkRRRUxJQVFnQmlBQUxRQkVRUVIyUVFGeGFpSUJOZ0pvSUFRb0FtUWlCaUFGS0FMWUt5SUpRUUZyU3dSQUlBUWdDVFlDQkNBRUlBWTJBZ0FnQTBFQlFhSW1JQVFRRHlBQVFRRTJBamhCQUNFRkRBVUxJQUVnQmswRVFDQUVJQUUyQWhRZ0JDQUdOZ0lRSUFOQkFVSHBKeUFFUVJCcUVBOGdBRUVCTmdJNFFRQWhCUXdGQ3lBRklBRTJBdGdyQ3lBQklBUW9BbVJCQVdwSERRQWdBQ0FBTFFCRVFRRnlPZ0JFQ3lBRUtBSnNJUUVnQUVFUU5nSUlJQUJCQUNBQlFReHJJQUFvQWpnYk5nSVlBa0FnQUNnQ0xDSUJRWDlHQkVCQkJDRUZJQUlnQnlBSWJHc2lBU0FBS0FJY1NRMEJJQUVnQUNnQ0pFOE5BU0FISUFBb0FpQkpEUUVnQnlBQUtBSW9UMEVDZENFRkRBRUxJQUFvQXN3QklBRkhRUUowSVFVTElBQWdBQzBBUkVIN0FYRWdCWEk2QUVSQkFTRUZJQUFvQXNnQklnRkZEUUlnQVNnQ0tDSUdJQUFvQXN3QklnSkJLR3hxSWdjZ0FqWUNBQ0FISUFRb0FtUWlDRFlDRENBRUtBSm9JZ0VFUUNBSElBRTJBZ1FnQnlBRUtBSm9JZ0UyQWdnZ0J5Z0NFQ0lDUlFSQUlBRkJHQkFUSVFFZ0FDZ0N5QUVvQWlnZ0FDZ0N6QUZCS0d4cUlBRTJBaEFnQVEwRVFRQWhCU0FEUVFGQnlUUkJBQkFQREFRTElBSWdBVUVZYkJBWElRRWdBQ2dDeUFFb0FpZ2dBQ2dDekFGQktHeHFJUUlnQVVVRVFDQUNLQUlRRUJCQkFDRUZJQUFvQXNnQktBSW9JQUFvQXN3QlFTaHNha0VBTmdJUUlBTkJBVUhKTkVFQUVBOE1CQXNnQWlBQk5nSVFEQU1MSUFjb0FoQWlBVVVFUUNBSFFRbzJBZ2hCQ2tFWUVCTWhBU0FBS0FMSUFTZ0NLQ0lHSUFBb0Fzd0JJZ0pCS0d4cUlnY2dBVFlDRUNBQlJRMENJQVFvQW1RaENBc2dDQ0FHSUFKQktHeHFJZ0lvQWdoSkRRSWdBaUFJUVFGcUlnSTJBZ2dnQVNBQ1FSaHNFQmNoQVNBQUtBTElBU2dDS0NBQUtBTE1BVUVvYkdvaEFpQUJSUVJBSUFJb0FoQVFFRUVBSVFVZ0FDZ0N5QUVvQWlnZ0FDZ0N6QUZCS0d4cUlnQkJBRFlDQ0NBQVFRQTJBaEFnQTBFQlFjazBRUUFRRHd3REN5QUNJQUUyQWhBTUFnc2dCQ0FCTmdKQUlBTkJBVUh5MlFBZ0JFRkFheEFQUVFBaEJRd0JDMEVBSVFVZ0IwRUFOZ0lJSUFOQkFVSEpORUVBRUE4TElBUkI4QUJxSkFBZ0JRdXJCd0VJZnlNQVFkQUFheUlFSkFBZ0JFRUJOZ0pNQWtBQ1FDQUFLQUxJQVNJRktBSW9JZ01OQUNBRklBQW9BbXdnQUNnQ2FHd2lBellDSkNBRFFTZ1FFeUVESUFBb0FzZ0JJZ1VnQXpZQ0tDQURSUVJBUVFBaEJRd0NDeUFGS0FJa1JRMEFBMEJCQUNFRklBTWdCa0VvYkNJSGFpSURRUUEyQWhRZ0EwSGtBRFlDSEVIa0FFRVlFQk1oQ1NBSElBQW9Bc2dCSWdnb0FpZ2lBMm9nQ1RZQ0dDQUpSUTBDSUFaQkFXb2lCaUFJS0FJa1NRMEFDd3NnQUNnQ0xDRUpBa0FnQXlnQ0VFVU5BQUpBSUFNZ0NVRW9iR29pQXlnQ0JFVUVRQ0FCSUFBcEF6QkNBbndnQWhBMkRRRkJBQ0VGSUFKQkFVR25LVUVBRUE4TUF3c2dBU0FES0FJUUtRTUFRZ0o4SUFJUU5nMEFRUUFoQlNBQ1FRRkJweWxCQUJBUERBSUxJQUFvQWdoQmdBSkhEUUFnQUVFSU5nSUlDd0pBSUFBb0Ftd2dBQ2dDYUd3aUIwVU5BQ0FBS0FLY0FTRUZRUUFoQXlBSFFRaFBCRUFnQjBGNGNTRUlRUUFoQmdOQUlBVWdBMEdNTEd4cVFYODJBdFFySUFVZ0EwRUJja0dNTEd4cVFYODJBdFFySUFVZ0EwRUNja0dNTEd4cVFYODJBdFFySUFVZ0EwRURja0dNTEd4cVFYODJBdFFySUFVZ0EwRUVja0dNTEd4cVFYODJBdFFySUFVZ0EwRUZja0dNTEd4cVFYODJBdFFySUFVZ0EwRUdja0dNTEd4cVFYODJBdFFySUFVZ0EwRUhja0dNTEd4cVFYODJBdFFySUFOQkNHb2hBeUFHUVFocUlnWWdDRWNOQUFzTElBZEJCM0VpQmtVTkFBTkFJQVVnQTBHTUxHeHFRWDgyQXRRcklBTkJBV29oQXlBS1FRRnFJZ29nQmtjTkFBc0xRUUFoQlNBQUlBUkJ5QUJxUVFBZ0JFSEVBR29nQkVGQWF5QUVRVHhxSUFSQk9Hb2dCRUUwYWlBRVFjd0FhaUFCSUFJUUowVU5BQ0FKUVFGcUlRY0RRQUpBSUFRb0FreEZEUUFnQUNBRUtBSklJZ05CQUVFQUlBRWdBaEFyUlEwQ0lBQW9BbWdoQ0NBQUtBSnNJUW9nQkNBRFFRRnFJZ1kyQWlBZ0JDQUlJQXBzTmdJa0lBSkJCRUdnMXdBZ0JFRWdhaEFQSUFBb0F0QUJJQUFvQWt3b0FoZ1FkRVVOQWlBQUtBS2NBU0FEUVl3c2JHb2lCU2dDM0NzaUNBUkFJQWdRRUNBRlFnQTNBdHdyQ3lBRUlBWTJBaEFnQWtFRVFlYjhBQ0FFUVJCcUVBOGdBeUFKUmdSQUlBRWdBQ2dDeUFFcEF3aENBbndnQWhBMkRRRkJBQ0VGSUFKQkFVR25LVUVBRUE4TUF3c2dCQ0FITmdJRUlBUWdCallDQUNBQ1FRSkIzZVVBSUFRUUQwRUFJUVVnQUNBRVFjZ0Fha0VBSUFSQnhBQnFJQVJCUUdzZ0JFRThhaUFFUVRocUlBUkJOR29nQkVITUFHb2dBU0FDRUNjTkFRd0NDd3NnQUNBQ0VISWhCUXNnQkVIUUFHb2tBQ0FGQzhnR0FnZC9BWDRqQUVIUUFHc2lBeVFBSUFOQkFUWUNUQUpBQWtBZ0FDZ0NhQ0lFUVFGSERRQWdBQ2dDYkVFQlJ3MEFJQUFvQWxRTkFDQUFLQUpZRFFBZ0FDZ0NUQ0lGS0FJQURRQWdCU2dDQkEwQUlBVW9BZ2dnQUNnQ1hFY05BQ0FGS0FJTUlBQW9BbUJIRFFCQkFDRUVJQUFnQTBISUFHcEJBQ0FEUWNRQWFpQURRVUJySUFOQlBHb2dBMEU0YWlBRFFUUnFJQU5CekFCcUlBRWdBaEFuUlEwQkFrQWdBQ0FES0FKSVFRQkJBQ0FCSUFJUUt3UkFJQUFvQWt3aUFTZ0NFQTBCUVFFaEJBd0RDeUFDUVFGQmtjSUFRUUFRRHd3Q0N5QUJLQUlZSVFGQkFDRUNBMEFnQVNBQ1FUUnNJZ1JxS0FJc0VCQWdBQ2dDVENJRktBSVlJZ0VnQkdvaUJpQUFLQUxRQVNJSEtBSVVLQUlBS0FJVUlBSkJ6QUJzYWlJSUtBSWtOZ0lzSUFZZ0J5Z0NHQ2dDR0NBRWFpZ0NKRFlDSkNBSVFRQTJBaVJCQVNFRUlBSkJBV29pQWlBRktBSVFTUTBBQ3d3QkN3TkFBa0FDZndKQUlBUkJBVWNOQUNBQUtBSnNRUUZIRFFBZ0FDZ0NuQUVvQXR3clJRMEFJQU5CQURZQ1NDQUFRUUEyQXN3QklBQWdBQ2dDQ0VHQUFYSTJBZ2hCQUF3QkMwRUFJUVFnQUNBRFFjZ0Fha0VBSUFOQnhBQnFJQU5CUUdzZ0EwRThhaUFEUVRocUlBTkJOR29nQTBITUFHb2dBU0FDRUNkRkRRTWdBeWdDVEVVTkFTQURLQUpJQ3lJSFFRRnFJUVFnQUNBSFFRQkJBQ0FCSUFJUUt5RUpJQUFvQW1nZ0FDZ0NiR3doQlNBSlJRUkFJQU1nQlRZQ0JDQURJQVEyQWdBZ0FrRUJRWmM1SUFNUUQwRUFJUVFNQXdzZ0F5QUZOZ0lrSUFNZ0JEWUNJQ0FDUVFSQm9OY0FJQU5CSUdvUUR5QUFLQUxRQVNBQUtBSk1LQUlZRUhSRkJFQkJBQ0VFREFNTEFrQUNRQ0FBS0FKb1FRRkhEUUFnQUNnQ2JFRUJSdzBBSUFBb0Frd2lCU2dDQUNBQUtBSklJZ1lvQWdCSERRRWdCU2dDQkNBR0tBSUVSdzBCSUFVb0FnZ2dCaWdDQ0VjTkFTQUZLQUlNSUFZb0FneEhEUUVMSUFBb0Fwd0JJQWRCakN4c2FpSUZLQUxjS3lJR1JRMEFJQVlRRUNBRlFnQTNBdHdyQ3lBRElBUTJBaEFnQWtFRVFlYjhBQ0FEUVJCcUVBOGdBU2tEQ0NJS1VBUitRZ0FGSUFvZ0FTa0RPSDBMVUFSQUlBQW9BZ2hCd0FCR0RRRUxJQWhCQVdvaUNDQUFLQUpvSWdRZ0FDZ0NiR3hIRFFFTEN5QUFJQUlRY2lFRUN5QURRZEFBYWlRQUlBUUx0UVlCREg4Z0FDZ0NTQ0VKQWtBZ0FDZ0NhQ0FBS0FKc2JDSU1CRUFnQ1NnQ0VDSUJRYmdJYkNFTklBRWdBV3hCQW5RaENpQUFLQUlNSVFRZ0FDZ0NuQUVoQXdOQUlBTW9BdEFySVFzZ0F5QUVRWXdzRUJJaUFVRUFOZ0xvS3lBQlFYODJBdFFySUFGQkFEWUNzQ2dnQVVFQU5nS0VMQ0FCUVFBMkF2QXJJQUZDQURjQytDc2dBU0FMTmdMUUt5QUJJQUV0QUlnc1Fmd0JjVG9BaUN3Z0JDZ0M2Q3NFUUNBQklBb1FGQ0lETmdMb0t5QURSUVJBUVFBUEN5QURJQVFvQXVncklBb1FFaG9MSUFFZ0JDZ0MrQ3RCRkd3aUJSQVVJZ00yQXZBclFRQWhDQ0FEUlEwQ0lBTWdCQ2dDOENzZ0JSQVNHaUFFS0FMMEt5SUdCRUFnQkNnQzhDc2hBeUFCS0FMd0t5RUZRUUFoQndOQUlBTW9BZ3dFUUNBRklBTW9BaEFRRkNJR05nSU1JQVpGQkVCQkFBOExJQVlnQXlnQ0RDQURLQUlRRUJJYUlBUW9BdlFySVFZTElBRWdBU2dDK0N0QkFXbzJBdmdySUFWQkZHb2hCU0FEUVJScUlRTWdCMEVCYWlJSElBWkpEUUFMQ3lBQklBUW9Bb1FzUVJSc0lnVVFGQ0lETmdMOEt5QURSUTBDSUFNZ0JDZ0MvQ3NnQlJBU0dpQUJJQVFvQW9Rc0lnZzJBb1FzSUFnRVFDQUVLQUw4S3lFRElBRW9BdndySVFWQkFDRUhBMEFnQXlnQ0NDSUdCRUFnQlNBQktBTHdLeUFHSUFRb0F2QXJhMm8yQWdnTElBTW9BZ3dpQmdSQUlBVWdBU2dDOENzZ0JpQUVLQUx3SzJ0cU5nSU1DeUFGUVJScUlRVWdBMEVVYWlFRElBZEJBV29pQnlBSVJ3MEFDd3NnQ3lBRUtBTFFLeUFORUJJYUlBRkJqQ3hxSVFNZ0RrRUJhaUlPSUF4SERRQUxDMEVCSVFnZ0FBSi9RUUJCQVVISUFCQVRJZ0ZGRFFBYUlBRWdBUzBBS0VIK0FYRkJBWEk2QUNnZ0FVRUJRUVFRRXlJRU5nSVVJQUVnQkEwQUdpQUJFQkJCQUFzaUFUWUMwQUVnQVVVRVFFRUFEd3NnQUNnQzFBRWhCVUVBSVFRZ0FTQUFRZEFBYWpZQ0hDQUJJQWsyQWhoQkFVSFFCaEFUSVFNZ0FTZ0NGQ0FETmdJQUFrQWdBMFVOQUNBSktBSVFRY3dBRUJNaEF5QUJLQUlVS0FJQUlnY2dBellDRkNBRFJRMEFJQWNnQ1NnQ0VEWUNFQ0FBS0FLa0FTRUVJQUVnQlRZQ0xDQUJJQVEyQWdCQkFTRUVDeUFFRFFBZ0FDZ0MwQUVRVlVFQUlRZ2dBRUVBTmdMUUFTQUNRUUZCd2h0QkFCQVBDeUFJQzlVU0F3eC9BWDBCZmlNQVFUQnJJZ2drQUNBQVFRRTJBZ2dDZndKQUFrQWdBU0FJUVNocUlnVkJBaUFDRUJwQkFrY05BQ0FGSUFoQkxHcEJBaEFSSUFnb0FpeEJ6LzREUncwQUlBQkJBallDQ0NBQUtBTElBU0FCS1FNNFFnSjlJaEEzQXdBZ0NDQVFOd01RSUFKQkJFSHUzZ0FnQ0VFUWFoQVBJQUFvQXNnQklnTXBBd0FoRUNBREtBSVlJZ2RCQVdvaUJTQURLQUlnSWdSTkJFQWdBeWdDSENFRURBSUxJQU1DZnlBRXMwTUFBTWhDa2lJUFF3QUFnRTlkSUE5REFBQUFBR0J4QkVBZ0Q2a01BUXRCQUFzaUJUWUNJQ0FES0FJY0lBVkJHR3dRRnlJRUJFQWdBeUFFTmdJY0lBTW9BaGdpQjBFQmFpRUZEQUlMSUFNb0Fod1FFQ0FEUVFBMkFpQWdBMElBTndNWUlBSkJBVUdwSFVFQUVBOExJQUpCQVVHMTlRQkJBQkFQUVFBTUFRc2dCQ0FIUVJoc2FpSUVRUUkyQWhBZ0JDQVF4RGNEQ0NBRVFjLytBenNCQUNBRElBVTJBaGdnQVNBQUtBSVFRUUlnQWhBYVFRSkhCRUFnQWtFQlFaWVNRUUFRRDBFQURBRUxJQUFvQWhBZ0NFRW9ha0VDRUJFQ1FBSkFJQWdvQWlnaUJFR1Evd05IQkVBRFFFSGd2UUVoQnlBRVFmLzlBMDBFUUNBSUlBUTJBZ0FnQWtFQlFjb1FJQWdRRDBFQURBVUxBMEFnQnlJRktBSUFJZ01FUUNBRlFReHFJUWNnQXlBRVJ3MEJDd3NDUUFKQUlBTU5BRUVDSVFZZ0FrRUNRZlVjUVFBUUQwR1dFaUVIQWtBQ1FDQUJJQUFvQWhCQkFpQUNFQnBCQWtjTkFBTkFJQUFvQWhBZ0NFRXNha0VDRUJGQjRMMEJJUU1nQ0NnQ0xDSUVRWUQrQTA4RVFBTkFJQU1pQlNnQ0FDSU1CRUFnQTBFTWFpRURJQVFnREVjTkFRc0xJQVVvQWdRZ0FDZ0NDSEZGQkVCQi9DZ2hCd3dEQ3lBTUJFQWdERUdRL3dOR0JFQWdDRUdRL3dNMkFpZ01Cd3NnQVNrRE9DRVFJQUFvQXNnQklnTW9BaGdpQlVFQmFpSUVJQU1vQWlBaUIwMEVRQ0FES0FJY0lRY01CUXNnQXdKL0lBZXpRd0FBeUVLU0lnOURBQUNBVDEwZ0QwTUFBQUFBWUhFRVFDQVBxUXdCQzBFQUN5SUZOZ0lnSUFNb0Fod2dCVUVZYkJBWElnY0VRQ0FESUFjMkFod2dBeWdDR0NJRlFRRnFJUVFNQlFzZ0F5Z0NIQkFRSUFOQkFEWUNJQ0FEUWdBM0F4aEJxUjBoQnd3REN5QUdRUUpxSVFZTElBRWdBQ2dDRUVFQ0lBSVFHa0VDUmcwQUN3c2dBa0VCSUFkQkFCQVBJQUpCQVVIOXlBQkJBQkFQUVFBTUJ3c2dCeUFGUVJoc2FpSUZJQVkyQWhBZ0JTQVFweUFHYTZ3M0F3Z2dCVUVBT3dFQUlBTWdCRFlDR0NBSUlBdzJBaWhCNEwwQklRUURRQ0FFSWdVb0FnQWlBMFVOQVNBRVFReHFJUVFnQXlBTVJ3MEFDd3NnQlNnQ0JDQUFLQUlJY1VVRVFDQUNRUUZCL0NoQkFCQVBRUUFNQmdzZ0FTQUFLQUlRUVFJZ0FoQWFRUUpIQkVBZ0FrRUJRWllTUVFBUUQwRUFEQVlMSUFBb0FoQWdDRUVrYWtFQ0VCRWdDQ2dDSkNJRVFRRk5CRUFnQWtFQlFhRXVRUUFRRDBFQURBWUxJQWdnQkVFQ2F5SUhOZ0lrSUFBb0FoQWhCQ0FBS0FJVUlBZEpCRUFnQkNBSEVCY2lCRVVFUUNBQUtBSVFFQkFnQUVJQU53TVFJQUpCQVVIVUpVRUFFQTlCQUF3SEN5QUFJQVEyQWhBZ0FDQUlLQUlrSWdjMkFoUUxJQUVnQkNBSElBSVFHaUlFSUFnb0FpUkhCRUFnQWtFQlFaWVNRUUFRRDBFQURBWUxJQUFnQUNnQ0VDQUVJQUlnQlNnQ0NCRUJBRVVFUUNBQ1FRRkJxQkpCQUJBUFFRQU1CZ3NnQVNrRE9DRVFJQWdvQWlRaERBSkFJQUFvQXNnQklnVW9BaGdpQmtFQmFpSUhJQVVvQWlBaUJFMEVRQ0FGS0FJY0lRUU1BUXNnQlFKL0lBU3pRd0FBeUVLU0lnOURBQUNBVDEwZ0QwTUFBQUFBWUhFRVFDQVBxUXdCQzBFQUN5SUVOZ0lnSUFVb0Fod2dCRUVZYkJBWElnUkZEUVVnQlNBRU5nSWNJQVVvQWhnaUJrRUJhaUVIQ3lBRUlBWkJHR3hxSWdRZ0RFRUVhallDRUNBRUlCQ25JQXhyUVFScnJEY0RDQ0FFSUFNN0FRQWdCU0FITmdJWUlBRWdBQ2dDRUVFQ0lBSVFHa0VDUndSQUlBSkJBVUdXRWtFQUVBOUJBQXdHQzBFQklBb2dBMEhjL2dOR0d5RUtRUUVnQ3lBRFFkTCtBMFliSVF0QkFTQU5JQU5CMGY0RFJoc2hEU0FBS0FJUUlBaEJLR3BCQWhBUklBZ29BaWdpQkVHUS93TkhEUUVMQ3lBTkRRRUxJQUpCQVVHWUpFRUFFQTlCQUF3Q0N5QUxSUVJBSUFKQkFVSEdKRUVBRUE5QkFBd0NDeUFLUlFSQUlBSkJBVUgwSkVFQUVBOUJBQXdDQzBFQUlRTkJBQ0VOSXdCQkVHc2lCQ1FBUVFFaEJ3SkFJQUF0QUx3QlFRRnhSUTBBQWtBZ0FDZ0NjQ0lMUlEwQUFrQURRQ0FBS0FKMElBMUJBM1JxSWdVb0FnQWlDZ1JBSUFNZ0JTZ0NCQ0lHYXlJRlFRQWdBeUFGVHhzaEJTQURJQVpKQkVBZ0JpQURheUVMSUFNZ0Ntb2hDZ05BSUF0QkJFa0VRRUdPS3lFRERBVUxJQW9nQkVFTWFrRUVFQkVnQkNnQ0RDSURRWDl6SUFsSkJFQkI5Q29oQXd3RkN5QURJQXRCQkdzaUJtc2dCU0FESUFaTElnd2JJUVVnQXlBSmFpRUpJQVlnQTJzaEN5QUtRUUFnQXlBTUcycEJCR29oQ2lBRElBWkpEUUFMSUFBb0FuQWhDd3NnQlNFREN5QU5RUUZxSWcwZ0Mwa05BQXNnQTBVTkFVRUFJUWNnQWtFQlFla1dRUUFRRHd3Q0MwRUFJUWNnQWtFQklBTkJBQkFQREFFTElBQWdDUkFVSWdNMkFvZ0JJQU5GQkVCQkFDRUhJQUpCQVVHK0lFRUFFQThNQVFzZ0FDQUpOZ0o4SUFBb0FuUWhCZ0pBSUFBb0FuQWlDZ1JBUVFBaENVRUFJUU5CQUNFRkEwQWdCaUFGUVFOMElnMXFJZ3dvQWdBaUN3UkFJQUFvQW9nQklBTnFJUW9DZnlBTUtBSUVJZ1lnQ1UwRVFDQUtJQXNnQmhBU0dpQURJQVpxSVFNZ0NTQUdhd3dCQ3lBS0lBc2dDUkFTR2lBRElBbHFJUU1nQmlBSmF5SUdCRUFnQ1NBTGFpRUpBMEFnQmtFRVNRMEdJQWtnQkVFSWFrRUVFQkVnQ1VFRWFpRUpJQUFvQW9nQklBTnFJUW9nQmtFRWF5SUdJQVFvQWdnaUMwa0VRQ0FLSUFrZ0JoQVNHaUFESUFacUlRTWdCQ2dDQ0NBR2F3d0RDeUFLSUFrZ0N4QVNHaUFFS0FJSUlnb2dBMm9oQXlBSklBcHFJUWtnQmlBS2F5SUdEUUFMQzBFQUN5RUpJQUFvQW5RZ0RXb29BZ0FRRUNBQUtBSjBJZ1lnRFdwQ0FEY0NBQ0FBS0FKd0lRb0xJQVZCQVdvaUJTQUtTUTBBQ3lBQUtBSjhJUWtnQUNnQ2lBRWhBd3NnQUNBSk5nS1FBU0FBSUFNMkFuZ2dBRUVBTmdKd0lBWVFFQ0FBUVFBMkFuUU1BUXRCQUNFSElBSkJBVUdPSzBFQUVBOExJQVJCRUdva0FDQUhSUVJBSUFKQkFVR1BQVUVBRUE5QkFBd0NDeUFDUVFSQjk5WUFRUUFRRHlBQUtBTElBU0FCS1FNNFF2Ny8vLzhQZkVMLy8vLy9ENE0zQXdnZ0FFRUlOZ0lJUVFFTUFRc2dCU2dDSEJBUUlBVkJBRFlDSUNBRlFnQTNBeGdnQWtFQlFha2RRUUFRRDBFQUN5RU9JQWhCTUdva0FDQU9DeHdBSUFBb0FnaEZJQUFvQXNBQlFRQkhJQUFvQXNRQlFRQkhjWEVMQkFCQkFBc1BBQ0FBQkVBZ0FDQUJOZ0s0QVFzTGp3RUJCSDhnQUNnQ0dDSUJCRUFnQUNnQ0hDSURRVFJ1SVFRZ0EwRTBUd1IvUVFBaEF3TkFJQUVvQWdBaUFnUkFJQUpCQVdzUUVDQUJRUUEyQWdBTElBRW9BZ1FpQWdSQUlBSVFFQ0FCUVFBMkFnUUxJQUVvQWdnaUFnUkFJQUlRRUNBQlFRQTJBZ2dMSUFGQk5Hb2hBU0FEUVFGcUlnTWdCRWNOQUFzZ0FDZ0NHQVVnQVFzUUVDQUFRUUEyQWhnTEM0WUJBUVIvSUFBb0FoZ2lBUVJBSUFBb0Fod2lBa0hBQUU4RWZ5QUNRUVoySVFSQkFDRUNBMEFnQVNnQ0FDSURCRUFnQXhBUUlBRkJBRFlDQUFzZ0FTZ0NCQ0lEQkVBZ0F4QVFJQUZCQURZQ0JBc2dBU2dDUEJBUUlBRkJBRFlDUENBQlFVQnJJUUVnQWtFQmFpSUNJQVJIRFFBTElBQW9BaGdGSUFFTEVCQWdBRUVBTmdJWUN3cy9BUUYvSUFBRVFDQUFLQUowSWdFRVFDQUJFQkFnQUVFQU5nSjBDeUFBS0FKNElnRUVRQ0FCRUJBZ0FFRUFOZ0o0Q3lBQUtBS1VBUkFRSUFBUUVBc0x3YVlGQkZ4L0Fuc0dmZ0Y5SXdCQjRBQnJJaU1rQUNBQUtBSUlJUm9DUUFKQUFrQUNRQ0FBS0FJQVJRUkFJQm9nR2lnQ0VDQWFLQUlJYXlBYUtBSVVJQm9vQWd4cmJFRUNkQ0lHRUJnaUF6WUNQQ0FEUlFSQUlBQW9BaVFhSUFBb0FpQkJBVUhSUEVFQUVBOGdBQ2dDSkJvZ0FFRWNhaUVRREFNTElBTkJBQ0FHRUJVYURBRUxJQm9vQWp3aUEwVU5BQ0FERUJBZ0drRUFOZ0k4Q3lBQUtBSVFJaklvQWh3Z01pZ0NHRUdZQVd4cUlnTkJtQUZyS0FJQUlUVWdBMEdRQVdzb0FnQWhOaUFBS0FJVUlTOGdBQ2dDRENFd0lBQW9BZ1FoTnlBQUtBSWNLQUlBUlEwQ0lBQkJIR29oRUFKQUFuOUJBQ0FCS0FJRUlnTkJBRXdOQUJvZ0FTZ0NBQ0VHQWtBRFFDQUdJQWRCREd4cUlnUW9BZ0JGRFFFZ0IwRUJhaUlISUFOSERRQUxRUUFNQVFzZ0JDZ0NCQXNpQkEwQVFRRkJuQUVRRXlJRVJRUkFJQUFvQWlCQkFVR1FNRUVBRUE4TUFnc2dCRUVBTmdLTUFTQUJLQUlFSWdOQi8vLy8vd2RIQkg4Q2Z5QUJLQUlBSVFZZ0EwRUFTZ1JBQTBBZ0JpQUpRUXhzYWlJSEtBSUFSUVJBSUFjb0FnZ2lBd1IvSUFjb0FnUWdBeEVDQUNBQktBSUFCU0FHQ3lBSlFReHNhaUlCUVE4MkFnZ2dBU0FFTmdJRVFRRU1Bd3NnQ1VFQmFpSUpJQU5IRFFBTEMwRUFJQVlnQTBFTWJFRU1haEFYSWdORkRRQWFJQUVnQXpZQ0FDQURJQUVvQWdRaUJrRU1iR29pQTBFUE5nSUlJQU1nQkRZQ0JDQURRUUEyQWdBZ0FTQUdRUUZxTmdJRVFRRUxCVUVBQ3cwQUlBQW9BaUJCQVVHTVAwRUFFQThnQkNnQ2RDSUJCRUFnQVJBUUlBUkJBRFlDZEFzZ0JDZ0NlQ0lCQkVBZ0FSQVFJQVJCQURZQ2VBc2dCQ2dDbEFFUUVDQUVFQkFNQVFzZ0JDQUFLQUlZTmdLUUFTQUFLQUlvSVNzZ0FDZ0NKQ0VoSUFBb0FpQWhIU0F2S0FLb0JpRVJJREFvQWhBaEFRSkFBa0FnTHlnQ0VDSVdRY0FBY1FSQUlCWWhDaU1BUWJBQ2F5SVBKQUFDUUNBUkJFQWdJUVJBUVFBaEJ5QWRRUUZCZ1JoQkFCQVBEQUlMUVFBaEJ5QWRRUUZCZ1JoQkFCQVBEQUVMSUFRb0FuUWhCd0pBQWtBZ0dpZ0NGQ0FhS0FJTWF5SURJQm9vQWhBZ0dpZ0NDR3NpQm13aUFTQUVLQUtFQVVzRVFDQUhFQkFnQkNBQlFRSjBJaEVRR0NJSE5nSjBJQWRGQkVCQkFDRUhEQVFMSUFRZ0FUWUNoQUVNQVFzZ0IwVU5BU0FCUVFKMElSRUxJQWRCQUNBUkVCVWFDeUFFS0FKNElRY0NRQ0FFS0FLSUFVSFBGRXNOQUNBSEVCQWdCRUhBMGdBUUdDSUhOZ0o0SUFjTkFFRUFJUWNNQVFzZ0JFSFFGRFlDaUFFZ0IwRUFRY0RTQUJBVkdpQUVJQU0yQW9BQklBUWdCallDZkNBYUtBSVlJZ0pGQkVCQkFTRUhEQUVMSUJvb0Fod2hEVUVCSVFjQ1FBSkFBa0FDUUFKQUlCb29BalFpQXdSQUlCb29BZ1FoQ1VFQUlRZEJBQ0VCQWtBZ0EwRUVUd1JBSUFOQmZIRWhBUU5BSUFrZ0NFRURkR29pQmtFY2FpQUdRUlJxSUFaQkRHb2dCdjBKQWdUOVZnSUFBZjFXQWdBQy9WWUNBQU1nWHYydUFTRmVJQWhCQkdvaUNDQUJSdzBBQ3lCZUlGNGdYdjBOQ0FrS0N3d05EZzhBQVFJREFBRUNBLzJ1QVNKZUlGNGdYdjBOQkFVR0J3QUJBZ01BQVFJREFBRUNBLzJ1QWYwYkFDRUhJQUVnQTBZTkFRc0RRQ0FKSUFGQkEzUnFLQUlFSUFkcUlRY2dBVUVCYWlJQklBTkhEUUFMQ3lBRFFRRkdCRUFnQkNnQ2tBRkZEUVVMSUFjZ0JDZ0NtQUZORFFFZ0JDZ0NsQUVnQnhBWEloRU5Ba0VBSVFjTUJnc2dCQ2dDa0FGRkRRVUxJQVFvQXBRQkloRU5BVUVBSVFjTUJBc2dCQ0FITmdLWUFTQUVJQkUyQXBRQkN5QWFLQUkwUlFSQVFRQWhCd3dDQ3lBYUtBSUVJUWhCQUNFSFFRQWhBUU5BSUFjZ0VXb2dDQ0FCUVFOMElnTnFJZ1lvQWdBZ0JpZ0NCQkFTR2lBYUtBSUVJZ2dnQTJvb0FnUWdCMm9oQnlBQlFRRnFJZ0VnR2lnQ05Fa05BQXNNQVFzZ0dpZ0NCQ2dDQUNFUkMwRUFJUUZCQUNFSUFuOUJBQ0FhS0FJb0lnTkZEUUFhSUJvb0FnQWlCaWdDQ0NFSVFRQWdBMEVCUmcwQUdpQUdLQUlnQ3lFRElBSWdEV3NoUlFKQUlBTWdDR29pQ0VVRVFFRUFJUWtNQVF0QkFTRUJJQm9vQWdBaUF5Z0NBQ0VGUVFBaENTQUlRUUZHQkVCQkFDRUJEQUVMSUFNb0FoZ2hDUXNnUlVFQmFpRVdJQVFvQW5RaERpQUVLQUo0SVJRZ0dpZ0NEQ0VTSUJvb0FoUWhHQ0FhS0FJSUlTUWdHaWdDRUNFckFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBRkZEUUFnQ1EwQUlDRkZEUUVnSFVFQ1FhSFFBRUVBRUE5QkFTRUlEQUlMSUFoQkJFa05BU0FoQkVBZ0R5QUlOZ0p3SUIxQkFVSDh4Z0FnRDBId0FHb1FEd3dJQ3lBUElBZzJBbUFnSFVFQlFmekdBQ0FQUWVBQWFoQVBRUUFoQnd3SUN5QWRRUUpCb2RBQVFRQVFEeUFhS0FJWUlnRkJIa3NOQVVFQklRd2dBU0FXVHcwRERBVUxJQm9vQWhnaUFVRWVUUTBCSUNGRkRRQWdEeUFCTmdJZ0lCMUJBVUdiMndBZ0QwRWdhaEFQREFVTElBOGdBVFlDQUNBZFFRRkJtOXNBSUE4UUQwRUFJUWNNQlFzZ0FTQVdTUTBCSUFoQkFra0VRQ0FJSVF3TUFRc2dBU0FXUndSQUlBZ2hEQXdCQzBFQklReEJrTWNCTFFBQURRQWdJVVVFUUVHUXh3RkJBVG9BQUNBUElBZzJBa0FnSFVFQ1FhYk1BQ0FQUVVCckVBOE1BUXRCa01jQkxRQUFSUVJBUVpESEFVRUJPZ0FBSUE4Z0NEWUNVQ0FkUVFKQnBzd0FJQTlCMEFCcUVBOExDd0pBQWtBZ0JVRUNTUTBBSUFVZ0Iwc05BQ0FGSUFscUlBZE5EUUVMSUNFRVFFRUFJUWNnSFVFQlFjTEdBRUVBRUE4TUJRdEJBQ0VISUIxQkFVSEN4Z0JCQUJBUERBUUxBa0FDUUNBRklCRnFJaE5CQVdzdEFBQkJCSFFnRTBFQ2F5MEFBRUVQY1hJaUJrRUNTUTBBSUFVZ0JrZ05BQ0FHUWZBZlNRMEJDeUFoQkVCQkFDRUhJQjFCQVVIVzhnQkJBQkFQREFVTFFRQWhCeUFkUVFGQjF2SUFRUUFRRHd3RUN5QWFLQUljSVNZZ0QwRUFOZ0tRQWlBUFFRQTJBcGdDSUE5Q0FEY0RpQUlnRDBJQU53T29BaUFQUWdBM0Fwd0NJQThnQmtFQmF5SUhOZ0tVQWlBUElBVWdFV29nQm1zaUFUWUNnQUpDL3dFaFlDQUdRUUpQQkVBZ0FURUFBQ0ZnQzBFSUlRTWdEMEVJTmdLUUFpQVBJQVpCQW1zaUNEWUNsQUlnRHlCZ1FnK0VJR0FnQjBFQlJoc2lZRGNEaUFJZ0R5QUJJQVpCQVVwcUlnYzJBb0FDSUE4Z1lFTC9BVkVpRFRZQ21BSUNmd0pBSUFGQkEzRWlBa0VEUmcwQVF2OEJJV0VnRFFSQVFRQWdCeTBBQUVHUEFVc05BaG9MSUFaQkEwNEVRQ0FITVFBQUlXRUxJQThnQmtFRGF5SU5OZ0tVQWlBUFFROUJFQ0JnUXY4QlVTSUxHeUlETmdLUUFpQVBJQWNnQmtFQ1Ntb2lBVFlDZ0FJZ0R5QmhRZytFSUdFZ0NFRUJSaHNpWVVML0FWRTJBcGdDSUE4Z1lFSUhRZ2dnQ3h1R0lHR0VJbUEzQTRnQ0lBSkJBa1lOQUNCaFF2OEJVUVJBUVFBZ0FTMEFBRUdQQVVzTkFob0xRdjhCSVdJZ0JrRUVUZ1JBSUFFeEFBQWhZZ3NnRHlBR1FRUnJJZ2MyQXBRQ0lBOGdBU0FHUVFOS2FpSUJOZ0tBQWlBUElHSkNENFFnWWlBTlFRRkdHeUppUXY4QlVUWUNtQUlnRHlBRFFRZEJDQ0JoUXY4QlVTSUlHMm9pQXpZQ2tBSWdEeUJnUWdkQ0NDQUlHNFlnWW9RaVlEY0RpQUlnQWtFQlJnMEFRdjhCSVdFZ1lrTC9BVkVFUUVFQUlBRXRBQUJCandGTERRSWFDeUFHUVFWT0JFQWdBVEVBQUNGaEN5QVBJQVpCQldzMkFwUUNJQThnQVNBR1FRUkthallDZ0FJZ0R5QmhRZytFSUdFZ0IwRUJSaHNpWVVML0FWRTJBcGdDSUE4Z0EwRUhRUWdnWWtML0FWRWlBUnRxSWdNMkFwQUNJQThnWUVJSFFnZ2dBUnVHSUdHRUltQTNBNGdDQ3lBUElHQkJ3QUFnQTJ1dGhqY0RpQUpCQVF0RkJFQWdJUVJBUVFBaEJ5QWRRUUZCZzlVQVFRQVFEd3dGQzBFQUlRY2dIVUVCUVlQVkFFRUFFQThNQkFzZ0t5QWtheUVWSUE4Z0JrRUNheUlMTmdMMEFTQVBJQVVnRVdvaUFrRURheUlETmdMZ0FTQVBJQUpCQW1zdEFBQWlHVUdQQVVzaURUWUMrQUVnRHlBWlFRUjJyU0pnTndQb0FTQVBRUU5CQkNCZ1FnZURRZ2RSR3lJQk5nTHdBU0FEUVFOeFFRRnFJZ2NnQ3lBSElBdElHeUVJQWtBQ1FDQUdRUUpNQkVBZ0R5QUxJQWhySWdJMkF2UUJEQUVMSUE4Z0FrRUVheUlITmdMZ0FTQVBJQU10QUFBaUYwR1BBVXNpRFRZQytBRWdEeUFYclNKaElBR3RoaUJnaENKZ053UG9BU0FQUVFoQkIwRUlJR0ZDL3dDRFF2OEFVUnNnR1VHUEFVMGJJQUZxSWdFMkF2QUJBa0FnQ0VFQlJnUkFJQWNoQXd3QkN5QVBJQUpCQldzaUF6WUM0QUVnRHlBSExRQUFJaGxCandGTElnMDJBdmdCSUE4Z0dhMGlZU0FCcllZZ1lJUWlZRGNENkFFZ0QwRUlRUWRCQ0NCaFF2OEFnMEwvQUZFYklCZEJqd0ZOR3lBQmFpSUJOZ0x3QVNBSVFRSkdEUUFnRHlBQ1FRWnJJZ2MyQXVBQklBOGdBeTBBQUNJWFFZOEJTeUlOTmdMNEFTQVBJQmV0SW1FZ0FhMkdJR0NFSW1BM0ErZ0JJQTlCQ0VFSFFRZ2dZVUwvQUlOQy93QlJHeUFaUVk4QlRSc2dBV29pQVRZQzhBRWdDRUVEUmdSQUlBY2hBd3dCQ3lBUElBSkJCMnNpQXpZQzRBRWdEeUFITVFBQUltRkNqd0ZXSWcwMkF2Z0JJQThnWVNBQnJZWWdZSVFpWURjRDZBRWdEMEVJUVFkQkNDQmhRdjhBZzBML0FGRWJJQmRCandGTkd5QUJhaUlCTmdMd0FRc2dEeUFMSUFocklnSTJBdlFCSUFGQklFc05BUXNDUUNBQ1FRUk9CRUFnQTBFRGF5Z0NBQ0VISUE4Z0FrRUVhellDOUFFZ0R5QURRUVJyTmdMZ0FRd0JDeUFDUVFCTUJFQkJBQ0VIREFFTElBSkJBWEVoUndKQUlBSkJBVVlFUUVFWUlRaEJBQ0VIREFFTElBSkIvdi8vL3dkeElSZEJHQ0VJUVFBaEIwRUFJUXNEUUNBUElBTkJBV3NpSHpZQzRBRWdBeTBBQUNGR0lBOGdBMEVDYXlJRE5nTGdBU0FQSUFKQkFXczJBdlFCSUI4dEFBQWhIeUFQSUFKQkFtc2lBallDOUFFZ1JpQUlkQ0FIY2lBZklBaEJDR3QwY2lFSElBaEJFR3NoQ0NBTFFRSnFJZ3NnRjBjTkFBc0xJRWRGRFFBZ0R5QURRUUZyTmdMZ0FTQURMUUFBSVVnZ0R5QUNRUUZyTmdMMEFTQklJQWgwSUFkeUlRY0xJQThnQjBIL0FYRWlBMEdQQVVzMkF2Z0JJQTlCQjBFSUlBZEJnSUNBK0FkeFFZQ0FnUGdIUmh0QkNDQU5HeUlDUVFoQkIwRUlJQWRCZ0lEOEEzRkJnSUQ4QTBZYklBZEIvLy8vLzNoTkcyb2lDRUVJUVFkQkNDQUhRWUQrQVhGQmdQNEJSaHNnQjBFUWRrSC9BWEVpRFVHUEFVMGJhaUlMUVFoQkIwRUlJQWRCL3dCeFFmOEFSaHNnQjBFSWRrSC9BWEVpR1VHUEFVMGJJQUZxYWpZQzhBRWdEeUFOSUFKMElBZEJHSFp5SUJrZ0NIUnlJQU1nQzNSeXJTQUJyWVlnWUlRM0ErZ0JDeUFQUWNBQmFpQVJJQVVnQm10Qi93RVFXd0ovUVFBZ0RFRUNTUTBBR2lBUFFhQUJhaUFUSUFsQkFCQmJRUUFnREVFQ1JnMEFHa0lBSVdCQ0FDRmlJQTlCQVRZQ21BRWdEMEVBTmdLUUFTQVBRZ0EzQTRnQklBOGdDVUVCYXlJR05nS1VBU0FQSUFVZ0VXb2dDV29pQTBFQmF5SUJOZ0tBQVNBQlFRTnhJUVVDUUNBSlFRQk1CRUFnQVNFRERBRUxJQThnQTBFQ2F5SUROZ0tBQVNBQk1RQUFJV0FMSUE4Z1lEY0RpQUVnRHlCZ1FvOEJWaUlSTmdLWUFTQVBRUWRCQ0NCZ1F2OEFnMEwvQUZFYklnMDJBcEFCQWtBZ0JVVU5BQ0FQSUFsQkFtc2lBallDbEFFQ1FDQUpRUUpJQkVBZ0F5RUhEQUVMSUE4Z0EwRUJheUlITmdLQUFTQURNUUFBSVdJTElBOGdZa0tQQVZZaUVUWUNtQUVnRHlCaUlBMnRoaUJnaENKaE53T0lBU0FQUVFoQkIwRUlJR0pDL3dDRFF2OEFVUnNnWUVLUEFWZ2JJQTFxSWcwMkFwQUJJQVZCQVVZRVFDQUhJUU1nWVNGZ0lBWWhDU0FDSVFZTUFRc2dEeUFKUVFOcklnZzJBcFFCQWtBZ0NVRURTQVJBSUFjaEFRd0JDeUFQSUFkQkFXc2lBVFlDZ0FFZ0J6RUFBQ0ZqQ3lBUElHTkNqd0ZXSWhFMkFwZ0JJQThnWXlBTnJZWWdZWVFpWURjRGlBRWdEMEVJUVFkQkNDQmpRdjhBZzBML0FGRWJJR0pDandGWUd5QU5haUlOTmdLUUFTQUZRUUpHQkVBZ0FTRURJQUloQ1NBSUlRWU1BUXNnRHlBSlFRUnJJZ1kyQXBRQlFnQWhZZ0pBSUFsQkJFZ0VRQ0FCSVFNTUFRc2dEeUFCUVFGcklnTTJBb0FCSUFFeEFBQWhZZ3NnRHlCaVFvOEJWaUlSTmdLWUFTQVBJR0lnRGEyR0lHQ0VJbUEzQTRnQklBOUJDRUVIUVFnZ1lrTC9BSU5DL3dCUkd5QmpRbzhCV0JzZ0RXb2lEVFlDa0FFZ0NDRUpDeUFOUVNCTkJFQUNRQ0FKUVFWT0JFQWdBMEVEYXlnQ0FDRUhJQThnQ1VFRmF6WUNsQUVnRHlBRFFRUnJOZ0tBQVF3QkMwRUFJUWNnQ1VFQ1NBMEFRUmdoQ1FOQUlBOGdBMEVCYXlJQk5nS0FBU0FETFFBQUlVa2dEeUFHUVFGcklnSTJBcFFCSUVrZ0NYUWdCM0loQnlBR1FRRkxJVW9nQVNFRElBbEJDR3NoQ1NBQ0lRWWdTZzBBQ3dzZ0R5QUhRZjhCY1NJQlFZOEJTellDbUFFZ0QwRUhRUWdnQjBHQWdJRDRCM0ZCZ0lDQStBZEdHMEVJSUJFYklnTkJDRUVIUVFnZ0IwR0FnUHdEY1VHQWdQd0RSaHNnQjBILy8vLy9lRTBiYWlJR1FRaEJCMEVJSUFkQmdQNEJjVUdBL2dGR0d5QUhRUkIyUWY4QmNTSUpRWThCVFJ0cUlnSkJDRUVIUVFnZ0IwSC9BSEZCL3dCR0d5QUhRUWgyUWY4QmNTSUlRWThCVFJzZ0RXcHFOZ0tRQVNBUElBa2dBM1FnQjBFWWRuSWdDQ0FHZEhJZ0FTQUNkSEt0SUEydGhpQmdoRGNEaUFFTFFRRUxJVEVnR0NBU2F5RWZJQlpCQVdvaExDQVVRUUE2QU1BUUlCUkJ3QkJxSVFzZ0QwR0FBbW9RS0NFQ0lCVkJBRW9FUUNBbVFRRnJJUk1nRkNFRElBc2hDRUVBSVJFZ0RpRUdRUUFoRFFOQUlBMGhCU0FSUVFoMElBOUI0QUZxRUM5Qi93QnhRUUYwY2tHZy9RQnFMd0VBSVFFQ1FDQVJEUUFnQVVFQUlBSkJBbXNpQjBGL1Joc2hBU0FDUVFGS0JFQWdCeUVDREFFTElBOUJnQUpxRUNnaEFnc2dEeWtENkFFaFpDQVBLQUx3QVNGTElBTWdBeWdDQUNBQlFRUjJJaGhCQTNFZ0FVRUNka0V3Y1hJZ0luUnlJaFkyQWdBZ0FVRUZka0VIY1NBQlFSQnhJaDVCQkhaeUlSRWdTeUFCUVFkeElnZHJJUTBnWkNBSHJZZ2lZS2NoQ1VFQUlRY2dGU0FGUVFKeVNnUkFJQkZCQ0hRZ0NVSC9BSEZCQVhSeVFhRDlBR292QVFBaEJ3SkFJQkVOQUNBSFFRQWdBa0VDYXlJSlFYOUdHeUVISUFKQkFVb0VRQ0FKSVFJTUFRc2dEMEdBQW1vUUtDRUNDeUFIUVFSMlFRRnhJQWRCQlhaQkIzRnlJUkVnRFNBSFFRZHhJZ2xySVEwZ1lDQUpyWWdpWUtjaENRc2dBeUFIUVFKMFFZQUdjU0FIUVRCeGNpQWlRUVJxZENBV2NqWUNBQUpBSUFkQkFuWkJBbkVnQVVFRGRrRUJjWElpRjBFRFJ3MEFRUVJCQXlBQ1FRSnJJaFpCZjBZYklSY2dBa0VCU2dSQUlCWWhBZ3dCQ3lBUFFZQUNhaEFvSVFJTEFuOGdGMFVFUUNBUFFvR0FnSUFRTndKNFFRQU1BUXNnRjBFQ1RRUkFJQTlCQVNBSlFRZHhRZFNkQVdvdEFBQWlGa0VGZGtGL0lCWkJBblpCQjNFaUdYUkJmM01nQ1NBV1FRTnhJZ2wyY1dwQkFXb2lGaUFYUVFGR0loY2JOZ0o4SUE4Z0ZrRUJJQmNiTmdKNElBa2dHV29NQVFzZ0NTQUpRUWR4UWRTZEFXb3RBQUFpRmtFRGNTSVpkaUVKSUJkQkEwWUVRQ0FXUVFWMlFRRnFJUmNnR1VFRFJnUkFJQThnQ1VFQmNVRUNjallDZkNBUElCZEJmeUFXUVFKMlFRZHhJaFowUVg5eklBbEJBWFp4YWpZQ2VDQVdRUVJxREFJTElBOGdGeUFKSUFsQkIzRkIxSjBCYWkwQUFDSUpRUU54SWhKMklpQkJmeUFXUVFKMlFRZHhJaFowUVg5emNXbzJBbmdnRDBGL0lBbEJBblpCQjNFaUYzUkJmM01nSUNBV2RuRWdDVUVGZG1wQkFXbzJBbndnRmlBWmFpQVNhaUFYYWd3QkN5QVBJQWtnQ1VFSGNVSFVuUUZxTFFBQUlnbEJBM0VpRW5ZaUlFRi9JQlpCQW5aQkIzRWlGM1JCZjNOeElCWkJCWFpxUVFOcU5nSjRJQTlCZnlBSlFRSjJRUWR4SWhaMFFYOXpJQ0FnRjNaeElBbEJCWFpxUVFOcU5nSjhJQklnR1dvZ0Yyb2dGbW9MSVFrQ1FDQXNJQThvQW5naUdVOEVRQ0FQS0FKOEloSWdMRTBOQVFzZ0lRUkFRUUFoQnlBZFFRRkJtZllBUVFBUUR3d0hDMEVBSVFjZ0hVRUJRWm4yQUVFQUVBOE1CZ3NnRHlBTklBbHJOZ0x3QVNBUElHQWdDYTJJTndQb0FTQUhRZkFCY1NBWVFROXhja0gvQVVIL0FTQUZRUVJxSWcwZ0ZXdEJBWFIySUEwZ0ZVd2JJZ2tnQ1VIVkFIRWdIMEVCU2hzaUNVRi9jM0VFUUNBaEJFQkJBQ0VISUIxQkFVR3YyZ0JCQUJBUERBY0xRUUFoQnlBZFFRRkJyOW9BUVFBUUR3d0dDd0pBQWtBZ0hnUkFJQTlCd0FGcUVCc2hGeUFQSUE4b0F0QUJJQmtnQVVFVGRFRWZkV29pRm1zMkF0QUJJQThnRHlrRHlBRWdGcTJJTndQSUFTQVhRWDhnRm5SQmYzTnhJQUZCQ0haQkFYRWdGblJ5UVFGeVFRSnFJQk4wSUJkQkgzUnlJUllNQVF0QkFDRVdJQWxCQVhGRkRRRUxJQVlnRmpZQ0FBc0NRQ0FCUVNCeEJFQWdEMEhBQVdvUUd5RVhJQThnRHlnQzBBRWdHU0FCUVJKMFFSOTFhaUlXYXpZQzBBRWdEeUFQS1FQSUFTQVdyWWczQThnQklBWWdGVUVDZEdvZ0YwRi9JQlowUVg5emNTQUJRUWwyUVFGeElCWjBja0VCY2lJV1FRSnFJQk4wSUJkQkgzUnlOZ0lBSUFoQklDQVdaMnNpRmlBSUxRQUFRZjhBY1NJWElCWWdGMHNiUVlBQmNqb0FBQXdCQ3lBSlFRSnhSUTBBSUFZZ0ZVRUNkR3BCQURZQ0FBc2dCa0VFYWlFWEFrQUNRQ0FCUWNBQWNRUkFJQTlCd0FGcUVCc2hHQ0FQSUE4b0F0QUJJQmtnQVVFUmRFRWZkV29pRm1zMkF0QUJJQThnRHlrRHlBRWdGcTJJTndQSUFTQVlRWDhnRm5SQmYzTnhJQUZCQ25aQkFYRWdGblJ5UVFGeVFRSnFJQk4wSUJoQkgzUnlJUllNQVF0QkFDRVdJQWxCQkhGRkRRRUxJQmNnRmpZQ0FBc2dDRUVBT2dBQkFrQWdBVUdBQVhFRVFDQVBRY0FCYWhBYklSZ2dEeUFQS0FMUUFTQVpJQUZCRUhSQkgzVnFJaFpyTmdMUUFTQVBJQThwQThnQklCYXRpRGNEeUFFZ0Z5QVZRUUowYWlBWVFYOGdGblJCZjNOeElBRkJDM1pCQVhFZ0ZuUnlRUUZ5SWdGQkFtb2dFM1FnR0VFZmRISTJBZ0FnQ0VHZ2Z5QUJaMnM2QUFFTUFRc2dDVUVJY1VVTkFDQVhJQlZCQW5ScVFRQTJBZ0FMSUFaQkNHb2hBUUpBQWtBZ0IwRVFjUVJBSUE5QndBRnFFQnNoR1NBUElBOG9BdEFCSUJJZ0IwRVRkRUVmZFdvaUZtczJBdEFCSUE4Z0R5a0R5QUVnRnEySU53UElBU0FaUVg4Z0ZuUkJmM054SUFkQkNIWkJBWEVnRm5SeVFRRnlRUUpxSUJOMElCbEJIM1J5SVJjTUFRdEJBQ0VYSUFsQkVIRkZEUUVMSUFFZ0Z6WUNBQXNDUUNBSFFTQnhCRUFnRDBIQUFXb1FHeUVaSUE4Z0R5Z0MwQUVnRWlBSFFSSjBRUjkxYWlJV2F6WUMwQUVnRHlBUEtRUElBU0FXcllnM0E4Z0JJQUVnRlVFQ2RHb2dHVUYvSUJaMFFYOXpjU0FIUVFsMlFRRnhJQlowY2tFQmNpSUJRUUpxSUJOMElCbEJIM1J5TmdJQUlBaEJJQ0FCWjJzaUFTQUlMUUFCUWY4QWNTSVdJQUVnRmtzYlFZQUJjam9BQVF3QkN5QUpRU0J4UlEwQUlBRWdGVUVDZEdwQkFEWUNBQXNnQmtFTWFpRUJBa0FDUUNBSFFjQUFjUVJBSUE5QndBRnFFQnNoR1NBUElBOG9BdEFCSUJJZ0IwRVJkRUVmZFdvaUZtczJBdEFCSUE4Z0R5a0R5QUVnRnEySU53UElBU0FaUVg4Z0ZuUkJmM054SUFkQkNuWkJBWEVnRm5SeVFRRnlRUUpxSUJOMElCbEJIM1J5SVJjTUFRdEJBQ0VYSUFsQndBQnhSUTBCQ3lBQklCYzJBZ0FMSUFoQkFtb2lDRUVBT2dBQUFrQWdCMEdBQVhFRVFDQVBRY0FCYWhBYklSWWdEeUFQS0FMUUFTQVNJQWRCRUhSQkgzVnFJZ2xyTmdMUUFTQVBJQThwQThnQklBbXRpRGNEeUFFZ0FTQVZRUUowYWlBV1FYOGdDWFJCZjNOeElBZEJDM1pCQVhFZ0NYUnlRUUZ5SWdGQkFtb2dFM1FnRmtFZmRISTJBZ0FnQ0VHZ2Z5QUJaMnM2QUFBTUFRc2dDVUdBQVVrTkFDQUJJQlZCQW5ScVFRQTJBZ0FMSUNKQkVITWhJaUFESUFWQkJIRnFJUU1nQmtFUWFpRUdJQTBnRlVnTkFBc0xJQXBCQ0hFaE9DQVVRYkFNYWlFb0lCUkJvQWhxSVNrZ0ZFR1FCR29oSlNBZlFRTk9CRUFnRlVFRGJDRTVJQlZCQVhRaE9pQW1RUUZySVNCQkF5QW1RUUpySWdGMElTMUJBU0FCZENFdUlCVkJCMnBCQVhaQi9QLy8vd2R4UVFScUlUMGdLeUFrUVg5emFpSUJRUU4ySWdOQkFuUWlQa0VFYWlFN0lBTkJBV29pUDBIOC8vLy9BM0VpSEVFQ2RDRThJQnhCQTNRaEVpQUJRUmhKSVVCQkFpRVpBMEFnR1NFVElBc3RBQUFoRmlBTFFRQTZBQUFnSWtGdmNVRUNjeUVpQWtBZ0ZVRUFUQVJBSUJOQkFtb2hHUXdCQ3lBbElCUWdFMEVFY1JzaEVTQVRRUUpxSVJrZ0RpQVRJQlZzUVFKMGFpRUlRUUFoQ2lBTElRWkJBQ0VOQTBBZ0RTRUZJQVl0QUFGQkJYWkJCSEVnQ2lBV1FRZDJjbklpQTBFSWRDQVBRZUFCYWhBdlFmOEFjVUVCZEhKQm9JMEJhaThCQUNFQkFrQWdBdzBBSUFGQkFDQUNRUUpySWdOQmYwWWJJUUVnQWtFQlNnUkFJQU1oQWd3QkN5QVBRWUFDYWhBb0lRSUxJQThwQStnQklXVWdEeWdDOEFFaFRDQVJJQkVvQWdBZ0FVRUVka0VEY1NBQlFRSjJRVEJ4Y2lBaWRISWlDVFlDQUNBQlFjQUFjU0lxUVFWMklBRkJnQUZ4SWlkQkJuWnlJUW9nVENBQlFRZHhJZ05ySVJjZ1pTQURyWWdpWUtjaERVRUFJUmdDUUNBVklBVkJBbkpNQkVCQkFDRUhEQUVMSUFvZ0JpMEFBa0VGZGtFRWNTQUdMUUFCUVFkMmNuSWlBMEVJZENBTlFmOEFjVUVCZEhKQm9JMEJhaThCQUNFSEFrQWdBdzBBSUFkQkFDQUNRUUpySWdOQmYwWWJJUWNnQWtFQlNnUkFJQU1oQWd3QkN5QVBRWUFDYWhBb0lRSUxJQWRCQlhZZ0IwRUdkbkpCQW5FaENpQVhJQWRCQjNFaUEyc2hGeUJnSUFPdGlDSmdweUVOQ3lBUklBZEJBblJCZ0FaeElBZEJNSEZ5SUNKQkJHcDBJQWx5TmdJQVFRRWhDVUVCSVFNQ1FDQUhRUUoyUVFKeElBRkJBM1pCQVhGeUloNUZEUUFnRFNBTlFRZHhRZFNkQVdvdEFBQWlBMEVEY1NJTmRpRUpJQjVCQTBjRVFFRUJJQWxCZnlBRFFRSjJRUWR4SWhoMFFYOXpjU0FEUVFWMmFrRUJhaUlESUI1QkFVWWlIaHNoQ1NBRFFRRWdIaHNoQXlBTklCaHFJUmdNQVFzZ0NVRUhjVUhVblFGcUxRQUFJaDVCQTNFaU15QU5JQU5CQW5aQkIzRWlHMnBxSUI1QkFuWkJCM0VpRFdvaEdDQUpJRE4ySWdsQmZ5QWJkRUYvYzNFZ0EwRUZkbXBCQVdvaEEwRi9JQTEwUVg5eklBa2dHM1p4SUI1QkJYWnFRUUZxSVFrTElBOGdGeUFZYXpZQzhBRWdEeUJnSUJpdGlEY0Q2QUVnQVVId0FYRWlEU0FOUVFGcmNRUkFJQU1nRmtIL0FIRWlGaUFHTFFBQlFmOEFjU0lYSUJZZ0Ywc2JJaFpCQW1zaUYwRUFJQllnRjA4YmFpRURDeUFIUWZBQmNTSVhJQmRCQVd0eEJFQWdDU0FHTFFBQlFmOEFjU0lXSUFZdEFBSkIvd0J4SWhnZ0ZpQVlTeHNpRmtFQ2EwRUFJQlpCQWtzYmFpRUpDeUFESUN4TklBa2dMRTF4UlFSQUlDRUVRRUVBSVFjZ0hVRUJRZjMyQUVFQUVBOE1DUXRCQUNFSElCMUJBVUg5OWdCQkFCQVBEQWdMSUFZdEFBSWhGaUFHUVFBN0FBRWdGeUFOUVFSMmNrSC9BVUgvQVNBRlFRUnFJZzBnRld0QkFYUjJJQTBnRlV3YkloZEIxUUJ4SUJjZ0dTQWZTaHNpR0VGL2MzRUVRQ0FoQkVCQkFDRUhJQjFCQVVHdjJnQkJBQkFQREFrTFFRQWhCeUFkUVFGQnI5b0FRUUFRRHd3SUN3SkFBa0FnQVVFUWNRUkFJQTlCd0FGcUVCc2hIaUFQSUE4b0F0QUJJQU1nQVVFVGRFRWZkV29pRjJzMkF0QUJJQThnRHlrRHlBRWdGNjJJTndQSUFTQWVRWDhnRjNSQmYzTnhJQUZCQ0haQkFYRWdGM1J5UVFGeVFRSnFJQ0IwSUI1QkgzUnlJUmNNQVF0QkFDRVhJQmhCQVhGRkRRRUxJQWdnRnpZQ0FBc0NRQ0FCUVNCeEJFQWdEMEhBQVdvUUd5RWVJQThnRHlnQzBBRWdBeUFCUVJKMFFSOTFhaUlYYXpZQzBBRWdEeUFQS1FQSUFTQVhyWWczQThnQklBZ2dGVUVDZEdvZ0hrRi9JQmQwUVg5emNTQUJRUWwyUVFGeElCZDBja0VCY2lJWFFRSnFJQ0IwSUI1QkgzUnlOZ0lBSUFaQklDQVhaMnNpRnlBR0xRQUFRZjhBY1NJZUlCY2dIa3NiUVlBQmNqb0FBQXdCQ3lBWVFRSnhSUTBBSUFnZ0ZVRUNkR3BCQURZQ0FBc2dDRUVFYWlFZUFrQUNRQ0FxQkVBZ0QwSEFBV29RR3lFYklBOGdEeWdDMEFFZ0F5QUJRUkYwUVI5MWFpSVhhellDMEFFZ0R5QVBLUVBJQVNBWHJZZzNBOGdCSUJ0QmZ5QVhkRUYvYzNFZ0FVRUtka0VCY1NBWGRISkJBWEpCQW1vZ0lIUWdHMEVmZEhJaEZ3d0JDMEVBSVJjZ0dFRUVjVVVOQVFzZ0hpQVhOZ0lBQ3dKQUlDY0VRQ0FQUWNBQmFoQWJJUmNnRHlBUEtBTFFBU0FESUFGQkVIUkJIM1ZxSWdOck5nTFFBU0FQSUE4cEE4Z0JJQU90aURjRHlBRWdIaUFWUVFKMGFpQVhRWDhnQTNSQmYzTnhJQUZCQzNaQkFYRWdBM1J5UVFGeUlnRkJBbW9nSUhRZ0YwRWZkSEkyQWdBZ0JrR2dmeUFCWjJzNkFBRU1BUXNnR0VFSWNVVU5BQ0FlSUJWQkFuUnFRUUEyQWdBTElBaEJDR29oQVFKQUFrQWdCMEVRY1FSQUlBOUJ3QUZxRUJzaEZ5QVBJQThvQXRBQklBa2dCMEVUZEVFZmRXb2lBMnMyQXRBQklBOGdEeWtEeUFFZ0E2MklOd1BJQVNBWFFYOGdBM1JCZjNOeElBZEJDSFpCQVhFZ0EzUnlRUUZ5UVFKcUlDQjBJQmRCSDNSeUlRTU1BUXRCQUNFRElCaEJFSEZGRFFFTElBRWdBellDQUFzQ1FDQUhRU0J4QkVBZ0QwSEFBV29RR3lFWElBOGdEeWdDMEFFZ0NTQUhRUkowUVI5MWFpSURhellDMEFFZ0R5QVBLUVBJQVNBRHJZZzNBOGdCSUFFZ0ZVRUNkR29nRjBGL0lBTjBRWDl6Y1NBSFFRbDJRUUZ4SUFOMGNrRUJjaUlCUVFKcUlDQjBJQmRCSDNSeU5nSUFJQVpCSUNBQloyc2lBU0FHTFFBQlFmOEFjU0lESUFFZ0Ewc2JRWUFCY2pvQUFRd0JDeUFZUVNCeFJRMEFJQUVnRlVFQ2RHcEJBRFlDQUFzZ0NFRU1haUVCQWtBQ1FDQUhRY0FBY1FSQUlBOUJ3QUZxRUJzaEZ5QVBJQThvQXRBQklBa2dCMEVSZEVFZmRXb2lBMnMyQXRBQklBOGdEeWtEeUFFZ0E2MklOd1BJQVNBWFFYOGdBM1JCZjNOeElBZEJDblpCQVhFZ0EzUnlRUUZ5UVFKcUlDQjBJQmRCSDNSeUlRTU1BUXRCQUNFRElCaEJ3QUJ4UlEwQkN5QUJJQU0yQWdBTElBWkJBbW9oQmdKQUlBZEJnQUZ4QkVBZ0QwSEFBV29RR3lFWElBOGdEeWdDMEFFZ0NTQUhRUkIwUVI5MWFpSURhellDMEFFZ0R5QVBLUVBJQVNBRHJZZzNBOGdCSUFFZ0ZVRUNkR29nRjBGL0lBTjBRWDl6Y1NBSFFRdDJRUUZ4SUFOMGNrRUJjaUlCUVFKcUlDQjBJQmRCSDNSeU5nSUFJQVpCb0g4Z0FXZHJPZ0FBREFFTElCaEJnQUZKRFFBZ0FTQVZRUUowYWtFQU5nSUFDeUFpUVJCeklTSWdFU0FGUVFSeGFpRVJJQWhCRUdvaENDQU5JQlZJRFFBTEN3SkFJQXhCQWtrTkFDQVRRUUp4UlEwQUlCbEJCSEVoQXdKQUFuOENRQUpBSURFRVFDQVVJQ1VnQXhzaEZrRUFJUmdnRlVFQVRBMEJJQTRnRTBFQ2F5QVZiRUVDZEdvaEVRTkFJQTlCZ0FGcUVDOGhCMEVBSVFFZ0ZpZ0NBQ0lJQkVBZ0VTQVlRUUowYWlFQlFRQWhDVUVQSVFZRFFBSkFJQVlnQ0hGRkRRQWdCa0dSb3NTSUFYRWlEU0FJY1FSQUlBRWdBU2dDQUNBSFFYOXpRUUZ4SUNCMGN5QXVjallDQUNBSFFRRjJJUWNMSUExQkFYUWdDSEVFUUNBQklCVkJBblJxSWdVZ0JTZ0NBQ0FIUVg5elFRRnhJQ0IwY3lBdWNqWUNBQ0FIUVFGMklRY0xJQTFCQW5RZ0NIRUVRQ0FCSURwQkFuUnFJZ1VnQlNnQ0FDQUhRWDl6UVFGeElDQjBjeUF1Y2pZQ0FDQUhRUUYySVFjTElBMUJBM1FnQ0hGRkRRQWdBU0E1UVFKMGFpSU5JQTBvQWdBZ0IwRi9jMEVCY1NBZ2RITWdMbkkyQWdBZ0IwRUJkaUVIQ3lBQlFRUnFJUUVnQmtFRWRDRUdJQWxCQVdvaUNVRUlSdzBBQ3lBSWFTRUJDeUFXUVFScUlSWWdEeUFQS0FLUUFTQUJhellDa0FFZ0R5QVBLUU9JQVNBQnJZZzNBNGdCSUJoQkNHb2lHQ0FWU0EwQUN3c2dLU0FvSUFNYklRVWdGQ0FsSUFNYklSWWdBMFVoR0NBVlFRQk1EUU5CQUNFRElFQU5BU0FGSUJZZ08ycEpJQllnQlNBN2FpSUhTWEVOQVVFQUlBVWlBU0FXSWdZZ1BtcEJDR3BKSUFaQkJHb2dCMGx4RFFJYUlBWWdQR29oQmlBQklEeHFJUUg5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUFoWGtFQUlRY0RRQ0FGSUFkQkFuUWlBMm9pQ1NBRElCWnFJZ1A5QUFJQUlsOUJCUDJ0QVNCZlFRVDlxd0VnWGlCZi9RME1EUTRQRUJFU0V4UVZGaGNZR1JvYlFSejlyUUg5VVAxUUlGLzlVQ0plL1FzQ0FDQUpJRjRnQS8wQUFnUkJIUDJyQWYxUUlsNUJBZjJ0QWYwTWQzZDNkM2QzZDNkM2QzZDNkM2QzZC8xT0lGNUJBZjJyQWYwTTd1N3U3dTd1N3U3dTd1N3U3dTd1N3YxTy9WQWdYdjFRSUYvOVQvMExBZ0FnWHlGZUlBZEJCR29pQnlBY1J3MEFDeUFjSUQ5R0RRTWdFaUVESUY3OUd3TU1BZ3NnQTBVaEdDQXBJQ2dnQXhzaEJRd0NDeUFGSVFFZ0ZpRUdRUUFMSVFjRFFDQUhRUngySVFrZ0FTQUdLQUlBSWdkQkJIWWdDU0FIUVFSMGNuSWdCM0lpQ1RZQ0FDQUJJQWtnQmlnQ0JFRWNkSElpQ1VFQmRrSDM3dDI3QjNFZ0NVRUJkRUh1M2J2M2ZuRnlJQWx5SUFkQmYzTnhOZ0lBSUFGQkJHb2hBU0FHUVFScUlRWWdBMEVJYWlJRElCVklEUUFMQ3lBVFFRWkpEUUJCQUNFSlFRQWhFU0FXSVFFZ0tTQW9JQmdiSWhzaEJ5QVVJQ1VnR0JzaUZ5RUdBa0FnRlVFQVRDSU5EUUFEUUNBQlFRUnFJUU1nQnlnQ0FDRUlJQUVvQWdBaEFTQUhJRGdFZnlBSUJTQUJRUVIwSUJGQkhIWnlJQUZCQkhaeUlBTW9BZ0JCSEhSeUlBRnlRUU4wUVlpUm9zUjRjU0FJY2dzZ0JpZ0NBRUYvYzNFMkFnQWdCa0VFYWlFR0lBZEJCR29oQnlBQklSRWdBeUVCSUFsQkNHb2lDU0FWU0EwQUN5QU5EUUFnRGlBVFFRWnJJQlZzUVFKMGFpRkJRUUFoSGlBWElSRURRRUVBSVFNZ0d5Z0NBQ0lCQkVBZ0ZTQWVheUZDUVFBaEIwRUFJUW9EUUNBSElVMGdEMEdnQVdvUUd5RUhBa0FnQ2lBS1FRUnFJZ1lnUWlBR0lCNXFJQlZJR3lJelRpSkRCRUJCQUNFR0RBRUxJQkVvQWdCQmYzTWhLaUJCSUFvZ0huSkJBblJxSVJoQkFDRUdRUThnQ2lJSlFRSjBJa1IwSWcwaENBTkFBa0FnQVNBSWNVVU5BQ0FJUVpHaXhJZ0JjU0luSUFGeEJFQWdCMEVCY1FSQUlBTWdKM0loQTBFeUlBbEJBblIwSUNweElBRnlJUUVMSUFkQkFYWWhCeUFHUVFGcUlRWUxJQUVnSjBFQmRDSTBjUVJBSUFkQkFYRUVRQ0FESURSeUlRTWdBVUgwQUNBSlFRSjBkQ0FxY1hJaEFRc2dCMEVCZGlFSElBWkJBV29oQmdzZ0FTQW5RUUowSWpSeEJFQWdCMEVCY1FSQUlBTWdOSEloQXlBQlFlZ0JJQWxCQW5SMElDcHhjaUVCQ3lBSFFRRjJJUWNnQmtFQmFpRUdDeUFCSUNkQkEzUWlKM0ZGRFFBZ0IwRUJjUVJBSUFNZ0ozSWhBeUFCUWNBQklBbEJBblIwSUNweGNpRUJDeUFHUVFGcUlRWWdCMEVCZGlFSEN5QUlRUVIwSVFnZ0NVRUJhaUlKSUROSURRQUxJQU1nUkhaQi8vOERjVVVOQUNCRERRQURRQUpBSUFNZ0RYRkZEUUFnRFVHUm9zU0lBWEVpQ1NBRGNRUkFJQmdnR0NnQ0FDQUhRUjkwY2lBdGNqWUNBQ0FIUVFGMklRY2dCa0VCYWlFR0N5QUpRUUYwSUFOeEJFQWdHQ0FWUVFKMGFpSUlJQWdvQWdBZ0IwRWZkSElnTFhJMkFnQWdCMEVCZGlFSElBWkJBV29oQmdzZ0NVRUNkQ0FEY1FSQUlCZ2dPa0VDZEdvaUNDQUlLQUlBSUFkQkgzUnlJQzF5TmdJQUlBZEJBWFloQnlBR1FRRnFJUVlMSUFsQkEzUWdBM0ZGRFFBZ0dDQTVRUUowYWlJSklBa29BZ0FnQjBFZmRISWdMWEkyQWdBZ0JrRUJhaUVHSUFkQkFYWWhCd3NnRFVFRWRDRU5JQmhCQkdvaEdDQUtRUUZxSWdvZ00wZ05BQXNMSUE4Z0R5Z0NzQUVnQm1zMkFyQUJJQThnRHlrRHFBRWdCcTJJTndPb0FVRUJJUWRCQkNFS0lFMUJBWEZGRFFBTElCc2dHeWdDQkNBRFFSdDJRUTV4SUFOQkhYWnlJQU5CSEhaeUlCRW9BZ1JCZjNOeGNqWUNCQXNnRVNnQ0FDQURjaUlEUVFOMlFaR2l4SWdCY1NJQlFRUjJJQUZCQkhSeUlBRnlJUVlnSGdSQUlBVkJCR3NpQnlBSEtBSUFJQlpCQkdzb0FnQkJmM01nQVVFY2RIRnlOZ0lBQ3lBRklBVW9BZ0FnQmlBV0tBSUFRWDl6Y1hJMkFnQWdCU0FGS0FJRUlCWW9BZ1JCZjNNZ0EwRWZkbkZ5TmdJRUlCdEJCR29oR3lBUlFRUnFJUkVnQlVFRWFpRUZJQlpCQkdvaEZpQWVRUWhxSWg0Z0ZVZ05BQXNMSUJkQkFDQTlFQlVhQ3lBWklCOUlEUUFMQ3dKQUlBeEJBa2tOQUFKQUlCOUJBM0ZCQVdzaUZrRUNTU0F4Y1FSQUlCVkJBRXdOQVVFQklDWkJBbXQwSVFJZ0RpQWZRZnovL3dkeElCVnNRUUowYWlFUklDVWdGQ0FmUVFSeEd5RUZJQ1pCQVdzaENFRUFJUW9nRlVFTWJDRU1JQlZCQTNRaEN3TkFJQTlCZ0FGcUVDOGhCMEVBSVFFZ0JTZ0NBQ0lEQkVBZ0VTQUtRUUowYWlFQlFROGhCa0VBSVFrRFFBSkFJQU1nQm5GRkRRQWdCa0dSb3NTSUFYRWlEU0FEY1FSQUlBRWdBU2dDQUNBSFFYOXpRUUZ4SUFoMGN5QUNjallDQUNBSFFRRjJJUWNMSUExQkFYUWdBM0VFUUNBQklCVkJBblJxSWgwZ0hTZ0NBQ0FIUVg5elFRRnhJQWgwY3lBQ2NqWUNBQ0FIUVFGMklRY0xJQTFCQW5RZ0EzRUVRQ0FCSUF0cUloMGdIU2dDQUNBSFFYOXpRUUZ4SUFoMGN5QUNjallDQUNBSFFRRjJJUWNMSUExQkEzUWdBM0ZGRFFBZ0FTQU1haUlOSUEwb0FnQWdCMEYvYzBFQmNTQUlkSE1nQW5JMkFnQWdCMEVCZGlFSEN5QUJRUVJxSVFFZ0JrRUVkQ0VHSUFsQkFXb2lDVUVJUncwQUN5QURhU0VCQ3lBRlFRUnFJUVVnRHlBUEtBS1FBU0FCYXpZQ2tBRWdEeUFQS1FPSUFTQUJyWWczQTRnQklBcEJDR29pQ2lBVlNBMEFDd3NnRmtFQlN3MEFJQlZCQUV3TkFDQWxJQlFnSDBFRWNTSUJHeUVKSUNnZ0tTQUJHeUVDUVFBaEF3Si9Ba0FnS3lBa1FYOXphaUlCUVRoSkRRQWdBaUFKSUFGQkFYWkIvUC8vL3dkeElnWkJCR29pQjJwSklBa2dBaUFIYWlJSFNYRU5BQ0FDSUFZZ0NXcEJDR3BKSUFsQkJHb2dCMGx4RFFBZ0FVRURka0VCYWlJTlFmei8vLzhEY1NJSVFRTjBJUU1nQ1NBSVFRSjBJZ0ZxSVFZZ0FTQUNhaUVCL1F3QUFBQUFBQUFBQUFBQUFBQUFBQUFBSVY1QkFDRUhBMEFnQWlBSFFRSjBJaFpxSWhFZ0NTQVdhaUlXL1FBQ0FDSmZRUVQ5clFFZ1gwRUUvYXNCSUY0Z1gvME5EQTBPRHhBUkVoTVVGUllYR0JrYUcwRWMvYTBCL1ZEOVVDQmYvVkFpWHYwTEFnQWdFU0JlSUJiOUFBSUVRUno5cXdIOVVDSmVRUUg5clFIOURIZDNkM2QzZDNkM2QzZDNkM2QzZDNmOVRpQmVRUUg5cXdIOURPN3U3dTd1N3U3dTd1N3U3dTd1N3U3OVR2MVFJRjc5VUNCZi9VLzlDd0lBSUY4aFhpQUhRUVJxSWdjZ0NFY05BQXNnQ0NBTlJnMENJRjc5R3dNTUFRc2dBaUVCSUFraEJrRUFDeUVIQTBBZ0IwRWNkaUVKSUFFZ0JpZ0NBQ0lIUVFSMklBa2dCMEVFZEhKeUlBZHlJZ2syQWdBZ0FTQUpJQVlvQWdSQkhIUnlJZ2xCQVhaQjkrN2R1d2R4SUFsQkFYUkI3dDI3OTM1eGNpQUpjaUFIUVg5emNUWUNBQ0FCUVFScUlRRWdCa0VFYWlFR0lBTkJDR29pQXlBVlNBMEFDd3NnSHlBZlFRRnFRUU54YTBFRGEwRUFJQjlCQmtvYkloRWdIMDROQUVFRElDWkJBbXQwSVJrZ0t5QWtRWDl6YWlJQlFRTjJJZ05CQW5RaUswRUVhaUVkSUFOQkFXb2lBMEg4Ly8vL0EzRWlFa0VDZENFaElCSkJBM1FoRmlBVlFReHNJU3dnRlVFRGRDRXRJQUZCR0VraEppQURJQkpHSVJzRFFBSkFBa0FDUUFKQUFuOENRQ0FmSUJGcklnRkJBV3NpQTBFRFR3UkFRWDhoRnlBQlFRVklEUVVnRlVFQVRBMEdJQ1VnRkNBUlFRUnhJZ0ViSVFJZ0tDQXBJQUViSVFrZ09BUkFRUUFoQmlBbURRUWdBaUFKSUIxcVNTQUNJQjFxSUFsTGNRMEVJQUlnSVdvaEFTQUpJQ0ZxSVFjRFFDQUpJQVpCQW5RaUEyb2lDQ0FJL1FBQ0FDQUNJQU5xL1FBQ0FQMVAvUXNDQUNBR1FRUnFJZ1lnRWtjTkFBc2dGaUVHSUJzTkJnd0ZDeUFVSUNVZ0FSc2hEVUVBSVFNZ0pnMEJJQWtnRFNBZGFra2dEU0FKSUIxcUlnRkpjUTBCSUFrZ0RTQXJha0VJYWtrZ0RVRUVhaUFCU1hFTkFTQUpJQUlnSFdwSklBRWdBa3R4RFFFZ0FpQWhhaUVJSUFrZ0lXb2hBU0FOSUNGcUlRZjlEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWhYa0VBSVFZRFFDQUpJQVpCQW5RaUEyb2lCU0FESUExcUlnejlBQUlBSWw5QkJQMnRBU0JmUVFUOXF3RWdYaUJmL1EwTURRNFBFQkVTRXhRVkZoY1lHUm9iUVJ6OXJRSDlVUDFRSUF6OUFBSUVRUno5cXdIOVVDQmYvVkJCQS8yckFmME1pSWlJaUlpSWlJaUlpSWlJaUlpSWlQMU9JQVg5QUFJQS9WQWdBaUFEYXYwQUFnRDlULzBMQWdBZ1h5RmVJQVpCQkdvaUJpQVNSdzBBQ3lBYkRRVWdGaUVESUY3OUd3TU1BZ3NnQTBFQ2RFSGNuUUZxS0FJQUlSY01CQXNnRFNFSElBa2hBU0FDSVFoQkFBc2hCZ05BSUFaQkhIWWhDU0FCSUFFb0FnQWdCeWdDQUNJR1FRUjJJQWtnQmtFRWRISnlJQWNvQWdSQkhIUnlJQVp5UVFOMFFZaVJvc1I0Y1hJZ0NDZ0NBRUYvYzNFMkFnQWdDRUVFYWlFSUlBRkJCR29oQVNBSFFRUnFJUWNnQTBFSWFpSURJQlZJRFFBTERBSUxJQWtoQnlBQ0lRRUxBMEFnQnlBSEtBSUFJQUVvQWdCQmYzTnhOZ0lBSUFGQkJHb2hBU0FIUVFScUlRY2dCa0VJYWlJR0lCVklEUUFMQ3lBVlFRQk1EUUFnSlNBVUlCRkJCSEVpQVJzaENpQW9JQ2tnQVJzaEFpQVVJQ1VnQVJzaEV5QXBJQ2dnQVJzaEhpQU9JQkVnRld4QkFuUnFJUzVCQUNFRkEwQkJBQ0VESUFJb0FnQWdGM0VpQVFSQUlCVWdCV3NoS2tFQUlRZEJBQ0VOQTBBZ0J5Rk9JQTlCb0FGcUVCc2hCd0pBSUEwZ0RVRUVhaUlHSUNvZ0JTQUdhaUFWU0JzaUpFNGlKd1JBUVFBaEJnd0JDeUFYSUFvb0FnQkJmM054SVJnZ0xpQUZJQTF5UVFKMGFpRUxRUUFoQmtFUElBMGlDVUVDZENJY2RDSWdJUWdEUUFKQUlBRWdDSEZGRFFBZ0NFR1Jvc1NJQVhFaUlpQUJjUVJBSUFkQkFYRUVRQ0FESUNKeUlRTkJNaUFKUVFKMGRDQVljU0FCY2lFQkN5QUhRUUYySVFjZ0JrRUJhaUVHQ3lBQklDSkJBWFFpTVhFRVFDQUhRUUZ4QkVBZ0F5QXhjaUVESUFGQjlBQWdDVUVDZEhRZ0dIRnlJUUVMSUFkQkFYWWhCeUFHUVFGcUlRWUxJQUVnSWtFQ2RDSXhjUVJBSUFkQkFYRUVRQ0FESURGeUlRTWdBVUhvQVNBSlFRSjBkQ0FZY1hJaEFRc2dCMEVCZGlFSElBWkJBV29oQmdzZ0FTQWlRUU4wSWlKeFJRMEFJQWRCQVhFRVFDQURJQ0p5SVFNZ0FVSEFBU0FKUVFKMGRDQVljWEloQVFzZ0JrRUJhaUVHSUFkQkFYWWhCd3NnQ0VFRWRDRUlJQWxCQVdvaUNTQWtTQTBBQ3lBRElCeDJRZi8vQTNGRkRRQWdKdzBBQTBBQ1FDQURJQ0J4UlEwQUlDQkJrYUxFaUFGeElna2dBM0VFUUNBTElBc29BZ0FnQjBFZmRISWdHWEkyQWdBZ0IwRUJkaUVISUFaQkFXb2hCZ3NnQ1VFQmRDQURjUVJBSUFzZ0ZVRUNkR29pQ0NBSUtBSUFJQWRCSDNSeUlCbHlOZ0lBSUFkQkFYWWhCeUFHUVFGcUlRWUxJQWxCQW5RZ0EzRUVRQ0FMSUMxcUlnZ2dDQ2dDQUNBSFFSOTBjaUFaY2pZQ0FDQUhRUUYySVFjZ0JrRUJhaUVHQ3lBSlFRTjBJQU54UlEwQUlBc2dMR29pQ1NBSktBSUFJQWRCSDNSeUlCbHlOZ0lBSUFaQkFXb2hCaUFIUVFGMklRY0xJQ0JCQkhRaElDQUxRUVJxSVFzZ0RVRUJhaUlOSUNSSURRQUxDeUFQSUE4b0FyQUJJQVpyTmdLd0FTQVBJQThwQTZnQklBYXRpRGNEcUFGQkFTRUhRUVFoRFNCT1FRRnhSUTBBQ3lBQ0lBSW9BZ1FnQTBFYmRrRU9jU0FEUVIxMmNpQURRUngyY2lBS0tBSUVRWDl6Y1hJMkFnUUxJQW9vQWdBZ0EzSWlBMEVEZGtHUm9zU0lBWEVpQVVFRWRpQUJRUVIwY2lBQmNpRUdJQVVFUUNBZVFRUnJJZ2NnQnlnQ0FDQVRRUVJyS0FJQVFYOXpJQUZCSEhSeGNqWUNBQXNnSGlBZUtBSUFJQVlnRXlnQ0FFRi9jM0Z5TmdJQUlCNGdIaWdDQkNBVEtBSUVRWDl6SUFOQkgzWnhjallDQkNBQ1FRUnFJUUlnQ2tFRWFpRUtJQjVCQkdvaEhpQVRRUVJxSVJNZ0JVRUlhaUlGSUJWSURRQUxDeUFSUVFScUloRWdIMGdOQUFzTFFRRWhCeUFmUVFCTURRTWdGVUVBVEEwRElCVkIvUC8vL3dkeElnWkJBblFoQWlBVlFRUkpJUWhCQUNFSkEwQWdEaUFKSUJWc1FRSjBhaUVEQWtBQ1FDQUlCRUFnQXlFSFFRQWhBUXdCQ3lBQ0lBTnFJUWRCQUNFQkEwQWdBeUFCUVFKMGFpSU5JQTM5QUFJQUlsNzlEUC8vLzMvLy8vOS8vLy8vZi8vLy8zLzlUaUpmL2FFQklGOGdYdjBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBUDA1L1ZMOUN3SUFJQUZCQkdvaUFTQUdSdzBBQ3lBR0lnRWdGVVlOQVFzRFFDQUhRUUFnQnlnQ0FDSURRZi8vLy84SGNTSU5heUFOSUFOQkFFZ2JOZ0lBSUFkQkJHb2hCeUFCUVFGcUlnRWdGVWNOQUFzTFFRRWhCeUFKUVFGcUlna2dIMGNOQUFzTUF3c2dJVVVOQUNBUElCb29BaGcyQWpRZ0R5QVdOZ0l3SUIxQkFVSGN4d0FnRDBFd2FoQVBEQUVMSUE4Z0FUWUNGQ0FQSUJZMkFoQWdIVUVCUWR6SEFDQVBRUkJxRUE5QkFDRUhEQUVMUVFBaEJ3c2dEMEd3QW1va0FDQUhEUUVNQXdzZ0JDQUJRUWwwUWRDcEFXbzJBbXdDZnlBRUtBSjBJUUVDUUFKQUlCb29BaEFnR2lnQ0NHc2lCU0FhS0FJVUlCb29BZ3hySWdsc0lnTWdCQ2dDaEFGTEJFQWdBUkFRSUFRZ0EwRUNkQkFZSWdFMkFuUkJBQ0FCUlEwREdpQUVJQU0yQW9RQkRBRUxJQUZGRFFFTElBRkJBQ0FEUVFKMEVCVWFDeUFFS0FKNElRRUNRQ0FGUVFKcUlnWWdDVUVEYWtFQ2RpSU1RUUpxYkNJRElBUW9Bb2dCVFFSQUlBTkJBblFoQ0F3QkN5QUJFQkFnQkNBRFFRSjBJZ2dRR0NJQk5nSjRJQUVOQUVFQURBRUxJQVFnQXpZQ2lBRWdBVUVBSUFnUUZSb0NRQ0FHUlEwQUlBUW9BbmdpQnlFQkFrQWdCa0VFVHdSQUlBY2dCa0Y4Y1NJTlFRSjBhaUVCUVFBaENBTkFJQWNnQ0VFQ2RHcjlEQUFBSUVrQUFDQkpBQUFnU1FBQUlFbjlDd0lBSUFoQkJHb2lDQ0FOUncwQUN5QUdJQTFHRFFFTEEwQWdBVUdBZ0lESkJEWUNBQ0FCUVFScUlRRWdEVUVCYWlJTklBWkhEUUFMQ3lBSElBeEJBV29nQm14QkFuUnFJUU5CQUNFTkFrQUNRQ0FHUVFSSkJFQWdBeUVCREFFTElBTWdCa0Y4Y1NJTlFRSjBhaUVCUVFBaENBTkFJQU1nQ0VFQ2RHcjlEQUFBSUVrQUFDQkpBQUFnU1FBQUlFbjlDd0lBSUFoQkJHb2lDQ0FOUncwQUN5QUdJQTFHRFFFTEEwQWdBVUdBZ0lESkJEWUNBQ0FCUVFScUlRRWdEVUVCYWlJTklBWkhEUUFMQ3lBSlFRTnhJZ0ZGRFFBZ0JrVU5BRUdBZ0lESUJFR0FnSURBQkVHQWdJQ0FCQ0FCUVFKR0d5QUJRUUZHR3lFTElBY2dCaUFNYkVFQ2RHb2hBMEVBSVEwQ1FDQUdRUVJKQkVBZ0F5RUJEQUVMSUFNZ0JrRjhjU0lOUVFKMGFpRUJJQXY5RVNGZlFRQWhDQU5BSUFNZ0NFRUNkR29nWC8wTEFnQWdDRUVFYWlJSUlBMUhEUUFMSUFZZ0RVWU5BUXNEUUNBQklBczJBZ0FnQVVFRWFpRUJJQTFCQVdvaURTQUdSdzBBQ3dzZ0JDQUpOZ0tBQVNBRUlBVTJBbnhCQVF0RkRRSWdHaWdDSENBUmFpSVpRUjlPQkVBZ0lVVU5BaUFqSUJrMkFoQWdIVUVDUWRYQkFDQWpRUkJxRUE4TUF3c2dCQkJhUVFBaEFTQUVRYkNwQVRZQ1pDQUVRZENlQVRZQ1lDQUVRZkNlQVRZQ0hBSkFBa0FDUUFKQUlCb29BalFpQjBFQlN3MEFJQVFvQXBBQlJRMENJQWNOQUF3QkN5QWFLQUlFSVFNZ0IwRUVUd1JBSUFkQmZIRWhBa0VBSVFZRFFDQURJQVpCQTNScUlnRkJIR29nQVVFVWFpQUJRUXhxSUFIOUNRSUUvVllDQUFIOVZnSUFBdjFXQWdBRElGNzlyZ0VoWGlBR1FRUnFJZ1lnQWtjTkFBc2dYaUJlSUY3OURRZ0pDZ3NNRFE0UEFBRUNBd0FCQWdQOXJnRWlYaUJlSUY3OURRUUZCZ2NBQVFJREFBRUNBd0FCQWdQOXJnSDlHd0FoQVNBQ0lBZEdEUUVMQTBBZ0F5QUNRUU4wYWlnQ0JDQUJhaUVCSUFKQkFXb2lBaUFIUncwQUN3c2dBVUVDYWlJRElBUW9BcGdCU3dSQUlBUW9BcFFCSUFNUUZ5SUdSUTBGSUFRZ0JqWUNsQUVnQVNBR2FrRUFPd0FBSUFRZ0F6WUNtQUVnR2lnQ05DRUhDeUFFS0FLVUFTRWVJQWRGRFFFZ0dpZ0NCQ0VHUVFBaEFrRUFJUUVEUUNBQ0lCNXFJQVlnQVVFRGRDSURhaUlHS0FJQUlBWW9BZ1FRRWhvZ0dpZ0NCQ0lHSUFOcUtBSUVJQUpxSVFJZ0FVRUJhaUlCSUJvb0FqUkpEUUFMREFFTElBZEJBVWNOQVNBYUtBSUVLQUlBSVI0TElCb29BandpQVFSQUlBUW9BblFoTENBRUlBRTJBblFMSUJvb0Fpd0VRQ0FXUVFoeElTVWdCRUVjYWlFUElCWkJBWEVoTFNBV1FRSnhSU0V1UVFJaEh3TkFJQjRnS0dvaEFTQWFLQUlBSUNsQkdHeHFJaUFvQWdBaEF3SkFJQzBnSDBFQ1NTQVpJQm9vQWh4QkJHdE1jWEVpSWdSQUlBUWdBVFlDRkNBRUlBRWdBMm9pQXpZQ0dDQUVJQU12QUFBN0FYQWdBMEgvQVRvQUFDQUVLQUlZUWY4Qk9nQUJJQVJCQURZQ0NDQUVRUUEyQWdBZ0JDQUJOZ0lRREFFTElBUWdBVFlDRkNBRUlBRWdBMm9pQmpZQ0dDQUVJQVl2QUFBN0FYQWdCa0gvQVRvQUFDQUVLQUlZUWY4Qk9nQUJJQVFnQkVFY2FqWUNhQ0FFSUFFMkFoQWdCRUVBTmdJTUlBUWdBd1IvSUFFdEFBQkJFSFFGUVlDQS9BY0xJZ00yQWdCQkFTRUdJQUZCQVdvaENTQUJMUUFCSVFjQ2Z5QUJMUUFBUWY4QlJnUkFJQWRCa0FGUEJFQWdCRUVCTmdJTUlBTkJnUDREY2d3Q0N5QUVJQWsyQWhCQkFDRUdJQWRCQ1hRZ0Eyb01BUXNnQkNBSk5nSVFJQWRCQ0hRZ0EzSUxJUUVnQkNBR05nSUlJQVJCZ0lBQ05nSUVJQVFnQVVFSGREWUNBQXNnSUNnQ0FDRXFBa0FnR1VFQVRBMEFJQ0FvQWdoRkRRQWdJaUF1Y2lFblFRQWhKZ05BQWtBQ1FBSkFBa0FDUUNBZlFRRnJEZ0lCQWdBTElDSUVRRUVCSUJsMElnRkJBWFlnQVhJaEVTQUVLQUo4SWdWQkFuUWlEU0FFS0FKNGFrRU1haUVCSUFRb0FuUWhCa0VBSVFnZ0JDZ0NnQUVpQTBFRVR3UkFJQVZGRFFVZ0JVRURiQ0VDSUFWQkFYUWhERUVBSUJGcklRa0RRQ0FNUVFKMElRdEJBQ0VEQTBBQ1FDQUJJZ2NvQWdBaUFVVU5BQUpBSUFGQmtJQ0FBWEVOQUNBQlFlOERjVVVOQUNBRUtBSUFJUUVDUUNBRUtBSUlJaEFOQUNBQlFmOEJSaUVLSUFRb0FoQWlFQzBBQUNFQkFrQWdDa1VFUUNBRUlBRTJBZ0FnQkNBUVFRRnFOZ0lRREFFTElBRkJqd0ZOQkVBZ0JDQUJOZ0lBSUFRZ0VFRUJhallDRUVFSElSQU1BZ3RCL3dFaEFTQUVRZjhCTmdJQUMwRUlJUkFMSUFRZ0VFRUJheUlRTmdJSUFrQWdBU0FRZGtFQmNVVU5BQUpBSUJBTkFDQUJRZjhCUmlFS0lBUW9BaEFpRUMwQUFDRUJBa0FnQ2tVRVFDQUVJQUUyQWdBZ0JDQVFRUUZxTmdJUURBRUxJQUZCandGTkJFQWdCQ0FCTmdJQUlBUWdFRUVCYWpZQ0VFRUhJUkFNQWd0Qi93RWhBU0FFUWY4Qk5nSUFDMEVJSVJBTElBUWdFRUVCYXlJUU5nSUlJQVlnQ1NBUklBRWdFSFpCQVhFaUVCczJBZ0FnQkNnQ2ZDRUJJQWRCQkdzaUNpQUtLQUlBUVNCeU5nSUFJQWNnQnlnQ0JFRUljallDQkNBSElBY29BZ0FnRUVFVGRISkJFSEkyQWdBZ0pRMEFJQWRCZmlBQmEwRUNkR29pQVNBQktBSUVRWUNBQW5JMkFnUWdBU0FCS0FJQUlCQkJIM1J5UVlDQUJISTJBZ0FnQVVFRWF5SUJJQUVvQWdCQmdJQUljallDQUFzZ0J5QUhLQUlBUVlDQWdBRnlJZ0UyQWdBTEFrQWdBVUdBZ1lBSWNRMEFJQUZCK0I1eFJRMEFJQVFvQWdBaEFRSkFJQVFvQWdnaUVBMEFJQUZCL3dGR0lRb2dCQ2dDRUNJUUxRQUFJUUVDUUNBS1JRUkFJQVFnQVRZQ0FDQUVJQkJCQVdvMkFoQU1BUXNnQVVHUEFVMEVRQ0FFSUFFMkFnQWdCQ0FRUVFGcU5nSVFRUWNoRUF3Q0MwSC9BU0VCSUFSQi93RTJBZ0FMUVFnaEVBc2dCQ0FRUVFGckloQTJBZ2dnQndKL0lBRWdFSFpCQVhGRkJFQWdCeWdDQUF3QkN3SkFJQkFOQUNBQlFmOEJSaUVLSUFRb0FoQWlFQzBBQUNFQkFrQWdDa1VFUUNBRUlBRTJBZ0FnQkNBUVFRRnFOZ0lRREFFTElBRkJqd0ZOQkVBZ0JDQUJOZ0lBSUFRZ0VFRUJhallDRUVFSElSQU1BZ3RCL3dFaEFTQUVRZjhCTmdJQUMwRUlJUkFMSUFRZ0VFRUJheUlRTmdJSUlBWWdEV29nQ1NBUklBRWdFSFpCQVhFaUFSczJBZ0FnQjBFRWF5SVFJQkFvQWdCQmdBSnlOZ0lBSUFjZ0J5Z0NCRUhBQUhJMkFnUWdCeWdDQUNBQlFSWjBja0dBQVhJTFFZQ0FnQWh5SWdFMkFnQUxBa0FnQVVHQWlJREFBSEVOQUNBQlFjRDNBWEZGRFFBZ0JDZ0NBQ0VCQWtBZ0JDZ0NDQ0lRRFFBZ0FVSC9BVVloQ2lBRUtBSVFJaEF0QUFBaEFRSkFJQXBGQkVBZ0JDQUJOZ0lBSUFRZ0VFRUJhallDRUF3QkN5QUJRWThCVFFSQUlBUWdBVFlDQUNBRUlCQkJBV28yQWhCQkJ5RVFEQUlMUWY4QklRRWdCRUgvQVRZQ0FBdEJDQ0VRQ3lBRUlCQkJBV3NpRURZQ0NDQUhBbjhnQVNBUWRrRUJjVVVFUUNBSEtBSUFEQUVMQWtBZ0VBMEFJQUZCL3dGR0lRb2dCQ2dDRUNJUUxRQUFJUUVDUUNBS1JRUkFJQVFnQVRZQ0FDQUVJQkJCQVdvMkFoQU1BUXNnQVVHUEFVMEVRQ0FFSUFFMkFnQWdCQ0FRUVFGcU5nSVFRUWNoRUF3Q0MwSC9BU0VCSUFSQi93RTJBZ0FMUVFnaEVBc2dCQ0FRUVFGckloQTJBZ2dnQmlBTGFpQUpJQkVnQVNBUWRrRUJjU0lCR3pZQ0FDQUhRUVJySWhBZ0VDZ0NBRUdBRUhJMkFnQWdCeUFIS0FJRVFZQUVjallDQkNBSEtBSUFJQUZCR1hSeVFZQUljZ3RCZ0lDQXdBQnlJZ0UyQWdBTElBRkJnTUNBZ0FSeERRQWdBVUdBdkE5eFJRMEFJQVFvQWdBaEFRSkFJQVFvQWdnaUVBMEFJQUZCL3dGR0lRb2dCQ2dDRUNJUUxRQUFJUUVDUUNBS1JRUkFJQVFnQVRZQ0FDQUVJQkJCQVdvMkFoQU1BUXNnQVVHUEFVMEVRQ0FFSUFFMkFnQWdCQ0FRUVFGcU5nSVFRUWNoRUF3Q0MwSC9BU0VCSUFSQi93RTJBZ0FMUVFnaEVBc2dCQ0FRUVFGckloQTJBZ2dnQVNBUWRrRUJjUVJBSUFZZ0FrRUNkR29oVHdKQUlCQU5BQ0FCUWY4QlJpRVVJQVFvQWhBaUVDMEFBQ0VCQWtBZ0ZFVUVRQ0FFSUFFMkFnQWdCQ0FRUVFGcU5nSVFEQUVMSUFGQmp3Rk5CRUFnQkNBQk5nSUFJQVFnRUVFQmFqWUNFRUVISVJBTUFndEIvd0VoQVNBRVFmOEJOZ0lBQzBFSUlSQUxJQVFnRUVFQmF5SVFOZ0lJSUU4Z0NTQVJJQUVnRUhaQkFYRWlFQnMyQWdBZ0JDZ0NmQ0VCSUFkQkJHc2lDaUFLS0FJQVFZQ0FBWEkyQWdBZ0J5QUhLQUlFUVlBZ2NqWUNCQ0FISUFjb0FnQWdFRUVjZEhKQmdNQUFjallDQUNBSElBRkJBblJxSWdFZ0FTZ0NCRUVFY2pZQ0JDQUJJQUVvQWd4QkFYSTJBZ3dnQVNBQktBSUlJQkJCRW5SeVFRSnlOZ0lJQ3lBSElBY29BZ0JCZ0lDQWdBUnlOZ0lBQ3lBR1FRUnFJUVlnQjBFRWFpRUJJQU5CQVdvaUF5QUZSdzBBQ3lBSFFReHFJUUVnQmlBQ1FRSjBhaUVHSUFoQkJHb2lDQ0FFS0FLQUFTSURRWHh4U1EwQUN3c2dBeUFJVFEwRElBVkZEUU5CQUNFVFFRQWdFV3NoQ3lBRElSQURRQUpBSUFnZ0VFWUVRQ0FJSVJBTUFRc2dBVUVFYXlFTUlBRW9BZ0FoRFVFQUlRSURRQUpBSUEwZ0FrRURiQ0lIZGlJSlFaQ0FnQUZ4RFFBZ0NVSHZBM0ZGRFFBZ0JDZ0NBQ0VEQWtBZ0JDZ0NDQ0lKRFFBZ0EwSC9BVWNoRUNBRUtBSVFJZ2t0QUFBaEF3SkFJQkJGQkVBZ0EwR1FBVThFUUVIL0FTRURJQVJCL3dFMkFnQU1BZ3NnQkNBRE5nSUFJQVFnQ1VFQmFqWUNFRUVISVFrTUFnc2dCQ0FETmdJQUlBUWdDVUVCYWpZQ0VBdEJDQ0VKQ3lBRUlBbEJBV3NpQ1RZQ0NBSkFJQU1nQ1haQkFYRkZEUUFnQmlBQ0lBVnNRUUowYWlGUUFrQWdDUTBBSUFOQi93RkhJUTBnQkNnQ0VDSUpMUUFBSVFNQ1FDQU5SUVJBSUFOQmtBRlBCRUJCL3dFaEF5QUVRZjhCTmdJQURBSUxJQVFnQXpZQ0FDQUVJQWxCQVdvMkFoQkJCeUVKREFJTElBUWdBellDQUNBRUlBbEJBV28yQWhBTFFRZ2hDUXNnQkNBSlFRRnJJZ2syQWdnZ1VDQUxJQkVnQXlBSmRrRUJjU0lKR3pZQ0FDQUVLQUo4SVJBZ0RDQU1LQUlBUVNBZ0IzUnlOZ0lBSUFFZ0FTZ0NBQ0FKUVJOMFFSQnlJQWQwY2pZQ0FDQUJJQUVvQWdSQkNDQUhkSEkyQWdRZ0FpQWxja1VFUUNBQlFYNGdFR3RCQW5ScUlnTWdBeWdDQkVHQWdBSnlOZ0lFSUFNZ0F5Z0NBQ0FKUVI5MGNrR0FnQVJ5TmdJQUlBTkJCR3NpQXlBREtBSUFRWUNBQ0hJMkFnQUxJQUpCQTBjTkFDQUJJQkJCQW5ScUlnTWdBeWdDQkVFRWNqWUNCQ0FESUFNb0FneEJBWEkyQWd3Z0F5QURLQUlJSUFsQkVuUnlRUUp5TmdJSUN5QUJJQUVvQWdCQmdJQ0FBU0FIZEhJaURUWUNBQ0FFS0FLQUFTRURDeUFESVJBZ0FrRUJhaUlDSUFNZ0NHdEpEUUFMQ3lBR1FRUnFJUVlnQVVFRWFpRUJJQk5CQVdvaUV5QUZSdzBBQ3d3REMwRUFJUWRCQUNFTlFRQWhGd0pBQWtBQ1FBSkFJQVFvQW53aUVFSEFBRWNOQUNBRUtBS0FBVUhBQUVjTkFFRUFRUUVnR1hRaUFVRUJkaUFCY2lJUmF5RUZJQVJCSEdvaEVDQUVLQUo0UVl3Q2FpRUdJQVFvQWdnaENDQUVLQUlFSVFNZ0JDZ0NBQ0VDSUFRb0FtZ2hEQ0FFS0FKMElRRWdGa0VJY1EwQkEwQkJBQ0VYQTBBZ0FTRUpJQVlpQnlnQ0FDSUdCRUFDUUNBR1FaQ0FnQUZ4RFFBZ0JrSHZBM0VpQVVVTkFDQURJQkFnQkNnQ2JDQUJhaTBBQUVFQ2RHb2lEQ2dDQUNJTEtBSUFJZ0ZySVFNQ2Z5QUJJQUpCRUhaTEJFQWdDeWdDQkNFS0lBd2dDMEVJUVF3Z0FTQURTeUlVRzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FFS0FJUUlnaEJBV29oQ3lBSUxRQUJJUU1nQ0MwQUFFSC9BVVlFUUNBRFFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUWdNQWdzZ0JDQUxOZ0lRSUFOQkNYUWdBbW9oQWtFSElRZ01BUXNnQkNBTE5nSVFRUWdoQ0NBRFFRaDBJQUpxSVFJTElBaEJBV3NoQ0NBQ1FRRjBJUUlnQVVFQmRDSUJRWUNBQWtrTkFBc2dBU0VESUFvZ0NrVWdGQnNNQVFzZ0FpQUJRUkIwYXlFQ0lBTkJnSUFDY1VVRVFDQUxLQUlFSVFvZ0RDQUxRUXhCQ0NBQklBTkxJaFFiYWlnQ0FEWUNBQU5BQWtBZ0NBMEFJQVFvQWhBaUNFRUJhaUVMSUFndEFBRWhBU0FJTFFBQVFmOEJSZ1JBSUFGQmtBRlBCRUFnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hDQXdDQ3lBRUlBczJBaEFnQVVFSmRDQUNhaUVDUVFjaENBd0JDeUFFSUFzMkFoQkJDQ0VJSUFGQkNIUWdBbW9oQWdzZ0NFRUJheUVJSUFKQkFYUWhBaUFEUVFGMElnTkJnSUFDU1EwQUN5QUtSU0FLSUJRYkRBRUxJQXNvQWdRTEJIOGdBeUFRSUFjb0FnUkJFWFpCQkhFZ0IwRUVheUlLS0FJQVFSTjJRUUZ4SUFaQkRuWkJFSEVnQmtFUWRrSEFBSEVnQmtHcUFYRnljbkp5SWhSQjBMa0JhaTBBQUVFQ2RHb2lEQ2dDQUNJTEtBSUFJZ0ZySVFNZ0ZFSFF1d0ZxTFFBQUlSTWdDU0FGSUJFQ2Z5QUJJQUpCRUhaTEJFQWdDeWdDQkNFVUlBd2dDMEVJUVF3Z0FTQURTeUlPRzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FFS0FJUUlnaEJBV29oQ3lBSUxRQUJJUU1nQ0MwQUFFSC9BVVlFUUNBRFFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUWdNQWdzZ0JDQUxOZ0lRSUFOQkNYUWdBbW9oQWtFSElRZ01BUXNnQkNBTE5nSVFRUWdoQ0NBRFFRaDBJQUpxSVFJTElBaEJBV3NoQ0NBQ1FRRjBJUUlnQVVFQmRDSUJRWUNBQWtrTkFBc2dBU0VESUJRZ0ZFVWdEaHNNQVFzZ0FpQUJRUkIwYXlFQ0lBTkJnSUFDY1VVRVFDQUxLQUlFSVJRZ0RDQUxRUXhCQ0NBQklBTkxJZzRiYWlnQ0FEWUNBQU5BQWtBZ0NBMEFJQVFvQWhBaUNFRUJhaUVMSUFndEFBRWhBU0FJTFFBQVFmOEJSZ1JBSUFGQmtBRlBCRUFnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hDQXdDQ3lBRUlBczJBaEFnQVVFSmRDQUNhaUVDUVFjaENBd0JDeUFFSUFzMkFoQkJDQ0VJSUFGQkNIUWdBbW9oQWdzZ0NFRUJheUVJSUFKQkFYUWhBaUFEUVFGMElnTkJnSUFDU1EwQUN5QVVSU0FVSUE0YkRBRUxJQXNvQWdRTElCTnpJZ0ViTmdJQUlBb2dDaWdDQUVFZ2NqWUNBQ0FISUFjb0FnUkJDSEkyQWdRZ0IwR01BbXNpQ3lBTEtBSUFRWUNBQ0hJMkFnQWdCMEdFQW1zaUN5QUxLQUlBUVlDQUFuSTJBZ0FnQjBHSUFtc2lDeUFMS0FJQUlBRkJIM1J5UVlDQUJISTJBZ0FnQmlBQlFSTjBja0VRY2dVZ0JndEJnSUNBQVhJaEJnc0NRQ0FHUVlDQmdBaHhEUUFnQmtINEhuRkZEUUFnQXlBUUlBUW9BbXdnQmtFRGRpSVVRZThEY1dvdEFBQkJBblJxSWd3b0FnQWlDeWdDQUNJQmF5RURBbjhnQVNBQ1FSQjJTd1JBSUFzb0FnUWhDaUFNSUF0QkNFRU1JQUVnQTBzaUV4dHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRc2dDQzBBQVNFRElBZ3RBQUJCL3dGR0JFQWdBMEdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFSURBSUxJQVFnQ3pZQ0VDQURRUWwwSUFKcUlRSkJCeUVJREFFTElBUWdDellDRUVFSUlRZ2dBMEVJZENBQ2FpRUNDeUFJUVFGcklRZ2dBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFFaEF5QUtJQXBGSUJNYkRBRUxJQUlnQVVFUWRHc2hBaUFEUVlDQUFuRkZCRUFnQ3lnQ0JDRUtJQXdnQzBFTVFRZ2dBU0FEU3lJVEcyb29BZ0EyQWdBRFFBSkFJQWdOQUNBRUtBSVFJZ2hCQVdvaEN5QUlMUUFCSVFFZ0NDMEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFnTUFnc2dCQ0FMTmdJUUlBRkJDWFFnQW1vaEFrRUhJUWdNQVFzZ0JDQUxOZ0lRUVFnaENDQUJRUWgwSUFKcUlRSUxJQWhCQVdzaENDQUNRUUYwSVFJZ0EwRUJkQ0lEUVlDQUFra05BQXNnQ2tVZ0NpQVRHd3dCQ3lBTEtBSUVDd1IvSUFNZ0VDQUhLQUlFUVJSMlFRUnhJQWRCQkdzaUNpZ0NBRUVXZGtFQmNTQUdRUTkyUVJCeElBWkJFM1pCd0FCeElCUkJxZ0Z4Y25KeWNpSVVRZEM1QVdvdEFBQkJBblJxSWd3b0FnQWlDeWdDQUNJQmF5RURJQlJCMExzQmFpMEFBQ0VUSUFrZ0JTQVJBbjhnQVNBQ1FSQjJTd1JBSUFzb0FnUWhGQ0FNSUF0QkNFRU1JQUVnQTBzaURodHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRc2dDQzBBQVNFRElBZ3RBQUJCL3dGR0JFQWdBMEdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFSURBSUxJQVFnQ3pZQ0VDQURRUWwwSUFKcUlRSkJCeUVJREFFTElBUWdDellDRUVFSUlRZ2dBMEVJZENBQ2FpRUNDeUFJUVFGcklRZ2dBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFFaEF5QVVJQlJGSUE0YkRBRUxJQUlnQVVFUWRHc2hBaUFEUVlDQUFuRkZCRUFnQ3lnQ0JDRVVJQXdnQzBFTVFRZ2dBU0FEU3lJT0cyb29BZ0EyQWdBRFFBSkFJQWdOQUNBRUtBSVFJZ2hCQVdvaEN5QUlMUUFCSVFFZ0NDMEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFnTUFnc2dCQ0FMTmdJUUlBRkJDWFFnQW1vaEFrRUhJUWdNQVFzZ0JDQUxOZ0lRUVFnaENDQUJRUWgwSUFKcUlRSUxJQWhCQVdzaENDQUNRUUYwSVFJZ0EwRUJkQ0lEUVlDQUFra05BQXNnRkVVZ0ZDQU9Hd3dCQ3lBTEtBSUVDeUFUY3lJQkd6WUNnQUlnQ2lBS0tBSUFRWUFDY2pZQ0FDQUhJQWNvQWdSQndBQnlOZ0lFSUFZZ0FVRVdkSEpCZ0FGeUJTQUdDMEdBZ0lBSWNpRUdDd0pBSUFaQmdJaUF3QUJ4RFFBZ0JrSEE5d0Z4UlEwQUlBTWdFQ0FFS0FKc0lBWkJCbllpRkVIdkEzRnFMUUFBUVFKMGFpSU1LQUlBSWdzb0FnQWlBV3NoQXdKL0lBRWdBa0VRZGtzRVFDQUxLQUlFSVFvZ0RDQUxRUWhCRENBQklBTkxJaE1iYWlnQ0FEWUNBQU5BQWtBZ0NBMEFJQVFvQWhBaUNFRUJhaUVMSUFndEFBRWhBeUFJTFFBQVFmOEJSZ1JBSUFOQmtBRlBCRUFnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hDQXdDQ3lBRUlBczJBaEFnQTBFSmRDQUNhaUVDUVFjaENBd0JDeUFFSUFzMkFoQkJDQ0VJSUFOQkNIUWdBbW9oQWdzZ0NFRUJheUVJSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUJJUU1nQ2lBS1JTQVRHd3dCQ3lBQ0lBRkJFSFJySVFJZ0EwR0FnQUp4UlFSQUlBc29BZ1FoQ2lBTUlBdEJERUVJSUFFZ0Ewc2lFeHRxS0FJQU5nSUFBMEFDUUNBSURRQWdCQ2dDRUNJSVFRRnFJUXNnQ0MwQUFTRUJJQWd0QUFCQi93RkdCRUFnQVVHUUFVOEVRQ0FFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUlEQUlMSUFRZ0N6WUNFQ0FCUVFsMElBSnFJUUpCQnlFSURBRUxJQVFnQ3pZQ0VFRUlJUWdnQVVFSWRDQUNhaUVDQ3lBSVFRRnJJUWdnQWtFQmRDRUNJQU5CQVhRaUEwR0FnQUpKRFFBTElBcEZJQW9nRXhzTUFRc2dDeWdDQkFzRWZ5QURJQkFnQnlnQ0JFRVhka0VFY1NBSFFRUnJJZ29vQWdCQkdYWkJBWEVnQmtFU2RrRVFjU0FHUVJaMlFjQUFjU0FVUWFvQmNYSnljbklpRkVIUXVRRnFMUUFBUVFKMGFpSU1LQUlBSWdzb0FnQWlBV3NoQXlBVVFkQzdBV290QUFBaEV5QUpJQVVnRVFKL0lBRWdBa0VRZGtzRVFDQUxLQUlFSVJRZ0RDQUxRUWhCRENBQklBTkxJZzRiYWlnQ0FEWUNBQU5BQWtBZ0NBMEFJQVFvQWhBaUNFRUJhaUVMSUFndEFBRWhBeUFJTFFBQVFmOEJSZ1JBSUFOQmtBRlBCRUFnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hDQXdDQ3lBRUlBczJBaEFnQTBFSmRDQUNhaUVDUVFjaENBd0JDeUFFSUFzMkFoQkJDQ0VJSUFOQkNIUWdBbW9oQWdzZ0NFRUJheUVJSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUJJUU1nRkNBVVJTQU9Hd3dCQ3lBQ0lBRkJFSFJySVFJZ0EwR0FnQUp4UlFSQUlBc29BZ1FoRkNBTUlBdEJERUVJSUFFZ0Ewc2lEaHRxS0FJQU5nSUFBMEFDUUNBSURRQWdCQ2dDRUNJSVFRRnFJUXNnQ0MwQUFTRUJJQWd0QUFCQi93RkdCRUFnQVVHUUFVOEVRQ0FFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUlEQUlMSUFRZ0N6WUNFQ0FCUVFsMElBSnFJUUpCQnlFSURBRUxJQVFnQ3pZQ0VFRUlJUWdnQVVFSWRDQUNhaUVDQ3lBSVFRRnJJUWdnQWtFQmRDRUNJQU5CQVhRaUEwR0FnQUpKRFFBTElCUkZJQlFnRGhzTUFRc2dDeWdDQkFzZ0UzTWlBUnMyQW9BRUlBb2dDaWdDQUVHQUVISTJBZ0FnQnlBSEtBSUVRWUFFY2pZQ0JDQUdJQUZCR1hSeVFZQUljZ1VnQmd0QmdJQ0F3QUJ5SVFZTEFrQWdCa0dBd0lDQUJIRU5BQ0FHUVlDOEQzRkZEUUFnQXlBUUlBUW9BbXdnQmtFSmRpSVVRZThEY1dvdEFBQkJBblJxSWd3b0FnQWlDeWdDQUNJQmF5RURBbjhnQVNBQ1FSQjJTd1JBSUFzb0FnUWhDaUFNSUF0QkNFRU1JQUVnQTBzaUV4dHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRc2dDQzBBQVNFRElBZ3RBQUJCL3dGR0JFQWdBMEdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFSURBSUxJQVFnQ3pZQ0VDQURRUWwwSUFKcUlRSkJCeUVJREFFTElBUWdDellDRUVFSUlRZ2dBMEVJZENBQ2FpRUNDeUFJUVFGcklRZ2dBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFFaEF5QUtJQXBGSUJNYkRBRUxJQUlnQVVFUWRHc2hBaUFEUVlDQUFuRkZCRUFnQ3lnQ0JDRUtJQXdnQzBFTVFRZ2dBU0FEU3lJVEcyb29BZ0EyQWdBRFFBSkFJQWdOQUNBRUtBSVFJZ2hCQVdvaEN5QUlMUUFCSVFFZ0NDMEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFnTUFnc2dCQ0FMTmdJUUlBRkJDWFFnQW1vaEFrRUhJUWdNQVFzZ0JDQUxOZ0lRUVFnaENDQUJRUWgwSUFKcUlRSUxJQWhCQVdzaENDQUNRUUYwSVFJZ0EwRUJkQ0lEUVlDQUFra05BQXNnQ2tVZ0NpQVRHd3dCQ3lBTEtBSUVDd1IvSUFNZ0VDQUhLQUlFUVJwMlFRUnhJQWRCQkdzaUNpZ0NBRUVjZGtFQmNTQUdRUlYyUVJCeElBWkJHWFpCd0FCeElCUkJxZ0Z4Y25KeWNpSVVRZEM1QVdvdEFBQkJBblJxSWd3b0FnQWlDeWdDQUNJQmF5RURJQlJCMExzQmFpMEFBQ0VUSUFrZ0JTQVJBbjhnQVNBQ1FSQjJTd1JBSUFzb0FnUWhGQ0FNSUF0QkNFRU1JQUVnQTBzaURodHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRc2dDQzBBQVNFRElBZ3RBQUJCL3dGR0JFQWdBMEdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFSURBSUxJQVFnQ3pZQ0VDQURRUWwwSUFKcUlRSkJCeUVJREFFTElBUWdDellDRUVFSUlRZ2dBMEVJZENBQ2FpRUNDeUFJUVFGcklRZ2dBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFFaEF5QVVJQlJGSUE0YkRBRUxJQUlnQVVFUWRHc2hBaUFEUVlDQUFuRkZCRUFnQ3lnQ0JDRVVJQXdnQzBFTVFRZ2dBU0FEU3lJT0cyb29BZ0EyQWdBRFFBSkFJQWdOQUNBRUtBSVFJZ2hCQVdvaEN5QUlMUUFCSVFFZ0NDMEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFnTUFnc2dCQ0FMTmdJUUlBRkJDWFFnQW1vaEFrRUhJUWdNQVFzZ0JDQUxOZ0lRUVFnaENDQUJRUWgwSUFKcUlRSUxJQWhCQVdzaENDQUNRUUYwSVFJZ0EwRUJkQ0lEUVlDQUFra05BQXNnRkVVZ0ZDQU9Hd3dCQ3lBTEtBSUVDeUFUY3lJQkd6WUNnQVlnQ2lBS0tBSUFRWUNBQVhJMkFnQWdCeUFIS0FJRVFZQWdjallDQkNBSElBY29Bb1FDUVFSeU5nS0VBaUFISUFjb0Fvd0NRUUZ5TmdLTUFpQUhJQWNvQW9nQ0lBRkJFblJ5UVFKeU5nS0lBaUFHSUFGQkhIUnlRWURBQUhJRklBWUxRWUNBZ0lBRWNpRUdDeUFISUFZMkFnQUxJQWRCQkdvaEJpQUpRUVJxSVFFZ0YwRUJhaUlYUWNBQVJ3MEFDeUFIUVF4cUlRWWdDVUdFQm1vaEFTQU5RVHhKSVZFZ0RVRUVhaUVOSUZFTkFBc01BZ3RCQVNBWmRDSUJRUUYySUFGeUlRMGdCQ2dDZUNJSklCQkJBblJxUVF4cUlRWWdCQ2dDZ0FFaEFTQUVLQUlJSVFnZ0JDZ0NCQ0VESUFRb0FnQWhBaUFFS0FKb0lRd2dCQ2dDZENFUkFrQWdGa0VJY1FSQUFrQWdBVUVFU1EwQUlCQUVRRUVBSUExcklSUWdCRUVjYWlFRklCQkJER3doRXlBUVFRTjBJUlVEUUVFQUlRc0RRQ0FHSWdrb0FnQWlCZ1JBQWtBZ0JrR1FnSUFCY1EwQUlBWkI3d054SWdGRkRRQWdBeUFGSUFRb0Ftd2dBV290QUFCQkFuUnFJZ3dvQWdBaUNpZ0NBQ0lCYXlFREFuOGdBU0FDUVJCMlRRUkFJQUlnQVVFUWRHc2hBaUFEUVlDQUFuRUVRQ0FLS0FJRURBSUxJQW9vQWdRaERpQU1JQXBCREVFSUlBRWdBMHNpRWh0cUtBSUFOZ0lBQTBBQ1FDQUlEUUFnQkNnQ0VDSUlRUUZxSVFvZ0NDMEFBU0VCSUFndEFBQkIvd0ZIQkVBZ0JDQUtOZ0lRUVFnaENDQUJRUWgwSUFKcUlRSU1BUXNnQVVHUEFVMEVRQ0FFSUFvMkFoQWdBVUVKZENBQ2FpRUNRUWNoQ0F3QkN5QUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFSUN5QUlRUUZySVFnZ0FrRUJkQ0VDSUFOQkFYUWlBMEdBZ0FKSkRRQUxJQTVGSUE0Z0Voc01BUXNnQ2lnQ0JDRU9JQXdnQ2tFSVFRd2dBU0FEU3lJU0cyb29BZ0EyQWdBRFFBSkFJQWdOQUNBRUtBSVFJZ2hCQVdvaENpQUlMUUFCSVFNZ0NDMEFBRUgvQVVjRVFDQUVJQW8yQWhCQkNDRUlJQU5CQ0hRZ0Ftb2hBZ3dCQ3lBRFFZOEJUUVJBSUFRZ0NqWUNFQ0FEUVFsMElBSnFJUUpCQnlFSURBRUxJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRZ0xJQWhCQVdzaENDQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnQVNFRElBNGdEa1VnRWhzTEJIOGdBeUFGSUFrb0FnUkJFWFpCQkhFZ0NVRUVheUlPS0FJQVFSTjJRUUZ4SUFaQkRuWkJFSEVnQmtFUWRrSEFBSEVnQmtHcUFYRnljbkp5SWhKQjBMa0JhaTBBQUVFQ2RHb2lEQ2dDQUNJS0tBSUFJZ0ZySVFNZ0VrSFF1d0ZxTFFBQUlSZ2dFU0FVSUEwQ2Z5QUJJQUpCRUhaTkJFQWdBaUFCUVJCMGF5RUNJQU5CZ0lBQ2NRUkFJQW9vQWdRTUFnc2dDaWdDQkNFU0lBd2dDa0VNUVFnZ0FTQURTeUliRzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FFS0FJUUlnaEJBV29oQ2lBSUxRQUJJUUVnQ0MwQUFFSC9BVWNFUUNBRUlBbzJBaEJCQ0NFSUlBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQVFnQ2pZQ0VDQUJRUWwwSUFKcUlRSkJCeUVJREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFnTElBaEJBV3NoQ0NBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dFa1VnRWlBYkd3d0JDeUFLS0FJRUlSSWdEQ0FLUVFoQkRDQUJJQU5MSWhzYmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFRb0FoQWlDRUVCYWlFS0lBZ3RBQUVoQXlBSUxRQUFRZjhCUndSQUlBUWdDallDRUVFSUlRZ2dBMEVJZENBQ2FpRUNEQUVMSUFOQmp3Rk5CRUFnQkNBS05nSVFJQU5CQ1hRZ0Ftb2hBa0VISVFnTUFRc2dCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaENBc2dDRUVCYXlFSUlBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFCSVFNZ0VpQVNSU0FiR3dzZ0dITWlBUnMyQWdBZ0RpQU9LQUlBUVNCeU5nSUFJQWtnQ1NnQ0JFRUljallDQkNBR0lBRkJFM1J5UVJCeUJTQUdDMEdBZ0lBQmNpRUdDd0pBSUFaQmdJR0FDSEVOQUNBR1FmZ2VjVVVOQUNBRElBVWdCQ2dDYkNBR1FRTjJJaEpCN3dOeGFpMEFBRUVDZEdvaURDZ0NBQ0lLS0FJQUlnRnJJUU1DZnlBQklBSkJFSFpOQkVBZ0FpQUJRUkIwYXlFQ0lBTkJnSUFDY1FSQUlBb29BZ1FNQWdzZ0NpZ0NCQ0VPSUF3Z0NrRU1RUWdnQVNBRFN5SVlHMm9vQWdBMkFnQURRQUpBSUFnTkFDQUVLQUlRSWdoQkFXb2hDaUFJTFFBQklRRWdDQzBBQUVIL0FVY0VRQ0FFSUFvMkFoQkJDQ0VJSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdDallDRUNBQlFRbDBJQUpxSVFKQkJ5RUlEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUWdMSUFoQkFXc2hDQ0FDUVFGMElRSWdBMEVCZENJRFFZQ0FBa2tOQUFzZ0RrVWdEaUFZR3d3QkN5QUtLQUlFSVE0Z0RDQUtRUWhCRENBQklBTkxJaGdiYWlnQ0FEWUNBQU5BQWtBZ0NBMEFJQVFvQWhBaUNFRUJhaUVLSUFndEFBRWhBeUFJTFFBQVFmOEJSd1JBSUFRZ0NqWUNFRUVJSVFnZ0EwRUlkQ0FDYWlFQ0RBRUxJQU5CandGTkJFQWdCQ0FLTmdJUUlBTkJDWFFnQW1vaEFrRUhJUWdNQVFzZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQ0FzZ0NFRUJheUVJSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUJJUU1nRGlBT1JTQVlHd3NFZnlBRElBVWdDU2dDQkVFVWRrRUVjU0FKUVFScklnNG9BZ0JCRm5aQkFYRWdCa0VQZGtFUWNTQUdRUk4yUWNBQWNTQVNRYW9CY1hKeWNuSWlFa0hRdVFGcUxRQUFRUUowYWlJTUtBSUFJZ29vQWdBaUFXc2hBeUFTUWRDN0FXb3RBQUFoR0NBUklCQkJBblJxSUJRZ0RRSi9JQUVnQWtFUWRrMEVRQ0FDSUFGQkVIUnJJUUlnQTBHQWdBSnhCRUFnQ2lnQ0JBd0NDeUFLS0FJRUlSSWdEQ0FLUVF4QkNDQUJJQU5MSWhzYmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFRb0FoQWlDRUVCYWlFS0lBZ3RBQUVoQVNBSUxRQUFRZjhCUndSQUlBUWdDallDRUVFSUlRZ2dBVUVJZENBQ2FpRUNEQUVMSUFGQmp3Rk5CRUFnQkNBS05nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFnTUFRc2dCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaENBc2dDRUVCYXlFSUlBSkJBWFFoQWlBRFFRRjBJZ05CZ0lBQ1NRMEFDeUFTUlNBU0lCc2JEQUVMSUFvb0FnUWhFaUFNSUFwQkNFRU1JQUVnQTBzaUd4dHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRb2dDQzBBQVNFRElBZ3RBQUJCL3dGSEJFQWdCQ0FLTmdJUVFRZ2hDQ0FEUVFoMElBSnFJUUlNQVFzZ0EwR1BBVTBFUUNBRUlBbzJBaEFnQTBFSmRDQUNhaUVDUVFjaENBd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUlDeUFJUVFGcklRZ2dBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFFaEF5QVNJQkpGSUJzYkN5QVljeUlCR3pZQ0FDQU9JQTRvQWdCQmdBSnlOZ0lBSUFrZ0NTZ0NCRUhBQUhJMkFnUWdCaUFCUVJaMGNrR0FBWElGSUFZTFFZQ0FnQWh5SVFZTEFrQWdCa0dBaUlEQUFIRU5BQ0FHUWNEM0FYRkZEUUFnQXlBRklBUW9BbXdnQmtFR2RpSVNRZThEY1dvdEFBQkJBblJxSWd3b0FnQWlDaWdDQUNJQmF5RURBbjhnQVNBQ1FSQjJUUVJBSUFJZ0FVRVFkR3NoQWlBRFFZQ0FBbkVFUUNBS0tBSUVEQUlMSUFvb0FnUWhEaUFNSUFwQkRFRUlJQUVnQTBzaUdCdHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRb2dDQzBBQVNFQklBZ3RBQUJCL3dGSEJFQWdCQ0FLTmdJUVFRZ2hDQ0FCUVFoMElBSnFJUUlNQVFzZ0FVR1BBVTBFUUNBRUlBbzJBaEFnQVVFSmRDQUNhaUVDUVFjaENBd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUlDeUFJUVFGcklRZ2dBa0VCZENFQ0lBTkJBWFFpQTBHQWdBSkpEUUFMSUE1RklBNGdHQnNNQVFzZ0NpZ0NCQ0VPSUF3Z0NrRUlRUXdnQVNBRFN5SVlHMm9vQWdBMkFnQURRQUpBSUFnTkFDQUVLQUlRSWdoQkFXb2hDaUFJTFFBQklRTWdDQzBBQUVIL0FVY0VRQ0FFSUFvMkFoQkJDQ0VJSUFOQkNIUWdBbW9oQWd3QkN5QURRWThCVFFSQUlBUWdDallDRUNBRFFRbDBJQUpxSVFKQkJ5RUlEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUWdMSUFoQkFXc2hDQ0FDUVFGMElRSWdBVUVCZENJQlFZQ0FBa2tOQUFzZ0FTRURJQTRnRGtVZ0dCc0xCSDhnQXlBRklBa29BZ1JCRjNaQkJIRWdDVUVFYXlJT0tBSUFRUmwyUVFGeElBWkJFblpCRUhFZ0JrRVdka0hBQUhFZ0VrR3FBWEZ5Y25KeUloSkIwTGtCYWkwQUFFRUNkR29pRENnQ0FDSUtLQUlBSWdGcklRTWdFa0hRdXdGcUxRQUFJUmdnRVNBVmFpQVVJQTBDZnlBQklBSkJFSFpOQkVBZ0FpQUJRUkIwYXlFQ0lBTkJnSUFDY1FSQUlBb29BZ1FNQWdzZ0NpZ0NCQ0VTSUF3Z0NrRU1RUWdnQVNBRFN5SWJHMm9vQWdBMkFnQURRQUpBSUFnTkFDQUVLQUlRSWdoQkFXb2hDaUFJTFFBQklRRWdDQzBBQUVIL0FVY0VRQ0FFSUFvMkFoQkJDQ0VJSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdDallDRUNBQlFRbDBJQUpxSVFKQkJ5RUlEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUWdMSUFoQkFXc2hDQ0FDUVFGMElRSWdBMEVCZENJRFFZQ0FBa2tOQUFzZ0VrVWdFaUFiR3d3QkN5QUtLQUlFSVJJZ0RDQUtRUWhCRENBQklBTkxJaHNiYWlnQ0FEWUNBQU5BQWtBZ0NBMEFJQVFvQWhBaUNFRUJhaUVLSUFndEFBRWhBeUFJTFFBQVFmOEJSd1JBSUFRZ0NqWUNFRUVJSVFnZ0EwRUlkQ0FDYWlFQ0RBRUxJQU5CandGTkJFQWdCQ0FLTmdJUUlBTkJDWFFnQW1vaEFrRUhJUWdNQVFzZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQ0FzZ0NFRUJheUVJSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUJJUU1nRWlBU1JTQWJHd3NnR0hNaUFSczJBZ0FnRGlBT0tBSUFRWUFRY2pZQ0FDQUpJQWtvQWdSQmdBUnlOZ0lFSUFZZ0FVRVpkSEpCZ0FoeUJTQUdDMEdBZ0lEQUFISWhCZ3NDUUNBR1FZREFnSUFFY1EwQUlBWkJnTHdQY1VVTkFDQURJQVVnQkNnQ2JDQUdRUWwySWhKQjd3TnhhaTBBQUVFQ2RHb2lEQ2dDQUNJS0tBSUFJZ0ZySVFNQ2Z5QUJJQUpCRUhaTkJFQWdBaUFCUVJCMGF5RUNJQU5CZ0lBQ2NRUkFJQW9vQWdRTUFnc2dDaWdDQkNFT0lBd2dDa0VNUVFnZ0FTQURTeUlZRzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FFS0FJUUlnaEJBV29oQ2lBSUxRQUJJUUVnQ0MwQUFFSC9BVWNFUUNBRUlBbzJBaEJCQ0NFSUlBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQVFnQ2pZQ0VDQUJRUWwwSUFKcUlRSkJCeUVJREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFnTElBaEJBV3NoQ0NBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dEa1VnRGlBWUd3d0JDeUFLS0FJRUlRNGdEQ0FLUVFoQkRDQUJJQU5MSWhnYmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFRb0FoQWlDRUVCYWlFS0lBZ3RBQUVoQXlBSUxRQUFRZjhCUndSQUlBUWdDallDRUVFSUlRZ2dBMEVJZENBQ2FpRUNEQUVMSUFOQmp3Rk5CRUFnQkNBS05nSVFJQU5CQ1hRZ0Ftb2hBa0VISVFnTUFRc2dCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaENBc2dDRUVCYXlFSUlBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFCSVFNZ0RpQU9SU0FZR3dzRWZ5QURJQVVnQ1NnQ0JFRWFka0VFY1NBSlFRUnJJZzRvQWdCQkhIWkJBWEVnQmtFVmRrRVFjU0FHUVJsMlFjQUFjU0FTUWFvQmNYSnljbklpRWtIUXVRRnFMUUFBUVFKMGFpSU1LQUlBSWdvb0FnQWlBV3NoQXlBU1FkQzdBV290QUFBaEdDQVJJQk5xSUJRZ0RRSi9JQUVnQWtFUWRrMEVRQ0FDSUFGQkVIUnJJUUlnQTBHQWdBSnhCRUFnQ2lnQ0JBd0NDeUFLS0FJRUlSSWdEQ0FLUVF4QkNDQUJJQU5MSWhzYmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFRb0FoQWlDRUVCYWlFS0lBZ3RBQUVoQVNBSUxRQUFRZjhCUndSQUlBUWdDallDRUVFSUlRZ2dBVUVJZENBQ2FpRUNEQUVMSUFGQmp3Rk5CRUFnQkNBS05nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFnTUFRc2dCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaENBc2dDRUVCYXlFSUlBSkJBWFFoQWlBRFFRRjBJZ05CZ0lBQ1NRMEFDeUFTUlNBU0lCc2JEQUVMSUFvb0FnUWhFaUFNSUFwQkNFRU1JQUVnQTBzaUd4dHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRb2dDQzBBQVNFRElBZ3RBQUJCL3dGSEJFQWdCQ0FLTmdJUVFRZ2hDQ0FEUVFoMElBSnFJUUlNQVFzZ0EwR1BBVTBFUUNBRUlBbzJBaEFnQTBFSmRDQUNhaUVDUVFjaENBd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUlDeUFJUVFGcklRZ2dBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFFaEF5QVNJQkpGSUJzYkN5QVljeUlLR3pZQ0FDQU9JQTRvQWdCQmdJQUJjallDQUNBSklBa29BZ1JCZ0NCeU5nSUVJQVFvQW54QkFuUWdDV29pQVNBQktBSUVRUVJ5TmdJRUlBRWdBU2dDREVFQmNqWUNEQ0FCSUFFb0FnZ2dDa0VTZEhKQkFuSTJBZ2dnQmlBS1FSeDBja0dBd0FCeUJTQUdDMEdBZ0lDQUJISWhCZ3NnQ1NBR05nSUFDeUFKUVFScUlRWWdFVUVFYWlFUklBdEJBV29pQ3lBUVJ3MEFDeUFKUVF4cUlRWWdFU0FUYWlFUklBZEJCR29pQnlBRUtBS0FBU0lCUVh4eFNRMEFDd3dCQzBFRUlBRkJmSEVpQmlBR1FRUk5HMEVCYXlJR1FYeHhRUVJxSVFjZ0NTQUdRUUYwUVhoeGFrRVVhaUVHQ3lBRUlBZzJBZ2dnQkNBRE5nSUVJQVFnQWpZQ0FDQUVJQXcyQW1nZ0VFVU5BU0FCSUFkTkRRRURRQ0FCSUFkR0lWSkJBQ0VJSUFjaEFTQlNSUVJBQTBBZ0JDQUdJQkVnQ0NBUWJFRUNkR29nRFNBSUlBUW9BbnhCQW1wQkFSQlpJQWhCQVdvaUNDQUVLQUtBQVNJQklBZHJTUTBBQ3dzZ0JrRUVhaUVHSUJGQkJHb2hFU0FYUVFGcUloY2dFRWNOQUFzTUFRc0NRQ0FCUVFSSkRRQWdFQVJBUVFBZ0RXc2hGQ0FFUVJ4cUlRVWdFRUVNYkNFVElCQkJBM1FoRlFOQVFRQWhDd05BSUFZaUNTZ0NBQ0lHQkVBQ1FDQUdRWkNBZ0FGeERRQWdCa0h2QTNFaUFVVU5BQ0FESUFVZ0JDZ0NiQ0FCYWkwQUFFRUNkR29pRENnQ0FDSUtLQUlBSWdGcklRTUNmeUFCSUFKQkVIWk5CRUFnQWlBQlFSQjBheUVDSUFOQmdJQUNjUVJBSUFvb0FnUU1BZ3NnQ2lnQ0JDRU9JQXdnQ2tFTVFRZ2dBU0FEU3lJU0cyb29BZ0EyQWdBRFFBSkFJQWdOQUNBRUtBSVFJZ2hCQVdvaENpQUlMUUFCSVFFZ0NDMEFBRUgvQVVjRVFDQUVJQW8yQWhCQkNDRUlJQUZCQ0hRZ0Ftb2hBZ3dCQ3lBQlFZOEJUUVJBSUFRZ0NqWUNFQ0FCUVFsMElBSnFJUUpCQnlFSURBRUxJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRZ0xJQWhCQVdzaENDQUNRUUYwSVFJZ0EwRUJkQ0lEUVlDQUFra05BQXNnRGtVZ0RpQVNHd3dCQ3lBS0tBSUVJUTRnRENBS1FRaEJEQ0FCSUFOTEloSWJhaWdDQURZQ0FBTkFBa0FnQ0EwQUlBUW9BaEFpQ0VFQmFpRUtJQWd0QUFFaEF5QUlMUUFBUWY4QlJ3UkFJQVFnQ2pZQ0VFRUlJUWdnQTBFSWRDQUNhaUVDREFFTElBTkJqd0ZOQkVBZ0JDQUtOZ0lRSUFOQkNYUWdBbW9oQWtFSElRZ01BUXNnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hDQXNnQ0VFQmF5RUlJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBQklRTWdEaUFPUlNBU0d3c0VmeUFESUFVZ0NTZ0NCRUVSZGtFRWNTQUpRUVJySWc0b0FnQkJFM1pCQVhFZ0JrRU9ka0VRY1NBR1FSQjJRY0FBY1NBR1Fhb0JjWEp5Y25JaUVrSFF1UUZxTFFBQVFRSjBhaUlNS0FJQUlnb29BZ0FpQVdzaEF5QVNRZEM3QVdvdEFBQWhHQ0FSSUJRZ0RRSi9JQUVnQWtFUWRrMEVRQ0FDSUFGQkVIUnJJUUlnQTBHQWdBSnhCRUFnQ2lnQ0JBd0NDeUFLS0FJRUlSSWdEQ0FLUVF4QkNDQUJJQU5MSWhzYmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFRb0FoQWlDRUVCYWlFS0lBZ3RBQUVoQVNBSUxRQUFRZjhCUndSQUlBUWdDallDRUVFSUlRZ2dBVUVJZENBQ2FpRUNEQUVMSUFGQmp3Rk5CRUFnQkNBS05nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFnTUFRc2dCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaENBc2dDRUVCYXlFSUlBSkJBWFFoQWlBRFFRRjBJZ05CZ0lBQ1NRMEFDeUFTUlNBU0lCc2JEQUVMSUFvb0FnUWhFaUFNSUFwQkNFRU1JQUVnQTBzaUd4dHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRb2dDQzBBQVNFRElBZ3RBQUJCL3dGSEJFQWdCQ0FLTmdJUVFRZ2hDQ0FEUVFoMElBSnFJUUlNQVFzZ0EwR1BBVTBFUUNBRUlBbzJBaEFnQTBFSmRDQUNhaUVDUVFjaENBd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUlDeUFJUVFGcklRZ2dBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFFaEF5QVNJQkpGSUJzYkN5QVljeUlLR3pZQ0FDQU9JQTRvQWdCQklISTJBZ0FnQ1NBSktBSUVRUWh5TmdJRUlBbEJmaUFFS0FKOGEwRUNkR29pQVNBQktBSUVRWUNBQW5JMkFnUWdBU0FCS0FJQUlBcEJIM1J5UVlDQUJISTJBZ0FnQVVFRWF5SUJJQUVvQWdCQmdJQUljallDQUNBR0lBcEJFM1J5UVJCeUJTQUdDMEdBZ0lBQmNpRUdDd0pBSUFaQmdJR0FDSEVOQUNBR1FmZ2VjVVVOQUNBRElBVWdCQ2dDYkNBR1FRTjJJaEpCN3dOeGFpMEFBRUVDZEdvaURDZ0NBQ0lLS0FJQUlnRnJJUU1DZnlBQklBSkJFSFpOQkVBZ0FpQUJRUkIwYXlFQ0lBTkJnSUFDY1FSQUlBb29BZ1FNQWdzZ0NpZ0NCQ0VPSUF3Z0NrRU1RUWdnQVNBRFN5SVlHMm9vQWdBMkFnQURRQUpBSUFnTkFDQUVLQUlRSWdoQkFXb2hDaUFJTFFBQklRRWdDQzBBQUVIL0FVY0VRQ0FFSUFvMkFoQkJDQ0VJSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdDallDRUNBQlFRbDBJQUpxSVFKQkJ5RUlEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUWdMSUFoQkFXc2hDQ0FDUVFGMElRSWdBMEVCZENJRFFZQ0FBa2tOQUFzZ0RrVWdEaUFZR3d3QkN5QUtLQUlFSVE0Z0RDQUtRUWhCRENBQklBTkxJaGdiYWlnQ0FEWUNBQU5BQWtBZ0NBMEFJQVFvQWhBaUNFRUJhaUVLSUFndEFBRWhBeUFJTFFBQVFmOEJSd1JBSUFRZ0NqWUNFRUVJSVFnZ0EwRUlkQ0FDYWlFQ0RBRUxJQU5CandGTkJFQWdCQ0FLTmdJUUlBTkJDWFFnQW1vaEFrRUhJUWdNQVFzZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQ0FzZ0NFRUJheUVJSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUJJUU1nRGlBT1JTQVlHd3NFZnlBRElBVWdDU2dDQkVFVWRrRUVjU0FKUVFScklnNG9BZ0JCRm5aQkFYRWdCa0VQZGtFUWNTQUdRUk4yUWNBQWNTQVNRYW9CY1hKeWNuSWlFa0hRdVFGcUxRQUFRUUowYWlJTUtBSUFJZ29vQWdBaUFXc2hBeUFTUWRDN0FXb3RBQUFoR0NBUklCQkJBblJxSUJRZ0RRSi9JQUVnQWtFUWRrMEVRQ0FDSUFGQkVIUnJJUUlnQTBHQWdBSnhCRUFnQ2lnQ0JBd0NDeUFLS0FJRUlSSWdEQ0FLUVF4QkNDQUJJQU5MSWhzYmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFRb0FoQWlDRUVCYWlFS0lBZ3RBQUVoQVNBSUxRQUFRZjhCUndSQUlBUWdDallDRUVFSUlRZ2dBVUVJZENBQ2FpRUNEQUVMSUFGQmp3Rk5CRUFnQkNBS05nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFnTUFRc2dCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaENBc2dDRUVCYXlFSUlBSkJBWFFoQWlBRFFRRjBJZ05CZ0lBQ1NRMEFDeUFTUlNBU0lCc2JEQUVMSUFvb0FnUWhFaUFNSUFwQkNFRU1JQUVnQTBzaUd4dHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRb2dDQzBBQVNFRElBZ3RBQUJCL3dGSEJFQWdCQ0FLTmdJUVFRZ2hDQ0FEUVFoMElBSnFJUUlNQVFzZ0EwR1BBVTBFUUNBRUlBbzJBaEFnQTBFSmRDQUNhaUVDUVFjaENBd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUlDeUFJUVFGcklRZ2dBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFFaEF5QVNJQkpGSUJzYkN5QVljeUlCR3pZQ0FDQU9JQTRvQWdCQmdBSnlOZ0lBSUFrZ0NTZ0NCRUhBQUhJMkFnUWdCaUFCUVJaMGNrR0FBWElGSUFZTFFZQ0FnQWh5SVFZTEFrQWdCa0dBaUlEQUFIRU5BQ0FHUWNEM0FYRkZEUUFnQXlBRklBUW9BbXdnQmtFR2RpSVNRZThEY1dvdEFBQkJBblJxSWd3b0FnQWlDaWdDQUNJQmF5RURBbjhnQVNBQ1FSQjJUUVJBSUFJZ0FVRVFkR3NoQWlBRFFZQ0FBbkVFUUNBS0tBSUVEQUlMSUFvb0FnUWhEaUFNSUFwQkRFRUlJQUVnQTBzaUdCdHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRb2dDQzBBQVNFQklBZ3RBQUJCL3dGSEJFQWdCQ0FLTmdJUVFRZ2hDQ0FCUVFoMElBSnFJUUlNQVFzZ0FVR1BBVTBFUUNBRUlBbzJBaEFnQVVFSmRDQUNhaUVDUVFjaENBd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUlDeUFJUVFGcklRZ2dBa0VCZENFQ0lBTkJBWFFpQTBHQWdBSkpEUUFMSUE1RklBNGdHQnNNQVFzZ0NpZ0NCQ0VPSUF3Z0NrRUlRUXdnQVNBRFN5SVlHMm9vQWdBMkFnQURRQUpBSUFnTkFDQUVLQUlRSWdoQkFXb2hDaUFJTFFBQklRTWdDQzBBQUVIL0FVY0VRQ0FFSUFvMkFoQkJDQ0VJSUFOQkNIUWdBbW9oQWd3QkN5QURRWThCVFFSQUlBUWdDallDRUNBRFFRbDBJQUpxSVFKQkJ5RUlEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUWdMSUFoQkFXc2hDQ0FDUVFGMElRSWdBVUVCZENJQlFZQ0FBa2tOQUFzZ0FTRURJQTRnRGtVZ0dCc0xCSDhnQXlBRklBa29BZ1JCRjNaQkJIRWdDVUVFYXlJT0tBSUFRUmwyUVFGeElBWkJFblpCRUhFZ0JrRVdka0hBQUhFZ0VrR3FBWEZ5Y25KeUloSkIwTGtCYWkwQUFFRUNkR29pRENnQ0FDSUtLQUlBSWdGcklRTWdFa0hRdXdGcUxRQUFJUmdnRVNBVmFpQVVJQTBDZnlBQklBSkJFSFpOQkVBZ0FpQUJRUkIwYXlFQ0lBTkJnSUFDY1FSQUlBb29BZ1FNQWdzZ0NpZ0NCQ0VTSUF3Z0NrRU1RUWdnQVNBRFN5SWJHMm9vQWdBMkFnQURRQUpBSUFnTkFDQUVLQUlRSWdoQkFXb2hDaUFJTFFBQklRRWdDQzBBQUVIL0FVY0VRQ0FFSUFvMkFoQkJDQ0VJSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdDallDRUNBQlFRbDBJQUpxSVFKQkJ5RUlEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUWdMSUFoQkFXc2hDQ0FDUVFGMElRSWdBMEVCZENJRFFZQ0FBa2tOQUFzZ0VrVWdFaUFiR3d3QkN5QUtLQUlFSVJJZ0RDQUtRUWhCRENBQklBTkxJaHNiYWlnQ0FEWUNBQU5BQWtBZ0NBMEFJQVFvQWhBaUNFRUJhaUVLSUFndEFBRWhBeUFJTFFBQVFmOEJSd1JBSUFRZ0NqWUNFRUVJSVFnZ0EwRUlkQ0FDYWlFQ0RBRUxJQU5CandGTkJFQWdCQ0FLTmdJUUlBTkJDWFFnQW1vaEFrRUhJUWdNQVFzZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQ0FzZ0NFRUJheUVJSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUJJUU1nRWlBU1JTQWJHd3NnR0hNaUFSczJBZ0FnRGlBT0tBSUFRWUFRY2pZQ0FDQUpJQWtvQWdSQmdBUnlOZ0lFSUFZZ0FVRVpkSEpCZ0FoeUJTQUdDMEdBZ0lEQUFISWhCZ3NDUUNBR1FZREFnSUFFY1EwQUlBWkJnTHdQY1VVTkFDQURJQVVnQkNnQ2JDQUdRUWwySWhKQjd3TnhhaTBBQUVFQ2RHb2lEQ2dDQUNJS0tBSUFJZ0ZySVFNQ2Z5QUJJQUpCRUhaTkJFQWdBaUFCUVJCMGF5RUNJQU5CZ0lBQ2NRUkFJQW9vQWdRTUFnc2dDaWdDQkNFT0lBd2dDa0VNUVFnZ0FTQURTeUlZRzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FFS0FJUUlnaEJBV29oQ2lBSUxRQUJJUUVnQ0MwQUFFSC9BVWNFUUNBRUlBbzJBaEJCQ0NFSUlBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQVFnQ2pZQ0VDQUJRUWwwSUFKcUlRSkJCeUVJREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFnTElBaEJBV3NoQ0NBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dEa1VnRGlBWUd3d0JDeUFLS0FJRUlRNGdEQ0FLUVFoQkRDQUJJQU5MSWhnYmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFRb0FoQWlDRUVCYWlFS0lBZ3RBQUVoQXlBSUxRQUFRZjhCUndSQUlBUWdDallDRUVFSUlRZ2dBMEVJZENBQ2FpRUNEQUVMSUFOQmp3Rk5CRUFnQkNBS05nSVFJQU5CQ1hRZ0Ftb2hBa0VISVFnTUFRc2dCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaENBc2dDRUVCYXlFSUlBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFCSVFNZ0RpQU9SU0FZR3dzRWZ5QURJQVVnQ1NnQ0JFRWFka0VFY1NBSlFRUnJJZzRvQWdCQkhIWkJBWEVnQmtFVmRrRVFjU0FHUVJsMlFjQUFjU0FTUWFvQmNYSnljbklpRWtIUXVRRnFMUUFBUVFKMGFpSU1LQUlBSWdvb0FnQWlBV3NoQXlBU1FkQzdBV290QUFBaEdDQVJJQk5xSUJRZ0RRSi9JQUVnQWtFUWRrMEVRQ0FDSUFGQkVIUnJJUUlnQTBHQWdBSnhCRUFnQ2lnQ0JBd0NDeUFLS0FJRUlSSWdEQ0FLUVF4QkNDQUJJQU5MSWhzYmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFRb0FoQWlDRUVCYWlFS0lBZ3RBQUVoQVNBSUxRQUFRZjhCUndSQUlBUWdDallDRUVFSUlRZ2dBVUVJZENBQ2FpRUNEQUVMSUFGQmp3Rk5CRUFnQkNBS05nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFnTUFRc2dCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaENBc2dDRUVCYXlFSUlBSkJBWFFoQWlBRFFRRjBJZ05CZ0lBQ1NRMEFDeUFTUlNBU0lCc2JEQUVMSUFvb0FnUWhFaUFNSUFwQkNFRU1JQUVnQTBzaUd4dHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRb2dDQzBBQVNFRElBZ3RBQUJCL3dGSEJFQWdCQ0FLTmdJUVFRZ2hDQ0FEUVFoMElBSnFJUUlNQVFzZ0EwR1BBVTBFUUNBRUlBbzJBaEFnQTBFSmRDQUNhaUVDUVFjaENBd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUlDeUFJUVFGcklRZ2dBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFFaEF5QVNJQkpGSUJzYkN5QVljeUlLR3pZQ0FDQU9JQTRvQWdCQmdJQUJjallDQUNBSklBa29BZ1JCZ0NCeU5nSUVJQVFvQW54QkFuUWdDV29pQVNBQktBSUVRUVJ5TmdJRUlBRWdBU2dDREVFQmNqWUNEQ0FCSUFFb0FnZ2dDa0VTZEhKQkFuSTJBZ2dnQmlBS1FSeDBja0dBd0FCeUJTQUdDMEdBZ0lDQUJISWhCZ3NnQ1NBR05nSUFDeUFKUVFScUlRWWdFVUVFYWlFUklBdEJBV29pQ3lBUVJ3MEFDeUFKUVF4cUlRWWdFU0FUYWlFUklBZEJCR29pQnlBRUtBS0FBU0lCUVh4eFNRMEFDd3dCQzBFRUlBRkJmSEVpQmlBR1FRUk5HMEVCYXlJR1FYeHhRUVJxSVFjZ0NTQUdRUUYwUVhoeGFrRVVhaUVHQ3lBRUlBZzJBZ2dnQkNBRE5nSUVJQVFnQWpZQ0FDQUVJQXcyQW1nZ0VFVU5BQ0FCSUFkTkRRQURRQ0FCSUFkR0lWTkJBQ0VJSUFjaEFTQlRSUVJBQTBBZ0JDQUdJQkVnQ0NBUWJFRUNkR29nRFNBSUlBUW9BbnhCQW1wQkFCQlpJQWhCQVdvaUNDQUVLQUtBQVNJQklBZHJTUTBBQ3dzZ0JrRUVhaUVHSUJGQkJHb2hFU0FYUVFGcUloY2dFRWNOQUFzTERBSUxBMEJCQUNFWEEwQWdBU0VKSUFZaUJ5Z0NBQ0lHQkVBQ1FDQUdRWkNBZ0FGeERRQWdCa0h2QTNFaUFVVU5BQ0FESUJBZ0JDZ0NiQ0FCYWkwQUFFRUNkR29pRENnQ0FDSUxLQUlBSWdGcklRTUNmeUFCSUFKQkVIWkxCRUFnQ3lnQ0JDRUtJQXdnQzBFSVFRd2dBU0FEU3lJVUcyb29BZ0EyQWdBRFFBSkFJQWdOQUNBRUtBSVFJZ2hCQVdvaEN5QUlMUUFCSVFNZ0NDMEFBRUgvQVVZRVFDQURRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFnTUFnc2dCQ0FMTmdJUUlBTkJDWFFnQW1vaEFrRUhJUWdNQVFzZ0JDQUxOZ0lRUVFnaENDQURRUWgwSUFKcUlRSUxJQWhCQVdzaENDQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnQVNFRElBb2dDa1VnRkJzTUFRc2dBaUFCUVJCMGF5RUNJQU5CZ0lBQ2NVVUVRQ0FMS0FJRUlRb2dEQ0FMUVF4QkNDQUJJQU5MSWhRYmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFRb0FoQWlDRUVCYWlFTElBZ3RBQUVoQVNBSUxRQUFRZjhCUmdSQUlBRkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQ0F3Q0N5QUVJQXMyQWhBZ0FVRUpkQ0FDYWlFQ1FRY2hDQXdCQ3lBRUlBczJBaEJCQ0NFSUlBRkJDSFFnQW1vaEFnc2dDRUVCYXlFSUlBSkJBWFFoQWlBRFFRRjBJZ05CZ0lBQ1NRMEFDeUFLUlNBS0lCUWJEQUVMSUFzb0FnUUxCSDhnQXlBUUlBY29BZ1JCRVhaQkJIRWdCMEVFYXlJS0tBSUFRUk4yUVFGeElBWkJEblpCRUhFZ0JrRVFka0hBQUhFZ0JrR3FBWEZ5Y25KeUloUkIwTGtCYWkwQUFFRUNkR29pRENnQ0FDSUxLQUlBSWdGcklRTWdGRUhRdXdGcUxRQUFJUk1nQ1NBRklCRUNmeUFCSUFKQkVIWkxCRUFnQ3lnQ0JDRVVJQXdnQzBFSVFRd2dBU0FEU3lJT0cyb29BZ0EyQWdBRFFBSkFJQWdOQUNBRUtBSVFJZ2hCQVdvaEN5QUlMUUFCSVFNZ0NDMEFBRUgvQVVZRVFDQURRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFnTUFnc2dCQ0FMTmdJUUlBTkJDWFFnQW1vaEFrRUhJUWdNQVFzZ0JDQUxOZ0lRUVFnaENDQURRUWgwSUFKcUlRSUxJQWhCQVdzaENDQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnQVNFRElCUWdGRVVnRGhzTUFRc2dBaUFCUVJCMGF5RUNJQU5CZ0lBQ2NVVUVRQ0FMS0FJRUlSUWdEQ0FMUVF4QkNDQUJJQU5MSWc0YmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFRb0FoQWlDRUVCYWlFTElBZ3RBQUVoQVNBSUxRQUFRZjhCUmdSQUlBRkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQ0F3Q0N5QUVJQXMyQWhBZ0FVRUpkQ0FDYWlFQ1FRY2hDQXdCQ3lBRUlBczJBaEJCQ0NFSUlBRkJDSFFnQW1vaEFnc2dDRUVCYXlFSUlBSkJBWFFoQWlBRFFRRjBJZ05CZ0lBQ1NRMEFDeUFVUlNBVUlBNGJEQUVMSUFzb0FnUUxJQk56SWdFYk5nSUFJQW9nQ2lnQ0FFRWdjallDQUNBSElBY29BZ1JCQ0hJMkFnUWdCaUFCUVJOMGNrRVFjZ1VnQmd0QmdJQ0FBWEloQmdzQ1FDQUdRWUNCZ0FoeERRQWdCa0g0SG5GRkRRQWdBeUFRSUFRb0Ftd2dCa0VEZGlJVVFlOERjV290QUFCQkFuUnFJZ3dvQWdBaUN5Z0NBQ0lCYXlFREFuOGdBU0FDUVJCMlN3UkFJQXNvQWdRaENpQU1JQXRCQ0VFTUlBRWdBMHNpRXh0cUtBSUFOZ0lBQTBBQ1FDQUlEUUFnQkNnQ0VDSUlRUUZxSVFzZ0NDMEFBU0VESUFndEFBQkIvd0ZHQkVBZ0EwR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VJREFJTElBUWdDellDRUNBRFFRbDBJQUpxSVFKQkJ5RUlEQUVMSUFRZ0N6WUNFRUVJSVFnZ0EwRUlkQ0FDYWlFQ0N5QUlRUUZySVFnZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQUVoQXlBS0lBcEZJQk1iREFFTElBSWdBVUVRZEdzaEFpQURRWUNBQW5GRkJFQWdDeWdDQkNFS0lBd2dDMEVNUVFnZ0FTQURTeUlURzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FFS0FJUUlnaEJBV29oQ3lBSUxRQUJJUUVnQ0MwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUWdNQWdzZ0JDQUxOZ0lRSUFGQkNYUWdBbW9oQWtFSElRZ01BUXNnQkNBTE5nSVFRUWdoQ0NBQlFRaDBJQUpxSVFJTElBaEJBV3NoQ0NBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dDa1VnQ2lBVEd3d0JDeUFMS0FJRUN3Ui9JQU1nRUNBSEtBSUVRUlIyUVFSeElBZEJCR3NpQ2lnQ0FFRVdka0VCY1NBR1FROTJRUkJ4SUFaQkUzWkJ3QUJ4SUJSQnFnRnhjbkp5Y2lJVVFkQzVBV290QUFCQkFuUnFJZ3dvQWdBaUN5Z0NBQ0lCYXlFRElCUkIwTHNCYWkwQUFDRVRJQWtnQlNBUkFuOGdBU0FDUVJCMlN3UkFJQXNvQWdRaEZDQU1JQXRCQ0VFTUlBRWdBMHNpRGh0cUtBSUFOZ0lBQTBBQ1FDQUlEUUFnQkNnQ0VDSUlRUUZxSVFzZ0NDMEFBU0VESUFndEFBQkIvd0ZHQkVBZ0EwR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VJREFJTElBUWdDellDRUNBRFFRbDBJQUpxSVFKQkJ5RUlEQUVMSUFRZ0N6WUNFRUVJSVFnZ0EwRUlkQ0FDYWlFQ0N5QUlRUUZySVFnZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQUVoQXlBVUlCUkZJQTRiREFFTElBSWdBVUVRZEdzaEFpQURRWUNBQW5GRkJFQWdDeWdDQkNFVUlBd2dDMEVNUVFnZ0FTQURTeUlPRzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FFS0FJUUlnaEJBV29oQ3lBSUxRQUJJUUVnQ0MwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUWdNQWdzZ0JDQUxOZ0lRSUFGQkNYUWdBbW9oQWtFSElRZ01BUXNnQkNBTE5nSVFRUWdoQ0NBQlFRaDBJQUpxSVFJTElBaEJBV3NoQ0NBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dGRVVnRkNBT0d3d0JDeUFMS0FJRUN5QVRjeUlCR3pZQ2dBSWdDaUFLS0FJQVFZQUNjallDQUNBSElBY29BZ1JCd0FCeU5nSUVJQVlnQVVFV2RISkJnQUZ5QlNBR0MwR0FnSUFJY2lFR0N3SkFJQVpCZ0lpQXdBQnhEUUFnQmtIQTl3RnhSUTBBSUFNZ0VDQUVLQUpzSUFaQkJuWWlGRUh2QTNGcUxRQUFRUUowYWlJTUtBSUFJZ3NvQWdBaUFXc2hBd0ovSUFFZ0FrRVFka3NFUUNBTEtBSUVJUW9nRENBTFFRaEJEQ0FCSUFOTEloTWJhaWdDQURZQ0FBTkFBa0FnQ0EwQUlBUW9BaEFpQ0VFQmFpRUxJQWd0QUFFaEF5QUlMUUFBUWY4QlJnUkFJQU5Ca0FGUEJFQWdCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaENBd0NDeUFFSUFzMkFoQWdBMEVKZENBQ2FpRUNRUWNoQ0F3QkN5QUVJQXMyQWhCQkNDRUlJQU5CQ0hRZ0Ftb2hBZ3NnQ0VFQmF5RUlJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBQklRTWdDaUFLUlNBVEd3d0JDeUFDSUFGQkVIUnJJUUlnQTBHQWdBSnhSUVJBSUFzb0FnUWhDaUFNSUF0QkRFRUlJQUVnQTBzaUV4dHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRc2dDQzBBQVNFQklBZ3RBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFSURBSUxJQVFnQ3pZQ0VDQUJRUWwwSUFKcUlRSkJCeUVJREFFTElBUWdDellDRUVFSUlRZ2dBVUVJZENBQ2FpRUNDeUFJUVFGcklRZ2dBa0VCZENFQ0lBTkJBWFFpQTBHQWdBSkpEUUFMSUFwRklBb2dFeHNNQVFzZ0N5Z0NCQXNFZnlBRElCQWdCeWdDQkVFWGRrRUVjU0FIUVFScklnb29BZ0JCR1haQkFYRWdCa0VTZGtFUWNTQUdRUloyUWNBQWNTQVVRYW9CY1hKeWNuSWlGRUhRdVFGcUxRQUFRUUowYWlJTUtBSUFJZ3NvQWdBaUFXc2hBeUFVUWRDN0FXb3RBQUFoRXlBSklBVWdFUUovSUFFZ0FrRVFka3NFUUNBTEtBSUVJUlFnRENBTFFRaEJEQ0FCSUFOTElnNGJhaWdDQURZQ0FBTkFBa0FnQ0EwQUlBUW9BaEFpQ0VFQmFpRUxJQWd0QUFFaEF5QUlMUUFBUWY4QlJnUkFJQU5Ca0FGUEJFQWdCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaENBd0NDeUFFSUFzMkFoQWdBMEVKZENBQ2FpRUNRUWNoQ0F3QkN5QUVJQXMyQWhCQkNDRUlJQU5CQ0hRZ0Ftb2hBZ3NnQ0VFQmF5RUlJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBQklRTWdGQ0FVUlNBT0d3d0JDeUFDSUFGQkVIUnJJUUlnQTBHQWdBSnhSUVJBSUFzb0FnUWhGQ0FNSUF0QkRFRUlJQUVnQTBzaURodHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0JDZ0NFQ0lJUVFGcUlRc2dDQzBBQVNFQklBZ3RBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFSURBSUxJQVFnQ3pZQ0VDQUJRUWwwSUFKcUlRSkJCeUVJREFFTElBUWdDellDRUVFSUlRZ2dBVUVJZENBQ2FpRUNDeUFJUVFGcklRZ2dBa0VCZENFQ0lBTkJBWFFpQTBHQWdBSkpEUUFMSUJSRklCUWdEaHNNQVFzZ0N5Z0NCQXNnRTNNaUFSczJBb0FFSUFvZ0NpZ0NBRUdBRUhJMkFnQWdCeUFIS0FJRVFZQUVjallDQkNBR0lBRkJHWFJ5UVlBSWNnVWdCZ3RCZ0lDQXdBQnlJUVlMQWtBZ0JrR0F3SUNBQkhFTkFDQUdRWUM4RDNGRkRRQWdBeUFRSUFRb0Ftd2dCa0VKZGlJVVFlOERjV290QUFCQkFuUnFJZ3dvQWdBaUN5Z0NBQ0lCYXlFREFuOGdBU0FDUVJCMlN3UkFJQXNvQWdRaENpQU1JQXRCQ0VFTUlBRWdBMHNpRXh0cUtBSUFOZ0lBQTBBQ1FDQUlEUUFnQkNnQ0VDSUlRUUZxSVFzZ0NDMEFBU0VESUFndEFBQkIvd0ZHQkVBZ0EwR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VJREFJTElBUWdDellDRUNBRFFRbDBJQUpxSVFKQkJ5RUlEQUVMSUFRZ0N6WUNFRUVJSVFnZ0EwRUlkQ0FDYWlFQ0N5QUlRUUZySVFnZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQUVoQXlBS0lBcEZJQk1iREFFTElBSWdBVUVRZEdzaEFpQURRWUNBQW5GRkJFQWdDeWdDQkNFS0lBd2dDMEVNUVFnZ0FTQURTeUlURzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FFS0FJUUlnaEJBV29oQ3lBSUxRQUJJUUVnQ0MwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUWdNQWdzZ0JDQUxOZ0lRSUFGQkNYUWdBbW9oQWtFSElRZ01BUXNnQkNBTE5nSVFRUWdoQ0NBQlFRaDBJQUpxSVFJTElBaEJBV3NoQ0NBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dDa1VnQ2lBVEd3d0JDeUFMS0FJRUN3Ui9JQU1nRUNBSEtBSUVRUnAyUVFSeElBZEJCR3NpQ2lnQ0FFRWNka0VCY1NBR1FSVjJRUkJ4SUFaQkdYWkJ3QUJ4SUJSQnFnRnhjbkp5Y2lJVVFkQzVBV290QUFCQkFuUnFJZ3dvQWdBaUN5Z0NBQ0lCYXlFRElCUkIwTHNCYWkwQUFDRVRJQWtnQlNBUkFuOGdBU0FDUVJCMlN3UkFJQXNvQWdRaEZDQU1JQXRCQ0VFTUlBRWdBMHNpRGh0cUtBSUFOZ0lBQTBBQ1FDQUlEUUFnQkNnQ0VDSUlRUUZxSVFzZ0NDMEFBU0VESUFndEFBQkIvd0ZHQkVBZ0EwR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VJREFJTElBUWdDellDRUNBRFFRbDBJQUpxSVFKQkJ5RUlEQUVMSUFRZ0N6WUNFRUVJSVFnZ0EwRUlkQ0FDYWlFQ0N5QUlRUUZySVFnZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQUVoQXlBVUlCUkZJQTRiREFFTElBSWdBVUVRZEdzaEFpQURRWUNBQW5GRkJFQWdDeWdDQkNFVUlBd2dDMEVNUVFnZ0FTQURTeUlPRzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FFS0FJUUlnaEJBV29oQ3lBSUxRQUJJUUVnQ0MwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUWdNQWdzZ0JDQUxOZ0lRSUFGQkNYUWdBbW9oQWtFSElRZ01BUXNnQkNBTE5nSVFRUWdoQ0NBQlFRaDBJQUpxSVFJTElBaEJBV3NoQ0NBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dGRVVnRkNBT0d3d0JDeUFMS0FJRUN5QVRjeUlCR3pZQ2dBWWdDaUFLS0FJQVFZQ0FBWEkyQWdBZ0J5QUhLQUlFUVlBZ2NqWUNCQ0FISUFjb0FvUUNRUVJ5TmdLRUFpQUhJQWNvQW93Q1FRRnlOZ0tNQWlBSElBY29Bb2dDSUFGQkVuUnlRUUp5TmdLSUFpQUdJQUZCSEhSeVFZREFBSElGSUFZTFFZQ0FnSUFFY2lFR0N5QUhJQVkyQWdBTElBZEJCR29oQmlBSlFRUnFJUUVnRjBFQmFpSVhRY0FBUncwQUN5QUhRUXhxSVFZZ0NVR0VCbW9oQVNBTlFUeEpJVlFnRFVFRWFpRU5JRlFOQUFzTElBUWdDRFlDQ0NBRUlBTTJBZ1FnQkNBQ05nSUFJQVFnRERZQ2FBc01BZ3NnSWdSQVFRRWdHWFJCQVhZaENTQUVLQUo4SWhGQkFuUWlEQ0FFS0FKNGFrRU1haUVCSUFRb0FuUWhCa0VBSVEwZ0JDZ0NnQUVpQTBFRVR3UkFJQkZGRFFRZ0VVRURiQ0VGSUJGQkFYUWhDMEVBSUFscklRSURRQ0FMUVFKMElRcEJBQ0VEQTBBQ1FDQUJJZ2NvQWdBaUFVVU5BQ0FCUVpDQWdBRnhRUkJHQkVBZ0JDZ0NBQ0VCQWtBZ0JDZ0NDQ0lRRFFBZ0FVSC9BVVloRUNBRUtBSVFJZ2d0QUFBaEFRSkFJQkJGQkVBZ0JDQUJOZ0lBSUFRZ0NFRUJhallDRUF3QkN5QUJRWThCVFFSQUlBUWdBVFlDQUNBRUlBaEJBV28yQWhCQkJ5RVFEQUlMUWY4QklRRWdCRUgvQVRZQ0FBdEJDQ0VRQ3lBRUlCQkJBV3NpQ0RZQ0NDQUdJQUlnQ1NBQklBaDJRUUZ4SUFZb0FnQWlBVUVmZGtZYklBRnFOZ0lBSUFjZ0J5Z0NBRUdBZ01BQWNpSUJOZ0lBQ3lBQlFZQ0JnQWh4UVlBQlJnUkFJQVFvQWdBaEFRSkFJQVFvQWdnaUVBMEFJQUZCL3dGR0lSQWdCQ2dDRUNJSUxRQUFJUUVDUUNBUVJRUkFJQVFnQVRZQ0FDQUVJQWhCQVdvMkFoQU1BUXNnQVVHUEFVMEVRQ0FFSUFFMkFnQWdCQ0FJUVFGcU5nSVFRUWNoRUF3Q0MwSC9BU0VCSUFSQi93RTJBZ0FMUVFnaEVBc2dCQ0FRUVFGcklnZzJBZ2dnQmlBTWFpSVFJQUlnQ1NBQklBaDJRUUZ4SUJBb0FnQWlBVUVmZGtZYklBRnFOZ0lBSUFjZ0J5Z0NBRUdBZ0lBRWNpSUJOZ0lBQ3lBQlFZQ0lnTUFBY1VHQUNFWUVRQ0FFS0FJQUlRRUNRQ0FFS0FJSUloQU5BQ0FCUWY4QlJpRVFJQVFvQWhBaUNDMEFBQ0VCQWtBZ0VFVUVRQ0FFSUFFMkFnQWdCQ0FJUVFGcU5nSVFEQUVMSUFGQmp3Rk5CRUFnQkNBQk5nSUFJQVFnQ0VFQmFqWUNFRUVISVJBTUFndEIvd0VoQVNBRVFmOEJOZ0lBQzBFSUlSQUxJQVFnRUVFQmF5SUlOZ0lJSUFZZ0Ntb2lFQ0FDSUFrZ0FTQUlka0VCY1NBUUtBSUFJZ0ZCSDNaR0d5QUJhallDQUNBSElBY29BZ0JCZ0lDQUlISWlBVFlDQUFzZ0FVR0F3SUNBQkhGQmdNQUFSdzBBSUFZZ0JVRUNkR29oRUNBRUtBSUFJUUVDUUNBRUtBSUlJZ2dOQUNBQlFmOEJSaUVVSUFRb0FoQWlDQzBBQUNFQkFrQWdGRVVFUUNBRUlBRTJBZ0FnQkNBSVFRRnFOZ0lRREFFTElBRkJqd0ZOQkVBZ0JDQUJOZ0lBSUFRZ0NFRUJhallDRUVFSElRZ01BZ3RCL3dFaEFTQUVRZjhCTmdJQUMwRUlJUWdMSUFRZ0NFRUJheUlJTmdJSUlCQWdBaUFKSUFFZ0NIWkJBWEVnRUNnQ0FDSUJRUjkyUmhzZ0FXbzJBZ0FnQnlBSEtBSUFRWUNBZ0lBQ2NqWUNBQXNnQmtFRWFpRUdJQWRCQkdvaEFTQURRUUZxSWdNZ0VVY05BQXNnQjBFTWFpRUJJQVlnQlVFQ2RHb2hCaUFOUVFScUlnMGdCQ2dDZ0FFaUEwRjhjVWtOQUFzTElBTWdEVTBOQWlBUlJRMENRUUFoRTBFQUlBbHJJUVVnQXlFSEEwQUNRQ0FISUExR0JFQWdEU0VIREFFTElBRW9BZ0FoRUVFQUlRSURRRUdRZ0lBQklBSkJBMndpQjNRZ0VIRkJFQ0FIZEVZRVFDQUdJQUlnRVd4QkFuUnFJUkFnQkNnQ0FDRURBa0FnQkNnQ0NDSUlEUUFnQTBIL0FVY2hEQ0FFS0FJUUlnZ3RBQUFoQXdKQUlBeEZCRUFnQTBHUUFVOEVRRUgvQVNFRElBUkIvd0UyQWdBTUFnc2dCQ0FETmdJQUlBUWdDRUVCYWpZQ0VFRUhJUWdNQWdzZ0JDQUROZ0lBSUFRZ0NFRUJhallDRUF0QkNDRUlDeUFFSUFoQkFXc2lDRFlDQ0NBUUlBVWdDU0FESUFoMlFRRnhJQkFvQWdBaUEwRWZka1liSUFOcU5nSUFJQUVnQVNnQ0FFR0FnTUFBSUFkMGNpSVFOZ0lBSUFRb0FvQUJJUU1MSUFNaEJ5QUNRUUZxSWdJZ0F5QU5hMGtOQUFzTElBWkJCR29oQmlBQlFRUnFJUUVnRTBFQmFpSVRJQkZIRFFBTERBSUxJQVFvQW5naENDQUVLQUowSVFjZ0JDZ0NnQUVoQXdKQUlBUW9BbndpREVIQUFFY05BQ0FEUWNBQVJ3MEFJQWhCakFKcUlRTkJBQ0VUUVFCQkFTQVpkRUVCZGlJRmF5RU1JQVFvQWdnaEFpQUVLQUlFSVFZZ0JDZ0NBQ0VCSUFRb0FtZ2hEUU5BUVFBaENBTkFJQWNoQ1NBREloQW9BZ0FpQndSQUlBTWhWU0FIUVpDQWdBRnhRUkJHQkVBZ0JpQVBRUkJCRDBFT0lBZEI3d054R3lBSFFZQ0F3QUJ4RzBFQ2RHb2lEU2dDQUNJUktBSUFJZ05ySVFZQ2Z5QURJQUZCRUhaTEJFQWdFU2dDQkNFTElBMGdFVUVJUVF3Z0F5QUdTeUlLRzJvb0FnQTJBZ0FEUUFKQUlBSU5BQ0FFS0FJUUlnSkJBV29oRVNBQ0xRQUJJUVlnQWkwQUFFSC9BVVlFUUNBR1FaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUJRWUQrQTJvaEFVRUlJUUlNQWdzZ0JDQVJOZ0lRSUFaQkNYUWdBV29oQVVFSElRSU1BUXNnQkNBUk5nSVFRUWdoQWlBR1FRaDBJQUZxSVFFTElBSkJBV3NoQWlBQlFRRjBJUUVnQTBFQmRDSURRWUNBQWtrTkFBc2dBeUVHSUFzZ0MwVWdDaHNNQVFzZ0FTQURRUkIwYXlFQklBWkJnSUFDY1VVRVFDQVJLQUlFSVFzZ0RTQVJRUXhCQ0NBRElBWkxJZ29iYWlnQ0FEWUNBQU5BQWtBZ0FnMEFJQVFvQWhBaUFrRUJhaUVSSUFJdEFBRWhBeUFDTFFBQVFmOEJSZ1JBSUFOQmtBRlBCRUFnQkNBRUtBSU1RUUZxTmdJTUlBRkJnUDREYWlFQlFRZ2hBZ3dDQ3lBRUlCRTJBaEFnQTBFSmRDQUJhaUVCUVFjaEFnd0JDeUFFSUJFMkFoQkJDQ0VDSUFOQkNIUWdBV29oQVFzZ0FrRUJheUVDSUFGQkFYUWhBU0FHUVFGMElnWkJnSUFDU1EwQUN5QUxSU0FMSUFvYkRBRUxJQkVvQWdRTElRTWdDU0FNSUFVZ0F5QUpLQUlBSWhGQkgzWkdHeUFSYWpZQ0FDQUhRWUNBd0FCeUlRY0xJQWRCZ0lHQUNIRkJnQUZHQkVBZ0JpQVBRUkJCRDBFT0lBZEIrQjV4R3lBSFFZQ0FnQVJ4RzBFQ2RHb2lEU2dDQUNJUktBSUFJZ05ySVFZQ2Z5QURJQUZCRUhaTEJFQWdFU2dDQkNFTElBMGdFVUVJUVF3Z0F5QUdTeUlLRzJvb0FnQTJBZ0FEUUFKQUlBSU5BQ0FFS0FJUUlnSkJBV29oRVNBQ0xRQUJJUVlnQWkwQUFFSC9BVVlFUUNBR1FaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUJRWUQrQTJvaEFVRUlJUUlNQWdzZ0JDQVJOZ0lRSUFaQkNYUWdBV29oQVVFSElRSU1BUXNnQkNBUk5nSVFRUWdoQWlBR1FRaDBJQUZxSVFFTElBSkJBV3NoQWlBQlFRRjBJUUVnQTBFQmRDSURRWUNBQWtrTkFBc2dBeUVHSUFzZ0MwVWdDaHNNQVFzZ0FTQURRUkIwYXlFQklBWkJnSUFDY1VVRVFDQVJLQUlFSVFzZ0RTQVJRUXhCQ0NBRElBWkxJZ29iYWlnQ0FEWUNBQU5BQWtBZ0FnMEFJQVFvQWhBaUFrRUJhaUVSSUFJdEFBRWhBeUFDTFFBQVFmOEJSZ1JBSUFOQmtBRlBCRUFnQkNBRUtBSU1RUUZxTmdJTUlBRkJnUDREYWlFQlFRZ2hBZ3dDQ3lBRUlCRTJBaEFnQTBFSmRDQUJhaUVCUVFjaEFnd0JDeUFFSUJFMkFoQkJDQ0VDSUFOQkNIUWdBV29oQVFzZ0FrRUJheUVDSUFGQkFYUWhBU0FHUVFGMElnWkJnSUFDU1EwQUN5QUxSU0FMSUFvYkRBRUxJQkVvQWdRTElRTWdDU0FNSUFVZ0F5QUpLQUtBQWlJUlFSOTJSaHNnRVdvMkFvQUNJQWRCZ0lDQUJISWhCd3NnQjBHQWlJREFBSEZCZ0FoR0JFQWdCaUFQUVJCQkQwRU9JQWRCd1BjQmNSc2dCMEdBZ0lBZ2NSdEJBblJxSWcwb0FnQWlFU2dDQUNJRGF5RUdBbjhnQXlBQlFSQjJTd1JBSUJFb0FnUWhDeUFOSUJGQkNFRU1JQU1nQmtzaUNodHFLQUlBTmdJQUEwQUNRQ0FDRFFBZ0JDZ0NFQ0lDUVFGcUlSRWdBaTBBQVNFR0lBSXRBQUJCL3dGR0JFQWdCa0dRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQVVHQS9nTnFJUUZCQ0NFQ0RBSUxJQVFnRVRZQ0VDQUdRUWwwSUFGcUlRRkJCeUVDREFFTElBUWdFVFlDRUVFSUlRSWdCa0VJZENBQmFpRUJDeUFDUVFGcklRSWdBVUVCZENFQklBTkJBWFFpQTBHQWdBSkpEUUFMSUFNaEJpQUxJQXRGSUFvYkRBRUxJQUVnQTBFUWRHc2hBU0FHUVlDQUFuRkZCRUFnRVNnQ0JDRUxJQTBnRVVFTVFRZ2dBeUFHU3lJS0cyb29BZ0EyQWdBRFFBSkFJQUlOQUNBRUtBSVFJZ0pCQVdvaEVTQUNMUUFCSVFNZ0FpMEFBRUgvQVVZRVFDQURRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FCUVlEK0Eyb2hBVUVJSVFJTUFnc2dCQ0FSTmdJUUlBTkJDWFFnQVdvaEFVRUhJUUlNQVFzZ0JDQVJOZ0lRUVFnaEFpQURRUWgwSUFGcUlRRUxJQUpCQVdzaEFpQUJRUUYwSVFFZ0JrRUJkQ0lHUVlDQUFra05BQXNnQzBVZ0N5QUtHd3dCQ3lBUktBSUVDeUVESUFrZ0RDQUZJQU1nQ1NnQ2dBUWlFVUVmZGtZYklCRnFOZ0tBQkNBSFFZQ0FnQ0J5SVFjTElGVWdCMEdBd0lDQUJIRkJnTUFBUmdSL0lBWWdEMEVRUVE5QkRpQUhRWUM4RDNFYklBZEJnSUNBZ0FKeEcwRUNkR29pRFNnQ0FDSVJLQUlBSWdOcklRWUNmeUFESUFGQkVIWkxCRUFnRVNnQ0JDRUxJQTBnRVVFSVFRd2dBeUFHU3lJS0cyb29BZ0EyQWdBRFFBSkFJQUlOQUNBRUtBSVFJZ0pCQVdvaEVTQUNMUUFCSVFZZ0FpMEFBRUgvQVVZRVFDQUdRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FCUVlEK0Eyb2hBVUVJSVFJTUFnc2dCQ0FSTmdJUUlBWkJDWFFnQVdvaEFVRUhJUUlNQVFzZ0JDQVJOZ0lRUVFnaEFpQUdRUWgwSUFGcUlRRUxJQUpCQVdzaEFpQUJRUUYwSVFFZ0EwRUJkQ0lEUVlDQUFra05BQXNnQXlFR0lBc2dDMFVnQ2hzTUFRc2dBU0FEUVJCMGF5RUJJQVpCZ0lBQ2NVVUVRQ0FSS0FJRUlRc2dEU0FSUVF4QkNDQURJQVpMSWdvYmFpZ0NBRFlDQUFOQUFrQWdBZzBBSUFRb0FoQWlBa0VCYWlFUklBSXRBQUVoQXlBQ0xRQUFRZjhCUmdSQUlBTkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUZCZ1A0RGFpRUJRUWdoQWd3Q0N5QUVJQkUyQWhBZ0EwRUpkQ0FCYWlFQlFRY2hBZ3dCQ3lBRUlCRTJBaEJCQ0NFQ0lBTkJDSFFnQVdvaEFRc2dBa0VCYXlFQ0lBRkJBWFFoQVNBR1FRRjBJZ1pCZ0lBQ1NRMEFDeUFMUlNBTElBb2JEQUVMSUJFb0FnUUxJUU1nQ1NBTUlBVWdBeUFKS0FLQUJpSVJRUjkyUmhzZ0VXbzJBb0FHSUFkQmdJQ0FnQUp5QlNBSEN6WUNBQXNnRUVFRWFpRURJQWxCQkdvaEJ5QUlRUUZxSWdoQndBQkhEUUFMSUJCQkRHb2hBeUFKUVlRR2FpRUhJQk5CUEVraFZpQVRRUVJxSVJNZ1ZnMEFDeUFFSUFJMkFnZ2dCQ0FHTmdJRUlBUWdBVFlDQUNBRUlBMDJBbWdNQWd0QkFTQVpkRUVCZGlFTElBZ2dERUVDZENJT2FrRU1haUVKSUFRb0FnZ2hBaUFFS0FJRUlRWWdCQ2dDQUNFQklBUW9BbWdoRFVFQUlSRUNRQ0FEUVFSSkRRQWdEQVJBSUF4QkEyd2hGQ0FNUVFGMElSZEJBQ0FMYXlFS0EwQWdGMEVDZENFU1FRQWhDQU5BSUFraUJTZ0NBQ0lRQkVBZ0VFR1FnSUFCY1VFUVJnUkFJQVlnRDBFUVFROUJEaUFRUWU4RGNSc2dFRUdBZ01BQWNSdEJBblJxSWcwb0FnQWlDU2dDQUNJRGF5RUdBbjhnQXlBQlFSQjJUUVJBSUFFZ0EwRVFkR3NoQVNBR1FZQ0FBbkVFUUNBSktBSUVEQUlMSUFrb0FnUWhFeUFOSUFsQkRFRUlJQU1nQmtzaUZSdHFLQUlBTmdJQUEwQUNRQ0FDRFFBZ0JDZ0NFQ0lKUVFGcUlRSWdDUzBBQVNFRElBa3RBQUJCL3dGSEJFQWdCQ0FDTmdJUVFRZ2hBaUFEUVFoMElBRnFJUUVNQVFzZ0EwR1BBVTBFUUNBRUlBSTJBaEFnQTBFSmRDQUJhaUVCUVFjaEFnd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FVR0EvZ05xSVFGQkNDRUNDeUFDUVFGcklRSWdBVUVCZENFQklBWkJBWFFpQmtHQWdBSkpEUUFMSUJORklCTWdGUnNNQVFzZ0NTZ0NCQ0VUSUEwZ0NVRUlRUXdnQXlBR1N5SVZHMm9vQWdBMkFnQURRQUpBSUFJTkFDQUVLQUlRSWdsQkFXb2hBaUFKTFFBQklRWWdDUzBBQUVIL0FVY0VRQ0FFSUFJMkFoQkJDQ0VDSUFaQkNIUWdBV29oQVF3QkN5QUdRWThCVFFSQUlBUWdBallDRUNBR1FRbDBJQUZxSVFGQkJ5RUNEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUJRWUQrQTJvaEFVRUlJUUlMSUFKQkFXc2hBaUFCUVFGMElRRWdBMEVCZENJRFFZQ0FBa2tOQUFzZ0F5RUdJQk1nRTBVZ0ZSc0xJUU1nQnlBS0lBc2dBeUFIS0FJQUlnbEJIM1pHR3lBSmFqWUNBQ0FRUVlDQXdBQnlJUkFMSUJCQmdJR0FDSEZCZ0FGR0JFQWdCaUFQUVJCQkQwRU9JQkJCK0I1eEd5QVFRWUNBZ0FSeEcwRUNkR29pRFNnQ0FDSUpLQUlBSWdOcklRWUNmeUFESUFGQkVIWk5CRUFnQVNBRFFSQjBheUVCSUFaQmdJQUNjUVJBSUFrb0FnUU1BZ3NnQ1NnQ0JDRVRJQTBnQ1VFTVFRZ2dBeUFHU3lJVkcyb29BZ0EyQWdBRFFBSkFJQUlOQUNBRUtBSVFJZ2xCQVdvaEFpQUpMUUFCSVFNZ0NTMEFBRUgvQVVjRVFDQUVJQUkyQWhCQkNDRUNJQU5CQ0hRZ0FXb2hBUXdCQ3lBRFFZOEJUUVJBSUFRZ0FqWUNFQ0FEUVFsMElBRnFJUUZCQnlFQ0RBRUxJQVFnQkNnQ0RFRUJhallDRENBQlFZRCtBMm9oQVVFSUlRSUxJQUpCQVdzaEFpQUJRUUYwSVFFZ0JrRUJkQ0lHUVlDQUFra05BQXNnRTBVZ0V5QVZHd3dCQ3lBSktBSUVJUk1nRFNBSlFRaEJEQ0FESUFaTEloVWJhaWdDQURZQ0FBTkFBa0FnQWcwQUlBUW9BaEFpQ1VFQmFpRUNJQWt0QUFFaEJpQUpMUUFBUWY4QlJ3UkFJQVFnQWpZQ0VFRUlJUUlnQmtFSWRDQUJhaUVCREFFTElBWkJqd0ZOQkVBZ0JDQUNOZ0lRSUFaQkNYUWdBV29oQVVFSElRSU1BUXNnQkNBRUtBSU1RUUZxTmdJTUlBRkJnUDREYWlFQlFRZ2hBZ3NnQWtFQmF5RUNJQUZCQVhRaEFTQURRUUYwSWdOQmdJQUNTUTBBQ3lBRElRWWdFeUFUUlNBVkd3c2hBeUFISUE1cUlna2dDaUFMSUFNZ0NTZ0NBQ0lKUVI5MlJoc2dDV28yQWdBZ0VFR0FnSUFFY2lFUUN5QVFRWUNJZ01BQWNVR0FDRVlFUUNBR0lBOUJFRUVQUVE0Z0VFSEE5d0Z4R3lBUVFZQ0FnQ0J4RzBFQ2RHb2lEU2dDQUNJSktBSUFJZ05ySVFZQ2Z5QURJQUZCRUhaTkJFQWdBU0FEUVJCMGF5RUJJQVpCZ0lBQ2NRUkFJQWtvQWdRTUFnc2dDU2dDQkNFVElBMGdDVUVNUVFnZ0F5QUdTeUlWRzJvb0FnQTJBZ0FEUUFKQUlBSU5BQ0FFS0FJUUlnbEJBV29oQWlBSkxRQUJJUU1nQ1MwQUFFSC9BVWNFUUNBRUlBSTJBaEJCQ0NFQ0lBTkJDSFFnQVdvaEFRd0JDeUFEUVk4QlRRUkFJQVFnQWpZQ0VDQURRUWwwSUFGcUlRRkJCeUVDREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FCUVlEK0Eyb2hBVUVJSVFJTElBSkJBV3NoQWlBQlFRRjBJUUVnQmtFQmRDSUdRWUNBQWtrTkFBc2dFMFVnRXlBVkd3d0JDeUFKS0FJRUlSTWdEU0FKUVFoQkRDQURJQVpMSWhVYmFpZ0NBRFlDQUFOQUFrQWdBZzBBSUFRb0FoQWlDVUVCYWlFQ0lBa3RBQUVoQmlBSkxRQUFRZjhCUndSQUlBUWdBallDRUVFSUlRSWdCa0VJZENBQmFpRUJEQUVMSUFaQmp3Rk5CRUFnQkNBQ05nSVFJQVpCQ1hRZ0FXb2hBVUVISVFJTUFRc2dCQ0FFS0FJTVFRRnFOZ0lNSUFGQmdQNERhaUVCUVFnaEFnc2dBa0VCYXlFQ0lBRkJBWFFoQVNBRFFRRjBJZ05CZ0lBQ1NRMEFDeUFESVFZZ0V5QVRSU0FWR3dzaEF5QUhJQkpxSWdrZ0NpQUxJQU1nQ1NnQ0FDSUpRUjkyUmhzZ0NXbzJBZ0FnRUVHQWdJQWdjaUVRQ3lBRklCQkJnTUNBZ0FSeFFZREFBRVlFZnlBR0lBOUJFRUVQUVE0Z0VFR0F2QTl4R3lBUVFZQ0FnSUFDY1J0QkFuUnFJZzBvQWdBaUNTZ0NBQ0lEYXlFR0FuOGdBeUFCUVJCMlRRUkFJQUVnQTBFUWRHc2hBU0FHUVlDQUFuRUVRQ0FKS0FJRURBSUxJQWtvQWdRaEV5QU5JQWxCREVFSUlBTWdCa3NpRlJ0cUtBSUFOZ0lBQTBBQ1FDQUNEUUFnQkNnQ0VDSUpRUUZxSVFJZ0NTMEFBU0VESUFrdEFBQkIvd0ZIQkVBZ0JDQUNOZ0lRUVFnaEFpQURRUWgwSUFGcUlRRU1BUXNnQTBHUEFVMEVRQ0FFSUFJMkFoQWdBMEVKZENBQmFpRUJRUWNoQWd3QkN5QUVJQVFvQWd4QkFXbzJBZ3dnQVVHQS9nTnFJUUZCQ0NFQ0N5QUNRUUZySVFJZ0FVRUJkQ0VCSUFaQkFYUWlCa0dBZ0FKSkRRQUxJQk5GSUJNZ0ZSc01BUXNnQ1NnQ0JDRVRJQTBnQ1VFSVFRd2dBeUFHU3lJVkcyb29BZ0EyQWdBRFFBSkFJQUlOQUNBRUtBSVFJZ2xCQVdvaEFpQUpMUUFCSVFZZ0NTMEFBRUgvQVVjRVFDQUVJQUkyQWhCQkNDRUNJQVpCQ0hRZ0FXb2hBUXdCQ3lBR1FZOEJUUVJBSUFRZ0FqWUNFQ0FHUVFsMElBRnFJUUZCQnlFQ0RBRUxJQVFnQkNnQ0RFRUJhallDRENBQlFZRCtBMm9oQVVFSUlRSUxJQUpCQVdzaEFpQUJRUUYwSVFFZ0EwRUJkQ0lEUVlDQUFra05BQXNnQXlFR0lCTWdFMFVnRlJzTElRTWdCeUFVUVFKMGFpSUpJQW9nQ3lBRElBa29BZ0FpQ1VFZmRrWWJJQWxxTmdJQUlCQkJnSUNBZ0FKeUJTQVFDellDQUFzZ0JVRUVhaUVKSUFkQkJHb2hCeUFJUVFGcUlnZ2dERWNOQUFzZ0JVRU1haUVKSUFjZ0ZFRUNkR29oQnlBUlFRUnFJaEVnQkNnQ2dBRWlBMEY4Y1VrTkFBc01BUXRCQkNBRFFYeHhJZ2tnQ1VFRVRSdEJBV3NpQ1VGOGNVRUVhaUVSSUFnZ0NVRUJkRUY0Y1dwQkZHb2hDUXNnQkNBQ05nSUlJQVFnQmpZQ0JDQUVJQUUyQWdBZ0JDQU5OZ0pvSUF4RkRRRWdBeUFSVFEwQlFRQWhFMEVBSUF0cklSUWdBeUVCQTBBQ1FDQUJJQkZHQkVBZ0VTRUJEQUVMSUFrb0FnQWhBa0VBSVJBRFFFR1FnSUFCSUJCQkEyd2lDSFFnQW5GQkVDQUlkRVlFUUNBSElBd2dFR3hCQW5ScUlRVWdCQ0FQUVJCQkQwRU9JQUlnQ0hZaUFVSHZBM0ViSUFGQmdJREFBSEViUVFKMGFpSU5OZ0pvSUFRZ0JDZ0NCQ0FOS0FJQUlnSW9BZ0FpQVdzaUF6WUNCQUovSUFFZ0JDZ0NBQ0lHUVJCMlN3UkFJQUlvQWdRaENpQUVJQUUyQWdRZ0RTQUNRUWhCRENBQklBTkxJZzRiYWlnQ0FEWUNBQ0FFS0FJSUlRSURRQUpBSUFJTkFDQUVLQUlRSWdKQkFXb2hEU0FDTFFBQklRTWdBaTBBQUVIL0FVWUVRQ0FEUVpBQlR3UkFJQVFnQkNnQ0RFRUJhallDRENBR1FZRCtBMm9oQmtFSUlRSU1BZ3NnQkNBTk5nSVFJQU5CQ1hRZ0Jtb2hCa0VISVFJTUFRc2dCQ0FOTmdJUVFRZ2hBaUFEUVFoMElBWnFJUVlMSUFRZ0FrRUJheUlDTmdJSUlBUWdCa0VCZENJR05nSUFJQVFnQVVFQmRDSUJOZ0lFSUFGQmdJQUNTUTBBQ3lBS0lBcEZJQTRiREFFTElBUWdCaUFCUVJCMGF5SUdOZ0lBSUFOQmdJQUNjVVVFUUNBQ0tBSUVJUW9nRFNBQ1FReEJDQ0FCSUFOTElnNGJhaWdDQURZQ0FDQUVLQUlJSVFJRFFBSkFJQUlOQUNBRUtBSVFJZ0pCQVdvaERTQUNMUUFCSVFFZ0FpMEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FHUVlEK0Eyb2hCa0VJSVFJTUFnc2dCQ0FOTmdJUUlBRkJDWFFnQm1vaEJrRUhJUUlNQVFzZ0JDQU5OZ0lRUVFnaEFpQUJRUWgwSUFacUlRWUxJQVFnQWtFQmF5SUNOZ0lJSUFRZ0JrRUJkQ0lHTmdJQUlBUWdBMEVCZENJRE5nSUVJQU5CZ0lBQ1NRMEFDeUFLUlNBS0lBNGJEQUVMSUFJb0FnUUxJUUVnQlNBVUlBc2dBU0FGS0FJQUlnTkJIM1pHR3lBRGFqWUNBQ0FKSUFrb0FnQkJnSURBQUNBSWRISWlBallDQUNBRUtBS0FBU0VEQ3lBUVFRRnFJaEFnQXlJQklCRnJTUTBBQ3dzZ0NVRUVhaUVKSUFkQkJHb2hCeUFUUVFGcUloTWdERWNOQUFzTUFRdEJBQ0VSUVFBaEZ3SkFBa0FDUUFKQUlBUW9BbndpRkVIQUFFY05BQ0FFS0FLQUFVSEFBRWNOQUVFQVFRRWdHWFFpQVVFQmRpQUJjaUlVYXlFVElBUkI1QUJxSVFnZ0JFSGdBR29oRUNBRVFSeHFJUXNnQkNnQ2VFR01BbW9oQmlBRUtBSUlJUVVnQkNnQ0JDRUJJQVFvQWdBaEFpQUVLQUpvSVFrZ0JDZ0NkQ0VESUJaQkNIRU5BUU5BUVFBaERBTkFJQU1oRVFKQUFrQUNmd0pBQWtBZ0JpSU5LQUlBSWdaRkJFQWdBU0FRS0FJQUlnTW9BZ0FpQm1zaEFRSi9JQVlnQWtFUWRrc0VRQ0FES0FJRUlRY2dFQ0FEUVFoQkRDQUJJQVpKSWdvYmFpZ0NBRFlDQUFOQUFrQWdCUTBBSUFRb0FoQWlBMEVCYWlFSklBTXRBQUVoQVNBRExRQUFRZjhCUmdSQUlBRkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlF3Q0N5QUVJQWsyQWhBZ0FVRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBazJBaEJCQ0NFRklBRkJDSFFnQW1vaEFnc2dCVUVCYXlFRklBSkJBWFFoQWlBR1FRRjBJZ1pCZ0lBQ1NRMEFDeUFHSVFFZ0J5QUhSU0FLR3d3QkN5QUNJQVpCRUhScklRSWdBVUdBZ0FKeFJRUkFJQU1vQWdRaEJ5QVFJQU5CREVFSUlBRWdCa2tpQ2h0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUdRUUZxSVFrZ0JpMEFBU0VESUFZdEFBQkIvd0ZHQkVBZ0EwR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGREFJTElBUWdDVFlDRUNBRFFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0NUWUNFRUVJSVFVZ0EwRUlkQ0FDYWlFQ0N5QUZRUUZySVFVZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQWRGSUFjZ0Noc01BUXNnQXlnQ0JBdEZCRUFnRUNFSkRBWUxJQUVnQ0NnQ0FDSURLQUlBSWdacklRRUNmeUFHSUFKQkVIWkxCRUFnQXlnQ0JDRUhJQWdnQTBFSVFRd2dBU0FHU1NJS0cyb29BZ0FpQXpZQ0FBTkFBa0FnQlEwQUlBUW9BaEFpQ1VFQmFpRUZJQWt0QUFFaEFTQUpMUUFBUWY4QlJnUkFJQUZCa0FGUEJFQWdCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJRd0NDeUFFSUFVMkFoQWdBVUVKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVUyQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3NnQlVFQmF5RUZJQUpCQVhRaEFpQUdRUUYwSWdaQmdJQUNTUTBBQ3lBR0lRRWdCeUFIUlNBS0d3d0JDeUFDSUFaQkVIUnJJUUlnQVVHQWdBSnhSUVJBSUFNb0FnUWhCeUFJSUFOQkRFRUlJQUVnQmtraUNodHFLQUlBSWdNMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdsQkFXb2hCU0FKTFFBQklRWWdDUzBBQUVIL0FVWUVRQ0FHUVpBQlR3UkFJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVU1BZ3NnQkNBRk5nSVFJQVpCQ1hRZ0Ftb2hBa0VISVFVTUFRc2dCQ0FGTmdJUVFRZ2hCU0FHUVFoMElBSnFJUUlMSUFWQkFXc2hCU0FDUVFGMElRSWdBVUVCZENJQlFZQ0FBa2tOQUFzZ0IwVWdCeUFLR3d3QkN5QURLQUlFQ3lFS0lBRWdBeWdDQUNJR2F5RUJBbjhnQmlBQ1FSQjJTd1JBSUFNb0FnUWhCeUFJSUFOQkNFRU1JQUVnQmtraURodHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lEUVFGcUlRa2dBeTBBQVNFQklBTXRBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQ1RZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdDVFlDRUVFSUlRVWdBVUVJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBWkJBWFFpQmtHQWdBSkpEUUFMSUFZaEFTQUhJQWRGSUE0YkRBRUxJQUlnQmtFUWRHc2hBaUFCUVlDQUFuRkZCRUFnQXlnQ0JDRUhJQWdnQTBFTVFRZ2dBU0FHU1NJT0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ1pCQVdvaENTQUdMUUFCSVFNZ0JpMEFBRUgvQVVZRVFDQURRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTUFnc2dCQ0FKTmdJUUlBTkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUpOZ0lRUVFnaEJTQURRUWgwSUFKcUlRSUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnQjBVZ0J5QU9Hd3dCQ3lBREtBSUVDeUVEUVFBaEJpQUlJUWtDUUFKQUFrQUNmd0pBQWtBZ0F5QUtRUUYwY2c0RUFBRURCUW9MSUFFZ0N5QU5LQUlFUVJGMlFRUnhJQTFCQkdzaUJ5Z0NBRUVUZGtFQmNYSWlEa0hRdVFGcUxRQUFRUUowYWlJSktBSUFJZ01vQWdBaUJtc2hBUUovSUFZZ0FrRVFka3NFUUNBREtBSUVJUW9nQ1NBRFFRaEJEQ0FCSUFaSkloSWJhaWdDQURZQ0FBTkFBa0FnQlEwQUlBUW9BaEFpQTBFQmFpRUpJQU10QUFFaEFTQURMUUFBUWY4QlJnUkFJQUZCa0FGUEJFQWdCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJRd0NDeUFFSUFrMkFoQWdBVUVKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQWsyQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3NnQlVFQmF5RUZJQUpCQVhRaEFpQUdRUUYwSWdaQmdJQUNTUTBBQ3lBR0lRRWdDaUFLUlNBU0d3d0JDeUFDSUFaQkVIUnJJUUlnQVVHQWdBSnhSUVJBSUFNb0FnUWhDaUFKSUFOQkRFRUlJQUVnQmtraUVodHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lHUVFGcUlRa2dCaTBBQVNFRElBWXRBQUJCL3dGR0JFQWdBMEdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQ1RZQ0VDQURRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdDVFlDRUVFSUlRVWdBMEVJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFwRklBb2dFaHNNQVFzZ0F5Z0NCQXNoQXlBUklCTWdGQ0FESUE1QjBMc0JhaTBBQUhNaUF4czJBZ0FnQnlBSEtBSUFRU0J5TmdJQUlBMGdEU2dDQkVFSWNqWUNCQ0FOUVl3Q2F5SUdJQVlvQWdCQmdJQUljallDQUNBTlFZUUNheUlHSUFZb0FnQkJnSUFDY2pZQ0FDQU5RWWdDYXlJR0lBWW9BZ0FnQTBFZmRISkJnSUFFY2pZQ0FDQURRUk4wSVZjZ0FTQUxJQVFvQW13dEFBSkJBblJxSWdjb0FnQWlBeWdDQUNJR2F5RUJBbjhnQmlBQ1FSQjJTd1JBSUFNb0FnUWhDU0FISUFOQkNFRU1JQUVnQmtraURodHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lEUVFGcUlRY2dBeTBBQVNFQklBTXRBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQnpZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCellDRUVFSUlRVWdBVUVJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBWkJBWFFpQmtHQWdBSkpEUUFMSUFZaEFTQUpJQWxGSUE0YkRBRUxJQUlnQmtFUWRHc2hBaUFCUVlDQUFuRkZCRUFnQXlnQ0JDRUpJQWNnQTBFTVFRZ2dBU0FHU1NJT0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ1pCQVdvaEJ5QUdMUUFCSVFNZ0JpMEFBRUgvQVVZRVFDQURRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTUFnc2dCQ0FITmdJUUlBTkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUhOZ0lRUVFnaEJTQURRUWgwSUFKcUlRSUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnQ1VVZ0NTQU9Hd3dCQ3lBREtBSUVDeUVESUZkQkVISWlCaUFEUlEwQkdnc2dBU0FMSUEwb0FnUkJGSFpCQkhFZ0RVRUVheUlKS0FJQVFSWjJRUUZ4SUFaQkQzWkJFSEVnQmtFVGRrSEFBSEVnQmtFRGRrR3FBWEZ5Y25KeUloSkIwTGtCYWkwQUFFRUNkR29pQ2lnQ0FDSUhLQUlBSWdOcklRRUNmeUFESUFKQkVIWkxCRUFnQnlnQ0JDRU9JQW9nQjBFSVFRd2dBU0FEU1NJS0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFFZ0J5MEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTUFnc2dCQ0FGTmdJUUlBRkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUZOZ0lRUVFnaEJTQUJRUWgwSUFKcUlRSUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0EwRUJkQ0lEUVlDQUFra05BQXNnQXlFQklBNGdEa1VnQ2hzTUFRc2dBaUFEUVJCMGF5RUNJQUZCZ0lBQ2NVVUVRQ0FIS0FJRUlRNGdDaUFIUVF4QkNDQUJJQU5KSWdvYmFpZ0NBRFlDQUFOQUFrQWdCUTBBSUFRb0FoQWlCMEVCYWlFRklBY3RBQUVoQXlBSExRQUFRZjhCUmdSQUlBTkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlF3Q0N5QUVJQVUyQWhBZ0EwRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBVTJBaEJCQ0NFRklBTkJDSFFnQW1vaEFnc2dCVUVCYXlFRklBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFPUlNBT0lBb2JEQUVMSUFjb0FnUUxJUU1nRVNBVElCUWdBeUFTUWRDN0FXb3RBQUJ6SWdNYk5nS0FBaUFKSUFrb0FnQkJnQUp5TmdJQUlBMGdEU2dDQkVIQUFISTJBZ1FnQmlBRFFSWjBja0dBQVhJTElRWWdBU0FMSUFRb0Ftd2dCa0VHZGtIdkEzRnFMUUFBUVFKMGFpSUpLQUlBSWdjb0FnQWlBMnNoQVFKL0lBTWdBa0VRZGtzRVFDQUhLQUlFSVFvZ0NTQUhRUWhCRENBQklBTkpJZzRiYWlnQ0FEWUNBQU5BQWtBZ0JRMEFJQVFvQWhBaUIwRUJhaUVKSUFjdEFBRWhBU0FITFFBQVFmOEJSZ1JBSUFGQmtBRlBCRUFnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCUXdDQ3lBRUlBazJBaEFnQVVFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFrMkFoQkJDQ0VGSUFGQkNIUWdBbW9oQWdzZ0JVRUJheUVGSUFKQkFYUWhBaUFEUVFGMElnTkJnSUFDU1EwQUN5QURJUUVnQ2lBS1JTQU9Hd3dCQ3lBQ0lBTkJFSFJySVFJZ0FVR0FnQUp4UlFSQUlBY29BZ1FoQ2lBSklBZEJERUVJSUFFZ0Ewa2lEaHRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJSFFRRnFJUWtnQnkwQUFTRURJQWN0QUFCQi93RkdCRUFnQTBHUUFVOEVRQ0FFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZEQUlMSUFRZ0NUWUNFQ0FEUVFsMElBSnFJUUpCQnlFRkRBRUxJQVFnQ1RZQ0VFRUlJUVVnQTBFSWRDQUNhaUVDQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBcEZJQW9nRGhzTUFRc2dCeWdDQkF0RkRRRUxJQUVnQ3lBTktBSUVRUmQyUVFSeElBMUJCR3NpQ1NnQ0FFRVpka0VCY1NBR1FSSjJRUkJ4SUFaQkZuWkJ3QUJ4SUFaQkJuWkJxZ0Z4Y25KeWNpSVNRZEM1QVdvdEFBQkJBblJxSWdvb0FnQWlCeWdDQUNJRGF5RUJBbjhnQXlBQ1FSQjJTd1JBSUFjb0FnUWhEaUFLSUFkQkNFRU1JQUVnQTBraUNodHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lIUVFGcUlRVWdCeTBBQVNFQklBY3RBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQlRZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCVFlDRUVFSUlRVWdBVUVJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBTkJBWFFpQTBHQWdBSkpEUUFMSUFNaEFTQU9JQTVGSUFvYkRBRUxJQUlnQTBFUWRHc2hBaUFCUVlDQUFuRkZCRUFnQnlnQ0JDRU9JQW9nQjBFTVFRZ2dBU0FEU1NJS0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFNZ0J5MEFBRUgvQVVZRVFDQURRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTUFnc2dCQ0FGTmdJUUlBTkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUZOZ0lRUVFnaEJTQURRUWgwSUFKcUlRSUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnRGtVZ0RpQUtHd3dCQ3lBSEtBSUVDeUVESUJFZ0V5QVVJQU1nRWtIUXV3RnFMUUFBY3lJREd6WUNnQVFnQ1NBSktBSUFRWUFRY2pZQ0FDQU5JQTBvQWdSQmdBUnlOZ0lFSUFZZ0EwRVpkSEpCZ0FoeUlRWUxJQUVnQ3lBRUtBSnNJQVpCQ1haQjd3TnhhaTBBQUVFQ2RHb2lDU2dDQUNJSEtBSUFJZ05ySVFFQ2Z5QURJQUpCRUhaTEJFQWdCeWdDQkNFS0lBa2dCMEVJUVF3Z0FTQURTU0lPRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnZEJBV29oQlNBSExRQUJJUUVnQnkwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVNQWdzZ0JDQUZOZ0lRSUFGQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBRk5nSVFRUWdoQlNBQlFRaDBJQUpxSVFJTElBVkJBV3NoQlNBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dBeUVCSUFvZ0NrVWdEaHNNQVFzZ0FpQURRUkIwYXlFQ0lBRkJnSUFDY1VVRVFDQUhLQUlFSVFvZ0NTQUhRUXhCQ0NBQklBTkpJZzRiYWlnQ0FEWUNBQU5BQWtBZ0JRMEFJQVFvQWhBaUIwRUJhaUVGSUFjdEFBRWhBeUFITFFBQVFmOEJSZ1JBSUFOQmtBRlBCRUFnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCUXdDQ3lBRUlBVTJBaEFnQTBFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFVMkFoQkJDQ0VGSUFOQkNIUWdBbW9oQWdzZ0JVRUJheUVGSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUtSU0FLSUE0YkRBRUxJQWNvQWdRTFJRMEZDeUFCSUFzZ0RTZ0NCRUVhZGtFRWNTQU5RUVJySWc0b0FnQkJISFpCQVhFZ0JrRVZka0VRY1NBR1FSbDJRY0FBY1NBR1FRbDJRYW9CY1hKeWNuSWlDa0hRdVFGcUxRQUFRUUowYWlJSktBSUFJZ2NvQWdBaUEyc2hBU0FESUFKQkVIWkxCRUFnQnlnQ0JDRVNJQWtnQjBFSVFRd2dBU0FEU1NJVkcyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFFZ0J5MEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTUFnc2dCQ0FGTmdJUUlBRkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUZOZ0lRUVFnaEJTQUJRUWgwSUFKcUlRSUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0EwRUJkQ0lEUVlDQUFra05BQXNnQXlFQklCSWdFa1VnRlJzTUJBc2dBaUFEUVJCMGF5RUNJQUZCZ0lBQ2NRMEJJQWNvQWdRaEVpQUpJQWRCREVFSUlBRWdBMGtpRlJ0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VESUFjdEFBQkIvd0ZHQkVBZ0EwR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGREFJTElBUWdCVFlDRUNBRFFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JUWUNFRUVJSVFVZ0EwRUlkQ0FDYWlFQ0N5QUZRUUZySVFVZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQkpGSUJJZ0ZSc01Bd3NDUUNBR1FaQ0FnQUZ4RFFBZ0FTQUxJQVFvQW13Z0JrSHZBM0ZxTFFBQVFRSjBhaUlKS0FJQUlnY29BZ0FpQTJzaEFRSi9JQU1nQWtFUWRrc0VRQ0FIS0FJRUlRb2dDU0FIUVFoQkRDQUJJQU5KSWc0YmFpZ0NBRFlDQUFOQUFrQWdCUTBBSUFRb0FoQWlCMEVCYWlFRklBY3RBQUVoQVNBSExRQUFRZjhCUmdSQUlBRkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlF3Q0N5QUVJQVUyQWhBZ0FVRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBVTJBaEJCQ0NFRklBRkJDSFFnQW1vaEFnc2dCVUVCYXlFRklBSkJBWFFoQWlBRFFRRjBJZ05CZ0lBQ1NRMEFDeUFESVFFZ0NpQUtSU0FPR3d3QkN5QUNJQU5CRUhScklRSWdBVUdBZ0FKeFJRUkFJQWNvQWdRaENpQUpJQWRCREVFSUlBRWdBMGtpRGh0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VESUFjdEFBQkIvd0ZHQkVBZ0EwR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGREFJTElBUWdCVFlDRUNBRFFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JUWUNFRUVJSVFVZ0EwRUlkQ0FDYWlFQ0N5QUZRUUZySVFVZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQXBGSUFvZ0Roc01BUXNnQnlnQ0JBdEZEUUFnQVNBTElBMG9BZ1JCRVhaQkJIRWdEVUVFYXlJS0tBSUFRUk4yUVFGeElBWkJEblpCRUhFZ0JrRVFka0hBQUhFZ0JrR3FBWEZ5Y25KeUloSkIwTGtCYWkwQUFFRUNkR29pQ1NnQ0FDSUhLQUlBSWdOcklRRUNmeUFESUFKQkVIWkxCRUFnQnlnQ0JDRU9JQWtnQjBFSVFRd2dBU0FEU1NJVkcyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFFZ0J5MEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTUFnc2dCQ0FGTmdJUUlBRkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUZOZ0lRUVFnaEJTQUJRUWgwSUFKcUlRSUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0EwRUJkQ0lEUVlDQUFra05BQXNnQXlFQklBNGdEa1VnRlJzTUFRc2dBaUFEUVJCMGF5RUNJQUZCZ0lBQ2NVVUVRQ0FIS0FJRUlRNGdDU0FIUVF4QkNDQUJJQU5KSWhVYmFpZ0NBRFlDQUFOQUFrQWdCUTBBSUFRb0FoQWlCMEVCYWlFRklBY3RBQUVoQXlBSExRQUFRZjhCUmdSQUlBTkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlF3Q0N5QUVJQVUyQWhBZ0EwRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBVTJBaEJCQ0NFRklBTkJDSFFnQW1vaEFnc2dCVUVCYXlFRklBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFPUlNBT0lCVWJEQUVMSUFjb0FnUUxJUU1nRVNBVElCUWdBeUFTUWRDN0FXb3RBQUJ6SWdNYk5nSUFJQW9nQ2lnQ0FFRWdjallDQUNBTklBMG9BZ1JCQ0hJMkFnUWdEVUdNQW1zaUJ5QUhLQUlBUVlDQUNISTJBZ0FnRFVHRUFtc2lCeUFIS0FJQVFZQ0FBbkkyQWdBZ0RVR0lBbXNpQnlBSEtBSUFJQU5CSDNSeVFZQ0FCSEkyQWdBZ0JpQURRUk4wY2tFUWNpRUdDd0pBSUFaQmdJR0FDSEVOQUNBQklBc2dCQ2dDYkNBR1FRTjJJZzVCN3dOeGFpMEFBRUVDZEdvaUNTZ0NBQ0lIS0FJQUlnTnJJUUVDZnlBRElBSkJFSFpMQkVBZ0J5Z0NCQ0VLSUFrZ0IwRUlRUXdnQVNBRFNTSVNHMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdkQkFXb2hCU0FITFFBQklRRWdCeTBBQUVIL0FVWUVRQ0FCUVpBQlR3UkFJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVU1BZ3NnQkNBRk5nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFVTUFRc2dCQ0FGTmdJUVFRZ2hCU0FCUVFoMElBSnFJUUlMSUFWQkFXc2hCU0FDUVFGMElRSWdBMEVCZENJRFFZQ0FBa2tOQUFzZ0F5RUJJQW9nQ2tVZ0Voc01BUXNnQWlBRFFSQjBheUVDSUFGQmdJQUNjVVVFUUNBSEtBSUVJUW9nQ1NBSFFReEJDQ0FCSUFOSkloSWJhaWdDQURZQ0FBTkFBa0FnQlEwQUlBUW9BaEFpQjBFQmFpRUZJQWN0QUFFaEF5QUhMUUFBUWY4QlJnUkFJQU5Ca0FGUEJFQWdCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJRd0NDeUFFSUFVMkFoQWdBMEVKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVUyQWhCQkNDRUZJQU5CQ0hRZ0Ftb2hBZ3NnQlVFQmF5RUZJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBS1JTQUtJQkliREFFTElBY29BZ1FMUlEwQUlBRWdDeUFOS0FJRVFSUjJRUVJ4SUExQkJHc2lDaWdDQUVFV2RrRUJjU0FHUVE5MlFSQnhJQVpCRTNaQndBQnhJQTVCcWdGeGNuSnljaUlTUWRDNUFXb3RBQUJCQW5ScUlna29BZ0FpQnlnQ0FDSURheUVCQW44Z0F5QUNRUkIyU3dSQUlBY29BZ1FoRGlBSklBZEJDRUVNSUFFZ0Ewa2lGUnRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJSFFRRnFJUVVnQnkwQUFTRUJJQWN0QUFCQi93RkdCRUFnQVVHUUFVOEVRQ0FFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZEQUlMSUFRZ0JUWUNFQ0FCUVFsMElBSnFJUUpCQnlFRkRBRUxJQVFnQlRZQ0VFRUlJUVVnQVVFSWRDQUNhaUVDQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQU5CQVhRaUEwR0FnQUpKRFFBTElBTWhBU0FPSUE1RklCVWJEQUVMSUFJZ0EwRVFkR3NoQWlBQlFZQ0FBbkZGQkVBZ0J5Z0NCQ0VPSUFrZ0IwRU1RUWdnQVNBRFNTSVZHMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdkQkFXb2hCU0FITFFBQklRTWdCeTBBQUVIL0FVWUVRQ0FEUVpBQlR3UkFJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVU1BZ3NnQkNBRk5nSVFJQU5CQ1hRZ0Ftb2hBa0VISVFVTUFRc2dCQ0FGTmdJUVFRZ2hCU0FEUVFoMElBSnFJUUlMSUFWQkFXc2hCU0FDUVFGMElRSWdBVUVCZENJQlFZQ0FBa2tOQUFzZ0RrVWdEaUFWR3d3QkN5QUhLQUlFQ3lFRElCRWdFeUFVSUFNZ0VrSFF1d0ZxTFFBQWN5SURHellDZ0FJZ0NpQUtLQUlBUVlBQ2NqWUNBQ0FOSUEwb0FnUkJ3QUJ5TmdJRUlBWWdBMEVXZEhKQmdBRnlJUVlMQWtBZ0JrR0FpSURBQUhFTkFDQUJJQXNnQkNnQ2JDQUdRUVoySWc1Qjd3TnhhaTBBQUVFQ2RHb2lDU2dDQUNJSEtBSUFJZ05ySVFFQ2Z5QURJQUpCRUhaTEJFQWdCeWdDQkNFS0lBa2dCMEVJUVF3Z0FTQURTU0lTRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnZEJBV29oQlNBSExRQUJJUUVnQnkwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVNQWdzZ0JDQUZOZ0lRSUFGQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBRk5nSVFRUWdoQlNBQlFRaDBJQUpxSVFJTElBVkJBV3NoQlNBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dBeUVCSUFvZ0NrVWdFaHNNQVFzZ0FpQURRUkIwYXlFQ0lBRkJnSUFDY1VVRVFDQUhLQUlFSVFvZ0NTQUhRUXhCQ0NBQklBTkpJaEliYWlnQ0FEWUNBQU5BQWtBZ0JRMEFJQVFvQWhBaUIwRUJhaUVGSUFjdEFBRWhBeUFITFFBQVFmOEJSZ1JBSUFOQmtBRlBCRUFnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCUXdDQ3lBRUlBVTJBaEFnQTBFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFVMkFoQkJDQ0VGSUFOQkNIUWdBbW9oQWdzZ0JVRUJheUVGSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUtSU0FLSUJJYkRBRUxJQWNvQWdRTFJRMEFJQUVnQ3lBTktBSUVRUmQyUVFSeElBMUJCR3NpQ2lnQ0FFRVpka0VCY1NBR1FSSjJRUkJ4SUFaQkZuWkJ3QUJ4SUE1QnFnRnhjbkp5Y2lJU1FkQzVBV290QUFCQkFuUnFJZ2tvQWdBaUJ5Z0NBQ0lEYXlFQkFuOGdBeUFDUVJCMlN3UkFJQWNvQWdRaERpQUpJQWRCQ0VFTUlBRWdBMGtpRlJ0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VCSUFjdEFBQkIvd0ZHQkVBZ0FVR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGREFJTElBUWdCVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JUWUNFRUVJSVFVZ0FVRUlkQ0FDYWlFQ0N5QUZRUUZySVFVZ0FrRUJkQ0VDSUFOQkFYUWlBMEdBZ0FKSkRRQUxJQU1oQVNBT0lBNUZJQlViREFFTElBSWdBMEVRZEdzaEFpQUJRWUNBQW5GRkJFQWdCeWdDQkNFT0lBa2dCMEVNUVFnZ0FTQURTU0lWRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnZEJBV29oQlNBSExRQUJJUU1nQnkwQUFFSC9BVVlFUUNBRFFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVNQWdzZ0JDQUZOZ0lRSUFOQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBRk5nSVFRUWdoQlNBRFFRaDBJQUpxSVFJTElBVkJBV3NoQlNBQ1FRRjBJUUlnQVVFQmRDSUJRWUNBQWtrTkFBc2dEa1VnRGlBVkd3d0JDeUFIS0FJRUN5RURJQkVnRXlBVUlBTWdFa0hRdXdGcUxRQUFjeUlER3pZQ2dBUWdDaUFLS0FJQVFZQVFjallDQUNBTklBMG9BZ1JCZ0FSeU5nSUVJQVlnQTBFWmRISkJnQWh5SVFZTElBWkJnTUNBZ0FSeERRTWdBU0FMSUFRb0Ftd2dCa0VKZGlJU1FlOERjV290QUFCQkFuUnFJZ2tvQWdBaUFTZ0NBQ0lEYXlFSEFuOGdBeUFDUVJCMlN3UkFJQUVvQWdRaENpQUpJQUZCQ0VFTUlBTWdCMHNpRGh0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VCSUFjdEFBQkIvd0ZHQkVBZ0FVR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGREFJTElBUWdCVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JUWUNFRUVJSVFVZ0FVRUlkQ0FDYWlFQ0N5QUZRUUZySVFVZ0FrRUJkQ0VDSUFOQkFYUWlBMEdBZ0FKSkRRQUxJQU1oQnlBS0lBcEZJQTRiREFFTElBSWdBMEVRZEdzaEFpQUhRWUNBQW5GRkJFQWdBU2dDQkNFS0lBa2dBVUVNUVFnZ0F5QUhTeUlPRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnTkJBV29oQlNBRExRQUJJUUVnQXkwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVNQWdzZ0JDQUZOZ0lRSUFGQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBRk5nSVFRUWdoQlNBQlFRaDBJQUpxSVFJTElBVkJBV3NoQlNBQ1FRRjBJUUlnQjBFQmRDSUhRWUNBQWtrTkFBc2dDa1VnQ2lBT0d3d0JDeUFCS0FJRUMwVUVRQ0FISVFFTUJBc2dCeUFMSUEwb0FnUkJHblpCQkhFZ0RVRUVheUlPS0FJQVFSeDJRUUZ4SUFaQkZYWkJFSEVnQmtFWmRrSEFBSEVnRWtHcUFYRnljbkp5SWdwQjBMa0JhaTBBQUVFQ2RHb2lDU2dDQUNJSEtBSUFJZ0ZySVFNZ0FTQUNRUkIyU3dSQUlBY29BZ1FoRWlBSklBZEJDRUVNSUFFZ0Ewc2lGUnRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJSFFRRnFJUVVnQnkwQUFTRURJQWN0QUFCQi93RkdCRUFnQTBHUUFVOEVRQ0FFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZEQUlMSUFRZ0JUWUNFQ0FEUVFsMElBSnFJUUpCQnlFRkRBRUxJQVFnQlRZQ0VFRUlJUVVnQTBFSWRDQUNhaUVDQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElCSWdFa1VnRlJzTUF3c2dBaUFCUVJCMGF5RUNJQU5CZ0lBQ2NVVU5BU0FESVFFTElBY29BZ1FNQVFzZ0J5Z0NCQ0VTSUFrZ0IwRU1RUWdnQVNBRFN5SVZHMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdkQkFXb2hCU0FITFFBQklRRWdCeTBBQUVIL0FVWUVRQ0FCUVpBQlR3UkFJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVU1BZ3NnQkNBRk5nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFVTUFRc2dCQ0FGTmdJUVFRZ2hCU0FCUVFoMElBSnFJUUlMSUFWQkFXc2hCU0FDUVFGMElRSWdBMEVCZENJRFFZQ0FBa2tOQUFzZ0F5RUJJQkpGSUJJZ0ZSc0xJUU1nRVNBVElCUWdBeUFLUWRDN0FXb3RBQUJ6SWdNYk5nS0FCaUFPSUE0b0FnQkJnSUFCY2pZQ0FDQU5JQTBvQWdSQmdDQnlOZ0lFSUEwZ0RTZ0NoQUpCQkhJMkFvUUNJQTBnRFNnQ2pBSkJBWEkyQW93Q0lBMGdEU2dDaUFJZ0EwRVNkSEpCQW5JMkFvZ0NJQVlnQTBFY2RISkJnTUFBY2lFR0N5QU5JQVpCLy8vL3RudHhOZ0lBQ3lBTlFRUnFJUVlnRVVFRWFpRURJQXhCQVdvaURFSEFBRWNOQUFzZ0RVRU1haUVHSUJGQmhBWnFJUU1nRjBFOFNTRllJQmRCQkdvaEZ5QllEUUFMREFJTFFRRWdHWFFpQVVFQmRpQUJjaUVPSUFRb0FuZ2lCeUFVUVFKMGFrRU1haUVESUFRb0FvQUJJUVlnQkNnQ0NDRUZJQVFvQWdRaEFTQUVLQUlBSVFJZ0JDZ0NhQ0VKSUFRb0FuUWhDd0pBQWtBZ0ZrRUljUVJBSUFaQkJFa05BaUFVUlEwQklBUkI1QUJxSVJBZ0JFSGdBR29oRFNBVVFRTnNJUnNnRkVFQmRDRWtRUUFnRG1zaEZTQUVRUnhxSVJJRFFFRUFJUmdEUUFKQUFrQUNmd0pBSUFNaUNDZ0NBQ0lEQkVBQ1FDQURRWkNBZ0FGeERRQWdBU0FTSUFRb0Ftd2dBMEh2QTNGcUxRQUFRUUowYWlJSktBSUFJZ2NvQWdBaUJtc2hBUUovSUFZZ0FrRVFkazBFUUNBQ0lBWkJFSFJySVFJZ0FVR0FnQUp4QkVBZ0J5Z0NCQXdDQ3lBSEtBSUVJUXdnQ1NBSFFReEJDQ0FCSUFaSklnb2JhaWdDQURZQ0FBTkFBa0FnQlEwQUlBUW9BaEFpQjBFQmFpRUZJQWN0QUFFaEJpQUhMUUFBUWY4QlJ3UkFJQVFnQlRZQ0VFRUlJUVVnQmtFSWRDQUNhaUVDREFFTElBWkJqd0ZOQkVBZ0JDQUZOZ0lRSUFaQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCUXNnQlVFQmF5RUZJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBTVJTQU1JQW9iREFFTElBY29BZ1FoRENBSklBZEJDRUVNSUFFZ0Jra2lDaHRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJSFFRRnFJUVVnQnkwQUFTRUJJQWN0QUFCQi93RkhCRUFnQkNBRk5nSVFRUWdoQlNBQlFRaDBJQUpxSVFJTUFRc2dBVUdQQVUwRVFDQUVJQVUyQWhBZ0FVRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQVpCQVhRaUJrR0FnQUpKRFFBTElBWWhBU0FNSUF4RklBb2JDMFVOQUNBQklCSWdDQ2dDQkVFUmRrRUVjU0FJUVFScklnd29BZ0JCRTNaQkFYRWdBMEVPZGtFUWNTQURRUkIyUWNBQWNTQURRYW9CY1hKeWNuSWlFMEhRdVFGcUxRQUFRUUowYWlJSktBSUFJZ2NvQWdBaUJtc2hBUUovSUFZZ0FrRVFkazBFUUNBQ0lBWkJFSFJySVFJZ0FVR0FnQUp4QkVBZ0J5Z0NCQXdDQ3lBSEtBSUVJUW9nQ1NBSFFReEJDQ0FCSUFaSklod2JhaWdDQURZQ0FBTkFBa0FnQlEwQUlBUW9BaEFpQjBFQmFpRUZJQWN0QUFFaEJpQUhMUUFBUWY4QlJ3UkFJQVFnQlRZQ0VFRUlJUVVnQmtFSWRDQUNhaUVDREFFTElBWkJqd0ZOQkVBZ0JDQUZOZ0lRSUFaQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCUXNnQlVFQmF5RUZJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBS1JTQUtJQndiREFFTElBY29BZ1FoQ2lBSklBZEJDRUVNSUFFZ0Jra2lIQnRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJSFFRRnFJUVVnQnkwQUFTRUJJQWN0QUFCQi93RkhCRUFnQkNBRk5nSVFRUWdoQlNBQlFRaDBJQUpxSVFJTUFRc2dBVUdQQVUwRVFDQUVJQVUyQWhBZ0FVRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQVpCQVhRaUJrR0FnQUpKRFFBTElBWWhBU0FLSUFwRklCd2JDeUVHSUFzZ0ZTQU9JQVlnRTBIUXV3RnFMUUFBY3lJR0d6WUNBQ0FNSUF3b0FnQkJJSEkyQWdBZ0NDQUlLQUlFUVFoeU5nSUVJQU1nQmtFVGRISkJFSEloQXdzQ1FDQURRWUNCZ0FoeERRQWdBU0FTSUFRb0Ftd2dBMEVEZGlJS1FlOERjV290QUFCQkFuUnFJZ2tvQWdBaUJ5Z0NBQ0lHYXlFQkFuOGdCaUFDUVJCMlRRUkFJQUlnQmtFUWRHc2hBaUFCUVlDQUFuRUVRQ0FIS0FJRURBSUxJQWNvQWdRaERDQUpJQWRCREVFSUlBRWdCa2tpRXh0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VHSUFjdEFBQkIvd0ZIQkVBZ0JDQUZOZ0lRUVFnaEJTQUdRUWgwSUFKcUlRSU1BUXNnQmtHUEFVMEVRQ0FFSUFVMkFoQWdCa0VKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkN5QUZRUUZySVFVZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQXhGSUF3Z0V4c01BUXNnQnlnQ0JDRU1JQWtnQjBFSVFRd2dBU0FHU1NJVEcyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFFZ0J5MEFBRUgvQVVjRVFDQUVJQVUyQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3dCQ3lBQlFZOEJUUVJBSUFRZ0JUWUNFQ0FCUVFsMElBSnFJUUpCQnlFRkRBRUxJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0JrRUJkQ0lHUVlDQUFra05BQXNnQmlFQklBd2dERVVnRXhzTFJRMEFJQUVnRWlBSUtBSUVRUlIyUVFSeElBaEJCR3NpRENnQ0FFRVdka0VCY1NBRFFROTJRUkJ4SUFOQkUzWkJ3QUJ4SUFwQnFnRnhjbkp5Y2lJVFFkQzVBV290QUFCQkFuUnFJZ2tvQWdBaUJ5Z0NBQ0lHYXlFQkFuOGdCaUFDUVJCMlRRUkFJQUlnQmtFUWRHc2hBaUFCUVlDQUFuRUVRQ0FIS0FJRURBSUxJQWNvQWdRaENpQUpJQWRCREVFSUlBRWdCa2tpSEJ0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VHSUFjdEFBQkIvd0ZIQkVBZ0JDQUZOZ0lRUVFnaEJTQUdRUWgwSUFKcUlRSU1BUXNnQmtHUEFVMEVRQ0FFSUFVMkFoQWdCa0VKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkN5QUZRUUZySVFVZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQXBGSUFvZ0hCc01BUXNnQnlnQ0JDRUtJQWtnQjBFSVFRd2dBU0FHU1NJY0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFFZ0J5MEFBRUgvQVVjRVFDQUVJQVUyQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3dCQ3lBQlFZOEJUUVJBSUFRZ0JUWUNFQ0FCUVFsMElBSnFJUUpCQnlFRkRBRUxJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0JrRUJkQ0lHUVlDQUFra05BQXNnQmlFQklBb2dDa1VnSEJzTElRWWdDeUFVUVFKMGFpQVZJQTRnQmlBVFFkQzdBV290QUFCeklnWWJOZ0lBSUF3Z0RDZ0NBRUdBQW5JMkFnQWdDQ0FJS0FJRVFjQUFjallDQkNBRElBWkJGblJ5UVlBQmNpRURDd0pBSUFOQmdJaUF3QUJ4RFFBZ0FTQVNJQVFvQW13Z0EwRUdkaUlLUWU4RGNXb3RBQUJCQW5ScUlna29BZ0FpQnlnQ0FDSUdheUVCQW44Z0JpQUNRUkIyVFFSQUlBSWdCa0VRZEdzaEFpQUJRWUNBQW5FRVFDQUhLQUlFREFJTElBY29BZ1FoRENBSklBZEJERUVJSUFFZ0Jra2lFeHRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJSFFRRnFJUVVnQnkwQUFTRUdJQWN0QUFCQi93RkhCRUFnQkNBRk5nSVFRUWdoQlNBR1FRaDBJQUpxSVFJTUFRc2dCa0dQQVUwRVFDQUVJQVUyQWhBZ0JrRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBeEZJQXdnRXhzTUFRc2dCeWdDQkNFTUlBa2dCMEVJUVF3Z0FTQUdTU0lURzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnZEJBV29oQlNBSExRQUJJUUVnQnkwQUFFSC9BVWNFUUNBRUlBVTJBaEJCQ0NFRklBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQVFnQlRZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTElBVkJBV3NoQlNBQ1FRRjBJUUlnQmtFQmRDSUdRWUNBQWtrTkFBc2dCaUVCSUF3Z0RFVWdFeHNMUlEwQUlBRWdFaUFJS0FJRVFSZDJRUVJ4SUFoQkJHc2lEQ2dDQUVFWmRrRUJjU0FEUVJKMlFSQnhJQU5CRm5aQndBQnhJQXBCcWdGeGNuSnljaUlUUWRDNUFXb3RBQUJCQW5ScUlna29BZ0FpQnlnQ0FDSUdheUVCQW44Z0JpQUNRUkIyVFFSQUlBSWdCa0VRZEdzaEFpQUJRWUNBQW5FRVFDQUhLQUlFREFJTElBY29BZ1FoQ2lBSklBZEJERUVJSUFFZ0Jra2lIQnRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJSFFRRnFJUVVnQnkwQUFTRUdJQWN0QUFCQi93RkhCRUFnQkNBRk5nSVFRUWdoQlNBR1FRaDBJQUpxSVFJTUFRc2dCa0dQQVUwRVFDQUVJQVUyQWhBZ0JrRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBcEZJQW9nSEJzTUFRc2dCeWdDQkNFS0lBa2dCMEVJUVF3Z0FTQUdTU0ljRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnZEJBV29oQlNBSExRQUJJUUVnQnkwQUFFSC9BVWNFUUNBRUlBVTJBaEJCQ0NFRklBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQVFnQlRZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTElBVkJBV3NoQlNBQ1FRRjBJUUlnQmtFQmRDSUdRWUNBQWtrTkFBc2dCaUVCSUFvZ0NrVWdIQnNMSVFZZ0N5QWtRUUowYWlBVklBNGdCaUFUUWRDN0FXb3RBQUJ6SWdZYk5nSUFJQXdnRENnQ0FFR0FFSEkyQWdBZ0NDQUlLQUlFUVlBRWNqWUNCQ0FESUFaQkdYUnlRWUFJY2lFREN5QURRWURBZ0lBRWNRMERJQUVnRWlBRUtBSnNJQU5CQ1hZaUNrSHZBM0ZxTFFBQVFRSjBhaUlKS0FJQUlnRW9BZ0FpQm1zaEJ3Si9JQVlnQWtFUWRrMEVRQ0FDSUFaQkVIUnJJUUlnQjBHQWdBSnhCRUFnQVNnQ0JBd0NDeUFCS0FJRUlRd2dDU0FCUVF4QkNDQUdJQWRMSWhNYmFpZ0NBRFlDQUFOQUFrQWdCUTBBSUFRb0FoQWlCa0VCYWlFRklBWXRBQUVoQVNBR0xRQUFRZjhCUndSQUlBUWdCVFlDRUVFSUlRVWdBVUVJZENBQ2FpRUNEQUVMSUFGQmp3Rk5CRUFnQkNBRk5nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFVTUFRc2dCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJRc2dCVUVCYXlFRklBSkJBWFFoQWlBSFFRRjBJZ2RCZ0lBQ1NRMEFDeUFNUlNBTUlCTWJEQUVMSUFFb0FnUWhEQ0FKSUFGQkNFRU1JQVlnQjBzaUV4dHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lIUVFGcUlRVWdCeTBBQVNFQklBY3RBQUJCL3dGSEJFQWdCQ0FGTmdJUVFRZ2hCU0FCUVFoMElBSnFJUUlNQVFzZ0FVR1BBVTBFUUNBRUlBVTJBaEFnQVVFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZDeUFGUVFGcklRVWdBa0VCZENFQ0lBWkJBWFFpQmtHQWdBSkpEUUFMSUFZaEJ5QU1JQXhGSUJNYkMwVUVRQ0FISVFFTUJBc2dCeUFTSUFnb0FnUkJHblpCQkhFZ0NFRUVheUlNS0FJQVFSeDJRUUZ4SUFOQkZYWkJFSEVnQTBFWmRrSEFBSEVnQ2tHcUFYRnljbkp5SWhOQjBMa0JhaTBBQUVFQ2RHb2lDU2dDQUNJS0tBSUFJZ0ZySVFZZ0FTQUNRUkIyVFFSQUlBSWdBVUVRZEdzaEFpQUdRWUNBQW5FRVFDQUdJUUVNQXdzZ0NpZ0NCQ0VISUFrZ0NrRU1RUWdnQVNBR1N5SWNHMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdWQkFXb2hDaUFGTFFBQklRRWdCUzBBQUVIL0FVY0VRQ0FFSUFvMkFoQkJDQ0VGSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdDallDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVMSUFWQkFXc2hCU0FDUVFGMElRSWdCa0VCZENJR1FZQ0FBa2tOQUFzZ0JpRUJJQWRGSUFjZ0hCc01Bd3NnQ2lnQ0JDRUhJQWtnQ2tFSVFRd2dBU0FHU3lJY0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ1ZCQVdvaENpQUZMUUFCSVFZZ0JTMEFBRUgvQVVjRVFDQUVJQW8yQWhCQkNDRUZJQVpCQ0hRZ0Ftb2hBZ3dCQ3lBR1FZOEJUUVJBSUFRZ0NqWUNFQ0FHUVFsMElBSnFJUUpCQnlFRkRBRUxJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnQnlBSFJTQWNHd3dDQ3lBQklBMG9BZ0FpQmlnQ0FDSURheUVCQW44Z0F5QUNRUkIyVFFSQUlBSWdBMEVRZEdzaEFpQUJRWUNBQW5FRVFDQUdLQUlFREFJTElBWW9BZ1FoQnlBTklBWkJERUVJSUFFZ0Ewa2lEQnRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJR1FRRnFJUWtnQmkwQUFTRURJQVl0QUFCQi93RkhCRUFnQkNBSk5nSVFRUWdoQlNBRFFRaDBJQUpxSVFJTUFRc2dBMEdQQVUwRVFDQUVJQWsyQWhBZ0EwRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBZEZJQWNnREJzTUFRc2dCaWdDQkNFSElBMGdCa0VJUVF3Z0FTQURTU0lNRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnWkJBV29oQ1NBR0xRQUJJUUVnQmkwQUFFSC9BVWNFUUNBRUlBazJBaEJCQ0NFRklBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQVFnQ1RZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTElBVkJBV3NoQlNBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dBeUVCSUFjZ0IwVWdEQnNMUlFSQUlBMGhDUXdFQ3lBQklCQW9BZ0FpQmlnQ0FDSURheUVCQW44Z0F5QUNRUkIyVFFSQUlBSWdBMEVRZEdzaEFpQUJRWUNBQW5FRVFDQUdLQUlFREFJTElBWW9BZ1FoQnlBUUlBWkJERUVJSUFFZ0Ewa2lEQnRxS0FJQUlnWTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnbEJBV29oQlNBSkxRQUJJUU1nQ1MwQUFFSC9BVWNFUUNBRUlBVTJBaEJCQ0NFRklBTkJDSFFnQW1vaEFnd0JDeUFEUVk4QlRRUkFJQVFnQlRZQ0VDQURRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTElBVkJBV3NoQlNBQ1FRRjBJUUlnQVVFQmRDSUJRWUNBQWtrTkFBc2dCMFVnQnlBTUd3d0JDeUFHS0FJRUlRY2dFQ0FHUVFoQkRDQUJJQU5KSWd3YmFpZ0NBQ0lHTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lKUVFGcUlRVWdDUzBBQVNFQklBa3RBQUJCL3dGSEJFQWdCQ0FGTmdJUVFRZ2hCU0FCUVFoMElBSnFJUUlNQVFzZ0FVR1BBVTBFUUNBRUlBVTJBaEFnQVVFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZDeUFGUVFGcklRVWdBa0VCZENFQ0lBTkJBWFFpQTBHQWdBSkpEUUFMSUFNaEFTQUhJQWRGSUF3YkN5RU1JQUVnQmlnQ0FDSURheUVCQW44Z0F5QUNRUkIyVFFSQUlBSWdBMEVRZEdzaEFpQUJRWUNBQW5FRVFDQUdLQUlFREFJTElBWW9BZ1FoQnlBUUlBWkJERUVJSUFFZ0Ewa2lDaHRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJR1FRRnFJUWtnQmkwQUFTRURJQVl0QUFCQi93RkhCRUFnQkNBSk5nSVFRUWdoQlNBRFFRaDBJQUpxSVFJTUFRc2dBMEdQQVUwRVFDQUVJQWsyQWhBZ0EwRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBZEZJQWNnQ2hzTUFRc2dCaWdDQkNFSElCQWdCa0VJUVF3Z0FTQURTU0lLRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnWkJBV29oQ1NBR0xRQUJJUUVnQmkwQUFFSC9BVWNFUUNBRUlBazJBaEJCQ0NFRklBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQVFnQ1RZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTElBVkJBV3NoQlNBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dBeUVCSUFjZ0IwVWdDaHNMSVFaQkFDRURJQkFoQ1FKQUFrQUNRQUovQWtBQ1FDQUdJQXhCQVhSeURnUUFBUU1GQ0FzZ0FTQVNJQWdvQWdSQkVYWkJCSEVnQ0VFRWF5SUhLQUlBUVJOMlFRRnhjaUlLUWRDNUFXb3RBQUJCQW5ScUlna29BZ0FpQmlnQ0FDSURheUVCQW44Z0F5QUNRUkIyVFFSQUlBSWdBMEVRZEdzaEFpQUJRWUNBQW5FRVFDQUdLQUlFREFJTElBWW9BZ1FoRENBSklBWkJERUVJSUFFZ0Ewa2lFeHRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJR1FRRnFJUWtnQmkwQUFTRURJQVl0QUFCQi93RkhCRUFnQkNBSk5nSVFRUWdoQlNBRFFRaDBJQUpxSVFJTUFRc2dBMEdQQVUwRVFDQUVJQWsyQWhBZ0EwRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBeEZJQXdnRXhzTUFRc2dCaWdDQkNFTUlBa2dCa0VJUVF3Z0FTQURTU0lURzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnWkJBV29oQ1NBR0xRQUJJUUVnQmkwQUFFSC9BVWNFUUNBRUlBazJBaEJCQ0NFRklBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQVFnQ1RZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTElBVkJBV3NoQlNBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dBeUVCSUF3Z0RFVWdFeHNMSVFNZ0N5QVZJQTRnQXlBS1FkQzdBV290QUFCeklnTWJOZ0lBSUFjZ0J5Z0NBRUVnY2pZQ0FDQUlJQWdvQWdSQkNISTJBZ1FnQTBFVGRDRlpJQUVnRWlBRUtBSnNMUUFDUVFKMGFpSUhLQUlBSWdZb0FnQWlBMnNoQVFKL0lBTWdBa0VRZGswRVFDQUNJQU5CRUhScklRSWdBVUdBZ0FKeEJFQWdCaWdDQkF3Q0N5QUdLQUlFSVFrZ0J5QUdRUXhCQ0NBQklBTkpJZ29iYWlnQ0FEWUNBQU5BQWtBZ0JRMEFJQVFvQWhBaUJrRUJhaUVISUFZdEFBRWhBeUFHTFFBQVFmOEJSd1JBSUFRZ0J6WUNFRUVJSVFVZ0EwRUlkQ0FDYWlFQ0RBRUxJQU5CandGTkJFQWdCQ0FITmdJUUlBTkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlFzZ0JVRUJheUVGSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUpSU0FKSUFvYkRBRUxJQVlvQWdRaENTQUhJQVpCQ0VFTUlBRWdBMGtpQ2h0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUdRUUZxSVFjZ0JpMEFBU0VCSUFZdEFBQkIvd0ZIQkVBZ0JDQUhOZ0lRUVFnaEJTQUJRUWgwSUFKcUlRSU1BUXNnQVVHUEFVMEVRQ0FFSUFjMkFoQWdBVUVKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkN5QUZRUUZySVFVZ0FrRUJkQ0VDSUFOQkFYUWlBMEdBZ0FKSkRRQUxJQU1oQVNBSklBbEZJQW9iQ3lFR0lGbEJFSElpQXlBR1JRMEJHZ3NnQVNBU0lBZ29BZ1JCRkhaQkJIRWdDRUVFYXlJSktBSUFRUloyUVFGeElBTkJEM1pCRUhFZ0EwRVRka0hBQUhFZ0EwRURka0dxQVhGeWNuSnlJaE5CMExrQmFpMEFBRUVDZEdvaURDZ0NBQ0lIS0FJQUlnWnJJUUVDZnlBR0lBSkJFSFpOQkVBZ0FpQUdRUkIwYXlFQ0lBRkJnSUFDY1FSQUlBY29BZ1FNQWdzZ0J5Z0NCQ0VLSUF3Z0IwRU1RUWdnQVNBR1NTSU1HMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdkQkFXb2hCU0FITFFBQklRWWdCeTBBQUVIL0FVY0VRQ0FFSUFVMkFoQkJDQ0VGSUFaQkNIUWdBbW9oQWd3QkN5QUdRWThCVFFSQUlBUWdCVFlDRUNBR1FRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVMSUFWQkFXc2hCU0FDUVFGMElRSWdBVUVCZENJQlFZQ0FBa2tOQUFzZ0NrVWdDaUFNR3d3QkN5QUhLQUlFSVFvZ0RDQUhRUWhCRENBQklBWkpJZ3diYWlnQ0FEWUNBQU5BQWtBZ0JRMEFJQVFvQWhBaUIwRUJhaUVGSUFjdEFBRWhBU0FITFFBQVFmOEJSd1JBSUFRZ0JUWUNFRUVJSVFVZ0FVRUlkQ0FDYWlFQ0RBRUxJQUZCandGTkJFQWdCQ0FGTmdJUUlBRkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlFzZ0JVRUJheUVGSUFKQkFYUWhBaUFHUVFGMElnWkJnSUFDU1EwQUN5QUdJUUVnQ2lBS1JTQU1Hd3NoQmlBTElCUkJBblJxSUJVZ0RpQUdJQk5CMExzQmFpMEFBSE1pQmhzMkFnQWdDU0FKS0FJQVFZQUNjallDQUNBSUlBZ29BZ1JCd0FCeU5nSUVJQU1nQmtFV2RISkJnQUZ5Q3lFRElBRWdFaUFFS0FKc0lBTkJCblpCN3dOeGFpMEFBRUVDZEdvaUNTZ0NBQ0lIS0FJQUlnWnJJUUVDZnlBR0lBSkJFSFpOQkVBZ0FpQUdRUkIwYXlFQ0lBRkJnSUFDY1FSQUlBY29BZ1FNQWdzZ0J5Z0NCQ0VNSUFrZ0IwRU1RUWdnQVNBR1NTSUtHMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdkQkFXb2hDU0FITFFBQklRWWdCeTBBQUVIL0FVY0VRQ0FFSUFrMkFoQkJDQ0VGSUFaQkNIUWdBbW9oQWd3QkN5QUdRWThCVFFSQUlBUWdDVFlDRUNBR1FRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVMSUFWQkFXc2hCU0FDUVFGMElRSWdBVUVCZENJQlFZQ0FBa2tOQUFzZ0RFVWdEQ0FLR3d3QkN5QUhLQUlFSVF3Z0NTQUhRUWhCRENBQklBWkpJZ29iYWlnQ0FEWUNBQU5BQWtBZ0JRMEFJQVFvQWhBaUIwRUJhaUVKSUFjdEFBRWhBU0FITFFBQVFmOEJSd1JBSUFRZ0NUWUNFRUVJSVFVZ0FVRUlkQ0FDYWlFQ0RBRUxJQUZCandGTkJFQWdCQ0FKTmdJUUlBRkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlFzZ0JVRUJheUVGSUFKQkFYUWhBaUFHUVFGMElnWkJnSUFDU1EwQUN5QUdJUUVnRENBTVJTQUtHd3RGRFFFTElBRWdFaUFJS0FJRVFSZDJRUVJ4SUFoQkJHc2lDU2dDQUVFWmRrRUJjU0FEUVJKMlFSQnhJQU5CRm5aQndBQnhJQU5CQm5aQnFnRnhjbkp5Y2lJVFFkQzVBV290QUFCQkFuUnFJZ3dvQWdBaUJ5Z0NBQ0lHYXlFQkFuOGdCaUFDUVJCMlRRUkFJQUlnQmtFUWRHc2hBaUFCUVlDQUFuRUVRQ0FIS0FJRURBSUxJQWNvQWdRaENpQU1JQWRCREVFSUlBRWdCa2tpREJ0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VHSUFjdEFBQkIvd0ZIQkVBZ0JDQUZOZ0lRUVFnaEJTQUdRUWgwSUFKcUlRSU1BUXNnQmtHUEFVMEVRQ0FFSUFVMkFoQWdCa0VKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkN5QUZRUUZySVFVZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQXBGSUFvZ0RCc01BUXNnQnlnQ0JDRUtJQXdnQjBFSVFRd2dBU0FHU1NJTUcyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFFZ0J5MEFBRUgvQVVjRVFDQUVJQVUyQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3dCQ3lBQlFZOEJUUVJBSUFRZ0JUWUNFQ0FCUVFsMElBSnFJUUpCQnlFRkRBRUxJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0JrRUJkQ0lHUVlDQUFra05BQXNnQmlFQklBb2dDa1VnREJzTElRWWdDeUFrUVFKMGFpQVZJQTRnQmlBVFFkQzdBV290QUFCeklnWWJOZ0lBSUFrZ0NTZ0NBRUdBRUhJMkFnQWdDQ0FJS0FJRVFZQUVjallDQkNBRElBWkJHWFJ5UVlBSWNpRURDeUFCSUJJZ0JDZ0NiQ0FEUVFsMlFlOERjV290QUFCQkFuUnFJZ2tvQWdBaUJ5Z0NBQ0lHYXlFQkFuOGdCaUFDUVJCMlRRUkFJQUlnQmtFUWRHc2hBaUFCUVlDQUFuRUVRQ0FIS0FJRURBSUxJQWNvQWdRaERDQUpJQWRCREVFSUlBRWdCa2tpQ2h0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VHSUFjdEFBQkIvd0ZIQkVBZ0JDQUZOZ0lRUVFnaEJTQUdRUWgwSUFKcUlRSU1BUXNnQmtHUEFVMEVRQ0FFSUFVMkFoQWdCa0VKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkN5QUZRUUZySVFVZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQXhGSUF3Z0Noc01BUXNnQnlnQ0JDRU1JQWtnQjBFSVFRd2dBU0FHU1NJS0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFFZ0J5MEFBRUgvQVVjRVFDQUVJQVUyQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3dCQ3lBQlFZOEJUUVJBSUFRZ0JUWUNFQ0FCUVFsMElBSnFJUUpCQnlFRkRBRUxJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0JrRUJkQ0lHUVlDQUFra05BQXNnQmlFQklBd2dERVVnQ2hzTFJRMERDeUFCSUJJZ0NDZ0NCRUVhZGtFRWNTQUlRUVJySWd3b0FnQkJISFpCQVhFZ0EwRVZka0VRY1NBRFFSbDJRY0FBY1NBRFFRbDJRYW9CY1hKeWNuSWlFMEhRdVFGcUxRQUFRUUowYWlJSktBSUFJZ29vQWdBaUJtc2hBU0FHSUFKQkVIWk5CRUFnQWlBR1FSQjBheUVDSUFGQmdJQUNjUTBCSUFvb0FnUWhCeUFKSUFwQkRFRUlJQUVnQmtraUhCdHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lGUVFGcUlRb2dCUzBBQVNFR0lBVXRBQUJCL3dGSEJFQWdCQ0FLTmdJUVFRZ2hCU0FHUVFoMElBSnFJUUlNQVFzZ0JrR1BBVTBFUUNBRUlBbzJBaEFnQmtFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFkRklBY2dIQnNNQWdzZ0NpZ0NCQ0VISUFrZ0NrRUlRUXdnQVNBR1NTSWNHMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdWQkFXb2hDaUFGTFFBQklRRWdCUzBBQUVIL0FVY0VRQ0FFSUFvMkFoQkJDQ0VGSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdDallDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVMSUFWQkFXc2hCU0FDUVFGMElRSWdCa0VCZENJR1FZQ0FBa2tOQUFzZ0JpRUJJQWNnQjBVZ0hCc01BUXNnQ2lnQ0JBc2hCaUFMSUJ0QkFuUnFJQlVnRGlBR0lCTkIwTHNCYWkwQUFITWlCeHMyQWdBZ0RDQU1LQUlBUVlDQUFYSTJBZ0FnQ0NBSUtBSUVRWUFnY2pZQ0JDQUVLQUo4UVFKMElBaHFJZ1lnQmlnQ0JFRUVjallDQkNBR0lBWW9BZ3hCQVhJMkFnd2dCaUFHS0FJSUlBZEJFblJ5UVFKeU5nSUlJQU1nQjBFY2RISkJnTUFBY2lFREN5QUlJQU5CLy8vL3RudHhOZ0lBQ3lBSVFRUnFJUU1nQzBFRWFpRUxJQmhCQVdvaUdDQVVSdzBBQ3lBSVFReHFJUU1nQ3lBYlFRSjBhaUVMSUJGQkJHb2lFU0FFS0FLQUFTSUdRWHh4U1EwQUN3d0NDd0pBSUFaQkJFa05BQ0FVQkVBZ0JFSGtBR29oRUNBRVFlQUFhaUVOSUJSQkEyd2hHeUFVUVFGMElTUkJBQ0FPYXlFVklBUkJIR29oRWdOQVFRQWhHQU5BQWtBQ1FBSi9Ba0FnQXlJSUtBSUFJZ01FUUFKQUlBTkJrSUNBQVhFTkFDQUJJQklnQkNnQ2JDQURRZThEY1dvdEFBQkJBblJxSWdrb0FnQWlCeWdDQUNJR2F5RUJBbjhnQmlBQ1FSQjJUUVJBSUFJZ0JrRVFkR3NoQWlBQlFZQ0FBbkVFUUNBSEtBSUVEQUlMSUFjb0FnUWhEQ0FKSUFkQkRFRUlJQUVnQmtraUNodHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lIUVFGcUlRVWdCeTBBQVNFR0lBY3RBQUJCL3dGSEJFQWdCQ0FGTmdJUVFRZ2hCU0FHUVFoMElBSnFJUUlNQVFzZ0JrR1BBVTBFUUNBRUlBVTJBaEFnQmtFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUF4RklBd2dDaHNNQVFzZ0J5Z0NCQ0VNSUFrZ0IwRUlRUXdnQVNBR1NTSUtHMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdkQkFXb2hCU0FITFFBQklRRWdCeTBBQUVIL0FVY0VRQ0FFSUFVMkFoQkJDQ0VGSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdCVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVMSUFWQkFXc2hCU0FDUVFGMElRSWdCa0VCZENJR1FZQ0FBa2tOQUFzZ0JpRUJJQXdnREVVZ0Noc0xSUTBBSUFFZ0VpQUlLQUlFUVJGMlFRUnhJQWhCQkdzaURDZ0NBRUVUZGtFQmNTQURRUTUyUVJCeElBTkJFSFpCd0FCeElBTkJxZ0Z4Y25KeWNpSVRRZEM1QVdvdEFBQkJBblJxSWdrb0FnQWlCeWdDQUNJR2F5RUJBbjhnQmlBQ1FSQjJUUVJBSUFJZ0JrRVFkR3NoQWlBQlFZQ0FBbkVFUUNBSEtBSUVEQUlMSUFjb0FnUWhDaUFKSUFkQkRFRUlJQUVnQmtraUhCdHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lIUVFGcUlRVWdCeTBBQVNFR0lBY3RBQUJCL3dGSEJFQWdCQ0FGTmdJUVFRZ2hCU0FHUVFoMElBSnFJUUlNQVFzZ0JrR1BBVTBFUUNBRUlBVTJBaEFnQmtFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFwRklBb2dIQnNNQVFzZ0J5Z0NCQ0VLSUFrZ0IwRUlRUXdnQVNBR1NTSWNHMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdkQkFXb2hCU0FITFFBQklRRWdCeTBBQUVIL0FVY0VRQ0FFSUFVMkFoQkJDQ0VGSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdCVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVMSUFWQkFXc2hCU0FDUVFGMElRSWdCa0VCZENJR1FZQ0FBa2tOQUFzZ0JpRUJJQW9nQ2tVZ0hCc0xJUVlnQ3lBVklBNGdCaUFUUWRDN0FXb3RBQUJ6SWdjYk5nSUFJQXdnRENnQ0FFRWdjallDQUNBSUlBZ29BZ1JCQ0hJMkFnUWdDRUYrSUFRb0FueHJRUUowYWlJR0lBWW9BZ1JCZ0lBQ2NqWUNCQ0FHSUFZb0FnQWdCMEVmZEhKQmdJQUVjallDQUNBR1FRUnJJZ1lnQmlnQ0FFR0FnQWh5TmdJQUlBTWdCMEVUZEhKQkVISWhBd3NDUUNBRFFZQ0JnQWh4RFFBZ0FTQVNJQVFvQW13Z0EwRURkaUlLUWU4RGNXb3RBQUJCQW5ScUlna29BZ0FpQnlnQ0FDSUdheUVCQW44Z0JpQUNRUkIyVFFSQUlBSWdCa0VRZEdzaEFpQUJRWUNBQW5FRVFDQUhLQUlFREFJTElBY29BZ1FoRENBSklBZEJERUVJSUFFZ0Jra2lFeHRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJSFFRRnFJUVVnQnkwQUFTRUdJQWN0QUFCQi93RkhCRUFnQkNBRk5nSVFRUWdoQlNBR1FRaDBJQUpxSVFJTUFRc2dCa0dQQVUwRVFDQUVJQVUyQWhBZ0JrRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBeEZJQXdnRXhzTUFRc2dCeWdDQkNFTUlBa2dCMEVJUVF3Z0FTQUdTU0lURzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnZEJBV29oQlNBSExRQUJJUUVnQnkwQUFFSC9BVWNFUUNBRUlBVTJBaEJCQ0NFRklBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQVFnQlRZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTElBVkJBV3NoQlNBQ1FRRjBJUUlnQmtFQmRDSUdRWUNBQWtrTkFBc2dCaUVCSUF3Z0RFVWdFeHNMUlEwQUlBRWdFaUFJS0FJRVFSUjJRUVJ4SUFoQkJHc2lEQ2dDQUVFV2RrRUJjU0FEUVE5MlFSQnhJQU5CRTNaQndBQnhJQXBCcWdGeGNuSnljaUlUUWRDNUFXb3RBQUJCQW5ScUlna29BZ0FpQnlnQ0FDSUdheUVCQW44Z0JpQUNRUkIyVFFSQUlBSWdCa0VRZEdzaEFpQUJRWUNBQW5FRVFDQUhLQUlFREFJTElBY29BZ1FoQ2lBSklBZEJERUVJSUFFZ0Jra2lIQnRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJSFFRRnFJUVVnQnkwQUFTRUdJQWN0QUFCQi93RkhCRUFnQkNBRk5nSVFRUWdoQlNBR1FRaDBJQUpxSVFJTUFRc2dCa0dQQVUwRVFDQUVJQVUyQWhBZ0JrRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBcEZJQW9nSEJzTUFRc2dCeWdDQkNFS0lBa2dCMEVJUVF3Z0FTQUdTU0ljRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnZEJBV29oQlNBSExRQUJJUUVnQnkwQUFFSC9BVWNFUUNBRUlBVTJBaEJCQ0NFRklBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQVFnQlRZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTElBVkJBV3NoQlNBQ1FRRjBJUUlnQmtFQmRDSUdRWUNBQWtrTkFBc2dCaUVCSUFvZ0NrVWdIQnNMSVFZZ0N5QVVRUUowYWlBVklBNGdCaUFUUWRDN0FXb3RBQUJ6SWdZYk5nSUFJQXdnRENnQ0FFR0FBbkkyQWdBZ0NDQUlLQUlFUWNBQWNqWUNCQ0FESUFaQkZuUnlRWUFCY2lFREN3SkFJQU5CZ0lpQXdBQnhEUUFnQVNBU0lBUW9BbXdnQTBFR2RpSUtRZThEY1dvdEFBQkJBblJxSWdrb0FnQWlCeWdDQUNJR2F5RUJBbjhnQmlBQ1FSQjJUUVJBSUFJZ0JrRVFkR3NoQWlBQlFZQ0FBbkVFUUNBSEtBSUVEQUlMSUFjb0FnUWhEQ0FKSUFkQkRFRUlJQUVnQmtraUV4dHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lIUVFGcUlRVWdCeTBBQVNFR0lBY3RBQUJCL3dGSEJFQWdCQ0FGTmdJUVFRZ2hCU0FHUVFoMElBSnFJUUlNQVFzZ0JrR1BBVTBFUUNBRUlBVTJBaEFnQmtFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUF4RklBd2dFeHNNQVFzZ0J5Z0NCQ0VNSUFrZ0IwRUlRUXdnQVNBR1NTSVRHMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdkQkFXb2hCU0FITFFBQklRRWdCeTBBQUVIL0FVY0VRQ0FFSUFVMkFoQkJDQ0VGSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdCVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVMSUFWQkFXc2hCU0FDUVFGMElRSWdCa0VCZENJR1FZQ0FBa2tOQUFzZ0JpRUJJQXdnREVVZ0V4c0xSUTBBSUFFZ0VpQUlLQUlFUVJkMlFRUnhJQWhCQkdzaURDZ0NBRUVaZGtFQmNTQURRUkoyUVJCeElBTkJGblpCd0FCeElBcEJxZ0Z4Y25KeWNpSVRRZEM1QVdvdEFBQkJBblJxSWdrb0FnQWlCeWdDQUNJR2F5RUJBbjhnQmlBQ1FSQjJUUVJBSUFJZ0JrRVFkR3NoQWlBQlFZQ0FBbkVFUUNBSEtBSUVEQUlMSUFjb0FnUWhDaUFKSUFkQkRFRUlJQUVnQmtraUhCdHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lIUVFGcUlRVWdCeTBBQVNFR0lBY3RBQUJCL3dGSEJFQWdCQ0FGTmdJUVFRZ2hCU0FHUVFoMElBSnFJUUlNQVFzZ0JrR1BBVTBFUUNBRUlBVTJBaEFnQmtFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFwRklBb2dIQnNNQVFzZ0J5Z0NCQ0VLSUFrZ0IwRUlRUXdnQVNBR1NTSWNHMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdkQkFXb2hCU0FITFFBQklRRWdCeTBBQUVIL0FVY0VRQ0FFSUFVMkFoQkJDQ0VGSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdCVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVMSUFWQkFXc2hCU0FDUVFGMElRSWdCa0VCZENJR1FZQ0FBa2tOQUFzZ0JpRUJJQW9nQ2tVZ0hCc0xJUVlnQ3lBa1FRSjBhaUFWSUE0Z0JpQVRRZEM3QVdvdEFBQnpJZ1liTmdJQUlBd2dEQ2dDQUVHQUVISTJBZ0FnQ0NBSUtBSUVRWUFFY2pZQ0JDQURJQVpCR1hSeVFZQUljaUVEQ3lBRFFZREFnSUFFY1EwRElBRWdFaUFFS0FKc0lBTkJDWFlpQ2tIdkEzRnFMUUFBUVFKMGFpSUpLQUlBSWdFb0FnQWlCbXNoQndKL0lBWWdBa0VRZGswRVFDQUNJQVpCRUhScklRSWdCMEdBZ0FKeEJFQWdBU2dDQkF3Q0N5QUJLQUlFSVF3Z0NTQUJRUXhCQ0NBR0lBZExJaE1iYWlnQ0FEWUNBQU5BQWtBZ0JRMEFJQVFvQWhBaUJrRUJhaUVGSUFZdEFBRWhBU0FHTFFBQVFmOEJSd1JBSUFRZ0JUWUNFRUVJSVFVZ0FVRUlkQ0FDYWlFQ0RBRUxJQUZCandGTkJFQWdCQ0FGTmdJUUlBRkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlFzZ0JVRUJheUVGSUFKQkFYUWhBaUFIUVFGMElnZEJnSUFDU1EwQUN5QU1SU0FNSUJNYkRBRUxJQUVvQWdRaERDQUpJQUZCQ0VFTUlBWWdCMHNpRXh0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VCSUFjdEFBQkIvd0ZIQkVBZ0JDQUZOZ0lRUVFnaEJTQUJRUWgwSUFKcUlRSU1BUXNnQVVHUEFVMEVRQ0FFSUFVMkFoQWdBVUVKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkN5QUZRUUZySVFVZ0FrRUJkQ0VDSUFaQkFYUWlCa0dBZ0FKSkRRQUxJQVloQnlBTUlBeEZJQk1iQzBVRVFDQUhJUUVNQkFzZ0J5QVNJQWdvQWdSQkduWkJCSEVnQ0VFRWF5SU1LQUlBUVJ4MlFRRnhJQU5CRlhaQkVIRWdBMEVaZGtIQUFIRWdDa0dxQVhGeWNuSnlJaE5CMExrQmFpMEFBRUVDZEdvaUNTZ0NBQ0lLS0FJQUlnRnJJUVlnQVNBQ1FSQjJUUVJBSUFJZ0FVRVFkR3NoQWlBR1FZQ0FBbkVFUUNBR0lRRU1Bd3NnQ2lnQ0JDRUhJQWtnQ2tFTVFRZ2dBU0FHU3lJY0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ1ZCQVdvaENpQUZMUUFCSVFFZ0JTMEFBRUgvQVVjRVFDQUVJQW8yQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3dCQ3lBQlFZOEJUUVJBSUFRZ0NqWUNFQ0FCUVFsMElBSnFJUUpCQnlFRkRBRUxJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0JrRUJkQ0lHUVlDQUFra05BQXNnQmlFQklBZEZJQWNnSEJzTUF3c2dDaWdDQkNFSElBa2dDa0VJUVF3Z0FTQUdTeUljRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnVkJBV29oQ2lBRkxRQUJJUVlnQlMwQUFFSC9BVWNFUUNBRUlBbzJBaEJCQ0NFRklBWkJDSFFnQW1vaEFnd0JDeUFHUVk4QlRRUkFJQVFnQ2pZQ0VDQUdRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTElBVkJBV3NoQlNBQ1FRRjBJUUlnQVVFQmRDSUJRWUNBQWtrTkFBc2dCeUFIUlNBY0d3d0NDeUFCSUEwb0FnQWlCaWdDQUNJRGF5RUJBbjhnQXlBQ1FSQjJUUVJBSUFJZ0EwRVFkR3NoQWlBQlFZQ0FBbkVFUUNBR0tBSUVEQUlMSUFZb0FnUWhCeUFOSUFaQkRFRUlJQUVnQTBraURCdHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lHUVFGcUlRa2dCaTBBQVNFRElBWXRBQUJCL3dGSEJFQWdCQ0FKTmdJUVFRZ2hCU0FEUVFoMElBSnFJUUlNQVFzZ0EwR1BBVTBFUUNBRUlBazJBaEFnQTBFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFkRklBY2dEQnNNQVFzZ0JpZ0NCQ0VISUEwZ0JrRUlRUXdnQVNBRFNTSU1HMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdaQkFXb2hDU0FHTFFBQklRRWdCaTBBQUVIL0FVY0VRQ0FFSUFrMkFoQkJDQ0VGSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdDVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVMSUFWQkFXc2hCU0FDUVFGMElRSWdBMEVCZENJRFFZQ0FBa2tOQUFzZ0F5RUJJQWNnQjBVZ0RCc0xSUVJBSUEwaENRd0VDeUFCSUJBb0FnQWlCaWdDQUNJRGF5RUJBbjhnQXlBQ1FSQjJUUVJBSUFJZ0EwRVFkR3NoQWlBQlFZQ0FBbkVFUUNBR0tBSUVEQUlMSUFZb0FnUWhCeUFRSUFaQkRFRUlJQUVnQTBraURCdHFLQUlBSWdZMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdsQkFXb2hCU0FKTFFBQklRTWdDUzBBQUVIL0FVY0VRQ0FFSUFVMkFoQkJDQ0VGSUFOQkNIUWdBbW9oQWd3QkN5QURRWThCVFFSQUlBUWdCVFlDRUNBRFFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVMSUFWQkFXc2hCU0FDUVFGMElRSWdBVUVCZENJQlFZQ0FBa2tOQUFzZ0IwVWdCeUFNR3d3QkN5QUdLQUlFSVFjZ0VDQUdRUWhCRENBQklBTkpJZ3diYWlnQ0FDSUdOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUpRUUZxSVFVZ0NTMEFBU0VCSUFrdEFBQkIvd0ZIQkVBZ0JDQUZOZ0lRUVFnaEJTQUJRUWgwSUFKcUlRSU1BUXNnQVVHUEFVMEVRQ0FFSUFVMkFoQWdBVUVKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkN5QUZRUUZySVFVZ0FrRUJkQ0VDSUFOQkFYUWlBMEdBZ0FKSkRRQUxJQU1oQVNBSElBZEZJQXdiQ3lFTUlBRWdCaWdDQUNJRGF5RUJBbjhnQXlBQ1FSQjJUUVJBSUFJZ0EwRVFkR3NoQWlBQlFZQ0FBbkVFUUNBR0tBSUVEQUlMSUFZb0FnUWhCeUFRSUFaQkRFRUlJQUVnQTBraUNodHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lHUVFGcUlRa2dCaTBBQVNFRElBWXRBQUJCL3dGSEJFQWdCQ0FKTmdJUVFRZ2hCU0FEUVFoMElBSnFJUUlNQVFzZ0EwR1BBVTBFUUNBRUlBazJBaEFnQTBFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFkRklBY2dDaHNNQVFzZ0JpZ0NCQ0VISUJBZ0JrRUlRUXdnQVNBRFNTSUtHMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdaQkFXb2hDU0FHTFFBQklRRWdCaTBBQUVIL0FVY0VRQ0FFSUFrMkFoQkJDQ0VGSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdDVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVMSUFWQkFXc2hCU0FDUVFGMElRSWdBMEVCZENJRFFZQ0FBa2tOQUFzZ0F5RUJJQWNnQjBVZ0Noc0xJUVpCQUNFRElCQWhDUUpBQWtBQ1FBSi9Ba0FDUUNBR0lBeEJBWFJ5RGdRQUFRTUZDQXNnQVNBU0lBZ29BZ1JCRVhaQkJIRWdDRUVFYXlJSEtBSUFRUk4yUVFGeGNpSUtRZEM1QVdvdEFBQkJBblJxSWdrb0FnQWlCaWdDQUNJRGF5RUJBbjhnQXlBQ1FSQjJUUVJBSUFJZ0EwRVFkR3NoQWlBQlFZQ0FBbkVFUUNBR0tBSUVEQUlMSUFZb0FnUWhEQ0FKSUFaQkRFRUlJQUVnQTBraUV4dHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lHUVFGcUlRa2dCaTBBQVNFRElBWXRBQUJCL3dGSEJFQWdCQ0FKTmdJUVFRZ2hCU0FEUVFoMElBSnFJUUlNQVFzZ0EwR1BBVTBFUUNBRUlBazJBaEFnQTBFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFRb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUZDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUF4RklBd2dFeHNNQVFzZ0JpZ0NCQ0VNSUFrZ0JrRUlRUXdnQVNBRFNTSVRHMm9vQWdBMkFnQURRQUpBSUFVTkFDQUVLQUlRSWdaQkFXb2hDU0FHTFFBQklRRWdCaTBBQUVIL0FVY0VRQ0FFSUFrMkFoQkJDQ0VGSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBUWdDVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVMSUFWQkFXc2hCU0FDUVFGMElRSWdBMEVCZENJRFFZQ0FBa2tOQUFzZ0F5RUJJQXdnREVVZ0V4c0xJUU1nQ3lBVklBNGdBeUFLUWRDN0FXb3RBQUJ6SWdZYk5nSUFJQWNnQnlnQ0FFRWdjallDQUNBSUlBZ29BZ1JCQ0hJMkFnUWdDRUYrSUFRb0FueHJRUUowYWlJRElBTW9BZ1JCZ0lBQ2NqWUNCQ0FESUFNb0FnQWdCa0VmZEhKQmdJQUVjallDQUNBRFFRUnJJZ01nQXlnQ0FFR0FnQWh5TmdJQUlBWkJFM1FoV2lBQklCSWdCQ2dDYkMwQUFrRUNkR29pQnlnQ0FDSUdLQUlBSWdOcklRRUNmeUFESUFKQkVIWk5CRUFnQWlBRFFSQjBheUVDSUFGQmdJQUNjUVJBSUFZb0FnUU1BZ3NnQmlnQ0JDRUpJQWNnQmtFTVFRZ2dBU0FEU1NJS0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ1pCQVdvaEJ5QUdMUUFCSVFNZ0JpMEFBRUgvQVVjRVFDQUVJQWMyQWhCQkNDRUZJQU5CQ0hRZ0Ftb2hBZ3dCQ3lBRFFZOEJUUVJBSUFRZ0J6WUNFQ0FEUVFsMElBSnFJUUpCQnlFRkRBRUxJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnQ1VVZ0NTQUtHd3dCQ3lBR0tBSUVJUWtnQnlBR1FRaEJEQ0FCSUFOSklnb2JhaWdDQURZQ0FBTkFBa0FnQlEwQUlBUW9BaEFpQmtFQmFpRUhJQVl0QUFFaEFTQUdMUUFBUWY4QlJ3UkFJQVFnQnpZQ0VFRUlJUVVnQVVFSWRDQUNhaUVDREFFTElBRkJqd0ZOQkVBZ0JDQUhOZ0lRSUFGQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCUXNnQlVFQmF5RUZJQUpCQVhRaEFpQURRUUYwSWdOQmdJQUNTUTBBQ3lBRElRRWdDU0FKUlNBS0d3c2hCaUJhUVJCeUlnTWdCa1VOQVJvTElBRWdFaUFJS0FJRVFSUjJRUVJ4SUFoQkJHc2lDU2dDQUVFV2RrRUJjU0FEUVE5MlFSQnhJQU5CRTNaQndBQnhJQU5CQTNaQnFnRnhjbkp5Y2lJVFFkQzVBV290QUFCQkFuUnFJZ3dvQWdBaUJ5Z0NBQ0lHYXlFQkFuOGdCaUFDUVJCMlRRUkFJQUlnQmtFUWRHc2hBaUFCUVlDQUFuRUVRQ0FIS0FJRURBSUxJQWNvQWdRaENpQU1JQWRCREVFSUlBRWdCa2tpREJ0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VHSUFjdEFBQkIvd0ZIQkVBZ0JDQUZOZ0lRUVFnaEJTQUdRUWgwSUFKcUlRSU1BUXNnQmtHUEFVMEVRQ0FFSUFVMkFoQWdCa0VKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkN5QUZRUUZySVFVZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQXBGSUFvZ0RCc01BUXNnQnlnQ0JDRUtJQXdnQjBFSVFRd2dBU0FHU1NJTUcyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFFZ0J5MEFBRUgvQVVjRVFDQUVJQVUyQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3dCQ3lBQlFZOEJUUVJBSUFRZ0JUWUNFQ0FCUVFsMElBSnFJUUpCQnlFRkRBRUxJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0JrRUJkQ0lHUVlDQUFra05BQXNnQmlFQklBb2dDa1VnREJzTElRWWdDeUFVUVFKMGFpQVZJQTRnQmlBVFFkQzdBV290QUFCeklnWWJOZ0lBSUFrZ0NTZ0NBRUdBQW5JMkFnQWdDQ0FJS0FJRVFjQUFjallDQkNBRElBWkJGblJ5UVlBQmNnc2hBeUFCSUJJZ0JDZ0NiQ0FEUVFaMlFlOERjV290QUFCQkFuUnFJZ2tvQWdBaUJ5Z0NBQ0lHYXlFQkFuOGdCaUFDUVJCMlRRUkFJQUlnQmtFUWRHc2hBaUFCUVlDQUFuRUVRQ0FIS0FJRURBSUxJQWNvQWdRaERDQUpJQWRCREVFSUlBRWdCa2tpQ2h0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFrZ0J5MEFBU0VHSUFjdEFBQkIvd0ZIQkVBZ0JDQUpOZ0lRUVFnaEJTQUdRUWgwSUFKcUlRSU1BUXNnQmtHUEFVMEVRQ0FFSUFrMkFoQWdCa0VKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkN5QUZRUUZySVFVZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQXhGSUF3Z0Noc01BUXNnQnlnQ0JDRU1JQWtnQjBFSVFRd2dBU0FHU1NJS0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaENTQUhMUUFCSVFFZ0J5MEFBRUgvQVVjRVFDQUVJQWsyQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3dCQ3lBQlFZOEJUUVJBSUFRZ0NUWUNFQ0FCUVFsMElBSnFJUUpCQnlFRkRBRUxJQVFnQkNnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRVUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0JrRUJkQ0lHUVlDQUFra05BQXNnQmlFQklBd2dERVVnQ2hzTFJRMEJDeUFCSUJJZ0NDZ0NCRUVYZGtFRWNTQUlRUVJySWdrb0FnQkJHWFpCQVhFZ0EwRVNka0VRY1NBRFFSWjJRY0FBY1NBRFFRWjJRYW9CY1hKeWNuSWlFMEhRdVFGcUxRQUFRUUowYWlJTUtBSUFJZ2NvQWdBaUJtc2hBUUovSUFZZ0FrRVFkazBFUUNBQ0lBWkJFSFJySVFJZ0FVR0FnQUp4QkVBZ0J5Z0NCQXdDQ3lBSEtBSUVJUW9nRENBSFFReEJDQ0FCSUFaSklnd2JhaWdDQURZQ0FBTkFBa0FnQlEwQUlBUW9BaEFpQjBFQmFpRUZJQWN0QUFFaEJpQUhMUUFBUWY4QlJ3UkFJQVFnQlRZQ0VFRUlJUVVnQmtFSWRDQUNhaUVDREFFTElBWkJqd0ZOQkVBZ0JDQUZOZ0lRSUFaQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCUXNnQlVFQmF5RUZJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBS1JTQUtJQXdiREFFTElBY29BZ1FoQ2lBTUlBZEJDRUVNSUFFZ0Jra2lEQnRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJSFFRRnFJUVVnQnkwQUFTRUJJQWN0QUFCQi93RkhCRUFnQkNBRk5nSVFRUWdoQlNBQlFRaDBJQUpxSVFJTUFRc2dBVUdQQVUwRVFDQUVJQVUyQWhBZ0FVRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQVpCQVhRaUJrR0FnQUpKRFFBTElBWWhBU0FLSUFwRklBd2JDeUVHSUFzZ0pFRUNkR29nRlNBT0lBWWdFMEhRdXdGcUxRQUFjeUlHR3pZQ0FDQUpJQWtvQWdCQmdCQnlOZ0lBSUFnZ0NDZ0NCRUdBQkhJMkFnUWdBeUFHUVJsMGNrR0FDSEloQXdzZ0FTQVNJQVFvQW13Z0EwRUpka0h2QTNGcUxRQUFRUUowYWlJSktBSUFJZ2NvQWdBaUJtc2hBUUovSUFZZ0FrRVFkazBFUUNBQ0lBWkJFSFJySVFJZ0FVR0FnQUp4QkVBZ0J5Z0NCQXdDQ3lBSEtBSUVJUXdnQ1NBSFFReEJDQ0FCSUFaSklnb2JhaWdDQURZQ0FBTkFBa0FnQlEwQUlBUW9BaEFpQjBFQmFpRUZJQWN0QUFFaEJpQUhMUUFBUWY4QlJ3UkFJQVFnQlRZQ0VFRUlJUVVnQmtFSWRDQUNhaUVDREFFTElBWkJqd0ZOQkVBZ0JDQUZOZ0lRSUFaQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCUXNnQlVFQmF5RUZJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBTVJTQU1JQW9iREFFTElBY29BZ1FoRENBSklBZEJDRUVNSUFFZ0Jra2lDaHRxS0FJQU5nSUFBMEFDUUNBRkRRQWdCQ2dDRUNJSFFRRnFJUVVnQnkwQUFTRUJJQWN0QUFCQi93RkhCRUFnQkNBRk5nSVFRUWdoQlNBQlFRaDBJQUpxSVFJTUFRc2dBVUdQQVUwRVFDQUVJQVUyQWhBZ0FVRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGQ3lBRlFRRnJJUVVnQWtFQmRDRUNJQVpCQVhRaUJrR0FnQUpKRFFBTElBWWhBU0FNSUF4RklBb2JDMFVOQXdzZ0FTQVNJQWdvQWdSQkduWkJCSEVnQ0VFRWF5SU1LQUlBUVJ4MlFRRnhJQU5CRlhaQkVIRWdBMEVaZGtIQUFIRWdBMEVKZGtHcUFYRnljbkp5SWhOQjBMa0JhaTBBQUVFQ2RHb2lDU2dDQUNJS0tBSUFJZ1pySVFFZ0JpQUNRUkIyVFFSQUlBSWdCa0VRZEdzaEFpQUJRWUNBQW5FTkFTQUtLQUlFSVFjZ0NTQUtRUXhCQ0NBQklBWkpJaHdiYWlnQ0FEWUNBQU5BQWtBZ0JRMEFJQVFvQWhBaUJVRUJhaUVLSUFVdEFBRWhCaUFGTFFBQVFmOEJSd1JBSUFRZ0NqWUNFRUVJSVFVZ0JrRUlkQ0FDYWlFQ0RBRUxJQVpCandGTkJFQWdCQ0FLTmdJUUlBWkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlFzZ0JVRUJheUVGSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUhSU0FISUJ3YkRBSUxJQW9vQWdRaEJ5QUpJQXBCQ0VFTUlBRWdCa2tpSEJ0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUZRUUZxSVFvZ0JTMEFBU0VCSUFVdEFBQkIvd0ZIQkVBZ0JDQUtOZ0lRUVFnaEJTQUJRUWgwSUFKcUlRSU1BUXNnQVVHUEFVMEVRQ0FFSUFvMkFoQWdBVUVKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkN5QUZRUUZySVFVZ0FrRUJkQ0VDSUFaQkFYUWlCa0dBZ0FKSkRRQUxJQVloQVNBSElBZEZJQndiREFFTElBb29BZ1FMSVFZZ0N5QWJRUUowYWlBVklBNGdCaUFUUWRDN0FXb3RBQUJ6SWdjYk5nSUFJQXdnRENnQ0FFR0FnQUZ5TmdJQUlBZ2dDQ2dDQkVHQUlISTJBZ1FnQkNnQ2ZFRUNkQ0FJYWlJR0lBWW9BZ1JCQkhJMkFnUWdCaUFHS0FJTVFRRnlOZ0lNSUFZZ0JpZ0NDQ0FIUVJKMGNrRUNjallDQ0NBRElBZEJISFJ5UVlEQUFISWhBd3NnQ0NBRFFmLy8vN1o3Y1RZQ0FBc2dDRUVFYWlFRElBdEJCR29oQ3lBWVFRRnFJaGdnRkVjTkFBc2dDRUVNYWlFRElBc2dHMEVDZEdvaEN5QVJRUVJxSWhFZ0JDZ0NnQUVpQmtGOGNVa05BQXNNQVF0QkJDQUdRWHh4SWdNZ0EwRUVUUnRCQVdzaUEwRjhjVUVFYWlFUklBY2dBMEVCZEVGNGNXcEJGR29oQXdzZ0JDQUZOZ0lJSUFRZ0FUWUNCQ0FFSUFJMkFnQWdCQ0FKTmdKb0lCUkZEUVFnQmlBUlRRMEVBMEJCQUNFRklCRWdCQ2dDZ0FGSEJFQURRQ0FFSUFNZ0N5QUZJQlJzUVFKMGFpQU9JQVZCQUJCWUlBVkJBV29pQlNBRUtBS0FBU0FSYTBrTkFBc0xJQU1nQXlnQ0FFSC8vLysyZTNFMkFnQWdDMEVFYWlFTElBTkJCR29oQXlBWFFRRnFJaGNnRkVjTkFBc01CQXRCQkNBR1FYeHhJZ01nQTBFRVRSdEJBV3NpQTBGOGNVRUVhaUVSSUFjZ0EwRUJkRUY0Y1dwQkZHb2hBd3NnQkNBRk5nSUlJQVFnQVRZQ0JDQUVJQUkyQWdBZ0JDQUpOZ0pvSUJSRkRRSWdCaUFSVFEwQ0EwQkJBQ0VGSUJFZ0JDZ0NnQUZIQkVBRFFDQUVJQU1nQ3lBRklCUnNRUUowYWlBT0lBVkJBUkJZSUFWQkFXb2lCU0FFS0FLQUFTQVJhMGtOQUFzTElBTWdBeWdDQUVILy8vKzJlM0UyQWdBZ0MwRUVhaUVMSUFOQkJHb2hBeUFYUVFGcUloY2dGRWNOQUFzTUFnc0RRRUVBSVF3RFFDQURJUkVDUUFKQUFuOENRQUpBSUFZaURTZ0NBQ0lHUlFSQUlBRWdFQ2dDQUNJREtBSUFJZ1pySVFFQ2Z5QUdJQUpCRUhaTEJFQWdBeWdDQkNFSElCQWdBMEVJUVF3Z0FTQUdTU0lLRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnTkJBV29oQ1NBRExRQUJJUUVnQXkwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVNQWdzZ0JDQUpOZ0lRSUFGQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBSk5nSVFRUWdoQlNBQlFRaDBJQUpxSVFJTElBVkJBV3NoQlNBQ1FRRjBJUUlnQmtFQmRDSUdRWUNBQWtrTkFBc2dCaUVCSUFjZ0IwVWdDaHNNQVFzZ0FpQUdRUkIwYXlFQ0lBRkJnSUFDY1VVRVFDQURLQUlFSVFjZ0VDQURRUXhCQ0NBQklBWkpJZ29iYWlnQ0FEWUNBQU5BQWtBZ0JRMEFJQVFvQWhBaUJrRUJhaUVKSUFZdEFBRWhBeUFHTFFBQVFmOEJSZ1JBSUFOQmtBRlBCRUFnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCUXdDQ3lBRUlBazJBaEFnQTBFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFrMkFoQkJDQ0VGSUFOQkNIUWdBbW9oQWdzZ0JVRUJheUVGSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUhSU0FISUFvYkRBRUxJQU1vQWdRTFJRUkFJQkFoQ1F3R0N5QUJJQWdvQWdBaUF5Z0NBQ0lHYXlFQkFuOGdCaUFDUVJCMlN3UkFJQU1vQWdRaEJ5QUlJQU5CQ0VFTUlBRWdCa2tpQ2h0cUtBSUFJZ00yQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2xCQVdvaEJTQUpMUUFCSVFFZ0NTMEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTUFnc2dCQ0FGTmdJUUlBRkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUZOZ0lRUVFnaEJTQUJRUWgwSUFKcUlRSUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0JrRUJkQ0lHUVlDQUFra05BQXNnQmlFQklBY2dCMFVnQ2hzTUFRc2dBaUFHUVJCMGF5RUNJQUZCZ0lBQ2NVVUVRQ0FES0FJRUlRY2dDQ0FEUVF4QkNDQUJJQVpKSWdvYmFpZ0NBQ0lETmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lKUVFGcUlRVWdDUzBBQVNFR0lBa3RBQUJCL3dGR0JFQWdCa0dRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQlRZQ0VDQUdRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCVFlDRUVFSUlRVWdCa0VJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFkRklBY2dDaHNNQVFzZ0F5Z0NCQXNoQ2lBQklBTW9BZ0FpQm1zaEFRSi9JQVlnQWtFUWRrc0VRQ0FES0FJRUlRY2dDQ0FEUVFoQkRDQUJJQVpKSWc0YmFpZ0NBRFlDQUFOQUFrQWdCUTBBSUFRb0FoQWlBMEVCYWlFSklBTXRBQUVoQVNBRExRQUFRZjhCUmdSQUlBRkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlF3Q0N5QUVJQWsyQWhBZ0FVRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBazJBaEJCQ0NFRklBRkJDSFFnQW1vaEFnc2dCVUVCYXlFRklBSkJBWFFoQWlBR1FRRjBJZ1pCZ0lBQ1NRMEFDeUFHSVFFZ0J5QUhSU0FPR3d3QkN5QUNJQVpCRUhScklRSWdBVUdBZ0FKeFJRUkFJQU1vQWdRaEJ5QUlJQU5CREVFSUlBRWdCa2tpRGh0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUdRUUZxSVFrZ0JpMEFBU0VESUFZdEFBQkIvd0ZHQkVBZ0EwR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGREFJTElBUWdDVFlDRUNBRFFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0NUWUNFRUVJSVFVZ0EwRUlkQ0FDYWlFQ0N5QUZRUUZySVFVZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQWRGSUFjZ0Roc01BUXNnQXlnQ0JBc2hBMEVBSVFZZ0NDRUpBa0FDUUFKQUFuOENRQUpBSUFNZ0NrRUJkSElPQkFBQkF3VUtDeUFCSUFzZ0RTZ0NCRUVSZGtFRWNTQU5RUVJySWdjb0FnQkJFM1pCQVhGeUlnNUIwTGtCYWkwQUFFRUNkR29pQ1NnQ0FDSURLQUlBSWdacklRRUNmeUFHSUFKQkVIWkxCRUFnQXlnQ0JDRUtJQWtnQTBFSVFRd2dBU0FHU1NJU0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ05CQVdvaENTQURMUUFCSVFFZ0F5MEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTUFnc2dCQ0FKTmdJUUlBRkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUpOZ0lRUVFnaEJTQUJRUWgwSUFKcUlRSUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0JrRUJkQ0lHUVlDQUFra05BQXNnQmlFQklBb2dDa1VnRWhzTUFRc2dBaUFHUVJCMGF5RUNJQUZCZ0lBQ2NVVUVRQ0FES0FJRUlRb2dDU0FEUVF4QkNDQUJJQVpKSWhJYmFpZ0NBRFlDQUFOQUFrQWdCUTBBSUFRb0FoQWlCa0VCYWlFSklBWXRBQUVoQXlBR0xRQUFRZjhCUmdSQUlBTkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlF3Q0N5QUVJQWsyQWhBZ0EwRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBazJBaEJCQ0NFRklBTkJDSFFnQW1vaEFnc2dCVUVCYXlFRklBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFLUlNBS0lCSWJEQUVMSUFNb0FnUUxJUU1nRVNBVElCUWdBeUFPUWRDN0FXb3RBQUJ6SWdNYk5nSUFJQWNnQnlnQ0FFRWdjallDQUNBTklBMG9BZ1JCQ0hJMkFnUWdBMEVUZENGYklBRWdDeUFFS0FKc0xRQUNRUUowYWlJSEtBSUFJZ01vQWdBaUJtc2hBUUovSUFZZ0FrRVFka3NFUUNBREtBSUVJUWtnQnlBRFFRaEJEQ0FCSUFaSklnNGJhaWdDQURZQ0FBTkFBa0FnQlEwQUlBUW9BaEFpQTBFQmFpRUhJQU10QUFFaEFTQURMUUFBUWY4QlJnUkFJQUZCa0FGUEJFQWdCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJRd0NDeUFFSUFjMkFoQWdBVUVKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQWMyQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3NnQlVFQmF5RUZJQUpCQVhRaEFpQUdRUUYwSWdaQmdJQUNTUTBBQ3lBR0lRRWdDU0FKUlNBT0d3d0JDeUFDSUFaQkVIUnJJUUlnQVVHQWdBSnhSUVJBSUFNb0FnUWhDU0FISUFOQkRFRUlJQUVnQmtraURodHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lHUVFGcUlRY2dCaTBBQVNFRElBWXRBQUJCL3dGR0JFQWdBMEdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQnpZQ0VDQURRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCellDRUVFSUlRVWdBMEVJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFsRklBa2dEaHNNQVFzZ0F5Z0NCQXNoQXlCYlFSQnlJZ1lnQTBVTkFSb0xJQUVnQ3lBTktBSUVRUlIyUVFSeElBMUJCR3NpQ1NnQ0FFRVdka0VCY1NBR1FROTJRUkJ4SUFaQkUzWkJ3QUJ4SUFaQkEzWkJxZ0Z4Y25KeWNpSVNRZEM1QVdvdEFBQkJBblJxSWdvb0FnQWlCeWdDQUNJRGF5RUJBbjhnQXlBQ1FSQjJTd1JBSUFjb0FnUWhEaUFLSUFkQkNFRU1JQUVnQTBraUNodHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lIUVFGcUlRVWdCeTBBQVNFQklBY3RBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQlRZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCVFlDRUVFSUlRVWdBVUVJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBTkJBWFFpQTBHQWdBSkpEUUFMSUFNaEFTQU9JQTVGSUFvYkRBRUxJQUlnQTBFUWRHc2hBaUFCUVlDQUFuRkZCRUFnQnlnQ0JDRU9JQW9nQjBFTVFRZ2dBU0FEU1NJS0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFNZ0J5MEFBRUgvQVVZRVFDQURRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTUFnc2dCQ0FGTmdJUUlBTkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUZOZ0lRUVFnaEJTQURRUWgwSUFKcUlRSUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnRGtVZ0RpQUtHd3dCQ3lBSEtBSUVDeUVESUJFZ0V5QVVJQU1nRWtIUXV3RnFMUUFBY3lJREd6WUNnQUlnQ1NBSktBSUFRWUFDY2pZQ0FDQU5JQTBvQWdSQndBQnlOZ0lFSUFZZ0EwRVdkSEpCZ0FGeUN5RUdJQUVnQ3lBRUtBSnNJQVpCQm5aQjd3TnhhaTBBQUVFQ2RHb2lDU2dDQUNJSEtBSUFJZ05ySVFFQ2Z5QURJQUpCRUhaTEJFQWdCeWdDQkNFS0lBa2dCMEVJUVF3Z0FTQURTU0lPRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnZEJBV29oQ1NBSExRQUJJUUVnQnkwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVNQWdzZ0JDQUpOZ0lRSUFGQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBSk5nSVFRUWdoQlNBQlFRaDBJQUpxSVFJTElBVkJBV3NoQlNBQ1FRRjBJUUlnQTBFQmRDSURRWUNBQWtrTkFBc2dBeUVCSUFvZ0NrVWdEaHNNQVFzZ0FpQURRUkIwYXlFQ0lBRkJnSUFDY1VVRVFDQUhLQUlFSVFvZ0NTQUhRUXhCQ0NBQklBTkpJZzRiYWlnQ0FEWUNBQU5BQWtBZ0JRMEFJQVFvQWhBaUIwRUJhaUVKSUFjdEFBRWhBeUFITFFBQVFmOEJSZ1JBSUFOQmtBRlBCRUFnQkNBRUtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCUXdDQ3lBRUlBazJBaEFnQTBFSmRDQUNhaUVDUVFjaEJRd0JDeUFFSUFrMkFoQkJDQ0VGSUFOQkNIUWdBbW9oQWdzZ0JVRUJheUVGSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUtSU0FLSUE0YkRBRUxJQWNvQWdRTFJRMEJDeUFCSUFzZ0RTZ0NCRUVYZGtFRWNTQU5RUVJySWdrb0FnQkJHWFpCQVhFZ0JrRVNka0VRY1NBR1FSWjJRY0FBY1NBR1FRWjJRYW9CY1hKeWNuSWlFa0hRdVFGcUxRQUFRUUowYWlJS0tBSUFJZ2NvQWdBaUEyc2hBUUovSUFNZ0FrRVFka3NFUUNBSEtBSUVJUTRnQ2lBSFFRaEJEQ0FCSUFOSklnb2JhaWdDQURZQ0FBTkFBa0FnQlEwQUlBUW9BaEFpQjBFQmFpRUZJQWN0QUFFaEFTQUhMUUFBUWY4QlJnUkFJQUZCa0FGUEJFQWdCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJRd0NDeUFFSUFVMkFoQWdBVUVKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVUyQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3NnQlVFQmF5RUZJQUpCQVhRaEFpQURRUUYwSWdOQmdJQUNTUTBBQ3lBRElRRWdEaUFPUlNBS0d3d0JDeUFDSUFOQkVIUnJJUUlnQVVHQWdBSnhSUVJBSUFjb0FnUWhEaUFLSUFkQkRFRUlJQUVnQTBraUNodHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lIUVFGcUlRVWdCeTBBQVNFRElBY3RBQUJCL3dGR0JFQWdBMEdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQlRZQ0VDQURRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCVFlDRUVFSUlRVWdBMEVJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUE1RklBNGdDaHNNQVFzZ0J5Z0NCQXNoQXlBUklCTWdGQ0FESUJKQjBMc0JhaTBBQUhNaUF4czJBb0FFSUFrZ0NTZ0NBRUdBRUhJMkFnQWdEU0FOS0FJRVFZQUVjallDQkNBR0lBTkJHWFJ5UVlBSWNpRUdDeUFCSUFzZ0JDZ0NiQ0FHUVFsMlFlOERjV290QUFCQkFuUnFJZ2tvQWdBaUJ5Z0NBQ0lEYXlFQkFuOGdBeUFDUVJCMlN3UkFJQWNvQWdRaENpQUpJQWRCQ0VFTUlBRWdBMGtpRGh0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VCSUFjdEFBQkIvd0ZHQkVBZ0FVR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGREFJTElBUWdCVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JUWUNFRUVJSVFVZ0FVRUlkQ0FDYWlFQ0N5QUZRUUZySVFVZ0FrRUJkQ0VDSUFOQkFYUWlBMEdBZ0FKSkRRQUxJQU1oQVNBS0lBcEZJQTRiREFFTElBSWdBMEVRZEdzaEFpQUJRWUNBQW5GRkJFQWdCeWdDQkNFS0lBa2dCMEVNUVFnZ0FTQURTU0lPRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnZEJBV29oQlNBSExRQUJJUU1nQnkwQUFFSC9BVVlFUUNBRFFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVNQWdzZ0JDQUZOZ0lRSUFOQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBRk5nSVFRUWdoQlNBRFFRaDBJQUpxSVFJTElBVkJBV3NoQlNBQ1FRRjBJUUlnQVVFQmRDSUJRWUNBQWtrTkFBc2dDa1VnQ2lBT0d3d0JDeUFIS0FJRUMwVU5CUXNnQVNBTElBMG9BZ1JCR25aQkJIRWdEVUVFYXlJT0tBSUFRUngyUVFGeElBWkJGWFpCRUhFZ0JrRVpka0hBQUhFZ0JrRUpka0dxQVhGeWNuSnlJZ3BCMExrQmFpMEFBRUVDZEdvaUNTZ0NBQ0lIS0FJQUlnTnJJUUVnQXlBQ1FSQjJTd1JBSUFjb0FnUWhFaUFKSUFkQkNFRU1JQUVnQTBraUZSdHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lIUVFGcUlRVWdCeTBBQVNFQklBY3RBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQlRZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCVFlDRUVFSUlRVWdBVUVJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBTkJBWFFpQTBHQWdBSkpEUUFMSUFNaEFTQVNJQkpGSUJVYkRBUUxJQUlnQTBFUWRHc2hBaUFCUVlDQUFuRU5BU0FIS0FJRUlSSWdDU0FIUVF4QkNDQUJJQU5KSWhVYmFpZ0NBRFlDQUFOQUFrQWdCUTBBSUFRb0FoQWlCMEVCYWlFRklBY3RBQUVoQXlBSExRQUFRZjhCUmdSQUlBTkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlF3Q0N5QUVJQVUyQWhBZ0EwRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBVTJBaEJCQ0NFRklBTkJDSFFnQW1vaEFnc2dCVUVCYXlFRklBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFTUlNBU0lCVWJEQU1MQWtBZ0JrR1FnSUFCY1EwQUlBRWdDeUFFS0FKc0lBWkI3d054YWkwQUFFRUNkR29pQ1NnQ0FDSUhLQUlBSWdOcklRRUNmeUFESUFKQkVIWkxCRUFnQnlnQ0JDRUtJQWtnQjBFSVFRd2dBU0FEU1NJT0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFFZ0J5MEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTUFnc2dCQ0FGTmdJUUlBRkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUZOZ0lRUVFnaEJTQUJRUWgwSUFKcUlRSUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0EwRUJkQ0lEUVlDQUFra05BQXNnQXlFQklBb2dDa1VnRGhzTUFRc2dBaUFEUVJCMGF5RUNJQUZCZ0lBQ2NVVUVRQ0FIS0FJRUlRb2dDU0FIUVF4QkNDQUJJQU5KSWc0YmFpZ0NBRFlDQUFOQUFrQWdCUTBBSUFRb0FoQWlCMEVCYWlFRklBY3RBQUVoQXlBSExRQUFRZjhCUmdSQUlBTkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlF3Q0N5QUVJQVUyQWhBZ0EwRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBVTJBaEJCQ0NFRklBTkJDSFFnQW1vaEFnc2dCVUVCYXlFRklBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFLUlNBS0lBNGJEQUVMSUFjb0FnUUxSUTBBSUFFZ0N5QU5LQUlFUVJGMlFRUnhJQTFCQkdzaUNpZ0NBRUVUZGtFQmNTQUdRUTUyUVJCeElBWkJFSFpCd0FCeElBWkJxZ0Z4Y25KeWNpSVNRZEM1QVdvdEFBQkJBblJxSWdrb0FnQWlCeWdDQUNJRGF5RUJBbjhnQXlBQ1FSQjJTd1JBSUFjb0FnUWhEaUFKSUFkQkNFRU1JQUVnQTBraUZSdHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lIUVFGcUlRVWdCeTBBQVNFQklBY3RBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQlRZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCVFlDRUVFSUlRVWdBVUVJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBTkJBWFFpQTBHQWdBSkpEUUFMSUFNaEFTQU9JQTVGSUJVYkRBRUxJQUlnQTBFUWRHc2hBaUFCUVlDQUFuRkZCRUFnQnlnQ0JDRU9JQWtnQjBFTVFRZ2dBU0FEU1NJVkcyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFNZ0J5MEFBRUgvQVVZRVFDQURRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTUFnc2dCQ0FGTmdJUUlBTkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUZOZ0lRUVFnaEJTQURRUWgwSUFKcUlRSUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnRGtVZ0RpQVZHd3dCQ3lBSEtBSUVDeUVESUJFZ0V5QVVJQU1nRWtIUXV3RnFMUUFBY3lJREd6WUNBQ0FLSUFvb0FnQkJJSEkyQWdBZ0RTQU5LQUlFUVFoeU5nSUVJQVlnQTBFVGRISkJFSEloQmdzQ1FDQUdRWUNCZ0FoeERRQWdBU0FMSUFRb0Ftd2dCa0VEZGlJT1FlOERjV290QUFCQkFuUnFJZ2tvQWdBaUJ5Z0NBQ0lEYXlFQkFuOGdBeUFDUVJCMlN3UkFJQWNvQWdRaENpQUpJQWRCQ0VFTUlBRWdBMGtpRWh0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VCSUFjdEFBQkIvd0ZHQkVBZ0FVR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGREFJTElBUWdCVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JUWUNFRUVJSVFVZ0FVRUlkQ0FDYWlFQ0N5QUZRUUZySVFVZ0FrRUJkQ0VDSUFOQkFYUWlBMEdBZ0FKSkRRQUxJQU1oQVNBS0lBcEZJQkliREFFTElBSWdBMEVRZEdzaEFpQUJRWUNBQW5GRkJFQWdCeWdDQkNFS0lBa2dCMEVNUVFnZ0FTQURTU0lTRzJvb0FnQTJBZ0FEUUFKQUlBVU5BQ0FFS0FJUUlnZEJBV29oQlNBSExRQUJJUU1nQnkwQUFFSC9BVVlFUUNBRFFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVVNQWdzZ0JDQUZOZ0lRSUFOQkNYUWdBbW9oQWtFSElRVU1BUXNnQkNBRk5nSVFRUWdoQlNBRFFRaDBJQUpxSVFJTElBVkJBV3NoQlNBQ1FRRjBJUUlnQVVFQmRDSUJRWUNBQWtrTkFBc2dDa1VnQ2lBU0d3d0JDeUFIS0FJRUMwVU5BQ0FCSUFzZ0RTZ0NCRUVVZGtFRWNTQU5RUVJySWdvb0FnQkJGblpCQVhFZ0JrRVBka0VRY1NBR1FSTjJRY0FBY1NBT1Fhb0JjWEp5Y25JaUVrSFF1UUZxTFFBQVFRSjBhaUlKS0FJQUlnY29BZ0FpQTJzaEFRSi9JQU1nQWtFUWRrc0VRQ0FIS0FJRUlRNGdDU0FIUVFoQkRDQUJJQU5KSWhVYmFpZ0NBRFlDQUFOQUFrQWdCUTBBSUFRb0FoQWlCMEVCYWlFRklBY3RBQUVoQVNBSExRQUFRZjhCUmdSQUlBRkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlF3Q0N5QUVJQVUyQWhBZ0FVRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBVTJBaEJCQ0NFRklBRkJDSFFnQW1vaEFnc2dCVUVCYXlFRklBSkJBWFFoQWlBRFFRRjBJZ05CZ0lBQ1NRMEFDeUFESVFFZ0RpQU9SU0FWR3d3QkN5QUNJQU5CRUhScklRSWdBVUdBZ0FKeFJRUkFJQWNvQWdRaERpQUpJQWRCREVFSUlBRWdBMGtpRlJ0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VESUFjdEFBQkIvd0ZHQkVBZ0EwR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGREFJTElBUWdCVFlDRUNBRFFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JUWUNFRUVJSVFVZ0EwRUlkQ0FDYWlFQ0N5QUZRUUZySVFVZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQTVGSUE0Z0ZSc01BUXNnQnlnQ0JBc2hBeUFSSUJNZ0ZDQURJQkpCMExzQmFpMEFBSE1pQXhzMkFvQUNJQW9nQ2lnQ0FFR0FBbkkyQWdBZ0RTQU5LQUlFUWNBQWNqWUNCQ0FHSUFOQkZuUnlRWUFCY2lFR0N3SkFJQVpCZ0lpQXdBQnhEUUFnQVNBTElBUW9BbXdnQmtFR2RpSU9RZThEY1dvdEFBQkJBblJxSWdrb0FnQWlCeWdDQUNJRGF5RUJBbjhnQXlBQ1FSQjJTd1JBSUFjb0FnUWhDaUFKSUFkQkNFRU1JQUVnQTBraUVodHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lIUVFGcUlRVWdCeTBBQVNFQklBY3RBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQlRZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCVFlDRUVFSUlRVWdBVUVJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBTkJBWFFpQTBHQWdBSkpEUUFMSUFNaEFTQUtJQXBGSUJJYkRBRUxJQUlnQTBFUWRHc2hBaUFCUVlDQUFuRkZCRUFnQnlnQ0JDRUtJQWtnQjBFTVFRZ2dBU0FEU1NJU0cyb29BZ0EyQWdBRFFBSkFJQVVOQUNBRUtBSVFJZ2RCQVdvaEJTQUhMUUFCSVFNZ0J5MEFBRUgvQVVZRVFDQURRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFVTUFnc2dCQ0FGTmdJUUlBTkJDWFFnQW1vaEFrRUhJUVVNQVFzZ0JDQUZOZ0lRUVFnaEJTQURRUWgwSUFKcUlRSUxJQVZCQVdzaEJTQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnQ2tVZ0NpQVNHd3dCQ3lBSEtBSUVDMFVOQUNBQklBc2dEU2dDQkVFWGRrRUVjU0FOUVFScklnb29BZ0JCR1haQkFYRWdCa0VTZGtFUWNTQUdRUloyUWNBQWNTQU9RYW9CY1hKeWNuSWlFa0hRdVFGcUxRQUFRUUowYWlJSktBSUFJZ2NvQWdBaUEyc2hBUUovSUFNZ0FrRVFka3NFUUNBSEtBSUVJUTRnQ1NBSFFRaEJEQ0FCSUFOSkloVWJhaWdDQURZQ0FBTkFBa0FnQlEwQUlBUW9BaEFpQjBFQmFpRUZJQWN0QUFFaEFTQUhMUUFBUWY4QlJnUkFJQUZCa0FGUEJFQWdCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJRd0NDeUFFSUFVMkFoQWdBVUVKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVUyQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3NnQlVFQmF5RUZJQUpCQVhRaEFpQURRUUYwSWdOQmdJQUNTUTBBQ3lBRElRRWdEaUFPUlNBVkd3d0JDeUFDSUFOQkVIUnJJUUlnQVVHQWdBSnhSUVJBSUFjb0FnUWhEaUFKSUFkQkRFRUlJQUVnQTBraUZSdHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lIUVFGcUlRVWdCeTBBQVNFRElBY3RBQUJCL3dGR0JFQWdBMEdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQlRZQ0VDQURRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCVFlDRUVFSUlRVWdBMEVJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUE1RklBNGdGUnNNQVFzZ0J5Z0NCQXNoQXlBUklCTWdGQ0FESUJKQjBMc0JhaTBBQUhNaUF4czJBb0FFSUFvZ0NpZ0NBRUdBRUhJMkFnQWdEU0FOS0FJRVFZQUVjallDQkNBR0lBTkJHWFJ5UVlBSWNpRUdDeUFHUVlEQWdJQUVjUTBESUFFZ0N5QUVLQUpzSUFaQkNYWWlFa0h2QTNGcUxRQUFRUUowYWlJSktBSUFJZ0VvQWdBaUEyc2hCd0ovSUFNZ0FrRVFka3NFUUNBQktBSUVJUW9nQ1NBQlFRaEJEQ0FESUFkTElnNGJhaWdDQURZQ0FBTkFBa0FnQlEwQUlBUW9BaEFpQjBFQmFpRUZJQWN0QUFFaEFTQUhMUUFBUWY4QlJnUkFJQUZCa0FGUEJFQWdCQ0FFS0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJRd0NDeUFFSUFVMkFoQWdBVUVKZENBQ2FpRUNRUWNoQlF3QkN5QUVJQVUyQWhCQkNDRUZJQUZCQ0hRZ0Ftb2hBZ3NnQlVFQmF5RUZJQUpCQVhRaEFpQURRUUYwSWdOQmdJQUNTUTBBQ3lBRElRY2dDaUFLUlNBT0d3d0JDeUFDSUFOQkVIUnJJUUlnQjBHQWdBSnhSUVJBSUFFb0FnUWhDaUFKSUFGQkRFRUlJQU1nQjBzaURodHFLQUlBTmdJQUEwQUNRQ0FGRFFBZ0JDZ0NFQ0lEUVFGcUlRVWdBeTBBQVNFQklBTXRBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQUVJQVFvQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRkRBSUxJQVFnQlRZQ0VDQUJRUWwwSUFKcUlRSkJCeUVGREFFTElBUWdCVFlDRUVFSUlRVWdBVUVJZENBQ2FpRUNDeUFGUVFGcklRVWdBa0VCZENFQ0lBZEJBWFFpQjBHQWdBSkpEUUFMSUFwRklBb2dEaHNNQVFzZ0FTZ0NCQXRGQkVBZ0J5RUJEQVFMSUFjZ0N5QU5LQUlFUVJwMlFRUnhJQTFCQkdzaURpZ0NBRUVjZGtFQmNTQUdRUlYyUVJCeElBWkJHWFpCd0FCeElCSkJxZ0Z4Y25KeWNpSUtRZEM1QVdvdEFBQkJBblJxSWdrb0FnQWlCeWdDQUNJQmF5RURJQUVnQWtFUWRrc0VRQ0FIS0FJRUlSSWdDU0FIUVFoQkRDQUJJQU5MSWhVYmFpZ0NBRFlDQUFOQUFrQWdCUTBBSUFRb0FoQWlCMEVCYWlFRklBY3RBQUVoQXlBSExRQUFRZjhCUmdSQUlBTkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQlF3Q0N5QUVJQVUyQWhBZ0EwRUpkQ0FDYWlFQ1FRY2hCUXdCQ3lBRUlBVTJBaEJCQ0NFRklBTkJDSFFnQW1vaEFnc2dCVUVCYXlFRklBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFTSUJKRklCVWJEQU1MSUFJZ0FVRVFkR3NoQWlBRFFZQ0FBbkZGRFFFZ0F5RUJDeUFIS0FJRURBRUxJQWNvQWdRaEVpQUpJQWRCREVFSUlBRWdBMHNpRlJ0cUtBSUFOZ0lBQTBBQ1FDQUZEUUFnQkNnQ0VDSUhRUUZxSVFVZ0J5MEFBU0VCSUFjdEFBQkIvd0ZHQkVBZ0FVR1FBVThFUUNBRUlBUW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VGREFJTElBUWdCVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUZEQUVMSUFRZ0JUWUNFRUVJSVFVZ0FVRUlkQ0FDYWlFQ0N5QUZRUUZySVFVZ0FrRUJkQ0VDSUFOQkFYUWlBMEdBZ0FKSkRRQUxJQU1oQVNBU1JTQVNJQlViQ3lFRElCRWdFeUFVSUFNZ0NrSFF1d0ZxTFFBQWN5SURHellDZ0FZZ0RpQU9LQUlBUVlDQUFYSTJBZ0FnRFNBTktBSUVRWUFnY2pZQ0JDQU5JQTBvQW9RQ1FRUnlOZ0tFQWlBTklBMG9Bb3dDUVFGeU5nS01BaUFOSUEwb0FvZ0NJQU5CRW5SeVFRSnlOZ0tJQWlBR0lBTkJISFJ5UVlEQUFISWhCZ3NnRFNBR1FmLy8vN1o3Y1RZQ0FBc2dEVUVFYWlFR0lCRkJCR29oQXlBTVFRRnFJZ3hCd0FCSERRQUxJQTFCREdvaEJpQVJRWVFHYWlFRElCZEJQRWtoWENBWFFRUnFJUmNnWEEwQUN3c2dCQ0FGTmdJSUlBUWdBVFlDQkNBRUlBSTJBZ0FnQkNBSk5nSm9Dd0pBSUJaQklIRkZEUUFnQkNBRVFlUUFhallDYUNBRUlBUW9BZ1FnQkNnQ1pDSUdLQUlBSWdGcklnSTJBZ1FDUUNBQklBUW9BZ0FpQlVFUWRrc0VRQ0FFSUFFMkFnUWdCQ0FHUVFoQkRDQUJJQUpMRzJvb0FnQWlCallDWkNBRUtBSUlJUUlEUUFKQUlBSU5BQ0FFS0FJUUlnZEJBV29oQ1NBSExRQUJJUU1nQnkwQUFFSC9BVVlFUUNBRFFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUZRWUQrQTJvaEJVRUlJUUlNQWdzZ0JDQUpOZ0lRSUFOQkNYUWdCV29oQlVFSElRSU1BUXNnQkNBSk5nSVFRUWdoQWlBRFFRaDBJQVZxSVFVTElBUWdBa0VCYXlJQ05nSUlJQVFnQlVFQmRDSUZOZ0lBSUFRZ0FVRUJkQ0lCTmdJRUlBRkJnSUFDU1EwQUN5QUJJUUlNQVFzZ0JDQUZJQUZCRUhScklnVTJBZ0FnQWtHQWdBSnhEUUFnQkNBR1FReEJDQ0FCSUFKTEcyb29BZ0FpQmpZQ1pDQUVLQUlJSVFFRFFBSkFJQUVOQUNBRUtBSVFJZ0ZCQVdvaEJ5QUJMUUFCSVFNZ0FTMEFBRUgvQVVZRVFDQURRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FGUVlEK0Eyb2hCVUVJSVFFTUFnc2dCQ0FITmdJUUlBTkJDWFFnQldvaEJVRUhJUUVNQVFzZ0JDQUhOZ0lRUVFnaEFTQURRUWgwSUFWcUlRVUxJQVFnQVVFQmF5SUJOZ0lJSUFRZ0JVRUJkQ0lGTmdJQUlBUWdBa0VCZENJQ05nSUVJQUpCZ0lBQ1NRMEFDd3NnQkNBQ0lBWW9BZ0FpQVdzaUFqWUNCQUpBSUFFZ0JVRVFka3NFUUNBRUlBRTJBZ1FnQkNBR1FRaEJEQ0FCSUFKTEcyb29BZ0FpQmpZQ1pDQUVLQUlJSVFJRFFBSkFJQUlOQUNBRUtBSVFJZ2RCQVdvaENTQUhMUUFCSVFNZ0J5MEFBRUgvQVVZRVFDQURRWkFCVHdSQUlBUWdCQ2dDREVFQmFqWUNEQ0FGUVlEK0Eyb2hCVUVJSVFJTUFnc2dCQ0FKTmdJUUlBTkJDWFFnQldvaEJVRUhJUUlNQVFzZ0JDQUpOZ0lRUVFnaEFpQURRUWgwSUFWcUlRVUxJQVFnQWtFQmF5SUNOZ0lJSUFRZ0JVRUJkQ0lGTmdJQUlBUWdBVUVCZENJQk5nSUVJQUZCZ0lBQ1NRMEFDeUFCSVFJTUFRc2dCQ0FGSUFGQkVIUnJJZ1UyQWdBZ0FrR0FnQUp4RFFBZ0JDQUdRUXhCQ0NBQklBSkxHMm9vQWdBaUJqWUNaQ0FFS0FJSUlRRURRQUpBSUFFTkFDQUVLQUlRSWdGQkFXb2hCeUFCTFFBQklRTWdBUzBBQUVIL0FVWUVRQ0FEUVpBQlR3UkFJQVFnQkNnQ0RFRUJhallDRENBRlFZRCtBMm9oQlVFSUlRRU1BZ3NnQkNBSE5nSVFJQU5CQ1hRZ0JXb2hCVUVISVFFTUFRc2dCQ0FITmdJUVFRZ2hBU0FEUVFoMElBVnFJUVVMSUFRZ0FVRUJheUlCTmdJSUlBUWdCVUVCZENJRk5nSUFJQVFnQWtFQmRDSUNOZ0lFSUFKQmdJQUNTUTBBQ3dzZ0JDQUNJQVlvQWdBaUFXc2lBallDQkFKQUlBRWdCVUVRZGtzRVFDQUVJQUUyQWdRZ0JDQUdRUWhCRENBQklBSkxHMm9vQWdBaUJqWUNaQ0FFS0FJSUlRSURRQUpBSUFJTkFDQUVLQUlRSWdkQkFXb2hDU0FITFFBQklRTWdCeTBBQUVIL0FVWUVRQ0FEUVpBQlR3UkFJQVFnQkNnQ0RFRUJhallDRENBRlFZRCtBMm9oQlVFSUlRSU1BZ3NnQkNBSk5nSVFJQU5CQ1hRZ0JXb2hCVUVISVFJTUFRc2dCQ0FKTmdJUVFRZ2hBaUFEUVFoMElBVnFJUVVMSUFRZ0FrRUJheUlDTmdJSUlBUWdCVUVCZENJRk5nSUFJQVFnQVVFQmRDSUJOZ0lFSUFGQmdJQUNTUTBBQ3lBQklRSU1BUXNnQkNBRklBRkJFSFJySWdVMkFnQWdBa0dBZ0FKeERRQWdCQ0FHUVF4QkNDQUJJQUpMRzJvb0FnQWlCallDWkNBRUtBSUlJUUVEUUFKQUlBRU5BQ0FFS0FJUUlnRkJBV29oQnlBQkxRQUJJUU1nQVMwQUFFSC9BVVlFUUNBRFFaQUJUd1JBSUFRZ0JDZ0NERUVCYWpZQ0RDQUZRWUQrQTJvaEJVRUlJUUVNQWdzZ0JDQUhOZ0lRSUFOQkNYUWdCV29oQlVFSElRRU1BUXNnQkNBSE5nSVFRUWdoQVNBRFFRaDBJQVZxSVFVTElBUWdBVUVCYXlJQk5nSUlJQVFnQlVFQmRDSUZOZ0lBSUFRZ0FrRUJkQ0lDTmdJRUlBSkJnSUFDU1EwQUN3c2dCQ0FDSUFZb0FnQWlBV3NpQWpZQ0JDQUJJQVZCRUhaTEJFQWdCQ0FCTmdJRUlBUWdCa0VJUVF3Z0FTQUNTeHRxS0FJQU5nSmtJQVFvQWdnaEFnTkFBa0FnQWcwQUlBUW9BaEFpQmtFQmFpRUhJQVl0QUFFaEF5QUdMUUFBUWY4QlJnUkFJQU5Ca0FGUEJFQWdCQ0FFS0FJTVFRRnFOZ0lNSUFWQmdQNERhaUVGUVFnaEFnd0NDeUFFSUFjMkFoQWdBMEVKZENBRmFpRUZRUWNoQWd3QkN5QUVJQWMyQWhCQkNDRUNJQU5CQ0hRZ0JXb2hCUXNnQkNBQ1FRRnJJZ0kyQWdnZ0JDQUZRUUYwSWdVMkFnQWdCQ0FCUVFGMElnRTJBZ1FnQVVHQWdBSkpEUUFMREFFTElBUWdCU0FCUVJCMGF5SUhOZ0lBSUFKQmdJQUNjUTBBSUFRZ0JrRU1RUWdnQVNBQ1N4dHFLQUlBTmdKa0lBUW9BZ2doQlFOQUFrQWdCUTBBSUFRb0FoQWlBMEVCYWlFR0lBTXRBQUVoQVNBRExRQUFRZjhCUmdSQUlBRkJrQUZQQkVBZ0JDQUVLQUlNUVFGcU5nSU1JQWRCZ1A0RGFpRUhRUWdoQlF3Q0N5QUVJQVkyQWhBZ0FVRUpkQ0FIYWlFSFFRY2hCUXdCQ3lBRUlBWTJBaEJCQ0NFRklBRkJDSFFnQjJvaEJ3c2dCQ0FGUVFGcklnVTJBZ2dnQkNBSFFRRjBJZ2MyQWdBZ0JDQUNRUUYwSWdJMkFnUWdBa0dBZ0FKSkRRQUxDd3NnSncwQUlBUVFXaUFFUWJDcEFUWUNaQ0FFUWRDZUFUWUNZQ0FFUWZDZUFUWUNIQXRCQUNBZlFRRnFJZ0VnQVVFRFJpSUJHeUVmSUJrZ0FXc2hHU0FtUVFGcUlpWWdJQ2dDQ0U4TkFTQVpRUUJLRFFBTEN5QW9JQ3BxSVNnZ0JDZ0NHQ0FFTHdGd093QUFJQ2xCQVdvaUtTQWFLQUlzU1EwQUN3c0NRQ0FyUlEwQUFrQWdCQ2dDR0NJQklBUW9BaEFpQTBFQ2Frc0VRQ0FoUlEwQklDTWdBU0FFS0FJVUlnWnJOZ0k0SUNNZ0F5QUdhellDTkNBaklBRWdBMnRCQW1zMkFqQWdIVUVDUVpEeUFDQWpRVEJxRUE4TUFnc2dCQ2dDRENJQlFRTkpEUUVnSVFSQUlDTWdBVFlDVUNBZFFRSkI2VFVnSTBIUUFHb1FEd3dDQ3lBaklBRTJBa0FnSFVFQ1FlazFJQ05CUUdzUUR3d0JDeUFqSUFFZ0JDZ0NGQ0lHYXpZQ0tDQWpJQU1nQm1zMkFpUWdJeUFCSUFOclFRSnJOZ0lnSUIxQkFrR1E4Z0FnSTBFZ2FoQVBDeUFhS0FJOFJRMEFJQVFnTERZQ2RBc2dNQ2dDQkNFQklCb29BZ3doWFNBYUtBSUlJREFvQWdCcklRZ2dNQ2dDRUNJR1FRRnhCRUFnTWlnQ0hDQTNRWmdCYkdvaUIwR1FBV3NvQWdBZ0NHb2dCMEdZQVdzb0FnQnJJUWdMSUYwZ0FXc2hBeUFHUVFKeEJFQWdNaWdDSENBM1FaZ0JiR29pQVVHTUFXc29BZ0FnQTJvZ0FVR1VBV3NvQWdCcklRTUxJQm9vQWp3aUJpRUNJQVpGQkVBZ0JDZ0NkQ0VDQ3lBRUtBS0FBU0VXSUFRb0Fud2hEUUpBSUM4b0FxZ0dJZ2RGRFFBZ0ZrVWdEVVZ5SVFFZ0IwRWVUQVJBSUFFTkFVRUFJUkFEUUNBTklCQnNJUVJCQUNFQkEwQWdBaUFCSUFScVFRSjBhaUlSS0FJQUlna2dDVUVmZFNJRmN5QUZheUlGSUFkMkJFQWdFVUVBSUFVZ0x5Z0NxQVoySWhGcklCRWdDVUVBU0JzMkFnQUxJQUZCQVdvaUFTQU5SdzBBQ3lBUVFRRnFJaEFnRmtjTkFBc01BUXNnQVEwQUlBSkJBQ0FOSUJac1FRSjBFQlVhQ3lBR0JFQWdEU0FXYkNFR0lDOG9BaFJCQVVZRVFDQUdSUTBGUVFBaEFTQUdRUVJQQkVBZ0JrRjhjU0VCUVFBaEJBTkFJQUlnQkVFQ2RHb2lBeUFEL1FBQ0FDSmUvUnNBUVFKdC9SRWdYdjBiQVVFQ2JmMGNBU0JlL1JzQ1FRSnQvUndDSUY3OUd3TkJBbTM5SEFQOUN3SUFJQVJCQkdvaUJDQUJSdzBBQ3lBQklBWkdEUVlMQTBBZ0FpQUJRUUowYWlJRElBTW9BZ0JCQW0wMkFnQWdBVUVCYWlJQklBWkhEUUFMREFVTElBWkZEUVFnTUNvQ0lFTUFBQUEvbENGbVFRQWhCQUpBSUFaQkJFa0VRQ0FDSVFFTUFRc2dBaUFHUVh4eElnUkJBblJxSVFFZ1p2MFRJVjVCQUNFREEwQWdBaUFEUVFKMGFpSUhJRjRnQi8wQUFnRDkrZ0g5NWdIOUN3SUFJQU5CQkdvaUF5QUVSdzBBQ3lBRUlBWkdEUVVMQTBBZ0FTQm1JQUVvQWdDeWxEZ0NBQ0FCUVFScUlRRWdCRUVCYWlJRUlBWkhEUUFMREFRTElEWWdOV3NoRVNBdktBSVVRUUZIRFFJZ0ZrVU5BeUF5S0FJa0lnWWdBeUFSYkNJRFFRSjBhaUFJUVFKMGFpRUpJQTFCZkhFaURFRUJheUlCUVFSeElRc2dOaUFOSURWcWEwRUNkQ0VhSUFGQkFuWkJBV3BCL3YvLy93ZHhJUjBnQXlBSWFrRUNkQ0FHYWlBQ2F5RUtRUUFoQ0NBQlFRTkhJUlFEUUVFQUlRRUNRQ0FNUlEwQUlBZ2dEV3doQXlBSklBZ2dFV3hCQW5ScUlRWkJBQ0VISUJRRVFBTkFJQVlnQVVFQ2RHb2dBaUFCSUFOcVFRSjBhdjBBQWdBaVh2MGJBRUVDYmYwUklGNzlHd0ZCQW0zOUhBRWdYdjBiQWtFQ2JmMGNBaUJlL1JzRFFRSnQvUndEL1FzQ0FDQUdJQUZCQkhJaUJFRUNkR29nQWlBRElBUnFRUUowYXYwQUFnQWlYdjBiQUVFQ2JmMFJJRjc5R3dGQkFtMzlIQUVnWHYwYkFrRUNiZjBjQWlCZS9Sc0RRUUp0L1J3RC9Rc0NBQ0FCUVFocUlRRWdCMEVDYWlJSElCMUhEUUFMQ3lBTERRQWdCaUFCUVFKMGFpQUNJQUVnQTJwQkFuUnEvUUFDQUNKZS9Sc0FRUUp0L1JFZ1h2MGJBVUVDYmYwY0FTQmUvUnNDUVFKdC9Sd0NJRjc5R3dOQkFtMzlIQVA5Q3dJQUlBRkJCR29oQVFzQ1FDQUJJQTFQRFFBZ0NDQU5iQ0VESUFrZ0NDQVJiRUVDZEdvaEJ3SkFJQTBnQVdzaUVFRUVTUVJBSUFFaEJBd0JDeUFLSUFnZ0dteHFRUkJKQkVBZ0FTRUVEQUVMSUFFZ0VFRjhjU0lGYWlFRVFRQWhCZ05BSUFjZ0FTQUdhaUloUVFKMGFpQUNJQU1nSVdwQkFuUnEvUUFDQUNKZS9Sc0FRUUp0L1JFZ1h2MGJBVUVDYmYwY0FTQmUvUnNDUVFKdC9Sd0NJRjc5R3dOQkFtMzlIQVA5Q3dJQUlBWkJCR29pQmlBRlJ3MEFDeUFGSUJCR0RRRUxJQVJCQVdvaEFTQU5JQVJyUVFGeEJFQWdCeUFFUVFKMGFpQUNJQU1nQkdwQkFuUnFLQUlBUVFKdE5nSUFJQUVoQkFzZ0FTQU5SZzBBQTBBZ0J5QUVRUUowYWlBQ0lBTWdCR3BCQW5ScUtBSUFRUUp0TmdJQUlBY2dCRUVCYWlJQlFRSjBhaUFDSUFFZ0EycEJBblJxS0FJQVFRSnROZ0lBSUFSQkFtb2lCQ0FOUncwQUN3c2dDRUVCYWlJSUlCWkhEUUFMREFNTElDTWdHVFlDQUNBZFFRSkIxY0VBSUNNUUR3c2dFQ2dDQUVFQU5nSUFEQUVMSUJaRkRRQWdEVVVOQUNBeUtBSWtJQU1nRVd4QkFuUnFJQWhCQW5ScUlRY2dEVUY4Y1NJRFFRSjBJUVlnTUNvQ0lFTUFBQUEvbENKbS9STWhYa0VBSVJBZ0RVRUVTU0VJQTBBQ1FBSkFJQWdFUUNBQ0lRa2dCeUVCUVFBaEJBd0JDeUFHSUFkcUlRRWdBaUFHYWlFSlFRQWhCQU5BSUFjZ0JFRUNkQ0lGYWlCZUlBSWdCV3I5QUFJQS9mb0IvZVlCL1FzQ0FDQUVRUVJxSWdRZ0EwY05BQXNnQ1NFQ0lBTWlCQ0FOUmcwQkN5QUpJUUlEUUNBQklHWWdBaWdDQUxLVU9BSUFJQUZCQkdvaEFTQUNRUVJxSVFJZ0JFRUJhaUlFSUExSERRQUxDeUFISUJGQkFuUnFJUWNnRUVFQmFpSVFJQlpIRFFBTEN5QUFFQkFnSTBIZ0FHb2tBQXZXQkFFSmZ5QUFLQUlzUVFoUEJFQWdBQ2dDS0NFRlFRZ2hDZ05BSUFBb0FneEJCWFFoQ0NBQUtBSUFJUVFnQUNnQ0pDRURBa0FnQUNnQ0ZDSUdJQUFvQWhBaUFVME5BQ0FFSUFocUlRY2dBVUVCYWlFQ0lBWWdBV3RCQVhFRVFDQUhJQUZCQm5ScUlna2dCU0FCSUFOc1FRSjBhaUlCL1FBQ0FQMExBZ0FnQ1NBQi9RQUNFUDBMQWhBZ0FpRUJDeUFDSUFaR0RRQURRQ0FISUFGQkJuUnFJZ0lnQlNBQklBTnNRUUowYWlJSi9RQUNBUDBMQWdBZ0FpQUovUUFDRVAwTEFoQWdCeUFCUVFGcUlnSkJCblJxSWdrZ0JTQUNJQU5zUVFKMGFpSUMvUUFDRVAwTEFoQWdDU0FDL1FBQ0FQMExBZ0FnQVVFQ2FpSUJJQVpIRFFBTEN3SkFJQUFvQWh3aUJpQUFLQUlZSWdGTkRRQWdCQ0FJYTBFZ2FpRUhJQVVnQUNnQ0NDQURiRUVDZEdvaENDQUJRUUZxSVFJZ0JpQUJhMEVCY1FSQUlBY2dBVUVHZEdvaUJDQUlJQUVnQTJ4QkFuUnFJZ0g5QUFJQS9Rc0NBQ0FFSUFIOUFBSVEvUXNDRUNBQ0lRRUxJQUlnQmtZTkFBTkFJQWNnQVVFR2RHb2lBaUFJSUFFZ0EyeEJBblJxSWdUOUFBSUEvUXNDQUNBQ0lBVDlBQUlRL1FzQ0VDQUhJQUZCQVdvaUFrRUdkR29pQkNBSUlBSWdBMnhCQW5ScUlnTDlBQUlRL1FzQ0VDQUVJQUw5QUFJQS9Rc0NBQ0FCUVFKcUlnRWdCa2NOQUFzTElBQVFJa0VBSVFFZ0FDZ0NJQVJBQTBBZ0JTQUFLQUlrSUFGc1FRSjBhaUlDSUFBb0FnQWdBVUVGZEdvaUEvMEFBZ0Q5Q3dJQUlBSWdBLzBBQWhEOUN3SVFJQUZCQVdvaUFTQUFLQUlnU1EwQUN3c2dCVUVnYWlFRklBcEJDR29pQ2lBQUtBSXNUUTBBQ3dzZ0FDZ0NBQkFRSUFBUUVBdjNEUUVsZnlBQUtBSXNRUWhQQkVBZ0FDZ0NKQ0lLUVFWMElSNGdDa0VIYkNFV0lBcEJCbXdoRnlBS1FRVnNJUmdnQ2tFRGJDRVpJQXBCQVhRaEdpQUFLQUlvSWdFZ0NrRWNiR29oSHlBQklBcEJHR3hxSVNBZ0FTQUtRUlJzYWlFaElBRWdDa0VFZEdvaElpQUJJQXBCREd4cUlTTWdBU0FLUVFOMElpUnFJU1VnQVNBS1FRSjBJaHRxSVNaQkNDRWNBMEFnQUNBQklBQW9BaVJCQ0JBN0lBQVFJZ0pBSUFBb0FpQWlDMFVOQUNBZElCNXNJUWdnQUNnQ0FDRUdRUUFoQkFKQUFrQWdDMEhvQWtrTkFDQUdRUXhxSWc0Z0MwRUJheUlDUVFWMElnTnFJQTVKRFFBZ0JrRUlhaUlQSUFOcUlBOUpEUUFnQXlBR2FpQUdTUTBBSUFaQkJHb2lFQ0FEYWlBUVNRMEFJQUpCLy8vL1Awc05BQ0FCSUFnZ0ptb2lBeUFMUVFKMElnVnFJZ3hKSUFNZ0FTQUZhaUlIU1hFTkFDQUJJQWdnSldvaUFpQUZhaUlOU1NBQ0lBZEpjUTBBSUFFZ0JTQUlJQ05xSWdscUlnVkpJQWNnQ1V0eERRQWdCaUFIU1NBQklBWWdDMEVGZEdvaUVVRWNheUlTU1hFTkFDQUJJQkZCR0dzaUUwa2dCeUFRUzNFTkFDQUJJQkZCRkdzaUZFa2dCeUFQUzNFTkFDQUhJQTVMSUFFZ0VVRVFheUlIU1hFTkFDQURJQTFKSUFJZ0RFbHhEUUFnQXlBRlNTQUpJQXhKY1EwQUlBTWdFa2tnQmlBTVNYRU5BQ0FESUJOSklBd2dFRXR4RFFBZ0F5QVVTU0FNSUE5TGNRMEFJQU1nQjBrZ0RDQU9TM0VOQUNBQ0lBVkpJQWtnRFVseERRQWdBaUFTU1NBR0lBMUpjUTBBSUFJZ0Uwa2dEU0FRUzNFTkFDQUNJQlJKSUEwZ0QwdHhEUUFnQWlBSFNTQU5JQTVMY1EwQUlBa2dFa2tnQlNBR1MzRU5BQ0FKSUJOSklBVWdFRXR4RFFBZ0NTQVVTU0FGSUE5TGNRMEFJQWNnQ1VzZ0JTQU9TM0VOQUNBTFFmei8vLzhBY1NFRVFRQWhBd05BSUFFZ0EwRUNkR29nQmlBRFFRVjBhaUlDL1FrQ0FDQUNLZ0lnL1NBQklBSkJRR3NxQWdEOUlBSWdBaW9DWVAwZ0EvMExBZ0FnQVNBRElBcHFRUUowYWlBQy9Ra0NCQ0FDS2dJay9TQUJJQUlxQWtUOUlBSWdBaW9DWlAwZ0EvMExBZ0FnQVNBRElCcHFRUUowYWlBQy9Ra0NDQ0FDS2dJby9TQUJJQUlxQWtqOUlBSWdBaW9DYVAwZ0EvMExBZ0FnQVNBRElCbHFRUUowYWlBQy9Ra0NEQ0FDS2dJcy9TQUJJQUlxQWt6OUlBSWdBaW9DYlAwZ0EvMExBZ0FnQTBFRWFpSURJQVJIRFFBTElBUWdDMFlOQVFzRFFDQUJJQVJCQW5ScUlBWWdCRUVGZEdvaUF5b0NBRGdDQUNBQklBUWdDbXBCQW5ScUlBTXFBZ1E0QWdBZ0FTQUVJQnBxUVFKMGFpQURLZ0lJT0FJQUlBRWdCQ0FaYWtFQ2RHb2dBeW9DRERnQ0FDQUVRUUZxSWdRZ0MwY05BQXNMSUFBb0FnQWhCa0VBSVFRQ1FDQUxRZHdBU1EwQUlBWkJIR29pRHlBTFFRRnJJZ0pCQlhRaUEyb2dEMGtOQUNBR1FSaHFJaEFnQTJvZ0VFa05BQ0FHUVJCcUloRWdBMm9nRVVrTkFDQUdRUlJxSWhJZ0Eyb2dFa2tOQUNBQ1FmLy8vejlMRFFBZ0NDQWlhaUlESUFnZ0lXb2lBaUFMUVFKMElnVnFJZ3hKSUFJZ0F5QUZhaUlIU1hFTkFDQURJQWdnSUdvaUNTQUZhaUlOU1NBSElBbExjUTBBSUFNZ0NDQWZhaUlJSUFWcUlnVkpJQWNnQ0V0eERRQWdBeUFHSUF0QkJYUnFJZzVCREdzaUUwa2dCeUFSUzNFTkFDQURJQTVCQ0dzaUZFa2dCeUFTUzNFTkFDQURJQTVCQkdzaUZVa2dCeUFRUzNFTkFDQURJQTVKSUFjZ0QwdHhEUUFnQWlBTlNTQUpJQXhKY1EwQUlBSWdCVWtnQ0NBTVNYRU5BQ0FDSUJOSklBd2dFVXR4RFFBZ0FpQVVTU0FNSUJKTGNRMEFJQUlnRlVrZ0RDQVFTM0VOQUNBQ0lBNUpJQXdnRDB0eERRQWdDQ0FOU1NBRklBbExjUTBBSUFrZ0Uwa2dEU0FSUzNFTkFDQUpJQlJKSUEwZ0VrdHhEUUFnQ1NBVlNTQU5JQkJMY1EwQUlBa2dEa2tnRFNBUFMzRU5BQ0FJSUJOSklBVWdFVXR4RFFBZ0NDQVVTU0FGSUJKTGNRMEFJQWdnRlVrZ0JTQVFTM0VOQUNBSUlBNUpJQVVnRDB0eERRQWdDMEg4Ly8vL0FIRWhCRUVBSVFNRFFDQUJJQU1nRzJwQkFuUnFJQVlnQTBFRmRHb2lBdjBKQWhBZ0Fpb0NNUDBnQVNBQ0tnSlEvU0FDSUFJcUFuRDlJQVA5Q3dJQUlBRWdBeUFZYWtFQ2RHb2dBdjBKQWhRZ0Fpb0NOUDBnQVNBQ0tnSlUvU0FDSUFJcUFuVDlJQVA5Q3dJQUlBRWdBeUFYYWtFQ2RHb2dBdjBKQWhnZ0Fpb0NPUDBnQVNBQ0tnSlkvU0FDSUFJcUFuajlJQVA5Q3dJQUlBRWdBeUFXYWtFQ2RHb2dBdjBKQWh3Z0Fpb0NQUDBnQVNBQ0tnSmMvU0FDSUFJcUFuejlJQVA5Q3dJQUlBTkJCR29pQXlBRVJ3MEFDeUFFSUF0R0RRRUxBMEFnQVNBRUlCdHFRUUowYWlBR0lBUkJCWFJxSWdNcUFoQTRBZ0FnQVNBRUlCaHFRUUowYWlBREtnSVVPQUlBSUFFZ0JDQVhha0VDZEdvZ0F5b0NHRGdDQUNBQklBUWdGbXBCQW5ScUlBTXFBaHc0QWdBZ0JFRUJhaUlFSUF0SERRQUxDeUFkUVFGcUlSMGdBU0FrUVFKMGFpRUJJQnhCQ0dvaUhDQUFLQUlzVFEwQUN3c2dBQ2dDQUJBUUlBQVFFQXR6QVFKL0lBQW9BaHdpQVVFSWFpSURJQUFvQWlBaUFrMEVRQU5BSUFBZ0FDZ0NHQ0FCUVFKMGFpQUFLQUlVUVFnUU1DQURJZ0ZCQ0dvaUF5QUFLQUlnSWdKTkRRQUxDeUFCSUFKSkJFQWdBQ0FBS0FJWUlBRkJBblJxSUFBb0FoUWdBaUFCYXhBd0N5QUFLQUlBRUJBZ0FCQVFDMFFBSUFBb0Fod2lBU0FBS0FJZ1NRUkFBMEFnQUNBQUtBSVlJQUFvQWhRZ0FXeEJBblJxRUYwZ0FVRUJhaUlCSUFBb0FpQkpEUUFMQ3lBQUtBSUFFQkFnQUJBUUM2Z0JBUVYvSUFBb0FsUWlBeWdDQUNFRklBTW9BZ1FpQkNBQUtBSVVJQUFvQWh3aUIyc2lCaUFFSUFaSkd5SUdCRUFnQlNBSElBWVFFaG9nQXlBREtBSUFJQVpxSWdVMkFnQWdBeUFES0FJRUlBWnJJZ1EyQWdRTElBUWdBaUFDSUFSTEd5SUVCRUFnQlNBQklBUVFFaG9nQXlBREtBSUFJQVJxSWdVMkFnQWdBeUFES0FJRUlBUnJOZ0lFQ3lBRlFRQTZBQUFnQUNBQUtBSXNJZ0UyQWh3Z0FDQUJOZ0lVSUFJTG5nVUNCbjRFZnlBQklBRW9BZ0JCQjJwQmVIRWlBVUVRYWpZQ0FDQUFJUXNnQVNrREFDRURJQUVwQXdnaEJ5TUFRU0JySWdna0FDQUhRdi8vLy8vLy96K0RJUVFDZmlBSFFqQ0lRdi8vQVlNaUJhY2lDa0dCK0FCclFmMFBUUVJBSUFSQ0JJWWdBMEk4aUlRaEFpQUtRWUQ0QUd1dElRVUNRQ0FEUXYvLy8vLy8vLy8vRDRNaUEwS0JnSUNBZ0lDQWdBaGFCRUFnQWtJQmZDRUNEQUVMSUFOQ2dJQ0FnSUNBZ0lBSVVnMEFJQUpDQVlNZ0Fud2hBZ3RDQUNBQ0lBSkMvLy8vLy8vLy93ZFdJZ0FiSVFJZ0FLMGdCWHdNQVFzQ1FDQURJQVNFVUEwQUlBVkMvLzhCVWcwQUlBUkNCSVlnQTBJOGlJUkNnSUNBZ0lDQWdBU0VJUUpDL3c4TUFRdEMvdzhnQ2tIK2h3RkxEUUFhUWdCQmdQZ0FRWUg0QUNBRlVDSUJHeUlBSUFwcklnbEI4QUJLRFFBYUlBTWhBaUFFSUFSQ2dJQ0FnSUNBd0FDRUlBRWJJZ1loQkFKQVFZQUJJQWxySWdGQndBQnhCRUFnQXlBQlFVQnFyWVloQkVJQUlRSU1BUXNnQVVVTkFDQUVJQUd0SWdXR0lBSkJ3QUFnQVd1dGlJUWhCQ0FDSUFXR0lRSUxJQWdnQWpjREVDQUlJQVEzQXhnQ1FDQUpRY0FBY1FSQUlBWWdDVUZBYXEySUlRTkNBQ0VHREFFTElBbEZEUUFnQmtIQUFDQUphNjJHSUFNZ0NhMGlBb2lFSVFNZ0JpQUNpQ0VHQ3lBSUlBTTNBd0FnQ0NBR053TUlJQWdwQXdoQ0JJWWdDQ2tEQUNJQ1FqeUloQ0VEQWtBZ0FDQUtSeUFJS1FNUUlBZ3BBeGlFUWdCU2NhMGdBa0wvLy8vLy8vLy8vdytEaENJQ1FvR0FnSUNBZ0lDQUNGb0VRQ0FEUWdGOElRTU1BUXNnQWtLQWdJQ0FnSUNBZ0FoU0RRQWdBMElCZ3lBRGZDRURDeUFEUW9DQWdJQ0FnSUFJaFNBRElBTkMvLy8vLy8vLy93ZFdJZ0FiSVFJZ0FLMExJUU1nQ0VFZ2FpUUFJQXNnQjBLQWdJQ0FnSUNBZ0lCL2d5QURRalNHaENBQ2hMODVBd0FMaGhnREUzOEJmQU4rSXdCQnNBUnJJZ3drQUNBTVFRQTJBaXdDUUNBQnZTSWFRZ0JUQkVCQkFTRVJRYm9JSVJNZ0Fab2lBYjBoR2d3QkN5QUVRWUFRY1FSQVFRRWhFVUc5Q0NFVERBRUxRY0FJUWJzSUlBUkJBWEVpRVJzaEV5QVJSU0VWQ3dKQUlCcENnSUNBZ0lDQWdQai9BSU5DZ0lDQWdJQ0FnUGovQUZFRVFDQUFRU0FnQWlBUlFRTnFJZ01nQkVILy8zdHhFQndnQUNBVElCRVFHU0FBUVpJSlFmWUtJQVZCSUhFaUJSdEIrd2xCK2dvZ0JSc2dBU0FCWWh0QkF4QVpJQUJCSUNBQ0lBTWdCRUdBd0FCekVCd2dBeUFDSUFJZ0EwZ2JJUW9NQVFzZ0RFRVFhaUVTQWtBQ2Z3SkFJQUVnREVFc2FoQmxJZ0VnQWFBaUFVUUFBQUFBQUFBQUFHSUVRQ0FNSUF3b0Fpd2lCa0VCYXpZQ0xDQUZRU0J5SWc1QjRRQkhEUUVNQXdzZ0JVRWdjaUlPUWVFQVJnMENJQXdvQWl3aENVRUdJQU1nQTBFQVNCc01BUXNnRENBR1FSMXJJZ2syQWl3Z0FVUUFBQUFBQUFDd1FhSWhBVUVHSUFNZ0EwRUFTQnNMSVFzZ0RFRXdha0dnQWtFQUlBbEJBRTRiYWlJTklRY0RRQ0FIQW44Z0FVUUFBQUFBQUFEd1FXTWdBVVFBQUFBQUFBQUFBR1p4QkVBZ0Fhc01BUXRCQUFzaUF6WUNBQ0FIUVFScUlRY2dBU0FEdUtGRUFBQUFBR1hOelVHaUlnRkVBQUFBQUFBQUFBQmlEUUFMQWtBZ0NVRUFUQVJBSUFraEF5QUhJUVlnRFNFSURBRUxJQTBoQ0NBSklRTURRRUVkSUFNZ0EwRWRUeHNoQXdKQUlBZEJCR3NpQmlBSVNRMEFJQU90SVJ4Q0FDRWFBMEFnQmlBYVF2Ly8vLzhQZ3lBR05RSUFJQnlHZkNJYlFvQ1U2OXdEZ0NJYVFvRHNsS01NZmlBYmZENENBQ0FHUVFScklnWWdDRThOQUFzZ0cwS0FsT3ZjQTFRTkFDQUlRUVJySWdnZ0dqNENBQXNEUUNBSUlBY2lCa2tFUUNBR1FRUnJJZ2NvQWdCRkRRRUxDeUFNSUF3b0Fpd2dBMnNpQXpZQ0xDQUdJUWNnQTBFQVNnMEFDd3NnQTBFQVNBUkFJQXRCR1dwQkNXNUJBV29oRHlBT1FlWUFSaUVRQTBCQkNVRUFJQU5ySWdNZ0EwRUpUeHNoQ2dKQUlBWWdDRTBFUUNBSUtBSUFSVUVDZENFSERBRUxRWUNVNjl3RElBcDJJUlJCZnlBS2RFRi9jeUVXUVFBaEF5QUlJUWNEUUNBSElBTWdCeWdDQUNJWElBcDJhallDQUNBV0lCZHhJQlJzSVFNZ0IwRUVhaUlISUFaSkRRQUxJQWdvQWdCRlFRSjBJUWNnQTBVTkFDQUdJQU0yQWdBZ0JrRUVhaUVHQ3lBTUlBd29BaXdnQ21vaUF6WUNMQ0FOSUFjZ0NHb2lDQ0FRR3lJSElBOUJBblJxSUFZZ0JpQUhhMEVDZFNBUFNoc2hCaUFEUVFCSURRQUxDMEVBSVFNQ1FDQUdJQWhORFFBZ0RTQUlhMEVDZFVFSmJDRURRUW9oQnlBSUtBSUFJZ3BCQ2trTkFBTkFJQU5CQVdvaEF5QUtJQWRCQ213aUIwOE5BQXNMSUFzZ0EwRUFJQTVCNWdCSEcyc2dEa0huQUVZZ0MwRUFSM0ZySWdjZ0JpQU5hMEVDZFVFSmJFRUphMGdFUUNBTVFUQnFRWVJnUWFSaUlBbEJBRWdiYWlBSFFZRElBR29pQ2tFSmJTSVBRUUowYWlFSlFRb2hCeUFQUVhkc0lBcHFJZ3BCQjB3RVFBTkFJQWRCQ213aEJ5QUtRUUZxSWdwQkNFY05BQXNMQWtBZ0NTZ0NBQ0lRSUJBZ0IyNGlEeUFIYkNJS1JpQUpRUVJxSWhRZ0JrWnhEUUFnRUNBS2F5RVFBa0FnRDBFQmNVVUVRRVFBQUFBQUFBQkFReUVCSUFkQmdKVHIzQU5IRFFFZ0NDQUpUdzBCSUFsQkJHc3RBQUJCQVhGRkRRRUxSQUVBQUFBQUFFQkRJUUVMUkFBQUFBQUFBT0EvUkFBQUFBQUFBUEEvUkFBQUFBQUFBUGcvSUFZZ0ZFWWJSQUFBQUFBQUFQZy9JQkFnQjBFQmRpSVVSaHNnRUNBVVNSc2hHUUpBSUJVTkFDQVRMUUFBUVMxSERRQWdHWm9oR1NBQm1pRUJDeUFKSUFvMkFnQWdBU0Fab0NBQllRMEFJQWtnQnlBS2FpSUROZ0lBSUFOQmdKVHIzQU5QQkVBRFFDQUpRUUEyQWdBZ0NDQUpRUVJySWdsTEJFQWdDRUVFYXlJSVFRQTJBZ0FMSUFrZ0NTZ0NBRUVCYWlJRE5nSUFJQU5CLzVQcjNBTkxEUUFMQ3lBTklBaHJRUUoxUVFsc0lRTkJDaUVISUFnb0FnQWlDa0VLU1EwQUEwQWdBMEVCYWlFRElBb2dCMEVLYkNJSFR3MEFDd3NnQ1VFRWFpSUhJQVlnQmlBSFN4c2hCZ3NEUUNBR0lnY2dDRTBpQ2tVRVFDQUdRUVJySWdZb0FnQkZEUUVMQ3dKQUlBNUI1d0JIQkVBZ0JFRUljU0VKREFFTElBTkJmM05CZnlBTFFRRWdDeHNpQmlBRFNpQURRWHRLY1NJSkd5QUdhaUVMUVg5QmZpQUpHeUFGYWlFRklBUkJDSEVpQ1EwQVFYY2hCZ0pBSUFvTkFDQUhRUVJyS0FJQUlnNUZEUUJCQ2lFS1FRQWhCaUFPUVFwd0RRQURRQ0FHSWdsQkFXb2hCaUFPSUFwQkNtd2lDbkJGRFFBTElBbEJmM01oQmdzZ0J5QU5hMEVDZFVFSmJDRUtJQVZCWDNGQnhnQkdCRUJCQUNFSklBc2dCaUFLYWtFSmF5SUdRUUFnQmtFQVNoc2lCaUFHSUF0S0d5RUxEQUVMUVFBaENTQUxJQU1nQ21vZ0JtcEJDV3NpQmtFQUlBWkJBRW9iSWdZZ0JpQUxTaHNoQ3d0QmZ5RUtJQXRCL2YvLy93ZEIvdi8vL3djZ0NTQUxjaUlRRzBvTkFTQUxJQkJCQUVkcVFRRnFJUTRDUUNBRlFWOXhJaFZCeGdCR0JFQWdBeUFPUWYvLy8vOEhjMG9OQXlBRFFRQWdBMEVBU2hzaEJnd0JDeUFTSUFNZ0EwRWZkU0lHY3lBR2E2MGdFaEFxSWdaclFRRk1CRUFEUUNBR1FRRnJJZ1pCTURvQUFDQVNJQVpyUVFKSURRQUxDeUFHUVFKcklnOGdCVG9BQUNBR1FRRnJRUzFCS3lBRFFRQklHem9BQUNBU0lBOXJJZ1lnRGtILy8vLy9CM05LRFFJTElBWWdEbW9pQXlBUlFmLy8vLzhIYzBvTkFTQUFRU0FnQWlBRElCRnFJZ01nQkJBY0lBQWdFeUFSRUJrZ0FFRXdJQUlnQXlBRVFZQ0FCSE1RSEFKQUFrQUNRQ0FWUWNZQVJnUkFJQXhCRUdwQkNYSWhCU0FOSUFnZ0NDQU5TeHNpQ1NFSUEwQWdDRFVDQUNBRkVDb2hCZ0pBSUFnZ0NVY0VRQ0FHSUF4QkVHcE5EUUVEUUNBR1FRRnJJZ1pCTURvQUFDQUdJQXhCRUdwTERRQUxEQUVMSUFVZ0JrY05BQ0FHUVFGcklnWkJNRG9BQUFzZ0FDQUdJQVVnQm1zUUdTQUlRUVJxSWdnZ0RVME5BQXNnRUFSQUlBQkJnZ3hCQVJBWkN5QUhJQWhORFFFZ0MwRUFUQTBCQTBBZ0NEVUNBQ0FGRUNvaUJpQU1RUkJxU3dSQUEwQWdCa0VCYXlJR1FUQTZBQUFnQmlBTVFSQnFTdzBBQ3dzZ0FDQUdRUWtnQ3lBTFFRbE9HeEFaSUF0QkNXc2hCaUFJUVFScUlnZ2dCMDhOQXlBTFFRbEtJUmdnQmlFTElCZ05BQXNNQWdzQ1FDQUxRUUJJRFFBZ0J5QUlRUVJxSUFjZ0NFc2JJUTBnREVFUWFrRUpjaUVGSUFnaEJ3TkFJQVVnQnpVQ0FDQUZFQ29pQmtZRVFDQUdRUUZySWdaQk1Eb0FBQXNDUUNBSElBaEhCRUFnQmlBTVFSQnFUUTBCQTBBZ0JrRUJheUlHUVRBNkFBQWdCaUFNUVJCcVN3MEFDd3dCQ3lBQUlBWkJBUkFaSUFaQkFXb2hCaUFKSUF0eVJRMEFJQUJCZ2d4QkFSQVpDeUFBSUFZZ0JTQUdheUlHSUFzZ0JpQUxTQnNRR1NBTElBWnJJUXNnQjBFRWFpSUhJQTFQRFFFZ0MwRUFUZzBBQ3dzZ0FFRXdJQXRCRW1wQkVrRUFFQndnQUNBUElCSWdEMnNRR1F3Q0N5QUxJUVlMSUFCQk1DQUdRUWxxUVFsQkFCQWNDeUFBUVNBZ0FpQURJQVJCZ01BQWN4QWNJQU1nQWlBQ0lBTklHeUVLREFFTElCTWdCVUVhZEVFZmRVRUpjV29oQ0FKQUlBTkJDMHNOQUVFTUlBTnJJUVpFQUFBQUFBQUFNRUFoR1FOQUlCbEVBQUFBQUFBQU1FQ2lJUmtnQmtFQmF5SUdEUUFMSUFndEFBQkJMVVlFUUNBWklBR2FJQm1ob0pvaEFRd0JDeUFCSUJtZ0lCbWhJUUVMSUJJZ0RDZ0NMQ0lISUFkQkgzVWlCbk1nQm11dElCSVFLaUlHUmdSQUlBWkJBV3NpQmtFd09nQUFDeUFSUVFKeUlRc2dCVUVnY1NFTklBWkJBbXNpQ1NBRlFROXFPZ0FBSUFaQkFXdEJMVUVySUFkQkFFZ2JPZ0FBSUFSQkNIRWhCaUFNUVJCcUlRY0RRQ0FISWdVQ2Z5QUJtVVFBQUFBQUFBRGdRV01FUUNBQnFnd0JDMEdBZ0lDQWVBc2lCMEhReEFGcUxRQUFJQTF5T2dBQUlBRWdCN2VoUkFBQUFBQUFBREJBb2lFQkFrQWdCVUVCYWlJSElBeEJFR3ByUVFGSERRQUNRQ0FHRFFBZ0EwRUFTZzBBSUFGRUFBQUFBQUFBQUFCaERRRUxJQVZCTGpvQUFTQUZRUUpxSVFjTElBRkVBQUFBQUFBQUFBQmlEUUFMUVg4aENrSDkvLy8vQnlBTElCSWdDV3NpQm1vaURXc2dBMGdOQUNBQVFTQWdBaUFOSUFOQkFtb2dCeUFNUVJCcUlnZHJJZ1VnQlVFQ2F5QURTQnNnQlNBREd5SUthaUlESUFRUUhDQUFJQWdnQ3hBWklBQkJNQ0FDSUFNZ0JFR0FnQVJ6RUJ3Z0FDQUhJQVVRR1NBQVFUQWdDaUFGYTBFQVFRQVFIQ0FBSUFrZ0JoQVpJQUJCSUNBQ0lBTWdCRUdBd0FCekVCd2dBeUFDSUFJZ0EwZ2JJUW9MSUF4QnNBUnFKQUFnQ2dzRUFFSUFDd1FBUVFBTG53TUJDWDlCNWdvaEFBSkFBMEFnQUMwQUFDSUJSUTBCSUFGQlBVWU5BU0FBUVFGcUlnQkJBM0VOQUFzQ1FBSkFRWUNDaEFnZ0FDZ0NBQ0lDYXlBQ2NrR0FnWUtFZUhGQmdJR0NoSGhIRFFBRFFFR0Fnb1FJSUFKQnZmcjA2UU56SWdGcklBRnlRWUNCZ29SNGNVR0FnWUtFZUVjTkFTQUFLQUlFSVFJZ0FFRUVhaUlCSVFBZ0FrR0Fnb1FJSUFKcmNrR0FnWUtFZUhGQmdJR0NoSGhHRFFBTERBRUxJQUFoQVFzRFFDQUJJZ0F0QUFBaUFrVU5BU0FBUVFGcUlRRWdBa0U5UncwQUN3c2dBQ0lCUWVZS1JnUkFRUUFQQ3dKQUlBRkI1Z3BySWdCQjVncHFMUUFBRFFCQnNNOEJLQUlBSWdSRkRRQWdCQ2dDQUNJRlJRMEFBMEFDUUFKL0lBVWhBa0htQ2lFR1FRQWdBQ0lCUlEwQUdrSG1DaTBBQUNJREJIOENRQU5BSUFNZ0FpMEFBQ0lIUncwQklBZEZEUUVnQVVFQmF5SUJSUTBCSUFKQkFXb2hBaUFHTFFBQklRTWdCa0VCYWlFR0lBTU5BQXRCQUNFREN5QURCVUVBQ3lBQ0xRQUFhd3RGQkVBZ0FDQUZhaUlCTFFBQVFUMUdEUUVMSUFRb0FnUWhCU0FFUVFScUlRUWdCUTBCREFJTEN5QUJRUUZxSVFnTElBZ0xDUUFnQUNnQ1BCQU5DODRDQVFoL0l3QkJJR3NpQXlRQUlBTWdBQ2dDSENJRU5nSVFJQUFvQWhRaEJTQURJQUkyQWh3Z0F5QUJOZ0lZSUFNZ0JTQUVheUlCTmdJVUlBRWdBbW9oQlVFQ0lRWWdBMEVRYWlFQkFuOERRQUpBQWtBQ1FDQUFLQUk4SUFFZ0JpQURRUXhxRUFFaUJBUi9RWlRIQVNBRU5nSUFRWDhGUVFBTFJRUkFJQVVnQXlnQ0RDSUhSZzBCSUFkQkFFNE5BZ3dEQ3lBRlFYOUhEUUlMSUFBZ0FDZ0NMQ0lCTmdJY0lBQWdBVFlDRkNBQUlBRWdBQ2dDTUdvMkFoQWdBZ3dEQ3lBQklBY2dBU2dDQkNJSVN5SUpRUU4wYWlJRUlBY2dDRUVBSUFrYmF5SUlJQVFvQWdCcU5nSUFJQUZCREVFRUlBa2JhaUlCSUFFb0FnQWdDR3MyQWdBZ0JTQUhheUVGSUFZZ0NXc2hCaUFFSVFFTUFRc0xJQUJCQURZQ0hDQUFRZ0EzQXhBZ0FDQUFLQUlBUVNCeU5nSUFRUUFnQmtFQ1JnMEFHaUFDSUFFb0FnUnJDeUVLSUFOQklHb2tBQ0FLQzFZQkFuOGdBQ2dDUENFRUl3QkJFR3NpQUNRQUlBUWdBYWNnQVVJZ2lLY2dBa0gvQVhFZ0FFRUlhaEFKSWdJRWYwR1V4d0VnQWpZQ0FFRi9CVUVBQ3lFQ0lBQXBBd2doQVNBQVFSQnFKQUJDZnlBQklBSWJDd1lBSUFBUUFBc0dBQ0FBRUFNTDhuNEZBbncyZndoN0EzNEdmU01BUWVEQUFHc2lHQ1FBSUJoQkFEWUNJRUVDSVF3Q1FBSkFJQUFvQWdBaUIwR05sSnpVQUVZTkFDQUhRZitmL1k4RlJ3UkFBa0FnQjBHQWdJRGdBRWNOQUNBQUtBSUVRZXFnZ1lFQ1J3MEFJQUFvQWdoQmpaU2MxQUJHRFFJTFFjMElFQUJCQVNFTURBSUxRUUFoREFzQ2YwRUFRUUZCNEFBUUV5SUhSUTBBR2lBSFFRRTJBa3dDUUFKQUFrQUNRQ0FNRGdNQUF3RURDeUFIUWNNQU5nSllJQWRCeEFBMkFsUWdCMEhGQURZQ1VDQUhRY1lBTmdJUUlBZEJ4d0EyQWdRZ0IwSElBRFlDSENBSFFja0FOZ0lZSUFkQnlnQTJBaFFnQjBITEFEWUNBQ0FIUWN3QU5nSmNJQWRCelFBMkFpd2dCMEhPQURZQ0tDQUhRYzhBTmdJa0lBZEIwQUEyQWlBZ0IwSFJBRFlDRENBSFFkSUFOZ0lJSUFjUVRTSUlOZ0l3SUFnTkFRd0NDeUFIUWRNQU5nSllJQWRCMUFBMkFsUWdCMEhWQURZQ1VDQUhRZFlBTmdJUUlBZEIxd0EyQWdRZ0IwSFlBRFlDWENBSFFka0FOZ0lzSUFkQjJnQTJBaWdnQjBIYkFEWUNKQ0FIUWR3QU5nSWdJQWRCM1FBMkFod2dCMEhlQURZQ0dDQUhRZDhBTmdJVUlBZEI0QUEyQWd3Z0IwSGhBRFlDQ0NBSFFlSUFOZ0lBSUFjQ2YwRUJRWWdCRUJNaUNBUkFJQWdRVFNJT05nSUFBa0FnRGtVTkFDQUkvUXdBQUFBQUFBQUFBQUFBQUFBQUFBQUEvUXNDYkNBSVFRQTZBSHdnQ0JBeklnNDJBZ1FnRGtVTkFDQUlFRE1pRGpZQ0NDQU9SUTBBSUFnTUFnc2dDQkJ3QzBFQUN5SUlOZ0l3SUFoRkRRRUxJQWRCQVRZQ1NDQUhRUUUyQWtBZ0IwRUFOZ0k4SUFkQ0FEY0NOQ0FIUVFFMkFrUWdCd3dCQ3lBSEVCQkJBQXNpQ0FSQUlBaEJBRFlDUENBSVFlTUFOZ0pJQ3lBSUJFQWdDRUVBTmdJNElBaEI1QUEyQWtRTElBZ0VRQ0FJUVFBMkFqUWdDRUhsQURZQ1FBc2dHRUVrYWlJSEJFQWdCMEVBUWJqQUFCQVZJZ2RCQURZQ3VFQWdCMEovTndLSVFBc2dBd1JBSUJnZ0dDZ0MzRUJCQVhJMkF0eEFDeUFZSUFFMkFod2dHQ0FBTmdJWUlCZ2dBRFlDRkVFQklReEJBQ0VCQWtBZ0dFRVVhaUlIUlEwQVFRRkJ5QUFRRXlJQUJIOENmeUFBUVlDQXdBQTJBa0FnQUVHQWdNQUFFQlFpRGpZQ0lDQU9SUVJBSUFBUUVFRUFEQUVMSUFBZ0RqWUNKQ0FBUVFJMkFod2dBRUVETmdJWUlBQkJCRFlDRkNBQVFRVTJBaEFnQUVFR05nSXNJQUJCQ0RZQ0tDQUFJQUFvQWtSQkFuSTJBa1FnQUFzRlFRQUxJZ0JGRFFBZ0FBUkFJQUJCQURZQ0JDQUFJQWMyQWdBTElBYzFBZ2doUlNBQUJFQWdBQ0JGTndNSUN3SkFJQUJGRFFBZ0FDMEFSRUVDY1VVTkFDQUFRVDgyQWhBTElBQUVRQ0FBUWNFQU5nSVlDeUFBQkVBZ0FFSENBRFlDSEFzZ0FDRUJDeUFCSVFBQ2Z5QVlRU1JxSVFFQ1FDQUlSUTBBSUFGRkRRQWdDQ2dDVEVVRVFDQUlRVFJxUVFGQnRNa0FRUUFRRDBFQURBSUxJQWdvQWpBZ0FTQUlLQUlZRVFNQVFRRWhDd3NnQ3d0RkJFQkIzQWdRQUNBQUVEUWdDQkExREFFTEFuOGdHRUVnYWlFQlFRQWhCd0pBSUFCRkRRQWdDRVVOQUNBSUtBSk1SUVJBSUFoQk5HcEJBVUdGeWdCQkFCQVBRUUFNQWdzZ0FDQUlLQUl3SUFFZ0NFRTBhaUFJS0FJQUVRRUFJUWNMSUFjTFJRUkFRZmdJRUFBZ0FCQTBJQWdRTlNBWUtBSWdFQ0VNQVFzZ0dDZ0NJQ0VCUVFBaEJ3SkFJQWhGRFFBZ0FFVU5BQ0FJS0FKTVJRMEFJQWdvQWpBZ0FDQUJJQWhCTkdvZ0NDZ0NCQkVCQUNFSEN3SkFJQWNFUUVFQUlRY0NRQ0FJUlEwQUlBQkZEUUFnQ0NnQ1RFVU5BQ0FJS0FJd0lBQWdDRUUwYWlBSUtBSVFFUUFBSVFjTElBY05BUXRCL3drUUFDQUlFRFVnQUJBMElCZ29BaUFRSVF3QkN5QUFFRFFnQ0JBMUlCZ29BaUFpRFNnQ0hDSUFCRUFnQUJBUUlCZ29BaUFpRFVJQU53SWNDeUFOS0FJUUlTRUNRQUpBSUFKRkJFQUNRQ0FFUlEwQUlDRkJCRWNOQUVFQklSbEJCQ0VoREFNTEFrQUNRQ0FOS0FJVUlnRkJBMFlOQUNBaFFRTkhEUUFnRFNnQ0dDSUFLQUlBSUFBb0FnUkhEUUVnQUNnQ05FRUJSZzBCSUExQkF6WUNGQXdEQ3lBaFFRSkxEUUFnRFVFQ05nSVVEQU1MQWtBQ1FDQUJRUU5yRGdNREFRQUVDeU1BUVJCcklnNGtBQUpBQWtBQ1FDQU5LQUlRUVFSSkRRQWdEU2dDR0NJQUtBSUFJZ0VnQUNnQ05FY05BQ0FCSUFBb0FtaEhEUUFnQVNBQUtBS2NBVWNOQUNBQUtBSUVJZ0VnQUNnQ09FY05BQ0FCSUFBb0FteEhEUUFnQVNBQUtBS2dBVVlOQVFzZ0RrR0hDRFlDQkNBT1FiZ0tOZ0lBUWVqRUFVSHRQU0FPRUJZTUFRc0NRQ0FBS0FJTUlBQW9BZ2hzSWdoRkJFQWdBQ2dDeUFFaEFRd0JDME1BQUlBL1FYOGdBQ2dDdEFGMFFYOXpzNVVoU0VNQUFJQS9RWDhnQUNnQ2dBRjBRWDl6czVVaFNrTUFBSUEvUVg4Z0FDZ0NUSFJCZjNPemxTRkxRd0FBZ0Q5QmZ5QUFLQUlZZEVGL2M3T1ZJVWtnQUNnQ3lBRWhBU0FBS0FLVUFTRUNJQUFvQW1BaENpQUFLQUlzSVFkQkFDRUFBa0FnQ0VFSVNRMEFJQWNnQ2lBSVFRSjBJZ3RxSWc5SklBb2dCeUFMYWlJWFNYRU5BQ0FDSUJkSklBY2dBaUFMYWlJSlNYRU5BQ0FCSUJkSklBY2dBU0FMYWlJTFNYRU5BQ0FDSUE5SklBa2dDa3R4RFFBZ0FTQVBTU0FLSUF0SmNRMEFJQUVnQ1VrZ0FpQUxTWEVOQUNBSVFYeHhJUUFnU1AwVElUMGdTdjBUSVQ0Z1MvMFRJVU1nU2YwVElVQkJBQ0VMQTBBZ0FpQUxRUUowSWc5cUloZjlBQUlBSVVFZ0NpQVBhaUlKL1FBQ0FDRkNJQWNnRDJvaUVQME1BQUNBUHdBQWdEOEFBSUEvQUFDQVB5QkFJQkQ5QUFJQS9mb0IvZVlCL2VVQi9Rd0FBSDlEQUFCL1F3QUFmME1BQUg5RC9lWUIvUXdBQUlBL0FBQ0FQd0FBZ0Q4QUFJQS9JRDBnQVNBUGF2MEFBZ0Q5K2dIOTVnSDk1UUVpUC8zbUFmMzRBZjBMQWdBZ0NmME1BQUNBUHdBQWdEOEFBSUEvQUFDQVB5QkRJRUw5K2dIOTVnSDk1UUg5REFBQWYwTUFBSDlEQUFCL1F3QUFmMFA5NWdFZ1AvM21BZjM0QWYwTEFnQWdGLzBNQUFDQVB3QUFnRDhBQUlBL0FBQ0FQeUErSUVIOStnSDk1Z0g5NVFIOURBQUFmME1BQUg5REFBQi9Rd0FBZjBQOTVnRWdQLzNtQWYzNEFmMExBZ0FnQzBFRWFpSUxJQUJIRFFBTElBQWdDRVlOQVFzRFFBSi9Rd0FBZ0Q4Z1NTQUhJQUJCQW5RaUMyb2lEeWdDQUxLVWswTUFBSDlEbEVNQUFJQS9JRWdnQVNBTGFpZ0NBTEtVa3lKTWxDSk5pME1BQUFCUFhRUkFJRTJvREFFTFFZQ0FnSUI0Q3lFWElBSWdDMm9pQ1NnQ0FDRVFJQW9nQzJvaUN5Z0NBQ0VNSUE4Z0Z6WUNBQ0FMQW45REFBQ0FQeUJMSUF5eWxKTkRBQUIvUTVRZ1RKUWlUWXREQUFBQVQxMEVRQ0JOcUF3QkMwR0FnSUNBZUFzMkFnQWdDUUovUXdBQWdEOGdTaUFRc3BTVFF3QUFmME9VSUV5VUlreUxRd0FBQUU5ZEJFQWdUS2dNQVF0QmdJQ0FnSGdMTmdJQUlBQkJBV29pQUNBSVJ3MEFDd3NnQVJBUUlBMG9BaGdpQUVFSU5nS0FBU0FBUVFnMkFrd2dBRUVJTmdJWUlBQkJBRFlDeUFFZ0RVRUJOZ0lVSUEwZ0RTZ0NFRUVCYXlJQU5nSVFJQUJCQkVrTkFFRURJUUFEUUNBTktBSVlJQUJCTkd4cUlnRWdBU2dDWkRZQ01DQUJJQUg5QUFKVS9Rc0NJQ0FCSUFIOUFBSkUvUXNDRUNBQklBSDlBQUkwL1FzQ0FDQUFRUUZxSWdBZ0RTZ0NFRWtOQUFzTElBNUJFR29rQUF3REN5TUFRUkJySWdza0FBSkFBa0FDUUNBTktBSVFRUU5KRFFBZ0RTZ0NHQ0lBS0FJQUlnRWdBQ2dDTkVjTkFDQUJJQUFvQW1oSERRQWdBQ2dDQkNJQklBQW9BamhIRFFBZ0FTQUFLQUpzUmcwQkN5QUxRY1VJTmdJRUlBdEJ1QW8yQWdCQjZNUUJRWmMrSUFzUUZnd0JDd0pBSUFBb0Fnd2dBQ2dDQ0d3aUFrVU5BRUYvSUFBb0FoZ2lDblJCZjNNaEFVRUFRUUVnQ2tFQmEzUWlDaUFBS0FLSUFSc2hEMEVBSUFvZ0FDZ0NWQnNoRnlBQUtBS1VBU0VLSUFBb0FtQWhCeUFBS0FJc0lRNUJBQ0VBQWtBZ0FrRUVTUTBBSUE0Z0J5QUNRUUowSWdocUlnbEpJQWNnQ0NBT2FpSVFTWEVOQUNBS0lCQkpJQTRnQ0NBS2FpSUlTWEVOQUNBSElBaEpJQWtnQ2t0eERRQWdBa0Y4Y1NFQUlBSDlFU0UvSUEvOUVTRkFJQmY5RVNGQlFRQWhDQU5BSUE0Z0NFRUNkQ0lKYWlJUUlEOGdDU0FLYWlJTS9RQUNBQ0JBL2JFQi9mb0JJajM5REdsMHN6OXBkTE0vYVhTelAybDBzei85NWdFZ0J5QUphaUlKL1FBQ0FDQkIvYkVCL2ZvQklqNzlETE5aR3JpeldScTRzMWthdUxOWkdyajk1Z0VnRVAwQUFnRDkrZ0VpUS8za0FmM2tBZjBNQUFBQVB3QUFBRDhBQUFBL0FBQUFQLzNrQWYzNEFTSkMvUXdBQUFBQUFBQUFBQUFBQUFBQUFBQUEvYmdCSUQ4Z1F2MDUvVkw5Q3dJQUlBa2dQeUE5L1F3WjBEYS9HZEEydnhuUU5yOFowRGEvL2VZQklFUDlETlVKZ0QvVkNZQS8xUW1BUDlVSmdELzk1Z0VnUHYwTUp6R3d2aWN4c0w0bk1iQytKekd3dnYzbUFmM2tBZjNrQWYwTUFBQUFQd0FBQUQ4QUFBQS9BQUFBUC8za0FmMzRBU0pDL1F3QUFBQUFBQUFBQUFBQUFBQUFBQUFBL2JnQklEOGdRdjA1L1ZMOUN3SUFJQXdnUHlBOS9ReTlOd2EzdlRjR3Q3MDNCcmU5TndhMy9lWUJJRVA5REdiMGZ6OW05SDgvWnZSL1AyYjBmei85NWdFZ1B2ME1OZExpUHpYUzRqODEwdUkvTmRMaVAvM21BZjNrQWYza0FmME1BQUFBUHdBQUFEOEFBQUEvQUFBQVAvM2tBZjM0QVNJOS9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQS9iZ0JJRDhnUGYwNS9WTDlDd0lBSUFoQkJHb2lDQ0FBUncwQUN5QUFJQUpHRFFFTEEwQUNmeUFLSUFCQkFuUWlDR29pQ1NnQ0FDQVBhN0lpU0VOcGRMTS9sQ0FISUFocUloQW9BZ0FnRjJ1eUlrcERzMWthdUpRZ0NDQU9haUlNS0FJQXNpSkxrcEpEQUFBQVA1SWlTWXREQUFBQVQxMEVRQ0JKcUF3QkMwR0FnSUNBZUFzaENDQU1JQUVnQ0VFQUlBaEJBRW9iSUFFZ0NFZ2JOZ0lBSUJBZ0FRSi9JRWhER2RBMnY1UWdTMFBWQ1lBL2xDQktReWN4c0w2VWtwSkRBQUFBUDVJaVNZdERBQUFBVDEwRVFDQkpxQXdCQzBHQWdJQ0FlQXNpQ0VFQUlBaEJBRW9iSUFFZ0NFZ2JOZ0lBSUFrZ0FRSi9JRWhEdlRjR3Q1UWdTME5tOUg4L2xDQktRelhTNGorVWtwSkRBQUFBUDVJaVNJdERBQUFBVDEwRVFDQklxQXdCQzBHQWdJQ0FlQXNpQ0VFQUlBaEJBRW9iSUFFZ0NFZ2JOZ0lBSUFCQkFXb2lBQ0FDUncwQUN3c2dEVUVCTmdJVUN5QUxRUkJxSkFBTUFnc2dJU0FDSUFJZ0lVc2JJU0ZCQVNFWkRBRUxBa0FDUUFKL0FrQUNRQ0FOS0FJWUlnRW9BZ0JCQVVjTkFBSkFBa0FnQVNnQ05FRUJhdzRDQVFBQ0N5QUJLQUpvUVFKSERRRUNRQ0FCS0FJRVFRRkhEUUFnQVNnQ09FRUNSdzBBSUFFb0FteEJBa2NOQUVFQUlRc2dEU0lYS0FJWUlnQW9BaGdoQVNBQUtBS1VBU0VSSUFBb0FtQWhDaUFBS0FJc0lSQWdBQ2dDQ0NJTklBQW9BZ3dpQW14QkFuUWlBQkFZSVFjZ0FCQVlJUWdnQUJBWUlRNENRQUpBQWtBQ1FBSkFBa0FnQjBVTkFDQUlSUTBBSUE1RkRRQkJmeUFCZEVGL2N5RUpRUUVnQVVFQmEzUWhEQ0FDSUJjb0FnUkJBWEVpQUdzaEhpQVhLQUlBUVFGeElSc2dBRVVOQXlBTlJRMERBbjlCQUNBTWE3SzdJZ1ZFYXJ4MGt4Z0UxaitpSUFWRURBSXJoeGJaNWoraW9DSUdtVVFBQUFBQUFBRGdRV01FUUNBR3Fnd0JDMEdBZ0lDQWVBc2hGQUovSUFWRUp6RUlyQnhhL0QraUlnYVpSQUFBQUFBQUFPQkJZd1JBSUFhcURBRUxRWUNBZ0lCNEN5RWFJQTFCQ0VraE9BSi9JQVZFTzk5UGpaZHU5aitpSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0Q3lFZElEZ05BU0FJSUFkclFSQkpEUUVnRGlBSGEwRVFTUTBCSUFjZ0VHdEJFRWtOQVNBT0lBaHJRUkJKRFFFZ0NDQVFhMEVRU1EwQklBNGdFR3RCRUVrTkFTQU9JQTFCZkhFaUMwRUNkQ0lDYWlFQklBSWdCMm9oQUNBYS9SRWhQaUFVL1JFaFF5QUovUkVoUHlBZC9SRWhRQU5BSUFjZ0QwRUNkQ0lUYXYwTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNBUUlCTnEvUUFDQUNJOUlFRDlyZ0VpUVNBLy9iWUJJRUg5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUQ5T2YxUy9Rc0NBQ0FJSUJOcS9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUlEMGdRLzJ4QVNKQklELzl0Z0VnUWYwTUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAwNS9WTDlDd0lBSUE0Z0UycjlEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWdQU0ErL2E0QklqMGdQLzIyQVNBOS9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQS9UbjlVdjBMQWdBZ0QwRUVhaUlQSUF0SERRQUxJQUlnRUdvaEVDQUNJQWhxSVFJZ0N5QU5SZzBFREFJTElBY1FFQ0FJRUJBZ0RoQVFEQVFMSUFjaEFDQUlJUUlnRGlFQkN3TkFJQUFnRUNnQ0FDSVBJQjFxSWhNZ0NTQUpJQk5LRzBFQUlCTkJBRTRiTmdJQUlBSWdEeUFVYXlJVElBa2dDU0FUU2h0QkFDQVRRUUJPR3pZQ0FDQUJJQThnR21vaUR5QUpJQWtnRDBvYlFRQWdEMEVBVGhzMkFnQWdBVUVFYWlFQklBSkJCR29oQWlBQVFRUnFJUUFnRUVFRWFpRVFJQXRCQVdvaUN5QU5SdzBBQ3d3QkN5QU9JUUVnQ0NFQ0lBY2hBQXNnRFNBYmF5RWFBa0FnSGtGK2NTSWRCSDhDZjBFQUlBeHJzcnNpQlVScXZIU1RHQVRXUDZJZ0JVUU1BaXVIRnRubVA2S2dJZ2FaUkFBQUFBQUFBT0JCWXdSQUlBYXFEQUVMUVlDQWdJQjRDeUVpSUJwQmZuRWlIRUVCYXlFNUFuOGdCVVFuTVFpc0hGcjhQNklpQnBsRUFBQUFBQUFBNEVGakJFQWdCcW9NQVF0QmdJQ0FnSGdMSVNNZ09VRitjU0U2QW44Z0JVUTczMCtObDI3MlA2SWlCWmxFQUFBQUFBQUE0RUZqQkVBZ0Jhb01BUXRCZ0lDQWdIZ0xJU1FnSFVFQmF5RWxJRHBCQW1vaEppQU5RUUowSVEwRFFDQUJJQTFxSVE4Z0FpQU5haUVUSUFBZ0RXb2hDeUFOSUJCcUlSUWdHd1JBSUFBZ0VDZ0NBQ0lWSUNScUloSWdDU0FKSUJKS0cwRUFJQkpCQUU0Yk5nSUFJQUlnRlNBaWF5SVNJQWtnQ1NBU1NodEJBQ0FTUVFCT0d6WUNBQ0FCSUJVZ0kyb2lGU0FKSUFrZ0ZVb2JRUUFnRlVFQVRoczJBZ0FnQ2lnQ0FDRVdJQXNDZnlBUktBSUFJQXhyc3JzaUJVUTczMCtObDI3MlA2SWlCcGxFQUFBQUFBQUE0RUZqQkVBZ0Jxb01BUXRCZ0lDQWdIZ0xJQlFvQWdBaUZXb2lFaUFKSUFrZ0Vrb2JRUUFnRWtFQVRoczJBZ0FnRXlBVkFuOGdGaUFNYTdLN0lnWkVhcngwa3hnRTFqK2lJQVZFREFJcmh4Ylo1aitpb0NJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUF0ckloSWdDU0FKSUJKS0cwRUFJQkpCQUU0Yk5nSUFJQThDZnlBR1JDY3hDS3djV3Z3L29pSUZtVVFBQUFBQUFBRGdRV01FUUNBRnFnd0JDMEdBZ0lDQWVBc2dGV29pRlNBSklBa2dGVW9iUVFBZ0ZVRUFUaHMyQWdBZ0QwRUVhaUVQSUJOQkJHb2hFeUFMUVFScUlRc2dGRUVFYWlFVUlBSkJCR29oQWlBUVFRUnFJUkFnQVVFRWFpRUJJQUJCQkdvaEFBdEJBQ0VWSUJ3RWZ3TkFJQW9vQWdBaEh5QUFBbjhnRVNnQ0FDQU1hN0s3SWdWRU85OVBqWmR1OWoraUlnYVpSQUFBQUFBQUFPQkJZd1JBSUFhcURBRUxRWUNBZ0lCNEN5QVFLQUlBSWhKcUloWWdDU0FKSUJaS0cwRUFJQlpCQUU0Yk5nSUFJQUlnRWdKL0lCOGdER3V5dXlJR1JHcThkSk1ZQk5ZL29pQUZSQXdDSzRjVzJlWS9vcUFpQlpsRUFBQUFBQUFBNEVGakJFQWdCYW9NQVF0QmdJQ0FnSGdMYXlJV0lBa2dDU0FXU2h0QkFDQVdRUUJPR3pZQ0FDQUJBbjhnQmtRbk1RaXNIRnI4UDZJaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTElCSnFJaElnQ1NBSklCSktHMEVBSUJKQkFFNGJOZ0lBSUFvb0FnQWhIeUFBQW44Z0VTZ0NBQ0FNYTdLN0lnVkVPOTlQalpkdTlqK2lJZ2FaUkFBQUFBQUFBT0JCWXdSQUlBYXFEQUVMUVlDQWdJQjRDeUFRS0FJRUloSnFJaFlnQ1NBSklCWktHMEVBSUJaQkFFNGJOZ0lFSUFJZ0VnSi9JQjhnREd1eXV5SUdSR3E4ZEpNWUJOWS9vaUFGUkF3Q0s0Y1cyZVkvb3FBaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTGF5SVdJQWtnQ1NBV1NodEJBQ0FXUVFCT0d6WUNCQ0FCQW44Z0JrUW5NUWlzSEZyOFA2SWlCWmxFQUFBQUFBQUE0RUZqQkVBZ0Jhb01BUXRCZ0lDQWdIZ0xJQkpxSWhJZ0NTQUpJQkpLRzBFQUlCSkJBRTRiTmdJRUlBb29BZ0FoSHlBTEFuOGdFU2dDQUNBTWE3SzdJZ1ZFTzk5UGpaZHU5aitpSWdhWlJBQUFBQUFBQU9CQll3UkFJQWFxREFFTFFZQ0FnSUI0Q3lBVUtBSUFJaEpxSWhZZ0NTQUpJQlpLRzBFQUlCWkJBRTRiTmdJQUlCTWdFZ0ovSUI4Z0RHdXl1eUlHUkdxOGRKTVlCTlkvb2lBRlJBd0NLNGNXMmVZL29xQWlCWmxFQUFBQUFBQUE0RUZqQkVBZ0Jhb01BUXRCZ0lDQWdIZ0xheUlXSUFrZ0NTQVdTaHRCQUNBV1FRQk9HellDQUNBUEFuOGdCa1FuTVFpc0hGcjhQNklpQlpsRUFBQUFBQUFBNEVGakJFQWdCYW9NQVF0QmdJQ0FnSGdMSUJKcUloSWdDU0FKSUJKS0cwRUFJQkpCQUU0Yk5nSUFJQW9vQWdBaEh5QUxBbjhnRVNnQ0FDQU1hN0s3SWdWRU85OVBqWmR1OWoraUlnYVpSQUFBQUFBQUFPQkJZd1JBSUFhcURBRUxRWUNBZ0lCNEN5QVVLQUlFSWhKcUloWWdDU0FKSUJaS0cwRUFJQlpCQUU0Yk5nSUVJQk1nRWdKL0lCOGdER3V5dXlJR1JHcThkSk1ZQk5ZL29pQUZSQXdDSzRjVzJlWS9vcUFpQlpsRUFBQUFBQUFBNEVGakJFQWdCYW9NQVF0QmdJQ0FnSGdMYXlJV0lBa2dDU0FXU2h0QkFDQVdRUUJPR3pZQ0JDQVBBbjhnQmtRbk1RaXNIRnI4UDZJaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTElCSnFJaElnQ1NBSklCSktHMEVBSUJKQkFFNGJOZ0lFSUJGQkJHb2hFU0FLUVFScUlRb2dEMEVJYWlFUElCTkJDR29oRXlBTFFRaHFJUXNnRkVFSWFpRVVJQUZCQ0dvaEFTQUNRUWhxSVFJZ0FFRUlhaUVBSUJCQkNHb2hFQ0FWUVFKcUloVWdIRWtOQUFzZ0pnVkJBQXNnR2trRWZ5QUtLQUlBSVJZZ0FBSi9JQkVvQWdBZ0RHdXl1eUlGUkR2ZlQ0Mlhidlkvb2lJR21VUUFBQUFBQUFEZ1FXTUVRQ0FHcWd3QkMwR0FnSUNBZUFzZ0VDZ0NBQ0lWYWlJU0lBa2dDU0FTU2h0QkFDQVNRUUJPR3pZQ0FDQUNJQlVDZnlBV0lBeHJzcnNpQmtScXZIU1RHQVRXUDZJZ0JVUU1BaXVIRnRubVA2S2dJZ1daUkFBQUFBQUFBT0JCWXdSQUlBV3FEQUVMUVlDQWdJQjRDMnNpRWlBSklBa2dFa29iUVFBZ0VrRUFUaHMyQWdBZ0FRSi9JQVpFSnpFSXJCeGEvRCtpSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0Q3lBVmFpSVZJQWtnQ1NBVlNodEJBQ0FWUVFCT0d6WUNBQ0FLS0FJQUlSVWdDd0ovSUJFb0FnQWdER3V5dXlJRlJEdmZUNDJYYnZZL29pSUdtVVFBQUFBQUFBRGdRV01FUUNBR3Fnd0JDMEdBZ0lDQWVBc2dGQ2dDQUNJTGFpSVVJQWtnQ1NBVVNodEJBQ0FVUVFCT0d6WUNBQ0FUSUFzQ2Z5QVZJQXhyc3JzaUJrUnF2SFNUR0FUV1A2SWdCVVFNQWl1SEZ0bm1QNktnSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0QzJzaUV5QUpJQWtnRTBvYlFRQWdFMEVBVGhzMkFnQWdEd0ovSUFaRUp6RUlyQnhhL0QraUlnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEN5QUxhaUlMSUFrZ0NTQUxTaHRCQUNBTFFRQk9HellDQUNBUlFRUnFJUkVnQ2tFRWFpRUtJQUpCQkdvaEFpQVFRUVJxSVJBZ0FFRUVhaUVBSUFGQkJHb0ZJQUVMSUExcUlRRWdBaUFOYWlFQ0lBQWdEV29oQUNBTklCQnFJUkFnSUVFQ2FpSWdJQjFKRFFBTElDVkJmbkZCQW1vRlFRQUxJQjVQRFFBZ0d3UkFJQUFDZjBFQUlBeHJzcnNpQlVRNzMwK05sMjcyUDZJaUJwbEVBQUFBQUFBQTRFRmpCRUFnQnFvTUFRdEJnSUNBZ0hnTElCQW9BZ0FpQzJvaURTQUpJQWtnRFVvYlFRQWdEVUVBVGhzMkFnQWdBaUFMQW44Z0JVUnF2SFNUR0FUV1A2SWdCVVFNQWl1SEZ0bm1QNktnSWdhWlJBQUFBQUFBQU9CQll3UkFJQWFxREFFTFFZQ0FnSUI0QzJzaURTQUpJQWtnRFVvYlFRQWdEVUVBVGhzMkFnQWdBUUovSUFWRUp6RUlyQnhhL0QraUlnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEN5QUxhaUlMSUFrZ0NTQUxTaHRCQUNBTFFRQk9HellDQUNBQ1FRUnFJUUlnRUVFRWFpRVFJQUZCQkdvaEFTQUFRUVJxSVFBTElCcEJmbkVpSUFSL0lDQkJBV3NpQzBGK2NTRTdBa0FDZjBFQUlDQkJEMGtOQUJwQkFDQUFJQUlnQzBFQmRpSVVRUU4wUVFocUloTnFJZ3RKSUFJZ0FDQVRhaUlOU1hFTkFCcEJBQ0FCSUExSklBQWdBU0FUYWlJUFNYRU5BQnBCQUNBQUlCQWdFMm9pRTBrZ0RTQVFTM0VOQUJwQkFDQUtJQTFKSUFBZ0NpQVVRUUowUVFScUloNXFJaHRKY1EwQUdrRUFJQTBnRVVzZ0FDQVJJQjVxSWcxSmNRMEFHa0VBSUFJZ0Qwa2dBU0FMU1hFTkFCcEJBQ0FDSUJOSklBc2dFRXR4RFFBYVFRQWdDaUFMU1NBQ0lCdEpjUTBBR2tFQUlBSWdEVWtnQ3lBUlMzRU5BQnBCQUNBQklCTkpJQThnRUV0eERRQWFRUUFnQ2lBUFNTQUJJQnRKY1EwQUdrRUFJQUVnRFVrZ0R5QVJTM0VOQUJvZ0NpQVVRUUZxSWhaQi9QLy8vd2R4SWh0QkFuUWlJbW9oQ3lBQklCdEJBM1FpSG1vaERTQUFJQjVxSVE4Z0NmMFJJVDhnRFAwUklVTkJBQ0VUQTBBZ0VDQVRRUU4wSWhSQkdISWlIV29pSXlBUUlCUkJFSElpSEdvaUpDQVFJQlJCQ0hJaUZXb2lKU0FRSUJScUlpYjlDUUlBL1ZZQ0FBSDlWZ0lBQXYxV0FnQURJVDBDZnlBUklCTkJBblFpSDJyOUFBSUFJRVA5c1FIOStnRWlQdjFmSWtEOUREdmZUNDJYYnZZL085OVBqWmR1OWovOThnRWlRZjBoQVNJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUFzaEp5QUtJQjlxL1FBQ0FDRkNJQUFnRkdvaUgvME1BQUFBQUFBQUFBQUFBQUFBQUFBQUFDQTlBbjhnUWYwaEFDSUZtVVFBQUFBQUFBRGdRV01FUUNBRnFnd0JDMEdBZ0lDQWVBdjlFU0FuL1J3QkFuOGdQaUErL1EwSUNRb0xEQTBPRHdBQkFnTUFBUUlEL1Y4aVFmME1POTlQalpkdTlqODczMCtObDI3MlAvM3lBU0krL1NFQUlnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEMvMGNBZ0ovSUQ3OUlRRWlCWmxFQUFBQUFBQUE0RUZqQkVBZ0Jhb01BUXRCZ0lDQWdIZ0wvUndESWtUOXJnRWlQaUEvL2JZQklENzlEQUFBQUFBQUFBQUFBQUFBQUFBQUFBRDlPZjFTSWo3OVdnSUFBQ0FBSUJWcUlpY2dQdjFhQWdBQklBQWdIR29pS1NBKy9Wb0NBQUlnQUNBZGFpSXFJRDc5V2dJQUF3Si9JRUlnUS8yeEFmMzZBU0krL1Y4aVF2ME1hcngwa3hnRTFqOXF2SFNUR0FUV1AvM3lBU0JBL1F3TUFpdUhGdG5tUHd3Q0s0Y1cyZVkvL2ZJQi9mQUJJa0Q5SVFFaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTElTZ2dBaUFVYWlJci9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUlEMENmeUJBL1NFQUlnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEMvMFJJQ2o5SEFFQ2Z5QSsvUXdBQUFBQUFBQUFBQUFBQUFBQUFBQUEvUTBJQ1FvTERBME9Ed0FCQWdNQUFRSUQvVjhpUVAwTWFyeDBreGdFMWo5cXZIU1RHQVRXUC8zeUFTQkIvUXdNQWl1SEZ0bm1Qd3dDSzRjVzJlWS8vZklCL2ZBQklqNzlJUUFpQlpsRUFBQUFBQUFBNEVGakJFQWdCYW9NQVF0QmdJQ0FnSGdML1J3Q0FuOGdQdjBoQVNJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUF2OUhBTWlRZjJ4QVNJK0lELzl0Z0VnUHYwTUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAwNS9WSWlQdjFhQWdBQUlBSWdGV29pS0NBKy9Wb0NBQUVnQWlBY2FpSXNJRDc5V2dJQUFpQUNJQjFxSWkwZ1B2MWFBZ0FEQW44Z1F2ME1KekVJckJ4YS9EOG5NUWlzSEZyOFAvM3lBU0krL1NFQklnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEN5RXVJQUVnRkdvaUZQME1BQUFBQUFBQUFBQUFBQUFBQUFBQUFDQTlBbjhnUHYwaEFDSUZtVVFBQUFBQUFBRGdRV01FUUNBRnFnd0JDMEdBZ0lDQWVBdjlFU0F1L1J3QkFuOGdRUDBNSnpFSXJCeGEvRDhuTVFpc0hGcjhQLzN5QVNJOS9TRUFJZ1daUkFBQUFBQUFBT0JCWXdSQUlBV3FEQUVMUVlDQWdJQjRDLzBjQWdKL0lEMzlJUUVpQlpsRUFBQUFBQUFBNEVGakJFQWdCYW9NQVF0QmdJQ0FnSGdML1J3RElrRDlyZ0VpUFNBLy9iWUJJRDM5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUQ5T2YxU0lqMzlXZ0lBQUNBQklCVnFJaFVnUGYxYUFnQUJJQUVnSEdvaUhDQTkvVm9DQUFJZ0FTQWRhaUlkSUQzOVdnSUFBeUFmL1F3QUFBQUFBQUFBQUFBQUFBQUFBQUFBSUNOQkJHb2dKRUVFYWlBbFFRUnFJQ2I5Q1FJRS9WWUNBQUg5VmdJQUF2MVdBZ0FESWo0Z1JQMnVBU0k5SUQvOXRnRWdQZjBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBUDA1L1ZJaVBmMWFBZ1FBSUNjZ1BmMWFBZ1FCSUNrZ1BmMWFBZ1FDSUNvZ1BmMWFBZ1FESUN2OURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ1BpQkIvYkVCSWowZ1AvMjJBU0E5L1F3QUFBQUFBQUFBQUFBQUFBQUFBQUFBL1RuOVVpSTkvVm9DQkFBZ0tDQTkvVm9DQkFFZ0xDQTkvVm9DQkFJZ0xTQTkvVm9DQkFNZ0ZQME1BQUFBQUFBQUFBQUFBQUFBQUFBQUFDQStJRUQ5cmdFaVBTQS8vYllCSUQzOURBQUFBQUFBQUFBQUFBQUFBQUFBQUFEOU9mMVNJajM5V2dJRUFDQVZJRDM5V2dJRUFTQWNJRDM5V2dJRUFpQWRJRDM5V2dJRUF5QVRRUVJxSWhNZ0cwY05BQXNnRVNBaWFpRVJJQkFnSG1vaEVDQUNJQjVxSVFJZ0ZpQWJSZ1JBSUE4aEFDQU5JUUVnQ3lFS0RBSUxJQThoQUNBTklRRWdDeUVLSUJ0QkFYUUxJUXNEUUNBS0tBSUFJUk1nQUFKL0lCRW9BZ0FnREd1eXV5SUZSRHZmVDQyWGJ2WS9vaUlHbVVRQUFBQUFBQURnUVdNRVFDQUdxZ3dCQzBHQWdJQ0FlQXNnRUNnQ0FDSU5haUlQSUFrZ0NTQVBTaHRCQUNBUFFRQk9HellDQUNBQ0lBMENmeUFUSUF4cnNyc2lCa1JxdkhTVEdBVFdQNklnQlVRTUFpdUhGdG5tUDZLZ0lnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEMyc2lEeUFKSUFrZ0Qwb2JRUUFnRDBFQVRoczJBZ0FnQVFKL0lBWkVKekVJckJ4YS9EK2lJZ1daUkFBQUFBQUFBT0JCWXdSQUlBV3FEQUVMUVlDQWdJQjRDeUFOYWlJTklBa2dDU0FOU2h0QkFDQU5RUUJPR3pZQ0FDQUtLQUlBSVJNZ0FBSi9JQkVvQWdBZ0RHdXl1eUlGUkR2ZlQ0Mlhidlkvb2lJR21VUUFBQUFBQUFEZ1FXTUVRQ0FHcWd3QkMwR0FnSUNBZUFzZ0VDZ0NCQ0lOYWlJUElBa2dDU0FQU2h0QkFDQVBRUUJPR3pZQ0JDQUNJQTBDZnlBVElBeHJzcnNpQmtScXZIU1RHQVRXUDZJZ0JVUU1BaXVIRnRubVA2S2dJZ1daUkFBQUFBQUFBT0JCWXdSQUlBV3FEQUVMUVlDQWdJQjRDMnNpRHlBSklBa2dEMG9iUVFBZ0QwRUFUaHMyQWdRZ0FRSi9JQVpFSnpFSXJCeGEvRCtpSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0Q3lBTmFpSU5JQWtnQ1NBTlNodEJBQ0FOUVFCT0d6WUNCQ0FSUVFScUlSRWdDa0VFYWlFS0lBRkJDR29oQVNBQ1FRaHFJUUlnQUVFSWFpRUFJQkJCQ0dvaEVDQUxRUUpxSWdzZ0lFa05BQXNMSUR0QkFtb0ZRUUFMSUJwUERRQWdDaWdDQUNFTElBQUNmeUFSS0FJQUlBeHJzcnNpQlVRNzMwK05sMjcyUDZJaUJwbEVBQUFBQUFBQTRFRmpCRUFnQnFvTUFRdEJnSUNBZ0hnTElCQW9BZ0FpQUdvaUNpQUpJQWtnQ2tvYlFRQWdDa0VBVGhzMkFnQWdBaUFBQW44Z0N5QU1hN0s3SWdaRWFyeDBreGdFMWoraUlBVkVEQUlyaHhiWjVqK2lvQ0lGbVVRQUFBQUFBQURnUVdNRVFDQUZxZ3dCQzBHQWdJQ0FlQXRySWdJZ0NTQUNJQWxJRzBFQUlBSkJBRTRiTmdJQUlBRUNmeUFHUkNjeENLd2NXdncvb2lJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUFzZ0FHb2lBQ0FKSUFBZ0NVZ2JRUUFnQUVFQVRoczJBZ0FMSUJjb0FoZ29BaXdRRUNBWEtBSVlJZ0FnQnpZQ0xDQUFLQUpnRUJBZ0Z5Z0NHQ0lBSUFnMkFtQWdBQ2dDbEFFUUVDQVhLQUlZSWdBZ0RqWUNsQUVnQUNBQS9RQUNBQ0kvL1FzQ2FDQUFJRC85Q3dJMElCZEJBVFlDRkFzTUJ3c2dBU2dDQkVFQlJ3MEJJQUVvQWpoQkFVY05BU0FCS0FKc1FRRkhEUUVnQVNnQ0dDRUFJQUVvQXBRQklRSWdBU2dDWUNFSElBRW9BaXdoRENBQktBSUlJZ29nQVNnQ0RDSVdiRUVDZENJQkVCZ2hEeUFCRUJnaEZ5QUJFQmdoQ1NBUFJRMEZJQmRGRFFVZ0NVVU5CU0FXQkVBZ0NpQU5LQUlBUVFGeEloOXJJU0lDZjBFQVFRRWdBRUVCYTNRaUZHdXl1eUlGUkdxOGRKTVlCTlkvb2lBRlJBd0NLNGNXMmVZL29xQWlCcGxFQUFBQUFBQUE0RUZqQkVBZ0Jxb01BUXRCZ0lDQWdIZ0xJU2RCZnlBQWRDRThJQ0pCZm5FaUhVRUJheUlLUVFGMklnQkJBV29oSXdKL0lBVkVKekVJckJ4YS9EK2lJZ2FaUkFBQUFBQUFBT0JCWXdSQUlBYXFEQUVMUVlDQWdJQjRDeUVwSUFwQmZuRWhDaUFBUVFKMElRZ2dBRUVEZENFQUlDTkJmSEVoR3lBOFFYOXpJUkVDZnlBRlJEdmZUNDJYYnZZL29pSUZtVVFBQUFBQUFBRGdRV01FUUNBRnFnd0JDMEdBZ0lDQWVBc2hLaUFLUVFKcUlTUWdDRUVFYWlFbElBQkJDR29oSUNBYlFRSjBJU1lnRzBFRGRDRWVJQnRCQVhRaEVDQVIvUkVoUHlBVS9SRWhReUFkUVFkSklTZ2dEeUVLSUJjaEFDQUpJUTREUUNBZkJFQWdDaUFNS0FJQUlnRWdLbW9pQ0NBUklBZ2dFVWdiUVFBZ0NFRUFUaHMyQWdBZ0FDQUJJQ2RySWdnZ0VTQUlJQkZJRzBFQUlBaEJBRTRiTmdJQUlBNGdBU0FwYWlJQklCRWdBU0FSU0J0QkFDQUJRUUJPR3pZQ0FDQU9RUVJxSVE0Z0NrRUVhaUVLSUF4QkJHb2hEQ0FBUVFScUlRQUxBbjhDZnlBZFJRUkFJQWNoQVNBT0lRc2dDaUVJUVFBTUFRdEJBQ0VaQWtBQ1FDQW9EUUFnQ2lBQUlDQnFJZ0ZKSUFBZ0NpQWdhaUlJU1hFTkFDQUtJQTRnSUdvaUMwa2dDQ0FPUzNFTkFDQUtJQXdnSUdvaUdra2dDQ0FNUzNFTkFDQUhJQWhKSUFvZ0J5QWxhaUljU1hFTkFDQUNJQWhKSUFvZ0FpQWxhaUlJU1hFTkFDQUFJQXRKSUFFZ0RrdHhEUUFnQUNBYVNTQUJJQXhMY1EwQUlBQWdIRWtnQVNBSFMzRU5BQ0FBSUFoSklBRWdBa3R4RFFBZ0RpQWFTU0FMSUF4TGNRMEFJQTRnSEVrZ0J5QUxTWEVOQUNBQ0lBdEpJQWdnRGt0eERRQWdCeUFtYWlFQklBNGdIbW9oQ3lBS0lCNXFJUWdEUUNBTUlCbEJBM1FpR2tFWWNpSWNhaUlySUF3Z0drRVFjaUlWYWlJc0lBd2dHa0VJY2lJU2FpSXRJQXdnR21vaUx2MEpBZ0Q5VmdJQUFmMVdBZ0FDL1ZZQ0FBTWhQUUovSUFJZ0dVRUNkQ0l2YXYwQUFnQWdRLzJ4QWYzNkFTSSsvVjhpUVAwTU85OVBqWmR1OWo4NzMwK05sMjcyUC8zeUFTSkIvU0VCSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0Q3lFd0lBY2dMMnI5QUFJQUlVSWdDaUFhYWlJdi9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUlEMENmeUJCL1NFQUlnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEMvMFJJREQ5SEFFQ2Z5QStJRDc5RFFnSkNnc01EUTRQQUFFQ0F3QUJBZ1A5WHlKQi9RdzczMCtObDI3MlB6dmZUNDJYYnZZLy9mSUJJajc5SVFBaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTC9Sd0NBbjhnUHYwaEFTSUZtVVFBQUFBQUFBRGdRV01FUUNBRnFnd0JDMEdBZ0lDQWVBdjlIQU1pUlAydUFTSStJRC85dGdFZ1B2ME1BQUFBQUFBQUFBQUFBQUFBQUFBQUFQMDUvVklpUHYxYUFnQUFJQW9nRW1vaU1DQSsvVm9DQUFFZ0NpQVZhaUl5SUQ3OVdnSUFBaUFLSUJ4cUlqTWdQdjFhQWdBREFuOGdRaUJEL2JFQi9mb0JJajc5WHlKQy9ReHF2SFNUR0FUV1AycThkSk1ZQk5ZLy9mSUJJRUQ5REF3Q0s0Y1cyZVkvREFJcmh4Ylo1ai85OGdIOThBRWlRUDBoQVNJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUFzaE1TQUFJQnBxSWpUOURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ1BRSi9JRUQ5SVFBaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTC9SRWdNZjBjQVFKL0lENzlEQUFBQUFBQUFBQUFBQUFBQUFBQUFBRDlEUWdKQ2dzTURRNFBBQUVDQXdBQkFnUDlYeUpBL1F4cXZIU1RHQVRXUDJxOGRKTVlCTlkvL2ZJQklFSDlEQXdDSzRjVzJlWS9EQUlyaHhiWjVqLzk4Z0g5OEFFaVB2MGhBQ0lGbVVRQUFBQUFBQURnUVdNRVFDQUZxZ3dCQzBHQWdJQ0FlQXY5SEFJQ2Z5QSsvU0VCSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0Qy8wY0F5SkIvYkVCSWo0Z1AvMjJBU0ErL1F3QUFBQUFBQUFBQUFBQUFBQUFBQUFBL1RuOVVpSSsvVm9DQUFBZ0FDQVNhaUl4SUQ3OVdnSUFBU0FBSUJWcUlqVWdQdjFhQWdBQ0lBQWdIR29pTmlBKy9Wb0NBQU1DZnlCQy9Rd25NUWlzSEZyOFB5Y3hDS3djV3Z3Ly9mSUJJajc5SVFFaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTElUY2dEaUFhYWlJYS9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUlEMENmeUErL1NFQUlnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEMvMFJJRGY5SEFFQ2Z5QkEvUXduTVFpc0hGcjhQeWN4Q0t3Y1d2dy8vZklCSWozOUlRQWlCWmxFQUFBQUFBQUE0RUZqQkVBZ0Jhb01BUXRCZ0lDQWdIZ0wvUndDQW44Z1BmMGhBU0lGbVVRQUFBQUFBQURnUVdNRVFDQUZxZ3dCQzBHQWdJQ0FlQXY5SEFNaVFQMnVBU0k5SUQvOXRnRWdQZjBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBUDA1L1ZJaVBmMWFBZ0FBSUE0Z0Vtb2lFaUE5L1ZvQ0FBRWdEaUFWYWlJVklEMzlXZ0lBQWlBT0lCeHFJaHdnUGYxYUFnQURJQy85REFBQUFBQUFBQUFBQUFBQUFBQUFBQUFnSzBFRWFpQXNRUVJxSUMxQkJHb2dMdjBKQWdUOVZnSUFBZjFXQWdBQy9WWUNBQU1pUGlCRS9hNEJJajBnUC8yMkFTQTkvUXdBQUFBQUFBQUFBQUFBQUFBQUFBQUEvVG45VWlJOS9Wb0NCQUFnTUNBOS9Wb0NCQUVnTWlBOS9Wb0NCQUlnTXlBOS9Wb0NCQU1nTlAwTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNBK0lFSDlzUUVpUFNBLy9iWUJJRDM5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUQ5T2YxU0lqMzlXZ0lFQUNBeElEMzlXZ0lFQVNBMUlEMzlXZ0lFQWlBMklEMzlXZ0lFQXlBYS9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUlENGdRUDJ1QVNJOUlELzl0Z0VnUGYwTUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAwNS9WSWlQZjFhQWdRQUlCSWdQZjFhQWdRQklCVWdQZjFhQWdRQ0lCd2dQZjFhQWdRRElCbEJCR29pR1NBYlJ3MEFDeUFDSUNacUlRSWdEQ0FlYWlFTUlBQWdIbW9oQUNBUUlSa2dKQ0FiSUNOR0RRSWFEQUVMSUFvaENDQU9JUXNnQnlFQkN3TkFJQUVvQWdBaERpQUlBbjhnQWlnQ0FDQVVhN0s3SWdWRU85OVBqWmR1OWoraUlnYVpSQUFBQUFBQUFPQkJZd1JBSUFhcURBRUxRWUNBZ0lCNEN5QU1LQUlBSWdwcUlnY2dFU0FISUJGSUcwRUFJQWRCQUU0Yk5nSUFJQUFnQ2dKL0lBNGdGR3V5dXlJR1JHcThkSk1ZQk5ZL29pQUZSQXdDSzRjVzJlWS9vcUFpQlpsRUFBQUFBQUFBNEVGakJFQWdCYW9NQVF0QmdJQ0FnSGdMYXlJSElCRWdCeUFSU0J0QkFDQUhRUUJPR3pZQ0FDQUxBbjhnQmtRbk1RaXNIRnI4UDZJaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTElBcHFJZ29nRVNBS0lCRklHMEVBSUFwQkFFNGJOZ0lBSUFFb0FnQWhEaUFJQW44Z0FpZ0NBQ0FVYTdLN0lnVkVPOTlQalpkdTlqK2lJZ2FaUkFBQUFBQUFBT0JCWXdSQUlBYXFEQUVMUVlDQWdJQjRDeUFNS0FJRUlncHFJZ2NnRVNBSElCRklHMEVBSUFkQkFFNGJOZ0lFSUFBZ0NnSi9JQTRnRkd1eXV5SUdSR3E4ZEpNWUJOWS9vaUFGUkF3Q0s0Y1cyZVkvb3FBaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTGF5SUhJQkVnQnlBUlNCdEJBQ0FIUVFCT0d6WUNCQ0FMQW44Z0JrUW5NUWlzSEZyOFA2SWlCWmxFQUFBQUFBQUE0RUZqQkVBZ0Jhb01BUXRCZ0lDQWdIZ0xJQXBxSWdvZ0VTQUtJQkZJRzBFQUlBcEJBRTRiTmdJRUlBSkJCR29oQWlBQlFRUnFJUUVnQzBFSWFpRUxJQUJCQ0dvaEFDQUlRUWhxSVFnZ0RFRUlhaUVNSUJsQkFtb2lHU0FkU1EwQUN5QWtDeUFpVHdSQUlBRWhCeUFJSVFvZ0N3d0JDeUFCS0FJQUlRNGdDQUovSUFJb0FnQWdGR3V5dXlJRlJEdmZUNDJYYnZZL29pSUdtVVFBQUFBQUFBRGdRV01FUUNBR3Fnd0JDMEdBZ0lDQWVBc2dEQ2dDQUNJS2FpSUhJQkVnQnlBUlNCdEJBQ0FIUVFCT0d6WUNBQ0FBSUFvQ2Z5QU9JQlJyc3JzaUJrUnF2SFNUR0FUV1A2SWdCVVFNQWl1SEZ0bm1QNktnSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0QzJzaUJ5QVJJQWNnRVVnYlFRQWdCMEVBVGhzMkFnQWdDd0ovSUFaRUp6RUlyQnhhL0QraUlnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEN5QUthaUlLSUJFZ0NpQVJTQnRCQUNBS1FRQk9HellDQUNBQ1FRUnFJUUlnQVVFRWFpRUhJQUJCQkdvaEFDQUlRUVJxSVFvZ0RFRUVhaUVNSUF0QkJHb0xJUTRnRTBFQmFpSVRJQlpIRFFBTEN5QU5LQUlZS0FJc0VCQWdEU2dDR0NJQUlBODJBaXdnQUNnQ1lCQVFJQTBvQWhnaUFDQVhOZ0pnSUFBb0FwUUJFQkFnRFNnQ0dDSUFJQWsyQXBRQklBQWdBUDBBQWdBaVAvMExBbWdnQUNBLy9Rc0NOQ0FOUVFFMkFoUkJBQ0VaREFZTElBRW9BbWhCQVVjTkFDQUJLQUlFUVFGSERRQWdBU2dDT0VFQlJ3MEFJQUVvQW14QkFVY05BQ0FCS0FJWUlRSWdBU2dDbEFFaENDQUJLQUpnSVF3Z0FTZ0NMQ0VBSUFFb0Fnd2dBU2dDQ0d3aUYwRUNkQ0lCRUJnaEJ5QUJFQmdoRHlBQkVCZ2hEZ0pBSUFkRkRRQWdEMFVOQUNBT1JRMEFJQmRGRFFSQmZ5QUNkRUYvY3lFWlFRRWdBa0VCYTNRaEVTQVhRUWhKRFFJZ0R5QUhhMEVRU1EwQ0lBNGdCMnRCRUVrTkFpQUhJQUJyUVJCSkRRSWdCeUFNYTBFUVNRMENJQWNnQ0d0QkVFa05BaUFPSUE5clFSQkpEUUlnRHlBQWEwRVFTUTBDSUE4Z0RHdEJFRWtOQWlBUElBaHJRUkJKRFFJZ0RpQUFhMEVRU1EwQ0lBNGdER3RCRUVrTkFpQU9JQWhyUVJCSkRRSWdDQ0FYUVh4eElncEJBblFpQ1dvaEN5QUpJQTVxSVFFZ0J5QUphaUVDSUJuOUVTRS9JQkg5RVNFOUEwQUNmeUFJSUJOQkFuUWlFR3I5QUFJQUlEMzlzUUg5K2dFaVB2MWZJa0Q5RER2ZlQ0MlhidlkvTzk5UGpaZHU5ai85OGdFaVFmMGhBU0lGbVVRQUFBQUFBQURnUVdNRVFDQUZxZ3dCQzBHQWdJQ0FlQXNoRkNBTUlCQnEvUUFDQUNGQ0lBY2dFR3I5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUFnQUNBUWF2MEFBZ0FpUXdKL0lFSDlJUUFpQlpsRUFBQUFBQUFBNEVGakJFQWdCYW9NQVF0QmdJQ0FnSGdML1JFZ0ZQMGNBUUovSUQ0Z1B2ME5DQWtLQ3d3TkRnOEFBUUlEQUFFQ0EvMWZJajc5RER2ZlQ0MlhidlkvTzk5UGpaZHU5ai85OGdFaVFmMGhBQ0lGbVVRQUFBQUFBQURnUVdNRVFDQUZxZ3dCQzBHQWdJQ0FlQXY5SEFJQ2Z5QkIvU0VCSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0Qy8wY0EvMnVBU0pCSUQvOXRnRWdRZjBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBUDA1L1ZMOUN3SUFBbjhnUWlBOS9iRUIvZm9CSWtIOVh5SkMvUXhxdkhTVEdBVFdQMnE4ZEpNWUJOWS8vZklCSUVEOURBd0NLNGNXMmVZL0RBSXJoeGJaNWovOThnSDk4QUVpUVAwaEFTSUZtVVFBQUFBQUFBRGdRV01FUUNBRnFnd0JDMEdBZ0lDQWVBc2hGQ0FQSUJCcS9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUlFTUNmeUJBL1NFQUlnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEMvMFJJQlQ5SEFFQ2Z5QkIvUXdBQUFBQUFBQUFBQUFBQUFBQUFBQUEvUTBJQ1FvTERBME9Ed0FCQWdNQUFRSUQvVjhpUVAwTWFyeDBreGdFMWo5cXZIU1RHQVRXUC8zeUFTQSsvUXdNQWl1SEZ0bm1Qd3dDSzRjVzJlWS8vZklCL2ZBQklqNzlJUUFpQlpsRUFBQUFBQUFBNEVGakJFQWdCYW9NQVF0QmdJQ0FnSGdML1J3Q0FuOGdQdjBoQVNJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUF2OUhBUDlzUUVpUGlBLy9iWUJJRDc5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUQ5T2YxUy9Rc0NBQUovSUVMOURDY3hDS3djV3Z3L0p6RUlyQnhhL0QvOThnRWlQdjBoQVNJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUFzaEZDQU9JQkJxL1F3QUFBQUFBQUFBQUFBQUFBQUFBQUFBSUVNQ2Z5QSsvU0VBSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0Qy8wUklCVDlIQUVDZnlCQS9Rd25NUWlzSEZyOFB5Y3hDS3djV3Z3Ly9mSUJJajc5SVFBaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTC9Sd0NBbjhnUHYwaEFTSUZtVVFBQUFBQUFBRGdRV01FUUNBRnFnd0JDMEdBZ0lDQWVBdjlIQVA5cmdFaVBpQS8vYllCSUQ3OURBQUFBQUFBQUFBQUFBQUFBQUFBQUFEOU9mMVMvUXNDQUNBVFFRUnFJaE1nQ2tjTkFBc2dDaUFYUmcwRUlBa2dER29oRENBQUlBbHFJUUFnQ1NBUGFnd0RDeUFIRUJBZ0R4QVFJQTRRRUF3RkN5QVlRYmtETmdJRUlCaEJ1QW8yQWdCQjZNUUJRY0krSUJnUUZnd0VDeUFISVFJZ0RpRUJJQWdoQ3lBUEN5RUlBMEFnRENnQ0FDRVRJQUlDZnlBTEtBSUFJQkZyc3JzaUJVUTczMCtObDI3MlA2SWlCcGxFQUFBQUFBQUE0RUZqQkVBZ0Jxb01BUXRCZ0lDQWdIZ0xJQUFvQWdBaUNXb2lFQ0FaSUJBZ0dVZ2JRUUFnRUVFQVRoczJBZ0FnQ0NBSkFuOGdFeUFSYTdLN0lnWkVhcngwa3hnRTFqK2lJQVZFREFJcmh4Ylo1aitpb0NJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUF0ckloQWdHU0FRSUJsSUcwRUFJQkJCQUU0Yk5nSUFJQUVDZnlBR1JDY3hDS3djV3Z3L29pSUZtVVFBQUFBQUFBRGdRV01FUUNBRnFnd0JDMEdBZ0lDQWVBc2dDV29pQ1NBWklBa2dHVWdiUVFBZ0NVRUFUaHMyQWdBZ0FVRUVhaUVCSUFoQkJHb2hDQ0FDUVFScUlRSWdDMEVFYWlFTElBeEJCR29oRENBQVFRUnFJUUFnQ2tFQmFpSUtJQmRIRFFBTEN5QU5LQUlZS0FJc0VCQWdEU2dDR0NJQUlBYzJBaXdnQUNnQ1lCQVFJQTBvQWhnaUFDQVBOZ0pnSUFBb0FwUUJFQkFnRFNnQ0dDQU9OZ0tVQVNBTlFRRTJBaFJCQUNFWkRBRUxJQThRRUNBWEVCQWdDUkFRQ3lBWUtBSWdJUUFDUUNBRERRQWdJVVVOQUNBQUtBSVlJUTVCQUNFVEEwQWdEaUFUUVRSc2FpSURLQUlZSWdKQkNFY0VRQUpBSUFKQkIwMEVRQ0FES0FJTUlBTW9BZ2hzSVFFZ0F5Z0NMQ0VLSUFNb0FpQUVRQ0FCUlEwQ1FRRWdBa0VCYTNTdElVVkJBQ0VISUFGQkJFOEVRQ0FCUVh4eElRY2dSZjBTSVQ5QkFDRU1BMEFnQ2lBTVFRSjBhaUlDSUFMOUFBSUFJajM5eHdGQkIvM0xBU0krL1IwQUlELzlIUUFpUm4vOUVpQSsvUjBCSUQvOUhRRWlSMy85SGdFZ1BTQS8vUTBJQ1FvTERBME9Ed0FCQWdNQUFRSUQvY2NCUVFmOXl3RWlQZjBkQUNCR2YvMFNJRDM5SFFFZ1IzLzlIZ0g5RFFBQkFnTUlDUW9MRUJFU0V4Z1pHaHY5Q3dJQUlBeEJCR29pRENBSFJ3MEFDeUFCSUFkR0RRTUxBMEFnQ2lBSFFRSjBhaUlDSUFJMEFnQkNCNFlnUlg4K0FnQWdCMEVCYWlJSElBRkhEUUFMREFJTElBRkZEUUZCZnlBQ2RFRi9jNjBoUlVFQUlRY2dBVUVFVHdSQUlBRkJmSEVoQnlCRi9SSWhQMEVBSVF3RFFDQUtJQXhCQW5ScUlnSWdBdjBBQWdBaVBmM0pBZjBNL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDNWQVNJKy9SMEFJRC85SFFBaVJvRDlFaUErL1IwQklELzlIUUVpUjREOUhnRWdQU0EvL1EwSUNRb0xEQTBPRHdBQkFnTUFBUUlEL2NrQi9Rei9BQUFBQUFBQUFQOEFBQUFBQUFBQS9kVUJJajM5SFFBZ1JvRDlFaUE5L1IwQklFZUEvUjRCL1EwQUFRSURDQWtLQ3hBUkVoTVlHUm9iL1FzQ0FDQU1RUVJxSWd3Z0IwY05BQXNnQVNBSFJnMENDd05BSUFvZ0IwRUNkR29pQWlBQ05RSUFRdjhCZmlCRmdENENBQ0FIUVFGcUlnY2dBVWNOQUFzTUFRc2dBa0VJYXlFS0lBTW9BZ3dnQXlnQ0NHd2hBU0FES0FJc0lRZ2dBeWdDSUFSQUlBRkZEUUZCQUNFSElBRkJCRThFUUNBQlFYeHhJUWRCQUNFQ0EwQWdDQ0FDUVFKMGFpSUxJQXY5QUFJQUlBcjlyQUg5Q3dJQUlBSkJCR29pQWlBSFJ3MEFDeUFCSUFkR0RRSUxBMEFnQ0NBSFFRSjBhaUlDSUFJb0FnQWdDblUyQWdBZ0IwRUJhaUlISUFGSERRQUxEQUVMSUFGRkRRQkJBQ0VISUFGQkJFOEVRQ0FCUVh4eElRZEJBQ0VDQTBBZ0NDQUNRUUowYWlJTElBdjlBQUlBSUFyOXJRSDlDd0lBSUFKQkJHb2lBaUFIUncwQUN5QUJJQWRHRFFFTEEwQWdDQ0FIUVFKMGFpSUNJQUlvQWdBZ0NuWTJBZ0FnQjBFQmFpSUhJQUZIRFFBTEN5QURRUWcyQWhnTElCTkJBV29pRXlBaFJ3MEFDd3NnQUNnQ0RDQUFLQUlJYkNFQkFrQWdHVVVFUUNBQUtBSVVRUUpHQkVBZ0FDZ0NFRUVCUmdSQUlBQW9BaGdvQWl3Z0FSQU9EQU1MSUFSRkRRSWdBQ2dDR0NJQUtBSXNJQUFvQW1BZ0FSQUlEQUlMSUFBb0FoZ2lBQ2dDTENBQUtBSmdJQUFvQXBRQklBRVFCd3dCQ3dKQUFrQUNRQ0FoUVFGckRnUUFBd0VDQXdzZ0FDZ0NHQ2dDTENBQkVBWU1BZ3NnQUNnQ0dDSUFLQUlzSUFBb0FtQWdBQ2dDbEFFZ0FSQUZEQUVMSUFBb0FoZ2lBQ2dDTENBQUtBSmdJQUFvQXBRQklBQW9Bc2dCSUFFUUJBc2dHQ2dDSUJBaFFRQWhEQXNnR0VIZ3dBQnFKQUFnREFzSUFFRUlJQUFRSlF1ckFnSUNmZ0ovUW44aEF5QUFMUUJFUVFoeFJRUkFJQUFnQUNnQ0lDSUdOZ0lrQWtBQ1FBSkFJQUFnQUNnQ01DSUZCSDhEUUNBR0lBVWdBQ2dDQUNBQUtBSVVFUUFBSWdWQmYwWU5BaUFBSUFBb0FpUWdCV29pQmpZQ0pDQUFJQUFvQWpBZ0JXc2lCVFlDTUNBRkRRQUxJQUFvQWlBRklBWUxOZ0lrSUFGQ0FGVU5BVUlBSVFNTUFnc2dBQ0FBS0FKRVFRaHlOZ0pFSUFKQkJFR0I5UUJCQUJBUElBQkJBRFlDTUNBQUlBQW9Ba1JCQ0hJMkFrUkNmdzhMUWdBaEF3TkFJQUVnQUNnQ0FDQUFLQUlZRVFzQUlnUkNmMUVFUUNBQ1FRUkI4dlFBUVFBUUR5QUFJQUFvQWtSQkNISTJBa1FnQUNBQUtRTTRJQU44TndNNFFuOGdBeUFEVUJzUEN5QURJQVI4SVFNZ0FTQUVmU0lCUWdCVkRRQUxDeUFBSUFBcEF6Z2dBM3czQXpnTElBTUxJd0VCZnlBQklBRW9BZ0FnQVNnQ0NDSUJJQUNuSWdJZ0FTQUNTUnRxTmdJRVFRRUxQQUlDZndGK0lBRW9BZ0FnQVNnQ0NHb2lBeUFCS0FJRUlnSkdCRUJDZnc4TElBRWdBaUFBcDJvMkFnUWdBeUFDYTZ3aUJDQUFJQUFnQkZVYkM1Z0RBZ0orQW44Z0FDZ0NNQ0lGSUFHbklnWlBCRUFnQUNBRklBWnJOZ0l3SUFBZ0FDZ0NKQ0FHYWpZQ0pDQUFJQUFwQXpnZ0FYdzNBemdnQVE4TElBQXRBRVJCQkhFRVFDQUFRUUEyQWpBZ0FDQUFLQUlrSUFWcU5nSWtJQUFnQmEwaUFTQUFLUU00ZkRjRE9DQUJRbjhnQlJzUEN3SkFJQVZGQkVBTUFRc2dBRUVBTmdJd0lBQWdBQ2dDSURZQ0pDQUJJQVd0SWdOOUlRRUxJQUZDQUZVRVFBTkFJQUFwQXdnZ0FDa0RPQ0FCSUFOOGZGUUVRQ0FDUVFSQm0vVUFRUUFRRHlBQVFRQTJBakFnQUNBQUtBSWdOZ0lrSUFBZ0FDa0RPQ0FEZkNJRE53TTRJQUFwQXdnaUFTQURmU0VFSUFFZ0FDZ0NBQ0FBS0FJY0VRb0FJUVVnQUNnQ1JDRUNJQUFnQlFSL0lBQWdBVGNET0NBQ1FYdHhCU0FDQzBFRWNqWUNSRUovSUFRZ0FTQURVUnNQQ3lBQklBQW9BZ0FnQUNnQ0dCRUxBQ0lFUW45UkJFQWdBa0VFUVp2MUFFRUFFQThnQUNBQUtBSkVRUVJ5TmdKRUlBQWdBQ2tET0NBRGZEY0RPRUovSUFNZ0ExQWJEd3NnQXlBRWZDRURJQUVnQkgwaUFVSUFWUTBBQ3dzZ0FDQUFLUU00SUFOOE53TTRJQU1MbXdFQkJYOUJBU0FDS0FJSUlnY2dCMEVCVFJzaEJDQUNLQUlFSWdNZ0FpZ0NBR3NoQmdOQUlBUWlCVUVCZENFRUlBVWdCbXNnQVVrTkFBc2dCU0FIUndSQUlBVVFGQ0lEUlFSQVFYOFBDeUFDS0FJQUlnUUVRQ0FESUFRZ0JoQVNHaUFDS0FJQUVCQUxJQUlnQlRZQ0NDQUNJQU0yQWdBZ0FpQURJQVpxSWdNMkFnUUxJQU1nQUNBQkVCSWFJQUlnQWlnQ0JDQUJhallDQkNBQkMwWUJBbjhnQWlnQ0FDQUNLQUlJYWlJRUlBSW9BZ1FpQTBZRVFFRi9Ed3NnQUNBRElBUWdBMnNpQUNBQklBQWdBVWtiSWdBUUVob2dBaUFDS0FJRUlBQnFOZ0lFSUFBTHFnSUJCSDhqQUVFUWF5SUVKQUFDUUNBQUtBSjBEUUFnQWtFQlRRUkFJQU5CQVVIN3dnQkJBQkFQREFFTElBRWdCRUVNYWtFQ0VCRWdCQ2dDRENJR1FmLy9BM0VpQjBVRVFDQURRUUZCbk1NQVFRQVFEd3dCQ3lBQ0lBZEJCbXhCQW1wSkJFQWdBMEVCUWZ2Q0FFRUFFQThNQVFzZ0JrRUdiQkFVSWdORkRRQWdBRUVJRUJRaUFqWUNkQ0FDUlFSQUlBTVFFQXdCQ3lBQ0lBTTJBZ0FnQWlBRUx3RU1JZ0k3QVFRZ0FrVUVRRUVCSVFVTUFRdEJBQ0VDQTBBZ0FVRUNhaUFFUVF4cUlnVkJBaEFSSUFNZ0FrRUdiR29pQmlBRUtBSU1Pd0VBSUFGQkJHb2dCVUVDRUJFZ0JpQUVLQUlNT3dFQ0lBRkJCbW9pQVNBRlFRSVFFU0FHSUFRb0FndzdBUVJCQVNFRklBSkJBV29pQWlBQUtBSjBMd0VFU1EwQUN3c2dCRUVRYWlRQUlBVUw4QUVCQlg4akFFRVFheUlFSkFBQ2Z5QUFLQUo0SWdWRkJFQWdBMEVCUWMzQ0FFRUFFQTlCQUF3QkN5QUZLQUlNQkVBZ0EwRUJRZHZWQUVFQUVBOUJBQXdCQ3lBQ0lBVXRBQklpQlVFQ2RDSUdTUVJBSUFOQkFVR3N3Z0JCQUJBUFFRQU1BUXRCQUNBR0VCUWlBa1VOQUJvZ0JRUkFRUUFoQXdOQUlBRWdCRUVNYWlJSFFRSVFFU0FDSUFOQkFuUnFJZ1lnQkNnQ0REc0JBQ0FCUVFKcUlBZEJBUkFSSUFZZ0JDZ0NERG9BQWlBQlFRTnFJQWRCQVJBUklBWWdCQ2dDRERvQUF5QUJRUVJxSVFFZ0EwRUJhaUlESUFWSERRQUxDeUFBS0FKNElBSTJBZ3hCQVFzaENDQUVRUkJxSkFBZ0NBdndBd0VKZnlNQVFSQnJJZ1VrQUFKQUlBSkJBMGtOQUNBQUtBSjREUUFnQVNBRlFReHFRUUlRRVNBRkx3RU1JZ2xCZ1FoclFmOTNUUVJBSUFVZ0NUWUNBQ0FEUVFGQnRCb2dCUkFQREFFTElBRkJBbW9nQlVFTWFrRUJFQkVnQlM4QkRDSUlSUVJBSUFOQkFVSFVGMEVBRUE4TUFRc2dDRUVEYWlBQ1N3MEFJQWdnQ1d4QkFuUVFGQ0lIUlEwQUlBZ1FGQ0lLUlFSQUlBY1FFQXdCQ3lBSUVCUWlDMFVFUUNBSEVCQWdDaEFRREFFTFFSUVFGQ0lHUlFSQUlBY1FFQ0FLRUJBZ0N4QVFEQUVMSUFGQkEyb2hBeUFHSUFvMkFnZ2dCaUFMTmdJRUlBWWdDVHNCRUNBR0lBYzJBZ0FnQlNnQ0RDRU1JQVpCQURZQ0RDQUdJQXc2QUJJZ0FDQUdOZ0o0QTBBZ0F5QUZRUXhxUVFFUUVTQUVJQXBxSUFVdEFBeEIvd0J4UVFGcU9nQUFJQVFnQzJvZ0JTZ0NERUdBQVhGQkIzWTZBQUFnQTBFQmFpRURJQVJCQVdvaUJDQUlSdzBBQ3lBSlJRUkFRUUVoQkF3QkMwRUFJUVlEUUVFQUlRUkJBQ0VBQTBBZ0FrRUVJQVFnQ21vdEFBQkJCMnBCQTNZaUJDQUVRUVJQR3lJRUlBTWdBV3RxU0FSQVFRQWhCQXdEQ3lBRElBVkJER29nQkJBUklBY2dCU2dDRERZQ0FDQUhRUVJxSVFjZ0F5QUVhaUVESUFCQkFXb2lBRUgvL3dOeElnUWdDRWtOQUF0QkFTRUVJQVpCQVdvaUJrSC8vd054SUFsSkRRQUxDeUFGUVJCcUpBQWdCQXVZQVFFQ2Z5TUFRUkJySWdVa0FDQUFLQUlZSWdSQi93RkhCRUFnQlNBRU5nSUFJQU5CQWtIa0V5QUZFQThMQWtBQ1FDQUNJQUFvQWhSR0JFQWdBZzBCUVFFaEJBd0NDMEVBSVFRZ0EwRUJRYnZzQUVFQUVBOE1BUXRCQUNFQ0EwQkJBU0VFSUFFZ0FDZ0NTQ0FDUVF4c2FrRUlha0VCRUJFZ0FVRUJhaUVCSUFKQkFXb2lBaUFBS0FJVVNRMEFDd3NnQlVFUWFpUUFJQVFMamdZQkJuOGpBRUhRQUdzaUJDUUFBa0FnQWtFQ1RRUkFJQU5CQVVHYjdBQkJBQkFQREFFTElBQXRBSHdFUUNBRFFRUkI3dElBUVFBUUQwRUJJUVlNQVF0QkFTRUdJQUVnQUVFb2FrRUJFQkVnQVVFQmFpQUFRVFJxUVFFUUVTQUJRUUpxSUFCQkxHcEJBUkFSSUFGQkEyb2hCUUpBQWtBQ1FBSkFBa0FnQUNnQ0tDSUhRUUZyRGdJQUFRSUxJQUpCQmswRVFDQUVJQUkyQWhBZ0EwRUJRY0R4QUNBRVFSQnFFQTlCQUNFR0RBVUxBa0FnQWtFSFJnMEFJQUFvQWpCQkRrWU5BQ0FFSUFJMkFqQWdBMEVDUWNEeEFDQUVRVEJxRUE4TElBVWdBRUV3YWtFRUVCRWdBQ2dDTUVFT1J3MERRU1FRRkNJRlJRUkFRUUFoQmlBRFFRRkJzenhCQUJBUERBVUxJQVZCRGpZQ0FDQUVRUUEyQWtBZ0JFRUFOZ0k0SUFSQkFEWUNTQ0FFUVFBMkFqd2dCRUVBTmdKRUlBUkJBRFlDVEVHdzZwQUNJUVlnQkVHdzZwQUNOZ0kwSUFWQmdJeVZvZ1EyQWdRQ2Z5QUNRUWRIQkVBZ0FrRWpSZ1JBSUFGQkIyb2dCRUhNQUdwQkJCQVJJQUZCQzJvZ0JFSElBR3BCQkJBUklBRkJEMm9nQkVIRUFHcEJCQkFSSUFGQkUyb2dCRUZBYTBFRUVCRWdBVUVYYWlBRVFUeHFRUVFRRVNBQlFSdHFJQVJCT0dwQkJCQVJJQUZCSDJvZ0JFRTBha0VFRUJFZ0JVRUFOZ0lFSUFRb0FqUWhCaUFFS0FJNElRSWdCQ2dDUUNFRElBUW9BandoQnlBRUtBSkVJUWdnQkNnQ1RDRUpJQVFvQWtnTUFnc2dCQ0FDTmdJZ0lBTkJBa0hrOFFBZ0JFRWdhaEFQQzBFQUlRSkJBQ0VEUVFBaEIwRUFDeUVCSUFVZ0J6WUNHQ0FGSUFnMkFoQWdCU0FKTmdJSUlBVWdCallDSUNBRklBSTJBaHdnQlNBRE5nSVVJQVVnQVRZQ0RDQUFRUUEyQW5BZ0FDQUZOZ0pzREFNTElBQWdBa0VEYXlJQk5nSndJQUJCQVNBQkVCTWlBellDYkNBRFJRMEJJQUpCQTB3TkFrRUFJUUlEUUNBRklBUkJ6QUJxUVFFUUVTQUFLQUpzSUFKcUlBUW9Ba3c2QUFBZ0JVRUJhaUVGSUFKQkFXb2lBaUFCUncwQUN3d0NDeUFIUVFOSkRRSWdCQ0FITmdJQUlBTkJCRUhiOXdBZ0JCQVBEQUlMUVFBaEJpQUFRUUEyQW5BTUFRdEJBU0VHSUFCQkFUb0FmQXNnQkVIUUFHb2tBQ0FHQzdRREFRTi9Jd0JCSUdzaUJDUUFBa0FnQUNnQ1NBUkFJQU5CQWtHTk5VRUFFQTlCQVNFQ0RBRUxJQUpCRGtjRVFFRUFJUUlnQTBFQlFmcnJBRUVBRUE4TUFRc2dBU0FBUVJCcVFRUVFFU0FCUVFScUlBQkJER3BCQkJBUklBRkJDR29nQUVFVWFrRUNFQkVnQUNnQ0RDRUZBa0FnQkFKL0lBQW9BaEFpQmtVRVFDQUFLQUlVREFFTElBQW9BaFFpQWlBRlJRMEFHaUFDRFFGQkFBczJBZ2dnQkNBR05nSUVJQVFnQlRZQ0FDQURRUUZCM3VvQUlBUVFEMEVBSVFJTUFRc2dBa0dCZ0FGclFmLy9mazBFUUVFQUlRSWdBMEVCUVlqcUFFRUFFQThNQVFzZ0FDQUNRUXdRRXlJQ05nSklJQUpGQkVCQkFDRUNJQU5CQVVHdDZnQkJBQkFQREFFTFFRRWhBaUFCUVFwcUlBQkJHR3BCQVJBUklBRkJDMm9nQUVFY2FrRUJFQkVnQUNnQ0hDSUZRUWRIQkVBZ0JDQUZOZ0lRSUFOQkJFR2QrZ0FnQkVFUWFoQVBDeUFCUVF4cUlBQkJJR3BCQVJBUklBRkJEV29nQUVFa2FrRUJFQkVnQUNnQ0FDSUJJQUV0QUx3QlFmc0JjU0FBS0FJWVFmOEJSa0VDZEhJNkFMd0JJQUFvQWdBaUFTQUFLQUlNTmdMWUFTQUJJQUFvQWhBMkF0d0JJQUJCQVRvQWhRRUxJQVJCSUdva0FDQUNDN29FQVFaL0l3QkJFR3NpQmlRQUFuOGdBQzBBWkVFQ2NVVUVRQ0FEUVFGQmtkUUFRUUFRRDBFQURBRUxJQUJCQURZQ2FBSkFBa0FDUUNBQ0JFQURRQ0FDUVFkTkJFQWdBMEVCUWJrWlFRQVFEd3dGQ3lBQklBWkJER29pQlVFRUVCRWdCaWdDRENFRUlBRkJCR29nQlVFRUVCRkJDQ0VISUFZb0Fnd2hCUUpBQWtBQ1FBSkFJQVFPQWdFQUF3c2dBa0VRU1FSQVFlRVpJUVFNQndzZ0FVRUlhaUFHUVFocVFRUVFFU0FHS0FJSUJFQkJ5ajhoQkF3SEN5QUJRUXhxSUFaQkRHcEJCQkFSSUFZb0Fnd2lCQTBCUWJJWUlRUU1CZ3NnQTBFQlFiSVlRUUFRRHd3R0MwRVFJUWNMSUFRZ0Iwa0VRQ0FEUVFGQmhjVUFRUUFRRHd3RkN5QUNJQVJKQkVBZ0EwRUJRYjNFQUVFQUVBOUJBQXdHQ3dKQUFrQWdBQ0FCSUFkcUlBUWdCMnNnQXdKL0FrQUNRQUpBSUFWQjhkaTltd1pNQkVBZ0JVSGp4c0dUQmtZTkFTQUZRZWJLa1pzR1JnMERJQVZCOE1LMW13WkhEUVZCNE1BQkRBUUxJQVZCOHRpTmd3ZEdEUUZCd01BQklBVkI4c2loeXdaR0RRTWFJQVZCOHRpOW13WkhEUVJCeU1BQkRBTUxRZERBQVF3Q0MwSFl3QUVNQVF0QjZNQUJDeWdDQkJFQkFBMEJRUUFNQndzZ0FDQUFLQUpvUWYvLy8vOEhjallDYUF0QkFTQUlJQVZCOHNpaHl3WkdHeUVJSUFFZ0JHb2hBU0FDSUFScklnSU5BQXNnQ0EwQkN5QURRUUZCMmNNQVFRQVFEMEVBREFNTElBQkJBVG9BaEFFZ0FDQUFLQUprUVFSeU5nSmtRUUVNQWdzZ0EwRUJJQVJCQUJBUEN5QURRUUZCbmc1QkFCQVBRUUFMSVFrZ0JrRVFhaVFBSUFrTDRnRUJBWDhnQUNnQ1pFRUJSd1JBSUFOQkFVRysxQUJCQUJBUFFRQVBDd0pBSUFKQkIwMEVRQXdCQ3lBQklBQkJPR3BCQkJBUklBRkJCR29nQUVFOGFrRUVFQkVnQWtFRGNRUkFEQUVMSUFBZ0FrRUlheUlDUVFKMklnUTJBa0FDUUNBQ1JRMEFJQUFnQkVFRUVCTWlBallDUkNBQ1JRUkFJQU5CQVVHcEVFRUFFQTlCQUE4TElBQW9Ba0JGRFFBZ0FVRUlhaUVEUVFBaEFnTkFJQU1nQUNnQ1JDQUNRUUowYWtFRUVCRWdBMEVFYWlFRElBSkJBV29pQWlBQUtBSkFTUTBBQ3dzZ0FDQUFLQUprUVFKeU5nSmtRUUVQQ3lBRFFRRkJxaTFCQUJBUFFRQUx4QUVCQW44Z0FDQUFLQUlnSWdRMkFpUUNRQ0FBS0FJd0lnTUVRQU5BSUFRZ0F5QUFLQUlBSUFBb0FoUVJBQUFpQTBGL1JnMENJQUFnQUNnQ0pDQURhaUlFTmdJa0lBQWdBQ2dDTUNBRGF5SUROZ0l3SUFNTkFBc2dBQ2dDSUNFRUN5QUFRUUEyQWpBZ0FDQUVOZ0lrSUFFZ0FDZ0NBQ0FBS0FJY0VRb0FSUVJBSUFBZ0FDZ0NSRUVJY2pZQ1JFRUFEd3NnQUNBQk53TTRRUUVQQ3lBQUlBQW9Ba1JCQ0hJMkFrUWdBa0VFUVlIMUFFRUFFQThnQUNBQUtBSkVRUWh5TmdKRVFRQUxnZ0VCQW44akFFRVFheUlFSkFBQ2Z5QUFLQUprQkVBZ0EwRUJRZHZUQUVFQUVBOUJBQXdCQ3lBQ1FRUkhCRUFnQTBFQlFjNHRRUUFRRDBFQURBRUxJQUVnQkVFTWFrRUVFQkVnQkNnQ0RFR0tqcXJvQUVjRVFDQURRUUZCOWlWQkFCQVBRUUFNQVFzZ0FDQUFLQUprUVFGeU5nSmtRUUVMSVFVZ0JFRVFhaVFBSUFVTERRQWdBQ2dDQUNBQklBSVFSUXNKQUNBQUtBSUFFRW9MQ1FBZ0FDZ0NBQkJKQ3cwQUlBQW9BZ0FnQVNBQ0VFd0xRUUVCZnlBQ0JIOGdBMEVDUWR2TEFFRUFFQThnQUNnQ0FDQUJJQUlnQXlBRUVFWkZCRUFnQTBFQlFha3ZRUUFRRDBFQUR3c2dBQ0FDSUFNUWNRVkJBQXNMRlFBZ0FDZ0NBQ0FCSUFJZ0F5QUVJQVVnQmhCT0N3OEFJQUFvQWdBZ0FTQUNJQU1RVHdzVEFDQUFLQUlBSUFFZ0FpQURJQVFnQlJBckN4MEFJQUFvQWdBZ0FTQUNJQU1nQkNBRklBWWdCeUFJSUFrZ0NoQW5DK29FQVFkL0FrQWdBU2dDQ0VFMUlBTVFKRVVOQUNBQktBSUVJZ2NvQWdBaEJTQUhLQUlJSVFRQ1FDQUZCRUJCQVNFR0lBVkJBVWNFUUNBRlFYNXhJUW9EUUFKL1FRQWdCa1VOQUJwQkFDQUJJQUFnQXlBRUtBSUFFUUFBUlEwQUdpQUJJQUFnQXlBRUtBSUVFUUFBUVFCSEN5RUdJQVJCQ0dvaEJDQUpRUUpxSWdrZ0NrY05BQXNMQWtBZ0JVRUJjUVJBSUFaRkRRRWdBU0FBSUFNZ0JDZ0NBQkVBQUVFQVJ5RUdDeUFIUVFBMkFnQWdCa1VOQXd3Q0N5QUhRUUEyQWdCQkFBOExJQWRCQURZQ0FBc2dBU2dDQ0NJSEtBSUFJUVVnQnlnQ0NDRUVBa0FDUUFKL0FrQWdCUVJBUVFFaEJpQUZRUUZ4SVFnZ0JVRUJSdzBCUVFBTUFnc2dCMEVBTmdJQURBSUxJQVZCZm5FaEJVRUFJUWtEUUFKL1FRQWdCa1VOQUJwQkFDQUJJQUFnQXlBRUtBSUFFUUFBUlEwQUdpQUJJQUFnQXlBRUtBSUVFUUFBUVFCSEN5RUdJQVJCQ0dvaEJDQUpRUUpxSWdrZ0JVY05BQXNnQmtVTElRVWdDQVJBSUFVTkFpQUJJQUFnQXlBRUtBSUFFUUFBUVFCSElRWUxJQWRCQURZQ0FFRUFJUWdnQmtVTkFnc2dBUzBBaEFGRkJFQWdBMEVCUWIzV0FFRUFFQTlCQUE4TElBRXRBSVVCUlFSQUlBTkJBVUdnMWdCQkFCQVBRUUFQQ3lBQUlBRW9BZ0FnQWlBREVGQWhDQ0FDUlEwQklBSW9BZ0FpQUVVTkFVRUJJUVFDUUFKQUFrQUNRQUpBQWtBZ0FTZ0NNRUVNYXc0TkF3UUVCQVVBQVFRRUJBUUVBZ1FMUVFJaEJBd0VDMEVESVFRTUF3dEJCQ0VFREFJTFFRVWhCQXdCQzBGL0lRUUxJQUFnQkRZQ0ZDQUJLQUpzSWdORkRRRWdBQ0FETmdJY0lBSW9BZ0FnQVNnQ2NEWUNJQ0FCUVFBMkFtd2dDQThMSUFkQkFEWUNBRUVBSVFnTElBZ0w1QWtDQ244QmZpTUFRZkFBYXlJREpBQkJnQWdoQ0FKL0FrQkJBVUdBQ0JBVElnWUVRQ0FEUWR3QWFpRUxJQU5CN0FCcUlRa0RRQUpBQWtBQ1FDQUJJQU5CNkFCcUlnUkJDQ0FDRUJwQkNFY05BQ0FFSUFOQjJBQnFRUVFRRVNBSklBdEJCQkFSUVFnaEJRSkFBa0FDUUFKQUFrQWdBeWdDV0E0Q0FBRUVDeUFCS1FNSUlnMVFCSDVDQUFVZ0RTQUJLUU00ZlFzaURVTDQvLy8vRDFNTkFTQUNRUUZCeWo5QkFCQVBEQVFMSUFFZ0EwSG9BR29pQkVFSUlBSVFHa0VJUncwRElBUWdBMEhrQUdwQkJCQVJJQU1vQW1SRkRRRWdBa0VCUWNvL1FRQVFEd3dEQ3lBRElBMm5RUWhxTmdKWURBRUxJQWtnQTBIWUFHcEJCQkFSUVJBaEJRc2dBeWdDWENJRVFlUGt3Tk1HUmdSQUlBQW9BbVFpQVVFRWNRUkFJQUFnQVVFSWNqWUNaQXdDQ3lBQ1FRRkJyU3RCQUJBUElBWVFFRUVBREFjTElBTW9BbGdpQjBVRVFDQUNRUUZCc2hoQkFCQVBJQVlRRUVFQURBY0xJQVVnQjBzRVFDQURJQVEyQWdRZ0F5QUhOZ0lBSUFKQkFVSDY1d0FnQXhBUERBWUxBa0FDZndKL0FrQUNmd0pBQWtBQ1FBSkFBa0FnQkVIeDJMMmJCa3dFUUNBRVFlUEd3Wk1HUmcwQ0lBUkI1c3FSbXdaR0RRUWdCRUh3d3JXYkJrY05BVUhnd0FFTUJnc2dCRUdmd01EU0Jrd0VRQ0FFUWZMWXZac0dSZzBGUWNEQUFTQUVRZkxJb2NzR1JnMEdHaUFFUWZEeTBiTUdSdzBCUWFqQUFRd0lDeUFFUWZMWWpZTUhSZzBDSUFSQm9NREEwZ1pHRFFaQnNNQUJJQVJCNk9UQTB3WkdEUWNhQ3lBQUtBSmtJZ1JCQVhFTkNDQUNRUUZCL0E1QkFCQVBJQVlRRUVFQURBOExRZERBQVF3REMwSFl3QUVNQWd0QjZNQUJEQUVMUWNqQUFRc2hDaUFESUFSQi93RnhOZ0pNSUFNZ0JFRVlkallDUUNBRElBUkJDSFpCL3dGeE5nSklJQU1nQkVFUWRrSC9BWEUyQWtRZ0FrRUNRY2tPSUFOQlFHc1FEeUFISUFWcklnVWdBQzBBWkVFRWNRMENHaUFESUFNb0Fsd2lCRUVZZGpZQ01DQURJQVJCL3dGeE5nSThJQU1nQkVFUWRrSC9BWEUyQWpRZ0F5QUVRUWgyUWY4QmNUWUNPQ0FDUVFKQjJqTWdBMEV3YWhBUElBQWdBQ2dDWkVILy8vLy9CM0kyQW1RZ0FTQUZyU0lOSUFJZ0FTZ0NLQkVJQUNBTlVRMEhJQUpCQVVHU0hFRUFFQThnQmhBUVFRQU1DZ3RCb01BQkN5RUtJQWNnQldzTElRVWdBU2tEQ0NJTlVBUitRZ0FGSUEwZ0FTa0RPSDBMSUFXdFV3UkFJQU1vQWxnaEJDQURLQUpjSVFBZ0F5QUJLUU1JSWcxUUJINUNBQVVnRFNBQktRTTRmUXMrQWlnZ0F5QUZOZ0lrSUFNZ0FFSC9BWEUyQWlBZ0F5QUFRUmgyTmdJVUlBTWdCRFlDRUNBRElBQkJDSFpCL3dGeE5nSWNJQU1nQUVFUWRrSC9BWEUyQWhnZ0FrRUJRYzMxQUNBRFFSQnFFQThNQndzZ0JTQUlUUVJBSUFZaEJBd0VDeUFGSVFnZ0JpQUZFQmNpQkEwRElBWVFFQ0FDUVFGQi93OUJBQkFQUVFBTUJ3c2dCRUVDY1VVRVFDQUNRUUZCd2c5QkFCQVBJQVlRRUVFQURBY0xJQUFnQkVILy8vLy9CM0kyQW1RZ0FTQUhJQVZyclNJTklBSWdBU2dDS0JFSUFDQU5VUTBESUFBdEFHUkJDSEZGRFFFZ0FrRUNRWkljUVFBUUR3c2dCaEFRUVFFTUJRc2dBa0VCUVpJY1FRQVFEeUFHRUJCQkFBd0VDeUFCSUFRZ0JTQUNFQm9nQlVjRVFDQUNRUUZCeEJ4QkFCQVBJQVFRRUVFQURBUUxJQUFnQkNJR0lBVWdBaUFLS0FJRUVRRUFEUUFMSUFRUUVFRUFEQUlMSUFKQkFVR2lKVUVBRUE5QkFBd0JDeUFHRUJCQkFBc2hEQ0FEUWZBQWFpUUFJQXdMNWdFQkJuOGdBQ2dDQ0VFMUlBSVFKQVJBQWtBZ0FDZ0NDQ0lHS0FJQUlRTWdCaWdDQ0NFRkFrQUNRQUovQWtBZ0F3UkFRUUVoQkNBRFFRRnhJUWNnQTBFQlJ3MEJRUUFNQWdzZ0JrRUFOZ0lBREFJTElBTkJmbkVoQXdOQUFuOUJBQ0FFUlEwQUdrRUFJQUFnQVNBQ0lBVW9BZ0FSQUFCRkRRQWFJQUFnQVNBQ0lBVW9BZ1FSQUFCQkFFY0xJUVFnQlVFSWFpRUZJQWhCQW1vaUNDQURSdzBBQ3lBRVJRc2hBeUFIQkVBZ0F3MENJQUFnQVNBQ0lBVW9BZ0FSQUFCQkFFY2hCQXNnQmtFQU5nSUFJQVJGRFFJTElBQW9BZ0FhUVFFUEN5QUdRUUEyQWdBTEMwRUFDd29BSUFBb0FnQWFRUUFMRkFBZ0FDZ0NBQ0lBQkVBZ0FDQUJOZ0s0QVFzTElRQWdBQ2dDQUNBQkVGTWdBRUVBT2dCOElBQWdBU2dDdUVCQkFYRTJBb0FCQ3pJQUlBSkZCRUJCQUE4TElBQW9BZ0FnQVNBQ0lBTVFTRVVFUUNBRFFRRkJxUzlCQUJBUFFRQVBDeUFBSUFJZ0F4QnhDMmtDQW44QmZDTUFRUkJySWdNa0FDQUNCRUFEUUNBQUlBTkJDR29RUkNBQkFuOGdBeXNEQ0NJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUFzMkFnQWdBVUVFYWlFQklBQkJDR29oQUNBRVFRRnFJZ1FnQWtjTkFBc0xJQU5CRUdva0FBdUVBUUlDZndGOUl3QkJFR3NpQXlRQUlBSUVRQU5BSUFNZ0FDMEFBRG9BRHlBRElBQXRBQUU2QUE0Z0F5QUFMUUFDT2dBTklBTWdBQzBBQXpvQURDQUJBbjhnQXlvQ0RDSUZpME1BQUFCUFhRUkFJQVdvREFFTFFZQ0FnSUI0Q3pZQ0FDQUJRUVJxSVFFZ0FFRUVhaUVBSUFSQkFXb2lCQ0FDUncwQUN3c2dBMEVRYWlRQUMwc0JBbjhqQUVFUWF5SURKQUFnQWdSQUEwQWdBQ0FEUVF4cVFRUVFFU0FCSUFNb0FndzJBZ0FnQVVFRWFpRUJJQUJCQkdvaEFDQUVRUUZxSWdRZ0FrY05BQXNMSUFOQkVHb2tBQXRMQVFKL0l3QkJFR3NpQXlRQUlBSUVRQU5BSUFBZ0EwRU1ha0VDRUJFZ0FTQURLQUlNTmdJQUlBRkJCR29oQVNBQVFRSnFJUUFnQkVFQmFpSUVJQUpIRFFBTEN5QURRUkJxSkFBTFNnRUNmeU1BUVJCcklnTWtBQ0FDQkVBRFFDQUFJQU5CQ0dvUVJDQUJJQU1yQXdpMk9BSUFJQUZCQkdvaEFTQUFRUWhxSVFBZ0JFRUJhaUlFSUFKSERRQUxDeUFEUVJCcUpBQUxhQUVDZnlNQVFSQnJJZ01rQUNBQ0JFQURRQ0FESUFBdEFBQTZBQThnQXlBQUxRQUJPZ0FPSUFNZ0FDMEFBam9BRFNBRElBQXRBQU02QUF3Z0FTQURLZ0lNT0FJQUlBRkJCR29oQVNBQVFRUnFJUUFnQkVFQmFpSUVJQUpIRFFBTEN5QURRUkJxSkFBTFRBRUNmeU1BUVJCcklnTWtBQ0FDQkVBRFFDQUFJQU5CREdwQkJCQVJJQUVnQXlnQ0RMTTRBZ0FnQVVFRWFpRUJJQUJCQkdvaEFDQUVRUUZxSWdRZ0FrY05BQXNMSUFOQkVHb2tBQXRNQVFKL0l3QkJFR3NpQXlRQUlBSUVRQU5BSUFBZ0EwRU1ha0VDRUJFZ0FTQURLQUlNc3pnQ0FDQUJRUVJxSVFFZ0FFRUNhaUVBSUFSQkFXb2lCQ0FDUncwQUN3c2dBMEVRYWlRQUM2b0lBZzEvQVhzakFFRVFheUlJSkFBQ2Z5QUFLQUlJUVJCR0JFQWdBQ2dDbkFFZ0FDZ0N6QUZCakN4c2Fnd0JDeUFBS0FJTUN5RUpBa0FnQWtVRVFDQURRUUZCOEI5QkFCQVBEQUVMSUFBb0FrZ2hCa0VCSVFRZ0FTQUlRUWhxUVFFUUVTQUlLQUlJSWdWQkFrOEVRQ0FEUVFKQnhzZ0FRUUFRRHd3QkN5QUNJQVZCQVdwSEJFQkJBQ0VFSUFOQkFrSHdIMEVBRUE4TUFRc0NRQ0FHS0FJUUlnTkZEUUFnQ1NnQzBDc2hCQ0FEUVFoUEJFQWdBMEY0Y1NFR1FRQWhBZ05BSUFSQkFEWUN2RU1nQkVFQU5nS0VPeUFFUVFBMkFzd3lJQVJCQURZQ2xDb2dCRUVBTmdMY0lTQUVRUUEyQXFRWklBUkJBRFlDN0JBZ0JFRUFOZ0swQ0NBRVFjRERBR29oQkNBQ1FRaHFJZ0lnQmtjTkFBc0xJQU5CQjNFaUEwVU5BRUVBSVFJRFFDQUVRUUEyQXJRSUlBUkJ1QWhxSVFRZ0FrRUJhaUlDSUFOSERRQUxDeUFKS0FMb0t5SUNCSDhnQWhBUUlBbEJBRFlDNkNzZ0NDZ0NDQVVnQlF0RkJFQkJBU0VFREFFTEEwQWdBVUVCYWlJQklBaEJER3BCQVJBUkFrQWdDU2dDZ0N4RkRRQWdDU2dDL0NzaUF5Z0NBQ0FJS0FJTVJ3MEFJQU1vQWdRaUJTQUFLQUpJSWdZb0FoQkhEUUFnQXlnQ0NDSUNCRUJCQUNFRUlBSW9BaEFnQlNBRmJDSUZJQUlvQWdCQkFuUkIwTDBCYWlnQ0FHeEhEUU1nQ1NBRlFRSjBFQlFpQnpZQzZDc2dCMFVOQXlBQ0tBSU1JQWNnQlNBQ0tBSUFRUUowUVlEQUFXb29BZ0FSQlFBTElBTW9BZ3dpQWtVTkFFRUFJUVFnQWlnQ0VDQUdLQUlRSWdNZ0FpZ0NBRUVDZEVIUXZRRnFLQUlBYkVjTkFpQURRUUowRUJRaUJVVU5BaUFDS0FJTUlBVWdBeUFDS0FJQVFRSjBRWkRBQVdvb0FnQVJCUUFDUUNBR0tBSVFJZ2RGRFFBZ0NTZ0MwQ3NoQkVFQUlRc0NRQUpBSUFkQkJFa05BQ0FFUWJRSWFpSU1JQVVnQjBFQ2RHcEpCRUFnQlNBRUlBZEJ1QWhzYWtrTkFRc2dCRUhjSVdvaERTQUVRYVFaYWlFT0lBUkI3QkJxSVE4Z0JTQUhRWHh4SWdaQkFuUnFJUUlnQkNBR1FiZ0liR29oQkVFQUlRTURRQ0FNSUFOQnVBaHNJZ3BxSUFVZ0EwRUNkR3I5QUFJQUloSDlXZ0lBQUNBS0lBOXFJQkg5V2dJQUFTQUtJQTVxSUJIOVdnSUFBaUFLSUExcUlCSDlXZ0lBQXlBRFFRUnFJZ01nQmtjTkFBc2dCaUFIUmcwQ0RBRUxJQVVoQWtFQUlRWUxJQWNnQmlJRGEwRUhjU0lLQkVBRFFDQUVJQUlvQWdBMkFyUUlJQU5CQVdvaEF5QUVRYmdJYWlFRUlBSkJCR29oQWlBTFFRRnFJZ3NnQ2tjTkFBc0xJQVlnQjJ0QmVFc05BQU5BSUFRZ0FpZ0NBRFlDdEFnZ0JDQUNLQUlFTmdMc0VDQUVJQUlvQWdnMkFxUVpJQVFnQWlnQ0REWUMzQ0VnQkNBQ0tBSVFOZ0tVS2lBRUlBSW9BaFEyQXN3eUlBUWdBaWdDR0RZQ2hEc2dCQ0FDS0FJY05nSzhReUFFUWNEREFHb2hCQ0FDUVNCcUlRSWdBMEVJYWlJRElBZEhEUUFMQ3lBRkVCQUxRUUVoQkNBUVFRRnFJaEFnQ0NnQ0NFa05BQXNMSUFoQkVHb2tBQ0FFQ3dRQVFuOEx2d2tCQzM4akFFRVFheUlGSkFBQ2Z5QUFLQUlJUVJCR0JFQWdBQ2dDbkFFZ0FDZ0N6QUZCakN4c2Fnd0JDeUFBS0FJTUN5RUhBbjhnQWtFQlRRUkFJQU5CQVVIWUkwRUFFQTlCQUF3QkN5QUJJQVZCREdwQkFoQVJJQVVvQWd3RVFDQURRUUpCOEN4QkFCQVBRUUVNQVFzZ0FrRUdUUVJBSUFOQkFVSFlJMEVBRUE5QkFBd0JDeUFCUVFKcUlBVkJDR3BCQVJBUklBY29BdndySWdraEFBSkFBa0FDUUNBSEtBS0FMQ0lHUlEwQUlBVW9BZ2doQ0FOQUlBQW9BZ0FnQ0VZTkFTQUFRUlJxSVFBZ0JFRUJhaUlFSUFaSERRQUxEQUVMSUFRZ0JrY05BUXNnQnlnQ2hDd2dCa1lFZnlBSElBWkJDbW9pQURZQ2hDd2dDU0FBUVJSc0VCY2lBRVVFUUNBSEtBTDhLeEFRSUFkQkFEWUNoQ3dnQjBJQU53TDhLeUFEUVFGQjhpTkJBQkFQUVFBTUF3c2dCeUFBTmdMOEt5QUFJQWNvQW9Bc0lnUkJGR3hxUVFBZ0J5Z0NoQ3dnQkd0QkZHd1FGUm9nQnlnQy9Dc2hDU0FIS0FLQUxBVWdCZ3RCRkd3Z0NXb2hBRUVCSVFzTElBQWdCU2dDQ0RZQ0FDQUJRUU5xSUFWQkRHcEJBaEFSSUFVb0Fnd0VRQ0FEUVFKQjhDeEJBQkFQUVFFTUFRc2dBVUVGYWlBRlFRUnFRUUlRRVNBRktBSUVJZ1JCQWs4RVFDQURRUUpCcUJkQkFCQVBRUUVNQVFzZ0FrRUhheUVHSUFRRVFDQUJRUWRxSVFKQkFDRUpBMEFnQmtFQ1RRUkFJQU5CQVVIWUkwRUFFQTlCQUF3REN5QUNJQVZCREdwQkFSQVJJQVVvQWd4QkFVY0VRQ0FEUVFKQnNpcEJBQkFQUVFFTUF3c2dBa0VCYWlBRlFRSVFFU0FBSUFVb0FnQWlCRUgvL3dGeElnRTJBZ1FnQmtFRGF5SUlJQVJCRDNaQkFXb2lCaUFCYkVFQ2FpSUtTUVJBSUFOQkFVSFlJMEVBRUE5QkFBd0RDeUFDUVFOcUlRSkJBQ0VFSUFFRVFBTkFJQUlnQlVFTWFpQUdFQkVnQkNBRktBSU1Sd1JBSUFOQkFrSGFMMEVBRUE5QkFRd0ZDeUFDSUFacUlRSWdCRUVCYWlJRUlBQW9BZ1JKRFFBTEN5QUNJQVZCQWhBUklBVWdCU2dDQUNJRVFmLy9BWEVpQVRZQ0FDQUFLQUlFSUFGSEJFQWdBMEVDUWRnWVFRQVFEMEVCREFNTElBZ2dDbXNpQ2lBRVFROTJRUUZxSWdZZ0FXeEJBMm9pREVrRVFDQURRUUZCMkNOQkFCQVBRUUFNQXdzZ0FrRUNhaUVDUVFBaEJDQUJCRUFEUUNBQ0lBVkJER29nQmhBUklBUWdCU2dDREVjRVFDQURRUUpCMmk5QkFCQVBRUUVNQlFzZ0FpQUdhaUVDSUFSQkFXb2lCQ0FBS0FJRVNRMEFDd3NnQWlBRlFReHFRUU1RRVNBRktBSU1JUVlnQUVJQU53SUlJQUFnQmtHQWdBUnhSU0FBTFFBUVFmNEJjWEk2QUJBZ0JTQUdRZjhCY1NJSU5nSUlBa0FnQ0VVTkFDQUhLQUwwS3lJTkJFQWdCeWdDOENzaEJFRUFJUUVEUUNBSUlBUW9BZ2hHQkVBZ0FDQUVOZ0lJREFNTElBUkJGR29oQkNBQlFRRnFJZ0VnRFVjTkFBc0xJQU5CQVVIWUkwRUFFQTlCQUF3REN5QUZJQVpCQ0haQi93RnhJZ1kyQWdnQ1FDQUdSUTBBSUFjb0F2UXJJZ2dFUUNBSEtBTHdLeUVFUVFBaEFRTkFJQVlnQkNnQ0NFWUVRQ0FBSUFRMkFnd01Bd3NnQkVFVWFpRUVJQUZCQVdvaUFTQUlSdzBBQ3dzZ0EwRUJRZGdqUVFBUUQwRUFEQU1MSUFvZ0RHc2hCaUFDUVFOcUlRSWdDVUVCYWlJSklBVW9BZ1JKRFFBTEN5QUdCRUFnQTBFQlFkZ2pRUUFRRDBFQURBRUxRUUVnQzBVTkFCb2dCeUFIS0FLQUxFRUJhallDZ0N4QkFRc2hEaUFGUVJCcUpBQWdEZ3YxQVFFRmZ5TUFRUkJySWdRa0FBSkFJQUlnQUNnQ1NDZ0NFQ0lHUVFKcVJ3UkFJQU5CQVVId0lrRUFFQThNQVFzZ0FTQUVRUXhxUVFJUUVTQUdJQVFvQWd4SEJFQWdBMEVCUWZBaVFRQVFEd3dCQ3lBR1JRUkFRUUVoQlF3QkN5QUJRUUpxSVFJZ0FDZ0NTQ2dDR0NFQVFRQWhBUU5BSUFJZ0JFRUlha0VCRUJFZ0FDQUVLQUlJSWdWQi93QnhJZ2RCQVdvaUNEWUNHQ0FBSUFWQkIzWkJBWEUyQWlBZ0IwRWZUd1JBSUFRZ0NEWUNCQ0FFSUFFMkFnQWdBMEVCUWJmekFDQUVFQTlCQUNFRkRBSUxJQUJCTkdvaEFFRUJJUVVnQWtFQmFpRUNJQUZCQVdvaUFTQUdSdzBBQ3dzZ0JFRVFhaVFBSUFVTG1BVUJDbjhqQUVFUWF5SUhKQUFDZnlBQUtBSUlRUkJHQkVBZ0FDZ0NuQUVnQUNnQ3pBRkJqQ3hzYWd3QkN5QUFLQUlNQ3lFRkFuOGdBa0VCVFFSQUlBTkJBVUh4SGtFQUVBOUJBQXdCQ3lBQklBZEJER3BCQWhBUkFrQWdCeWdDREFSQUlBTkJBa0dHRzBFQUVBOE1BUXNnQWtFR1RRUkFJQU5CQVVIeEhrRUFFQTlCQUF3Q0N5QUJRUUpxSUFkQkRHcEJBaEFSSUFVb0F2QXJJUVFnQnkwQURDRUtBa0FDUUFKQUlBVW9BdlFySWdaRkJFQWdCQ0VBREFFTElBUWhBQU5BSUFBb0FnZ2dDa1lOQVNBQVFSUnFJUUFnQ0VFQmFpSUlJQVpIRFFBTERBRUxJQVlnQ0VjTkFRc2dCU2dDK0NzZ0JrWUVRQ0FGSUFaQkNtb2lBRFlDK0NzZ0JDQUFRUlJzRUJjaEFDQUZLQUx3S3lFRUlBQkZCRUFnQkJBUUlBVkJBRFlDK0NzZ0JVSUFOd0x3S3lBRFFRRkJpeDlCQUJBUFFRQU1CQXNDUUNBQUlBUkdEUUFnQlNnQ2dDd2lDMFVOQUNBRktBTDhLeUVNUVFBaENBTkFJQXdnQ0VFVWJHb2lCaWdDQ0NJSkJFQWdCaUFBSUFrZ0JHdHFOZ0lJQ3lBR0tBSU1JZ2tFUUNBR0lBQWdDU0FFYTJvMkFnd0xJQWhCQVdvaUNDQUxSdzBBQ3dzZ0JTQUFOZ0x3S3lBQUlBVW9BdlFySWdSQkZHeHFRUUFnQlNnQytDc2dCR3RCRkd3UUZSb2dCU2dDOUNzaEJpQUZLQUx3S3lFRUN5QUZJQVpCQVdvMkF2UXJJQVFnQmtFVWJHb2hBQXNnQUNnQ0RDSUVCRUFnQkJBUUlBQkNBRGNDREFzZ0FDQUtOZ0lJSUFBZ0J5Z0NEQ0lFUVFwMlFRTnhOZ0lBSUFBZ0JFRUlka0VEY1RZQ0JDQUJRUVJxSUFkQkRHcEJBaEFSSUFjb0Fnd0VRQ0FEUVFKQnZSWkJBQkFQREFFTElBQWdBa0VHYXlJQ0VCUWlCRFlDRENBRVJRUkFJQU5CQVVIeEhrRUFFQTlCQUF3Q0N5QUVJQUZCQm1vZ0FoQVNHaUFBSUFJMkFoQUxRUUVMSVEwZ0IwRVFhaVFBSUEwTEp3QkJBU0VCSUFJZ0FDZ0NTQ2dDRUVFQ2RFY0VmeUFEUVFGQjF5RkJBQkFQUVFBRlFRRUxDNnNEQVFWL0l3QkJFR3NpQmlRQUFuOGdBa0VCVFFSQUlBTkJBVUg5SFVFQUVBOUJBQXdCQ3lBQUxRQzhBVUVCY1FSQUlBTkJBVUdKM2dCQkFCQVBRUUFNQVFzZ0FDZ0NuQUVnQUNnQ3pBRkJqQ3hzYWlJQUlBQXRBSWdzUVFKeU9nQ0lMQ0FCSUFaQkRHcEJBUkFSQWtBZ0FDZ0NyQ2dpQkVVRVFDQUFJQVlvQWd4QkFXb2lCVUVJRUJNaUJEWUNyQ2dnQkVVRVFDQURRUUZCbHg1QkFCQVBRUUFNQXdzZ0FDQUZOZ0tvS0F3QkN5QUdLQUlNSWdVZ0FDZ0NxQ2hKRFFBZ0JDQUZRUUZxSWdSQkEzUVFGeUlGUlFSQUlBTkJBVUdYSGtFQUVBOUJBQXdDQ3lBQUlBVTJBcXdvSUFVZ0FDZ0NxQ2dpQjBFRGRHcEJBQ0FFSUFkclFRTjBFQlVhSUFBZ0JEWUNxQ2dnQUNnQ3JDZ2hCQXNnQkNBR0tBSU1JZ1ZCQTNScUtBSUFCRUFnQmlBRk5nSUFJQU5CQVVHOU5TQUdFQTlCQUF3QkN5QUNRUUZySWdJUUZDRUVJQUFvQXF3b0lnQWdCaWdDRENJRlFRTjBhaUFFTmdJQUlBUkZCRUFnQTBFQlFaY2VRUUFRRDBFQURBRUxJQUFnQlVFRGRHb2dBallDQkNBQUlBWW9BZ3hCQTNScUtBSUFJQUZCQVdvZ0FoQVNHa0VCQ3lFSUlBWkJFR29rQUNBSUMvVUNBUVYvSXdCQkVHc2lCaVFBQW44Z0FrRUJUUVJBSUFOQkFVR2tJRUVBRUE5QkFBd0JDeUFBSUFBdEFMd0JRUUZ5T2dDOEFTQUJJQVpCREdwQkFSQVJBa0FnQUNnQ2RDSUVSUVJBSUFBZ0JpZ0NERUVCYWlJRlFRZ1FFeUlFTmdKMElBUkZCRUFnQTBFQlFiNGdRUUFRRDBFQURBTUxJQUFnQlRZQ2NBd0JDeUFHS0FJTUlnVWdBQ2dDY0VrTkFDQUVJQVZCQVdvaUJFRURkQkFYSWdWRkJFQWdBMEVCUWI0Z1FRQVFEMEVBREFJTElBQWdCVFlDZENBRklBQW9BbkFpQjBFRGRHcEJBQ0FFSUFkclFRTjBFQlVhSUFBZ0JEWUNjQ0FBS0FKMElRUUxJQVFnQmlnQ0RDSUZRUU4wYWlnQ0FBUkFJQVlnQlRZQ0FDQURRUUZCMHpVZ0JoQVBRUUFNQVFzZ0FrRUJheUlDRUJRaEJDQUFLQUowSWdBZ0JpZ0NEQ0lGUVFOMGFpQUVOZ0lBSUFSRkJFQWdBMEVCUWI0Z1FRQVFEMEVBREFFTElBQWdCVUVEZEdvZ0FqWUNCQ0FBSUFZb0FneEJBM1JxS0FJQUlBRkJBV29nQWhBU0drRUJDeUVJSUFaQkVHb2tBQ0FJQzZBQkFRUi9Jd0JCRUdzaUJDUUFBbjhnQWtVRVFDQURRUUZCMXg1QkFCQVBRUUFNQVFzZ0FTQUVRUXhxUVFFUUVVRUJJQUpCQVdzaUJVVU5BQnBCQUNFQVFRQWhBZ05BSUFGQkFXb2lBU0FFUVFocVFRRVFFU0FFS0FJSUlnWkJHSFJCSDNVZ0JrSC9BSEVnQW5KQkIzUnhJUUlnQUVFQmFpSUFJQVZIRFFBTFFRRWdBa1VOQUJvZ0EwRUJRZGNlUVFBUUQwRUFDeUVISUFSQkVHb2tBQ0FIQ3hzQVFRRWhBQ0FDQkg5QkFRVWdBMEVCUWY0Z1FRQVFEMEVBQ3d1QUFRRUJmeU1BUVJCcklnQWtBRUVCSVFRQ1FDQUNRUUZOQkVCQkFDRUVJQU5CQVVIa0lFRUFFQThNQVFzZ0FTQUFRUXhxUVFFUUVTQUJRUUZxSUFCQkNHcEJBUkFSSUFKQkFtc2dBQ2dDQ0NJQlFRVjJRUUp4SUFGQkJIWkJBM0ZxUVFKcWNFVU5BRUVBSVFRZ0EwRUJRZVFnUVFBUUR3c2dBRUVRYWlRQUlBUUxCQUJCQUFzTG9yd0JJUUJCZ0FnTGtYVmpZVzV1YjNRZ1lXeHNiMk5oZEdVZ2IzQnFYM1JqWkY5elpXZGZaR0YwWVY5amFIVnVhMTkwS2lCaGNuSmhlUUF0S3lBZ0lEQllNSGdBTFRCWUt6QllJREJZTFRCNEt6QjRJREI0QUZWdWEyNXZkMjRnWm05eWJXRjBBRVpoYVd4bFpDQjBieUJ6WlhSMWNDQjBhR1VnWkdWamIyUmxjZ0JHWVdsc1pXUWdkRzhnY21WaFpDQjBhR1VnYUdWaFpHVnlBRzVoYmdBcWJGOTBhV3hsWDJ4bGJpQStJRlZKVGxSZlRVRllJQzBnVDFCS1gwTlBUVTFQVGw5RFFreExYMFJCVkVGZlJWaFVVa0VnTFNCd1gyb3lheTArYlY5emNHVmphV1pwWTE5d1lYSmhiUzV0WDJSbFkyOWtaWEl1YlY5emIzUmZiR1Z1WjNSb0FHbHVaZ0JHWVdsc1pXUWdkRzhnWkdWamIyUmxJSFJvWlNCcGJXRm5aUUJKYm5aaGJHbGtJR0ZqWTJWemN5QjBieUJ3YVMwK2FXNWpiSFZrWlFBdmRHMXdMMjl3Wlc1cWNHVm5MM055WXk5aWFXNHZZMjl0Ylc5dUwyTnZiRzl5TG1NQVFVeE1YME5RVlZNQVQxQktYMDVWVFY5VVNGSkZRVVJUQUU1QlRnQkpUa1lBY0Y5cU1tc3RQbTFmYzNCbFkybG1hV05mY0dGeVlXMHViVjlrWldOdlpHVnlMbTFmYzI5MFgyeGxibWQwYUNBK0lGVkpUbFJmVFVGWUlDMGdUMUJLWDBOUFRVMVBUbDlEUWt4TFgwUkJWRUZmUlZoVVVrRUFDUWtKSUhCeVpXTmphVzUwYzJsNlpTQW9keXhvS1QwQUNRa0pJSE4wWlhCemFYcGxjeUFvYlN4bEtUMEFMZ0FvYm5Wc2JDa0FLQ1ZrTENWa0tTQUFKWE45Q2dBSkNTQjlDZ0JiUkVWV1hTQkVkVzF3SUdGdUlHbHRZV2RsWDJOdmJYQmZhR1ZoWkdWeUlITjBjblZqZENCN0NnQmJSRVZXWFNCRWRXMXdJR0Z1SUdsdFlXZGxYMmhsWVdSbGNpQnpkSEoxWTNRZ2V3b0FTVzFoWjJVZ2FXNW1ieUI3Q2dBSklHUmxabUYxYkhRZ2RHbHNaU0I3Q2dBbGN3a2dZMjl0Y0c5dVpXNTBJQ1ZrSUhzS0FBa0pJR052YlhBZ0pXUWdld29BQ1NCVWFXeGxJR2x1WkdWNE9pQjdDZ0FKSUUxaGNtdGxjaUJzYVhOME9pQjdDZ0JEYjJSbGMzUnlaV0Z0SUdsdVpHVjRJR1p5YjIwZ2JXRnBiaUJvWldGa1pYSTZJSHNLQUVOdlpHVnpkSEpsWVcwZ2FXNW1ieUJtY205dElHMWhhVzRnYUdWaFpHVnlPaUI3Q2dCVGRISmxZVzBnWlhKeWIzSWdkMmhwYkdVZ2NtVmhaR2x1WnlCS1VESWdTR1ZoWkdWeUlHSnZlQW9BUm05MWJtUWdZU0J0YVhOd2JHRmpaV1FnSnlWakpXTWxZeVZqSnlCaWIzZ2diM1YwYzJsa1pTQnFjREpvSUdKdmVBb0FUV0ZzWm05eWJXVmtJRXBRTWlCbWFXeGxJR1p2Y20xaGREb2dabWx5YzNRZ1ltOTRJRzExYzNRZ1ltVWdTbEJGUnlBeU1EQXdJSE5wWjI1aGRIVnlaU0JpYjNnS0FFMWhiR1p2Y20xbFpDQktVRElnWm1sc1pTQm1iM0p0WVhRNklITmxZMjl1WkNCaWIzZ2diWFZ6ZENCaVpTQm1hV3hsSUhSNWNHVWdZbTk0Q2dCT2IzUWdaVzV2ZFdkb0lHMWxiVzl5ZVNCMGJ5Qm9ZVzVrYkdVZ2FuQmxaekl3TURBZ1ltOTRDZ0JPYjNRZ1pXNXZkV2RvSUcxbGJXOXllU0IzYVhSb0lFWlVXVkFnUW05NENnQkJJRzFoY210bGNpQkpSQ0IzWVhNZ1pYaHdaV04wWldRZ0tEQjRabVl0TFNrZ2FXNXpkR1ZoWkNCdlppQWxMamg0Q2dBSkNTQnRZM1E5SlhnS0FBa0pDU0JqWW14cmMzUjVQU1VqZUFvQUNRa0pJR056ZEhrOUpTTjRDZ0FKQ1NCd2NtYzlKU040Q2dCSmJuUmxaMlZ5SUc5MlpYSm1iRzkzQ2dBSklIUmtlRDBsZFN3Z2RHUjVQU1YxQ2dBSklIUjNQU1YxTENCMGFEMGxkUW9BQ1NCMGVEQTlKWFVzSUhSNU1EMGxkUW9BU1c1MllXeHBaQ0JqYjIxd2IyNWxiblFnYVc1a1pYZzZJQ1YxQ2dCVGRISmxZVzBnZEc5dklITm9iM0owQ2dCTllYSnJaWElnYUdGdVpHeGxjaUJtZFc1amRHbHZiaUJtWVdsc1pXUWdkRzhnY21WaFpDQjBhR1VnYldGeWEyVnlJSE5sWjIxbGJuUUtBRTV2ZENCbGJtOTFaMmdnYldWdGIzSjVJR1p2Y2lCamRYSnlaVzUwSUhCeVpXTnBibU4wSUdOdlpHVmliRzlqYXlCbGJHVnRaVzUwQ2dCRmNuSnZjaUJ5WldGa2FXNW5JRk5RUTI5a0lGTlFRMjlqSUdWc1pXMWxiblFLQUVWeWNtOXlJSEpsWVdScGJtY2dVMUZqWkNCdmNpQlRVV05qSUdWc1pXMWxiblFLQUVFZ1FsQkRReUJvWldGa1pYSWdZbTk0SUdseklHRjJZV2xzWVdKc1pTQmhiSFJvYjNWbmFDQkNVRU1nWjJsMlpXNGdZbmtnZEdobElFbElSRklnWW05NElDZ2xaQ2tnYVc1a2FXTmhkR1VnWTI5dGNHOXVaVzUwY3lCaWFYUWdaR1Z3ZEdnZ2FYTWdZMjl1YzNSaGJuUUtBRVZ5Y205eUlIZHBkR2dnVTBsYUlHMWhjbXRsY2pvZ2FXeHNaV2RoYkNCMGFXeGxJRzltWm5ObGRBb0FTVzUyWVd4cFpDQndjbVZqYVc1amRBb0FUbTkwSUdWdWIzVm5hQ0J0WlcxdmNua2dkRzhnYUdGdVpHeGxJR0poYm1RZ2NISmxZMmx1ZEhNS0FFWmhhV3hsWkNCMGJ5QmtaV052WkdVZ1lXeHNJSFZ6WldRZ1kyOXRjRzl1Wlc1MGN3b0FVMmw2WlNCdlppQmpiMlJsSUdKc2IyTnJJR1JoZEdFZ1pYaGpaV1ZrY3lCemVYTjBaVzBnYkdsdGFYUnpDZ0JUYVhwbElHOW1JSFJwYkdVZ1pHRjBZU0JsZUdObFpXUnpJSE41YzNSbGJTQnNhVzFwZEhNS0FFTmhibTV2ZENCMFlXdGxJR2x1SUdOb1lYSm5aU0J0ZFd4MGFYQnNaU0JOUTFRZ2JXRnlhMlZ5Y3dvQVEyOXljblZ3ZEdWa0lGQlFUU0J0WVhKclpYSnpDZ0JPYjNRZ1pXNXZkV2RvSUcxbGJXOXllU0JtYjNJZ2RHbHNaU0J5WlhOdmJIVjBhVzl1Y3dvQVEyRnVibTkwSUhSaGEyVWdhVzRnWTJoaGNtZGxJRzExYkhScGNHeGxJR052Ykd4bFkzUnBiMjV6Q2dCSmJuWmhiR2xrSUZCRFRGSWdZbTk0TGlCU1pYQnZjblJ6SURBZ2NHRnNaWFIwWlNCamIyeDFiVzV6Q2dCWFpTQmtieUJ1YjNRZ2MzVndjRzl5ZENCU1Qwa2dhVzRnWkdWamIyUnBibWNnU0ZRZ1kyOWtaV0pzYjJOcmN3b0FRMkZ1Ym05MElHaGhibVJzWlNCaWIzZ2diMllnZFc1a1pXWnBibVZrSUhOcGVtVnpDZ0JEWVc1dWIzUWdkR0ZyWlNCcGJpQmphR0Z5WjJVZ1kyOXNiR1ZqZEdsdmJuTWdkMmwwYUc5MWRDQnpZVzFsSUc1MWJXSmxjaUJ2WmlCcGJtUnBlR1Z6Q2dCSmJuWmhiR2xrSUhScGJHVmpMVDUzYVc1ZmVIaDRJSFpoYkhWbGN3b0FRMkZ1Ym05MElHaGhibVJzWlNCaWIzZ2diMllnYkdWemN5QjBhR0Z1SURnZ1lubDBaWE1LQUVOaGJtNXZkQ0JvWVc1a2JHVWdXRXdnWW05NElHOW1JR3hsYzNNZ2RHaGhiaUF4TmlCaWVYUmxjd29BUTI5dGNHOXVaVzUwSUdsdVpHVjRJQ1YxSUhWelpXUWdjMlYyWlhKaGJDQjBhVzFsY3dvQVNXNTJZV3hwWkNCUVEweFNJR0p2ZUM0Z1VtVndiM0owY3lBbFpDQmxiblJ5YVdWekNnQk9iM1FnWlc1dmRXZG9JRzFsYlc5eWVTQjBieUJqY21WaGRHVWdWR0ZuTFhSeVpXVWdibTlrWlhNS0FFTmhibTV2ZENCMFlXdGxJR2x1SUdOb1lYSm5aU0J0WTNRZ1pHRjBZU0IzYVhSb2FXNGdiWFZzZEdsd2JHVWdUVU5VSUhKbFkyOXlaSE1LQUVOaGJtNXZkQ0JrWldOdlpHVWdkR2xzWlN3Z2JXVnRiM0o1SUdWeWNtOXlDZ0J2Y0dwZmFqSnJYMkZ3Y0d4NVgyNWlYM1JwYkdWZmNHRnlkSE5mWTI5eWNtVmpkR2x2YmlCbGNuSnZjZ29BVUhKdllteGxiU0IzYVhSb0lITnJhWEJ3YVc1bklFcFFSVWN5TURBd0lHSnZlQ3dnYzNSeVpXRnRJR1Z5Y205eUNnQlFjbTlpYkdWdElIZHBkR2dnY21WaFpHbHVaeUJLVUVWSE1qQXdNQ0JpYjNnc0lITjBjbVZoYlNCbGNuSnZjZ29BVlc1cmJtOTNiaUJ0WVhKclpYSUtBRTV2ZENCbGJtOTFaMmdnYldWdGIzSjVJSFJ2SUdGa1pDQjBiQ0J0WVhKclpYSUtBRTV2ZENCbGJtOTFaMmdnYldWdGIzSjVJSFJ2SUdGa1pDQnRhQ0J0WVhKclpYSUtBRTV2ZENCbGJtOTFaMmdnYldWdGIzSjVJSFJ2SUhSaGEyVWdhVzRnWTJoaGNtZGxJRk5KV2lCdFlYSnJaWElLQUVWeWNtOXlJSEpsWVdScGJtY2dVRkJVSUcxaGNtdGxjZ29BVG05MElHVnViM1ZuYUNCdFpXMXZjbmtnZEc4Z2NtVmhaQ0JRVUZRZ2JXRnlhMlZ5Q2dCRmNuSnZjaUJ5WldGa2FXNW5JRk5QVkNCdFlYSnJaWElLQUVWeWNtOXlJSEpsWVdScGJtY2dVRXhVSUcxaGNtdGxjZ29BUlhKeWIzSWdjbVZoWkdsdVp5Qk5RMVFnYldGeWEyVnlDZ0JPYjNRZ1pXNXZkV2RvSUcxbGJXOXllU0IwYnlCeVpXRmtJRTFEVkNCdFlYSnJaWElLQUU1dmRDQmxibTkxWjJnZ2MzQmhZMlVnWm05eUlHVjRjR1ZqZEdWa0lGTlBVQ0J0WVhKclpYSUtBRVY0Y0dWamRHVmtJRk5QVUNCdFlYSnJaWElLQUVWeWNtOXlJSEpsWVdScGJtY2dUVU5QSUcxaGNtdGxjZ29BUlhKeWIzSWdjbVZoWkdsdVp5QlNSMDRnYldGeWEyVnlDZ0JGY25KdmNpQnlaV0ZrYVc1bklGQlFUU0J0WVhKclpYSUtBRTV2ZENCbGJtOTFaMmdnYldWdGIzSjVJSFJ2SUhKbFlXUWdVRkJOSUcxaGNtdGxjZ29BUlhKeWIzSWdjbVZoWkdsdVp5QlVURTBnYldGeWEyVnlDZ0JGY25KdmNpQnlaV0ZrYVc1bklGQk1UU0J0WVhKclpYSUtBRTV2ZENCbGJtOTFaMmdnYzNCaFkyVWdabTl5SUdWNGNHVmpkR1ZrSUVWUVNDQnRZWEpyWlhJS0FFVjRjR1ZqZEdWa0lFVlFTQ0J0WVhKclpYSUtBRVZ5Y205eUlISmxZV1JwYm1jZ1ExSkhJRzFoY210bGNnb0FWVzVyYm05M2JpQndjbTluY21WemMybHZiaUJ2Y21SbGNpQnBiaUJEVDBRZ2JXRnlhMlZ5Q2dCVmJtdHViM2R1SUZOamIyUWdkbUZzZFdVZ2FXNGdRMDlFSUcxaGNtdGxjZ29BUlhKeWIzSWdjbVZoWkdsdVp5QkRUMFFnYldGeWEyVnlDZ0JGY25KdmNpQnlaV0ZrYVc1bklGRkRSQ0J0WVhKclpYSUtBRU55Y205eUlISmxZV1JwYm1jZ1EwSkVJRzFoY210bGNnb0FSWEp5YjNJZ2NtVmhaR2x1WnlCUVQwTWdiV0Z5YTJWeUNnQkZjbkp2Y2lCeVpXRmthVzVuSUVOUFF5QnRZWEpyWlhJS0FFVnljbTl5SUhKbFlXUnBibWNnVVVORElHMWhjbXRsY2dvQVJYSnliM0lnY21WaFpHbHVaeUJOUTBNZ2JXRnlhMlZ5Q2dCT2IzUWdaVzV2ZFdkb0lHMWxiVzl5ZVNCMGJ5QnlaV0ZrSUUxRFF5QnRZWEpyWlhJS0FISmxjWFZwY21Wa0lGTkpXaUJ0WVhKclpYSWdibTkwSUdadmRXNWtJR2x1SUcxaGFXNGdhR1ZoWkdWeUNnQnlaWEYxYVhKbFpDQkRUMFFnYldGeWEyVnlJRzV2ZENCbWIzVnVaQ0JwYmlCdFlXbHVJR2hsWVdSbGNnb0FjbVZ4ZFdseVpXUWdVVU5FSUcxaGNtdGxjaUJ1YjNRZ1ptOTFibVFnYVc0Z2JXRnBiaUJvWldGa1pYSUtBRTV2ZENCbGJtOTFaMmdnYldWdGIzSjVJSFJ2SUdoaGJtUnNaU0JxY0dWbk1qQXdNQ0JtYVd4bElHaGxZV1JsY2dvQVRtOTBJR1Z1YjNWbmFDQnRaVzF2Y25rZ2RHOGdjbVZoWkNCb1pXRmtaWElLQUVWeWNtOXlJSGRwZEdnZ1NsQWdVMmxuYm1GMGRYSmxJRG9nWW1Ga0lHMWhaMmxqSUc1MWJXSmxjZ29BU1c0Z1UwOVVJRzFoY210bGNpd2dWRkJUYjNRZ0tDVmtLU0JwY3lCdWIzUWdkbUZzYVdRZ2NtVm5ZWEprY3lCMGJ5QjBhR1VnWTNWeWNtVnVkQ0J1ZFcxaVpYSWdiMllnZEdsc1pTMXdZWEowSUNnbFpDa3NJR2RwZG1sdVp5QjFjQW9BU1c0Z1UwOVVJRzFoY210bGNpd2dWRkJUYjNRZ0tDVmtLU0JwY3lCdWIzUWdkbUZzYVdRZ2NtVm5ZWEprY3lCMGJ5QjBhR1VnY0hKbGRtbHZkWE1nYm5WdFltVnlJRzltSUhScGJHVXRjR0Z5ZENBb0pXUXBMQ0JuYVhacGJtY2dkWEFLQUVsdUlGTlBWQ0J0WVhKclpYSXNJRlJRVTI5MElDZ2xaQ2tnYVhNZ2JtOTBJSFpoYkdsa0lISmxaMkZ5WkhNZ2RHOGdkR2hsSUdOMWNuSmxiblFnYm5WdFltVnlJRzltSUhScGJHVXRjR0Z5ZENBb2FHVmhaR1Z5S1NBb0pXUXBMQ0JuYVhacGJtY2dkWEFLQUhScGJHVnpJSEpsY1hWcGNtVWdZWFFnYkdWaGMzUWdiMjVsSUhKbGMyOXNkWFJwYjI0S0FFMWhjbXRsY2lCcGN5QnViM1FnWTI5dGNHeHBZVzUwSUhkcGRHZ2dhWFJ6SUhCdmMybDBhVzl1Q2dCUWNtOWliR1Z0SUhkcGRHZ2djMlZsYXlCbWRXNWpkR2x2YmdvQVJYSnliM0lnY21WaFpHbHVaeUJUVUVOdlpDQlRVRU52WXlCbGJHVnRaVzUwTENCSmJuWmhiR2xrSUdOaWJHdDNMMk5pYkd0b0lHTnZiV0pwYm1GMGFXOXVDZ0JKYm5aaGJHbGtJRzExYkhScGNHeGxJR052YlhCdmJtVnVkQ0IwY21GdWMyWnZjbTFoZEdsdmJnb0FRMkZ1Ym05MElIUmhhMlVnYVc0Z1kyaGhjbWRsSUdOdmJHeGxZM1JwYjI1eklHOTBhR1Z5SUhSb1lXNGdZWEp5WVhrZ1pHVmpiM0p5Wld4aGRHbHZiZ29BVkc5dklHeGhjbWRsSUhaaGJIVmxJR1p2Y2lCT2NIQnRDZ0JPYjNRZ1pXNXZkV2RvSUdKNWRHVnpJSFJ2SUhKbFlXUWdUbkJ3YlFvQVltRmtJSEJzWVdObFpDQnFjR1ZuSUdOdlpHVnpkSEpsWVcwS0FBa2dUV0ZwYmlCb1pXRmtaWElnYzNSaGNuUWdjRzl6YVhScGIyNDlKV3hzYVFvSklFMWhhVzRnYUdWaFpHVnlJR1Z1WkNCd2IzTnBkR2x2YmowbGJHeHBDZ0JOWVhKclpYSWdjMmw2WlNCcGJtTnZibk5wYzNSbGJuUWdkMmwwYUNCemRISmxZVzBnYkdWdVozUm9DZ0JVYVd4bElIQmhjblFnYkdWdVozUm9JSE5wZW1VZ2FXNWpiMjV6YVhOMFpXNTBJSGRwZEdnZ2MzUnlaV0Z0SUd4bGJtZDBhQW9BUTJGdWJtOTBJSFJoYTJVZ2FXNGdZMmhoY21kbElHMTFiSFJwY0d4bElHUmhkR0VnYzNCaGJtNXBibWNLQUZkeWIyNW5JR1pzWVdjS0FFVnljbTl5SUhkcGRHZ2dSbFJaVUNCemFXZHVZWFIxY21VZ1FtOTRJSE5wZW1VS0FFVnljbTl5SUhkcGRHZ2dTbEFnYzJsbmJtRjBkWEpsSUVKdmVDQnphWHBsQ2dCSmJuWmhiR2xrSUhCeVpXTnBibU4wSUhOcGVtVUtBRWx1WTI5dWMybHpkR1Z1ZENCdFlYSnJaWElnYzJsNlpRb0FTVzUyWVd4cFpDQnRZWEpyWlhJZ2MybDZaUW9BUlhKeWIzSWdkMmwwYUNCVFNWb2diV0Z5YTJWeUlITnBlbVVLQUU1dmRDQmxibTkxWjJnZ2JXVnRiM0o1SUhSdklHRmtaQ0JoSUc1bGR5QjJZV3hwWkdGMGFXOXVJSEJ5YjJObFpIVnlaUW9BVG05MElHVnViM1ZuYUNCdFpXMXZjbmtnZEc4Z1pHVmpiMlJsSUhScGJHVUtBRVpoYVd4bFpDQjBieUJrWldOdlpHVWdkR2hsSUdOdlpHVnpkSEpsWVcwZ2FXNGdkR2hsSUVwUU1pQm1hV3hsQ2dCRFlXNXViM1FnZEdGclpTQnBiaUJqYUdGeVoyVWdZMjlzYkdWamRHbHZibk1nZDJsMGFDQnBibVJwZUNCemFIVm1abXhsQ2dCRFlXNXViM1FnWVd4c2IyTmhkR1VnVkdsbGNpQXhJR2hoYm1Sc1pRb0FUbThnWkdWamIyUmxaQ0JoY21WaElIQmhjbUZ0WlhSbGNuTXNJSE5sZENCMGFHVWdaR1ZqYjJSbFpDQmhjbVZoSUhSdklIUm9aU0IzYUc5c1pTQnBiV0ZuWlFvQVRtOTBJR1Z1YjNWbmFDQnRaVzF2Y25rZ2RHOGdZM0psWVhSbElGUmhaeTEwY21WbENnQk9iM1FnWlc1dmRXZG9JRzFsYlc5eWVTQjBieUJ5WldsdWFYUnBZV3hwZW1VZ2RHaGxJSFJoWnlCMGNtVmxDZ0JGY25KdmNpQnlaV0ZrYVc1bklGTlFRMjlrSUZOUVEyOWpJR1ZzWlcxbGJuUXNJRWx1ZG1Gc2FXUWdkSEpoYm5ObWIzSnRZWFJwYjI0Z1ptOTFibVFLQUVWeWNtOXlJSEpsWVdScGJtY2dVMUJEYjJRZ1UxQkRiMk1nWld4bGJXVnVkQzRnVlc1emRYQndiM0owWldRZ1RXbDRaV1FnU0ZRZ1kyOWtaUzFpYkc5amF5QnpkSGxzWlNCbWIzVnVaQW9BVkdsc1pTQlpJR052YjNKa2FXNWhkR1Z6SUdGeVpTQnViM1FnYzNWd2NHOXlkR1ZrQ2dCVWFXeGxJRmdnWTI5dmNtUnBibUYwWlhNZ1lYSmxJRzV2ZENCemRYQndiM0owWldRS0FFbHRZV2RsSUdOdmIzSmthVzVoZEdWeklHRmliM1psSUVsT1ZGOU5RVmdnWVhKbElHNXZkQ0J6ZFhCd2IzSjBaV1FLQUVwUVJVY3lNREF3SUVobFlXUmxjaUJpYjNnZ2JtOTBJSEpsWVdRZ2VXVjBMQ0FuSldNbFl5VmpKV01uSUdKdmVDQjNhV3hzSUdKbElHbG5ibTl5WldRS0FHOXdhbDlxTW10ZmJXVnlaMlZmY0hCMEtDa2dhR0Z6SUdGc2NtVmhaSGtnWW1WbGJpQmpZV3hzWldRS0FFNXZkQ0JsYm05MVoyZ2diV1Z0YjNKNUlIUnZJSEpsWVdRZ1UwOVVJRzFoY210bGNpNGdWR2xzWlNCcGJtUmxlQ0JoYkd4dlkyRjBhVzl1SUdaaGFXeGxaQW9BU1dkdWIzSnBibWNnYVdoa2NpQmliM2d1SUVacGNuTjBJR2xvWkhJZ1ltOTRJR0ZzY21WaFpIa2djbVZoWkFvQVduQndkQ0FsZFNCaGJISmxZV1I1SUhKbFlXUUtBRnB3Y0cwZ0pYVWdZV3h5WldGa2VTQnlaV0ZrQ2dCUVZFVlNUU0JqYUdWamF5Qm1ZV2xzZFhKbE9pQWxaQ0J6ZVc1MGFHVjBhWHBsWkNBd2VFWkdJRzFoY210bGNuTWdjbVZoWkFvQUNRa0pJR05pYkd0M1BUSmVKV1FLQUFrSkNTQmpZbXhyYUQweVhpVmtDZ0FKQ1FrZ2NXNTBjM1I1UFNWa0NnQWxjeUJrZUQwbFpDd2daSGs5SldRS0FBa0pDU0J5YjJsemFHbG1kRDBsWkFvQUNRa0pJRzUxYldkaWFYUnpQU1ZrQ2dBSkNTQnVkVzFzWVhsbGNuTTlKV1FLQUNWeklHNTFiV052YlhCelBTVmtDZ0J2Y0dwZmFuQXlYMkZ3Y0d4NVgyTmtaV1k2SUdGamJqMGxaQ3dnYm5WdFkyOXRjSE05SldRS0FHOXdhbDlxY0RKZllYQndiSGxmWTJSbFpqb2dZMjQ5SldRc0lHNTFiV052YlhCelBTVmtDZ0FKQ1FrZ2JuVnRjbVZ6YjJ4MWRHbHZibk05SldRS0FBa0pJSFI1Y0dVOUpTTjRMQ0J3YjNNOUpXeHNhU3dnYkdWdVBTVmtDZ0FsY3lCeloyNWtQU1ZrQ2dBSkNRa2djVzFtWW1sa1BTVmtDZ0FsY3lCd2NtVmpQU1ZrQ2dBSkNTQnVZaUJ2WmlCMGFXeGxMWEJoY25RZ2FXNGdkR2xzWlNCYkpXUmRQU1ZrQ2dBbGN5QjRNVDBsWkN3Z2VURTlKV1FLQUNWeklIZ3dQU1ZrTENCNU1EMGxaQW9BUm1GcGJHVmtJSFJ2SUdSbFkyOWtaU0IwYVd4bElDVmtMeVZrQ2dCVFpYUjBhVzVuSUdSbFkyOWthVzVuSUdGeVpXRWdkRzhnSldRc0pXUXNKV1FzSldRS0FFWmhhV3hsWkNCMGJ5QmtaV052WkdVZ1kyOXRjRzl1Wlc1MElDVmtDZ0JKYm5aaGJHbGtJSFpoYkhWbElHWnZjaUJ1ZFcxeVpYTnZiSFYwYVc5dWN5QTZJQ1ZrTENCdFlYZ2dkbUZzZFdVZ2FYTWdjMlYwSUdsdUlHOXdaVzVxY0dWbkxtZ2dZWFFnSldRS0FFbHVkbUZzYVdRZ1kyOXRjRzl1Wlc1MElHNTFiV0psY2pvZ0pXUXNJSEpsWjJGeVpHbHVaeUIwYUdVZ2JuVnRZbVZ5SUc5bUlHTnZiWEJ2Ym1WdWRITWdKV1FLQUZSdmJ5QnRZVzU1SUZCUFEzTWdKV1FLQUVsdWRtRnNhV1FnZEdsc1pTQnVkVzFpWlhJZ0pXUUtBRWx1ZG1Gc2FXUWdkR2xzWlNCd1lYSjBJR2x1WkdWNElHWnZjaUIwYVd4bElHNTFiV0psY2lBbFpDNGdSMjkwSUNWa0xDQmxlSEJsWTNSbFpDQWxaQW9BUlhKeWIzSWdkMmwwYUNCVFNWb2diV0Z5YTJWeU9pQnVkVzFpWlhJZ2IyWWdZMjl0Y0c5dVpXNTBJR2x6SUdsc2JHVm5ZV3dnTFQ0Z0pXUUtBRTV2ZENCbGJtOTFaMmdnYldWdGIzSjVJR1p2Y2lCamFXVnNZV0lLQUVOaGJtNXZkQ0JoYkd4dlkyRjBaU0JqWW14ckxUNWtaV052WkdWa1gyUmhkR0VLQUVaaGFXeGxaQ0IwYnlCdFpYSm5aU0JRVUZRZ1pHRjBZUW9BUm1GcGJHVmtJSFJ2SUcxbGNtZGxJRkJRVFNCa1lYUmhDZ0JKYm5aaGJHbGtJRzUxYldKbGNpQnZaaUJzWVhsbGNuTWdhVzRnUTA5RUlHMWhjbXRsY2lBNklDVmtJRzV2ZENCcGJpQnlZVzVuWlNCYk1TMDJOVFV6TlYwS0FDVnpPaVZrT21OdmJHOXlYMk50ZVd0ZmRHOWZjbWRpQ2dsRFFVNGdUazlVSUVOUFRsWkZVbFFLQUNWek9pVmtPbU52Ykc5eVgyVnplV05qWDNSdlgzSm5ZZ29KUTBGT0lFNVBWQ0JEVDA1V1JWSlVDZ0FsY3pvbFpEcGpiMnh2Y2w5emVXTmpYM1J2WDNKbllnb0pRMEZPSUU1UFZDQkRUMDVXUlZKVUNnQlRkSEpsWVcwZ2RHOXZJSE5vYjNKMExDQmxlSEJsWTNSbFpDQlRUMVFLQUZWdVlXSnNaU0IwYnlCelpYUWdkREVnYUdGdVpHeGxJR0Z6SUZSTVV3b0FVM1J5WldGdElHUnZaWE1nYm05MElHVnVaQ0IzYVhSb0lFVlBRd29BUTJGdWJtOTBJR2hoYm1Sc1pTQmliM2dnYzJsNlpYTWdhR2xuYUdWeUlIUm9ZVzRnTWw0ek1nb0FiM0JxWDNCcFgyNWxlSFJmYkhKamNDZ3BPaUJwYm5aaGJHbGtJR052YlhCdWJ6QXZZMjl0Y0c1dk1Rb0FiM0JxWDNCcFgyNWxlSFJmY214amNDZ3BPaUJwYm5aaGJHbGtJR052YlhCdWJ6QXZZMjl0Y0c1dk1Rb0FiM0JxWDNCcFgyNWxlSFJmWTNCeWJDZ3BPaUJwYm5aaGJHbGtJR052YlhCdWJ6QXZZMjl0Y0c1dk1Rb0FiM0JxWDNCcFgyNWxlSFJmY0dOeWJDZ3BPaUJwYm5aaGJHbGtJR052YlhCdWJ6QXZZMjl0Y0c1dk1Rb0FiM0JxWDNCcFgyNWxlSFJmY25CamJDZ3BPaUJwYm5aaGJHbGtJR052YlhCdWJ6QXZZMjl0Y0c1dk1Rb0FiM0JxWDNReFgyUmxZMjlrWlY5allteHJLQ2s2SUhWdWMzVndjRzl5ZEdWa0lHSndibTlmY0d4MWMxOXZibVVnUFNBbFpDQStQU0F6TVFvQVJtRnBiR1ZrSUhSdklHUmxZMjlrWlNCMGFXeGxJREV2TVFvQVNXNXpkV1ptYVdOcFpXNTBJR1JoZEdFZ1ptOXlJRU5OUVZBZ1ltOTRMZ29BVG1WbFpDQjBieUJ5WldGa0lHRWdVRU5NVWlCaWIzZ2dZbVZtYjNKbElIUm9aU0JEVFVGUUlHSnZlQzRLQUVsdWMzVm1abWxqYVdWdWRDQmtZWFJoSUdadmNpQkRSRVZHSUdKdmVDNEtBRTUxYldKbGNpQnZaaUJqYUdGdWJtVnNJR1JsYzJOeWFYQjBhVzl1SUdseklHVnhkV0ZzSUhSdklIcGxjbThnYVc0Z1EwUkZSaUJpYjNndUNnQlRkSEpsWVcwZ1pYSnliM0lnZDJocGJHVWdjbVZoWkdsdVp5QktVRElnU0dWaFpHVnlJR0p2ZURvZ2JtOGdKMmxvWkhJbklHSnZlQzRLQUU1dmJpQmpiMjVtYjNKdFlXNTBJR052WkdWemRISmxZVzBnVkZCemIzUTlQVlJPYzI5MExnb0FVM1J5WldGdElHVnljbTl5SUhkb2FXeGxJSEpsWVdScGJtY2dTbEF5SUVobFlXUmxjaUJpYjNnNklHSnZlQ0JzWlc1bmRHZ2dhWE1nYVc1amIyNXphWE4wWlc1MExnb0FRbTk0SUd4bGJtZDBhQ0JwY3lCcGJtTnZibk5wYzNSbGJuUXVDZ0JTWlhOdmJIVjBhVzl1SUdaaFkzUnZjaUJwY3lCbmNtVmhkR1Z5SUhSb1lXNGdkR2hsSUcxaGVHbHRkVzBnY21WemIyeDFkR2x2YmlCcGJpQjBhR1VnWTI5dGNHOXVaVzUwTGdvQVEyOXRjRzl1Wlc1MElHMWhjSEJwYm1jZ2MyVmxiWE1nZDNKdmJtY3VJRlJ5ZVdsdVp5QjBieUJqYjNKeVpXTjBMZ29BU1c1amIyMXdiR1YwWlNCamFHRnVibVZzSUdSbFptbHVhWFJwYjI1ekxnb0FUV0ZzWm05eWJXVmtJRWhVSUdOdlpHVmliRzlqYXk0Z1NXNTJZV3hwWkNCamIyUmxZbXh2WTJzZ2JHVnVaM1JvSUhaaGJIVmxjeTRLQUZkbElHUnZJRzV2ZENCemRYQndiM0owSUcxdmNtVWdkR2hoYmlBeklHTnZaR2x1WnlCd1lYTnpaWE1nYVc0Z1lXNGdTRlFnWTI5a1pXSnNiMk5yT3lCVWFHbHpJR052WkdWaWJHOWphM01nYUdGeklDVmtJSEJoYzNObGN5NEtBRTFoYkdadmNtMWxaQ0JJVkNCamIyUmxZbXh2WTJzdUlFUmxZMjlrYVc1bklIUm9hWE1nWTI5a1pXSnNiMk5ySUdseklITjBiM0J3WldRdUlGUm9aWEpsSUdGeVpTQWxaQ0I2WlhKdklHSnBkSEJzWVc1bGN5QnBiaUFsWkNCaWFYUndiR0Z1WlhNdUNnQkRZVzV1YjNRZ2RHRnJaU0JwYmlCamFHRnlaMlVnYlhWc2RHbHdiR1VnZEhKaGJuTm1iM0p0WVhScGIyNGdjM1JoWjJWekxnb0FWVzVyYm05M2JpQnRZWEpyWlhJZ2FHRnpJR0psWlc0Z1pHVjBaV04wWldRZ1lXNWtJR2RsYm1WeVlYUmxaQ0JsY25KdmNpNEtBRU52WkdWaklIQnliM1pwWkdWa0lIUnZJSFJvWlNCdmNHcGZjMlYwZFhCZlpHVmpiMlJsY2lCbWRXNWpkR2x2YmlCcGN5QnViM1FnWVNCa1pXTnZiWEJ5WlhOemIzSWdhR0Z1Wkd4bGNpNEtBRU52WkdWaklIQnliM1pwWkdWa0lIUnZJSFJvWlNCdmNHcGZjbVZoWkY5b1pXRmtaWElnWm5WdVkzUnBiMjRnYVhNZ2JtOTBJR0VnWkdWamIyMXdjbVZ6YzI5eUlHaGhibVJzWlhJdUNnQlVhV3hsY3lCa2IyNG5kQ0JoYkd3Z2FHRjJaU0IwYUdVZ2MyRnRaU0JrYVcxbGJuTnBiMjR1SUZOcmFYQWdkR2hsSUUxRFZDQnpkR1Z3TGdvQVRuVnRZbVZ5SUc5bUlHTnZiWEJ2Ym1WdWRITWdLQ1ZrS1NCcGN5QnBibU52Ym5OcGMzUmxiblFnZDJsMGFDQmhJRTFEVkM0Z1UydHBjQ0IwYUdVZ1RVTlVJSE4wWlhBdUNnQktVRElnWW05NElIZG9hV05vSUdGeVpTQmhablJsY2lCMGFHVWdZMjlrWlhOMGNtVmhiU0IzYVd4c0lHNXZkQ0JpWlNCeVpXRmtJR0o1SUhSb2FYTWdablZ1WTNScGIyNHVDZ0JOWVd4bWIzSnRaV1FnU0ZRZ1kyOWtaV0pzYjJOckxpQlhhR1Z1SUhSb1pTQnVkVzFpWlhJZ2IyWWdlbVZ5YnlCd2JHRnVaWE1nWW1sMGNHeGhibVZ6SUdseklHVnhkV0ZzSUhSdklIUm9aU0J1ZFcxaVpYSWdiMllnWW1sMGNHeGhibVZ6TENCdmJteDVJSFJvWlNCamJHVmhiblZ3SUhCaGMzTWdiV0ZyWlhNZ2MyVnVjMlVzSUdKMWRDQjNaU0JvWVhabElDVmtJSEJoYzNObGN5QnBiaUIwYUdseklHTnZaR1ZpYkc5amF5NGdWR2hsY21WbWIzSmxMQ0J2Ym14NUlIUm9aU0JqYkdWaGJuVndJSEJoYzNNZ2QybHNiQ0JpWlNCa1pXTnZaR1ZrTGlCVWFHbHpJRzFsYzNOaFoyVWdkMmxzYkNCdWIzUWdZbVVnWkdsemNHeGhlV1ZrSUdGbllXbHVMZ29BU1cxaFoyVWdhR0Z6SUd4bGMzTWdZMjl0Y0c5dVpXNTBjeUIwYUdGdUlHTnZaR1Z6ZEhKbFlXMHVDZ0JPWldWa0lIUnZJR1JsWTI5a1pTQjBhR1VnYldGcGJpQm9aV0ZrWlhJZ1ltVm1iM0psSUdKbFoybHVJSFJ2SUdSbFkyOWtaU0IwYUdVZ2NtVnRZV2x1YVc1bklHTnZaR1Z6ZEhKbFlXMHVDZ0JRYzI5MElIWmhiSFZsSUc5bUlIUm9aU0JqZFhKeVpXNTBJSFJwYkdVdGNHRnlkQ0JwY3lCbGNYVmhiQ0IwYnlCNlpYSnZMQ0IzWlNCaGMzTjFiV2x1WnlCcGRDQnBjeUIwYUdVZ2JHRnpkQ0IwYVd4bExYQmhjblFnYjJZZ2RHaGxJR052WkdWemRISmxZVzB1Q2dCQklHMWhiR1p2Y20xbFpDQmpiMlJsWW14dlkyc2dkR2hoZENCb1lYTWdiVzl5WlNCMGFHRnVJRzl1WlNCamIyUnBibWNnY0dGemN5d2dZblYwSUhwbGNtOGdiR1Z1WjNSb0lHWnZjaUF5Ym1RZ1lXNWtJSEJ2ZEdWdWRHbGhiR3g1SUhSb1pTQXpjbVFnY0dGemN5QnBiaUJoYmlCSVZDQmpiMlJsWW14dlkyc3VDZ0FKQ1FrZ2RHbHNaUzF3WVhKMFd5VmtYVG9nYzNSaGNsOXdiM005Sld4c2FTd2daVzVrWDJobFlXUmxjajBsYkd4cExDQmxibVJmY0c5elBTVnNiR2t1Q2dCVWFXeGxJQ1YxSUdoaGN5QlVVSE52ZENBOVBTQXdJR0Z1WkNCVVRuTnZkQ0E5UFNBd0xDQmlkWFFnYm04Z2IzUm9aWElnZEdsc1pTMXdZWEowY3lCM1pYSmxJR1p2ZFc1a0xpQkZUME1nYVhNZ1lXeHpieUJ0YVhOemFXNW5MZ29BUTI5dGNHOXVaVzUwSUNWa0lHUnZaWE51SjNRZ2FHRjJaU0JoSUcxaGNIQnBibWN1Q2dCQklHTnZibVp2Y20xcGJtY2dTbEF5SUhKbFlXUmxjaUJ6YUdGc2JDQnBaMjV2Y21VZ1lXeHNJRU52Ykc5MWNpQlRjR1ZqYVdacFkyRjBhVzl1SUdKdmVHVnpJR0ZtZEdWeUlIUm9aU0JtYVhKemRDd2djMjhnZDJVZ2FXZHViM0psSUhSb2FYTWdiMjVsTGdvQVZHaGxJSE5wWjI1aGRIVnlaU0JpYjNnZ2JYVnpkQ0JpWlNCMGFHVWdabWx5YzNRZ1ltOTRJR2x1SUhSb1pTQm1hV3hsTGdvQVZHaGxJQ0JpYjNnZ2JYVnpkQ0JpWlNCMGFHVWdabWx5YzNRZ1ltOTRJR2x1SUhSb1pTQm1hV3hsTGdvQVZHaGxJR1owZVhBZ1ltOTRJRzExYzNRZ1ltVWdkR2hsSUhObFkyOXVaQ0JpYjNnZ2FXNGdkR2hsSUdacGJHVXVDZ0JHWVdsc1pXUWdkRzhnWkdWamIyUmxMZ29BVFdGc1ptOXliV1ZrSUVoVUlHTnZaR1ZpYkc5amF5NGdTVzVqYjNKeVpXTjBJRTFGVENCelpXZHRaVzUwSUhObGNYVmxibU5sTGdvQVEyOXRjRzl1Wlc1MElDVmtJR2x6SUcxaGNIQmxaQ0IwZDJsalpTNEtBRTl1YkhrZ2IyNWxJRU5OUVZBZ1ltOTRJR2x6SUdGc2JHOTNaV1F1Q2dCWFpTQnVaV1ZrSUdGdUlHbHRZV2RsSUhCeVpYWnBiM1Z6YkhrZ1kzSmxZWFJsWkM0S0FFbElSRklnWW05NFgyMXBjM05wYm1jdUlGSmxjWFZwY21Wa0xnb0FTbEF5U0NCaWIzZ2diV2x6YzJsdVp5NGdVbVZ4ZFdseVpXUXVDZ0JPYjNRZ2MzVnlaU0JvYjNjZ2RHaGhkQ0JvWVhCd1pXNWxaQzRLQUUxaGFXNGdhR1ZoWkdWeUlHaGhjeUJpWldWdUlHTnZjbkpsWTNSc2VTQmtaV052WkdWa0xnb0FWR2xzWlNBbFpDOGxaQ0JvWVhNZ1ltVmxiaUJrWldOdlpHVmtMZ29BU0dWaFpHVnlJRzltSUhScGJHVWdKV1FnTHlBbFpDQm9ZWE1nWW1WbGJpQnlaV0ZrTGdvQVJXMXdkSGtnVTA5VUlHMWhjbXRsY2lCa1pYUmxZM1JsWkRvZ1VITnZkRDBsWkM0S0FFUnBjbVZqZENCMWMyVWdZWFFnSXlWa0lHaHZkMlYyWlhJZ2NHTnZiRDBsWkM0S0FFbHRjR3hsYldWdWRHRjBhVzl1SUd4cGJXbDBZWFJwYjI0NklHWnZjaUJ3WVd4bGRIUmxJRzFoY0hCcGJtY3NJSEJqYjJ4YkpXUmRJSE5vYjNWc1pDQmlaU0JsY1hWaGJDQjBieUFsWkN3Z1luVjBJR2x6SUdWeGRXRnNJSFJ2SUNWa0xnb0FTVzUyWVd4cFpDQmpiMjF3YjI1bGJuUXZjR0ZzWlhSMFpTQnBibVJsZUNCbWIzSWdaR2x5WldOMElHMWhjSEJwYm1jZ0pXUXVDZ0JKYm5aaGJHbGtJSFpoYkhWbElHWnZjaUJqYldGd1d5VmtYUzV0ZEhsd0lEMGdKV1F1Q2dCUWMyOTBJSFpoYkhWbElHbHpJRzV2ZENCamIzSnlaV04wSUhKbFoyRnlaSE1nZEc4Z2RHaGxJRXBRUlVjeU1EQXdJRzV2Y20wNklDVmtMZ29BVFdGc1ptOXliV1ZrSUVoVUlHTnZaR1ZpYkc5amF5NGdWa3hESUdOdlpHVWdjSEp2WkhWalpYTWdjMmxuYm1sbWFXTmhiblFnYzJGdGNHeGxjeUJ2ZFhSemFXUmxJSFJvWlNCamIyUmxZbXh2WTJzZ1lYSmxZUzRLQUZWdVpYaHdaV04wWldRZ1QwOU5MZ29BTXpJZ1ltbDBjeUJoY21VZ2JtOTBJR1Z1YjNWbmFDQjBieUJrWldOdlpHVWdkR2hwY3lCamIyUmxZbXh2WTJzc0lITnBibU5sSUhSb1pTQnVkVzFpWlhJZ2IyWWdZbWwwY0d4aGJtVXNJQ1ZrTENCcGN5QnNZWEpuWlhJZ2RHaGhiaUF6TUM0S0FFSnZkSFJ2YlNCd2IzTnBkR2x2YmlCdlppQjBhR1VnWkdWamIyUmxaQ0JoY21WaElDaHlaV2RwYjI1ZmVURTlKV1FwSUhOb2IzVnNaQ0JpWlNBK0lEQXVDZ0JTYVdkb2RDQndiM05wZEdsdmJpQnZaaUIwYUdVZ1pHVmpiMlJsWkNCaGNtVmhJQ2h5WldkcGIyNWZlREU5SldRcElITm9iM1ZzWkNCaVpTQStJREF1Q2dCVmNDQndiM05wZEdsdmJpQnZaaUIwYUdVZ1pHVmpiMlJsWkNCaGNtVmhJQ2h5WldkcGIyNWZlVEE5SldRcElITm9iM1ZzWkNCaVpTQStQU0F3TGdvQVRHVm1kQ0J3YjNOcGRHbHZiaUJ2WmlCMGFHVWdaR1ZqYjJSbFpDQmhjbVZoSUNoeVpXZHBiMjVmZURBOUpXUXBJSE5vYjNWc1pDQmlaU0ErUFNBd0xnb0FSWEp5YjNJZ2NtVmhaR2x1WnlCUVVGUWdiV0Z5YTJWeU9pQndZV05yWlhRZ2FHVmhaR1Z5SUdoaGRtVWdZbVZsYmlCd2NtVjJhVzkxYzJ4NUlHWnZkVzVrSUdsdUlIUm9aU0J0WVdsdUlHaGxZV1JsY2lBb1VGQk5JRzFoY210bGNpa3VDZ0JUZEdGeWRDQjBieUJ5WldGa0lHb3lheUJ0WVdsdUlHaGxZV1JsY2lBb0pXeHNaQ2t1Q2dCQ2IzUjBiMjBnY0c5emFYUnBiMjRnYjJZZ2RHaGxJR1JsWTI5a1pXUWdZWEpsWVNBb2NtVm5hVzl1WDNreFBTVmtLU0JwY3lCdmRYUnphV1JsSUhSb1pTQnBiV0ZuWlNCaGNtVmhJQ2haYzJsNlBTVmtLUzRLQUZWd0lIQnZjMmwwYVc5dUlHOW1JSFJvWlNCa1pXTnZaR1ZrSUdGeVpXRWdLSEpsWjJsdmJsOTVNRDBsWkNrZ2FYTWdiM1YwYzJsa1pTQjBhR1VnYVcxaFoyVWdZWEpsWVNBb1dYTnBlajBsWkNrdUNnQlNhV2RvZENCd2IzTnBkR2x2YmlCdlppQjBhR1VnWkdWamIyUmxaQ0JoY21WaElDaHlaV2RwYjI1ZmVERTlKV1FwSUdseklHOTFkSE5wWkdVZ2RHaGxJR2x0WVdkbElHRnlaV0VnS0ZoemFYbzlKV1FwTGdvQVRHVm1kQ0J3YjNOcGRHbHZiaUJ2WmlCMGFHVWdaR1ZqYjJSbFpDQmhjbVZoSUNoeVpXZHBiMjVmZURBOUpXUXBJR2x6SUc5MWRITnBaR1VnZEdobElHbHRZV2RsSUdGeVpXRWdLRmh6YVhvOUpXUXBMZ29BUW05MGRHOXRJSEJ2YzJsMGFXOXVJRzltSUhSb1pTQmtaV052WkdWa0lHRnlaV0VnS0hKbFoybHZibDk1TVQwbFpDa2dhWE1nYjNWMGMybGtaU0IwYUdVZ2FXMWhaMlVnWVhKbFlTQW9XVTl6YVhvOUpXUXBMZ29BVlhBZ2NHOXphWFJwYjI0Z2IyWWdkR2hsSUdSbFkyOWtaV1FnWVhKbFlTQW9jbVZuYVc5dVgza3dQU1ZrS1NCcGN5QnZkWFJ6YVdSbElIUm9aU0JwYldGblpTQmhjbVZoSUNoWlQzTnBlajBsWkNrdUNnQlNhV2RvZENCd2IzTnBkR2x2YmlCdlppQjBhR1VnWkdWamIyUmxaQ0JoY21WaElDaHlaV2RwYjI1ZmVERTlKV1FwSUdseklHOTFkSE5wWkdVZ2RHaGxJR2x0WVdkbElHRnlaV0VnS0ZoUGMybDZQU1ZrS1M0S0FFeGxablFnY0c5emFYUnBiMjRnYjJZZ2RHaGxJR1JsWTI5a1pXUWdZWEpsWVNBb2NtVm5hVzl1WDNnd1BTVmtLU0JwY3lCdmRYUnphV1JsSUhSb1pTQnBiV0ZuWlNCaGNtVmhJQ2hZVDNOcGVqMGxaQ2t1Q2dCVGFYcGxJSGdnYjJZZ2RHaGxJR1JsWTI5a1pXUWdZMjl0Y0c5dVpXNTBJR2x0WVdkbElHbHpJR2x1WTI5eWNtVmpkQ0FvWTI5dGNGc2xaRjB1ZHowbFpDa3VDZ0JUYVhwbElIa2diMllnZEdobElHUmxZMjlrWldRZ1kyOXRjRzl1Wlc1MElHbHRZV2RsSUdseklHbHVZMjl5Y21WamRDQW9ZMjl0Y0ZzbFpGMHVhRDBsWkNrdUNnQlVhV3hsSUhKbFlXUXNJR1JsWTI5a1pXUWdZVzVrSUhWd1pHRjBaV1FnYVhNZ2JtOTBJSFJvWlNCa1pYTnBjbVZrSUc5dVpTQW9KV1FnZG5NZ0pXUXBMZ29BU1c1MllXeHBaQ0JqYjIxd2IyNWxiblFnYVc1a1pYZ2dKV1FnS0Q0OUlDVmtLUzRLQUc5d2FsOXlaV0ZrWDJobFlXUmxjaWdwSUhOb2IzVnNaQ0JpWlNCallXeHNaV1FnWW1WbWIzSmxJRzl3YWw5elpYUmZaR1ZqYjJSbFpGOWpiMjF3YjI1bGJuUnpLQ2t1Q2dCTlpXMXZjbmtnWVd4c2IyTmhkR2x2YmlCbVlXbHNkWEpsSUdsdUlHOXdhbDlxY0RKZllYQndiSGxmY0dOc2NpZ3BMZ29BYVcxaFoyVXRQbU52YlhCeld5VmtYUzVrWVhSaElEMDlJRTVWVEV3Z2FXNGdiM0JxWDJwd01sOWhjSEJzZVY5d1kyeHlLQ2t1Q2dCcGJuWmhiR2xrSUdKdmVDQnphWHBsSUNWa0lDZ2xlQ2tLQUVaaGFXd2dkRzhnY21WaFpDQjBhR1VnWTNWeWNtVnVkQ0J0WVhKclpYSWdjMlZuYldWdWRDQW9KU040S1FvQVJYSnliM0lnZDJsMGFDQlRTVm9nYldGeWEyVnlPaUJKU0VSU0lIY29KWFVwSUdnb0pYVXBJSFp6TGlCVFNWb2dkeWdsZFNrZ2FDZ2xkU2tLQUVWeWNtOXlJSEpsWVdScGJtY2dRMDlESUcxaGNtdGxjaUFvWW1Ga0lHNTFiV0psY2lCdlppQmpiMjF3YjI1bGJuUnpLUW9BU1c1MllXeHBaQ0J1ZFcxaVpYSWdiMllnZEdsc1pYTWdPaUFsZFNCNElDVjFJQ2h0WVhocGJYVnRJR1pwZUdWa0lHSjVJR3B3WldjeU1EQXdJRzV2Y20wZ2FYTWdOalUxTXpVZ2RHbHNaWE1wQ2dCSmJuWmhiR2xrSUc1MWJXSmxjaUJ2WmlCamIyMXdiMjVsYm5SeklDaHBhR1J5S1FvQVRtOTBJR1Z1YjNWbmFDQnRaVzF2Y25rZ2RHOGdhR0Z1Wkd4bElHbHRZV2RsSUdobFlXUmxjaUFvYVdoa2Npa0tBRmR5YjI1bklIWmhiSFZsY3lCbWIzSTZJSGNvSldRcElHZ29KV1FwSUc1MWJXTnZiWEJ6S0NWa0tTQW9hV2hrY2lrS0FFbHVkbUZzYVdRZ2RtRnNkV1Z6SUdadmNpQmpiMjF3SUQwZ0pXUWdPaUJrZUQwbGRTQmtlVDBsZFNBb2MyaHZkV3hrSUdKbElHSmxkSGRsWlc0Z01TQmhibVFnTWpVMUlHRmpZMjl5WkdsdVp5QjBieUIwYUdVZ1NsQkZSekl3TURBZ2JtOXliU2tLQUVKaFpDQnBiV0ZuWlNCb1pXRmtaWElnWW05NElDaGlZV1FnYzJsNlpTa0tBRUpoWkNCRFQweFNJR2hsWVdSbGNpQmliM2dnS0dKaFpDQnphWHBsS1FvQVFtRmtJRUpRUTBNZ2FHVmhaR1Z5SUdKdmVDQW9ZbUZrSUhOcGVtVXBDZ0JGY25KdmNpQjNhWFJvSUZOSldpQnRZWEpyWlhJNklHNWxaMkYwYVhabElHOXlJSHBsY204Z2FXMWhaMlVnYzJsNlpTQW9KV3hzWkNCNElDVnNiR1FwQ2dCemEybHdPaUJ6WldkdFpXNTBJSFJ2YnlCc2IyNW5JQ2dsWkNrZ2QybDBhQ0J0WVhnZ0tDVmtLU0JtYjNJZ1kyOWtaV0pzYjJOcklDVmtJQ2h3UFNWa0xDQmlQU1ZrTENCeVBTVmtMQ0JqUFNWa0tRb0FjbVZoWkRvZ2MyVm5iV1Z1ZENCMGIyOGdiRzl1WnlBb0pXUXBJSGRwZEdnZ2JXRjRJQ2dsWkNrZ1ptOXlJR052WkdWaWJHOWpheUFsWkNBb2NEMGxaQ3dnWWowbFpDd2djajBsWkN3Z1l6MGxaQ2tLQUVSbGMzQnBkR1VnU2xBeUlFSlFReUU5TWpVMUxDQndjbVZqYVhOcGIyNGdZVzVrTDI5eUlITm5ibVFnZG1Gc2RXVnpJR1p2Y2lCamIyMXdXeVZrWFNCcGN5QmthV1ptWlhKbGJuUWdkR2hoYmlCamIyMXdXekJkT2dvZ0lDQWdJQ0FnSUZzd1hTQndjbVZqS0NWa0tTQnpaMjVrS0NWa0tTQmJKV1JkSUhCeVpXTW9KV1FwSUhObmJtUW9KV1FwQ2dCaVlXUWdZMjl0Y0c5dVpXNTBJRzUxYldKbGNpQnBiaUJTUjA0Z0tDVmtJSGRvWlc0Z2RHaGxjbVVnWVhKbElHOXViSGtnSldRcENnQkZjbkp2Y2lCM2FYUm9JRk5KV2lCdFlYSnJaWEk2SUc1MWJXSmxjaUJ2WmlCamIyMXdiMjVsYm5RZ2FYTWdibTkwSUdOdmJYQmhkR2xpYkdVZ2QybDBhQ0IwYUdVZ2NtVnRZV2x1YVc1bklHNTFiV0psY2lCdlppQndZWEpoYldWMFpYSnpJQ2dnSldRZ2RuTWdKV1FwQ2dCRmNuSnZjaUIzYVhSb0lGTkpXaUJ0WVhKclpYSTZJR2x1ZG1Gc2FXUWdkR2xzWlNCemFYcGxJQ2gwWkhnNklDVmtMQ0IwWkhrNklDVmtLUW9BUW1Ga0lFTlBURklnYUdWaFpHVnlJR0p2ZUNBb1ltRmtJSE5wZW1VNklDVmtLUW9BUW1Ga0lFTlBURklnYUdWaFpHVnlJR0p2ZUNBb1EwbEZUR0ZpTENCaVlXUWdjMmw2WlRvZ0pXUXBDZ0JRVkVWU1RTQmphR1ZqYXlCbVlXbHNkWEpsT2lBbFpDQnlaVzFoYVc1cGJtY2dZbmwwWlhNZ2FXNGdZMjlrWlNCaWJHOWpheUFvSldRZ2RYTmxaQ0F2SUNWa0tRb0FUV0ZzWm05eWJXVmtJRWhVSUdOdlpHVmliRzlqYXk0Z1QyNWxJRzltSUhSb1pTQm1iMnhzYjNkcGJtY2dZMjl1WkdsMGFXOXVJR2x6SUc1dmRDQnRaWFE2SURJZ1BEMGdVMk4xY0NBOFBTQnRhVzRvVEdOMWNDd2dOREEzT1NrS0FFbHVkbUZzYVdRZ2RtRnNkV1Z6SUdadmNpQmpiMjF3SUQwZ0pXUWdPaUJ3Y21WalBTVjFJQ2h6YUc5MWJHUWdZbVVnWW1WMGQyVmxiaUF4SUdGdVpDQXpPQ0JoWTJOdmNtUnBibWNnZEc4Z2RHaGxJRXBRUlVjeU1EQXdJRzV2Y20wdUlFOXdaVzVLY0dWbklHOXViSGtnYzNWd2NHOXlkSE1nZFhBZ2RHOGdNekVwQ2dCSmJuWmhiR2xrSUdKcGRDQnVkVzFpWlhJZ0pXUWdhVzRnYjNCcVgzUXlYM0psWVdSZmNHRmphMlYwWDJobFlXUmxjaWdwQ2dCVGRISmxZVzBnWlhKeWIzSWhDZ0JGY25KdmNpQnZiaUIzY21sMGFXNW5JSE4wY21WaGJTRUtBRk4wY21WaGJTQnlaV0ZqYUdWa0lHbDBjeUJsYm1RZ0lRb0FSWGh3WldOMFpXUWdZU0JUVDBNZ2JXRnlhMlZ5SUFvQVNXNTJZV3hwWkNCaWIzZ2djMmw2WlNBbFpDQm1iM0lnWW05NElDY2xZeVZqSldNbFl5Y3VJRTVsWldRZ0pXUWdZbmwwWlhNc0lDVmtJR0o1ZEdWeklISmxiV0ZwYm1sdVp5QUtBRTFoYkdadmNtMWxaQ0JJVkNCamIyUmxZbXh2WTJzdUlFUmxZMjlrYVc1bklIUm9hWE1nWTI5a1pXSnNiMk5ySUdseklITjBiM0J3WldRdUlGVmZjU0JwY3lCc1lYSm5aWElnZEdoaGJpQjZaWEp2SUdKcGRIQnNZVzVsY3lBcklERWdDZ0JOWVd4bWIzSnRaV1FnU0ZRZ1kyOWtaV0pzYjJOckxpQkVaV052WkdsdVp5QjBhR2x6SUdOdlpHVmliRzlqYXlCcGN5QnpkRzl3Y0dWa0xpQlZYM0VnYVhOc1lYSm5aWElnZEdoaGJpQmlhWFJ3YkdGdVpYTWdLeUF4SUFvQVEwOU1VaUJDVDFnZ2JXVjBhQ0IyWVd4MVpTQnBjeUJ1YjNRZ1lTQnlaV2QxYkdGeUlIWmhiSFZsSUNnbFpDa3NJSE52SUhkbElIZHBiR3dnYVdkdWIzSmxJSFJvWlNCbGJuUnBjbVVnUTI5c2IzVnlJRk53WldOcFptbGpZWFJwYjI0Z1ltOTRMaUFLQUZkb2FXeGxJSEpsWVdScGJtY2dRME5RWDFGT1ZGTlVXU0JsYkdWdFpXNTBJR2x1YzJsa1pTQlJRMFFnYjNJZ1VVTkRJRzFoY210bGNpQnpaV2R0Wlc1MExDQnVkVzFpWlhJZ2IyWWdjM1ZpWW1GdVpITWdLQ1ZrS1NCcGN5Qm5jbVZoZEdWeUlIUnZJRTlRU2w5S01rdGZUVUZZUWtGT1JGTWdLQ1ZrS1M0Z1UyOGdkMlVnYkdsdGFYUWdkR2hsSUc1MWJXSmxjaUJ2WmlCbGJHVnRaVzUwY3lCemRHOXlaV1FnZEc4Z1QxQktYMG95UzE5TlFWaENRVTVFVXlBb0pXUXBJR0Z1WkNCemEybHdJSFJvWlNCeVpYTjBMaUFLQUVwUU1pQkpTRVJTSUdKdmVEb2dZMjl0Y0hKbGMzTnBiMjRnZEhsd1pTQnBibVJwWTJGMFpTQjBhR0YwSUhSb1pTQm1hV3hsSUdseklHNXZkQ0JoSUdOdmJtWnZjbTFwYm1jZ1NsQXlJR1pwYkdVZ0tDVmtLU0FLQUZScGJHVWdhVzVrWlhnZ2NISnZkbWxrWldRZ1lua2dkR2hsSUhWelpYSWdhWE1nYVc1amIzSnlaV04wSUNWa0lDaHRZWGdnUFNBbFpDa2dDZ0JGY25KdmNpQmtaV052WkdsdVp5QmpiMjF3YjI1bGJuUWdKV1F1Q2xSb1pTQnVkVzFpWlhJZ2IyWWdjbVZ6YjJ4MWRHbHZibk1nZEc4Z2NtVnRiM1psSUNnbFpDa2dhWE1nWjNKbFlYUmxjaUJ2Y2lCbGNYVmhiQ0IwYUdGdUlIUm9aU0J1ZFcxaVpYSWdiMllnY21WemIyeDFkR2x2Ym5NZ2IyWWdkR2hwY3lCamIyMXdiMjVsYm5RZ0tDVmtLUXBOYjJScFpua2dkR2hsSUdOd1gzSmxaSFZqWlNCd1lYSmhiV1YwWlhJdUNnb0FTVzFoWjJVZ1pHRjBZU0JvWVhNZ1ltVmxiaUIxY0dSaGRHVmtJSGRwZEdnZ2RHbHNaU0FsWkM0S0NnQkJvUDBBQzRBZ0l3Q2xBRU1BWmdDREFPNm9GQURmMkNNQXZoQkRBUC8xZ3dCK0lGVUFYMUVqQURVQVF3Qk9SSU1BenNRVUFNL01Jd0QrNGtNQS81bURBSllBeFFBL01TTUFwUUJEQUY1RWd3RE95QlFBM3hFakFQNzBRd0QvL0lNQW5nQlZBSGNBSXdBMUFFTUEvL0dEQUs2SUZBQzNBQ01BL3ZoREFPL2tnd0NPaU1VQUh4RWpBS1VBUXdCbUFJTUE3cWdVQU45VUl3QytFRU1BN3lLREFINGdWUUIvSWlNQU5RQkRBRTVFZ3dET3hCUUF2eEVqQVA3aVF3RDNBSU1BbGdERkFEOGlJd0NsQUVNQVhrU0RBTTdJRkFEWEFDTUEvdlJEQVArNmd3Q2VBRlVBYndBakFEVUFRd0QvNW9NQXJvZ1VBSytpSXdEKytFTUE1d0NEQUk2SXhRQXZJZ0lBeFFDRUFINGdBZ0RPeENRQTl3QUNBUDZpUkFCV0FBSUFuZ0FVQU5jQUFnQytFSVFBWmdBQ0FLNklKQURmRVFJQTdxaEVBRFlBQWdDT2lCUUFIeEVDQU1VQWhBQnVBQUlBem9na0FQK0lBZ0QrdUVRQVRrUUNBSllBRkFDM0FBSUEvdVNFQUY1RUFnQ21BQ1FBNXdBQ0FONVVSQUF1SWdJQVBnQVVBSGNBQWdERkFJUUFmaUFDQU03RUpBRC84UUlBL3FKRUFGWUFBZ0NlQUJRQXZ4RUNBTDRRaEFCbUFBSUFyb2drQU84aUFnRHVxRVFBTmdBQ0FJNklGQUIvSWdJQXhRQ0VBRzRBQWdET2lDUUE3K1FDQVA2NFJBQk9SQUlBbGdBVUFLK2lBZ0QrNUlRQVhrUUNBS1lBSkFEZjJBSUEzbFJFQUM0aUFnQStBQlFBWDFFQ0FGVUFoQUJtQUFJQTNvZ2tBUDh5QWdEK0VVUUFUa1FDQUs0QUZBQzNBQUlBZmpHRUFGNVJBZ0RHQUNRQTF3QUNBTzRnUkFBZUVRSUFuZ0FVQUhjQUFnQlZBSVFBWGxRQ0FNNUVKQURuQUFJQS92RkVBRFlBQWdDbUFCUUFYMVVDQVA1MGhBQStFUUlBdmlBa0FIOTBBZ0RleEVRQS8vZ0NBSllBRkFBdklnSUFWUUNFQUdZQUFnRGVpQ1FBOXdBQ0FQNFJSQUJPUkFJQXJnQVVBSStJQWdCK01ZUUFYbEVDQU1ZQUpBRFB5QUlBN2lCRUFCNFJBZ0NlQUJRQWJ3QUNBRlVBaEFCZVZBSUF6a1FrQU4vUkFnRCs4VVFBTmdBQ0FLWUFGQUIvSWdJQS9uU0VBRDRSQWdDK0lDUUF2eUlDQU43RVJBRHZJZ0lBbGdBVUFEOHlBd0RlMVAzMC8vd1VBRDRSVlFDUGlBTUF2aktGQU9jQUpRQmVVZjZxZjNJREFNNUUvZmp2UkJRQWZtUkZBSytpQXdDbUFGMVYzNW45OFRZQS92VnZZZ01BM3RIOTlQL21GQUIrY1ZVQXY3RURBSzZJaFFEZjFTVUFUa1QrOG45bUF3REdBUDM0NytJVUFGNVVSUUNmRVFNQWxnQmRWYy9JL2ZFZUVlN0lad0FEQU43VS9mVC84eFFBUGhGVkFMOFJBd0MrTW9VQTM5Z2xBRjVSL3FvdklnTUF6a1Q5K1BjQUZBQitaRVVBbjVnREFLWUFYVlhYQVAzeE5nRCs5VzlFQXdEZTBmMzAvN2tVQUg1eFZRQzNBQU1Bcm9pRkFOL2NKUUJPUlA3eWR3QURBTVlBL2ZqdjVCUUFYbFJGQUg5ekF3Q1dBRjFWdjdqOThSNFI3c2cvTWdJQXBRQ0VBSDVBQWdEZUVDUUEzeEVDQVA1eVJBQldBQUlBcnFnVUFMK3lBZ0NXQUlRQVpnQUNBTVlBSkFEbkFBSUE3c2hFQUM0aUFnQ09pQlFBZHdBQ0FLVUFoQUJ1QUFJQXpvZ2tBUGNBQWdEK2tVUUFOZ0FDQUs2aUZBQ3ZxZ0lBL3JpRUFGNEFBZ0MrQUNRQXo4UUNBTzVFUkFELzlBSUFQaUlVQUI4UkFnQ2xBSVFBZmtBQ0FONFFKQUQvbVFJQS9uSkVBRllBQWdDdXFCUUF0d0FDQUpZQWhBQm1BQUlBeGdBa0FOY0FBZ0R1eUVRQUxpSUNBSTZJRkFCUFJBSUFwUUNFQUc0QUFnRE9pQ1FBNytJQ0FQNlJSQUEyQUFJQXJxSVVBSDlFQWdEK3VJUUFYZ0FDQUw0QUpBQ2ZBQUlBN2tSRUFQOTJBZ0ErSWhRQVB6RURBTVlBaFFELzJmM3lmbVQrOGIrWkF3Q3VvaVVBNzJiOTlGWUE3dUovY3dNQXZwaEZBUGNBL2ZobUFQNTJuNGdEQUk2SUZRRGYxYVVBTGlMZW1FOUVBd0Mrc29VQS8vejk4bTRpbGdDM0FBTUFycW9sQU4vUi9mUTJBTjdVYjJRREFLNm9SUUR2NnYzNFhrVHU2SDl4QXdBK01oVUF6OFNsQVAvNnpvZy9NUU1BeGdDRkFQOTMvZkorWlA3eHY3TURBSzZpSlFEbkFQMzBWZ0R1NG5jQUF3QyttRVVBNytUOStHWUEvblovWmdNQWpvZ1ZBTmNBcFFBdUl0NllQek1EQUw2eWhRRC9kZjN5YmlLV0FKK1JBd0N1cWlVQTM1bjk5RFlBM3RSZlVRTUFycWhGQU8vcy9maGVSTzdvZjNJREFENHlGUUMvc2FVQS8vUE9pQjhSQXdEZVZQM3lIaEVVQUg1ay92alB6QU1BdnBGRkFPOGlKUUF1SXY3emo0Z0RBTVlBaFFEM0FCUUFYaEgrL0srb0F3Q21BRFVBMzhqOThUNHgvbVp2WkFNQXpzajk4di8xRkFCbUFQNzB2N29EQUs0aVJRRG5BQ1VBUGpMKzZuOXpBd0Mrc29VQTMxVVVBRllBZm5HZkVRTUFsZ0ExQU0vRS9mRStNKzdvVDBRREFONVUvZkllRVJRQWZtVCsrTCtaQXdDK2tVVUE3K0lsQUM0aS92Ti9aZ01BeGdDRkFPL2tGQUJlRWY3OG41Z0RBS1lBTlFEWEFQM3hQakgrWm04aUF3RE95UDN5LzdrVUFHWUEvdlMzQUFNQXJpSkZBTi9SSlFBK012N3Fkd0FEQUw2eWhRRHY3QlFBVmdCK2NYOXlBd0NXQURVQXY3ajk4VDR6N3VoZlZQengzdEg5K3RjQS9QZ1dBUDMvZjNUODlINXgvZk8vcy96eTcrcnU2RTlFL1BHdUlnVUF2N2o4K1BjQS92eDNBUHowWGhIOTlYOTEvUExmMk83aVB6UDg4YjZ5L2ZyUGlQejQvL3Y5LzM5ei9QUnVBUDN6dHdEODh1OW0vdmsvTWZ6eG5nQUZBTCs2L1BqLy9mNzJad0Q4OUNZQS9mV1BpUHp5Mzl6ZTFDOGkvUEhlMGYzNno4VDgrQllBL2Y5L2N2ejBmbkg5ODcrWi9QTHY3TzdvUndEODhhNGlCUUNuQVB6NC8vZisvRmNBL1BSZUVmMzFsd0Q4OHQvVjd1STNBUHp4dnJMOStzY0EvUGovL3YzL2YyYjg5RzRBL2ZPdnFQenk1d0QrK1Q4eS9QR2VBQVVBdjdIOCtPL2svdlpmVlB6MEpnRDk5WWNBL1BMZm1kN1VIeEVUQUdVQVF3RGVBSU1BallnakFFNUVFd0NsQUVNQXJvaURBRFVBSXdEWEFCTUF4UUJEQUo0QWd3QlZBQ01BTGlJVEFKVUFRd0IrQUlNQS9oQWpBSGNBRXdCbEFFTUF6b2lEQUkySUl3QWVFUk1BcFFCREFGNEFnd0ExQUNNQTV3QVRBTVVBUXdDK0FJTUFWUUFqQVA4UkV3Q1ZBRU1BUGdDREFPNUFJd0N2b2hNQVpRQkRBTjRBZ3dDTmlDTUFUa1FUQUtVQVF3Q3VpSU1BTlFBakFPOUVFd0RGQUVNQW5nQ0RBRlVBSXdBdUloTUFsUUJEQUg0QWd3RCtFQ01BdHdBVEFHVUFRd0RPaUlNQWpZZ2pBQjRSRXdDbEFFTUFYZ0NEQURVQUl3RFB4Qk1BeFFCREFMNEFnd0JWQUNNQTl3QVRBSlVBUXdBK0FJTUE3a0FqQUc4QUFRQ0VBQUVBVmdBQkFCUUFBUURYQUFFQUpBQUJBSllBQVFCRkFBRUFkd0FCQUlRQUFRREdBQUVBRkFBQkFJK0lBUUFrQUFFQTl3QUJBRFVBQVFBdklnRUFoQUFCQVA1QUFRQVVBQUVBdHdBQkFDUUFBUUMvQUFFQVJRQUJBR2NBQVFDRUFBRUFwZ0FCQUJRQUFRQlBSQUVBSkFBQkFPY0FBUUExQUFFQVB4RUJBSVFBQVFCV0FBRUFGQUFCQU04QUFRQWtBQUVBbGdBQkFFVUFBUUJ2QUFFQWhBQUJBTVlBQVFBVUFBRUFud0FCQUNRQUFRRHZBQUVBTlFBQkFEOHlBUUNFQUFFQS9rQUJBQlFBQVFDdkFBRUFKQUFCQVA5RUFRQkZBQUVBWHdBQkFJUUFBUUNtQUFFQUZBQUJBSDhBQVFBa0FBRUEzd0FCQURVQUFRQWZFUUVBSkFBQkFGWUFBUUNGQUFFQXZ3QUJBQlFBQVFEM0FBRUF4Z0FCQUhjQUFRQWtBQUVBLy9nQkFFVUFBUUIvQUFFQUZBQUJBTjhBQVFDbUFBRUFQekVCQUNRQUFRQXVJZ0VBaFFBQkFMY0FBUUFVQUFFQTcwUUJBSzZpQVFCbkFBRUFKQUFCQVA5UkFRQkZBQUVBbHdBQkFCUUFBUURQQUFFQU5nQUJBRDhpQVFBa0FBRUFWZ0FCQUlVQUFRQy9zZ0VBRkFBQkFPOUFBUURHQUFFQWJ3QUJBQ1FBQVFEL2NnRUFSUUFCQUo4QUFRQVVBQUVBMXdBQkFLWUFBUUJQUkFFQUpBQUJBQzRpQVFDRkFBRUFyNmdCQUJRQUFRRG5BQUVBcnFJQkFGOEFBUUFrQUFFQS8wUUJBRVVBQVFDUGlBRUFGQUFCQUsrcUFRQTJBQUVBSHhFQ0FQNzRKQUJXQUFJQXRnQ0ZBUDltQWdET0FCUUFIaEVDQUpZQU5RQ3ZxQUlBOWdBa0FENHhBZ0NtQUVVQXY3TUNBTDZ5RkFELzlRSUFaZ0IrVVY5VUFnRCs4aVFBTGlJQ0FLNGloUUR2UkFJQXhnQVVBUC8wQWdCMkFEVUFmMFFDQU41QUpBQStNZ0lBbmdCRkFOY0FBZ0MraUJRQS8vb0NBRjRSL3ZGUFJBSUEvdmdrQUZZQUFnQzJBSVVBNzhnQ0FNNEFGQUFlRVFJQWxnQTFBSStJQWdEMkFDUUFQakVDQUtZQVJRRGZSQUlBdnJJVUFQK29BZ0JtQUg1UmJ3QUNBUDd5SkFBdUlnSUFyaUtGQU9jQUFnREdBQlFBNytJQ0FIWUFOUUIvY2dJQTNrQWtBRDR5QWdDZUFFVUF2N0VDQUw2SUZBRC9jd0lBWGhIKzhUOHpBUUNFQUFFQTdpQUJBTVVBQVFEUHhBRUFSQUFCQVA4eUFRQVZBQUVBajRnQkFJUUFBUUJtQUFFQUpRQUJBSzhBQVFCRUFBRUE3eUlCQUtZQUFRQmZBQUVBaEFBQkFFNUVBUURGQUFFQXo4d0JBRVFBQVFEM0FBRUFGUUFCQUc4QUFRQ0VBQUVBVmdBQkFDVUFBUUNmQUFFQVJBQUJBTjhBQVFEK01BRUFMeUlCQUlRQUFRRHVJQUVBeFFBQkFNL0lBUUJFQUFFQS94RUJBQlVBQVFCM0FBRUFoQUFCQUdZQUFRQWxBQUVBZndBQkFFUUFBUURuQUFFQXBnQUJBRGNBQVFDRUFBRUFUa1FCQU1VQUFRQzNBQUVBUkFBQkFMOEFBUUFWQUFFQVB3QUJBSVFBQVFCV0FBRUFKUUFCQUpjQUFRQkVBQUVBMXdBQkFQNHdBUUFmRVFJQTdxaEVBSTZJQWdEV0FNVUEvL01DQVA3OEpRQStBQUlBdGdCVkFOL1lBZ0QrK0VRQVpnQUNBSDRnaFFEL21RSUE1Z0QxQURZQUFnQ21BQlVBbndBQ0FQN3lSQUIyQUFJQXprVEZBUDkyQWdEKzhTVUFUa1FDQUs0QVZRRFB5QUlBL3ZSRUFGNUVBZ0MrRUlVQTcrUUNBTjVVOVFBZUVRSUFsZ0FWQUM4aUFnRHVxRVFBam9nQ0FOWUF4UUQvK2dJQS92d2xBRDRBQWdDMkFGVUF2eEVDQVA3NFJBQm1BQUlBZmlDRkFPOGlBZ0RtQVBVQU5nQUNBS1lBRlFCL0lnSUEvdkpFQUhZQUFnRE9STVVBLzlVQ0FQN3hKUUJPUkFJQXJnQlZBRzhBQWdEKzlFUUFYa1FDQUw0UWhRRGZFUUlBM2xUMUFCNFJBZ0NXQUJVQVgxRURBUFlBRkFBZUVVUUFqb2lsQU4vVUF3Q3VvbFVBLzNZa0FENGl0Z0N2cWdNQTVnQVVBUC8xUkFCbUFJVUF6OHdEQUo0QXhRRHZSQ1FBTmdEKytIOHhBd0R1NkJRQS8vRkVBSFlBcFFEUHhBTUFmaUpWQU4vUkpBQk9SUDcwWDFFREFOWUFGQUR2NGtRQVhrU0ZBTDhpQXdDV0FNVUEzOGdrQUM0aS92SnZJZ01BOWdBVUFCNFJSQUNPaUtVQXY3RURBSzZpVlFEL015UUFQaUsyQUsrb0F3RG1BQlFBLzdsRUFHWUFoUUMvcUFNQW5nREZBTy9rSkFBMkFQNzRiMlFEQU83b0ZBRC8vRVFBZGdDbEFNL0lBd0IrSWxVQTcrb2tBRTVFL3ZSL2RBTUExZ0FVQVAvNlJBQmVSSVVBdjdJREFKWUF4UURmUkNRQUxpTCs4ajh4OHdEKyt2M3hOZ0FFQUw0eWRRRGZFZk1BM2xUOTh1L2sxUUIrY2Y3OGYzUHpBUDd6L2ZnZUVRUUFsZ0JWQUwreDh3RE9BTFVBMzlqOTlHWUEvcmxmVlBNQS9uYjk4U1lBQkFDbUFIVUFud0R6QUs0QS9mTC85OVVBUmdEKzlYOTA4d0RtQVAzNEZnQUVBSVlBVlFDUGlQTUF4Z0MxQU8vaS9mUmVFZTZvUHhIekFQNzYvZkUyQUFRQXZqSjFBTi9SOHdEZVZQM3kvL3ZWQUg1eC92eC9SUE1BL3ZQOStCNFJCQUNXQUZVQWYzTHpBTTRBdFFEdkl2MzBaZ0QrdVU5RTh3RCtkdjN4SmdBRUFLWUFkUUMvRWZNQXJnRDk4di8vMVFCR0FQNzFQekx6QU9ZQS9mZ1dBQVFBaGdCVkFHOEE4d0RHQUxVQXY3ajk5RjRSN3FndklnQkJySjBCQzZRZUFRQUFBQUVBQUFBQkFBQUFBZ0FBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJRQUFBTGNoUWlGbklVSWhFUkVSRVRNek16TjNkM2QzQUFBQUFBQUFBQUFCVmdBQUFBQUFBQkJQQUFBZ1R3QUFBVllBQUFFQUFBQWdUd0FBRUU4QUFBRTBBQUFBQUFBQU1FOEFBTEJQQUFBQk5BQUFBUUFBQUVCUEFBREFUd0FBQVJnQUFBQUFBQUJRVHdBQUVGQUFBQUVZQUFBQkFBQUFZRThBQUNCUUFBREJDZ0FBQUFBQUFIQlBBQUJ3VUFBQXdRb0FBQUVBQUFDQVR3QUFnRkFBQUNFRkFBQUFBQUFBa0U4QUFKQlNBQUFoQlFBQUFRQUFBS0JQQUFDZ1VnQUFJUUlBQUFBQUFBQ3dVd0FBRUZNQUFDRUNBQUFCQUFBQXdGTUFBQ0JUQUFBQlZnQUFBQUFBQU5CUEFBREFUd0FBQVZZQUFBRUFBQURnVHdBQXNFOEFBQUZVQUFBQUFBQUE4RThBQUxCUUFBQUJWQUFBQVFBQUFBQlFBQURBVUFBQUFVZ0FBQUFBQUFBUVVBQUFzRkFBQUFGSUFBQUJBQUFBSUZBQUFNQlFBQUFCT0FBQUFBQUFBREJRQUFDd1VBQUFBVGdBQUFFQUFBQkFVQUFBd0ZBQUFBRXdBQUFBQUFBQVVGQUFBQkJSQUFBQk1BQUFBUUFBQUdCUUFBQWdVUUFBQVNRQUFBQUFBQUJ3VUFBQU1GRUFBQUVrQUFBQkFBQUFnRkFBQUVCUkFBQUJIQUFBQUFBQUFKQlFBQUJ3VVFBQUFSd0FBQUVBQUFDZ1VBQUFnRkVBQUFFV0FBQUFBQUFBa0ZJQUFKQlJBQUFCRmdBQUFRQUFBS0JTQUFDZ1VRQUFBVllBQUFBQUFBRFFVQUFBd0ZBQUFBRldBQUFCQUFBQTRGQUFBTEJRQUFBQlZBQUFBQUFBQVBCUUFBQ3dVQUFBQVZRQUFBRUFBQUFBVVFBQXdGQUFBQUZSQUFBQUFBQUFFRkVBQU5CUUFBQUJVUUFBQVFBQUFDQlJBQURnVUFBQUFVZ0FBQUFBQUFBd1VRQUE4RkFBQUFGSUFBQUJBQUFBUUZFQUFBQlJBQUFCT0FBQUFBQUFBRkJSQUFBUVVRQUFBVGdBQUFFQUFBQmdVUUFBSUZFQUFBRTBBQUFBQUFBQWNGRUFBREJSQUFBQk5BQUFBUUFBQUlCUkFBQkFVUUFBQVRBQUFBQUFBQUNRVVFBQVVGRUFBQUV3QUFBQkFBQUFvRkVBQUdCUkFBQUJLQUFBQUFBQUFMQlJBQUJRVVFBQUFTZ0FBQUVBQUFEQVVRQUFZRkVBQUFFa0FBQUFBQUFBMEZFQUFIQlJBQUFCSkFBQUFRQUFBT0JSQUFDQVVRQUFBU0lBQUFBQUFBRHdVUUFBa0ZFQUFBRWlBQUFCQUFBQUFGSUFBS0JSQUFBQkhBQUFBQUFBQUJCU0FBQ3dVUUFBQVJ3QUFBRUFBQUFnVWdBQXdGRUFBQUVZQUFBQUFBQUFNRklBQU5CUkFBQUJHQUFBQVFBQUFFQlNBQURnVVFBQUFSWUFBQUFBQUFCUVVnQUE4RkVBQUFFV0FBQUJBQUFBWUZJQUFBQlNBQUFCRkFBQUFBQUFBSEJTQUFBUVVnQUFBUlFBQUFFQUFBQ0FVZ0FBSUZJQUFBRVNBQUFBQUFBQWtGSUFBREJTQUFBQkVnQUFBUUFBQUtCU0FBQkFVZ0FBQVJFQUFBQUFBQUN3VWdBQVVGSUFBQUVSQUFBQkFBQUF3RklBQUdCU0FBREJDZ0FBQUFBQUFOQlNBQUJ3VWdBQXdRb0FBQUVBQUFEZ1VnQUFnRklBQU1FSkFBQUFBQUFBOEZJQUFKQlNBQURCQ1FBQUFRQUFBQUJUQUFDZ1VnQUFvUWdBQUFBQUFBQVFVd0FBc0ZJQUFLRUlBQUFCQUFBQUlGTUFBTUJTQUFBaEJRQUFBQUFBQURCVEFBRFFVZ0FBSVFVQUFBRUFBQUJBVXdBQTRGSUFBRUVFQUFBQUFBQUFVRk1BQVBCU0FBQkJCQUFBQVFBQUFHQlRBQUFBVXdBQW9RSUFBQUFBQUFCd1V3QUFFRk1BQUtFQ0FBQUJBQUFBZ0ZNQUFDQlRBQUFoQWdBQUFBQUFBSkJUQUFBd1V3QUFJUUlBQUFFQUFBQ2dVd0FBUUZNQUFFRUJBQUFBQUFBQXNGTUFBRkJUQUFCQkFRQUFBUUFBQU1CVEFBQmdVd0FBRVFFQUFBQUFBQURRVXdBQWNGTUFBQkVCQUFBQkFBQUE0Rk1BQUlCVEFBQ0ZBQUFBQUFBQUFQQlRBQUNRVXdBQWhRQUFBQUVBQUFBQVZBQUFvRk1BQUVrQUFBQUFBQUFBRUZRQUFMQlRBQUJKQUFBQUFRQUFBQ0JVQUFEQVV3QUFKUUFBQUFBQUFBQXdWQUFBMEZNQUFDVUFBQUFCQUFBQVFGUUFBT0JUQUFBVkFBQUFBQUFBQUZCVUFBRHdVd0FBRlFBQUFBRUFBQUJnVkFBQUFGUUFBQWtBQUFBQUFBQUFjRlFBQUJCVUFBQUpBQUFBQVFBQUFJQlVBQUFnVkFBQUJRQUFBQUFBQUFDUVZBQUFNRlFBQUFVQUFBQUJBQUFBb0ZRQUFFQlVBQUFCQUFBQUFBQUFBSkJVQUFCUVZBQUFBUUFBQUFFQUFBQ2dWQUFBWUZRQUFBRldBQUFBQUFBQXNGUUFBTEJVQUFBQlZnQUFBUUFBQU1CVUFBREFWQUFBQUFFREF3RUNBd01GQmdjSEJnWUhCd0FCQXdNQkFnTURCUVlIQndZR0J3Y0ZCZ2NIQmdZSEJ3Z0lDQWdJQ0FnSUJRWUhCd1lHQndjSUNBZ0lDQWdJQ0FFQ0F3TUNBZ01EQmdZSEJ3WUdCd2NCQWdNREFnSURBd1lHQndjR0JnY0hCZ1lIQndZR0J3Y0lDQWdJQ0FnSUNBWUdCd2NHQmdjSENBZ0lDQWdJQ0FnREF3UUVBd01FQkFjSEJ3Y0hCd2NIQXdNRUJBTURCQVFIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hDQWdJQ0FnSUNBZ0hCd2NIQndjSEJ3Z0lDQWdJQ0FnSUF3TUVCQU1EQkFRSEJ3Y0hCd2NIQndNREJBUURBd1FFQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2dJQ0FnSUNBZ0lCd2NIQndjSEJ3Y0lDQWdJQ0FnSUNBRUNBd01DQWdNREJnWUhCd1lHQndjQkFnTURBZ0lEQXdZR0J3Y0dCZ2NIQmdZSEJ3WUdCd2NJQ0FnSUNBZ0lDQVlHQndjR0JnY0hDQWdJQ0FnSUNBZ0NBZ01EQWdJREF3WUdCd2NHQmdjSEFnSURBd0lDQXdNR0JnY0hCZ1lIQndZR0J3Y0dCZ2NIQ0FnSUNBZ0lDQWdHQmdjSEJnWUhCd2dJQ0FnSUNBZ0lBd01FQkFNREJBUUhCd2NIQndjSEJ3TURCQVFEQXdRRUJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndnSUNBZ0lDQWdJQndjSEJ3Y0hCd2NJQ0FnSUNBZ0lDQU1EQkFRREF3UUVCd2NIQndjSEJ3Y0RBd1FFQXdNRUJBY0hCd2NIQndjSEJ3Y0hCd2NIQndjSUNBZ0lDQWdJQ0FjSEJ3Y0hCd2NIQ0FnSUNBZ0lDQWdBQVFVR0FRSUdCZ01EQndjREF3Y0hBQUVGQmdFQ0JnWURBd2NIQXdNSEJ3TURCd2NEQXdjSEJBUUhCd1FFQndjREF3Y0hBd01IQndRRUJ3Y0VCQWNIQVFJR0JnSUNCZ1lEQXdjSEF3TUhCd0VDQmdZQ0FnWUdBd01IQndNREJ3Y0RBd2NIQXdNSEJ3UUVCd2NFQkFjSEF3TUhCd01EQndjRUJBY0hCQVFIQndVR0NBZ0dCZ2dJQndjSUNBY0hDQWdGQmdnSUJnWUlDQWNIQ0FnSEJ3Z0lCd2NJQ0FjSENBZ0hCd2dJQndjSUNBY0hDQWdIQndnSUJ3Y0lDQWNIQ0FnR0JnZ0lCZ1lJQ0FjSENBZ0hCd2dJQmdZSUNBWUdDQWdIQndnSUJ3Y0lDQWNIQ0FnSEJ3Z0lCd2NJQ0FjSENBZ0hCd2dJQndjSUNBY0hDQWdIQndnSUFRSUdCZ0lDQmdZREF3Y0hBd01IQndFQ0JnWUNBZ1lHQXdNSEJ3TURCd2NEQXdjSEF3TUhCd1FFQndjRUJBY0hBd01IQndNREJ3Y0VCQWNIQkFRSEJ3SUNCZ1lDQWdZR0F3TUhCd01EQndjQ0FnWUdBZ0lHQmdNREJ3Y0RBd2NIQXdNSEJ3TURCd2NFQkFjSEJBUUhCd01EQndjREF3Y0hCQVFIQndRRUJ3Y0dCZ2dJQmdZSUNBY0hDQWdIQndnSUJnWUlDQVlHQ0FnSEJ3Z0lCd2NJQ0FjSENBZ0hCd2dJQndjSUNBY0hDQWdIQndnSUJ3Y0lDQWNIQ0FnSEJ3Z0lCZ1lJQ0FZR0NBZ0hCd2dJQndjSUNBWUdDQWdHQmdnSUJ3Y0lDQWNIQ0FnSEJ3Z0lCd2NJQ0FjSENBZ0hCd2dJQndjSUNBY0hDQWdIQndnSUJ3Y0lDQUFCQXdNQkFnTURCUVlIQndZR0J3Y0FBUU1EQVFJREF3VUdCd2NHQmdjSEJRWUhCd1lHQndjSUNBZ0lDQWdJQ0FVR0J3Y0dCZ2NIQ0FnSUNBZ0lDQWdCQWdNREFnSURBd1lHQndjR0JnY0hBUUlEQXdJQ0F3TUdCZ2NIQmdZSEJ3WUdCd2NHQmdjSENBZ0lDQWdJQ0FnR0JnY0hCZ1lIQndnSUNBZ0lDQWdJQXdNRUJBTURCQVFIQndjSEJ3Y0hCd01EQkFRREF3UUVCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Z0lDQWdJQ0FnSUJ3Y0hCd2NIQndjSUNBZ0lDQWdJQ0FNREJBUURBd1FFQndjSEJ3Y0hCd2NEQXdRRUF3TUVCQWNIQndjSEJ3Y0hCd2NIQndjSEJ3Y0lDQWdJQ0FnSUNBY0hCd2NIQndjSENBZ0lDQWdJQ0FnQkFnTURBZ0lEQXdZR0J3Y0dCZ2NIQVFJREF3SUNBd01HQmdjSEJnWUhCd1lHQndjR0JnY0hDQWdJQ0FnSUNBZ0dCZ2NIQmdZSEJ3Z0lDQWdJQ0FnSUFnSURBd0lDQXdNR0JnY0hCZ1lIQndJQ0F3TUNBZ01EQmdZSEJ3WUdCd2NHQmdjSEJnWUhCd2dJQ0FnSUNBZ0lCZ1lIQndZR0J3Y0lDQWdJQ0FnSUNBTURCQVFEQXdRRUJ3Y0hCd2NIQndjREF3UUVBd01FQkFjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NJQ0FnSUNBZ0lDQWNIQndjSEJ3Y0hDQWdJQ0FnSUNBZ0RBd1FFQXdNRUJBY0hCd2NIQndjSEF3TUVCQU1EQkFRSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQ0FnSUNBZ0lDQWdIQndjSEJ3Y0hCd2dJQ0FnSUNBZ0lBQU1CQkFNR0JBY0JCQUlGQkFjRkJ3QURBUVFEQmdRSEFRUUNCUVFIQlFjQkJBSUZCQWNGQndJRkFnVUZCd1VIQVFRQ0JRUUhCUWNDQlFJRkJRY0ZCd01HQkFjR0NBY0lCQWNGQndjSUJ3Z0RCZ1FIQmdnSENBUUhCUWNIQ0FjSUJBY0ZCd2NJQndnRkJ3VUhCd2dIQ0FRSEJRY0hDQWNJQlFjRkJ3Y0lCd2dCQkFJRkJBY0ZCd0lGQWdVRkJ3VUhBUVFDQlFRSEJRY0NCUUlGQlFjRkJ3SUZBZ1VGQndVSEFnVUNCUVVIQlFjQ0JRSUZCUWNGQndJRkFnVUZCd1VIQkFjRkJ3Y0lCd2dGQndVSEJ3Z0hDQVFIQlFjSENBY0lCUWNGQndjSUJ3Z0ZCd1VIQndnSENBVUhCUWNIQ0FjSUJRY0ZCd2NJQndnRkJ3VUhCd2dIQ0FNR0JBY0dDQWNJQkFjRkJ3Y0lCd2dEQmdRSEJnZ0hDQVFIQlFjSENBY0lCQWNGQndjSUJ3Z0ZCd1VIQndnSENBUUhCUWNIQ0FjSUJRY0ZCd2NJQndnR0NBY0lDQWdJQ0FjSUJ3Z0lDQWdJQmdnSENBZ0lDQWdIQ0FjSUNBZ0lDQWNJQndnSUNBZ0lCd2dIQ0FnSUNBZ0hDQWNJQ0FnSUNBY0lCd2dJQ0FnSUJBY0ZCd2NJQndnRkJ3VUhCd2dIQ0FRSEJRY0hDQWNJQlFjRkJ3Y0lCd2dGQndVSEJ3Z0hDQVVIQlFjSENBY0lCUWNGQndjSUJ3Z0ZCd1VIQndnSENBY0lCd2dJQ0FnSUJ3Z0hDQWdJQ0FnSENBY0lDQWdJQ0FjSUJ3Z0lDQWdJQndnSENBZ0lDQWdIQ0FjSUNBZ0lDQWNJQndnSUNBZ0lCd2dIQ0FnSUNBZ0pDUW9LQ1FrS0Nnd01EUXNNREEwTENRa0tDZ2tKQ2dvTURBc05EQXdMRFF3TURRME1EQXNMREFrTkNna01DZ3NNREFzTERBd05EUXdKQ3dvSkRBb05DUWtLQ2drSkNnb01EQTBMREF3TkN3a0pDZ29KQ1FvS0RBd0xEUXdNQ3cwTURBME5EQXdMQ3d3SkRRb0pEQW9MREF3TEN3d01EUTBNQ1FzS0NRd0tEUW9LQ2dvS0Nnb0tEUXNOQ3cwTERRc0tDZ2tKQ2dvSkNRMExEQXdOQ3d3TURRME5EUXNMQ3dzTkNnMEtDZ3NLQ3cwTkRBd0xDd3dNRFFvTUNRb0xDUXdLQ2drSkNnb0pDUXNOREF3TERRd01DZ29LQ2dvS0Nnb0xEUXNOQ3cwTERRc0xEQXdORFF3TUN3b01DUW9OQ1F3TEN3c0xEUTBORFFzS0N3b0tEUW9OQUVIWnV3RUxOd0VBQVFBQkFBRUFBQUVCQUFBQkFRQUJBQUVBQVFBQkFBQUFBQUVCQVFFQUFBQUFBQUVBQVFBQUFBQUJBUUVCQUFBQUFRQUJBUUVBUVptOEFRczNBUUFCQUFFQUFRQUFBUUVBQUFFQkFBRUFBUUFCQUFFQUFBQUFBUUVCQVFBQUFBQUFBUUFCQUFBQUFBRUJBUUVBQUFBQkFBRUJBUUJCMmJ3QkN3Y0JBQUVBQVFBQkFFSHB2QUVMbFFJQkFBRUFBUUFCQUFBQUFBRUJBUUVBQUFBQUFBRUFBUUFBQUFBQkFRRUJBQUFBQUFBQkFBRUJBUUFBQVFFQUFBQUJBQUVBQVFBQkFRRUJBUUVCQVFFQUFRQUJBQUVBQVFBQUFBQUJBUUVCQUFFQUFBRUJBQUVBQUFBQUFRRUJBUUFCQUFFQkFRRUJBZ0FBQUFRQUFBQUVBQUFBQ0FBQUFKRC9BQUFNQUFBQUdBQUFBRkwvQUFBVUFBQUFHUUFBQUZQL0FBQVVBQUFBR2dBQUFGNy9BQUFVQUFBQUd3QUFBRnovQUFBVUFBQUFIQUFBQUYzL0FBQVVBQUFBSFFBQUFGLy9BQUFVQUFBQUhnQUFBRkgvQUFBQ0FBQUFId0FBQUZYL0FBQUVBQUFBSUFBQUFGZi9BQUFFQUFBQUlRQUFBRmovQUFBUUFBQUFJZ0FBQUdEL0FBQUVBQUFBSXdBQUFHSC9BQUFRQUFBQUpBQUFBSkgvQUVHSXZ3RUxaV1AvQUFBRUFBQUFKUUFBQUdUL0FBQVVBQUFBSmdBQUFIVC9BQUFVQUFBQUp3QUFBSGovQUFBRUFBQUFLQUFBQUZEL0FBQUVBQUFBS1FBQUFGbi9BQUFFQUFBQUtnQUFBSFgvQUFBVUFBQUFLd0FBQUhmL0FBQVVBQUFBTEFBQUFBQUFBQUFVQUVHQXdBRUxOUzBBQUFBdUFBQUFMd0FBQURBQUFBQXhBQUFBTWdBQUFETUFBQUEwQUFBQUlDQlFhallBQUFCd2VYUm1Od0FBQUdneWNHbzRBRUhBd0FFTE1uSmthR2s1QUFBQWNteHZZem9BQUFCalkzQmlPd0FBQUhKc1kzQThBQUFBY0dGdFl6MEFBQUJtWldSalBnQUFBUGhpQUVHQXdRRUxRUmtBQ3dBWkdSa0FBQUFBQlFBQUFBQUFBQWtBQUFBQUN3QUFBQUFBQUFBQUdRQUtDaGtaR1FNS0J3QUJBQWtMR0FBQUNRWUxBQUFMQUFZWkFBQUFHUmtaQUVIUndRRUxJUTRBQUFBQUFBQUFBQmtBQ3cwWkdSa0FEUUFBQWdBSkRnQUFBQWtBRGdBQURnQkJpOElCQ3dFTUFFR1h3Z0VMRlJNQUFBQUFFd0FBQUFBSkRBQUFBQUFBREFBQURBQkJ4Y0lCQ3dFUUFFSFJ3Z0VMRlE4QUFBQUVEd0FBQUFBSkVBQUFBQUFBRUFBQUVBQkIvOElCQ3dFU0FFR0x3d0VMSGhFQUFBQUFFUUFBQUFBSkVnQUFBQUFBRWdBQUVnQUFHZ0FBQUJvYUdnQkJ3c01CQ3c0YUFBQUFHaG9hQUFBQUFBQUFDUUJCODhNQkN3RVVBRUgvd3dFTEZSY0FBQUFBRndBQUFBQUpGQUFBQUFBQUZBQUFGQUJCcmNRQkN3RVdBRUc1eEFFTEp4VUFBQUFBRlFBQUFBQUpGZ0FBQUFBQUZnQUFGZ0FBTURFeU16UTFOamM0T1VGQ1EwUkZSZ0JCNE1RQkN3bVFiQUVBQUFBQUFBVUFRZlRFQVFzQmFRQkJqTVVCQ3dwcUFBQUFhd0FBQUhob0FFR2t4UUVMQVFJQVFiVEZBUXNJLy8vLy8vLy8vLzhBUWZqRkFRc0JCUUJCaE1ZQkN3RnNBRUdjeGdFTERtb0FBQUJ0QUFBQWlHZ0FBQUFFQUVHMHhnRUxBUUVBUWNUR0FRc0YvLy8vL3dvPSIpLGUodyhsLEEpWzBdKX0oKTtmdW5jdGlvbiBMKCl7ZnVuY3Rpb24gQSgpe2J8fChiPSEwLGkuY2FsbGVkUnVuPSEwLEQoRSksZShpKSxpLm9uUnVudGltZUluaXRpYWxpemVkJiZpLm9uUnVudGltZUluaXRpYWxpemVkKCksZnVuY3Rpb24oKXtpZihpLnBvc3RSdW4pZm9yKCJmdW5jdGlvbiI9PXR5cGVvZiBpLnBvc3RSdW4mJihpLnBvc3RSdW49W2kucG9zdFJ1bl0pO2kucG9zdFJ1bi5sZW5ndGg7KUE9aS5wb3N0UnVuLnNoaWZ0KCksdS51bnNoaWZ0KEEpO3ZhciBBO0QodSl9KCkpfWQ+MHx8KGZ1bmN0aW9uKCl7aWYoaS5wcmVSdW4pZm9yKCJmdW5jdGlvbiI9PXR5cGVvZiBpLnByZVJ1biYmKGkucHJlUnVuPVtpLnByZVJ1bl0pO2kucHJlUnVuLmxlbmd0aDspQT1pLnByZVJ1bi5zaGlmdCgpLFEudW5zaGlmdChBKTt2YXIgQTtEKFEpfSgpLGQ+MHx8KGkuc2V0U3RhdHVzPyhpLnNldFN0YXR1cygiUnVubmluZy4uLiIpLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXtpLnNldFN0YXR1cygiIil9KSwxKSxBKCl9KSwxKSk6QSgpKSl9aWYoTS5xLGkuX21hbGxvYz1NLnIsaS5fZnJlZT1NLnMsaS5fanAyX2RlY29kZT1NLnUscD1mdW5jdGlvbiBBKCl7Ynx8TCgpLGJ8fChwPUEpfSxpLnByZUluaXQpZm9yKCJmdW5jdGlvbiI9PXR5cGVvZiBpLnByZUluaXQmJihpLnByZUluaXQ9W2kucHJlSW5pdF0pO2kucHJlSW5pdC5sZW5ndGg+MDspaS5wcmVJbml0LnBvcCgpKCk7cmV0dXJuIEwoKSxpfSk7Y29uc3QgZWk9QWk7Y2xhc3MgdGkgZXh0ZW5kcyBZe2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEsIkpweEVycm9yIil9fWNsYXNzIGlpe3N0YXRpYyN5PW51bGw7c3RhdGljIGRlY29kZShBLGUpe2V8fD17fSx0aGlzLiN5fHw9ZWkoe3dhcm46VX0pO2NvbnN0IHQ9dGhpcy4jeS5kZWNvZGUoQSxlKTtpZigic3RyaW5nIj09dHlwZW9mIHQpdGhyb3cgbmV3IHRpKHQpO3JldHVybiB0fXN0YXRpYyBjbGVhbnVwKCl7dGhpcy4jeT1udWxsfXN0YXRpYyBwYXJzZUltYWdlUHJvcGVydGllcyhBKXtsZXQgZT1BLmdldEJ5dGUoKTtmb3IoO2U+PTA7KXtjb25zdCB0PWU7aWYoZT1BLmdldEJ5dGUoKSw2NTM2MT09KHQ8PDh8ZSkpe0Euc2tpcCg0KTtjb25zdCBlPUEuZ2V0SW50MzIoKT4+PjAsdD1BLmdldEludDMyKCk+Pj4wLGk9QS5nZXRJbnQzMigpPj4+MCxhPUEuZ2V0SW50MzIoKT4+PjA7cmV0dXJuIEEuc2tpcCgxNikse3dpZHRoOmUtaSxoZWlnaHQ6dC1hLGJpdHNQZXJDb21wb25lbnQ6OCxjb21wb25lbnRzQ291bnQ6QS5nZXRVaW50MTYoKX19fXRocm93IG5ldyB0aSgiTm8gc2l6ZSBtYXJrZXIgZm91bmQgaW4gSlBYIHN0cmVhbSIpfX1jbGFzcyBhaSBleHRlbmRzIE5le2NvbnN0cnVjdG9yKEEsZSx0KXtzdXBlcihlKSx0aGlzLnN0cmVhbT1BLHRoaXMuZGljdD1BLmRpY3QsdGhpcy5tYXliZUxlbmd0aD1lLHRoaXMucGFyYW1zPXR9Z2V0IGJ5dGVzKCl7cmV0dXJuIEgodGhpcywiYnl0ZXMiLHRoaXMuc3RyZWFtLmdldEJ5dGVzKHRoaXMubWF5YmVMZW5ndGgpKX1lbnN1cmVCdWZmZXIoQSl7fXJlYWRCbG9jayhBKXt0aGlzLmRlY29kZUltYWdlKG51bGwsQSl9ZGVjb2RlSW1hZ2UoQSxlKXtyZXR1cm4gdGhpcy5lb2Z8fChBfHw9dGhpcy5ieXRlcyx0aGlzLmJ1ZmZlcj1paS5kZWNvZGUoQSxlKSx0aGlzLmJ1ZmZlckxlbmd0aD10aGlzLmJ1ZmZlci5sZW5ndGgsdGhpcy5lb2Y9ITApLHRoaXMuYnVmZmVyfWdldCBjYW5Bc3luY0RlY29kZUltYWdlRnJvbUJ1ZmZlcigpe3JldHVybiB0aGlzLnN0cmVhbS5pc0FzeW5jfX1jbGFzcyBzaSBleHRlbmRzIE5le2NvbnN0cnVjdG9yKEEsZSx0KXtzdXBlcihlKSx0aGlzLnN0cj1BLHRoaXMuZGljdD1BLmRpY3QsdGhpcy5jYWNoZWREYXRhPTAsdGhpcy5iaXRzQ2FjaGVkPTA7Y29uc3QgaT00MDk2LGE9e2Vhcmx5Q2hhbmdlOnQsY29kZUxlbmd0aDo5LG5leHRDb2RlOjI1OCxkaWN0aW9uYXJ5VmFsdWVzOm5ldyBVaW50OEFycmF5KGkpLGRpY3Rpb25hcnlMZW5ndGhzOm5ldyBVaW50MTZBcnJheShpKSxkaWN0aW9uYXJ5UHJldkNvZGVzOm5ldyBVaW50MTZBcnJheShpKSxjdXJyZW50U2VxdWVuY2U6bmV3IFVpbnQ4QXJyYXkoaSksY3VycmVudFNlcXVlbmNlTGVuZ3RoOjB9O2ZvcihsZXQgQT0wO0E8MjU2OysrQSlhLmRpY3Rpb25hcnlWYWx1ZXNbQV09QSxhLmRpY3Rpb25hcnlMZW5ndGhzW0FdPTE7dGhpcy5sendTdGF0ZT1hfXJlYWRCaXRzKEEpe2xldCBlPXRoaXMuYml0c0NhY2hlZCx0PXRoaXMuY2FjaGVkRGF0YTtmb3IoO2U8QTspe2NvbnN0IEE9dGhpcy5zdHIuZ2V0Qnl0ZSgpO2lmKC0xPT09QSlyZXR1cm4gdGhpcy5lb2Y9ITAsbnVsbDt0PXQ8PDh8QSxlKz04fXJldHVybiB0aGlzLmJpdHNDYWNoZWQ9ZS09QSx0aGlzLmNhY2hlZERhdGE9dCx0aGlzLmxhc3RDb2RlPW51bGwsdD4+PmUmKDE8PEEpLTF9cmVhZEJsb2NrKCl7bGV0IEEsZSx0LGk9MTAyNDtjb25zdCBhPXRoaXMubHp3U3RhdGU7aWYoIWEpcmV0dXJuO2NvbnN0IHM9YS5lYXJseUNoYW5nZTtsZXQgbj1hLm5leHRDb2RlO2NvbnN0IHI9YS5kaWN0aW9uYXJ5VmFsdWVzLGc9YS5kaWN0aW9uYXJ5TGVuZ3RocyxvPWEuZGljdGlvbmFyeVByZXZDb2RlcztsZXQgST1hLmNvZGVMZW5ndGgsYz1hLnByZXZDb2RlO2NvbnN0IGg9YS5jdXJyZW50U2VxdWVuY2U7bGV0IEM9YS5jdXJyZW50U2VxdWVuY2VMZW5ndGgsQj0wLGw9dGhpcy5idWZmZXJMZW5ndGgsUT10aGlzLmVuc3VyZUJ1ZmZlcih0aGlzLmJ1ZmZlckxlbmd0aCtpKTtmb3IoQT0wO0E8NTEyO0ErKyl7Y29uc3QgQT10aGlzLnJlYWRCaXRzKEkpLGE9Qz4wO2lmKEE8MjU2KWhbMF09QSxDPTE7ZWxzZXtpZighKEE+PTI1OCkpe2lmKDI1Nj09PUEpe0k9OSxuPTI1OCxDPTA7Y29udGludWV9dGhpcy5lb2Y9ITAsZGVsZXRlIHRoaXMubHp3U3RhdGU7YnJlYWt9aWYoQTxuKWZvcihDPWdbQV0sZT1DLTEsdD1BO2U+PTA7ZS0tKWhbZV09clt0XSx0PW9bdF07ZWxzZSBoW0MrK109aFswXX1pZihhJiYob1tuXT1jLGdbbl09Z1tjXSsxLHJbbl09aFswXSxuKyssST1uK3MmbitzLTE/STowfE1hdGgubWluKE1hdGgubG9nKG4rcykvLjY5MzE0NzE4MDU1OTk0NTMrMSwxMikpLGM9QSxCKz1DLGk8Qil7ZG97aSs9NTEyfXdoaWxlKGk8Qik7UT10aGlzLmVuc3VyZUJ1ZmZlcih0aGlzLmJ1ZmZlckxlbmd0aCtpKX1mb3IoZT0wO2U8QztlKyspUVtsKytdPWhbZV19YS5uZXh0Q29kZT1uLGEuY29kZUxlbmd0aD1JLGEucHJldkNvZGU9YyxhLmN1cnJlbnRTZXF1ZW5jZUxlbmd0aD1DLHRoaXMuYnVmZmVyTGVuZ3RoPWx9fWNsYXNzIG5pIGV4dGVuZHMgTmV7Y29uc3RydWN0b3IoQSxlLHQpe2lmKHN1cGVyKGUpLCEodCBpbnN0YW5jZW9mIFFBKSlyZXR1cm4gQTtjb25zdCBpPXRoaXMucHJlZGljdG9yPXQuZ2V0KCJQcmVkaWN0b3IiKXx8MTtpZihpPD0xKXJldHVybiBBO2lmKDIhPT1pJiYoaTwxMHx8aT4xNSkpdGhyb3cgbmV3IFcoYFVuc3VwcG9ydGVkIHByZWRpY3RvcjogJHtpfWApO3RoaXMucmVhZEJsb2NrPTI9PT1pP3RoaXMucmVhZEJsb2NrVGlmZjp0aGlzLnJlYWRCbG9ja1BuZyx0aGlzLnN0cj1BLHRoaXMuZGljdD1BLmRpY3Q7Y29uc3QgYT10aGlzLmNvbG9ycz10LmdldCgiQ29sb3JzIil8fDEscz10aGlzLmJpdHM9dC5nZXQoIkJQQyIsIkJpdHNQZXJDb21wb25lbnQiKXx8OCxuPXRoaXMuY29sdW1ucz10LmdldCgiQ29sdW1ucyIpfHwxO3JldHVybiB0aGlzLnBpeEJ5dGVzPWEqcys3Pj4zLHRoaXMucm93Qnl0ZXM9biphKnMrNz4+Myx0aGlzfXJlYWRCbG9ja1RpZmYoKXtjb25zdCBBPXRoaXMucm93Qnl0ZXMsZT10aGlzLmJ1ZmZlckxlbmd0aCx0PXRoaXMuZW5zdXJlQnVmZmVyKGUrQSksaT10aGlzLmJpdHMsYT10aGlzLmNvbG9ycyxzPXRoaXMuc3RyLmdldEJ5dGVzKEEpO2lmKHRoaXMuZW9mPSFzLmxlbmd0aCx0aGlzLmVvZilyZXR1cm47bGV0IG4scj0wLGc9MCxvPTAsST0wLGM9ZTtpZigxPT09aSYmMT09PWEpZm9yKG49MDtuPEE7KytuKXtsZXQgQT1zW25dXnI7QV49QT4+MSxBXj1BPj4yLEFePUE+PjQscj0oMSZBKTw8Nyx0W2MrK109QX1lbHNlIGlmKDg9PT1pKXtmb3Iobj0wO248YTsrK24pdFtjKytdPXNbbl07Zm9yKDtuPEE7KytuKXRbY109dFtjLWFdK3Nbbl0sYysrfWVsc2UgaWYoMTY9PT1pKXtjb25zdCBlPTIqYTtmb3Iobj0wO248ZTsrK24pdFtjKytdPXNbbl07Zm9yKDtuPEE7bis9Mil7Y29uc3QgQT0oKDI1NSZzW25dKTw8OCkrKDI1NSZzW24rMV0pKygoMjU1JnRbYy1lXSk8PDgpKygyNTUmdFtjLWUrMV0pO3RbYysrXT1BPj44JjI1NSx0W2MrK109MjU1JkF9fWVsc2V7Y29uc3QgQT1uZXcgVWludDhBcnJheShhKzEpLGM9KDE8PGkpLTE7bGV0IGg9MCxDPWU7Y29uc3QgQj10aGlzLmNvbHVtbnM7Zm9yKG49MDtuPEI7KytuKWZvcihsZXQgZT0wO2U8YTsrK2UpbzxpJiYocj1yPDw4fDI1NSZzW2grK10sbys9OCksQVtlXT1BW2VdKyhyPj5vLWkpJmMsby09aSxnPWc8PGl8QVtlXSxJKz1pLEk+PTgmJih0W0MrK109Zz4+SS04JjI1NSxJLT04KTtJPjAmJih0W0MrK109KGc8PDgtSSkrKHImKDE8PDgtSSktMSkpfXRoaXMuYnVmZmVyTGVuZ3RoKz1BfXJlYWRCbG9ja1BuZygpe2NvbnN0IEE9dGhpcy5yb3dCeXRlcyxlPXRoaXMucGl4Qnl0ZXMsdD10aGlzLnN0ci5nZXRCeXRlKCksaT10aGlzLnN0ci5nZXRCeXRlcyhBKTtpZih0aGlzLmVvZj0haS5sZW5ndGgsdGhpcy5lb2YpcmV0dXJuO2NvbnN0IGE9dGhpcy5idWZmZXJMZW5ndGgscz10aGlzLmVuc3VyZUJ1ZmZlcihhK0EpO2xldCBuPXMuc3ViYXJyYXkoYS1BLGEpOzA9PT1uLmxlbmd0aCYmKG49bmV3IFVpbnQ4QXJyYXkoQSkpO2xldCByLGcsbyxJPWE7c3dpdGNoKHQpe2Nhc2UgMDpmb3Iocj0wO3I8QTsrK3Ipc1tJKytdPWlbcl07YnJlYWs7Y2FzZSAxOmZvcihyPTA7cjxlOysrcilzW0krK109aVtyXTtmb3IoO3I8QTsrK3Ipc1tJXT1zW0ktZV0raVtyXSYyNTUsSSsrO2JyZWFrO2Nhc2UgMjpmb3Iocj0wO3I8QTsrK3Ipc1tJKytdPW5bcl0raVtyXSYyNTU7YnJlYWs7Y2FzZSAzOmZvcihyPTA7cjxlOysrcilzW0krK109KG5bcl0+PjEpK2lbcl07Zm9yKDtyPEE7KytyKXNbSV09KG5bcl0rc1tJLWVdPj4xKStpW3JdJjI1NSxJKys7YnJlYWs7Y2FzZSA0OmZvcihyPTA7cjxlOysrcilnPW5bcl0sbz1pW3JdLHNbSSsrXT1nK287Zm9yKDtyPEE7KytyKXtnPW5bcl07Y29uc3QgQT1uW3ItZV0sdD1zW0ktZV0sYT10K2ctQTtsZXQgYz1hLXQ7YzwwJiYoYz0tYyk7bGV0IGg9YS1nO2g8MCYmKGg9LWgpO2xldCBDPWEtQTtDPDAmJihDPS1DKSxvPWlbcl0sc1tJKytdPWM8PWgmJmM8PUM/dCtvOmg8PUM/ZytvOkErb31icmVhaztkZWZhdWx0OnRocm93IG5ldyBXKGBVbnN1cHBvcnRlZCBwcmVkaWN0b3I6ICR7dH1gKX10aGlzLmJ1ZmZlckxlbmd0aCs9QX19Y2xhc3MgcmkgZXh0ZW5kcyBOZXtjb25zdHJ1Y3RvcihBLGUpe3N1cGVyKGUpLHRoaXMuc3RyPUEsdGhpcy5kaWN0PUEuZGljdH1yZWFkQmxvY2soKXtjb25zdCBBPXRoaXMuc3RyLmdldEJ5dGVzKDIpO2lmKCFBfHxBLmxlbmd0aDwyfHwxMjg9PT1BWzBdKXJldHVybiB2b2lkKHRoaXMuZW9mPSEwKTtsZXQgZSx0PXRoaXMuYnVmZmVyTGVuZ3RoLGk9QVswXTtpZihpPDEyOCl7aWYoZT10aGlzLmVuc3VyZUJ1ZmZlcih0K2krMSksZVt0KytdPUFbMV0saT4wKXtjb25zdCBBPXRoaXMuc3RyLmdldEJ5dGVzKGkpO2Uuc2V0KEEsdCksdCs9aX19ZWxzZXtpPTI1Ny1pO2NvbnN0IGE9QVsxXTtlPXRoaXMuZW5zdXJlQnVmZmVyKHQraSsxKTtmb3IobGV0IEE9MDtBPGk7QSsrKWVbdCsrXT1hfXRoaXMuYnVmZmVyTGVuZ3RoPXR9fWNsYXNzIGdpe2NvbnN0cnVjdG9yKHtsZXhlcjpBLHhyZWY6ZSxhbGxvd1N0cmVhbXM6dD0hMSxyZWNvdmVyeU1vZGU6aT0hMX0pe3RoaXMubGV4ZXI9QSx0aGlzLnhyZWY9ZSx0aGlzLmFsbG93U3RyZWFtcz10LHRoaXMucmVjb3ZlcnlNb2RlPWksdGhpcy5pbWFnZUNhY2hlPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5faW1hZ2VJZD0wLHRoaXMucmVmaWxsKCl9cmVmaWxsKCl7dGhpcy5idWYxPXRoaXMubGV4ZXIuZ2V0T2JqKCksdGhpcy5idWYyPXRoaXMubGV4ZXIuZ2V0T2JqKCl9c2hpZnQoKXt0aGlzLmJ1ZjIgaW5zdGFuY2VvZiBCQSYmIklEIj09PXRoaXMuYnVmMi5jbWQ/KHRoaXMuYnVmMT10aGlzLmJ1ZjIsdGhpcy5idWYyPW51bGwpOih0aGlzLmJ1ZjE9dGhpcy5idWYyLHRoaXMuYnVmMj10aGlzLmxleGVyLmdldE9iaigpKX10cnlTaGlmdCgpe3RyeXtyZXR1cm4gdGhpcy5zaGlmdCgpLCEwfWNhdGNoKEEpe2lmKEEgaW5zdGFuY2VvZiBrQSl0aHJvdyBBO3JldHVybiExfX1nZXRPYmooQT1udWxsKXtjb25zdCBlPXRoaXMuYnVmMTtpZih0aGlzLnNoaWZ0KCksZSBpbnN0YW5jZW9mIEJBKXN3aXRjaChlLmNtZCl7Y2FzZSJCSSI6cmV0dXJuIHRoaXMubWFrZUlubGluZUltYWdlKEEpO2Nhc2UiWyI6Y29uc3QgdD1bXTtmb3IoOyFwQSh0aGlzLmJ1ZjEsIl0iKSYmdGhpcy5idWYxIT09b0E7KXQucHVzaCh0aGlzLmdldE9iaihBKSk7aWYodGhpcy5idWYxPT09b0Epe2lmKHRoaXMucmVjb3ZlcnlNb2RlKXJldHVybiB0O3Rocm93IG5ldyBGQSgiRW5kIG9mIGZpbGUgaW5zaWRlIGFycmF5LiIpfXJldHVybiB0aGlzLnNoaWZ0KCksdDtjYXNlIjw8Ijpjb25zdCBpPW5ldyBRQSh0aGlzLnhyZWYpO2Zvcig7IXBBKHRoaXMuYnVmMSwiPj4iKSYmdGhpcy5idWYxIT09b0E7KXtpZighKHRoaXMuYnVmMSBpbnN0YW5jZW9mIENBKSl7eCgiTWFsZm9ybWVkIGRpY3Rpb25hcnk6IGtleSBtdXN0IGJlIGEgbmFtZSBvYmplY3QiKSx0aGlzLnNoaWZ0KCk7Y29udGludWV9Y29uc3QgZT10aGlzLmJ1ZjEubmFtZTtpZih0aGlzLnNoaWZ0KCksdGhpcy5idWYxPT09b0EpYnJlYWs7aS5zZXQoZSx0aGlzLmdldE9iaihBKSl9aWYodGhpcy5idWYxPT09b0Epe2lmKHRoaXMucmVjb3ZlcnlNb2RlKXJldHVybiBpO3Rocm93IG5ldyBGQSgiRW5kIG9mIGZpbGUgaW5zaWRlIGRpY3Rpb25hcnkuIil9cmV0dXJuIHBBKHRoaXMuYnVmMiwic3RyZWFtIik/dGhpcy5hbGxvd1N0cmVhbXM/dGhpcy5tYWtlU3RyZWFtKGksQSk6aToodGhpcy5zaGlmdCgpLGkpO2RlZmF1bHQ6cmV0dXJuIGV9aWYoTnVtYmVyLmlzSW50ZWdlcihlKSl7aWYoTnVtYmVyLmlzSW50ZWdlcih0aGlzLmJ1ZjEpJiZwQSh0aGlzLmJ1ZjIsIlIiKSl7Y29uc3QgQT1FQS5nZXQoZSx0aGlzLmJ1ZjEpO3JldHVybiB0aGlzLnNoaWZ0KCksdGhpcy5zaGlmdCgpLEF9cmV0dXJuIGV9cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlJiZBP0EuZGVjcnlwdFN0cmluZyhlKTplfWZpbmREZWZhdWx0SW5saW5lU3RyZWFtRW5kKEEpe2NvbnN0e2tub3duQ29tbWFuZHM6ZX09dGhpcy5sZXhlcix0PUEucG9zO2xldCBpLGEscz0wO2Zvcig7LTEhPT0oaT1BLmdldEJ5dGUoKSk7KWlmKDA9PT1zKXM9Njk9PT1pPzE6MDtlbHNlIGlmKDE9PT1zKXM9NzM9PT1pPzI6MDtlbHNlIGlmKDMyPT09aXx8MTA9PT1pfHwxMz09PWkpe2E9QS5wb3M7Y29uc3QgdD1BLnBlZWtCeXRlcygxNSksbj10Lmxlbmd0aDtpZigwPT09bilicmVhaztmb3IobGV0IEE9MDtBPG47QSsrKWlmKGk9dFtBXSwoMCE9PWl8fDA9PT10W0ErMV0pJiYxMCE9PWkmJjEzIT09aSYmKGk8MzJ8fGk+MTI3KSl7cz0wO2JyZWFrfWlmKDIhPT1zKWNvbnRpbnVlO2lmKCFlKXtVKCJmaW5kRGVmYXVsdElubGluZVN0cmVhbUVuZCAtIGBsZXhlci5rbm93bkNvbW1hbmRzYCBpcyB1bmRlZmluZWQuIik7Y29udGludWV9Y29uc3Qgcj1uZXcgY2kobmV3IGdlKHQuc2xpY2UoKSksZSk7ci5faGV4U3RyaW5nV2Fybj0oKT0+e307bGV0IGc9MDtmb3IoOzspe2NvbnN0IEE9ci5nZXRPYmooKTtpZihBPT09b0Epe3M9MDticmVha31pZihBIGluc3RhbmNlb2YgQkEpe2NvbnN0IHQ9ZVtBLmNtZF07aWYoIXQpe3M9MDticmVha31pZih0LnZhcmlhYmxlQXJncz9nPD10Lm51bUFyZ3M6Zz09PXQubnVtQXJncylicmVhaztnPTB9ZWxzZSBnKyt9aWYoMj09PXMpYnJlYWt9ZWxzZSBzPTA7LTE9PT1pJiYoVSgiZmluZERlZmF1bHRJbmxpbmVTdHJlYW1FbmQ6IFJlYWNoZWQgdGhlIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhvdXQgZmluZGluZyBhIHZhbGlkIEVJIG1hcmtlciIpLGEmJihVKCcuLi4gdHJ5aW5nIHRvIHJlY292ZXIgYnkgdXNpbmcgdGhlIGxhc3QgIkVJIiBvY2N1cnJlbmNlLicpLEEuc2tpcCgtKEEucG9zLWEpKSkpO2xldCBuPTQ7cmV0dXJuIEEuc2tpcCgtbiksaT1BLnBlZWtCeXRlKCksQS5za2lwKG4pLFlBKGkpfHxuLS0sQS5wb3Mtbi10fWZpbmREQ1REZWNvZGVJbmxpbmVTdHJlYW1FbmQoQSl7Y29uc3QgZT1BLnBvcztsZXQgdCxpLGE9ITE7Zm9yKDstMSE9PSh0PUEuZ2V0Qnl0ZSgpKTspaWYoMjU1PT09dCl7c3dpdGNoKEEuZ2V0Qnl0ZSgpKXtjYXNlIDA6YnJlYWs7Y2FzZSAyNTU6QS5za2lwKC0xKTticmVhaztjYXNlIDIxNzphPSEwO2JyZWFrO2Nhc2UgMTkyOmNhc2UgMTkzOmNhc2UgMTk0OmNhc2UgMTk1OmNhc2UgMTk3OmNhc2UgMTk4OmNhc2UgMTk5OmNhc2UgMjAxOmNhc2UgMjAyOmNhc2UgMjAzOmNhc2UgMjA1OmNhc2UgMjA2OmNhc2UgMjA3OmNhc2UgMTk2OmNhc2UgMjA0OmNhc2UgMjE4OmNhc2UgMjE5OmNhc2UgMjIwOmNhc2UgMjIxOmNhc2UgMjIyOmNhc2UgMjIzOmNhc2UgMjI0OmNhc2UgMjI1OmNhc2UgMjI2OmNhc2UgMjI3OmNhc2UgMjI4OmNhc2UgMjI5OmNhc2UgMjMwOmNhc2UgMjMxOmNhc2UgMjMyOmNhc2UgMjMzOmNhc2UgMjM0OmNhc2UgMjM1OmNhc2UgMjM2OmNhc2UgMjM3OmNhc2UgMjM4OmNhc2UgMjM5OmNhc2UgMjU0Omk9QS5nZXRVaW50MTYoKSxpPjI/QS5za2lwKGktMik6QS5za2lwKC0yKX1pZihhKWJyZWFrfWNvbnN0IHM9QS5wb3MtZTtyZXR1cm4tMT09PXQ/KFUoIklubGluZSBEQ1REZWNvZGUgaW1hZ2Ugc3RyZWFtOiBFT0kgbWFya2VyIG5vdCBmb3VuZCwgc2VhcmNoaW5nIGZvciAvRUkvIGluc3RlYWQuIiksQS5za2lwKC1zKSx0aGlzLmZpbmREZWZhdWx0SW5saW5lU3RyZWFtRW5kKEEpKToodGhpcy5pbmxpbmVTdHJlYW1Ta2lwRUkoQSkscyl9ZmluZEFTQ0lJODVEZWNvZGVJbmxpbmVTdHJlYW1FbmQoQSl7Y29uc3QgZT1BLnBvcztsZXQgdDtmb3IoOy0xIT09KHQ9QS5nZXRCeXRlKCkpOylpZigxMjY9PT10KXtjb25zdCBlPUEucG9zO2Zvcih0PUEucGVla0J5dGUoKTtZQSh0KTspQS5za2lwKCksdD1BLnBlZWtCeXRlKCk7aWYoNjI9PT10KXtBLnNraXAoKTticmVha31pZihBLnBvcz5lKXtjb25zdCBlPUEucGVla0J5dGVzKDIpO2lmKDY5PT09ZVswXSYmNzM9PT1lWzFdKWJyZWFrfX1jb25zdCBpPUEucG9zLWU7cmV0dXJuLTE9PT10PyhVKCJJbmxpbmUgQVNDSUk4NURlY29kZSBpbWFnZSBzdHJlYW06IEVPRCBtYXJrZXIgbm90IGZvdW5kLCBzZWFyY2hpbmcgZm9yIC9FSS8gaW5zdGVhZC4iKSxBLnNraXAoLWkpLHRoaXMuZmluZERlZmF1bHRJbmxpbmVTdHJlYW1FbmQoQSkpOih0aGlzLmlubGluZVN0cmVhbVNraXBFSShBKSxpKX1maW5kQVNDSUlIZXhEZWNvZGVJbmxpbmVTdHJlYW1FbmQoQSl7Y29uc3QgZT1BLnBvcztsZXQgdDtmb3IoOy0xIT09KHQ9QS5nZXRCeXRlKCkpJiY2MiE9PXQ7KTtjb25zdCBpPUEucG9zLWU7cmV0dXJuLTE9PT10PyhVKCJJbmxpbmUgQVNDSUlIZXhEZWNvZGUgaW1hZ2Ugc3RyZWFtOiBFT0QgbWFya2VyIG5vdCBmb3VuZCwgc2VhcmNoaW5nIGZvciAvRUkvIGluc3RlYWQuIiksQS5za2lwKC1pKSx0aGlzLmZpbmREZWZhdWx0SW5saW5lU3RyZWFtRW5kKEEpKToodGhpcy5pbmxpbmVTdHJlYW1Ta2lwRUkoQSksaSl9aW5saW5lU3RyZWFtU2tpcEVJKEEpe2xldCBlLHQ9MDtmb3IoOy0xIT09KGU9QS5nZXRCeXRlKCkpOylpZigwPT09dCl0PTY5PT09ZT8xOjA7ZWxzZSBpZigxPT09dCl0PTczPT09ZT8yOjA7ZWxzZSBpZigyPT09dClicmVha31tYWtlSW5saW5lSW1hZ2UoQSl7Y29uc3QgZT10aGlzLmxleGVyLHQ9ZS5zdHJlYW0saT1PYmplY3QuY3JlYXRlKG51bGwpO2xldCBhO2Zvcig7IXBBKHRoaXMuYnVmMSwiSUQiKSYmdGhpcy5idWYxIT09b0E7KXtpZighKHRoaXMuYnVmMSBpbnN0YW5jZW9mIENBKSl0aHJvdyBuZXcgVygiRGljdGlvbmFyeSBrZXkgbXVzdCBiZSBhIG5hbWUgb2JqZWN0Iik7Y29uc3QgZT10aGlzLmJ1ZjEubmFtZTtpZih0aGlzLnNoaWZ0KCksdGhpcy5idWYxPT09b0EpYnJlYWs7aVtlXT10aGlzLmdldE9iaihBKX0tMSE9PWUuYmVnaW5JbmxpbmVJbWFnZVBvcyYmKGE9dC5wb3MtZS5iZWdpbklubGluZUltYWdlUG9zKTtjb25zdCBzPXRoaXMueHJlZi5mZXRjaElmUmVmKGkuRnx8aS5GaWx0ZXIpO2xldCBuO2lmKHMgaW5zdGFuY2VvZiBDQSluPXMubmFtZTtlbHNlIGlmKEFycmF5LmlzQXJyYXkocykpe2NvbnN0IEE9dGhpcy54cmVmLmZldGNoSWZSZWYoc1swXSk7QSBpbnN0YW5jZW9mIENBJiYobj1BLm5hbWUpfWNvbnN0IHI9dC5wb3M7bGV0IGcsbztzd2l0Y2gobil7Y2FzZSJEQ1QiOmNhc2UiRENURGVjb2RlIjpnPXRoaXMuZmluZERDVERlY29kZUlubGluZVN0cmVhbUVuZCh0KTticmVhaztjYXNlIkE4NSI6Y2FzZSJBU0NJSTg1RGVjb2RlIjpnPXRoaXMuZmluZEFTQ0lJODVEZWNvZGVJbmxpbmVTdHJlYW1FbmQodCk7YnJlYWs7Y2FzZSJBSHgiOmNhc2UiQVNDSUlIZXhEZWNvZGUiOmc9dGhpcy5maW5kQVNDSUlIZXhEZWNvZGVJbmxpbmVTdHJlYW1FbmQodCk7YnJlYWs7ZGVmYXVsdDpnPXRoaXMuZmluZERlZmF1bHRJbmxpbmVTdHJlYW1FbmQodCl9aWYoZzwxZTMmJmE+MCl7Y29uc3QgQT10LnBvczt0LnBvcz1lLmJlZ2luSW5saW5lSW1hZ2VQb3Msbz1mdW5jdGlvbihBKXtjb25zdCBlPVtdLHQ9QS5sZW5ndGg7bGV0IGk9MDtmb3IoO2k8dC0xOyllLnB1c2goQVtpKytdPDw4fEFbaSsrXSk7cmV0dXJuIGk8dCYmZS5wdXNoKEFbaV0pLHQrIl8iK1N0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxlKX0odC5nZXRCeXRlcyhhK2cpKSx0LnBvcz1BO2NvbnN0IGk9dGhpcy5pbWFnZUNhY2hlW29dO2lmKHZvaWQgMCE9PWkpcmV0dXJuIHRoaXMuYnVmMj1CQS5nZXQoIkVJIiksdGhpcy5zaGlmdCgpLGkucmVzZXQoKSxpfWNvbnN0IEk9bmV3IFFBKHRoaXMueHJlZik7Zm9yKGNvbnN0IEEgaW4gaSlJLnNldChBLGlbQV0pO2xldCBjPXQubWFrZVN1YlN0cmVhbShyLGcsSSk7cmV0dXJuIEEmJihjPUEuY3JlYXRlU3RyZWFtKGMsZykpLGM9dGhpcy5maWx0ZXIoYyxJLGcpLGMuZGljdD1JLHZvaWQgMCE9PW8mJihjLmNhY2hlS2V5PSJpbmxpbmVfaW1nXyIrICsrdGhpcy5faW1hZ2VJZCx0aGlzLmltYWdlQ2FjaGVbb109YyksdGhpcy5idWYyPUJBLmdldCgiRUkiKSx0aGlzLnNoaWZ0KCksY30jdyhBKXtjb25zdHtzdHJlYW06ZX09dGhpcy5sZXhlcjtlLnBvcz1BO2NvbnN0IHQ9bmV3IFVpbnQ4QXJyYXkoWzEwMSwxMTAsMTAwXSksaT10Lmxlbmd0aCxhPVtuZXcgVWludDhBcnJheShbMTE1LDExNiwxMTQsMTAxLDk3LDEwOV0pLG5ldyBVaW50OEFycmF5KFsxMTUsMTE2LDEwMSw5NywxMDldKSxuZXcgVWludDhBcnJheShbMTE1LDExNiwxMTQsMTAxLDk3XSldLHM9OS1pO2Zvcig7ZS5wb3M8ZS5lbmQ7KXtjb25zdCBuPWUucGVla0J5dGVzKDIwNDgpLHI9bi5sZW5ndGgtOTtpZihyPD0wKWJyZWFrO2xldCBnPTA7Zm9yKDtnPHI7KXtsZXQgcj0wO2Zvcig7cjxpJiZuW2crcl09PT10W3JdOylyKys7aWYocj49aSl7bGV0IGk9ITE7Zm9yKGNvbnN0IEEgb2YgYSl7Y29uc3QgZT1BLmxlbmd0aDtsZXQgYT0wO2Zvcig7YTxlJiZuW2crcithXT09PUFbYV07KWErKztpZihhPj1zKXtpPSEwO2JyZWFrfWlmKGE+PWUpe1lBKG5bZytyK2FdKSYmKHgoYEZvdW5kICIke1ooWy4uLnQsLi4uQV0pfSIgd2hlbiBzZWFyY2hpbmcgZm9yIGVuZHN0cmVhbSBjb21tYW5kLmApLGk9ITApO2JyZWFrfX1pZihpKXJldHVybiBlLnBvcys9ZyxlLnBvcy1BfWcrK31lLnBvcys9cn1yZXR1cm4tMX1tYWtlU3RyZWFtKEEsZSl7Y29uc3QgdD10aGlzLmxleGVyO2xldCBpPXQuc3RyZWFtO3Quc2tpcFRvTmV4dExpbmUoKTtjb25zdCBhPWkucG9zLTE7bGV0IHM9QS5nZXQoIkxlbmd0aCIpO2lmKE51bWJlci5pc0ludGVnZXIocyl8fCh4KGBCYWQgbGVuZ3RoICIke3MmJnMudG9TdHJpbmcoKX0iIGluIHN0cmVhbS5gKSxzPTApLGkucG9zPWErcyx0Lm5leHRDaGFyKCksdGhpcy50cnlTaGlmdCgpJiZwQSh0aGlzLmJ1ZjIsImVuZHN0cmVhbSIpKXRoaXMuc2hpZnQoKTtlbHNle2lmKHM9dGhpcy4jdyhhKSxzPDApdGhyb3cgbmV3IFcoIk1pc3NpbmcgZW5kc3RyZWFtIGNvbW1hbmQuIik7dC5uZXh0Q2hhcigpLHRoaXMuc2hpZnQoKSx0aGlzLnNoaWZ0KCl9cmV0dXJuIHRoaXMuc2hpZnQoKSxpPWkubWFrZVN1YlN0cmVhbShhLHMsQSksZSYmKGk9ZS5jcmVhdGVTdHJlYW0oaSxzKSksaT10aGlzLmZpbHRlcihpLEEscyksaS5kaWN0PUEsaX1maWx0ZXIoQSxlLHQpe2xldCBpPWUuZ2V0KCJGIiwiRmlsdGVyIiksYT1lLmdldCgiRFAiLCJEZWNvZGVQYXJtcyIpO2lmKGkgaW5zdGFuY2VvZiBDQSlyZXR1cm4gQXJyYXkuaXNBcnJheShhKSYmVSgiL0RlY29kZVBhcm1zIHNob3VsZCBub3QgYmUgYW4gQXJyYXksIHdoZW4gL0ZpbHRlciBpcyBhIE5hbWUuIiksdGhpcy5tYWtlRmlsdGVyKEEsaS5uYW1lLHQsYSk7bGV0IHM9dDtpZihBcnJheS5pc0FycmF5KGkpKXtjb25zdCBlPWksdD1hO2ZvcihsZXQgbj0wLHI9ZS5sZW5ndGg7bjxyOysrbil7aWYoaT10aGlzLnhyZWYuZmV0Y2hJZlJlZihlW25dKSwhKGkgaW5zdGFuY2VvZiBDQSkpdGhyb3cgbmV3IFcoYEJhZCBmaWx0ZXIgbmFtZSAiJHtpfSJgKTthPW51bGwsQXJyYXkuaXNBcnJheSh0KSYmbiBpbiB0JiYoYT10aGlzLnhyZWYuZmV0Y2hJZlJlZih0W25dKSksQT10aGlzLm1ha2VGaWx0ZXIoQSxpLm5hbWUscyxhKSxzPW51bGx9fXJldHVybiBBfW1ha2VGaWx0ZXIoQSxlLHQsaSl7aWYoMD09PXQpcmV0dXJuIFUoYEVtcHR5ICIke2V9IiBzdHJlYW0uYCksbmV3IEllO3RyeXtzd2l0Y2goZSl7Y2FzZSJGbCI6Y2FzZSJGbGF0ZURlY29kZSI6cmV0dXJuIGk/bmV3IG5pKG5ldyBWZShBLHQpLHQsaSk6bmV3IFZlKEEsdCk7Y2FzZSJMWlciOmNhc2UiTFpXRGVjb2RlIjpsZXQgZT0xO3JldHVybiBpPyhpLmhhcygiRWFybHlDaGFuZ2UiKSYmKGU9aS5nZXQoIkVhcmx5Q2hhbmdlIikpLG5ldyBuaShuZXcgc2koQSx0LGUpLHQsaSkpOm5ldyBzaShBLHQsZSk7Y2FzZSJEQ1QiOmNhc2UiRENURGVjb2RlIjpyZXR1cm4gbmV3IHp0KEEsdCxpKTtjYXNlIkpQWCI6Y2FzZSJKUFhEZWNvZGUiOnJldHVybiBuZXcgYWkoQSx0LGkpO2Nhc2UiQTg1IjpjYXNlIkFTQ0lJODVEZWNvZGUiOnJldHVybiBuZXcgVWUoQSx0KTtjYXNlIkFIeCI6Y2FzZSJBU0NJSUhleERlY29kZSI6cmV0dXJuIG5ldyBNZShBLHQpO2Nhc2UiQ0NGIjpjYXNlIkNDSVRURmF4RGVjb2RlIjpyZXR1cm4gbmV3IFBlKEEsdCxpKTtjYXNlIlJMIjpjYXNlIlJ1bkxlbmd0aERlY29kZSI6cmV0dXJuIG5ldyByaShBLHQpO2Nhc2UiSkJJRzJEZWNvZGUiOnJldHVybiBuZXcgR3QoQSx0LGkpfXJldHVybiBVKGBGaWx0ZXIgIiR7ZX0iIGlzIG5vdCBzdXBwb3J0ZWQuYCksQX1jYXRjaChBKXtpZihBIGluc3RhbmNlb2Yga0EpdGhyb3cgQTtyZXR1cm4gVShgSW52YWxpZCBzdHJlYW06ICIke0F9ImApLG5ldyBJZX19fWNvbnN0IG9pPVsxLDAsMCwwLDAsMCwwLDAsMCwxLDEsMCwxLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDIsMCwwLDIsMiwwLDAsMCwwLDAsMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyLDAsMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIsMCwyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyLDAsMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXTtmdW5jdGlvbiBJaShBKXtyZXR1cm4gQT49NDgmJkE8PTU3PzE1JkE6QT49NjUmJkE8PTcwfHxBPj05NyYmQTw9MTAyPzkrKDE1JkEpOi0xfWNsYXNzIGNpe2NvbnN0cnVjdG9yKEEsZT1udWxsKXt0aGlzLnN0cmVhbT1BLHRoaXMubmV4dENoYXIoKSx0aGlzLnN0ckJ1Zj1bXSx0aGlzLmtub3duQ29tbWFuZHM9ZSx0aGlzLl9oZXhTdHJpbmdOdW1XYXJuPTAsdGhpcy5iZWdpbklubGluZUltYWdlUG9zPS0xfW5leHRDaGFyKCl7cmV0dXJuIHRoaXMuY3VycmVudENoYXI9dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpfXBlZWtDaGFyKCl7cmV0dXJuIHRoaXMuc3RyZWFtLnBlZWtCeXRlKCl9Z2V0TnVtYmVyKCl7bGV0IEE9dGhpcy5jdXJyZW50Q2hhcixlPSExLHQ9MCxpPTE7aWYoNDU9PT1BPyhpPS0xLEE9dGhpcy5uZXh0Q2hhcigpLDQ1PT09QSYmKEE9dGhpcy5uZXh0Q2hhcigpKSk6NDM9PT1BJiYoQT10aGlzLm5leHRDaGFyKCkpLDEwPT09QXx8MTM9PT1BKWRve0E9dGhpcy5uZXh0Q2hhcigpfXdoaWxlKDEwPT09QXx8MTM9PT1BKTtpZig0Nj09PUEmJih0PTEwLEE9dGhpcy5uZXh0Q2hhcigpKSxBPDQ4fHxBPjU3KXtjb25zdCBlPWBJbnZhbGlkIG51bWJlcjogJHtTdHJpbmcuZnJvbUNoYXJDb2RlKEEpfSAoY2hhckNvZGUgJHtBfSlgO2lmKFlBKEEpfHwtMT09PUEpcmV0dXJuIHgoYExleGVyLmdldE51bWJlciAtICIke2V9Ii5gKSwwO3Rocm93IG5ldyBXKGUpfWxldCBhPUEtNDgscz0wLG49MTtmb3IoOyhBPXRoaXMubmV4dENoYXIoKSk+PTA7KWlmKEE+PTQ4JiZBPD01Nyl7Y29uc3QgaT1BLTQ4O2U/cz0xMCpzK2k6KDAhPT10JiYodCo9MTApLGE9MTAqYStpKX1lbHNlIGlmKDQ2PT09QSl7aWYoMCE9PXQpYnJlYWs7dD0xfWVsc2UgaWYoNDU9PT1BKVUoIkJhZGx5IGZvcm1hdHRlZCBudW1iZXI6IG1pbnVzIHNpZ24gaW4gdGhlIG1pZGRsZSIpO2Vsc2V7aWYoNjkhPT1BJiYxMDEhPT1BKWJyZWFrO2lmKEE9dGhpcy5wZWVrQ2hhcigpLDQzPT09QXx8NDU9PT1BKW49NDU9PT1BPy0xOjEsdGhpcy5uZXh0Q2hhcigpO2Vsc2UgaWYoQTw0OHx8QT41NylicmVhaztlPSEwfXJldHVybiAwIT09dCYmKGEvPXQpLGUmJihhKj0xMCoqKG4qcykpLGkqYX1nZXRTdHJpbmcoKXtsZXQgQT0xLGU9ITE7Y29uc3QgdD10aGlzLnN0ckJ1Zjt0Lmxlbmd0aD0wO2xldCBpPXRoaXMubmV4dENoYXIoKTtmb3IoOzspe2xldCBhPSExO3N3aXRjaCgwfGkpe2Nhc2UtMTpVKCJVbnRlcm1pbmF0ZWQgc3RyaW5nIiksZT0hMDticmVhaztjYXNlIDQwOisrQSx0LnB1c2goIigiKTticmVhaztjYXNlIDQxOjA9PS0tQT8odGhpcy5uZXh0Q2hhcigpLGU9ITApOnQucHVzaCgiKSIpO2JyZWFrO2Nhc2UgOTI6c3dpdGNoKGk9dGhpcy5uZXh0Q2hhcigpLGkpe2Nhc2UtMTpVKCJVbnRlcm1pbmF0ZWQgc3RyaW5nIiksZT0hMDticmVhaztjYXNlIDExMDp0LnB1c2goIlxuIik7YnJlYWs7Y2FzZSAxMTQ6dC5wdXNoKCJcciIpO2JyZWFrO2Nhc2UgMTE2OnQucHVzaCgiXHQiKTticmVhaztjYXNlIDk4OnQucHVzaCgiXGIiKTticmVhaztjYXNlIDEwMjp0LnB1c2goIlxmIik7YnJlYWs7Y2FzZSA5MjpjYXNlIDQwOmNhc2UgNDE6dC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoaSkpO2JyZWFrO2Nhc2UgNDg6Y2FzZSA0OTpjYXNlIDUwOmNhc2UgNTE6Y2FzZSA1MjpjYXNlIDUzOmNhc2UgNTQ6Y2FzZSA1NTpsZXQgQT0xNSZpO2k9dGhpcy5uZXh0Q2hhcigpLGE9ITAsaT49NDgmJmk8PTU1JiYoQT0oQTw8MykrKDE1JmkpLGk9dGhpcy5uZXh0Q2hhcigpLGk+PTQ4JiZpPD01NSYmKGE9ITEsQT0oQTw8MykrKDE1JmkpKSksdC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoQSkpO2JyZWFrO2Nhc2UgMTM6MTA9PT10aGlzLnBlZWtDaGFyKCkmJnRoaXMubmV4dENoYXIoKTticmVhaztjYXNlIDEwOmJyZWFrO2RlZmF1bHQ6dC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoaSkpfWJyZWFrO2RlZmF1bHQ6dC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoaSkpfWlmKGUpYnJlYWs7YXx8KGk9dGhpcy5uZXh0Q2hhcigpKX1yZXR1cm4gdC5qb2luKCIiKX1nZXROYW1lKCl7bGV0IEEsZTtjb25zdCB0PXRoaXMuc3RyQnVmO2Zvcih0Lmxlbmd0aD0wOyhBPXRoaXMubmV4dENoYXIoKSk+PTAmJiFvaVtBXTspaWYoMzU9PT1BKXtpZihBPXRoaXMubmV4dENoYXIoKSxvaVtBXSl7VSgiTGV4ZXJfZ2V0TmFtZTogTlVNQkVSIFNJR04gKCMpIHNob3VsZCBiZSBmb2xsb3dlZCBieSBhIGhleGFkZWNpbWFsIG51bWJlci4iKSx0LnB1c2goIiMiKTticmVha31jb25zdCBpPUlpKEEpO2lmKC0xIT09aSl7ZT1BLEE9dGhpcy5uZXh0Q2hhcigpO2NvbnN0IGE9SWkoQSk7aWYoLTE9PT1hKXtpZihVKGBMZXhlcl9nZXROYW1lOiBJbGxlZ2FsIGRpZ2l0ICgke1N0cmluZy5mcm9tQ2hhckNvZGUoQSl9KSBpbiBoZXhhZGVjaW1hbCBudW1iZXIuYCksdC5wdXNoKCIjIixTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKSxvaVtBXSlicmVhazt0LnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShBKSk7Y29udGludWV9dC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoaTw8NHxhKSl9ZWxzZSB0LnB1c2goIiMiLFN0cmluZy5mcm9tQ2hhckNvZGUoQSkpfWVsc2UgdC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoQSkpO3JldHVybiB0Lmxlbmd0aD4xMjcmJlUoYE5hbWUgdG9rZW4gaXMgbG9uZ2VyIHRoYW4gYWxsb3dlZCBieSB0aGUgc3BlYzogJHt0Lmxlbmd0aH1gKSxDQS5nZXQodC5qb2luKCIiKSl9X2hleFN0cmluZ1dhcm4oQSl7NSE9dGhpcy5faGV4U3RyaW5nTnVtV2FybisrP3RoaXMuX2hleFN0cmluZ051bVdhcm4+NXx8VShgZ2V0SGV4U3RyaW5nIC0gaWdub3JpbmcgaW52YWxpZCBjaGFyYWN0ZXI6ICR7QX1gKTpVKCJnZXRIZXhTdHJpbmcgLSBpZ25vcmluZyBhZGRpdGlvbmFsIGludmFsaWQgY2hhcmFjdGVycy4iKX1nZXRIZXhTdHJpbmcoKXtjb25zdCBBPXRoaXMuc3RyQnVmO0EubGVuZ3RoPTA7bGV0IGU9dGhpcy5jdXJyZW50Q2hhcix0PS0xLGk9LTE7Zm9yKHRoaXMuX2hleFN0cmluZ051bVdhcm49MDs7KXtpZihlPDApe1UoIlVudGVybWluYXRlZCBoZXggc3RyaW5nIik7YnJlYWt9aWYoNjI9PT1lKXt0aGlzLm5leHRDaGFyKCk7YnJlYWt9MSE9PW9pW2VdPyhpPUlpKGUpLC0xPT09aT90aGlzLl9oZXhTdHJpbmdXYXJuKGUpOi0xPT09dD90PWk6KEEucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKHQ8PDR8aSkpLHQ9LTEpLGU9dGhpcy5uZXh0Q2hhcigpKTplPXRoaXMubmV4dENoYXIoKX1yZXR1cm4tMSE9PXQmJkEucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKHQ8PDQpKSxBLmpvaW4oIiIpfWdldE9iaigpe2xldCBBPSExLGU9dGhpcy5jdXJyZW50Q2hhcjtmb3IoOzspe2lmKGU8MClyZXR1cm4gb0E7aWYoQSkxMCE9PWUmJjEzIT09ZXx8KEE9ITEpO2Vsc2UgaWYoMzc9PT1lKUE9ITA7ZWxzZSBpZigxIT09b2lbZV0pYnJlYWs7ZT10aGlzLm5leHRDaGFyKCl9c3dpdGNoKDB8ZSl7Y2FzZSA0ODpjYXNlIDQ5OmNhc2UgNTA6Y2FzZSA1MTpjYXNlIDUyOmNhc2UgNTM6Y2FzZSA1NDpjYXNlIDU1OmNhc2UgNTY6Y2FzZSA1NzpjYXNlIDQzOmNhc2UgNDU6Y2FzZSA0NjpyZXR1cm4gdGhpcy5nZXROdW1iZXIoKTtjYXNlIDQwOnJldHVybiB0aGlzLmdldFN0cmluZygpO2Nhc2UgNDc6cmV0dXJuIHRoaXMuZ2V0TmFtZSgpO2Nhc2UgOTE6cmV0dXJuIHRoaXMubmV4dENoYXIoKSxCQS5nZXQoIlsiKTtjYXNlIDkzOnJldHVybiB0aGlzLm5leHRDaGFyKCksQkEuZ2V0KCJdIik7Y2FzZSA2MDpyZXR1cm4gZT10aGlzLm5leHRDaGFyKCksNjA9PT1lPyh0aGlzLm5leHRDaGFyKCksQkEuZ2V0KCI8PCIpKTp0aGlzLmdldEhleFN0cmluZygpO2Nhc2UgNjI6cmV0dXJuIGU9dGhpcy5uZXh0Q2hhcigpLDYyPT09ZT8odGhpcy5uZXh0Q2hhcigpLEJBLmdldCgiPj4iKSk6QkEuZ2V0KCI+Iik7Y2FzZSAxMjM6cmV0dXJuIHRoaXMubmV4dENoYXIoKSxCQS5nZXQoInsiKTtjYXNlIDEyNTpyZXR1cm4gdGhpcy5uZXh0Q2hhcigpLEJBLmdldCgifSIpO2Nhc2UgNDE6dGhyb3cgdGhpcy5uZXh0Q2hhcigpLG5ldyBXKGBJbGxlZ2FsIGNoYXJhY3RlcjogJHtlfWApfWxldCB0PVN0cmluZy5mcm9tQ2hhckNvZGUoZSk7aWYoZTwzMnx8ZT4xMjcpe2NvbnN0IEE9dGhpcy5wZWVrQ2hhcigpO2lmKEE+PTMyJiZBPD0xMjcpcmV0dXJuIHRoaXMubmV4dENoYXIoKSxCQS5nZXQodCl9Y29uc3QgaT10aGlzLmtub3duQ29tbWFuZHM7bGV0IGE9dm9pZCAwIT09aT8uW3RdO2Zvcig7KGU9dGhpcy5uZXh0Q2hhcigpKT49MCYmIW9pW2VdOyl7Y29uc3QgQT10K1N0cmluZy5mcm9tQ2hhckNvZGUoZSk7aWYoYSYmdm9pZCAwPT09aVtBXSlicmVhaztpZigxMjg9PT10Lmxlbmd0aCl0aHJvdyBuZXcgVyhgQ29tbWFuZCB0b2tlbiB0b28gbG9uZzogJHt0Lmxlbmd0aH1gKTt0PUEsYT12b2lkIDAhPT1pPy5bdF19cmV0dXJuInRydWUiPT09dHx8ImZhbHNlIiE9PXQmJigibnVsbCI9PT10P251bGw6KCJCSSI9PT10JiYodGhpcy5iZWdpbklubGluZUltYWdlUG9zPXRoaXMuc3RyZWFtLnBvcyksQkEuZ2V0KHQpKSl9c2tpcFRvTmV4dExpbmUoKXtsZXQgQT10aGlzLmN1cnJlbnRDaGFyO2Zvcig7QT49MDspe2lmKDEzPT09QSl7QT10aGlzLm5leHRDaGFyKCksMTA9PT1BJiZ0aGlzLm5leHRDaGFyKCk7YnJlYWt9aWYoMTA9PT1BKXt0aGlzLm5leHRDaGFyKCk7YnJlYWt9QT10aGlzLm5leHRDaGFyKCl9fX1jbGFzcyBoaXtzdGF0aWMgY3JlYXRlKEEpe2Z1bmN0aW9uIGUoQSxlLHQ9ITEpe2NvbnN0IGk9QS5nZXQoZSk7aWYoTnVtYmVyLmlzSW50ZWdlcihpKSYmKHQ/aT49MDppPjApKXJldHVybiBpO3Rocm93IG5ldyBFcnJvcihgVGhlICIke2V9IiBwYXJhbWV0ZXIgaW4gdGhlIGxpbmVhcml6YXRpb24gZGljdGlvbmFyeSBpcyBpbnZhbGlkLmApfWNvbnN0IHQ9bmV3IGdpKHtsZXhlcjpuZXcgY2koQSkseHJlZjpudWxsfSksaT10LmdldE9iaigpLGE9dC5nZXRPYmooKSxzPXQuZ2V0T2JqKCksbj10LmdldE9iaigpO2xldCByLGc7aWYoIShOdW1iZXIuaXNJbnRlZ2VyKGkpJiZOdW1iZXIuaXNJbnRlZ2VyKGEpJiZwQShzLCJvYmoiKSYmbiBpbnN0YW5jZW9mIFFBJiYibnVtYmVyIj09dHlwZW9mKHI9bi5nZXQoIkxpbmVhcml6ZWQiKSkmJnI+MCkpcmV0dXJuIG51bGw7aWYoKGc9ZShuLCJMIikpIT09QS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCdUaGUgIkwiIHBhcmFtZXRlciBpbiB0aGUgbGluZWFyaXphdGlvbiBkaWN0aW9uYXJ5IGRvZXMgbm90IGVxdWFsIHRoZSBzdHJlYW0gbGVuZ3RoLicpO3JldHVybntsZW5ndGg6ZyxoaW50czpmdW5jdGlvbihBKXtjb25zdCBlPUEuZ2V0KCJIIik7bGV0IHQ7aWYoQXJyYXkuaXNBcnJheShlKSYmKDI9PT0odD1lLmxlbmd0aCl8fDQ9PT10KSl7Zm9yKGxldCBBPTA7QTx0O0ErKyl7Y29uc3QgdD1lW0FdO2lmKCEoTnVtYmVyLmlzSW50ZWdlcih0KSYmdD4wKSl0aHJvdyBuZXcgRXJyb3IoYEhpbnQgKCR7QX0pIGluIHRoZSBsaW5lYXJpemF0aW9uIGRpY3Rpb25hcnkgaXMgaW52YWxpZC5gKX1yZXR1cm4gZX10aHJvdyBuZXcgRXJyb3IoIkhpbnQgYXJyYXkgaW4gdGhlIGxpbmVhcml6YXRpb24gZGljdGlvbmFyeSBpcyBpbnZhbGlkLiIpfShuKSxvYmplY3ROdW1iZXJGaXJzdDplKG4sIk8iKSxlbmRGaXJzdDplKG4sIkUiKSxudW1QYWdlczplKG4sIk4iKSxtYWluWFJlZkVudHJpZXNPZmZzZXQ6ZShuLCJUIikscGFnZUZpcnN0Om4uaGFzKCJQIik/ZShuLCJQIiwhMCk6MH19fWNvbnN0IENpPVsiQWRvYmUtR0IxLVVDUzIiLCJBZG9iZS1DTlMxLVVDUzIiLCJBZG9iZS1KYXBhbjEtVUNTMiIsIkFkb2JlLUtvcmVhMS1VQ1MyIiwiNzgtRVVDLUgiLCI3OC1FVUMtViIsIjc4LUgiLCI3OC1SS1NKLUgiLCI3OC1SS1NKLVYiLCI3OC1WIiwiNzhtcy1SS1NKLUgiLCI3OG1zLVJLU0otViIsIjgzcHYtUktTSi1IIiwiOTBtcy1SS1NKLUgiLCI5MG1zLVJLU0otViIsIjkwbXNwLVJLU0otSCIsIjkwbXNwLVJLU0otViIsIjkwcHYtUktTSi1IIiwiOTBwdi1SS1NKLVYiLCJBZGQtSCIsIkFkZC1SS1NKLUgiLCJBZGQtUktTSi1WIiwiQWRkLVYiLCJBZG9iZS1DTlMxLTAiLCJBZG9iZS1DTlMxLTEiLCJBZG9iZS1DTlMxLTIiLCJBZG9iZS1DTlMxLTMiLCJBZG9iZS1DTlMxLTQiLCJBZG9iZS1DTlMxLTUiLCJBZG9iZS1DTlMxLTYiLCJBZG9iZS1HQjEtMCIsIkFkb2JlLUdCMS0xIiwiQWRvYmUtR0IxLTIiLCJBZG9iZS1HQjEtMyIsIkFkb2JlLUdCMS00IiwiQWRvYmUtR0IxLTUiLCJBZG9iZS1KYXBhbjEtMCIsIkFkb2JlLUphcGFuMS0xIiwiQWRvYmUtSmFwYW4xLTIiLCJBZG9iZS1KYXBhbjEtMyIsIkFkb2JlLUphcGFuMS00IiwiQWRvYmUtSmFwYW4xLTUiLCJBZG9iZS1KYXBhbjEtNiIsIkFkb2JlLUtvcmVhMS0wIiwiQWRvYmUtS29yZWExLTEiLCJBZG9iZS1Lb3JlYTEtMiIsIkI1LUgiLCJCNS1WIiwiQjVwYy1IIiwiQjVwYy1WIiwiQ05TLUVVQy1IIiwiQ05TLUVVQy1WIiwiQ05TMS1IIiwiQ05TMS1WIiwiQ05TMi1IIiwiQ05TMi1WIiwiRVRISy1CNS1IIiwiRVRISy1CNS1WIiwiRVRlbi1CNS1IIiwiRVRlbi1CNS1WIiwiRVRlbm1zLUI1LUgiLCJFVGVubXMtQjUtViIsIkVVQy1IIiwiRVVDLVYiLCJFeHQtSCIsIkV4dC1SS1NKLUgiLCJFeHQtUktTSi1WIiwiRXh0LVYiLCJHQi1FVUMtSCIsIkdCLUVVQy1WIiwiR0ItSCIsIkdCLVYiLCJHQkstRVVDLUgiLCJHQkstRVVDLVYiLCJHQksySy1IIiwiR0JLMkstViIsIkdCS3AtRVVDLUgiLCJHQktwLUVVQy1WIiwiR0JULUVVQy1IIiwiR0JULUVVQy1WIiwiR0JULUgiLCJHQlQtViIsIkdCVHBjLUVVQy1IIiwiR0JUcGMtRVVDLVYiLCJHQnBjLUVVQy1IIiwiR0JwYy1FVUMtViIsIkgiLCJIS2RsYS1CNS1IIiwiSEtkbGEtQjUtViIsIkhLZGxiLUI1LUgiLCJIS2RsYi1CNS1WIiwiSEtnY2NzLUI1LUgiLCJIS2djY3MtQjUtViIsIkhLbTMxNC1CNS1IIiwiSEttMzE0LUI1LVYiLCJIS200NzEtQjUtSCIsIkhLbTQ3MS1CNS1WIiwiSEtzY3MtQjUtSCIsIkhLc2NzLUI1LVYiLCJIYW5rYWt1IiwiSGlyYWdhbmEiLCJLU0MtRVVDLUgiLCJLU0MtRVVDLVYiLCJLU0MtSCIsIktTQy1Kb2hhYi1IIiwiS1NDLUpvaGFiLVYiLCJLU0MtViIsIktTQ21zLVVIQy1IIiwiS1NDbXMtVUhDLUhXLUgiLCJLU0Ntcy1VSEMtSFctViIsIktTQ21zLVVIQy1WIiwiS1NDcGMtRVVDLUgiLCJLU0NwYy1FVUMtViIsIkthdGFrYW5hIiwiTldQLUgiLCJOV1AtViIsIlJLU0otSCIsIlJLU0otViIsIlJvbWFuIiwiVW5pQ05TLVVDUzItSCIsIlVuaUNOUy1VQ1MyLVYiLCJVbmlDTlMtVVRGMTYtSCIsIlVuaUNOUy1VVEYxNi1WIiwiVW5pQ05TLVVURjMyLUgiLCJVbmlDTlMtVVRGMzItViIsIlVuaUNOUy1VVEY4LUgiLCJVbmlDTlMtVVRGOC1WIiwiVW5pR0ItVUNTMi1IIiwiVW5pR0ItVUNTMi1WIiwiVW5pR0ItVVRGMTYtSCIsIlVuaUdCLVVURjE2LVYiLCJVbmlHQi1VVEYzMi1IIiwiVW5pR0ItVVRGMzItViIsIlVuaUdCLVVURjgtSCIsIlVuaUdCLVVURjgtViIsIlVuaUpJUy1VQ1MyLUgiLCJVbmlKSVMtVUNTMi1IVy1IIiwiVW5pSklTLVVDUzItSFctViIsIlVuaUpJUy1VQ1MyLVYiLCJVbmlKSVMtVVRGMTYtSCIsIlVuaUpJUy1VVEYxNi1WIiwiVW5pSklTLVVURjMyLUgiLCJVbmlKSVMtVVRGMzItViIsIlVuaUpJUy1VVEY4LUgiLCJVbmlKSVMtVVRGOC1WIiwiVW5pSklTMjAwNC1VVEYxNi1IIiwiVW5pSklTMjAwNC1VVEYxNi1WIiwiVW5pSklTMjAwNC1VVEYzMi1IIiwiVW5pSklTMjAwNC1VVEYzMi1WIiwiVW5pSklTMjAwNC1VVEY4LUgiLCJVbmlKSVMyMDA0LVVURjgtViIsIlVuaUpJU1Byby1VQ1MyLUhXLVYiLCJVbmlKSVNQcm8tVUNTMi1WIiwiVW5pSklTUHJvLVVURjgtViIsIlVuaUpJU1gwMjEzLVVURjMyLUgiLCJVbmlKSVNYMDIxMy1VVEYzMi1WIiwiVW5pSklTWDAyMTMyMDA0LVVURjMyLUgiLCJVbmlKSVNYMDIxMzIwMDQtVVRGMzItViIsIlVuaUtTLVVDUzItSCIsIlVuaUtTLVVDUzItViIsIlVuaUtTLVVURjE2LUgiLCJVbmlLUy1VVEYxNi1WIiwiVW5pS1MtVVRGMzItSCIsIlVuaUtTLVVURjMyLVYiLCJVbmlLUy1VVEY4LUgiLCJVbmlLUy1VVEY4LVYiLCJWIiwiV1AtU3ltYm9sIl0sQmk9MioqMjQtMTtjbGFzcyBsaXtjb25zdHJ1Y3RvcihBPSExKXt0aGlzLmNvZGVzcGFjZVJhbmdlcz1bW10sW10sW10sW11dLHRoaXMubnVtQ29kZXNwYWNlUmFuZ2VzPTAsdGhpcy5fbWFwPVtdLHRoaXMubmFtZT0iIix0aGlzLnZlcnRpY2FsPSExLHRoaXMudXNlQ01hcD1udWxsLHRoaXMuYnVpbHRJbkNNYXA9QX1hZGRDb2Rlc3BhY2VSYW5nZShBLGUsdCl7dGhpcy5jb2Rlc3BhY2VSYW5nZXNbQS0xXS5wdXNoKGUsdCksdGhpcy5udW1Db2Rlc3BhY2VSYW5nZXMrK31tYXBDaWRSYW5nZShBLGUsdCl7aWYoZS1BPkJpKXRocm93IG5ldyBFcnJvcigibWFwQ2lkUmFuZ2UgLSBpZ25vcmluZyBkYXRhIGFib3ZlIE1BWF9NQVBfUkFOR0UuIik7Zm9yKDtBPD1lOyl0aGlzLl9tYXBbQSsrXT10Kyt9bWFwQmZSYW5nZShBLGUsdCl7aWYoZS1BPkJpKXRocm93IG5ldyBFcnJvcigibWFwQmZSYW5nZSAtIGlnbm9yaW5nIGRhdGEgYWJvdmUgTUFYX01BUF9SQU5HRS4iKTtjb25zdCBpPXQubGVuZ3RoLTE7Zm9yKDtBPD1lOyl7dGhpcy5fbWFwW0ErK109dDtjb25zdCBlPXQuY2hhckNvZGVBdChpKSsxO3Q9ZT4yNTU/dC5zdWJzdHJpbmcoMCxpLTEpK1N0cmluZy5mcm9tQ2hhckNvZGUodC5jaGFyQ29kZUF0KGktMSkrMSkrIlwwIjp0LnN1YnN0cmluZygwLGkpK1N0cmluZy5mcm9tQ2hhckNvZGUoZSl9fW1hcEJmUmFuZ2VUb0FycmF5KEEsZSx0KXtpZihlLUE+QmkpdGhyb3cgbmV3IEVycm9yKCJtYXBCZlJhbmdlVG9BcnJheSAtIGlnbm9yaW5nIGRhdGEgYWJvdmUgTUFYX01BUF9SQU5HRS4iKTtjb25zdCBpPXQubGVuZ3RoO2xldCBhPTA7Zm9yKDtBPD1lJiZhPGk7KXRoaXMuX21hcFtBXT10W2ErK10sKytBfW1hcE9uZShBLGUpe3RoaXMuX21hcFtBXT1lfWxvb2t1cChBKXtyZXR1cm4gdGhpcy5fbWFwW0FdfWNvbnRhaW5zKEEpe3JldHVybiB2b2lkIDAhPT10aGlzLl9tYXBbQV19Zm9yRWFjaChBKXtjb25zdCBlPXRoaXMuX21hcCx0PWUubGVuZ3RoO2lmKHQ8PTY1NTM2KWZvcihsZXQgaT0wO2k8dDtpKyspdm9pZCAwIT09ZVtpXSYmQShpLGVbaV0pO2Vsc2UgZm9yKGNvbnN0IHQgaW4gZSlBKHQsZVt0XSl9Y2hhckNvZGVPZihBKXtjb25zdCBlPXRoaXMuX21hcDtpZihlLmxlbmd0aDw9NjU1MzYpcmV0dXJuIGUuaW5kZXhPZihBKTtmb3IoY29uc3QgdCBpbiBlKWlmKGVbdF09PT1BKXJldHVybiAwfHQ7cmV0dXJuLTF9Z2V0TWFwKCl7cmV0dXJuIHRoaXMuX21hcH1yZWFkQ2hhckNvZGUoQSxlLHQpe2xldCBpPTA7Y29uc3QgYT10aGlzLmNvZGVzcGFjZVJhbmdlcztmb3IobGV0IHM9MCxuPWEubGVuZ3RoO3M8bjtzKyspe2k9KGk8PDh8QS5jaGFyQ29kZUF0KGUrcykpPj4+MDtjb25zdCBuPWFbc107Zm9yKGxldCBBPTAsZT1uLmxlbmd0aDtBPGU7KXtjb25zdCBlPW5bQSsrXSxhPW5bQSsrXTtpZihpPj1lJiZpPD1hKXJldHVybiB0LmNoYXJjb2RlPWksdm9pZCh0Lmxlbmd0aD1zKzEpfX10LmNoYXJjb2RlPTAsdC5sZW5ndGg9MX1nZXRDaGFyQ29kZUxlbmd0aChBKXtjb25zdCBlPXRoaXMuY29kZXNwYWNlUmFuZ2VzO2ZvcihsZXQgdD0wLGk9ZS5sZW5ndGg7dDxpO3QrKyl7Y29uc3QgaT1lW3RdO2ZvcihsZXQgZT0wLGE9aS5sZW5ndGg7ZTxhOyl7Y29uc3QgYT1pW2UrK10scz1pW2UrK107aWYoQT49YSYmQTw9cylyZXR1cm4gdCsxfX1yZXR1cm4gMX1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuX21hcC5sZW5ndGh9Z2V0IGlzSWRlbnRpdHlDTWFwKCl7aWYoIklkZW50aXR5LUgiIT09dGhpcy5uYW1lJiYiSWRlbnRpdHktViIhPT10aGlzLm5hbWUpcmV0dXJuITE7aWYoNjU1MzYhPT10aGlzLl9tYXAubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgQT0wO0E8NjU1MzY7QSsrKWlmKHRoaXMuX21hcFtBXSE9PUEpcmV0dXJuITE7cmV0dXJuITB9fWNsYXNzIFFpIGV4dGVuZHMgbGl7Y29uc3RydWN0b3IoQSxlKXtzdXBlcigpLHRoaXMudmVydGljYWw9QSx0aGlzLmFkZENvZGVzcGFjZVJhbmdlKGUsMCw2NTUzNSl9bWFwQ2lkUmFuZ2UoQSxlLHQpe00oInNob3VsZCBub3QgY2FsbCBtYXBDaWRSYW5nZSIpfW1hcEJmUmFuZ2UoQSxlLHQpe00oInNob3VsZCBub3QgY2FsbCBtYXBCZlJhbmdlIil9bWFwQmZSYW5nZVRvQXJyYXkoQSxlLHQpe00oInNob3VsZCBub3QgY2FsbCBtYXBCZlJhbmdlVG9BcnJheSIpfW1hcE9uZShBLGUpe00oInNob3VsZCBub3QgY2FsbCBtYXBDaWRPbmUiKX1sb29rdXAoQSl7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoQSkmJkE8PTY1NTM1P0E6dm9pZCAwfWNvbnRhaW5zKEEpe3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKEEpJiZBPD02NTUzNX1mb3JFYWNoKEEpe2ZvcihsZXQgZT0wO2U8PTY1NTM1O2UrKylBKGUsZSl9Y2hhckNvZGVPZihBKXtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihBKSYmQTw9NjU1MzU/QTotMX1nZXRNYXAoKXtjb25zdCBBPW5ldyBBcnJheSg2NTUzNik7Zm9yKGxldCBlPTA7ZTw9NjU1MzU7ZSsrKUFbZV09ZTtyZXR1cm4gQX1nZXQgbGVuZ3RoKCl7cmV0dXJuIDY1NTM2fWdldCBpc0lkZW50aXR5Q01hcCgpe00oInNob3VsZCBub3QgYWNjZXNzIC5pc0lkZW50aXR5Q01hcCIpfX1mdW5jdGlvbiBFaShBKXtsZXQgZT0wO2ZvcihsZXQgdD0wO3Q8QS5sZW5ndGg7dCsrKWU9ZTw8OHxBLmNoYXJDb2RlQXQodCk7cmV0dXJuIGU+Pj4wfWZ1bmN0aW9uIHVpKEEpe2lmKCJzdHJpbmciIT10eXBlb2YgQSl0aHJvdyBuZXcgVygiTWFsZm9ybWVkIENNYXA6IGV4cGVjdGVkIHN0cmluZy4iKX1mdW5jdGlvbiBkaShBKXtpZighTnVtYmVyLmlzSW50ZWdlcihBKSl0aHJvdyBuZXcgVygiTWFsZm9ybWVkIENNYXA6IGV4cGVjdGVkIGludC4iKX1mdW5jdGlvbiBmaShBLGUpe2Zvcig7Oyl7bGV0IHQ9ZS5nZXRPYmooKTtpZih0PT09b0EpYnJlYWs7aWYocEEodCwiZW5kYmZjaGFyIikpcmV0dXJuO3VpKHQpO2NvbnN0IGk9RWkodCk7dD1lLmdldE9iaigpLHVpKHQpO2NvbnN0IGE9dDtBLm1hcE9uZShpLGEpfX1mdW5jdGlvbiBwaShBLGUpe2Zvcig7Oyl7bGV0IHQ9ZS5nZXRPYmooKTtpZih0PT09b0EpYnJlYWs7aWYocEEodCwiZW5kYmZyYW5nZSIpKXJldHVybjt1aSh0KTtjb25zdCBpPUVpKHQpO3Q9ZS5nZXRPYmooKSx1aSh0KTtjb25zdCBhPUVpKHQpO2lmKHQ9ZS5nZXRPYmooKSxOdW1iZXIuaXNJbnRlZ2VyKHQpfHwic3RyaW5nIj09dHlwZW9mIHQpe2NvbnN0IGU9TnVtYmVyLmlzSW50ZWdlcih0KT9TdHJpbmcuZnJvbUNoYXJDb2RlKHQpOnQ7QS5tYXBCZlJhbmdlKGksYSxlKX1lbHNle2lmKCFwQSh0LCJbIikpYnJlYWs7e3Q9ZS5nZXRPYmooKTtjb25zdCBzPVtdO2Zvcig7IXBBKHQsIl0iKSYmdCE9PW9BOylzLnB1c2godCksdD1lLmdldE9iaigpO0EubWFwQmZSYW5nZVRvQXJyYXkoaSxhLHMpfX19dGhyb3cgbmV3IFcoIkludmFsaWQgYmYgcmFuZ2UuIil9ZnVuY3Rpb24gbWkoQSxlKXtmb3IoOzspe2xldCB0PWUuZ2V0T2JqKCk7aWYodD09PW9BKWJyZWFrO2lmKHBBKHQsImVuZGNpZGNoYXIiKSlyZXR1cm47dWkodCk7Y29uc3QgaT1FaSh0KTt0PWUuZ2V0T2JqKCksZGkodCk7Y29uc3QgYT10O0EubWFwT25lKGksYSl9fWZ1bmN0aW9uIHlpKEEsZSl7Zm9yKDs7KXtsZXQgdD1lLmdldE9iaigpO2lmKHQ9PT1vQSlicmVhaztpZihwQSh0LCJlbmRjaWRyYW5nZSIpKXJldHVybjt1aSh0KTtjb25zdCBpPUVpKHQpO3Q9ZS5nZXRPYmooKSx1aSh0KTtjb25zdCBhPUVpKHQpO3Q9ZS5nZXRPYmooKSxkaSh0KTtjb25zdCBzPXQ7QS5tYXBDaWRSYW5nZShpLGEscyl9fWZ1bmN0aW9uIHdpKEEsZSl7Zm9yKDs7KXtsZXQgdD1lLmdldE9iaigpO2lmKHQ9PT1vQSlicmVhaztpZihwQSh0LCJlbmRjb2Rlc3BhY2VyYW5nZSIpKXJldHVybjtpZigic3RyaW5nIiE9dHlwZW9mIHQpYnJlYWs7Y29uc3QgaT1FaSh0KTtpZih0PWUuZ2V0T2JqKCksInN0cmluZyIhPXR5cGVvZiB0KWJyZWFrO2NvbnN0IGE9RWkodCk7QS5hZGRDb2Rlc3BhY2VSYW5nZSh0Lmxlbmd0aCxpLGEpfXRocm93IG5ldyBXKCJJbnZhbGlkIGNvZGVzcGFjZSByYW5nZS4iKX1mdW5jdGlvbiBEaShBLGUpe2NvbnN0IHQ9ZS5nZXRPYmooKTtOdW1iZXIuaXNJbnRlZ2VyKHQpJiYoQS52ZXJ0aWNhbD0hIXQpfWZ1bmN0aW9uIGJpKEEsZSl7Y29uc3QgdD1lLmdldE9iaigpO3QgaW5zdGFuY2VvZiBDQSYmKEEubmFtZT10Lm5hbWUpfWFzeW5jIGZ1bmN0aW9uIGtpKEEsZSx0LGkpe2xldCBhLHM7QTpmb3IoOzspdHJ5e2NvbnN0IHQ9ZS5nZXRPYmooKTtpZih0PT09b0EpYnJlYWs7aWYodCBpbnN0YW5jZW9mIENBKSJXTW9kZSI9PT10Lm5hbWU/RGkoQSxlKToiQ01hcE5hbWUiPT09dC5uYW1lJiZiaShBLGUpLGE9dDtlbHNlIGlmKHQgaW5zdGFuY2VvZiBCQSlzd2l0Y2godC5jbWQpe2Nhc2UiZW5kY21hcCI6YnJlYWsgQTtjYXNlInVzZWNtYXAiOmEgaW5zdGFuY2VvZiBDQSYmKHM9YS5uYW1lKTticmVhaztjYXNlImJlZ2luY29kZXNwYWNlcmFuZ2UiOndpKEEsZSk7YnJlYWs7Y2FzZSJiZWdpbmJmY2hhciI6ZmkoQSxlKTticmVhaztjYXNlImJlZ2luY2lkY2hhciI6bWkoQSxlKTticmVhaztjYXNlImJlZ2luYmZyYW5nZSI6cGkoQSxlKTticmVhaztjYXNlImJlZ2luY2lkcmFuZ2UiOnlpKEEsZSl9fWNhdGNoKEEpe2lmKEEgaW5zdGFuY2VvZiBrQSl0aHJvdyBBO1UoIkludmFsaWQgY01hcCBkYXRhOiAiK0EpO2NvbnRpbnVlfXJldHVybiFpJiZzJiYoaT1zKSxpP0ZpKEEsdCxpKTpBfWFzeW5jIGZ1bmN0aW9uIEZpKEEsZSx0KXtpZihBLnVzZUNNYXA9YXdhaXQgU2kodCxlKSwwPT09QS5udW1Db2Rlc3BhY2VSYW5nZXMpe2NvbnN0IGU9QS51c2VDTWFwLmNvZGVzcGFjZVJhbmdlcztmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKylBLmNvZGVzcGFjZVJhbmdlc1t0XT1lW3RdLnNsaWNlKCk7QS5udW1Db2Rlc3BhY2VSYW5nZXM9QS51c2VDTWFwLm51bUNvZGVzcGFjZVJhbmdlc31yZXR1cm4gQS51c2VDTWFwLmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7QS5jb250YWlucyhlKXx8QS5tYXBPbmUoZSxBLnVzZUNNYXAubG9va3VwKGUpKX0pKSxBfWFzeW5jIGZ1bmN0aW9uIFNpKEEsZSl7aWYoIklkZW50aXR5LUgiPT09QSlyZXR1cm4gbmV3IFFpKCExLDIpO2lmKCJJZGVudGl0eS1WIj09PUEpcmV0dXJuIG5ldyBRaSghMCwyKTtpZighQ2kuaW5jbHVkZXMoQSkpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIENNYXAgbmFtZTogIitBKTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIkJ1aWx0LWluIENNYXAgcGFyYW1ldGVycyBhcmUgbm90IHByb3ZpZGVkLiIpO2NvbnN0e2NNYXBEYXRhOnQsY29tcHJlc3Npb25UeXBlOml9PWF3YWl0IGUoQSksYT1uZXcgbGkoITApO2lmKGk9PT1kLkJJTkFSWSlyZXR1cm4obmV3IFJlKS5wcm9jZXNzKHQsYSwoQT0+RmkoYSxlLEEpKSk7aWYoaT09PWQuTk9ORSl7Y29uc3QgQT1uZXcgY2kobmV3IGdlKHQpKTtyZXR1cm4ga2koYSxBLGUsbnVsbCl9dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIENNYXAgImNvbXByZXNzaW9uVHlwZSIgdmFsdWU6ICR7aX1gKX1jbGFzcyBSaXtzdGF0aWMgYXN5bmMgY3JlYXRlKHtlbmNvZGluZzpBLGZldGNoQnVpbHRJbkNNYXA6ZSx1c2VDTWFwOnR9KXtpZihBIGluc3RhbmNlb2YgQ0EpcmV0dXJuIFNpKEEubmFtZSxlKTtpZihBIGluc3RhbmNlb2Ygd0Epe2NvbnN0IGk9YXdhaXQga2kobmV3IGxpLG5ldyBjaShBKSxlLHQpO3JldHVybiBpLmlzSWRlbnRpdHlDTWFwP1NpKGkubmFtZSxlKTppfXRocm93IG5ldyBFcnJvcigiRW5jb2RpbmcgcmVxdWlyZWQuIil9fXQoMTc5NSk7Y29uc3QgR2k9WyIubm90ZGVmIiwic3BhY2UiLCJleGNsYW0iLCJxdW90ZWRibCIsIm51bWJlcnNpZ24iLCJkb2xsYXIiLCJwZXJjZW50IiwiYW1wZXJzYW5kIiwicXVvdGVyaWdodCIsInBhcmVubGVmdCIsInBhcmVucmlnaHQiLCJhc3RlcmlzayIsInBsdXMiLCJjb21tYSIsImh5cGhlbiIsInBlcmlvZCIsInNsYXNoIiwiemVybyIsIm9uZSIsInR3byIsInRocmVlIiwiZm91ciIsImZpdmUiLCJzaXgiLCJzZXZlbiIsImVpZ2h0IiwibmluZSIsImNvbG9uIiwic2VtaWNvbG9uIiwibGVzcyIsImVxdWFsIiwiZ3JlYXRlciIsInF1ZXN0aW9uIiwiYXQiLCJBIiwiQiIsIkMiLCJEIiwiRSIsIkYiLCJHIiwiSCIsIkkiLCJKIiwiSyIsIkwiLCJNIiwiTiIsIk8iLCJQIiwiUSIsIlIiLCJTIiwiVCIsIlUiLCJWIiwiVyIsIlgiLCJZIiwiWiIsImJyYWNrZXRsZWZ0IiwiYmFja3NsYXNoIiwiYnJhY2tldHJpZ2h0IiwiYXNjaWljaXJjdW0iLCJ1bmRlcnNjb3JlIiwicXVvdGVsZWZ0IiwiYSIsImIiLCJjIiwiZCIsImUiLCJmIiwiZyIsImgiLCJpIiwiaiIsImsiLCJsIiwibSIsIm4iLCJvIiwicCIsInEiLCJyIiwicyIsInQiLCJ1IiwidiIsInciLCJ4IiwieSIsInoiLCJicmFjZWxlZnQiLCJiYXIiLCJicmFjZXJpZ2h0IiwiYXNjaWl0aWxkZSIsImV4Y2xhbWRvd24iLCJjZW50Iiwic3RlcmxpbmciLCJmcmFjdGlvbiIsInllbiIsImZsb3JpbiIsInNlY3Rpb24iLCJjdXJyZW5jeSIsInF1b3Rlc2luZ2xlIiwicXVvdGVkYmxsZWZ0IiwiZ3VpbGxlbW90bGVmdCIsImd1aWxzaW5nbGxlZnQiLCJndWlsc2luZ2xyaWdodCIsImZpIiwiZmwiLCJlbmRhc2giLCJkYWdnZXIiLCJkYWdnZXJkYmwiLCJwZXJpb2RjZW50ZXJlZCIsInBhcmFncmFwaCIsImJ1bGxldCIsInF1b3Rlc2luZ2xiYXNlIiwicXVvdGVkYmxiYXNlIiwicXVvdGVkYmxyaWdodCIsImd1aWxsZW1vdHJpZ2h0IiwiZWxsaXBzaXMiLCJwZXJ0aG91c2FuZCIsInF1ZXN0aW9uZG93biIsImdyYXZlIiwiYWN1dGUiLCJjaXJjdW1mbGV4IiwidGlsZGUiLCJtYWNyb24iLCJicmV2ZSIsImRvdGFjY2VudCIsImRpZXJlc2lzIiwicmluZyIsImNlZGlsbGEiLCJodW5nYXJ1bWxhdXQiLCJvZ29uZWsiLCJjYXJvbiIsImVtZGFzaCIsIkFFIiwib3JkZmVtaW5pbmUiLCJMc2xhc2giLCJPc2xhc2giLCJPRSIsIm9yZG1hc2N1bGluZSIsImFlIiwiZG90bGVzc2kiLCJsc2xhc2giLCJvc2xhc2giLCJvZSIsImdlcm1hbmRibHMiLCJvbmVzdXBlcmlvciIsImxvZ2ljYWxub3QiLCJtdSIsInRyYWRlbWFyayIsIkV0aCIsIm9uZWhhbGYiLCJwbHVzbWludXMiLCJUaG9ybiIsIm9uZXF1YXJ0ZXIiLCJkaXZpZGUiLCJicm9rZW5iYXIiLCJkZWdyZWUiLCJ0aG9ybiIsInRocmVlcXVhcnRlcnMiLCJ0d29zdXBlcmlvciIsInJlZ2lzdGVyZWQiLCJtaW51cyIsImV0aCIsIm11bHRpcGx5IiwidGhyZWVzdXBlcmlvciIsImNvcHlyaWdodCIsIkFhY3V0ZSIsIkFjaXJjdW1mbGV4IiwiQWRpZXJlc2lzIiwiQWdyYXZlIiwiQXJpbmciLCJBdGlsZGUiLCJDY2VkaWxsYSIsIkVhY3V0ZSIsIkVjaXJjdW1mbGV4IiwiRWRpZXJlc2lzIiwiRWdyYXZlIiwiSWFjdXRlIiwiSWNpcmN1bWZsZXgiLCJJZGllcmVzaXMiLCJJZ3JhdmUiLCJOdGlsZGUiLCJPYWN1dGUiLCJPY2lyY3VtZmxleCIsIk9kaWVyZXNpcyIsIk9ncmF2ZSIsIk90aWxkZSIsIlNjYXJvbiIsIlVhY3V0ZSIsIlVjaXJjdW1mbGV4IiwiVWRpZXJlc2lzIiwiVWdyYXZlIiwiWWFjdXRlIiwiWWRpZXJlc2lzIiwiWmNhcm9uIiwiYWFjdXRlIiwiYWNpcmN1bWZsZXgiLCJhZGllcmVzaXMiLCJhZ3JhdmUiLCJhcmluZyIsImF0aWxkZSIsImNjZWRpbGxhIiwiZWFjdXRlIiwiZWNpcmN1bWZsZXgiLCJlZGllcmVzaXMiLCJlZ3JhdmUiLCJpYWN1dGUiLCJpY2lyY3VtZmxleCIsImlkaWVyZXNpcyIsImlncmF2ZSIsIm50aWxkZSIsIm9hY3V0ZSIsIm9jaXJjdW1mbGV4Iiwib2RpZXJlc2lzIiwib2dyYXZlIiwib3RpbGRlIiwic2Nhcm9uIiwidWFjdXRlIiwidWNpcmN1bWZsZXgiLCJ1ZGllcmVzaXMiLCJ1Z3JhdmUiLCJ5YWN1dGUiLCJ5ZGllcmVzaXMiLCJ6Y2Fyb24iXSxOaT1bIi5ub3RkZWYiLCJzcGFjZSIsImV4Y2xhbXNtYWxsIiwiSHVuZ2FydW1sYXV0c21hbGwiLCJkb2xsYXJvbGRzdHlsZSIsImRvbGxhcnN1cGVyaW9yIiwiYW1wZXJzYW5kc21hbGwiLCJBY3V0ZXNtYWxsIiwicGFyZW5sZWZ0c3VwZXJpb3IiLCJwYXJlbnJpZ2h0c3VwZXJpb3IiLCJ0d29kb3RlbmxlYWRlciIsIm9uZWRvdGVubGVhZGVyIiwiY29tbWEiLCJoeXBoZW4iLCJwZXJpb2QiLCJmcmFjdGlvbiIsInplcm9vbGRzdHlsZSIsIm9uZW9sZHN0eWxlIiwidHdvb2xkc3R5bGUiLCJ0aHJlZW9sZHN0eWxlIiwiZm91cm9sZHN0eWxlIiwiZml2ZW9sZHN0eWxlIiwic2l4b2xkc3R5bGUiLCJzZXZlbm9sZHN0eWxlIiwiZWlnaHRvbGRzdHlsZSIsIm5pbmVvbGRzdHlsZSIsImNvbG9uIiwic2VtaWNvbG9uIiwiY29tbWFzdXBlcmlvciIsInRocmVlcXVhcnRlcnNlbWRhc2giLCJwZXJpb2RzdXBlcmlvciIsInF1ZXN0aW9uc21hbGwiLCJhc3VwZXJpb3IiLCJic3VwZXJpb3IiLCJjZW50c3VwZXJpb3IiLCJkc3VwZXJpb3IiLCJlc3VwZXJpb3IiLCJpc3VwZXJpb3IiLCJsc3VwZXJpb3IiLCJtc3VwZXJpb3IiLCJuc3VwZXJpb3IiLCJvc3VwZXJpb3IiLCJyc3VwZXJpb3IiLCJzc3VwZXJpb3IiLCJ0c3VwZXJpb3IiLCJmZiIsImZpIiwiZmwiLCJmZmkiLCJmZmwiLCJwYXJlbmxlZnRpbmZlcmlvciIsInBhcmVucmlnaHRpbmZlcmlvciIsIkNpcmN1bWZsZXhzbWFsbCIsImh5cGhlbnN1cGVyaW9yIiwiR3JhdmVzbWFsbCIsIkFzbWFsbCIsIkJzbWFsbCIsIkNzbWFsbCIsIkRzbWFsbCIsIkVzbWFsbCIsIkZzbWFsbCIsIkdzbWFsbCIsIkhzbWFsbCIsIklzbWFsbCIsIkpzbWFsbCIsIktzbWFsbCIsIkxzbWFsbCIsIk1zbWFsbCIsIk5zbWFsbCIsIk9zbWFsbCIsIlBzbWFsbCIsIlFzbWFsbCIsIlJzbWFsbCIsIlNzbWFsbCIsIlRzbWFsbCIsIlVzbWFsbCIsIlZzbWFsbCIsIldzbWFsbCIsIlhzbWFsbCIsIllzbWFsbCIsIlpzbWFsbCIsImNvbG9ubW9uZXRhcnkiLCJvbmVmaXR0ZWQiLCJydXBpYWgiLCJUaWxkZXNtYWxsIiwiZXhjbGFtZG93bnNtYWxsIiwiY2VudG9sZHN0eWxlIiwiTHNsYXNoc21hbGwiLCJTY2Fyb25zbWFsbCIsIlpjYXJvbnNtYWxsIiwiRGllcmVzaXNzbWFsbCIsIkJyZXZlc21hbGwiLCJDYXJvbnNtYWxsIiwiRG90YWNjZW50c21hbGwiLCJNYWNyb25zbWFsbCIsImZpZ3VyZWRhc2giLCJoeXBoZW5pbmZlcmlvciIsIk9nb25la3NtYWxsIiwiUmluZ3NtYWxsIiwiQ2VkaWxsYXNtYWxsIiwib25lcXVhcnRlciIsIm9uZWhhbGYiLCJ0aHJlZXF1YXJ0ZXJzIiwicXVlc3Rpb25kb3duc21hbGwiLCJvbmVlaWdodGgiLCJ0aHJlZWVpZ2h0aHMiLCJmaXZlZWlnaHRocyIsInNldmVuZWlnaHRocyIsIm9uZXRoaXJkIiwidHdvdGhpcmRzIiwiemVyb3N1cGVyaW9yIiwib25lc3VwZXJpb3IiLCJ0d29zdXBlcmlvciIsInRocmVlc3VwZXJpb3IiLCJmb3Vyc3VwZXJpb3IiLCJmaXZlc3VwZXJpb3IiLCJzaXhzdXBlcmlvciIsInNldmVuc3VwZXJpb3IiLCJlaWdodHN1cGVyaW9yIiwibmluZXN1cGVyaW9yIiwiemVyb2luZmVyaW9yIiwib25laW5mZXJpb3IiLCJ0d29pbmZlcmlvciIsInRocmVlaW5mZXJpb3IiLCJmb3VyaW5mZXJpb3IiLCJmaXZlaW5mZXJpb3IiLCJzaXhpbmZlcmlvciIsInNldmVuaW5mZXJpb3IiLCJlaWdodGluZmVyaW9yIiwibmluZWluZmVyaW9yIiwiY2VudGluZmVyaW9yIiwiZG9sbGFyaW5mZXJpb3IiLCJwZXJpb2RpbmZlcmlvciIsImNvbW1haW5mZXJpb3IiLCJBZ3JhdmVzbWFsbCIsIkFhY3V0ZXNtYWxsIiwiQWNpcmN1bWZsZXhzbWFsbCIsIkF0aWxkZXNtYWxsIiwiQWRpZXJlc2lzc21hbGwiLCJBcmluZ3NtYWxsIiwiQUVzbWFsbCIsIkNjZWRpbGxhc21hbGwiLCJFZ3JhdmVzbWFsbCIsIkVhY3V0ZXNtYWxsIiwiRWNpcmN1bWZsZXhzbWFsbCIsIkVkaWVyZXNpc3NtYWxsIiwiSWdyYXZlc21hbGwiLCJJYWN1dGVzbWFsbCIsIkljaXJjdW1mbGV4c21hbGwiLCJJZGllcmVzaXNzbWFsbCIsIkV0aHNtYWxsIiwiTnRpbGRlc21hbGwiLCJPZ3JhdmVzbWFsbCIsIk9hY3V0ZXNtYWxsIiwiT2NpcmN1bWZsZXhzbWFsbCIsIk90aWxkZXNtYWxsIiwiT2RpZXJlc2lzc21hbGwiLCJPRXNtYWxsIiwiT3NsYXNoc21hbGwiLCJVZ3JhdmVzbWFsbCIsIlVhY3V0ZXNtYWxsIiwiVWNpcmN1bWZsZXhzbWFsbCIsIlVkaWVyZXNpc3NtYWxsIiwiWWFjdXRlc21hbGwiLCJUaG9ybnNtYWxsIiwiWWRpZXJlc2lzc21hbGwiXSx4aT1bIi5ub3RkZWYiLCJzcGFjZSIsImRvbGxhcm9sZHN0eWxlIiwiZG9sbGFyc3VwZXJpb3IiLCJwYXJlbmxlZnRzdXBlcmlvciIsInBhcmVucmlnaHRzdXBlcmlvciIsInR3b2RvdGVubGVhZGVyIiwib25lZG90ZW5sZWFkZXIiLCJjb21tYSIsImh5cGhlbiIsInBlcmlvZCIsImZyYWN0aW9uIiwiemVyb29sZHN0eWxlIiwib25lb2xkc3R5bGUiLCJ0d29vbGRzdHlsZSIsInRocmVlb2xkc3R5bGUiLCJmb3Vyb2xkc3R5bGUiLCJmaXZlb2xkc3R5bGUiLCJzaXhvbGRzdHlsZSIsInNldmVub2xkc3R5bGUiLCJlaWdodG9sZHN0eWxlIiwibmluZW9sZHN0eWxlIiwiY29sb24iLCJzZW1pY29sb24iLCJjb21tYXN1cGVyaW9yIiwidGhyZWVxdWFydGVyc2VtZGFzaCIsInBlcmlvZHN1cGVyaW9yIiwiYXN1cGVyaW9yIiwiYnN1cGVyaW9yIiwiY2VudHN1cGVyaW9yIiwiZHN1cGVyaW9yIiwiZXN1cGVyaW9yIiwiaXN1cGVyaW9yIiwibHN1cGVyaW9yIiwibXN1cGVyaW9yIiwibnN1cGVyaW9yIiwib3N1cGVyaW9yIiwicnN1cGVyaW9yIiwic3N1cGVyaW9yIiwidHN1cGVyaW9yIiwiZmYiLCJmaSIsImZsIiwiZmZpIiwiZmZsIiwicGFyZW5sZWZ0aW5mZXJpb3IiLCJwYXJlbnJpZ2h0aW5mZXJpb3IiLCJoeXBoZW5zdXBlcmlvciIsImNvbG9ubW9uZXRhcnkiLCJvbmVmaXR0ZWQiLCJydXBpYWgiLCJjZW50b2xkc3R5bGUiLCJmaWd1cmVkYXNoIiwiaHlwaGVuaW5mZXJpb3IiLCJvbmVxdWFydGVyIiwib25laGFsZiIsInRocmVlcXVhcnRlcnMiLCJvbmVlaWdodGgiLCJ0aHJlZWVpZ2h0aHMiLCJmaXZlZWlnaHRocyIsInNldmVuZWlnaHRocyIsIm9uZXRoaXJkIiwidHdvdGhpcmRzIiwiemVyb3N1cGVyaW9yIiwib25lc3VwZXJpb3IiLCJ0d29zdXBlcmlvciIsInRocmVlc3VwZXJpb3IiLCJmb3Vyc3VwZXJpb3IiLCJmaXZlc3VwZXJpb3IiLCJzaXhzdXBlcmlvciIsInNldmVuc3VwZXJpb3IiLCJlaWdodHN1cGVyaW9yIiwibmluZXN1cGVyaW9yIiwiemVyb2luZmVyaW9yIiwib25laW5mZXJpb3IiLCJ0d29pbmZlcmlvciIsInRocmVlaW5mZXJpb3IiLCJmb3VyaW5mZXJpb3IiLCJmaXZlaW5mZXJpb3IiLCJzaXhpbmZlcmlvciIsInNldmVuaW5mZXJpb3IiLCJlaWdodGluZmVyaW9yIiwibmluZWluZmVyaW9yIiwiY2VudGluZmVyaW9yIiwiZG9sbGFyaW5mZXJpb3IiLCJwZXJpb2RpbmZlcmlvciIsImNvbW1haW5mZXJpb3IiXSxVaT1bIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsInNwYWNlIiwiZXhjbGFtc21hbGwiLCJIdW5nYXJ1bWxhdXRzbWFsbCIsIiIsImRvbGxhcm9sZHN0eWxlIiwiZG9sbGFyc3VwZXJpb3IiLCJhbXBlcnNhbmRzbWFsbCIsIkFjdXRlc21hbGwiLCJwYXJlbmxlZnRzdXBlcmlvciIsInBhcmVucmlnaHRzdXBlcmlvciIsInR3b2RvdGVubGVhZGVyIiwib25lZG90ZW5sZWFkZXIiLCJjb21tYSIsImh5cGhlbiIsInBlcmlvZCIsImZyYWN0aW9uIiwiemVyb29sZHN0eWxlIiwib25lb2xkc3R5bGUiLCJ0d29vbGRzdHlsZSIsInRocmVlb2xkc3R5bGUiLCJmb3Vyb2xkc3R5bGUiLCJmaXZlb2xkc3R5bGUiLCJzaXhvbGRzdHlsZSIsInNldmVub2xkc3R5bGUiLCJlaWdodG9sZHN0eWxlIiwibmluZW9sZHN0eWxlIiwiY29sb24iLCJzZW1pY29sb24iLCJjb21tYXN1cGVyaW9yIiwidGhyZWVxdWFydGVyc2VtZGFzaCIsInBlcmlvZHN1cGVyaW9yIiwicXVlc3Rpb25zbWFsbCIsIiIsImFzdXBlcmlvciIsImJzdXBlcmlvciIsImNlbnRzdXBlcmlvciIsImRzdXBlcmlvciIsImVzdXBlcmlvciIsIiIsIiIsIiIsImlzdXBlcmlvciIsIiIsIiIsImxzdXBlcmlvciIsIm1zdXBlcmlvciIsIm5zdXBlcmlvciIsIm9zdXBlcmlvciIsIiIsIiIsInJzdXBlcmlvciIsInNzdXBlcmlvciIsInRzdXBlcmlvciIsIiIsImZmIiwiZmkiLCJmbCIsImZmaSIsImZmbCIsInBhcmVubGVmdGluZmVyaW9yIiwiIiwicGFyZW5yaWdodGluZmVyaW9yIiwiQ2lyY3VtZmxleHNtYWxsIiwiaHlwaGVuc3VwZXJpb3IiLCJHcmF2ZXNtYWxsIiwiQXNtYWxsIiwiQnNtYWxsIiwiQ3NtYWxsIiwiRHNtYWxsIiwiRXNtYWxsIiwiRnNtYWxsIiwiR3NtYWxsIiwiSHNtYWxsIiwiSXNtYWxsIiwiSnNtYWxsIiwiS3NtYWxsIiwiTHNtYWxsIiwiTXNtYWxsIiwiTnNtYWxsIiwiT3NtYWxsIiwiUHNtYWxsIiwiUXNtYWxsIiwiUnNtYWxsIiwiU3NtYWxsIiwiVHNtYWxsIiwiVXNtYWxsIiwiVnNtYWxsIiwiV3NtYWxsIiwiWHNtYWxsIiwiWXNtYWxsIiwiWnNtYWxsIiwiY29sb25tb25ldGFyeSIsIm9uZWZpdHRlZCIsInJ1cGlhaCIsIlRpbGRlc21hbGwiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJleGNsYW1kb3duc21hbGwiLCJjZW50b2xkc3R5bGUiLCJMc2xhc2hzbWFsbCIsIiIsIiIsIlNjYXJvbnNtYWxsIiwiWmNhcm9uc21hbGwiLCJEaWVyZXNpc3NtYWxsIiwiQnJldmVzbWFsbCIsIkNhcm9uc21hbGwiLCIiLCJEb3RhY2NlbnRzbWFsbCIsIiIsIiIsIk1hY3JvbnNtYWxsIiwiIiwiIiwiZmlndXJlZGFzaCIsImh5cGhlbmluZmVyaW9yIiwiIiwiIiwiT2dvbmVrc21hbGwiLCJSaW5nc21hbGwiLCJDZWRpbGxhc21hbGwiLCIiLCIiLCIiLCJvbmVxdWFydGVyIiwib25laGFsZiIsInRocmVlcXVhcnRlcnMiLCJxdWVzdGlvbmRvd25zbWFsbCIsIm9uZWVpZ2h0aCIsInRocmVlZWlnaHRocyIsImZpdmVlaWdodGhzIiwic2V2ZW5laWdodGhzIiwib25ldGhpcmQiLCJ0d290aGlyZHMiLCIiLCIiLCJ6ZXJvc3VwZXJpb3IiLCJvbmVzdXBlcmlvciIsInR3b3N1cGVyaW9yIiwidGhyZWVzdXBlcmlvciIsImZvdXJzdXBlcmlvciIsImZpdmVzdXBlcmlvciIsInNpeHN1cGVyaW9yIiwic2V2ZW5zdXBlcmlvciIsImVpZ2h0c3VwZXJpb3IiLCJuaW5lc3VwZXJpb3IiLCJ6ZXJvaW5mZXJpb3IiLCJvbmVpbmZlcmlvciIsInR3b2luZmVyaW9yIiwidGhyZWVpbmZlcmlvciIsImZvdXJpbmZlcmlvciIsImZpdmVpbmZlcmlvciIsInNpeGluZmVyaW9yIiwic2V2ZW5pbmZlcmlvciIsImVpZ2h0aW5mZXJpb3IiLCJuaW5laW5mZXJpb3IiLCJjZW50aW5mZXJpb3IiLCJkb2xsYXJpbmZlcmlvciIsInBlcmlvZGluZmVyaW9yIiwiY29tbWFpbmZlcmlvciIsIkFncmF2ZXNtYWxsIiwiQWFjdXRlc21hbGwiLCJBY2lyY3VtZmxleHNtYWxsIiwiQXRpbGRlc21hbGwiLCJBZGllcmVzaXNzbWFsbCIsIkFyaW5nc21hbGwiLCJBRXNtYWxsIiwiQ2NlZGlsbGFzbWFsbCIsIkVncmF2ZXNtYWxsIiwiRWFjdXRlc21hbGwiLCJFY2lyY3VtZmxleHNtYWxsIiwiRWRpZXJlc2lzc21hbGwiLCJJZ3JhdmVzbWFsbCIsIklhY3V0ZXNtYWxsIiwiSWNpcmN1bWZsZXhzbWFsbCIsIklkaWVyZXNpc3NtYWxsIiwiRXRoc21hbGwiLCJOdGlsZGVzbWFsbCIsIk9ncmF2ZXNtYWxsIiwiT2FjdXRlc21hbGwiLCJPY2lyY3VtZmxleHNtYWxsIiwiT3RpbGRlc21hbGwiLCJPZGllcmVzaXNzbWFsbCIsIk9Fc21hbGwiLCJPc2xhc2hzbWFsbCIsIlVncmF2ZXNtYWxsIiwiVWFjdXRlc21hbGwiLCJVY2lyY3VtZmxleHNtYWxsIiwiVWRpZXJlc2lzc21hbGwiLCJZYWN1dGVzbWFsbCIsIlRob3Juc21hbGwiLCJZZGllcmVzaXNzbWFsbCJdLE1pPVsiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwic3BhY2UiLCJleGNsYW1zbWFsbCIsIkh1bmdhcnVtbGF1dHNtYWxsIiwiY2VudG9sZHN0eWxlIiwiZG9sbGFyb2xkc3R5bGUiLCJkb2xsYXJzdXBlcmlvciIsImFtcGVyc2FuZHNtYWxsIiwiQWN1dGVzbWFsbCIsInBhcmVubGVmdHN1cGVyaW9yIiwicGFyZW5yaWdodHN1cGVyaW9yIiwidHdvZG90ZW5sZWFkZXIiLCJvbmVkb3RlbmxlYWRlciIsImNvbW1hIiwiaHlwaGVuIiwicGVyaW9kIiwiZnJhY3Rpb24iLCJ6ZXJvb2xkc3R5bGUiLCJvbmVvbGRzdHlsZSIsInR3b29sZHN0eWxlIiwidGhyZWVvbGRzdHlsZSIsImZvdXJvbGRzdHlsZSIsImZpdmVvbGRzdHlsZSIsInNpeG9sZHN0eWxlIiwic2V2ZW5vbGRzdHlsZSIsImVpZ2h0b2xkc3R5bGUiLCJuaW5lb2xkc3R5bGUiLCJjb2xvbiIsInNlbWljb2xvbiIsIiIsInRocmVlcXVhcnRlcnNlbWRhc2giLCIiLCJxdWVzdGlvbnNtYWxsIiwiIiwiIiwiIiwiIiwiRXRoc21hbGwiLCIiLCIiLCJvbmVxdWFydGVyIiwib25laGFsZiIsInRocmVlcXVhcnRlcnMiLCJvbmVlaWdodGgiLCJ0aHJlZWVpZ2h0aHMiLCJmaXZlZWlnaHRocyIsInNldmVuZWlnaHRocyIsIm9uZXRoaXJkIiwidHdvdGhpcmRzIiwiIiwiIiwiIiwiIiwiIiwiIiwiZmYiLCJmaSIsImZsIiwiZmZpIiwiZmZsIiwicGFyZW5sZWZ0aW5mZXJpb3IiLCIiLCJwYXJlbnJpZ2h0aW5mZXJpb3IiLCJDaXJjdW1mbGV4c21hbGwiLCJoeXBoZW5pbmZlcmlvciIsIkdyYXZlc21hbGwiLCJBc21hbGwiLCJCc21hbGwiLCJDc21hbGwiLCJEc21hbGwiLCJFc21hbGwiLCJGc21hbGwiLCJHc21hbGwiLCJIc21hbGwiLCJJc21hbGwiLCJKc21hbGwiLCJLc21hbGwiLCJMc21hbGwiLCJNc21hbGwiLCJOc21hbGwiLCJPc21hbGwiLCJQc21hbGwiLCJRc21hbGwiLCJSc21hbGwiLCJTc21hbGwiLCJUc21hbGwiLCJVc21hbGwiLCJWc21hbGwiLCJXc21hbGwiLCJYc21hbGwiLCJZc21hbGwiLCJac21hbGwiLCJjb2xvbm1vbmV0YXJ5Iiwib25lZml0dGVkIiwicnVwaWFoIiwiVGlsZGVzbWFsbCIsIiIsIiIsImFzdXBlcmlvciIsImNlbnRzdXBlcmlvciIsIiIsIiIsIiIsIiIsIkFhY3V0ZXNtYWxsIiwiQWdyYXZlc21hbGwiLCJBY2lyY3VtZmxleHNtYWxsIiwiQWRpZXJlc2lzc21hbGwiLCJBdGlsZGVzbWFsbCIsIkFyaW5nc21hbGwiLCJDY2VkaWxsYXNtYWxsIiwiRWFjdXRlc21hbGwiLCJFZ3JhdmVzbWFsbCIsIkVjaXJjdW1mbGV4c21hbGwiLCJFZGllcmVzaXNzbWFsbCIsIklhY3V0ZXNtYWxsIiwiSWdyYXZlc21hbGwiLCJJY2lyY3VtZmxleHNtYWxsIiwiSWRpZXJlc2lzc21hbGwiLCJOdGlsZGVzbWFsbCIsIk9hY3V0ZXNtYWxsIiwiT2dyYXZlc21hbGwiLCJPY2lyY3VtZmxleHNtYWxsIiwiT2RpZXJlc2lzc21hbGwiLCJPdGlsZGVzbWFsbCIsIlVhY3V0ZXNtYWxsIiwiVWdyYXZlc21hbGwiLCJVY2lyY3VtZmxleHNtYWxsIiwiVWRpZXJlc2lzc21hbGwiLCIiLCJlaWdodHN1cGVyaW9yIiwiZm91cmluZmVyaW9yIiwidGhyZWVpbmZlcmlvciIsInNpeGluZmVyaW9yIiwiZWlnaHRpbmZlcmlvciIsInNldmVuaW5mZXJpb3IiLCJTY2Fyb25zbWFsbCIsIiIsImNlbnRpbmZlcmlvciIsInR3b2luZmVyaW9yIiwiIiwiRGllcmVzaXNzbWFsbCIsIiIsIkNhcm9uc21hbGwiLCJvc3VwZXJpb3IiLCJmaXZlaW5mZXJpb3IiLCIiLCJjb21tYWluZmVyaW9yIiwicGVyaW9kaW5mZXJpb3IiLCJZYWN1dGVzbWFsbCIsIiIsImRvbGxhcmluZmVyaW9yIiwiIiwiIiwiVGhvcm5zbWFsbCIsIiIsIm5pbmVpbmZlcmlvciIsInplcm9pbmZlcmlvciIsIlpjYXJvbnNtYWxsIiwiQUVzbWFsbCIsIk9zbGFzaHNtYWxsIiwicXVlc3Rpb25kb3duc21hbGwiLCJvbmVpbmZlcmlvciIsIkxzbGFzaHNtYWxsIiwiIiwiIiwiIiwiIiwiIiwiIiwiQ2VkaWxsYXNtYWxsIiwiIiwiIiwiIiwiIiwiIiwiT0VzbWFsbCIsImZpZ3VyZWRhc2giLCJoeXBoZW5zdXBlcmlvciIsIiIsIiIsIiIsIiIsImV4Y2xhbWRvd25zbWFsbCIsIiIsIllkaWVyZXNpc3NtYWxsIiwiIiwib25lc3VwZXJpb3IiLCJ0d29zdXBlcmlvciIsInRocmVlc3VwZXJpb3IiLCJmb3Vyc3VwZXJpb3IiLCJmaXZlc3VwZXJpb3IiLCJzaXhzdXBlcmlvciIsInNldmVuc3VwZXJpb3IiLCJuaW5lc3VwZXJpb3IiLCJ6ZXJvc3VwZXJpb3IiLCIiLCJlc3VwZXJpb3IiLCJyc3VwZXJpb3IiLCJ0c3VwZXJpb3IiLCIiLCIiLCJpc3VwZXJpb3IiLCJzc3VwZXJpb3IiLCJkc3VwZXJpb3IiLCIiLCIiLCIiLCIiLCIiLCJsc3VwZXJpb3IiLCJPZ29uZWtzbWFsbCIsIkJyZXZlc21hbGwiLCJNYWNyb25zbWFsbCIsImJzdXBlcmlvciIsIm5zdXBlcmlvciIsIm1zdXBlcmlvciIsImNvbW1hc3VwZXJpb3IiLCJwZXJpb2RzdXBlcmlvciIsIkRvdGFjY2VudHNtYWxsIiwiUmluZ3NtYWxsIiwiIiwiIiwiIiwiIl0sTGk9WyIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJzcGFjZSIsImV4Y2xhbSIsInF1b3RlZGJsIiwibnVtYmVyc2lnbiIsImRvbGxhciIsInBlcmNlbnQiLCJhbXBlcnNhbmQiLCJxdW90ZXNpbmdsZSIsInBhcmVubGVmdCIsInBhcmVucmlnaHQiLCJhc3RlcmlzayIsInBsdXMiLCJjb21tYSIsImh5cGhlbiIsInBlcmlvZCIsInNsYXNoIiwiemVybyIsIm9uZSIsInR3byIsInRocmVlIiwiZm91ciIsImZpdmUiLCJzaXgiLCJzZXZlbiIsImVpZ2h0IiwibmluZSIsImNvbG9uIiwic2VtaWNvbG9uIiwibGVzcyIsImVxdWFsIiwiZ3JlYXRlciIsInF1ZXN0aW9uIiwiYXQiLCJBIiwiQiIsIkMiLCJEIiwiRSIsIkYiLCJHIiwiSCIsIkkiLCJKIiwiSyIsIkwiLCJNIiwiTiIsIk8iLCJQIiwiUSIsIlIiLCJTIiwiVCIsIlUiLCJWIiwiVyIsIlgiLCJZIiwiWiIsImJyYWNrZXRsZWZ0IiwiYmFja3NsYXNoIiwiYnJhY2tldHJpZ2h0IiwiYXNjaWljaXJjdW0iLCJ1bmRlcnNjb3JlIiwiZ3JhdmUiLCJhIiwiYiIsImMiLCJkIiwiZSIsImYiLCJnIiwiaCIsImkiLCJqIiwiayIsImwiLCJtIiwibiIsIm8iLCJwIiwicSIsInIiLCJzIiwidCIsInUiLCJ2IiwidyIsIngiLCJ5IiwieiIsImJyYWNlbGVmdCIsImJhciIsImJyYWNlcmlnaHQiLCJhc2NpaXRpbGRlIiwiIiwiQWRpZXJlc2lzIiwiQXJpbmciLCJDY2VkaWxsYSIsIkVhY3V0ZSIsIk50aWxkZSIsIk9kaWVyZXNpcyIsIlVkaWVyZXNpcyIsImFhY3V0ZSIsImFncmF2ZSIsImFjaXJjdW1mbGV4IiwiYWRpZXJlc2lzIiwiYXRpbGRlIiwiYXJpbmciLCJjY2VkaWxsYSIsImVhY3V0ZSIsImVncmF2ZSIsImVjaXJjdW1mbGV4IiwiZWRpZXJlc2lzIiwiaWFjdXRlIiwiaWdyYXZlIiwiaWNpcmN1bWZsZXgiLCJpZGllcmVzaXMiLCJudGlsZGUiLCJvYWN1dGUiLCJvZ3JhdmUiLCJvY2lyY3VtZmxleCIsIm9kaWVyZXNpcyIsIm90aWxkZSIsInVhY3V0ZSIsInVncmF2ZSIsInVjaXJjdW1mbGV4IiwidWRpZXJlc2lzIiwiZGFnZ2VyIiwiZGVncmVlIiwiY2VudCIsInN0ZXJsaW5nIiwic2VjdGlvbiIsImJ1bGxldCIsInBhcmFncmFwaCIsImdlcm1hbmRibHMiLCJyZWdpc3RlcmVkIiwiY29weXJpZ2h0IiwidHJhZGVtYXJrIiwiYWN1dGUiLCJkaWVyZXNpcyIsIm5vdGVxdWFsIiwiQUUiLCJPc2xhc2giLCJpbmZpbml0eSIsInBsdXNtaW51cyIsImxlc3NlcXVhbCIsImdyZWF0ZXJlcXVhbCIsInllbiIsIm11IiwicGFydGlhbGRpZmYiLCJzdW1tYXRpb24iLCJwcm9kdWN0IiwicGkiLCJpbnRlZ3JhbCIsIm9yZGZlbWluaW5lIiwib3JkbWFzY3VsaW5lIiwiT21lZ2EiLCJhZSIsIm9zbGFzaCIsInF1ZXN0aW9uZG93biIsImV4Y2xhbWRvd24iLCJsb2dpY2Fsbm90IiwicmFkaWNhbCIsImZsb3JpbiIsImFwcHJveGVxdWFsIiwiRGVsdGEiLCJndWlsbGVtb3RsZWZ0IiwiZ3VpbGxlbW90cmlnaHQiLCJlbGxpcHNpcyIsInNwYWNlIiwiQWdyYXZlIiwiQXRpbGRlIiwiT3RpbGRlIiwiT0UiLCJvZSIsImVuZGFzaCIsImVtZGFzaCIsInF1b3RlZGJsbGVmdCIsInF1b3RlZGJscmlnaHQiLCJxdW90ZWxlZnQiLCJxdW90ZXJpZ2h0IiwiZGl2aWRlIiwibG96ZW5nZSIsInlkaWVyZXNpcyIsIllkaWVyZXNpcyIsImZyYWN0aW9uIiwiY3VycmVuY3kiLCJndWlsc2luZ2xsZWZ0IiwiZ3VpbHNpbmdscmlnaHQiLCJmaSIsImZsIiwiZGFnZ2VyZGJsIiwicGVyaW9kY2VudGVyZWQiLCJxdW90ZXNpbmdsYmFzZSIsInF1b3RlZGJsYmFzZSIsInBlcnRob3VzYW5kIiwiQWNpcmN1bWZsZXgiLCJFY2lyY3VtZmxleCIsIkFhY3V0ZSIsIkVkaWVyZXNpcyIsIkVncmF2ZSIsIklhY3V0ZSIsIkljaXJjdW1mbGV4IiwiSWRpZXJlc2lzIiwiSWdyYXZlIiwiT2FjdXRlIiwiT2NpcmN1bWZsZXgiLCJhcHBsZSIsIk9ncmF2ZSIsIlVhY3V0ZSIsIlVjaXJjdW1mbGV4IiwiVWdyYXZlIiwiZG90bGVzc2kiLCJjaXJjdW1mbGV4IiwidGlsZGUiLCJtYWNyb24iLCJicmV2ZSIsImRvdGFjY2VudCIsInJpbmciLCJjZWRpbGxhIiwiaHVuZ2FydW1sYXV0Iiwib2dvbmVrIiwiY2Fyb24iXSxKaT1bIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsInNwYWNlIiwiZXhjbGFtIiwicXVvdGVkYmwiLCJudW1iZXJzaWduIiwiZG9sbGFyIiwicGVyY2VudCIsImFtcGVyc2FuZCIsInF1b3RlcmlnaHQiLCJwYXJlbmxlZnQiLCJwYXJlbnJpZ2h0IiwiYXN0ZXJpc2siLCJwbHVzIiwiY29tbWEiLCJoeXBoZW4iLCJwZXJpb2QiLCJzbGFzaCIsInplcm8iLCJvbmUiLCJ0d28iLCJ0aHJlZSIsImZvdXIiLCJmaXZlIiwic2l4Iiwic2V2ZW4iLCJlaWdodCIsIm5pbmUiLCJjb2xvbiIsInNlbWljb2xvbiIsImxlc3MiLCJlcXVhbCIsImdyZWF0ZXIiLCJxdWVzdGlvbiIsImF0IiwiQSIsIkIiLCJDIiwiRCIsIkUiLCJGIiwiRyIsIkgiLCJJIiwiSiIsIksiLCJMIiwiTSIsIk4iLCJPIiwiUCIsIlEiLCJSIiwiUyIsIlQiLCJVIiwiViIsIlciLCJYIiwiWSIsIloiLCJicmFja2V0bGVmdCIsImJhY2tzbGFzaCIsImJyYWNrZXRyaWdodCIsImFzY2lpY2lyY3VtIiwidW5kZXJzY29yZSIsInF1b3RlbGVmdCIsImEiLCJiIiwiYyIsImQiLCJlIiwiZiIsImciLCJoIiwiaSIsImoiLCJrIiwibCIsIm0iLCJuIiwibyIsInAiLCJxIiwiciIsInMiLCJ0IiwidSIsInYiLCJ3IiwieCIsInkiLCJ6IiwiYnJhY2VsZWZ0IiwiYmFyIiwiYnJhY2VyaWdodCIsImFzY2lpdGlsZGUiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJleGNsYW1kb3duIiwiY2VudCIsInN0ZXJsaW5nIiwiZnJhY3Rpb24iLCJ5ZW4iLCJmbG9yaW4iLCJzZWN0aW9uIiwiY3VycmVuY3kiLCJxdW90ZXNpbmdsZSIsInF1b3RlZGJsbGVmdCIsImd1aWxsZW1vdGxlZnQiLCJndWlsc2luZ2xsZWZ0IiwiZ3VpbHNpbmdscmlnaHQiLCJmaSIsImZsIiwiIiwiZW5kYXNoIiwiZGFnZ2VyIiwiZGFnZ2VyZGJsIiwicGVyaW9kY2VudGVyZWQiLCIiLCJwYXJhZ3JhcGgiLCJidWxsZXQiLCJxdW90ZXNpbmdsYmFzZSIsInF1b3RlZGJsYmFzZSIsInF1b3RlZGJscmlnaHQiLCJndWlsbGVtb3RyaWdodCIsImVsbGlwc2lzIiwicGVydGhvdXNhbmQiLCIiLCJxdWVzdGlvbmRvd24iLCIiLCJncmF2ZSIsImFjdXRlIiwiY2lyY3VtZmxleCIsInRpbGRlIiwibWFjcm9uIiwiYnJldmUiLCJkb3RhY2NlbnQiLCJkaWVyZXNpcyIsIiIsInJpbmciLCJjZWRpbGxhIiwiIiwiaHVuZ2FydW1sYXV0Iiwib2dvbmVrIiwiY2Fyb24iLCJlbWRhc2giLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJBRSIsIiIsIm9yZGZlbWluaW5lIiwiIiwiIiwiIiwiIiwiTHNsYXNoIiwiT3NsYXNoIiwiT0UiLCJvcmRtYXNjdWxpbmUiLCIiLCIiLCIiLCIiLCIiLCJhZSIsIiIsIiIsIiIsImRvdGxlc3NpIiwiIiwiIiwibHNsYXNoIiwib3NsYXNoIiwib2UiLCJnZXJtYW5kYmxzIiwiIiwiIiwiIiwiIl0sSGk9WyIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJzcGFjZSIsImV4Y2xhbSIsInF1b3RlZGJsIiwibnVtYmVyc2lnbiIsImRvbGxhciIsInBlcmNlbnQiLCJhbXBlcnNhbmQiLCJxdW90ZXNpbmdsZSIsInBhcmVubGVmdCIsInBhcmVucmlnaHQiLCJhc3RlcmlzayIsInBsdXMiLCJjb21tYSIsImh5cGhlbiIsInBlcmlvZCIsInNsYXNoIiwiemVybyIsIm9uZSIsInR3byIsInRocmVlIiwiZm91ciIsImZpdmUiLCJzaXgiLCJzZXZlbiIsImVpZ2h0IiwibmluZSIsImNvbG9uIiwic2VtaWNvbG9uIiwibGVzcyIsImVxdWFsIiwiZ3JlYXRlciIsInF1ZXN0aW9uIiwiYXQiLCJBIiwiQiIsIkMiLCJEIiwiRSIsIkYiLCJHIiwiSCIsIkkiLCJKIiwiSyIsIkwiLCJNIiwiTiIsIk8iLCJQIiwiUSIsIlIiLCJTIiwiVCIsIlUiLCJWIiwiVyIsIlgiLCJZIiwiWiIsImJyYWNrZXRsZWZ0IiwiYmFja3NsYXNoIiwiYnJhY2tldHJpZ2h0IiwiYXNjaWljaXJjdW0iLCJ1bmRlcnNjb3JlIiwiZ3JhdmUiLCJhIiwiYiIsImMiLCJkIiwiZSIsImYiLCJnIiwiaCIsImkiLCJqIiwiayIsImwiLCJtIiwibiIsIm8iLCJwIiwicSIsInIiLCJzIiwidCIsInUiLCJ2IiwidyIsIngiLCJ5IiwieiIsImJyYWNlbGVmdCIsImJhciIsImJyYWNlcmlnaHQiLCJhc2NpaXRpbGRlIiwiYnVsbGV0IiwiRXVybyIsImJ1bGxldCIsInF1b3Rlc2luZ2xiYXNlIiwiZmxvcmluIiwicXVvdGVkYmxiYXNlIiwiZWxsaXBzaXMiLCJkYWdnZXIiLCJkYWdnZXJkYmwiLCJjaXJjdW1mbGV4IiwicGVydGhvdXNhbmQiLCJTY2Fyb24iLCJndWlsc2luZ2xsZWZ0IiwiT0UiLCJidWxsZXQiLCJaY2Fyb24iLCJidWxsZXQiLCJidWxsZXQiLCJxdW90ZWxlZnQiLCJxdW90ZXJpZ2h0IiwicXVvdGVkYmxsZWZ0IiwicXVvdGVkYmxyaWdodCIsImJ1bGxldCIsImVuZGFzaCIsImVtZGFzaCIsInRpbGRlIiwidHJhZGVtYXJrIiwic2Nhcm9uIiwiZ3VpbHNpbmdscmlnaHQiLCJvZSIsImJ1bGxldCIsInpjYXJvbiIsIllkaWVyZXNpcyIsInNwYWNlIiwiZXhjbGFtZG93biIsImNlbnQiLCJzdGVybGluZyIsImN1cnJlbmN5IiwieWVuIiwiYnJva2VuYmFyIiwic2VjdGlvbiIsImRpZXJlc2lzIiwiY29weXJpZ2h0Iiwib3JkZmVtaW5pbmUiLCJndWlsbGVtb3RsZWZ0IiwibG9naWNhbG5vdCIsImh5cGhlbiIsInJlZ2lzdGVyZWQiLCJtYWNyb24iLCJkZWdyZWUiLCJwbHVzbWludXMiLCJ0d29zdXBlcmlvciIsInRocmVlc3VwZXJpb3IiLCJhY3V0ZSIsIm11IiwicGFyYWdyYXBoIiwicGVyaW9kY2VudGVyZWQiLCJjZWRpbGxhIiwib25lc3VwZXJpb3IiLCJvcmRtYXNjdWxpbmUiLCJndWlsbGVtb3RyaWdodCIsIm9uZXF1YXJ0ZXIiLCJvbmVoYWxmIiwidGhyZWVxdWFydGVycyIsInF1ZXN0aW9uZG93biIsIkFncmF2ZSIsIkFhY3V0ZSIsIkFjaXJjdW1mbGV4IiwiQXRpbGRlIiwiQWRpZXJlc2lzIiwiQXJpbmciLCJBRSIsIkNjZWRpbGxhIiwiRWdyYXZlIiwiRWFjdXRlIiwiRWNpcmN1bWZsZXgiLCJFZGllcmVzaXMiLCJJZ3JhdmUiLCJJYWN1dGUiLCJJY2lyY3VtZmxleCIsIklkaWVyZXNpcyIsIkV0aCIsIk50aWxkZSIsIk9ncmF2ZSIsIk9hY3V0ZSIsIk9jaXJjdW1mbGV4IiwiT3RpbGRlIiwiT2RpZXJlc2lzIiwibXVsdGlwbHkiLCJPc2xhc2giLCJVZ3JhdmUiLCJVYWN1dGUiLCJVY2lyY3VtZmxleCIsIlVkaWVyZXNpcyIsIllhY3V0ZSIsIlRob3JuIiwiZ2VybWFuZGJscyIsImFncmF2ZSIsImFhY3V0ZSIsImFjaXJjdW1mbGV4IiwiYXRpbGRlIiwiYWRpZXJlc2lzIiwiYXJpbmciLCJhZSIsImNjZWRpbGxhIiwiZWdyYXZlIiwiZWFjdXRlIiwiZWNpcmN1bWZsZXgiLCJlZGllcmVzaXMiLCJpZ3JhdmUiLCJpYWN1dGUiLCJpY2lyY3VtZmxleCIsImlkaWVyZXNpcyIsImV0aCIsIm50aWxkZSIsIm9ncmF2ZSIsIm9hY3V0ZSIsIm9jaXJjdW1mbGV4Iiwib3RpbGRlIiwib2RpZXJlc2lzIiwiZGl2aWRlIiwib3NsYXNoIiwidWdyYXZlIiwidWFjdXRlIiwidWNpcmN1bWZsZXgiLCJ1ZGllcmVzaXMiLCJ5YWN1dGUiLCJ0aG9ybiIsInlkaWVyZXNpcyJdLFlpPVsiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwic3BhY2UiLCJleGNsYW0iLCJ1bml2ZXJzYWwiLCJudW1iZXJzaWduIiwiZXhpc3RlbnRpYWwiLCJwZXJjZW50IiwiYW1wZXJzYW5kIiwic3VjaHRoYXQiLCJwYXJlbmxlZnQiLCJwYXJlbnJpZ2h0IiwiYXN0ZXJpc2ttYXRoIiwicGx1cyIsImNvbW1hIiwibWludXMiLCJwZXJpb2QiLCJzbGFzaCIsInplcm8iLCJvbmUiLCJ0d28iLCJ0aHJlZSIsImZvdXIiLCJmaXZlIiwic2l4Iiwic2V2ZW4iLCJlaWdodCIsIm5pbmUiLCJjb2xvbiIsInNlbWljb2xvbiIsImxlc3MiLCJlcXVhbCIsImdyZWF0ZXIiLCJxdWVzdGlvbiIsImNvbmdydWVudCIsIkFscGhhIiwiQmV0YSIsIkNoaSIsIkRlbHRhIiwiRXBzaWxvbiIsIlBoaSIsIkdhbW1hIiwiRXRhIiwiSW90YSIsInRoZXRhMSIsIkthcHBhIiwiTGFtYmRhIiwiTXUiLCJOdSIsIk9taWNyb24iLCJQaSIsIlRoZXRhIiwiUmhvIiwiU2lnbWEiLCJUYXUiLCJVcHNpbG9uIiwic2lnbWExIiwiT21lZ2EiLCJYaSIsIlBzaSIsIlpldGEiLCJicmFja2V0bGVmdCIsInRoZXJlZm9yZSIsImJyYWNrZXRyaWdodCIsInBlcnBlbmRpY3VsYXIiLCJ1bmRlcnNjb3JlIiwicmFkaWNhbGV4IiwiYWxwaGEiLCJiZXRhIiwiY2hpIiwiZGVsdGEiLCJlcHNpbG9uIiwicGhpIiwiZ2FtbWEiLCJldGEiLCJpb3RhIiwicGhpMSIsImthcHBhIiwibGFtYmRhIiwibXUiLCJudSIsIm9taWNyb24iLCJwaSIsInRoZXRhIiwicmhvIiwic2lnbWEiLCJ0YXUiLCJ1cHNpbG9uIiwib21lZ2ExIiwib21lZ2EiLCJ4aSIsInBzaSIsInpldGEiLCJicmFjZWxlZnQiLCJiYXIiLCJicmFjZXJpZ2h0Iiwic2ltaWxhciIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIkV1cm8iLCJVcHNpbG9uMSIsIm1pbnV0ZSIsImxlc3NlcXVhbCIsImZyYWN0aW9uIiwiaW5maW5pdHkiLCJmbG9yaW4iLCJjbHViIiwiZGlhbW9uZCIsImhlYXJ0Iiwic3BhZGUiLCJhcnJvd2JvdGgiLCJhcnJvd2xlZnQiLCJhcnJvd3VwIiwiYXJyb3dyaWdodCIsImFycm93ZG93biIsImRlZ3JlZSIsInBsdXNtaW51cyIsInNlY29uZCIsImdyZWF0ZXJlcXVhbCIsIm11bHRpcGx5IiwicHJvcG9ydGlvbmFsIiwicGFydGlhbGRpZmYiLCJidWxsZXQiLCJkaXZpZGUiLCJub3RlcXVhbCIsImVxdWl2YWxlbmNlIiwiYXBwcm94ZXF1YWwiLCJlbGxpcHNpcyIsImFycm93dmVydGV4IiwiYXJyb3dob3JpemV4IiwiY2FycmlhZ2VyZXR1cm4iLCJhbGVwaCIsIklmcmFrdHVyIiwiUmZyYWt0dXIiLCJ3ZWllcnN0cmFzcyIsImNpcmNsZW11bHRpcGx5IiwiY2lyY2xlcGx1cyIsImVtcHR5c2V0IiwiaW50ZXJzZWN0aW9uIiwidW5pb24iLCJwcm9wZXJzdXBlcnNldCIsInJlZmxleHN1cGVyc2V0Iiwibm90c3Vic2V0IiwicHJvcGVyc3Vic2V0IiwicmVmbGV4c3Vic2V0IiwiZWxlbWVudCIsIm5vdGVsZW1lbnQiLCJhbmdsZSIsImdyYWRpZW50IiwicmVnaXN0ZXJzZXJpZiIsImNvcHlyaWdodHNlcmlmIiwidHJhZGVtYXJrc2VyaWYiLCJwcm9kdWN0IiwicmFkaWNhbCIsImRvdG1hdGgiLCJsb2dpY2Fsbm90IiwibG9naWNhbGFuZCIsImxvZ2ljYWxvciIsImFycm93ZGJsYm90aCIsImFycm93ZGJsbGVmdCIsImFycm93ZGJsdXAiLCJhcnJvd2RibHJpZ2h0IiwiYXJyb3dkYmxkb3duIiwibG96ZW5nZSIsImFuZ2xlbGVmdCIsInJlZ2lzdGVyc2FucyIsImNvcHlyaWdodHNhbnMiLCJ0cmFkZW1hcmtzYW5zIiwic3VtbWF0aW9uIiwicGFyZW5sZWZ0dHAiLCJwYXJlbmxlZnRleCIsInBhcmVubGVmdGJ0IiwiYnJhY2tldGxlZnR0cCIsImJyYWNrZXRsZWZ0ZXgiLCJicmFja2V0bGVmdGJ0IiwiYnJhY2VsZWZ0dHAiLCJicmFjZWxlZnRtaWQiLCJicmFjZWxlZnRidCIsImJyYWNlZXgiLCIiLCJhbmdsZXJpZ2h0IiwiaW50ZWdyYWwiLCJpbnRlZ3JhbHRwIiwiaW50ZWdyYWxleCIsImludGVncmFsYnQiLCJwYXJlbnJpZ2h0dHAiLCJwYXJlbnJpZ2h0ZXgiLCJwYXJlbnJpZ2h0YnQiLCJicmFja2V0cmlnaHR0cCIsImJyYWNrZXRyaWdodGV4IiwiYnJhY2tldHJpZ2h0YnQiLCJicmFjZXJpZ2h0dHAiLCJicmFjZXJpZ2h0bWlkIiwiYnJhY2VyaWdodGJ0IiwiIl0sdmk9WyIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJzcGFjZSIsImExIiwiYTIiLCJhMjAyIiwiYTMiLCJhNCIsImE1IiwiYTExOSIsImExMTgiLCJhMTE3IiwiYTExIiwiYTEyIiwiYTEzIiwiYTE0IiwiYTE1IiwiYTE2IiwiYTEwNSIsImExNyIsImExOCIsImExOSIsImEyMCIsImEyMSIsImEyMiIsImEyMyIsImEyNCIsImEyNSIsImEyNiIsImEyNyIsImEyOCIsImE2IiwiYTciLCJhOCIsImE5IiwiYTEwIiwiYTI5IiwiYTMwIiwiYTMxIiwiYTMyIiwiYTMzIiwiYTM0IiwiYTM1IiwiYTM2IiwiYTM3IiwiYTM4IiwiYTM5IiwiYTQwIiwiYTQxIiwiYTQyIiwiYTQzIiwiYTQ0IiwiYTQ1IiwiYTQ2IiwiYTQ3IiwiYTQ4IiwiYTQ5IiwiYTUwIiwiYTUxIiwiYTUyIiwiYTUzIiwiYTU0IiwiYTU1IiwiYTU2IiwiYTU3IiwiYTU4IiwiYTU5IiwiYTYwIiwiYTYxIiwiYTYyIiwiYTYzIiwiYTY0IiwiYTY1IiwiYTY2IiwiYTY3IiwiYTY4IiwiYTY5IiwiYTcwIiwiYTcxIiwiYTcyIiwiYTczIiwiYTc0IiwiYTIwMyIsImE3NSIsImEyMDQiLCJhNzYiLCJhNzciLCJhNzgiLCJhNzkiLCJhODEiLCJhODIiLCJhODMiLCJhODQiLCJhOTciLCJhOTgiLCJhOTkiLCJhMTAwIiwiIiwiYTg5IiwiYTkwIiwiYTkzIiwiYTk0IiwiYTkxIiwiYTkyIiwiYTIwNSIsImE4NSIsImEyMDYiLCJhODYiLCJhODciLCJhODgiLCJhOTUiLCJhOTYiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJhMTAxIiwiYTEwMiIsImExMDMiLCJhMTA0IiwiYTEwNiIsImExMDciLCJhMTA4IiwiYTExMiIsImExMTEiLCJhMTEwIiwiYTEwOSIsImExMjAiLCJhMTIxIiwiYTEyMiIsImExMjMiLCJhMTI0IiwiYTEyNSIsImExMjYiLCJhMTI3IiwiYTEyOCIsImExMjkiLCJhMTMwIiwiYTEzMSIsImExMzIiLCJhMTMzIiwiYTEzNCIsImExMzUiLCJhMTM2IiwiYTEzNyIsImExMzgiLCJhMTM5IiwiYTE0MCIsImExNDEiLCJhMTQyIiwiYTE0MyIsImExNDQiLCJhMTQ1IiwiYTE0NiIsImExNDciLCJhMTQ4IiwiYTE0OSIsImExNTAiLCJhMTUxIiwiYTE1MiIsImExNTMiLCJhMTU0IiwiYTE1NSIsImExNTYiLCJhMTU3IiwiYTE1OCIsImExNTkiLCJhMTYwIiwiYTE2MSIsImExNjMiLCJhMTY0IiwiYTE5NiIsImExNjUiLCJhMTkyIiwiYTE2NiIsImExNjciLCJhMTY4IiwiYTE2OSIsImExNzAiLCJhMTcxIiwiYTE3MiIsImExNzMiLCJhMTYyIiwiYTE3NCIsImExNzUiLCJhMTc2IiwiYTE3NyIsImExNzgiLCJhMTc5IiwiYTE5MyIsImExODAiLCJhMTk5IiwiYTE4MSIsImEyMDAiLCJhMTgyIiwiIiwiYTIwMSIsImExODMiLCJhMTg0IiwiYTE5NyIsImExODUiLCJhMTk0IiwiYTE5OCIsImExODYiLCJhMTk1IiwiYTE4NyIsImExODgiLCJhMTg5IiwiYTE5MCIsImExOTEiLCIiXTtmdW5jdGlvbiBLaShBKXtzd2l0Y2goQSl7Y2FzZSJXaW5BbnNpRW5jb2RpbmciOnJldHVybiBIaTtjYXNlIlN0YW5kYXJkRW5jb2RpbmciOnJldHVybiBKaTtjYXNlIk1hY1JvbWFuRW5jb2RpbmciOnJldHVybiBMaTtjYXNlIlN5bWJvbFNldEVuY29kaW5nIjpyZXR1cm4gWWk7Y2FzZSJaYXBmRGluZ2JhdHNFbmNvZGluZyI6cmV0dXJuIHZpO2Nhc2UiRXhwZXJ0RW5jb2RpbmciOnJldHVybiBVaTtjYXNlIk1hY0V4cGVydEVuY29kaW5nIjpyZXR1cm4gTWk7ZGVmYXVsdDpyZXR1cm4gbnVsbH19Y29uc3QgcWk9WyIubm90ZGVmIiwic3BhY2UiLCJleGNsYW0iLCJxdW90ZWRibCIsIm51bWJlcnNpZ24iLCJkb2xsYXIiLCJwZXJjZW50IiwiYW1wZXJzYW5kIiwicXVvdGVyaWdodCIsInBhcmVubGVmdCIsInBhcmVucmlnaHQiLCJhc3RlcmlzayIsInBsdXMiLCJjb21tYSIsImh5cGhlbiIsInBlcmlvZCIsInNsYXNoIiwiemVybyIsIm9uZSIsInR3byIsInRocmVlIiwiZm91ciIsImZpdmUiLCJzaXgiLCJzZXZlbiIsImVpZ2h0IiwibmluZSIsImNvbG9uIiwic2VtaWNvbG9uIiwibGVzcyIsImVxdWFsIiwiZ3JlYXRlciIsInF1ZXN0aW9uIiwiYXQiLCJBIiwiQiIsIkMiLCJEIiwiRSIsIkYiLCJHIiwiSCIsIkkiLCJKIiwiSyIsIkwiLCJNIiwiTiIsIk8iLCJQIiwiUSIsIlIiLCJTIiwiVCIsIlUiLCJWIiwiVyIsIlgiLCJZIiwiWiIsImJyYWNrZXRsZWZ0IiwiYmFja3NsYXNoIiwiYnJhY2tldHJpZ2h0IiwiYXNjaWljaXJjdW0iLCJ1bmRlcnNjb3JlIiwicXVvdGVsZWZ0IiwiYSIsImIiLCJjIiwiZCIsImUiLCJmIiwiZyIsImgiLCJpIiwiaiIsImsiLCJsIiwibSIsIm4iLCJvIiwicCIsInEiLCJyIiwicyIsInQiLCJ1IiwidiIsInciLCJ4IiwieSIsInoiLCJicmFjZWxlZnQiLCJiYXIiLCJicmFjZXJpZ2h0IiwiYXNjaWl0aWxkZSIsImV4Y2xhbWRvd24iLCJjZW50Iiwic3RlcmxpbmciLCJmcmFjdGlvbiIsInllbiIsImZsb3JpbiIsInNlY3Rpb24iLCJjdXJyZW5jeSIsInF1b3Rlc2luZ2xlIiwicXVvdGVkYmxsZWZ0IiwiZ3VpbGxlbW90bGVmdCIsImd1aWxzaW5nbGxlZnQiLCJndWlsc2luZ2xyaWdodCIsImZpIiwiZmwiLCJlbmRhc2giLCJkYWdnZXIiLCJkYWdnZXJkYmwiLCJwZXJpb2RjZW50ZXJlZCIsInBhcmFncmFwaCIsImJ1bGxldCIsInF1b3Rlc2luZ2xiYXNlIiwicXVvdGVkYmxiYXNlIiwicXVvdGVkYmxyaWdodCIsImd1aWxsZW1vdHJpZ2h0IiwiZWxsaXBzaXMiLCJwZXJ0aG91c2FuZCIsInF1ZXN0aW9uZG93biIsImdyYXZlIiwiYWN1dGUiLCJjaXJjdW1mbGV4IiwidGlsZGUiLCJtYWNyb24iLCJicmV2ZSIsImRvdGFjY2VudCIsImRpZXJlc2lzIiwicmluZyIsImNlZGlsbGEiLCJodW5nYXJ1bWxhdXQiLCJvZ29uZWsiLCJjYXJvbiIsImVtZGFzaCIsIkFFIiwib3JkZmVtaW5pbmUiLCJMc2xhc2giLCJPc2xhc2giLCJPRSIsIm9yZG1hc2N1bGluZSIsImFlIiwiZG90bGVzc2kiLCJsc2xhc2giLCJvc2xhc2giLCJvZSIsImdlcm1hbmRibHMiLCJvbmVzdXBlcmlvciIsImxvZ2ljYWxub3QiLCJtdSIsInRyYWRlbWFyayIsIkV0aCIsIm9uZWhhbGYiLCJwbHVzbWludXMiLCJUaG9ybiIsIm9uZXF1YXJ0ZXIiLCJkaXZpZGUiLCJicm9rZW5iYXIiLCJkZWdyZWUiLCJ0aG9ybiIsInRocmVlcXVhcnRlcnMiLCJ0d29zdXBlcmlvciIsInJlZ2lzdGVyZWQiLCJtaW51cyIsImV0aCIsIm11bHRpcGx5IiwidGhyZWVzdXBlcmlvciIsImNvcHlyaWdodCIsIkFhY3V0ZSIsIkFjaXJjdW1mbGV4IiwiQWRpZXJlc2lzIiwiQWdyYXZlIiwiQXJpbmciLCJBdGlsZGUiLCJDY2VkaWxsYSIsIkVhY3V0ZSIsIkVjaXJjdW1mbGV4IiwiRWRpZXJlc2lzIiwiRWdyYXZlIiwiSWFjdXRlIiwiSWNpcmN1bWZsZXgiLCJJZGllcmVzaXMiLCJJZ3JhdmUiLCJOdGlsZGUiLCJPYWN1dGUiLCJPY2lyY3VtZmxleCIsIk9kaWVyZXNpcyIsIk9ncmF2ZSIsIk90aWxkZSIsIlNjYXJvbiIsIlVhY3V0ZSIsIlVjaXJjdW1mbGV4IiwiVWRpZXJlc2lzIiwiVWdyYXZlIiwiWWFjdXRlIiwiWWRpZXJlc2lzIiwiWmNhcm9uIiwiYWFjdXRlIiwiYWNpcmN1bWZsZXgiLCJhZGllcmVzaXMiLCJhZ3JhdmUiLCJhcmluZyIsImF0aWxkZSIsImNjZWRpbGxhIiwiZWFjdXRlIiwiZWNpcmN1bWZsZXgiLCJlZGllcmVzaXMiLCJlZ3JhdmUiLCJpYWN1dGUiLCJpY2lyY3VtZmxleCIsImlkaWVyZXNpcyIsImlncmF2ZSIsIm50aWxkZSIsIm9hY3V0ZSIsIm9jaXJjdW1mbGV4Iiwib2RpZXJlc2lzIiwib2dyYXZlIiwib3RpbGRlIiwic2Nhcm9uIiwidWFjdXRlIiwidWNpcmN1bWZsZXgiLCJ1ZGllcmVzaXMiLCJ1Z3JhdmUiLCJ5YWN1dGUiLCJ5ZGllcmVzaXMiLCJ6Y2Fyb24iLCJleGNsYW1zbWFsbCIsIkh1bmdhcnVtbGF1dHNtYWxsIiwiZG9sbGFyb2xkc3R5bGUiLCJkb2xsYXJzdXBlcmlvciIsImFtcGVyc2FuZHNtYWxsIiwiQWN1dGVzbWFsbCIsInBhcmVubGVmdHN1cGVyaW9yIiwicGFyZW5yaWdodHN1cGVyaW9yIiwidHdvZG90ZW5sZWFkZXIiLCJvbmVkb3RlbmxlYWRlciIsInplcm9vbGRzdHlsZSIsIm9uZW9sZHN0eWxlIiwidHdvb2xkc3R5bGUiLCJ0aHJlZW9sZHN0eWxlIiwiZm91cm9sZHN0eWxlIiwiZml2ZW9sZHN0eWxlIiwic2l4b2xkc3R5bGUiLCJzZXZlbm9sZHN0eWxlIiwiZWlnaHRvbGRzdHlsZSIsIm5pbmVvbGRzdHlsZSIsImNvbW1hc3VwZXJpb3IiLCJ0aHJlZXF1YXJ0ZXJzZW1kYXNoIiwicGVyaW9kc3VwZXJpb3IiLCJxdWVzdGlvbnNtYWxsIiwiYXN1cGVyaW9yIiwiYnN1cGVyaW9yIiwiY2VudHN1cGVyaW9yIiwiZHN1cGVyaW9yIiwiZXN1cGVyaW9yIiwiaXN1cGVyaW9yIiwibHN1cGVyaW9yIiwibXN1cGVyaW9yIiwibnN1cGVyaW9yIiwib3N1cGVyaW9yIiwicnN1cGVyaW9yIiwic3N1cGVyaW9yIiwidHN1cGVyaW9yIiwiZmYiLCJmZmkiLCJmZmwiLCJwYXJlbmxlZnRpbmZlcmlvciIsInBhcmVucmlnaHRpbmZlcmlvciIsIkNpcmN1bWZsZXhzbWFsbCIsImh5cGhlbnN1cGVyaW9yIiwiR3JhdmVzbWFsbCIsIkFzbWFsbCIsIkJzbWFsbCIsIkNzbWFsbCIsIkRzbWFsbCIsIkVzbWFsbCIsIkZzbWFsbCIsIkdzbWFsbCIsIkhzbWFsbCIsIklzbWFsbCIsIkpzbWFsbCIsIktzbWFsbCIsIkxzbWFsbCIsIk1zbWFsbCIsIk5zbWFsbCIsIk9zbWFsbCIsIlBzbWFsbCIsIlFzbWFsbCIsIlJzbWFsbCIsIlNzbWFsbCIsIlRzbWFsbCIsIlVzbWFsbCIsIlZzbWFsbCIsIldzbWFsbCIsIlhzbWFsbCIsIllzbWFsbCIsIlpzbWFsbCIsImNvbG9ubW9uZXRhcnkiLCJvbmVmaXR0ZWQiLCJydXBpYWgiLCJUaWxkZXNtYWxsIiwiZXhjbGFtZG93bnNtYWxsIiwiY2VudG9sZHN0eWxlIiwiTHNsYXNoc21hbGwiLCJTY2Fyb25zbWFsbCIsIlpjYXJvbnNtYWxsIiwiRGllcmVzaXNzbWFsbCIsIkJyZXZlc21hbGwiLCJDYXJvbnNtYWxsIiwiRG90YWNjZW50c21hbGwiLCJNYWNyb25zbWFsbCIsImZpZ3VyZWRhc2giLCJoeXBoZW5pbmZlcmlvciIsIk9nb25la3NtYWxsIiwiUmluZ3NtYWxsIiwiQ2VkaWxsYXNtYWxsIiwicXVlc3Rpb25kb3duc21hbGwiLCJvbmVlaWdodGgiLCJ0aHJlZWVpZ2h0aHMiLCJmaXZlZWlnaHRocyIsInNldmVuZWlnaHRocyIsIm9uZXRoaXJkIiwidHdvdGhpcmRzIiwiemVyb3N1cGVyaW9yIiwiZm91cnN1cGVyaW9yIiwiZml2ZXN1cGVyaW9yIiwic2l4c3VwZXJpb3IiLCJzZXZlbnN1cGVyaW9yIiwiZWlnaHRzdXBlcmlvciIsIm5pbmVzdXBlcmlvciIsInplcm9pbmZlcmlvciIsIm9uZWluZmVyaW9yIiwidHdvaW5mZXJpb3IiLCJ0aHJlZWluZmVyaW9yIiwiZm91cmluZmVyaW9yIiwiZml2ZWluZmVyaW9yIiwic2l4aW5mZXJpb3IiLCJzZXZlbmluZmVyaW9yIiwiZWlnaHRpbmZlcmlvciIsIm5pbmVpbmZlcmlvciIsImNlbnRpbmZlcmlvciIsImRvbGxhcmluZmVyaW9yIiwicGVyaW9kaW5mZXJpb3IiLCJjb21tYWluZmVyaW9yIiwiQWdyYXZlc21hbGwiLCJBYWN1dGVzbWFsbCIsIkFjaXJjdW1mbGV4c21hbGwiLCJBdGlsZGVzbWFsbCIsIkFkaWVyZXNpc3NtYWxsIiwiQXJpbmdzbWFsbCIsIkFFc21hbGwiLCJDY2VkaWxsYXNtYWxsIiwiRWdyYXZlc21hbGwiLCJFYWN1dGVzbWFsbCIsIkVjaXJjdW1mbGV4c21hbGwiLCJFZGllcmVzaXNzbWFsbCIsIklncmF2ZXNtYWxsIiwiSWFjdXRlc21hbGwiLCJJY2lyY3VtZmxleHNtYWxsIiwiSWRpZXJlc2lzc21hbGwiLCJFdGhzbWFsbCIsIk50aWxkZXNtYWxsIiwiT2dyYXZlc21hbGwiLCJPYWN1dGVzbWFsbCIsIk9jaXJjdW1mbGV4c21hbGwiLCJPdGlsZGVzbWFsbCIsIk9kaWVyZXNpc3NtYWxsIiwiT0VzbWFsbCIsIk9zbGFzaHNtYWxsIiwiVWdyYXZlc21hbGwiLCJVYWN1dGVzbWFsbCIsIlVjaXJjdW1mbGV4c21hbGwiLCJVZGllcmVzaXNzbWFsbCIsIllhY3V0ZXNtYWxsIiwiVGhvcm5zbWFsbCIsIllkaWVyZXNpc3NtYWxsIiwiMDAxLjAwMCIsIjAwMS4wMDEiLCIwMDEuMDAyIiwiMDAxLjAwMyIsIkJsYWNrIiwiQm9sZCIsIkJvb2siLCJMaWdodCIsIk1lZGl1bSIsIlJlZ3VsYXIiLCJSb21hbiIsIlNlbWlib2xkIl0sVGk9W251bGwse2lkOiJoc3RlbSIsbWluOjIsc3RhY2tDbGVhcmluZzohMCxzdGVtOiEwfSxudWxsLHtpZDoidnN0ZW0iLG1pbjoyLHN0YWNrQ2xlYXJpbmc6ITAsc3RlbTohMH0se2lkOiJ2bW92ZXRvIixtaW46MSxzdGFja0NsZWFyaW5nOiEwfSx7aWQ6InJsaW5ldG8iLG1pbjoyLHJlc2V0U3RhY2s6ITB9LHtpZDoiaGxpbmV0byIsbWluOjEscmVzZXRTdGFjazohMH0se2lkOiJ2bGluZXRvIixtaW46MSxyZXNldFN0YWNrOiEwfSx7aWQ6InJyY3VydmV0byIsbWluOjYscmVzZXRTdGFjazohMH0sbnVsbCx7aWQ6ImNhbGxzdWJyIixtaW46MSx1bmRlZlN0YWNrOiEwfSx7aWQ6InJldHVybiIsbWluOjAsdW5kZWZTdGFjazohMH0sbnVsbCxudWxsLHtpZDoiZW5kY2hhciIsbWluOjAsc3RhY2tDbGVhcmluZzohMH0sbnVsbCxudWxsLG51bGwse2lkOiJoc3RlbWhtIixtaW46MixzdGFja0NsZWFyaW5nOiEwLHN0ZW06ITB9LHtpZDoiaGludG1hc2siLG1pbjowLHN0YWNrQ2xlYXJpbmc6ITB9LHtpZDoiY250cm1hc2siLG1pbjowLHN0YWNrQ2xlYXJpbmc6ITB9LHtpZDoicm1vdmV0byIsbWluOjIsc3RhY2tDbGVhcmluZzohMH0se2lkOiJobW92ZXRvIixtaW46MSxzdGFja0NsZWFyaW5nOiEwfSx7aWQ6InZzdGVtaG0iLG1pbjoyLHN0YWNrQ2xlYXJpbmc6ITAsc3RlbTohMH0se2lkOiJyY3VydmVsaW5lIixtaW46OCxyZXNldFN0YWNrOiEwfSx7aWQ6InJsaW5lY3VydmUiLG1pbjo4LHJlc2V0U3RhY2s6ITB9LHtpZDoidnZjdXJ2ZXRvIixtaW46NCxyZXNldFN0YWNrOiEwfSx7aWQ6ImhoY3VydmV0byIsbWluOjQscmVzZXRTdGFjazohMH0sbnVsbCx7aWQ6ImNhbGxnc3ViciIsbWluOjEsdW5kZWZTdGFjazohMH0se2lkOiJ2aGN1cnZldG8iLG1pbjo0LHJlc2V0U3RhY2s6ITB9LHtpZDoiaHZjdXJ2ZXRvIixtaW46NCxyZXNldFN0YWNrOiEwfV0sUGk9W251bGwsbnVsbCxudWxsLHtpZDoiYW5kIixtaW46MixzdGFja0RlbHRhOi0xfSx7aWQ6Im9yIixtaW46MixzdGFja0RlbHRhOi0xfSx7aWQ6Im5vdCIsbWluOjEsc3RhY2tEZWx0YTowfSxudWxsLG51bGwsbnVsbCx7aWQ6ImFicyIsbWluOjEsc3RhY2tEZWx0YTowfSx7aWQ6ImFkZCIsbWluOjIsc3RhY2tEZWx0YTotMSxzdGFja0ZuKEEsZSl7QVtlLTJdPUFbZS0yXStBW2UtMV19fSx7aWQ6InN1YiIsbWluOjIsc3RhY2tEZWx0YTotMSxzdGFja0ZuKEEsZSl7QVtlLTJdPUFbZS0yXS1BW2UtMV19fSx7aWQ6ImRpdiIsbWluOjIsc3RhY2tEZWx0YTotMSxzdGFja0ZuKEEsZSl7QVtlLTJdPUFbZS0yXS9BW2UtMV19fSxudWxsLHtpZDoibmVnIixtaW46MSxzdGFja0RlbHRhOjAsc3RhY2tGbihBLGUpe0FbZS0xXT0tQVtlLTFdfX0se2lkOiJlcSIsbWluOjIsc3RhY2tEZWx0YTotMX0sbnVsbCxudWxsLHtpZDoiZHJvcCIsbWluOjEsc3RhY2tEZWx0YTotMX0sbnVsbCx7aWQ6InB1dCIsbWluOjIsc3RhY2tEZWx0YTotMn0se2lkOiJnZXQiLG1pbjoxLHN0YWNrRGVsdGE6MH0se2lkOiJpZmVsc2UiLG1pbjo0LHN0YWNrRGVsdGE6LTN9LHtpZDoicmFuZG9tIixtaW46MCxzdGFja0RlbHRhOjF9LHtpZDoibXVsIixtaW46MixzdGFja0RlbHRhOi0xLHN0YWNrRm4oQSxlKXtBW2UtMl09QVtlLTJdKkFbZS0xXX19LG51bGwse2lkOiJzcXJ0IixtaW46MSxzdGFja0RlbHRhOjB9LHtpZDoiZHVwIixtaW46MSxzdGFja0RlbHRhOjF9LHtpZDoiZXhjaCIsbWluOjIsc3RhY2tEZWx0YTowfSx7aWQ6ImluZGV4IixtaW46MixzdGFja0RlbHRhOjB9LHtpZDoicm9sbCIsbWluOjMsc3RhY2tEZWx0YTotMn0sbnVsbCxudWxsLG51bGwse2lkOiJoZmxleCIsbWluOjcscmVzZXRTdGFjazohMH0se2lkOiJmbGV4IixtaW46MTMscmVzZXRTdGFjazohMH0se2lkOiJoZmxleDEiLG1pbjo5LHJlc2V0U3RhY2s6ITB9LHtpZDoiZmxleDEiLG1pbjoxMSxyZXNldFN0YWNrOiEwfV07Y2xhc3MgV2l7Y29uc3RydWN0b3IoQSxlLHQpe3RoaXMuYnl0ZXM9QS5nZXRCeXRlcygpLHRoaXMucHJvcGVydGllcz1lLHRoaXMuc2VhY0FuYWx5c2lzRW5hYmxlZD0hIXR9cGFyc2UoKXtjb25zdCBBPXRoaXMucHJvcGVydGllcyxlPW5ldyBPaTt0aGlzLmNmZj1lO2NvbnN0IHQ9dGhpcy5wYXJzZUhlYWRlcigpLGk9dGhpcy5wYXJzZUluZGV4KHQuZW5kUG9zKSxhPXRoaXMucGFyc2VJbmRleChpLmVuZFBvcykscz10aGlzLnBhcnNlSW5kZXgoYS5lbmRQb3MpLG49dGhpcy5wYXJzZUluZGV4KHMuZW5kUG9zKSxyPXRoaXMucGFyc2VEaWN0KGEub2JqLmdldCgwKSksZz10aGlzLmNyZWF0ZURpY3QoemkscixlLnN0cmluZ3MpO2UuaGVhZGVyPXQub2JqLGUubmFtZXM9dGhpcy5wYXJzZU5hbWVJbmRleChpLm9iaiksZS5zdHJpbmdzPXRoaXMucGFyc2VTdHJpbmdJbmRleChzLm9iaiksZS50b3BEaWN0PWcsZS5nbG9iYWxTdWJySW5kZXg9bi5vYmosdGhpcy5wYXJzZVByaXZhdGVEaWN0KGUudG9wRGljdCksZS5pc0NJREZvbnQ9Zy5oYXNOYW1lKCJST1MiKTtjb25zdCBvPWcuZ2V0QnlOYW1lKCJDaGFyU3RyaW5ncyIpLEk9dGhpcy5wYXJzZUluZGV4KG8pLm9iaixjPWcuZ2V0QnlOYW1lKCJGb250TWF0cml4Iik7YyYmKEEuZm9udE1hdHJpeD1jKTtjb25zdCBoPWcuZ2V0QnlOYW1lKCJGb250QkJveCIpO2xldCBDLEI7aWYoaCYmKEEuYXNjZW50PU1hdGgubWF4KGhbM10saFsxXSksQS5kZXNjZW50PU1hdGgubWluKGhbMV0saFszXSksQS5hc2NlbnRTY2FsZWQ9ITApLGUuaXNDSURGb250KXtjb25zdCBBPXRoaXMucGFyc2VJbmRleChnLmdldEJ5TmFtZSgiRkRBcnJheSIpKS5vYmo7Zm9yKGxldCB0PTAsaT1BLmNvdW50O3Q8aTsrK3Qpe2NvbnN0IGk9QS5nZXQodCksYT10aGlzLmNyZWF0ZURpY3QoemksdGhpcy5wYXJzZURpY3QoaSksZS5zdHJpbmdzKTt0aGlzLnBhcnNlUHJpdmF0ZURpY3QoYSksZS5mZEFycmF5LnB1c2goYSl9Qj1udWxsLEM9dGhpcy5wYXJzZUNoYXJzZXRzKGcuZ2V0QnlOYW1lKCJjaGFyc2V0IiksSS5jb3VudCxlLnN0cmluZ3MsITApLGUuZmRTZWxlY3Q9dGhpcy5wYXJzZUZEU2VsZWN0KGcuZ2V0QnlOYW1lKCJGRFNlbGVjdCIpLEkuY291bnQpfWVsc2UgQz10aGlzLnBhcnNlQ2hhcnNldHMoZy5nZXRCeU5hbWUoImNoYXJzZXQiKSxJLmNvdW50LGUuc3RyaW5ncywhMSksQj10aGlzLnBhcnNlRW5jb2RpbmcoZy5nZXRCeU5hbWUoIkVuY29kaW5nIiksQSxlLnN0cmluZ3MsQy5jaGFyc2V0KTtlLmNoYXJzZXQ9QyxlLmVuY29kaW5nPUI7Y29uc3QgbD10aGlzLnBhcnNlQ2hhclN0cmluZ3Moe2NoYXJTdHJpbmdzOkksbG9jYWxTdWJySW5kZXg6Zy5wcml2YXRlRGljdC5zdWJyc0luZGV4LGdsb2JhbFN1YnJJbmRleDpuLm9iaixmZFNlbGVjdDplLmZkU2VsZWN0LGZkQXJyYXk6ZS5mZEFycmF5LHByaXZhdGVEaWN0OmcucHJpdmF0ZURpY3R9KTtyZXR1cm4gZS5jaGFyU3RyaW5ncz1sLmNoYXJTdHJpbmdzLGUuc2VhY3M9bC5zZWFjcyxlLndpZHRocz1sLndpZHRocyxlfXBhcnNlSGVhZGVyKCl7bGV0IEE9dGhpcy5ieXRlcztjb25zdCBlPUEubGVuZ3RoO2xldCB0PTA7Zm9yKDt0PGUmJjEhPT1BW3RdOykrK3Q7aWYodD49ZSl0aHJvdyBuZXcgVygiSW52YWxpZCBDRkYgaGVhZGVyIik7MCE9PXQmJih4KCJjZmYgZGF0YSBpcyBzaGlmdGVkIiksQT1BLnN1YmFycmF5KHQpLHRoaXMuYnl0ZXM9QSk7Y29uc3QgaT1BWzBdLGE9QVsxXSxzPUFbMl0sbj1BWzNdO3JldHVybntvYmo6bmV3IFppKGksYSxzLG4pLGVuZFBvczpzfX1wYXJzZURpY3QoQSl7bGV0IGU9MDtmdW5jdGlvbiB0KCl7bGV0IHQ9QVtlKytdO3JldHVybiAzMD09PXQ/ZnVuY3Rpb24oKXtsZXQgdD0iIjtjb25zdCBpPVsiMCIsIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIi4iLCJFIiwiRS0iLG51bGwsIi0iXSxhPUEubGVuZ3RoO2Zvcig7ZTxhOyl7Y29uc3QgYT1BW2UrK10scz1hPj40LG49MTUmYTtpZigxNT09PXMpYnJlYWs7aWYodCs9aVtzXSwxNT09PW4pYnJlYWs7dCs9aVtuXX1yZXR1cm4gcGFyc2VGbG9hdCh0KX0oKToyOD09PXQ/KHQ9QVtlKytdLHQ9KHQ8PDI0fEFbZSsrXTw8MTYpPj4xNix0KToyOT09PXQ/KHQ9QVtlKytdLHQ9dDw8OHxBW2UrK10sdD10PDw4fEFbZSsrXSx0PXQ8PDh8QVtlKytdLHQpOnQ+PTMyJiZ0PD0yNDY/dC0xMzk6dD49MjQ3JiZ0PD0yNTA/MjU2Kih0LTI0NykrQVtlKytdKzEwODp0Pj0yNTEmJnQ8PTI1ND8tMjU2Kih0LTI1MSktQVtlKytdLTEwODooVSgnQ0ZGUGFyc2VyX3BhcnNlRGljdDogIicrdCsnIiBpcyBhIHJlc2VydmVkIGNvbW1hbmQuJyksTmFOKX1sZXQgaT1bXTtjb25zdCBhPVtdO2U9MDtjb25zdCBzPUEubGVuZ3RoO2Zvcig7ZTxzOyl7bGV0IHM9QVtlXTtzPD0yMT8oMTI9PT1zJiYocz1zPDw4fEFbKytlXSksYS5wdXNoKFtzLGldKSxpPVtdLCsrZSk6aS5wdXNoKHQoKSl9cmV0dXJuIGF9cGFyc2VJbmRleChBKXtjb25zdCBlPW5ldyBYaSx0PXRoaXMuYnl0ZXMsaT10W0ErK108PDh8dFtBKytdLGE9W107bGV0IHMsbixyPUE7aWYoMCE9PWkpe2NvbnN0IGU9dFtBKytdLGc9QSsoaSsxKSplLTE7Zm9yKHM9MCxuPWkrMTtzPG47KytzKXtsZXQgaT0wO2ZvcihsZXQgYT0wO2E8ZTsrK2EpaTw8PTgsaSs9dFtBKytdO2EucHVzaChnK2kpfXI9YVtpXX1mb3Iocz0wLG49YS5sZW5ndGgtMTtzPG47KytzKXtjb25zdCBBPWFbc10saT1hW3MrMV07ZS5hZGQodC5zdWJhcnJheShBLGkpKX1yZXR1cm57b2JqOmUsZW5kUG9zOnJ9fXBhcnNlTmFtZUluZGV4KEEpe2NvbnN0IGU9W107Zm9yKGxldCB0PTAsaT1BLmNvdW50O3Q8aTsrK3Qpe2NvbnN0IGk9QS5nZXQodCk7ZS5wdXNoKFooaSkpfXJldHVybiBlfXBhcnNlU3RyaW5nSW5kZXgoQSl7Y29uc3QgZT1uZXcgamk7Zm9yKGxldCB0PTAsaT1BLmNvdW50O3Q8aTsrK3Qpe2NvbnN0IGk9QS5nZXQodCk7ZS5hZGQoWihpKSl9cmV0dXJuIGV9Y3JlYXRlRGljdChBLGUsdCl7Y29uc3QgaT1uZXcgQSh0KTtmb3IoY29uc3RbQSx0XW9mIGUpaS5zZXRCeUtleShBLHQpO3JldHVybiBpfXBhcnNlQ2hhclN0cmluZyhBLGUsdCxpKXtpZighZXx8QS5jYWxsRGVwdGg+MTApcmV0dXJuITE7bGV0IGE9QS5zdGFja1NpemU7Y29uc3Qgcz1BLnN0YWNrO2xldCBuPWUubGVuZ3RoO2ZvcihsZXQgcj0wO3I8bjspe2NvbnN0IGc9ZVtyKytdO2xldCBvPW51bGw7aWYoMTI9PT1nKXtjb25zdCBBPWVbcisrXTswPT09QT8oZVtyLTJdPTEzOSxlW3ItMV09MjIsYT0wKTpvPVBpW0FdfWVsc2UgaWYoMjg9PT1nKXNbYV09KGVbcl08PDI0fGVbcisxXTw8MTYpPj4xNixyKz0yLGErKztlbHNlIGlmKDE0PT09Zyl7aWYoYT49NCYmKGEtPTQsdGhpcy5zZWFjQW5hbHlzaXNFbmFibGVkKSlyZXR1cm4gQS5zZWFjPXMuc2xpY2UoYSxhKzQpLCExO289VGlbZ119ZWxzZSBpZihnPj0zMiYmZzw9MjQ2KXNbYV09Zy0xMzksYSsrO2Vsc2UgaWYoZz49MjQ3JiZnPD0yNTQpc1thXT1nPDI1MT8oZy0yNDc8PDgpK2Vbcl0rMTA4Oi0oZy0yNTE8PDgpLWVbcl0tMTA4LHIrKyxhKys7ZWxzZSBpZigyNTU9PT1nKXNbYV09KGVbcl08PDI0fGVbcisxXTw8MTZ8ZVtyKzJdPDw4fGVbciszXSkvNjU1MzYscis9NCxhKys7ZWxzZSBpZigxOT09PWd8fDIwPT09Zyl7aWYoQS5oaW50cys9YT4+MSwwPT09QS5oaW50cyl7ZS5jb3B5V2l0aGluKHItMSxyLC0xKSxyLT0xLG4tPTE7Y29udGludWV9cis9QS5oaW50cys3Pj4zLGElPTIsbz1UaVtnXX1lbHNle2lmKDEwPT09Z3x8Mjk9PT1nKXtjb25zdCBlPTEwPT09Zz90Omk7aWYoIWUpcmV0dXJuIG89VGlbZ10sVSgiTWlzc2luZyBzdWJyc0luZGV4IGZvciAiK28uaWQpLCExO2xldCBuPTMyNzY4O2UuY291bnQ8MTI0MD9uPTEwNzplLmNvdW50PDMzOTAwJiYobj0xMTMxKTtjb25zdCByPXNbLS1hXStuO2lmKHI8MHx8cj49ZS5jb3VudHx8aXNOYU4ocikpcmV0dXJuIG89VGlbZ10sVSgiT3V0IG9mIGJvdW5kcyBzdWJySW5kZXggZm9yICIrby5pZCksITE7aWYoQS5zdGFja1NpemU9YSxBLmNhbGxEZXB0aCsrLCF0aGlzLnBhcnNlQ2hhclN0cmluZyhBLGUuZ2V0KHIpLHQsaSkpcmV0dXJuITE7QS5jYWxsRGVwdGgtLSxhPUEuc3RhY2tTaXplO2NvbnRpbnVlfWlmKDExPT09ZylyZXR1cm4gQS5zdGFja1NpemU9YSwhMDtpZigwPT09ZyYmcj09PWUubGVuZ3RoKWVbci0xXT0xNCxvPVRpWzE0XTtlbHNle2lmKDk9PT1nKXtlLmNvcHlXaXRoaW4oci0xLHIsLTEpLHItPTEsbi09MTtjb250aW51ZX1vPVRpW2ddfX1pZihvKXtpZihvLnN0ZW0mJihBLmhpbnRzKz1hPj4xLDM9PT1nfHwyMz09PWc/QS5oYXNWU3RlbXM9ITA6IUEuaGFzVlN0ZW1zfHwxIT09ZyYmMTghPT1nfHwoVSgiQ0ZGIHN0ZW0gaGludHMgYXJlIGluIHdyb25nIG9yZGVyIiksZVtyLTFdPTE9PT1nPzM6MjMpKSwibWluImluIG8mJiFBLnVuZGVmU3RhY2smJmE8by5taW4pcmV0dXJuIFUoIk5vdCBlbm91Z2ggcGFyYW1ldGVycyBmb3IgIitvLmlkKyI7IGFjdHVhbDogIithKyIsIGV4cGVjdGVkOiAiK28ubWluKSwwPT09YSYmKGVbci0xXT0xNCwhMCk7QS5maXJzdFN0YWNrQ2xlYXJpbmcmJm8uc3RhY2tDbGVhcmluZyYmKEEuZmlyc3RTdGFja0NsZWFyaW5nPSExLGEtPW8ubWluLGE+PTImJm8uc3RlbT9hJT0yOmE+MSYmVSgiRm91bmQgdG9vIG1hbnkgcGFyYW1ldGVycyBmb3Igc3RhY2stY2xlYXJpbmcgY29tbWFuZCIpLGE+MCYmKEEud2lkdGg9c1thLTFdKSksInN0YWNrRGVsdGEiaW4gbz8oInN0YWNrRm4iaW4gbyYmby5zdGFja0ZuKHMsYSksYSs9by5zdGFja0RlbHRhKTpvLnN0YWNrQ2xlYXJpbmc/YT0wOm8ucmVzZXRTdGFjaz8oYT0wLEEudW5kZWZTdGFjaz0hMSk6by51bmRlZlN0YWNrJiYoYT0wLEEudW5kZWZTdGFjaz0hMCxBLmZpcnN0U3RhY2tDbGVhcmluZz0hMSl9fXJldHVybiBuPGUubGVuZ3RoJiZlLmZpbGwoMTQsbiksQS5zdGFja1NpemU9YSwhMH1wYXJzZUNoYXJTdHJpbmdzKHtjaGFyU3RyaW5nczpBLGxvY2FsU3VickluZGV4OmUsZ2xvYmFsU3VickluZGV4OnQsZmRTZWxlY3Q6aSxmZEFycmF5OmEscHJpdmF0ZURpY3Q6c30pe2NvbnN0IG49W10scj1bXSxnPUEuY291bnQ7Zm9yKGxldCBvPTA7bzxnO28rKyl7Y29uc3QgZz1BLmdldChvKSxJPXtjYWxsRGVwdGg6MCxzdGFja1NpemU6MCxzdGFjazpbXSx1bmRlZlN0YWNrOiEwLGhpbnRzOjAsZmlyc3RTdGFja0NsZWFyaW5nOiEwLHNlYWM6bnVsbCx3aWR0aDpudWxsLGhhc1ZTdGVtczohMX07bGV0IGM9ITAsaD1udWxsLEM9cztpZihpJiZhLmxlbmd0aCl7Y29uc3QgQT1pLmdldEZESW5kZXgobyk7LTE9PT1BJiYoVSgiR2x5cGggaW5kZXggaXMgbm90IGluIGZkIHNlbGVjdC4iKSxjPSExKSxBPj1hLmxlbmd0aCYmKFUoIkludmFsaWQgZmQgaW5kZXggZm9yIGdseXBoIGluZGV4LiIpLGM9ITEpLGMmJihDPWFbQV0ucHJpdmF0ZURpY3QsaD1DLnN1YnJzSW5kZXgpfWVsc2UgZSYmKGg9ZSk7aWYoYyYmKGM9dGhpcy5wYXJzZUNoYXJTdHJpbmcoSSxnLGgsdCkpLG51bGwhPT1JLndpZHRoKXtjb25zdCBBPUMuZ2V0QnlOYW1lKCJub21pbmFsV2lkdGhYIik7cltvXT1BK0kud2lkdGh9ZWxzZXtjb25zdCBBPUMuZ2V0QnlOYW1lKCJkZWZhdWx0V2lkdGhYIik7cltvXT1BfW51bGwhPT1JLnNlYWMmJihuW29dPUkuc2VhYyksY3x8QS5zZXQobyxuZXcgVWludDhBcnJheShbMTRdKSl9cmV0dXJue2NoYXJTdHJpbmdzOkEsc2VhY3M6bix3aWR0aHM6cn19ZW1wdHlQcml2YXRlRGljdGlvbmFyeShBKXtjb25zdCBlPXRoaXMuY3JlYXRlRGljdChBYSxbXSxBLnN0cmluZ3MpO0Euc2V0QnlLZXkoMTgsWzAsMF0pLEEucHJpdmF0ZURpY3Q9ZX1wYXJzZVByaXZhdGVEaWN0KEEpe2lmKCFBLmhhc05hbWUoIlByaXZhdGUiKSlyZXR1cm4gdm9pZCB0aGlzLmVtcHR5UHJpdmF0ZURpY3Rpb25hcnkoQSk7Y29uc3QgZT1BLmdldEJ5TmFtZSgiUHJpdmF0ZSIpO2lmKCFBcnJheS5pc0FycmF5KGUpfHwyIT09ZS5sZW5ndGgpcmV0dXJuIHZvaWQgQS5yZW1vdmVCeU5hbWUoIlByaXZhdGUiKTtjb25zdCB0PWVbMF0saT1lWzFdO2lmKDA9PT10fHxpPj10aGlzLmJ5dGVzLmxlbmd0aClyZXR1cm4gdm9pZCB0aGlzLmVtcHR5UHJpdmF0ZURpY3Rpb25hcnkoQSk7Y29uc3QgYT1pK3Qscz10aGlzLmJ5dGVzLnN1YmFycmF5KGksYSksbj10aGlzLnBhcnNlRGljdChzKSxyPXRoaXMuY3JlYXRlRGljdChBYSxuLEEuc3RyaW5ncyk7aWYoQS5wcml2YXRlRGljdD1yLDA9PT1yLmdldEJ5TmFtZSgiRXhwYW5zaW9uRmFjdG9yIikmJnIuc2V0QnlOYW1lKCJFeHBhbnNpb25GYWN0b3IiLC4wNiksIXIuZ2V0QnlOYW1lKCJTdWJycyIpKXJldHVybjtjb25zdCBnPXIuZ2V0QnlOYW1lKCJTdWJycyIpLG89aStnO2lmKDA9PT1nfHxvPj10aGlzLmJ5dGVzLmxlbmd0aClyZXR1cm4gdm9pZCB0aGlzLmVtcHR5UHJpdmF0ZURpY3Rpb25hcnkoQSk7Y29uc3QgST10aGlzLnBhcnNlSW5kZXgobyk7ci5zdWJyc0luZGV4PUkub2JqfXBhcnNlQ2hhcnNldHMoQSxlLHQsaSl7aWYoMD09PUEpcmV0dXJuIG5ldyB0YSghMCxlYS5JU09fQURPQkUsR2kpO2lmKDE9PT1BKXJldHVybiBuZXcgdGEoITAsZWEuRVhQRVJULE5pKTtpZigyPT09QSlyZXR1cm4gbmV3IHRhKCEwLGVhLkVYUEVSVF9TVUJTRVQseGkpO2NvbnN0IGE9dGhpcy5ieXRlcyxzPUEsbj1hW0ErK10scj1baT8wOiIubm90ZGVmIl07bGV0IGcsbyxJO3N3aXRjaChlLT0xLG4pe2Nhc2UgMDpmb3IoST0wO0k8ZTtJKyspZz1hW0ErK108PDh8YVtBKytdLHIucHVzaChpP2c6dC5nZXQoZykpO2JyZWFrO2Nhc2UgMTpmb3IoO3IubGVuZ3RoPD1lOylmb3IoZz1hW0ErK108PDh8YVtBKytdLG89YVtBKytdLEk9MDtJPD1vO0krKylyLnB1c2goaT9nKys6dC5nZXQoZysrKSk7YnJlYWs7Y2FzZSAyOmZvcig7ci5sZW5ndGg8PWU7KWZvcihnPWFbQSsrXTw8OHxhW0ErK10sbz1hW0ErK108PDh8YVtBKytdLEk9MDtJPD1vO0krKylyLnB1c2goaT9nKys6dC5nZXQoZysrKSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgVygiVW5rbm93biBjaGFyc2V0IGZvcm1hdCIpfWNvbnN0IGM9QSxoPWEuc3ViYXJyYXkocyxjKTtyZXR1cm4gbmV3IHRhKCExLG4scixoKX1wYXJzZUVuY29kaW5nKEEsZSx0LGkpe2NvbnN0IGE9T2JqZWN0LmNyZWF0ZShudWxsKSxzPXRoaXMuYnl0ZXM7bGV0IG4scixnLG89ITEsST1udWxsO2lmKDA9PT1BfHwxPT09QSl7bz0hMCxuPUE7Y29uc3QgZT1BP1VpOkppO2ZvcihyPTAsZz1pLmxlbmd0aDtyPGc7cisrKXtjb25zdCBBPWUuaW5kZXhPZihpW3JdKTstMSE9PUEmJihhW0FdPXIpfX1lbHNle2NvbnN0IGU9QTtzd2l0Y2gobj1zW0ErK10sMTI3Jm4pe2Nhc2UgMDpjb25zdCBlPXNbQSsrXTtmb3Iocj0xO3I8PWU7cisrKWFbc1tBKytdXT1yO2JyZWFrO2Nhc2UgMTpjb25zdCB0PXNbQSsrXTtsZXQgaT0xO2ZvcihyPTA7cjx0O3IrKyl7Y29uc3QgZT1zW0ErK10sdD1zW0ErK107Zm9yKGxldCBBPWU7QTw9ZSt0O0ErKylhW0FdPWkrK31icmVhaztkZWZhdWx0OnRocm93IG5ldyBXKGBVbmtub3duIGVuY29kaW5nIGZvcm1hdDogJHtufSBpbiBDRkZgKX1jb25zdCBnPUE7MTI4Jm4mJihzW2VdJj0xMjcsZnVuY3Rpb24oKXtjb25zdCBlPXNbQSsrXTtmb3Iocj0wO3I8ZTtyKyspe2NvbnN0IGU9c1tBKytdLG49KHNbQSsrXTw8OCkrKDI1NSZzW0ErK10pO2FbZV09aS5pbmRleE9mKHQuZ2V0KG4pKX19KCkpLEk9cy5zdWJhcnJheShlLGcpfXJldHVybiBuJj0xMjcsbmV3IGlhKG8sbixhLEkpfXBhcnNlRkRTZWxlY3QoQSxlKXtjb25zdCB0PXRoaXMuYnl0ZXMsaT10W0ErK10sYT1bXTtsZXQgcztzd2l0Y2goaSl7Y2FzZSAwOmZvcihzPTA7czxlOysrcyl7Y29uc3QgZT10W0ErK107YS5wdXNoKGUpfWJyZWFrO2Nhc2UgMzpjb25zdCBuPXRbQSsrXTw8OHx0W0ErK107Zm9yKHM9MDtzPG47KytzKXtsZXQgZT10W0ErK108PDh8dFtBKytdOzA9PT1zJiYwIT09ZSYmKFUoInBhcnNlRkRTZWxlY3Q6IFRoZSBmaXJzdCByYW5nZSBtdXN0IGhhdmUgYSBmaXJzdCBHSUQgb2YgMCAtLSB0cnlpbmcgdG8gcmVjb3Zlci4iKSxlPTApO2NvbnN0IGk9dFtBKytdLG49dFtBXTw8OHx0W0ErMV07Zm9yKGxldCBBPWU7QTxuOysrQSlhLnB1c2goaSl9QSs9MjticmVhaztkZWZhdWx0OnRocm93IG5ldyBXKGBwYXJzZUZEU2VsZWN0OiBVbmtub3duIGZvcm1hdCAiJHtpfSIuYCl9aWYoYS5sZW5ndGghPT1lKXRocm93IG5ldyBXKCJwYXJzZUZEU2VsZWN0OiBJbnZhbGlkIGZvbnQgZGF0YS4iKTtyZXR1cm4gbmV3IGFhKGksYSl9fWNsYXNzIE9pe2NvbnN0cnVjdG9yKCl7dGhpcy5oZWFkZXI9bnVsbCx0aGlzLm5hbWVzPVtdLHRoaXMudG9wRGljdD1udWxsLHRoaXMuc3RyaW5ncz1uZXcgamksdGhpcy5nbG9iYWxTdWJySW5kZXg9bnVsbCx0aGlzLmVuY29kaW5nPW51bGwsdGhpcy5jaGFyc2V0PW51bGwsdGhpcy5jaGFyU3RyaW5ncz1udWxsLHRoaXMuZmRBcnJheT1bXSx0aGlzLmZkU2VsZWN0PW51bGwsdGhpcy5pc0NJREZvbnQ9ITF9ZHVwbGljYXRlRmlyc3RHbHlwaCgpe2lmKHRoaXMuY2hhclN0cmluZ3MuY291bnQ+PTY1NTM1KXJldHVybiB2b2lkIFUoIk5vdCBlbm91Z2ggc3BhY2UgaW4gY2hhcnN0cmluZ3MgdG8gZHVwbGljYXRlIGZpcnN0IGdseXBoLiIpO2NvbnN0IEE9dGhpcy5jaGFyU3RyaW5ncy5nZXQoMCk7dGhpcy5jaGFyU3RyaW5ncy5hZGQoQSksdGhpcy5pc0NJREZvbnQmJnRoaXMuZmRTZWxlY3QuZmRTZWxlY3QucHVzaCh0aGlzLmZkU2VsZWN0LmZkU2VsZWN0WzBdKX1oYXNHbHlwaElkKEEpe3JldHVybiEoQTwwfHxBPj10aGlzLmNoYXJTdHJpbmdzLmNvdW50KSYmdGhpcy5jaGFyU3RyaW5ncy5nZXQoQSkubGVuZ3RoPjB9fWNsYXNzIFppe2NvbnN0cnVjdG9yKEEsZSx0LGkpe3RoaXMubWFqb3I9QSx0aGlzLm1pbm9yPWUsdGhpcy5oZHJTaXplPXQsdGhpcy5vZmZTaXplPWl9fWNsYXNzIGppe2NvbnN0cnVjdG9yKCl7dGhpcy5zdHJpbmdzPVtdfWdldChBKXtyZXR1cm4gQT49MCYmQTw9MzkwP3FpW0FdOkEtMzkxPD10aGlzLnN0cmluZ3MubGVuZ3RoP3RoaXMuc3RyaW5nc1tBLTM5MV06cWlbMF19Z2V0U0lEKEEpe2xldCBlPXFpLmluZGV4T2YoQSk7cmV0dXJuLTEhPT1lP2U6KGU9dGhpcy5zdHJpbmdzLmluZGV4T2YoQSksLTEhPT1lP2UrMzkxOi0xKX1hZGQoQSl7dGhpcy5zdHJpbmdzLnB1c2goQSl9Z2V0IGNvdW50KCl7cmV0dXJuIHRoaXMuc3RyaW5ncy5sZW5ndGh9fWNsYXNzIFhpe2NvbnN0cnVjdG9yKCl7dGhpcy5vYmplY3RzPVtdLHRoaXMubGVuZ3RoPTB9YWRkKEEpe3RoaXMubGVuZ3RoKz1BLmxlbmd0aCx0aGlzLm9iamVjdHMucHVzaChBKX1zZXQoQSxlKXt0aGlzLmxlbmd0aCs9ZS5sZW5ndGgtdGhpcy5vYmplY3RzW0FdLmxlbmd0aCx0aGlzLm9iamVjdHNbQV09ZX1nZXQoQSl7cmV0dXJuIHRoaXMub2JqZWN0c1tBXX1nZXQgY291bnQoKXtyZXR1cm4gdGhpcy5vYmplY3RzLmxlbmd0aH19Y2xhc3MgVml7Y29uc3RydWN0b3IoQSxlKXt0aGlzLmtleVRvTmFtZU1hcD1BLmtleVRvTmFtZU1hcCx0aGlzLm5hbWVUb0tleU1hcD1BLm5hbWVUb0tleU1hcCx0aGlzLmRlZmF1bHRzPUEuZGVmYXVsdHMsdGhpcy50eXBlcz1BLnR5cGVzLHRoaXMub3Bjb2Rlcz1BLm9wY29kZXMsdGhpcy5vcmRlcj1BLm9yZGVyLHRoaXMuc3RyaW5ncz1lLHRoaXMudmFsdWVzPU9iamVjdC5jcmVhdGUobnVsbCl9c2V0QnlLZXkoQSxlKXtpZighKEEgaW4gdGhpcy5rZXlUb05hbWVNYXApKXJldHVybiExO2lmKDA9PT1lLmxlbmd0aClyZXR1cm4hMDtmb3IoY29uc3QgdCBvZiBlKWlmKGlzTmFOKHQpKXJldHVybiBVKGBJbnZhbGlkIENGRkRpY3QgdmFsdWU6ICIke2V9IiBmb3Iga2V5ICIke0F9Ii5gKSwhMDtjb25zdCB0PXRoaXMudHlwZXNbQV07cmV0dXJuIm51bSIhPT10JiYic2lkIiE9PXQmJiJvZmZzZXQiIT09dHx8KGU9ZVswXSksdGhpcy52YWx1ZXNbQV09ZSwhMH1zZXRCeU5hbWUoQSxlKXtpZighKEEgaW4gdGhpcy5uYW1lVG9LZXlNYXApKXRocm93IG5ldyBXKGBJbnZhbGlkIGRpY3Rpb25hcnkgbmFtZSAiJHtBfSJgKTt0aGlzLnZhbHVlc1t0aGlzLm5hbWVUb0tleU1hcFtBXV09ZX1oYXNOYW1lKEEpe3JldHVybiB0aGlzLm5hbWVUb0tleU1hcFtBXWluIHRoaXMudmFsdWVzfWdldEJ5TmFtZShBKXtpZighKEEgaW4gdGhpcy5uYW1lVG9LZXlNYXApKXRocm93IG5ldyBXKGBJbnZhbGlkIGRpY3Rpb25hcnkgbmFtZSAke0F9ImApO2NvbnN0IGU9dGhpcy5uYW1lVG9LZXlNYXBbQV07cmV0dXJuIGUgaW4gdGhpcy52YWx1ZXM/dGhpcy52YWx1ZXNbZV06dGhpcy5kZWZhdWx0c1tlXX1yZW1vdmVCeU5hbWUoQSl7ZGVsZXRlIHRoaXMudmFsdWVzW3RoaXMubmFtZVRvS2V5TWFwW0FdXX1zdGF0aWMgY3JlYXRlVGFibGVzKEEpe2NvbnN0IGU9e2tleVRvTmFtZU1hcDp7fSxuYW1lVG9LZXlNYXA6e30sZGVmYXVsdHM6e30sdHlwZXM6e30sb3Bjb2Rlczp7fSxvcmRlcjpbXX07Zm9yKGNvbnN0IHQgb2YgQSl7Y29uc3QgQT1BcnJheS5pc0FycmF5KHRbMF0pPyh0WzBdWzBdPDw4KSt0WzBdWzFdOnRbMF07ZS5rZXlUb05hbWVNYXBbQV09dFsxXSxlLm5hbWVUb0tleU1hcFt0WzFdXT1BLGUudHlwZXNbQV09dFsyXSxlLmRlZmF1bHRzW0FdPXRbM10sZS5vcGNvZGVzW0FdPUFycmF5LmlzQXJyYXkodFswXSk/dFswXTpbdFswXV0sZS5vcmRlci5wdXNoKEEpfXJldHVybiBlfX1jb25zdCBfaT1bW1sxMiwzMF0sIlJPUyIsWyJzaWQiLCJzaWQiLCJudW0iXSxudWxsXSxbWzEyLDIwXSwiU3ludGhldGljQmFzZSIsIm51bSIsbnVsbF0sWzAsInZlcnNpb24iLCJzaWQiLG51bGxdLFsxLCJOb3RpY2UiLCJzaWQiLG51bGxdLFtbMTIsMF0sIkNvcHlyaWdodCIsInNpZCIsbnVsbF0sWzIsIkZ1bGxOYW1lIiwic2lkIixudWxsXSxbMywiRmFtaWx5TmFtZSIsInNpZCIsbnVsbF0sWzQsIldlaWdodCIsInNpZCIsbnVsbF0sW1sxMiwxXSwiaXNGaXhlZFBpdGNoIiwibnVtIiwwXSxbWzEyLDJdLCJJdGFsaWNBbmdsZSIsIm51bSIsMF0sW1sxMiwzXSwiVW5kZXJsaW5lUG9zaXRpb24iLCJudW0iLC0xMDBdLFtbMTIsNF0sIlVuZGVybGluZVRoaWNrbmVzcyIsIm51bSIsNTBdLFtbMTIsNV0sIlBhaW50VHlwZSIsIm51bSIsMF0sW1sxMiw2XSwiQ2hhcnN0cmluZ1R5cGUiLCJudW0iLDJdLFtbMTIsN10sIkZvbnRNYXRyaXgiLFsibnVtIiwibnVtIiwibnVtIiwibnVtIiwibnVtIiwibnVtIl0sWy4wMDEsMCwwLC4wMDEsMCwwXV0sWzEzLCJVbmlxdWVJRCIsIm51bSIsbnVsbF0sWzUsIkZvbnRCQm94IixbIm51bSIsIm51bSIsIm51bSIsIm51bSJdLFswLDAsMCwwXV0sW1sxMiw4XSwiU3Ryb2tlV2lkdGgiLCJudW0iLDBdLFsxNCwiWFVJRCIsImFycmF5IixudWxsXSxbMTUsImNoYXJzZXQiLCJvZmZzZXQiLDBdLFsxNiwiRW5jb2RpbmciLCJvZmZzZXQiLDBdLFsxNywiQ2hhclN0cmluZ3MiLCJvZmZzZXQiLDBdLFsxOCwiUHJpdmF0ZSIsWyJvZmZzZXQiLCJvZmZzZXQiXSxudWxsXSxbWzEyLDIxXSwiUG9zdFNjcmlwdCIsInNpZCIsbnVsbF0sW1sxMiwyMl0sIkJhc2VGb250TmFtZSIsInNpZCIsbnVsbF0sW1sxMiwyM10sIkJhc2VGb250QmxlbmQiLCJkZWx0YSIsbnVsbF0sW1sxMiwzMV0sIkNJREZvbnRWZXJzaW9uIiwibnVtIiwwXSxbWzEyLDMyXSwiQ0lERm9udFJldmlzaW9uIiwibnVtIiwwXSxbWzEyLDMzXSwiQ0lERm9udFR5cGUiLCJudW0iLDBdLFtbMTIsMzRdLCJDSURDb3VudCIsIm51bSIsODcyMF0sW1sxMiwzNV0sIlVJREJhc2UiLCJudW0iLG51bGxdLFtbMTIsMzddLCJGRFNlbGVjdCIsIm9mZnNldCIsbnVsbF0sW1sxMiwzNl0sIkZEQXJyYXkiLCJvZmZzZXQiLG51bGxdLFtbMTIsMzhdLCJGb250TmFtZSIsInNpZCIsbnVsbF1dO2NsYXNzIHppIGV4dGVuZHMgVml7c3RhdGljIGdldCB0YWJsZXMoKXtyZXR1cm4gSCh0aGlzLCJ0YWJsZXMiLHRoaXMuY3JlYXRlVGFibGVzKF9pKSl9Y29uc3RydWN0b3IoQSl7c3VwZXIoemkudGFibGVzLEEpLHRoaXMucHJpdmF0ZURpY3Q9bnVsbH19Y29uc3QgJGk9W1s2LCJCbHVlVmFsdWVzIiwiZGVsdGEiLG51bGxdLFs3LCJPdGhlckJsdWVzIiwiZGVsdGEiLG51bGxdLFs4LCJGYW1pbHlCbHVlcyIsImRlbHRhIixudWxsXSxbOSwiRmFtaWx5T3RoZXJCbHVlcyIsImRlbHRhIixudWxsXSxbWzEyLDldLCJCbHVlU2NhbGUiLCJudW0iLC4wMzk2MjVdLFtbMTIsMTBdLCJCbHVlU2hpZnQiLCJudW0iLDddLFtbMTIsMTFdLCJCbHVlRnV6eiIsIm51bSIsMV0sWzEwLCJTdGRIVyIsIm51bSIsbnVsbF0sWzExLCJTdGRWVyIsIm51bSIsbnVsbF0sW1sxMiwxMl0sIlN0ZW1TbmFwSCIsImRlbHRhIixudWxsXSxbWzEyLDEzXSwiU3RlbVNuYXBWIiwiZGVsdGEiLG51bGxdLFtbMTIsMTRdLCJGb3JjZUJvbGQiLCJudW0iLDBdLFtbMTIsMTddLCJMYW5ndWFnZUdyb3VwIiwibnVtIiwwXSxbWzEyLDE4XSwiRXhwYW5zaW9uRmFjdG9yIiwibnVtIiwuMDZdLFtbMTIsMTldLCJpbml0aWFsUmFuZG9tU2VlZCIsIm51bSIsMF0sWzIwLCJkZWZhdWx0V2lkdGhYIiwibnVtIiwwXSxbMjEsIm5vbWluYWxXaWR0aFgiLCJudW0iLDBdLFsxOSwiU3VicnMiLCJvZmZzZXQiLG51bGxdXTtjbGFzcyBBYSBleHRlbmRzIFZpe3N0YXRpYyBnZXQgdGFibGVzKCl7cmV0dXJuIEgodGhpcywidGFibGVzIix0aGlzLmNyZWF0ZVRhYmxlcygkaSkpfWNvbnN0cnVjdG9yKEEpe3N1cGVyKEFhLnRhYmxlcyxBKSx0aGlzLnN1YnJzSW5kZXg9bnVsbH19Y29uc3QgZWE9e0lTT19BRE9CRTowLEVYUEVSVDoxLEVYUEVSVF9TVUJTRVQ6Mn07Y2xhc3MgdGF7Y29uc3RydWN0b3IoQSxlLHQsaSl7dGhpcy5wcmVkZWZpbmVkPUEsdGhpcy5mb3JtYXQ9ZSx0aGlzLmNoYXJzZXQ9dCx0aGlzLnJhdz1pfX1jbGFzcyBpYXtjb25zdHJ1Y3RvcihBLGUsdCxpKXt0aGlzLnByZWRlZmluZWQ9QSx0aGlzLmZvcm1hdD1lLHRoaXMuZW5jb2Rpbmc9dCx0aGlzLnJhdz1pfX1jbGFzcyBhYXtjb25zdHJ1Y3RvcihBLGUpe3RoaXMuZm9ybWF0PUEsdGhpcy5mZFNlbGVjdD1lfWdldEZESW5kZXgoQSl7cmV0dXJuIEE8MHx8QT49dGhpcy5mZFNlbGVjdC5sZW5ndGg/LTE6dGhpcy5mZFNlbGVjdFtBXX19Y2xhc3Mgc2F7Y29uc3RydWN0b3IoKXt0aGlzLm9mZnNldHM9T2JqZWN0LmNyZWF0ZShudWxsKX1pc1RyYWNraW5nKEEpe3JldHVybiBBIGluIHRoaXMub2Zmc2V0c310cmFjayhBLGUpe2lmKEEgaW4gdGhpcy5vZmZzZXRzKXRocm93IG5ldyBXKGBBbHJlYWR5IHRyYWNraW5nIGxvY2F0aW9uIG9mICR7QX1gKTt0aGlzLm9mZnNldHNbQV09ZX1vZmZzZXQoQSl7Zm9yKGNvbnN0IGUgaW4gdGhpcy5vZmZzZXRzKXRoaXMub2Zmc2V0c1tlXSs9QX1zZXRFbnRyeUxvY2F0aW9uKEEsZSx0KXtpZighKEEgaW4gdGhpcy5vZmZzZXRzKSl0aHJvdyBuZXcgVyhgTm90IHRyYWNraW5nIGxvY2F0aW9uIG9mICR7QX1gKTtjb25zdCBpPXQuZGF0YSxhPXRoaXMub2Zmc2V0c1tBXTtmb3IobGV0IEE9MCx0PWUubGVuZ3RoO0E8dDsrK0Epe2NvbnN0IHQ9NSpBK2Escz10KzEsbj10KzIscj10KzMsZz10KzQ7aWYoMjkhPT1pW3RdfHwwIT09aVtzXXx8MCE9PWlbbl18fDAhPT1pW3JdfHwwIT09aVtnXSl0aHJvdyBuZXcgVygid3JpdGluZyB0byBhbiBvZmZzZXQgdGhhdCBpcyBub3QgZW1wdHkiKTtjb25zdCBvPWVbQV07aVt0XT0yOSxpW3NdPW8+PjI0JjI1NSxpW25dPW8+PjE2JjI1NSxpW3JdPW8+PjgmMjU1LGlbZ109MjU1Jm99fX1jbGFzcyBuYXtjb25zdHJ1Y3RvcihBKXt0aGlzLmNmZj1BfWNvbXBpbGUoKXtjb25zdCBBPXRoaXMuY2ZmLGU9e2RhdGE6W10sbGVuZ3RoOjAsYWRkKEEpe3RyeXt0aGlzLmRhdGEucHVzaCguLi5BKX1jYXRjaHt0aGlzLmRhdGE9dGhpcy5kYXRhLmNvbmNhdChBKX10aGlzLmxlbmd0aD10aGlzLmRhdGEubGVuZ3RofX0sdD10aGlzLmNvbXBpbGVIZWFkZXIoQS5oZWFkZXIpO2UuYWRkKHQpO2NvbnN0IGk9dGhpcy5jb21waWxlTmFtZUluZGV4KEEubmFtZXMpO2lmKGUuYWRkKGkpLEEuaXNDSURGb250JiZBLnRvcERpY3QuaGFzTmFtZSgiRm9udE1hdHJpeCIpKXtjb25zdCBlPUEudG9wRGljdC5nZXRCeU5hbWUoIkZvbnRNYXRyaXgiKTtBLnRvcERpY3QucmVtb3ZlQnlOYW1lKCJGb250TWF0cml4Iik7Zm9yKGNvbnN0IHQgb2YgQS5mZEFycmF5KXtsZXQgQT1lLnNsaWNlKDApO3QuaGFzTmFtZSgiRm9udE1hdHJpeCIpJiYoQT0kLnRyYW5zZm9ybShBLHQuZ2V0QnlOYW1lKCJGb250TWF0cml4IikpKSx0LnNldEJ5TmFtZSgiRm9udE1hdHJpeCIsQSl9fWNvbnN0IGE9QS50b3BEaWN0LmdldEJ5TmFtZSgiWFVJRCIpO2E/Lmxlbmd0aD4xNiYmQS50b3BEaWN0LnJlbW92ZUJ5TmFtZSgiWFVJRCIpLEEudG9wRGljdC5zZXRCeU5hbWUoImNoYXJzZXQiLDApO2xldCBzPXRoaXMuY29tcGlsZVRvcERpY3RzKFtBLnRvcERpY3RdLGUubGVuZ3RoLEEuaXNDSURGb250KTtlLmFkZChzLm91dHB1dCk7Y29uc3Qgbj1zLnRyYWNrZXJzWzBdLHI9dGhpcy5jb21waWxlU3RyaW5nSW5kZXgoQS5zdHJpbmdzLnN0cmluZ3MpO2UuYWRkKHIpO2NvbnN0IGc9dGhpcy5jb21waWxlSW5kZXgoQS5nbG9iYWxTdWJySW5kZXgpO2lmKGUuYWRkKGcpLEEuZW5jb2RpbmcmJkEudG9wRGljdC5oYXNOYW1lKCJFbmNvZGluZyIpKWlmKEEuZW5jb2RpbmcucHJlZGVmaW5lZCluLnNldEVudHJ5TG9jYXRpb24oIkVuY29kaW5nIixbQS5lbmNvZGluZy5mb3JtYXRdLGUpO2Vsc2V7Y29uc3QgdD10aGlzLmNvbXBpbGVFbmNvZGluZyhBLmVuY29kaW5nKTtuLnNldEVudHJ5TG9jYXRpb24oIkVuY29kaW5nIixbZS5sZW5ndGhdLGUpLGUuYWRkKHQpfWNvbnN0IG89dGhpcy5jb21waWxlQ2hhcnNldChBLmNoYXJzZXQsQS5jaGFyU3RyaW5ncy5jb3VudCxBLnN0cmluZ3MsQS5pc0NJREZvbnQpO24uc2V0RW50cnlMb2NhdGlvbigiY2hhcnNldCIsW2UubGVuZ3RoXSxlKSxlLmFkZChvKTtjb25zdCBJPXRoaXMuY29tcGlsZUNoYXJTdHJpbmdzKEEuY2hhclN0cmluZ3MpO2lmKG4uc2V0RW50cnlMb2NhdGlvbigiQ2hhclN0cmluZ3MiLFtlLmxlbmd0aF0sZSksZS5hZGQoSSksQS5pc0NJREZvbnQpe24uc2V0RW50cnlMb2NhdGlvbigiRkRTZWxlY3QiLFtlLmxlbmd0aF0sZSk7Y29uc3QgdD10aGlzLmNvbXBpbGVGRFNlbGVjdChBLmZkU2VsZWN0KTtlLmFkZCh0KSxzPXRoaXMuY29tcGlsZVRvcERpY3RzKEEuZmRBcnJheSxlLmxlbmd0aCwhMCksbi5zZXRFbnRyeUxvY2F0aW9uKCJGREFycmF5IixbZS5sZW5ndGhdLGUpLGUuYWRkKHMub3V0cHV0KTtjb25zdCBpPXMudHJhY2tlcnM7dGhpcy5jb21waWxlUHJpdmF0ZURpY3RzKEEuZmRBcnJheSxpLGUpfXJldHVybiB0aGlzLmNvbXBpbGVQcml2YXRlRGljdHMoW0EudG9wRGljdF0sW25dLGUpLGUuYWRkKFswXSksZS5kYXRhfWVuY29kZU51bWJlcihBKXtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihBKT90aGlzLmVuY29kZUludGVnZXIoQSk6dGhpcy5lbmNvZGVGbG9hdChBKX1zdGF0aWMgZ2V0IEVuY29kZUZsb2F0UmVnRXhwKCl7cmV0dXJuIEgodGhpcywiRW5jb2RlRmxvYXRSZWdFeHAiLC9cLihcZCo/KSg/Ojl7NSwyMH18MHs1LDIwfSlcZHswLDJ9KD86ZSguKyl8JCkvKX1lbmNvZGVGbG9hdChBKXtsZXQgZT1BLnRvU3RyaW5nKCk7Y29uc3QgdD1uYS5FbmNvZGVGbG9hdFJlZ0V4cC5leGVjKGUpO2lmKHQpe2NvbnN0IGk9cGFyc2VGbG9hdCgiMWUiKygodFsyXT8rdFsyXTowKSt0WzFdLmxlbmd0aCkpO2U9KE1hdGgucm91bmQoQSppKS9pKS50b1N0cmluZygpfWxldCBpLGEscz0iIjtmb3IoaT0wLGE9ZS5sZW5ndGg7aTxhOysraSl7Y29uc3QgQT1lW2ldO3MrPSJlIj09PUE/Ii0iPT09ZVsrK2ldPyJjIjoiYiI6Ii4iPT09QT8iYSI6Ii0iPT09QT8iZSI6QX1zKz0xJnMubGVuZ3RoPyJmIjoiZmYiO2NvbnN0IG49WzMwXTtmb3IoaT0wLGE9cy5sZW5ndGg7aTxhO2krPTIpbi5wdXNoKHBhcnNlSW50KHMuc3Vic3RyaW5nKGksaSsyKSwxNikpO3JldHVybiBufWVuY29kZUludGVnZXIoQSl7bGV0IGU7cmV0dXJuIGU9QT49LTEwNyYmQTw9MTA3P1tBKzEzOV06QT49MTA4JiZBPD0xMTMxP1syNDcrKChBLT0xMDgpPj44KSwyNTUmQV06QT49LTExMzEmJkE8PS0xMDg/WzI1MSsoKEE9LUEtMTA4KT4+OCksMjU1JkFdOkE+PS0zMjc2OCYmQTw9MzI3Njc/WzI4LEE+PjgmMjU1LDI1NSZBXTpbMjksQT4+MjQmMjU1LEE+PjE2JjI1NSxBPj44JjI1NSwyNTUmQV0sZX1jb21waWxlSGVhZGVyKEEpe3JldHVybltBLm1ham9yLEEubWlub3IsNCxBLm9mZlNpemVdfWNvbXBpbGVOYW1lSW5kZXgoQSl7Y29uc3QgZT1uZXcgWGk7Zm9yKGNvbnN0IHQgb2YgQSl7Y29uc3QgQT1NYXRoLm1pbih0Lmxlbmd0aCwxMjcpO2xldCBpPW5ldyBBcnJheShBKTtmb3IobGV0IGU9MDtlPEE7ZSsrKXtsZXQgQT10W2VdOyhBPCIhInx8QT4ifiJ8fCJbIj09PUF8fCJdIj09PUF8fCIoIj09PUF8fCIpIj09PUF8fCJ7Ij09PUF8fCJ9Ij09PUF8fCI8Ij09PUF8fCI+Ij09PUF8fCIvIj09PUF8fCIlIj09PUEpJiYoQT0iXyIpLGlbZV09QX1pPWkuam9pbigiIiksIiI9PT1pJiYoaT0iQmFkX0ZvbnRfTmFtZSIpLGUuYWRkKGooaSkpfXJldHVybiB0aGlzLmNvbXBpbGVJbmRleChlKX1jb21waWxlVG9wRGljdHMoQSxlLHQpe2NvbnN0IGk9W107bGV0IGE9bmV3IFhpO2Zvcihjb25zdCBzIG9mIEEpe3QmJihzLnJlbW92ZUJ5TmFtZSgiQ0lERm9udFZlcnNpb24iKSxzLnJlbW92ZUJ5TmFtZSgiQ0lERm9udFJldmlzaW9uIikscy5yZW1vdmVCeU5hbWUoIkNJREZvbnRUeXBlIikscy5yZW1vdmVCeU5hbWUoIkNJRENvdW50Iikscy5yZW1vdmVCeU5hbWUoIlVJREJhc2UiKSk7Y29uc3QgQT1uZXcgc2Esbj10aGlzLmNvbXBpbGVEaWN0KHMsQSk7aS5wdXNoKEEpLGEuYWRkKG4pLEEub2Zmc2V0KGUpfXJldHVybiBhPXRoaXMuY29tcGlsZUluZGV4KGEsaSkse3RyYWNrZXJzOmksb3V0cHV0OmF9fWNvbXBpbGVQcml2YXRlRGljdHMoQSxlLHQpe2ZvcihsZXQgaT0wLGE9QS5sZW5ndGg7aTxhOysraSl7Y29uc3QgYT1BW2ldLHM9YS5wcml2YXRlRGljdDtpZighc3x8IWEuaGFzTmFtZSgiUHJpdmF0ZSIpKXRocm93IG5ldyBXKCJUaGVyZSBtdXN0IGJlIGEgcHJpdmF0ZSBkaWN0aW9uYXJ5LiIpO2NvbnN0IG49bmV3IHNhLHI9dGhpcy5jb21waWxlRGljdChzLG4pO2xldCBnPXQubGVuZ3RoO2lmKG4ub2Zmc2V0KGcpLHIubGVuZ3RofHwoZz0wKSxlW2ldLnNldEVudHJ5TG9jYXRpb24oIlByaXZhdGUiLFtyLmxlbmd0aCxnXSx0KSx0LmFkZChyKSxzLnN1YnJzSW5kZXgmJnMuaGFzTmFtZSgiU3VicnMiKSl7Y29uc3QgQT10aGlzLmNvbXBpbGVJbmRleChzLnN1YnJzSW5kZXgpO24uc2V0RW50cnlMb2NhdGlvbigiU3VicnMiLFtyLmxlbmd0aF0sdCksdC5hZGQoQSl9fX1jb21waWxlRGljdChBLGUpe2NvbnN0IHQ9W107Zm9yKGNvbnN0IGkgb2YgQS5vcmRlcil7aWYoIShpIGluIEEudmFsdWVzKSljb250aW51ZTtsZXQgYT1BLnZhbHVlc1tpXSxzPUEudHlwZXNbaV07aWYoQXJyYXkuaXNBcnJheShzKXx8KHM9W3NdKSxBcnJheS5pc0FycmF5KGEpfHwoYT1bYV0pLDAhPT1hLmxlbmd0aCl7Zm9yKGxldCBuPTAscj1zLmxlbmd0aDtuPHI7KytuKXtjb25zdCByPXNbbl0sZz1hW25dO3N3aXRjaChyKXtjYXNlIm51bSI6Y2FzZSJzaWQiOnQucHVzaCguLi50aGlzLmVuY29kZU51bWJlcihnKSk7YnJlYWs7Y2FzZSJvZmZzZXQiOmNvbnN0IHM9QS5rZXlUb05hbWVNYXBbaV07ZS5pc1RyYWNraW5nKHMpfHxlLnRyYWNrKHMsdC5sZW5ndGgpLHQucHVzaCgyOSwwLDAsMCwwKTticmVhaztjYXNlImFycmF5IjpjYXNlImRlbHRhIjp0LnB1c2goLi4udGhpcy5lbmNvZGVOdW1iZXIoZykpO2ZvcihsZXQgQT0xLGU9YS5sZW5ndGg7QTxlOysrQSl0LnB1c2goLi4udGhpcy5lbmNvZGVOdW1iZXIoYVtBXSkpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IFcoYFVua25vd24gZGF0YSB0eXBlIG9mICR7cn1gKX19dC5wdXNoKC4uLkEub3Bjb2Rlc1tpXSl9fXJldHVybiB0fWNvbXBpbGVTdHJpbmdJbmRleChBKXtjb25zdCBlPW5ldyBYaTtmb3IoY29uc3QgdCBvZiBBKWUuYWRkKGoodCkpO3JldHVybiB0aGlzLmNvbXBpbGVJbmRleChlKX1jb21waWxlQ2hhclN0cmluZ3MoQSl7Y29uc3QgZT1uZXcgWGk7Zm9yKGxldCB0PTA7dDxBLmNvdW50O3QrKyl7Y29uc3QgaT1BLmdldCh0KTswIT09aS5sZW5ndGg/ZS5hZGQoaSk6ZS5hZGQobmV3IFVpbnQ4QXJyYXkoWzEzOSwxNF0pKX1yZXR1cm4gdGhpcy5jb21waWxlSW5kZXgoZSl9Y29tcGlsZUNoYXJzZXQoQSxlLHQsaSl7bGV0IGE7Y29uc3Qgcz1lLTE7aWYoaSlhPW5ldyBVaW50OEFycmF5KFsyLDAsMCxzPj44JjI1NSwyNTUmc10pO2Vsc2V7YT1uZXcgVWludDhBcnJheSgxKzIqcyksYVswXT0wO2xldCBlPTA7Y29uc3QgaT1BLmNoYXJzZXQubGVuZ3RoO2xldCBuPSExO2ZvcihsZXQgcz0xO3M8YS5sZW5ndGg7cys9Mil7bGV0IHI9MDtpZihlPGkpe2NvbnN0IGk9QS5jaGFyc2V0W2UrK107cj10LmdldFNJRChpKSwtMT09PXImJihyPTAsbnx8KG49ITAsVShgQ291bGRuJ3QgZmluZCAke2l9IGluIENGRiBzdHJpbmdzYCkpKX1hW3NdPXI+PjgmMjU1LGFbcysxXT0yNTUmcn19cmV0dXJuIHRoaXMuY29tcGlsZVR5cGVkQXJyYXkoYSl9Y29tcGlsZUVuY29kaW5nKEEpe3JldHVybiB0aGlzLmNvbXBpbGVUeXBlZEFycmF5KEEucmF3KX1jb21waWxlRkRTZWxlY3QoQSl7Y29uc3QgZT1BLmZvcm1hdDtsZXQgdCxpO3N3aXRjaChlKXtjYXNlIDA6Zm9yKHQ9bmV3IFVpbnQ4QXJyYXkoMStBLmZkU2VsZWN0Lmxlbmd0aCksdFswXT1lLGk9MDtpPEEuZmRTZWxlY3QubGVuZ3RoO2krKyl0W2krMV09QS5mZFNlbGVjdFtpXTticmVhaztjYXNlIDM6Y29uc3QgYT0wO2xldCBzPUEuZmRTZWxlY3RbMF07Y29uc3Qgbj1bZSwwLDAsYT4+OCYyNTUsMjU1JmEsc107Zm9yKGk9MTtpPEEuZmRTZWxlY3QubGVuZ3RoO2krKyl7Y29uc3QgZT1BLmZkU2VsZWN0W2ldO2UhPT1zJiYobi5wdXNoKGk+PjgmMjU1LDI1NSZpLGUpLHM9ZSl9Y29uc3Qgcj0obi5sZW5ndGgtMykvMztuWzFdPXI+PjgmMjU1LG5bMl09MjU1JnIsbi5wdXNoKGk+PjgmMjU1LDI1NSZpKSx0PW5ldyBVaW50OEFycmF5KG4pfXJldHVybiB0aGlzLmNvbXBpbGVUeXBlZEFycmF5KHQpfWNvbXBpbGVUeXBlZEFycmF5KEEpe3JldHVybiBBcnJheS5mcm9tKEEpfWNvbXBpbGVJbmRleChBLGU9W10pe2NvbnN0IHQ9QS5vYmplY3RzLGk9dC5sZW5ndGg7aWYoMD09PWkpcmV0dXJuWzAsMF07Y29uc3QgYT1baT4+OCYyNTUsMjU1JmldO2xldCBzLG4scj0xO2ZvcihzPTA7czxpOysrcylyKz10W3NdLmxlbmd0aDtuPXI8MjU2PzE6cjw2NTUzNj8yOnI8MTY3NzcyMTY/Mzo0LGEucHVzaChuKTtsZXQgZz0xO2ZvcihzPTA7czxpKzE7cysrKTE9PT1uP2EucHVzaCgyNTUmZyk6Mj09PW4/YS5wdXNoKGc+PjgmMjU1LDI1NSZnKTozPT09bj9hLnB1c2goZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnKTphLnB1c2goZz4+PjI0JjI1NSxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcpLHRbc10mJihnKz10W3NdLmxlbmd0aCk7Zm9yKHM9MDtzPGk7cysrKWVbc10mJmVbc10ub2Zmc2V0KGEubGVuZ3RoKSxhLnB1c2goLi4udFtzXSk7cmV0dXJuIGF9fWNvbnN0IHJhPWJBKChmdW5jdGlvbihBKXtBLkE9NjUsQS5BRT0xOTgsQS5BRWFjdXRlPTUwOCxBLkFFbWFjcm9uPTQ4MixBLkFFc21hbGw9NjM0NjIsQS5BYWN1dGU9MTkzLEEuQWFjdXRlc21hbGw9NjM0NTcsQS5BYnJldmU9MjU4LEEuQWJyZXZlYWN1dGU9Nzg1NCxBLkFicmV2ZWN5cmlsbGljPTEyMzIsQS5BYnJldmVkb3RiZWxvdz03ODYyLEEuQWJyZXZlZ3JhdmU9Nzg1NixBLkFicmV2ZWhvb2thYm92ZT03ODU4LEEuQWJyZXZldGlsZGU9Nzg2MCxBLkFjYXJvbj00NjEsQS5BY2lyY2xlPTkzOTgsQS5BY2lyY3VtZmxleD0xOTQsQS5BY2lyY3VtZmxleGFjdXRlPTc4NDQsQS5BY2lyY3VtZmxleGRvdGJlbG93PTc4NTIsQS5BY2lyY3VtZmxleGdyYXZlPTc4NDYsQS5BY2lyY3VtZmxleGhvb2thYm92ZT03ODQ4LEEuQWNpcmN1bWZsZXhzbWFsbD02MzQ1OCxBLkFjaXJjdW1mbGV4dGlsZGU9Nzg1MCxBLkFjdXRlPTYzMTc3LEEuQWN1dGVzbWFsbD02MzQxMixBLkFjeXJpbGxpYz0xMDQwLEEuQWRibGdyYXZlPTUxMixBLkFkaWVyZXNpcz0xOTYsQS5BZGllcmVzaXNjeXJpbGxpYz0xMjM0LEEuQWRpZXJlc2lzbWFjcm9uPTQ3OCxBLkFkaWVyZXNpc3NtYWxsPTYzNDYwLEEuQWRvdGJlbG93PTc4NDAsQS5BZG90bWFjcm9uPTQ4MCxBLkFncmF2ZT0xOTIsQS5BZ3JhdmVzbWFsbD02MzQ1NixBLkFob29rYWJvdmU9Nzg0MixBLkFpZWN5cmlsbGljPTEyMzYsQS5BaW52ZXJ0ZWRicmV2ZT01MTQsQS5BbHBoYT05MTMsQS5BbHBoYXRvbm9zPTkwMixBLkFtYWNyb249MjU2LEEuQW1vbm9zcGFjZT02NTMxMyxBLkFvZ29uZWs9MjYwLEEuQXJpbmc9MTk3LEEuQXJpbmdhY3V0ZT01MDYsQS5BcmluZ2JlbG93PTc2ODAsQS5BcmluZ3NtYWxsPTYzNDYxLEEuQXNtYWxsPTYzMzI5LEEuQXRpbGRlPTE5NSxBLkF0aWxkZXNtYWxsPTYzNDU5LEEuQXliYXJtZW5pYW49MTMyOSxBLkI9NjYsQS5CY2lyY2xlPTkzOTksQS5CZG90YWNjZW50PTc2ODIsQS5CZG90YmVsb3c9NzY4NCxBLkJlY3lyaWxsaWM9MTA0MSxBLkJlbmFybWVuaWFuPTEzMzAsQS5CZXRhPTkxNCxBLkJob29rPTM4NSxBLkJsaW5lYmVsb3c9NzY4NixBLkJtb25vc3BhY2U9NjUzMTQsQS5CcmV2ZXNtYWxsPTYzMjIwLEEuQnNtYWxsPTYzMzMwLEEuQnRvcGJhcj0zODYsQS5DPTY3LEEuQ2Fhcm1lbmlhbj0xMzQyLEEuQ2FjdXRlPTI2MixBLkNhcm9uPTYzMTc4LEEuQ2Fyb25zbWFsbD02MzIyMSxBLkNjYXJvbj0yNjgsQS5DY2VkaWxsYT0xOTksQS5DY2VkaWxsYWFjdXRlPTc2ODgsQS5DY2VkaWxsYXNtYWxsPTYzNDYzLEEuQ2NpcmNsZT05NDAwLEEuQ2NpcmN1bWZsZXg9MjY0LEEuQ2RvdD0yNjYsQS5DZG90YWNjZW50PTI2NixBLkNlZGlsbGFzbWFsbD02MzQxNixBLkNoYWFybWVuaWFuPTEzNTMsQS5DaGVhYmtoYXNpYW5jeXJpbGxpYz0xMjEyLEEuQ2hlY3lyaWxsaWM9MTA2MyxBLkNoZWRlc2NlbmRlcmFia2hhc2lhbmN5cmlsbGljPTEyMTQsQS5DaGVkZXNjZW5kZXJjeXJpbGxpYz0xMjA2LEEuQ2hlZGllcmVzaXNjeXJpbGxpYz0xMjY4LEEuQ2hlaGFybWVuaWFuPTEzNDcsQS5DaGVraGFrYXNzaWFuY3lyaWxsaWM9MTIyNyxBLkNoZXZlcnRpY2Fsc3Ryb2tlY3lyaWxsaWM9MTIwOCxBLkNoaT05MzUsQS5DaG9vaz0zOTEsQS5DaXJjdW1mbGV4c21hbGw9NjMyMjIsQS5DbW9ub3NwYWNlPTY1MzE1LEEuQ29hcm1lbmlhbj0xMzYxLEEuQ3NtYWxsPTYzMzMxLEEuRD02OCxBLkRaPTQ5NyxBLkRaY2Fyb249NDUyLEEuRGFhcm1lbmlhbj0xMzMyLEEuRGFmcmljYW49MzkzLEEuRGNhcm9uPTI3MCxBLkRjZWRpbGxhPTc2OTYsQS5EY2lyY2xlPTk0MDEsQS5EY2lyY3VtZmxleGJlbG93PTc2OTgsQS5EY3JvYXQ9MjcyLEEuRGRvdGFjY2VudD03NjkwLEEuRGRvdGJlbG93PTc2OTIsQS5EZWN5cmlsbGljPTEwNDQsQS5EZWljb3B0aWM9MTAwNixBLkRlbHRhPTg3MTAsQS5EZWx0YWdyZWVrPTkxNixBLkRob29rPTM5NCxBLkRpZXJlc2lzPTYzMTc5LEEuRGllcmVzaXNBY3V0ZT02MzE4MCxBLkRpZXJlc2lzR3JhdmU9NjMxODEsQS5EaWVyZXNpc3NtYWxsPTYzNDAwLEEuRGlnYW1tYWdyZWVrPTk4OCxBLkRqZWN5cmlsbGljPTEwMjYsQS5EbGluZWJlbG93PTc2OTQsQS5EbW9ub3NwYWNlPTY1MzE2LEEuRG90YWNjZW50c21hbGw9NjMyMjMsQS5Ec2xhc2g9MjcyLEEuRHNtYWxsPTYzMzMyLEEuRHRvcGJhcj0zOTUsQS5Eej00OTgsQS5EemNhcm9uPTQ1MyxBLkR6ZWFia2hhc2lhbmN5cmlsbGljPTEyNDgsQS5EemVjeXJpbGxpYz0xMDI5LEEuRHpoZWN5cmlsbGljPTEwMzksQS5FPTY5LEEuRWFjdXRlPTIwMSxBLkVhY3V0ZXNtYWxsPTYzNDY1LEEuRWJyZXZlPTI3NixBLkVjYXJvbj0yODIsQS5FY2VkaWxsYWJyZXZlPTc3MDgsQS5FY2hhcm1lbmlhbj0xMzMzLEEuRWNpcmNsZT05NDAyLEEuRWNpcmN1bWZsZXg9MjAyLEEuRWNpcmN1bWZsZXhhY3V0ZT03ODcwLEEuRWNpcmN1bWZsZXhiZWxvdz03NzA0LEEuRWNpcmN1bWZsZXhkb3RiZWxvdz03ODc4LEEuRWNpcmN1bWZsZXhncmF2ZT03ODcyLEEuRWNpcmN1bWZsZXhob29rYWJvdmU9Nzg3NCxBLkVjaXJjdW1mbGV4c21hbGw9NjM0NjYsQS5FY2lyY3VtZmxleHRpbGRlPTc4NzYsQS5FY3lyaWxsaWM9MTAyOCxBLkVkYmxncmF2ZT01MTYsQS5FZGllcmVzaXM9MjAzLEEuRWRpZXJlc2lzc21hbGw9NjM0NjcsQS5FZG90PTI3OCxBLkVkb3RhY2NlbnQ9Mjc4LEEuRWRvdGJlbG93PTc4NjQsQS5FZmN5cmlsbGljPTEwNjAsQS5FZ3JhdmU9MjAwLEEuRWdyYXZlc21hbGw9NjM0NjQsQS5FaGFybWVuaWFuPTEzMzUsQS5FaG9va2Fib3ZlPTc4NjYsQS5FaWdodHJvbWFuPTg1NTEsQS5FaW52ZXJ0ZWRicmV2ZT01MTgsQS5FaW90aWZpZWRjeXJpbGxpYz0xMTI0LEEuRWxjeXJpbGxpYz0xMDUxLEEuRWxldmVucm9tYW49ODU1NCxBLkVtYWNyb249Mjc0LEEuRW1hY3JvbmFjdXRlPTc3MDIsQS5FbWFjcm9uZ3JhdmU9NzcwMCxBLkVtY3lyaWxsaWM9MTA1MixBLkVtb25vc3BhY2U9NjUzMTcsQS5FbmN5cmlsbGljPTEwNTMsQS5FbmRlc2NlbmRlcmN5cmlsbGljPTExODYsQS5Fbmc9MzMwLEEuRW5naGVjeXJpbGxpYz0xMTg4LEEuRW5ob29rY3lyaWxsaWM9MTIyMyxBLkVvZ29uZWs9MjgwLEEuRW9wZW49NDAwLEEuRXBzaWxvbj05MTcsQS5FcHNpbG9udG9ub3M9OTA0LEEuRXJjeXJpbGxpYz0xMDU2LEEuRXJldmVyc2VkPTM5OCxBLkVyZXZlcnNlZGN5cmlsbGljPTEwNjksQS5Fc2N5cmlsbGljPTEwNTcsQS5Fc2Rlc2NlbmRlcmN5cmlsbGljPTExOTQsQS5Fc2g9NDI1LEEuRXNtYWxsPTYzMzMzLEEuRXRhPTkxOSxBLkV0YXJtZW5pYW49MTMzNixBLkV0YXRvbm9zPTkwNSxBLkV0aD0yMDgsQS5FdGhzbWFsbD02MzQ3MixBLkV0aWxkZT03ODY4LEEuRXRpbGRlYmVsb3c9NzcwNixBLkV1cm89ODM2NCxBLkV6aD00MzksQS5FemhjYXJvbj00OTQsQS5FemhyZXZlcnNlZD00NDAsQS5GPTcwLEEuRmNpcmNsZT05NDAzLEEuRmRvdGFjY2VudD03NzEwLEEuRmVoYXJtZW5pYW49MTM2NixBLkZlaWNvcHRpYz05OTYsQS5GaG9vaz00MDEsQS5GaXRhY3lyaWxsaWM9MTEzOCxBLkZpdmVyb21hbj04NTQ4LEEuRm1vbm9zcGFjZT02NTMxOCxBLkZvdXJyb21hbj04NTQ3LEEuRnNtYWxsPTYzMzM0LEEuRz03MSxBLkdCc3F1YXJlPTEzMTkxLEEuR2FjdXRlPTUwMCxBLkdhbW1hPTkxNSxBLkdhbW1hYWZyaWNhbj00MDQsQS5HYW5naWFjb3B0aWM9MTAwMixBLkdicmV2ZT0yODYsQS5HY2Fyb249NDg2LEEuR2NlZGlsbGE9MjkwLEEuR2NpcmNsZT05NDA0LEEuR2NpcmN1bWZsZXg9Mjg0LEEuR2NvbW1hYWNjZW50PTI5MCxBLkdkb3Q9Mjg4LEEuR2RvdGFjY2VudD0yODgsQS5HZWN5cmlsbGljPTEwNDMsQS5HaGFkYXJtZW5pYW49MTM0NixBLkdoZW1pZGRsZWhvb2tjeXJpbGxpYz0xMTcyLEEuR2hlc3Ryb2tlY3lyaWxsaWM9MTE3MCxBLkdoZXVwdHVybmN5cmlsbGljPTExNjgsQS5HaG9vaz00MDMsQS5HaW1hcm1lbmlhbj0xMzMxLEEuR2plY3lyaWxsaWM9MTAyNyxBLkdtYWNyb249NzcxMixBLkdtb25vc3BhY2U9NjUzMTksQS5HcmF2ZT02MzE4MixBLkdyYXZlc21hbGw9NjMzMjgsQS5Hc21hbGw9NjMzMzUsQS5Hc21hbGxob29rPTY2NyxBLkdzdHJva2U9NDg0LEEuSD03MixBLkgxODUzMz05Njc5LEEuSDE4NTQzPTk2NDIsQS5IMTg1NTE9OTY0MyxBLkgyMjA3Mz05NjMzLEEuSFBzcXVhcmU9MTMyNTksQS5IYWFia2hhc2lhbmN5cmlsbGljPTExOTIsQS5IYWRlc2NlbmRlcmN5cmlsbGljPTEyMDIsQS5IYXJkc2lnbmN5cmlsbGljPTEwNjYsQS5IYmFyPTI5NCxBLkhicmV2ZWJlbG93PTc3MjIsQS5IY2VkaWxsYT03NzIwLEEuSGNpcmNsZT05NDA1LEEuSGNpcmN1bWZsZXg9MjkyLEEuSGRpZXJlc2lzPTc3MTgsQS5IZG90YWNjZW50PTc3MTQsQS5IZG90YmVsb3c9NzcxNixBLkhtb25vc3BhY2U9NjUzMjAsQS5Ib2FybWVuaWFuPTEzNDQsQS5Ib3JpY29wdGljPTFlMyxBLkhzbWFsbD02MzMzNixBLkh1bmdhcnVtbGF1dD02MzE4MyxBLkh1bmdhcnVtbGF1dHNtYWxsPTYzMjI0LEEuSHpzcXVhcmU9MTMyMDAsQS5JPTczLEEuSUFjeXJpbGxpYz0xMDcxLEEuSUo9MzA2LEEuSVVjeXJpbGxpYz0xMDcwLEEuSWFjdXRlPTIwNSxBLklhY3V0ZXNtYWxsPTYzNDY5LEEuSWJyZXZlPTMwMCxBLkljYXJvbj00NjMsQS5JY2lyY2xlPTk0MDYsQS5JY2lyY3VtZmxleD0yMDYsQS5JY2lyY3VtZmxleHNtYWxsPTYzNDcwLEEuSWN5cmlsbGljPTEwMzAsQS5JZGJsZ3JhdmU9NTIwLEEuSWRpZXJlc2lzPTIwNyxBLklkaWVyZXNpc2FjdXRlPTc3MjYsQS5JZGllcmVzaXNjeXJpbGxpYz0xMjUyLEEuSWRpZXJlc2lzc21hbGw9NjM0NzEsQS5JZG90PTMwNCxBLklkb3RhY2NlbnQ9MzA0LEEuSWRvdGJlbG93PTc4ODIsQS5JZWJyZXZlY3lyaWxsaWM9MTIzOCxBLkllY3lyaWxsaWM9MTA0NSxBLklmcmFrdHVyPTg0NjUsQS5JZ3JhdmU9MjA0LEEuSWdyYXZlc21hbGw9NjM0NjgsQS5JaG9va2Fib3ZlPTc4ODAsQS5JaWN5cmlsbGljPTEwNDgsQS5JaW52ZXJ0ZWRicmV2ZT01MjIsQS5JaXNob3J0Y3lyaWxsaWM9MTA0OSxBLkltYWNyb249Mjk4LEEuSW1hY3JvbmN5cmlsbGljPTEyNTAsQS5JbW9ub3NwYWNlPTY1MzIxLEEuSW5pYXJtZW5pYW49MTMzOSxBLklvY3lyaWxsaWM9MTAyNSxBLklvZ29uZWs9MzAyLEEuSW90YT05MjEsQS5Jb3RhYWZyaWNhbj00MDYsQS5Jb3RhZGllcmVzaXM9OTM4LEEuSW90YXRvbm9zPTkwNixBLklzbWFsbD02MzMzNyxBLklzdHJva2U9NDA3LEEuSXRpbGRlPTI5NixBLkl0aWxkZWJlbG93PTc3MjQsQS5JemhpdHNhY3lyaWxsaWM9MTE0MCxBLkl6aGl0c2FkYmxncmF2ZWN5cmlsbGljPTExNDIsQS5KPTc0LEEuSmFhcm1lbmlhbj0xMzQ1LEEuSmNpcmNsZT05NDA3LEEuSmNpcmN1bWZsZXg9MzA4LEEuSmVjeXJpbGxpYz0xMDMyLEEuSmhlaGFybWVuaWFuPTEzNTUsQS5KbW9ub3NwYWNlPTY1MzIyLEEuSnNtYWxsPTYzMzM4LEEuSz03NSxBLktCc3F1YXJlPTEzMTg5LEEuS0tzcXVhcmU9MTMyNjEsQS5LYWJhc2hraXJjeXJpbGxpYz0xMTg0LEEuS2FjdXRlPTc3MjgsQS5LYWN5cmlsbGljPTEwNTAsQS5LYWRlc2NlbmRlcmN5cmlsbGljPTExNzgsQS5LYWhvb2tjeXJpbGxpYz0xMjE5LEEuS2FwcGE9OTIyLEEuS2FzdHJva2VjeXJpbGxpYz0xMTgyLEEuS2F2ZXJ0aWNhbHN0cm9rZWN5cmlsbGljPTExODAsQS5LY2Fyb249NDg4LEEuS2NlZGlsbGE9MzEwLEEuS2NpcmNsZT05NDA4LEEuS2NvbW1hYWNjZW50PTMxMCxBLktkb3RiZWxvdz03NzMwLEEuS2VoYXJtZW5pYW49MTM2NCxBLktlbmFybWVuaWFuPTEzNDMsQS5LaGFjeXJpbGxpYz0xMDYxLEEuS2hlaWNvcHRpYz05OTgsQS5LaG9vaz00MDgsQS5LamVjeXJpbGxpYz0xMDM2LEEuS2xpbmViZWxvdz03NzMyLEEuS21vbm9zcGFjZT02NTMyMyxBLktvcHBhY3lyaWxsaWM9MTE1MixBLktvcHBhZ3JlZWs9OTkwLEEuS3NpY3lyaWxsaWM9MTEzNCxBLktzbWFsbD02MzMzOSxBLkw9NzYsQS5MSj00NTUsQS5MTD02MzE2NyxBLkxhY3V0ZT0zMTMsQS5MYW1iZGE9OTIzLEEuTGNhcm9uPTMxNyxBLkxjZWRpbGxhPTMxNSxBLkxjaXJjbGU9OTQwOSxBLkxjaXJjdW1mbGV4YmVsb3c9Nzc0MCxBLkxjb21tYWFjY2VudD0zMTUsQS5MZG90PTMxOSxBLkxkb3RhY2NlbnQ9MzE5LEEuTGRvdGJlbG93PTc3MzQsQS5MZG90YmVsb3dtYWNyb249NzczNixBLkxpd25hcm1lbmlhbj0xMzQwLEEuTGo9NDU2LEEuTGplY3lyaWxsaWM9MTAzMyxBLkxsaW5lYmVsb3c9NzczOCxBLkxtb25vc3BhY2U9NjUzMjQsQS5Mc2xhc2g9MzIxLEEuTHNsYXNoc21hbGw9NjMyMjUsQS5Mc21hbGw9NjMzNDAsQS5NPTc3LEEuTUJzcXVhcmU9MTMxOTAsQS5NYWNyb249NjMxODQsQS5NYWNyb25zbWFsbD02MzQwNyxBLk1hY3V0ZT03NzQyLEEuTWNpcmNsZT05NDEwLEEuTWRvdGFjY2VudD03NzQ0LEEuTWRvdGJlbG93PTc3NDYsQS5NZW5hcm1lbmlhbj0xMzQ4LEEuTW1vbm9zcGFjZT02NTMyNSxBLk1zbWFsbD02MzM0MSxBLk10dXJuZWQ9NDEyLEEuTXU9OTI0LEEuTj03OCxBLk5KPTQ1OCxBLk5hY3V0ZT0zMjMsQS5OY2Fyb249MzI3LEEuTmNlZGlsbGE9MzI1LEEuTmNpcmNsZT05NDExLEEuTmNpcmN1bWZsZXhiZWxvdz03NzU0LEEuTmNvbW1hYWNjZW50PTMyNSxBLk5kb3RhY2NlbnQ9Nzc0OCxBLk5kb3RiZWxvdz03NzUwLEEuTmhvb2tsZWZ0PTQxMyxBLk5pbmVyb21hbj04NTUyLEEuTmo9NDU5LEEuTmplY3lyaWxsaWM9MTAzNCxBLk5saW5lYmVsb3c9Nzc1MixBLk5tb25vc3BhY2U9NjUzMjYsQS5Ob3dhcm1lbmlhbj0xMzUwLEEuTnNtYWxsPTYzMzQyLEEuTnRpbGRlPTIwOSxBLk50aWxkZXNtYWxsPTYzNDczLEEuTnU9OTI1LEEuTz03OSxBLk9FPTMzOCxBLk9Fc21hbGw9NjMyMjYsQS5PYWN1dGU9MjExLEEuT2FjdXRlc21hbGw9NjM0NzUsQS5PYmFycmVkY3lyaWxsaWM9MTI1NixBLk9iYXJyZWRkaWVyZXNpc2N5cmlsbGljPTEyNTgsQS5PYnJldmU9MzM0LEEuT2Nhcm9uPTQ2NSxBLk9jZW50ZXJlZHRpbGRlPTQxNSxBLk9jaXJjbGU9OTQxMixBLk9jaXJjdW1mbGV4PTIxMixBLk9jaXJjdW1mbGV4YWN1dGU9Nzg4OCxBLk9jaXJjdW1mbGV4ZG90YmVsb3c9Nzg5NixBLk9jaXJjdW1mbGV4Z3JhdmU9Nzg5MCxBLk9jaXJjdW1mbGV4aG9va2Fib3ZlPTc4OTIsQS5PY2lyY3VtZmxleHNtYWxsPTYzNDc2LEEuT2NpcmN1bWZsZXh0aWxkZT03ODk0LEEuT2N5cmlsbGljPTEwNTQsQS5PZGJsYWN1dGU9MzM2LEEuT2RibGdyYXZlPTUyNCxBLk9kaWVyZXNpcz0yMTQsQS5PZGllcmVzaXNjeXJpbGxpYz0xMjU0LEEuT2RpZXJlc2lzc21hbGw9NjM0NzgsQS5PZG90YmVsb3c9Nzg4NCxBLk9nb25la3NtYWxsPTYzMjI3LEEuT2dyYXZlPTIxMCxBLk9ncmF2ZXNtYWxsPTYzNDc0LEEuT2hhcm1lbmlhbj0xMzY1LEEuT2htPTg0ODYsQS5PaG9va2Fib3ZlPTc4ODYsQS5PaG9ybj00MTYsQS5PaG9ybmFjdXRlPTc4OTgsQS5PaG9ybmRvdGJlbG93PTc5MDYsQS5PaG9ybmdyYXZlPTc5MDAsQS5PaG9ybmhvb2thYm92ZT03OTAyLEEuT2hvcm50aWxkZT03OTA0LEEuT2h1bmdhcnVtbGF1dD0zMzYsQS5PaT00MTgsQS5PaW52ZXJ0ZWRicmV2ZT01MjYsQS5PbWFjcm9uPTMzMixBLk9tYWNyb25hY3V0ZT03NzYyLEEuT21hY3JvbmdyYXZlPTc3NjAsQS5PbWVnYT04NDg2LEEuT21lZ2FjeXJpbGxpYz0xMTIwLEEuT21lZ2FncmVlaz05MzcsQS5PbWVnYXJvdW5kY3lyaWxsaWM9MTE0NixBLk9tZWdhdGl0bG9jeXJpbGxpYz0xMTQ4LEEuT21lZ2F0b25vcz05MTEsQS5PbWljcm9uPTkyNyxBLk9taWNyb250b25vcz05MDgsQS5PbW9ub3NwYWNlPTY1MzI3LEEuT25lcm9tYW49ODU0NCxBLk9vZ29uZWs9NDkwLEEuT29nb25la21hY3Jvbj00OTIsQS5Pb3Blbj0zOTAsQS5Pc2xhc2g9MjE2LEEuT3NsYXNoYWN1dGU9NTEwLEEuT3NsYXNoc21hbGw9NjM0ODAsQS5Pc21hbGw9NjMzNDMsQS5Pc3Ryb2tlYWN1dGU9NTEwLEEuT3RjeXJpbGxpYz0xMTUwLEEuT3RpbGRlPTIxMyxBLk90aWxkZWFjdXRlPTc3NTYsQS5PdGlsZGVkaWVyZXNpcz03NzU4LEEuT3RpbGRlc21hbGw9NjM0NzcsQS5QPTgwLEEuUGFjdXRlPTc3NjQsQS5QY2lyY2xlPTk0MTMsQS5QZG90YWNjZW50PTc3NjYsQS5QZWN5cmlsbGljPTEwNTUsQS5QZWhhcm1lbmlhbj0xMzU0LEEuUGVtaWRkbGVob29rY3lyaWxsaWM9MTE5MCxBLlBoaT05MzQsQS5QaG9vaz00MjAsQS5QaT05MjgsQS5QaXdyYXJtZW5pYW49MTM2MyxBLlBtb25vc3BhY2U9NjUzMjgsQS5Qc2k9OTM2LEEuUHNpY3lyaWxsaWM9MTEzNixBLlBzbWFsbD02MzM0NCxBLlE9ODEsQS5RY2lyY2xlPTk0MTQsQS5RbW9ub3NwYWNlPTY1MzI5LEEuUXNtYWxsPTYzMzQ1LEEuUj04MixBLlJhYXJtZW5pYW49MTM1NixBLlJhY3V0ZT0zNDAsQS5SY2Fyb249MzQ0LEEuUmNlZGlsbGE9MzQyLEEuUmNpcmNsZT05NDE1LEEuUmNvbW1hYWNjZW50PTM0MixBLlJkYmxncmF2ZT01MjgsQS5SZG90YWNjZW50PTc3NjgsQS5SZG90YmVsb3c9Nzc3MCxBLlJkb3RiZWxvd21hY3Jvbj03NzcyLEEuUmVoYXJtZW5pYW49MTM2MCxBLlJmcmFrdHVyPTg0NzYsQS5SaG89OTI5LEEuUmluZ3NtYWxsPTYzMjI4LEEuUmludmVydGVkYnJldmU9NTMwLEEuUmxpbmViZWxvdz03Nzc0LEEuUm1vbm9zcGFjZT02NTMzMCxBLlJzbWFsbD02MzM0NixBLlJzbWFsbGludmVydGVkPTY0MSxBLlJzbWFsbGludmVydGVkc3VwZXJpb3I9Njk0LEEuUz04MyxBLlNGMDEwMDAwPTk0ODQsQS5TRjAyMDAwMD05NDkyLEEuU0YwMzAwMDA9OTQ4OCxBLlNGMDQwMDAwPTk0OTYsQS5TRjA1MDAwMD05NTMyLEEuU0YwNjAwMDA9OTUxNixBLlNGMDcwMDAwPTk1MjQsQS5TRjA4MDAwMD05NTAwLEEuU0YwOTAwMDA9OTUwOCxBLlNGMTAwMDAwPTk0NzIsQS5TRjExMDAwMD05NDc0LEEuU0YxOTAwMDA9OTU2OSxBLlNGMjAwMDAwPTk1NzAsQS5TRjIxMDAwMD05NTU4LEEuU0YyMjAwMDA9OTU1NyxBLlNGMjMwMDAwPTk1NzEsQS5TRjI0MDAwMD05NTUzLEEuU0YyNTAwMDA9OTU1OSxBLlNGMjYwMDAwPTk1NjUsQS5TRjI3MDAwMD05NTY0LEEuU0YyODAwMDA9OTU2MyxBLlNGMzYwMDAwPTk1NjYsQS5TRjM3MDAwMD05NTY3LEEuU0YzODAwMDA9OTU2MixBLlNGMzkwMDAwPTk1NTYsQS5TRjQwMDAwMD05NTc3LEEuU0Y0MTAwMDA9OTU3NCxBLlNGNDIwMDAwPTk1NjgsQS5TRjQzMDAwMD05NTUyLEEuU0Y0NDAwMDA9OTU4MCxBLlNGNDUwMDAwPTk1NzUsQS5TRjQ2MDAwMD05NTc2LEEuU0Y0NzAwMDA9OTU3MixBLlNGNDgwMDAwPTk1NzMsQS5TRjQ5MDAwMD05NTYxLEEuU0Y1MDAwMDA9OTU2MCxBLlNGNTEwMDAwPTk1NTQsQS5TRjUyMDAwMD05NTU1LEEuU0Y1MzAwMDA9OTU3OSxBLlNGNTQwMDAwPTk1NzgsQS5TYWN1dGU9MzQ2LEEuU2FjdXRlZG90YWNjZW50PTc3ODAsQS5TYW1waWdyZWVrPTk5MixBLlNjYXJvbj0zNTIsQS5TY2Fyb25kb3RhY2NlbnQ9Nzc4MixBLlNjYXJvbnNtYWxsPTYzMjI5LEEuU2NlZGlsbGE9MzUwLEEuU2Nod2E9Mzk5LEEuU2Nod2FjeXJpbGxpYz0xMjQwLEEuU2Nod2FkaWVyZXNpc2N5cmlsbGljPTEyNDIsQS5TY2lyY2xlPTk0MTYsQS5TY2lyY3VtZmxleD0zNDgsQS5TY29tbWFhY2NlbnQ9NTM2LEEuU2RvdGFjY2VudD03Nzc2LEEuU2RvdGJlbG93PTc3NzgsQS5TZG90YmVsb3dkb3RhY2NlbnQ9Nzc4NCxBLlNlaGFybWVuaWFuPTEzNTcsQS5TZXZlbnJvbWFuPTg1NTAsQS5TaGFhcm1lbmlhbj0xMzUxLEEuU2hhY3lyaWxsaWM9MTA2NCxBLlNoY2hhY3lyaWxsaWM9MTA2NSxBLlNoZWljb3B0aWM9OTk0LEEuU2hoYWN5cmlsbGljPTEyMTAsQS5TaGltYWNvcHRpYz0xMDA0LEEuU2lnbWE9OTMxLEEuU2l4cm9tYW49ODU0OSxBLlNtb25vc3BhY2U9NjUzMzEsQS5Tb2Z0c2lnbmN5cmlsbGljPTEwNjgsQS5Tc21hbGw9NjMzNDcsQS5TdGlnbWFncmVlaz05ODYsQS5UPTg0LEEuVGF1PTkzMixBLlRiYXI9MzU4LEEuVGNhcm9uPTM1NixBLlRjZWRpbGxhPTM1NCxBLlRjaXJjbGU9OTQxNyxBLlRjaXJjdW1mbGV4YmVsb3c9Nzc5MixBLlRjb21tYWFjY2VudD0zNTQsQS5UZG90YWNjZW50PTc3ODYsQS5UZG90YmVsb3c9Nzc4OCxBLlRlY3lyaWxsaWM9MTA1OCxBLlRlZGVzY2VuZGVyY3lyaWxsaWM9MTE5NixBLlRlbnJvbWFuPTg1NTMsQS5UZXRzZWN5cmlsbGljPTEyMDQsQS5UaGV0YT05MjAsQS5UaG9vaz00MjgsQS5UaG9ybj0yMjIsQS5UaG9ybnNtYWxsPTYzNDg2LEEuVGhyZWVyb21hbj04NTQ2LEEuVGlsZGVzbWFsbD02MzIzMCxBLlRpd25hcm1lbmlhbj0xMzU5LEEuVGxpbmViZWxvdz03NzkwLEEuVG1vbm9zcGFjZT02NTMzMixBLlRvYXJtZW5pYW49MTMzNyxBLlRvbmVmaXZlPTQ0NCxBLlRvbmVzaXg9Mzg4LEEuVG9uZXR3bz00MjMsQS5UcmV0cm9mbGV4aG9vaz00MzAsQS5Uc2VjeXJpbGxpYz0xMDYyLEEuVHNoZWN5cmlsbGljPTEwMzUsQS5Uc21hbGw9NjMzNDgsQS5Ud2VsdmVyb21hbj04NTU1LEEuVHdvcm9tYW49ODU0NSxBLlU9ODUsQS5VYWN1dGU9MjE4LEEuVWFjdXRlc21hbGw9NjM0ODIsQS5VYnJldmU9MzY0LEEuVWNhcm9uPTQ2NyxBLlVjaXJjbGU9OTQxOCxBLlVjaXJjdW1mbGV4PTIxOSxBLlVjaXJjdW1mbGV4YmVsb3c9Nzc5OCxBLlVjaXJjdW1mbGV4c21hbGw9NjM0ODMsQS5VY3lyaWxsaWM9MTA1OSxBLlVkYmxhY3V0ZT0zNjgsQS5VZGJsZ3JhdmU9NTMyLEEuVWRpZXJlc2lzPTIyMCxBLlVkaWVyZXNpc2FjdXRlPTQ3MSxBLlVkaWVyZXNpc2JlbG93PTc3OTQsQS5VZGllcmVzaXNjYXJvbj00NzMsQS5VZGllcmVzaXNjeXJpbGxpYz0xMjY0LEEuVWRpZXJlc2lzZ3JhdmU9NDc1LEEuVWRpZXJlc2lzbWFjcm9uPTQ2OSxBLlVkaWVyZXNpc3NtYWxsPTYzNDg0LEEuVWRvdGJlbG93PTc5MDgsQS5VZ3JhdmU9MjE3LEEuVWdyYXZlc21hbGw9NjM0ODEsQS5VaG9va2Fib3ZlPTc5MTAsQS5VaG9ybj00MzEsQS5VaG9ybmFjdXRlPTc5MTIsQS5VaG9ybmRvdGJlbG93PTc5MjAsQS5VaG9ybmdyYXZlPTc5MTQsQS5VaG9ybmhvb2thYm92ZT03OTE2LEEuVWhvcm50aWxkZT03OTE4LEEuVWh1bmdhcnVtbGF1dD0zNjgsQS5VaHVuZ2FydW1sYXV0Y3lyaWxsaWM9MTI2NixBLlVpbnZlcnRlZGJyZXZlPTUzNCxBLlVrY3lyaWxsaWM9MTE0NCxBLlVtYWNyb249MzYyLEEuVW1hY3JvbmN5cmlsbGljPTEyNjIsQS5VbWFjcm9uZGllcmVzaXM9NzgwMixBLlVtb25vc3BhY2U9NjUzMzMsQS5Vb2dvbmVrPTM3MCxBLlVwc2lsb249OTMzLEEuVXBzaWxvbjE9OTc4LEEuVXBzaWxvbmFjdXRlaG9va3N5bWJvbGdyZWVrPTk3OSxBLlVwc2lsb25hZnJpY2FuPTQzMyxBLlVwc2lsb25kaWVyZXNpcz05MzksQS5VcHNpbG9uZGllcmVzaXNob29rc3ltYm9sZ3JlZWs9OTgwLEEuVXBzaWxvbmhvb2tzeW1ib2w9OTc4LEEuVXBzaWxvbnRvbm9zPTkxMCxBLlVyaW5nPTM2NixBLlVzaG9ydGN5cmlsbGljPTEwMzgsQS5Vc21hbGw9NjMzNDksQS5Vc3RyYWlnaHRjeXJpbGxpYz0xMTk4LEEuVXN0cmFpZ2h0c3Ryb2tlY3lyaWxsaWM9MTIwMCxBLlV0aWxkZT0zNjAsQS5VdGlsZGVhY3V0ZT03ODAwLEEuVXRpbGRlYmVsb3c9Nzc5NixBLlY9ODYsQS5WY2lyY2xlPTk0MTksQS5WZG90YmVsb3c9NzgwNixBLlZlY3lyaWxsaWM9MTA0MixBLlZld2FybWVuaWFuPTEzNTgsQS5WaG9vaz00MzQsQS5WbW9ub3NwYWNlPTY1MzM0LEEuVm9hcm1lbmlhbj0xMzUyLEEuVnNtYWxsPTYzMzUwLEEuVnRpbGRlPTc4MDQsQS5XPTg3LEEuV2FjdXRlPTc4MTAsQS5XY2lyY2xlPTk0MjAsQS5XY2lyY3VtZmxleD0zNzIsQS5XZGllcmVzaXM9NzgxMixBLldkb3RhY2NlbnQ9NzgxNCxBLldkb3RiZWxvdz03ODE2LEEuV2dyYXZlPTc4MDgsQS5XbW9ub3NwYWNlPTY1MzM1LEEuV3NtYWxsPTYzMzUxLEEuWD04OCxBLlhjaXJjbGU9OTQyMSxBLlhkaWVyZXNpcz03ODIwLEEuWGRvdGFjY2VudD03ODE4LEEuWGVoYXJtZW5pYW49MTM0MSxBLlhpPTkyNixBLlhtb25vc3BhY2U9NjUzMzYsQS5Yc21hbGw9NjMzNTIsQS5ZPTg5LEEuWWFjdXRlPTIyMSxBLllhY3V0ZXNtYWxsPTYzNDg1LEEuWWF0Y3lyaWxsaWM9MTEyMixBLlljaXJjbGU9OTQyMixBLlljaXJjdW1mbGV4PTM3NCxBLllkaWVyZXNpcz0zNzYsQS5ZZGllcmVzaXNzbWFsbD02MzQ4NyxBLllkb3RhY2NlbnQ9NzgyMixBLllkb3RiZWxvdz03OTI0LEEuWWVyaWN5cmlsbGljPTEwNjcsQS5ZZXJ1ZGllcmVzaXNjeXJpbGxpYz0xMjcyLEEuWWdyYXZlPTc5MjIsQS5ZaG9vaz00MzUsQS5ZaG9va2Fib3ZlPTc5MjYsQS5ZaWFybWVuaWFuPTEzNDksQS5ZaWN5cmlsbGljPTEwMzEsQS5ZaXduYXJtZW5pYW49MTM2MixBLlltb25vc3BhY2U9NjUzMzcsQS5Zc21hbGw9NjMzNTMsQS5ZdGlsZGU9NzkyOCxBLll1c2JpZ2N5cmlsbGljPTExMzAsQS5ZdXNiaWdpb3RpZmllZGN5cmlsbGljPTExMzIsQS5ZdXNsaXR0bGVjeXJpbGxpYz0xMTI2LEEuWXVzbGl0dGxlaW90aWZpZWRjeXJpbGxpYz0xMTI4LEEuWj05MCxBLlphYXJtZW5pYW49MTMzNCxBLlphY3V0ZT0zNzcsQS5aY2Fyb249MzgxLEEuWmNhcm9uc21hbGw9NjMyMzEsQS5aY2lyY2xlPTk0MjMsQS5aY2lyY3VtZmxleD03ODI0LEEuWmRvdD0zNzksQS5aZG90YWNjZW50PTM3OSxBLlpkb3RiZWxvdz03ODI2LEEuWmVjeXJpbGxpYz0xMDQ3LEEuWmVkZXNjZW5kZXJjeXJpbGxpYz0xMTc2LEEuWmVkaWVyZXNpc2N5cmlsbGljPTEyNDYsQS5aZXRhPTkxOCxBLlpoZWFybWVuaWFuPTEzMzgsQS5aaGVicmV2ZWN5cmlsbGljPTEyMTcsQS5aaGVjeXJpbGxpYz0xMDQ2LEEuWmhlZGVzY2VuZGVyY3lyaWxsaWM9MTE3NCxBLlpoZWRpZXJlc2lzY3lyaWxsaWM9MTI0NCxBLlpsaW5lYmVsb3c9NzgyOCxBLlptb25vc3BhY2U9NjUzMzgsQS5ac21hbGw9NjMzNTQsQS5ac3Ryb2tlPTQzNyxBLmE9OTcsQS5hYWJlbmdhbGk9MjQzOCxBLmFhY3V0ZT0yMjUsQS5hYWRldmE9MjMxMCxBLmFhZ3VqYXJhdGk9MjY5NCxBLmFhZ3VybXVraGk9MjU2NixBLmFhbWF0cmFndXJtdWtoaT0yNjIyLEEuYWFydXNxdWFyZT0xMzA1OSxBLmFhdm93ZWxzaWduYmVuZ2FsaT0yNDk0LEEuYWF2b3dlbHNpZ25kZXZhPTIzNjYsQS5hYXZvd2Vsc2lnbmd1amFyYXRpPTI3NTAsQS5hYmJyZXZpYXRpb25tYXJrYXJtZW5pYW49MTM3NSxBLmFiYnJldmlhdGlvbnNpZ25kZXZhPTI0MTYsQS5hYmVuZ2FsaT0yNDM3LEEuYWJvcG9tb2ZvPTEyNTcwLEEuYWJyZXZlPTI1OSxBLmFicmV2ZWFjdXRlPTc4NTUsQS5hYnJldmVjeXJpbGxpYz0xMjMzLEEuYWJyZXZlZG90YmVsb3c9Nzg2MyxBLmFicmV2ZWdyYXZlPTc4NTcsQS5hYnJldmVob29rYWJvdmU9Nzg1OSxBLmFicmV2ZXRpbGRlPTc4NjEsQS5hY2Fyb249NDYyLEEuYWNpcmNsZT05NDI0LEEuYWNpcmN1bWZsZXg9MjI2LEEuYWNpcmN1bWZsZXhhY3V0ZT03ODQ1LEEuYWNpcmN1bWZsZXhkb3RiZWxvdz03ODUzLEEuYWNpcmN1bWZsZXhncmF2ZT03ODQ3LEEuYWNpcmN1bWZsZXhob29rYWJvdmU9Nzg0OSxBLmFjaXJjdW1mbGV4dGlsZGU9Nzg1MSxBLmFjdXRlPTE4MCxBLmFjdXRlYmVsb3djbWI9NzkxLEEuYWN1dGVjbWI9NzY5LEEuYWN1dGVjb21iPTc2OSxBLmFjdXRlZGV2YT0yMzg4LEEuYWN1dGVsb3dtb2Q9NzE5LEEuYWN1dGV0b25lY21iPTgzMyxBLmFjeXJpbGxpYz0xMDcyLEEuYWRibGdyYXZlPTUxMyxBLmFkZGFrZ3VybXVraGk9MjY3MyxBLmFkZXZhPTIzMDksQS5hZGllcmVzaXM9MjI4LEEuYWRpZXJlc2lzY3lyaWxsaWM9MTIzNSxBLmFkaWVyZXNpc21hY3Jvbj00NzksQS5hZG90YmVsb3c9Nzg0MSxBLmFkb3RtYWNyb249NDgxLEEuYWU9MjMwLEEuYWVhY3V0ZT01MDksQS5hZWtvcmVhbj0xMjYyNCxBLmFlbWFjcm9uPTQ4MyxBLmFmaWkwMDIwOD04MjEzLEEuYWZpaTA4OTQxPTgzNTYsQS5hZmlpMTAwMTc9MTA0MCxBLmFmaWkxMDAxOD0xMDQxLEEuYWZpaTEwMDE5PTEwNDIsQS5hZmlpMTAwMjA9MTA0MyxBLmFmaWkxMDAyMT0xMDQ0LEEuYWZpaTEwMDIyPTEwNDUsQS5hZmlpMTAwMjM9MTAyNSxBLmFmaWkxMDAyND0xMDQ2LEEuYWZpaTEwMDI1PTEwNDcsQS5hZmlpMTAwMjY9MTA0OCxBLmFmaWkxMDAyNz0xMDQ5LEEuYWZpaTEwMDI4PTEwNTAsQS5hZmlpMTAwMjk9MTA1MSxBLmFmaWkxMDAzMD0xMDUyO0EuYWZpaTEwMDMxPTEwNTMsQS5hZmlpMTAwMzI9MTA1NCxBLmFmaWkxMDAzMz0xMDU1LEEuYWZpaTEwMDM0PTEwNTYsQS5hZmlpMTAwMzU9MTA1NyxBLmFmaWkxMDAzNj0xMDU4LEEuYWZpaTEwMDM3PTEwNTksQS5hZmlpMTAwMzg9MTA2MCxBLmFmaWkxMDAzOT0xMDYxLEEuYWZpaTEwMDQwPTEwNjIsQS5hZmlpMTAwNDE9MTA2MyxBLmFmaWkxMDA0Mj0xMDY0LEEuYWZpaTEwMDQzPTEwNjUsQS5hZmlpMTAwNDQ9MTA2NixBLmFmaWkxMDA0NT0xMDY3LEEuYWZpaTEwMDQ2PTEwNjgsQS5hZmlpMTAwNDc9MTA2OSxBLmFmaWkxMDA0OD0xMDcwLEEuYWZpaTEwMDQ5PTEwNzEsQS5hZmlpMTAwNTA9MTE2OCxBLmFmaWkxMDA1MT0xMDI2LEEuYWZpaTEwMDUyPTEwMjcsQS5hZmlpMTAwNTM9MTAyOCxBLmFmaWkxMDA1ND0xMDI5LEEuYWZpaTEwMDU1PTEwMzAsQS5hZmlpMTAwNTY9MTAzMSxBLmFmaWkxMDA1Nz0xMDMyLEEuYWZpaTEwMDU4PTEwMzMsQS5hZmlpMTAwNTk9MTAzNCxBLmFmaWkxMDA2MD0xMDM1LEEuYWZpaTEwMDYxPTEwMzYsQS5hZmlpMTAwNjI9MTAzOCxBLmFmaWkxMDA2Mz02MzE3MixBLmFmaWkxMDA2ND02MzE3MyxBLmFmaWkxMDA2NT0xMDcyLEEuYWZpaTEwMDY2PTEwNzMsQS5hZmlpMTAwNjc9MTA3NCxBLmFmaWkxMDA2OD0xMDc1LEEuYWZpaTEwMDY5PTEwNzYsQS5hZmlpMTAwNzA9MTA3NyxBLmFmaWkxMDA3MT0xMTA1LEEuYWZpaTEwMDcyPTEwNzgsQS5hZmlpMTAwNzM9MTA3OSxBLmFmaWkxMDA3ND0xMDgwLEEuYWZpaTEwMDc1PTEwODEsQS5hZmlpMTAwNzY9MTA4MixBLmFmaWkxMDA3Nz0xMDgzLEEuYWZpaTEwMDc4PTEwODQsQS5hZmlpMTAwNzk9MTA4NSxBLmFmaWkxMDA4MD0xMDg2LEEuYWZpaTEwMDgxPTEwODcsQS5hZmlpMTAwODI9MTA4OCxBLmFmaWkxMDA4Mz0xMDg5LEEuYWZpaTEwMDg0PTEwOTAsQS5hZmlpMTAwODU9MTA5MSxBLmFmaWkxMDA4Nj0xMDkyLEEuYWZpaTEwMDg3PTEwOTMsQS5hZmlpMTAwODg9MTA5NCxBLmFmaWkxMDA4OT0xMDk1LEEuYWZpaTEwMDkwPTEwOTYsQS5hZmlpMTAwOTE9MTA5NyxBLmFmaWkxMDA5Mj0xMDk4LEEuYWZpaTEwMDkzPTEwOTksQS5hZmlpMTAwOTQ9MTEwMCxBLmFmaWkxMDA5NT0xMTAxLEEuYWZpaTEwMDk2PTExMDIsQS5hZmlpMTAwOTc9MTEwMyxBLmFmaWkxMDA5OD0xMTY5LEEuYWZpaTEwMDk5PTExMDYsQS5hZmlpMTAxMDA9MTEwNyxBLmFmaWkxMDEwMT0xMTA4LEEuYWZpaTEwMTAyPTExMDksQS5hZmlpMTAxMDM9MTExMCxBLmFmaWkxMDEwND0xMTExLEEuYWZpaTEwMTA1PTExMTIsQS5hZmlpMTAxMDY9MTExMyxBLmFmaWkxMDEwNz0xMTE0LEEuYWZpaTEwMTA4PTExMTUsQS5hZmlpMTAxMDk9MTExNixBLmFmaWkxMDExMD0xMTE4LEEuYWZpaTEwMTQ1PTEwMzksQS5hZmlpMTAxNDY9MTEyMixBLmFmaWkxMDE0Nz0xMTM4LEEuYWZpaTEwMTQ4PTExNDAsQS5hZmlpMTAxOTI9NjMxNzQsQS5hZmlpMTAxOTM9MTExOSxBLmFmaWkxMDE5ND0xMTIzLEEuYWZpaTEwMTk1PTExMzksQS5hZmlpMTAxOTY9MTE0MSxBLmFmaWkxMDgzMT02MzE3NSxBLmFmaWkxMDgzMj02MzE3NixBLmFmaWkxMDg0Nj0xMjQxLEEuYWZpaTI5OT04MjA2LEEuYWZpaTMwMD04MjA3LEEuYWZpaTMwMT04MjA1LEEuYWZpaTU3MzgxPTE2NDIsQS5hZmlpNTczODg9MTU0OCxBLmFmaWk1NzM5Mj0xNjMyLEEuYWZpaTU3MzkzPTE2MzMsQS5hZmlpNTczOTQ9MTYzNCxBLmFmaWk1NzM5NT0xNjM1LEEuYWZpaTU3Mzk2PTE2MzYsQS5hZmlpNTczOTc9MTYzNyxBLmFmaWk1NzM5OD0xNjM4LEEuYWZpaTU3Mzk5PTE2MzksQS5hZmlpNTc0MDA9MTY0MCxBLmFmaWk1NzQwMT0xNjQxLEEuYWZpaTU3NDAzPTE1NjMsQS5hZmlpNTc0MDc9MTU2NyxBLmFmaWk1NzQwOT0xNTY5LEEuYWZpaTU3NDEwPTE1NzAsQS5hZmlpNTc0MTE9MTU3MSxBLmFmaWk1NzQxMj0xNTcyLEEuYWZpaTU3NDEzPTE1NzMsQS5hZmlpNTc0MTQ9MTU3NCxBLmFmaWk1NzQxNT0xNTc1LEEuYWZpaTU3NDE2PTE1NzYsQS5hZmlpNTc0MTc9MTU3NyxBLmFmaWk1NzQxOD0xNTc4LEEuYWZpaTU3NDE5PTE1NzksQS5hZmlpNTc0MjA9MTU4MCxBLmFmaWk1NzQyMT0xNTgxLEEuYWZpaTU3NDIyPTE1ODIsQS5hZmlpNTc0MjM9MTU4MyxBLmFmaWk1NzQyND0xNTg0LEEuYWZpaTU3NDI1PTE1ODUsQS5hZmlpNTc0MjY9MTU4NixBLmFmaWk1NzQyNz0xNTg3LEEuYWZpaTU3NDI4PTE1ODgsQS5hZmlpNTc0Mjk9MTU4OSxBLmFmaWk1NzQzMD0xNTkwLEEuYWZpaTU3NDMxPTE1OTEsQS5hZmlpNTc0MzI9MTU5MixBLmFmaWk1NzQzMz0xNTkzLEEuYWZpaTU3NDM0PTE1OTQsQS5hZmlpNTc0NDA9MTYwMCxBLmFmaWk1NzQ0MT0xNjAxLEEuYWZpaTU3NDQyPTE2MDIsQS5hZmlpNTc0NDM9MTYwMyxBLmFmaWk1NzQ0ND0xNjA0LEEuYWZpaTU3NDQ1PTE2MDUsQS5hZmlpNTc0NDY9MTYwNixBLmFmaWk1NzQ0OD0xNjA4LEEuYWZpaTU3NDQ5PTE2MDksQS5hZmlpNTc0NTA9MTYxMCxBLmFmaWk1NzQ1MT0xNjExLEEuYWZpaTU3NDUyPTE2MTIsQS5hZmlpNTc0NTM9MTYxMyxBLmFmaWk1NzQ1ND0xNjE0LEEuYWZpaTU3NDU1PTE2MTUsQS5hZmlpNTc0NTY9MTYxNixBLmFmaWk1NzQ1Nz0xNjE3LEEuYWZpaTU3NDU4PTE2MTgsQS5hZmlpNTc0NzA9MTYwNyxBLmFmaWk1NzUwNT0xNzAwLEEuYWZpaTU3NTA2PTE2NjIsQS5hZmlpNTc1MDc9MTY3MCxBLmFmaWk1NzUwOD0xNjg4LEEuYWZpaTU3NTA5PTE3MTEsQS5hZmlpNTc1MTE9MTY1NyxBLmFmaWk1NzUxMj0xNjcyLEEuYWZpaTU3NTEzPTE2ODEsQS5hZmlpNTc1MTQ9MTcyMixBLmFmaWk1NzUxOT0xNzQ2LEEuYWZpaTU3NTM0PTE3NDksQS5hZmlpNTc2MzY9ODM2MixBLmFmaWk1NzY0NT0xNDcwLEEuYWZpaTU3NjU4PTE0NzUsQS5hZmlpNTc2NjQ9MTQ4OCxBLmFmaWk1NzY2NT0xNDg5LEEuYWZpaTU3NjY2PTE0OTAsQS5hZmlpNTc2Njc9MTQ5MSxBLmFmaWk1NzY2OD0xNDkyLEEuYWZpaTU3NjY5PTE0OTMsQS5hZmlpNTc2NzA9MTQ5NCxBLmFmaWk1NzY3MT0xNDk1LEEuYWZpaTU3NjcyPTE0OTYsQS5hZmlpNTc2NzM9MTQ5NyxBLmFmaWk1NzY3ND0xNDk4LEEuYWZpaTU3Njc1PTE0OTksQS5hZmlpNTc2NzY9MTUwMCxBLmFmaWk1NzY3Nz0xNTAxLEEuYWZpaTU3Njc4PTE1MDIsQS5hZmlpNTc2Nzk9MTUwMyxBLmFmaWk1NzY4MD0xNTA0LEEuYWZpaTU3NjgxPTE1MDUsQS5hZmlpNTc2ODI9MTUwNixBLmFmaWk1NzY4Mz0xNTA3LEEuYWZpaTU3Njg0PTE1MDgsQS5hZmlpNTc2ODU9MTUwOSxBLmFmaWk1NzY4Nj0xNTEwLEEuYWZpaTU3Njg3PTE1MTEsQS5hZmlpNTc2ODg9MTUxMixBLmFmaWk1NzY4OT0xNTEzLEEuYWZpaTU3NjkwPTE1MTQsQS5hZmlpNTc2OTQ9NjQyOTgsQS5hZmlpNTc2OTU9NjQyOTksQS5hZmlpNTc3MDA9NjQzMzEsQS5hZmlpNTc3MDU9NjQyODcsQS5hZmlpNTc3MTY9MTUyMCxBLmFmaWk1NzcxNz0xNTIxLEEuYWZpaTU3NzE4PTE1MjIsQS5hZmlpNTc3MjM9NjQzMDksQS5hZmlpNTc3OTM9MTQ2MCxBLmFmaWk1Nzc5ND0xNDYxLEEuYWZpaTU3Nzk1PTE0NjIsQS5hZmlpNTc3OTY9MTQ2NyxBLmFmaWk1Nzc5Nz0xNDY0LEEuYWZpaTU3Nzk4PTE0NjMsQS5hZmlpNTc3OTk9MTQ1NixBLmFmaWk1NzgwMD0xNDU4LEEuYWZpaTU3ODAxPTE0NTcsQS5hZmlpNTc4MDI9MTQ1OSxBLmFmaWk1NzgwMz0xNDc0LEEuYWZpaTU3ODA0PTE0NzMsQS5hZmlpNTc4MDY9MTQ2NSxBLmFmaWk1NzgwNz0xNDY4LEEuYWZpaTU3ODM5PTE0NjksQS5hZmlpNTc4NDE9MTQ3MSxBLmFmaWk1Nzg0Mj0xNDcyLEEuYWZpaTU3OTI5PTcwMCxBLmFmaWk2MTI0OD04NDUzLEEuYWZpaTYxMjg5PTg0NjcsQS5hZmlpNjEzNTI9ODQ3MCxBLmFmaWk2MTU3Mz04MjM2LEEuYWZpaTYxNTc0PTgyMzcsQS5hZmlpNjE1NzU9ODIzOCxBLmFmaWk2MTY2ND04MjA0LEEuYWZpaTYzMTY3PTE2NDUsQS5hZmlpNjQ5Mzc9NzAxLEEuYWdyYXZlPTIyNCxBLmFndWphcmF0aT0yNjkzLEEuYWd1cm11a2hpPTI1NjUsQS5haGlyYWdhbmE9MTIzNTQsQS5haG9va2Fib3ZlPTc4NDMsQS5haWJlbmdhbGk9MjQ0OCxBLmFpYm9wb21vZm89MTI1NzQsQS5haWRldmE9MjMyMCxBLmFpZWN5cmlsbGljPTEyMzcsQS5haWd1amFyYXRpPTI3MDQsQS5haWd1cm11a2hpPTI1NzYsQS5haW1hdHJhZ3VybXVraGk9MjYzMixBLmFpbmFyYWJpYz0xNTkzLEEuYWluZmluYWxhcmFiaWM9NjUyMjYsQS5haW5pbml0aWFsYXJhYmljPTY1MjI3LEEuYWlubWVkaWFsYXJhYmljPTY1MjI4LEEuYWludmVydGVkYnJldmU9NTE1LEEuYWl2b3dlbHNpZ25iZW5nYWxpPTI1MDQsQS5haXZvd2Vsc2lnbmRldmE9MjM3NixBLmFpdm93ZWxzaWduZ3VqYXJhdGk9Mjc2MCxBLmFrYXRha2FuYT0xMjQ1MCxBLmFrYXRha2FuYWhhbGZ3aWR0aD02NTM5MyxBLmFrb3JlYW49MTI2MjMsQS5hbGVmPTE0ODgsQS5hbGVmYXJhYmljPTE1NzUsQS5hbGVmZGFnZXNoaGVicmV3PTY0MzA0LEEuYWxlZmZpbmFsYXJhYmljPTY1MTY2LEEuYWxlZmhhbXphYWJvdmVhcmFiaWM9MTU3MSxBLmFsZWZoYW16YWFib3ZlZmluYWxhcmFiaWM9NjUxNTYsQS5hbGVmaGFtemFiZWxvd2FyYWJpYz0xNTczLEEuYWxlZmhhbXphYmVsb3dmaW5hbGFyYWJpYz02NTE2MCxBLmFsZWZoZWJyZXc9MTQ4OCxBLmFsZWZsYW1lZGhlYnJldz02NDMzNSxBLmFsZWZtYWRkYWFib3ZlYXJhYmljPTE1NzAsQS5hbGVmbWFkZGFhYm92ZWZpbmFsYXJhYmljPTY1MTU0LEEuYWxlZm1ha3N1cmFhcmFiaWM9MTYwOSxBLmFsZWZtYWtzdXJhZmluYWxhcmFiaWM9NjUyNjQsQS5hbGVmbWFrc3VyYWluaXRpYWxhcmFiaWM9NjUyNjcsQS5hbGVmbWFrc3VyYW1lZGlhbGFyYWJpYz02NTI2OCxBLmFsZWZwYXRhaGhlYnJldz02NDMwMixBLmFsZWZxYW1hdHNoZWJyZXc9NjQzMDMsQS5hbGVwaD04NTAxLEEuYWxsZXF1YWw9ODc4MCxBLmFscGhhPTk0NSxBLmFscGhhdG9ub3M9OTQwLEEuYW1hY3Jvbj0yNTcsQS5hbW9ub3NwYWNlPTY1MzQ1LEEuYW1wZXJzYW5kPTM4LEEuYW1wZXJzYW5kbW9ub3NwYWNlPTY1Mjg2LEEuYW1wZXJzYW5kc21hbGw9NjMyNzAsQS5hbXNxdWFyZT0xMzI1MCxBLmFuYm9wb21vZm89MTI1NzgsQS5hbmdib3BvbW9mbz0xMjU4MCxBLmFuZ2JyYWNrZXRsZWZ0PTEyMjk2LEEuYW5nYnJhY2tldHJpZ2h0PTEyMjk3LEEuYW5na2hhbmtodXRoYWk9MzY3NCxBLmFuZ2xlPTg3MzYsQS5hbmdsZWJyYWNrZXRsZWZ0PTEyMjk2LEEuYW5nbGVicmFja2V0bGVmdHZlcnRpY2FsPTY1MDg3LEEuYW5nbGVicmFja2V0cmlnaHQ9MTIyOTcsQS5hbmdsZWJyYWNrZXRyaWdodHZlcnRpY2FsPTY1MDg4LEEuYW5nbGVsZWZ0PTkwMDEsQS5hbmdsZXJpZ2h0PTkwMDIsQS5hbmdzdHJvbT04NDkxLEEuYW5vdGVsZWlhPTkwMyxBLmFudWRhdHRhZGV2YT0yMzg2LEEuYW51c3ZhcmFiZW5nYWxpPTI0MzQsQS5hbnVzdmFyYWRldmE9MjMwNixBLmFudXN2YXJhZ3VqYXJhdGk9MjY5MCxBLmFvZ29uZWs9MjYxLEEuYXBhYXRvc3F1YXJlPTEzMDU2LEEuYXBhcmVuPTkzNzIsQS5hcG9zdHJvcGhlYXJtZW5pYW49MTM3MCxBLmFwb3N0cm9waGVtb2Q9NzAwLEEuYXBwbGU9NjM3NDMsQS5hcHByb2FjaGVzPTg3ODQsQS5hcHByb3hlcXVhbD04Nzc2LEEuYXBwcm94ZXF1YWxvcmltYWdlPTg3ODYsQS5hcHByb3hpbWF0ZWx5ZXF1YWw9ODc3MyxBLmFyYWVhZWtvcmVhbj0xMjY4NixBLmFyYWVha29yZWFuPTEyNjg1LEEuYXJjPTg5NzgsQS5hcmlnaHRoYWxmcmluZz03ODM0LEEuYXJpbmc9MjI5LEEuYXJpbmdhY3V0ZT01MDcsQS5hcmluZ2JlbG93PTc2ODEsQS5hcnJvd2JvdGg9ODU5NixBLmFycm93ZGFzaGRvd249ODY3NSxBLmFycm93ZGFzaGxlZnQ9ODY3MixBLmFycm93ZGFzaHJpZ2h0PTg2NzQsQS5hcnJvd2Rhc2h1cD04NjczLEEuYXJyb3dkYmxib3RoPTg2NjAsQS5hcnJvd2RibGRvd249ODY1OSxBLmFycm93ZGJsbGVmdD04NjU2LEEuYXJyb3dkYmxyaWdodD04NjU4LEEuYXJyb3dkYmx1cD04NjU3LEEuYXJyb3dkb3duPTg1OTUsQS5hcnJvd2Rvd25sZWZ0PTg2MDEsQS5hcnJvd2Rvd25yaWdodD04NjAwLEEuYXJyb3dkb3dud2hpdGU9ODY4MSxBLmFycm93aGVhZGRvd25tb2Q9NzA5LEEuYXJyb3doZWFkbGVmdG1vZD03MDYsQS5hcnJvd2hlYWRyaWdodG1vZD03MDcsQS5hcnJvd2hlYWR1cG1vZD03MDgsQS5hcnJvd2hvcml6ZXg9NjM3MTksQS5hcnJvd2xlZnQ9ODU5MixBLmFycm93bGVmdGRibD04NjU2LEEuYXJyb3dsZWZ0ZGJsc3Ryb2tlPTg2NTMsQS5hcnJvd2xlZnRvdmVycmlnaHQ9ODY0NixBLmFycm93bGVmdHdoaXRlPTg2NzgsQS5hcnJvd3JpZ2h0PTg1OTQsQS5hcnJvd3JpZ2h0ZGJsc3Ryb2tlPTg2NTUsQS5hcnJvd3JpZ2h0aGVhdnk9MTAxNDIsQS5hcnJvd3JpZ2h0b3ZlcmxlZnQ9ODY0NCxBLmFycm93cmlnaHR3aGl0ZT04NjgwLEEuYXJyb3d0YWJsZWZ0PTg2NzYsQS5hcnJvd3RhYnJpZ2h0PTg2NzcsQS5hcnJvd3VwPTg1OTMsQS5hcnJvd3VwZG49ODU5NyxBLmFycm93dXBkbmJzZT04NjE2LEEuYXJyb3d1cGRvd25iYXNlPTg2MTYsQS5hcnJvd3VwbGVmdD04NTk4LEEuYXJyb3d1cGxlZnRvZmRvd249ODY0NSxBLmFycm93dXByaWdodD04NTk5LEEuYXJyb3d1cHdoaXRlPTg2NzksQS5hcnJvd3ZlcnRleD02MzcxOCxBLmFzY2lpY2lyY3VtPTk0LEEuYXNjaWljaXJjdW1tb25vc3BhY2U9NjUzNDIsQS5hc2NpaXRpbGRlPTEyNixBLmFzY2lpdGlsZGVtb25vc3BhY2U9NjUzNzQsQS5hc2NyaXB0PTU5MyxBLmFzY3JpcHR0dXJuZWQ9NTk0LEEuYXNtYWxsaGlyYWdhbmE9MTIzNTMsQS5hc21hbGxrYXRha2FuYT0xMjQ0OSxBLmFzbWFsbGthdGFrYW5haGFsZndpZHRoPTY1MzgzLEEuYXN0ZXJpc2s9NDIsQS5hc3Rlcmlza2FsdG9uZWFyYWJpYz0xNjQ1LEEuYXN0ZXJpc2thcmFiaWM9MTY0NSxBLmFzdGVyaXNrbWF0aD04NzI3LEEuYXN0ZXJpc2ttb25vc3BhY2U9NjUyOTAsQS5hc3Rlcmlza3NtYWxsPTY1MTIxLEEuYXN0ZXJpc209ODI1OCxBLmFzdXBlcmlvcj02MzIwOSxBLmFzeW1wdG90aWNhbGx5ZXF1YWw9ODc3MSxBLmF0PTY0LEEuYXRpbGRlPTIyNyxBLmF0bW9ub3NwYWNlPTY1MzEyLEEuYXRzbWFsbD02NTEzMSxBLmF0dXJuZWQ9NTkyLEEuYXViZW5nYWxpPTI0NTIsQS5hdWJvcG9tb2ZvPTEyNTc2LEEuYXVkZXZhPTIzMjQsQS5hdWd1amFyYXRpPTI3MDgsQS5hdWd1cm11a2hpPTI1ODAsQS5hdWxlbmd0aG1hcmtiZW5nYWxpPTI1MTksQS5hdW1hdHJhZ3VybXVraGk9MjYzNixBLmF1dm93ZWxzaWduYmVuZ2FsaT0yNTA4LEEuYXV2b3dlbHNpZ25kZXZhPTIzODAsQS5hdXZvd2Vsc2lnbmd1amFyYXRpPTI3NjQsQS5hdmFncmFoYWRldmE9MjM2NSxBLmF5YmFybWVuaWFuPTEzNzcsQS5heWluPTE1MDYsQS5heWluYWx0b25laGVicmV3PTY0Mjg4LEEuYXlpbmhlYnJldz0xNTA2LEEuYj05OCxBLmJhYmVuZ2FsaT0yNDc2LEEuYmFja3NsYXNoPTkyLEEuYmFja3NsYXNobW9ub3NwYWNlPTY1MzQwLEEuYmFkZXZhPTIzNDgsQS5iYWd1amFyYXRpPTI3MzIsQS5iYWd1cm11a2hpPTI2MDQsQS5iYWhpcmFnYW5hPTEyNDAwLEEuYmFodHRoYWk9MzY0NyxBLmJha2F0YWthbmE9MTI0OTYsQS5iYXI9MTI0LEEuYmFybW9ub3NwYWNlPTY1MzcyLEEuYmJvcG9tb2ZvPTEyNTQ5LEEuYmNpcmNsZT05NDI1LEEuYmRvdGFjY2VudD03NjgzLEEuYmRvdGJlbG93PTc2ODUsQS5iZWFtZWRzaXh0ZWVudGhub3Rlcz05ODM2LEEuYmVjYXVzZT04NzU3LEEuYmVjeXJpbGxpYz0xMDczLEEuYmVoYXJhYmljPTE1NzYsQS5iZWhmaW5hbGFyYWJpYz02NTE2OCxBLmJlaGluaXRpYWxhcmFiaWM9NjUxNjksQS5iZWhpcmFnYW5hPTEyNDA5LEEuYmVobWVkaWFsYXJhYmljPTY1MTcwLEEuYmVobWVlbWluaXRpYWxhcmFiaWM9NjQ2NzEsQS5iZWhtZWVtaXNvbGF0ZWRhcmFiaWM9NjQ1MjAsQS5iZWhub29uZmluYWxhcmFiaWM9NjQ2MjEsQS5iZWthdGFrYW5hPTEyNTA1LEEuYmVuYXJtZW5pYW49MTM3OCxBLmJldD0xNDg5LEEuYmV0YT05NDYsQS5iZXRhc3ltYm9sZ3JlZWs9OTc2LEEuYmV0ZGFnZXNoPTY0MzA1LEEuYmV0ZGFnZXNoaGVicmV3PTY0MzA1LEEuYmV0aGVicmV3PTE0ODksQS5iZXRyYWZlaGVicmV3PTY0MzMyLEEuYmhhYmVuZ2FsaT0yNDc3LEEuYmhhZGV2YT0yMzQ5LEEuYmhhZ3VqYXJhdGk9MjczMyxBLmJoYWd1cm11a2hpPTI2MDUsQS5iaG9vaz01OTUsQS5iaWhpcmFnYW5hPTEyNDAzLEEuYmlrYXRha2FuYT0xMjQ5OSxBLmJpbGFiaWFsY2xpY2s9NjY0LEEuYmluZGlndXJtdWtoaT0yNTYyLEEuYmlydXNxdWFyZT0xMzEwNSxBLmJsYWNrY2lyY2xlPTk2NzksQS5ibGFja2RpYW1vbmQ9OTY3MCxBLmJsYWNrZG93bnBvaW50aW5ndHJpYW5nbGU9OTY2MCxBLmJsYWNrbGVmdHBvaW50aW5ncG9pbnRlcj05NjY4LEEuYmxhY2tsZWZ0cG9pbnRpbmd0cmlhbmdsZT05NjY0LEEuYmxhY2tsZW50aWN1bGFyYnJhY2tldGxlZnQ9MTIzMDQsQS5ibGFja2xlbnRpY3VsYXJicmFja2V0bGVmdHZlcnRpY2FsPTY1MDgzLEEuYmxhY2tsZW50aWN1bGFyYnJhY2tldHJpZ2h0PTEyMzA1LEEuYmxhY2tsZW50aWN1bGFyYnJhY2tldHJpZ2h0dmVydGljYWw9NjUwODQsQS5ibGFja2xvd2VybGVmdHRyaWFuZ2xlPTk2OTksQS5ibGFja2xvd2VycmlnaHR0cmlhbmdsZT05Njk4LEEuYmxhY2tyZWN0YW5nbGU9OTY0NCxBLmJsYWNrcmlnaHRwb2ludGluZ3BvaW50ZXI9OTY1OCxBLmJsYWNrcmlnaHRwb2ludGluZ3RyaWFuZ2xlPTk2NTQsQS5ibGFja3NtYWxsc3F1YXJlPTk2NDIsQS5ibGFja3NtaWxpbmdmYWNlPTk3ODcsQS5ibGFja3NxdWFyZT05NjMyLEEuYmxhY2tzdGFyPTk3MzMsQS5ibGFja3VwcGVybGVmdHRyaWFuZ2xlPTk3MDAsQS5ibGFja3VwcGVycmlnaHR0cmlhbmdsZT05NzAxLEEuYmxhY2t1cHBvaW50aW5nc21hbGx0cmlhbmdsZT05NjUyLEEuYmxhY2t1cHBvaW50aW5ndHJpYW5nbGU9OTY1MCxBLmJsYW5rPTkyNTEsQS5ibGluZWJlbG93PTc2ODcsQS5ibG9jaz05NjA4LEEuYm1vbm9zcGFjZT02NTM0NixBLmJvYmFpbWFpdGhhaT0zNjEwLEEuYm9oaXJhZ2FuYT0xMjQxMixBLmJva2F0YWthbmE9MTI1MDgsQS5icGFyZW49OTM3MyxBLmJxc3F1YXJlPTEzMjUxLEEuYnJhY2VleD02MzczMixBLmJyYWNlbGVmdD0xMjMsQS5icmFjZWxlZnRidD02MzczMSxBLmJyYWNlbGVmdG1pZD02MzczMCxBLmJyYWNlbGVmdG1vbm9zcGFjZT02NTM3MSxBLmJyYWNlbGVmdHNtYWxsPTY1MTE1LEEuYnJhY2VsZWZ0dHA9NjM3MjksQS5icmFjZWxlZnR2ZXJ0aWNhbD02NTA3OSxBLmJyYWNlcmlnaHQ9MTI1LEEuYnJhY2VyaWdodGJ0PTYzNzQyLEEuYnJhY2VyaWdodG1pZD02Mzc0MSxBLmJyYWNlcmlnaHRtb25vc3BhY2U9NjUzNzMsQS5icmFjZXJpZ2h0c21hbGw9NjUxMTYsQS5icmFjZXJpZ2h0dHA9NjM3NDAsQS5icmFjZXJpZ2h0dmVydGljYWw9NjUwODAsQS5icmFja2V0bGVmdD05MSxBLmJyYWNrZXRsZWZ0YnQ9NjM3MjgsQS5icmFja2V0bGVmdGV4PTYzNzI3LEEuYnJhY2tldGxlZnRtb25vc3BhY2U9NjUzMzksQS5icmFja2V0bGVmdHRwPTYzNzI2LEEuYnJhY2tldHJpZ2h0PTkzLEEuYnJhY2tldHJpZ2h0YnQ9NjM3MzksQS5icmFja2V0cmlnaHRleD02MzczOCxBLmJyYWNrZXRyaWdodG1vbm9zcGFjZT02NTM0MSxBLmJyYWNrZXRyaWdodHRwPTYzNzM3LEEuYnJldmU9NzI4LEEuYnJldmViZWxvd2NtYj04MTQsQS5icmV2ZWNtYj03NzQsQS5icmV2ZWludmVydGVkYmVsb3djbWI9ODE1LEEuYnJldmVpbnZlcnRlZGNtYj03ODUsQS5icmV2ZWludmVydGVkZG91YmxlY21iPTg2NSxBLmJyaWRnZWJlbG93Y21iPTgxMCxBLmJyaWRnZWludmVydGVkYmVsb3djbWI9ODI2LEEuYnJva2VuYmFyPTE2NixBLmJzdHJva2U9Mzg0LEEuYnN1cGVyaW9yPTYzMjEwLEEuYnRvcGJhcj0zODcsQS5idWhpcmFnYW5hPTEyNDA2LEEuYnVrYXRha2FuYT0xMjUwMixBLmJ1bGxldD04MjI2LEEuYnVsbGV0aW52ZXJzZT05Njg4LEEuYnVsbGV0b3BlcmF0b3I9ODcyOSxBLmJ1bGxzZXllPTk2NzgsQS5jPTk5LEEuY2Fhcm1lbmlhbj0xMzkwLEEuY2FiZW5nYWxpPTI0NTgsQS5jYWN1dGU9MjYzLEEuY2FkZXZhPTIzMzAsQS5jYWd1amFyYXRpPTI3MTQsQS5jYWd1cm11a2hpPTI1ODYsQS5jYWxzcXVhcmU9MTMxOTIsQS5jYW5kcmFiaW5kdWJlbmdhbGk9MjQzMyxBLmNhbmRyYWJpbmR1Y21iPTc4NCxBLmNhbmRyYWJpbmR1ZGV2YT0yMzA1LEEuY2FuZHJhYmluZHVndWphcmF0aT0yNjg5LEEuY2Fwc2xvY2s9ODY4MixBLmNhcmVvZj04NDUzLEEuY2Fyb249NzExLEEuY2Fyb25iZWxvd2NtYj04MTIsQS5jYXJvbmNtYj03ODAsQS5jYXJyaWFnZXJldHVybj04NjI5LEEuY2JvcG9tb2ZvPTEyNTY4LEEuY2Nhcm9uPTI2OSxBLmNjZWRpbGxhPTIzMSxBLmNjZWRpbGxhYWN1dGU9NzY4OSxBLmNjaXJjbGU9OTQyNixBLmNjaXJjdW1mbGV4PTI2NSxBLmNjdXJsPTU5NyxBLmNkb3Q9MjY3LEEuY2RvdGFjY2VudD0yNjcsQS5jZHNxdWFyZT0xMzI1MyxBLmNlZGlsbGE9MTg0LEEuY2VkaWxsYWNtYj04MDcsQS5jZW50PTE2MixBLmNlbnRpZ3JhZGU9ODQ1MSxBLmNlbnRpbmZlcmlvcj02MzE5OSxBLmNlbnRtb25vc3BhY2U9NjU1MDQsQS5jZW50b2xkc3R5bGU9NjMzOTQsQS5jZW50c3VwZXJpb3I9NjMyMDAsQS5jaGFhcm1lbmlhbj0xNDAxLEEuY2hhYmVuZ2FsaT0yNDU5LEEuY2hhZGV2YT0yMzMxLEEuY2hhZ3VqYXJhdGk9MjcxNSxBLmNoYWd1cm11a2hpPTI1ODcsQS5jaGJvcG9tb2ZvPTEyNTY0LEEuY2hlYWJraGFzaWFuY3lyaWxsaWM9MTIxMyxBLmNoZWNrbWFyaz0xMDAwMyxBLmNoZWN5cmlsbGljPTEwOTUsQS5jaGVkZXNjZW5kZXJhYmtoYXNpYW5jeXJpbGxpYz0xMjE1LEEuY2hlZGVzY2VuZGVyY3lyaWxsaWM9MTIwNyxBLmNoZWRpZXJlc2lzY3lyaWxsaWM9MTI2OSxBLmNoZWhhcm1lbmlhbj0xMzk1LEEuY2hla2hha2Fzc2lhbmN5cmlsbGljPTEyMjgsQS5jaGV2ZXJ0aWNhbHN0cm9rZWN5cmlsbGljPTEyMDksQS5jaGk9OTY3LEEuY2hpZXVjaGFjaXJjbGVrb3JlYW49MTI5MTksQS5jaGlldWNoYXBhcmVua29yZWFuPTEyODIzLEEuY2hpZXVjaGNpcmNsZWtvcmVhbj0xMjkwNSxBLmNoaWV1Y2hrb3JlYW49MTI2MTgsQS5jaGlldWNocGFyZW5rb3JlYW49MTI4MDksQS5jaG9jaGFuZ3RoYWk9MzU5NCxBLmNob2NoYW50aGFpPTM1OTIsQS5jaG9jaGluZ3RoYWk9MzU5MyxBLmNob2Nob2V0aGFpPTM1OTYsQS5jaG9vaz0zOTIsQS5jaWV1Y2FjaXJjbGVrb3JlYW49MTI5MTgsQS5jaWV1Y2FwYXJlbmtvcmVhbj0xMjgyMixBLmNpZXVjY2lyY2xla29yZWFuPTEyOTA0LEEuY2lldWNrb3JlYW49MTI2MTYsQS5jaWV1Y3BhcmVua29yZWFuPTEyODA4LEEuY2lldWN1cGFyZW5rb3JlYW49MTI4MjgsQS5jaXJjbGU9OTY3NSxBLmNpcmNsZWNvcHlydD0xNjksQS5jaXJjbGVtdWx0aXBseT04ODU1LEEuY2lyY2xlb3Q9ODg1NyxBLmNpcmNsZXBsdXM9ODg1MyxBLmNpcmNsZXBvc3RhbG1hcms9MTIzNDIsQS5jaXJjbGV3aXRobGVmdGhhbGZibGFjaz05NjgwLEEuY2lyY2xld2l0aHJpZ2h0aGFsZmJsYWNrPTk2ODEsQS5jaXJjdW1mbGV4PTcxMCxBLmNpcmN1bWZsZXhiZWxvd2NtYj04MTMsQS5jaXJjdW1mbGV4Y21iPTc3MCxBLmNsZWFyPTg5OTksQS5jbGlja2FsdmVvbGFyPTQ1MCxBLmNsaWNrZGVudGFsPTQ0OCxBLmNsaWNrbGF0ZXJhbD00NDksQS5jbGlja3JldHJvZmxleD00NTEsQS5jbHViPTk4MjcsQS5jbHVic3VpdGJsYWNrPTk4MjcsQS5jbHVic3VpdHdoaXRlPTk4MzEsQS5jbWN1YmVkc3F1YXJlPTEzMjIwLEEuY21vbm9zcGFjZT02NTM0NyxBLmNtc3F1YXJlZHNxdWFyZT0xMzIxNixBLmNvYXJtZW5pYW49MTQwOSxBLmNvbG9uPTU4LEEuY29sb25tb25ldGFyeT04MzUzLEEuY29sb25tb25vc3BhY2U9NjUzMDYsQS5jb2xvbnNpZ249ODM1MyxBLmNvbG9uc21hbGw9NjUxMDksQS5jb2xvbnRyaWFuZ3VsYXJoYWxmbW9kPTcyMSxBLmNvbG9udHJpYW5ndWxhcm1vZD03MjAsQS5jb21tYT00NCxBLmNvbW1hYWJvdmVjbWI9Nzg3LEEuY29tbWFhYm92ZXJpZ2h0Y21iPTc4OSxBLmNvbW1hYWNjZW50PTYzMTcxLEEuY29tbWFhcmFiaWM9MTU0OCxBLmNvbW1hYXJtZW5pYW49MTM3MyxBLmNvbW1haW5mZXJpb3I9NjMyMDEsQS5jb21tYW1vbm9zcGFjZT02NTI5MixBLmNvbW1hcmV2ZXJzZWRhYm92ZWNtYj03ODgsQS5jb21tYXJldmVyc2VkbW9kPTcwMSxBLmNvbW1hc21hbGw9NjUxMDQsQS5jb21tYXN1cGVyaW9yPTYzMjAyLEEuY29tbWF0dXJuZWRhYm92ZWNtYj03ODYsQS5jb21tYXR1cm5lZG1vZD02OTksQS5jb21wYXNzPTk3ODgsQS5jb25ncnVlbnQ9ODc3MyxBLmNvbnRvdXJpbnRlZ3JhbD04NzUwLEEuY29udHJvbD04OTYzLEEuY29udHJvbEFDSz02LEEuY29udHJvbEJFTD03LEEuY29udHJvbEJTPTgsQS5jb250cm9sQ0FOPTI0LEEuY29udHJvbENSPTEzLEEuY29udHJvbERDMT0xNyxBLmNvbnRyb2xEQzI9MTgsQS5jb250cm9sREMzPTE5LEEuY29udHJvbERDND0yMCxBLmNvbnRyb2xERUw9MTI3LEEuY29udHJvbERMRT0xNixBLmNvbnRyb2xFTT0yNSxBLmNvbnRyb2xFTlE9NSxBLmNvbnRyb2xFT1Q9NCxBLmNvbnRyb2xFU0M9MjcsQS5jb250cm9sRVRCPTIzLEEuY29udHJvbEVUWD0zLEEuY29udHJvbEZGPTEyLEEuY29udHJvbEZTPTI4LEEuY29udHJvbEdTPTI5LEEuY29udHJvbEhUPTksQS5jb250cm9sTEY9MTAsQS5jb250cm9sTkFLPTIxLEEuY29udHJvbE5VTEw9MCxBLmNvbnRyb2xSUz0zMCxBLmNvbnRyb2xTST0xNSxBLmNvbnRyb2xTTz0xNCxBLmNvbnRyb2xTT1Q9MixBLmNvbnRyb2xTVFg9MSxBLmNvbnRyb2xTVUI9MjYsQS5jb250cm9sU1lOPTIyLEEuY29udHJvbFVTPTMxLEEuY29udHJvbFZUPTExLEEuY29weXJpZ2h0PTE2OSxBLmNvcHlyaWdodHNhbnM9NjM3MjEsQS5jb3B5cmlnaHRzZXJpZj02MzE5MyxBLmNvcm5lcmJyYWNrZXRsZWZ0PTEyMzAwLEEuY29ybmVyYnJhY2tldGxlZnRoYWxmd2lkdGg9NjUzNzgsQS5jb3JuZXJicmFja2V0bGVmdHZlcnRpY2FsPTY1MDg5LEEuY29ybmVyYnJhY2tldHJpZ2h0PTEyMzAxLEEuY29ybmVyYnJhY2tldHJpZ2h0aGFsZndpZHRoPTY1Mzc5LEEuY29ybmVyYnJhY2tldHJpZ2h0dmVydGljYWw9NjUwOTAsQS5jb3Jwb3JhdGlvbnNxdWFyZT0xMzE4MyxBLmNvc3F1YXJlPTEzMjU1LEEuY292ZXJrZ3NxdWFyZT0xMzI1NCxBLmNwYXJlbj05Mzc0LEEuY3J1emVpcm89ODM1NCxBLmNzdHJldGNoZWQ9NjYzLEEuY3VybHlhbmQ9ODkxMSxBLmN1cmx5b3I9ODkxMCxBLmN1cnJlbmN5PTE2NCxBLmN5ckJyZXZlPTYzMTg1LEEuY3lyRmxleD02MzE4NixBLmN5cmJyZXZlPTYzMTg4LEEuY3lyZmxleD02MzE4OSxBLmQ9MTAwLEEuZGFhcm1lbmlhbj0xMzgwLEEuZGFiZW5nYWxpPTI0NzAsQS5kYWRhcmFiaWM9MTU5MCxBLmRhZGV2YT0yMzQyLEEuZGFkZmluYWxhcmFiaWM9NjUyMTQsQS5kYWRpbml0aWFsYXJhYmljPTY1MjE1LEEuZGFkbWVkaWFsYXJhYmljPTY1MjE2LEEuZGFnZXNoPTE0NjgsQS5kYWdlc2hoZWJyZXc9MTQ2OCxBLmRhZ2dlcj04MjI0LEEuZGFnZ2VyZGJsPTgyMjUsQS5kYWd1amFyYXRpPTI3MjYsQS5kYWd1cm11a2hpPTI1OTgsQS5kYWhpcmFnYW5hPTEyMzg0LEEuZGFrYXRha2FuYT0xMjQ4MCxBLmRhbGFyYWJpYz0xNTgzLEEuZGFsZXQ9MTQ5MSxBLmRhbGV0ZGFnZXNoPTY0MzA3LEEuZGFsZXRkYWdlc2hoZWJyZXc9NjQzMDcsQS5kYWxldGhlYnJldz0xNDkxLEEuZGFsZmluYWxhcmFiaWM9NjUxOTQsQS5kYW1tYWFyYWJpYz0xNjE1LEEuZGFtbWFsb3dhcmFiaWM9MTYxNSxBLmRhbW1hdGFuYWx0b25lYXJhYmljPTE2MTIsQS5kYW1tYXRhbmFyYWJpYz0xNjEyLEEuZGFuZGE9MjQwNCxBLmRhcmdhaGVicmV3PTE0NDcsQS5kYXJnYWxlZnRoZWJyZXc9MTQ0NyxBLmRhc2lhcG5ldW1hdGFjeXJpbGxpY2NtYj0xMTU3LEEuZGJsR3JhdmU9NjMxODcsQS5kYmxhbmdsZWJyYWNrZXRsZWZ0PTEyMjk4LEEuZGJsYW5nbGVicmFja2V0bGVmdHZlcnRpY2FsPTY1MDg1LEEuZGJsYW5nbGVicmFja2V0cmlnaHQ9MTIyOTksQS5kYmxhbmdsZWJyYWNrZXRyaWdodHZlcnRpY2FsPTY1MDg2LEEuZGJsYXJjaGludmVydGVkYmVsb3djbWI9ODExLEEuZGJsYXJyb3dsZWZ0PTg2NjAsQS5kYmxhcnJvd3JpZ2h0PTg2NTgsQS5kYmxkYW5kYT0yNDA1LEEuZGJsZ3JhdmU9NjMxOTAsQS5kYmxncmF2ZWNtYj03ODMsQS5kYmxpbnRlZ3JhbD04NzQ4LEEuZGJsbG93bGluZT04MjE1LEEuZGJsbG93bGluZWNtYj04MTksQS5kYmxvdmVybGluZWNtYj04MzEsQS5kYmxwcmltZW1vZD02OTgsQS5kYmx2ZXJ0aWNhbGJhcj04MjE0LEEuZGJsdmVydGljYWxsaW5lYWJvdmVjbWI9NzgyLEEuZGJvcG9tb2ZvPTEyNTUzLEEuZGJzcXVhcmU9MTMyNTYsQS5kY2Fyb249MjcxLEEuZGNlZGlsbGE9NzY5NyxBLmRjaXJjbGU9OTQyNyxBLmRjaXJjdW1mbGV4YmVsb3c9NzY5OSxBLmRjcm9hdD0yNzMsQS5kZGFiZW5nYWxpPTI0NjUsQS5kZGFkZXZhPTIzMzcsQS5kZGFndWphcmF0aT0yNzIxLEEuZGRhZ3VybXVraGk9MjU5MyxBLmRkYWxhcmFiaWM9MTY3MixBLmRkYWxmaW5hbGFyYWJpYz02NDM5MyxBLmRkZGhhZGV2YT0yMzk2LEEuZGRoYWJlbmdhbGk9MjQ2NixBLmRkaGFkZXZhPTIzMzgsQS5kZGhhZ3VqYXJhdGk9MjcyMixBLmRkaGFndXJtdWtoaT0yNTk0LEEuZGRvdGFjY2VudD03NjkxLEEuZGRvdGJlbG93PTc2OTMsQS5kZWNpbWFsc2VwYXJhdG9yYXJhYmljPTE2NDMsQS5kZWNpbWFsc2VwYXJhdG9ycGVyc2lhbj0xNjQzLEEuZGVjeXJpbGxpYz0xMDc2LEEuZGVncmVlPTE3NixBLmRlaGloZWJyZXc9MTQ1MyxBLmRlaGlyYWdhbmE9MTIzOTEsQS5kZWljb3B0aWM9MTAwNyxBLmRla2F0YWthbmE9MTI0ODcsQS5kZWxldGVsZWZ0PTkwMDMsQS5kZWxldGVyaWdodD04OTk4LEEuZGVsdGE9OTQ4LEEuZGVsdGF0dXJuZWQ9Mzk3LEEuZGVub21pbmF0b3JtaW51c29uZW51bWVyYXRvcmJlbmdhbGk9MjU1MixBLmRlemg9Njc2LEEuZGhhYmVuZ2FsaT0yNDcxLEEuZGhhZGV2YT0yMzQzLEEuZGhhZ3VqYXJhdGk9MjcyNyxBLmRoYWd1cm11a2hpPTI1OTksQS5kaG9vaz01OTksQS5kaWFseXRpa2F0b25vcz05MDEsQS5kaWFseXRpa2F0b25vc2NtYj04MzYsQS5kaWFtb25kPTk4MzAsQS5kaWFtb25kc3VpdHdoaXRlPTk4MjYsQS5kaWVyZXNpcz0xNjgsQS5kaWVyZXNpc2FjdXRlPTYzMTkxLEEuZGllcmVzaXNiZWxvd2NtYj04MDQsQS5kaWVyZXNpc2NtYj03NzYsQS5kaWVyZXNpc2dyYXZlPTYzMTkyLEEuZGllcmVzaXN0b25vcz05MDEsQS5kaWhpcmFnYW5hPTEyMzg2LEEuZGlrYXRha2FuYT0xMjQ4MixBLmRpdHRvbWFyaz0xMjI5MSxBLmRpdmlkZT0yNDcsQS5kaXZpZGVzPTg3MzksQS5kaXZpc2lvbnNsYXNoPTg3MjUsQS5kamVjeXJpbGxpYz0xMTA2LEEuZGtzaGFkZT05NjE5LEEuZGxpbmViZWxvdz03Njk1LEEuZGxzcXVhcmU9MTMyMDcsQS5kbWFjcm9uPTI3MyxBLmRtb25vc3BhY2U9NjUzNDgsQS5kbmJsb2NrPTk2MDQsQS5kb2NoYWRhdGhhaT0zNTk4LEEuZG9kZWt0aGFpPTM2MDQsQS5kb2hpcmFnYW5hPTEyMzkzLEEuZG9rYXRha2FuYT0xMjQ4OSxBLmRvbGxhcj0zNjtBLmRvbGxhcmluZmVyaW9yPTYzMjAzLEEuZG9sbGFybW9ub3NwYWNlPTY1Mjg0LEEuZG9sbGFyb2xkc3R5bGU9NjMyNjgsQS5kb2xsYXJzbWFsbD02NTEyOSxBLmRvbGxhcnN1cGVyaW9yPTYzMjA0LEEuZG9uZz04MzYzLEEuZG9ydXNxdWFyZT0xMzA5NCxBLmRvdGFjY2VudD03MjksQS5kb3RhY2NlbnRjbWI9Nzc1LEEuZG90YmVsb3djbWI9ODAzLEEuZG90YmVsb3djb21iPTgwMyxBLmRvdGthdGFrYW5hPTEyNTM5LEEuZG90bGVzc2k9MzA1LEEuZG90bGVzc2o9NjMxNjYsQS5kb3RsZXNzanN0cm9rZWhvb2s9NjQ0LEEuZG90bWF0aD04OTAxLEEuZG90dGVkY2lyY2xlPTk2NzYsQS5kb3VibGV5b2RwYXRhaD02NDI4NyxBLmRvdWJsZXlvZHBhdGFoaGVicmV3PTY0Mjg3LEEuZG93bnRhY2tiZWxvd2NtYj03OTgsQS5kb3dudGFja21vZD03MjUsQS5kcGFyZW49OTM3NSxBLmRzdXBlcmlvcj02MzIxMSxBLmR0YWlsPTU5OCxBLmR0b3BiYXI9Mzk2LEEuZHVoaXJhZ2FuYT0xMjM4OSxBLmR1a2F0YWthbmE9MTI0ODUsQS5kej00OTksQS5kemFsdG9uZT02NzUsQS5kemNhcm9uPTQ1NCxBLmR6Y3VybD02NzcsQS5kemVhYmtoYXNpYW5jeXJpbGxpYz0xMjQ5LEEuZHplY3lyaWxsaWM9MTEwOSxBLmR6aGVjeXJpbGxpYz0xMTE5LEEuZT0xMDEsQS5lYWN1dGU9MjMzLEEuZWFydGg9OTc5MyxBLmViZW5nYWxpPTI0NDcsQS5lYm9wb21vZm89MTI1NzIsQS5lYnJldmU9Mjc3LEEuZWNhbmRyYWRldmE9MjMxNyxBLmVjYW5kcmFndWphcmF0aT0yNzAxLEEuZWNhbmRyYXZvd2Vsc2lnbmRldmE9MjM3MyxBLmVjYW5kcmF2b3dlbHNpZ25ndWphcmF0aT0yNzU3LEEuZWNhcm9uPTI4MyxBLmVjZWRpbGxhYnJldmU9NzcwOSxBLmVjaGFybWVuaWFuPTEzODEsQS5lY2h5aXduYXJtZW5pYW49MTQxNSxBLmVjaXJjbGU9OTQyOCxBLmVjaXJjdW1mbGV4PTIzNCxBLmVjaXJjdW1mbGV4YWN1dGU9Nzg3MSxBLmVjaXJjdW1mbGV4YmVsb3c9NzcwNSxBLmVjaXJjdW1mbGV4ZG90YmVsb3c9Nzg3OSxBLmVjaXJjdW1mbGV4Z3JhdmU9Nzg3MyxBLmVjaXJjdW1mbGV4aG9va2Fib3ZlPTc4NzUsQS5lY2lyY3VtZmxleHRpbGRlPTc4NzcsQS5lY3lyaWxsaWM9MTEwOCxBLmVkYmxncmF2ZT01MTcsQS5lZGV2YT0yMzE5LEEuZWRpZXJlc2lzPTIzNSxBLmVkb3Q9Mjc5LEEuZWRvdGFjY2VudD0yNzksQS5lZG90YmVsb3c9Nzg2NSxBLmVlZ3VybXVraGk9MjU3NSxBLmVlbWF0cmFndXJtdWtoaT0yNjMxLEEuZWZjeXJpbGxpYz0xMDkyLEEuZWdyYXZlPTIzMixBLmVndWphcmF0aT0yNzAzLEEuZWhhcm1lbmlhbj0xMzgzLEEuZWhib3BvbW9mbz0xMjU3MyxBLmVoaXJhZ2FuYT0xMjM2MCxBLmVob29rYWJvdmU9Nzg2NyxBLmVpYm9wb21vZm89MTI1NzUsQS5laWdodD01NixBLmVpZ2h0YXJhYmljPTE2NDAsQS5laWdodGJlbmdhbGk9MjU0MixBLmVpZ2h0Y2lyY2xlPTkzMTksQS5laWdodGNpcmNsZWludmVyc2VzYW5zc2VyaWY9MTAxMjksQS5laWdodGRldmE9MjQxNCxBLmVpZ2h0ZWVuY2lyY2xlPTkzMjksQS5laWdodGVlbnBhcmVuPTkzNDksQS5laWdodGVlbnBlcmlvZD05MzY5LEEuZWlnaHRndWphcmF0aT0yNzk4LEEuZWlnaHRndXJtdWtoaT0yNjcwLEEuZWlnaHRoYWNrYXJhYmljPTE2NDAsQS5laWdodGhhbmd6aG91PTEyMzI4LEEuZWlnaHRobm90ZWJlYW1lZD05ODM1LEEuZWlnaHRpZGVvZ3JhcGhpY3BhcmVuPTEyODM5LEEuZWlnaHRpbmZlcmlvcj04MzI4LEEuZWlnaHRtb25vc3BhY2U9NjUzMDQsQS5laWdodG9sZHN0eWxlPTYzMjg4LEEuZWlnaHRwYXJlbj05MzM5LEEuZWlnaHRwZXJpb2Q9OTM1OSxBLmVpZ2h0cGVyc2lhbj0xNzg0LEEuZWlnaHRyb21hbj04NTY3LEEuZWlnaHRzdXBlcmlvcj04MzEyLEEuZWlnaHR0aGFpPTM2NzIsQS5laW52ZXJ0ZWRicmV2ZT01MTksQS5laW90aWZpZWRjeXJpbGxpYz0xMTI1LEEuZWthdGFrYW5hPTEyNDU2LEEuZWthdGFrYW5haGFsZndpZHRoPTY1Mzk2LEEuZWtvbmthcmd1cm11a2hpPTI2NzYsQS5la29yZWFuPTEyNjI4LEEuZWxjeXJpbGxpYz0xMDgzLEEuZWxlbWVudD04NzEyLEEuZWxldmVuY2lyY2xlPTkzMjIsQS5lbGV2ZW5wYXJlbj05MzQyLEEuZWxldmVucGVyaW9kPTkzNjIsQS5lbGV2ZW5yb21hbj04NTcwLEEuZWxsaXBzaXM9ODIzMCxBLmVsbGlwc2lzdmVydGljYWw9ODk0MixBLmVtYWNyb249Mjc1LEEuZW1hY3JvbmFjdXRlPTc3MDMsQS5lbWFjcm9uZ3JhdmU9NzcwMSxBLmVtY3lyaWxsaWM9MTA4NCxBLmVtZGFzaD04MjEyLEEuZW1kYXNodmVydGljYWw9NjUwNzMsQS5lbW9ub3NwYWNlPTY1MzQ5LEEuZW1waGFzaXNtYXJrYXJtZW5pYW49MTM3MSxBLmVtcHR5c2V0PTg3MDksQS5lbmJvcG9tb2ZvPTEyNTc5LEEuZW5jeXJpbGxpYz0xMDg1LEEuZW5kYXNoPTgyMTEsQS5lbmRhc2h2ZXJ0aWNhbD02NTA3NCxBLmVuZGVzY2VuZGVyY3lyaWxsaWM9MTE4NyxBLmVuZz0zMzEsQS5lbmdib3BvbW9mbz0xMjU4MSxBLmVuZ2hlY3lyaWxsaWM9MTE4OSxBLmVuaG9va2N5cmlsbGljPTEyMjQsQS5lbnNwYWNlPTgxOTQsQS5lb2dvbmVrPTI4MSxBLmVva29yZWFuPTEyNjI3LEEuZW9wZW49NjAzLEEuZW9wZW5jbG9zZWQ9NjY2LEEuZW9wZW5yZXZlcnNlZD02MDQsQS5lb3BlbnJldmVyc2VkY2xvc2VkPTYwNixBLmVvcGVucmV2ZXJzZWRob29rPTYwNSxBLmVwYXJlbj05Mzc2LEEuZXBzaWxvbj05NDksQS5lcHNpbG9udG9ub3M9OTQxLEEuZXF1YWw9NjEsQS5lcXVhbG1vbm9zcGFjZT02NTMwOSxBLmVxdWFsc21hbGw9NjUxMjYsQS5lcXVhbHN1cGVyaW9yPTgzMTYsQS5lcXVpdmFsZW5jZT04ODAxLEEuZXJib3BvbW9mbz0xMjU4MixBLmVyY3lyaWxsaWM9MTA4OCxBLmVyZXZlcnNlZD02MDAsQS5lcmV2ZXJzZWRjeXJpbGxpYz0xMTAxLEEuZXNjeXJpbGxpYz0xMDg5LEEuZXNkZXNjZW5kZXJjeXJpbGxpYz0xMTk1LEEuZXNoPTY0MyxBLmVzaGN1cmw9NjQ2LEEuZXNob3J0ZGV2YT0yMzE4LEEuZXNob3J0dm93ZWxzaWduZGV2YT0yMzc0LEEuZXNocmV2ZXJzZWRsb29wPTQyNixBLmVzaHNxdWF0cmV2ZXJzZWQ9NjQ1LEEuZXNtYWxsaGlyYWdhbmE9MTIzNTksQS5lc21hbGxrYXRha2FuYT0xMjQ1NSxBLmVzbWFsbGthdGFrYW5haGFsZndpZHRoPTY1Mzg2LEEuZXN0aW1hdGVkPTg0OTQsQS5lc3VwZXJpb3I9NjMyMTIsQS5ldGE9OTUxLEEuZXRhcm1lbmlhbj0xMzg0LEEuZXRhdG9ub3M9OTQyLEEuZXRoPTI0MCxBLmV0aWxkZT03ODY5LEEuZXRpbGRlYmVsb3c9NzcwNyxBLmV0bmFodGFmb3VraGhlYnJldz0xNDI1LEEuZXRuYWh0YWZvdWtobGVmdGhlYnJldz0xNDI1LEEuZXRuYWh0YWhlYnJldz0xNDI1LEEuZXRuYWh0YWxlZnRoZWJyZXc9MTQyNSxBLmV0dXJuZWQ9NDc3LEEuZXVrb3JlYW49MTI2NDEsQS5ldXJvPTgzNjQsQS5ldm93ZWxzaWduYmVuZ2FsaT0yNTAzLEEuZXZvd2Vsc2lnbmRldmE9MjM3NSxBLmV2b3dlbHNpZ25ndWphcmF0aT0yNzU5LEEuZXhjbGFtPTMzLEEuZXhjbGFtYXJtZW5pYW49MTM3MixBLmV4Y2xhbWRibD04MjUyLEEuZXhjbGFtZG93bj0xNjEsQS5leGNsYW1kb3duc21hbGw9NjMzOTMsQS5leGNsYW1tb25vc3BhY2U9NjUyODEsQS5leGNsYW1zbWFsbD02MzI2NSxBLmV4aXN0ZW50aWFsPTg3MDcsQS5lemg9NjU4LEEuZXpoY2Fyb249NDk1LEEuZXpoY3VybD02NTksQS5lemhyZXZlcnNlZD00NDEsQS5lemh0YWlsPTQ0MixBLmY9MTAyLEEuZmFkZXZhPTIzOTgsQS5mYWd1cm11a2hpPTI2NTQsQS5mYWhyZW5oZWl0PTg0NTcsQS5mYXRoYWFyYWJpYz0xNjE0LEEuZmF0aGFsb3dhcmFiaWM9MTYxNCxBLmZhdGhhdGFuYXJhYmljPTE2MTEsQS5mYm9wb21vZm89MTI1NTIsQS5mY2lyY2xlPTk0MjksQS5mZG90YWNjZW50PTc3MTEsQS5mZWhhcmFiaWM9MTYwMSxBLmZlaGFybWVuaWFuPTE0MTQsQS5mZWhmaW5hbGFyYWJpYz02NTIzNCxBLmZlaGluaXRpYWxhcmFiaWM9NjUyMzUsQS5mZWhtZWRpYWxhcmFiaWM9NjUyMzYsQS5mZWljb3B0aWM9OTk3LEEuZmVtYWxlPTk3OTIsQS5mZj02NDI1NixBLmZfZj02NDI1NixBLmZmaT02NDI1OSxBLmZfZl9pPTY0MjU5LEEuZmZsPTY0MjYwLEEuZl9mX2w9NjQyNjAsQS5maT02NDI1NyxBLmZfaT02NDI1NyxBLmZpZnRlZW5jaXJjbGU9OTMyNixBLmZpZnRlZW5wYXJlbj05MzQ2LEEuZmlmdGVlbnBlcmlvZD05MzY2LEEuZmlndXJlZGFzaD04MjEwLEEuZmlsbGVkYm94PTk2MzIsQS5maWxsZWRyZWN0PTk2NDQsQS5maW5hbGthZj0xNDk4LEEuZmluYWxrYWZkYWdlc2g9NjQzMTQsQS5maW5hbGthZmRhZ2VzaGhlYnJldz02NDMxNCxBLmZpbmFsa2FmaGVicmV3PTE0OTgsQS5maW5hbG1lbT0xNTAxLEEuZmluYWxtZW1oZWJyZXc9MTUwMSxBLmZpbmFsbnVuPTE1MDMsQS5maW5hbG51bmhlYnJldz0xNTAzLEEuZmluYWxwZT0xNTA3LEEuZmluYWxwZWhlYnJldz0xNTA3LEEuZmluYWx0c2FkaT0xNTA5LEEuZmluYWx0c2FkaWhlYnJldz0xNTA5LEEuZmlyc3R0b25lY2hpbmVzZT03MTMsQS5maXNoZXllPTk2NzMsQS5maXRhY3lyaWxsaWM9MTEzOSxBLmZpdmU9NTMsQS5maXZlYXJhYmljPTE2MzcsQS5maXZlYmVuZ2FsaT0yNTM5LEEuZml2ZWNpcmNsZT05MzE2LEEuZml2ZWNpcmNsZWludmVyc2VzYW5zc2VyaWY9MTAxMjYsQS5maXZlZGV2YT0yNDExLEEuZml2ZWVpZ2h0aHM9ODU0MSxBLmZpdmVndWphcmF0aT0yNzk1LEEuZml2ZWd1cm11a2hpPTI2NjcsQS5maXZlaGFja2FyYWJpYz0xNjM3LEEuZml2ZWhhbmd6aG91PTEyMzI1LEEuZml2ZWlkZW9ncmFwaGljcGFyZW49MTI4MzYsQS5maXZlaW5mZXJpb3I9ODMyNSxBLmZpdmVtb25vc3BhY2U9NjUzMDEsQS5maXZlb2xkc3R5bGU9NjMyODUsQS5maXZlcGFyZW49OTMzNixBLmZpdmVwZXJpb2Q9OTM1NixBLmZpdmVwZXJzaWFuPTE3ODEsQS5maXZlcm9tYW49ODU2NCxBLmZpdmVzdXBlcmlvcj04MzA5LEEuZml2ZXRoYWk9MzY2OSxBLmZsPTY0MjU4LEEuZl9sPTY0MjU4LEEuZmxvcmluPTQwMixBLmZtb25vc3BhY2U9NjUzNTAsQS5mbXNxdWFyZT0xMzIwOSxBLmZvZmFudGhhaT0zNjE1LEEuZm9mYXRoYWk9MzYxMyxBLmZvbmdtYW50aGFpPTM2NjMsQS5mb3JhbGw9ODcwNCxBLmZvdXI9NTIsQS5mb3VyYXJhYmljPTE2MzYsQS5mb3VyYmVuZ2FsaT0yNTM4LEEuZm91cmNpcmNsZT05MzE1LEEuZm91cmNpcmNsZWludmVyc2VzYW5zc2VyaWY9MTAxMjUsQS5mb3VyZGV2YT0yNDEwLEEuZm91cmd1amFyYXRpPTI3OTQsQS5mb3VyZ3VybXVraGk9MjY2NixBLmZvdXJoYWNrYXJhYmljPTE2MzYsQS5mb3VyaGFuZ3pob3U9MTIzMjQsQS5mb3VyaWRlb2dyYXBoaWNwYXJlbj0xMjgzNSxBLmZvdXJpbmZlcmlvcj04MzI0LEEuZm91cm1vbm9zcGFjZT02NTMwMCxBLmZvdXJudW1lcmF0b3JiZW5nYWxpPTI1NTEsQS5mb3Vyb2xkc3R5bGU9NjMyODQsQS5mb3VycGFyZW49OTMzNSxBLmZvdXJwZXJpb2Q9OTM1NSxBLmZvdXJwZXJzaWFuPTE3ODAsQS5mb3Vycm9tYW49ODU2MyxBLmZvdXJzdXBlcmlvcj04MzA4LEEuZm91cnRlZW5jaXJjbGU9OTMyNSxBLmZvdXJ0ZWVucGFyZW49OTM0NSxBLmZvdXJ0ZWVucGVyaW9kPTkzNjUsQS5mb3VydGhhaT0zNjY4LEEuZm91cnRodG9uZWNoaW5lc2U9NzE1LEEuZnBhcmVuPTkzNzcsQS5mcmFjdGlvbj04MjYwLEEuZnJhbmM9ODM1NSxBLmc9MTAzLEEuZ2FiZW5nYWxpPTI0NTUsQS5nYWN1dGU9NTAxLEEuZ2FkZXZhPTIzMjcsQS5nYWZhcmFiaWM9MTcxMSxBLmdhZmZpbmFsYXJhYmljPTY0NDAzLEEuZ2FmaW5pdGlhbGFyYWJpYz02NDQwNCxBLmdhZm1lZGlhbGFyYWJpYz02NDQwNSxBLmdhZ3VqYXJhdGk9MjcxMSxBLmdhZ3VybXVraGk9MjU4MyxBLmdhaGlyYWdhbmE9MTIzNjQsQS5nYWthdGFrYW5hPTEyNDYwLEEuZ2FtbWE9OTQ3LEEuZ2FtbWFsYXRpbnNtYWxsPTYxMSxBLmdhbW1hc3VwZXJpb3I9NzM2LEEuZ2FuZ2lhY29wdGljPTEwMDMsQS5nYm9wb21vZm89MTI1NTcsQS5nYnJldmU9Mjg3LEEuZ2Nhcm9uPTQ4NyxBLmdjZWRpbGxhPTI5MSxBLmdjaXJjbGU9OTQzMCxBLmdjaXJjdW1mbGV4PTI4NSxBLmdjb21tYWFjY2VudD0yOTEsQS5nZG90PTI4OSxBLmdkb3RhY2NlbnQ9Mjg5LEEuZ2VjeXJpbGxpYz0xMDc1LEEuZ2VoaXJhZ2FuYT0xMjM3MCxBLmdla2F0YWthbmE9MTI0NjYsQS5nZW9tZXRyaWNhbGx5ZXF1YWw9ODc4NSxBLmdlcmVzaGFjY2VudGhlYnJldz0xNDM2LEEuZ2VyZXNoaGVicmV3PTE1MjMsQS5nZXJlc2htdXFkYW1oZWJyZXc9MTQzNyxBLmdlcm1hbmRibHM9MjIzLEEuZ2Vyc2hheWltYWNjZW50aGVicmV3PTE0MzgsQS5nZXJzaGF5aW1oZWJyZXc9MTUyNCxBLmdldGFtYXJrPTEyMzA3LEEuZ2hhYmVuZ2FsaT0yNDU2LEEuZ2hhZGFybWVuaWFuPTEzOTQsQS5naGFkZXZhPTIzMjgsQS5naGFndWphcmF0aT0yNzEyLEEuZ2hhZ3VybXVraGk9MjU4NCxBLmdoYWluYXJhYmljPTE1OTQsQS5naGFpbmZpbmFsYXJhYmljPTY1MjMwLEEuZ2hhaW5pbml0aWFsYXJhYmljPTY1MjMxLEEuZ2hhaW5tZWRpYWxhcmFiaWM9NjUyMzIsQS5naGVtaWRkbGVob29rY3lyaWxsaWM9MTE3MyxBLmdoZXN0cm9rZWN5cmlsbGljPTExNzEsQS5naGV1cHR1cm5jeXJpbGxpYz0xMTY5LEEuZ2hoYWRldmE9MjM5NCxBLmdoaGFndXJtdWtoaT0yNjUwLEEuZ2hvb2s9NjA4LEEuZ2h6c3F1YXJlPTEzMjAzLEEuZ2loaXJhZ2FuYT0xMjM2NixBLmdpa2F0YWthbmE9MTI0NjIsQS5naW1hcm1lbmlhbj0xMzc5LEEuZ2ltZWw9MTQ5MCxBLmdpbWVsZGFnZXNoPTY0MzA2LEEuZ2ltZWxkYWdlc2hoZWJyZXc9NjQzMDYsQS5naW1lbGhlYnJldz0xNDkwLEEuZ2plY3lyaWxsaWM9MTEwNyxBLmdsb3R0YWxpbnZlcnRlZHN0cm9rZT00NDYsQS5nbG90dGFsc3RvcD02NjAsQS5nbG90dGFsc3RvcGludmVydGVkPTY2MixBLmdsb3R0YWxzdG9wbW9kPTcwNCxBLmdsb3R0YWxzdG9wcmV2ZXJzZWQ9NjYxLEEuZ2xvdHRhbHN0b3ByZXZlcnNlZG1vZD03MDUsQS5nbG90dGFsc3RvcHJldmVyc2Vkc3VwZXJpb3I9NzQwLEEuZ2xvdHRhbHN0b3BzdHJva2U9NjczLEEuZ2xvdHRhbHN0b3BzdHJva2VyZXZlcnNlZD02NzQsQS5nbWFjcm9uPTc3MTMsQS5nbW9ub3NwYWNlPTY1MzUxLEEuZ29oaXJhZ2FuYT0xMjM3MixBLmdva2F0YWthbmE9MTI0NjgsQS5ncGFyZW49OTM3OCxBLmdwYXNxdWFyZT0xMzIyOCxBLmdyYWRpZW50PTg3MTEsQS5ncmF2ZT05NixBLmdyYXZlYmVsb3djbWI9NzkwLEEuZ3JhdmVjbWI9NzY4LEEuZ3JhdmVjb21iPTc2OCxBLmdyYXZlZGV2YT0yMzg3LEEuZ3JhdmVsb3dtb2Q9NzE4LEEuZ3JhdmVtb25vc3BhY2U9NjUzNDQsQS5ncmF2ZXRvbmVjbWI9ODMyLEEuZ3JlYXRlcj02MixBLmdyZWF0ZXJlcXVhbD04ODA1LEEuZ3JlYXRlcmVxdWFsb3JsZXNzPTg5MjMsQS5ncmVhdGVybW9ub3NwYWNlPTY1MzEwLEEuZ3JlYXRlcm9yZXF1aXZhbGVudD04ODE5LEEuZ3JlYXRlcm9ybGVzcz04ODIzLEEuZ3JlYXRlcm92ZXJlcXVhbD04ODA3LEEuZ3JlYXRlcnNtYWxsPTY1MTI1LEEuZ3NjcmlwdD02MDksQS5nc3Ryb2tlPTQ4NSxBLmd1aGlyYWdhbmE9MTIzNjgsQS5ndWlsbGVtb3RsZWZ0PTE3MSxBLmd1aWxsZW1vdHJpZ2h0PTE4NyxBLmd1aWxzaW5nbGxlZnQ9ODI0OSxBLmd1aWxzaW5nbHJpZ2h0PTgyNTAsQS5ndWthdGFrYW5hPTEyNDY0LEEuZ3VyYW11c3F1YXJlPTEzMDgwLEEuZ3lzcXVhcmU9MTMyNTcsQS5oPTEwNCxBLmhhYWJraGFzaWFuY3lyaWxsaWM9MTE5MyxBLmhhYWx0b25lYXJhYmljPTE3MjksQS5oYWJlbmdhbGk9MjQ4OSxBLmhhZGVzY2VuZGVyY3lyaWxsaWM9MTIwMyxBLmhhZGV2YT0yMzYxLEEuaGFndWphcmF0aT0yNzQ1LEEuaGFndXJtdWtoaT0yNjE3LEEuaGFoYXJhYmljPTE1ODEsQS5oYWhmaW5hbGFyYWJpYz02NTE4NixBLmhhaGluaXRpYWxhcmFiaWM9NjUxODcsQS5oYWhpcmFnYW5hPTEyMzk5LEEuaGFobWVkaWFsYXJhYmljPTY1MTg4LEEuaGFpdHVzcXVhcmU9MTMwOTgsQS5oYWthdGFrYW5hPTEyNDk1LEEuaGFrYXRha2FuYWhhbGZ3aWR0aD02NTQxOCxBLmhhbGFudGd1cm11a2hpPTI2MzcsQS5oYW16YWFyYWJpYz0xNTY5LEEuaGFtemFsb3dhcmFiaWM9MTU2OSxBLmhhbmd1bGZpbGxlcj0xMjY0NCxBLmhhcmRzaWduY3lyaWxsaWM9MTA5OCxBLmhhcnBvb25sZWZ0YmFyYnVwPTg2MzYsQS5oYXJwb29ucmlnaHRiYXJidXA9ODY0MCxBLmhhc3F1YXJlPTEzMjU4LEEuaGF0YWZwYXRhaD0xNDU4LEEuaGF0YWZwYXRhaDE2PTE0NTgsQS5oYXRhZnBhdGFoMjM9MTQ1OCxBLmhhdGFmcGF0YWgyZj0xNDU4LEEuaGF0YWZwYXRhaGhlYnJldz0xNDU4LEEuaGF0YWZwYXRhaG5hcnJvd2hlYnJldz0xNDU4LEEuaGF0YWZwYXRhaHF1YXJ0ZXJoZWJyZXc9MTQ1OCxBLmhhdGFmcGF0YWh3aWRlaGVicmV3PTE0NTgsQS5oYXRhZnFhbWF0cz0xNDU5LEEuaGF0YWZxYW1hdHMxYj0xNDU5LEEuaGF0YWZxYW1hdHMyOD0xNDU5LEEuaGF0YWZxYW1hdHMzND0xNDU5LEEuaGF0YWZxYW1hdHNoZWJyZXc9MTQ1OSxBLmhhdGFmcWFtYXRzbmFycm93aGVicmV3PTE0NTksQS5oYXRhZnFhbWF0c3F1YXJ0ZXJoZWJyZXc9MTQ1OSxBLmhhdGFmcWFtYXRzd2lkZWhlYnJldz0xNDU5LEEuaGF0YWZzZWdvbD0xNDU3LEEuaGF0YWZzZWdvbDE3PTE0NTcsQS5oYXRhZnNlZ29sMjQ9MTQ1NyxBLmhhdGFmc2Vnb2wzMD0xNDU3LEEuaGF0YWZzZWdvbGhlYnJldz0xNDU3LEEuaGF0YWZzZWdvbG5hcnJvd2hlYnJldz0xNDU3LEEuaGF0YWZzZWdvbHF1YXJ0ZXJoZWJyZXc9MTQ1NyxBLmhhdGFmc2Vnb2x3aWRlaGVicmV3PTE0NTcsQS5oYmFyPTI5NSxBLmhib3BvbW9mbz0xMjU1OSxBLmhicmV2ZWJlbG93PTc3MjMsQS5oY2VkaWxsYT03NzIxLEEuaGNpcmNsZT05NDMxLEEuaGNpcmN1bWZsZXg9MjkzLEEuaGRpZXJlc2lzPTc3MTksQS5oZG90YWNjZW50PTc3MTUsQS5oZG90YmVsb3c9NzcxNyxBLmhlPTE0OTIsQS5oZWFydD05ODI5LEEuaGVhcnRzdWl0YmxhY2s9OTgyOSxBLmhlYXJ0c3VpdHdoaXRlPTk4MjUsQS5oZWRhZ2VzaD02NDMwOCxBLmhlZGFnZXNoaGVicmV3PTY0MzA4LEEuaGVoYWx0b25lYXJhYmljPTE3MjksQS5oZWhhcmFiaWM9MTYwNyxBLmhlaGVicmV3PTE0OTIsQS5oZWhmaW5hbGFsdG9uZWFyYWJpYz02NDQyMyxBLmhlaGZpbmFsYWx0dHdvYXJhYmljPTY1MjU4LEEuaGVoZmluYWxhcmFiaWM9NjUyNTgsQS5oZWhoYW16YWFib3ZlZmluYWxhcmFiaWM9NjQ0MjEsQS5oZWhoYW16YWFib3ZlaXNvbGF0ZWRhcmFiaWM9NjQ0MjAsQS5oZWhpbml0aWFsYWx0b25lYXJhYmljPTY0NDI0LEEuaGVoaW5pdGlhbGFyYWJpYz02NTI1OSxBLmhlaGlyYWdhbmE9MTI0MDgsQS5oZWhtZWRpYWxhbHRvbmVhcmFiaWM9NjQ0MjUsQS5oZWhtZWRpYWxhcmFiaWM9NjUyNjAsQS5oZWlzZWllcmFzcXVhcmU9MTMxNzksQS5oZWthdGFrYW5hPTEyNTA0LEEuaGVrYXRha2FuYWhhbGZ3aWR0aD02NTQyMSxBLmhla3V0YWFydXNxdWFyZT0xMzExMCxBLmhlbmdob29rPTYxNSxBLmhlcnV0dXNxdWFyZT0xMzExMyxBLmhldD0xNDk1LEEuaGV0aGVicmV3PTE0OTUsQS5oaG9vaz02MTQsQS5oaG9va3N1cGVyaW9yPTY4OSxBLmhpZXVoYWNpcmNsZWtvcmVhbj0xMjkyMyxBLmhpZXVoYXBhcmVua29yZWFuPTEyODI3LEEuaGlldWhjaXJjbGVrb3JlYW49MTI5MDksQS5oaWV1aGtvcmVhbj0xMjYyMixBLmhpZXVocGFyZW5rb3JlYW49MTI4MTMsQS5oaWhpcmFnYW5hPTEyNDAyLEEuaGlrYXRha2FuYT0xMjQ5OCxBLmhpa2F0YWthbmFoYWxmd2lkdGg9NjU0MTksQS5oaXJpcT0xNDYwLEEuaGlyaXExND0xNDYwLEEuaGlyaXEyMT0xNDYwLEEuaGlyaXEyZD0xNDYwLEEuaGlyaXFoZWJyZXc9MTQ2MCxBLmhpcmlxbmFycm93aGVicmV3PTE0NjAsQS5oaXJpcXF1YXJ0ZXJoZWJyZXc9MTQ2MCxBLmhpcmlxd2lkZWhlYnJldz0xNDYwLEEuaGxpbmViZWxvdz03ODMwLEEuaG1vbm9zcGFjZT02NTM1MixBLmhvYXJtZW5pYW49MTM5MixBLmhvaGlwdGhhaT0zNjI3LEEuaG9oaXJhZ2FuYT0xMjQxMSxBLmhva2F0YWthbmE9MTI1MDcsQS5ob2thdGFrYW5haGFsZndpZHRoPTY1NDIyLEEuaG9sYW09MTQ2NSxBLmhvbGFtMTk9MTQ2NSxBLmhvbGFtMjY9MTQ2NSxBLmhvbGFtMzI9MTQ2NSxBLmhvbGFtaGVicmV3PTE0NjUsQS5ob2xhbW5hcnJvd2hlYnJldz0xNDY1LEEuaG9sYW1xdWFydGVyaGVicmV3PTE0NjUsQS5ob2xhbXdpZGVoZWJyZXc9MTQ2NSxBLmhvbm9raHVrdGhhaT0zNjMwLEEuaG9va2Fib3ZlY29tYj03NzcsQS5ob29rY21iPTc3NyxBLmhvb2twYWxhdGFsaXplZGJlbG93Y21iPTgwMSxBLmhvb2tyZXRyb2ZsZXhiZWxvd2NtYj04MDIsQS5ob29uc3F1YXJlPTEzMTIyLEEuaG9yaWNvcHRpYz0xMDAxLEEuaG9yaXpvbnRhbGJhcj04MjEzLEEuaG9ybmNtYj03OTUsQS5ob3RzcHJpbmdzPTk4MzIsQS5ob3VzZT04OTYyLEEuaHBhcmVuPTkzNzksQS5oc3VwZXJpb3I9Njg4LEEuaHR1cm5lZD02MTMsQS5odWhpcmFnYW5hPTEyNDA1LEEuaHVpaXRvc3F1YXJlPTEzMTA3LEEuaHVrYXRha2FuYT0xMjUwMSxBLmh1a2F0YWthbmFoYWxmd2lkdGg9NjU0MjAsQS5odW5nYXJ1bWxhdXQ9NzMzLEEuaHVuZ2FydW1sYXV0Y21iPTc3OSxBLmh2PTQwNSxBLmh5cGhlbj00NSxBLmh5cGhlbmluZmVyaW9yPTYzMjA1LEEuaHlwaGVubW9ub3NwYWNlPTY1MjkzLEEuaHlwaGVuc21hbGw9NjUxMjMsQS5oeXBoZW5zdXBlcmlvcj02MzIwNixBLmh5cGhlbnR3bz04MjA4LEEuaT0xMDUsQS5pYWN1dGU9MjM3LEEuaWFjeXJpbGxpYz0xMTAzLEEuaWJlbmdhbGk9MjQzOSxBLmlib3BvbW9mbz0xMjU4MyxBLmlicmV2ZT0zMDEsQS5pY2Fyb249NDY0LEEuaWNpcmNsZT05NDMyLEEuaWNpcmN1bWZsZXg9MjM4LEEuaWN5cmlsbGljPTExMTAsQS5pZGJsZ3JhdmU9NTIxLEEuaWRlb2dyYXBoZWFydGhjaXJjbGU9MTI5NDMsQS5pZGVvZ3JhcGhmaXJlY2lyY2xlPTEyOTM5LEEuaWRlb2dyYXBoaWNhbGxpYW5jZXBhcmVuPTEyODYzLEEuaWRlb2dyYXBoaWNjYWxscGFyZW49MTI4NTgsQS5pZGVvZ3JhcGhpY2NlbnRyZWNpcmNsZT0xMjk2NSxBLmlkZW9ncmFwaGljY2xvc2U9MTIyOTQsQS5pZGVvZ3JhcGhpY2NvbW1hPTEyMjg5LEEuaWRlb2dyYXBoaWNjb21tYWxlZnQ9NjUzODAsQS5pZGVvZ3JhcGhpY2NvbmdyYXR1bGF0aW9ucGFyZW49MTI4NTUsQS5pZGVvZ3JhcGhpY2NvcnJlY3RjaXJjbGU9MTI5NjMsQS5pZGVvZ3JhcGhpY2VhcnRocGFyZW49MTI4NDcsQS5pZGVvZ3JhcGhpY2VudGVycHJpc2VwYXJlbj0xMjg2MSxBLmlkZW9ncmFwaGljZXhjZWxsZW50Y2lyY2xlPTEyOTU3LEEuaWRlb2dyYXBoaWNmZXN0aXZhbHBhcmVuPTEyODY0LEEuaWRlb2dyYXBoaWNmaW5hbmNpYWxjaXJjbGU9MTI5NTAsQS5pZGVvZ3JhcGhpY2ZpbmFuY2lhbHBhcmVuPTEyODU0LEEuaWRlb2dyYXBoaWNmaXJlcGFyZW49MTI4NDMsQS5pZGVvZ3JhcGhpY2hhdmVwYXJlbj0xMjg1MCxBLmlkZW9ncmFwaGljaGlnaGNpcmNsZT0xMjk2NCxBLmlkZW9ncmFwaGljaXRlcmF0aW9ubWFyaz0xMjI5MyxBLmlkZW9ncmFwaGljbGFib3JjaXJjbGU9MTI5NTIsQS5pZGVvZ3JhcGhpY2xhYm9ycGFyZW49MTI4NTYsQS5pZGVvZ3JhcGhpY2xlZnRjaXJjbGU9MTI5NjcsQS5pZGVvZ3JhcGhpY2xvd2NpcmNsZT0xMjk2NixBLmlkZW9ncmFwaGljbWVkaWNpbmVjaXJjbGU9MTI5NjksQS5pZGVvZ3JhcGhpY21ldGFscGFyZW49MTI4NDYsQS5pZGVvZ3JhcGhpY21vb25wYXJlbj0xMjg0MixBLmlkZW9ncmFwaGljbmFtZXBhcmVuPTEyODUyLEEuaWRlb2dyYXBoaWNwZXJpb2Q9MTIyOTAsQS5pZGVvZ3JhcGhpY3ByaW50Y2lyY2xlPTEyOTU4LEEuaWRlb2dyYXBoaWNyZWFjaHBhcmVuPTEyODY3LEEuaWRlb2dyYXBoaWNyZXByZXNlbnRwYXJlbj0xMjg1NyxBLmlkZW9ncmFwaGljcmVzb3VyY2VwYXJlbj0xMjg2MixBLmlkZW9ncmFwaGljcmlnaHRjaXJjbGU9MTI5NjgsQS5pZGVvZ3JhcGhpY3NlY3JldGNpcmNsZT0xMjk1MyxBLmlkZW9ncmFwaGljc2VsZnBhcmVuPTEyODY2LEEuaWRlb2dyYXBoaWNzb2NpZXR5cGFyZW49MTI4NTEsQS5pZGVvZ3JhcGhpY3NwYWNlPTEyMjg4LEEuaWRlb2dyYXBoaWNzcGVjaWFscGFyZW49MTI4NTMsQS5pZGVvZ3JhcGhpY3N0b2NrcGFyZW49MTI4NDksQS5pZGVvZ3JhcGhpY3N0dWR5cGFyZW49MTI4NTksQS5pZGVvZ3JhcGhpY3N1bnBhcmVuPTEyODQ4LEEuaWRlb2dyYXBoaWNzdXBlcnZpc2VwYXJlbj0xMjg2MCxBLmlkZW9ncmFwaGljd2F0ZXJwYXJlbj0xMjg0NCxBLmlkZW9ncmFwaGljd29vZHBhcmVuPTEyODQ1LEEuaWRlb2dyYXBoaWN6ZXJvPTEyMjk1LEEuaWRlb2dyYXBobWV0YWxjaXJjbGU9MTI5NDIsQS5pZGVvZ3JhcGhtb29uY2lyY2xlPTEyOTM4LEEuaWRlb2dyYXBobmFtZWNpcmNsZT0xMjk0OCxBLmlkZW9ncmFwaHN1bmNpcmNsZT0xMjk0NCxBLmlkZW9ncmFwaHdhdGVyY2lyY2xlPTEyOTQwLEEuaWRlb2dyYXBod29vZGNpcmNsZT0xMjk0MSxBLmlkZXZhPTIzMTEsQS5pZGllcmVzaXM9MjM5LEEuaWRpZXJlc2lzYWN1dGU9NzcyNyxBLmlkaWVyZXNpc2N5cmlsbGljPTEyNTMsQS5pZG90YmVsb3c9Nzg4MyxBLmllYnJldmVjeXJpbGxpYz0xMjM5LEEuaWVjeXJpbGxpYz0xMDc3LEEuaWV1bmdhY2lyY2xla29yZWFuPTEyOTE3LEEuaWV1bmdhcGFyZW5rb3JlYW49MTI4MjEsQS5pZXVuZ2NpcmNsZWtvcmVhbj0xMjkwMyxBLmlldW5na29yZWFuPTEyNjE1LEEuaWV1bmdwYXJlbmtvcmVhbj0xMjgwNyxBLmlncmF2ZT0yMzYsQS5pZ3VqYXJhdGk9MjY5NSxBLmlndXJtdWtoaT0yNTY3LEEuaWhpcmFnYW5hPTEyMzU2LEEuaWhvb2thYm92ZT03ODgxLEEuaWliZW5nYWxpPTI0NDAsQS5paWN5cmlsbGljPTEwODAsQS5paWRldmE9MjMxMixBLmlpZ3VqYXJhdGk9MjY5NixBLmlpZ3VybXVraGk9MjU2OCxBLmlpbWF0cmFndXJtdWtoaT0yNjI0LEEuaWludmVydGVkYnJldmU9NTIzLEEuaWlzaG9ydGN5cmlsbGljPTEwODEsQS5paXZvd2Vsc2lnbmJlbmdhbGk9MjQ5NixBLmlpdm93ZWxzaWduZGV2YT0yMzY4LEEuaWl2b3dlbHNpZ25ndWphcmF0aT0yNzUyLEEuaWo9MzA3LEEuaWthdGFrYW5hPTEyNDUyLEEuaWthdGFrYW5haGFsZndpZHRoPTY1Mzk0LEEuaWtvcmVhbj0xMjY0MyxBLmlsZGU9NzMyLEEuaWx1eWhlYnJldz0xNDUyLEEuaW1hY3Jvbj0yOTksQS5pbWFjcm9uY3lyaWxsaWM9MTI1MSxBLmltYWdlb3JhcHByb3hpbWF0ZWx5ZXF1YWw9ODc4NyxBLmltYXRyYWd1cm11a2hpPTI2MjMsQS5pbW9ub3NwYWNlPTY1MzUzLEEuaW5jcmVtZW50PTg3MTAsQS5pbmZpbml0eT04NzM0LEEuaW5pYXJtZW5pYW49MTM4NyxBLmludGVncmFsPTg3NDcsQS5pbnRlZ3JhbGJvdHRvbT04OTkzLEEuaW50ZWdyYWxidD04OTkzLEEuaW50ZWdyYWxleD02MzczMyxBLmludGVncmFsdG9wPTg5OTIsQS5pbnRlZ3JhbHRwPTg5OTIsQS5pbnRlcnNlY3Rpb249ODc0NSxBLmludGlzcXVhcmU9MTMwNjEsQS5pbnZidWxsZXQ9OTY4OCxBLmludmNpcmNsZT05Njg5LEEuaW52c21pbGVmYWNlPTk3ODcsQS5pb2N5cmlsbGljPTExMDUsQS5pb2dvbmVrPTMwMyxBLmlvdGE9OTUzLEEuaW90YWRpZXJlc2lzPTk3MCxBLmlvdGFkaWVyZXNpc3Rvbm9zPTkxMixBLmlvdGFsYXRpbj02MTcsQS5pb3RhdG9ub3M9OTQzLEEuaXBhcmVuPTkzODAsQS5pcmlndXJtdWtoaT0yNjc0LEEuaXNtYWxsaGlyYWdhbmE9MTIzNTUsQS5pc21hbGxrYXRha2FuYT0xMjQ1MSxBLmlzbWFsbGthdGFrYW5haGFsZndpZHRoPTY1Mzg0LEEuaXNzaGFyYmVuZ2FsaT0yNTU0LEEuaXN0cm9rZT02MTYsQS5pc3VwZXJpb3I9NjMyMTMsQS5pdGVyYXRpb25oaXJhZ2FuYT0xMjQ0NSxBLml0ZXJhdGlvbmthdGFrYW5hPTEyNTQxLEEuaXRpbGRlPTI5NyxBLml0aWxkZWJlbG93PTc3MjUsQS5pdWJvcG9tb2ZvPTEyNTg1LEEuaXVjeXJpbGxpYz0xMTAyLEEuaXZvd2Vsc2lnbmJlbmdhbGk9MjQ5NSxBLml2b3dlbHNpZ25kZXZhPTIzNjcsQS5pdm93ZWxzaWduZ3VqYXJhdGk9Mjc1MSxBLml6aGl0c2FjeXJpbGxpYz0xMTQxLEEuaXpoaXRzYWRibGdyYXZlY3lyaWxsaWM9MTE0MyxBLmo9MTA2LEEuamFhcm1lbmlhbj0xMzkzLEEuamFiZW5nYWxpPTI0NjAsQS5qYWRldmE9MjMzMixBLmphZ3VqYXJhdGk9MjcxNixBLmphZ3VybXVraGk9MjU4OCxBLmpib3BvbW9mbz0xMjU2MCxBLmpjYXJvbj00OTYsQS5qY2lyY2xlPTk0MzMsQS5qY2lyY3VtZmxleD0zMDksQS5qY3Jvc3NlZHRhaWw9NjY5LEEuamRvdGxlc3NzdHJva2U9NjA3LEEuamVjeXJpbGxpYz0xMTEyLEEuamVlbWFyYWJpYz0xNTgwLEEuamVlbWZpbmFsYXJhYmljPTY1MTgyLEEuamVlbWluaXRpYWxhcmFiaWM9NjUxODMsQS5qZWVtbWVkaWFsYXJhYmljPTY1MTg0LEEuamVoYXJhYmljPTE2ODgsQS5qZWhmaW5hbGFyYWJpYz02NDM5NSxBLmpoYWJlbmdhbGk9MjQ2MSxBLmpoYWRldmE9MjMzMyxBLmpoYWd1amFyYXRpPTI3MTcsQS5qaGFndXJtdWtoaT0yNTg5LEEuamhlaGFybWVuaWFuPTE0MDMsQS5qaXM9MTIyOTIsQS5qbW9ub3NwYWNlPTY1MzU0LEEuanBhcmVuPTkzODEsQS5qc3VwZXJpb3I9NjkwLEEuaz0xMDcsQS5rYWJhc2hraXJjeXJpbGxpYz0xMTg1LEEua2FiZW5nYWxpPTI0NTMsQS5rYWN1dGU9NzcyOSxBLmthY3lyaWxsaWM9MTA4MixBLmthZGVzY2VuZGVyY3lyaWxsaWM9MTE3OSxBLmthZGV2YT0yMzI1LEEua2FmPTE0OTksQS5rYWZhcmFiaWM9MTYwMyxBLmthZmRhZ2VzaD02NDMxNSxBLmthZmRhZ2VzaGhlYnJldz02NDMxNSxBLmthZmZpbmFsYXJhYmljPTY1MjQyLEEua2FmaGVicmV3PTE0OTksQS5rYWZpbml0aWFsYXJhYmljPTY1MjQzLEEua2FmbWVkaWFsYXJhYmljPTY1MjQ0LEEua2FmcmFmZWhlYnJldz02NDMzMyxBLmthZ3VqYXJhdGk9MjcwOSxBLmthZ3VybXVraGk9MjU4MSxBLmthaGlyYWdhbmE9MTIzNjMsQS5rYWhvb2tjeXJpbGxpYz0xMjIwLEEua2FrYXRha2FuYT0xMjQ1OSxBLmtha2F0YWthbmFoYWxmd2lkdGg9NjUzOTgsQS5rYXBwYT05NTQsQS5rYXBwYXN5bWJvbGdyZWVrPTEwMDgsQS5rYXB5ZW91bm1pZXVta29yZWFuPTEyNjU3LEEua2FweWVvdW5waGlldXBoa29yZWFuPTEyNjc2LEEua2FweWVvdW5waWV1cGtvcmVhbj0xMjY2NCxBLmthcHllb3Vuc3NhbmdwaWV1cGtvcmVhbj0xMjY2NSxBLmthcm9yaWlzcXVhcmU9MTMwNjksQS5rYXNoaWRhYXV0b2FyYWJpYz0xNjAwLEEua2FzaGlkYWF1dG9ub3NpZGViZWFyaW5nYXJhYmljPTE2MDAsQS5rYXNtYWxsa2F0YWthbmE9MTI1MzMsQS5rYXNxdWFyZT0xMzE4OCxBLmthc3JhYXJhYmljPTE2MTYsQS5rYXNyYXRhbmFyYWJpYz0xNjEzLEEua2FzdHJva2VjeXJpbGxpYz0xMTgzLEEua2F0YWhpcmFwcm9sb25nbWFya2hhbGZ3aWR0aD02NTM5MixBLmthdmVydGljYWxzdHJva2VjeXJpbGxpYz0xMTgxLEEua2JvcG9tb2ZvPTEyNTU4LEEua2NhbHNxdWFyZT0xMzE5MyxBLmtjYXJvbj00ODksQS5rY2VkaWxsYT0zMTEsQS5rY2lyY2xlPTk0MzQsQS5rY29tbWFhY2NlbnQ9MzExLEEua2RvdGJlbG93PTc3MzEsQS5rZWhhcm1lbmlhbj0xNDEyLEEua2VoaXJhZ2FuYT0xMjM2OSxBLmtla2F0YWthbmE9MTI0NjUsQS5rZWthdGFrYW5haGFsZndpZHRoPTY1NDAxLEEua2VuYXJtZW5pYW49MTM5MSxBLmtlc21hbGxrYXRha2FuYT0xMjUzNCxBLmtncmVlbmxhbmRpYz0zMTIsQS5raGFiZW5nYWxpPTI0NTQsQS5raGFjeXJpbGxpYz0xMDkzLEEua2hhZGV2YT0yMzI2LEEua2hhZ3VqYXJhdGk9MjcxMCxBLmtoYWd1cm11a2hpPTI1ODIsQS5raGFoYXJhYmljPTE1ODIsQS5raGFoZmluYWxhcmFiaWM9NjUxOTAsQS5raGFoaW5pdGlhbGFyYWJpYz02NTE5MSxBLmtoYWhtZWRpYWxhcmFiaWM9NjUxOTIsQS5raGVpY29wdGljPTk5OSxBLmtoaGFkZXZhPTIzOTMsQS5raGhhZ3VybXVraGk9MjY0OSxBLmtoaWV1a2hhY2lyY2xla29yZWFuPTEyOTIwLEEua2hpZXVraGFwYXJlbmtvcmVhbj0xMjgyNCxBLmtoaWV1a2hjaXJjbGVrb3JlYW49MTI5MDYsQS5raGlldWtoa29yZWFuPTEyNjE5LEEua2hpZXVraHBhcmVua29yZWFuPTEyODEwLEEua2hva2hhaXRoYWk9MzU4NixBLmtob2tob250aGFpPTM1ODksQS5raG9raHVhdHRoYWk9MzU4NyxBLmtob2tod2FpdGhhaT0zNTg4LEEua2hvbXV0dGhhaT0zNjc1LEEua2hvb2s9NDA5LEEua2hvcmFraGFuZ3RoYWk9MzU5MCxBLmtoenNxdWFyZT0xMzIwMSxBLmtpaGlyYWdhbmE9MTIzNjUsQS5raWthdGFrYW5hPTEyNDYxLEEua2lrYXRha2FuYWhhbGZ3aWR0aD02NTM5OSxBLmtpcm9ndXJhbXVzcXVhcmU9MTMwNzcsQS5raXJvbWVldG9ydXNxdWFyZT0xMzA3OCxBLmtpcm9zcXVhcmU9MTMwNzYsQS5raXllb2thY2lyY2xla29yZWFuPTEyOTEwLEEua2l5ZW9rYXBhcmVua29yZWFuPTEyODE0LEEua2l5ZW9rY2lyY2xla29yZWFuPTEyODk2LEEua2l5ZW9ra29yZWFuPTEyNTkzLEEua2l5ZW9rcGFyZW5rb3JlYW49MTI4MDAsQS5raXllb2tzaW9za29yZWFuPTEyNTk1O0Eua2plY3lyaWxsaWM9MTExNixBLmtsaW5lYmVsb3c9NzczMyxBLmtsc3F1YXJlPTEzMjA4LEEua21jdWJlZHNxdWFyZT0xMzIyMixBLmttb25vc3BhY2U9NjUzNTUsQS5rbXNxdWFyZWRzcXVhcmU9MTMyMTgsQS5rb2hpcmFnYW5hPTEyMzcxLEEua29obXNxdWFyZT0xMzI0OCxBLmtva2FpdGhhaT0zNTg1LEEua29rYXRha2FuYT0xMjQ2NyxBLmtva2F0YWthbmFoYWxmd2lkdGg9NjU0MDIsQS5rb29wb3NxdWFyZT0xMzA4NixBLmtvcHBhY3lyaWxsaWM9MTE1MyxBLmtvcmVhbnN0YW5kYXJkc3ltYm9sPTEyOTI3LEEua29yb25pc2NtYj04MzUsQS5rcGFyZW49OTM4MixBLmtwYXNxdWFyZT0xMzIyNixBLmtzaWN5cmlsbGljPTExMzUsQS5rdHNxdWFyZT0xMzI2MyxBLmt0dXJuZWQ9NjcwLEEua3VoaXJhZ2FuYT0xMjM2NyxBLmt1a2F0YWthbmE9MTI0NjMsQS5rdWthdGFrYW5haGFsZndpZHRoPTY1NDAwLEEua3ZzcXVhcmU9MTMyNDAsQS5rd3NxdWFyZT0xMzI0NixBLmw9MTA4LEEubGFiZW5nYWxpPTI0ODIsQS5sYWN1dGU9MzE0LEEubGFkZXZhPTIzNTQsQS5sYWd1amFyYXRpPTI3MzgsQS5sYWd1cm11a2hpPTI2MTAsQS5sYWtraGFuZ3lhb3RoYWk9MzY1MyxBLmxhbWFsZWZmaW5hbGFyYWJpYz02NTI3NixBLmxhbWFsZWZoYW16YWFib3ZlZmluYWxhcmFiaWM9NjUyNzIsQS5sYW1hbGVmaGFtemFhYm92ZWlzb2xhdGVkYXJhYmljPTY1MjcxLEEubGFtYWxlZmhhbXphYmVsb3dmaW5hbGFyYWJpYz02NTI3NCxBLmxhbWFsZWZoYW16YWJlbG93aXNvbGF0ZWRhcmFiaWM9NjUyNzMsQS5sYW1hbGVmaXNvbGF0ZWRhcmFiaWM9NjUyNzUsQS5sYW1hbGVmbWFkZGFhYm92ZWZpbmFsYXJhYmljPTY1MjcwLEEubGFtYWxlZm1hZGRhYWJvdmVpc29sYXRlZGFyYWJpYz02NTI2OSxBLmxhbWFyYWJpYz0xNjA0LEEubGFtYmRhPTk1NSxBLmxhbWJkYXN0cm9rZT00MTEsQS5sYW1lZD0xNTAwLEEubGFtZWRkYWdlc2g9NjQzMTYsQS5sYW1lZGRhZ2VzaGhlYnJldz02NDMxNixBLmxhbWVkaGVicmV3PTE1MDAsQS5sYW1maW5hbGFyYWJpYz02NTI0NixBLmxhbWhhaGluaXRpYWxhcmFiaWM9NjQ3MTQsQS5sYW1pbml0aWFsYXJhYmljPTY1MjQ3LEEubGFtamVlbWluaXRpYWxhcmFiaWM9NjQ3MTMsQS5sYW1raGFoaW5pdGlhbGFyYWJpYz02NDcxNSxBLmxhbWxhbWhlaGlzb2xhdGVkYXJhYmljPTY1MDEwLEEubGFtbWVkaWFsYXJhYmljPTY1MjQ4LEEubGFtbWVlbWhhaGluaXRpYWxhcmFiaWM9NjQ5MDQsQS5sYW1tZWVtaW5pdGlhbGFyYWJpYz02NDcxNixBLmxhcmdlY2lyY2xlPTk3MTEsQS5sYmFyPTQxMCxBLmxiZWx0PTYyMCxBLmxib3BvbW9mbz0xMjU1NixBLmxjYXJvbj0zMTgsQS5sY2VkaWxsYT0zMTYsQS5sY2lyY2xlPTk0MzUsQS5sY2lyY3VtZmxleGJlbG93PTc3NDEsQS5sY29tbWFhY2NlbnQ9MzE2LEEubGRvdD0zMjAsQS5sZG90YWNjZW50PTMyMCxBLmxkb3RiZWxvdz03NzM1LEEubGRvdGJlbG93bWFjcm9uPTc3MzcsQS5sZWZ0YW5nbGVhYm92ZWNtYj03OTQsQS5sZWZ0dGFja2JlbG93Y21iPTc5MixBLmxlc3M9NjAsQS5sZXNzZXF1YWw9ODgwNCxBLmxlc3NlcXVhbG9yZ3JlYXRlcj04OTIyLEEubGVzc21vbm9zcGFjZT02NTMwOCxBLmxlc3NvcmVxdWl2YWxlbnQ9ODgxOCxBLmxlc3NvcmdyZWF0ZXI9ODgyMixBLmxlc3NvdmVyZXF1YWw9ODgwNixBLmxlc3NzbWFsbD02NTEyNCxBLmxlemg9NjIyLEEubGZibG9jaz05NjEyLEEubGhvb2tyZXRyb2ZsZXg9NjIxLEEubGlyYT04MzU2LEEubGl3bmFybWVuaWFuPTEzODgsQS5saj00NTcsQS5samVjeXJpbGxpYz0xMTEzLEEubGw9NjMxNjgsQS5sbGFkZXZhPTIzNTUsQS5sbGFndWphcmF0aT0yNzM5LEEubGxpbmViZWxvdz03NzM5LEEubGxsYWRldmE9MjM1NixBLmxsdm9jYWxpY2JlbmdhbGk9MjUyOSxBLmxsdm9jYWxpY2RldmE9MjQwMSxBLmxsdm9jYWxpY3Zvd2Vsc2lnbmJlbmdhbGk9MjUzMSxBLmxsdm9jYWxpY3Zvd2Vsc2lnbmRldmE9MjQwMyxBLmxtaWRkbGV0aWxkZT02MTksQS5sbW9ub3NwYWNlPTY1MzU2LEEubG1zcXVhcmU9MTMyNjQsQS5sb2NodWxhdGhhaT0zNjI4LEEubG9naWNhbGFuZD04NzQzLEEubG9naWNhbG5vdD0xNzIsQS5sb2dpY2Fsbm90cmV2ZXJzZWQ9ODk3NixBLmxvZ2ljYWxvcj04NzQ0LEEubG9saW5ndGhhaT0zNjIxLEEubG9uZ3M9MzgzLEEubG93bGluZWNlbnRlcmxpbmU9NjUxMDIsQS5sb3dsaW5lY21iPTgxOCxBLmxvd2xpbmVkYXNoZWQ9NjUxMDEsQS5sb3plbmdlPTk2NzQsQS5scGFyZW49OTM4MyxBLmxzbGFzaD0zMjIsQS5sc3F1YXJlPTg0NjcsQS5sc3VwZXJpb3I9NjMyMTQsQS5sdHNoYWRlPTk2MTcsQS5sdXRoYWk9MzYyMixBLmx2b2NhbGljYmVuZ2FsaT0yNDQ0LEEubHZvY2FsaWNkZXZhPTIzMTYsQS5sdm9jYWxpY3Zvd2Vsc2lnbmJlbmdhbGk9MjUzMCxBLmx2b2NhbGljdm93ZWxzaWduZGV2YT0yNDAyLEEubHhzcXVhcmU9MTMyNjcsQS5tPTEwOSxBLm1hYmVuZ2FsaT0yNDc4LEEubWFjcm9uPTE3NSxBLm1hY3JvbmJlbG93Y21iPTgxNyxBLm1hY3JvbmNtYj03NzIsQS5tYWNyb25sb3dtb2Q9NzE3LEEubWFjcm9ubW9ub3NwYWNlPTY1NTA3LEEubWFjdXRlPTc3NDMsQS5tYWRldmE9MjM1MCxBLm1hZ3VqYXJhdGk9MjczNCxBLm1hZ3VybXVraGk9MjYwNixBLm1haGFwYWtoaGVicmV3PTE0NDQsQS5tYWhhcGFraGxlZnRoZWJyZXc9MTQ0NCxBLm1haGlyYWdhbmE9MTI0MTQsQS5tYWljaGF0dGF3YWxvd2xlZnR0aGFpPTYzNjM3LEEubWFpY2hhdHRhd2Fsb3dyaWdodHRoYWk9NjM2MzYsQS5tYWljaGF0dGF3YXRoYWk9MzY1OSxBLm1haWNoYXR0YXdhdXBwZXJsZWZ0dGhhaT02MzYzNSxBLm1haWVrbG93bGVmdHRoYWk9NjM2MjgsQS5tYWlla2xvd3JpZ2h0dGhhaT02MzYyNyxBLm1haWVrdGhhaT0zNjU2LEEubWFpZWt1cHBlcmxlZnR0aGFpPTYzNjI2LEEubWFpaGFuYWthdGxlZnR0aGFpPTYzNjIwLEEubWFpaGFuYWthdHRoYWk9MzYzMyxBLm1haXRhaWtodWxlZnR0aGFpPTYzNjI1LEEubWFpdGFpa2h1dGhhaT0zNjU1LEEubWFpdGhvbG93bGVmdHRoYWk9NjM2MzEsQS5tYWl0aG9sb3dyaWdodHRoYWk9NjM2MzAsQS5tYWl0aG90aGFpPTM2NTcsQS5tYWl0aG91cHBlcmxlZnR0aGFpPTYzNjI5LEEubWFpdHJpbG93bGVmdHRoYWk9NjM2MzQsQS5tYWl0cmlsb3dyaWdodHRoYWk9NjM2MzMsQS5tYWl0cml0aGFpPTM2NTgsQS5tYWl0cml1cHBlcmxlZnR0aGFpPTYzNjMyLEEubWFpeWFtb2t0aGFpPTM2NTQsQS5tYWthdGFrYW5hPTEyNTEwLEEubWFrYXRha2FuYWhhbGZ3aWR0aD02NTQyMyxBLm1hbGU9OTc5NCxBLm1hbnN5b25zcXVhcmU9MTMxMjcsQS5tYXFhZmhlYnJldz0xNDcwLEEubWFycz05Nzk0LEEubWFzb3JhY2lyY2xlaGVicmV3PTE0NTUsQS5tYXNxdWFyZT0xMzE4NyxBLm1ib3BvbW9mbz0xMjU1MSxBLm1ic3F1YXJlPTEzMjY4LEEubWNpcmNsZT05NDM2LEEubWN1YmVkc3F1YXJlPTEzMjIxLEEubWRvdGFjY2VudD03NzQ1LEEubWRvdGJlbG93PTc3NDcsQS5tZWVtYXJhYmljPTE2MDUsQS5tZWVtZmluYWxhcmFiaWM9NjUyNTAsQS5tZWVtaW5pdGlhbGFyYWJpYz02NTI1MSxBLm1lZW1tZWRpYWxhcmFiaWM9NjUyNTIsQS5tZWVtbWVlbWluaXRpYWxhcmFiaWM9NjQ3MjEsQS5tZWVtbWVlbWlzb2xhdGVkYXJhYmljPTY0NTg0LEEubWVldG9ydXNxdWFyZT0xMzEzMyxBLm1laGlyYWdhbmE9MTI0MTcsQS5tZWl6aWVyYXNxdWFyZT0xMzE4MixBLm1la2F0YWthbmE9MTI1MTMsQS5tZWthdGFrYW5haGFsZndpZHRoPTY1NDI2LEEubWVtPTE1MDIsQS5tZW1kYWdlc2g9NjQzMTgsQS5tZW1kYWdlc2hoZWJyZXc9NjQzMTgsQS5tZW1oZWJyZXc9MTUwMixBLm1lbmFybWVuaWFuPTEzOTYsQS5tZXJraGFoZWJyZXc9MTQ0NSxBLm1lcmtoYWtlZnVsYWhlYnJldz0xNDQ2LEEubWVya2hha2VmdWxhbGVmdGhlYnJldz0xNDQ2LEEubWVya2hhbGVmdGhlYnJldz0xNDQ1LEEubWhvb2s9NjI1LEEubWh6c3F1YXJlPTEzMjAyLEEubWlkZGxlZG90a2F0YWthbmFoYWxmd2lkdGg9NjUzODEsQS5taWRkb3Q9MTgzLEEubWlldW1hY2lyY2xla29yZWFuPTEyOTE0LEEubWlldW1hcGFyZW5rb3JlYW49MTI4MTgsQS5taWV1bWNpcmNsZWtvcmVhbj0xMjkwMCxBLm1pZXVta29yZWFuPTEyNjA5LEEubWlldW1wYW5zaW9za29yZWFuPTEyNjU2LEEubWlldW1wYXJlbmtvcmVhbj0xMjgwNCxBLm1pZXVtcGlldXBrb3JlYW49MTI2NTQsQS5taWV1bXNpb3Nrb3JlYW49MTI2NTUsQS5taWhpcmFnYW5hPTEyNDE1LEEubWlrYXRha2FuYT0xMjUxMSxBLm1pa2F0YWthbmFoYWxmd2lkdGg9NjU0MjQsQS5taW51cz04NzIyLEEubWludXNiZWxvd2NtYj04MDAsQS5taW51c2NpcmNsZT04ODU0LEEubWludXNtb2Q9NzI3LEEubWludXNwbHVzPTg3MjMsQS5taW51dGU9ODI0MixBLm1pcmliYWFydXNxdWFyZT0xMzEzMCxBLm1pcmlzcXVhcmU9MTMxMjksQS5tbG9uZ2xlZ3R1cm5lZD02MjQsQS5tbHNxdWFyZT0xMzIwNixBLm1tY3ViZWRzcXVhcmU9MTMyMTksQS5tbW9ub3NwYWNlPTY1MzU3LEEubW1zcXVhcmVkc3F1YXJlPTEzMjE1LEEubW9oaXJhZ2FuYT0xMjQxOCxBLm1vaG1zcXVhcmU9MTMyNDksQS5tb2thdGFrYW5hPTEyNTE0LEEubW9rYXRha2FuYWhhbGZ3aWR0aD02NTQyNyxBLm1vbHNxdWFyZT0xMzI3MCxBLm1vbWF0aGFpPTM2MTcsQS5tb3ZlcnNzcXVhcmU9MTMyMjMsQS5tb3ZlcnNzcXVhcmVkc3F1YXJlPTEzMjI0LEEubXBhcmVuPTkzODQsQS5tcGFzcXVhcmU9MTMyMjcsQS5tc3NxdWFyZT0xMzIzNSxBLm1zdXBlcmlvcj02MzIxNSxBLm10dXJuZWQ9NjIzLEEubXU9MTgxLEEubXUxPTE4MSxBLm11YXNxdWFyZT0xMzE4NixBLm11Y2hncmVhdGVyPTg4MTEsQS5tdWNobGVzcz04ODEwLEEubXVmc3F1YXJlPTEzMTk2LEEubXVncmVlaz05NTYsQS5tdWdzcXVhcmU9MTMxOTcsQS5tdWhpcmFnYW5hPTEyNDE2LEEubXVrYXRha2FuYT0xMjUxMixBLm11a2F0YWthbmFoYWxmd2lkdGg9NjU0MjUsQS5tdWxzcXVhcmU9MTMyMDUsQS5tdWx0aXBseT0yMTUsQS5tdW1zcXVhcmU9MTMyMTEsQS5tdW5haGhlYnJldz0xNDQzLEEubXVuYWhsZWZ0aGVicmV3PTE0NDMsQS5tdXNpY2Fsbm90ZT05ODM0LEEubXVzaWNhbG5vdGVkYmw9OTgzNSxBLm11c2ljZmxhdHNpZ249OTgzNyxBLm11c2ljc2hhcnBzaWduPTk4MzksQS5tdXNzcXVhcmU9MTMyMzQsQS5tdXZzcXVhcmU9MTMyMzgsQS5tdXdzcXVhcmU9MTMyNDQsQS5tdm1lZ2FzcXVhcmU9MTMyNDEsQS5tdnNxdWFyZT0xMzIzOSxBLm13bWVnYXNxdWFyZT0xMzI0NyxBLm13c3F1YXJlPTEzMjQ1LEEubj0xMTAsQS5uYWJlbmdhbGk9MjQ3MixBLm5hYmxhPTg3MTEsQS5uYWN1dGU9MzI0LEEubmFkZXZhPTIzNDQsQS5uYWd1amFyYXRpPTI3MjgsQS5uYWd1cm11a2hpPTI2MDAsQS5uYWhpcmFnYW5hPTEyMzk0LEEubmFrYXRha2FuYT0xMjQ5MCxBLm5ha2F0YWthbmFoYWxmd2lkdGg9NjU0MTMsQS5uYXBvc3Ryb3BoZT0zMjksQS5uYXNxdWFyZT0xMzE4NSxBLm5ib3BvbW9mbz0xMjU1NSxBLm5ic3BhY2U9MTYwLEEubmNhcm9uPTMyOCxBLm5jZWRpbGxhPTMyNixBLm5jaXJjbGU9OTQzNyxBLm5jaXJjdW1mbGV4YmVsb3c9Nzc1NSxBLm5jb21tYWFjY2VudD0zMjYsQS5uZG90YWNjZW50PTc3NDksQS5uZG90YmVsb3c9Nzc1MSxBLm5laGlyYWdhbmE9MTIzOTcsQS5uZWthdGFrYW5hPTEyNDkzLEEubmVrYXRha2FuYWhhbGZ3aWR0aD02NTQxNixBLm5ld3NoZXFlbHNpZ249ODM2MixBLm5mc3F1YXJlPTEzMTk1LEEubmdhYmVuZ2FsaT0yNDU3LEEubmdhZGV2YT0yMzI5LEEubmdhZ3VqYXJhdGk9MjcxMyxBLm5nYWd1cm11a2hpPTI1ODUsQS5uZ29uZ3V0aGFpPTM1OTEsQS5uaGlyYWdhbmE9MTI0MzUsQS5uaG9va2xlZnQ9NjI2LEEubmhvb2tyZXRyb2ZsZXg9NjI3LEEubmlldW5hY2lyY2xla29yZWFuPTEyOTExLEEubmlldW5hcGFyZW5rb3JlYW49MTI4MTUsQS5uaWV1bmNpZXVja29yZWFuPTEyNTk3LEEubmlldW5jaXJjbGVrb3JlYW49MTI4OTcsQS5uaWV1bmhpZXVoa29yZWFuPTEyNTk4LEEubmlldW5rb3JlYW49MTI1OTYsQS5uaWV1bnBhbnNpb3Nrb3JlYW49MTI2NDgsQS5uaWV1bnBhcmVua29yZWFuPTEyODAxLEEubmlldW5zaW9za29yZWFuPTEyNjQ3LEEubmlldW50aWtldXRrb3JlYW49MTI2NDYsQS5uaWhpcmFnYW5hPTEyMzk1LEEubmlrYXRha2FuYT0xMjQ5MSxBLm5pa2F0YWthbmFoYWxmd2lkdGg9NjU0MTQsQS5uaWtoYWhpdGxlZnR0aGFpPTYzNjQxLEEubmlraGFoaXR0aGFpPTM2NjEsQS5uaW5lPTU3LEEubmluZWFyYWJpYz0xNjQxLEEubmluZWJlbmdhbGk9MjU0MyxBLm5pbmVjaXJjbGU9OTMyMCxBLm5pbmVjaXJjbGVpbnZlcnNlc2Fuc3NlcmlmPTEwMTMwLEEubmluZWRldmE9MjQxNSxBLm5pbmVndWphcmF0aT0yNzk5LEEubmluZWd1cm11a2hpPTI2NzEsQS5uaW5laGFja2FyYWJpYz0xNjQxLEEubmluZWhhbmd6aG91PTEyMzI5LEEubmluZWlkZW9ncmFwaGljcGFyZW49MTI4NDAsQS5uaW5laW5mZXJpb3I9ODMyOSxBLm5pbmVtb25vc3BhY2U9NjUzMDUsQS5uaW5lb2xkc3R5bGU9NjMyODksQS5uaW5lcGFyZW49OTM0MCxBLm5pbmVwZXJpb2Q9OTM2MCxBLm5pbmVwZXJzaWFuPTE3ODUsQS5uaW5lcm9tYW49ODU2OCxBLm5pbmVzdXBlcmlvcj04MzEzLEEubmluZXRlZW5jaXJjbGU9OTMzMCxBLm5pbmV0ZWVucGFyZW49OTM1MCxBLm5pbmV0ZWVucGVyaW9kPTkzNzAsQS5uaW5ldGhhaT0zNjczLEEubmo9NDYwLEEubmplY3lyaWxsaWM9MTExNCxBLm5rYXRha2FuYT0xMjUzMSxBLm5rYXRha2FuYWhhbGZ3aWR0aD02NTQzNyxBLm5sZWdyaWdodGxvbmc9NDE0LEEubmxpbmViZWxvdz03NzUzLEEubm1vbm9zcGFjZT02NTM1OCxBLm5tc3F1YXJlPTEzMjEwLEEubm5hYmVuZ2FsaT0yNDY3LEEubm5hZGV2YT0yMzM5LEEubm5hZ3VqYXJhdGk9MjcyMyxBLm5uYWd1cm11a2hpPTI1OTUsQS5ubm5hZGV2YT0yMzQ1LEEubm9oaXJhZ2FuYT0xMjM5OCxBLm5va2F0YWthbmE9MTI0OTQsQS5ub2thdGFrYW5haGFsZndpZHRoPTY1NDE3LEEubm9uYnJlYWtpbmdzcGFjZT0xNjAsQS5ub25lbnRoYWk9MzYwMyxBLm5vbnV0aGFpPTM2MDksQS5ub29uYXJhYmljPTE2MDYsQS5ub29uZmluYWxhcmFiaWM9NjUyNTQsQS5ub29uZ2h1bm5hYXJhYmljPTE3MjIsQS5ub29uZ2h1bm5hZmluYWxhcmFiaWM9NjQ0MTUsQS5ub29uaW5pdGlhbGFyYWJpYz02NTI1NSxBLm5vb25qZWVtaW5pdGlhbGFyYWJpYz02NDcyMixBLm5vb25qZWVtaXNvbGF0ZWRhcmFiaWM9NjQ1ODcsQS5ub29ubWVkaWFsYXJhYmljPTY1MjU2LEEubm9vbm1lZW1pbml0aWFsYXJhYmljPTY0NzI1LEEubm9vbm1lZW1pc29sYXRlZGFyYWJpYz02NDU5MCxBLm5vb25ub29uZmluYWxhcmFiaWM9NjQ2NTMsQS5ub3Rjb250YWlucz04NzE2LEEubm90ZWxlbWVudD04NzEzLEEubm90ZWxlbWVudG9mPTg3MTMsQS5ub3RlcXVhbD04ODAwLEEubm90Z3JlYXRlcj04ODE1LEEubm90Z3JlYXRlcm5vcmVxdWFsPTg4MTcsQS5ub3RncmVhdGVybm9ybGVzcz04ODI1LEEubm90aWRlbnRpY2FsPTg4MDIsQS5ub3RsZXNzPTg4MTQsQS5ub3RsZXNzbm9yZXF1YWw9ODgxNixBLm5vdHBhcmFsbGVsPTg3NDIsQS5ub3RwcmVjZWRlcz04ODMyLEEubm90c3Vic2V0PTg4MzYsQS5ub3RzdWNjZWVkcz04ODMzLEEubm90c3VwZXJzZXQ9ODgzNyxBLm5vd2FybWVuaWFuPTEzOTgsQS5ucGFyZW49OTM4NSxBLm5zc3F1YXJlPTEzMjMzLEEubnN1cGVyaW9yPTgzMTksQS5udGlsZGU9MjQxLEEubnU9OTU3LEEubnVoaXJhZ2FuYT0xMjM5NixBLm51a2F0YWthbmE9MTI0OTIsQS5udWthdGFrYW5haGFsZndpZHRoPTY1NDE1LEEubnVrdGFiZW5nYWxpPTI0OTIsQS5udWt0YWRldmE9MjM2NCxBLm51a3RhZ3VqYXJhdGk9Mjc0OCxBLm51a3RhZ3VybXVraGk9MjYyMCxBLm51bWJlcnNpZ249MzUsQS5udW1iZXJzaWdubW9ub3NwYWNlPTY1MjgzLEEubnVtYmVyc2lnbnNtYWxsPTY1MTE5LEEubnVtZXJhbHNpZ25ncmVlaz04ODQsQS5udW1lcmFsc2lnbmxvd2VyZ3JlZWs9ODg1LEEubnVtZXJvPTg0NzAsQS5udW49MTUwNCxBLm51bmRhZ2VzaD02NDMyMCxBLm51bmRhZ2VzaGhlYnJldz02NDMyMCxBLm51bmhlYnJldz0xNTA0LEEubnZzcXVhcmU9MTMyMzcsQS5ud3NxdWFyZT0xMzI0MyxBLm55YWJlbmdhbGk9MjQ2MixBLm55YWRldmE9MjMzNCxBLm55YWd1amFyYXRpPTI3MTgsQS5ueWFndXJtdWtoaT0yNTkwLEEubz0xMTEsQS5vYWN1dGU9MjQzLEEub2FuZ3RoYWk9MzYyOSxBLm9iYXJyZWQ9NjI5LEEub2JhcnJlZGN5cmlsbGljPTEyNTcsQS5vYmFycmVkZGllcmVzaXNjeXJpbGxpYz0xMjU5LEEub2JlbmdhbGk9MjQ1MSxBLm9ib3BvbW9mbz0xMjU3MSxBLm9icmV2ZT0zMzUsQS5vY2FuZHJhZGV2YT0yMzIxLEEub2NhbmRyYWd1amFyYXRpPTI3MDUsQS5vY2FuZHJhdm93ZWxzaWduZGV2YT0yMzc3LEEub2NhbmRyYXZvd2Vsc2lnbmd1amFyYXRpPTI3NjEsQS5vY2Fyb249NDY2LEEub2NpcmNsZT05NDM4LEEub2NpcmN1bWZsZXg9MjQ0LEEub2NpcmN1bWZsZXhhY3V0ZT03ODg5LEEub2NpcmN1bWZsZXhkb3RiZWxvdz03ODk3LEEub2NpcmN1bWZsZXhncmF2ZT03ODkxLEEub2NpcmN1bWZsZXhob29rYWJvdmU9Nzg5MyxBLm9jaXJjdW1mbGV4dGlsZGU9Nzg5NSxBLm9jeXJpbGxpYz0xMDg2LEEub2RibGFjdXRlPTMzNyxBLm9kYmxncmF2ZT01MjUsQS5vZGV2YT0yMzIzLEEub2RpZXJlc2lzPTI0NixBLm9kaWVyZXNpc2N5cmlsbGljPTEyNTUsQS5vZG90YmVsb3c9Nzg4NSxBLm9lPTMzOSxBLm9la29yZWFuPTEyNjM0LEEub2dvbmVrPTczMSxBLm9nb25la2NtYj04MDgsQS5vZ3JhdmU9MjQyLEEub2d1amFyYXRpPTI3MDcsQS5vaGFybWVuaWFuPTE0MTMsQS5vaGlyYWdhbmE9MTIzNjIsQS5vaG9va2Fib3ZlPTc4ODcsQS5vaG9ybj00MTcsQS5vaG9ybmFjdXRlPTc4OTksQS5vaG9ybmRvdGJlbG93PTc5MDcsQS5vaG9ybmdyYXZlPTc5MDEsQS5vaG9ybmhvb2thYm92ZT03OTAzLEEub2hvcm50aWxkZT03OTA1LEEub2h1bmdhcnVtbGF1dD0zMzcsQS5vaT00MTksQS5vaW52ZXJ0ZWRicmV2ZT01MjcsQS5va2F0YWthbmE9MTI0NTgsQS5va2F0YWthbmFoYWxmd2lkdGg9NjUzOTcsQS5va29yZWFuPTEyNjMxLEEub2xlaGVicmV3PTE0NTEsQS5vbWFjcm9uPTMzMyxBLm9tYWNyb25hY3V0ZT03NzYzLEEub21hY3JvbmdyYXZlPTc3NjEsQS5vbWRldmE9MjM4NCxBLm9tZWdhPTk2OSxBLm9tZWdhMT05ODIsQS5vbWVnYWN5cmlsbGljPTExMjEsQS5vbWVnYWxhdGluY2xvc2VkPTYzMSxBLm9tZWdhcm91bmRjeXJpbGxpYz0xMTQ3LEEub21lZ2F0aXRsb2N5cmlsbGljPTExNDksQS5vbWVnYXRvbm9zPTk3NCxBLm9tZ3VqYXJhdGk9Mjc2OCxBLm9taWNyb249OTU5LEEub21pY3JvbnRvbm9zPTk3MixBLm9tb25vc3BhY2U9NjUzNTksQS5vbmU9NDksQS5vbmVhcmFiaWM9MTYzMyxBLm9uZWJlbmdhbGk9MjUzNSxBLm9uZWNpcmNsZT05MzEyLEEub25lY2lyY2xlaW52ZXJzZXNhbnNzZXJpZj0xMDEyMixBLm9uZWRldmE9MjQwNyxBLm9uZWRvdGVubGVhZGVyPTgyMjgsQS5vbmVlaWdodGg9ODUzOSxBLm9uZWZpdHRlZD02MzE5NixBLm9uZWd1amFyYXRpPTI3OTEsQS5vbmVndXJtdWtoaT0yNjYzLEEub25laGFja2FyYWJpYz0xNjMzLEEub25laGFsZj0xODksQS5vbmVoYW5nemhvdT0xMjMyMSxBLm9uZWlkZW9ncmFwaGljcGFyZW49MTI4MzIsQS5vbmVpbmZlcmlvcj04MzIxLEEub25lbW9ub3NwYWNlPTY1Mjk3LEEub25lbnVtZXJhdG9yYmVuZ2FsaT0yNTQ4LEEub25lb2xkc3R5bGU9NjMyODEsQS5vbmVwYXJlbj05MzMyLEEub25lcGVyaW9kPTkzNTIsQS5vbmVwZXJzaWFuPTE3NzcsQS5vbmVxdWFydGVyPTE4OCxBLm9uZXJvbWFuPTg1NjAsQS5vbmVzdXBlcmlvcj0xODUsQS5vbmV0aGFpPTM2NjUsQS5vbmV0aGlyZD04NTMxLEEub29nb25laz00OTEsQS5vb2dvbmVrbWFjcm9uPTQ5MyxBLm9vZ3VybXVraGk9MjU3OSxBLm9vbWF0cmFndXJtdWtoaT0yNjM1LEEub29wZW49NTk2LEEub3BhcmVuPTkzODYsQS5vcGVuYnVsbGV0PTk3MDIsQS5vcHRpb249ODk5NyxBLm9yZGZlbWluaW5lPTE3MCxBLm9yZG1hc2N1bGluZT0xODYsQS5vcnRob2dvbmFsPTg3MzUsQS5vc2hvcnRkZXZhPTIzMjIsQS5vc2hvcnR2b3dlbHNpZ25kZXZhPTIzNzgsQS5vc2xhc2g9MjQ4LEEub3NsYXNoYWN1dGU9NTExLEEub3NtYWxsaGlyYWdhbmE9MTIzNjEsQS5vc21hbGxrYXRha2FuYT0xMjQ1NyxBLm9zbWFsbGthdGFrYW5haGFsZndpZHRoPTY1Mzg3LEEub3N0cm9rZWFjdXRlPTUxMSxBLm9zdXBlcmlvcj02MzIxNixBLm90Y3lyaWxsaWM9MTE1MSxBLm90aWxkZT0yNDUsQS5vdGlsZGVhY3V0ZT03NzU3LEEub3RpbGRlZGllcmVzaXM9Nzc1OSxBLm91Ym9wb21vZm89MTI1NzcsQS5vdmVybGluZT04MjU0LEEub3ZlcmxpbmVjZW50ZXJsaW5lPTY1MDk4LEEub3ZlcmxpbmVjbWI9NzczLEEub3ZlcmxpbmVkYXNoZWQ9NjUwOTcsQS5vdmVybGluZWRibHdhdnk9NjUxMDAsQS5vdmVybGluZXdhdnk9NjUwOTksQS5vdmVyc2NvcmU9MTc1LEEub3Zvd2Vsc2lnbmJlbmdhbGk9MjUwNyxBLm92b3dlbHNpZ25kZXZhPTIzNzksQS5vdm93ZWxzaWduZ3VqYXJhdGk9Mjc2MyxBLnA9MTEyLEEucGFhbXBzc3F1YXJlPTEzMTg0LEEucGFhc2VudG9zcXVhcmU9MTMwOTksQS5wYWJlbmdhbGk9MjQ3NCxBLnBhY3V0ZT03NzY1LEEucGFkZXZhPTIzNDYsQS5wYWdlZG93bj04NjcxLEEucGFnZXVwPTg2NzAsQS5wYWd1amFyYXRpPTI3MzAsQS5wYWd1cm11a2hpPTI2MDIsQS5wYWhpcmFnYW5hPTEyNDAxLEEucGFpeWFubm9pdGhhaT0zNjMxLEEucGFrYXRha2FuYT0xMjQ5NyxBLnBhbGF0YWxpemF0aW9uY3lyaWxsaWNjbWI9MTE1NixBLnBhbG9jaGthY3lyaWxsaWM9MTIxNixBLnBhbnNpb3Nrb3JlYW49MTI2NzEsQS5wYXJhZ3JhcGg9MTgyLEEucGFyYWxsZWw9ODc0MSxBLnBhcmVubGVmdD00MCxBLnBhcmVubGVmdGFsdG9uZWFyYWJpYz02NDgzMCxBLnBhcmVubGVmdGJ0PTYzNzI1LEEucGFyZW5sZWZ0ZXg9NjM3MjQsQS5wYXJlbmxlZnRpbmZlcmlvcj04MzMzLEEucGFyZW5sZWZ0bW9ub3NwYWNlPTY1Mjg4LEEucGFyZW5sZWZ0c21hbGw9NjUxMTMsQS5wYXJlbmxlZnRzdXBlcmlvcj04MzE3LEEucGFyZW5sZWZ0dHA9NjM3MjMsQS5wYXJlbmxlZnR2ZXJ0aWNhbD02NTA3NyxBLnBhcmVucmlnaHQ9NDEsQS5wYXJlbnJpZ2h0YWx0b25lYXJhYmljPTY0ODMxLEEucGFyZW5yaWdodGJ0PTYzNzM2LEEucGFyZW5yaWdodGV4PTYzNzM1LEEucGFyZW5yaWdodGluZmVyaW9yPTgzMzQsQS5wYXJlbnJpZ2h0bW9ub3NwYWNlPTY1Mjg5LEEucGFyZW5yaWdodHNtYWxsPTY1MTE0LEEucGFyZW5yaWdodHN1cGVyaW9yPTgzMTgsQS5wYXJlbnJpZ2h0dHA9NjM3MzQsQS5wYXJlbnJpZ2h0dmVydGljYWw9NjUwNzgsQS5wYXJ0aWFsZGlmZj04NzA2LEEucGFzZXFoZWJyZXc9MTQ3MixBLnBhc2h0YWhlYnJldz0xNDMzLEEucGFzcXVhcmU9MTMyMjUsQS5wYXRhaD0xNDYzLEEucGF0YWgxMT0xNDYzLEEucGF0YWgxZD0xNDYzLEEucGF0YWgyYT0xNDYzLEEucGF0YWhoZWJyZXc9MTQ2MyxBLnBhdGFobmFycm93aGVicmV3PTE0NjMsQS5wYXRhaHF1YXJ0ZXJoZWJyZXc9MTQ2MyxBLnBhdGFod2lkZWhlYnJldz0xNDYzLEEucGF6ZXJoZWJyZXc9MTQ0MSxBLnBib3BvbW9mbz0xMjU1MCxBLnBjaXJjbGU9OTQzOSxBLnBkb3RhY2NlbnQ9Nzc2NyxBLnBlPTE1MDgsQS5wZWN5cmlsbGljPTEwODcsQS5wZWRhZ2VzaD02NDMyNCxBLnBlZGFnZXNoaGVicmV3PTY0MzI0LEEucGVlemlzcXVhcmU9MTMxMTUsQS5wZWZpbmFsZGFnZXNoaGVicmV3PTY0MzIzLEEucGVoYXJhYmljPTE2NjIsQS5wZWhhcm1lbmlhbj0xNDAyLEEucGVoZWJyZXc9MTUwOCxBLnBlaGZpbmFsYXJhYmljPTY0MzQzLEEucGVoaW5pdGlhbGFyYWJpYz02NDM0NCxBLnBlaGlyYWdhbmE9MTI0MTAsQS5wZWhtZWRpYWxhcmFiaWM9NjQzNDUsQS5wZWthdGFrYW5hPTEyNTA2LEEucGVtaWRkbGVob29rY3lyaWxsaWM9MTE5MSxBLnBlcmFmZWhlYnJldz02NDMzNCxBLnBlcmNlbnQ9MzcsQS5wZXJjZW50YXJhYmljPTE2NDIsQS5wZXJjZW50bW9ub3NwYWNlPTY1Mjg1LEEucGVyY2VudHNtYWxsPTY1MTMwLEEucGVyaW9kPTQ2LEEucGVyaW9kYXJtZW5pYW49MTQxNyxBLnBlcmlvZGNlbnRlcmVkPTE4MyxBLnBlcmlvZGhhbGZ3aWR0aD02NTM3NyxBLnBlcmlvZGluZmVyaW9yPTYzMjA3LEEucGVyaW9kbW9ub3NwYWNlPTY1Mjk0LEEucGVyaW9kc21hbGw9NjUxMDYsQS5wZXJpb2RzdXBlcmlvcj02MzIwOCxBLnBlcmlzcG9tZW5pZ3JlZWtjbWI9ODM0LEEucGVycGVuZGljdWxhcj04ODY5LEEucGVydGhvdXNhbmQ9ODI0MCxBLnBlc2V0YT04MzU5LEEucGZzcXVhcmU9MTMxOTQsQS5waGFiZW5nYWxpPTI0NzUsQS5waGFkZXZhPTIzNDcsQS5waGFndWphcmF0aT0yNzMxLEEucGhhZ3VybXVraGk9MjYwMyxBLnBoaT05NjYsQS5waGkxPTk4MSxBLnBoaWV1cGhhY2lyY2xla29yZWFuPTEyOTIyLEEucGhpZXVwaGFwYXJlbmtvcmVhbj0xMjgyNixBLnBoaWV1cGhjaXJjbGVrb3JlYW49MTI5MDgsQS5waGlldXBoa29yZWFuPTEyNjIxLEEucGhpZXVwaHBhcmVua29yZWFuPTEyODEyLEEucGhpbGF0aW49NjMyLEEucGhpbnRodXRoYWk9MzY0MixBLnBoaXN5bWJvbGdyZWVrPTk4MSxBLnBob29rPTQyMSxBLnBob3BoYW50aGFpPTM2MTQsQS5waG9waHVuZ3RoYWk9MzYxMixBLnBob3NhbXBoYW90aGFpPTM2MTYsQS5waT05NjAsQS5waWV1cGFjaXJjbGVrb3JlYW49MTI5MTUsQS5waWV1cGFwYXJlbmtvcmVhbj0xMjgxOSxBLnBpZXVwY2lldWNrb3JlYW49MTI2NjIsQS5waWV1cGNpcmNsZWtvcmVhbj0xMjkwMSxBLnBpZXVwa2l5ZW9ra29yZWFuPTEyNjU4LEEucGlldXBrb3JlYW49MTI2MTAsQS5waWV1cHBhcmVua29yZWFuPTEyODA1LEEucGlldXBzaW9za2l5ZW9ra29yZWFuPTEyNjYwLEEucGlldXBzaW9za29yZWFuPTEyNjEyLEEucGlldXBzaW9zdGlrZXV0a29yZWFuPTEyNjYxLEEucGlldXB0aGlldXRoa29yZWFuPTEyNjYzLEEucGlldXB0aWtldXRrb3JlYW49MTI2NTksQS5waWhpcmFnYW5hPTEyNDA0LEEucGlrYXRha2FuYT0xMjUwMCxBLnBpc3ltYm9sZ3JlZWs9OTgyLEEucGl3cmFybWVuaWFuPTE0MTEsQS5wbGFuY2tvdmVyMnBpPTg0NjMsQS5wbGFuY2tvdmVyMnBpMT04NDYzLEEucGx1cz00MyxBLnBsdXNiZWxvd2NtYj03OTksQS5wbHVzY2lyY2xlPTg4NTMsQS5wbHVzbWludXM9MTc3LEEucGx1c21vZD03MjYsQS5wbHVzbW9ub3NwYWNlPTY1MjkxLEEucGx1c3NtYWxsPTY1MTIyLEEucGx1c3N1cGVyaW9yPTgzMTQsQS5wbW9ub3NwYWNlPTY1MzYwLEEucG1zcXVhcmU9MTMyNzIsQS5wb2hpcmFnYW5hPTEyNDEzLEEucG9pbnRpbmdpbmRleGRvd253aGl0ZT05NzU5LEEucG9pbnRpbmdpbmRleGxlZnR3aGl0ZT05NzU2LEEucG9pbnRpbmdpbmRleHJpZ2h0d2hpdGU9OTc1OCxBLnBvaW50aW5naW5kZXh1cHdoaXRlPTk3NTcsQS5wb2thdGFrYW5hPTEyNTA5LEEucG9wbGF0aGFpPTM2MTEsQS5wb3N0YWxtYXJrPTEyMzA2LEEucG9zdGFsbWFya2ZhY2U9MTIzMjAsQS5wcGFyZW49OTM4NyxBLnByZWNlZGVzPTg4MjYsQS5wcmVzY3JpcHRpb249ODQ3OCxBLnByaW1lbW9kPTY5NyxBLnByaW1lcmV2ZXJzZWQ9ODI0NSxBLnByb2R1Y3Q9ODcxOSxBLnByb2plY3RpdmU9ODk2NSxBLnByb2xvbmdlZGthbmE9MTI1NDAsQS5wcm9wZWxsb3I9ODk4NCxBLnByb3BlcnN1YnNldD04ODM0LEEucHJvcGVyc3VwZXJzZXQ9ODgzNSxBLnByb3BvcnRpb249ODc1OSxBLnByb3BvcnRpb25hbD04NzMzLEEucHNpPTk2OCxBLnBzaWN5cmlsbGljPTExMzcsQS5wc2lsaXBuZXVtYXRhY3lyaWxsaWNjbWI9MTE1OCxBLnBzc3F1YXJlPTEzMjMyLEEucHVoaXJhZ2FuYT0xMjQwNyxBLnB1a2F0YWthbmE9MTI1MDMsQS5wdnNxdWFyZT0xMzIzNixBLnB3c3F1YXJlPTEzMjQyLEEucT0xMTMsQS5xYWRldmE9MjM5MixBLnFhZG1haGVicmV3PTE0NDgsQS5xYWZhcmFiaWM9MTYwMixBLnFhZmZpbmFsYXJhYmljPTY1MjM4LEEucWFmaW5pdGlhbGFyYWJpYz02NTIzOSxBLnFhZm1lZGlhbGFyYWJpYz02NTI0MCxBLnFhbWF0cz0xNDY0LEEucWFtYXRzMTA9MTQ2NCxBLnFhbWF0czFhPTE0NjQsQS5xYW1hdHMxYz0xNDY0LEEucWFtYXRzMjc9MTQ2NCxBLnFhbWF0czI5PTE0NjQsQS5xYW1hdHMzMz0xNDY0LEEucWFtYXRzZGU9MTQ2NCxBLnFhbWF0c2hlYnJldz0xNDY0LEEucWFtYXRzbmFycm93aGVicmV3PTE0NjQsQS5xYW1hdHNxYXRhbmhlYnJldz0xNDY0LEEucWFtYXRzcWF0YW5uYXJyb3doZWJyZXc9MTQ2NCxBLnFhbWF0c3FhdGFucXVhcnRlcmhlYnJldz0xNDY0LEEucWFtYXRzcWF0YW53aWRlaGVicmV3PTE0NjQsQS5xYW1hdHNxdWFydGVyaGVicmV3PTE0NjQsQS5xYW1hdHN3aWRlaGVicmV3PTE0NjQsQS5xYXJuZXlwYXJhaGVicmV3PTE0MzksQS5xYm9wb21vZm89MTI1NjEsQS5xY2lyY2xlPTk0NDAsQS5xaG9vaz02NzIsQS5xbW9ub3NwYWNlPTY1MzYxLEEucW9mPTE1MTEsQS5xb2ZkYWdlc2g9NjQzMjcsQS5xb2ZkYWdlc2hoZWJyZXc9NjQzMjcsQS5xb2ZoZWJyZXc9MTUxMSxBLnFwYXJlbj05Mzg4LEEucXVhcnRlcm5vdGU9OTgzMyxBLnF1YnV0cz0xNDY3LEEucXVidXRzMTg9MTQ2NyxBLnF1YnV0czI1PTE0NjcsQS5xdWJ1dHMzMT0xNDY3LEEucXVidXRzaGVicmV3PTE0NjcsQS5xdWJ1dHNuYXJyb3doZWJyZXc9MTQ2NyxBLnF1YnV0c3F1YXJ0ZXJoZWJyZXc9MTQ2NyxBLnF1YnV0c3dpZGVoZWJyZXc9MTQ2NyxBLnF1ZXN0aW9uPTYzLEEucXVlc3Rpb25hcmFiaWM9MTU2NyxBLnF1ZXN0aW9uYXJtZW5pYW49MTM3NCxBLnF1ZXN0aW9uZG93bj0xOTEsQS5xdWVzdGlvbmRvd25zbWFsbD02MzQyMyxBLnF1ZXN0aW9uZ3JlZWs9ODk0LEEucXVlc3Rpb25tb25vc3BhY2U9NjUzMTEsQS5xdWVzdGlvbnNtYWxsPTYzMjk1LEEucXVvdGVkYmw9MzQsQS5xdW90ZWRibGJhc2U9ODIyMixBLnF1b3RlZGJsbGVmdD04MjIwLEEucXVvdGVkYmxtb25vc3BhY2U9NjUyODIsQS5xdW90ZWRibHByaW1lPTEyMzE4LEEucXVvdGVkYmxwcmltZXJldmVyc2VkPTEyMzE3LEEucXVvdGVkYmxyaWdodD04MjIxLEEucXVvdGVsZWZ0PTgyMTYsQS5xdW90ZWxlZnRyZXZlcnNlZD04MjE5LEEucXVvdGVyZXZlcnNlZD04MjE5LEEucXVvdGVyaWdodD04MjE3LEEucXVvdGVyaWdodG49MzI5LEEucXVvdGVzaW5nbGJhc2U9ODIxOCxBLnF1b3Rlc2luZ2xlPTM5LEEucXVvdGVzaW5nbGVtb25vc3BhY2U9NjUyODcsQS5yPTExNCxBLnJhYXJtZW5pYW49MTQwNCxBLnJhYmVuZ2FsaT0yNDgwLEEucmFjdXRlPTM0MSxBLnJhZGV2YT0yMzUyLEEucmFkaWNhbD04NzMwLEEucmFkaWNhbGV4PTYzNzE3LEEucmFkb3ZlcnNzcXVhcmU9MTMyMzAsQS5yYWRvdmVyc3NxdWFyZWRzcXVhcmU9MTMyMzEsQS5yYWRzcXVhcmU9MTMyMjksQS5yYWZlPTE0NzEsQS5yYWZlaGVicmV3PTE0NzEsQS5yYWd1amFyYXRpPTI3MzYsQS5yYWd1cm11a2hpPTI2MDgsQS5yYWhpcmFnYW5hPTEyNDI1LEEucmFrYXRha2FuYT0xMjUyMSxBLnJha2F0YWthbmFoYWxmd2lkdGg9NjU0MzEsQS5yYWxvd2VyZGlhZ29uYWxiZW5nYWxpPTI1NDUsQS5yYW1pZGRsZWRpYWdvbmFsYmVuZ2FsaT0yNTQ0LEEucmFtc2hvcm49NjEyLEEucmF0aW89ODc1OCxBLnJib3BvbW9mbz0xMjU2NixBLnJjYXJvbj0zNDUsQS5yY2VkaWxsYT0zNDMsQS5yY2lyY2xlPTk0NDEsQS5yY29tbWFhY2NlbnQ9MzQzLEEucmRibGdyYXZlPTUyOSxBLnJkb3RhY2NlbnQ9Nzc2OSxBLnJkb3RiZWxvdz03NzcxLEEucmRvdGJlbG93bWFjcm9uPTc3NzMsQS5yZWZlcmVuY2VtYXJrPTgyNTEsQS5yZWZsZXhzdWJzZXQ9ODgzOCxBLnJlZmxleHN1cGVyc2V0PTg4MzksQS5yZWdpc3RlcmVkPTE3NCxBLnJlZ2lzdGVyc2Fucz02MzcyMCxBLnJlZ2lzdGVyc2VyaWY9NjMxOTQsQS5yZWhhcmFiaWM9MTU4NSxBLnJlaGFybWVuaWFuPTE0MDgsQS5yZWhmaW5hbGFyYWJpYz02NTE5OCxBLnJlaGlyYWdhbmE9MTI0MjgsQS5yZWthdGFrYW5hPTEyNTI0O0EucmVrYXRha2FuYWhhbGZ3aWR0aD02NTQzNCxBLnJlc2g9MTUxMixBLnJlc2hkYWdlc2hoZWJyZXc9NjQzMjgsQS5yZXNoaGVicmV3PTE1MTIsQS5yZXZlcnNlZHRpbGRlPTg3NjUsQS5yZXZpYWhlYnJldz0xNDMxLEEucmV2aWFtdWdyYXNoaGVicmV3PTE0MzEsQS5yZXZsb2dpY2Fsbm90PTg5NzYsQS5yZmlzaGhvb2s9NjM4LEEucmZpc2hob29rcmV2ZXJzZWQ9NjM5LEEucmhhYmVuZ2FsaT0yNTI1LEEucmhhZGV2YT0yMzk3LEEucmhvPTk2MSxBLnJob29rPTYzNyxBLnJob29rdHVybmVkPTYzNSxBLnJob29rdHVybmVkc3VwZXJpb3I9NjkzLEEucmhvc3ltYm9sZ3JlZWs9MTAwOSxBLnJob3RpY2hvb2ttb2Q9NzM0LEEucmlldWxhY2lyY2xla29yZWFuPTEyOTEzLEEucmlldWxhcGFyZW5rb3JlYW49MTI4MTcsQS5yaWV1bGNpcmNsZWtvcmVhbj0xMjg5OSxBLnJpZXVsaGlldWhrb3JlYW49MTI2MDgsQS5yaWV1bGtpeWVva2tvcmVhbj0xMjYwMixBLnJpZXVsa2l5ZW9rc2lvc2tvcmVhbj0xMjY0OSxBLnJpZXVsa29yZWFuPTEyNjAxLEEucmlldWxtaWV1bWtvcmVhbj0xMjYwMyxBLnJpZXVscGFuc2lvc2tvcmVhbj0xMjY1MixBLnJpZXVscGFyZW5rb3JlYW49MTI4MDMsQS5yaWV1bHBoaWV1cGhrb3JlYW49MTI2MDcsQS5yaWV1bHBpZXVwa29yZWFuPTEyNjA0LEEucmlldWxwaWV1cHNpb3Nrb3JlYW49MTI2NTEsQS5yaWV1bHNpb3Nrb3JlYW49MTI2MDUsQS5yaWV1bHRoaWV1dGhrb3JlYW49MTI2MDYsQS5yaWV1bHRpa2V1dGtvcmVhbj0xMjY1MCxBLnJpZXVseWVvcmluaGlldWhrb3JlYW49MTI2NTMsQS5yaWdodGFuZ2xlPTg3MzUsQS5yaWdodHRhY2tiZWxvd2NtYj03OTMsQS5yaWdodHRyaWFuZ2xlPTg4OTUsQS5yaWhpcmFnYW5hPTEyNDI2LEEucmlrYXRha2FuYT0xMjUyMixBLnJpa2F0YWthbmFoYWxmd2lkdGg9NjU0MzIsQS5yaW5nPTczMCxBLnJpbmdiZWxvd2NtYj04MDUsQS5yaW5nY21iPTc3OCxBLnJpbmdoYWxmbGVmdD03MDMsQS5yaW5naGFsZmxlZnRhcm1lbmlhbj0xMzY5LEEucmluZ2hhbGZsZWZ0YmVsb3djbWI9Nzk2LEEucmluZ2hhbGZsZWZ0Y2VudGVyZWQ9NzIzLEEucmluZ2hhbGZyaWdodD03MDIsQS5yaW5naGFsZnJpZ2h0YmVsb3djbWI9ODI1LEEucmluZ2hhbGZyaWdodGNlbnRlcmVkPTcyMixBLnJpbnZlcnRlZGJyZXZlPTUzMSxBLnJpdHRvcnVzcXVhcmU9MTMxMzcsQS5ybGluZWJlbG93PTc3NzUsQS5ybG9uZ2xlZz02MzYsQS5ybG9uZ2xlZ3R1cm5lZD02MzQsQS5ybW9ub3NwYWNlPTY1MzYyLEEucm9oaXJhZ2FuYT0xMjQyOSxBLnJva2F0YWthbmE9MTI1MjUsQS5yb2thdGFrYW5haGFsZndpZHRoPTY1NDM1LEEucm9ydWF0aGFpPTM2MTksQS5ycGFyZW49OTM4OSxBLnJyYWJlbmdhbGk9MjUyNCxBLnJyYWRldmE9MjM1MyxBLnJyYWd1cm11a2hpPTI2NTIsQS5ycmVoYXJhYmljPTE2ODEsQS5ycmVoZmluYWxhcmFiaWM9NjQzOTcsQS5ycnZvY2FsaWNiZW5nYWxpPTI1MjgsQS5ycnZvY2FsaWNkZXZhPTI0MDAsQS5ycnZvY2FsaWNndWphcmF0aT0yNzg0LEEucnJ2b2NhbGljdm93ZWxzaWduYmVuZ2FsaT0yNTAwLEEucnJ2b2NhbGljdm93ZWxzaWduZGV2YT0yMzcyLEEucnJ2b2NhbGljdm93ZWxzaWduZ3VqYXJhdGk9Mjc1NixBLnJzdXBlcmlvcj02MzIxNyxBLnJ0YmxvY2s9OTYxNixBLnJ0dXJuZWQ9NjMzLEEucnR1cm5lZHN1cGVyaW9yPTY5MixBLnJ1aGlyYWdhbmE9MTI0MjcsQS5ydWthdGFrYW5hPTEyNTIzLEEucnVrYXRha2FuYWhhbGZ3aWR0aD02NTQzMyxBLnJ1cGVlbWFya2JlbmdhbGk9MjU0NixBLnJ1cGVlc2lnbmJlbmdhbGk9MjU0NyxBLnJ1cGlhaD02MzE5NyxBLnJ1dGhhaT0zNjIwLEEucnZvY2FsaWNiZW5nYWxpPTI0NDMsQS5ydm9jYWxpY2RldmE9MjMxNSxBLnJ2b2NhbGljZ3VqYXJhdGk9MjY5OSxBLnJ2b2NhbGljdm93ZWxzaWduYmVuZ2FsaT0yNDk5LEEucnZvY2FsaWN2b3dlbHNpZ25kZXZhPTIzNzEsQS5ydm9jYWxpY3Zvd2Vsc2lnbmd1amFyYXRpPTI3NTUsQS5zPTExNSxBLnNhYmVuZ2FsaT0yNDg4LEEuc2FjdXRlPTM0NyxBLnNhY3V0ZWRvdGFjY2VudD03NzgxLEEuc2FkYXJhYmljPTE1ODksQS5zYWRldmE9MjM2MCxBLnNhZGZpbmFsYXJhYmljPTY1MjEwLEEuc2FkaW5pdGlhbGFyYWJpYz02NTIxMSxBLnNhZG1lZGlhbGFyYWJpYz02NTIxMixBLnNhZ3VqYXJhdGk9Mjc0NCxBLnNhZ3VybXVraGk9MjYxNixBLnNhaGlyYWdhbmE9MTIzNzMsQS5zYWthdGFrYW5hPTEyNDY5LEEuc2FrYXRha2FuYWhhbGZ3aWR0aD02NTQwMyxBLnNhbGxhbGxhaG91YWxheWhld2FzYWxsYW1hcmFiaWM9NjUwMTgsQS5zYW1la2g9MTUwNSxBLnNhbWVraGRhZ2VzaD02NDMyMSxBLnNhbWVraGRhZ2VzaGhlYnJldz02NDMyMSxBLnNhbWVraGhlYnJldz0xNTA1LEEuc2FyYWFhdGhhaT0zNjM0LEEuc2FyYWFldGhhaT0zNjQ5LEEuc2FyYWFpbWFpbWFsYWl0aGFpPTM2NTIsQS5zYXJhYWltYWltdWFudGhhaT0zNjUxLEEuc2FyYWFtdGhhaT0zNjM1LEEuc2FyYWF0aGFpPTM2MzIsQS5zYXJhZXRoYWk9MzY0OCxBLnNhcmFpaWxlZnR0aGFpPTYzNjIyLEEuc2FyYWlpdGhhaT0zNjM3LEEuc2FyYWlsZWZ0dGhhaT02MzYyMSxBLnNhcmFpdGhhaT0zNjM2LEEuc2FyYW90aGFpPTM2NTAsQS5zYXJhdWVlbGVmdHRoYWk9NjM2MjQsQS5zYXJhdWVldGhhaT0zNjM5LEEuc2FyYXVlbGVmdHRoYWk9NjM2MjMsQS5zYXJhdWV0aGFpPTM2MzgsQS5zYXJhdXRoYWk9MzY0MCxBLnNhcmF1dXRoYWk9MzY0MSxBLnNib3BvbW9mbz0xMjU2OSxBLnNjYXJvbj0zNTMsQS5zY2Fyb25kb3RhY2NlbnQ9Nzc4MyxBLnNjZWRpbGxhPTM1MSxBLnNjaHdhPTYwMSxBLnNjaHdhY3lyaWxsaWM9MTI0MSxBLnNjaHdhZGllcmVzaXNjeXJpbGxpYz0xMjQzLEEuc2Nod2Fob29rPTYwMixBLnNjaXJjbGU9OTQ0MixBLnNjaXJjdW1mbGV4PTM0OSxBLnNjb21tYWFjY2VudD01MzcsQS5zZG90YWNjZW50PTc3NzcsQS5zZG90YmVsb3c9Nzc3OSxBLnNkb3RiZWxvd2RvdGFjY2VudD03Nzg1LEEuc2VhZ3VsbGJlbG93Y21iPTgyOCxBLnNlY29uZD04MjQzLEEuc2Vjb25kdG9uZWNoaW5lc2U9NzE0LEEuc2VjdGlvbj0xNjcsQS5zZWVuYXJhYmljPTE1ODcsQS5zZWVuZmluYWxhcmFiaWM9NjUyMDIsQS5zZWVuaW5pdGlhbGFyYWJpYz02NTIwMyxBLnNlZW5tZWRpYWxhcmFiaWM9NjUyMDQsQS5zZWdvbD0xNDYyLEEuc2Vnb2wxMz0xNDYyLEEuc2Vnb2wxZj0xNDYyLEEuc2Vnb2wyYz0xNDYyLEEuc2Vnb2xoZWJyZXc9MTQ2MixBLnNlZ29sbmFycm93aGVicmV3PTE0NjIsQS5zZWdvbHF1YXJ0ZXJoZWJyZXc9MTQ2MixBLnNlZ29sdGFoZWJyZXc9MTQyNixBLnNlZ29sd2lkZWhlYnJldz0xNDYyLEEuc2VoYXJtZW5pYW49MTQwNSxBLnNlaGlyYWdhbmE9MTIzNzksQS5zZWthdGFrYW5hPTEyNDc1LEEuc2VrYXRha2FuYWhhbGZ3aWR0aD02NTQwNixBLnNlbWljb2xvbj01OSxBLnNlbWljb2xvbmFyYWJpYz0xNTYzLEEuc2VtaWNvbG9ubW9ub3NwYWNlPTY1MzA3LEEuc2VtaWNvbG9uc21hbGw9NjUxMDgsQS5zZW1pdm9pY2VkbWFya2thbmE9MTI0NDQsQS5zZW1pdm9pY2VkbWFya2thbmFoYWxmd2lkdGg9NjU0MzksQS5zZW50aXNxdWFyZT0xMzA5MCxBLnNlbnRvc3F1YXJlPTEzMDkxLEEuc2V2ZW49NTUsQS5zZXZlbmFyYWJpYz0xNjM5LEEuc2V2ZW5iZW5nYWxpPTI1NDEsQS5zZXZlbmNpcmNsZT05MzE4LEEuc2V2ZW5jaXJjbGVpbnZlcnNlc2Fuc3NlcmlmPTEwMTI4LEEuc2V2ZW5kZXZhPTI0MTMsQS5zZXZlbmVpZ2h0aHM9ODU0MixBLnNldmVuZ3VqYXJhdGk9Mjc5NyxBLnNldmVuZ3VybXVraGk9MjY2OSxBLnNldmVuaGFja2FyYWJpYz0xNjM5LEEuc2V2ZW5oYW5nemhvdT0xMjMyNyxBLnNldmVuaWRlb2dyYXBoaWNwYXJlbj0xMjgzOCxBLnNldmVuaW5mZXJpb3I9ODMyNyxBLnNldmVubW9ub3NwYWNlPTY1MzAzLEEuc2V2ZW5vbGRzdHlsZT02MzI4NyxBLnNldmVucGFyZW49OTMzOCxBLnNldmVucGVyaW9kPTkzNTgsQS5zZXZlbnBlcnNpYW49MTc4MyxBLnNldmVucm9tYW49ODU2NixBLnNldmVuc3VwZXJpb3I9ODMxMSxBLnNldmVudGVlbmNpcmNsZT05MzI4LEEuc2V2ZW50ZWVucGFyZW49OTM0OCxBLnNldmVudGVlbnBlcmlvZD05MzY4LEEuc2V2ZW50aGFpPTM2NzEsQS5zZnRoeXBoZW49MTczLEEuc2hhYXJtZW5pYW49MTM5OSxBLnNoYWJlbmdhbGk9MjQ4NixBLnNoYWN5cmlsbGljPTEwOTYsQS5zaGFkZGFhcmFiaWM9MTYxNyxBLnNoYWRkYWRhbW1hYXJhYmljPTY0NjA5LEEuc2hhZGRhZGFtbWF0YW5hcmFiaWM9NjQ2MDYsQS5zaGFkZGFmYXRoYWFyYWJpYz02NDYwOCxBLnNoYWRkYWthc3JhYXJhYmljPTY0NjEwLEEuc2hhZGRha2FzcmF0YW5hcmFiaWM9NjQ2MDcsQS5zaGFkZT05NjE4LEEuc2hhZGVkYXJrPTk2MTksQS5zaGFkZWxpZ2h0PTk2MTcsQS5zaGFkZW1lZGl1bT05NjE4LEEuc2hhZGV2YT0yMzU4LEEuc2hhZ3VqYXJhdGk9Mjc0MixBLnNoYWd1cm11a2hpPTI2MTQsQS5zaGFsc2hlbGV0aGVicmV3PTE0MjcsQS5zaGJvcG9tb2ZvPTEyNTY1LEEuc2hjaGFjeXJpbGxpYz0xMDk3LEEuc2hlZW5hcmFiaWM9MTU4OCxBLnNoZWVuZmluYWxhcmFiaWM9NjUyMDYsQS5zaGVlbmluaXRpYWxhcmFiaWM9NjUyMDcsQS5zaGVlbm1lZGlhbGFyYWJpYz02NTIwOCxBLnNoZWljb3B0aWM9OTk1LEEuc2hlcWVsPTgzNjIsQS5zaGVxZWxoZWJyZXc9ODM2MixBLnNoZXZhPTE0NTYsQS5zaGV2YTExNT0xNDU2LEEuc2hldmExNT0xNDU2LEEuc2hldmEyMj0xNDU2LEEuc2hldmEyZT0xNDU2LEEuc2hldmFoZWJyZXc9MTQ1NixBLnNoZXZhbmFycm93aGVicmV3PTE0NTYsQS5zaGV2YXF1YXJ0ZXJoZWJyZXc9MTQ1NixBLnNoZXZhd2lkZWhlYnJldz0xNDU2LEEuc2hoYWN5cmlsbGljPTEyMTEsQS5zaGltYWNvcHRpYz0xMDA1LEEuc2hpbj0xNTEzLEEuc2hpbmRhZ2VzaD02NDMyOSxBLnNoaW5kYWdlc2hoZWJyZXc9NjQzMjksQS5zaGluZGFnZXNoc2hpbmRvdD02NDMwMCxBLnNoaW5kYWdlc2hzaGluZG90aGVicmV3PTY0MzAwLEEuc2hpbmRhZ2VzaHNpbmRvdD02NDMwMSxBLnNoaW5kYWdlc2hzaW5kb3RoZWJyZXc9NjQzMDEsQS5zaGluZG90aGVicmV3PTE0NzMsQS5zaGluaGVicmV3PTE1MTMsQS5zaGluc2hpbmRvdD02NDI5OCxBLnNoaW5zaGluZG90aGVicmV3PTY0Mjk4LEEuc2hpbnNpbmRvdD02NDI5OSxBLnNoaW5zaW5kb3RoZWJyZXc9NjQyOTksQS5zaG9vaz02NDIsQS5zaWdtYT05NjMsQS5zaWdtYTE9OTYyLEEuc2lnbWFmaW5hbD05NjIsQS5zaWdtYWx1bmF0ZXN5bWJvbGdyZWVrPTEwMTAsQS5zaWhpcmFnYW5hPTEyMzc1LEEuc2lrYXRha2FuYT0xMjQ3MSxBLnNpa2F0YWthbmFoYWxmd2lkdGg9NjU0MDQsQS5zaWx1cWhlYnJldz0xNDY5LEEuc2lsdXFsZWZ0aGVicmV3PTE0NjksQS5zaW1pbGFyPTg3NjQsQS5zaW5kb3RoZWJyZXc9MTQ3NCxBLnNpb3NhY2lyY2xla29yZWFuPTEyOTE2LEEuc2lvc2FwYXJlbmtvcmVhbj0xMjgyMCxBLnNpb3NjaWV1Y2tvcmVhbj0xMjY3MCxBLnNpb3NjaXJjbGVrb3JlYW49MTI5MDIsQS5zaW9za2l5ZW9ra29yZWFuPTEyNjY2LEEuc2lvc2tvcmVhbj0xMjYxMyxBLnNpb3NuaWV1bmtvcmVhbj0xMjY2NyxBLnNpb3NwYXJlbmtvcmVhbj0xMjgwNixBLnNpb3NwaWV1cGtvcmVhbj0xMjY2OSxBLnNpb3N0aWtldXRrb3JlYW49MTI2NjgsQS5zaXg9NTQsQS5zaXhhcmFiaWM9MTYzOCxBLnNpeGJlbmdhbGk9MjU0MCxBLnNpeGNpcmNsZT05MzE3LEEuc2l4Y2lyY2xlaW52ZXJzZXNhbnNzZXJpZj0xMDEyNyxBLnNpeGRldmE9MjQxMixBLnNpeGd1amFyYXRpPTI3OTYsQS5zaXhndXJtdWtoaT0yNjY4LEEuc2l4aGFja2FyYWJpYz0xNjM4LEEuc2l4aGFuZ3pob3U9MTIzMjYsQS5zaXhpZGVvZ3JhcGhpY3BhcmVuPTEyODM3LEEuc2l4aW5mZXJpb3I9ODMyNixBLnNpeG1vbm9zcGFjZT02NTMwMixBLnNpeG9sZHN0eWxlPTYzMjg2LEEuc2l4cGFyZW49OTMzNyxBLnNpeHBlcmlvZD05MzU3LEEuc2l4cGVyc2lhbj0xNzgyLEEuc2l4cm9tYW49ODU2NSxBLnNpeHN1cGVyaW9yPTgzMTAsQS5zaXh0ZWVuY2lyY2xlPTkzMjcsQS5zaXh0ZWVuY3VycmVuY3lkZW5vbWluYXRvcmJlbmdhbGk9MjU1MyxBLnNpeHRlZW5wYXJlbj05MzQ3LEEuc2l4dGVlbnBlcmlvZD05MzY3LEEuc2l4dGhhaT0zNjcwLEEuc2xhc2g9NDcsQS5zbGFzaG1vbm9zcGFjZT02NTI5NSxBLnNsb25nPTM4MyxBLnNsb25nZG90YWNjZW50PTc4MzUsQS5zbWlsZWZhY2U9OTc4NixBLnNtb25vc3BhY2U9NjUzNjMsQS5zb2ZwYXN1cWhlYnJldz0xNDc1LEEuc29mdGh5cGhlbj0xNzMsQS5zb2Z0c2lnbmN5cmlsbGljPTExMDAsQS5zb2hpcmFnYW5hPTEyMzgxLEEuc29rYXRha2FuYT0xMjQ3NyxBLnNva2F0YWthbmFoYWxmd2lkdGg9NjU0MDcsQS5zb2xpZHVzbG9uZ292ZXJsYXljbWI9ODI0LEEuc29saWR1c3Nob3J0b3ZlcmxheWNtYj04MjMsQS5zb3J1c2l0aGFpPTM2MjUsQS5zb3NhbGF0aGFpPTM2MjQsQS5zb3NvdGhhaT0zNTk1LEEuc29zdWF0aGFpPTM2MjYsQS5zcGFjZT0zMixBLnNwYWNlaGFja2FyYWJpYz0zMixBLnNwYWRlPTk4MjQsQS5zcGFkZXN1aXRibGFjaz05ODI0LEEuc3BhZGVzdWl0d2hpdGU9OTgyOCxBLnNwYXJlbj05MzkwLEEuc3F1YXJlYmVsb3djbWI9ODI3LEEuc3F1YXJlY2M9MTMyNTIsQS5zcXVhcmVjbT0xMzIxMyxBLnNxdWFyZWRpYWdvbmFsY3Jvc3NoYXRjaGZpbGw9OTY0MSxBLnNxdWFyZWhvcml6b250YWxmaWxsPTk2MzYsQS5zcXVhcmVrZz0xMzE5OSxBLnNxdWFyZWttPTEzMjE0LEEuc3F1YXJla21jYXBpdGFsPTEzMjYyLEEuc3F1YXJlbG49MTMyNjUsQS5zcXVhcmVsb2c9MTMyNjYsQS5zcXVhcmVtZz0xMzE5OCxBLnNxdWFyZW1pbD0xMzI2OSxBLnNxdWFyZW1tPTEzMjEyLEEuc3F1YXJlbXNxdWFyZWQ9MTMyMTcsQS5zcXVhcmVvcnRob2dvbmFsY3Jvc3NoYXRjaGZpbGw9OTYzOCxBLnNxdWFyZXVwcGVybGVmdHRvbG93ZXJyaWdodGZpbGw9OTYzOSxBLnNxdWFyZXVwcGVycmlnaHR0b2xvd2VybGVmdGZpbGw9OTY0MCxBLnNxdWFyZXZlcnRpY2FsZmlsbD05NjM3LEEuc3F1YXJld2hpdGV3aXRoc21hbGxibGFjaz05NjM1LEEuc3JzcXVhcmU9MTMyNzUsQS5zc2FiZW5nYWxpPTI0ODcsQS5zc2FkZXZhPTIzNTksQS5zc2FndWphcmF0aT0yNzQzLEEuc3NhbmdjaWV1Y2tvcmVhbj0xMjYxNyxBLnNzYW5naGlldWhrb3JlYW49MTI2NzcsQS5zc2FuZ2lldW5na29yZWFuPTEyNjcyLEEuc3NhbmdraXllb2trb3JlYW49MTI1OTQsQS5zc2FuZ25pZXVua29yZWFuPTEyNjQ1LEEuc3NhbmdwaWV1cGtvcmVhbj0xMjYxMSxBLnNzYW5nc2lvc2tvcmVhbj0xMjYxNCxBLnNzYW5ndGlrZXV0a29yZWFuPTEyNjAwLEEuc3N1cGVyaW9yPTYzMjE4LEEuc3Rlcmxpbmc9MTYzLEEuc3Rlcmxpbmdtb25vc3BhY2U9NjU1MDUsQS5zdHJva2Vsb25nb3ZlcmxheWNtYj04MjIsQS5zdHJva2VzaG9ydG92ZXJsYXljbWI9ODIxLEEuc3Vic2V0PTg4MzQsQS5zdWJzZXRub3RlcXVhbD04ODQyLEEuc3Vic2V0b3JlcXVhbD04ODM4LEEuc3VjY2VlZHM9ODgyNyxBLnN1Y2h0aGF0PTg3MTUsQS5zdWhpcmFnYW5hPTEyMzc3LEEuc3VrYXRha2FuYT0xMjQ3MyxBLnN1a2F0YWthbmFoYWxmd2lkdGg9NjU0MDUsQS5zdWt1bmFyYWJpYz0xNjE4LEEuc3VtbWF0aW9uPTg3MjEsQS5zdW49OTc4OCxBLnN1cGVyc2V0PTg4MzUsQS5zdXBlcnNldG5vdGVxdWFsPTg4NDMsQS5zdXBlcnNldG9yZXF1YWw9ODgzOSxBLnN2c3F1YXJlPTEzMjc2LEEuc3lvdXdhZXJhc3F1YXJlPTEzMTgwLEEudD0xMTYsQS50YWJlbmdhbGk9MjQ2OCxBLnRhY2tkb3duPTg4NjgsQS50YWNrbGVmdD04ODY3LEEudGFkZXZhPTIzNDAsQS50YWd1amFyYXRpPTI3MjQsQS50YWd1cm11a2hpPTI1OTYsQS50YWhhcmFiaWM9MTU5MSxBLnRhaGZpbmFsYXJhYmljPTY1MjE4LEEudGFoaW5pdGlhbGFyYWJpYz02NTIxOSxBLnRhaGlyYWdhbmE9MTIzODMsQS50YWhtZWRpYWxhcmFiaWM9NjUyMjAsQS50YWlzeW91ZXJhc3F1YXJlPTEzMTgxLEEudGFrYXRha2FuYT0xMjQ3OSxBLnRha2F0YWthbmFoYWxmd2lkdGg9NjU0MDgsQS50YXR3ZWVsYXJhYmljPTE2MDAsQS50YXU9OTY0LEEudGF2PTE1MTQsQS50YXZkYWdlcz02NDMzMCxBLnRhdmRhZ2VzaD02NDMzMCxBLnRhdmRhZ2VzaGhlYnJldz02NDMzMCxBLnRhdmhlYnJldz0xNTE0LEEudGJhcj0zNTksQS50Ym9wb21vZm89MTI1NTQsQS50Y2Fyb249MzU3LEEudGNjdXJsPTY4MCxBLnRjZWRpbGxhPTM1NSxBLnRjaGVoYXJhYmljPTE2NzAsQS50Y2hlaGZpbmFsYXJhYmljPTY0Mzc5LEEudGNoZWhpbml0aWFsYXJhYmljPTY0MzgwLEEudGNoZWhtZWRpYWxhcmFiaWM9NjQzODEsQS50Y2lyY2xlPTk0NDMsQS50Y2lyY3VtZmxleGJlbG93PTc3OTMsQS50Y29tbWFhY2NlbnQ9MzU1LEEudGRpZXJlc2lzPTc4MzEsQS50ZG90YWNjZW50PTc3ODcsQS50ZG90YmVsb3c9Nzc4OSxBLnRlY3lyaWxsaWM9MTA5MCxBLnRlZGVzY2VuZGVyY3lyaWxsaWM9MTE5NyxBLnRlaGFyYWJpYz0xNTc4LEEudGVoZmluYWxhcmFiaWM9NjUxNzQsQS50ZWhoYWhpbml0aWFsYXJhYmljPTY0Njc0LEEudGVoaGFoaXNvbGF0ZWRhcmFiaWM9NjQ1MjQsQS50ZWhpbml0aWFsYXJhYmljPTY1MTc1LEEudGVoaXJhZ2FuYT0xMjM5MCxBLnRlaGplZW1pbml0aWFsYXJhYmljPTY0NjczLEEudGVoamVlbWlzb2xhdGVkYXJhYmljPTY0NTIzLEEudGVobWFyYnV0YWFyYWJpYz0xNTc3LEEudGVobWFyYnV0YWZpbmFsYXJhYmljPTY1MTcyLEEudGVobWVkaWFsYXJhYmljPTY1MTc2LEEudGVobWVlbWluaXRpYWxhcmFiaWM9NjQ2NzYsQS50ZWhtZWVtaXNvbGF0ZWRhcmFiaWM9NjQ1MjYsQS50ZWhub29uZmluYWxhcmFiaWM9NjQ2MjcsQS50ZWthdGFrYW5hPTEyNDg2LEEudGVrYXRha2FuYWhhbGZ3aWR0aD02NTQxMSxBLnRlbGVwaG9uZT04NDgxLEEudGVsZXBob25lYmxhY2s9OTc0MixBLnRlbGlzaGFnZWRvbGFoZWJyZXc9MTQ0MCxBLnRlbGlzaGFxZXRhbmFoZWJyZXc9MTQ0OSxBLnRlbmNpcmNsZT05MzIxLEEudGVuaWRlb2dyYXBoaWNwYXJlbj0xMjg0MSxBLnRlbnBhcmVuPTkzNDEsQS50ZW5wZXJpb2Q9OTM2MSxBLnRlbnJvbWFuPTg1NjksQS50ZXNoPTY3OSxBLnRldD0xNDk2LEEudGV0ZGFnZXNoPTY0MzEyLEEudGV0ZGFnZXNoaGVicmV3PTY0MzEyLEEudGV0aGVicmV3PTE0OTYsQS50ZXRzZWN5cmlsbGljPTEyMDUsQS50ZXZpcmhlYnJldz0xNDM1LEEudGV2aXJsZWZ0aGVicmV3PTE0MzUsQS50aGFiZW5nYWxpPTI0NjksQS50aGFkZXZhPTIzNDEsQS50aGFndWphcmF0aT0yNzI1LEEudGhhZ3VybXVraGk9MjU5NyxBLnRoYWxhcmFiaWM9MTU4NCxBLnRoYWxmaW5hbGFyYWJpYz02NTE5NixBLnRoYW50aGFraGF0bG93bGVmdHRoYWk9NjM2NDAsQS50aGFudGhha2hhdGxvd3JpZ2h0dGhhaT02MzYzOSxBLnRoYW50aGFraGF0dGhhaT0zNjYwLEEudGhhbnRoYWtoYXR1cHBlcmxlZnR0aGFpPTYzNjM4LEEudGhlaGFyYWJpYz0xNTc5LEEudGhlaGZpbmFsYXJhYmljPTY1MTc4LEEudGhlaGluaXRpYWxhcmFiaWM9NjUxNzksQS50aGVobWVkaWFsYXJhYmljPTY1MTgwLEEudGhlcmVleGlzdHM9ODcwNyxBLnRoZXJlZm9yZT04NzU2LEEudGhldGE9OTUyLEEudGhldGExPTk3NyxBLnRoZXRhc3ltYm9sZ3JlZWs9OTc3LEEudGhpZXV0aGFjaXJjbGVrb3JlYW49MTI5MjEsQS50aGlldXRoYXBhcmVua29yZWFuPTEyODI1LEEudGhpZXV0aGNpcmNsZWtvcmVhbj0xMjkwNyxBLnRoaWV1dGhrb3JlYW49MTI2MjAsQS50aGlldXRocGFyZW5rb3JlYW49MTI4MTEsQS50aGlydGVlbmNpcmNsZT05MzI0LEEudGhpcnRlZW5wYXJlbj05MzQ0LEEudGhpcnRlZW5wZXJpb2Q9OTM2NCxBLnRob25hbmdtb250aG90aGFpPTM2MDEsQS50aG9vaz00MjksQS50aG9waHV0aGFvdGhhaT0zNjAyLEEudGhvcm49MjU0LEEudGhvdGhhaGFudGhhaT0zNjA3LEEudGhvdGhhbnRoYWk9MzYwMCxBLnRob3Rob25ndGhhaT0zNjA4LEEudGhvdGh1bmd0aGFpPTM2MDYsQS50aG91c2FuZGN5cmlsbGljPTExNTQsQS50aG91c2FuZHNzZXBhcmF0b3JhcmFiaWM9MTY0NCxBLnRob3VzYW5kc3NlcGFyYXRvcnBlcnNpYW49MTY0NCxBLnRocmVlPTUxLEEudGhyZWVhcmFiaWM9MTYzNSxBLnRocmVlYmVuZ2FsaT0yNTM3LEEudGhyZWVjaXJjbGU9OTMxNCxBLnRocmVlY2lyY2xlaW52ZXJzZXNhbnNzZXJpZj0xMDEyNCxBLnRocmVlZGV2YT0yNDA5LEEudGhyZWVlaWdodGhzPTg1NDAsQS50aHJlZWd1amFyYXRpPTI3OTMsQS50aHJlZWd1cm11a2hpPTI2NjUsQS50aHJlZWhhY2thcmFiaWM9MTYzNSxBLnRocmVlaGFuZ3pob3U9MTIzMjMsQS50aHJlZWlkZW9ncmFwaGljcGFyZW49MTI4MzQsQS50aHJlZWluZmVyaW9yPTgzMjMsQS50aHJlZW1vbm9zcGFjZT02NTI5OSxBLnRocmVlbnVtZXJhdG9yYmVuZ2FsaT0yNTUwLEEudGhyZWVvbGRzdHlsZT02MzI4MyxBLnRocmVlcGFyZW49OTMzNCxBLnRocmVlcGVyaW9kPTkzNTQsQS50aHJlZXBlcnNpYW49MTc3OSxBLnRocmVlcXVhcnRlcnM9MTkwLEEudGhyZWVxdWFydGVyc2VtZGFzaD02MzE5OCxBLnRocmVlcm9tYW49ODU2MixBLnRocmVlc3VwZXJpb3I9MTc5LEEudGhyZWV0aGFpPTM2NjcsQS50aHpzcXVhcmU9MTMyMDQsQS50aWhpcmFnYW5hPTEyMzg1LEEudGlrYXRha2FuYT0xMjQ4MSxBLnRpa2F0YWthbmFoYWxmd2lkdGg9NjU0MDksQS50aWtldXRhY2lyY2xla29yZWFuPTEyOTEyLEEudGlrZXV0YXBhcmVua29yZWFuPTEyODE2LEEudGlrZXV0Y2lyY2xla29yZWFuPTEyODk4LEEudGlrZXV0a29yZWFuPTEyNTk5LEEudGlrZXV0cGFyZW5rb3JlYW49MTI4MDIsQS50aWxkZT03MzIsQS50aWxkZWJlbG93Y21iPTgxNixBLnRpbGRlY21iPTc3MSxBLnRpbGRlY29tYj03NzEsQS50aWxkZWRvdWJsZWNtYj04NjQsQS50aWxkZW9wZXJhdG9yPTg3NjQsQS50aWxkZW92ZXJsYXljbWI9ODIwLEEudGlsZGV2ZXJ0aWNhbGNtYj04MzAsQS50aW1lc2NpcmNsZT04ODU1LEEudGlwZWhhaGVicmV3PTE0MzAsQS50aXBlaGFsZWZ0aGVicmV3PTE0MzAsQS50aXBwaWd1cm11a2hpPTI2NzIsQS50aXRsb2N5cmlsbGljY21iPTExNTUsQS50aXduYXJtZW5pYW49MTQwNyxBLnRsaW5lYmVsb3c9Nzc5MSxBLnRtb25vc3BhY2U9NjUzNjQsQS50b2FybWVuaWFuPTEzODUsQS50b2hpcmFnYW5hPTEyMzkyLEEudG9rYXRha2FuYT0xMjQ4OCxBLnRva2F0YWthbmFoYWxmd2lkdGg9NjU0MTIsQS50b25lYmFyZXh0cmFoaWdobW9kPTc0MSxBLnRvbmViYXJleHRyYWxvd21vZD03NDUsQS50b25lYmFyaGlnaG1vZD03NDIsQS50b25lYmFybG93bW9kPTc0NCxBLnRvbmViYXJtaWRtb2Q9NzQzLEEudG9uZWZpdmU9NDQ1LEEudG9uZXNpeD0zODksQS50b25ldHdvPTQyNCxBLnRvbm9zPTkwMCxBLnRvbnNxdWFyZT0xMzA5NSxBLnRvcGF0YWt0aGFpPTM1OTksQS50b3J0b2lzZXNoZWxsYnJhY2tldGxlZnQ9MTIzMDgsQS50b3J0b2lzZXNoZWxsYnJhY2tldGxlZnRzbWFsbD02NTExNyxBLnRvcnRvaXNlc2hlbGxicmFja2V0bGVmdHZlcnRpY2FsPTY1MDgxLEEudG9ydG9pc2VzaGVsbGJyYWNrZXRyaWdodD0xMjMwOSxBLnRvcnRvaXNlc2hlbGxicmFja2V0cmlnaHRzbWFsbD02NTExOCxBLnRvcnRvaXNlc2hlbGxicmFja2V0cmlnaHR2ZXJ0aWNhbD02NTA4MixBLnRvdGFvdGhhaT0zNjA1LEEudHBhbGF0YWxob29rPTQyNyxBLnRwYXJlbj05MzkxLEEudHJhZGVtYXJrPTg0ODIsQS50cmFkZW1hcmtzYW5zPTYzNzIyLEEudHJhZGVtYXJrc2VyaWY9NjMxOTUsQS50cmV0cm9mbGV4aG9vaz02NDgsQS50cmlhZ2RuPTk2NjAsQS50cmlhZ2xmPTk2NjgsQS50cmlhZ3J0PTk2NTgsQS50cmlhZ3VwPTk2NTAsQS50cz02NzgsQS50c2FkaT0xNTEwLEEudHNhZGlkYWdlc2g9NjQzMjYsQS50c2FkaWRhZ2VzaGhlYnJldz02NDMyNixBLnRzYWRpaGVicmV3PTE1MTAsQS50c2VjeXJpbGxpYz0xMDk0LEEudHNlcmU9MTQ2MSxBLnRzZXJlMTI9MTQ2MSxBLnRzZXJlMWU9MTQ2MSxBLnRzZXJlMmI9MTQ2MSxBLnRzZXJlaGVicmV3PTE0NjEsQS50c2VyZW5hcnJvd2hlYnJldz0xNDYxLEEudHNlcmVxdWFydGVyaGVicmV3PTE0NjEsQS50c2VyZXdpZGVoZWJyZXc9MTQ2MSxBLnRzaGVjeXJpbGxpYz0xMTE1LEEudHN1cGVyaW9yPTYzMjE5LEEudHRhYmVuZ2FsaT0yNDYzLEEudHRhZGV2YT0yMzM1LEEudHRhZ3VqYXJhdGk9MjcxOSxBLnR0YWd1cm11a2hpPTI1OTEsQS50dGVoYXJhYmljPTE2NTcsQS50dGVoZmluYWxhcmFiaWM9NjQzNTksQS50dGVoaW5pdGlhbGFyYWJpYz02NDM2MCxBLnR0ZWhtZWRpYWxhcmFiaWM9NjQzNjEsQS50dGhhYmVuZ2FsaT0yNDY0LEEudHRoYWRldmE9MjMzNixBLnR0aGFndWphcmF0aT0yNzIwLEEudHRoYWd1cm11a2hpPTI1OTIsQS50dHVybmVkPTY0NyxBLnR1aGlyYWdhbmE9MTIzODgsQS50dWthdGFrYW5hPTEyNDg0LEEudHVrYXRha2FuYWhhbGZ3aWR0aD02NTQxMCxBLnR1c21hbGxoaXJhZ2FuYT0xMjM4NyxBLnR1c21hbGxrYXRha2FuYT0xMjQ4MyxBLnR1c21hbGxrYXRha2FuYWhhbGZ3aWR0aD02NTM5MSxBLnR3ZWx2ZWNpcmNsZT05MzIzLEEudHdlbHZlcGFyZW49OTM0MyxBLnR3ZWx2ZXBlcmlvZD05MzYzLEEudHdlbHZlcm9tYW49ODU3MSxBLnR3ZW50eWNpcmNsZT05MzMxLEEudHdlbnR5aGFuZ3pob3U9MjEzMTYsQS50d2VudHlwYXJlbj05MzUxLEEudHdlbnR5cGVyaW9kPTkzNzEsQS50d289NTAsQS50d29hcmFiaWM9MTYzNCxBLnR3b2JlbmdhbGk9MjUzNixBLnR3b2NpcmNsZT05MzEzLEEudHdvY2lyY2xlaW52ZXJzZXNhbnNzZXJpZj0xMDEyMyxBLnR3b2RldmE9MjQwOCxBLnR3b2RvdGVubGVhZGVyPTgyMjksQS50d29kb3RsZWFkZXI9ODIyOSxBLnR3b2RvdGxlYWRlcnZlcnRpY2FsPTY1MDcyLEEudHdvZ3VqYXJhdGk9Mjc5MixBLnR3b2d1cm11a2hpPTI2NjQsQS50d29oYWNrYXJhYmljPTE2MzQsQS50d29oYW5nemhvdT0xMjMyMixBLnR3b2lkZW9ncmFwaGljcGFyZW49MTI4MzMsQS50d29pbmZlcmlvcj04MzIyLEEudHdvbW9ub3NwYWNlPTY1Mjk4LEEudHdvbnVtZXJhdG9yYmVuZ2FsaT0yNTQ5LEEudHdvb2xkc3R5bGU9NjMyODIsQS50d29wYXJlbj05MzMzLEEudHdvcGVyaW9kPTkzNTMsQS50d29wZXJzaWFuPTE3NzgsQS50d29yb21hbj04NTYxLEEudHdvc3Ryb2tlPTQ0MyxBLnR3b3N1cGVyaW9yPTE3OCxBLnR3b3RoYWk9MzY2NixBLnR3b3RoaXJkcz04NTMyLEEudT0xMTcsQS51YWN1dGU9MjUwLEEudWJhcj02NDksQS51YmVuZ2FsaT0yNDQxLEEudWJvcG9tb2ZvPTEyNTg0LEEudWJyZXZlPTM2NSxBLnVjYXJvbj00NjgsQS51Y2lyY2xlPTk0NDQsQS51Y2lyY3VtZmxleD0yNTEsQS51Y2lyY3VtZmxleGJlbG93PTc3OTksQS51Y3lyaWxsaWM9MTA5MSxBLnVkYXR0YWRldmE9MjM4NSxBLnVkYmxhY3V0ZT0zNjksQS51ZGJsZ3JhdmU9NTMzLEEudWRldmE9MjMxMyxBLnVkaWVyZXNpcz0yNTIsQS51ZGllcmVzaXNhY3V0ZT00NzIsQS51ZGllcmVzaXNiZWxvdz03Nzk1LEEudWRpZXJlc2lzY2Fyb249NDc0LEEudWRpZXJlc2lzY3lyaWxsaWM9MTI2NSxBLnVkaWVyZXNpc2dyYXZlPTQ3NixBLnVkaWVyZXNpc21hY3Jvbj00NzAsQS51ZG90YmVsb3c9NzkwOSxBLnVncmF2ZT0yNDksQS51Z3VqYXJhdGk9MjY5NyxBLnVndXJtdWtoaT0yNTY5LEEudWhpcmFnYW5hPTEyMzU4LEEudWhvb2thYm92ZT03OTExLEEudWhvcm49NDMyLEEudWhvcm5hY3V0ZT03OTEzLEEudWhvcm5kb3RiZWxvdz03OTIxLEEudWhvcm5ncmF2ZT03OTE1LEEudWhvcm5ob29rYWJvdmU9NzkxNyxBLnVob3JudGlsZGU9NzkxOSxBLnVodW5nYXJ1bWxhdXQ9MzY5LEEudWh1bmdhcnVtbGF1dGN5cmlsbGljPTEyNjcsQS51aW52ZXJ0ZWRicmV2ZT01MzUsQS51a2F0YWthbmE9MTI0NTQsQS51a2F0YWthbmFoYWxmd2lkdGg9NjUzOTUsQS51a2N5cmlsbGljPTExNDUsQS51a29yZWFuPTEyNjM2LEEudW1hY3Jvbj0zNjMsQS51bWFjcm9uY3lyaWxsaWM9MTI2MyxBLnVtYWNyb25kaWVyZXNpcz03ODAzLEEudW1hdHJhZ3VybXVraGk9MjYyNSxBLnVtb25vc3BhY2U9NjUzNjUsQS51bmRlcnNjb3JlPTk1LEEudW5kZXJzY29yZWRibD04MjE1LEEudW5kZXJzY29yZW1vbm9zcGFjZT02NTM0MyxBLnVuZGVyc2NvcmV2ZXJ0aWNhbD02NTA3NSxBLnVuZGVyc2NvcmV3YXZ5PTY1MTAzLEEudW5pb249ODc0NixBLnVuaXZlcnNhbD04NzA0LEEudW9nb25laz0zNzEsQS51cGFyZW49OTM5MixBLnVwYmxvY2s9OTYwMCxBLnVwcGVyZG90aGVicmV3PTE0NzYsQS51cHNpbG9uPTk2NSxBLnVwc2lsb25kaWVyZXNpcz05NzEsQS51cHNpbG9uZGllcmVzaXN0b25vcz05NDQsQS51cHNpbG9ubGF0aW49NjUwLEEudXBzaWxvbnRvbm9zPTk3MyxBLnVwdGFja2JlbG93Y21iPTc5NyxBLnVwdGFja21vZD03MjQsQS51cmFndXJtdWtoaT0yNjc1LEEudXJpbmc9MzY3LEEudXNob3J0Y3lyaWxsaWM9MTExOCxBLnVzbWFsbGhpcmFnYW5hPTEyMzU3LEEudXNtYWxsa2F0YWthbmE9MTI0NTMsQS51c21hbGxrYXRha2FuYWhhbGZ3aWR0aD02NTM4NSxBLnVzdHJhaWdodGN5cmlsbGljPTExOTksQS51c3RyYWlnaHRzdHJva2VjeXJpbGxpYz0xMjAxLEEudXRpbGRlPTM2MSxBLnV0aWxkZWFjdXRlPTc4MDEsQS51dGlsZGViZWxvdz03Nzk3LEEudXViZW5nYWxpPTI0NDIsQS51dWRldmE9MjMxNCxBLnV1Z3VqYXJhdGk9MjY5OCxBLnV1Z3VybXVraGk9MjU3MCxBLnV1bWF0cmFndXJtdWtoaT0yNjI2LEEudXV2b3dlbHNpZ25iZW5nYWxpPTI0OTgsQS51dXZvd2Vsc2lnbmRldmE9MjM3MCxBLnV1dm93ZWxzaWduZ3VqYXJhdGk9Mjc1NCxBLnV2b3dlbHNpZ25iZW5nYWxpPTI0OTcsQS51dm93ZWxzaWduZGV2YT0yMzY5LEEudXZvd2Vsc2lnbmd1amFyYXRpPTI3NTMsQS52PTExOCxBLnZhZGV2YT0yMzU3LEEudmFndWphcmF0aT0yNzQxLEEudmFndXJtdWtoaT0yNjEzLEEudmFrYXRha2FuYT0xMjUzNSxBLnZhdj0xNDkzLEEudmF2ZGFnZXNoPTY0MzA5LEEudmF2ZGFnZXNoNjU9NjQzMDksQS52YXZkYWdlc2hoZWJyZXc9NjQzMDksQS52YXZoZWJyZXc9MTQ5MyxBLnZhdmhvbGFtPTY0MzMxLEEudmF2aG9sYW1oZWJyZXc9NjQzMzEsQS52YXZ2YXZoZWJyZXc9MTUyMCxBLnZhdnlvZGhlYnJldz0xNTIxLEEudmNpcmNsZT05NDQ1LEEudmRvdGJlbG93PTc4MDcsQS52ZWN5cmlsbGljPTEwNzQsQS52ZWhhcmFiaWM9MTcwMCxBLnZlaGZpbmFsYXJhYmljPTY0MzYzLEEudmVoaW5pdGlhbGFyYWJpYz02NDM2NCxBLnZlaG1lZGlhbGFyYWJpYz02NDM2NSxBLnZla2F0YWthbmE9MTI1MzcsQS52ZW51cz05NzkyLEEudmVydGljYWxiYXI9MTI0LEEudmVydGljYWxsaW5lYWJvdmVjbWI9NzgxLEEudmVydGljYWxsaW5lYmVsb3djbWI9ODA5LEEudmVydGljYWxsaW5lbG93bW9kPTcxNixBLnZlcnRpY2FsbGluZW1vZD03MTIsQS52ZXdhcm1lbmlhbj0xNDA2LEEudmhvb2s9NjUxLEEudmlrYXRha2FuYT0xMjUzNixBLnZpcmFtYWJlbmdhbGk9MjUwOSxBLnZpcmFtYWRldmE9MjM4MSxBLnZpcmFtYWd1amFyYXRpPTI3NjUsQS52aXNhcmdhYmVuZ2FsaT0yNDM1LEEudmlzYXJnYWRldmE9MjMwNyxBLnZpc2FyZ2FndWphcmF0aT0yNjkxLEEudm1vbm9zcGFjZT02NTM2NixBLnZvYXJtZW5pYW49MTQwMCxBLnZvaWNlZGl0ZXJhdGlvbmhpcmFnYW5hPTEyNDQ2LEEudm9pY2VkaXRlcmF0aW9ua2F0YWthbmE9MTI1NDIsQS52b2ljZWRtYXJra2FuYT0xMjQ0MyxBLnZvaWNlZG1hcmtrYW5haGFsZndpZHRoPTY1NDM4LEEudm9rYXRha2FuYT0xMjUzOCxBLnZwYXJlbj05MzkzLEEudnRpbGRlPTc4MDUsQS52dHVybmVkPTY1MixBLnZ1aGlyYWdhbmE9MTI0MzYsQS52dWthdGFrYW5hPTEyNTMyLEEudz0xMTksQS53YWN1dGU9NzgxMSxBLndhZWtvcmVhbj0xMjYzMyxBLndhaGlyYWdhbmE9MTI0MzEsQS53YWthdGFrYW5hPTEyNTI3LEEud2FrYXRha2FuYWhhbGZ3aWR0aD02NTQzNixBLndha29yZWFuPTEyNjMyLEEud2FzbWFsbGhpcmFnYW5hPTEyNDMwLEEud2FzbWFsbGthdGFrYW5hPTEyNTI2LEEud2F0dG9zcXVhcmU9MTMxNDMsQS53YXZlZGFzaD0xMjMxNixBLndhdnl1bmRlcnNjb3JldmVydGljYWw9NjUwNzYsQS53YXdhcmFiaWM9MTYwOCxBLndhd2ZpbmFsYXJhYmljPTY1MjYyLEEud2F3aGFtemFhYm92ZWFyYWJpYz0xNTcyLEEud2F3aGFtemFhYm92ZWZpbmFsYXJhYmljPTY1MTU4LEEud2JzcXVhcmU9MTMyNzcsQS53Y2lyY2xlPTk0NDYsQS53Y2lyY3VtZmxleD0zNzMsQS53ZGllcmVzaXM9NzgxMyxBLndkb3RhY2NlbnQ9NzgxNSxBLndkb3RiZWxvdz03ODE3LEEud2VoaXJhZ2FuYT0xMjQzMyxBLndlaWVyc3RyYXNzPTg0NzIsQS53ZWthdGFrYW5hPTEyNTI5LEEud2Vrb3JlYW49MTI2MzgsQS53ZW9rb3JlYW49MTI2MzcsQS53Z3JhdmU9NzgwOSxBLndoaXRlYnVsbGV0PTk3MDIsQS53aGl0ZWNpcmNsZT05Njc1LEEud2hpdGVjaXJjbGVpbnZlcnNlPTk2ODksQS53aGl0ZWNvcm5lcmJyYWNrZXRsZWZ0PTEyMzAyLEEud2hpdGVjb3JuZXJicmFja2V0bGVmdHZlcnRpY2FsPTY1MDkxLEEud2hpdGVjb3JuZXJicmFja2V0cmlnaHQ9MTIzMDMsQS53aGl0ZWNvcm5lcmJyYWNrZXRyaWdodHZlcnRpY2FsPTY1MDkyLEEud2hpdGVkaWFtb25kPTk2NzEsQS53aGl0ZWRpYW1vbmRjb250YWluaW5nYmxhY2tzbWFsbGRpYW1vbmQ9OTY3MixBLndoaXRlZG93bnBvaW50aW5nc21hbGx0cmlhbmdsZT05NjYzO0Eud2hpdGVkb3ducG9pbnRpbmd0cmlhbmdsZT05NjYxLEEud2hpdGVsZWZ0cG9pbnRpbmdzbWFsbHRyaWFuZ2xlPTk2NjcsQS53aGl0ZWxlZnRwb2ludGluZ3RyaWFuZ2xlPTk2NjUsQS53aGl0ZWxlbnRpY3VsYXJicmFja2V0bGVmdD0xMjMxMCxBLndoaXRlbGVudGljdWxhcmJyYWNrZXRyaWdodD0xMjMxMSxBLndoaXRlcmlnaHRwb2ludGluZ3NtYWxsdHJpYW5nbGU9OTY1NyxBLndoaXRlcmlnaHRwb2ludGluZ3RyaWFuZ2xlPTk2NTUsQS53aGl0ZXNtYWxsc3F1YXJlPTk2NDMsQS53aGl0ZXNtaWxpbmdmYWNlPTk3ODYsQS53aGl0ZXNxdWFyZT05NjMzLEEud2hpdGVzdGFyPTk3MzQsQS53aGl0ZXRlbGVwaG9uZT05NzQzLEEud2hpdGV0b3J0b2lzZXNoZWxsYnJhY2tldGxlZnQ9MTIzMTIsQS53aGl0ZXRvcnRvaXNlc2hlbGxicmFja2V0cmlnaHQ9MTIzMTMsQS53aGl0ZXVwcG9pbnRpbmdzbWFsbHRyaWFuZ2xlPTk2NTMsQS53aGl0ZXVwcG9pbnRpbmd0cmlhbmdsZT05NjUxLEEud2loaXJhZ2FuYT0xMjQzMixBLndpa2F0YWthbmE9MTI1MjgsQS53aWtvcmVhbj0xMjYzOSxBLndtb25vc3BhY2U9NjUzNjcsQS53b2hpcmFnYW5hPTEyNDM0LEEud29rYXRha2FuYT0xMjUzMCxBLndva2F0YWthbmFoYWxmd2lkdGg9NjUzODIsQS53b249ODM2MSxBLndvbm1vbm9zcGFjZT02NTUxMCxBLndvd2FlbnRoYWk9MzYyMyxBLndwYXJlbj05Mzk0LEEud3Jpbmc9NzgzMixBLndzdXBlcmlvcj02OTUsQS53dHVybmVkPTY1MyxBLnd5bm49NDQ3LEEueD0xMjAsQS54YWJvdmVjbWI9ODI5LEEueGJvcG9tb2ZvPTEyNTYyLEEueGNpcmNsZT05NDQ3LEEueGRpZXJlc2lzPTc4MjEsQS54ZG90YWNjZW50PTc4MTksQS54ZWhhcm1lbmlhbj0xMzg5LEEueGk9OTU4LEEueG1vbm9zcGFjZT02NTM2OCxBLnhwYXJlbj05Mzk1LEEueHN1cGVyaW9yPTczOSxBLnk9MTIxLEEueWFhZG9zcXVhcmU9MTMxMzQsQS55YWJlbmdhbGk9MjQ3OSxBLnlhY3V0ZT0yNTMsQS55YWRldmE9MjM1MSxBLnlhZWtvcmVhbj0xMjYyNixBLnlhZ3VqYXJhdGk9MjczNSxBLnlhZ3VybXVraGk9MjYwNyxBLnlhaGlyYWdhbmE9MTI0MjAsQS55YWthdGFrYW5hPTEyNTE2LEEueWFrYXRha2FuYWhhbGZ3aWR0aD02NTQyOCxBLnlha29yZWFuPTEyNjI1LEEueWFtYWtrYW50aGFpPTM2NjIsQS55YXNtYWxsaGlyYWdhbmE9MTI0MTksQS55YXNtYWxsa2F0YWthbmE9MTI1MTUsQS55YXNtYWxsa2F0YWthbmFoYWxmd2lkdGg9NjUzODgsQS55YXRjeXJpbGxpYz0xMTIzLEEueWNpcmNsZT05NDQ4LEEueWNpcmN1bWZsZXg9Mzc1LEEueWRpZXJlc2lzPTI1NSxBLnlkb3RhY2NlbnQ9NzgyMyxBLnlkb3RiZWxvdz03OTI1LEEueWVoYXJhYmljPTE2MTAsQS55ZWhiYXJyZWVhcmFiaWM9MTc0NixBLnllaGJhcnJlZWZpbmFsYXJhYmljPTY0NDMxLEEueWVoZmluYWxhcmFiaWM9NjUyNjYsQS55ZWhoYW16YWFib3ZlYXJhYmljPTE1NzQsQS55ZWhoYW16YWFib3ZlZmluYWxhcmFiaWM9NjUxNjIsQS55ZWhoYW16YWFib3ZlaW5pdGlhbGFyYWJpYz02NTE2MyxBLnllaGhhbXphYWJvdmVtZWRpYWxhcmFiaWM9NjUxNjQsQS55ZWhpbml0aWFsYXJhYmljPTY1MjY3LEEueWVobWVkaWFsYXJhYmljPTY1MjY4LEEueWVobWVlbWluaXRpYWxhcmFiaWM9NjQ3MzMsQS55ZWhtZWVtaXNvbGF0ZWRhcmFiaWM9NjQ2MDAsQS55ZWhub29uZmluYWxhcmFiaWM9NjQ2NjAsQS55ZWh0aHJlZWRvdHNiZWxvd2FyYWJpYz0xNzQ1LEEueWVrb3JlYW49MTI2MzAsQS55ZW49MTY1LEEueWVubW9ub3NwYWNlPTY1NTA5LEEueWVva29yZWFuPTEyNjI5LEEueWVvcmluaGlldWhrb3JlYW49MTI2NzgsQS55ZXJhaGJlbnlvbW9oZWJyZXc9MTQ1MCxBLnllcmFoYmVueW9tb2xlZnRoZWJyZXc9MTQ1MCxBLnllcmljeXJpbGxpYz0xMDk5LEEueWVydWRpZXJlc2lzY3lyaWxsaWM9MTI3MyxBLnllc2lldW5na29yZWFuPTEyNjczLEEueWVzaWV1bmdwYW5zaW9za29yZWFuPTEyNjc1LEEueWVzaWV1bmdzaW9za29yZWFuPTEyNjc0LEEueWV0aXZoZWJyZXc9MTQzNCxBLnlncmF2ZT03OTIzLEEueWhvb2s9NDM2LEEueWhvb2thYm92ZT03OTI3LEEueWlhcm1lbmlhbj0xMzk3LEEueWljeXJpbGxpYz0xMTExLEEueWlrb3JlYW49MTI2NDIsQS55aW55YW5nPTk3NzUsQS55aXduYXJtZW5pYW49MTQxMCxBLnltb25vc3BhY2U9NjUzNjksQS55b2Q9MTQ5NyxBLnlvZGRhZ2VzaD02NDMxMyxBLnlvZGRhZ2VzaGhlYnJldz02NDMxMyxBLnlvZGhlYnJldz0xNDk3LEEueW9keW9kaGVicmV3PTE1MjIsQS55b2R5b2RwYXRhaGhlYnJldz02NDI4NyxBLnlvaGlyYWdhbmE9MTI0MjQsQS55b2lrb3JlYW49MTI2ODEsQS55b2thdGFrYW5hPTEyNTIwLEEueW9rYXRha2FuYWhhbGZ3aWR0aD02NTQzMCxBLnlva29yZWFuPTEyNjM1LEEueW9zbWFsbGhpcmFnYW5hPTEyNDIzLEEueW9zbWFsbGthdGFrYW5hPTEyNTE5LEEueW9zbWFsbGthdGFrYW5haGFsZndpZHRoPTY1MzkwLEEueW90Z3JlZWs9MTAxMSxBLnlveWFla29yZWFuPTEyNjgwLEEueW95YWtvcmVhbj0xMjY3OSxBLnlveWFrdGhhaT0zNjE4LEEueW95aW5ndGhhaT0zNTk3LEEueXBhcmVuPTkzOTYsQS55cG9nZWdyYW1tZW5pPTg5MCxBLnlwb2dlZ3JhbW1lbmlncmVla2NtYj04MzcsQS55cj00MjIsQS55cmluZz03ODMzLEEueXN1cGVyaW9yPTY5NixBLnl0aWxkZT03OTI5LEEueXR1cm5lZD02NTQsQS55dWhpcmFnYW5hPTEyNDIyLEEueXVpa29yZWFuPTEyNjg0LEEueXVrYXRha2FuYT0xMjUxOCxBLnl1a2F0YWthbmFoYWxmd2lkdGg9NjU0MjksQS55dWtvcmVhbj0xMjY0MCxBLnl1c2JpZ2N5cmlsbGljPTExMzEsQS55dXNiaWdpb3RpZmllZGN5cmlsbGljPTExMzMsQS55dXNsaXR0bGVjeXJpbGxpYz0xMTI3LEEueXVzbGl0dGxlaW90aWZpZWRjeXJpbGxpYz0xMTI5LEEueXVzbWFsbGhpcmFnYW5hPTEyNDIxLEEueXVzbWFsbGthdGFrYW5hPTEyNTE3LEEueXVzbWFsbGthdGFrYW5haGFsZndpZHRoPTY1Mzg5LEEueXV5ZWtvcmVhbj0xMjY4MyxBLnl1eWVva29yZWFuPTEyNjgyLEEueXlhYmVuZ2FsaT0yNTI3LEEueXlhZGV2YT0yMzk5LEEuej0xMjIsQS56YWFybWVuaWFuPTEzODIsQS56YWN1dGU9Mzc4LEEuemFkZXZhPTIzOTUsQS56YWd1cm11a2hpPTI2NTEsQS56YWhhcmFiaWM9MTU5MixBLnphaGZpbmFsYXJhYmljPTY1MjIyLEEuemFoaW5pdGlhbGFyYWJpYz02NTIyMyxBLnphaGlyYWdhbmE9MTIzNzQsQS56YWhtZWRpYWxhcmFiaWM9NjUyMjQsQS56YWluYXJhYmljPTE1ODYsQS56YWluZmluYWxhcmFiaWM9NjUyMDAsQS56YWthdGFrYW5hPTEyNDcwLEEuemFxZWZnYWRvbGhlYnJldz0xNDI5LEEuemFxZWZxYXRhbmhlYnJldz0xNDI4LEEuemFycWFoZWJyZXc9MTQzMixBLnpheWluPTE0OTQsQS56YXlpbmRhZ2VzaD02NDMxMCxBLnpheWluZGFnZXNoaGVicmV3PTY0MzEwLEEuemF5aW5oZWJyZXc9MTQ5NCxBLnpib3BvbW9mbz0xMjU2NyxBLnpjYXJvbj0zODIsQS56Y2lyY2xlPTk0NDksQS56Y2lyY3VtZmxleD03ODI1LEEuemN1cmw9NjU3LEEuemRvdD0zODAsQS56ZG90YWNjZW50PTM4MCxBLnpkb3RiZWxvdz03ODI3LEEuemVjeXJpbGxpYz0xMDc5LEEuemVkZXNjZW5kZXJjeXJpbGxpYz0xMTc3LEEuemVkaWVyZXNpc2N5cmlsbGljPTEyNDcsQS56ZWhpcmFnYW5hPTEyMzgwLEEuemVrYXRha2FuYT0xMjQ3NixBLnplcm89NDgsQS56ZXJvYXJhYmljPTE2MzIsQS56ZXJvYmVuZ2FsaT0yNTM0LEEuemVyb2RldmE9MjQwNixBLnplcm9ndWphcmF0aT0yNzkwLEEuemVyb2d1cm11a2hpPTI2NjIsQS56ZXJvaGFja2FyYWJpYz0xNjMyLEEuemVyb2luZmVyaW9yPTgzMjAsQS56ZXJvbW9ub3NwYWNlPTY1Mjk2LEEuemVyb29sZHN0eWxlPTYzMjgwLEEuemVyb3BlcnNpYW49MTc3NixBLnplcm9zdXBlcmlvcj04MzA0LEEuemVyb3RoYWk9MzY2NCxBLnplcm93aWR0aGpvaW5lcj02NTI3OSxBLnplcm93aWR0aG5vbmpvaW5lcj04MjA0LEEuemVyb3dpZHRoc3BhY2U9ODIwMyxBLnpldGE9OTUwLEEuemhib3BvbW9mbz0xMjU2MyxBLnpoZWFybWVuaWFuPTEzODYsQS56aGVicmV2ZWN5cmlsbGljPTEyMTgsQS56aGVjeXJpbGxpYz0xMDc4LEEuemhlZGVzY2VuZGVyY3lyaWxsaWM9MTE3NSxBLnpoZWRpZXJlc2lzY3lyaWxsaWM9MTI0NSxBLnppaGlyYWdhbmE9MTIzNzYsQS56aWthdGFrYW5hPTEyNDcyLEEuemlub3JoZWJyZXc9MTQ1NCxBLnpsaW5lYmVsb3c9NzgyOSxBLnptb25vc3BhY2U9NjUzNzAsQS56b2hpcmFnYW5hPTEyMzgyLEEuem9rYXRha2FuYT0xMjQ3OCxBLnpwYXJlbj05Mzk3LEEuenJldHJvZmxleGhvb2s9NjU2LEEuenN0cm9rZT00MzgsQS56dWhpcmFnYW5hPTEyMzc4LEEuenVrYXRha2FuYT0xMjQ3NCxBWyIubm90ZGVmIl09MCxBLmFuZ2JyYWNrZXRsZWZ0YmlnPTkwMDEsQS5hbmdicmFja2V0bGVmdEJpZz05MDAxLEEuYW5nYnJhY2tldGxlZnRiaWdnPTkwMDEsQS5hbmdicmFja2V0bGVmdEJpZ2c9OTAwMSxBLmFuZ2JyYWNrZXRyaWdodEJpZz05MDAyLEEuYW5nYnJhY2tldHJpZ2h0YmlnPTkwMDIsQS5hbmdicmFja2V0cmlnaHRCaWdnPTkwMDIsQS5hbmdicmFja2V0cmlnaHRiaWdnPTkwMDIsQS5hcnJvd2hvb2tsZWZ0PTg2MTgsQS5hcnJvd2hvb2tyaWdodD04NjE3LEEuYXJyb3dsZWZ0dG9waGFsZj04NjM2LEEuYXJyb3dsZWZ0Ym90aGFsZj04NjM3LEEuYXJyb3dub3J0aGVhc3Q9ODU5OSxBLmFycm93bm9ydGh3ZXN0PTg1OTgsQS5hcnJvd3JpZ2h0dG9waGFsZj04NjQwLEEuYXJyb3dyaWdodGJvdGhhbGY9ODY0MSxBLmFycm93c291dGhlYXN0PTg2MDAsQS5hcnJvd3NvdXRod2VzdD04NjAxLEEuYmFja3NsYXNoYmlnPTg3MjYsQS5iYWNrc2xhc2hCaWc9ODcyNixBLmJhY2tzbGFzaEJpZ2c9ODcyNixBLmJhY2tzbGFzaGJpZ2c9ODcyNixBLmJhcmRibD04MjE0LEEuYnJhY2VodGlwZG93bmxlZnQ9NjUwNzksQS5icmFjZWh0aXBkb3ducmlnaHQ9NjUwNzksQS5icmFjZWh0aXB1cGxlZnQ9NjUwODAsQS5icmFjZWh0aXB1cHJpZ2h0PTY1MDgwLEEuYnJhY2VsZWZ0QmlnPTEyMyxBLmJyYWNlbGVmdGJpZz0xMjMsQS5icmFjZWxlZnRiaWdnPTEyMyxBLmJyYWNlbGVmdEJpZ2c9MTIzLEEuYnJhY2VyaWdodEJpZz0xMjUsQS5icmFjZXJpZ2h0YmlnPTEyNSxBLmJyYWNlcmlnaHRiaWdnPTEyNSxBLmJyYWNlcmlnaHRCaWdnPTEyNSxBLmJyYWNrZXRsZWZ0YmlnPTkxLEEuYnJhY2tldGxlZnRCaWc9OTEsQS5icmFja2V0bGVmdGJpZ2c9OTEsQS5icmFja2V0bGVmdEJpZ2c9OTEsQS5icmFja2V0cmlnaHRCaWc9OTMsQS5icmFja2V0cmlnaHRiaWc9OTMsQS5icmFja2V0cmlnaHRiaWdnPTkzLEEuYnJhY2tldHJpZ2h0QmlnZz05MyxBLmNlaWxpbmdsZWZ0YmlnPTg5NjgsQS5jZWlsaW5nbGVmdEJpZz04OTY4LEEuY2VpbGluZ2xlZnRCaWdnPTg5NjgsQS5jZWlsaW5nbGVmdGJpZ2c9ODk2OCxBLmNlaWxpbmdyaWdodGJpZz04OTY5LEEuY2VpbGluZ3JpZ2h0QmlnPTg5NjksQS5jZWlsaW5ncmlnaHRiaWdnPTg5NjksQS5jZWlsaW5ncmlnaHRCaWdnPTg5NjksQS5jaXJjbGVkb3RkaXNwbGF5PTg4NTcsQS5jaXJjbGVkb3R0ZXh0PTg4NTcsQS5jaXJjbGVtdWx0aXBseWRpc3BsYXk9ODg1NSxBLmNpcmNsZW11bHRpcGx5dGV4dD04ODU1LEEuY2lyY2xlcGx1c2Rpc3BsYXk9ODg1MyxBLmNpcmNsZXBsdXN0ZXh0PTg4NTMsQS5jb250aW50ZWdyYWxkaXNwbGF5PTg3NTAsQS5jb250aW50ZWdyYWx0ZXh0PTg3NTAsQS5jb3Byb2R1Y3RkaXNwbGF5PTg3MjAsQS5jb3Byb2R1Y3R0ZXh0PTg3MjAsQS5mbG9vcmxlZnRCaWc9ODk3MCxBLmZsb29ybGVmdGJpZz04OTcwLEEuZmxvb3JsZWZ0YmlnZz04OTcwLEEuZmxvb3JsZWZ0QmlnZz04OTcwLEEuZmxvb3JyaWdodGJpZz04OTcxLEEuZmxvb3JyaWdodEJpZz04OTcxLEEuZmxvb3JyaWdodEJpZ2c9ODk3MSxBLmZsb29ycmlnaHRiaWdnPTg5NzEsQS5oYXR3aWRlPTc3MCxBLmhhdHdpZGVyPTc3MCxBLmhhdHdpZGVzdD03NzAsQS5pbnRlcmNhbD03NDg4LEEuaW50ZWdyYWxkaXNwbGF5PTg3NDcsQS5pbnRlZ3JhbHRleHQ9ODc0NyxBLmludGVyc2VjdGlvbmRpc3BsYXk9ODg5OCxBLmludGVyc2VjdGlvbnRleHQ9ODg5OCxBLmxvZ2ljYWxhbmRkaXNwbGF5PTg3NDMsQS5sb2dpY2FsYW5kdGV4dD04NzQzLEEubG9naWNhbG9yZGlzcGxheT04NzQ0LEEubG9naWNhbG9ydGV4dD04NzQ0LEEucGFyZW5sZWZ0QmlnPTQwLEEucGFyZW5sZWZ0YmlnPTQwLEEucGFyZW5sZWZ0QmlnZz00MCxBLnBhcmVubGVmdGJpZ2c9NDAsQS5wYXJlbnJpZ2h0QmlnPTQxLEEucGFyZW5yaWdodGJpZz00MSxBLnBhcmVucmlnaHRCaWdnPTQxLEEucGFyZW5yaWdodGJpZ2c9NDEsQS5wcmltZT04MjQyLEEucHJvZHVjdGRpc3BsYXk9ODcxOSxBLnByb2R1Y3R0ZXh0PTg3MTksQS5yYWRpY2FsYmlnPTg3MzAsQS5yYWRpY2FsQmlnPTg3MzAsQS5yYWRpY2FsQmlnZz04NzMwLEEucmFkaWNhbGJpZ2c9ODczMCxBLnJhZGljYWxidD04NzMwLEEucmFkaWNhbHRwPTg3MzAsQS5yYWRpY2FsdmVydGV4PTg3MzAsQS5zbGFzaGJpZz00NyxBLnNsYXNoQmlnPTQ3LEEuc2xhc2hCaWdnPTQ3LEEuc2xhc2hiaWdnPTQ3LEEuc3VtbWF0aW9uZGlzcGxheT04NzIxLEEuc3VtbWF0aW9udGV4dD04NzIxLEEudGlsZGV3aWRlPTczMixBLnRpbGRld2lkZXI9NzMyLEEudGlsZGV3aWRlc3Q9NzMyLEEudW5pb25kaXNwbGF5PTg4OTksQS51bmlvbm11bHRpZGlzcGxheT04ODQ2LEEudW5pb25tdWx0aXRleHQ9ODg0NixBLnVuaW9uc3FkaXNwbGF5PTg4NTIsQS51bmlvbnNxdGV4dD04ODUyLEEudW5pb250ZXh0PTg4OTksQS52ZXh0ZW5kZG91YmxlPTg3NDEsQS52ZXh0ZW5kc2luZ2xlPTg3Mzl9KSksZ2E9YkEoKGZ1bmN0aW9uKEEpe0Euc3BhY2U9MzIsQS5hMT05OTg1LEEuYTI9OTk4NixBLmEyMDI9OTk4NyxBLmEzPTk5ODgsQS5hND05NzQyLEEuYTU9OTk5MCxBLmExMTk9OTk5MSxBLmExMTg9OTk5MixBLmExMTc9OTk5MyxBLmExMT05NzU1LEEuYTEyPTk3NTgsQS5hMTM9OTk5NixBLmExND05OTk3LEEuYTE1PTk5OTgsQS5hMTY9OTk5OSxBLmExMDU9MWU0LEEuYTE3PTEwMDAxLEEuYTE4PTEwMDAyLEEuYTE5PTEwMDAzLEEuYTIwPTEwMDA0LEEuYTIxPTEwMDA1LEEuYTIyPTEwMDA2LEEuYTIzPTEwMDA3LEEuYTI0PTEwMDA4LEEuYTI1PTEwMDA5LEEuYTI2PTEwMDEwLEEuYTI3PTEwMDExLEEuYTI4PTEwMDEyLEEuYTY9MTAwMTMsQS5hNz0xMDAxNCxBLmE4PTEwMDE1LEEuYTk9MTAwMTYsQS5hMTA9MTAwMTcsQS5hMjk9MTAwMTgsQS5hMzA9MTAwMTksQS5hMzE9MTAwMjAsQS5hMzI9MTAwMjEsQS5hMzM9MTAwMjIsQS5hMzQ9MTAwMjMsQS5hMzU9OTczMyxBLmEzNj0xMDAyNSxBLmEzNz0xMDAyNixBLmEzOD0xMDAyNyxBLmEzOT0xMDAyOCxBLmE0MD0xMDAyOSxBLmE0MT0xMDAzMCxBLmE0Mj0xMDAzMSxBLmE0Mz0xMDAzMixBLmE0ND0xMDAzMyxBLmE0NT0xMDAzNCxBLmE0Nj0xMDAzNSxBLmE0Nz0xMDAzNixBLmE0OD0xMDAzNyxBLmE0OT0xMDAzOCxBLmE1MD0xMDAzOSxBLmE1MT0xMDA0MCxBLmE1Mj0xMDA0MSxBLmE1Mz0xMDA0MixBLmE1ND0xMDA0MyxBLmE1NT0xMDA0NCxBLmE1Nj0xMDA0NSxBLmE1Nz0xMDA0NixBLmE1OD0xMDA0NyxBLmE1OT0xMDA0OCxBLmE2MD0xMDA0OSxBLmE2MT0xMDA1MCxBLmE2Mj0xMDA1MSxBLmE2Mz0xMDA1MixBLmE2ND0xMDA1MyxBLmE2NT0xMDA1NCxBLmE2Nj0xMDA1NSxBLmE2Nz0xMDA1NixBLmE2OD0xMDA1NyxBLmE2OT0xMDA1OCxBLmE3MD0xMDA1OSxBLmE3MT05Njc5LEEuYTcyPTEwMDYxLEEuYTczPTk2MzIsQS5hNzQ9MTAwNjMsQS5hMjAzPTEwMDY0LEEuYTc1PTEwMDY1LEEuYTIwND0xMDA2NixBLmE3Nj05NjUwLEEuYTc3PTk2NjAsQS5hNzg9OTY3MCxBLmE3OT0xMDA3MCxBLmE4MT05Njg3LEEuYTgyPTEwMDcyLEEuYTgzPTEwMDczLEEuYTg0PTEwMDc0LEEuYTk3PTEwMDc1LEEuYTk4PTEwMDc2LEEuYTk5PTEwMDc3LEEuYTEwMD0xMDA3OCxBLmExMDE9MTAwODEsQS5hMTAyPTEwMDgyLEEuYTEwMz0xMDA4MyxBLmExMDQ9MTAwODQsQS5hMTA2PTEwMDg1LEEuYTEwNz0xMDA4NixBLmExMDg9MTAwODcsQS5hMTEyPTk4MjcsQS5hMTExPTk4MzAsQS5hMTEwPTk4MjksQS5hMTA5PTk4MjQsQS5hMTIwPTkzMTIsQS5hMTIxPTkzMTMsQS5hMTIyPTkzMTQsQS5hMTIzPTkzMTUsQS5hMTI0PTkzMTYsQS5hMTI1PTkzMTcsQS5hMTI2PTkzMTgsQS5hMTI3PTkzMTksQS5hMTI4PTkzMjAsQS5hMTI5PTkzMjEsQS5hMTMwPTEwMTAyLEEuYTEzMT0xMDEwMyxBLmExMzI9MTAxMDQsQS5hMTMzPTEwMTA1LEEuYTEzND0xMDEwNixBLmExMzU9MTAxMDcsQS5hMTM2PTEwMTA4LEEuYTEzNz0xMDEwOSxBLmExMzg9MTAxMTAsQS5hMTM5PTEwMTExLEEuYTE0MD0xMDExMixBLmExNDE9MTAxMTMsQS5hMTQyPTEwMTE0LEEuYTE0Mz0xMDExNSxBLmExNDQ9MTAxMTYsQS5hMTQ1PTEwMTE3LEEuYTE0Nj0xMDExOCxBLmExNDc9MTAxMTksQS5hMTQ4PTEwMTIwLEEuYTE0OT0xMDEyMSxBLmExNTA9MTAxMjIsQS5hMTUxPTEwMTIzLEEuYTE1Mj0xMDEyNCxBLmExNTM9MTAxMjUsQS5hMTU0PTEwMTI2LEEuYTE1NT0xMDEyNyxBLmExNTY9MTAxMjgsQS5hMTU3PTEwMTI5LEEuYTE1OD0xMDEzMCxBLmExNTk9MTAxMzEsQS5hMTYwPTEwMTMyLEEuYTE2MT04NTk0LEEuYTE2Mz04NTk2LEEuYTE2ND04NTk3LEEuYTE5Nj0xMDEzNixBLmExNjU9MTAxMzcsQS5hMTkyPTEwMTM4LEEuYTE2Nj0xMDEzOSxBLmExNjc9MTAxNDAsQS5hMTY4PTEwMTQxLEEuYTE2OT0xMDE0MixBLmExNzA9MTAxNDMsQS5hMTcxPTEwMTQ0LEEuYTE3Mj0xMDE0NSxBLmExNzM9MTAxNDYsQS5hMTYyPTEwMTQ3LEEuYTE3ND0xMDE0OCxBLmExNzU9MTAxNDksQS5hMTc2PTEwMTUwLEEuYTE3Nz0xMDE1MSxBLmExNzg9MTAxNTIsQS5hMTc5PTEwMTUzLEEuYTE5Mz0xMDE1NCxBLmExODA9MTAxNTUsQS5hMTk5PTEwMTU2LEEuYTE4MT0xMDE1NyxBLmEyMDA9MTAxNTgsQS5hMTgyPTEwMTU5LEEuYTIwMT0xMDE2MSxBLmExODM9MTAxNjIsQS5hMTg0PTEwMTYzLEEuYTE5Nz0xMDE2NCxBLmExODU9MTAxNjUsQS5hMTk0PTEwMTY2LEEuYTE5OD0xMDE2NyxBLmExODY9MTAxNjgsQS5hMTk1PTEwMTY5LEEuYTE4Nz0xMDE3MCxBLmExODg9MTAxNzEsQS5hMTg5PTEwMTcyLEEuYTE5MD0xMDE3MyxBLmExOTE9MTAxNzQsQS5hODk9MTAwODgsQS5hOTA9MTAwODksQS5hOTM9MTAwOTAsQS5hOTQ9MTAwOTEsQS5hOTE9MTAwOTIsQS5hOTI9MTAwOTMsQS5hMjA1PTEwMDk0LEEuYTg1PTEwMDk1LEEuYTIwNj0xMDA5NixBLmE4Nj0xMDA5NyxBLmE4Nz0xMDA5OCxBLmE4OD0xMDA5OSxBLmE5NT0xMDEwMCxBLmE5Nj0xMDEwMSxBWyIubm90ZGVmIl09MH0pKSxvYT1iQSgoZnVuY3Rpb24oQSl7QVs2MzcyMV09MTY5LEFbNjMxOTNdPTE2OSxBWzYzNzIwXT0xNzQsQVs2MzE5NF09MTc0LEFbNjM3MjJdPTg0ODIsQVs2MzE5NV09ODQ4MixBWzYzNzI5XT05MTI3LEFbNjM3MzBdPTkxMjgsQVs2MzczMV09OTEyOSxBWzYzNzQwXT05MTMxLEFbNjM3NDFdPTkxMzIsQVs2Mzc0Ml09OTEzMyxBWzYzNzI2XT05MTIxLEFbNjM3MjddPTkxMjIsQVs2MzcyOF09OTEyMyxBWzYzNzM3XT05MTI0LEFbNjM3MzhdPTkxMjUsQVs2MzczOV09OTEyNixBWzYzNzIzXT05MTE1LEFbNjM3MjRdPTkxMTYsQVs2MzcyNV09OTExNyxBWzYzNzM0XT05MTE4LEFbNjM3MzVdPTkxMTksQVs2MzczNl09OTEyMH0pKTtmdW5jdGlvbiBJYShBLGUpe2xldCB0PWVbQV07aWYodm9pZCAwIT09dClyZXR1cm4gdDtpZighQSlyZXR1cm4tMTtpZigidSI9PT1BWzBdKXtjb25zdCBlPUEubGVuZ3RoO2xldCBpO2lmKDc9PT1lJiYibiI9PT1BWzFdJiYiaSI9PT1BWzJdKWk9QS5zdWJzdHJpbmcoMyk7ZWxzZXtpZighKGU+PTUmJmU8PTcpKXJldHVybi0xO2k9QS5zdWJzdHJpbmcoMSl9aWYoaT09PWkudG9VcHBlckNhc2UoKSYmKHQ9cGFyc2VJbnQoaSwxNiksdD49MCkpcmV0dXJuIHR9cmV0dXJuLTF9Y29uc3QgY2E9W1swLDEyN10sWzEyOCwyNTVdLFsyNTYsMzgzXSxbMzg0LDU5MV0sWzU5Miw2ODcsNzQyNCw3NTUxLDc1NTIsNzYxNV0sWzY4OCw3NjcsNDI3NTIsNDI3ODNdLFs3NjgsODc5LDc2MTYsNzY3OV0sWzg4MCwxMDIzXSxbMTEzOTIsMTE1MTldLFsxMDI0LDEyNzksMTI4MCwxMzI3LDExNzQ0LDExNzc1LDQyNTYwLDQyNjU1XSxbMTMyOCwxNDIzXSxbMTQyNCwxNTM1XSxbNDIyNDAsNDI1NTldLFsxNTM2LDE3OTEsMTg3MiwxOTE5XSxbMTk4NCwyMDQ3XSxbMjMwNCwyNDMxXSxbMjQzMiwyNTU5XSxbMjU2MCwyNjg3XSxbMjY4OCwyODE1XSxbMjgxNiwyOTQzXSxbMjk0NCwzMDcxXSxbMzA3MiwzMTk5XSxbMzIwMCwzMzI3XSxbMzMyOCwzNDU1XSxbMzU4NCwzNzExXSxbMzcxMiwzODM5XSxbNDI1Niw0MzUxLDExNTIwLDExNTY3XSxbNjkxMiw3MDM5XSxbNDM1Miw0NjA3XSxbNzY4MCw3OTM1LDExMzYwLDExMzkxLDQyNzg0LDQzMDA3XSxbNzkzNiw4MTkxXSxbODE5Miw4MzAzLDExNzc2LDExOTAzXSxbODMwNCw4MzUxXSxbODM1Miw4Mzk5XSxbODQwMCw4NDQ3XSxbODQ0OCw4NTI3XSxbODUyOCw4NTkxXSxbODU5Miw4NzAzLDEwMjI0LDEwMjM5LDEwNDk2LDEwNjIzLDExMDA4LDExMjYzXSxbODcwNCw4OTU5LDEwNzUyLDExMDA3LDEwMTc2LDEwMjIzLDEwNjI0LDEwNzUxXSxbODk2MCw5MjE1XSxbOTIxNiw5Mjc5XSxbOTI4MCw5MzExXSxbOTMxMiw5NDcxXSxbOTQ3Miw5NTk5XSxbOTYwMCw5NjMxXSxbOTYzMiw5NzI3XSxbOTcyOCw5OTgzXSxbOTk4NCwxMDE3NV0sWzEyMjg4LDEyMzUxXSxbMTIzNTIsMTI0NDddLFsxMjQ0OCwxMjU0MywxMjc4NCwxMjc5OV0sWzEyNTQ0LDEyNTkxLDEyNzA0LDEyNzM1XSxbMTI1OTIsMTI2ODddLFs0MzA3Miw0MzEzNV0sWzEyODAwLDEzMDU1XSxbMTMwNTYsMTMzMTFdLFs0NDAzMiw1NTIxNV0sWzU1Mjk2LDU3MzQzXSxbNjc4NDAsNjc4NzFdLFsxOTk2OCw0MDk1OSwxMTkwNCwxMjAzMSwxMjAzMiwxMjI1NSwxMjI3MiwxMjI4NywxMzMxMiwxOTkwMywxMzEwNzIsMTczNzkxLDEyNjg4LDEyNzAzXSxbNTczNDQsNjM3NDNdLFsxMjczNiwxMjc4Myw2Mzc0NCw2NDI1NSwxOTQ1NjAsMTk1MTAzXSxbNjQyNTYsNjQzMzVdLFs2NDMzNiw2NTAyM10sWzY1MDU2LDY1MDcxXSxbNjUwNDAsNjUwNTVdLFs2NTEwNCw2NTEzNV0sWzY1MTM2LDY1Mjc5XSxbNjUyODAsNjU1MTldLFs2NTUyMCw2NTUzNV0sWzM4NDAsNDA5NV0sWzE3OTIsMTg3MV0sWzE5MjAsMTk4M10sWzM0NTYsMzU4M10sWzQwOTYsNDI1NV0sWzQ2MDgsNDk5MSw0OTkyLDUwMjMsMTE2NDgsMTE3NDNdLFs1MDI0LDUxMTldLFs1MTIwLDU3NTldLFs1NzYwLDU3OTFdLFs1NzkyLDU4ODddLFs2MDE2LDYxNDNdLFs2MTQ0LDYzMTldLFsxMDI0MCwxMDQ5NV0sWzQwOTYwLDQyMTI3XSxbNTg4OCw1OTE5LDU5MjAsNTk1MSw1OTUyLDU5ODMsNTk4NCw2MDE1XSxbNjYzMDQsNjYzNTFdLFs2NjM1Miw2NjM4M10sWzY2NTYwLDY2NjM5XSxbMTE4Nzg0LDExOTAzOSwxMTkwNDAsMTE5Mjk1LDExOTI5NiwxMTkzNzVdLFsxMTk4MDgsMTIwODMxXSxbMTA0NDQ4MCwxMDQ4NTczXSxbNjUwMjQsNjUwMzksOTE3NzYwLDkxNzk5OV0sWzkxNzUwNCw5MTc2MzFdLFs2NDAwLDY0NzldLFs2NDgwLDY1MjddLFs2NTI4LDY2MjNdLFs2NjU2LDY2ODddLFsxMTI2NCwxMTM1OV0sWzExNTY4LDExNjQ3XSxbMTk5MDQsMTk5NjddLFs0MzAwOCw0MzA1NV0sWzY1NTM2LDY1NjYzLDY1NjY0LDY1NzkxLDY1NzkyLDY1ODU1XSxbNjU4NTYsNjU5MzVdLFs2NjQzMiw2NjQ2M10sWzY2NDY0LDY2NTI3XSxbNjY2NDAsNjY2ODddLFs2NjY4OCw2NjczNV0sWzY3NTg0LDY3NjQ3XSxbNjgwOTYsNjgxOTFdLFsxMTk1NTIsMTE5NjQ3XSxbNzM3MjgsNzQ3NTEsNzQ3NTIsNzQ4NzldLFsxMTk2NDgsMTE5Njc5XSxbNzA0MCw3MTAzXSxbNzE2OCw3MjQ3XSxbNzI0OCw3Mjk1XSxbNDMxMzYsNDMyMzFdLFs0MzI2NCw0MzMxMV0sWzQzMzEyLDQzMzU5XSxbNDM1MjAsNDM2MTVdLFs2NTkzNiw2NTk5OV0sWzY2ZTMsNjYwNDddLFs2NjIwOCw2NjI3MSw2NjE3Niw2NjIwNyw2Nzg3Miw2NzkwM10sWzEyNzAyNCwxMjcxMzUsMTI2OTc2LDEyNzAyM11dO2Z1bmN0aW9uIGhhKEEsZT0tMSl7aWYoLTEhPT1lKXtjb25zdCB0PWNhW2VdO2ZvcihsZXQgaT0wLGE9dC5sZW5ndGg7aTxhO2krPTIpaWYoQT49dFtpXSYmQTw9dFtpKzFdKXJldHVybiBlfWZvcihsZXQgZT0wLHQ9Y2EubGVuZ3RoO2U8dDtlKyspe2NvbnN0IHQ9Y2FbZV07Zm9yKGxldCBpPTAsYT10Lmxlbmd0aDtpPGE7aSs9MilpZihBPj10W2ldJiZBPD10W2krMV0pcmV0dXJuIGV9cmV0dXJuLTF9Y29uc3QgQ2E9bmV3IFJlZ0V4cCgiXihcXHMpfChcXHB7TW59KXwoXFxwe0NmfSkkIiwidSIpLEJhPW5ldyBNYXAsbGE9ITAsUWE9WyIubm90ZGVmIiwiLm51bGwiLCJub25tYXJraW5ncmV0dXJuIiwic3BhY2UiLCJleGNsYW0iLCJxdW90ZWRibCIsIm51bWJlcnNpZ24iLCJkb2xsYXIiLCJwZXJjZW50IiwiYW1wZXJzYW5kIiwicXVvdGVzaW5nbGUiLCJwYXJlbmxlZnQiLCJwYXJlbnJpZ2h0IiwiYXN0ZXJpc2siLCJwbHVzIiwiY29tbWEiLCJoeXBoZW4iLCJwZXJpb2QiLCJzbGFzaCIsInplcm8iLCJvbmUiLCJ0d28iLCJ0aHJlZSIsImZvdXIiLCJmaXZlIiwic2l4Iiwic2V2ZW4iLCJlaWdodCIsIm5pbmUiLCJjb2xvbiIsInNlbWljb2xvbiIsImxlc3MiLCJlcXVhbCIsImdyZWF0ZXIiLCJxdWVzdGlvbiIsImF0IiwiQSIsIkIiLCJDIiwiRCIsIkUiLCJGIiwiRyIsIkgiLCJJIiwiSiIsIksiLCJMIiwiTSIsIk4iLCJPIiwiUCIsIlEiLCJSIiwiUyIsIlQiLCJVIiwiViIsIlciLCJYIiwiWSIsIloiLCJicmFja2V0bGVmdCIsImJhY2tzbGFzaCIsImJyYWNrZXRyaWdodCIsImFzY2lpY2lyY3VtIiwidW5kZXJzY29yZSIsImdyYXZlIiwiYSIsImIiLCJjIiwiZCIsImUiLCJmIiwiZyIsImgiLCJpIiwiaiIsImsiLCJsIiwibSIsIm4iLCJvIiwicCIsInEiLCJyIiwicyIsInQiLCJ1IiwidiIsInciLCJ4IiwieSIsInoiLCJicmFjZWxlZnQiLCJiYXIiLCJicmFjZXJpZ2h0IiwiYXNjaWl0aWxkZSIsIkFkaWVyZXNpcyIsIkFyaW5nIiwiQ2NlZGlsbGEiLCJFYWN1dGUiLCJOdGlsZGUiLCJPZGllcmVzaXMiLCJVZGllcmVzaXMiLCJhYWN1dGUiLCJhZ3JhdmUiLCJhY2lyY3VtZmxleCIsImFkaWVyZXNpcyIsImF0aWxkZSIsImFyaW5nIiwiY2NlZGlsbGEiLCJlYWN1dGUiLCJlZ3JhdmUiLCJlY2lyY3VtZmxleCIsImVkaWVyZXNpcyIsImlhY3V0ZSIsImlncmF2ZSIsImljaXJjdW1mbGV4IiwiaWRpZXJlc2lzIiwibnRpbGRlIiwib2FjdXRlIiwib2dyYXZlIiwib2NpcmN1bWZsZXgiLCJvZGllcmVzaXMiLCJvdGlsZGUiLCJ1YWN1dGUiLCJ1Z3JhdmUiLCJ1Y2lyY3VtZmxleCIsInVkaWVyZXNpcyIsImRhZ2dlciIsImRlZ3JlZSIsImNlbnQiLCJzdGVybGluZyIsInNlY3Rpb24iLCJidWxsZXQiLCJwYXJhZ3JhcGgiLCJnZXJtYW5kYmxzIiwicmVnaXN0ZXJlZCIsImNvcHlyaWdodCIsInRyYWRlbWFyayIsImFjdXRlIiwiZGllcmVzaXMiLCJub3RlcXVhbCIsIkFFIiwiT3NsYXNoIiwiaW5maW5pdHkiLCJwbHVzbWludXMiLCJsZXNzZXF1YWwiLCJncmVhdGVyZXF1YWwiLCJ5ZW4iLCJtdSIsInBhcnRpYWxkaWZmIiwic3VtbWF0aW9uIiwicHJvZHVjdCIsInBpIiwiaW50ZWdyYWwiLCJvcmRmZW1pbmluZSIsIm9yZG1hc2N1bGluZSIsIk9tZWdhIiwiYWUiLCJvc2xhc2giLCJxdWVzdGlvbmRvd24iLCJleGNsYW1kb3duIiwibG9naWNhbG5vdCIsInJhZGljYWwiLCJmbG9yaW4iLCJhcHByb3hlcXVhbCIsIkRlbHRhIiwiZ3VpbGxlbW90bGVmdCIsImd1aWxsZW1vdHJpZ2h0IiwiZWxsaXBzaXMiLCJub25icmVha2luZ3NwYWNlIiwiQWdyYXZlIiwiQXRpbGRlIiwiT3RpbGRlIiwiT0UiLCJvZSIsImVuZGFzaCIsImVtZGFzaCIsInF1b3RlZGJsbGVmdCIsInF1b3RlZGJscmlnaHQiLCJxdW90ZWxlZnQiLCJxdW90ZXJpZ2h0IiwiZGl2aWRlIiwibG96ZW5nZSIsInlkaWVyZXNpcyIsIllkaWVyZXNpcyIsImZyYWN0aW9uIiwiY3VycmVuY3kiLCJndWlsc2luZ2xsZWZ0IiwiZ3VpbHNpbmdscmlnaHQiLCJmaSIsImZsIiwiZGFnZ2VyZGJsIiwicGVyaW9kY2VudGVyZWQiLCJxdW90ZXNpbmdsYmFzZSIsInF1b3RlZGJsYmFzZSIsInBlcnRob3VzYW5kIiwiQWNpcmN1bWZsZXgiLCJFY2lyY3VtZmxleCIsIkFhY3V0ZSIsIkVkaWVyZXNpcyIsIkVncmF2ZSIsIklhY3V0ZSIsIkljaXJjdW1mbGV4IiwiSWRpZXJlc2lzIiwiSWdyYXZlIiwiT2FjdXRlIiwiT2NpcmN1bWZsZXgiLCJhcHBsZSIsIk9ncmF2ZSIsIlVhY3V0ZSIsIlVjaXJjdW1mbGV4IiwiVWdyYXZlIiwiZG90bGVzc2kiLCJjaXJjdW1mbGV4IiwidGlsZGUiLCJtYWNyb24iLCJicmV2ZSIsImRvdGFjY2VudCIsInJpbmciLCJjZWRpbGxhIiwiaHVuZ2FydW1sYXV0Iiwib2dvbmVrIiwiY2Fyb24iLCJMc2xhc2giLCJsc2xhc2giLCJTY2Fyb24iLCJzY2Fyb24iLCJaY2Fyb24iLCJ6Y2Fyb24iLCJicm9rZW5iYXIiLCJFdGgiLCJldGgiLCJZYWN1dGUiLCJ5YWN1dGUiLCJUaG9ybiIsInRob3JuIiwibWludXMiLCJtdWx0aXBseSIsIm9uZXN1cGVyaW9yIiwidHdvc3VwZXJpb3IiLCJ0aHJlZXN1cGVyaW9yIiwib25laGFsZiIsIm9uZXF1YXJ0ZXIiLCJ0aHJlZXF1YXJ0ZXJzIiwiZnJhbmMiLCJHYnJldmUiLCJnYnJldmUiLCJJZG90YWNjZW50IiwiU2NlZGlsbGEiLCJzY2VkaWxsYSIsIkNhY3V0ZSIsImNhY3V0ZSIsIkNjYXJvbiIsImNjYXJvbiIsImRjcm9hdCJdO2Z1bmN0aW9uIEVhKEEsZSl7aWYodm9pZCAwIT09ZVtBXSlyZXR1cm4gQTtjb25zdCB0PUlhKEEsZSk7aWYoLTEhPT10KWZvcihjb25zdCBBIGluIGUpaWYoZVtBXT09PXQpcmV0dXJuIEE7cmV0dXJuIHgoIlVuYWJsZSB0byByZWNvdmVyIGEgc3RhbmRhcmQgZ2x5cGggbmFtZSBmb3I6ICIrQSksQX1mdW5jdGlvbiB1YShBLGUsdCl7Y29uc3QgaT1PYmplY3QuY3JlYXRlKG51bGwpO2xldCBhLHMsbjtjb25zdCByPSEhKDQmQS5mbGFncyk7aWYoQS5pc0ludGVybmFsRm9udClmb3Iobj1lLHM9MDtzPG4ubGVuZ3RoO3MrKylhPXQuaW5kZXhPZihuW3NdKSxpW3NdPWE+PTA/YTowO2Vsc2UgaWYoQS5iYXNlRW5jb2RpbmdOYW1lKWZvcihuPUtpKEEuYmFzZUVuY29kaW5nTmFtZSkscz0wO3M8bi5sZW5ndGg7cysrKWE9dC5pbmRleE9mKG5bc10pLGlbc109YT49MD9hOjA7ZWxzZSBpZihyKWZvcihzIGluIGUpaVtzXT1lW3NdO2Vsc2UgZm9yKG49Smkscz0wO3M8bi5sZW5ndGg7cysrKWE9dC5pbmRleE9mKG5bc10pLGlbc109YT49MD9hOjA7Y29uc3QgZz1BLmRpZmZlcmVuY2VzO2xldCBvO2lmKGcpZm9yKHMgaW4gZyl7Y29uc3QgQT1nW3NdO2lmKGE9dC5pbmRleE9mKEEpLC0xPT09YSl7b3x8KG89cmEoKSk7Y29uc3QgZT1FYShBLG8pO2UhPT1BJiYoYT10LmluZGV4T2YoZSkpfWlbc109YT49MD9hOjB9cmV0dXJuIGl9ZnVuY3Rpb24gZGEoQSl7cmV0dXJuIEEucmVwbGFjZUFsbCgvWyxfXS9nLCItIikucmVwbGFjZUFsbCgvXHMvZywiIil9Y29uc3QgZmE9YkEoKEE9PntBWzgyMTFdPTY1MDc0LEFbODIxMl09NjUwNzMsQVs4MjI5XT02NTA3MixBWzgyMzBdPTY1MDQ5LEFbMTIyODldPTY1MDQxLEFbMTIyOTBdPTY1MDQyLEFbMTIyOTZdPTY1MDg3LEFbMTIyOTddPTY1MDg4LEFbMTIyOThdPTY1MDg1LEFbMTIyOTldPTY1MDg2LEFbMTIzMDBdPTY1MDg5LEFbMTIzMDFdPTY1MDkwLEFbMTIzMDJdPTY1MDkxLEFbMTIzMDNdPTY1MDkyLEFbMTIzMDRdPTY1MDgzLEFbMTIzMDVdPTY1MDg0LEFbMTIzMDhdPTY1MDgxLEFbMTIzMDldPTY1MDgyLEFbMTIzMTBdPTY1MDQ3LEFbMTIzMTFdPTY1MDQ4LEFbNjUxMDNdPTY1MDc2LEFbNjUyODFdPTY1MDQ1LEFbNjUyODhdPTY1MDc3LEFbNjUyODldPTY1MDc4LEFbNjUyOTJdPTY1MDQwLEFbNjUzMDZdPTY1MDQzLEFbNjUzMDddPTY1MDQ0LEFbNjUzMTFdPTY1MDQ2LEFbNjUzMzldPTY1MDk1LEFbNjUzNDFdPTY1MDk2LEFbNjUzNDNdPTY1MDc1LEFbNjUzNzFdPTY1MDc5LEFbNjUzNzNdPTY1MDgwfSkpLHBhPWJBKChmdW5jdGlvbihBKXtBWyJUaW1lcy1Sb21hbiJdPSJUaW1lcy1Sb21hbiIsQS5IZWx2ZXRpY2E9IkhlbHZldGljYSIsQS5Db3VyaWVyPSJDb3VyaWVyIixBLlN5bWJvbD0iU3ltYm9sIixBWyJUaW1lcy1Cb2xkIl09IlRpbWVzLUJvbGQiLEFbIkhlbHZldGljYS1Cb2xkIl09IkhlbHZldGljYS1Cb2xkIixBWyJDb3VyaWVyLUJvbGQiXT0iQ291cmllci1Cb2xkIixBLlphcGZEaW5nYmF0cz0iWmFwZkRpbmdiYXRzIixBWyJUaW1lcy1JdGFsaWMiXT0iVGltZXMtSXRhbGljIixBWyJIZWx2ZXRpY2EtT2JsaXF1ZSJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSIsQVsiQ291cmllci1PYmxpcXVlIl09IkNvdXJpZXItT2JsaXF1ZSIsQVsiVGltZXMtQm9sZEl0YWxpYyJdPSJUaW1lcy1Cb2xkSXRhbGljIixBWyJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiXT0iSGVsdmV0aWNhLUJvbGRPYmxpcXVlIixBWyJDb3VyaWVyLUJvbGRPYmxpcXVlIl09IkNvdXJpZXItQm9sZE9ibGlxdWUiLEEuQXJpYWxOYXJyb3c9IkhlbHZldGljYSIsQVsiQXJpYWxOYXJyb3ctQm9sZCJdPSJIZWx2ZXRpY2EtQm9sZCIsQVsiQXJpYWxOYXJyb3ctQm9sZEl0YWxpYyJdPSJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiLEFbIkFyaWFsTmFycm93LUl0YWxpYyJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSIsQS5BcmlhbEJsYWNrPSJIZWx2ZXRpY2EiLEFbIkFyaWFsQmxhY2stQm9sZCJdPSJIZWx2ZXRpY2EtQm9sZCIsQVsiQXJpYWxCbGFjay1Cb2xkSXRhbGljIl09IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSIsQVsiQXJpYWxCbGFjay1JdGFsaWMiXT0iSGVsdmV0aWNhLU9ibGlxdWUiLEFbIkFyaWFsLUJsYWNrIl09IkhlbHZldGljYSIsQVsiQXJpYWwtQmxhY2stQm9sZCJdPSJIZWx2ZXRpY2EtQm9sZCIsQVsiQXJpYWwtQmxhY2stQm9sZEl0YWxpYyJdPSJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiLEFbIkFyaWFsLUJsYWNrLUl0YWxpYyJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSIsQS5BcmlhbD0iSGVsdmV0aWNhIixBWyJBcmlhbC1Cb2xkIl09IkhlbHZldGljYS1Cb2xkIixBWyJBcmlhbC1Cb2xkSXRhbGljIl09IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSIsQVsiQXJpYWwtSXRhbGljIl09IkhlbHZldGljYS1PYmxpcXVlIixBLkFyaWFsTVQ9IkhlbHZldGljYSIsQVsiQXJpYWwtQm9sZEl0YWxpY01UIl09IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSIsQVsiQXJpYWwtQm9sZE1UIl09IkhlbHZldGljYS1Cb2xkIixBWyJBcmlhbC1JdGFsaWNNVCJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSIsQVsiQXJpYWwtQm9sZEl0YWxpY01ULUJvbGRJdGFsaWMiXT0iSGVsdmV0aWNhLUJvbGRPYmxpcXVlIixBWyJBcmlhbC1Cb2xkTVQtQm9sZCJdPSJIZWx2ZXRpY2EtQm9sZCIsQVsiQXJpYWwtSXRhbGljTVQtSXRhbGljIl09IkhlbHZldGljYS1PYmxpcXVlIixBLkFyaWFsVW5pY29kZU1TPSJIZWx2ZXRpY2EiLEFbIkFyaWFsVW5pY29kZU1TLUJvbGQiXT0iSGVsdmV0aWNhLUJvbGQiLEFbIkFyaWFsVW5pY29kZU1TLUJvbGRJdGFsaWMiXT0iSGVsdmV0aWNhLUJvbGRPYmxpcXVlIixBWyJBcmlhbFVuaWNvZGVNUy1JdGFsaWMiXT0iSGVsdmV0aWNhLU9ibGlxdWUiLEFbIkNvdXJpZXItQm9sZEl0YWxpYyJdPSJDb3VyaWVyLUJvbGRPYmxpcXVlIixBWyJDb3VyaWVyLUl0YWxpYyJdPSJDb3VyaWVyLU9ibGlxdWUiLEEuQ291cmllck5ldz0iQ291cmllciIsQVsiQ291cmllck5ldy1Cb2xkIl09IkNvdXJpZXItQm9sZCIsQVsiQ291cmllck5ldy1Cb2xkSXRhbGljIl09IkNvdXJpZXItQm9sZE9ibGlxdWUiLEFbIkNvdXJpZXJOZXctSXRhbGljIl09IkNvdXJpZXItT2JsaXF1ZSIsQVsiQ291cmllck5ld1BTLUJvbGRJdGFsaWNNVCJdPSJDb3VyaWVyLUJvbGRPYmxpcXVlIixBWyJDb3VyaWVyTmV3UFMtQm9sZE1UIl09IkNvdXJpZXItQm9sZCIsQVsiQ291cmllck5ld1BTLUl0YWxpY01UIl09IkNvdXJpZXItT2JsaXF1ZSIsQS5Db3VyaWVyTmV3UFNNVD0iQ291cmllciIsQVsiSGVsdmV0aWNhLUJvbGRJdGFsaWMiXT0iSGVsdmV0aWNhLUJvbGRPYmxpcXVlIixBWyJIZWx2ZXRpY2EtSXRhbGljIl09IkhlbHZldGljYS1PYmxpcXVlIixBWyJTeW1ib2wtQm9sZCJdPSJTeW1ib2wiLEFbIlN5bWJvbC1Cb2xkSXRhbGljIl09IlN5bWJvbCIsQVsiU3ltYm9sLUl0YWxpYyJdPSJTeW1ib2wiLEEuVGltZXNOZXdSb21hbj0iVGltZXMtUm9tYW4iLEFbIlRpbWVzTmV3Um9tYW4tQm9sZCJdPSJUaW1lcy1Cb2xkIixBWyJUaW1lc05ld1JvbWFuLUJvbGRJdGFsaWMiXT0iVGltZXMtQm9sZEl0YWxpYyIsQVsiVGltZXNOZXdSb21hbi1JdGFsaWMiXT0iVGltZXMtSXRhbGljIixBLlRpbWVzTmV3Um9tYW5QUz0iVGltZXMtUm9tYW4iLEFbIlRpbWVzTmV3Um9tYW5QUy1Cb2xkIl09IlRpbWVzLUJvbGQiLEFbIlRpbWVzTmV3Um9tYW5QUy1Cb2xkSXRhbGljIl09IlRpbWVzLUJvbGRJdGFsaWMiLEFbIlRpbWVzTmV3Um9tYW5QUy1Cb2xkSXRhbGljTVQiXT0iVGltZXMtQm9sZEl0YWxpYyIsQVsiVGltZXNOZXdSb21hblBTLUJvbGRNVCJdPSJUaW1lcy1Cb2xkIixBWyJUaW1lc05ld1JvbWFuUFMtSXRhbGljIl09IlRpbWVzLUl0YWxpYyIsQVsiVGltZXNOZXdSb21hblBTLUl0YWxpY01UIl09IlRpbWVzLUl0YWxpYyIsQS5UaW1lc05ld1JvbWFuUFNNVD0iVGltZXMtUm9tYW4iLEFbIlRpbWVzTmV3Um9tYW5QU01ULUJvbGQiXT0iVGltZXMtQm9sZCIsQVsiVGltZXNOZXdSb21hblBTTVQtQm9sZEl0YWxpYyJdPSJUaW1lcy1Cb2xkSXRhbGljIixBWyJUaW1lc05ld1JvbWFuUFNNVC1JdGFsaWMiXT0iVGltZXMtSXRhbGljIn0pKSxtYT1iQSgoZnVuY3Rpb24oQSl7QS5Db3VyaWVyPSJGb3hpdEZpeGVkLnBmYiIsQVsiQ291cmllci1Cb2xkIl09IkZveGl0Rml4ZWRCb2xkLnBmYiIsQVsiQ291cmllci1Cb2xkT2JsaXF1ZSJdPSJGb3hpdEZpeGVkQm9sZEl0YWxpYy5wZmIiLEFbIkNvdXJpZXItT2JsaXF1ZSJdPSJGb3hpdEZpeGVkSXRhbGljLnBmYiIsQS5IZWx2ZXRpY2E9IkxpYmVyYXRpb25TYW5zLVJlZ3VsYXIudHRmIixBWyJIZWx2ZXRpY2EtQm9sZCJdPSJMaWJlcmF0aW9uU2Fucy1Cb2xkLnR0ZiIsQVsiSGVsdmV0aWNhLUJvbGRPYmxpcXVlIl09IkxpYmVyYXRpb25TYW5zLUJvbGRJdGFsaWMudHRmIixBWyJIZWx2ZXRpY2EtT2JsaXF1ZSJdPSJMaWJlcmF0aW9uU2Fucy1JdGFsaWMudHRmIixBWyJUaW1lcy1Sb21hbiJdPSJGb3hpdFNlcmlmLnBmYiIsQVsiVGltZXMtQm9sZCJdPSJGb3hpdFNlcmlmQm9sZC5wZmIiLEFbIlRpbWVzLUJvbGRJdGFsaWMiXT0iRm94aXRTZXJpZkJvbGRJdGFsaWMucGZiIixBWyJUaW1lcy1JdGFsaWMiXT0iRm94aXRTZXJpZkl0YWxpYy5wZmIiLEEuU3ltYm9sPSJGb3hpdFN5bWJvbC5wZmIiLEEuWmFwZkRpbmdiYXRzPSJGb3hpdERpbmdiYXRzLnBmYiIsQVsiTGliZXJhdGlvblNhbnMtUmVndWxhciJdPSJMaWJlcmF0aW9uU2Fucy1SZWd1bGFyLnR0ZiIsQVsiTGliZXJhdGlvblNhbnMtQm9sZCJdPSJMaWJlcmF0aW9uU2Fucy1Cb2xkLnR0ZiIsQVsiTGliZXJhdGlvblNhbnMtSXRhbGljIl09IkxpYmVyYXRpb25TYW5zLUl0YWxpYy50dGYiLEFbIkxpYmVyYXRpb25TYW5zLUJvbGRJdGFsaWMiXT0iTGliZXJhdGlvblNhbnMtQm9sZEl0YWxpYy50dGYifSkpLHlhPWJBKChmdW5jdGlvbihBKXtBLkNhbGlicmk9IkhlbHZldGljYSIsQVsiQ2FsaWJyaS1Cb2xkIl09IkhlbHZldGljYS1Cb2xkIixBWyJDYWxpYnJpLUJvbGRJdGFsaWMiXT0iSGVsdmV0aWNhLUJvbGRPYmxpcXVlIixBWyJDYWxpYnJpLUl0YWxpYyJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSIsQS5DZW50dXJ5R290aGljPSJIZWx2ZXRpY2EiLEFbIkNlbnR1cnlHb3RoaWMtQm9sZCJdPSJIZWx2ZXRpY2EtQm9sZCIsQVsiQ2VudHVyeUdvdGhpYy1Cb2xkSXRhbGljIl09IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSIsQVsiQ2VudHVyeUdvdGhpYy1JdGFsaWMiXT0iSGVsdmV0aWNhLU9ibGlxdWUiLEEuQ29taWNTYW5zTVM9IkNvbWljIFNhbnMgTVMiLEFbIkNvbWljU2Fuc01TLUJvbGQiXT0iQ29taWMgU2FucyBNUy1Cb2xkIixBWyJDb21pY1NhbnNNUy1Cb2xkSXRhbGljIl09IkNvbWljIFNhbnMgTVMtQm9sZEl0YWxpYyIsQVsiQ29taWNTYW5zTVMtSXRhbGljIl09IkNvbWljIFNhbnMgTVMtSXRhbGljIixBLkdpbGxTYW5zTVQ9IkhlbHZldGljYSIsQVsiR2lsbFNhbnNNVC1Cb2xkIl09IkhlbHZldGljYS1Cb2xkIixBWyJHaWxsU2Fuc01ULUJvbGRJdGFsaWMiXT0iSGVsdmV0aWNhLUJvbGRPYmxpcXVlIixBWyJHaWxsU2Fuc01ULUl0YWxpYyJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSIsQS5JbXBhY3Q9IkhlbHZldGljYSIsQVsiSXRjU3ltYm9sLUJvbGQiXT0iSGVsdmV0aWNhLUJvbGQiLEFbIkl0Y1N5bWJvbC1Cb2xkSXRhbGljIl09IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSIsQVsiSXRjU3ltYm9sLUJvb2siXT0iSGVsdmV0aWNhIixBWyJJdGNTeW1ib2wtQm9va0l0YWxpYyJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSIsQVsiSXRjU3ltYm9sLU1lZGl1bSJdPSJIZWx2ZXRpY2EiLEFbIkl0Y1N5bWJvbC1NZWRpdW1JdGFsaWMiXT0iSGVsdmV0aWNhLU9ibGlxdWUiLEEuTHVjaWRhQ29uc29sZT0iQ291cmllciIsQVsiTHVjaWRhQ29uc29sZS1Cb2xkIl09IkNvdXJpZXItQm9sZCIsQVsiTHVjaWRhQ29uc29sZS1Cb2xkSXRhbGljIl09IkNvdXJpZXItQm9sZE9ibGlxdWUiLEFbIkx1Y2lkYUNvbnNvbGUtSXRhbGljIl09IkNvdXJpZXItT2JsaXF1ZSIsQVsiTHVjaWRhU2Fucy1EZW1pIl09IkhlbHZldGljYS1Cb2xkIixBWyJNUy1Hb3RoaWMiXT0iTVMgR290aGljIixBWyJNUy1Hb3RoaWMtQm9sZCJdPSJNUyBHb3RoaWMtQm9sZCIsQVsiTVMtR290aGljLUJvbGRJdGFsaWMiXT0iTVMgR290aGljLUJvbGRJdGFsaWMiLEFbIk1TLUdvdGhpYy1JdGFsaWMiXT0iTVMgR290aGljLUl0YWxpYyIsQVsiTVMtTWluY2hvIl09Ik1TIE1pbmNobyIsQVsiTVMtTWluY2hvLUJvbGQiXT0iTVMgTWluY2hvLUJvbGQiLEFbIk1TLU1pbmNoby1Cb2xkSXRhbGljIl09Ik1TIE1pbmNoby1Cb2xkSXRhbGljIixBWyJNUy1NaW5jaG8tSXRhbGljIl09Ik1TIE1pbmNoby1JdGFsaWMiLEFbIk1TLVBHb3RoaWMiXT0iTVMgUEdvdGhpYyIsQVsiTVMtUEdvdGhpYy1Cb2xkIl09Ik1TIFBHb3RoaWMtQm9sZCIsQVsiTVMtUEdvdGhpYy1Cb2xkSXRhbGljIl09Ik1TIFBHb3RoaWMtQm9sZEl0YWxpYyIsQVsiTVMtUEdvdGhpYy1JdGFsaWMiXT0iTVMgUEdvdGhpYy1JdGFsaWMiLEFbIk1TLVBNaW5jaG8iXT0iTVMgUE1pbmNobyIsQVsiTVMtUE1pbmNoby1Cb2xkIl09Ik1TIFBNaW5jaG8tQm9sZCIsQVsiTVMtUE1pbmNoby1Cb2xkSXRhbGljIl09Ik1TIFBNaW5jaG8tQm9sZEl0YWxpYyIsQVsiTVMtUE1pbmNoby1JdGFsaWMiXT0iTVMgUE1pbmNoby1JdGFsaWMiLEEuTnVwdGlhbFNjcmlwdD0iVGltZXMtSXRhbGljIixBLlNlZ29lVUlTeW1ib2w9IkhlbHZldGljYSJ9KSksd2E9YkEoKGZ1bmN0aW9uKEEpe0FbIkFkb2JlIEplbnNvbiJdPSEwLEFbIkFkb2JlIFRleHQiXT0hMCxBLkFsYmVydHVzPSEwLEEuQWxkdXM9ITAsQS5BbGV4YW5kcmlhPSEwLEEuQWxnZXJpYW49ITAsQVsiQW1lcmljYW4gVHlwZXdyaXRlciJdPSEwLEEuQW50aXF1YT0hMCxBLkFwZXg9ITAsQS5Bcm5vPSEwLEEuQXN0ZXI9ITAsQS5BdXJvcmE9ITAsQS5CYXNrZXJ2aWxsZT0hMCxBLkJlbGw9ITAsQS5CZW1ibz0hMCxBWyJCZW1ibyBTY2hvb2xib29rIl09ITAsQS5CZW5ndWlhdD0hMCxBWyJCZXJrZWxleSBPbGQgU3R5bGUiXT0hMCxBWyJCZXJuaGFyZCBNb2Rlcm4iXT0hMCxBWyJCZXJ0aG9sZCBDaXR5Il09ITAsQS5Cb2Rvbmk9ITAsQVsiQmF1ZXIgQm9kb25pIl09ITAsQVsiQm9vayBBbnRpcXVhIl09ITAsQS5Cb29rbWFuPSEwLEFbIkJvcmRlYXV4IFJvbWFuIl09ITAsQVsiQ2FsaWZvcm5pYW4gRkIiXT0hMCxBLkNhbGlzdG89ITAsQS5DYWx2ZXJ0PSEwLEEuQ2FwaXRhbHM9ITAsQS5DYW1icmlhPSEwLEEuQ2FydGllcj0hMCxBLkNhc2xvbj0hMCxBLkNhdHVsbD0hMCxBLkNlbnRhdXI9ITAsQVsiQ2VudHVyeSBPbGQgU3R5bGUiXT0hMCxBWyJDZW50dXJ5IFNjaG9vbGJvb2siXT0hMCxBLkNoYXBhcnJhbD0hMCxBWyJDaGFyaXMgU0lMIl09ITAsQS5DaGVsdGVuaGFtPSEwLEFbIkNob2xsYSBTbGFiIl09ITAsQS5DbGFyZW5kb249ITAsQS5DbGVhcmZhY2U9ITAsQS5Db2NoaW49ITAsQS5Db2xvbm5hPSEwLEFbIkNvbXB1dGVyIE1vZGVybiJdPSEwLEFbIkNvbmNyZXRlIFJvbWFuIl09ITAsQS5Db25zdGFudGlhPSEwLEFbIkNvb3BlciBCbGFjayJdPSEwLEEuQ29yb25hPSEwLEEuRWNvdHlwZT0hMCxBLkVneXB0aWVubmU9ITAsQS5FbGVwaGFudD0hMCxBLkV4Y2Vsc2lvcj0hMCxBLkZhaXJmaWVsZD0hMCxBWyJGRiBTY2FsYSJdPSEwLEEuRm9sa2FyZD0hMCxBLkZvb3RsaWdodD0hMCxBLkZyZWVTZXJpZj0hMCxBWyJGcml6IFF1YWRyYXRhIl09ITAsQS5HYXJhbW9uZD0hMCxBLkdlbnRpdW09ITAsQS5HZW9yZ2lhPSEwLEEuR2xvdWNlc3Rlcj0hMCxBWyJHb3VkeSBPbGQgU3R5bGUiXT0hMCxBWyJHb3VkeSBTY2hvb2xib29rIl09ITAsQVsiR291ZHkgUHJvIEZvbnQiXT0hMCxBLkdyYW5qb249ITAsQVsiR3VhcmRpYW4gRWd5cHRpYW4iXT0hMCxBLkhlYXRoZXI9ITAsQS5IZXJjdWxlcz0hMCxBWyJIaWdoIFRvd2VyIFRleHQiXT0hMCxBLkhpcm9zaGlnZT0hMCxBWyJIb2VmbGVyIFRleHQiXT0hMCxBWyJIdW1hbmEgU2VyaWYiXT0hMCxBLkltcHJpbnQ9ITAsQVsiSW9uaWMgTm8uIDUiXT0hMCxBLkphbnNvbj0hMCxBLkpvYW5uYT0hMCxBLktvcmlubmE9ITAsQS5MZXhpY29uPSEwLEEuTGliZXJhdGlvblNlcmlmPSEwLEFbIkxpYmVyYXRpb24gU2VyaWYiXT0hMCxBWyJMaW51eCBMaWJlcnRpbmUiXT0hMCxBLkxpdGVyYXR1cm5heWE9ITAsQS5MdWNpZGE9ITAsQVsiTHVjaWRhIEJyaWdodCJdPSEwLEEuTWVsaW9yPSEwLEEuTWVtcGhpcz0hMCxBLk1pbGxlcj0hMCxBLk1pbmlvbj0hMCxBLk1vZGVybj0hMCxBWyJNb25hIExpc2EiXT0hMCxBWyJNcnMgRWF2ZXMiXT0hMCxBWyJNUyBTZXJpZiJdPSEwLEFbIk11c2VvIFNsYWIiXT0hMCxBWyJOZXcgWW9yayJdPSEwLEFbIk5pbWJ1cyBSb21hbiJdPSEwLEFbIk5QUyBSYXdsaW5zb24gUm9hZHdheSJdPSEwLEEuTnVwdGlhbFNjcmlwdD0hMCxBLlBhbGF0aW5vPSEwLEEuUGVycGV0dWE9ITAsQS5QbGFudGluPSEwLEFbIlBsYW50aW4gU2Nob29sYm9vayJdPSEwLEEuUGxheWJpbGw9ITAsQVsiUG9vciBSaWNoYXJkIl09ITAsQVsiUmF3bGluc29uIFJvYWR3YXkiXT0hMCxBLlJlbmF1bHQ9ITAsQS5SZXF1aWVtPSEwLEEuUm9ja3dlbGw9ITAsQS5Sb21hbj0hMCxBWyJSb3RpcyBTZXJpZiJdPSEwLEEuU2Fib249ITAsQS5TY2FsYT0hMCxBLlNlYWd1bGw9ITAsQS5TaXN0aW5hPSEwLEEuU291dmVuaXI9ITAsQS5TVElYPSEwLEFbIlN0b25lIEluZm9ybWFsIl09ITAsQVsiU3RvbmUgU2VyaWYiXT0hMCxBLlN5bGZhZW49ITAsQS5UaW1lcz0hMCxBLlRyYWphbj0hMCxBWyJUcmluaXTDqSJdPSEwLEFbIlRydW1wIE1lZGlhZXZhbCJdPSEwLEEuVXRvcGlhPSEwLEFbIlZhbGUgVHlwZSJdPSEwLEFbIkJpdHN0cmVhbSBWZXJhIl09ITAsQVsiVmVyYSBTZXJpZiJdPSEwLEEuVmVyc2FpbGxlcz0hMCxBLldhbnRlZD0hMCxBLldlaXNzPSEwLEFbIldpZGUgTGF0aW4iXT0hMCxBLldpbmRzb3I9ITAsQS5YSVRTPSEwfSkpLERhPWJBKChmdW5jdGlvbihBKXtBLkRpbmdiYXRzPSEwLEEuU3ltYm9sPSEwLEEuWmFwZkRpbmdiYXRzPSEwLEEuV2luZ2RpbmdzPSEwLEFbIldpbmdkaW5ncy1Cb2xkIl09ITAsQVsiV2luZ2RpbmdzLVJlZ3VsYXIiXT0hMH0pKSxiYT1iQSgoZnVuY3Rpb24oQSl7QVsyXT0xMCxBWzNdPTMyLEFbNF09MzMsQVs1XT0zNCxBWzZdPTM1LEFbN109MzYsQVs4XT0zNyxBWzldPTM4LEFbMTBdPTM5LEFbMTFdPTQwLEFbMTJdPTQxLEFbMTNdPTQyLEFbMTRdPTQzLEFbMTVdPTQ0LEFbMTZdPTQ1LEFbMTddPTQ2LEFbMThdPTQ3LEFbMTldPTQ4LEFbMjBdPTQ5LEFbMjFdPTUwLEFbMjJdPTUxLEFbMjNdPTUyLEFbMjRdPTUzLEFbMjVdPTU0LEFbMjZdPTU1LEFbMjddPTU2LEFbMjhdPTU3LEFbMjldPTU4LEFbMzBdPTg5NCxBWzMxXT02MCxBWzMyXT02MSxBWzMzXT02MixBWzM0XT02MyxBWzM1XT02NCxBWzM2XT02NSxBWzM3XT02NixBWzM4XT02NyxBWzM5XT02OCxBWzQwXT02OSxBWzQxXT03MCxBWzQyXT03MSxBWzQzXT03MixBWzQ0XT03MyxBWzQ1XT03NCxBWzQ2XT03NSxBWzQ3XT03NixBWzQ4XT03NyxBWzQ5XT03OCxBWzUwXT03OSxBWzUxXT04MCxBWzUyXT04MSxBWzUzXT04MixBWzU0XT04MyxBWzU1XT04NCxBWzU2XT04NSxBWzU3XT04NixBWzU4XT04NyxBWzU5XT04OCxBWzYwXT04OSxBWzYxXT05MCxBWzYyXT05MSxBWzYzXT05MixBWzY0XT05MyxBWzY1XT05NCxBWzY2XT05NSxBWzY3XT05NixBWzY4XT05NyxBWzY5XT05OCxBWzcwXT05OSxBWzcxXT0xMDAsQVs3Ml09MTAxLEFbNzNdPTEwMixBWzc0XT0xMDMsQVs3NV09MTA0LEFbNzZdPTEwNSxBWzc3XT0xMDYsQVs3OF09MTA3LEFbNzldPTEwOCxBWzgwXT0xMDksQVs4MV09MTEwLEFbODJdPTExMSxBWzgzXT0xMTIsQVs4NF09MTEzLEFbODVdPTExNCxBWzg2XT0xMTUsQVs4N109MTE2LEFbODhdPTExNyxBWzg5XT0xMTgsQVs5MF09MTE5LEFbOTFdPTEyMCxBWzkyXT0xMjEsQVs5M109MTIyLEFbOTRdPTEyMyxBWzk1XT0xMjQsQVs5Nl09MTI1LEFbOTddPTEyNixBWzk4XT0xOTYsQVs5OV09MTk3LEFbMTAwXT0xOTksQVsxMDFdPTIwMSxBWzEwMl09MjA5LEFbMTAzXT0yMTQsQVsxMDRdPTIyMCxBWzEwNV09MjI1LEFbMTA2XT0yMjQsQVsxMDddPTIyNixBWzEwOF09MjI4LEFbMTA5XT0yMjcsQVsxMTBdPTIyOSxBWzExMV09MjMxLEFbMTEyXT0yMzMsQVsxMTNdPTIzMixBWzExNF09MjM0LEFbMTE1XT0yMzUsQVsxMTZdPTIzNyxBWzExN109MjM2LEFbMTE4XT0yMzgsQVsxMTldPTIzOSxBWzEyMF09MjQxLEFbMTIxXT0yNDMsQVsxMjJdPTI0MixBWzEyM109MjQ0LEFbMTI0XT0yNDYsQVsxMjVdPTI0NSxBWzEyNl09MjUwLEFbMTI3XT0yNDksQVsxMjhdPTI1MSxBWzEyOV09MjUyLEFbMTMwXT04MjI0LEFbMTMxXT0xNzYsQVsxMzJdPTE2MixBWzEzM109MTYzLEFbMTM0XT0xNjcsQVsxMzVdPTgyMjYsQVsxMzZdPTE4MixBWzEzN109MjIzLEFbMTM4XT0xNzQsQVsxMzldPTE2OSxBWzE0MF09ODQ4MixBWzE0MV09MTgwLEFbMTQyXT0xNjgsQVsxNDNdPTg4MDAsQVsxNDRdPTE5OCxBWzE0NV09MjE2LEFbMTQ2XT04NzM0LEFbMTQ3XT0xNzcsQVsxNDhdPTg4MDQsQVsxNDldPTg4MDUsQVsxNTBdPTE2NSxBWzE1MV09MTgxLEFbMTUyXT04NzA2LEFbMTUzXT04NzIxLEFbMTU0XT04NzE5LEFbMTU2XT04NzQ3LEFbMTU3XT0xNzAsQVsxNThdPTE4NixBWzE1OV09ODQ4NixBWzE2MF09MjMwLEFbMTYxXT0yNDgsQVsxNjJdPTE5MSxBWzE2M109MTYxLEFbMTY0XT0xNzIsQVsxNjVdPTg3MzAsQVsxNjZdPTQwMixBWzE2N109ODc3NixBWzE2OF09ODcxMCxBWzE2OV09MTcxLEFbMTcwXT0xODcsQVsxNzFdPTgyMzAsQVsxNzldPTgyMjAsQVsxODBdPTgyMjEsQVsxODFdPTgyMTYsQVsxODJdPTgyMTcsQVsyMDBdPTE5MyxBWzIwM109MjA1LEFbMjA3XT0yMTEsQVsyMTBdPTIxOCxBWzIyM109NzExLEFbMjI0XT0zMjEsQVsyMjVdPTMyMixBWzIyNl09MzUyLEFbMjI3XT0zNTMsQVsyMjhdPTM4MSxBWzIyOV09MzgyLEFbMjMzXT0yMjEsQVsyMzRdPTI1MyxBWzI1Ml09MjYzLEFbMjUzXT0yNjgsQVsyNTRdPTI2OSxBWzI1OF09MjU4LEFbMjYwXT0yNjAsQVsyNjFdPTI2MSxBWzI2NV09MjgwLEFbMjY2XT0yODEsQVsyNjddPTI4MixBWzI2OF09MjgzLEFbMjY5XT0zMTMsQVsyNzVdPTMyMyxBWzI3Nl09MzI0LEFbMjc4XT0zMjgsQVsyODNdPTM0NCxBWzI4NF09MzQ1LEFbMjg1XT0zNDYsQVsyODZdPTM0NyxBWzI5Ml09MzY3LEFbMjk1XT0zNzcsQVsyOTZdPTM3OCxBWzI5OF09MzgwLEFbMzA1XT05NjMsQVszMDZdPTk2NCxBWzMwN109OTY2LEFbMzA4XT04MjE1LEFbMzA5XT04MjUyLEFbMzEwXT04MzE5LEFbMzExXT04MzU5LEFbMzEyXT04NTkyLEFbMzEzXT04NTkzLEFbMzM3XT05NTUyLEFbNDkzXT0xMDM5LEFbNDk0XT0xMDQwLEFbNjcyXT0xNDg4LEFbNjczXT0xNDg5LEFbNjc0XT0xNDkwLEFbNjc1XT0xNDkxLEFbNjc2XT0xNDkyLEFbNjc3XT0xNDkzLEFbNjc4XT0xNDk0LEFbNjc5XT0xNDk1LEFbNjgwXT0xNDk2LEFbNjgxXT0xNDk3LEFbNjgyXT0xNDk4LEFbNjgzXT0xNDk5LEFbNjg0XT0xNTAwLEFbNjg1XT0xNTAxLEFbNjg2XT0xNTAyLEFbNjg3XT0xNTAzLEFbNjg4XT0xNTA0LEFbNjg5XT0xNTA1LEFbNjkwXT0xNTA2LEFbNjkxXT0xNTA3LEFbNjkyXT0xNTA4LEFbNjkzXT0xNTA5LEFbNjk0XT0xNTEwLEFbNjk1XT0xNTExLEFbNjk2XT0xNTEyLEFbNjk3XT0xNTEzLEFbNjk4XT0xNTE0LEFbNzA1XT0xNTI0LEFbNzA2XT04MzYyLEFbNzEwXT02NDI4OCxBWzcxMV09NjQyOTgsQVs3NTldPTE2MTcsQVs3NjFdPTE3NzYsQVs3NjNdPTE3NzgsQVs3NzVdPTE2NTIsQVs3NzddPTE3NjQsQVs3NzhdPTE3ODAsQVs3NzldPTE3ODEsQVs3ODBdPTE3ODIsQVs3ODJdPTc3MSxBWzc4M109NjQ3MjYsQVs3ODZdPTgzNjMsQVs3ODhdPTg1MzIsQVs3OTBdPTc2OCxBWzc5MV09NzY5LEFbNzkyXT03NjgsQVs3OTVdPTgwMyxBWzc5N109NjQzMzYsQVs3OThdPTY0MzM3LEFbNzk5XT02NDM0MixBWzgwMF09NjQzNDMsQVs4MDFdPTY0MzQ0LEFbODAyXT02NDM0NSxBWzgwM109NjQzNjIsQVs4MDRdPTY0MzYzLEFbODA1XT02NDM2NCxBWzI0MjRdPTc4MjEsQVsyNDI1XT03ODIyLEFbMjQyNl09NzgyMyxBWzI0MjddPTc4MjQsQVsyNDI4XT03ODI1LEFbMjQyOV09NzgyNixBWzI0MzBdPTc4MjcsQVsyNDMzXT03NjgyLEFbMjY3OF09ODA0NSxBWzI2NzldPTgwNDYsQVsyODMwXT0xNTUyLEFbMjgzOF09Njg2LEFbMjg0MF09NzUxLEFbMjg0Ml09NzUzLEFbMjg0M109NzU0LEFbMjg0NF09NzU1LEFbMjg0Nl09NzU3LEFbMjg1Nl09NzY3LEFbMjg1N109ODQ4LEFbMjg1OF09ODQ5LEFbMjg2Ml09ODUzLEFbMjg2M109ODU0LEFbMjg2NF09ODU1LEFbMjg2NV09ODYxLEFbMjg2Nl09ODYyLEFbMjkwNl09NzQ2MCxBWzI5MDhdPTc0NjIsQVsyOTA5XT03NDYzLEFbMjkxMF09NzQ2NCxBWzI5MTJdPTc0NjYsQVsyOTEzXT03NDY3LEFbMjkxNF09NzQ2OCxBWzI5MTZdPTc0NzAsQVsyOTE3XT03NDcxLEFbMjkxOF09NzQ3MixBWzI5MjBdPTc0NzQsQVsyOTIxXT03NDc1LEFbMjkyMl09NzQ3NixBWzI5MjRdPTc0NzgsQVsyOTI1XT03NDc5LEFbMjkyNl09NzQ4MCxBWzI5MjhdPTc0ODIsQVsyOTI5XT03NDgzLEFbMjkzMF09NzQ4NCxBWzI5MzJdPTc0ODYsQVsyOTMzXT03NDg3LEFbMjkzNF09NzQ4OCxBWzI5MzZdPTc0OTAsQVsyOTM3XT03NDkxLEFbMjkzOF09NzQ5MixBWzI5NDBdPTc0OTQsQVsyOTQxXT03NDk1LEFbMjk0Ml09NzQ5NixBWzI5NDRdPTc0OTgsQVsyOTQ2XT03NTAwLEFbMjk0OF09NzUwMixBWzI5NTBdPTc1MDQsQVsyOTUxXT03NTA1LEFbMjk1Ml09NzUwNixBWzI5NTRdPTc1MDgsQVsyOTU1XT03NTA5LEFbMjk1Nl09NzUxMCxBWzI5NThdPTc1MTIsQVsyOTU5XT03NTEzLEFbMjk2MF09NzUxNCxBWzI5NjJdPTc1MTYsQVsyOTYzXT03NTE3LEFbMjk2NF09NzUxOCxBWzI5NjZdPTc1MjAsQVsyOTY3XT03NTIxLEFbMjk2OF09NzUyMixBWzI5NzBdPTc1MjQsQVsyOTcxXT03NTI1LEFbMjk3Ml09NzUyNixBWzI5NzRdPTc1MjgsQVsyOTc1XT03NTI5LEFbMjk3Nl09NzUzMCxBWzI5NzhdPTE1MzcsQVsyOTc5XT0xNTM4LEFbMjk4MF09MTUzOSxBWzI5ODJdPTE1NDksQVsyOTgzXT0xNTUxLEFbMjk4NF09MTU1MixBWzI5ODZdPTE1NTQsQVsyOTg3XT0xNTU1LEFbMjk4OF09MTU1NixBWzI5OTBdPTE2MjMsQVsyOTkxXT0xNjI0LEFbMjk5NV09MTc3NSxBWzI5OTldPTE3OTEsQVszMDAyXT02NDI5MCxBWzMwMDNdPTY0MjkxLEFbMzAwNF09NjQyOTIsQVszMDA2XT02NDI5NCxBWzMwMDddPTY0Mjk1LEFbMzAwOF09NjQyOTYsQVszMDExXT0xOTAwLEFbMzAxNF09ODIyMyxBWzMwMTVdPTgyNDQsQVszMDE3XT03NTMyLEFbMzAxOF09NzUzMyxBWzMwMTldPTc1MzQsQVszMDc1XT03NTkwLEFbMzA3Nl09NzU5MSxBWzMwNzldPTc1OTQsQVszMDgwXT03NTk1LEFbMzA4M109NzU5OCxBWzMwODRdPTc1OTksQVszMDg3XT03NjAyLEFbMzA4OF09NzYwMyxBWzMwOTFdPTc2MDYsQVszMDkyXT03NjA3LEFbMzA5NV09NzYxMCxBWzMwOTZdPTc2MTEsQVszMDk5XT03NjE0LEFbMzEwMF09NzYxNSxBWzMxMDNdPTc2MTgsQVszMTA0XT03NjE5LEFbMzEwN109ODMzNyxBWzMxMDhdPTgzMzgsQVszMTE2XT0xODg0LEFbMzExOV09MTg4NSxBWzMxMjBdPTE4ODUsQVszMTIzXT0xODg2LEFbMzEyNF09MTg4NixBWzMxMjddPTE4ODcsQVszMTI4XT0xODg3LEFbMzEzMV09MTg4OCxBWzMxMzJdPTE4ODgsQVszMTM1XT0xODg5LEFbMzEzNl09MTg4OSxBWzMxMzldPTE4OTAsQVszMTQwXT0xODkwLEFbMzE0M109MTg5MSxBWzMxNDRdPTE4OTEsQVszMTQ3XT0xODkyLEFbMzE0OF09MTg5MixBWzMxNTNdPTU4MCxBWzMxNTRdPTU4MSxBWzMxNTddPTU4NCxBWzMxNThdPTU4NSxBWzMxNjFdPTU4OCxBWzMxNjJdPTU4OSxBWzMxNjVdPTg5MSxBWzMxNjZdPTg5MixBWzMxNjldPTEyNzQsQVszMTcwXT0xMjc1LEFbMzE3M109MTI3OCxBWzMxNzRdPTEyNzksQVszMTgxXT03NjIyLEFbMzE4Ml09NzYyMyxBWzMyODJdPTExNzk5LEFbMzMxNl09NTc4LEFbMzM3OV09NDI3ODUsQVszMzkzXT0xMTU5LEFbMzQxNl09ODM3N30pKSxrYT1iQSgoZnVuY3Rpb24oQSl7QVsyMjddPTMyMixBWzI2NF09MjYxLEFbMjkxXT0zNDZ9KSksRmE9YkEoKGZ1bmN0aW9uKEEpe0FbMV09MzIsQVs0XT02NSxBWzVdPTE5MixBWzZdPTE5MyxBWzldPTE5NixBWzE3XT02NixBWzE4XT02NyxBWzIxXT0yNjgsQVsyNF09NjgsQVsyOF09NjksQVsyOV09MjAwLEFbMzBdPTIwMSxBWzMyXT0yODIsQVszOF09NzAsQVszOV09NzEsQVs0NF09NzIsQVs0N109NzMsQVs0OF09MjA0LEFbNDldPTIwNSxBWzU4XT03NCxBWzYwXT03NSxBWzYyXT03NixBWzY4XT03NyxBWzY5XT03OCxBWzc1XT03OSxBWzc2XT0yMTAsQVs4MF09MjE0LEFbODddPTgwLEFbODldPTgxLEFbOTBdPTgyLEFbOTJdPTM0NCxBWzk0XT04MyxBWzk3XT0zNTIsQVsxMDBdPTg0LEFbMTA0XT04NSxBWzEwOV09MjIwLEFbMTE1XT04NixBWzExNl09ODcsQVsxMjFdPTg4LEFbMTIyXT04OSxBWzEyNF09MjIxLEFbMTI3XT05MCxBWzEyOV09MzgxLEFbMjU4XT05NyxBWzI1OV09MjI0LEFbMjYwXT0yMjUsQVsyNjNdPTIyOCxBWzI2OF09MjYxLEFbMjcxXT05OCxBWzI3Ml09OTksQVsyNzNdPTI2MyxBWzI3NV09MjY5LEFbMjgyXT0xMDAsQVsyODZdPTEwMSxBWzI4N109MjMyLEFbMjg4XT0yMzMsQVsyOTBdPTI4MyxBWzI5NV09MjgxLEFbMjk2XT0xMDIsQVszMzZdPTEwMyxBWzM0Nl09MTA0LEFbMzQ5XT0xMDUsQVszNTBdPTIzNixBWzM1MV09MjM3LEFbMzYxXT0xMDYsQVszNjRdPTEwNyxBWzM2N109MTA4LEFbMzcxXT0zMjIsQVszNzNdPTEwOSxBWzM3NF09MTEwLEFbMzgxXT0xMTEsQVszODJdPTI0MixBWzM4M109MjQzLEFbMzg2XT0yNDYsQVszOTNdPTExMixBWzM5NV09MTEzLEFbMzk2XT0xMTQsQVszOThdPTM0NSxBWzQwMF09MTE1LEFbNDAxXT0zNDcsQVs0MDNdPTM1MyxBWzQxMF09MTE2LEFbNDM3XT0xMTcsQVs0NDJdPTI1MixBWzQ0OF09MTE4LEFbNDQ5XT0xMTksQVs0NTRdPTEyMCxBWzQ1NV09MTIxLEFbNDU3XT0yNTMsQVs0NjBdPTEyMixBWzQ2Ml09MzgyLEFbNDYzXT0zODAsQVs4NTNdPTQ0LEFbODU1XT01OCxBWzg1Nl09NDYsQVs4NzZdPTQ3LEFbODc4XT00NSxBWzg4Ml09NDUsQVs4OTRdPTQwLEFbODk1XT00MSxBWzg5Nl09OTEsQVs4OTddPTkzLEFbOTIzXT02NCxBWzEwMDRdPTQ4LEFbMTAwNV09NDksQVsxMDA2XT01MCxBWzEwMDddPTUxLEFbMTAwOF09NTIsQVsxMDA5XT01MyxBWzEwMTBdPTU0LEFbMTAxMV09NTUsQVsxMDEyXT01NixBWzEwMTNdPTU3LEFbMTA4MV09MzcsQVsxMDg1XT00MyxBWzEwODZdPTQ1fSkpO2Z1bmN0aW9uIFNhKEEpe2NvbnN0IGU9ZGEoQSk7cmV0dXJuIHBhKClbZV19ZnVuY3Rpb24gUmEoQSl7Y29uc3QgZT1kYShBKTtyZXR1cm4hIShwYSgpW2VdfHx5YSgpW2VdfHx3YSgpW2VdfHxEYSgpW2VdKX1jbGFzcyBHYXtjb25zdHJ1Y3RvcihBPVtdKXt0aGlzLl9tYXA9QX1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuX21hcC5sZW5ndGh9Zm9yRWFjaChBKXtmb3IoY29uc3QgZSBpbiB0aGlzLl9tYXApQShlLHRoaXMuX21hcFtlXS5jaGFyQ29kZUF0KDApKX1oYXMoQSl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX21hcFtBXX1nZXQoQSl7cmV0dXJuIHRoaXMuX21hcFtBXX1jaGFyQ29kZU9mKEEpe2NvbnN0IGU9dGhpcy5fbWFwO2lmKGUubGVuZ3RoPD02NTUzNilyZXR1cm4gZS5pbmRleE9mKEEpO2Zvcihjb25zdCB0IGluIGUpaWYoZVt0XT09PUEpcmV0dXJuIDB8dDtyZXR1cm4tMX1hbWVuZChBKXtmb3IoY29uc3QgZSBpbiBBKXRoaXMuX21hcFtlXT1BW2VdfX1jbGFzcyBOYXtjb25zdHJ1Y3RvcihBLGUpe3RoaXMuZmlyc3RDaGFyPUEsdGhpcy5sYXN0Q2hhcj1lfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5sYXN0Q2hhcisxLXRoaXMuZmlyc3RDaGFyfWZvckVhY2goQSl7Zm9yKGxldCBlPXRoaXMuZmlyc3RDaGFyLHQ9dGhpcy5sYXN0Q2hhcjtlPD10O2UrKylBKGUsZSl9aGFzKEEpe3JldHVybiB0aGlzLmZpcnN0Q2hhcjw9QSYmQTw9dGhpcy5sYXN0Q2hhcn1nZXQoQSl7aWYodGhpcy5maXJzdENoYXI8PUEmJkE8PXRoaXMubGFzdENoYXIpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoQSl9Y2hhckNvZGVPZihBKXtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihBKSYmQT49dGhpcy5maXJzdENoYXImJkE8PXRoaXMubGFzdENoYXI/QTotMX1hbWVuZChBKXtNKCJTaG91bGQgbm90IGNhbGwgYW1lbmQoKSIpfX1jbGFzcyB4YXtjb25zdHJ1Y3RvcihBLGUpe3RoaXMucHJvcGVydGllcz1lO2NvbnN0IHQ9bmV3IFdpKEEsZSxsYSk7dGhpcy5jZmY9dC5wYXJzZSgpLHRoaXMuY2ZmLmR1cGxpY2F0ZUZpcnN0R2x5cGgoKTtjb25zdCBpPW5ldyBuYSh0aGlzLmNmZik7dGhpcy5zZWFjcz10aGlzLmNmZi5zZWFjczt0cnl7dGhpcy5kYXRhPWkuY29tcGlsZSgpfWNhdGNoe1UoIkZhaWxlZCB0byBjb21waWxlIGZvbnQgIitlLmxvYWRlZE5hbWUpLHRoaXMuZGF0YT1BfXRoaXMuX2NyZWF0ZUJ1aWx0SW5FbmNvZGluZygpfWdldCBudW1HbHlwaHMoKXtyZXR1cm4gdGhpcy5jZmYuY2hhclN0cmluZ3MuY291bnR9Z2V0Q2hhcnNldCgpe3JldHVybiB0aGlzLmNmZi5jaGFyc2V0LmNoYXJzZXR9Z2V0R2x5cGhNYXBwaW5nKCl7Y29uc3QgQT10aGlzLmNmZixlPXRoaXMucHJvcGVydGllcyx7Y2lkVG9HaWRNYXA6dCxjTWFwOml9PWUsYT1BLmNoYXJzZXQuY2hhcnNldDtsZXQgcyxuO2lmKGUuY29tcG9zaXRlKXtsZXQgZSxyO2lmKHQ/Lmxlbmd0aD4wKXtlPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCBBPTAsaT10Lmxlbmd0aDtBPGk7QSsrKXtjb25zdCBpPXRbQV07dm9pZCAwIT09aSYmKGVbaV09QSl9fWlmKHM9T2JqZWN0LmNyZWF0ZShudWxsKSxBLmlzQ0lERm9udClmb3Iobj0wO248YS5sZW5ndGg7bisrKXtjb25zdCBBPWFbbl07cj1pLmNoYXJDb2RlT2YoQSksdm9pZCAwIT09ZT8uW3JdJiYocj1lW3JdKSxzW3JdPW59ZWxzZSBmb3Iobj0wO248QS5jaGFyU3RyaW5ncy5jb3VudDtuKyspcj1pLmNoYXJDb2RlT2Yobiksc1tyXT1uO3JldHVybiBzfWxldCByPUEuZW5jb2Rpbmc/QS5lbmNvZGluZy5lbmNvZGluZzpudWxsO3JldHVybiBlLmlzSW50ZXJuYWxGb250JiYocj1lLmRlZmF1bHRFbmNvZGluZykscz11YShlLHIsYSksc31oYXNHbHlwaElkKEEpe3JldHVybiB0aGlzLmNmZi5oYXNHbHlwaElkKEEpfV9jcmVhdGVCdWlsdEluRW5jb2RpbmcoKXtjb25zdHtjaGFyc2V0OkEsZW5jb2Rpbmc6ZX09dGhpcy5jZmY7aWYoIUF8fCFlKXJldHVybjtjb25zdCB0PUEuY2hhcnNldCxpPWUuZW5jb2RpbmcsYT1bXTtmb3IoY29uc3QgQSBpbiBpKXtjb25zdCBlPWlbQV07aWYoZT49MCl7Y29uc3QgaT10W2VdO2kmJihhW0FdPWkpfX1hLmxlbmd0aD4wJiYodGhpcy5wcm9wZXJ0aWVzLmJ1aWx0SW5FbmNvZGluZz1hKX19ZnVuY3Rpb24gVWEoQSxlKXtyZXR1cm4oQVtlXTw8MjR8QVtlKzFdPDwxNnxBW2UrMl08PDh8QVtlKzNdKT4+PjB9ZnVuY3Rpb24gTWEoQSxlKXtyZXR1cm4gQVtlXTw8OHxBW2UrMV19ZnVuY3Rpb24gTGEoQSxlKXtyZXR1cm4oQVtlXTw8MjR8QVtlKzFdPDwxNik+PjE2fWZ1bmN0aW9uIEphKEEsZSl7cmV0dXJuIEFbZV08PDI0Pj4yNH1mdW5jdGlvbiBIYShBLGUpe3JldHVybiBMYShBLGUpLzE2Mzg0fWZ1bmN0aW9uIFlhKEEpe2NvbnN0IGU9QS5sZW5ndGg7bGV0IHQ9MzI3Njg7cmV0dXJuIGU8MTI0MD90PTEwNzplPDMzOTAwJiYodD0xMTMxKSx0fWZ1bmN0aW9uIHZhKEEsZSx0KXtjb25zdCBpPTE9PT1NYShBLGUrMik/VWEoQSxlKzgpOlVhKEEsZSsxNiksYT1NYShBLGUraSk7bGV0IHMsbixyO2lmKDQ9PT1hKXtNYShBLGUraSsyKTtjb25zdCB0PU1hKEEsZStpKzYpPj4xO2ZvcihuPWUraSsxNCxzPVtdLHI9MDtyPHQ7cisrLG4rPTIpc1tyXT17ZW5kOk1hKEEsbil9O2ZvcihuKz0yLHI9MDtyPHQ7cisrLG4rPTIpc1tyXS5zdGFydD1NYShBLG4pO2ZvcihyPTA7cjx0O3IrKyxuKz0yKXNbcl0uaWREZWx0YT1NYShBLG4pO2ZvcihyPTA7cjx0O3IrKyxuKz0yKXtsZXQgZT1NYShBLG4pO2lmKDAhPT1lKXtzW3JdLmlkcz1bXTtmb3IobGV0IHQ9MCxpPXNbcl0uZW5kLXNbcl0uc3RhcnQrMTt0PGk7dCsrKXNbcl0uaWRzW3RdPU1hKEEsbitlKSxlKz0yfX1yZXR1cm4gc31pZigxMj09PWEpe2NvbnN0IHQ9VWEoQSxlK2krMTIpO2ZvcihuPWUraSsxNixzPVtdLHI9MDtyPHQ7cisrKWU9VWEoQSxuKSxzLnB1c2goe3N0YXJ0OmUsZW5kOlVhKEEsbis0KSxpZERlbHRhOlVhKEEsbis4KS1lfSksbis9MTI7cmV0dXJuIHN9dGhyb3cgbmV3IFcoYHVuc3VwcG9ydGVkIGNtYXA6ICR7YX1gKX1mdW5jdGlvbiBLYShBLGUsdCxpKXtjb25zdCBhPW5ldyBXaShuZXcgZ2UoQSxlLHQtZSkse30saSkucGFyc2UoKTtyZXR1cm57Z2x5cGhzOmEuY2hhclN0cmluZ3Mub2JqZWN0cyxzdWJyczphLnRvcERpY3QucHJpdmF0ZURpY3Q/LnN1YnJzSW5kZXg/Lm9iamVjdHMsZ3N1YnJzOmEuZ2xvYmFsU3VickluZGV4Py5vYmplY3RzLGlzQ0ZGQ0lERm9udDphLmlzQ0lERm9udCxmZFNlbGVjdDphLmZkU2VsZWN0LGZkQXJyYXk6YS5mZEFycmF5fX1mdW5jdGlvbiBxYShBLGUpe2NvbnN0IHQ9ZS5jb2RlUG9pbnRBdCgwKTtsZXQgaT0wLGE9MCxzPUEubGVuZ3RoLTE7Zm9yKDthPHM7KXtjb25zdCBlPWErcysxPj4xO3Q8QVtlXS5zdGFydD9zPWUtMTphPWV9cmV0dXJuIEFbYV0uc3RhcnQ8PXQmJnQ8PUFbYV0uZW5kJiYoaT1BW2FdLmlkRGVsdGErKEFbYV0uaWRzP0FbYV0uaWRzW3QtQVthXS5zdGFydF06dCkmNjU1MzUpLHtjaGFyQ29kZTp0LGdseXBoSWQ6aX19ZnVuY3Rpb24gVGEoQSxlLHQpe2Z1bmN0aW9uIGkoQSx0KXtlLmFkZCgxLFtBLHRdKX1mdW5jdGlvbiBhKEEsdCl7ZS5hZGQoMixbQSx0XSl9ZnVuY3Rpb24gcyhBLHQsaSxhKXtlLmFkZCgzLFtBLHQsaSxhXSl9bGV0IG49MDtjb25zdCByPUxhKEEsbik7bGV0IGcsbz0wLEk9MDtpZihuKz0xMCxyPDApZG97Zz1NYShBLG4pO2NvbnN0IGk9TWEoQSxuKzIpO2xldCBhLHM7bis9NCwxJmc/KDImZz8oYT1MYShBLG4pLHM9TGEoQSxuKzIpKTooYT1NYShBLG4pLHM9TWEoQSxuKzIpKSxuKz00KToyJmc/KGE9SmEoQSxuKyspLHM9SmEoQSxuKyspKTooYT1BW24rK10scz1BW24rK10pLDImZz8obz1hLEk9cyk6KG89MCxJPTApO2xldCByPTEsYz0xLGg9MCxDPTA7OCZnPyhyPWM9SGEoQSxuKSxuKz0yKTo2NCZnPyhyPUhhKEEsbiksYz1IYShBLG4rMiksbis9NCk6MTI4JmcmJihyPUhhKEEsbiksaD1IYShBLG4rMiksQz1IYShBLG4rNCksYz1IYShBLG4rNiksbis9OCk7Y29uc3QgQj10LmdseXBoc1tpXTtCJiYoZS5hZGQoNSksZS5hZGQoNyxbcixoLEMsYyxvLEldKSxUYShCLGUsdCksZS5hZGQoNCkpfXdoaWxlKDMyJmcpO2Vsc2V7Y29uc3QgZT1bXTtsZXQgdCxjO2Zvcih0PTA7dDxyO3QrKyllLnB1c2goTWEoQSxuKSksbis9MjtuKz0yK01hKEEsbik7Y29uc3QgaD1lLmF0KC0xKSsxLEM9W107Zm9yKDtDLmxlbmd0aDxoOyl7Zz1BW24rK107bGV0IGU9MTtmb3IoOCZnJiYoZSs9QVtuKytdKTtlLS0gPjA7KUMucHVzaCh7ZmxhZ3M6Z30pfWZvcih0PTA7dDxoO3QrKyl7c3dpdGNoKDE4JkNbdF0uZmxhZ3Mpe2Nhc2UgMDpvKz1MYShBLG4pLG4rPTI7YnJlYWs7Y2FzZSAyOm8tPUFbbisrXTticmVhaztjYXNlIDE4Om8rPUFbbisrXX1DW3RdLng9b31mb3IodD0wO3Q8aDt0Kyspe3N3aXRjaCgzNiZDW3RdLmZsYWdzKXtjYXNlIDA6SSs9TGEoQSxuKSxuKz0yO2JyZWFrO2Nhc2UgNDpJLT1BW24rK107YnJlYWs7Y2FzZSAzNjpJKz1BW24rK119Q1t0XS55PUl9bGV0IEI9MDtmb3Iobj0wO248cjtuKyspe2NvbnN0IEE9ZVtuXSxyPUMuc2xpY2UoQixBKzEpO2lmKDEmclswXS5mbGFncylyLnB1c2goclswXSk7ZWxzZSBpZigxJnIuYXQoLTEpLmZsYWdzKXIudW5zaGlmdChyLmF0KC0xKSk7ZWxzZXtjb25zdCBBPXtmbGFnczoxLHg6KHJbMF0ueCtyLmF0KC0xKS54KS8yLHk6KHJbMF0ueStyLmF0KC0xKS55KS8yfTtyLnVuc2hpZnQoQSksci5wdXNoKEEpfWZvcihpKHJbMF0ueCxyWzBdLnkpLHQ9MSxjPXIubGVuZ3RoO3Q8Yzt0KyspMSZyW3RdLmZsYWdzP2Eoclt0XS54LHJbdF0ueSk6MSZyW3QrMV0uZmxhZ3M/KHMoclt0XS54LHJbdF0ueSxyW3QrMV0ueCxyW3QrMV0ueSksdCsrKTpzKHJbdF0ueCxyW3RdLnksKHJbdF0ueCtyW3QrMV0ueCkvMiwoclt0XS55K3JbdCsxXS55KS8yKTtCPUErMX19fWZ1bmN0aW9uIFBhKEEsZSx0LGkpe2Z1bmN0aW9uIGEoQSx0KXtlLmFkZCgxLFtBLHRdKX1mdW5jdGlvbiBzKEEsdCl7ZS5hZGQoMixbQSx0XSl9ZnVuY3Rpb24gbihBLHQsaSxhLHMsbil7ZS5hZGQoMCxbQSx0LGksYSxzLG5dKX1jb25zdCByPVtdO2xldCBnPTAsbz0wLEk9MDshZnVuY3Rpb24gQShjKXtsZXQgaD0wO2Zvcig7aDxjLmxlbmd0aDspe2xldCBDLEIsbCxRLEUsdSxkLGYscCxtPSExLHk9Y1toKytdO3N3aXRjaCh5KXtjYXNlIDE6Y2FzZSAzOmNhc2UgMTg6Y2FzZSAyMzpJKz1yLmxlbmd0aD4+MSxtPSEwO2JyZWFrO2Nhc2UgNDpvKz1yLnBvcCgpLGEoZyxvKSxtPSEwO2JyZWFrO2Nhc2UgNTpmb3IoO3IubGVuZ3RoPjA7KWcrPXIuc2hpZnQoKSxvKz1yLnNoaWZ0KCkscyhnLG8pO2JyZWFrO2Nhc2UgNjpmb3IoO3IubGVuZ3RoPjAmJihnKz1yLnNoaWZ0KCkscyhnLG8pLDAhPT1yLmxlbmd0aCk7KW8rPXIuc2hpZnQoKSxzKGcsbyk7YnJlYWs7Y2FzZSA3OmZvcig7ci5sZW5ndGg+MCYmKG8rPXIuc2hpZnQoKSxzKGcsbyksMCE9PXIubGVuZ3RoKTspZys9ci5zaGlmdCgpLHMoZyxvKTticmVhaztjYXNlIDg6Zm9yKDtyLmxlbmd0aD4wOylDPWcrci5zaGlmdCgpLGw9bytyLnNoaWZ0KCksQj1DK3Iuc2hpZnQoKSxRPWwrci5zaGlmdCgpLGc9QityLnNoaWZ0KCksbz1RK3Iuc2hpZnQoKSxuKEMsbCxCLFEsZyxvKTticmVhaztjYXNlIDEwOmlmKGY9ci5wb3AoKSxwPW51bGwsdC5pc0NGRkNJREZvbnQpe2NvbnN0IEE9dC5mZFNlbGVjdC5nZXRGREluZGV4KGkpO2lmKEE+PTAmJkE8dC5mZEFycmF5Lmxlbmd0aCl7Y29uc3QgZT10LmZkQXJyYXlbQV07bGV0IGk7ZS5wcml2YXRlRGljdD8uc3VicnNJbmRleCYmKGk9ZS5wcml2YXRlRGljdC5zdWJyc0luZGV4Lm9iamVjdHMpLGkmJihmKz1ZYShpKSxwPWlbZl0pfWVsc2UgVSgiSW52YWxpZCBmZCBpbmRleCBmb3IgZ2x5cGggaW5kZXguIil9ZWxzZSBwPXQuc3VicnNbZit0LnN1YnJzQmlhc107cCYmQShwKTticmVhaztjYXNlIDExOnJldHVybjtjYXNlIDEyOnN3aXRjaCh5PWNbaCsrXSx5KXtjYXNlIDM0OkM9ZytyLnNoaWZ0KCksQj1DK3Iuc2hpZnQoKSxFPW8rci5zaGlmdCgpLGc9QityLnNoaWZ0KCksbihDLG8sQixFLGcsRSksQz1nK3Iuc2hpZnQoKSxCPUMrci5zaGlmdCgpLGc9QityLnNoaWZ0KCksbihDLEUsQixvLGcsbyk7YnJlYWs7Y2FzZSAzNTpDPWcrci5zaGlmdCgpLGw9bytyLnNoaWZ0KCksQj1DK3Iuc2hpZnQoKSxRPWwrci5zaGlmdCgpLGc9QityLnNoaWZ0KCksbz1RK3Iuc2hpZnQoKSxuKEMsbCxCLFEsZyxvKSxDPWcrci5zaGlmdCgpLGw9bytyLnNoaWZ0KCksQj1DK3Iuc2hpZnQoKSxRPWwrci5zaGlmdCgpLGc9QityLnNoaWZ0KCksbz1RK3Iuc2hpZnQoKSxuKEMsbCxCLFEsZyxvKSxyLnBvcCgpO2JyZWFrO2Nhc2UgMzY6Qz1nK3Iuc2hpZnQoKSxFPW8rci5zaGlmdCgpLEI9QytyLnNoaWZ0KCksdT1FK3Iuc2hpZnQoKSxnPUIrci5zaGlmdCgpLG4oQyxFLEIsdSxnLHUpLEM9ZytyLnNoaWZ0KCksQj1DK3Iuc2hpZnQoKSxkPXUrci5zaGlmdCgpLGc9QityLnNoaWZ0KCksbihDLHUsQixkLGcsbyk7YnJlYWs7Y2FzZSAzNzpjb25zdCBBPWcsZT1vO0M9ZytyLnNoaWZ0KCksbD1vK3Iuc2hpZnQoKSxCPUMrci5zaGlmdCgpLFE9bCtyLnNoaWZ0KCksZz1CK3Iuc2hpZnQoKSxvPVErci5zaGlmdCgpLG4oQyxsLEIsUSxnLG8pLEM9ZytyLnNoaWZ0KCksbD1vK3Iuc2hpZnQoKSxCPUMrci5zaGlmdCgpLFE9bCtyLnNoaWZ0KCksZz1CLG89USxNYXRoLmFicyhnLUEpPk1hdGguYWJzKG8tZSk/Zys9ci5zaGlmdCgpOm8rPXIuc2hpZnQoKSxuKEMsbCxCLFEsZyxvKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBXKGB1bmtub3duIG9wZXJhdG9yOiAxMiAke3l9YCl9YnJlYWs7Y2FzZSAxNDppZihyLmxlbmd0aD49NCl7Y29uc3QgQT1yLnBvcCgpLGk9ci5wb3AoKTtvPXIucG9wKCksZz1yLnBvcCgpLGUuYWRkKDUpLGUuYWRkKDgsW2csb10pO2xldCBhPXFhKHQuY21hcCxTdHJpbmcuZnJvbUNoYXJDb2RlKHQuZ2x5cGhOYW1lTWFwW0ppW0FdXSkpO1BhKHQuZ2x5cGhzW2EuZ2x5cGhJZF0sZSx0LGEuZ2x5cGhJZCksZS5hZGQoNCksYT1xYSh0LmNtYXAsU3RyaW5nLmZyb21DaGFyQ29kZSh0LmdseXBoTmFtZU1hcFtKaVtpXV0pKSxQYSh0LmdseXBoc1thLmdseXBoSWRdLGUsdCxhLmdseXBoSWQpfXJldHVybjtjYXNlIDE5OmNhc2UgMjA6SSs9ci5sZW5ndGg+PjEsaCs9SSs3Pj4zLG09ITA7YnJlYWs7Y2FzZSAyMTpvKz1yLnBvcCgpLGcrPXIucG9wKCksYShnLG8pLG09ITA7YnJlYWs7Y2FzZSAyMjpnKz1yLnBvcCgpLGEoZyxvKSxtPSEwO2JyZWFrO2Nhc2UgMjQ6Zm9yKDtyLmxlbmd0aD4yOylDPWcrci5zaGlmdCgpLGw9bytyLnNoaWZ0KCksQj1DK3Iuc2hpZnQoKSxRPWwrci5zaGlmdCgpLGc9QityLnNoaWZ0KCksbz1RK3Iuc2hpZnQoKSxuKEMsbCxCLFEsZyxvKTtnKz1yLnNoaWZ0KCksbys9ci5zaGlmdCgpLHMoZyxvKTticmVhaztjYXNlIDI1OmZvcig7ci5sZW5ndGg+NjspZys9ci5zaGlmdCgpLG8rPXIuc2hpZnQoKSxzKGcsbyk7Qz1nK3Iuc2hpZnQoKSxsPW8rci5zaGlmdCgpLEI9QytyLnNoaWZ0KCksUT1sK3Iuc2hpZnQoKSxnPUIrci5zaGlmdCgpLG89UStyLnNoaWZ0KCksbihDLGwsQixRLGcsbyk7YnJlYWs7Y2FzZSAyNjpmb3Ioci5sZW5ndGglMiYmKGcrPXIuc2hpZnQoKSk7ci5sZW5ndGg+MDspQz1nLGw9bytyLnNoaWZ0KCksQj1DK3Iuc2hpZnQoKSxRPWwrci5zaGlmdCgpLGc9QixvPVErci5zaGlmdCgpLG4oQyxsLEIsUSxnLG8pO2JyZWFrO2Nhc2UgMjc6Zm9yKHIubGVuZ3RoJTImJihvKz1yLnNoaWZ0KCkpO3IubGVuZ3RoPjA7KUM9ZytyLnNoaWZ0KCksbD1vLEI9QytyLnNoaWZ0KCksUT1sK3Iuc2hpZnQoKSxnPUIrci5zaGlmdCgpLG89USxuKEMsbCxCLFEsZyxvKTticmVhaztjYXNlIDI4OnIucHVzaCgoY1toXTw8MjR8Y1toKzFdPDwxNik+PjE2KSxoKz0yO2JyZWFrO2Nhc2UgMjk6Zj1yLnBvcCgpK3QuZ3N1YnJzQmlhcyxwPXQuZ3N1YnJzW2ZdLHAmJkEocCk7YnJlYWs7Y2FzZSAzMDpmb3IoO3IubGVuZ3RoPjAmJihDPWcsbD1vK3Iuc2hpZnQoKSxCPUMrci5zaGlmdCgpLFE9bCtyLnNoaWZ0KCksZz1CK3Iuc2hpZnQoKSxvPVErKDE9PT1yLmxlbmd0aD9yLnNoaWZ0KCk6MCksbihDLGwsQixRLGcsbyksMCE9PXIubGVuZ3RoKTspQz1nK3Iuc2hpZnQoKSxsPW8sQj1DK3Iuc2hpZnQoKSxRPWwrci5zaGlmdCgpLG89UStyLnNoaWZ0KCksZz1CKygxPT09ci5sZW5ndGg/ci5zaGlmdCgpOjApLG4oQyxsLEIsUSxnLG8pO2JyZWFrO2Nhc2UgMzE6Zm9yKDtyLmxlbmd0aD4wJiYoQz1nK3Iuc2hpZnQoKSxsPW8sQj1DK3Iuc2hpZnQoKSxRPWwrci5zaGlmdCgpLG89UStyLnNoaWZ0KCksZz1CKygxPT09ci5sZW5ndGg/ci5zaGlmdCgpOjApLG4oQyxsLEIsUSxnLG8pLDAhPT1yLmxlbmd0aCk7KUM9ZyxsPW8rci5zaGlmdCgpLEI9QytyLnNoaWZ0KCksUT1sK3Iuc2hpZnQoKSxnPUIrci5zaGlmdCgpLG89USsoMT09PXIubGVuZ3RoP3Iuc2hpZnQoKTowKSxuKEMsbCxCLFEsZyxvKTticmVhaztkZWZhdWx0OmlmKHk8MzIpdGhyb3cgbmV3IFcoYHVua25vd24gb3BlcmF0b3I6ICR7eX1gKTt5PDI0Nz9yLnB1c2goeS0xMzkpOnk8MjUxP3IucHVzaCgyNTYqKHktMjQ3KStjW2grK10rMTA4KTp5PDI1NT9yLnB1c2goMjU2Ki0oeS0yNTEpLWNbaCsrXS0xMDgpOihyLnB1c2goKGNbaF08PDI0fGNbaCsxXTw8MTZ8Y1toKzJdPDw4fGNbaCszXSkvNjU1MzYpLGgrPTQpfW0mJihyLmxlbmd0aD0wKX19KEEpfWNvbnN0IFdhPVtdO2NsYXNzIE9he2NtZHM9W107YWRkKEEsZSl7aWYoZSlpZih2QShlLG51bGwpKXRoaXMuY21kcy5wdXNoKEEsLi4uZSk7ZWxzZXtVKGBDb21tYW5kcy5hZGQgLSAiJHtBfSIgaGFzIGF0IGxlYXN0IG9uZSBub24tbnVtYmVyIGFyZzogIiR7ZX0iLmApO2NvbnN0IHQ9ZS5tYXAoKEE9PiJudW1iZXIiPT10eXBlb2YgQT9BOjApKTt0aGlzLmNtZHMucHVzaChBLC4uLnQpfWVsc2UgdGhpcy5jbWRzLnB1c2goQSl9fWNsYXNzIFphe2NvbnN0cnVjdG9yKEEpe3RoaXMuZm9udE1hdHJpeD1BLHRoaXMuY29tcGlsZWRHbHlwaHM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLmNvbXBpbGVkQ2hhckNvZGVUb0dseXBoSWQ9T2JqZWN0LmNyZWF0ZShudWxsKX1nZXRQYXRoSnMoQSl7Y29uc3R7Y2hhckNvZGU6ZSxnbHlwaElkOnR9PXFhKHRoaXMuY21hcCxBKTtsZXQgaSxhPXRoaXMuY29tcGlsZWRHbHlwaHNbdF07aWYoIWEpe3RyeXthPXRoaXMuY29tcGlsZUdseXBoKHRoaXMuZ2x5cGhzW3RdLHQpfWNhdGNoKEEpe2E9V2EsaT1BfXRoaXMuY29tcGlsZWRHbHlwaHNbdF09YX1pZih0aGlzLmNvbXBpbGVkQ2hhckNvZGVUb0dseXBoSWRbZV0/Pz10LGkpdGhyb3cgaTtyZXR1cm4gYX1jb21waWxlR2x5cGgoQSxlKXtpZighQXx8MD09PUEubGVuZ3RofHwxND09PUFbMF0pcmV0dXJuIFdhO2xldCB0PXRoaXMuZm9udE1hdHJpeDtpZih0aGlzLmlzQ0ZGQ0lERm9udCl7Y29uc3QgQT10aGlzLmZkU2VsZWN0LmdldEZESW5kZXgoZSk7QT49MCYmQTx0aGlzLmZkQXJyYXkubGVuZ3RoP3Q9dGhpcy5mZEFycmF5W0FdLmdldEJ5TmFtZSgiRm9udE1hdHJpeCIpfHxuOlUoIkludmFsaWQgZmQgaW5kZXggZm9yIGdseXBoIGluZGV4LiIpfWNvbnN0IGk9bmV3IE9hO3JldHVybiBpLmFkZCg1KSxpLmFkZCg3LHQuc2xpY2UoKSksaS5hZGQoNiksdGhpcy5jb21waWxlR2x5cGhJbXBsKEEsaSxlKSxpLmFkZCg0KSxpLmNtZHN9Y29tcGlsZUdseXBoSW1wbCgpe00oIkNoaWxkcmVuIGNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCB0aGlzLiIpfWhhc0J1aWx0UGF0aChBKXtjb25zdHtjaGFyQ29kZTplLGdseXBoSWQ6dH09cWEodGhpcy5jbWFwLEEpO3JldHVybiB2b2lkIDAhPT10aGlzLmNvbXBpbGVkR2x5cGhzW3RdJiZ2b2lkIDAhPT10aGlzLmNvbXBpbGVkQ2hhckNvZGVUb0dseXBoSWRbZV19fWNsYXNzIGphIGV4dGVuZHMgWmF7Y29uc3RydWN0b3IoQSxlLHQpe3N1cGVyKHR8fFs0ODhlLTYsMCwwLDQ4OGUtNiwwLDBdKSx0aGlzLmdseXBocz1BLHRoaXMuY21hcD1lfWNvbXBpbGVHbHlwaEltcGwoQSxlKXtUYShBLGUsdGhpcyl9fWNsYXNzIFhhIGV4dGVuZHMgWmF7Y29uc3RydWN0b3IoQSxlLHQsaSl7c3VwZXIodHx8Wy4wMDEsMCwwLC4wMDEsMCwwXSksdGhpcy5nbHlwaHM9QS5nbHlwaHMsdGhpcy5nc3VicnM9QS5nc3VicnN8fFtdLHRoaXMuc3VicnM9QS5zdWJyc3x8W10sdGhpcy5jbWFwPWUsdGhpcy5nbHlwaE5hbWVNYXA9aXx8cmEoKSx0aGlzLmdzdWJyc0JpYXM9WWEodGhpcy5nc3VicnMpLHRoaXMuc3VicnNCaWFzPVlhKHRoaXMuc3VicnMpLHRoaXMuaXNDRkZDSURGb250PUEuaXNDRkZDSURGb250LHRoaXMuZmRTZWxlY3Q9QS5mZFNlbGVjdCx0aGlzLmZkQXJyYXk9QS5mZEFycmF5fWNvbXBpbGVHbHlwaEltcGwoQSxlLHQpe1BhKEEsZSx0aGlzLHQpfX1jbGFzcyBWYXtzdGF0aWMgY3JlYXRlKEEsZSl7Y29uc3QgdD1uZXcgVWludDhBcnJheShBLmRhdGEpO2xldCBpLGEscyxuLHIsZztjb25zdCBvPU1hKHQsNCk7Zm9yKGxldCBBPTAsST0xMjtBPG87QSsrLEkrPTE2KXtjb25zdCBBPVoodC5zdWJhcnJheShJLEkrNCkpLG89VWEodCxJKzgpLGM9VWEodCxJKzEyKTtzd2l0Y2goQSl7Y2FzZSJjbWFwIjppPXZhKHQsbyk7YnJlYWs7Y2FzZSJnbHlmIjphPXQuc3ViYXJyYXkobyxvK2MpO2JyZWFrO2Nhc2UibG9jYSI6cz10LnN1YmFycmF5KG8sbytjKTticmVhaztjYXNlImhlYWQiOmc9TWEodCxvKzE4KSxyPU1hKHQsbys1MCk7YnJlYWs7Y2FzZSJDRkYgIjpuPUthKHQsbyxvK2MsZSl9fWlmKGEpe2NvbnN0IGU9Zz9bMS9nLDAsMCwxL2csMCwwXTpBLmZvbnRNYXRyaXg7cmV0dXJuIG5ldyBqYShmdW5jdGlvbihBLGUsdCl7bGV0IGksYTt0PyhpPTQsYT1VYSk6KGk9MixhPShBLGUpPT4yKk1hKEEsZSkpO2NvbnN0IHM9W107bGV0IG49YShlLDApO2ZvcihsZXQgdD1pO3Q8ZS5sZW5ndGg7dCs9aSl7Y29uc3QgaT1hKGUsdCk7cy5wdXNoKEEuc3ViYXJyYXkobixpKSksbj1pfXJldHVybiBzfShhLHMsciksaSxlKX1yZXR1cm4gbmV3IFhhKG4saSxBLmZvbnRNYXRyaXgsQS5nbHlwaE5hbWVNYXApfX1jb25zdCBfYT1iQSgoZnVuY3Rpb24oQSl7QS5Db3VyaWVyPTYwMCxBWyJDb3VyaWVyLUJvbGQiXT02MDAsQVsiQ291cmllci1Cb2xkT2JsaXF1ZSJdPTYwMCxBWyJDb3VyaWVyLU9ibGlxdWUiXT02MDAsQS5IZWx2ZXRpY2E9YkEoKGZ1bmN0aW9uKEEpe0Euc3BhY2U9Mjc4LEEuZXhjbGFtPTI3OCxBLnF1b3RlZGJsPTM1NSxBLm51bWJlcnNpZ249NTU2LEEuZG9sbGFyPTU1NixBLnBlcmNlbnQ9ODg5LEEuYW1wZXJzYW5kPTY2NyxBLnF1b3RlcmlnaHQ9MjIyLEEucGFyZW5sZWZ0PTMzMyxBLnBhcmVucmlnaHQ9MzMzLEEuYXN0ZXJpc2s9Mzg5LEEucGx1cz01ODQsQS5jb21tYT0yNzgsQS5oeXBoZW49MzMzLEEucGVyaW9kPTI3OCxBLnNsYXNoPTI3OCxBLnplcm89NTU2LEEub25lPTU1NixBLnR3bz01NTYsQS50aHJlZT01NTYsQS5mb3VyPTU1NixBLmZpdmU9NTU2LEEuc2l4PTU1NixBLnNldmVuPTU1NixBLmVpZ2h0PTU1NixBLm5pbmU9NTU2LEEuY29sb249Mjc4LEEuc2VtaWNvbG9uPTI3OCxBLmxlc3M9NTg0LEEuZXF1YWw9NTg0LEEuZ3JlYXRlcj01ODQsQS5xdWVzdGlvbj01NTYsQS5hdD0xMDE1LEEuQT02NjcsQS5CPTY2NyxBLkM9NzIyLEEuRD03MjIsQS5FPTY2NyxBLkY9NjExLEEuRz03NzgsQS5IPTcyMixBLkk9Mjc4LEEuSj01MDAsQS5LPTY2NyxBLkw9NTU2LEEuTT04MzMsQS5OPTcyMixBLk89Nzc4LEEuUD02NjcsQS5RPTc3OCxBLlI9NzIyLEEuUz02NjcsQS5UPTYxMSxBLlU9NzIyLEEuVj02NjcsQS5XPTk0NCxBLlg9NjY3LEEuWT02NjcsQS5aPTYxMSxBLmJyYWNrZXRsZWZ0PTI3OCxBLmJhY2tzbGFzaD0yNzgsQS5icmFja2V0cmlnaHQ9Mjc4LEEuYXNjaWljaXJjdW09NDY5LEEudW5kZXJzY29yZT01NTYsQS5xdW90ZWxlZnQ9MjIyLEEuYT01NTYsQS5iPTU1NixBLmM9NTAwLEEuZD01NTYsQS5lPTU1NixBLmY9Mjc4LEEuZz01NTYsQS5oPTU1NixBLmk9MjIyLEEuaj0yMjIsQS5rPTUwMCxBLmw9MjIyLEEubT04MzMsQS5uPTU1NixBLm89NTU2LEEucD01NTYsQS5xPTU1NixBLnI9MzMzLEEucz01MDAsQS50PTI3OCxBLnU9NTU2LEEudj01MDAsQS53PTcyMixBLng9NTAwLEEueT01MDAsQS56PTUwMCxBLmJyYWNlbGVmdD0zMzQsQS5iYXI9MjYwLEEuYnJhY2VyaWdodD0zMzQsQS5hc2NpaXRpbGRlPTU4NCxBLmV4Y2xhbWRvd249MzMzLEEuY2VudD01NTYsQS5zdGVybGluZz01NTYsQS5mcmFjdGlvbj0xNjcsQS55ZW49NTU2LEEuZmxvcmluPTU1NixBLnNlY3Rpb249NTU2LEEuY3VycmVuY3k9NTU2LEEucXVvdGVzaW5nbGU9MTkxLEEucXVvdGVkYmxsZWZ0PTMzMyxBLmd1aWxsZW1vdGxlZnQ9NTU2LEEuZ3VpbHNpbmdsbGVmdD0zMzMsQS5ndWlsc2luZ2xyaWdodD0zMzMsQS5maT01MDAsQS5mbD01MDAsQS5lbmRhc2g9NTU2LEEuZGFnZ2VyPTU1NixBLmRhZ2dlcmRibD01NTYsQS5wZXJpb2RjZW50ZXJlZD0yNzgsQS5wYXJhZ3JhcGg9NTM3LEEuYnVsbGV0PTM1MCxBLnF1b3Rlc2luZ2xiYXNlPTIyMixBLnF1b3RlZGJsYmFzZT0zMzMsQS5xdW90ZWRibHJpZ2h0PTMzMyxBLmd1aWxsZW1vdHJpZ2h0PTU1NixBLmVsbGlwc2lzPTFlMyxBLnBlcnRob3VzYW5kPTFlMyxBLnF1ZXN0aW9uZG93bj02MTEsQS5ncmF2ZT0zMzMsQS5hY3V0ZT0zMzMsQS5jaXJjdW1mbGV4PTMzMyxBLnRpbGRlPTMzMyxBLm1hY3Jvbj0zMzMsQS5icmV2ZT0zMzMsQS5kb3RhY2NlbnQ9MzMzLEEuZGllcmVzaXM9MzMzLEEucmluZz0zMzMsQS5jZWRpbGxhPTMzMyxBLmh1bmdhcnVtbGF1dD0zMzMsQS5vZ29uZWs9MzMzLEEuY2Fyb249MzMzLEEuZW1kYXNoPTFlMyxBLkFFPTFlMyxBLm9yZGZlbWluaW5lPTM3MCxBLkxzbGFzaD01NTYsQS5Pc2xhc2g9Nzc4LEEuT0U9MWUzLEEub3JkbWFzY3VsaW5lPTM2NSxBLmFlPTg4OSxBLmRvdGxlc3NpPTI3OCxBLmxzbGFzaD0yMjIsQS5vc2xhc2g9NjExLEEub2U9OTQ0LEEuZ2VybWFuZGJscz02MTEsQS5JZGllcmVzaXM9Mjc4LEEuZWFjdXRlPTU1NixBLmFicmV2ZT01NTYsQS51aHVuZ2FydW1sYXV0PTU1NixBLmVjYXJvbj01NTYsQS5ZZGllcmVzaXM9NjY3LEEuZGl2aWRlPTU4NCxBLllhY3V0ZT02NjcsQS5BY2lyY3VtZmxleD02NjcsQS5hYWN1dGU9NTU2LEEuVWNpcmN1bWZsZXg9NzIyLEEueWFjdXRlPTUwMCxBLnNjb21tYWFjY2VudD01MDAsQS5lY2lyY3VtZmxleD01NTYsQS5VcmluZz03MjIsQS5VZGllcmVzaXM9NzIyLEEuYW9nb25laz01NTYsQS5VYWN1dGU9NzIyLEEudW9nb25laz01NTYsQS5FZGllcmVzaXM9NjY3LEEuRGNyb2F0PTcyMixBLmNvbW1hYWNjZW50PTI1MCxBLmNvcHlyaWdodD03MzcsQS5FbWFjcm9uPTY2NyxBLmNjYXJvbj01MDAsQS5hcmluZz01NTYsQS5OY29tbWFhY2NlbnQ9NzIyLEEubGFjdXRlPTIyMixBLmFncmF2ZT01NTYsQS5UY29tbWFhY2NlbnQ9NjExLEEuQ2FjdXRlPTcyMixBLmF0aWxkZT01NTYsQS5FZG90YWNjZW50PTY2NyxBLnNjYXJvbj01MDAsQS5zY2VkaWxsYT01MDAsQS5pYWN1dGU9Mjc4LEEubG96ZW5nZT00NzEsQS5SY2Fyb249NzIyLEEuR2NvbW1hYWNjZW50PTc3OCxBLnVjaXJjdW1mbGV4PTU1NixBLmFjaXJjdW1mbGV4PTU1NixBLkFtYWNyb249NjY3LEEucmNhcm9uPTMzMyxBLmNjZWRpbGxhPTUwMCxBLlpkb3RhY2NlbnQ9NjExLEEuVGhvcm49NjY3LEEuT21hY3Jvbj03NzgsQS5SYWN1dGU9NzIyLEEuU2FjdXRlPTY2NyxBLmRjYXJvbj02NDMsQS5VbWFjcm9uPTcyMixBLnVyaW5nPTU1NixBLnRocmVlc3VwZXJpb3I9MzMzLEEuT2dyYXZlPTc3OCxBLkFncmF2ZT02NjcsQS5BYnJldmU9NjY3LEEubXVsdGlwbHk9NTg0LEEudWFjdXRlPTU1NixBLlRjYXJvbj02MTEsQS5wYXJ0aWFsZGlmZj00NzYsQS55ZGllcmVzaXM9NTAwLEEuTmFjdXRlPTcyMixBLmljaXJjdW1mbGV4PTI3OCxBLkVjaXJjdW1mbGV4PTY2NyxBLmFkaWVyZXNpcz01NTYsQS5lZGllcmVzaXM9NTU2LEEuY2FjdXRlPTUwMCxBLm5hY3V0ZT01NTYsQS51bWFjcm9uPTU1NixBLk5jYXJvbj03MjIsQS5JYWN1dGU9Mjc4LEEucGx1c21pbnVzPTU4NCxBLmJyb2tlbmJhcj0yNjAsQS5yZWdpc3RlcmVkPTczNyxBLkdicmV2ZT03NzgsQS5JZG90YWNjZW50PTI3OCxBLnN1bW1hdGlvbj02MDAsQS5FZ3JhdmU9NjY3LEEucmFjdXRlPTMzMyxBLm9tYWNyb249NTU2LEEuWmFjdXRlPTYxMSxBLlpjYXJvbj02MTEsQS5ncmVhdGVyZXF1YWw9NTQ5LEEuRXRoPTcyMixBLkNjZWRpbGxhPTcyMixBLmxjb21tYWFjY2VudD0yMjIsQS50Y2Fyb249MzE3LEEuZW9nb25laz01NTYsQS5Vb2dvbmVrPTcyMixBLkFhY3V0ZT02NjcsQS5BZGllcmVzaXM9NjY3LEEuZWdyYXZlPTU1NixBLnphY3V0ZT01MDAsQS5pb2dvbmVrPTIyMixBLk9hY3V0ZT03NzgsQS5vYWN1dGU9NTU2LEEuYW1hY3Jvbj01NTYsQS5zYWN1dGU9NTAwLEEuaWRpZXJlc2lzPTI3OCxBLk9jaXJjdW1mbGV4PTc3OCxBLlVncmF2ZT03MjIsQS5EZWx0YT02MTIsQS50aG9ybj01NTYsQS50d29zdXBlcmlvcj0zMzMsQS5PZGllcmVzaXM9Nzc4LEEubXU9NTU2LEEuaWdyYXZlPTI3OCxBLm9odW5nYXJ1bWxhdXQ9NTU2LEEuRW9nb25laz02NjcsQS5kY3JvYXQ9NTU2LEEudGhyZWVxdWFydGVycz04MzQsQS5TY2VkaWxsYT02NjcsQS5sY2Fyb249Mjk5LEEuS2NvbW1hYWNjZW50PTY2NyxBLkxhY3V0ZT01NTYsQS50cmFkZW1hcms9MWUzLEEuZWRvdGFjY2VudD01NTYsQS5JZ3JhdmU9Mjc4LEEuSW1hY3Jvbj0yNzgsQS5MY2Fyb249NTU2LEEub25laGFsZj04MzQsQS5sZXNzZXF1YWw9NTQ5LEEub2NpcmN1bWZsZXg9NTU2LEEubnRpbGRlPTU1NixBLlVodW5nYXJ1bWxhdXQ9NzIyLEEuRWFjdXRlPTY2NyxBLmVtYWNyb249NTU2LEEuZ2JyZXZlPTU1NixBLm9uZXF1YXJ0ZXI9ODM0LEEuU2Nhcm9uPTY2NyxBLlNjb21tYWFjY2VudD02NjcsQS5PaHVuZ2FydW1sYXV0PTc3OCxBLmRlZ3JlZT00MDAsQS5vZ3JhdmU9NTU2LEEuQ2Nhcm9uPTcyMixBLnVncmF2ZT01NTYsQS5yYWRpY2FsPTQ1MyxBLkRjYXJvbj03MjIsQS5yY29tbWFhY2NlbnQ9MzMzLEEuTnRpbGRlPTcyMixBLm90aWxkZT01NTYsQS5SY29tbWFhY2NlbnQ9NzIyLEEuTGNvbW1hYWNjZW50PTU1NixBLkF0aWxkZT02NjcsQS5Bb2dvbmVrPTY2NyxBLkFyaW5nPTY2NyxBLk90aWxkZT03NzgsQS56ZG90YWNjZW50PTUwMCxBLkVjYXJvbj02NjcsQS5Jb2dvbmVrPTI3OCxBLmtjb21tYWFjY2VudD01MDAsQS5taW51cz01ODQsQS5JY2lyY3VtZmxleD0yNzgsQS5uY2Fyb249NTU2LEEudGNvbW1hYWNjZW50PTI3OCxBLmxvZ2ljYWxub3Q9NTg0LEEub2RpZXJlc2lzPTU1NixBLnVkaWVyZXNpcz01NTYsQS5ub3RlcXVhbD01NDksQS5nY29tbWFhY2NlbnQ9NTU2LEEuZXRoPTU1NixBLnpjYXJvbj01MDAsQS5uY29tbWFhY2NlbnQ9NTU2LEEub25lc3VwZXJpb3I9MzMzLEEuaW1hY3Jvbj0yNzgsQS5FdXJvPTU1Nn0pKSxBWyJIZWx2ZXRpY2EtQm9sZCJdPWJBKChmdW5jdGlvbihBKXtBLnNwYWNlPTI3OCxBLmV4Y2xhbT0zMzMsQS5xdW90ZWRibD00NzQsQS5udW1iZXJzaWduPTU1NixBLmRvbGxhcj01NTYsQS5wZXJjZW50PTg4OSxBLmFtcGVyc2FuZD03MjIsQS5xdW90ZXJpZ2h0PTI3OCxBLnBhcmVubGVmdD0zMzMsQS5wYXJlbnJpZ2h0PTMzMyxBLmFzdGVyaXNrPTM4OSxBLnBsdXM9NTg0LEEuY29tbWE9Mjc4LEEuaHlwaGVuPTMzMyxBLnBlcmlvZD0yNzgsQS5zbGFzaD0yNzgsQS56ZXJvPTU1NixBLm9uZT01NTYsQS50d289NTU2LEEudGhyZWU9NTU2LEEuZm91cj01NTYsQS5maXZlPTU1NixBLnNpeD01NTYsQS5zZXZlbj01NTYsQS5laWdodD01NTYsQS5uaW5lPTU1NixBLmNvbG9uPTMzMyxBLnNlbWljb2xvbj0zMzMsQS5sZXNzPTU4NCxBLmVxdWFsPTU4NCxBLmdyZWF0ZXI9NTg0LEEucXVlc3Rpb249NjExLEEuYXQ9OTc1LEEuQT03MjIsQS5CPTcyMixBLkM9NzIyLEEuRD03MjIsQS5FPTY2NyxBLkY9NjExLEEuRz03NzgsQS5IPTcyMixBLkk9Mjc4LEEuSj01NTYsQS5LPTcyMixBLkw9NjExLEEuTT04MzMsQS5OPTcyMixBLk89Nzc4LEEuUD02NjcsQS5RPTc3OCxBLlI9NzIyLEEuUz02NjcsQS5UPTYxMSxBLlU9NzIyLEEuVj02NjcsQS5XPTk0NCxBLlg9NjY3LEEuWT02NjcsQS5aPTYxMSxBLmJyYWNrZXRsZWZ0PTMzMyxBLmJhY2tzbGFzaD0yNzgsQS5icmFja2V0cmlnaHQ9MzMzLEEuYXNjaWljaXJjdW09NTg0LEEudW5kZXJzY29yZT01NTYsQS5xdW90ZWxlZnQ9Mjc4LEEuYT01NTYsQS5iPTYxMSxBLmM9NTU2LEEuZD02MTEsQS5lPTU1NixBLmY9MzMzLEEuZz02MTEsQS5oPTYxMSxBLmk9Mjc4LEEuaj0yNzgsQS5rPTU1NixBLmw9Mjc4LEEubT04ODksQS5uPTYxMSxBLm89NjExLEEucD02MTEsQS5xPTYxMSxBLnI9Mzg5LEEucz01NTYsQS50PTMzMyxBLnU9NjExLEEudj01NTYsQS53PTc3OCxBLng9NTU2LEEueT01NTYsQS56PTUwMCxBLmJyYWNlbGVmdD0zODksQS5iYXI9MjgwLEEuYnJhY2VyaWdodD0zODksQS5hc2NpaXRpbGRlPTU4NCxBLmV4Y2xhbWRvd249MzMzLEEuY2VudD01NTYsQS5zdGVybGluZz01NTYsQS5mcmFjdGlvbj0xNjcsQS55ZW49NTU2LEEuZmxvcmluPTU1NixBLnNlY3Rpb249NTU2LEEuY3VycmVuY3k9NTU2LEEucXVvdGVzaW5nbGU9MjM4LEEucXVvdGVkYmxsZWZ0PTUwMCxBLmd1aWxsZW1vdGxlZnQ9NTU2LEEuZ3VpbHNpbmdsbGVmdD0zMzMsQS5ndWlsc2luZ2xyaWdodD0zMzMsQS5maT02MTEsQS5mbD02MTEsQS5lbmRhc2g9NTU2LEEuZGFnZ2VyPTU1NixBLmRhZ2dlcmRibD01NTYsQS5wZXJpb2RjZW50ZXJlZD0yNzgsQS5wYXJhZ3JhcGg9NTU2LEEuYnVsbGV0PTM1MCxBLnF1b3Rlc2luZ2xiYXNlPTI3OCxBLnF1b3RlZGJsYmFzZT01MDAsQS5xdW90ZWRibHJpZ2h0PTUwMCxBLmd1aWxsZW1vdHJpZ2h0PTU1NixBLmVsbGlwc2lzPTFlMyxBLnBlcnRob3VzYW5kPTFlMyxBLnF1ZXN0aW9uZG93bj02MTEsQS5ncmF2ZT0zMzMsQS5hY3V0ZT0zMzMsQS5jaXJjdW1mbGV4PTMzMyxBLnRpbGRlPTMzMyxBLm1hY3Jvbj0zMzMsQS5icmV2ZT0zMzMsQS5kb3RhY2NlbnQ9MzMzLEEuZGllcmVzaXM9MzMzLEEucmluZz0zMzMsQS5jZWRpbGxhPTMzMyxBLmh1bmdhcnVtbGF1dD0zMzMsQS5vZ29uZWs9MzMzLEEuY2Fyb249MzMzLEEuZW1kYXNoPTFlMyxBLkFFPTFlMyxBLm9yZGZlbWluaW5lPTM3MCxBLkxzbGFzaD02MTEsQS5Pc2xhc2g9Nzc4LEEuT0U9MWUzLEEub3JkbWFzY3VsaW5lPTM2NSxBLmFlPTg4OSxBLmRvdGxlc3NpPTI3OCxBLmxzbGFzaD0yNzgsQS5vc2xhc2g9NjExLEEub2U9OTQ0LEEuZ2VybWFuZGJscz02MTEsQS5JZGllcmVzaXM9Mjc4LEEuZWFjdXRlPTU1NixBLmFicmV2ZT01NTYsQS51aHVuZ2FydW1sYXV0PTYxMSxBLmVjYXJvbj01NTYsQS5ZZGllcmVzaXM9NjY3LEEuZGl2aWRlPTU4NCxBLllhY3V0ZT02NjcsQS5BY2lyY3VtZmxleD03MjIsQS5hYWN1dGU9NTU2LEEuVWNpcmN1bWZsZXg9NzIyLEEueWFjdXRlPTU1NixBLnNjb21tYWFjY2VudD01NTYsQS5lY2lyY3VtZmxleD01NTYsQS5VcmluZz03MjIsQS5VZGllcmVzaXM9NzIyLEEuYW9nb25laz01NTYsQS5VYWN1dGU9NzIyLEEudW9nb25laz02MTEsQS5FZGllcmVzaXM9NjY3LEEuRGNyb2F0PTcyMixBLmNvbW1hYWNjZW50PTI1MCxBLmNvcHlyaWdodD03MzcsQS5FbWFjcm9uPTY2NyxBLmNjYXJvbj01NTYsQS5hcmluZz01NTYsQS5OY29tbWFhY2NlbnQ9NzIyLEEubGFjdXRlPTI3OCxBLmFncmF2ZT01NTYsQS5UY29tbWFhY2NlbnQ9NjExLEEuQ2FjdXRlPTcyMixBLmF0aWxkZT01NTYsQS5FZG90YWNjZW50PTY2NyxBLnNjYXJvbj01NTYsQS5zY2VkaWxsYT01NTYsQS5pYWN1dGU9Mjc4LEEubG96ZW5nZT00OTQsQS5SY2Fyb249NzIyLEEuR2NvbW1hYWNjZW50PTc3OCxBLnVjaXJjdW1mbGV4PTYxMSxBLmFjaXJjdW1mbGV4PTU1NixBLkFtYWNyb249NzIyLEEucmNhcm9uPTM4OSxBLmNjZWRpbGxhPTU1NixBLlpkb3RhY2NlbnQ9NjExLEEuVGhvcm49NjY3LEEuT21hY3Jvbj03NzgsQS5SYWN1dGU9NzIyLEEuU2FjdXRlPTY2NyxBLmRjYXJvbj03NDMsQS5VbWFjcm9uPTcyMixBLnVyaW5nPTYxMSxBLnRocmVlc3VwZXJpb3I9MzMzLEEuT2dyYXZlPTc3OCxBLkFncmF2ZT03MjIsQS5BYnJldmU9NzIyLEEubXVsdGlwbHk9NTg0LEEudWFjdXRlPTYxMSxBLlRjYXJvbj02MTEsQS5wYXJ0aWFsZGlmZj00OTQsQS55ZGllcmVzaXM9NTU2LEEuTmFjdXRlPTcyMixBLmljaXJjdW1mbGV4PTI3OCxBLkVjaXJjdW1mbGV4PTY2NyxBLmFkaWVyZXNpcz01NTYsQS5lZGllcmVzaXM9NTU2LEEuY2FjdXRlPTU1NixBLm5hY3V0ZT02MTEsQS51bWFjcm9uPTYxMSxBLk5jYXJvbj03MjIsQS5JYWN1dGU9Mjc4LEEucGx1c21pbnVzPTU4NCxBLmJyb2tlbmJhcj0yODAsQS5yZWdpc3RlcmVkPTczNyxBLkdicmV2ZT03NzgsQS5JZG90YWNjZW50PTI3OCxBLnN1bW1hdGlvbj02MDAsQS5FZ3JhdmU9NjY3LEEucmFjdXRlPTM4OSxBLm9tYWNyb249NjExLEEuWmFjdXRlPTYxMSxBLlpjYXJvbj02MTEsQS5ncmVhdGVyZXF1YWw9NTQ5LEEuRXRoPTcyMixBLkNjZWRpbGxhPTcyMixBLmxjb21tYWFjY2VudD0yNzgsQS50Y2Fyb249Mzg5LEEuZW9nb25laz01NTYsQS5Vb2dvbmVrPTcyMixBLkFhY3V0ZT03MjIsQS5BZGllcmVzaXM9NzIyLEEuZWdyYXZlPTU1NixBLnphY3V0ZT01MDAsQS5pb2dvbmVrPTI3OCxBLk9hY3V0ZT03NzgsQS5vYWN1dGU9NjExLEEuYW1hY3Jvbj01NTYsQS5zYWN1dGU9NTU2LEEuaWRpZXJlc2lzPTI3OCxBLk9jaXJjdW1mbGV4PTc3OCxBLlVncmF2ZT03MjIsQS5EZWx0YT02MTIsQS50aG9ybj02MTEsQS50d29zdXBlcmlvcj0zMzMsQS5PZGllcmVzaXM9Nzc4LEEubXU9NjExLEEuaWdyYXZlPTI3OCxBLm9odW5nYXJ1bWxhdXQ9NjExLEEuRW9nb25laz02NjcsQS5kY3JvYXQ9NjExLEEudGhyZWVxdWFydGVycz04MzQsQS5TY2VkaWxsYT02NjcsQS5sY2Fyb249NDAwLEEuS2NvbW1hYWNjZW50PTcyMixBLkxhY3V0ZT02MTEsQS50cmFkZW1hcms9MWUzLEEuZWRvdGFjY2VudD01NTYsQS5JZ3JhdmU9Mjc4LEEuSW1hY3Jvbj0yNzgsQS5MY2Fyb249NjExLEEub25laGFsZj04MzQsQS5sZXNzZXF1YWw9NTQ5LEEub2NpcmN1bWZsZXg9NjExLEEubnRpbGRlPTYxMSxBLlVodW5nYXJ1bWxhdXQ9NzIyLEEuRWFjdXRlPTY2NyxBLmVtYWNyb249NTU2LEEuZ2JyZXZlPTYxMSxBLm9uZXF1YXJ0ZXI9ODM0LEEuU2Nhcm9uPTY2NyxBLlNjb21tYWFjY2VudD02NjcsQS5PaHVuZ2FydW1sYXV0PTc3OCxBLmRlZ3JlZT00MDAsQS5vZ3JhdmU9NjExLEEuQ2Nhcm9uPTcyMixBLnVncmF2ZT02MTEsQS5yYWRpY2FsPTU0OSxBLkRjYXJvbj03MjIsQS5yY29tbWFhY2NlbnQ9Mzg5LEEuTnRpbGRlPTcyMixBLm90aWxkZT02MTEsQS5SY29tbWFhY2NlbnQ9NzIyLEEuTGNvbW1hYWNjZW50PTYxMSxBLkF0aWxkZT03MjIsQS5Bb2dvbmVrPTcyMixBLkFyaW5nPTcyMixBLk90aWxkZT03NzgsQS56ZG90YWNjZW50PTUwMCxBLkVjYXJvbj02NjcsQS5Jb2dvbmVrPTI3OCxBLmtjb21tYWFjY2VudD01NTYsQS5taW51cz01ODQsQS5JY2lyY3VtZmxleD0yNzgsQS5uY2Fyb249NjExLEEudGNvbW1hYWNjZW50PTMzMyxBLmxvZ2ljYWxub3Q9NTg0LEEub2RpZXJlc2lzPTYxMSxBLnVkaWVyZXNpcz02MTEsQS5ub3RlcXVhbD01NDksQS5nY29tbWFhY2NlbnQ9NjExLEEuZXRoPTYxMSxBLnpjYXJvbj01MDAsQS5uY29tbWFhY2NlbnQ9NjExLEEub25lc3VwZXJpb3I9MzMzLEEuaW1hY3Jvbj0yNzgsQS5FdXJvPTU1Nn0pKSxBWyJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiXT1iQSgoZnVuY3Rpb24oQSl7QS5zcGFjZT0yNzgsQS5leGNsYW09MzMzLEEucXVvdGVkYmw9NDc0LEEubnVtYmVyc2lnbj01NTYsQS5kb2xsYXI9NTU2LEEucGVyY2VudD04ODksQS5hbXBlcnNhbmQ9NzIyLEEucXVvdGVyaWdodD0yNzgsQS5wYXJlbmxlZnQ9MzMzLEEucGFyZW5yaWdodD0zMzMsQS5hc3Rlcmlzaz0zODksQS5wbHVzPTU4NCxBLmNvbW1hPTI3OCxBLmh5cGhlbj0zMzMsQS5wZXJpb2Q9Mjc4LEEuc2xhc2g9Mjc4LEEuemVybz01NTYsQS5vbmU9NTU2LEEudHdvPTU1NixBLnRocmVlPTU1NixBLmZvdXI9NTU2LEEuZml2ZT01NTYsQS5zaXg9NTU2LEEuc2V2ZW49NTU2LEEuZWlnaHQ9NTU2LEEubmluZT01NTYsQS5jb2xvbj0zMzMsQS5zZW1pY29sb249MzMzLEEubGVzcz01ODQsQS5lcXVhbD01ODQsQS5ncmVhdGVyPTU4NCxBLnF1ZXN0aW9uPTYxMSxBLmF0PTk3NSxBLkE9NzIyLEEuQj03MjIsQS5DPTcyMixBLkQ9NzIyLEEuRT02NjcsQS5GPTYxMSxBLkc9Nzc4LEEuSD03MjIsQS5JPTI3OCxBLko9NTU2LEEuSz03MjIsQS5MPTYxMSxBLk09ODMzLEEuTj03MjIsQS5PPTc3OCxBLlA9NjY3LEEuUT03NzgsQS5SPTcyMixBLlM9NjY3LEEuVD02MTEsQS5VPTcyMixBLlY9NjY3LEEuVz05NDQsQS5YPTY2NyxBLlk9NjY3LEEuWj02MTEsQS5icmFja2V0bGVmdD0zMzMsQS5iYWNrc2xhc2g9Mjc4LEEuYnJhY2tldHJpZ2h0PTMzMyxBLmFzY2lpY2lyY3VtPTU4NCxBLnVuZGVyc2NvcmU9NTU2LEEucXVvdGVsZWZ0PTI3OCxBLmE9NTU2LEEuYj02MTEsQS5jPTU1NixBLmQ9NjExLEEuZT01NTYsQS5mPTMzMyxBLmc9NjExLEEuaD02MTEsQS5pPTI3OCxBLmo9Mjc4LEEuaz01NTYsQS5sPTI3OCxBLm09ODg5LEEubj02MTEsQS5vPTYxMSxBLnA9NjExLEEucT02MTEsQS5yPTM4OSxBLnM9NTU2LEEudD0zMzMsQS51PTYxMSxBLnY9NTU2LEEudz03NzgsQS54PTU1NixBLnk9NTU2LEEuej01MDAsQS5icmFjZWxlZnQ9Mzg5LEEuYmFyPTI4MCxBLmJyYWNlcmlnaHQ9Mzg5LEEuYXNjaWl0aWxkZT01ODQsQS5leGNsYW1kb3duPTMzMyxBLmNlbnQ9NTU2LEEuc3Rlcmxpbmc9NTU2LEEuZnJhY3Rpb249MTY3LEEueWVuPTU1NixBLmZsb3Jpbj01NTYsQS5zZWN0aW9uPTU1NixBLmN1cnJlbmN5PTU1NixBLnF1b3Rlc2luZ2xlPTIzOCxBLnF1b3RlZGJsbGVmdD01MDAsQS5ndWlsbGVtb3RsZWZ0PTU1NixBLmd1aWxzaW5nbGxlZnQ9MzMzLEEuZ3VpbHNpbmdscmlnaHQ9MzMzLEEuZmk9NjExLEEuZmw9NjExLEEuZW5kYXNoPTU1NixBLmRhZ2dlcj01NTYsQS5kYWdnZXJkYmw9NTU2LEEucGVyaW9kY2VudGVyZWQ9Mjc4LEEucGFyYWdyYXBoPTU1NixBLmJ1bGxldD0zNTAsQS5xdW90ZXNpbmdsYmFzZT0yNzgsQS5xdW90ZWRibGJhc2U9NTAwLEEucXVvdGVkYmxyaWdodD01MDAsQS5ndWlsbGVtb3RyaWdodD01NTYsQS5lbGxpcHNpcz0xZTMsQS5wZXJ0aG91c2FuZD0xZTMsQS5xdWVzdGlvbmRvd249NjExLEEuZ3JhdmU9MzMzLEEuYWN1dGU9MzMzLEEuY2lyY3VtZmxleD0zMzMsQS50aWxkZT0zMzMsQS5tYWNyb249MzMzLEEuYnJldmU9MzMzLEEuZG90YWNjZW50PTMzMyxBLmRpZXJlc2lzPTMzMyxBLnJpbmc9MzMzLEEuY2VkaWxsYT0zMzMsQS5odW5nYXJ1bWxhdXQ9MzMzLEEub2dvbmVrPTMzMyxBLmNhcm9uPTMzMyxBLmVtZGFzaD0xZTMsQS5BRT0xZTMsQS5vcmRmZW1pbmluZT0zNzAsQS5Mc2xhc2g9NjExLEEuT3NsYXNoPTc3OCxBLk9FPTFlMyxBLm9yZG1hc2N1bGluZT0zNjUsQS5hZT04ODksQS5kb3RsZXNzaT0yNzgsQS5sc2xhc2g9Mjc4LEEub3NsYXNoPTYxMSxBLm9lPTk0NCxBLmdlcm1hbmRibHM9NjExLEEuSWRpZXJlc2lzPTI3OCxBLmVhY3V0ZT01NTYsQS5hYnJldmU9NTU2LEEudWh1bmdhcnVtbGF1dD02MTEsQS5lY2Fyb249NTU2LEEuWWRpZXJlc2lzPTY2NyxBLmRpdmlkZT01ODQsQS5ZYWN1dGU9NjY3LEEuQWNpcmN1bWZsZXg9NzIyLEEuYWFjdXRlPTU1NixBLlVjaXJjdW1mbGV4PTcyMixBLnlhY3V0ZT01NTYsQS5zY29tbWFhY2NlbnQ9NTU2LEEuZWNpcmN1bWZsZXg9NTU2LEEuVXJpbmc9NzIyLEEuVWRpZXJlc2lzPTcyMixBLmFvZ29uZWs9NTU2LEEuVWFjdXRlPTcyMixBLnVvZ29uZWs9NjExLEEuRWRpZXJlc2lzPTY2NyxBLkRjcm9hdD03MjIsQS5jb21tYWFjY2VudD0yNTAsQS5jb3B5cmlnaHQ9NzM3LEEuRW1hY3Jvbj02NjcsQS5jY2Fyb249NTU2LEEuYXJpbmc9NTU2LEEuTmNvbW1hYWNjZW50PTcyMixBLmxhY3V0ZT0yNzgsQS5hZ3JhdmU9NTU2LEEuVGNvbW1hYWNjZW50PTYxMSxBLkNhY3V0ZT03MjIsQS5hdGlsZGU9NTU2LEEuRWRvdGFjY2VudD02NjcsQS5zY2Fyb249NTU2LEEuc2NlZGlsbGE9NTU2LEEuaWFjdXRlPTI3OCxBLmxvemVuZ2U9NDk0LEEuUmNhcm9uPTcyMixBLkdjb21tYWFjY2VudD03NzgsQS51Y2lyY3VtZmxleD02MTEsQS5hY2lyY3VtZmxleD01NTYsQS5BbWFjcm9uPTcyMixBLnJjYXJvbj0zODksQS5jY2VkaWxsYT01NTYsQS5aZG90YWNjZW50PTYxMSxBLlRob3JuPTY2NyxBLk9tYWNyb249Nzc4LEEuUmFjdXRlPTcyMixBLlNhY3V0ZT02NjcsQS5kY2Fyb249NzQzLEEuVW1hY3Jvbj03MjIsQS51cmluZz02MTEsQS50aHJlZXN1cGVyaW9yPTMzMyxBLk9ncmF2ZT03NzgsQS5BZ3JhdmU9NzIyLEEuQWJyZXZlPTcyMixBLm11bHRpcGx5PTU4NCxBLnVhY3V0ZT02MTEsQS5UY2Fyb249NjExLEEucGFydGlhbGRpZmY9NDk0LEEueWRpZXJlc2lzPTU1NixBLk5hY3V0ZT03MjIsQS5pY2lyY3VtZmxleD0yNzgsQS5FY2lyY3VtZmxleD02NjcsQS5hZGllcmVzaXM9NTU2LEEuZWRpZXJlc2lzPTU1NixBLmNhY3V0ZT01NTYsQS5uYWN1dGU9NjExLEEudW1hY3Jvbj02MTEsQS5OY2Fyb249NzIyLEEuSWFjdXRlPTI3OCxBLnBsdXNtaW51cz01ODQsQS5icm9rZW5iYXI9MjgwLEEucmVnaXN0ZXJlZD03MzcsQS5HYnJldmU9Nzc4LEEuSWRvdGFjY2VudD0yNzgsQS5zdW1tYXRpb249NjAwLEEuRWdyYXZlPTY2NyxBLnJhY3V0ZT0zODksQS5vbWFjcm9uPTYxMSxBLlphY3V0ZT02MTEsQS5aY2Fyb249NjExLEEuZ3JlYXRlcmVxdWFsPTU0OSxBLkV0aD03MjIsQS5DY2VkaWxsYT03MjIsQS5sY29tbWFhY2NlbnQ9Mjc4LEEudGNhcm9uPTM4OSxBLmVvZ29uZWs9NTU2LEEuVW9nb25laz03MjIsQS5BYWN1dGU9NzIyLEEuQWRpZXJlc2lzPTcyMixBLmVncmF2ZT01NTYsQS56YWN1dGU9NTAwLEEuaW9nb25laz0yNzgsQS5PYWN1dGU9Nzc4LEEub2FjdXRlPTYxMSxBLmFtYWNyb249NTU2LEEuc2FjdXRlPTU1NixBLmlkaWVyZXNpcz0yNzgsQS5PY2lyY3VtZmxleD03NzgsQS5VZ3JhdmU9NzIyLEEuRGVsdGE9NjEyLEEudGhvcm49NjExLEEudHdvc3VwZXJpb3I9MzMzLEEuT2RpZXJlc2lzPTc3OCxBLm11PTYxMSxBLmlncmF2ZT0yNzgsQS5vaHVuZ2FydW1sYXV0PTYxMSxBLkVvZ29uZWs9NjY3LEEuZGNyb2F0PTYxMSxBLnRocmVlcXVhcnRlcnM9ODM0LEEuU2NlZGlsbGE9NjY3LEEubGNhcm9uPTQwMCxBLktjb21tYWFjY2VudD03MjIsQS5MYWN1dGU9NjExLEEudHJhZGVtYXJrPTFlMyxBLmVkb3RhY2NlbnQ9NTU2LEEuSWdyYXZlPTI3OCxBLkltYWNyb249Mjc4LEEuTGNhcm9uPTYxMSxBLm9uZWhhbGY9ODM0LEEubGVzc2VxdWFsPTU0OSxBLm9jaXJjdW1mbGV4PTYxMSxBLm50aWxkZT02MTEsQS5VaHVuZ2FydW1sYXV0PTcyMixBLkVhY3V0ZT02NjcsQS5lbWFjcm9uPTU1NixBLmdicmV2ZT02MTEsQS5vbmVxdWFydGVyPTgzNCxBLlNjYXJvbj02NjcsQS5TY29tbWFhY2NlbnQ9NjY3LEEuT2h1bmdhcnVtbGF1dD03NzgsQS5kZWdyZWU9NDAwLEEub2dyYXZlPTYxMSxBLkNjYXJvbj03MjIsQS51Z3JhdmU9NjExLEEucmFkaWNhbD01NDksQS5EY2Fyb249NzIyLEEucmNvbW1hYWNjZW50PTM4OSxBLk50aWxkZT03MjIsQS5vdGlsZGU9NjExLEEuUmNvbW1hYWNjZW50PTcyMixBLkxjb21tYWFjY2VudD02MTEsQS5BdGlsZGU9NzIyLEEuQW9nb25laz03MjIsQS5BcmluZz03MjIsQS5PdGlsZGU9Nzc4LEEuemRvdGFjY2VudD01MDAsQS5FY2Fyb249NjY3LEEuSW9nb25laz0yNzgsQS5rY29tbWFhY2NlbnQ9NTU2LEEubWludXM9NTg0LEEuSWNpcmN1bWZsZXg9Mjc4LEEubmNhcm9uPTYxMSxBLnRjb21tYWFjY2VudD0zMzMsQS5sb2dpY2Fsbm90PTU4NCxBLm9kaWVyZXNpcz02MTEsQS51ZGllcmVzaXM9NjExLEEubm90ZXF1YWw9NTQ5LEEuZ2NvbW1hYWNjZW50PTYxMSxBLmV0aD02MTEsQS56Y2Fyb249NTAwLEEubmNvbW1hYWNjZW50PTYxMSxBLm9uZXN1cGVyaW9yPTMzMyxBLmltYWNyb249Mjc4LEEuRXVybz01NTZ9KSksQVsiSGVsdmV0aWNhLU9ibGlxdWUiXT1iQSgoZnVuY3Rpb24oQSl7QS5zcGFjZT0yNzgsQS5leGNsYW09Mjc4LEEucXVvdGVkYmw9MzU1LEEubnVtYmVyc2lnbj01NTYsQS5kb2xsYXI9NTU2LEEucGVyY2VudD04ODksQS5hbXBlcnNhbmQ9NjY3LEEucXVvdGVyaWdodD0yMjIsQS5wYXJlbmxlZnQ9MzMzLEEucGFyZW5yaWdodD0zMzMsQS5hc3Rlcmlzaz0zODksQS5wbHVzPTU4NCxBLmNvbW1hPTI3OCxBLmh5cGhlbj0zMzMsQS5wZXJpb2Q9Mjc4LEEuc2xhc2g9Mjc4LEEuemVybz01NTYsQS5vbmU9NTU2LEEudHdvPTU1NixBLnRocmVlPTU1NixBLmZvdXI9NTU2LEEuZml2ZT01NTYsQS5zaXg9NTU2LEEuc2V2ZW49NTU2LEEuZWlnaHQ9NTU2LEEubmluZT01NTYsQS5jb2xvbj0yNzgsQS5zZW1pY29sb249Mjc4LEEubGVzcz01ODQsQS5lcXVhbD01ODQsQS5ncmVhdGVyPTU4NCxBLnF1ZXN0aW9uPTU1NixBLmF0PTEwMTUsQS5BPTY2NyxBLkI9NjY3LEEuQz03MjIsQS5EPTcyMixBLkU9NjY3LEEuRj02MTEsQS5HPTc3OCxBLkg9NzIyLEEuST0yNzgsQS5KPTUwMCxBLks9NjY3LEEuTD01NTYsQS5NPTgzMyxBLk49NzIyLEEuTz03NzgsQS5QPTY2NyxBLlE9Nzc4LEEuUj03MjIsQS5TPTY2NyxBLlQ9NjExLEEuVT03MjIsQS5WPTY2NyxBLlc9OTQ0LEEuWD02NjcsQS5ZPTY2NyxBLlo9NjExLEEuYnJhY2tldGxlZnQ9Mjc4LEEuYmFja3NsYXNoPTI3OCxBLmJyYWNrZXRyaWdodD0yNzgsQS5hc2NpaWNpcmN1bT00NjksQS51bmRlcnNjb3JlPTU1NixBLnF1b3RlbGVmdD0yMjIsQS5hPTU1NixBLmI9NTU2LEEuYz01MDAsQS5kPTU1NixBLmU9NTU2LEEuZj0yNzgsQS5nPTU1NixBLmg9NTU2LEEuaT0yMjIsQS5qPTIyMixBLms9NTAwLEEubD0yMjIsQS5tPTgzMyxBLm49NTU2LEEubz01NTYsQS5wPTU1NixBLnE9NTU2LEEucj0zMzMsQS5zPTUwMCxBLnQ9Mjc4LEEudT01NTYsQS52PTUwMCxBLnc9NzIyLEEueD01MDAsQS55PTUwMCxBLno9NTAwLEEuYnJhY2VsZWZ0PTMzNCxBLmJhcj0yNjAsQS5icmFjZXJpZ2h0PTMzNCxBLmFzY2lpdGlsZGU9NTg0LEEuZXhjbGFtZG93bj0zMzMsQS5jZW50PTU1NixBLnN0ZXJsaW5nPTU1NixBLmZyYWN0aW9uPTE2NyxBLnllbj01NTYsQS5mbG9yaW49NTU2LEEuc2VjdGlvbj01NTYsQS5jdXJyZW5jeT01NTYsQS5xdW90ZXNpbmdsZT0xOTEsQS5xdW90ZWRibGxlZnQ9MzMzLEEuZ3VpbGxlbW90bGVmdD01NTYsQS5ndWlsc2luZ2xsZWZ0PTMzMyxBLmd1aWxzaW5nbHJpZ2h0PTMzMyxBLmZpPTUwMCxBLmZsPTUwMCxBLmVuZGFzaD01NTYsQS5kYWdnZXI9NTU2LEEuZGFnZ2VyZGJsPTU1NixBLnBlcmlvZGNlbnRlcmVkPTI3OCxBLnBhcmFncmFwaD01MzcsQS5idWxsZXQ9MzUwLEEucXVvdGVzaW5nbGJhc2U9MjIyLEEucXVvdGVkYmxiYXNlPTMzMyxBLnF1b3RlZGJscmlnaHQ9MzMzLEEuZ3VpbGxlbW90cmlnaHQ9NTU2LEEuZWxsaXBzaXM9MWUzLEEucGVydGhvdXNhbmQ9MWUzLEEucXVlc3Rpb25kb3duPTYxMSxBLmdyYXZlPTMzMyxBLmFjdXRlPTMzMyxBLmNpcmN1bWZsZXg9MzMzLEEudGlsZGU9MzMzLEEubWFjcm9uPTMzMyxBLmJyZXZlPTMzMyxBLmRvdGFjY2VudD0zMzMsQS5kaWVyZXNpcz0zMzMsQS5yaW5nPTMzMyxBLmNlZGlsbGE9MzMzLEEuaHVuZ2FydW1sYXV0PTMzMyxBLm9nb25laz0zMzMsQS5jYXJvbj0zMzMsQS5lbWRhc2g9MWUzLEEuQUU9MWUzLEEub3JkZmVtaW5pbmU9MzcwLEEuTHNsYXNoPTU1NixBLk9zbGFzaD03NzgsQS5PRT0xZTMsQS5vcmRtYXNjdWxpbmU9MzY1LEEuYWU9ODg5LEEuZG90bGVzc2k9Mjc4LEEubHNsYXNoPTIyMixBLm9zbGFzaD02MTEsQS5vZT05NDQsQS5nZXJtYW5kYmxzPTYxMSxBLklkaWVyZXNpcz0yNzgsQS5lYWN1dGU9NTU2LEEuYWJyZXZlPTU1NixBLnVodW5nYXJ1bWxhdXQ9NTU2LEEuZWNhcm9uPTU1NixBLllkaWVyZXNpcz02NjcsQS5kaXZpZGU9NTg0LEEuWWFjdXRlPTY2NyxBLkFjaXJjdW1mbGV4PTY2NyxBLmFhY3V0ZT01NTYsQS5VY2lyY3VtZmxleD03MjIsQS55YWN1dGU9NTAwLEEuc2NvbW1hYWNjZW50PTUwMCxBLmVjaXJjdW1mbGV4PTU1NixBLlVyaW5nPTcyMixBLlVkaWVyZXNpcz03MjIsQS5hb2dvbmVrPTU1NixBLlVhY3V0ZT03MjIsQS51b2dvbmVrPTU1NixBLkVkaWVyZXNpcz02NjcsQS5EY3JvYXQ9NzIyLEEuY29tbWFhY2NlbnQ9MjUwLEEuY29weXJpZ2h0PTczNyxBLkVtYWNyb249NjY3LEEuY2Nhcm9uPTUwMCxBLmFyaW5nPTU1NixBLk5jb21tYWFjY2VudD03MjIsQS5sYWN1dGU9MjIyLEEuYWdyYXZlPTU1NixBLlRjb21tYWFjY2VudD02MTEsQS5DYWN1dGU9NzIyLEEuYXRpbGRlPTU1NixBLkVkb3RhY2NlbnQ9NjY3LEEuc2Nhcm9uPTUwMCxBLnNjZWRpbGxhPTUwMCxBLmlhY3V0ZT0yNzgsQS5sb3plbmdlPTQ3MSxBLlJjYXJvbj03MjIsQS5HY29tbWFhY2NlbnQ9Nzc4LEEudWNpcmN1bWZsZXg9NTU2LEEuYWNpcmN1bWZsZXg9NTU2LEEuQW1hY3Jvbj02NjcsQS5yY2Fyb249MzMzLEEuY2NlZGlsbGE9NTAwLEEuWmRvdGFjY2VudD02MTEsQS5UaG9ybj02NjcsQS5PbWFjcm9uPTc3OCxBLlJhY3V0ZT03MjIsQS5TYWN1dGU9NjY3LEEuZGNhcm9uPTY0MyxBLlVtYWNyb249NzIyLEEudXJpbmc9NTU2LEEudGhyZWVzdXBlcmlvcj0zMzMsQS5PZ3JhdmU9Nzc4LEEuQWdyYXZlPTY2NyxBLkFicmV2ZT02NjcsQS5tdWx0aXBseT01ODQsQS51YWN1dGU9NTU2LEEuVGNhcm9uPTYxMSxBLnBhcnRpYWxkaWZmPTQ3NixBLnlkaWVyZXNpcz01MDAsQS5OYWN1dGU9NzIyLEEuaWNpcmN1bWZsZXg9Mjc4LEEuRWNpcmN1bWZsZXg9NjY3LEEuYWRpZXJlc2lzPTU1NixBLmVkaWVyZXNpcz01NTYsQS5jYWN1dGU9NTAwLEEubmFjdXRlPTU1NixBLnVtYWNyb249NTU2LEEuTmNhcm9uPTcyMixBLklhY3V0ZT0yNzgsQS5wbHVzbWludXM9NTg0LEEuYnJva2VuYmFyPTI2MCxBLnJlZ2lzdGVyZWQ9NzM3LEEuR2JyZXZlPTc3OCxBLklkb3RhY2NlbnQ9Mjc4LEEuc3VtbWF0aW9uPTYwMCxBLkVncmF2ZT02NjcsQS5yYWN1dGU9MzMzLEEub21hY3Jvbj01NTYsQS5aYWN1dGU9NjExLEEuWmNhcm9uPTYxMSxBLmdyZWF0ZXJlcXVhbD01NDksQS5FdGg9NzIyLEEuQ2NlZGlsbGE9NzIyLEEubGNvbW1hYWNjZW50PTIyMixBLnRjYXJvbj0zMTcsQS5lb2dvbmVrPTU1NixBLlVvZ29uZWs9NzIyLEEuQWFjdXRlPTY2NyxBLkFkaWVyZXNpcz02NjcsQS5lZ3JhdmU9NTU2LEEuemFjdXRlPTUwMCxBLmlvZ29uZWs9MjIyLEEuT2FjdXRlPTc3OCxBLm9hY3V0ZT01NTYsQS5hbWFjcm9uPTU1NixBLnNhY3V0ZT01MDAsQS5pZGllcmVzaXM9Mjc4LEEuT2NpcmN1bWZsZXg9Nzc4LEEuVWdyYXZlPTcyMixBLkRlbHRhPTYxMixBLnRob3JuPTU1NixBLnR3b3N1cGVyaW9yPTMzMyxBLk9kaWVyZXNpcz03NzgsQS5tdT01NTYsQS5pZ3JhdmU9Mjc4LEEub2h1bmdhcnVtbGF1dD01NTYsQS5Fb2dvbmVrPTY2NyxBLmRjcm9hdD01NTYsQS50aHJlZXF1YXJ0ZXJzPTgzNCxBLlNjZWRpbGxhPTY2NyxBLmxjYXJvbj0yOTksQS5LY29tbWFhY2NlbnQ9NjY3LEEuTGFjdXRlPTU1NixBLnRyYWRlbWFyaz0xZTMsQS5lZG90YWNjZW50PTU1NixBLklncmF2ZT0yNzgsQS5JbWFjcm9uPTI3OCxBLkxjYXJvbj01NTYsQS5vbmVoYWxmPTgzNCxBLmxlc3NlcXVhbD01NDksQS5vY2lyY3VtZmxleD01NTYsQS5udGlsZGU9NTU2LEEuVWh1bmdhcnVtbGF1dD03MjIsQS5FYWN1dGU9NjY3LEEuZW1hY3Jvbj01NTYsQS5nYnJldmU9NTU2LEEub25lcXVhcnRlcj04MzQsQS5TY2Fyb249NjY3LEEuU2NvbW1hYWNjZW50PTY2NyxBLk9odW5nYXJ1bWxhdXQ9Nzc4LEEuZGVncmVlPTQwMCxBLm9ncmF2ZT01NTYsQS5DY2Fyb249NzIyLEEudWdyYXZlPTU1NixBLnJhZGljYWw9NDUzLEEuRGNhcm9uPTcyMixBLnJjb21tYWFjY2VudD0zMzMsQS5OdGlsZGU9NzIyLEEub3RpbGRlPTU1NixBLlJjb21tYWFjY2VudD03MjIsQS5MY29tbWFhY2NlbnQ9NTU2LEEuQXRpbGRlPTY2NyxBLkFvZ29uZWs9NjY3LEEuQXJpbmc9NjY3LEEuT3RpbGRlPTc3OCxBLnpkb3RhY2NlbnQ9NTAwLEEuRWNhcm9uPTY2NyxBLklvZ29uZWs9Mjc4LEEua2NvbW1hYWNjZW50PTUwMCxBLm1pbnVzPTU4NCxBLkljaXJjdW1mbGV4PTI3OCxBLm5jYXJvbj01NTYsQS50Y29tbWFhY2NlbnQ9Mjc4LEEubG9naWNhbG5vdD01ODQsQS5vZGllcmVzaXM9NTU2LEEudWRpZXJlc2lzPTU1NixBLm5vdGVxdWFsPTU0OSxBLmdjb21tYWFjY2VudD01NTYsQS5ldGg9NTU2LEEuemNhcm9uPTUwMCxBLm5jb21tYWFjY2VudD01NTYsQS5vbmVzdXBlcmlvcj0zMzMsQS5pbWFjcm9uPTI3OCxBLkV1cm89NTU2fSkpLEEuU3ltYm9sPWJBKChmdW5jdGlvbihBKXtBLnNwYWNlPTI1MCxBLmV4Y2xhbT0zMzMsQS51bml2ZXJzYWw9NzEzLEEubnVtYmVyc2lnbj01MDAsQS5leGlzdGVudGlhbD01NDksQS5wZXJjZW50PTgzMyxBLmFtcGVyc2FuZD03NzgsQS5zdWNodGhhdD00MzksQS5wYXJlbmxlZnQ9MzMzLEEucGFyZW5yaWdodD0zMzMsQS5hc3Rlcmlza21hdGg9NTAwLEEucGx1cz01NDksQS5jb21tYT0yNTAsQS5taW51cz01NDksQS5wZXJpb2Q9MjUwLEEuc2xhc2g9Mjc4LEEuemVybz01MDAsQS5vbmU9NTAwLEEudHdvPTUwMCxBLnRocmVlPTUwMCxBLmZvdXI9NTAwLEEuZml2ZT01MDAsQS5zaXg9NTAwLEEuc2V2ZW49NTAwLEEuZWlnaHQ9NTAwLEEubmluZT01MDAsQS5jb2xvbj0yNzgsQS5zZW1pY29sb249Mjc4LEEubGVzcz01NDksQS5lcXVhbD01NDksQS5ncmVhdGVyPTU0OSxBLnF1ZXN0aW9uPTQ0NCxBLmNvbmdydWVudD01NDksQS5BbHBoYT03MjIsQS5CZXRhPTY2NyxBLkNoaT03MjIsQS5EZWx0YT02MTIsQS5FcHNpbG9uPTYxMSxBLlBoaT03NjMsQS5HYW1tYT02MDMsQS5FdGE9NzIyLEEuSW90YT0zMzMsQS50aGV0YTE9NjMxLEEuS2FwcGE9NzIyLEEuTGFtYmRhPTY4NixBLk11PTg4OSxBLk51PTcyMixBLk9taWNyb249NzIyLEEuUGk9NzY4LEEuVGhldGE9NzQxLEEuUmhvPTU1NixBLlNpZ21hPTU5MixBLlRhdT02MTEsQS5VcHNpbG9uPTY5MCxBLnNpZ21hMT00MzksQS5PbWVnYT03NjgsQS5YaT02NDUsQS5Qc2k9Nzk1LEEuWmV0YT02MTEsQS5icmFja2V0bGVmdD0zMzMsQS50aGVyZWZvcmU9ODYzLEEuYnJhY2tldHJpZ2h0PTMzMyxBLnBlcnBlbmRpY3VsYXI9NjU4LEEudW5kZXJzY29yZT01MDAsQS5yYWRpY2FsZXg9NTAwLEEuYWxwaGE9NjMxLEEuYmV0YT01NDksQS5jaGk9NTQ5LEEuZGVsdGE9NDk0LEEuZXBzaWxvbj00MzksQS5waGk9NTIxLEEuZ2FtbWE9NDExLEEuZXRhPTYwMyxBLmlvdGE9MzI5LEEucGhpMT02MDMsQS5rYXBwYT01NDksQS5sYW1iZGE9NTQ5LEEubXU9NTc2LEEubnU9NTIxLEEub21pY3Jvbj01NDksQS5waT01NDksQS50aGV0YT01MjEsQS5yaG89NTQ5LEEuc2lnbWE9NjAzLEEudGF1PTQzOSxBLnVwc2lsb249NTc2LEEub21lZ2ExPTcxMyxBLm9tZWdhPTY4NixBLnhpPTQ5MyxBLnBzaT02ODYsQS56ZXRhPTQ5NCxBLmJyYWNlbGVmdD00ODAsQS5iYXI9MjAwLEEuYnJhY2VyaWdodD00ODAsQS5zaW1pbGFyPTU0OSxBLkV1cm89NzUwLEEuVXBzaWxvbjE9NjIwLEEubWludXRlPTI0NyxBLmxlc3NlcXVhbD01NDksQS5mcmFjdGlvbj0xNjcsQS5pbmZpbml0eT03MTMsQS5mbG9yaW49NTAwLEEuY2x1Yj03NTMsQS5kaWFtb25kPTc1MyxBLmhlYXJ0PTc1MyxBLnNwYWRlPTc1MyxBLmFycm93Ym90aD0xMDQyLEEuYXJyb3dsZWZ0PTk4NyxBLmFycm93dXA9NjAzLEEuYXJyb3dyaWdodD05ODcsQS5hcnJvd2Rvd249NjAzLEEuZGVncmVlPTQwMCxBLnBsdXNtaW51cz01NDksQS5zZWNvbmQ9NDExLEEuZ3JlYXRlcmVxdWFsPTU0OSxBLm11bHRpcGx5PTU0OSxBLnByb3BvcnRpb25hbD03MTMsQS5wYXJ0aWFsZGlmZj00OTQsQS5idWxsZXQ9NDYwLEEuZGl2aWRlPTU0OSxBLm5vdGVxdWFsPTU0OSxBLmVxdWl2YWxlbmNlPTU0OSxBLmFwcHJveGVxdWFsPTU0OSxBLmVsbGlwc2lzPTFlMyxBLmFycm93dmVydGV4PTYwMyxBLmFycm93aG9yaXpleD0xZTMsQS5jYXJyaWFnZXJldHVybj02NTgsQS5hbGVwaD04MjMsQS5JZnJha3R1cj02ODYsQS5SZnJha3R1cj03OTUsQS53ZWllcnN0cmFzcz05ODcsQS5jaXJjbGVtdWx0aXBseT03NjgsQS5jaXJjbGVwbHVzPTc2OCxBLmVtcHR5c2V0PTgyMyxBLmludGVyc2VjdGlvbj03NjgsQS51bmlvbj03NjgsQS5wcm9wZXJzdXBlcnNldD03MTMsQS5yZWZsZXhzdXBlcnNldD03MTMsQS5ub3RzdWJzZXQ9NzEzLEEucHJvcGVyc3Vic2V0PTcxMyxBLnJlZmxleHN1YnNldD03MTMsQS5lbGVtZW50PTcxMyxBLm5vdGVsZW1lbnQ9NzEzLEEuYW5nbGU9NzY4LEEuZ3JhZGllbnQ9NzEzLEEucmVnaXN0ZXJzZXJpZj03OTAsQS5jb3B5cmlnaHRzZXJpZj03OTAsQS50cmFkZW1hcmtzZXJpZj04OTAsQS5wcm9kdWN0PTgyMyxBLnJhZGljYWw9NTQ5LEEuZG90bWF0aD0yNTAsQS5sb2dpY2Fsbm90PTcxMyxBLmxvZ2ljYWxhbmQ9NjAzLEEubG9naWNhbG9yPTYwMyxBLmFycm93ZGJsYm90aD0xMDQyLEEuYXJyb3dkYmxsZWZ0PTk4NyxBLmFycm93ZGJsdXA9NjAzLEEuYXJyb3dkYmxyaWdodD05ODcsQS5hcnJvd2RibGRvd249NjAzLEEubG96ZW5nZT00OTQsQS5hbmdsZWxlZnQ9MzI5LEEucmVnaXN0ZXJzYW5zPTc5MCxBLmNvcHlyaWdodHNhbnM9NzkwLEEudHJhZGVtYXJrc2Fucz03ODYsQS5zdW1tYXRpb249NzEzLEEucGFyZW5sZWZ0dHA9Mzg0LEEucGFyZW5sZWZ0ZXg9Mzg0LEEucGFyZW5sZWZ0YnQ9Mzg0LEEuYnJhY2tldGxlZnR0cD0zODQsQS5icmFja2V0bGVmdGV4PTM4NCxBLmJyYWNrZXRsZWZ0YnQ9Mzg0LEEuYnJhY2VsZWZ0dHA9NDk0LEEuYnJhY2VsZWZ0bWlkPTQ5NCxBLmJyYWNlbGVmdGJ0PTQ5NCxBLmJyYWNlZXg9NDk0LEEuYW5nbGVyaWdodD0zMjksQS5pbnRlZ3JhbD0yNzQsQS5pbnRlZ3JhbHRwPTY4NixBLmludGVncmFsZXg9Njg2LEEuaW50ZWdyYWxidD02ODYsQS5wYXJlbnJpZ2h0dHA9Mzg0LEEucGFyZW5yaWdodGV4PTM4NCxBLnBhcmVucmlnaHRidD0zODQsQS5icmFja2V0cmlnaHR0cD0zODQsQS5icmFja2V0cmlnaHRleD0zODQsQS5icmFja2V0cmlnaHRidD0zODQsQS5icmFjZXJpZ2h0dHA9NDk0LEEuYnJhY2VyaWdodG1pZD00OTQsQS5icmFjZXJpZ2h0YnQ9NDk0LEEuYXBwbGU9NzkwfSkpLEFbIlRpbWVzLVJvbWFuIl09YkEoKGZ1bmN0aW9uKEEpe0Euc3BhY2U9MjUwLEEuZXhjbGFtPTMzMyxBLnF1b3RlZGJsPTQwOCxBLm51bWJlcnNpZ249NTAwLEEuZG9sbGFyPTUwMCxBLnBlcmNlbnQ9ODMzLEEuYW1wZXJzYW5kPTc3OCxBLnF1b3RlcmlnaHQ9MzMzLEEucGFyZW5sZWZ0PTMzMyxBLnBhcmVucmlnaHQ9MzMzLEEuYXN0ZXJpc2s9NTAwLEEucGx1cz01NjQsQS5jb21tYT0yNTAsQS5oeXBoZW49MzMzLEEucGVyaW9kPTI1MCxBLnNsYXNoPTI3OCxBLnplcm89NTAwLEEub25lPTUwMCxBLnR3bz01MDAsQS50aHJlZT01MDAsQS5mb3VyPTUwMCxBLmZpdmU9NTAwLEEuc2l4PTUwMCxBLnNldmVuPTUwMCxBLmVpZ2h0PTUwMCxBLm5pbmU9NTAwLEEuY29sb249Mjc4LEEuc2VtaWNvbG9uPTI3OCxBLmxlc3M9NTY0LEEuZXF1YWw9NTY0LEEuZ3JlYXRlcj01NjQsQS5xdWVzdGlvbj00NDQsQS5hdD05MjEsQS5BPTcyMixBLkI9NjY3LEEuQz02NjcsQS5EPTcyMixBLkU9NjExLEEuRj01NTYsQS5HPTcyMixBLkg9NzIyLEEuST0zMzMsQS5KPTM4OSxBLks9NzIyLEEuTD02MTEsQS5NPTg4OSxBLk49NzIyLEEuTz03MjIsQS5QPTU1NixBLlE9NzIyLEEuUj02NjcsQS5TPTU1NixBLlQ9NjExLEEuVT03MjIsQS5WPTcyMixBLlc9OTQ0LEEuWD03MjIsQS5ZPTcyMixBLlo9NjExLEEuYnJhY2tldGxlZnQ9MzMzLEEuYmFja3NsYXNoPTI3OCxBLmJyYWNrZXRyaWdodD0zMzMsQS5hc2NpaWNpcmN1bT00NjksQS51bmRlcnNjb3JlPTUwMCxBLnF1b3RlbGVmdD0zMzMsQS5hPTQ0NCxBLmI9NTAwLEEuYz00NDQsQS5kPTUwMCxBLmU9NDQ0LEEuZj0zMzMsQS5nPTUwMCxBLmg9NTAwLEEuaT0yNzgsQS5qPTI3OCxBLms9NTAwLEEubD0yNzgsQS5tPTc3OCxBLm49NTAwLEEubz01MDAsQS5wPTUwMCxBLnE9NTAwLEEucj0zMzMsQS5zPTM4OSxBLnQ9Mjc4LEEudT01MDAsQS52PTUwMCxBLnc9NzIyLEEueD01MDAsQS55PTUwMCxBLno9NDQ0LEEuYnJhY2VsZWZ0PTQ4MCxBLmJhcj0yMDAsQS5icmFjZXJpZ2h0PTQ4MCxBLmFzY2lpdGlsZGU9NTQxLEEuZXhjbGFtZG93bj0zMzMsQS5jZW50PTUwMCxBLnN0ZXJsaW5nPTUwMCxBLmZyYWN0aW9uPTE2NyxBLnllbj01MDAsQS5mbG9yaW49NTAwLEEuc2VjdGlvbj01MDAsQS5jdXJyZW5jeT01MDAsQS5xdW90ZXNpbmdsZT0xODAsQS5xdW90ZWRibGxlZnQ9NDQ0LEEuZ3VpbGxlbW90bGVmdD01MDAsQS5ndWlsc2luZ2xsZWZ0PTMzMyxBLmd1aWxzaW5nbHJpZ2h0PTMzMyxBLmZpPTU1NixBLmZsPTU1NixBLmVuZGFzaD01MDAsQS5kYWdnZXI9NTAwLEEuZGFnZ2VyZGJsPTUwMCxBLnBlcmlvZGNlbnRlcmVkPTI1MCxBLnBhcmFncmFwaD00NTMsQS5idWxsZXQ9MzUwLEEucXVvdGVzaW5nbGJhc2U9MzMzLEEucXVvdGVkYmxiYXNlPTQ0NCxBLnF1b3RlZGJscmlnaHQ9NDQ0LEEuZ3VpbGxlbW90cmlnaHQ9NTAwLEEuZWxsaXBzaXM9MWUzLEEucGVydGhvdXNhbmQ9MWUzLEEucXVlc3Rpb25kb3duPTQ0NCxBLmdyYXZlPTMzMyxBLmFjdXRlPTMzMyxBLmNpcmN1bWZsZXg9MzMzLEEudGlsZGU9MzMzLEEubWFjcm9uPTMzMyxBLmJyZXZlPTMzMyxBLmRvdGFjY2VudD0zMzMsQS5kaWVyZXNpcz0zMzMsQS5yaW5nPTMzMyxBLmNlZGlsbGE9MzMzLEEuaHVuZ2FydW1sYXV0PTMzMyxBLm9nb25laz0zMzMsQS5jYXJvbj0zMzMsQS5lbWRhc2g9MWUzLEEuQUU9ODg5LEEub3JkZmVtaW5pbmU9Mjc2LEEuTHNsYXNoPTYxMSxBLk9zbGFzaD03MjIsQS5PRT04ODksQS5vcmRtYXNjdWxpbmU9MzEwLEEuYWU9NjY3LEEuZG90bGVzc2k9Mjc4LEEubHNsYXNoPTI3OCxBLm9zbGFzaD01MDAsQS5vZT03MjIsQS5nZXJtYW5kYmxzPTUwMCxBLklkaWVyZXNpcz0zMzMsQS5lYWN1dGU9NDQ0LEEuYWJyZXZlPTQ0NCxBLnVodW5nYXJ1bWxhdXQ9NTAwLEEuZWNhcm9uPTQ0NCxBLllkaWVyZXNpcz03MjIsQS5kaXZpZGU9NTY0LEEuWWFjdXRlPTcyMixBLkFjaXJjdW1mbGV4PTcyMixBLmFhY3V0ZT00NDQsQS5VY2lyY3VtZmxleD03MjIsQS55YWN1dGU9NTAwLEEuc2NvbW1hYWNjZW50PTM4OSxBLmVjaXJjdW1mbGV4PTQ0NCxBLlVyaW5nPTcyMixBLlVkaWVyZXNpcz03MjIsQS5hb2dvbmVrPTQ0NCxBLlVhY3V0ZT03MjIsQS51b2dvbmVrPTUwMCxBLkVkaWVyZXNpcz02MTEsQS5EY3JvYXQ9NzIyLEEuY29tbWFhY2NlbnQ9MjUwLEEuY29weXJpZ2h0PTc2MCxBLkVtYWNyb249NjExLEEuY2Nhcm9uPTQ0NCxBLmFyaW5nPTQ0NCxBLk5jb21tYWFjY2VudD03MjIsQS5sYWN1dGU9Mjc4LEEuYWdyYXZlPTQ0NCxBLlRjb21tYWFjY2VudD02MTEsQS5DYWN1dGU9NjY3LEEuYXRpbGRlPTQ0NCxBLkVkb3RhY2NlbnQ9NjExLEEuc2Nhcm9uPTM4OSxBLnNjZWRpbGxhPTM4OSxBLmlhY3V0ZT0yNzgsQS5sb3plbmdlPTQ3MSxBLlJjYXJvbj02NjcsQS5HY29tbWFhY2NlbnQ9NzIyLEEudWNpcmN1bWZsZXg9NTAwLEEuYWNpcmN1bWZsZXg9NDQ0LEEuQW1hY3Jvbj03MjIsQS5yY2Fyb249MzMzLEEuY2NlZGlsbGE9NDQ0LEEuWmRvdGFjY2VudD02MTEsQS5UaG9ybj01NTYsQS5PbWFjcm9uPTcyMixBLlJhY3V0ZT02NjcsQS5TYWN1dGU9NTU2LEEuZGNhcm9uPTU4OCxBLlVtYWNyb249NzIyLEEudXJpbmc9NTAwLEEudGhyZWVzdXBlcmlvcj0zMDAsQS5PZ3JhdmU9NzIyLEEuQWdyYXZlPTcyMixBLkFicmV2ZT03MjIsQS5tdWx0aXBseT01NjQsQS51YWN1dGU9NTAwLEEuVGNhcm9uPTYxMSxBLnBhcnRpYWxkaWZmPTQ3NixBLnlkaWVyZXNpcz01MDAsQS5OYWN1dGU9NzIyLEEuaWNpcmN1bWZsZXg9Mjc4LEEuRWNpcmN1bWZsZXg9NjExLEEuYWRpZXJlc2lzPTQ0NCxBLmVkaWVyZXNpcz00NDQsQS5jYWN1dGU9NDQ0LEEubmFjdXRlPTUwMCxBLnVtYWNyb249NTAwLEEuTmNhcm9uPTcyMixBLklhY3V0ZT0zMzMsQS5wbHVzbWludXM9NTY0LEEuYnJva2VuYmFyPTIwMCxBLnJlZ2lzdGVyZWQ9NzYwLEEuR2JyZXZlPTcyMixBLklkb3RhY2NlbnQ9MzMzLEEuc3VtbWF0aW9uPTYwMCxBLkVncmF2ZT02MTEsQS5yYWN1dGU9MzMzLEEub21hY3Jvbj01MDAsQS5aYWN1dGU9NjExLEEuWmNhcm9uPTYxMSxBLmdyZWF0ZXJlcXVhbD01NDksQS5FdGg9NzIyLEEuQ2NlZGlsbGE9NjY3LEEubGNvbW1hYWNjZW50PTI3OCxBLnRjYXJvbj0zMjYsQS5lb2dvbmVrPTQ0NCxBLlVvZ29uZWs9NzIyLEEuQWFjdXRlPTcyMixBLkFkaWVyZXNpcz03MjIsQS5lZ3JhdmU9NDQ0LEEuemFjdXRlPTQ0NCxBLmlvZ29uZWs9Mjc4LEEuT2FjdXRlPTcyMixBLm9hY3V0ZT01MDAsQS5hbWFjcm9uPTQ0NCxBLnNhY3V0ZT0zODksQS5pZGllcmVzaXM9Mjc4LEEuT2NpcmN1bWZsZXg9NzIyLEEuVWdyYXZlPTcyMixBLkRlbHRhPTYxMixBLnRob3JuPTUwMCxBLnR3b3N1cGVyaW9yPTMwMCxBLk9kaWVyZXNpcz03MjIsQS5tdT01MDAsQS5pZ3JhdmU9Mjc4LEEub2h1bmdhcnVtbGF1dD01MDAsQS5Fb2dvbmVrPTYxMSxBLmRjcm9hdD01MDAsQS50aHJlZXF1YXJ0ZXJzPTc1MCxBLlNjZWRpbGxhPTU1NixBLmxjYXJvbj0zNDQsQS5LY29tbWFhY2NlbnQ9NzIyLEEuTGFjdXRlPTYxMSxBLnRyYWRlbWFyaz05ODAsQS5lZG90YWNjZW50PTQ0NCxBLklncmF2ZT0zMzMsQS5JbWFjcm9uPTMzMyxBLkxjYXJvbj02MTEsQS5vbmVoYWxmPTc1MCxBLmxlc3NlcXVhbD01NDksQS5vY2lyY3VtZmxleD01MDAsQS5udGlsZGU9NTAwLEEuVWh1bmdhcnVtbGF1dD03MjIsQS5FYWN1dGU9NjExLEEuZW1hY3Jvbj00NDQsQS5nYnJldmU9NTAwLEEub25lcXVhcnRlcj03NTAsQS5TY2Fyb249NTU2LEEuU2NvbW1hYWNjZW50PTU1NixBLk9odW5nYXJ1bWxhdXQ9NzIyLEEuZGVncmVlPTQwMCxBLm9ncmF2ZT01MDAsQS5DY2Fyb249NjY3LEEudWdyYXZlPTUwMCxBLnJhZGljYWw9NDUzLEEuRGNhcm9uPTcyMixBLnJjb21tYWFjY2VudD0zMzMsQS5OdGlsZGU9NzIyLEEub3RpbGRlPTUwMCxBLlJjb21tYWFjY2VudD02NjcsQS5MY29tbWFhY2NlbnQ9NjExLEEuQXRpbGRlPTcyMixBLkFvZ29uZWs9NzIyLEEuQXJpbmc9NzIyLEEuT3RpbGRlPTcyMixBLnpkb3RhY2NlbnQ9NDQ0LEEuRWNhcm9uPTYxMSxBLklvZ29uZWs9MzMzLEEua2NvbW1hYWNjZW50PTUwMCxBLm1pbnVzPTU2NCxBLkljaXJjdW1mbGV4PTMzMyxBLm5jYXJvbj01MDAsQS50Y29tbWFhY2NlbnQ9Mjc4LEEubG9naWNhbG5vdD01NjQsQS5vZGllcmVzaXM9NTAwLEEudWRpZXJlc2lzPTUwMCxBLm5vdGVxdWFsPTU0OSxBLmdjb21tYWFjY2VudD01MDAsQS5ldGg9NTAwLEEuemNhcm9uPTQ0NCxBLm5jb21tYWFjY2VudD01MDAsQS5vbmVzdXBlcmlvcj0zMDAsQS5pbWFjcm9uPTI3OCxBLkV1cm89NTAwfSkpLEFbIlRpbWVzLUJvbGQiXT1iQSgoZnVuY3Rpb24oQSl7QS5zcGFjZT0yNTAsQS5leGNsYW09MzMzLEEucXVvdGVkYmw9NTU1LEEubnVtYmVyc2lnbj01MDAsQS5kb2xsYXI9NTAwLEEucGVyY2VudD0xZTMsQS5hbXBlcnNhbmQ9ODMzLEEucXVvdGVyaWdodD0zMzMsQS5wYXJlbmxlZnQ9MzMzLEEucGFyZW5yaWdodD0zMzMsQS5hc3Rlcmlzaz01MDAsQS5wbHVzPTU3MCxBLmNvbW1hPTI1MCxBLmh5cGhlbj0zMzMsQS5wZXJpb2Q9MjUwLEEuc2xhc2g9Mjc4LEEuemVybz01MDAsQS5vbmU9NTAwLEEudHdvPTUwMCxBLnRocmVlPTUwMCxBLmZvdXI9NTAwLEEuZml2ZT01MDAsQS5zaXg9NTAwLEEuc2V2ZW49NTAwLEEuZWlnaHQ9NTAwLEEubmluZT01MDAsQS5jb2xvbj0zMzMsQS5zZW1pY29sb249MzMzLEEubGVzcz01NzAsQS5lcXVhbD01NzAsQS5ncmVhdGVyPTU3MCxBLnF1ZXN0aW9uPTUwMCxBLmF0PTkzMCxBLkE9NzIyLEEuQj02NjcsQS5DPTcyMixBLkQ9NzIyLEEuRT02NjcsQS5GPTYxMSxBLkc9Nzc4LEEuSD03NzgsQS5JPTM4OSxBLko9NTAwLEEuSz03NzgsQS5MPTY2NyxBLk09OTQ0LEEuTj03MjIsQS5PPTc3OCxBLlA9NjExLEEuUT03NzgsQS5SPTcyMixBLlM9NTU2LEEuVD02NjcsQS5VPTcyMixBLlY9NzIyLEEuVz0xZTMsQS5YPTcyMixBLlk9NzIyLEEuWj02NjcsQS5icmFja2V0bGVmdD0zMzMsQS5iYWNrc2xhc2g9Mjc4LEEuYnJhY2tldHJpZ2h0PTMzMyxBLmFzY2lpY2lyY3VtPTU4MSxBLnVuZGVyc2NvcmU9NTAwLEEucXVvdGVsZWZ0PTMzMyxBLmE9NTAwLEEuYj01NTYsQS5jPTQ0NCxBLmQ9NTU2LEEuZT00NDQsQS5mPTMzMyxBLmc9NTAwLEEuaD01NTYsQS5pPTI3OCxBLmo9MzMzLEEuaz01NTYsQS5sPTI3OCxBLm09ODMzLEEubj01NTYsQS5vPTUwMCxBLnA9NTU2LEEucT01NTYsQS5yPTQ0NCxBLnM9Mzg5LEEudD0zMzMsQS51PTU1NixBLnY9NTAwLEEudz03MjIsQS54PTUwMCxBLnk9NTAwLEEuej00NDQsQS5icmFjZWxlZnQ9Mzk0LEEuYmFyPTIyMCxBLmJyYWNlcmlnaHQ9Mzk0LEEuYXNjaWl0aWxkZT01MjAsQS5leGNsYW1kb3duPTMzMyxBLmNlbnQ9NTAwLEEuc3Rlcmxpbmc9NTAwLEEuZnJhY3Rpb249MTY3LEEueWVuPTUwMCxBLmZsb3Jpbj01MDAsQS5zZWN0aW9uPTUwMCxBLmN1cnJlbmN5PTUwMCxBLnF1b3Rlc2luZ2xlPTI3OCxBLnF1b3RlZGJsbGVmdD01MDAsQS5ndWlsbGVtb3RsZWZ0PTUwMCxBLmd1aWxzaW5nbGxlZnQ9MzMzLEEuZ3VpbHNpbmdscmlnaHQ9MzMzLEEuZmk9NTU2LEEuZmw9NTU2LEEuZW5kYXNoPTUwMCxBLmRhZ2dlcj01MDAsQS5kYWdnZXJkYmw9NTAwLEEucGVyaW9kY2VudGVyZWQ9MjUwLEEucGFyYWdyYXBoPTU0MCxBLmJ1bGxldD0zNTAsQS5xdW90ZXNpbmdsYmFzZT0zMzMsQS5xdW90ZWRibGJhc2U9NTAwLEEucXVvdGVkYmxyaWdodD01MDAsQS5ndWlsbGVtb3RyaWdodD01MDAsQS5lbGxpcHNpcz0xZTMsQS5wZXJ0aG91c2FuZD0xZTMsQS5xdWVzdGlvbmRvd249NTAwLEEuZ3JhdmU9MzMzLEEuYWN1dGU9MzMzLEEuY2lyY3VtZmxleD0zMzMsQS50aWxkZT0zMzMsQS5tYWNyb249MzMzLEEuYnJldmU9MzMzLEEuZG90YWNjZW50PTMzMyxBLmRpZXJlc2lzPTMzMyxBLnJpbmc9MzMzLEEuY2VkaWxsYT0zMzMsQS5odW5nYXJ1bWxhdXQ9MzMzLEEub2dvbmVrPTMzMyxBLmNhcm9uPTMzMyxBLmVtZGFzaD0xZTMsQS5BRT0xZTMsQS5vcmRmZW1pbmluZT0zMDAsQS5Mc2xhc2g9NjY3LEEuT3NsYXNoPTc3OCxBLk9FPTFlMyxBLm9yZG1hc2N1bGluZT0zMzAsQS5hZT03MjIsQS5kb3RsZXNzaT0yNzgsQS5sc2xhc2g9Mjc4LEEub3NsYXNoPTUwMCxBLm9lPTcyMixBLmdlcm1hbmRibHM9NTU2LEEuSWRpZXJlc2lzPTM4OSxBLmVhY3V0ZT00NDQsQS5hYnJldmU9NTAwLEEudWh1bmdhcnVtbGF1dD01NTYsQS5lY2Fyb249NDQ0LEEuWWRpZXJlc2lzPTcyMixBLmRpdmlkZT01NzAsQS5ZYWN1dGU9NzIyLEEuQWNpcmN1bWZsZXg9NzIyLEEuYWFjdXRlPTUwMCxBLlVjaXJjdW1mbGV4PTcyMixBLnlhY3V0ZT01MDAsQS5zY29tbWFhY2NlbnQ9Mzg5LEEuZWNpcmN1bWZsZXg9NDQ0LEEuVXJpbmc9NzIyLEEuVWRpZXJlc2lzPTcyMixBLmFvZ29uZWs9NTAwLEEuVWFjdXRlPTcyMixBLnVvZ29uZWs9NTU2LEEuRWRpZXJlc2lzPTY2NyxBLkRjcm9hdD03MjIsQS5jb21tYWFjY2VudD0yNTAsQS5jb3B5cmlnaHQ9NzQ3LEEuRW1hY3Jvbj02NjcsQS5jY2Fyb249NDQ0LEEuYXJpbmc9NTAwLEEuTmNvbW1hYWNjZW50PTcyMixBLmxhY3V0ZT0yNzgsQS5hZ3JhdmU9NTAwLEEuVGNvbW1hYWNjZW50PTY2NyxBLkNhY3V0ZT03MjIsQS5hdGlsZGU9NTAwLEEuRWRvdGFjY2VudD02NjcsQS5zY2Fyb249Mzg5LEEuc2NlZGlsbGE9Mzg5LEEuaWFjdXRlPTI3OCxBLmxvemVuZ2U9NDk0LEEuUmNhcm9uPTcyMixBLkdjb21tYWFjY2VudD03NzgsQS51Y2lyY3VtZmxleD01NTYsQS5hY2lyY3VtZmxleD01MDAsQS5BbWFjcm9uPTcyMixBLnJjYXJvbj00NDQsQS5jY2VkaWxsYT00NDQsQS5aZG90YWNjZW50PTY2NyxBLlRob3JuPTYxMSxBLk9tYWNyb249Nzc4LEEuUmFjdXRlPTcyMixBLlNhY3V0ZT01NTYsQS5kY2Fyb249NjcyLEEuVW1hY3Jvbj03MjIsQS51cmluZz01NTYsQS50aHJlZXN1cGVyaW9yPTMwMCxBLk9ncmF2ZT03NzgsQS5BZ3JhdmU9NzIyLEEuQWJyZXZlPTcyMixBLm11bHRpcGx5PTU3MCxBLnVhY3V0ZT01NTYsQS5UY2Fyb249NjY3LEEucGFydGlhbGRpZmY9NDk0LEEueWRpZXJlc2lzPTUwMCxBLk5hY3V0ZT03MjIsQS5pY2lyY3VtZmxleD0yNzgsQS5FY2lyY3VtZmxleD02NjcsQS5hZGllcmVzaXM9NTAwLEEuZWRpZXJlc2lzPTQ0NCxBLmNhY3V0ZT00NDQsQS5uYWN1dGU9NTU2LEEudW1hY3Jvbj01NTYsQS5OY2Fyb249NzIyLEEuSWFjdXRlPTM4OSxBLnBsdXNtaW51cz01NzAsQS5icm9rZW5iYXI9MjIwLEEucmVnaXN0ZXJlZD03NDcsQS5HYnJldmU9Nzc4LEEuSWRvdGFjY2VudD0zODksQS5zdW1tYXRpb249NjAwLEEuRWdyYXZlPTY2NyxBLnJhY3V0ZT00NDQsQS5vbWFjcm9uPTUwMCxBLlphY3V0ZT02NjcsQS5aY2Fyb249NjY3LEEuZ3JlYXRlcmVxdWFsPTU0OSxBLkV0aD03MjIsQS5DY2VkaWxsYT03MjIsQS5sY29tbWFhY2NlbnQ9Mjc4LEEudGNhcm9uPTQxNixBLmVvZ29uZWs9NDQ0LEEuVW9nb25laz03MjIsQS5BYWN1dGU9NzIyLEEuQWRpZXJlc2lzPTcyMixBLmVncmF2ZT00NDQsQS56YWN1dGU9NDQ0LEEuaW9nb25laz0yNzgsQS5PYWN1dGU9Nzc4LEEub2FjdXRlPTUwMCxBLmFtYWNyb249NTAwLEEuc2FjdXRlPTM4OSxBLmlkaWVyZXNpcz0yNzgsQS5PY2lyY3VtZmxleD03NzgsQS5VZ3JhdmU9NzIyLEEuRGVsdGE9NjEyLEEudGhvcm49NTU2LEEudHdvc3VwZXJpb3I9MzAwLEEuT2RpZXJlc2lzPTc3OCxBLm11PTU1NixBLmlncmF2ZT0yNzgsQS5vaHVuZ2FydW1sYXV0PTUwMCxBLkVvZ29uZWs9NjY3LEEuZGNyb2F0PTU1NixBLnRocmVlcXVhcnRlcnM9NzUwLEEuU2NlZGlsbGE9NTU2LEEubGNhcm9uPTM5NCxBLktjb21tYWFjY2VudD03NzgsQS5MYWN1dGU9NjY3LEEudHJhZGVtYXJrPTFlMyxBLmVkb3RhY2NlbnQ9NDQ0LEEuSWdyYXZlPTM4OSxBLkltYWNyb249Mzg5LEEuTGNhcm9uPTY2NyxBLm9uZWhhbGY9NzUwLEEubGVzc2VxdWFsPTU0OSxBLm9jaXJjdW1mbGV4PTUwMCxBLm50aWxkZT01NTYsQS5VaHVuZ2FydW1sYXV0PTcyMixBLkVhY3V0ZT02NjcsQS5lbWFjcm9uPTQ0NCxBLmdicmV2ZT01MDAsQS5vbmVxdWFydGVyPTc1MCxBLlNjYXJvbj01NTYsQS5TY29tbWFhY2NlbnQ9NTU2LEEuT2h1bmdhcnVtbGF1dD03NzgsQS5kZWdyZWU9NDAwLEEub2dyYXZlPTUwMCxBLkNjYXJvbj03MjIsQS51Z3JhdmU9NTU2LEEucmFkaWNhbD01NDksQS5EY2Fyb249NzIyLEEucmNvbW1hYWNjZW50PTQ0NCxBLk50aWxkZT03MjIsQS5vdGlsZGU9NTAwLEEuUmNvbW1hYWNjZW50PTcyMixBLkxjb21tYWFjY2VudD02NjcsQS5BdGlsZGU9NzIyLEEuQW9nb25laz03MjIsQS5BcmluZz03MjIsQS5PdGlsZGU9Nzc4LEEuemRvdGFjY2VudD00NDQsQS5FY2Fyb249NjY3LEEuSW9nb25laz0zODksQS5rY29tbWFhY2NlbnQ9NTU2LEEubWludXM9NTcwLEEuSWNpcmN1bWZsZXg9Mzg5LEEubmNhcm9uPTU1NixBLnRjb21tYWFjY2VudD0zMzMsQS5sb2dpY2Fsbm90PTU3MCxBLm9kaWVyZXNpcz01MDAsQS51ZGllcmVzaXM9NTU2LEEubm90ZXF1YWw9NTQ5LEEuZ2NvbW1hYWNjZW50PTUwMCxBLmV0aD01MDAsQS56Y2Fyb249NDQ0LEEubmNvbW1hYWNjZW50PTU1NixBLm9uZXN1cGVyaW9yPTMwMCxBLmltYWNyb249Mjc4LEEuRXVybz01MDB9KSksQVsiVGltZXMtQm9sZEl0YWxpYyJdPWJBKChmdW5jdGlvbihBKXtBLnNwYWNlPTI1MCxBLmV4Y2xhbT0zODksQS5xdW90ZWRibD01NTUsQS5udW1iZXJzaWduPTUwMCxBLmRvbGxhcj01MDAsQS5wZXJjZW50PTgzMyxBLmFtcGVyc2FuZD03NzgsQS5xdW90ZXJpZ2h0PTMzMyxBLnBhcmVubGVmdD0zMzMsQS5wYXJlbnJpZ2h0PTMzMyxBLmFzdGVyaXNrPTUwMCxBLnBsdXM9NTcwLEEuY29tbWE9MjUwLEEuaHlwaGVuPTMzMyxBLnBlcmlvZD0yNTAsQS5zbGFzaD0yNzgsQS56ZXJvPTUwMCxBLm9uZT01MDAsQS50d289NTAwLEEudGhyZWU9NTAwLEEuZm91cj01MDAsQS5maXZlPTUwMCxBLnNpeD01MDAsQS5zZXZlbj01MDAsQS5laWdodD01MDAsQS5uaW5lPTUwMCxBLmNvbG9uPTMzMyxBLnNlbWljb2xvbj0zMzMsQS5sZXNzPTU3MCxBLmVxdWFsPTU3MCxBLmdyZWF0ZXI9NTcwLEEucXVlc3Rpb249NTAwLEEuYXQ9ODMyLEEuQT02NjcsQS5CPTY2NyxBLkM9NjY3LEEuRD03MjIsQS5FPTY2NyxBLkY9NjY3LEEuRz03MjIsQS5IPTc3OCxBLkk9Mzg5LEEuSj01MDAsQS5LPTY2NyxBLkw9NjExLEEuTT04ODksQS5OPTcyMixBLk89NzIyLEEuUD02MTEsQS5RPTcyMixBLlI9NjY3LEEuUz01NTYsQS5UPTYxMSxBLlU9NzIyLEEuVj02NjcsQS5XPTg4OSxBLlg9NjY3LEEuWT02MTEsQS5aPTYxMSxBLmJyYWNrZXRsZWZ0PTMzMyxBLmJhY2tzbGFzaD0yNzgsQS5icmFja2V0cmlnaHQ9MzMzLEEuYXNjaWljaXJjdW09NTcwLEEudW5kZXJzY29yZT01MDAsQS5xdW90ZWxlZnQ9MzMzLEEuYT01MDAsQS5iPTUwMCxBLmM9NDQ0LEEuZD01MDAsQS5lPTQ0NCxBLmY9MzMzLEEuZz01MDAsQS5oPTU1NixBLmk9Mjc4LEEuaj0yNzgsQS5rPTUwMCxBLmw9Mjc4LEEubT03NzgsQS5uPTU1NixBLm89NTAwLEEucD01MDAsQS5xPTUwMCxBLnI9Mzg5LEEucz0zODksQS50PTI3OCxBLnU9NTU2LEEudj00NDQsQS53PTY2NyxBLng9NTAwLEEueT00NDQsQS56PTM4OSxBLmJyYWNlbGVmdD0zNDgsQS5iYXI9MjIwLEEuYnJhY2VyaWdodD0zNDgsQS5hc2NpaXRpbGRlPTU3MCxBLmV4Y2xhbWRvd249Mzg5LEEuY2VudD01MDAsQS5zdGVybGluZz01MDAsQS5mcmFjdGlvbj0xNjcsQS55ZW49NTAwLEEuZmxvcmluPTUwMCxBLnNlY3Rpb249NTAwLEEuY3VycmVuY3k9NTAwLEEucXVvdGVzaW5nbGU9Mjc4LEEucXVvdGVkYmxsZWZ0PTUwMCxBLmd1aWxsZW1vdGxlZnQ9NTAwLEEuZ3VpbHNpbmdsbGVmdD0zMzMsQS5ndWlsc2luZ2xyaWdodD0zMzMsQS5maT01NTYsQS5mbD01NTYsQS5lbmRhc2g9NTAwLEEuZGFnZ2VyPTUwMCxBLmRhZ2dlcmRibD01MDAsQS5wZXJpb2RjZW50ZXJlZD0yNTAsQS5wYXJhZ3JhcGg9NTAwLEEuYnVsbGV0PTM1MCxBLnF1b3Rlc2luZ2xiYXNlPTMzMyxBLnF1b3RlZGJsYmFzZT01MDAsQS5xdW90ZWRibHJpZ2h0PTUwMCxBLmd1aWxsZW1vdHJpZ2h0PTUwMCxBLmVsbGlwc2lzPTFlMyxBLnBlcnRob3VzYW5kPTFlMyxBLnF1ZXN0aW9uZG93bj01MDAsQS5ncmF2ZT0zMzMsQS5hY3V0ZT0zMzMsQS5jaXJjdW1mbGV4PTMzMyxBLnRpbGRlPTMzMyxBLm1hY3Jvbj0zMzMsQS5icmV2ZT0zMzMsQS5kb3RhY2NlbnQ9MzMzLEEuZGllcmVzaXM9MzMzLEEucmluZz0zMzMsQS5jZWRpbGxhPTMzMyxBLmh1bmdhcnVtbGF1dD0zMzMsQS5vZ29uZWs9MzMzLEEuY2Fyb249MzMzLEEuZW1kYXNoPTFlMyxBLkFFPTk0NCxBLm9yZGZlbWluaW5lPTI2NixBLkxzbGFzaD02MTEsQS5Pc2xhc2g9NzIyLEEuT0U9OTQ0LEEub3JkbWFzY3VsaW5lPTMwMCxBLmFlPTcyMixBLmRvdGxlc3NpPTI3OCxBLmxzbGFzaD0yNzgsQS5vc2xhc2g9NTAwLEEub2U9NzIyLEEuZ2VybWFuZGJscz01MDAsQS5JZGllcmVzaXM9Mzg5LEEuZWFjdXRlPTQ0NCxBLmFicmV2ZT01MDAsQS51aHVuZ2FydW1sYXV0PTU1NixBLmVjYXJvbj00NDQsQS5ZZGllcmVzaXM9NjExLEEuZGl2aWRlPTU3MCxBLllhY3V0ZT02MTEsQS5BY2lyY3VtZmxleD02NjcsQS5hYWN1dGU9NTAwLEEuVWNpcmN1bWZsZXg9NzIyLEEueWFjdXRlPTQ0NCxBLnNjb21tYWFjY2VudD0zODksQS5lY2lyY3VtZmxleD00NDQsQS5VcmluZz03MjIsQS5VZGllcmVzaXM9NzIyLEEuYW9nb25laz01MDAsQS5VYWN1dGU9NzIyLEEudW9nb25laz01NTYsQS5FZGllcmVzaXM9NjY3LEEuRGNyb2F0PTcyMixBLmNvbW1hYWNjZW50PTI1MCxBLmNvcHlyaWdodD03NDcsQS5FbWFjcm9uPTY2NyxBLmNjYXJvbj00NDQsQS5hcmluZz01MDAsQS5OY29tbWFhY2NlbnQ9NzIyLEEubGFjdXRlPTI3OCxBLmFncmF2ZT01MDAsQS5UY29tbWFhY2NlbnQ9NjExLEEuQ2FjdXRlPTY2NyxBLmF0aWxkZT01MDAsQS5FZG90YWNjZW50PTY2NyxBLnNjYXJvbj0zODksQS5zY2VkaWxsYT0zODksQS5pYWN1dGU9Mjc4LEEubG96ZW5nZT00OTQsQS5SY2Fyb249NjY3LEEuR2NvbW1hYWNjZW50PTcyMixBLnVjaXJjdW1mbGV4PTU1NixBLmFjaXJjdW1mbGV4PTUwMCxBLkFtYWNyb249NjY3LEEucmNhcm9uPTM4OSxBLmNjZWRpbGxhPTQ0NCxBLlpkb3RhY2NlbnQ9NjExLEEuVGhvcm49NjExLEEuT21hY3Jvbj03MjIsQS5SYWN1dGU9NjY3LEEuU2FjdXRlPTU1NixBLmRjYXJvbj02MDgsQS5VbWFjcm9uPTcyMixBLnVyaW5nPTU1NixBLnRocmVlc3VwZXJpb3I9MzAwLEEuT2dyYXZlPTcyMixBLkFncmF2ZT02NjcsQS5BYnJldmU9NjY3LEEubXVsdGlwbHk9NTcwLEEudWFjdXRlPTU1NixBLlRjYXJvbj02MTEsQS5wYXJ0aWFsZGlmZj00OTQsQS55ZGllcmVzaXM9NDQ0LEEuTmFjdXRlPTcyMixBLmljaXJjdW1mbGV4PTI3OCxBLkVjaXJjdW1mbGV4PTY2NyxBLmFkaWVyZXNpcz01MDAsQS5lZGllcmVzaXM9NDQ0LEEuY2FjdXRlPTQ0NCxBLm5hY3V0ZT01NTYsQS51bWFjcm9uPTU1NixBLk5jYXJvbj03MjIsQS5JYWN1dGU9Mzg5LEEucGx1c21pbnVzPTU3MCxBLmJyb2tlbmJhcj0yMjAsQS5yZWdpc3RlcmVkPTc0NyxBLkdicmV2ZT03MjIsQS5JZG90YWNjZW50PTM4OSxBLnN1bW1hdGlvbj02MDAsQS5FZ3JhdmU9NjY3LEEucmFjdXRlPTM4OSxBLm9tYWNyb249NTAwLEEuWmFjdXRlPTYxMSxBLlpjYXJvbj02MTEsQS5ncmVhdGVyZXF1YWw9NTQ5LEEuRXRoPTcyMixBLkNjZWRpbGxhPTY2NyxBLmxjb21tYWFjY2VudD0yNzgsQS50Y2Fyb249MzY2LEEuZW9nb25laz00NDQsQS5Vb2dvbmVrPTcyMixBLkFhY3V0ZT02NjcsQS5BZGllcmVzaXM9NjY3LEEuZWdyYXZlPTQ0NCxBLnphY3V0ZT0zODksQS5pb2dvbmVrPTI3OCxBLk9hY3V0ZT03MjIsQS5vYWN1dGU9NTAwLEEuYW1hY3Jvbj01MDAsQS5zYWN1dGU9Mzg5LEEuaWRpZXJlc2lzPTI3OCxBLk9jaXJjdW1mbGV4PTcyMixBLlVncmF2ZT03MjIsQS5EZWx0YT02MTIsQS50aG9ybj01MDAsQS50d29zdXBlcmlvcj0zMDAsQS5PZGllcmVzaXM9NzIyLEEubXU9NTc2LEEuaWdyYXZlPTI3OCxBLm9odW5nYXJ1bWxhdXQ9NTAwLEEuRW9nb25laz02NjcsQS5kY3JvYXQ9NTAwLEEudGhyZWVxdWFydGVycz03NTAsQS5TY2VkaWxsYT01NTYsQS5sY2Fyb249MzgyLEEuS2NvbW1hYWNjZW50PTY2NyxBLkxhY3V0ZT02MTEsQS50cmFkZW1hcms9MWUzLEEuZWRvdGFjY2VudD00NDQsQS5JZ3JhdmU9Mzg5LEEuSW1hY3Jvbj0zODksQS5MY2Fyb249NjExLEEub25laGFsZj03NTAsQS5sZXNzZXF1YWw9NTQ5LEEub2NpcmN1bWZsZXg9NTAwLEEubnRpbGRlPTU1NixBLlVodW5nYXJ1bWxhdXQ9NzIyLEEuRWFjdXRlPTY2NyxBLmVtYWNyb249NDQ0LEEuZ2JyZXZlPTUwMCxBLm9uZXF1YXJ0ZXI9NzUwLEEuU2Nhcm9uPTU1NixBLlNjb21tYWFjY2VudD01NTYsQS5PaHVuZ2FydW1sYXV0PTcyMixBLmRlZ3JlZT00MDAsQS5vZ3JhdmU9NTAwLEEuQ2Nhcm9uPTY2NyxBLnVncmF2ZT01NTYsQS5yYWRpY2FsPTU0OSxBLkRjYXJvbj03MjIsQS5yY29tbWFhY2NlbnQ9Mzg5LEEuTnRpbGRlPTcyMixBLm90aWxkZT01MDAsQS5SY29tbWFhY2NlbnQ9NjY3LEEuTGNvbW1hYWNjZW50PTYxMSxBLkF0aWxkZT02NjcsQS5Bb2dvbmVrPTY2NyxBLkFyaW5nPTY2NyxBLk90aWxkZT03MjIsQS56ZG90YWNjZW50PTM4OSxBLkVjYXJvbj02NjcsQS5Jb2dvbmVrPTM4OSxBLmtjb21tYWFjY2VudD01MDAsQS5taW51cz02MDYsQS5JY2lyY3VtZmxleD0zODksQS5uY2Fyb249NTU2LEEudGNvbW1hYWNjZW50PTI3OCxBLmxvZ2ljYWxub3Q9NjA2LEEub2RpZXJlc2lzPTUwMCxBLnVkaWVyZXNpcz01NTYsQS5ub3RlcXVhbD01NDksQS5nY29tbWFhY2NlbnQ9NTAwLEEuZXRoPTUwMCxBLnpjYXJvbj0zODksQS5uY29tbWFhY2NlbnQ9NTU2LEEub25lc3VwZXJpb3I9MzAwLEEuaW1hY3Jvbj0yNzgsQS5FdXJvPTUwMH0pKSxBWyJUaW1lcy1JdGFsaWMiXT1iQSgoZnVuY3Rpb24oQSl7QS5zcGFjZT0yNTAsQS5leGNsYW09MzMzLEEucXVvdGVkYmw9NDIwLEEubnVtYmVyc2lnbj01MDAsQS5kb2xsYXI9NTAwLEEucGVyY2VudD04MzMsQS5hbXBlcnNhbmQ9Nzc4LEEucXVvdGVyaWdodD0zMzMsQS5wYXJlbmxlZnQ9MzMzLEEucGFyZW5yaWdodD0zMzMsQS5hc3Rlcmlzaz01MDAsQS5wbHVzPTY3NSxBLmNvbW1hPTI1MCxBLmh5cGhlbj0zMzMsQS5wZXJpb2Q9MjUwLEEuc2xhc2g9Mjc4LEEuemVybz01MDAsQS5vbmU9NTAwLEEudHdvPTUwMCxBLnRocmVlPTUwMCxBLmZvdXI9NTAwLEEuZml2ZT01MDAsQS5zaXg9NTAwLEEuc2V2ZW49NTAwLEEuZWlnaHQ9NTAwLEEubmluZT01MDAsQS5jb2xvbj0zMzMsQS5zZW1pY29sb249MzMzLEEubGVzcz02NzUsQS5lcXVhbD02NzUsQS5ncmVhdGVyPTY3NSxBLnF1ZXN0aW9uPTUwMCxBLmF0PTkyMCxBLkE9NjExLEEuQj02MTEsQS5DPTY2NyxBLkQ9NzIyLEEuRT02MTEsQS5GPTYxMSxBLkc9NzIyLEEuSD03MjIsQS5JPTMzMyxBLko9NDQ0LEEuSz02NjcsQS5MPTU1NixBLk09ODMzLEEuTj02NjcsQS5PPTcyMixBLlA9NjExLEEuUT03MjIsQS5SPTYxMSxBLlM9NTAwLEEuVD01NTYsQS5VPTcyMixBLlY9NjExLEEuVz04MzMsQS5YPTYxMSxBLlk9NTU2LEEuWj01NTYsQS5icmFja2V0bGVmdD0zODksQS5iYWNrc2xhc2g9Mjc4LEEuYnJhY2tldHJpZ2h0PTM4OSxBLmFzY2lpY2lyY3VtPTQyMixBLnVuZGVyc2NvcmU9NTAwLEEucXVvdGVsZWZ0PTMzMyxBLmE9NTAwLEEuYj01MDAsQS5jPTQ0NCxBLmQ9NTAwLEEuZT00NDQsQS5mPTI3OCxBLmc9NTAwLEEuaD01MDAsQS5pPTI3OCxBLmo9Mjc4LEEuaz00NDQsQS5sPTI3OCxBLm09NzIyLEEubj01MDAsQS5vPTUwMCxBLnA9NTAwLEEucT01MDAsQS5yPTM4OSxBLnM9Mzg5LEEudD0yNzgsQS51PTUwMCxBLnY9NDQ0LEEudz02NjcsQS54PTQ0NCxBLnk9NDQ0LEEuej0zODksQS5icmFjZWxlZnQ9NDAwLEEuYmFyPTI3NSxBLmJyYWNlcmlnaHQ9NDAwLEEuYXNjaWl0aWxkZT01NDEsQS5leGNsYW1kb3duPTM4OSxBLmNlbnQ9NTAwLEEuc3Rlcmxpbmc9NTAwLEEuZnJhY3Rpb249MTY3LEEueWVuPTUwMCxBLmZsb3Jpbj01MDAsQS5zZWN0aW9uPTUwMCxBLmN1cnJlbmN5PTUwMCxBLnF1b3Rlc2luZ2xlPTIxNCxBLnF1b3RlZGJsbGVmdD01NTYsQS5ndWlsbGVtb3RsZWZ0PTUwMCxBLmd1aWxzaW5nbGxlZnQ9MzMzLEEuZ3VpbHNpbmdscmlnaHQ9MzMzLEEuZmk9NTAwLEEuZmw9NTAwLEEuZW5kYXNoPTUwMCxBLmRhZ2dlcj01MDAsQS5kYWdnZXJkYmw9NTAwLEEucGVyaW9kY2VudGVyZWQ9MjUwLEEucGFyYWdyYXBoPTUyMyxBLmJ1bGxldD0zNTAsQS5xdW90ZXNpbmdsYmFzZT0zMzMsQS5xdW90ZWRibGJhc2U9NTU2LEEucXVvdGVkYmxyaWdodD01NTYsQS5ndWlsbGVtb3RyaWdodD01MDAsQS5lbGxpcHNpcz04ODksQS5wZXJ0aG91c2FuZD0xZTMsQS5xdWVzdGlvbmRvd249NTAwLEEuZ3JhdmU9MzMzLEEuYWN1dGU9MzMzLEEuY2lyY3VtZmxleD0zMzMsQS50aWxkZT0zMzMsQS5tYWNyb249MzMzLEEuYnJldmU9MzMzLEEuZG90YWNjZW50PTMzMyxBLmRpZXJlc2lzPTMzMyxBLnJpbmc9MzMzLEEuY2VkaWxsYT0zMzMsQS5odW5nYXJ1bWxhdXQ9MzMzLEEub2dvbmVrPTMzMyxBLmNhcm9uPTMzMyxBLmVtZGFzaD04ODksQS5BRT04ODksQS5vcmRmZW1pbmluZT0yNzYsQS5Mc2xhc2g9NTU2LEEuT3NsYXNoPTcyMixBLk9FPTk0NCxBLm9yZG1hc2N1bGluZT0zMTAsQS5hZT02NjcsQS5kb3RsZXNzaT0yNzgsQS5sc2xhc2g9Mjc4LEEub3NsYXNoPTUwMCxBLm9lPTY2NyxBLmdlcm1hbmRibHM9NTAwLEEuSWRpZXJlc2lzPTMzMyxBLmVhY3V0ZT00NDQsQS5hYnJldmU9NTAwLEEudWh1bmdhcnVtbGF1dD01MDAsQS5lY2Fyb249NDQ0LEEuWWRpZXJlc2lzPTU1NixBLmRpdmlkZT02NzUsQS5ZYWN1dGU9NTU2LEEuQWNpcmN1bWZsZXg9NjExLEEuYWFjdXRlPTUwMCxBLlVjaXJjdW1mbGV4PTcyMixBLnlhY3V0ZT00NDQsQS5zY29tbWFhY2NlbnQ9Mzg5LEEuZWNpcmN1bWZsZXg9NDQ0LEEuVXJpbmc9NzIyLEEuVWRpZXJlc2lzPTcyMixBLmFvZ29uZWs9NTAwLEEuVWFjdXRlPTcyMixBLnVvZ29uZWs9NTAwLEEuRWRpZXJlc2lzPTYxMSxBLkRjcm9hdD03MjIsQS5jb21tYWFjY2VudD0yNTAsQS5jb3B5cmlnaHQ9NzYwLEEuRW1hY3Jvbj02MTEsQS5jY2Fyb249NDQ0LEEuYXJpbmc9NTAwLEEuTmNvbW1hYWNjZW50PTY2NyxBLmxhY3V0ZT0yNzgsQS5hZ3JhdmU9NTAwLEEuVGNvbW1hYWNjZW50PTU1NixBLkNhY3V0ZT02NjcsQS5hdGlsZGU9NTAwLEEuRWRvdGFjY2VudD02MTEsQS5zY2Fyb249Mzg5LEEuc2NlZGlsbGE9Mzg5LEEuaWFjdXRlPTI3OCxBLmxvemVuZ2U9NDcxLEEuUmNhcm9uPTYxMSxBLkdjb21tYWFjY2VudD03MjIsQS51Y2lyY3VtZmxleD01MDAsQS5hY2lyY3VtZmxleD01MDAsQS5BbWFjcm9uPTYxMSxBLnJjYXJvbj0zODksQS5jY2VkaWxsYT00NDQsQS5aZG90YWNjZW50PTU1NixBLlRob3JuPTYxMSxBLk9tYWNyb249NzIyLEEuUmFjdXRlPTYxMSxBLlNhY3V0ZT01MDAsQS5kY2Fyb249NTQ0LEEuVW1hY3Jvbj03MjIsQS51cmluZz01MDAsQS50aHJlZXN1cGVyaW9yPTMwMCxBLk9ncmF2ZT03MjIsQS5BZ3JhdmU9NjExLEEuQWJyZXZlPTYxMSxBLm11bHRpcGx5PTY3NSxBLnVhY3V0ZT01MDAsQS5UY2Fyb249NTU2LEEucGFydGlhbGRpZmY9NDc2LEEueWRpZXJlc2lzPTQ0NCxBLk5hY3V0ZT02NjcsQS5pY2lyY3VtZmxleD0yNzgsQS5FY2lyY3VtZmxleD02MTEsQS5hZGllcmVzaXM9NTAwLEEuZWRpZXJlc2lzPTQ0NCxBLmNhY3V0ZT00NDQsQS5uYWN1dGU9NTAwLEEudW1hY3Jvbj01MDAsQS5OY2Fyb249NjY3LEEuSWFjdXRlPTMzMyxBLnBsdXNtaW51cz02NzUsQS5icm9rZW5iYXI9Mjc1LEEucmVnaXN0ZXJlZD03NjAsQS5HYnJldmU9NzIyLEEuSWRvdGFjY2VudD0zMzMsQS5zdW1tYXRpb249NjAwLEEuRWdyYXZlPTYxMSxBLnJhY3V0ZT0zODksQS5vbWFjcm9uPTUwMCxBLlphY3V0ZT01NTYsQS5aY2Fyb249NTU2LEEuZ3JlYXRlcmVxdWFsPTU0OSxBLkV0aD03MjIsQS5DY2VkaWxsYT02NjcsQS5sY29tbWFhY2NlbnQ9Mjc4LEEudGNhcm9uPTMwMCxBLmVvZ29uZWs9NDQ0LEEuVW9nb25laz03MjIsQS5BYWN1dGU9NjExLEEuQWRpZXJlc2lzPTYxMSxBLmVncmF2ZT00NDQsQS56YWN1dGU9Mzg5LEEuaW9nb25laz0yNzgsQS5PYWN1dGU9NzIyLEEub2FjdXRlPTUwMCxBLmFtYWNyb249NTAwLEEuc2FjdXRlPTM4OSxBLmlkaWVyZXNpcz0yNzgsQS5PY2lyY3VtZmxleD03MjIsQS5VZ3JhdmU9NzIyLEEuRGVsdGE9NjEyLEEudGhvcm49NTAwLEEudHdvc3VwZXJpb3I9MzAwLEEuT2RpZXJlc2lzPTcyMixBLm11PTUwMCxBLmlncmF2ZT0yNzgsQS5vaHVuZ2FydW1sYXV0PTUwMCxBLkVvZ29uZWs9NjExLEEuZGNyb2F0PTUwMCxBLnRocmVlcXVhcnRlcnM9NzUwLEEuU2NlZGlsbGE9NTAwLEEubGNhcm9uPTMwMCxBLktjb21tYWFjY2VudD02NjcsQS5MYWN1dGU9NTU2LEEudHJhZGVtYXJrPTk4MCxBLmVkb3RhY2NlbnQ9NDQ0LEEuSWdyYXZlPTMzMyxBLkltYWNyb249MzMzLEEuTGNhcm9uPTYxMSxBLm9uZWhhbGY9NzUwLEEubGVzc2VxdWFsPTU0OSxBLm9jaXJjdW1mbGV4PTUwMCxBLm50aWxkZT01MDAsQS5VaHVuZ2FydW1sYXV0PTcyMixBLkVhY3V0ZT02MTEsQS5lbWFjcm9uPTQ0NCxBLmdicmV2ZT01MDAsQS5vbmVxdWFydGVyPTc1MCxBLlNjYXJvbj01MDAsQS5TY29tbWFhY2NlbnQ9NTAwLEEuT2h1bmdhcnVtbGF1dD03MjIsQS5kZWdyZWU9NDAwLEEub2dyYXZlPTUwMCxBLkNjYXJvbj02NjcsQS51Z3JhdmU9NTAwLEEucmFkaWNhbD00NTMsQS5EY2Fyb249NzIyLEEucmNvbW1hYWNjZW50PTM4OSxBLk50aWxkZT02NjcsQS5vdGlsZGU9NTAwLEEuUmNvbW1hYWNjZW50PTYxMSxBLkxjb21tYWFjY2VudD01NTYsQS5BdGlsZGU9NjExLEEuQW9nb25laz02MTEsQS5BcmluZz02MTEsQS5PdGlsZGU9NzIyLEEuemRvdGFjY2VudD0zODksQS5FY2Fyb249NjExLEEuSW9nb25laz0zMzMsQS5rY29tbWFhY2NlbnQ9NDQ0LEEubWludXM9Njc1LEEuSWNpcmN1bWZsZXg9MzMzLEEubmNhcm9uPTUwMCxBLnRjb21tYWFjY2VudD0yNzgsQS5sb2dpY2Fsbm90PTY3NSxBLm9kaWVyZXNpcz01MDAsQS51ZGllcmVzaXM9NTAwLEEubm90ZXF1YWw9NTQ5LEEuZ2NvbW1hYWNjZW50PTUwMCxBLmV0aD01MDAsQS56Y2Fyb249Mzg5LEEubmNvbW1hYWNjZW50PTUwMCxBLm9uZXN1cGVyaW9yPTMwMCxBLmltYWNyb249Mjc4LEEuRXVybz01MDB9KSksQS5aYXBmRGluZ2JhdHM9YkEoKGZ1bmN0aW9uKEEpe0Euc3BhY2U9Mjc4LEEuYTE9OTc0LEEuYTI9OTYxLEEuYTIwMj05NzQsQS5hMz05ODAsQS5hND03MTksQS5hNT03ODksQS5hMTE5PTc5MCxBLmExMTg9NzkxLEEuYTExNz02OTAsQS5hMTE9OTYwLEEuYTEyPTkzOSxBLmExMz01NDksQS5hMTQ9ODU1LEEuYTE1PTkxMSxBLmExNj05MzMsQS5hMTA1PTkxMSxBLmExNz05NDUsQS5hMTg9OTc0LEEuYTE5PTc1NSxBLmEyMD04NDYsQS5hMjE9NzYyLEEuYTIyPTc2MSxBLmEyMz01NzEsQS5hMjQ9Njc3LEEuYTI1PTc2MyxBLmEyNj03NjAsQS5hMjc9NzU5LEEuYTI4PTc1NCxBLmE2PTQ5NCxBLmE3PTU1MixBLmE4PTUzNyxBLmE5PTU3NyxBLmExMD02OTIsQS5hMjk9Nzg2LEEuYTMwPTc4OCxBLmEzMT03ODgsQS5hMzI9NzkwLEEuYTMzPTc5MyxBLmEzND03OTQsQS5hMzU9ODE2LEEuYTM2PTgyMyxBLmEzNz03ODksQS5hMzg9ODQxLEEuYTM5PTgyMyxBLmE0MD04MzMsQS5hNDE9ODE2LEEuYTQyPTgzMSxBLmE0Mz05MjMsQS5hNDQ9NzQ0LEEuYTQ1PTcyMyxBLmE0Nj03NDksQS5hNDc9NzkwLEEuYTQ4PTc5MixBLmE0OT02OTUsQS5hNTA9Nzc2LEEuYTUxPTc2OCxBLmE1Mj03OTIsQS5hNTM9NzU5LEEuYTU0PTcwNyxBLmE1NT03MDgsQS5hNTY9NjgyLEEuYTU3PTcwMSxBLmE1OD04MjYsQS5hNTk9ODE1LEEuYTYwPTc4OSxBLmE2MT03ODksQS5hNjI9NzA3LEEuYTYzPTY4NyxBLmE2ND02OTYsQS5hNjU9Njg5LEEuYTY2PTc4NixBLmE2Nz03ODcsQS5hNjg9NzEzLEEuYTY5PTc5MSxBLmE3MD03ODUsQS5hNzE9NzkxLEEuYTcyPTg3MyxBLmE3Mz03NjEsQS5hNzQ9NzYyLEEuYTIwMz03NjIsQS5hNzU9NzU5LEEuYTIwND03NTksQS5hNzY9ODkyLEEuYTc3PTg5MixBLmE3OD03ODgsQS5hNzk9Nzg0LEEuYTgxPTQzOCxBLmE4Mj0xMzgsQS5hODM9Mjc3LEEuYTg0PTQxNSxBLmE5Nz0zOTIsQS5hOTg9MzkyLEEuYTk5PTY2OCxBLmExMDA9NjY4LEEuYTg5PTM5MCxBLmE5MD0zOTAsQS5hOTM9MzE3LEEuYTk0PTMxNyxBLmE5MT0yNzYsQS5hOTI9Mjc2LEEuYTIwNT01MDksQS5hODU9NTA5LEEuYTIwNj00MTAsQS5hODY9NDEwLEEuYTg3PTIzNCxBLmE4OD0yMzQsQS5hOTU9MzM0LEEuYTk2PTMzNCxBLmExMDE9NzMyLEEuYTEwMj01NDQsQS5hMTAzPTU0NCxBLmExMDQ9OTEwLEEuYTEwNj02NjcsQS5hMTA3PTc2MCxBLmExMDg9NzYwLEEuYTExMj03NzYsQS5hMTExPTU5NSxBLmExMTA9Njk0LEEuYTEwOT02MjYsQS5hMTIwPTc4OCxBLmExMjE9Nzg4LEEuYTEyMj03ODgsQS5hMTIzPTc4OCxBLmExMjQ9Nzg4LEEuYTEyNT03ODgsQS5hMTI2PTc4OCxBLmExMjc9Nzg4LEEuYTEyOD03ODgsQS5hMTI5PTc4OCxBLmExMzA9Nzg4LEEuYTEzMT03ODgsQS5hMTMyPTc4OCxBLmExMzM9Nzg4LEEuYTEzND03ODgsQS5hMTM1PTc4OCxBLmExMzY9Nzg4LEEuYTEzNz03ODgsQS5hMTM4PTc4OCxBLmExMzk9Nzg4LEEuYTE0MD03ODgsQS5hMTQxPTc4OCxBLmExNDI9Nzg4LEEuYTE0Mz03ODgsQS5hMTQ0PTc4OCxBLmExNDU9Nzg4LEEuYTE0Nj03ODgsQS5hMTQ3PTc4OCxBLmExNDg9Nzg4LEEuYTE0OT03ODgsQS5hMTUwPTc4OCxBLmExNTE9Nzg4LEEuYTE1Mj03ODgsQS5hMTUzPTc4OCxBLmExNTQ9Nzg4LEEuYTE1NT03ODgsQS5hMTU2PTc4OCxBLmExNTc9Nzg4LEEuYTE1OD03ODgsQS5hMTU5PTc4OCxBLmExNjA9ODk0LEEuYTE2MT04MzgsQS5hMTYzPTEwMTYsQS5hMTY0PTQ1OCxBLmExOTY9NzQ4LEEuYTE2NT05MjQsQS5hMTkyPTc0OCxBLmExNjY9OTE4LEEuYTE2Nz05MjcsQS5hMTY4PTkyOCxBLmExNjk9OTI4LEEuYTE3MD04MzQsQS5hMTcxPTg3MyxBLmExNzI9ODI4LEEuYTE3Mz05MjQsQS5hMTYyPTkyNCxBLmExNzQ9OTE3LEEuYTE3NT05MzAsQS5hMTc2PTkzMSxBLmExNzc9NDYzLEEuYTE3OD04ODMsQS5hMTc5PTgzNixBLmExOTM9ODM2LEEuYTE4MD04NjcsQS5hMTk5PTg2NyxBLmExODE9Njk2LEEuYTIwMD02OTYsQS5hMTgyPTg3NCxBLmEyMDE9ODc0LEEuYTE4Mz03NjAsQS5hMTg0PTk0NixBLmExOTc9NzcxLEEuYTE4NT04NjUsQS5hMTk0PTc3MSxBLmExOTg9ODg4LEEuYTE4Nj05NjcsQS5hMTk1PTg4OCxBLmExODc9ODMxLEEuYTE4OD04NzMsQS5hMTg5PTkyNyxBLmExOTA9OTcwLEEuYTE5MT05MTh9KSl9KSksemE9YkEoKGZ1bmN0aW9uKEEpe0EuQ291cmllcj17YXNjZW50OjYyOSxkZXNjZW50Oi0xNTcsY2FwSGVpZ2h0OjU2Mix4SGVpZ2h0Oi00MjZ9LEFbIkNvdXJpZXItQm9sZCJdPXthc2NlbnQ6NjI5LGRlc2NlbnQ6LTE1NyxjYXBIZWlnaHQ6NTYyLHhIZWlnaHQ6NDM5fSxBWyJDb3VyaWVyLU9ibGlxdWUiXT17YXNjZW50OjYyOSxkZXNjZW50Oi0xNTcsY2FwSGVpZ2h0OjU2Mix4SGVpZ2h0OjQyNn0sQVsiQ291cmllci1Cb2xkT2JsaXF1ZSJdPXthc2NlbnQ6NjI5LGRlc2NlbnQ6LTE1NyxjYXBIZWlnaHQ6NTYyLHhIZWlnaHQ6NDI2fSxBLkhlbHZldGljYT17YXNjZW50OjcxOCxkZXNjZW50Oi0yMDcsY2FwSGVpZ2h0OjcxOCx4SGVpZ2h0OjUyM30sQVsiSGVsdmV0aWNhLUJvbGQiXT17YXNjZW50OjcxOCxkZXNjZW50Oi0yMDcsY2FwSGVpZ2h0OjcxOCx4SGVpZ2h0OjUzMn0sQVsiSGVsdmV0aWNhLU9ibGlxdWUiXT17YXNjZW50OjcxOCxkZXNjZW50Oi0yMDcsY2FwSGVpZ2h0OjcxOCx4SGVpZ2h0OjUyM30sQVsiSGVsdmV0aWNhLUJvbGRPYmxpcXVlIl09e2FzY2VudDo3MTgsZGVzY2VudDotMjA3LGNhcEhlaWdodDo3MTgseEhlaWdodDo1MzJ9LEFbIlRpbWVzLVJvbWFuIl09e2FzY2VudDo2ODMsZGVzY2VudDotMjE3LGNhcEhlaWdodDo2NjIseEhlaWdodDo0NTB9LEFbIlRpbWVzLUJvbGQiXT17YXNjZW50OjY4MyxkZXNjZW50Oi0yMTcsY2FwSGVpZ2h0OjY3Nix4SGVpZ2h0OjQ2MX0sQVsiVGltZXMtSXRhbGljIl09e2FzY2VudDo2ODMsZGVzY2VudDotMjE3LGNhcEhlaWdodDo2NTMseEhlaWdodDo0NDF9LEFbIlRpbWVzLUJvbGRJdGFsaWMiXT17YXNjZW50OjY4MyxkZXNjZW50Oi0yMTcsY2FwSGVpZ2h0OjY2OSx4SGVpZ2h0OjQ2Mn0sQS5TeW1ib2w9e2FzY2VudDpNYXRoLk5hTixkZXNjZW50Ok1hdGguTmFOLGNhcEhlaWdodDpNYXRoLk5hTix4SGVpZ2h0Ok1hdGguTmFOfSxBLlphcGZEaW5nYmF0cz17YXNjZW50Ok1hdGguTmFOLGRlc2NlbnQ6TWF0aC5OYU4sY2FwSGVpZ2h0Ok1hdGguTmFOLHhIZWlnaHQ6TWF0aC5OYU59fSkpO2NsYXNzICRhe2NvbnN0cnVjdG9yKHtnbHlmVGFibGU6QSxpc0dseXBoTG9jYXRpb25zTG9uZzplLGxvY2FUYWJsZTp0LG51bUdseXBoczppfSl7dGhpcy5nbHlwaHM9W107Y29uc3QgYT1uZXcgRGF0YVZpZXcodC5idWZmZXIsdC5ieXRlT2Zmc2V0LHQuYnl0ZUxlbmd0aCkscz1uZXcgRGF0YVZpZXcoQS5idWZmZXIsQS5ieXRlT2Zmc2V0LEEuYnl0ZUxlbmd0aCksbj1lPzQ6MjtsZXQgcj1lP2EuZ2V0VWludDMyKDApOjIqYS5nZXRVaW50MTYoMCksZz0wO2ZvcihsZXQgQT0wO0E8aTtBKyspe2crPW47Y29uc3QgQT1lP2EuZ2V0VWludDMyKGcpOjIqYS5nZXRVaW50MTYoZyk7aWYoQT09PXIpe3RoaXMuZ2x5cGhzLnB1c2gobmV3IEFzKHt9KSk7Y29udGludWV9Y29uc3QgdD1Bcy5wYXJzZShyLHMpO3RoaXMuZ2x5cGhzLnB1c2godCkscj1BfX1nZXRTaXplKCl7cmV0dXJuIHRoaXMuZ2x5cGhzLnJlZHVjZSgoKEEsZSk9PkErKGUuZ2V0U2l6ZSgpKzMmLTQpKSwwKX13cml0ZSgpe2NvbnN0IEE9dGhpcy5nZXRTaXplKCksZT1uZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKEEpKSx0PUE+MTMxMDcwLGk9dD80OjIsYT1uZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKCh0aGlzLmdseXBocy5sZW5ndGgrMSkqaSkpO3Q/YS5zZXRVaW50MzIoMCwwKTphLnNldFVpbnQxNigwLDApO2xldCBzPTAsbj0wO2Zvcihjb25zdCBBIG9mIHRoaXMuZ2x5cGhzKXMrPUEud3JpdGUocyxlKSxzPXMrMyYtNCxuKz1pLHQ/YS5zZXRVaW50MzIobixzKTphLnNldFVpbnQxNihuLHM+PjEpO3JldHVybntpc0xvY2F0aW9uTG9uZzp0LGxvY2E6bmV3IFVpbnQ4QXJyYXkoYS5idWZmZXIpLGdseWY6bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpfX1zY2FsZShBKXtmb3IobGV0IGU9MCx0PXRoaXMuZ2x5cGhzLmxlbmd0aDtlPHQ7ZSsrKXRoaXMuZ2x5cGhzW2VdLnNjYWxlKEFbZV0pfX1jbGFzcyBBc3tjb25zdHJ1Y3Rvcih7aGVhZGVyOkE9bnVsbCxzaW1wbGU6ZT1udWxsLGNvbXBvc2l0ZXM6dD1udWxsfSl7dGhpcy5oZWFkZXI9QSx0aGlzLnNpbXBsZT1lLHRoaXMuY29tcG9zaXRlcz10fXN0YXRpYyBwYXJzZShBLGUpe2NvbnN0W3QsaV09ZXMucGFyc2UoQSxlKTtpZihBKz10LGkubnVtYmVyT2ZDb250b3VyczwwKXtjb25zdCB0PVtdO2Zvcig7Oyl7Y29uc3RbaSxhXT1hcy5wYXJzZShBLGUpO2lmKEErPWksdC5wdXNoKGEpLCEoMzImYS5mbGFncykpYnJlYWt9cmV0dXJuIG5ldyBBcyh7aGVhZGVyOmksY29tcG9zaXRlczp0fSl9Y29uc3QgYT1pcy5wYXJzZShBLGUsaS5udW1iZXJPZkNvbnRvdXJzKTtyZXR1cm4gbmV3IEFzKHtoZWFkZXI6aSxzaW1wbGU6YX0pfWdldFNpemUoKXtpZighdGhpcy5oZWFkZXIpcmV0dXJuIDA7Y29uc3QgQT10aGlzLnNpbXBsZT90aGlzLnNpbXBsZS5nZXRTaXplKCk6dGhpcy5jb21wb3NpdGVzLnJlZHVjZSgoKEEsZSk9PkErZS5nZXRTaXplKCkpLDApO3JldHVybiB0aGlzLmhlYWRlci5nZXRTaXplKCkrQX13cml0ZShBLGUpe2lmKCF0aGlzLmhlYWRlcilyZXR1cm4gMDtjb25zdCB0PUE7aWYoQSs9dGhpcy5oZWFkZXIud3JpdGUoQSxlKSx0aGlzLnNpbXBsZSlBKz10aGlzLnNpbXBsZS53cml0ZShBLGUpO2Vsc2UgZm9yKGNvbnN0IHQgb2YgdGhpcy5jb21wb3NpdGVzKUErPXQud3JpdGUoQSxlKTtyZXR1cm4gQS10fXNjYWxlKEEpe2lmKCF0aGlzLmhlYWRlcilyZXR1cm47Y29uc3QgZT0odGhpcy5oZWFkZXIueE1pbit0aGlzLmhlYWRlci54TWF4KS8yO2lmKHRoaXMuaGVhZGVyLnNjYWxlKGUsQSksdGhpcy5zaW1wbGUpdGhpcy5zaW1wbGUuc2NhbGUoZSxBKTtlbHNlIGZvcihjb25zdCB0IG9mIHRoaXMuY29tcG9zaXRlcyl0LnNjYWxlKGUsQSl9fWNsYXNzIGVze2NvbnN0cnVjdG9yKHtudW1iZXJPZkNvbnRvdXJzOkEseE1pbjplLHlNaW46dCx4TWF4OmkseU1heDphfSl7dGhpcy5udW1iZXJPZkNvbnRvdXJzPUEsdGhpcy54TWluPWUsdGhpcy55TWluPXQsdGhpcy54TWF4PWksdGhpcy55TWF4PWF9c3RhdGljIHBhcnNlKEEsZSl7cmV0dXJuWzEwLG5ldyBlcyh7bnVtYmVyT2ZDb250b3VyczplLmdldEludDE2KEEpLHhNaW46ZS5nZXRJbnQxNihBKzIpLHlNaW46ZS5nZXRJbnQxNihBKzQpLHhNYXg6ZS5nZXRJbnQxNihBKzYpLHlNYXg6ZS5nZXRJbnQxNihBKzgpfSldfWdldFNpemUoKXtyZXR1cm4gMTB9d3JpdGUoQSxlKXtyZXR1cm4gZS5zZXRJbnQxNihBLHRoaXMubnVtYmVyT2ZDb250b3VycyksZS5zZXRJbnQxNihBKzIsdGhpcy54TWluKSxlLnNldEludDE2KEErNCx0aGlzLnlNaW4pLGUuc2V0SW50MTYoQSs2LHRoaXMueE1heCksZS5zZXRJbnQxNihBKzgsdGhpcy55TWF4KSwxMH1zY2FsZShBLGUpe3RoaXMueE1pbj1NYXRoLnJvdW5kKEErKHRoaXMueE1pbi1BKSplKSx0aGlzLnhNYXg9TWF0aC5yb3VuZChBKyh0aGlzLnhNYXgtQSkqZSl9fWNsYXNzIHRze2NvbnN0cnVjdG9yKHtmbGFnczpBLHhDb29yZGluYXRlczplLHlDb29yZGluYXRlczp0fSl7dGhpcy54Q29vcmRpbmF0ZXM9ZSx0aGlzLnlDb29yZGluYXRlcz10LHRoaXMuZmxhZ3M9QX19Y2xhc3MgaXN7Y29uc3RydWN0b3Ioe2NvbnRvdXJzOkEsaW5zdHJ1Y3Rpb25zOmV9KXt0aGlzLmNvbnRvdXJzPUEsdGhpcy5pbnN0cnVjdGlvbnM9ZX1zdGF0aWMgcGFyc2UoQSxlLHQpe2NvbnN0IGk9W107Zm9yKGxldCBhPTA7YTx0O2ErKyl7Y29uc3QgdD1lLmdldFVpbnQxNihBKTtBKz0yLGkucHVzaCh0KX1jb25zdCBhPWlbdC0xXSsxLHM9ZS5nZXRVaW50MTYoQSk7QSs9Mjtjb25zdCBuPW5ldyBVaW50OEFycmF5KGUpLnNsaWNlKEEsQStzKTtBKz1zO2NvbnN0IHI9W107Zm9yKGxldCB0PTA7dDxhO0ErKyx0Kyspe2xldCBpPWUuZ2V0VWludDgoQSk7aWYoci5wdXNoKGkpLDgmaSl7Y29uc3QgYT1lLmdldFVpbnQ4KCsrQSk7aV49ODtmb3IobGV0IEE9MDtBPGE7QSsrKXIucHVzaChpKTt0Kz1hfX1jb25zdCBnPVtdO2xldCBvPVtdLEk9W10sYz1bXTtjb25zdCBoPVtdO2xldCBDPTAsQj0wO2ZvcihsZXQgdD0wO3Q8YTt0Kyspe2NvbnN0IGE9clt0XTtpZigyJmEpe2NvbnN0IHQ9ZS5nZXRVaW50OChBKyspO0IrPTE2JmE/dDotdCxvLnB1c2goQil9ZWxzZSAxNiZhfHwoQis9ZS5nZXRJbnQxNihBKSxBKz0yKSxvLnB1c2goQik7aVtDXT09PXQmJihDKyssZy5wdXNoKG8pLG89W10pfUI9MCxDPTA7Zm9yKGxldCB0PTA7dDxhO3QrKyl7Y29uc3QgYT1yW3RdO2lmKDQmYSl7Y29uc3QgdD1lLmdldFVpbnQ4KEErKyk7Qis9MzImYT90Oi10LEkucHVzaChCKX1lbHNlIDMyJmF8fChCKz1lLmdldEludDE2KEEpLEErPTIpLEkucHVzaChCKTtjLnB1c2goMSZhfDY0JmEpLGlbQ109PT10JiYobz1nW0NdLEMrKyxoLnB1c2gobmV3IHRzKHtmbGFnczpjLHhDb29yZGluYXRlczpvLHlDb29yZGluYXRlczpJfSkpLEk9W10sYz1bXSl9cmV0dXJuIG5ldyBpcyh7Y29udG91cnM6aCxpbnN0cnVjdGlvbnM6bn0pfWdldFNpemUoKXtsZXQgQT0yKnRoaXMuY29udG91cnMubGVuZ3RoKzIrdGhpcy5pbnN0cnVjdGlvbnMubGVuZ3RoLGU9MCx0PTA7Zm9yKGNvbnN0IGkgb2YgdGhpcy5jb250b3Vycyl7QSs9aS5mbGFncy5sZW5ndGg7Zm9yKGxldCBhPTAscz1pLnhDb29yZGluYXRlcy5sZW5ndGg7YTxzO2ErKyl7Y29uc3Qgcz1pLnhDb29yZGluYXRlc1thXSxuPWkueUNvb3JkaW5hdGVzW2FdO2xldCByPU1hdGguYWJzKHMtZSk7cj4yNTU/QSs9MjpyPjAmJihBKz0xKSxlPXMscj1NYXRoLmFicyhuLXQpLHI+MjU1P0ErPTI6cj4wJiYoQSs9MSksdD1ufX1yZXR1cm4gQX13cml0ZShBLGUpe2NvbnN0IHQ9QSxpPVtdLGE9W10scz1bXTtsZXQgbj0wLHI9MDtmb3IoY29uc3QgdCBvZiB0aGlzLmNvbnRvdXJzKXtmb3IobGV0IEE9MCxlPXQueENvb3JkaW5hdGVzLmxlbmd0aDtBPGU7QSsrKXtsZXQgZT10LmZsYWdzW0FdO2NvbnN0IGc9dC54Q29vcmRpbmF0ZXNbQV07bGV0IG89Zy1uO2lmKDA9PT1vKWV8PTE2LGkucHVzaCgwKTtlbHNle2NvbnN0IEE9TWF0aC5hYnMobyk7QTw9MjU1PyhlfD1vPj0wPzE4OjIsaS5wdXNoKEEpKTppLnB1c2gobyl9bj1nO2NvbnN0IEk9dC55Q29vcmRpbmF0ZXNbQV07aWYobz1JLXIsMD09PW8pZXw9MzIsYS5wdXNoKDApO2Vsc2V7Y29uc3QgQT1NYXRoLmFicyhvKTtBPD0yNTU/KGV8PW8+PTA/MzY6NCxhLnB1c2goQSkpOmEucHVzaChvKX1yPUkscy5wdXNoKGUpfWUuc2V0VWludDE2KEEsaS5sZW5ndGgtMSksQSs9Mn1lLnNldFVpbnQxNihBLHRoaXMuaW5zdHJ1Y3Rpb25zLmxlbmd0aCksQSs9Mix0aGlzLmluc3RydWN0aW9ucy5sZW5ndGgmJihuZXcgVWludDhBcnJheShlLmJ1ZmZlciwwLGUuYnVmZmVyLmJ5dGVMZW5ndGgpLnNldCh0aGlzLmluc3RydWN0aW9ucyxBKSxBKz10aGlzLmluc3RydWN0aW9ucy5sZW5ndGgpO2Zvcihjb25zdCB0IG9mIHMpZS5zZXRVaW50OChBKyssdCk7Zm9yKGxldCB0PTAsYT1pLmxlbmd0aDt0PGE7dCsrKXtjb25zdCBhPWlbdF0sbj1zW3RdOzImbj9lLnNldFVpbnQ4KEErKyxhKToxNiZufHwoZS5zZXRJbnQxNihBLGEpLEErPTIpfWZvcihsZXQgdD0wLGk9YS5sZW5ndGg7dDxpO3QrKyl7Y29uc3QgaT1hW3RdLG49c1t0XTs0Jm4/ZS5zZXRVaW50OChBKyssaSk6MzImbnx8KGUuc2V0SW50MTYoQSxpKSxBKz0yKX1yZXR1cm4gQS10fXNjYWxlKEEsZSl7Zm9yKGNvbnN0IHQgb2YgdGhpcy5jb250b3VycylpZigwIT09dC54Q29vcmRpbmF0ZXMubGVuZ3RoKWZvcihsZXQgaT0wLGE9dC54Q29vcmRpbmF0ZXMubGVuZ3RoO2k8YTtpKyspdC54Q29vcmRpbmF0ZXNbaV09TWF0aC5yb3VuZChBKyh0LnhDb29yZGluYXRlc1tpXS1BKSplKX19Y2xhc3MgYXN7Y29uc3RydWN0b3Ioe2ZsYWdzOkEsZ2x5cGhJbmRleDplLGFyZ3VtZW50MTp0LGFyZ3VtZW50MjppLHRyYW5zZjphLGluc3RydWN0aW9uczpzfSl7dGhpcy5mbGFncz1BLHRoaXMuZ2x5cGhJbmRleD1lLHRoaXMuYXJndW1lbnQxPXQsdGhpcy5hcmd1bWVudDI9aSx0aGlzLnRyYW5zZj1hLHRoaXMuaW5zdHJ1Y3Rpb25zPXN9c3RhdGljIHBhcnNlKEEsZSl7Y29uc3QgdD1BLGk9W107bGV0IGE9ZS5nZXRVaW50MTYoQSk7Y29uc3Qgcz1lLmdldFVpbnQxNihBKzIpO2xldCBuLHI7QSs9NCwxJmE/KDImYT8obj1lLmdldEludDE2KEEpLHI9ZS5nZXRJbnQxNihBKzIpKToobj1lLmdldFVpbnQxNihBKSxyPWUuZ2V0VWludDE2KEErMikpLEErPTQsYV49MSk6KDImYT8obj1lLmdldEludDgoQSkscj1lLmdldEludDgoQSsxKSk6KG49ZS5nZXRVaW50OChBKSxyPWUuZ2V0VWludDgoQSsxKSksQSs9MiksOCZhPyhpLnB1c2goZS5nZXRVaW50MTYoQSkpLEErPTIpOjY0JmE/KGkucHVzaChlLmdldFVpbnQxNihBKSxlLmdldFVpbnQxNihBKzIpKSxBKz00KToxMjgmYSYmKGkucHVzaChlLmdldFVpbnQxNihBKSxlLmdldFVpbnQxNihBKzIpLGUuZ2V0VWludDE2KEErNCksZS5nZXRVaW50MTYoQSs2KSksQSs9OCk7bGV0IGc9bnVsbDtpZigyNTYmYSl7Y29uc3QgdD1lLmdldFVpbnQxNihBKTtBKz0yLGc9bmV3IFVpbnQ4QXJyYXkoZSkuc2xpY2UoQSxBK3QpLEErPXR9cmV0dXJuW0EtdCxuZXcgYXMoe2ZsYWdzOmEsZ2x5cGhJbmRleDpzLGFyZ3VtZW50MTpuLGFyZ3VtZW50MjpyLHRyYW5zZjppLGluc3RydWN0aW9uczpnfSldfWdldFNpemUoKXtsZXQgQT00KzIqdGhpcy50cmFuc2YubGVuZ3RoO3JldHVybiAyNTYmdGhpcy5mbGFncyYmKEErPTIrdGhpcy5pbnN0cnVjdGlvbnMubGVuZ3RoKSxBKz0yLDImdGhpcy5mbGFncz90aGlzLmFyZ3VtZW50MT49LTEyOCYmdGhpcy5hcmd1bWVudDE8PTEyNyYmdGhpcy5hcmd1bWVudDI+PS0xMjgmJnRoaXMuYXJndW1lbnQyPD0xMjd8fChBKz0yKTp0aGlzLmFyZ3VtZW50MT49MCYmdGhpcy5hcmd1bWVudDE8PTI1NSYmdGhpcy5hcmd1bWVudDI+PTAmJnRoaXMuYXJndW1lbnQyPD0yNTV8fChBKz0yKSxBfXdyaXRlKEEsZSl7Y29uc3QgdD1BO3JldHVybiAyJnRoaXMuZmxhZ3M/dGhpcy5hcmd1bWVudDE+PS0xMjgmJnRoaXMuYXJndW1lbnQxPD0xMjcmJnRoaXMuYXJndW1lbnQyPj0tMTI4JiZ0aGlzLmFyZ3VtZW50Mjw9MTI3fHwodGhpcy5mbGFnc3w9MSk6dGhpcy5hcmd1bWVudDE+PTAmJnRoaXMuYXJndW1lbnQxPD0yNTUmJnRoaXMuYXJndW1lbnQyPj0wJiZ0aGlzLmFyZ3VtZW50Mjw9MjU1fHwodGhpcy5mbGFnc3w9MSksZS5zZXRVaW50MTYoQSx0aGlzLmZsYWdzKSxlLnNldFVpbnQxNihBKzIsdGhpcy5nbHlwaEluZGV4KSxBKz00LDEmdGhpcy5mbGFncz8oMiZ0aGlzLmZsYWdzPyhlLnNldEludDE2KEEsdGhpcy5hcmd1bWVudDEpLGUuc2V0SW50MTYoQSsyLHRoaXMuYXJndW1lbnQyKSk6KGUuc2V0VWludDE2KEEsdGhpcy5hcmd1bWVudDEpLGUuc2V0VWludDE2KEErMix0aGlzLmFyZ3VtZW50MikpLEErPTQpOihlLnNldFVpbnQ4KEEsdGhpcy5hcmd1bWVudDEpLGUuc2V0VWludDgoQSsxLHRoaXMuYXJndW1lbnQyKSxBKz0yKSwyNTYmdGhpcy5mbGFncyYmKGUuc2V0VWludDE2KEEsdGhpcy5pbnN0cnVjdGlvbnMubGVuZ3RoKSxBKz0yLHRoaXMuaW5zdHJ1Y3Rpb25zLmxlbmd0aCYmKG5ldyBVaW50OEFycmF5KGUuYnVmZmVyLDAsZS5idWZmZXIuYnl0ZUxlbmd0aCkuc2V0KHRoaXMuaW5zdHJ1Y3Rpb25zLEEpLEErPXRoaXMuaW5zdHJ1Y3Rpb25zLmxlbmd0aCkpLEEtdH1zY2FsZShBLGUpe319ZnVuY3Rpb24gc3MoQSxlLHQpe0FbZV09dD4+OCYyNTUsQVtlKzFdPTI1NSZ0fWZ1bmN0aW9uIG5zKEEsZSx0KXtBW2VdPXQ+PjI0JjI1NSxBW2UrMV09dD4+MTYmMjU1LEFbZSsyXT10Pj44JjI1NSxBW2UrM109MjU1JnR9ZnVuY3Rpb24gcnMoQSxlLHQpe2lmKHQgaW5zdGFuY2VvZiBVaW50OEFycmF5KUEuc2V0KHQsZSk7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIHQpZm9yKGxldCBpPTAsYT10Lmxlbmd0aDtpPGE7aSsrKUFbZSsrXT0yNTUmdC5jaGFyQ29kZUF0KGkpO2Vsc2UgZm9yKGNvbnN0IGkgb2YgdClBW2UrK109MjU1Jml9Y2xhc3MgZ3N7Y29uc3RydWN0b3IoQSl7dGhpcy5zZm50PUEsdGhpcy50YWJsZXM9T2JqZWN0LmNyZWF0ZShudWxsKX1zdGF0aWMgZ2V0U2VhcmNoUGFyYW1zKEEsZSl7bGV0IHQ9MSxpPTA7Zm9yKDsodF5BKT50Oyl0PDw9MSxpKys7Y29uc3QgYT10KmU7cmV0dXJue3JhbmdlOmEsZW50cnk6aSxyYW5nZVNoaWZ0OmUqQS1hfX10b0FycmF5KCl7bGV0IEE9dGhpcy5zZm50O2NvbnN0IGU9dGhpcy50YWJsZXMsdD1PYmplY3Qua2V5cyhlKTt0LnNvcnQoKTtjb25zdCBpPXQubGVuZ3RoO2xldCBhLHMsbixyLGcsbz0xMisxNippO2NvbnN0IEk9W29dO2ZvcihhPTA7YTxpO2ErKylyPWVbdFthXV0sbys9KHIubGVuZ3RoKzMmLTQpPj4+MCxJLnB1c2gobyk7Y29uc3QgYz1uZXcgVWludDhBcnJheShvKTtmb3IoYT0wO2E8aTthKyspcj1lW3RbYV1dLHJzKGMsSVthXSxyKTsidHJ1ZSI9PT1BJiYoQT1YKDY1NTM2KSksY1swXT0yNTUmQS5jaGFyQ29kZUF0KDApLGNbMV09MjU1JkEuY2hhckNvZGVBdCgxKSxjWzJdPTI1NSZBLmNoYXJDb2RlQXQoMiksY1szXT0yNTUmQS5jaGFyQ29kZUF0KDMpLHNzKGMsNCxpKTtjb25zdCBoPWdzLmdldFNlYXJjaFBhcmFtcyhpLDE2KTtmb3Ioc3MoYyw2LGgucmFuZ2UpLHNzKGMsOCxoLmVudHJ5KSxzcyhjLDEwLGgucmFuZ2VTaGlmdCksbz0xMixhPTA7YTxpO2ErKyl7Zz10W2FdLGNbb109MjU1JmcuY2hhckNvZGVBdCgwKSxjW28rMV09MjU1JmcuY2hhckNvZGVBdCgxKSxjW28rMl09MjU1JmcuY2hhckNvZGVBdCgyKSxjW28rM109MjU1JmcuY2hhckNvZGVBdCgzKTtsZXQgQT0wO2ZvcihzPUlbYV0sbj1JW2ErMV07czxuO3MrPTQpQT1BK0hBKGMscyk+Pj4wO25zKGMsbys0LEEpLG5zKGMsbys4LElbYV0pLG5zKGMsbysxMixlW2ddLmxlbmd0aCksbys9MTZ9cmV0dXJuIGN9YWRkVGFibGUoQSxlKXtpZihBIGluIHRoaXMudGFibGVzKXRocm93IG5ldyBFcnJvcigiVGFibGUgIitBKyIgYWxyZWFkeSBleGlzdHMiKTt0aGlzLnRhYmxlc1tBXT1lfX1jb25zdCBvcz1bNF0sSXM9WzVdLGNzPVs2XSxocz1bN10sQ3M9WzhdLEJzPVsxMiwzNV0sbHM9WzE0XSxRcz1bMjFdLEVzPVsyMl0sdXM9WzMwXSxkcz1bMzFdO2NsYXNzIGZze2NvbnN0cnVjdG9yKCl7dGhpcy53aWR0aD0wLHRoaXMubHNiPTAsdGhpcy5mbGV4aW5nPSExLHRoaXMub3V0cHV0PVtdLHRoaXMuc3RhY2s9W119Y29udmVydChBLGUsdCl7Y29uc3QgaT1BLmxlbmd0aDtsZXQgYSxzLG4scj0hMTtmb3IobGV0IGc9MDtnPGk7ZysrKXtsZXQgaT1BW2ddO2lmKGk8MzIpe3N3aXRjaCgxMj09PWkmJihpPShpPDw4KStBWysrZ10pLGkpe2Nhc2UgMTpjYXNlIDM6Y2FzZSA5OmNhc2UgMzA3MjpjYXNlIDMwNzM6Y2FzZSAzMDc0OmNhc2UgMzEwNTp0aGlzLnN0YWNrPVtdO2JyZWFrO2Nhc2UgNDppZih0aGlzLmZsZXhpbmcpe2lmKHRoaXMuc3RhY2subGVuZ3RoPDEpe3I9ITA7YnJlYWt9Y29uc3QgQT10aGlzLnN0YWNrLnBvcCgpO3RoaXMuc3RhY2sucHVzaCgwLEEpO2JyZWFrfXI9dGhpcy5leGVjdXRlQ29tbWFuZCgxLG9zKTticmVhaztjYXNlIDU6cj10aGlzLmV4ZWN1dGVDb21tYW5kKDIsSXMpO2JyZWFrO2Nhc2UgNjpyPXRoaXMuZXhlY3V0ZUNvbW1hbmQoMSxjcyk7YnJlYWs7Y2FzZSA3OnI9dGhpcy5leGVjdXRlQ29tbWFuZCgxLGhzKTticmVhaztjYXNlIDg6cj10aGlzLmV4ZWN1dGVDb21tYW5kKDYsQ3MpO2JyZWFrO2Nhc2UgMTA6aWYodGhpcy5zdGFjay5sZW5ndGg8MSl7cj0hMDticmVha31pZihuPXRoaXMuc3RhY2sucG9wKCksIWVbbl0pe3I9ITA7YnJlYWt9cj10aGlzLmNvbnZlcnQoZVtuXSxlLHQpO2JyZWFrO2Nhc2UgMTE6cmV0dXJuIHI7Y2FzZSAxMzppZih0aGlzLnN0YWNrLmxlbmd0aDwyKXtyPSEwO2JyZWFrfWE9dGhpcy5zdGFjay5wb3AoKSxzPXRoaXMuc3RhY2sucG9wKCksdGhpcy5sc2I9cyx0aGlzLndpZHRoPWEsdGhpcy5zdGFjay5wdXNoKGEscykscj10aGlzLmV4ZWN1dGVDb21tYW5kKDIsRXMpO2JyZWFrO2Nhc2UgMTQ6dGhpcy5vdXRwdXQucHVzaChsc1swXSk7YnJlYWs7Y2FzZSAyMTppZih0aGlzLmZsZXhpbmcpYnJlYWs7cj10aGlzLmV4ZWN1dGVDb21tYW5kKDIsUXMpO2JyZWFrO2Nhc2UgMjI6aWYodGhpcy5mbGV4aW5nKXt0aGlzLnN0YWNrLnB1c2goMCk7YnJlYWt9cj10aGlzLmV4ZWN1dGVDb21tYW5kKDEsRXMpO2JyZWFrO2Nhc2UgMzA6cj10aGlzLmV4ZWN1dGVDb21tYW5kKDQsdXMpO2JyZWFrO2Nhc2UgMzE6cj10aGlzLmV4ZWN1dGVDb21tYW5kKDQsZHMpO2JyZWFrO2Nhc2UgMzA3ODppZih0KXtjb25zdCBBPXRoaXMuc3RhY2suYXQoLTUpO3RoaXMuc2VhYz10aGlzLnN0YWNrLnNwbGljZSgtNCw0KSx0aGlzLnNlYWNbMF0rPXRoaXMubHNiLUEscj10aGlzLmV4ZWN1dGVDb21tYW5kKDAsbHMpfWVsc2Ugcj10aGlzLmV4ZWN1dGVDb21tYW5kKDQsbHMpO2JyZWFrO2Nhc2UgMzA3OTppZih0aGlzLnN0YWNrLmxlbmd0aDw0KXtyPSEwO2JyZWFrfXRoaXMuc3RhY2sucG9wKCksYT10aGlzLnN0YWNrLnBvcCgpO2NvbnN0IEE9dGhpcy5zdGFjay5wb3AoKTtzPXRoaXMuc3RhY2sucG9wKCksdGhpcy5sc2I9cyx0aGlzLndpZHRoPWEsdGhpcy5zdGFjay5wdXNoKGEscyxBKSxyPXRoaXMuZXhlY3V0ZUNvbW1hbmQoMyxRcyk7YnJlYWs7Y2FzZSAzMDg0OmlmKHRoaXMuc3RhY2subGVuZ3RoPDIpe3I9ITA7YnJlYWt9Y29uc3QgZz10aGlzLnN0YWNrLnBvcCgpLG89dGhpcy5zdGFjay5wb3AoKTt0aGlzLnN0YWNrLnB1c2goby9nKTticmVhaztjYXNlIDMwODg6aWYodGhpcy5zdGFjay5sZW5ndGg8Mil7cj0hMDticmVha31uPXRoaXMuc3RhY2sucG9wKCk7Y29uc3QgST10aGlzLnN0YWNrLnBvcCgpO2lmKDA9PT1uJiYzPT09SSl7Y29uc3QgQT10aGlzLnN0YWNrLnNwbGljZSgtMTcsMTcpO3RoaXMuc3RhY2sucHVzaChBWzJdK0FbMF0sQVszXStBWzFdLEFbNF0sQVs1XSxBWzZdLEFbN10sQVs4XSxBWzldLEFbMTBdLEFbMTFdLEFbMTJdLEFbMTNdLEFbMTRdKSxyPXRoaXMuZXhlY3V0ZUNvbW1hbmQoMTMsQnMsITApLHRoaXMuZmxleGluZz0hMSx0aGlzLnN0YWNrLnB1c2goQVsxNV0sQVsxNl0pfWVsc2UgMT09PW4mJjA9PT1JJiYodGhpcy5mbGV4aW5nPSEwKTticmVhaztjYXNlIDMwODk6YnJlYWs7ZGVmYXVsdDpVKCdVbmtub3duIHR5cGUgMSBjaGFyc3RyaW5nIGNvbW1hbmQgb2YgIicraSsnIicpfWlmKHIpYnJlYWt9ZWxzZSBpPD0yNDY/aS09MTM5Omk9aTw9MjUwPzI1NiooaS0yNDcpK0FbKytnXSsxMDg6aTw9MjU0Py0yNTYqKGktMjUxKS1BWysrZ10tMTA4OigyNTUmQVsrK2ddKTw8MjR8KDI1NSZBWysrZ10pPDwxNnwoMjU1JkFbKytnXSk8PDh8KDI1NSZBWysrZ10pPDwwLHRoaXMuc3RhY2sucHVzaChpKX1yZXR1cm4gcn1leGVjdXRlQ29tbWFuZChBLGUsdCl7Y29uc3QgaT10aGlzLnN0YWNrLmxlbmd0aDtpZihBPmkpcmV0dXJuITA7Y29uc3QgYT1pLUE7Zm9yKGxldCBBPWE7QTxpO0ErKyl7bGV0IGU9dGhpcy5zdGFja1tBXTtOdW1iZXIuaXNJbnRlZ2VyKGUpP3RoaXMub3V0cHV0LnB1c2goMjgsZT4+OCYyNTUsMjU1JmUpOihlPTY1NTM2KmV8MCx0aGlzLm91dHB1dC5wdXNoKDI1NSxlPj4yNCYyNTUsZT4+MTYmMjU1LGU+PjgmMjU1LDI1NSZlKSl9cmV0dXJuIHRoaXMub3V0cHV0LnB1c2goLi4uZSksdD90aGlzLnN0YWNrLnNwbGljZShhLEEpOnRoaXMuc3RhY2subGVuZ3RoPTAsITF9fWZ1bmN0aW9uIHBzKEEpe3JldHVybiBBPj00OCYmQTw9NTd8fEE+PTY1JiZBPD03MHx8QT49OTcmJkE8PTEwMn1mdW5jdGlvbiBtcyhBLGUsdCl7aWYodD49QS5sZW5ndGgpcmV0dXJuIG5ldyBVaW50OEFycmF5KDApO2xldCBpLGEscz0wfGU7Zm9yKGk9MDtpPHQ7aSsrKXM9NTI4NDUqKEFbaV0rcykrMjI3MTkmNjU1MzU7Y29uc3Qgbj1BLmxlbmd0aC10LHI9bmV3IFVpbnQ4QXJyYXkobik7Zm9yKGk9dCxhPTA7YTxuO2krKyxhKyspe2NvbnN0IGU9QVtpXTtyW2FdPWVecz4+OCxzPTUyODQ1KihlK3MpKzIyNzE5JjY1NTM1fXJldHVybiByfWZ1bmN0aW9uIHlzKEEpe3JldHVybiA0Nz09PUF8fDkxPT09QXx8OTM9PT1BfHwxMjM9PT1BfHwxMjU9PT1BfHw0MD09PUF8fDQxPT09QX1jbGFzcyB3c3tjb25zdHJ1Y3RvcihBLGUsdCl7aWYoZSl7Y29uc3QgZT1BLmdldEJ5dGVzKCksdD0hKChwcyhlWzBdKXx8WUEoZVswXSkpJiZwcyhlWzFdKSYmcHMoZVsyXSkmJnBzKGVbM10pJiZwcyhlWzRdKSYmcHMoZVs1XSkmJnBzKGVbNl0pJiZwcyhlWzddKSk7QT1uZXcgZ2UodD9tcyhlLDU1NjY1LDQpOmZ1bmN0aW9uKEEsZSx0KXtsZXQgaT01NTY2NTtjb25zdCBhPUEubGVuZ3RoLHM9bmV3IFVpbnQ4QXJyYXkoYT4+PjEpO2xldCBuLHI7Zm9yKG49MCxyPTA7bjxhO24rKyl7Y29uc3QgZT1BW25dO2lmKCFwcyhlKSljb250aW51ZTtsZXQgdDtmb3IobisrO248YSYmIXBzKHQ9QVtuXSk7KW4rKztpZihuPGEpe2NvbnN0IEE9cGFyc2VJbnQoU3RyaW5nLmZyb21DaGFyQ29kZShlLHQpLDE2KTtzW3IrK109QV5pPj44LGk9NTI4NDUqKEEraSkrMjI3MTkmNjU1MzV9fXJldHVybiBzLnNsaWNlKDQscil9KGUpKX10aGlzLnNlYWNBbmFseXNpc0VuYWJsZWQ9ISF0LHRoaXMuc3RyZWFtPUEsdGhpcy5uZXh0Q2hhcigpfXJlYWROdW1iZXJBcnJheSgpe3RoaXMuZ2V0VG9rZW4oKTtjb25zdCBBPVtdO2Zvcig7Oyl7Y29uc3QgZT10aGlzLmdldFRva2VuKCk7aWYobnVsbD09PWV8fCJdIj09PWV8fCJ9Ij09PWUpYnJlYWs7QS5wdXNoKHBhcnNlRmxvYXQoZXx8MCkpfXJldHVybiBBfXJlYWROdW1iZXIoKXtjb25zdCBBPXRoaXMuZ2V0VG9rZW4oKTtyZXR1cm4gcGFyc2VGbG9hdChBfHwwKX1yZWFkSW50KCl7Y29uc3QgQT10aGlzLmdldFRva2VuKCk7cmV0dXJuIDB8cGFyc2VJbnQoQXx8MCwxMCl9cmVhZEJvb2xlYW4oKXtyZXR1cm4idHJ1ZSI9PT10aGlzLmdldFRva2VuKCk/MTowfW5leHRDaGFyKCl7cmV0dXJuIHRoaXMuY3VycmVudENoYXI9dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpfXByZXZDaGFyKCl7cmV0dXJuIHRoaXMuc3RyZWFtLnNraXAoLTIpLHRoaXMuY3VycmVudENoYXI9dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpfWdldFRva2VuKCl7bGV0IEE9ITEsZT10aGlzLmN1cnJlbnRDaGFyO2Zvcig7Oyl7aWYoLTE9PT1lKXJldHVybiBudWxsO2lmKEEpMTAhPT1lJiYxMyE9PWV8fChBPSExKTtlbHNlIGlmKDM3PT09ZSlBPSEwO2Vsc2UgaWYoIVlBKGUpKWJyZWFrO2U9dGhpcy5uZXh0Q2hhcigpfWlmKHlzKGUpKXJldHVybiB0aGlzLm5leHRDaGFyKCksU3RyaW5nLmZyb21DaGFyQ29kZShlKTtsZXQgdD0iIjtkb3t0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKGUpLGU9dGhpcy5uZXh0Q2hhcigpfXdoaWxlKGU+PTAmJiFZQShlKSYmIXlzKGUpKTtyZXR1cm4gdH1yZWFkQ2hhclN0cmluZ3MoQSxlKXtyZXR1cm4tMT09PWU/QTptcyhBLDQzMzAsZSl9ZXh0cmFjdEZvbnRQcm9ncmFtKEEpe2NvbnN0IGU9dGhpcy5zdHJlYW0sdD1bXSxpPVtdLGE9T2JqZWN0LmNyZWF0ZShudWxsKTthLmxlbklWPTQ7Y29uc3Qgcz17c3VicnM6W10sY2hhcnN0cmluZ3M6W10scHJvcGVydGllczp7cHJpdmF0ZURhdGE6YX19O2xldCBuLHIsZyxvO2Zvcig7bnVsbCE9PShuPXRoaXMuZ2V0VG9rZW4oKSk7KWlmKCIvIj09PW4pc3dpdGNoKG49dGhpcy5nZXRUb2tlbigpLG4pe2Nhc2UiQ2hhclN0cmluZ3MiOmZvcih0aGlzLmdldFRva2VuKCksdGhpcy5nZXRUb2tlbigpLHRoaXMuZ2V0VG9rZW4oKSx0aGlzLmdldFRva2VuKCk7bj10aGlzLmdldFRva2VuKCksbnVsbCE9PW4mJiJlbmQiIT09bjspe2lmKCIvIiE9PW4pY29udGludWU7Y29uc3QgQT10aGlzLmdldFRva2VuKCk7cj10aGlzLnJlYWRJbnQoKSx0aGlzLmdldFRva2VuKCksZz1yPjA/ZS5nZXRCeXRlcyhyKTpuZXcgVWludDhBcnJheSgwKSxvPXMucHJvcGVydGllcy5wcml2YXRlRGF0YS5sZW5JVjtjb25zdCB0PXRoaXMucmVhZENoYXJTdHJpbmdzKGcsbyk7dGhpcy5uZXh0Q2hhcigpLG49dGhpcy5nZXRUb2tlbigpLCJub2FjY2VzcyI9PT1uP3RoaXMuZ2V0VG9rZW4oKToiLyI9PT1uJiZ0aGlzLnByZXZDaGFyKCksaS5wdXNoKHtnbHlwaDpBLGVuY29kZWQ6dH0pfWJyZWFrO2Nhc2UiU3VicnMiOmZvcih0aGlzLnJlYWRJbnQoKSx0aGlzLmdldFRva2VuKCk7ImR1cCI9PT10aGlzLmdldFRva2VuKCk7KXtjb25zdCBBPXRoaXMucmVhZEludCgpO3I9dGhpcy5yZWFkSW50KCksdGhpcy5nZXRUb2tlbigpLGc9cj4wP2UuZ2V0Qnl0ZXMocik6bmV3IFVpbnQ4QXJyYXkoMCksbz1zLnByb3BlcnRpZXMucHJpdmF0ZURhdGEubGVuSVY7Y29uc3QgaT10aGlzLnJlYWRDaGFyU3RyaW5ncyhnLG8pO3RoaXMubmV4dENoYXIoKSxuPXRoaXMuZ2V0VG9rZW4oKSwibm9hY2Nlc3MiPT09biYmdGhpcy5nZXRUb2tlbigpLHRbQV09aX1icmVhaztjYXNlIkJsdWVWYWx1ZXMiOmNhc2UiT3RoZXJCbHVlcyI6Y2FzZSJGYW1pbHlCbHVlcyI6Y2FzZSJGYW1pbHlPdGhlckJsdWVzIjpjb25zdCBBPXRoaXMucmVhZE51bWJlckFycmF5KCk7QS5sZW5ndGg+MCYmQS5sZW5ndGg7YnJlYWs7Y2FzZSJTdGVtU25hcEgiOmNhc2UiU3RlbVNuYXBWIjpzLnByb3BlcnRpZXMucHJpdmF0ZURhdGFbbl09dGhpcy5yZWFkTnVtYmVyQXJyYXkoKTticmVhaztjYXNlIlN0ZEhXIjpjYXNlIlN0ZFZXIjpzLnByb3BlcnRpZXMucHJpdmF0ZURhdGFbbl09dGhpcy5yZWFkTnVtYmVyQXJyYXkoKVswXTticmVhaztjYXNlIkJsdWVTaGlmdCI6Y2FzZSJsZW5JViI6Y2FzZSJCbHVlRnV6eiI6Y2FzZSJCbHVlU2NhbGUiOmNhc2UiTGFuZ3VhZ2VHcm91cCI6cy5wcm9wZXJ0aWVzLnByaXZhdGVEYXRhW25dPXRoaXMucmVhZE51bWJlcigpO2JyZWFrO2Nhc2UiRXhwYW5zaW9uRmFjdG9yIjpzLnByb3BlcnRpZXMucHJpdmF0ZURhdGFbbl09dGhpcy5yZWFkTnVtYmVyKCl8fC4wNjticmVhaztjYXNlIkZvcmNlQm9sZCI6cy5wcm9wZXJ0aWVzLnByaXZhdGVEYXRhW25dPXRoaXMucmVhZEJvb2xlYW4oKX1mb3IoY29uc3R7ZW5jb2RlZDplLGdseXBoOmF9b2YgaSl7Y29uc3QgaT1uZXcgZnMsbj1pLmNvbnZlcnQoZSx0LHRoaXMuc2VhY0FuYWx5c2lzRW5hYmxlZCk7bGV0IHI9aS5vdXRwdXQ7biYmKHI9WzE0XSk7Y29uc3QgZz17Z2x5cGhOYW1lOmEsY2hhcnN0cmluZzpyLHdpZHRoOmkud2lkdGgsbHNiOmkubHNiLHNlYWM6aS5zZWFjfTtpZigiLm5vdGRlZiI9PT1hP3MuY2hhcnN0cmluZ3MudW5zaGlmdChnKTpzLmNoYXJzdHJpbmdzLnB1c2goZyksQS5idWlsdEluRW5jb2Rpbmcpe2NvbnN0IGU9QS5idWlsdEluRW5jb2RpbmcuaW5kZXhPZihhKTtlPi0xJiZ2b2lkIDA9PT1BLndpZHRoc1tlXSYmZT49QS5maXJzdENoYXImJmU8PUEubGFzdENoYXImJihBLndpZHRoc1tlXT1pLndpZHRoKX19cmV0dXJuIHN9ZXh0cmFjdEZvbnRIZWFkZXIoQSl7bGV0IGU7Zm9yKDtudWxsIT09KGU9dGhpcy5nZXRUb2tlbigpKTspaWYoIi8iPT09ZSlzd2l0Y2goZT10aGlzLmdldFRva2VuKCksZSl7Y2FzZSJGb250TWF0cml4Ijpjb25zdCB0PXRoaXMucmVhZE51bWJlckFycmF5KCk7QS5mb250TWF0cml4PXQ7YnJlYWs7Y2FzZSJFbmNvZGluZyI6Y29uc3QgaT10aGlzLmdldFRva2VuKCk7bGV0IGE7aWYoL15cZCskLy50ZXN0KGkpKXthPVtdO2NvbnN0IEE9MHxwYXJzZUludChpLDEwKTt0aGlzLmdldFRva2VuKCk7Zm9yKGxldCB0PTA7dDxBO3QrKyl7Zm9yKGU9dGhpcy5nZXRUb2tlbigpOyJkdXAiIT09ZSYmImRlZiIhPT1lOylpZihlPXRoaXMuZ2V0VG9rZW4oKSxudWxsPT09ZSlyZXR1cm47aWYoImRlZiI9PT1lKWJyZWFrO2NvbnN0IEE9dGhpcy5yZWFkSW50KCk7dGhpcy5nZXRUb2tlbigpO2NvbnN0IHQ9dGhpcy5nZXRUb2tlbigpO2FbQV09dCx0aGlzLmdldFRva2VuKCl9fWVsc2UgYT1LaShpKTtBLmJ1aWx0SW5FbmNvZGluZz1hO2JyZWFrO2Nhc2UiRm9udEJCb3giOmNvbnN0IHM9dGhpcy5yZWFkTnVtYmVyQXJyYXkoKTtBLmFzY2VudD1NYXRoLm1heChzWzNdLHNbMV0pLEEuZGVzY2VudD1NYXRoLm1pbihzWzFdLHNbM10pLEEuYXNjZW50U2NhbGVkPSEwfX19ZnVuY3Rpb24gRHMoQSxlLHQpe2NvbnN0IGk9QS5sZW5ndGgsYT1lLmxlbmd0aCxzPWktYTtsZXQgbj10LHI9ITE7Zm9yKDtuPHM7KXtsZXQgdD0wO2Zvcig7dDxhJiZBW24rdF09PT1lW3RdOyl0Kys7aWYodD49YSl7Zm9yKG4rPXQ7bjxpJiZZQShBW25dKTspbisrO3I9ITA7YnJlYWt9bisrfXJldHVybntmb3VuZDpyLGxlbmd0aDpufX1jbGFzcyBic3tjb25zdHJ1Y3RvcihBLGUsdCl7bGV0IGk9dC5sZW5ndGgxLGE9dC5sZW5ndGgyLHM9ZS5wZWVrQnl0ZXMoNik7Y29uc3Qgbj0xMjg9PT1zWzBdJiYxPT09c1sxXTtuJiYoZS5za2lwKDYpLGk9c1s1XTw8MjR8c1s0XTw8MTZ8c1szXTw8OHxzWzJdKTtjb25zdCByPWZ1bmN0aW9uKEEsZSl7Y29uc3QgdD1bMTAxLDEwMSwxMjAsMTAxLDk5XSxpPUEucG9zO2xldCBhLHMsbixyO3RyeXthPUEuZ2V0Qnl0ZXMoZSkscz1hLmxlbmd0aH1jYXRjaHt9aWYocz09PWUmJihuPURzKGEsdCxlLTIqdC5sZW5ndGgpLG4uZm91bmQmJm4ubGVuZ3RoPT09ZSkpcmV0dXJue3N0cmVhbTpuZXcgZ2UoYSksbGVuZ3RoOmV9O2ZvcihVKCdJbnZhbGlkICJMZW5ndGgxIiBwcm9wZXJ0eSBpbiBUeXBlMSBmb250IC0tIHRyeWluZyB0byByZWNvdmVyLicpLEEucG9zPWk7bj1EcyhBLnBlZWtCeXRlcygyMDQ4KSx0LDApLDAhPT1uLmxlbmd0aDspaWYoQS5wb3MrPW4ubGVuZ3RoLG4uZm91bmQpe3I9QS5wb3MtaTticmVha31yZXR1cm4gQS5wb3M9aSxyP3tzdHJlYW06bmV3IGdlKEEuZ2V0Qnl0ZXMocikpLGxlbmd0aDpyfTooVSgnVW5hYmxlIHRvIHJlY292ZXIgIkxlbmd0aDEiIHByb3BlcnR5IGluIFR5cGUxIGZvbnQgLS0gdXNpbmcgYXMgaXMuJykse3N0cmVhbTpuZXcgZ2UoQS5nZXRCeXRlcyhlKSksbGVuZ3RoOmV9KX0oZSxpKTtuZXcgd3Moci5zdHJlYW0sITEsbGEpLmV4dHJhY3RGb250SGVhZGVyKHQpLG4mJihzPWUuZ2V0Qnl0ZXMoNiksYT1zWzVdPDwyNHxzWzRdPDwxNnxzWzNdPDw4fHNbMl0pO2NvbnN0IGc9ZnVuY3Rpb24oQSxlKXtjb25zdCB0PUEuZ2V0Qnl0ZXMoKTtpZigwPT09dC5sZW5ndGgpdGhyb3cgbmV3IFcoImdldEVleGVjQmxvY2sgLSBubyBmb250IHByb2dyYW0gZm91bmQuIik7cmV0dXJue3N0cmVhbTpuZXcgZ2UodCksbGVuZ3RoOnQubGVuZ3RofX0oZSksbz1uZXcgd3MoZy5zdHJlYW0sITAsbGEpLmV4dHJhY3RGb250UHJvZ3JhbSh0KTtmb3IoY29uc3QgQSBpbiBvLnByb3BlcnRpZXMpdFtBXT1vLnByb3BlcnRpZXNbQV07Y29uc3QgST1vLmNoYXJzdHJpbmdzLGM9dGhpcy5nZXRUeXBlMkNoYXJzdHJpbmdzKEkpLGg9dGhpcy5nZXRUeXBlMlN1YnJzKG8uc3VicnMpO3RoaXMuY2hhcnN0cmluZ3M9SSx0aGlzLmRhdGE9dGhpcy53cmFwKEEsYyx0aGlzLmNoYXJzdHJpbmdzLGgsdCksdGhpcy5zZWFjcz10aGlzLmdldFNlYWNzKG8uY2hhcnN0cmluZ3MpfWdldCBudW1HbHlwaHMoKXtyZXR1cm4gdGhpcy5jaGFyc3RyaW5ncy5sZW5ndGgrMX1nZXRDaGFyc2V0KCl7Y29uc3QgQT1bIi5ub3RkZWYiXTtmb3IoY29uc3R7Z2x5cGhOYW1lOmV9b2YgdGhpcy5jaGFyc3RyaW5ncylBLnB1c2goZSk7cmV0dXJuIEF9Z2V0R2x5cGhNYXBwaW5nKEEpe2NvbnN0IGU9dGhpcy5jaGFyc3RyaW5ncztpZihBLmNvbXBvc2l0ZSl7Y29uc3QgdD1PYmplY3QuY3JlYXRlKG51bGwpO2ZvcihsZXQgaT0wLGE9ZS5sZW5ndGg7aTxhO2krKyl0W0EuY01hcC5jaGFyQ29kZU9mKGkpXT1pKzE7cmV0dXJuIHR9Y29uc3QgdD1bIi5ub3RkZWYiXTtsZXQgaSxhO2ZvcihhPTA7YTxlLmxlbmd0aDthKyspdC5wdXNoKGVbYV0uZ2x5cGhOYW1lKTtjb25zdCBzPUEuYnVpbHRJbkVuY29kaW5nO2lmKHMpe2k9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IoY29uc3QgQSBpbiBzKWE9dC5pbmRleE9mKHNbQV0pLGE+PTAmJihpW0FdPWEpfXJldHVybiB1YShBLGksdCl9aGFzR2x5cGhJZChBKXtyZXR1cm4hKEE8MHx8QT49dGhpcy5udW1HbHlwaHMpJiYoMD09PUF8fHRoaXMuY2hhcnN0cmluZ3NbQS0xXS5jaGFyc3RyaW5nLmxlbmd0aD4wKX1nZXRTZWFjcyhBKXtjb25zdCBlPVtdO2ZvcihsZXQgdD0wLGk9QS5sZW5ndGg7dDxpO3QrKyl7Y29uc3QgaT1BW3RdO2kuc2VhYyYmKGVbdCsxXT1pLnNlYWMpfXJldHVybiBlfWdldFR5cGUyQ2hhcnN0cmluZ3MoQSl7Y29uc3QgZT1bXTtmb3IoY29uc3QgdCBvZiBBKWUucHVzaCh0LmNoYXJzdHJpbmcpO3JldHVybiBlfWdldFR5cGUyU3VicnMoQSl7bGV0IGU9MDtjb25zdCB0PUEubGVuZ3RoO2U9dDwxMTMzPzEwNzp0PDMzNzY5PzExMzE6MzI3Njg7Y29uc3QgaT1bXTtsZXQgYTtmb3IoYT0wO2E8ZTthKyspaS5wdXNoKFsxMV0pO2ZvcihhPTA7YTx0O2ErKylpLnB1c2goQVthXSk7cmV0dXJuIGl9d3JhcChBLGUsdCxpLGEpe2NvbnN0IHM9bmV3IE9pO3MuaGVhZGVyPW5ldyBaaSgxLDAsNCw0KSxzLm5hbWVzPVtBXTtjb25zdCBuPW5ldyB6aTtuLnNldEJ5TmFtZSgidmVyc2lvbiIsMzkxKSxuLnNldEJ5TmFtZSgiTm90aWNlIiwzOTIpLG4uc2V0QnlOYW1lKCJGdWxsTmFtZSIsMzkzKSxuLnNldEJ5TmFtZSgiRmFtaWx5TmFtZSIsMzk0KSxuLnNldEJ5TmFtZSgiV2VpZ2h0IiwzOTUpLG4uc2V0QnlOYW1lKCJFbmNvZGluZyIsbnVsbCksbi5zZXRCeU5hbWUoIkZvbnRNYXRyaXgiLGEuZm9udE1hdHJpeCksbi5zZXRCeU5hbWUoIkZvbnRCQm94IixhLmJib3gpLG4uc2V0QnlOYW1lKCJjaGFyc2V0IixudWxsKSxuLnNldEJ5TmFtZSgiQ2hhclN0cmluZ3MiLG51bGwpLG4uc2V0QnlOYW1lKCJQcml2YXRlIixudWxsKSxzLnRvcERpY3Q9bjtjb25zdCByPW5ldyBqaTtyLmFkZCgiVmVyc2lvbiAwLjExIiksci5hZGQoIlNlZSBvcmlnaW5hbCBub3RpY2UiKSxyLmFkZChBKSxyLmFkZChBKSxyLmFkZCgiTWVkaXVtIikscy5zdHJpbmdzPXIscy5nbG9iYWxTdWJySW5kZXg9bmV3IFhpO2NvbnN0IGc9ZS5sZW5ndGgsbz1bIi5ub3RkZWYiXTtsZXQgSSxjO2ZvcihJPTA7STxnO0krKyl7Y29uc3QgQT10W0ldLmdseXBoTmFtZTstMT09PXFpLmluZGV4T2YoQSkmJnIuYWRkKEEpLG8ucHVzaChBKX1zLmNoYXJzZXQ9bmV3IHRhKCExLDAsbyk7Y29uc3QgaD1uZXcgWGk7Zm9yKGguYWRkKFsxMzksMTRdKSxJPTA7STxnO0krKyloLmFkZChlW0ldKTtzLmNoYXJTdHJpbmdzPWg7Y29uc3QgQz1uZXcgQWE7Qy5zZXRCeU5hbWUoIlN1YnJzIixudWxsKTtjb25zdCBCPVsiQmx1ZVZhbHVlcyIsIk90aGVyQmx1ZXMiLCJGYW1pbHlCbHVlcyIsIkZhbWlseU90aGVyQmx1ZXMiLCJTdGVtU25hcEgiLCJTdGVtU25hcFYiLCJCbHVlU2hpZnQiLCJCbHVlRnV6eiIsIkJsdWVTY2FsZSIsIkxhbmd1YWdlR3JvdXAiLCJFeHBhbnNpb25GYWN0b3IiLCJGb3JjZUJvbGQiLCJTdGRIVyIsIlN0ZFZXIl07Zm9yKEk9MCxjPUIubGVuZ3RoO0k8YztJKyspe2NvbnN0IEE9QltJXTtpZighKEEgaW4gYS5wcml2YXRlRGF0YSkpY29udGludWU7Y29uc3QgZT1hLnByaXZhdGVEYXRhW0FdO2lmKEFycmF5LmlzQXJyYXkoZSkpZm9yKGxldCBBPWUubGVuZ3RoLTE7QT4wO0EtLSllW0FdLT1lW0EtMV07Qy5zZXRCeU5hbWUoQSxlKX1zLnRvcERpY3QucHJpdmF0ZURpY3Q9Qztjb25zdCBsPW5ldyBYaTtmb3IoST0wLGM9aS5sZW5ndGg7STxjO0krKylsLmFkZChpW0ldKTtyZXR1cm4gQy5zdWJyc0luZGV4PWwsbmV3IG5hKHMpLmNvbXBpbGUoKX19Y29uc3Qga3M9W1s1NzM0NCw2Mzc0M10sWzEwNDg1NzYsMTExNDEwOV1dLEZzPTFlMyxTcz1bImFzY2VudCIsImJib3giLCJibGFjayIsImJvbGQiLCJjaGFyUHJvY09wZXJhdG9yTGlzdCIsImNvbXBvc2l0ZSIsImNzc0ZvbnRJbmZvIiwiZGF0YSIsImRlZmF1bHRWTWV0cmljcyIsImRlZmF1bHRXaWR0aCIsImRlc2NlbnQiLCJmYWxsYmFja05hbWUiLCJmb250TWF0cml4IiwiaXNJbnZhbGlkUERGanNGb250IiwiaXNUeXBlM0ZvbnQiLCJpdGFsaWMiLCJsb2FkZWROYW1lIiwibWltZXR5cGUiLCJtaXNzaW5nRmlsZSIsIm5hbWUiLCJyZW1lYXN1cmUiLCJzdWJ0eXBlIiwic3lzdGVtRm9udEluZm8iLCJ0eXBlIiwidmVydGljYWwiXSxScz1bImNNYXAiLCJkZWZhdWx0RW5jb2RpbmciLCJkaWZmZXJlbmNlcyIsImlzTW9ub3NwYWNlIiwiaXNTZXJpZkZvbnQiLCJpc1N5bWJvbGljRm9udCIsInNlYWNNYXAiLCJ0b0ZvbnRDaGFyIiwidG9Vbmljb2RlIiwidm1ldHJpY3MiLCJ3aWR0aHMiXTtmdW5jdGlvbiBHcyhBKXtpZighQS5mb250TWF0cml4KXJldHVybjtpZihBLmZvbnRNYXRyaXhbMF09PT1uWzBdKXJldHVybjtjb25zdCBlPS4wMDEvQS5mb250TWF0cml4WzBdLHQ9QS53aWR0aHM7Zm9yKGNvbnN0IEEgaW4gdCl0W0FdKj1lO0EuZGVmYXVsdFdpZHRoKj1lfWZ1bmN0aW9uIE5zKEEpe2lmKCFBLmZhbGxiYWNrVG9Vbmljb2RlKXJldHVybjtpZihBLnRvVW5pY29kZSBpbnN0YW5jZW9mIE5hKXJldHVybjtjb25zdCBlPVtdO2Zvcihjb25zdCB0IGluIEEuZmFsbGJhY2tUb1VuaWNvZGUpQS50b1VuaWNvZGUuaGFzKHQpfHwoZVt0XT1BLmZhbGxiYWNrVG9Vbmljb2RlW3RdKTtlLmxlbmd0aD4wJiZBLnRvVW5pY29kZS5hbWVuZChlKX1jbGFzcyB4c3tjb25zdHJ1Y3RvcihBLGUsdCxpLGEscyxuLHIsZyl7dGhpcy5vcmlnaW5hbENoYXJDb2RlPUEsdGhpcy5mb250Q2hhcj1lLHRoaXMudW5pY29kZT10LHRoaXMuYWNjZW50PWksdGhpcy53aWR0aD1hLHRoaXMudm1ldHJpYz1zLHRoaXMub3BlcmF0b3JMaXN0SWQ9bix0aGlzLmlzU3BhY2U9cix0aGlzLmlzSW5Gb250PWd9Z2V0IGNhdGVnb3J5KCl7cmV0dXJuIEgodGhpcywiY2F0ZWdvcnkiLGZ1bmN0aW9uKEEpe2NvbnN0IGU9QmEuZ2V0KEEpO2lmKGUpcmV0dXJuIGU7Y29uc3QgdD1BLm1hdGNoKENhKSxpPXtpc1doaXRlc3BhY2U6ISF0Py5bMV0saXNaZXJvV2lkdGhEaWFjcml0aWM6ISF0Py5bMl0saXNJbnZpc2libGVGb3JtYXRNYXJrOiEhdD8uWzNdfTtyZXR1cm4gQmEuc2V0KEEsaSksaX0odGhpcy51bmljb2RlKSwhMCl9fWZ1bmN0aW9uIFVzKEEsZSl7cmV0dXJuKEE8PDgpK2V9ZnVuY3Rpb24gTXMoQSxlLHQpe0FbZSsxXT10LEFbZV09dD4+Pjh9ZnVuY3Rpb24gTHMoQSxlKXtjb25zdCB0PShBPDw4KStlO3JldHVybiAzMjc2OCZ0P3QtNjU1MzY6dH1mdW5jdGlvbiBKcyhBKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShBPj44JjI1NSwyNTUmQSl9ZnVuY3Rpb24gSHMoQSl7cmV0dXJuIEE+MzI3Njc/QT0zMjc2NzpBPC0zMjc2OCYmKEE9LTMyNzY4KSxTdHJpbmcuZnJvbUNoYXJDb2RlKEE+PjgmMjU1LDI1NSZBKX1mdW5jdGlvbiBZcyhBKXtyZXR1cm4idHRjZiI9PT1aKEEucGVla0J5dGVzKDQpKX1mdW5jdGlvbiB2cyhBLGUpe2Zvcihjb25zdCB0IGluIGUpQVsrdF09ZVt0XX1mdW5jdGlvbiBLcyhBLGUsdCl7Y29uc3QgaT1bXTtsZXQgYTtmb3IobGV0IHQ9MCxzPUEubGVuZ3RoO3Q8czt0KyspYT1JYShBW3RdLGUpLC0xIT09YSYmKGlbdF09YSk7Zm9yKGNvbnN0IEEgaW4gdClhPUlhKHRbQV0sZSksLTEhPT1hJiYoaVsrQV09YSk7cmV0dXJuIGl9ZnVuY3Rpb24gcXMoQSl7cmV0dXJuIDE9PT1BLnBsYXRmb3JtJiYwPT09QS5lbmNvZGluZyYmMD09PUEubGFuZ3VhZ2V9ZnVuY3Rpb24gVHMoQSl7cmV0dXJuIDM9PT1BLnBsYXRmb3JtJiYxPT09QS5lbmNvZGluZyYmMTAzMz09PUEubGFuZ3VhZ2V9ZnVuY3Rpb24gUHMoQSxlLHQ9ITEpe3N3aXRjaChlLmxlbmd0aCl7Y2FzZSAxOnJldHVybiBlLmNoYXJDb2RlQXQoMCk7Y2FzZSAyOnJldHVybiBlLmNoYXJDb2RlQXQoMCk8PDh8ZS5jaGFyQ29kZUF0KDEpfWNvbnN0IGk9YFVuc3VwcG9ydGVkIENJRCBzdHJpbmcgKGNoYXJDb2RlICR7QX0pOiAiJHtlfSIuYDtpZih0KXRocm93IG5ldyBXKGkpO3JldHVybiBVKGkpLGV9ZnVuY3Rpb24gV3MoQSxlLHQsaSl7Y29uc3QgYT1PYmplY3QuY3JlYXRlKG51bGwpLHM9bmV3IE1hcCxuPVtdLHI9bmV3IFNldDtsZXQgZz0wLG89a3NbZ11bMF0sST1rc1tnXVsxXTtmb3IoY29uc3QgaCBpbiBBKXtsZXQgQz1BW2hdO2lmKCFlKEMpKWNvbnRpbnVlO2lmKG8+SSl7aWYoZysrLGc+PWtzLmxlbmd0aCl7VSgiUmFuIG91dCBvZiBzcGFjZSBpbiBmb250IHByaXZhdGUgdXNlIGFyZWEuIik7YnJlYWt9bz1rc1tnXVswXSxJPWtzW2ddWzFdfWNvbnN0IEI9bysrOzA9PT1DJiYoQz10KTtsZXQgbD1pLmdldChoKTsic3RyaW5nIj09dHlwZW9mIGwmJihsPWwuY29kZVBvaW50QXQoMCkpLCFsfHwoYz1sLGtzWzBdWzBdPD1jJiZjPD1rc1swXVsxXXx8a3NbMV1bMF08PWMmJmM8PWtzWzFdWzFdKXx8ci5oYXMoQyl8fChzLnNldChsLEMpLHIuYWRkKEMpKSxhW0JdPUMsbltoXT1CfXZhciBjO3JldHVybnt0b0ZvbnRDaGFyOm4sY2hhckNvZGVUb0dseXBoSWQ6YSx0b1VuaWNvZGVFeHRyYU1hcDpzLG5leHRBdmFpbGFibGVGb250Q2hhckNvZGU6b319ZnVuY3Rpb24gT3MoQSxlLHQpe2NvbnN0IGk9ZnVuY3Rpb24oQSxlLHQpe2NvbnN0IGk9W107Zm9yKGNvbnN0IGUgaW4gQSlBW2VdPj10fHxpLnB1c2goe2ZvbnRDaGFyQ29kZTowfGUsZ2x5cGhJZDpBW2VdfSk7aWYoZSlmb3IoY29uc3RbQSxhXW9mIGUpYT49dHx8aS5wdXNoKHtmb250Q2hhckNvZGU6QSxnbHlwaElkOmF9KTswPT09aS5sZW5ndGgmJmkucHVzaCh7Zm9udENoYXJDb2RlOjAsZ2x5cGhJZDowfSksaS5zb3J0KChmdW5jdGlvbihBLGUpe3JldHVybiBBLmZvbnRDaGFyQ29kZS1lLmZvbnRDaGFyQ29kZX0pKTtjb25zdCBhPVtdLHM9aS5sZW5ndGg7Zm9yKGxldCBBPTA7QTxzOyl7Y29uc3QgZT1pW0FdLmZvbnRDaGFyQ29kZSx0PVtpW0FdLmdseXBoSWRdOysrQTtsZXQgbj1lO2Zvcig7QTxzJiZuKzE9PT1pW0FdLmZvbnRDaGFyQ29kZSYmKHQucHVzaChpW0FdLmdseXBoSWQpLCsrbiwrK0EsNjU1MzUhPT1uKTspO2EucHVzaChbZSxuLHRdKX1yZXR1cm4gYX0oQSxlLHQpLGE9aS5hdCgtMSlbMV0+NjU1MzU/MjoxO2xldCBzLG4scixnLG89IlwwXDAiK0pzKGEpKyJcMANcMAEiK1goNCs4KmEpO2ZvcihzPWkubGVuZ3RoLTE7cz49MCYmIShpW3NdWzBdPD02NTUzNSk7LS1zKTtjb25zdCBJPXMrMTtpW3NdWzBdPDY1NTM1JiY2NTUzNT09PWlbc11bMV0mJihpW3NdWzFdPTY1NTM0KTtjb25zdCBjPWlbc11bMV08NjU1MzU/MTowLGg9SStjLEM9Z3MuZ2V0U2VhcmNoUGFyYW1zKGgsMik7bGV0IEIsbCxRLEUsdT0iIixkPSIiLGY9IiIscD0iIixtPSIiLHk9MDtmb3Iocz0wLG49STtzPG47cysrKXtCPWlbc10sbD1CWzBdLFE9QlsxXSx1Kz1KcyhsKSxkKz1KcyhRKSxFPUJbMl07bGV0IEE9ITA7Zm9yKHI9MSxnPUUubGVuZ3RoO3I8ZzsrK3IpaWYoRVtyXSE9PUVbci0xXSsxKXtBPSExO2JyZWFrfWlmKEEpZis9SnMoRVswXS1sJjY1NTM1KSxwKz1KcygwKTtlbHNle2NvbnN0IEE9MiooaC1zKSsyKnk7Zm9yKHkrPVEtbCsxLGYrPUpzKDApLHArPUpzKEEpLHI9MCxnPUUubGVuZ3RoO3I8ZzsrK3IpbSs9SnMoRVtyXSl9fWM+MCYmKGQrPSLDv8O/Iix1Kz0iw7/DvyIsZis9IlwwASIscCs9IlwwXDAiKTtjb25zdCB3PSJcMFwwIitKcygyKmgpK0pzKEMucmFuZ2UpK0pzKEMuZW50cnkpK0pzKEMucmFuZ2VTaGlmdCkrZCsiXDBcMCIrdStmK3ArbTtsZXQgRD0iIixiPSIiO2lmKGE+MSl7Zm9yKG8rPSJcMANcMFxuIitYKDQrOCphKzQrdy5sZW5ndGgpLEQ9IiIscz0wLG49aS5sZW5ndGg7czxuO3MrKyl7Qj1pW3NdLGw9QlswXSxFPUJbMl07bGV0IEE9RVswXTtmb3Iocj0xLGc9RS5sZW5ndGg7cjxnOysrcilFW3JdIT09RVtyLTFdKzEmJihRPUJbMF0rci0xLEQrPVgobCkrWChRKStYKEEpLGw9USsxLEE9RVtyXSk7RCs9WChsKStYKEJbMV0pK1goQSl9Yj0iXDBcZlwwXDAiK1goRC5sZW5ndGgrMTYpKyJcMFwwXDBcMCIrWChELmxlbmd0aC8xMil9cmV0dXJuIG8rIlwwBCIrSnMody5sZW5ndGgrNCkrdytiK0R9ZnVuY3Rpb24gWnMoQSxlLHQpe3R8fD17dW5pdHNQZXJFbTowLHlNYXg6MCx5TWluOjAsYXNjZW50OjAsZGVzY2VudDowfTtsZXQgaT0wLGE9MCxzPTAsbj0wLHI9bnVsbCxnPTAsbz0tMTtpZihlKXtmb3IobGV0IEEgaW4gZSlpZihBfD0wLChyPkF8fCFyKSYmKHI9QSksZzxBJiYoZz1BKSxvPWhhKEEsbyksbzwzMilpfD0xPDxvO2Vsc2UgaWYobzw2NClhfD0xPDxvLTMyO2Vsc2UgaWYobzw5NilzfD0xPDxvLTY0O2Vsc2V7aWYoIShvPDEyMykpdGhyb3cgbmV3IFcoIlVuaWNvZGUgcmFuZ2VzIEJpdHMgPiAxMjMgYXJlIHJlc2VydmVkIGZvciBpbnRlcm5hbCB1c2FnZSIpO258PTE8PG8tOTZ9Zz42NTUzNSYmKGc9NjU1MzUpfWVsc2Ugcj0wLGc9MjU1O2NvbnN0IEk9QS5iYm94fHxbMCwwLDAsMF0sYz10LnVuaXRzUGVyRW18fChBLmZvbnRNYXRyaXg/MS9NYXRoLm1heCguLi5BLmZvbnRNYXRyaXguc2xpY2UoMCw0KS5tYXAoTWF0aC5hYnMpKToxZTMpLGg9QS5hc2NlbnRTY2FsZWQ/MTpjL0ZzLEM9dC5hc2NlbnR8fE1hdGgucm91bmQoaCooQS5hc2NlbnR8fElbM10pKTtsZXQgQj10LmRlc2NlbnR8fE1hdGgucm91bmQoaCooQS5kZXNjZW50fHxJWzFdKSk7Qj4wJiZBLmRlc2NlbnQ+MCYmSVsxXTwwJiYoQj0tQik7Y29uc3QgbD10LnlNYXh8fEMsUT0tdC55TWlufHwtQjtyZXR1cm4iXDADAiQBw7RcMAVcMFwwAsKKAsK7XDBcMFwwwowCwooCwrtcMFwwAcOfXHgwMDEBAlwwXDBcMFwwBiIrU3RyaW5nLmZyb21DaGFyQ29kZShBLmZpeGVkUGl0Y2g/OTowKSsiXDBcMFwwXDBcMFwwIitYKGkpK1goYSkrWChzKStYKG4pKyIqMjEqIitKcyhBLml0YWxpY0FuZ2xlPzE6MCkrSnMocnx8QS5maXJzdENoYXIpK0pzKGd8fEEubGFzdENoYXIpK0pzKEMpK0pzKEIpKyJcMGQiK0pzKGwpK0pzKFEpKyJcMFwwXDBcMFwwXDBcMFwwIitKcyhBLnhIZWlnaHQpK0pzKEEuY2FwSGVpZ2h0KStKcygwKStKcyhyfHxBLmZpcnN0Q2hhcikrIlwwAyJ9ZnVuY3Rpb24ganMoQSl7cmV0dXJuIlwwA1wwXDAiK1goTWF0aC5mbG9vcig2NTUzNipBLml0YWxpY0FuZ2xlKSkrIlwwXDBcMFwwIitYKEEuZml4ZWRQaXRjaD8xOjApKyJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCJ9ZnVuY3Rpb24gWHMoQSl7cmV0dXJuIEEucmVwbGFjZUFsbCgvW15ceDIxLVx4N0VdfFtbXF0oKXt9PD4vJV0vZywiIikuc2xpY2UoMCw2Myl9ZnVuY3Rpb24gVnMoQSxlKXtlfHwoZT1bW10sW11dKTtjb25zdCB0PVtlWzBdWzBdfHwiT3JpZ2luYWwgbGljZW5jZSIsZVswXVsxXXx8QSxlWzBdWzJdfHwiVW5rbm93biIsZVswXVszXXx8InVuaXF1ZUlEIixlWzBdWzRdfHxBLGVbMF1bNV18fCJWZXJzaW9uIDAuMTEiLGVbMF1bNl18fFhzKEEpLGVbMF1bN118fCJVbmtub3duIixlWzBdWzhdfHwiVW5rbm93biIsZVswXVs5XXx8IlVua25vd24iXSxpPVtdO2xldCBhLHMsbixyLGc7Zm9yKGE9MCxzPXQubGVuZ3RoO2E8czthKyspe2c9ZVsxXVthXXx8dFthXTtjb25zdCBBPVtdO2ZvcihuPTAscj1nLmxlbmd0aDtuPHI7bisrKUEucHVzaChKcyhnLmNoYXJDb2RlQXQobikpKTtpLnB1c2goQS5qb2luKCIiKSl9Y29uc3Qgbz1bdCxpXSxJPVsiXDABIiwiXDADIl0sYz1bIlwwXDAiLCJcMAEiXSxoPVsiXDBcMCIsIgRcdCJdLEM9dC5sZW5ndGgqSS5sZW5ndGg7bGV0IEI9IlwwXDAiK0pzKEMpK0pzKDEyKkMrNiksbD0wO2ZvcihhPTAscz1JLmxlbmd0aDthPHM7YSsrKXtjb25zdCBBPW9bYV07Zm9yKG49MCxyPUEubGVuZ3RoO248cjtuKyspZz1BW25dLEIrPUlbYV0rY1thXStoW2FdK0pzKG4pK0pzKGcubGVuZ3RoKStKcyhsKSxsKz1nLmxlbmd0aH1yZXR1cm4gQis9dC5qb2luKCIiKStpLmpvaW4oIiIpLEJ9Y2xhc3MgX3N7Y29uc3RydWN0b3IoQSxlLHQpe3RoaXMubmFtZT1BLHRoaXMucHNOYW1lPW51bGwsdGhpcy5taW1ldHlwZT1udWxsLHRoaXMuZGlzYWJsZUZvbnRGYWNlPSExLHRoaXMubG9hZGVkTmFtZT10LmxvYWRlZE5hbWUsdGhpcy5pc1R5cGUzRm9udD10LmlzVHlwZTNGb250LHRoaXMubWlzc2luZ0ZpbGU9ITEsdGhpcy5jc3NGb250SW5mbz10LmNzc0ZvbnRJbmZvLHRoaXMuX2NoYXJzQ2FjaGU9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9nbHlwaENhY2hlPU9iamVjdC5jcmVhdGUobnVsbCk7bGV0IGk9ISEoMiZ0LmZsYWdzKTtpZighaSYmIXQuaXNTaW11bGF0ZWRGbGFncyl7Y29uc3QgZT1BLnJlcGxhY2VBbGwoL1ssX10vZywiLSIpLnNwbGl0KCItIiwxKVswXSx0PXdhKCk7Zm9yKGNvbnN0IEEgb2YgZS5zcGxpdCgiKyIpKWlmKHRbQV0pe2k9ITA7YnJlYWt9fXRoaXMuaXNTZXJpZkZvbnQ9aSx0aGlzLmlzU3ltYm9saWNGb250PSEhKDQmdC5mbGFncyksdGhpcy5pc01vbm9zcGFjZT0hISgxJnQuZmxhZ3MpO2xldHt0eXBlOmEsc3VidHlwZTpzfT10O3RoaXMudHlwZT1hLHRoaXMuc3VidHlwZT1zLHRoaXMuc3lzdGVtRm9udEluZm89dC5zeXN0ZW1Gb250SW5mbztjb25zdCBuPUEubWF0Y2goL15JbnZhbGlkUERGanNGb250XyguKilfXGQrJC8pO2lmKHRoaXMuaXNJbnZhbGlkUERGanNGb250PSEhbix0aGlzLmlzSW52YWxpZFBERmpzRm9udD90aGlzLmZhbGxiYWNrTmFtZT1uWzFdOnRoaXMuaXNNb25vc3BhY2U/dGhpcy5mYWxsYmFja05hbWU9Im1vbm9zcGFjZSI6dGhpcy5pc1NlcmlmRm9udD90aGlzLmZhbGxiYWNrTmFtZT0ic2VyaWYiOnRoaXMuZmFsbGJhY2tOYW1lPSJzYW5zLXNlcmlmIix0aGlzLnN5c3RlbUZvbnRJbmZvPy5ndWVzc0ZhbGxiYWNrJiYodGhpcy5zeXN0ZW1Gb250SW5mby5ndWVzc0ZhbGxiYWNrPSExLHRoaXMuc3lzdGVtRm9udEluZm8uY3NzKz1gLCR7dGhpcy5mYWxsYmFja05hbWV9YCksdGhpcy5kaWZmZXJlbmNlcz10LmRpZmZlcmVuY2VzLHRoaXMud2lkdGhzPXQud2lkdGhzLHRoaXMuZGVmYXVsdFdpZHRoPXQuZGVmYXVsdFdpZHRoLHRoaXMuY29tcG9zaXRlPXQuY29tcG9zaXRlLHRoaXMuY01hcD10LmNNYXAsdGhpcy5jYXBIZWlnaHQ9dC5jYXBIZWlnaHQvRnMsdGhpcy5hc2NlbnQ9dC5hc2NlbnQvRnMsdGhpcy5kZXNjZW50PXQuZGVzY2VudC9Gcyx0aGlzLmxpbmVIZWlnaHQ9dGhpcy5hc2NlbnQtdGhpcy5kZXNjZW50LHRoaXMuZm9udE1hdHJpeD10LmZvbnRNYXRyaXgsdGhpcy5iYm94PXQuYmJveCx0aGlzLmRlZmF1bHRFbmNvZGluZz10LmRlZmF1bHRFbmNvZGluZyx0aGlzLnRvVW5pY29kZT10LnRvVW5pY29kZSx0aGlzLnRvRm9udENoYXI9W10sIlR5cGUzIj09PXQudHlwZSl7Zm9yKGxldCBBPTA7QTwyNTY7QSsrKXRoaXMudG9Gb250Q2hhcltBXT10aGlzLmRpZmZlcmVuY2VzW0FdfHx0LmRlZmF1bHRFbmNvZGluZ1tBXTtyZXR1cm59aWYodGhpcy5jaWRFbmNvZGluZz10LmNpZEVuY29kaW5nfHwiIix0aGlzLnZlcnRpY2FsPSEhdC52ZXJ0aWNhbCx0aGlzLnZlcnRpY2FsJiYodGhpcy52bWV0cmljcz10LnZtZXRyaWNzLHRoaXMuZGVmYXVsdFZNZXRyaWNzPXQuZGVmYXVsdFZNZXRyaWNzKSwhZXx8ZS5pc0VtcHR5KXJldHVybiBlJiZVKCdGb250IGZpbGUgaXMgZW1wdHkgaW4gIicrQSsnIiAoJyt0aGlzLmxvYWRlZE5hbWUrIikiKSx2b2lkIHRoaXMuZmFsbGJhY2tUb1N5c3RlbUZvbnQodCk7bGV0IHI7W2Esc109ZnVuY3Rpb24oQSx7dHlwZTplLHN1YnR5cGU6dCxjb21wb3NpdGU6aX0pe2xldCBhLHM7cmV0dXJuIGZ1bmN0aW9uKEEpe2NvbnN0IGU9QS5wZWVrQnl0ZXMoNCk7cmV0dXJuIDY1NTM2PT09SEEoZSwwKXx8InRydWUiPT09WihlKX0oQSl8fFlzKEEpP2E9aT8iQ0lERm9udFR5cGUyIjoiVHJ1ZVR5cGUiOmZ1bmN0aW9uKEEpe3JldHVybiJPVFRPIj09PVooQS5wZWVrQnl0ZXMoNCkpfShBKT9hPWk/IkNJREZvbnRUeXBlMiI6Ik9wZW5UeXBlIjpmdW5jdGlvbihBKXtjb25zdCBlPUEucGVla0J5dGVzKDIpO3JldHVybiAzNz09PWVbMF0mJjMzPT09ZVsxXXx8MTI4PT09ZVswXSYmMT09PWVbMV19KEEpP2E9aT8iQ0lERm9udFR5cGUwIjoiTU1UeXBlMSI9PT1lPyJNTVR5cGUxIjoiVHlwZTEiOmZ1bmN0aW9uKEEpe2NvbnN0IGU9QS5wZWVrQnl0ZXMoNCk7cmV0dXJuIGVbMF0+PTEmJmVbM10+PTEmJmVbM108PTR9KEEpP2k/KGE9IkNJREZvbnRUeXBlMCIscz0iQ0lERm9udFR5cGUwQyIpOihhPSJNTVR5cGUxIj09PWU/Ik1NVHlwZTEiOiJUeXBlMSIscz0iVHlwZTFDIik6KFUoImdldEZvbnRGaWxlVHlwZTogVW5hYmxlIHRvIGRldGVjdCBjb3JyZWN0IGZvbnQgZmlsZSBUeXBlL1N1YnR5cGUuIiksYT1lLHM9dCksW2Esc119KGUsdCksYT09PXRoaXMudHlwZSYmcz09PXRoaXMuc3VidHlwZXx8eChgSW5jb25zaXN0ZW50IGZvbnQgZmlsZSBUeXBlL1N1YlR5cGUsIGV4cGVjdGVkOiAke3RoaXMudHlwZX0vJHt0aGlzLnN1YnR5cGV9IGJ1dCBmb3VuZDogJHthfS8ke3N9LmApO3RyeXtzd2l0Y2goYSl7Y2FzZSJNTVR5cGUxIjp4KCJNTVR5cGUxIGZvbnQgKCIrQSsiKSwgZmFsbGluZyBiYWNrIHRvIFR5cGUxLiIpO2Nhc2UiVHlwZTEiOmNhc2UiQ0lERm9udFR5cGUwIjp0aGlzLm1pbWV0eXBlPSJmb250L29wZW50eXBlIjtjb25zdCBpPSJUeXBlMUMiPT09c3x8IkNJREZvbnRUeXBlMEMiPT09cz9uZXcgeGEoZSx0KTpuZXcgYnMoQSxlLHQpO0dzKHQpLHI9dGhpcy5jb252ZXJ0KEEsaSx0KTticmVhaztjYXNlIk9wZW5UeXBlIjpjYXNlIlRydWVUeXBlIjpjYXNlIkNJREZvbnRUeXBlMiI6dGhpcy5taW1ldHlwZT0iZm9udC9vcGVudHlwZSIscj10aGlzLmNoZWNrQW5kUmVwYWlyKEEsZSx0KSx0aGlzLmlzT3BlblR5cGUmJihHcyh0KSxhPSJPcGVuVHlwZSIpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IFcoYEZvbnQgJHthfSBpcyBub3Qgc3VwcG9ydGVkYCl9fWNhdGNoKEEpe3JldHVybiBVKEEpLHZvaWQgdGhpcy5mYWxsYmFja1RvU3lzdGVtRm9udCh0KX1Ocyh0KSx0aGlzLmRhdGE9cix0aGlzLnR5cGU9YSx0aGlzLnN1YnR5cGU9cyx0aGlzLmZvbnRNYXRyaXg9dC5mb250TWF0cml4LHRoaXMud2lkdGhzPXQud2lkdGhzLHRoaXMuZGVmYXVsdFdpZHRoPXQuZGVmYXVsdFdpZHRoLHRoaXMudG9Vbmljb2RlPXQudG9Vbmljb2RlLHRoaXMuc2VhY01hcD10LnNlYWNNYXB9Z2V0IHJlbmRlcmVyKCl7cmV0dXJuIEgodGhpcywicmVuZGVyZXIiLFZhLmNyZWF0ZSh0aGlzLGxhKSl9ZXhwb3J0RGF0YShBPSExKXtjb25zdCBlPUE/Wy4uLlNzLC4uLlJzXTpTcyx0PU9iamVjdC5jcmVhdGUobnVsbCk7bGV0IGksYTtmb3IoaSBvZiBlKWE9dGhpc1tpXSx2b2lkIDAhPT1hJiYodFtpXT1hKTtyZXR1cm4gdH1mYWxsYmFja1RvU3lzdGVtRm9udChBKXt0aGlzLm1pc3NpbmdGaWxlPSEwO2NvbnN0e25hbWU6ZSx0eXBlOnR9PXRoaXM7bGV0IGk9ZGEoZSk7Y29uc3QgYT1wYSgpLHM9eWEoKSxuPSEhYVtpXSxyPSEoIXNbaV18fCFhW3NbaV1dKTtpPWFbaV18fHNbaV18fGk7Y29uc3QgZz16YSgpW2ldO2cmJihpc05hTih0aGlzLmFzY2VudCkmJih0aGlzLmFzY2VudD1nLmFzY2VudC9GcyksaXNOYU4odGhpcy5kZXNjZW50KSYmKHRoaXMuZGVzY2VudD1nLmRlc2NlbnQvRnMpLGlzTmFOKHRoaXMuY2FwSGVpZ2h0KSYmKHRoaXMuY2FwSGVpZ2h0PWcuY2FwSGVpZ2h0L0ZzKSksdGhpcy5ib2xkPS9ib2xkL2dpLnRlc3QoaSksdGhpcy5pdGFsaWM9L29ibGlxdWV8aXRhbGljL2dpLnRlc3QoaSksdGhpcy5ibGFjaz0vQmxhY2svZy50ZXN0KGUpO2NvbnN0IG89L05hcnJvdy9nLnRlc3QoZSk7aWYodGhpcy5yZW1lYXN1cmU9KCFufHxvKSYmT2JqZWN0LmtleXModGhpcy53aWR0aHMpLmxlbmd0aD4wLChufHxyKSYmIkNJREZvbnRUeXBlMiI9PT10JiZ0aGlzLmNpZEVuY29kaW5nLnN0YXJ0c1dpdGgoIklkZW50aXR5LSIpKXtjb25zdCB0PUEuY2lkVG9HaWRNYXAsaT1bXTtpZih2cyhpLGJhKCkpLC9BcmlhbC0/QmxhY2svaS50ZXN0KGUpP3ZzKGksa2EoKSk6L0NhbGlicmkvaS50ZXN0KGUpJiZ2cyhpLEZhKCkpLHQpe2Zvcihjb25zdCBBIGluIGkpe2NvbnN0IGU9aVtBXTt2b2lkIDAhPT10W2VdJiYoaVsrQV09dFtlXSl9dC5sZW5ndGghPT10aGlzLnRvVW5pY29kZS5sZW5ndGgmJkEuaGFzSW5jbHVkZWRUb1VuaWNvZGVNYXAmJnRoaXMudG9Vbmljb2RlIGluc3RhbmNlb2YgTmEmJnRoaXMudG9Vbmljb2RlLmZvckVhY2goKGZ1bmN0aW9uKEEsZSl7Y29uc3QgYT1pW0FdO3ZvaWQgMD09PXRbYV0mJihpWytBXT1lKX0pKX10aGlzLnRvVW5pY29kZSBpbnN0YW5jZW9mIE5hfHx0aGlzLnRvVW5pY29kZS5mb3JFYWNoKChmdW5jdGlvbihBLGUpe2lbK0FdPWV9KSksdGhpcy50b0ZvbnRDaGFyPWksdGhpcy50b1VuaWNvZGU9bmV3IEdhKGkpfWVsc2UgaWYoL1N5bWJvbC9pLnRlc3QoaSkpdGhpcy50b0ZvbnRDaGFyPUtzKFlpLHJhKCksdGhpcy5kaWZmZXJlbmNlcyk7ZWxzZSBpZigvRGluZ2JhdHMvaS50ZXN0KGkpKXRoaXMudG9Gb250Q2hhcj1Lcyh2aSxnYSgpLHRoaXMuZGlmZmVyZW5jZXMpO2Vsc2UgaWYobnx8cil7Y29uc3QgQT1Lcyh0aGlzLmRlZmF1bHRFbmNvZGluZyxyYSgpLHRoaXMuZGlmZmVyZW5jZXMpOyJDSURGb250VHlwZTIiIT09dHx8dGhpcy5jaWRFbmNvZGluZy5zdGFydHNXaXRoKCJJZGVudGl0eS0iKXx8dGhpcy50b1VuaWNvZGUgaW5zdGFuY2VvZiBOYXx8dGhpcy50b1VuaWNvZGUuZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXtBWytlXT10fSkpLHRoaXMudG9Gb250Q2hhcj1BfWVsc2V7Y29uc3QgQT1yYSgpLHQ9W107dGhpcy50b1VuaWNvZGUuZm9yRWFjaCgoKGUsaSk9PntpZighdGhpcy5jb21wb3NpdGUpe2NvbnN0IHQ9SWEodGhpcy5kaWZmZXJlbmNlc1tlXXx8dGhpcy5kZWZhdWx0RW5jb2RpbmdbZV0sQSk7LTEhPT10JiYoaT10KX10WytlXT1pfSkpLHRoaXMuY29tcG9zaXRlJiZ0aGlzLnRvVW5pY29kZSBpbnN0YW5jZW9mIE5hJiYvVGFob21hfFZlcmRhbmEvaS50ZXN0KGUpJiZ2cyh0LGJhKCkpLHRoaXMudG9Gb250Q2hhcj10fU5zKEEpLHRoaXMubG9hZGVkTmFtZT1pLnNwbGl0KCItIiwxKVswXX1jaGVja0FuZFJlcGFpcihBLGUsdCl7Y29uc3QgaT1bIk9TLzIiLCJjbWFwIiwiaGVhZCIsImhoZWEiLCJobXR4IiwibWF4cCIsIm5hbWUiLCJwb3N0IiwibG9jYSIsImdseWYiLCJmcGdtIiwicHJlcCIsImN2dCAiLCJDRkYgIl07ZnVuY3Rpb24gYShBLGUpe2NvbnN0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKTt0WyJPUy8yIl09bnVsbCx0LmNtYXA9bnVsbCx0LmhlYWQ9bnVsbCx0LmhoZWE9bnVsbCx0LmhtdHg9bnVsbCx0Lm1heHA9bnVsbCx0Lm5hbWU9bnVsbCx0LnBvc3Q9bnVsbDtmb3IobGV0IGE9MDthPGU7YSsrKXtjb25zdCBlPXMoQSk7aS5pbmNsdWRlcyhlLnRhZykmJjAhPT1lLmxlbmd0aCYmKHRbZS50YWddPWUpfXJldHVybiB0fWZ1bmN0aW9uIHMoQSl7Y29uc3QgZT1BLmdldFN0cmluZyg0KSx0PUEuZ2V0SW50MzIoKT4+PjAsaT1BLmdldEludDMyKCk+Pj4wLGE9QS5nZXRJbnQzMigpPj4+MCxzPUEucG9zO0EucG9zPUEuc3RhcnR8fDAsQS5za2lwKGkpO2NvbnN0IG49QS5nZXRCeXRlcyhhKTtyZXR1cm4gQS5wb3M9cywiaGVhZCI9PT1lJiYobls4XT1uWzldPW5bMTBdPW5bMTFdPTAsblsxN118PTMyKSx7dGFnOmUsY2hlY2tzdW06dCxsZW5ndGg6YSxvZmZzZXQ6aSxkYXRhOm59fWZ1bmN0aW9uIG4oQSl7cmV0dXJue3ZlcnNpb246QS5nZXRTdHJpbmcoNCksbnVtVGFibGVzOkEuZ2V0VWludDE2KCksc2VhcmNoUmFuZ2U6QS5nZXRVaW50MTYoKSxlbnRyeVNlbGVjdG9yOkEuZ2V0VWludDE2KCkscmFuZ2VTaGlmdDpBLmdldFVpbnQxNigpfX1mdW5jdGlvbiByKEEsZSx0LGksYSxzKXtjb25zdCBuPXtsZW5ndGg6MCxzaXplT2ZJbnN0cnVjdGlvbnM6MH07aWYoZTwwfHxlPj1BLmxlbmd0aHx8dD5BLmxlbmd0aHx8dC1lPD0xMilyZXR1cm4gbjtjb25zdCByPUEuc3ViYXJyYXkoZSx0KSxnPUxzKHJbMl0sclszXSksbz1McyhyWzRdLHJbNV0pLEk9THMocls2XSxyWzddKSxjPUxzKHJbOF0scls5XSk7Zz5JJiYoTXMociwyLEkpLE1zKHIsNixnKSksbz5jJiYoTXMociw0LGMpLE1zKHIsOCxvKSk7Y29uc3QgaD1McyhyWzBdLHJbMV0pO2lmKGg8MClyZXR1cm4gaDwtMXx8KGkuc2V0KHIsYSksbi5sZW5ndGg9ci5sZW5ndGgpLG47bGV0IEMsQj0xMCxsPTA7Zm9yKEM9MDtDPGg7QysrKWw9MSsocltCXTw8OHxyW0IrMV0pLEIrPTI7Y29uc3QgUT1CLEU9cltCXTw8OHxyW0IrMV07bi5zaXplT2ZJbnN0cnVjdGlvbnM9RSxCKz0yK0U7Y29uc3QgdT1CO2xldCBkPTA7Zm9yKEM9MDtDPGw7QysrKXtjb25zdCBBPXJbQisrXTsxOTImQSYmKHJbQi0xXT02MyZBKTtsZXQgZT0yOzImQT9lPTE6MTYmQSYmKGU9MCk7bGV0IHQ9Mjs0JkE/dD0xOjMyJkEmJih0PTApO2NvbnN0IGk9ZSt0O2lmKGQrPWksOCZBKXtjb25zdCBBPXJbQisrXTswPT09QSYmKHJbQi0xXV49OCksQys9QSxkKz1BKml9fWlmKDA9PT1kKXJldHVybiBuO2xldCBmPUIrZDtyZXR1cm4gZj5yLmxlbmd0aD9uOiFzJiZFPjA/KGkuc2V0KHIuc3ViYXJyYXkoMCxRKSxhKSxpLnNldChbMCwwXSxhK1EpLGkuc2V0KHIuc3ViYXJyYXkodSxmKSxhK1ErMiksZi09RSxyLmxlbmd0aC1mPjMmJihmPWYrMyYtNCksbi5sZW5ndGg9ZixuKTpyLmxlbmd0aC1mPjM/KGY9ZiszJi00LGkuc2V0KHIuc3ViYXJyYXkoMCxmKSxhKSxuLmxlbmd0aD1mLG4pOihpLnNldChyLGEpLG4ubGVuZ3RoPXIubGVuZ3RoLG4pfWZ1bmN0aW9uIGcoQSl7Y29uc3QgdD0oZS5zdGFydHx8MCkrQS5vZmZzZXQ7ZS5wb3M9dDtjb25zdCBpPVtbXSxbXV0sYT1bXSxzPUEubGVuZ3RoLG49dCtzO2lmKDAhPT1lLmdldFVpbnQxNigpfHxzPDYpcmV0dXJuW2ksYV07Y29uc3Qgcj1lLmdldFVpbnQxNigpLGc9ZS5nZXRVaW50MTYoKTtsZXQgbyxJO2ZvcihvPTA7bzxyJiZlLnBvcysxMjw9bjtvKyspe2NvbnN0IEE9e3BsYXRmb3JtOmUuZ2V0VWludDE2KCksZW5jb2Rpbmc6ZS5nZXRVaW50MTYoKSxsYW5ndWFnZTplLmdldFVpbnQxNigpLG5hbWU6ZS5nZXRVaW50MTYoKSxsZW5ndGg6ZS5nZXRVaW50MTYoKSxvZmZzZXQ6ZS5nZXRVaW50MTYoKX07KHFzKEEpfHxUcyhBKSkmJmEucHVzaChBKX1mb3Iobz0wLEk9YS5sZW5ndGg7bzxJO28rKyl7Y29uc3QgQT1hW29dO2lmKEEubGVuZ3RoPD0wKWNvbnRpbnVlO2NvbnN0IHM9dCtnK0Eub2Zmc2V0O2lmKHMrQS5sZW5ndGg+biljb250aW51ZTtlLnBvcz1zO2NvbnN0IHI9QS5uYW1lO2lmKEEuZW5jb2Rpbmcpe2xldCB0PSIiO2ZvcihsZXQgaT0wLGE9QS5sZW5ndGg7aTxhO2krPTIpdCs9U3RyaW5nLmZyb21DaGFyQ29kZShlLmdldFVpbnQxNigpKTtpWzFdW3JdPXR9ZWxzZSBpWzBdW3JdPWUuZ2V0U3RyaW5nKEEubGVuZ3RoKX1yZXR1cm5baSxhXX1jb25zdCBvPVswLDAsMCwwLDAsMCwwLDAsLTIsLTIsLTIsLTIsMCwwLC0yLC01LC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLDAsMCwtMSwwLC0xLC0xLC0xLC0xLDEsLTEsLTk5OSwwLDEsMCwtMSwtMiwwLC0xLC0yLC0xLC0xLDAsLTEsLTEsMCwwLC05OTksLTk5OSwtMSwtMSwtMSwtMSwtMiwtOTk5LC0yLC0yLC05OTksMCwtMiwtMiwwLDAsLTIsMCwtMiwwLDAsMCwtMiwtMSwtMSwxLDEsMCwwLC0xLC0xLC0xLC0xLC0xLC0xLC0xLDAsMCwtMSwwLC0xLC0xLDAsLTk5OSwtMSwtMSwtMSwtMSwtMSwtMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwtMiwtOTk5LC05OTksLTk5OSwtOTk5LC05OTksLTEsLTEsLTIsLTIsMCwwLDAsMCwtMSwtMSwtOTk5LC0yLC0yLDAsMCwtMSwtMiwtMiwwLDAsMCwtMSwtMSwtMSwtMl07ZnVuY3Rpb24gSShBLGUpe2xldCB0LGksYSxzLG4scj1BLmRhdGEsZz0wLEk9MCxjPTA7Y29uc3QgaD1bXSxDPVtdLEI9W107bGV0IGw9ZS50b29Db21wbGV4VG9Gb2xsb3dGdW5jdGlvbnMsUT0hMSxFPTAsdT0wO2ZvcihsZXQgQT1yLmxlbmd0aDtnPEE7KXtjb25zdCBBPXJbZysrXTtpZig2ND09PUEpaWYoaT1yW2crK10sUXx8dSlnKz1pO2Vsc2UgZm9yKHQ9MDt0PGk7dCsrKWgucHVzaChyW2crK10pO2Vsc2UgaWYoNjU9PT1BKWlmKGk9cltnKytdLFF8fHUpZys9MippO2Vsc2UgZm9yKHQ9MDt0PGk7dCsrKWE9cltnKytdLGgucHVzaChhPDw4fHJbZysrXSk7ZWxzZSBpZigxNzY9PSgyNDgmQSkpaWYoaT1BLTE3NisxLFF8fHUpZys9aTtlbHNlIGZvcih0PTA7dDxpO3QrKyloLnB1c2gocltnKytdKTtlbHNlIGlmKDE4ND09KDI0OCZBKSlpZihpPUEtMTg0KzEsUXx8dSlnKz0yKmk7ZWxzZSBmb3IodD0wO3Q8aTt0KyspYT1yW2crK10saC5wdXNoKExzKGEscltnKytdKSk7ZWxzZSBpZig0MyE9PUF8fGwpaWYoNDQhPT1BfHxsKXtpZig0NT09PUEpaWYoUSlRPSExLEk9ZztlbHNle2lmKG49Qy5wb3AoKSwhbilyZXR1cm4gVSgiVFQ6IEVOREYgYmFkIHN0YWNrIiksdm9pZChlLmhpbnRzVmFsaWQ9ITEpO3M9Qi5wb3AoKSxyPW4uZGF0YSxnPW4uaSxlLmZ1bmN0aW9uc1N0YWNrRGVsdGFzW3NdPWgubGVuZ3RoLW4uc3RhY2tUb3B9ZWxzZSBpZigxMzc9PT1BKShRfHx1KSYmKFUoIlRUOiBuZXN0ZWQgSURFRnMgbm90IGFsbG93ZWQiKSxsPSEwKSxRPSEwLGM9ZztlbHNlIGlmKDg4PT09QSkrK0U7ZWxzZSBpZigyNz09PUEpdT1FO2Vsc2UgaWYoODk9PT1BKXU9PT1FJiYodT0wKSwtLUU7ZWxzZSBpZigyOD09PUEmJiFRJiYhdSl7Y29uc3QgQT1oLmF0KC0xKTtBPjAmJihnKz1BLTEpfX1lbHNlKFF8fHUpJiYoVSgiVFQ6IG5lc3RlZCBGREVGcyBub3QgYWxsb3dlZCIpLGw9ITApLFE9ITAsYz1nLHM9aC5wb3AoKSxlLmZ1bmN0aW9uc0RlZmluZWRbc109e2RhdGE6cixpOmd9O2Vsc2UgaWYoIVEmJiF1KWlmKHM9aC5hdCgtMSksaXNOYU4ocykpeCgiVFQ6IENBTEwgZW1wdHkgc3RhY2sgKG9yIGludmFsaWQgZW50cnkpLiIpO2Vsc2UgaWYoZS5mdW5jdGlvbnNVc2VkW3NdPSEwLHMgaW4gZS5mdW5jdGlvbnNTdGFja0RlbHRhcyl7Y29uc3QgQT1oLmxlbmd0aCtlLmZ1bmN0aW9uc1N0YWNrRGVsdGFzW3NdO2lmKEE8MClyZXR1cm4gVSgiVFQ6IENBTEwgaW52YWxpZCBmdW5jdGlvbnMgc3RhY2sgZGVsdGEuIiksdm9pZChlLmhpbnRzVmFsaWQ9ITEpO2gubGVuZ3RoPUF9ZWxzZSBpZihzIGluIGUuZnVuY3Rpb25zRGVmaW5lZCYmIUIuaW5jbHVkZXMocykpe2lmKEMucHVzaCh7ZGF0YTpyLGk6ZyxzdGFja1RvcDpoLmxlbmd0aC0xfSksQi5wdXNoKHMpLG49ZS5mdW5jdGlvbnNEZWZpbmVkW3NdLCFuKXJldHVybiBVKCJUVDogQ0FMTCBub24tZXhpc3RlbnQgZnVuY3Rpb24iKSx2b2lkKGUuaGludHNWYWxpZD0hMSk7cj1uLmRhdGEsZz1uLml9aWYoIVEmJiF1KXtsZXQgZT0wO2ZvcihBPD0xNDI/ZT1vW0FdOkE+PTE5MiYmQTw9MjIzP2U9LTE6QT49MjI0JiYoZT0tMiksQT49MTEzJiZBPD0xMTcmJihpPWgucG9wKCksaXNOYU4oaSl8fChlPTIqLWkpKTtlPDAmJmgubGVuZ3RoPjA7KWgucG9wKCksZSsrO2Zvcig7ZT4wOyloLnB1c2goTmFOKSxlLS19fWUudG9vQ29tcGxleFRvRm9sbG93RnVuY3Rpb25zPWw7Y29uc3QgZD1bcl07Zz5yLmxlbmd0aCYmZC5wdXNoKG5ldyBVaW50OEFycmF5KGctci5sZW5ndGgpKSxjPkkmJihVKCJUVDogY29tcGxlbWVudGluZyBhIG1pc3NpbmcgZnVuY3Rpb24gdGFpbCIpLGQucHVzaChuZXcgVWludDhBcnJheShbMzQsNDVdKSkpLGZ1bmN0aW9uKEEsZSl7aWYoZS5sZW5ndGg+MSl7bGV0IHQsaSxhPTA7Zm9yKHQ9MCxpPWUubGVuZ3RoO3Q8aTt0KyspYSs9ZVt0XS5sZW5ndGg7YT1hKzMmLTQ7Y29uc3Qgcz1uZXcgVWludDhBcnJheShhKTtsZXQgbj0wO2Zvcih0PTAsaT1lLmxlbmd0aDt0PGk7dCsrKXMuc2V0KGVbdF0sbiksbis9ZVt0XS5sZW5ndGg7QS5kYXRhPXMsQS5sZW5ndGg9YX19KEEsZCl9bGV0IGMsaCxDLEI7aWYoWXMoZT1uZXcgZ2UobmV3IFVpbnQ4QXJyYXkoZS5nZXRCeXRlcygpKSkpKXtjb25zdCBBPWZ1bmN0aW9uKEEsZSl7Y29uc3R7bnVtRm9udHM6dCxvZmZzZXRUYWJsZTppfT1mdW5jdGlvbihBKXtjb25zdCBlPUEuZ2V0U3RyaW5nKDQpO0woInR0Y2YiPT09ZSwiTXVzdCBiZSBhIFRydWVUeXBlIENvbGxlY3Rpb24gZm9udC4iKTtjb25zdCB0PUEuZ2V0VWludDE2KCksaT1BLmdldFVpbnQxNigpLGE9QS5nZXRJbnQzMigpPj4+MCxzPVtdO2ZvcihsZXQgZT0wO2U8YTtlKyspcy5wdXNoKEEuZ2V0SW50MzIoKT4+PjApO2NvbnN0IG49e3R0Y1RhZzplLG1ham9yVmVyc2lvbjp0LG1pbm9yVmVyc2lvbjppLG51bUZvbnRzOmEsb2Zmc2V0VGFibGU6c307c3dpdGNoKHQpe2Nhc2UgMTpyZXR1cm4gbjtjYXNlIDI6cmV0dXJuIG4uZHNpZ1RhZz1BLmdldEludDMyKCk+Pj4wLG4uZHNpZ0xlbmd0aD1BLmdldEludDMyKCk+Pj4wLG4uZHNpZ09mZnNldD1BLmdldEludDMyKCk+Pj4wLG59dGhyb3cgbmV3IFcoYEludmFsaWQgVHJ1ZVR5cGUgQ29sbGVjdGlvbiBtYWpvclZlcnNpb246ICR7dH0uYCl9KEEpLHM9ZS5zcGxpdCgiKyIpO2xldCByO2ZvcihsZXQgbz0wO288dDtvKyspe0EucG9zPShBLnN0YXJ0fHwwKStpW29dO2NvbnN0IHQ9bihBKSxJPWEoQSx0Lm51bVRhYmxlcyk7aWYoIUkubmFtZSl0aHJvdyBuZXcgVygnVHJ1ZVR5cGUgQ29sbGVjdGlvbiBmb250IG11c3QgY29udGFpbiBhICJuYW1lIiB0YWJsZS4nKTtjb25zdFtjXT1nKEkubmFtZSk7Zm9yKGxldCBBPTAsaT1jLmxlbmd0aDtBPGk7QSsrKWZvcihsZXQgaT0wLGE9Y1tBXS5sZW5ndGg7aTxhO2krKyl7Y29uc3QgYT1jW0FdW2ldPy5yZXBsYWNlQWxsKC9ccy9nLCIiKTtpZihhKXtpZihhPT09ZSlyZXR1cm57aGVhZGVyOnQsdGFibGVzOkl9O2lmKCEocy5sZW5ndGg8MikpZm9yKGNvbnN0IEEgb2YgcylhPT09QSYmKHI9e25hbWU6QSxoZWFkZXI6dCx0YWJsZXM6SX0pfX19aWYocilyZXR1cm4gVShgVHJ1ZVR5cGUgQ29sbGVjdGlvbiBkb2VzIG5vdCBjb250YWluICIke2V9IiBmb250LCBmYWxsaW5nIGJhY2sgdG8gIiR7ci5uYW1lfSIgZm9udCBpbnN0ZWFkLmApLHtoZWFkZXI6ci5oZWFkZXIsdGFibGVzOnIudGFibGVzfTt0aHJvdyBuZXcgVyhgVHJ1ZVR5cGUgQ29sbGVjdGlvbiBkb2VzIG5vdCBjb250YWluICIke2V9IiBmb250LmApfShlLHRoaXMubmFtZSk7Yz1BLmhlYWRlcixoPUEudGFibGVzfWVsc2UgYz1uKGUpLGg9YShlLGMubnVtVGFibGVzKTtjb25zdCBsPSFoWyJDRkYgIl07aWYobCl7aWYoIWgubG9jYSl0aHJvdyBuZXcgVygnUmVxdWlyZWQgImxvY2EiIHRhYmxlIGlzIG5vdCBmb3VuZCcpO2guZ2x5Znx8KFUoJ1JlcXVpcmVkICJnbHlmIiB0YWJsZSBpcyBub3QgZm91bmQgLS0gdHJ5aW5nIHRvIHJlY292ZXIuJyksaC5nbHlmPXt0YWc6ImdseWYiLGRhdGE6bmV3IFVpbnQ4QXJyYXkoMCl9KSx0aGlzLmlzT3BlblR5cGU9ITF9ZWxzZXtjb25zdCBlPXQuY29tcG9zaXRlJiYodC5jaWRUb0dpZE1hcD8ubGVuZ3RoPjB8fCEodC5jTWFwIGluc3RhbmNlb2YgUWkpKTtpZigiT1RUTyI9PT1jLnZlcnNpb24mJiFlfHwhaC5oZWFkfHwhaC5oaGVhfHwhaC5tYXhwfHwhaC5wb3N0KXJldHVybiBCPW5ldyBnZShoWyJDRkYgIl0uZGF0YSksQz1uZXcgeGEoQix0KSxHcyh0KSx0aGlzLmNvbnZlcnQoQSxDLHQpO2RlbGV0ZSBoLmdseWYsZGVsZXRlIGgubG9jYSxkZWxldGUgaC5mcGdtLGRlbGV0ZSBoLnByZXAsZGVsZXRlIGhbImN2dCAiXSx0aGlzLmlzT3BlblR5cGU9ITB9aWYoIWgubWF4cCl0aHJvdyBuZXcgVygnUmVxdWlyZWQgIm1heHAiIHRhYmxlIGlzIG5vdCBmb3VuZCcpO2UucG9zPShlLnN0YXJ0fHwwKStoLm1heHAub2Zmc2V0O2xldCBRPWUuZ2V0SW50MzIoKTtjb25zdCBFPWUuZ2V0VWludDE2KCk7aWYoNjU1MzYhPT1RJiYyMDQ4MCE9PVEpe2lmKDY9PT1oLm1heHAubGVuZ3RoKVE9MjA0ODA7ZWxzZXtpZighKGgubWF4cC5sZW5ndGg+PTMyKSl0aHJvdyBuZXcgVygnIm1heHAiIHRhYmxlIGhhcyBhIHdyb25nIHZlcnNpb24gbnVtYmVyJyk7UT02NTUzNn1kPVEsKHU9aC5tYXhwLmRhdGEpWzMrMF09MjU1JmQsdVsyXT1kPj4+OCx1WzFdPWQ+Pj4xNix1WzBdPWQ+Pj4yNH12YXIgdSxkO2lmKHQuc2NhbGVGYWN0b3JzPy5sZW5ndGg9PT1FJiZsKXtjb25zdHtzY2FsZUZhY3RvcnM6QX09dCxlPVVzKGguaGVhZC5kYXRhWzUwXSxoLmhlYWQuZGF0YVs1MV0pLGk9bmV3ICRhKHtnbHlmVGFibGU6aC5nbHlmLmRhdGEsaXNHbHlwaExvY2F0aW9uc0xvbmc6ZSxsb2NhVGFibGU6aC5sb2NhLmRhdGEsbnVtR2x5cGhzOkV9KTtpLnNjYWxlKEEpO2NvbnN0e2dseWY6YSxsb2NhOnMsaXNMb2NhdGlvbkxvbmc6bn09aS53cml0ZSgpO2guZ2x5Zi5kYXRhPWEsaC5sb2NhLmRhdGE9cyxuIT09ISFlJiYoaC5oZWFkLmRhdGFbNTBdPTAsaC5oZWFkLmRhdGFbNTFdPW4/MTowKTtjb25zdCByPWguaG10eC5kYXRhO2ZvcihsZXQgZT0wO2U8RTtlKyspe2NvbnN0IHQ9NCplLGk9TWF0aC5yb3VuZChBW2VdKlVzKHJbdF0sclt0KzFdKSk7clt0XT1pPj44JjI1NSxyW3QrMV09MjU1JmksTXMocix0KzIsTWF0aC5yb3VuZChBW2VdKkxzKHJbdCsyXSxyW3QrM10pKSl9fWxldCBmPUUrMSxwPSEwO2Y+NjU1MzUmJihwPSExLGY9RSxVKCJOb3QgZW5vdWdoIHNwYWNlIGluIGdseWZzIHRvIGR1cGxpY2F0ZSBmaXJzdCBnbHlwaC4iKSk7bGV0IG09MCx5PTA7UT49NjU1MzYmJmgubWF4cC5sZW5ndGg+PTMyJiYoZS5wb3MrPTgsZS5nZXRVaW50MTYoKT4yJiYoaC5tYXhwLmRhdGFbMTRdPTAsaC5tYXhwLmRhdGFbMTVdPTIpLGUucG9zKz00LG09ZS5nZXRVaW50MTYoKSxlLnBvcys9NCx5PWUuZ2V0VWludDE2KCkpLGgubWF4cC5kYXRhWzRdPWY+PjgsaC5tYXhwLmRhdGFbNV09MjU1JmY7Y29uc3Qgdz1mdW5jdGlvbihBLGUsdCxpKXtjb25zdCBhPXtmdW5jdGlvbnNEZWZpbmVkOltdLGZ1bmN0aW9uc1VzZWQ6W10sZnVuY3Rpb25zU3RhY2tEZWx0YXM6W10sdG9vQ29tcGxleFRvRm9sbG93RnVuY3Rpb25zOiExLGhpbnRzVmFsaWQ6ITB9O2lmKEEmJkkoQSxhKSxlJiZJKGUsYSksQSYmZnVuY3Rpb24oQSxlKXtpZighQS50b29Db21wbGV4VG9Gb2xsb3dGdW5jdGlvbnMpe2lmKEEuZnVuY3Rpb25zRGVmaW5lZC5sZW5ndGg+ZSlyZXR1cm4gVSgiVFQ6IG1vcmUgZnVuY3Rpb25zIGRlZmluZWQgdGhhbiBleHBlY3RlZCIpLHZvaWQoQS5oaW50c1ZhbGlkPSExKTtmb3IobGV0IHQ9MCxpPUEuZnVuY3Rpb25zVXNlZC5sZW5ndGg7dDxpO3QrKyl7aWYodD5lKXJldHVybiBVKCJUVDogaW52YWxpZCBmdW5jdGlvbiBpZDogIit0KSx2b2lkKEEuaGludHNWYWxpZD0hMSk7aWYoQS5mdW5jdGlvbnNVc2VkW3RdJiYhQS5mdW5jdGlvbnNEZWZpbmVkW3RdKXJldHVybiBVKCJUVDogdW5kZWZpbmVkIGZ1bmN0aW9uOiAiK3QpLHZvaWQoQS5oaW50c1ZhbGlkPSExKX19fShhLGkpLHQmJjEmdC5sZW5ndGgpe2NvbnN0IEE9bmV3IFVpbnQ4QXJyYXkodC5sZW5ndGgrMSk7QS5zZXQodC5kYXRhKSx0LmRhdGE9QX1yZXR1cm4gYS5oaW50c1ZhbGlkfShoLmZwZ20saC5wcmVwLGhbImN2dCAiXSxtKTtpZih3fHwoZGVsZXRlIGguZnBnbSxkZWxldGUgaC5wcmVwLGRlbGV0ZSBoWyJjdnQgIl0pLGZ1bmN0aW9uKEEsZSx0LGksYSxzKXtpZighZSlyZXR1cm4gdm9pZCh0JiYodC5kYXRhPW51bGwpKTtBLnBvcz0oQS5zdGFydHx8MCkrZS5vZmZzZXQsQS5wb3MrPTQsQS5wb3MrPTIsQS5wb3MrPTIsQS5wb3MrPTIsQS5wb3MrPTIsQS5wb3MrPTIsQS5wb3MrPTIsQS5wb3MrPTIsQS5wb3MrPTIsQS5wb3MrPTI7Y29uc3Qgbj1BLmdldFVpbnQxNigpO0EucG9zKz04LEEucG9zKz0yO2xldCByPUEuZ2V0VWludDE2KCk7MCE9PW4mJigyJlVzKGkuZGF0YVs0NF0saS5kYXRhWzQ1XSl8fChlLmRhdGFbMjJdPTAsZS5kYXRhWzIzXT0wKSkscj5hJiYoeChgVGhlIG51bU9mTWV0cmljcyAoJHtyfSkgc2hvdWxkIG5vdCBiZSBncmVhdGVyIHRoYW4gdGhlIG51bUdseXBocyAoJHthfSkuYCkscj1hLGUuZGF0YVszNF09KDY1MjgwJnIpPj44LGUuZGF0YVszNV09MjU1JnIpO2NvbnN0IGc9YS1yLSh0Lmxlbmd0aC00KnI+PjEpO2lmKGc+MCl7Y29uc3QgQT1uZXcgVWludDhBcnJheSh0Lmxlbmd0aCsyKmcpO0Euc2V0KHQuZGF0YSkscyYmKEFbdC5sZW5ndGhdPXQuZGF0YVsyXSxBW3QubGVuZ3RoKzFdPXQuZGF0YVszXSksdC5kYXRhPUF9fShlLGguaGhlYSxoLmhtdHgsaC5oZWFkLGYscCksIWguaGVhZCl0aHJvdyBuZXcgVygnUmVxdWlyZWQgImhlYWQiIHRhYmxlIGlzIG5vdCBmb3VuZCcpOyFmdW5jdGlvbihBLGUsdCl7Y29uc3QgaT1BLmRhdGEsYT0oaVswXTw8MjQpKyhpWzFdPDwxNikrKGlbMl08PDgpK2lbM107YT4+MTYhPTEmJih4KCJBdHRlbXB0aW5nIHRvIGZpeCBpbnZhbGlkIHZlcnNpb24gaW4gaGVhZCB0YWJsZTogIithKSxpWzBdPTAsaVsxXT0xLGlbMl09MCxpWzNdPTApO2NvbnN0IHM9VXMoaVs1MF0saVs1MV0pO2lmKHM8MHx8cz4xKXt4KCJBdHRlbXB0aW5nIHRvIGZpeCBpbnZhbGlkIGluZGV4VG9Mb2NGb3JtYXQgaW4gaGVhZCB0YWJsZTogIitzKTtjb25zdCBBPWUrMTtpZih0PT09QTw8MSlpWzUwXT0wLGlbNTFdPTA7ZWxzZXtpZih0IT09QTw8Mil0aHJvdyBuZXcgVygiQ291bGQgbm90IGZpeCBpbmRleFRvTG9jRm9ybWF0OiAiK3MpO2lbNTBdPTAsaVs1MV09MX19fShoLmhlYWQsRSxsP2gubG9jYS5sZW5ndGg6MCk7bGV0IEQ9T2JqZWN0LmNyZWF0ZShudWxsKTtpZihsKXtjb25zdCBBPVVzKGguaGVhZC5kYXRhWzUwXSxoLmhlYWQuZGF0YVs1MV0pLGU9ZnVuY3Rpb24oQSxlLHQsaSxhLHMsbil7bGV0IGcsbyxJO2k/KGc9NCxvPWZ1bmN0aW9uKEEsZSl7cmV0dXJuIEFbZV08PDI0fEFbZSsxXTw8MTZ8QVtlKzJdPDw4fEFbZSszXX0sST1mdW5jdGlvbihBLGUsdCl7QVtlXT10Pj4+MjQmMjU1LEFbZSsxXT10Pj4xNiYyNTUsQVtlKzJdPXQ+PjgmMjU1LEFbZSszXT0yNTUmdH0pOihnPTIsbz1mdW5jdGlvbihBLGUpe3JldHVybiBBW2VdPDw5fEFbZSsxXTw8MX0sST1mdW5jdGlvbihBLGUsdCl7QVtlXT10Pj45JjI1NSxBW2UrMV09dD4+MSYyNTV9KTtjb25zdCBjPXM/dCsxOnQsaD1nKigxK2MpLEM9bmV3IFVpbnQ4QXJyYXkoaCk7Qy5zZXQoQS5kYXRhLnN1YmFycmF5KDAsaCkpLEEuZGF0YT1DO2NvbnN0IEI9ZS5kYXRhLGw9Qi5sZW5ndGgsUT1uZXcgVWludDhBcnJheShsKTtsZXQgRSx1O2NvbnN0IGQ9W107Zm9yKEU9MCx1PTA7RTx0KzE7RSsrLHUrPWcpe2xldCBBPW8oQyx1KTtBPmwmJihBPWwpLGQucHVzaCh7aW5kZXg6RSxvZmZzZXQ6QSxlbmRPZmZzZXQ6MH0pfWZvcihkLnNvcnQoKChBLGUpPT5BLm9mZnNldC1lLm9mZnNldCkpLEU9MDtFPHQ7RSsrKWRbRV0uZW5kT2Zmc2V0PWRbRSsxXS5vZmZzZXQ7Zm9yKGQuc29ydCgoKEEsZSk9PkEuaW5kZXgtZS5pbmRleCkpLEU9MDtFPHQ7RSsrKXtjb25zdHtvZmZzZXQ6QSxlbmRPZmZzZXQ6ZX09ZFtFXTtpZigwIT09QXx8MCE9PWUpYnJlYWs7Y29uc3QgdD1kW0UrMV0ub2Zmc2V0O2lmKDAhPT10KXtkW0VdLmVuZE9mZnNldD10O2JyZWFrfX1jb25zdCBmPWQuYXQoLTIpOzAhPT1mLm9mZnNldCYmMD09PWYuZW5kT2Zmc2V0JiYoZi5lbmRPZmZzZXQ9bCk7Y29uc3QgcD1PYmplY3QuY3JlYXRlKG51bGwpO2xldCBtPTA7Zm9yKEkoQywwLG0pLEU9MCx1PWc7RTx0O0UrKyx1Kz1nKXtjb25zdCBBPXIoQixkW0VdLm9mZnNldCxkW0VdLmVuZE9mZnNldCxRLG0sYSksZT1BLmxlbmd0aDswPT09ZSYmKHBbRV09ITApLEEuc2l6ZU9mSW5zdHJ1Y3Rpb25zPm4mJihuPUEuc2l6ZU9mSW5zdHJ1Y3Rpb25zKSxtKz1lLEkoQyx1LG0pfWlmKDA9PT1tKXtjb25zdCBBPW5ldyBVaW50OEFycmF5KFswLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNDksMF0pO2ZvcihFPTAsdT1nO0U8YztFKyssdSs9ZylJKEMsdSxBLmxlbmd0aCk7ZS5kYXRhPUF9ZWxzZSBpZihzKXtjb25zdCB0PW8oQyxnKTtRLmxlbmd0aD50K20/ZS5kYXRhPVEuc3ViYXJyYXkoMCx0K20pOihlLmRhdGE9bmV3IFVpbnQ4QXJyYXkodCttKSxlLmRhdGEuc2V0KFEuc3ViYXJyYXkoMCxtKSkpLGUuZGF0YS5zZXQoUS5zdWJhcnJheSgwLHQpLG0pLEkoQS5kYXRhLEMubGVuZ3RoLWcsbSt0KX1lbHNlIGUuZGF0YT1RLnN1YmFycmF5KDAsbSk7cmV0dXJue21pc3NpbmdHbHlwaHM6cCxtYXhTaXplT2ZJbnN0cnVjdGlvbnM6bn19KGgubG9jYSxoLmdseWYsRSxBLHcscCx5KTtEPWUubWlzc2luZ0dseXBocyxRPj02NTUzNiYmaC5tYXhwLmxlbmd0aD49MzImJihoLm1heHAuZGF0YVsyNl09ZS5tYXhTaXplT2ZJbnN0cnVjdGlvbnM+PjgsaC5tYXhwLmRhdGFbMjddPTI1NSZlLm1heFNpemVPZkluc3RydWN0aW9ucyl9aWYoIWguaGhlYSl0aHJvdyBuZXcgVygnUmVxdWlyZWQgImhoZWEiIHRhYmxlIGlzIG5vdCBmb3VuZCcpOzA9PT1oLmhoZWEuZGF0YVsxMF0mJjA9PT1oLmhoZWEuZGF0YVsxMV0mJihoLmhoZWEuZGF0YVsxMF09MjU1LGguaGhlYS5kYXRhWzExXT0yNTUpO2NvbnN0IGI9e3VuaXRzUGVyRW06VXMoaC5oZWFkLmRhdGFbMThdLGguaGVhZC5kYXRhWzE5XSkseU1heDpMcyhoLmhlYWQuZGF0YVs0Ml0saC5oZWFkLmRhdGFbNDNdKSx5TWluOkxzKGguaGVhZC5kYXRhWzM4XSxoLmhlYWQuZGF0YVszOV0pLGFzY2VudDpMcyhoLmhoZWEuZGF0YVs0XSxoLmhoZWEuZGF0YVs1XSksZGVzY2VudDpMcyhoLmhoZWEuZGF0YVs2XSxoLmhoZWEuZGF0YVs3XSksbGluZUdhcDpMcyhoLmhoZWEuZGF0YVs4XSxoLmhoZWEuZGF0YVs5XSl9O3RoaXMuYXNjZW50PWIuYXNjZW50L2IudW5pdHNQZXJFbSx0aGlzLmRlc2NlbnQ9Yi5kZXNjZW50L2IudW5pdHNQZXJFbSx0aGlzLmxpbmVHYXA9Yi5saW5lR2FwL2IudW5pdHNQZXJFbSx0aGlzLmNzc0ZvbnRJbmZvPy5saW5lSGVpZ2h0Pyh0aGlzLmxpbmVIZWlnaHQ9dGhpcy5jc3NGb250SW5mby5tZXRyaWNzLmxpbmVIZWlnaHQsdGhpcy5saW5lR2FwPXRoaXMuY3NzRm9udEluZm8ubWV0cmljcy5saW5lR2FwKTp0aGlzLmxpbmVIZWlnaHQ9dGhpcy5hc2NlbnQtdGhpcy5kZXNjZW50K3RoaXMubGluZUdhcCxoLnBvc3QmJmZ1bmN0aW9uKEEsdCxpKXtjb25zdCBhPShlLnN0YXJ0fHwwKStBLm9mZnNldDtlLnBvcz1hO2NvbnN0IHM9YStBLmxlbmd0aCxuPWUuZ2V0SW50MzIoKTtsZXQgcjtlLnNraXAoMjgpO2xldCBnLG89ITA7c3dpdGNoKG4pe2Nhc2UgNjU1MzY6cj1RYTticmVhaztjYXNlIDEzMTA3Mjpjb25zdCBBPWUuZ2V0VWludDE2KCk7aWYoQSE9PWkpe289ITE7YnJlYWt9Y29uc3QgYT1bXTtmb3IoZz0wO2c8QTsrK2cpe2NvbnN0IEE9ZS5nZXRVaW50MTYoKTtpZihBPj0zMjc2OCl7bz0hMTticmVha31hLnB1c2goQSl9aWYoIW8pYnJlYWs7Y29uc3QgST1bXSxjPVtdO2Zvcig7ZS5wb3M8czspe2NvbnN0IEE9ZS5nZXRCeXRlKCk7Zm9yKGMubGVuZ3RoPUEsZz0wO2c8QTsrK2cpY1tnXT1TdHJpbmcuZnJvbUNoYXJDb2RlKGUuZ2V0Qnl0ZSgpKTtJLnB1c2goYy5qb2luKCIiKSl9Zm9yKHI9W10sZz0wO2c8QTsrK2cpe2NvbnN0IEE9YVtnXTtBPDI1OD9yLnB1c2goUWFbQV0pOnIucHVzaChJW0EtMjU4XSl9YnJlYWs7Y2FzZSAxOTY2MDg6YnJlYWs7ZGVmYXVsdDpVKCJVbmtub3duL3Vuc3VwcG9ydGVkIHBvc3QgdGFibGUgdmVyc2lvbiAiK24pLG89ITEsdC5kZWZhdWx0RW5jb2RpbmcmJihyPXQuZGVmYXVsdEVuY29kaW5nKX10LmdseXBoTmFtZXM9cn0oaC5wb3N0LHQsRSksaC5wb3N0PXt0YWc6InBvc3QiLGRhdGE6anModCl9O2NvbnN0IGs9T2JqZWN0LmNyZWF0ZShudWxsKTtmdW5jdGlvbiBGKEEpe3JldHVybiFEW0FdfWlmKHQuY29tcG9zaXRlKXtjb25zdCBBPXQuY2lkVG9HaWRNYXB8fFtdLGU9MD09PUEubGVuZ3RoO3QuY01hcC5mb3JFYWNoKChmdW5jdGlvbih0LGkpe2lmKCJzdHJpbmciPT10eXBlb2YgaSYmKGk9UHModCxpLCEwKSksaT42NTUzNSl0aHJvdyBuZXcgVygiTWF4IHNpemUgb2YgQ0lEIGlzIDY1LDUzNSIpO2xldCBhPS0xO2U/YT1pOnZvaWQgMCE9PUFbaV0mJihhPUFbaV0pLGE+PTAmJmE8RSYmRihhKSYmKGtbdF09YSl9KSl9ZWxzZXtjb25zdCBBPWZ1bmN0aW9uKEEsZSx0LGkpe2lmKCFBKXJldHVybiBVKCJObyBjbWFwIHRhYmxlIGF2YWlsYWJsZS4iKSx7cGxhdGZvcm1JZDotMSxlbmNvZGluZ0lkOi0xLG1hcHBpbmdzOltdLGhhc1Nob3J0Q21hcDohMX07bGV0IGEscz0oZS5zdGFydHx8MCkrQS5vZmZzZXQ7ZS5wb3M9cyxlLnNraXAoMik7Y29uc3Qgbj1lLmdldFVpbnQxNigpO2xldCByLGc9ITE7Zm9yKGxldCBBPTA7QTxuO0ErKyl7Y29uc3QgYT1lLmdldFVpbnQxNigpLHM9ZS5nZXRVaW50MTYoKSxvPWUuZ2V0SW50MzIoKT4+PjA7bGV0IEk9ITE7aWYocj8ucGxhdGZvcm1JZCE9PWF8fHI/LmVuY29kaW5nSWQhPT1zKXtpZigwIT09YXx8MCE9PXMmJjEhPT1zJiYzIT09cylpZigxPT09YSYmMD09PXMpST0hMDtlbHNlIGlmKDMhPT1hfHwxIT09c3x8IWkmJnIpe2lmKHQmJjM9PT1hJiYwPT09cyl7ST0hMDtsZXQgdD0hMDtpZihBPG4tMSl7Y29uc3QgQT1lLnBlZWtCeXRlcygyKTtVcyhBWzBdLEFbMV0pPGEmJih0PSExKX10JiYoZz0hMCl9fWVsc2UgST0hMCx0fHwoZz0hMCk7ZWxzZSBJPSEwO2lmKEkmJihyPXtwbGF0Zm9ybUlkOmEsZW5jb2RpbmdJZDpzLG9mZnNldDpvfSksZylicmVha319aWYociYmKGUucG9zPXMrci5vZmZzZXQpLCFyfHwtMT09PWUucGVla0J5dGUoKSlyZXR1cm4gVSgiQ291bGQgbm90IGZpbmQgYSBwcmVmZXJyZWQgY21hcCB0YWJsZS4iKSx7cGxhdGZvcm1JZDotMSxlbmNvZGluZ0lkOi0xLG1hcHBpbmdzOltdLGhhc1Nob3J0Q21hcDohMX07Y29uc3Qgbz1lLmdldFVpbnQxNigpO2xldCBJPSExO2NvbnN0IGM9W107bGV0IGgsQztpZigwPT09byl7Zm9yKGUuc2tpcCg0KSxoPTA7aDwyNTY7aCsrKXtjb25zdCBBPWUuZ2V0Qnl0ZSgpO0EmJmMucHVzaCh7Y2hhckNvZGU6aCxnbHlwaElkOkF9KX1JPSEwfWVsc2UgaWYoMj09PW8pe2Uuc2tpcCg0KTtjb25zdCBBPVtdO2xldCB0PTA7Zm9yKGxldCBpPTA7aTwyNTY7aSsrKXtjb25zdCBpPWUuZ2V0VWludDE2KCk+PjM7QS5wdXNoKGkpLHQ9TWF0aC5tYXgoaSx0KX1jb25zdCBpPVtdO2ZvcihsZXQgQT0wO0E8PXQ7QSsrKWkucHVzaCh7Zmlyc3RDb2RlOmUuZ2V0VWludDE2KCksZW50cnlDb3VudDplLmdldFVpbnQxNigpLGlkRGVsdGE6THMoZS5nZXRCeXRlKCksZS5nZXRCeXRlKCkpLGlkUmFuZ2VQb3M6ZS5wb3MrZS5nZXRVaW50MTYoKX0pO2ZvcihsZXQgdD0wO3Q8MjU2O3QrKylpZigwPT09QVt0XSllLnBvcz1pWzBdLmlkUmFuZ2VQb3MrMip0LEM9ZS5nZXRVaW50MTYoKSxjLnB1c2goe2NoYXJDb2RlOnQsZ2x5cGhJZDpDfSk7ZWxzZXtjb25zdCBhPWlbQVt0XV07Zm9yKGg9MDtoPGEuZW50cnlDb3VudDtoKyspe2NvbnN0IEE9KHQ8PDgpK2grYS5maXJzdENvZGU7ZS5wb3M9YS5pZFJhbmdlUG9zKzIqaCxDPWUuZ2V0VWludDE2KCksMCE9PUMmJihDPShDK2EuaWREZWx0YSklNjU1MzYpLGMucHVzaCh7Y2hhckNvZGU6QSxnbHlwaElkOkN9KX19fWVsc2UgaWYoND09PW8pe2Uuc2tpcCg0KTtjb25zdCBBPWUuZ2V0VWludDE2KCk+PjE7ZS5za2lwKDYpO2NvbnN0IHQ9W107bGV0IGk7Zm9yKGk9MDtpPEE7aSsrKXQucHVzaCh7ZW5kOmUuZ2V0VWludDE2KCl9KTtmb3IoZS5za2lwKDIpLGk9MDtpPEE7aSsrKXRbaV0uc3RhcnQ9ZS5nZXRVaW50MTYoKTtmb3IoaT0wO2k8QTtpKyspdFtpXS5kZWx0YT1lLmdldFVpbnQxNigpO2xldCBuLHI9MDtmb3IoaT0wO2k8QTtpKyspe2E9dFtpXTtjb25zdCBzPWUuZ2V0VWludDE2KCk7cz8obj0ocz4+MSktKEEtaSksYS5vZmZzZXRJbmRleD1uLHI9TWF0aC5tYXgocixuK2EuZW5kLWEuc3RhcnQrMSkpOmEub2Zmc2V0SW5kZXg9LTF9Y29uc3QgZz1bXTtmb3IoaD0wO2g8cjtoKyspZy5wdXNoKGUuZ2V0VWludDE2KCkpO2ZvcihpPTA7aTxBO2krKyl7YT10W2ldLHM9YS5zdGFydDtjb25zdCBBPWEuZW5kLGU9YS5kZWx0YTtmb3Iobj1hLm9mZnNldEluZGV4LGg9cztoPD1BO2grKyk2NTUzNSE9PWgmJihDPW48MD9oOmdbbitoLXNdLEM9QytlJjY1NTM1LGMucHVzaCh7Y2hhckNvZGU6aCxnbHlwaElkOkN9KSl9fWVsc2UgaWYoNj09PW8pe2Uuc2tpcCg0KTtjb25zdCBBPWUuZ2V0VWludDE2KCksdD1lLmdldFVpbnQxNigpO2ZvcihoPTA7aDx0O2grKyl7Qz1lLmdldFVpbnQxNigpO2NvbnN0IHQ9QStoO2MucHVzaCh7Y2hhckNvZGU6dCxnbHlwaElkOkN9KX19ZWxzZXtpZigxMiE9PW8pcmV0dXJuIFUoImNtYXAgdGFibGUgaGFzIHVuc3VwcG9ydGVkIGZvcm1hdDogIitvKSx7cGxhdGZvcm1JZDotMSxlbmNvZGluZ0lkOi0xLG1hcHBpbmdzOltdLGhhc1Nob3J0Q21hcDohMX07e2Uuc2tpcCgxMCk7Y29uc3QgQT1lLmdldEludDMyKCk+Pj4wO2ZvcihoPTA7aDxBO2grKyl7Y29uc3QgQT1lLmdldEludDMyKCk+Pj4wLHQ9ZS5nZXRJbnQzMigpPj4+MDtsZXQgaT1lLmdldEludDMyKCk+Pj4wO2ZvcihsZXQgZT1BO2U8PXQ7ZSsrKWMucHVzaCh7Y2hhckNvZGU6ZSxnbHlwaElkOmkrK30pfX19Yy5zb3J0KChmdW5jdGlvbihBLGUpe3JldHVybiBBLmNoYXJDb2RlLWUuY2hhckNvZGV9KSk7Zm9yKGxldCBBPTE7QTxjLmxlbmd0aDtBKyspY1tBLTFdLmNoYXJDb2RlPT09Y1tBXS5jaGFyQ29kZSYmKGMuc3BsaWNlKEEsMSksQS0tKTtyZXR1cm57cGxhdGZvcm1JZDpyLnBsYXRmb3JtSWQsZW5jb2RpbmdJZDpyLmVuY29kaW5nSWQsbWFwcGluZ3M6YyxoYXNTaG9ydENtYXA6SX19KGguY21hcCxlLHRoaXMuaXNTeW1ib2xpY0ZvbnQsdC5oYXNFbmNvZGluZyksaT1BLnBsYXRmb3JtSWQsYT1BLmVuY29kaW5nSWQscz1BLm1hcHBpbmdzO2xldCBuPVtdLHI9ITE7aWYoIXQuaGFzRW5jb2Rpbmd8fCJNYWNSb21hbkVuY29kaW5nIiE9PXQuYmFzZUVuY29kaW5nTmFtZSYmIldpbkFuc2lFbmNvZGluZyIhPT10LmJhc2VFbmNvZGluZ05hbWV8fChuPUtpKHQuYmFzZUVuY29kaW5nTmFtZSkpLHQuaGFzRW5jb2RpbmcmJiF0aGlzLmlzU3ltYm9saWNGb250JiYoMz09PWkmJjE9PT1hfHwxPT09aSYmMD09PWEpKXtjb25zdCBBPXJhKCk7Zm9yKGxldCBlPTA7ZTwyNTY7ZSsrKXtsZXQgcjtpZihyPXZvaWQgMCE9PXRoaXMuZGlmZmVyZW5jZXNbZV0/dGhpcy5kaWZmZXJlbmNlc1tlXTpuLmxlbmd0aCYmIiIhPT1uW2VdP25bZV06SmlbZV0sIXIpY29udGludWU7Y29uc3QgZz1FYShyLEEpO2xldCBvO2lmKDM9PT1pJiYxPT09YT9vPUFbZ106MT09PWkmJjA9PT1hJiYobz1MaS5pbmRleE9mKGcpKSx2b2lkIDA9PT1vKXtpZighdC5nbHlwaE5hbWVzJiZ0Lmhhc0luY2x1ZGVkVG9Vbmljb2RlTWFwJiYhKHRoaXMudG9Vbmljb2RlIGluc3RhbmNlb2YgTmEpKXtjb25zdCBBPXRoaXMudG9Vbmljb2RlLmdldChlKTtBJiYobz1BLmNvZGVQb2ludEF0KDApKX1pZih2b2lkIDA9PT1vKWNvbnRpbnVlfWZvcihjb25zdCBBIG9mIHMpaWYoQS5jaGFyQ29kZT09PW8pe2tbZV09QS5nbHlwaElkO2JyZWFrfX19ZWxzZSBpZigwPT09aSl7Zm9yKGNvbnN0IEEgb2YgcylrW0EuY2hhckNvZGVdPUEuZ2x5cGhJZDtyPSEwfWVsc2UgaWYoMz09PWkmJjA9PT1hKWZvcihjb25zdCBBIG9mIHMpe2xldCBlPUEuY2hhckNvZGU7ZT49NjE0NDAmJmU8PTYxNjk1JiYoZSY9MjU1KSxrW2VdPUEuZ2x5cGhJZH1lbHNlIGZvcihjb25zdCBBIG9mIHMpa1tBLmNoYXJDb2RlXT1BLmdseXBoSWQ7aWYodC5nbHlwaE5hbWVzJiYobi5sZW5ndGh8fHRoaXMuZGlmZmVyZW5jZXMubGVuZ3RoKSlmb3IobGV0IEE9MDtBPDI1NjsrK0Epe2lmKCFyJiZ2b2lkIDAhPT1rW0FdKWNvbnRpbnVlO2NvbnN0IGU9dGhpcy5kaWZmZXJlbmNlc1tBXXx8bltBXTtpZighZSljb250aW51ZTtjb25zdCBpPXQuZ2x5cGhOYW1lcy5pbmRleE9mKGUpO2k+MCYmRihpKSYmKGtbQV09aSl9fTA9PT1rLmxlbmd0aCYmKGtbMF09MCk7bGV0IFM9Zi0xO2lmKHB8fChTPTApLCF0LmNzc0ZvbnRJbmZvKXtjb25zdCBBPVdzKGssRixTLHRoaXMudG9Vbmljb2RlKTt0aGlzLnRvRm9udENoYXI9QS50b0ZvbnRDaGFyLGguY21hcD17dGFnOiJjbWFwIixkYXRhOk9zKEEuY2hhckNvZGVUb0dseXBoSWQsQS50b1VuaWNvZGVFeHRyYU1hcCxmKX0saFsiT1MvMiJdJiZmdW5jdGlvbihBLGUpe2UucG9zPShlLnN0YXJ0fHwwKStBLm9mZnNldDtjb25zdCB0PWUuZ2V0VWludDE2KCk7ZS5za2lwKDYwKTtjb25zdCBpPWUuZ2V0VWludDE2KCk7cmV0dXJuISh0PDQmJjc2OCZpfHxlLmdldFVpbnQxNigpPmUuZ2V0VWludDE2KCl8fChlLnNraXAoNiksMD09PWUuZ2V0VWludDE2KCl8fChBLmRhdGFbOF09QS5kYXRhWzldPTAsMCkpKX0oaFsiT1MvMiJdLGUpfHwoaFsiT1MvMiJdPXt0YWc6Ik9TLzIiLGRhdGE6WnModCxBLmNoYXJDb2RlVG9HbHlwaElkLGIpfSl9aWYoIWwpdHJ5e0I9bmV3IGdlKGhbIkNGRiAiXS5kYXRhKSxDPW5ldyBXaShCLHQsbGEpLnBhcnNlKCksQy5kdXBsaWNhdGVGaXJzdEdseXBoKCk7Y29uc3QgQT1uZXcgbmEoQyk7aFsiQ0ZGICJdLmRhdGE9QS5jb21waWxlKCl9Y2F0Y2h7VSgiRmFpbGVkIHRvIGNvbXBpbGUgZm9udCAiK3QubG9hZGVkTmFtZSl9aWYoaC5uYW1lKXtjb25zdFtlLGldPWcoaC5uYW1lKTtoLm5hbWUuZGF0YT1WcyhBLGUpLHRoaXMucHNOYW1lPWVbMF1bNl18fG51bGwsdC5jb21wb3NpdGV8fGZ1bmN0aW9uKEEsZSx0KXtpZihBLmlzSW50ZXJuYWxGb250KXJldHVybjtpZihBLmhhc0luY2x1ZGVkVG9Vbmljb2RlTWFwKXJldHVybjtpZihBLmhhc0VuY29kaW5nKXJldHVybjtpZihBLnRvVW5pY29kZSBpbnN0YW5jZW9mIE5hKXJldHVybjtpZighZSlyZXR1cm47aWYoMD09PXQubGVuZ3RoKXJldHVybjtpZihBLmRlZmF1bHRFbmNvZGluZz09PUhpKXJldHVybjtmb3IoY29uc3QgQSBvZiB0KWlmKCFUcyhBKSlyZXR1cm47Y29uc3QgaT1IaSxhPVtdLHM9cmEoKTtmb3IoY29uc3QgQSBpbiBpKXtjb25zdCBlPWlbQV07aWYoIiI9PT1lKWNvbnRpbnVlO2NvbnN0IHQ9c1tlXTt2b2lkIDAhPT10JiYoYVtBXT1TdHJpbmcuZnJvbUNoYXJDb2RlKHQpKX1hLmxlbmd0aD4wJiZBLnRvVW5pY29kZS5hbWVuZChhKX0odCx0aGlzLmlzU3ltYm9saWNGb250LGkpfWVsc2UgaC5uYW1lPXt0YWc6Im5hbWUiLGRhdGE6VnModGhpcy5uYW1lKX07Y29uc3QgUj1uZXcgZ3MoYy52ZXJzaW9uKTtmb3IoY29uc3QgQSBpbiBoKVIuYWRkVGFibGUoQSxoW0FdLmRhdGEpO3JldHVybiBSLnRvQXJyYXkoKX1jb252ZXJ0KEEsZSx0KXt0LmZpeGVkUGl0Y2g9ITEsdC5idWlsdEluRW5jb2RpbmcmJmZ1bmN0aW9uKEEsZSl7aWYoQS5pc0ludGVybmFsRm9udClyZXR1cm47aWYoQS5oYXNJbmNsdWRlZFRvVW5pY29kZU1hcClyZXR1cm47aWYoZT09PUEuZGVmYXVsdEVuY29kaW5nKXJldHVybjtpZihBLnRvVW5pY29kZSBpbnN0YW5jZW9mIE5hKXJldHVybjtjb25zdCB0PVtdLGk9cmEoKTtmb3IoY29uc3QgYSBpbiBlKXtpZihBLmhhc0VuY29kaW5nJiYoQS5iYXNlRW5jb2RpbmdOYW1lfHx2b2lkIDAhPT1BLmRpZmZlcmVuY2VzW2FdKSljb250aW51ZTtjb25zdCBzPUlhKGVbYV0saSk7LTEhPT1zJiYodFthXT1TdHJpbmcuZnJvbUNoYXJDb2RlKHMpKX10Lmxlbmd0aD4wJiZBLnRvVW5pY29kZS5hbWVuZCh0KX0odCx0LmJ1aWx0SW5FbmNvZGluZyk7bGV0IGk9MTtlIGluc3RhbmNlb2YgeGEmJihpPWUubnVtR2x5cGhzLTEpO2NvbnN0IGE9ZS5nZXRHbHlwaE1hcHBpbmcodCk7bGV0IHM9bnVsbCxyPWEsZz1udWxsO3QuY3NzRm9udEluZm98fChzPVdzKGEsZS5oYXNHbHlwaElkLmJpbmQoZSksaSx0aGlzLnRvVW5pY29kZSksdGhpcy50b0ZvbnRDaGFyPXMudG9Gb250Q2hhcixyPXMuY2hhckNvZGVUb0dseXBoSWQsZz1zLnRvVW5pY29kZUV4dHJhTWFwKTtjb25zdCBvPWUubnVtR2x5cGhzO2Z1bmN0aW9uIEkoQSxlKXtsZXQgdD1udWxsO2Zvcihjb25zdCBpIGluIEEpZT09PUFbaV0mJih0fHw9W10pLnB1c2goMHxpKTtyZXR1cm4gdH1mdW5jdGlvbiBjKEEsZSl7Zm9yKGNvbnN0IHQgaW4gQSlpZihlPT09QVt0XSlyZXR1cm4gMHx0O3JldHVybiBzLmNoYXJDb2RlVG9HbHlwaElkW3MubmV4dEF2YWlsYWJsZUZvbnRDaGFyQ29kZV09ZSxzLm5leHRBdmFpbGFibGVGb250Q2hhckNvZGUrK31jb25zdCBoPWUuc2VhY3M7aWYocyYmaD8ubGVuZ3RoKXtjb25zdCBBPXQuZm9udE1hdHJpeHx8bixpPWUuZ2V0Q2hhcnNldCgpLHI9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IobGV0IGUgaW4gaCl7ZXw9MDtjb25zdCB0PWhbZV0sbj1KaVt0WzJdXSxnPUppW3RbM11dLG89aS5pbmRleE9mKG4pLEM9aS5pbmRleE9mKGcpO2lmKG88MHx8QzwwKWNvbnRpbnVlO2NvbnN0IEI9e3g6dFswXSpBWzBdK3RbMV0qQVsyXStBWzRdLHk6dFswXSpBWzFdK3RbMV0qQVszXStBWzVdfSxsPUkoYSxlKTtpZihsKWZvcihjb25zdCBBIG9mIGwpe2NvbnN0IGU9cy5jaGFyQ29kZVRvR2x5cGhJZCx0PWMoZSxvKSxpPWMoZSxDKTtyW0FdPXtiYXNlRm9udENoYXJDb2RlOnQsYWNjZW50Rm9udENoYXJDb2RlOmksYWNjZW50T2Zmc2V0OkJ9fX10LnNlYWNNYXA9cn1jb25zdCBDPXQuZm9udE1hdHJpeD8xL01hdGgubWF4KC4uLnQuZm9udE1hdHJpeC5zbGljZSgwLDQpLm1hcChNYXRoLmFicykpOjFlMyxCPW5ldyBncygiT1RUTyIpO3JldHVybiBCLmFkZFRhYmxlKCJDRkYgIixlLmRhdGEpLEIuYWRkVGFibGUoIk9TLzIiLFpzKHQscikpLEIuYWRkVGFibGUoImNtYXAiLE9zKHIsZyxvKSksQi5hZGRUYWJsZSgiaGVhZCIsIlwwAVwwXDBcMFwwEFwwXDBcMFwwXDBfDzzDtVwwXDAiK0hzKEMpKyJcMFwwXDBcMMKeXHZ+J1wwXDBcMFwwwp5cdn4nXDBcMCIrSHModC5kZXNjZW50KSsiD8O/IitIcyh0LmFzY2VudCkrSnModC5pdGFsaWNBbmdsZT8yOjApKyJcMBFcMFwwXDBcMFwwXDAiKSxCLmFkZFRhYmxlKCJoaGVhIiwiXDABXDBcMCIrSHModC5hc2NlbnQpK0hzKHQuZGVzY2VudCkrIlwwXDDDv8O/XDBcMFwwXDBcMFwwIitIcyh0LmNhcEhlaWdodCkrSHMoTWF0aC50YW4odC5pdGFsaWNBbmdsZSkqdC54SGVpZ2h0KSsiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIitKcyhvKSksQi5hZGRUYWJsZSgiaG10eCIsZnVuY3Rpb24oKXtjb25zdCBBPWUuY2hhcnN0cmluZ3MsdD1lLmNmZj9lLmNmZi53aWR0aHM6bnVsbDtsZXQgaT0iXDBcMFwwXDAiO2ZvcihsZXQgZT0xLGE9bztlPGE7ZSsrKXtsZXQgYT0wO2lmKEEpe2NvbnN0IHQ9QVtlLTFdO2E9IndpZHRoImluIHQ/dC53aWR0aDowfWVsc2UgdCYmKGE9TWF0aC5jZWlsKHRbZV18fDApKTtpKz1KcyhhKStKcygwKX1yZXR1cm4gaX0oKSksQi5hZGRUYWJsZSgibWF4cCIsIlwwXDBQXDAiK0pzKG8pKSxCLmFkZFRhYmxlKCJuYW1lIixWcyhBKSksQi5hZGRUYWJsZSgicG9zdCIsanModCkpLEIudG9BcnJheSgpfWdldCBfc3BhY2VXaWR0aCgpe2NvbnN0IEE9WyJzcGFjZSIsIm1pbnVzIiwib25lIiwiaSIsIkkiXTtsZXQgZTtmb3IoY29uc3QgdCBvZiBBKXtpZih0IGluIHRoaXMud2lkdGhzKXtlPXRoaXMud2lkdGhzW3RdO2JyZWFrfWNvbnN0IEE9cmEoKVt0XTtsZXQgaT0wO2lmKHRoaXMuY29tcG9zaXRlJiZ0aGlzLmNNYXAuY29udGFpbnMoQSkmJihpPXRoaXMuY01hcC5sb29rdXAoQSksInN0cmluZyI9PXR5cGVvZiBpJiYoaT1QcyhBLGkpKSksIWkmJnRoaXMudG9Vbmljb2RlJiYoaT10aGlzLnRvVW5pY29kZS5jaGFyQ29kZU9mKEEpKSxpPD0wJiYoaT1BKSxlPXRoaXMud2lkdGhzW2ldLGUpYnJlYWt9cmV0dXJuIEgodGhpcywiX3NwYWNlV2lkdGgiLGV8fHRoaXMuZGVmYXVsdFdpZHRoKX1fY2hhclRvR2x5cGgoQSxlPSExKXtsZXQgdCxpLGEscz10aGlzLl9nbHlwaENhY2hlW0FdO2lmKHM/LmlzU3BhY2U9PT1lKXJldHVybiBzO2xldCBuPUE7dGhpcy5jTWFwPy5jb250YWlucyhBKSYmKG49dGhpcy5jTWFwLmxvb2t1cChBKSwic3RyaW5nIj09dHlwZW9mIG4mJihuPVBzKEEsbikpKSxpPXRoaXMud2lkdGhzW25dLCJudW1iZXIiIT10eXBlb2YgaSYmKGk9dGhpcy5kZWZhdWx0V2lkdGgpO2NvbnN0IHI9dGhpcy52bWV0cmljcz8uW25dO2xldCBnPXRoaXMudG9Vbmljb2RlLmdldChBKXx8QTsibnVtYmVyIj09dHlwZW9mIGcmJihnPVN0cmluZy5mcm9tQ2hhckNvZGUoZykpO2xldCBvPXZvaWQgMCE9PXRoaXMudG9Gb250Q2hhcltBXTtpZih0PXRoaXMudG9Gb250Q2hhcltBXXx8QSx0aGlzLm1pc3NpbmdGaWxlKXtjb25zdCBlPXRoaXMuZGlmZmVyZW5jZXNbQV18fHRoaXMuZGVmYXVsdEVuY29kaW5nW0FdOyIubm90ZGVmIiE9PWUmJiIiIT09ZXx8IlR5cGUxIiE9PXRoaXMudHlwZXx8KHQ9MzIsIiI9PT1lJiYoaXx8PXRoaXMuX3NwYWNlV2lkdGgsZz1TdHJpbmcuZnJvbUNoYXJDb2RlKHQpKSksdD0oST10KT49NjU1MjAmJkk8PTY1NTM1PzA6ST49NjI5NzYmJkk8PTYzNzQzP29hKClbSV18fEk6MTczPT09ST80NTpJfXZhciBJO3RoaXMuaXNUeXBlM0ZvbnQmJihhPXQpO2xldCBjPW51bGw7aWYodGhpcy5zZWFjTWFwPy5bQV0pe289ITA7Y29uc3QgZT10aGlzLnNlYWNNYXBbQV07dD1lLmJhc2VGb250Q2hhckNvZGUsYz17Zm9udENoYXI6U3RyaW5nLmZyb21Db2RlUG9pbnQoZS5hY2NlbnRGb250Q2hhckNvZGUpLG9mZnNldDplLmFjY2VudE9mZnNldH19bGV0IGg9IiI7aWYoIm51bWJlciI9PXR5cGVvZiB0JiYodDw9MTExNDExMT9oPVN0cmluZy5mcm9tQ29kZVBvaW50KHQpOlUoYGNoYXJUb0dseXBoIC0gaW52YWxpZCBmb250Q2hhckNvZGU6ICR7dH1gKSksdGhpcy5taXNzaW5nRmlsZSYmdGhpcy52ZXJ0aWNhbCYmMT09PWgubGVuZ3RoKXtjb25zdCBBPWZhKClbaC5jaGFyQ29kZUF0KDApXTtBJiYoaD1nPVN0cmluZy5mcm9tQ2hhckNvZGUoQSkpfXJldHVybiBzPW5ldyB4cyhBLGgsZyxjLGkscixhLGUsbyksdGhpcy5fZ2x5cGhDYWNoZVtBXT1zfWNoYXJzVG9HbHlwaHMoQSl7bGV0IGU9dGhpcy5fY2hhcnNDYWNoZVtBXTtpZihlKXJldHVybiBlO2lmKGU9W10sdGhpcy5jTWFwKXtjb25zdCB0PU9iamVjdC5jcmVhdGUobnVsbCksaT1BLmxlbmd0aDtsZXQgYT0wO2Zvcig7YTxpOyl7dGhpcy5jTWFwLnJlYWRDaGFyQ29kZShBLGEsdCk7Y29uc3R7Y2hhcmNvZGU6aSxsZW5ndGg6c309dDthKz1zO2NvbnN0IG49dGhpcy5fY2hhclRvR2x5cGgoaSwxPT09cyYmMzI9PT1BLmNoYXJDb2RlQXQoYS0xKSk7ZS5wdXNoKG4pfX1lbHNlIGZvcihsZXQgdD0wLGk9QS5sZW5ndGg7dDxpOysrdCl7Y29uc3QgaT1BLmNoYXJDb2RlQXQodCksYT10aGlzLl9jaGFyVG9HbHlwaChpLDMyPT09aSk7ZS5wdXNoKGEpfXJldHVybiB0aGlzLl9jaGFyc0NhY2hlW0FdPWV9Z2V0Q2hhclBvc2l0aW9ucyhBKXtjb25zdCBlPVtdO2lmKHRoaXMuY01hcCl7Y29uc3QgdD1PYmplY3QuY3JlYXRlKG51bGwpO2xldCBpPTA7Zm9yKDtpPEEubGVuZ3RoOyl7dGhpcy5jTWFwLnJlYWRDaGFyQ29kZShBLGksdCk7Y29uc3QgYT10Lmxlbmd0aDtlLnB1c2goW2ksaSthXSksaSs9YX19ZWxzZSBmb3IobGV0IHQ9MCxpPUEubGVuZ3RoO3Q8aTsrK3QpZS5wdXNoKFt0LHQrMV0pO3JldHVybiBlfWdldCBnbHlwaENhY2hlVmFsdWVzKCl7cmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5fZ2x5cGhDYWNoZSl9ZW5jb2RlU3RyaW5nKEEpe2NvbnN0IGU9W10sdD1bXSxpPSgpPT5lLmxlbmd0aCUyPT0xLGE9dGhpcy50b1VuaWNvZGUgaW5zdGFuY2VvZiBOYT9BPT50aGlzLnRvVW5pY29kZS5jaGFyQ29kZU9mKEEpOkE9PnRoaXMudG9Vbmljb2RlLmNoYXJDb2RlT2YoU3RyaW5nLmZyb21Db2RlUG9pbnQoQSkpO2ZvcihsZXQgcz0wLG49QS5sZW5ndGg7czxuO3MrKyl7Y29uc3Qgbj1BLmNvZGVQb2ludEF0KHMpO2lmKG4+NTUyOTUmJihuPDU3MzQ0fHxuPjY1NTMzKSYmcysrLHRoaXMudG9Vbmljb2RlKXtjb25zdCBBPWEobik7aWYoLTEhPT1BKXtpKCkmJihlLnB1c2godC5qb2luKCIiKSksdC5sZW5ndGg9MCk7Zm9yKGxldCBlPSh0aGlzLmNNYXA/dGhpcy5jTWFwLmdldENoYXJDb2RlTGVuZ3RoKEEpOjEpLTE7ZT49MDtlLS0pdC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoQT4+OCplJjI1NSkpO2NvbnRpbnVlfX1pKCl8fChlLnB1c2godC5qb2luKCIiKSksdC5sZW5ndGg9MCksdC5wdXNoKFN0cmluZy5mcm9tQ29kZVBvaW50KG4pKX1yZXR1cm4gZS5wdXNoKHQuam9pbigiIikpLGV9fWNsYXNzIHpze2NvbnN0cnVjdG9yKEEpe3RoaXMuZXJyb3I9QSx0aGlzLmxvYWRlZE5hbWU9ImdfZm9udF9lcnJvciIsdGhpcy5taXNzaW5nRmlsZT0hMH1jaGFyc1RvR2x5cGhzKCl7cmV0dXJuW119ZW5jb2RlU3RyaW5nKEEpe3JldHVybltBXX1leHBvcnREYXRhKEE9ITEpe3JldHVybntlcnJvcjp0aGlzLmVycm9yfX19Y2xhc3MgJHN7Y29uc3RydWN0b3IoKXtNKCJDYW5ub3QgaW5pdGlhbGl6ZSBQYXR0ZXJuLiIpfXN0YXRpYyBwYXJzZVNoYWRpbmcoQSxlLHQsaSxhKXtjb25zdCBzPUEgaW5zdGFuY2VvZiB3QT9BLmRpY3Q6QSxuPXMuZ2V0KCJTaGFkaW5nVHlwZSIpO3RyeXtzd2l0Y2gobil7Y2FzZSAyOmNhc2UgMzpyZXR1cm4gbmV3IGVuKHMsZSx0LGksYSk7Y2FzZSA0OmNhc2UgNTpjYXNlIDY6Y2FzZSA3OnJldHVybiBuZXcgbm4oQSxlLHQsaSxhKTtkZWZhdWx0OnRocm93IG5ldyBXKCJVbnN1cHBvcnRlZCBTaGFkaW5nVHlwZTogIituKX19Y2F0Y2goQSl7aWYoQSBpbnN0YW5jZW9mIGtBKXRocm93IEE7cmV0dXJuIFUoQSksbmV3IHJufX19Y2xhc3MgQW57c3RhdGljIFNNQUxMX05VTUJFUj0xZS02O2dldElSKCl7TSgiQWJzdHJhY3QgbWV0aG9kIGBnZXRJUmAgY2FsbGVkLiIpfX1jbGFzcyBlbiBleHRlbmRzIEFue2NvbnN0cnVjdG9yKEEsZSx0LGksYSl7c3VwZXIoKSx0aGlzLnNoYWRpbmdUeXBlPUEuZ2V0KCJTaGFkaW5nVHlwZSIpO2xldCBzPTA7aWYoMj09PXRoaXMuc2hhZGluZ1R5cGU/cz00OjM9PT10aGlzLnNoYWRpbmdUeXBlJiYocz02KSx0aGlzLmNvb3Jkc0Fycj1BLmdldEFycmF5KCJDb29yZHMiKSwhdkEodGhpcy5jb29yZHNBcnIscykpdGhyb3cgbmV3IFcoIlJhZGlhbEF4aWFsU2hhZGluZzogSW52YWxpZCAvQ29vcmRzIGFycmF5LiIpO2NvbnN0IG49Q2UucGFyc2Uoe2NzOkEuZ2V0UmF3KCJDUyIpfHxBLmdldFJhdygiQ29sb3JTcGFjZSIpLHhyZWY6ZSxyZXNvdXJjZXM6dCxwZGZGdW5jdGlvbkZhY3Rvcnk6aSxsb2NhbENvbG9yU3BhY2VDYWNoZTphfSk7dGhpcy5iYm94PVRBKEEuZ2V0QXJyYXkoIkJCb3giKSxudWxsKTtsZXQgcj0wLGc9MTtjb25zdCBvPUEuZ2V0QXJyYXkoIkRvbWFpbiIpO3ZBKG8sMikmJihbcixnXT1vKTtsZXQgST0hMSxjPSExO2NvbnN0IGg9QS5nZXRBcnJheSgiRXh0ZW5kIik7dmFyIEM7aWYoQz1oLDIsQXJyYXkuaXNBcnJheShDKSYmMj09PUMubGVuZ3RoJiZDLmV2ZXJ5KChBPT4iYm9vbGVhbiI9PXR5cGVvZiBBKSkmJihbSSxjXT1oKSwhKDMhPT10aGlzLnNoYWRpbmdUeXBlfHxJJiZjKSl7Y29uc3RbQSxlLHQsaSxhLHNdPXRoaXMuY29vcmRzQXJyLG49TWF0aC5oeXBvdChBLWksZS1hKTt0PD1zK24mJnM8PXQrbiYmVSgiVW5zdXBwb3J0ZWQgcmFkaWFsIGdyYWRpZW50LiIpfXRoaXMuZXh0ZW5kU3RhcnQ9SSx0aGlzLmV4dGVuZEVuZD1jO2NvbnN0IEI9QS5nZXRSYXcoIkZ1bmN0aW9uIiksbD1pLmNyZWF0ZUZyb21BcnJheShCKSxRPShnLXIpLzg0MCxFPXRoaXMuY29sb3JTdG9wcz1bXTtpZihyPj1nfHxRPD0wKXJldHVybiB2b2lkIHgoIkJhZCBzaGFkaW5nIGRvbWFpbi4iKTtjb25zdCB1PW5ldyBGbG9hdDMyQXJyYXkobi5udW1Db21wcyksZD1uZXcgRmxvYXQzMkFycmF5KDEpO2xldCBmLHA9MDtkWzBdPXIsbChkLDAsdSwwKTtsZXQgbT1uLmdldFJnYih1LDApO2NvbnN0IHk9JC5tYWtlSGV4Q29sb3IobVswXSxtWzFdLG1bMl0pO0UucHVzaChbMCx5XSk7bGV0IHc9MTtkWzBdPXIrUSxsKGQsMCx1LDApO2xldCBEPW4uZ2V0UmdiKHUsMCksYj1EWzBdLW1bMF0rMSxrPURbMV0tbVsxXSsxLEY9RFsyXS1tWzJdKzEsUz1EWzBdLW1bMF0tMSxSPURbMV0tbVsxXS0xLEc9RFsyXS1tWzJdLTE7Zm9yKGxldCBBPTI7QTw4NDA7QSsrKXtkWzBdPXIrQSpRLGwoZCwwLHUsMCksZj1uLmdldFJnYih1LDApO2NvbnN0IGU9QS1wO2lmKGI9TWF0aC5taW4oYiwoZlswXS1tWzBdKzEpL2UpLGs9TWF0aC5taW4oaywoZlsxXS1tWzFdKzEpL2UpLEY9TWF0aC5taW4oRiwoZlsyXS1tWzJdKzEpL2UpLFM9TWF0aC5tYXgoUywoZlswXS1tWzBdLTEpL2UpLFI9TWF0aC5tYXgoUiwoZlsxXS1tWzFdLTEpL2UpLEc9TWF0aC5tYXgoRywoZlsyXS1tWzJdLTEpL2UpLCEoUzw9YiYmUjw9ayYmRzw9Rikpe2NvbnN0IEE9JC5tYWtlSGV4Q29sb3IoRFswXSxEWzFdLERbMl0pO0UucHVzaChbdy84NDAsQV0pLGI9ZlswXS1EWzBdKzEsaz1mWzFdLURbMV0rMSxGPWZbMl0tRFsyXSsxLFM9ZlswXS1EWzBdLTEsUj1mWzFdLURbMV0tMSxHPWZbMl0tRFsyXS0xLHA9dyxtPUR9dz1BLEQ9Zn1jb25zdCBOPSQubWFrZUhleENvbG9yKERbMF0sRFsxXSxEWzJdKTtFLnB1c2goWzEsTl0pO2xldCBNPSJ0cmFuc3BhcmVudCI7QS5oYXMoIkJhY2tncm91bmQiKSYmKGY9bi5nZXRSZ2IoQS5nZXQoIkJhY2tncm91bmQiKSwwKSxNPSQubWFrZUhleENvbG9yKGZbMF0sZlsxXSxmWzJdKSksSXx8KEUudW5zaGlmdChbMCxNXSksRVsxXVswXSs9QW4uU01BTExfTlVNQkVSKSxjfHwoRS5hdCgtMSlbMF0tPUFuLlNNQUxMX05VTUJFUixFLnB1c2goWzEsTV0pKSx0aGlzLmNvbG9yU3RvcHM9RX1nZXRJUigpe2NvbnN0e2Nvb3Jkc0FycjpBLHNoYWRpbmdUeXBlOmV9PXRoaXM7bGV0IHQsaSxhLHMsbjtyZXR1cm4gMj09PWU/KGk9W0FbMF0sQVsxXV0sYT1bQVsyXSxBWzNdXSxzPW51bGwsbj1udWxsLHQ9ImF4aWFsIik6Mz09PWU/KGk9W0FbMF0sQVsxXV0sYT1bQVszXSxBWzRdXSxzPUFbMl0sbj1BWzVdLHQ9InJhZGlhbCIpOk0oYGdldFBhdHRlcm4gdHlwZSB1bmtub3duOiAke2V9YCksWyJSYWRpYWxBeGlhbCIsdCx0aGlzLmJib3gsdGhpcy5jb2xvclN0b3BzLGksYSxzLG5dfX1jbGFzcyB0bntjb25zdHJ1Y3RvcihBLGUpe3RoaXMuc3RyZWFtPUEsdGhpcy5jb250ZXh0PWUsdGhpcy5idWZmZXI9MCx0aGlzLmJ1ZmZlckxlbmd0aD0wO2NvbnN0IHQ9ZS5udW1Db21wczt0aGlzLnRtcENvbXBzQnVmPW5ldyBGbG9hdDMyQXJyYXkodCk7Y29uc3QgaT1lLmNvbG9yU3BhY2UubnVtQ29tcHM7dGhpcy50bXBDc0NvbXBzQnVmPWUuY29sb3JGbj9uZXcgRmxvYXQzMkFycmF5KGkpOnRoaXMudG1wQ29tcHNCdWZ9Z2V0IGhhc0RhdGEoKXtpZih0aGlzLnN0cmVhbS5lbmQpcmV0dXJuIHRoaXMuc3RyZWFtLnBvczx0aGlzLnN0cmVhbS5lbmQ7aWYodGhpcy5idWZmZXJMZW5ndGg+MClyZXR1cm4hMDtjb25zdCBBPXRoaXMuc3RyZWFtLmdldEJ5dGUoKTtyZXR1cm4hKEE8MHx8KHRoaXMuYnVmZmVyPUEsdGhpcy5idWZmZXJMZW5ndGg9OCwwKSl9cmVhZEJpdHMoQSl7bGV0IGU9dGhpcy5idWZmZXIsdD10aGlzLmJ1ZmZlckxlbmd0aDtpZigzMj09PUEpe2lmKDA9PT10KXJldHVybih0aGlzLnN0cmVhbS5nZXRCeXRlKCk8PDI0fHRoaXMuc3RyZWFtLmdldEJ5dGUoKTw8MTZ8dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpPDw4fHRoaXMuc3RyZWFtLmdldEJ5dGUoKSk+Pj4wO2U9ZTw8MjR8dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpPDwxNnx0aGlzLnN0cmVhbS5nZXRCeXRlKCk8PDh8dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpO2NvbnN0IEE9dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpO3JldHVybiB0aGlzLmJ1ZmZlcj1BJigxPDx0KS0xLChlPDw4LXR8KDI1NSZBKT4+dCk+Pj4wfWlmKDg9PT1BJiYwPT09dClyZXR1cm4gdGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpO2Zvcig7dDxBOyllPWU8PDh8dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpLHQrPTg7cmV0dXJuIHQtPUEsdGhpcy5idWZmZXJMZW5ndGg9dCx0aGlzLmJ1ZmZlcj1lJigxPDx0KS0xLGU+PnR9YWxpZ24oKXt0aGlzLmJ1ZmZlcj0wLHRoaXMuYnVmZmVyTGVuZ3RoPTB9cmVhZEZsYWcoKXtyZXR1cm4gdGhpcy5yZWFkQml0cyh0aGlzLmNvbnRleHQuYml0c1BlckZsYWcpfXJlYWRDb29yZGluYXRlKCl7Y29uc3QgQT10aGlzLmNvbnRleHQuYml0c1BlckNvb3JkaW5hdGUsZT10aGlzLnJlYWRCaXRzKEEpLHQ9dGhpcy5yZWFkQml0cyhBKSxpPXRoaXMuY29udGV4dC5kZWNvZGUsYT1BPDMyPzEvKCgxPDxBKS0xKToyLjMyODMwNjQzNjUzODY5NjNlLTEwO3JldHVybltlKmEqKGlbMV0taVswXSkraVswXSx0KmEqKGlbM10taVsyXSkraVsyXV19cmVhZENvbXBvbmVudHMoKXtjb25zdCBBPXRoaXMuY29udGV4dC5udW1Db21wcyxlPXRoaXMuY29udGV4dC5iaXRzUGVyQ29tcG9uZW50LHQ9ZTwzMj8xLygoMTw8ZSktMSk6Mi4zMjgzMDY0MzY1Mzg2OTYzZS0xMCxpPXRoaXMuY29udGV4dC5kZWNvZGUsYT10aGlzLnRtcENvbXBzQnVmO2ZvcihsZXQgcz0wLG49NDtzPEE7cysrLG4rPTIpe2NvbnN0IEE9dGhpcy5yZWFkQml0cyhlKTthW3NdPUEqdCooaVtuKzFdLWlbbl0pK2lbbl19Y29uc3Qgcz10aGlzLnRtcENzQ29tcHNCdWY7cmV0dXJuIHRoaXMuY29udGV4dC5jb2xvckZuJiZ0aGlzLmNvbnRleHQuY29sb3JGbihhLDAscywwKSx0aGlzLmNvbnRleHQuY29sb3JTcGFjZS5nZXRSZ2IocywwKX19bGV0IGFuPU9iamVjdC5jcmVhdGUobnVsbCk7ZnVuY3Rpb24gc24oQSl7cmV0dXJuIGFuW0FdfHw9ZnVuY3Rpb24oQSl7Y29uc3QgZT1bXTtmb3IobGV0IHQ9MDt0PD1BO3QrKyl7Y29uc3QgaT10L0EsYT0xLWk7ZS5wdXNoKG5ldyBGbG9hdDMyQXJyYXkoW2EqKjMsMyppKmEqKjIsMyppKioyKmEsaSoqM10pKX1yZXR1cm4gZX0oQSl9Y2xhc3Mgbm4gZXh0ZW5kcyBBbntzdGF0aWMgTUlOX1NQTElUX1BBVENIX0NIVU5LU19BTU9VTlQ9MztzdGF0aWMgTUFYX1NQTElUX1BBVENIX0NIVU5LU19BTU9VTlQ9MjA7c3RhdGljIFRSSUFOR0xFX0RFTlNJVFk9MjA7Y29uc3RydWN0b3IoQSxlLHQsaSxhKXtpZihzdXBlcigpLCEoQSBpbnN0YW5jZW9mIHdBKSl0aHJvdyBuZXcgVygiTWVzaCBkYXRhIGlzIG5vdCBhIHN0cmVhbSIpO2NvbnN0IHM9QS5kaWN0O3RoaXMuc2hhZGluZ1R5cGU9cy5nZXQoIlNoYWRpbmdUeXBlIiksdGhpcy5iYm94PVRBKHMuZ2V0QXJyYXkoIkJCb3giKSxudWxsKTtjb25zdCBuPUNlLnBhcnNlKHtjczpzLmdldFJhdygiQ1MiKXx8cy5nZXRSYXcoIkNvbG9yU3BhY2UiKSx4cmVmOmUscmVzb3VyY2VzOnQscGRmRnVuY3Rpb25GYWN0b3J5OmksbG9jYWxDb2xvclNwYWNlQ2FjaGU6YX0pO3RoaXMuYmFja2dyb3VuZD1zLmhhcygiQmFja2dyb3VuZCIpP24uZ2V0UmdiKHMuZ2V0KCJCYWNrZ3JvdW5kIiksMCk6bnVsbDtjb25zdCByPXMuZ2V0UmF3KCJGdW5jdGlvbiIpLGc9cj9pLmNyZWF0ZUZyb21BcnJheShyKTpudWxsO3RoaXMuY29vcmRzPVtdLHRoaXMuY29sb3JzPVtdLHRoaXMuZmlndXJlcz1bXTtjb25zdCBvPXtiaXRzUGVyQ29vcmRpbmF0ZTpzLmdldCgiQml0c1BlckNvb3JkaW5hdGUiKSxiaXRzUGVyQ29tcG9uZW50OnMuZ2V0KCJCaXRzUGVyQ29tcG9uZW50IiksYml0c1BlckZsYWc6cy5nZXQoIkJpdHNQZXJGbGFnIiksZGVjb2RlOnMuZ2V0QXJyYXkoIkRlY29kZSIpLGNvbG9yRm46Zyxjb2xvclNwYWNlOm4sbnVtQ29tcHM6Zz8xOm4ubnVtQ29tcHN9LEk9bmV3IHRuKEEsbyk7bGV0IGM9ITE7c3dpdGNoKHRoaXMuc2hhZGluZ1R5cGUpe2Nhc2UgNDp0aGlzLl9kZWNvZGVUeXBlNFNoYWRpbmcoSSk7YnJlYWs7Y2FzZSA1OmNvbnN0IEE9MHxzLmdldCgiVmVydGljZXNQZXJSb3ciKTtpZihBPDIpdGhyb3cgbmV3IFcoIkludmFsaWQgVmVydGljZXNQZXJSb3ciKTt0aGlzLl9kZWNvZGVUeXBlNVNoYWRpbmcoSSxBKTticmVhaztjYXNlIDY6dGhpcy5fZGVjb2RlVHlwZTZTaGFkaW5nKEkpLGM9ITA7YnJlYWs7Y2FzZSA3OnRoaXMuX2RlY29kZVR5cGU3U2hhZGluZyhJKSxjPSEwO2JyZWFrO2RlZmF1bHQ6TSgiVW5zdXBwb3J0ZWQgbWVzaCB0eXBlLiIpfWlmKGMpe3RoaXMuX3VwZGF0ZUJvdW5kcygpO2ZvcihsZXQgQT0wLGU9dGhpcy5maWd1cmVzLmxlbmd0aDtBPGU7QSsrKXRoaXMuX2J1aWxkRmlndXJlRnJvbVBhdGNoKEEpfXRoaXMuX3VwZGF0ZUJvdW5kcygpLHRoaXMuX3BhY2tEYXRhKCl9X2RlY29kZVR5cGU0U2hhZGluZyhBKXtjb25zdCBlPXRoaXMuY29vcmRzLHQ9dGhpcy5jb2xvcnMsaT1bXSxhPVtdO2xldCBzPTA7Zm9yKDtBLmhhc0RhdGE7KXtjb25zdCBuPUEucmVhZEZsYWcoKSxyPUEucmVhZENvb3JkaW5hdGUoKSxnPUEucmVhZENvbXBvbmVudHMoKTtpZigwPT09cyl7aWYoISgwPD1uJiZuPD0yKSl0aHJvdyBuZXcgVygiVW5rbm93biB0eXBlNCBmbGFnIik7c3dpdGNoKG4pe2Nhc2UgMDpzPTM7YnJlYWs7Y2FzZSAxOmEucHVzaChhLmF0KC0yKSxhLmF0KC0xKSkscz0xO2JyZWFrO2Nhc2UgMjphLnB1c2goYS5hdCgtMyksYS5hdCgtMSkpLHM9MX1pLnB1c2gobil9YS5wdXNoKGUubGVuZ3RoKSxlLnB1c2gociksdC5wdXNoKGcpLHMtLSxBLmFsaWduKCl9dGhpcy5maWd1cmVzLnB1c2goe3R5cGU6InRyaWFuZ2xlcyIsY29vcmRzOm5ldyBJbnQzMkFycmF5KGEpLGNvbG9yczpuZXcgSW50MzJBcnJheShhKX0pfV9kZWNvZGVUeXBlNVNoYWRpbmcoQSxlKXtjb25zdCB0PXRoaXMuY29vcmRzLGk9dGhpcy5jb2xvcnMsYT1bXTtmb3IoO0EuaGFzRGF0YTspe2NvbnN0IGU9QS5yZWFkQ29vcmRpbmF0ZSgpLHM9QS5yZWFkQ29tcG9uZW50cygpO2EucHVzaCh0Lmxlbmd0aCksdC5wdXNoKGUpLGkucHVzaChzKX10aGlzLmZpZ3VyZXMucHVzaCh7dHlwZToibGF0dGljZSIsY29vcmRzOm5ldyBJbnQzMkFycmF5KGEpLGNvbG9yczpuZXcgSW50MzJBcnJheShhKSx2ZXJ0aWNlc1BlclJvdzplfSl9X2RlY29kZVR5cGU2U2hhZGluZyhBKXtjb25zdCBlPXRoaXMuY29vcmRzLHQ9dGhpcy5jb2xvcnMsaT1uZXcgSW50MzJBcnJheSgxNiksYT1uZXcgSW50MzJBcnJheSg0KTtmb3IoO0EuaGFzRGF0YTspe2NvbnN0IHM9QS5yZWFkRmxhZygpO2lmKCEoMDw9cyYmczw9MykpdGhyb3cgbmV3IFcoIlVua25vd24gdHlwZTYgZmxhZyIpO2NvbnN0IG49ZS5sZW5ndGg7Zm9yKGxldCB0PTAsaT0wIT09cz84OjEyO3Q8aTt0KyspZS5wdXNoKEEucmVhZENvb3JkaW5hdGUoKSk7Y29uc3Qgcj10Lmxlbmd0aDtmb3IobGV0IGU9MCxpPTAhPT1zPzI6NDtlPGk7ZSsrKXQucHVzaChBLnJlYWRDb21wb25lbnRzKCkpO2xldCBnLG8sSSxjO3N3aXRjaChzKXtjYXNlIDA6aVsxMl09biszLGlbMTNdPW4rNCxpWzE0XT1uKzUsaVsxNV09bis2LGlbOF09bisyLGlbMTFdPW4rNyxpWzRdPW4rMSxpWzddPW4rOCxpWzBdPW4saVsxXT1uKzExLGlbMl09bisxMCxpWzNdPW4rOSxhWzJdPXIrMSxhWzNdPXIrMixhWzBdPXIsYVsxXT1yKzM7YnJlYWs7Y2FzZSAxOmc9aVsxMl0sbz1pWzEzXSxJPWlbMTRdLGM9aVsxNV0saVsxMl09YyxpWzEzXT1uKzAsaVsxNF09bisxLGlbMTVdPW4rMixpWzhdPUksaVsxMV09biszLGlbNF09byxpWzddPW4rNCxpWzBdPWcsaVsxXT1uKzcsaVsyXT1uKzYsaVszXT1uKzUsZz1hWzJdLG89YVszXSxhWzJdPW8sYVszXT1yLGFbMF09ZyxhWzFdPXIrMTticmVhaztjYXNlIDI6Zz1pWzE1XSxvPWlbMTFdLGlbMTJdPWlbM10saVsxM109biswLGlbMTRdPW4rMSxpWzE1XT1uKzIsaVs4XT1pWzddLGlbMTFdPW4rMyxpWzRdPW8saVs3XT1uKzQsaVswXT1nLGlbMV09bis3LGlbMl09bis2LGlbM109bis1LGc9YVszXSxhWzJdPWFbMV0sYVszXT1yLGFbMF09ZyxhWzFdPXIrMTticmVhaztjYXNlIDM6aVsxMl09aVswXSxpWzEzXT1uKzAsaVsxNF09bisxLGlbMTVdPW4rMixpWzhdPWlbMV0saVsxMV09biszLGlbNF09aVsyXSxpWzddPW4rNCxpWzBdPWlbM10saVsxXT1uKzcsaVsyXT1uKzYsaVszXT1uKzUsYVsyXT1hWzBdLGFbM109cixhWzBdPWFbMV0sYVsxXT1yKzF9aVs1XT1lLmxlbmd0aCxlLnB1c2goWygtNCplW2lbMF1dWzBdLWVbaVsxNV1dWzBdKzYqKGVbaVs0XV1bMF0rZVtpWzFdXVswXSktMiooZVtpWzEyXV1bMF0rZVtpWzNdXVswXSkrMyooZVtpWzEzXV1bMF0rZVtpWzddXVswXSkpLzksKC00KmVbaVswXV1bMV0tZVtpWzE1XV1bMV0rNiooZVtpWzRdXVsxXStlW2lbMV1dWzFdKS0yKihlW2lbMTJdXVsxXStlW2lbM11dWzFdKSszKihlW2lbMTNdXVsxXStlW2lbN11dWzFdKSkvOV0pLGlbNl09ZS5sZW5ndGgsZS5wdXNoKFsoLTQqZVtpWzNdXVswXS1lW2lbMTJdXVswXSs2KihlW2lbMl1dWzBdK2VbaVs3XV1bMF0pLTIqKGVbaVswXV1bMF0rZVtpWzE1XV1bMF0pKzMqKGVbaVs0XV1bMF0rZVtpWzE0XV1bMF0pKS85LCgtNCplW2lbM11dWzFdLWVbaVsxMl1dWzFdKzYqKGVbaVsyXV1bMV0rZVtpWzddXVsxXSktMiooZVtpWzBdXVsxXStlW2lbMTVdXVsxXSkrMyooZVtpWzRdXVsxXStlW2lbMTRdXVsxXSkpLzldKSxpWzldPWUubGVuZ3RoLGUucHVzaChbKC00KmVbaVsxMl1dWzBdLWVbaVszXV1bMF0rNiooZVtpWzhdXVswXStlW2lbMTNdXVswXSktMiooZVtpWzBdXVswXStlW2lbMTVdXVswXSkrMyooZVtpWzExXV1bMF0rZVtpWzFdXVswXSkpLzksKC00KmVbaVsxMl1dWzFdLWVbaVszXV1bMV0rNiooZVtpWzhdXVsxXStlW2lbMTNdXVsxXSktMiooZVtpWzBdXVsxXStlW2lbMTVdXVsxXSkrMyooZVtpWzExXV1bMV0rZVtpWzFdXVsxXSkpLzldKSxpWzEwXT1lLmxlbmd0aCxlLnB1c2goWygtNCplW2lbMTVdXVswXS1lW2lbMF1dWzBdKzYqKGVbaVsxMV1dWzBdK2VbaVsxNF1dWzBdKS0yKihlW2lbMTJdXVswXStlW2lbM11dWzBdKSszKihlW2lbMl1dWzBdK2VbaVs4XV1bMF0pKS85LCgtNCplW2lbMTVdXVsxXS1lW2lbMF1dWzFdKzYqKGVbaVsxMV1dWzFdK2VbaVsxNF1dWzFdKS0yKihlW2lbMTJdXVsxXStlW2lbM11dWzFdKSszKihlW2lbMl1dWzFdK2VbaVs4XV1bMV0pKS85XSksdGhpcy5maWd1cmVzLnB1c2goe3R5cGU6InBhdGNoIixjb29yZHM6bmV3IEludDMyQXJyYXkoaSksY29sb3JzOm5ldyBJbnQzMkFycmF5KGEpfSl9fV9kZWNvZGVUeXBlN1NoYWRpbmcoQSl7Y29uc3QgZT10aGlzLmNvb3Jkcyx0PXRoaXMuY29sb3JzLGk9bmV3IEludDMyQXJyYXkoMTYpLGE9bmV3IEludDMyQXJyYXkoNCk7Zm9yKDtBLmhhc0RhdGE7KXtjb25zdCBzPUEucmVhZEZsYWcoKTtpZighKDA8PXMmJnM8PTMpKXRocm93IG5ldyBXKCJVbmtub3duIHR5cGU3IGZsYWciKTtjb25zdCBuPWUubGVuZ3RoO2ZvcihsZXQgdD0wLGk9MCE9PXM/MTI6MTY7dDxpO3QrKyllLnB1c2goQS5yZWFkQ29vcmRpbmF0ZSgpKTtjb25zdCByPXQubGVuZ3RoO2ZvcihsZXQgZT0wLGk9MCE9PXM/Mjo0O2U8aTtlKyspdC5wdXNoKEEucmVhZENvbXBvbmVudHMoKSk7bGV0IGcsbyxJLGM7c3dpdGNoKHMpe2Nhc2UgMDppWzEyXT1uKzMsaVsxM109bis0LGlbMTRdPW4rNSxpWzE1XT1uKzYsaVs4XT1uKzIsaVs5XT1uKzEzLGlbMTBdPW4rMTQsaVsxMV09bis3LGlbNF09bisxLGlbNV09bisxMixpWzZdPW4rMTUsaVs3XT1uKzgsaVswXT1uLGlbMV09bisxMSxpWzJdPW4rMTAsaVszXT1uKzksYVsyXT1yKzEsYVszXT1yKzIsYVswXT1yLGFbMV09ciszO2JyZWFrO2Nhc2UgMTpnPWlbMTJdLG89aVsxM10sST1pWzE0XSxjPWlbMTVdLGlbMTJdPWMsaVsxM109biswLGlbMTRdPW4rMSxpWzE1XT1uKzIsaVs4XT1JLGlbOV09bis5LGlbMTBdPW4rMTAsaVsxMV09biszLGlbNF09byxpWzVdPW4rOCxpWzZdPW4rMTEsaVs3XT1uKzQsaVswXT1nLGlbMV09bis3LGlbMl09bis2LGlbM109bis1LGc9YVsyXSxvPWFbM10sYVsyXT1vLGFbM109cixhWzBdPWcsYVsxXT1yKzE7YnJlYWs7Y2FzZSAyOmc9aVsxNV0sbz1pWzExXSxpWzEyXT1pWzNdLGlbMTNdPW4rMCxpWzE0XT1uKzEsaVsxNV09bisyLGlbOF09aVs3XSxpWzldPW4rOSxpWzEwXT1uKzEwLGlbMTFdPW4rMyxpWzRdPW8saVs1XT1uKzgsaVs2XT1uKzExLGlbN109bis0LGlbMF09ZyxpWzFdPW4rNyxpWzJdPW4rNixpWzNdPW4rNSxnPWFbM10sYVsyXT1hWzFdLGFbM109cixhWzBdPWcsYVsxXT1yKzE7YnJlYWs7Y2FzZSAzOmlbMTJdPWlbMF0saVsxM109biswLGlbMTRdPW4rMSxpWzE1XT1uKzIsaVs4XT1pWzFdLGlbOV09bis5LGlbMTBdPW4rMTAsaVsxMV09biszLGlbNF09aVsyXSxpWzVdPW4rOCxpWzZdPW4rMTEsaVs3XT1uKzQsaVswXT1pWzNdLGlbMV09bis3LGlbMl09bis2LGlbM109bis1LGFbMl09YVswXSxhWzNdPXIsYVswXT1hWzFdLGFbMV09cisxfXRoaXMuZmlndXJlcy5wdXNoKHt0eXBlOiJwYXRjaCIsY29vcmRzOm5ldyBJbnQzMkFycmF5KGkpLGNvbG9yczpuZXcgSW50MzJBcnJheShhKX0pfX1fYnVpbGRGaWd1cmVGcm9tUGF0Y2goQSl7Y29uc3QgZT10aGlzLmZpZ3VyZXNbQV07TCgicGF0Y2giPT09ZS50eXBlLCJVbmV4cGVjdGVkIHBhdGNoIG1lc2ggZmlndXJlIik7Y29uc3QgdD10aGlzLmNvb3JkcyxpPXRoaXMuY29sb3JzLGE9ZS5jb29yZHMscz1lLmNvbG9ycyxuPU1hdGgubWluKHRbYVswXV1bMF0sdFthWzNdXVswXSx0W2FbMTJdXVswXSx0W2FbMTVdXVswXSkscj1NYXRoLm1pbih0W2FbMF1dWzFdLHRbYVszXV1bMV0sdFthWzEyXV1bMV0sdFthWzE1XV1bMV0pLGc9TWF0aC5tYXgodFthWzBdXVswXSx0W2FbM11dWzBdLHRbYVsxMl1dWzBdLHRbYVsxNV1dWzBdKSxvPU1hdGgubWF4KHRbYVswXV1bMV0sdFthWzNdXVsxXSx0W2FbMTJdXVsxXSx0W2FbMTVdXVsxXSk7bGV0IEk9TWF0aC5jZWlsKChnLW4pKm5uLlRSSUFOR0xFX0RFTlNJVFkvKHRoaXMuYm91bmRzWzJdLXRoaXMuYm91bmRzWzBdKSk7ST1NYXRoLm1heChubi5NSU5fU1BMSVRfUEFUQ0hfQ0hVTktTX0FNT1VOVCxNYXRoLm1pbihubi5NQVhfU1BMSVRfUEFUQ0hfQ0hVTktTX0FNT1VOVCxJKSk7bGV0IGM9TWF0aC5jZWlsKChvLXIpKm5uLlRSSUFOR0xFX0RFTlNJVFkvKHRoaXMuYm91bmRzWzNdLXRoaXMuYm91bmRzWzFdKSk7Yz1NYXRoLm1heChubi5NSU5fU1BMSVRfUEFUQ0hfQ0hVTktTX0FNT1VOVCxNYXRoLm1pbihubi5NQVhfU1BMSVRfUEFUQ0hfQ0hVTktTX0FNT1VOVCxjKSk7Y29uc3QgaD1JKzEsQz1uZXcgSW50MzJBcnJheSgoYysxKSpoKSxCPW5ldyBJbnQzMkFycmF5KChjKzEpKmgpO2xldCBsPTA7Y29uc3QgUT1uZXcgVWludDhBcnJheSgzKSxFPW5ldyBVaW50OEFycmF5KDMpLHU9aVtzWzBdXSxkPWlbc1sxXV0sZj1pW3NbMl1dLHA9aVtzWzNdXSxtPXNuKGMpLHk9c24oSSk7Zm9yKGxldCBBPTA7QTw9YztBKyspe1FbMF09KHVbMF0qKGMtQSkrZlswXSpBKS9jfDAsUVsxXT0odVsxXSooYy1BKStmWzFdKkEpL2N8MCxRWzJdPSh1WzJdKihjLUEpK2ZbMl0qQSkvY3wwLEVbMF09KGRbMF0qKGMtQSkrcFswXSpBKS9jfDAsRVsxXT0oZFsxXSooYy1BKStwWzFdKkEpL2N8MCxFWzJdPShkWzJdKihjLUEpK3BbMl0qQSkvY3wwO2ZvcihsZXQgZT0wO2U8PUk7ZSsrLGwrKyl7aWYoISgwIT09QSYmQSE9PWN8fDAhPT1lJiZlIT09SSkpY29udGludWU7bGV0IHM9MCxuPTAscj0wO2ZvcihsZXQgaT0wO2k8PTM7aSsrKWZvcihsZXQgZz0wO2c8PTM7ZysrLHIrKyl7Y29uc3Qgbz1tW0FdW2ldKnlbZV1bZ107cys9dFthW3JdXVswXSpvLG4rPXRbYVtyXV1bMV0qb31DW2xdPXQubGVuZ3RoLHQucHVzaChbcyxuXSksQltsXT1pLmxlbmd0aDtjb25zdCBnPW5ldyBVaW50OEFycmF5KDMpO2dbMF09KFFbMF0qKEktZSkrRVswXSplKS9JfDAsZ1sxXT0oUVsxXSooSS1lKStFWzFdKmUpL0l8MCxnWzJdPShRWzJdKihJLWUpK0VbMl0qZSkvSXwwLGkucHVzaChnKX19Q1swXT1hWzBdLEJbMF09c1swXSxDW0ldPWFbM10sQltJXT1zWzFdLENbaCpjXT1hWzEyXSxCW2gqY109c1syXSxDW2gqYytJXT1hWzE1XSxCW2gqYytJXT1zWzNdLHRoaXMuZmlndXJlc1tBXT17dHlwZToibGF0dGljZSIsY29vcmRzOkMsY29sb3JzOkIsdmVydGljZXNQZXJSb3c6aH19X3VwZGF0ZUJvdW5kcygpe2xldCBBPXRoaXMuY29vcmRzWzBdWzBdLGU9dGhpcy5jb29yZHNbMF1bMV0sdD1BLGk9ZTtmb3IobGV0IGE9MSxzPXRoaXMuY29vcmRzLmxlbmd0aDthPHM7YSsrKXtjb25zdCBzPXRoaXMuY29vcmRzW2FdWzBdLG49dGhpcy5jb29yZHNbYV1bMV07QT1BPnM/czpBLGU9ZT5uP246ZSx0PXQ8cz9zOnQsaT1pPG4/bjppfXRoaXMuYm91bmRzPVtBLGUsdCxpXX1fcGFja0RhdGEoKXtsZXQgQSxlLHQsaTtjb25zdCBhPXRoaXMuY29vcmRzLHM9bmV3IEZsb2F0MzJBcnJheSgyKmEubGVuZ3RoKTtmb3IoQT0wLHQ9MCxlPWEubGVuZ3RoO0E8ZTtBKyspe2NvbnN0IGU9YVtBXTtzW3QrK109ZVswXSxzW3QrK109ZVsxXX10aGlzLmNvb3Jkcz1zO2NvbnN0IG49dGhpcy5jb2xvcnMscj1uZXcgVWludDhBcnJheSgzKm4ubGVuZ3RoKTtmb3IoQT0wLHQ9MCxlPW4ubGVuZ3RoO0E8ZTtBKyspe2NvbnN0IGU9bltBXTtyW3QrK109ZVswXSxyW3QrK109ZVsxXSxyW3QrK109ZVsyXX10aGlzLmNvbG9ycz1yO2NvbnN0IGc9dGhpcy5maWd1cmVzO2ZvcihBPTAsZT1nLmxlbmd0aDtBPGU7QSsrKXtjb25zdCBlPWdbQV0sYT1lLmNvb3JkcyxzPWUuY29sb3JzO2Zvcih0PTAsaT1hLmxlbmd0aDt0PGk7dCsrKWFbdF0qPTIsc1t0XSo9M319Z2V0SVIoKXtjb25zdHtib3VuZHM6QX09dGhpcztpZihBWzJdLUFbMF09PTB8fEFbM10tQVsxXT09MCl0aHJvdyBuZXcgVyhgSW52YWxpZCBNZXNoU2hhZGluZyBib3VuZHM6IFske0F9XS5gKTtyZXR1cm5bIk1lc2giLHRoaXMuc2hhZGluZ1R5cGUsdGhpcy5jb29yZHMsdGhpcy5jb2xvcnMsdGhpcy5maWd1cmVzLEEsdGhpcy5iYm94LHRoaXMuYmFja2dyb3VuZF19fWNsYXNzIHJuIGV4dGVuZHMgQW57Z2V0SVIoKXtyZXR1cm5bIkR1bW15Il19fWZ1bmN0aW9uIGduKEEsZSx0KXtjb25zdCBpPUtBKGUuZ2V0QXJyYXkoIk1hdHJpeCIpLHMpLGE9VEEoZS5nZXRBcnJheSgiQkJveCIpLG51bGwpO2lmKCFhfHxhWzJdLWFbMF09PTB8fGFbM10tYVsxXT09MCl0aHJvdyBuZXcgVygiSW52YWxpZCBnZXRUaWxpbmdQYXR0ZXJuSVIgL0JCb3ggYXJyYXkuIik7Y29uc3Qgbj1lLmdldCgiWFN0ZXAiKTtpZigibnVtYmVyIiE9dHlwZW9mIG4pdGhyb3cgbmV3IFcoIkludmFsaWQgZ2V0VGlsaW5nUGF0dGVybklSIC9YU3RlcCB2YWx1ZS4iKTtjb25zdCByPWUuZ2V0KCJZU3RlcCIpO2lmKCJudW1iZXIiIT10eXBlb2Ygcil0aHJvdyBuZXcgVygiSW52YWxpZCBnZXRUaWxpbmdQYXR0ZXJuSVIgL1lTdGVwIHZhbHVlLiIpO2NvbnN0IGc9ZS5nZXQoIlBhaW50VHlwZSIpO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKGcpKXRocm93IG5ldyBXKCJJbnZhbGlkIGdldFRpbGluZ1BhdHRlcm5JUiAvUGFpbnRUeXBlIHZhbHVlLiIpO2NvbnN0IG89ZS5nZXQoIlRpbGluZ1R5cGUiKTtpZighTnVtYmVyLmlzSW50ZWdlcihvKSl0aHJvdyBuZXcgVygiSW52YWxpZCBnZXRUaWxpbmdQYXR0ZXJuSVIgL1RpbGluZ1R5cGUgdmFsdWUuIik7cmV0dXJuWyJUaWxpbmdQYXR0ZXJuIix0LEEsaSxhLG4scixnLG9dfWNvbnN0IG9uPVsxLjM4NzcsMSwxLDEsLjk3ODAxLC45MjQ4MiwuODk1NTIsLjkxMTMzLC44MTk4OCwuOTc1NjYsLjk4MTUyLC45MzU0OCwuOTM1NDgsMS4yNzk4LC44NTI4NCwuOTI3OTQsMSwuOTYxMzQsMS41NDY1NywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjgyODQ1LC44Mjg0NSwuODUyODQsLjg1Mjg0LC44NTI4NCwuNzU4NTksLjkyMTM4LC44MzkwOCwuNzc2MiwuNzMyOTMsLjg3Mjg5LC43MzEzMywuNzUxNCwuODE5MjEsLjg3MzU2LC45NTk1OCwuNTk1MjYsLjc1NzI3LC42OTIyNSwxLjA0OTI0LC45MTIxLC44Njk0MywuNzk3OTUsLjg4MTk4LC43Nzk1OCwuNzA4NjQsLjgxMDU1LC45MDM5OSwuODg2NTMsLjk2MDE3LC44MjU3NywuNzc4OTIsLjc4MjU3LC45NzUwNywxLjU0NjU3LC45NzUwNywuODUyODQsLjg5NTUyLC45MDE3NiwuODg3NjIsLjg3ODUsLjc1MjQxLC44Nzg1LC45MDUxOCwuOTUwMTUsLjc3NjE4LC44Nzg1LC44ODQwMSwuOTE5MTYsLjg2MzA0LC44ODQwMSwuOTE0ODgsLjg3ODUsLjg4MDEsLjg3ODUsLjg3ODUsLjkxMzQzLC43MTczLDEuMDQxMDYsLjg3ODUsLjg1MDc1LC45NTc5NCwuODI2MTYsLjg1MTYyLC43OTQ5MiwuODgzMzEsMS42OTgwOCwuODgzMzEsLjg1Mjg0LC45NzgwMSwuODk1NTIsLjkxMTMzLC44OTU1MiwuOTExMzMsMS43ODAxLC44OTU1MiwxLjI0NDg3LDEuMTMyNTQsMS4xMjQwMSwuOTY4MzksLjg1Mjg0LC42ODc4NywuNzA2NDUsLjg1NTkyLC45MDc0NywxLjAxNDY2LDEuMDA4OCwuOTAzMjMsMSwxLjA3NDYzLDEsLjkxMDU2LC43NTgwNiwxLjE5MTE4LC45NjgzOSwuNzg4NjQsLjgyODQ1LC44NDEzMywuNzU4NTksLjgzOTA4LC44MzkwOCwuODM5MDgsLjgzOTA4LC44MzkwOCwuODM5MDgsLjc3NTM5LC43MzI5MywuNzMxMzMsLjczMTMzLC43MzEzMywuNzMxMzMsLjk1OTU4LC45NTk1OCwuOTU5NTgsLjk1OTU4LC44ODUwNiwuOTEyMSwuODY5NDMsLjg2OTQzLC44Njk0MywuODY5NDMsLjg2OTQzLC44NTI4NCwuODc1MDgsLjkwMzk5LC45MDM5OSwuOTAzOTksLjkwMzk5LC43Nzg5MiwuNzk3OTUsLjkwODA3LC44ODc2MiwuODg3NjIsLjg4NzYyLC44ODc2MiwuODg3NjIsLjg4NzYyLC44NzE1LC43NTI0MSwuOTA1MTgsLjkwNTE4LC45MDUxOCwuOTA1MTgsLjg4NDAxLC44ODQwMSwuODg0MDEsLjg4NDAxLC44Nzg1LC44Nzg1LC44ODAxLC44ODAxLC44ODAxLC44ODAxLC44ODAxLC45MDc0NywuODkwNDksLjg3ODUsLjg3ODUsLjg3ODUsLjg3ODUsLjg1MTYyLC44Nzg1LC44NTE2MiwuODM5MDgsLjg4NzYyLC44MzkwOCwuODg3NjIsLjgzOTA4LC44ODc2MiwuNzMyOTMsLjc1MjQxLC43MzI5MywuNzUyNDEsLjczMjkzLC43NTI0MSwuNzMyOTMsLjc1MjQxLC44NzI4OSwuODMwMTYsLjg4NTA2LC45MzEyNSwuNzMxMzMsLjkwNTE4LC43MzEzMywuOTA1MTgsLjczMTMzLC45MDUxOCwuNzMxMzMsLjkwNTE4LC43MzEzMywuOTA1MTgsLjgxOTIxLC43NzYxOCwuODE5MjEsLjc3NjE4LC44MTkyMSwuNzc2MTgsMSwxLC44NzM1NiwuODc4NSwuOTEwNzUsLjg5NjA4LC45NTk1OCwuODg0MDEsLjk1OTU4LC44ODQwMSwuOTU5NTgsLjg4NDAxLC45NTk1OCwuODg0MDEsLjk1OTU4LC44ODQwMSwuNzYyMjksLjkwMTY3LC41OTUyNiwuOTE5MTYsMSwxLC44NjMwNCwuNjkyMjUsLjg4NDAxLDEsMSwuNzA0MjQsLjc5NDY4LC45MTkyNiwuODgxNzUsLjcwODIzLC45NDkwMywuOTEyMSwuODc4NSwxLDEsLjkxMjEsLjg3ODUsLjg3ODAyLC44ODY1NiwuODc4NSwuODY5NDMsLjg4MDEsLjg2OTQzLC44ODAxLC44Njk0MywuODgwMSwuODc0MDIsLjg5MjkxLC43Nzk1OCwuOTEzNDMsMSwxLC43Nzk1OCwuOTEzNDMsLjcwODY0LC43MTczLC43MDg2NCwuNzE3MywuNzA4NjQsLjcxNzMsLjcwODY0LC43MTczLDEsMSwuODEwNTUsLjc1ODQxLC44MTA1NSwxLjA2NDUyLC45MDM5OSwuODc4NSwuOTAzOTksLjg3ODUsLjkwMzk5LC44Nzg1LC45MDM5OSwuODc4NSwuOTAzOTksLjg3ODUsLjkwMzk5LC44Nzg1LC45NjAxNywuOTU3OTQsLjc3ODkyLC44NTE2MiwuNzc4OTIsLjc4MjU3LC43OTQ5MiwuNzgyNTcsLjc5NDkyLC43ODI1NywuNzk0OTIsLjkyOTcsLjU2ODkyLC44MzkwOCwuODg3NjIsLjc3NTM5LC44NzE1LC44NzUwOCwuODkwNDksMSwxLC44MTA1NSwxLjA0MTA2LDEuMjA1MjgsMS4yMDUyOCwxLDEuMTU1NDMsLjcwNjc0LC45ODM4NywuOTQ3MjEsMS4zMzQzMSwxLjQ1ODk0LC45NTE2MSwxLjA2MzAzLC44MzkwOCwuODAzNTIsLjU3MTg0LC42OTY1LC41NjI4OSwuODIwMDEsLjU2MDI5LC44MTIzNSwxLjAyOTg4LC44MzkwOCwuNzc2MiwuNjgxNTYsLjgwMzY3LC43MzEzMywuNzgyNTcsLjg3MzU2LC44Njk0MywuOTU5NTgsLjc1NzI3LC44OTAxOSwxLjA0OTI0LC45MTIxLC43NjQ4LC44Njk0MywuODczNTYsLjc5Nzk1LC43ODI3NSwuODEwNTUsLjc3ODkyLC45NzYyLC44MjU3NywuOTk4MTksLjg0ODk2LC45NTk1OCwuNzc4OTIsLjk2MTA4LDEuMDE0MDcsLjg5MDQ5LDEuMDI5ODgsLjk0MjExLC45NjEwOCwuODkzNiwuODQwMjEsLjg3ODQyLC45NjM5OSwuNzkxMDksLjg5MDQ5LDEuMDA4MTMsMS4wMjk4OCwuODYwNzcsLjg3NDQ1LC45MjA5OSwuODQ3MjMsLjg2NTEzLC44ODAxLC43NTYzOCwuODU3MTQsLjc4MjE2LC43OTU4NiwuODc5NjUsLjk0MjExLC45Nzc0NywuNzgyODcsLjk3OTI2LC44NDk3MSwxLjAyOTg4LC45NDIxMSwuODgwMSwuOTQyMTEsLjg0OTcxLC43MzEzMywxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTAyNjQsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjkwNTE4LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45MDU0OCwxLDEsMSwxLDEsMSwuOTYwMTcsLjk1Nzk0LC45NjAxNywuOTU3OTQsLjk2MDE3LC45NTc5NCwuNzc4OTIsLjg1MTYyLDEsMSwuODk1NTIsLjkwNTI3LDEsLjkwMzYzLC45Mjc5NCwuOTI3OTQsLjkyNzk0LC45Mjc5NCwuODcwMTIsLjg3MDEyLC44NzAxMiwuODk1NTIsLjg5NTUyLDEuNDIyNTksLjcxMTQzLDEuMDYxNTIsMSwxLDEuMDMzNzIsMS4wMzM3MiwuOTcxNzEsMS40OTU2LDIuMjgwNywuOTM4MzUsLjgzNDA2LC45MTEzMywuODQxMDcsLjkxMTMzLDEsMSwxLC43MjAyMSwxLDEuMjMxMDgsLjgzNDg5LC44ODUyNSwuODg1MjUsLjgxNDk5LC45MDUyNywxLjgxMDU1LC45MDUyNywxLjgxMDU1LDEuMzEwMDYsMS41MzcxMSwuOTQ0MzQsMS4wODY5NiwxLC45NTAxOCwuNzcxOTIsLjg1Mjg0LC45MDc0NywxLjE3NTM0LC42OTgyNSwuOTcxNiwxLjM3MDc3LC45MDc0NywuOTA3NDcsLjg1MzU2LC45MDc0NywuOTA3NDcsMS40NDk0NywuODUyODQsLjg5NDEsLjg5NDEsLjcwNTcyLC44LC43MDU3MiwuNzA1NzIsLjcwNTcyLC43MDU3MiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjk5ODYyLC45OTg2MiwxLDEsMSwxLDEsMS4wODAwNCwuOTEwMjcsMSwxLDEsLjk5ODYyLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45MDcyNywuOTA3MjcsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLEluPXtsaW5lSGVpZ2h0OjEuMjIwNyxsaW5lR2FwOi4yMjA3fSxjbj1bMS4zODc3LDEsMSwxLC45NzgwMSwuOTI0ODIsLjg5NTUyLC45MTEzMywuODE5ODgsLjk3NTY2LC45ODE1MiwuOTM1NDgsLjkzNTQ4LDEuMjc5OCwuODUyODQsLjkyNzk0LDEsLjk2MTM0LDEuNTYyMzksLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC44Mjg0NSwuODI4NDUsLjg1Mjg0LC44NTI4NCwuODUyODQsLjc1ODU5LC45MjEzOCwuODM5MDgsLjc3NjIsLjcxODA1LC44NzI4OSwuNzMxMzMsLjc1MTQsLjgxOTIxLC44NzM1NiwuOTU5NTgsLjU5NTI2LC43NTcyNywuNjkyMjUsMS4wNDkyNCwuOTA4NzIsLjg1OTM4LC43OTc5NSwuODcwNjgsLjc3OTU4LC42OTc2NiwuODEwNTUsLjkwMzk5LC44ODY1MywuOTYwNjgsLjgyNTc3LC43Nzg5MiwuNzgyNTcsLjk3NTA3LDEuNTI5LC45NzUwNywuODUyODQsLjg5NTUyLC45MDE3NiwuOTQ5MDgsLjg2NDExLC43NDAxMiwuODY0MTEsLjg4MzIzLC45NTAxNSwuODY0MTEsLjg2MzMxLC44ODQwMSwuOTE5MTYsLjg2MzA0LC44ODQwMSwuOTAzOSwuODYzMzEsLjg2MzMxLC44NjQxMSwuODY0MTEsLjkwNDY0LC43MDg1MiwxLjA0MTA2LC44NjMzMSwuODQzNzIsLjk1Nzk0LC44MjYxNiwuODQ1NDgsLjc5NDkyLC44ODMzMSwxLjY5ODA4LC44ODMzMSwuODUyODQsLjk3ODAxLC44OTU1MiwuOTExMzMsLjg5NTUyLC45MTEzMywxLjc4MDEsLjg5NTUyLDEuMjQ0ODcsMS4xMzI1NCwxLjE5MTI5LC45NjgzOSwuODUyODQsLjY4Nzg3LC43MDY0NSwuODU1OTIsLjkwNzQ3LDEuMDE0NjYsMS4wMDg4LC45MDMyMywxLDEuMDc0NjMsMSwuOTEwNTYsLjc1ODA2LDEuMTkxMTgsLjk2ODM5LC43ODg2NCwuODI4NDUsLjg0MTMzLC43NTg1OSwuODM5MDgsLjgzOTA4LC44MzkwOCwuODM5MDgsLjgzOTA4LC44MzkwOCwuNzc1MzksLjcxODA1LC43MzEzMywuNzMxMzMsLjczMTMzLC43MzEzMywuOTU5NTgsLjk1OTU4LC45NTk1OCwuOTU5NTgsLjg4NTA2LC45MDg3MiwuODU5MzgsLjg1OTM4LC44NTkzOCwuODU5MzgsLjg1OTM4LC44NTI4NCwuODcwNjgsLjkwMzk5LC45MDM5OSwuOTAzOTksLjkwMzk5LC43Nzg5MiwuNzk3OTUsLjkwODA3LC45NDkwOCwuOTQ5MDgsLjk0OTA4LC45NDkwOCwuOTQ5MDgsLjk0OTA4LC44NTg4NywuNzQwMTIsLjg4MzIzLC44ODMyMywuODgzMjMsLjg4MzIzLC44ODQwMSwuODg0MDEsLjg4NDAxLC44ODQwMSwuODc4NSwuODYzMzEsLjg2MzMxLC44NjMzMSwuODYzMzEsLjg2MzMxLC44NjMzMSwuOTA3NDcsLjg5MDQ5LC44NjMzMSwuODYzMzEsLjg2MzMxLC44NjMzMSwuODQ1NDgsLjg2NDExLC44NDU0OCwuODM5MDgsLjk0OTA4LC44MzkwOCwuOTQ5MDgsLjgzOTA4LC45NDkwOCwuNzE4MDUsLjc0MDEyLC43MTgwNSwuNzQwMTIsLjcxODA1LC43NDAxMiwuNzE4MDUsLjc0MDEyLC44NzI4OSwuNzk1MzgsLjg4NTA2LC45MjcyNiwuNzMxMzMsLjg4MzIzLC43MzEzMywuODgzMjMsLjczMTMzLC44ODMyMywuNzMxMzMsLjg4MzIzLC43MzEzMywuODgzMjMsLjgxOTIxLC44NjQxMSwuODE5MjEsLjg2NDExLC44MTkyMSwuODY0MTEsMSwxLC44NzM1NiwuODYzMzEsLjkxMDc1LC44Nzc3LC45NTk1OCwuODg0MDEsLjk1OTU4LC44ODQwMSwuOTU5NTgsLjg4NDAxLC45NTk1OCwuODg0MDEsLjk1OTU4LC44ODQwMSwuNzY0NjcsLjkwMTY3LC41OTUyNiwuOTE5MTYsMSwxLC44NjMwNCwuNjkyMjUsLjg4NDAxLDEsMSwuNzA0MjQsLjc3MzEyLC45MTkyNiwuODgxNzUsLjcwODIzLC45NDkwMywuOTA4NzIsLjg2MzMxLDEsMSwuOTA4NzIsLjg2MzMxLC44NjkwNiwuODgxMTYsLjg2MzMxLC44NTkzOCwuODYzMzEsLjg1OTM4LC44NjMzMSwuODU5MzgsLjg2MzMxLC44NzQwMiwuODY1NDksLjc3OTU4LC45MDQ2NCwxLDEsLjc3OTU4LC45MDQ2NCwuNjk3NjYsLjcwODUyLC42OTc2NiwuNzA4NTIsLjY5NzY2LC43MDg1MiwuNjk3NjYsLjcwODUyLDEsMSwuODEwNTUsLjc1ODQxLC44MTA1NSwxLjA2NDUyLC45MDM5OSwuODYzMzEsLjkwMzk5LC44NjMzMSwuOTAzOTksLjg2MzMxLC45MDM5OSwuODYzMzEsLjkwMzk5LC44NjMzMSwuOTAzOTksLjg2MzMxLC45NjA2OCwuOTU3OTQsLjc3ODkyLC44NDU0OCwuNzc4OTIsLjc4MjU3LC43OTQ5MiwuNzgyNTcsLjc5NDkyLC43ODI1NywuNzk0OTIsLjkyOTcsLjU2ODkyLC44MzkwOCwuOTQ5MDgsLjc3NTM5LC44NTg4NywuODcwNjgsLjg5MDQ5LDEsMSwuODEwNTUsMS4wNDEwNiwxLjIwNTI4LDEuMjA1MjgsMSwxLjE1NTQzLC43MDA4OCwuOTgzODcsLjk0NzIxLDEuMzM0MzEsMS40NTg5NCwuOTUxNjEsMS40ODM4NywuODM5MDgsLjgwMzUyLC41NzExOCwuNjk2NSwuNTYzNDcsLjc5MTc5LC41NTg1MywuODAzNDYsMS4wMjk4OCwuODM5MDgsLjc3NjIsLjY3MTc0LC44NjAzNiwuNzMxMzMsLjc4MjU3LC44NzM1NiwuODY0NDEsLjk1OTU4LC43NTcyNywuODkwMTksMS4wNDkyNCwuOTA4NzIsLjc0ODg5LC44NTkzOCwuODc4OTEsLjc5Nzk1LC43OTU3LC44MTA1NSwuNzc4OTIsLjk3NDQ3LC44MjU3NywuOTc0NjYsLjg3MTc5LC45NTk1OCwuNzc4OTIsLjk0MjUyLC45NTYxMiwuODc1MywxLjAyOTg4LC45MjczMywuOTQyNTIsLjg3NDExLC44NDAyMSwuODcyOCwuOTU2MTIsLjc0MDgxLC44NzUzLDEuMDIxODksMS4wMjk4OCwuODQ4MTQsLjg3NDQ1LC45MTgyMiwuODQ3MjMsLjg1NjY4LC44NjMzMSwuODEzNDQsLjg3NTgxLC43NjQyMiwuODIwNDYsLjk2MDU3LC45MjczMywuOTkzNzUsLjc4MDIyLC45NTQ1MiwuODYwMTUsMS4wMjk4OCwuOTI3MzMsLjg2MzMxLC45MjczMywuODYwMTUsLjczMTMzLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45MDYzMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuODgzMjMsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjg1MTc0LDEsMSwxLDEsMSwxLC45NjA2OCwuOTU3OTQsLjk2MDY4LC45NTc5NCwuOTYwNjgsLjk1Nzk0LC43Nzg5MiwuODQ1NDgsMSwxLC44OTU1MiwuOTA1MjcsMSwuOTAzNjMsLjkyNzk0LC45Mjc5NCwuOTI3OTQsLjg5ODA3LC44NzAxMiwuODcwMTIsLjg3MDEyLC44OTU1MiwuODk1NTIsMS40MjI1OSwuNzEwOTQsMS4wNjE1MiwxLDEsMS4wMzM3MiwxLjAzMzcyLC45NzE3MSwxLjQ5NTYsMi4yODA3LC45Mjk3MiwuODM0MDYsLjkxMTMzLC44MzMyNiwuOTExMzMsMSwxLDEsLjcyMDIxLDEsMS4yMzEwOCwuODM0ODksLjg4NTI1LC44ODUyNSwuODE0OTksLjkwNjE2LDEuODEwNTUsLjkwNTI3LDEuODEwNTUsMS4zMTA3LDEuNTM3MTEsLjk0NDM0LDEuMDg2OTYsMSwuOTUwMTgsLjc3MTkyLC44NTI4NCwuOTA3NDcsMS4xNzUzNCwuNjk4MjUsLjk3MTYsMS4zNzA3NywuOTA3NDcsLjkwNzQ3LC44NTM1NiwuOTA3NDcsLjkwNzQ3LDEuNDQ5NDcsLjg1Mjg0LC44OTQxLC44OTQxLC43MDU3MiwuOCwuNzA1NzIsLjcwNTcyLC43MDU3MiwuNzA1NzIsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45OTg2MiwuOTk4NjIsMSwxLDEsMSwxLDEuMDgwMDQsLjkxMDI3LDEsMSwxLC45OTg2MiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTA3MjcsLjkwNzI3LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSxobj17bGluZUhlaWdodDoxLjIyMDcsbGluZUdhcDouMjIwN30sQ249WzEuMzg3NywxLDEsMSwxLjE3MjIzLDEuMTI5MywuODk1NTIsLjkxMTMzLC44MDM5NSwxLjAyMjY5LDEuMTU2MDEsLjkxMDU2LC45MTA1NiwxLjI3OTgsLjg1Mjg0LC44OTgwNywxLC45MDg2MSwxLjM5NTQzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTYzMDksLjk2MzA5LC44NTI4NCwuODUyODQsLjg1Mjg0LC44MzMxOSwuODgwNzEsLjg2NzUsLjgxNTUyLC43MjM0NiwuODUxOTMsLjczMjA2LC43NTIyLC44MTEwNSwuODYyNzUsLjkwNjg1LC42Mzc3LC43Nzg5MiwuNzU1OTMsMS4wMjYzOCwuODkyNDksLjg0MTE4LC43NzQ1MiwuODUzNzQsLjc1MTg2LC42Nzc4OSwuNzk3NzYsLjg4ODQ0LC44NTA2NiwuOTQzMDksLjc3ODE4LC43MzA2LC43NjY1OSwxLjEwMzY5LDEuMzgzMTMsMS4xMDM2OSwxLjA2MTM5LC44OTU1MiwuODczOSwuOTI0NSwuOTI0NSwuODMyMDMsLjkyNDUsLjg1ODY1LDEuMDk4NDIsLjkyNDUsLjkyNDUsMS4wMzI5NywxLjA3NjkyLC45MDkxOCwxLjAzMjk3LC45NDk1OSwuOTI0NSwuOTIyNzQsLjkyNDUsLjkyNDUsMS4wMjkzMywuNzc4MzIsMS4yMDU2MiwuOTI0NSwuODkxNiwuOTg5ODYsLjg2NjIxLC44OTQ1MywuNzkwMDQsLjk0MTUyLDEuNzcyNTYsLjk0MTUyLC44NTI4NCwuOTc4MDEsLjg5NTUyLC45MTEzMywuODk1NTIsLjkxMTMzLDEuOTE3MjksLjg5NTUyLDEuMTc4ODksMS4xMzI1NCwxLjE2MzU5LC45MjA5OCwuODUyODQsLjY4Nzg3LC43MTM1MywuODQ3MzcsLjkwNzQ3LDEuMDA4OCwxLjAwNDQsLjg3NjgzLDEsMS4wOTA5MSwxLC45MjIyOSwuNzM5LDEuMTU2NDIsLjkyMDk4LC43NjI4OCwuODA1MDQsLjgwOTcyLC43NTg1OSwuODY3NSwuODY3NSwuODY3NSwuODY3NSwuODY3NSwuODY3NSwuNzYzMTgsLjcyMzQ2LC43MzIwNiwuNzMyMDYsLjczMjA2LC43MzIwNiwuOTA2ODUsLjkwNjg1LC45MDY4NSwuOTA2ODUsLjg2NDc3LC44OTI0OSwuODQxMTgsLjg0MTE4LC44NDExOCwuODQxMTgsLjg0MTE4LC44NTI4NCwuODQ1NTcsLjg4ODQ0LC44ODg0NCwuODg4NDQsLjg4ODQ0LC43MzA2LC43NzQ1MiwuODYzMzEsLjkyNDUsLjkyNDUsLjkyNDUsLjkyNDUsLjkyNDUsLjkyNDUsLjg0ODQzLC44MzIwMywuODU4NjUsLjg1ODY1LC44NTg2NSwuODU4NjUsLjgyNjAxLC44MjYwMSwuODI2MDEsLjgyNjAxLC45NDQ2OSwuOTI0NSwuOTIyNzQsLjkyMjc0LC45MjI3NCwuOTIyNzQsLjkyMjc0LC45MDc0NywuODY2NTEsLjkyNDUsLjkyNDUsLjkyNDUsLjkyNDUsLjg5NDUzLC45MjQ1LC44OTQ1MywuODY3NSwuOTI0NSwuODY3NSwuOTI0NSwuODY3NSwuOTI0NSwuNzIzNDYsLjgzMjAzLC43MjM0NiwuODMyMDMsLjcyMzQ2LC44MzIwMywuNzIzNDYsLjgzMjAzLC44NTE5MywuODg3NSwuODY0NzcsLjk5MDM0LC43MzIwNiwuODU4NjUsLjczMjA2LC44NTg2NSwuNzMyMDYsLjg1ODY1LC43MzIwNiwuODU4NjUsLjczMjA2LC44NTg2NSwuODExMDUsLjkyNDUsLjgxMTA1LC45MjQ1LC44MTEwNSwuOTI0NSwxLDEsLjg2Mjc1LC45MjQ1LC45MDg3MiwuOTM1OTEsLjkwNjg1LC44MjYwMSwuOTA2ODUsLjgyNjAxLC45MDY4NSwuODI2MDEsLjkwNjg1LDEuMDMyOTcsLjkwNjg1LC44MjYwMSwuNzc4OTYsMS4wNTYxMSwuNjM3NywxLjA3NjkyLDEsMSwuOTA5MTgsLjc1NTkzLDEuMDMyOTcsMSwxLC43NjAzMiwuOTM3NSwuOTgxNTYsLjkzNDA3LC43NzI2MSwxLjExNDI5LC44OTI0OSwuOTI0NSwxLDEsLjg5MjQ5LC45MjQ1LC45MjUzNCwuODY2OTgsLjkyNDUsLjg0MTE4LC45MjI3NCwuODQxMTgsLjkyMjc0LC44NDExOCwuOTIyNzQsLjg2NjcsLjg2MjkxLC43NTE4NiwxLjAyOTMzLDEsMSwuNzUxODYsMS4wMjkzMywuNjc3ODksLjc3ODMyLC42Nzc4OSwuNzc4MzIsLjY3Nzg5LC43NzgzMiwuNjc3ODksLjc3ODMyLDEsMSwuNzk3NzYsLjk3NjU1LC43OTc3NiwxLjIzMDIzLC44ODg0NCwuOTI0NSwuODg4NDQsLjkyNDUsLjg4ODQ0LC45MjQ1LC44ODg0NCwuOTI0NSwuODg4NDQsLjkyNDUsLjg4ODQ0LC45MjQ1LC45NDMwOSwuOTg5ODYsLjczMDYsLjg5NDUzLC43MzA2LC43NjY1OSwuNzkwMDQsLjc2NjU5LC43OTAwNCwuNzY2NTksLjc5MDA0LDEuMDkyMzEsLjU0ODczLC44Njc1LC45MjQ1LC43NjMxOCwuODQ4NDMsLjg0NTU3LC44NjY1MSwxLDEsLjc5Nzc2LDEuMjA1NjIsMS4xODYyMiwxLjE4NjIyLDEsMS4xNDM3LC42NzAwOSwuOTYzMzQsLjkzNjk1LDEuMzUxOTEsMS40MDkwOSwuOTUxNjEsMS40ODM4NywuODY3NSwuOTA4NjEsLjYxOTIsLjczNjMsLjY0ODI0LC44MjQxMSwuNTYzMjEsLjg1Njk2LDEuMjM1MTYsLjg2NzUsLjgxNTUyLC43Mjg2LC44NDEzNCwuNzMyMDYsLjc2NjU5LC44NjI3NSwuODQzNjksLjkwNjg1LC43Nzg5MiwuODU4NzEsMS4wMjYzOCwuODkyNDksLjc1ODI4LC44NDExOCwuODU5ODQsLjc3NDUyLC43NjQ2NiwuNzk3NzYsLjczMDYsLjkwNzgyLC43NzgxOCwuOTAzLC44NzI5MSwuOTA2ODUsLjczMDYsLjk5MDU4LDEuMDM2NjcsLjk0NjM1LDEuMjM1MTYsLjk4NDksLjk5MDU4LC45MjM5MywuODkxNiwuOTQyLDEuMDM2NjcsLjc1MDI2LC45NDYzNSwxLjAyOTcsMS4yMzUxNiwuOTA5MTgsLjk0MDQ4LC45ODIxNywuODk3NDYsLjg0MTUzLC45MjI3NCwuODI1MDcsLjg4ODMyLC44NDQzOCwuODgxNzgsMS4wMzUyNSwuOTg0OSwxLjAwMjI1LC43ODA4NiwuOTcyNDgsLjg5NDA0LDEuMjM1MTYsLjk4NDksLjkyMjc0LC45ODQ5LC44OTQwNCwuNzMyMDYsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjg5NjkzLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC44NTg2NSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTA5MzMsMSwxLDEsMSwxLDEsLjk0MzA5LC45ODk4NiwuOTQzMDksLjk4OTg2LC45NDMwOSwuOTg5ODYsLjczMDYsLjg5NDUzLDEsMSwuODk1NTIsLjkwNTI3LDEsLjkwMTg2LDEuMTIzMDgsMS4xMjMwOCwxLjEyMzA4LDEuMTIzMDgsMS4yNTY2LDEuMjU2NiwxLjI1NjYsLjg5NTUyLC44OTU1MiwxLjQyMjU5LC42ODk5NCwxLjAzODA5LDEsMSwxLjAxNzYsMS4wMTc2LDEuMTE1MjMsMS40OTU2LDIuMDE0NjIsLjk3ODU4LC44MjYxNiwuOTExMzMsLjgzNDM3LC45MTEzMywxLDEsMSwuNzA1MDgsMSwxLjIzMTA4LC43OTgwMSwuODQ0MjYsLjg0NDI2LC43NzQsLjkwNTcyLDEuODEwNTUsLjkwNzQ5LDEuODEwNTUsMS4yODgwOSwxLjU1NDY5LC45NDQzNCwxLjA3ODA2LDEsLjk3MDk0LC43NTg5LC44NTI4NCwuOTA3NDcsMS4xOTY1OCwuNjk4MjUsLjk3NjIyLDEuMzM1MTIsLjkwNzQ3LC45MDc0NywuODUyODQsLjkwNzQ3LC45MDc0NywxLjQ0OTQ3LC44NTI4NCwuODk0MSwuODk0MSwuNzA1NzIsLjgsLjcwNTcyLC43MDU3MiwuNzA1NzIsLjcwNTcyLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTk4NjIsLjk5ODYyLDEsMSwxLDEsMSwxLjAzMzYsLjkxMDI3LDEsMSwxLC45OTg2MiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjA1ODU5LDEuMDU4NTksMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLEJuPXtsaW5lSGVpZ2h0OjEuMjIwNyxsaW5lR2FwOi4yMjA3fSxsbj1bMS4zODc3LDEsMSwxLDEuMTcyMjMsMS4xMjkzLC44OTU1MiwuOTExMzMsLjgwMzk1LDEuMDIyNjksMS4xNTYwMSwuOTEwNTYsLjkxMDU2LDEuMjc5OCwuODUyODQsLjg5ODA3LDEsLjkwODYxLDEuMzkwMTYsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45NjMwOSwuOTYzMDksLjg1Mjg0LC44NTI4NCwuODUyODQsLjgzMzE5LC44ODA3MSwuODY3NSwuODE1NTIsLjczODM0LC44NTE5MywuNzMyMDYsLjc1MjIsLjgxMTA1LC44NjI3NSwuOTA2ODUsLjYzNzcsLjc3ODkyLC43NTU5MywxLjAyNjM4LC44OTM4NSwuODUxMjIsLjc3NDUyLC44NjUwMywuNzUxODYsLjY4ODg3LC43OTc3NiwuODg4NDQsLjg1MDY2LC45NDI1OCwuNzc4MTgsLjczMDYsLjc2NjU5LDEuMTAzNjksMS4zOTAxNiwxLjEwMzY5LDEuMDYxMzksLjg5NTUyLC44NzM5LC44NjEyOCwuOTQ0NjksLjg0NTcsLjk0NDY5LC44OTQ2NCwxLjA5ODQyLC44NDYzNiwuOTQ0NjksMS4wMzI5NywxLjA3NjkyLC45MDkxOCwxLjAzMjk3LC45NTg5NywuOTQ0NjksLjk0ODIsLjk0NDY5LC45NDQ2OSwxLjA0NjkyLC43ODIyMywxLjIwNTYyLC45NDQ2OSwuOTAzMzIsLjk4OTg2LC44NjYyMSwuOTA1MjcsLjc5MDA0LC45NDE1MiwxLjc3MjU2LC45NDE1MiwuODUyODQsLjk3ODAxLC44OTU1MiwuOTExMzMsLjg5NTUyLC45MTEzMywxLjkxNzI5LC44OTU1MiwxLjE3ODg5LDEuMTMyNTQsMS4wODcwNywuOTIwOTgsLjg1Mjg0LC42ODc4NywuNzEzNTMsLjg0NzM3LC45MDc0NywxLjAwODgsMS4wMDQ0LC44NzY4MywxLDEuMDkwOTEsMSwuOTIyMjksLjczOSwxLjE1NjQyLC45MjA5OCwuNzYyODgsLjgwNTA0LC44MDk3MiwuNzU4NTksLjg2NzUsLjg2NzUsLjg2NzUsLjg2NzUsLjg2NzUsLjg2NzUsLjc2MzE4LC43MzgzNCwuNzMyMDYsLjczMjA2LC43MzIwNiwuNzMyMDYsLjkwNjg1LC45MDY4NSwuOTA2ODUsLjkwNjg1LC44NjQ3NywuODkzODUsLjg1MTIyLC44NTEyMiwuODUxMjIsLjg1MTIyLC44NTEyMiwuODUyODQsLjg1MzExLC44ODg0NCwuODg4NDQsLjg4ODQ0LC44ODg0NCwuNzMwNiwuNzc0NTIsLjg2MzMxLC44NjEyOCwuODYxMjgsLjg2MTI4LC44NjEyOCwuODYxMjgsLjg2MTI4LC44NjkzLC44NDU3LC44OTQ2NCwuODk0NjQsLjg5NDY0LC44OTQ2NCwuODI2MDEsLjgyNjAxLC44MjYwMSwuODI2MDEsLjk0NDY5LC45NDQ2OSwuOTQ4MiwuOTQ4MiwuOTQ4MiwuOTQ4MiwuOTQ4MiwuOTA3NDcsLjg2NjUxLC45NDQ2OSwuOTQ0NjksLjk0NDY5LC45NDQ2OSwuOTA1MjcsLjk0NDY5LC45MDUyNywuODY3NSwuODYxMjgsLjg2NzUsLjg2MTI4LC44Njc1LC44NjEyOCwuNzM4MzQsLjg0NTcsLjczODM0LC44NDU3LC43MzgzNCwuODQ1NywuNzM4MzQsLjg0NTcsLjg1MTkzLC45MjQ1NCwuODY0NzcsLjk5MjEsLjczMjA2LC44OTQ2NCwuNzMyMDYsLjg5NDY0LC43MzIwNiwuODk0NjQsLjczMjA2LC44OTQ2NCwuNzMyMDYsLjg5NDY0LC44MTEwNSwuODQ2MzYsLjgxMTA1LC44NDYzNiwuODExMDUsLjg0NjM2LDEsMSwuODYyNzUsLjk0NDY5LC45MDg3MiwuOTU3ODYsLjkwNjg1LC44MjYwMSwuOTA2ODUsLjgyNjAxLC45MDY4NSwuODI2MDEsLjkwNjg1LDEuMDMyOTcsLjkwNjg1LC44MjYwMSwuNzc3NDEsMS4wNTYxMSwuNjM3NywxLjA3NjkyLDEsMSwuOTA5MTgsLjc1NTkzLDEuMDMyOTcsMSwxLC43NjAzMiwuOTA0NTIsLjk4MTU2LDEuMTE4NDIsLjc3MjYxLDEuMTE0MjksLjg5Mzg1LC45NDQ2OSwxLDEsLjg5Mzg1LC45NDQ2OSwuOTU4NzcsLjg2OTAxLC45NDQ2OSwuODUxMjIsLjk0ODIsLjg1MTIyLC45NDgyLC44NTEyMiwuOTQ4MiwuODY2NywuOTAwMTYsLjc1MTg2LDEuMDQ2OTIsMSwxLC43NTE4NiwxLjA0NjkyLC42ODg4NywuNzgyMjMsLjY4ODg3LC43ODIyMywuNjg4ODcsLjc4MjIzLC42ODg4NywuNzgyMjMsMSwxLC43OTc3NiwuOTIxODgsLjc5Nzc2LDEuMjMwMjMsLjg4ODQ0LC45NDQ2OSwuODg4NDQsLjk0NDY5LC44ODg0NCwuOTQ0NjksLjg4ODQ0LC45NDQ2OSwuODg4NDQsLjk0NDY5LC44ODg0NCwuOTQ0NjksLjk0MjU4LC45ODk4NiwuNzMwNiwuOTA1MjcsLjczMDYsLjc2NjU5LC43OTAwNCwuNzY2NTksLjc5MDA0LC43NjY1OSwuNzkwMDQsMS4wOTIzMSwuNTQ4NzMsLjg2NzUsLjg2MTI4LC43NjMxOCwuODY5MywuODUzMTEsLjg2NjUxLDEsMSwuNzk3NzYsMS4yMDU2MiwxLjE4NjIyLDEuMTg2MjIsMSwxLjE0MzcsLjY3NzQyLC45NjMzNCwuOTM2OTUsMS4zNTE5MSwxLjQwOTA5LC45NTE2MSwxLjQ4Mzg3LC44NjY4NiwuOTA4NjEsLjYyMjY3LC43NDM1OSwuNjU2NDksLjg1NDk4LC41Njk2MywuODgyNTQsMS4yMzUxNiwuODY3NSwuODE1NTIsLjc1NDQzLC44NDUwMywuNzMyMDYsLjc2NjU5LC44NjI3NSwuODUxMjIsLjkwNjg1LC43Nzg5MiwuODU3NDYsMS4wMjYzOCwuODkzODUsLjc1NjU3LC44NTEyMiwuODYyNzUsLjc3NDUyLC43NDE3MSwuNzk3NzYsLjczMDYsLjk1MTY1LC43NzgxOCwuODk3NzIsLjg4ODMxLC45MDY4NSwuNzMwNiwuOTgxNDIsMS4wMjE5MSwuOTY1NzYsMS4yMzUxNiwuOTkwMTgsLjk4MTQyLC45MjM2LC44OTI1OCwuOTQwMzUsMS4wMjE5MSwuNzg4NDgsLjk2NTc2LC45NTYxLDEuMjM1MTYsLjkwOTE4LC45MjU3OCwuOTU0MjQsLjg5NzQ2LC44Mzk2OSwuOTQ4MiwuODAxMTMsLjg5NDQyLC44NTIwOCwuODYxNTUsLjk4MDIyLC45OTAxOCwxLjAwNDUyLC44MTIwOSwuOTkyNDcsLjg5MTgxLDEuMjM1MTYsLjk5MDE4LC45NDgyLC45OTAxOCwuODkxODEsLjczMjA2LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC44ODg0NCwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuODk0NjQsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjk2NzY2LDEsMSwxLDEsMSwxLC45NDI1OCwuOTg5ODYsLjk0MjU4LC45ODk4NiwuOTQyNTgsLjk4OTg2LC43MzA2LC45MDUyNywxLDEsLjg5NTUyLC45MDUyNywxLC45MDE4NiwxLjEyMzA4LDEuMTIzMDgsMS4xMjMwOCwxLjEyMzA4LDEuMjU2NiwxLjI1NjYsMS4yNTY2LC44OTU1MiwuODk1NTIsMS40MjI1OSwuNjkwNDMsMS4wMzgwOSwxLDEsMS4wMTc2LDEuMDE3NiwxLjExNTIzLDEuNDk1NiwyLjAxNDYyLC45OTMzMSwuODI2MTYsLjkxMTMzLC44NDI4NiwuOTExMzMsMSwxLDEsLjcwNTA4LDEsMS4yMzEwOCwuNzk4MDEsLjg0NDI2LC44NDQyNiwuNzc0LC45MDUyNywxLjgxMDU1LC45MDUyNywxLjgxMDU1LDEuMjg4MDksMS41NTQ2OSwuOTQ0MzQsMS4wNzgwNiwxLC45NzA5NCwuNzU4OSwuODUyODQsLjkwNzQ3LDEuMTk2NTgsLjY5ODI1LC45NzYyMiwxLjMzNTEyLC45MDc0NywuOTA3NDcsLjg1MzU2LC45MDc0NywuOTA3NDcsMS40NDk0NywuODUyODQsLjg5NDEsLjg5NDEsLjcwNTcyLC44LC43MDU3MiwuNzA1NzIsLjcwNTcyLC43MDU3MiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjk5ODYyLC45OTg2MiwxLDEsMSwxLDEsMS4wMzM2LC45MTAyNywxLDEsMSwuOTk4NjIsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4wNTg1OSwxLjA1ODU5LDEsMSwxLDEuMDcxODUsLjk5NDEzLC45NjMzNCwxLjA4MDY1LDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sUW49e2xpbmVIZWlnaHQ6MS4yMjA3LGxpbmVHYXA6LjIyMDd9LEVuPVsuNzYxMTYsMSwxLDEuMDAwNiwuOTk5OTgsLjk5OTc0LC45OTk3MywuOTk5NzMsLjk5OTgyLC45OTk3NywxLjAwMDg3LC45OTk5OCwuOTk5OTgsLjk5OTU5LDEuMDAwMDMsMS4wMDA2LC45OTk5OCwxLjAwMDYsMS4wMDA2LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5OTgsMSwxLjAwMDAzLDEuMDAwMDMsMS4wMDAwMywxLjAwMDI2LC45OTk5LC45OTk3NywuOTk5NzcsLjk5OTc3LC45OTk3NywxLjAwMDAxLDEuMDAwMjYsMS4wMDAyMiwuOTk5NzcsMS4wMDA2LC45OTk3MywuOTk5NzcsMS4wMDAyNiwuOTk5OTksLjk5OTc3LDEuMDAwMjIsMS4wMDAwMSwxLjAwMDIyLC45OTk3NywxLjAwMDAxLDEuMDAwMjYsLjk5OTc3LDEuMDAwMDEsMS4wMDAxNiwxLjAwMDAxLDEuMDAwMDEsMS4wMDAyNiwuOTk5OTgsMS4wMDA2LC45OTk5OCwxLjAwMDAzLC45OTk3MywuOTk5OTgsLjk5OTczLDEuMDAwMjYsLjk5OTczLDEuMDAwMjYsLjk5OTczLC45OTk5OCwxLjAwMDI2LDEuMDAwMjYsMS4wMDA2LDEuMDAwNiwuOTk5NzMsMS4wMDA2LC45OTk4MiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LC45OTk1OSwuOTk5NzMsLjk5OTk4LDEuMDAwMjYsLjk5OTczLDEuMDAwMjIsLjk5OTczLC45OTk3MywxLC45OTk1OSwxLjAwMDc3LC45OTk1OSwxLjAwMDAzLC45OTk5OCwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDA3NywuOTk5NzMsLjk5OTk4LDEuMDAwMjUsLjk5OTY4LC45OTk3MywxLjAwMDAzLDEuMDAwMjUsLjYwMjk5LDEuMDAwMjQsMS4wNjQwOSwxLDEsLjk5OTk4LDEsLjk5OTczLDEuMDAwNiwuOTk5OTgsMSwuOTk5MzYsLjk5OTczLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDAyLDEuMDAwMjYsLjk5OTc3LC45OTk3NywuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsMSwuOTk5NzcsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDAwMSwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsLjk5OTc3LC45OTk3NywxLjAwMDIyLDEuMDAwMjIsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMjIsMS4wMDAwMywxLjAwMDIyLC45OTk3NywuOTk5NzcsLjk5OTc3LC45OTk3NywxLjAwMDAxLDEuMDAwMDEsMS4wMDAyNiwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5ODIsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjA2NDA5LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwuOTk5NzMsMS4wMDAyNiwuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsMS4wMzM3NCwuOTk5NzcsMS4wMDAyNiwxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDIyLDEuMDAwMjYsMS4wMDAyMiwxLjAwMDI2LDEuMDAwMjIsMS4wMDAyNiwxLjAwMDIyLDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNDIsLjk5OTczLC45OTk3MywxLjAwMDYsLjk5OTc3LC45OTk3MywuOTk5NzMsMS4wMDAyNiwxLjAwMDYsMS4wMDAyNiwxLjAwMDYsMS4wMDAyNiwxLjAzODI4LDEuMDAwMjYsLjk5OTk5LDEuMDAwMjYsMS4wMDA2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTkzLC45OTk4LDEuMDAwMjYsMS4wMDAyMiwxLjAwMDI2LDEuMDAwMjIsMS4wMDAyNiwxLjAwMDIyLDEuMDAwMjYsMSwxLjAwMDE2LC45OTk3NywuOTk5NTksLjk5OTc3LC45OTk1OSwuOTk5NzcsLjk5OTU5LDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMjYsLjk5OTk4LDEuMDAwMjYsLjgxMjEsMS4wMDAyNiwuOTk5OTgsLjk5OTc3LDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsMS4wMDAxNiwxLjAwMDIyLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsMS4wMDAyNiwxLDEuMDAwMjYsMSwxLjAwMDI2LDEsMS4wMDA2LC45OTk3MywuOTk5NzcsLjk5OTczLDEsLjk5OTgyLDEuMDAwMjIsMS4wMDAyNiwxLjAwMDAxLC45OTk3MywxLjAwMDI2LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsMS4wMDAzNCwuOTk5NzcsMSwuOTk5OTcsMS4wMDAyNiwxLjAwMDc4LDEuMDAwMzYsLjk5OTczLDEuMDAwMTMsMS4wMDA2LC45OTk3NywuOTk5NzcsLjk5OTg4LC44NTE0OCwxLjAwMDAxLDEuMDAwMjYsLjk5OTc3LDEuMDAwMjIsMS4wMDA2LC45OTk3NywxLjAwMDAxLC45OTk5OSwuOTk5NzcsMS4wMDA2OSwxLjAwMDIyLC45OTk3NywxLjAwMDAxLC45OTk4NCwxLjAwMDI2LDEuMDAwMDEsMS4wMDAyNCwxLjAwMDAxLC45OTk5LDEsMS4wMDA2LDEuMDAwMDEsMS4wMDA0MSwuOTk5NjIsMS4wMDAyNiwxLjAwMDYsLjk5OTk1LDEuMDAwNDEsLjk5OTQyLC45OTk3MywuOTk5MjcsMS4wMDA4MiwuOTk5MDIsMS4wMDAyNiwxLjAwMDg3LDEuMDAwNiwxLjAwMDY5LC45OTk3MywuOTk4NjcsLjk5OTczLC45OTkzLDEuMDAwMjYsMS4wMDA0OSwxLjAwMDU2LDEsLjk5OTg4LC45OTkzNSwuOTk5OTUsLjk5OTU0LDEuMDAwNTUsLjk5OTQ1LDEuMDAwMzIsMS4wMDA2LC45OTk5NSwxLjAwMDI2LC45OTk5NSwxLjAwMDMyLDEuMDAwMDEsMS4wMDAwOCwuOTk5NzEsMS4wMDAxOSwuOTk5NCwxLjAwMDAxLDEuMDAwNiwxLjAwMDQ0LC45OTk3MywxLjAwMDIzLDEuMDAwNDcsMSwuOTk5NDIsLjk5NTYxLC45OTk4OSwxLjAwMDM1LC45OTk3NywxLjAwMDM1LC45OTk3NywxLjAwMDE5LC45OTk0NCwxLjAwMDAxLDEuMDAwMjEsLjk5OTI2LDEuMDAwMzUsMS4wMDAzNSwuOTk5NDIsMS4wMDA0OCwuOTk5OTksLjk5OTc3LDEuMDAwMjIsMS4wMDAzNSwxLjAwMDAxLC45OTk3NywxLjAwMDI2LC45OTk4OSwxLjAwMDU3LDEuMDAwMDEsLjk5OTM2LDEuMDAwNTIsMS4wMDAxMiwuOTk5OTYsMS4wMDA0MywxLDEuMDAwMzUsLjk5OTQsLjk5OTc2LDEuMDAwMzUsLjk5OTczLDEuMDAwNTIsMS4wMDA0MSwxLjAwMTE5LDEuMDAwMzcsLjk5OTczLDEuMDAwMDIsLjk5OTg2LDEuMDAwNDEsMS4wMDA0MSwuOTk5MDIsLjk5OTYsMS4wMDAzNCwuOTk5OTksMS4wMDAyNiwuOTk5OTksMS4wMDAyNiwuOTk5NzMsMS4wMDA1MiwuOTk5NzMsMSwuOTk5NzMsMS4wMDA0MSwxLjAwMDc1LC45OTk0LDEuMDAwMywuOTk5OTksMSwxLjAwMDQxLC45OTk1NSwxLC45OTkxNSwuOTk5NzMsLjk5OTczLDEuMDAwMjYsMS4wMDExOSwuOTk5NTUsLjk5OTczLDEuMDAwNiwuOTk5MTEsMS4wMDA2LDEuMDAwMjYsLjk5OTcyLDEuMDAwMjYsLjk5OTAyLDEuMDAwNDEsLjk5OTczLC45OTk5OSwxLDEsMS4wMDAzOCwxLjAwMDUsMS4wMDAxNiwxLjAwMDIyLDEuMDAwMTYsMS4wMDAyMiwxLjAwMDE2LDEuMDAwMjIsMS4wMDAwMSwuOTk5NzMsMSwxLC45OTk3MywxLDEsLjk5OTU1LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLDEsMSwuOTk5NzMsLjk5OTczLC45OTk3MiwxLDEsMS4wMDEwNiwuOTk5OTksLjk5OTk4LC45OTk5OCwuOTk5OTksLjk5OTk4LDEuNjY0NzUsMSwuOTk5NzMsLjk5OTczLDEuMDAwMjMsLjk5OTczLC45OTk3MSwxLjAwMDQ3LDEuMDAwMjMsMSwuOTk5OTEsLjk5OTg0LDEuMDAwMDIsMS4wMDAwMiwxLjAwMDAyLDEuMDAwMDIsMSwxLDEsMSwxLDEsMSwuOTk5NzIsMSwxLjIwOTg1LDEuMzk3MTMsMS4wMDAwMywxLjAwMDMxLDEuMDAwMTUsMSwuOTk1NjEsMS4wMDAyNywxLjAwMDMxLDEuMDAwMzEsLjk5OTE1LDEuMDAwMzEsMS4wMDAzMSwuOTk5OTksMS4wMDAwMywuOTk5OTksLjk5OTk5LDEuNDExNDQsMS42LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MDU3OSwxLjQwNTc5LDEuMzY2MjUsLjk5OTk5LDEsLjk5ODYxLC45OTg2MSwxLDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsLjk5OTcyLC45OTk5OSwuOTk5OTksLjk5OTk5LC45OTk5OSwxLjQwNDgzLDEsLjk5OTc3LDEuMDAwNTQsMSwxLC45OTk1MywuOTk5NjIsMS4wMDA0MiwuOTk5NSwxLDEsMSwxLDEsMSwxLDEsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sdW49e2xpbmVIZWlnaHQ6MS4yLGxpbmVHYXA6LjJ9LGRuPVsuNzYxMTYsMSwxLDEuMDAwNiwuOTk5OTgsLjk5OTc0LC45OTk3MywuOTk5NzMsLjk5OTgyLC45OTk3NywxLjAwMDg3LC45OTk5OCwuOTk5OTgsLjk5OTU5LDEuMDAwMDMsMS4wMDA2LC45OTk5OCwxLjAwMDYsMS4wMDA2LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5OTgsMSwxLjAwMDAzLDEuMDAwMDMsMS4wMDAwMywxLjAwMDI2LC45OTk5LC45OTk3NywuOTk5NzcsLjk5OTc3LC45OTk3NywxLjAwMDAxLDEuMDAwMjYsMS4wMDAyMiwuOTk5NzcsMS4wMDA2LC45OTk3MywuOTk5NzcsMS4wMDAyNiwuOTk5OTksLjk5OTc3LDEuMDAwMjIsMS4wMDAwMSwxLjAwMDIyLC45OTk3NywxLjAwMDAxLDEuMDAwMjYsLjk5OTc3LDEuMDAwMDEsMS4wMDAxNiwxLjAwMDAxLDEuMDAwMDEsMS4wMDAyNiwuOTk5OTgsMS4wMDA2LC45OTk5OCwxLjAwMDAzLC45OTk3MywuOTk5OTgsLjk5OTczLDEuMDAwMjYsLjk5OTczLDEuMDAwMjYsLjk5OTczLC45OTk5OCwxLjAwMDI2LDEuMDAwMjYsMS4wMDA2LDEuMDAwNiwuOTk5NzMsMS4wMDA2LC45OTk4MiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LC45OTk1OSwuOTk5NzMsLjk5OTk4LDEuMDAwMjYsLjk5OTczLDEuMDAwMjIsLjk5OTczLC45OTk3MywxLC45OTk1OSwxLjAwMDc3LC45OTk1OSwxLjAwMDAzLC45OTk5OCwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDA3NywuOTk5NzMsLjk5OTk4LDEuMDAwMjUsLjk5OTY4LC45OTk3MywxLjAwMDAzLDEuMDAwMjUsLjYwMjk5LDEuMDAwMjQsMS4wNjQwOSwxLDEsLjk5OTk4LDEsLjk5OTczLDEuMDAwNiwuOTk5OTgsMSwuOTk5MzYsLjk5OTczLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDAyLDEuMDAwMjYsLjk5OTc3LC45OTk3NywuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsMSwuOTk5NzcsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDAwMSwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsLjk5OTc3LC45OTk3NywxLjAwMDIyLDEuMDAwMjIsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMjIsMS4wMDAwMywxLjAwMDIyLC45OTk3NywuOTk5NzcsLjk5OTc3LC45OTk3NywxLjAwMDAxLDEuMDAwMDEsMS4wMDAyNiwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5ODIsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjA2NDA5LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwuOTk5NzMsMS4wMDAyNiwuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsMS4wMDQ0LC45OTk3NywxLjAwMDI2LDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMjIsMS4wMDAyNiwxLjAwMDIyLDEuMDAwMjYsMS4wMDAyMiwxLjAwMDI2LDEuMDAwMjIsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsLjk5OTcxLC45OTk3MywuOTk5NzMsMS4wMDA2LC45OTk3NywuOTk5NzMsLjk5OTczLDEuMDAwMjYsMS4wMDA2LDEuMDAwMjYsMS4wMDA2LDEuMDAwMjYsMS4wMTAxMSwxLjAwMDI2LC45OTk5OSwxLjAwMDI2LDEuMDAwNiwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwuOTk5MywuOTk5OCwxLjAwMDI2LDEuMDAwMjIsMS4wMDAyNiwxLjAwMDIyLDEuMDAwMjYsMS4wMDAyMiwxLjAwMDI2LDEsMS4wMDAxNiwuOTk5NzcsLjk5OTU5LC45OTk3NywuOTk5NTksLjk5OTc3LC45OTk1OSwxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDI2LC45OTk5OCwxLjAwMDI2LC44MTIxLDEuMDAwMjYsLjk5OTk4LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LDEuMDAwMTYsMS4wMDAyMiwxLjAwMDAxLC45OTk3MywxLjAwMDAxLDEuMDAwMjYsMSwxLjAwMDI2LDEsMS4wMDAyNiwxLDEuMDAwNiwuOTk5NzMsLjk5OTc3LC45OTk3MywxLC45OTk4MiwxLjAwMDIyLDEuMDAwMjYsMS4wMDAwMSwuOTk5NzMsMS4wMDAyNiwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5NzcsMSwxLDEuMDAwMjYsLjk5OTY5LC45OTk3MiwuOTk5ODEsLjk5OTgsMS4wMDA2LC45OTk3NywuOTk5NzcsMS4wMDAyMiwuOTExNTUsMS4wMDAwMSwxLjAwMDI2LC45OTk3NywxLjAwMDIyLDEuMDAwNiwuOTk5NzcsMS4wMDAwMSwuOTk5OTksLjk5OTc3LC45OTk2NiwxLjAwMDIyLDEuMDAwMzIsMS4wMDAwMSwuOTk5NDQsMS4wMDAyNiwxLjAwMDAxLC45OTk2OCwxLjAwMDAxLDEuMDAwNDcsMSwxLjAwMDYsMS4wMDAwMSwuOTk5ODEsMS4wMDEwMSwxLjAwMDI2LDEuMDAwNiwuOTk5NDgsLjk5OTgxLDEuMDAwNjQsLjk5OTczLC45OTk0MiwxLjAwMTAxLDEuMDAwNjEsMS4wMDAyNiwxLjAwMDY5LDEuMDAwNiwxLjAwMDE0LC45OTk3MywxLjAxMzIyLC45OTk3MywxLjAwMDY1LDEuMDAwMjYsMS4wMDAxMiwuOTk5MjMsMSwxLjAwMDY0LDEuMDAwNzYsLjk5OTQ4LDEuMDAwNTUsMS4wMDA2MywxLjAwMDA3LC45OTk0MywxLjAwMDYsLjk5OTQ4LDEuMDAwMjYsLjk5OTQ4LC45OTk0MywxLjAwMDAxLDEuMDAwMDEsMS4wMDAyOSwxLjAwMDM4LDEuMDAwMzUsMS4wMDAwMSwxLjAwMDYsMS4wMDA2LC45OTk3MywuOTk5NzgsMS4wMDAwMSwxLjAwMDU3LC45OTk4OSwuOTk5NjcsLjk5OTY0LC45OTk2NywuOTk5NzcsLjk5OTk5LC45OTk3NywxLjAwMDM4LC45OTk3NywxLjAwMDAxLC45OTk3MywxLjAwMDY2LC45OTk2NywuOTk5NjcsMS4wMDA0MSwuOTk5OTgsLjk5OTk5LC45OTk3NywxLjAwMDIyLC45OTk2NywxLjAwMDAxLC45OTk3NywxLjAwMDI2LC45OTk2NCwxLjAwMDMxLDEuMDAwMDEsLjk5OTk5LC45OTk5OSwxLDEuMDAwMjMsMSwxLC45OTk5OSwxLjAwMDM1LDEuMDAwMDEsLjk5OTk5LC45OTk3MywuOTk5NzcsLjk5OTk5LDEuMDAwNTgsLjk5OTczLC45OTk3MywuOTk5NTUsLjk5OTUsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMzIsLjk5OTg5LDEuMDAwMzQsLjk5OTk5LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LC45OTk3MywuNDU5OTgsLjk5OTczLDEuMDAwMjYsLjk5OTczLDEuMDAwMDEsLjk5OTk5LC45OTk4MiwuOTk5OTQsLjk5OTk2LDEsMS4wMDA0MiwxLjAwMDQ0LDEuMDAwMjksMS4wMDAyMywuOTk5NzMsLjk5OTczLDEuMDAwMjYsLjk5OTQ5LDEuMDAwMDIsLjk5OTczLDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTk3NSwxLjAwMDI2LDEuMDAwMjYsMS4wMDAzMiwuOTg2ODUsLjk5OTczLDEuMDAwMjYsMSwxLC45OTk2NiwxLjAwMDQ0LDEuMDAwMTYsMS4wMDAyMiwxLjAwMDE2LDEuMDAwMjIsMS4wMDAxNiwxLjAwMDIyLDEuMDAwMDEsLjk5OTczLDEsMSwuOTk5NzMsMSwxLC45OTk1NSwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMSwxLDEsLjk5OTczLC45OTk3MywuOTk5NzIsMSwxLDEuMDAxMDYsLjk5OTk5LC45OTk5OCwuOTk5OTgsLjk5OTk5LC45OTk5OCwxLjY2NDc1LDEsLjk5OTczLC45OTk3MywxLC45OTk3MywuOTk5NzEsLjk5OTc4LDEsMSwuOTk5OTEsLjk5OTg0LDEuMDAwMDIsMS4wMDAwMiwxLjAwMDAyLDEuMDAwMDIsMS4wMDA5OCwxLDEsMSwxLjAwMDQ5LDEsMSwuOTk5NzIsMSwxLjIwOTg1LDEuMzk3MTMsMS4wMDAwMywxLjAwMDMxLDEuMDAwMTUsMSwuOTk1NjEsMS4wMDAyNywxLjAwMDMxLDEuMDAwMzEsLjk5OTE1LDEuMDAwMzEsMS4wMDAzMSwuOTk5OTksMS4wMDAwMywuOTk5OTksLjk5OTk5LDEuNDExNDQsMS42LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MDU3OSwxLjQwNTc5LDEuMzY2MjUsLjk5OTk5LDEsLjk5ODYxLC45OTg2MSwxLDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsLjk5OTcyLC45OTk5OSwuOTk5OTksLjk5OTk5LC45OTk5OSwxLjQwNDgzLDEsLjk5OTc3LDEuMDAwNTQsMSwxLC45OTk1MywuOTk5NjIsMS4wMDA0MiwuOTk5NSwxLDEsMSwxLDEsMSwxLDEsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sZm49e2xpbmVIZWlnaHQ6MS4zNSxsaW5lR2FwOi4yfSxwbj1bLjc2MTE2LDEsMSwxLjAwMDYsMS4wMDA2LDEuMDAwMDYsLjk5OTczLC45OTk3MywuOTk5ODIsMS4wMDAwMSwxLjAwMDQzLC45OTk5OCwuOTk5OTgsLjk5OTU5LDEuMDAwMDMsMS4wMDA2LC45OTk5OCwxLjAwMDYsMS4wMDA2LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywxLjAwMDYsMSwxLjAwMDAzLDEuMDAwMDMsMS4wMDAwMywuOTk5NzMsLjk5OTg3LDEuMDAwMDEsMS4wMDAwMSwuOTk5NzcsLjk5OTc3LDEuMDAwMDEsMS4wMDAyNiwxLjAwMDIyLC45OTk3NywxLjAwMDYsMSwxLjAwMDAxLC45OTk3MywuOTk5OTksLjk5OTc3LDEuMDAwMjIsMS4wMDAwMSwxLjAwMDIyLC45OTk3NywxLjAwMDAxLDEuMDAwMjYsLjk5OTc3LDEuMDAwMDEsMS4wMDAxNiwxLjAwMDAxLDEuMDAwMDEsMS4wMDAyNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwuOTk5NDksLjk5OTczLC45OTk5OCwuOTk5NzMsLjk5OTczLDEsLjk5OTczLC45OTk3MywxLjAwMDYsLjk5OTczLC45OTk3MywuOTk5MjQsLjk5OTI0LDEsLjk5OTI0LC45OTk5OSwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTk4LDEsMS4wMDA2LC45OTk3MywxLC45OTk3NywxLDEsMSwxLjAwMDA1LDEuMDAwOSwxLjAwMDA1LDEuMDAwMDMsLjk5OTk4LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywxLjAwMDksLjk5OTczLC45OTk5OCwxLjAwMDI1LC45OTk2OCwuOTk5NzMsMS4wMDAwMywxLjAwMDI1LC42MDI5OSwxLjAwMDI0LDEuMDY0MDksMSwxLC45OTk5OCwxLC45OTk4LDEuMDAwNiwuOTk5OTgsMSwuOTk5MzYsLjk5OTczLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDAyLDEuMDAwMjYsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMSwuOTk5NzcsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDAwMSwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsLjk5OTc3LC45OTk3NywxLjAwMDIyLDEuMDAwMjIsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMjIsMS4wMDAwMywxLjAwMDIyLC45OTk3NywuOTk5NzcsLjk5OTc3LC45OTk3NywxLjAwMDAxLDEuMDAwMDEsMS4wMDAyNiwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5ODIsMSwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywxLjA2NDA5LDEuMDAwMjYsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLDEsLjk5OTczLDEsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsLjk5OTc3LDEsLjk5OTc3LDEsLjk5OTc3LDEsLjk5OTc3LDEsLjk5OTc3LDEuMDI4OCwuOTk5NzcsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEuMDAwMjIsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsLjk5OTI0LDEuMDAwNiwxLjAwMDYsLjk5OTQ2LDEuMDAwMzQsMSwuOTk5MjQsMS4wMDAwMSwxLDEsLjk5OTczLC45OTkyNCwuOTk5NzMsLjk5OTI0LC45OTk3MywxLjA2MzExLC45OTk3MywxLjAwMDI0LC45OTk3MywuOTk5MjQsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsMS4wMDA0MSwuOTk5OCwuOTk5NzMsMS4wMDAyMiwuOTk5NzMsMS4wMDAyMiwuOTk5NzMsMS4wMDAyMiwuOTk5NzMsMSwxLjAwMDE2LC45OTk3NywuOTk5OTgsLjk5OTc3LC45OTk5OCwuOTk5NzcsLjk5OTk4LDEuMDAwMDEsMSwxLjAwMDAxLDEsMS4wMDAwMSwxLDEuMDAwMDEsMSwxLjAwMDI2LDEuMDAwNiwxLjAwMDI2LC44OTU0NywxLjAwMDI2LDEuMDAwNiwuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywxLjAwMDE2LC45OTk3NywxLjAwMDAxLDEsMS4wMDAwMSwxLjAwMDI2LDEsMS4wMDAyNiwxLDEuMDAwMjYsMSwuOTk5MjQsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEsLjk5OTgyLDEuMDAwMjIsMS4wMDAyNiwxLjAwMDAxLDEsMS4wMDAyNiwxLjAwMDYsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwxLjAwMDAxLDEsMS4wMDA1NCwuOTk5NzcsMS4wMDA4NCwxLjAwMDA3LC45OTk3MywxLjAwMDEzLC45OTkyNCwxLjAwMDAxLDEuMDAwMDEsLjk5OTQ1LC45MTIyMSwxLjAwMDAxLDEuMDAwMjYsLjk5OTc3LDEuMDAwMjIsMS4wMDA2LDEuMDAwMDEsMS4wMDAwMSwuOTk5OTksLjk5OTc3LC45OTkzMywxLjAwMDIyLDEuMDAwNTQsMS4wMDAwMSwxLjAwMDY1LDEuMDAwMjYsMS4wMDAwMSwxLjAwMDEsMS4wMDAwMSwxLjAwMDUyLDEsMS4wMDA2LDEuMDAwMDEsLjk5OTQ1LC45OTg5NywuOTk5NjgsLjk5OTI0LDEuMDAwMzYsLjk5OTQ1LC45OTk0OSwxLDEuMDAwNiwuOTk4OTcsLjk5OTE4LC45OTk2OCwuOTk5MTEsLjk5OTI0LDEsLjk5OTYyLDEuMDE0ODcsMSwxLjAwMDUsLjk5OTczLDEuMDAwMTIsMS4wMDA0MywxLC45OTk5NSwuOTk5OTQsMS4wMDAzNiwuOTk5NDcsMS4wMDAxOSwxLjAwMDYzLDEuMDAwMjUsLjk5OTI0LDEuMDAwMzYsLjk5OTczLDEuMDAwMzYsMS4wMDAyNSwxLjAwMDAxLDEuMDAwMDEsMS4wMDAyNywxLjAwMDEsMS4wMDA2OCwxLjAwMDAxLDEuMDAwNiwxLjAwMDYsMSwxLjAwMDA4LC45OTk1NywuOTk5NzIsLjk5OTQsLjk5OTU0LC45OTk3NSwxLjAwMDUxLDEuMDAwMDEsMS4wMDAxOSwxLjAwMDAxLDEuMDAwMSwuOTk5ODYsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMzgsLjk5OTU0LC45OTk1NCwuOTk5NCwxLjAwMDY2LC45OTk5OSwuOTk5NzcsMS4wMDAyMiwxLjAwMDU0LDEuMDAwMDEsLjk5OTc3LDEuMDAwMjYsLjk5OTc1LDEuMDAwMSwxLjAwMDAxLC45OTk5MywuOTk5NSwuOTk5NTUsMS4wMDAxNiwuOTk5NzgsLjk5OTc0LDEuMDAwMTksMS4wMDAyMiwuOTk5NTUsMS4wMDA1MywuOTk5NzMsMS4wMDA4OSwxLjAwMDA1LC45OTk2NywxLjAwMDQ4LC45OTk3MywxLjAwMDAyLDEuMDAwMzQsLjk5OTczLC45OTk3MywuOTk5NjQsMS4wMDAwNiwxLjAwMDY2LC45OTk0NywuOTk5NzMsLjk4ODk0LC45OTk3MywxLC40NDg5OCwxLC45OTk0NiwxLDEuMDAwMzksMS4wMDA4MiwuOTk5OTEsLjk5OTkxLC45OTk4NSwxLjAwMDIyLDEuMDAwMjMsMS4wMDA2MSwxLjAwMDA2LC45OTk2NiwuOTk5NzMsLjk5OTczLC45OTk3MywxLjAwMDE5LDEuMDAwOCwxLC45OTkyNCwuOTk5MjQsLjk5OTI0LC45OTk4MywxLjAwMDQ0LC45OTk3MywuOTk5NjQsLjk4MzMyLDEsLjk5OTczLDEsMSwuOTk5NjIsLjk5ODk1LDEuMDAwMTYsLjk5OTc3LDEuMDAwMTYsLjk5OTc3LDEuMDAwMTYsLjk5OTc3LDEuMDAwMDEsMSwxLDEsLjk5OTczLDEsMSwuOTk5NTUsLjk5OTI0LC45OTkyNCwuOTk5MjQsLjk5OTI0LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk3MywuOTk5NzMsLjk5OTcyLDEsMSwxLjAwMjY3LC45OTk5OSwuOTk5OTgsLjk5OTk4LDEsLjk5OTk4LDEuNjY0NzUsMSwuOTk5NzMsLjk5OTczLDEuMDAwMjMsLjk5OTczLDEuMDA0MjMsLjk5OTI1LC45OTk5OSwxLC45OTk5MSwuOTk5ODQsMS4wMDAwMiwxLjAwMDAyLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDQ5LDEsMS4wMDI0NSwxLDEsMSwxLC45NjMyOSwxLDEuMjA5ODUsMS4zOTcxMywxLjAwMDAzLC44MjU0LDEuMDAwMTUsMSwxLjAwMDM1LDEuMDAwMjcsMS4wMDAzMSwxLjAwMDMxLDEuMDAwMDMsMS4wMDAzMSwxLjAwMDMxLC45OTk5OSwxLjAwMDAzLC45OTk5OSwuOTk5OTksMS40MTE0NCwxLjYsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQwNTc5LDEuNDA1NzksMS4zNjYyNSwuOTk5OTksMSwuOTk4NjEsLjk5ODYxLDEsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwuOTUzMTcsLjk5OTk5LC45OTk5OSwuOTk5OTksLjk5OTk5LDEuNDA0ODMsMSwuOTk5NzcsMS4wMDA1NCwxLDEsLjk5OTUzLC45OTk2MiwxLjAwMDQyLC45OTk1LDEsMSwxLDEsMSwxLDEsMSwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSxtbj17bGluZUhlaWdodDoxLjM1LGxpbmVHYXA6LjJ9LHluPVsuNzYxMTYsMSwxLDEuMDAwNiwxLjAwMDYsMS4wMDAwNiwuOTk5NzMsLjk5OTczLC45OTk4MiwxLjAwMDAxLDEuMDAwNDMsLjk5OTk4LC45OTk5OCwuOTk5NTksMS4wMDAwMywxLjAwMDYsLjk5OTk4LDEuMDAwNiwxLjAwMDYsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLDEuMDAwNiwxLDEuMDAwMDMsMS4wMDAwMywxLjAwMDAzLC45OTk3MywuOTk5ODcsMS4wMDAwMSwxLjAwMDAxLC45OTk3NywuOTk5NzcsMS4wMDAwMSwxLjAwMDI2LDEuMDAwMjIsLjk5OTc3LDEuMDAwNiwxLDEuMDAwMDEsLjk5OTczLC45OTk5OSwuOTk5NzcsMS4wMDAyMiwxLjAwMDAxLDEuMDAwMjIsLjk5OTc3LDEuMDAwMDEsMS4wMDAyNiwuOTk5NzcsMS4wMDAwMSwxLjAwMDE2LDEuMDAwMDEsMS4wMDAwMSwxLjAwMDI2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTk0OSwuOTk5NzMsLjk5OTk4LC45OTk3MywuOTk5NzMsMSwuOTk5NzMsLjk5OTczLDEuMDAwNiwuOTk5NzMsLjk5OTczLC45OTkyNCwuOTk5MjQsMSwuOTk5MjQsLjk5OTk5LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5OTgsMSwxLjAwMDYsLjk5OTczLDEsLjk5OTc3LDEsMSwxLDEuMDAwMDUsMS4wMDA5LDEuMDAwMDUsMS4wMDAwMywuOTk5OTgsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLDEuMDAwOSwuOTk5NzMsLjk5OTk4LDEuMDAwMjUsLjk5OTY4LC45OTk3MywxLjAwMDAzLDEuMDAwMjUsLjYwMjk5LDEuMDAwMjQsMS4wNjQwOSwxLDEsLjk5OTk4LDEsLjk5OTgsMS4wMDA2LC45OTk5OCwxLC45OTkzNiwuOTk5NzMsMS4wMDAwMiwxLjAwMDAyLDEuMDAwMDIsMS4wMDAyNiwxLjAwMDAxLDEuMDAwMDEsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDAwMSwxLC45OTk3NywxLjAwMDAxLDEuMDAwMDEsMS4wMDAwMSwxLjAwMDAxLDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwuOTk5NzcsLjk5OTc3LDEuMDAwMjIsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMjIsMS4wMDAyMiwxLjAwMDAzLDEuMDAwMjIsLjk5OTc3LC45OTk3NywuOTk5NzcsLjk5OTc3LDEuMDAwMDEsMS4wMDAwMSwxLjAwMDI2LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk4MiwxLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLDEuMDY0MDksMS4wMDAyNiwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMSwuOTk5NzMsMSwxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywuOTk5NzcsMSwuOTk5NzcsMSwuOTk5NzcsMSwuOTk5NzcsMSwuOTk5NzcsMS4wNDU5NiwuOTk5NzcsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEuMDAwMjIsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsLjk5OTI0LDEuMDAwNiwxLjAwMDYsMS4wMDAxOSwxLjAwMDM0LDEsLjk5OTI0LDEuMDAwMDEsMSwxLC45OTk3MywuOTk5MjQsLjk5OTczLC45OTkyNCwuOTk5NzMsMS4wMjU3MiwuOTk5NzMsMS4wMDAwNSwuOTk5NzMsLjk5OTI0LC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk5OSwuOTk5OCwuOTk5NzMsMS4wMDAyMiwuOTk5NzMsMS4wMDAyMiwuOTk5NzMsMS4wMDAyMiwuOTk5NzMsMSwxLjAwMDE2LC45OTk3NywuOTk5OTgsLjk5OTc3LC45OTk5OCwuOTk5NzcsLjk5OTk4LDEuMDAwMDEsMSwxLjAwMDAxLDEsMS4wMDAwMSwxLDEuMDAwMDEsMSwxLjAwMDI2LDEuMDAwNiwxLjAwMDI2LC44NDUzMywxLjAwMDI2LDEuMDAwNiwuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywxLjAwMDE2LC45OTk3NywxLjAwMDAxLDEsMS4wMDAwMSwxLjAwMDI2LDEsMS4wMDAyNiwxLDEuMDAwMjYsMSwuOTk5MjQsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEsLjk5OTgyLDEuMDAwMjIsMS4wMDAyNiwxLjAwMDAxLDEsMS4wMDAyNiwxLjAwMDYsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5MjgsMSwuOTk5NzcsMS4wMDAxMywxLjAwMDU1LC45OTk0NywuOTk5NDUsLjk5OTQxLC45OTkyNCwxLjAwMDAxLDEuMDAwMDEsMS4wMDA0LC45MTYyMSwxLjAwMDAxLDEuMDAwMjYsLjk5OTc3LDEuMDAwMjIsMS4wMDA2LDEuMDAwMDEsMS4wMDAwNSwuOTk5OTksLjk5OTc3LDEuMDAwMTUsMS4wMDAyMiwuOTk5NzcsMS4wMDAwMSwuOTk5NzMsMS4wMDAyNiwxLjAwMDAxLDEuMDAwMTksMS4wMDAwMSwuOTk5NDYsMSwxLjAwMDYsMS4wMDAwMSwuOTk5NzgsMS4wMDA0NSwuOTk5NzMsLjk5OTI0LDEuMDAwMjMsLjk5OTc4LC45OTk2NiwxLDEuMDAwNjUsMS4wMDA0NSwxLjAwMDE5LC45OTk3MywuOTk5NzMsLjk5OTI0LDEsMSwuOTY0OTksMSwxLjAwMDU1LC45OTk3MywxLjAwMDA4LDEuMDAwMjcsMSwuOTk5NywuOTk5OTUsMS4wMDAyMywuOTk5MzMsMS4wMDAxOSwxLjAwMDE1LDEuMDAwMzEsLjk5OTI0LDEuMDAwMjMsLjk5OTczLDEuMDAwMjMsMS4wMDAzMSwxLjAwMDAxLC45OTkyOCwxLjAwMDI5LDEuMDAwOTIsMS4wMDAzNSwxLjAwMDAxLDEuMDAwNiwxLjAwMDYsMSwuOTk5ODgsLjk5OTc1LDEsMS4wMDA4MiwuOTk1NjEsLjk5OTYsMS4wMDAzNSwxLjAwMDAxLC45OTk2MiwxLjAwMDAxLDEuMDAwOTIsLjk5OTY0LDEuMDAwMDEsLjk5OTYzLC45OTk5OSwxLjAwMDM1LDEuMDAwMzUsMS4wMDA4MiwuOTk5NjIsLjk5OTk5LC45OTk3NywxLjAwMDIyLDEuMDAwMzUsMS4wMDAwMSwuOTk5NzcsMS4wMDAyNiwuOTk5NiwuOTk5NjcsMS4wMDAwMSwxLjAwMDM0LDEuMDAwNzQsMS4wMDA1NCwxLjAwMDUzLDEuMDAwNjMsLjk5OTcxLC45OTk2MiwxLjAwMDM1LC45OTk3NSwuOTk5NzcsLjk5OTczLDEuMDAwNDMsLjk5OTUzLDEuMDAwNywuOTk5MTUsLjk5OTczLDEuMDAwMDgsLjk5ODkyLDEuMDAwNzMsMS4wMDA3MywxLjAwMTE0LC45OTkxNSwxLjAwMDczLC45OTk1NSwuOTk5NzMsMS4wMDA5MiwuOTk5NzMsMSwuOTk5OTgsMSwxLjAwMDMsMSwxLjAwMDQzLDEuMDAwMDEsLjk5OTY5LDEuMDAwMywxLDEuMDAwMzUsMS4wMDAwMSwuOTk5NSwxLDEuMDAwOTIsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDA3LC45OTk1LDEsLjk5OTI0LDEuMDAwNiwuOTk5MjQsLjk5OTcyLDEuMDAwNjIsLjk5OTczLDEuMDAxMTQsMS4wMDA3MywxLC45OTk1NSwxLDEsMS4wMDA0NywuOTk5NjgsMS4wMDAxNiwuOTk5NzcsMS4wMDAxNiwuOTk5NzcsMS4wMDAxNiwuOTk5NzcsMS4wMDAwMSwxLDEsMSwuOTk5NzMsMSwxLC45OTk1NSwuOTk5MjQsLjk5OTI0LC45OTkyNCwuOTk5MjQsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTczLC45OTk3MywuOTk5NzIsMSwxLDEuMDAyNjcsLjk5OTk5LC45OTk5OCwuOTk5OTgsMSwuOTk5OTgsMS42NjQ3NSwxLC45OTk3MywuOTk5NzMsMS4wMDAyMywuOTk5NzMsLjk5OTcxLC45OTkyNSwxLjAwMDIzLDEsLjk5OTkxLC45OTk4NCwxLjAwMDAyLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDAyLDEsMSwxLDEsMSwxLDEsLjk2MzI5LDEsMS4yMDk4NSwxLjM5NzEzLDEuMDAwMDMsLjgyNTQsMS4wMDAxNSwxLDEuMDAwMzUsMS4wMDAyNywxLjAwMDMxLDEuMDAwMzEsLjk5OTE1LDEuMDAwMzEsMS4wMDAzMSwuOTk5OTksMS4wMDAwMywuOTk5OTksLjk5OTk5LDEuNDExNDQsMS42LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MDU3OSwxLjQwNTc5LDEuMzY2MjUsLjk5OTk5LDEsLjk5ODYxLC45OTg2MSwxLDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsLjk1MzE3LC45OTk5OSwuOTk5OTksLjk5OTk5LC45OTk5OSwxLjQwNDgzLDEsLjk5OTc3LDEuMDAwNTQsMSwxLC45OTk1MywuOTk5NjIsMS4wMDA0MiwuOTk5NSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLHduPXtsaW5lSGVpZ2h0OjEuMixsaW5lR2FwOi4yfSxEbj1bMzY1LDAsMzMzLDI3OCwzMzMsNDc0LDU1Niw1NTYsODg5LDcyMiwyMzgsMzMzLDMzMywzODksNTg0LDI3OCwzMzMsMjc4LDI3OCw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsMzMzLDMzMyw1ODQsNTg0LDU4NCw2MTEsOTc1LDcyMiw3MjIsNzIyLDcyMiw2NjcsNjExLDc3OCw3MjIsMjc4LDU1Niw3MjIsNjExLDgzMyw3MjIsNzc4LDY2Nyw3NzgsNzIyLDY2Nyw2MTEsNzIyLDY2Nyw5NDQsNjY3LDY2Nyw2MTEsMzMzLDI3OCwzMzMsNTg0LDU1NiwzMzMsNTU2LDYxMSw1NTYsNjExLDU1NiwzMzMsNjExLDYxMSwyNzgsMjc4LDU1NiwyNzgsODg5LDYxMSw2MTEsNjExLDYxMSwzODksNTU2LDMzMyw2MTEsNTU2LDc3OCw1NTYsNTU2LDUwMCwzODksMjgwLDM4OSw1ODQsMzMzLDU1Niw1NTYsNTU2LDU1NiwyODAsNTU2LDMzMyw3MzcsMzcwLDU1Niw1ODQsNzM3LDU1Miw0MDAsNTQ5LDMzMywzMzMsMzMzLDU3Niw1NTYsMjc4LDMzMywzMzMsMzY1LDU1Niw4MzQsODM0LDgzNCw2MTEsNzIyLDcyMiw3MjIsNzIyLDcyMiw3MjIsMWUzLDcyMiw2NjcsNjY3LDY2Nyw2NjcsMjc4LDI3OCwyNzgsMjc4LDcyMiw3MjIsNzc4LDc3OCw3NzgsNzc4LDc3OCw1ODQsNzc4LDcyMiw3MjIsNzIyLDcyMiw2NjcsNjY3LDYxMSw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw4ODksNTU2LDU1Niw1NTYsNTU2LDU1NiwyNzgsMjc4LDI3OCwyNzgsNjExLDYxMSw2MTEsNjExLDYxMSw2MTEsNjExLDU0OSw2MTEsNjExLDYxMSw2MTEsNjExLDU1Niw2MTEsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDcxOSw3MjIsNjExLDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw3NzgsNjExLDc3OCw2MTEsNzc4LDYxMSw3NzgsNjExLDcyMiw2MTEsNzIyLDYxMSwyNzgsMjc4LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDI3OCwyNzgsNzg1LDU1Niw1NTYsMjc4LDcyMiw1NTYsNTU2LDYxMSwyNzgsNjExLDI3OCw2MTEsMzg1LDYxMSw0NzksNjExLDI3OCw3MjIsNjExLDcyMiw2MTEsNzIyLDYxMSw3MDgsNzIzLDYxMSw3NzgsNjExLDc3OCw2MTEsNzc4LDYxMSwxZTMsOTQ0LDcyMiwzODksNzIyLDM4OSw3MjIsMzg5LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNjExLDMzMyw2MTEsNDc5LDYxMSwzMzMsNzIyLDYxMSw3MjIsNjExLDcyMiw2MTEsNzIyLDYxMSw3MjIsNjExLDcyMiw2MTEsOTQ0LDc3OCw2NjcsNTU2LDY2Nyw2MTEsNTAwLDYxMSw1MDAsNjExLDUwMCwyNzgsNTU2LDcyMiw1NTYsMWUzLDg4OSw3NzgsNjExLDY2Nyw1NTYsNjExLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsNDY1LDcyMiwzMzMsODUzLDkwNiw0NzQsODI1LDkyNyw4MzgsMjc4LDcyMiw3MjIsNjAxLDcxOSw2NjcsNjExLDcyMiw3NzgsMjc4LDcyMiw2NjcsODMzLDcyMiw2NDQsNzc4LDcyMiw2NjcsNjAwLDYxMSw2NjcsODIxLDY2Nyw4MDksODAyLDI3OCw2NjcsNjE1LDQ1MSw2MTEsMjc4LDU4Miw2MTUsNjEwLDU1Niw2MDYsNDc1LDQ2MCw2MTEsNTQxLDI3OCw1NTgsNTU2LDYxMiw1NTYsNDQ1LDYxMSw3NjYsNjE5LDUyMCw2ODQsNDQ2LDU4Miw3MTUsNTc2LDc1Myw4NDUsMjc4LDU4Miw2MTEsNTgyLDg0NSw2NjcsNjY5LDg4NSw1NjcsNzExLDY2NywyNzgsMjc2LDU1NiwxMDk0LDEwNjIsODc1LDYxMCw3MjIsNjIyLDcxOSw3MjIsNzE5LDcyMiw1NjcsNzEyLDY2Nyw5MDQsNjI2LDcxOSw3MTksNjEwLDcwMiw4MzMsNzIyLDc3OCw3MTksNjY3LDcyMiw2MTEsNjIyLDg1NCw2NjcsNzMwLDcwMywxMDA1LDEwMTksODcwLDk3OSw3MTksNzExLDEwMzEsNzE5LDU1Niw2MTgsNjE1LDQxNyw2MzUsNTU2LDcwOSw0OTcsNjE1LDYxNSw1MDAsNjM1LDc0MCw2MDQsNjExLDYwNCw2MTEsNTU2LDQ5MCw1NTYsODc1LDU1Niw2MTUsNTgxLDgzMyw4NDQsNzI5LDg1NCw2MTUsNTUyLDg1NCw1ODMsNTU2LDU1Niw2MTEsNDE3LDU1Miw1NTYsMjc4LDI4MSwyNzgsOTY5LDkwNiw2MTEsNTAwLDYxNSw1NTYsNjA0LDc3OCw2MTEsNDg3LDQ0Nyw5NDQsNzc4LDk0NCw3NzgsOTQ0LDc3OCw2NjcsNTU2LDMzMywzMzMsNTU2LDFlMywxZTMsNTUyLDI3OCwyNzgsMjc4LDI3OCw1MDAsNTAwLDUwMCw1NTYsNTU2LDM1MCwxZTMsMWUzLDI0MCw0NzksMzMzLDMzMyw2MDQsMzMzLDE2NywzOTYsNTU2LDU1NiwxMDk0LDU1Niw4ODUsNDg5LDExMTUsMWUzLDc2OCw2MDAsODM0LDgzNCw4MzQsODM0LDFlMyw1MDAsMWUzLDUwMCwxZTMsNTAwLDUwMCw0OTQsNjEyLDgyMyw3MTMsNTg0LDU0OSw3MTMsOTc5LDcyMiwyNzQsNTQ5LDU0OSw1ODMsNTQ5LDU0OSw2MDQsNTg0LDYwNCw2MDQsNzA4LDYyNSw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MjksNjA0LDYwNCwzNTQsMzU0LDFlMyw5OTAsOTkwLDk5MCw5OTAsNDk0LDYwNCw2MDQsNjA0LDYwNCwzNTQsMTAyMSwxMDUyLDkxNyw3NTAsNzUwLDUzMSw2NTYsNTk0LDUxMCw1MDAsNzUwLDc1MCw2MTEsNjExLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMjIyLDIyMiwzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzXSxibj1bLTEsLTEsLTEsMzIsMzMsMzQsMzUsMzYsMzcsMzgsMzksNDAsNDEsNDIsNDMsNDQsNDUsNDYsNDcsNDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsNTgsNTksNjAsNjEsNjIsNjMsNjQsNjUsNjYsNjcsNjgsNjksNzAsNzEsNzIsNzMsNzQsNzUsNzYsNzcsNzgsNzksODAsODEsODIsODMsODQsODUsODYsODcsODgsODksOTAsOTEsOTIsOTMsOTQsOTUsOTYsOTcsOTgsOTksMTAwLDEwMSwxMDIsMTAzLDEwNCwxMDUsMTA2LDEwNywxMDgsMTA5LDExMCwxMTEsMTEyLDExMywxMTQsMTE1LDExNiwxMTcsMTE4LDExOSwxMjAsMTIxLDEyMiwxMjMsMTI0LDEyNSwxMjYsMTYxLDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3MSwxNzIsMTc0LDE3NSwxNzYsMTc3LDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwxODUsMTg2LDE4NywxODgsMTg5LDE5MCwxOTEsMTkyLDE5MywxOTQsMTk1LDE5NiwxOTcsMTk4LDE5OSwyMDAsMjAxLDIwMiwyMDMsMjA0LDIwNSwyMDYsMjA3LDIwOCwyMDksMjEwLDIxMSwyMTIsMjEzLDIxNCwyMTUsMjE2LDIxNywyMTgsMjE5LDIyMCwyMjEsMjIyLDIyMywyMjQsMjI1LDIyNiwyMjcsMjI4LDIyOSwyMzAsMjMxLDIzMiwyMzMsMjM0LDIzNSwyMzYsMjM3LDIzOCwyMzksMjQwLDI0MSwyNDIsMjQzLDI0NCwyNDUsMjQ2LDI0NywyNDgsMjQ5LDI1MCwyNTEsMjUyLDI1MywyNTQsMjU1LDI1NiwyNTcsMjU4LDI1OSwyNjAsMjYxLDI2MiwyNjMsMjY0LDI2NSwyNjYsMjY3LDI2OCwyNjksMjcwLDI3MSwyNzIsMjczLDI3NCwyNzUsMjc2LDI3NywyNzgsMjc5LDI4MCwyODEsMjgyLDI4MywyODQsMjg1LDI4NiwyODcsMjg4LDI4OSwyOTAsMjkxLDI5MiwyOTMsMjk0LDI5NSwyOTYsMjk3LDI5OCwyOTksMzAwLDMwMSwzMDIsMzAzLDMwNCwzMDUsMzA2LDMwNywzMDgsMzA5LDMxMCwzMTEsMzEyLDMxMywzMTQsMzE1LDMxNiwzMTcsMzE4LDMxOSwzMjAsMzIxLDMyMiwzMjMsMzI0LDMyNSwzMjYsMzI3LDMyOCwzMjksMzMwLDMzMSwzMzIsMzMzLDMzNCwzMzUsMzM2LDMzNywzMzgsMzM5LDM0MCwzNDEsMzQyLDM0MywzNDQsMzQ1LDM0NiwzNDcsMzQ4LDM0OSwzNTAsMzUxLDM1MiwzNTMsMzU0LDM1NSwzNTYsMzU3LDM1OCwzNTksMzYwLDM2MSwzNjIsMzYzLDM2NCwzNjUsMzY2LDM2NywzNjgsMzY5LDM3MCwzNzEsMzcyLDM3MywzNzQsMzc1LDM3NiwzNzcsMzc4LDM3OSwzODAsMzgxLDM4MiwzODMsNDAyLDUwNiw1MDcsNTA4LDUwOSw1MTAsNTExLDUzNiw1MzcsNTM4LDUzOSw3MTAsNzExLDcxMyw3MjgsNzI5LDczMCw3MzEsNzMyLDczMyw5MDAsOTAxLDkwMiw5MDMsOTA0LDkwNSw5MDYsOTA4LDkxMCw5MTEsOTEyLDkxMyw5MTQsOTE1LDkxNiw5MTcsOTE4LDkxOSw5MjAsOTIxLDkyMiw5MjMsOTI0LDkyNSw5MjYsOTI3LDkyOCw5MjksOTMxLDkzMiw5MzMsOTM0LDkzNSw5MzYsOTM3LDkzOCw5MzksOTQwLDk0MSw5NDIsOTQzLDk0NCw5NDUsOTQ2LDk0Nyw5NDgsOTQ5LDk1MCw5NTEsOTUyLDk1Myw5NTQsOTU1LDk1Niw5NTcsOTU4LDk1OSw5NjAsOTYxLDk2Miw5NjMsOTY0LDk2NSw5NjYsOTY3LDk2OCw5NjksOTcwLDk3MSw5NzIsOTczLDk3NCwxMDI0LDEwMjUsMTAyNiwxMDI3LDEwMjgsMTAyOSwxMDMwLDEwMzEsMTAzMiwxMDMzLDEwMzQsMTAzNSwxMDM2LDEwMzcsMTAzOCwxMDM5LDEwNDAsMTA0MSwxMDQyLDEwNDMsMTA0NCwxMDQ1LDEwNDYsMTA0NywxMDQ4LDEwNDksMTA1MCwxMDUxLDEwNTIsMTA1MywxMDU0LDEwNTUsMTA1NiwxMDU3LDEwNTgsMTA1OSwxMDYwLDEwNjEsMTA2MiwxMDYzLDEwNjQsMTA2NSwxMDY2LDEwNjcsMTA2OCwxMDY5LDEwNzAsMTA3MSwxMDcyLDEwNzMsMTA3NCwxMDc1LDEwNzYsMTA3NywxMDc4LDEwNzksMTA4MCwxMDgxLDEwODIsMTA4MywxMDg0LDEwODUsMTA4NiwxMDg3LDEwODgsMTA4OSwxMDkwLDEwOTEsMTA5MiwxMDkzLDEwOTQsMTA5NSwxMDk2LDEwOTcsMTA5OCwxMDk5LDExMDAsMTEwMSwxMTAyLDExMDMsMTEwNCwxMTA1LDExMDYsMTEwNywxMTA4LDExMDksMTExMCwxMTExLDExMTIsMTExMywxMTE0LDExMTUsMTExNiwxMTE3LDExMTgsMTExOSwxMTM4LDExMzksMTE2OCwxMTY5LDc4MDgsNzgwOSw3ODEwLDc4MTEsNzgxMiw3ODEzLDc5MjIsNzkyMyw4MjA4LDgyMDksODIxMSw4MjEyLDgyMTMsODIxNSw4MjE2LDgyMTcsODIxOCw4MjE5LDgyMjAsODIyMSw4MjIyLDgyMjQsODIyNSw4MjI2LDgyMzAsODI0MCw4MjQyLDgyNDMsODI0OSw4MjUwLDgyNTIsODI1NCw4MjYwLDgzMTksODM1NSw4MzU2LDgzNTksODM2NCw4NDUzLDg0NjcsODQ3MCw4NDgyLDg0ODYsODQ5NCw4NTM5LDg1NDAsODU0MSw4NTQyLDg1OTIsODU5Myw4NTk0LDg1OTUsODU5Niw4NTk3LDg2MTYsODcwNiw4NzEwLDg3MTksODcyMSw4NzIyLDg3MzAsODczNCw4NzM1LDg3NDUsODc0Nyw4Nzc2LDg4MDAsODgwMSw4ODA0LDg4MDUsODk2Miw4OTc2LDg5OTIsODk5Myw5NDcyLDk0NzQsOTQ4NCw5NDg4LDk0OTIsOTQ5Niw5NTAwLDk1MDgsOTUxNiw5NTI0LDk1MzIsOTU1Miw5NTUzLDk1NTQsOTU1NSw5NTU2LDk1NTcsOTU1OCw5NTU5LDk1NjAsOTU2MSw5NTYyLDk1NjMsOTU2NCw5NTY1LDk1NjYsOTU2Nyw5NTY4LDk1NjksOTU3MCw5NTcxLDk1NzIsOTU3Myw5NTc0LDk1NzUsOTU3Niw5NTc3LDk1NzgsOTU3OSw5NTgwLDk2MDAsOTYwNCw5NjA4LDk2MTIsOTYxNiw5NjE3LDk2MTgsOTYxOSw5NjMyLDk2MzMsOTY0Miw5NjQzLDk2NDQsOTY1MCw5NjU4LDk2NjAsOTY2OCw5Njc0LDk2NzUsOTY3OSw5Njg4LDk2ODksOTcwMiw5Nzg2LDk3ODcsOTc4OCw5NzkyLDk3OTQsOTgyNCw5ODI3LDk4MjksOTgzMCw5ODM0LDk4MzUsOTgzNiw2MTQ0MSw2MTQ0Miw2MTQ0NSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMV0sa249WzM2NSwwLDMzMywyNzgsMzMzLDQ3NCw1NTYsNTU2LDg4OSw3MjIsMjM4LDMzMywzMzMsMzg5LDU4NCwyNzgsMzMzLDI3OCwyNzgsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDMzMywzMzMsNTg0LDU4NCw1ODQsNjExLDk3NSw3MjIsNzIyLDcyMiw3MjIsNjY3LDYxMSw3NzgsNzIyLDI3OCw1NTYsNzIyLDYxMSw4MzMsNzIyLDc3OCw2NjcsNzc4LDcyMiw2NjcsNjExLDcyMiw2NjcsOTQ0LDY2Nyw2NjcsNjExLDMzMywyNzgsMzMzLDU4NCw1NTYsMzMzLDU1Niw2MTEsNTU2LDYxMSw1NTYsMzMzLDYxMSw2MTEsMjc4LDI3OCw1NTYsMjc4LDg4OSw2MTEsNjExLDYxMSw2MTEsMzg5LDU1NiwzMzMsNjExLDU1Niw3NzgsNTU2LDU1Niw1MDAsMzg5LDI4MCwzODksNTg0LDMzMyw1NTYsNTU2LDU1Niw1NTYsMjgwLDU1NiwzMzMsNzM3LDM3MCw1NTYsNTg0LDczNyw1NTIsNDAwLDU0OSwzMzMsMzMzLDMzMyw1NzYsNTU2LDI3OCwzMzMsMzMzLDM2NSw1NTYsODM0LDgzNCw4MzQsNjExLDcyMiw3MjIsNzIyLDcyMiw3MjIsNzIyLDFlMyw3MjIsNjY3LDY2Nyw2NjcsNjY3LDI3OCwyNzgsMjc4LDI3OCw3MjIsNzIyLDc3OCw3NzgsNzc4LDc3OCw3NzgsNTg0LDc3OCw3MjIsNzIyLDcyMiw3MjIsNjY3LDY2Nyw2MTEsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsODg5LDU1Niw1NTYsNTU2LDU1Niw1NTYsMjc4LDI3OCwyNzgsMjc4LDYxMSw2MTEsNjExLDYxMSw2MTEsNjExLDYxMSw1NDksNjExLDYxMSw2MTEsNjExLDYxMSw1NTYsNjExLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw3NDAsNzIyLDYxMSw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNzc4LDYxMSw3NzgsNjExLDc3OCw2MTEsNzc4LDYxMSw3MjIsNjExLDcyMiw2MTEsMjc4LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDc4Miw1NTYsNTU2LDI3OCw3MjIsNTU2LDU1Niw2MTEsMjc4LDYxMSwyNzgsNjExLDM5Niw2MTEsNDc5LDYxMSwyNzgsNzIyLDYxMSw3MjIsNjExLDcyMiw2MTEsNzA4LDcyMyw2MTEsNzc4LDYxMSw3NzgsNjExLDc3OCw2MTEsMWUzLDk0NCw3MjIsMzg5LDcyMiwzODksNzIyLDM4OSw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDYxMSwzMzMsNjExLDQ3OSw2MTEsMzMzLDcyMiw2MTEsNzIyLDYxMSw3MjIsNjExLDcyMiw2MTEsNzIyLDYxMSw3MjIsNjExLDk0NCw3NzgsNjY3LDU1Niw2NjcsNjExLDUwMCw2MTEsNTAwLDYxMSw1MDAsMjc4LDU1Niw3MjIsNTU2LDFlMyw4ODksNzc4LDYxMSw2NjcsNTU2LDYxMSwzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMyw3MjIsMzMzLDg1NCw5MDYsNDczLDg0NCw5MzAsODQ3LDI3OCw3MjIsNzIyLDYxMCw2NzEsNjY3LDYxMSw3MjIsNzc4LDI3OCw3MjIsNjY3LDgzMyw3MjIsNjU3LDc3OCw3MTgsNjY3LDU5MCw2MTEsNjY3LDgyMiw2NjcsODI5LDc4MSwyNzgsNjY3LDYyMCw0NzksNjExLDI3OCw1OTEsNjIwLDYyMSw1NTYsNjEwLDQ3OSw0OTIsNjExLDU1OCwyNzgsNTY2LDU1Niw2MDMsNTU2LDQ1MCw2MTEsNzEyLDYwNSw1MzIsNjY0LDQwOSw1OTEsNzA0LDU3OCw3NzMsODM0LDI3OCw1OTEsNjExLDU5MSw4MzQsNjY3LDY2Nyw4ODYsNjE0LDcxOSw2NjcsMjc4LDI3OCw1NTYsMTA5NCwxMDQyLDg1NCw2MjIsNzE5LDY3Nyw3MTksNzIyLDcwOCw3MjIsNjE0LDcyMiw2NjcsOTI3LDY0Myw3MTksNzE5LDYxNSw2ODcsODMzLDcyMiw3NzgsNzE5LDY2Nyw3MjIsNjExLDY3Nyw3ODEsNjY3LDcyOSw3MDgsOTc5LDk4OSw4NTQsMWUzLDcwOCw3MTksMTA0Miw3MjksNTU2LDYxOSw2MDQsNTM0LDYxOCw1NTYsNzM2LDUxMCw2MTEsNjExLDUwNyw2MjIsNzQwLDYwNCw2MTEsNjExLDYxMSw1NTYsODg5LDU1Niw4ODUsNTU2LDY0Niw1ODMsODg5LDkzNSw3MDcsODU0LDU5NCw1NTIsODY1LDU4OSw1NTYsNTU2LDYxMSw0NjksNTYzLDU1NiwyNzgsMjc4LDI3OCw5NjksOTA2LDYxMSw1MDcsNjE5LDU1Niw2MTEsNzc4LDYxMSw1NzUsNDY3LDk0NCw3NzgsOTQ0LDc3OCw5NDQsNzc4LDY2Nyw1NTYsMzMzLDMzMyw1NTYsMWUzLDFlMyw1NTIsMjc4LDI3OCwyNzgsMjc4LDUwMCw1MDAsNTAwLDU1Niw1NTYsMzUwLDFlMywxZTMsMjQwLDQ3OSwzMzMsMzMzLDYwNCwzMzMsMTY3LDM5Niw1NTYsNTU2LDExMDQsNTU2LDg4NSw1MTYsMTE0NiwxZTMsNzY4LDYwMCw4MzQsODM0LDgzNCw4MzQsOTk5LDUwMCwxZTMsNTAwLDFlMyw1MDAsNTAwLDQ5NCw2MTIsODIzLDcxMyw1ODQsNTQ5LDcxMyw5NzksNzIyLDI3NCw1NDksNTQ5LDU4Myw1NDksNTQ5LDYwNCw1ODQsNjA0LDYwNCw3MDgsNjI1LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcyOSw2MDQsNjA0LDM1NCwzNTQsMWUzLDk5MCw5OTAsOTkwLDk5MCw0OTQsNjA0LDYwNCw2MDQsNjA0LDM1NCwxMDIxLDEwNTIsOTE3LDc1MCw3NTAsNTMxLDY1Niw1OTQsNTEwLDUwMCw3NTAsNzUwLDYxMSw2MTEsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywyMjIsMjIyLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzNdLEZuPVstMSwtMSwtMSwzMiwzMywzNCwzNSwzNiwzNywzOCwzOSw0MCw0MSw0Miw0Myw0NCw0NSw0Niw0Nyw0OCw0OSw1MCw1MSw1Miw1Myw1NCw1NSw1Niw1Nyw1OCw1OSw2MCw2MSw2Miw2Myw2NCw2NSw2Niw2Nyw2OCw2OSw3MCw3MSw3Miw3Myw3NCw3NSw3Niw3Nyw3OCw3OSw4MCw4MSw4Miw4Myw4NCw4NSw4Niw4Nyw4OCw4OSw5MCw5MSw5Miw5Myw5NCw5NSw5Niw5Nyw5OCw5OSwxMDAsMTAxLDEwMiwxMDMsMTA0LDEwNSwxMDYsMTA3LDEwOCwxMDksMTEwLDExMSwxMTIsMTEzLDExNCwxMTUsMTE2LDExNywxMTgsMTE5LDEyMCwxMjEsMTIyLDEyMywxMjQsMTI1LDEyNiwxNjEsMTYyLDE2MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwxNzAsMTcxLDE3MiwxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxODYsMTg3LDE4OCwxODksMTkwLDE5MSwxOTIsMTkzLDE5NCwxOTUsMTk2LDE5NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsMjA4LDIwOSwyMTAsMjExLDIxMiwyMTMsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMTksMjIwLDIyMSwyMjIsMjIzLDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4LDIzOSwyNDAsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0OCwyNDksMjUwLDI1MSwyNTIsMjUzLDI1NCwyNTUsMjU2LDI1NywyNTgsMjU5LDI2MCwyNjEsMjYyLDI2MywyNjQsMjY1LDI2NiwyNjcsMjY4LDI2OSwyNzAsMjcxLDI3MiwyNzMsMjc0LDI3NSwyNzYsMjc3LDI3OCwyNzksMjgwLDI4MSwyODIsMjgzLDI4NCwyODUsMjg2LDI4NywyODgsMjg5LDI5MCwyOTEsMjkyLDI5MywyOTQsMjk1LDI5NiwyOTcsMjk4LDI5OSwzMDAsMzAxLDMwMiwzMDMsMzA0LDMwNSwzMDYsMzA3LDMwOCwzMDksMzEwLDMxMSwzMTIsMzEzLDMxNCwzMTUsMzE2LDMxNywzMTgsMzE5LDMyMCwzMjEsMzIyLDMyMywzMjQsMzI1LDMyNiwzMjcsMzI4LDMyOSwzMzAsMzMxLDMzMiwzMzMsMzM0LDMzNSwzMzYsMzM3LDMzOCwzMzksMzQwLDM0MSwzNDIsMzQzLDM0NCwzNDUsMzQ2LDM0NywzNDgsMzQ5LDM1MCwzNTEsMzUyLDM1MywzNTQsMzU1LDM1NiwzNTcsMzU4LDM1OSwzNjAsMzYxLDM2MiwzNjMsMzY0LDM2NSwzNjYsMzY3LDM2OCwzNjksMzcwLDM3MSwzNzIsMzczLDM3NCwzNzUsMzc2LDM3NywzNzgsMzc5LDM4MCwzODEsMzgyLDM4Myw0MDIsNTA2LDUwNyw1MDgsNTA5LDUxMCw1MTEsNTM2LDUzNyw1MzgsNTM5LDcxMCw3MTEsNzEzLDcyOCw3MjksNzMwLDczMSw3MzIsNzMzLDkwMCw5MDEsOTAyLDkwMyw5MDQsOTA1LDkwNiw5MDgsOTEwLDkxMSw5MTIsOTEzLDkxNCw5MTUsOTE2LDkxNyw5MTgsOTE5LDkyMCw5MjEsOTIyLDkyMyw5MjQsOTI1LDkyNiw5MjcsOTI4LDkyOSw5MzEsOTMyLDkzMyw5MzQsOTM1LDkzNiw5MzcsOTM4LDkzOSw5NDAsOTQxLDk0Miw5NDMsOTQ0LDk0NSw5NDYsOTQ3LDk0OCw5NDksOTUwLDk1MSw5NTIsOTUzLDk1NCw5NTUsOTU2LDk1Nyw5NTgsOTU5LDk2MCw5NjEsOTYyLDk2Myw5NjQsOTY1LDk2Niw5NjcsOTY4LDk2OSw5NzAsOTcxLDk3Miw5NzMsOTc0LDEwMjQsMTAyNSwxMDI2LDEwMjcsMTAyOCwxMDI5LDEwMzAsMTAzMSwxMDMyLDEwMzMsMTAzNCwxMDM1LDEwMzYsMTAzNywxMDM4LDEwMzksMTA0MCwxMDQxLDEwNDIsMTA0MywxMDQ0LDEwNDUsMTA0NiwxMDQ3LDEwNDgsMTA0OSwxMDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDU2LDEwNTcsMTA1OCwxMDU5LDEwNjAsMTA2MSwxMDYyLDEwNjMsMTA2NCwxMDY1LDEwNjYsMTA2NywxMDY4LDEwNjksMTA3MCwxMDcxLDEwNzIsMTA3MywxMDc0LDEwNzUsMTA3NiwxMDc3LDEwNzgsMTA3OSwxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQsMTA4NSwxMDg2LDEwODcsMTA4OCwxMDg5LDEwOTAsMTA5MSwxMDkyLDEwOTMsMTA5NCwxMDk1LDEwOTYsMTA5NywxMDk4LDEwOTksMTEwMCwxMTAxLDExMDIsMTEwMywxMTA0LDExMDUsMTEwNiwxMTA3LDExMDgsMTEwOSwxMTEwLDExMTEsMTExMiwxMTEzLDExMTQsMTExNSwxMTE2LDExMTcsMTExOCwxMTE5LDExMzgsMTEzOSwxMTY4LDExNjksNzgwOCw3ODA5LDc4MTAsNzgxMSw3ODEyLDc4MTMsNzkyMiw3OTIzLDgyMDgsODIwOSw4MjExLDgyMTIsODIxMyw4MjE1LDgyMTYsODIxNyw4MjE4LDgyMTksODIyMCw4MjIxLDgyMjIsODIyNCw4MjI1LDgyMjYsODIzMCw4MjQwLDgyNDIsODI0Myw4MjQ5LDgyNTAsODI1Miw4MjU0LDgyNjAsODMxOSw4MzU1LDgzNTYsODM1OSw4MzY0LDg0NTMsODQ2Nyw4NDcwLDg0ODIsODQ4Niw4NDk0LDg1MzksODU0MCw4NTQxLDg1NDIsODU5Miw4NTkzLDg1OTQsODU5NSw4NTk2LDg1OTcsODYxNiw4NzA2LDg3MTAsODcxOSw4NzIxLDg3MjIsODczMCw4NzM0LDg3MzUsODc0NSw4NzQ3LDg3NzYsODgwMCw4ODAxLDg4MDQsODgwNSw4OTYyLDg5NzYsODk5Miw4OTkzLDk0NzIsOTQ3NCw5NDg0LDk0ODgsOTQ5Miw5NDk2LDk1MDAsOTUwOCw5NTE2LDk1MjQsOTUzMiw5NTUyLDk1NTMsOTU1NCw5NTU1LDk1NTYsOTU1Nyw5NTU4LDk1NTksOTU2MCw5NTYxLDk1NjIsOTU2Myw5NTY0LDk1NjUsOTU2Niw5NTY3LDk1NjgsOTU2OSw5NTcwLDk1NzEsOTU3Miw5NTczLDk1NzQsOTU3NSw5NTc2LDk1NzcsOTU3OCw5NTc5LDk1ODAsOTYwMCw5NjA0LDk2MDgsOTYxMiw5NjE2LDk2MTcsOTYxOCw5NjE5LDk2MzIsOTYzMyw5NjQyLDk2NDMsOTY0NCw5NjUwLDk2NTgsOTY2MCw5NjY4LDk2NzQsOTY3NSw5Njc5LDk2ODgsOTY4OSw5NzAyLDk3ODYsOTc4Nyw5Nzg4LDk3OTIsOTc5NCw5ODI0LDk4MjcsOTgyOSw5ODMwLDk4MzQsOTgzNSw5ODM2LDYxNDQxLDYxNDQyLDYxNDQ1LC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xXSxTbj1bMzY1LDAsMzMzLDI3OCwyNzgsMzU1LDU1Niw1NTYsODg5LDY2NywxOTEsMzMzLDMzMywzODksNTg0LDI3OCwzMzMsMjc4LDI3OCw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsMjc4LDI3OCw1ODQsNTg0LDU4NCw1NTYsMTAxNSw2NjcsNjY3LDcyMiw3MjIsNjY3LDYxMSw3NzgsNzIyLDI3OCw1MDAsNjY3LDU1Niw4MzMsNzIyLDc3OCw2NjcsNzc4LDcyMiw2NjcsNjExLDcyMiw2NjcsOTQ0LDY2Nyw2NjcsNjExLDI3OCwyNzgsMjc4LDQ2OSw1NTYsMzMzLDU1Niw1NTYsNTAwLDU1Niw1NTYsMjc4LDU1Niw1NTYsMjIyLDIyMiw1MDAsMjIyLDgzMyw1NTYsNTU2LDU1Niw1NTYsMzMzLDUwMCwyNzgsNTU2LDUwMCw3MjIsNTAwLDUwMCw1MDAsMzM0LDI2MCwzMzQsNTg0LDMzMyw1NTYsNTU2LDU1Niw1NTYsMjYwLDU1NiwzMzMsNzM3LDM3MCw1NTYsNTg0LDczNyw1NTIsNDAwLDU0OSwzMzMsMzMzLDMzMyw1NzYsNTM3LDI3OCwzMzMsMzMzLDM2NSw1NTYsODM0LDgzNCw4MzQsNjExLDY2Nyw2NjcsNjY3LDY2Nyw2NjcsNjY3LDFlMyw3MjIsNjY3LDY2Nyw2NjcsNjY3LDI3OCwyNzgsMjc4LDI3OCw3MjIsNzIyLDc3OCw3NzgsNzc4LDc3OCw3NzgsNTg0LDc3OCw3MjIsNzIyLDcyMiw3MjIsNjY3LDY2Nyw2MTEsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsODg5LDUwMCw1NTYsNTU2LDU1Niw1NTYsMjc4LDI3OCwyNzgsMjc4LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NDksNjExLDU1Niw1NTYsNTU2LDU1Niw1MDAsNTU2LDUwMCw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw3MjIsNTAwLDcyMiw1MDAsNzIyLDUwMCw3MjIsNTAwLDcyMiw2MjUsNzIyLDU1Niw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNzc4LDU1Niw3NzgsNTU2LDc3OCw1NTYsNzc4LDU1Niw3MjIsNTU2LDcyMiw1NTYsMjc4LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDIyMiwyNzgsMjc4LDczMyw0NDQsNTAwLDIyMiw2NjcsNTAwLDUwMCw1NTYsMjIyLDU1NiwyMjIsNTU2LDI4MSw1NTYsNDAwLDU1NiwyMjIsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNjE1LDcyMyw1NTYsNzc4LDU1Niw3NzgsNTU2LDc3OCw1NTYsMWUzLDk0NCw3MjIsMzMzLDcyMiwzMzMsNzIyLDMzMyw2NjcsNTAwLDY2Nyw1MDAsNjY3LDUwMCw2NjcsNTAwLDYxMSwyNzgsNjExLDM1NCw2MTEsMjc4LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDk0NCw3MjIsNjY3LDUwMCw2NjcsNjExLDUwMCw2MTEsNTAwLDYxMSw1MDAsMjIyLDU1Niw2NjcsNTU2LDFlMyw4ODksNzc4LDYxMSw2NjcsNTAwLDYxMSwyNzgsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMyw2NjcsMjc4LDc4OSw4NDYsMzg5LDc5NCw4NjUsNzc1LDIyMiw2NjcsNjY3LDU3MCw2NzEsNjY3LDYxMSw3MjIsNzc4LDI3OCw2NjcsNjY3LDgzMyw3MjIsNjQ4LDc3OCw3MjUsNjY3LDYwMCw2MTEsNjY3LDgzNyw2NjcsODMxLDc2MSwyNzgsNjY3LDU3MCw0MzksNTU1LDIyMiw1NTAsNTcwLDU3MSw1MDAsNTU2LDQzOSw0NjMsNTU1LDU0MiwyMjIsNTAwLDQ5Miw1NDgsNTAwLDQ0Nyw1NTYsNjcwLDU3Myw0ODYsNjAzLDM3NCw1NTAsNjUyLDU0Niw3MjgsNzc5LDIyMiw1NTAsNTU2LDU1MCw3NzksNjY3LDY2Nyw4NDMsNTQ0LDcwOCw2NjcsMjc4LDI3OCw1MDAsMTA2Niw5ODIsODQ0LDU4OSw3MTUsNjM5LDcyNCw2NjcsNjUxLDY2Nyw1NDQsNzA0LDY2Nyw5MTcsNjE0LDcxNSw3MTUsNTg5LDY4Niw4MzMsNzIyLDc3OCw3MjUsNjY3LDcyMiw2MTEsNjM5LDc5NSw2NjcsNzI3LDY3Myw5MjAsOTIzLDgwNSw4ODYsNjUxLDY5NCwxMDIyLDY4Miw1NTYsNTYyLDUyMiw0OTMsNTUzLDU1Niw2ODgsNDY1LDU1Niw1NTYsNDcyLDU2NCw2ODYsNTUwLDU1Niw1NTYsNTU2LDUwMCw4MzMsNTAwLDgzNSw1MDAsNTcyLDUxOCw4MzAsODUxLDYyMSw3MzYsNTI2LDQ5Miw3NTIsNTM0LDU1Niw1NTYsNTU2LDM3OCw0OTYsNTAwLDIyMiwyMjIsMjIyLDkxMCw4MjgsNTU2LDQ3Miw1NjUsNTAwLDU1Niw3NzgsNTU2LDQ5MiwzMzksOTQ0LDcyMiw5NDQsNzIyLDk0NCw3MjIsNjY3LDUwMCwzMzMsMzMzLDU1NiwxZTMsMWUzLDU1MiwyMjIsMjIyLDIyMiwyMjIsMzMzLDMzMywzMzMsNTU2LDU1NiwzNTAsMWUzLDFlMywxODgsMzU0LDMzMywzMzMsNTAwLDMzMywxNjcsMzY1LDU1Niw1NTYsMTA5NCw1NTYsODg1LDMyMywxMDgzLDFlMyw3NjgsNjAwLDgzNCw4MzQsODM0LDgzNCwxZTMsNTAwLDk5OCw1MDAsMWUzLDUwMCw1MDAsNDk0LDYxMiw4MjMsNzEzLDU4NCw1NDksNzEzLDk3OSw3MTksMjc0LDU0OSw1NDksNTg0LDU0OSw1NDksNjA0LDU4NCw2MDQsNjA0LDcwOCw2MjUsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzI5LDYwNCw2MDQsMzU0LDM1NCwxZTMsOTkwLDk5MCw5OTAsOTkwLDQ5NCw2MDQsNjA0LDYwNCw2MDQsMzU0LDEwMjEsMTA1Miw5MTcsNzUwLDc1MCw1MzEsNjU2LDU5NCw1MTAsNTAwLDc1MCw3NTAsNTAwLDUwMCwzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDIyMiwyMjIsMjk0LDI5NCwzMjQsMzI0LDMxNiwzMjgsMzk4LDI4NV0sUm49Wy0xLC0xLC0xLDMyLDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyLDQzLDQ0LDQ1LDQ2LDQ3LDQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3LDU4LDU5LDYwLDYxLDYyLDYzLDY0LDY1LDY2LDY3LDY4LDY5LDcwLDcxLDcyLDczLDc0LDc1LDc2LDc3LDc4LDc5LDgwLDgxLDgyLDgzLDg0LDg1LDg2LDg3LDg4LDg5LDkwLDkxLDkyLDkzLDk0LDk1LDk2LDk3LDk4LDk5LDEwMCwxMDEsMTAyLDEwMywxMDQsMTA1LDEwNiwxMDcsMTA4LDEwOSwxMTAsMTExLDExMiwxMTMsMTE0LDExNSwxMTYsMTE3LDExOCwxMTksMTIwLDEyMSwxMjIsMTIzLDEyNCwxMjUsMTI2LDE2MSwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEsMTcyLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE4NiwxODcsMTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwyMTEsMjEyLDIxMywyMTQsMjE1LDIxNiwyMTcsMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsMjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywyMzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsMjQ4LDI0OSwyNTAsMjUxLDI1MiwyNTMsMjU0LDI1NSwyNTYsMjU3LDI1OCwyNTksMjYwLDI2MSwyNjIsMjYzLDI2NCwyNjUsMjY2LDI2NywyNjgsMjY5LDI3MCwyNzEsMjcyLDI3MywyNzQsMjc1LDI3NiwyNzcsMjc4LDI3OSwyODAsMjgxLDI4MiwyODMsMjg0LDI4NSwyODYsMjg3LDI4OCwyODksMjkwLDI5MSwyOTIsMjkzLDI5NCwyOTUsMjk2LDI5NywyOTgsMjk5LDMwMCwzMDEsMzAyLDMwMywzMDQsMzA1LDMwNiwzMDcsMzA4LDMwOSwzMTAsMzExLDMxMiwzMTMsMzE0LDMxNSwzMTYsMzE3LDMxOCwzMTksMzIwLDMyMSwzMjIsMzIzLDMyNCwzMjUsMzI2LDMyNywzMjgsMzI5LDMzMCwzMzEsMzMyLDMzMywzMzQsMzM1LDMzNiwzMzcsMzM4LDMzOSwzNDAsMzQxLDM0MiwzNDMsMzQ0LDM0NSwzNDYsMzQ3LDM0OCwzNDksMzUwLDM1MSwzNTIsMzUzLDM1NCwzNTUsMzU2LDM1NywzNTgsMzU5LDM2MCwzNjEsMzYyLDM2MywzNjQsMzY1LDM2NiwzNjcsMzY4LDM2OSwzNzAsMzcxLDM3MiwzNzMsMzc0LDM3NSwzNzYsMzc3LDM3OCwzNzksMzgwLDM4MSwzODIsMzgzLDQwMiw1MDYsNTA3LDUwOCw1MDksNTEwLDUxMSw1MzYsNTM3LDUzOCw1MzksNzEwLDcxMSw3MTMsNzI4LDcyOSw3MzAsNzMxLDczMiw3MzMsOTAwLDkwMSw5MDIsOTAzLDkwNCw5MDUsOTA2LDkwOCw5MTAsOTExLDkxMiw5MTMsOTE0LDkxNSw5MTYsOTE3LDkxOCw5MTksOTIwLDkyMSw5MjIsOTIzLDkyNCw5MjUsOTI2LDkyNyw5MjgsOTI5LDkzMSw5MzIsOTMzLDkzNCw5MzUsOTM2LDkzNyw5MzgsOTM5LDk0MCw5NDEsOTQyLDk0Myw5NDQsOTQ1LDk0Niw5NDcsOTQ4LDk0OSw5NTAsOTUxLDk1Miw5NTMsOTU0LDk1NSw5NTYsOTU3LDk1OCw5NTksOTYwLDk2MSw5NjIsOTYzLDk2NCw5NjUsOTY2LDk2Nyw5NjgsOTY5LDk3MCw5NzEsOTcyLDk3Myw5NzQsMTAyNCwxMDI1LDEwMjYsMTAyNywxMDI4LDEwMjksMTAzMCwxMDMxLDEwMzIsMTAzMywxMDM0LDEwMzUsMTAzNiwxMDM3LDEwMzgsMTAzOSwxMDQwLDEwNDEsMTA0MiwxMDQzLDEwNDQsMTA0NSwxMDQ2LDEwNDcsMTA0OCwxMDQ5LDEwNTAsMTA1MSwxMDUyLDEwNTMsMTA1NCwxMDU1LDEwNTYsMTA1NywxMDU4LDEwNTksMTA2MCwxMDYxLDEwNjIsMTA2MywxMDY0LDEwNjUsMTA2NiwxMDY3LDEwNjgsMTA2OSwxMDcwLDEwNzEsMTA3MiwxMDczLDEwNzQsMTA3NSwxMDc2LDEwNzcsMTA3OCwxMDc5LDEwODAsMTA4MSwxMDgyLDEwODMsMTA4NCwxMDg1LDEwODYsMTA4NywxMDg4LDEwODksMTA5MCwxMDkxLDEwOTIsMTA5MywxMDk0LDEwOTUsMTA5NiwxMDk3LDEwOTgsMTA5OSwxMTAwLDExMDEsMTEwMiwxMTAzLDExMDQsMTEwNSwxMTA2LDExMDcsMTEwOCwxMTA5LDExMTAsMTExMSwxMTEyLDExMTMsMTExNCwxMTE1LDExMTYsMTExNywxMTE4LDExMTksMTEzOCwxMTM5LDExNjgsMTE2OSw3ODA4LDc4MDksNzgxMCw3ODExLDc4MTIsNzgxMyw3OTIyLDc5MjMsODIwOCw4MjA5LDgyMTEsODIxMiw4MjEzLDgyMTUsODIxNiw4MjE3LDgyMTgsODIxOSw4MjIwLDgyMjEsODIyMiw4MjI0LDgyMjUsODIyNiw4MjMwLDgyNDAsODI0Miw4MjQzLDgyNDksODI1MCw4MjUyLDgyNTQsODI2MCw4MzE5LDgzNTUsODM1Niw4MzU5LDgzNjQsODQ1Myw4NDY3LDg0NzAsODQ4Miw4NDg2LDg0OTQsODUzOSw4NTQwLDg1NDEsODU0Miw4NTkyLDg1OTMsODU5NCw4NTk1LDg1OTYsODU5Nyw4NjE2LDg3MDYsODcxMCw4NzE5LDg3MjEsODcyMiw4NzMwLDg3MzQsODczNSw4NzQ1LDg3NDcsODc3Niw4ODAwLDg4MDEsODgwNCw4ODA1LDg5NjIsODk3Niw4OTkyLDg5OTMsOTQ3Miw5NDc0LDk0ODQsOTQ4OCw5NDkyLDk0OTYsOTUwMCw5NTA4LDk1MTYsOTUyNCw5NTMyLDk1NTIsOTU1Myw5NTU0LDk1NTUsOTU1Niw5NTU3LDk1NTgsOTU1OSw5NTYwLDk1NjEsOTU2Miw5NTYzLDk1NjQsOTU2NSw5NTY2LDk1NjcsOTU2OCw5NTY5LDk1NzAsOTU3MSw5NTcyLDk1NzMsOTU3NCw5NTc1LDk1NzYsOTU3Nyw5NTc4LDk1NzksOTU4MCw5NjAwLDk2MDQsOTYwOCw5NjEyLDk2MTYsOTYxNyw5NjE4LDk2MTksOTYzMiw5NjMzLDk2NDIsOTY0Myw5NjQ0LDk2NTAsOTY1OCw5NjYwLDk2NjgsOTY3NCw5Njc1LDk2NzksOTY4OCw5Njg5LDk3MDIsOTc4Niw5Nzg3LDk3ODgsOTc5Miw5Nzk0LDk4MjQsOTgyNyw5ODI5LDk4MzAsOTgzNCw5ODM1LDk4MzYsNjE0NDEsNjE0NDIsNjE0NDUsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTFdLEduPVszNjUsMCwzMzMsMjc4LDI3OCwzNTUsNTU2LDU1Niw4ODksNjY3LDE5MSwzMzMsMzMzLDM4OSw1ODQsMjc4LDMzMywyNzgsMjc4LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1NiwyNzgsMjc4LDU4NCw1ODQsNTg0LDU1NiwxMDE1LDY2Nyw2NjcsNzIyLDcyMiw2NjcsNjExLDc3OCw3MjIsMjc4LDUwMCw2NjcsNTU2LDgzMyw3MjIsNzc4LDY2Nyw3NzgsNzIyLDY2Nyw2MTEsNzIyLDY2Nyw5NDQsNjY3LDY2Nyw2MTEsMjc4LDI3OCwyNzgsNDY5LDU1NiwzMzMsNTU2LDU1Niw1MDAsNTU2LDU1NiwyNzgsNTU2LDU1NiwyMjIsMjIyLDUwMCwyMjIsODMzLDU1Niw1NTYsNTU2LDU1NiwzMzMsNTAwLDI3OCw1NTYsNTAwLDcyMiw1MDAsNTAwLDUwMCwzMzQsMjYwLDMzNCw1ODQsMzMzLDU1Niw1NTYsNTU2LDU1NiwyNjAsNTU2LDMzMyw3MzcsMzcwLDU1Niw1ODQsNzM3LDU1Miw0MDAsNTQ5LDMzMywzMzMsMzMzLDU3Niw1MzcsMjc4LDMzMywzMzMsMzY1LDU1Niw4MzQsODM0LDgzNCw2MTEsNjY3LDY2Nyw2NjcsNjY3LDY2Nyw2NjcsMWUzLDcyMiw2NjcsNjY3LDY2Nyw2NjcsMjc4LDI3OCwyNzgsMjc4LDcyMiw3MjIsNzc4LDc3OCw3NzgsNzc4LDc3OCw1ODQsNzc4LDcyMiw3MjIsNzIyLDcyMiw2NjcsNjY3LDYxMSw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw4ODksNTAwLDU1Niw1NTYsNTU2LDU1NiwyNzgsMjc4LDI3OCwyNzgsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU0OSw2MTEsNTU2LDU1Niw1NTYsNTU2LDUwMCw1NTYsNTAwLDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDcyMiw1MDAsNzIyLDUwMCw3MjIsNTAwLDcyMiw1MDAsNzIyLDYxNSw3MjIsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw3NzgsNTU2LDc3OCw1NTYsNzc4LDU1Niw3NzgsNTU2LDcyMiw1NTYsNzIyLDU1NiwyNzgsMjc4LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjIyLDI3OCwyNzgsNzM1LDQ0NCw1MDAsMjIyLDY2Nyw1MDAsNTAwLDU1NiwyMjIsNTU2LDIyMiw1NTYsMjkyLDU1NiwzMzQsNTU2LDIyMiw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw2MDQsNzIzLDU1Niw3NzgsNTU2LDc3OCw1NTYsNzc4LDU1NiwxZTMsOTQ0LDcyMiwzMzMsNzIyLDMzMyw3MjIsMzMzLDY2Nyw1MDAsNjY3LDUwMCw2NjcsNTAwLDY2Nyw1MDAsNjExLDI3OCw2MTEsMzc1LDYxMSwyNzgsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsOTQ0LDcyMiw2NjcsNTAwLDY2Nyw2MTEsNTAwLDYxMSw1MDAsNjExLDUwMCwyMjIsNTU2LDY2Nyw1NTYsMWUzLDg4OSw3NzgsNjExLDY2Nyw1MDAsNjExLDI3OCwzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDY2NywyNzgsNzg0LDgzOCwzODQsNzc0LDg1NSw3NTIsMjIyLDY2Nyw2NjcsNTUxLDY2OCw2NjcsNjExLDcyMiw3NzgsMjc4LDY2Nyw2NjgsODMzLDcyMiw2NTAsNzc4LDcyMiw2NjcsNjE4LDYxMSw2NjcsNzk4LDY2Nyw4MzUsNzQ4LDI3OCw2NjcsNTc4LDQ0Niw1NTYsMjIyLDU0Nyw1NzgsNTc1LDUwMCw1NTcsNDQ2LDQ0MSw1NTYsNTU2LDIyMiw1MDAsNTAwLDU3Niw1MDAsNDQ4LDU1Niw2OTAsNTY5LDQ4Miw2MTcsMzk1LDU0Nyw2NDgsNTI1LDcxMyw3ODEsMjIyLDU0Nyw1NTYsNTQ3LDc4MSw2NjcsNjY3LDg2NSw1NDIsNzE5LDY2NywyNzgsMjc4LDUwMCwxMDU3LDEwMTAsODU0LDU4Myw3MjIsNjM1LDcxOSw2NjcsNjU2LDY2Nyw1NDIsNjc3LDY2Nyw5MjMsNjA0LDcxOSw3MTksNTgzLDY1Niw4MzMsNzIyLDc3OCw3MTksNjY3LDcyMiw2MTEsNjM1LDc2MCw2NjcsNzQwLDY2Nyw5MTcsOTM4LDc5Miw4ODUsNjU2LDcxOSwxMDEwLDcyMiw1NTYsNTczLDUzMSwzNjUsNTgzLDU1Niw2NjksNDU4LDU1OSw1NTksNDM4LDU4Myw2ODgsNTUyLDU1Niw1NDIsNTU2LDUwMCw0NTgsNTAwLDgyMyw1MDAsNTczLDUyMSw4MDIsODIzLDYyNSw3MTksNTIxLDUxMCw3NTAsNTQyLDU1Niw1NTYsNTU2LDM2NSw1MTAsNTAwLDIyMiwyNzgsMjIyLDkwNiw4MTIsNTU2LDQzOCw1NTksNTAwLDU1Miw3NzgsNTU2LDQ4OSw0MTEsOTQ0LDcyMiw5NDQsNzIyLDk0NCw3MjIsNjY3LDUwMCwzMzMsMzMzLDU1NiwxZTMsMWUzLDU1MiwyMjIsMjIyLDIyMiwyMjIsMzMzLDMzMywzMzMsNTU2LDU1NiwzNTAsMWUzLDFlMywxODgsMzU0LDMzMywzMzMsNTAwLDMzMywxNjcsMzY1LDU1Niw1NTYsMTA5NCw1NTYsODg1LDMyMywxMDczLDFlMyw3NjgsNjAwLDgzNCw4MzQsODM0LDgzNCwxZTMsNTAwLDFlMyw1MDAsMWUzLDUwMCw1MDAsNDk0LDYxMiw4MjMsNzEzLDU4NCw1NDksNzEzLDk3OSw3MTksMjc0LDU0OSw1NDksNTgzLDU0OSw1NDksNjA0LDU4NCw2MDQsNjA0LDcwOCw2MjUsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzI5LDYwNCw2MDQsMzU0LDM1NCwxZTMsOTkwLDk5MCw5OTAsOTkwLDQ5NCw2MDQsNjA0LDYwNCw2MDQsMzU0LDEwMjEsMTA1Miw5MTcsNzUwLDc1MCw1MzEsNjU2LDU5NCw1MTAsNTAwLDc1MCw3NTAsNTAwLDUwMCwzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDIyMiwyMjIsMjk0LDI5NCwzMjQsMzI0LDMxNiwzMjgsMzk4LDI4NV0sTm49Wy0xLC0xLC0xLDMyLDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyLDQzLDQ0LDQ1LDQ2LDQ3LDQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3LDU4LDU5LDYwLDYxLDYyLDYzLDY0LDY1LDY2LDY3LDY4LDY5LDcwLDcxLDcyLDczLDc0LDc1LDc2LDc3LDc4LDc5LDgwLDgxLDgyLDgzLDg0LDg1LDg2LDg3LDg4LDg5LDkwLDkxLDkyLDkzLDk0LDk1LDk2LDk3LDk4LDk5LDEwMCwxMDEsMTAyLDEwMywxMDQsMTA1LDEwNiwxMDcsMTA4LDEwOSwxMTAsMTExLDExMiwxMTMsMTE0LDExNSwxMTYsMTE3LDExOCwxMTksMTIwLDEyMSwxMjIsMTIzLDEyNCwxMjUsMTI2LDE2MSwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEsMTcyLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE4NiwxODcsMTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwyMTEsMjEyLDIxMywyMTQsMjE1LDIxNiwyMTcsMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsMjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywyMzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsMjQ4LDI0OSwyNTAsMjUxLDI1MiwyNTMsMjU0LDI1NSwyNTYsMjU3LDI1OCwyNTksMjYwLDI2MSwyNjIsMjYzLDI2NCwyNjUsMjY2LDI2NywyNjgsMjY5LDI3MCwyNzEsMjcyLDI3MywyNzQsMjc1LDI3NiwyNzcsMjc4LDI3OSwyODAsMjgxLDI4MiwyODMsMjg0LDI4NSwyODYsMjg3LDI4OCwyODksMjkwLDI5MSwyOTIsMjkzLDI5NCwyOTUsMjk2LDI5NywyOTgsMjk5LDMwMCwzMDEsMzAyLDMwMywzMDQsMzA1LDMwNiwzMDcsMzA4LDMwOSwzMTAsMzExLDMxMiwzMTMsMzE0LDMxNSwzMTYsMzE3LDMxOCwzMTksMzIwLDMyMSwzMjIsMzIzLDMyNCwzMjUsMzI2LDMyNywzMjgsMzI5LDMzMCwzMzEsMzMyLDMzMywzMzQsMzM1LDMzNiwzMzcsMzM4LDMzOSwzNDAsMzQxLDM0MiwzNDMsMzQ0LDM0NSwzNDYsMzQ3LDM0OCwzNDksMzUwLDM1MSwzNTIsMzUzLDM1NCwzNTUsMzU2LDM1NywzNTgsMzU5LDM2MCwzNjEsMzYyLDM2MywzNjQsMzY1LDM2NiwzNjcsMzY4LDM2OSwzNzAsMzcxLDM3MiwzNzMsMzc0LDM3NSwzNzYsMzc3LDM3OCwzNzksMzgwLDM4MSwzODIsMzgzLDQwMiw1MDYsNTA3LDUwOCw1MDksNTEwLDUxMSw1MzYsNTM3LDUzOCw1MzksNzEwLDcxMSw3MTMsNzI4LDcyOSw3MzAsNzMxLDczMiw3MzMsOTAwLDkwMSw5MDIsOTAzLDkwNCw5MDUsOTA2LDkwOCw5MTAsOTExLDkxMiw5MTMsOTE0LDkxNSw5MTYsOTE3LDkxOCw5MTksOTIwLDkyMSw5MjIsOTIzLDkyNCw5MjUsOTI2LDkyNyw5MjgsOTI5LDkzMSw5MzIsOTMzLDkzNCw5MzUsOTM2LDkzNyw5MzgsOTM5LDk0MCw5NDEsOTQyLDk0Myw5NDQsOTQ1LDk0Niw5NDcsOTQ4LDk0OSw5NTAsOTUxLDk1Miw5NTMsOTU0LDk1NSw5NTYsOTU3LDk1OCw5NTksOTYwLDk2MSw5NjIsOTYzLDk2NCw5NjUsOTY2LDk2Nyw5NjgsOTY5LDk3MCw5NzEsOTcyLDk3Myw5NzQsMTAyNCwxMDI1LDEwMjYsMTAyNywxMDI4LDEwMjksMTAzMCwxMDMxLDEwMzIsMTAzMywxMDM0LDEwMzUsMTAzNiwxMDM3LDEwMzgsMTAzOSwxMDQwLDEwNDEsMTA0MiwxMDQzLDEwNDQsMTA0NSwxMDQ2LDEwNDcsMTA0OCwxMDQ5LDEwNTAsMTA1MSwxMDUyLDEwNTMsMTA1NCwxMDU1LDEwNTYsMTA1NywxMDU4LDEwNTksMTA2MCwxMDYxLDEwNjIsMTA2MywxMDY0LDEwNjUsMTA2NiwxMDY3LDEwNjgsMTA2OSwxMDcwLDEwNzEsMTA3MiwxMDczLDEwNzQsMTA3NSwxMDc2LDEwNzcsMTA3OCwxMDc5LDEwODAsMTA4MSwxMDgyLDEwODMsMTA4NCwxMDg1LDEwODYsMTA4NywxMDg4LDEwODksMTA5MCwxMDkxLDEwOTIsMTA5MywxMDk0LDEwOTUsMTA5NiwxMDk3LDEwOTgsMTA5OSwxMTAwLDExMDEsMTEwMiwxMTAzLDExMDQsMTEwNSwxMTA2LDExMDcsMTEwOCwxMTA5LDExMTAsMTExMSwxMTEyLDExMTMsMTExNCwxMTE1LDExMTYsMTExNywxMTE4LDExMTksMTEzOCwxMTM5LDExNjgsMTE2OSw3ODA4LDc4MDksNzgxMCw3ODExLDc4MTIsNzgxMyw3OTIyLDc5MjMsODIwOCw4MjA5LDgyMTEsODIxMiw4MjEzLDgyMTUsODIxNiw4MjE3LDgyMTgsODIxOSw4MjIwLDgyMjEsODIyMiw4MjI0LDgyMjUsODIyNiw4MjMwLDgyNDAsODI0Miw4MjQzLDgyNDksODI1MCw4MjUyLDgyNTQsODI2MCw4MzE5LDgzNTUsODM1Niw4MzU5LDgzNjQsODQ1Myw4NDY3LDg0NzAsODQ4Miw4NDg2LDg0OTQsODUzOSw4NTQwLDg1NDEsODU0Miw4NTkyLDg1OTMsODU5NCw4NTk1LDg1OTYsODU5Nyw4NjE2LDg3MDYsODcxMCw4NzE5LDg3MjEsODcyMiw4NzMwLDg3MzQsODczNSw4NzQ1LDg3NDcsODc3Niw4ODAwLDg4MDEsODgwNCw4ODA1LDg5NjIsODk3Niw4OTkyLDg5OTMsOTQ3Miw5NDc0LDk0ODQsOTQ4OCw5NDkyLDk0OTYsOTUwMCw5NTA4LDk1MTYsOTUyNCw5NTMyLDk1NTIsOTU1Myw5NTU0LDk1NTUsOTU1Niw5NTU3LDk1NTgsOTU1OSw5NTYwLDk1NjEsOTU2Miw5NTYzLDk1NjQsOTU2NSw5NTY2LDk1NjcsOTU2OCw5NTY5LDk1NzAsOTU3MSw5NTcyLDk1NzMsOTU3NCw5NTc1LDk1NzYsOTU3Nyw5NTc4LDk1NzksOTU4MCw5NjAwLDk2MDQsOTYwOCw5NjEyLDk2MTYsOTYxNyw5NjE4LDk2MTksOTYzMiw5NjMzLDk2NDIsOTY0Myw5NjQ0LDk2NTAsOTY1OCw5NjYwLDk2NjgsOTY3NCw5Njc1LDk2NzksOTY4OCw5Njg5LDk3MDIsOTc4Niw5Nzg3LDk3ODgsOTc5Miw5Nzk0LDk4MjQsOTgyNyw5ODI5LDk4MzAsOTgzNCw5ODM1LDk4MzYsNjE0NDEsNjE0NDIsNjE0NDUsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTFdLHhuPVsxLjM2ODk4LDEsMSwuNzI3MDYsLjgwNDc5LC44MzczNCwuOTg4OTQsLjk5NzkzLC45ODk3LC45Mzg4NCwuODYyMDksLjk0MjkyLC45NDI5MiwxLjE2NjYxLDEuMDIwNTgsLjkzNTgyLC45NjY5NCwuOTM1ODIsMS4xOTEzNywuOTk3OTMsLjk5NzkzLC45OTc5MywuOTk3OTMsLjk5NzkzLC45OTc5MywuOTk3OTMsLjk5NzkzLC45OTc5MywuOTk3OTMsLjc4MDc2LC43ODA3NiwxLjAyMDU4LDEuMDIwNTgsMS4wMjA1OCwuNzI4NTEsLjc4OTY2LC45MDgzOCwuODM2MzcsLjgyMzkxLC45NjM3NiwuODAwNjEsLjg2Mjc1LC44NzY4LC45NTQwNywxLjAyNTgsLjczOTAxLC44NTAyMiwuODM2NTUsMS4wMTU2LC45NTU0NiwuOTIxNzksLjg3MTA3LC45MjE3OSwuODIxMTQsLjgwOTYsLjg5NzEzLC45NDQzOCwuOTUzNTMsLjk0MDgzLC45MTkwNSwuOTA0MDYsLjk0NDYsLjk0MjkyLDEuMTg3NzcsLjk0MjkyLDEuMDIwNTgsLjg5OTAzLC45MDA4OCwuOTQ5MzgsLjk3ODk4LC44MTA5MywuOTc1NzEsLjk0OTM4LDEuMDI0LC45NTc3LC45NTkzMywuOTg2MjEsMS4wNDc0LC45NzQ1NSwuOTg5ODEsLjk2NzIsLjk1OTMzLC45NDQ2LC45Nzg5OCwuOTc0MDcsLjk3NjQ2LC43ODAzNiwxLjEwMjA4LC45NTQ0MiwuOTUyOTgsLjk3NTc5LC45MzMyLC45NDAzOSwuOTM4LC44MDY4NywxLjAxMTQ5LC44MDY4NywxLjAyMDU4LC44MDQ3OSwuOTk3OTMsLjk5NzkzLC45OTc5MywuOTk3OTMsMS4wMTE0OSwxLjAwODcyLC45MDA4OCwuOTE4ODIsMS4wMjEzLC44MzYxLDEuMDIwNTgsLjYyMjk1LC41NDMyNCwuODkwMjIsMS4wODU5NSwxLDEsLjkwMDg4LDEsLjk3NDU1LC45MzU4MiwuOTAwODgsMSwxLjA1Njg2LC44MzYxLC45OTY0MiwuOTk2NDIsLjk5NjQyLC43Mjg1MSwuOTA4MzgsLjkwODM4LC45MDgzOCwuOTA4MzgsLjkwODM4LC45MDgzOCwuODY4LC44MjM5MSwuODAwNjEsLjgwMDYxLC44MDA2MSwuODAwNjEsMS4wMjU4LDEuMDI1OCwxLjAyNTgsMS4wMjU4LC45NzQ4NCwuOTU1NDYsLjkyMTc5LC45MjE3OSwuOTIxNzksLjkyMTc5LC45MjE3OSwxLjAyMDU4LC45MjE3OSwuOTQ0MzgsLjk0NDM4LC45NDQzOCwuOTQ0MzgsLjkwNDA2LC44Njk1OCwuOTgyMjUsLjk0OTM4LC45NDkzOCwuOTQ5MzgsLjk0OTM4LC45NDkzOCwuOTQ5MzgsLjkwMzEsLjgxMDkzLC45NDkzOCwuOTQ5MzgsLjk0OTM4LC45NDkzOCwuOTg2MjEsLjk4NjIxLC45ODYyMSwuOTg2MjEsLjkzOTY5LC45NTkzMywuOTQ0NiwuOTQ0NiwuOTQ0NiwuOTQ0NiwuOTQ0NiwxLjA4NTk1LC45NDQ2LC45NTQ0MiwuOTU0NDIsLjk1NDQyLC45NTQ0MiwuOTQwMzksLjk3ODk4LC45NDAzOSwuOTA4MzgsLjk0OTM4LC45MDgzOCwuOTQ5MzgsLjkwODM4LC45NDkzOCwuODIzOTEsLjgxMDkzLC44MjM5MSwuODEwOTMsLjgyMzkxLC44MTA5MywuODIzOTEsLjgxMDkzLC45NjM3NiwuODQzMTMsLjk3NDg0LC45NzU3MSwuODAwNjEsLjk0OTM4LC44MDA2MSwuOTQ5MzgsLjgwMDYxLC45NDkzOCwuODAwNjEsLjk0OTM4LC44MDA2MSwuOTQ5MzgsLjg3NjgsLjk1NzcsLjg3NjgsLjk1NzcsLjg3NjgsLjk1NzcsMSwxLC45NTQwNywuOTU5MzMsLjk3MDY5LC45NTkzMywxLjAyNTgsLjk4NjIxLDEuMDI1OCwuOTg2MjEsMS4wMjU4LC45ODYyMSwxLjAyNTgsLjk4NjIxLDEuMDI1OCwuOTg2MjEsLjg4NywxLjAxNTkxLC43MzkwMSwxLjA0NzQsMSwxLC45NzQ1NSwuODM2NTUsLjk4OTgxLDEsMSwuODM2NTUsLjczOTc3LC44MzY1NSwuNzM5MDMsLjg0NjM4LDEuMDMzLC45NTU0NiwuOTU5MzMsMSwxLC45NTU0NiwuOTU5MzMsLjgyNzEsLjk1NDE3LC45NTkzMywuOTIxNzksLjk0NDYsLjkyMTc5LC45NDQ2LC45MjE3OSwuOTQ0NiwuOTM2LC45MTk2NCwuODIxMTQsLjk3NjQ2LDEsMSwuODIxMTQsLjk3NjQ2LC44MDk2LC43ODAzNiwuODA5NiwuNzgwMzYsMSwxLC44MDk2LC43ODAzNiwxLDEsLjg5NzEzLC43NzQ1MiwuODk3MTMsMS4xMDIwOCwuOTQ0MzgsLjk1NDQyLC45NDQzOCwuOTU0NDIsLjk0NDM4LC45NTQ0MiwuOTQ0MzgsLjk1NDQyLC45NDQzOCwuOTU0NDIsLjk0NDM4LC45NTQ0MiwuOTQwODMsLjk3NTc5LC45MDQwNiwuOTQwMzksLjkwNDA2LC45NDQ2LC45MzgsLjk0NDYsLjkzOCwuOTQ0NiwuOTM4LDEsLjk5NzkzLC45MDgzOCwuOTQ5MzgsLjg2OCwuOTAzMSwuOTIxNzksLjk0NDYsMSwxLC44OTcxMywxLjEwMjA4LC45MDA4OCwuOTAwODgsLjkwMDg4LC45MDA4OCwuOTAwODgsLjkwMDg4LC45MDA4OCwuOTAwODgsLjkwMDg4LC45MDk4OSwuOTM1OCwuOTE5NDUsLjgzMTgxLC43NTI2MSwuODc5OTIsLjgyOTc2LC45NjAzNCwuODM2ODksLjk3MjY4LDEuMDA3OCwuOTA4MzgsLjgzNjM3LC44MDE5LC45MDE1NywuODAwNjEsLjk0NDYsLjk1NDA3LC45MjQzNiwxLjAyNTgsLjg1MDIyLC45NzE1MywxLjAxNTYsLjk1NTQ2LC44OTE5MiwuOTIxNzksLjkyMzYxLC44NzEwNywuOTYzMTgsLjg5NzEzLC45MzcwNCwuOTU2MzgsLjkxOTA1LC45MTcwOSwuOTI3OTYsMS4wMjU4LC45MzcwNCwuOTQ4MzYsMS4wMzczLC45NTkzMywxLjAwNzgsLjk1ODcxLC45NDgzNiwuOTYxNzQsLjkyNjAxLC45NDk4LC45ODYwNywuOTU3NzYsLjk1OTMzLDEuMDU0NTMsMS4wMDc4LC45ODI3NSwuOTMxNCwuOTU2MTcsLjkxNzAxLDEuMDU5OTMsLjk0NDYsLjc4MzY3LC45NTUzLDEsLjg2ODMyLDEuMDEyOCwuOTU4NzEsLjk5Mzk0LC44NzU0OCwuOTYzNjEsLjg2Nzc0LDEuMDA3OCwuOTU4NzEsLjk0NDYsLjk1ODcxLC44Njc3NCwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45NDA4MywuOTc1NzksLjk0MDgzLC45NzU3OSwuOTQwODMsLjk3NTc5LC45MDQwNiwuOTQwMzksLjk2Njk0LDEsLjg5OTAzLDEsMSwxLC45MzU4MiwuOTM1ODIsLjkzNTgyLDEsLjkwOCwuOTA4LC45MTgsLjk0MjE5LC45NDIxOSwuOTY1NDQsMSwxLjI4NSwxLDEsLjgxMDc5LC44MTA3OSwxLDEsLjc0ODU0LDEsMSwxLDEsLjk5NzkzLDEsMSwxLC42NSwxLDEuMzYxNDUsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMTcxNzMsMSwuODA1MzUsLjc2MTY5LDEuMDIwNTgsMS4wNzMyLDEuMDU0ODYsMSwxLDEuMzA2OTIsMS4wODU5NSwxLjA4NTk1LDEsMS4wODU5NSwxLjA4NTk1LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4xNjE2MSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSxVbj17bGluZUhlaWdodDoxLjIsbGluZUdhcDouMn0sTW49WzEuMzY4OTgsMSwxLC42NjIyNywuODA3NzksLjgxNjI1LC45NzI3NiwuOTcyNzYsLjk3NzMzLC45MjIyMiwuODMyNjYsLjk0MjkyLC45NDI5MiwxLjE2MTQ4LDEuMDIwNTgsLjkzNTgyLC45NjY5NCwuOTM1ODIsMS4xNzMzNywuOTcyNzYsLjk3Mjc2LC45NzI3NiwuOTcyNzYsLjk3Mjc2LC45NzI3NiwuOTcyNzYsLjk3Mjc2LC45NzI3NiwuOTcyNzYsLjc4MDc2LC43ODA3NiwxLjAyMDU4LDEuMDIwNTgsMS4wMjA1OCwuNzE1NDEsLjc2ODEzLC44NTU3NiwuODA1OTEsLjgwNzI5LC45NDI5OSwuNzc1MTIsLjgzNjU1LC44NjUyMywuOTIyMjIsLjk4NjIxLC43MTc0MywuODE2OTgsLjc5NzI2LC45ODU1OCwuOTIyMjIsLjkwNjM3LC44MzgwOSwuOTA2MzcsLjgwNzI5LC43NjQ2MywuODYyNzUsLjkwNjk5LC45MTYwNSwuOTE1NCwuODUzMDgsLjg1NDU4LC45MDUzMSwuOTQyOTIsMS4yMTI5NiwuOTQyOTIsMS4wMjA1OCwuODk5MDMsMS4xODYxNiwuOTk2MTMsLjkxNjc3LC43ODIxNiwuOTE2NzcsLjkwMDgzLC45ODc5NiwuOTEzNSwuOTIxNjgsLjk1MzgxLC45ODk4MSwuOTUyOTgsLjk1MzgxLC45MzQ1OSwuOTIxNjgsLjkxNTEzLC45MjAwNCwuOTE2NzcsLjk1MDc3LC43NDgsMS4wNDUwMiwuOTE2NzcsLjkyMDYxLC45NDIzNiwuODk1NDQsLjg5MzY0LC45LC44MDY4NywuODU3OCwuODA2ODcsMS4wMjA1OCwuODA3NzksLjk3Mjc2LC45NzI3NiwuOTcyNzYsLjk3Mjc2LC44NTc4LC45OTk3MywxLjE4NjE2LC45MTMzOSwxLjA4MDc0LC44Mjg5MSwxLjAyMDU4LC41NTUwOSwuNzE1MjYsLjg5MDIyLDEuMDg1OTUsMSwxLDEuMTg2MTYsMSwuOTY3MzYsLjkzNTgyLDEuMTg2MTYsMSwxLjA0ODY0LC44MjcxMSwuOTkwNDMsLjk5MDQzLC45OTA0MywuNzE1NDEsLjg1NTc2LC44NTU3NiwuODU1NzYsLjg1NTc2LC44NTU3NiwuODU1NzYsLjg0NSwuODA3MjksLjc3NTEyLC43NzUxMiwuNzc1MTIsLjc3NTEyLC45ODYyMSwuOTg2MjEsLjk4NjIxLC45ODYyMSwuOTU5NjEsLjkyMjIyLC45MDYzNywuOTA2MzcsLjkwNjM3LC45MDYzNywuOTA2MzcsMS4wMjA1OCwuOTAyNTEsLjkwNjk5LC45MDY5OSwuOTA2OTksLjkwNjk5LC44NTQ1OCwuODM2NTksLjk0OTUxLC45OTYxMywuOTk2MTMsLjk5NjEzLC45OTYxMywuOTk2MTMsLjk5NjEzLC44NTgxMSwuNzgyMTYsLjkwMDgzLC45MDA4MywuOTAwODMsLjkwMDgzLC45NTM4MSwuOTUzODEsLjk1MzgxLC45NTM4MSwuOTEzNSwuOTIxNjgsLjkxNTEzLC45MTUxMywuOTE1MTMsLjkxNTEzLC45MTUxMywxLjA4NTk1LC45MTY3NywuOTE2NzcsLjkxNjc3LC45MTY3NywuOTE2NzcsLjg5MzY0LC45MjMzMiwuODkzNjQsLjg1NTc2LC45OTYxMywuODU1NzYsLjk5NjEzLC44NTU3NiwuOTk2MTMsLjgwNzI5LC43ODIxNiwuODA3MjksLjc4MjE2LC44MDcyOSwuNzgyMTYsLjgwNzI5LC43ODIxNiwuOTQyOTksLjc2NzgzLC45NTk2MSwuOTE2NzcsLjc3NTEyLC45MDA4MywuNzc1MTIsLjkwMDgzLC43NzUxMiwuOTAwODMsLjc3NTEyLC45MDA4MywuNzc1MTIsLjkwMDgzLC44NjUyMywuOTEzNSwuODY1MjMsLjkxMzUsLjg2NTIzLC45MTM1LDEsMSwuOTIyMjIsLjkyMTY4LC45MjIyMiwuOTIxNjgsLjk4NjIxLC45NTM4MSwuOTg2MjEsLjk1MzgxLC45ODYyMSwuOTUzODEsLjk4NjIxLC45NTM4MSwuOTg2MjEsLjk1MzgxLC44NjAzNiwuOTcwOTYsLjcxNzQzLC45ODk4MSwxLDEsLjk1Mjk4LC43OTcyNiwuOTUzODEsMSwxLC43OTcyNiwuNjg5NCwuNzk3MjYsLjc0MzIxLC44MTY5MSwxLjAwMDYsLjkyMjIyLC45MjE2OCwxLDEsLjkyMjIyLC45MjE2OCwuNzk0NjQsLjkyMDk4LC45MjE2OCwuOTA2MzcsLjkxNTEzLC45MDYzNywuOTE1MTMsLjkwNjM3LC45MTUxMywuOTA5LC44NzUxNCwuODA3MjksLjk1MDc3LDEsMSwuODA3MjksLjk1MDc3LC43NjQ2MywuNzQ4LC43NjQ2MywuNzQ4LDEsMSwuNzY0NjMsLjc0OCwxLDEsLjg2Mjc1LC43MjY1MSwuODYyNzUsMS4wNDUwMiwuOTA2OTksLjkxNjc3LC45MDY5OSwuOTE2NzcsLjkwNjk5LC45MTY3NywuOTA2OTksLjkxNjc3LC45MDY5OSwuOTE2NzcsLjkwNjk5LC45MTY3NywuOTE1NCwuOTQyMzYsLjg1NDU4LC44OTM2NCwuODU0NTgsLjkwNTMxLC45LC45MDUzMSwuOSwuOTA1MzEsLjksMSwuOTcyNzYsLjg1NTc2LC45OTYxMywuODQ1LC44NTgxMSwuOTAyNTEsLjkxNjc3LDEsMSwuODYyNzUsMS4wNDUwMiwxLjE4NjE2LDEuMTg2MTYsMS4xODYxNiwxLjE4NjE2LDEuMTg2MTYsMS4xODYxNiwxLjE4NjE2LDEuMTg2MTYsMS4xODYxNiwxLjAwODk5LDEuMzA2MjgsLjg1NTc2LC44MDE3OCwuNjY4NjIsLjc5MjcsLjY5MzIzLC44ODEyNywuNzI0NTksLjg5NzExLC45NTM4MSwuODU1NzYsLjgwNTkxLC43ODA1LC45NDcyOSwuNzc1MTIsLjkwNTMxLC45MjIyMiwuOTA2MzcsLjk4NjIxLC44MTY5OCwuOTI2NTUsLjk4NTU4LC45MjIyMiwuODUzNTksLjkwNjM3LC45MDk3NiwuODM4MDksLjk0NTIzLC44NjI3NSwuODM1MDksLjkzMTU3LC44NTMwOCwuODMzOTIsLjkyMzQ2LC45ODYyMSwuODM1MDksLjkyODg2LC45MTMyNCwuOTIxNjgsLjk1MzgxLC45MDY0NiwuOTI4ODYsLjkwNTU3LC44Njg0NywuOTAyNzYsLjkxMzI0LC44Njg0MiwuOTIxNjgsLjk5NTMxLC45NTM4MSwuOTIyNCwuODU0MDgsLjkyNjk5LC44Njg0NywxLjAwNTEsLjkxNTEzLC44MDQ4NywuOTM0ODEsMSwuODgxNTksMS4wNTIxNCwuOTA2NDYsLjk3MzU1LC44MTUzOSwuODkzOTgsLjg1OTIzLC45NTM4MSwuOTA2NDYsLjkxNTEzLC45MDY0NiwuODU5MjMsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTE1NCwuOTQyMzYsLjkxNTQsLjk0MjM2LC45MTU0LC45NDIzNiwuODU0NTgsLjg5MzY0LC45NjY5NCwxLC44OTkwMywxLDEsMSwuOTE3ODIsLjkxNzgyLC45MTc4MiwxLC44OTYsLjg5NiwuODk2LC45MzMyLC45MzMyLC45NTk3MywxLDEuMjYsMSwxLC44MDQ3OSwuODAxNzgsMSwxLC44NTYzMywxLDEsMSwxLC45NzI3NiwxLDEsMSwuNjk4LDEsMS4zNjE0NSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4xNDU0MiwxLC43OTE5OSwuNzg2OTQsMS4wMjA1OCwxLjAzNDkzLDEuMDU0ODYsMSwxLDEuMjMwMjYsMS4wODU5NSwxLjA4NTk1LDEsMS4wODU5NSwxLjA4NTk1LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4yMDAwNiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSxMbj17bGluZUhlaWdodDoxLjIsbGluZUdhcDouMn0sSm49WzEuMzY4OTgsMSwxLC42NTUwNywuODQ5NDMsLjg1NjM5LC44ODQ2NSwuODg0NjUsLjg2OTM2LC44ODMwNywuODY5NDgsLjg1MjgzLC44NTI4MywxLjA2MzgzLDEuMDIwNTgsLjc1OTQ1LC45MjE5LC43NTk0NSwxLjE3MzM3LC44ODQ2NSwuODg0NjUsLjg4NDY1LC44ODQ2NSwuODg0NjUsLjg4NDY1LC44ODQ2NSwuODg0NjUsLjg4NDY1LC44ODQ2NSwuNzU5NDUsLjc1OTQ1LDEuMDIwNTgsMS4wMjA1OCwxLjAyMDU4LC42OTA0NiwuNzA5MjYsLjg1MTU4LC43NzgxMiwuNzY4NTIsLjg5NTkxLC43MDQ2NiwuNzYxMjUsLjgwMDk0LC44NjgyMiwuODM4NjQsLjcyOCwuNzcyMTIsLjc5NDc1LC45MzYzNywuODc1MTQsLjg1ODgsLjc2MDEzLC44NTg4LC43MjQyMSwuNjk4NjYsLjc3NTk4LC44NTk5MSwuODA4MTEsLjg3ODMyLC43ODExMiwuNzc1MTIsLjg1NjIsMS4wMjIyLDEuMTg0MTcsMS4wMjIyLDEuMjcwMTQsLjg5OTAzLDEuMTUwMTIsLjkzODU5LC45NDM5OSwuODQ2LC45NDM5OSwuODE0NTMsMS4wMTg2LC45NDIxOSwuOTYwMTcsMS4wMzA3NSwxLjAyMTc1LC45MTIsMS4wMzA3NSwuOTY5OTgsLjk2MDE3LC45Mzg1OSwuOTQzOTksLjk0Mzk5LC45NTQ5MywuNzQ2LDEuMTI2NTgsLjk0NTc4LC45MSwuOTc5LC44ODIsLjg4MiwuODMsLjg1MDM0LC44MzUzNywuODUwMzQsMS4wMjA1OCwuNzA4NjksLjg4NDY1LC44ODQ2NSwuODg0NjUsLjg4NDY1LC44MzUzNywuOTAwODMsMS4xNTAxMiwuOTE2MSwuOTQ1NjUsLjczNTQxLDEuMDIwNTgsLjUzNjA5LC42OTM1MywuNzk1MTksMS4wODU5NSwxLDEsMS4xNTAxMiwxLC45MTk3NCwuNzU5NDUsMS4xNTAxMiwxLC45NDQ2LC43MzM2MSwuOTAwNSwuOTAwNSwuOTAwNSwuNjI4NjQsLjg1MTU4LC44NTE1OCwuODUxNTgsLjg1MTU4LC44NTE1OCwuODUxNTgsLjc3MywuNzY4NTIsLjcwNDY2LC43MDQ2NiwuNzA0NjYsLjcwNDY2LC44Mzg2NCwuODM4NjQsLjgzODY0LC44Mzg2NCwuOTA1NjEsLjg3NTE0LC44NTg4LC44NTg4LC44NTg4LC44NTg4LC44NTg4LDEuMDIwNTgsLjg1NzUxLC44NTk5MSwuODU5OTEsLjg1OTkxLC44NTk5MSwuNzc1MTIsLjc2MDEzLC44ODA3NSwuOTM4NTksLjkzODU5LC45Mzg1OSwuOTM4NTksLjkzODU5LC45Mzg1OSwuODA3NSwuODQ2LC44MTQ1MywuODE0NTMsLjgxNDUzLC44MTQ1MywuODI0MjQsLjgyNDI0LC44MjQyNCwuODI0MjQsLjkyNzgsLjk2MDE3LC45Mzg1OSwuOTM4NTksLjkzODU5LC45Mzg1OSwuOTM4NTksMS4wODU5NSwuODU2MiwuOTQ1NzgsLjk0NTc4LC45NDU3OCwuOTQ1NzgsLjg4MiwuOTQ1NzgsLjg4MiwuODUxNTgsLjkzODU5LC44NTE1OCwuOTM4NTksLjg1MTU4LC45Mzg1OSwuNzY4NTIsLjg0NiwuNzY4NTIsLjg0NiwuNzY4NTIsLjg0NiwuNzY4NTIsLjg0NiwuODk1OTEsLjg1NDQsLjkwNTYxLC45NDM5OSwuNzA0NjYsLjgxNDUzLC43MDQ2NiwuODE0NTMsLjcwNDY2LC44MTQ1MywuNzA0NjYsLjgxNDUzLC43MDQ2NiwuODE0NTMsLjgwMDk0LC45NDIxOSwuODAwOTQsLjk0MjE5LC44MDA5NCwuOTQyMTksMSwxLC44NjgyMiwuOTYwMTcsLjg2ODIyLC45NjAxNywuODM4NjQsLjgyNDI0LC44Mzg2NCwuODI0MjQsLjgzODY0LC44MjQyNCwuODM4NjQsMS4wMzA3NSwuODM4NjQsLjgyNDI0LC44MTQwMiwxLjAyNzM4LC43MjgsMS4wMjE3NSwxLDEsLjkxMiwuNzk0NzUsMS4wMzA3NSwxLDEsLjc5NDc1LC44MzkxMSwuNzk0NzUsLjY2MjY2LC44MDU1MywxLjA2Njc2LC44NzUxNCwuOTYwMTcsMSwxLC44NzUxNCwuOTYwMTcsLjg2ODY1LC44NzM5NiwuOTYwMTcsLjg1ODgsLjkzODU5LC44NTg4LC45Mzg1OSwuODU4OCwuOTM4NTksLjg2NywuODQ3NTksLjcyNDIxLC45NTQ5MywxLDEsLjcyNDIxLC45NTQ5MywuNjk4NjYsLjc0NiwuNjk4NjYsLjc0NiwxLDEsLjY5ODY2LC43NDYsMSwxLC43NzU5OCwuODg0MTcsLjc3NTk4LDEuMTI2NTgsLjg1OTkxLC45NDU3OCwuODU5OTEsLjk0NTc4LC44NTk5MSwuOTQ1NzgsLjg1OTkxLC45NDU3OCwuODU5OTEsLjk0NTc4LC44NTk5MSwuOTQ1NzgsLjg3ODMyLC45NzksLjc3NTEyLC44ODIsLjc3NTEyLC44NTYyLC44MywuODU2MiwuODMsLjg1NjIsLjgzLDEsLjg4NDY1LC44NTE1OCwuOTM4NTksLjc3MywuODA3NSwuODU3NTEsLjg1NjIsMSwxLC43NzU5OCwxLjEyNjU4LDEuMTUwMTIsMS4xNTAxMiwxLjE1MDEyLDEuMTUwMTIsMS4xNTAxMiwxLjE1MzEzLDEuMTUwMTIsMS4xNTAxMiwxLjE1MDEyLDEuMDgxMDYsMS4wMzkwMSwuODUxNTgsLjc3MDI1LC42MjI2NCwuNzY0NiwuNjUzNTEsLjg2MDI2LC42OTQ2MSwuODk5NDcsMS4wMzA3NSwuODUxNTgsLjc3ODEyLC43NjQ0OSwuODg4MzYsLjcwNDY2LC44NTYyLC44NjgyMiwuODU4OCwuODM4NjQsLjc3MjEyLC44NTMwOCwuOTM2MzcsLjg3NTE0LC44MjM1MiwuODU4OCwuODU3MDEsLjc2MDEzLC44OTA1OCwuNzc1OTgsLjgxNTYsLjgyNTY1LC43ODExMiwuNzc4OTksLjg5Mzg2LC44Mzg2NCwuODE1NiwuOTQ4NiwuOTIzODgsLjk2MTg2LDEuMDMwNzUsLjkxMTIzLC45NDg2LC45MzI5OCwuODc4LC45Mzk0MiwuOTIzODgsLjg0NTk2LC45NjE4NiwuOTUxMTksMS4wMzA3NSwuOTIyLC44ODc4NywuOTU4MjksLjg4LC45MzU1OSwuOTM4NTksLjc4ODE1LC45Mzc1OCwxLC44OTIxNywxLjAzNzM3LC45MTEyMywuOTM5NjksLjc3NDg3LC44NTc2OSwuODY3OTksMS4wMzA3NSwuOTExMjMsLjkzODU5LC45MTEyMywuODY3OTksMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuODc4MzIsLjk3OSwuODc4MzIsLjk3OSwuODc4MzIsLjk3OSwuNzc1MTIsLjg4MiwuOTIxOSwxLC44OTkwMywxLDEsMSwuODczMjEsLjg3MzIxLC44NzMyMSwxLDEuMDI3LDEuMDI3LDEuMDI3LC44Njg0NywuODY4NDcsLjc5MTIxLDEsMS4xMjQsMSwxLC43MzU3MiwuNzM1NzIsMSwxLC44NTAzNCwxLDEsMSwxLC44ODQ2NSwxLDEsMSwuNjY5LDEsMS4zNjE0NSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4wNDgyOCwxLC43NDk0OCwuNzUxODcsMS4wMjA1OCwuOTgzOTEsMS4wMjExOSwxLDEsMS4wNjIzMywxLjA4NTk1LDEuMDg1OTUsMSwxLjA4NTk1LDEuMDg1OTUsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjA1MjMzLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLEhuPXtsaW5lSGVpZ2h0OjEuMixsaW5lR2FwOi4yfSxZbj1bMS4zNjg5OCwxLDEsLjc2MzA1LC44Mjc4NCwuOTQ5MzUsLjg5MzY0LC45MjI0MSwuODkwNzMsLjkwNzA2LC45ODQ3MiwuODUyODMsLjg1MjgzLDEuMDY2NCwxLjAyMDU4LC43NDUwNSwuOTIxOSwuNzQ1MDUsMS4yMzQ1NiwuOTIyNDEsLjkyMjQxLC45MjI0MSwuOTIyNDEsLjkyMjQxLC45MjI0MSwuOTIyNDEsLjkyMjQxLC45MjI0MSwuOTIyNDEsLjc0NTA1LC43NDUwNSwxLjAyMDU4LDEuMDIwNTgsMS4wMjA1OCwuNzMwMDIsLjcyNjAxLC45MTc1NSwuODEyNiwuODAzMTQsLjkyMjIyLC43Mzc2NCwuNzk3MjYsLjgzMDUxLC45MDI4NCwuODYwMjMsLjc0LC44MTI2LC44NDg2OSwuOTY1MTgsLjkxMTE1LC44ODU4LC43OTc2MSwuODg1OCwuNzQ0OTgsLjczOTE0LC44MTM2MywuODk1OTEsLjgzNjU5LC44OTYzMywuODU2MDgsLjgxMTEsLjkwNTMxLDEuMDIyMiwxLjIyNzM2LDEuMDIyMiwxLjI3MDE0LC44OTkwMywuOTAwODgsLjg2NjY3LDEuMDIzMSwuODk2LDEuMDE0MTEsLjkwMDgzLDEuMDUwOTksMS4wMDUxMiwuOTk3OTMsMS4wNTMyNiwxLjA5Mzc3LC45MzgsMS4wNjIyNiwxLjAwMTE5LC45OTc5MywuOTg3MTQsMS4wMjMxLDEuMDEyMzEsLjk4MTk2LC43OTIsMS4xOTEzNywuOTkwNzQsLjk2MiwxLjAxOTE1LC45MjYsLjk0MiwuODU2LC44NTAzNCwuOTIwMDYsLjg1MDM0LDEuMDIwNTgsLjY5MDY3LC45MjI0MSwuOTIyNDEsLjkyMjQxLC45MjI0MSwuOTIwMDYsLjkzMzIsLjkwMDg4LC45MTg4MiwuOTM0ODQsLjc1MzM5LDEuMDIwNTgsLjU2ODY2LC41NDMyNCwuNzk1MTksMS4wODU5NSwxLDEsLjkwMDg4LDEsLjk1MzI1LC43NDUwNSwuOTAwODgsMSwuOTcxOTgsLjc1MzM5LC45MTAwOSwuOTEwMDksLjkxMDA5LC42NjQ2NiwuOTE3NTUsLjkxNzU1LC45MTc1NSwuOTE3NTUsLjkxNzU1LC45MTc1NSwuNzg4LC44MDMxNCwuNzM3NjQsLjczNzY0LC43Mzc2NCwuNzM3NjQsLjg2MDIzLC44NjAyMywuODYwMjMsLjg2MDIzLC45MjkxNSwuOTExMTUsLjg4NTgsLjg4NTgsLjg4NTgsLjg4NTgsLjg4NTgsMS4wMjA1OCwuODg1OCwuODk1OTEsLjg5NTkxLC44OTU5MSwuODk1OTEsLjgxMTEsLjc5NjExLC44OTcxMywuODY2NjcsLjg2NjY3LC44NjY2NywuODY2NjcsLjg2NjY3LC44NjY2NywuODY5MzYsLjg5NiwuOTAwODMsLjkwMDgzLC45MDA4MywuOTAwODMsLjg0MjI0LC44NDIyNCwuODQyMjQsLjg0MjI0LC45NzI3NiwuOTk3OTMsLjk4NzE0LC45ODcxNCwuOTg3MTQsLjk4NzE0LC45ODcxNCwxLjA4NTk1LC44OTg3NiwuOTkwNzQsLjk5MDc0LC45OTA3NCwuOTkwNzQsLjk0MiwxLjAyMzEsLjk0MiwuOTE3NTUsLjg2NjY3LC45MTc1NSwuODY2NjcsLjkxNzU1LC44NjY2NywuODAzMTQsLjg5NiwuODAzMTQsLjg5NiwuODAzMTQsLjg5NiwuODAzMTQsLjg5NiwuOTIyMjIsLjkzMzcyLC45MjkxNSwxLjAxNDExLC43Mzc2NCwuOTAwODMsLjczNzY0LC45MDA4MywuNzM3NjQsLjkwMDgzLC43Mzc2NCwuOTAwODMsLjczNzY0LC45MDA4MywuODMwNTEsMS4wMDUxMiwuODMwNTEsMS4wMDUxMiwuODMwNTEsMS4wMDUxMiwxLDEsLjkwMjg0LC45OTc5MywuOTA5NzYsLjk5NzkzLC44NjAyMywuODQyMjQsLjg2MDIzLC44NDIyNCwuODYwMjMsLjg0MjI0LC44NjAyMywxLjA1MzI2LC44NjAyMywuODQyMjQsLjgyODczLDEuMDc0NjksLjc0LDEuMDkzNzcsMSwxLC45MzgsLjg0ODY5LDEuMDYyMjYsMSwxLC44NDg2OSwuODM3MDQsLjg0ODY5LC44MTQ0MSwuODU1ODgsMS4wODkyNywuOTExMTUsLjk5NzkzLDEsMSwuOTExMTUsLjk5NzkzLC45MTg4NywuOTA5OTEsLjk5NzkzLC44ODU4LC45ODcxNCwuODg1OCwuOTg3MTQsLjg4NTgsLjk4NzE0LC44OTQsLjkxNDM0LC43NDQ5OCwuOTgxOTYsMSwxLC43NDQ5OCwuOTgxOTYsLjczOTE0LC43OTIsLjczOTE0LC43OTIsMSwxLC43MzkxNCwuNzkyLDEsMSwuODEzNjMsLjkwNCwuODEzNjMsMS4xOTEzNywuODk1OTEsLjk5MDc0LC44OTU5MSwuOTkwNzQsLjg5NTkxLC45OTA3NCwuODk1OTEsLjk5MDc0LC44OTU5MSwuOTkwNzQsLjg5NTkxLC45OTA3NCwuODk2MzMsMS4wMTkxNSwuODExMSwuOTQyLC44MTExLC45MDUzMSwuODU2LC45MDUzMSwuODU2LC45MDUzMSwuODU2LDEsLjkyMjQxLC45MTc1NSwuODY2NjcsLjc4OCwuODY5MzYsLjg4NTgsLjg5ODc2LDEsMSwuODEzNjMsMS4xOTEzNywuOTAwODgsLjkwMDg4LC45MDA4OCwuOTAwODgsLjkwMDg4LC45MDA4OCwuOTAwODgsLjkwMDg4LC45MDA4OCwuOTAzODgsMS4wMzkwMSwuOTIxMzgsLjc4MTA1LC43MTU0LC44NjE2OSwuODA1MTMsLjk0MDA3LC44MjUyOCwuOTg2MTIsMS4wNjIyNiwuOTE3NTUsLjgxMjYsLjgxODg0LC45MjgxOSwuNzM3NjQsLjkwNTMxLC45MDI4NCwuODg1OCwuODYwMjMsLjgxMjYsLjkxMTcyLC45NjUxOCwuOTExMTUsLjgzMDg5LC44ODU4LC44Nzc5MSwuNzk3NjEsLjg5Mjk3LC44MTM2MywuODgxNTcsLjg5OTkyLC44NTYwOCwuODE5OTIsLjk0MzA3LC44NjAyMywuODgxNTcsLjk1MzA4LC45ODY5OSwuOTk3OTMsMS4wNjIyNiwuOTU4MTcsLjk1MzA4LC45NzM1OCwuOTI4LC45ODA4OCwuOTg2OTksLjkyNzYxLC45OTc5MywuOTYwMTcsMS4wNjIyNiwuOTg2LC45NDQsLjk1OTc4LC45MzgsLjk2NzA1LC45ODcxNCwuODA0NDIsLjk4OTcyLDEsLjg5NzYyLDEuMDQ1NTIsLjk1ODE3LC45OTAwNywuODcwNjQsLjkxODc5LC44ODg4OCwxLjA2MjI2LC45NTgxNywuOTg3MTQsLjk1ODE3LC44ODg4OCwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC44OTYzMywxLjAxOTE1LC44OTYzMywxLjAxOTE1LC44OTYzMywxLjAxOTE1LC44MTExLC45NDIsLjkyMTksMSwuODk5MDMsMSwxLDEsLjkzMTczLC45MzE3MywuOTMxNzMsMSwxLjA2MzA0LDEuMDYzMDQsMS4wNjkwNCwuODk5MDMsLjg5OTAzLC44MDU0OSwxLDEuMTU2LDEsMSwuNzY1NzUsLjc2NTc1LDEsMSwuNzI0NTgsMSwxLDEsMSwuOTIyNDEsMSwxLDEsLjYxOSwxLDEuMzYxNDUsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMDcyNTcsMSwuNzQ3MDUsLjcxMTE5LDEuMDIwNTgsMS4wMjQsMS4wMjExOSwxLDEsMS4xNTM2LDEuMDg1OTUsMS4wODU5NSwxLDEuMDg1OTUsMS4wODU5NSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMDU2MzgsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sdm49e2xpbmVIZWlnaHQ6MS4yLGxpbmVHYXA6LjJ9LEtuPVsxLjc2NzM4LDEsMSwuOTkyOTcsLjk4MjQsMS4wNDAxNiwxLjA2NDk3LDEuMDM0MjQsLjk3NTI5LDEuMTc2NDcsMS4yMzIwMywxLjEwODUsMS4xMDg1LDEuMTY5MzksMS4yMTA3LC45NzU0LDEuMjE0MDgsLjk3NTQsMS41OTU3OCwxLjAzNDI0LDEuMDM0MjQsMS4wMzQyNCwxLjAzNDI0LDEuMDM0MjQsMS4wMzQyNCwxLjAzNDI0LDEuMDM0MjQsMS4wMzQyNCwxLjAzNDI0LC44MTM3OCwuODEzNzgsMS4yMTA3LDEuMjEwNywxLjIxMDcsLjcxNzAzLC45Nzg0NywuOTczNjMsLjg4Nzc2LC44NjQxLDEuMDIwOTYsLjc5Nzk1LC44NTEzMiwuOTE0LDEuMDYwODUsMS4xNDA2LC44MDA3LC44OTg1OCwuODM2OTMsMS4xNDg4OSwxLjA5Mzk4LC45NzQ4OSwuOTIwOTQsLjk3NDg5LC45MDM5OSwuODQwNDEsLjk1OTIzLDEuMDAxMzUsMSwxLjA2NDY3LC45ODI0MywuOTA5OTYsLjk5MzYxLDEuMTA4NSwxLjU2OTQyLDEuMTA4NSwxLjIxMDcsLjc0NjI3LC45NDI4MiwuOTY3NTIsMS4wMTUxOSwuODYzMDQsMS4wMTM1OSwuOTcyNzgsMS4xNTEwMywxLjAxMzU5LC45ODU2MSwxLjAyMjg1LDEuMDIyODUsMS4wMDUyNywxLjAyMjg1LDEuMDMwMiwuOTkwNDEsMS4wMDA4LDEuMDE1MTksMS4wMTM1OSwxLjAyMjU4LC43OTEwNCwxLjE2ODYyLC45OTA0MSwuOTc0NTQsMS4wMjUxMSwuOTkyOTgsLjk2NzUyLC45NTgwMSwuOTQ4NTYsMS4xNjU3OSwuOTQ4NTYsMS4yMTA3LC45ODI0LDEuMDM0MjQsMS4wMzQyNCwxLDEuMDM0MjQsMS4xNjU3OSwuODcyNywxLjM4NzEsMS4xODYyMiwxLjEwODE4LDEuMDQ0NzgsMS4yMTA3LDEuMTg2MjIsLjc1MTU1LC45NDk5NCwxLjI4ODI2LDEuMjE0MDgsMS4yMTQwOCwuOTEwNTYsMSwuOTE1NzIsLjk3NTQsLjY0NjYzLDEuMTgzMjgsMS4yNDg2NiwxLjA0NDc4LDEuMTQxNjksMS4xNTc0OSwxLjE3Mzg5LC43MTcwMywuOTczNjMsLjk3MzYzLC45NzM2MywuOTczNjMsLjk3MzYzLC45NzM2MywuOTM1MDYsLjg2NDEsLjc5Nzk1LC43OTc5NSwuNzk3OTUsLjc5Nzk1LDEuMTQwNiwxLjE0MDYsMS4xNDA2LDEuMTQwNiwxLjAyMDk2LDEuMDkzOTgsLjk3NDI2LC45NzQyNiwuOTc0MjYsLjk3NDI2LC45NzQyNiwxLjIxMDcsLjk3NDg5LDEuMDAxMzUsMS4wMDEzNSwxLjAwMTM1LDEuMDAxMzUsLjkwOTk2LC45MjA5NCwxLjAyNzk4LC45Njc1MiwuOTY3NTIsLjk2NzUyLC45Njc1MiwuOTY3NTIsLjk2NzUyLC45MzEzNiwuODYzMDQsLjk3Mjc4LC45NzI3OCwuOTcyNzgsLjk3Mjc4LDEuMDIyODUsMS4wMjI4NSwxLjAyMjg1LDEuMDIyODUsLjk3MTIyLC45OTA0MSwxLDEsMSwxLDEsMS4yODgyNiwxLjAwMDgsLjk5MDQxLC45OTA0MSwuOTkwNDEsLjk5MDQxLC45Njc1MiwxLjAxNTE5LC45Njc1MiwuOTczNjMsLjk2NzUyLC45NzM2MywuOTY3NTIsLjk3MzYzLC45Njc1MiwuODY0MSwuODYzMDQsLjg2NDEsLjg2MzA0LC44NjQxLC44NjMwNCwuODY0MSwuODYzMDQsMS4wMjA5NiwxLjAzMDU3LDEuMDIwOTYsMS4wMzUxNywuNzk3OTUsLjk3Mjc4LC43OTc5NSwuOTcyNzgsLjc5Nzk1LC45NzI3OCwuNzk3OTUsLjk3Mjc4LC43OTc5NSwuOTcyNzgsLjkxNCwxLjAxMzU5LC45MTQsMS4wMTM1OSwuOTE0LDEuMDEzNTksMSwxLDEuMDYwODUsLjk4NTYxLDEuMDYwODUsMS4wMDg3OSwxLjE0MDYsMS4wMjI4NSwxLjE0MDYsMS4wMjI4NSwxLjE0MDYsMS4wMjI4NSwxLjE0MDYsMS4wMjI4NSwxLjE0MDYsMS4wMjI4NSwuOTcxMzgsMS4wODY5MiwuODAwNywxLjAyMjg1LDEsMSwxLjAwNTI3LC44MzY5MywxLjAyMjg1LDEsMSwuODM2OTMsLjk0NTUsLjgzNjkzLC45MDQxOCwuODM2OTMsMS4xMzAwNSwxLjA5Mzk4LC45OTA0MSwxLDEsMS4wOTM5OCwuOTkwNDEsLjk2NjkyLDEuMDkyNTEsLjk5MDQxLC45NzQ4OSwxLjAwMDgsLjk3NDg5LDEuMDAwOCwuOTc0ODksMS4wMDA4LC45Mzk5NCwuOTc5MzEsLjkwMzk5LDEuMDIyNTgsMSwxLC45MDM5OSwxLjAyMjU4LC44NDA0MSwuNzkxMDQsLjg0MDQxLC43OTEwNCwuODQwNDEsLjc5MTA0LC44NDA0MSwuNzkxMDQsMSwxLC45NTkyMywxLjA3MDM0LC45NTkyMywxLjE2ODYyLDEuMDAxMzUsLjk5MDQxLDEuMDAxMzUsLjk5MDQxLDEuMDAxMzUsLjk5MDQxLDEuMDAxMzUsLjk5MDQxLDEuMDAxMzUsLjk5MDQxLDEuMDAxMzUsLjk5MDQxLDEuMDY0NjcsMS4wMjUxMSwuOTA5OTYsLjk2NzUyLC45MDk5NiwuOTkzNjEsLjk1ODAxLC45OTM2MSwuOTU4MDEsLjk5MzYxLC45NTgwMSwxLjA3NzMzLDEuMDM0MjQsLjk3MzYzLC45Njc1MiwuOTM1MDYsLjkzMTM2LC45NzQ4OSwxLjAwMDgsMSwxLC45NTkyMywxLjE2ODYyLDEuMTUxMDMsMS4xNTEwMywxLjAxMTczLDEuMDM5NTksLjc1OTUzLC44MTM3OCwuNzk5MTIsMS4xNTEwMywxLjIxOTk0LC45NTE2MSwuODc4MTUsMS4wMTE0OSwuODE1MjUsLjc2NzYsLjk4MTY3LDEuMDExMzQsMS4wMjU0NiwuODQwOTcsMS4wMzA4OSwxLjE4MTAyLC45NzM2MywuODg3NzYsLjg1MTM0LC45NzgyNiwuNzk3OTUsLjk5MzYxLDEuMDYwODUsLjk3NDg5LDEuMTQwNiwuODk4NTgsMS4wMzg4LDEuMTQ4ODksMS4wOTM5OCwuODYwMzksLjk3NDg5LDEuMDU5NSwuOTIwOTQsLjk0NzkzLC45NTkyMywuOTA5OTYsLjk5MzQ2LC45ODI0MywxLjAyMTEyLC45NTQ5MywxLjE0MDYsLjkwOTk2LDEuMDM1NzQsMS4wMjU5NywxLjAwMDgsMS4xODEwMiwxLjA2NjI4LDEuMDM1NzQsMS4wMTkyLDEuMDE5MzIsMS4wMDg4NiwuOTc1MzEsMS4wMTA2LDEuMDAwOCwxLjEzMTg5LDEuMTgxMDIsMS4wMjI3NywuOTg2ODMsMS4wMDE2LC45OTU2MSwxLjA3MjM3LDEuMDAwOCwuOTA0MzQsLjk5OTIxLC45MzgwMywuODk2NSwxLjIzMDg1LDEuMDY2MjgsMS4wNDk4MywuOTYyNjgsMS4wNDk5LC45ODQzOSwxLjE4MTAyLDEuMDY2MjgsMS4wMDA4LDEuMDY2MjgsLjk4NDM5LC43OTc5NSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjA5NDY2LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45NzI3OCwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjAyMDY1LDEsMSwxLDEsMSwxLDEuMDY0NjcsMS4wMjUxMSwxLjA2NDY3LDEuMDI1MTEsMS4wNjQ2NywxLjAyNTExLC45MDk5NiwuOTY3NTIsMSwxLjIxNDA4LC44OTkwMywxLDEsLjc1MTU1LDEuMDQzOTQsMS4wNDM5NCwxLjA0Mzk0LDEuMDQzOTQsLjk4NjMzLC45ODYzMywuOTg2MzMsLjczMDQ3LC43MzA0NywxLjIwNjQyLC45MTIxMSwxLjI1NjM1LDEuMjIyLDEuMDI5NTYsMS4wMzM3MiwxLjAzMzcyLC45NjAzOSwxLjI0NjMzLDEsMS4xMjQ1NCwuOTM1MDMsMS4wMzQyNCwxLjE5Njg3LDEuMDM0MjQsMSwxLDEsLjc3MSwxLDEsMS4xNTc0OSwxLjE1NzQ5LDEuMTU3NDksMS4xMDk0OCwuODYyNzksLjk0NDM0LC44NjI3OSwuOTQ0MzQsLjg2MTgyLDEsMSwxLjE2ODk3LDEsLjk2MDg1LC45MDEzNywxLjIxMDcsMS4xODQxNiwxLjEzOTczLC42OTgyNSwuOTcxNiwyLjEwMzM5LDEuMjkwMDQsMS4yOTAwNCwxLjIxMTcyLDEuMjkwMDQsMS4yOTAwNCwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuNDI2MDMsMSwuOTk4NjIsLjk5ODYyLDEsLjg3MDI1LC44NzAyNSwuODcwMjUsLjg3MDI1LDEuMTg4NzQsMS40MjYwMywxLDEuNDI2MDMsMS40MjYwMywuOTk4NjIsMSwxLDEsMSwxLDEuMjg4NiwxLjA0MzE1LDEuMTUyOTYsMS4zNDE2MywxLDEsMSwxLjA5MTkzLDEuMDkxOTMsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLHFuPXtsaW5lSGVpZ2h0OjEuMzMwMDgsbGluZUdhcDowfSxUbj1bMS43NjczOCwxLDEsLjk4OTQ2LDEuMDM5NTksMS4wNDAxNiwxLjAyODA5LDEuMDM2LC45NzYzOSwxLjEwOTUzLDEuMjMyMDMsMS4xMTE0NCwxLjExMTQ0LDEuMTY5MzksMS4yMTIzNywuOTc1NCwxLjIxMjYxLC45NzU0LDEuNTk3NTQsMS4wMzYsMS4wMzYsMS4wMzYsMS4wMzYsMS4wMzYsMS4wMzYsMS4wMzYsMS4wMzYsMS4wMzYsMS4wMzYsLjgxMzc4LC44MTM3OCwxLjIxMjM3LDEuMjEyMzcsMS4yMTIzNywuNzM1NDEsLjk3ODQ3LC45NzM2MywuODk3MjMsLjg3ODk3LDEuMDQyNiwuNzk0MjksLjg1MjkyLC45MTE0OSwxLjA1ODE1LDEuMTQwNiwuNzk2MzEsLjkwMTI4LC44Mzg1MywxLjA0Mzk2LDEuMTA2MTUsLjk3NTUyLC45NDQzNiwuOTc1NTIsLjg4NjQxLC44MDUyNywuOTYwODMsMS4wMDEzNSwxLDEuMDY3NzcsLjk4MTcsLjkxMTQyLC45OTM2MSwxLjExMTQ0LDEuNTcyOTMsMS4xMTE0NCwxLjIxMjM3LC43NDYyNywxLjMxODE4LDEuMDY1ODUsLjk3MDQyLC44MzA1NSwuOTcwNDIsLjkzNTAzLDEuMTI2MSwuOTcwNDIsLjk3OTIyLDEuMTQyMzYsLjk0NTUyLDEuMDEwNTQsMS4xNDIzNiwxLjAyNDcxLC45NzkyMiwuOTQxNjUsLjk3MDQyLC45NzA0MiwxLjAyNzYsLjc4OTI5LDEuMTI2MSwuOTc5MjIsLjk1ODc0LDEuMDIxOTcsLjk4NTA3LC45Njc1MiwuOTcxNjgsLjk1MTA3LDEuMTY1NzksLjk1MTA3LDEuMjEyMzcsMS4wMzk1OSwxLjAzNiwxLjAzNiwxLDEuMDM2LDEuMTY1NzksLjg3MzU3LDEuMzE4MTgsMS4xODc1NCwxLjI2NzgxLDEuMDUzNTYsMS4yMTIzNywxLjE4NjIyLC43OTQ4NywuOTQ5OTQsMS4yOTAwNCwxLjI0MDQ3LDEuMjQwNDcsMS4zMTgxOCwxLC45MTQ4NCwuOTc1NCwxLjMxODE4LDEuMTM0OSwxLjI0ODY2LDEuMDUzNTYsMS4xMzkzNCwxLjE1NTc0LDEuMTczODksLjczNTQxLC45NzM2MywuOTczNjMsLjk3MzYzLC45NzM2MywuOTczNjMsLjk3MzYzLC45NDM4NSwuODc4OTcsLjc5NDI5LC43OTQyOSwuNzk0MjksLjc5NDI5LDEuMTQwNiwxLjE0MDYsMS4xNDA2LDEuMTQwNiwxLjA0MjYsMS4xMDYxNSwuOTc1NTIsLjk3NTUyLC45NzU1MiwuOTc1NTIsLjk3NTUyLDEuMjEyMzcsLjk3NTUyLDEuMDAxMzUsMS4wMDEzNSwxLjAwMTM1LDEuMDAxMzUsLjkxMTQyLC45NDQzNiwuOTg3MjEsMS4wNjU4NSwxLjA2NTg1LDEuMDY1ODUsMS4wNjU4NSwxLjA2NTg1LDEuMDY1ODUsLjk2NzA1LC44MzA1NSwuOTM1MDMsLjkzNTAzLC45MzUwMywuOTM1MDMsMS4xNDIzNiwxLjE0MjM2LDEuMTQyMzYsMS4xNDIzNiwuOTMxMjUsLjk3OTIyLC45NDE2NSwuOTQxNjUsLjk0MTY1LC45NDE2NSwuOTQxNjUsMS4yOTAwNCwuOTQxNjUsLjk3OTIyLC45NzkyMiwuOTc5MjIsLjk3OTIyLC45Njc1MiwuOTcwNDIsLjk2NzUyLC45NzM2MywxLjA2NTg1LC45NzM2MywxLjA2NTg1LC45NzM2MywxLjA2NTg1LC44Nzg5NywuODMwNTUsLjg3ODk3LC44MzA1NSwuODc4OTcsLjgzMDU1LC44Nzg5NywuODMwNTUsMS4wNDI2LDEuMDAzMywxLjA0MjYsLjk3MDQyLC43OTQyOSwuOTM1MDMsLjc5NDI5LC45MzUwMywuNzk0MjksLjkzNTAzLC43OTQyOSwuOTM1MDMsLjc5NDI5LC45MzUwMywuOTExNDksLjk3MDQyLC45MTE0OSwuOTcwNDIsLjkxMTQ5LC45NzA0MiwxLDEsMS4wNTgxNSwuOTc5MjIsMS4wNTgxNSwuOTc5MjIsMS4xNDA2LDEuMTQyMzYsMS4xNDA2LDEuMTQyMzYsMS4xNDA2LDEuMTQyMzYsMS4xNDA2LDEuMTQyMzYsMS4xNDA2LDEuMTQyMzYsLjk3NDQxLDEuMDQzMDIsLjc5NjMxLDEuMDE1ODIsMSwxLDEuMDEwNTQsLjgzODUzLDEuMTQyMzYsMSwxLC44Mzg1MywxLjA5MTI1LC44Mzg1MywuOTA0MTgsLjgzODUzLDEuMTk1MDgsMS4xMDYxNSwuOTc5MjIsMSwxLDEuMTA2MTUsLjk3OTIyLDEuMDEwMzQsMS4xMDQ2NiwuOTc5MjIsLjk3NTUyLC45NDE2NSwuOTc1NTIsLjk0MTY1LC45NzU1MiwuOTQxNjUsLjkxNjAyLC45MTk4MSwuODg2NDEsMS4wMjc2LDEsMSwuODg2NDEsMS4wMjc2LC44MDUyNywuNzg5MjksLjgwNTI3LC43ODkyOSwuODA1MjcsLjc4OTI5LC44MDUyNywuNzg5MjksMSwxLC45NjA4MywxLjA1NDAzLC45NTkyMywxLjE2ODYyLDEuMDAxMzUsLjk3OTIyLDEuMDAxMzUsLjk3OTIyLDEuMDAxMzUsLjk3OTIyLDEuMDAxMzUsLjk3OTIyLDEuMDAxMzUsLjk3OTIyLDEuMDAxMzUsLjk3OTIyLDEuMDY3NzcsMS4wMjE5NywuOTExNDIsLjk2NzUyLC45MTE0MiwuOTkzNjEsLjk3MTY4LC45OTM2MSwuOTcxNjgsLjk5MzYxLC45NzE2OCwxLjIzMTk5LDEuMDM2LC45NzM2MywxLjA2NTg1LC45NDM4NSwuOTY3MDUsLjk3NTUyLC45NDE2NSwxLDEsLjk2MDgzLDEuMTI2MSwxLjMxODE4LDEuMzE4MTgsMS4zMTgxOCwxLjMxODE4LDEuMzE4MTgsMS4zMTgxOCwxLjMxODE4LDEuMzE4MTgsMS4zMTgxOCwuOTUxNjEsMS4yNzEyNiwxLjAwODExLC44MzI4NCwuNzc3MDIsLjk5MTM3LC45NTI1MywxLjAzNDcsLjg2MTQyLDEuMDcyMDUsMS4xNDIzNiwuOTczNjMsLjg5NzIzLC44Njg2OSwxLjA5ODE4LC43OTQyOSwuOTkzNjEsMS4wNTgxNSwuOTc1NTIsMS4xNDA2LC45MDEyOCwxLjA2NjYyLDEuMDQzOTYsMS4xMDYxNSwuODQ5MTgsLjk3NTUyLDEuMDQ2OTQsLjk0NDM2LC45ODAxNSwuOTYwODMsLjkxMTQyLDEuMDAzNTYsLjk4MTcsMS4wMTk0NSwuOTg5OTksMS4xNDA2LC45MTE0MiwxLjA0OTYxLC45ODk4LDEuMDA2MzksMS4xNDIzNiwxLjA3NTE0LDEuMDQ5NjEsLjk5NjA3LDEuMDI4OTcsMS4wMDgsLjk4OTgsLjk1MTM0LDEuMDA2MzksMS4xMTEyMSwxLjE0MjM2LDEuMDA1MTgsLjk3OTgxLDEuMDIxODYsMSwxLjA4NTc4LC45NDE2NSwuOTkzMTQsLjk4Mzg3LC45MzAyOCwuOTMzNzcsMS4zNTEyNSwxLjA3NTE0LDEuMTA2ODcsLjkzNDkxLDEuMDQyMzIsMS4wMDM1MSwxLjE0MjM2LDEuMDc1MTQsLjk0MTY1LDEuMDc1MTQsMS4wMDM1MSwuNzk0MjksMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4wOTA5NywxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTM1MDMsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjk2NjA5LDEsMSwxLDEsMSwxLDEuMDY3NzcsMS4wMjE5NywxLjA2Nzc3LDEuMDIxOTcsMS4wNjc3NywxLjAyMTk3LC45MTE0MiwuOTY3NTIsMSwxLjIxMjYxLC44OTkwMywxLDEsLjc1MTU1LDEuMDQ3NDUsMS4wNDc0NSwxLjA0NzQ1LDEuMDQzOTQsLjk4NjMzLC45ODYzMywuOTg2MzMsLjcyOTU5LC43Mjk1OSwxLjIwNTAyLC45MTQwNiwxLjI2NTE0LDEuMjIyLDEuMDI5NTYsMS4wMzM3MiwxLjAzMzcyLC45NjAzOSwxLjI0NjMzLDEsMS4wOTEyNSwuOTMzMjcsMS4wMzMzNiwxLjE2NTQxLDEuMDM2LDEsMSwxLC43NzEsMSwxLDEuMTU1NzQsMS4xNTU3NCwxLjE1NTc0LDEuMTU1NzQsLjg2MzY0LC45NDQzNCwuODYyNzksLjk0NDM0LC44NjIyNCwxLDEsMS4xNjc5OCwxLC45NjA4NSwuOTAwNjgsMS4yMTIzNywxLjE4NDE2LDEuMTM5MDQsLjY5ODI1LC45NzE2LDIuMTAzMzksMS4yOTAwNCwxLjI5MDA0LDEuMjEzMzksMS4yOTAwNCwxLjI5MDA0LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS40MjYwMywxLC45OTg2MiwuOTk4NjIsMSwuODcwMjUsLjg3MDI1LC44NzAyNSwuODcwMjUsMS4xODc3NSwxLjQyNjAzLDEsMS40MjYwMywxLjQyNjAzLC45OTg2MiwxLDEsMSwxLDEsMS4yODg2LDEuMDQzMTUsMS4xNTI5NiwxLjM0MTYzLDEsMSwxLDEuMTMyNjksMS4xMzI2OSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sUG49e2xpbmVIZWlnaHQ6MS4zMzAwOCxsaW5lR2FwOjB9LFduPVsxLjc2NzM4LDEsMSwuOTg5NDYsMS4xNDc2MywxLjA1MzY1LDEuMDYyMzQsLjk2OTI3LC45MjU4NiwxLjE1MzczLDEuMTg0MTQsLjkxMzQ5LC45MTM0OSwxLjA3NDAzLDEuMTczMDgsLjc4MzgzLDEuMjAwODgsLjc4MzgzLDEuNDI1MzEsLjk2OTI3LC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuOTY5MjcsLjk2OTI3LC43ODM4MywuNzgzODMsMS4xNzMwOCwxLjE3MzA4LDEuMTczMDgsLjc3MzQ5LC45NDU2NSwuOTQ3MjksLjg1OTQ0LC44ODUwNiwuOTg1OCwuNzQ4MTcsLjgwMDE2LC44ODQ0OSwuOTgwMzksLjk1NzgyLC42OTIzOCwuODk4OTgsLjgzMjMxLC45ODE4MywxLjAzOTg5LC45NjkyNCwuODYyMzcsLjk2OTI0LC44MDU5NSwuNzQ1MjQsLjg2MDkxLC45NTQwMiwuOTQxNDMsLjk4NDQ4LC44ODU4LC44MzA4OSwuOTMyODUsMS4wOTQ5LDEuMzkwMTYsMS4wOTQ5LDEuNDU5OTQsLjc0NjI3LDEuMDQ4MzksLjk3NDU0LC45NzQ1NCwuODcyMDcsLjk3NDU0LC44NzUzMywxLjA2MTUxLC45NzQ1NCwxLjAwMTc2LDEuMTY0ODQsMS4wODEzMiwuOTgwNDcsMS4xNjQ4NCwxLjAyOTg5LDEuMDEwNTQsLjk2MjI1LC45NzQ1NCwuOTc0NTQsMS4wNjU5OCwuNzkwMDQsMS4xNjM0NCwxLjAwMzUxLC45NDYyOSwuOTk3MywuOTEwMTYsLjk2Nzc3LC45MDQzLC45MTA4MiwuOTI0ODEsLjkxMDgyLDEuMTczMDgsLjk1NzQ4LC45NjkyNywuOTY5MjcsMSwuOTY5MjcsLjkyNDgxLC44MDU5NywxLjA0ODM5LDEuMjMzOTMsMS4xNzgxLC45MjQ1LDEuMTczMDgsMS4yMDgwOCwuNjMyMTgsLjk0MjYxLDEuMjQ4MjIsMS4wOTk3MSwxLjA5OTcxLDEuMDQ4MzksMSwuODUyNzMsLjc4MDMyLDEuMDQ4MzksMS4wOTk3MSwxLjIyMzI2LC45MjQ1LDEuMDk4MzYsMS4xMzUyNSwxLjE1MjIyLC43MDQyNCwuOTQ3MjksLjk0NzI5LC45NDcyOSwuOTQ3MjksLjk0NzI5LC45NDcyOSwuODU0OTgsLjg4NTA2LC43NDgxNywuNzQ4MTcsLjc0ODE3LC43NDgxNywuOTU3ODIsLjk1NzgyLC45NTc4MiwuOTU3ODIsLjk4NTgsMS4wMzk4OSwuOTY5MjQsLjk2OTI0LC45NjkyNCwuOTY5MjQsLjk2OTI0LDEuMTczMDgsLjk2OTI0LC45NTQwMiwuOTU0MDIsLjk1NDAyLC45NTQwMiwuODMwODksLjg2MjM3LC44ODQwOSwuOTc0NTQsLjk3NDU0LC45NzQ1NCwuOTc0NTQsLjk3NDU0LC45NzQ1NCwuOTI5MTYsLjg3MjA3LC44NzUzMywuODc1MzMsLjg3NTMzLC44NzUzMywuOTMxNDYsLjkzMTQ2LC45MzE0NiwuOTMxNDYsLjkzODU0LDEuMDEwNTQsLjk2MjI1LC45NjIyNSwuOTYyMjUsLjk2MjI1LC45NjIyNSwxLjI0ODIyLC44NzYxLDEuMDAzNTEsMS4wMDM1MSwxLjAwMzUxLDEuMDAzNTEsLjk2Nzc3LC45NzQ1NCwuOTY3NzcsLjk0NzI5LC45NzQ1NCwuOTQ3MjksLjk3NDU0LC45NDcyOSwuOTc0NTQsLjg4NTA2LC44NzIwNywuODg1MDYsLjg3MjA3LC44ODUwNiwuODcyMDcsLjg4NTA2LC44NzIwNywuOTg1OCwuOTUzOTEsLjk4NTgsLjk3NDU0LC43NDgxNywuODc1MzMsLjc0ODE3LC44NzUzMywuNzQ4MTcsLjg3NTMzLC43NDgxNywuODc1MzMsLjc0ODE3LC44NzUzMywuODg0NDksLjk3NDU0LC44ODQ0OSwuOTc0NTQsLjg4NDQ5LC45NzQ1NCwxLDEsLjk4MDM5LDEuMDAxNzYsLjk4MDM5LDEuMDAxNzYsLjk1NzgyLC45MzE0NiwuOTU3ODIsLjkzMTQ2LC45NTc4MiwuOTMxNDYsLjk1NzgyLDEuMTY0ODQsLjk1NzgyLC45MzE0NiwuODQ0MjEsMS4xMjc2MSwuNjkyMzgsMS4wODEzMiwxLDEsLjk4MDQ3LC44MzIzMSwxLjE2NDg0LDEsMSwuODQ3MjMsMS4wNDg2MSwuODQ3MjMsLjc4NzU1LC44MzIzMSwxLjIzNzM2LDEuMDM5ODksMS4wMTA1NCwxLDEsMS4wMzk4OSwxLjAxMDU0LC45ODU3LDEuMDM4NDksMS4wMTA1NCwuOTY5MjQsLjk2MjI1LC45NjkyNCwuOTYyMjUsLjk2OTI0LC45NjIyNSwuOTIzODMsLjkwMTcxLC44MDU5NSwxLjA2NTk4LDEsMSwuODA1OTUsMS4wNjU5OCwuNzQ1MjQsLjc5MDA0LC43NDUyNCwuNzkwMDQsLjc0NTI0LC43OTAwNCwuNzQ1MjQsLjc5MDA0LDEsMSwuODYwOTEsMS4wMjc1OSwuODU3NzEsMS4xNjM0NCwuOTU0MDIsMS4wMDM1MSwuOTU0MDIsMS4wMDM1MSwuOTU0MDIsMS4wMDM1MSwuOTU0MDIsMS4wMDM1MSwuOTU0MDIsMS4wMDM1MSwuOTU0MDIsMS4wMDM1MSwuOTg0NDgsLjk5NzMsLjgzMDg5LC45Njc3NywuODMwODksLjkzMjg1LC45MDQzLC45MzI4NSwuOTA0MywuOTMyODUsLjkwNDMsMS4zMTg2OCwuOTY5MjcsLjk0NzI5LC45NzQ1NCwuODU0OTgsLjkyOTE2LC45NjkyNCwuODc2MSwxLDEsLjg2MDkxLDEuMTYzNDQsMS4wNDgzOSwxLjA0ODM5LDEuMDQ4MzksMS4wNDgzOSwxLjA0ODM5LDEuMDQ4MzksMS4wNDgzOSwxLjA0ODM5LDEuMDQ4MzksLjgxOTY1LC44MTk2NSwuOTQ3MjksLjc4MDMyLC43MTAyMiwuOTA4ODMsLjg0MTcxLC45OTg3NywuNzc1OTYsMS4wNTczNCwxLjIsLjk0NzI5LC44NTk0NCwuODI3OTEsLjk2MDcsLjc0ODE3LC45MzI4NSwuOTgwMzksLjk2OTI0LC45NTc4MiwuODk4OTgsLjk4MzE2LC45ODE4MywxLjAzOTg5LC43ODYxNCwuOTY5MjQsLjk3NjQyLC44NjIzNywuODYwNzUsLjg2MDkxLC44MzA4OSwuOTAwODIsLjg4NTgsLjk3Mjk2LDEuMDEyODQsLjk1NzgyLC44MzA4OSwxLjA5NzYsMS4wNCwxLjAzMzQyLDEuMiwxLjA2NzUsMS4wOTc2LC45ODIwNSwxLjAzODA5LDEuMDUwOTcsMS4wNCwuOTUzNjQsMS4wMzM0MiwxLjA1NDAxLDEuMiwxLjAyMTQ4LDEuMDExOSwxLjA0NzI0LDEuMDEyNywxLjAyNzMyLC45NjIyNSwuODk2NSwuOTc3ODMsLjkzNTc0LC45NDgxOCwxLjMwNjc5LDEuMDY3NSwxLjExODI2LC45OTgyMSwxLjA1NTcsMS4wMzI2LDEuMiwxLjA2NzUsLjk2MjI1LDEuMDY3NSwxLjAzMjYsLjc0ODE3LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMDM3NTQsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjg3NTMzLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45ODcwNSwxLDEsMSwxLDEsMSwuOTg0NDgsLjk5NzMsLjk4NDQ4LC45OTczLC45ODQ0OCwuOTk3MywuODMwODksLjk2Nzc3LDEsMS4yMDA4OCwuODk5MDMsMSwxLC43NTE1NSwuOTQ5NDUsLjk0OTQ1LC45NDk0NSwuOTQ5NDUsMS4xMjMxNywxLjEyMzE3LDEuMTIzMTcsLjY3NjAzLC42NzYwMywxLjE1NjIxLC43MzU4NCwxLjIxMTkxLDEuMjIxMzUsMS4wNjQ4MywuOTQ4NjgsLjk0ODY4LC45NTk5NiwxLjI0NjMzLDEsMS4wNzQ5NywuODc3MDksLjk2OTI3LDEuMDE0NzMsLjk2OTI3LDEsMSwxLC43NzI5NSwxLDEsMS4wOTgzNiwxLjA5ODM2LDEuMDk4MzYsMS4wMTUyMiwuODYzMjEsLjk0NDM0LC44NjQ5LC45NDQzNCwuODYxODIsMSwxLDEuMDgzLDEsLjkxNTc4LC44NjQzOCwxLjE3MzA4LDEuMTg0MTYsMS4xNDU4OSwuNjk4MjUsLjk3NjIyLDEuOTY3OTEsMS4yNDgyMiwxLjI0ODIyLDEuMTczMDgsMS4yNDgyMiwxLjI0ODIyLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS40MjYwMywxLC45OTg2MiwuOTk4NjIsMSwuODcwMjUsLjg3MDI1LC44NzAyNSwuODcwMjUsMS4xNzk4NCwxLjQyNjAzLDEsMS40MjYwMywxLjQyNjAzLC45OTg2MiwxLDEsMSwxLDEsMS4yODg2LDEuMDQzMTUsMS4xNTI5NiwxLjM0MTYzLDEsMSwxLDEuMTA3NDIsMS4xMDc0MiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sT249e2xpbmVIZWlnaHQ6MS4zMzAwOCxsaW5lR2FwOjB9LFpuPVsxLjc2NzM4LDEsMSwuOTg1OTQsMS4wMjI4NSwxLjEwNDU0LDEuMDYyMzQsLjk2OTI3LC45MjAzNywxLjE5OTg1LDEuMjA0NiwuOTA2MTYsLjkwNjE2LDEuMDcxNTIsMS4xNzE0LC43ODAzMiwxLjIwMDg4LC43ODAzMiwxLjQwMjQ2LC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuNzgwMzIsLjc4MDMyLDEuMTcxNCwxLjE3MTQsMS4xNzE0LC44MDU5NywuOTQwODQsLjk2NzA2LC44NTk0NCwuODU3MzQsLjk3MDkzLC43NTg0MiwuNzk5MzYsLjg4MTk4LC45ODMxLC45NTc4MiwuNzEzODcsLjg2OTY5LC44NDYzNiwxLjA3Nzk2LDEuMDM1ODQsLjk2OTI0LC44Mzk2OCwuOTY5MjQsLjgyODI2LC43OTY0OSwuODU3NzEsLjk1MTMyLC45MzExOSwuOTg5NjUsLjg4NDMzLC44Mjg3LC45MzM2NSwxLjA4NjEyLDEuMzYzOCwxLjA4NjEyLDEuNDU3ODYsLjc0NjI3LC44MDQ5OSwuOTE0ODQsMS4wNTcwNywuOTIzODMsMS4wNTg4MiwuOTQwMywxLjEyNjU0LDEuMDU4ODIsMS4wMTc1NiwxLjA5MDExLDEuMDkwMTEsLjk5NDE0LDEuMDkwMTEsMS4wMzQsMS4wMTc1NiwxLjA1MzU2LDEuMDU3MDcsMS4wNTg4MiwxLjA0Mzk5LC44NDg2MywxLjIxOTY4LDEuMDE3NTYsLjk1ODAxLDEuMDAwNjgsLjkxNzk3LC45Njc3NywuOTA0MywuOTAzNTEsLjkyMTA1LC45MDM1MSwxLjE3MTQsLjg1MzM3LC45NjkyNywuOTY5MjcsLjk5OTEyLC45NjkyNywuOTIxMDUsLjgwNTk3LDEuMjQzNCwxLjIwODA4LDEuMDU5MzcsLjkwOTU3LDEuMTcxNCwxLjIwODA4LC43NTE1NSwuOTQyNjEsMS4yNDY0NCwxLjA5OTcxLDEuMDk5NzEsLjg0NzUxLDEsLjg1MjczLC43ODAzMiwuNjE1ODQsMS4wNTQyNSwxLjE3OTE0LC45MDk1NywxLjA4NjY1LDEuMTE1OTMsMS4xNDE2OSwuNzMzODEsLjk2NzA2LC45NjcwNiwuOTY3MDYsLjk2NzA2LC45NjcwNiwuOTY3MDYsLjg2MDM1LC44NTczNCwuNzU4NDIsLjc1ODQyLC43NTg0MiwuNzU4NDIsLjk1NzgyLC45NTc4MiwuOTU3ODIsLjk1NzgyLC45NzA5MywxLjAzNTg0LC45NjkyNCwuOTY5MjQsLjk2OTI0LC45NjkyNCwuOTY5MjQsMS4xNzE0LC45NjkyNCwuOTUxMzIsLjk1MTMyLC45NTEzMiwuOTUxMzIsLjgyODcsLjgzOTY4LC44OTA0OSwuOTE0ODQsLjkxNDg0LC45MTQ4NCwuOTE0ODQsLjkxNDg0LC45MTQ4NCwuOTM1NzUsLjkyMzgzLC45NDAzLC45NDAzLC45NDAzLC45NDAzLC44NzE3LC44NzE3LC44NzE3LC44NzE3LDEuMDA1MjcsMS4wMTc1NiwxLjA1MzU2LDEuMDUzNTYsMS4wNTM1NiwxLjA1MzU2LDEuMDUzNTYsMS4yNDY0NCwuOTU5MjMsMS4wMTc1NiwxLjAxNzU2LDEuMDE3NTYsMS4wMTc1NiwuOTY3NzcsMS4wNTcwNywuOTY3NzcsLjk2NzA2LC45MTQ4NCwuOTY3MDYsLjkxNDg0LC45NjcwNiwuOTE0ODQsLjg1NzM0LC45MjM4MywuODU3MzQsLjkyMzgzLC44NTczNCwuOTIzODMsLjg1NzM0LC45MjM4MywuOTcwOTMsMS4wOTY5LC45NzA5MywxLjA1ODgyLC43NTg0MiwuOTQwMywuNzU4NDIsLjk0MDMsLjc1ODQyLC45NDAzLC43NTg0MiwuOTQwMywuNzU4NDIsLjk0MDMsLjg4MTk4LDEuMDU4ODIsLjg4MTk4LDEuMDU4ODIsLjg4MTk4LDEuMDU4ODIsMSwxLC45ODMxLDEuMDE3NTYsLjk4MzEsMS4wMTc1NiwuOTU3ODIsLjg3MTcsLjk1NzgyLC44NzE3LC45NTc4MiwuODcxNywuOTU3ODIsMS4wOTAxMSwuOTU3ODIsLjg3MTcsLjg0Nzg0LDEuMTE1NTEsLjcxMzg3LDEuMDkwMTEsMSwxLC45OTQxNCwuODQ2MzYsMS4wOTAxMSwxLDEsLjg0NjM2LDEuMDUzNiwuODQ2MzYsLjk0Mjk4LC44NDYzNiwxLjIzMjk3LDEuMDM1ODQsMS4wMTc1NiwxLDEsMS4wMzU4NCwxLjAxNzU2LDEuMDAzMjMsMS4wMzQ0NCwxLjAxNzU2LC45NjkyNCwxLjA1MzU2LC45NjkyNCwxLjA1MzU2LC45NjkyNCwxLjA1MzU2LC45MzA2NiwuOTgyOTMsLjgyODI2LDEuMDQzOTksMSwxLC44MjgyNiwxLjA0Mzk5LC43OTY0OSwuODQ4NjMsLjc5NjQ5LC44NDg2MywuNzk2NDksLjg0ODYzLC43OTY0OSwuODQ4NjMsMSwxLC44NTc3MSwxLjE3MzE4LC44NTc3MSwxLjIxOTY4LC45NTEzMiwxLjAxNzU2LC45NTEzMiwxLjAxNzU2LC45NTEzMiwxLjAxNzU2LC45NTEzMiwxLjAxNzU2LC45NTEzMiwxLjAxNzU2LC45NTEzMiwxLjAxNzU2LC45ODk2NSwxLjAwMDY4LC44Mjg3LC45Njc3NywuODI4NywuOTMzNjUsLjkwNDMsLjkzMzY1LC45MDQzLC45MzM2NSwuOTA0MywxLjA4NTcxLC45NjkyNywuOTY3MDYsLjkxNDg0LC44NjAzNSwuOTM1NzUsLjk2OTI0LC45NTkyMywxLDEsLjg1NzcxLDEuMjE5NjgsMS4xMTQzNywxLjExNDM3LC45MzEwOSwuOTEyMDIsLjYwNDExLC44NDE2NCwuNTU1NzIsMS4wMTE3MywuOTczNjEsLjgxODE4LC44MTgxOCwuOTY2MzUsLjc4MDMyLC43MjcyNywuOTIzNjYsLjk4NjAxLDEuMDM0MDUsLjc3OTY4LDEuMDk3OTksMS4yLC45NjcwNiwuODU5NDQsLjg1NjM4LC45NjQ5MSwuNzU4NDIsLjkzMzY1LC45ODMxLC45NjkyNCwuOTU3ODIsLjg2OTY5LC45NDE1MiwxLjA3Nzk2LDEuMDM1ODQsLjc4NDM3LC45NjkyNCwuOTg3MTUsLjgzOTY4LC44MzQ5MSwuODU3NzEsLjgyODcsLjk0NDkyLC44ODQzMywuOTI4NywxLjAwOTgsLjk1NzgyLC44Mjg3LDEuMDYyNSwuOTgyNDgsMS4wMzQyNCwxLjIsMS4wMTA3MSwxLjA2MjUsLjk1MjQ2LDEuMDM4MDksMS4wNDkxMiwuOTgyNDgsMS4wMDIyMSwxLjAzNDI0LDEuMDU0NDMsMS4yLDEuMDQ3ODUsLjk5NjA5LDEuMDAxNjksMS4wNTE3NiwuOTkzNDYsMS4wNTM1NiwuOTA4NywxLjAzMDA0LC45NTU0MiwuOTMxMTcsMS4yMzM2MiwxLjAxMDcxLDEuMDc4MzEsMS4wMjUxMiwxLjA1MjA1LDEuMDM1MDIsMS4yLDEuMDEwNzEsMS4wNTM1NiwxLjAxMDcxLDEuMDM1MDIsLjc1ODQyLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMDM3MTksMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjk0MDMsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4wNDAyMSwxLDEsMSwxLDEsMSwuOTg5NjUsMS4wMDA2OCwuOTg5NjUsMS4wMDA2OCwuOTg5NjUsMS4wMDA2OCwuODI4NywuOTY3NzcsMSwxLjIwMDg4LC44OTkwMywxLDEsLjc1MTU1LDEuMDMwNzcsMS4wMzA3NywxLjAzMDc3LDEuMDMwNzcsMS4xMzE5NiwxLjEzMTk2LDEuMTMxOTYsLjY3NDI4LC42NzQyOCwxLjE2MDM5LC43MzI5MSwxLjIwOTk2LDEuMjIxMzUsMS4wNjQ4MywuOTQ4NjgsLjk0ODY4LC45NTk5NiwxLjI0NjMzLDEsMS4wNzQ5NywuODc3OTYsLjk2OTI3LDEuMDE1MTgsLjk2OTI3LDEsMSwxLC43NzI5NSwxLDEsMS4xMDUzOSwxLjEwNTM5LDEuMTEzNTgsMS4wNjk2NywuODYyNzksLjk0NDM0LC44NjI3OSwuOTQ0MzQsLjg2MTgyLDEsMSwxLjA4MywxLC45MTU3OCwuODY1MDcsMS4xNzE0LDEuMTg0MTYsMS4xNDU4OSwuNjk4MjUsLjk3NjIyLDEuOTY5NywxLjI0ODIyLDEuMjQ4MjIsMS4xNzIzOCwxLjI0ODIyLDEuMjQ4MjIsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjQyNjAzLDEsLjk5ODYyLC45OTg2MiwxLC44NzAyNSwuODcwMjUsLjg3MDI1LC44NzAyNSwxLjE4MDgzLDEuNDI2MDMsMSwxLjQyNjAzLDEuNDI2MDMsLjk5ODYyLDEsMSwxLDEsMSwxLjI4ODYsMS4wNDMxNSwxLjE1Mjk2LDEuMzQxNjMsMSwxLDEsMS4xMDkzOCwxLjEwOTM4LDEsMSwxLDEuMDU0MjUsMS4wOTk3MSwxLjA5OTcxLDEuMDk5NzEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSxqbj17bGluZUhlaWdodDoxLjMzMDA4LGxpbmVHYXA6MH0sWG49YkEoKGZ1bmN0aW9uKEEpe0FbIk15cmlhZFByby1SZWd1bGFyIl09QVsiUGRmSlMtRmFsbGJhY2stUmVndWxhciJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1SZWd1bGFyIixmYWN0b3JzOlluLGJhc2VXaWR0aHM6R24sYmFzZU1hcHBpbmc6Tm4sbWV0cmljczp2bn0sQVsiTXlyaWFkUHJvLUJvbGQiXT1BWyJQZGZKUy1GYWxsYmFjay1Cb2xkIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUJvbGQiLGZhY3RvcnM6eG4sYmFzZVdpZHRoczpEbixiYXNlTWFwcGluZzpibixtZXRyaWNzOlVufSxBWyJNeXJpYWRQcm8tSXQiXT1BWyJNeXJpYWRQcm8tSXRhbGljIl09QVsiUGRmSlMtRmFsbGJhY2stSXRhbGljIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUl0YWxpYyIsZmFjdG9yczpKbixiYXNlV2lkdGhzOlNuLGJhc2VNYXBwaW5nOlJuLG1ldHJpY3M6SG59LEFbIk15cmlhZFByby1Cb2xkSXQiXT1BWyJNeXJpYWRQcm8tQm9sZEl0YWxpYyJdPUFbIlBkZkpTLUZhbGxiYWNrLUJvbGRJdGFsaWMiXT17bmFtZToiTGliZXJhdGlvblNhbnMtQm9sZEl0YWxpYyIsZmFjdG9yczpNbixiYXNlV2lkdGhzOmtuLGJhc2VNYXBwaW5nOkZuLG1ldHJpY3M6TG59LEEuQXJpYWxNVD1BLkFyaWFsPUFbIkFyaWFsLVJlZ3VsYXIiXT17bmFtZToiTGliZXJhdGlvblNhbnMtUmVndWxhciIsYmFzZVdpZHRoczpHbixiYXNlTWFwcGluZzpObn0sQVsiQXJpYWwtQm9sZE1UIl09QVsiQXJpYWwtQm9sZCJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1Cb2xkIixiYXNlV2lkdGhzOkRuLGJhc2VNYXBwaW5nOmJufSxBWyJBcmlhbC1JdGFsaWNNVCJdPUFbIkFyaWFsLUl0YWxpYyJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1JdGFsaWMiLGJhc2VXaWR0aHM6U24sYmFzZU1hcHBpbmc6Um59LEFbIkFyaWFsLUJvbGRJdGFsaWNNVCJdPUFbIkFyaWFsLUJvbGRJdGFsaWMiXT17bmFtZToiTGliZXJhdGlvblNhbnMtQm9sZEl0YWxpYyIsYmFzZVdpZHRoczprbixiYXNlTWFwcGluZzpGbn0sQVsiQ2FsaWJyaS1SZWd1bGFyIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLVJlZ3VsYXIiLGZhY3RvcnM6bG4sYmFzZVdpZHRoczpHbixiYXNlTWFwcGluZzpObixtZXRyaWNzOlFufSxBWyJDYWxpYnJpLUJvbGQiXT17bmFtZToiTGliZXJhdGlvblNhbnMtQm9sZCIsZmFjdG9yczpvbixiYXNlV2lkdGhzOkRuLGJhc2VNYXBwaW5nOmJuLG1ldHJpY3M6SW59LEFbIkNhbGlicmktSXRhbGljIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUl0YWxpYyIsZmFjdG9yczpDbixiYXNlV2lkdGhzOlNuLGJhc2VNYXBwaW5nOlJuLG1ldHJpY3M6Qm59LEFbIkNhbGlicmktQm9sZEl0YWxpYyJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1Cb2xkSXRhbGljIixmYWN0b3JzOmNuLGJhc2VXaWR0aHM6a24sYmFzZU1hcHBpbmc6Rm4sbWV0cmljczpobn0sQVsiU2Vnb2V1aS1SZWd1bGFyIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLVJlZ3VsYXIiLGZhY3RvcnM6Wm4sYmFzZVdpZHRoczpHbixiYXNlTWFwcGluZzpObixtZXRyaWNzOmpufSxBWyJTZWdvZXVpLUJvbGQiXT17bmFtZToiTGliZXJhdGlvblNhbnMtQm9sZCIsZmFjdG9yczpLbixiYXNlV2lkdGhzOkRuLGJhc2VNYXBwaW5nOmJuLG1ldHJpY3M6cW59LEFbIlNlZ29ldWktSXRhbGljIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUl0YWxpYyIsZmFjdG9yczpXbixiYXNlV2lkdGhzOlNuLGJhc2VNYXBwaW5nOlJuLG1ldHJpY3M6T259LEFbIlNlZ29ldWktQm9sZEl0YWxpYyJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1Cb2xkSXRhbGljIixmYWN0b3JzOlRuLGJhc2VXaWR0aHM6a24sYmFzZU1hcHBpbmc6Rm4sbWV0cmljczpQbn0sQVsiSGVsdmV0aWNhLVJlZ3VsYXIiXT1BLkhlbHZldGljYT17bmFtZToiTGliZXJhdGlvblNhbnMtUmVndWxhciIsZmFjdG9yczp5bixiYXNlV2lkdGhzOkduLGJhc2VNYXBwaW5nOk5uLG1ldHJpY3M6d259LEFbIkhlbHZldGljYS1Cb2xkIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUJvbGQiLGZhY3RvcnM6RW4sYmFzZVdpZHRoczpEbixiYXNlTWFwcGluZzpibixtZXRyaWNzOnVufSxBWyJIZWx2ZXRpY2EtSXRhbGljIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUl0YWxpYyIsZmFjdG9yczpwbixiYXNlV2lkdGhzOlNuLGJhc2VNYXBwaW5nOlJuLG1ldHJpY3M6bW59LEFbIkhlbHZldGljYS1Cb2xkSXRhbGljIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUJvbGRJdGFsaWMiLGZhY3RvcnM6ZG4sYmFzZVdpZHRoczprbixiYXNlTWFwcGluZzpGbixtZXRyaWNzOmZufX0pKTtmdW5jdGlvbiBWbihBKXtjb25zdCBlPWRhKEEpO3JldHVybiBYbigpW2VdfWZ1bmN0aW9uIF9uKEEpe2NvbnN0IGU9ZnVuY3Rpb24oQSl7Y29uc3QgZT1WbihBKTtpZighZSlyZXR1cm4gbnVsbDtjb25zdHtiYXNlV2lkdGhzOnQsYmFzZU1hcHBpbmc6aSxmYWN0b3JzOmF9PWUscz1hP3QubWFwKCgoQSxlKT0+QSphW2VdKSk6dDtsZXQgbixyPS0yO2NvbnN0IGc9W107Zm9yKGNvbnN0W0EsZV1vZiBpLm1hcCgoKEEsZSk9PltBLGVdKSkuc29ydCgoKFtBXSxbZV0pPT5BLWUpKSktMSE9PUEmJihBPT09cisxPyhuLnB1c2goc1tlXSkscis9MSk6KHI9QSxuPVtzW2VdXSxnLnB1c2goQSxuKSkpO3JldHVybiBnfShBKSx0PW5ldyBRQShudWxsKTt0LnNldCgiQmFzZUZvbnQiLENBLmdldChBKSksdC5zZXQoIlR5cGUiLENBLmdldCgiRm9udCIpKSx0LnNldCgiU3VidHlwZSIsQ0EuZ2V0KCJDSURGb250VHlwZTIiKSksdC5zZXQoIkVuY29kaW5nIixDQS5nZXQoIklkZW50aXR5LUgiKSksdC5zZXQoIkNJRFRvR0lETWFwIixDQS5nZXQoIklkZW50aXR5IikpLHQuc2V0KCJXIixlKSx0LnNldCgiRmlyc3RDaGFyIixlWzBdKSx0LnNldCgiTGFzdENoYXIiLGUuYXQoLTIpK2UuYXQoLTEpLmxlbmd0aC0xKTtjb25zdCBpPW5ldyBRQShudWxsKTt0LnNldCgiRm9udERlc2NyaXB0b3IiLGkpO2NvbnN0IGE9bmV3IFFBKG51bGwpO3JldHVybiBhLnNldCgiT3JkZXJpbmciLCJJZGVudGl0eSIpLGEuc2V0KCJSZWdpc3RyeSIsIkFkb2JlIiksYS5zZXQoIlN1cHBsZW1lbnQiLDApLHQuc2V0KCJDSURTeXN0ZW1JbmZvIixhKSx0fWNsYXNzIHpue2NvbnN0cnVjdG9yKEEpe3RoaXMubGV4ZXI9QSx0aGlzLm9wZXJhdG9ycz1bXSx0aGlzLnRva2VuPW51bGwsdGhpcy5wcmV2PW51bGx9bmV4dFRva2VuKCl7dGhpcy5wcmV2PXRoaXMudG9rZW4sdGhpcy50b2tlbj10aGlzLmxleGVyLmdldFRva2VuKCl9YWNjZXB0KEEpe3JldHVybiB0aGlzLnRva2VuLnR5cGU9PT1BJiYodGhpcy5uZXh0VG9rZW4oKSwhMCl9ZXhwZWN0KEEpe2lmKHRoaXMuYWNjZXB0KEEpKXJldHVybiEwO3Rocm93IG5ldyBXKGBVbmV4cGVjdGVkIHN5bWJvbDogZm91bmQgJHt0aGlzLnRva2VuLnR5cGV9IGV4cGVjdGVkICR7QX0uYCl9cGFyc2UoKXtyZXR1cm4gdGhpcy5uZXh0VG9rZW4oKSx0aGlzLmV4cGVjdCgkbi5MQlJBQ0UpLHRoaXMucGFyc2VCbG9jaygpLHRoaXMuZXhwZWN0KCRuLlJCUkFDRSksdGhpcy5vcGVyYXRvcnN9cGFyc2VCbG9jaygpe2Zvcig7OylpZih0aGlzLmFjY2VwdCgkbi5OVU1CRVIpKXRoaXMub3BlcmF0b3JzLnB1c2godGhpcy5wcmV2LnZhbHVlKTtlbHNlIGlmKHRoaXMuYWNjZXB0KCRuLk9QRVJBVE9SKSl0aGlzLm9wZXJhdG9ycy5wdXNoKHRoaXMucHJldi52YWx1ZSk7ZWxzZXtpZighdGhpcy5hY2NlcHQoJG4uTEJSQUNFKSlyZXR1cm47dGhpcy5wYXJzZUNvbmRpdGlvbigpfX1wYXJzZUNvbmRpdGlvbigpe2NvbnN0IEE9dGhpcy5vcGVyYXRvcnMubGVuZ3RoO2lmKHRoaXMub3BlcmF0b3JzLnB1c2gobnVsbCxudWxsKSx0aGlzLnBhcnNlQmxvY2soKSx0aGlzLmV4cGVjdCgkbi5SQlJBQ0UpLHRoaXMuYWNjZXB0KCRuLklGKSl0aGlzLm9wZXJhdG9yc1tBXT10aGlzLm9wZXJhdG9ycy5sZW5ndGgsdGhpcy5vcGVyYXRvcnNbQSsxXT0ianoiO2Vsc2V7aWYoIXRoaXMuYWNjZXB0KCRuLkxCUkFDRSkpdGhyb3cgbmV3IFcoIlBTIEZ1bmN0aW9uOiBlcnJvciBwYXJzaW5nIGNvbmRpdGlvbmFsLiIpO3tjb25zdCBlPXRoaXMub3BlcmF0b3JzLmxlbmd0aDt0aGlzLm9wZXJhdG9ycy5wdXNoKG51bGwsbnVsbCk7Y29uc3QgdD10aGlzLm9wZXJhdG9ycy5sZW5ndGg7dGhpcy5wYXJzZUJsb2NrKCksdGhpcy5leHBlY3QoJG4uUkJSQUNFKSx0aGlzLmV4cGVjdCgkbi5JRkVMU0UpLHRoaXMub3BlcmF0b3JzW2VdPXRoaXMub3BlcmF0b3JzLmxlbmd0aCx0aGlzLm9wZXJhdG9yc1tlKzFdPSJqIix0aGlzLm9wZXJhdG9yc1tBXT10LHRoaXMub3BlcmF0b3JzW0ErMV09Imp6In19fX1jb25zdCAkbj17TEJSQUNFOjAsUkJSQUNFOjEsTlVNQkVSOjIsT1BFUkFUT1I6MyxJRjo0LElGRUxTRTo1fTtjbGFzcyBBcntzdGF0aWMgZ2V0IG9wQ2FjaGUoKXtyZXR1cm4gSCh0aGlzLCJvcENhY2hlIixPYmplY3QuY3JlYXRlKG51bGwpKX1jb25zdHJ1Y3RvcihBLGUpe3RoaXMudHlwZT1BLHRoaXMudmFsdWU9ZX1zdGF0aWMgZ2V0T3BlcmF0b3IoQSl7cmV0dXJuIEFyLm9wQ2FjaGVbQV18fD1uZXcgQXIoJG4uT1BFUkFUT1IsQSl9c3RhdGljIGdldCBMQlJBQ0UoKXtyZXR1cm4gSCh0aGlzLCJMQlJBQ0UiLG5ldyBBcigkbi5MQlJBQ0UsInsiKSl9c3RhdGljIGdldCBSQlJBQ0UoKXtyZXR1cm4gSCh0aGlzLCJSQlJBQ0UiLG5ldyBBcigkbi5SQlJBQ0UsIn0iKSl9c3RhdGljIGdldCBJRigpe3JldHVybiBIKHRoaXMsIklGIixuZXcgQXIoJG4uSUYsIklGIikpfXN0YXRpYyBnZXQgSUZFTFNFKCl7cmV0dXJuIEgodGhpcywiSUZFTFNFIixuZXcgQXIoJG4uSUZFTFNFLCJJRkVMU0UiKSl9fWNsYXNzIGVye2NvbnN0cnVjdG9yKEEpe3RoaXMuc3RyZWFtPUEsdGhpcy5uZXh0Q2hhcigpLHRoaXMuc3RyQnVmPVtdfW5leHRDaGFyKCl7cmV0dXJuIHRoaXMuY3VycmVudENoYXI9dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpfWdldFRva2VuKCl7bGV0IEE9ITEsZT10aGlzLmN1cnJlbnRDaGFyO2Zvcig7Oyl7aWYoZTwwKXJldHVybiBvQTtpZihBKTEwIT09ZSYmMTMhPT1lfHwoQT0hMSk7ZWxzZSBpZigzNz09PWUpQT0hMDtlbHNlIGlmKCFZQShlKSlicmVhaztlPXRoaXMubmV4dENoYXIoKX1zd2l0Y2goMHxlKXtjYXNlIDQ4OmNhc2UgNDk6Y2FzZSA1MDpjYXNlIDUxOmNhc2UgNTI6Y2FzZSA1MzpjYXNlIDU0OmNhc2UgNTU6Y2FzZSA1NjpjYXNlIDU3OmNhc2UgNDM6Y2FzZSA0NTpjYXNlIDQ2OnJldHVybiBuZXcgQXIoJG4uTlVNQkVSLHRoaXMuZ2V0TnVtYmVyKCkpO2Nhc2UgMTIzOnJldHVybiB0aGlzLm5leHRDaGFyKCksQXIuTEJSQUNFO2Nhc2UgMTI1OnJldHVybiB0aGlzLm5leHRDaGFyKCksQXIuUkJSQUNFfWNvbnN0IHQ9dGhpcy5zdHJCdWY7Zm9yKHQubGVuZ3RoPTAsdFswXT1TdHJpbmcuZnJvbUNoYXJDb2RlKGUpOyhlPXRoaXMubmV4dENoYXIoKSk+PTAmJihlPj02NSYmZTw9OTB8fGU+PTk3JiZlPD0xMjIpOyl0LnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShlKSk7Y29uc3QgaT10LmpvaW4oIiIpO3N3aXRjaChpLnRvTG93ZXJDYXNlKCkpe2Nhc2UiaWYiOnJldHVybiBBci5JRjtjYXNlImlmZWxzZSI6cmV0dXJuIEFyLklGRUxTRTtkZWZhdWx0OnJldHVybiBBci5nZXRPcGVyYXRvcihpKX19Z2V0TnVtYmVyKCl7bGV0IEE9dGhpcy5jdXJyZW50Q2hhcjtjb25zdCBlPXRoaXMuc3RyQnVmO2ZvcihlLmxlbmd0aD0wLGVbMF09U3RyaW5nLmZyb21DaGFyQ29kZShBKTsoQT10aGlzLm5leHRDaGFyKCkpPj0wJiYoQT49NDgmJkE8PTU3fHw0NT09PUF8fDQ2PT09QSk7KWUucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKEEpKTtjb25zdCB0PXBhcnNlRmxvYXQoZS5qb2luKCIiKSk7aWYoaXNOYU4odCkpdGhyb3cgbmV3IFcoYEludmFsaWQgZmxvYXRpbmcgcG9pbnQgbnVtYmVyOiAke3R9YCk7cmV0dXJuIHR9fWNsYXNzIHRye2NvbnN0cnVjdG9yKEEpe3RoaXMuX29ubHlSZWZzPSEwPT09QT8ub25seVJlZnMsdGhpcy5fb25seVJlZnN8fCh0aGlzLl9uYW1lUmVmTWFwPW5ldyBNYXAsdGhpcy5faW1hZ2VNYXA9bmV3IE1hcCksdGhpcy5faW1hZ2VDYWNoZT1uZXcgZEF9Z2V0QnlOYW1lKEEpe3RoaXMuX29ubHlSZWZzJiZNKCJTaG91bGQgbm90IGNhbGwgYGdldEJ5TmFtZWAgbWV0aG9kLiIpO2NvbnN0IGU9dGhpcy5fbmFtZVJlZk1hcC5nZXQoQSk7cmV0dXJuIGU/dGhpcy5nZXRCeVJlZihlKTp0aGlzLl9pbWFnZU1hcC5nZXQoQSl8fG51bGx9Z2V0QnlSZWYoQSl7cmV0dXJuIHRoaXMuX2ltYWdlQ2FjaGUuZ2V0KEEpfHxudWxsfXNldChBLGUsdCl7TSgiQWJzdHJhY3QgbWV0aG9kIGBzZXRgIGNhbGxlZC4iKX19Y2xhc3MgaXIgZXh0ZW5kcyB0cntzZXQoQSxlPW51bGwsdCl7aWYoInN0cmluZyIhPXR5cGVvZiBBKXRocm93IG5ldyBFcnJvcignTG9jYWxJbWFnZUNhY2hlLnNldCAtIGV4cGVjdGVkICJuYW1lIiBhcmd1bWVudC4nKTtpZihlKXtpZih0aGlzLl9pbWFnZUNhY2hlLmhhcyhlKSlyZXR1cm47cmV0dXJuIHRoaXMuX25hbWVSZWZNYXAuc2V0KEEsZSksdm9pZCB0aGlzLl9pbWFnZUNhY2hlLnB1dChlLHQpfXRoaXMuX2ltYWdlTWFwLmhhcyhBKXx8dGhpcy5faW1hZ2VNYXAuc2V0KEEsdCl9fWNsYXNzIGFyIGV4dGVuZHMgdHJ7c2V0KEE9bnVsbCxlPW51bGwsdCl7aWYoInN0cmluZyIhPXR5cGVvZiBBJiYhZSl0aHJvdyBuZXcgRXJyb3IoJ0xvY2FsQ29sb3JTcGFjZUNhY2hlLnNldCAtIGV4cGVjdGVkICJuYW1lIiBhbmQvb3IgInJlZiIgYXJndW1lbnQuJyk7aWYoZSl7aWYodGhpcy5faW1hZ2VDYWNoZS5oYXMoZSkpcmV0dXJuO3JldHVybiBudWxsIT09QSYmdGhpcy5fbmFtZVJlZk1hcC5zZXQoQSxlKSx2b2lkIHRoaXMuX2ltYWdlQ2FjaGUucHV0KGUsdCl9dGhpcy5faW1hZ2VNYXAuaGFzKEEpfHx0aGlzLl9pbWFnZU1hcC5zZXQoQSx0KX19Y2xhc3Mgc3IgZXh0ZW5kcyB0cntjb25zdHJ1Y3RvcihBKXtzdXBlcih7b25seVJlZnM6ITB9KX1zZXQoQT1udWxsLGUsdCl7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCdMb2NhbEZ1bmN0aW9uQ2FjaGUuc2V0IC0gZXhwZWN0ZWQgInJlZiIgYXJndW1lbnQuJyk7dGhpcy5faW1hZ2VDYWNoZS5oYXMoZSl8fHRoaXMuX2ltYWdlQ2FjaGUucHV0KGUsdCl9fWNsYXNzIG5yIGV4dGVuZHMgdHJ7c2V0KEEsZT1udWxsLHQpe2lmKCJzdHJpbmciIT10eXBlb2YgQSl0aHJvdyBuZXcgRXJyb3IoJ0xvY2FsR1N0YXRlQ2FjaGUuc2V0IC0gZXhwZWN0ZWQgIm5hbWUiIGFyZ3VtZW50LicpO2lmKGUpe2lmKHRoaXMuX2ltYWdlQ2FjaGUuaGFzKGUpKXJldHVybjtyZXR1cm4gdGhpcy5fbmFtZVJlZk1hcC5zZXQoQSxlKSx2b2lkIHRoaXMuX2ltYWdlQ2FjaGUucHV0KGUsdCl9dGhpcy5faW1hZ2VNYXAuaGFzKEEpfHx0aGlzLl9pbWFnZU1hcC5zZXQoQSx0KX19Y2xhc3MgcnIgZXh0ZW5kcyB0cntjb25zdHJ1Y3RvcihBKXtzdXBlcih7b25seVJlZnM6ITB9KX1zZXQoQT1udWxsLGUsdCl7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCdMb2NhbFRpbGluZ1BhdHRlcm5DYWNoZS5zZXQgLSBleHBlY3RlZCAicmVmIiBhcmd1bWVudC4nKTt0aGlzLl9pbWFnZUNhY2hlLmhhcyhlKXx8dGhpcy5faW1hZ2VDYWNoZS5wdXQoZSx0KX19Y2xhc3MgZ3IgZXh0ZW5kcyB0cntjb25zdHJ1Y3RvcihBKXtzdXBlcih7b25seVJlZnM6ITB9KX1zZXQoQT1udWxsLGUsdCl7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCdSZWdpb25hbEltYWdlQ2FjaGUuc2V0IC0gZXhwZWN0ZWQgInJlZiIgYXJndW1lbnQuJyk7dGhpcy5faW1hZ2VDYWNoZS5oYXMoZSl8fHRoaXMuX2ltYWdlQ2FjaGUucHV0KGUsdCl9fWNsYXNzIG9ye3N0YXRpYyBOVU1fUEFHRVNfVEhSRVNIT0xEPTI7c3RhdGljIE1JTl9JTUFHRVNfVE9fQ0FDSEU9MTA7c3RhdGljIE1BWF9CWVRFX1NJWkU9NWU3OyNEPW5ldyB1QTtjb25zdHJ1Y3Rvcigpe3RoaXMuX3JlZkNhY2hlPW5ldyBkQSx0aGlzLl9pbWFnZUNhY2hlPW5ldyBkQX1nZXQjYigpe2xldCBBPTA7Zm9yKGNvbnN0IGUgb2YgdGhpcy5faW1hZ2VDYWNoZSlBKz1lLmJ5dGVTaXplO3JldHVybiBBfWdldCNrKCl7cmV0dXJuISh0aGlzLl9pbWFnZUNhY2hlLnNpemU8b3IuTUlOX0lNQUdFU19UT19DQUNIRXx8dGhpcy4jYjxvci5NQVhfQllURV9TSVpFKX1zaG91bGRDYWNoZShBLGUpe2xldCB0PXRoaXMuX3JlZkNhY2hlLmdldChBKTtyZXR1cm4gdHx8KHQ9bmV3IFNldCx0aGlzLl9yZWZDYWNoZS5wdXQoQSx0KSksdC5hZGQoZSksISh0LnNpemU8b3IuTlVNX1BBR0VTX1RIUkVTSE9MRHx8IXRoaXMuX2ltYWdlQ2FjaGUuaGFzKEEpJiZ0aGlzLiNrKX1hZGREZWNvZGVGYWlsZWQoQSl7dGhpcy4jRC5wdXQoQSl9aGFzRGVjb2RlRmFpbGVkKEEpe3JldHVybiB0aGlzLiNELmhhcyhBKX1hZGRCeXRlU2l6ZShBLGUpe2NvbnN0IHQ9dGhpcy5faW1hZ2VDYWNoZS5nZXQoQSk7dCYmKHQuYnl0ZVNpemV8fCh0LmJ5dGVTaXplPWUpKX1nZXREYXRhKEEsZSl7Y29uc3QgdD10aGlzLl9yZWZDYWNoZS5nZXQoQSk7aWYoIXQpcmV0dXJuIG51bGw7aWYodC5zaXplPG9yLk5VTV9QQUdFU19USFJFU0hPTEQpcmV0dXJuIG51bGw7Y29uc3QgaT10aGlzLl9pbWFnZUNhY2hlLmdldChBKTtyZXR1cm4gaT8odC5hZGQoZSksaSk6bnVsbH1zZXREYXRhKEEsZSl7aWYoIXRoaXMuX3JlZkNhY2hlLmhhcyhBKSl0aHJvdyBuZXcgRXJyb3IoJ0dsb2JhbEltYWdlQ2FjaGUuc2V0RGF0YSAtIGV4cGVjdGVkICJzaG91bGRDYWNoZSIgdG8gaGF2ZSBiZWVuIGNhbGxlZC4nKTt0aGlzLl9pbWFnZUNhY2hlLmhhcyhBKXx8KHRoaXMuI2s/VSgiR2xvYmFsSW1hZ2VDYWNoZS5zZXREYXRhIC0gY2FjaGUgbGltaXQgcmVhY2hlZC4iKTp0aGlzLl9pbWFnZUNhY2hlLnB1dChBLGUpKX1jbGVhcihBPSExKXtBfHwodGhpcy4jRC5jbGVhcigpLHRoaXMuX3JlZkNhY2hlLmNsZWFyKCkpLHRoaXMuX2ltYWdlQ2FjaGUuY2xlYXIoKX19Y2xhc3MgSXJ7Y29uc3RydWN0b3Ioe3hyZWY6QSxpc0V2YWxTdXBwb3J0ZWQ6ZT0hMH0pe3RoaXMueHJlZj1BLHRoaXMuaXNFdmFsU3VwcG9ydGVkPSExIT09ZX1jcmVhdGUoQSl7Y29uc3QgZT10aGlzLmdldENhY2hlZChBKTtpZihlKXJldHVybiBlO2NvbnN0IHQ9aHIucGFyc2Uoe3hyZWY6dGhpcy54cmVmLGlzRXZhbFN1cHBvcnRlZDp0aGlzLmlzRXZhbFN1cHBvcnRlZCxmbjpBIGluc3RhbmNlb2YgRUE/dGhpcy54cmVmLmZldGNoKEEpOkF9KTtyZXR1cm4gdGhpcy5fY2FjaGUoQSx0KSx0fWNyZWF0ZUZyb21BcnJheShBKXtjb25zdCBlPXRoaXMuZ2V0Q2FjaGVkKEEpO2lmKGUpcmV0dXJuIGU7Y29uc3QgdD1oci5wYXJzZUFycmF5KHt4cmVmOnRoaXMueHJlZixpc0V2YWxTdXBwb3J0ZWQ6dGhpcy5pc0V2YWxTdXBwb3J0ZWQsZm5PYmo6QSBpbnN0YW5jZW9mIEVBP3RoaXMueHJlZi5mZXRjaChBKTpBfSk7cmV0dXJuIHRoaXMuX2NhY2hlKEEsdCksdH1nZXRDYWNoZWQoQSl7bGV0IGU7aWYoQSBpbnN0YW5jZW9mIEVBP2U9QTpBIGluc3RhbmNlb2YgUUE/ZT1BLm9iaklkOkEgaW5zdGFuY2VvZiB3QSYmKGU9QS5kaWN0Py5vYmpJZCksZSl7Y29uc3QgQT10aGlzLl9sb2NhbEZ1bmN0aW9uQ2FjaGUuZ2V0QnlSZWYoZSk7aWYoQSlyZXR1cm4gQX1yZXR1cm4gbnVsbH1fY2FjaGUoQSxlKXtpZighZSl0aHJvdyBuZXcgRXJyb3IoJ1BERkZ1bmN0aW9uRmFjdG9yeS5fY2FjaGUgLSBleHBlY3RlZCAicGFyc2VkRnVuY3Rpb24iIGFyZ3VtZW50LicpO2xldCB0O0EgaW5zdGFuY2VvZiBFQT90PUE6QSBpbnN0YW5jZW9mIFFBP3Q9QS5vYmpJZDpBIGluc3RhbmNlb2Ygd0EmJih0PUEuZGljdD8ub2JqSWQpLHQmJnRoaXMuX2xvY2FsRnVuY3Rpb25DYWNoZS5zZXQobnVsbCx0LGUpfWdldCBfbG9jYWxGdW5jdGlvbkNhY2hlKCl7cmV0dXJuIEgodGhpcywiX2xvY2FsRnVuY3Rpb25DYWNoZSIsbmV3IHNyKX19ZnVuY3Rpb24gY3IoQSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoQSk/dkEoQSxudWxsKT9BOkEubWFwKChBPT4rQSkpOm51bGx9Y2xhc3MgaHJ7c3RhdGljIGdldFNhbXBsZUFycmF5KEEsZSx0LGkpe2xldCBhLHMsbj0xO2ZvcihhPTAscz1BLmxlbmd0aDthPHM7YSsrKW4qPUFbYV07bio9ZTtjb25zdCByPW5ldyBBcnJheShuKTtsZXQgZz0wLG89MDtjb25zdCBJPTEvKDIqKnQtMSksYz1pLmdldEJ5dGVzKChuKnQrNykvOCk7bGV0IGg9MDtmb3IoYT0wO2E8bjthKyspe2Zvcig7Zzx0OylvPDw9OCxvfD1jW2grK10sZys9ODtnLT10LHJbYV09KG8+PmcpKkksbyY9KDE8PGcpLTF9cmV0dXJuIHJ9c3RhdGljIHBhcnNlKHt4cmVmOkEsaXNFdmFsU3VwcG9ydGVkOmUsZm46dH0pe2NvbnN0IGk9dC5kaWN0fHx0O3N3aXRjaChpLmdldCgiRnVuY3Rpb25UeXBlIikpe2Nhc2UgMDpyZXR1cm4gdGhpcy5jb25zdHJ1Y3RTYW1wbGVkKHt4cmVmOkEsaXNFdmFsU3VwcG9ydGVkOmUsZm46dCxkaWN0Oml9KTtjYXNlIDE6YnJlYWs7Y2FzZSAyOnJldHVybiB0aGlzLmNvbnN0cnVjdEludGVycG9sYXRlZCh7eHJlZjpBLGlzRXZhbFN1cHBvcnRlZDplLGRpY3Q6aX0pO2Nhc2UgMzpyZXR1cm4gdGhpcy5jb25zdHJ1Y3RTdGljaGVkKHt4cmVmOkEsaXNFdmFsU3VwcG9ydGVkOmUsZGljdDppfSk7Y2FzZSA0OnJldHVybiB0aGlzLmNvbnN0cnVjdFBvc3RTY3JpcHQoe3hyZWY6QSxpc0V2YWxTdXBwb3J0ZWQ6ZSxmbjp0LGRpY3Q6aX0pfXRocm93IG5ldyBXKCJVbmtub3duIHR5cGUgb2YgZnVuY3Rpb24iKX1zdGF0aWMgcGFyc2VBcnJheSh7eHJlZjpBLGlzRXZhbFN1cHBvcnRlZDplLGZuT2JqOnR9KXtpZighQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdGhpcy5wYXJzZSh7eHJlZjpBLGlzRXZhbFN1cHBvcnRlZDplLGZuOnR9KTtjb25zdCBpPVtdO2Zvcihjb25zdCBhIG9mIHQpaS5wdXNoKHRoaXMucGFyc2Uoe3hyZWY6QSxpc0V2YWxTdXBwb3J0ZWQ6ZSxmbjpBLmZldGNoSWZSZWYoYSl9KSk7cmV0dXJuIGZ1bmN0aW9uKEEsZSx0LGEpe2ZvcihsZXQgcz0wLG49aS5sZW5ndGg7czxuO3MrKylpW3NdKEEsZSx0LGErcyl9fXN0YXRpYyBjb25zdHJ1Y3RTYW1wbGVkKHt4cmVmOkEsaXNFdmFsU3VwcG9ydGVkOmUsZm46dCxkaWN0Oml9KXtmdW5jdGlvbiBhKEEpe2NvbnN0IGU9QS5sZW5ndGgsdD1bXTtsZXQgaT0wO2ZvcihsZXQgYT0wO2E8ZTthKz0yKXRbaSsrXT1bQVthXSxBW2ErMV1dO3JldHVybiB0fWZ1bmN0aW9uIHMoQSxlLHQsaSxhKXtyZXR1cm4gaSsoYS1pKS8odC1lKSooQS1lKX1sZXQgbj1jcihpLmdldEFycmF5KCJEb21haW4iKSkscj1jcihpLmdldEFycmF5KCJSYW5nZSIpKTtpZighbnx8IXIpdGhyb3cgbmV3IFcoIk5vIGRvbWFpbiBvciByYW5nZSIpO2NvbnN0IGc9bi5sZW5ndGgvMixvPXIubGVuZ3RoLzI7bj1hKG4pLHI9YShyKTtjb25zdCBJPWNyKGkuZ2V0QXJyYXkoIlNpemUiKSksYz1pLmdldCgiQml0c1BlclNhbXBsZSIpLGg9aS5nZXQoIk9yZGVyIil8fDE7MSE9PWgmJngoIk5vIHN1cHBvcnQgZm9yIGN1YmljIHNwbGluZSBpbnRlcnBvbGF0aW9uOiAiK2gpO2xldCBDPWNyKGkuZ2V0QXJyYXkoIkVuY29kZSIpKTtpZihDKUM9YShDKTtlbHNle0M9W107Zm9yKGxldCBBPTA7QTxnOysrQSlDLnB1c2goWzAsSVtBXS0xXSl9bGV0IEI9Y3IoaS5nZXRBcnJheSgiRGVjb2RlIikpO0I9Qj9hKEIpOnI7Y29uc3QgbD10aGlzLmdldFNhbXBsZUFycmF5KEksbyxjLHQpO3JldHVybiBmdW5jdGlvbihBLGUsdCxpKXtjb25zdCBhPTE8PGcsYz1uZXcgRmxvYXQ2NEFycmF5KGEpLGg9bmV3IFVpbnQzMkFycmF5KGEpO2xldCBRLEU7Zm9yKEU9MDtFPGE7RSsrKWNbRV09MTtsZXQgdT1vLGQ9MTtmb3IoUT0wO1E8ZzsrK1Epe2NvbnN0IHQ9bltRXVswXSxpPW5bUV1bMV07bGV0IHI9cyhNYXRoLm1pbihNYXRoLm1heChBW2UrUV0sdCksaSksdCxpLENbUV1bMF0sQ1tRXVsxXSk7Y29uc3QgZz1JW1FdO3I9TWF0aC5taW4oTWF0aC5tYXgociwwKSxnLTEpO2NvbnN0IG89cjxnLTE/TWF0aC5mbG9vcihyKTpyLTEsQj1vKzEtcixsPXItbyxmPW8qdSxwPWYrdTtmb3IoRT0wO0U8YTtFKyspRSZkPyhjW0VdKj1sLGhbRV0rPXApOihjW0VdKj1CLGhbRV0rPWYpO3UqPWcsZDw8PTF9Zm9yKEU9MDtFPG87KytFKXtsZXQgQT0wO2ZvcihRPTA7UTxhO1ErKylBKz1sW2hbUV0rRV0qY1tRXTtBPXMoQSwwLDEsQltFXVswXSxCW0VdWzFdKSx0W2krRV09TWF0aC5taW4oTWF0aC5tYXgoQSxyW0VdWzBdKSxyW0VdWzFdKX19fXN0YXRpYyBjb25zdHJ1Y3RJbnRlcnBvbGF0ZWQoe3hyZWY6QSxpc0V2YWxTdXBwb3J0ZWQ6ZSxkaWN0OnR9KXtjb25zdCBpPWNyKHQuZ2V0QXJyYXkoIkMwIikpfHxbMF0sYT1jcih0LmdldEFycmF5KCJDMSIpKXx8WzFdLHM9dC5nZXQoIk4iKSxuPVtdO2ZvcihsZXQgQT0wLGU9aS5sZW5ndGg7QTxlOysrQSluLnB1c2goYVtBXS1pW0FdKTtjb25zdCByPW4ubGVuZ3RoO3JldHVybiBmdW5jdGlvbihBLGUsdCxhKXtjb25zdCBnPTE9PT1zP0FbZV06QVtlXSoqcztmb3IobGV0IEE9MDtBPHI7KytBKXRbYStBXT1pW0FdK2cqbltBXX19c3RhdGljIGNvbnN0cnVjdFN0aWNoZWQoe3hyZWY6QSxpc0V2YWxTdXBwb3J0ZWQ6ZSxkaWN0OnR9KXtjb25zdCBpPWNyKHQuZ2V0QXJyYXkoIkRvbWFpbiIpKTtpZighaSl0aHJvdyBuZXcgVygiTm8gZG9tYWluIik7aWYoMSE9aS5sZW5ndGgvMil0aHJvdyBuZXcgVygiQmFkIGRvbWFpbiBmb3Igc3RpY2hlZCBmdW5jdGlvbiIpO2NvbnN0IGE9W107Zm9yKGNvbnN0IGkgb2YgdC5nZXQoIkZ1bmN0aW9ucyIpKWEucHVzaCh0aGlzLnBhcnNlKHt4cmVmOkEsaXNFdmFsU3VwcG9ydGVkOmUsZm46QS5mZXRjaElmUmVmKGkpfSkpO2NvbnN0IHM9Y3IodC5nZXRBcnJheSgiQm91bmRzIikpLG49Y3IodC5nZXRBcnJheSgiRW5jb2RlIikpLHI9bmV3IEZsb2F0MzJBcnJheSgxKTtyZXR1cm4gZnVuY3Rpb24oQSxlLHQsZyl7Y29uc3Qgbz1mdW5jdGlvbihBLGUsdCl7cmV0dXJuIEE+dD9BPXQ6QTxlJiYoQT1lKSxBfShBW2VdLGlbMF0saVsxXSksST1zLmxlbmd0aDtsZXQgYztmb3IoYz0wO2M8SSYmIShvPHNbY10pOysrYyk7bGV0IGg9aVswXTtjPjAmJihoPXNbYy0xXSk7bGV0IEM9aVsxXTtjPHMubGVuZ3RoJiYoQz1zW2NdKTtjb25zdCBCPW5bMipjXSxsPW5bMipjKzFdO3JbMF09aD09PUM/QjpCKyhvLWgpKihsLUIpLyhDLWgpLGFbY10ociwwLHQsZyl9fXN0YXRpYyBjb25zdHJ1Y3RQb3N0U2NyaXB0KHt4cmVmOkEsaXNFdmFsU3VwcG9ydGVkOmUsZm46dCxkaWN0Oml9KXtjb25zdCBhPWNyKGkuZ2V0QXJyYXkoIkRvbWFpbiIpKSxzPWNyKGkuZ2V0QXJyYXkoIlJhbmdlIikpO2lmKCFhKXRocm93IG5ldyBXKCJObyBkb21haW4uIik7aWYoIXMpdGhyb3cgbmV3IFcoIk5vIHJhbmdlLiIpO2NvbnN0IG49bmV3IGVyKHQpLHI9bmV3IHpuKG4pLnBhcnNlKCk7aWYoZSYmXy5pc0V2YWxTdXBwb3J0ZWQpe2NvbnN0IEE9KG5ldyBGcikuY29tcGlsZShyLGEscyk7aWYoQSlyZXR1cm4gbmV3IEZ1bmN0aW9uKCJzcmMiLCJzcmNPZmZzZXQiLCJkZXN0IiwiZGVzdE9mZnNldCIsQSl9eCgiVW5hYmxlIHRvIGNvbXBpbGUgUFMgZnVuY3Rpb24iKTtjb25zdCBnPXMubGVuZ3RoPj4xLG89YS5sZW5ndGg+PjEsST1uZXcgbHIociksYz1PYmplY3QuY3JlYXRlKG51bGwpO2xldCBoPTgxOTI7Y29uc3QgQz1uZXcgRmxvYXQzMkFycmF5KG8pO3JldHVybiBmdW5jdGlvbihBLGUsdCxpKXtsZXQgYSxuLHI9IiI7Y29uc3QgQj1DO2ZvcihhPTA7YTxvO2ErKyluPUFbZSthXSxCW2FdPW4scis9bisiXyI7Y29uc3QgbD1jW3JdO2lmKHZvaWQgMCE9PWwpcmV0dXJuIHZvaWQgdC5zZXQobCxpKTtjb25zdCBRPW5ldyBGbG9hdDMyQXJyYXkoZyksRT1JLmV4ZWN1dGUoQiksdT1FLmxlbmd0aC1nO2ZvcihhPTA7YTxnO2ErKyl7bj1FW3UrYV07bGV0IEE9c1syKmFdO248QT9uPUE6KEE9c1syKmErMV0sbj5BJiYobj1BKSksUVthXT1ufWg+MCYmKGgtLSxjW3JdPVEpLHQuc2V0KFEsaSl9fX1mdW5jdGlvbiBDcihBKXtsZXQgZTtpZihBIGluc3RhbmNlb2YgUUEpZT1BO2Vsc2V7aWYoIShBIGluc3RhbmNlb2Ygd0EpKXJldHVybiExO2U9QS5kaWN0fXJldHVybiBlLmhhcygiRnVuY3Rpb25UeXBlIil9Y2xhc3MgQnJ7c3RhdGljIE1BWF9TVEFDS19TSVpFPTEwMDtjb25zdHJ1Y3RvcihBKXt0aGlzLnN0YWNrPUE/QXJyYXkuZnJvbShBKTpbXX1wdXNoKEEpe2lmKHRoaXMuc3RhY2subGVuZ3RoPj1Cci5NQVhfU1RBQ0tfU0laRSl0aHJvdyBuZXcgRXJyb3IoIlBvc3RTY3JpcHQgZnVuY3Rpb24gc3RhY2sgb3ZlcmZsb3cuIik7dGhpcy5zdGFjay5wdXNoKEEpfXBvcCgpe2lmKHRoaXMuc3RhY2subGVuZ3RoPD0wKXRocm93IG5ldyBFcnJvcigiUG9zdFNjcmlwdCBmdW5jdGlvbiBzdGFjayB1bmRlcmZsb3cuIik7cmV0dXJuIHRoaXMuc3RhY2sucG9wKCl9Y29weShBKXtpZih0aGlzLnN0YWNrLmxlbmd0aCtBPj1Cci5NQVhfU1RBQ0tfU0laRSl0aHJvdyBuZXcgRXJyb3IoIlBvc3RTY3JpcHQgZnVuY3Rpb24gc3RhY2sgb3ZlcmZsb3cuIik7Y29uc3QgZT10aGlzLnN0YWNrO2ZvcihsZXQgdD1lLmxlbmd0aC1BLGk9QS0xO2k+PTA7aS0tLHQrKyllLnB1c2goZVt0XSl9aW5kZXgoQSl7dGhpcy5wdXNoKHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtQS0xXSl9cm9sbChBLGUpe2NvbnN0IHQ9dGhpcy5zdGFjayxpPXQubGVuZ3RoLUEsYT10Lmxlbmd0aC0xLHM9aSsoZS1NYXRoLmZsb29yKGUvQSkqQSk7Zm9yKGxldCBBPWksZT1hO0E8ZTtBKyssZS0tKXtjb25zdCBpPXRbQV07dFtBXT10W2VdLHRbZV09aX1mb3IobGV0IEE9aSxlPXMtMTtBPGU7QSsrLGUtLSl7Y29uc3QgaT10W0FdO3RbQV09dFtlXSx0W2VdPWl9Zm9yKGxldCBBPXMsZT1hO0E8ZTtBKyssZS0tKXtjb25zdCBpPXRbQV07dFtBXT10W2VdLHRbZV09aX19fWNsYXNzIGxye2NvbnN0cnVjdG9yKEEpe3RoaXMub3BlcmF0b3JzPUF9ZXhlY3V0ZShBKXtjb25zdCBlPW5ldyBCcihBKTtsZXQgdD0wO2NvbnN0IGk9dGhpcy5vcGVyYXRvcnMsYT1pLmxlbmd0aDtsZXQgcyxuLHI7Zm9yKDt0PGE7KWlmKHM9aVt0KytdLCJudW1iZXIiIT10eXBlb2Ygcylzd2l0Y2gocyl7Y2FzZSJqeiI6cj1lLnBvcCgpLG49ZS5wb3AoKSxufHwodD1yKTticmVhaztjYXNlImoiOm49ZS5wb3AoKSx0PW47YnJlYWs7Y2FzZSJhYnMiOm49ZS5wb3AoKSxlLnB1c2goTWF0aC5hYnMobikpO2JyZWFrO2Nhc2UiYWRkIjpyPWUucG9wKCksbj1lLnBvcCgpLGUucHVzaChuK3IpO2JyZWFrO2Nhc2UiYW5kIjpyPWUucG9wKCksbj1lLnBvcCgpLCJib29sZWFuIj09dHlwZW9mIG4mJiJib29sZWFuIj09dHlwZW9mIHI/ZS5wdXNoKG4mJnIpOmUucHVzaChuJnIpO2JyZWFrO2Nhc2UiYXRhbiI6cj1lLnBvcCgpLG49ZS5wb3AoKSxuPU1hdGguYXRhbjIobixyKS9NYXRoLlBJKjE4MCxuPDAmJihuKz0zNjApLGUucHVzaChuKTticmVhaztjYXNlImJpdHNoaWZ0IjpyPWUucG9wKCksbj1lLnBvcCgpLG4+MD9lLnB1c2gobjw8cik6ZS5wdXNoKG4+PnIpO2JyZWFrO2Nhc2UiY2VpbGluZyI6bj1lLnBvcCgpLGUucHVzaChNYXRoLmNlaWwobikpO2JyZWFrO2Nhc2UiY29weSI6bj1lLnBvcCgpLGUuY29weShuKTticmVhaztjYXNlImNvcyI6bj1lLnBvcCgpLGUucHVzaChNYXRoLmNvcyhuJTM2MC8xODAqTWF0aC5QSSkpO2JyZWFrO2Nhc2UiY3ZpIjpuPTB8ZS5wb3AoKSxlLnB1c2gobik7YnJlYWs7Y2FzZSJjdnIiOmJyZWFrO2Nhc2UiZGl2IjpyPWUucG9wKCksbj1lLnBvcCgpLGUucHVzaChuL3IpO2JyZWFrO2Nhc2UiZHVwIjplLmNvcHkoMSk7YnJlYWs7Y2FzZSJlcSI6cj1lLnBvcCgpLG49ZS5wb3AoKSxlLnB1c2gobj09PXIpO2JyZWFrO2Nhc2UiZXhjaCI6ZS5yb2xsKDIsMSk7YnJlYWs7Y2FzZSJleHAiOnI9ZS5wb3AoKSxuPWUucG9wKCksZS5wdXNoKG4qKnIpO2JyZWFrO2Nhc2UiZmFsc2UiOmUucHVzaCghMSk7YnJlYWs7Y2FzZSJmbG9vciI6bj1lLnBvcCgpLGUucHVzaChNYXRoLmZsb29yKG4pKTticmVhaztjYXNlImdlIjpyPWUucG9wKCksbj1lLnBvcCgpLGUucHVzaChuPj1yKTticmVhaztjYXNlImd0IjpyPWUucG9wKCksbj1lLnBvcCgpLGUucHVzaChuPnIpO2JyZWFrO2Nhc2UiaWRpdiI6cj1lLnBvcCgpLG49ZS5wb3AoKSxlLnB1c2gobi9yfDApO2JyZWFrO2Nhc2UiaW5kZXgiOm49ZS5wb3AoKSxlLmluZGV4KG4pO2JyZWFrO2Nhc2UibGUiOnI9ZS5wb3AoKSxuPWUucG9wKCksZS5wdXNoKG48PXIpO2JyZWFrO2Nhc2UibG4iOm49ZS5wb3AoKSxlLnB1c2goTWF0aC5sb2cobikpO2JyZWFrO2Nhc2UibG9nIjpuPWUucG9wKCksZS5wdXNoKE1hdGgubG9nMTAobikpO2JyZWFrO2Nhc2UibHQiOnI9ZS5wb3AoKSxuPWUucG9wKCksZS5wdXNoKG48cik7YnJlYWs7Y2FzZSJtb2QiOnI9ZS5wb3AoKSxuPWUucG9wKCksZS5wdXNoKG4lcik7YnJlYWs7Y2FzZSJtdWwiOnI9ZS5wb3AoKSxuPWUucG9wKCksZS5wdXNoKG4qcik7YnJlYWs7Y2FzZSJuZSI6cj1lLnBvcCgpLG49ZS5wb3AoKSxlLnB1c2gobiE9PXIpO2JyZWFrO2Nhc2UibmVnIjpuPWUucG9wKCksZS5wdXNoKC1uKTticmVhaztjYXNlIm5vdCI6bj1lLnBvcCgpLCJib29sZWFuIj09dHlwZW9mIG4/ZS5wdXNoKCFuKTplLnB1c2gofm4pO2JyZWFrO2Nhc2Uib3IiOnI9ZS5wb3AoKSxuPWUucG9wKCksImJvb2xlYW4iPT10eXBlb2YgbiYmImJvb2xlYW4iPT10eXBlb2Ygcj9lLnB1c2gobnx8cik6ZS5wdXNoKG58cik7YnJlYWs7Y2FzZSJwb3AiOmUucG9wKCk7YnJlYWs7Y2FzZSJyb2xsIjpyPWUucG9wKCksbj1lLnBvcCgpLGUucm9sbChuLHIpO2JyZWFrO2Nhc2Uicm91bmQiOm49ZS5wb3AoKSxlLnB1c2goTWF0aC5yb3VuZChuKSk7YnJlYWs7Y2FzZSJzaW4iOm49ZS5wb3AoKSxlLnB1c2goTWF0aC5zaW4obiUzNjAvMTgwKk1hdGguUEkpKTticmVhaztjYXNlInNxcnQiOm49ZS5wb3AoKSxlLnB1c2goTWF0aC5zcXJ0KG4pKTticmVhaztjYXNlInN1YiI6cj1lLnBvcCgpLG49ZS5wb3AoKSxlLnB1c2gobi1yKTticmVhaztjYXNlInRydWUiOmUucHVzaCghMCk7YnJlYWs7Y2FzZSJ0cnVuY2F0ZSI6bj1lLnBvcCgpLG49bjwwP01hdGguY2VpbChuKTpNYXRoLmZsb29yKG4pLGUucHVzaChuKTticmVhaztjYXNlInhvciI6cj1lLnBvcCgpLG49ZS5wb3AoKSwiYm9vbGVhbiI9PXR5cGVvZiBuJiYiYm9vbGVhbiI9PXR5cGVvZiByP2UucHVzaChuIT09cik6ZS5wdXNoKG5ecik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgVyhgVW5rbm93biBvcGVyYXRvciAke3N9YCl9ZWxzZSBlLnB1c2gocyk7cmV0dXJuIGUuc3RhY2t9fWNsYXNzIFFye2NvbnN0cnVjdG9yKEEpe3RoaXMudHlwZT1BfXZpc2l0KEEpe00oImFic3RyYWN0IG1ldGhvZCIpfX1jbGFzcyBFciBleHRlbmRzIFFye2NvbnN0cnVjdG9yKEEsZSx0KXtzdXBlcigiYXJncyIpLHRoaXMuaW5kZXg9QSx0aGlzLm1pbj1lLHRoaXMubWF4PXR9dmlzaXQoQSl7QS52aXNpdEFyZ3VtZW50KHRoaXMpfX1jbGFzcyB1ciBleHRlbmRzIFFye2NvbnN0cnVjdG9yKEEpe3N1cGVyKCJsaXRlcmFsIiksdGhpcy5udW1iZXI9QSx0aGlzLm1pbj1BLHRoaXMubWF4PUF9dmlzaXQoQSl7QS52aXNpdExpdGVyYWwodGhpcyl9fWNsYXNzIGRyIGV4dGVuZHMgUXJ7Y29uc3RydWN0b3IoQSxlLHQsaSxhKXtzdXBlcigiYmluYXJ5IiksdGhpcy5vcD1BLHRoaXMuYXJnMT1lLHRoaXMuYXJnMj10LHRoaXMubWluPWksdGhpcy5tYXg9YX12aXNpdChBKXtBLnZpc2l0QmluYXJ5T3BlcmF0aW9uKHRoaXMpfX1jbGFzcyBmciBleHRlbmRzIFFye2NvbnN0cnVjdG9yKEEsZSl7c3VwZXIoIm1heCIpLHRoaXMuYXJnPUEsdGhpcy5taW49QS5taW4sdGhpcy5tYXg9ZX12aXNpdChBKXtBLnZpc2l0TWluKHRoaXMpfX1jbGFzcyBwciBleHRlbmRzIFFye2NvbnN0cnVjdG9yKEEsZSx0KXtzdXBlcigidmFyIiksdGhpcy5pbmRleD1BLHRoaXMubWluPWUsdGhpcy5tYXg9dH12aXNpdChBKXtBLnZpc2l0VmFyaWFibGUodGhpcyl9fWNsYXNzIG1yIGV4dGVuZHMgUXJ7Y29uc3RydWN0b3IoQSxlKXtzdXBlcigiZGVmaW5pdGlvbiIpLHRoaXMudmFyaWFibGU9QSx0aGlzLmFyZz1lfXZpc2l0KEEpe0EudmlzaXRWYXJpYWJsZURlZmluaXRpb24odGhpcyl9fWNsYXNzIHlye2NvbnN0cnVjdG9yKCl7dGhpcy5wYXJ0cz1bXX12aXNpdEFyZ3VtZW50KEEpe3RoaXMucGFydHMucHVzaCgiTWF0aC5tYXgoIixBLm1pbiwiLCBNYXRoLm1pbigiLEEubWF4LCIsIHNyY1tzcmNPZmZzZXQgKyAiLEEuaW5kZXgsIl0pKSIpfXZpc2l0VmFyaWFibGUoQSl7dGhpcy5wYXJ0cy5wdXNoKCJ2IixBLmluZGV4KX12aXNpdExpdGVyYWwoQSl7dGhpcy5wYXJ0cy5wdXNoKEEubnVtYmVyKX12aXNpdEJpbmFyeU9wZXJhdGlvbihBKXt0aGlzLnBhcnRzLnB1c2goIigiKSxBLmFyZzEudmlzaXQodGhpcyksdGhpcy5wYXJ0cy5wdXNoKCIgIixBLm9wLCIgIiksQS5hcmcyLnZpc2l0KHRoaXMpLHRoaXMucGFydHMucHVzaCgiKSIpfXZpc2l0VmFyaWFibGVEZWZpbml0aW9uKEEpe3RoaXMucGFydHMucHVzaCgidmFyICIpLEEudmFyaWFibGUudmlzaXQodGhpcyksdGhpcy5wYXJ0cy5wdXNoKCIgPSAiKSxBLmFyZy52aXNpdCh0aGlzKSx0aGlzLnBhcnRzLnB1c2goIjsiKX12aXNpdE1pbihBKXt0aGlzLnBhcnRzLnB1c2goIk1hdGgubWluKCIpLEEuYXJnLnZpc2l0KHRoaXMpLHRoaXMucGFydHMucHVzaCgiLCAiLEEubWF4LCIpIil9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5wYXJ0cy5qb2luKCIiKX19ZnVuY3Rpb24gd3IoQSxlKXtyZXR1cm4ibGl0ZXJhbCI9PT1lLnR5cGUmJjA9PT1lLm51bWJlcj9BOiJsaXRlcmFsIj09PUEudHlwZSYmMD09PUEubnVtYmVyP2U6ImxpdGVyYWwiPT09ZS50eXBlJiYibGl0ZXJhbCI9PT1BLnR5cGU/bmV3IHVyKEEubnVtYmVyK2UubnVtYmVyKTpuZXcgZHIoIisiLEEsZSxBLm1pbitlLm1pbixBLm1heCtlLm1heCl9ZnVuY3Rpb24gRHIoQSxlKXtpZigibGl0ZXJhbCI9PT1lLnR5cGUpe2lmKDA9PT1lLm51bWJlcilyZXR1cm4gbmV3IHVyKDApO2lmKDE9PT1lLm51bWJlcilyZXR1cm4gQTtpZigibGl0ZXJhbCI9PT1BLnR5cGUpcmV0dXJuIG5ldyB1cihBLm51bWJlciplLm51bWJlcil9aWYoImxpdGVyYWwiPT09QS50eXBlKXtpZigwPT09QS5udW1iZXIpcmV0dXJuIG5ldyB1cigwKTtpZigxPT09QS5udW1iZXIpcmV0dXJuIGV9Y29uc3QgdD1NYXRoLm1pbihBLm1pbiplLm1pbixBLm1pbiplLm1heCxBLm1heCplLm1pbixBLm1heCplLm1heCksaT1NYXRoLm1heChBLm1pbiplLm1pbixBLm1pbiplLm1heCxBLm1heCplLm1pbixBLm1heCplLm1heCk7cmV0dXJuIG5ldyBkcigiKiIsQSxlLHQsaSl9ZnVuY3Rpb24gYnIoQSxlKXtpZigibGl0ZXJhbCI9PT1lLnR5cGUpe2lmKDA9PT1lLm51bWJlcilyZXR1cm4gQTtpZigibGl0ZXJhbCI9PT1BLnR5cGUpcmV0dXJuIG5ldyB1cihBLm51bWJlci1lLm51bWJlcil9cmV0dXJuImJpbmFyeSI9PT1lLnR5cGUmJiItIj09PWUub3AmJiJsaXRlcmFsIj09PUEudHlwZSYmMT09PUEubnVtYmVyJiYibGl0ZXJhbCI9PT1lLmFyZzEudHlwZSYmMT09PWUuYXJnMS5udW1iZXI/ZS5hcmcyOm5ldyBkcigiLSIsQSxlLEEubWluLWUubWF4LEEubWF4LWUubWluKX1mdW5jdGlvbiBrcihBLGUpe3JldHVybiBBLm1pbj49ZT9uZXcgdXIoZSk6QS5tYXg8PWU/QTpuZXcgZnIoQSxlKX1jbGFzcyBGcntjb21waWxlKEEsZSx0KXtjb25zdCBpPVtdLGE9W10scz1lLmxlbmd0aD4+MSxuPXQubGVuZ3RoPj4xO2xldCByLGcsbyxJLGMsaCxDLEIsbD0wO2ZvcihsZXQgQT0wO0E8cztBKyspaS5wdXNoKG5ldyBFcihBLGVbMipBXSxlWzIqQSsxXSkpO2ZvcihsZXQgZT0wLHQ9QS5sZW5ndGg7ZTx0O2UrKylpZihCPUFbZV0sIm51bWJlciIhPXR5cGVvZiBCKXN3aXRjaChCKXtjYXNlImFkZCI6aWYoaS5sZW5ndGg8MilyZXR1cm4gbnVsbDtJPWkucG9wKCksbz1pLnBvcCgpLGkucHVzaCh3cihvLEkpKTticmVhaztjYXNlImN2ciI6aWYoaS5sZW5ndGg8MSlyZXR1cm4gbnVsbDticmVhaztjYXNlIm11bCI6aWYoaS5sZW5ndGg8MilyZXR1cm4gbnVsbDtJPWkucG9wKCksbz1pLnBvcCgpLGkucHVzaChEcihvLEkpKTticmVhaztjYXNlInN1YiI6aWYoaS5sZW5ndGg8MilyZXR1cm4gbnVsbDtJPWkucG9wKCksbz1pLnBvcCgpLGkucHVzaChicihvLEkpKTticmVhaztjYXNlImV4Y2giOmlmKGkubGVuZ3RoPDIpcmV0dXJuIG51bGw7Yz1pLnBvcCgpLGg9aS5wb3AoKSxpLnB1c2goYyxoKTticmVhaztjYXNlInBvcCI6aWYoaS5sZW5ndGg8MSlyZXR1cm4gbnVsbDtpLnBvcCgpO2JyZWFrO2Nhc2UiaW5kZXgiOmlmKGkubGVuZ3RoPDEpcmV0dXJuIG51bGw7aWYobz1pLnBvcCgpLCJsaXRlcmFsIiE9PW8udHlwZSlyZXR1cm4gbnVsbDtpZihyPW8ubnVtYmVyLHI8MHx8IU51bWJlci5pc0ludGVnZXIocil8fGkubGVuZ3RoPHIpcmV0dXJuIG51bGw7aWYoYz1pW2kubGVuZ3RoLXItMV0sImxpdGVyYWwiPT09Yy50eXBlfHwidmFyIj09PWMudHlwZSl7aS5wdXNoKGMpO2JyZWFrfUM9bmV3IHByKGwrKyxjLm1pbixjLm1heCksaVtpLmxlbmd0aC1yLTFdPUMsaS5wdXNoKEMpLGEucHVzaChuZXcgbXIoQyxjKSk7YnJlYWs7Y2FzZSJkdXAiOmlmKGkubGVuZ3RoPDEpcmV0dXJuIG51bGw7aWYoIm51bWJlciI9PXR5cGVvZiBBW2UrMV0mJiJndCI9PT1BW2UrMl0mJkFbZSszXT09PWUrNyYmImp6Ij09PUFbZSs0XSYmInBvcCI9PT1BW2UrNV0mJkFbZSs2XT09PUFbZSsxXSl7bz1pLnBvcCgpLGkucHVzaChrcihvLEFbZSsxXSkpLGUrPTY7YnJlYWt9aWYoYz1pLmF0KC0xKSwibGl0ZXJhbCI9PT1jLnR5cGV8fCJ2YXIiPT09Yy50eXBlKXtpLnB1c2goYyk7YnJlYWt9Qz1uZXcgcHIobCsrLGMubWluLGMubWF4KSxpW2kubGVuZ3RoLTFdPUMsaS5wdXNoKEMpLGEucHVzaChuZXcgbXIoQyxjKSk7YnJlYWs7Y2FzZSJyb2xsIjppZihpLmxlbmd0aDwyKXJldHVybiBudWxsO2lmKEk9aS5wb3AoKSxvPWkucG9wKCksImxpdGVyYWwiIT09SS50eXBlfHwibGl0ZXJhbCIhPT1vLnR5cGUpcmV0dXJuIG51bGw7aWYoZz1JLm51bWJlcixyPW8ubnVtYmVyLHI8PTB8fCFOdW1iZXIuaXNJbnRlZ2VyKHIpfHwhTnVtYmVyLmlzSW50ZWdlcihnKXx8aS5sZW5ndGg8cilyZXR1cm4gbnVsbDtpZihnPShnJXIrciklciwwPT09ZylicmVhaztpLnB1c2goLi4uaS5zcGxpY2UoaS5sZW5ndGgtcixyLWcpKTticmVhaztkZWZhdWx0OnJldHVybiBudWxsfWVsc2UgaS5wdXNoKG5ldyB1cihCKSk7aWYoaS5sZW5ndGghPT1uKXJldHVybiBudWxsO2NvbnN0IFE9W107Zm9yKGNvbnN0IEEgb2YgYSl7Y29uc3QgZT1uZXcgeXI7QS52aXNpdChlKSxRLnB1c2goZS50b1N0cmluZygpKX1mb3IobGV0IEE9MCxlPWkubGVuZ3RoO0E8ZTtBKyspe2NvbnN0IGU9aVtBXSxhPW5ldyB5cjtlLnZpc2l0KGEpO2NvbnN0IHM9dFsyKkFdLG49dFsyKkErMV0scj1bYS50b1N0cmluZygpXTtzPmUubWluJiYoci51bnNoaWZ0KCJNYXRoLm1heCgiLHMsIiwgIiksci5wdXNoKCIpIikpLG48ZS5tYXgmJihyLnVuc2hpZnQoIk1hdGgubWluKCIsbiwiLCAiKSxyLnB1c2goIikiKSksci51bnNoaWZ0KCJkZXN0W2Rlc3RPZmZzZXQgKyAiLEEsIl0gPSAiKSxyLnB1c2goIjsiKSxRLnB1c2goci5qb2luKCIiKSl9cmV0dXJuIFEuam9pbigiXG4iKX19Y29uc3QgU3I9WyJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJTIiwiQiIsIlMiLCJXUyIsIkIiLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQiIsIkIiLCJCIiwiUyIsIldTIiwiT04iLCJPTiIsIkVUIiwiRVQiLCJFVCIsIk9OIiwiT04iLCJPTiIsIk9OIiwiT04iLCJFUyIsIkNTIiwiRVMiLCJDUyIsIkNTIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJDUyIsIk9OIiwiT04iLCJPTiIsIk9OIiwiT04iLCJPTiIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiT04iLCJPTiIsIk9OIiwiT04iLCJPTiIsIk9OIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJPTiIsIk9OIiwiT04iLCJPTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkIiLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQ1MiLCJPTiIsIkVUIiwiRVQiLCJFVCIsIkVUIiwiT04iLCJPTiIsIk9OIiwiT04iLCJMIiwiT04iLCJPTiIsIkJOIiwiT04iLCJPTiIsIkVUIiwiRVQiLCJFTiIsIkVOIiwiT04iLCJMIiwiT04iLCJPTiIsIk9OIiwiRU4iLCJMIiwiT04iLCJPTiIsIk9OIiwiT04iLCJPTiIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiT04iLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiT04iLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCJdLFJyPVsiQU4iLCJBTiIsIkFOIiwiQU4iLCJBTiIsIkFOIiwiT04iLCJPTiIsIkFMIiwiRVQiLCJFVCIsIkFMIiwiQ1MiLCJBTCIsIk9OIiwiT04iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJBTCIsIkFMIiwiIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiQU4iLCJBTiIsIkFOIiwiQU4iLCJBTiIsIkFOIiwiQU4iLCJBTiIsIkFOIiwiQU4iLCJFVCIsIkFOIiwiQU4iLCJBTCIsIkFMIiwiQUwiLCJOU00iLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiQU4iLCJPTiIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIkFMIiwiQUwiLCJOU00iLCJOU00iLCJPTiIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIkFMIiwiQUwiLCJFTiIsIkVOIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJFTiIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCJdO2Z1bmN0aW9uIEdyKEEpe3JldHVybiAwIT0oMSZBKX1mdW5jdGlvbiBOcihBKXtyZXR1cm4gMD09KDEmQSl9ZnVuY3Rpb24geHIoQSxlLHQpe2xldCBpLGE7Zm9yKGk9ZSxhPUEubGVuZ3RoO2k8YTsrK2kpaWYoQVtpXSE9PXQpcmV0dXJuIGk7cmV0dXJuIGl9ZnVuY3Rpb24gVXIoQSxlLHQsaSl7Zm9yKGxldCBhPWU7YTx0OysrYSlBW2FdPWl9ZnVuY3Rpb24gTXIoQSxlLHQpe2ZvcihsZXQgaT1lLGE9dC0xO2k8YTsrK2ksLS1hKXtjb25zdCBlPUFbaV07QVtpXT1BW2FdLEFbYV09ZX19ZnVuY3Rpb24gTHIoQSxlLHQ9ITEpe2xldCBpPSJsdHIiO3JldHVybiB0P2k9InR0YiI6ZXx8KGk9InJ0bCIpLHtzdHI6QSxkaXI6aX19Y29uc3QgSnI9W10sSHI9W107ZnVuY3Rpb24gWXIoQSxlPS0xLHQ9ITEpe2xldCBpPSEwO2NvbnN0IGE9QS5sZW5ndGg7aWYoMD09PWF8fHQpcmV0dXJuIExyKEEsaSx0KTtKci5sZW5ndGg9YSxIci5sZW5ndGg9YTtsZXQgcyxuLHI9MDtmb3Iocz0wO3M8YTsrK3Mpe0pyW3NdPUEuY2hhckF0KHMpO2NvbnN0IGU9QS5jaGFyQ29kZUF0KHMpO2xldCB0PSJMIjtlPD0yNTU/dD1TcltlXToxNDI0PD1lJiZlPD0xNTI0P3Q9IlIiOjE1MzY8PWUmJmU8PTE3OTE/KHQ9UnJbMjU1JmVdLHR8fFUoIkJpZGk6IGludmFsaWQgVW5pY29kZSBjaGFyYWN0ZXIgIitlLnRvU3RyaW5nKDE2KSkpOigxNzkyPD1lJiZlPD0yMjIwfHw2NDMzNjw9ZSYmZTw9NjUwMjN8fDY1MTM2PD1lJiZlPD02NTI3OSkmJih0PSJBTCIpLCJSIiE9PXQmJiJBTCIhPT10JiYiQU4iIT09dHx8cisrLEhyW3NdPXR9aWYoMD09PXIpcmV0dXJuIGk9ITAsTHIoQSxpKTstMT09PWUmJihyL2E8LjMmJmE+ND8oaT0hMCxlPTApOihpPSExLGU9MSkpO2NvbnN0IGc9W107Zm9yKHM9MDtzPGE7KytzKWdbc109ZTtjb25zdCBvPUdyKGUpPyJSIjoiTCIsST1vLGM9STtsZXQgaCxDPUk7Zm9yKHM9MDtzPGE7KytzKSJOU00iPT09SHJbc10/SHJbc109QzpDPUhyW3NdO2ZvcihDPUkscz0wO3M8YTsrK3MpaD1IcltzXSwiRU4iPT09aD9IcltzXT0iQUwiPT09Qz8iQU4iOiJFTiI6IlIiIT09aCYmIkwiIT09aCYmIkFMIiE9PWh8fChDPWgpO2ZvcihzPTA7czxhOysrcyloPUhyW3NdLCJBTCI9PT1oJiYoSHJbc109IlIiKTtmb3Iocz0xO3M8YS0xOysrcykiRVMiPT09SHJbc10mJiJFTiI9PT1IcltzLTFdJiYiRU4iPT09SHJbcysxXSYmKEhyW3NdPSJFTiIpLCJDUyIhPT1IcltzXXx8IkVOIiE9PUhyW3MtMV0mJiJBTiIhPT1IcltzLTFdfHxIcltzKzFdIT09SHJbcy0xXXx8KEhyW3NdPUhyW3MtMV0pO2ZvcihzPTA7czxhOysrcylpZigiRU4iPT09SHJbc10pe2ZvcihsZXQgQT1zLTE7QT49MCYmIkVUIj09PUhyW0FdOy0tQSlIcltBXT0iRU4iO2ZvcihsZXQgQT1zKzE7QTxhJiYiRVQiPT09SHJbQV07KytBKUhyW0FdPSJFTiJ9Zm9yKHM9MDtzPGE7KytzKWg9SHJbc10sIldTIiE9PWgmJiJFUyIhPT1oJiYiRVQiIT09aCYmIkNTIiE9PWh8fChIcltzXT0iT04iKTtmb3IoQz1JLHM9MDtzPGE7KytzKWg9SHJbc10sIkVOIj09PWg/SHJbc109IkwiPT09Qz8iTCI6IkVOIjoiUiIhPT1oJiYiTCIhPT1ofHwoQz1oKTtmb3Iocz0wO3M8YTsrK3MpaWYoIk9OIj09PUhyW3NdKXtjb25zdCBBPXhyKEhyLHMrMSwiT04iKTtsZXQgZT1JO3M+MCYmKGU9SHJbcy0xXSk7bGV0IHQ9YztBKzE8YSYmKHQ9SHJbQSsxXSksIkwiIT09ZSYmKGU9IlIiKSwiTCIhPT10JiYodD0iUiIpLGU9PT10JiZVcihIcixzLEEsZSkscz1BLTF9Zm9yKHM9MDtzPGE7KytzKSJPTiI9PT1IcltzXSYmKEhyW3NdPW8pO2ZvcihzPTA7czxhOysrcyloPUhyW3NdLE5yKGdbc10pPyJSIj09PWg/Z1tzXSs9MToiQU4iIT09aCYmIkVOIiE9PWh8fChnW3NdKz0yKToiTCIhPT1oJiYiQU4iIT09aCYmIkVOIiE9PWh8fChnW3NdKz0xKTtsZXQgQixsPS0xLFE9OTk7Zm9yKHM9MCxuPWcubGVuZ3RoO3M8bjsrK3MpQj1nW3NdLGw8QiYmKGw9QiksUT5CJiZHcihCKSYmKFE9Qik7Zm9yKEI9bDtCPj1ROy0tQil7bGV0IEE9LTE7Zm9yKHM9MCxuPWcubGVuZ3RoO3M8bjsrK3MpZ1tzXTxCP0E+PTAmJihNcihKcixBLHMpLEE9LTEpOkE8MCYmKEE9cyk7QT49MCYmTXIoSnIsQSxnLmxlbmd0aCl9Zm9yKHM9MCxuPUpyLmxlbmd0aDtzPG47KytzKXtjb25zdCBBPUpyW3NdOyI8IiE9PUEmJiI+IiE9PUF8fChKcltzXT0iIil9cmV0dXJuIExyKEpyLmpvaW4oIiIpLGkpfWNvbnN0IHZyPXtzdHlsZToibm9ybWFsIix3ZWlnaHQ6Im5vcm1hbCJ9LEtyPXtzdHlsZToibm9ybWFsIix3ZWlnaHQ6ImJvbGQifSxxcj17c3R5bGU6Iml0YWxpYyIsd2VpZ2h0OiJub3JtYWwifSxUcj17c3R5bGU6Iml0YWxpYyIsd2VpZ2h0OiJib2xkIn0sUHI9bmV3IE1hcChbWyJUaW1lcy1Sb21hbiIse2xvY2FsOlsiVGltZXMgTmV3IFJvbWFuIiwiVGltZXMtUm9tYW4iLCJUaW1lcyIsIkxpYmVyYXRpb24gU2VyaWYiLCJOaW1idXMgUm9tYW4iLCJOaW1idXMgUm9tYW4gTCIsIlRpbm9zIiwiVGhvcm5kYWxlIiwiVGVYIEd5cmUgVGVybWVzIiwiRnJlZVNlcmlmIiwiTGludXggTGliZXJ0aW5lIE8iLCJMaWJlcnRpbnVzIFNlcmlmIiwiRGVqYVZ1IFNlcmlmIiwiQml0c3RyZWFtIFZlcmEgU2VyaWYiLCJVYnVudHUiXSxzdHlsZTp2cix1bHRpbWF0ZToic2VyaWYifV0sWyJUaW1lcy1Cb2xkIix7YWxpYXM6IlRpbWVzLVJvbWFuIixzdHlsZTpLcix1bHRpbWF0ZToic2VyaWYifV0sWyJUaW1lcy1JdGFsaWMiLHthbGlhczoiVGltZXMtUm9tYW4iLHN0eWxlOnFyLHVsdGltYXRlOiJzZXJpZiJ9XSxbIlRpbWVzLUJvbGRJdGFsaWMiLHthbGlhczoiVGltZXMtUm9tYW4iLHN0eWxlOlRyLHVsdGltYXRlOiJzZXJpZiJ9XSxbIkhlbHZldGljYSIse2xvY2FsOlsiSGVsdmV0aWNhIiwiSGVsdmV0aWNhIE5ldWUiLCJBcmlhbCIsIkFyaWFsIE5vdmEiLCJMaWJlcmF0aW9uIFNhbnMiLCJBcmltbyIsIk5pbWJ1cyBTYW5zIiwiTmltYnVzIFNhbnMgTCIsIkEwMzAiLCJUZVggR3lyZSBIZXJvcyIsIkZyZWVTYW5zIiwiRGVqYVZ1IFNhbnMiLCJBbGJhbnkiLCJCaXRzdHJlYW0gVmVyYSBTYW5zIiwiQXJpYWwgVW5pY29kZSBNUyIsIk1pY3Jvc29mdCBTYW5zIFNlcmlmIiwiQXBwbGUgU3ltYm9scyIsIkNhbnRhcmVsbCJdLHBhdGg6IkxpYmVyYXRpb25TYW5zLVJlZ3VsYXIudHRmIixzdHlsZTp2cix1bHRpbWF0ZToic2Fucy1zZXJpZiJ9XSxbIkhlbHZldGljYS1Cb2xkIix7YWxpYXM6IkhlbHZldGljYSIscGF0aDoiTGliZXJhdGlvblNhbnMtQm9sZC50dGYiLHN0eWxlOktyLHVsdGltYXRlOiJzYW5zLXNlcmlmIn1dLFsiSGVsdmV0aWNhLU9ibGlxdWUiLHthbGlhczoiSGVsdmV0aWNhIixwYXRoOiJMaWJlcmF0aW9uU2Fucy1JdGFsaWMudHRmIixzdHlsZTpxcix1bHRpbWF0ZToic2Fucy1zZXJpZiJ9XSxbIkhlbHZldGljYS1Cb2xkT2JsaXF1ZSIse2FsaWFzOiJIZWx2ZXRpY2EiLHBhdGg6IkxpYmVyYXRpb25TYW5zLUJvbGRJdGFsaWMudHRmIixzdHlsZTpUcix1bHRpbWF0ZToic2Fucy1zZXJpZiJ9XSxbIkNvdXJpZXIiLHtsb2NhbDpbIkNvdXJpZXIiLCJDb3VyaWVyIE5ldyIsIkxpYmVyYXRpb24gTW9ubyIsIk5pbWJ1cyBNb25vIiwiTmltYnVzIE1vbm8gTCIsIkNvdXNpbmUiLCJDdW1iZXJsYW5kIiwiVGVYIEd5cmUgQ3Vyc29yIiwiRnJlZU1vbm8iLCJMaW51eCBMaWJlcnRpbmUgTW9ubyBPIiwiTGliZXJ0aW51cyBNb25vIl0sc3R5bGU6dnIsdWx0aW1hdGU6Im1vbm9zcGFjZSJ9XSxbIkNvdXJpZXItQm9sZCIse2FsaWFzOiJDb3VyaWVyIixzdHlsZTpLcix1bHRpbWF0ZToibW9ub3NwYWNlIn1dLFsiQ291cmllci1PYmxpcXVlIix7YWxpYXM6IkNvdXJpZXIiLHN0eWxlOnFyLHVsdGltYXRlOiJtb25vc3BhY2UifV0sWyJDb3VyaWVyLUJvbGRPYmxpcXVlIix7YWxpYXM6IkNvdXJpZXIiLHN0eWxlOlRyLHVsdGltYXRlOiJtb25vc3BhY2UifV0sWyJBcmlhbEJsYWNrIix7bG9jYWw6WyJBcmlhbCBCbGFjayJdLHN0eWxlOntzdHlsZToibm9ybWFsIix3ZWlnaHQ6IjkwMCJ9LGZhbGxiYWNrOiJIZWx2ZXRpY2EtQm9sZCJ9XSxbIkFyaWFsQmxhY2stQm9sZCIse2FsaWFzOiJBcmlhbEJsYWNrIn1dLFsiQXJpYWxCbGFjay1JdGFsaWMiLHthbGlhczoiQXJpYWxCbGFjayIsc3R5bGU6e3N0eWxlOiJpdGFsaWMiLHdlaWdodDoiOTAwIn0sZmFsbGJhY2s6IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSJ9XSxbIkFyaWFsQmxhY2stQm9sZEl0YWxpYyIse2FsaWFzOiJBcmlhbEJsYWNrLUl0YWxpYyJ9XSxbIkFyaWFsTmFycm93Iix7bG9jYWw6WyJBcmlhbCBOYXJyb3ciLCJMaWJlcmF0aW9uIFNhbnMgTmFycm93IiwiSGVsdmV0aWNhIENvbmRlbnNlZCIsIk5pbWJ1cyBTYW5zIE5hcnJvdyIsIlRlWCBHeXJlIEhlcm9zIENuIl0sc3R5bGU6dnIsZmFsbGJhY2s6IkhlbHZldGljYSJ9XSxbIkFyaWFsTmFycm93LUJvbGQiLHthbGlhczoiQXJpYWxOYXJyb3ciLHN0eWxlOktyLGZhbGxiYWNrOiJIZWx2ZXRpY2EtQm9sZCJ9XSxbIkFyaWFsTmFycm93LUl0YWxpYyIse2FsaWFzOiJBcmlhbE5hcnJvdyIsc3R5bGU6cXIsZmFsbGJhY2s6IkhlbHZldGljYS1PYmxpcXVlIn1dLFsiQXJpYWxOYXJyb3ctQm9sZEl0YWxpYyIse2FsaWFzOiJBcmlhbE5hcnJvdyIsc3R5bGU6VHIsZmFsbGJhY2s6IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSJ9XSxbIkNhbGlicmkiLHtsb2NhbDpbIkNhbGlicmkiLCJDYXJsaXRvIl0sc3R5bGU6dnIsZmFsbGJhY2s6IkhlbHZldGljYSJ9XSxbIkNhbGlicmktQm9sZCIse2FsaWFzOiJDYWxpYnJpIixzdHlsZTpLcixmYWxsYmFjazoiSGVsdmV0aWNhLUJvbGQifV0sWyJDYWxpYnJpLUl0YWxpYyIse2FsaWFzOiJDYWxpYnJpIixzdHlsZTpxcixmYWxsYmFjazoiSGVsdmV0aWNhLU9ibGlxdWUifV0sWyJDYWxpYnJpLUJvbGRJdGFsaWMiLHthbGlhczoiQ2FsaWJyaSIsc3R5bGU6VHIsZmFsbGJhY2s6IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSJ9XSxbIldpbmdkaW5ncyIse2xvY2FsOlsiV2luZ2RpbmdzIiwiVVJXIERpbmdiYXRzIl0sc3R5bGU6dnJ9XSxbIldpbmdkaW5ncy1SZWd1bGFyIix7YWxpYXM6IldpbmdkaW5ncyJ9XSxbIldpbmdkaW5ncy1Cb2xkIix7YWxpYXM6IldpbmdkaW5ncyJ9XV0pLFdyPW5ldyBNYXAoW1siQXJpYWwtQmxhY2siLCJBcmlhbEJsYWNrIl1dKTtmdW5jdGlvbiBPcihBKXtjb25zdCBlPW5ldyBTZXQoWyJ0aGluIiwiZXh0cmFsaWdodCIsInVsdHJhbGlnaHQiLCJkZW1pbGlnaHQiLCJzZW1pbGlnaHQiLCJsaWdodCIsImJvb2siLCJyZWd1bGFyIiwibm9ybWFsIiwibWVkaXVtIiwiZGVtaWJvbGQiLCJzZW1pYm9sZCIsImJvbGQiLCJleHRyYWJvbGQiLCJ1bHRyYWJvbGQiLCJibGFjayIsImhlYXZ5IiwiZXh0cmFibGFjayIsInVsdHJhYmxhY2siLCJyb21hbiIsIml0YWxpYyIsIm9ibGlxdWUiLCJ1bHRyYWNvbmRlbnNlZCIsImV4dHJhY29uZGVuc2VkIiwiY29uZGVuc2VkIiwic2VtaWNvbmRlbnNlZCIsIm5vcm1hbCIsInNlbWlleHBhbmRlZCIsImV4cGFuZGVkIiwiZXh0cmFleHBhbmRlZCIsInVsdHJhZXhwYW5kZWQiLCJib2xkaXRhbGljIl0pO3JldHVybiBBLnNwbGl0KC9bLSAsK10rL2cpLmZpbHRlcigoQT0+IWUuaGFzKEEudG9Mb3dlckNhc2UoKSkpKS5qb2luKCIgIil9ZnVuY3Rpb24gWnIoe2FsaWFzOkEsbG9jYWw6ZSxwYXRoOnQsZmFsbGJhY2s6aSxzdHlsZTphLHVsdGltYXRlOnN9LG4scixnPSEwLG89ITAsST0iIil7Y29uc3QgYz17c3R5bGU6bnVsbCx1bHRpbWF0ZTpudWxsfTtpZihlKXtjb25zdCBBPUk/YCAke0l9YDoiIjtmb3IoY29uc3QgdCBvZiBlKW4ucHVzaChgbG9jYWwoJHt0fSR7QX0pYCl9aWYoQSl7Y29uc3QgZT1Qci5nZXQoQSkscz1JfHxmdW5jdGlvbihBKXtzd2l0Y2goQSl7Y2FzZSBLcjpyZXR1cm4iQm9sZCI7Y2FzZSBxcjpyZXR1cm4iSXRhbGljIjtjYXNlIFRyOnJldHVybiJCb2xkIEl0YWxpYyI7ZGVmYXVsdDppZigiYm9sZCI9PT1BPy53ZWlnaHQpcmV0dXJuIkJvbGQiO2lmKCJpdGFsaWMiPT09QT8uc3R5bGUpcmV0dXJuIkl0YWxpYyJ9cmV0dXJuIiJ9KGEpO09iamVjdC5hc3NpZ24oYyxacihlLG4scixnJiYhaSxvJiYhdCxzKSl9aWYoYSYmKGMuc3R5bGU9YSkscyYmKGMudWx0aW1hdGU9cyksZyYmaSl7Y29uc3QgQT1Qci5nZXQoaSkse3VsdGltYXRlOmV9PVpyKEEsbixyLGcsbyYmIXQsSSk7Yy51bHRpbWF0ZXx8PWV9cmV0dXJuIG8mJnQmJnImJm4ucHVzaChgdXJsKCR7cn0ke3R9KWApLGN9ZnVuY3Rpb24ganIoQSxlLHQsaSxhLHMpe2lmKGkuc3RhcnRzV2l0aCgiSW52YWxpZFBERmpzRm9udF8iKSlyZXR1cm4gbnVsbDsiVHJ1ZVR5cGUiIT09cyYmIlR5cGUxIiE9PXN8fCEvXltBLVpdezZ9XCsvLnRlc3QoaSl8fChpPWkuc2xpY2UoNykpO2NvbnN0IG49aT1kYShpKTtsZXQgcj1BLmdldChuKTtpZihyKXJldHVybiByO2xldCBnPVByLmdldChpKTtpZighZylmb3IoY29uc3RbQSxlXW9mIFdyKWlmKGkuc3RhcnRzV2l0aChBKSl7aT1gJHtlfSR7aS5zdWJzdHJpbmcoQS5sZW5ndGgpfWAsZz1Qci5nZXQoaSk7YnJlYWt9bGV0IG89ITE7Z3x8KGc9UHIuZ2V0KGEpLG89ITApO2NvbnN0IEk9YCR7ZS5nZXREb2NJZCgpfV9zJHtlLmNyZWF0ZUZvbnRJZCgpfWA7aWYoIWcpe2lmKCF6QShpKSlyZXR1cm4gVShgQ2Fubm90IHN1YnN0aXR1dGUgdGhlIGZvbnQgYmVjYXVzZSBvZiBpdHMgbmFtZTogJHtpfWApLEEuc2V0KG4sbnVsbCksbnVsbDtjb25zdCBlPS9ib2xkL2dpLnRlc3QoaSksdD0vb2JsaXF1ZXxpdGFsaWMvZ2kudGVzdChpKSxhPWUmJnQmJlRyfHxlJiZLcnx8dCYmcXJ8fHZyO3JldHVybiByPXtjc3M6YCIke09yKGkpfSIsJHtJfWAsZ3Vlc3NGYWxsYmFjazohMCxsb2FkZWROYW1lOkksYmFzZUZvbnROYW1lOmksc3JjOmBsb2NhbCgke2l9KWAsc3R5bGU6YX0sQS5zZXQobixyKSxyfWNvbnN0IGM9W107byYmekEoaSkmJmMucHVzaChgbG9jYWwoJHtpfSlgKTtjb25zdHtzdHlsZTpoLHVsdGltYXRlOkN9PVpyKGcsYyx0KSxCPW51bGw9PT1DLGw9Qj8iIjpgLCR7Q31gO3JldHVybiByPXtjc3M6YCIke09yKGkpfSIsJHtJfSR7bH1gLGd1ZXNzRmFsbGJhY2s6Qixsb2FkZWROYW1lOkksYmFzZUZvbnROYW1lOmksc3JjOmMuam9pbigiLCIpLHN0eWxlOmh9LEEuc2V0KG4scikscn1jbGFzcyBYcntjb25zdHJ1Y3RvcihBLGUpe3RoaXMuX2ltZ0RhdGE9QSx0aGlzLl9pc01hc2s9ZX1zdGF0aWMgbmVlZHNUb0JlUmVzaXplZChBLGUpe2lmKEE8PXRoaXMuX2dvb2RTcXVhcmVMZW5ndGgmJmU8PXRoaXMuX2dvb2RTcXVhcmVMZW5ndGgpcmV0dXJuITE7Y29uc3R7TUFYX0RJTTp0fT10aGlzO2lmKEE+dHx8ZT50KXJldHVybiEwO2NvbnN0IGk9QSplO3JldHVybiB0aGlzLl9oYXNNYXhBcmVhP2k+dGhpcy5NQVhfQVJFQTohKGk8dGhpcy5fZ29vZFNxdWFyZUxlbmd0aCoqMikmJih0aGlzLl9hcmVHb29kRGltcyhBLGUpPyh0aGlzLl9nb29kU3F1YXJlTGVuZ3RoPU1hdGgubWF4KHRoaXMuX2dvb2RTcXVhcmVMZW5ndGgsTWF0aC5mbG9vcihNYXRoLnNxcnQoQSplKSkpLCExKToodGhpcy5fZ29vZFNxdWFyZUxlbmd0aD10aGlzLl9ndWVzc01heCh0aGlzLl9nb29kU3F1YXJlTGVuZ3RoLHQsMTI4LDApLGk+KHRoaXMuTUFYX0FSRUE9dGhpcy5fZ29vZFNxdWFyZUxlbmd0aCoqMikpKX1zdGF0aWMgZ2V0IE1BWF9ESU0oKXtyZXR1cm4gSCh0aGlzLCJNQVhfRElNIix0aGlzLl9ndWVzc01heCgyMDQ4LDY1NTM3LDAsMSkpfXN0YXRpYyBnZXQgTUFYX0FSRUEoKXtyZXR1cm4gdGhpcy5faGFzTWF4QXJlYT0hMCxIKHRoaXMsIk1BWF9BUkVBIix0aGlzLl9ndWVzc01heChYci5fZ29vZFNxdWFyZUxlbmd0aCx0aGlzLk1BWF9ESU0sMTI4LDApKioyKX1zdGF0aWMgc2V0IE1BWF9BUkVBKEEpe0E+PTAmJih0aGlzLl9oYXNNYXhBcmVhPSEwLEgodGhpcywiTUFYX0FSRUEiLEEpKX1zdGF0aWMgc2V0TWF4QXJlYShBKXt0aGlzLl9oYXNNYXhBcmVhfHwodGhpcy5NQVhfQVJFQT1BPj4yKX1zdGF0aWMgX2FyZUdvb2REaW1zKEEsZSl7dHJ5e2NvbnN0IHQ9bmV3IE9mZnNjcmVlbkNhbnZhcyhBLGUpLGk9dC5nZXRDb250ZXh0KCIyZCIpO2kuZmlsbFJlY3QoMCwwLDEsMSk7Y29uc3QgYT1pLmdldEltYWdlRGF0YSgwLDAsMSwxKS5kYXRhWzNdO3JldHVybiB0LndpZHRoPXQuaGVpZ2h0PTEsMCE9PWF9Y2F0Y2h7cmV0dXJuITF9fXN0YXRpYyBfZ3Vlc3NNYXgoQSxlLHQsaSl7Zm9yKDtBK3QrMTxlOyl7Y29uc3QgdD1NYXRoLmZsb29yKChBK2UpLzIpLGE9aXx8dDt0aGlzLl9hcmVHb29kRGltcyh0LGEpP0E9dDplPXR9cmV0dXJuIEF9c3RhdGljIGFzeW5jIGNyZWF0ZUltYWdlKEEsZT0hMSl7cmV0dXJuIG5ldyBYcihBLGUpLl9jcmVhdGVJbWFnZSgpfWFzeW5jIF9jcmVhdGVJbWFnZSgpe2NvbnN0IEE9dGhpcy5fZW5jb2RlQk1QKCksZT1uZXcgQmxvYihbQS5idWZmZXJdLHt0eXBlOiJpbWFnZS9ibXAifSksdD1jcmVhdGVJbWFnZUJpdG1hcChlKSx7TUFYX0FSRUE6aSxNQVhfRElNOmF9PVhyLHtfaW1nRGF0YTpzfT10aGlzLHt3aWR0aDpuLGhlaWdodDpyfT1zLGc9TWF0aC5tYXgobi9hLHIvYSxNYXRoLnNxcnQobipyL2kpKSxvPU1hdGgubWF4KGcsMiksST1NYXRoLnJvdW5kKDEwKihnKzEuMjUpKS8xMC9vLGM9TWF0aC5mbG9vcihNYXRoLmxvZzIoSSkpLGg9bmV3IEFycmF5KGMrMikuZmlsbCgyKTtoWzBdPW8saC5zcGxpY2UoLTEsMSxJLygxPDxjKSk7bGV0IEM9bixCPXIsbD1hd2FpdCB0O2Zvcihjb25zdCBBIG9mIGgpe2NvbnN0IGU9Qyx0PUI7Qz1NYXRoLmZsb29yKEMvQSktMSxCPU1hdGguZmxvb3IoQi9BKS0xO2NvbnN0IGk9bmV3IE9mZnNjcmVlbkNhbnZhcyhDLEIpO2kuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UobCwwLDAsZSx0LDAsMCxDLEIpLGw9aS50cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKX1yZXR1cm4gcy5kYXRhPW51bGwscy5iaXRtYXA9bCxzLndpZHRoPUMscy5oZWlnaHQ9QixzfV9lbmNvZGVCTVAoKXtjb25zdHt3aWR0aDpBLGhlaWdodDplLGtpbmQ6dH09dGhpcy5faW1nRGF0YTtsZXQgaSxhPXRoaXMuX2ltZ0RhdGEuZGF0YSxzPW5ldyBVaW50OEFycmF5KDApLG49cyxyPTA7c3dpdGNoKHQpe2Nhc2UgMTp7aT0xLHM9bmV3IFVpbnQ4QXJyYXkodGhpcy5faXNNYXNrP1syNTUsMjU1LDI1NSwyNTUsMCwwLDAsMF06WzAsMCwwLDAsMjU1LDI1NSwyNTUsMjU1XSk7Y29uc3QgdD1BKzc+PjMsbj10KzMmLTQ7aWYodCE9PW4pe2NvbnN0IEE9bmV3IFVpbnQ4QXJyYXkobiplKTtsZXQgaT0wO2ZvcihsZXQgcz0wLHI9ZSp0O3M8cjtzKz10LGkrPW4pQS5zZXQoYS5zdWJhcnJheShzLHMrdCksaSk7YT1BfWJyZWFrfWNhc2UgMjppZihpPTI0LDMmQSl7Y29uc3QgdD0zKkEsaT10KzMmLTQscz1pLXQsbj1uZXcgVWludDhBcnJheShpKmUpO2xldCByPTA7Zm9yKGxldCBBPTAsaT1lKnQ7QTxpO0ErPXQpe2NvbnN0IGU9YS5zdWJhcnJheShBLEErdCk7Zm9yKGxldCBBPTA7QTx0O0ErPTMpbltyKytdPWVbQSsyXSxuW3IrK109ZVtBKzFdLG5bcisrXT1lW0FdO3IrPXN9YT1ufWVsc2UgZm9yKGxldCBBPTAsZT1hLmxlbmd0aDtBPGU7QSs9Myl7Y29uc3QgZT1hW0FdO2FbQV09YVtBKzJdLGFbQSsyXT1lfWJyZWFrO2Nhc2UgMzppPTMyLHI9MyxuPW5ldyBVaW50OEFycmF5KDY4KTtjb25zdCB0PW5ldyBEYXRhVmlldyhuLmJ1ZmZlcik7Xy5pc0xpdHRsZUVuZGlhbj8odC5zZXRVaW50MzIoMCwyNTUsITApLHQuc2V0VWludDMyKDQsNjUyODAsITApLHQuc2V0VWludDMyKDgsMTY3MTE2ODAsITApLHQuc2V0VWludDMyKDEyLDQyNzgxOTAwODAsITApKToodC5zZXRVaW50MzIoMCw0Mjc4MTkwMDgwLCEwKSx0LnNldFVpbnQzMig0LDE2NzExNjgwLCEwKSx0LnNldFVpbnQzMig4LDY1MjgwLCEwKSx0LnNldFVpbnQzMigxMiwyNTUsITApKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiaW52YWxpZCBmb3JtYXQiKX1sZXQgZz0wO2NvbnN0IG89NDArbi5sZW5ndGgsST0xNCtvK3MubGVuZ3RoK2EubGVuZ3RoLGM9bmV3IFVpbnQ4QXJyYXkoSSksaD1uZXcgRGF0YVZpZXcoYy5idWZmZXIpO3JldHVybiBoLnNldFVpbnQxNihnLDE5Nzc4LCEwKSxnKz0yLGguc2V0VWludDMyKGcsSSwhMCksZys9NCxoLnNldFVpbnQzMihnLDAsITApLGcrPTQsaC5zZXRVaW50MzIoZywxNCtvK3MubGVuZ3RoLCEwKSxnKz00LGguc2V0VWludDMyKGcsbywhMCksZys9NCxoLnNldEludDMyKGcsQSwhMCksZys9NCxoLnNldEludDMyKGcsLWUsITApLGcrPTQsaC5zZXRVaW50MTYoZywxLCEwKSxnKz0yLGguc2V0VWludDE2KGcsaSwhMCksZys9MixoLnNldFVpbnQzMihnLHIsITApLGcrPTQsaC5zZXRVaW50MzIoZywwLCEwKSxnKz00LGguc2V0SW50MzIoZywwLCEwKSxnKz00LGguc2V0SW50MzIoZywwLCEwKSxnKz00LGguc2V0VWludDMyKGcscy5sZW5ndGgvNCwhMCksZys9NCxoLnNldFVpbnQzMihnLDAsITApLGcrPTQsYy5zZXQobixnKSxnKz1uLmxlbmd0aCxjLnNldChzLGcpLGcrPXMubGVuZ3RoLGMuc2V0KGEsZyksY319WHIuX2dvb2RTcXVhcmVMZW5ndGg9MjA0ODtjb25zdCBWcj0zMjg1Mzc3NTIwLF9yPTQyOTQ5MDE3NjAsenI9NjU1MzU7Y2xhc3MgJHJ7Y29uc3RydWN0b3IoQSl7dGhpcy5oMT1BPzQyOTQ5NjcyOTUmQTpWcix0aGlzLmgyPUE/NDI5NDk2NzI5NSZBOlZyfXVwZGF0ZShBKXtsZXQgZSx0O2lmKCJzdHJpbmciPT10eXBlb2YgQSl7ZT1uZXcgVWludDhBcnJheSgyKkEubGVuZ3RoKSx0PTA7Zm9yKGxldCBpPTAsYT1BLmxlbmd0aDtpPGE7aSsrKXtjb25zdCBhPUEuY2hhckNvZGVBdChpKTthPD0yNTU/ZVt0KytdPWE6KGVbdCsrXT1hPj4+OCxlW3QrK109MjU1JmEpfX1lbHNle2lmKCFBcnJheUJ1ZmZlci5pc1ZpZXcoQSkpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGRhdGEgZm9ybWF0LCBtdXN0IGJlIGEgc3RyaW5nIG9yIFR5cGVkQXJyYXkuIik7ZT1BLnNsaWNlKCksdD1lLmJ5dGVMZW5ndGh9Y29uc3QgaT10Pj4yLGE9dC00Kmkscz1uZXcgVWludDMyQXJyYXkoZS5idWZmZXIsMCxpKTtsZXQgbj0wLHI9MCxnPXRoaXMuaDEsbz10aGlzLmgyO2NvbnN0IEk9MzQzMjkxODM1MyxjPTQ2MTg0NTkwNyxoPTExNjAxLEM9MTM3MTU7Zm9yKGxldCBBPTA7QTxpO0ErKykxJkE/KG49c1tBXSxuPW4qSSZfcnxuKmgmenIsbj1uPDwxNXxuPj4+MTcsbj1uKmMmX3J8bipDJnpyLGdePW4sZz1nPDwxM3xnPj4+MTksZz01KmcrMzg2NDI5MjE5Nik6KHI9c1tBXSxyPXIqSSZfcnxyKmgmenIscj1yPDwxNXxyPj4+MTcscj1yKmMmX3J8cipDJnpyLG9ePXIsbz1vPDwxM3xvPj4+MTksbz01Km8rMzg2NDI5MjE5Nik7c3dpdGNoKG49MCxhKXtjYXNlIDM6bl49ZVs0KmkrMl08PDE2O2Nhc2UgMjpuXj1lWzQqaSsxXTw8ODtjYXNlIDE6bl49ZVs0KmldLG49bipJJl9yfG4qaCZ6cixuPW48PDE1fG4+Pj4xNyxuPW4qYyZfcnxuKkMmenIsMSZpP2dePW46b149bn10aGlzLmgxPWcsdGhpcy5oMj1vfWhleGRpZ2VzdCgpe2xldCBBPXRoaXMuaDEsZT10aGlzLmgyO3JldHVybiBBXj1lPj4+MSxBPTM5ODE4MDY3OTcqQSZfcnwzNjA0NSpBJnpyLGU9NDI4MzU0MzUxMSplJl9yfCgyOTUwMTYzNzk3KihlPDwxNnxBPj4+MTYpJl9yKT4+PjE2LEFePWU+Pj4xLEE9NDQ0OTg0NDAzKkEmX3J8NjA0OTkqQSZ6cixlPTMzMDE4ODIzNjYqZSZfcnwoMzEyMDQzNzg5MyooZTw8MTZ8QT4+PjE2KSZfcik+Pj4xNixBXj1lPj4+MSwoQT4+PjApLnRvU3RyaW5nKDE2KS5wYWRTdGFydCg4LCIwIikrKGU+Pj4wKS50b1N0cmluZygxNikucGFkU3RhcnQoOCwiMCIpfX1mdW5jdGlvbiBBZyhBLGUsdCxpLGEpe2xldCBzPUE7Zm9yKGxldCBBPTAsdD1lLmxlbmd0aC0xO0E8dDtBKyspe2NvbnN0IHQ9ZVtBXTtzPXNbdF18fD1bXX1zW2UuYXQoLTEpXT17Y2hlY2tGbjp0LGl0ZXJhdGVGbjppLHByb2Nlc3NGbjphfX1jb25zdCBlZz1bXTtBZyhlZyxbZixtLDg2LHBdLG51bGwsKGZ1bmN0aW9uKEEsZSl7Y29uc3QgdD1BLmZuQXJyYXksaT0oZS0oQS5pQ3Vyci0zKSklNDtzd2l0Y2goaSl7Y2FzZSAwOnJldHVybiB0W2VdPT09ZjtjYXNlIDE6cmV0dXJuIHRbZV09PT1tO2Nhc2UgMjpyZXR1cm4gODY9PT10W2VdO2Nhc2UgMzpyZXR1cm4gdFtlXT09PXB9dGhyb3cgbmV3IEVycm9yKGBpdGVyYXRlSW5saW5lSW1hZ2VHcm91cCAtIGludmFsaWQgcG9zOiAke2l9YCl9KSwoZnVuY3Rpb24oQSxlKXtjb25zdCB0PUEuZm5BcnJheSxpPUEuYXJnc0FycmF5LGE9QS5pQ3VycixzPWEtMyxuPWEtMixyPWEtMSxnPU1hdGgubWluKE1hdGguZmxvb3IoKGUtcykvNCksMjAwKTtpZihnPDEwKXJldHVybiBlLShlLXMpJTQ7bGV0IG89MDtjb25zdCBJPVtdO2xldCBjPTAsaD0xLEM9MTtmb3IobGV0IEE9MDtBPGc7QSsrKXtjb25zdCBlPWlbbisoQTw8MildLHQ9aVtyKyhBPDwyKV1bMF07aCt0LndpZHRoPjFlMyYmKG89TWF0aC5tYXgobyxoKSxDKz1jKzIsaD0wLGM9MCksSS5wdXNoKHt0cmFuc2Zvcm06ZSx4OmgseTpDLHc6dC53aWR0aCxoOnQuaGVpZ2h0fSksaCs9dC53aWR0aCsyLGM9TWF0aC5tYXgoYyx0LmhlaWdodCl9Y29uc3QgQj1NYXRoLm1heChvLGgpKzEsbD1DK2MrMSxRPW5ldyBVaW50OEFycmF5KEIqbCo0KSxFPUI8PDI7Zm9yKGxldCBBPTA7QTxnO0ErKyl7Y29uc3QgZT1pW3IrKEE8PDIpXVswXS5kYXRhLHQ9SVtBXS53PDwyO2xldCBhPTAscz1JW0FdLngrSVtBXS55KkI8PDI7US5zZXQoZS5zdWJhcnJheSgwLHQpLHMtRSk7Zm9yKGxldCBpPTAsbj1JW0FdLmg7aTxuO2krKylRLnNldChlLnN1YmFycmF5KGEsYSt0KSxzKSxhKz10LHMrPUU7Zm9yKFEuc2V0KGUuc3ViYXJyYXkoYS10LGEpLHMpO3M+PTA7KWVbcy00XT1lW3NdLGVbcy0zXT1lW3MrMV0sZVtzLTJdPWVbcysyXSxlW3MtMV09ZVtzKzNdLGVbcyt0XT1lW3MrdC00XSxlW3MrdCsxXT1lW3MrdC0zXSxlW3MrdCsyXT1lW3MrdC0yXSxlW3MrdCszXT1lW3MrdC0xXSxzLT1FfWNvbnN0IHU9e3dpZHRoOkIsaGVpZ2h0Omx9O2lmKEEuaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQpe2NvbnN0IEE9bmV3IE9mZnNjcmVlbkNhbnZhcyhCLGwpO0EuZ2V0Q29udGV4dCgiMmQiKS5wdXRJbWFnZURhdGEobmV3IEltYWdlRGF0YShuZXcgVWludDhDbGFtcGVkQXJyYXkoUS5idWZmZXIpLEIsbCksMCwwKSx1LmJpdG1hcD1BLnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpLHUuZGF0YT1udWxsfWVsc2UgdS5raW5kPTMsdS5kYXRhPVE7cmV0dXJuIHQuc3BsaWNlKHMsNCpnLDg3KSxpLnNwbGljZShzLDQqZyxbdSxJXSkscysxfSkpLEFnKGVnLFtmLG0sUyxwXSxudWxsLChmdW5jdGlvbihBLGUpe2NvbnN0IHQ9QS5mbkFycmF5LGk9KGUtKEEuaUN1cnItMykpJTQ7c3dpdGNoKGkpe2Nhc2UgMDpyZXR1cm4gdFtlXT09PWY7Y2FzZSAxOnJldHVybiB0W2VdPT09bTtjYXNlIDI6cmV0dXJuIHRbZV09PT1TO2Nhc2UgMzpyZXR1cm4gdFtlXT09PXB9dGhyb3cgbmV3IEVycm9yKGBpdGVyYXRlSW1hZ2VNYXNrR3JvdXAgLSBpbnZhbGlkIHBvczogJHtpfWApfSksKGZ1bmN0aW9uKEEsZSl7Y29uc3QgdD1BLmZuQXJyYXksaT1BLmFyZ3NBcnJheSxhPUEuaUN1cnIscz1hLTMsbj1hLTIscj1hLTE7bGV0IGc9TWF0aC5mbG9vcigoZS1zKS80KTtpZihnPDEwKXJldHVybiBlLShlLXMpJTQ7bGV0IG8sSSxjPSExO2NvbnN0IGg9aVtyXVswXSxDPWlbbl1bMF0sQj1pW25dWzFdLGw9aVtuXVsyXSxRPWlbbl1bM107aWYoQj09PWwpe2M9ITAsbz1uKzQ7bGV0IEE9cis0O2ZvcihsZXQgZT0xO2U8ZztlKyssbys9NCxBKz00KWlmKEk9aVtvXSxpW0FdWzBdIT09aHx8SVswXSE9PUN8fElbMV0hPT1CfHxJWzJdIT09bHx8SVszXSE9PVEpe2U8MTA/Yz0hMTpnPWU7YnJlYWt9fWlmKGMpe2c9TWF0aC5taW4oZywxZTMpO2NvbnN0IEE9bmV3IEZsb2F0MzJBcnJheSgyKmcpO289bjtmb3IobGV0IGU9MDtlPGc7ZSsrLG8rPTQpST1pW29dLEFbZTw8MV09SVs0XSxBWzErKGU8PDEpXT1JWzVdO3Quc3BsaWNlKHMsNCpnLDg5KSxpLnNwbGljZShzLDQqZyxbaCxDLEIsbCxRLEFdKX1lbHNle2c9TWF0aC5taW4oZywxMDApO2NvbnN0IEE9W107Zm9yKGxldCBlPTA7ZTxnO2UrKyl7ST1pW24rKGU8PDIpXTtjb25zdCB0PWlbcisoZTw8MildWzBdO0EucHVzaCh7ZGF0YTp0LmRhdGEsd2lkdGg6dC53aWR0aCxoZWlnaHQ6dC5oZWlnaHQsaW50ZXJwb2xhdGU6dC5pbnRlcnBvbGF0ZSxjb3VudDp0LmNvdW50LHRyYW5zZm9ybTpJfSl9dC5zcGxpY2Uocyw0KmcsODQpLGkuc3BsaWNlKHMsNCpnLFtBXSl9cmV0dXJuIHMrMX0pKSxBZyhlZyxbZixtLFIscF0sKGZ1bmN0aW9uKEEpe2NvbnN0IGU9QS5hcmdzQXJyYXksdD1BLmlDdXJyLTI7cmV0dXJuIDA9PT1lW3RdWzFdJiYwPT09ZVt0XVsyXX0pLChmdW5jdGlvbihBLGUpe2NvbnN0IHQ9QS5mbkFycmF5LGk9QS5hcmdzQXJyYXksYT0oZS0oQS5pQ3Vyci0zKSklNDtzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiB0W2VdPT09ZjtjYXNlIDE6aWYodFtlXSE9PW0pcmV0dXJuITE7Y29uc3QgYT1BLmlDdXJyLTIscz1pW2FdWzBdLG49aVthXVszXTtyZXR1cm4gaVtlXVswXT09PXMmJjA9PT1pW2VdWzFdJiYwPT09aVtlXVsyXSYmaVtlXVszXT09PW47Y2FzZSAyOmlmKHRbZV0hPT1SKXJldHVybiExO2NvbnN0IHI9aVtBLmlDdXJyLTFdWzBdO3JldHVybiBpW2VdWzBdPT09cjtjYXNlIDM6cmV0dXJuIHRbZV09PT1wfXRocm93IG5ldyBFcnJvcihgaXRlcmF0ZUltYWdlR3JvdXAgLSBpbnZhbGlkIHBvczogJHthfWApfSksKGZ1bmN0aW9uKEEsZSl7Y29uc3QgdD1BLmZuQXJyYXksaT1BLmFyZ3NBcnJheSxhPUEuaUN1cnIscz1hLTMsbj1hLTIscj1pW2EtMV1bMF0sZz1pW25dWzBdLG89aVtuXVszXSxJPU1hdGgubWluKE1hdGguZmxvb3IoKGUtcykvNCksMWUzKTtpZihJPDMpcmV0dXJuIGUtKGUtcyklNDtjb25zdCBjPW5ldyBGbG9hdDMyQXJyYXkoMipJKTtsZXQgaD1uO2ZvcihsZXQgQT0wO0E8STtBKyssaCs9NCl7Y29uc3QgZT1pW2hdO2NbQTw8MV09ZVs0XSxjWzErKEE8PDEpXT1lWzVdfWNvbnN0IEM9W3IsZyxvLGNdO3JldHVybiB0LnNwbGljZShzLDQqSSw4OCksaS5zcGxpY2Uocyw0KkksQykscysxfSkpLEFnKGVnLFszMSx5LDQyLHcsMzJdLG51bGwsKGZ1bmN0aW9uKEEsZSl7Y29uc3QgdD1BLmZuQXJyYXksaT1BLmFyZ3NBcnJheSxhPShlLShBLmlDdXJyLTQpKSU1O3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuIDMxPT09dFtlXTtjYXNlIDE6cmV0dXJuIHRbZV09PT15O2Nhc2UgMjpyZXR1cm4gNDI9PT10W2VdO2Nhc2UgMzppZih0W2VdIT09dylyZXR1cm4hMTtjb25zdCBhPUEuaUN1cnItMyxzPWlbYV1bMF0sbj1pW2FdWzFdO3JldHVybiBpW2VdWzBdPT09cyYmaVtlXVsxXT09PW47Y2FzZSA0OnJldHVybiAzMj09PXRbZV19dGhyb3cgbmV3IEVycm9yKGBpdGVyYXRlU2hvd1RleHRHcm91cCAtIGludmFsaWQgcG9zOiAke2F9YCl9KSwoZnVuY3Rpb24oQSxlKXtjb25zdCB0PUEuZm5BcnJheSxpPUEuYXJnc0FycmF5LGE9QS5pQ3VycixzPWEtNCxuPWEtMyxyPWEtMixnPWEtMSxvPWEsST1pW25dWzBdLGM9aVtuXVsxXTtsZXQgaD1NYXRoLm1pbihNYXRoLmZsb29yKChlLXMpLzUpLDFlMyk7aWYoaDwzKXJldHVybiBlLShlLXMpJTU7bGV0IEM9cztzPj00JiZ0W3MtNF09PT10W25dJiZ0W3MtM109PT10W3JdJiZ0W3MtMl09PT10W2ddJiZ0W3MtMV09PT10W29dJiZpW3MtNF1bMF09PT1JJiZpW3MtNF1bMV09PT1jJiYoaCsrLEMtPTUpO2xldCBCPUMrNDtmb3IobGV0IEE9MTtBPGg7QSsrKXQuc3BsaWNlKEIsMyksaS5zcGxpY2UoQiwzKSxCKz0yO3JldHVybiBCKzF9KSk7Y2xhc3MgdGd7Y29uc3RydWN0b3IoQSl7dGhpcy5xdWV1ZT1BfV9vcHRpbWl6ZSgpe31wdXNoKEEsZSl7dGhpcy5xdWV1ZS5mbkFycmF5LnB1c2goQSksdGhpcy5xdWV1ZS5hcmdzQXJyYXkucHVzaChlKSx0aGlzLl9vcHRpbWl6ZSgpfWZsdXNoKCl7fXJlc2V0KCl7fX1jbGFzcyBpZyBleHRlbmRzIHRne2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEpLHRoaXMuc3RhdGU9bnVsbCx0aGlzLmNvbnRleHQ9e2lDdXJyOjAsZm5BcnJheTpBLmZuQXJyYXksYXJnc0FycmF5OkEuYXJnc0FycmF5LGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkOiExfSx0aGlzLm1hdGNoPW51bGwsdGhpcy5sYXN0UHJvY2Vzc2VkPTB9c2V0IGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkKEEpe3RoaXMuY29udGV4dC5pc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZD1BfV9vcHRpbWl6ZSgpe2NvbnN0IEE9dGhpcy5xdWV1ZS5mbkFycmF5O2xldCBlPXRoaXMubGFzdFByb2Nlc3NlZCx0PUEubGVuZ3RoLGk9dGhpcy5zdGF0ZSxhPXRoaXMubWF0Y2g7aWYoIWkmJiFhJiZlKzE9PT10JiYhZWdbQVtlXV0pcmV0dXJuIHZvaWQodGhpcy5sYXN0UHJvY2Vzc2VkPXQpO2NvbnN0IHM9dGhpcy5jb250ZXh0O2Zvcig7ZTx0Oyl7aWYoYSl7aWYoKDAsYS5pdGVyYXRlRm4pKHMsZSkpe2UrKztjb250aW51ZX1pZihlPSgwLGEucHJvY2Vzc0ZuKShzLGUrMSksdD1BLmxlbmd0aCxhPW51bGwsaT1udWxsLGU+PXQpYnJlYWt9aT0oaXx8ZWcpW0FbZV1dLGkmJiFBcnJheS5pc0FycmF5KGkpPyhzLmlDdXJyPWUsZSsrLCFpLmNoZWNrRm58fCgwLGkuY2hlY2tGbikocyk/KGE9aSxpPW51bGwpOmk9bnVsbCk6ZSsrfXRoaXMuc3RhdGU9aSx0aGlzLm1hdGNoPWEsdGhpcy5sYXN0UHJvY2Vzc2VkPWV9Zmx1c2goKXtmb3IoO3RoaXMubWF0Y2g7KXtjb25zdCBBPXRoaXMucXVldWUuZm5BcnJheS5sZW5ndGg7dGhpcy5sYXN0UHJvY2Vzc2VkPSgwLHRoaXMubWF0Y2gucHJvY2Vzc0ZuKSh0aGlzLmNvbnRleHQsQSksdGhpcy5tYXRjaD1udWxsLHRoaXMuc3RhdGU9bnVsbCx0aGlzLl9vcHRpbWl6ZSgpfX1yZXNldCgpe3RoaXMuc3RhdGU9bnVsbCx0aGlzLm1hdGNoPW51bGwsdGhpcy5sYXN0UHJvY2Vzc2VkPTB9fWNsYXNzIGFne3N0YXRpYyBDSFVOS19TSVpFPTFlMztzdGF0aWMgQ0hVTktfU0laRV9BQk9VVD10aGlzLkNIVU5LX1NJWkUtNTtjb25zdHJ1Y3RvcihBPTAsZSl7dGhpcy5fc3RyZWFtU2luaz1lLHRoaXMuZm5BcnJheT1bXSx0aGlzLmFyZ3NBcnJheT1bXSx0aGlzLm9wdGltaXplcj0hZXx8MjU2JkE/bmV3IHRnKHRoaXMpOm5ldyBpZyh0aGlzKSx0aGlzLmRlcGVuZGVuY2llcz1uZXcgU2V0LHRoaXMuX3RvdGFsTGVuZ3RoPTAsdGhpcy53ZWlnaHQ9MCx0aGlzLl9yZXNvbHZlZD1lP251bGw6UHJvbWlzZS5yZXNvbHZlKCl9c2V0IGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkKEEpe3RoaXMub3B0aW1pemVyLmlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkPUF9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmFyZ3NBcnJheS5sZW5ndGh9Z2V0IHJlYWR5KCl7cmV0dXJuIHRoaXMuX3Jlc29sdmVkfHx0aGlzLl9zdHJlYW1TaW5rLnJlYWR5fWdldCB0b3RhbExlbmd0aCgpe3JldHVybiB0aGlzLl90b3RhbExlbmd0aCt0aGlzLmxlbmd0aH1hZGRPcChBLGUpe3RoaXMub3B0aW1pemVyLnB1c2goQSxlKSx0aGlzLndlaWdodCsrLHRoaXMuX3N0cmVhbVNpbmsmJih0aGlzLndlaWdodD49YWcuQ0hVTktfU0laRXx8dGhpcy53ZWlnaHQ+PWFnLkNIVU5LX1NJWkVfQUJPVVQmJihBPT09cHx8MzI9PT1BKSkmJnRoaXMuZmx1c2goKX1hZGRJbWFnZU9wcyhBLGUsdCl7dm9pZCAwIT09dCYmdGhpcy5hZGRPcChrLFsiT0MiLHRdKSx0aGlzLmFkZE9wKEEsZSksdm9pZCAwIT09dCYmdGhpcy5hZGRPcChGLFtdKX1hZGREZXBlbmRlbmN5KEEpe3RoaXMuZGVwZW5kZW5jaWVzLmhhcyhBKXx8KHRoaXMuZGVwZW5kZW5jaWVzLmFkZChBKSx0aGlzLmFkZE9wKDEsW0FdKSl9YWRkRGVwZW5kZW5jaWVzKEEpe2Zvcihjb25zdCBlIG9mIEEpdGhpcy5hZGREZXBlbmRlbmN5KGUpfWFkZE9wTGlzdChBKXtpZihBIGluc3RhbmNlb2YgYWcpe2Zvcihjb25zdCBlIG9mIEEuZGVwZW5kZW5jaWVzKXRoaXMuZGVwZW5kZW5jaWVzLmFkZChlKTtmb3IobGV0IGU9MCx0PUEubGVuZ3RoO2U8dDtlKyspdGhpcy5hZGRPcChBLmZuQXJyYXlbZV0sQS5hcmdzQXJyYXlbZV0pfWVsc2UgVSgnYWRkT3BMaXN0IC0gaWdub3JpbmcgaW52YWxpZCAib3BMaXN0IiBwYXJhbWV0ZXIuJyl9Z2V0SVIoKXtyZXR1cm57Zm5BcnJheTp0aGlzLmZuQXJyYXksYXJnc0FycmF5OnRoaXMuYXJnc0FycmF5LGxlbmd0aDp0aGlzLmxlbmd0aH19Z2V0IF90cmFuc2ZlcnMoKXtjb25zdCBBPVtdLHtmbkFycmF5OmUsYXJnc0FycmF5OnQsbGVuZ3RoOml9PXRoaXM7Zm9yKGxldCBhPTA7YTxpO2ErKylzd2l0Y2goZVthXSl7Y2FzZSA4NjpjYXNlIDg3OmNhc2UgUzpjb25zdCBlPXRbYV1bMF07IWUuY2FjaGVkJiZlLmRhdGE/LmJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyJiZBLnB1c2goZS5kYXRhLmJ1ZmZlcil9cmV0dXJuIEF9Zmx1c2goQT0hMSxlPW51bGwpe3RoaXMub3B0aW1pemVyLmZsdXNoKCk7Y29uc3QgdD10aGlzLmxlbmd0aDt0aGlzLl90b3RhbExlbmd0aCs9dCx0aGlzLl9zdHJlYW1TaW5rLmVucXVldWUoe2ZuQXJyYXk6dGhpcy5mbkFycmF5LGFyZ3NBcnJheTp0aGlzLmFyZ3NBcnJheSxsYXN0Q2h1bms6QSxzZXBhcmF0ZUFubm90czplLGxlbmd0aDp0fSwxLHRoaXMuX3RyYW5zZmVycyksdGhpcy5kZXBlbmRlbmNpZXMuY2xlYXIoKSx0aGlzLmZuQXJyYXkubGVuZ3RoPTAsdGhpcy5hcmdzQXJyYXkubGVuZ3RoPTAsdGhpcy53ZWlnaHQ9MCx0aGlzLm9wdGltaXplci5yZXNldCgpfX1mdW5jdGlvbiBzZyhBLGUsdCxpKXtyZXR1cm4oQT1lK0EqdCk8MD9BPTA6QT5pJiYoQT1pKSxBfWZ1bmN0aW9uIG5nKEEsZSx0LGksYSxzKXtjb25zdCBuPWEqcztsZXQgcjtyPWU8PTg/bmV3IFVpbnQ4QXJyYXkobik6ZTw9MTY/bmV3IFVpbnQxNkFycmF5KG4pOm5ldyBVaW50MzJBcnJheShuKTtjb25zdCBnPXQvYSxvPWkvcztsZXQgSSxjLGgsQyxCPTA7Y29uc3QgbD1uZXcgVWludDE2QXJyYXkoYSksUT10O2ZvcihJPTA7STxhO0krKylsW0ldPU1hdGguZmxvb3IoSSpnKTtmb3IoST0wO0k8cztJKyspZm9yKGg9TWF0aC5mbG9vcihJKm8pKlEsYz0wO2M8YTtjKyspQz1oK2xbY10scltCKytdPUFbQ107cmV0dXJuIHJ9Y2xhc3Mgcmd7Y29uc3RydWN0b3Ioe3hyZWY6QSxyZXM6ZSxpbWFnZTp0LGlzSW5saW5lOmk9ITEsc21hc2s6YT1udWxsLG1hc2s6cz1udWxsLGlzTWFzazpuPSExLHBkZkZ1bmN0aW9uRmFjdG9yeTpyLGxvY2FsQ29sb3JTcGFjZUNhY2hlOmd9KXt0aGlzLmltYWdlPXQ7Y29uc3Qgbz10LmRpY3QsST1vLmdldCgiRiIsIkZpbHRlciIpO2xldCBjO2lmKEkgaW5zdGFuY2VvZiBDQSljPUkubmFtZTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoSSkpe2NvbnN0IGU9QS5mZXRjaElmUmVmKElbMF0pO2UgaW5zdGFuY2VvZiBDQSYmKGM9ZS5uYW1lKX1zd2l0Y2goYyl7Y2FzZSJKUFhEZWNvZGUiOih7d2lkdGg6dC53aWR0aCxoZWlnaHQ6dC5oZWlnaHQsY29tcG9uZW50c0NvdW50OnQubnVtQ29tcHMsYml0c1BlckNvbXBvbmVudDp0LmJpdHNQZXJDb21wb25lbnR9PWlpLnBhcnNlSW1hZ2VQcm9wZXJ0aWVzKHQuc3RyZWFtKSksdC5zdHJlYW0ucmVzZXQoKSx0aGlzLmpweERlY29kZXJPcHRpb25zPXtudW1Db21wb25lbnRzOjAsaXNJbmRleGVkQ29sb3JtYXA6ITEsc21hc2tJbkRhdGE6by5oYXMoIlNNYXNrSW5EYXRhIil9O2JyZWFrO2Nhc2UiSkJJRzJEZWNvZGUiOnQuYml0c1BlckNvbXBvbmVudD0xLHQubnVtQ29tcHM9MX1sZXQgaD1vLmdldCgiVyIsIldpZHRoIiksQz1vLmdldCgiSCIsIkhlaWdodCIpO2lmKE51bWJlci5pc0ludGVnZXIodC53aWR0aCkmJnQud2lkdGg+MCYmTnVtYmVyLmlzSW50ZWdlcih0LmhlaWdodCkmJnQuaGVpZ2h0PjAmJih0LndpZHRoIT09aHx8dC5oZWlnaHQhPT1DKSYmKFUoIlBERkltYWdlIC0gdXNpbmcgdGhlIFdpZHRoL0hlaWdodCBvZiB0aGUgaW1hZ2UgZGF0YSwgcmF0aGVyIHRoYW4gdGhlIGltYWdlIGRpY3Rpb25hcnkuIiksaD10LndpZHRoLEM9dC5oZWlnaHQpLGg8MXx8QzwxKXRocm93IG5ldyBXKGBJbnZhbGlkIGltYWdlIHdpZHRoOiAke2h9IG9yIGhlaWdodDogJHtDfWApO3RoaXMud2lkdGg9aCx0aGlzLmhlaWdodD1DLHRoaXMuaW50ZXJwb2xhdGU9by5nZXQoIkkiLCJJbnRlcnBvbGF0ZSIpLHRoaXMuaW1hZ2VNYXNrPW8uZ2V0KCJJTSIsIkltYWdlTWFzayIpfHwhMSx0aGlzLm1hdHRlPW8uZ2V0KCJNYXR0ZSIpfHwhMTtsZXQgQj10LmJpdHNQZXJDb21wb25lbnQ7aWYoIUImJihCPW8uZ2V0KCJCUEMiLCJCaXRzUGVyQ29tcG9uZW50IiksIUIpKXtpZighdGhpcy5pbWFnZU1hc2spdGhyb3cgbmV3IFcoYEJpdHMgcGVyIGNvbXBvbmVudCBtaXNzaW5nIGluIGltYWdlOiAke3RoaXMuaW1hZ2VNYXNrfWApO0I9MX1pZih0aGlzLmJwYz1CLCF0aGlzLmltYWdlTWFzayl7bGV0IGE9by5nZXRSYXcoIkNTIil8fG8uZ2V0UmF3KCJDb2xvclNwYWNlIik7Y29uc3Qgcz0hIWE7aWYocyl0aGlzLmpweERlY29kZXJPcHRpb25zPy5zbWFza0luRGF0YSYmKGE9Q0EuZ2V0KCJEZXZpY2VSR0JBIikpO2Vsc2UgaWYodGhpcy5qcHhEZWNvZGVyT3B0aW9ucylhPUNBLmdldCgiRGV2aWNlUkdCQSIpO2Vsc2Ugc3dpdGNoKHQubnVtQ29tcHMpe2Nhc2UgMTphPUNBLmdldCgiRGV2aWNlR3JheSIpO2JyZWFrO2Nhc2UgMzphPUNBLmdldCgiRGV2aWNlUkdCIik7YnJlYWs7Y2FzZSA0OmE9Q0EuZ2V0KCJEZXZpY2VDTVlLIik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYEltYWdlcyB3aXRoICR7dC5udW1Db21wc30gY29sb3IgY29tcG9uZW50cyBub3Qgc3VwcG9ydGVkLmApfXRoaXMuY29sb3JTcGFjZT1DZS5wYXJzZSh7Y3M6YSx4cmVmOkEscmVzb3VyY2VzOmk/ZTpudWxsLHBkZkZ1bmN0aW9uRmFjdG9yeTpyLGxvY2FsQ29sb3JTcGFjZUNhY2hlOmd9KSx0aGlzLm51bUNvbXBzPXRoaXMuY29sb3JTcGFjZS5udW1Db21wcyx0aGlzLmpweERlY29kZXJPcHRpb25zJiYodGhpcy5qcHhEZWNvZGVyT3B0aW9ucy5udW1Db21wb25lbnRzPXM/dGhpcy5udW1Db21wOjAsdGhpcy5qcHhEZWNvZGVyT3B0aW9ucy5pc0luZGV4ZWRDb2xvcm1hcD0iSW5kZXhlZCI9PT10aGlzLmNvbG9yU3BhY2UubmFtZSl9aWYodGhpcy5kZWNvZGU9by5nZXRBcnJheSgiRCIsIkRlY29kZSIpLHRoaXMubmVlZHNEZWNvZGU9ITEsdGhpcy5kZWNvZGUmJih0aGlzLmNvbG9yU3BhY2UmJiF0aGlzLmNvbG9yU3BhY2UuaXNEZWZhdWx0RGVjb2RlKHRoaXMuZGVjb2RlLEIpfHxuJiYhQ2UuaXNEZWZhdWx0RGVjb2RlKHRoaXMuZGVjb2RlLDEpKSl7dGhpcy5uZWVkc0RlY29kZT0hMDtjb25zdCBBPSgxPDxCKS0xO3RoaXMuZGVjb2RlQ29lZmZpY2llbnRzPVtdLHRoaXMuZGVjb2RlQWRkZW5kcz1bXTtjb25zdCBlPSJJbmRleGVkIj09PXRoaXMuY29sb3JTcGFjZT8ubmFtZTtmb3IobGV0IHQ9MCxpPTA7dDx0aGlzLmRlY29kZS5sZW5ndGg7dCs9MiwrK2kpe2NvbnN0IGE9dGhpcy5kZWNvZGVbdF0scz10aGlzLmRlY29kZVt0KzFdO3RoaXMuZGVjb2RlQ29lZmZpY2llbnRzW2ldPWU/KHMtYSkvQTpzLWEsdGhpcy5kZWNvZGVBZGRlbmRzW2ldPWU/YTpBKmF9fWE/dGhpcy5zbWFzaz1uZXcgcmcoe3hyZWY6QSxyZXM6ZSxpbWFnZTphLGlzSW5saW5lOmkscGRmRnVuY3Rpb25GYWN0b3J5OnIsbG9jYWxDb2xvclNwYWNlQ2FjaGU6Z30pOnMmJihzIGluc3RhbmNlb2Ygd0E/cy5kaWN0LmdldCgiSU0iLCJJbWFnZU1hc2siKT90aGlzLm1hc2s9bmV3IHJnKHt4cmVmOkEscmVzOmUsaW1hZ2U6cyxpc0lubGluZTppLGlzTWFzazohMCxwZGZGdW5jdGlvbkZhY3Rvcnk6cixsb2NhbENvbG9yU3BhY2VDYWNoZTpnfSk6VSgiSWdub3JpbmcgL01hc2sgaW4gaW1hZ2Ugd2l0aG91dCAvSW1hZ2VNYXNrLiIpOnRoaXMubWFzaz1zKX1zdGF0aWMgYXN5bmMgYnVpbGRJbWFnZSh7eHJlZjpBLHJlczplLGltYWdlOnQsaXNJbmxpbmU6aT0hMSxwZGZGdW5jdGlvbkZhY3Rvcnk6YSxsb2NhbENvbG9yU3BhY2VDYWNoZTpzfSl7Y29uc3Qgbj10O2xldCByPW51bGwsZz1udWxsO2NvbnN0IG89dC5kaWN0LmdldCgiU01hc2siKSxJPXQuZGljdC5nZXQoIk1hc2siKTtyZXR1cm4gbz9vIGluc3RhbmNlb2Ygd0E/cj1vOlUoIlVuc3VwcG9ydGVkIC9TTWFzayBmb3JtYXQuIik6SSYmKEkgaW5zdGFuY2VvZiB3QXx8QXJyYXkuaXNBcnJheShJKT9nPUk6VSgiVW5zdXBwb3J0ZWQgL01hc2sgZm9ybWF0LiIpKSxuZXcgcmcoe3hyZWY6QSxyZXM6ZSxpbWFnZTpuLGlzSW5saW5lOmksc21hc2s6cixtYXNrOmcscGRmRnVuY3Rpb25GYWN0b3J5OmEsbG9jYWxDb2xvclNwYWNlQ2FjaGU6c30pfXN0YXRpYyBjcmVhdGVSYXdNYXNrKHtpbWdBcnJheTpBLHdpZHRoOmUsaGVpZ2h0OnQsaW1hZ2VJc0Zyb21EZWNvZGVTdHJlYW06aSxpbnZlcnNlRGVjb2RlOmEsaW50ZXJwb2xhdGU6c30pe2NvbnN0IG49KGUrNz4+MykqdCxyPUEuYnl0ZUxlbmd0aDtsZXQgZyxvO2lmKCFpfHxhJiZuIT09cj9hPyhnPW5ldyBVaW50OEFycmF5KG4pLGcuc2V0KEEpLGcuZmlsbCgyNTUscikpOmc9bmV3IFVpbnQ4QXJyYXkoQSk6Zz1BLGEpZm9yKG89MDtvPHI7bysrKWdbb11ePTI1NTtyZXR1cm57ZGF0YTpnLHdpZHRoOmUsaGVpZ2h0OnQsaW50ZXJwb2xhdGU6c319c3RhdGljIGFzeW5jIGNyZWF0ZU1hc2soe2ltZ0FycmF5OkEsd2lkdGg6ZSxoZWlnaHQ6dCxpbWFnZUlzRnJvbURlY29kZVN0cmVhbTppLGludmVyc2VEZWNvZGU6YSxpbnRlcnBvbGF0ZTpzLGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkOm49ITF9KXtjb25zdCByPTE9PT1lJiYxPT09dCYmYT09PSgwPT09QS5sZW5ndGh8fCEhKDEyOCZBWzBdKSk7aWYocilyZXR1cm57aXNTaW5nbGVPcGFxdWVQaXhlbDpyfTtpZihuKXtpZihYci5uZWVkc1RvQmVSZXNpemVkKGUsdCkpe2NvbnN0IGk9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGUqdCo0KTtyZXR1cm4gTnQoe3NyYzpBLGRlc3Q6aSx3aWR0aDplLGhlaWdodDp0LG5vbkJsYWNrQ29sb3I6MCxpbnZlcnNlRGVjb2RlOmF9KSxYci5jcmVhdGVJbWFnZSh7a2luZDozLGRhdGE6aSx3aWR0aDplLGhlaWdodDp0LGludGVycG9sYXRlOnN9KX1jb25zdCBpPW5ldyBPZmZzY3JlZW5DYW52YXMoZSx0KSxuPWkuZ2V0Q29udGV4dCgiMmQiKSxyPW4uY3JlYXRlSW1hZ2VEYXRhKGUsdCk7cmV0dXJuIE50KHtzcmM6QSxkZXN0OnIuZGF0YSx3aWR0aDplLGhlaWdodDp0LG5vbkJsYWNrQ29sb3I6MCxpbnZlcnNlRGVjb2RlOmF9KSxuLnB1dEltYWdlRGF0YShyLDAsMCkse2RhdGE6bnVsbCx3aWR0aDplLGhlaWdodDp0LGludGVycG9sYXRlOnMsYml0bWFwOmkudHJhbnNmZXJUb0ltYWdlQml0bWFwKCl9fXJldHVybiB0aGlzLmNyZWF0ZVJhd01hc2soe2ltZ0FycmF5OkEsd2lkdGg6ZSxoZWlnaHQ6dCxpbnZlcnNlRGVjb2RlOmEsaW1hZ2VJc0Zyb21EZWNvZGVTdHJlYW06aSxpbnRlcnBvbGF0ZTpzfSl9Z2V0IGRyYXdXaWR0aCgpe3JldHVybiBNYXRoLm1heCh0aGlzLndpZHRoLHRoaXMuc21hc2s/LndpZHRofHwwLHRoaXMubWFzaz8ud2lkdGh8fDApfWdldCBkcmF3SGVpZ2h0KCl7cmV0dXJuIE1hdGgubWF4KHRoaXMuaGVpZ2h0LHRoaXMuc21hc2s/LmhlaWdodHx8MCx0aGlzLm1hc2s/LmhlaWdodHx8MCl9ZGVjb2RlQnVmZmVyKEEpe2NvbnN0IGU9dGhpcy5icGMsdD10aGlzLm51bUNvbXBzLGk9dGhpcy5kZWNvZGVBZGRlbmRzLGE9dGhpcy5kZWNvZGVDb2VmZmljaWVudHMscz0oMTw8ZSktMTtsZXQgbixyO2lmKDE9PT1lKXtmb3Iobj0wLHI9QS5sZW5ndGg7bjxyO24rKylBW25dPSshQVtuXTtyZXR1cm59bGV0IGc9MDtmb3Iobj0wLHI9dGhpcy53aWR0aCp0aGlzLmhlaWdodDtuPHI7bisrKWZvcihsZXQgZT0wO2U8dDtlKyspQVtnXT1zZyhBW2ddLGlbZV0sYVtlXSxzKSxnKyt9Z2V0Q29tcG9uZW50cyhBKXtjb25zdCBlPXRoaXMuYnBjO2lmKDg9PT1lKXJldHVybiBBO2NvbnN0IHQ9dGhpcy53aWR0aCxpPXRoaXMuaGVpZ2h0LGE9dGhpcy5udW1Db21wcyxzPXQqaSphO2xldCBuLHI9MDtuPWU8PTg/bmV3IFVpbnQ4QXJyYXkocyk6ZTw9MTY/bmV3IFVpbnQxNkFycmF5KHMpOm5ldyBVaW50MzJBcnJheShzKTtjb25zdCBnPXQqYSxvPSgxPDxlKS0xO2xldCBJLGMsaD0wO2lmKDE9PT1lKXtsZXQgZSx0LGE7Zm9yKGxldCBzPTA7czxpO3MrKyl7Zm9yKHQ9aCsoLTgmZyksYT1oK2c7aDx0OyljPUFbcisrXSxuW2hdPWM+PjcmMSxuW2grMV09Yz4+NiYxLG5baCsyXT1jPj41JjEsbltoKzNdPWM+PjQmMSxuW2grNF09Yz4+MyYxLG5baCs1XT1jPj4yJjEsbltoKzZdPWM+PjEmMSxuW2grN109MSZjLGgrPTg7aWYoaDxhKWZvcihjPUFbcisrXSxlPTEyODtoPGE7KW5baCsrXT0rISEoYyZlKSxlPj49MX19ZWxzZXtsZXQgdD0wO2ZvcihjPTAsaD0wLEk9cztoPEk7KytoKXtmb3IoaCVnPT0wJiYoYz0wLHQ9MCk7dDxlOyljPWM8PDh8QVtyKytdLHQrPTg7Y29uc3QgaT10LWU7bGV0IGE9Yz4+aTthPDA/YT0wOmE+byYmKGE9byksbltoXT1hLGMmPSgxPDxpKS0xLHQ9aX19cmV0dXJuIG59YXN5bmMgZmlsbE9wYWNpdHkoQSxlLHQsaSxhKXtjb25zdCBzPXRoaXMuc21hc2ssbj10aGlzLm1hc2s7bGV0IHIsZyxvLEksYyxoO2lmKHMpZz1zLndpZHRoLG89cy5oZWlnaHQscj1uZXcgVWludDhDbGFtcGVkQXJyYXkoZypvKSxhd2FpdCBzLmZpbGxHcmF5QnVmZmVyKHIpLGc9PT1lJiZvPT09dHx8KHI9bmcocixzLmJwYyxnLG8sZSx0KSk7ZWxzZSBpZihuKWlmKG4gaW5zdGFuY2VvZiByZyl7Zm9yKGc9bi53aWR0aCxvPW4uaGVpZ2h0LHI9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGcqbyksbi5udW1Db21wcz0xLGF3YWl0IG4uZmlsbEdyYXlCdWZmZXIociksST0wLGM9ZypvO0k8YzsrK0kpcltJXT0yNTUtcltJXTtnPT09ZSYmbz09PXR8fChyPW5nKHIsbi5icGMsZyxvLGUsdCkpfWVsc2V7aWYoIUFycmF5LmlzQXJyYXkobikpdGhyb3cgbmV3IFcoIlVua25vd24gbWFzayBmb3JtYXQuIik7e3I9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGUqdCk7Y29uc3QgQT10aGlzLm51bUNvbXBzO2ZvcihJPTAsYz1lKnQ7STxjOysrSSl7bGV0IGU9MDtjb25zdCB0PUkqQTtmb3IoaD0wO2g8QTsrK2gpe2NvbnN0IEE9YVt0K2hdLGk9MipoO2lmKEE8bltpXXx8QT5uW2krMV0pe2U9MjU1O2JyZWFrfX1yW0ldPWV9fX1pZihyKWZvcihJPTAsaD0zLGM9ZSppO0k8YzsrK0ksaCs9NClBW2hdPXJbSV07ZWxzZSBmb3IoST0wLGg9MyxjPWUqaTtJPGM7KytJLGgrPTQpQVtoXT0yNTV9dW5kb1ByZWJsZW5kKEEsZSx0KXtjb25zdCBpPXRoaXMuc21hc2s/Lm1hdHRlO2lmKCFpKXJldHVybjtjb25zdCBhPXRoaXMuY29sb3JTcGFjZS5nZXRSZ2IoaSwwKSxzPWFbMF0sbj1hWzFdLHI9YVsyXSxnPWUqdCo0O2ZvcihsZXQgZT0wO2U8ZztlKz00KXtjb25zdCB0PUFbZSszXTtpZigwPT09dCl7QVtlXT0yNTUsQVtlKzFdPTI1NSxBW2UrMl09MjU1O2NvbnRpbnVlfWNvbnN0IGk9MjU1L3Q7QVtlXT0oQVtlXS1zKSppK3MsQVtlKzFdPShBW2UrMV0tbikqaStuLEFbZSsyXT0oQVtlKzJdLXIpKmkrcn19YXN5bmMgY3JlYXRlSW1hZ2VEYXRhKEE9ITEsZT0hMSl7Y29uc3QgdD10aGlzLmRyYXdXaWR0aCxpPXRoaXMuZHJhd0hlaWdodCxhPXt3aWR0aDp0LGhlaWdodDppLGludGVycG9sYXRlOnRoaXMuaW50ZXJwb2xhdGUsa2luZDowLGRhdGE6bnVsbH0scz10aGlzLm51bUNvbXBzLG49dGhpcy53aWR0aCxyPXRoaXMuaGVpZ2h0LGc9dGhpcy5icGMsbz1uKnMqZys3Pj4zLEk9ZSYmWHIubmVlZHNUb0JlUmVzaXplZCh0LGkpO2lmKCJEZXZpY2VSR0JBIj09PXRoaXMuY29sb3JTcGFjZS5uYW1lKXthLmtpbmQ9Mztjb25zdCBBPWEuZGF0YT1hd2FpdCB0aGlzLmdldEltYWdlQnl0ZXMocipuKjQse30pO3JldHVybiBlP0k/WHIuY3JlYXRlSW1hZ2UoYSwhMSk6dGhpcy5jcmVhdGVCaXRtYXAoMyx0LGksQSk6YX1pZighQSl7bGV0IEE7aWYoIkRldmljZUdyYXkiPT09dGhpcy5jb2xvclNwYWNlLm5hbWUmJjE9PT1nP0E9MToiRGV2aWNlUkdCIiE9PXRoaXMuY29sb3JTcGFjZS5uYW1lfHw4IT09Z3x8dGhpcy5uZWVkc0RlY29kZXx8KEE9MiksQSYmIXRoaXMuc21hc2smJiF0aGlzLm1hc2smJnQ9PT1uJiZpPT09cil7Y29uc3Qgcz1hd2FpdCB0aGlzLmdldEltYWdlQnl0ZXMocipvLHt9KTtpZihlKXJldHVybiBJP1hyLmNyZWF0ZUltYWdlKHtkYXRhOnMsa2luZDpBLHdpZHRoOnQsaGVpZ2h0OmksaW50ZXJwb2xhdGU6dGhpcy5pbnRlcnBvbGF0ZX0sdGhpcy5uZWVkc0RlY29kZSk6dGhpcy5jcmVhdGVCaXRtYXAoQSxuLHIscyk7aWYoYS5raW5kPUEsYS5kYXRhPXMsdGhpcy5uZWVkc0RlY29kZSl7TCgxPT09QSwiUERGSW1hZ2UuY3JlYXRlSW1hZ2VEYXRhOiBUaGUgaW1hZ2UgbXVzdCBiZSBncmF5c2NhbGUuIik7Y29uc3QgZT1hLmRhdGE7Zm9yKGxldCBBPTAsdD1lLmxlbmd0aDtBPHQ7QSsrKWVbQV1ePTI1NX1yZXR1cm4gYX1pZih0aGlzLmltYWdlIGluc3RhbmNlb2YgenQmJiF0aGlzLnNtYXNrJiYhdGhpcy5tYXNrJiYhdGhpcy5uZWVkc0RlY29kZSl7bGV0IEE9cipvO2lmKGUmJiFJKXtsZXQgZT0hMTtzd2l0Y2godGhpcy5jb2xvclNwYWNlLm5hbWUpe2Nhc2UiRGV2aWNlR3JheSI6QSo9NCxlPSEwO2JyZWFrO2Nhc2UiRGV2aWNlUkdCIjpBPUEvMyo0LGU9ITA7YnJlYWs7Y2FzZSJEZXZpY2VDTVlLIjplPSEwfWlmKGUpe2NvbnN0IGU9YXdhaXQgdGhpcy5nZXRJbWFnZUJ5dGVzKEEse2RyYXdXaWR0aDp0LGRyYXdIZWlnaHQ6aSxmb3JjZVJHQkE6ITB9KTtyZXR1cm4gdGhpcy5jcmVhdGVCaXRtYXAoMyx0LGksZSl9fWVsc2Ugc3dpdGNoKHRoaXMuY29sb3JTcGFjZS5uYW1lKXtjYXNlIkRldmljZUdyYXkiOkEqPTM7Y2FzZSJEZXZpY2VSR0IiOmNhc2UiRGV2aWNlQ01ZSyI6cmV0dXJuIGEua2luZD0yLGEuZGF0YT1hd2FpdCB0aGlzLmdldEltYWdlQnl0ZXMoQSx7ZHJhd1dpZHRoOnQsZHJhd0hlaWdodDppLGZvcmNlUkdCOiEwfSksST9Yci5jcmVhdGVJbWFnZShhKTphfX19Y29uc3QgYz1hd2FpdCB0aGlzLmdldEltYWdlQnl0ZXMocipvLHtpbnRlcm5hbDohMH0pLGg9MHxjLmxlbmd0aC9vKmkvcixDPXRoaXMuZ2V0Q29tcG9uZW50cyhjKTtsZXQgQixsLFEsRSx1LGQ7cmV0dXJuIGUmJiFJJiYoUT1uZXcgT2Zmc2NyZWVuQ2FudmFzKHQsaSksRT1RLmdldENvbnRleHQoIjJkIiksdT1FLmNyZWF0ZUltYWdlRGF0YSh0LGkpLGQ9dS5kYXRhKSxhLmtpbmQ9MyxBfHx0aGlzLnNtYXNrfHx0aGlzLm1hc2s/KGUmJiFJfHwoZD1uZXcgVWludDhDbGFtcGVkQXJyYXkodCppKjQpKSxCPTEsbD0hMCxhd2FpdCB0aGlzLmZpbGxPcGFjaXR5KGQsdCxpLGgsQykpOighZXx8ST8oYS5raW5kPTIsZD1uZXcgVWludDhDbGFtcGVkQXJyYXkodCppKjMpLEI9MCk6KG5ldyBVaW50MzJBcnJheShkLmJ1ZmZlcikuZmlsbChfLmlzTGl0dGxlRW5kaWFuPzQyNzgxOTAwODA6MjU1KSxCPTEpLGw9ITEpLHRoaXMubmVlZHNEZWNvZGUmJnRoaXMuZGVjb2RlQnVmZmVyKEMpLHRoaXMuY29sb3JTcGFjZS5maWxsUmdiKGQsbixyLHQsaSxoLGcsQyxCKSxsJiZ0aGlzLnVuZG9QcmVibGVuZChkLHQsaCksZSYmIUk/KEUucHV0SW1hZ2VEYXRhKHUsMCwwKSx7ZGF0YTpudWxsLHdpZHRoOnQsaGVpZ2h0OmksYml0bWFwOlEudHJhbnNmZXJUb0ltYWdlQml0bWFwKCksaW50ZXJwb2xhdGU6dGhpcy5pbnRlcnBvbGF0ZX0pOihhLmRhdGE9ZCxJP1hyLmNyZWF0ZUltYWdlKGEpOmEpfWFzeW5jIGZpbGxHcmF5QnVmZmVyKEEpe2NvbnN0IGU9dGhpcy5udW1Db21wcztpZigxIT09ZSl0aHJvdyBuZXcgVyhgUmVhZGluZyBncmF5IHNjYWxlIGZyb20gYSBjb2xvciBpbWFnZTogJHtlfWApO2NvbnN0IHQ9dGhpcy53aWR0aCxpPXRoaXMuaGVpZ2h0LGE9dGhpcy5icGMscz10KmUqYSs3Pj4zLG49YXdhaXQgdGhpcy5nZXRJbWFnZUJ5dGVzKGkqcyx7aW50ZXJuYWw6ITB9KSxyPXRoaXMuZ2V0Q29tcG9uZW50cyhuKTtsZXQgZyxvO2lmKDE9PT1hKXtpZihvPXQqaSx0aGlzLm5lZWRzRGVjb2RlKWZvcihnPTA7ZzxvOysrZylBW2ddPXJbZ10tMSYyNTU7ZWxzZSBmb3IoZz0wO2c8bzsrK2cpQVtnXT0yNTUmLXJbZ107cmV0dXJufXRoaXMubmVlZHNEZWNvZGUmJnRoaXMuZGVjb2RlQnVmZmVyKHIpLG89dCppO2NvbnN0IEk9MjU1LygoMTw8YSktMSk7Zm9yKGc9MDtnPG87KytnKUFbZ109SSpyW2ddfWNyZWF0ZUJpdG1hcChBLGUsdCxpKXtjb25zdCBhPW5ldyBPZmZzY3JlZW5DYW52YXMoZSx0KSxzPWEuZ2V0Q29udGV4dCgiMmQiKTtsZXQgbjtyZXR1cm4gMz09PUE/bj1uZXcgSW1hZ2VEYXRhKGksZSx0KToobj1zLmNyZWF0ZUltYWdlRGF0YShlLHQpLGZ1bmN0aW9uKEEpe3N3aXRjaChBLmtpbmQpe2Nhc2UgMTpyZXR1cm4gTnQoQSk7Y2FzZSAyOnJldHVybiBmdW5jdGlvbih7c3JjOkEsc3JjUG9zOmU9MCxkZXN0OnQsZGVzdFBvczppPTAsd2lkdGg6YSxoZWlnaHQ6c30pe2xldCBuPTA7Y29uc3Qgcj1BLmxlbmd0aD4+MixnPW5ldyBVaW50MzJBcnJheShBLmJ1ZmZlcixlLHIpO2lmKF8uaXNMaXR0bGVFbmRpYW4pe2Zvcig7bjxyLTI7bis9MyxpKz00KXtjb25zdCBBPWdbbl0sZT1nW24rMV0sYT1nW24rMl07dFtpXT00Mjc4MTkwMDgwfEEsdFtpKzFdPUE+Pj4yNHxlPDw4fDQyNzgxOTAwODAsdFtpKzJdPWU+Pj4xNnxhPDwxNnw0Mjc4MTkwMDgwLHRbaSszXT1hPj4+OHw0Mjc4MTkwMDgwfWZvcihsZXQgZT00Km4sYT1BLmxlbmd0aDtlPGE7ZSs9Myl0W2krK109QVtlXXxBW2UrMV08PDh8QVtlKzJdPDwxNnw0Mjc4MTkwMDgwfWVsc2V7Zm9yKDtuPHItMjtuKz0zLGkrPTQpe2NvbnN0IEE9Z1tuXSxlPWdbbisxXSxhPWdbbisyXTt0W2ldPTI1NXxBLHRbaSsxXT1BPDwyNHxlPj4+OHwyNTUsdFtpKzJdPWU8PDE2fGE+Pj4xNnwyNTUsdFtpKzNdPWE8PDh8MjU1fWZvcihsZXQgZT00Km4sYT1BLmxlbmd0aDtlPGE7ZSs9Myl0W2krK109QVtlXTw8MjR8QVtlKzFdPDwxNnxBW2UrMl08PDh8MjU1fXJldHVybntzcmNQb3M6ZSxkZXN0UG9zOml9fShBKX19KHtraW5kOkEsc3JjOmksZGVzdDpuZXcgVWludDMyQXJyYXkobi5kYXRhLmJ1ZmZlciksd2lkdGg6ZSxoZWlnaHQ6dCxpbnZlcnNlRGVjb2RlOnRoaXMubmVlZHNEZWNvZGV9KSkscy5wdXRJbWFnZURhdGEobiwwLDApLHtkYXRhOm51bGwsd2lkdGg6ZSxoZWlnaHQ6dCxiaXRtYXA6YS50cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKSxpbnRlcnBvbGF0ZTp0aGlzLmludGVycG9sYXRlfX1hc3luYyBnZXRJbWFnZUJ5dGVzKEEse2RyYXdXaWR0aDplLGRyYXdIZWlnaHQ6dCxmb3JjZVJHQkE6aT0hMSxmb3JjZVJHQjphPSExLGludGVybmFsOnM9ITF9KXt0aGlzLmltYWdlLnJlc2V0KCksdGhpcy5pbWFnZS5kcmF3V2lkdGg9ZXx8dGhpcy53aWR0aCx0aGlzLmltYWdlLmRyYXdIZWlnaHQ9dHx8dGhpcy5oZWlnaHQsdGhpcy5pbWFnZS5mb3JjZVJHQkE9ISFpLHRoaXMuaW1hZ2UuZm9yY2VSR0I9ISFhO2NvbnN0IG49YXdhaXQgdGhpcy5pbWFnZS5nZXRJbWFnZURhdGEoQSx0aGlzLmpweERlY29kZXJPcHRpb25zKTtyZXR1cm4gc3x8dGhpcy5pbWFnZSBpbnN0YW5jZW9mIE5lP246KEwobiBpbnN0YW5jZW9mIFVpbnQ4QXJyYXksJ1BERkltYWdlLmdldEltYWdlQnl0ZXM6IFVuc3VwcG9ydGVkICJpbWFnZUJ5dGVzIiB0eXBlLicpLG5ldyBVaW50OEFycmF5KG4pKX19Y29uc3QgZ2c9T2JqZWN0LmZyZWV6ZSh7bWF4SW1hZ2VTaXplOi0xLGRpc2FibGVGb250RmFjZTohMSxpZ25vcmVFcnJvcnM6ITEsaXNFdmFsU3VwcG9ydGVkOiEwLGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkOiExLGNhbnZhc01heEFyZWFJbkJ5dGVzOi0xLGZvbnRFeHRyYVByb3BlcnRpZXM6ITEsdXNlU3lzdGVtRm9udHM6ITAsY01hcFVybDpudWxsLHN0YW5kYXJkRm9udERhdGFVcmw6bnVsbH0pLG9nPVByb21pc2UucmVzb2x2ZSgpO2Z1bmN0aW9uIElnKEEsZT0hMSl7aWYoQXJyYXkuaXNBcnJheShBKSl7Zm9yKGNvbnN0IGUgb2YgQSl7Y29uc3QgQT1JZyhlLCEwKTtpZihBKXJldHVybiBBfXJldHVybiBVKGBVbnN1cHBvcnRlZCBibGVuZCBtb2RlIEFycmF5OiAke0F9YCksInNvdXJjZS1vdmVyIn1pZighKEEgaW5zdGFuY2VvZiBDQSkpcmV0dXJuIGU/bnVsbDoic291cmNlLW92ZXIiO3N3aXRjaChBLm5hbWUpe2Nhc2UiTm9ybWFsIjpjYXNlIkNvbXBhdGlibGUiOnJldHVybiJzb3VyY2Utb3ZlciI7Y2FzZSJNdWx0aXBseSI6cmV0dXJuIm11bHRpcGx5IjtjYXNlIlNjcmVlbiI6cmV0dXJuInNjcmVlbiI7Y2FzZSJPdmVybGF5IjpyZXR1cm4ib3ZlcmxheSI7Y2FzZSJEYXJrZW4iOnJldHVybiJkYXJrZW4iO2Nhc2UiTGlnaHRlbiI6cmV0dXJuImxpZ2h0ZW4iO2Nhc2UiQ29sb3JEb2RnZSI6cmV0dXJuImNvbG9yLWRvZGdlIjtjYXNlIkNvbG9yQnVybiI6cmV0dXJuImNvbG9yLWJ1cm4iO2Nhc2UiSGFyZExpZ2h0IjpyZXR1cm4iaGFyZC1saWdodCI7Y2FzZSJTb2Z0TGlnaHQiOnJldHVybiJzb2Z0LWxpZ2h0IjtjYXNlIkRpZmZlcmVuY2UiOnJldHVybiJkaWZmZXJlbmNlIjtjYXNlIkV4Y2x1c2lvbiI6cmV0dXJuImV4Y2x1c2lvbiI7Y2FzZSJIdWUiOnJldHVybiJodWUiO2Nhc2UiU2F0dXJhdGlvbiI6cmV0dXJuInNhdHVyYXRpb24iO2Nhc2UiQ29sb3IiOnJldHVybiJjb2xvciI7Y2FzZSJMdW1pbm9zaXR5IjpyZXR1cm4ibHVtaW5vc2l0eSJ9cmV0dXJuIGU/bnVsbDooVShgVW5zdXBwb3J0ZWQgYmxlbmQgbW9kZTogJHtBLm5hbWV9YCksInNvdXJjZS1vdmVyIil9ZnVuY3Rpb24gY2coQSxlKXtlLm9iaklkJiZBLmFkZERlcGVuZGVuY3koZS5vYmpJZCksQS5hZGRJbWFnZU9wcyhlLmZuLGUuYXJncyxlLm9wdGlvbmFsQ29udGVudCksZS5mbj09PVMmJmUuYXJnc1swXT8uY291bnQ+MCYmZS5hcmdzWzBdLmNvdW50Kyt9Y2xhc3MgaGd7c3RhdGljIFRJTUVfU0xPVF9EVVJBVElPTl9NUz0yMDtzdGF0aWMgQ0hFQ0tfVElNRV9FVkVSWT0xMDA7Y29uc3RydWN0b3IoKXt0aGlzLnJlc2V0KCl9Y2hlY2soKXtyZXR1cm4hKCsrdGhpcy5jaGVja2VkPGhnLkNIRUNLX1RJTUVfRVZFUlkpJiYodGhpcy5jaGVja2VkPTAsdGhpcy5lbmRUaW1lPD1EYXRlLm5vdygpKX1yZXNldCgpe3RoaXMuZW5kVGltZT1EYXRlLm5vdygpK2hnLlRJTUVfU0xPVF9EVVJBVElPTl9NUyx0aGlzLmNoZWNrZWQ9MH19Y2xhc3MgQ2d7Y29uc3RydWN0b3Ioe3hyZWY6QSxoYW5kbGVyOmUscGFnZUluZGV4OnQsaWRGYWN0b3J5OmksZm9udENhY2hlOmEsYnVpbHRJbkNNYXBDYWNoZTpzLHN0YW5kYXJkRm9udERhdGFDYWNoZTpuLGdsb2JhbEltYWdlQ2FjaGU6cixzeXN0ZW1Gb250Q2FjaGU6ZyxvcHRpb25zOm89bnVsbH0pe3RoaXMueHJlZj1BLHRoaXMuaGFuZGxlcj1lLHRoaXMucGFnZUluZGV4PXQsdGhpcy5pZEZhY3Rvcnk9aSx0aGlzLmZvbnRDYWNoZT1hLHRoaXMuYnVpbHRJbkNNYXBDYWNoZT1zLHRoaXMuc3RhbmRhcmRGb250RGF0YUNhY2hlPW4sdGhpcy5nbG9iYWxJbWFnZUNhY2hlPXIsdGhpcy5zeXN0ZW1Gb250Q2FjaGU9Zyx0aGlzLm9wdGlvbnM9b3x8Z2csdGhpcy50eXBlM0ZvbnRSZWZzPW51bGwsdGhpcy5fcmVnaW9uYWxJbWFnZUNhY2hlPW5ldyBncix0aGlzLl9mZXRjaEJ1aWx0SW5DTWFwQm91bmQ9dGhpcy5mZXRjaEJ1aWx0SW5DTWFwLmJpbmQodGhpcyksWHIuc2V0TWF4QXJlYSh0aGlzLm9wdGlvbnMuY2FudmFzTWF4QXJlYUluQnl0ZXMpfWdldCBfcGRmRnVuY3Rpb25GYWN0b3J5KCl7cmV0dXJuIEgodGhpcywiX3BkZkZ1bmN0aW9uRmFjdG9yeSIsbmV3IElyKHt4cmVmOnRoaXMueHJlZixpc0V2YWxTdXBwb3J0ZWQ6dGhpcy5vcHRpb25zLmlzRXZhbFN1cHBvcnRlZH0pKX1nZXQgcGFyc2luZ1R5cGUzRm9udCgpe3JldHVybiEhdGhpcy50eXBlM0ZvbnRSZWZzfWNsb25lKEE9bnVsbCl7Y29uc3QgZT1PYmplY3QuY3JlYXRlKHRoaXMpO3JldHVybiBlLm9wdGlvbnM9T2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKG51bGwpLHRoaXMub3B0aW9ucyxBKSxlfWhhc0JsZW5kTW9kZXMoQSxlKXtpZighKEEgaW5zdGFuY2VvZiBRQSkpcmV0dXJuITE7aWYoQS5vYmpJZCYmZS5oYXMoQS5vYmpJZCkpcmV0dXJuITE7Y29uc3QgdD1uZXcgdUEoZSk7QS5vYmpJZCYmdC5wdXQoQS5vYmpJZCk7Y29uc3QgaT1bQV0sYT10aGlzLnhyZWY7Zm9yKDtpLmxlbmd0aDspe2NvbnN0IEE9aS5zaGlmdCgpLGU9QS5nZXQoIkV4dEdTdGF0ZSIpO2lmKGUgaW5zdGFuY2VvZiBRQSlmb3IobGV0IEEgb2YgZS5nZXRSYXdWYWx1ZXMoKSl7aWYoQSBpbnN0YW5jZW9mIEVBKXtpZih0LmhhcyhBKSljb250aW51ZTt0cnl7QT1hLmZldGNoKEEpfWNhdGNoKGUpe3QucHV0KEEpLHgoYGhhc0JsZW5kTW9kZXMgLSBpZ25vcmluZyBFeHRHU3RhdGU6ICIke2V9Ii5gKTtjb250aW51ZX19aWYoIShBIGluc3RhbmNlb2YgUUEpKWNvbnRpbnVlO0Eub2JqSWQmJnQucHV0KEEub2JqSWQpO2NvbnN0IGU9QS5nZXQoIkJNIik7aWYoZSBpbnN0YW5jZW9mIENBKXtpZigiTm9ybWFsIiE9PWUubmFtZSlyZXR1cm4hMH1lbHNlIGlmKHZvaWQgMCE9PWUmJkFycmF5LmlzQXJyYXkoZSkpZm9yKGNvbnN0IEEgb2YgZSlpZihBIGluc3RhbmNlb2YgQ0EmJiJOb3JtYWwiIT09QS5uYW1lKXJldHVybiEwfWNvbnN0IHM9QS5nZXQoIlhPYmplY3QiKTtpZihzIGluc3RhbmNlb2YgUUEpZm9yKGxldCBBIG9mIHMuZ2V0UmF3VmFsdWVzKCkpe2lmKEEgaW5zdGFuY2VvZiBFQSl7aWYodC5oYXMoQSkpY29udGludWU7dHJ5e0E9YS5mZXRjaChBKX1jYXRjaChlKXt0LnB1dChBKSx4KGBoYXNCbGVuZE1vZGVzIC0gaWdub3JpbmcgWE9iamVjdDogIiR7ZX0iLmApO2NvbnRpbnVlfX1pZighKEEgaW5zdGFuY2VvZiB3QSkpY29udGludWU7QS5kaWN0Lm9iaklkJiZ0LnB1dChBLmRpY3Qub2JqSWQpO2NvbnN0IGU9QS5kaWN0LmdldCgiUmVzb3VyY2VzIik7ZSBpbnN0YW5jZW9mIFFBJiYoZS5vYmpJZCYmdC5oYXMoZS5vYmpJZCl8fChpLnB1c2goZSksZS5vYmpJZCYmdC5wdXQoZS5vYmpJZCkpKX19Zm9yKGNvbnN0IEEgb2YgdCllLnB1dChBKTtyZXR1cm4hMX1hc3luYyBmZXRjaEJ1aWx0SW5DTWFwKEEpe2NvbnN0IGU9dGhpcy5idWlsdEluQ01hcENhY2hlLmdldChBKTtpZihlKXJldHVybiBlO2xldCB0O2lmKG51bGwhPT10aGlzLm9wdGlvbnMuY01hcFVybCl7Y29uc3QgZT1gJHt0aGlzLm9wdGlvbnMuY01hcFVybH0ke0F9LmJjbWFwYCxpPWF3YWl0IGZldGNoKGUpO2lmKCFpLm9rKXRocm93IG5ldyBFcnJvcihgZmV0Y2hCdWlsdEluQ01hcDogZmFpbGVkIHRvIGZldGNoIGZpbGUgIiR7ZX0iIHdpdGggIiR7aS5zdGF0dXNUZXh0fSIuYCk7dD17Y01hcERhdGE6bmV3IFVpbnQ4QXJyYXkoYXdhaXQgaS5hcnJheUJ1ZmZlcigpKSxjb21wcmVzc2lvblR5cGU6ZC5CSU5BUll9fWVsc2UgdD1hd2FpdCB0aGlzLmhhbmRsZXIuc2VuZFdpdGhQcm9taXNlKCJGZXRjaEJ1aWx0SW5DTWFwIix7bmFtZTpBfSk7cmV0dXJuIHQuY29tcHJlc3Npb25UeXBlIT09ZC5OT05FJiZ0aGlzLmJ1aWx0SW5DTWFwQ2FjaGUuc2V0KEEsdCksdH1hc3luYyBmZXRjaFN0YW5kYXJkRm9udERhdGEoQSl7Y29uc3QgZT10aGlzLnN0YW5kYXJkRm9udERhdGFDYWNoZS5nZXQoQSk7aWYoZSlyZXR1cm4gbmV3IGdlKGUpO2lmKHRoaXMub3B0aW9ucy51c2VTeXN0ZW1Gb250cyYmIlN5bWJvbCIhPT1BJiYiWmFwZkRpbmdiYXRzIiE9PUEpcmV0dXJuIG51bGw7Y29uc3QgdD1tYSgpW0FdO2xldCBpO2lmKG51bGwhPT10aGlzLm9wdGlvbnMuc3RhbmRhcmRGb250RGF0YVVybCl7Y29uc3QgQT1gJHt0aGlzLm9wdGlvbnMuc3RhbmRhcmRGb250RGF0YVVybH0ke3R9YCxlPWF3YWl0IGZldGNoKEEpO2Uub2s/aT1uZXcgVWludDhBcnJheShhd2FpdCBlLmFycmF5QnVmZmVyKCkpOlUoYGZldGNoU3RhbmRhcmRGb250RGF0YTogZmFpbGVkIHRvIGZldGNoIGZpbGUgIiR7QX0iIHdpdGggIiR7ZS5zdGF0dXNUZXh0fSIuYCl9ZWxzZSB0cnl7aT1hd2FpdCB0aGlzLmhhbmRsZXIuc2VuZFdpdGhQcm9taXNlKCJGZXRjaFN0YW5kYXJkRm9udERhdGEiLHtmaWxlbmFtZTp0fSl9Y2F0Y2goQSl7VShgZmV0Y2hTdGFuZGFyZEZvbnREYXRhOiBmYWlsZWQgdG8gZmV0Y2ggZmlsZSAiJHt0fSIgd2l0aCAiJHtBfSIuYCl9cmV0dXJuIGk/KHRoaXMuc3RhbmRhcmRGb250RGF0YUNhY2hlLnNldChBLGkpLG5ldyBnZShpKSk6bnVsbH1hc3luYyBidWlsZEZvcm1YT2JqZWN0KEEsZSx0LGksYSxzLG4pe2NvbnN0IHI9ZS5kaWN0LGc9S0Eoci5nZXRBcnJheSgiTWF0cml4IiksbnVsbCksbz1UQShyLmdldEFycmF5KCJCQm94IiksbnVsbCk7bGV0IEksYztyLmhhcygiT0MiKSYmKEk9YXdhaXQgdGhpcy5wYXJzZU1hcmtlZENvbnRlbnRQcm9wcyhyLmdldCgiT0MiKSxBKSksdm9pZCAwIT09SSYmaS5hZGRPcChrLFsiT0MiLEldKTtjb25zdCBoPXIuZ2V0KCJHcm91cCIpO2lmKGgpe2M9e21hdHJpeDpnLGJib3g6byxzbWFzazp0LGlzb2xhdGVkOiExLGtub2Nrb3V0OiExfTtsZXQgZT1udWxsO2lmKGZBKGguZ2V0KCJTIiksIlRyYW5zcGFyZW5jeSIpJiYoYy5pc29sYXRlZD1oLmdldCgiSSIpfHwhMSxjLmtub2Nrb3V0PWguZ2V0KCJLIil8fCExLGguaGFzKCJDUyIpKSl7Y29uc3QgdD1oLmdldFJhdygiQ1MiKTtlPUNlLmdldENhY2hlZCh0LHRoaXMueHJlZixuKXx8YXdhaXQgdGhpcy5wYXJzZUNvbG9yU3BhY2Uoe2NzOnQscmVzb3VyY2VzOkEsbG9jYWxDb2xvclNwYWNlQ2FjaGU6bn0pfXQ/LmJhY2tkcm9wJiYoZXx8PUNlLnNpbmdsZXRvbnMucmdiLHQuYmFja2Ryb3A9ZS5nZXRSZ2IodC5iYWNrZHJvcCwwKSksaS5hZGRPcCg3NixbY10pfWNvbnN0IEM9aD9bZyxudWxsXTpbZyxvXTtpLmFkZE9wKDc0LEMpLGF3YWl0IHRoaXMuZ2V0T3BlcmF0b3JMaXN0KHtzdHJlYW06ZSx0YXNrOmEscmVzb3VyY2VzOnIuZ2V0KCJSZXNvdXJjZXMiKXx8QSxvcGVyYXRvckxpc3Q6aSxpbml0aWFsU3RhdGU6c30pLGkuYWRkT3AoNzUsW10pLGgmJmkuYWRkT3AoNzcsW2NdKSx2b2lkIDAhPT1JJiZpLmFkZE9wKEYsW10pfV9zZW5kSW1nRGF0YShBLGUsdD0hMSl7Y29uc3QgaT1lP1tlLmJpdG1hcHx8ZS5kYXRhLmJ1ZmZlcl06bnVsbDtyZXR1cm4gdGhpcy5wYXJzaW5nVHlwZTNGb250fHx0P3RoaXMuaGFuZGxlci5zZW5kKCJjb21tb25vYmoiLFtBLCJJbWFnZSIsZV0saSk6dGhpcy5oYW5kbGVyLnNlbmQoIm9iaiIsW0EsdGhpcy5wYWdlSW5kZXgsIkltYWdlIixlXSxpKX1hc3luYyBidWlsZFBhaW50SW1hZ2VYT2JqZWN0KHtyZXNvdXJjZXM6QSxpbWFnZTplLGlzSW5saW5lOnQ9ITEsb3BlcmF0b3JMaXN0OmksY2FjaGVLZXk6YSxsb2NhbEltYWdlQ2FjaGU6cyxsb2NhbENvbG9yU3BhY2VDYWNoZTpufSl7Y29uc3Qgcj1lLmRpY3QsZz1yLm9iaklkLG89ci5nZXQoIlciLCJXaWR0aCIpLEk9ci5nZXQoIkgiLCJIZWlnaHQiKTtpZighb3x8Im51bWJlciIhPXR5cGVvZiBvfHwhSXx8Im51bWJlciIhPXR5cGVvZiBJKXJldHVybiB2b2lkIFUoIkltYWdlIGRpbWVuc2lvbnMgYXJlIG1pc3NpbmcsIG9yIG5vdCBudW1iZXJzLiIpO2NvbnN0IGM9dGhpcy5vcHRpb25zLm1heEltYWdlU2l6ZTtpZigtMSE9PWMmJm8qST5jKXtjb25zdCBBPSJJbWFnZSBleGNlZWRlZCBtYXhpbXVtIGFsbG93ZWQgc2l6ZSBhbmQgd2FzIHJlbW92ZWQuIjtpZih0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXJldHVybiB2b2lkIFUoQSk7dGhyb3cgbmV3IEVycm9yKEEpfWxldCBoLEMsQjtpZihyLmhhcygiT0MiKSYmKGg9YXdhaXQgdGhpcy5wYXJzZU1hcmtlZENvbnRlbnRQcm9wcyhyLmdldCgiT0MiKSxBKSksci5nZXQoIklNIiwiSW1hZ2VNYXNrIikpe2NvbnN0IEE9ci5nZXQoIkkiLCJJbnRlcnBvbGF0ZSIpLHQ9bys3Pj4zLG49ZS5nZXRCeXRlcyh0KkkpLGM9ci5nZXRBcnJheSgiRCIsIkRlY29kZSIpO2lmKHRoaXMucGFyc2luZ1R5cGUzRm9udCl7aWYoQz1yZy5jcmVhdGVSYXdNYXNrKHtpbWdBcnJheTpuLHdpZHRoOm8saGVpZ2h0OkksaW1hZ2VJc0Zyb21EZWNvZGVTdHJlYW06ZSBpbnN0YW5jZW9mIE5lLGludmVyc2VEZWNvZGU6Yz8uWzBdPjAsaW50ZXJwb2xhdGU6QX0pLEMuY2FjaGVkPSEhYSxCPVtDXSxpLmFkZEltYWdlT3BzKFMsQixoKSxhKXtjb25zdCBBPXtmbjpTLGFyZ3M6QixvcHRpb25hbENvbnRlbnQ6aH07cy5zZXQoYSxnLEEpLGcmJnRoaXMuX3JlZ2lvbmFsSW1hZ2VDYWNoZS5zZXQobnVsbCxnLEEpfXJldHVybn1pZihDPWF3YWl0IHJnLmNyZWF0ZU1hc2soe2ltZ0FycmF5Om4sd2lkdGg6byxoZWlnaHQ6SSxpbWFnZUlzRnJvbURlY29kZVN0cmVhbTplIGluc3RhbmNlb2YgTmUsaW52ZXJzZURlY29kZTpjPy5bMF0+MCxpbnRlcnBvbGF0ZTpBLGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkOnRoaXMub3B0aW9ucy5pc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZH0pLEMuaXNTaW5nbGVPcGFxdWVQaXhlbCl7aWYoaS5hZGRJbWFnZU9wcyg5MCxbXSxoKSxhKXtjb25zdCBBPXtmbjo5MCxhcmdzOltdLG9wdGlvbmFsQ29udGVudDpofTtzLnNldChhLGcsQSksZyYmdGhpcy5fcmVnaW9uYWxJbWFnZUNhY2hlLnNldChudWxsLGcsQSl9cmV0dXJufWNvbnN0IGw9YG1hc2tfJHt0aGlzLmlkRmFjdG9yeS5jcmVhdGVPYmpJZCgpfWA7aWYoaS5hZGREZXBlbmRlbmN5KGwpLEMuZGF0YUxlbj1DLmJpdG1hcD9DLndpZHRoKkMuaGVpZ2h0KjQ6Qy5kYXRhLmxlbmd0aCx0aGlzLl9zZW5kSW1nRGF0YShsLEMpLEI9W3tkYXRhOmwsd2lkdGg6Qy53aWR0aCxoZWlnaHQ6Qy5oZWlnaHQsaW50ZXJwb2xhdGU6Qy5pbnRlcnBvbGF0ZSxjb3VudDoxfV0saS5hZGRJbWFnZU9wcyhTLEIsaCksYSl7Y29uc3QgQT17b2JqSWQ6bCxmbjpTLGFyZ3M6QixvcHRpb25hbENvbnRlbnQ6aH07cy5zZXQoYSxnLEEpLGcmJnRoaXMuX3JlZ2lvbmFsSW1hZ2VDYWNoZS5zZXQobnVsbCxnLEEpfXJldHVybn1pZih0JiZvK0k8MjAwJiYhci5oYXMoIlNNYXNrIikmJiFyLmhhcygiTWFzayIpKXt0cnl7Y29uc3QgYT1uZXcgcmcoe3hyZWY6dGhpcy54cmVmLHJlczpBLGltYWdlOmUsaXNJbmxpbmU6dCxwZGZGdW5jdGlvbkZhY3Rvcnk6dGhpcy5fcGRmRnVuY3Rpb25GYWN0b3J5LGxvY2FsQ29sb3JTcGFjZUNhY2hlOm59KTtDPWF3YWl0IGEuY3JlYXRlSW1hZ2VEYXRhKCEwLCExKSxpLmlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkPXRoaXMub3B0aW9ucy5pc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZCxpLmFkZEltYWdlT3BzKDg2LFtDXSxoKX1jYXRjaChBKXtjb25zdCBlPWBVbmFibGUgdG8gZGVjb2RlIGlubGluZSBpbWFnZTogIiR7QX0iLmA7aWYoIXRoaXMub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgbmV3IEVycm9yKGUpO1UoZSl9cmV0dXJufWxldCBsPWBpbWdfJHt0aGlzLmlkRmFjdG9yeS5jcmVhdGVPYmpJZCgpfWAsUT0hMTtpZih0aGlzLnBhcnNpbmdUeXBlM0ZvbnQ/bD1gJHt0aGlzLmlkRmFjdG9yeS5nZXREb2NJZCgpfV90eXBlM18ke2x9YDphJiZnJiYoUT10aGlzLmdsb2JhbEltYWdlQ2FjaGUuc2hvdWxkQ2FjaGUoZyx0aGlzLnBhZ2VJbmRleCksUSYmKEwoIXQsIkNhbm5vdCBjYWNoZSBhbiBpbmxpbmUgaW1hZ2UgZ2xvYmFsbHkuIiksbD1gJHt0aGlzLmlkRmFjdG9yeS5nZXREb2NJZCgpfV8ke2x9YCkpLGkuYWRkRGVwZW5kZW5jeShsKSxCPVtsLG8sSV0saS5hZGRJbWFnZU9wcyhSLEIsaCksUSl7aWYodGhpcy5nbG9iYWxJbWFnZUNhY2hlLmhhc0RlY29kZUZhaWxlZChnKSlyZXR1cm4gdGhpcy5nbG9iYWxJbWFnZUNhY2hlLnNldERhdGEoZyx7b2JqSWQ6bCxmbjpSLGFyZ3M6QixvcHRpb25hbENvbnRlbnQ6aCxieXRlU2l6ZTowfSksdm9pZCB0aGlzLl9zZW5kSW1nRGF0YShsLG51bGwsUSk7aWYobypJPjI1ZTR8fHIuaGFzKCJTTWFzayIpfHxyLmhhcygiTWFzayIpKXtjb25zdCBBPWF3YWl0IHRoaXMuaGFuZGxlci5zZW5kV2l0aFByb21pc2UoImNvbW1vbm9iaiIsW2wsIkNvcHlMb2NhbEltYWdlIix7aW1hZ2VSZWY6Z31dKTtpZihBKXJldHVybiB0aGlzLmdsb2JhbEltYWdlQ2FjaGUuc2V0RGF0YShnLHtvYmpJZDpsLGZuOlIsYXJnczpCLG9wdGlvbmFsQ29udGVudDpoLGJ5dGVTaXplOjB9KSx2b2lkIHRoaXMuZ2xvYmFsSW1hZ2VDYWNoZS5hZGRCeXRlU2l6ZShnLEEpfX1pZihyZy5idWlsZEltYWdlKHt4cmVmOnRoaXMueHJlZixyZXM6QSxpbWFnZTplLGlzSW5saW5lOnQscGRmRnVuY3Rpb25GYWN0b3J5OnRoaXMuX3BkZkZ1bmN0aW9uRmFjdG9yeSxsb2NhbENvbG9yU3BhY2VDYWNoZTpufSkudGhlbigoYXN5bmMgQT0+KEM9YXdhaXQgQS5jcmVhdGVJbWFnZURhdGEoITEsdGhpcy5vcHRpb25zLmlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkKSxDLmRhdGFMZW49Qy5iaXRtYXA/Qy53aWR0aCpDLmhlaWdodCo0OkMuZGF0YS5sZW5ndGgsQy5yZWY9ZyxRJiZ0aGlzLmdsb2JhbEltYWdlQ2FjaGUuYWRkQnl0ZVNpemUoZyxDLmRhdGFMZW4pLHRoaXMuX3NlbmRJbWdEYXRhKGwsQyxRKSkpKS5jYXRjaCgoQT0+KFUoYFVuYWJsZSB0byBkZWNvZGUgaW1hZ2UgIiR7bH0iOiAiJHtBfSIuYCksZyYmdGhpcy5nbG9iYWxJbWFnZUNhY2hlLmFkZERlY29kZUZhaWxlZChnKSx0aGlzLl9zZW5kSW1nRGF0YShsLG51bGwsUSkpKSksYSl7Y29uc3QgQT17b2JqSWQ6bCxmbjpSLGFyZ3M6QixvcHRpb25hbENvbnRlbnQ6aH07cy5zZXQoYSxnLEEpLGcmJih0aGlzLl9yZWdpb25hbEltYWdlQ2FjaGUuc2V0KG51bGwsZyxBKSxRJiZ0aGlzLmdsb2JhbEltYWdlQ2FjaGUuc2V0RGF0YShnLHtvYmpJZDpsLGZuOlIsYXJnczpCLG9wdGlvbmFsQ29udGVudDpoLGJ5dGVTaXplOjB9KSl9fWhhbmRsZVNNYXNrKEEsZSx0LGksYSxzKXtjb25zdCBuPUEuZ2V0KCJHIikscj17c3VidHlwZTpBLmdldCgiUyIpLm5hbWUsYmFja2Ryb3A6QS5nZXQoIkJDIil9LGc9QS5nZXQoIlRSIik7aWYoQ3IoZykpe2NvbnN0IEE9dGhpcy5fcGRmRnVuY3Rpb25GYWN0b3J5LmNyZWF0ZShnKSxlPW5ldyBVaW50OEFycmF5KDI1NiksdD1uZXcgRmxvYXQzMkFycmF5KDEpO2ZvcihsZXQgaT0wO2k8MjU2O2krKyl0WzBdPWkvMjU1LEEodCwwLHQsMCksZVtpXT0yNTUqdFswXXwwO3IudHJhbnNmZXJNYXA9ZX1yZXR1cm4gdGhpcy5idWlsZEZvcm1YT2JqZWN0KGUsbixyLHQsaSxhLnN0YXRlLmNsb25lKCkscyl9aGFuZGxlVHJhbnNmZXJGdW5jdGlvbihBKXtsZXQgZTtpZihBcnJheS5pc0FycmF5KEEpKWU9QTtlbHNle2lmKCFDcihBKSlyZXR1cm4gbnVsbDtlPVtBXX1jb25zdCB0PVtdO2xldCBpPTAsYT0wO2Zvcihjb25zdCBBIG9mIGUpe2NvbnN0IGU9dGhpcy54cmVmLmZldGNoSWZSZWYoQSk7aWYoaSsrLGZBKGUsIklkZW50aXR5Iikpe3QucHVzaChudWxsKTtjb250aW51ZX1pZighQ3IoZSkpcmV0dXJuIG51bGw7Y29uc3Qgcz10aGlzLl9wZGZGdW5jdGlvbkZhY3RvcnkuY3JlYXRlKGUpLG49bmV3IFVpbnQ4QXJyYXkoMjU2KSxyPW5ldyBGbG9hdDMyQXJyYXkoMSk7Zm9yKGxldCBBPTA7QTwyNTY7QSsrKXJbMF09QS8yNTUscyhyLDAsciwwKSxuW0FdPTI1NSpyWzBdfDA7dC5wdXNoKG4pLGErK31yZXR1cm4gMSE9PWkmJjQhPT1pfHwwPT09YT9udWxsOnR9aGFuZGxlVGlsaW5nVHlwZShBLGUsdCxpLGEscyxuLHIpe2NvbnN0IGc9bmV3IGFnLG89UUEubWVyZ2Uoe3hyZWY6dGhpcy54cmVmLGRpY3RBcnJheTpbYS5nZXQoIlJlc291cmNlcyIpLHRdfSk7cmV0dXJuIHRoaXMuZ2V0T3BlcmF0b3JMaXN0KHtzdHJlYW06aSx0YXNrOm4scmVzb3VyY2VzOm8sb3BlcmF0b3JMaXN0Omd9KS50aGVuKChmdW5jdGlvbigpe2NvbnN0IHQ9Zy5nZXRJUigpLGk9Z24odCxhLGUpO3MuYWRkRGVwZW5kZW5jaWVzKGcuZGVwZW5kZW5jaWVzKSxzLmFkZE9wKEEsaSksYS5vYmpJZCYmci5zZXQobnVsbCxhLm9iaklkLHtvcGVyYXRvckxpc3RJUjp0LGRpY3Q6YX0pfSkpLmNhdGNoKChBPT57aWYoIShBIGluc3RhbmNlb2YgTykpe2lmKCF0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXRocm93IEE7VShgaGFuZGxlVGlsaW5nVHlwZSAtIGlnbm9yaW5nIHBhdHRlcm46ICIke0F9Ii5gKX19KSl9YXN5bmMgaGFuZGxlU2V0Rm9udChBLGUsdCxpLGEscyxuPW51bGwscj1udWxsKXtjb25zdCBnPWU/LlswXWluc3RhbmNlb2YgQ0E/ZVswXS5uYW1lOm51bGw7bGV0IG89YXdhaXQgdGhpcy5sb2FkRm9udChnLHQsQSxuLHIpO2lmKG8uZm9udC5pc1R5cGUzRm9udCl0cnl7YXdhaXQgby5sb2FkVHlwZTNEYXRhKHRoaXMsQSxhKSxpLmFkZERlcGVuZGVuY2llcyhvLnR5cGUzRGVwZW5kZW5jaWVzKX1jYXRjaChBKXtvPW5ldyBCZyh7bG9hZGVkTmFtZToiZ19mb250X2Vycm9yIixmb250Om5ldyB6cyhgVHlwZTMgZm9udCBsb2FkIGVycm9yOiAke0F9YCksZGljdDpvLmZvbnQsZXZhbHVhdG9yT3B0aW9uczp0aGlzLm9wdGlvbnN9KX1yZXR1cm4gcy5mb250PW8uZm9udCxvLnNlbmQodGhpcy5oYW5kbGVyKSxvLmxvYWRlZE5hbWV9aGFuZGxlVGV4dChBLGUpe2NvbnN0IHQ9ZS5mb250LGk9dC5jaGFyc1RvR2x5cGhzKEEpO3JldHVybiB0LmRhdGEmJig0JmUudGV4dFJlbmRlcmluZ01vZGV8fCJQYXR0ZXJuIj09PWUuZmlsbENvbG9yU3BhY2UubmFtZXx8dC5kaXNhYmxlRm9udEZhY2V8fHRoaXMub3B0aW9ucy5kaXNhYmxlRm9udEZhY2UpJiZDZy5idWlsZEZvbnRQYXRocyh0LGksdGhpcy5oYW5kbGVyLHRoaXMub3B0aW9ucyksaX1lbnN1cmVTdGF0ZUZvbnQoQSl7aWYoQS5mb250KXJldHVybjtjb25zdCBlPW5ldyBXKCJNaXNzaW5nIHNldEZvbnQgKFRmKSBvcGVyYXRvciBiZWZvcmUgdGV4dCByZW5kZXJpbmcgb3BlcmF0b3IuIik7aWYoIXRoaXMub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgZTtVKGBlbnN1cmVTdGF0ZUZvbnQ6ICIke2V9Ii5gKX1hc3luYyBzZXRHU3RhdGUoe3Jlc291cmNlczpBLGdTdGF0ZTplLG9wZXJhdG9yTGlzdDp0LGNhY2hlS2V5OmksdGFzazphLHN0YXRlTWFuYWdlcjpzLGxvY2FsR1N0YXRlQ2FjaGU6bixsb2NhbENvbG9yU3BhY2VDYWNoZTpyfSl7Y29uc3QgZz1lLm9iaklkO2xldCBvPSEwO2NvbnN0IEk9W107bGV0IGM9UHJvbWlzZS5yZXNvbHZlKCk7Zm9yKGNvbnN0IGkgb2YgZS5nZXRLZXlzKCkpe2NvbnN0IG49ZS5nZXQoaSk7c3dpdGNoKGkpe2Nhc2UiVHlwZSI6YnJlYWs7Y2FzZSJMVyI6Y2FzZSJMQyI6Y2FzZSJMSiI6Y2FzZSJNTCI6Y2FzZSJEIjpjYXNlIlJJIjpjYXNlIkZMIjpjYXNlIkNBIjpjYXNlImNhIjpJLnB1c2goW2ksbl0pO2JyZWFrO2Nhc2UiRm9udCI6bz0hMSxjPWMudGhlbigoKCk9PnRoaXMuaGFuZGxlU2V0Rm9udChBLG51bGwsblswXSx0LGEscy5zdGF0ZSkudGhlbigoZnVuY3Rpb24oQSl7dC5hZGREZXBlbmRlbmN5KEEpLEkucHVzaChbaSxbQSxuWzFdXV0pfSkpKSk7YnJlYWs7Y2FzZSJCTSI6SS5wdXNoKFtpLElnKG4pXSk7YnJlYWs7Y2FzZSJTTWFzayI6aWYoZkEobiwiTm9uZSIpKXtJLnB1c2goW2ksITFdKTticmVha31uIGluc3RhbmNlb2YgUUE/KG89ITEsYz1jLnRoZW4oKCgpPT50aGlzLmhhbmRsZVNNYXNrKG4sQSx0LGEscyxyKSkpLEkucHVzaChbaSwhMF0pKTpVKCJVbnN1cHBvcnRlZCBTTWFzayB0eXBlIik7YnJlYWs7Y2FzZSJUUiI6Y29uc3QgZT10aGlzLmhhbmRsZVRyYW5zZmVyRnVuY3Rpb24obik7SS5wdXNoKFtpLGVdKTticmVhaztjYXNlIk9QIjpjYXNlIm9wIjpjYXNlIk9QTSI6Y2FzZSJCRyI6Y2FzZSJCRzIiOmNhc2UiVUNSIjpjYXNlIlVDUjIiOmNhc2UiVFIyIjpjYXNlIkhUIjpjYXNlIlNNIjpjYXNlIlNBIjpjYXNlIkFJUyI6Y2FzZSJUSyI6eCgiZ3JhcGhpYyBzdGF0ZSBvcGVyYXRvciAiK2kpO2JyZWFrO2RlZmF1bHQ6eCgiVW5rbm93biBncmFwaGljIHN0YXRlIG9wZXJhdG9yICIraSl9fWF3YWl0IGMsSS5sZW5ndGg+MCYmdC5hZGRPcCg5LFtJXSksbyYmbi5zZXQoaSxnLEkpfWxvYWRGb250KEEsZSx0LGk9bnVsbCxhPW51bGwpe2NvbnN0IHM9YXN5bmMoKT0+bmV3IEJnKHtsb2FkZWROYW1lOiJnX2ZvbnRfZXJyb3IiLGZvbnQ6bmV3IHpzKGBGb250ICIke0F9IiBpcyBub3QgYXZhaWxhYmxlLmApLGRpY3Q6ZSxldmFsdWF0b3JPcHRpb25zOnRoaXMub3B0aW9uc30pO2xldCBuO2lmKGUpZSBpbnN0YW5jZW9mIEVBJiYobj1lKTtlbHNle2NvbnN0IGU9dC5nZXQoIkZvbnQiKTtlJiYobj1lLmdldFJhdyhBKSl9aWYobil7aWYodGhpcy50eXBlM0ZvbnRSZWZzPy5oYXMobikpcmV0dXJuIHMoKTtpZih0aGlzLmZvbnRDYWNoZS5oYXMobikpcmV0dXJuIHRoaXMuZm9udENhY2hlLmdldChuKTt0cnl7ZT10aGlzLnhyZWYuZmV0Y2hJZlJlZihuKX1jYXRjaChBKXtVKGBsb2FkRm9udCAtIGxvb2t1cCBmYWlsZWQ6ICIke0F9Ii5gKX19aWYoIShlIGluc3RhbmNlb2YgUUEpKXtpZighdGhpcy5vcHRpb25zLmlnbm9yZUVycm9ycyYmIXRoaXMucGFyc2luZ1R5cGUzRm9udClyZXR1cm4gVShgRm9udCAiJHtBfSIgaXMgbm90IGF2YWlsYWJsZS5gKSxzKCk7VShgRm9udCAiJHtBfSIgaXMgbm90IGF2YWlsYWJsZSAtLSBhdHRlbXB0aW5nIHRvIGZhbGxiYWNrIHRvIGEgZGVmYXVsdCBmb250LmApLGU9aXx8Q2cuZmFsbGJhY2tGb250RGljdH1pZihlLmNhY2hlS2V5JiZ0aGlzLmZvbnRDYWNoZS5oYXMoZS5jYWNoZUtleSkpcmV0dXJuIHRoaXMuZm9udENhY2hlLmdldChlLmNhY2hlS2V5KTtjb25zdHtwcm9taXNlOnIscmVzb2x2ZTpnfT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKTtsZXQgbzt0cnl7bz10aGlzLnByZUV2YWx1YXRlRm9udChlKSxvLmNzc0ZvbnRJbmZvPWF9Y2F0Y2goQSl7cmV0dXJuIFUoYGxvYWRGb250IC0gcHJlRXZhbHVhdGVGb250IGZhaWxlZDogIiR7QX0iLmApLHMoKX1jb25zdHtkZXNjcmlwdG9yOkksaGFzaDpjfT1vLGg9biBpbnN0YW5jZW9mIEVBO2xldCBDO2lmKGMmJkkgaW5zdGFuY2VvZiBRQSl7Y29uc3QgQT1JLmZvbnRBbGlhc2VzfHw9T2JqZWN0LmNyZWF0ZShudWxsKTtpZihBW2NdKXtjb25zdCBlPUFbY10uYWxpYXNSZWY7aWYoaCYmZSYmdGhpcy5mb250Q2FjaGUuaGFzKGUpKXJldHVybiB0aGlzLmZvbnRDYWNoZS5wdXRBbGlhcyhuLGUpLHRoaXMuZm9udENhY2hlLmdldChuKX1lbHNlIEFbY109e2ZvbnRJRDp0aGlzLmlkRmFjdG9yeS5jcmVhdGVGb250SWQoKX07aCYmKEFbY10uYWxpYXNSZWY9biksQz1BW2NdLmZvbnRJRH1lbHNlIEM9dGhpcy5pZEZhY3RvcnkuY3JlYXRlRm9udElkKCk7cmV0dXJuIEwoQz8uc3RhcnRzV2l0aCgiZiIpLCdUaGUgImZvbnRJRCIgbXVzdCBiZSAoY29ycmVjdGx5KSBkZWZpbmVkLicpLGg/dGhpcy5mb250Q2FjaGUucHV0KG4scik6KGUuY2FjaGVLZXk9YGNhY2hlS2V5XyR7Q31gLHRoaXMuZm9udENhY2hlLnB1dChlLmNhY2hlS2V5LHIpKSxlLmxvYWRlZE5hbWU9YCR7dGhpcy5pZEZhY3RvcnkuZ2V0RG9jSWQoKX1fJHtDfWAsdGhpcy50cmFuc2xhdGVGb250KG8pLnRoZW4oKEE9PntnKG5ldyBCZyh7bG9hZGVkTmFtZTplLmxvYWRlZE5hbWUsZm9udDpBLGRpY3Q6ZSxldmFsdWF0b3JPcHRpb25zOnRoaXMub3B0aW9uc30pKX0pKS5jYXRjaCgoQT0+e1UoYGxvYWRGb250IC0gdHJhbnNsYXRlRm9udCBmYWlsZWQ6ICIke0F9Ii5gKSxnKG5ldyBCZyh7bG9hZGVkTmFtZTplLmxvYWRlZE5hbWUsZm9udDpuZXcgenMoQSBpbnN0YW5jZW9mIEVycm9yP0EubWVzc2FnZTpBKSxkaWN0OmUsZXZhbHVhdG9yT3B0aW9uczp0aGlzLm9wdGlvbnN9KSl9KSkscn1idWlsZFBhdGgoQSxlLHQsaT0hMSl7Y29uc3QgYT1BLmxlbmd0aC0xO2lmKHR8fCh0PVtdKSxhPDB8fDkxIT09QS5mbkFycmF5W2FdKXtsZXQgYTtzd2l0Y2goaSYmKFUoYEVuY291bnRlcmVkIHBhdGggb3BlcmF0b3IgIiR7ZX0iIGluc2lkZSBvZiBhIHRleHQgb2JqZWN0LmApLEEuYWRkT3AoZixudWxsKSksZSl7Y2FzZSAxOTpjb25zdCBBPXRbMF0rdFsyXSxlPXRbMV0rdFszXTthPVtNYXRoLm1pbih0WzBdLEEpLE1hdGgubWluKHRbMV0sZSksTWF0aC5tYXgodFswXSxBKSxNYXRoLm1heCh0WzFdLGUpXTticmVhaztjYXNlIDEzOmNhc2UgMTQ6YT1bdFswXSx0WzFdLHRbMF0sdFsxXV07YnJlYWs7ZGVmYXVsdDphPVsxLzAsMS8wLC0xLzAsLTEvMF19QS5hZGRPcCg5MSxbW2VdLHQsYV0pLGkmJkEuYWRkT3AocCxudWxsKX1lbHNle2NvbnN0IGk9QS5hcmdzQXJyYXlbYV07aVswXS5wdXNoKGUpLGlbMV0ucHVzaCguLi50KTtjb25zdCBzPWlbMl07c3dpdGNoKGUpe2Nhc2UgMTk6Y29uc3QgQT10WzBdK3RbMl0sZT10WzFdK3RbM107c1swXT1NYXRoLm1pbihzWzBdLHRbMF0sQSksc1sxXT1NYXRoLm1pbihzWzFdLHRbMV0sZSksc1syXT1NYXRoLm1heChzWzJdLHRbMF0sQSksc1szXT1NYXRoLm1heChzWzNdLHRbMV0sZSk7YnJlYWs7Y2FzZSAxMzpjYXNlIDE0OnNbMF09TWF0aC5taW4oc1swXSx0WzBdKSxzWzFdPU1hdGgubWluKHNbMV0sdFsxXSksc1syXT1NYXRoLm1heChzWzJdLHRbMF0pLHNbM109TWF0aC5tYXgoc1szXSx0WzFdKX19fXBhcnNlQ29sb3JTcGFjZSh7Y3M6QSxyZXNvdXJjZXM6ZSxsb2NhbENvbG9yU3BhY2VDYWNoZTp0fSl7cmV0dXJuIENlLnBhcnNlQXN5bmMoe2NzOkEseHJlZjp0aGlzLnhyZWYscmVzb3VyY2VzOmUscGRmRnVuY3Rpb25GYWN0b3J5OnRoaXMuX3BkZkZ1bmN0aW9uRmFjdG9yeSxsb2NhbENvbG9yU3BhY2VDYWNoZTp0fSkuY2F0Y2goKEE9PntpZihBIGluc3RhbmNlb2YgTylyZXR1cm4gbnVsbDtpZih0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXJldHVybiBVKGBwYXJzZUNvbG9yU3BhY2UgLSBpZ25vcmluZyBDb2xvclNwYWNlOiAiJHtBfSIuYCksbnVsbDt0aHJvdyBBfSkpfXBhcnNlU2hhZGluZyh7c2hhZGluZzpBLHJlc291cmNlczplLGxvY2FsQ29sb3JTcGFjZUNhY2hlOnQsbG9jYWxTaGFkaW5nUGF0dGVybkNhY2hlOml9KXtsZXQgYSxzPWkuZ2V0KEEpO2lmKHMpcmV0dXJuIHM7dHJ5e2E9JHMucGFyc2VTaGFkaW5nKEEsdGhpcy54cmVmLGUsdGhpcy5fcGRmRnVuY3Rpb25GYWN0b3J5LHQpLmdldElSKCl9Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIE8pcmV0dXJuIG51bGw7aWYodGhpcy5vcHRpb25zLmlnbm9yZUVycm9ycylyZXR1cm4gVShgcGFyc2VTaGFkaW5nIC0gaWdub3Jpbmcgc2hhZGluZzogIiR7ZX0iLmApLGkuc2V0KEEsbnVsbCksbnVsbDt0aHJvdyBlfXJldHVybiBzPWBwYXR0ZXJuXyR7dGhpcy5pZEZhY3RvcnkuY3JlYXRlT2JqSWQoKX1gLHRoaXMucGFyc2luZ1R5cGUzRm9udCYmKHM9YCR7dGhpcy5pZEZhY3RvcnkuZ2V0RG9jSWQoKX1fdHlwZTNfJHtzfWApLGkuc2V0KEEscyksdGhpcy5wYXJzaW5nVHlwZTNGb250P3RoaXMuaGFuZGxlci5zZW5kKCJjb21tb25vYmoiLFtzLCJQYXR0ZXJuIixhXSk6dGhpcy5oYW5kbGVyLnNlbmQoIm9iaiIsW3MsdGhpcy5wYWdlSW5kZXgsIlBhdHRlcm4iLGFdKSxzfWhhbmRsZUNvbG9yTihBLGUsdCxpLGEscyxuLHIsZyxvKXtjb25zdCBJPXQucG9wKCk7aWYoSSBpbnN0YW5jZW9mIENBKXtjb25zdCBjPWEuZ2V0UmF3KEkubmFtZSksaD1jIGluc3RhbmNlb2YgRUEmJmcuZ2V0QnlSZWYoYyk7aWYoaCl0cnl7Y29uc3QgYT1pLmJhc2U/aS5iYXNlLmdldFJnYih0LDApOm51bGwscz1nbihoLm9wZXJhdG9yTGlzdElSLGguZGljdCxhKTtyZXR1cm4gdm9pZCBBLmFkZE9wKGUscyl9Y2F0Y2h7fWNvbnN0IEM9dGhpcy54cmVmLmZldGNoSWZSZWYoYyk7aWYoQyl7Y29uc3QgYT1DIGluc3RhbmNlb2Ygd0E/Qy5kaWN0OkMsST1hLmdldCgiUGF0dGVyblR5cGUiKTtpZigxPT09SSl7Y29uc3Qgcj1pLmJhc2U/aS5iYXNlLmdldFJnYih0LDApOm51bGw7cmV0dXJuIHRoaXMuaGFuZGxlVGlsaW5nVHlwZShlLHIscyxDLGEsQSxuLGcpfWlmKDI9PT1JKXtjb25zdCB0PWEuZ2V0KCJTaGFkaW5nIiksaT10aGlzLnBhcnNlU2hhZGluZyh7c2hhZGluZzp0LHJlc291cmNlczpzLGxvY2FsQ29sb3JTcGFjZUNhY2hlOnIsbG9jYWxTaGFkaW5nUGF0dGVybkNhY2hlOm99KTtpZihpKXtjb25zdCB0PUtBKGEuZ2V0QXJyYXkoIk1hdHJpeCIpLG51bGwpO0EuYWRkT3AoZSxbIlNoYWRpbmciLGksdF0pfXJldHVybn10aHJvdyBuZXcgVyhgVW5rbm93biBQYXR0ZXJuVHlwZTogJHtJfWApfX10aHJvdyBuZXcgVyhgVW5rbm93biBQYXR0ZXJuTmFtZTogJHtJfWApfV9wYXJzZVZpc2liaWxpdHlFeHByZXNzaW9uKEEsZSx0KXtpZigrK2U+MTApcmV0dXJuIHZvaWQgVSgiVmlzaWJpbGl0eSBleHByZXNzaW9uIGlzIHRvbyBkZWVwbHkgbmVzdGVkIik7Y29uc3QgaT1BLmxlbmd0aCxhPXRoaXMueHJlZi5mZXRjaElmUmVmKEFbMF0pO2lmKCEoaTwyKSYmYSBpbnN0YW5jZW9mIENBKXtzd2l0Y2goYS5uYW1lKXtjYXNlIkFuZCI6Y2FzZSJPciI6Y2FzZSJOb3QiOnQucHVzaChhLm5hbWUpO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIHZvaWQgVShgSW52YWxpZCBvcGVyYXRvciAke2EubmFtZX0gaW4gdmlzaWJpbGl0eSBleHByZXNzaW9uYCl9Zm9yKGxldCBhPTE7YTxpO2ErKyl7Y29uc3QgaT1BW2FdLHM9dGhpcy54cmVmLmZldGNoSWZSZWYoaSk7aWYoQXJyYXkuaXNBcnJheShzKSl7Y29uc3QgQT1bXTt0LnB1c2goQSksdGhpcy5fcGFyc2VWaXNpYmlsaXR5RXhwcmVzc2lvbihzLGUsQSl9ZWxzZSBpIGluc3RhbmNlb2YgRUEmJnQucHVzaChpLnRvU3RyaW5nKCkpfX1lbHNlIFUoIkludmFsaWQgdmlzaWJpbGl0eSBleHByZXNzaW9uIil9YXN5bmMgcGFyc2VNYXJrZWRDb250ZW50UHJvcHMoQSxlKXtsZXQgdDtpZihBIGluc3RhbmNlb2YgQ0EpdD1lLmdldCgiUHJvcGVydGllcyIpLmdldChBLm5hbWUpO2Vsc2V7aWYoIShBIGluc3RhbmNlb2YgUUEpKXRocm93IG5ldyBXKCJPcHRpb25hbCBjb250ZW50IHByb3BlcnRpZXMgbWFsZm9ybWVkLiIpO3Q9QX1jb25zdCBpPXQuZ2V0KCJUeXBlIik/Lm5hbWU7aWYoIk9DRyI9PT1pKXJldHVybnt0eXBlOmksaWQ6dC5vYmpJZH07aWYoIk9DTUQiPT09aSl7Y29uc3QgQT10LmdldCgiVkUiKTtpZihBcnJheS5pc0FycmF5KEEpKXtjb25zdCBlPVtdO2lmKHRoaXMuX3BhcnNlVmlzaWJpbGl0eUV4cHJlc3Npb24oQSwwLGUpLGUubGVuZ3RoPjApcmV0dXJue3R5cGU6Ik9DTUQiLGV4cHJlc3Npb246ZX19Y29uc3QgZT10LmdldCgiT0NHcyIpO2lmKEFycmF5LmlzQXJyYXkoZSl8fGUgaW5zdGFuY2VvZiBRQSl7Y29uc3QgQT1bXTtpZihBcnJheS5pc0FycmF5KGUpKWZvcihjb25zdCB0IG9mIGUpQS5wdXNoKHQudG9TdHJpbmcoKSk7ZWxzZSBBLnB1c2goZS5vYmpJZCk7cmV0dXJue3R5cGU6aSxpZHM6QSxwb2xpY3k6dC5nZXQoIlAiKWluc3RhbmNlb2YgQ0E/dC5nZXQoIlAiKS5uYW1lOm51bGwsZXhwcmVzc2lvbjpudWxsfX1pZihlIGluc3RhbmNlb2YgRUEpcmV0dXJue3R5cGU6aSxpZDplLnRvU3RyaW5nKCl9fXJldHVybiBudWxsfWdldE9wZXJhdG9yTGlzdCh7c3RyZWFtOkEsdGFzazplLHJlc291cmNlczp0LG9wZXJhdG9yTGlzdDppLGluaXRpYWxTdGF0ZTphPW51bGwsZmFsbGJhY2tGb250RGljdDpzPW51bGx9KXtpZih0fHw9UUEuZW1wdHksYXx8PW5ldyBFZywhaSl0aHJvdyBuZXcgRXJyb3IoJ2dldE9wZXJhdG9yTGlzdDogbWlzc2luZyAib3BlcmF0b3JMaXN0IiBwYXJhbWV0ZXInKTtjb25zdCBuPXRoaXMscj10aGlzLnhyZWY7bGV0IGc9ITE7Y29uc3Qgbz1uZXcgaXIsST1uZXcgYXIsYz1uZXcgbnIsaD1uZXcgcnIsQz1uZXcgTWFwLEI9dC5nZXQoIlhPYmplY3QiKXx8UUEuZW1wdHksbD10LmdldCgiUGF0dGVybiIpfHxRQS5lbXB0eSxRPW5ldyBsZyhhKSxFPW5ldyB1ZyhBLHIsUSksdT1uZXcgaGc7ZnVuY3Rpb24gZChBKXtmb3IobGV0IEE9MCxlPUUuc2F2ZWRTdGF0ZXNEZXB0aDtBPGU7QSsrKWkuYWRkT3AocCxbXSl9cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbiBBKGEsZil7Y29uc3QgcD1mdW5jdGlvbihlKXtQcm9taXNlLmFsbChbZSxpLnJlYWR5XSkudGhlbigoZnVuY3Rpb24oKXt0cnl7QShhLGYpfWNhdGNoKEEpe2YoQSl9fSksZil9O2UuZW5zdXJlTm90VGVybWluYXRlZCgpLHUucmVzZXQoKTtjb25zdCBtPXt9O2xldCBGLFMsUixHLE4sTTtmb3IoOyEoRj11LmNoZWNrKCkpJiYobS5hcmdzPW51bGwsRS5yZWFkKG0pKTspe2xldCBBPW0uYXJncyxhPW0uZm47c3dpdGNoKDB8YSl7Y2FzZSA2NjppZihNPUFbMF1pbnN0YW5jZW9mIENBLE49QVswXS5uYW1lLE0pe2NvbnN0IGU9by5nZXRCeU5hbWUoTik7aWYoZSl7Y2coaSxlKSxBPW51bGw7Y29udGludWV9fXJldHVybiB2b2lkIHAobmV3IFByb21pc2UoKGZ1bmN0aW9uKEEsYSl7aWYoIU0pdGhyb3cgbmV3IFcoIlhPYmplY3QgbXVzdCBiZSByZWZlcnJlZCB0byBieSBuYW1lLiIpO2xldCBzPUIuZ2V0UmF3KE4pO2lmKHMgaW5zdGFuY2VvZiBFQSl7Y29uc3QgZT1vLmdldEJ5UmVmKHMpfHxuLl9yZWdpb25hbEltYWdlQ2FjaGUuZ2V0QnlSZWYocyk7aWYoZSlyZXR1cm4gY2coaSxlKSx2b2lkIEEoKTtjb25zdCB0PW4uZ2xvYmFsSW1hZ2VDYWNoZS5nZXREYXRhKHMsbi5wYWdlSW5kZXgpO2lmKHQpcmV0dXJuIGkuYWRkRGVwZW5kZW5jeSh0Lm9iaklkKSxpLmFkZEltYWdlT3BzKHQuZm4sdC5hcmdzLHQub3B0aW9uYWxDb250ZW50KSx2b2lkIEEoKTtzPXIuZmV0Y2gocyl9aWYoIShzIGluc3RhbmNlb2Ygd0EpKXRocm93IG5ldyBXKCJYT2JqZWN0IHNob3VsZCBiZSBhIHN0cmVhbSIpO2NvbnN0IGc9cy5kaWN0LmdldCgiU3VidHlwZSIpO2lmKCEoZyBpbnN0YW5jZW9mIENBKSl0aHJvdyBuZXcgVygiWE9iamVjdCBzaG91bGQgaGF2ZSBhIE5hbWUgc3VidHlwZSIpO2lmKCJGb3JtIj09PWcubmFtZSlyZXR1cm4gUS5zYXZlKCksdm9pZCBuLmJ1aWxkRm9ybVhPYmplY3QodCxzLG51bGwsaSxlLFEuc3RhdGUuY2xvbmUoKSxJKS50aGVuKChmdW5jdGlvbigpe1EucmVzdG9yZSgpLEEoKX0pLGEpO2lmKCJJbWFnZSIhPT1nLm5hbWUpe2lmKCJQUyIhPT1nLm5hbWUpdGhyb3cgbmV3IFcoYFVuaGFuZGxlZCBYT2JqZWN0IHN1YnR5cGUgJHtnLm5hbWV9YCk7eCgiSWdub3JlZCBYT2JqZWN0IHN1YnR5cGUgUFMiKSxBKCl9ZWxzZSBuLmJ1aWxkUGFpbnRJbWFnZVhPYmplY3Qoe3Jlc291cmNlczp0LGltYWdlOnMsb3BlcmF0b3JMaXN0OmksY2FjaGVLZXk6Tixsb2NhbEltYWdlQ2FjaGU6byxsb2NhbENvbG9yU3BhY2VDYWNoZTpJfSkudGhlbihBLGEpfSkpLmNhdGNoKChmdW5jdGlvbihBKXtpZighKEEgaW5zdGFuY2VvZiBPKSl7aWYoIW4ub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgQTtVKGBnZXRPcGVyYXRvckxpc3QgLSBpZ25vcmluZyBYT2JqZWN0OiAiJHtBfSIuYCl9fSkpKTtjYXNlIHk6dmFyIEw9QVsxXTtyZXR1cm4gdm9pZCBwKG4uaGFuZGxlU2V0Rm9udCh0LEEsbnVsbCxpLGUsUS5zdGF0ZSxzKS50aGVuKChmdW5jdGlvbihBKXtpLmFkZERlcGVuZGVuY3koQSksaS5hZGRPcCh5LFtBLExdKX0pKSk7Y2FzZSAzMTpnPSEwO2JyZWFrO2Nhc2UgMzI6Zz0hMTticmVhaztjYXNlIDY1OnZhciBKPUFbMF0uY2FjaGVLZXk7aWYoSil7Y29uc3QgZT1vLmdldEJ5TmFtZShKKTtpZihlKXtjZyhpLGUpLEE9bnVsbDtjb250aW51ZX19cmV0dXJuIHZvaWQgcChuLmJ1aWxkUGFpbnRJbWFnZVhPYmplY3Qoe3Jlc291cmNlczp0LGltYWdlOkFbMF0saXNJbmxpbmU6ITAsb3BlcmF0b3JMaXN0OmksY2FjaGVLZXk6Sixsb2NhbEltYWdlQ2FjaGU6byxsb2NhbENvbG9yU3BhY2VDYWNoZTpJfSkpO2Nhc2UgdzppZighUS5zdGF0ZS5mb250KXtuLmVuc3VyZVN0YXRlRm9udChRLnN0YXRlKTtjb250aW51ZX1BWzBdPW4uaGFuZGxlVGV4dChBWzBdLFEuc3RhdGUpO2JyZWFrO2Nhc2UgNDU6aWYoIVEuc3RhdGUuZm9udCl7bi5lbnN1cmVTdGF0ZUZvbnQoUS5zdGF0ZSk7Y29udGludWV9dmFyIEg9W10sWT1RLnN0YXRlO2Zvcihjb25zdCBlIG9mIEFbMF0pInN0cmluZyI9PXR5cGVvZiBlP0gucHVzaCguLi5uLmhhbmRsZVRleHQoZSxZKSk6Im51bWJlciI9PXR5cGVvZiBlJiZILnB1c2goZSk7QVswXT1ILGE9dzticmVhaztjYXNlIDQ2OmlmKCFRLnN0YXRlLmZvbnQpe24uZW5zdXJlU3RhdGVGb250KFEuc3RhdGUpO2NvbnRpbnVlfWkuYWRkT3AoNDMpLEFbMF09bi5oYW5kbGVUZXh0KEFbMF0sUS5zdGF0ZSksYT13O2JyZWFrO2Nhc2UgNDc6aWYoIVEuc3RhdGUuZm9udCl7bi5lbnN1cmVTdGF0ZUZvbnQoUS5zdGF0ZSk7Y29udGludWV9aS5hZGRPcCg0MyksaS5hZGRPcCgzNCxbQS5zaGlmdCgpXSksaS5hZGRPcCgzMyxbQS5zaGlmdCgpXSksQVswXT1uLmhhbmRsZVRleHQoQVswXSxRLnN0YXRlKSxhPXc7YnJlYWs7Y2FzZSAzODpRLnN0YXRlLnRleHRSZW5kZXJpbmdNb2RlPUFbMF07YnJlYWs7Y2FzZSA1MTp7Y29uc3QgZT1DZS5nZXRDYWNoZWQoQVswXSxyLEkpO2lmKGUpe1Euc3RhdGUuZmlsbENvbG9yU3BhY2U9ZTtjb250aW51ZX1yZXR1cm4gdm9pZCBwKG4ucGFyc2VDb2xvclNwYWNlKHtjczpBWzBdLHJlc291cmNlczp0LGxvY2FsQ29sb3JTcGFjZUNhY2hlOkl9KS50aGVuKChmdW5jdGlvbihBKXtRLnN0YXRlLmZpbGxDb2xvclNwYWNlPUF8fENlLnNpbmdsZXRvbnMuZ3JheX0pKSl9Y2FzZSA1MDp7Y29uc3QgZT1DZS5nZXRDYWNoZWQoQVswXSxyLEkpO2lmKGUpe1Euc3RhdGUuc3Ryb2tlQ29sb3JTcGFjZT1lO2NvbnRpbnVlfXJldHVybiB2b2lkIHAobi5wYXJzZUNvbG9yU3BhY2Uoe2NzOkFbMF0scmVzb3VyY2VzOnQsbG9jYWxDb2xvclNwYWNlQ2FjaGU6SX0pLnRoZW4oKGZ1bmN0aW9uKEEpe1Euc3RhdGUuc3Ryb2tlQ29sb3JTcGFjZT1BfHxDZS5zaW5nbGV0b25zLmdyYXl9KSkpfWNhc2UgNTQ6Rz1RLnN0YXRlLmZpbGxDb2xvclNwYWNlLEE9Ry5nZXRSZ2IoQSwwKSxhPWI7YnJlYWs7Y2FzZSA1MjpHPVEuc3RhdGUuc3Ryb2tlQ29sb3JTcGFjZSxBPUcuZ2V0UmdiKEEsMCksYT1EO2JyZWFrO2Nhc2UgNTc6US5zdGF0ZS5maWxsQ29sb3JTcGFjZT1DZS5zaW5nbGV0b25zLmdyYXksQT1DZS5zaW5nbGV0b25zLmdyYXkuZ2V0UmdiKEEsMCksYT1iO2JyZWFrO2Nhc2UgNTY6US5zdGF0ZS5zdHJva2VDb2xvclNwYWNlPUNlLnNpbmdsZXRvbnMuZ3JheSxBPUNlLnNpbmdsZXRvbnMuZ3JheS5nZXRSZ2IoQSwwKSxhPUQ7YnJlYWs7Y2FzZSA2MTpRLnN0YXRlLmZpbGxDb2xvclNwYWNlPUNlLnNpbmdsZXRvbnMuY215ayxBPUNlLnNpbmdsZXRvbnMuY215ay5nZXRSZ2IoQSwwKSxhPWI7YnJlYWs7Y2FzZSA2MDpRLnN0YXRlLnN0cm9rZUNvbG9yU3BhY2U9Q2Uuc2luZ2xldG9ucy5jbXlrLEE9Q2Uuc2luZ2xldG9ucy5jbXlrLmdldFJnYihBLDApLGE9RDticmVhaztjYXNlIGI6US5zdGF0ZS5maWxsQ29sb3JTcGFjZT1DZS5zaW5nbGV0b25zLnJnYixBPUNlLnNpbmdsZXRvbnMucmdiLmdldFJnYihBLDApO2JyZWFrO2Nhc2UgRDpRLnN0YXRlLnN0cm9rZUNvbG9yU3BhY2U9Q2Uuc2luZ2xldG9ucy5yZ2IsQT1DZS5zaW5nbGV0b25zLnJnYi5nZXRSZ2IoQSwwKTticmVhaztjYXNlIDU1OmlmKEc9US5zdGF0ZS5wYXR0ZXJuRmlsbENvbG9yU3BhY2UsIUcpe0E9W10sYT05MzticmVha31pZigiUGF0dGVybiI9PT1HLm5hbWUpcmV0dXJuIHZvaWQgcChuLmhhbmRsZUNvbG9yTihpLDU1LEEsRyxsLHQsZSxJLGgsQykpO0E9Ry5nZXRSZ2IoQSwwKSxhPWI7YnJlYWs7Y2FzZSA1MzppZihHPVEuc3RhdGUucGF0dGVyblN0cm9rZUNvbG9yU3BhY2UsIUcpe0E9W10sYT05MjticmVha31pZigiUGF0dGVybiI9PT1HLm5hbWUpcmV0dXJuIHZvaWQgcChuLmhhbmRsZUNvbG9yTihpLDUzLEEsRyxsLHQsZSxJLGgsQykpO0E9Ry5nZXRSZ2IoQSwwKSxhPUQ7YnJlYWs7Y2FzZSA2MjpsZXQgRTt0cnl7Y29uc3QgZT10LmdldCgiU2hhZGluZyIpO2lmKCFlKXRocm93IG5ldyBXKCJObyBzaGFkaW5nIHJlc291cmNlIGZvdW5kIik7aWYoRT1lLmdldChBWzBdLm5hbWUpLCFFKXRocm93IG5ldyBXKCJObyBzaGFkaW5nIG9iamVjdCBmb3VuZCIpfWNhdGNoKEEpe2lmKEEgaW5zdGFuY2VvZiBPKWNvbnRpbnVlO2lmKG4ub3B0aW9ucy5pZ25vcmVFcnJvcnMpe1UoYGdldE9wZXJhdG9yTGlzdCAtIGlnbm9yaW5nIFNoYWRpbmc6ICIke0F9Ii5gKTtjb250aW51ZX10aHJvdyBBfWNvbnN0IHU9bi5wYXJzZVNoYWRpbmcoe3NoYWRpbmc6RSxyZXNvdXJjZXM6dCxsb2NhbENvbG9yU3BhY2VDYWNoZTpJLGxvY2FsU2hhZGluZ1BhdHRlcm5DYWNoZTpDfSk7aWYoIXUpY29udGludWU7QT1bdV0sYT02MjticmVhaztjYXNlIDk6aWYoTT1BWzBdaW5zdGFuY2VvZiBDQSxOPUFbMF0ubmFtZSxNKXtjb25zdCBlPWMuZ2V0QnlOYW1lKE4pO2lmKGUpe2UubGVuZ3RoPjAmJmkuYWRkT3AoOSxbZV0pLEE9bnVsbDtjb250aW51ZX19cmV0dXJuIHZvaWQgcChuZXcgUHJvbWlzZSgoZnVuY3Rpb24oQSxhKXtpZighTSl0aHJvdyBuZXcgVygiR1N0YXRlIG11c3QgYmUgcmVmZXJyZWQgdG8gYnkgbmFtZS4iKTtjb25zdCBzPXQuZ2V0KCJFeHRHU3RhdGUiKTtpZighKHMgaW5zdGFuY2VvZiBRQSkpdGhyb3cgbmV3IFcoIkV4dEdTdGF0ZSBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5LiIpO2NvbnN0IHI9cy5nZXQoTik7aWYoIShyIGluc3RhbmNlb2YgUUEpKXRocm93IG5ldyBXKCJHU3RhdGUgc2hvdWxkIGJlIGEgZGljdGlvbmFyeS4iKTtuLnNldEdTdGF0ZSh7cmVzb3VyY2VzOnQsZ1N0YXRlOnIsb3BlcmF0b3JMaXN0OmksY2FjaGVLZXk6Tix0YXNrOmUsc3RhdGVNYW5hZ2VyOlEsbG9jYWxHU3RhdGVDYWNoZTpjLGxvY2FsQ29sb3JTcGFjZUNhY2hlOkl9KS50aGVuKEEsYSl9KSkuY2F0Y2goKGZ1bmN0aW9uKEEpe2lmKCEoQSBpbnN0YW5jZW9mIE8pKXtpZighbi5vcHRpb25zLmlnbm9yZUVycm9ycyl0aHJvdyBBO1UoYGdldE9wZXJhdG9yTGlzdCAtIGlnbm9yaW5nIEV4dEdTdGF0ZTogIiR7QX0iLmApfX0pKSk7Y2FzZSAxMzpjYXNlIDE0OmNhc2UgMTU6Y2FzZSAxNjpjYXNlIDE3OmNhc2UgMTg6Y2FzZSAxOTpuLmJ1aWxkUGF0aChpLGEsQSxnKTtjb250aW51ZTtjYXNlIDY3OmNhc2UgNjg6Y2FzZSA3MjpjYXNlIDczOmNvbnRpbnVlO2Nhc2UgazppZighKEFbMF1pbnN0YW5jZW9mIENBKSl7VShgRXhwZWN0ZWQgbmFtZSBmb3IgYmVnaW5NYXJrZWRDb250ZW50UHJvcHMgYXJnMD0ke0FbMF19YCksaS5hZGRPcChrLFsiT0MiLG51bGxdKTtjb250aW51ZX1pZigiT0MiPT09QVswXS5uYW1lKXJldHVybiB2b2lkIHAobi5wYXJzZU1hcmtlZENvbnRlbnRQcm9wcyhBWzFdLHQpLnRoZW4oKEE9PntpLmFkZE9wKGssWyJPQyIsQV0pfSkpLmNhdGNoKChBPT57aWYoIShBIGluc3RhbmNlb2YgTykpe2lmKG4ub3B0aW9ucy5pZ25vcmVFcnJvcnMpcmV0dXJuIFUoYGdldE9wZXJhdG9yTGlzdCAtIGlnbm9yaW5nIGJlZ2luTWFya2VkQ29udGVudFByb3BzOiAiJHtBfSIuYCksdm9pZCBpLmFkZE9wKGssWyJPQyIsbnVsbF0pO3Rocm93IEF9fSkpKTtBPVtBWzBdLm5hbWUsQVsxXWluc3RhbmNlb2YgUUE/QVsxXS5nZXQoIk1DSUQiKTpudWxsXTticmVhaztkZWZhdWx0OmlmKG51bGwhPT1BKXtmb3IoUz0wLFI9QS5sZW5ndGg7UzxSJiYhKEFbU11pbnN0YW5jZW9mIFFBKTtTKyspO2lmKFM8Uil7VSgiZ2V0T3BlcmF0b3JMaXN0IC0gaWdub3Jpbmcgb3BlcmF0b3I6ICIrYSk7Y29udGludWV9fX1pLmFkZE9wKGEsQSl9Rj9wKG9nKTooZCgpLGEoKSl9KSkuY2F0Y2goKEE9PntpZighKEEgaW5zdGFuY2VvZiBPKSl7aWYodGhpcy5vcHRpb25zLmlnbm9yZUVycm9ycylyZXR1cm4gVShgZ2V0T3BlcmF0b3JMaXN0IC0gaWdub3JpbmcgZXJyb3JzIGR1cmluZyAiJHtlLm5hbWV9IiB0YXNrOiAiJHtBfSIuYCksdm9pZCBkKCk7dGhyb3cgQX19KSl9Z2V0VGV4dENvbnRlbnQoe3N0cmVhbTpBLHRhc2s6ZSxyZXNvdXJjZXM6dCxzdGF0ZU1hbmFnZXI6aT1udWxsLGluY2x1ZGVNYXJrZWRDb250ZW50OmE9ITEsc2luazpyLHNlZW5TdHlsZXM6Zz1uZXcgU2V0LHZpZXdCb3g6byxsYW5nOkk9bnVsbCxtYXJrZWRDb250ZW50RGF0YTpjPW51bGwsZGlzYWJsZU5vcm1hbGl6YXRpb246aD0hMSxrZWVwV2hpdGVTcGFjZTpDPSExfSl7dHx8PVFBLmVtcHR5LGl8fD1uZXcgbGcobmV3IFFnKSxhJiYoY3x8PXtsZXZlbDowfSk7Y29uc3QgQj17aXRlbXM6W10sc3R5bGVzOk9iamVjdC5jcmVhdGUobnVsbCksbGFuZzpJfSxsPXtpbml0aWFsaXplZDohMSxzdHI6W10sdG90YWxXaWR0aDowLHRvdGFsSGVpZ2h0OjAsd2lkdGg6MCxoZWlnaHQ6MCx2ZXJ0aWNhbDohMSxwcmV2VHJhbnNmb3JtOm51bGwsdGV4dEFkdmFuY2VTY2FsZTowLHNwYWNlSW5GbG93TWluOjAsc3BhY2VJbkZsb3dNYXg6MCx0cmFja2luZ1NwYWNlTWluOjEvMCxuZWdhdGl2ZVNwYWNlTWF4Oi0xLzAsbm90QVNwYWNlOi0xLzAsdHJhbnNmb3JtOm51bGwsZm9udE5hbWU6bnVsbCxoYXNFT0w6ITF9LFE9WyIgIiwiICJdO2xldCBFPTA7ZnVuY3Rpb24gdShBKXtjb25zdCBlPShFKzEpJTIsdD0iICIhPT1RW0VdJiYiICI9PT1RW2VdO3JldHVybiBRW0VdPUEsRT1lLCFDJiZ0fWZ1bmN0aW9uIGQoKXtyZXR1cm4hQyYmIiAiIT09UVtFXSYmIiAiPT09UVsoRSsxKSUyXX1mdW5jdGlvbiBmKCl7UVswXT1RWzFdPSIgIixFPTB9Y29uc3QgbT10aGlzLEQ9dGhpcy54cmVmLGI9W107bGV0IFM9bnVsbDtjb25zdCBSPW5ldyBpcixHPW5ldyBucixOPW5ldyB1ZyhBLEQsaSk7bGV0IHg7ZnVuY3Rpb24gTSh7d2lkdGg6QT0wLGhlaWdodDplPTAsdHJhbnNmb3JtOnQ9bC5wcmV2VHJhbnNmb3JtLGZvbnROYW1lOmk9bC5mb250TmFtZX0pe0IuaXRlbXMucHVzaCh7c3RyOiIgIixkaXI6Imx0ciIsd2lkdGg6QSxoZWlnaHQ6ZSx0cmFuc2Zvcm06dCxmb250TmFtZTppLGhhc0VPTDohMX0pfWZ1bmN0aW9uIEwoKXtjb25zdCBBPXguZm9udCxlPVt4LmZvbnRTaXplKngudGV4dEhTY2FsZSwwLDAseC5mb250U2l6ZSwwLHgudGV4dFJpc2VdO2lmKEEuaXNUeXBlM0ZvbnQmJih4LmZvbnRTaXplPD0xfHxBLmlzQ2hhckJCb3gpJiYhYUEoeC5mb250TWF0cml4LG4pKXtjb25zdCB0PUEuYmJveFszXS1BLmJib3hbMV07dD4wJiYoZVszXSo9dCp4LmZvbnRNYXRyaXhbM10pfXJldHVybiAkLnRyYW5zZm9ybSh4LmN0bSwkLnRyYW5zZm9ybSh4LnRleHRNYXRyaXgsZSkpfWZ1bmN0aW9uIEooKXtpZihsLmluaXRpYWxpemVkKXJldHVybiBsO2NvbnN0e2ZvbnQ6QSxsb2FkZWROYW1lOmV9PXg7aWYoIWcuaGFzKGUpJiYoZy5hZGQoZSksQi5zdHlsZXNbZV09e2ZvbnRGYW1pbHk6QS5mYWxsYmFja05hbWUsYXNjZW50OkEuYXNjZW50LGRlc2NlbnQ6QS5kZXNjZW50LHZlcnRpY2FsOkEudmVydGljYWx9LG0ub3B0aW9ucy5mb250RXh0cmFQcm9wZXJ0aWVzJiZBLnN5c3RlbUZvbnRJbmZvKSl7Y29uc3QgdD1CLnN0eWxlc1tlXTt0LmZvbnRTdWJzdGl0dXRpb249QS5zeXN0ZW1Gb250SW5mby5jc3MsdC5mb250U3Vic3RpdHV0aW9uTG9hZGVkTmFtZT1BLnN5c3RlbUZvbnRJbmZvLmxvYWRlZE5hbWV9bC5mb250TmFtZT1lO2NvbnN0IHQ9bC50cmFuc2Zvcm09TCgpO0EudmVydGljYWw/KGwud2lkdGg9bC50b3RhbFdpZHRoPU1hdGguaHlwb3QodFswXSx0WzFdKSxsLmhlaWdodD1sLnRvdGFsSGVpZ2h0PTAsbC52ZXJ0aWNhbD0hMCk6KGwud2lkdGg9bC50b3RhbFdpZHRoPTAsbC5oZWlnaHQ9bC50b3RhbEhlaWdodD1NYXRoLmh5cG90KHRbMl0sdFszXSksbC52ZXJ0aWNhbD0hMSk7Y29uc3QgaT1NYXRoLmh5cG90KHgudGV4dExpbmVNYXRyaXhbMF0seC50ZXh0TGluZU1hdHJpeFsxXSksYT1NYXRoLmh5cG90KHguY3RtWzBdLHguY3RtWzFdKTtsLnRleHRBZHZhbmNlU2NhbGU9YSppO2NvbnN0e2ZvbnRTaXplOnN9PXg7cmV0dXJuIGwudHJhY2tpbmdTcGFjZU1pbj0uMTAyKnMsbC5ub3RBU3BhY2U9LjAzKnMsbC5uZWdhdGl2ZVNwYWNlTWF4PS0uMipzLGwuc3BhY2VJbkZsb3dNaW49LjEwMipzLGwuc3BhY2VJbkZsb3dNYXg9LjYqcyxsLmhhc0VPTD0hMSxsLmluaXRpYWxpemVkPSEwLGx9ZnVuY3Rpb24gSCgpe2lmKCFsLmluaXRpYWxpemVkKXJldHVybjtjb25zdCBBPU1hdGguaHlwb3QoeC50ZXh0TGluZU1hdHJpeFswXSx4LnRleHRMaW5lTWF0cml4WzFdKSxlPU1hdGguaHlwb3QoeC5jdG1bMF0seC5jdG1bMV0pKkE7ZSE9PWwudGV4dEFkdmFuY2VTY2FsZSYmKGwudmVydGljYWw/KGwudG90YWxIZWlnaHQrPWwuaGVpZ2h0KmwudGV4dEFkdmFuY2VTY2FsZSxsLmhlaWdodD0wKToobC50b3RhbFdpZHRoKz1sLndpZHRoKmwudGV4dEFkdmFuY2VTY2FsZSxsLndpZHRoPTApLGwudGV4dEFkdmFuY2VTY2FsZT1lKX1hc3luYyBmdW5jdGlvbiBZKEEsaSl7Y29uc3QgYT1hd2FpdCBtLmxvYWRGb250KEEsaSx0KTtpZihhLmZvbnQuaXNUeXBlM0ZvbnQpdHJ5e2F3YWl0IGEubG9hZFR5cGUzRGF0YShtLHQsZSl9Y2F0Y2h7fXgubG9hZGVkTmFtZT1hLmxvYWRlZE5hbWUseC5mb250PWEuZm9udCx4LmZvbnRNYXRyaXg9YS5mb250LmZvbnRNYXRyaXh8fG59ZnVuY3Rpb24gdihBLGUsdCl7Y29uc3QgaT1NYXRoLmh5cG90KHRbMF0sdFsxXSk7cmV0dXJuWyh0WzBdKkErdFsxXSplKS9pLCh0WzJdKkErdFszXSplKS9pXX1mdW5jdGlvbiBLKEEpe2NvbnN0IGU9TCgpO2xldCB0PWVbNF0saT1lWzVdO2lmKHguZm9udD8udmVydGljYWwpe2lmKHQ8b1swXXx8dD5vWzJdfHxpK0E8b1sxXXx8aT5vWzNdKXJldHVybiExfWVsc2UgaWYodCtBPG9bMF18fHQ+b1syXXx8aTxvWzFdfHxpPm9bM10pcmV0dXJuITE7aWYoIXguZm9udHx8IWwucHJldlRyYW5zZm9ybSlyZXR1cm4hMDtsZXQgYT1sLnByZXZUcmFuc2Zvcm1bNF0scz1sLnByZXZUcmFuc2Zvcm1bNV07aWYoYT09PXQmJnM9PT1pKXJldHVybiEwO2xldCBuPS0xO3N3aXRjaChlWzBdJiYwPT09ZVsxXSYmMD09PWVbMl0/bj1lWzBdPjA/MDoxODA6ZVsxXSYmMD09PWVbMF0mJjA9PT1lWzNdJiYobj1lWzFdPjA/OTA6MjcwKSxuKXtjYXNlIDA6YnJlYWs7Y2FzZSA5MDpbdCxpXT1baSx0XSxbYSxzXT1bcyxhXTticmVhaztjYXNlIDE4MDpbdCxpLGEsc109Wy10LC1pLC1hLC1zXTticmVhaztjYXNlIDI3MDpbdCxpXT1bLWksLXRdLFthLHNdPVstcywtYV07YnJlYWs7ZGVmYXVsdDpbdCxpXT12KHQsaSxlKSxbYSxzXT12KGEscyxsLnByZXZUcmFuc2Zvcm0pfWlmKHguZm9udC52ZXJ0aWNhbCl7Y29uc3QgQT0ocy1pKS9sLnRleHRBZHZhbmNlU2NhbGUsZT10LWEsbj1NYXRoLnNpZ24obC5oZWlnaHQpO3JldHVybiBBPG4qbC5uZWdhdGl2ZVNwYWNlTWF4P01hdGguYWJzKGUpPi41Kmwud2lkdGg/KFQoKSwhMCk6KGYoKSxaKCksITApOk1hdGguYWJzKGUpPmwud2lkdGg/KFQoKSwhMCk6KEE8PW4qbC5ub3RBU3BhY2UmJmYoKSxBPD1uKmwudHJhY2tpbmdTcGFjZU1pbj9kKCk/KGYoKSxaKCksTSh7aGVpZ2h0Ok1hdGguYWJzKEEpfSkpOmwuaGVpZ2h0Kz1BOlAoQSxsLnByZXZUcmFuc2Zvcm0sbil8fCgwPT09bC5zdHIubGVuZ3RoPyhmKCksTSh7aGVpZ2h0Ok1hdGguYWJzKEEpfSkpOmwuaGVpZ2h0Kz1BKSxNYXRoLmFicyhlKT4uMjUqbC53aWR0aCYmWigpLCEwKX1jb25zdCByPSh0LWEpL2wudGV4dEFkdmFuY2VTY2FsZSxnPWktcyxJPU1hdGguc2lnbihsLndpZHRoKTtyZXR1cm4gcjxJKmwubmVnYXRpdmVTcGFjZU1heD9NYXRoLmFicyhnKT4uNSpsLmhlaWdodD8oVCgpLCEwKTooZigpLFooKSwhMCk6TWF0aC5hYnMoZyk+bC5oZWlnaHQ/KFQoKSwhMCk6KHI8PUkqbC5ub3RBU3BhY2UmJmYoKSxyPD1JKmwudHJhY2tpbmdTcGFjZU1pbj9kKCk/KGYoKSxaKCksTSh7d2lkdGg6TWF0aC5hYnMocil9KSk6bC53aWR0aCs9cjpQKHIsbC5wcmV2VHJhbnNmb3JtLEkpfHwoMD09PWwuc3RyLmxlbmd0aD8oZigpLE0oe3dpZHRoOk1hdGguYWJzKHIpfSkpOmwud2lkdGgrPXIpLE1hdGguYWJzKGcpPi4yNSpsLmhlaWdodCYmWigpLCEwKX1mdW5jdGlvbiBxKHtjaGFyczpBLGV4dHJhU3BhY2luZzplfSl7Y29uc3QgdD14LmZvbnQ7aWYoIUEpe2NvbnN0IEE9eC5jaGFyU3BhY2luZytlO3JldHVybiBBJiYodC52ZXJ0aWNhbD94LnRyYW5zbGF0ZVRleHRNYXRyaXgoMCwtQSk6eC50cmFuc2xhdGVUZXh0TWF0cml4KEEqeC50ZXh0SFNjYWxlLDApKSx2b2lkKEMmJksoMCkpfWNvbnN0IGk9dC5jaGFyc1RvR2x5cGhzKEEpLGE9eC5mb250TWF0cml4WzBdKnguZm9udFNpemU7Zm9yKGxldCBBPTAscz1pLmxlbmd0aDtBPHM7QSsrKXtjb25zdCBuPWlbQV0se2NhdGVnb3J5OnJ9PW47aWYoci5pc0ludmlzaWJsZUZvcm1hdE1hcmspY29udGludWU7bGV0IGc9eC5jaGFyU3BhY2luZysoQSsxPT09cz9lOjApLG89bi53aWR0aDt0LnZlcnRpY2FsJiYobz1uLnZtZXRyaWM/bi52bWV0cmljWzBdOi1vKTtsZXQgST1vKmE7aWYoIUMmJnIuaXNXaGl0ZXNwYWNlKXt0LnZlcnRpY2FsPyhnKz0tSSt4LndvcmRTcGFjaW5nLHgudHJhbnNsYXRlVGV4dE1hdHJpeCgwLC1nKSk6KGcrPUkreC53b3JkU3BhY2luZyx4LnRyYW5zbGF0ZVRleHRNYXRyaXgoZyp4LnRleHRIU2NhbGUsMCkpLHUoIiAiKTtjb250aW51ZX1pZighci5pc1plcm9XaWR0aERpYWNyaXRpYyYmIUsoSSkpe3QudmVydGljYWw/eC50cmFuc2xhdGVUZXh0TWF0cml4KDAsSSk6eC50cmFuc2xhdGVUZXh0TWF0cml4KEkqeC50ZXh0SFNjYWxlLDApO2NvbnRpbnVlfWNvbnN0IGM9SigpO3IuaXNaZXJvV2lkdGhEaWFjcml0aWMmJihJPTApLHQudmVydGljYWw/KHgudHJhbnNsYXRlVGV4dE1hdHJpeCgwLEkpLEk9TWF0aC5hYnMoSSksYy5oZWlnaHQrPUkpOihJKj14LnRleHRIU2NhbGUseC50cmFuc2xhdGVUZXh0TWF0cml4KEksMCksYy53aWR0aCs9SSksSSYmKGMucHJldlRyYW5zZm9ybT1MKCkpO2NvbnN0IGg9bi51bmljb2RlO3UoaCkmJmMuc3RyLnB1c2goIiAiKSxjLnN0ci5wdXNoKGgpLGcmJih0LnZlcnRpY2FsP3gudHJhbnNsYXRlVGV4dE1hdHJpeCgwLC1nKTp4LnRyYW5zbGF0ZVRleHRNYXRyaXgoZyp4LnRleHRIU2NhbGUsMCkpfX1mdW5jdGlvbiBUKCl7ZigpLGwuaW5pdGlhbGl6ZWQ/KGwuaGFzRU9MPSEwLFooKSk6Qi5pdGVtcy5wdXNoKHtzdHI6IiIsZGlyOiJsdHIiLHdpZHRoOjAsaGVpZ2h0OjAsdHJhbnNmb3JtOkwoKSxmb250TmFtZTp4LmxvYWRlZE5hbWUsaGFzRU9MOiEwfSl9ZnVuY3Rpb24gUChBLGUsdCl7aWYodCpsLnNwYWNlSW5GbG93TWluPD1BJiZBPD10Kmwuc3BhY2VJbkZsb3dNYXgpcmV0dXJuIGwuaW5pdGlhbGl6ZWQmJihmKCksbC5zdHIucHVzaCgiICIpKSwhMTtjb25zdCBpPWwuZm9udE5hbWU7bGV0IGE9MDtyZXR1cm4gbC52ZXJ0aWNhbCYmKGE9QSxBPTApLFooKSxmKCksTSh7d2lkdGg6TWF0aC5hYnMoQSksaGVpZ2h0Ok1hdGguYWJzKGEpLHRyYW5zZm9ybTplfHxMKCksZm9udE5hbWU6aX0pLCEwfWZ1bmN0aW9uIFooKXtsLmluaXRpYWxpemVkJiZsLnN0ciYmKGwudmVydGljYWw/bC50b3RhbEhlaWdodCs9bC5oZWlnaHQqbC50ZXh0QWR2YW5jZVNjYWxlOmwudG90YWxXaWR0aCs9bC53aWR0aCpsLnRleHRBZHZhbmNlU2NhbGUsQi5pdGVtcy5wdXNoKGZ1bmN0aW9uKEEpe2xldCBlPUEuc3RyLmpvaW4oIiIpO3ZhciB0O2h8fCh0PWUsbkF8fChuQT0vKFtcdTAwYTBcdTAwYjVcdTAzN2VcdTBlYjNcdTIwMDAtXHUyMDBhXHUyMDJmXHUyMTI2XHVmYjAwLVx1ZmIwNFx1ZmIwNlx1ZmIyMC1cdWZiMzZcdWZiMzgtXHVmYjNjXHVmYjNlXHVmYjQwLVx1ZmI0MVx1ZmI0My1cdWZiNDRcdWZiNDYtXHVmYmExXHVmYmE0LVx1ZmJhOVx1ZmJhZS1cdWZiYjFcdWZiZDMtXHVmYmRjXHVmYmRlLVx1ZmJlN1x1ZmJlYS1cdWZiZjhcdWZiZmMtXHVmYmZkXHVmYzAwLVx1ZmM1ZFx1ZmM2NC1cdWZjZjFcdWZjZjUtXHVmZDNkXHVmZDg4XHVmZGY0XHVmZGZhLVx1ZmRmYlx1ZmU3MVx1ZmU3N1x1ZmU3OVx1ZmU3Ylx1ZmU3ZF0rKXwoXHVmYjA1KykvZ3UsckE9bmV3IE1hcChbWyLvrIUiLCLFv3QiXV0pKSxlPXQucmVwbGFjZUFsbChuQSwoKEEsZSx0KT0+ZT9lLm5vcm1hbGl6ZSgiTkZLQyIpOnJBLmdldCh0KSkpKTtjb25zdCBpPVlyKGUsLTEsQS52ZXJ0aWNhbCk7cmV0dXJue3N0cjppLnN0cixkaXI6aS5kaXIsd2lkdGg6TWF0aC5hYnMoQS50b3RhbFdpZHRoKSxoZWlnaHQ6TWF0aC5hYnMoQS50b3RhbEhlaWdodCksdHJhbnNmb3JtOkEudHJhbnNmb3JtLGZvbnROYW1lOkEuZm9udE5hbWUsaGFzRU9MOkEuaGFzRU9MfX0obCkpLGwuaW5pdGlhbGl6ZWQ9ITEsbC5zdHIubGVuZ3RoPTApfWZ1bmN0aW9uIGooQT0hMSl7Y29uc3QgZT1CLml0ZW1zLmxlbmd0aDswIT09ZSYmKEEmJmU8MTB8fChyLmVucXVldWUoQixlKSxCLml0ZW1zPVtdLEIuc3R5bGVzPU9iamVjdC5jcmVhdGUobnVsbCkpKX1jb25zdCBYPW5ldyBoZztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uIEEobixsKXtjb25zdCBRPWZ1bmN0aW9uKGUpe2ooITApLFByb21pc2UuYWxsKFtlLHIucmVhZHldKS50aGVuKChmdW5jdGlvbigpe3RyeXtBKG4sbCl9Y2F0Y2goQSl7bChBKX19KSxsKX07ZS5lbnN1cmVOb3RUZXJtaW5hdGVkKCksWC5yZXNldCgpO2NvbnN0IEU9e307bGV0IHUsZD1bXTtmb3IoOyEodT1YLmNoZWNrKCkpJiYoZC5sZW5ndGg9MCxFLmFyZ3M9ZCxOLnJlYWQoRSkpOyl7Y29uc3QgQT14O3g9aS5zdGF0ZTtjb25zdCBuPUUuZm47c3dpdGNoKGQ9RS5hcmdzLDB8bil7Y2FzZSB5OnZhciBmPWRbMF0ubmFtZSxNPWRbMV07aWYoeC5mb250JiZmPT09eC5mb250TmFtZSYmTT09PXguZm9udFNpemUpYnJlYWs7cmV0dXJuIFooKSx4LmZvbnROYW1lPWYseC5mb250U2l6ZT1NLHZvaWQgUShZKGYsbnVsbCkpO2Nhc2UgMzk6eC50ZXh0UmlzZT1kWzBdO2JyZWFrO2Nhc2UgMzU6eC50ZXh0SFNjYWxlPWRbMF0vMTAwO2JyZWFrO2Nhc2UgMzY6eC5sZWFkaW5nPWRbMF07YnJlYWs7Y2FzZSA0MDp4LnRyYW5zbGF0ZVRleHRMaW5lTWF0cml4KGRbMF0sZFsxXSkseC50ZXh0TWF0cml4PXgudGV4dExpbmVNYXRyaXguc2xpY2UoKTticmVhaztjYXNlIDQxOngubGVhZGluZz0tZFsxXSx4LnRyYW5zbGF0ZVRleHRMaW5lTWF0cml4KGRbMF0sZFsxXSkseC50ZXh0TWF0cml4PXgudGV4dExpbmVNYXRyaXguc2xpY2UoKTticmVhaztjYXNlIDQzOnguY2FycmlhZ2VSZXR1cm4oKTticmVhaztjYXNlIDQyOnguc2V0VGV4dE1hdHJpeChkWzBdLGRbMV0sZFsyXSxkWzNdLGRbNF0sZFs1XSkseC5zZXRUZXh0TGluZU1hdHJpeChkWzBdLGRbMV0sZFsyXSxkWzNdLGRbNF0sZFs1XSksSCgpO2JyZWFrO2Nhc2UgMzM6eC5jaGFyU3BhY2luZz1kWzBdO2JyZWFrO2Nhc2UgMzQ6eC53b3JkU3BhY2luZz1kWzBdO2JyZWFrO2Nhc2UgMzE6eC50ZXh0TWF0cml4PXMuc2xpY2UoKSx4LnRleHRMaW5lTWF0cml4PXMuc2xpY2UoKTticmVhaztjYXNlIDQ1OmlmKCFpLnN0YXRlLmZvbnQpe20uZW5zdXJlU3RhdGVGb250KGkuc3RhdGUpO2NvbnRpbnVlfWNvbnN0IG49KHguZm9udC52ZXJ0aWNhbD8xOi0xKSp4LmZvbnRTaXplLzFlMyxsPWRbMF07Zm9yKGxldCBBPTAsZT1sLmxlbmd0aDtBPGU7QSsrKXtjb25zdCBlPWxbQV07aWYoInN0cmluZyI9PXR5cGVvZiBlKWIucHVzaChlKTtlbHNlIGlmKCJudW1iZXIiPT10eXBlb2YgZSYmMCE9PWUpe2NvbnN0IEE9Yi5qb2luKCIiKTtiLmxlbmd0aD0wLHEoe2NoYXJzOkEsZXh0cmFTcGFjaW5nOmUqbn0pfX1pZihiLmxlbmd0aD4wKXtjb25zdCBBPWIuam9pbigiIik7Yi5sZW5ndGg9MCxxKHtjaGFyczpBLGV4dHJhU3BhY2luZzowfSl9YnJlYWs7Y2FzZSB3OmlmKCFpLnN0YXRlLmZvbnQpe20uZW5zdXJlU3RhdGVGb250KGkuc3RhdGUpO2NvbnRpbnVlfXEoe2NoYXJzOmRbMF0sZXh0cmFTcGFjaW5nOjB9KTticmVhaztjYXNlIDQ2OmlmKCFpLnN0YXRlLmZvbnQpe20uZW5zdXJlU3RhdGVGb250KGkuc3RhdGUpO2NvbnRpbnVlfXguY2FycmlhZ2VSZXR1cm4oKSxxKHtjaGFyczpkWzBdLGV4dHJhU3BhY2luZzowfSk7YnJlYWs7Y2FzZSA0NzppZighaS5zdGF0ZS5mb250KXttLmVuc3VyZVN0YXRlRm9udChpLnN0YXRlKTtjb250aW51ZX14LndvcmRTcGFjaW5nPWRbMF0seC5jaGFyU3BhY2luZz1kWzFdLHguY2FycmlhZ2VSZXR1cm4oKSxxKHtjaGFyczpkWzJdLGV4dHJhU3BhY2luZzowfSk7YnJlYWs7Y2FzZSA2NjpaKCksU3x8KFM9dC5nZXQoIlhPYmplY3QiKXx8UUEuZW1wdHkpO3ZhciBMPWRbMF1pbnN0YW5jZW9mIENBLEo9ZFswXS5uYW1lO2lmKEwmJlIuZ2V0QnlOYW1lKEopKWJyZWFrO3JldHVybiB2b2lkIFEobmV3IFByb21pc2UoKGZ1bmN0aW9uKEEscyl7aWYoIUwpdGhyb3cgbmV3IFcoIlhPYmplY3QgbXVzdCBiZSByZWZlcnJlZCB0byBieSBuYW1lLiIpO2xldCBuPVMuZ2V0UmF3KEopO2lmKG4gaW5zdGFuY2VvZiBFQSl7aWYoUi5nZXRCeVJlZihuKSlyZXR1cm4gdm9pZCBBKCk7aWYobS5nbG9iYWxJbWFnZUNhY2hlLmdldERhdGEobixtLnBhZ2VJbmRleCkpcmV0dXJuIHZvaWQgQSgpO249RC5mZXRjaChuKX1pZighKG4gaW5zdGFuY2VvZiB3QSkpdGhyb3cgbmV3IFcoIlhPYmplY3Qgc2hvdWxkIGJlIGEgc3RyZWFtIik7Y29uc3QgQj1uLmRpY3QuZ2V0KCJTdWJ0eXBlIik7aWYoIShCIGluc3RhbmNlb2YgQ0EpKXRocm93IG5ldyBXKCJYT2JqZWN0IHNob3VsZCBoYXZlIGEgTmFtZSBzdWJ0eXBlIik7aWYoIkZvcm0iIT09Qi5uYW1lKXJldHVybiBSLnNldChKLG4uZGljdC5vYmpJZCwhMCksdm9pZCBBKCk7Y29uc3QgbD1pLnN0YXRlLmNsb25lKCksUT1uZXcgbGcobCksRT1LQShuLmRpY3QuZ2V0QXJyYXkoIk1hdHJpeCIpLG51bGwpO0UmJlEudHJhbnNmb3JtKEUpLGooKTtjb25zdCB1PXtlbnF1ZXVlSW52b2tlZDohMSxlbnF1ZXVlKEEsZSl7dGhpcy5lbnF1ZXVlSW52b2tlZD0hMCxyLmVucXVldWUoQSxlKX0sZ2V0IGRlc2lyZWRTaXplKCl7cmV0dXJuIHIuZGVzaXJlZFNpemV9LGdldCByZWFkeSgpe3JldHVybiByLnJlYWR5fX07bS5nZXRUZXh0Q29udGVudCh7c3RyZWFtOm4sdGFzazplLHJlc291cmNlczpuLmRpY3QuZ2V0KCJSZXNvdXJjZXMiKXx8dCxzdGF0ZU1hbmFnZXI6USxpbmNsdWRlTWFya2VkQ29udGVudDphLHNpbms6dSxzZWVuU3R5bGVzOmcsdmlld0JveDpvLGxhbmc6SSxtYXJrZWRDb250ZW50RGF0YTpjLGRpc2FibGVOb3JtYWxpemF0aW9uOmgsa2VlcFdoaXRlU3BhY2U6Q30pLnRoZW4oKGZ1bmN0aW9uKCl7dS5lbnF1ZXVlSW52b2tlZHx8Ui5zZXQoSixuLmRpY3Qub2JqSWQsITApLEEoKX0pLHMpfSkpLmNhdGNoKChmdW5jdGlvbihBKXtpZighKEEgaW5zdGFuY2VvZiBPKSl7aWYoIW0ub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgQTtVKGBnZXRUZXh0Q29udGVudCAtIGlnbm9yaW5nIFhPYmplY3Q6ICIke0F9Ii5gKX19KSkpO2Nhc2UgOTppZihMPWRbMF1pbnN0YW5jZW9mIENBLEo9ZFswXS5uYW1lLEwmJkcuZ2V0QnlOYW1lKEopKWJyZWFrO3JldHVybiB2b2lkIFEobmV3IFByb21pc2UoKGZ1bmN0aW9uKEEsZSl7aWYoIUwpdGhyb3cgbmV3IFcoIkdTdGF0ZSBtdXN0IGJlIHJlZmVycmVkIHRvIGJ5IG5hbWUuIik7Y29uc3QgaT10LmdldCgiRXh0R1N0YXRlIik7aWYoIShpIGluc3RhbmNlb2YgUUEpKXRocm93IG5ldyBXKCJFeHRHU3RhdGUgc2hvdWxkIGJlIGEgZGljdGlvbmFyeS4iKTtjb25zdCBhPWkuZ2V0KEopO2lmKCEoYSBpbnN0YW5jZW9mIFFBKSl0aHJvdyBuZXcgVygiR1N0YXRlIHNob3VsZCBiZSBhIGRpY3Rpb25hcnkuIik7Y29uc3Qgcz1hLmdldCgiRm9udCIpO2lmKCFzKXJldHVybiBHLnNldChKLGEub2JqSWQsITApLHZvaWQgQSgpO1ooKSx4LmZvbnROYW1lPW51bGwseC5mb250U2l6ZT1zWzFdLFkobnVsbCxzWzBdKS50aGVuKEEsZSl9KSkuY2F0Y2goKGZ1bmN0aW9uKEEpe2lmKCEoQSBpbnN0YW5jZW9mIE8pKXtpZighbS5vcHRpb25zLmlnbm9yZUVycm9ycyl0aHJvdyBBO1UoYGdldFRleHRDb250ZW50IC0gaWdub3JpbmcgRXh0R1N0YXRlOiAiJHtBfSIuYCl9fSkpKTtjYXNlIDY5OlooKSxhJiYoYy5sZXZlbCsrLEIuaXRlbXMucHVzaCh7dHlwZToiYmVnaW5NYXJrZWRDb250ZW50Iix0YWc6ZFswXWluc3RhbmNlb2YgQ0E/ZFswXS5uYW1lOm51bGx9KSk7YnJlYWs7Y2FzZSBrOmlmKFooKSxhKXtjLmxldmVsKys7bGV0IEE9bnVsbDtkWzFdaW5zdGFuY2VvZiBRQSYmKEE9ZFsxXS5nZXQoIk1DSUQiKSksQi5pdGVtcy5wdXNoKHt0eXBlOiJiZWdpbk1hcmtlZENvbnRlbnRQcm9wcyIsaWQ6TnVtYmVyLmlzSW50ZWdlcihBKT9gJHttLmlkRmFjdG9yeS5nZXRQYWdlT2JqSWQoKX1fbWMke0F9YDpudWxsLHRhZzpkWzBdaW5zdGFuY2VvZiBDQT9kWzBdLm5hbWU6bnVsbH0pfWJyZWFrO2Nhc2UgRjppZihaKCksYSl7aWYoMD09PWMubGV2ZWwpYnJlYWs7Yy5sZXZlbC0tLEIuaXRlbXMucHVzaCh7dHlwZToiZW5kTWFya2VkQ29udGVudCJ9KX1icmVhaztjYXNlIHA6IUF8fEEuZm9udD09PXguZm9udCYmQS5mb250U2l6ZT09PXguZm9udFNpemUmJkEuZm9udE5hbWU9PT14LmZvbnROYW1lfHxaKCl9aWYoQi5pdGVtcy5sZW5ndGg+PXIuZGVzaXJlZFNpemUpe3U9ITA7YnJlYWt9fXU/UShvZyk6KFooKSxqKCksbigpKX0pKS5jYXRjaCgoQT0+e2lmKCEoQSBpbnN0YW5jZW9mIE8pKXtpZih0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXJldHVybiBVKGBnZXRUZXh0Q29udGVudCAtIGlnbm9yaW5nIGVycm9ycyBkdXJpbmcgIiR7ZS5uYW1lfSIgdGFzazogIiR7QX0iLmApLFooKSx2b2lkIGooKTt0aHJvdyBBfX0pKX1hc3luYyBleHRyYWN0RGF0YVN0cnVjdHVyZXMoQSxlKXtjb25zdCB0PXRoaXMueHJlZjtsZXQgaTtjb25zdCBhPXRoaXMucmVhZFRvVW5pY29kZShlLnRvVW5pY29kZSk7aWYoZS5jb21wb3NpdGUpe2NvbnN0IHQ9QS5nZXQoIkNJRFN5c3RlbUluZm8iKTt0IGluc3RhbmNlb2YgUUEmJihlLmNpZFN5c3RlbUluZm89e3JlZ2lzdHJ5OmVBKHQuZ2V0KCJSZWdpc3RyeSIpKSxvcmRlcmluZzplQSh0LmdldCgiT3JkZXJpbmciKSksc3VwcGxlbWVudDp0LmdldCgiU3VwcGxlbWVudCIpfSk7dHJ5e2NvbnN0IGU9QS5nZXQoIkNJRFRvR0lETWFwIik7ZSBpbnN0YW5jZW9mIHdBJiYoaT1lLmdldEJ5dGVzKCkpfWNhdGNoKEEpe2lmKCF0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXRocm93IEE7VShgZXh0cmFjdERhdGFTdHJ1Y3R1cmVzIC0gaWdub3JpbmcgQ0lEVG9HSURNYXAgZGF0YTogIiR7QX0iLmApfX1jb25zdCBzPVtdO2xldCBuLHI9bnVsbDtpZihBLmhhcygiRW5jb2RpbmciKSl7aWYobj1BLmdldCgiRW5jb2RpbmciKSxuIGluc3RhbmNlb2YgUUEpe2lmKHI9bi5nZXQoIkJhc2VFbmNvZGluZyIpLHI9ciBpbnN0YW5jZW9mIENBP3IubmFtZTpudWxsLG4uaGFzKCJEaWZmZXJlbmNlcyIpKXtjb25zdCBBPW4uZ2V0KCJEaWZmZXJlbmNlcyIpO2xldCBlPTA7Zm9yKGNvbnN0IGkgb2YgQSl7Y29uc3QgQT10LmZldGNoSWZSZWYoaSk7aWYoIm51bWJlciI9PXR5cGVvZiBBKWU9QTtlbHNle2lmKCEoQSBpbnN0YW5jZW9mIENBKSl0aHJvdyBuZXcgVyhgSW52YWxpZCBlbnRyeSBpbiAnRGlmZmVyZW5jZXMnIGFycmF5OiAke0F9YCk7c1tlKytdPUEubmFtZX19fX1lbHNlIGlmKG4gaW5zdGFuY2VvZiBDQSlyPW4ubmFtZTtlbHNle2NvbnN0IEE9IkVuY29kaW5nIGlzIG5vdCBhIE5hbWUgbm9yIGEgRGljdCI7aWYoIXRoaXMub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgbmV3IFcoQSk7VShBKX0iTWFjUm9tYW5FbmNvZGluZyIhPT1yJiYiTWFjRXhwZXJ0RW5jb2RpbmciIT09ciYmIldpbkFuc2lFbmNvZGluZyIhPT1yJiYocj1udWxsKX1jb25zdCBnPSFlLmZpbGV8fGUuaXNJbnRlcm5hbEZvbnQsbz1EYSgpW2UubmFtZV07aWYociYmZyYmbyYmKHI9bnVsbCkscillLmRlZmF1bHRFbmNvZGluZz1LaShyKTtlbHNle2NvbnN0IEE9ISEoNCZlLmZsYWdzKSx0PSEhKDMyJmUuZmxhZ3MpO249SmksIlRydWVUeXBlIiE9PWUudHlwZXx8dHx8KG49SGkpLChBfHxvKSYmKG49TGksZyYmKC9TeW1ib2wvaS50ZXN0KGUubmFtZSk/bj1ZaTovRGluZ2JhdHMvaS50ZXN0KGUubmFtZSk/bj12aTovV2luZ2RpbmdzL2kudGVzdChlLm5hbWUpJiYobj1IaSkpKSxlLmRlZmF1bHRFbmNvZGluZz1ufWUuZGlmZmVyZW5jZXM9cyxlLmJhc2VFbmNvZGluZ05hbWU9cixlLmhhc0VuY29kaW5nPSEhcnx8cy5sZW5ndGg+MCxlLmRpY3Q9QSxlLnRvVW5pY29kZT1hd2FpdCBhO2NvbnN0IEk9YXdhaXQgdGhpcy5idWlsZFRvVW5pY29kZShlKTtyZXR1cm4gZS50b1VuaWNvZGU9SSxpJiYoZS5jaWRUb0dpZE1hcD10aGlzLnJlYWRDaWRUb0dpZE1hcChpLEkpKSxlfV9zaW1wbGVGb250VG9Vbmljb2RlKEEsZT0hMSl7TCghQS5jb21wb3NpdGUsIk11c3QgYmUgYSBzaW1wbGUgZm9udC4iKTtjb25zdCB0PVtdLGk9QS5kZWZhdWx0RW5jb2Rpbmcuc2xpY2UoKSxhPUEuYmFzZUVuY29kaW5nTmFtZSxzPUEuZGlmZmVyZW5jZXM7Zm9yKGNvbnN0IEEgaW4gcyl7Y29uc3QgZT1zW0FdOyIubm90ZGVmIiE9PWUmJihpW0FdPWUpfWNvbnN0IG49cmEoKTtmb3IoY29uc3QgcyBpbiBpKXtsZXQgcj1pW3NdO2lmKCIiPT09ciljb250aW51ZTtsZXQgZz1uW3JdO2lmKHZvaWQgMCE9PWcpe3Rbc109U3RyaW5nLmZyb21DaGFyQ29kZShnKTtjb250aW51ZX1sZXQgbz0wO3N3aXRjaChyWzBdKXtjYXNlIkciOjM9PT1yLmxlbmd0aCYmKG89cGFyc2VJbnQoci5zdWJzdHJpbmcoMSksMTYpKTticmVhaztjYXNlImciOjU9PT1yLmxlbmd0aCYmKG89cGFyc2VJbnQoci5zdWJzdHJpbmcoMSksMTYpKTticmVhaztjYXNlIkMiOmNhc2UiYyI6aWYoci5sZW5ndGg+PTMmJnIubGVuZ3RoPD00KXtjb25zdCB0PXIuc3Vic3RyaW5nKDEpO2lmKGUpe289cGFyc2VJbnQodCwxNik7YnJlYWt9aWYobz0rdCxOdW1iZXIuaXNOYU4obykmJk51bWJlci5pc0ludGVnZXIocGFyc2VJbnQodCwxNikpKXJldHVybiB0aGlzLl9zaW1wbGVGb250VG9Vbmljb2RlKEEsITApfWJyZWFrO2Nhc2UidSI6Zz1JYShyLG4pLC0xIT09ZyYmKG89Zyk7YnJlYWs7ZGVmYXVsdDpzd2l0Y2gocil7Y2FzZSJmX2giOmNhc2UiZl90IjpjYXNlIlRfaCI6dFtzXT1yLnJlcGxhY2VBbGwoIl8iLCIiKTtjb250aW51ZX19aWYobz4wJiZvPD0xMTE0MTExJiZOdW1iZXIuaXNJbnRlZ2VyKG8pKXtpZihhJiZvPT09K3Mpe2NvbnN0IEE9S2koYSk7aWYoQSYmKHI9QVtzXSkpe3Rbc109U3RyaW5nLmZyb21DaGFyQ29kZShuW3JdKTtjb250aW51ZX19dFtzXT1TdHJpbmcuZnJvbUNvZGVQb2ludChvKX19cmV0dXJuIHR9YXN5bmMgYnVpbGRUb1VuaWNvZGUoQSl7aWYoQS5oYXNJbmNsdWRlZFRvVW5pY29kZU1hcD1BLnRvVW5pY29kZT8ubGVuZ3RoPjAsQS5oYXNJbmNsdWRlZFRvVW5pY29kZU1hcClyZXR1cm4hQS5jb21wb3NpdGUmJkEuaGFzRW5jb2RpbmcmJihBLmZhbGxiYWNrVG9Vbmljb2RlPXRoaXMuX3NpbXBsZUZvbnRUb1VuaWNvZGUoQSkpLEEudG9Vbmljb2RlO2lmKCFBLmNvbXBvc2l0ZSlyZXR1cm4gbmV3IEdhKHRoaXMuX3NpbXBsZUZvbnRUb1VuaWNvZGUoQSkpO2lmKEEuY29tcG9zaXRlJiYoQS5jTWFwLmJ1aWx0SW5DTWFwJiYhKEEuY01hcCBpbnN0YW5jZW9mIFFpKXx8IkFkb2JlIj09PUEuY2lkU3lzdGVtSW5mbz8ucmVnaXN0cnkmJigiR0IxIj09PUEuY2lkU3lzdGVtSW5mby5vcmRlcmluZ3x8IkNOUzEiPT09QS5jaWRTeXN0ZW1JbmZvLm9yZGVyaW5nfHwiSmFwYW4xIj09PUEuY2lkU3lzdGVtSW5mby5vcmRlcmluZ3x8IktvcmVhMSI9PT1BLmNpZFN5c3RlbUluZm8ub3JkZXJpbmcpKSl7Y29uc3R7cmVnaXN0cnk6ZSxvcmRlcmluZzp0fT1BLmNpZFN5c3RlbUluZm8saT1DQS5nZXQoYCR7ZX0tJHt0fS1VQ1MyYCksYT1hd2FpdCBSaS5jcmVhdGUoe2VuY29kaW5nOmksZmV0Y2hCdWlsdEluQ01hcDp0aGlzLl9mZXRjaEJ1aWx0SW5DTWFwQm91bmQsdXNlQ01hcDpudWxsfSkscz1bXSxuPVtdO3JldHVybiBBLmNNYXAuZm9yRWFjaCgoZnVuY3Rpb24oQSxlKXtpZihlPjY1NTM1KXRocm93IG5ldyBXKCJNYXggc2l6ZSBvZiBDSUQgaXMgNjUsNTM1Iik7Y29uc3QgdD1hLmxvb2t1cChlKTtpZih0KXtuLmxlbmd0aD0wO2ZvcihsZXQgQT0wLGU9dC5sZW5ndGg7QTxlO0ErPTIpbi5wdXNoKCh0LmNoYXJDb2RlQXQoQSk8PDgpK3QuY2hhckNvZGVBdChBKzEpKTtzW0FdPVN0cmluZy5mcm9tQ2hhckNvZGUoLi4ubil9fSkpLG5ldyBHYShzKX1yZXR1cm4gbmV3IE5hKEEuZmlyc3RDaGFyLEEubGFzdENoYXIpfWFzeW5jIHJlYWRUb1VuaWNvZGUoQSl7aWYoIUEpcmV0dXJuIG51bGw7aWYoQSBpbnN0YW5jZW9mIENBKXtjb25zdCBlPWF3YWl0IFJpLmNyZWF0ZSh7ZW5jb2Rpbmc6QSxmZXRjaEJ1aWx0SW5DTWFwOnRoaXMuX2ZldGNoQnVpbHRJbkNNYXBCb3VuZCx1c2VDTWFwOm51bGx9KTtyZXR1cm4gZSBpbnN0YW5jZW9mIFFpP25ldyBOYSgwLDY1NTM1KTpuZXcgR2EoZS5nZXRNYXAoKSl9aWYoQSBpbnN0YW5jZW9mIHdBKXRyeXtjb25zdCBlPWF3YWl0IFJpLmNyZWF0ZSh7ZW5jb2Rpbmc6QSxmZXRjaEJ1aWx0SW5DTWFwOnRoaXMuX2ZldGNoQnVpbHRJbkNNYXBCb3VuZCx1c2VDTWFwOm51bGx9KTtpZihlIGluc3RhbmNlb2YgUWkpcmV0dXJuIG5ldyBOYSgwLDY1NTM1KTtjb25zdCB0PW5ldyBBcnJheShlLmxlbmd0aCk7cmV0dXJuIGUuZm9yRWFjaCgoZnVuY3Rpb24oQSxlKXtpZigibnVtYmVyIj09dHlwZW9mIGUpcmV0dXJuIHZvaWQodFtBXT1TdHJpbmcuZnJvbUNvZGVQb2ludChlKSk7ZS5sZW5ndGglMiE9MCYmKGU9IlwwIitlKTtjb25zdCBpPVtdO2ZvcihsZXQgQT0wO0E8ZS5sZW5ndGg7QSs9Mil7Y29uc3QgdD1lLmNoYXJDb2RlQXQoQSk8PDh8ZS5jaGFyQ29kZUF0KEErMSk7aWYoNTUyOTYhPSg2MzQ4OCZ0KSl7aS5wdXNoKHQpO2NvbnRpbnVlfUErPTI7Y29uc3QgYT1lLmNoYXJDb2RlQXQoQSk8PDh8ZS5jaGFyQ29kZUF0KEErMSk7aS5wdXNoKCgoMTAyMyZ0KTw8MTApKygxMDIzJmEpKzY1NTM2KX10W0FdPVN0cmluZy5mcm9tQ29kZVBvaW50KC4uLmkpfSkpLG5ldyBHYSh0KX1jYXRjaChBKXtpZihBIGluc3RhbmNlb2YgTylyZXR1cm4gbnVsbDtpZih0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXJldHVybiBVKGByZWFkVG9Vbmljb2RlIC0gaWdub3JpbmcgVG9Vbmljb2RlIGRhdGE6ICIke0F9Ii5gKSxudWxsO3Rocm93IEF9cmV0dXJuIG51bGx9cmVhZENpZFRvR2lkTWFwKEEsZSl7Y29uc3QgdD1bXTtmb3IobGV0IGk9MCxhPUEubGVuZ3RoO2k8YTtpKyspe2NvbnN0IGE9QVtpKytdPDw4fEFbaV0scz1pPj4xOygwIT09YXx8ZS5oYXMocykpJiYodFtzXT1hKX1yZXR1cm4gdH1leHRyYWN0V2lkdGhzKEEsZSx0KXtjb25zdCBpPXRoaXMueHJlZjtsZXQgYT1bXSxzPTA7Y29uc3Qgbj1bXTtsZXQgcjtpZih0LmNvbXBvc2l0ZSl7Y29uc3QgZT1BLmdldCgiRFciKTtzPSJudW1iZXIiPT10eXBlb2YgZT9NYXRoLmNlaWwoZSk6MWUzO2NvbnN0IGc9QS5nZXQoIlciKTtpZihBcnJheS5pc0FycmF5KGcpKWZvcihsZXQgQT0wLGU9Zy5sZW5ndGg7QTxlO0ErKyl7bGV0IGU9aS5mZXRjaElmUmVmKGdbQSsrXSk7aWYoIU51bWJlci5pc0ludGVnZXIoZSkpYnJlYWs7Y29uc3QgdD1pLmZldGNoSWZSZWYoZ1tBXSk7aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IoY29uc3QgQSBvZiB0KXtjb25zdCB0PWkuZmV0Y2hJZlJlZihBKTsibnVtYmVyIj09dHlwZW9mIHQmJihhW2VdPXQpLGUrK31lbHNle2lmKCFOdW1iZXIuaXNJbnRlZ2VyKHQpKWJyZWFrO3tjb25zdCBzPWkuZmV0Y2hJZlJlZihnWysrQV0pO2lmKCJudW1iZXIiIT10eXBlb2Ygcyljb250aW51ZTtmb3IobGV0IEE9ZTtBPD10O0ErKylhW0FdPXN9fX1pZih0LnZlcnRpY2FsKXtjb25zdCBlPUEuZ2V0QXJyYXkoIkRXMiIpO2xldCB0PXZBKGUsMik/ZTpbODgwLC0xZTNdO2lmKHI9W3RbMV0sLjUqcyx0WzBdXSx0PUEuZ2V0KCJXMiIpLEFycmF5LmlzQXJyYXkodCkpZm9yKGxldCBBPTAsZT10Lmxlbmd0aDtBPGU7QSsrKXtsZXQgZT1pLmZldGNoSWZSZWYodFtBKytdKTtpZighTnVtYmVyLmlzSW50ZWdlcihlKSlicmVhaztjb25zdCBhPWkuZmV0Y2hJZlJlZih0W0FdKTtpZihBcnJheS5pc0FycmF5KGEpKWZvcihsZXQgQT0wLHQ9YS5sZW5ndGg7QTx0O0ErKyl7Y29uc3QgdD1baS5mZXRjaElmUmVmKGFbQSsrXSksaS5mZXRjaElmUmVmKGFbQSsrXSksaS5mZXRjaElmUmVmKGFbQV0pXTt2QSh0LG51bGwpJiYobltlXT10KSxlKyt9ZWxzZXtpZighTnVtYmVyLmlzSW50ZWdlcihhKSlicmVhazt7Y29uc3Qgcz1baS5mZXRjaElmUmVmKHRbKytBXSksaS5mZXRjaElmUmVmKHRbKytBXSksaS5mZXRjaElmUmVmKHRbKytBXSldO2lmKCF2QShzLG51bGwpKWNvbnRpbnVlO2ZvcihsZXQgQT1lO0E8PWE7QSsrKW5bQV09c319fX19ZWxzZXtjb25zdCBuPUEuZ2V0KCJXaWR0aHMiKTtpZihBcnJheS5pc0FycmF5KG4pKXtsZXQgQT10LmZpcnN0Q2hhcjtmb3IoY29uc3QgZSBvZiBuKXtjb25zdCB0PWkuZmV0Y2hJZlJlZihlKTsibnVtYmVyIj09dHlwZW9mIHQmJihhW0FdPXQpLEErK31jb25zdCByPWUuZ2V0KCJNaXNzaW5nV2lkdGgiKTtzPSJudW1iZXIiPT10eXBlb2Ygcj9yOjB9ZWxzZXtjb25zdCBlPUEuZ2V0KCJCYXNlRm9udCIpO2lmKGUgaW5zdGFuY2VvZiBDQSl7Y29uc3QgQT10aGlzLmdldEJhc2VGb250TWV0cmljcyhlLm5hbWUpO2E9dGhpcy5idWlsZENoYXJDb2RlVG9XaWR0aChBLndpZHRocyx0KSxzPUEuZGVmYXVsdFdpZHRofX19bGV0IGc9ITAsbz1zO2Zvcihjb25zdCBBIGluIGEpe2NvbnN0IGU9YVtBXTtpZihlKWlmKG8pe2lmKG8hPT1lKXtnPSExO2JyZWFrfX1lbHNlIG89ZX1nP3QuZmxhZ3N8PTE6dC5mbGFncyY9LTIsdC5kZWZhdWx0V2lkdGg9cyx0LndpZHRocz1hLHQuZGVmYXVsdFZNZXRyaWNzPXIsdC52bWV0cmljcz1ufWlzU2VyaWZGb250KEEpe2NvbnN0IGU9QS5zcGxpdCgiLSIsMSlbMF07cmV0dXJuIGUgaW4gd2EoKXx8L3NlcmlmL2dpLnRlc3QoZSl9Z2V0QmFzZUZvbnRNZXRyaWNzKEEpe2xldCBlPTAsdD1PYmplY3QuY3JlYXRlKG51bGwpLGk9ITEsYT1wYSgpW0FdfHxBO2NvbnN0IHM9X2EoKTthIGluIHN8fChhPXRoaXMuaXNTZXJpZkZvbnQoQSk/IlRpbWVzLVJvbWFuIjoiSGVsdmV0aWNhIik7Y29uc3Qgbj1zW2FdO3JldHVybiJudW1iZXIiPT10eXBlb2Ygbj8oZT1uLGk9ITApOnQ9bigpLHtkZWZhdWx0V2lkdGg6ZSxtb25vc3BhY2U6aSx3aWR0aHM6dH19YnVpbGRDaGFyQ29kZVRvV2lkdGgoQSxlKXtjb25zdCB0PU9iamVjdC5jcmVhdGUobnVsbCksaT1lLmRpZmZlcmVuY2VzLGE9ZS5kZWZhdWx0RW5jb2Rpbmc7Zm9yKGxldCBlPTA7ZTwyNTY7ZSsrKWUgaW4gaSYmQVtpW2VdXT90W2VdPUFbaVtlXV06ZSBpbiBhJiZBW2FbZV1dJiYodFtlXT1BW2FbZV1dKTtyZXR1cm4gdH1wcmVFdmFsdWF0ZUZvbnQoQSl7Y29uc3QgZT1BO2xldCB0PUEuZ2V0KCJTdWJ0eXBlIik7aWYoISh0IGluc3RhbmNlb2YgQ0EpKXRocm93IG5ldyBXKCJpbnZhbGlkIGZvbnQgU3VidHlwZSIpO2xldCBpLGE9ITE7aWYoIlR5cGUwIj09PXQubmFtZSl7Y29uc3QgZT1BLmdldCgiRGVzY2VuZGFudEZvbnRzIik7aWYoIWUpdGhyb3cgbmV3IFcoIkRlc2NlbmRhbnQgZm9udHMgYXJlIG5vdCBzcGVjaWZpZWQiKTtpZighKChBPUFycmF5LmlzQXJyYXkoZSk/dGhpcy54cmVmLmZldGNoSWZSZWYoZVswXSk6ZSlpbnN0YW5jZW9mIFFBKSl0aHJvdyBuZXcgVygiRGVzY2VuZGFudCBmb250IGlzIG5vdCBhIGRpY3Rpb25hcnkuIik7aWYodD1BLmdldCgiU3VidHlwZSIpLCEodCBpbnN0YW5jZW9mIENBKSl0aHJvdyBuZXcgVygiaW52YWxpZCBmb250IFN1YnR5cGUiKTthPSEwfWxldCBzPUEuZ2V0KCJGaXJzdENoYXIiKTtOdW1iZXIuaXNJbnRlZ2VyKHMpfHwocz0wKTtsZXQgbj1BLmdldCgiTGFzdENoYXIiKTtOdW1iZXIuaXNJbnRlZ2VyKG4pfHwobj1hPzY1NTM1OjI1NSk7Y29uc3Qgcj1BLmdldCgiRm9udERlc2NyaXB0b3IiKSxnPUEuZ2V0KCJUb1VuaWNvZGUiKXx8ZS5nZXQoIlRvVW5pY29kZSIpO2lmKHIpe2k9bmV3ICRyO2NvbnN0IHQ9ZS5nZXRSYXcoIkVuY29kaW5nIik7aWYodCBpbnN0YW5jZW9mIENBKWkudXBkYXRlKHQubmFtZSk7ZWxzZSBpZih0IGluc3RhbmNlb2YgRUEpaS51cGRhdGUodC50b1N0cmluZygpKTtlbHNlIGlmKHQgaW5zdGFuY2VvZiBRQSlmb3IoY29uc3QgQSBvZiB0LmdldFJhd1ZhbHVlcygpKWlmKEEgaW5zdGFuY2VvZiBDQSlpLnVwZGF0ZShBLm5hbWUpO2Vsc2UgaWYoQSBpbnN0YW5jZW9mIEVBKWkudXBkYXRlKEEudG9TdHJpbmcoKSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KEEpKXtjb25zdCBlPUEubGVuZ3RoLHQ9bmV3IEFycmF5KGUpO2ZvcihsZXQgaT0wO2k8ZTtpKyspe2NvbnN0IGU9QVtpXTtlIGluc3RhbmNlb2YgQ0E/dFtpXT1lLm5hbWU6KCJudW1iZXIiPT10eXBlb2YgZXx8ZSBpbnN0YW5jZW9mIEVBKSYmKHRbaV09ZS50b1N0cmluZygpKX1pLnVwZGF0ZSh0LmpvaW4oKSl9aWYoaS51cGRhdGUoYCR7c30tJHtufWApLGcgaW5zdGFuY2VvZiB3QSl7Y29uc3QgQT1nLnN0cnx8ZyxlPUEuYnVmZmVyP25ldyBVaW50OEFycmF5KEEuYnVmZmVyLmJ1ZmZlciwwLEEuYnVmZmVyTGVuZ3RoKTpuZXcgVWludDhBcnJheShBLmJ5dGVzLmJ1ZmZlcixBLnN0YXJ0LEEuZW5kLUEuc3RhcnQpO2kudXBkYXRlKGUpfWVsc2UgZyBpbnN0YW5jZW9mIENBJiZpLnVwZGF0ZShnLm5hbWUpO2NvbnN0IHI9QS5nZXQoIldpZHRocyIpfHxlLmdldCgiV2lkdGhzIik7aWYoQXJyYXkuaXNBcnJheShyKSl7Y29uc3QgQT1bXTtmb3IoY29uc3QgZSBvZiByKSgibnVtYmVyIj09dHlwZW9mIGV8fGUgaW5zdGFuY2VvZiBFQSkmJkEucHVzaChlLnRvU3RyaW5nKCkpO2kudXBkYXRlKEEuam9pbigpKX1pZihhKXtpLnVwZGF0ZSgiY29tcG9zaXRlRm9udCIpO2NvbnN0IHQ9QS5nZXQoIlciKXx8ZS5nZXQoIlciKTtpZihBcnJheS5pc0FycmF5KHQpKXtjb25zdCBBPVtdO2Zvcihjb25zdCBlIG9mIHQpaWYoIm51bWJlciI9PXR5cGVvZiBlfHxlIGluc3RhbmNlb2YgRUEpQS5wdXNoKGUudG9TdHJpbmcoKSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGUpKXtjb25zdCB0PVtdO2Zvcihjb25zdCBBIG9mIGUpKCJudW1iZXIiPT10eXBlb2YgQXx8QSBpbnN0YW5jZW9mIEVBKSYmdC5wdXNoKEEudG9TdHJpbmcoKSk7QS5wdXNoKGBbJHt0LmpvaW4oKX1dYCl9aS51cGRhdGUoQS5qb2luKCkpfWNvbnN0IGE9QS5nZXRSYXcoIkNJRFRvR0lETWFwIil8fGUuZ2V0UmF3KCJDSURUb0dJRE1hcCIpO2EgaW5zdGFuY2VvZiBDQT9pLnVwZGF0ZShhLm5hbWUpOmEgaW5zdGFuY2VvZiBFQT9pLnVwZGF0ZShhLnRvU3RyaW5nKCkpOmEgaW5zdGFuY2VvZiB3QSYmaS51cGRhdGUoYS5wZWVrQnl0ZXMoKSl9fXJldHVybntkZXNjcmlwdG9yOnIsZGljdDpBLGJhc2VEaWN0OmUsY29tcG9zaXRlOmEsdHlwZTp0Lm5hbWUsZmlyc3RDaGFyOnMsbGFzdENoYXI6bix0b1VuaWNvZGU6ZyxoYXNoOmk/aS5oZXhkaWdlc3QoKToiIn19YXN5bmMgdHJhbnNsYXRlRm9udCh7ZGVzY3JpcHRvcjpBLGRpY3Q6ZSxiYXNlRGljdDp0LGNvbXBvc2l0ZTppLHR5cGU6YSxmaXJzdENoYXI6cyxsYXN0Q2hhcjpyLHRvVW5pY29kZTpnLGNzc0ZvbnRJbmZvOm99KXtjb25zdCBJPSJUeXBlMyI9PT1hO2lmKCFBKXtpZighSSl7bGV0IEE9ZS5nZXQoIkJhc2VGb250Iik7aWYoIShBIGluc3RhbmNlb2YgQ0EpKXRocm93IG5ldyBXKCJCYXNlIGZvbnQgaXMgbm90IHNwZWNpZmllZCIpO0E9QS5uYW1lLnJlcGxhY2VBbGwoL1ssX10vZywiLSIpO2NvbnN0IGk9dGhpcy5nZXRCYXNlRm9udE1ldHJpY3MoQSksbj1BLnNwbGl0KCItIiwxKVswXSxvPSh0aGlzLmlzU2VyaWZGb250KG4pPzI6MCl8KGkubW9ub3NwYWNlPzE6MCl8KERhKClbbl0/NDozMiksYz17dHlwZTphLG5hbWU6QSxsb2FkZWROYW1lOnQubG9hZGVkTmFtZSxzeXN0ZW1Gb250SW5mbzpudWxsLHdpZHRoczppLndpZHRocyxkZWZhdWx0V2lkdGg6aS5kZWZhdWx0V2lkdGgsaXNTaW11bGF0ZWRGbGFnczohMCxmbGFnczpvLGZpcnN0Q2hhcjpzLGxhc3RDaGFyOnIsdG9Vbmljb2RlOmcseEhlaWdodDowLGNhcEhlaWdodDowLGl0YWxpY0FuZ2xlOjAsaXNUeXBlM0ZvbnQ6SX0saD1lLmdldCgiV2lkdGhzIiksQz1TYShBKTtsZXQgQj1udWxsO0MmJihCPWF3YWl0IHRoaXMuZmV0Y2hTdGFuZGFyZEZvbnREYXRhKEMpLGMuaXNJbnRlcm5hbEZvbnQ9ISFCKSwhYy5pc0ludGVybmFsRm9udCYmdGhpcy5vcHRpb25zLnVzZVN5c3RlbUZvbnRzJiYoYy5zeXN0ZW1Gb250SW5mbz1qcih0aGlzLnN5c3RlbUZvbnRDYWNoZSx0aGlzLmlkRmFjdG9yeSx0aGlzLm9wdGlvbnMuc3RhbmRhcmRGb250RGF0YVVybCxBLEMsYSkpO2NvbnN0IGw9YXdhaXQgdGhpcy5leHRyYWN0RGF0YVN0cnVjdHVyZXMoZSxjKTtpZihBcnJheS5pc0FycmF5KGgpKXtjb25zdCBBPVtdO2xldCBlPXM7Zm9yKGNvbnN0IHQgb2YgaCl7Y29uc3QgaT10aGlzLnhyZWYuZmV0Y2hJZlJlZih0KTsibnVtYmVyIj09dHlwZW9mIGkmJihBW2VdPWkpLGUrK31sLndpZHRocz1BfWVsc2UgbC53aWR0aHM9dGhpcy5idWlsZENoYXJDb2RlVG9XaWR0aChpLndpZHRocyxsKTtyZXR1cm4gbmV3IF9zKEEsQixsKX17Y29uc3QgdD1UQShlLmdldEFycmF5KCJGb250QkJveCIpLFswLDAsMCwwXSk7KEE9bmV3IFFBKG51bGwpKS5zZXQoIkZvbnROYW1lIixDQS5nZXQoYSkpLEEuc2V0KCJGb250QkJveCIsdCl9fWxldCBjPUEuZ2V0KCJGb250TmFtZSIpLGg9ZS5nZXQoIkJhc2VGb250Iik7InN0cmluZyI9PXR5cGVvZiBjJiYoYz1DQS5nZXQoYykpLCJzdHJpbmciPT10eXBlb2YgaCYmKGg9Q0EuZ2V0KGgpKTtjb25zdCBDPWM/Lm5hbWUsQj1oPy5uYW1lO2lmKEl8fEM9PT1CfHwoeChgVGhlIEZvbnREZXNjcmlwdG9yJ3MgRm9udE5hbWUgaXMgIiR7Q30iIGJ1dCBzaG91bGQgYmUgdGhlIHNhbWUgYXMgdGhlIEZvbnQncyBCYXNlRm9udCAiJHtCfSIuYCksQyYmQiYmKEIuc3RhcnRzV2l0aChDKXx8IVJhKEMpJiZSYShCKSkmJihjPW51bGwpKSxjfHw9aCwhKGMgaW5zdGFuY2VvZiBDQSkpdGhyb3cgbmV3IFcoImludmFsaWQgZm9udCBuYW1lIik7bGV0IGwsUSxFLHUsZDt0cnl7bD1BLmdldCgiRm9udEZpbGUiLCJGb250RmlsZTIiLCJGb250RmlsZTMiKX1jYXRjaChBKXtpZighdGhpcy5vcHRpb25zLmlnbm9yZUVycm9ycyl0aHJvdyBBO1UoYHRyYW5zbGF0ZUZvbnQgLSBmZXRjaGluZyAiJHtjLm5hbWV9IiBmb250IGZpbGU6ICIke0F9Ii5gKSxsPW5ldyBJZX1sZXQgZj0hMSxwPW51bGwsbT1udWxsO2lmKGwpe2lmKGwuZGljdCl7Y29uc3QgQT1sLmRpY3QuZ2V0KCJTdWJ0eXBlIik7QSBpbnN0YW5jZW9mIENBJiYoUT1BLm5hbWUpLEU9bC5kaWN0LmdldCgiTGVuZ3RoMSIpLHU9bC5kaWN0LmdldCgiTGVuZ3RoMiIpLGQ9bC5kaWN0LmdldCgiTGVuZ3RoMyIpfX1lbHNlIGlmKG8pe2NvbnN0IEE9Vm4oYy5uYW1lKTtBJiYoby5mb250RmFtaWx5PWAke28uZm9udEZhbWlseX0tUGRmSlMtWEZBYCxvLm1ldHJpY3M9QS5tZXRyaWNzfHxudWxsLHA9QS5mYWN0b3JzfHxudWxsLGw9YXdhaXQgdGhpcy5mZXRjaFN0YW5kYXJkRm9udERhdGEoQS5uYW1lKSxmPSEhbCx0PWU9X24oYy5uYW1lKSxpPSEwKX1lbHNlIGlmKCFJKXtjb25zdCBBPVNhKGMubmFtZSk7QSYmKGw9YXdhaXQgdGhpcy5mZXRjaFN0YW5kYXJkRm9udERhdGEoQSksZj0hIWwpLCFmJiZ0aGlzLm9wdGlvbnMudXNlU3lzdGVtRm9udHMmJihtPWpyKHRoaXMuc3lzdGVtRm9udENhY2hlLHRoaXMuaWRGYWN0b3J5LHRoaXMub3B0aW9ucy5zdGFuZGFyZEZvbnREYXRhVXJsLGMubmFtZSxBLGEpKX1jb25zdCB5PUtBKGUuZ2V0QXJyYXkoIkZvbnRNYXRyaXgiKSxuKSx3PVRBKEEuZ2V0QXJyYXkoIkZvbnRCQm94Iil8fGUuZ2V0QXJyYXkoIkZvbnRCQm94Iiksdm9pZCAwKTtsZXQgRD1BLmdldCgiQXNjZW50Iik7Im51bWJlciIhPXR5cGVvZiBEJiYoRD12b2lkIDApO2xldCBiPUEuZ2V0KCJEZXNjZW50Iik7Im51bWJlciIhPXR5cGVvZiBiJiYoYj12b2lkIDApO2xldCBrPUEuZ2V0KCJYSGVpZ2h0Iik7Im51bWJlciIhPXR5cGVvZiBrJiYoaz0wKTtsZXQgRj1BLmdldCgiQ2FwSGVpZ2h0Iik7Im51bWJlciIhPXR5cGVvZiBGJiYoRj0wKTtsZXQgUz1BLmdldCgiRmxhZ3MiKTtOdW1iZXIuaXNJbnRlZ2VyKFMpfHwoUz0wKTtsZXQgUj1BLmdldCgiSXRhbGljQW5nbGUiKTsibnVtYmVyIiE9dHlwZW9mIFImJihSPTApO2NvbnN0IEc9e3R5cGU6YSxuYW1lOmMubmFtZSxzdWJ0eXBlOlEsZmlsZTpsLGxlbmd0aDE6RSxsZW5ndGgyOnUsbGVuZ3RoMzpkLGlzSW50ZXJuYWxGb250OmYsbG9hZGVkTmFtZTp0LmxvYWRlZE5hbWUsY29tcG9zaXRlOmksZml4ZWRQaXRjaDohMSxmb250TWF0cml4OnksZmlyc3RDaGFyOnMsbGFzdENoYXI6cix0b1VuaWNvZGU6ZyxiYm94OncsYXNjZW50OkQsZGVzY2VudDpiLHhIZWlnaHQ6ayxjYXBIZWlnaHQ6RixmbGFnczpTLGl0YWxpY0FuZ2xlOlIsaXNUeXBlM0ZvbnQ6SSxjc3NGb250SW5mbzpvLHNjYWxlRmFjdG9yczpwLHN5c3RlbUZvbnRJbmZvOm19O2lmKGkpe2NvbnN0IEE9dC5nZXQoIkVuY29kaW5nIik7QSBpbnN0YW5jZW9mIENBJiYoRy5jaWRFbmNvZGluZz1BLm5hbWUpO2NvbnN0IGU9YXdhaXQgUmkuY3JlYXRlKHtlbmNvZGluZzpBLGZldGNoQnVpbHRJbkNNYXA6dGhpcy5fZmV0Y2hCdWlsdEluQ01hcEJvdW5kLHVzZUNNYXA6bnVsbH0pO0cuY01hcD1lLEcudmVydGljYWw9Ry5jTWFwLnZlcnRpY2FsfWNvbnN0IE49YXdhaXQgdGhpcy5leHRyYWN0RGF0YVN0cnVjdHVyZXMoZSxHKTtyZXR1cm4gdGhpcy5leHRyYWN0V2lkdGhzKGUsQSxOKSxuZXcgX3MoYy5uYW1lLGwsTil9c3RhdGljIGJ1aWxkRm9udFBhdGhzKEEsZSx0LGkpe2Z1bmN0aW9uIGEoZSl7Y29uc3QgYT1gJHtBLmxvYWRlZE5hbWV9X3BhdGhfJHtlfWA7dHJ5e2lmKEEucmVuZGVyZXIuaGFzQnVpbHRQYXRoKGUpKXJldHVybjt0LnNlbmQoImNvbW1vbm9iaiIsW2EsIkZvbnRQYXRoIixBLnJlbmRlcmVyLmdldFBhdGhKcyhlKV0pfWNhdGNoKEEpe2lmKGkuaWdub3JlRXJyb3JzKXJldHVybiB2b2lkIFUoYGJ1aWxkRm9udFBhdGhzIC0gaWdub3JpbmcgJHthfSBnbHlwaDogIiR7QX0iLmApO3Rocm93IEF9fWZvcihjb25zdCBBIG9mIGUpe2EoQS5mb250Q2hhcik7Y29uc3QgZT1BLmFjY2VudDtlPy5mb250Q2hhciYmYShlLmZvbnRDaGFyKX19c3RhdGljIGdldCBmYWxsYmFja0ZvbnREaWN0KCl7Y29uc3QgQT1uZXcgUUE7cmV0dXJuIEEuc2V0KCJCYXNlRm9udCIsQ0EuZ2V0KCJIZWx2ZXRpY2EiKSksQS5zZXQoIlR5cGUiLENBLmdldCgiRmFsbGJhY2tUeXBlIikpLEEuc2V0KCJTdWJ0eXBlIixDQS5nZXQoIkZhbGxiYWNrVHlwZSIpKSxBLnNldCgiRW5jb2RpbmciLENBLmdldCgiV2luQW5zaUVuY29kaW5nIikpLEgodGhpcywiZmFsbGJhY2tGb250RGljdCIsQSl9fWNsYXNzIEJne2NvbnN0cnVjdG9yKHtsb2FkZWROYW1lOkEsZm9udDplLGRpY3Q6dCxldmFsdWF0b3JPcHRpb25zOml9KXt0aGlzLmxvYWRlZE5hbWU9QSx0aGlzLmZvbnQ9ZSx0aGlzLmRpY3Q9dCx0aGlzLl9ldmFsdWF0b3JPcHRpb25zPWl8fGdnLHRoaXMudHlwZTNMb2FkZWQ9bnVsbCx0aGlzLnR5cGUzRGVwZW5kZW5jaWVzPWUuaXNUeXBlM0ZvbnQ/bmV3IFNldDpudWxsLHRoaXMuc2VudD0hMX1zZW5kKEEpe3RoaXMuc2VudHx8KHRoaXMuc2VudD0hMCxBLnNlbmQoImNvbW1vbm9iaiIsW3RoaXMubG9hZGVkTmFtZSwiRm9udCIsdGhpcy5mb250LmV4cG9ydERhdGEodGhpcy5fZXZhbHVhdG9yT3B0aW9ucy5mb250RXh0cmFQcm9wZXJ0aWVzKV0pKX1mYWxsYmFjayhBKXt0aGlzLmZvbnQuZGF0YSYmKHRoaXMuZm9udC5kaXNhYmxlRm9udEZhY2U9ITAsQ2cuYnVpbGRGb250UGF0aHModGhpcy5mb250LHRoaXMuZm9udC5nbHlwaENhY2hlVmFsdWVzLEEsdGhpcy5fZXZhbHVhdG9yT3B0aW9ucykpfWxvYWRUeXBlM0RhdGEoQSxlLHQpe2lmKHRoaXMudHlwZTNMb2FkZWQpcmV0dXJuIHRoaXMudHlwZTNMb2FkZWQ7aWYoIXRoaXMuZm9udC5pc1R5cGUzRm9udCl0aHJvdyBuZXcgRXJyb3IoIk11c3QgYmUgYSBUeXBlMyBmb250LiIpO2NvbnN0IGk9QS5jbG9uZSh7aWdub3JlRXJyb3JzOiExfSksYT1uZXcgdUEoQS50eXBlM0ZvbnRSZWZzKTt0aGlzLmRpY3Qub2JqSWQmJiFhLmhhcyh0aGlzLmRpY3Qub2JqSWQpJiZhLnB1dCh0aGlzLmRpY3Qub2JqSWQpLGkudHlwZTNGb250UmVmcz1hO2NvbnN0IHM9dGhpcy5mb250LG49dGhpcy50eXBlM0RlcGVuZGVuY2llcztsZXQgcj1Qcm9taXNlLnJlc29sdmUoKTtjb25zdCBnPXRoaXMuZGljdC5nZXQoIkNoYXJQcm9jcyIpLG89dGhpcy5kaWN0LmdldCgiUmVzb3VyY2VzIil8fGUsST1PYmplY3QuY3JlYXRlKG51bGwpLGM9JC5ub3JtYWxpemVSZWN0KHMuYmJveHx8WzAsMCwwLDBdKSxoPWNbMl0tY1swXSxDPWNbM10tY1sxXSxCPU1hdGguaHlwb3QoaCxDKTtmb3IoY29uc3QgQSBvZiBnLmdldEtleXMoKSlyPXIudGhlbigoKCk9Pntjb25zdCBlPWcuZ2V0KEEpLGE9bmV3IGFnO3JldHVybiBpLmdldE9wZXJhdG9yTGlzdCh7c3RyZWFtOmUsdGFzazp0LHJlc291cmNlczpvLG9wZXJhdG9yTGlzdDphfSkudGhlbigoKCk9Pns0OT09PWEuZm5BcnJheVswXSYmdGhpcy5fcmVtb3ZlVHlwZTNDb2xvck9wZXJhdG9ycyhhLEIpLElbQV09YS5nZXRJUigpO2Zvcihjb25zdCBBIG9mIGEuZGVwZW5kZW5jaWVzKW4uYWRkKEEpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtVKGBUeXBlMyBmb250IHJlc291cmNlICIke0F9IiBpcyBub3QgYXZhaWxhYmxlLmApO2NvbnN0IHQ9bmV3IGFnO0lbQV09dC5nZXRJUigpfSkpfSkpO3JldHVybiB0aGlzLnR5cGUzTG9hZGVkPXIudGhlbigoKCk9PntzLmNoYXJQcm9jT3BlcmF0b3JMaXN0PUksdGhpcy5fYmJveCYmKHMuaXNDaGFyQkJveD0hMCxzLmJib3g9dGhpcy5fYmJveCl9KSksdGhpcy50eXBlM0xvYWRlZH1fcmVtb3ZlVHlwZTNDb2xvck9wZXJhdG9ycyhBLGU9TmFOKXtjb25zdCB0PSQubm9ybWFsaXplUmVjdChBLmFyZ3NBcnJheVswXS5zbGljZSgyKSksaT10WzJdLXRbMF0sYT10WzNdLXRbMV0scz1NYXRoLmh5cG90KGksYSk7MD09PWl8fDA9PT1hPyhBLmZuQXJyYXkuc3BsaWNlKDAsMSksQS5hcmdzQXJyYXkuc3BsaWNlKDAsMSkpOigwPT09ZXx8TWF0aC5yb3VuZChzL2UpPj0xMCkmJih0aGlzLl9iYm94fHwodGhpcy5fYmJveD1bMS8wLDEvMCwtMS8wLC0xLzBdKSx0aGlzLl9iYm94WzBdPU1hdGgubWluKHRoaXMuX2Jib3hbMF0sdFswXSksdGhpcy5fYmJveFsxXT1NYXRoLm1pbih0aGlzLl9iYm94WzFdLHRbMV0pLHRoaXMuX2Jib3hbMl09TWF0aC5tYXgodGhpcy5fYmJveFsyXSx0WzJdKSx0aGlzLl9iYm94WzNdPU1hdGgubWF4KHRoaXMuX2Jib3hbM10sdFszXSkpO2xldCBuPTAscj1BLmxlbmd0aDtmb3IoO248cjspe3N3aXRjaChBLmZuQXJyYXlbbl0pe2Nhc2UgNDk6YnJlYWs7Y2FzZSA1MDpjYXNlIDUxOmNhc2UgNTI6Y2FzZSA1MzpjYXNlIDU0OmNhc2UgNTU6Y2FzZSA1NjpjYXNlIDU3OmNhc2UgRDpjYXNlIGI6Y2FzZSA2MDpjYXNlIDYxOmNhc2UgNjI6Y2FzZSA3OkEuZm5BcnJheS5zcGxpY2UobiwxKSxBLmFyZ3NBcnJheS5zcGxpY2UobiwxKSxyLS07Y29udGludWU7Y2FzZSA5OmNvbnN0W2VdPUEuYXJnc0FycmF5W25dO2xldCB0PTAsaT1lLmxlbmd0aDtmb3IoO3Q8aTspe2NvbnN0W0FdPWVbdF07c3dpdGNoKEEpe2Nhc2UiVFIiOmNhc2UiVFIyIjpjYXNlIkhUIjpjYXNlIkJHIjpjYXNlIkJHMiI6Y2FzZSJVQ1IiOmNhc2UiVUNSMiI6ZS5zcGxpY2UodCwxKSxpLS07Y29udGludWV9dCsrfX1uKyt9fX1jbGFzcyBsZ3tjb25zdHJ1Y3RvcihBPW5ldyBFZyl7dGhpcy5zdGF0ZT1BLHRoaXMuc3RhdGVTdGFjaz1bXX1zYXZlKCl7Y29uc3QgQT10aGlzLnN0YXRlO3RoaXMuc3RhdGVTdGFjay5wdXNoKHRoaXMuc3RhdGUpLHRoaXMuc3RhdGU9QS5jbG9uZSgpfXJlc3RvcmUoKXtjb25zdCBBPXRoaXMuc3RhdGVTdGFjay5wb3AoKTtBJiYodGhpcy5zdGF0ZT1BKX10cmFuc2Zvcm0oQSl7dGhpcy5zdGF0ZS5jdG09JC50cmFuc2Zvcm0odGhpcy5zdGF0ZS5jdG0sQSl9fWNsYXNzIFFne2NvbnN0cnVjdG9yKCl7dGhpcy5jdG09bmV3IEZsb2F0MzJBcnJheShzKSx0aGlzLmZvbnROYW1lPW51bGwsdGhpcy5mb250U2l6ZT0wLHRoaXMubG9hZGVkTmFtZT1udWxsLHRoaXMuZm9udD1udWxsLHRoaXMuZm9udE1hdHJpeD1uLHRoaXMudGV4dE1hdHJpeD1zLnNsaWNlKCksdGhpcy50ZXh0TGluZU1hdHJpeD1zLnNsaWNlKCksdGhpcy5jaGFyU3BhY2luZz0wLHRoaXMud29yZFNwYWNpbmc9MCx0aGlzLmxlYWRpbmc9MCx0aGlzLnRleHRIU2NhbGU9MSx0aGlzLnRleHRSaXNlPTB9c2V0VGV4dE1hdHJpeChBLGUsdCxpLGEscyl7Y29uc3Qgbj10aGlzLnRleHRNYXRyaXg7blswXT1BLG5bMV09ZSxuWzJdPXQsblszXT1pLG5bNF09YSxuWzVdPXN9c2V0VGV4dExpbmVNYXRyaXgoQSxlLHQsaSxhLHMpe2NvbnN0IG49dGhpcy50ZXh0TGluZU1hdHJpeDtuWzBdPUEsblsxXT1lLG5bMl09dCxuWzNdPWksbls0XT1hLG5bNV09c310cmFuc2xhdGVUZXh0TWF0cml4KEEsZSl7Y29uc3QgdD10aGlzLnRleHRNYXRyaXg7dFs0XT10WzBdKkErdFsyXSplK3RbNF0sdFs1XT10WzFdKkErdFszXSplK3RbNV19dHJhbnNsYXRlVGV4dExpbmVNYXRyaXgoQSxlKXtjb25zdCB0PXRoaXMudGV4dExpbmVNYXRyaXg7dFs0XT10WzBdKkErdFsyXSplK3RbNF0sdFs1XT10WzFdKkErdFszXSplK3RbNV19Y2FycmlhZ2VSZXR1cm4oKXt0aGlzLnRyYW5zbGF0ZVRleHRMaW5lTWF0cml4KDAsLXRoaXMubGVhZGluZyksdGhpcy50ZXh0TWF0cml4PXRoaXMudGV4dExpbmVNYXRyaXguc2xpY2UoKX1jbG9uZSgpe2NvbnN0IEE9T2JqZWN0LmNyZWF0ZSh0aGlzKTtyZXR1cm4gQS50ZXh0TWF0cml4PXRoaXMudGV4dE1hdHJpeC5zbGljZSgpLEEudGV4dExpbmVNYXRyaXg9dGhpcy50ZXh0TGluZU1hdHJpeC5zbGljZSgpLEEuZm9udE1hdHJpeD10aGlzLmZvbnRNYXRyaXguc2xpY2UoKSxBfX1jbGFzcyBFZ3tjb25zdHJ1Y3Rvcigpe3RoaXMuY3RtPW5ldyBGbG9hdDMyQXJyYXkocyksdGhpcy5mb250PW51bGwsdGhpcy50ZXh0UmVuZGVyaW5nTW9kZT0wLHRoaXMuX2ZpbGxDb2xvclNwYWNlPUNlLnNpbmdsZXRvbnMuZ3JheSx0aGlzLl9zdHJva2VDb2xvclNwYWNlPUNlLnNpbmdsZXRvbnMuZ3JheSx0aGlzLnBhdHRlcm5GaWxsQ29sb3JTcGFjZT1udWxsLHRoaXMucGF0dGVyblN0cm9rZUNvbG9yU3BhY2U9bnVsbH1nZXQgZmlsbENvbG9yU3BhY2UoKXtyZXR1cm4gdGhpcy5fZmlsbENvbG9yU3BhY2V9c2V0IGZpbGxDb2xvclNwYWNlKEEpe3RoaXMuX2ZpbGxDb2xvclNwYWNlPXRoaXMucGF0dGVybkZpbGxDb2xvclNwYWNlPUF9Z2V0IHN0cm9rZUNvbG9yU3BhY2UoKXtyZXR1cm4gdGhpcy5fc3Ryb2tlQ29sb3JTcGFjZX1zZXQgc3Ryb2tlQ29sb3JTcGFjZShBKXt0aGlzLl9zdHJva2VDb2xvclNwYWNlPXRoaXMucGF0dGVyblN0cm9rZUNvbG9yU3BhY2U9QX1jbG9uZSgpe3JldHVybiBPYmplY3QuY3JlYXRlKHRoaXMpfX1jbGFzcyB1Z3tzdGF0aWMgZ2V0IG9wTWFwKCl7cmV0dXJuIEgodGhpcywib3BNYXAiLE9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZShudWxsKSx7dzp7aWQ6MixudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxKOntpZDozLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LGo6e2lkOjQsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sTTp7aWQ6NSxudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxkOntpZDo2LG51bUFyZ3M6Mix2YXJpYWJsZUFyZ3M6ITF9LHJpOntpZDo3LG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LGk6e2lkOjgsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sZ3M6e2lkOjksbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0scTp7aWQ6ZixudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxROntpZDpwLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LGNtOntpZDptLG51bUFyZ3M6Nix2YXJpYWJsZUFyZ3M6ITF9LG06e2lkOjEzLG51bUFyZ3M6Mix2YXJpYWJsZUFyZ3M6ITF9LGw6e2lkOjE0LG51bUFyZ3M6Mix2YXJpYWJsZUFyZ3M6ITF9LGM6e2lkOjE1LG51bUFyZ3M6Nix2YXJpYWJsZUFyZ3M6ITF9LHY6e2lkOjE2LG51bUFyZ3M6NCx2YXJpYWJsZUFyZ3M6ITF9LHk6e2lkOjE3LG51bUFyZ3M6NCx2YXJpYWJsZUFyZ3M6ITF9LGg6e2lkOjE4LG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LHJlOntpZDoxOSxudW1BcmdzOjQsdmFyaWFibGVBcmdzOiExfSxTOntpZDoyMCxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxzOntpZDoyMSxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxmOntpZDoyMixudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxGOntpZDoyMixudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSwiZioiOntpZDoyMyxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxCOntpZDoyNCxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSwiQioiOntpZDoyNSxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxiOntpZDoyNixudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSwiYioiOntpZDoyNyxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxuOntpZDoyOCxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxXOntpZDoyOSxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSwiVyoiOntpZDozMCxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxCVDp7aWQ6MzEsbnVtQXJnczowLHZhcmlhYmxlQXJnczohMX0sRVQ6e2lkOjMyLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LFRjOntpZDozMyxudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxUdzp7aWQ6MzQsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sVHo6e2lkOjM1LG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LFRMOntpZDozNixudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxUZjp7aWQ6eSxudW1BcmdzOjIsdmFyaWFibGVBcmdzOiExfSxUcjp7aWQ6MzgsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sVHM6e2lkOjM5LG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LFRkOntpZDo0MCxudW1BcmdzOjIsdmFyaWFibGVBcmdzOiExfSxURDp7aWQ6NDEsbnVtQXJnczoyLHZhcmlhYmxlQXJnczohMX0sVG06e2lkOjQyLG51bUFyZ3M6Nix2YXJpYWJsZUFyZ3M6ITF9LCJUKiI6e2lkOjQzLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LFRqOntpZDp3LG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LFRKOntpZDo0NSxudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSwiJyI6e2lkOjQ2LG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LCciJzp7aWQ6NDcsbnVtQXJnczozLHZhcmlhYmxlQXJnczohMX0sZDA6e2lkOjQ4LG51bUFyZ3M6Mix2YXJpYWJsZUFyZ3M6ITF9LGQxOntpZDo0OSxudW1BcmdzOjYsdmFyaWFibGVBcmdzOiExfSxDUzp7aWQ6NTAsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sY3M6e2lkOjUxLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LFNDOntpZDo1MixudW1BcmdzOjQsdmFyaWFibGVBcmdzOiEwfSxTQ046e2lkOjUzLG51bUFyZ3M6MzMsdmFyaWFibGVBcmdzOiEwfSxzYzp7aWQ6NTQsbnVtQXJnczo0LHZhcmlhYmxlQXJnczohMH0sc2NuOntpZDo1NSxudW1BcmdzOjMzLHZhcmlhYmxlQXJnczohMH0sRzp7aWQ6NTYsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sZzp7aWQ6NTcsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sUkc6e2lkOkQsbnVtQXJnczozLHZhcmlhYmxlQXJnczohMX0scmc6e2lkOmIsbnVtQXJnczozLHZhcmlhYmxlQXJnczohMX0sSzp7aWQ6NjAsbnVtQXJnczo0LHZhcmlhYmxlQXJnczohMX0sazp7aWQ6NjEsbnVtQXJnczo0LHZhcmlhYmxlQXJnczohMX0sc2g6e2lkOjYyLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LEJJOntpZDo2MyxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxJRDp7aWQ6NjQsbnVtQXJnczowLHZhcmlhYmxlQXJnczohMX0sRUk6e2lkOjY1LG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LERvOntpZDo2NixudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxNUDp7aWQ6NjcsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sRFA6e2lkOjY4LG51bUFyZ3M6Mix2YXJpYWJsZUFyZ3M6ITF9LEJNQzp7aWQ6NjksbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sQkRDOntpZDprLG51bUFyZ3M6Mix2YXJpYWJsZUFyZ3M6ITF9LEVNQzp7aWQ6RixudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxCWDp7aWQ6NzIsbnVtQXJnczowLHZhcmlhYmxlQXJnczohMX0sRVg6e2lkOjczLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LEJNOm51bGwsQkQ6bnVsbCx0cnVlOm51bGwsZmE6bnVsbCxmYWw6bnVsbCxmYWxzOm51bGwsZmFsc2U6bnVsbCxudTpudWxsLG51bDpudWxsLG51bGw6bnVsbH0pKX1zdGF0aWMgTUFYX0lOVkFMSURfUEFUSF9PUFM9MTA7Y29uc3RydWN0b3IoQSxlLHQ9bmV3IGxnKXt0aGlzLnBhcnNlcj1uZXcgZ2koe2xleGVyOm5ldyBjaShBLHVnLm9wTWFwKSx4cmVmOmV9KSx0aGlzLnN0YXRlTWFuYWdlcj10LHRoaXMubm9uUHJvY2Vzc2VkQXJncz1bXSx0aGlzLl9pc1BhdGhPcD0hMSx0aGlzLl9udW1JbnZhbGlkUGF0aE9QUz0wfWdldCBzYXZlZFN0YXRlc0RlcHRoKCl7cmV0dXJuIHRoaXMuc3RhdGVNYW5hZ2VyLnN0YXRlU3RhY2subGVuZ3RofXJlYWQoQSl7bGV0IGU9QS5hcmdzO2Zvcig7Oyl7Y29uc3QgdD10aGlzLnBhcnNlci5nZXRPYmooKTtpZih0IGluc3RhbmNlb2YgQkEpe2NvbnN0IGk9dC5jbWQsYT11Zy5vcE1hcFtpXTtpZighYSl7VShgVW5rbm93biBjb21tYW5kICIke2l9Ii5gKTtjb250aW51ZX1jb25zdCBzPWEuaWQsbj1hLm51bUFyZ3M7bGV0IHI9bnVsbCE9PWU/ZS5sZW5ndGg6MDtpZih0aGlzLl9pc1BhdGhPcHx8KHRoaXMuX251bUludmFsaWRQYXRoT1BTPTApLHRoaXMuX2lzUGF0aE9wPXM+PTEzJiZzPD0yOCxhLnZhcmlhYmxlQXJncylyPm4mJngoYENvbW1hbmQgJHtpfTogZXhwZWN0ZWQgWzAsICR7bn1dIGFyZ3MsIGJ1dCByZWNlaXZlZCAke3J9IGFyZ3MuYCk7ZWxzZXtpZihyIT09bil7Y29uc3QgQT10aGlzLm5vblByb2Nlc3NlZEFyZ3M7Zm9yKDtyPm47KUEucHVzaChlLnNoaWZ0KCkpLHItLTtmb3IoO3I8biYmMCE9PUEubGVuZ3RoOyludWxsPT09ZSYmKGU9W10pLGUudW5zaGlmdChBLnBvcCgpKSxyKyt9aWYocjxuKXtjb25zdCBBPWBjb21tYW5kICR7aX06IGV4cGVjdGVkICR7bn0gYXJncywgYnV0IHJlY2VpdmVkICR7cn0gYXJncy5gO2lmKHRoaXMuX2lzUGF0aE9wJiYrK3RoaXMuX251bUludmFsaWRQYXRoT1BTPnVnLk1BWF9JTlZBTElEX1BBVEhfT1BTKXRocm93IG5ldyBXKGBJbnZhbGlkICR7QX1gKTtVKGBTa2lwcGluZyAke0F9YCksbnVsbCE9PWUmJihlLmxlbmd0aD0wKTtjb250aW51ZX19cmV0dXJuIHRoaXMucHJlcHJvY2Vzc0NvbW1hbmQocyxlKSxBLmZuPXMsQS5hcmdzPWUsITB9aWYodD09PW9BKXJldHVybiExO2lmKG51bGwhPT10JiYobnVsbD09PWUmJihlPVtdKSxlLnB1c2godCksZS5sZW5ndGg+MzMpKXRocm93IG5ldyBXKCJUb28gbWFueSBhcmd1bWVudHMiKX19cHJlcHJvY2Vzc0NvbW1hbmQoQSxlKXtzd2l0Y2goMHxBKXtjYXNlIGY6dGhpcy5zdGF0ZU1hbmFnZXIuc2F2ZSgpO2JyZWFrO2Nhc2UgcDp0aGlzLnN0YXRlTWFuYWdlci5yZXN0b3JlKCk7YnJlYWs7Y2FzZSBtOnRoaXMuc3RhdGVNYW5hZ2VyLnRyYW5zZm9ybShlKX19fWNsYXNzIGRnIGV4dGVuZHMgdWd7Y29uc3RydWN0b3IoQSl7c3VwZXIobmV3IG9lKEEpKX1wYXJzZSgpe2NvbnN0IEE9e2ZuOjAsYXJnczpbXX0sZT17Zm9udFNpemU6MCxmb250TmFtZToiIixmb250Q29sb3I6bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDMpfTt0cnl7Zm9yKDtBLmFyZ3MubGVuZ3RoPTAsdGhpcy5yZWFkKEEpOyl7aWYoMCE9PXRoaXMuc2F2ZWRTdGF0ZXNEZXB0aCljb250aW51ZTtjb25zdHtmbjp0LGFyZ3M6aX09QTtzd2l0Y2goMHx0KXtjYXNlIHk6Y29uc3RbQSx0XT1pO0EgaW5zdGFuY2VvZiBDQSYmKGUuZm9udE5hbWU9QS5uYW1lKSwibnVtYmVyIj09dHlwZW9mIHQmJnQ+MCYmKGUuZm9udFNpemU9dCk7YnJlYWs7Y2FzZSBiOkNlLnNpbmdsZXRvbnMucmdiLmdldFJnYkl0ZW0oaSwwLGUuZm9udENvbG9yLDApO2JyZWFrO2Nhc2UgNTc6Q2Uuc2luZ2xldG9ucy5ncmF5LmdldFJnYkl0ZW0oaSwwLGUuZm9udENvbG9yLDApO2JyZWFrO2Nhc2UgNjE6Q2Uuc2luZ2xldG9ucy5jbXlrLmdldFJnYkl0ZW0oaSwwLGUuZm9udENvbG9yLDApfX19Y2F0Y2goQSl7VShgcGFyc2VEZWZhdWx0QXBwZWFyYW5jZSAtIGlnbm9yaW5nIGVycm9yczogIiR7QX0iLmApfXJldHVybiBlfX1mdW5jdGlvbiBmZyhBKXtyZXR1cm4gbmV3IGRnKEEpLnBhcnNlKCl9Y2xhc3MgcGcgZXh0ZW5kcyB1Z3tjb25zdHJ1Y3RvcihBLGUsdCl7c3VwZXIoQSksdGhpcy5zdHJlYW09QSx0aGlzLmV2YWx1YXRvck9wdGlvbnM9ZSx0aGlzLnhyZWY9dCx0aGlzLnJlc291cmNlcz1BLmRpY3Q/LmdldCgiUmVzb3VyY2VzIil9cGFyc2UoKXtjb25zdCBBPXtmbjowLGFyZ3M6W119O2xldCBlPXtzY2FsZUZhY3RvcjoxLGZvbnRTaXplOjAsZm9udE5hbWU6IiIsZm9udENvbG9yOm5ldyBVaW50OENsYW1wZWRBcnJheSgzKSxmaWxsQ29sb3JTcGFjZTpDZS5zaW5nbGV0b25zLmdyYXl9LHQ9ITE7Y29uc3QgaT1bXTt0cnl7Zm9yKDtBLmFyZ3MubGVuZ3RoPTAsIXQmJnRoaXMucmVhZChBKTspe2NvbnN0e2ZuOmEsYXJnczpzfT1BO3N3aXRjaCgwfGEpe2Nhc2UgZjppLnB1c2goe3NjYWxlRmFjdG9yOmUuc2NhbGVGYWN0b3IsZm9udFNpemU6ZS5mb250U2l6ZSxmb250TmFtZTplLmZvbnROYW1lLGZvbnRDb2xvcjplLmZvbnRDb2xvci5zbGljZSgpLGZpbGxDb2xvclNwYWNlOmUuZmlsbENvbG9yU3BhY2V9KTticmVhaztjYXNlIHA6ZT1pLnBvcCgpfHxlO2JyZWFrO2Nhc2UgNDI6ZS5zY2FsZUZhY3Rvcio9TWF0aC5oeXBvdChzWzBdLHNbMV0pO2JyZWFrO2Nhc2UgeTpjb25zdFtBLGFdPXM7QSBpbnN0YW5jZW9mIENBJiYoZS5mb250TmFtZT1BLm5hbWUpLCJudW1iZXIiPT10eXBlb2YgYSYmYT4wJiYoZS5mb250U2l6ZT1hKmUuc2NhbGVGYWN0b3IpO2JyZWFrO2Nhc2UgNTE6ZS5maWxsQ29sb3JTcGFjZT1DZS5wYXJzZSh7Y3M6c1swXSx4cmVmOnRoaXMueHJlZixyZXNvdXJjZXM6dGhpcy5yZXNvdXJjZXMscGRmRnVuY3Rpb25GYWN0b3J5OnRoaXMuX3BkZkZ1bmN0aW9uRmFjdG9yeSxsb2NhbENvbG9yU3BhY2VDYWNoZTp0aGlzLl9sb2NhbENvbG9yU3BhY2VDYWNoZX0pO2JyZWFrO2Nhc2UgNTQ6ZS5maWxsQ29sb3JTcGFjZS5nZXRSZ2JJdGVtKHMsMCxlLmZvbnRDb2xvciwwKTticmVhaztjYXNlIGI6Q2Uuc2luZ2xldG9ucy5yZ2IuZ2V0UmdiSXRlbShzLDAsZS5mb250Q29sb3IsMCk7YnJlYWs7Y2FzZSA1NzpDZS5zaW5nbGV0b25zLmdyYXkuZ2V0UmdiSXRlbShzLDAsZS5mb250Q29sb3IsMCk7YnJlYWs7Y2FzZSA2MTpDZS5zaW5nbGV0b25zLmNteWsuZ2V0UmdiSXRlbShzLDAsZS5mb250Q29sb3IsMCk7YnJlYWs7Y2FzZSB3OmNhc2UgNDU6Y2FzZSA0NjpjYXNlIDQ3OnQ9ITB9fX1jYXRjaChBKXtVKGBwYXJzZUFwcGVhcmFuY2VTdHJlYW0gLSBpZ25vcmluZyBlcnJvcnM6ICIke0F9Ii5gKX1yZXR1cm4gdGhpcy5zdHJlYW0ucmVzZXQoKSxkZWxldGUgZS5zY2FsZUZhY3RvcixkZWxldGUgZS5maWxsQ29sb3JTcGFjZSxlfWdldCBfbG9jYWxDb2xvclNwYWNlQ2FjaGUoKXtyZXR1cm4gSCh0aGlzLCJfbG9jYWxDb2xvclNwYWNlQ2FjaGUiLG5ldyBhcil9Z2V0IF9wZGZGdW5jdGlvbkZhY3RvcnkoKXtyZXR1cm4gSCh0aGlzLCJfcGRmRnVuY3Rpb25GYWN0b3J5IixuZXcgSXIoe3hyZWY6dGhpcy54cmVmLGlzRXZhbFN1cHBvcnRlZDp0aGlzLmV2YWx1YXRvck9wdGlvbnMuaXNFdmFsU3VwcG9ydGVkfSkpfX1mdW5jdGlvbiBtZyhBLGUpe3JldHVybiBBWzBdPT09QVsxXSYmQVsxXT09PUFbMl0/YCR7ZWUoQVswXS8yNTUpfSAke2U/ImciOiJHIn1gOkFycmF5LmZyb20oQSwoQT0+ZWUoQS8yNTUpKSkuam9pbigiICIpKyIgIisoZT8icmciOiJSRyIpfWNsYXNzIHlne2NvbnN0cnVjdG9yKEEsZSl7dGhpcy54cmVmPUEsdGhpcy53aWR0aHM9bnVsbCx0aGlzLmZpcnN0Q2hhcj0xLzAsdGhpcy5sYXN0Q2hhcj0tMS8wLHRoaXMuZm9udEZhbWlseT1lO2NvbnN0IHQ9bmV3IE9mZnNjcmVlbkNhbnZhcygxLDEpO3RoaXMuY3R4TWVhc3VyZT10LmdldENvbnRleHQoIjJkIix7d2lsbFJlYWRGcmVxdWVudGx5OiEwfSkseWcuX2ZvbnROYW1lSWR8fCh5Zy5fZm9udE5hbWVJZD0xKSx0aGlzLmZvbnROYW1lPUNBLmdldChgSW52YWxpZFBERmpzRm9udF8ke2V9XyR7eWcuX2ZvbnROYW1lSWQrK31gKX1nZXQgZm9udERlc2NyaXB0b3JSZWYoKXtpZigheWcuX2ZvbnREZXNjcmlwdG9yUmVmKXtjb25zdCBBPW5ldyBRQSh0aGlzLnhyZWYpO0Euc2V0KCJUeXBlIixDQS5nZXQoIkZvbnREZXNjcmlwdG9yIikpLEEuc2V0KCJGb250TmFtZSIsdGhpcy5mb250TmFtZSksQS5zZXQoIkZvbnRGYW1pbHkiLCJNeXJpYWRQcm8gUmVndWxhciIpLEEuc2V0KCJGb250QkJveCIsWzAsMCwwLDBdKSxBLnNldCgiRm9udFN0cmV0Y2giLENBLmdldCgiTm9ybWFsIikpLEEuc2V0KCJGb250V2VpZ2h0Iiw0MDApLEEuc2V0KCJJdGFsaWNBbmdsZSIsMCkseWcuX2ZvbnREZXNjcmlwdG9yUmVmPXRoaXMueHJlZi5nZXROZXdQZXJzaXN0ZW50UmVmKEEpfXJldHVybiB5Zy5fZm9udERlc2NyaXB0b3JSZWZ9Z2V0IGRlc2NlbmRhbnRGb250UmVmKCl7Y29uc3QgQT1uZXcgUUEodGhpcy54cmVmKTtBLnNldCgiQmFzZUZvbnQiLHRoaXMuZm9udE5hbWUpLEEuc2V0KCJUeXBlIixDQS5nZXQoIkZvbnQiKSksQS5zZXQoIlN1YnR5cGUiLENBLmdldCgiQ0lERm9udFR5cGUwIikpLEEuc2V0KCJDSURUb0dJRE1hcCIsQ0EuZ2V0KCJJZGVudGl0eSIpKSxBLnNldCgiRmlyc3RDaGFyIix0aGlzLmZpcnN0Q2hhciksQS5zZXQoIkxhc3RDaGFyIix0aGlzLmxhc3RDaGFyKSxBLnNldCgiRm9udERlc2NyaXB0b3IiLHRoaXMuZm9udERlc2NyaXB0b3JSZWYpLEEuc2V0KCJEVyIsMWUzKTtjb25zdCBlPVtdLHQ9Wy4uLnRoaXMud2lkdGhzLmVudHJpZXMoKV0uc29ydCgpO2xldCBpPW51bGwsYT1udWxsO2Zvcihjb25zdFtBLHNdb2YgdClpP0E9PT1pK2EubGVuZ3RoP2EucHVzaChzKTooZS5wdXNoKGksYSksaT1BLGE9W3NdKTooaT1BLGE9W3NdKTtpJiZlLnB1c2goaSxhKSxBLnNldCgiVyIsZSk7Y29uc3Qgcz1uZXcgUUEodGhpcy54cmVmKTtyZXR1cm4gcy5zZXQoIk9yZGVyaW5nIiwiSWRlbnRpdHkiKSxzLnNldCgiUmVnaXN0cnkiLCJBZG9iZSIpLHMuc2V0KCJTdXBwbGVtZW50IiwwKSxBLnNldCgiQ0lEU3lzdGVtSW5mbyIscyksdGhpcy54cmVmLmdldE5ld1BlcnNpc3RlbnRSZWYoQSl9Z2V0IGJhc2VGb250UmVmKCl7Y29uc3QgQT1uZXcgUUEodGhpcy54cmVmKTtyZXR1cm4gQS5zZXQoIkJhc2VGb250Iix0aGlzLmZvbnROYW1lKSxBLnNldCgiVHlwZSIsQ0EuZ2V0KCJGb250IikpLEEuc2V0KCJTdWJ0eXBlIixDQS5nZXQoIlR5cGUwIikpLEEuc2V0KCJFbmNvZGluZyIsQ0EuZ2V0KCJJZGVudGl0eS1IIikpLEEuc2V0KCJEZXNjZW5kYW50Rm9udHMiLFt0aGlzLmRlc2NlbmRhbnRGb250UmVmXSksQS5zZXQoIlRvVW5pY29kZSIsQ0EuZ2V0KCJJZGVudGl0eS1IIikpLHRoaXMueHJlZi5nZXROZXdQZXJzaXN0ZW50UmVmKEEpfWdldCByZXNvdXJjZXMoKXtjb25zdCBBPW5ldyBRQSh0aGlzLnhyZWYpLGU9bmV3IFFBKHRoaXMueHJlZik7cmV0dXJuIGUuc2V0KHRoaXMuZm9udE5hbWUubmFtZSx0aGlzLmJhc2VGb250UmVmKSxBLnNldCgiRm9udCIsZSksQX1fY3JlYXRlQ29udGV4dCgpe3JldHVybiB0aGlzLndpZHRocz1uZXcgTWFwLHRoaXMuY3R4TWVhc3VyZS5mb250PWAxMDAwcHggJHt0aGlzLmZvbnRGYW1pbHl9YCx0aGlzLmN0eE1lYXN1cmV9Y3JlYXRlRm9udFJlc291cmNlcyhBKXtjb25zdCBlPXRoaXMuX2NyZWF0ZUNvbnRleHQoKTtmb3IoY29uc3QgdCBvZiBBLnNwbGl0KC9cclxuP3xcbi8pKWZvcihjb25zdCBBIG9mIHQuc3BsaXQoIiIpKXtjb25zdCB0PUEuY2hhckNvZGVBdCgwKTtpZih0aGlzLndpZHRocy5oYXModCkpY29udGludWU7Y29uc3QgaT1lLm1lYXN1cmVUZXh0KEEpLGE9TWF0aC5jZWlsKGkud2lkdGgpO3RoaXMud2lkdGhzLnNldCh0LGEpLHRoaXMuZmlyc3RDaGFyPU1hdGgubWluKHQsdGhpcy5maXJzdENoYXIpLHRoaXMubGFzdENoYXI9TWF0aC5tYXgodCx0aGlzLmxhc3RDaGFyKX1yZXR1cm4gdGhpcy5yZXNvdXJjZXN9c3RhdGljIGdldEZpcnN0UG9zaXRpb25JbmZvKEEsZSx0KXtjb25zdFtpLGEscyxuXT1BO2xldCBnPXMtaSxvPW4tYTtlJTE4MCE9MCYmKFtnLG9dPVtvLGddKTtjb25zdCBJPXIqdDtyZXR1cm57Y29vcmRzOlswLG8rLjM1KnQtSV0sYmJveDpbMCwwLGcsb10sbWF0cml4OjAhPT1lP25lKGUsbyxJKTp2b2lkIDB9fWNyZWF0ZUFwcGVhcmFuY2UoQSxlLHQsaSxhLHMpe2NvbnN0IG49dGhpcy5fY3JlYXRlQ29udGV4dCgpLGc9W107bGV0IG89LTEvMDtmb3IoY29uc3QgZSBvZiBBLnNwbGl0KC9cclxuP3xcbi8pKXtnLnB1c2goZSk7Y29uc3QgQT1uLm1lYXN1cmVUZXh0KGUpLndpZHRoO289TWF0aC5tYXgobyxBKTtmb3IoY29uc3QgQSBvZiBWQShlKSl7Y29uc3QgZT1TdHJpbmcuZnJvbUNvZGVQb2ludChBKTtsZXQgdD10aGlzLndpZHRocy5nZXQoQSk7aWYodm9pZCAwPT09dCl7Y29uc3QgaT1uLm1lYXN1cmVUZXh0KGUpO3Q9TWF0aC5jZWlsKGkud2lkdGgpLHRoaXMud2lkdGhzLnNldChBLHQpLHRoaXMuZmlyc3RDaGFyPU1hdGgubWluKEEsdGhpcy5maXJzdENoYXIpLHRoaXMubGFzdENoYXI9TWF0aC5tYXgoQSx0aGlzLmxhc3RDaGFyKX19fW8qPWkvMWUzO2NvbnN0W0ksYyxoLENdPWU7bGV0IEI9aC1JLGw9Qy1jO3QlMTgwIT0wJiYoW0IsbF09W2wsQl0pO2xldCBRPTE7bz5CJiYoUT1CL28pO2xldCBFPTE7Y29uc3QgdT1yKmksZD0uMzUqaSxmPXUqZy5sZW5ndGg7Zj5sJiYoRT1sL2YpO2NvbnN0IHA9aSpNYXRoLm1pbihRLEUpLG09WyJxIixgMCAwICR7ZWUoQil9ICR7ZWUobCl9IHJlIFcgbmAsIkJUIixgMSAwIDAgMSAwICR7ZWUobCtkKX0gVG0gMCBUYyAke21nKGEsITApfWAsYC8ke3RoaXMuZm9udE5hbWUubmFtZX0gJHtlZShwKX0gVGZgXSx7cmVzb3VyY2VzOnl9PXRoaXM7aWYoMSE9PShzPSJudW1iZXIiPT10eXBlb2YgcyYmcz49MCYmczw9MT9zOjEpKXttLnB1c2goIi9SMCBncyIpO2NvbnN0IEE9bmV3IFFBKHRoaXMueHJlZiksZT1uZXcgUUEodGhpcy54cmVmKTtlLnNldCgiY2EiLHMpLGUuc2V0KCJDQSIscyksZS5zZXQoIlR5cGUiLENBLmdldCgiRXh0R1N0YXRlIikpLEEuc2V0KCJSMCIsZSkseS5zZXQoIkV4dEdTdGF0ZSIsQSl9Y29uc3Qgdz1lZSh1KTtmb3IoY29uc3QgQSBvZiBnKW0ucHVzaChgMCAtJHt3fSBUZCA8JHthZShBKX0+IFRqYCk7bS5wdXNoKCJFVCIsIlEiKTtjb25zdCBEPW0uam9pbigiXG4iKSxiPW5ldyBRQSh0aGlzLnhyZWYpO2lmKGIuc2V0KCJTdWJ0eXBlIixDQS5nZXQoIkZvcm0iKSksYi5zZXQoIlR5cGUiLENBLmdldCgiWE9iamVjdCIpKSxiLnNldCgiQkJveCIsWzAsMCxCLGxdKSxiLnNldCgiTGVuZ3RoIixELmxlbmd0aCksYi5zZXQoIlJlc291cmNlcyIseSksdCl7Y29uc3QgQT1uZSh0LEIsbCk7Yi5zZXQoIk1hdHJpeCIsQSl9Y29uc3Qgaz1uZXcgb2UoRCk7cmV0dXJuIGsuZGljdD1iLGt9fWNsYXNzIHdne2NvbnN0cnVjdG9yKEEsZSx0KXt0aGlzLnJvb3Q9QSx0aGlzLnhyZWY9ZSx0aGlzLl90eXBlPXR9Z2V0QWxsKCl7Y29uc3QgQT1uZXcgTWFwO2lmKCF0aGlzLnJvb3QpcmV0dXJuIEE7Y29uc3QgZT10aGlzLnhyZWYsdD1uZXcgdUE7dC5wdXQodGhpcy5yb290KTtjb25zdCBpPVt0aGlzLnJvb3RdO2Zvcig7aS5sZW5ndGg+MDspe2NvbnN0IGE9ZS5mZXRjaElmUmVmKGkuc2hpZnQoKSk7aWYoIShhIGluc3RhbmNlb2YgUUEpKWNvbnRpbnVlO2lmKGEuaGFzKCJLaWRzIikpe2NvbnN0IEE9YS5nZXQoIktpZHMiKTtpZighQXJyYXkuaXNBcnJheShBKSljb250aW51ZTtmb3IoY29uc3QgZSBvZiBBKXtpZih0LmhhcyhlKSl0aHJvdyBuZXcgVyhgRHVwbGljYXRlIGVudHJ5IGluICIke3RoaXMuX3R5cGV9IiB0cmVlLmApO2kucHVzaChlKSx0LnB1dChlKX1jb250aW51ZX1jb25zdCBzPWEuZ2V0KHRoaXMuX3R5cGUpO2lmKEFycmF5LmlzQXJyYXkocykpZm9yKGxldCB0PTAsaT1zLmxlbmd0aDt0PGk7dCs9MilBLnNldChlLmZldGNoSWZSZWYoc1t0XSksZS5mZXRjaElmUmVmKHNbdCsxXSkpfXJldHVybiBBfWdldFJhdyhBKXtpZighdGhpcy5yb290KXJldHVybiBudWxsO2NvbnN0IGU9dGhpcy54cmVmO2xldCB0PWUuZmV0Y2hJZlJlZih0aGlzLnJvb3QpLGk9MDtmb3IoO3QuaGFzKCJLaWRzIik7KXtpZigrK2k+MTApcmV0dXJuIFUoYFNlYXJjaCBkZXB0aCBsaW1pdCByZWFjaGVkIGZvciAiJHt0aGlzLl90eXBlfSIgdHJlZS5gKSxudWxsO2NvbnN0IGE9dC5nZXQoIktpZHMiKTtpZighQXJyYXkuaXNBcnJheShhKSlyZXR1cm4gbnVsbDtsZXQgcz0wLG49YS5sZW5ndGgtMTtmb3IoO3M8PW47KXtjb25zdCBpPXMrbj4+MSxyPWUuZmV0Y2hJZlJlZihhW2ldKSxnPXIuZ2V0KCJMaW1pdHMiKTtpZihBPGUuZmV0Y2hJZlJlZihnWzBdKSluPWktMTtlbHNle2lmKCEoQT5lLmZldGNoSWZSZWYoZ1sxXSkpKXt0PXI7YnJlYWt9cz1pKzF9fWlmKHM+bilyZXR1cm4gbnVsbH1jb25zdCBhPXQuZ2V0KHRoaXMuX3R5cGUpO2lmKEFycmF5LmlzQXJyYXkoYSkpe2xldCB0PTAsaT1hLmxlbmd0aC0yO2Zvcig7dDw9aTspe2NvbnN0IHM9dCtpPj4xLG49cysoMSZzKSxyPWUuZmV0Y2hJZlJlZihhW25dKTtpZihBPHIpaT1uLTI7ZWxzZXtpZighKEE+cikpcmV0dXJuIGFbbisxXTt0PW4rMn19fXJldHVybiBudWxsfWdldChBKXtyZXR1cm4gdGhpcy54cmVmLmZldGNoSWZSZWYodGhpcy5nZXRSYXcoQSkpfX1jbGFzcyBEZyBleHRlbmRzIHdne2NvbnN0cnVjdG9yKEEsZSl7c3VwZXIoQSxlLCJOYW1lcyIpfX1jbGFzcyBiZyBleHRlbmRzIHdne2NvbnN0cnVjdG9yKEEsZSl7c3VwZXIoQSxlLCJOdW1zIil9fWZ1bmN0aW9uIGtnKCl7YW49T2JqZWN0LmNyZWF0ZShudWxsKSxJQT1PYmplY3QuY3JlYXRlKG51bGwpLGNBPU9iamVjdC5jcmVhdGUobnVsbCksaEE9T2JqZWN0LmNyZWF0ZShudWxsKSxCYS5jbGVhcigpLGlpLmNsZWFudXAoKX1mdW5jdGlvbiBGZyhBKXtyZXR1cm4gQSBpbnN0YW5jZW9mIFFBP0EuaGFzKCJVRiIpP0EuZ2V0KCJVRiIpOkEuaGFzKCJGIik/QS5nZXQoIkYiKTpBLmhhcygiVW5peCIpP0EuZ2V0KCJVbml4Iik6QS5oYXMoIk1hYyIpP0EuZ2V0KCJNYWMiKTpBLmhhcygiRE9TIik/QS5nZXQoIkRPUyIpOm51bGw6bnVsbH1jbGFzcyBTZ3sjRj0hMTtjb25zdHJ1Y3RvcihBLGUsdD0hMSl7QSBpbnN0YW5jZW9mIFFBJiYodGhpcy54cmVmPWUsdGhpcy5yb290PUEsQS5oYXMoIkZTIikmJih0aGlzLmZzPUEuZ2V0KCJGUyIpKSxBLmhhcygiUkYiKSYmVSgiUmVsYXRlZCBmaWxlIHNwZWNpZmljYXRpb25zIGFyZSBub3Qgc3VwcG9ydGVkIiksdHx8KEEuaGFzKCJFRiIpP3RoaXMuI0Y9ITA6VSgiTm9uLWVtYmVkZGVkIGZpbGUgc3BlY2lmaWNhdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQiKSkpfWdldCBmaWxlbmFtZSgpe2xldCBBPSIiO2NvbnN0IGU9RmcodGhpcy5yb290KTtyZXR1cm4gZSYmInN0cmluZyI9PXR5cGVvZiBlJiYoQT1lQShlKS5yZXBsYWNlQWxsKCJcXFxcIiwiXFwiKS5yZXBsYWNlQWxsKCJcXC8iLCIvIikucmVwbGFjZUFsbCgiXFwiLCIvIikpLEgodGhpcywiZmlsZW5hbWUiLEF8fCJ1bm5hbWVkIil9Z2V0IGNvbnRlbnQoKXtpZighdGhpcy4jRilyZXR1cm4gbnVsbDt0aGlzLl9jb250ZW50UmVmfHw9RmcodGhpcy5yb290Py5nZXQoIkVGIikpO2xldCBBPW51bGw7aWYodGhpcy5fY29udGVudFJlZil7Y29uc3QgZT10aGlzLnhyZWYuZmV0Y2hJZlJlZih0aGlzLl9jb250ZW50UmVmKTtlIGluc3RhbmNlb2Ygd0E/QT1lLmdldEJ5dGVzKCk6VSgiRW1iZWRkZWQgZmlsZSBzcGVjaWZpY2F0aW9uIHBvaW50cyB0byBub24tZXhpc3RpbmcvaW52YWxpZCBjb250ZW50Iil9ZWxzZSBVKCJFbWJlZGRlZCBmaWxlIHNwZWNpZmljYXRpb24gZG9lcyBub3QgaGF2ZSBhbnkgY29udGVudCIpO3JldHVybiBBfWdldCBkZXNjcmlwdGlvbigpe2xldCBBPSIiO2NvbnN0IGU9dGhpcy5yb290Py5nZXQoIkRlc2MiKTtyZXR1cm4gZSYmInN0cmluZyI9PXR5cGVvZiBlJiYoQT1lQShlKSksSCh0aGlzLCJkZXNjcmlwdGlvbiIsQSl9Z2V0IHNlcmlhbGl6YWJsZSgpe3JldHVybntyYXdGaWxlbmFtZTp0aGlzLmZpbGVuYW1lLGZpbGVuYW1lOihBPXRoaXMuZmlsZW5hbWUsQS5zdWJzdHJpbmcoQS5sYXN0SW5kZXhPZigiLyIpKzEpKSxjb250ZW50OnRoaXMuY29udGVudCxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9ufTt2YXIgQX19ZnVuY3Rpb24gUmcoQSxlKXtjb25zdCB0PUFbZV07cmV0dXJuIiAiPT09dHx8IlxuIj09PXR8fCJcciI9PT10fHwiXHQiPT09dH1jbGFzcyBHZ3tfcmVzb2x2ZUVudGl0aWVzKEEpe3JldHVybiBBLnJlcGxhY2VBbGwoLyYoW147XSspOy9nLCgoQSxlKT0+e2lmKCIjeCI9PT1lLnN1YnN0cmluZygwLDIpKXJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludChwYXJzZUludChlLnN1YnN0cmluZygyKSwxNikpO2lmKCIjIj09PWUuc3Vic3RyaW5nKDAsMSkpcmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KHBhcnNlSW50KGUuc3Vic3RyaW5nKDEpLDEwKSk7c3dpdGNoKGUpe2Nhc2UibHQiOnJldHVybiI8IjtjYXNlImd0IjpyZXR1cm4iPiI7Y2FzZSJhbXAiOnJldHVybiImIjtjYXNlInF1b3QiOnJldHVybiciJztjYXNlImFwb3MiOnJldHVybiInIn1yZXR1cm4gdGhpcy5vblJlc29sdmVFbnRpdHkoZSl9KSl9X3BhcnNlQ29udGVudChBLGUpe2NvbnN0IHQ9W107bGV0IGk9ZTtmdW5jdGlvbiBhKCl7Zm9yKDtpPEEubGVuZ3RoJiZSZyhBLGkpOykrK2l9Zm9yKDtpPEEubGVuZ3RoJiYhUmcoQSxpKSYmIj4iIT09QVtpXSYmIi8iIT09QVtpXTspKytpO2NvbnN0IHM9QS5zdWJzdHJpbmcoZSxpKTtmb3IoYSgpO2k8QS5sZW5ndGgmJiI+IiE9PUFbaV0mJiIvIiE9PUFbaV0mJiI/IiE9PUFbaV07KXthKCk7bGV0IGU9IiIscz0iIjtmb3IoO2k8QS5sZW5ndGgmJiFSZyhBLGkpJiYiPSIhPT1BW2ldOyllKz1BW2ldLCsraTtpZihhKCksIj0iIT09QVtpXSlyZXR1cm4gbnVsbDsrK2ksYSgpO2NvbnN0IG49QVtpXTtpZignIichPT1uJiYiJyIhPT1uKXJldHVybiBudWxsO2NvbnN0IHI9QS5pbmRleE9mKG4sKytpKTtpZihyPDApcmV0dXJuIG51bGw7cz1BLnN1YnN0cmluZyhpLHIpLHQucHVzaCh7bmFtZTplLHZhbHVlOnRoaXMuX3Jlc29sdmVFbnRpdGllcyhzKX0pLGk9cisxLGEoKX1yZXR1cm57bmFtZTpzLGF0dHJpYnV0ZXM6dCxwYXJzZWQ6aS1lfX1fcGFyc2VQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oQSxlKXtsZXQgdD1lO2Zvcig7dDxBLmxlbmd0aCYmIVJnKEEsdCkmJiI+IiE9PUFbdF0mJiI/IiE9PUFbdF0mJiIvIiE9PUFbdF07KSsrdDtjb25zdCBpPUEuc3Vic3RyaW5nKGUsdCk7IWZ1bmN0aW9uKCl7Zm9yKDt0PEEubGVuZ3RoJiZSZyhBLHQpOykrK3R9KCk7Y29uc3QgYT10O2Zvcig7dDxBLmxlbmd0aCYmKCI/IiE9PUFbdF18fCI+IiE9PUFbdCsxXSk7KSsrdDtyZXR1cm57bmFtZTppLHZhbHVlOkEuc3Vic3RyaW5nKGEsdCkscGFyc2VkOnQtZX19cGFyc2VYbWwoQSl7bGV0IGU9MDtmb3IoO2U8QS5sZW5ndGg7KXtsZXQgdD1lO2lmKCI8Ij09PUFbZV0pe2xldCBlO3N3aXRjaCgrK3QsQVt0XSl7Y2FzZSIvIjppZigrK3QsZT1BLmluZGV4T2YoIj4iLHQpLGU8MClyZXR1cm4gdm9pZCB0aGlzLm9uRXJyb3IoLTkpO3RoaXMub25FbmRFbGVtZW50KEEuc3Vic3RyaW5nKHQsZSkpLHQ9ZSsxO2JyZWFrO2Nhc2UiPyI6Kyt0O2NvbnN0IGk9dGhpcy5fcGFyc2VQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oQSx0KTtpZigiPz4iIT09QS5zdWJzdHJpbmcodCtpLnBhcnNlZCx0K2kucGFyc2VkKzIpKXJldHVybiB2b2lkIHRoaXMub25FcnJvcigtMyk7dGhpcy5vblBpKGkubmFtZSxpLnZhbHVlKSx0Kz1pLnBhcnNlZCsyO2JyZWFrO2Nhc2UiISI6aWYoIi0tIj09PUEuc3Vic3RyaW5nKHQrMSx0KzMpKXtpZihlPUEuaW5kZXhPZigiLS1ceDNlIix0KzMpLGU8MClyZXR1cm4gdm9pZCB0aGlzLm9uRXJyb3IoLTUpO3RoaXMub25Db21tZW50KEEuc3Vic3RyaW5nKHQrMyxlKSksdD1lKzN9ZWxzZSBpZigiW0NEQVRBWyI9PT1BLnN1YnN0cmluZyh0KzEsdCs4KSl7aWYoZT1BLmluZGV4T2YoIl1dPiIsdCs4KSxlPDApcmV0dXJuIHZvaWQgdGhpcy5vbkVycm9yKC0yKTt0aGlzLm9uQ2RhdGEoQS5zdWJzdHJpbmcodCs4LGUpKSx0PWUrM31lbHNle2lmKCJET0NUWVBFIiE9PUEuc3Vic3RyaW5nKHQrMSx0KzgpKXJldHVybiB2b2lkIHRoaXMub25FcnJvcigtNik7e2NvbnN0IGk9QS5pbmRleE9mKCJbIix0KzgpO2xldCBhPSExO2lmKGU9QS5pbmRleE9mKCI+Iix0KzgpLGU8MClyZXR1cm4gdm9pZCB0aGlzLm9uRXJyb3IoLTQpO2lmKGk+MCYmZT5pKXtpZihlPUEuaW5kZXhPZigiXT4iLHQrOCksZTwwKXJldHVybiB2b2lkIHRoaXMub25FcnJvcigtNCk7YT0hMH1jb25zdCBzPUEuc3Vic3RyaW5nKHQrOCxlKyhhPzE6MCkpO3RoaXMub25Eb2N0eXBlKHMpLHQ9ZSsoYT8yOjEpfX1icmVhaztkZWZhdWx0OmNvbnN0IGE9dGhpcy5fcGFyc2VDb250ZW50KEEsdCk7aWYobnVsbD09PWEpcmV0dXJuIHZvaWQgdGhpcy5vbkVycm9yKC02KTtsZXQgcz0hMTtpZigiLz4iPT09QS5zdWJzdHJpbmcodCthLnBhcnNlZCx0K2EucGFyc2VkKzIpKXM9ITA7ZWxzZSBpZigiPiIhPT1BLnN1YnN0cmluZyh0K2EucGFyc2VkLHQrYS5wYXJzZWQrMSkpcmV0dXJuIHZvaWQgdGhpcy5vbkVycm9yKC05KTt0aGlzLm9uQmVnaW5FbGVtZW50KGEubmFtZSxhLmF0dHJpYnV0ZXMscyksdCs9YS5wYXJzZWQrKHM/MjoxKX19ZWxzZXtmb3IoO3Q8QS5sZW5ndGgmJiI8IiE9PUFbdF07KXQrKztjb25zdCBpPUEuc3Vic3RyaW5nKGUsdCk7dGhpcy5vblRleHQodGhpcy5fcmVzb2x2ZUVudGl0aWVzKGkpKX1lPXR9fW9uUmVzb2x2ZUVudGl0eShBKXtyZXR1cm5gJiR7QX07YH1vblBpKEEsZSl7fW9uQ29tbWVudChBKXt9b25DZGF0YShBKXt9b25Eb2N0eXBlKEEpe31vblRleHQoQSl7fW9uQmVnaW5FbGVtZW50KEEsZSx0KXt9b25FbmRFbGVtZW50KEEpe31vbkVycm9yKEEpe319Y2xhc3MgTmd7Y29uc3RydWN0b3IoQSxlKXt0aGlzLm5vZGVOYW1lPUEsdGhpcy5ub2RlVmFsdWU9ZSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywicGFyZW50Tm9kZSIse3ZhbHVlOm51bGwsd3JpdGFibGU6ITB9KX1nZXQgZmlyc3RDaGlsZCgpe3JldHVybiB0aGlzLmNoaWxkTm9kZXM/LlswXX1nZXQgbmV4dFNpYmxpbmcoKXtjb25zdCBBPXRoaXMucGFyZW50Tm9kZS5jaGlsZE5vZGVzO2lmKCFBKXJldHVybjtjb25zdCBlPUEuaW5kZXhPZih0aGlzKTtyZXR1cm4tMSE9PWU/QVtlKzFdOnZvaWQgMH1nZXQgdGV4dENvbnRlbnQoKXtyZXR1cm4gdGhpcy5jaGlsZE5vZGVzP3RoaXMuY2hpbGROb2Rlcy5tYXAoKGZ1bmN0aW9uKEEpe3JldHVybiBBLnRleHRDb250ZW50fSkpLmpvaW4oIiIpOnRoaXMubm9kZVZhbHVlfHwiIn1nZXQgY2hpbGRyZW4oKXtyZXR1cm4gdGhpcy5jaGlsZE5vZGVzfHxbXX1oYXNDaGlsZE5vZGVzKCl7cmV0dXJuIHRoaXMuY2hpbGROb2Rlcz8ubGVuZ3RoPjB9c2VhcmNoTm9kZShBLGUpe2lmKGU+PUEubGVuZ3RoKXJldHVybiB0aGlzO2NvbnN0IHQ9QVtlXTtpZih0Lm5hbWUuc3RhcnRzV2l0aCgiIyIpJiZlPEEubGVuZ3RoLTEpcmV0dXJuIHRoaXMuc2VhcmNoTm9kZShBLGUrMSk7Y29uc3QgaT1bXTtsZXQgYT10aGlzO2Zvcig7Oyl7aWYodC5uYW1lPT09YS5ub2RlTmFtZSl7aWYoMCE9PXQucG9zKXtpZigwPT09aS5sZW5ndGgpcmV0dXJuIG51bGw7e2NvbnN0W3NdPWkucG9wKCk7bGV0IG49MDtmb3IoY29uc3QgaSBvZiBzLmNoaWxkTm9kZXMpaWYodC5uYW1lPT09aS5ub2RlTmFtZSl7aWYobj09PXQucG9zKXJldHVybiBpLnNlYXJjaE5vZGUoQSxlKzEpO24rK31yZXR1cm4gYS5zZWFyY2hOb2RlKEEsZSsxKX19e2NvbnN0IHQ9YS5zZWFyY2hOb2RlKEEsZSsxKTtpZihudWxsIT09dClyZXR1cm4gdH19aWYoYS5jaGlsZE5vZGVzPy5sZW5ndGg+MClpLnB1c2goW2EsMF0pLGE9YS5jaGlsZE5vZGVzWzBdO2Vsc2V7aWYoMD09PWkubGVuZ3RoKXJldHVybiBudWxsO2Zvcig7MCE9PWkubGVuZ3RoOyl7Y29uc3RbQSxlXT1pLnBvcCgpLHQ9ZSsxO2lmKHQ8QS5jaGlsZE5vZGVzLmxlbmd0aCl7aS5wdXNoKFtBLHRdKSxhPUEuY2hpbGROb2Rlc1t0XTticmVha319aWYoMD09PWkubGVuZ3RoKXJldHVybiBudWxsfX19ZHVtcChBKXtpZigiI3RleHQiIT09dGhpcy5ub2RlTmFtZSl7aWYoQS5wdXNoKGA8JHt0aGlzLm5vZGVOYW1lfWApLHRoaXMuYXR0cmlidXRlcylmb3IoY29uc3QgZSBvZiB0aGlzLmF0dHJpYnV0ZXMpQS5wdXNoKGAgJHtlLm5hbWV9PSIke19BKGUudmFsdWUpfSJgKTtpZih0aGlzLmhhc0NoaWxkTm9kZXMoKSl7QS5wdXNoKCI+Iik7Zm9yKGNvbnN0IGUgb2YgdGhpcy5jaGlsZE5vZGVzKWUuZHVtcChBKTtBLnB1c2goYDwvJHt0aGlzLm5vZGVOYW1lfT5gKX1lbHNlIHRoaXMubm9kZVZhbHVlP0EucHVzaChgPiR7X0EodGhpcy5ub2RlVmFsdWUpfTwvJHt0aGlzLm5vZGVOYW1lfT5gKTpBLnB1c2goIi8+Iil9ZWxzZSBBLnB1c2goX0EodGhpcy5ub2RlVmFsdWUpKX19Y2xhc3MgeGcgZXh0ZW5kcyBHZ3tjb25zdHJ1Y3Rvcih7aGFzQXR0cmlidXRlczpBPSExLGxvd2VyQ2FzZU5hbWU6ZT0hMX0pe3N1cGVyKCksdGhpcy5fY3VycmVudEZyYWdtZW50PW51bGwsdGhpcy5fc3RhY2s9bnVsbCx0aGlzLl9lcnJvckNvZGU9MCx0aGlzLl9oYXNBdHRyaWJ1dGVzPUEsdGhpcy5fbG93ZXJDYXNlTmFtZT1lfXBhcnNlRnJvbVN0cmluZyhBKXtpZih0aGlzLl9jdXJyZW50RnJhZ21lbnQ9W10sdGhpcy5fc3RhY2s9W10sdGhpcy5fZXJyb3JDb2RlPTAsdGhpcy5wYXJzZVhtbChBKSwwIT09dGhpcy5fZXJyb3JDb2RlKXJldHVybjtjb25zdFtlXT10aGlzLl9jdXJyZW50RnJhZ21lbnQ7cmV0dXJuIGU/e2RvY3VtZW50RWxlbWVudDplfTp2b2lkIDB9b25UZXh0KEEpe2lmKGZ1bmN0aW9uKEEpe2ZvcihsZXQgZT0wLHQ9QS5sZW5ndGg7ZTx0O2UrKylpZighUmcoQSxlKSlyZXR1cm4hMTtyZXR1cm4hMH0oQSkpcmV0dXJuO2NvbnN0IGU9bmV3IE5nKCIjdGV4dCIsQSk7dGhpcy5fY3VycmVudEZyYWdtZW50LnB1c2goZSl9b25DZGF0YShBKXtjb25zdCBlPW5ldyBOZygiI3RleHQiLEEpO3RoaXMuX2N1cnJlbnRGcmFnbWVudC5wdXNoKGUpfW9uQmVnaW5FbGVtZW50KEEsZSx0KXt0aGlzLl9sb3dlckNhc2VOYW1lJiYoQT1BLnRvTG93ZXJDYXNlKCkpO2NvbnN0IGk9bmV3IE5nKEEpO2kuY2hpbGROb2Rlcz1bXSx0aGlzLl9oYXNBdHRyaWJ1dGVzJiYoaS5hdHRyaWJ1dGVzPWUpLHRoaXMuX2N1cnJlbnRGcmFnbWVudC5wdXNoKGkpLHR8fCh0aGlzLl9zdGFjay5wdXNoKHRoaXMuX2N1cnJlbnRGcmFnbWVudCksdGhpcy5fY3VycmVudEZyYWdtZW50PWkuY2hpbGROb2Rlcyl9b25FbmRFbGVtZW50KEEpe3RoaXMuX2N1cnJlbnRGcmFnbWVudD10aGlzLl9zdGFjay5wb3AoKXx8W107Y29uc3QgZT10aGlzLl9jdXJyZW50RnJhZ21lbnQuYXQoLTEpO2lmKCFlKXJldHVybiBudWxsO2Zvcihjb25zdCBBIG9mIGUuY2hpbGROb2RlcylBLnBhcmVudE5vZGU9ZTtyZXR1cm4gZX1vbkVycm9yKEEpe3RoaXMuX2Vycm9yQ29kZT1BfX1jbGFzcyBVZ3tjb25zdHJ1Y3RvcihBKXtBPXRoaXMuX3JlcGFpcihBKTtjb25zdCBlPW5ldyB4Zyh7bG93ZXJDYXNlTmFtZTohMH0pLnBhcnNlRnJvbVN0cmluZyhBKTt0aGlzLl9tZXRhZGF0YU1hcD1uZXcgTWFwLHRoaXMuX2RhdGE9QSxlJiZ0aGlzLl9wYXJzZShlKX1fcmVwYWlyKEEpe3JldHVybiBBLnJlcGxhY2UoL15bXjxdKy8sIiIpLnJlcGxhY2VBbGwoLz5cXDM3NlxcMzc3KFtePF0rKS9nLChmdW5jdGlvbihBLGUpe2NvbnN0IHQ9ZS5yZXBsYWNlQWxsKC9cXChbMC0zXSkoWzAtN10pKFswLTddKS9nLChmdW5jdGlvbihBLGUsdCxpKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSg2NCplKzgqdCsxKmkpfSkpLnJlcGxhY2VBbGwoLyYoYW1wfGFwb3N8Z3R8bHR8cXVvdCk7L2csKGZ1bmN0aW9uKEEsZSl7c3dpdGNoKGUpe2Nhc2UiYW1wIjpyZXR1cm4iJiI7Y2FzZSJhcG9zIjpyZXR1cm4iJyI7Y2FzZSJndCI6cmV0dXJuIj4iO2Nhc2UibHQiOnJldHVybiI8IjtjYXNlInF1b3QiOnJldHVybiciJ310aHJvdyBuZXcgRXJyb3IoYF9yZXBhaXI6ICR7ZX0gaXNuJ3QgZGVmaW5lZC5gKX0pKSxpPVsiPiJdO2ZvcihsZXQgQT0wLGU9dC5sZW5ndGg7QTxlO0ErPTIpe2NvbnN0IGU9MjU2KnQuY2hhckNvZGVBdChBKSt0LmNoYXJDb2RlQXQoQSsxKTtlPj0zMiYmZTwxMjcmJjYwIT09ZSYmNjIhPT1lJiYzOCE9PWU/aS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoZSkpOmkucHVzaCgiJiN4IisoNjU1MzYrZSkudG9TdHJpbmcoMTYpLnN1YnN0cmluZygxKSsiOyIpfXJldHVybiBpLmpvaW4oIiIpfSkpfV9nZXRTZXF1ZW5jZShBKXtjb25zdCBlPUEubm9kZU5hbWU7cmV0dXJuInJkZjpiYWciIT09ZSYmInJkZjpzZXEiIT09ZSYmInJkZjphbHQiIT09ZT9udWxsOkEuY2hpbGROb2Rlcy5maWx0ZXIoKEE9PiJyZGY6bGkiPT09QS5ub2RlTmFtZSkpfV9wYXJzZUFycmF5KEEpe2lmKCFBLmhhc0NoaWxkTm9kZXMoKSlyZXR1cm47Y29uc3RbZV09QS5jaGlsZE5vZGVzLHQ9dGhpcy5fZ2V0U2VxdWVuY2UoZSl8fFtdO3RoaXMuX21ldGFkYXRhTWFwLnNldChBLm5vZGVOYW1lLHQubWFwKChBPT5BLnRleHRDb250ZW50LnRyaW0oKSkpKX1fcGFyc2UoQSl7bGV0IGU9QS5kb2N1bWVudEVsZW1lbnQ7aWYoInJkZjpyZGYiIT09ZS5ub2RlTmFtZSlmb3IoZT1lLmZpcnN0Q2hpbGQ7ZSYmInJkZjpyZGYiIT09ZS5ub2RlTmFtZTspZT1lLm5leHRTaWJsaW5nO2lmKGUmJiJyZGY6cmRmIj09PWUubm9kZU5hbWUmJmUuaGFzQ2hpbGROb2RlcygpKWZvcihjb25zdCBBIG9mIGUuY2hpbGROb2RlcylpZigicmRmOmRlc2NyaXB0aW9uIj09PUEubm9kZU5hbWUpZm9yKGNvbnN0IGUgb2YgQS5jaGlsZE5vZGVzKXtjb25zdCBBPWUubm9kZU5hbWU7c3dpdGNoKEEpe2Nhc2UiI3RleHQiOmNvbnRpbnVlO2Nhc2UiZGM6Y3JlYXRvciI6Y2FzZSJkYzpzdWJqZWN0Ijp0aGlzLl9wYXJzZUFycmF5KGUpO2NvbnRpbnVlfXRoaXMuX21ldGFkYXRhTWFwLnNldChBLGUudGV4dENvbnRlbnQudHJpbSgpKX19Z2V0IHNlcmlhbGl6YWJsZSgpe3JldHVybntwYXJzZWREYXRhOnRoaXMuX21ldGFkYXRhTWFwLHJhd0RhdGE6dGhpcy5fZGF0YX19fWNsYXNzIE1nIGV4dGVuZHMgTmV7Y29uc3RydWN0b3IoQSxlLHQpe3N1cGVyKGUpLHRoaXMuc3RyPUEsdGhpcy5kaWN0PUEuZGljdCx0aGlzLmRlY3J5cHQ9dCx0aGlzLm5leHRDaHVuaz1udWxsLHRoaXMuaW5pdGlhbGl6ZWQ9ITF9cmVhZEJsb2NrKCl7bGV0IEE7aWYodGhpcy5pbml0aWFsaXplZD9BPXRoaXMubmV4dENodW5rOihBPXRoaXMuc3RyLmdldEJ5dGVzKDUxMiksdGhpcy5pbml0aWFsaXplZD0hMCksIUF8fDA9PT1BLmxlbmd0aClyZXR1cm4gdm9pZCh0aGlzLmVvZj0hMCk7dGhpcy5uZXh0Q2h1bms9dGhpcy5zdHIuZ2V0Qnl0ZXMoNTEyKTtjb25zdCBlPXRoaXMubmV4dENodW5rPy5sZW5ndGg+MDtBPSgwLHRoaXMuZGVjcnlwdCkoQSwhZSk7Y29uc3QgdD10aGlzLmJ1ZmZlckxlbmd0aCxpPXQrQS5sZW5ndGg7dGhpcy5lbnN1cmVCdWZmZXIoaSkuc2V0KEEsdCksdGhpcy5idWZmZXJMZW5ndGg9aX19Y2xhc3MgTGd7Y29uc3RydWN0b3IoQSl7dGhpcy5hPTAsdGhpcy5iPTA7Y29uc3QgZT1uZXcgVWludDhBcnJheSgyNTYpLHQ9QS5sZW5ndGg7Zm9yKGxldCBBPTA7QTwyNTY7KytBKWVbQV09QTtmb3IobGV0IGk9MCxhPTA7aTwyNTY7KytpKXtjb25zdCBzPWVbaV07YT1hK3MrQVtpJXRdJjI1NSxlW2ldPWVbYV0sZVthXT1zfXRoaXMucz1lfWVuY3J5cHRCbG9jayhBKXtsZXQgZT10aGlzLmEsdD10aGlzLmI7Y29uc3QgaT10aGlzLnMsYT1BLmxlbmd0aCxzPW5ldyBVaW50OEFycmF5KGEpO2ZvcihsZXQgbj0wO248YTsrK24pe2U9ZSsxJjI1NTtjb25zdCBhPWlbZV07dD10K2EmMjU1O2NvbnN0IHI9aVt0XTtpW2VdPXIsaVt0XT1hLHNbbl09QVtuXV5pW2ErciYyNTVdfXJldHVybiB0aGlzLmE9ZSx0aGlzLmI9dCxzfWRlY3J5cHRCbG9jayhBKXtyZXR1cm4gdGhpcy5lbmNyeXB0QmxvY2soQSl9ZW5jcnlwdChBKXtyZXR1cm4gdGhpcy5lbmNyeXB0QmxvY2soQSl9fWNvbnN0IEpnPWZ1bmN0aW9uKCl7Y29uc3QgQT1uZXcgVWludDhBcnJheShbNywxMiwxNywyMiw3LDEyLDE3LDIyLDcsMTIsMTcsMjIsNywxMiwxNywyMiw1LDksMTQsMjAsNSw5LDE0LDIwLDUsOSwxNCwyMCw1LDksMTQsMjAsNCwxMSwxNiwyMyw0LDExLDE2LDIzLDQsMTEsMTYsMjMsNCwxMSwxNiwyMyw2LDEwLDE1LDIxLDYsMTAsMTUsMjEsNiwxMCwxNSwyMSw2LDEwLDE1LDIxXSksZT1uZXcgSW50MzJBcnJheShbLTY4MDg3NjkzNiwtMzg5NTY0NTg2LDYwNjEwNTgxOSwtMTA0NDUyNTMzMCwtMTc2NDE4ODk3LDEyMDAwODA0MjYsLTE0NzMyMzEzNDEsLTQ1NzA1OTgzLDE3NzAwMzU0MTYsLTE5NTg0MTQ0MTcsLTQyMDYzLC0xOTkwNDA0MTYyLDE4MDQ2MDM2ODIsLTQwMzQxMTAxLC0xNTAyMDAyMjkwLDEyMzY1MzUzMjksLTE2NTc5NjUxMCwtMTA2OTUwMTYzMiw2NDM3MTc3MTMsLTM3Mzg5NzMwMiwtNzAxNTU4NjkxLDM4MDE2MDgzLC02NjA0NzgzMzUsLTQwNTUzNzg0OCw1Njg0NDY0MzgsLTEwMTk4MDM2OTAsLTE4NzM2Mzk2MSwxMTYzNTMxNTAxLC0xNDQ0NjgxNDY3LC01MTQwMzc4NCwxNzM1MzI4NDczLC0xOTI2NjA3NzM0LC0zNzg1NTgsLTIwMjI1NzQ0NjMsMTgzOTAzMDU2MiwtMzUzMDk1NTYsLTE1MzA5OTIwNjAsMTI3Mjg5MzM1MywtMTU1NDk3NjMyLC0xMDk0NzMwNjQwLDY4MTI3OTE3NCwtMzU4NTM3MjIyLC03MjI1MjE5NzksNzYwMjkxODksLTY0MDM2NDQ4NywtNDIxODE1ODM1LDUzMDc0MjUyMCwtOTk1MzM4NjUxLC0xOTg2MzA4NDQsMTEyNjg5MTQxNSwtMTQxNjM1NDkwNSwtNTc0MzQwNTUsMTcwMDQ4NTU3MSwtMTg5NDk4NjYwNiwtMTA1MTUyMywtMjA1NDkyMjc5OSwxODczMzEzMzU5LC0zMDYxMTc0NCwtMTU2MDE5ODM4MCwxMzA5MTUxNjQ5LC0xNDU1MjMwNzAsLTExMjAyMTAzNzksNzE4Nzg3MjU5LC0zNDM0ODU1NTFdKTtyZXR1cm4gZnVuY3Rpb24odCxpLGEpe2xldCBzPTE3MzI1ODQxOTMsbj0tMjcxNzMzODc5LHI9LTE3MzI1ODQxOTQsZz0yNzE3MzM4Nzg7Y29uc3Qgbz1hKzcyJi02NCxJPW5ldyBVaW50OEFycmF5KG8pO2xldCBjLGg7Zm9yKGM9MDtjPGE7KytjKUlbY109dFtpKytdO0lbYysrXT0xMjg7Y29uc3QgQz1vLTg7Zm9yKDtjPEM7KUlbYysrXT0wO0lbYysrXT1hPDwzJjI1NSxJW2MrK109YT4+NSYyNTUsSVtjKytdPWE+PjEzJjI1NSxJW2MrK109YT4+MjEmMjU1LElbYysrXT1hPj4+MjkmMjU1LElbYysrXT0wLElbYysrXT0wLElbYysrXT0wO2NvbnN0IEI9bmV3IEludDMyQXJyYXkoMTYpO2ZvcihjPTA7YzxvOyl7Zm9yKGg9MDtoPDE2OysraCxjKz00KUJbaF09SVtjXXxJW2MrMV08PDh8SVtjKzJdPDwxNnxJW2MrM108PDI0O2xldCB0LGksYT1zLG89bixDPXIsbD1nO2ZvcihoPTA7aDw2NDsrK2gpe2g8MTY/KHQ9byZDfH5vJmwsaT1oKTpoPDMyPyh0PWwmb3x+bCZDLGk9NSpoKzEmMTUpOmg8NDg/KHQ9b15DXmwsaT0zKmgrNSYxNSk6KHQ9Q14ob3x+bCksaT03KmgmMTUpO2NvbnN0IHM9bCxuPWErdCtlW2hdK0JbaV18MCxyPUFbaF07bD1DLEM9byxvPW8rKG48PHJ8bj4+PjMyLXIpfDAsYT1zfXM9cythfDAsbj1uK298MCxyPXIrQ3wwLGc9ZytsfDB9cmV0dXJuIG5ldyBVaW50OEFycmF5KFsyNTUmcyxzPj44JjI1NSxzPj4xNiYyNTUscz4+PjI0JjI1NSwyNTUmbixuPj44JjI1NSxuPj4xNiYyNTUsbj4+PjI0JjI1NSwyNTUmcixyPj44JjI1NSxyPj4xNiYyNTUscj4+PjI0JjI1NSwyNTUmZyxnPj44JjI1NSxnPj4xNiYyNTUsZz4+PjI0JjI1NV0pfX0oKTtjbGFzcyBIZ3tjb25zdHJ1Y3RvcihBLGUpe3RoaXMuaGlnaD0wfEEsdGhpcy5sb3c9MHxlfWFuZChBKXt0aGlzLmhpZ2gmPUEuaGlnaCx0aGlzLmxvdyY9QS5sb3d9eG9yKEEpe3RoaXMuaGlnaF49QS5oaWdoLHRoaXMubG93Xj1BLmxvd31vcihBKXt0aGlzLmhpZ2h8PUEuaGlnaCx0aGlzLmxvd3w9QS5sb3d9c2hpZnRSaWdodChBKXtBPj0zMj8odGhpcy5sb3c9dGhpcy5oaWdoPj4+QS0zMnwwLHRoaXMuaGlnaD0wKToodGhpcy5sb3c9dGhpcy5sb3c+Pj5BfHRoaXMuaGlnaDw8MzItQSx0aGlzLmhpZ2g9dGhpcy5oaWdoPj4+QXwwKX1zaGlmdExlZnQoQSl7QT49MzI/KHRoaXMuaGlnaD10aGlzLmxvdzw8QS0zMix0aGlzLmxvdz0wKToodGhpcy5oaWdoPXRoaXMuaGlnaDw8QXx0aGlzLmxvdz4+PjMyLUEsdGhpcy5sb3c8PD1BKX1yb3RhdGVSaWdodChBKXtsZXQgZSx0OzMyJkE/KHQ9dGhpcy5sb3csZT10aGlzLmhpZ2gpOihlPXRoaXMubG93LHQ9dGhpcy5oaWdoKSxBJj0zMSx0aGlzLmxvdz1lPj4+QXx0PDwzMi1BLHRoaXMuaGlnaD10Pj4+QXxlPDwzMi1BfW5vdCgpe3RoaXMuaGlnaD1+dGhpcy5oaWdoLHRoaXMubG93PX50aGlzLmxvd31hZGQoQSl7Y29uc3QgZT0odGhpcy5sb3c+Pj4wKSsoQS5sb3c+Pj4wKTtsZXQgdD0odGhpcy5oaWdoPj4+MCkrKEEuaGlnaD4+PjApO2U+NDI5NDk2NzI5NSYmKHQrPTEpLHRoaXMubG93PTB8ZSx0aGlzLmhpZ2g9MHx0fWNvcHlUbyhBLGUpe0FbZV09dGhpcy5oaWdoPj4+MjQmMjU1LEFbZSsxXT10aGlzLmhpZ2g+PjE2JjI1NSxBW2UrMl09dGhpcy5oaWdoPj44JjI1NSxBW2UrM109MjU1JnRoaXMuaGlnaCxBW2UrNF09dGhpcy5sb3c+Pj4yNCYyNTUsQVtlKzVdPXRoaXMubG93Pj4xNiYyNTUsQVtlKzZdPXRoaXMubG93Pj44JjI1NSxBW2UrN109MjU1JnRoaXMubG93fWFzc2lnbihBKXt0aGlzLmhpZ2g9QS5oaWdoLHRoaXMubG93PUEubG93fX1jb25zdCBZZz1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoQSxlKXtyZXR1cm4gQT4+PmV8QTw8MzItZX1mdW5jdGlvbiBlKEEsZSx0KXtyZXR1cm4gQSZlXn5BJnR9ZnVuY3Rpb24gdChBLGUsdCl7cmV0dXJuIEEmZV5BJnReZSZ0fWZ1bmN0aW9uIGkoZSl7cmV0dXJuIEEoZSwyKV5BKGUsMTMpXkEoZSwyMil9ZnVuY3Rpb24gYShlKXtyZXR1cm4gQShlLDYpXkEoZSwxMSleQShlLDI1KX1mdW5jdGlvbiBzKGUpe3JldHVybiBBKGUsNyleQShlLDE4KV5lPj4+M31jb25zdCBuPVsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdO3JldHVybiBmdW5jdGlvbihyLGcsbyl7bGV0IEk9MTc3OTAzMzcwMyxjPTMxNDQxMzQyNzcsaD0xMDEzOTA0MjQyLEM9Mjc3MzQ4MDc2MixCPTEzNTk4OTMxMTksbD0yNjAwODIyOTI0LFE9NTI4NzM0NjM1LEU9MTU0MTQ1OTIyNTtjb25zdCB1PTY0Kk1hdGguY2VpbCgobys5KS82NCksZD1uZXcgVWludDhBcnJheSh1KTtsZXQgZixwO2ZvcihmPTA7ZjxvOysrZilkW2ZdPXJbZysrXTtkW2YrK109MTI4O2NvbnN0IG09dS04O2Zvcig7ZjxtOylkW2YrK109MDtkW2YrK109MCxkW2YrK109MCxkW2YrK109MCxkW2YrK109bz4+PjI5JjI1NSxkW2YrK109bz4+MjEmMjU1LGRbZisrXT1vPj4xMyYyNTUsZFtmKytdPW8+PjUmMjU1LGRbZisrXT1vPDwzJjI1NTtjb25zdCB5PW5ldyBVaW50MzJBcnJheSg2NCk7Zm9yKGY9MDtmPHU7KXtmb3IocD0wO3A8MTY7KytwKXlbcF09ZFtmXTw8MjR8ZFtmKzFdPDwxNnxkW2YrMl08PDh8ZFtmKzNdLGYrPTQ7Zm9yKHA9MTY7cDw2NDsrK3ApeVtwXT0wfChBKHc9eVtwLTJdLDE3KV5BKHcsMTkpXnc+Pj4xMCkreVtwLTddK3MoeVtwLTE1XSkreVtwLTE2XTtsZXQgcixnLG89SSx1PWMsbT1oLEQ9QyxiPUIsaz1sLEY9USxTPUU7Zm9yKHA9MDtwPDY0OysrcClyPVMrYShiKStlKGIsayxGKStuW3BdK3lbcF0sZz1pKG8pK3Qobyx1LG0pLFM9RixGPWssaz1iLGI9RCtyfDAsRD1tLG09dSx1PW8sbz1yK2d8MDtJPUkrb3wwLGM9Yyt1fDAsaD1oK218MCxDPUMrRHwwLEI9QitifDAsbD1sK2t8MCxRPVErRnwwLEU9RStTfDB9dmFyIHc7cmV0dXJuIG5ldyBVaW50OEFycmF5KFtJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLGM+PjI0JjI1NSxjPj4xNiYyNTUsYz4+OCYyNTUsMjU1JmMsaD4+MjQmMjU1LGg+PjE2JjI1NSxoPj44JjI1NSwyNTUmaCxDPj4yNCYyNTUsQz4+MTYmMjU1LEM+PjgmMjU1LDI1NSZDLEI+PjI0JjI1NSxCPj4xNiYyNTUsQj4+OCYyNTUsMjU1JkIsbD4+MjQmMjU1LGw+PjE2JjI1NSxsPj44JjI1NSwyNTUmbCxRPj4yNCYyNTUsUT4+MTYmMjU1LFE+PjgmMjU1LDI1NSZRLEU+PjI0JjI1NSxFPj4xNiYyNTUsRT4+OCYyNTUsMjU1JkVdKX19KCksdmc9ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKEEsZSx0LGksYSl7QS5hc3NpZ24oZSksQS5hbmQodCksYS5hc3NpZ24oZSksYS5ub3QoKSxhLmFuZChpKSxBLnhvcihhKX1mdW5jdGlvbiBlKEEsZSx0LGksYSl7QS5hc3NpZ24oZSksQS5hbmQodCksYS5hc3NpZ24oZSksYS5hbmQoaSksQS54b3IoYSksYS5hc3NpZ24odCksYS5hbmQoaSksQS54b3IoYSl9ZnVuY3Rpb24gdChBLGUsdCl7QS5hc3NpZ24oZSksQS5yb3RhdGVSaWdodCgyOCksdC5hc3NpZ24oZSksdC5yb3RhdGVSaWdodCgzNCksQS54b3IodCksdC5hc3NpZ24oZSksdC5yb3RhdGVSaWdodCgzOSksQS54b3IodCl9ZnVuY3Rpb24gaShBLGUsdCl7QS5hc3NpZ24oZSksQS5yb3RhdGVSaWdodCgxNCksdC5hc3NpZ24oZSksdC5yb3RhdGVSaWdodCgxOCksQS54b3IodCksdC5hc3NpZ24oZSksdC5yb3RhdGVSaWdodCg0MSksQS54b3IodCl9ZnVuY3Rpb24gYShBLGUsdCl7QS5hc3NpZ24oZSksQS5yb3RhdGVSaWdodCgxKSx0LmFzc2lnbihlKSx0LnJvdGF0ZVJpZ2h0KDgpLEEueG9yKHQpLHQuYXNzaWduKGUpLHQuc2hpZnRSaWdodCg3KSxBLnhvcih0KX1mdW5jdGlvbiBzKEEsZSx0KXtBLmFzc2lnbihlKSxBLnJvdGF0ZVJpZ2h0KDE5KSx0LmFzc2lnbihlKSx0LnJvdGF0ZVJpZ2h0KDYxKSxBLnhvcih0KSx0LmFzc2lnbihlKSx0LnNoaWZ0UmlnaHQoNiksQS54b3IodCl9Y29uc3Qgbj1bbmV3IEhnKDExMTYzNTI0MDgsMzYwOTc2NzQ1OCksbmV3IEhnKDE4OTk0NDc0NDEsNjAyODkxNzI1KSxuZXcgSGcoMzA0OTMyMzQ3MSwzOTY0NDg0Mzk5KSxuZXcgSGcoMzkyMTAwOTU3MywyMTczMjk1NTQ4KSxuZXcgSGcoOTYxOTg3MTYzLDQwODE2Mjg0NzIpLG5ldyBIZygxNTA4OTcwOTkzLDMwNTM4MzQyNjUpLG5ldyBIZygyNDUzNjM1NzQ4LDI5Mzc2NzE1NzkpLG5ldyBIZygyODcwNzYzMjIxLDM2NjQ2MDk1NjApLG5ldyBIZygzNjI0MzgxMDgwLDI3MzQ4ODMzOTQpLG5ldyBIZygzMTA1OTg0MDEsMTE2NDk5NjU0MiksbmV3IEhnKDYwNzIyNTI3OCwxMzIzNjEwNzY0KSxuZXcgSGcoMTQyNjg4MTk4NywzNTkwMzA0OTk0KSxuZXcgSGcoMTkyNTA3ODM4OCw0MDY4MTgyMzgzKSxuZXcgSGcoMjE2MjA3ODIwNiw5OTEzMzYxMTMpLG5ldyBIZygyNjE0ODg4MTAzLDYzMzgwMzMxNyksbmV3IEhnKDMyNDgyMjI1ODAsMzQ3OTc3NDg2OCksbmV3IEhnKDM4MzUzOTA0MDEsMjY2NjYxMzQ1OCksbmV3IEhnKDQwMjIyMjQ3NzQsOTQ0NzExMTM5KSxuZXcgSGcoMjY0MzQ3MDc4LDIzNDEyNjI3NzMpLG5ldyBIZyg2MDQ4MDc2MjgsMjAwNzgwMDkzMyksbmV3IEhnKDc3MDI1NTk4MywxNDk1OTkwOTAxKSxuZXcgSGcoMTI0OTE1MDEyMiwxODU2NDMxMjM1KSxuZXcgSGcoMTU1NTA4MTY5MiwzMTc1MjE4MTMyKSxuZXcgSGcoMTk5NjA2NDk4NiwyMTk4OTUwODM3KSxuZXcgSGcoMjU1NDIyMDg4MiwzOTk5NzE5MzM5KSxuZXcgSGcoMjgyMTgzNDM0OSw3NjY3ODQwMTYpLG5ldyBIZygyOTUyOTk2ODA4LDI1NjY1OTQ4NzkpLG5ldyBIZygzMjEwMzEzNjcxLDMyMDMzMzc5NTYpLG5ldyBIZygzMzM2NTcxODkxLDEwMzQ0NTcwMjYpLG5ldyBIZygzNTg0NTI4NzExLDI0NjY5NDg5MDEpLG5ldyBIZygxMTM5MjY5OTMsMzc1ODMyNjM4MyksbmV3IEhnKDMzODI0MTg5NSwxNjg3MTc5MzYpLG5ldyBIZyg2NjYzMDcyMDUsMTE4ODE3OTk2NCksbmV3IEhnKDc3MzUyOTkxMiwxNTQ2MDQ1NzM0KSxuZXcgSGcoMTI5NDc1NzM3MiwxNTIyODA1NDg1KSxuZXcgSGcoMTM5NjE4MjI5MSwyNjQzODMzODIzKSxuZXcgSGcoMTY5NTE4MzcwMCwyMzQzNTI3MzkwKSxuZXcgSGcoMTk4NjY2MTA1MSwxMDE0NDc3NDgwKSxuZXcgSGcoMjE3NzAyNjM1MCwxMjA2NzU5MTQyKSxuZXcgSGcoMjQ1Njk1NjAzNywzNDQwNzc2MjcpLG5ldyBIZygyNzMwNDg1OTIxLDEyOTA4NjM0NjApLG5ldyBIZygyODIwMzAyNDExLDMxNTg0NTQyNzMpLG5ldyBIZygzMjU5NzMwODAwLDM1MDU5NTI2NTcpLG5ldyBIZygzMzQ1NzY0NzcxLDEwNjIxNzAwOCksbmV3IEhnKDM1MTYwNjU4MTcsMzYwNjAwODM0NCksbmV3IEhnKDM2MDAzNTI4MDQsMTQzMjcyNTc3NiksbmV3IEhnKDQwOTQ1NzE5MDksMTQ2NzAzMTU5NCksbmV3IEhnKDI3NTQyMzM0NCw4NTExNjk3MjApLG5ldyBIZyg0MzAyMjc3MzQsMzEwMDgyMzc1MiksbmV3IEhnKDUwNjk0ODYxNiwxMzYzMjU4MTk1KSxuZXcgSGcoNjU5MDYwNTU2LDM3NTA2ODU1OTMpLG5ldyBIZyg4ODM5OTc4NzcsMzc4NTA1MDI4MCksbmV3IEhnKDk1ODEzOTU3MSwzMzE4MzA3NDI3KSxuZXcgSGcoMTMyMjgyMjIxOCwzODEyNzIzNDAzKSxuZXcgSGcoMTUzNzAwMjA2MywyMDAzMDM0OTk1KSxuZXcgSGcoMTc0Nzg3Mzc3OSwzNjAyMDM2ODk5KSxuZXcgSGcoMTk1NTU2MjIyMiwxNTc1OTkwMDEyKSxuZXcgSGcoMjAyNDEwNDgxNSwxMTI1NTkyOTI4KSxuZXcgSGcoMjIyNzczMDQ1MiwyNzE2OTA0MzA2KSxuZXcgSGcoMjM2MTg1MjQyNCw0NDI3NzYwNDQpLG5ldyBIZygyNDI4NDM2NDc0LDU5MzY5ODM0NCksbmV3IEhnKDI3NTY3MzQxODcsMzczMzExMDI0OSksbmV3IEhnKDMyMDQwMzE0NzksMjk5OTM1MTU3MyksbmV3IEhnKDMzMjkzMjUyOTgsMzgxNTkyMDQyNyksbmV3IEhnKDMzOTE1Njk2MTQsMzkyODM4MzkwMCksbmV3IEhnKDM1MTUyNjcyNzEsNTY2MjgwNzExKSxuZXcgSGcoMzk0MDE4NzYwNiwzNDU0MDY5NTM0KSxuZXcgSGcoNDExODYzMDI3MSw0MDAwMjM5OTkyKSxuZXcgSGcoMTE2NDE4NDc0LDE5MTQxMzg1NTQpLG5ldyBIZygxNzQyOTI0MjEsMjczMTA1NTI3MCksbmV3IEhnKDI4OTM4MDM1NiwzMjAzOTkzMDA2KSxuZXcgSGcoNDYwMzkzMjY5LDMyMDYyMDMxNSksbmV3IEhnKDY4NTQ3MTczMyw1ODc0OTY4MzYpLG5ldyBIZyg4NTIxNDI5NzEsMTA4Njc5Mjg1MSksbmV3IEhnKDEwMTcwMzYyOTgsMzY1NTQzMTAwKSxuZXcgSGcoMTEyNjAwMDU4MCwyNjE4Mjk3Njc2KSxuZXcgSGcoMTI4ODAzMzQ3MCwzNDA5ODU1MTU4KSxuZXcgSGcoMTUwMTUwNTk0OCw0MjM0NTA5ODY2KSxuZXcgSGcoMTYwNzE2NzkxNSw5ODcxNjc0NjgpLG5ldyBIZygxODE2NDAyMzE2LDEyNDYxODk1OTEpXTtyZXR1cm4gZnVuY3Rpb24ocixnLG8sST0hMSl7bGV0IGMsaCxDLEIsbCxRLEUsdTtJPyhjPW5ldyBIZygzNDE4MDcwMzY1LDMyMzgzNzEwMzIpLGg9bmV3IEhnKDE2NTQyNzAyNTAsOTE0MTUwNjYzKSxDPW5ldyBIZygyNDM4NTI5MzcwLDgxMjcwMjk5OSksQj1uZXcgSGcoMzU1NDYyMzYwLDQxNDQ5MTI2OTcpLGw9bmV3IEhnKDE3MzE0MDU0MTUsNDI5MDc3NTg1NyksUT1uZXcgSGcoMjM5NDE4MDIzMSwxNzUwNjAzMDI1KSxFPW5ldyBIZygzNjc1MDA4NTI1LDE2OTQwNzY4MzkpLHU9bmV3IEhnKDEyMDMwNjI4MTMsMzIwNDA3NTQyOCkpOihjPW5ldyBIZygxNzc5MDMzNzAzLDQwODkyMzU3MjApLGg9bmV3IEhnKDMxNDQxMzQyNzcsMjIyNzg3MzU5NSksQz1uZXcgSGcoMTAxMzkwNDI0Miw0MjcxMTc1NzIzKSxCPW5ldyBIZygyNzczNDgwNzYyLDE1OTU3NTAxMjkpLGw9bmV3IEhnKDEzNTk4OTMxMTksMjkxNzU2NTEzNyksUT1uZXcgSGcoMjYwMDgyMjkyNCw3MjU1MTExOTkpLEU9bmV3IEhnKDUyODczNDYzNSw0MjE1Mzg5NTQ3KSx1PW5ldyBIZygxNTQxNDU5MjI1LDMyNzAzMzIwOSkpO2NvbnN0IGQ9MTI4Kk1hdGguY2VpbCgobysxNykvMTI4KSxmPW5ldyBVaW50OEFycmF5KGQpO2xldCBwLG07Zm9yKHA9MDtwPG87KytwKWZbcF09cltnKytdO2ZbcCsrXT0xMjg7Y29uc3QgeT1kLTE2O2Zvcig7cDx5OylmW3ArK109MDtmW3ArK109MCxmW3ArK109MCxmW3ArK109MCxmW3ArK109MCxmW3ArK109MCxmW3ArK109MCxmW3ArK109MCxmW3ArK109MCxmW3ArK109MCxmW3ArK109MCxmW3ArK109MCxmW3ArK109bz4+PjI5JjI1NSxmW3ArK109bz4+MjEmMjU1LGZbcCsrXT1vPj4xMyYyNTUsZltwKytdPW8+PjUmMjU1LGZbcCsrXT1vPDwzJjI1NTtjb25zdCB3PW5ldyBBcnJheSg4MCk7Zm9yKHA9MDtwPDgwO3ArKyl3W3BdPW5ldyBIZygwLDApO2xldCBEPW5ldyBIZygwLDApLGI9bmV3IEhnKDAsMCksaz1uZXcgSGcoMCwwKSxGPW5ldyBIZygwLDApLFM9bmV3IEhnKDAsMCksUj1uZXcgSGcoMCwwKSxHPW5ldyBIZygwLDApLE49bmV3IEhnKDAsMCk7Y29uc3QgeD1uZXcgSGcoMCwwKSxVPW5ldyBIZygwLDApLE09bmV3IEhnKDAsMCksTD1uZXcgSGcoMCwwKTtsZXQgSixIO2ZvcihwPTA7cDxkOyl7Zm9yKG09MDttPDE2OysrbSl3W21dLmhpZ2g9ZltwXTw8MjR8ZltwKzFdPDwxNnxmW3ArMl08PDh8ZltwKzNdLHdbbV0ubG93PWZbcCs0XTw8MjR8ZltwKzVdPDwxNnxmW3ArNl08PDh8ZltwKzddLHArPTg7Zm9yKG09MTY7bTw4MDsrK20pSj13W21dLHMoSix3W20tMl0sTCksSi5hZGQod1ttLTddKSxhKE0sd1ttLTE1XSxMKSxKLmFkZChNKSxKLmFkZCh3W20tMTZdKTtmb3IoRC5hc3NpZ24oYyksYi5hc3NpZ24oaCksay5hc3NpZ24oQyksRi5hc3NpZ24oQiksUy5hc3NpZ24obCksUi5hc3NpZ24oUSksRy5hc3NpZ24oRSksTi5hc3NpZ24odSksbT0wO208ODA7KyttKXguYXNzaWduKE4pLGkoTSxTLEwpLHguYWRkKE0pLEEoTSxTLFIsRyxMKSx4LmFkZChNKSx4LmFkZChuW21dKSx4LmFkZCh3W21dKSx0KFUsRCxMKSxlKE0sRCxiLGssTCksVS5hZGQoTSksSj1OLE49RyxHPVIsUj1TLEYuYWRkKHgpLFM9RixGPWssaz1iLGI9RCxKLmFzc2lnbih4KSxKLmFkZChVKSxEPUo7Yy5hZGQoRCksaC5hZGQoYiksQy5hZGQoayksQi5hZGQoRiksbC5hZGQoUyksUS5hZGQoUiksRS5hZGQoRyksdS5hZGQoTil9cmV0dXJuIEk/KEg9bmV3IFVpbnQ4QXJyYXkoNDgpLGMuY29weVRvKEgsMCksaC5jb3B5VG8oSCw4KSxDLmNvcHlUbyhILDE2KSxCLmNvcHlUbyhILDI0KSxsLmNvcHlUbyhILDMyKSxRLmNvcHlUbyhILDQwKSk6KEg9bmV3IFVpbnQ4QXJyYXkoNjQpLGMuY29weVRvKEgsMCksaC5jb3B5VG8oSCw4KSxDLmNvcHlUbyhILDE2KSxCLmNvcHlUbyhILDI0KSxsLmNvcHlUbyhILDMyKSxRLmNvcHlUbyhILDQwKSxFLmNvcHlUbyhILDQ4KSx1LmNvcHlUbyhILDU2KSksSH19KCk7Y2xhc3MgS2d7ZGVjcnlwdEJsb2NrKEEpe3JldHVybiBBfWVuY3J5cHQoQSl7cmV0dXJuIEF9fWNsYXNzIHFne2NvbnN0cnVjdG9yKCl7dGhpcy5fcz1uZXcgVWludDhBcnJheShbOTksMTI0LDExOSwxMjMsMjQyLDEwNywxMTEsMTk3LDQ4LDEsMTAzLDQzLDI1NCwyMTUsMTcxLDExOCwyMDIsMTMwLDIwMSwxMjUsMjUwLDg5LDcxLDI0MCwxNzMsMjEyLDE2MiwxNzUsMTU2LDE2NCwxMTQsMTkyLDE4MywyNTMsMTQ3LDM4LDU0LDYzLDI0NywyMDQsNTIsMTY1LDIyOSwyNDEsMTEzLDIxNiw0OSwyMSw0LDE5OSwzNSwxOTUsMjQsMTUwLDUsMTU0LDcsMTgsMTI4LDIyNiwyMzUsMzksMTc4LDExNyw5LDEzMSw0NCwyNiwyNywxMTAsOTAsMTYwLDgyLDU5LDIxNCwxNzksNDEsMjI3LDQ3LDEzMiw4MywyMDksMCwyMzcsMzIsMjUyLDE3Nyw5MSwxMDYsMjAzLDE5MCw1Nyw3NCw3Niw4OCwyMDcsMjA4LDIzOSwxNzAsMjUxLDY3LDc3LDUxLDEzMyw2OSwyNDksMiwxMjcsODAsNjAsMTU5LDE2OCw4MSwxNjMsNjQsMTQzLDE0NiwxNTcsNTYsMjQ1LDE4OCwxODIsMjE4LDMzLDE2LDI1NSwyNDMsMjEwLDIwNSwxMiwxOSwyMzYsOTUsMTUxLDY4LDIzLDE5NiwxNjcsMTI2LDYxLDEwMCw5MywyNSwxMTUsOTYsMTI5LDc5LDIyMCwzNCw0MiwxNDQsMTM2LDcwLDIzOCwxODQsMjAsMjIyLDk0LDExLDIxOSwyMjQsNTAsNTgsMTAsNzMsNiwzNiw5MiwxOTQsMjExLDE3Miw5OCwxNDUsMTQ5LDIyOCwxMjEsMjMxLDIwMCw1NSwxMDksMTQxLDIxMyw3OCwxNjksMTA4LDg2LDI0NCwyMzQsMTAxLDEyMiwxNzQsOCwxODYsMTIwLDM3LDQ2LDI4LDE2NiwxODAsMTk4LDIzMiwyMjEsMTE2LDMxLDc1LDE4OSwxMzksMTM4LDExMiw2MiwxODEsMTAyLDcyLDMsMjQ2LDE0LDk3LDUzLDg3LDE4NSwxMzQsMTkzLDI5LDE1OCwyMjUsMjQ4LDE1MiwxNywxMDUsMjE3LDE0MiwxNDgsMTU1LDMwLDEzNSwyMzMsMjA2LDg1LDQwLDIyMywxNDAsMTYxLDEzNywxMywxOTEsMjMwLDY2LDEwNCw2NSwxNTMsNDUsMTUsMTc2LDg0LDE4NywyMl0pLHRoaXMuX2ludl9zPW5ldyBVaW50OEFycmF5KFs4Miw5LDEwNiwyMTMsNDgsNTQsMTY1LDU2LDE5MSw2NCwxNjMsMTU4LDEyOSwyNDMsMjE1LDI1MSwxMjQsMjI3LDU3LDEzMCwxNTUsNDcsMjU1LDEzNSw1MiwxNDIsNjcsNjgsMTk2LDIyMiwyMzMsMjAzLDg0LDEyMywxNDgsNTAsMTY2LDE5NCwzNSw2MSwyMzgsNzYsMTQ5LDExLDY2LDI1MCwxOTUsNzgsOCw0NiwxNjEsMTAyLDQwLDIxNywzNiwxNzgsMTE4LDkxLDE2Miw3MywxMDksMTM5LDIwOSwzNywxMTQsMjQ4LDI0NiwxMDAsMTM0LDEwNCwxNTIsMjIsMjEyLDE2NCw5MiwyMDQsOTMsMTAxLDE4MiwxNDYsMTA4LDExMiw3Miw4MCwyNTMsMjM3LDE4NSwyMTgsOTQsMjEsNzAsODcsMTY3LDE0MSwxNTcsMTMyLDE0NCwyMTYsMTcxLDAsMTQwLDE4OCwyMTEsMTAsMjQ3LDIyOCw4OCw1LDE4NCwxNzksNjksNiwyMDgsNDQsMzAsMTQzLDIwMiw2MywxNSwyLDE5MywxNzUsMTg5LDMsMSwxOSwxMzgsMTA3LDU4LDE0NSwxNyw2NSw3OSwxMDMsMjIwLDIzNCwxNTEsMjQyLDIwNywyMDYsMjQwLDE4MCwyMzAsMTE1LDE1MCwxNzIsMTE2LDM0LDIzMSwxNzMsNTMsMTMzLDIyNiwyNDksNTUsMjMyLDI4LDExNywyMjMsMTEwLDcxLDI0MSwyNiwxMTMsMjksNDEsMTk3LDEzNywxMTEsMTgzLDk4LDE0LDE3MCwyNCwxOTAsMjcsMjUyLDg2LDYyLDc1LDE5OCwyMTAsMTIxLDMyLDE1NCwyMTksMTkyLDI1NCwxMjAsMjA1LDkwLDI0NCwzMSwyMjEsMTY4LDUxLDEzNiw3LDE5OSw0OSwxNzcsMTgsMTYsODksMzksMTI4LDIzNiw5NSw5Niw4MSwxMjcsMTY5LDI1LDE4MSw3NCwxMyw0NSwyMjksMTIyLDE1OSwxNDcsMjAxLDE1NiwyMzksMTYwLDIyNCw1OSw3NywxNzQsNDIsMjQ1LDE3NiwyMDAsMjM1LDE4Nyw2MCwxMzEsODMsMTUzLDk3LDIzLDQzLDQsMTI2LDE4NiwxMTksMjE0LDM4LDIyNSwxMDUsMjAsOTksODUsMzMsMTIsMTI1XSksdGhpcy5fbWl4PW5ldyBVaW50MzJBcnJheShbMCwyMzU0NzQxODcsNDcwOTQ4Mzc0LDMwMzc2NTI3Nyw5NDE4OTY3NDgsOTA4OTMzNDE1LDYwNzUzMDU1NCw3MDg3ODA4NDksMTg4Mzc5MzQ5NiwyMTE4MjE0OTk1LDE4MTc4NjY4MzAsMTY0OTYzOTIzNywxMjE1MDYxMTA4LDExODEwNDUxMTksMTQxNzU2MTY5OCwxNTE3NzY3NTI5LDM3Njc1ODY5OTIsNDAwMzA2MTE3OSw0MjM2NDI5OTkwLDQwNjkyNDY4OTMsMzYzNTczMzY2MCwzNjAyNzcwMzI3LDMyOTkyNzg0NzQsMzQwMDUyODc2OSwyNDMwMTIyMjE2LDI2NjQ1NDM3MTUsMjM2MjA5MDIzOCwyMTkzODYyNjQ1LDI4MzUxMjMzOTYsMjgwMTEwNzQwNywzMDM1NTM1MDU4LDMxMzU3NDA4ODksMzY3ODEyNDkyMywzNTc2ODcwNTEyLDMzNDEzOTQyODUsMzM3NDM2MTcwMiwzODEwNDk2MzQzLDM5Nzc2NzUzNTYsNDI3OTA4MDI1Nyw0MDQzNjEwMTg2LDI4NzY0OTQ2MjcsMjc3NjI5MjkwNCwzMDc2NjM5MDI5LDMxMTA2NTA5NDIsMjQ3MjAxMTUzNSwyNjQwMjQzMjA0LDI0MDM3Mjg2NjUsMjE2OTMwMzA1OCwxMDAxMDg5OTk1LDg5OTgzNTU4NCw2NjY0NjQ3MzMsNjk5NDMyMTUwLDU5NzI3ODQ3LDIyNjkwNjg2MCw1MzA0MDA3NTMsMjk0OTMwNjgyLDEyNzMxNjg3ODcsMTE3Mjk2NzA2NCwxNDc1NDE4NTAxLDE1MDk0MzA0MTQsMTk0MjQzNTc3NSwyMTEwNjY3NDQ0LDE4NzYyNDE4MzMsMTY0MTgxNjIyNiwyOTEwMjE5NzY2LDI3NDMwMzQxMDksMjk3NjE1MTUyMCwzMjExNjIzMTQ3LDI1MDUyMDIxMzgsMjYwNjQ1Mzk2OSwyMzAyNjkwMjUyLDIyNjk3Mjg0NTUsMzcxMTgyOTQyMiwzNTQzNTk5MjY5LDMyNDA4OTQzOTIsMzQ3NTMxMzMzMSwzODQzNjk5MDc0LDM5NDM5MDY0NDEsNDE3ODA2MjIyOCw0MTQ0MDQ3Nzc1LDEzMDY5NjczNjYsMTEzOTc4MTcwOSwxMzc0OTg4MTEyLDE2MTA0NTk3MzksMTk3NTY4MzQzNCwyMDc2OTM1MjY1LDE3NzUyNzY5MjQsMTc0MjMxNTEyNywxMDM0ODY3OTk4LDg2NjYzNzg0NSw1NjYwMjE4OTYsODAwNDQwODM1LDkyOTg3Njk4LDE5MzE5NTA2NSw0Mjk0NTYxNjQsMzk1NDQxNzExLDE5ODQ4MTI2ODUsMjAxNzc3ODU2NiwxNzg0NjYzMTk1LDE2ODM0MDcyNDgsMTMxNTU2MjE0NSwxMDgwMDk0NjM0LDEzODM4NTYzMTEsMTU1MTAzNzg4NCwxMDEwMzk4MjksMTM1MDUwMjA2LDQzNzc1NzEyMywzMzc1NTM4NjQsMTA0MjM4NTY1Nyw4MDc5NjI2MTAsNTczODA0NzgzLDc0MjAzOTAxMiwyNTMxMDY3NDUzLDI1NjQwMzMzMzQsMjMyODgyODk3MSwyMjI3NTczMDI0LDI5MzU1NjY4NjUsMjcwMDA5OTM1NCwzMDAxNzU1NjU1LDMxNjg5MzcyMjgsMzg2ODU1MjgwNSwzOTAyNTYzMTgyLDQyMDMxODExNzEsNDEwMjk3NzkxMiwzNzM2MTY0OTM3LDM1MDE3NDE4OTAsMzI2NTQ3ODc1MSwzNDMzNzEyOTgwLDExMDYwNDE1OTEsMTM0MDQ2MzEwMCwxNTc2OTc2NjA5LDE0MDg3NDkwMzQsMjA0MzIxMTQ4MywyMDA5MTk1NDcyLDE3MDg4NDgzMzMsMTgwOTA1NDE1MCw4MzI4NzcyMzEsMTA2ODM1MTM5Niw3NjY5NDU0NjUsNTk5NzYyMzU0LDE1OTQxNzk4NywxMjY0NTQ2NjQsMzYxOTI5ODc3LDQ2MzE4MDE5MCwyNzA5MjYwODcxLDI5NDM2ODIzODAsMzE3ODEwNjk2MSwzMDA5ODc5Mzg2LDI1NzI2OTcxOTUsMjUzODY4MTE4NCwyMjM2MjI4NzMzLDIzMzY0MzQ1NTAsMzUwOTg3MTEzNSwzNzQ1MzQ1MzAwLDM0NDE4NTAzNzcsMzI3NDY2NzI2NiwzOTEwMTYxOTcxLDM4NzcxOTg2NDgsNDExMDU2ODQ4NSw0MjExODE4Nzk4LDI1OTc4MDY0NzYsMjQ5NzYwNDc0MywyMjYxMDg5MTc4LDIyOTUxMDEwNzMsMjczMzg1NjE2MCwyOTAyMDg3ODUxLDMyMDI0MzcwNDYsMjk2ODAxMTQ1MywzOTM2MjkxMjg0LDM4MzUwMzY4OTUsNDEzNjQ0MDc3MCw0MTY5NDA4MjAxLDM1MzU0ODY0NTYsMzcwMjY2NTQ1OSwzNDY3MTkyMzAyLDMyMzE3MjIyMTMsMjA1MTUxODc4MCwxOTUxMzE3MDQ3LDE3MTY4OTA0MTAsMTc1MDkwMjMwNSwxMTEzODE4Mzg0LDEyODIwNTAwNzUsMTU4NDUwNDU4MiwxMzUwMDc4OTg5LDE2ODgxMDg1Miw2NzU1NjQ2MywzNzEwNDkzMzAsNDA0MDE2NzYxLDg0MTczOTU5MiwxMDA4OTE4NTk1LDc3NTU1MDgxNCw1NDAwODA3MjUsMzk2OTU2MjM2OSwzODAxMzMyMjM0LDQwMzU0ODkwNDcsNDI2OTkwNzk5NiwzNTY5MjU1MjEzLDM2Njk0NjI1NjYsMzM2Njc1NDYxOSwzMzMyNzQwMTQ0LDI2MzEwNjU0MzMsMjQ2Mzg3OTc2MiwyMTYwMTE3MDcxLDIzOTU1ODg2NzYsMjc2NzY0NTU1NywyODY4ODk3NDA2LDMxMDIwMTE3NDcsMzA2OTA0OTk2MCwyMDIwMDg0OTcsMzM3NzgzNjIsMjcwMDQwNDg3LDUwNDQ1OTQzNiw4NzU0NTEyOTMsOTc1NjU4NjQ2LDY3NTAzOTYyNyw2NDEwMjUxNTIsMjA4NDcwNDIzMywxOTE3NTE4NTYyLDE2MTU4NjEyNDcsMTg1MTMzMjg1MiwxMTQ3NTUwNjYxLDEyNDg4MDI1MTAsMTQ4NDAwNTg0MywxNDUxMDQ0MDU2LDkzMzMwMTM3MCw5NjczMTE3MjksNzMzMTU2OTcyLDYzMjk1MzcwMywyNjAzODg5NTAsMjU5NjU5MTcsMzI4NjcxODA4LDQ5NjkwNjA1OSwxMjA2NDc3ODU4LDEyMzk0NDM3NTMsMTU0MzIwODUwMCwxNDQxOTUyNTc1LDIxNDQxNjE4MDYsMTkwODY5NDI3NywxNjc1NTc3ODgwLDE4NDI3NTk0NDMsMzYxMDM2OTIyNiwzNjQ0Mzc5NTg1LDM0MDgxMTk1MTYsMzMwNzkxNjI0Nyw0MDExMTkwNTAyLDM3NzY3Njc0NjksNDA3NzM4NDQzMiw0MjQ1NjE4NjgzLDI4MDk3NzExNTQsMjg0MjczNzA0OSwzMTQ0Mzk2NDIwLDMwNDMxNDA0OTUsMjY3MzcwNTE1MCwyNDM4MjM3NjIxLDIyMDMwMzIyMzIsMjM3MDIxMzc5NV0pLHRoaXMuX21peENvbD1uZXcgVWludDhBcnJheSgyNTYpO2ZvcihsZXQgQT0wO0E8MjU2O0ErKyl0aGlzLl9taXhDb2xbQV09QTwxMjg/QTw8MTpBPDwxXjI3O3RoaXMuYnVmZmVyPW5ldyBVaW50OEFycmF5KDE2KSx0aGlzLmJ1ZmZlclBvc2l0aW9uPTB9X2V4cGFuZEtleShBKXtNKCJDYW5ub3QgY2FsbCBgX2V4cGFuZEtleWAgb24gdGhlIGJhc2UgY2xhc3MiKX1fZGVjcnlwdChBLGUpe2xldCB0LGksYTtjb25zdCBzPW5ldyBVaW50OEFycmF5KDE2KTtzLnNldChBKTtmb3IobGV0IEE9MCx0PXRoaXMuX2tleVNpemU7QTwxNjsrK0EsKyt0KXNbQV1ePWVbdF07Zm9yKGxldCBBPXRoaXMuX2N5Y2xlc09mUmVwZXRpdGlvbi0xO0E+PTE7LS1BKXt0PXNbMTNdLHNbMTNdPXNbOV0sc1s5XT1zWzVdLHNbNV09c1sxXSxzWzFdPXQsdD1zWzE0XSxpPXNbMTBdLHNbMTRdPXNbNl0sc1sxMF09c1syXSxzWzZdPXQsc1syXT1pLHQ9c1sxNV0saT1zWzExXSxhPXNbN10sc1sxNV09c1szXSxzWzExXT10LHNbN109aSxzWzNdPWE7Zm9yKGxldCBBPTA7QTwxNjsrK0Epc1tBXT10aGlzLl9pbnZfc1tzW0FdXTtmb3IobGV0IHQ9MCxpPTE2KkE7dDwxNjsrK3QsKytpKXNbdF1ePWVbaV07Zm9yKGxldCBBPTA7QTwxNjtBKz00KXtjb25zdCBlPXRoaXMuX21peFtzW0FdXSxpPXRoaXMuX21peFtzW0ErMV1dLGE9dGhpcy5fbWl4W3NbQSsyXV0sbj10aGlzLl9taXhbc1tBKzNdXTt0PWVeaT4+PjheaTw8MjReYT4+PjE2XmE8PDE2Xm4+Pj4yNF5uPDw4LHNbQV09dD4+PjI0JjI1NSxzW0ErMV09dD4+MTYmMjU1LHNbQSsyXT10Pj44JjI1NSxzW0ErM109MjU1JnR9fXQ9c1sxM10sc1sxM109c1s5XSxzWzldPXNbNV0sc1s1XT1zWzFdLHNbMV09dCx0PXNbMTRdLGk9c1sxMF0sc1sxNF09c1s2XSxzWzEwXT1zWzJdLHNbNl09dCxzWzJdPWksdD1zWzE1XSxpPXNbMTFdLGE9c1s3XSxzWzE1XT1zWzNdLHNbMTFdPXQsc1s3XT1pLHNbM109YTtmb3IobGV0IEE9MDtBPDE2OysrQSlzW0FdPXRoaXMuX2ludl9zW3NbQV1dLHNbQV1ePWVbQV07cmV0dXJuIHN9X2VuY3J5cHQoQSxlKXtjb25zdCB0PXRoaXMuX3M7bGV0IGksYSxzO2NvbnN0IG49bmV3IFVpbnQ4QXJyYXkoMTYpO24uc2V0KEEpO2ZvcihsZXQgQT0wO0E8MTY7KytBKW5bQV1ePWVbQV07Zm9yKGxldCBBPTE7QTx0aGlzLl9jeWNsZXNPZlJlcGV0aXRpb247QSsrKXtmb3IobGV0IEE9MDtBPDE2OysrQSluW0FdPXRbbltBXV07cz1uWzFdLG5bMV09bls1XSxuWzVdPW5bOV0sbls5XT1uWzEzXSxuWzEzXT1zLHM9blsyXSxhPW5bNl0sblsyXT1uWzEwXSxuWzZdPW5bMTRdLG5bMTBdPXMsblsxNF09YSxzPW5bM10sYT1uWzddLGk9blsxMV0sblszXT1uWzE1XSxuWzddPXMsblsxMV09YSxuWzE1XT1pO2ZvcihsZXQgQT0wO0E8MTY7QSs9NCl7Y29uc3QgZT1uW0ErMF0sdD1uW0ErMV0sYT1uW0ErMl0scz1uW0ErM107aT1lXnReYV5zLG5bQSswXV49aV50aGlzLl9taXhDb2xbZV50XSxuW0ErMV1ePWledGhpcy5fbWl4Q29sW3ReYV0sbltBKzJdXj1pXnRoaXMuX21peENvbFthXnNdLG5bQSszXV49aV50aGlzLl9taXhDb2xbc15lXX1mb3IobGV0IHQ9MCxpPTE2KkE7dDwxNjsrK3QsKytpKW5bdF1ePWVbaV19Zm9yKGxldCBBPTA7QTwxNjsrK0EpbltBXT10W25bQV1dO3M9blsxXSxuWzFdPW5bNV0sbls1XT1uWzldLG5bOV09blsxM10sblsxM109cyxzPW5bMl0sYT1uWzZdLG5bMl09blsxMF0sbls2XT1uWzE0XSxuWzEwXT1zLG5bMTRdPWEscz1uWzNdLGE9bls3XSxpPW5bMTFdLG5bM109blsxNV0sbls3XT1zLG5bMTFdPWEsblsxNV09aTtmb3IobGV0IEE9MCx0PXRoaXMuX2tleVNpemU7QTwxNjsrK0EsKyt0KW5bQV1ePWVbdF07cmV0dXJuIG59X2RlY3J5cHRCbG9jazIoQSxlKXtjb25zdCB0PUEubGVuZ3RoO2xldCBpPXRoaXMuYnVmZmVyLGE9dGhpcy5idWZmZXJQb3NpdGlvbjtjb25zdCBzPVtdO2xldCBuPXRoaXMuaXY7Zm9yKGxldCBlPTA7ZTx0OysrZSl7aWYoaVthXT1BW2VdLCsrYSxhPDE2KWNvbnRpbnVlO2NvbnN0IHQ9dGhpcy5fZGVjcnlwdChpLHRoaXMuX2tleSk7Zm9yKGxldCBBPTA7QTwxNjsrK0EpdFtBXV49bltBXTtuPWkscy5wdXNoKHQpLGk9bmV3IFVpbnQ4QXJyYXkoMTYpLGE9MH1pZih0aGlzLmJ1ZmZlcj1pLHRoaXMuYnVmZmVyTGVuZ3RoPWEsdGhpcy5pdj1uLDA9PT1zLmxlbmd0aClyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMCk7bGV0IHI9MTYqcy5sZW5ndGg7aWYoZSl7Y29uc3QgQT1zLmF0KC0xKTtsZXQgZT1BWzE1XTtpZihlPD0xNil7Zm9yKGxldCB0PTE1LGk9MTYtZTt0Pj1pOy0tdClpZihBW3RdIT09ZSl7ZT0wO2JyZWFrfXItPWUsc1tzLmxlbmd0aC0xXT1BLnN1YmFycmF5KDAsMTYtZSl9fWNvbnN0IGc9bmV3IFVpbnQ4QXJyYXkocik7Zm9yKGxldCBBPTAsZT0wLHQ9cy5sZW5ndGg7QTx0OysrQSxlKz0xNilnLnNldChzW0FdLGUpO3JldHVybiBnfWRlY3J5cHRCbG9jayhBLGUsdD1udWxsKXtjb25zdCBpPUEubGVuZ3RoLGE9dGhpcy5idWZmZXI7bGV0IHM9dGhpcy5idWZmZXJQb3NpdGlvbjtpZih0KXRoaXMuaXY9dDtlbHNle2ZvcihsZXQgZT0wO3M8MTYmJmU8aTsrK2UsKytzKWFbc109QVtlXTtpZihzPDE2KXJldHVybiB0aGlzLmJ1ZmZlckxlbmd0aD1zLG5ldyBVaW50OEFycmF5KDApO3RoaXMuaXY9YSxBPUEuc3ViYXJyYXkoMTYpfXJldHVybiB0aGlzLmJ1ZmZlcj1uZXcgVWludDhBcnJheSgxNiksdGhpcy5idWZmZXJMZW5ndGg9MCx0aGlzLmRlY3J5cHRCbG9jaz10aGlzLl9kZWNyeXB0QmxvY2syLHRoaXMuZGVjcnlwdEJsb2NrKEEsZSl9ZW5jcnlwdChBLGUpe2NvbnN0IHQ9QS5sZW5ndGg7bGV0IGk9dGhpcy5idWZmZXIsYT10aGlzLmJ1ZmZlclBvc2l0aW9uO2NvbnN0IHM9W107ZXx8KGU9bmV3IFVpbnQ4QXJyYXkoMTYpKTtmb3IobGV0IG49MDtuPHQ7KytuKXtpZihpW2FdPUFbbl0sKythLGE8MTYpY29udGludWU7Zm9yKGxldCBBPTA7QTwxNjsrK0EpaVtBXV49ZVtBXTtjb25zdCB0PXRoaXMuX2VuY3J5cHQoaSx0aGlzLl9rZXkpO2U9dCxzLnB1c2godCksaT1uZXcgVWludDhBcnJheSgxNiksYT0wfWlmKHRoaXMuYnVmZmVyPWksdGhpcy5idWZmZXJMZW5ndGg9YSx0aGlzLml2PWUsMD09PXMubGVuZ3RoKXJldHVybiBuZXcgVWludDhBcnJheSgwKTtjb25zdCBuPTE2KnMubGVuZ3RoLHI9bmV3IFVpbnQ4QXJyYXkobik7Zm9yKGxldCBBPTAsZT0wLHQ9cy5sZW5ndGg7QTx0OysrQSxlKz0xNilyLnNldChzW0FdLGUpO3JldHVybiByfX1jbGFzcyBUZyBleHRlbmRzIHFne2NvbnN0cnVjdG9yKEEpe3N1cGVyKCksdGhpcy5fY3ljbGVzT2ZSZXBldGl0aW9uPTEwLHRoaXMuX2tleVNpemU9MTYwLHRoaXMuX3Jjb249bmV3IFVpbnQ4QXJyYXkoWzE0MSwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NCwxMDgsMjE2LDE3MSw3NywxNTQsNDcsOTQsMTg4LDk5LDE5OCwxNTEsNTMsMTA2LDIxMiwxNzksMTI1LDI1MCwyMzksMTk3LDE0NSw1NywxMTQsMjI4LDIxMSwxODksOTcsMTk0LDE1OSwzNyw3NCwxNDgsNTEsMTAyLDIwNCwxMzEsMjksNTgsMTE2LDIzMiwyMDMsMTQxLDEsMiw0LDgsMTYsMzIsNjQsMTI4LDI3LDU0LDEwOCwyMTYsMTcxLDc3LDE1NCw0Nyw5NCwxODgsOTksMTk4LDE1MSw1MywxMDYsMjEyLDE3OSwxMjUsMjUwLDIzOSwxOTcsMTQ1LDU3LDExNCwyMjgsMjExLDE4OSw5NywxOTQsMTU5LDM3LDc0LDE0OCw1MSwxMDIsMjA0LDEzMSwyOSw1OCwxMTYsMjMyLDIwMywxNDEsMSwyLDQsOCwxNiwzMiw2NCwxMjgsMjcsNTQsMTA4LDIxNiwxNzEsNzcsMTU0LDQ3LDk0LDE4OCw5OSwxOTgsMTUxLDUzLDEwNiwyMTIsMTc5LDEyNSwyNTAsMjM5LDE5NywxNDUsNTcsMTE0LDIyOCwyMTEsMTg5LDk3LDE5NCwxNTksMzcsNzQsMTQ4LDUxLDEwMiwyMDQsMTMxLDI5LDU4LDExNiwyMzIsMjAzLDE0MSwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NCwxMDgsMjE2LDE3MSw3NywxNTQsNDcsOTQsMTg4LDk5LDE5OCwxNTEsNTMsMTA2LDIxMiwxNzksMTI1LDI1MCwyMzksMTk3LDE0NSw1NywxMTQsMjI4LDIxMSwxODksOTcsMTk0LDE1OSwzNyw3NCwxNDgsNTEsMTAyLDIwNCwxMzEsMjksNTgsMTE2LDIzMiwyMDMsMTQxLDEsMiw0LDgsMTYsMzIsNjQsMTI4LDI3LDU0LDEwOCwyMTYsMTcxLDc3LDE1NCw0Nyw5NCwxODgsOTksMTk4LDE1MSw1MywxMDYsMjEyLDE3OSwxMjUsMjUwLDIzOSwxOTcsMTQ1LDU3LDExNCwyMjgsMjExLDE4OSw5NywxOTQsMTU5LDM3LDc0LDE0OCw1MSwxMDIsMjA0LDEzMSwyOSw1OCwxMTYsMjMyLDIwMywxNDFdKSx0aGlzLl9rZXk9dGhpcy5fZXhwYW5kS2V5KEEpfV9leHBhbmRLZXkoQSl7Y29uc3QgZT10aGlzLl9zLHQ9dGhpcy5fcmNvbixpPW5ldyBVaW50OEFycmF5KDE3Nik7aS5zZXQoQSk7Zm9yKGxldCBBPTE2LGE9MTtBPDE3NjsrK2Epe2xldCBzPWlbQS0zXSxuPWlbQS0yXSxyPWlbQS0xXSxnPWlbQS00XTtzPWVbc10sbj1lW25dLHI9ZVtyXSxnPWVbZ10sc149dFthXTtmb3IobGV0IGU9MDtlPDQ7KytlKWlbQV09c149aVtBLTE2XSxBKyssaVtBXT1uXj1pW0EtMTZdLEErKyxpW0FdPXJePWlbQS0xNl0sQSsrLGlbQV09Z149aVtBLTE2XSxBKyt9cmV0dXJuIGl9fWNsYXNzIFBnIGV4dGVuZHMgcWd7Y29uc3RydWN0b3IoQSl7c3VwZXIoKSx0aGlzLl9jeWNsZXNPZlJlcGV0aXRpb249MTQsdGhpcy5fa2V5U2l6ZT0yMjQsdGhpcy5fa2V5PXRoaXMuX2V4cGFuZEtleShBKX1fZXhwYW5kS2V5KEEpe2NvbnN0IGU9dGhpcy5fcyx0PW5ldyBVaW50OEFycmF5KDI0MCk7dC5zZXQoQSk7bGV0IGksYSxzLG4scj0xO2ZvcihsZXQgQT0zMixnPTE7QTwyNDA7KytnKXtBJTMyPT0xNj8oaT1lW2ldLGE9ZVthXSxzPWVbc10sbj1lW25dKTpBJTMyPT0wJiYoaT10W0EtM10sYT10W0EtMl0scz10W0EtMV0sbj10W0EtNF0saT1lW2ldLGE9ZVthXSxzPWVbc10sbj1lW25dLGlePXIsKHI8PD0xKT49MjU2JiYocj0yNTUmKDI3XnIpKSk7Zm9yKGxldCBlPTA7ZTw0OysrZSl0W0FdPWlePXRbQS0zMl0sQSsrLHRbQV09YV49dFtBLTMyXSxBKyssdFtBXT1zXj10W0EtMzJdLEErKyx0W0FdPW5ePXRbQS0zMl0sQSsrfXJldHVybiB0fX1jbGFzcyBXZ3tjaGVja093bmVyUGFzc3dvcmQoQSxlLHQsaSl7Y29uc3QgYT1uZXcgVWludDhBcnJheShBLmxlbmd0aCs1Nik7cmV0dXJuIGEuc2V0KEEsMCksYS5zZXQoZSxBLmxlbmd0aCksYS5zZXQodCxBLmxlbmd0aCtlLmxlbmd0aCksYUEoWWcoYSwwLGEubGVuZ3RoKSxpKX1jaGVja1VzZXJQYXNzd29yZChBLGUsdCl7Y29uc3QgaT1uZXcgVWludDhBcnJheShBLmxlbmd0aCs4KTtyZXR1cm4gaS5zZXQoQSwwKSxpLnNldChlLEEubGVuZ3RoKSxhQShZZyhpLDAsaS5sZW5ndGgpLHQpfWdldE93bmVyS2V5KEEsZSx0LGkpe2NvbnN0IGE9bmV3IFVpbnQ4QXJyYXkoQS5sZW5ndGgrNTYpO2Euc2V0KEEsMCksYS5zZXQoZSxBLmxlbmd0aCksYS5zZXQodCxBLmxlbmd0aCtlLmxlbmd0aCk7Y29uc3Qgcz1ZZyhhLDAsYS5sZW5ndGgpO3JldHVybiBuZXcgUGcocykuZGVjcnlwdEJsb2NrKGksITEsbmV3IFVpbnQ4QXJyYXkoMTYpKX1nZXRVc2VyS2V5KEEsZSx0KXtjb25zdCBpPW5ldyBVaW50OEFycmF5KEEubGVuZ3RoKzgpO2kuc2V0KEEsMCksaS5zZXQoZSxBLmxlbmd0aCk7Y29uc3QgYT1ZZyhpLDAsaS5sZW5ndGgpO3JldHVybiBuZXcgUGcoYSkuZGVjcnlwdEJsb2NrKHQsITEsbmV3IFVpbnQ4QXJyYXkoMTYpKX19Y2xhc3MgT2d7X2hhc2goQSxlLHQpe2xldCBpPVlnKGUsMCxlLmxlbmd0aCkuc3ViYXJyYXkoMCwzMiksYT1bMF0scz0wO2Zvcig7czw2NHx8YS5hdCgtMSk+cy0zMjspe2NvbnN0IGU9QS5sZW5ndGgraS5sZW5ndGgrdC5sZW5ndGgsZz1uZXcgVWludDhBcnJheShlKTtsZXQgbz0wO2cuc2V0KEEsbyksbys9QS5sZW5ndGgsZy5zZXQoaSxvKSxvKz1pLmxlbmd0aCxnLnNldCh0LG8pO2NvbnN0IEk9bmV3IFVpbnQ4QXJyYXkoNjQqZSk7Zm9yKGxldCBBPTAsdD0wO0E8NjQ7QSsrLHQrPWUpSS5zZXQoZyx0KTthPW5ldyBUZyhpLnN1YmFycmF5KDAsMTYpKS5lbmNyeXB0KEksaS5zdWJhcnJheSgxNiwzMikpO2NvbnN0IGM9YS5zbGljZSgwLDE2KS5yZWR1Y2UoKChBLGUpPT5BK2UpLDApJTM7MD09PWM/aT1ZZyhhLDAsYS5sZW5ndGgpOjE9PT1jPyhuPWEsMCxyPWEubGVuZ3RoLGk9dmcobiwwLHIsITApKToyPT09YyYmKGk9dmcoYSwwLGEubGVuZ3RoKSkscysrfXZhciBuLHI7cmV0dXJuIGkuc3ViYXJyYXkoMCwzMil9Y2hlY2tPd25lclBhc3N3b3JkKEEsZSx0LGkpe2NvbnN0IGE9bmV3IFVpbnQ4QXJyYXkoQS5sZW5ndGgrNTYpO3JldHVybiBhLnNldChBLDApLGEuc2V0KGUsQS5sZW5ndGgpLGEuc2V0KHQsQS5sZW5ndGgrZS5sZW5ndGgpLGFBKHRoaXMuX2hhc2goQSxhLHQpLGkpfWNoZWNrVXNlclBhc3N3b3JkKEEsZSx0KXtjb25zdCBpPW5ldyBVaW50OEFycmF5KEEubGVuZ3RoKzgpO3JldHVybiBpLnNldChBLDApLGkuc2V0KGUsQS5sZW5ndGgpLGFBKHRoaXMuX2hhc2goQSxpLFtdKSx0KX1nZXRPd25lcktleShBLGUsdCxpKXtjb25zdCBhPW5ldyBVaW50OEFycmF5KEEubGVuZ3RoKzU2KTthLnNldChBLDApLGEuc2V0KGUsQS5sZW5ndGgpLGEuc2V0KHQsQS5sZW5ndGgrZS5sZW5ndGgpO2NvbnN0IHM9dGhpcy5faGFzaChBLGEsdCk7cmV0dXJuIG5ldyBQZyhzKS5kZWNyeXB0QmxvY2soaSwhMSxuZXcgVWludDhBcnJheSgxNikpfWdldFVzZXJLZXkoQSxlLHQpe2NvbnN0IGk9bmV3IFVpbnQ4QXJyYXkoQS5sZW5ndGgrOCk7aS5zZXQoQSwwKSxpLnNldChlLEEubGVuZ3RoKTtjb25zdCBhPXRoaXMuX2hhc2goQSxpLFtdKTtyZXR1cm4gbmV3IFBnKGEpLmRlY3J5cHRCbG9jayh0LCExLG5ldyBVaW50OEFycmF5KDE2KSl9fWNsYXNzIFpne2NvbnN0cnVjdG9yKEEsZSl7dGhpcy5TdHJpbmdDaXBoZXJDb25zdHJ1Y3Rvcj1BLHRoaXMuU3RyZWFtQ2lwaGVyQ29uc3RydWN0b3I9ZX1jcmVhdGVTdHJlYW0oQSxlKXtjb25zdCB0PW5ldyB0aGlzLlN0cmVhbUNpcGhlckNvbnN0cnVjdG9yO3JldHVybiBuZXcgTWcoQSxlLChmdW5jdGlvbihBLGUpe3JldHVybiB0LmRlY3J5cHRCbG9jayhBLGUpfSkpfWRlY3J5cHRTdHJpbmcoQSl7Y29uc3QgZT1uZXcgdGhpcy5TdHJpbmdDaXBoZXJDb25zdHJ1Y3RvcjtsZXQgdD1qKEEpO3JldHVybiB0PWUuZGVjcnlwdEJsb2NrKHQsITApLFoodCl9ZW5jcnlwdFN0cmluZyhBKXtjb25zdCBlPW5ldyB0aGlzLlN0cmluZ0NpcGhlckNvbnN0cnVjdG9yO2lmKGUgaW5zdGFuY2VvZiBxZyl7Y29uc3QgdD0xNi1BLmxlbmd0aCUxNjtBKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHQpLnJlcGVhdCh0KTtjb25zdCBpPW5ldyBVaW50OEFycmF5KDE2KTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGNyeXB0byljcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGkpO2Vsc2UgZm9yKGxldCBBPTA7QTwxNjtBKyspaVtBXT1NYXRoLmZsb29yKDI1NipNYXRoLnJhbmRvbSgpKTtsZXQgYT1qKEEpO2E9ZS5lbmNyeXB0KGEsaSk7Y29uc3Qgcz1uZXcgVWludDhBcnJheSgxNithLmxlbmd0aCk7cmV0dXJuIHMuc2V0KGkpLHMuc2V0KGEsMTYpLFoocyl9bGV0IHQ9aihBKTtyZXR1cm4gdD1lLmVuY3J5cHQodCksWih0KX19Y2xhc3Mgamd7c3RhdGljI1M9bmV3IFVpbnQ4QXJyYXkoWzQwLDE5MSw3OCw5NCw3OCwxMTcsMTM4LDY1LDEwMCwwLDc4LDg2LDI1NSwyNTAsMSw4LDQ2LDQ2LDAsMTgyLDIwOCwxMDQsNjIsMTI4LDQ3LDEyLDE2OSwyNTQsMTAwLDgzLDEwNSwxMjJdKTsjUihBLGUsdCxpLGEscyxuLHIsZyxvLEksYyl7aWYoZSl7Y29uc3QgQT1NYXRoLm1pbigxMjcsZS5sZW5ndGgpO2U9ZS5zdWJhcnJheSgwLEEpfWVsc2UgZT1bXTtjb25zdCBoPTY9PT1BP25ldyBPZzpuZXcgV2c7cmV0dXJuIGguY2hlY2tVc2VyUGFzc3dvcmQoZSxyLG4pP2guZ2V0VXNlcktleShlLGcsSSk6ZS5sZW5ndGgmJmguY2hlY2tPd25lclBhc3N3b3JkKGUsaSxzLHQpP2guZ2V0T3duZXJLZXkoZSxhLHMsbyk6bnVsbH0jRyhBLGUsdCxpLGEscyxuLHIpe2NvbnN0IGc9NDArdC5sZW5ndGgrQS5sZW5ndGgsbz1uZXcgVWludDhBcnJheShnKTtsZXQgSSxjLGg9MDtpZihlKWZvcihjPU1hdGgubWluKDMyLGUubGVuZ3RoKTtoPGM7KytoKW9baF09ZVtoXTtmb3IoST0wO2g8MzI7KW9baCsrXT1qZy4jU1tJKytdO2ZvcihJPTAsYz10Lmxlbmd0aDtJPGM7KytJKW9baCsrXT10W0ldO2ZvcihvW2grK109MjU1JmEsb1toKytdPWE+PjgmMjU1LG9baCsrXT1hPj4xNiYyNTUsb1toKytdPWE+Pj4yNCYyNTUsST0wLGM9QS5sZW5ndGg7STxjOysrSSlvW2grK109QVtJXTtzPj00JiYhciYmKG9baCsrXT0yNTUsb1toKytdPTI1NSxvW2grK109MjU1LG9baCsrXT0yNTUpO2xldCBDPUpnKG8sMCxoKTtjb25zdCBCPW4+PjM7aWYocz49Mylmb3IoST0wO0k8NTA7KytJKUM9SmcoQywwLEIpO2NvbnN0IGw9Qy5zdWJhcnJheSgwLEIpO2xldCBRLEU7aWYocz49Myl7Zm9yKGg9MDtoPDMyOysraClvW2hdPWpnLiNTW2hdO2ZvcihJPTAsYz1BLmxlbmd0aDtJPGM7KytJKW9baCsrXT1BW0ldO1E9bmV3IExnKGwpLEU9US5lbmNyeXB0QmxvY2soSmcobywwLGgpKSxjPWwubGVuZ3RoO2NvbnN0IGU9bmV3IFVpbnQ4QXJyYXkoYyk7Zm9yKEk9MTtJPD0xOTsrK0kpe2ZvcihsZXQgQT0wO0E8YzsrK0EpZVtBXT1sW0FdXkk7UT1uZXcgTGcoZSksRT1RLmVuY3J5cHRCbG9jayhFKX1mb3IoST0wLGM9RS5sZW5ndGg7STxjOysrSSlpZihpW0ldIT09RVtJXSlyZXR1cm4gbnVsbH1lbHNlIGZvcihRPW5ldyBMZyhsKSxFPVEuZW5jcnlwdEJsb2NrKGpnLiNTKSxJPTAsYz1FLmxlbmd0aDtJPGM7KytJKWlmKGlbSV0hPT1FW0ldKXJldHVybiBudWxsO3JldHVybiBsfSNOKEEsZSx0LGkpe2NvbnN0IGE9bmV3IFVpbnQ4QXJyYXkoMzIpO2xldCBzPTA7Y29uc3Qgbj1NYXRoLm1pbigzMixBLmxlbmd0aCk7Zm9yKDtzPG47KytzKWFbc109QVtzXTtsZXQgcj0wO2Zvcig7czwzMjspYVtzKytdPWpnLiNTW3IrK107bGV0IGc9SmcoYSwwLHMpO2NvbnN0IG89aT4+MztpZih0Pj0zKWZvcihyPTA7cjw1MDsrK3IpZz1KZyhnLDAsZy5sZW5ndGgpO2xldCBJLGM7aWYodD49Myl7Yz1lO2NvbnN0IEE9bmV3IFVpbnQ4QXJyYXkobyk7Zm9yKHI9MTk7cj49MDtyLS0pe2ZvcihsZXQgZT0wO2U8bzsrK2UpQVtlXT1nW2VdXnI7ST1uZXcgTGcoQSksYz1JLmVuY3J5cHRCbG9jayhjKX19ZWxzZSBJPW5ldyBMZyhnLnN1YmFycmF5KDAsbykpLGM9SS5lbmNyeXB0QmxvY2soZSk7cmV0dXJuIGN9I3goQSxlLHQsaT0hMSl7Y29uc3QgYT1uZXcgVWludDhBcnJheSh0Lmxlbmd0aCs5KSxzPXQubGVuZ3RoO2xldCBuO2ZvcihuPTA7bjxzOysrbilhW25dPXRbbl07cmV0dXJuIGFbbisrXT0yNTUmQSxhW24rK109QT4+OCYyNTUsYVtuKytdPUE+PjE2JjI1NSxhW24rK109MjU1JmUsYVtuKytdPWU+PjgmMjU1LGkmJihhW24rK109MTE1LGFbbisrXT02NSxhW24rK109MTA4LGFbbisrXT04NCksSmcoYSwwLG4pLnN1YmFycmF5KDAsTWF0aC5taW4odC5sZW5ndGgrNSwxNikpfSNVKEEsZSx0LGksYSl7aWYoIShlIGluc3RhbmNlb2YgQ0EpKXRocm93IG5ldyBXKCJJbnZhbGlkIGNyeXB0IGZpbHRlciBuYW1lLiIpO2NvbnN0IHM9dGhpcyxuPUEuZ2V0KGUubmFtZSkscj1uPy5nZXQoIkNGTSIpO2lmKCFyfHwiTm9uZSI9PT1yLm5hbWUpcmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBLZ307aWYoIlYyIj09PXIubmFtZSlyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IExnKHMuI3godCxpLGEsITEpKX07aWYoIkFFU1YyIj09PXIubmFtZSlyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFRnKHMuI3godCxpLGEsITApKX07aWYoIkFFU1YzIj09PXIubmFtZSlyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFBnKGEpfTt0aHJvdyBuZXcgVygiVW5rbm93biBjcnlwdG8gbWV0aG9kIil9Y29uc3RydWN0b3IoQSxlLHQpe2NvbnN0IGk9QS5nZXQoIkZpbHRlciIpO2lmKCFmQShpLCJTdGFuZGFyZCIpKXRocm93IG5ldyBXKCJ1bmtub3duIGVuY3J5cHRpb24gbWV0aG9kIik7dGhpcy5maWx0ZXJOYW1lPWkubmFtZSx0aGlzLmRpY3Q9QTtjb25zdCBhPUEuZ2V0KCJWIik7aWYoIU51bWJlci5pc0ludGVnZXIoYSl8fDEhPT1hJiYyIT09YSYmNCE9PWEmJjUhPT1hKXRocm93IG5ldyBXKCJ1bnN1cHBvcnRlZCBlbmNyeXB0aW9uIGFsZ29yaXRobSIpO3RoaXMuYWxnb3JpdGhtPWE7bGV0IHM9QS5nZXQoIkxlbmd0aCIpO2lmKCFzKWlmKGE8PTMpcz00MDtlbHNle2NvbnN0IGU9QS5nZXQoIkNGIiksdD1BLmdldCgiU3RtRiIpO2lmKGUgaW5zdGFuY2VvZiBRQSYmdCBpbnN0YW5jZW9mIENBKXtlLnN1cHByZXNzRW5jcnlwdGlvbj0hMDtjb25zdCBBPWUuZ2V0KHQubmFtZSk7cz1BPy5nZXQoIkxlbmd0aCIpfHwxMjgsczw0MCYmKHM8PD0zKX19aWYoIU51bWJlci5pc0ludGVnZXIocyl8fHM8NDB8fHMlOCE9MCl0aHJvdyBuZXcgVygiaW52YWxpZCBrZXkgbGVuZ3RoIik7Y29uc3Qgbj1qKEEuZ2V0KCJPIikpLHI9aihBLmdldCgiVSIpKSxnPW4uc3ViYXJyYXkoMCwzMiksbz1yLnN1YmFycmF5KDAsMzIpLEk9QS5nZXQoIlAiKSxjPUEuZ2V0KCJSIiksaD0oND09PWF8fDU9PT1hKSYmITEhPT1BLmdldCgiRW5jcnlwdE1ldGFkYXRhIik7dGhpcy5lbmNyeXB0TWV0YWRhdGE9aDtjb25zdCBDPWooZSk7bGV0IEIsbDtpZih0KXtpZig2PT09Yyl0cnl7dD1pQSh0KX1jYXRjaHtVKCJDaXBoZXJUcmFuc2Zvcm1GYWN0b3J5OiBVbmFibGUgdG8gY29udmVydCBVVEY4IGVuY29kZWQgcGFzc3dvcmQuIil9Qj1qKHQpfWlmKDUhPT1hKWw9dGhpcy4jRyhDLEIsZyxvLEksYyxzLGgpO2Vsc2V7Y29uc3QgZT1uLnN1YmFycmF5KDMyLDQwKSx0PW4uc3ViYXJyYXkoNDAsNDgpLGk9ci5zdWJhcnJheSgwLDQ4KSxhPXIuc3ViYXJyYXkoMzIsNDApLHM9ci5zdWJhcnJheSg0MCw0OCksST1qKEEuZ2V0KCJPRSIpKSxoPWooQS5nZXQoIlVFIikpLEM9aihBLmdldCgiUGVybXMiKSk7bD10aGlzLiNSKGMsQixnLGUsdCxpLG8sYSxzLEksaCxDKX1pZighbCYmIXQpdGhyb3cgbmV3IHYoIk5vIHBhc3N3b3JkIGdpdmVuIiwxKTtpZighbCYmdCl7Y29uc3QgQT10aGlzLiNOKEIsZyxjLHMpO2w9dGhpcy4jRyhDLEEsZyxvLEksYyxzLGgpfWlmKCFsKXRocm93IG5ldyB2KCJJbmNvcnJlY3QgUGFzc3dvcmQiLDIpO2lmKHRoaXMuZW5jcnlwdGlvbktleT1sLGE+PTQpe2NvbnN0IGU9QS5nZXQoIkNGIik7ZSBpbnN0YW5jZW9mIFFBJiYoZS5zdXBwcmVzc0VuY3J5cHRpb249ITApLHRoaXMuY2Y9ZSx0aGlzLnN0bWY9QS5nZXQoIlN0bUYiKXx8Q0EuZ2V0KCJJZGVudGl0eSIpLHRoaXMuc3RyZj1BLmdldCgiU3RyRiIpfHxDQS5nZXQoIklkZW50aXR5IiksdGhpcy5lZmY9QS5nZXQoIkVGRiIpfHx0aGlzLnN0bWZ9fWNyZWF0ZUNpcGhlclRyYW5zZm9ybShBLGUpe2lmKDQ9PT10aGlzLmFsZ29yaXRobXx8NT09PXRoaXMuYWxnb3JpdGhtKXJldHVybiBuZXcgWmcodGhpcy4jVSh0aGlzLmNmLHRoaXMuc3RyZixBLGUsdGhpcy5lbmNyeXB0aW9uS2V5KSx0aGlzLiNVKHRoaXMuY2YsdGhpcy5zdG1mLEEsZSx0aGlzLmVuY3J5cHRpb25LZXkpKTtjb25zdCB0PXRoaXMuI3goQSxlLHRoaXMuZW5jcnlwdGlvbktleSwhMSksaT1mdW5jdGlvbigpe3JldHVybiBuZXcgTGcodCl9O3JldHVybiBuZXcgWmcoaSxpKX19YXN5bmMgZnVuY3Rpb24gWGcoQSxlLHQse2VuY3J5cHQ6aT1udWxsfSl7Y29uc3QgYT1pPy5jcmVhdGVDaXBoZXJUcmFuc2Zvcm0oQS5udW0sQS5nZW4pO3QucHVzaChgJHtBLm51bX0gJHtBLmdlbn0gb2JqXG5gKSxlIGluc3RhbmNlb2YgUUE/YXdhaXQgVmcoZSx0LGEpOmUgaW5zdGFuY2VvZiB3QT9hd2FpdCBfZyhlLHQsYSk6KEFycmF5LmlzQXJyYXkoZSl8fEFycmF5QnVmZmVyLmlzVmlldyhlKSkmJmF3YWl0IHpnKGUsdCxhKSx0LnB1c2goIlxuZW5kb2JqXG4iKX1hc3luYyBmdW5jdGlvbiBWZyhBLGUsdCl7ZS5wdXNoKCI8PCIpO2Zvcihjb25zdCBpIG9mIEEuZ2V0S2V5cygpKWUucHVzaChgIC8ke1dBKGkpfSBgKSxhd2FpdCAkZyhBLmdldFJhdyhpKSxlLHQpO2UucHVzaCgiPj4iKX1hc3luYyBmdW5jdGlvbiBfZyhBLGUsdCl7bGV0IGk9QS5nZXRCeXRlcygpO2NvbnN0e2RpY3Q6YX09QSxbcyxuXT1hd2FpdCBQcm9taXNlLmFsbChbYS5nZXRBc3luYygiRmlsdGVyIiksYS5nZXRBc3luYygiRGVjb2RlUGFybXMiKV0pLHI9ZkEoQXJyYXkuaXNBcnJheShzKT9hd2FpdCBhLnhyZWYuZmV0Y2hJZlJlZkFzeW5jKHNbMF0pOnMsIkZsYXRlRGVjb2RlIik7aWYoaS5sZW5ndGg+PTI1Nnx8cil0cnl7Y29uc3QgQT1uZXcgQ29tcHJlc3Npb25TdHJlYW0oImRlZmxhdGUiKSxlPUEud3JpdGFibGUuZ2V0V3JpdGVyKCk7ZS53cml0ZShpKSxlLmNsb3NlKCk7Y29uc3QgdD1hd2FpdCBuZXcgUmVzcG9uc2UoQS5yZWFkYWJsZSkuYXJyYXlCdWZmZXIoKTtsZXQgZyxvO2k9bmV3IFVpbnQ4QXJyYXkodCkscz9yfHwoZz1BcnJheS5pc0FycmF5KHMpP1tDQS5nZXQoIkZsYXRlRGVjb2RlIiksLi4uc106W0NBLmdldCgiRmxhdGVEZWNvZGUiKSxzXSxuJiYobz1BcnJheS5pc0FycmF5KG4pP1tudWxsLC4uLm5dOltudWxsLG5dKSk6Zz1DQS5nZXQoIkZsYXRlRGVjb2RlIiksZyYmYS5zZXQoIkZpbHRlciIsZyksbyYmYS5zZXQoIkRlY29kZVBhcm1zIixvKX1jYXRjaChBKXt4KGB3cml0ZVN0cmVhbSAtIGNhbm5vdCBjb21wcmVzcyBkYXRhOiAiJHtBfSIuYCl9bGV0IGc9WihpKTt0JiYoZz10LmVuY3J5cHRTdHJpbmcoZykpLGEuc2V0KCJMZW5ndGgiLGcubGVuZ3RoKSxhd2FpdCBWZyhhLGUsdCksZS5wdXNoKCIgc3RyZWFtXG4iLGcsIlxuZW5kc3RyZWFtIil9YXN5bmMgZnVuY3Rpb24gemcoQSxlLHQpe2UucHVzaCgiWyIpO2xldCBpPSEwO2Zvcihjb25zdCBhIG9mIEEpaT9pPSExOmUucHVzaCgiICIpLGF3YWl0ICRnKGEsZSx0KTtlLnB1c2goIl0iKX1hc3luYyBmdW5jdGlvbiAkZyhBLGUsdCl7QSBpbnN0YW5jZW9mIENBP2UucHVzaChgLyR7V0EoQS5uYW1lKX1gKTpBIGluc3RhbmNlb2YgRUE/ZS5wdXNoKGAke0EubnVtfSAke0EuZ2VufSBSYCk6QXJyYXkuaXNBcnJheShBKXx8QXJyYXlCdWZmZXIuaXNWaWV3KEEpP2F3YWl0IHpnKEEsZSx0KToic3RyaW5nIj09dHlwZW9mIEE/KHQmJihBPXQuZW5jcnlwdFN0cmluZyhBKSksZS5wdXNoKGAoJHtPQShBKX0pYCkpOiJudW1iZXIiPT10eXBlb2YgQT9lLnB1c2goZWUoQSkpOiJib29sZWFuIj09dHlwZW9mIEE/ZS5wdXNoKEEudG9TdHJpbmcoKSk6QSBpbnN0YW5jZW9mIFFBP2F3YWl0IFZnKEEsZSx0KTpBIGluc3RhbmNlb2Ygd0E/YXdhaXQgX2coQSxlLHQpOm51bGw9PT1BP2UucHVzaCgibnVsbCIpOlUoYFVuaGFuZGxlZCB2YWx1ZSBpbiB3cml0ZXI6ICR7dHlwZW9mIEF9LCBwbGVhc2UgZmlsZSBhIGJ1Zy5gKX1mdW5jdGlvbiBBbyhBLGUsdCxpKXtmb3IobGV0IGE9ZSt0LTE7YT50LTE7YS0tKWlbYV09MjU1JkEsQT4+PTg7cmV0dXJuIHQrZX1mdW5jdGlvbiBlbyhBLGUsdCl7Zm9yKGxldCBpPTAsYT1BLmxlbmd0aDtpPGE7aSsrKXRbZStpXT0yNTUmQS5jaGFyQ29kZUF0KGkpfWZ1bmN0aW9uIHRvKEEpe2NvbnN0IGU9W107Zm9yKGNvbnN0e3JlZjp0fW9mIEEpdC5udW09PT1lLmF0KC0yKStlLmF0KC0xKT9lW2UubGVuZ3RoLTFdKz0xOmUucHVzaCh0Lm51bSwxKTtyZXR1cm4gZX1mdW5jdGlvbiBpbyhBLGUsdCl7aWYoQXJyYXkuaXNBcnJheShlLmZpbGVJZHMpJiZlLmZpbGVJZHMubGVuZ3RoPjApe2NvbnN0IGk9ZnVuY3Rpb24oQSxlKXtjb25zdCB0PU1hdGguZmxvb3IoRGF0ZS5ub3coKS8xZTMpLGk9ZS5maWxlbmFtZXx8IiIsYT1bdC50b1N0cmluZygpLGksQS50b1N0cmluZygpXTtsZXQgcz1hLnJlZHVjZSgoKEEsZSk9PkErZS5sZW5ndGgpLDApO2Zvcihjb25zdCBBIG9mIE9iamVjdC52YWx1ZXMoZS5pbmZvKSlhLnB1c2goQSkscys9QS5sZW5ndGg7Y29uc3Qgbj1uZXcgVWludDhBcnJheShzKTtsZXQgcj0wO2Zvcihjb25zdCBBIG9mIGEpZW8oQSxyLG4pLHIrPUEubGVuZ3RoO3JldHVybiBaKEpnKG4pKX0oQSxlKTt0LnNldCgiSUQiLFtlLmZpbGVJZHNbMF0saV0pfX1hc3luYyBmdW5jdGlvbiBhbyh7b3JpZ2luYWxEYXRhOkEseHJlZkluZm86ZSxuZXdSZWZzOnQseHJlZjppPW51bGwsaGFzWGZhOmE9ITEseGZhRGF0YXNldHNSZWY6cz1udWxsLGhhc1hmYURhdGFzZXRzRW50cnk6bj0hMSxuZWVkQXBwZWFyYW5jZXM6cixhY3JvRm9ybVJlZjpnPW51bGwsYWNyb0Zvcm06bz1udWxsLHhmYURhdGE6ST1udWxsLHVzZVhyZWZTdHJlYW06Yz0hMX0pe2F3YWl0IGFzeW5jIGZ1bmN0aW9uKHt4cmVmOkEsYWNyb0Zvcm06ZSxhY3JvRm9ybVJlZjp0LGhhc1hmYTppLGhhc1hmYURhdGFzZXRzRW50cnk6YSx4ZmFEYXRhc2V0c1JlZjpzLG5lZWRBcHBlYXJhbmNlczpuLG5ld1JlZnM6cn0pe2lmKCFpfHxhfHxzfHxVKCJYRkEgLSBDYW5ub3Qgc2F2ZSBpdCIpLCFuJiYoIWl8fCFzfHxhKSlyZXR1cm47Y29uc3QgZz1lLmNsb25lKCk7aWYoaSYmIWEpe2NvbnN0IEE9ZS5nZXQoIlhGQSIpLnNsaWNlKCk7QS5zcGxpY2UoMiwwLCJkYXRhc2V0cyIpLEEuc3BsaWNlKDMsMCxzKSxnLnNldCgiWEZBIixBKX1uJiZnLnNldCgiTmVlZEFwcGVhcmFuY2VzIiwhMCk7Y29uc3Qgbz1bXTthd2FpdCBYZyh0LGcsbyxBKSxyLnB1c2goe3JlZjp0LGRhdGE6by5qb2luKCIiKX0pfSh7eHJlZjppLGFjcm9Gb3JtOm8sYWNyb0Zvcm1SZWY6ZyxoYXNYZmE6YSxoYXNYZmFEYXRhc2V0c0VudHJ5Om4seGZhRGF0YXNldHNSZWY6cyxuZWVkQXBwZWFyYW5jZXM6cixuZXdSZWZzOnR9KSxhJiZmdW5jdGlvbih7eGZhRGF0YTpBLHhmYURhdGFzZXRzUmVmOmUsbmV3UmVmczp0LHhyZWY6aX0pe251bGw9PT1BJiYoQT1mdW5jdGlvbihBLGUpe2NvbnN0IHQ9bmV3IHhnKHtoYXNBdHRyaWJ1dGVzOiEwfSkucGFyc2VGcm9tU3RyaW5nKEEpO2Zvcihjb25zdHt4ZmE6QX1vZiBlKXtpZighQSljb250aW51ZTtjb25zdHtwYXRoOmUsdmFsdWU6aX09QTtpZighZSljb250aW51ZTtjb25zdCBhPVBBKGUpO2xldCBzPXQuZG9jdW1lbnRFbGVtZW50LnNlYXJjaE5vZGUoYSwwKTshcyYmYS5sZW5ndGg+MSYmKHM9dC5kb2N1bWVudEVsZW1lbnQuc2VhcmNoTm9kZShbYS5hdCgtMSldLDApKSxzP3MuY2hpbGROb2Rlcz1BcnJheS5pc0FycmF5KGkpP2kubWFwKChBPT5uZXcgTmcoInZhbHVlIixBKSkpOltuZXcgTmcoIiN0ZXh0IixpKV06VShgTm9kZSBub3QgZm91bmQgZm9yIHBhdGg6ICR7ZX1gKX1jb25zdCBpPVtdO3JldHVybiB0LmRvY3VtZW50RWxlbWVudC5kdW1wKGkpLGkuam9pbigiIil9KGkuZmV0Y2hJZlJlZihlKS5nZXRTdHJpbmcoKSx0KSk7Y29uc3QgYT1pLmVuY3J5cHQ7YSYmKEE9YS5jcmVhdGVDaXBoZXJUcmFuc2Zvcm0oZS5udW0sZS5nZW4pLmVuY3J5cHRTdHJpbmcoQSkpO2NvbnN0IHM9YCR7ZS5udW19ICR7ZS5nZW59IG9ialxuPDwgL1R5cGUgL0VtYmVkZGVkRmlsZSAvTGVuZ3RoICR7QS5sZW5ndGh9Pj5cbnN0cmVhbVxuYCtBKyJcbmVuZHN0cmVhbVxuZW5kb2JqXG4iO3QucHVzaCh7cmVmOmUsZGF0YTpzfSl9KHt4ZmFEYXRhOkkseGZhRGF0YXNldHNSZWY6cyxuZXdSZWZzOnQseHJlZjppfSk7Y29uc3QgaD1bXTtsZXQgQz1BLmxlbmd0aDtjb25zdCBCPUEuYXQoLTEpOzEwIT09QiYmMTMhPT1CJiYoaC5wdXNoKCJcbiIpLEMrPTEpO2NvbnN0IGw9ZnVuY3Rpb24oQSxlLHQpe2NvbnN0IGk9bmV3IFFBKG51bGwpO2kuc2V0KCJQcmV2IixBLnN0YXJ0WFJlZik7Y29uc3QgYT1BLm5ld1JlZjtyZXR1cm4gdD8oZS5wdXNoKHtyZWY6YSxkYXRhOiIifSksaS5zZXQoIlNpemUiLGEubnVtKzEpLGkuc2V0KCJUeXBlIixDQS5nZXQoIlhSZWYiKSkpOmkuc2V0KCJTaXplIixhLm51bSksbnVsbCE9PUEucm9vdFJlZiYmaS5zZXQoIlJvb3QiLEEucm9vdFJlZiksbnVsbCE9PUEuaW5mb1JlZiYmaS5zZXQoIkluZm8iLEEuaW5mb1JlZiksbnVsbCE9PUEuZW5jcnlwdFJlZiYmaS5zZXQoIkVuY3J5cHQiLEEuZW5jcnlwdFJlZiksaX0oZSx0LGMpO3Q9dC5zb3J0KCgoQSxlKT0+QS5yZWYubnVtLWUucmVmLm51bSkpO2Zvcihjb25zdHtkYXRhOkF9b2YgdCludWxsIT09QSYmaC5wdXNoKEEpO2F3YWl0KGM/YXN5bmMgZnVuY3Rpb24oQSxlLHQsaSxhKXtjb25zdCBzPVtdO2xldCBuPTAscj0wO2Zvcihjb25zdHtyZWY6QSxkYXRhOml9b2YgdCl7bGV0IHQ7bj1NYXRoLm1heChuLGUpLG51bGwhPT1pPyh0PU1hdGgubWluKEEuZ2VuLDY1NTM1KSxzLnB1c2goWzEsZSx0XSksZSs9aS5sZW5ndGgpOih0PU1hdGgubWluKEEuZ2VuKzEsNjU1MzUpLHMucHVzaChbMCwwLHRdKSkscj1NYXRoLm1heChyLHQpfWkuc2V0KCJJbmRleCIsdG8odCkpO2NvbnN0IGc9WzEscmUobikscmUocildO2kuc2V0KCJXIixnKSxpbyhlLEEsaSk7Y29uc3Qgbz1nLnJlZHVjZSgoKEEsZSk9PkErZSksMCksST1uZXcgVWludDhBcnJheShvKnMubGVuZ3RoKSxjPW5ldyBnZShJKTtjLmRpY3Q9aTtsZXQgaD0wO2Zvcihjb25zdFtBLGUsdF1vZiBzKWg9QW8oQSxnWzBdLGgsSSksaD1BbyhlLGdbMV0saCxJKSxoPUFvKHQsZ1syXSxoLEkpO2F3YWl0IFhnKEEubmV3UmVmLGMsYSx7fSksYS5wdXNoKCJzdGFydHhyZWZcbiIsZS50b1N0cmluZygpLCJcbiUlRU9GXG4iKX0oZSxDLHQsbCxoKTphc3luYyBmdW5jdGlvbihBLGUsdCxpLGEpe2EucHVzaCgieHJlZlxuIik7Y29uc3Qgcz10byh0KTtsZXQgbj0wO2Zvcihjb25zdHtyZWY6QSxkYXRhOml9b2YgdClBLm51bT09PXNbbl0mJihhLnB1c2goYCR7c1tuXX0gJHtzW24rMV19XG5gKSxuKz0yKSxudWxsIT09aT8oYS5wdXNoKGAke2UudG9TdHJpbmcoKS5wYWRTdGFydCgxMCwiMCIpfSAke01hdGgubWluKEEuZ2VuLDY1NTM1KS50b1N0cmluZygpLnBhZFN0YXJ0KDUsIjAiKX0gblxyXG5gKSxlKz1pLmxlbmd0aCk6YS5wdXNoKGAwMDAwMDAwMDAwICR7TWF0aC5taW4oQS5nZW4rMSw2NTUzNSkudG9TdHJpbmcoKS5wYWRTdGFydCg1LCIwIil9IGZcclxuYCk7aW8oZSxBLGkpLGEucHVzaCgidHJhaWxlclxuIiksYXdhaXQgVmcoaSxhKSxhLnB1c2goIlxuc3RhcnR4cmVmXG4iLGUudG9TdHJpbmcoKSwiXG4lJUVPRlxuIil9KGUsQyx0LGwsaCkpO2NvbnN0IFE9aC5yZWR1Y2UoKChBLGUpPT5BK2UubGVuZ3RoKSxBLmxlbmd0aCksRT1uZXcgVWludDhBcnJheShRKTtFLnNldChBKTtsZXQgdT1BLmxlbmd0aDtmb3IoY29uc3QgQSBvZiBoKWVvKEEsdSxFKSx1Kz1BLmxlbmd0aDtyZXR1cm4gRX1jbGFzcyBzb3tjb25zdHJ1Y3RvcihBLGUpe3RoaXMuZGljdD1BLHRoaXMucmVmPWUgaW5zdGFuY2VvZiBFQT9lOm51bGwsdGhpcy5yb2xlTWFwPW5ldyBNYXAsdGhpcy5zdHJ1Y3RQYXJlbnRJZHM9bnVsbH1pbml0KCl7dGhpcy5yZWFkUm9sZU1hcCgpfSNNKEEsZSx0KXtpZighKEEgaW5zdGFuY2VvZiBFQSl8fGU8MClyZXR1cm47dGhpcy5zdHJ1Y3RQYXJlbnRJZHN8fD1uZXcgZEE7bGV0IGk9dGhpcy5zdHJ1Y3RQYXJlbnRJZHMuZ2V0KEEpO2l8fChpPVtdLHRoaXMuc3RydWN0UGFyZW50SWRzLnB1dChBLGkpKSxpLnB1c2goW2UsdF0pfWFkZEFubm90YXRpb25JZFRvUGFnZShBLGUpe3RoaXMuI00oQSxlLDQpfXJlYWRSb2xlTWFwKCl7Y29uc3QgQT10aGlzLmRpY3QuZ2V0KCJSb2xlTWFwIik7QSBpbnN0YW5jZW9mIFFBJiZBLmZvckVhY2goKChBLGUpPT57ZSBpbnN0YW5jZW9mIENBJiZ0aGlzLnJvbGVNYXAuc2V0KEEsZS5uYW1lKX0pKX1zdGF0aWMgYXN5bmMgY2FuQ3JlYXRlU3RydWN0dXJlVHJlZSh7Y2F0YWxvZ1JlZjpBLHBkZk1hbmFnZXI6ZSxuZXdBbm5vdGF0aW9uc0J5UGFnZTp0fSl7aWYoIShBIGluc3RhbmNlb2YgRUEpKXJldHVybiBVKCJDYW5ub3Qgc2F2ZSB0aGUgc3RydWN0IHRyZWU6IG5vIGNhdGFsb2cgcmVmZXJlbmNlLiIpLCExO2xldCBpPTAsYT0hMDtmb3IoY29uc3RbQSxzXW9mIHQpe2NvbnN0e3JlZjp0fT1hd2FpdCBlLmdldFBhZ2UoQSk7aWYoISh0IGluc3RhbmNlb2YgRUEpKXtVKGBDYW5ub3Qgc2F2ZSB0aGUgc3RydWN0IHRyZWU6IHBhZ2UgJHtBfSBoYXMgbm8gcmVmLmApLGE9ITA7YnJlYWt9Zm9yKGNvbnN0IEEgb2YgcylBLmFjY2Vzc2liaWxpdHlEYXRhPy50eXBlJiYoQS5wYXJlbnRUcmVlSWQ9aSsrLGE9ITEpfWlmKGEpe2Zvcihjb25zdCBBIG9mIHQudmFsdWVzKCkpZm9yKGNvbnN0IGUgb2YgQSlkZWxldGUgZS5wYXJlbnRUcmVlSWQ7cmV0dXJuITF9cmV0dXJuITB9c3RhdGljIGFzeW5jIGNyZWF0ZVN0cnVjdHVyZVRyZWUoe25ld0Fubm90YXRpb25zQnlQYWdlOkEseHJlZjplLGNhdGFsb2dSZWY6dCxwZGZNYW5hZ2VyOmksbmV3UmVmczphfSl7Y29uc3Qgcz1pLmNhdGFsb2cuY2xvbmVEaWN0KCksbj1uZXcgZEE7bi5wdXQodCxzKTtjb25zdCByPWUuZ2V0TmV3VGVtcG9yYXJ5UmVmKCk7cy5zZXQoIlN0cnVjdFRyZWVSb290IixyKTtjb25zdCBnPW5ldyBRQShlKTtnLnNldCgiVHlwZSIsQ0EuZ2V0KCJTdHJ1Y3RUcmVlUm9vdCIpKTtjb25zdCBvPWUuZ2V0TmV3VGVtcG9yYXJ5UmVmKCk7Zy5zZXQoIlBhcmVudFRyZWUiLG8pO2NvbnN0IEk9W107Zy5zZXQoIksiLEkpLG4ucHV0KHIsZyk7Y29uc3QgYz1uZXcgUUEoZSksaD1bXTtjLnNldCgiTnVtcyIsaCk7Y29uc3QgQz1hd2FpdCB0aGlzLiNMKHtuZXdBbm5vdGF0aW9uc0J5UGFnZTpBLHN0cnVjdFRyZWVSb290UmVmOnIsc3RydWN0VHJlZVJvb3Q6bnVsbCxraWRzOkksbnVtczpoLHhyZWY6ZSxwZGZNYW5hZ2VyOmksbmV3UmVmczphLGNhY2hlOm59KTtnLnNldCgiUGFyZW50VHJlZU5leHRLZXkiLEMpLG4ucHV0KG8sYyk7Y29uc3QgQj1bXTtmb3IoY29uc3RbQSx0XW9mIG4uaXRlbXMoKSlCLmxlbmd0aD0wLGF3YWl0IFhnKEEsdCxCLGUpLGEucHVzaCh7cmVmOkEsZGF0YTpCLmpvaW4oIiIpfSl9YXN5bmMgY2FuVXBkYXRlU3RydWN0VHJlZSh7cGRmTWFuYWdlcjpBLHhyZWY6ZSxuZXdBbm5vdGF0aW9uc0J5UGFnZTp0fSl7aWYoIXRoaXMucmVmKXJldHVybiBVKCJDYW5ub3QgdXBkYXRlIHRoZSBzdHJ1Y3QgdHJlZTogbm8gcm9vdCByZWZlcmVuY2UuIiksITE7bGV0IGk9dGhpcy5kaWN0LmdldCgiUGFyZW50VHJlZU5leHRLZXkiKTtpZighTnVtYmVyLmlzSW50ZWdlcihpKXx8aTwwKXJldHVybiBVKCJDYW5ub3QgdXBkYXRlIHRoZSBzdHJ1Y3QgdHJlZTogaW52YWxpZCBuZXh0IGtleS4iKSwhMTtjb25zdCBhPXRoaXMuZGljdC5nZXQoIlBhcmVudFRyZWUiKTtpZighKGEgaW5zdGFuY2VvZiBRQSkpcmV0dXJuIFUoIkNhbm5vdCB1cGRhdGUgdGhlIHN0cnVjdCB0cmVlOiBQYXJlbnRUcmVlIGlzbid0IGEgZGljdC4iKSwhMTtjb25zdCBzPWEuZ2V0KCJOdW1zIik7aWYoIUFycmF5LmlzQXJyYXkocykpcmV0dXJuIFUoIkNhbm5vdCB1cGRhdGUgdGhlIHN0cnVjdCB0cmVlOiBudW1zIGlzbid0IGFuIGFycmF5LiIpLCExO2NvbnN0IG49bmV3IGJnKGEsZSk7Zm9yKGNvbnN0IGUgb2YgdC5rZXlzKCkpe2NvbnN0e3BhZ2VEaWN0OnR9PWF3YWl0IEEuZ2V0UGFnZShlKTtpZighdC5oYXMoIlN0cnVjdFBhcmVudHMiKSljb250aW51ZTtjb25zdCBpPXQuZ2V0KCJTdHJ1Y3RQYXJlbnRzIik7aWYoIU51bWJlci5pc0ludGVnZXIoaSl8fCFBcnJheS5pc0FycmF5KG4uZ2V0KGkpKSlyZXR1cm4gVShgQ2Fubm90IHNhdmUgdGhlIHN0cnVjdCB0cmVlOiBwYWdlICR7ZX0gaGFzIGEgd3JvbmcgaWQuYCksITF9bGV0IHI9ITA7Zm9yKGNvbnN0W2UsYV1vZiB0KXtjb25zdHtwYWdlRGljdDp0fT1hd2FpdCBBLmdldFBhZ2UoZSk7c28uI0ooe2VsZW1lbnRzOmEseHJlZjp0aGlzLmRpY3QueHJlZixwYWdlRGljdDp0LG51bWJlclRyZWU6bn0pO2Zvcihjb25zdCBBIG9mIGEpQS5hY2Nlc3NpYmlsaXR5RGF0YT8udHlwZSYmKEEuYWNjZXNzaWJpbGl0eURhdGEuc3RydWN0UGFyZW50Pj0wfHwoQS5wYXJlbnRUcmVlSWQ9aSsrKSxyPSExKX1pZihyKXtmb3IoY29uc3QgQSBvZiB0LnZhbHVlcygpKWZvcihjb25zdCBlIG9mIEEpZGVsZXRlIGUucGFyZW50VHJlZUlkLGRlbGV0ZSBlLnN0cnVjdFRyZWVQYXJlbnQ7cmV0dXJuITF9cmV0dXJuITB9YXN5bmMgdXBkYXRlU3RydWN0dXJlVHJlZSh7bmV3QW5ub3RhdGlvbnNCeVBhZ2U6QSxwZGZNYW5hZ2VyOmUsbmV3UmVmczp0fSl7Y29uc3QgaT10aGlzLmRpY3QueHJlZixhPXRoaXMuZGljdC5jbG9uZSgpLHM9dGhpcy5yZWYsbj1uZXcgZEE7bi5wdXQocyxhKTtsZXQgcixnPWEuZ2V0UmF3KCJQYXJlbnRUcmVlIik7ZyBpbnN0YW5jZW9mIEVBP3I9aS5mZXRjaChnKToocj1nLGc9aS5nZXROZXdUZW1wb3JhcnlSZWYoKSxhLnNldCgiUGFyZW50VHJlZSIsZykpLHI9ci5jbG9uZSgpLG4ucHV0KGcscik7bGV0IG89ci5nZXRSYXcoIk51bXMiKSxJPW51bGw7byBpbnN0YW5jZW9mIEVBJiYoST1vLG89aS5mZXRjaChJKSksbz1vLnNsaWNlKCksSXx8ci5zZXQoIk51bXMiLG8pO2NvbnN0IGM9YXdhaXQgc28uI0woe25ld0Fubm90YXRpb25zQnlQYWdlOkEsc3RydWN0VHJlZVJvb3RSZWY6cyxzdHJ1Y3RUcmVlUm9vdDp0aGlzLGtpZHM6bnVsbCxudW1zOm8seHJlZjppLHBkZk1hbmFnZXI6ZSxuZXdSZWZzOnQsY2FjaGU6bn0pO2lmKC0xPT09YylyZXR1cm47YS5zZXQoIlBhcmVudFRyZWVOZXh0S2V5IixjKSxJJiZuLnB1dChJLG8pO2NvbnN0IGg9W107Zm9yKGNvbnN0W0EsZV1vZiBuLml0ZW1zKCkpaC5sZW5ndGg9MCxhd2FpdCBYZyhBLGUsaCxpKSx0LnB1c2goe3JlZjpBLGRhdGE6aC5qb2luKCIiKX0pfXN0YXRpYyBhc3luYyNMKHtuZXdBbm5vdGF0aW9uc0J5UGFnZTpBLHN0cnVjdFRyZWVSb290UmVmOmUsc3RydWN0VHJlZVJvb3Q6dCxraWRzOmksbnVtczphLHhyZWY6cyxwZGZNYW5hZ2VyOm4sbmV3UmVmczpyLGNhY2hlOmd9KXtjb25zdCBvPUNBLmdldCgiT0JKUiIpO2xldCBJLGM9LTE7Y29uc3QgaD1bXTtmb3IoY29uc3RbQyxCXW9mIEEpe2NvbnN0IEE9YXdhaXQgbi5nZXRQYWdlKEMpLHtyZWY6bH09QSxRPWwgaW5zdGFuY2VvZiBFQTtmb3IoY29uc3R7YWNjZXNzaWJpbGl0eURhdGE6bixyZWY6RSxwYXJlbnRUcmVlSWQ6dSxzdHJ1Y3RUcmVlUGFyZW50OmR9b2YgQil7aWYoIW4/LnR5cGUpY29udGludWU7Y29uc3R7c3RydWN0UGFyZW50OkJ9PW47aWYodCYmTnVtYmVyLmlzSW50ZWdlcihCKSYmQj49MCl7bGV0IGU9KEl8fD1uZXcgTWFwKS5nZXQoQyk7dm9pZCAwPT09ZSYmKGU9bmV3IGdvKHQsQS5wYWdlRGljdCkuY29sbGVjdE9iamVjdHMobCksSS5zZXQoQyxlKSk7Y29uc3QgaT1lPy5nZXQoQik7aWYoaSl7Y29uc3QgQT1zLmZldGNoKGkpLmNsb25lKCk7c28uI0goQSxuKSxoLmxlbmd0aD0wLGF3YWl0IFhnKGksQSxoLHMpLHIucHVzaCh7cmVmOmksZGF0YTpoLmpvaW4oIiIpfSk7Y29udGludWV9fWM9TWF0aC5tYXgoYyx1KTtjb25zdCBmPXMuZ2V0TmV3VGVtcG9yYXJ5UmVmKCkscD1uZXcgUUEocyk7c28uI0gocCxuKSxhd2FpdCB0aGlzLiNZKHtzdHJ1Y3RUcmVlUGFyZW50OmQsdGFnRGljdDpwLG5ld1RhZ1JlZjpmLHN0cnVjdFRyZWVSb290UmVmOmUsZmFsbGJhY2tLaWRzOmkseHJlZjpzLGNhY2hlOmd9KTtjb25zdCBtPW5ldyBRQShzKTtwLnNldCgiSyIsbSksbS5zZXQoIlR5cGUiLG8pLFEmJm0uc2V0KCJQZyIsbCksbS5zZXQoIk9iaiIsRSksZy5wdXQoZixwKSxhLnB1c2godSxmKX19cmV0dXJuIGMrMX1zdGF0aWMjSChBLHt0eXBlOmUsdGl0bGU6dCxsYW5nOmksYWx0OmEsZXhwYW5kZWQ6cyxhY3R1YWxUZXh0Om59KXtBLnNldCgiUyIsQ0EuZ2V0KGUpKSx0JiZBLnNldCgiVCIsaWUodCkpLGkmJkEuc2V0KCJMYW5nIixpZShpKSksYSYmQS5zZXQoIkFsdCIsaWUoYSkpLHMmJkEuc2V0KCJFIixpZShzKSksbiYmQS5zZXQoIkFjdHVhbFRleHQiLGllKG4pKX1zdGF0aWMjSih7ZWxlbWVudHM6QSx4cmVmOmUscGFnZURpY3Q6dCxudW1iZXJUcmVlOml9KXtjb25zdCBhPW5ldyBNYXA7Zm9yKGNvbnN0IGUgb2YgQSlpZihlLnN0cnVjdFRyZWVQYXJlbnRJZCl7Y29uc3QgQT1wYXJzZUludChlLnN0cnVjdFRyZWVQYXJlbnRJZC5zcGxpdCgiX21jIilbMV0sMTApO2xldCB0PWEuZ2V0KEEpO3R8fCh0PVtdLGEuc2V0KEEsdCkpLHQucHVzaChlKX1jb25zdCBzPXQuZ2V0KCJTdHJ1Y3RQYXJlbnRzIik7aWYoIU51bWJlci5pc0ludGVnZXIocykpcmV0dXJuO2NvbnN0IG49aS5nZXQocykscj0oQSx0LGkpPT57Y29uc3Qgcz1hLmdldChBKTtpZihzKXtjb25zdCBBPXQuZ2V0UmF3KCJQIiksYT1lLmZldGNoSWZSZWYoQSk7aWYoQSBpbnN0YW5jZW9mIEVBJiZhIGluc3RhbmNlb2YgUUEpe2NvbnN0IEE9e3JlZjppLGRpY3Q6dH07Zm9yKGNvbnN0IGUgb2YgcyllLnN0cnVjdFRyZWVQYXJlbnQ9QX1yZXR1cm4hMH1yZXR1cm4hMX07Zm9yKGNvbnN0IEEgb2Ygbil7aWYoIShBIGluc3RhbmNlb2YgRUEpKWNvbnRpbnVlO2NvbnN0IHQ9ZS5mZXRjaChBKSxpPXQuZ2V0KCJLIik7aWYoTnVtYmVyLmlzSW50ZWdlcihpKSlyKGksdCxBKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoaSkpZm9yKGxldCBhIG9mIGkpe2lmKGE9ZS5mZXRjaElmUmVmKGEpLE51bWJlci5pc0ludGVnZXIoYSkmJnIoYSx0LEEpKWJyZWFrO2lmKCEoYSBpbnN0YW5jZW9mIFFBKSljb250aW51ZTtpZighZkEoYS5nZXQoIlR5cGUiKSwiTUNSIikpYnJlYWs7Y29uc3QgaT1hLmdldCgiTUNJRCIpO2lmKE51bWJlci5pc0ludGVnZXIoaSkmJnIoaSx0LEEpKWJyZWFrfX19c3RhdGljIGFzeW5jI1koe3N0cnVjdFRyZWVQYXJlbnQ6QSx0YWdEaWN0OmUsbmV3VGFnUmVmOnQsc3RydWN0VHJlZVJvb3RSZWY6aSxmYWxsYmFja0tpZHM6YSx4cmVmOnMsY2FjaGU6bn0pe2xldCByLGc9bnVsbDtBPygoe3JlZjpnfT1BKSxyPUEuZGljdC5nZXRSYXcoIlAiKXx8aSk6cj1pLGUuc2V0KCJQIixyKTtjb25zdCBvPXMuZmV0Y2hJZlJlZihyKTtpZighbylyZXR1cm4gdm9pZCBhLnB1c2godCk7bGV0IEk9bi5nZXQocik7SXx8KEk9by5jbG9uZSgpLG4ucHV0KHIsSSkpO2NvbnN0IGM9SS5nZXRSYXcoIksiKTtsZXQgaD1jIGluc3RhbmNlb2YgRUE/bi5nZXQoYyk6bnVsbDtpZighaCl7aD1zLmZldGNoSWZSZWYoYyksaD1BcnJheS5pc0FycmF5KGgpP2guc2xpY2UoKTpbY107Y29uc3QgQT1zLmdldE5ld1RlbXBvcmFyeVJlZigpO0kuc2V0KCJLIixBKSxuLnB1dChBLGgpfWNvbnN0IEM9aC5pbmRleE9mKGcpO2guc3BsaWNlKEM+PTA/QysxOmgubGVuZ3RoLDAsdCl9fWNsYXNzIG5ve2NvbnN0cnVjdG9yKEEsZSl7dGhpcy50cmVlPUEsdGhpcy5kaWN0PWUsdGhpcy5raWRzPVtdLHRoaXMucGFyc2VLaWRzKCl9Z2V0IHJvbGUoKXtjb25zdCBBPXRoaXMuZGljdC5nZXQoIlMiKSxlPUEgaW5zdGFuY2VvZiBDQT9BLm5hbWU6IiIse3Jvb3Q6dH09dGhpcy50cmVlO3JldHVybiB0LnJvbGVNYXAuaGFzKGUpP3Qucm9sZU1hcC5nZXQoZSk6ZX1wYXJzZUtpZHMoKXtsZXQgQT1udWxsO2NvbnN0IGU9dGhpcy5kaWN0LmdldFJhdygiUGciKTtlIGluc3RhbmNlb2YgRUEmJihBPWUudG9TdHJpbmcoKSk7Y29uc3QgdD10aGlzLmRpY3QuZ2V0KCJLIik7aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IoY29uc3QgZSBvZiB0KXtjb25zdCB0PXRoaXMucGFyc2VLaWQoQSxlKTt0JiZ0aGlzLmtpZHMucHVzaCh0KX1lbHNle2NvbnN0IGU9dGhpcy5wYXJzZUtpZChBLHQpO2UmJnRoaXMua2lkcy5wdXNoKGUpfX1wYXJzZUtpZChBLGUpe2lmKE51bWJlci5pc0ludGVnZXIoZSkpcmV0dXJuIHRoaXMudHJlZS5wYWdlRGljdC5vYmpJZCE9PUE/bnVsbDpuZXcgcm8oe3R5cGU6MSxtY2lkOmUscGFnZU9iaklkOkF9KTtsZXQgdD1udWxsO2lmKGUgaW5zdGFuY2VvZiBFQT90PXRoaXMuZGljdC54cmVmLmZldGNoKGUpOmUgaW5zdGFuY2VvZiBRQSYmKHQ9ZSksIXQpcmV0dXJuIG51bGw7Y29uc3QgaT10LmdldFJhdygiUGciKTtpIGluc3RhbmNlb2YgRUEmJihBPWkudG9TdHJpbmcoKSk7Y29uc3QgYT10LmdldCgiVHlwZSIpaW5zdGFuY2VvZiBDQT90LmdldCgiVHlwZSIpLm5hbWU6bnVsbDtpZigiTUNSIj09PWEpe2lmKHRoaXMudHJlZS5wYWdlRGljdC5vYmpJZCE9PUEpcmV0dXJuIG51bGw7Y29uc3QgZT10LmdldFJhdygiU3RtIik7cmV0dXJuIG5ldyBybyh7dHlwZToyLHJlZk9iaklkOmUgaW5zdGFuY2VvZiBFQT9lLnRvU3RyaW5nKCk6bnVsbCxwYWdlT2JqSWQ6QSxtY2lkOnQuZ2V0KCJNQ0lEIil9KX1pZigiT0JKUiI9PT1hKXtpZih0aGlzLnRyZWUucGFnZURpY3Qub2JqSWQhPT1BKXJldHVybiBudWxsO2NvbnN0IGU9dC5nZXRSYXcoIk9iaiIpO3JldHVybiBuZXcgcm8oe3R5cGU6MyxyZWZPYmpJZDplIGluc3RhbmNlb2YgRUE/ZS50b1N0cmluZygpOm51bGwscGFnZU9iaklkOkF9KX1yZXR1cm4gbmV3IHJvKHt0eXBlOjUsZGljdDp0fSl9fWNsYXNzIHJve2NvbnN0cnVjdG9yKHt0eXBlOkEsZGljdDplPW51bGwsbWNpZDp0PW51bGwscGFnZU9iaklkOmk9bnVsbCxyZWZPYmpJZDphPW51bGx9KXt0aGlzLnR5cGU9QSx0aGlzLmRpY3Q9ZSx0aGlzLm1jaWQ9dCx0aGlzLnBhZ2VPYmpJZD1pLHRoaXMucmVmT2JqSWQ9YSx0aGlzLnBhcmVudE5vZGU9bnVsbH19Y2xhc3MgZ297Y29uc3RydWN0b3IoQSxlKXt0aGlzLnJvb3Q9QSx0aGlzLnJvb3REaWN0PUE/QS5kaWN0Om51bGwsdGhpcy5wYWdlRGljdD1lLHRoaXMubm9kZXM9W119Y29sbGVjdE9iamVjdHMoQSl7aWYoISh0aGlzLnJvb3QmJnRoaXMucm9vdERpY3QmJkEgaW5zdGFuY2VvZiBFQSkpcmV0dXJuIG51bGw7Y29uc3QgZT10aGlzLnJvb3REaWN0LmdldCgiUGFyZW50VHJlZSIpO2lmKCFlKXJldHVybiBudWxsO2NvbnN0IHQ9dGhpcy5yb290LnN0cnVjdFBhcmVudElkcz8uZ2V0KEEpO2lmKCF0KXJldHVybiBudWxsO2NvbnN0IGk9bmV3IE1hcCxhPW5ldyBiZyhlLHRoaXMucm9vdERpY3QueHJlZik7Zm9yKGNvbnN0W0Fdb2YgdCl7Y29uc3QgZT1hLmdldFJhdyhBKTtlIGluc3RhbmNlb2YgRUEmJmkuc2V0KEEsZSl9cmV0dXJuIGl9cGFyc2UoQSl7aWYoISh0aGlzLnJvb3QmJnRoaXMucm9vdERpY3QmJkEgaW5zdGFuY2VvZiBFQSkpcmV0dXJuO2NvbnN0IGU9dGhpcy5yb290RGljdC5nZXQoIlBhcmVudFRyZWUiKTtpZighZSlyZXR1cm47Y29uc3QgdD10aGlzLnBhZ2VEaWN0LmdldCgiU3RydWN0UGFyZW50cyIpLGk9dGhpcy5yb290LnN0cnVjdFBhcmVudElkcz8uZ2V0KEEpO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKHQpJiYhaSlyZXR1cm47Y29uc3QgYT1uZXcgTWFwLHM9bmV3IGJnKGUsdGhpcy5yb290RGljdC54cmVmKTtpZihOdW1iZXIuaXNJbnRlZ2VyKHQpKXtjb25zdCBBPXMuZ2V0KHQpO2lmKEFycmF5LmlzQXJyYXkoQSkpZm9yKGNvbnN0IGUgb2YgQSllIGluc3RhbmNlb2YgRUEmJnRoaXMuYWRkTm9kZSh0aGlzLnJvb3REaWN0LnhyZWYuZmV0Y2goZSksYSl9aWYoaSlmb3IoY29uc3RbQSxlXW9mIGkpe2NvbnN0IHQ9cy5nZXQoQSk7aWYodCl7Y29uc3QgQT10aGlzLmFkZE5vZGUodGhpcy5yb290RGljdC54cmVmLmZldGNoSWZSZWYodCksYSk7MT09PUE/LmtpZHM/Lmxlbmd0aCYmMz09PUEua2lkc1swXS50eXBlJiYoQS5raWRzWzBdLnR5cGU9ZSl9fX1hZGROb2RlKEEsZSx0PTApe2lmKHQ+NDApcmV0dXJuIFUoIlN0cnVjdFRyZWUgTUFYX0RFUFRIIHJlYWNoZWQuIiksbnVsbDtpZighKEEgaW5zdGFuY2VvZiBRQSkpcmV0dXJuIG51bGw7aWYoZS5oYXMoQSkpcmV0dXJuIGUuZ2V0KEEpO2NvbnN0IGk9bmV3IG5vKHRoaXMsQSk7ZS5zZXQoQSxpKTtjb25zdCBhPUEuZ2V0KCJQIik7aWYoIWF8fGZBKGEuZ2V0KCJUeXBlIiksIlN0cnVjdFRyZWVSb290IikpcmV0dXJuIHRoaXMuYWRkVG9wTGV2ZWxOb2RlKEEsaSl8fGUuZGVsZXRlKEEpLGk7Y29uc3Qgcz10aGlzLmFkZE5vZGUoYSxlLHQrMSk7aWYoIXMpcmV0dXJuIGk7bGV0IG49ITE7Zm9yKGNvbnN0IGUgb2Ygcy5raWRzKTU9PT1lLnR5cGUmJmUuZGljdD09PUEmJihlLnBhcmVudE5vZGU9aSxuPSEwKTtyZXR1cm4gbnx8ZS5kZWxldGUoQSksaX1hZGRUb3BMZXZlbE5vZGUoQSxlKXtjb25zdCB0PXRoaXMucm9vdERpY3QuZ2V0KCJLIik7aWYoIXQpcmV0dXJuITE7aWYodCBpbnN0YW5jZW9mIFFBKXJldHVybiB0Lm9iaklkPT09QS5vYmpJZCYmKHRoaXMubm9kZXNbMF09ZSwhMCk7aWYoIUFycmF5LmlzQXJyYXkodCkpcmV0dXJuITA7bGV0IGk9ITE7Zm9yKGxldCBhPTA7YTx0Lmxlbmd0aDthKyspe2NvbnN0IHM9dFthXTtzPy50b1N0cmluZygpPT09QS5vYmpJZCYmKHRoaXMubm9kZXNbYV09ZSxpPSEwKX1yZXR1cm4gaX1nZXQgc2VyaWFsaXphYmxlKCl7ZnVuY3Rpb24gQShlLHQsaT0wKXtpZihpPjQwKXJldHVybiB2b2lkIFUoIlN0cnVjdFRyZWUgdG9vIGRlZXAgdG8gYmUgZnVsbHkgc2VyaWFsaXplZC4iKTtjb25zdCBhPU9iamVjdC5jcmVhdGUobnVsbCk7YS5yb2xlPWUucm9sZSxhLmNoaWxkcmVuPVtdLHQuY2hpbGRyZW4ucHVzaChhKTtsZXQgcz1lLmRpY3QuZ2V0KCJBbHQiKTsic3RyaW5nIiE9dHlwZW9mIHMmJihzPWUuZGljdC5nZXQoIkFjdHVhbFRleHQiKSksInN0cmluZyI9PXR5cGVvZiBzJiYoYS5hbHQ9ZUEocykpO2NvbnN0IG49ZS5kaWN0LmdldCgiQSIpO2lmKG4gaW5zdGFuY2VvZiBRQSl7Y29uc3QgQT1UQShuLmdldEFycmF5KCJCQm94IiksbnVsbCk7aWYoQSlhLmJib3g9QTtlbHNle2NvbnN0IEE9bi5nZXQoIldpZHRoIiksZT1uLmdldCgiSGVpZ2h0Iik7Im51bWJlciI9PXR5cGVvZiBBJiZBPjAmJiJudW1iZXIiPT10eXBlb2YgZSYmZT4wJiYoYS5iYm94PVswLDAsQSxlXSl9fWNvbnN0IHI9ZS5kaWN0LmdldCgiTGFuZyIpOyJzdHJpbmciPT10eXBlb2YgciYmKGEubGFuZz1lQShyKSk7Zm9yKGNvbnN0IHQgb2YgZS5raWRzKXtjb25zdCBlPTU9PT10LnR5cGU/dC5wYXJlbnROb2RlOm51bGw7ZT9BKGUsYSxpKzEpOjE9PT10LnR5cGV8fDI9PT10LnR5cGU/YS5jaGlsZHJlbi5wdXNoKHt0eXBlOiJjb250ZW50IixpZDpgcCR7dC5wYWdlT2JqSWR9X21jJHt0Lm1jaWR9YH0pOjM9PT10LnR5cGU/YS5jaGlsZHJlbi5wdXNoKHt0eXBlOiJvYmplY3QiLGlkOnQucmVmT2JqSWR9KTo0PT09dC50eXBlJiZhLmNoaWxkcmVuLnB1c2goe3R5cGU6ImFubm90YXRpb24iLGlkOmBwZGZqc19pbnRlcm5hbF9pZF8ke3QucmVmT2JqSWR9YH0pfX1jb25zdCBlPU9iamVjdC5jcmVhdGUobnVsbCk7ZS5jaGlsZHJlbj1bXSxlLnJvbGU9IlJvb3QiO2Zvcihjb25zdCB0IG9mIHRoaXMubm9kZXMpdCYmQSh0LGUpO3JldHVybiBlfX1mdW5jdGlvbiBvbyhBKXtpZighQXJyYXkuaXNBcnJheShBKXx8QS5sZW5ndGg8MilyZXR1cm4hMTtjb25zdFtlLHQsLi4uaV09QTtpZighKGUgaW5zdGFuY2VvZiBFQXx8TnVtYmVyLmlzSW50ZWdlcihlKSkpcmV0dXJuITE7aWYoISh0IGluc3RhbmNlb2YgQ0EpKXJldHVybiExO2NvbnN0IGE9aS5sZW5ndGg7bGV0IHM9ITA7c3dpdGNoKHQubmFtZSl7Y2FzZSJYWVoiOmlmKGE8Mnx8YT4zKXJldHVybiExO2JyZWFrO2Nhc2UiRml0IjpjYXNlIkZpdEIiOnJldHVybiAwPT09YTtjYXNlIkZpdEgiOmNhc2UiRml0QkgiOmNhc2UiRml0ViI6Y2FzZSJGaXRCViI6aWYoYT4xKXJldHVybiExO2JyZWFrO2Nhc2UiRml0UiI6aWYoNCE9PWEpcmV0dXJuITE7cz0hMTticmVhaztkZWZhdWx0OnJldHVybiExfWZvcihjb25zdCBBIG9mIGkpaWYoISgibnVtYmVyIj09dHlwZW9mIEF8fHMmJm51bGw9PT1BKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBJbyhBKXtyZXR1cm4gQSBpbnN0YW5jZW9mIFFBJiYoQT1BLmdldCgiRCIpKSxvbyhBKT9BOm51bGx9ZnVuY3Rpb24gY28oQSl7bGV0IGU9QS5nZXQoIkQiKTtpZihlKXtpZihlIGluc3RhbmNlb2YgQ0EmJihlPWUubmFtZSksInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiBlQShlKTtpZihvbyhlKSlyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9cmV0dXJuIG51bGx9Y2xhc3MgaG97Y29uc3RydWN0b3IoQSxlKXtpZih0aGlzLnBkZk1hbmFnZXI9QSx0aGlzLnhyZWY9ZSx0aGlzLl9jYXREaWN0PWUuZ2V0Q2F0YWxvZ09iaigpLCEodGhpcy5fY2F0RGljdCBpbnN0YW5jZW9mIFFBKSl0aHJvdyBuZXcgVygiQ2F0YWxvZyBvYmplY3QgaXMgbm90IGEgZGljdGlvbmFyeS4iKTt0aGlzLnRvcGxldmVsUGFnZXNEaWN0LHRoaXMuX2FjdHVhbE51bVBhZ2VzPW51bGwsdGhpcy5mb250Q2FjaGU9bmV3IGRBLHRoaXMuYnVpbHRJbkNNYXBDYWNoZT1uZXcgTWFwLHRoaXMuc3RhbmRhcmRGb250RGF0YUNhY2hlPW5ldyBNYXAsdGhpcy5nbG9iYWxJbWFnZUNhY2hlPW5ldyBvcix0aGlzLnBhZ2VLaWRzQ291bnRDYWNoZT1uZXcgZEEsdGhpcy5wYWdlSW5kZXhDYWNoZT1uZXcgZEEsdGhpcy5wYWdlRGljdENhY2hlPW5ldyBkQSx0aGlzLm5vbkJsZW5kTW9kZXNTZXQ9bmV3IHVBLHRoaXMuc3lzdGVtRm9udENhY2hlPW5ldyBNYXB9Y2xvbmVEaWN0KCl7cmV0dXJuIHRoaXMuX2NhdERpY3QuY2xvbmUoKX1nZXQgdmVyc2lvbigpe2NvbnN0IEE9dGhpcy5fY2F0RGljdC5nZXQoIlZlcnNpb24iKTtpZihBIGluc3RhbmNlb2YgQ0Epe2lmKERBLnRlc3QoQS5uYW1lKSlyZXR1cm4gSCh0aGlzLCJ2ZXJzaW9uIixBLm5hbWUpO1UoYEludmFsaWQgUERGIGNhdGFsb2cgdmVyc2lvbjogJHtBLm5hbWV9YCl9cmV0dXJuIEgodGhpcywidmVyc2lvbiIsbnVsbCl9Z2V0IGxhbmcoKXtjb25zdCBBPXRoaXMuX2NhdERpY3QuZ2V0KCJMYW5nIik7cmV0dXJuIEgodGhpcywibGFuZyIsQSYmInN0cmluZyI9PXR5cGVvZiBBP2VBKEEpOm51bGwpfWdldCBuZWVkc1JlbmRlcmluZygpe2NvbnN0IEE9dGhpcy5fY2F0RGljdC5nZXQoIk5lZWRzUmVuZGVyaW5nIik7cmV0dXJuIEgodGhpcywibmVlZHNSZW5kZXJpbmciLCJib29sZWFuIj09dHlwZW9mIEEmJkEpfWdldCBjb2xsZWN0aW9uKCl7bGV0IEE9bnVsbDt0cnl7Y29uc3QgZT10aGlzLl9jYXREaWN0LmdldCgiQ29sbGVjdGlvbiIpO2UgaW5zdGFuY2VvZiBRQSYmZS5zaXplPjAmJihBPWUpfWNhdGNoKEEpe2lmKEEgaW5zdGFuY2VvZiBrQSl0aHJvdyBBO3goIkNhbm5vdCBmZXRjaCBDb2xsZWN0aW9uIGVudHJ5OyBhc3N1bWluZyBubyBjb2xsZWN0aW9uIGlzIHByZXNlbnQuIil9cmV0dXJuIEgodGhpcywiY29sbGVjdGlvbiIsQSl9Z2V0IGFjcm9Gb3JtKCl7bGV0IEE9bnVsbDt0cnl7Y29uc3QgZT10aGlzLl9jYXREaWN0LmdldCgiQWNyb0Zvcm0iKTtlIGluc3RhbmNlb2YgUUEmJmUuc2l6ZT4wJiYoQT1lKX1jYXRjaChBKXtpZihBIGluc3RhbmNlb2Yga0EpdGhyb3cgQTt4KCJDYW5ub3QgZmV0Y2ggQWNyb0Zvcm0gZW50cnk7IGFzc3VtaW5nIG5vIGZvcm1zIGFyZSBwcmVzZW50LiIpfXJldHVybiBIKHRoaXMsImFjcm9Gb3JtIixBKX1nZXQgYWNyb0Zvcm1SZWYoKXtjb25zdCBBPXRoaXMuX2NhdERpY3QuZ2V0UmF3KCJBY3JvRm9ybSIpO3JldHVybiBIKHRoaXMsImFjcm9Gb3JtUmVmIixBIGluc3RhbmNlb2YgRUE/QTpudWxsKX1nZXQgbWV0YWRhdGEoKXtjb25zdCBBPXRoaXMuX2NhdERpY3QuZ2V0UmF3KCJNZXRhZGF0YSIpO2lmKCEoQSBpbnN0YW5jZW9mIEVBKSlyZXR1cm4gSCh0aGlzLCJtZXRhZGF0YSIsbnVsbCk7bGV0IGU9bnVsbDt0cnl7Y29uc3QgdD10aGlzLnhyZWYuZmV0Y2goQSwhdGhpcy54cmVmLmVuY3J5cHQ/LmVuY3J5cHRNZXRhZGF0YSk7aWYodCBpbnN0YW5jZW9mIHdBJiZ0LmRpY3QgaW5zdGFuY2VvZiBRQSl7Y29uc3QgQT10LmRpY3QuZ2V0KCJUeXBlIiksaT10LmRpY3QuZ2V0KCJTdWJ0eXBlIik7aWYoZkEoQSwiTWV0YWRhdGEiKSYmZkEoaSwiWE1MIikpe2NvbnN0IEE9dEEodC5nZXRTdHJpbmcoKSk7QSYmKGU9bmV3IFVnKEEpLnNlcmlhbGl6YWJsZSl9fX1jYXRjaChBKXtpZihBIGluc3RhbmNlb2Yga0EpdGhyb3cgQTt4KGBTa2lwcGluZyBpbnZhbGlkIE1ldGFkYXRhOiAiJHtBfSIuYCl9cmV0dXJuIEgodGhpcywibWV0YWRhdGEiLGUpfWdldCBtYXJrSW5mbygpe2xldCBBPW51bGw7dHJ5e0E9dGhpcy5fcmVhZE1hcmtJbmZvKCl9Y2F0Y2goQSl7aWYoQSBpbnN0YW5jZW9mIGtBKXRocm93IEE7VSgiVW5hYmxlIHRvIHJlYWQgbWFyayBpbmZvLiIpfXJldHVybiBIKHRoaXMsIm1hcmtJbmZvIixBKX1fcmVhZE1hcmtJbmZvKCl7Y29uc3QgQT10aGlzLl9jYXREaWN0LmdldCgiTWFya0luZm8iKTtpZighKEEgaW5zdGFuY2VvZiBRQSkpcmV0dXJuIG51bGw7Y29uc3QgZT17TWFya2VkOiExLFVzZXJQcm9wZXJ0aWVzOiExLFN1c3BlY3RzOiExfTtmb3IoY29uc3QgdCBpbiBlKXtjb25zdCBpPUEuZ2V0KHQpOyJib29sZWFuIj09dHlwZW9mIGkmJihlW3RdPWkpfXJldHVybiBlfWdldCBzdHJ1Y3RUcmVlUm9vdCgpe2xldCBBPW51bGw7dHJ5e0E9dGhpcy5fcmVhZFN0cnVjdFRyZWVSb290KCl9Y2F0Y2goQSl7aWYoQSBpbnN0YW5jZW9mIGtBKXRocm93IEE7VSgiVW5hYmxlIHJlYWQgdG8gc3RydWN0VHJlZVJvb3QgaW5mby4iKX1yZXR1cm4gSCh0aGlzLCJzdHJ1Y3RUcmVlUm9vdCIsQSl9X3JlYWRTdHJ1Y3RUcmVlUm9vdCgpe2NvbnN0IEE9dGhpcy5fY2F0RGljdC5nZXRSYXcoIlN0cnVjdFRyZWVSb290IiksZT10aGlzLnhyZWYuZmV0Y2hJZlJlZihBKTtpZighKGUgaW5zdGFuY2VvZiBRQSkpcmV0dXJuIG51bGw7Y29uc3QgdD1uZXcgc28oZSxBKTtyZXR1cm4gdC5pbml0KCksdH1nZXQgdG9wbGV2ZWxQYWdlc0RpY3QoKXtjb25zdCBBPXRoaXMuX2NhdERpY3QuZ2V0KCJQYWdlcyIpO2lmKCEoQSBpbnN0YW5jZW9mIFFBKSl0aHJvdyBuZXcgVygiSW52YWxpZCB0b3AtbGV2ZWwgcGFnZXMgZGljdGlvbmFyeS4iKTtyZXR1cm4gSCh0aGlzLCJ0b3BsZXZlbFBhZ2VzRGljdCIsQSl9Z2V0IGRvY3VtZW50T3V0bGluZSgpe2xldCBBPW51bGw7dHJ5e0E9dGhpcy5fcmVhZERvY3VtZW50T3V0bGluZSgpfWNhdGNoKEEpe2lmKEEgaW5zdGFuY2VvZiBrQSl0aHJvdyBBO1UoIlVuYWJsZSB0byByZWFkIGRvY3VtZW50IG91dGxpbmUuIil9cmV0dXJuIEgodGhpcywiZG9jdW1lbnRPdXRsaW5lIixBKX1fcmVhZERvY3VtZW50T3V0bGluZSgpe2xldCBBPXRoaXMuX2NhdERpY3QuZ2V0KCJPdXRsaW5lcyIpO2lmKCEoQSBpbnN0YW5jZW9mIFFBKSlyZXR1cm4gbnVsbDtpZihBPUEuZ2V0UmF3KCJGaXJzdCIpLCEoQSBpbnN0YW5jZW9mIEVBKSlyZXR1cm4gbnVsbDtjb25zdCBlPXtpdGVtczpbXX0sdD1be29iajpBLHBhcmVudDplfV0saT1uZXcgdUE7aS5wdXQoQSk7Y29uc3QgYT10aGlzLnhyZWYscz1uZXcgVWludDhDbGFtcGVkQXJyYXkoMyk7Zm9yKDt0Lmxlbmd0aD4wOyl7Y29uc3QgZT10LnNoaWZ0KCksbj1hLmZldGNoSWZSZWYoZS5vYmopO2lmKG51bGw9PT1uKWNvbnRpbnVlO24uaGFzKCJUaXRsZSIpfHxVKCJJbnZhbGlkIG91dGxpbmUgaXRlbSBlbmNvdW50ZXJlZC4iKTtjb25zdCByPXt1cmw6bnVsbCxkZXN0Om51bGwsYWN0aW9uOm51bGx9O2hvLnBhcnNlRGVzdERpY3Rpb25hcnkoe2Rlc3REaWN0Om4scmVzdWx0T2JqOnIsZG9jQmFzZVVybDp0aGlzLmJhc2VVcmwsZG9jQXR0YWNobWVudHM6dGhpcy5hdHRhY2htZW50c30pO2NvbnN0IGc9bi5nZXQoIlRpdGxlIiksbz1uLmdldCgiRiIpfHwwLEk9bi5nZXRBcnJheSgiQyIpLGM9bi5nZXQoIkNvdW50Iik7bGV0IGg9czshdkEoSSwzKXx8MD09PUlbMF0mJjA9PT1JWzFdJiYwPT09SVsyXXx8KGg9Q2Uuc2luZ2xldG9ucy5yZ2IuZ2V0UmdiKEksMCkpO2NvbnN0IEM9e2FjdGlvbjpyLmFjdGlvbixhdHRhY2htZW50OnIuYXR0YWNobWVudCxkZXN0OnIuZGVzdCx1cmw6ci51cmwsdW5zYWZlVXJsOnIudW5zYWZlVXJsLG5ld1dpbmRvdzpyLm5ld1dpbmRvdyxzZXRPQ0dTdGF0ZTpyLnNldE9DR1N0YXRlLHRpdGxlOiJzdHJpbmciPT10eXBlb2YgZz9lQShnKToiIixjb2xvcjpoLGNvdW50Ok51bWJlci5pc0ludGVnZXIoYyk/Yzp2b2lkIDAsYm9sZDohISgyJm8pLGl0YWxpYzohISgxJm8pLGl0ZW1zOltdfTtlLnBhcmVudC5pdGVtcy5wdXNoKEMpLEE9bi5nZXRSYXcoIkZpcnN0IiksQSBpbnN0YW5jZW9mIEVBJiYhaS5oYXMoQSkmJih0LnB1c2goe29iajpBLHBhcmVudDpDfSksaS5wdXQoQSkpLEE9bi5nZXRSYXcoIk5leHQiKSxBIGluc3RhbmNlb2YgRUEmJiFpLmhhcyhBKSYmKHQucHVzaCh7b2JqOkEscGFyZW50OmUucGFyZW50fSksaS5wdXQoQSkpfXJldHVybiBlLml0ZW1zLmxlbmd0aD4wP2UuaXRlbXM6bnVsbH1nZXQgcGVybWlzc2lvbnMoKXtsZXQgQT1udWxsO3RyeXtBPXRoaXMuX3JlYWRQZXJtaXNzaW9ucygpfWNhdGNoKEEpe2lmKEEgaW5zdGFuY2VvZiBrQSl0aHJvdyBBO1UoIlVuYWJsZSB0byByZWFkIHBlcm1pc3Npb25zLiIpfXJldHVybiBIKHRoaXMsInBlcm1pc3Npb25zIixBKX1fcmVhZFBlcm1pc3Npb25zKCl7Y29uc3QgQT10aGlzLnhyZWYudHJhaWxlci5nZXQoIkVuY3J5cHQiKTtpZighKEEgaW5zdGFuY2VvZiBRQSkpcmV0dXJuIG51bGw7bGV0IGU9QS5nZXQoIlAiKTtpZigibnVtYmVyIiE9dHlwZW9mIGUpcmV0dXJuIG51bGw7ZSs9MioqMzI7Y29uc3QgdD1bXTtmb3IoY29uc3QgQSBpbiBJKXtjb25zdCBpPUlbQV07ZSZpJiZ0LnB1c2goaSl9cmV0dXJuIHR9Z2V0IG9wdGlvbmFsQ29udGVudENvbmZpZygpe2xldCBBPW51bGw7dHJ5e2NvbnN0IGU9dGhpcy5fY2F0RGljdC5nZXQoIk9DUHJvcGVydGllcyIpO2lmKCFlKXJldHVybiBIKHRoaXMsIm9wdGlvbmFsQ29udGVudENvbmZpZyIsbnVsbCk7Y29uc3QgdD1lLmdldCgiRCIpO2lmKCF0KXJldHVybiBIKHRoaXMsIm9wdGlvbmFsQ29udGVudENvbmZpZyIsbnVsbCk7Y29uc3QgaT1lLmdldCgiT0NHcyIpO2lmKCFBcnJheS5pc0FycmF5KGkpKXJldHVybiBIKHRoaXMsIm9wdGlvbmFsQ29udGVudENvbmZpZyIsbnVsbCk7Y29uc3QgYT1bXSxzPW5ldyB1QTtmb3IoY29uc3QgQSBvZiBpKUEgaW5zdGFuY2VvZiBFQSYmIXMuaGFzKEEpJiYocy5wdXQoQSksYS5wdXNoKHRoaXMuI3YoQSkpKTtBPXRoaXMuI0sodCxzKSxBLmdyb3Vwcz1hfWNhdGNoKEEpe2lmKEEgaW5zdGFuY2VvZiBrQSl0aHJvdyBBO1UoYFVuYWJsZSB0byByZWFkIG9wdGlvbmFsIGNvbnRlbnQgY29uZmlnOiAke0F9YCl9cmV0dXJuIEgodGhpcywib3B0aW9uYWxDb250ZW50Q29uZmlnIixBKX0jdihBKXtjb25zdCBlPXRoaXMueHJlZi5mZXRjaChBKSx0PXtpZDpBLnRvU3RyaW5nKCksbmFtZTpudWxsLGludGVudDpudWxsLHVzYWdlOntwcmludDpudWxsLHZpZXc6bnVsbH19LGk9ZS5nZXQoIk5hbWUiKTsic3RyaW5nIj09dHlwZW9mIGkmJih0Lm5hbWU9ZUEoaSkpO2xldCBhPWUuZ2V0QXJyYXkoIkludGVudCIpO0FycmF5LmlzQXJyYXkoYSl8fChhPVthXSksYS5ldmVyeSgoQT0+QSBpbnN0YW5jZW9mIENBKSkmJih0LmludGVudD1hLm1hcCgoQT0+QS5uYW1lKSkpO2NvbnN0IHM9ZS5nZXQoIlVzYWdlIik7aWYoIShzIGluc3RhbmNlb2YgUUEpKXJldHVybiB0O2NvbnN0IG49dC51c2FnZSxyPXMuZ2V0KCJQcmludCIpO2lmKHIgaW5zdGFuY2VvZiBRQSl7Y29uc3QgQT1yLmdldCgiUHJpbnRTdGF0ZSIpO2lmKEEgaW5zdGFuY2VvZiBDQSlzd2l0Y2goQS5uYW1lKXtjYXNlIk9OIjpjYXNlIk9GRiI6bi5wcmludD17cHJpbnRTdGF0ZTpBLm5hbWV9fX1jb25zdCBnPXMuZ2V0KCJWaWV3Iik7aWYoZyBpbnN0YW5jZW9mIFFBKXtjb25zdCBBPWcuZ2V0KCJWaWV3U3RhdGUiKTtpZihBIGluc3RhbmNlb2YgQ0Epc3dpdGNoKEEubmFtZSl7Y2FzZSJPTiI6Y2FzZSJPRkYiOm4udmlldz17dmlld1N0YXRlOkEubmFtZX19fXJldHVybiB0fSNLKEEsZSl7ZnVuY3Rpb24gdChBKXtjb25zdCB0PVtdO2lmKEFycmF5LmlzQXJyYXkoQSkpZm9yKGNvbnN0IGkgb2YgQSlpIGluc3RhbmNlb2YgRUEmJmUuaGFzKGkpJiZ0LnB1c2goaS50b1N0cmluZygpKTtyZXR1cm4gdH1mdW5jdGlvbiBpKEEsdD0wKXtpZighQXJyYXkuaXNBcnJheShBKSlyZXR1cm4gbnVsbDtjb25zdCBpPVtdO2Zvcihjb25zdCBzIG9mIEEpe2lmKHMgaW5zdGFuY2VvZiBFQSYmZS5oYXMocykpe24ucHV0KHMpLGkucHVzaChzLnRvU3RyaW5nKCkpO2NvbnRpbnVlfWNvbnN0IEE9YShzLHQpO0EmJmkucHVzaChBKX1pZih0PjApcmV0dXJuIGk7Y29uc3Qgcz1bXTtmb3IoY29uc3QgQSBvZiBlKW4uaGFzKEEpfHxzLnB1c2goQS50b1N0cmluZygpKTtyZXR1cm4gcy5sZW5ndGgmJmkucHVzaCh7bmFtZTpudWxsLG9yZGVyOnN9KSxpfWZ1bmN0aW9uIGEoQSxlKXtpZigrK2U+cilyZXR1cm4gVSgicGFyc2VOZXN0ZWRPcmRlciAtIHJlYWNoZWQgTUFYX05FU1RFRF9MRVZFTFMuIiksbnVsbDtjb25zdCB0PXMuZmV0Y2hJZlJlZihBKTtpZighQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gbnVsbDtjb25zdCBhPXMuZmV0Y2hJZlJlZih0WzBdKTtpZigic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIG51bGw7Y29uc3Qgbj1pKHQuc2xpY2UoMSksZSk7cmV0dXJuIG4mJm4ubGVuZ3RoP3tuYW1lOmVBKGEpLG9yZGVyOm59Om51bGx9Y29uc3Qgcz10aGlzLnhyZWYsbj1uZXcgdUEscj0xMDtyZXR1cm57bmFtZToic3RyaW5nIj09dHlwZW9mIEEuZ2V0KCJOYW1lIik/ZUEoQS5nZXQoIk5hbWUiKSk6bnVsbCxjcmVhdG9yOiJzdHJpbmciPT10eXBlb2YgQS5nZXQoIkNyZWF0b3IiKT9lQShBLmdldCgiQ3JlYXRvciIpKTpudWxsLGJhc2VTdGF0ZTpBLmdldCgiQmFzZVN0YXRlIilpbnN0YW5jZW9mIENBP0EuZ2V0KCJCYXNlU3RhdGUiKS5uYW1lOm51bGwsb246dChBLmdldCgiT04iKSksb2ZmOnQoQS5nZXQoIk9GRiIpKSxvcmRlcjppKEEuZ2V0KCJPcmRlciIpKSxncm91cHM6bnVsbH19c2V0QWN0dWFsTnVtUGFnZXMoQT1udWxsKXt0aGlzLl9hY3R1YWxOdW1QYWdlcz1BfWdldCBoYXNBY3R1YWxOdW1QYWdlcygpe3JldHVybiBudWxsIT09dGhpcy5fYWN0dWFsTnVtUGFnZXN9Z2V0IF9wYWdlc0NvdW50KCl7Y29uc3QgQT10aGlzLnRvcGxldmVsUGFnZXNEaWN0LmdldCgiQ291bnQiKTtpZighTnVtYmVyLmlzSW50ZWdlcihBKSl0aHJvdyBuZXcgVygiUGFnZSBjb3VudCBpbiB0b3AtbGV2ZWwgcGFnZXMgZGljdGlvbmFyeSBpcyBub3QgYW4gaW50ZWdlci4iKTtyZXR1cm4gSCh0aGlzLCJfcGFnZXNDb3VudCIsQSl9Z2V0IG51bVBhZ2VzKCl7cmV0dXJuIHRoaXMuaGFzQWN0dWFsTnVtUGFnZXM/dGhpcy5fYWN0dWFsTnVtUGFnZXM6dGhpcy5fcGFnZXNDb3VudH1nZXQgZGVzdGluYXRpb25zKCl7Y29uc3QgQT10aGlzLl9yZWFkRGVzdHMoKSxlPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoQSBpbnN0YW5jZW9mIERnKWZvcihjb25zdFt0LGldb2YgQS5nZXRBbGwoKSl7Y29uc3QgQT1JbyhpKTtBJiYoZVtlQSh0KV09QSl9ZWxzZSBBIGluc3RhbmNlb2YgUUEmJkEuZm9yRWFjaCgoZnVuY3Rpb24oQSx0KXtjb25zdCBpPUlvKHQpO2kmJihlW0FdPWkpfSkpO3JldHVybiBIKHRoaXMsImRlc3RpbmF0aW9ucyIsZSl9Z2V0RGVzdGluYXRpb24oQSl7Y29uc3QgZT10aGlzLl9yZWFkRGVzdHMoKTtpZihlIGluc3RhbmNlb2YgRGcpe2NvbnN0IHQ9SW8oZS5nZXQoQSkpO2lmKHQpcmV0dXJuIHQ7Y29uc3QgaT10aGlzLmRlc3RpbmF0aW9uc1tBXTtpZihpKXJldHVybiBVKGBGb3VuZCAiJHtBfSIgYXQgYW4gaW5jb3JyZWN0IHBvc2l0aW9uIGluIHRoZSBOYW1lVHJlZS5gKSxpfWVsc2UgaWYoZSBpbnN0YW5jZW9mIFFBKXtjb25zdCB0PUlvKGUuZ2V0KEEpKTtpZih0KXJldHVybiB0fXJldHVybiBudWxsfV9yZWFkRGVzdHMoKXtjb25zdCBBPXRoaXMuX2NhdERpY3QuZ2V0KCJOYW1lcyIpO3JldHVybiBBPy5oYXMoIkRlc3RzIik/bmV3IERnKEEuZ2V0UmF3KCJEZXN0cyIpLHRoaXMueHJlZik6dGhpcy5fY2F0RGljdC5oYXMoIkRlc3RzIik/dGhpcy5fY2F0RGljdC5nZXQoIkRlc3RzIik6dm9pZCAwfWdldCBwYWdlTGFiZWxzKCl7bGV0IEE9bnVsbDt0cnl7QT10aGlzLl9yZWFkUGFnZUxhYmVscygpfWNhdGNoKEEpe2lmKEEgaW5zdGFuY2VvZiBrQSl0aHJvdyBBO1UoIlVuYWJsZSB0byByZWFkIHBhZ2UgbGFiZWxzLiIpfXJldHVybiBIKHRoaXMsInBhZ2VMYWJlbHMiLEEpfV9yZWFkUGFnZUxhYmVscygpe2NvbnN0IEE9dGhpcy5fY2F0RGljdC5nZXRSYXcoIlBhZ2VMYWJlbHMiKTtpZighQSlyZXR1cm4gbnVsbDtjb25zdCBlPW5ldyBBcnJheSh0aGlzLm51bVBhZ2VzKTtsZXQgdD1udWxsLGk9IiI7Y29uc3QgYT1uZXcgYmcoQSx0aGlzLnhyZWYpLmdldEFsbCgpO2xldCBzPSIiLG49MTtmb3IobGV0IEE9MCxyPXRoaXMubnVtUGFnZXM7QTxyO0ErKyl7Y29uc3Qgcj1hLmdldChBKTtpZih2b2lkIDAhPT1yKXtpZighKHIgaW5zdGFuY2VvZiBRQSkpdGhyb3cgbmV3IFcoIlBhZ2VMYWJlbCBpcyBub3QgYSBkaWN0aW9uYXJ5LiIpO2lmKHIuaGFzKCJUeXBlIikmJiFmQShyLmdldCgiVHlwZSIpLCJQYWdlTGFiZWwiKSl0aHJvdyBuZXcgVygiSW52YWxpZCB0eXBlIGluIFBhZ2VMYWJlbCBkaWN0aW9uYXJ5LiIpO2lmKHIuaGFzKCJTIikpe2NvbnN0IEE9ci5nZXQoIlMiKTtpZighKEEgaW5zdGFuY2VvZiBDQSkpdGhyb3cgbmV3IFcoIkludmFsaWQgc3R5bGUgaW4gUGFnZUxhYmVsIGRpY3Rpb25hcnkuIik7dD1BLm5hbWV9ZWxzZSB0PW51bGw7aWYoci5oYXMoIlAiKSl7Y29uc3QgQT1yLmdldCgiUCIpO2lmKCJzdHJpbmciIT10eXBlb2YgQSl0aHJvdyBuZXcgVygiSW52YWxpZCBwcmVmaXggaW4gUGFnZUxhYmVsIGRpY3Rpb25hcnkuIik7aT1lQShBKX1lbHNlIGk9IiI7aWYoci5oYXMoIlN0Iikpe2NvbnN0IEE9ci5nZXQoIlN0Iik7aWYoIShOdW1iZXIuaXNJbnRlZ2VyKEEpJiZBPj0xKSl0aHJvdyBuZXcgVygiSW52YWxpZCBzdGFydCBpbiBQYWdlTGFiZWwgZGljdGlvbmFyeS4iKTtuPUF9ZWxzZSBuPTF9c3dpdGNoKHQpe2Nhc2UiRCI6cz1uO2JyZWFrO2Nhc2UiUiI6Y2FzZSJyIjpzPVVBKG4sInIiPT09dCk7YnJlYWs7Y2FzZSJBIjpjYXNlImEiOmNvbnN0IEE9MjYsZT0iYSI9PT10Pzk3OjY1LGk9bi0xO3M9U3RyaW5nLmZyb21DaGFyQ29kZShlK2klQSkucmVwZWF0KE1hdGguZmxvb3IoaS9BKSsxKTticmVhaztkZWZhdWx0OmlmKHQpdGhyb3cgbmV3IFcoYEludmFsaWQgc3R5bGUgIiR7dH0iIGluIFBhZ2VMYWJlbCBkaWN0aW9uYXJ5LmApO3M9IiJ9ZVtBXT1pK3MsbisrfXJldHVybiBlfWdldCBwYWdlTGF5b3V0KCl7Y29uc3QgQT10aGlzLl9jYXREaWN0LmdldCgiUGFnZUxheW91dCIpO2xldCBlPSIiO2lmKEEgaW5zdGFuY2VvZiBDQSlzd2l0Y2goQS5uYW1lKXtjYXNlIlNpbmdsZVBhZ2UiOmNhc2UiT25lQ29sdW1uIjpjYXNlIlR3b0NvbHVtbkxlZnQiOmNhc2UiVHdvQ29sdW1uUmlnaHQiOmNhc2UiVHdvUGFnZUxlZnQiOmNhc2UiVHdvUGFnZVJpZ2h0IjplPUEubmFtZX1yZXR1cm4gSCh0aGlzLCJwYWdlTGF5b3V0IixlKX1nZXQgcGFnZU1vZGUoKXtjb25zdCBBPXRoaXMuX2NhdERpY3QuZ2V0KCJQYWdlTW9kZSIpO2xldCBlPSJVc2VOb25lIjtpZihBIGluc3RhbmNlb2YgQ0Epc3dpdGNoKEEubmFtZSl7Y2FzZSJVc2VOb25lIjpjYXNlIlVzZU91dGxpbmVzIjpjYXNlIlVzZVRodW1icyI6Y2FzZSJGdWxsU2NyZWVuIjpjYXNlIlVzZU9DIjpjYXNlIlVzZUF0dGFjaG1lbnRzIjplPUEubmFtZX1yZXR1cm4gSCh0aGlzLCJwYWdlTW9kZSIsZSl9Z2V0IHZpZXdlclByZWZlcmVuY2VzKCl7Y29uc3QgQT10aGlzLl9jYXREaWN0LmdldCgiVmlld2VyUHJlZmVyZW5jZXMiKTtpZighKEEgaW5zdGFuY2VvZiBRQSkpcmV0dXJuIEgodGhpcywidmlld2VyUHJlZmVyZW5jZXMiLG51bGwpO2xldCBlPW51bGw7Zm9yKGNvbnN0IHQgb2YgQS5nZXRLZXlzKCkpe2NvbnN0IGk9QS5nZXQodCk7bGV0IGE7c3dpdGNoKHQpe2Nhc2UiSGlkZVRvb2xiYXIiOmNhc2UiSGlkZU1lbnViYXIiOmNhc2UiSGlkZVdpbmRvd1VJIjpjYXNlIkZpdFdpbmRvdyI6Y2FzZSJDZW50ZXJXaW5kb3ciOmNhc2UiRGlzcGxheURvY1RpdGxlIjpjYXNlIlBpY2tUcmF5QnlQREZTaXplIjoiYm9vbGVhbiI9PXR5cGVvZiBpJiYoYT1pKTticmVhaztjYXNlIk5vbkZ1bGxTY3JlZW5QYWdlTW9kZSI6aWYoaSBpbnN0YW5jZW9mIENBKXN3aXRjaChpLm5hbWUpe2Nhc2UiVXNlTm9uZSI6Y2FzZSJVc2VPdXRsaW5lcyI6Y2FzZSJVc2VUaHVtYnMiOmNhc2UiVXNlT0MiOmE9aS5uYW1lO2JyZWFrO2RlZmF1bHQ6YT0iVXNlTm9uZSJ9YnJlYWs7Y2FzZSJEaXJlY3Rpb24iOmlmKGkgaW5zdGFuY2VvZiBDQSlzd2l0Y2goaS5uYW1lKXtjYXNlIkwyUiI6Y2FzZSJSMkwiOmE9aS5uYW1lO2JyZWFrO2RlZmF1bHQ6YT0iTDJSIn1icmVhaztjYXNlIlZpZXdBcmVhIjpjYXNlIlZpZXdDbGlwIjpjYXNlIlByaW50QXJlYSI6Y2FzZSJQcmludENsaXAiOmlmKGkgaW5zdGFuY2VvZiBDQSlzd2l0Y2goaS5uYW1lKXtjYXNlIk1lZGlhQm94IjpjYXNlIkNyb3BCb3giOmNhc2UiQmxlZWRCb3giOmNhc2UiVHJpbUJveCI6Y2FzZSJBcnRCb3giOmE9aS5uYW1lO2JyZWFrO2RlZmF1bHQ6YT0iQ3JvcEJveCJ9YnJlYWs7Y2FzZSJQcmludFNjYWxpbmciOmlmKGkgaW5zdGFuY2VvZiBDQSlzd2l0Y2goaS5uYW1lKXtjYXNlIk5vbmUiOmNhc2UiQXBwRGVmYXVsdCI6YT1pLm5hbWU7YnJlYWs7ZGVmYXVsdDphPSJBcHBEZWZhdWx0In1icmVhaztjYXNlIkR1cGxleCI6aWYoaSBpbnN0YW5jZW9mIENBKXN3aXRjaChpLm5hbWUpe2Nhc2UiU2ltcGxleCI6Y2FzZSJEdXBsZXhGbGlwU2hvcnRFZGdlIjpjYXNlIkR1cGxleEZsaXBMb25nRWRnZSI6YT1pLm5hbWU7YnJlYWs7ZGVmYXVsdDphPSJOb25lIn1icmVhaztjYXNlIlByaW50UGFnZVJhbmdlIjpBcnJheS5pc0FycmF5KGkpJiZpLmxlbmd0aCUyPT0wJiZpLmV2ZXJ5KCgoQSxlLHQpPT5OdW1iZXIuaXNJbnRlZ2VyKEEpJiZBPjAmJigwPT09ZXx8QT49dFtlLTFdKSYmQTw9dGhpcy5udW1QYWdlcykpJiYoYT1pKTticmVhaztjYXNlIk51bUNvcGllcyI6TnVtYmVyLmlzSW50ZWdlcihpKSYmaT4wJiYoYT1pKTticmVhaztkZWZhdWx0OlUoYElnbm9yaW5nIG5vbi1zdGFuZGFyZCBrZXkgaW4gVmlld2VyUHJlZmVyZW5jZXM6ICR7dH0uYCk7Y29udGludWV9dm9pZCAwIT09YT8oZXx8KGU9T2JqZWN0LmNyZWF0ZShudWxsKSksZVt0XT1hKTpVKGBCYWQgdmFsdWUsIGZvciBrZXkgIiR7dH0iLCBpbiBWaWV3ZXJQcmVmZXJlbmNlczogJHtpfS5gKX1yZXR1cm4gSCh0aGlzLCJ2aWV3ZXJQcmVmZXJlbmNlcyIsZSl9Z2V0IG9wZW5BY3Rpb24oKXtjb25zdCBBPXRoaXMuX2NhdERpY3QuZ2V0KCJPcGVuQWN0aW9uIiksZT1PYmplY3QuY3JlYXRlKG51bGwpO2lmKEEgaW5zdGFuY2VvZiBRQSl7Y29uc3QgdD1uZXcgUUEodGhpcy54cmVmKTt0LnNldCgiQSIsQSk7Y29uc3QgaT17dXJsOm51bGwsZGVzdDpudWxsLGFjdGlvbjpudWxsfTtoby5wYXJzZURlc3REaWN0aW9uYXJ5KHtkZXN0RGljdDp0LHJlc3VsdE9iajppfSksQXJyYXkuaXNBcnJheShpLmRlc3QpP2UuZGVzdD1pLmRlc3Q6aS5hY3Rpb24mJihlLmFjdGlvbj1pLmFjdGlvbil9ZWxzZSBBcnJheS5pc0FycmF5KEEpJiYoZS5kZXN0PUEpO3JldHVybiBIKHRoaXMsIm9wZW5BY3Rpb24iLFYoZSk+MD9lOm51bGwpfWdldCBhdHRhY2htZW50cygpe2NvbnN0IEE9dGhpcy5fY2F0RGljdC5nZXQoIk5hbWVzIik7bGV0IGU9bnVsbDtpZihBIGluc3RhbmNlb2YgUUEmJkEuaGFzKCJFbWJlZGRlZEZpbGVzIikpe2NvbnN0IHQ9bmV3IERnKEEuZ2V0UmF3KCJFbWJlZGRlZEZpbGVzIiksdGhpcy54cmVmKTtmb3IoY29uc3RbQSxpXW9mIHQuZ2V0QWxsKCkpe2NvbnN0IHQ9bmV3IFNnKGksdGhpcy54cmVmKTtlfHwoZT1PYmplY3QuY3JlYXRlKG51bGwpKSxlW2VBKEEpXT10LnNlcmlhbGl6YWJsZX19cmV0dXJuIEgodGhpcywiYXR0YWNobWVudHMiLGUpfWdldCB4ZmFJbWFnZXMoKXtjb25zdCBBPXRoaXMuX2NhdERpY3QuZ2V0KCJOYW1lcyIpO2xldCBlPW51bGw7aWYoQSBpbnN0YW5jZW9mIFFBJiZBLmhhcygiWEZBSW1hZ2VzIikpe2NvbnN0IHQ9bmV3IERnKEEuZ2V0UmF3KCJYRkFJbWFnZXMiKSx0aGlzLnhyZWYpO2Zvcihjb25zdFtBLGldb2YgdC5nZXRBbGwoKSllfHwoZT1uZXcgUUEodGhpcy54cmVmKSksZS5zZXQoZUEoQSksaSl9cmV0dXJuIEgodGhpcywieGZhSW1hZ2VzIixlKX1fY29sbGVjdEphdmFTY3JpcHQoKXtjb25zdCBBPXRoaXMuX2NhdERpY3QuZ2V0KCJOYW1lcyIpO2xldCBlPW51bGw7ZnVuY3Rpb24gdChBLHQpe2lmKCEodCBpbnN0YW5jZW9mIFFBKSlyZXR1cm47aWYoIWZBKHQuZ2V0KCJTIiksIkphdmFTY3JpcHQiKSlyZXR1cm47bGV0IGk9dC5nZXQoIkpTIik7aWYoaSBpbnN0YW5jZW9mIHdBKWk9aS5nZXRTdHJpbmcoKTtlbHNlIGlmKCJzdHJpbmciIT10eXBlb2YgaSlyZXR1cm47aT1lQShpKS5yZXBsYWNlQWxsKCJcMCIsIiIpLGkmJihlfHw9bmV3IE1hcCkuc2V0KEEsaSl9aWYoQSBpbnN0YW5jZW9mIFFBJiZBLmhhcygiSmF2YVNjcmlwdCIpKXtjb25zdCBlPW5ldyBEZyhBLmdldFJhdygiSmF2YVNjcmlwdCIpLHRoaXMueHJlZik7Zm9yKGNvbnN0W0EsaV1vZiBlLmdldEFsbCgpKXQoZUEoQSksaSl9Y29uc3QgaT10aGlzLl9jYXREaWN0LmdldCgiT3BlbkFjdGlvbiIpO3JldHVybiBpJiZ0KCJPcGVuQWN0aW9uIixpKSxlfWdldCBqc0FjdGlvbnMoKXtjb25zdCBBPXRoaXMuX2NvbGxlY3RKYXZhU2NyaXB0KCk7bGV0IGU9akEodGhpcy54cmVmLHRoaXMuX2NhdERpY3QsUSk7aWYoQSl7ZXx8PU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGNvbnN0W3QsaV1vZiBBKXQgaW4gZT9lW3RdLnB1c2goaSk6ZVt0XT1baV19cmV0dXJuIEgodGhpcywianNBY3Rpb25zIixlKX1hc3luYyBmb250RmFsbGJhY2soQSxlKXtjb25zdCB0PWF3YWl0IFByb21pc2UuYWxsKHRoaXMuZm9udENhY2hlKTtmb3IoY29uc3QgaSBvZiB0KWlmKGkubG9hZGVkTmFtZT09PUEpcmV0dXJuIHZvaWQgaS5mYWxsYmFjayhlKX1hc3luYyBjbGVhbnVwKEE9ITEpe2tnKCksdGhpcy5nbG9iYWxJbWFnZUNhY2hlLmNsZWFyKEEpLHRoaXMucGFnZUtpZHNDb3VudENhY2hlLmNsZWFyKCksdGhpcy5wYWdlSW5kZXhDYWNoZS5jbGVhcigpLHRoaXMucGFnZURpY3RDYWNoZS5jbGVhcigpLHRoaXMubm9uQmxlbmRNb2Rlc1NldC5jbGVhcigpO2NvbnN0IGU9YXdhaXQgUHJvbWlzZS5hbGwodGhpcy5mb250Q2FjaGUpO2Zvcihjb25zdHtkaWN0OkF9b2YgZSlkZWxldGUgQS5jYWNoZUtleTt0aGlzLmZvbnRDYWNoZS5jbGVhcigpLHRoaXMuYnVpbHRJbkNNYXBDYWNoZS5jbGVhcigpLHRoaXMuc3RhbmRhcmRGb250RGF0YUNhY2hlLmNsZWFyKCksdGhpcy5zeXN0ZW1Gb250Q2FjaGUuY2xlYXIoKX1hc3luYyBnZXRQYWdlRGljdChBKXtjb25zdCBlPVt0aGlzLnRvcGxldmVsUGFnZXNEaWN0XSx0PW5ldyB1QSxpPXRoaXMuX2NhdERpY3QuZ2V0UmF3KCJQYWdlcyIpO2kgaW5zdGFuY2VvZiBFQSYmdC5wdXQoaSk7Y29uc3QgYT10aGlzLnhyZWYscz10aGlzLnBhZ2VLaWRzQ291bnRDYWNoZSxuPXRoaXMucGFnZUluZGV4Q2FjaGUscj10aGlzLnBhZ2VEaWN0Q2FjaGU7bGV0IGc9MDtmb3IoO2UubGVuZ3RoOyl7Y29uc3QgaT1lLnBvcCgpO2lmKGkgaW5zdGFuY2VvZiBFQSl7Y29uc3Qgbz1zLmdldChpKTtpZihvPj0wJiZnK288PUEpe2crPW87Y29udGludWV9aWYodC5oYXMoaSkpdGhyb3cgbmV3IFcoIlBhZ2VzIHRyZWUgY29udGFpbnMgY2lyY3VsYXIgcmVmZXJlbmNlLiIpO3QucHV0KGkpO2NvbnN0IEk9YXdhaXQoci5nZXQoaSl8fGEuZmV0Y2hBc3luYyhpKSk7aWYoSSBpbnN0YW5jZW9mIFFBKXtsZXQgZT1JLmdldFJhdygiVHlwZSIpO2lmKGUgaW5zdGFuY2VvZiBFQSYmKGU9YXdhaXQgYS5mZXRjaEFzeW5jKGUpKSxmQShlLCJQYWdlIil8fCFJLmhhcygiS2lkcyIpKXtpZihzLmhhcyhpKXx8cy5wdXQoaSwxKSxuLmhhcyhpKXx8bi5wdXQoaSxnKSxnPT09QSlyZXR1cm5bSSxpXTtnKys7Y29udGludWV9fWUucHVzaChJKTtjb250aW51ZX1pZighKGkgaW5zdGFuY2VvZiBRQSkpdGhyb3cgbmV3IFcoIlBhZ2UgZGljdGlvbmFyeSBraWQgcmVmZXJlbmNlIHBvaW50cyB0byB3cm9uZyB0eXBlIG9mIG9iamVjdC4iKTtjb25zdHtvYmpJZDpvfT1pO2xldCBJPWkuZ2V0UmF3KCJDb3VudCIpO2lmKEkgaW5zdGFuY2VvZiBFQSYmKEk9YXdhaXQgYS5mZXRjaEFzeW5jKEkpKSxOdW1iZXIuaXNJbnRlZ2VyKEkpJiZJPj0wJiYobyYmIXMuaGFzKG8pJiZzLnB1dChvLEkpLGcrSTw9QSkpe2crPUk7Y29udGludWV9bGV0IGM9aS5nZXRSYXcoIktpZHMiKTtpZihjIGluc3RhbmNlb2YgRUEmJihjPWF3YWl0IGEuZmV0Y2hBc3luYyhjKSksIUFycmF5LmlzQXJyYXkoYykpe2xldCBlPWkuZ2V0UmF3KCJUeXBlIik7aWYoZSBpbnN0YW5jZW9mIEVBJiYoZT1hd2FpdCBhLmZldGNoQXN5bmMoZSkpLGZBKGUsIlBhZ2UiKXx8IWkuaGFzKCJLaWRzIikpe2lmKGc9PT1BKXJldHVybltpLG51bGxdO2crKztjb250aW51ZX10aHJvdyBuZXcgVygiUGFnZSBkaWN0aW9uYXJ5IGtpZHMgb2JqZWN0IGlzIG5vdCBhbiBhcnJheS4iKX1mb3IobGV0IEE9Yy5sZW5ndGgtMTtBPj0wO0EtLSl7Y29uc3QgdD1jW0FdO2UucHVzaCh0KSxpPT09dGhpcy50b3BsZXZlbFBhZ2VzRGljdCYmdCBpbnN0YW5jZW9mIEVBJiYhci5oYXModCkmJnIucHV0KHQsYS5mZXRjaEFzeW5jKHQpKX19dGhyb3cgbmV3IEVycm9yKGBQYWdlIGluZGV4ICR7QX0gbm90IGZvdW5kLmApfWFzeW5jIGdldEFsbFBhZ2VEaWN0cyhBPSExKXtjb25zdHtpZ25vcmVFcnJvcnM6ZX09dGhpcy5wZGZNYW5hZ2VyLmV2YWx1YXRvck9wdGlvbnMsdD1be2N1cnJlbnROb2RlOnRoaXMudG9wbGV2ZWxQYWdlc0RpY3QscG9zSW5LaWRzOjB9XSxpPW5ldyB1QSxhPXRoaXMuX2NhdERpY3QuZ2V0UmF3KCJQYWdlcyIpO2EgaW5zdGFuY2VvZiBFQSYmaS5wdXQoYSk7Y29uc3Qgcz1uZXcgTWFwLG49dGhpcy54cmVmLHI9dGhpcy5wYWdlSW5kZXhDYWNoZTtsZXQgZz0wO2Z1bmN0aW9uIG8odCl7aWYodCBpbnN0YW5jZW9mIFNBJiYhQSl0aHJvdyB0O0EmJmUmJjA9PT1nJiYoVShgZ2V0QWxsUGFnZURpY3RzIC0gU2tpcHBpbmcgaW52YWxpZCBmaXJzdCBwYWdlOiAiJHt0fSIuYCksdD1RQS5lbXB0eSkscy5zZXQoZysrLFt0LG51bGxdKX1mb3IoO3QubGVuZ3RoPjA7KXtjb25zdCBBPXQuYXQoLTEpLHtjdXJyZW50Tm9kZTplLHBvc0luS2lkczphfT1BO2xldCBoPWUuZ2V0UmF3KCJLaWRzIik7aWYoaCBpbnN0YW5jZW9mIEVBKXRyeXtoPWF3YWl0IG4uZmV0Y2hBc3luYyhoKX1jYXRjaChBKXtvKEEpO2JyZWFrfWlmKCFBcnJheS5pc0FycmF5KGgpKXtvKG5ldyBXKCJQYWdlIGRpY3Rpb25hcnkga2lkcyBvYmplY3QgaXMgbm90IGFuIGFycmF5LiIpKTticmVha31pZihhPj1oLmxlbmd0aCl7dC5wb3AoKTtjb250aW51ZX1jb25zdCBDPWhbYV07bGV0IEI7aWYoQyBpbnN0YW5jZW9mIEVBKXtpZihpLmhhcyhDKSl7byhuZXcgVygiUGFnZXMgdHJlZSBjb250YWlucyBjaXJjdWxhciByZWZlcmVuY2UuIikpO2JyZWFrfWkucHV0KEMpO3RyeXtCPWF3YWl0IG4uZmV0Y2hBc3luYyhDKX1jYXRjaChBKXtvKEEpO2JyZWFrfX1lbHNlIEI9QztpZighKEIgaW5zdGFuY2VvZiBRQSkpe28obmV3IFcoIlBhZ2UgZGljdGlvbmFyeSBraWQgcmVmZXJlbmNlIHBvaW50cyB0byB3cm9uZyB0eXBlIG9mIG9iamVjdC4iKSk7YnJlYWt9bGV0IGw9Qi5nZXRSYXcoIlR5cGUiKTtpZihsIGluc3RhbmNlb2YgRUEpdHJ5e2w9YXdhaXQgbi5mZXRjaEFzeW5jKGwpfWNhdGNoKEEpe28oQSk7YnJlYWt9ZkEobCwiUGFnZSIpfHwhQi5oYXMoIktpZHMiKT8oST1CLChjPUMgaW5zdGFuY2VvZiBFQT9DOm51bGwpJiYhci5oYXMoYykmJnIucHV0KGMsZykscy5zZXQoZysrLFtJLGNdKSk6dC5wdXNoKHtjdXJyZW50Tm9kZTpCLHBvc0luS2lkczowfSksQS5wb3NJbktpZHMrK312YXIgSSxjO3JldHVybiBzfWdldFBhZ2VJbmRleChBKXtjb25zdCBlPXRoaXMucGFnZUluZGV4Q2FjaGUuZ2V0KEEpO2lmKHZvaWQgMCE9PWUpcmV0dXJuIFByb21pc2UucmVzb2x2ZShlKTtjb25zdCB0PXRoaXMueHJlZjtsZXQgaT0wO2NvbnN0IGE9ZT0+ZnVuY3Rpb24oZSl7bGV0IGksYT0wO3JldHVybiB0LmZldGNoQXN5bmMoZSkudGhlbigoZnVuY3Rpb24odCl7aWYoeUEoZSxBKSYmIW1BKHQsIlBhZ2UiKSYmISh0IGluc3RhbmNlb2YgUUEmJiF0LmhhcygiVHlwZSIpJiZ0LmhhcygiQ29udGVudHMiKSkpdGhyb3cgbmV3IFcoIlRoZSByZWZlcmVuY2UgZG9lcyBub3QgcG9pbnQgdG8gYSAvUGFnZSBkaWN0aW9uYXJ5LiIpO2lmKCF0KXJldHVybiBudWxsO2lmKCEodCBpbnN0YW5jZW9mIFFBKSl0aHJvdyBuZXcgVygiTm9kZSBtdXN0IGJlIGEgZGljdGlvbmFyeS4iKTtyZXR1cm4gaT10LmdldFJhdygiUGFyZW50IiksdC5nZXRBc3luYygiUGFyZW50Iil9KSkudGhlbigoZnVuY3Rpb24oQSl7aWYoIUEpcmV0dXJuIG51bGw7aWYoIShBIGluc3RhbmNlb2YgUUEpKXRocm93IG5ldyBXKCJQYXJlbnQgbXVzdCBiZSBhIGRpY3Rpb25hcnkuIik7cmV0dXJuIEEuZ2V0QXN5bmMoIktpZHMiKX0pKS50aGVuKChmdW5jdGlvbihBKXtpZighQSlyZXR1cm4gbnVsbDtjb25zdCBzPVtdO2xldCBuPSExO2Zvcihjb25zdCBpIG9mIEEpe2lmKCEoaSBpbnN0YW5jZW9mIEVBKSl0aHJvdyBuZXcgVygiS2lkIG11c3QgYmUgYSByZWZlcmVuY2UuIik7aWYoeUEoaSxlKSl7bj0hMDticmVha31zLnB1c2godC5mZXRjaEFzeW5jKGkpLnRoZW4oKGZ1bmN0aW9uKEEpe2lmKCEoQSBpbnN0YW5jZW9mIFFBKSl0aHJvdyBuZXcgVygiS2lkIG5vZGUgbXVzdCBiZSBhIGRpY3Rpb25hcnkuIik7QS5oYXMoIkNvdW50Iik/YSs9QS5nZXQoIkNvdW50Iik6YSsrfSkpKX1pZighbil0aHJvdyBuZXcgVygiS2lkIHJlZmVyZW5jZSBub3QgZm91bmQgaW4gcGFyZW50J3Mga2lkcy4iKTtyZXR1cm4gUHJvbWlzZS5hbGwocykudGhlbigoZnVuY3Rpb24oKXtyZXR1cm5bYSxpXX0pKX0pKX0oZSkudGhlbigoZT0+e2lmKCFlKXJldHVybiB0aGlzLnBhZ2VJbmRleENhY2hlLnB1dChBLGkpLGk7Y29uc3RbdCxzXT1lO3JldHVybiBpKz10LGEocyl9KSk7cmV0dXJuIGEoQSl9Z2V0IGJhc2VVcmwoKXtjb25zdCBBPXRoaXMuX2NhdERpY3QuZ2V0KCJVUkkiKTtpZihBIGluc3RhbmNlb2YgUUEpe2NvbnN0IGU9QS5nZXQoIkJhc2UiKTtpZigic3RyaW5nIj09dHlwZW9mIGUpe2NvbnN0IEE9SihlLG51bGwse3RyeUNvbnZlcnRFbmNvZGluZzohMH0pO2lmKEEpcmV0dXJuIEgodGhpcywiYmFzZVVybCIsQS5ocmVmKX19cmV0dXJuIEgodGhpcywiYmFzZVVybCIsdGhpcy5wZGZNYW5hZ2VyLmRvY0Jhc2VVcmwpfXN0YXRpYyBwYXJzZURlc3REaWN0aW9uYXJ5KHtkZXN0RGljdDpBLHJlc3VsdE9iajplLGRvY0Jhc2VVcmw6dD1udWxsLGRvY0F0dGFjaG1lbnRzOmk9bnVsbH0pe2lmKCEoQSBpbnN0YW5jZW9mIFFBKSlyZXR1cm4gdm9pZCBVKCJwYXJzZURlc3REaWN0aW9uYXJ5OiBgZGVzdERpY3RgIG11c3QgYmUgYSBkaWN0aW9uYXJ5LiIpO2xldCBhLHMsbj1BLmdldCgiQSIpO2lmKG4gaW5zdGFuY2VvZiBRQXx8KEEuaGFzKCJEZXN0Iik/bj1BLmdldCgiRGVzdCIpOihuPUEuZ2V0KCJBQSIpLG4gaW5zdGFuY2VvZiBRQSYmKG4uaGFzKCJEIik/bj1uLmdldCgiRCIpOm4uaGFzKCJVIikmJihuPW4uZ2V0KCJVIikpKSkpLG4gaW5zdGFuY2VvZiBRQSl7Y29uc3QgQT1uLmdldCgiUyIpO2lmKCEoQSBpbnN0YW5jZW9mIENBKSlyZXR1cm4gdm9pZCBVKCJwYXJzZURlc3REaWN0aW9uYXJ5OiBJbnZhbGlkIHR5cGUgaW4gQWN0aW9uIGRpY3Rpb25hcnkuIik7Y29uc3QgdD1BLm5hbWU7c3dpdGNoKHQpe2Nhc2UiUmVzZXRGb3JtIjpjb25zdCBBPW4uZ2V0KCJGbGFncyIpLHI9MD09KDEmKCJudW1iZXIiPT10eXBlb2YgQT9BOjApKSxnPVtdLG89W107Zm9yKGNvbnN0IEEgb2Ygbi5nZXQoIkZpZWxkcyIpfHxbXSlBIGluc3RhbmNlb2YgRUE/by5wdXNoKEEudG9TdHJpbmcoKSk6InN0cmluZyI9PXR5cGVvZiBBJiZnLnB1c2goZUEoQSkpO2UucmVzZXRGb3JtPXtmaWVsZHM6ZyxyZWZzOm8saW5jbHVkZTpyfTticmVhaztjYXNlIlVSSSI6YT1uLmdldCgiVVJJIiksYSBpbnN0YW5jZW9mIENBJiYoYT0iLyIrYS5uYW1lKTticmVhaztjYXNlIkdvVG8iOnM9bi5nZXQoIkQiKTticmVhaztjYXNlIkxhdW5jaCI6Y2FzZSJHb1RvUiI6Y29uc3QgST1uLmdldCgiRiIpO2lmKEkgaW5zdGFuY2VvZiBRQSl7Y29uc3QgQT1uZXcgU2coSSxudWxsLCEwKSx7cmF3RmlsZW5hbWU6ZX09QS5zZXJpYWxpemFibGU7YT1lfWVsc2Uic3RyaW5nIj09dHlwZW9mIEkmJihhPUkpO2NvbnN0IGM9Y28obik7YyYmInN0cmluZyI9PXR5cGVvZiBhJiYoYT1hLnNwbGl0KCIjIiwxKVswXSsiIyIrYyk7Y29uc3QgaD1uLmdldCgiTmV3V2luZG93Iik7ImJvb2xlYW4iPT10eXBlb2YgaCYmKGUubmV3V2luZG93PWgpO2JyZWFrO2Nhc2UiR29Ub0UiOmNvbnN0IEM9bi5nZXQoIlQiKTtsZXQgQjtpZihpJiZDIGluc3RhbmNlb2YgUUEpe2NvbnN0IEE9Qy5nZXQoIlIiKSxlPUMuZ2V0KCJOIik7ZkEoQSwiQyIpJiYic3RyaW5nIj09dHlwZW9mIGUmJihCPWlbZUEoZSldKX1pZihCKXtlLmF0dGFjaG1lbnQ9Qjtjb25zdCBBPWNvKG4pO0EmJihlLmF0dGFjaG1lbnREZXN0PUEpfWVsc2UgVSgncGFyc2VEZXN0RGljdGlvbmFyeSAtIHVuaW1wbGVtZW50ZWQgIkdvVG9FIiBhY3Rpb24uJyk7YnJlYWs7Y2FzZSJOYW1lZCI6Y29uc3QgbD1uLmdldCgiTiIpO2wgaW5zdGFuY2VvZiBDQSYmKGUuYWN0aW9uPWwubmFtZSk7YnJlYWs7Y2FzZSJTZXRPQ0dTdGF0ZSI6Y29uc3QgUT1uLmdldCgiU3RhdGUiKSxFPW4uZ2V0KCJQcmVzZXJ2ZVJCIik7aWYoIUFycmF5LmlzQXJyYXkoUSl8fDA9PT1RLmxlbmd0aClicmVhaztjb25zdCB1PVtdO2Zvcihjb25zdCBBIG9mIFEpaWYoQSBpbnN0YW5jZW9mIENBKXN3aXRjaChBLm5hbWUpe2Nhc2UiT04iOmNhc2UiT0ZGIjpjYXNlIlRvZ2dsZSI6dS5wdXNoKEEubmFtZSl9ZWxzZSBBIGluc3RhbmNlb2YgRUEmJnUucHVzaChBLnRvU3RyaW5nKCkpO2lmKHUubGVuZ3RoIT09US5sZW5ndGgpYnJlYWs7ZS5zZXRPQ0dTdGF0ZT17c3RhdGU6dSxwcmVzZXJ2ZVJCOiJib29sZWFuIiE9dHlwZW9mIEV8fEV9O2JyZWFrO2Nhc2UiSmF2YVNjcmlwdCI6Y29uc3QgZD1uLmdldCgiSlMiKTtsZXQgZjtkIGluc3RhbmNlb2Ygd0E/Zj1kLmdldFN0cmluZygpOiJzdHJpbmciPT10eXBlb2YgZCYmKGY9ZCk7Y29uc3QgcD1mJiZBZShlQShmKSk7aWYocCl7YT1wLnVybCxlLm5ld1dpbmRvdz1wLm5ld1dpbmRvdzticmVha31kZWZhdWx0OmlmKCJKYXZhU2NyaXB0Ij09PXR8fCJTdWJtaXRGb3JtIj09PXQpYnJlYWs7VShgcGFyc2VEZXN0RGljdGlvbmFyeSAtIHVuc3VwcG9ydGVkIGFjdGlvbjogIiR7dH0iLmApfX1lbHNlIEEuaGFzKCJEZXN0IikmJihzPUEuZ2V0KCJEZXN0IikpO2lmKCJzdHJpbmciPT10eXBlb2YgYSl7Y29uc3QgQT1KKGEsdCx7YWRkRGVmYXVsdFByb3RvY29sOiEwLHRyeUNvbnZlcnRFbmNvZGluZzohMH0pO0EmJihlLnVybD1BLmhyZWYpLGUudW5zYWZlVXJsPWF9cyYmKHMgaW5zdGFuY2VvZiBDQSYmKHM9cy5uYW1lKSwic3RyaW5nIj09dHlwZW9mIHM/ZS5kZXN0PWVBKHMpOm9vKHMpJiYoZS5kZXN0PXMpKX19ZnVuY3Rpb24gQ28oQSxlKXtpZihBIGluc3RhbmNlb2YgUUEpQT1BLmdldFJhd1ZhbHVlcygpO2Vsc2UgaWYoQSBpbnN0YW5jZW9mIHdBKUE9QS5kaWN0LmdldFJhd1ZhbHVlcygpO2Vsc2UgaWYoIUFycmF5LmlzQXJyYXkoQSkpcmV0dXJuO2Zvcihjb25zdCBpIG9mIEEpKCh0PWkpaW5zdGFuY2VvZiBFQXx8dCBpbnN0YW5jZW9mIFFBfHx0IGluc3RhbmNlb2Ygd0F8fEFycmF5LmlzQXJyYXkodCkpJiZlLnB1c2goaSk7dmFyIHR9Y2xhc3MgQm97Y29uc3RydWN0b3IoQSxlLHQpe3RoaXMuZGljdD1BLHRoaXMua2V5cz1lLHRoaXMueHJlZj10LHRoaXMucmVmU2V0PW51bGx9YXN5bmMgbG9hZCgpe2lmKHRoaXMueHJlZi5zdHJlYW0uaXNEYXRhTG9hZGVkKXJldHVybjtjb25zdHtrZXlzOkEsZGljdDplfT10aGlzO3RoaXMucmVmU2V0PW5ldyB1QTtjb25zdCB0PVtdO2Zvcihjb25zdCBpIG9mIEEpe2NvbnN0IEE9ZS5nZXRSYXcoaSk7dm9pZCAwIT09QSYmdC5wdXNoKEEpfXJldHVybiB0aGlzLl93YWxrKHQpfWFzeW5jIF93YWxrKEEpe2NvbnN0IGU9W10sdD1bXTtmb3IoO0EubGVuZ3RoOyl7bGV0IGk9QS5wb3AoKTtpZihpIGluc3RhbmNlb2YgRUEpe2lmKHRoaXMucmVmU2V0LmhhcyhpKSljb250aW51ZTt0cnl7dGhpcy5yZWZTZXQucHV0KGkpLGk9dGhpcy54cmVmLmZldGNoKGkpfWNhdGNoKEEpe2lmKCEoQSBpbnN0YW5jZW9mIGtBKSl7VShgT2JqZWN0TG9hZGVyLl93YWxrIC0gcmVxdWVzdGluZyBhbGwgZGF0YTogIiR7QX0iLmApLHRoaXMucmVmU2V0PW51bGw7Y29uc3R7bWFuYWdlcjplfT10aGlzLnhyZWYuc3RyZWFtO3JldHVybiBlLnJlcXVlc3RBbGxDaHVua3MoKX1lLnB1c2goaSksdC5wdXNoKHtiZWdpbjpBLmJlZ2luLGVuZDpBLmVuZH0pfX1pZihpIGluc3RhbmNlb2Ygd0Epe2NvbnN0IEE9aS5nZXRCYXNlU3RyZWFtcygpO2lmKEEpe2xldCBhPSExO2Zvcihjb25zdCBlIG9mIEEpZS5pc0RhdGFMb2FkZWR8fChhPSEwLHQucHVzaCh7YmVnaW46ZS5zdGFydCxlbmQ6ZS5lbmR9KSk7YSYmZS5wdXNoKGkpfX1DbyhpLEEpfWlmKHQubGVuZ3RoKXthd2FpdCB0aGlzLnhyZWYuc3RyZWFtLm1hbmFnZXIucmVxdWVzdFJhbmdlcyh0KTtmb3IoY29uc3QgQSBvZiBlKUEgaW5zdGFuY2VvZiBFQSYmdGhpcy5yZWZTZXQucmVtb3ZlKEEpO3JldHVybiB0aGlzLl93YWxrKGUpfXRoaXMucmVmU2V0PW51bGx9fWNvbnN0IGxvPVN5bWJvbCgpLFFvPVN5bWJvbCgpLEVvPVN5bWJvbCgpLHVvPVN5bWJvbCgpLGZvPVN5bWJvbCgpLHBvPVN5bWJvbCgpLG1vPVN5bWJvbCgpLHlvPVN5bWJvbCgpLHdvPVN5bWJvbCgpLERvPVN5bWJvbCgiY29udGVudCIpLGJvPVN5bWJvbCgiZGF0YSIpLGtvPVN5bWJvbCgpLEZvPVN5bWJvbCgiZXh0cmEiKSxTbz1TeW1ib2woKSxSbz1TeW1ib2woKSxHbz1TeW1ib2woKSxObz1TeW1ib2woKSx4bz1TeW1ib2woKSxVbz1TeW1ib2woKSxNbz1TeW1ib2woKSxMbz1TeW1ib2woKSxKbz1TeW1ib2woKSxIbz1TeW1ib2woKSxZbz1TeW1ib2woKSx2bz1TeW1ib2woKSxLbz1TeW1ib2woKSxxbz1TeW1ib2woKSxUbz1TeW1ib2woKSxQbz1TeW1ib2woKSxXbz1TeW1ib2woKSxPbz1TeW1ib2woKSxabz1TeW1ib2woKSxqbz1TeW1ib2woKSxYbz1TeW1ib2woKSxWbz1TeW1ib2woKSxfbz1TeW1ib2woKSx6bz1TeW1ib2woKSwkbz1TeW1ib2woKSxBST1TeW1ib2woKSxlST1TeW1ib2woKSx0ST1TeW1ib2woKSxpST1TeW1ib2woKSxhST1TeW1ib2woKSxzST1TeW1ib2woKSxuST1TeW1ib2woKSxyST1TeW1ib2woIm5hbWVzcGFjZUlkIiksZ0k9U3ltYm9sKCJub2RlTmFtZSIpLG9JPVN5bWJvbCgpLElJPVN5bWJvbCgpLGNJPVN5bWJvbCgpLGhJPVN5bWJvbCgpLENJPVN5bWJvbCgpLEJJPVN5bWJvbCgpLGxJPVN5bWJvbCgpLFFJPVN5bWJvbCgpLEVJPVN5bWJvbCgicm9vdCIpLHVJPVN5bWJvbCgpLGRJPVN5bWJvbCgpLGZJPVN5bWJvbCgpLHBJPVN5bWJvbCgpLG1JPVN5bWJvbCgpLHlJPVN5bWJvbCgpLHdJPVN5bWJvbCgpLERJPVN5bWJvbCgpLGJJPVN5bWJvbCgpLGtJPVN5bWJvbCgpLEZJPVN5bWJvbCgpLFNJPVN5bWJvbCgidWlkIiksUkk9U3ltYm9sKCksR0k9e2NvbmZpZzp7aWQ6MCxjaGVjazpBPT5BLnN0YXJ0c1dpdGgoImh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGNpLyIpfSxjb25uZWN0aW9uU2V0OntpZDoxLGNoZWNrOkE9PkEuc3RhcnRzV2l0aCgiaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtY29ubmVjdGlvbi1zZXQvIil9LGRhdGFzZXRzOntpZDoyLGNoZWNrOkE9PkEuc3RhcnRzV2l0aCgiaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtZGF0YS8iKX0sZm9ybTp7aWQ6MyxjaGVjazpBPT5BLnN0YXJ0c1dpdGgoImh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLWZvcm0vIil9LGxvY2FsZVNldDp7aWQ6NCxjaGVjazpBPT5BLnN0YXJ0c1dpdGgoImh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLWxvY2FsZS1zZXQvIil9LHBkZjp7aWQ6NSxjaGVjazpBPT4iaHR0cDovL25zLmFkb2JlLmNvbS94ZHAvcGRmLyI9PT1BfSxzaWduYXR1cmU6e2lkOjYsY2hlY2s6QT0+Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPT09QX0sc291cmNlU2V0OntpZDo3LGNoZWNrOkE9PkEuc3RhcnRzV2l0aCgiaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtc291cmNlLXNldC8iKX0sc3R5bGVzaGVldDp7aWQ6OCxjaGVjazpBPT4iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtIj09PUF9LHRlbXBsYXRlOntpZDo5LGNoZWNrOkE9PkEuc3RhcnRzV2l0aCgiaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtdGVtcGxhdGUvIil9LHhkYzp7aWQ6MTAsY2hlY2s6QT0+QS5zdGFydHNXaXRoKCJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hkYy8iKX0seGRwOntpZDoxMSxjaGVjazpBPT4iaHR0cDovL25zLmFkb2JlLmNvbS94ZHAvIj09PUF9LHhmZGY6e2lkOjEyLGNoZWNrOkE9PiJodHRwOi8vbnMuYWRvYmUuY29tL3hmZGYvIj09PUF9LHhodG1sOntpZDoxMyxjaGVjazpBPT4iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI9PT1BfSx4bXBtZXRhOntpZDoxNCxjaGVjazpBPT4iaHR0cDovL25zLmFkb2JlLmNvbS94bXBtZXRhLyI9PT1BfX0sTkk9e3B0OkE9PkEsY206QT0+QS8yLjU0KjcyLG1tOkE9PkEvMjUuNCo3MixpbjpBPT43MipBLHB4OkE9PkF9LHhJPS8oWystXT9cZCtcLj9cZCopKC4qKS87ZnVuY3Rpb24gVUkoQSl7cmV0dXJuIEEuc3RhcnRzV2l0aCgiJyIpfHxBLnN0YXJ0c1dpdGgoJyInKT9BLnNsaWNlKDEsLTEpOkF9ZnVuY3Rpb24gTUkoe2RhdGE6QSxkZWZhdWx0VmFsdWU6ZSx2YWxpZGF0ZTp0fSl7aWYoIUEpcmV0dXJuIGU7QT1BLnRyaW0oKTtjb25zdCBpPXBhcnNlSW50KEEsMTApO3JldHVybiFpc05hTihpKSYmdChpKT9pOmV9ZnVuY3Rpb24gTEkoe2RhdGE6QSxkZWZhdWx0VmFsdWU6ZSx2YWxpZGF0ZTp0fSl7aWYoIUEpcmV0dXJuIGU7QT1BLnRyaW0oKTtjb25zdCBpPXBhcnNlRmxvYXQoQSk7cmV0dXJuIWlzTmFOKGkpJiZ0KGkpP2k6ZX1mdW5jdGlvbiBKSSh7ZGF0YTpBLGRlZmF1bHRWYWx1ZTplLHZhbGlkYXRlOnR9KXtyZXR1cm4gQSYmdChBPUEudHJpbSgpKT9BOmV9ZnVuY3Rpb24gSEkoQSxlKXtyZXR1cm4gSkkoe2RhdGE6QSxkZWZhdWx0VmFsdWU6ZVswXSx2YWxpZGF0ZTpBPT5lLmluY2x1ZGVzKEEpfSl9ZnVuY3Rpb24gWUkoQSxlPSIwIil7aWYoZXx8PSIwIiwhQSlyZXR1cm4gWUkoZSk7Y29uc3QgdD1BLnRyaW0oKS5tYXRjaCh4SSk7aWYoIXQpcmV0dXJuIFlJKGUpO2NvbnN0WyxpLGFdPXQscz1wYXJzZUZsb2F0KGkpO2lmKGlzTmFOKHMpKXJldHVybiBZSShlKTtpZigwPT09cylyZXR1cm4gMDtjb25zdCBuPU5JW2FdO3JldHVybiBuP24ocyk6c31mdW5jdGlvbiB2SShBKXtpZighQSlyZXR1cm57bnVtOjEsZGVuOjF9O2NvbnN0IGU9QS50cmltKCkuc3BsaXQoL1xzKjpccyovKS5tYXAoKEE9PnBhcnNlRmxvYXQoQSkpKS5maWx0ZXIoKEE9PiFpc05hTihBKSkpO2lmKDE9PT1lLmxlbmd0aCYmZS5wdXNoKDEpLDA9PT1lLmxlbmd0aClyZXR1cm57bnVtOjEsZGVuOjF9O2NvbnN0W3QsaV09ZTtyZXR1cm57bnVtOnQsZGVuOml9fWZ1bmN0aW9uIEtJKEEpe3JldHVybiBBP0EudHJpbSgpLnNwbGl0KC9ccysvKS5tYXAoKEE9Pih7ZXhjbHVkZWQ6Ii0iPT09QVswXSx2aWV3bmFtZTpBLnN1YnN0cmluZygxKX0pKSk6W119Y2xhc3MgcUl7c3RhdGljIGdldCBGQUlMVVJFKCl7cmV0dXJuIEgodGhpcywiRkFJTFVSRSIsbmV3IHFJKCExLG51bGwsbnVsbCxudWxsKSl9c3RhdGljIGdldCBFTVBUWSgpe3JldHVybiBIKHRoaXMsIkVNUFRZIixuZXcgcUkoITAsbnVsbCxudWxsLG51bGwpKX1jb25zdHJ1Y3RvcihBLGUsdCxpKXt0aGlzLnN1Y2Nlc3M9QSx0aGlzLmh0bWw9ZSx0aGlzLmJib3g9dCx0aGlzLmJyZWFrTm9kZT1pfWlzQnJlYWsoKXtyZXR1cm4hIXRoaXMuYnJlYWtOb2RlfXN0YXRpYyBicmVha05vZGUoQSl7cmV0dXJuIG5ldyBxSSghMSxudWxsLG51bGwsQSl9c3RhdGljIHN1Y2Nlc3MoQSxlPW51bGwpe3JldHVybiBuZXcgcUkoITAsQSxlLG51bGwpfX1jbGFzcyBUSXtjb25zdHJ1Y3RvcihBKXt0aGlzLmZvbnRzPW5ldyBNYXAsdGhpcy5jYWNoZT1uZXcgTWFwLHRoaXMud2FybmVkPW5ldyBTZXQsdGhpcy5kZWZhdWx0Rm9udD1udWxsLHRoaXMuYWRkKEEpfWFkZChBLGU9bnVsbCl7Zm9yKGNvbnN0IGUgb2YgQSl0aGlzLmFkZFBkZkZvbnQoZSk7Zm9yKGNvbnN0IEEgb2YgdGhpcy5mb250cy52YWx1ZXMoKSlBLnJlZ3VsYXJ8fChBLnJlZ3VsYXI9QS5pdGFsaWN8fEEuYm9sZHx8QS5ib2xkaXRhbGljKTtpZighZXx8MD09PWUuc2l6ZSlyZXR1cm47Y29uc3QgdD10aGlzLmZvbnRzLmdldCgiUGRmSlMtRmFsbGJhY2stUGRmSlMtWEZBIik7Zm9yKGNvbnN0IEEgb2YgZSl0aGlzLmZvbnRzLnNldChBLHQpfWFkZFBkZkZvbnQoQSl7Y29uc3QgZT1BLmNzc0ZvbnRJbmZvLHQ9ZS5mb250RmFtaWx5O2xldCBpPXRoaXMuZm9udHMuZ2V0KHQpO2l8fChpPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5mb250cy5zZXQodCxpKSx0aGlzLmRlZmF1bHRGb250fHwodGhpcy5kZWZhdWx0Rm9udD1pKSk7bGV0IGE9IiI7Y29uc3Qgcz1wYXJzZUZsb2F0KGUuZm9udFdlaWdodCk7MCE9PXBhcnNlRmxvYXQoZS5pdGFsaWNBbmdsZSk/YT1zPj03MDA/ImJvbGRpdGFsaWMiOiJpdGFsaWMiOnM+PTcwMCYmKGE9ImJvbGQiKSxhfHwoKEEubmFtZS5pbmNsdWRlcygiQm9sZCIpfHxBLnBzTmFtZT8uaW5jbHVkZXMoIkJvbGQiKSkmJihhPSJib2xkIiksKEEubmFtZS5pbmNsdWRlcygiSXRhbGljIil8fEEubmFtZS5lbmRzV2l0aCgiSXQiKXx8QS5wc05hbWU/LmluY2x1ZGVzKCJJdGFsaWMiKXx8QS5wc05hbWU/LmVuZHNXaXRoKCJJdCIpKSYmKGErPSJpdGFsaWMiKSksYXx8KGE9InJlZ3VsYXIiKSxpW2FdPUF9Z2V0RGVmYXVsdCgpe3JldHVybiB0aGlzLmRlZmF1bHRGb250fWZpbmQoQSxlPSEwKXtsZXQgdD10aGlzLmZvbnRzLmdldChBKXx8dGhpcy5jYWNoZS5nZXQoQSk7aWYodClyZXR1cm4gdDtjb25zdCBpPS8sfC18X3wgfGJvbGRpdGFsaWN8Ym9sZHxpdGFsaWN8cmVndWxhcnxpdC9naTtsZXQgYT1BLnJlcGxhY2VBbGwoaSwiIik7aWYodD10aGlzLmZvbnRzLmdldChhKSx0KXJldHVybiB0aGlzLmNhY2hlLnNldChBLHQpLHQ7YT1hLnRvTG93ZXJDYXNlKCk7Y29uc3Qgcz1bXTtmb3IoY29uc3RbQSxlXW9mIHRoaXMuZm9udHMuZW50cmllcygpKUEucmVwbGFjZUFsbChpLCIiKS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoYSkmJnMucHVzaChlKTtpZigwPT09cy5sZW5ndGgpZm9yKGNvbnN0WyxBXW9mIHRoaXMuZm9udHMuZW50cmllcygpKUEucmVndWxhci5uYW1lPy5yZXBsYWNlQWxsKGksIiIpLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChhKSYmcy5wdXNoKEEpO2lmKDA9PT1zLmxlbmd0aCl7YT1hLnJlcGxhY2VBbGwoL3BzbXR8bXQvZ2ksIiIpO2Zvcihjb25zdFtBLGVdb2YgdGhpcy5mb250cy5lbnRyaWVzKCkpQS5yZXBsYWNlQWxsKGksIiIpLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChhKSYmcy5wdXNoKGUpfWlmKDA9PT1zLmxlbmd0aClmb3IoY29uc3QgQSBvZiB0aGlzLmZvbnRzLnZhbHVlcygpKUEucmVndWxhci5uYW1lPy5yZXBsYWNlQWxsKGksIiIpLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChhKSYmcy5wdXNoKEEpO3JldHVybiBzLmxlbmd0aD49MT8oMSE9PXMubGVuZ3RoJiZlJiZVKGBYRkEgLSBUb28gbWFueSBjaG9pY2VzIHRvIGd1ZXNzIHRoZSBjb3JyZWN0IGZvbnQ6ICR7QX1gKSx0aGlzLmNhY2hlLnNldChBLHNbMF0pLHNbMF0pOihlJiYhdGhpcy53YXJuZWQuaGFzKEEpJiYodGhpcy53YXJuZWQuYWRkKEEpLFUoYFhGQSAtIENhbm5vdCBmaW5kIHRoZSBmb250OiAke0F9YCkpLG51bGwpfX1mdW5jdGlvbiBQSShBLGUpe3JldHVybiJpdGFsaWMiPT09QS5wb3N0dXJlPyJib2xkIj09PUEud2VpZ2h0P2UuYm9sZGl0YWxpYzplLml0YWxpYzoiYm9sZCI9PT1BLndlaWdodD9lLmJvbGQ6ZS5yZWd1bGFyfWNsYXNzIFdJe2NvbnN0cnVjdG9yKEEsZSx0LGkpe2lmKHRoaXMubGluZUhlaWdodD10LHRoaXMucGFyYU1hcmdpbj1lfHx7dG9wOjAsYm90dG9tOjAsbGVmdDowLHJpZ2h0OjB9LCFBKXJldHVybiB2b2lkKFt0aGlzLnBkZkZvbnQsdGhpcy54ZmFGb250XT10aGlzLmRlZmF1bHRGb250KGkpKTt0aGlzLnhmYUZvbnQ9e3R5cGVmYWNlOkEudHlwZWZhY2UscG9zdHVyZTpBLnBvc3R1cmUsd2VpZ2h0OkEud2VpZ2h0LHNpemU6QS5zaXplLGxldHRlclNwYWNpbmc6QS5sZXR0ZXJTcGFjaW5nfTtjb25zdCBhPWkuZmluZChBLnR5cGVmYWNlKTthPyh0aGlzLnBkZkZvbnQ9UEkoQSxhKSx0aGlzLnBkZkZvbnR8fChbdGhpcy5wZGZGb250LHRoaXMueGZhRm9udF09dGhpcy5kZWZhdWx0Rm9udChpKSkpOlt0aGlzLnBkZkZvbnQsdGhpcy54ZmFGb250XT10aGlzLmRlZmF1bHRGb250KGkpfWRlZmF1bHRGb250KEEpe2NvbnN0IGU9QS5maW5kKCJIZWx2ZXRpY2EiLCExKXx8QS5maW5kKCJNeXJpYWQgUHJvIiwhMSl8fEEuZmluZCgiQXJpYWwiLCExKXx8QS5nZXREZWZhdWx0KCk7aWYoZT8ucmVndWxhcil7Y29uc3QgQT1lLnJlZ3VsYXI7cmV0dXJuW0Ese3R5cGVmYWNlOkEuY3NzRm9udEluZm8uZm9udEZhbWlseSxwb3N0dXJlOiJub3JtYWwiLHdlaWdodDoibm9ybWFsIixzaXplOjEwLGxldHRlclNwYWNpbmc6MH1dfXJldHVybltudWxsLHt0eXBlZmFjZToiQ291cmllciIscG9zdHVyZToibm9ybWFsIix3ZWlnaHQ6Im5vcm1hbCIsc2l6ZToxMCxsZXR0ZXJTcGFjaW5nOjB9XX19Y2xhc3MgT0l7Y29uc3RydWN0b3IoQSxlLHQsaSl7dGhpcy5mb250RmluZGVyPWksdGhpcy5zdGFjaz1bbmV3IFdJKEEsZSx0LGkpXX1wdXNoRGF0YShBLGUsdCl7Y29uc3QgaT10aGlzLnN0YWNrLmF0KC0xKTtmb3IoY29uc3QgZSBvZlsidHlwZWZhY2UiLCJwb3N0dXJlIiwid2VpZ2h0Iiwic2l6ZSIsImxldHRlclNwYWNpbmciXSlBW2VdfHwoQVtlXT1pLnhmYUZvbnRbZV0pO2Zvcihjb25zdCBBIG9mWyJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiXSlpc05hTihlW0FdKSYmKGVbQV09aS5wYXJhTWFyZ2luW0FdKTtjb25zdCBhPW5ldyBXSShBLGUsdHx8aS5saW5lSGVpZ2h0LHRoaXMuZm9udEZpbmRlcik7YS5wZGZGb250fHwoYS5wZGZGb250PWkucGRmRm9udCksdGhpcy5zdGFjay5wdXNoKGEpfXBvcEZvbnQoKXt0aGlzLnN0YWNrLnBvcCgpfXRvcEZvbnQoKXtyZXR1cm4gdGhpcy5zdGFjay5hdCgtMSl9fWNsYXNzIFpJe2NvbnN0cnVjdG9yKEEsZSx0LGkpe3RoaXMuZ2x5cGhzPVtdLHRoaXMuZm9udFNlbGVjdG9yPW5ldyBPSShBLGUsdCxpKSx0aGlzLmV4dHJhSGVpZ2h0PTB9cHVzaERhdGEoQSxlLHQpe3RoaXMuZm9udFNlbGVjdG9yLnB1c2hEYXRhKEEsZSx0KX1wb3BGb250KEEpe3JldHVybiB0aGlzLmZvbnRTZWxlY3Rvci5wb3BGb250KCl9YWRkUGFyYSgpe2NvbnN0IEE9dGhpcy5mb250U2VsZWN0b3IudG9wRm9udCgpO3RoaXMuZXh0cmFIZWlnaHQrPUEucGFyYU1hcmdpbi50b3ArQS5wYXJhTWFyZ2luLmJvdHRvbX1hZGRTdHJpbmcoQSl7aWYoIUEpcmV0dXJuO2NvbnN0IGU9dGhpcy5mb250U2VsZWN0b3IudG9wRm9udCgpLHQ9ZS54ZmFGb250LnNpemU7aWYoZS5wZGZGb250KXtjb25zdCBpPWUueGZhRm9udC5sZXR0ZXJTcGFjaW5nLGE9ZS5wZGZGb250LHM9YS5saW5lSGVpZ2h0fHwxLjIsbj1lLmxpbmVIZWlnaHR8fE1hdGgubWF4KDEuMixzKSp0LHI9cy0odm9pZCAwPT09YS5saW5lR2FwPy4yOmEubGluZUdhcCksZz1NYXRoLm1heCgxLHIpKnQsbz10LzFlMyxJPWEuZGVmYXVsdFdpZHRofHxhLmNoYXJzVG9HbHlwaHMoIiAiKVswXS53aWR0aDtmb3IoY29uc3QgZSBvZiBBLnNwbGl0KC9bXHUyMDI5XG5dLykpe2NvbnN0IEE9YS5lbmNvZGVTdHJpbmcoZSkuam9pbigiIiksdD1hLmNoYXJzVG9HbHlwaHMoQSk7Zm9yKGNvbnN0IEEgb2YgdCl7Y29uc3QgZT1BLndpZHRofHxJO3RoaXMuZ2x5cGhzLnB1c2goW2UqbytpLG4sZyxBLnVuaWNvZGUsITFdKX10aGlzLmdseXBocy5wdXNoKFswLDAsMCwiXG4iLCEwXSl9dGhpcy5nbHlwaHMucG9wKCl9ZWxzZXtmb3IoY29uc3QgZSBvZiBBLnNwbGl0KC9bXHUyMDI5XG5dLykpe2Zvcihjb25zdCBBIG9mIGUuc3BsaXQoIiIpKXRoaXMuZ2x5cGhzLnB1c2goW3QsMS4yKnQsdCxBLCExXSk7dGhpcy5nbHlwaHMucHVzaChbMCwwLDAsIlxuIiwhMF0pfXRoaXMuZ2x5cGhzLnBvcCgpfX1jb21wdXRlKEEpe2xldCBlPS0xLHQ9MCxpPTAsYT0wLHM9MCxuPTAscj0hMSxnPSEwO2ZvcihsZXQgbz0wLEk9dGhpcy5nbHlwaHMubGVuZ3RoO288STtvKyspe2NvbnN0W0ksYyxoLEMsQl09dGhpcy5nbHlwaHNbb10sbD0iICI9PT1DLFE9Zz9oOmM7Qj8oaT1NYXRoLm1heChpLHMpLHM9MCxhKz1uLG49USxlPS0xLHQ9MCxnPSExKTpsP3MrST5BPyhpPU1hdGgubWF4KGkscykscz0wLGErPW4sbj1RLGU9LTEsdD0wLHI9ITAsZz0hMSk6KG49TWF0aC5tYXgoUSxuKSx0PXMscys9SSxlPW8pOnMrST5BPyhhKz1uLG49USwtMSE9PWU/KG89ZSxpPU1hdGgubWF4KGksdCkscz0wLGU9LTEsdD0wKTooaT1NYXRoLm1heChpLHMpLHM9SSkscj0hMCxnPSExKToocys9SSxuPU1hdGgubWF4KFEsbikpfXJldHVybiBpPU1hdGgubWF4KGkscyksYSs9bit0aGlzLmV4dHJhSGVpZ2h0LHt3aWR0aDoxLjAyKmksaGVpZ2h0OmEsaXNCcm9rZW46cn19fWNvbnN0IGpJPS9eW14uW10rLyxYST0vXlteXF1dKy8sVkk9e2RvdDowLGRvdERvdDoxLGRvdEhhc2g6Mixkb3RCcmFja2V0OjMsZG90UGFyZW46NH0sX0k9bmV3IE1hcChbWyIkZGF0YSIsKEEsZSk9PkEuZGF0YXNldHM/QS5kYXRhc2V0cy5kYXRhOkFdLFsiJHJlY29yZCIsKEEsZSk9PihBLmRhdGFzZXRzP0EuZGF0YXNldHMuZGF0YTpBKVt2b10oKVswXV0sWyIkdGVtcGxhdGUiLChBLGUpPT5BLnRlbXBsYXRlXSxbIiRjb25uZWN0aW9uU2V0IiwoQSxlKT0+QS5jb25uZWN0aW9uU2V0XSxbIiRmb3JtIiwoQSxlKT0+QS5mb3JtXSxbIiRsYXlvdXQiLChBLGUpPT5BLmxheW91dF0sWyIkaG9zdCIsKEEsZSk9PkEuaG9zdF0sWyIkZGF0YVdpbmRvdyIsKEEsZSk9PkEuZGF0YVdpbmRvd10sWyIkZXZlbnQiLChBLGUpPT5BLmV2ZW50XSxbIiEiLChBLGUpPT5BLmRhdGFzZXRzXSxbIiR4ZmEiLChBLGUpPT5BXSxbInhmYSIsKEEsZSk9PkFdLFsiJCIsKEEsZSk9PmVdXSksekk9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gJEkoQSxlLHQ9ITApe2xldCBpPUEubWF0Y2goakkpO2lmKCFpKXJldHVybiBudWxsO2xldFthXT1pO2NvbnN0IHM9W3tuYW1lOmEsY2FjaGVOYW1lOiIuIithLGluZGV4OjAsanM6bnVsbCxmb3JtQ2FsYzpudWxsLG9wZXJhdG9yOlZJLmRvdH1dO2xldCBuPWEubGVuZ3RoO2Zvcig7bjxBLmxlbmd0aDspe2NvbnN0IGc9bjtpZigiWyI9PT1BLmNoYXJBdChuKyspKXtpZihpPUEuc2xpY2UobikubWF0Y2goWEkpLCFpKXJldHVybiBVKCJYRkEgLSBJbnZhbGlkIGluZGV4IGluIFNPTSBleHByZXNzaW9uIiksbnVsbDtzLmF0KC0xKS5pbmRleD0iKiI9PT0ocj0ocj1pWzBdKS50cmltKCkpPzEvMDpwYXJzZUludChyLDEwKXx8MCxuKz1pWzBdLmxlbmd0aCsxO2NvbnRpbnVlfWxldCBvO3N3aXRjaChBLmNoYXJBdChuKSl7Y2FzZSIuIjppZighZSlyZXR1cm4gbnVsbDtuKyssbz1WSS5kb3REb3Q7YnJlYWs7Y2FzZSIjIjpuKyssbz1WSS5kb3RIYXNoO2JyZWFrO2Nhc2UiWyI6aWYodClyZXR1cm4gVSgiWEZBIC0gU09NIGV4cHJlc3Npb24gY29udGFpbnMgYSBGb3JtQ2FsYyBzdWJleHByZXNzaW9uIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIG5vdy4iKSxudWxsO289VkkuZG90QnJhY2tldDticmVhaztjYXNlIigiOmlmKHQpcmV0dXJuIFUoIlhGQSAtIFNPTSBleHByZXNzaW9uIGNvbnRhaW5zIGEgSmF2YVNjcmlwdCBzdWJleHByZXNzaW9uIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIG5vdy4iKSxudWxsO289VkkuZG90UGFyZW47YnJlYWs7ZGVmYXVsdDpvPVZJLmRvdH1pZihpPUEuc2xpY2UobikubWF0Y2goakkpLCFpKWJyZWFrO1thXT1pLG4rPWEubGVuZ3RoLHMucHVzaCh7bmFtZTphLGNhY2hlTmFtZTpBLnNsaWNlKGcsbiksb3BlcmF0b3I6byxpbmRleDowLGpzOm51bGwsZm9ybUNhbGM6bnVsbH0pfXZhciByO3JldHVybiBzfWZ1bmN0aW9uIEFjKEEsZSx0LGk9ITAsYT0hMCl7Y29uc3Qgcz0kSSh0LGkpO2lmKCFzKXJldHVybiBudWxsO2NvbnN0IG49X0kuZ2V0KHNbMF0ubmFtZSk7bGV0IHIsZz0wO24/KHI9ITAsQT1bbihBLGUpXSxnPTEpOihyPW51bGw9PT1lLEE9W2V8fEFdKTtmb3IobGV0IHQ9cy5sZW5ndGg7Zzx0O2crKyl7Y29uc3R7bmFtZTp0LGNhY2hlTmFtZTppLG9wZXJhdG9yOm4saW5kZXg6b309c1tnXSxJPVtdO2Zvcihjb25zdCBlIG9mIEEpe2lmKCFlLmlzWEZBT2JqZWN0KWNvbnRpbnVlO2xldCBBLHM7aWYoYSYmKHM9ekkuZ2V0KGUpLHN8fChzPW5ldyBNYXAsekkuc2V0KGUscykpLEE9cy5nZXQoaSkpLCFBKXtzd2l0Y2gobil7Y2FzZSBWSS5kb3Q6QT1lW01vXSh0LCExKTticmVhaztjYXNlIFZJLmRvdERvdDpBPWVbTW9dKHQsITApO2JyZWFrO2Nhc2UgVkkuZG90SGFzaDpBPWVbVW9dKHQpLEE9QS5pc1hGQU9iamVjdEFycmF5P0EuY2hpbGRyZW46W0FdfWEmJnMuc2V0KGksQSl9QS5sZW5ndGg+MCYmSS5wdXNoKEEpfWlmKDAhPT1JLmxlbmd0aHx8cnx8MCE9PWcpQT1pc0Zpbml0ZShvKT9JLmZpbHRlcigoQT0+bzxBLmxlbmd0aCkpLm1hcCgoQT0+QVtvXSkpOkkuZmxhdCgpO2Vsc2V7Y29uc3QgdD1lW1BvXSgpO2lmKCEoZT10KSlyZXR1cm4gbnVsbDtnPS0xLEE9W2VdfX1yZXR1cm4gMD09PUEubGVuZ3RoP251bGw6QX1mdW5jdGlvbiBlYyhBLGUsdCl7Y29uc3QgaT0kSSh0KTtpZighaSlyZXR1cm4gbnVsbDtpZihpLnNvbWUoKEE9PkEub3BlcmF0b3I9PT1WSS5kb3REb3QpKSlyZXR1cm4gbnVsbDtjb25zdCBhPV9JLmdldChpWzBdLm5hbWUpO2xldCBzPTA7YT8oQT1hKEEsZSkscz0xKTpBPWV8fEE7Zm9yKGxldCBlPWkubGVuZ3RoO3M8ZTtzKyspe2NvbnN0e25hbWU6ZSxvcGVyYXRvcjp0LGluZGV4OmF9PWlbc107aWYoIWlzRmluaXRlKGEpKXJldHVybiBpW3NdLmluZGV4PTAsQS5jcmVhdGVOb2RlcyhpLnNsaWNlKHMpKTtsZXQgbjtzd2l0Y2godCl7Y2FzZSBWSS5kb3Q6bj1BW01vXShlLCExKTticmVhaztjYXNlIFZJLmRvdERvdDpuPUFbTW9dKGUsITApO2JyZWFrO2Nhc2UgVkkuZG90SGFzaDpuPUFbVW9dKGUpLG49bi5pc1hGQU9iamVjdEFycmF5P24uY2hpbGRyZW46W25dfWlmKDA9PT1uLmxlbmd0aClyZXR1cm4gQS5jcmVhdGVOb2RlcyhpLnNsaWNlKHMpKTtpZighKGE8bi5sZW5ndGgpKXJldHVybiBpW3NdLmluZGV4PWEtbi5sZW5ndGgsQS5jcmVhdGVOb2RlcyhpLnNsaWNlKHMpKTt7Y29uc3QgZT1uW2FdO2lmKCFlLmlzWEZBT2JqZWN0KXJldHVybiBVKCJYRkEgLSBDYW5ub3QgY3JlYXRlIGEgbm9kZS4iKSxudWxsO0E9ZX19cmV0dXJuIG51bGx9Y29uc3QgdGM9U3ltYm9sKCksaWM9U3ltYm9sKCksYWM9U3ltYm9sKCksc2M9U3ltYm9sKCJfY2hpbGRyZW4iKSxuYz1TeW1ib2woKSxyYz1TeW1ib2woKSxnYz1TeW1ib2woKSxvYz1TeW1ib2woKSxJYz1TeW1ib2woKSxjYz1TeW1ib2woKSxoYz1TeW1ib2woKSxDYz1TeW1ib2woKSxCYz1TeW1ib2woKSxsYz1TeW1ib2woInBhcmVudCIpLFFjPVN5bWJvbCgpLEVjPVN5bWJvbCgpLHVjPVN5bWJvbCgpO2xldCBkYz0wO2NvbnN0IGZjPUdJLmRhdGFzZXRzLmlkO2NsYXNzIHBje2NvbnN0cnVjdG9yKEEsZSx0PSExKXt0aGlzW3JJXT1BLHRoaXNbZ0ldPWUsdGhpc1toY109dCx0aGlzW2xjXT1udWxsLHRoaXNbc2NdPVtdLHRoaXNbU0ldPWAke2V9JHtkYysrfWAsdGhpc1tPb109bnVsbH1nZXQgaXNYRkFPYmplY3QoKXtyZXR1cm4hMH1nZXQgaXNYRkFPYmplY3RBcnJheSgpe3JldHVybiExfWNyZWF0ZU5vZGVzKEEpe2xldCBlPXRoaXMsdD1udWxsO2Zvcihjb25zdHtuYW1lOmksaW5kZXg6YX1vZiBBKXtmb3IobGV0IEE9MCxzPWlzRmluaXRlKGEpP2E6MDtBPD1zO0ErKyl7Y29uc3QgQT1lW3JJXT09PWZjPy0xOmVbckldO3Q9bmV3IHdjKEEsaSksZVtFb10odCl9ZT10fXJldHVybiB0fVtJSV0oQSl7aWYoIXRoaXNbaGNdfHwhdGhpc1tjSV0oQSkpcmV0dXJuITE7Y29uc3QgZT1BW2dJXSx0PXRoaXNbZV07aWYoISh0IGluc3RhbmNlb2YgbWMpKXJldHVybiBudWxsIT09dCYmdGhpc1tRSV0odCksdGhpc1tlXT1BLHRoaXNbRW9dKEEpLCEwO2lmKHQucHVzaChBKSlyZXR1cm4gdGhpc1tFb10oQSksITA7bGV0IGk9IiI7cmV0dXJuIHRoaXMuaWQ/aT1gIChpZDogJHt0aGlzLmlkfSlgOnRoaXMubmFtZSYmKGk9YCAobmFtZTogJHt0aGlzLm5hbWV9ICR7dGhpcy5oLnZhbHVlfSlgKSxVKGBYRkEgLSBub2RlICIke3RoaXNbZ0ldfSIke2l9IGhhcyBhbHJlYWR5IGVub3VnaCAiJHtlfSIhYCksITF9W2NJXShBKXtyZXR1cm4gdGhpcy5oYXNPd25Qcm9wZXJ0eShBW2dJXSkmJkFbckldPT09dGhpc1tySV19W2VJXSgpe3JldHVybiExfVtsb10oKXtyZXR1cm4hMX1bX29dKCl7cmV0dXJuITF9W3pvXSgpe3JldHVybiExfVtCSV0oKXt0aGlzLnBhcmEmJnRoaXNbV29dKClbRm9dLnBhcmFTdGFjay5wb3AoKX1bbEldKCl7dGhpc1tXb10oKVtGb10ucGFyYVN0YWNrLnB1c2godGhpcy5wYXJhKX1bZkldKEEpe3RoaXMuaWQmJnRoaXNbckldPT09R0kudGVtcGxhdGUuaWQmJkEuc2V0KHRoaXMuaWQsdGhpcyl9W1dvXSgpe3JldHVybiB0aGlzW09vXS50ZW1wbGF0ZX1bdEldKCl7cmV0dXJuITF9W2lJXSgpe3JldHVybiExfVtFb10oQSl7QVtsY109dGhpcyx0aGlzW3NjXS5wdXNoKEEpLCFBW09vXSYmdGhpc1tPb10mJihBW09vXT10aGlzW09vXSl9W1FJXShBKXtjb25zdCBlPXRoaXNbc2NdLmluZGV4T2YoQSk7dGhpc1tzY10uc3BsaWNlKGUsMSl9W1pvXSgpe3JldHVybiB0aGlzLmhhc093blByb3BlcnR5KCJ2YWx1ZSIpfVttSV0oQSl7fVtoSV0oQSl7fVtTb10oKXt9W2ZvXShBKXtkZWxldGUgdGhpc1toY10sdGhpc1ttb10mJihBLmNsZWFuKHRoaXNbbW9dKSxkZWxldGUgdGhpc1ttb10pfVtYb10oQSl7cmV0dXJuIHRoaXNbc2NdLmluZGV4T2YoQSl9W1ZvXShBLGUpe2VbbGNdPXRoaXMsdGhpc1tzY10uc3BsaWNlKEEsMCxlKSwhZVtPb10mJnRoaXNbT29dJiYoZVtPb109dGhpc1tPb10pfVthSV0oKXtyZXR1cm4hdGhpcy5uYW1lfVtuSV0oKXtyZXR1cm4iIn1bd0ldKCl7cmV0dXJuIDA9PT10aGlzW3NjXS5sZW5ndGg/dGhpc1tEb106dGhpc1tzY10ubWFwKChBPT5BW3dJXSgpKSkuam9pbigiIil9Z2V0W2FjXSgpe2NvbnN0IEE9T2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpO2lmKCFBLl9hdHRyaWJ1dGVzKXtjb25zdCBlPUEuX2F0dHJpYnV0ZXM9bmV3IFNldDtmb3IoY29uc3QgQSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKSl7aWYobnVsbD09PXRoaXNbQV18fHRoaXNbQV1pbnN0YW5jZW9mIHBjfHx0aGlzW0FdaW5zdGFuY2VvZiBtYylicmVhaztlLmFkZChBKX19cmV0dXJuIEgodGhpcyxhYyxBLl9hdHRyaWJ1dGVzKX1bQUldKEEpe2xldCBlPXRoaXM7Zm9yKDtlOyl7aWYoZT09PUEpcmV0dXJuITA7ZT1lW1BvXSgpfXJldHVybiExfVtQb10oKXtyZXR1cm4gdGhpc1tsY119W1RvXSgpe3JldHVybiB0aGlzW1BvXSgpfVt2b10oQT1udWxsKXtyZXR1cm4gQT90aGlzW0FdOnRoaXNbc2NdfVtrb10oKXtjb25zdCBBPU9iamVjdC5jcmVhdGUobnVsbCk7dGhpc1tEb10mJihBLiRjb250ZW50PXRoaXNbRG9dKTtmb3IoY29uc3QgZSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKSl7Y29uc3QgdD10aGlzW2VdO251bGwhPT10JiYodCBpbnN0YW5jZW9mIHBjP0FbZV09dFtrb10oKTp0IGluc3RhbmNlb2YgbWM/dC5pc0VtcHR5KCl8fChBW2VdPXQuZHVtcCgpKTpBW2VdPXQpfXJldHVybiBBfVtGSV0oKXtyZXR1cm4gbnVsbH1bYkldKCl7cmV0dXJuIHFJLkVNUFRZfSpbS29dKCl7Zm9yKGNvbnN0IEEgb2YgdGhpc1t2b10oKSl5aWVsZCBBfSpbb2NdKEEsZSl7Zm9yKGNvbnN0IHQgb2YgdGhpc1tLb10oKSlpZighQXx8ZT09PUEuaGFzKHRbZ0ldKSl7Y29uc3QgQT10aGlzW3hvXSgpLGU9dFtiSV0oQSk7ZS5zdWNjZXNzfHwodGhpc1tGb10uZmFpbGluZ05vZGU9dCkseWllbGQgZX19W1JvXSgpe3JldHVybiBudWxsfVtRb10oQSxlKXt0aGlzW0ZvXS5jaGlsZHJlbi5wdXNoKEEpfVt4b10oKXt9W3VvXSh7ZmlsdGVyOkE9bnVsbCxpbmNsdWRlOmU9ITB9KXtpZih0aGlzW0ZvXS5nZW5lcmF0b3Ipe2NvbnN0IEE9dGhpc1t4b10oKSxlPXRoaXNbRm9dLmZhaWxpbmdOb2RlW2JJXShBKTtpZighZS5zdWNjZXNzKXJldHVybiBlO2UuaHRtbCYmdGhpc1tRb10oZS5odG1sLGUuYmJveCksZGVsZXRlIHRoaXNbRm9dLmZhaWxpbmdOb2RlfWVsc2UgdGhpc1tGb10uZ2VuZXJhdG9yPXRoaXNbb2NdKEEsZSk7Zm9yKDs7KXtjb25zdCBBPXRoaXNbRm9dLmdlbmVyYXRvci5uZXh0KCk7aWYoQS5kb25lKWJyZWFrO2NvbnN0IGU9QS52YWx1ZTtpZighZS5zdWNjZXNzKXJldHVybiBlO2UuaHRtbCYmdGhpc1tRb10oZS5odG1sLGUuYmJveCl9cmV0dXJuIHRoaXNbRm9dLmdlbmVyYXRvcj1udWxsLHFJLkVNUFRZfVtwSV0oQSl7dGhpc1tFY109bmV3IFNldChPYmplY3Qua2V5cyhBKSl9W2NjXShBKXtjb25zdCBlPXRoaXNbYWNdLHQ9dGhpc1tFY107cmV0dXJuWy4uLkFdLmZpbHRlcigoQT0+ZS5oYXMoQSkmJiF0LmhhcyhBKSkpfVt1SV0oQSxlPW5ldyBTZXQpe2Zvcihjb25zdCB0IG9mIHRoaXNbc2NdKXRbUWNdKEEsZSl9W1FjXShBLGUpe2NvbnN0IHQ9dGhpc1tJY10oQSxlKTt0P3RoaXNbdGNdKHQsQSxlKTp0aGlzW3VJXShBLGUpfVtJY10oQSxlKXtjb25zdHt1c2U6dCx1c2VocmVmOml9PXRoaXM7aWYoIXQmJiFpKXJldHVybiBudWxsO2xldCBhPW51bGwscz1udWxsLG49bnVsbCxyPXQ7aWYoaT8ocj1pLGkuc3RhcnRzV2l0aCgiI3NvbSgiKSYmaS5lbmRzV2l0aCgiKSIpP3M9aS5zbGljZSg1LC0xKTppLnN0YXJ0c1dpdGgoIi4jc29tKCIpJiZpLmVuZHNXaXRoKCIpIik/cz1pLnNsaWNlKDYsLTEpOmkuc3RhcnRzV2l0aCgiIyIpP249aS5zbGljZSgxKTppLnN0YXJ0c1dpdGgoIi4jIikmJihuPWkuc2xpY2UoMikpKTp0LnN0YXJ0c1dpdGgoIiMiKT9uPXQuc2xpY2UoMSk6cz10LHRoaXMudXNlPXRoaXMudXNlaHJlZj0iIixuP2E9QS5nZXQobik6KGE9QWMoQS5nZXQoRUkpLHRoaXMscywhMCwhMSksYSYmKGE9YVswXSkpLCFhKXJldHVybiBVKGBYRkEgLSBJbnZhbGlkIHByb3RvdHlwZSByZWZlcmVuY2U6ICR7cn0uYCksbnVsbDtpZihhW2dJXSE9PXRoaXNbZ0ldKXJldHVybiBVKGBYRkEgLSBJbmNvbXBhdGlibGUgcHJvdG90eXBlOiAke2FbZ0ldfSAhPT0gJHt0aGlzW2dJXX0uYCksbnVsbDtpZihlLmhhcyhhKSlyZXR1cm4gVSgiWEZBIC0gQ3ljbGUgZGV0ZWN0ZWQgaW4gcHJvdG90eXBlcyB1c2UuIiksbnVsbDtlLmFkZChhKTtjb25zdCBnPWFbSWNdKEEsZSk7cmV0dXJuIGcmJmFbdGNdKGcsQSxlKSxhW3VJXShBLGUpLGUuZGVsZXRlKGEpLGF9W3RjXShBLGUsdCl7aWYodC5oYXMoQSkpVSgiWEZBIC0gQ3ljbGUgZGV0ZWN0ZWQgaW4gcHJvdG90eXBlcyB1c2UuIik7ZWxzZXshdGhpc1tEb10mJkFbRG9dJiYodGhpc1tEb109QVtEb10pLG5ldyBTZXQodCkuYWRkKEEpO2Zvcihjb25zdCBlIG9mIHRoaXNbY2NdKEFbRWNdKSl0aGlzW2VdPUFbZV0sdGhpc1tFY10mJnRoaXNbRWNdLmFkZChlKTtmb3IoY29uc3QgaSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKSl7aWYodGhpc1thY10uaGFzKGkpKWNvbnRpbnVlO2NvbnN0IGE9dGhpc1tpXSxzPUFbaV07aWYoYSBpbnN0YW5jZW9mIG1jKXtmb3IoY29uc3QgQSBvZiBhW3NjXSlBW1FjXShlLHQpO2ZvcihsZXQgaT1hW3NjXS5sZW5ndGgsbj1zW3NjXS5sZW5ndGg7aTxuO2krKyl7Y29uc3Qgcz1BW3NjXVtpXVt5b10oKTtpZighYS5wdXNoKHMpKWJyZWFrO3NbbGNdPXRoaXMsdGhpc1tzY10ucHVzaChzKSxzW1FjXShlLHQpfX1lbHNlIGlmKG51bGw9PT1hKXtpZihudWxsIT09cyl7Y29uc3QgQT1zW3lvXSgpO0FbbGNdPXRoaXMsdGhpc1tpXT1BLHRoaXNbc2NdLnB1c2goQSksQVtRY10oZSx0KX19ZWxzZSBhW3VJXShlLHQpLHMmJmFbdGNdKHMsZSx0KX19fXN0YXRpY1tuY10oQSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoQSk/QS5tYXAoKEE9PnBjW25jXShBKSkpOiJvYmplY3QiPT10eXBlb2YgQSYmbnVsbCE9PUE/T2JqZWN0LmFzc2lnbih7fSxBKTpBfVt5b10oKXtjb25zdCBBPU9iamVjdC5jcmVhdGUoT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpKTtmb3IoY29uc3QgZSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHRoaXMpKXRyeXtBW2VdPXRoaXNbZV19Y2F0Y2h7SChBLGUsdGhpc1tlXSl9QVtTSV09YCR7QVtnSV19JHtkYysrfWAsQVtzY109W107Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpe2lmKHRoaXNbYWNdLmhhcyhlKSl7QVtlXT1wY1tuY10odGhpc1tlXSk7Y29udGludWV9Y29uc3QgdD10aGlzW2VdO0FbZV09dCBpbnN0YW5jZW9mIG1jP25ldyBtYyh0W0NjXSk6bnVsbH1mb3IoY29uc3QgZSBvZiB0aGlzW3NjXSl7Y29uc3QgdD1lW2dJXSxpPWVbeW9dKCk7QVtzY10ucHVzaChpKSxpW2xjXT1BLG51bGw9PT1BW3RdP0FbdF09aTpBW3RdW3NjXS5wdXNoKGkpfXJldHVybiBBfVt2b10oQT1udWxsKXtyZXR1cm4gQT90aGlzW3NjXS5maWx0ZXIoKGU9PmVbZ0ldPT09QSkpOnRoaXNbc2NdfVtVb10oQSl7cmV0dXJuIHRoaXNbQV19W01vXShBLGUsdD0hMCl7cmV0dXJuIEFycmF5LmZyb20odGhpc1tMb10oQSxlLHQpKX0qW0xvXShBLGUsdD0hMCl7aWYoInBhcmVudCIhPT1BKXtmb3IoY29uc3QgdCBvZiB0aGlzW3NjXSl0W2dJXT09PUEmJih5aWVsZCB0KSx0Lm5hbWU9PT1BJiYoeWllbGQgdCksKGV8fHRbYUldKCkpJiYoeWllbGQqdFtMb10oQSxlLCExKSk7dCYmdGhpc1thY10uaGFzKEEpJiYoeWllbGQgbmV3IHljKHRoaXMsQSx0aGlzW0FdKSl9ZWxzZSB5aWVsZCB0aGlzW2xjXX19Y2xhc3MgbWN7Y29uc3RydWN0b3IoQT0xLzApe3RoaXNbQ2NdPUEsdGhpc1tzY109W119Z2V0IGlzWEZBT2JqZWN0KCl7cmV0dXJuITF9Z2V0IGlzWEZBT2JqZWN0QXJyYXkoKXtyZXR1cm4hMH1wdXNoKEEpe3JldHVybiB0aGlzW3NjXS5sZW5ndGg8PXRoaXNbQ2NdPyh0aGlzW3NjXS5wdXNoKEEpLCEwKTooVShgWEZBIC0gbm9kZSAiJHtBW2dJXX0iIGFjY2VwdHMgbm8gbW9yZSB0aGFuICR7dGhpc1tDY119IGNoaWxkcmVuYCksITEpfWlzRW1wdHkoKXtyZXR1cm4gMD09PXRoaXNbc2NdLmxlbmd0aH1kdW1wKCl7cmV0dXJuIDE9PT10aGlzW3NjXS5sZW5ndGg/dGhpc1tzY11bMF1ba29dKCk6dGhpc1tzY10ubWFwKChBPT5BW2tvXSgpKSl9W3lvXSgpe2NvbnN0IEE9bmV3IG1jKHRoaXNbQ2NdKTtyZXR1cm4gQVtzY109dGhpc1tzY10ubWFwKChBPT5BW3lvXSgpKSksQX1nZXQgY2hpbGRyZW4oKXtyZXR1cm4gdGhpc1tzY119Y2xlYXIoKXt0aGlzW3NjXS5sZW5ndGg9MH19Y2xhc3MgeWN7Y29uc3RydWN0b3IoQSxlLHQpe3RoaXNbbGNdPUEsdGhpc1tnSV09ZSx0aGlzW0RvXT10LHRoaXNbd29dPSExLHRoaXNbU0ldPSJhdHRyaWJ1dGUiK2RjKyt9W1BvXSgpe3JldHVybiB0aGlzW2xjXX1bJG9dKCl7cmV0dXJuITB9W0pvXSgpe3JldHVybiB0aGlzW0RvXS50cmltKCl9W21JXShBKXtBPUEudmFsdWV8fCIiLHRoaXNbRG9dPUEudG9TdHJpbmcoKX1bd0ldKCl7cmV0dXJuIHRoaXNbRG9dfVtBSV0oQSl7cmV0dXJuIHRoaXNbbGNdPT09QXx8dGhpc1tsY11bQUldKEEpfX1jbGFzcyB3YyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEsZSx0PXt9KXtpZihzdXBlcihBLGUpLHRoaXNbRG9dPSIiLHRoaXNbcmNdPW51bGwsIiN0ZXh0IiE9PWUpe2NvbnN0IEE9bmV3IE1hcDt0aGlzW2ljXT1BO2Zvcihjb25zdFtlLGldb2YgT2JqZWN0LmVudHJpZXModCkpQS5zZXQoZSxuZXcgeWModGhpcyxlLGkpKTtpZih0Lmhhc093blByb3BlcnR5KG9JKSl7Y29uc3QgQT10W29JXS54ZmEuZGF0YU5vZGU7dm9pZCAwIT09QSYmKCJkYXRhR3JvdXAiPT09QT90aGlzW3JjXT0hMToiZGF0YVZhbHVlIj09PUEmJih0aGlzW3JjXT0hMCkpfX10aGlzW3dvXT0hMX1ba0ldKEEpe2NvbnN0IGU9dGhpc1tnSV07aWYoIiN0ZXh0Ij09PWUpcmV0dXJuIHZvaWQgQS5wdXNoKF9BKHRoaXNbRG9dKSk7Y29uc3QgdD1pQShlKSxpPXRoaXNbckldPT09ZmM/InhmYToiOiIiO0EucHVzaChgPCR7aX0ke3R9YCk7Zm9yKGNvbnN0W2UsdF1vZiB0aGlzW2ljXS5lbnRyaWVzKCkpe2NvbnN0IGk9aUEoZSk7QS5wdXNoKGAgJHtpfT0iJHtfQSh0W0RvXSl9ImApfWlmKG51bGwhPT10aGlzW3JjXSYmKHRoaXNbcmNdP0EucHVzaCgnIHhmYTpkYXRhTm9kZT0iZGF0YVZhbHVlIicpOkEucHVzaCgnIHhmYTpkYXRhTm9kZT0iZGF0YUdyb3VwIicpKSx0aGlzW0RvXXx8MCE9PXRoaXNbc2NdLmxlbmd0aCl7aWYoQS5wdXNoKCI+IiksdGhpc1tEb10pInN0cmluZyI9PXR5cGVvZiB0aGlzW0RvXT9BLnB1c2goX0EodGhpc1tEb10pKTp0aGlzW0RvXVtrSV0oQSk7ZWxzZSBmb3IoY29uc3QgZSBvZiB0aGlzW3NjXSllW2tJXShBKTtBLnB1c2goYDwvJHtpfSR7dH0+YCl9ZWxzZSBBLnB1c2goIi8+Iil9W0lJXShBKXtpZih0aGlzW0RvXSl7Y29uc3QgQT1uZXcgd2ModGhpc1tySV0sIiN0ZXh0Iik7dGhpc1tFb10oQSksQVtEb109dGhpc1tEb10sdGhpc1tEb109IiJ9cmV0dXJuIHRoaXNbRW9dKEEpLCEwfVtoSV0oQSl7dGhpc1tEb10rPUF9W1NvXSgpe2lmKHRoaXNbRG9dJiZ0aGlzW3NjXS5sZW5ndGg+MCl7Y29uc3QgQT1uZXcgd2ModGhpc1tySV0sIiN0ZXh0Iik7dGhpc1tFb10oQSksQVtEb109dGhpc1tEb10sZGVsZXRlIHRoaXNbRG9dfX1bYkldKCl7cmV0dXJuIiN0ZXh0Ij09PXRoaXNbZ0ldP3FJLnN1Y2Nlc3Moe25hbWU6IiN0ZXh0Iix2YWx1ZTp0aGlzW0RvXX0pOnFJLkVNUFRZfVt2b10oQT1udWxsKXtyZXR1cm4gQT90aGlzW3NjXS5maWx0ZXIoKGU9PmVbZ0ldPT09QSkpOnRoaXNbc2NdfVtOb10oKXtyZXR1cm4gdGhpc1tpY119W1VvXShBKXtjb25zdCBlPXRoaXNbaWNdLmdldChBKTtyZXR1cm4gdm9pZCAwIT09ZT9lOnRoaXNbdm9dKEEpfSpbTG9dKEEsZSl7Y29uc3QgdD10aGlzW2ljXS5nZXQoQSk7dCYmKHlpZWxkIHQpO2Zvcihjb25zdCB0IG9mIHRoaXNbc2NdKXRbZ0ldPT09QSYmKHlpZWxkIHQpLGUmJih5aWVsZCp0W0xvXShBLGUpKX0qW0dvXShBLGUpe2NvbnN0IHQ9dGhpc1tpY10uZ2V0KEEpOyF0fHxlJiZ0W3dvXXx8KHlpZWxkIHQpO2Zvcihjb25zdCB0IG9mIHRoaXNbc2NdKXlpZWxkKnRbR29dKEEsZSl9KltZb10oQSxlLHQpe2Zvcihjb25zdCBpIG9mIHRoaXNbc2NdKWlbZ0ldIT09QXx8dCYmaVt3b118fCh5aWVsZCBpKSxlJiYoeWllbGQqaVtZb10oQSxlLHQpKX1bJG9dKCl7cmV0dXJuIG51bGw9PT10aGlzW3JjXT8wPT09dGhpc1tzY10ubGVuZ3RofHx0aGlzW3NjXVswXVtySV09PT1HSS54aHRtbC5pZDp0aGlzW3JjXX1bSm9dKCl7cmV0dXJuIG51bGw9PT10aGlzW3JjXT8wPT09dGhpc1tzY10ubGVuZ3RoP3RoaXNbRG9dLnRyaW0oKTp0aGlzW3NjXVswXVtySV09PT1HSS54aHRtbC5pZD90aGlzW3NjXVswXVt3SV0oKS50cmltKCk6bnVsbDp0aGlzW0RvXS50cmltKCl9W21JXShBKXtBPUEudmFsdWV8fCIiLHRoaXNbRG9dPUEudG9TdHJpbmcoKX1ba29dKEE9ITEpe2NvbnN0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtBJiYoZS4kbnM9dGhpc1tySV0pLHRoaXNbRG9dJiYoZS4kY29udGVudD10aGlzW0RvXSksZS4kbmFtZT10aGlzW2dJXSxlLmNoaWxkcmVuPVtdO2Zvcihjb25zdCB0IG9mIHRoaXNbc2NdKWUuY2hpbGRyZW4ucHVzaCh0W2tvXShBKSk7ZS5hdHRyaWJ1dGVzPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGNvbnN0W0EsdF1vZiB0aGlzW2ljXSllLmF0dHJpYnV0ZXNbQV09dFtEb107cmV0dXJuIGV9fWNsYXNzIERjIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSxlKXtzdXBlcihBLGUpLHRoaXNbRG9dPSIifVtoSV0oQSl7dGhpc1tEb10rPUF9W1NvXSgpe319Y2xhc3MgYmMgZXh0ZW5kcyBEY3tjb25zdHJ1Y3RvcihBLGUsdCl7c3VwZXIoQSxlKSx0aGlzW0JjXT10fVtTb10oKXt0aGlzW0RvXT1KSSh7ZGF0YTp0aGlzW0RvXSxkZWZhdWx0VmFsdWU6dGhpc1tCY11bMF0sdmFsaWRhdGU6QT0+dGhpc1tCY10uaW5jbHVkZXMoQSl9KX1bZm9dKEEpe3N1cGVyW2ZvXShBKSxkZWxldGUgdGhpc1tCY119fWNsYXNzIGtjIGV4dGVuZHMgRGN7W1NvXSgpe3RoaXNbRG9dPXRoaXNbRG9dLnRyaW0oKX19Y2xhc3MgRmMgZXh0ZW5kcyBEY3tjb25zdHJ1Y3RvcihBLGUsdCxpKXtzdXBlcihBLGUpLHRoaXNbZ2NdPXQsdGhpc1t1Y109aX1bU29dKCl7dGhpc1tEb109TUkoe2RhdGE6dGhpc1tEb10sZGVmYXVsdFZhbHVlOnRoaXNbZ2NdLHZhbGlkYXRlOnRoaXNbdWNdfSl9W2ZvXShBKXtzdXBlcltmb10oQSksZGVsZXRlIHRoaXNbZ2NdLGRlbGV0ZSB0aGlzW3VjXX19Y2xhc3MgU2MgZXh0ZW5kcyBGY3tjb25zdHJ1Y3RvcihBLGUpe3N1cGVyKEEsZSwwLChBPT4xPT09QSkpfX1jbGFzcyBSYyBleHRlbmRzIEZje2NvbnN0cnVjdG9yKEEsZSl7c3VwZXIoQSxlLDEsKEE9PjA9PT1BKSl9fWZ1bmN0aW9uIEdjKEEpe3JldHVybiJzdHJpbmciPT10eXBlb2YgQT8iMHB4IjpOdW1iZXIuaXNJbnRlZ2VyKEEpP2Ake0F9cHhgOmAke0EudG9GaXhlZCgyKX1weGB9Y29uc3QgTmM9e2FuY2hvclR5cGUoQSxlKXtjb25zdCB0PUFbVG9dKCk7aWYodCYmKCF0LmxheW91dHx8InBvc2l0aW9uIj09PXQubGF5b3V0KSlzd2l0Y2goInRyYW5zZm9ybSJpbiBlfHwoZS50cmFuc2Zvcm09IiIpLEEuYW5jaG9yVHlwZSl7Y2FzZSJib3R0b21DZW50ZXIiOmUudHJhbnNmb3JtKz0idHJhbnNsYXRlKC01MCUsIC0xMDAlKSI7YnJlYWs7Y2FzZSJib3R0b21MZWZ0IjplLnRyYW5zZm9ybSs9InRyYW5zbGF0ZSgwLC0xMDAlKSI7YnJlYWs7Y2FzZSJib3R0b21SaWdodCI6ZS50cmFuc2Zvcm0rPSJ0cmFuc2xhdGUoLTEwMCUsLTEwMCUpIjticmVhaztjYXNlIm1pZGRsZUNlbnRlciI6ZS50cmFuc2Zvcm0rPSJ0cmFuc2xhdGUoLTUwJSwtNTAlKSI7YnJlYWs7Y2FzZSJtaWRkbGVMZWZ0IjplLnRyYW5zZm9ybSs9InRyYW5zbGF0ZSgwLC01MCUpIjticmVhaztjYXNlIm1pZGRsZVJpZ2h0IjplLnRyYW5zZm9ybSs9InRyYW5zbGF0ZSgtMTAwJSwtNTAlKSI7YnJlYWs7Y2FzZSJ0b3BDZW50ZXIiOmUudHJhbnNmb3JtKz0idHJhbnNsYXRlKC01MCUsMCkiO2JyZWFrO2Nhc2UidG9wUmlnaHQiOmUudHJhbnNmb3JtKz0idHJhbnNsYXRlKC0xMDAlLDApIn19LGRpbWVuc2lvbnMoQSxlKXtjb25zdCB0PUFbVG9dKCk7bGV0IGk9QS53O2NvbnN0IGE9QS5oO2lmKHQubGF5b3V0Py5pbmNsdWRlcygicm93Iikpe2NvbnN0IGU9dFtGb10sYT1BLmNvbFNwYW47bGV0IHM7LTE9PT1hPyhzPWUuY29sdW1uV2lkdGhzLnNsaWNlKGUuY3VycmVudENvbHVtbikucmVkdWNlKCgoQSxlKT0+QStlKSwwKSxlLmN1cnJlbnRDb2x1bW49MCk6KHM9ZS5jb2x1bW5XaWR0aHMuc2xpY2UoZS5jdXJyZW50Q29sdW1uLGUuY3VycmVudENvbHVtbithKS5yZWR1Y2UoKChBLGUpPT5BK2UpLDApLGUuY3VycmVudENvbHVtbj0oZS5jdXJyZW50Q29sdW1uK0EuY29sU3BhbiklZS5jb2x1bW5XaWR0aHMubGVuZ3RoKSxpc05hTihzKXx8KGk9QS53PXMpfWUud2lkdGg9IiIhPT1pP0djKGkpOiJhdXRvIixlLmhlaWdodD0iIiE9PWE/R2MoYSk6ImF1dG8ifSxwb3NpdGlvbihBLGUpe2NvbnN0IHQ9QVtUb10oKTt0Py5sYXlvdXQmJiJwb3NpdGlvbiIhPT10LmxheW91dHx8KGUucG9zaXRpb249ImFic29sdXRlIixlLmxlZnQ9R2MoQS54KSxlLnRvcD1HYyhBLnkpKX0scm90YXRlKEEsZSl7QS5yb3RhdGUmJigidHJhbnNmb3JtImluIGV8fChlLnRyYW5zZm9ybT0iIiksZS50cmFuc2Zvcm0rPWByb3RhdGUoLSR7QS5yb3RhdGV9ZGVnKWAsZS50cmFuc2Zvcm1PcmlnaW49InRvcCBsZWZ0Iil9LHByZXNlbmNlKEEsZSl7c3dpdGNoKEEucHJlc2VuY2Upe2Nhc2UiaW52aXNpYmxlIjplLnZpc2liaWxpdHk9ImhpZGRlbiI7YnJlYWs7Y2FzZSJoaWRkZW4iOmNhc2UiaW5hY3RpdmUiOmUuZGlzcGxheT0ibm9uZSJ9fSxoQWxpZ24oQSxlKXtpZigicGFyYSI9PT1BW2dJXSlzd2l0Y2goQS5oQWxpZ24pe2Nhc2UianVzdGlmeUFsbCI6ZS50ZXh0QWxpZ249Imp1c3RpZnktYWxsIjticmVhaztjYXNlInJhZGl4IjplLnRleHRBbGlnbj0ibGVmdCI7YnJlYWs7ZGVmYXVsdDplLnRleHRBbGlnbj1BLmhBbGlnbn1lbHNlIHN3aXRjaChBLmhBbGlnbil7Y2FzZSJsZWZ0IjplLmFsaWduU2VsZj0ic3RhcnQiO2JyZWFrO2Nhc2UiY2VudGVyIjplLmFsaWduU2VsZj0iY2VudGVyIjticmVhaztjYXNlInJpZ2h0IjplLmFsaWduU2VsZj0iZW5kIn19LG1hcmdpbihBLGUpe0EubWFyZ2luJiYoZS5tYXJnaW49QS5tYXJnaW5bRkldKCkubWFyZ2luKX19O2Z1bmN0aW9uIHhjKEEsZSl7InBvc2l0aW9uIj09PUFbVG9dKCkubGF5b3V0JiYoQS5taW5XPjAmJihlLm1pbldpZHRoPUdjKEEubWluVykpLEEubWF4Vz4wJiYoZS5tYXhXaWR0aD1HYyhBLm1heFcpKSxBLm1pbkg+MCYmKGUubWluSGVpZ2h0PUdjKEEubWluSCkpLEEubWF4SD4wJiYoZS5tYXhIZWlnaHQ9R2MoQS5tYXhIKSkpfWZ1bmN0aW9uIFVjKEEsZSx0LGksYSxzKXtjb25zdCBuPW5ldyBaSShlLHQsaSxhKTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIEE/bi5hZGRTdHJpbmcoQSk6QVtDSV0obiksbi5jb21wdXRlKHMpfWZ1bmN0aW9uIE1jKEEsZSl7bGV0IHQ9bnVsbCxpPW51bGwsYT0hMTtpZigoIUEud3x8IUEuaCkmJkEudmFsdWUpe2xldCBzPTAsbj0wO0EubWFyZ2luJiYocz1BLm1hcmdpbi5sZWZ0SW5zZXQrQS5tYXJnaW4ucmlnaHRJbnNldCxuPUEubWFyZ2luLnRvcEluc2V0K0EubWFyZ2luLmJvdHRvbUluc2V0KTtsZXQgcj1udWxsLGc9bnVsbDtBLnBhcmEmJihnPU9iamVjdC5jcmVhdGUobnVsbCkscj0iIj09PUEucGFyYS5saW5lSGVpZ2h0P251bGw6QS5wYXJhLmxpbmVIZWlnaHQsZy50b3A9IiI9PT1BLnBhcmEuc3BhY2VBYm92ZT8wOkEucGFyYS5zcGFjZUFib3ZlLGcuYm90dG9tPSIiPT09QS5wYXJhLnNwYWNlQmVsb3c/MDpBLnBhcmEuc3BhY2VCZWxvdyxnLmxlZnQ9IiI9PT1BLnBhcmEubWFyZ2luTGVmdD8wOkEucGFyYS5tYXJnaW5MZWZ0LGcucmlnaHQ9IiI9PT1BLnBhcmEubWFyZ2luUmlnaHQ/MDpBLnBhcmEubWFyZ2luUmlnaHQpO2xldCBvPUEuZm9udDtpZighbyl7Y29uc3QgZT1BW1dvXSgpO2xldCB0PUFbUG9dKCk7Zm9yKDt0JiZ0IT09ZTspe2lmKHQuZm9udCl7bz10LmZvbnQ7YnJlYWt9dD10W1BvXSgpfX1jb25zdCBJPShBLnd8fGUud2lkdGgpLXMsYz1BW09vXS5mb250RmluZGVyO2lmKEEudmFsdWUuZXhEYXRhJiZBLnZhbHVlLmV4RGF0YVtEb10mJiJ0ZXh0L2h0bWwiPT09QS52YWx1ZS5leERhdGEuY29udGVudFR5cGUpe2NvbnN0IGU9VWMoQS52YWx1ZS5leERhdGFbRG9dLG8sZyxyLGMsSSk7aT1lLndpZHRoLHQ9ZS5oZWlnaHQsYT1lLmlzQnJva2VufWVsc2V7Y29uc3QgZT1BLnZhbHVlW3dJXSgpO2lmKGUpe2NvbnN0IEE9VWMoZSxvLGcscixjLEkpO2k9QS53aWR0aCx0PUEuaGVpZ2h0LGE9QS5pc0Jyb2tlbn19bnVsbD09PWl8fEEud3x8KGkrPXMpLG51bGw9PT10fHxBLmh8fCh0Kz1uKX1yZXR1cm57dzppLGg6dCxpc0Jyb2tlbjphfX1mdW5jdGlvbiBMYyhBLGUsdCl7bGV0IGk7aWYoIiIhPT1BLncmJiIiIT09QS5oKWk9W0EueCxBLnksQS53LEEuaF07ZWxzZXtpZighdClyZXR1cm4gbnVsbDtsZXQgYT1BLnc7aWYoIiI9PT1hKXtpZigwPT09QS5tYXhXKXtjb25zdCBlPUFbVG9dKCk7YT0icG9zaXRpb24iPT09ZS5sYXlvdXQmJiIiIT09ZS53PzA6QS5taW5XfWVsc2UgYT1NYXRoLm1pbihBLm1heFcsdC53aWR0aCk7ZS5hdHRyaWJ1dGVzLnN0eWxlLndpZHRoPUdjKGEpfWxldCBzPUEuaDtpZigiIj09PXMpe2lmKDA9PT1BLm1heEgpe2NvbnN0IGU9QVtUb10oKTtzPSJwb3NpdGlvbiI9PT1lLmxheW91dCYmIiIhPT1lLmg/MDpBLm1pbkh9ZWxzZSBzPU1hdGgubWluKEEubWF4SCx0LmhlaWdodCk7ZS5hdHRyaWJ1dGVzLnN0eWxlLmhlaWdodD1HYyhzKX1pPVtBLngsQS55LGEsc119cmV0dXJuIGl9ZnVuY3Rpb24gSmMoQSl7Y29uc3QgZT1BW1RvXSgpO2lmKGUubGF5b3V0Py5pbmNsdWRlcygicm93Iikpe2NvbnN0IHQ9ZVtGb10saT1BLmNvbFNwYW47bGV0IGE7YT0tMT09PWk/dC5jb2x1bW5XaWR0aHMuc2xpY2UodC5jdXJyZW50Q29sdW1uKS5yZWR1Y2UoKChBLGUpPT5BK2UpLDApOnQuY29sdW1uV2lkdGhzLnNsaWNlKHQuY3VycmVudENvbHVtbix0LmN1cnJlbnRDb2x1bW4raSkucmVkdWNlKCgoQSxlKT0+QStlKSwwKSxpc05hTihhKXx8KEEudz1hKX1lLmxheW91dCYmInBvc2l0aW9uIiE9PWUubGF5b3V0JiYoQS54PUEueT0wKSwidGFibGUiPT09QS5sYXlvdXQmJiIiPT09QS53JiZBcnJheS5pc0FycmF5KEEuY29sdW1uV2lkdGhzKSYmKEEudz1BLmNvbHVtbldpZHRocy5yZWR1Y2UoKChBLGUpPT5BK2UpLDApKX1mdW5jdGlvbiBIYyhBKXtzd2l0Y2goQS5sYXlvdXQpe2Nhc2UicG9zaXRpb24iOmRlZmF1bHQ6cmV0dXJuInhmYVBvc2l0aW9uIjtjYXNlImxyLXRiIjpyZXR1cm4ieGZhTHJUYiI7Y2FzZSJybC1yb3ciOnJldHVybiJ4ZmFSbFJvdyI7Y2FzZSJybC10YiI6cmV0dXJuInhmYVJsVGIiO2Nhc2Uicm93IjpyZXR1cm4ieGZhUm93IjtjYXNlInRhYmxlIjpyZXR1cm4ieGZhVGFibGUiO2Nhc2UidGIiOnJldHVybiJ4ZmFUYiJ9fWZ1bmN0aW9uIFljKEEsLi4uZSl7Y29uc3QgdD1PYmplY3QuY3JlYXRlKG51bGwpO2Zvcihjb25zdCBpIG9mIGUpe2NvbnN0IGU9QVtpXTtpZihudWxsIT09ZSlpZihOYy5oYXNPd25Qcm9wZXJ0eShpKSlOY1tpXShBLHQpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIHBjKXtjb25zdCBBPWVbRkldKCk7QT9PYmplY3QuYXNzaWduKHQsQSk6VShgKERFQlVHKSAtIFhGQSAtIHN0eWxlIGZvciAke2l9IG5vdCBpbXBsZW1lbnRlZCB5ZXRgKX19cmV0dXJuIHR9ZnVuY3Rpb24gdmMoQSxlKXtjb25zdHthdHRyaWJ1dGVzOnR9PWUse3N0eWxlOml9PXQsYT17bmFtZToiZGl2IixhdHRyaWJ1dGVzOntjbGFzczpbInhmYVdyYXBwZXIiXSxzdHlsZTpPYmplY3QuY3JlYXRlKG51bGwpfSxjaGlsZHJlbjpbXX07aWYodC5jbGFzcy5wdXNoKCJ4ZmFXcmFwcGVkIiksQS5ib3JkZXIpe2NvbnN0e3dpZHRoczp0LGluc2V0czpzfT1BLmJvcmRlcltGb107bGV0IG4scixnPXNbMF0sbz1zWzNdO2NvbnN0IEk9c1swXStzWzJdLGM9c1sxXStzWzNdO3N3aXRjaChBLmJvcmRlci5oYW5kKXtjYXNlImV2ZW4iOmctPXRbMF0vMixvLT10WzNdLzIsbj1gY2FsYygxMDAlICsgJHsodFsxXSt0WzNdKS8yLWN9cHgpYCxyPWBjYWxjKDEwMCUgKyAkeyh0WzBdK3RbMl0pLzItSX1weClgO2JyZWFrO2Nhc2UibGVmdCI6Zy09dFswXSxvLT10WzNdLG49YGNhbGMoMTAwJSArICR7dFsxXSt0WzNdLWN9cHgpYCxyPWBjYWxjKDEwMCUgKyAke3RbMF0rdFsyXS1JfXB4KWA7YnJlYWs7Y2FzZSJyaWdodCI6bj1jP2BjYWxjKDEwMCUgLSAke2N9cHgpYDoiMTAwJSIscj1JP2BjYWxjKDEwMCUgLSAke0l9cHgpYDoiMTAwJSJ9Y29uc3QgaD1bInhmYUJvcmRlciJdO1RjKEEuYm9yZGVyKSYmaC5wdXNoKCJ4ZmFQcmludE9ubHkiKTtjb25zdCBDPXtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6e2NsYXNzOmgsc3R5bGU6e3RvcDpgJHtnfXB4YCxsZWZ0OmAke299cHhgLHdpZHRoOm4saGVpZ2h0OnJ9fSxjaGlsZHJlbjpbXX07Zm9yKGNvbnN0IEEgb2ZbImJvcmRlciIsImJvcmRlcldpZHRoIiwiYm9yZGVyQ29sb3IiLCJib3JkZXJSYWRpdXMiLCJib3JkZXJTdHlsZSJdKXZvaWQgMCE9PWlbQV0mJihDLmF0dHJpYnV0ZXMuc3R5bGVbQV09aVtBXSxkZWxldGUgaVtBXSk7YS5jaGlsZHJlbi5wdXNoKEMsZSl9ZWxzZSBhLmNoaWxkcmVuLnB1c2goZSk7Zm9yKGNvbnN0IEEgb2ZbImJhY2tncm91bmQiLCJiYWNrZ3JvdW5kQ2xpcCIsInRvcCIsImxlZnQiLCJ3aWR0aCIsImhlaWdodCIsIm1pbldpZHRoIiwibWluSGVpZ2h0IiwibWF4V2lkdGgiLCJtYXhIZWlnaHQiLCJ0cmFuc2Zvcm0iLCJ0cmFuc2Zvcm1PcmlnaW4iLCJ2aXNpYmlsaXR5Il0pdm9pZCAwIT09aVtBXSYmKGEuYXR0cmlidXRlcy5zdHlsZVtBXT1pW0FdLGRlbGV0ZSBpW0FdKTtyZXR1cm4gYS5hdHRyaWJ1dGVzLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI9PT1pLnBvc2l0aW9uPyJhYnNvbHV0ZSI6InJlbGF0aXZlIixkZWxldGUgaS5wb3NpdGlvbixpLmFsaWduU2VsZiYmKGEuYXR0cmlidXRlcy5zdHlsZS5hbGlnblNlbGY9aS5hbGlnblNlbGYsZGVsZXRlIGkuYWxpZ25TZWxmKSxhfWZ1bmN0aW9uIEtjKEEpe2NvbnN0IGU9WUkoQS50ZXh0SW5kZW50LCIwcHgiKTtpZihlPj0wKXJldHVybjtjb25zdCB0PSJwYWRkaW5nIisoImxlZnQiPT0oInJpZ2h0Ij09PUEudGV4dEFsaWduPyJyaWdodCI6ImxlZnQiKT8iTGVmdCI6IlJpZ2h0IiksaT1ZSShBW3RdLCIwcHgiKTtBW3RdPWktZSsicHgifWZ1bmN0aW9uIHFjKEEsZSl7c3dpdGNoKEEuYWNjZXNzKXtjYXNlIm5vbkludGVyYWN0aXZlIjplLnB1c2goInhmYU5vbkludGVyYWN0aXZlIik7YnJlYWs7Y2FzZSJyZWFkT25seSI6ZS5wdXNoKCJ4ZmFSZWFkT25seSIpO2JyZWFrO2Nhc2UicHJvdGVjdGVkIjplLnB1c2goInhmYURpc2FibGVkIil9fWZ1bmN0aW9uIFRjKEEpe3JldHVybiBBLnJlbGV2YW50Lmxlbmd0aD4wJiYhQS5yZWxldmFudFswXS5leGNsdWRlZCYmInByaW50Ij09PUEucmVsZXZhbnRbMF0udmlld25hbWV9ZnVuY3Rpb24gUGMoQSl7Y29uc3QgZT1BW1dvXSgpW0ZvXS5wYXJhU3RhY2s7cmV0dXJuIGUubGVuZ3RoP2UuYXQoLTEpOm51bGx9ZnVuY3Rpb24gV2MoQSxlLHQpe2lmKHQuYXR0cmlidXRlcy5jbGFzcz8uaW5jbHVkZXMoInhmYVJpY2giKSl7ZSYmKCIiPT09QS5oJiYoZS5oZWlnaHQ9ImF1dG8iKSwiIj09PUEudyYmKGUud2lkdGg9ImF1dG8iKSk7Y29uc3QgaT1QYyhBKTtpZihpKXtjb25zdCBBPXQuYXR0cmlidXRlcy5zdHlsZTtzd2l0Y2goQS5kaXNwbGF5PSJmbGV4IixBLmZsZXhEaXJlY3Rpb249ImNvbHVtbiIsaS52QWxpZ24pe2Nhc2UidG9wIjpBLmp1c3RpZnlDb250ZW50PSJzdGFydCI7YnJlYWs7Y2FzZSJib3R0b20iOkEuanVzdGlmeUNvbnRlbnQ9ImVuZCI7YnJlYWs7Y2FzZSJtaWRkbGUiOkEuanVzdGlmeUNvbnRlbnQ9ImNlbnRlciJ9Y29uc3QgZT1pW0ZJXSgpO2Zvcihjb25zdFt0LGldb2YgT2JqZWN0LmVudHJpZXMoZSkpdCBpbiBBfHwoQVt0XT1pKX19fWZ1bmN0aW9uIE9jKEEsZSx0LGkpe2lmKCF0KXJldHVybiB2b2lkIGRlbGV0ZSBpLmZvbnRGYW1pbHk7Y29uc3QgYT1VSShBLnR5cGVmYWNlKTtpLmZvbnRGYW1pbHk9YCIke2F9ImA7Y29uc3Qgcz10LmZpbmQoYSk7aWYocyl7Y29uc3R7Zm9udEZhbWlseTp0fT1zLnJlZ3VsYXIuY3NzRm9udEluZm87dCE9PWEmJihpLmZvbnRGYW1pbHk9YCIke3R9ImApO2NvbnN0IG49UGMoZSk7aWYobiYmIiIhPT1uLmxpbmVIZWlnaHQpcmV0dXJuO2lmKGkubGluZUhlaWdodClyZXR1cm47Y29uc3Qgcj1QSShBLHMpO3ImJihpLmxpbmVIZWlnaHQ9TWF0aC5tYXgoMS4yLHIubGluZUhlaWdodCkpfX1mdW5jdGlvbiBaYyhBKXtjb25zdCBlPUooQSxudWxsLHthZGREZWZhdWx0UHJvdG9jb2w6ITAsdHJ5Q29udmVydEVuY29kaW5nOiEwfSk7cmV0dXJuIGU/ZS5ocmVmOm51bGx9ZnVuY3Rpb24gamMoQSxlKXtyZXR1cm57bmFtZToiZGl2IixhdHRyaWJ1dGVzOntjbGFzczpbImxyLXRiIj09PUEubGF5b3V0PyJ4ZmFMciI6InhmYVJsIl19LGNoaWxkcmVuOmV9fWZ1bmN0aW9uIFhjKEEpe2lmKCFBW0ZvXSlyZXR1cm4gbnVsbDtjb25zdCBlPXtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6QVtGb10uYXR0cmlidXRlcyxjaGlsZHJlbjpBW0ZvXS5jaGlsZHJlbn07aWYoQVtGb10uZmFpbGluZ05vZGUpe2NvbnN0IHQ9QVtGb10uZmFpbGluZ05vZGVbUm9dKCk7dCYmKEEubGF5b3V0LmVuZHNXaXRoKCItdGIiKT9lLmNoaWxkcmVuLnB1c2goamMoQSxbdF0pKTplLmNoaWxkcmVuLnB1c2godCkpfXJldHVybiAwPT09ZS5jaGlsZHJlbi5sZW5ndGg/bnVsbDplfWZ1bmN0aW9uIFZjKEEsZSx0KXtjb25zdCBpPUFbRm9dLGE9aS5hdmFpbGFibGVTcGFjZSxbcyxuLHIsZ109dDtzd2l0Y2goQS5sYXlvdXQpe2Nhc2UicG9zaXRpb24iOmkud2lkdGg9TWF0aC5tYXgoaS53aWR0aCxzK3IpLGkuaGVpZ2h0PU1hdGgubWF4KGkuaGVpZ2h0LG4rZyksaS5jaGlsZHJlbi5wdXNoKGUpO2JyZWFrO2Nhc2UibHItdGIiOmNhc2UicmwtdGIiOmkubGluZSYmMSE9PWkuYXR0ZW1wdHx8KGkubGluZT1qYyhBLFtdKSxpLmNoaWxkcmVuLnB1c2goaS5saW5lKSxpLm51bWJlckluTGluZT0wKSxpLm51bWJlckluTGluZSs9MSxpLmxpbmUuY2hpbGRyZW4ucHVzaChlKSwwPT09aS5hdHRlbXB0PyhpLmN1cnJlbnRXaWR0aCs9cixpLmhlaWdodD1NYXRoLm1heChpLmhlaWdodCxpLnByZXZIZWlnaHQrZykpOihpLmN1cnJlbnRXaWR0aD1yLGkucHJldkhlaWdodD1pLmhlaWdodCxpLmhlaWdodCs9ZyxpLmF0dGVtcHQ9MCksaS53aWR0aD1NYXRoLm1heChpLndpZHRoLGkuY3VycmVudFdpZHRoKTticmVhaztjYXNlInJsLXJvdyI6Y2FzZSJyb3ciOntpLmNoaWxkcmVuLnB1c2goZSksaS53aWR0aCs9cixpLmhlaWdodD1NYXRoLm1heChpLmhlaWdodCxnKTtjb25zdCBBPUdjKGkuaGVpZ2h0KTtmb3IoY29uc3QgZSBvZiBpLmNoaWxkcmVuKWUuYXR0cmlidXRlcy5zdHlsZS5oZWlnaHQ9QTticmVha31jYXNlInRhYmxlIjpjYXNlInRiIjppLndpZHRoPU1hdGgubWluKGEud2lkdGgsTWF0aC5tYXgoaS53aWR0aCxyKSksaS5oZWlnaHQrPWcsaS5jaGlsZHJlbi5wdXNoKGUpfX1mdW5jdGlvbiBfYyhBKXtjb25zdCBlPUFbRm9dLmF2YWlsYWJsZVNwYWNlLHQ9QS5tYXJnaW4/QS5tYXJnaW4udG9wSW5zZXQrQS5tYXJnaW4uYm90dG9tSW5zZXQ6MCxpPUEubWFyZ2luP0EubWFyZ2luLmxlZnRJbnNldCtBLm1hcmdpbi5yaWdodEluc2V0OjA7c3dpdGNoKEEubGF5b3V0KXtjYXNlImxyLXRiIjpjYXNlInJsLXRiIjpyZXR1cm4gMD09PUFbRm9dLmF0dGVtcHQ/e3dpZHRoOmUud2lkdGgtaS1BW0ZvXS5jdXJyZW50V2lkdGgsaGVpZ2h0OmUuaGVpZ2h0LXQtQVtGb10ucHJldkhlaWdodH06e3dpZHRoOmUud2lkdGgtaSxoZWlnaHQ6ZS5oZWlnaHQtdC1BW0ZvXS5oZWlnaHR9O2Nhc2Uicmwtcm93IjpjYXNlInJvdyI6cmV0dXJue3dpZHRoOkFbRm9dLmNvbHVtbldpZHRocy5zbGljZShBW0ZvXS5jdXJyZW50Q29sdW1uKS5yZWR1Y2UoKChBLGUpPT5BK2UpKSxoZWlnaHQ6ZS5oZWlnaHQtaX07Y2FzZSJ0YWJsZSI6Y2FzZSJ0YiI6cmV0dXJue3dpZHRoOmUud2lkdGgtaSxoZWlnaHQ6ZS5oZWlnaHQtdC1BW0ZvXS5oZWlnaHR9O2RlZmF1bHQ6cmV0dXJuIGV9fWZ1bmN0aW9uIHpjKEEsZSl7aWYobnVsbD09PUFbV29dKClbRm9dLmZpcnN0VW5zcGxpdHRhYmxlKXJldHVybiEwO2lmKDA9PT1BLnd8fDA9PT1BLmgpcmV0dXJuITA7Y29uc3QgdD1BW1RvXSgpLGk9dFtGb10/LmF0dGVtcHR8fDAsWyxhLHMsbl09ZnVuY3Rpb24oQSl7bGV0IGUsdCxpPSIiPT09QS53P05hTjpBLncsYT0iIj09PUEuaD9OYU46QS5oLFtzLG5dPVswLDBdO3N3aXRjaChBLmFuY2hvclR5cGV8fCIiKXtjYXNlImJvdHRvbUNlbnRlciI6W3Msbl09W2kvMixhXTticmVhaztjYXNlImJvdHRvbUxlZnQiOltzLG5dPVswLGFdO2JyZWFrO2Nhc2UiYm90dG9tUmlnaHQiOltzLG5dPVtpLGFdO2JyZWFrO2Nhc2UibWlkZGxlQ2VudGVyIjpbcyxuXT1baS8yLGEvMl07YnJlYWs7Y2FzZSJtaWRkbGVMZWZ0IjpbcyxuXT1bMCxhLzJdO2JyZWFrO2Nhc2UibWlkZGxlUmlnaHQiOltzLG5dPVtpLGEvMl07YnJlYWs7Y2FzZSJ0b3BDZW50ZXIiOltzLG5dPVtpLzIsMF07YnJlYWs7Y2FzZSJ0b3BSaWdodCI6W3Msbl09W2ksMF19c3dpdGNoKEEucm90YXRlfHwwKXtjYXNlIDA6W2UsdF09Wy1zLC1uXTticmVhaztjYXNlIDkwOltlLHRdPVstbixzXSxbaSxhXT1bYSwtaV07YnJlYWs7Y2FzZSAxODA6W2UsdF09W3Msbl0sW2ksYV09Wy1pLC1hXTticmVhaztjYXNlIDI3MDpbZSx0XT1bbiwtc10sW2ksYV09Wy1hLGldfXJldHVybltBLngrZStNYXRoLm1pbigwLGkpLEEueSt0K01hdGgubWluKDAsYSksTWF0aC5hYnMoaSksTWF0aC5hYnMoYSldfShBKTtzd2l0Y2godC5sYXlvdXQpe2Nhc2UibHItdGIiOmNhc2UicmwtdGIiOnJldHVybiAwPT09aT9BW1dvXSgpW0ZvXS5ub0xheW91dEZhaWx1cmU/IiIhPT1BLnc/TWF0aC5yb3VuZChzLWUud2lkdGgpPD0yOmUud2lkdGg+MjohKCIiIT09QS5oJiZNYXRoLnJvdW5kKG4tZS5oZWlnaHQpPjIpJiYoIiIhPT1BLnc/TWF0aC5yb3VuZChzLWUud2lkdGgpPD0yfHwwPT09dFtGb10ubnVtYmVySW5MaW5lJiZlLmhlaWdodD4yOmUud2lkdGg+Mik6ISFBW1dvXSgpW0ZvXS5ub0xheW91dEZhaWx1cmV8fCEoIiIhPT1BLmgmJk1hdGgucm91bmQobi1lLmhlaWdodCk+MikmJigiIj09PUEud3x8TWF0aC5yb3VuZChzLWUud2lkdGgpPD0yfHwhdFtpSV0oKSkmJmUuaGVpZ2h0PjI7Y2FzZSJ0YWJsZSI6Y2FzZSJ0YiI6cmV0dXJuISFBW1dvXSgpW0ZvXS5ub0xheW91dEZhaWx1cmV8fCgiIj09PUEuaHx8QVt0SV0oKT8oIiI9PT1BLnd8fE1hdGgucm91bmQocy1lLndpZHRoKTw9Mnx8IXRbaUldKCkpJiZlLmhlaWdodD4yOk1hdGgucm91bmQobi1lLmhlaWdodCk8PTIpO2Nhc2UicG9zaXRpb24iOnJldHVybiEhQVtXb10oKVtGb10ubm9MYXlvdXRGYWlsdXJlfHwoIiI9PT1BLmh8fE1hdGgucm91bmQobithLWUuaGVpZ2h0KTw9Mnx8bithPkFbV29dKClbRm9dLmN1cnJlbnRDb250ZW50QXJlYS5oKTtjYXNlInJsLXJvdyI6Y2FzZSJyb3ciOnJldHVybiEhQVtXb10oKVtGb10ubm9MYXlvdXRGYWlsdXJlfHwiIj09PUEuaHx8TWF0aC5yb3VuZChuLWUuaGVpZ2h0KTw9MjtkZWZhdWx0OnJldHVybiEwfX1jb25zdCAkYz1HSS50ZW1wbGF0ZS5pZCxBaD0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGVoPS9eSChcZCspJC8sdGg9bmV3IFNldChbImltYWdlL2dpZiIsImltYWdlL2pwZWciLCJpbWFnZS9qcGciLCJpbWFnZS9wanBlZyIsImltYWdlL3BuZyIsImltYWdlL2FwbmciLCJpbWFnZS94LXBuZyIsImltYWdlL2JtcCIsImltYWdlL3gtbXMtYm1wIiwiaW1hZ2UvdGlmZiIsImltYWdlL3RpZiIsImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSJdKSxpaD1bW1s2Niw3N10sImltYWdlL2JtcCJdLFtbMjU1LDIxNiwyNTVdLCJpbWFnZS9qcGVnIl0sW1s3Myw3Myw0MiwwXSwiaW1hZ2UvdGlmZiJdLFtbNzcsNzcsMCw0Ml0sImltYWdlL3RpZmYiXSxbWzcxLDczLDcwLDU2LDU3LDk3XSwiaW1hZ2UvZ2lmIl0sW1sxMzcsODAsNzgsNzEsMTMsMTAsMjYsMTBdLCJpbWFnZS9wbmciXV07ZnVuY3Rpb24gYWgoQSl7aWYoIUF8fCFBLmJvcmRlcilyZXR1cm57dzowLGg6MH07Y29uc3QgZT1BLmJvcmRlcltIb10oKTtyZXR1cm4gZT97dzplLndpZHRoc1swXStlLndpZHRoc1syXStlLmluc2V0c1swXStlLmluc2V0c1syXSxoOmUud2lkdGhzWzFdK2Uud2lkdGhzWzNdK2UuaW5zZXRzWzFdK2UuaW5zZXRzWzNdfTp7dzowLGg6MH19ZnVuY3Rpb24gc2goQSl7cmV0dXJuIEEubWFyZ2luJiYoQS5tYXJnaW4udG9wSW5zZXR8fEEubWFyZ2luLnJpZ2h0SW5zZXR8fEEubWFyZ2luLmJvdHRvbUluc2V0fHxBLm1hcmdpbi5sZWZ0SW5zZXQpfWZ1bmN0aW9uIG5oKEEsZSl7aWYoIUEudmFsdWUpe2NvbnN0IGU9bmV3IGZCKHt9KTtBW0VvXShlKSxBLnZhbHVlPWV9QS52YWx1ZVttSV0oZSl9ZnVuY3Rpb24qcmgoQSl7Zm9yKGNvbnN0IGUgb2YgQVt2b10oKSllIGluc3RhbmNlb2YgbkI/eWllbGQqZVtLb10oKTp5aWVsZCBlfWZ1bmN0aW9uIGdoKEEpe3JldHVybiJlcnJvciI9PT1BLnZhbGlkYXRlPy5udWxsVGVzdH1mdW5jdGlvbiBvaChBKXtmb3IoO0E7KXtpZighQS50cmF2ZXJzYWwpcmV0dXJuIHZvaWQoQVt5SV09QVtQb10oKVt5SV0pO2lmKEFbeUldKXJldHVybjtsZXQgZT1udWxsO2Zvcihjb25zdCB0IG9mIEEudHJhdmVyc2FsW3ZvXSgpKWlmKCJuZXh0Ij09PXQub3BlcmF0aW9uKXtlPXQ7YnJlYWt9aWYoIWV8fCFlLnJlZilyZXR1cm4gdm9pZChBW3lJXT1BW1BvXSgpW3lJXSk7Y29uc3QgdD1BW1dvXSgpO0FbeUldPSsrdFt5SV07Y29uc3QgaT10W2RJXShlLnJlZixBKTtpZighaSlyZXR1cm47QT1pWzBdfX1mdW5jdGlvbiBJaChBLGUpe2NvbnN0IHQ9QS5hc3Npc3Q7aWYodCl7Y29uc3QgQT10W2JJXSgpO0EmJihlLnRpdGxlPUEpO2NvbnN0IGk9dC5yb2xlLm1hdGNoKGVoKTtpZihpKXtjb25zdCBBPSJoZWFkaW5nIix0PWlbMV07ZS5yb2xlPUEsZVsiYXJpYS1sZXZlbCJdPXR9fWlmKCJ0YWJsZSI9PT1BLmxheW91dCllLnJvbGU9InRhYmxlIjtlbHNlIGlmKCJyb3ciPT09QS5sYXlvdXQpZS5yb2xlPSJyb3ciO2Vsc2V7Y29uc3QgdD1BW1BvXSgpOyJyb3ciPT09dC5sYXlvdXQmJihlLnJvbGU9IlRIIj09PXQuYXNzaXN0Py5yb2xlPyJjb2x1bW5oZWFkZXIiOiJjZWxsIil9fWZ1bmN0aW9uIGNoKEEpe2lmKCFBLmFzc2lzdClyZXR1cm4gbnVsbDtjb25zdCBlPUEuYXNzaXN0O3JldHVybiBlLnNwZWFrJiYiIiE9PWUuc3BlYWtbRG9dP2Uuc3BlYWtbRG9dOmUudG9vbFRpcD9lLnRvb2xUaXBbRG9dOm51bGx9ZnVuY3Rpb24gaGgoQSl7cmV0dXJuIHFJLnN1Y2Nlc3Moe25hbWU6ImRpdiIsYXR0cmlidXRlczp7Y2xhc3M6WyJ4ZmFSaWNoIl0sc3R5bGU6T2JqZWN0LmNyZWF0ZShudWxsKX0sY2hpbGRyZW46W3tuYW1lOiJzcGFuIixhdHRyaWJ1dGVzOntzdHlsZTpPYmplY3QuY3JlYXRlKG51bGwpfSx2YWx1ZTpBfV19KX1mdW5jdGlvbiBDaChBKXtjb25zdCBlPUFbV29dKCk7bnVsbD09PWVbRm9dLmZpcnN0VW5zcGxpdHRhYmxlJiYoZVtGb10uZmlyc3RVbnNwbGl0dGFibGU9QSxlW0ZvXS5ub0xheW91dEZhaWx1cmU9ITApfWZ1bmN0aW9uIEJoKEEpe2NvbnN0IGU9QVtXb10oKTtlW0ZvXS5maXJzdFVuc3BsaXR0YWJsZT09PUEmJihlW0ZvXS5ub0xheW91dEZhaWx1cmU9ITEpfWZ1bmN0aW9uIGxoKEEpe2lmKEFbRm9dKXJldHVybiExO2lmKEFbRm9dPU9iamVjdC5jcmVhdGUobnVsbCksImF1dG8iPT09QS50YXJnZXRUeXBlKXJldHVybiExO2NvbnN0IGU9QVtXb10oKTtsZXQgdD1udWxsO2lmKEEudGFyZ2V0KXtpZih0PWVbZEldKEEudGFyZ2V0LEFbUG9dKCkpLCF0KXJldHVybiExO3Q9dFswXX1jb25zdHtjdXJyZW50UGFnZUFyZWE6aSxjdXJyZW50Q29udGVudEFyZWE6YX09ZVtGb107aWYoInBhZ2VBcmVhIj09PUEudGFyZ2V0VHlwZSlyZXR1cm4gdCBpbnN0YW5jZW9mIFlDfHwodD1udWxsKSxBLnN0YXJ0TmV3PyhBW0ZvXS50YXJnZXQ9dHx8aSwhMCk6ISghdHx8dD09PWl8fChBW0ZvXS50YXJnZXQ9dCwwKSk7dCBpbnN0YW5jZW9mIHZofHwodD1udWxsKTtjb25zdCBzPXQmJnRbUG9dKCk7bGV0IG4scj1zO2lmKEEuc3RhcnROZXcpaWYodCl7Y29uc3QgQT1zLmNvbnRlbnRBcmVhLmNoaWxkcmVuLGU9QS5pbmRleE9mKGEpLGk9QS5pbmRleE9mKHQpOy0xIT09ZSYmZTxpJiYocj1udWxsKSxuPWktMX1lbHNlIG49aS5jb250ZW50QXJlYS5jaGlsZHJlbi5pbmRleE9mKGEpO2Vsc2V7aWYoIXR8fHQ9PT1hKXJldHVybiExO249cy5jb250ZW50QXJlYS5jaGlsZHJlbi5pbmRleE9mKHQpLTEscj1zPT09aT9udWxsOnN9cmV0dXJuIEFbRm9dLnRhcmdldD1yLEFbRm9dLmluZGV4PW4sITB9ZnVuY3Rpb24gUWgoQSxlLHQpe2NvbnN0IGk9QVtXb10oKSxhPWlbRm9dLm5vTGF5b3V0RmFpbHVyZSxzPWVbVG9dO2VbVG9dPSgpPT5BLGlbRm9dLm5vTGF5b3V0RmFpbHVyZT0hMDtjb25zdCBuPWVbYkldKHQpO0FbUW9dKG4uaHRtbCxuLmJib3gpLGlbRm9dLm5vTGF5b3V0RmFpbHVyZT1hLGVbVG9dPXN9Y2xhc3MgRWggZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiYXBwZWFyYW5jZUZpbHRlciIpLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy50eXBlPUhJKEEudHlwZSxbIm9wdGlvbmFsIiwicmVxdWlyZWQiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyB1aCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJhcmMiLCEwKSx0aGlzLmNpcmN1bGFyPU1JKHtkYXRhOkEuY2lyY3VsYXIsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+MT09PUF9KSx0aGlzLmhhbmQ9SEkoQS5oYW5kLFsiZXZlbiIsImxlZnQiLCJyaWdodCJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMuc3RhcnRBbmdsZT1MSSh7ZGF0YTpBLnN0YXJ0QW5nbGUsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+ITB9KSx0aGlzLnN3ZWVwQW5nbGU9TEkoe2RhdGE6QS5zd2VlcEFuZ2xlLGRlZmF1bHRWYWx1ZTozNjAsdmFsaWRhdGU6QT0+ITB9KSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5lZGdlPW51bGwsdGhpcy5maWxsPW51bGx9W2JJXSgpe2NvbnN0IEE9dGhpcy5lZGdlfHxuZXcgX2goe30pLGU9QVtGSV0oKSx0PU9iamVjdC5jcmVhdGUobnVsbCk7bGV0IGk7InZpc2libGUiPT09dGhpcy5maWxsPy5wcmVzZW5jZT9PYmplY3QuYXNzaWduKHQsdGhpcy5maWxsW0ZJXSgpKTp0LmZpbGw9InRyYW5zcGFyZW50Iix0LnN0cm9rZVdpZHRoPUdjKCJ2aXNpYmxlIj09PUEucHJlc2VuY2U/QS50aGlja25lc3M6MCksdC5zdHJva2U9ZS5jb2xvcjtjb25zdCBhPXt4bWxuczpBaCxzdHlsZTp7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsb3ZlcmZsb3c6InZpc2libGUifX07aWYoMzYwPT09dGhpcy5zd2VlcEFuZ2xlKWk9e25hbWU6ImVsbGlwc2UiLGF0dHJpYnV0ZXM6e3htbG5zOkFoLGN4OiI1MCUiLGN5OiI1MCUiLHJ4OiI1MCUiLHJ5OiI1MCUiLHN0eWxlOnR9fTtlbHNle2NvbnN0IEE9dGhpcy5zdGFydEFuZ2xlKk1hdGguUEkvMTgwLGU9dGhpcy5zd2VlcEFuZ2xlKk1hdGguUEkvMTgwLHM9dGhpcy5zd2VlcEFuZ2xlPjE4MD8xOjAsW24scixnLG9dPVs1MCooMStNYXRoLmNvcyhBKSksNTAqKDEtTWF0aC5zaW4oQSkpLDUwKigxK01hdGguY29zKEErZSkpLDUwKigxLU1hdGguc2luKEErZSkpXTtpPXtuYW1lOiJwYXRoIixhdHRyaWJ1dGVzOnt4bWxuczpBaCxkOmBNICR7bn0gJHtyfSBBIDUwIDUwIDAgJHtzfSAwICR7Z30gJHtvfWAsdmVjdG9yRWZmZWN0OiJub24tc2NhbGluZy1zdHJva2UiLHN0eWxlOnR9fSxPYmplY3QuYXNzaWduKGEse3ZpZXdCb3g6IjAgMCAxMDAgMTAwIixwcmVzZXJ2ZUFzcGVjdFJhdGlvOiJub25lIn0pfWNvbnN0IHM9e25hbWU6InN2ZyIsY2hpbGRyZW46W2ldLGF0dHJpYnV0ZXM6YX07cmV0dXJuIHNoKHRoaXNbUG9dKClbUG9dKCkpP3FJLnN1Y2Nlc3Moe25hbWU6ImRpdiIsYXR0cmlidXRlczp7c3R5bGU6e2Rpc3BsYXk6ImlubGluZSIsd2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSJ9fSxjaGlsZHJlbjpbc119KToocy5hdHRyaWJ1dGVzLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIscUkuc3VjY2VzcyhzKSl9fWNsYXNzIGRoIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImFyZWEiLCEwKSx0aGlzLmNvbFNwYW49TUkoe2RhdGE6QS5jb2xTcGFuLGRlZmF1bHRWYWx1ZToxLHZhbGlkYXRlOkE9PkE+PTF8fC0xPT09QX0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy5yZWxldmFudD1LSShBLnJlbGV2YW50KSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy54PVlJKEEueCwiMHB0IiksdGhpcy55PVlJKEEueSwiMHB0IiksdGhpcy5kZXNjPW51bGwsdGhpcy5leHRyYXM9bnVsbCx0aGlzLmFyZWE9bmV3IG1jLHRoaXMuZHJhdz1uZXcgbWMsdGhpcy5leE9iamVjdD1uZXcgbWMsdGhpcy5leGNsR3JvdXA9bmV3IG1jLHRoaXMuZmllbGQ9bmV3IG1jLHRoaXMuc3ViZm9ybT1uZXcgbWMsdGhpcy5zdWJmb3JtU2V0PW5ldyBtY30qW0tvXSgpe3lpZWxkKnJoKHRoaXMpfVthSV0oKXtyZXR1cm4hMH1bem9dKCl7cmV0dXJuITB9W1FvXShBLGUpe2NvbnN0W3QsaSxhLHNdPWU7dGhpc1tGb10ud2lkdGg9TWF0aC5tYXgodGhpc1tGb10ud2lkdGgsdCthKSx0aGlzW0ZvXS5oZWlnaHQ9TWF0aC5tYXgodGhpc1tGb10uaGVpZ2h0LGkrcyksdGhpc1tGb10uY2hpbGRyZW4ucHVzaChBKX1beG9dKCl7cmV0dXJuIHRoaXNbRm9dLmF2YWlsYWJsZVNwYWNlfVtiSV0oQSl7Y29uc3QgZT1ZYyh0aGlzLCJwb3NpdGlvbiIpLHQ9e3N0eWxlOmUsaWQ6dGhpc1tTSV0sY2xhc3M6WyJ4ZmFBcmVhIl19O1RjKHRoaXMpJiZ0LmNsYXNzLnB1c2goInhmYVByaW50T25seSIpLHRoaXMubmFtZSYmKHQueGZhTmFtZT10aGlzLm5hbWUpO2NvbnN0IGk9W107dGhpc1tGb109e2NoaWxkcmVuOmksd2lkdGg6MCxoZWlnaHQ6MCxhdmFpbGFibGVTcGFjZTpBfTtjb25zdCBhPXRoaXNbdW9dKHtmaWx0ZXI6bmV3IFNldChbImFyZWEiLCJkcmF3IiwiZmllbGQiLCJleGNsR3JvdXAiLCJzdWJmb3JtIiwic3ViZm9ybVNldCJdKSxpbmNsdWRlOiEwfSk7aWYoIWEuc3VjY2VzcylyZXR1cm4gYS5pc0JyZWFrKCk/YTooZGVsZXRlIHRoaXNbRm9dLHFJLkZBSUxVUkUpO2Uud2lkdGg9R2ModGhpc1tGb10ud2lkdGgpLGUuaGVpZ2h0PUdjKHRoaXNbRm9dLmhlaWdodCk7Y29uc3Qgcz17bmFtZToiZGl2IixhdHRyaWJ1dGVzOnQsY2hpbGRyZW46aX0sbj1bdGhpcy54LHRoaXMueSx0aGlzW0ZvXS53aWR0aCx0aGlzW0ZvXS5oZWlnaHRdO3JldHVybiBkZWxldGUgdGhpc1tGb10scUkuc3VjY2VzcyhzLG4pfX1jbGFzcyBmaCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJhc3Npc3QiLCEwKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMucm9sZT1BLnJvbGV8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLnNwZWFrPW51bGwsdGhpcy50b29sVGlwPW51bGx9W2JJXSgpe3JldHVybiB0aGlzLnRvb2xUaXA/LltEb118fG51bGx9fWNsYXNzIHBoIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImJhcmNvZGUiLCEwKSx0aGlzLmNoYXJFbmNvZGluZz1KSSh7ZGF0YTpBLmNoYXJFbmNvZGluZz9BLmNoYXJFbmNvZGluZy50b0xvd2VyQ2FzZSgpOiIiLGRlZmF1bHRWYWx1ZToiIix2YWxpZGF0ZTpBPT5bInV0Zi04IiwiYmlnLWZpdmUiLCJmb250c3BlY2lmaWMiLCJnYmsiLCJnYi0xODAzMCIsImdiLTIzMTIiLCJrc2MtNTYwMSIsIm5vbmUiLCJzaGlmdC1qaXMiLCJ1Y3MtMiIsInV0Zi0xNiJdLmluY2x1ZGVzKEEpfHxBLm1hdGNoKC9pc28tODg1OS1cZHsyfS8pfSksdGhpcy5jaGVja3N1bT1ISShBLmNoZWNrc3VtLFsibm9uZSIsIjFtb2QxMCIsIjFtb2QxMF8xbW9kMTEiLCIybW9kMTAiLCJhdXRvIl0pLHRoaXMuZGF0YUNvbHVtbkNvdW50PU1JKHtkYXRhOkEuZGF0YUNvbHVtbkNvdW50LGRlZmF1bHRWYWx1ZTotMSx2YWxpZGF0ZTpBPT5BPj0wfSksdGhpcy5kYXRhTGVuZ3RoPU1JKHtkYXRhOkEuZGF0YUxlbmd0aCxkZWZhdWx0VmFsdWU6LTEsdmFsaWRhdGU6QT0+QT49MH0pLHRoaXMuZGF0YVByZXA9SEkoQS5kYXRhUHJlcCxbIm5vbmUiLCJmbGF0ZUNvbXByZXNzIl0pLHRoaXMuZGF0YVJvd0NvdW50PU1JKHtkYXRhOkEuZGF0YVJvd0NvdW50LGRlZmF1bHRWYWx1ZTotMSx2YWxpZGF0ZTpBPT5BPj0wfSksdGhpcy5lbmRDaGFyPUEuZW5kQ2hhcnx8IiIsdGhpcy5lcnJvckNvcnJlY3Rpb25MZXZlbD1NSSh7ZGF0YTpBLmVycm9yQ29ycmVjdGlvbkxldmVsLGRlZmF1bHRWYWx1ZTotMSx2YWxpZGF0ZTpBPT5BPj0wJiZBPD04fSksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm1vZHVsZUhlaWdodD1ZSShBLm1vZHVsZUhlaWdodCwiNW1tIiksdGhpcy5tb2R1bGVXaWR0aD1ZSShBLm1vZHVsZVdpZHRoLCIwLjI1bW0iKSx0aGlzLnByaW50Q2hlY2tEaWdpdD1NSSh7ZGF0YTpBLnByaW50Q2hlY2tEaWdpdCxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTpBPT4xPT09QX0pLHRoaXMucm93Q29sdW1uUmF0aW89dkkoQS5yb3dDb2x1bW5SYXRpbyksdGhpcy5zdGFydENoYXI9QS5zdGFydENoYXJ8fCIiLHRoaXMudGV4dExvY2F0aW9uPUhJKEEudGV4dExvY2F0aW9uLFsiYmVsb3ciLCJhYm92ZSIsImFib3ZlRW1iZWRkZWQiLCJiZWxvd0VtYmVkZGVkIiwibm9uZSJdKSx0aGlzLnRydW5jYXRlPU1JKHtkYXRhOkEudHJ1bmNhdGUsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+MT09PUF9KSx0aGlzLnR5cGU9SEkoQS50eXBlP0EudHlwZS50b0xvd2VyQ2FzZSgpOiIiLFsiYXp0ZWMiLCJjb2RhYmFyIiwiY29kZTJvZjVpbmR1c3RyaWFsIiwiY29kZTJvZjVpbnRlcmxlYXZlZCIsImNvZGUyb2Y1bWF0cml4IiwiY29kZTJvZjVzdGFuZGFyZCIsImNvZGUzb2Y5IiwiY29kZTNvZjlleHRlbmRlZCIsImNvZGUxMSIsImNvZGU0OSIsImNvZGU5MyIsImNvZGUxMjgiLCJjb2RlMTI4YSIsImNvZGUxMjhiIiwiY29kZTEyOGMiLCJjb2RlMTI4c3NjYyIsImRhdGFtYXRyaXgiLCJlYW44IiwiZWFuOGFkZDIiLCJlYW44YWRkNSIsImVhbjEzIiwiZWFuMTNhZGQyIiwiZWFuMTNhZGQ1IiwiZWFuMTNwd2NkIiwiZmltIiwibG9nbWFycyIsIm1heGljb2RlIiwibXNpIiwicGRmNDE3IiwicGRmNDE3bWFjcm8iLCJwbGVzc2V5IiwicG9zdGF1c2N1c3QyIiwicG9zdGF1c2N1c3QzIiwicG9zdGF1c3JlcGx5cGFpZCIsInBvc3RhdXNzdGFuZGFyZCIsInBvc3R1a3JtNHNjYyIsInBvc3R1c2RwYmMiLCJwb3N0dXNpbWIiLCJwb3N0dXNzdGFuZGFyZCIsInBvc3R1czV6aXAiLCJxcmNvZGUiLCJyZmlkIiwicnNzMTQiLCJyc3MxNGV4cGFuZGVkIiwicnNzMTRsaW1pdGVkIiwicnNzMTRzdGFja2VkIiwicnNzMTRzdGFja2Vkb21uaSIsInJzczE0dHJ1bmNhdGVkIiwidGVsZXBlbiIsInVjYzEyOCIsInVjYzEyOHJhbmRvbSIsInVjYzEyOHNzY2MiLCJ1cGNhIiwidXBjYWFkZDIiLCJ1cGNhYWRkNSIsInVwY2Fwd2NkIiwidXBjZSIsInVwY2VhZGQyIiwidXBjZWFkZDUiLCJ1cGNlYW4yIiwidXBjZWFuNSIsInVwc21heGljb2RlIl0pLHRoaXMudXBzTW9kZT1ISShBLnVwc01vZGUsWyJ1c0NhcnJpZXIiLCJpbnRlcm5hdGlvbmFsQ2FycmllciIsInNlY3VyZVN5bWJvbCIsInN0YW5kYXJkU3ltYm9sIl0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLndpZGVOYXJyb3dSYXRpbz12SShBLndpZGVOYXJyb3dSYXRpbyksdGhpcy5lbmNyeXB0PW51bGwsdGhpcy5leHRyYXM9bnVsbH19Y2xhc3MgbWggZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiYmluZCIsITApLHRoaXMubWF0Y2g9SEkoQS5tYXRjaCxbIm9uY2UiLCJkYXRhUmVmIiwiZ2xvYmFsIiwibm9uZSJdKSx0aGlzLnJlZj1BLnJlZnx8IiIsdGhpcy5waWN0dXJlPW51bGx9fWNsYXNzIHloIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImJpbmRJdGVtcyIpLHRoaXMuY29ubmVjdGlvbj1BLmNvbm5lY3Rpb258fCIiLHRoaXMubGFiZWxSZWY9QS5sYWJlbFJlZnx8IiIsdGhpcy5yZWY9QS5yZWZ8fCIiLHRoaXMudmFsdWVSZWY9QS52YWx1ZVJlZnx8IiJ9fWNsYXNzIHdoIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImJvb2tlbmQiKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMubGVhZGVyPUEubGVhZGVyfHwiIix0aGlzLnRyYWlsZXI9QS50cmFpbGVyfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiJ9fWNsYXNzIERoIGV4dGVuZHMgU2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImJvb2xlYW4iKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn1bYkldKEEpe3JldHVybiBoaCgxPT09dGhpc1tEb10/IjEiOiIwIil9fWNsYXNzIGJoIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImJvcmRlciIsITApLHRoaXMuYnJlYWs9SEkoQS5icmVhayxbImNsb3NlIiwib3BlbiJdKSx0aGlzLmhhbmQ9SEkoQS5oYW5kLFsiZXZlbiIsImxlZnQiLCJyaWdodCJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMucHJlc2VuY2U9SEkoQS5wcmVzZW5jZSxbInZpc2libGUiLCJoaWRkZW4iLCJpbmFjdGl2ZSIsImludmlzaWJsZSJdKSx0aGlzLnJlbGV2YW50PUtJKEEucmVsZXZhbnQpLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmNvcm5lcj1uZXcgbWMoNCksdGhpcy5lZGdlPW5ldyBtYyg0KSx0aGlzLmV4dHJhcz1udWxsLHRoaXMuZmlsbD1udWxsLHRoaXMubWFyZ2luPW51bGx9W0hvXSgpe2lmKCF0aGlzW0ZvXSl7Y29uc3QgQT10aGlzLmVkZ2UuY2hpbGRyZW4uc2xpY2UoKTtpZihBLmxlbmd0aDw0KXtjb25zdCBlPUEuYXQoLTEpfHxuZXcgX2goe30pO2ZvcihsZXQgdD1BLmxlbmd0aDt0PDQ7dCsrKUEucHVzaChlKX1jb25zdCBlPUEubWFwKChBPT5BLnRoaWNrbmVzcykpLHQ9WzAsMCwwLDBdO3RoaXMubWFyZ2luJiYodFswXT10aGlzLm1hcmdpbi50b3BJbnNldCx0WzFdPXRoaXMubWFyZ2luLnJpZ2h0SW5zZXQsdFsyXT10aGlzLm1hcmdpbi5ib3R0b21JbnNldCx0WzNdPXRoaXMubWFyZ2luLmxlZnRJbnNldCksdGhpc1tGb109e3dpZHRoczplLGluc2V0czp0LGVkZ2VzOkF9fXJldHVybiB0aGlzW0ZvXX1bRkldKCl7Y29uc3R7ZWRnZXM6QX09dGhpc1tIb10oKSxlPUEubWFwKChBPT57Y29uc3QgZT1BW0ZJXSgpO3JldHVybiBlLmNvbG9yfHw9IiMwMDAwMDAiLGV9KSksdD1PYmplY3QuY3JlYXRlKG51bGwpO2lmKHRoaXMubWFyZ2luJiZPYmplY3QuYXNzaWduKHQsdGhpcy5tYXJnaW5bRkldKCkpLCJ2aXNpYmxlIj09PXRoaXMuZmlsbD8ucHJlc2VuY2UmJk9iamVjdC5hc3NpZ24odCx0aGlzLmZpbGxbRkldKCkpLHRoaXMuY29ybmVyLmNoaWxkcmVuLnNvbWUoKEE9PjAhPT1BLnJhZGl1cykpKXtjb25zdCBBPXRoaXMuY29ybmVyLmNoaWxkcmVuLm1hcCgoQT0+QVtGSV0oKSkpO2lmKDI9PT1BLmxlbmd0aHx8Mz09PUEubGVuZ3RoKXtjb25zdCBlPUEuYXQoLTEpO2ZvcihsZXQgdD1BLmxlbmd0aDt0PDQ7dCsrKUEucHVzaChlKX10LmJvcmRlclJhZGl1cz1BLm1hcCgoQT0+QS5yYWRpdXMpKS5qb2luKCIgIil9c3dpdGNoKHRoaXMucHJlc2VuY2Upe2Nhc2UiaW52aXNpYmxlIjpjYXNlImhpZGRlbiI6dC5ib3JkZXJTdHlsZT0iIjticmVhaztjYXNlImluYWN0aXZlIjp0LmJvcmRlclN0eWxlPSJub25lIjticmVhaztkZWZhdWx0OnQuYm9yZGVyU3R5bGU9ZS5tYXAoKEE9PkEuc3R5bGUpKS5qb2luKCIgIil9cmV0dXJuIHQuYm9yZGVyV2lkdGg9ZS5tYXAoKEE9PkEud2lkdGgpKS5qb2luKCIgIiksdC5ib3JkZXJDb2xvcj1lLm1hcCgoQT0+QS5jb2xvcikpLmpvaW4oIiAiKSx0fX1jbGFzcyBraCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJicmVhayIsITApLHRoaXMuYWZ0ZXI9SEkoQS5hZnRlcixbImF1dG8iLCJjb250ZW50QXJlYSIsInBhZ2VBcmVhIiwicGFnZUV2ZW4iLCJwYWdlT2RkIl0pLHRoaXMuYWZ0ZXJUYXJnZXQ9QS5hZnRlclRhcmdldHx8IiIsdGhpcy5iZWZvcmU9SEkoQS5iZWZvcmUsWyJhdXRvIiwiY29udGVudEFyZWEiLCJwYWdlQXJlYSIsInBhZ2VFdmVuIiwicGFnZU9kZCJdKSx0aGlzLmJlZm9yZVRhcmdldD1BLmJlZm9yZVRhcmdldHx8IiIsdGhpcy5ib29rZW5kTGVhZGVyPUEuYm9va2VuZExlYWRlcnx8IiIsdGhpcy5ib29rZW5kVHJhaWxlcj1BLmJvb2tlbmRUcmFpbGVyfHwiIix0aGlzLmlkPUEuaWR8fCIiLHRoaXMub3ZlcmZsb3dMZWFkZXI9QS5vdmVyZmxvd0xlYWRlcnx8IiIsdGhpcy5vdmVyZmxvd1RhcmdldD1BLm92ZXJmbG93VGFyZ2V0fHwiIix0aGlzLm92ZXJmbG93VHJhaWxlcj1BLm92ZXJmbG93VHJhaWxlcnx8IiIsdGhpcy5zdGFydE5ldz1NSSh7ZGF0YTpBLnN0YXJ0TmV3LGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOkE9PjE9PT1BfSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuZXh0cmFzPW51bGx9fWNsYXNzIEZoIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImJyZWFrQWZ0ZXIiLCEwKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMubGVhZGVyPUEubGVhZGVyfHwiIix0aGlzLnN0YXJ0TmV3PU1JKHtkYXRhOkEuc3RhcnROZXcsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+MT09PUF9KSx0aGlzLnRhcmdldD1BLnRhcmdldHx8IiIsdGhpcy50YXJnZXRUeXBlPUhJKEEudGFyZ2V0VHlwZSxbImF1dG8iLCJjb250ZW50QXJlYSIsInBhZ2VBcmVhIl0pLHRoaXMudHJhaWxlcj1BLnRyYWlsZXJ8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLnNjcmlwdD1udWxsfX1jbGFzcyBTaCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJicmVha0JlZm9yZSIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5sZWFkZXI9QS5sZWFkZXJ8fCIiLHRoaXMuc3RhcnROZXc9TUkoe2RhdGE6QS5zdGFydE5ldyxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTpBPT4xPT09QX0pLHRoaXMudGFyZ2V0PUEudGFyZ2V0fHwiIix0aGlzLnRhcmdldFR5cGU9SEkoQS50YXJnZXRUeXBlLFsiYXV0byIsImNvbnRlbnRBcmVhIiwicGFnZUFyZWEiXSksdGhpcy50cmFpbGVyPUEudHJhaWxlcnx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuc2NyaXB0PW51bGx9W2JJXShBKXtyZXR1cm4gdGhpc1tGb109e30scUkuRkFJTFVSRX19Y2xhc3MgUmggZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiYnV0dG9uIiwhMCksdGhpcy5oaWdobGlnaHQ9SEkoQS5oaWdobGlnaHQsWyJpbnZlcnRlZCIsIm5vbmUiLCJvdXRsaW5lIiwicHVzaCJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmV4dHJhcz1udWxsfVtiSV0oQSl7Y29uc3QgZT10aGlzW1BvXSgpW1BvXSgpLHQ9e25hbWU6ImJ1dHRvbiIsYXR0cmlidXRlczp7aWQ6dGhpc1tTSV0sY2xhc3M6WyJ4ZmFCdXR0b24iXSxzdHlsZTp7fX0sY2hpbGRyZW46W119O2Zvcihjb25zdCBBIG9mIGUuZXZlbnQuY2hpbGRyZW4pe2lmKCJjbGljayIhPT1BLmFjdGl2aXR5fHwhQS5zY3JpcHQpY29udGludWU7Y29uc3QgZT1BZShBLnNjcmlwdFtEb10pO2lmKCFlKWNvbnRpbnVlO2NvbnN0IGk9WmMoZS51cmwpO2kmJnQuY2hpbGRyZW4ucHVzaCh7bmFtZToiYSIsYXR0cmlidXRlczp7aWQ6ImxpbmsiK3RoaXNbU0ldLGhyZWY6aSxuZXdXaW5kb3c6ZS5uZXdXaW5kb3csY2xhc3M6WyJ4ZmFMaW5rIl0sc3R5bGU6e319LGNoaWxkcmVuOltdfSl9cmV0dXJuIHFJLnN1Y2Nlc3ModCl9fWNsYXNzIEdoIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImNhbGN1bGF0ZSIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5vdmVycmlkZT1ISShBLm92ZXJyaWRlLFsiZGlzYWJsZWQiLCJlcnJvciIsImlnbm9yZSIsIndhcm5pbmciXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuZXh0cmFzPW51bGwsdGhpcy5tZXNzYWdlPW51bGwsdGhpcy5zY3JpcHQ9bnVsbH19Y2xhc3MgTmggZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiY2FwdGlvbiIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5wbGFjZW1lbnQ9SEkoQS5wbGFjZW1lbnQsWyJsZWZ0IiwiYm90dG9tIiwiaW5saW5lIiwicmlnaHQiLCJ0b3AiXSksdGhpcy5wcmVzZW5jZT1ISShBLnByZXNlbmNlLFsidmlzaWJsZSIsImhpZGRlbiIsImluYWN0aXZlIiwiaW52aXNpYmxlIl0pLHRoaXMucmVzZXJ2ZT1NYXRoLmNlaWwoWUkoQS5yZXNlcnZlKSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuZXh0cmFzPW51bGwsdGhpcy5mb250PW51bGwsdGhpcy5tYXJnaW49bnVsbCx0aGlzLnBhcmE9bnVsbCx0aGlzLnZhbHVlPW51bGx9W21JXShBKXtuaCh0aGlzLEEpfVtIb10oQSl7aWYoIXRoaXNbRm9dKXtsZXR7d2lkdGg6ZSxoZWlnaHQ6dH09QTtzd2l0Y2godGhpcy5wbGFjZW1lbnQpe2Nhc2UibGVmdCI6Y2FzZSJyaWdodCI6Y2FzZSJpbmxpbmUiOmU9dGhpcy5yZXNlcnZlPD0wP2U6dGhpcy5yZXNlcnZlO2JyZWFrO2Nhc2UidG9wIjpjYXNlImJvdHRvbSI6dD10aGlzLnJlc2VydmU8PTA/dDp0aGlzLnJlc2VydmV9dGhpc1tGb109TWModGhpcyx7d2lkdGg6ZSxoZWlnaHQ6dH0pfXJldHVybiB0aGlzW0ZvXX1bYkldKEEpe2lmKCF0aGlzLnZhbHVlKXJldHVybiBxSS5FTVBUWTt0aGlzW2xJXSgpO2NvbnN0IGU9dGhpcy52YWx1ZVtiSV0oQSkuaHRtbDtpZighZSlyZXR1cm4gdGhpc1tCSV0oKSxxSS5FTVBUWTtjb25zdCB0PXRoaXMucmVzZXJ2ZTtpZih0aGlzLnJlc2VydmU8PTApe2NvbnN0e3c6ZSxoOnR9PXRoaXNbSG9dKEEpO3N3aXRjaCh0aGlzLnBsYWNlbWVudCl7Y2FzZSJsZWZ0IjpjYXNlInJpZ2h0IjpjYXNlImlubGluZSI6dGhpcy5yZXNlcnZlPWU7YnJlYWs7Y2FzZSJ0b3AiOmNhc2UiYm90dG9tIjp0aGlzLnJlc2VydmU9dH19Y29uc3QgaT1bXTsic3RyaW5nIj09dHlwZW9mIGU/aS5wdXNoKHtuYW1lOiIjdGV4dCIsdmFsdWU6ZX0pOmkucHVzaChlKTtjb25zdCBhPVljKHRoaXMsImZvbnQiLCJtYXJnaW4iLCJ2aXNpYmlsaXR5Iik7c3dpdGNoKHRoaXMucGxhY2VtZW50KXtjYXNlImxlZnQiOmNhc2UicmlnaHQiOnRoaXMucmVzZXJ2ZT4wJiYoYS53aWR0aD1HYyh0aGlzLnJlc2VydmUpKTticmVhaztjYXNlInRvcCI6Y2FzZSJib3R0b20iOnRoaXMucmVzZXJ2ZT4wJiYoYS5oZWlnaHQ9R2ModGhpcy5yZXNlcnZlKSl9cmV0dXJuIFdjKHRoaXMsbnVsbCxlKSx0aGlzW0JJXSgpLHRoaXMucmVzZXJ2ZT10LHFJLnN1Y2Nlc3Moe25hbWU6ImRpdiIsYXR0cmlidXRlczp7c3R5bGU6YSxjbGFzczpbInhmYUNhcHRpb24iXX0sY2hpbGRyZW46aX0pfX1jbGFzcyB4aCBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJjZXJ0aWZpY2F0ZSIpLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyBVaCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJjZXJ0aWZpY2F0ZXMiLCEwKSx0aGlzLmNyZWRlbnRpYWxTZXJ2ZXJQb2xpY3k9SEkoQS5jcmVkZW50aWFsU2VydmVyUG9saWN5LFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudXJsPUEudXJsfHwiIix0aGlzLnVybFBvbGljeT1BLnVybFBvbGljeXx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuZW5jcnlwdGlvbj1udWxsLHRoaXMuaXNzdWVycz1udWxsLHRoaXMua2V5VXNhZ2U9bnVsbCx0aGlzLm9pZHM9bnVsbCx0aGlzLnNpZ25pbmc9bnVsbCx0aGlzLnN1YmplY3RETnM9bnVsbH19Y2xhc3MgTWggZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiY2hlY2tCdXR0b24iLCEwKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMubWFyaz1ISShBLm1hcmssWyJkZWZhdWx0IiwiY2hlY2siLCJjaXJjbGUiLCJjcm9zcyIsImRpYW1vbmQiLCJzcXVhcmUiLCJzdGFyIl0pLHRoaXMuc2hhcGU9SEkoQS5zaGFwZSxbInNxdWFyZSIsInJvdW5kIl0pLHRoaXMuc2l6ZT1ZSShBLnNpemUsIjEwcHQiKSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5ib3JkZXI9bnVsbCx0aGlzLmV4dHJhcz1udWxsLHRoaXMubWFyZ2luPW51bGx9W2JJXShBKXtjb25zdCBlPVljKCJtYXJnaW4iKSx0PUdjKHRoaXMuc2l6ZSk7bGV0IGksYSxzO2Uud2lkdGg9ZS5oZWlnaHQ9dDtjb25zdCBuPXRoaXNbUG9dKClbUG9dKCkscj1uLml0ZW1zLmNoaWxkcmVuLmxlbmd0aCYmbi5pdGVtcy5jaGlsZHJlblswXVtiSV0oKS5odG1sfHxbXSxnPXtvbjoodm9pZCAwIT09clswXT9yWzBdOiJvbiIpLnRvU3RyaW5nKCksb2ZmOih2b2lkIDAhPT1yWzFdP3JbMV06Im9mZiIpLnRvU3RyaW5nKCl9LG89KG4udmFsdWU/Llt3SV0oKXx8Im9mZiIpPT09Zy5vbnx8dm9pZCAwLEk9bltUb10oKSxjPW5bU0ldO2xldCBoO0kgaW5zdGFuY2VvZiBnQz8ocz1JW1NJXSxpPSJyYWRpbyIsYT0ieGZhUmFkaW8iLGg9SVtib10/LltTSV18fElbU0ldKTooaT0iY2hlY2tib3giLGE9InhmYUNoZWNrYm94IixoPW5bYm9dPy5bU0ldfHxuW1NJXSk7Y29uc3QgQz17bmFtZToiaW5wdXQiLGF0dHJpYnV0ZXM6e2NsYXNzOlthXSxzdHlsZTplLGZpZWxkSWQ6YyxkYXRhSWQ6aCx0eXBlOmksY2hlY2tlZDpvLHhmYU9uOmcub24seGZhT2ZmOmcub2ZmLCJhcmlhLWxhYmVsIjpjaChuKSwiYXJpYS1yZXF1aXJlZCI6ITF9fTtyZXR1cm4gcyYmKEMuYXR0cmlidXRlcy5uYW1lPXMpLGdoKG4pJiYoQy5hdHRyaWJ1dGVzWyJhcmlhLXJlcXVpcmVkIl09ITAsQy5hdHRyaWJ1dGVzLnJlcXVpcmVkPSEwKSxxSS5zdWNjZXNzKHtuYW1lOiJsYWJlbCIsYXR0cmlidXRlczp7Y2xhc3M6WyJ4ZmFMYWJlbCJdfSxjaGlsZHJlbjpbQ119KX19Y2xhc3MgTGggZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiY2hvaWNlTGlzdCIsITApLHRoaXMuY29tbWl0T249SEkoQS5jb21taXRPbixbInNlbGVjdCIsImV4aXQiXSksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm9wZW49SEkoQS5vcGVuLFsidXNlckNvbnRyb2wiLCJhbHdheXMiLCJtdWx0aVNlbGVjdCIsIm9uRW50cnkiXSksdGhpcy50ZXh0RW50cnk9TUkoe2RhdGE6QS50ZXh0RW50cnksZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+MT09PUF9KSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5ib3JkZXI9bnVsbCx0aGlzLmV4dHJhcz1udWxsLHRoaXMubWFyZ2luPW51bGx9W2JJXShBKXtjb25zdCBlPVljKHRoaXMsImJvcmRlciIsIm1hcmdpbiIpLHQ9dGhpc1tQb10oKVtQb10oKSxpPXtmb250U2l6ZTpgY2FsYygke3QuZm9udD8uc2l6ZXx8MTB9cHggKiB2YXIoLS1zY2FsZS1mYWN0b3IpKWB9LGE9W107aWYodC5pdGVtcy5jaGlsZHJlbi5sZW5ndGg+MCl7Y29uc3QgQT10Lml0ZW1zO2xldCBlPTAscz0wOzI9PT1BLmNoaWxkcmVuLmxlbmd0aCYmKGU9QS5jaGlsZHJlblswXS5zYXZlLHM9MS1lKTtjb25zdCBuPUEuY2hpbGRyZW5bZV1bYkldKCkuaHRtbCxyPUEuY2hpbGRyZW5bc11bYkldKCkuaHRtbDtsZXQgZz0hMTtjb25zdCBvPXQudmFsdWU/Llt3SV0oKXx8IiI7Zm9yKGxldCBBPTAsZT1uLmxlbmd0aDtBPGU7QSsrKXtjb25zdCBlPXtuYW1lOiJvcHRpb24iLGF0dHJpYnV0ZXM6e3ZhbHVlOnJbQV18fG5bQV0sc3R5bGU6aX0sdmFsdWU6bltBXX07cltBXT09PW8mJihlLmF0dHJpYnV0ZXMuc2VsZWN0ZWQ9Zz0hMCksYS5wdXNoKGUpfWd8fGEuc3BsaWNlKDAsMCx7bmFtZToib3B0aW9uIixhdHRyaWJ1dGVzOntoaWRkZW46ITAsc2VsZWN0ZWQ6ITB9LHZhbHVlOiIgIn0pfWNvbnN0IHM9e2NsYXNzOlsieGZhU2VsZWN0Il0sZmllbGRJZDp0W1NJXSxkYXRhSWQ6dFtib10/LltTSV18fHRbU0ldLHN0eWxlOmUsImFyaWEtbGFiZWwiOmNoKHQpLCJhcmlhLXJlcXVpcmVkIjohMX07cmV0dXJuIGdoKHQpJiYoc1siYXJpYS1yZXF1aXJlZCJdPSEwLHMucmVxdWlyZWQ9ITApLCJtdWx0aVNlbGVjdCI9PT10aGlzLm9wZW4mJihzLm11bHRpcGxlPSEwKSxxSS5zdWNjZXNzKHtuYW1lOiJsYWJlbCIsYXR0cmlidXRlczp7Y2xhc3M6WyJ4ZmFMYWJlbCJdfSxjaGlsZHJlbjpbe25hbWU6InNlbGVjdCIsY2hpbGRyZW46YSxhdHRyaWJ1dGVzOnN9XX0pfX1jbGFzcyBKaCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJjb2xvciIsITApLHRoaXMuY1NwYWNlPUhJKEEuY1NwYWNlLFsiU1JHQiJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLnZhbHVlPUEudmFsdWU/ZnVuY3Rpb24oQSxlPVswLDAsMF0pe2xldFt0LGksYV09ZTtpZighQSlyZXR1cm57cjp0LGc6aSxiOmF9O2NvbnN0IHM9QS50cmltKCkuc3BsaXQoL1xzKixccyovKS5tYXAoKEE9Pk1hdGgubWluKE1hdGgubWF4KDAscGFyc2VJbnQoQS50cmltKCksMTApKSwyNTUpKSkubWFwKChBPT5pc05hTihBKT8wOkEpKTtyZXR1cm4gcy5sZW5ndGg8M3x8KFt0LGksYV09cykse3I6dCxnOmksYjphfX0oQS52YWx1ZSk6IiIsdGhpcy5leHRyYXM9bnVsbH1bWm9dKCl7cmV0dXJuITF9W0ZJXSgpe3JldHVybiB0aGlzLnZhbHVlPyQubWFrZUhleENvbG9yKHRoaXMudmFsdWUucix0aGlzLnZhbHVlLmcsdGhpcy52YWx1ZS5iKTpudWxsfX1jbGFzcyBIaCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJjb21iIiksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm51bWJlck9mQ2VsbHM9TUkoe2RhdGE6QS5udW1iZXJPZkNlbGxzLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOkE9PkE+PTB9KSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiJ9fWNsYXNzIFloIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImNvbm5lY3QiLCEwKSx0aGlzLmNvbm5lY3Rpb249QS5jb25uZWN0aW9ufHwiIix0aGlzLmlkPUEuaWR8fCIiLHRoaXMucmVmPUEucmVmfHwiIix0aGlzLnVzYWdlPUhJKEEudXNhZ2UsWyJleHBvcnRBbmRJbXBvcnQiLCJleHBvcnRPbmx5IiwiaW1wb3J0T25seSJdKSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5waWN0dXJlPW51bGx9fWNsYXNzIHZoIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImNvbnRlbnRBcmVhIiwhMCksdGhpcy5oPVlJKEEuaCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm5hbWU9QS5uYW1lfHwiIix0aGlzLnJlbGV2YW50PUtJKEEucmVsZXZhbnQpLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLnc9WUkoQS53KSx0aGlzLng9WUkoQS54LCIwcHQiKSx0aGlzLnk9WUkoQS55LCIwcHQiKSx0aGlzLmRlc2M9bnVsbCx0aGlzLmV4dHJhcz1udWxsfVtiSV0oQSl7Y29uc3QgZT17bGVmdDpHYyh0aGlzLngpLHRvcDpHYyh0aGlzLnkpLHdpZHRoOkdjKHRoaXMudyksaGVpZ2h0OkdjKHRoaXMuaCl9LHQ9WyJ4ZmFDb250ZW50YXJlYSJdO3JldHVybiBUYyh0aGlzKSYmdC5wdXNoKCJ4ZmFQcmludE9ubHkiKSxxSS5zdWNjZXNzKHtuYW1lOiJkaXYiLGNoaWxkcmVuOltdLGF0dHJpYnV0ZXM6e3N0eWxlOmUsY2xhc3M6dCxpZDp0aGlzW1NJXX19KX19Y2xhc3MgS2ggZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiY29ybmVyIiwhMCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLmludmVydGVkPU1JKHtkYXRhOkEuaW52ZXJ0ZWQsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+MT09PUF9KSx0aGlzLmpvaW49SEkoQS5qb2luLFsic3F1YXJlIiwicm91bmQiXSksdGhpcy5wcmVzZW5jZT1ISShBLnByZXNlbmNlLFsidmlzaWJsZSIsImhpZGRlbiIsImluYWN0aXZlIiwiaW52aXNpYmxlIl0pLHRoaXMucmFkaXVzPVlJKEEucmFkaXVzKSx0aGlzLnN0cm9rZT1ISShBLnN0cm9rZSxbInNvbGlkIiwiZGFzaERvdCIsImRhc2hEb3REb3QiLCJkYXNoZWQiLCJkb3R0ZWQiLCJlbWJvc3NlZCIsImV0Y2hlZCIsImxvd2VyZWQiLCJyYWlzZWQiXSksdGhpcy50aGlja25lc3M9WUkoQS50aGlja25lc3MsIjAuNXB0IiksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuY29sb3I9bnVsbCx0aGlzLmV4dHJhcz1udWxsfVtGSV0oKXtjb25zdCBBPVljKHRoaXMsInZpc2liaWxpdHkiKTtyZXR1cm4gQS5yYWRpdXM9R2MoInNxdWFyZSI9PT10aGlzLmpvaW4/MDp0aGlzLnJhZGl1cyksQX19Y2xhc3MgcWggZXh0ZW5kcyBEY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiZGF0ZSIpLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifVtTb10oKXtjb25zdCBBPXRoaXNbRG9dLnRyaW0oKTt0aGlzW0RvXT1BP25ldyBEYXRlKEEpOm51bGx9W2JJXShBKXtyZXR1cm4gaGgodGhpc1tEb10/dGhpc1tEb10udG9TdHJpbmcoKToiIil9fWNsYXNzIFRoIGV4dGVuZHMgRGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImRhdGVUaW1lIiksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm5hbWU9QS5uYW1lfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiJ9W1NvXSgpe2NvbnN0IEE9dGhpc1tEb10udHJpbSgpO3RoaXNbRG9dPUE/bmV3IERhdGUoQSk6bnVsbH1bYkldKEEpe3JldHVybiBoaCh0aGlzW0RvXT90aGlzW0RvXS50b1N0cmluZygpOiIiKX19Y2xhc3MgUGggZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiZGF0ZVRpbWVFZGl0IiwhMCksdGhpcy5oU2Nyb2xsUG9saWN5PUhJKEEuaFNjcm9sbFBvbGljeSxbImF1dG8iLCJvZmYiLCJvbiJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMucGlja2VyPUhJKEEucGlja2VyLFsiaG9zdCIsIm5vbmUiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuYm9yZGVyPW51bGwsdGhpcy5jb21iPW51bGwsdGhpcy5leHRyYXM9bnVsbCx0aGlzLm1hcmdpbj1udWxsfVtiSV0oQSl7Y29uc3QgZT1ZYyh0aGlzLCJib3JkZXIiLCJmb250IiwibWFyZ2luIiksdD10aGlzW1BvXSgpW1BvXSgpLGk9e25hbWU6ImlucHV0IixhdHRyaWJ1dGVzOnt0eXBlOiJ0ZXh0IixmaWVsZElkOnRbU0ldLGRhdGFJZDp0W2JvXT8uW1NJXXx8dFtTSV0sY2xhc3M6WyJ4ZmFUZXh0ZmllbGQiXSxzdHlsZTplLCJhcmlhLWxhYmVsIjpjaCh0KSwiYXJpYS1yZXF1aXJlZCI6ITF9fTtyZXR1cm4gZ2godCkmJihpLmF0dHJpYnV0ZXNbImFyaWEtcmVxdWlyZWQiXT0hMCxpLmF0dHJpYnV0ZXMucmVxdWlyZWQ9ITApLHFJLnN1Y2Nlc3Moe25hbWU6ImxhYmVsIixhdHRyaWJ1dGVzOntjbGFzczpbInhmYUxhYmVsIl19LGNoaWxkcmVuOltpXX0pfX1jbGFzcyBXaCBleHRlbmRzIERje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJkZWNpbWFsIiksdGhpcy5mcmFjRGlnaXRzPU1JKHtkYXRhOkEuZnJhY0RpZ2l0cyxkZWZhdWx0VmFsdWU6Mix2YWxpZGF0ZTpBPT4hMH0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5sZWFkRGlnaXRzPU1JKHtkYXRhOkEubGVhZERpZ2l0cyxkZWZhdWx0VmFsdWU6LTEsdmFsaWRhdGU6QT0+ITB9KSx0aGlzLm5hbWU9QS5uYW1lfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiJ9W1NvXSgpe2NvbnN0IEE9cGFyc2VGbG9hdCh0aGlzW0RvXS50cmltKCkpO3RoaXNbRG9dPWlzTmFOKEEpP251bGw6QX1bYkldKEEpe3JldHVybiBoaChudWxsIT09dGhpc1tEb10/dGhpc1tEb10udG9TdHJpbmcoKToiIil9fWNsYXNzIE9oIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImRlZmF1bHRVaSIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuZXh0cmFzPW51bGx9fWNsYXNzIFpoIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImRlc2MiLCEwKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmJvb2xlYW49bmV3IG1jLHRoaXMuZGF0ZT1uZXcgbWMsdGhpcy5kYXRlVGltZT1uZXcgbWMsdGhpcy5kZWNpbWFsPW5ldyBtYyx0aGlzLmV4RGF0YT1uZXcgbWMsdGhpcy5mbG9hdD1uZXcgbWMsdGhpcy5pbWFnZT1uZXcgbWMsdGhpcy5pbnRlZ2VyPW5ldyBtYyx0aGlzLnRleHQ9bmV3IG1jLHRoaXMudGltZT1uZXcgbWN9fWNsYXNzIGpoIGV4dGVuZHMgYmN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImRpZ2VzdE1ldGhvZCIsWyIiLCJTSEExIiwiU0hBMjU2IiwiU0hBNTEyIiwiUklQRU1EMTYwIl0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyBYaCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJkaWdlc3RNZXRob2RzIiwhMCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnR5cGU9SEkoQS50eXBlLFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5kaWdlc3RNZXRob2Q9bmV3IG1jfX1jbGFzcyBWaCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJkcmF3IiwhMCksdGhpcy5hbmNob3JUeXBlPUhJKEEuYW5jaG9yVHlwZSxbInRvcExlZnQiLCJib3R0b21DZW50ZXIiLCJib3R0b21MZWZ0IiwiYm90dG9tUmlnaHQiLCJtaWRkbGVDZW50ZXIiLCJtaWRkbGVMZWZ0IiwibWlkZGxlUmlnaHQiLCJ0b3BDZW50ZXIiLCJ0b3BSaWdodCJdKSx0aGlzLmNvbFNwYW49TUkoe2RhdGE6QS5jb2xTcGFuLGRlZmF1bHRWYWx1ZToxLHZhbGlkYXRlOkE9PkE+PTF8fC0xPT09QX0pLHRoaXMuaD1BLmg/WUkoQS5oKToiIix0aGlzLmhBbGlnbj1ISShBLmhBbGlnbixbImxlZnQiLCJjZW50ZXIiLCJqdXN0aWZ5IiwianVzdGlmeUFsbCIsInJhZGl4IiwicmlnaHQiXSksdGhpcy5pZD1BLmlkfHwiIix0aGlzLmxvY2FsZT1BLmxvY2FsZXx8IiIsdGhpcy5tYXhIPVlJKEEubWF4SCwiMHB0IiksdGhpcy5tYXhXPVlJKEEubWF4VywiMHB0IiksdGhpcy5taW5IPVlJKEEubWluSCwiMHB0IiksdGhpcy5taW5XPVlJKEEubWluVywiMHB0IiksdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy5wcmVzZW5jZT1ISShBLnByZXNlbmNlLFsidmlzaWJsZSIsImhpZGRlbiIsImluYWN0aXZlIiwiaW52aXNpYmxlIl0pLHRoaXMucmVsZXZhbnQ9S0koQS5yZWxldmFudCksdGhpcy5yb3RhdGU9TUkoe2RhdGE6QS5yb3RhdGUsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+QSU5MD09MH0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLnc9QS53P1lJKEEudyk6IiIsdGhpcy54PVlJKEEueCwiMHB0IiksdGhpcy55PVlJKEEueSwiMHB0IiksdGhpcy5hc3Npc3Q9bnVsbCx0aGlzLmJvcmRlcj1udWxsLHRoaXMuY2FwdGlvbj1udWxsLHRoaXMuZGVzYz1udWxsLHRoaXMuZXh0cmFzPW51bGwsdGhpcy5mb250PW51bGwsdGhpcy5rZWVwPW51bGwsdGhpcy5tYXJnaW49bnVsbCx0aGlzLnBhcmE9bnVsbCx0aGlzLnRyYXZlcnNhbD1udWxsLHRoaXMudWk9bnVsbCx0aGlzLnZhbHVlPW51bGwsdGhpcy5zZXRQcm9wZXJ0eT1uZXcgbWN9W21JXShBKXtuaCh0aGlzLEEpfVtiSV0oQSl7aWYob2godGhpcyksImhpZGRlbiI9PT10aGlzLnByZXNlbmNlfHwiaW5hY3RpdmUiPT09dGhpcy5wcmVzZW5jZSlyZXR1cm4gcUkuRU1QVFk7SmModGhpcyksdGhpc1tsSV0oKTtjb25zdCBlPXRoaXMudyx0PXRoaXMuaCx7dzppLGg6YSxpc0Jyb2tlbjpzfT1NYyh0aGlzLEEpO2lmKGkmJiIiPT09dGhpcy53KXtpZihzJiZ0aGlzW1RvXSgpW2lJXSgpKXJldHVybiB0aGlzW0JJXSgpLHFJLkZBSUxVUkU7dGhpcy53PWl9aWYoYSYmIiI9PT10aGlzLmgmJih0aGlzLmg9YSksQ2godGhpcyksIXpjKHRoaXMsQSkpcmV0dXJuIHRoaXMudz1lLHRoaXMuaD10LHRoaXNbQkldKCkscUkuRkFJTFVSRTtCaCh0aGlzKTtjb25zdCBuPVljKHRoaXMsImZvbnQiLCJoQWxpZ24iLCJkaW1lbnNpb25zIiwicG9zaXRpb24iLCJwcmVzZW5jZSIsInJvdGF0ZSIsImFuY2hvclR5cGUiLCJib3JkZXIiLCJtYXJnaW4iKTt4Yyh0aGlzLG4pLG4ubWFyZ2luJiYobi5wYWRkaW5nPW4ubWFyZ2luLGRlbGV0ZSBuLm1hcmdpbik7Y29uc3Qgcj1bInhmYURyYXciXTt0aGlzLmZvbnQmJnIucHVzaCgieGZhRm9udCIpLFRjKHRoaXMpJiZyLnB1c2goInhmYVByaW50T25seSIpO2NvbnN0IGc9e3N0eWxlOm4saWQ6dGhpc1tTSV0sY2xhc3M6cn07dGhpcy5uYW1lJiYoZy54ZmFOYW1lPXRoaXMubmFtZSk7Y29uc3Qgbz17bmFtZToiZGl2IixhdHRyaWJ1dGVzOmcsY2hpbGRyZW46W119O0loKHRoaXMsZyk7Y29uc3QgST1MYyh0aGlzLG8sQSksYz10aGlzLnZhbHVlP3RoaXMudmFsdWVbYkldKEEpLmh0bWw6bnVsbDtyZXR1cm4gbnVsbD09PWM/KHRoaXMudz1lLHRoaXMuaD10LHRoaXNbQkldKCkscUkuc3VjY2Vzcyh2Yyh0aGlzLG8pLEkpKTooby5jaGlsZHJlbi5wdXNoKGMpLFdjKHRoaXMsbixjKSx0aGlzLnc9ZSx0aGlzLmg9dCx0aGlzW0JJXSgpLHFJLnN1Y2Nlc3ModmModGhpcyxvKSxJKSl9fWNsYXNzIF9oIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImVkZ2UiLCEwKSx0aGlzLmNhcD1ISShBLmNhcCxbInNxdWFyZSIsImJ1dHQiLCJyb3VuZCJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMucHJlc2VuY2U9SEkoQS5wcmVzZW5jZSxbInZpc2libGUiLCJoaWRkZW4iLCJpbmFjdGl2ZSIsImludmlzaWJsZSJdKSx0aGlzLnN0cm9rZT1ISShBLnN0cm9rZSxbInNvbGlkIiwiZGFzaERvdCIsImRhc2hEb3REb3QiLCJkYXNoZWQiLCJkb3R0ZWQiLCJlbWJvc3NlZCIsImV0Y2hlZCIsImxvd2VyZWQiLCJyYWlzZWQiXSksdGhpcy50aGlja25lc3M9WUkoQS50aGlja25lc3MsIjAuNXB0IiksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuY29sb3I9bnVsbCx0aGlzLmV4dHJhcz1udWxsfVtGSV0oKXtjb25zdCBBPVljKHRoaXMsInZpc2liaWxpdHkiKTtpZihPYmplY3QuYXNzaWduKEEse2xpbmVjYXA6dGhpcy5jYXAsd2lkdGg6R2ModGhpcy50aGlja25lc3MpLGNvbG9yOnRoaXMuY29sb3I/dGhpcy5jb2xvcltGSV0oKToiIzAwMDAwMCIsc3R5bGU6IiJ9KSwidmlzaWJsZSIhPT10aGlzLnByZXNlbmNlKUEuc3R5bGU9Im5vbmUiO2Vsc2Ugc3dpdGNoKHRoaXMuc3Ryb2tlKXtjYXNlInNvbGlkIjpBLnN0eWxlPSJzb2xpZCI7YnJlYWs7Y2FzZSJkYXNoRG90IjpjYXNlImRhc2hEb3REb3QiOmNhc2UiZGFzaGVkIjpBLnN0eWxlPSJkYXNoZWQiO2JyZWFrO2Nhc2UiZG90dGVkIjpBLnN0eWxlPSJkb3R0ZWQiO2JyZWFrO2Nhc2UiZW1ib3NzZWQiOkEuc3R5bGU9InJpZGdlIjticmVhaztjYXNlImV0Y2hlZCI6QS5zdHlsZT0iZ3Jvb3ZlIjticmVhaztjYXNlImxvd2VyZWQiOkEuc3R5bGU9Imluc2V0IjticmVhaztjYXNlInJhaXNlZCI6QS5zdHlsZT0ib3V0c2V0In1yZXR1cm4gQX19Y2xhc3MgemggZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiZW5jb2RpbmciLFsiYWRiZS54NTA5LnJzYV9zaGExIiwiYWRiZS5wa2NzNy5kZXRhY2hlZCIsImFkYmUucGtjczcuc2hhMSJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn19Y2xhc3MgJGggZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiZW5jb2RpbmdzIiwhMCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnR5cGU9SEkoQS50eXBlLFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5lbmNvZGluZz1uZXcgbWN9fWNsYXNzIEFDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImVuY3J5cHQiLCEwKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmNlcnRpZmljYXRlPW51bGx9fWNsYXNzIGVDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImVuY3J5cHREYXRhIiwhMCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm9wZXJhdGlvbj1ISShBLm9wZXJhdGlvbixbImVuY3J5cHQiLCJkZWNyeXB0Il0pLHRoaXMudGFyZ2V0PUEudGFyZ2V0fHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5maWx0ZXI9bnVsbCx0aGlzLm1hbmlmZXN0PW51bGx9fWNsYXNzIHRDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImVuY3J5cHRpb24iLCEwKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudHlwZT1ISShBLnR5cGUsWyJvcHRpb25hbCIsInJlcXVpcmVkIl0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmNlcnRpZmljYXRlPW5ldyBtY319Y2xhc3MgaUMgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiZW5jcnlwdGlvbk1ldGhvZCIsWyIiLCJBRVMyNTYtQ0JDIiwiVFJJUExFREVTLUNCQyIsIkFFUzEyOC1DQkMiLCJBRVMxOTItQ0JDIl0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyBhQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJlbmNyeXB0aW9uTWV0aG9kcyIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy50eXBlPUhJKEEudHlwZSxbIm9wdGlvbmFsIiwicmVxdWlyZWQiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuZW5jcnlwdGlvbk1ldGhvZD1uZXcgbWN9fWNsYXNzIHNDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImV2ZW50IiwhMCksdGhpcy5hY3Rpdml0eT1ISShBLmFjdGl2aXR5LFsiY2xpY2siLCJjaGFuZ2UiLCJkb2NDbG9zZSIsImRvY1JlYWR5IiwiZW50ZXIiLCJleGl0IiwiZnVsbCIsImluZGV4Q2hhbmdlIiwiaW5pdGlhbGl6ZSIsIm1vdXNlRG93biIsIm1vdXNlRW50ZXIiLCJtb3VzZUV4aXQiLCJtb3VzZVVwIiwicG9zdEV4ZWN1dGUiLCJwb3N0T3BlbiIsInBvc3RQcmludCIsInBvc3RTYXZlIiwicG9zdFNpZ24iLCJwb3N0U3VibWl0IiwicHJlRXhlY3V0ZSIsInByZU9wZW4iLCJwcmVQcmludCIsInByZVNhdmUiLCJwcmVTaWduIiwicHJlU3VibWl0IiwicmVhZHkiLCJ2YWxpZGF0aW9uU3RhdGUiXSksdGhpcy5pZD1BLmlkfHwiIix0aGlzLmxpc3Rlbj1ISShBLmxpc3RlbixbInJlZk9ubHkiLCJyZWZBbmREZXNjZW5kZW50cyJdKSx0aGlzLm5hbWU9QS5uYW1lfHwiIix0aGlzLnJlZj1BLnJlZnx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuZXh0cmFzPW51bGwsdGhpcy5lbmNyeXB0RGF0YT1udWxsLHRoaXMuZXhlY3V0ZT1udWxsLHRoaXMuc2NyaXB0PW51bGwsdGhpcy5zaWduRGF0YT1udWxsLHRoaXMuc3VibWl0PW51bGx9fWNsYXNzIG5DIGV4dGVuZHMgRGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImV4RGF0YSIpLHRoaXMuY29udGVudFR5cGU9QS5jb250ZW50VHlwZXx8IiIsdGhpcy5ocmVmPUEuaHJlZnx8IiIsdGhpcy5pZD1BLmlkfHwiIix0aGlzLm1heExlbmd0aD1NSSh7ZGF0YTpBLm1heExlbmd0aCxkZWZhdWx0VmFsdWU6LTEsdmFsaWRhdGU6QT0+QT49LTF9KSx0aGlzLm5hbWU9QS5uYW1lfHwiIix0aGlzLnJpZD1BLnJpZHx8IiIsdGhpcy50cmFuc2ZlckVuY29kaW5nPUhJKEEudHJhbnNmZXJFbmNvZGluZyxbIm5vbmUiLCJiYXNlNjQiLCJwYWNrYWdlIl0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn1bX29dKCl7cmV0dXJuInRleHQvaHRtbCI9PT10aGlzLmNvbnRlbnRUeXBlfVtJSV0oQSl7cmV0dXJuKCJ0ZXh0L2h0bWwiPT09dGhpcy5jb250ZW50VHlwZSYmQVtySV09PT1HSS54aHRtbC5pZHx8InRleHQveG1sIj09PXRoaXMuY29udGVudFR5cGUpJiYodGhpc1tEb109QSwhMCl9W2JJXShBKXtyZXR1cm4idGV4dC9odG1sIj09PXRoaXMuY29udGVudFR5cGUmJnRoaXNbRG9dP3RoaXNbRG9dW2JJXShBKTpxSS5FTVBUWX19Y2xhc3MgckMgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiZXhPYmplY3QiLCEwKSx0aGlzLmFyY2hpdmU9QS5hcmNoaXZlfHwiIix0aGlzLmNsYXNzSWQ9QS5jbGFzc0lkfHwiIix0aGlzLmNvZGVCYXNlPUEuY29kZUJhc2V8fCIiLHRoaXMuY29kZVR5cGU9QS5jb2RlVHlwZXx8IiIsdGhpcy5pZD1BLmlkfHwiIix0aGlzLm5hbWU9QS5uYW1lfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5leHRyYXM9bnVsbCx0aGlzLmJvb2xlYW49bmV3IG1jLHRoaXMuZGF0ZT1uZXcgbWMsdGhpcy5kYXRlVGltZT1uZXcgbWMsdGhpcy5kZWNpbWFsPW5ldyBtYyx0aGlzLmV4RGF0YT1uZXcgbWMsdGhpcy5leE9iamVjdD1uZXcgbWMsdGhpcy5mbG9hdD1uZXcgbWMsdGhpcy5pbWFnZT1uZXcgbWMsdGhpcy5pbnRlZ2VyPW5ldyBtYyx0aGlzLnRleHQ9bmV3IG1jLHRoaXMudGltZT1uZXcgbWN9fWNsYXNzIGdDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImV4Y2xHcm91cCIsITApLHRoaXMuYWNjZXNzPUhJKEEuYWNjZXNzLFsib3BlbiIsIm5vbkludGVyYWN0aXZlIiwicHJvdGVjdGVkIiwicmVhZE9ubHkiXSksdGhpcy5hY2Nlc3NLZXk9QS5hY2Nlc3NLZXl8fCIiLHRoaXMuYW5jaG9yVHlwZT1ISShBLmFuY2hvclR5cGUsWyJ0b3BMZWZ0IiwiYm90dG9tQ2VudGVyIiwiYm90dG9tTGVmdCIsImJvdHRvbVJpZ2h0IiwibWlkZGxlQ2VudGVyIiwibWlkZGxlTGVmdCIsIm1pZGRsZVJpZ2h0IiwidG9wQ2VudGVyIiwidG9wUmlnaHQiXSksdGhpcy5jb2xTcGFuPU1JKHtkYXRhOkEuY29sU3BhbixkZWZhdWx0VmFsdWU6MSx2YWxpZGF0ZTpBPT5BPj0xfHwtMT09PUF9KSx0aGlzLmg9QS5oP1lJKEEuaCk6IiIsdGhpcy5oQWxpZ249SEkoQS5oQWxpZ24sWyJsZWZ0IiwiY2VudGVyIiwianVzdGlmeSIsImp1c3RpZnlBbGwiLCJyYWRpeCIsInJpZ2h0Il0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5sYXlvdXQ9SEkoQS5sYXlvdXQsWyJwb3NpdGlvbiIsImxyLXRiIiwicmwtcm93IiwicmwtdGIiLCJyb3ciLCJ0YWJsZSIsInRiIl0pLHRoaXMubWF4SD1ZSShBLm1heEgsIjBwdCIpLHRoaXMubWF4Vz1ZSShBLm1heFcsIjBwdCIpLHRoaXMubWluSD1ZSShBLm1pbkgsIjBwdCIpLHRoaXMubWluVz1ZSShBLm1pblcsIjBwdCIpLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMucHJlc2VuY2U9SEkoQS5wcmVzZW5jZSxbInZpc2libGUiLCJoaWRkZW4iLCJpbmFjdGl2ZSIsImludmlzaWJsZSJdKSx0aGlzLnJlbGV2YW50PUtJKEEucmVsZXZhbnQpLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLnc9QS53P1lJKEEudyk6IiIsdGhpcy54PVlJKEEueCwiMHB0IiksdGhpcy55PVlJKEEueSwiMHB0IiksdGhpcy5hc3Npc3Q9bnVsbCx0aGlzLmJpbmQ9bnVsbCx0aGlzLmJvcmRlcj1udWxsLHRoaXMuY2FsY3VsYXRlPW51bGwsdGhpcy5jYXB0aW9uPW51bGwsdGhpcy5kZXNjPW51bGwsdGhpcy5leHRyYXM9bnVsbCx0aGlzLm1hcmdpbj1udWxsLHRoaXMucGFyYT1udWxsLHRoaXMudHJhdmVyc2FsPW51bGwsdGhpcy52YWxpZGF0ZT1udWxsLHRoaXMuY29ubmVjdD1uZXcgbWMsdGhpcy5ldmVudD1uZXcgbWMsdGhpcy5maWVsZD1uZXcgbWMsdGhpcy5zZXRQcm9wZXJ0eT1uZXcgbWN9W3pvXSgpe3JldHVybiEwfVtab10oKXtyZXR1cm4hMH1bbUldKEEpe2Zvcihjb25zdCBlIG9mIHRoaXMuZmllbGQuY2hpbGRyZW4pe2lmKCFlLnZhbHVlKXtjb25zdCBBPW5ldyBmQih7fSk7ZVtFb10oQSksZS52YWx1ZT1BfWUudmFsdWVbbUldKEEpfX1baUldKCl7cmV0dXJuIHRoaXMubGF5b3V0LmVuZHNXaXRoKCItdGIiKSYmMD09PXRoaXNbRm9dLmF0dGVtcHQmJnRoaXNbRm9dLm51bWJlckluTGluZT4wfHx0aGlzW1BvXSgpW2lJXSgpfVt0SV0oKXtjb25zdCBBPXRoaXNbVG9dKCk7cmV0dXJuISFBW3RJXSgpJiYodm9pZCAwIT09dGhpc1tGb10uX2lzU3BsaXR0YWJsZT90aGlzW0ZvXS5faXNTcGxpdHRhYmxlOiJwb3NpdGlvbiI9PT10aGlzLmxheW91dHx8dGhpcy5sYXlvdXQuaW5jbHVkZXMoInJvdyIpPyh0aGlzW0ZvXS5faXNTcGxpdHRhYmxlPSExLCExKTohKEEubGF5b3V0Py5lbmRzV2l0aCgiLXRiIikmJjAhPT1BW0ZvXS5udW1iZXJJbkxpbmV8fCh0aGlzW0ZvXS5faXNTcGxpdHRhYmxlPSEwLDApKSl9W1JvXSgpe3JldHVybiBYYyh0aGlzKX1bUW9dKEEsZSl7VmModGhpcyxBLGUpfVt4b10oKXtyZXR1cm4gX2ModGhpcyl9W2JJXShBKXtpZihvaCh0aGlzKSwiaGlkZGVuIj09PXRoaXMucHJlc2VuY2V8fCJpbmFjdGl2ZSI9PT10aGlzLnByZXNlbmNlfHwwPT09dGhpcy5ofHwwPT09dGhpcy53KXJldHVybiBxSS5FTVBUWTtKYyh0aGlzKTtjb25zdCBlPVtdLHQ9e2lkOnRoaXNbU0ldLGNsYXNzOltdfTtxYyh0aGlzLHQuY2xhc3MpLHRoaXNbRm9dfHwodGhpc1tGb109T2JqZWN0LmNyZWF0ZShudWxsKSksT2JqZWN0LmFzc2lnbih0aGlzW0ZvXSx7Y2hpbGRyZW46ZSxhdHRyaWJ1dGVzOnQsYXR0ZW1wdDowLGxpbmU6bnVsbCxudW1iZXJJbkxpbmU6MCxhdmFpbGFibGVTcGFjZTp7d2lkdGg6TWF0aC5taW4odGhpcy53fHwxLzAsQS53aWR0aCksaGVpZ2h0Ok1hdGgubWluKHRoaXMuaHx8MS8wLEEuaGVpZ2h0KX0sd2lkdGg6MCxoZWlnaHQ6MCxwcmV2SGVpZ2h0OjAsY3VycmVudFdpZHRoOjB9KTtjb25zdCBpPXRoaXNbdEldKCk7aWYoaXx8Q2godGhpcyksIXpjKHRoaXMsQSkpcmV0dXJuIHFJLkZBSUxVUkU7Y29uc3QgYT1uZXcgU2V0KFsiZmllbGQiXSk7aWYodGhpcy5sYXlvdXQuaW5jbHVkZXMoInJvdyIpKXtjb25zdCBBPXRoaXNbVG9dKCkuY29sdW1uV2lkdGhzO0FycmF5LmlzQXJyYXkoQSkmJkEubGVuZ3RoPjAmJih0aGlzW0ZvXS5jb2x1bW5XaWR0aHM9QSx0aGlzW0ZvXS5jdXJyZW50Q29sdW1uPTApfWNvbnN0IHM9WWModGhpcywiYW5jaG9yVHlwZSIsImRpbWVuc2lvbnMiLCJwb3NpdGlvbiIsInByZXNlbmNlIiwiYm9yZGVyIiwibWFyZ2luIiwiaEFsaWduIiksbj1bInhmYUV4Y2xncm91cCJdLHI9SGModGhpcyk7ciYmbi5wdXNoKHIpLFRjKHRoaXMpJiZuLnB1c2goInhmYVByaW50T25seSIpLHQuc3R5bGU9cyx0LmNsYXNzPW4sdGhpcy5uYW1lJiYodC54ZmFOYW1lPXRoaXMubmFtZSksdGhpc1tsSV0oKTtjb25zdCBnPSJsci10YiI9PT10aGlzLmxheW91dHx8InJsLXRiIj09PXRoaXMubGF5b3V0LG89Zz8yOjE7Zm9yKDt0aGlzW0ZvXS5hdHRlbXB0PG87dGhpc1tGb10uYXR0ZW1wdCsrKXtnJiYxPT09dGhpc1tGb10uYXR0ZW1wdCYmKHRoaXNbRm9dLm51bWJlckluTGluZT0wKTtjb25zdCBBPXRoaXNbdW9dKHtmaWx0ZXI6YSxpbmNsdWRlOiEwfSk7aWYoQS5zdWNjZXNzKWJyZWFrO2lmKEEuaXNCcmVhaygpKXJldHVybiB0aGlzW0JJXSgpLEE7aWYoZyYmMD09PXRoaXNbRm9dLmF0dGVtcHQmJjA9PT10aGlzW0ZvXS5udW1iZXJJbkxpbmUmJiF0aGlzW1dvXSgpW0ZvXS5ub0xheW91dEZhaWx1cmUpe3RoaXNbRm9dLmF0dGVtcHQ9bzticmVha319aWYodGhpc1tCSV0oKSxpfHxCaCh0aGlzKSx0aGlzW0ZvXS5hdHRlbXB0PT09bylyZXR1cm4gaXx8ZGVsZXRlIHRoaXNbRm9dLHFJLkZBSUxVUkU7bGV0IEk9MCxjPTA7dGhpcy5tYXJnaW4mJihJPXRoaXMubWFyZ2luLmxlZnRJbnNldCt0aGlzLm1hcmdpbi5yaWdodEluc2V0LGM9dGhpcy5tYXJnaW4udG9wSW5zZXQrdGhpcy5tYXJnaW4uYm90dG9tSW5zZXQpO2NvbnN0IGg9TWF0aC5tYXgodGhpc1tGb10ud2lkdGgrSSx0aGlzLnd8fDApLEM9TWF0aC5tYXgodGhpc1tGb10uaGVpZ2h0K2MsdGhpcy5ofHwwKSxCPVt0aGlzLngsdGhpcy55LGgsQ107IiI9PT10aGlzLncmJihzLndpZHRoPUdjKGgpKSwiIj09PXRoaXMuaCYmKHMuaGVpZ2h0PUdjKEMpKTtjb25zdCBsPXtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6dCxjaGlsZHJlbjplfTtyZXR1cm4gSWgodGhpcyx0KSxkZWxldGUgdGhpc1tGb10scUkuc3VjY2Vzcyh2Yyh0aGlzLGwpLEIpfX1jbGFzcyBvQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJleGVjdXRlIiksdGhpcy5jb25uZWN0aW9uPUEuY29ubmVjdGlvbnx8IiIsdGhpcy5leGVjdXRlVHlwZT1ISShBLmV4ZWN1dGVUeXBlLFsiaW1wb3J0IiwicmVtZXJnZSJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMucnVuQXQ9SEkoQS5ydW5BdCxbImNsaWVudCIsImJvdGgiLCJzZXJ2ZXIiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyBJQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJleHRyYXMiLCEwKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmJvb2xlYW49bmV3IG1jLHRoaXMuZGF0ZT1uZXcgbWMsdGhpcy5kYXRlVGltZT1uZXcgbWMsdGhpcy5kZWNpbWFsPW5ldyBtYyx0aGlzLmV4RGF0YT1uZXcgbWMsdGhpcy5leHRyYXM9bmV3IG1jLHRoaXMuZmxvYXQ9bmV3IG1jLHRoaXMuaW1hZ2U9bmV3IG1jLHRoaXMuaW50ZWdlcj1uZXcgbWMsdGhpcy50ZXh0PW5ldyBtYyx0aGlzLnRpbWU9bmV3IG1jfX1jbGFzcyBjQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJmaWVsZCIsITApLHRoaXMuYWNjZXNzPUhJKEEuYWNjZXNzLFsib3BlbiIsIm5vbkludGVyYWN0aXZlIiwicHJvdGVjdGVkIiwicmVhZE9ubHkiXSksdGhpcy5hY2Nlc3NLZXk9QS5hY2Nlc3NLZXl8fCIiLHRoaXMuYW5jaG9yVHlwZT1ISShBLmFuY2hvclR5cGUsWyJ0b3BMZWZ0IiwiYm90dG9tQ2VudGVyIiwiYm90dG9tTGVmdCIsImJvdHRvbVJpZ2h0IiwibWlkZGxlQ2VudGVyIiwibWlkZGxlTGVmdCIsIm1pZGRsZVJpZ2h0IiwidG9wQ2VudGVyIiwidG9wUmlnaHQiXSksdGhpcy5jb2xTcGFuPU1JKHtkYXRhOkEuY29sU3BhbixkZWZhdWx0VmFsdWU6MSx2YWxpZGF0ZTpBPT5BPj0xfHwtMT09PUF9KSx0aGlzLmg9QS5oP1lJKEEuaCk6IiIsdGhpcy5oQWxpZ249SEkoQS5oQWxpZ24sWyJsZWZ0IiwiY2VudGVyIiwianVzdGlmeSIsImp1c3RpZnlBbGwiLCJyYWRpeCIsInJpZ2h0Il0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5sb2NhbGU9QS5sb2NhbGV8fCIiLHRoaXMubWF4SD1ZSShBLm1heEgsIjBwdCIpLHRoaXMubWF4Vz1ZSShBLm1heFcsIjBwdCIpLHRoaXMubWluSD1ZSShBLm1pbkgsIjBwdCIpLHRoaXMubWluVz1ZSShBLm1pblcsIjBwdCIpLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMucHJlc2VuY2U9SEkoQS5wcmVzZW5jZSxbInZpc2libGUiLCJoaWRkZW4iLCJpbmFjdGl2ZSIsImludmlzaWJsZSJdKSx0aGlzLnJlbGV2YW50PUtJKEEucmVsZXZhbnQpLHRoaXMucm90YXRlPU1JKHtkYXRhOkEucm90YXRlLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOkE9PkElOTA9PTB9KSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy53PUEudz9ZSShBLncpOiIiLHRoaXMueD1ZSShBLngsIjBwdCIpLHRoaXMueT1ZSShBLnksIjBwdCIpLHRoaXMuYXNzaXN0PW51bGwsdGhpcy5iaW5kPW51bGwsdGhpcy5ib3JkZXI9bnVsbCx0aGlzLmNhbGN1bGF0ZT1udWxsLHRoaXMuY2FwdGlvbj1udWxsLHRoaXMuZGVzYz1udWxsLHRoaXMuZXh0cmFzPW51bGwsdGhpcy5mb250PW51bGwsdGhpcy5mb3JtYXQ9bnVsbCx0aGlzLml0ZW1zPW5ldyBtYygyKSx0aGlzLmtlZXA9bnVsbCx0aGlzLm1hcmdpbj1udWxsLHRoaXMucGFyYT1udWxsLHRoaXMudHJhdmVyc2FsPW51bGwsdGhpcy51aT1udWxsLHRoaXMudmFsaWRhdGU9bnVsbCx0aGlzLnZhbHVlPW51bGwsdGhpcy5iaW5kSXRlbXM9bmV3IG1jLHRoaXMuY29ubmVjdD1uZXcgbWMsdGhpcy5ldmVudD1uZXcgbWMsdGhpcy5zZXRQcm9wZXJ0eT1uZXcgbWN9W3pvXSgpe3JldHVybiEwfVttSV0oQSl7bmgodGhpcyxBKX1bYkldKEEpe2lmKG9oKHRoaXMpLCF0aGlzLnVpKXtsZXQgQTtzd2l0Y2godGhpcy51aT1uZXcgdUIoe30pLHRoaXMudWlbT29dPXRoaXNbT29dLHRoaXNbRW9dKHRoaXMudWkpLHRoaXMuaXRlbXMuY2hpbGRyZW4ubGVuZ3RoKXtjYXNlIDA6QT1uZXcgaEIoe30pLHRoaXMudWkudGV4dEVkaXQ9QTticmVhaztjYXNlIDE6QT1uZXcgTWgoe30pLHRoaXMudWkuY2hlY2tCdXR0b249QTticmVhaztjYXNlIDI6QT1uZXcgTGgoe30pLHRoaXMudWkuY2hvaWNlTGlzdD1BfXRoaXMudWlbRW9dKEEpfWlmKCF0aGlzLnVpfHwiaGlkZGVuIj09PXRoaXMucHJlc2VuY2V8fCJpbmFjdGl2ZSI9PT10aGlzLnByZXNlbmNlfHwwPT09dGhpcy5ofHwwPT09dGhpcy53KXJldHVybiBxSS5FTVBUWTt0aGlzLmNhcHRpb24mJmRlbGV0ZSB0aGlzLmNhcHRpb25bRm9dLHRoaXNbbEldKCk7Y29uc3QgZT10aGlzLmNhcHRpb24/dGhpcy5jYXB0aW9uW2JJXShBKS5odG1sOm51bGwsdD10aGlzLncsaT10aGlzLmg7bGV0IGE9MCxzPTA7dGhpcy5tYXJnaW4mJihhPXRoaXMubWFyZ2luLmxlZnRJbnNldCt0aGlzLm1hcmdpbi5yaWdodEluc2V0LHM9dGhpcy5tYXJnaW4udG9wSW5zZXQrdGhpcy5tYXJnaW4uYm90dG9tSW5zZXQpO2xldCBuPW51bGw7aWYoIiI9PT10aGlzLnd8fCIiPT09dGhpcy5oKXtsZXQgZT1udWxsLHQ9bnVsbCxpPTAscj0wO2lmKHRoaXMudWkuY2hlY2tCdXR0b24paT1yPXRoaXMudWkuY2hlY2tCdXR0b24uc2l6ZTtlbHNle2NvbnN0e3c6ZSxoOnR9PU1jKHRoaXMsQSk7bnVsbCE9PWU/KGk9ZSxyPXQpOnI9ZnVuY3Rpb24oQSxlPSExKXtsZXQgdD1udWxsO2lmKEEpe2NvbnN0IGU9VUkoQS50eXBlZmFjZSksaT1BW09vXS5mb250RmluZGVyLmZpbmQoZSk7dD1QSShBLGkpfWlmKCF0KXJldHVybntsaW5lSGVpZ2h0OjEyLGxpbmVHYXA6MixsaW5lTm9HYXA6MTB9O2NvbnN0IGk9QS5zaXplfHwxMCxhPXQubGluZUhlaWdodD9NYXRoLm1heChlPzA6MS4yLHQubGluZUhlaWdodCk6MS4yLHM9dm9pZCAwPT09dC5saW5lR2FwPy4yOnQubGluZUdhcDtyZXR1cm57bGluZUhlaWdodDphKmksbGluZUdhcDpzKmksbGluZU5vR2FwOk1hdGgubWF4KDEsYS1zKSppfX0odGhpcy5mb250LCEwKS5saW5lTm9HYXB9aWYobj1haCh0aGlzLnVpW0hvXSgpKSxpKz1uLncscis9bi5oLHRoaXMuY2FwdGlvbil7Y29uc3R7dzphLGg6cyxpc0Jyb2tlbjpufT10aGlzLmNhcHRpb25bSG9dKEEpO2lmKG4mJnRoaXNbVG9dKClbaUldKCkpcmV0dXJuIHRoaXNbQkldKCkscUkuRkFJTFVSRTtzd2l0Y2goZT1hLHQ9cyx0aGlzLmNhcHRpb24ucGxhY2VtZW50KXtjYXNlImxlZnQiOmNhc2UicmlnaHQiOmNhc2UiaW5saW5lIjplKz1pO2JyZWFrO2Nhc2UidG9wIjpjYXNlImJvdHRvbSI6dCs9cn19ZWxzZSBlPWksdD1yO2UmJiIiPT09dGhpcy53JiYoZSs9YSx0aGlzLnc9TWF0aC5taW4odGhpcy5tYXhXPD0wPzEvMDp0aGlzLm1heFcsdGhpcy5taW5XKzE8ZT9lOnRoaXMubWluVykpLHQmJiIiPT09dGhpcy5oJiYodCs9cyx0aGlzLmg9TWF0aC5taW4odGhpcy5tYXhIPD0wPzEvMDp0aGlzLm1heEgsdGhpcy5taW5IKzE8dD90OnRoaXMubWluSCkpfWlmKHRoaXNbQkldKCksSmModGhpcyksQ2godGhpcyksIXpjKHRoaXMsQSkpcmV0dXJuIHRoaXMudz10LHRoaXMuaD1pLHRoaXNbQkldKCkscUkuRkFJTFVSRTtCaCh0aGlzKTtjb25zdCByPVljKHRoaXMsImZvbnQiLCJkaW1lbnNpb25zIiwicG9zaXRpb24iLCJyb3RhdGUiLCJhbmNob3JUeXBlIiwicHJlc2VuY2UiLCJtYXJnaW4iLCJoQWxpZ24iKTt4Yyh0aGlzLHIpO2NvbnN0IGc9WyJ4ZmFGaWVsZCJdO3RoaXMuZm9udCYmZy5wdXNoKCJ4ZmFGb250IiksVGModGhpcykmJmcucHVzaCgieGZhUHJpbnRPbmx5Iik7Y29uc3Qgbz17c3R5bGU6cixpZDp0aGlzW1NJXSxjbGFzczpnfTtyLm1hcmdpbiYmKHIucGFkZGluZz1yLm1hcmdpbixkZWxldGUgci5tYXJnaW4pLHFjKHRoaXMsZyksdGhpcy5uYW1lJiYoby54ZmFOYW1lPXRoaXMubmFtZSk7Y29uc3QgST1bXSxjPXtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6byxjaGlsZHJlbjpJfTtJaCh0aGlzLG8pO2NvbnN0IGg9dGhpcy5ib3JkZXI/dGhpcy5ib3JkZXJbRkldKCk6bnVsbCxDPUxjKHRoaXMsYyxBKSxCPXRoaXMudWlbYkldKCkuaHRtbDtpZighQilyZXR1cm4gT2JqZWN0LmFzc2lnbihyLGgpLHFJLnN1Y2Nlc3ModmModGhpcyxjKSxDKTt0aGlzW3lJXSYmKEIuY2hpbGRyZW4/LlswXT9CLmNoaWxkcmVuWzBdLmF0dHJpYnV0ZXMudGFiaW5kZXg9dGhpc1t5SV06Qi5hdHRyaWJ1dGVzLnRhYmluZGV4PXRoaXNbeUldKSxCLmF0dHJpYnV0ZXMuc3R5bGV8fChCLmF0dHJpYnV0ZXMuc3R5bGU9T2JqZWN0LmNyZWF0ZShudWxsKSk7bGV0IGw9bnVsbDtpZih0aGlzLnVpLmJ1dHRvbj8oMT09PUIuY2hpbGRyZW4ubGVuZ3RoJiYoW2xdPUIuY2hpbGRyZW4uc3BsaWNlKDAsMSkpLE9iamVjdC5hc3NpZ24oQi5hdHRyaWJ1dGVzLnN0eWxlLGgpKTpPYmplY3QuYXNzaWduKHIsaCksSS5wdXNoKEIpLHRoaXMudmFsdWUpaWYodGhpcy51aS5pbWFnZUVkaXQpQi5jaGlsZHJlbi5wdXNoKHRoaXMudmFsdWVbYkldKCkuaHRtbCk7ZWxzZSBpZighdGhpcy51aS5idXR0b24pe2xldCBBPSIiO2lmKHRoaXMudmFsdWUuZXhEYXRhKUE9dGhpcy52YWx1ZS5leERhdGFbd0ldKCk7ZWxzZSBpZih0aGlzLnZhbHVlLnRleHQpQT10aGlzLnZhbHVlLnRleHRbSG9dKCk7ZWxzZXtjb25zdCBlPXRoaXMudmFsdWVbYkldKCkuaHRtbDtudWxsIT09ZSYmKEE9ZS5jaGlsZHJlblswXS52YWx1ZSl9dGhpcy51aS50ZXh0RWRpdCYmdGhpcy52YWx1ZS50ZXh0Py5tYXhDaGFycyYmKEIuY2hpbGRyZW5bMF0uYXR0cmlidXRlcy5tYXhMZW5ndGg9dGhpcy52YWx1ZS50ZXh0Lm1heENoYXJzKSxBJiYodGhpcy51aS5udW1lcmljRWRpdCYmKEE9cGFyc2VGbG9hdChBKSxBPWlzTmFOKEEpPyIiOkEudG9TdHJpbmcoKSksInRleHRhcmVhIj09PUIuY2hpbGRyZW5bMF0ubmFtZT9CLmNoaWxkcmVuWzBdLmF0dHJpYnV0ZXMudGV4dENvbnRlbnQ9QTpCLmNoaWxkcmVuWzBdLmF0dHJpYnV0ZXMudmFsdWU9QSl9aWYoIXRoaXMudWkuaW1hZ2VFZGl0JiZCLmNoaWxkcmVuPy5bMF0mJnRoaXMuaCl7bj1ufHxhaCh0aGlzLnVpW0hvXSgpKTtsZXQgZT0wO2lmKHRoaXMuY2FwdGlvbiYmWyJ0b3AiLCJib3R0b20iXS5pbmNsdWRlcyh0aGlzLmNhcHRpb24ucGxhY2VtZW50KSl7ZT10aGlzLmNhcHRpb24ucmVzZXJ2ZSxlPD0wJiYoZT10aGlzLmNhcHRpb25bSG9dKEEpLmgpO2NvbnN0IHQ9dGhpcy5oLWUtcy1uLmg7Qi5jaGlsZHJlblswXS5hdHRyaWJ1dGVzLnN0eWxlLmhlaWdodD1HYyh0KX1lbHNlIEIuY2hpbGRyZW5bMF0uYXR0cmlidXRlcy5zdHlsZS5oZWlnaHQ9IjEwMCUifWlmKGwmJkIuY2hpbGRyZW4ucHVzaChsKSwhZSlyZXR1cm4gQi5hdHRyaWJ1dGVzLmNsYXNzJiZCLmF0dHJpYnV0ZXMuY2xhc3MucHVzaCgieGZhTGVmdCIpLHRoaXMudz10LHRoaXMuaD1pLHFJLnN1Y2Nlc3ModmModGhpcyxjKSxDKTtpZih0aGlzLnVpLmJ1dHRvbilyZXR1cm4gci5wYWRkaW5nJiZkZWxldGUgci5wYWRkaW5nLCJkaXYiPT09ZS5uYW1lJiYoZS5uYW1lPSJzcGFuIiksQi5jaGlsZHJlbi5wdXNoKGUpLHFJLnN1Y2Nlc3MoYyxDKTtzd2l0Y2godGhpcy51aS5jaGVja0J1dHRvbiYmKGUuYXR0cmlidXRlcy5jbGFzc1swXT0ieGZhQ2FwdGlvbkZvckNoZWNrQnV0dG9uIiksQi5hdHRyaWJ1dGVzLmNsYXNzfHwoQi5hdHRyaWJ1dGVzLmNsYXNzPVtdKSxCLmNoaWxkcmVuLnNwbGljZSgwLDAsZSksdGhpcy5jYXB0aW9uLnBsYWNlbWVudCl7Y2FzZSJsZWZ0IjpjYXNlImlubGluZSI6Qi5hdHRyaWJ1dGVzLmNsYXNzLnB1c2goInhmYUxlZnQiKTticmVhaztjYXNlInJpZ2h0IjpCLmF0dHJpYnV0ZXMuY2xhc3MucHVzaCgieGZhUmlnaHQiKTticmVhaztjYXNlInRvcCI6Qi5hdHRyaWJ1dGVzLmNsYXNzLnB1c2goInhmYVRvcCIpO2JyZWFrO2Nhc2UiYm90dG9tIjpCLmF0dHJpYnV0ZXMuY2xhc3MucHVzaCgieGZhQm90dG9tIil9cmV0dXJuIHRoaXMudz10LHRoaXMuaD1pLHFJLnN1Y2Nlc3ModmModGhpcyxjKSxDKX19Y2xhc3MgaEMgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiZmlsbCIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5wcmVzZW5jZT1ISShBLnByZXNlbmNlLFsidmlzaWJsZSIsImhpZGRlbiIsImluYWN0aXZlIiwiaW52aXNpYmxlIl0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmNvbG9yPW51bGwsdGhpcy5leHRyYXM9bnVsbCx0aGlzLmxpbmVhcj1udWxsLHRoaXMucGF0dGVybj1udWxsLHRoaXMucmFkaWFsPW51bGwsdGhpcy5zb2xpZD1udWxsLHRoaXMuc3RpcHBsZT1udWxsfVtGSV0oKXtjb25zdCBBPXRoaXNbUG9dKCksZT1BW1BvXSgpW1BvXSgpLHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtsZXQgaT0iY29sb3IiLGE9aTtBIGluc3RhbmNlb2YgYmgmJihpPSJiYWNrZ3JvdW5kLWNvbG9yIixhPSJiYWNrZ3JvdW5kIixlIGluc3RhbmNlb2YgdUImJih0LmJhY2tncm91bmRDb2xvcj0id2hpdGUiKSksKEEgaW5zdGFuY2VvZiBYQ3x8QSBpbnN0YW5jZW9mIHVoKSYmKGk9YT0iZmlsbCIsdC5maWxsPSJ3aGl0ZSIpO2Zvcihjb25zdCBBIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpKXtpZigiZXh0cmFzIj09PUF8fCJjb2xvciI9PT1BKWNvbnRpbnVlO2NvbnN0IGU9dGhpc1tBXTtpZighKGUgaW5zdGFuY2VvZiBwYykpY29udGludWU7Y29uc3Qgcz1lW0ZJXSh0aGlzLmNvbG9yKTtyZXR1cm4gcyYmKHRbcy5zdGFydHNXaXRoKCIjIik/aTphXT1zKSx0fWlmKHRoaXMuY29sb3I/LnZhbHVlKXtjb25zdCBBPXRoaXMuY29sb3JbRkldKCk7dFtBLnN0YXJ0c1dpdGgoIiMiKT9pOmFdPUF9cmV0dXJuIHR9fWNsYXNzIENDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImZpbHRlciIsITApLHRoaXMuYWRkUmV2b2NhdGlvbkluZm89SEkoQS5hZGRSZXZvY2F0aW9uSW5mbyxbIiIsInJlcXVpcmVkIiwib3B0aW9uYWwiLCJub25lIl0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMudmVyc2lvbj1NSSh7ZGF0YTp0aGlzLnZlcnNpb24sZGVmYXVsdFZhbHVlOjUsdmFsaWRhdGU6QT0+QT49MSYmQTw9NX0pLHRoaXMuYXBwZWFyYW5jZUZpbHRlcj1udWxsLHRoaXMuY2VydGlmaWNhdGVzPW51bGwsdGhpcy5kaWdlc3RNZXRob2RzPW51bGwsdGhpcy5lbmNvZGluZ3M9bnVsbCx0aGlzLmVuY3J5cHRpb25NZXRob2RzPW51bGwsdGhpcy5oYW5kbGVyPW51bGwsdGhpcy5sb2NrRG9jdW1lbnQ9bnVsbCx0aGlzLm1kcD1udWxsLHRoaXMucmVhc29ucz1udWxsLHRoaXMudGltZVN0YW1wPW51bGx9fWNsYXNzIEJDIGV4dGVuZHMgRGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImZsb2F0IiksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm5hbWU9QS5uYW1lfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiJ9W1NvXSgpe2NvbnN0IEE9cGFyc2VGbG9hdCh0aGlzW0RvXS50cmltKCkpO3RoaXNbRG9dPWlzTmFOKEEpP251bGw6QX1bYkldKEEpe3JldHVybiBoaChudWxsIT09dGhpc1tEb10/dGhpc1tEb10udG9TdHJpbmcoKToiIil9fWNsYXNzIGxDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImZvbnQiLCEwKSx0aGlzLmJhc2VsaW5lU2hpZnQ9WUkoQS5iYXNlbGluZVNoaWZ0KSx0aGlzLmZvbnRIb3Jpem9udGFsU2NhbGU9TEkoe2RhdGE6QS5mb250SG9yaXpvbnRhbFNjYWxlLGRlZmF1bHRWYWx1ZToxMDAsdmFsaWRhdGU6QT0+QT49MH0pLHRoaXMuZm9udFZlcnRpY2FsU2NhbGU9TEkoe2RhdGE6QS5mb250VmVydGljYWxTY2FsZSxkZWZhdWx0VmFsdWU6MTAwLHZhbGlkYXRlOkE9PkE+PTB9KSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMua2VybmluZ01vZGU9SEkoQS5rZXJuaW5nTW9kZSxbIm5vbmUiLCJwYWlyIl0pLHRoaXMubGV0dGVyU3BhY2luZz1ZSShBLmxldHRlclNwYWNpbmcsIjAiKSx0aGlzLmxpbmVUaHJvdWdoPU1JKHtkYXRhOkEubGluZVRocm91Z2gsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+MT09PUF8fDI9PT1BfSksdGhpcy5saW5lVGhyb3VnaFBlcmlvZD1ISShBLmxpbmVUaHJvdWdoUGVyaW9kLFsiYWxsIiwid29yZCJdKSx0aGlzLm92ZXJsaW5lPU1JKHtkYXRhOkEub3ZlcmxpbmUsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+MT09PUF8fDI9PT1BfSksdGhpcy5vdmVybGluZVBlcmlvZD1ISShBLm92ZXJsaW5lUGVyaW9kLFsiYWxsIiwid29yZCJdKSx0aGlzLnBvc3R1cmU9SEkoQS5wb3N0dXJlLFsibm9ybWFsIiwiaXRhbGljIl0pLHRoaXMuc2l6ZT1ZSShBLnNpemUsIjEwcHQiKSx0aGlzLnR5cGVmYWNlPUEudHlwZWZhY2V8fCJDb3VyaWVyIix0aGlzLnVuZGVybGluZT1NSSh7ZGF0YTpBLnVuZGVybGluZSxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTpBPT4xPT09QXx8Mj09PUF9KSx0aGlzLnVuZGVybGluZVBlcmlvZD1ISShBLnVuZGVybGluZVBlcmlvZCxbImFsbCIsIndvcmQiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMud2VpZ2h0PUhJKEEud2VpZ2h0LFsibm9ybWFsIiwiYm9sZCJdKSx0aGlzLmV4dHJhcz1udWxsLHRoaXMuZmlsbD1udWxsfVtmb10oQSl7c3VwZXJbZm9dKEEpLHRoaXNbT29dLnVzZWRUeXBlZmFjZXMuYWRkKHRoaXMudHlwZWZhY2UpfVtGSV0oKXtjb25zdCBBPVljKHRoaXMsImZpbGwiKSxlPUEuY29sb3I7cmV0dXJuIGUmJigiIzAwMDAwMCI9PT1lP2RlbGV0ZSBBLmNvbG9yOmUuc3RhcnRzV2l0aCgiIyIpfHwoQS5iYWNrZ3JvdW5kPWUsQS5iYWNrZ3JvdW5kQ2xpcD0idGV4dCIsQS5jb2xvcj0idHJhbnNwYXJlbnQiKSksdGhpcy5iYXNlbGluZVNoaWZ0JiYoQS52ZXJ0aWNhbEFsaWduPUdjKHRoaXMuYmFzZWxpbmVTaGlmdCkpLEEuZm9udEtlcm5pbmc9Im5vbmUiPT09dGhpcy5rZXJuaW5nTW9kZT8ibm9uZSI6Im5vcm1hbCIsQS5sZXR0ZXJTcGFjaW5nPUdjKHRoaXMubGV0dGVyU3BhY2luZyksMCE9PXRoaXMubGluZVRocm91Z2gmJihBLnRleHREZWNvcmF0aW9uPSJsaW5lLXRocm91Z2giLDI9PT10aGlzLmxpbmVUaHJvdWdoJiYoQS50ZXh0RGVjb3JhdGlvblN0eWxlPSJkb3VibGUiKSksMCE9PXRoaXMub3ZlcmxpbmUmJihBLnRleHREZWNvcmF0aW9uPSJvdmVybGluZSIsMj09PXRoaXMub3ZlcmxpbmUmJihBLnRleHREZWNvcmF0aW9uU3R5bGU9ImRvdWJsZSIpKSxBLmZvbnRTdHlsZT10aGlzLnBvc3R1cmUsQS5mb250U2l6ZT1HYyguOTkqdGhpcy5zaXplKSxPYyh0aGlzLHRoaXMsdGhpc1tPb10uZm9udEZpbmRlcixBKSwwIT09dGhpcy51bmRlcmxpbmUmJihBLnRleHREZWNvcmF0aW9uPSJ1bmRlcmxpbmUiLDI9PT10aGlzLnVuZGVybGluZSYmKEEudGV4dERlY29yYXRpb25TdHlsZT0iZG91YmxlIikpLEEuZm9udFdlaWdodD10aGlzLndlaWdodCxBfX1jbGFzcyBRQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJmb3JtYXQiLCEwKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmV4dHJhcz1udWxsLHRoaXMucGljdHVyZT1udWxsfX1jbGFzcyBFQyBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJoYW5kbGVyIiksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnR5cGU9SEkoQS50eXBlLFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiJ9fWNsYXNzIHVDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImh5cGhlbmF0aW9uIiksdGhpcy5leGNsdWRlQWxsQ2Fwcz1NSSh7ZGF0YTpBLmV4Y2x1ZGVBbGxDYXBzLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOkE9PjE9PT1BfSksdGhpcy5leGNsdWRlSW5pdGlhbENhcD1NSSh7ZGF0YTpBLmV4Y2x1ZGVJbml0aWFsQ2FwLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOkE9PjE9PT1BfSksdGhpcy5oeXBoZW5hdGU9TUkoe2RhdGE6QS5oeXBoZW5hdGUsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+MT09PUF9KSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMucHVzaENoYXJhY3RlckNvdW50PU1JKHtkYXRhOkEucHVzaENoYXJhY3RlckNvdW50LGRlZmF1bHRWYWx1ZTozLHZhbGlkYXRlOkE9PkE+PTB9KSx0aGlzLnJlbWFpbkNoYXJhY3RlckNvdW50PU1JKHtkYXRhOkEucmVtYWluQ2hhcmFjdGVyQ291bnQsZGVmYXVsdFZhbHVlOjMsdmFsaWRhdGU6QT0+QT49MH0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLndvcmRDaGFyYWN0ZXJDb3VudD1NSSh7ZGF0YTpBLndvcmRDaGFyYWN0ZXJDb3VudCxkZWZhdWx0VmFsdWU6Nyx2YWxpZGF0ZTpBPT5BPj0wfSl9fWNsYXNzIGRDIGV4dGVuZHMga2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImltYWdlIiksdGhpcy5hc3BlY3Q9SEkoQS5hc3BlY3QsWyJmaXQiLCJhY3R1YWwiLCJoZWlnaHQiLCJub25lIiwid2lkdGgiXSksdGhpcy5jb250ZW50VHlwZT1BLmNvbnRlbnRUeXBlfHwiIix0aGlzLmhyZWY9QS5ocmVmfHwiIix0aGlzLmlkPUEuaWR8fCIiLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMudHJhbnNmZXJFbmNvZGluZz1ISShBLnRyYW5zZmVyRW5jb2RpbmcsWyJiYXNlNjQiLCJub25lIiwicGFja2FnZSJdKSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiJ9W2JJXSgpe2lmKHRoaXMuY29udGVudFR5cGUmJiF0aC5oYXModGhpcy5jb250ZW50VHlwZS50b0xvd2VyQ2FzZSgpKSlyZXR1cm4gcUkuRU1QVFk7bGV0IEE9dGhpc1tPb10uaW1hZ2VzJiZ0aGlzW09vXS5pbWFnZXMuZ2V0KHRoaXMuaHJlZik7aWYoIUEmJih0aGlzLmhyZWZ8fCF0aGlzW0RvXSkpcmV0dXJuIHFJLkVNUFRZO2lmKEF8fCJiYXNlNjQiIT09dGhpcy50cmFuc2ZlckVuY29kaW5nfHwoQT1qKGF0b2IodGhpc1tEb10pKSksIUEpcmV0dXJuIHFJLkVNUFRZO2lmKCF0aGlzLmNvbnRlbnRUeXBlKXtmb3IoY29uc3RbZSx0XW9mIGloKWlmKEEubGVuZ3RoPmUubGVuZ3RoJiZlLmV2ZXJ5KCgoZSx0KT0+ZT09PUFbdF0pKSl7dGhpcy5jb250ZW50VHlwZT10O2JyZWFrfWlmKCF0aGlzLmNvbnRlbnRUeXBlKXJldHVybiBxSS5FTVBUWX1jb25zdCBlPW5ldyBCbG9iKFtBXSx7dHlwZTp0aGlzLmNvbnRlbnRUeXBlfSk7bGV0IHQ7c3dpdGNoKHRoaXMuYXNwZWN0KXtjYXNlImZpdCI6Y2FzZSJhY3R1YWwiOmJyZWFrO2Nhc2UiaGVpZ2h0Ijp0PXtoZWlnaHQ6IjEwMCUiLG9iamVjdEZpdDoiZmlsbCJ9O2JyZWFrO2Nhc2Uibm9uZSI6dD17d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsb2JqZWN0Rml0OiJmaWxsIn07YnJlYWs7Y2FzZSJ3aWR0aCI6dD17d2lkdGg6IjEwMCUiLG9iamVjdEZpdDoiZmlsbCJ9fWNvbnN0IGk9dGhpc1tQb10oKTtyZXR1cm4gcUkuc3VjY2Vzcyh7bmFtZToiaW1nIixhdHRyaWJ1dGVzOntjbGFzczpbInhmYUltYWdlIl0sc3R5bGU6dCxzcmM6VVJMLmNyZWF0ZU9iamVjdFVSTChlKSxhbHQ6aT9jaChpW1BvXSgpKTpudWxsfX0pfX1jbGFzcyBmQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJpbWFnZUVkaXQiLCEwKSx0aGlzLmRhdGE9SEkoQS5kYXRhLFsibGluayIsImVtYmVkIl0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuYm9yZGVyPW51bGwsdGhpcy5leHRyYXM9bnVsbCx0aGlzLm1hcmdpbj1udWxsfVtiSV0oQSl7cmV0dXJuImVtYmVkIj09PXRoaXMuZGF0YT9xSS5zdWNjZXNzKHtuYW1lOiJkaXYiLGNoaWxkcmVuOltdLGF0dHJpYnV0ZXM6e319KTpxSS5FTVBUWX19Y2xhc3MgcEMgZXh0ZW5kcyBEY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiaW50ZWdlciIpLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifVtTb10oKXtjb25zdCBBPXBhcnNlSW50KHRoaXNbRG9dLnRyaW0oKSwxMCk7dGhpc1tEb109aXNOYU4oQSk/bnVsbDpBfVtiSV0oQSl7cmV0dXJuIGhoKG51bGwhPT10aGlzW0RvXT90aGlzW0RvXS50b1N0cmluZygpOiIiKX19Y2xhc3MgbUMgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywiaXNzdWVycyIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy50eXBlPUhJKEEudHlwZSxbIm9wdGlvbmFsIiwicmVxdWlyZWQiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuY2VydGlmaWNhdGU9bmV3IG1jfX1jbGFzcyB5QyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJpdGVtcyIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy5wcmVzZW5jZT1ISShBLnByZXNlbmNlLFsidmlzaWJsZSIsImhpZGRlbiIsImluYWN0aXZlIiwiaW52aXNpYmxlIl0pLHRoaXMucmVmPUEucmVmfHwiIix0aGlzLnNhdmU9TUkoe2RhdGE6QS5zYXZlLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOkE9PjE9PT1BfSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuYm9vbGVhbj1uZXcgbWMsdGhpcy5kYXRlPW5ldyBtYyx0aGlzLmRhdGVUaW1lPW5ldyBtYyx0aGlzLmRlY2ltYWw9bmV3IG1jLHRoaXMuZXhEYXRhPW5ldyBtYyx0aGlzLmZsb2F0PW5ldyBtYyx0aGlzLmltYWdlPW5ldyBtYyx0aGlzLmludGVnZXI9bmV3IG1jLHRoaXMudGV4dD1uZXcgbWMsdGhpcy50aW1lPW5ldyBtY31bYkldKCl7Y29uc3QgQT1bXTtmb3IoY29uc3QgZSBvZiB0aGlzW3ZvXSgpKUEucHVzaChlW3dJXSgpKTtyZXR1cm4gcUkuc3VjY2VzcyhBKX19Y2xhc3Mgd0MgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywia2VlcCIsITApLHRoaXMuaWQ9QS5pZHx8IiI7Y29uc3QgZT1bIm5vbmUiLCJjb250ZW50QXJlYSIsInBhZ2VBcmVhIl07dGhpcy5pbnRhY3Q9SEkoQS5pbnRhY3QsZSksdGhpcy5uZXh0PUhJKEEubmV4dCxlKSx0aGlzLnByZXZpb3VzPUhJKEEucHJldmlvdXMsZSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuZXh0cmFzPW51bGx9fWNsYXNzIERDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsImtleVVzYWdlIik7Y29uc3QgZT1bIiIsInllcyIsIm5vIl07dGhpcy5jcmxTaWduPUhJKEEuY3JsU2lnbixlKSx0aGlzLmRhdGFFbmNpcGhlcm1lbnQ9SEkoQS5kYXRhRW5jaXBoZXJtZW50LGUpLHRoaXMuZGVjaXBoZXJPbmx5PUhJKEEuZGVjaXBoZXJPbmx5LGUpLHRoaXMuZGlnaXRhbFNpZ25hdHVyZT1ISShBLmRpZ2l0YWxTaWduYXR1cmUsZSksdGhpcy5lbmNpcGhlck9ubHk9SEkoQS5lbmNpcGhlck9ubHksZSksdGhpcy5pZD1BLmlkfHwiIix0aGlzLmtleUFncmVlbWVudD1ISShBLmtleUFncmVlbWVudCxlKSx0aGlzLmtleUNlcnRTaWduPUhJKEEua2V5Q2VydFNpZ24sZSksdGhpcy5rZXlFbmNpcGhlcm1lbnQ9SEkoQS5rZXlFbmNpcGhlcm1lbnQsZSksdGhpcy5ub25SZXB1ZGlhdGlvbj1ISShBLm5vblJlcHVkaWF0aW9uLGUpLHRoaXMudHlwZT1ISShBLnR5cGUsWyJvcHRpb25hbCIsInJlcXVpcmVkIl0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn19Y2xhc3MgYkMgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywibGluZSIsITApLHRoaXMuaGFuZD1ISShBLmhhbmQsWyJldmVuIiwibGVmdCIsInJpZ2h0Il0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5zbG9wZT1ISShBLnNsb3BlLFsiXFwiLCIvIl0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmVkZ2U9bnVsbH1bYkldKCl7Y29uc3QgQT10aGlzW1BvXSgpW1BvXSgpLGU9dGhpcy5lZGdlfHxuZXcgX2goe30pLHQ9ZVtGSV0oKSxpPU9iamVjdC5jcmVhdGUobnVsbCksYT0idmlzaWJsZSI9PT1lLnByZXNlbmNlP2UudGhpY2tuZXNzOjA7bGV0IHMsbixyLGc7aS5zdHJva2VXaWR0aD1HYyhhKSxpLnN0cm9rZT10LmNvbG9yO2xldCBvPSIxMDAlIixJPSIxMDAlIjtBLnc8PWE/KFtzLG4scixnXT1bIjUwJSIsMCwiNTAlIiwiMTAwJSJdLG89aS5zdHJva2VXaWR0aCk6QS5oPD1hPyhbcyxuLHIsZ109WzAsIjUwJSIsIjEwMCUiLCI1MCUiXSxJPWkuc3Ryb2tlV2lkdGgpOiJcXCI9PT10aGlzLnNsb3BlP1tzLG4scixnXT1bMCwwLCIxMDAlIiwiMTAwJSJdOltzLG4scixnXT1bMCwiMTAwJSIsIjEwMCUiLDBdO2NvbnN0IGM9e25hbWU6InN2ZyIsY2hpbGRyZW46W3tuYW1lOiJsaW5lIixhdHRyaWJ1dGVzOnt4bWxuczpBaCx4MTpzLHkxOm4seDI6cix5MjpnLHN0eWxlOml9fV0sYXR0cmlidXRlczp7eG1sbnM6QWgsd2lkdGg6byxoZWlnaHQ6SSxzdHlsZTp7b3ZlcmZsb3c6InZpc2libGUifX19O3JldHVybiBzaChBKT9xSS5zdWNjZXNzKHtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6e3N0eWxlOntkaXNwbGF5OiJpbmxpbmUiLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUifX0sY2hpbGRyZW46W2NdfSk6KGMuYXR0cmlidXRlcy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHFJLnN1Y2Nlc3MoYykpfX1jbGFzcyBrQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJsaW5lYXIiLCEwKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudHlwZT1ISShBLnR5cGUsWyJ0b1JpZ2h0IiwidG9Cb3R0b20iLCJ0b0xlZnQiLCJ0b1RvcCJdKSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5jb2xvcj1udWxsLHRoaXMuZXh0cmFzPW51bGx9W0ZJXShBKXtyZXR1cm4gQT1BP0FbRkldKCk6IiNGRkZGRkYiLGBsaW5lYXItZ3JhZGllbnQoJHt0aGlzLnR5cGUucmVwbGFjZSgvKFtSQkxUXSkvLCIgJDEiKS50b0xvd2VyQ2FzZSgpfSwgJHtBfSwgJHt0aGlzLmNvbG9yP3RoaXMuY29sb3JbRkldKCk6IiMwMDAwMDAifSlgfX1jbGFzcyBGQyBleHRlbmRzIERje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJsb2NrRG9jdW1lbnQiKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudHlwZT1ISShBLnR5cGUsWyJvcHRpb25hbCIsInJlcXVpcmVkIl0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn1bU29dKCl7dGhpc1tEb109SEkodGhpc1tEb10sWyJhdXRvIiwiMCIsIjEiXSl9fWNsYXNzIFNDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsIm1hbmlmZXN0IiwhMCksdGhpcy5hY3Rpb249SEkoQS5hY3Rpb24sWyJpbmNsdWRlIiwiYWxsIiwiZXhjbHVkZSJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmV4dHJhcz1udWxsLHRoaXMucmVmPW5ldyBtY319Y2xhc3MgUkMgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywibWFyZ2luIiwhMCksdGhpcy5ib3R0b21JbnNldD1ZSShBLmJvdHRvbUluc2V0LCIwIiksdGhpcy5pZD1BLmlkfHwiIix0aGlzLmxlZnRJbnNldD1ZSShBLmxlZnRJbnNldCwiMCIpLHRoaXMucmlnaHRJbnNldD1ZSShBLnJpZ2h0SW5zZXQsIjAiKSx0aGlzLnRvcEluc2V0PVlJKEEudG9wSW5zZXQsIjAiKSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5leHRyYXM9bnVsbH1bRkldKCl7cmV0dXJue21hcmdpbjpHYyh0aGlzLnRvcEluc2V0KSsiICIrR2ModGhpcy5yaWdodEluc2V0KSsiICIrR2ModGhpcy5ib3R0b21JbnNldCkrIiAiK0djKHRoaXMubGVmdEluc2V0KX19fWNsYXNzIEdDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsIm1kcCIpLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5wZXJtaXNzaW9ucz1NSSh7ZGF0YTpBLnBlcm1pc3Npb25zLGRlZmF1bHRWYWx1ZToyLHZhbGlkYXRlOkE9PjE9PT1BfHwzPT09QX0pLHRoaXMuc2lnbmF0dXJlVHlwZT1ISShBLnNpZ25hdHVyZVR5cGUsWyJmaWxsZXIiLCJhdXRob3IiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyBOQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJtZWRpdW0iKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMuaW1hZ2luZ0JCb3g9ZnVuY3Rpb24oQSl7Y29uc3QgZT0tMTtpZighQSlyZXR1cm57eDplLHk6ZSx3aWR0aDplLGhlaWdodDplfTtjb25zdCB0PUEudHJpbSgpLnNwbGl0KC9ccyosXHMqLykubWFwKChBPT5ZSShBLCItMSIpKSk7aWYodC5sZW5ndGg8NHx8dFsyXTwwfHx0WzNdPDApcmV0dXJue3g6ZSx5OmUsd2lkdGg6ZSxoZWlnaHQ6ZX07Y29uc3RbaSxhLHMsbl09dDtyZXR1cm57eDppLHk6YSx3aWR0aDpzLGhlaWdodDpufX0oQS5pbWFnaW5nQkJveCksdGhpcy5sb25nPVlJKEEubG9uZyksdGhpcy5vcmllbnRhdGlvbj1ISShBLm9yaWVudGF0aW9uLFsicG9ydHJhaXQiLCJsYW5kc2NhcGUiXSksdGhpcy5zaG9ydD1ZSShBLnNob3J0KSx0aGlzLnN0b2NrPUEuc3RvY2t8fCIiLHRoaXMudHJheUluPUhJKEEudHJheUluLFsiYXV0byIsImRlbGVnYXRlIiwicGFnZUZyb250Il0pLHRoaXMudHJheU91dD1ISShBLnRyYXlPdXQsWyJhdXRvIiwiZGVsZWdhdGUiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyB4QyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJtZXNzYWdlIiwhMCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy50ZXh0PW5ldyBtY319Y2xhc3MgVUMgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywibnVtZXJpY0VkaXQiLCEwKSx0aGlzLmhTY3JvbGxQb2xpY3k9SEkoQS5oU2Nyb2xsUG9saWN5LFsiYXV0byIsIm9mZiIsIm9uIl0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuYm9yZGVyPW51bGwsdGhpcy5jb21iPW51bGwsdGhpcy5leHRyYXM9bnVsbCx0aGlzLm1hcmdpbj1udWxsfVtiSV0oQSl7Y29uc3QgZT1ZYyh0aGlzLCJib3JkZXIiLCJmb250IiwibWFyZ2luIiksdD10aGlzW1BvXSgpW1BvXSgpLGk9e25hbWU6ImlucHV0IixhdHRyaWJ1dGVzOnt0eXBlOiJ0ZXh0IixmaWVsZElkOnRbU0ldLGRhdGFJZDp0W2JvXT8uW1NJXXx8dFtTSV0sY2xhc3M6WyJ4ZmFUZXh0ZmllbGQiXSxzdHlsZTplLCJhcmlhLWxhYmVsIjpjaCh0KSwiYXJpYS1yZXF1aXJlZCI6ITF9fTtyZXR1cm4gZ2godCkmJihpLmF0dHJpYnV0ZXNbImFyaWEtcmVxdWlyZWQiXT0hMCxpLmF0dHJpYnV0ZXMucmVxdWlyZWQ9ITApLHFJLnN1Y2Nlc3Moe25hbWU6ImxhYmVsIixhdHRyaWJ1dGVzOntjbGFzczpbInhmYUxhYmVsIl19LGNoaWxkcmVuOltpXX0pfX1jbGFzcyBNQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJvY2N1ciIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5pbml0aWFsPSIiIT09QS5pbml0aWFsP01JKHtkYXRhOkEuaW5pdGlhbCxkZWZhdWx0VmFsdWU6IiIsdmFsaWRhdGU6QT0+ITB9KToiIix0aGlzLm1heD0iIiE9PUEubWF4P01JKHtkYXRhOkEubWF4LGRlZmF1bHRWYWx1ZToxLHZhbGlkYXRlOkE9PiEwfSk6IiIsdGhpcy5taW49IiIhPT1BLm1pbj9NSSh7ZGF0YTpBLm1pbixkZWZhdWx0VmFsdWU6MSx2YWxpZGF0ZTpBPT4hMH0pOiIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmV4dHJhcz1udWxsfVtmb10oKXtjb25zdCBBPXRoaXNbUG9dKCksZT10aGlzLm1pbjsiIj09PXRoaXMubWluJiYodGhpcy5taW49QSBpbnN0YW5jZW9mIFlDfHxBIGluc3RhbmNlb2YgdkM/MDoxKSwiIj09PXRoaXMubWF4JiYodGhpcy5tYXg9IiI9PT1lP0EgaW5zdGFuY2VvZiBZQ3x8QSBpbnN0YW5jZW9mIHZDPy0xOjE6dGhpcy5taW4pLC0xIT09dGhpcy5tYXgmJnRoaXMubWF4PHRoaXMubWluJiYodGhpcy5tYXg9dGhpcy5taW4pLCIiPT09dGhpcy5pbml0aWFsJiYodGhpcy5pbml0aWFsPUEgaW5zdGFuY2VvZiBJQj8xOnRoaXMubWluKX19Y2xhc3MgTEMgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywib2lkIiksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm5hbWU9QS5uYW1lfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiJ9fWNsYXNzIEpDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsIm9pZHMiLCEwKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudHlwZT1ISShBLnR5cGUsWyJvcHRpb25hbCIsInJlcXVpcmVkIl0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLm9pZD1uZXcgbWN9fWNsYXNzIEhDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsIm92ZXJmbG93IiksdGhpcy5pZD1BLmlkfHwiIix0aGlzLmxlYWRlcj1BLmxlYWRlcnx8IiIsdGhpcy50YXJnZXQ9QS50YXJnZXR8fCIiLHRoaXMudHJhaWxlcj1BLnRyYWlsZXJ8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn1bSG9dKCl7aWYoIXRoaXNbRm9dKXtjb25zdCBBPXRoaXNbUG9dKCksZT10aGlzW1dvXSgpLHQ9ZVtkSV0odGhpcy50YXJnZXQsQSksaT1lW2RJXSh0aGlzLmxlYWRlcixBKSxhPWVbZEldKHRoaXMudHJhaWxlcixBKTt0aGlzW0ZvXT17dGFyZ2V0OnQ/LlswXXx8bnVsbCxsZWFkZXI6aT8uWzBdfHxudWxsLHRyYWlsZXI6YT8uWzBdfHxudWxsLGFkZExlYWRlcjohMSxhZGRUcmFpbGVyOiExfX1yZXR1cm4gdGhpc1tGb119fWNsYXNzIFlDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsInBhZ2VBcmVhIiwhMCksdGhpcy5ibGFua09yTm90Qmxhbms9SEkoQS5ibGFua09yTm90QmxhbmssWyJhbnkiLCJibGFuayIsIm5vdEJsYW5rIl0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5pbml0aWFsTnVtYmVyPU1JKHtkYXRhOkEuaW5pdGlhbE51bWJlcixkZWZhdWx0VmFsdWU6MSx2YWxpZGF0ZTpBPT4hMH0pLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMubnVtYmVyZWQ9TUkoe2RhdGE6QS5udW1iZXJlZCxkZWZhdWx0VmFsdWU6MSx2YWxpZGF0ZTpBPT4hMH0pLHRoaXMub2RkT3JFdmVuPUhJKEEub2RkT3JFdmVuLFsiYW55IiwiZXZlbiIsIm9kZCJdKSx0aGlzLnBhZ2VQb3NpdGlvbj1ISShBLnBhZ2VQb3NpdGlvbixbImFueSIsImZpcnN0IiwibGFzdCIsIm9ubHkiLCJyZXN0Il0pLHRoaXMucmVsZXZhbnQ9S0koQS5yZWxldmFudCksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuZGVzYz1udWxsLHRoaXMuZXh0cmFzPW51bGwsdGhpcy5tZWRpdW09bnVsbCx0aGlzLm9jY3VyPW51bGwsdGhpcy5hcmVhPW5ldyBtYyx0aGlzLmNvbnRlbnRBcmVhPW5ldyBtYyx0aGlzLmRyYXc9bmV3IG1jLHRoaXMuZXhjbEdyb3VwPW5ldyBtYyx0aGlzLmZpZWxkPW5ldyBtYyx0aGlzLnN1YmZvcm09bmV3IG1jfVtzSV0oKXtyZXR1cm4gdGhpc1tGb10/IXRoaXMub2NjdXJ8fC0xPT09dGhpcy5vY2N1ci5tYXh8fHRoaXNbRm9dLm51bWJlck9mVXNlPHRoaXMub2NjdXIubWF4Oih0aGlzW0ZvXT17bnVtYmVyT2ZVc2U6MH0sITApfVtwb10oKXtkZWxldGUgdGhpc1tGb119W3FvXSgpe3RoaXNbRm9dfHwodGhpc1tGb109e251bWJlck9mVXNlOjB9KTtjb25zdCBBPXRoaXNbUG9dKCk7cmV0dXJuIm9yZGVyZWRPY2N1cnJlbmNlIj09PUEucmVsYXRpb24mJnRoaXNbc0ldKCk/KHRoaXNbRm9dLm51bWJlck9mVXNlKz0xLHRoaXMpOkFbcW9dKCl9W3hvXSgpe3JldHVybiB0aGlzW0ZvXS5zcGFjZXx8e3dpZHRoOjAsaGVpZ2h0OjB9fVtiSV0oKXt0aGlzW0ZvXXx8KHRoaXNbRm9dPXtudW1iZXJPZlVzZToxfSk7Y29uc3QgQT1bXTt0aGlzW0ZvXS5jaGlsZHJlbj1BO2NvbnN0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtpZih0aGlzLm1lZGl1bSYmdGhpcy5tZWRpdW0uc2hvcnQmJnRoaXMubWVkaXVtLmxvbmcpe2lmKGUud2lkdGg9R2ModGhpcy5tZWRpdW0uc2hvcnQpLGUuaGVpZ2h0PUdjKHRoaXMubWVkaXVtLmxvbmcpLHRoaXNbRm9dLnNwYWNlPXt3aWR0aDp0aGlzLm1lZGl1bS5zaG9ydCxoZWlnaHQ6dGhpcy5tZWRpdW0ubG9uZ30sImxhbmRzY2FwZSI9PT10aGlzLm1lZGl1bS5vcmllbnRhdGlvbil7Y29uc3QgQT1lLndpZHRoO2Uud2lkdGg9ZS5oZWlnaHQsZS5oZWlnaHQ9QSx0aGlzW0ZvXS5zcGFjZT17d2lkdGg6dGhpcy5tZWRpdW0ubG9uZyxoZWlnaHQ6dGhpcy5tZWRpdW0uc2hvcnR9fX1lbHNlIFUoIlhGQSAtIE5vIG1lZGl1bSBzcGVjaWZpZWQgaW4gcGFnZUFyZWE6IHBsZWFzZSBmaWxlIGEgYnVnLiIpO3JldHVybiB0aGlzW3VvXSh7ZmlsdGVyOm5ldyBTZXQoWyJhcmVhIiwiZHJhdyIsImZpZWxkIiwic3ViZm9ybSJdKSxpbmNsdWRlOiEwfSksdGhpc1t1b10oe2ZpbHRlcjpuZXcgU2V0KFsiY29udGVudEFyZWEiXSksaW5jbHVkZTohMH0pLHFJLnN1Y2Nlc3Moe25hbWU6ImRpdiIsY2hpbGRyZW46QSxhdHRyaWJ1dGVzOntjbGFzczpbInhmYVBhZ2UiXSxpZDp0aGlzW1NJXSxzdHlsZTplLHhmYU5hbWU6dGhpcy5uYW1lfX0pfX1jbGFzcyB2QyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJwYWdlU2V0IiwhMCksdGhpcy5kdXBsZXhJbXBvc2l0aW9uPUhJKEEuZHVwbGV4SW1wb3NpdGlvbixbImxvbmdFZGdlIiwic2hvcnRFZGdlIl0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy5yZWxhdGlvbj1ISShBLnJlbGF0aW9uLFsib3JkZXJlZE9jY3VycmVuY2UiLCJkdXBsZXhQYWdpbmF0ZWQiLCJzaW1wbGV4UGFnaW5hdGVkIl0pLHRoaXMucmVsZXZhbnQ9S0koQS5yZWxldmFudCksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuZXh0cmFzPW51bGwsdGhpcy5vY2N1cj1udWxsLHRoaXMucGFnZUFyZWE9bmV3IG1jLHRoaXMucGFnZVNldD1uZXcgbWN9W3BvXSgpe2Zvcihjb25zdCBBIG9mIHRoaXMucGFnZUFyZWEuY2hpbGRyZW4pQVtwb10oKTtmb3IoY29uc3QgQSBvZiB0aGlzLnBhZ2VTZXQuY2hpbGRyZW4pQVtwb10oKX1bc0ldKCl7cmV0dXJuIXRoaXMub2NjdXJ8fC0xPT09dGhpcy5vY2N1ci5tYXh8fHRoaXNbRm9dLm51bWJlck9mVXNlPHRoaXMub2NjdXIubWF4fVtxb10oKXtpZih0aGlzW0ZvXXx8KHRoaXNbRm9dPXtudW1iZXJPZlVzZToxLHBhZ2VJbmRleDotMSxwYWdlU2V0SW5kZXg6LTF9KSwib3JkZXJlZE9jY3VycmVuY2UiPT09dGhpcy5yZWxhdGlvbil7aWYodGhpc1tGb10ucGFnZUluZGV4KzE8dGhpcy5wYWdlQXJlYS5jaGlsZHJlbi5sZW5ndGgpcmV0dXJuIHRoaXNbRm9dLnBhZ2VJbmRleCs9MSx0aGlzLnBhZ2VBcmVhLmNoaWxkcmVuW3RoaXNbRm9dLnBhZ2VJbmRleF1bcW9dKCk7aWYodGhpc1tGb10ucGFnZVNldEluZGV4KzE8dGhpcy5wYWdlU2V0LmNoaWxkcmVuLmxlbmd0aClyZXR1cm4gdGhpc1tGb10ucGFnZVNldEluZGV4Kz0xLHRoaXMucGFnZVNldC5jaGlsZHJlblt0aGlzW0ZvXS5wYWdlU2V0SW5kZXhdW3FvXSgpO2lmKHRoaXNbc0ldKCkpcmV0dXJuIHRoaXNbRm9dLm51bWJlck9mVXNlKz0xLHRoaXNbRm9dLnBhZ2VJbmRleD0tMSx0aGlzW0ZvXS5wYWdlU2V0SW5kZXg9LTEsdGhpc1txb10oKTtjb25zdCBBPXRoaXNbUG9dKCk7cmV0dXJuIEEgaW5zdGFuY2VvZiB2Qz9BW3FvXSgpOih0aGlzW3BvXSgpLHRoaXNbcW9dKCkpfWNvbnN0IEE9dGhpc1tXb10oKVtGb10ucGFnZU51bWJlcixlPUElMj09MD8iZXZlbiI6Im9kZCIsdD0wPT09QT8iZmlyc3QiOiJyZXN0IjtsZXQgaT10aGlzLnBhZ2VBcmVhLmNoaWxkcmVuLmZpbmQoKEE9PkEub2RkT3JFdmVuPT09ZSYmQS5wYWdlUG9zaXRpb249PT10KSk7cmV0dXJuIGl8fChpPXRoaXMucGFnZUFyZWEuY2hpbGRyZW4uZmluZCgoQT0+ImFueSI9PT1BLm9kZE9yRXZlbiYmQS5wYWdlUG9zaXRpb249PT10KSksaXx8KGk9dGhpcy5wYWdlQXJlYS5jaGlsZHJlbi5maW5kKChBPT4iYW55Ij09PUEub2RkT3JFdmVuJiYiYW55Ij09PUEucGFnZVBvc2l0aW9uKSksaXx8dGhpcy5wYWdlQXJlYS5jaGlsZHJlblswXSkpfX1jbGFzcyBLQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJwYXJhIiwhMCksdGhpcy5oQWxpZ249SEkoQS5oQWxpZ24sWyJsZWZ0IiwiY2VudGVyIiwianVzdGlmeSIsImp1c3RpZnlBbGwiLCJyYWRpeCIsInJpZ2h0Il0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5saW5lSGVpZ2h0PUEubGluZUhlaWdodD9ZSShBLmxpbmVIZWlnaHQsIjBwdCIpOiIiLHRoaXMubWFyZ2luTGVmdD1BLm1hcmdpbkxlZnQ/WUkoQS5tYXJnaW5MZWZ0LCIwcHQiKToiIix0aGlzLm1hcmdpblJpZ2h0PUEubWFyZ2luUmlnaHQ/WUkoQS5tYXJnaW5SaWdodCwiMHB0Iik6IiIsdGhpcy5vcnBoYW5zPU1JKHtkYXRhOkEub3JwaGFucyxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTpBPT5BPj0wfSksdGhpcy5wcmVzZXJ2ZT1BLnByZXNlcnZlfHwiIix0aGlzLnJhZGl4T2Zmc2V0PUEucmFkaXhPZmZzZXQ/WUkoQS5yYWRpeE9mZnNldCwiMHB0Iik6IiIsdGhpcy5zcGFjZUFib3ZlPUEuc3BhY2VBYm92ZT9ZSShBLnNwYWNlQWJvdmUsIjBwdCIpOiIiLHRoaXMuc3BhY2VCZWxvdz1BLnNwYWNlQmVsb3c/WUkoQS5zcGFjZUJlbG93LCIwcHQiKToiIix0aGlzLnRhYkRlZmF1bHQ9QS50YWJEZWZhdWx0P1lJKHRoaXMudGFiRGVmYXVsdCk6IiIsdGhpcy50YWJTdG9wcz0oQS50YWJTdG9wc3x8IiIpLnRyaW0oKS5zcGxpdCgvXHMrLykubWFwKCgoQSxlKT0+ZSUyPT0xP1lJKEEpOkEpKSx0aGlzLnRleHRJbmRlbnQ9QS50ZXh0SW5kZW50P1lJKEEudGV4dEluZGVudCwiMHB0Iik6IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMudkFsaWduPUhJKEEudkFsaWduLFsidG9wIiwiYm90dG9tIiwibWlkZGxlIl0pLHRoaXMud2lkb3dzPU1JKHtkYXRhOkEud2lkb3dzLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOkE9PkE+PTB9KSx0aGlzLmh5cGhlbmF0aW9uPW51bGx9W0ZJXSgpe2NvbnN0IEE9WWModGhpcywiaEFsaWduIik7cmV0dXJuIiIhPT10aGlzLm1hcmdpbkxlZnQmJihBLnBhZGRpbmdMZWZ0PUdjKHRoaXMubWFyZ2luTGVmdCkpLCIiIT09dGhpcy5tYXJnaW5SaWdodCYmKEEucGFkZGluZ2lnaHQ9R2ModGhpcy5tYXJnaW5SaWdodCkpLCIiIT09dGhpcy5zcGFjZUFib3ZlJiYoQS5wYWRkaW5nVG9wPUdjKHRoaXMuc3BhY2VBYm92ZSkpLCIiIT09dGhpcy5zcGFjZUJlbG93JiYoQS5wYWRkaW5nQm90dG9tPUdjKHRoaXMuc3BhY2VCZWxvdykpLCIiIT09dGhpcy50ZXh0SW5kZW50JiYoQS50ZXh0SW5kZW50PUdjKHRoaXMudGV4dEluZGVudCksS2MoQSkpLHRoaXMubGluZUhlaWdodD4wJiYoQS5saW5lSGVpZ2h0PUdjKHRoaXMubGluZUhlaWdodCkpLCIiIT09dGhpcy50YWJEZWZhdWx0JiYoQS50YWJTaXplPUdjKHRoaXMudGFiRGVmYXVsdCkpLHRoaXMudGFiU3RvcHMubGVuZ3RoLHRoaXMuaHlwaGVuYXRhdGlvbiYmT2JqZWN0LmFzc2lnbihBLHRoaXMuaHlwaGVuYXRhdGlvbltGSV0oKSksQX19Y2xhc3MgcUMgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywicGFzc3dvcmRFZGl0IiwhMCksdGhpcy5oU2Nyb2xsUG9saWN5PUhJKEEuaFNjcm9sbFBvbGljeSxbImF1dG8iLCJvZmYiLCJvbiJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMucGFzc3dvcmRDaGFyPUEucGFzc3dvcmRDaGFyfHwiKiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuYm9yZGVyPW51bGwsdGhpcy5leHRyYXM9bnVsbCx0aGlzLm1hcmdpbj1udWxsfX1jbGFzcyBUQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJwYXR0ZXJuIiwhMCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnR5cGU9SEkoQS50eXBlLFsiY3Jvc3NIYXRjaCIsImNyb3NzRGlhZ29uYWwiLCJkaWFnb25hbExlZnQiLCJkaWFnb25hbFJpZ2h0IiwiaG9yaXpvbnRhbCIsInZlcnRpY2FsIl0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmNvbG9yPW51bGwsdGhpcy5leHRyYXM9bnVsbH1bRkldKEEpe0E9QT9BW0ZJXSgpOiIjRkZGRkZGIjtjb25zdCBlPXRoaXMuY29sb3I/dGhpcy5jb2xvcltGSV0oKToiIzAwMDAwMCIsdD0icmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCIsaT1gJHtBfSwke0F9IDVweCwke2V9IDVweCwke2V9IDEwcHhgO3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UiY3Jvc3NIYXRjaCI6cmV0dXJuYCR7dH0odG8gdG9wLCR7aX0pICR7dH0odG8gcmlnaHQsJHtpfSlgO2Nhc2UiY3Jvc3NEaWFnb25hbCI6cmV0dXJuYCR7dH0oNDVkZWcsJHtpfSkgJHt0fSgtNDVkZWcsJHtpfSlgO2Nhc2UiZGlhZ29uYWxMZWZ0IjpyZXR1cm5gJHt0fSg0NWRlZywke2l9KWA7Y2FzZSJkaWFnb25hbFJpZ2h0IjpyZXR1cm5gJHt0fSgtNDVkZWcsJHtpfSlgO2Nhc2UiaG9yaXpvbnRhbCI6cmV0dXJuYCR7dH0odG8gdG9wLCR7aX0pYDtjYXNlInZlcnRpY2FsIjpyZXR1cm5gJHt0fSh0byByaWdodCwke2l9KWB9cmV0dXJuIiJ9fWNsYXNzIFBDIGV4dGVuZHMga2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsInBpY3R1cmUiKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn19Y2xhc3MgV0MgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywicHJvdG8iLCEwKSx0aGlzLmFwcGVhcmFuY2VGaWx0ZXI9bmV3IG1jLHRoaXMuYXJjPW5ldyBtYyx0aGlzLmFyZWE9bmV3IG1jLHRoaXMuYXNzaXN0PW5ldyBtYyx0aGlzLmJhcmNvZGU9bmV3IG1jLHRoaXMuYmluZEl0ZW1zPW5ldyBtYyx0aGlzLmJvb2tlbmQ9bmV3IG1jLHRoaXMuYm9vbGVhbj1uZXcgbWMsdGhpcy5ib3JkZXI9bmV3IG1jLHRoaXMuYnJlYWs9bmV3IG1jLHRoaXMuYnJlYWtBZnRlcj1uZXcgbWMsdGhpcy5icmVha0JlZm9yZT1uZXcgbWMsdGhpcy5idXR0b249bmV3IG1jLHRoaXMuY2FsY3VsYXRlPW5ldyBtYyx0aGlzLmNhcHRpb249bmV3IG1jLHRoaXMuY2VydGlmaWNhdGU9bmV3IG1jLHRoaXMuY2VydGlmaWNhdGVzPW5ldyBtYyx0aGlzLmNoZWNrQnV0dG9uPW5ldyBtYyx0aGlzLmNob2ljZUxpc3Q9bmV3IG1jLHRoaXMuY29sb3I9bmV3IG1jLHRoaXMuY29tYj1uZXcgbWMsdGhpcy5jb25uZWN0PW5ldyBtYyx0aGlzLmNvbnRlbnRBcmVhPW5ldyBtYyx0aGlzLmNvcm5lcj1uZXcgbWMsdGhpcy5kYXRlPW5ldyBtYyx0aGlzLmRhdGVUaW1lPW5ldyBtYyx0aGlzLmRhdGVUaW1lRWRpdD1uZXcgbWMsdGhpcy5kZWNpbWFsPW5ldyBtYyx0aGlzLmRlZmF1bHRVaT1uZXcgbWMsdGhpcy5kZXNjPW5ldyBtYyx0aGlzLmRpZ2VzdE1ldGhvZD1uZXcgbWMsdGhpcy5kaWdlc3RNZXRob2RzPW5ldyBtYyx0aGlzLmRyYXc9bmV3IG1jLHRoaXMuZWRnZT1uZXcgbWMsdGhpcy5lbmNvZGluZz1uZXcgbWMsdGhpcy5lbmNvZGluZ3M9bmV3IG1jLHRoaXMuZW5jcnlwdD1uZXcgbWMsdGhpcy5lbmNyeXB0RGF0YT1uZXcgbWMsdGhpcy5lbmNyeXB0aW9uPW5ldyBtYyx0aGlzLmVuY3J5cHRpb25NZXRob2Q9bmV3IG1jLHRoaXMuZW5jcnlwdGlvbk1ldGhvZHM9bmV3IG1jLHRoaXMuZXZlbnQ9bmV3IG1jLHRoaXMuZXhEYXRhPW5ldyBtYyx0aGlzLmV4T2JqZWN0PW5ldyBtYyx0aGlzLmV4Y2xHcm91cD1uZXcgbWMsdGhpcy5leGVjdXRlPW5ldyBtYyx0aGlzLmV4dHJhcz1uZXcgbWMsdGhpcy5maWVsZD1uZXcgbWMsdGhpcy5maWxsPW5ldyBtYyx0aGlzLmZpbHRlcj1uZXcgbWMsdGhpcy5mbG9hdD1uZXcgbWMsdGhpcy5mb250PW5ldyBtYyx0aGlzLmZvcm1hdD1uZXcgbWMsdGhpcy5oYW5kbGVyPW5ldyBtYyx0aGlzLmh5cGhlbmF0aW9uPW5ldyBtYyx0aGlzLmltYWdlPW5ldyBtYyx0aGlzLmltYWdlRWRpdD1uZXcgbWMsdGhpcy5pbnRlZ2VyPW5ldyBtYyx0aGlzLmlzc3VlcnM9bmV3IG1jLHRoaXMuaXRlbXM9bmV3IG1jLHRoaXMua2VlcD1uZXcgbWMsdGhpcy5rZXlVc2FnZT1uZXcgbWMsdGhpcy5saW5lPW5ldyBtYyx0aGlzLmxpbmVhcj1uZXcgbWMsdGhpcy5sb2NrRG9jdW1lbnQ9bmV3IG1jLHRoaXMubWFuaWZlc3Q9bmV3IG1jLHRoaXMubWFyZ2luPW5ldyBtYyx0aGlzLm1kcD1uZXcgbWMsdGhpcy5tZWRpdW09bmV3IG1jLHRoaXMubWVzc2FnZT1uZXcgbWMsdGhpcy5udW1lcmljRWRpdD1uZXcgbWMsdGhpcy5vY2N1cj1uZXcgbWMsdGhpcy5vaWQ9bmV3IG1jLHRoaXMub2lkcz1uZXcgbWMsdGhpcy5vdmVyZmxvdz1uZXcgbWMsdGhpcy5wYWdlQXJlYT1uZXcgbWMsdGhpcy5wYWdlU2V0PW5ldyBtYyx0aGlzLnBhcmE9bmV3IG1jLHRoaXMucGFzc3dvcmRFZGl0PW5ldyBtYyx0aGlzLnBhdHRlcm49bmV3IG1jLHRoaXMucGljdHVyZT1uZXcgbWMsdGhpcy5yYWRpYWw9bmV3IG1jLHRoaXMucmVhc29uPW5ldyBtYyx0aGlzLnJlYXNvbnM9bmV3IG1jLHRoaXMucmVjdGFuZ2xlPW5ldyBtYyx0aGlzLnJlZj1uZXcgbWMsdGhpcy5zY3JpcHQ9bmV3IG1jLHRoaXMuc2V0UHJvcGVydHk9bmV3IG1jLHRoaXMuc2lnbkRhdGE9bmV3IG1jLHRoaXMuc2lnbmF0dXJlPW5ldyBtYyx0aGlzLnNpZ25pbmc9bmV3IG1jLHRoaXMuc29saWQ9bmV3IG1jLHRoaXMuc3BlYWs9bmV3IG1jLHRoaXMuc3RpcHBsZT1uZXcgbWMsdGhpcy5zdWJmb3JtPW5ldyBtYyx0aGlzLnN1YmZvcm1TZXQ9bmV3IG1jLHRoaXMuc3ViamVjdEROPW5ldyBtYyx0aGlzLnN1YmplY3RETnM9bmV3IG1jLHRoaXMuc3VibWl0PW5ldyBtYyx0aGlzLnRleHQ9bmV3IG1jLHRoaXMudGV4dEVkaXQ9bmV3IG1jLHRoaXMudGltZT1uZXcgbWMsdGhpcy50aW1lU3RhbXA9bmV3IG1jLHRoaXMudG9vbFRpcD1uZXcgbWMsdGhpcy50cmF2ZXJzYWw9bmV3IG1jLHRoaXMudHJhdmVyc2U9bmV3IG1jLHRoaXMudWk9bmV3IG1jLHRoaXMudmFsaWRhdGU9bmV3IG1jLHRoaXMudmFsdWU9bmV3IG1jLHRoaXMudmFyaWFibGVzPW5ldyBtY319Y2xhc3MgT0MgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywicmFkaWFsIiwhMCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnR5cGU9SEkoQS50eXBlLFsidG9FZGdlIiwidG9DZW50ZXIiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuY29sb3I9bnVsbCx0aGlzLmV4dHJhcz1udWxsfVtGSV0oQSl7QT1BP0FbRkldKCk6IiNGRkZGRkYiO2NvbnN0IGU9dGhpcy5jb2xvcj90aGlzLmNvbG9yW0ZJXSgpOiIjMDAwMDAwIjtyZXR1cm5gcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCBjZW50ZXIsICR7InRvRWRnZSI9PT10aGlzLnR5cGU/YCR7QX0sJHtlfWA6YCR7ZX0sJHtBfWB9KWB9fWNsYXNzIFpDIGV4dGVuZHMga2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsInJlYXNvbiIpLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyBqQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJyZWFzb25zIiwhMCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnR5cGU9SEkoQS50eXBlLFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKSx0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5yZWFzb249bmV3IG1jfX1jbGFzcyBYQyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJyZWN0YW5nbGUiLCEwKSx0aGlzLmhhbmQ9SEkoQS5oYW5kLFsiZXZlbiIsImxlZnQiLCJyaWdodCJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmNvcm5lcj1uZXcgbWMoNCksdGhpcy5lZGdlPW5ldyBtYyg0KSx0aGlzLmZpbGw9bnVsbH1bYkldKCl7Y29uc3QgQT10aGlzLmVkZ2UuY2hpbGRyZW4ubGVuZ3RoP3RoaXMuZWRnZS5jaGlsZHJlblswXTpuZXcgX2goe30pLGU9QVtGSV0oKSx0PU9iamVjdC5jcmVhdGUobnVsbCk7InZpc2libGUiPT09dGhpcy5maWxsPy5wcmVzZW5jZT9PYmplY3QuYXNzaWduKHQsdGhpcy5maWxsW0ZJXSgpKTp0LmZpbGw9InRyYW5zcGFyZW50Iix0LnN0cm9rZVdpZHRoPUdjKCJ2aXNpYmxlIj09PUEucHJlc2VuY2U/QS50aGlja25lc3M6MCksdC5zdHJva2U9ZS5jb2xvcjtjb25zdCBpPSh0aGlzLmNvcm5lci5jaGlsZHJlbi5sZW5ndGg/dGhpcy5jb3JuZXIuY2hpbGRyZW5bMF06bmV3IEtoKHt9KSlbRkldKCksYT17bmFtZToic3ZnIixjaGlsZHJlbjpbe25hbWU6InJlY3QiLGF0dHJpYnV0ZXM6e3htbG5zOkFoLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLHg6MCx5OjAscng6aS5yYWRpdXMscnk6aS5yYWRpdXMsc3R5bGU6dH19XSxhdHRyaWJ1dGVzOnt4bWxuczpBaCxzdHlsZTp7b3ZlcmZsb3c6InZpc2libGUifSx3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIn19O3JldHVybiBzaCh0aGlzW1BvXSgpW1BvXSgpKT9xSS5zdWNjZXNzKHtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6e3N0eWxlOntkaXNwbGF5OiJpbmxpbmUiLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUifX0sY2hpbGRyZW46W2FdfSk6KGEuYXR0cmlidXRlcy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHFJLnN1Y2Nlc3MoYSkpfX1jbGFzcyBWQyBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJyZWYiKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn19Y2xhc3MgX0MgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywic2NyaXB0IiksdGhpcy5iaW5kaW5nPUEuYmluZGluZ3x8IiIsdGhpcy5jb250ZW50VHlwZT1BLmNvbnRlbnRUeXBlfHwiIix0aGlzLmlkPUEuaWR8fCIiLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMucnVuQXQ9SEkoQS5ydW5BdCxbImNsaWVudCIsImJvdGgiLCJzZXJ2ZXIiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyB6QyBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJzZXRQcm9wZXJ0eSIpLHRoaXMuY29ubmVjdGlvbj1BLmNvbm5lY3Rpb258fCIiLHRoaXMucmVmPUEucmVmfHwiIix0aGlzLnRhcmdldD1BLnRhcmdldHx8IiJ9fWNsYXNzICRDIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsInNpZ25EYXRhIiwhMCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm9wZXJhdGlvbj1ISShBLm9wZXJhdGlvbixbInNpZ24iLCJjbGVhciIsInZlcmlmeSJdKSx0aGlzLnJlZj1BLnJlZnx8IiIsdGhpcy50YXJnZXQ9QS50YXJnZXR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmZpbHRlcj1udWxsLHRoaXMubWFuaWZlc3Q9bnVsbH19Y2xhc3MgQUIgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywic2lnbmF0dXJlIiwhMCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnR5cGU9SEkoQS50eXBlLFsiUERGMS4zIiwiUERGMS42Il0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmJvcmRlcj1udWxsLHRoaXMuZXh0cmFzPW51bGwsdGhpcy5maWx0ZXI9bnVsbCx0aGlzLm1hbmlmZXN0PW51bGwsdGhpcy5tYXJnaW49bnVsbH19Y2xhc3MgZUIgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywic2lnbmluZyIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy50eXBlPUhJKEEudHlwZSxbIm9wdGlvbmFsIiwicmVxdWlyZWQiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuY2VydGlmaWNhdGU9bmV3IG1jfX1jbGFzcyB0QiBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJzb2xpZCIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuZXh0cmFzPW51bGx9W0ZJXShBKXtyZXR1cm4gQT9BW0ZJXSgpOiIjRkZGRkZGIn19Y2xhc3MgaUIgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywic3BlYWsiKSx0aGlzLmRpc2FibGU9TUkoe2RhdGE6QS5kaXNhYmxlLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOkE9PjE9PT1BfSksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnByaW9yaXR5PUhJKEEucHJpb3JpdHksWyJjdXN0b20iLCJjYXB0aW9uIiwibmFtZSIsInRvb2xUaXAiXSksdGhpcy5yaWQ9QS5yaWR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn19Y2xhc3MgYUIgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywic3RpcHBsZSIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5yYXRlPU1JKHtkYXRhOkEucmF0ZSxkZWZhdWx0VmFsdWU6NTAsdmFsaWRhdGU6QT0+QT49MCYmQTw9MTAwfSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuY29sb3I9bnVsbCx0aGlzLmV4dHJhcz1udWxsfVtGSV0oQSl7Y29uc3QgZT10aGlzLnJhdGUvMTAwO3JldHVybiAkLm1ha2VIZXhDb2xvcihNYXRoLnJvdW5kKEEudmFsdWUuciooMS1lKSt0aGlzLnZhbHVlLnIqZSksTWF0aC5yb3VuZChBLnZhbHVlLmcqKDEtZSkrdGhpcy52YWx1ZS5nKmUpLE1hdGgucm91bmQoQS52YWx1ZS5iKigxLWUpK3RoaXMudmFsdWUuYiplKSl9fWNsYXNzIHNCIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsInN1YmZvcm0iLCEwKSx0aGlzLmFjY2Vzcz1ISShBLmFjY2VzcyxbIm9wZW4iLCJub25JbnRlcmFjdGl2ZSIsInByb3RlY3RlZCIsInJlYWRPbmx5Il0pLHRoaXMuYWxsb3dNYWNybz1NSSh7ZGF0YTpBLmFsbG93TWFjcm8sZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+MT09PUF9KSx0aGlzLmFuY2hvclR5cGU9SEkoQS5hbmNob3JUeXBlLFsidG9wTGVmdCIsImJvdHRvbUNlbnRlciIsImJvdHRvbUxlZnQiLCJib3R0b21SaWdodCIsIm1pZGRsZUNlbnRlciIsIm1pZGRsZUxlZnQiLCJtaWRkbGVSaWdodCIsInRvcENlbnRlciIsInRvcFJpZ2h0Il0pLHRoaXMuY29sU3Bhbj1NSSh7ZGF0YTpBLmNvbFNwYW4sZGVmYXVsdFZhbHVlOjEsdmFsaWRhdGU6QT0+QT49MXx8LTE9PT1BfSksdGhpcy5jb2x1bW5XaWR0aHM9KEEuY29sdW1uV2lkdGhzfHwiIikudHJpbSgpLnNwbGl0KC9ccysvKS5tYXAoKEE9PiItMSI9PT1BPy0xOllJKEEpKSksdGhpcy5oPUEuaD9ZSShBLmgpOiIiLHRoaXMuaEFsaWduPUhJKEEuaEFsaWduLFsibGVmdCIsImNlbnRlciIsImp1c3RpZnkiLCJqdXN0aWZ5QWxsIiwicmFkaXgiLCJyaWdodCJdKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMubGF5b3V0PUhJKEEubGF5b3V0LFsicG9zaXRpb24iLCJsci10YiIsInJsLXJvdyIsInJsLXRiIiwicm93IiwidGFibGUiLCJ0YiJdKSx0aGlzLmxvY2FsZT1BLmxvY2FsZXx8IiIsdGhpcy5tYXhIPVlJKEEubWF4SCwiMHB0IiksdGhpcy5tYXhXPVlJKEEubWF4VywiMHB0IiksdGhpcy5tZXJnZU1vZGU9SEkoQS5tZXJnZU1vZGUsWyJjb25zdW1lRGF0YSIsIm1hdGNoVGVtcGxhdGUiXSksdGhpcy5taW5IPVlJKEEubWluSCwiMHB0IiksdGhpcy5taW5XPVlJKEEubWluVywiMHB0IiksdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy5wcmVzZW5jZT1ISShBLnByZXNlbmNlLFsidmlzaWJsZSIsImhpZGRlbiIsImluYWN0aXZlIiwiaW52aXNpYmxlIl0pLHRoaXMucmVsZXZhbnQ9S0koQS5yZWxldmFudCksdGhpcy5yZXN0b3JlU3RhdGU9SEkoQS5yZXN0b3JlU3RhdGUsWyJtYW51YWwiLCJhdXRvIl0pLHRoaXMuc2NvcGU9SEkoQS5zY29wZSxbIm5hbWUiLCJub25lIl0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLnc9QS53P1lJKEEudyk6IiIsdGhpcy54PVlJKEEueCwiMHB0IiksdGhpcy55PVlJKEEueSwiMHB0IiksdGhpcy5hc3Npc3Q9bnVsbCx0aGlzLmJpbmQ9bnVsbCx0aGlzLmJvb2tlbmQ9bnVsbCx0aGlzLmJvcmRlcj1udWxsLHRoaXMuYnJlYWs9bnVsbCx0aGlzLmNhbGN1bGF0ZT1udWxsLHRoaXMuZGVzYz1udWxsLHRoaXMuZXh0cmFzPW51bGwsdGhpcy5rZWVwPW51bGwsdGhpcy5tYXJnaW49bnVsbCx0aGlzLm9jY3VyPW51bGwsdGhpcy5vdmVyZmxvdz1udWxsLHRoaXMucGFnZVNldD1udWxsLHRoaXMucGFyYT1udWxsLHRoaXMudHJhdmVyc2FsPW51bGwsdGhpcy52YWxpZGF0ZT1udWxsLHRoaXMudmFyaWFibGVzPW51bGwsdGhpcy5hcmVhPW5ldyBtYyx0aGlzLmJyZWFrQWZ0ZXI9bmV3IG1jLHRoaXMuYnJlYWtCZWZvcmU9bmV3IG1jLHRoaXMuY29ubmVjdD1uZXcgbWMsdGhpcy5kcmF3PW5ldyBtYyx0aGlzLmV2ZW50PW5ldyBtYyx0aGlzLmV4T2JqZWN0PW5ldyBtYyx0aGlzLmV4Y2xHcm91cD1uZXcgbWMsdGhpcy5maWVsZD1uZXcgbWMsdGhpcy5wcm90bz1uZXcgbWMsdGhpcy5zZXRQcm9wZXJ0eT1uZXcgbWMsdGhpcy5zdWJmb3JtPW5ldyBtYyx0aGlzLnN1YmZvcm1TZXQ9bmV3IG1jfVtUb10oKXtjb25zdCBBPXRoaXNbUG9dKCk7cmV0dXJuIEEgaW5zdGFuY2VvZiBuQj9BW1RvXSgpOkF9W3pvXSgpe3JldHVybiEwfVtpSV0oKXtyZXR1cm4gdGhpcy5sYXlvdXQuZW5kc1dpdGgoIi10YiIpJiYwPT09dGhpc1tGb10uYXR0ZW1wdCYmdGhpc1tGb10ubnVtYmVySW5MaW5lPjB8fHRoaXNbUG9dKClbaUldKCl9KltLb10oKXt5aWVsZCpyaCh0aGlzKX1bUm9dKCl7cmV0dXJuIFhjKHRoaXMpfVtRb10oQSxlKXtWYyh0aGlzLEEsZSl9W3hvXSgpe3JldHVybiBfYyh0aGlzKX1bdEldKCl7Y29uc3QgQT10aGlzW1RvXSgpO3JldHVybiEhQVt0SV0oKSYmKHZvaWQgMCE9PXRoaXNbRm9dLl9pc1NwbGl0dGFibGU/dGhpc1tGb10uX2lzU3BsaXR0YWJsZToicG9zaXRpb24iPT09dGhpcy5sYXlvdXR8fHRoaXMubGF5b3V0LmluY2x1ZGVzKCJyb3ciKXx8dGhpcy5rZWVwJiYibm9uZSIhPT10aGlzLmtlZXAuaW50YWN0Pyh0aGlzW0ZvXS5faXNTcGxpdHRhYmxlPSExLCExKTohKEEubGF5b3V0Py5lbmRzV2l0aCgiLXRiIikmJjAhPT1BW0ZvXS5udW1iZXJJbkxpbmV8fCh0aGlzW0ZvXS5faXNTcGxpdHRhYmxlPSEwLDApKSl9W2JJXShBKXtpZihvaCh0aGlzKSx0aGlzLmJyZWFrKXtpZigiYXV0byIhPT10aGlzLmJyZWFrLmFmdGVyfHwiIiE9PXRoaXMuYnJlYWsuYWZ0ZXJUYXJnZXQpe2NvbnN0IEE9bmV3IEZoKHt0YXJnZXRUeXBlOnRoaXMuYnJlYWsuYWZ0ZXIsdGFyZ2V0OnRoaXMuYnJlYWsuYWZ0ZXJUYXJnZXQsc3RhcnROZXc6dGhpcy5icmVhay5zdGFydE5ldy50b1N0cmluZygpfSk7QVtPb109dGhpc1tPb10sdGhpc1tFb10oQSksdGhpcy5icmVha0FmdGVyLnB1c2goQSl9aWYoImF1dG8iIT09dGhpcy5icmVhay5iZWZvcmV8fCIiIT09dGhpcy5icmVhay5iZWZvcmVUYXJnZXQpe2NvbnN0IEE9bmV3IFNoKHt0YXJnZXRUeXBlOnRoaXMuYnJlYWsuYmVmb3JlLHRhcmdldDp0aGlzLmJyZWFrLmJlZm9yZVRhcmdldCxzdGFydE5ldzp0aGlzLmJyZWFrLnN0YXJ0TmV3LnRvU3RyaW5nKCl9KTtBW09vXT10aGlzW09vXSx0aGlzW0VvXShBKSx0aGlzLmJyZWFrQmVmb3JlLnB1c2goQSl9aWYoIiIhPT10aGlzLmJyZWFrLm92ZXJmbG93VGFyZ2V0KXtjb25zdCBBPW5ldyBIQyh7dGFyZ2V0OnRoaXMuYnJlYWsub3ZlcmZsb3dUYXJnZXQsbGVhZGVyOnRoaXMuYnJlYWsub3ZlcmZsb3dMZWFkZXIsdHJhaWxlcjp0aGlzLmJyZWFrLm92ZXJmbG93VHJhaWxlcn0pO0FbT29dPXRoaXNbT29dLHRoaXNbRW9dKEEpLHRoaXMub3ZlcmZsb3cucHVzaChBKX10aGlzW1FJXSh0aGlzLmJyZWFrKSx0aGlzLmJyZWFrPW51bGx9aWYoImhpZGRlbiI9PT10aGlzLnByZXNlbmNlfHwiaW5hY3RpdmUiPT09dGhpcy5wcmVzZW5jZSlyZXR1cm4gcUkuRU1QVFk7aWYoKHRoaXMuYnJlYWtCZWZvcmUuY2hpbGRyZW4ubGVuZ3RoPjF8fHRoaXMuYnJlYWtBZnRlci5jaGlsZHJlbi5sZW5ndGg+MSkmJlUoIlhGQSAtIFNldmVyYWwgYnJlYWtCZWZvcmUgb3IgYnJlYWtBZnRlciBpbiBzdWJmb3JtczogcGxlYXNlIGZpbGUgYSBidWcuIiksdGhpcy5icmVha0JlZm9yZS5jaGlsZHJlbi5sZW5ndGg+PTEpe2NvbnN0IEE9dGhpcy5icmVha0JlZm9yZS5jaGlsZHJlblswXTtpZihsaChBKSlyZXR1cm4gcUkuYnJlYWtOb2RlKEEpfWlmKHRoaXNbRm9dPy5hZnRlckJyZWFrQWZ0ZXIpcmV0dXJuIHFJLkVNUFRZO0pjKHRoaXMpO2NvbnN0IGU9W10sdD17aWQ6dGhpc1tTSV0sY2xhc3M6W119O3FjKHRoaXMsdC5jbGFzcyksdGhpc1tGb118fCh0aGlzW0ZvXT1PYmplY3QuY3JlYXRlKG51bGwpKSxPYmplY3QuYXNzaWduKHRoaXNbRm9dLHtjaGlsZHJlbjplLGxpbmU6bnVsbCxhdHRyaWJ1dGVzOnQsYXR0ZW1wdDowLG51bWJlckluTGluZTowLGF2YWlsYWJsZVNwYWNlOnt3aWR0aDpNYXRoLm1pbih0aGlzLnd8fDEvMCxBLndpZHRoKSxoZWlnaHQ6TWF0aC5taW4odGhpcy5ofHwxLzAsQS5oZWlnaHQpfSx3aWR0aDowLGhlaWdodDowLHByZXZIZWlnaHQ6MCxjdXJyZW50V2lkdGg6MH0pO2NvbnN0IGk9dGhpc1tXb10oKSxhPWlbRm9dLm5vTGF5b3V0RmFpbHVyZSxzPXRoaXNbdEldKCk7aWYoc3x8Q2godGhpcyksIXpjKHRoaXMsQSkpcmV0dXJuIHFJLkZBSUxVUkU7Y29uc3Qgbj1uZXcgU2V0KFsiYXJlYSIsImRyYXciLCJleGNsR3JvdXAiLCJmaWVsZCIsInN1YmZvcm0iLCJzdWJmb3JtU2V0Il0pO2lmKHRoaXMubGF5b3V0LmluY2x1ZGVzKCJyb3ciKSl7Y29uc3QgQT10aGlzW1RvXSgpLmNvbHVtbldpZHRocztBcnJheS5pc0FycmF5KEEpJiZBLmxlbmd0aD4wJiYodGhpc1tGb10uY29sdW1uV2lkdGhzPUEsdGhpc1tGb10uY3VycmVudENvbHVtbj0wKX1jb25zdCByPVljKHRoaXMsImFuY2hvclR5cGUiLCJkaW1lbnNpb25zIiwicG9zaXRpb24iLCJwcmVzZW5jZSIsImJvcmRlciIsIm1hcmdpbiIsImhBbGlnbiIpLGc9WyJ4ZmFTdWJmb3JtIl0sbz1IYyh0aGlzKTtpZihvJiZnLnB1c2gobyksdC5zdHlsZT1yLHQuY2xhc3M9Zyx0aGlzLm5hbWUmJih0LnhmYU5hbWU9dGhpcy5uYW1lKSx0aGlzLm92ZXJmbG93KXtjb25zdCBlPXRoaXMub3ZlcmZsb3dbSG9dKCk7ZS5hZGRMZWFkZXImJihlLmFkZExlYWRlcj0hMSxRaCh0aGlzLGUubGVhZGVyLEEpKX10aGlzW2xJXSgpO2NvbnN0IEk9ImxyLXRiIj09PXRoaXMubGF5b3V0fHwicmwtdGIiPT09dGhpcy5sYXlvdXQsYz1JPzI6MTtmb3IoO3RoaXNbRm9dLmF0dGVtcHQ8Yzt0aGlzW0ZvXS5hdHRlbXB0Kyspe0kmJjE9PT10aGlzW0ZvXS5hdHRlbXB0JiYodGhpc1tGb10ubnVtYmVySW5MaW5lPTApO2NvbnN0IEE9dGhpc1t1b10oe2ZpbHRlcjpuLGluY2x1ZGU6ITB9KTtpZihBLnN1Y2Nlc3MpYnJlYWs7aWYoQS5pc0JyZWFrKCkpcmV0dXJuIHRoaXNbQkldKCksQTtpZihJJiYwPT09dGhpc1tGb10uYXR0ZW1wdCYmMD09PXRoaXNbRm9dLm51bWJlckluTGluZSYmIWlbRm9dLm5vTGF5b3V0RmFpbHVyZSl7dGhpc1tGb10uYXR0ZW1wdD1jO2JyZWFrfX1pZih0aGlzW0JJXSgpLHN8fEJoKHRoaXMpLGlbRm9dLm5vTGF5b3V0RmFpbHVyZT1hLHRoaXNbRm9dLmF0dGVtcHQ9PT1jKXJldHVybiB0aGlzLm92ZXJmbG93JiYodGhpc1tXb10oKVtGb10ub3ZlcmZsb3dOb2RlPXRoaXMub3ZlcmZsb3cpLHN8fGRlbGV0ZSB0aGlzW0ZvXSxxSS5GQUlMVVJFO2lmKHRoaXMub3ZlcmZsb3cpe2NvbnN0IGU9dGhpcy5vdmVyZmxvd1tIb10oKTtlLmFkZFRyYWlsZXImJihlLmFkZFRyYWlsZXI9ITEsUWgodGhpcyxlLnRyYWlsZXIsQSkpfWxldCBoPTAsQz0wO3RoaXMubWFyZ2luJiYoaD10aGlzLm1hcmdpbi5sZWZ0SW5zZXQrdGhpcy5tYXJnaW4ucmlnaHRJbnNldCxDPXRoaXMubWFyZ2luLnRvcEluc2V0K3RoaXMubWFyZ2luLmJvdHRvbUluc2V0KTtjb25zdCBCPU1hdGgubWF4KHRoaXNbRm9dLndpZHRoK2gsdGhpcy53fHwwKSxsPU1hdGgubWF4KHRoaXNbRm9dLmhlaWdodCtDLHRoaXMuaHx8MCksUT1bdGhpcy54LHRoaXMueSxCLGxdO2lmKCIiPT09dGhpcy53JiYoci53aWR0aD1HYyhCKSksIiI9PT10aGlzLmgmJihyLmhlaWdodD1HYyhsKSksKCIwcHgiPT09ci53aWR0aHx8IjBweCI9PT1yLmhlaWdodCkmJjA9PT1lLmxlbmd0aClyZXR1cm4gcUkuRU1QVFk7Y29uc3QgRT17bmFtZToiZGl2IixhdHRyaWJ1dGVzOnQsY2hpbGRyZW46ZX07SWgodGhpcyx0KTtjb25zdCB1PXFJLnN1Y2Nlc3ModmModGhpcyxFKSxRKTtpZih0aGlzLmJyZWFrQWZ0ZXIuY2hpbGRyZW4ubGVuZ3RoPj0xKXtjb25zdCBBPXRoaXMuYnJlYWtBZnRlci5jaGlsZHJlblswXTtpZihsaChBKSlyZXR1cm4gdGhpc1tGb10uYWZ0ZXJCcmVha0FmdGVyPXUscUkuYnJlYWtOb2RlKEEpfXJldHVybiBkZWxldGUgdGhpc1tGb10sdX19Y2xhc3MgbkIgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywic3ViZm9ybVNldCIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy5yZWxhdGlvbj1ISShBLnJlbGF0aW9uLFsib3JkZXJlZCIsImNob2ljZSIsInVub3JkZXJlZCJdKSx0aGlzLnJlbGV2YW50PUtJKEEucmVsZXZhbnQpLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmJvb2tlbmQ9bnVsbCx0aGlzLmJyZWFrPW51bGwsdGhpcy5kZXNjPW51bGwsdGhpcy5leHRyYXM9bnVsbCx0aGlzLm9jY3VyPW51bGwsdGhpcy5vdmVyZmxvdz1udWxsLHRoaXMuYnJlYWtBZnRlcj1uZXcgbWMsdGhpcy5icmVha0JlZm9yZT1uZXcgbWMsdGhpcy5zdWJmb3JtPW5ldyBtYyx0aGlzLnN1YmZvcm1TZXQ9bmV3IG1jfSpbS29dKCl7eWllbGQqcmgodGhpcyl9W1RvXSgpe2xldCBBPXRoaXNbUG9dKCk7Zm9yKDshKEEgaW5zdGFuY2VvZiBzQik7KUE9QVtQb10oKTtyZXR1cm4gQX1bem9dKCl7cmV0dXJuITB9fWNsYXNzIHJCIGV4dGVuZHMgRGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsInN1YmplY3RETiIpLHRoaXMuZGVsaW1pdGVyPUEuZGVsaW1pdGVyfHwiLCIsdGhpcy5pZD1BLmlkfHwiIix0aGlzLm5hbWU9QS5uYW1lfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiJ9W1NvXSgpe3RoaXNbRG9dPW5ldyBNYXAodGhpc1tEb10uc3BsaXQodGhpcy5kZWxpbWl0ZXIpLm1hcCgoQT0+KChBPUEuc3BsaXQoIj0iLDIpKVswXT1BWzBdLnRyaW0oKSxBKSkpKX19Y2xhc3MgZ0IgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywic3ViamVjdEROcyIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy50eXBlPUhJKEEudHlwZSxbIm9wdGlvbmFsIiwicmVxdWlyZWQiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIiLHRoaXMuc3ViamVjdEROPW5ldyBtY319Y2xhc3Mgb0IgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywic3VibWl0IiwhMCksdGhpcy5lbWJlZFBERj1NSSh7ZGF0YTpBLmVtYmVkUERGLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOkE9PjE9PT1BfSksdGhpcy5mb3JtYXQ9SEkoQS5mb3JtYXQsWyJ4ZHAiLCJmb3JtZGF0YSIsInBkZiIsInVybGVuY29kZWQiLCJ4ZmQiLCJ4bWwiXSksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnRhcmdldD1BLnRhcmdldHx8IiIsdGhpcy50ZXh0RW5jb2Rpbmc9Skkoe2RhdGE6QS50ZXh0RW5jb2Rpbmc/QS50ZXh0RW5jb2RpbmcudG9Mb3dlckNhc2UoKToiIixkZWZhdWx0VmFsdWU6IiIsdmFsaWRhdGU6QT0+WyJ1dGYtOCIsImJpZy1maXZlIiwiZm9udHNwZWNpZmljIiwiZ2JrIiwiZ2ItMTgwMzAiLCJnYi0yMzEyIiwia3NjLTU2MDEiLCJub25lIiwic2hpZnQtamlzIiwidWNzLTIiLCJ1dGYtMTYiXS5pbmNsdWRlcyhBKXx8QS5tYXRjaCgvaXNvLTg4NTktXGR7Mn0vKX0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLnhkcENvbnRlbnQ9QS54ZHBDb250ZW50fHwiIix0aGlzLmVuY3J5cHQ9bnVsbCx0aGlzLmVuY3J5cHREYXRhPW5ldyBtYyx0aGlzLnNpZ25EYXRhPW5ldyBtY319Y2xhc3MgSUIgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywidGVtcGxhdGUiLCEwKSx0aGlzLmJhc2VQcm9maWxlPUhJKEEuYmFzZVByb2ZpbGUsWyJmdWxsIiwiaW50ZXJhY3RpdmVGb3JtcyJdKSx0aGlzLmV4dHJhcz1udWxsLHRoaXMuc3ViZm9ybT1uZXcgbWN9W1NvXSgpezA9PT10aGlzLnN1YmZvcm0uY2hpbGRyZW4ubGVuZ3RoJiZVKCJYRkEgLSBObyBzdWJmb3JtcyBpbiB0ZW1wbGF0ZSBub2RlLiIpLHRoaXMuc3ViZm9ybS5jaGlsZHJlbi5sZW5ndGg+PTImJlUoIlhGQSAtIFNldmVyYWwgc3ViZm9ybXMgaW4gdGVtcGxhdGUgbm9kZTogcGxlYXNlIGZpbGUgYSBidWcuIiksdGhpc1t5SV09NWUzfVt0SV0oKXtyZXR1cm4hMH1bZEldKEEsZSl7cmV0dXJuIEEuc3RhcnRzV2l0aCgiIyIpP1t0aGlzW2pvXS5nZXQoQS5zbGljZSgxKSldOkFjKHRoaXMsZSxBLCEwLCEwKX0qW0RJXSgpe2lmKCF0aGlzLnN1YmZvcm0uY2hpbGRyZW4ubGVuZ3RoKXJldHVybiBxSS5zdWNjZXNzKHtuYW1lOiJkaXYiLGNoaWxkcmVuOltdfSk7dGhpc1tGb109e292ZXJmbG93Tm9kZTpudWxsLGZpcnN0VW5zcGxpdHRhYmxlOm51bGwsY3VycmVudENvbnRlbnRBcmVhOm51bGwsY3VycmVudFBhZ2VBcmVhOm51bGwsbm9MYXlvdXRGYWlsdXJlOiExLHBhZ2VOdW1iZXI6MSxwYWdlUG9zaXRpb246ImZpcnN0IixvZGRPckV2ZW46Im9kZCIsYmxhbmtPck5vdEJsYW5rOiJub25CbGFuayIscGFyYVN0YWNrOltdfTtjb25zdCBBPXRoaXMuc3ViZm9ybS5jaGlsZHJlblswXTtBLnBhZ2VTZXRbcG9dKCk7Y29uc3QgZT1BLnBhZ2VTZXQucGFnZUFyZWEuY2hpbGRyZW4sdD17bmFtZToiZGl2IixjaGlsZHJlbjpbXX07bGV0IGk9bnVsbCxhPW51bGwscz1udWxsO2lmKEEuYnJlYWtCZWZvcmUuY2hpbGRyZW4ubGVuZ3RoPj0xPyhhPUEuYnJlYWtCZWZvcmUuY2hpbGRyZW5bMF0scz1hLnRhcmdldCk6QS5zdWJmb3JtLmNoaWxkcmVuLmxlbmd0aD49MSYmQS5zdWJmb3JtLmNoaWxkcmVuWzBdLmJyZWFrQmVmb3JlLmNoaWxkcmVuLmxlbmd0aD49MT8oYT1BLnN1YmZvcm0uY2hpbGRyZW5bMF0uYnJlYWtCZWZvcmUuY2hpbGRyZW5bMF0scz1hLnRhcmdldCk6QS5icmVhaz8uYmVmb3JlVGFyZ2V0PyhhPUEuYnJlYWsscz1hLmJlZm9yZVRhcmdldCk6QS5zdWJmb3JtLmNoaWxkcmVuLmxlbmd0aD49MSYmQS5zdWJmb3JtLmNoaWxkcmVuWzBdLmJyZWFrPy5iZWZvcmVUYXJnZXQmJihhPUEuc3ViZm9ybS5jaGlsZHJlblswXS5icmVhayxzPWEuYmVmb3JlVGFyZ2V0KSxhKXtjb25zdCBBPXRoaXNbZEldKHMsYVtQb10oKSk7QSBpbnN0YW5jZW9mIFlDJiYoaT1BLGFbRm9dPXt9KX1pfHwoaT1lWzBdKSxpW0ZvXT17bnVtYmVyT2ZVc2U6MX07Y29uc3Qgbj1pW1BvXSgpO2xldCByO25bRm9dPXtudW1iZXJPZlVzZToxLHBhZ2VJbmRleDpuLnBhZ2VBcmVhLmNoaWxkcmVuLmluZGV4T2YoaSkscGFnZVNldEluZGV4OjB9O2xldCBnPW51bGwsbz1udWxsLEk9ITAsYz0wLGg9MDtmb3IoOzspe2lmKEkpYz0wO2Vsc2UgaWYodC5jaGlsZHJlbi5wb3AoKSwzPT0rK2MpcmV0dXJuIFUoIlhGQSAtIFNvbWV0aGluZyBnb2VzIHdyb25nOiBwbGVhc2UgZmlsZSBhIGJ1Zy4iKSx0O3I9bnVsbCx0aGlzW0ZvXS5jdXJyZW50UGFnZUFyZWE9aTtjb25zdCBlPWlbYkldKCkuaHRtbDt0LmNoaWxkcmVuLnB1c2goZSksZyYmKHRoaXNbRm9dLm5vTGF5b3V0RmFpbHVyZT0hMCxlLmNoaWxkcmVuLnB1c2goZ1tiSV0oaVtGb10uc3BhY2UpLmh0bWwpLGc9bnVsbCksbyYmKHRoaXNbRm9dLm5vTGF5b3V0RmFpbHVyZT0hMCxlLmNoaWxkcmVuLnB1c2gob1tiSV0oaVtGb10uc3BhY2UpLmh0bWwpLG89bnVsbCk7Y29uc3QgYT1pLmNvbnRlbnRBcmVhLmNoaWxkcmVuLHM9ZS5jaGlsZHJlbi5maWx0ZXIoKEE9PkEuYXR0cmlidXRlcy5jbGFzcy5pbmNsdWRlcygieGZhQ29udGVudGFyZWEiKSkpO0k9ITEsdGhpc1tGb10uZmlyc3RVbnNwbGl0dGFibGU9bnVsbCx0aGlzW0ZvXS5ub0xheW91dEZhaWx1cmU9ITE7Y29uc3Qgbj1lPT57Y29uc3QgdD1BW1JvXSgpO3QmJihJfHw9dC5jaGlsZHJlbj8ubGVuZ3RoPjAsc1tlXS5jaGlsZHJlbi5wdXNoKHQpKX07Zm9yKGxldCBlPWgsaT1hLmxlbmd0aDtlPGk7ZSsrKXtjb25zdCBpPXRoaXNbRm9dLmN1cnJlbnRDb250ZW50QXJlYT1hW2VdLGM9e3dpZHRoOmkudyxoZWlnaHQ6aS5ofTtoPTAsZyYmKHNbZV0uY2hpbGRyZW4ucHVzaChnW2JJXShjKS5odG1sKSxnPW51bGwpLG8mJihzW2VdLmNoaWxkcmVuLnB1c2gob1tiSV0oYykuaHRtbCksbz1udWxsKTtjb25zdCBDPUFbYkldKGMpO2lmKEMuc3VjY2VzcylyZXR1cm4gQy5odG1sPyhJfHw9Qy5odG1sLmNoaWxkcmVuPy5sZW5ndGg+MCxzW2VdLmNoaWxkcmVuLnB1c2goQy5odG1sKSk6IUkmJnQuY2hpbGRyZW4ubGVuZ3RoPjEmJnQuY2hpbGRyZW4ucG9wKCksdDtpZihDLmlzQnJlYWsoKSl7Y29uc3QgQT1DLmJyZWFrTm9kZTtpZihuKGUpLCJhdXRvIj09PUEudGFyZ2V0VHlwZSljb250aW51ZTtBLmxlYWRlciYmKGc9dGhpc1tkSV0oQS5sZWFkZXIsQVtQb10oKSksZz1nP2dbMF06bnVsbCksQS50cmFpbGVyJiYobz10aGlzW2RJXShBLnRyYWlsZXIsQVtQb10oKSksbz1vP29bMF06bnVsbCksInBhZ2VBcmVhIj09PUEudGFyZ2V0VHlwZT8ocj1BW0ZvXS50YXJnZXQsZT0xLzApOkFbRm9dLnRhcmdldD8ocj1BW0ZvXS50YXJnZXQsaD1BW0ZvXS5pbmRleCsxLGU9MS8wKTplPUFbRm9dLmluZGV4fWVsc2UgaWYodGhpc1tGb10ub3ZlcmZsb3dOb2RlKXtjb25zdCBBPXRoaXNbRm9dLm92ZXJmbG93Tm9kZTt0aGlzW0ZvXS5vdmVyZmxvd05vZGU9bnVsbDtjb25zdCB0PUFbSG9dKCksaT10LnRhcmdldDt0LmFkZExlYWRlcj1udWxsIT09dC5sZWFkZXIsdC5hZGRUcmFpbGVyPW51bGwhPT10LnRyYWlsZXIsbihlKTtjb25zdCBzPWU7aWYoZT0xLzAsaSBpbnN0YW5jZW9mIFlDKXI9aTtlbHNlIGlmKGkgaW5zdGFuY2VvZiB2aCl7Y29uc3QgQT1hLmluZGV4T2YoaSk7LTEhPT1BP0E+cz9lPUEtMTpoPUE6KHI9aVtQb10oKSxoPXIuY29udGVudEFyZWEuY2hpbGRyZW4uaW5kZXhPZihpKSl9fWVsc2UgbihlKX10aGlzW0ZvXS5wYWdlTnVtYmVyKz0xLHImJihyW3NJXSgpP3JbRm9dLm51bWJlck9mVXNlKz0xOnI9bnVsbCksaT1yfHxpW3FvXSgpLHlpZWxkIG51bGx9fX1jbGFzcyBjQiBleHRlbmRzIERje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJ0ZXh0IiksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm1heENoYXJzPU1JKHtkYXRhOkEubWF4Q2hhcnMsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+QT49MH0pLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMucmlkPUEucmlkfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiJ9W2xvXSgpe3JldHVybiEwfVtJSV0oQSl7cmV0dXJuIEFbckldPT09R0kueGh0bWwuaWQ/KHRoaXNbRG9dPUEsITApOihVKGBYRkEgLSBJbnZhbGlkIGNvbnRlbnQgaW4gVGV4dDogJHtBW2dJXX0uYCksITEpfVtoSV0oQSl7dGhpc1tEb11pbnN0YW5jZW9mIHBjfHxzdXBlcltoSV0oQSl9W1NvXSgpeyJzdHJpbmciPT10eXBlb2YgdGhpc1tEb10mJih0aGlzW0RvXT10aGlzW0RvXS5yZXBsYWNlQWxsKCJcclxuIiwiXG4iKSl9W0hvXSgpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdGhpc1tEb10/dGhpc1tEb10uc3BsaXQoL1tcdTIwMjlcdTIwMjhcbl0vKS5yZWR1Y2UoKChBLGUpPT4oZSYmQS5wdXNoKGUpLEEpKSxbXSkuam9pbigiXG4iKTp0aGlzW0RvXVt3SV0oKX1bYkldKEEpe2lmKCJzdHJpbmciPT10eXBlb2YgdGhpc1tEb10pe2NvbnN0IEE9aGgodGhpc1tEb10pLmh0bWw7cmV0dXJuIHRoaXNbRG9dLmluY2x1ZGVzKCJcdTIwMjkiKT8oQS5uYW1lPSJkaXYiLEEuY2hpbGRyZW49W10sdGhpc1tEb10uc3BsaXQoIlx1MjAyOSIpLm1hcCgoQT0+QS5zcGxpdCgvW1x1MjAyOFxuXS8pLnJlZHVjZSgoKEEsZSk9PihBLnB1c2goe25hbWU6InNwYW4iLHZhbHVlOmV9LHtuYW1lOiJiciJ9KSxBKSksW10pKSkuZm9yRWFjaCgoZT0+e0EuY2hpbGRyZW4ucHVzaCh7bmFtZToicCIsY2hpbGRyZW46ZX0pfSkpKTovW1x1MjAyOFxuXS8udGVzdCh0aGlzW0RvXSkmJihBLm5hbWU9ImRpdiIsQS5jaGlsZHJlbj1bXSx0aGlzW0RvXS5zcGxpdCgvW1x1MjAyOFxuXS8pLmZvckVhY2goKGU9PntBLmNoaWxkcmVuLnB1c2goe25hbWU6InNwYW4iLHZhbHVlOmV9LHtuYW1lOiJiciJ9KX0pKSkscUkuc3VjY2VzcyhBKX1yZXR1cm4gdGhpc1tEb11bYkldKEEpfX1jbGFzcyBoQiBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJ0ZXh0RWRpdCIsITApLHRoaXMuYWxsb3dSaWNoVGV4dD1NSSh7ZGF0YTpBLmFsbG93UmljaFRleHQsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+MT09PUF9KSx0aGlzLmhTY3JvbGxQb2xpY3k9SEkoQS5oU2Nyb2xsUG9saWN5LFsiYXV0byIsIm9mZiIsIm9uIl0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5tdWx0aUxpbmU9TUkoe2RhdGE6QS5tdWx0aUxpbmUsZGVmYXVsdFZhbHVlOiIiLHZhbGlkYXRlOkE9PjA9PT1BfHwxPT09QX0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLnZTY3JvbGxQb2xpY3k9SEkoQS52U2Nyb2xsUG9saWN5LFsiYXV0byIsIm9mZiIsIm9uIl0pLHRoaXMuYm9yZGVyPW51bGwsdGhpcy5jb21iPW51bGwsdGhpcy5leHRyYXM9bnVsbCx0aGlzLm1hcmdpbj1udWxsfVtiSV0oQSl7Y29uc3QgZT1ZYyh0aGlzLCJib3JkZXIiLCJmb250IiwibWFyZ2luIik7bGV0IHQ7Y29uc3QgaT10aGlzW1BvXSgpW1BvXSgpO3JldHVybiIiPT09dGhpcy5tdWx0aUxpbmUmJih0aGlzLm11bHRpTGluZT1pIGluc3RhbmNlb2YgVmg/MTowKSx0PTE9PT10aGlzLm11bHRpTGluZT97bmFtZToidGV4dGFyZWEiLGF0dHJpYnV0ZXM6e2RhdGFJZDppW2JvXT8uW1NJXXx8aVtTSV0sZmllbGRJZDppW1NJXSxjbGFzczpbInhmYVRleHRmaWVsZCJdLHN0eWxlOmUsImFyaWEtbGFiZWwiOmNoKGkpLCJhcmlhLXJlcXVpcmVkIjohMX19OntuYW1lOiJpbnB1dCIsYXR0cmlidXRlczp7dHlwZToidGV4dCIsZGF0YUlkOmlbYm9dPy5bU0ldfHxpW1NJXSxmaWVsZElkOmlbU0ldLGNsYXNzOlsieGZhVGV4dGZpZWxkIl0sc3R5bGU6ZSwiYXJpYS1sYWJlbCI6Y2goaSksImFyaWEtcmVxdWlyZWQiOiExfX0sZ2goaSkmJih0LmF0dHJpYnV0ZXNbImFyaWEtcmVxdWlyZWQiXT0hMCx0LmF0dHJpYnV0ZXMucmVxdWlyZWQ9ITApLHFJLnN1Y2Nlc3Moe25hbWU6ImxhYmVsIixhdHRyaWJ1dGVzOntjbGFzczpbInhmYUxhYmVsIl19LGNoaWxkcmVuOlt0XX0pfX1jbGFzcyBDQiBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJ0aW1lIiksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm5hbWU9QS5uYW1lfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiJ9W1NvXSgpe2NvbnN0IEE9dGhpc1tEb10udHJpbSgpO3RoaXNbRG9dPUE/bmV3IERhdGUoQSk6bnVsbH1bYkldKEEpe3JldHVybiBoaCh0aGlzW0RvXT90aGlzW0RvXS50b1N0cmluZygpOiIiKX19Y2xhc3MgQkIgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywidGltZVN0YW1wIiksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnNlcnZlcj1BLnNlcnZlcnx8IiIsdGhpcy50eXBlPUhJKEEudHlwZSxbIm9wdGlvbmFsIiwicmVxdWlyZWQiXSksdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyBsQiBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJ0b29sVGlwIiksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnJpZD1BLnJpZHx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyBRQiBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJ0cmF2ZXJzYWwiLCEwKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmV4dHJhcz1udWxsLHRoaXMudHJhdmVyc2U9bmV3IG1jfX1jbGFzcyBFQiBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKCRjLCJ0cmF2ZXJzZSIsITApLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5vcGVyYXRpb249SEkoQS5vcGVyYXRpb24sWyJuZXh0IiwiYmFjayIsImRvd24iLCJmaXJzdCIsImxlZnQiLCJyaWdodCIsInVwIl0pLHRoaXMucmVmPUEucmVmfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5leHRyYXM9bnVsbCx0aGlzLnNjcmlwdD1udWxsfWdldCBuYW1lKCl7cmV0dXJuIHRoaXMub3BlcmF0aW9ufVthSV0oKXtyZXR1cm4hMX19Y2xhc3MgdUIgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywidWkiLCEwKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmV4dHJhcz1udWxsLHRoaXMucGljdHVyZT1udWxsLHRoaXMuYmFyY29kZT1udWxsLHRoaXMuYnV0dG9uPW51bGwsdGhpcy5jaGVja0J1dHRvbj1udWxsLHRoaXMuY2hvaWNlTGlzdD1udWxsLHRoaXMuZGF0ZVRpbWVFZGl0PW51bGwsdGhpcy5kZWZhdWx0VWk9bnVsbCx0aGlzLmltYWdlRWRpdD1udWxsLHRoaXMubnVtZXJpY0VkaXQ9bnVsbCx0aGlzLnBhc3N3b3JkRWRpdD1udWxsLHRoaXMuc2lnbmF0dXJlPW51bGwsdGhpcy50ZXh0RWRpdD1udWxsfVtIb10oKXtpZih2b2lkIDA9PT10aGlzW0ZvXSl7Zm9yKGNvbnN0IEEgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpe2lmKCJleHRyYXMiPT09QXx8InBpY3R1cmUiPT09QSljb250aW51ZTtjb25zdCBlPXRoaXNbQV07aWYoZSBpbnN0YW5jZW9mIHBjKXJldHVybiB0aGlzW0ZvXT1lLGV9dGhpc1tGb109bnVsbH1yZXR1cm4gdGhpc1tGb119W2JJXShBKXtjb25zdCBlPXRoaXNbSG9dKCk7cmV0dXJuIGU/ZVtiSV0oQSk6cUkuRU1QVFl9fWNsYXNzIGRCIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsInZhbGlkYXRlIiwhMCksdGhpcy5mb3JtYXRUZXN0PUhJKEEuZm9ybWF0VGVzdCxbIndhcm5pbmciLCJkaXNhYmxlZCIsImVycm9yIl0pLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5udWxsVGVzdD1ISShBLm51bGxUZXN0LFsiZGlzYWJsZWQiLCJlcnJvciIsIndhcm5pbmciXSksdGhpcy5zY3JpcHRUZXN0PUhJKEEuc2NyaXB0VGVzdCxbImVycm9yIiwiZGlzYWJsZWQiLCJ3YXJuaW5nIl0pLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmV4dHJhcz1udWxsLHRoaXMubWVzc2FnZT1udWxsLHRoaXMucGljdHVyZT1udWxsLHRoaXMuc2NyaXB0PW51bGx9fWNsYXNzIGZCIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoJGMsInZhbHVlIiwhMCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm92ZXJyaWRlPU1JKHtkYXRhOkEub3ZlcnJpZGUsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+MT09PUF9KSx0aGlzLnJlbGV2YW50PUtJKEEucmVsZXZhbnQpLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIix0aGlzLmFyYz1udWxsLHRoaXMuYm9vbGVhbj1udWxsLHRoaXMuZGF0ZT1udWxsLHRoaXMuZGF0ZVRpbWU9bnVsbCx0aGlzLmRlY2ltYWw9bnVsbCx0aGlzLmV4RGF0YT1udWxsLHRoaXMuZmxvYXQ9bnVsbCx0aGlzLmltYWdlPW51bGwsdGhpcy5pbnRlZ2VyPW51bGwsdGhpcy5saW5lPW51bGwsdGhpcy5yZWN0YW5nbGU9bnVsbCx0aGlzLnRleHQ9bnVsbCx0aGlzLnRpbWU9bnVsbH1bbUldKEEpe2NvbnN0IGU9dGhpc1tQb10oKTtpZihlIGluc3RhbmNlb2YgY0MmJmUudWk/LmltYWdlRWRpdClyZXR1cm4gdGhpcy5pbWFnZXx8KHRoaXMuaW1hZ2U9bmV3IGRDKHt9KSx0aGlzW0VvXSh0aGlzLmltYWdlKSksdm9pZCh0aGlzLmltYWdlW0RvXT1BW0RvXSk7Y29uc3QgdD1BW2dJXTtpZihudWxsPT09dGhpc1t0XSl7Zm9yKGNvbnN0IEEgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpe2NvbnN0IGU9dGhpc1tBXTtlIGluc3RhbmNlb2YgcGMmJih0aGlzW0FdPW51bGwsdGhpc1tRSV0oZSkpfXRoaXNbQVtnSV1dPUEsdGhpc1tFb10oQSl9ZWxzZSB0aGlzW3RdW0RvXT1BW0RvXX1bd0ldKCl7aWYodGhpcy5leERhdGEpcmV0dXJuInN0cmluZyI9PXR5cGVvZiB0aGlzLmV4RGF0YVtEb10/dGhpcy5leERhdGFbRG9dLnRyaW0oKTp0aGlzLmV4RGF0YVtEb11bd0ldKCkudHJpbSgpO2Zvcihjb25zdCBBIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpKXtpZigiaW1hZ2UiPT09QSljb250aW51ZTtjb25zdCBlPXRoaXNbQV07aWYoZSBpbnN0YW5jZW9mIHBjKXJldHVybihlW0RvXXx8IiIpLnRvU3RyaW5nKCkudHJpbSgpfXJldHVybiBudWxsfVtiSV0oQSl7Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpe2NvbnN0IHQ9dGhpc1tlXTtpZih0IGluc3RhbmNlb2YgcGMpcmV0dXJuIHRbYkldKEEpfXJldHVybiBxSS5FTVBUWX19Y2xhc3MgcEIgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkYywidmFyaWFibGVzIiwhMCksdGhpcy5pZD1BLmlkfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiIsdGhpcy5ib29sZWFuPW5ldyBtYyx0aGlzLmRhdGU9bmV3IG1jLHRoaXMuZGF0ZVRpbWU9bmV3IG1jLHRoaXMuZGVjaW1hbD1uZXcgbWMsdGhpcy5leERhdGE9bmV3IG1jLHRoaXMuZmxvYXQ9bmV3IG1jLHRoaXMuaW1hZ2U9bmV3IG1jLHRoaXMuaW50ZWdlcj1uZXcgbWMsdGhpcy5tYW5pZmVzdD1uZXcgbWMsdGhpcy5zY3JpcHQ9bmV3IG1jLHRoaXMudGV4dD1uZXcgbWMsdGhpcy50aW1lPW5ldyBtY31bYUldKCl7cmV0dXJuITB9fWNsYXNzIG1Ce3N0YXRpY1tSSV0oQSxlKXtpZihtQi5oYXNPd25Qcm9wZXJ0eShBKSl7Y29uc3QgdD1tQltBXShlKTtyZXR1cm4gdFtwSV0oZSksdH19c3RhdGljIGFwcGVhcmFuY2VGaWx0ZXIoQSl7cmV0dXJuIG5ldyBFaChBKX1zdGF0aWMgYXJjKEEpe3JldHVybiBuZXcgdWgoQSl9c3RhdGljIGFyZWEoQSl7cmV0dXJuIG5ldyBkaChBKX1zdGF0aWMgYXNzaXN0KEEpe3JldHVybiBuZXcgZmgoQSl9c3RhdGljIGJhcmNvZGUoQSl7cmV0dXJuIG5ldyBwaChBKX1zdGF0aWMgYmluZChBKXtyZXR1cm4gbmV3IG1oKEEpfXN0YXRpYyBiaW5kSXRlbXMoQSl7cmV0dXJuIG5ldyB5aChBKX1zdGF0aWMgYm9va2VuZChBKXtyZXR1cm4gbmV3IHdoKEEpfXN0YXRpYyBib29sZWFuKEEpe3JldHVybiBuZXcgRGgoQSl9c3RhdGljIGJvcmRlcihBKXtyZXR1cm4gbmV3IGJoKEEpfXN0YXRpYyBicmVhayhBKXtyZXR1cm4gbmV3IGtoKEEpfXN0YXRpYyBicmVha0FmdGVyKEEpe3JldHVybiBuZXcgRmgoQSl9c3RhdGljIGJyZWFrQmVmb3JlKEEpe3JldHVybiBuZXcgU2goQSl9c3RhdGljIGJ1dHRvbihBKXtyZXR1cm4gbmV3IFJoKEEpfXN0YXRpYyBjYWxjdWxhdGUoQSl7cmV0dXJuIG5ldyBHaChBKX1zdGF0aWMgY2FwdGlvbihBKXtyZXR1cm4gbmV3IE5oKEEpfXN0YXRpYyBjZXJ0aWZpY2F0ZShBKXtyZXR1cm4gbmV3IHhoKEEpfXN0YXRpYyBjZXJ0aWZpY2F0ZXMoQSl7cmV0dXJuIG5ldyBVaChBKX1zdGF0aWMgY2hlY2tCdXR0b24oQSl7cmV0dXJuIG5ldyBNaChBKX1zdGF0aWMgY2hvaWNlTGlzdChBKXtyZXR1cm4gbmV3IExoKEEpfXN0YXRpYyBjb2xvcihBKXtyZXR1cm4gbmV3IEpoKEEpfXN0YXRpYyBjb21iKEEpe3JldHVybiBuZXcgSGgoQSl9c3RhdGljIGNvbm5lY3QoQSl7cmV0dXJuIG5ldyBZaChBKX1zdGF0aWMgY29udGVudEFyZWEoQSl7cmV0dXJuIG5ldyB2aChBKX1zdGF0aWMgY29ybmVyKEEpe3JldHVybiBuZXcgS2goQSl9c3RhdGljIGRhdGUoQSl7cmV0dXJuIG5ldyBxaChBKX1zdGF0aWMgZGF0ZVRpbWUoQSl7cmV0dXJuIG5ldyBUaChBKX1zdGF0aWMgZGF0ZVRpbWVFZGl0KEEpe3JldHVybiBuZXcgUGgoQSl9c3RhdGljIGRlY2ltYWwoQSl7cmV0dXJuIG5ldyBXaChBKX1zdGF0aWMgZGVmYXVsdFVpKEEpe3JldHVybiBuZXcgT2goQSl9c3RhdGljIGRlc2MoQSl7cmV0dXJuIG5ldyBaaChBKX1zdGF0aWMgZGlnZXN0TWV0aG9kKEEpe3JldHVybiBuZXcgamgoQSl9c3RhdGljIGRpZ2VzdE1ldGhvZHMoQSl7cmV0dXJuIG5ldyBYaChBKX1zdGF0aWMgZHJhdyhBKXtyZXR1cm4gbmV3IFZoKEEpfXN0YXRpYyBlZGdlKEEpe3JldHVybiBuZXcgX2goQSl9c3RhdGljIGVuY29kaW5nKEEpe3JldHVybiBuZXcgemgoQSl9c3RhdGljIGVuY29kaW5ncyhBKXtyZXR1cm4gbmV3ICRoKEEpfXN0YXRpYyBlbmNyeXB0KEEpe3JldHVybiBuZXcgQUMoQSl9c3RhdGljIGVuY3J5cHREYXRhKEEpe3JldHVybiBuZXcgZUMoQSl9c3RhdGljIGVuY3J5cHRpb24oQSl7cmV0dXJuIG5ldyB0QyhBKX1zdGF0aWMgZW5jcnlwdGlvbk1ldGhvZChBKXtyZXR1cm4gbmV3IGlDKEEpfXN0YXRpYyBlbmNyeXB0aW9uTWV0aG9kcyhBKXtyZXR1cm4gbmV3IGFDKEEpfXN0YXRpYyBldmVudChBKXtyZXR1cm4gbmV3IHNDKEEpfXN0YXRpYyBleERhdGEoQSl7cmV0dXJuIG5ldyBuQyhBKX1zdGF0aWMgZXhPYmplY3QoQSl7cmV0dXJuIG5ldyByQyhBKX1zdGF0aWMgZXhjbEdyb3VwKEEpe3JldHVybiBuZXcgZ0MoQSl9c3RhdGljIGV4ZWN1dGUoQSl7cmV0dXJuIG5ldyBvQyhBKX1zdGF0aWMgZXh0cmFzKEEpe3JldHVybiBuZXcgSUMoQSl9c3RhdGljIGZpZWxkKEEpe3JldHVybiBuZXcgY0MoQSl9c3RhdGljIGZpbGwoQSl7cmV0dXJuIG5ldyBoQyhBKX1zdGF0aWMgZmlsdGVyKEEpe3JldHVybiBuZXcgQ0MoQSl9c3RhdGljIGZsb2F0KEEpe3JldHVybiBuZXcgQkMoQSl9c3RhdGljIGZvbnQoQSl7cmV0dXJuIG5ldyBsQyhBKX1zdGF0aWMgZm9ybWF0KEEpe3JldHVybiBuZXcgUUMoQSl9c3RhdGljIGhhbmRsZXIoQSl7cmV0dXJuIG5ldyBFQyhBKX1zdGF0aWMgaHlwaGVuYXRpb24oQSl7cmV0dXJuIG5ldyB1QyhBKX1zdGF0aWMgaW1hZ2UoQSl7cmV0dXJuIG5ldyBkQyhBKX1zdGF0aWMgaW1hZ2VFZGl0KEEpe3JldHVybiBuZXcgZkMoQSl9c3RhdGljIGludGVnZXIoQSl7cmV0dXJuIG5ldyBwQyhBKX1zdGF0aWMgaXNzdWVycyhBKXtyZXR1cm4gbmV3IG1DKEEpfXN0YXRpYyBpdGVtcyhBKXtyZXR1cm4gbmV3IHlDKEEpfXN0YXRpYyBrZWVwKEEpe3JldHVybiBuZXcgd0MoQSl9c3RhdGljIGtleVVzYWdlKEEpe3JldHVybiBuZXcgREMoQSl9c3RhdGljIGxpbmUoQSl7cmV0dXJuIG5ldyBiQyhBKX1zdGF0aWMgbGluZWFyKEEpe3JldHVybiBuZXcga0MoQSl9c3RhdGljIGxvY2tEb2N1bWVudChBKXtyZXR1cm4gbmV3IEZDKEEpfXN0YXRpYyBtYW5pZmVzdChBKXtyZXR1cm4gbmV3IFNDKEEpfXN0YXRpYyBtYXJnaW4oQSl7cmV0dXJuIG5ldyBSQyhBKX1zdGF0aWMgbWRwKEEpe3JldHVybiBuZXcgR0MoQSl9c3RhdGljIG1lZGl1bShBKXtyZXR1cm4gbmV3IE5DKEEpfXN0YXRpYyBtZXNzYWdlKEEpe3JldHVybiBuZXcgeEMoQSl9c3RhdGljIG51bWVyaWNFZGl0KEEpe3JldHVybiBuZXcgVUMoQSl9c3RhdGljIG9jY3VyKEEpe3JldHVybiBuZXcgTUMoQSl9c3RhdGljIG9pZChBKXtyZXR1cm4gbmV3IExDKEEpfXN0YXRpYyBvaWRzKEEpe3JldHVybiBuZXcgSkMoQSl9c3RhdGljIG92ZXJmbG93KEEpe3JldHVybiBuZXcgSEMoQSl9c3RhdGljIHBhZ2VBcmVhKEEpe3JldHVybiBuZXcgWUMoQSl9c3RhdGljIHBhZ2VTZXQoQSl7cmV0dXJuIG5ldyB2QyhBKX1zdGF0aWMgcGFyYShBKXtyZXR1cm4gbmV3IEtDKEEpfXN0YXRpYyBwYXNzd29yZEVkaXQoQSl7cmV0dXJuIG5ldyBxQyhBKX1zdGF0aWMgcGF0dGVybihBKXtyZXR1cm4gbmV3IFRDKEEpfXN0YXRpYyBwaWN0dXJlKEEpe3JldHVybiBuZXcgUEMoQSl9c3RhdGljIHByb3RvKEEpe3JldHVybiBuZXcgV0MoQSl9c3RhdGljIHJhZGlhbChBKXtyZXR1cm4gbmV3IE9DKEEpfXN0YXRpYyByZWFzb24oQSl7cmV0dXJuIG5ldyBaQyhBKX1zdGF0aWMgcmVhc29ucyhBKXtyZXR1cm4gbmV3IGpDKEEpfXN0YXRpYyByZWN0YW5nbGUoQSl7cmV0dXJuIG5ldyBYQyhBKX1zdGF0aWMgcmVmKEEpe3JldHVybiBuZXcgVkMoQSl9c3RhdGljIHNjcmlwdChBKXtyZXR1cm4gbmV3IF9DKEEpfXN0YXRpYyBzZXRQcm9wZXJ0eShBKXtyZXR1cm4gbmV3IHpDKEEpfXN0YXRpYyBzaWduRGF0YShBKXtyZXR1cm4gbmV3ICRDKEEpfXN0YXRpYyBzaWduYXR1cmUoQSl7cmV0dXJuIG5ldyBBQihBKX1zdGF0aWMgc2lnbmluZyhBKXtyZXR1cm4gbmV3IGVCKEEpfXN0YXRpYyBzb2xpZChBKXtyZXR1cm4gbmV3IHRCKEEpfXN0YXRpYyBzcGVhayhBKXtyZXR1cm4gbmV3IGlCKEEpfXN0YXRpYyBzdGlwcGxlKEEpe3JldHVybiBuZXcgYUIoQSl9c3RhdGljIHN1YmZvcm0oQSl7cmV0dXJuIG5ldyBzQihBKX1zdGF0aWMgc3ViZm9ybVNldChBKXtyZXR1cm4gbmV3IG5CKEEpfXN0YXRpYyBzdWJqZWN0RE4oQSl7cmV0dXJuIG5ldyByQihBKX1zdGF0aWMgc3ViamVjdEROcyhBKXtyZXR1cm4gbmV3IGdCKEEpfXN0YXRpYyBzdWJtaXQoQSl7cmV0dXJuIG5ldyBvQihBKX1zdGF0aWMgdGVtcGxhdGUoQSl7cmV0dXJuIG5ldyBJQihBKX1zdGF0aWMgdGV4dChBKXtyZXR1cm4gbmV3IGNCKEEpfXN0YXRpYyB0ZXh0RWRpdChBKXtyZXR1cm4gbmV3IGhCKEEpfXN0YXRpYyB0aW1lKEEpe3JldHVybiBuZXcgQ0IoQSl9c3RhdGljIHRpbWVTdGFtcChBKXtyZXR1cm4gbmV3IEJCKEEpfXN0YXRpYyB0b29sVGlwKEEpe3JldHVybiBuZXcgbEIoQSl9c3RhdGljIHRyYXZlcnNhbChBKXtyZXR1cm4gbmV3IFFCKEEpfXN0YXRpYyB0cmF2ZXJzZShBKXtyZXR1cm4gbmV3IEVCKEEpfXN0YXRpYyB1aShBKXtyZXR1cm4gbmV3IHVCKEEpfXN0YXRpYyB2YWxpZGF0ZShBKXtyZXR1cm4gbmV3IGRCKEEpfXN0YXRpYyB2YWx1ZShBKXtyZXR1cm4gbmV3IGZCKEEpfXN0YXRpYyB2YXJpYWJsZXMoQSl7cmV0dXJuIG5ldyBwQihBKX19Y29uc3QgeUI9R0kuZGF0YXNldHMuaWQ7ZnVuY3Rpb24gd0IoQSl7Y29uc3QgZT1uZXcgY0Ioe30pO3JldHVybiBlW0RvXT1BLGV9Y2xhc3MgREJ7Y29uc3RydWN0b3IoQSl7dGhpcy5yb290PUEsdGhpcy5kYXRhc2V0cz1BLmRhdGFzZXRzLHRoaXMuZGF0YT1BLmRhdGFzZXRzPy5kYXRhfHxuZXcgd2MoR0kuZGF0YXNldHMuaWQsImRhdGEiKSx0aGlzLmVtcHR5TWVyZ2U9MD09PXRoaXMuZGF0YVt2b10oKS5sZW5ndGgsdGhpcy5yb290LmZvcm09dGhpcy5mb3JtPUEudGVtcGxhdGVbeW9dKCl9X2lzQ29uc3VtZURhdGEoKXtyZXR1cm4hdGhpcy5lbXB0eU1lcmdlJiZ0aGlzLl9tZXJnZU1vZGV9X2lzTWF0Y2hUZW1wbGF0ZSgpe3JldHVybiF0aGlzLl9pc0NvbnN1bWVEYXRhKCl9YmluZCgpe3JldHVybiB0aGlzLl9iaW5kRWxlbWVudCh0aGlzLmZvcm0sdGhpcy5kYXRhKSx0aGlzLmZvcm19Z2V0RGF0YSgpe3JldHVybiB0aGlzLmRhdGF9X2JpbmRWYWx1ZShBLGUsdCl7aWYoQVtib109ZSxBW1pvXSgpKWlmKGVbJG9dKCkpe2NvbnN0IHQ9ZVtKb10oKTtBW21JXSh3Qih0KSl9ZWxzZSBpZihBIGluc3RhbmNlb2YgY0MmJiJtdWx0aVNlbGVjdCI9PT1BLnVpPy5jaG9pY2VMaXN0Py5vcGVuKXtjb25zdCB0PWVbdm9dKCkubWFwKChBPT5BW0RvXS50cmltKCkpKS5qb2luKCJcbiIpO0FbbUldKHdCKHQpKX1lbHNlIHRoaXMuX2lzQ29uc3VtZURhdGEoKSYmVSgiWEZBIC0gTm9kZXMgaGF2ZW4ndCB0aGUgc2FtZSB0eXBlLiIpO2Vsc2UhZVskb10oKXx8dGhpcy5faXNNYXRjaFRlbXBsYXRlKCk/dGhpcy5fYmluZEVsZW1lbnQoQSxlKTpVKCJYRkEgLSBOb2RlcyBoYXZlbid0IHRoZSBzYW1lIHR5cGUuIil9X2ZpbmREYXRhQnlOYW1lVG9Db25zdW1lKEEsZSx0LGkpe2lmKCFBKXJldHVybiBudWxsO2xldCBhLHM7Zm9yKGxldCBpPTA7aTwzO2krKyl7Zm9yKGE9dFtZb10oQSwhMSwhMCk7cz1hLm5leHQoKS52YWx1ZSxzOylpZihlPT09c1skb10oKSlyZXR1cm4gcztpZih0W3JJXT09PUdJLmRhdGFzZXRzLmlkJiYiZGF0YSI9PT10W2dJXSlicmVhazt0PXRbUG9dKCl9cmV0dXJuIGk/KGE9dGhpcy5kYXRhW1lvXShBLCEwLCExKSxzPWEubmV4dCgpLnZhbHVlLHN8fChhPXRoaXMuZGF0YVtHb10oQSwhMCkscz1hLm5leHQoKS52YWx1ZSxzPy5bJG9dKCk/czpudWxsKSk6bnVsbH1fc2V0UHJvcGVydGllcyhBLGUpe2lmKEEuaGFzT3duUHJvcGVydHkoInNldFByb3BlcnR5IikpZm9yKGNvbnN0e3JlZjp0LHRhcmdldDppLGNvbm5lY3Rpb246YX1vZiBBLnNldFByb3BlcnR5LmNoaWxkcmVuKXtpZihhKWNvbnRpbnVlO2lmKCF0KWNvbnRpbnVlO2NvbnN0IHM9QWModGhpcy5yb290LGUsdCwhMSwhMSk7aWYoIXMpe1UoYFhGQSAtIEludmFsaWQgcmVmZXJlbmNlOiAke3R9LmApO2NvbnRpbnVlfWNvbnN0W25dPXM7aWYoIW5bQUldKHRoaXMuZGF0YSkpe1UoIlhGQSAtIEludmFsaWQgbm9kZTogbXVzdCBiZSBhIGRhdGEgbm9kZS4iKTtjb250aW51ZX1jb25zdCByPUFjKHRoaXMucm9vdCxBLGksITEsITEpO2lmKCFyKXtVKGBYRkEgLSBJbnZhbGlkIHRhcmdldDogJHtpfS5gKTtjb250aW51ZX1jb25zdFtnXT1yO2lmKCFnW0FJXShBKSl7VSgiWEZBIC0gSW52YWxpZCB0YXJnZXQ6IG11c3QgYmUgYSBwcm9wZXJ0eSBvciBzdWJwcm9wZXJ0eS4iKTtjb250aW51ZX1jb25zdCBvPWdbUG9dKCk7aWYoZyBpbnN0YW5jZW9mIHpDfHxvIGluc3RhbmNlb2YgekMpe1UoIlhGQSAtIEludmFsaWQgdGFyZ2V0OiBjYW5ub3QgYmUgYSBzZXRQcm9wZXJ0eSBvciBvbmUgb2YgaXRzIHByb3BlcnRpZXMuIik7Y29udGludWV9aWYoZyBpbnN0YW5jZW9mIHlofHxvIGluc3RhbmNlb2YgeWgpe1UoIlhGQSAtIEludmFsaWQgdGFyZ2V0OiBjYW5ub3QgYmUgYSBiaW5kSXRlbXMgb3Igb25lIG9mIGl0cyBwcm9wZXJ0aWVzLiIpO2NvbnRpbnVlfWNvbnN0IEk9blt3SV0oKSxjPWdbZ0ldO2lmKGcgaW5zdGFuY2VvZiB5Yyl7Y29uc3QgQT1PYmplY3QuY3JlYXRlKG51bGwpO0FbY109STtjb25zdCBlPVJlZmxlY3QuY29uc3RydWN0KE9iamVjdC5nZXRQcm90b3R5cGVPZihvKS5jb25zdHJ1Y3RvcixbQV0pO29bY109ZVtjXX1lbHNlIGcuaGFzT3duUHJvcGVydHkoRG8pPyhnW2JvXT1uLGdbRG9dPUksZ1tTb10oKSk6VSgiWEZBIC0gSW52YWxpZCBub2RlIHRvIHVzZSBpbiBzZXRQcm9wZXJ0eSIpfX1fYmluZEl0ZW1zKEEsZSl7aWYoIUEuaGFzT3duUHJvcGVydHkoIml0ZW1zIil8fCFBLmhhc093blByb3BlcnR5KCJiaW5kSXRlbXMiKXx8QS5iaW5kSXRlbXMuaXNFbXB0eSgpKXJldHVybjtmb3IoY29uc3QgZSBvZiBBLml0ZW1zLmNoaWxkcmVuKUFbUUldKGUpO0EuaXRlbXMuY2xlYXIoKTtjb25zdCB0PW5ldyB5Qyh7fSksaT1uZXcgeUMoe30pO0FbRW9dKHQpLEEuaXRlbXMucHVzaCh0KSxBW0VvXShpKSxBLml0ZW1zLnB1c2goaSk7Zm9yKGNvbnN0e3JlZjphLGxhYmVsUmVmOnMsdmFsdWVSZWY6bixjb25uZWN0aW9uOnJ9b2YgQS5iaW5kSXRlbXMuY2hpbGRyZW4pe2lmKHIpY29udGludWU7aWYoIWEpY29udGludWU7Y29uc3QgQT1BYyh0aGlzLnJvb3QsZSxhLCExLCExKTtpZihBKWZvcihjb25zdCBlIG9mIEEpe2lmKCFlW0FJXSh0aGlzLmRhdGFzZXRzKSl7VShgWEZBIC0gSW52YWxpZCByZWYgKCR7YX0pOiBtdXN0IGJlIGEgZGF0YXNldHMgY2hpbGQuYCk7Y29udGludWV9Y29uc3QgQT1BYyh0aGlzLnJvb3QsZSxzLCEwLCExKTtpZighQSl7VShgWEZBIC0gSW52YWxpZCBsYWJlbDogJHtzfS5gKTtjb250aW51ZX1jb25zdFtyXT1BO2lmKCFyW0FJXSh0aGlzLmRhdGFzZXRzKSl7VSgiWEZBIC0gSW52YWxpZCBsYWJlbDogbXVzdCBiZSBhIGRhdGFzZXRzIGNoaWxkLiIpO2NvbnRpbnVlfWNvbnN0IGc9QWModGhpcy5yb290LGUsbiwhMCwhMSk7aWYoIWcpe1UoYFhGQSAtIEludmFsaWQgdmFsdWU6ICR7bn0uYCk7Y29udGludWV9Y29uc3Rbb109ZztpZighb1tBSV0odGhpcy5kYXRhc2V0cykpe1UoIlhGQSAtIEludmFsaWQgdmFsdWU6IG11c3QgYmUgYSBkYXRhc2V0cyBjaGlsZC4iKTtjb250aW51ZX1jb25zdCBJPXdCKHJbd0ldKCkpLGM9d0Iob1t3SV0oKSk7dFtFb10oSSksdC50ZXh0LnB1c2goSSksaVtFb10oYyksaS50ZXh0LnB1c2goYyl9ZWxzZSBVKGBYRkEgLSBJbnZhbGlkIHJlZmVyZW5jZTogJHthfS5gKX19X2JpbmRPY2N1cnJlbmNlcyhBLGUsdCl7bGV0IGk7aWYoZS5sZW5ndGg+MSYmKGk9QVt5b10oKSxpW1FJXShpLm9jY3VyKSxpLm9jY3VyPW51bGwpLHRoaXMuX2JpbmRWYWx1ZShBLGVbMF0sdCksdGhpcy5fc2V0UHJvcGVydGllcyhBLGVbMF0pLHRoaXMuX2JpbmRJdGVtcyhBLGVbMF0pLDE9PT1lLmxlbmd0aClyZXR1cm47Y29uc3QgYT1BW1BvXSgpLHM9QVtnSV0sbj1hW1hvXShBKTtmb3IobGV0IEE9MSxyPWUubGVuZ3RoO0E8cjtBKyspe2NvbnN0IHI9ZVtBXSxnPWlbeW9dKCk7YVtzXS5wdXNoKGcpLGFbVm9dKG4rQSxnKSx0aGlzLl9iaW5kVmFsdWUoZyxyLHQpLHRoaXMuX3NldFByb3BlcnRpZXMoZyxyKSx0aGlzLl9iaW5kSXRlbXMoZyxyKX19X2NyZWF0ZU9jY3VycmVuY2VzKEEpe2lmKCF0aGlzLmVtcHR5TWVyZ2UpcmV0dXJuO2NvbnN0e29jY3VyOmV9PUE7aWYoIWV8fGUuaW5pdGlhbDw9MSlyZXR1cm47Y29uc3QgdD1BW1BvXSgpLGk9QVtnSV07aWYoISh0W2ldaW5zdGFuY2VvZiBtYykpcmV0dXJuO2xldCBhO2E9QS5uYW1lP3RbaV0uY2hpbGRyZW4uZmlsdGVyKChlPT5lLm5hbWU9PT1BLm5hbWUpKS5sZW5ndGg6dFtpXS5jaGlsZHJlbi5sZW5ndGg7Y29uc3Qgcz10W1hvXShBKSsxLG49ZS5pbml0aWFsLWE7aWYobil7Y29uc3QgZT1BW3lvXSgpO2VbUUldKGUub2NjdXIpLGUub2NjdXI9bnVsbCx0W2ldLnB1c2goZSksdFtWb10ocyxlKTtmb3IobGV0IEE9MTtBPG47QSsrKXtjb25zdCBhPWVbeW9dKCk7dFtpXS5wdXNoKGEpLHRbVm9dKHMrQSxhKX19fV9nZXRPY2N1ckluZm8oQSl7Y29uc3R7bmFtZTplLG9jY3VyOnR9PUE7aWYoIXR8fCFlKXJldHVyblsxLDFdO2NvbnN0IGk9LTE9PT10Lm1heD8xLzA6dC5tYXg7cmV0dXJuW3QubWluLGldfV9zZXRBbmRCaW5kKEEsZSl7dGhpcy5fc2V0UHJvcGVydGllcyhBLGUpLHRoaXMuX2JpbmRJdGVtcyhBLGUpLHRoaXMuX2JpbmRFbGVtZW50KEEsZSl9X2JpbmRFbGVtZW50KEEsZSl7Y29uc3QgdD1bXTt0aGlzLl9jcmVhdGVPY2N1cnJlbmNlcyhBKTtmb3IoY29uc3QgaSBvZiBBW3ZvXSgpKXtpZihpW2JvXSljb250aW51ZTtpZih2b2lkIDA9PT10aGlzLl9tZXJnZU1vZGUmJiJzdWJmb3JtIj09PWlbZ0ldKXt0aGlzLl9tZXJnZU1vZGU9ImNvbnN1bWVEYXRhIj09PWkubWVyZ2VNb2RlO2NvbnN0IEE9ZVt2b10oKTtpZihBLmxlbmd0aD4wKXRoaXMuX2JpbmRPY2N1cnJlbmNlcyhpLFtBWzBdXSxudWxsKTtlbHNlIGlmKHRoaXMuZW1wdHlNZXJnZSl7Y29uc3QgQT1lW3JJXT09PXlCPy0xOmVbckldLHQ9aVtib109bmV3IHdjKEEsaS5uYW1lfHwicm9vdCIpO2VbRW9dKHQpLHRoaXMuX2JpbmRFbGVtZW50KGksdCl9Y29udGludWV9aWYoIWlbem9dKCkpY29udGludWU7bGV0IEE9ITEsYT1udWxsLHM9bnVsbCxuPW51bGw7aWYoaS5iaW5kKXtzd2l0Y2goaS5iaW5kLm1hdGNoKXtjYXNlIm5vbmUiOnRoaXMuX3NldEFuZEJpbmQoaSxlKTtjb250aW51ZTtjYXNlImdsb2JhbCI6QT0hMDticmVhaztjYXNlImRhdGFSZWYiOmlmKCFpLmJpbmQucmVmKXtVKGBYRkEgLSByZWYgaXMgZW1wdHkgaW4gbm9kZSAke2lbZ0ldfS5gKSx0aGlzLl9zZXRBbmRCaW5kKGksZSk7Y29udGludWV9cz1pLmJpbmQucmVmfWkuYmluZC5waWN0dXJlJiYoYT1pLmJpbmQucGljdHVyZVtEb10pfWNvbnN0W3IsZ109dGhpcy5fZ2V0T2NjdXJJbmZvKGkpO2lmKHMpe2lmKG49QWModGhpcy5yb290LGUscywhMCwhMSksbnVsbD09PW4pe2lmKG49ZWModGhpcy5kYXRhLGUscyksIW4pY29udGludWU7dGhpcy5faXNDb25zdW1lRGF0YSgpJiYoblt3b109ITApLHRoaXMuX3NldEFuZEJpbmQoaSxuKTtjb250aW51ZX10aGlzLl9pc0NvbnN1bWVEYXRhKCkmJihuPW4uZmlsdGVyKChBPT4hQVt3b10pKSksbi5sZW5ndGg+Zz9uPW4uc2xpY2UoMCxnKTowPT09bi5sZW5ndGgmJihuPW51bGwpLG4mJnRoaXMuX2lzQ29uc3VtZURhdGEoKSYmbi5mb3JFYWNoKChBPT57QVt3b109ITB9KSl9ZWxzZXtpZighaS5uYW1lKXt0aGlzLl9zZXRBbmRCaW5kKGksZSk7Y29udGludWV9aWYodGhpcy5faXNDb25zdW1lRGF0YSgpKXtjb25zdCB0PVtdO2Zvcig7dC5sZW5ndGg8Zzspe2NvbnN0IGE9dGhpcy5fZmluZERhdGFCeU5hbWVUb0NvbnN1bWUoaS5uYW1lLGlbWm9dKCksZSxBKTtpZighYSlicmVhazthW3dvXT0hMCx0LnB1c2goYSl9bj10Lmxlbmd0aD4wP3Q6bnVsbH1lbHNle2lmKG49ZVtZb10oaS5uYW1lLCExLHRoaXMuZW1wdHlNZXJnZSkubmV4dCgpLnZhbHVlLCFuKXtpZigwPT09cil7dC5wdXNoKGkpO2NvbnRpbnVlfWNvbnN0IEE9ZVtySV09PT15Qj8tMTplW3JJXTtuPWlbYm9dPW5ldyB3YyhBLGkubmFtZSksdGhpcy5lbXB0eU1lcmdlJiYoblt3b109ITApLGVbRW9dKG4pLHRoaXMuX3NldEFuZEJpbmQoaSxuKTtjb250aW51ZX10aGlzLmVtcHR5TWVyZ2UmJihuW3dvXT0hMCksbj1bbl19fW4/dGhpcy5fYmluZE9jY3VycmVuY2VzKGksbixhKTpyPjA/dGhpcy5fc2V0QW5kQmluZChpLGUpOnQucHVzaChpKX10LmZvckVhY2goKEE9PkFbUG9dKClbUUldKEEpKSl9fWNsYXNzIGJCe2NvbnN0cnVjdG9yKEEsZSl7dGhpcy5kYXRhPWUsdGhpcy5kYXRhc2V0PUEuZGF0YXNldHN8fG51bGx9c2VyaWFsaXplKEEpe2NvbnN0IGU9W1stMSx0aGlzLmRhdGFbdm9dKCldXTtmb3IoO2UubGVuZ3RoPjA7KXtjb25zdCB0PWUuYXQoLTEpLFtpLGFdPXQ7aWYoaSsxPT09YS5sZW5ndGgpe2UucG9wKCk7Y29udGludWV9Y29uc3Qgcz1hWysrdFswXV0sbj1BLmdldChzW1NJXSk7aWYobilzW21JXShuKTtlbHNle2NvbnN0IGU9c1tOb10oKTtmb3IoY29uc3QgdCBvZiBlLnZhbHVlcygpKXtjb25zdCBlPUEuZ2V0KHRbU0ldKTtpZihlKXt0W21JXShlKTticmVha319fWNvbnN0IHI9c1t2b10oKTtyLmxlbmd0aD4wJiZlLnB1c2goWy0xLHJdKX1jb25zdCB0PVsnPHhmYTpkYXRhc2V0cyB4bWxuczp4ZmE9Imh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLWRhdGEvMS4wLyI+J107aWYodGhpcy5kYXRhc2V0KWZvcihjb25zdCBBIG9mIHRoaXMuZGF0YXNldFt2b10oKSkiZGF0YSIhPT1BW2dJXSYmQVtrSV0odCk7cmV0dXJuIHRoaXMuZGF0YVtrSV0odCksdC5wdXNoKCI8L3hmYTpkYXRhc2V0cz4iKSx0LmpvaW4oIiIpfX1jb25zdCBrQj1HSS5jb25maWcuaWQ7Y2xhc3MgRkIgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiYWNyb2JhdCIsITApLHRoaXMuYWNyb2JhdDc9bnVsbCx0aGlzLmF1dG9TYXZlPW51bGwsdGhpcy5jb21tb249bnVsbCx0aGlzLnZhbGlkYXRlPW51bGwsdGhpcy52YWxpZGF0ZUFwcHJvdmFsU2lnbmF0dXJlcz1udWxsLHRoaXMuc3VibWl0VXJsPW5ldyBtY319Y2xhc3MgU0IgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiYWNyb2JhdDciLCEwKSx0aGlzLmR5bmFtaWNSZW5kZXI9bnVsbH19Y2xhc3MgUkIgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiQURCRV9KU0NvbnNvbGUiLFsiZGVsZWdhdGUiLCJFbmFibGUiLCJEaXNhYmxlIl0pfX1jbGFzcyBHQiBleHRlbmRzIGJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJBREJFX0pTRGVidWdnZXIiLFsiZGVsZWdhdGUiLCJFbmFibGUiLCJEaXNhYmxlIl0pfX1jbGFzcyBOQiBleHRlbmRzIFNje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJhZGRTaWxlbnRQcmludCIpfX1jbGFzcyB4QiBleHRlbmRzIFNje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJhZGRWaWV3ZXJQcmVmZXJlbmNlcyIpfX1jbGFzcyBVQiBleHRlbmRzIFJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJhZGp1c3REYXRhIil9fWNsYXNzIE1CIGV4dGVuZHMgRmN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImFkb2JlRXh0ZW5zaW9uTGV2ZWwiLDAsKEE9PkE+PTEmJkE8PTgpKX19Y2xhc3MgTEIgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiYWdlbnQiLCEwKSx0aGlzLm5hbWU9QS5uYW1lP0EubmFtZS50cmltKCk6IiIsdGhpcy5jb21tb249bmV3IG1jfX1jbGFzcyBKQiBleHRlbmRzIERje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJhbHdheXNFbWJlZCIpfX1jbGFzcyBIQiBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJhbWQiKX19Y2xhc3MgWUIgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiYXJlYSIpLHRoaXMubGV2ZWw9TUkoe2RhdGE6QS5sZXZlbCxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTpBPT5BPj0xJiZBPD0zfSksdGhpcy5uYW1lPUhJKEEubmFtZSxbIiIsImJhcmNvZGUiLCJjb3JlaW5pdCIsImRldmljZURyaXZlciIsImZvbnQiLCJnZW5lcmFsIiwibGF5b3V0IiwibWVyZ2UiLCJzY3JpcHQiLCJzaWduYXR1cmUiLCJzb3VyY2VTZXQiLCJ0ZW1wbGF0ZUNhY2hlIl0pfX1jbGFzcyB2QiBleHRlbmRzIGJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJhdHRyaWJ1dGVzIixbInByZXNlcnZlIiwiZGVsZWdhdGUiLCJpZ25vcmUiXSl9fWNsYXNzIEtCIGV4dGVuZHMgYmN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImF1dG9TYXZlIixbImRpc2FibGVkIiwiZW5hYmxlZCJdKX19Y2xhc3MgcUIgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiYmFzZSIpfX1jbGFzcyBUQiBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJiYXRjaE91dHB1dCIpLHRoaXMuZm9ybWF0PUhJKEEuZm9ybWF0LFsibm9uZSIsImNvbmNhdCIsInppcCIsInppcENvbXByZXNzIl0pfX1jbGFzcyBQQiBleHRlbmRzIERje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJiZWhhdmlvck92ZXJyaWRlIil9W1NvXSgpe3RoaXNbRG9dPW5ldyBNYXAodGhpc1tEb10udHJpbSgpLnNwbGl0KC9ccysvKS5maWx0ZXIoKEE9PkEuaW5jbHVkZXMoIjoiKSkpLm1hcCgoQT0+QS5zcGxpdCgiOiIsMikpKSl9fWNsYXNzIFdCIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImNhY2hlIiwhMCksdGhpcy50ZW1wbGF0ZUNhY2hlPW51bGx9fWNsYXNzIE9CIGV4dGVuZHMgU2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImNoYW5nZSIpfX1jbGFzcyBaQiBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJjb21tb24iLCEwKSx0aGlzLmRhdGE9bnVsbCx0aGlzLmxvY2FsZT1udWxsLHRoaXMubG9jYWxlU2V0PW51bGwsdGhpcy5tZXNzYWdpbmc9bnVsbCx0aGlzLnN1cHByZXNzQmFubmVyPW51bGwsdGhpcy50ZW1wbGF0ZT1udWxsLHRoaXMudmFsaWRhdGlvbk1lc3NhZ2luZz1udWxsLHRoaXMudmVyc2lvbkNvbnRyb2w9bnVsbCx0aGlzLmxvZz1uZXcgbWN9fWNsYXNzIGpCIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImNvbXByZXNzIiksdGhpcy5zY29wZT1ISShBLnNjb3BlLFsiaW1hZ2VPbmx5IiwiZG9jdW1lbnQiXSl9fWNsYXNzIFhCIGV4dGVuZHMgU2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImNvbXByZXNzTG9naWNhbFN0cnVjdHVyZSIpfX1jbGFzcyBWQiBleHRlbmRzIFJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJjb21wcmVzc09iamVjdFN0cmVhbSIpfX1jbGFzcyBfQiBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJjb21wcmVzc2lvbiIsITApLHRoaXMuY29tcHJlc3NMb2dpY2FsU3RydWN0dXJlPW51bGwsdGhpcy5jb21wcmVzc09iamVjdFN0cmVhbT1udWxsLHRoaXMubGV2ZWw9bnVsbCx0aGlzLnR5cGU9bnVsbH19Y2xhc3MgekIgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiY29uZmlnIiwhMCksdGhpcy5hY3JvYmF0PW51bGwsdGhpcy5wcmVzZW50PW51bGwsdGhpcy50cmFjZT1udWxsLHRoaXMuYWdlbnQ9bmV3IG1jfX1jbGFzcyAkQiBleHRlbmRzIGJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJjb25mb3JtYW5jZSIsWyJBIiwiQiJdKX19Y2xhc3MgQWwgZXh0ZW5kcyBTY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiY29udGVudENvcHkiKX19Y2xhc3MgZWwgZXh0ZW5kcyBGY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiY29waWVzIiwxLChBPT5BPj0xKSl9fWNsYXNzIHRsIGV4dGVuZHMga2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImNyZWF0b3IiKX19Y2xhc3MgaWwgZXh0ZW5kcyBGY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiY3VycmVudFBhZ2UiLDAsKEE9PkE+PTApKX19Y2xhc3MgYWwgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiZGF0YSIsITApLHRoaXMuYWRqdXN0RGF0YT1udWxsLHRoaXMuYXR0cmlidXRlcz1udWxsLHRoaXMuaW5jcmVtZW50YWxMb2FkPW51bGwsdGhpcy5vdXRwdXRYU0w9bnVsbCx0aGlzLnJhbmdlPW51bGwsdGhpcy5yZWNvcmQ9bnVsbCx0aGlzLnN0YXJ0Tm9kZT1udWxsLHRoaXMudXJpPW51bGwsdGhpcy53aW5kb3c9bnVsbCx0aGlzLnhzbD1udWxsLHRoaXMuZXhjbHVkZU5TPW5ldyBtYyx0aGlzLnRyYW5zZm9ybT1uZXcgbWN9fWNsYXNzIHNsIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImRlYnVnIiwhMCksdGhpcy51cmk9bnVsbH19Y2xhc3MgbmwgZXh0ZW5kcyBEY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiZGVmYXVsdFR5cGVmYWNlIiksdGhpcy53cml0aW5nU2NyaXB0PUhJKEEud3JpdGluZ1NjcmlwdCxbIioiLCJBcmFiaWMiLCJDeXJpbGxpYyIsIkVhc3RFdXJvcGVhblJvbWFuIiwiR3JlZWsiLCJIZWJyZXciLCJKYXBhbmVzZSIsIktvcmVhbiIsIlJvbWFuIiwiU2ltcGxpZmllZENoaW5lc2UiLCJUaGFpIiwiVHJhZGl0aW9uYWxDaGluZXNlIiwiVmlldG5hbWVzZSJdKX19Y2xhc3MgcmwgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiZGVzdGluYXRpb24iLFsicGRmIiwicGNsIiwicHMiLCJ3ZWJDbGllbnQiLCJ6cGwiXSl9fWNsYXNzIGdsIGV4dGVuZHMgU2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImRvY3VtZW50QXNzZW1ibHkiKX19Y2xhc3Mgb2wgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiZHJpdmVyIiwhMCksdGhpcy5uYW1lPUEubmFtZT9BLm5hbWUudHJpbSgpOiIiLHRoaXMuZm9udEluZm89bnVsbCx0aGlzLnhkYz1udWxsfX1jbGFzcyBJbCBleHRlbmRzIGJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJkdXBsZXhPcHRpb24iLFsic2ltcGxleCIsImR1cGxleEZsaXBMb25nRWRnZSIsImR1cGxleEZsaXBTaG9ydEVkZ2UiXSl9fWNsYXNzIGNsIGV4dGVuZHMgYmN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImR5bmFtaWNSZW5kZXIiLFsiZm9yYmlkZGVuIiwicmVxdWlyZWQiXSl9fWNsYXNzIGhsIGV4dGVuZHMgU2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImVtYmVkIil9fWNsYXNzIENsIGV4dGVuZHMgU2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImVuY3J5cHQiKX19Y2xhc3MgQmwgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiZW5jcnlwdGlvbiIsITApLHRoaXMuZW5jcnlwdD1udWxsLHRoaXMuZW5jcnlwdGlvbkxldmVsPW51bGwsdGhpcy5wZXJtaXNzaW9ucz1udWxsfX1jbGFzcyBsbCBleHRlbmRzIGJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJlbmNyeXB0aW9uTGV2ZWwiLFsiNDBiaXQiLCIxMjhiaXQiXSl9fWNsYXNzIFFsIGV4dGVuZHMga2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImVuZm9yY2UiKX19Y2xhc3MgRWwgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiZXF1YXRlIiksdGhpcy5mb3JjZT1NSSh7ZGF0YTpBLmZvcmNlLGRlZmF1bHRWYWx1ZToxLHZhbGlkYXRlOkE9PjA9PT1BfSksdGhpcy5mcm9tPUEuZnJvbXx8IiIsdGhpcy50bz1BLnRvfHwiIn19Y2xhc3MgdWwgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiZXF1YXRlUmFuZ2UiKSx0aGlzLmZyb209QS5mcm9tfHwiIix0aGlzLnRvPUEudG98fCIiLHRoaXMuX3VuaWNvZGVSYW5nZT1BLnVuaWNvZGVSYW5nZXx8IiJ9Z2V0IHVuaWNvZGVSYW5nZSgpe2NvbnN0IEE9W10sZT0vVVwrKFswLTlhLWZBLUZdKykvLHQ9dGhpcy5fdW5pY29kZVJhbmdlO2ZvcihsZXQgaSBvZiB0LnNwbGl0KCIsIikubWFwKChBPT5BLnRyaW0oKSkpLmZpbHRlcigoQT0+ISFBKSkpaT1pLnNwbGl0KCItIiwyKS5tYXAoKEE9Pntjb25zdCB0PUEubWF0Y2goZSk7cmV0dXJuIHQ/cGFyc2VJbnQodFsxXSwxNik6MH0pKSwxPT09aS5sZW5ndGgmJmkucHVzaChpWzBdKSxBLnB1c2goaSk7cmV0dXJuIEgodGhpcywidW5pY29kZVJhbmdlIixBKX19Y2xhc3MgZGwgZXh0ZW5kcyBEY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiZXhjbHVkZSIpfVtTb10oKXt0aGlzW0RvXT10aGlzW0RvXS50cmltKCkuc3BsaXQoL1xzKy8pLmZpbHRlcigoQT0+QSYmWyJjYWxjdWxhdGUiLCJjbG9zZSIsImVudGVyIiwiZXhpdCIsImluaXRpYWxpemUiLCJyZWFkeSIsInZhbGlkYXRlIl0uaW5jbHVkZXMoQSkpKX19Y2xhc3MgZmwgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiZXhjbHVkZU5TIil9fWNsYXNzIHBsIGV4dGVuZHMgYmN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImZsaXBMYWJlbCIsWyJ1c2VQcmludGVyU2V0dGluZyIsIm9uIiwib2ZmIl0pfX1jbGFzcyBtbCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJmb250SW5mbyIsITApLHRoaXMuZW1iZWQ9bnVsbCx0aGlzLm1hcD1udWxsLHRoaXMuc3Vic2V0QmVsb3c9bnVsbCx0aGlzLmFsd2F5c0VtYmVkPW5ldyBtYyx0aGlzLmRlZmF1bHRUeXBlZmFjZT1uZXcgbWMsdGhpcy5uZXZlckVtYmVkPW5ldyBtY319Y2xhc3MgeWwgZXh0ZW5kcyBTY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiZm9ybUZpZWxkRmlsbGluZyIpfX1jbGFzcyB3bCBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJncm91cFBhcmVudCIpfX1jbGFzcyBEbCBleHRlbmRzIGJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJpZkVtcHR5IixbImRhdGFWYWx1ZSIsImRhdGFHcm91cCIsImlnbm9yZSIsInJlbW92ZSJdKX19Y2xhc3MgYmwgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiaW5jbHVkZVhEUENvbnRlbnQiKX19Y2xhc3Mga2wgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiaW5jcmVtZW50YWxMb2FkIixbIm5vbmUiLCJmb3J3YXJkT25seSJdKX19Y2xhc3MgRmwgZXh0ZW5kcyBTY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwiaW5jcmVtZW50YWxNZXJnZSIpfX1jbGFzcyBTbCBleHRlbmRzIFNje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJpbnRlcmFjdGl2ZSIpfX1jbGFzcyBSbCBleHRlbmRzIGJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJqb2ciLFsidXNlUHJpbnRlclNldHRpbmciLCJub25lIiwicGFnZVNldCJdKX19Y2xhc3MgR2wgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwibGFiZWxQcmludGVyIiwhMCksdGhpcy5uYW1lPUhJKEEubmFtZSxbInpwbCIsImRwbCIsImlwbCIsInRjcGwiXSksdGhpcy5iYXRjaE91dHB1dD1udWxsLHRoaXMuZmxpcExhYmVsPW51bGwsdGhpcy5mb250SW5mbz1udWxsLHRoaXMueGRjPW51bGx9fWNsYXNzIE5sIGV4dGVuZHMgYmN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImxheW91dCIsWyJwYWdpbmF0ZSIsInBhbmVsIl0pfX1jbGFzcyB4bCBleHRlbmRzIEZje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJsZXZlbCIsMCwoQT0+QT4wKSl9fWNsYXNzIFVsIGV4dGVuZHMgU2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImxpbmVhcml6ZWQiKX19Y2xhc3MgTWwgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwibG9jYWxlIil9fWNsYXNzIExsIGV4dGVuZHMga2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsImxvY2FsZVNldCIpfX1jbGFzcyBKbCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJsb2ciLCEwKSx0aGlzLm1vZGU9bnVsbCx0aGlzLnRocmVzaG9sZD1udWxsLHRoaXMudG89bnVsbCx0aGlzLnVyaT1udWxsfX1jbGFzcyBIbCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJtYXAiLCEwKSx0aGlzLmVxdWF0ZT1uZXcgbWMsdGhpcy5lcXVhdGVSYW5nZT1uZXcgbWN9fWNsYXNzIFlsIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsIm1lZGl1bUluZm8iLCEwKSx0aGlzLm1hcD1udWxsfX1jbGFzcyB2bCBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJtZXNzYWdlIiwhMCksdGhpcy5tc2dJZD1udWxsLHRoaXMuc2V2ZXJpdHk9bnVsbH19Y2xhc3MgS2wgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwibWVzc2FnaW5nIiwhMCksdGhpcy5tZXNzYWdlPW5ldyBtY319Y2xhc3MgcWwgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwibW9kZSIsWyJhcHBlbmQiLCJvdmVyd3JpdGUiXSl9fWNsYXNzIFRsIGV4dGVuZHMgU2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsIm1vZGlmeUFubm90cyIpfX1jbGFzcyBQbCBleHRlbmRzIEZje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJtc2dJZCIsMSwoQT0+QT49MSkpfX1jbGFzcyBXbCBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJuYW1lQXR0ciIpfX1jbGFzcyBPbCBleHRlbmRzIERje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJuZXZlckVtYmVkIil9fWNsYXNzIFpsIGV4dGVuZHMgRmN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsIm51bWJlck9mQ29waWVzIixudWxsLChBPT5BPj0yJiZBPD01KSl9fWNsYXNzIGpsIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsIm9wZW5BY3Rpb24iLCEwKSx0aGlzLmRlc3RpbmF0aW9uPW51bGx9fWNsYXNzIFhsIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsIm91dHB1dCIsITApLHRoaXMudG89bnVsbCx0aGlzLnR5cGU9bnVsbCx0aGlzLnVyaT1udWxsfX1jbGFzcyBWbCBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJvdXRwdXRCaW4iKX19Y2xhc3MgX2wgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwib3V0cHV0WFNMIiwhMCksdGhpcy51cmk9bnVsbH19Y2xhc3MgemwgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwib3ZlcnByaW50IixbIm5vbmUiLCJib3RoIiwiZHJhdyIsImZpZWxkIl0pfX1jbGFzcyAkbCBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJwYWNrZXRzIil9W1NvXSgpeyIqIiE9PXRoaXNbRG9dJiYodGhpc1tEb109dGhpc1tEb10udHJpbSgpLnNwbGl0KC9ccysvKS5maWx0ZXIoKEE9PlsiY29uZmlnIiwiZGF0YXNldHMiLCJ0ZW1wbGF0ZSIsInhmZGYiLCJ4c2x0Il0uaW5jbHVkZXMoQSkpKSl9fWNsYXNzIEFRIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInBhZ2VPZmZzZXQiKSx0aGlzLng9TUkoe2RhdGE6QS54LGRlZmF1bHRWYWx1ZToidXNlWERDU2V0dGluZyIsdmFsaWRhdGU6QT0+ITB9KSx0aGlzLnk9TUkoe2RhdGE6QS55LGRlZmF1bHRWYWx1ZToidXNlWERDU2V0dGluZyIsdmFsaWRhdGU6QT0+ITB9KX19Y2xhc3MgZVEgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwicGFnZVJhbmdlIil9W1NvXSgpe2NvbnN0IEE9dGhpc1tEb10udHJpbSgpLnNwbGl0KC9ccysvKS5tYXAoKEE9PnBhcnNlSW50KEEsMTApKSksZT1bXTtmb3IobGV0IHQ9MCxpPUEubGVuZ3RoO3Q8aTt0Kz0yKWUucHVzaChBLnNsaWNlKHQsdCsyKSk7dGhpc1tEb109ZX19Y2xhc3MgdFEgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwicGFnaW5hdGlvbiIsWyJzaW1wbGV4IiwiZHVwbGV4U2hvcnRFZGdlIiwiZHVwbGV4TG9uZ0VkZ2UiXSl9fWNsYXNzIGlRIGV4dGVuZHMgYmN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInBhZ2luYXRpb25PdmVycmlkZSIsWyJub25lIiwiZm9yY2VEdXBsZXgiLCJmb3JjZUR1cGxleExvbmdFZGdlIiwiZm9yY2VEdXBsZXhTaG9ydEVkZ2UiLCJmb3JjZVNpbXBsZXgiXSl9fWNsYXNzIGFRIGV4dGVuZHMgRmN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInBhcnQiLDEsKEE9PiExKSl9fWNsYXNzIHNRIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInBjbCIsITApLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMuYmF0Y2hPdXRwdXQ9bnVsbCx0aGlzLmZvbnRJbmZvPW51bGwsdGhpcy5qb2c9bnVsbCx0aGlzLm1lZGl1bUluZm89bnVsbCx0aGlzLm91dHB1dEJpbj1udWxsLHRoaXMucGFnZU9mZnNldD1udWxsLHRoaXMuc3RhcGxlPW51bGwsdGhpcy54ZGM9bnVsbH19Y2xhc3MgblEgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwicGRmIiwhMCksdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy5hZG9iZUV4dGVuc2lvbkxldmVsPW51bGwsdGhpcy5iYXRjaE91dHB1dD1udWxsLHRoaXMuY29tcHJlc3Npb249bnVsbCx0aGlzLmNyZWF0b3I9bnVsbCx0aGlzLmVuY3J5cHRpb249bnVsbCx0aGlzLmZvbnRJbmZvPW51bGwsdGhpcy5pbnRlcmFjdGl2ZT1udWxsLHRoaXMubGluZWFyaXplZD1udWxsLHRoaXMub3BlbkFjdGlvbj1udWxsLHRoaXMucGRmYT1udWxsLHRoaXMucHJvZHVjZXI9bnVsbCx0aGlzLnJlbmRlclBvbGljeT1udWxsLHRoaXMuc2NyaXB0TW9kZWw9bnVsbCx0aGlzLnNpbGVudFByaW50PW51bGwsdGhpcy5zdWJtaXRGb3JtYXQ9bnVsbCx0aGlzLnRhZ2dlZD1udWxsLHRoaXMudmVyc2lvbj1udWxsLHRoaXMudmlld2VyUHJlZmVyZW5jZXM9bnVsbCx0aGlzLnhkYz1udWxsfX1jbGFzcyByUSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJwZGZhIiwhMCksdGhpcy5hbWQ9bnVsbCx0aGlzLmNvbmZvcm1hbmNlPW51bGwsdGhpcy5pbmNsdWRlWERQQ29udGVudD1udWxsLHRoaXMucGFydD1udWxsfX1jbGFzcyBnUSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJwZXJtaXNzaW9ucyIsITApLHRoaXMuYWNjZXNzaWJsZUNvbnRlbnQ9bnVsbCx0aGlzLmNoYW5nZT1udWxsLHRoaXMuY29udGVudENvcHk9bnVsbCx0aGlzLmRvY3VtZW50QXNzZW1ibHk9bnVsbCx0aGlzLmZvcm1GaWVsZEZpbGxpbmc9bnVsbCx0aGlzLm1vZGlmeUFubm90cz1udWxsLHRoaXMucGxhaW50ZXh0TWV0YWRhdGE9bnVsbCx0aGlzLnByaW50PW51bGwsdGhpcy5wcmludEhpZ2hRdWFsaXR5PW51bGx9fWNsYXNzIG9RIGV4dGVuZHMgU2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInBpY2tUcmF5QnlQREZTaXplIil9fWNsYXNzIElRIGV4dGVuZHMga2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInBpY3R1cmUiKX19Y2xhc3MgY1EgZXh0ZW5kcyBTY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwicGxhaW50ZXh0TWV0YWRhdGEiKX19Y2xhc3MgaFEgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwicHJlc2VuY2UiLFsicHJlc2VydmUiLCJkaXNzb2x2ZSIsImRpc3NvbHZlU3RydWN0dXJlIiwiaWdub3JlIiwicmVtb3ZlIl0pfX1jbGFzcyBDUSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJwcmVzZW50IiwhMCksdGhpcy5iZWhhdmlvck92ZXJyaWRlPW51bGwsdGhpcy5jYWNoZT1udWxsLHRoaXMuY29tbW9uPW51bGwsdGhpcy5jb3BpZXM9bnVsbCx0aGlzLmRlc3RpbmF0aW9uPW51bGwsdGhpcy5pbmNyZW1lbnRhbE1lcmdlPW51bGwsdGhpcy5sYXlvdXQ9bnVsbCx0aGlzLm91dHB1dD1udWxsLHRoaXMub3ZlcnByaW50PW51bGwsdGhpcy5wYWdpbmF0aW9uPW51bGwsdGhpcy5wYWdpbmF0aW9uT3ZlcnJpZGU9bnVsbCx0aGlzLnNjcmlwdD1udWxsLHRoaXMudmFsaWRhdGU9bnVsbCx0aGlzLnhkcD1udWxsLHRoaXMuZHJpdmVyPW5ldyBtYyx0aGlzLmxhYmVsUHJpbnRlcj1uZXcgbWMsdGhpcy5wY2w9bmV3IG1jLHRoaXMucGRmPW5ldyBtYyx0aGlzLnBzPW5ldyBtYyx0aGlzLnN1Ym1pdFVybD1uZXcgbWMsdGhpcy53ZWJDbGllbnQ9bmV3IG1jLHRoaXMuenBsPW5ldyBtY319Y2xhc3MgQlEgZXh0ZW5kcyBTY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwicHJpbnQiKX19Y2xhc3MgbFEgZXh0ZW5kcyBTY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwicHJpbnRIaWdoUXVhbGl0eSIpfX1jbGFzcyBRUSBleHRlbmRzIGJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJwcmludFNjYWxpbmciLFsiYXBwZGVmYXVsdCIsIm5vU2NhbGluZyJdKX19Y2xhc3MgRVEgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwicHJpbnRlck5hbWUiKX19Y2xhc3MgdVEgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwicHJvZHVjZXIiKX19Y2xhc3MgZFEgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwicHMiLCEwKSx0aGlzLm5hbWU9QS5uYW1lfHwiIix0aGlzLmJhdGNoT3V0cHV0PW51bGwsdGhpcy5mb250SW5mbz1udWxsLHRoaXMuam9nPW51bGwsdGhpcy5tZWRpdW1JbmZvPW51bGwsdGhpcy5vdXRwdXRCaW49bnVsbCx0aGlzLnN0YXBsZT1udWxsLHRoaXMueGRjPW51bGx9fWNsYXNzIGZRIGV4dGVuZHMgRGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInJhbmdlIil9W1NvXSgpe3RoaXNbRG9dPXRoaXNbRG9dLnRyaW0oKS5zcGxpdCgvXHMqLFxzKi8sMikubWFwKChBPT5BLnNwbGl0KCItIikubWFwKChBPT5wYXJzZUludChBLnRyaW0oKSwxMCkpKSkpLmZpbHRlcigoQT0+QS5ldmVyeSgoQT0+IWlzTmFOKEEpKSkpKS5tYXAoKEE9PigxPT09QS5sZW5ndGgmJkEucHVzaChBWzBdKSxBKSkpfX1jbGFzcyBwUSBleHRlbmRzIERje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJyZWNvcmQiKX1bU29dKCl7dGhpc1tEb109dGhpc1tEb10udHJpbSgpO2NvbnN0IEE9cGFyc2VJbnQodGhpc1tEb10sMTApOyFpc05hTihBKSYmQT49MCYmKHRoaXNbRG9dPUEpfX1jbGFzcyBtUSBleHRlbmRzIERje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJyZWxldmFudCIpfVtTb10oKXt0aGlzW0RvXT10aGlzW0RvXS50cmltKCkuc3BsaXQoL1xzKy8pfX1jbGFzcyB5USBleHRlbmRzIERje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJyZW5hbWUiKX1bU29dKCl7dGhpc1tEb109dGhpc1tEb10udHJpbSgpLCh0aGlzW0RvXS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoInhtbCIpfHxuZXcgUmVnRXhwKCJbXFxwe0x9X11bXFxwe0x9XFxkLl9cXHB7TX0tXSoiLCJ1IikudGVzdCh0aGlzW0RvXSkpJiZVKCJYRkEgLSBSZW5hbWU6IGludmFsaWQgWEZBIG5hbWUiKX19Y2xhc3Mgd1EgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwicmVuZGVyUG9saWN5IixbInNlcnZlciIsImNsaWVudCJdKX19Y2xhc3MgRFEgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwicnVuU2NyaXB0cyIsWyJib3RoIiwiY2xpZW50Iiwibm9uZSIsInNlcnZlciJdKX19Y2xhc3MgYlEgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwic2NyaXB0IiwhMCksdGhpcy5jdXJyZW50UGFnZT1udWxsLHRoaXMuZXhjbHVkZT1udWxsLHRoaXMucnVuU2NyaXB0cz1udWxsfX1jbGFzcyBrUSBleHRlbmRzIGJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJzY3JpcHRNb2RlbCIsWyJYRkEiLCJub25lIl0pfX1jbGFzcyBGUSBleHRlbmRzIGJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJzZXZlcml0eSIsWyJpZ25vcmUiLCJlcnJvciIsImluZm9ybWF0aW9uIiwidHJhY2UiLCJ3YXJuaW5nIl0pfX1jbGFzcyBTUSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJzaWxlbnRQcmludCIsITApLHRoaXMuYWRkU2lsZW50UHJpbnQ9bnVsbCx0aGlzLnByaW50ZXJOYW1lPW51bGx9fWNsYXNzIFJRIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInN0YXBsZSIpLHRoaXMubW9kZT1ISShBLm1vZGUsWyJ1c2VQcmludGVyU2V0dGluZyIsIm9uIiwib2ZmIl0pfX1jbGFzcyBHUSBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJzdGFydE5vZGUiKX19Y2xhc3MgTlEgZXh0ZW5kcyBGY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwic3RhcnRQYWdlIiwwLChBPT4hMCkpfX1jbGFzcyB4USBleHRlbmRzIGJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJzdWJtaXRGb3JtYXQiLFsiaHRtbCIsImRlbGVnYXRlIiwiZmRmIiwieG1sIiwicGRmIl0pfX1jbGFzcyBVUSBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJzdWJtaXRVcmwiKX19Y2xhc3MgTVEgZXh0ZW5kcyBGY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwic3Vic2V0QmVsb3ciLDEwMCwoQT0+QT49MCYmQTw9MTAwKSl9fWNsYXNzIExRIGV4dGVuZHMgU2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInN1cHByZXNzQmFubmVyIil9fWNsYXNzIEpRIGV4dGVuZHMgU2N7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInRhZ2dlZCIpfX1jbGFzcyBIUSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJ0ZW1wbGF0ZSIsITApLHRoaXMuYmFzZT1udWxsLHRoaXMucmVsZXZhbnQ9bnVsbCx0aGlzLnN0YXJ0UGFnZT1udWxsLHRoaXMudXJpPW51bGwsdGhpcy54c2w9bnVsbH19Y2xhc3MgWVEgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwidGhyZXNob2xkIixbInRyYWNlIiwiZXJyb3IiLCJpbmZvcm1hdGlvbiIsIndhcm5pbmciXSl9fWNsYXNzIHZRIGV4dGVuZHMgYmN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInRvIixbIm51bGwiLCJtZW1vcnkiLCJzdGRlcnIiLCJzdGRvdXQiLCJzeXN0ZW0iLCJ1cmkiXSl9fWNsYXNzIEtRIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInRlbXBsYXRlQ2FjaGUiKSx0aGlzLm1heEVudHJpZXM9TUkoe2RhdGE6QS5tYXhFbnRyaWVzLGRlZmF1bHRWYWx1ZTo1LHZhbGlkYXRlOkE9PkE+PTB9KX19Y2xhc3MgcVEgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwidHJhY2UiLCEwKSx0aGlzLmFyZWE9bmV3IG1jfX1jbGFzcyBUUSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJ0cmFuc2Zvcm0iLCEwKSx0aGlzLmdyb3VwUGFyZW50PW51bGwsdGhpcy5pZkVtcHR5PW51bGwsdGhpcy5uYW1lQXR0cj1udWxsLHRoaXMucGljdHVyZT1udWxsLHRoaXMucHJlc2VuY2U9bnVsbCx0aGlzLnJlbmFtZT1udWxsLHRoaXMud2hpdGVzcGFjZT1udWxsfX1jbGFzcyBQUSBleHRlbmRzIGJje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJ0eXBlIixbIm5vbmUiLCJhc2NpaTg1IiwiYXNjaWlIZXgiLCJjY2l0dGZheCIsImZsYXRlIiwibHp3IiwicnVuTGVuZ3RoIiwibmF0aXZlIiwieGRwIiwibWVyZ2VkWERQIl0pfX1jbGFzcyBXUSBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJ1cmkiKX19Y2xhc3MgT1EgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwidmFsaWRhdGUiLFsicHJlU3VibWl0IiwicHJlUHJpbnQiLCJwcmVFeGVjdXRlIiwicHJlU2F2ZSJdKX19Y2xhc3MgWlEgZXh0ZW5kcyBEY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwidmFsaWRhdGVBcHByb3ZhbFNpZ25hdHVyZXMiKX1bU29dKCl7dGhpc1tEb109dGhpc1tEb10udHJpbSgpLnNwbGl0KC9ccysvKS5maWx0ZXIoKEE9PlsiZG9jUmVhZHkiLCJwb3N0U2lnbiJdLmluY2x1ZGVzKEEpKSl9fWNsYXNzIGpRIGV4dGVuZHMgYmN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInZhbGlkYXRpb25NZXNzYWdpbmciLFsiYWxsTWVzc2FnZXNJbmRpdmlkdWFsbHkiLCJhbGxNZXNzYWdlc1RvZ2V0aGVyIiwiZmlyc3RNZXNzYWdlT25seSIsIm5vTWVzc2FnZXMiXSl9fWNsYXNzIFhRIGV4dGVuZHMgYmN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInZlcnNpb24iLFsiMS43IiwiMS42IiwiMS41IiwiMS40IiwiMS4zIiwiMS4yIl0pfX1jbGFzcyBWUSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJWZXJzaW9uQ29udHJvbCIpLHRoaXMub3V0cHV0QmVsb3c9SEkoQS5vdXRwdXRCZWxvdyxbIndhcm4iLCJlcnJvciIsInVwZGF0ZSJdKSx0aGlzLnNvdXJjZUFib3ZlPUhJKEEuc291cmNlQWJvdmUsWyJ3YXJuIiwiZXJyb3IiXSksdGhpcy5zb3VyY2VCZWxvdz1ISShBLnNvdXJjZUJlbG93LFsidXBkYXRlIiwibWFpbnRhaW4iXSl9fWNsYXNzIF9RIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInZpZXdlclByZWZlcmVuY2VzIiwhMCksdGhpcy5BREJFX0pTQ29uc29sZT1udWxsLHRoaXMuQURCRV9KU0RlYnVnZ2VyPW51bGwsdGhpcy5hZGRWaWV3ZXJQcmVmZXJlbmNlcz1udWxsLHRoaXMuZHVwbGV4T3B0aW9uPW51bGwsdGhpcy5lbmZvcmNlPW51bGwsdGhpcy5udW1iZXJPZkNvcGllcz1udWxsLHRoaXMucGFnZVJhbmdlPW51bGwsdGhpcy5waWNrVHJheUJ5UERGU2l6ZT1udWxsLHRoaXMucHJpbnRTY2FsaW5nPW51bGx9fWNsYXNzIHpRIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsIndlYkNsaWVudCIsITApLHRoaXMubmFtZT1BLm5hbWU/QS5uYW1lLnRyaW0oKToiIix0aGlzLmZvbnRJbmZvPW51bGwsdGhpcy54ZGM9bnVsbH19Y2xhc3MgJFEgZXh0ZW5kcyBiY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwid2hpdGVzcGFjZSIsWyJwcmVzZXJ2ZSIsImx0cmltIiwibm9ybWFsaXplIiwicnRyaW0iLCJ0cmltIl0pfX1jbGFzcyBBRSBleHRlbmRzIERje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJ3aW5kb3ciKX1bU29dKCl7Y29uc3QgQT10aGlzW0RvXS50cmltKCkuc3BsaXQoL1xzKixccyovLDIpLm1hcCgoQT0+cGFyc2VJbnQoQSwxMCkpKTtBLnNvbWUoKEE9PmlzTmFOKEEpKSk/dGhpc1tEb109WzAsMF06KDE9PT1BLmxlbmd0aCYmQS5wdXNoKEFbMF0pLHRoaXNbRG9dPUEpfX1jbGFzcyBlRSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJ4ZGMiLCEwKSx0aGlzLnVyaT1uZXcgbWMsdGhpcy54c2w9bmV3IG1jfX1jbGFzcyB0RSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGtCLCJ4ZHAiLCEwKSx0aGlzLnBhY2tldHM9bnVsbH19Y2xhc3MgaUUgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihrQiwieHNsIiwhMCksdGhpcy5kZWJ1Zz1udWxsLHRoaXMudXJpPW51bGx9fWNsYXNzIGFFIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoa0IsInpwbCIsITApLHRoaXMubmFtZT1BLm5hbWU/QS5uYW1lLnRyaW0oKToiIix0aGlzLmJhdGNoT3V0cHV0PW51bGwsdGhpcy5mbGlwTGFiZWw9bnVsbCx0aGlzLmZvbnRJbmZvPW51bGwsdGhpcy54ZGM9bnVsbH19Y2xhc3Mgc0V7c3RhdGljW1JJXShBLGUpe2lmKHNFLmhhc093blByb3BlcnR5KEEpKXJldHVybiBzRVtBXShlKX1zdGF0aWMgYWNyb2JhdChBKXtyZXR1cm4gbmV3IEZCKEEpfXN0YXRpYyBhY3JvYmF0NyhBKXtyZXR1cm4gbmV3IFNCKEEpfXN0YXRpYyBBREJFX0pTQ29uc29sZShBKXtyZXR1cm4gbmV3IFJCKEEpfXN0YXRpYyBBREJFX0pTRGVidWdnZXIoQSl7cmV0dXJuIG5ldyBHQihBKX1zdGF0aWMgYWRkU2lsZW50UHJpbnQoQSl7cmV0dXJuIG5ldyBOQihBKX1zdGF0aWMgYWRkVmlld2VyUHJlZmVyZW5jZXMoQSl7cmV0dXJuIG5ldyB4QihBKX1zdGF0aWMgYWRqdXN0RGF0YShBKXtyZXR1cm4gbmV3IFVCKEEpfXN0YXRpYyBhZG9iZUV4dGVuc2lvbkxldmVsKEEpe3JldHVybiBuZXcgTUIoQSl9c3RhdGljIGFnZW50KEEpe3JldHVybiBuZXcgTEIoQSl9c3RhdGljIGFsd2F5c0VtYmVkKEEpe3JldHVybiBuZXcgSkIoQSl9c3RhdGljIGFtZChBKXtyZXR1cm4gbmV3IEhCKEEpfXN0YXRpYyBhcmVhKEEpe3JldHVybiBuZXcgWUIoQSl9c3RhdGljIGF0dHJpYnV0ZXMoQSl7cmV0dXJuIG5ldyB2QihBKX1zdGF0aWMgYXV0b1NhdmUoQSl7cmV0dXJuIG5ldyBLQihBKX1zdGF0aWMgYmFzZShBKXtyZXR1cm4gbmV3IHFCKEEpfXN0YXRpYyBiYXRjaE91dHB1dChBKXtyZXR1cm4gbmV3IFRCKEEpfXN0YXRpYyBiZWhhdmlvck92ZXJyaWRlKEEpe3JldHVybiBuZXcgUEIoQSl9c3RhdGljIGNhY2hlKEEpe3JldHVybiBuZXcgV0IoQSl9c3RhdGljIGNoYW5nZShBKXtyZXR1cm4gbmV3IE9CKEEpfXN0YXRpYyBjb21tb24oQSl7cmV0dXJuIG5ldyBaQihBKX1zdGF0aWMgY29tcHJlc3MoQSl7cmV0dXJuIG5ldyBqQihBKX1zdGF0aWMgY29tcHJlc3NMb2dpY2FsU3RydWN0dXJlKEEpe3JldHVybiBuZXcgWEIoQSl9c3RhdGljIGNvbXByZXNzT2JqZWN0U3RyZWFtKEEpe3JldHVybiBuZXcgVkIoQSl9c3RhdGljIGNvbXByZXNzaW9uKEEpe3JldHVybiBuZXcgX0IoQSl9c3RhdGljIGNvbmZpZyhBKXtyZXR1cm4gbmV3IHpCKEEpfXN0YXRpYyBjb25mb3JtYW5jZShBKXtyZXR1cm4gbmV3ICRCKEEpfXN0YXRpYyBjb250ZW50Q29weShBKXtyZXR1cm4gbmV3IEFsKEEpfXN0YXRpYyBjb3BpZXMoQSl7cmV0dXJuIG5ldyBlbChBKX1zdGF0aWMgY3JlYXRvcihBKXtyZXR1cm4gbmV3IHRsKEEpfXN0YXRpYyBjdXJyZW50UGFnZShBKXtyZXR1cm4gbmV3IGlsKEEpfXN0YXRpYyBkYXRhKEEpe3JldHVybiBuZXcgYWwoQSl9c3RhdGljIGRlYnVnKEEpe3JldHVybiBuZXcgc2woQSl9c3RhdGljIGRlZmF1bHRUeXBlZmFjZShBKXtyZXR1cm4gbmV3IG5sKEEpfXN0YXRpYyBkZXN0aW5hdGlvbihBKXtyZXR1cm4gbmV3IHJsKEEpfXN0YXRpYyBkb2N1bWVudEFzc2VtYmx5KEEpe3JldHVybiBuZXcgZ2woQSl9c3RhdGljIGRyaXZlcihBKXtyZXR1cm4gbmV3IG9sKEEpfXN0YXRpYyBkdXBsZXhPcHRpb24oQSl7cmV0dXJuIG5ldyBJbChBKX1zdGF0aWMgZHluYW1pY1JlbmRlcihBKXtyZXR1cm4gbmV3IGNsKEEpfXN0YXRpYyBlbWJlZChBKXtyZXR1cm4gbmV3IGhsKEEpfXN0YXRpYyBlbmNyeXB0KEEpe3JldHVybiBuZXcgQ2woQSl9c3RhdGljIGVuY3J5cHRpb24oQSl7cmV0dXJuIG5ldyBCbChBKX1zdGF0aWMgZW5jcnlwdGlvbkxldmVsKEEpe3JldHVybiBuZXcgbGwoQSl9c3RhdGljIGVuZm9yY2UoQSl7cmV0dXJuIG5ldyBRbChBKX1zdGF0aWMgZXF1YXRlKEEpe3JldHVybiBuZXcgRWwoQSl9c3RhdGljIGVxdWF0ZVJhbmdlKEEpe3JldHVybiBuZXcgdWwoQSl9c3RhdGljIGV4Y2x1ZGUoQSl7cmV0dXJuIG5ldyBkbChBKX1zdGF0aWMgZXhjbHVkZU5TKEEpe3JldHVybiBuZXcgZmwoQSl9c3RhdGljIGZsaXBMYWJlbChBKXtyZXR1cm4gbmV3IHBsKEEpfXN0YXRpYyBmb250SW5mbyhBKXtyZXR1cm4gbmV3IG1sKEEpfXN0YXRpYyBmb3JtRmllbGRGaWxsaW5nKEEpe3JldHVybiBuZXcgeWwoQSl9c3RhdGljIGdyb3VwUGFyZW50KEEpe3JldHVybiBuZXcgd2woQSl9c3RhdGljIGlmRW1wdHkoQSl7cmV0dXJuIG5ldyBEbChBKX1zdGF0aWMgaW5jbHVkZVhEUENvbnRlbnQoQSl7cmV0dXJuIG5ldyBibChBKX1zdGF0aWMgaW5jcmVtZW50YWxMb2FkKEEpe3JldHVybiBuZXcga2woQSl9c3RhdGljIGluY3JlbWVudGFsTWVyZ2UoQSl7cmV0dXJuIG5ldyBGbChBKX1zdGF0aWMgaW50ZXJhY3RpdmUoQSl7cmV0dXJuIG5ldyBTbChBKX1zdGF0aWMgam9nKEEpe3JldHVybiBuZXcgUmwoQSl9c3RhdGljIGxhYmVsUHJpbnRlcihBKXtyZXR1cm4gbmV3IEdsKEEpfXN0YXRpYyBsYXlvdXQoQSl7cmV0dXJuIG5ldyBObChBKX1zdGF0aWMgbGV2ZWwoQSl7cmV0dXJuIG5ldyB4bChBKX1zdGF0aWMgbGluZWFyaXplZChBKXtyZXR1cm4gbmV3IFVsKEEpfXN0YXRpYyBsb2NhbGUoQSl7cmV0dXJuIG5ldyBNbChBKX1zdGF0aWMgbG9jYWxlU2V0KEEpe3JldHVybiBuZXcgTGwoQSl9c3RhdGljIGxvZyhBKXtyZXR1cm4gbmV3IEpsKEEpfXN0YXRpYyBtYXAoQSl7cmV0dXJuIG5ldyBIbChBKX1zdGF0aWMgbWVkaXVtSW5mbyhBKXtyZXR1cm4gbmV3IFlsKEEpfXN0YXRpYyBtZXNzYWdlKEEpe3JldHVybiBuZXcgdmwoQSl9c3RhdGljIG1lc3NhZ2luZyhBKXtyZXR1cm4gbmV3IEtsKEEpfXN0YXRpYyBtb2RlKEEpe3JldHVybiBuZXcgcWwoQSl9c3RhdGljIG1vZGlmeUFubm90cyhBKXtyZXR1cm4gbmV3IFRsKEEpfXN0YXRpYyBtc2dJZChBKXtyZXR1cm4gbmV3IFBsKEEpfXN0YXRpYyBuYW1lQXR0cihBKXtyZXR1cm4gbmV3IFdsKEEpfXN0YXRpYyBuZXZlckVtYmVkKEEpe3JldHVybiBuZXcgT2woQSl9c3RhdGljIG51bWJlck9mQ29waWVzKEEpe3JldHVybiBuZXcgWmwoQSl9c3RhdGljIG9wZW5BY3Rpb24oQSl7cmV0dXJuIG5ldyBqbChBKX1zdGF0aWMgb3V0cHV0KEEpe3JldHVybiBuZXcgWGwoQSl9c3RhdGljIG91dHB1dEJpbihBKXtyZXR1cm4gbmV3IFZsKEEpfXN0YXRpYyBvdXRwdXRYU0woQSl7cmV0dXJuIG5ldyBfbChBKX1zdGF0aWMgb3ZlcnByaW50KEEpe3JldHVybiBuZXcgemwoQSl9c3RhdGljIHBhY2tldHMoQSl7cmV0dXJuIG5ldyAkbChBKX1zdGF0aWMgcGFnZU9mZnNldChBKXtyZXR1cm4gbmV3IEFRKEEpfXN0YXRpYyBwYWdlUmFuZ2UoQSl7cmV0dXJuIG5ldyBlUShBKX1zdGF0aWMgcGFnaW5hdGlvbihBKXtyZXR1cm4gbmV3IHRRKEEpfXN0YXRpYyBwYWdpbmF0aW9uT3ZlcnJpZGUoQSl7cmV0dXJuIG5ldyBpUShBKX1zdGF0aWMgcGFydChBKXtyZXR1cm4gbmV3IGFRKEEpfXN0YXRpYyBwY2woQSl7cmV0dXJuIG5ldyBzUShBKX1zdGF0aWMgcGRmKEEpe3JldHVybiBuZXcgblEoQSl9c3RhdGljIHBkZmEoQSl7cmV0dXJuIG5ldyByUShBKX1zdGF0aWMgcGVybWlzc2lvbnMoQSl7cmV0dXJuIG5ldyBnUShBKX1zdGF0aWMgcGlja1RyYXlCeVBERlNpemUoQSl7cmV0dXJuIG5ldyBvUShBKX1zdGF0aWMgcGljdHVyZShBKXtyZXR1cm4gbmV3IElRKEEpfXN0YXRpYyBwbGFpbnRleHRNZXRhZGF0YShBKXtyZXR1cm4gbmV3IGNRKEEpfXN0YXRpYyBwcmVzZW5jZShBKXtyZXR1cm4gbmV3IGhRKEEpfXN0YXRpYyBwcmVzZW50KEEpe3JldHVybiBuZXcgQ1EoQSl9c3RhdGljIHByaW50KEEpe3JldHVybiBuZXcgQlEoQSl9c3RhdGljIHByaW50SGlnaFF1YWxpdHkoQSl7cmV0dXJuIG5ldyBsUShBKX1zdGF0aWMgcHJpbnRTY2FsaW5nKEEpe3JldHVybiBuZXcgUVEoQSl9c3RhdGljIHByaW50ZXJOYW1lKEEpe3JldHVybiBuZXcgRVEoQSl9c3RhdGljIHByb2R1Y2VyKEEpe3JldHVybiBuZXcgdVEoQSl9c3RhdGljIHBzKEEpe3JldHVybiBuZXcgZFEoQSl9c3RhdGljIHJhbmdlKEEpe3JldHVybiBuZXcgZlEoQSl9c3RhdGljIHJlY29yZChBKXtyZXR1cm4gbmV3IHBRKEEpfXN0YXRpYyByZWxldmFudChBKXtyZXR1cm4gbmV3IG1RKEEpfXN0YXRpYyByZW5hbWUoQSl7cmV0dXJuIG5ldyB5UShBKX1zdGF0aWMgcmVuZGVyUG9saWN5KEEpe3JldHVybiBuZXcgd1EoQSl9c3RhdGljIHJ1blNjcmlwdHMoQSl7cmV0dXJuIG5ldyBEUShBKX1zdGF0aWMgc2NyaXB0KEEpe3JldHVybiBuZXcgYlEoQSl9c3RhdGljIHNjcmlwdE1vZGVsKEEpe3JldHVybiBuZXcga1EoQSl9c3RhdGljIHNldmVyaXR5KEEpe3JldHVybiBuZXcgRlEoQSl9c3RhdGljIHNpbGVudFByaW50KEEpe3JldHVybiBuZXcgU1EoQSl9c3RhdGljIHN0YXBsZShBKXtyZXR1cm4gbmV3IFJRKEEpfXN0YXRpYyBzdGFydE5vZGUoQSl7cmV0dXJuIG5ldyBHUShBKX1zdGF0aWMgc3RhcnRQYWdlKEEpe3JldHVybiBuZXcgTlEoQSl9c3RhdGljIHN1Ym1pdEZvcm1hdChBKXtyZXR1cm4gbmV3IHhRKEEpfXN0YXRpYyBzdWJtaXRVcmwoQSl7cmV0dXJuIG5ldyBVUShBKX1zdGF0aWMgc3Vic2V0QmVsb3coQSl7cmV0dXJuIG5ldyBNUShBKX1zdGF0aWMgc3VwcHJlc3NCYW5uZXIoQSl7cmV0dXJuIG5ldyBMUShBKX1zdGF0aWMgdGFnZ2VkKEEpe3JldHVybiBuZXcgSlEoQSl9c3RhdGljIHRlbXBsYXRlKEEpe3JldHVybiBuZXcgSFEoQSl9c3RhdGljIHRlbXBsYXRlQ2FjaGUoQSl7cmV0dXJuIG5ldyBLUShBKX1zdGF0aWMgdGhyZXNob2xkKEEpe3JldHVybiBuZXcgWVEoQSl9c3RhdGljIHRvKEEpe3JldHVybiBuZXcgdlEoQSl9c3RhdGljIHRyYWNlKEEpe3JldHVybiBuZXcgcVEoQSl9c3RhdGljIHRyYW5zZm9ybShBKXtyZXR1cm4gbmV3IFRRKEEpfXN0YXRpYyB0eXBlKEEpe3JldHVybiBuZXcgUFEoQSl9c3RhdGljIHVyaShBKXtyZXR1cm4gbmV3IFdRKEEpfXN0YXRpYyB2YWxpZGF0ZShBKXtyZXR1cm4gbmV3IE9RKEEpfXN0YXRpYyB2YWxpZGF0ZUFwcHJvdmFsU2lnbmF0dXJlcyhBKXtyZXR1cm4gbmV3IFpRKEEpfXN0YXRpYyB2YWxpZGF0aW9uTWVzc2FnaW5nKEEpe3JldHVybiBuZXcgalEoQSl9c3RhdGljIHZlcnNpb24oQSl7cmV0dXJuIG5ldyBYUShBKX1zdGF0aWMgdmVyc2lvbkNvbnRyb2woQSl7cmV0dXJuIG5ldyBWUShBKX1zdGF0aWMgdmlld2VyUHJlZmVyZW5jZXMoQSl7cmV0dXJuIG5ldyBfUShBKX1zdGF0aWMgd2ViQ2xpZW50KEEpe3JldHVybiBuZXcgelEoQSl9c3RhdGljIHdoaXRlc3BhY2UoQSl7cmV0dXJuIG5ldyAkUShBKX1zdGF0aWMgd2luZG93KEEpe3JldHVybiBuZXcgQUUoQSl9c3RhdGljIHhkYyhBKXtyZXR1cm4gbmV3IGVFKEEpfXN0YXRpYyB4ZHAoQSl7cmV0dXJuIG5ldyB0RShBKX1zdGF0aWMgeHNsKEEpe3JldHVybiBuZXcgaUUoQSl9c3RhdGljIHpwbChBKXtyZXR1cm4gbmV3IGFFKEEpfX1jb25zdCBuRT1HSS5jb25uZWN0aW9uU2V0LmlkO2NsYXNzIHJFIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIobkUsImNvbm5lY3Rpb25TZXQiLCEwKSx0aGlzLndzZGxDb25uZWN0aW9uPW5ldyBtYyx0aGlzLnhtbENvbm5lY3Rpb249bmV3IG1jLHRoaXMueHNkQ29ubmVjdGlvbj1uZXcgbWN9fWNsYXNzIGdFIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIobkUsImVmZmVjdGl2ZUlucHV0UG9saWN5IiksdGhpcy5pZD1BLmlkfHwiIix0aGlzLm5hbWU9QS5uYW1lfHwiIix0aGlzLnVzZT1BLnVzZXx8IiIsdGhpcy51c2VocmVmPUEudXNlaHJlZnx8IiJ9fWNsYXNzIG9FIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIobkUsImVmZmVjdGl2ZU91dHB1dFBvbGljeSIpLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyBJRSBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKG5FLCJvcGVyYXRpb24iKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMuaW5wdXQ9QS5pbnB1dHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy5vdXRwdXQ9QS5vdXRwdXR8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn19Y2xhc3MgY0UgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihuRSwicm9vdEVsZW1lbnQiKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn19Y2xhc3MgaEUgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihuRSwic29hcEFjdGlvbiIpLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyBDRSBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKG5FLCJzb2FwQWRkcmVzcyIpLHRoaXMuaWQ9QS5pZHx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy51c2U9QS51c2V8fCIiLHRoaXMudXNlaHJlZj1BLnVzZWhyZWZ8fCIifX1jbGFzcyBCRSBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKG5FLCJ1cmkiKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn19Y2xhc3MgbEUgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihuRSwid3NkbEFkZHJlc3MiKSx0aGlzLmlkPUEuaWR8fCIiLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMudXNlPUEudXNlfHwiIix0aGlzLnVzZWhyZWY9QS51c2VocmVmfHwiIn19Y2xhc3MgUUUgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcihuRSwid3NkbENvbm5lY3Rpb24iLCEwKSx0aGlzLmRhdGFEZXNjcmlwdGlvbj1BLmRhdGFEZXNjcmlwdGlvbnx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy5lZmZlY3RpdmVJbnB1dFBvbGljeT1udWxsLHRoaXMuZWZmZWN0aXZlT3V0cHV0UG9saWN5PW51bGwsdGhpcy5vcGVyYXRpb249bnVsbCx0aGlzLnNvYXBBY3Rpb249bnVsbCx0aGlzLnNvYXBBZGRyZXNzPW51bGwsdGhpcy53c2RsQWRkcmVzcz1udWxsfX1jbGFzcyBFRSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKG5FLCJ4bWxDb25uZWN0aW9uIiwhMCksdGhpcy5kYXRhRGVzY3JpcHRpb249QS5kYXRhRGVzY3JpcHRpb258fCIiLHRoaXMubmFtZT1BLm5hbWV8fCIiLHRoaXMudXJpPW51bGx9fWNsYXNzIHVFIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIobkUsInhzZENvbm5lY3Rpb24iLCEwKSx0aGlzLmRhdGFEZXNjcmlwdGlvbj1BLmRhdGFEZXNjcmlwdGlvbnx8IiIsdGhpcy5uYW1lPUEubmFtZXx8IiIsdGhpcy5yb290RWxlbWVudD1udWxsLHRoaXMudXJpPW51bGx9fWNsYXNzIGRFe3N0YXRpY1tSSV0oQSxlKXtpZihkRS5oYXNPd25Qcm9wZXJ0eShBKSlyZXR1cm4gZEVbQV0oZSl9c3RhdGljIGNvbm5lY3Rpb25TZXQoQSl7cmV0dXJuIG5ldyByRShBKX1zdGF0aWMgZWZmZWN0aXZlSW5wdXRQb2xpY3koQSl7cmV0dXJuIG5ldyBnRShBKX1zdGF0aWMgZWZmZWN0aXZlT3V0cHV0UG9saWN5KEEpe3JldHVybiBuZXcgb0UoQSl9c3RhdGljIG9wZXJhdGlvbihBKXtyZXR1cm4gbmV3IElFKEEpfXN0YXRpYyByb290RWxlbWVudChBKXtyZXR1cm4gbmV3IGNFKEEpfXN0YXRpYyBzb2FwQWN0aW9uKEEpe3JldHVybiBuZXcgaEUoQSl9c3RhdGljIHNvYXBBZGRyZXNzKEEpe3JldHVybiBuZXcgQ0UoQSl9c3RhdGljIHVyaShBKXtyZXR1cm4gbmV3IEJFKEEpfXN0YXRpYyB3c2RsQWRkcmVzcyhBKXtyZXR1cm4gbmV3IGxFKEEpfXN0YXRpYyB3c2RsQ29ubmVjdGlvbihBKXtyZXR1cm4gbmV3IFFFKEEpfXN0YXRpYyB4bWxDb25uZWN0aW9uKEEpe3JldHVybiBuZXcgRUUoQSl9c3RhdGljIHhzZENvbm5lY3Rpb24oQSl7cmV0dXJuIG5ldyB1RShBKX19Y29uc3QgZkU9R0kuZGF0YXNldHMuaWQ7Y2xhc3MgcEUgZXh0ZW5kcyB3Y3tjb25zdHJ1Y3RvcihBKXtzdXBlcihmRSwiZGF0YSIsQSl9W2VJXSgpe3JldHVybiEwfX1jbGFzcyBtRSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKGZFLCJkYXRhc2V0cyIsITApLHRoaXMuZGF0YT1udWxsLHRoaXMuU2lnbmF0dXJlPW51bGx9W0lJXShBKXtjb25zdCBlPUFbZ0ldOygiZGF0YSI9PT1lJiZBW3JJXT09PWZFfHwiU2lnbmF0dXJlIj09PWUmJkFbckldPT09R0kuc2lnbmF0dXJlLmlkKSYmKHRoaXNbZV09QSksdGhpc1tFb10oQSl9fWNsYXNzIHlFe3N0YXRpY1tSSV0oQSxlKXtpZih5RS5oYXNPd25Qcm9wZXJ0eShBKSlyZXR1cm4geUVbQV0oZSl9c3RhdGljIGRhdGFzZXRzKEEpe3JldHVybiBuZXcgbUUoQSl9c3RhdGljIGRhdGEoQSl7cmV0dXJuIG5ldyBwRShBKX19Y29uc3Qgd0U9R0kubG9jYWxlU2V0LmlkO2NsYXNzIERFIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIod0UsImNhbGVuZGFyU3ltYm9scyIsITApLHRoaXMubmFtZT0iZ3JlZ29yaWFuIix0aGlzLmRheU5hbWVzPW5ldyBtYygyKSx0aGlzLmVyYU5hbWVzPW51bGwsdGhpcy5tZXJpZGllbU5hbWVzPW51bGwsdGhpcy5tb250aE5hbWVzPW5ldyBtYygyKX19Y2xhc3MgYkUgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcih3RSwiY3VycmVuY3lTeW1ib2wiKSx0aGlzLm5hbWU9SEkoQS5uYW1lLFsic3ltYm9sIiwiaXNvbmFtZSIsImRlY2ltYWwiXSl9fWNsYXNzIGtFIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIod0UsImN1cnJlbmN5U3ltYm9scyIsITApLHRoaXMuY3VycmVuY3lTeW1ib2w9bmV3IG1jKDMpfX1jbGFzcyBGRSBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKHdFLCJkYXRlUGF0dGVybiIpLHRoaXMubmFtZT1ISShBLm5hbWUsWyJmdWxsIiwibG9uZyIsIm1lZCIsInNob3J0Il0pfX1jbGFzcyBTRSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKHdFLCJkYXRlUGF0dGVybnMiLCEwKSx0aGlzLmRhdGVQYXR0ZXJuPW5ldyBtYyg0KX19Y2xhc3MgUkUgZXh0ZW5kcyBEY3tjb25zdHJ1Y3RvcihBKXtzdXBlcih3RSwiZGF0ZVRpbWVTeW1ib2xzIil9fWNsYXNzIEdFIGV4dGVuZHMga2N7Y29uc3RydWN0b3IoQSl7c3VwZXIod0UsImRheSIpfX1jbGFzcyBORSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKHdFLCJkYXlOYW1lcyIsITApLHRoaXMuYWJicj1NSSh7ZGF0YTpBLmFiYnIsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6QT0+MT09PUF9KSx0aGlzLmRheT1uZXcgbWMoNyl9fWNsYXNzIHhFIGV4dGVuZHMga2N7Y29uc3RydWN0b3IoQSl7c3VwZXIod0UsImVyYSIpfX1jbGFzcyBVRSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKHdFLCJlcmFOYW1lcyIsITApLHRoaXMuZXJhPW5ldyBtYygyKX19Y2xhc3MgTUUgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcih3RSwibG9jYWxlIiwhMCksdGhpcy5kZXNjPUEuZGVzY3x8IiIsdGhpcy5uYW1lPSJpc29uYW1lIix0aGlzLmNhbGVuZGFyU3ltYm9scz1udWxsLHRoaXMuY3VycmVuY3lTeW1ib2xzPW51bGwsdGhpcy5kYXRlUGF0dGVybnM9bnVsbCx0aGlzLmRhdGVUaW1lU3ltYm9scz1udWxsLHRoaXMubnVtYmVyUGF0dGVybnM9bnVsbCx0aGlzLm51bWJlclN5bWJvbHM9bnVsbCx0aGlzLnRpbWVQYXR0ZXJucz1udWxsLHRoaXMudHlwZUZhY2VzPW51bGx9fWNsYXNzIExFIGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIod0UsImxvY2FsZVNldCIsITApLHRoaXMubG9jYWxlPW5ldyBtY319Y2xhc3MgSkUgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcih3RSwibWVyaWRpZW0iKX19Y2xhc3MgSEUgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcih3RSwibWVyaWRpZW1OYW1lcyIsITApLHRoaXMubWVyaWRpZW09bmV3IG1jKDIpfX1jbGFzcyBZRSBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKHdFLCJtb250aCIpfX1jbGFzcyB2RSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKHdFLCJtb250aE5hbWVzIiwhMCksdGhpcy5hYmJyPU1JKHtkYXRhOkEuYWJicixkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTpBPT4xPT09QX0pLHRoaXMubW9udGg9bmV3IG1jKDEyKX19Y2xhc3MgS0UgZXh0ZW5kcyBrY3tjb25zdHJ1Y3RvcihBKXtzdXBlcih3RSwibnVtYmVyUGF0dGVybiIpLHRoaXMubmFtZT1ISShBLm5hbWUsWyJmdWxsIiwibG9uZyIsIm1lZCIsInNob3J0Il0pfX1jbGFzcyBxRSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKHdFLCJudW1iZXJQYXR0ZXJucyIsITApLHRoaXMubnVtYmVyUGF0dGVybj1uZXcgbWMoNCl9fWNsYXNzIFRFIGV4dGVuZHMga2N7Y29uc3RydWN0b3IoQSl7c3VwZXIod0UsIm51bWJlclN5bWJvbCIpLHRoaXMubmFtZT1ISShBLm5hbWUsWyJkZWNpbWFsIiwiZ3JvdXBpbmciLCJwZXJjZW50IiwibWludXMiLCJ6ZXJvIl0pfX1jbGFzcyBQRSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKHdFLCJudW1iZXJTeW1ib2xzIiwhMCksdGhpcy5udW1iZXJTeW1ib2w9bmV3IG1jKDUpfX1jbGFzcyBXRSBleHRlbmRzIGtje2NvbnN0cnVjdG9yKEEpe3N1cGVyKHdFLCJ0aW1lUGF0dGVybiIpLHRoaXMubmFtZT1ISShBLm5hbWUsWyJmdWxsIiwibG9uZyIsIm1lZCIsInNob3J0Il0pfX1jbGFzcyBPRSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKHdFLCJ0aW1lUGF0dGVybnMiLCEwKSx0aGlzLnRpbWVQYXR0ZXJuPW5ldyBtYyg0KX19Y2xhc3MgWkUgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcih3RSwidHlwZUZhY2UiLCEwKSx0aGlzLm5hbWU9IiJ8QS5uYW1lfX1jbGFzcyBqRSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKHdFLCJ0eXBlRmFjZXMiLCEwKSx0aGlzLnR5cGVGYWNlPW5ldyBtY319Y2xhc3MgWEV7c3RhdGljW1JJXShBLGUpe2lmKFhFLmhhc093blByb3BlcnR5KEEpKXJldHVybiBYRVtBXShlKX1zdGF0aWMgY2FsZW5kYXJTeW1ib2xzKEEpe3JldHVybiBuZXcgREUoQSl9c3RhdGljIGN1cnJlbmN5U3ltYm9sKEEpe3JldHVybiBuZXcgYkUoQSl9c3RhdGljIGN1cnJlbmN5U3ltYm9scyhBKXtyZXR1cm4gbmV3IGtFKEEpfXN0YXRpYyBkYXRlUGF0dGVybihBKXtyZXR1cm4gbmV3IEZFKEEpfXN0YXRpYyBkYXRlUGF0dGVybnMoQSl7cmV0dXJuIG5ldyBTRShBKX1zdGF0aWMgZGF0ZVRpbWVTeW1ib2xzKEEpe3JldHVybiBuZXcgUkUoQSl9c3RhdGljIGRheShBKXtyZXR1cm4gbmV3IEdFKEEpfXN0YXRpYyBkYXlOYW1lcyhBKXtyZXR1cm4gbmV3IE5FKEEpfXN0YXRpYyBlcmEoQSl7cmV0dXJuIG5ldyB4RShBKX1zdGF0aWMgZXJhTmFtZXMoQSl7cmV0dXJuIG5ldyBVRShBKX1zdGF0aWMgbG9jYWxlKEEpe3JldHVybiBuZXcgTUUoQSl9c3RhdGljIGxvY2FsZVNldChBKXtyZXR1cm4gbmV3IExFKEEpfXN0YXRpYyBtZXJpZGllbShBKXtyZXR1cm4gbmV3IEpFKEEpfXN0YXRpYyBtZXJpZGllbU5hbWVzKEEpe3JldHVybiBuZXcgSEUoQSl9c3RhdGljIG1vbnRoKEEpe3JldHVybiBuZXcgWUUoQSl9c3RhdGljIG1vbnRoTmFtZXMoQSl7cmV0dXJuIG5ldyB2RShBKX1zdGF0aWMgbnVtYmVyUGF0dGVybihBKXtyZXR1cm4gbmV3IEtFKEEpfXN0YXRpYyBudW1iZXJQYXR0ZXJucyhBKXtyZXR1cm4gbmV3IHFFKEEpfXN0YXRpYyBudW1iZXJTeW1ib2woQSl7cmV0dXJuIG5ldyBURShBKX1zdGF0aWMgbnVtYmVyU3ltYm9scyhBKXtyZXR1cm4gbmV3IFBFKEEpfXN0YXRpYyB0aW1lUGF0dGVybihBKXtyZXR1cm4gbmV3IFdFKEEpfXN0YXRpYyB0aW1lUGF0dGVybnMoQSl7cmV0dXJuIG5ldyBPRShBKX1zdGF0aWMgdHlwZUZhY2UoQSl7cmV0dXJuIG5ldyBaRShBKX1zdGF0aWMgdHlwZUZhY2VzKEEpe3JldHVybiBuZXcgakUoQSl9fWNvbnN0IFZFPUdJLnNpZ25hdHVyZS5pZDtjbGFzcyBfRSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKFZFLCJzaWduYXR1cmUiLCEwKX19Y2xhc3MgekV7c3RhdGljW1JJXShBLGUpe2lmKHpFLmhhc093blByb3BlcnR5KEEpKXJldHVybiB6RVtBXShlKX1zdGF0aWMgc2lnbmF0dXJlKEEpe3JldHVybiBuZXcgX0UoQSl9fWNvbnN0ICRFPUdJLnN0eWxlc2hlZXQuaWQ7Y2xhc3MgQXUgZXh0ZW5kcyBwY3tjb25zdHJ1Y3RvcihBKXtzdXBlcigkRSwic3R5bGVzaGVldCIsITApfX1jbGFzcyBldXtzdGF0aWNbUkldKEEsZSl7aWYoZXUuaGFzT3duUHJvcGVydHkoQSkpcmV0dXJuIGV1W0FdKGUpfXN0YXRpYyBzdHlsZXNoZWV0KEEpe3JldHVybiBuZXcgQXUoQSl9fWNvbnN0IHR1PUdJLnhkcC5pZDtjbGFzcyBpdSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKEEpe3N1cGVyKHR1LCJ4ZHAiLCEwKSx0aGlzLnV1aWQ9QS51dWlkfHwiIix0aGlzLnRpbWVTdGFtcD1BLnRpbWVTdGFtcHx8IiIsdGhpcy5jb25maWc9bnVsbCx0aGlzLmNvbm5lY3Rpb25TZXQ9bnVsbCx0aGlzLmRhdGFzZXRzPW51bGwsdGhpcy5sb2NhbGVTZXQ9bnVsbCx0aGlzLnN0eWxlc2hlZXQ9bmV3IG1jLHRoaXMudGVtcGxhdGU9bnVsbH1bY0ldKEEpe2NvbnN0IGU9R0lbQVtnSV1dO3JldHVybiBlJiZBW3JJXT09PWUuaWR9fWNsYXNzIGF1e3N0YXRpY1tSSV0oQSxlKXtpZihhdS5oYXNPd25Qcm9wZXJ0eShBKSlyZXR1cm4gYXVbQV0oZSl9c3RhdGljIHhkcChBKXtyZXR1cm4gbmV3IGl1KEEpfX1jb25zdCBzdT1HSS54aHRtbC5pZCxudT1TeW1ib2woKSxydT1uZXcgU2V0KFsiY29sb3IiLCJmb250IiwiZm9udC1mYW1pbHkiLCJmb250LXNpemUiLCJmb250LXN0cmV0Y2giLCJmb250LXN0eWxlIiwiZm9udC13ZWlnaHQiLCJtYXJnaW4iLCJtYXJnaW4tYm90dG9tIiwibWFyZ2luLWxlZnQiLCJtYXJnaW4tcmlnaHQiLCJtYXJnaW4tdG9wIiwibGV0dGVyLXNwYWNpbmciLCJsaW5lLWhlaWdodCIsIm9ycGhhbnMiLCJwYWdlLWJyZWFrLWFmdGVyIiwicGFnZS1icmVhay1iZWZvcmUiLCJwYWdlLWJyZWFrLWluc2lkZSIsInRhYi1pbnRlcnZhbCIsInRhYi1zdG9wIiwidGV4dC1hbGlnbiIsInRleHQtZGVjb3JhdGlvbiIsInRleHQtaW5kZW50IiwidmVydGljYWwtYWxpZ24iLCJ3aWRvd3MiLCJrZXJuaW5nLW1vZGUiLCJ4ZmEtZm9udC1ob3Jpem9udGFsLXNjYWxlIiwieGZhLWZvbnQtdmVydGljYWwtc2NhbGUiLCJ4ZmEtc3BhY2VydW4iLCJ4ZmEtdGFiLXN0b3BzIl0pLGd1PW5ldyBNYXAoW1sicGFnZS1icmVhay1hZnRlciIsImJyZWFrQWZ0ZXIiXSxbInBhZ2UtYnJlYWstYmVmb3JlIiwiYnJlYWtCZWZvcmUiXSxbInBhZ2UtYnJlYWstaW5zaWRlIiwiYnJlYWtJbnNpZGUiXSxbImtlcm5pbmctbW9kZSIsQT0+Im5vbmUiPT09QT8ibm9uZSI6Im5vcm1hbCJdLFsieGZhLWZvbnQtaG9yaXpvbnRhbC1zY2FsZSIsQT0+YHNjYWxlWCgke01hdGgubWF4KDAsTWF0aC5taW4ocGFyc2VJbnQoQSkvMTAwKSkudG9GaXhlZCgyKX0pYF0sWyJ4ZmEtZm9udC12ZXJ0aWNhbC1zY2FsZSIsQT0+YHNjYWxlWSgke01hdGgubWF4KDAsTWF0aC5taW4ocGFyc2VJbnQoQSkvMTAwKSkudG9GaXhlZCgyKX0pYF0sWyJ4ZmEtc3BhY2VydW4iLCIiXSxbInhmYS10YWItc3RvcHMiLCIiXSxbImZvbnQtc2l6ZSIsKEEsZSk9PkdjKC45OSooQT1lLmZvbnRTaXplPVlJKEEpKSldLFsibGV0dGVyLXNwYWNpbmciLEE9PkdjKFlJKEEpKV0sWyJsaW5lLWhlaWdodCIsQT0+R2MoWUkoQSkpXSxbIm1hcmdpbiIsQT0+R2MoWUkoQSkpXSxbIm1hcmdpbi1ib3R0b20iLEE9PkdjKFlJKEEpKV0sWyJtYXJnaW4tbGVmdCIsQT0+R2MoWUkoQSkpXSxbIm1hcmdpbi1yaWdodCIsQT0+R2MoWUkoQSkpXSxbIm1hcmdpbi10b3AiLEE9PkdjKFlJKEEpKV0sWyJ0ZXh0LWluZGVudCIsQT0+R2MoWUkoQSkpXSxbImZvbnQtZmFtaWx5IixBPT5BXSxbInZlcnRpY2FsLWFsaWduIixBPT5HYyhZSShBKSldXSksb3U9L1xzKy9nLEl1PS9bXHJcbl0rL2csY3U9L1xyXG4/L2c7ZnVuY3Rpb24gaHUoQSxlLHQpe2NvbnN0IGk9T2JqZWN0LmNyZWF0ZShudWxsKTtpZighQSlyZXR1cm4gaTtjb25zdCBhPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGNvbnN0W2UsdF1vZiBBLnNwbGl0KCI7IikubWFwKChBPT5BLnNwbGl0KCI6IiwyKSkpKXtjb25zdCBBPWd1LmdldChlKTtpZigiIj09PUEpY29udGludWU7bGV0IHM9dDtBJiYocz0ic3RyaW5nIj09dHlwZW9mIEE/QTpBKHQsYSkpLGUuZW5kc1dpdGgoInNjYWxlIik/aS50cmFuc2Zvcm09aS50cmFuc2Zvcm0/YCR7aVtlXX0gJHtzfWA6czppW2UucmVwbGFjZUFsbCgvLShbYS16QS1aXSkvZywoKEEsZSk9PmUudG9VcHBlckNhc2UoKSkpXT1zfWlmKGkuZm9udEZhbWlseSYmT2Moe3R5cGVmYWNlOmkuZm9udEZhbWlseSx3ZWlnaHQ6aS5mb250V2VpZ2h0fHwibm9ybWFsIixwb3N0dXJlOmkuZm9udFN0eWxlfHwibm9ybWFsIixzaXplOmEuZm9udFNpemV8fDB9LGUsZVtPb10uZm9udEZpbmRlcixpKSx0JiZpLnZlcnRpY2FsQWxpZ24mJiIwcHgiIT09aS52ZXJ0aWNhbEFsaWduJiZpLmZvbnRTaXplKXtjb25zdCBBPS41ODMsZT0uMzMzLHQ9WUkoaS5mb250U2l6ZSk7aS5mb250U2l6ZT1HYyh0KkEpLGkudmVydGljYWxBbGlnbj1HYyhNYXRoLnNpZ24oWUkoaS52ZXJ0aWNhbEFsaWduKSkqdCplKX1yZXR1cm4gdCYmaS5mb250U2l6ZSYmKGkuZm9udFNpemU9YGNhbGMoJHtpLmZvbnRTaXplfSAqIHZhcigtLXNjYWxlLWZhY3RvcikpYCksS2MoaSksaX1jb25zdCBDdT1uZXcgU2V0KFsiYm9keSIsImh0bWwiXSk7Y2xhc3MgQnUgZXh0ZW5kcyB3Y3tjb25zdHJ1Y3RvcihBLGUpe3N1cGVyKHN1LGUpLHRoaXNbbnVdPSExLHRoaXMuc3R5bGU9QS5zdHlsZXx8IiJ9W2ZvXShBKXt2YXIgZTtzdXBlcltmb10oQSksdGhpcy5zdHlsZT0oZT10aGlzKS5zdHlsZT9lLnN0eWxlLnRyaW0oKS5zcGxpdCgvXHMqO1xzKi8pLmZpbHRlcigoQT0+ISFBKSkubWFwKChBPT5BLnNwbGl0KC9ccyo6XHMqLywyKSkpLmZpbHRlcigoKFtBLHRdKT0+KCJmb250LWZhbWlseSI9PT1BJiZlW09vXS51c2VkVHlwZWZhY2VzLmFkZCh0KSxydS5oYXMoQSkpKSkubWFwKChBPT5BLmpvaW4oIjoiKSkpLmpvaW4oIjsiKToiIn1bbG9dKCl7cmV0dXJuIUN1Lmhhcyh0aGlzW2dJXSl9W2hJXShBLGU9ITEpe2U/dGhpc1tudV09ITA6KEE9QS5yZXBsYWNlQWxsKEl1LCIiKSx0aGlzLnN0eWxlLmluY2x1ZGVzKCJ4ZmEtc3BhY2VydW46eWVzIil8fChBPUEucmVwbGFjZUFsbChvdSwiICIpKSksQSYmKHRoaXNbRG9dKz1BKX1bQ0ldKEEsZT0hMCl7Y29uc3QgdD1PYmplY3QuY3JlYXRlKG51bGwpLGk9e3RvcDpOYU4sYm90dG9tOk5hTixsZWZ0Ok5hTixyaWdodDpOYU59O2xldCBhPW51bGw7Zm9yKGNvbnN0W0EsZV1vZiB0aGlzLnN0eWxlLnNwbGl0KCI7IikubWFwKChBPT5BLnNwbGl0KCI6IiwyKSkpKXN3aXRjaChBKXtjYXNlImZvbnQtZmFtaWx5Ijp0LnR5cGVmYWNlPVVJKGUpO2JyZWFrO2Nhc2UiZm9udC1zaXplIjp0LnNpemU9WUkoZSk7YnJlYWs7Y2FzZSJmb250LXdlaWdodCI6dC53ZWlnaHQ9ZTticmVhaztjYXNlImZvbnQtc3R5bGUiOnQucG9zdHVyZT1lO2JyZWFrO2Nhc2UibGV0dGVyLXNwYWNpbmciOnQubGV0dGVyU3BhY2luZz1ZSShlKTticmVhaztjYXNlIm1hcmdpbiI6Y29uc3QgQT1lLnNwbGl0KC8gXHQvKS5tYXAoKEE9PllJKEEpKSk7c3dpdGNoKEEubGVuZ3RoKXtjYXNlIDE6aS50b3A9aS5ib3R0b209aS5sZWZ0PWkucmlnaHQ9QVswXTticmVhaztjYXNlIDI6aS50b3A9aS5ib3R0b209QVswXSxpLmxlZnQ9aS5yaWdodD1BWzFdO2JyZWFrO2Nhc2UgMzppLnRvcD1BWzBdLGkuYm90dG9tPUFbMl0saS5sZWZ0PWkucmlnaHQ9QVsxXTticmVhaztjYXNlIDQ6aS50b3A9QVswXSxpLmxlZnQ9QVsxXSxpLmJvdHRvbT1BWzJdLGkucmlnaHQ9QVszXX1icmVhaztjYXNlIm1hcmdpbi10b3AiOmkudG9wPVlJKGUpO2JyZWFrO2Nhc2UibWFyZ2luLWJvdHRvbSI6aS5ib3R0b209WUkoZSk7YnJlYWs7Y2FzZSJtYXJnaW4tbGVmdCI6aS5sZWZ0PVlJKGUpO2JyZWFrO2Nhc2UibWFyZ2luLXJpZ2h0IjppLnJpZ2h0PVlJKGUpO2JyZWFrO2Nhc2UibGluZS1oZWlnaHQiOmE9WUkoZSl9aWYoQS5wdXNoRGF0YSh0LGksYSksdGhpc1tEb10pQS5hZGRTdHJpbmcodGhpc1tEb10pO2Vsc2UgZm9yKGNvbnN0IGUgb2YgdGhpc1t2b10oKSkiI3RleHQiIT09ZVtnSV0/ZVtDSV0oQSk6QS5hZGRTdHJpbmcoZVtEb10pO2UmJkEucG9wRm9udCgpfVtiSV0oQSl7Y29uc3QgZT1bXTtpZih0aGlzW0ZvXT17Y2hpbGRyZW46ZX0sdGhpc1t1b10oe30pLDA9PT1lLmxlbmd0aCYmIXRoaXNbRG9dKXJldHVybiBxSS5FTVBUWTtsZXQgdDtyZXR1cm4gdD10aGlzW251XT90aGlzW0RvXT90aGlzW0RvXS5yZXBsYWNlQWxsKGN1LCJcbiIpOnZvaWQgMDp0aGlzW0RvXXx8dm9pZCAwLHFJLnN1Y2Nlc3Moe25hbWU6dGhpc1tnSV0sYXR0cmlidXRlczp7aHJlZjp0aGlzLmhyZWYsc3R5bGU6aHUodGhpcy5zdHlsZSx0aGlzLHRoaXNbbnVdKX0sY2hpbGRyZW46ZSx2YWx1ZTp0fSl9fWNsYXNzIGx1IGV4dGVuZHMgQnV7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSwiYSIpLHRoaXMuaHJlZj1aYyhBLmhyZWYpfHwiIn19Y2xhc3MgUXUgZXh0ZW5kcyBCdXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBLCJiIil9W0NJXShBKXtBLnB1c2hGb250KHt3ZWlnaHQ6ImJvbGQifSksc3VwZXJbQ0ldKEEpLEEucG9wRm9udCgpfX1jbGFzcyBFdSBleHRlbmRzIEJ1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEsImJvZHkiKX1bYkldKEEpe2NvbnN0IGU9c3VwZXJbYkldKEEpLHtodG1sOnR9PWU7cmV0dXJuIHQ/KHQubmFtZT0iZGl2Iix0LmF0dHJpYnV0ZXMuY2xhc3M9WyJ4ZmFSaWNoIl0sZSk6cUkuRU1QVFl9fWNsYXNzIHV1IGV4dGVuZHMgQnV7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSwiYnIiKX1bd0ldKCl7cmV0dXJuIlxuIn1bQ0ldKEEpe0EuYWRkU3RyaW5nKCJcbiIpfVtiSV0oQSl7cmV0dXJuIHFJLnN1Y2Nlc3Moe25hbWU6ImJyIn0pfX1jbGFzcyBkdSBleHRlbmRzIEJ1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEsImh0bWwiKX1bYkldKEEpe2NvbnN0IGU9W107aWYodGhpc1tGb109e2NoaWxkcmVuOmV9LHRoaXNbdW9dKHt9KSwwPT09ZS5sZW5ndGgpcmV0dXJuIHFJLnN1Y2Nlc3Moe25hbWU6ImRpdiIsYXR0cmlidXRlczp7Y2xhc3M6WyJ4ZmFSaWNoIl0sc3R5bGU6e319LHZhbHVlOnRoaXNbRG9dfHwiIn0pO2lmKDE9PT1lLmxlbmd0aCl7Y29uc3QgQT1lWzBdO2lmKEEuYXR0cmlidXRlcz8uY2xhc3MuaW5jbHVkZXMoInhmYVJpY2giKSlyZXR1cm4gcUkuc3VjY2VzcyhBKX1yZXR1cm4gcUkuc3VjY2Vzcyh7bmFtZToiZGl2IixhdHRyaWJ1dGVzOntjbGFzczpbInhmYVJpY2giXSxzdHlsZTp7fX0sY2hpbGRyZW46ZX0pfX1jbGFzcyBmdSBleHRlbmRzIEJ1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEsImkiKX1bQ0ldKEEpe0EucHVzaEZvbnQoe3Bvc3R1cmU6Iml0YWxpYyJ9KSxzdXBlcltDSV0oQSksQS5wb3BGb250KCl9fWNsYXNzIHB1IGV4dGVuZHMgQnV7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSwibGkiKX19Y2xhc3MgbXUgZXh0ZW5kcyBCdXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBLCJvbCIpfX1jbGFzcyB5dSBleHRlbmRzIEJ1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEsInAiKX1bQ0ldKEEpe3N1cGVyW0NJXShBLCExKSxBLmFkZFN0cmluZygiXG4iKSxBLmFkZFBhcmEoKSxBLnBvcEZvbnQoKX1bd0ldKCl7cmV0dXJuIHRoaXNbUG9dKClbdm9dKCkuYXQoLTEpPT09dGhpcz9zdXBlclt3SV0oKTpzdXBlclt3SV0oKSsiXG4ifX1jbGFzcyB3dSBleHRlbmRzIEJ1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEsInNwYW4iKX19Y2xhc3MgRHUgZXh0ZW5kcyBCdXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBLCJzdWIiKX19Y2xhc3MgYnUgZXh0ZW5kcyBCdXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBLCJzdXAiKX19Y2xhc3Mga3UgZXh0ZW5kcyBCdXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBLCJ1bCIpfX1jbGFzcyBGdXtzdGF0aWNbUkldKEEsZSl7aWYoRnUuaGFzT3duUHJvcGVydHkoQSkpcmV0dXJuIEZ1W0FdKGUpfXN0YXRpYyBhKEEpe3JldHVybiBuZXcgbHUoQSl9c3RhdGljIGIoQSl7cmV0dXJuIG5ldyBRdShBKX1zdGF0aWMgYm9keShBKXtyZXR1cm4gbmV3IEV1KEEpfXN0YXRpYyBicihBKXtyZXR1cm4gbmV3IHV1KEEpfXN0YXRpYyBodG1sKEEpe3JldHVybiBuZXcgZHUoQSl9c3RhdGljIGkoQSl7cmV0dXJuIG5ldyBmdShBKX1zdGF0aWMgbGkoQSl7cmV0dXJuIG5ldyBwdShBKX1zdGF0aWMgb2woQSl7cmV0dXJuIG5ldyBtdShBKX1zdGF0aWMgcChBKXtyZXR1cm4gbmV3IHl1KEEpfXN0YXRpYyBzcGFuKEEpe3JldHVybiBuZXcgd3UoQSl9c3RhdGljIHN1YihBKXtyZXR1cm4gbmV3IER1KEEpfXN0YXRpYyBzdXAoQSl7cmV0dXJuIG5ldyBidShBKX1zdGF0aWMgdWwoQSl7cmV0dXJuIG5ldyBrdShBKX19Y29uc3QgU3U9e2NvbmZpZzpzRSxjb25uZWN0aW9uOmRFLGRhdGFzZXRzOnlFLGxvY2FsZVNldDpYRSxzaWduYXR1cmU6ekUsc3R5bGVzaGVldDpldSx0ZW1wbGF0ZTptQix4ZHA6YXUseGh0bWw6RnV9O2NsYXNzIFJ1e2NvbnN0cnVjdG9yKEEpe3RoaXMubmFtZXNwYWNlSWQ9QX1bUkldKEEsZSl7cmV0dXJuIG5ldyB3Yyh0aGlzLm5hbWVzcGFjZUlkLEEsZSl9fWNsYXNzIEd1IGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoQSl7c3VwZXIoLTEsInJvb3QiLE9iamVjdC5jcmVhdGUobnVsbCkpLHRoaXMuZWxlbWVudD1udWxsLHRoaXNbam9dPUF9W0lJXShBKXtyZXR1cm4gdGhpcy5lbGVtZW50PUEsITB9W1NvXSgpe3N1cGVyW1NvXSgpLHRoaXMuZWxlbWVudC50ZW1wbGF0ZSBpbnN0YW5jZW9mIElCJiYodGhpc1tqb10uc2V0KEVJLHRoaXMuZWxlbWVudCksdGhpcy5lbGVtZW50LnRlbXBsYXRlW3VJXSh0aGlzW2pvXSksdGhpcy5lbGVtZW50LnRlbXBsYXRlW2pvXT10aGlzW2pvXSl9fWNsYXNzIE51IGV4dGVuZHMgcGN7Y29uc3RydWN0b3IoKXtzdXBlcigtMSwiIixPYmplY3QuY3JlYXRlKG51bGwpKX1bSUldKEEpe3JldHVybiExfX1jbGFzcyB4dXtjb25zdHJ1Y3RvcihBPW51bGwpe3RoaXMuX25hbWVzcGFjZVN0YWNrPVtdLHRoaXMuX25zQWdub3N0aWNMZXZlbD0wLHRoaXMuX25hbWVzcGFjZVByZWZpeGVzPW5ldyBNYXAsdGhpcy5fbmFtZXNwYWNlcz1uZXcgTWFwLHRoaXMuX25leHROc0lkPU1hdGgubWF4KC4uLk9iamVjdC52YWx1ZXMoR0kpLm1hcCgoKHtpZDpBfSk9PkEpKSksdGhpcy5fY3VycmVudE5hbWVzcGFjZT1BfHxuZXcgUnUoKyt0aGlzLl9uZXh0TnNJZCl9YnVpbGRSb290KEEpe3JldHVybiBuZXcgR3UoQSl9YnVpbGQoe25zUHJlZml4OkEsbmFtZTplLGF0dHJpYnV0ZXM6dCxuYW1lc3BhY2U6aSxwcmVmaXhlczphfSl7Y29uc3Qgcz1udWxsIT09aTtpZihzJiYodGhpcy5fbmFtZXNwYWNlU3RhY2sucHVzaCh0aGlzLl9jdXJyZW50TmFtZXNwYWNlKSx0aGlzLl9jdXJyZW50TmFtZXNwYWNlPXRoaXMuX3NlYXJjaE5hbWVzcGFjZShpKSksYSYmdGhpcy5fYWRkTmFtZXNwYWNlUHJlZml4KGEpLHQuaGFzT3duUHJvcGVydHkob0kpKXtjb25zdCBBPVN1LmRhdGFzZXRzLGU9dFtvSV07bGV0IGk9bnVsbDtmb3IoY29uc3RbdCxhXW9mIE9iamVjdC5lbnRyaWVzKGUpKWlmKHRoaXMuX2dldE5hbWVzcGFjZVRvVXNlKHQpPT09QSl7aT17eGZhOmF9O2JyZWFrfWk/dFtvSV09aTpkZWxldGUgdFtvSV19Y29uc3Qgbj10aGlzLl9nZXROYW1lc3BhY2VUb1VzZShBKSxyPW4/LltSSV0oZSx0KXx8bmV3IE51O3JldHVybiByW2VJXSgpJiZ0aGlzLl9uc0Fnbm9zdGljTGV2ZWwrKywoc3x8YXx8cltlSV0oKSkmJihyW21vXT17aGFzTmFtZXNwYWNlOnMscHJlZml4ZXM6YSxuc0Fnbm9zdGljOnJbZUldKCl9KSxyfWlzTnNBZ25vc3RpYygpe3JldHVybiB0aGlzLl9uc0Fnbm9zdGljTGV2ZWw+MH1fc2VhcmNoTmFtZXNwYWNlKEEpe2xldCBlPXRoaXMuX25hbWVzcGFjZXMuZ2V0KEEpO2lmKGUpcmV0dXJuIGU7Zm9yKGNvbnN0W3Qse2NoZWNrOml9XW9mIE9iamVjdC5lbnRyaWVzKEdJKSlpZihpKEEpKXtpZihlPVN1W3RdLGUpcmV0dXJuIHRoaXMuX25hbWVzcGFjZXMuc2V0KEEsZSksZTticmVha31yZXR1cm4gZT1uZXcgUnUoKyt0aGlzLl9uZXh0TnNJZCksdGhpcy5fbmFtZXNwYWNlcy5zZXQoQSxlKSxlfV9hZGROYW1lc3BhY2VQcmVmaXgoQSl7Zm9yKGNvbnN0e3ByZWZpeDplLHZhbHVlOnR9b2YgQSl7Y29uc3QgQT10aGlzLl9zZWFyY2hOYW1lc3BhY2UodCk7bGV0IGk9dGhpcy5fbmFtZXNwYWNlUHJlZml4ZXMuZ2V0KGUpO2l8fChpPVtdLHRoaXMuX25hbWVzcGFjZVByZWZpeGVzLnNldChlLGkpKSxpLnB1c2goQSl9fV9nZXROYW1lc3BhY2VUb1VzZShBKXtpZighQSlyZXR1cm4gdGhpcy5fY3VycmVudE5hbWVzcGFjZTtjb25zdCBlPXRoaXMuX25hbWVzcGFjZVByZWZpeGVzLmdldChBKTtyZXR1cm4gZT8ubGVuZ3RoPjA/ZS5hdCgtMSk6KFUoYFVua25vd24gbmFtZXNwYWNlIHByZWZpeDogJHtBfS5gKSxudWxsKX1jbGVhbihBKXtjb25zdHtoYXNOYW1lc3BhY2U6ZSxwcmVmaXhlczp0LG5zQWdub3N0aWM6aX09QTtlJiYodGhpcy5fY3VycmVudE5hbWVzcGFjZT10aGlzLl9uYW1lc3BhY2VTdGFjay5wb3AoKSksdCYmdC5mb3JFYWNoKCgoe3ByZWZpeDpBfSk9Pnt0aGlzLl9uYW1lc3BhY2VQcmVmaXhlcy5nZXQoQSkucG9wKCl9KSksaSYmdGhpcy5fbnNBZ25vc3RpY0xldmVsLS19fWNsYXNzIFV1IGV4dGVuZHMgR2d7Y29uc3RydWN0b3IoQT1udWxsLGU9ITEpe3N1cGVyKCksdGhpcy5fYnVpbGRlcj1uZXcgeHUoQSksdGhpcy5fc3RhY2s9W10sdGhpcy5fZ2xvYmFsRGF0YT17dXNlZFR5cGVmYWNlczpuZXcgU2V0fSx0aGlzLl9pZHM9bmV3IE1hcCx0aGlzLl9jdXJyZW50PXRoaXMuX2J1aWxkZXIuYnVpbGRSb290KHRoaXMuX2lkcyksdGhpcy5fZXJyb3JDb2RlPTAsdGhpcy5fd2hpdGVSZWdleD0vXlxzKyQvLHRoaXMuX25ic3BzPS9ceGEwKy9nLHRoaXMuX3JpY2hUZXh0PWV9cGFyc2UoQSl7aWYodGhpcy5wYXJzZVhtbChBKSwwPT09dGhpcy5fZXJyb3JDb2RlKXJldHVybiB0aGlzLl9jdXJyZW50W1NvXSgpLHRoaXMuX2N1cnJlbnQuZWxlbWVudH1vblRleHQoQSl7QT1BLnJlcGxhY2UodGhpcy5fbmJzcHMsKEE9PkEuc2xpY2UoMSkrIiAiKSksdGhpcy5fcmljaFRleHR8fHRoaXMuX2N1cnJlbnRbbG9dKCk/dGhpcy5fY3VycmVudFtoSV0oQSx0aGlzLl9yaWNoVGV4dCk6dGhpcy5fd2hpdGVSZWdleC50ZXN0KEEpfHx0aGlzLl9jdXJyZW50W2hJXShBLnRyaW0oKSl9b25DZGF0YShBKXt0aGlzLl9jdXJyZW50W2hJXShBKX1fbWtBdHRyaWJ1dGVzKEEsZSl7bGV0IHQ9bnVsbCxpPW51bGw7Y29uc3QgYT1PYmplY3QuY3JlYXRlKHt9KTtmb3IoY29uc3R7bmFtZTpzLHZhbHVlOm59b2YgQSlpZigieG1sbnMiPT09cyl0P1UoYFhGQSAtIG11bHRpcGxlIG5hbWVzcGFjZSBkZWZpbml0aW9uIGluIDwke2V9PmApOnQ9bjtlbHNlIGlmKHMuc3RhcnRzV2l0aCgieG1sbnM6Iikpe2NvbnN0IEE9cy5zdWJzdHJpbmcoNik7aXx8KGk9W10pLGkucHVzaCh7cHJlZml4OkEsdmFsdWU6bn0pfWVsc2V7Y29uc3QgQT1zLmluZGV4T2YoIjoiKTtpZigtMT09PUEpYVtzXT1uO2Vsc2V7bGV0IGU9YVtvSV07ZXx8KGU9YVtvSV09T2JqZWN0LmNyZWF0ZShudWxsKSk7Y29uc3RbdCxpXT1bcy5zbGljZSgwLEEpLHMuc2xpY2UoQSsxKV07KGVbdF18fD1PYmplY3QuY3JlYXRlKG51bGwpKVtpXT1ufX1yZXR1cm5bdCxpLGFdfV9nZXROYW1lQW5kUHJlZml4KEEsZSl7Y29uc3QgdD1BLmluZGV4T2YoIjoiKTtyZXR1cm4tMT09PXQ/W0EsbnVsbF06W0Euc3Vic3RyaW5nKHQrMSksZT8iIjpBLnN1YnN0cmluZygwLHQpXX1vbkJlZ2luRWxlbWVudChBLGUsdCl7Y29uc3RbaSxhLHNdPXRoaXMuX21rQXR0cmlidXRlcyhlLEEpLFtuLHJdPXRoaXMuX2dldE5hbWVBbmRQcmVmaXgoQSx0aGlzLl9idWlsZGVyLmlzTnNBZ25vc3RpYygpKSxnPXRoaXMuX2J1aWxkZXIuYnVpbGQoe25zUHJlZml4OnIsbmFtZTpuLGF0dHJpYnV0ZXM6cyxuYW1lc3BhY2U6aSxwcmVmaXhlczphfSk7aWYoZ1tPb109dGhpcy5fZ2xvYmFsRGF0YSx0KXJldHVybiBnW1NvXSgpLHRoaXMuX2N1cnJlbnRbSUldKGcpJiZnW2ZJXSh0aGlzLl9pZHMpLHZvaWQgZ1tmb10odGhpcy5fYnVpbGRlcik7dGhpcy5fc3RhY2sucHVzaCh0aGlzLl9jdXJyZW50KSx0aGlzLl9jdXJyZW50PWd9b25FbmRFbGVtZW50KEEpe2NvbnN0IGU9dGhpcy5fY3VycmVudDtpZihlW19vXSgpJiYic3RyaW5nIj09dHlwZW9mIGVbRG9dKXtjb25zdCBBPW5ldyBVdTtBLl9nbG9iYWxEYXRhPXRoaXMuX2dsb2JhbERhdGE7Y29uc3QgdD1BLnBhcnNlKGVbRG9dKTtlW0RvXT1udWxsLGVbSUldKHQpfWVbU29dKCksdGhpcy5fY3VycmVudD10aGlzLl9zdGFjay5wb3AoKSx0aGlzLl9jdXJyZW50W0lJXShlKSYmZVtmSV0odGhpcy5faWRzKSxlW2ZvXSh0aGlzLl9idWlsZGVyKX1vbkVycm9yKEEpe3RoaXMuX2Vycm9yQ29kZT1BfX1jbGFzcyBNdXtjb25zdHJ1Y3RvcihBKXt0cnl7dGhpcy5yb290PShuZXcgVXUpLnBhcnNlKE11Ll9jcmVhdGVEb2N1bWVudChBKSk7Y29uc3QgZT1uZXcgREIodGhpcy5yb290KTt0aGlzLmZvcm09ZS5iaW5kKCksdGhpcy5kYXRhSGFuZGxlcj1uZXcgYkIodGhpcy5yb290LGUuZ2V0RGF0YSgpKSx0aGlzLmZvcm1bT29dLnRlbXBsYXRlPXRoaXMuZm9ybX1jYXRjaChBKXtVKGBYRkEgLSBhbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgcGFyc2luZyBhbmQgYmluZGluZzogJHtBfWApfX1pc1ZhbGlkKCl7cmV0dXJuIHRoaXMucm9vdCYmdGhpcy5mb3JtfV9jcmVhdGVQYWdlc0hlbHBlcigpe2NvbnN0IEE9dGhpcy5mb3JtW0RJXSgpO3JldHVybiBuZXcgUHJvbWlzZSgoKGUsdCk9Pntjb25zdCBpPSgpPT57dHJ5e2NvbnN0IHQ9QS5uZXh0KCk7dC5kb25lP2UodC52YWx1ZSk6c2V0VGltZW91dChpLDApfWNhdGNoKEEpe3QoQSl9fTtzZXRUaW1lb3V0KGksMCl9KSl9YXN5bmMgX2NyZWF0ZVBhZ2VzKCl7dHJ5e3RoaXMucGFnZXM9YXdhaXQgdGhpcy5fY3JlYXRlUGFnZXNIZWxwZXIoKSx0aGlzLmRpbXM9dGhpcy5wYWdlcy5jaGlsZHJlbi5tYXAoKEE9Pntjb25zdHt3aWR0aDplLGhlaWdodDp0fT1BLmF0dHJpYnV0ZXMuc3R5bGU7cmV0dXJuWzAsMCxwYXJzZUludChlKSxwYXJzZUludCh0KV19KSl9Y2F0Y2goQSl7VShgWEZBIC0gYW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIGxheW91dDogJHtBfWApfX1nZXRCb3VuZGluZ0JveChBKXtyZXR1cm4gdGhpcy5kaW1zW0FdfWFzeW5jIGdldE51bVBhZ2VzKCl7cmV0dXJuIHRoaXMucGFnZXN8fGF3YWl0IHRoaXMuX2NyZWF0ZVBhZ2VzKCksdGhpcy5kaW1zLmxlbmd0aH1zZXRJbWFnZXMoQSl7dGhpcy5mb3JtW09vXS5pbWFnZXM9QX1zZXRGb250cyhBKXt0aGlzLmZvcm1bT29dLmZvbnRGaW5kZXI9bmV3IFRJKEEpO2NvbnN0IGU9W107Zm9yKGxldCBBIG9mIHRoaXMuZm9ybVtPb10udXNlZFR5cGVmYWNlcylBPVVJKEEpLHRoaXMuZm9ybVtPb10uZm9udEZpbmRlci5maW5kKEEpfHxlLnB1c2goQSk7cmV0dXJuIGUubGVuZ3RoPjA/ZTpudWxsfWFwcGVuZEZvbnRzKEEsZSl7dGhpcy5mb3JtW09vXS5mb250RmluZGVyLmFkZChBLGUpfWFzeW5jIGdldFBhZ2VzKCl7dGhpcy5wYWdlc3x8YXdhaXQgdGhpcy5fY3JlYXRlUGFnZXMoKTtjb25zdCBBPXRoaXMucGFnZXM7cmV0dXJuIHRoaXMucGFnZXM9bnVsbCxBfXNlcmlhbGl6ZURhdGEoQSl7cmV0dXJuIHRoaXMuZGF0YUhhbmRsZXIuc2VyaWFsaXplKEEpfXN0YXRpYyBfY3JlYXRlRG9jdW1lbnQoQSl7cmV0dXJuIEFbIi94ZHA6eGRwIl0/T2JqZWN0LnZhbHVlcyhBKS5qb2luKCIiKTpBWyJ4ZHA6eGRwIl19c3RhdGljIGdldFJpY2hUZXh0QXNIdG1sKEEpe2lmKCFBfHwic3RyaW5nIiE9dHlwZW9mIEEpcmV0dXJuIG51bGw7dHJ5e2xldCBlPW5ldyBVdShGdSwhMCkucGFyc2UoQSk7aWYoIVsiYm9keSIsInhodG1sIl0uaW5jbHVkZXMoZVtnSV0pKXtjb25zdCBBPUZ1LmJvZHkoe30pO0FbRW9dKGUpLGU9QX1jb25zdCB0PWVbYkldKCk7aWYoIXQuc3VjY2VzcylyZXR1cm4gbnVsbDtjb25zdHtodG1sOml9PXQse2F0dHJpYnV0ZXM6YX09aTtyZXR1cm4gYSYmKGEuY2xhc3MmJihhLmNsYXNzPWEuY2xhc3MuZmlsdGVyKChBPT4hQS5zdGFydHNXaXRoKCJ4ZmEiKSkpKSxhLmRpcj0iYXV0byIpLHtodG1sOmksc3RyOmVbd0ldKCl9fWNhdGNoKEEpe1UoYFhGQSAtIGFuIGVycm9yIG9jY3VycmVkIGR1cmluZyBwYXJzaW5nIG9mIHJpY2ggdGV4dDogJHtBfWApfXJldHVybiBudWxsfX1jbGFzcyBMdXtzdGF0aWMgY3JlYXRlR2xvYmFscyhBKXtyZXR1cm4gUHJvbWlzZS5hbGwoW0EuZW5zdXJlQ2F0YWxvZygiYWNyb0Zvcm0iKSxBLmVuc3VyZURvYygieGZhRGF0YXNldHMiKSxBLmVuc3VyZUNhdGFsb2coInN0cnVjdFRyZWVSb290IiksQS5lbnN1cmVDYXRhbG9nKCJiYXNlVXJsIiksQS5lbnN1cmVDYXRhbG9nKCJhdHRhY2htZW50cyIpXSkudGhlbigoKFtlLHQsaSxhLHNdKT0+KHtwZGZNYW5hZ2VyOkEsYWNyb0Zvcm06ZSBpbnN0YW5jZW9mIFFBP2U6UUEuZW1wdHkseGZhRGF0YXNldHM6dCxzdHJ1Y3RUcmVlUm9vdDppLGJhc2VVcmw6YSxhdHRhY2htZW50czpzfSkpLChBPT4oVShgY3JlYXRlR2xvYmFsczogIiR7QX0iLmApLG51bGwpKSl9c3RhdGljIGFzeW5jIGNyZWF0ZShBLGUsdCxpLGEscyxuKXtjb25zdCByPWE/YXdhaXQgdGhpcy5fZ2V0UGFnZUluZGV4KEEsZSx0LnBkZk1hbmFnZXIpOm51bGw7cmV0dXJuIHQucGRmTWFuYWdlci5lbnN1cmUodGhpcywiX2NyZWF0ZSIsW0EsZSx0LGksYSxzLHIsbl0pfXN0YXRpYyBfY3JlYXRlKEEsZSx0LGksYT0hMSxzPW51bGwsbj1udWxsLHI9bnVsbCl7Y29uc3QgZz1BLmZldGNoSWZSZWYoZSk7aWYoIShnIGluc3RhbmNlb2YgUUEpKXJldHVybjtjb25zdHthY3JvRm9ybTpvLHBkZk1hbmFnZXI6SX09dCxjPWUgaW5zdGFuY2VvZiBFQT9lLnRvU3RyaW5nKCk6YGFubm90XyR7aS5jcmVhdGVPYmpJZCgpfWA7bGV0IGg9Zy5nZXQoIlN1YnR5cGUiKTtoPWggaW5zdGFuY2VvZiBDQT9oLm5hbWU6bnVsbDtjb25zdCBDPXt4cmVmOkEscmVmOmUsZGljdDpnLHN1YnR5cGU6aCxpZDpjLGFubm90YXRpb25HbG9iYWxzOnQsY29sbGVjdEZpZWxkczphLG9ycGhhbkZpZWxkczpzLG5lZWRBcHBlYXJhbmNlczohYSYmITA9PT1vLmdldCgiTmVlZEFwcGVhcmFuY2VzIikscGFnZUluZGV4Om4sZXZhbHVhdG9yT3B0aW9uczpJLmV2YWx1YXRvck9wdGlvbnMscGFnZVJlZjpyfTtzd2l0Y2goaCl7Y2FzZSJMaW5rIjpyZXR1cm4gbmV3IFZ1KEMpO2Nhc2UiVGV4dCI6cmV0dXJuIG5ldyBYdShDKTtjYXNlIldpZGdldCI6bGV0IEE9TkEoe2RpY3Q6ZyxrZXk6IkZUIn0pO3N3aXRjaChBPUEgaW5zdGFuY2VvZiBDQT9BLm5hbWU6bnVsbCxBKXtjYXNlIlR4IjpyZXR1cm4gbmV3IFd1KEMpO2Nhc2UiQnRuIjpyZXR1cm4gbmV3IE91KEMpO2Nhc2UiQ2giOnJldHVybiBuZXcgWnUoQyk7Y2FzZSJTaWciOnJldHVybiBuZXcganUoQyl9cmV0dXJuIFUoYFVuaW1wbGVtZW50ZWQgd2lkZ2V0IGZpZWxkIHR5cGUgIiR7QX0iLCBmYWxsaW5nIGJhY2sgdG8gYmFzZSBmaWVsZCB0eXBlLmApLG5ldyBQdShDKTtjYXNlIlBvcHVwIjpyZXR1cm4gbmV3IF91KEMpO2Nhc2UiRnJlZVRleHQiOnJldHVybiBuZXcgenUoQyk7Y2FzZSJMaW5lIjpyZXR1cm4gbmV3ICR1KEMpO2Nhc2UiU3F1YXJlIjpyZXR1cm4gbmV3IEFkKEMpO2Nhc2UiQ2lyY2xlIjpyZXR1cm4gbmV3IGVkKEMpO2Nhc2UiUG9seUxpbmUiOnJldHVybiBuZXcgdGQoQyk7Y2FzZSJQb2x5Z29uIjpyZXR1cm4gbmV3IGlkKEMpO2Nhc2UiQ2FyZXQiOnJldHVybiBuZXcgYWQoQyk7Y2FzZSJJbmsiOnJldHVybiBuZXcgc2QoQyk7Y2FzZSJIaWdobGlnaHQiOnJldHVybiBuZXcgbmQoQyk7Y2FzZSJVbmRlcmxpbmUiOnJldHVybiBuZXcgcmQoQyk7Y2FzZSJTcXVpZ2dseSI6cmV0dXJuIG5ldyBnZChDKTtjYXNlIlN0cmlrZU91dCI6cmV0dXJuIG5ldyBvZChDKTtjYXNlIlN0YW1wIjpyZXR1cm4gbmV3IElkKEMpO2Nhc2UiRmlsZUF0dGFjaG1lbnQiOnJldHVybiBuZXcgY2QoQyk7ZGVmYXVsdDpyZXR1cm4gYXx8VShoP2BVbmltcGxlbWVudGVkIGFubm90YXRpb24gdHlwZSAiJHtofSIsIGZhbGxpbmcgYmFjayB0byBiYXNlIGFubm90YXRpb24uYDoiQW5ub3RhdGlvbiBpcyBtaXNzaW5nIHRoZSByZXF1aXJlZCAvU3VidHlwZS4iKSxuZXcgS3UoQyl9fXN0YXRpYyBhc3luYyBfZ2V0UGFnZUluZGV4KEEsZSx0KXt0cnl7Y29uc3QgaT1hd2FpdCBBLmZldGNoSWZSZWZBc3luYyhlKTtpZighKGkgaW5zdGFuY2VvZiBRQSkpcmV0dXJuLTE7Y29uc3QgYT1pLmdldFJhdygiUCIpO2lmKGEgaW5zdGFuY2VvZiBFQSl0cnl7cmV0dXJuIGF3YWl0IHQuZW5zdXJlQ2F0YWxvZygiZ2V0UGFnZUluZGV4IixbYV0pfWNhdGNoKEEpe3goYF9nZXRQYWdlSW5kZXggLS0gbm90IGEgdmFsaWQgcGFnZSByZWZlcmVuY2U6ICIke0F9Ii5gKX1pZihpLmhhcygiS2lkcyIpKXJldHVybi0xO2NvbnN0IHM9YXdhaXQgdC5lbnN1cmVEb2MoIm51bVBhZ2VzIik7Zm9yKGxldCBBPTA7QTxzO0ErKyl7Y29uc3QgaT1hd2FpdCB0LmdldFBhZ2UoQSksYT1hd2FpdCB0LmVuc3VyZShpLCJhbm5vdGF0aW9ucyIpO2Zvcihjb25zdCB0IG9mIGEpaWYodCBpbnN0YW5jZW9mIEVBJiZ5QSh0LGUpKXJldHVybiBBfX1jYXRjaChBKXtVKGBfZ2V0UGFnZUluZGV4OiAiJHtBfSIuYCl9cmV0dXJuLTF9c3RhdGljIGdlbmVyYXRlSW1hZ2VzKEEsZSx0KXtpZighdClyZXR1cm4gVSgiZ2VuZXJhdGVJbWFnZXM6IE9mZnNjcmVlbkNhbnZhcyBpcyBub3Qgc3VwcG9ydGVkLCBjYW5ub3Qgc2F2ZSBvciBwcmludCBzb21lIGFubm90YXRpb25zIHdpdGggaW1hZ2VzLiIpLG51bGw7bGV0IGk7Zm9yKGNvbnN0e2JpdG1hcElkOnQsYml0bWFwOmF9b2YgQSlhJiYoaXx8PW5ldyBNYXAsaS5zZXQodCxJZC5jcmVhdGVJbWFnZShhLGUpKSk7cmV0dXJuIGl9c3RhdGljIGFzeW5jIHNhdmVOZXdBbm5vdGF0aW9ucyhBLGUsdCxpKXtjb25zdCBhPUEueHJlZjtsZXQgcztjb25zdCBuPVtdLHI9W10se2lzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkOmd9PUEub3B0aW9ucztmb3IoY29uc3QgbyBvZiB0KWlmKCFvLmRlbGV0ZWQpc3dpdGNoKG8uYW5ub3RhdGlvblR5cGUpe2Nhc2UgMzppZighcyl7Y29uc3QgQT1uZXcgUUEoYSk7QS5zZXQoIkJhc2VGb250IixDQS5nZXQoIkhlbHZldGljYSIpKSxBLnNldCgiVHlwZSIsQ0EuZ2V0KCJGb250IikpLEEuc2V0KCJTdWJ0eXBlIixDQS5nZXQoIlR5cGUxIikpLEEuc2V0KCJFbmNvZGluZyIsQ0EuZ2V0KCJXaW5BbnNpRW5jb2RpbmciKSk7Y29uc3QgZT1bXTtzPWEuZ2V0TmV3VGVtcG9yYXJ5UmVmKCksYXdhaXQgWGcocyxBLGUsYSksbi5wdXNoKHtyZWY6cyxkYXRhOmUuam9pbigiIil9KX1yLnB1c2goenUuY3JlYXRlTmV3QW5ub3RhdGlvbihhLG8sbix7ZXZhbHVhdG9yOkEsdGFzazplLGJhc2VGb250UmVmOnN9KSk7YnJlYWs7Y2FzZSA5Om8ucXVhZFBvaW50cz9yLnB1c2gobmQuY3JlYXRlTmV3QW5ub3RhdGlvbihhLG8sbikpOnIucHVzaChzZC5jcmVhdGVOZXdBbm5vdGF0aW9uKGEsbyxuKSk7YnJlYWs7Y2FzZSAxNTpyLnB1c2goc2QuY3JlYXRlTmV3QW5ub3RhdGlvbihhLG8sbikpO2JyZWFrO2Nhc2UgMTM6Y29uc3QgdD1nP2F3YWl0KGk/LmdldChvLmJpdG1hcElkKSk6bnVsbDtpZih0Py5pbWFnZVN0cmVhbSl7Y29uc3R7aW1hZ2VTdHJlYW06QSxzbWFza1N0cmVhbTplfT10LGk9W107aWYoZSl7Y29uc3QgdD1hLmdldE5ld1RlbXBvcmFyeVJlZigpO2F3YWl0IFhnKHQsZSxpLGEpLG4ucHVzaCh7cmVmOnQsZGF0YTppLmpvaW4oIiIpfSksQS5kaWN0LnNldCgiU01hc2siLHQpLGkubGVuZ3RoPTB9Y29uc3Qgcz10LmltYWdlUmVmPWEuZ2V0TmV3VGVtcG9yYXJ5UmVmKCk7YXdhaXQgWGcocyxBLGksYSksbi5wdXNoKHtyZWY6cyxkYXRhOmkuam9pbigiIil9KSx0LmltYWdlU3RyZWFtPXQuc21hc2tTdHJlYW09bnVsbH1yLnB1c2goSWQuY3JlYXRlTmV3QW5ub3RhdGlvbihhLG8sbix7aW1hZ2U6dH0pKX1yZXR1cm57YW5ub3RhdGlvbnM6YXdhaXQgUHJvbWlzZS5hbGwociksZGVwZW5kZW5jaWVzOm59fXN0YXRpYyBhc3luYyBwcmludE5ld0Fubm90YXRpb25zKEEsZSx0LGksYSl7aWYoIWkpcmV0dXJuIG51bGw7Y29uc3R7b3B0aW9uczpzLHhyZWY6bn09ZSxyPVtdO2Zvcihjb25zdCBnIG9mIGkpaWYoIWcuZGVsZXRlZClzd2l0Y2goZy5hbm5vdGF0aW9uVHlwZSl7Y2FzZSAzOnIucHVzaCh6dS5jcmVhdGVOZXdQcmludEFubm90YXRpb24oQSxuLGcse2V2YWx1YXRvcjplLHRhc2s6dCxldmFsdWF0b3JPcHRpb25zOnN9KSk7YnJlYWs7Y2FzZSA5OmcucXVhZFBvaW50cz9yLnB1c2gobmQuY3JlYXRlTmV3UHJpbnRBbm5vdGF0aW9uKEEsbixnLHtldmFsdWF0b3JPcHRpb25zOnN9KSk6ci5wdXNoKHNkLmNyZWF0ZU5ld1ByaW50QW5ub3RhdGlvbihBLG4sZyx7ZXZhbHVhdG9yT3B0aW9uczpzfSkpO2JyZWFrO2Nhc2UgMTU6ci5wdXNoKHNkLmNyZWF0ZU5ld1ByaW50QW5ub3RhdGlvbihBLG4sZyx7ZXZhbHVhdG9yT3B0aW9uczpzfSkpO2JyZWFrO2Nhc2UgMTM6Y29uc3QgaT1zLmlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkP2F3YWl0KGE/LmdldChnLmJpdG1hcElkKSk6bnVsbDtpZihpPy5pbWFnZVN0cmVhbSl7Y29uc3R7aW1hZ2VTdHJlYW06QSxzbWFza1N0cmVhbTplfT1pO2UmJkEuZGljdC5zZXQoIlNNYXNrIixlKSxpLmltYWdlUmVmPW5ldyB6dChBLEEubGVuZ3RoKSxpLmltYWdlU3RyZWFtPWkuc21hc2tTdHJlYW09bnVsbH1yLnB1c2goSWQuY3JlYXRlTmV3UHJpbnRBbm5vdGF0aW9uKEEsbixnLHtpbWFnZTppLGV2YWx1YXRvck9wdGlvbnM6c30pKX1yZXR1cm4gUHJvbWlzZS5hbGwocil9fWZ1bmN0aW9uIEp1KEEsZT1uZXcgVWludDhDbGFtcGVkQXJyYXkoMykpe2lmKCFBcnJheS5pc0FycmF5KEEpKXJldHVybiBlO2NvbnN0IHQ9ZXx8bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDMpO3N3aXRjaChBLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBudWxsO2Nhc2UgMTpyZXR1cm4gQ2Uuc2luZ2xldG9ucy5ncmF5LmdldFJnYkl0ZW0oQSwwLHQsMCksdDtjYXNlIDM6cmV0dXJuIENlLnNpbmdsZXRvbnMucmdiLmdldFJnYkl0ZW0oQSwwLHQsMCksdDtjYXNlIDQ6cmV0dXJuIENlLnNpbmdsZXRvbnMuY215ay5nZXRSZ2JJdGVtKEEsMCx0LDApLHQ7ZGVmYXVsdDpyZXR1cm4gZX19ZnVuY3Rpb24gSHUoQSl7cmV0dXJuIEFycmF5LmZyb20oQSwoQT0+QS8yNTUpKX1mdW5jdGlvbiBZdShBLGUpe2NvbnN0IHQ9QS5nZXRBcnJheSgiUXVhZFBvaW50cyIpO2lmKCF2QSh0LG51bGwpfHwwPT09dC5sZW5ndGh8fHQubGVuZ3RoJTg+MClyZXR1cm4gbnVsbDtjb25zdCBpPW5ldyBGbG9hdDMyQXJyYXkodC5sZW5ndGgpO2ZvcihsZXQgQT0wLGE9dC5sZW5ndGg7QTxhO0ErPTgpe2NvbnN0W2EscyxuLHIsZyxvLEksY109dC5zbGljZShBLEErOCksaD1NYXRoLm1pbihhLG4sZyxJKSxDPU1hdGgubWF4KGEsbixnLEkpLEI9TWF0aC5taW4ocyxyLG8sYyksbD1NYXRoLm1heChzLHIsbyxjKTtpZihudWxsIT09ZSYmKGg8ZVswXXx8Qz5lWzJdfHxCPGVbMV18fGw+ZVszXSkpcmV0dXJuIG51bGw7aS5zZXQoW2gsbCxDLGwsaCxCLEMsQl0sQSl9cmV0dXJuIGl9ZnVuY3Rpb24gdnUoQSxlLHQpe2NvbnN0W2ksYSxzLG5dPSQuZ2V0QXhpYWxBbGlnbmVkQm91bmRpbmdCb3goZSx0KTtpZihpPT09c3x8YT09PW4pcmV0dXJuWzEsMCwwLDEsQVswXSxBWzFdXTtjb25zdCByPShBWzJdLUFbMF0pLyhzLWkpLGc9KEFbM10tQVsxXSkvKG4tYSk7cmV0dXJuW3IsMCwwLGcsQVswXS1pKnIsQVsxXS1hKmddfWNsYXNzIEt1e2NvbnN0cnVjdG9yKEEpe2NvbnN0e2RpY3Q6ZSx4cmVmOnQsYW5ub3RhdGlvbkdsb2JhbHM6aSxyZWY6YSxvcnBoYW5GaWVsZHM6c309QSxuPXM/LmdldChhKTtuJiZlLnNldCgiUGFyZW50IixuKSx0aGlzLnNldFRpdGxlKGUuZ2V0KCJUIikpLHRoaXMuc2V0Q29udGVudHMoZS5nZXQoIkNvbnRlbnRzIikpLHRoaXMuc2V0TW9kaWZpY2F0aW9uRGF0ZShlLmdldCgiTSIpKSx0aGlzLnNldEZsYWdzKGUuZ2V0KCJGIikpLHRoaXMuc2V0UmVjdGFuZ2xlKGUuZ2V0QXJyYXkoIlJlY3QiKSksdGhpcy5zZXRDb2xvcihlLmdldEFycmF5KCJDIikpLHRoaXMuc2V0Qm9yZGVyU3R5bGUoZSksdGhpcy5zZXRBcHBlYXJhbmNlKGUpLHRoaXMuc2V0T3B0aW9uYWxDb250ZW50KGUpO2NvbnN0IHI9ZS5nZXQoIk1LIik7dGhpcy5zZXRCb3JkZXJBbmRCYWNrZ3JvdW5kQ29sb3JzKHIpLHRoaXMuc2V0Um90YXRpb24ocixlKSx0aGlzLnJlZj1BLnJlZiBpbnN0YW5jZW9mIEVBP0EucmVmOm51bGwsdGhpcy5fc3RyZWFtcz1bXSx0aGlzLmFwcGVhcmFuY2UmJnRoaXMuX3N0cmVhbXMucHVzaCh0aGlzLmFwcGVhcmFuY2UpO2NvbnN0IGc9ISEoMTI4JnRoaXMuZmxhZ3MpLG89ISEoNTEyJnRoaXMuZmxhZ3MpO2lmKHRoaXMuZGF0YT17YW5ub3RhdGlvbkZsYWdzOnRoaXMuZmxhZ3MsYm9yZGVyU3R5bGU6dGhpcy5ib3JkZXJTdHlsZSxjb2xvcjp0aGlzLmNvbG9yLGJhY2tncm91bmRDb2xvcjp0aGlzLmJhY2tncm91bmRDb2xvcixib3JkZXJDb2xvcjp0aGlzLmJvcmRlckNvbG9yLHJvdGF0aW9uOnRoaXMucm90YXRpb24sY29udGVudHNPYmo6dGhpcy5fY29udGVudHMsaGFzQXBwZWFyYW5jZTohIXRoaXMuYXBwZWFyYW5jZSxpZDpBLmlkLG1vZGlmaWNhdGlvbkRhdGU6dGhpcy5tb2RpZmljYXRpb25EYXRlLHJlY3Q6dGhpcy5yZWN0YW5nbGUsc3VidHlwZTpBLnN1YnR5cGUsaGFzT3duQ2FudmFzOiExLG5vUm90YXRlOiEhKDE2JnRoaXMuZmxhZ3MpLG5vSFRNTDpnJiZvLGlzRWRpdGFibGU6ITEsc3RydWN0UGFyZW50Oi0xfSxpLnN0cnVjdFRyZWVSb290KXtsZXQgdD1lLmdldCgiU3RydWN0UGFyZW50Iik7dGhpcy5kYXRhLnN0cnVjdFBhcmVudD10PU51bWJlci5pc0ludGVnZXIodCkmJnQ+PTA/dDotMSxpLnN0cnVjdFRyZWVSb290LmFkZEFubm90YXRpb25JZFRvUGFnZShBLnBhZ2VSZWYsdCl9aWYoQS5jb2xsZWN0RmllbGRzKXtjb25zdCBpPWUuZ2V0KCJLaWRzIik7aWYoQXJyYXkuaXNBcnJheShpKSl7Y29uc3QgQT1bXTtmb3IoY29uc3QgZSBvZiBpKWUgaW5zdGFuY2VvZiBFQSYmQS5wdXNoKGUudG9TdHJpbmcoKSk7MCE9PUEubGVuZ3RoJiYodGhpcy5kYXRhLmtpZElkcz1BKX10aGlzLmRhdGEuYWN0aW9ucz1qQSh0LGUsbCksdGhpcy5kYXRhLmZpZWxkTmFtZT10aGlzLl9jb25zdHJ1Y3RGaWVsZE5hbWUoZSksdGhpcy5kYXRhLnBhZ2VJbmRleD1BLnBhZ2VJbmRleH1jb25zdCBJPWUuZ2V0KCJJVCIpO0kgaW5zdGFuY2VvZiBDQSYmKHRoaXMuZGF0YS5pdD1JLm5hbWUpLHRoaXMuX2lzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkPUEuZXZhbHVhdG9yT3B0aW9ucy5pc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZCx0aGlzLl9mYWxsYmFja0ZvbnREaWN0PW51bGwsdGhpcy5fbmVlZEFwcGVhcmFuY2VzPSExfV9oYXNGbGFnKEEsZSl7cmV0dXJuISEoQSZlKX1fYnVpbGRGbGFncyhBLGUpe2xldHtmbGFnczp0fT10aGlzO2lmKHZvaWQgMD09PUEpe2lmKHZvaWQgMD09PWUpcmV0dXJuO3JldHVybiBlPy01JnQ6LTMmdHw0fXJldHVybiBBPyh0fD00LGU/LTMzJnR8MjotMyZ0fGgpOih0Jj0tMzUsZT8tNSZ0OjR8dCl9X2lzVmlld2FibGUoQSl7cmV0dXJuIXRoaXMuX2hhc0ZsYWcoQSwxKSYmIXRoaXMuX2hhc0ZsYWcoQSxoKX1faXNQcmludGFibGUoQSl7cmV0dXJuIHRoaXMuX2hhc0ZsYWcoQSw0KSYmIXRoaXMuX2hhc0ZsYWcoQSwyKSYmIXRoaXMuX2hhc0ZsYWcoQSwxKX1tdXN0QmVWaWV3ZWQoQSxlKXtjb25zdCB0PUE/LmdldCh0aGlzLmRhdGEuaWQpPy5ub1ZpZXc7cmV0dXJuIHZvaWQgMCE9PXQ/IXQ6dGhpcy52aWV3YWJsZSYmIXRoaXMuX2hhc0ZsYWcodGhpcy5mbGFncywyKX1tdXN0QmVQcmludGVkKEEpe2NvbnN0IGU9QT8uZ2V0KHRoaXMuZGF0YS5pZCk/Lm5vUHJpbnQ7cmV0dXJuIHZvaWQgMCE9PWU/IWU6dGhpcy5wcmludGFibGV9bXVzdEJlVmlld2VkV2hlbkVkaXRpbmcoQSxlPW51bGwpe3JldHVybiBBPyF0aGlzLmRhdGEuaXNFZGl0YWJsZTohZT8uaGFzKHRoaXMuZGF0YS5pZCl9Z2V0IHZpZXdhYmxlKCl7cmV0dXJuIG51bGwhPT10aGlzLmRhdGEucXVhZFBvaW50cyYmKDA9PT10aGlzLmZsYWdzfHx0aGlzLl9pc1ZpZXdhYmxlKHRoaXMuZmxhZ3MpKX1nZXQgcHJpbnRhYmxlKCl7cmV0dXJuIG51bGwhPT10aGlzLmRhdGEucXVhZFBvaW50cyYmMCE9PXRoaXMuZmxhZ3MmJnRoaXMuX2lzUHJpbnRhYmxlKHRoaXMuZmxhZ3MpfV9wYXJzZVN0cmluZ0hlbHBlcihBKXtjb25zdCBlPSJzdHJpbmciPT10eXBlb2YgQT9lQShBKToiIjtyZXR1cm57c3RyOmUsZGlyOmUmJiJydGwiPT09WXIoZSkuZGlyPyJydGwiOiJsdHIifX1zZXREZWZhdWx0QXBwZWFyYW5jZShBKXtjb25zdHtkaWN0OmUsYW5ub3RhdGlvbkdsb2JhbHM6dH09QSxpPU5BKHtkaWN0OmUsa2V5OiJEQSJ9KXx8dC5hY3JvRm9ybS5nZXQoIkRBIik7dGhpcy5fZGVmYXVsdEFwcGVhcmFuY2U9InN0cmluZyI9PXR5cGVvZiBpP2k6IiIsdGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YT1mZyh0aGlzLl9kZWZhdWx0QXBwZWFyYW5jZSl9c2V0VGl0bGUoQSl7dGhpcy5fdGl0bGU9dGhpcy5fcGFyc2VTdHJpbmdIZWxwZXIoQSl9c2V0Q29udGVudHMoQSl7dGhpcy5fY29udGVudHM9dGhpcy5fcGFyc2VTdHJpbmdIZWxwZXIoQSl9c2V0TW9kaWZpY2F0aW9uRGF0ZShBKXt0aGlzLm1vZGlmaWNhdGlvbkRhdGU9InN0cmluZyI9PXR5cGVvZiBBP0E6bnVsbH1zZXRGbGFncyhBKXt0aGlzLmZsYWdzPU51bWJlci5pc0ludGVnZXIoQSkmJkE+MD9BOjAsMSZ0aGlzLmZsYWdzJiYiQW5ub3RhdGlvbiIhPT10aGlzLmNvbnN0cnVjdG9yLm5hbWUmJih0aGlzLmZsYWdzXj0xKX1oYXNGbGFnKEEpe3JldHVybiB0aGlzLl9oYXNGbGFnKHRoaXMuZmxhZ3MsQSl9c2V0UmVjdGFuZ2xlKEEpe3RoaXMucmVjdGFuZ2xlPVRBKEEsWzAsMCwwLDBdKX1zZXRDb2xvcihBKXt0aGlzLmNvbG9yPUp1KEEpfXNldExpbmVFbmRpbmdzKEEpe2lmKHRoaXMubGluZUVuZGluZ3M9WyJOb25lIiwiTm9uZSJdLEFycmF5LmlzQXJyYXkoQSkmJjI9PT1BLmxlbmd0aClmb3IobGV0IGU9MDtlPDI7ZSsrKXtjb25zdCB0PUFbZV07aWYodCBpbnN0YW5jZW9mIENBKXN3aXRjaCh0Lm5hbWUpe2Nhc2UiTm9uZSI6Y29udGludWU7Y2FzZSJTcXVhcmUiOmNhc2UiQ2lyY2xlIjpjYXNlIkRpYW1vbmQiOmNhc2UiT3BlbkFycm93IjpjYXNlIkNsb3NlZEFycm93IjpjYXNlIkJ1dHQiOmNhc2UiUk9wZW5BcnJvdyI6Y2FzZSJSQ2xvc2VkQXJyb3ciOmNhc2UiU2xhc2giOnRoaXMubGluZUVuZGluZ3NbZV09dC5uYW1lO2NvbnRpbnVlfVUoYElnbm9yaW5nIGludmFsaWQgbGluZUVuZGluZzogJHt0fWApfX1zZXRSb3RhdGlvbihBLGUpe3RoaXMucm90YXRpb249MDtsZXQgdD1BIGluc3RhbmNlb2YgUUE/QS5nZXQoIlIiKXx8MDplLmdldCgiUm90YXRlIil8fDA7TnVtYmVyLmlzSW50ZWdlcih0KSYmMCE9PXQmJih0JT0zNjAsdDwwJiYodCs9MzYwKSx0JTkwPT0wJiYodGhpcy5yb3RhdGlvbj10KSl9c2V0Qm9yZGVyQW5kQmFja2dyb3VuZENvbG9ycyhBKXtBIGluc3RhbmNlb2YgUUE/KHRoaXMuYm9yZGVyQ29sb3I9SnUoQS5nZXRBcnJheSgiQkMiKSxudWxsKSx0aGlzLmJhY2tncm91bmRDb2xvcj1KdShBLmdldEFycmF5KCJCRyIpLG51bGwpKTp0aGlzLmJvcmRlckNvbG9yPXRoaXMuYmFja2dyb3VuZENvbG9yPW51bGx9c2V0Qm9yZGVyU3R5bGUoQSl7aWYodGhpcy5ib3JkZXJTdHlsZT1uZXcgcXUsQSBpbnN0YW5jZW9mIFFBKWlmKEEuaGFzKCJCUyIpKXtjb25zdCBlPUEuZ2V0KCJCUyIpO2lmKGUgaW5zdGFuY2VvZiBRQSl7Y29uc3QgQT1lLmdldCgiVHlwZSIpO0EmJiFmQShBLCJCb3JkZXIiKXx8KHRoaXMuYm9yZGVyU3R5bGUuc2V0V2lkdGgoZS5nZXQoIlciKSx0aGlzLnJlY3RhbmdsZSksdGhpcy5ib3JkZXJTdHlsZS5zZXRTdHlsZShlLmdldCgiUyIpKSx0aGlzLmJvcmRlclN0eWxlLnNldERhc2hBcnJheShlLmdldEFycmF5KCJEIikpKX19ZWxzZSBpZihBLmhhcygiQm9yZGVyIikpe2NvbnN0IGU9QS5nZXRBcnJheSgiQm9yZGVyIik7QXJyYXkuaXNBcnJheShlKSYmZS5sZW5ndGg+PTMmJih0aGlzLmJvcmRlclN0eWxlLnNldEhvcml6b250YWxDb3JuZXJSYWRpdXMoZVswXSksdGhpcy5ib3JkZXJTdHlsZS5zZXRWZXJ0aWNhbENvcm5lclJhZGl1cyhlWzFdKSx0aGlzLmJvcmRlclN0eWxlLnNldFdpZHRoKGVbMl0sdGhpcy5yZWN0YW5nbGUpLDQ9PT1lLmxlbmd0aCYmdGhpcy5ib3JkZXJTdHlsZS5zZXREYXNoQXJyYXkoZVszXSwhMCkpfWVsc2UgdGhpcy5ib3JkZXJTdHlsZS5zZXRXaWR0aCgwKX1zZXRBcHBlYXJhbmNlKEEpe3RoaXMuYXBwZWFyYW5jZT1udWxsO2NvbnN0IGU9QS5nZXQoIkFQIik7aWYoIShlIGluc3RhbmNlb2YgUUEpKXJldHVybjtjb25zdCB0PWUuZ2V0KCJOIik7aWYodCBpbnN0YW5jZW9mIHdBKXJldHVybiB2b2lkKHRoaXMuYXBwZWFyYW5jZT10KTtpZighKHQgaW5zdGFuY2VvZiBRQSkpcmV0dXJuO2NvbnN0IGk9QS5nZXQoIkFTIik7aWYoIShpIGluc3RhbmNlb2YgQ0EmJnQuaGFzKGkubmFtZSkpKXJldHVybjtjb25zdCBhPXQuZ2V0KGkubmFtZSk7YSBpbnN0YW5jZW9mIHdBJiYodGhpcy5hcHBlYXJhbmNlPWEpfXNldE9wdGlvbmFsQ29udGVudChBKXt0aGlzLm9jPW51bGw7Y29uc3QgZT1BLmdldCgiT0MiKTtlIGluc3RhbmNlb2YgQ0E/VSgic2V0T3B0aW9uYWxDb250ZW50OiBTdXBwb3J0IGZvciAvTmFtZS1lbnRyeSBpcyBub3QgaW1wbGVtZW50ZWQuIik6ZSBpbnN0YW5jZW9mIFFBJiYodGhpcy5vYz1lKX1sb2FkUmVzb3VyY2VzKEEsZSl7cmV0dXJuIGUuZGljdC5nZXRBc3luYygiUmVzb3VyY2VzIikudGhlbigoZT0+e2lmKGUpcmV0dXJuIG5ldyBCbyhlLEEsZS54cmVmKS5sb2FkKCkudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gZX0pKX0pKX1hc3luYyBnZXRPcGVyYXRvckxpc3QoQSxlLHQsaSl7Y29uc3R7aGFzT3duQ2FudmFzOmEsaWQ6bixyZWN0OnJ9PXRoaXMuZGF0YTtsZXQgZz10aGlzLmFwcGVhcmFuY2U7Y29uc3Qgbz0hIShhJiYyJnQpO2lmKG8mJihyWzBdPT09clsyXXx8clsxXT09PXJbM10pKXJldHVybiB0aGlzLmRhdGEuaGFzT3duQ2FudmFzPSExLHtvcExpc3Q6bmV3IGFnLHNlcGFyYXRlRm9ybTohMSxzZXBhcmF0ZUNhbnZhczohMX07aWYoIWcpe2lmKCFvKXJldHVybntvcExpc3Q6bmV3IGFnLHNlcGFyYXRlRm9ybTohMSxzZXBhcmF0ZUNhbnZhczohMX07Zz1uZXcgb2UoIiIpLGcuZGljdD1uZXcgUUF9Y29uc3QgST1nLmRpY3QsYz1hd2FpdCB0aGlzLmxvYWRSZXNvdXJjZXMoWyJFeHRHU3RhdGUiLCJDb2xvclNwYWNlIiwiUGF0dGVybiIsIlNoYWRpbmciLCJYT2JqZWN0IiwiRm9udCJdLGcpLGg9cUEoSS5nZXRBcnJheSgiQkJveCIpLFswLDAsMSwxXSksQz1LQShJLmdldEFycmF5KCJNYXRyaXgiKSxzKSxCPXZ1KHIsaCxDKSxsPW5ldyBhZztsZXQgUTtyZXR1cm4gdGhpcy5vYyYmKFE9YXdhaXQgQS5wYXJzZU1hcmtlZENvbnRlbnRQcm9wcyh0aGlzLm9jLG51bGwpKSx2b2lkIDAhPT1RJiZsLmFkZE9wKGssWyJPQyIsUV0pLGwuYWRkT3AoODAsW24scixCLEMsb10pLGF3YWl0IEEuZ2V0T3BlcmF0b3JMaXN0KHtzdHJlYW06Zyx0YXNrOmUscmVzb3VyY2VzOmMsb3BlcmF0b3JMaXN0OmwsZmFsbGJhY2tGb250RGljdDp0aGlzLl9mYWxsYmFja0ZvbnREaWN0fSksbC5hZGRPcCg4MSxbXSksdm9pZCAwIT09USYmbC5hZGRPcChGLFtdKSx0aGlzLnJlc2V0KCkse29wTGlzdDpsLHNlcGFyYXRlRm9ybTohMSxzZXBhcmF0ZUNhbnZhczpvfX1hc3luYyBzYXZlKEEsZSx0KXtyZXR1cm4gbnVsbH1nZXQgaGFzVGV4dENvbnRlbnQoKXtyZXR1cm4hMX1hc3luYyBleHRyYWN0VGV4dENvbnRlbnQoQSxlLHQpe2lmKCF0aGlzLmFwcGVhcmFuY2UpcmV0dXJuO2NvbnN0IGk9YXdhaXQgdGhpcy5sb2FkUmVzb3VyY2VzKFsiRXh0R1N0YXRlIiwiRm9udCIsIlByb3BlcnRpZXMiLCJYT2JqZWN0Il0sdGhpcy5hcHBlYXJhbmNlKSxhPVtdLHM9W107bGV0IG49bnVsbDtjb25zdCByPXtkZXNpcmVkU2l6ZTpNYXRoLkluZmluaXR5LHJlYWR5OiEwLGVucXVldWUoQSxlKXtmb3IoY29uc3QgZSBvZiBBLml0ZW1zKXZvaWQgMCE9PWUuc3RyJiYobnx8PWUudHJhbnNmb3JtLnNsaWNlKC0yKSxzLnB1c2goZS5zdHIpLGUuaGFzRU9MJiYoYS5wdXNoKHMuam9pbigiIikudHJpbUVuZCgpKSxzLmxlbmd0aD0wKSl9fTtpZihhd2FpdCBBLmdldFRleHRDb250ZW50KHtzdHJlYW06dGhpcy5hcHBlYXJhbmNlLHRhc2s6ZSxyZXNvdXJjZXM6aSxpbmNsdWRlTWFya2VkQ29udGVudDohMCxrZWVwV2hpdGVTcGFjZTohMCxzaW5rOnIsdmlld0JveDp0fSksdGhpcy5yZXNldCgpLHMubGVuZ3RoJiZhLnB1c2gocy5qb2luKCIiKS50cmltRW5kKCkpLGEubGVuZ3RoPjF8fGFbMF0pe2NvbnN0IEE9dGhpcy5hcHBlYXJhbmNlLmRpY3QsZT1xQShBLmdldEFycmF5KCJCQm94IiksbnVsbCksdD1LQShBLmdldEFycmF5KCJNYXRyaXgiKSxudWxsKTt0aGlzLmRhdGEudGV4dFBvc2l0aW9uPXRoaXMuX3RyYW5zZm9ybVBvaW50KG4sZSx0KSx0aGlzLmRhdGEudGV4dENvbnRlbnQ9YX19X3RyYW5zZm9ybVBvaW50KEEsZSx0KXtjb25zdHtyZWN0Oml9PXRoaXMuZGF0YTtlfHw9WzAsMCwxLDFdLHR8fD1bMSwwLDAsMSwwLDBdO2NvbnN0IGE9dnUoaSxlLHQpO3JldHVybiBhWzRdLT1pWzBdLGFbNV0tPWlbMV0sQT0kLmFwcGx5VHJhbnNmb3JtKEEsYSksJC5hcHBseVRyYW5zZm9ybShBLHQpfWdldEZpZWxkT2JqZWN0KCl7cmV0dXJuIHRoaXMuZGF0YS5raWRJZHM/e2lkOnRoaXMuZGF0YS5pZCxhY3Rpb25zOnRoaXMuZGF0YS5hY3Rpb25zLG5hbWU6dGhpcy5kYXRhLmZpZWxkTmFtZSxzdHJva2VDb2xvcjp0aGlzLmRhdGEuYm9yZGVyQ29sb3IsZmlsbENvbG9yOnRoaXMuZGF0YS5iYWNrZ3JvdW5kQ29sb3IsdHlwZToiIixraWRJZHM6dGhpcy5kYXRhLmtpZElkcyxwYWdlOnRoaXMuZGF0YS5wYWdlSW5kZXgscm90YXRpb246dGhpcy5yb3RhdGlvbn06bnVsbH1yZXNldCgpe2Zvcihjb25zdCBBIG9mIHRoaXMuX3N0cmVhbXMpQS5yZXNldCgpfV9jb25zdHJ1Y3RGaWVsZE5hbWUoQSl7aWYoIUEuaGFzKCJUIikmJiFBLmhhcygiUGFyZW50IikpcmV0dXJuIFUoIlVua25vd24gZmllbGQgbmFtZSwgZmFsbGluZyBiYWNrIHRvIGVtcHR5IGZpZWxkIG5hbWUuIiksIiI7aWYoIUEuaGFzKCJQYXJlbnQiKSlyZXR1cm4gZUEoQS5nZXQoIlQiKSk7Y29uc3QgZT1bXTtBLmhhcygiVCIpJiZlLnVuc2hpZnQoZUEoQS5nZXQoIlQiKSkpO2xldCB0PUE7Y29uc3QgaT1uZXcgdUE7Zm9yKEEub2JqSWQmJmkucHV0KEEub2JqSWQpO3QuaGFzKCJQYXJlbnQiKSYmKHQ9dC5nZXQoIlBhcmVudCIpLHQgaW5zdGFuY2VvZiBRQSYmKCF0Lm9iaklkfHwhaS5oYXModC5vYmpJZCkpKTspdC5vYmpJZCYmaS5wdXQodC5vYmpJZCksdC5oYXMoIlQiKSYmZS51bnNoaWZ0KGVBKHQuZ2V0KCJUIikpKTtyZXR1cm4gZS5qb2luKCIuIil9fWNsYXNzIHF1e2NvbnN0cnVjdG9yKCl7dGhpcy53aWR0aD0xLHRoaXMucmF3V2lkdGg9MSx0aGlzLnN0eWxlPTEsdGhpcy5kYXNoQXJyYXk9WzNdLHRoaXMuaG9yaXpvbnRhbENvcm5lclJhZGl1cz0wLHRoaXMudmVydGljYWxDb3JuZXJSYWRpdXM9MH1zZXRXaWR0aChBLGU9WzAsMCwwLDBdKXtpZihBIGluc3RhbmNlb2YgQ0EpdGhpcy53aWR0aD0wO2Vsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBBKXtpZihBPjApe3RoaXMucmF3V2lkdGg9QTtjb25zdCB0PShlWzJdLWVbMF0pLzIsaT0oZVszXS1lWzFdKS8yO3Q+MCYmaT4wJiYoQT50fHxBPmkpJiYoVShgQW5ub3RhdGlvbkJvcmRlclN0eWxlLnNldFdpZHRoIC0gaWdub3Jpbmcgd2lkdGg6ICR7QX1gKSxBPTEpfXRoaXMud2lkdGg9QX19c2V0U3R5bGUoQSl7aWYoQSBpbnN0YW5jZW9mIENBKXN3aXRjaChBLm5hbWUpe2Nhc2UiUyI6dGhpcy5zdHlsZT0xO2JyZWFrO2Nhc2UiRCI6dGhpcy5zdHlsZT0yO2JyZWFrO2Nhc2UiQiI6dGhpcy5zdHlsZT0zO2JyZWFrO2Nhc2UiSSI6dGhpcy5zdHlsZT00O2JyZWFrO2Nhc2UiVSI6dGhpcy5zdHlsZT01fX1zZXREYXNoQXJyYXkoQSxlPSExKXtpZihBcnJheS5pc0FycmF5KEEpKXtsZXQgdD0hMCxpPSEwO2Zvcihjb25zdCBlIG9mIEEpe2lmKCEoK2U+PTApKXt0PSExO2JyZWFrfWU+MCYmKGk9ITEpfTA9PT1BLmxlbmd0aHx8dCYmIWk/KHRoaXMuZGFzaEFycmF5PUEsZSYmdGhpcy5zZXRTdHlsZShDQS5nZXQoIkQiKSkpOnRoaXMud2lkdGg9MH1lbHNlIEEmJih0aGlzLndpZHRoPTApfXNldEhvcml6b250YWxDb3JuZXJSYWRpdXMoQSl7TnVtYmVyLmlzSW50ZWdlcihBKSYmKHRoaXMuaG9yaXpvbnRhbENvcm5lclJhZGl1cz1BKX1zZXRWZXJ0aWNhbENvcm5lclJhZGl1cyhBKXtOdW1iZXIuaXNJbnRlZ2VyKEEpJiYodGhpcy52ZXJ0aWNhbENvcm5lclJhZGl1cz1BKX19Y2xhc3MgVHUgZXh0ZW5kcyBLdXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBKTtjb25zdHtkaWN0OmV9PUE7aWYoZS5oYXMoIklSVCIpKXtjb25zdCBBPWUuZ2V0UmF3KCJJUlQiKTt0aGlzLmRhdGEuaW5SZXBseVRvPUEgaW5zdGFuY2VvZiBFQT9BLnRvU3RyaW5nKCk6bnVsbDtjb25zdCB0PWUuZ2V0KCJSVCIpO3RoaXMuZGF0YS5yZXBseVR5cGU9dCBpbnN0YW5jZW9mIENBP3QubmFtZToiUiJ9bGV0IHQ9bnVsbDtpZih0aGlzLmRhdGEucmVwbHlUeXBlPT09Yyl7Y29uc3QgQT1lLmdldCgiSVJUIik7dGhpcy5zZXRUaXRsZShBLmdldCgiVCIpKSx0aGlzLmRhdGEudGl0bGVPYmo9dGhpcy5fdGl0bGUsdGhpcy5zZXRDb250ZW50cyhBLmdldCgiQ29udGVudHMiKSksdGhpcy5kYXRhLmNvbnRlbnRzT2JqPXRoaXMuX2NvbnRlbnRzLEEuaGFzKCJDcmVhdGlvbkRhdGUiKT8odGhpcy5zZXRDcmVhdGlvbkRhdGUoQS5nZXQoIkNyZWF0aW9uRGF0ZSIpKSx0aGlzLmRhdGEuY3JlYXRpb25EYXRlPXRoaXMuY3JlYXRpb25EYXRlKTp0aGlzLmRhdGEuY3JlYXRpb25EYXRlPW51bGwsQS5oYXMoIk0iKT8odGhpcy5zZXRNb2RpZmljYXRpb25EYXRlKEEuZ2V0KCJNIikpLHRoaXMuZGF0YS5tb2RpZmljYXRpb25EYXRlPXRoaXMubW9kaWZpY2F0aW9uRGF0ZSk6dGhpcy5kYXRhLm1vZGlmaWNhdGlvbkRhdGU9bnVsbCx0PUEuZ2V0UmF3KCJQb3B1cCIpLEEuaGFzKCJDIik/KHRoaXMuc2V0Q29sb3IoQS5nZXRBcnJheSgiQyIpKSx0aGlzLmRhdGEuY29sb3I9dGhpcy5jb2xvcik6dGhpcy5kYXRhLmNvbG9yPW51bGx9ZWxzZSB0aGlzLmRhdGEudGl0bGVPYmo9dGhpcy5fdGl0bGUsdGhpcy5zZXRDcmVhdGlvbkRhdGUoZS5nZXQoIkNyZWF0aW9uRGF0ZSIpKSx0aGlzLmRhdGEuY3JlYXRpb25EYXRlPXRoaXMuY3JlYXRpb25EYXRlLHQ9ZS5nZXRSYXcoIlBvcHVwIiksZS5oYXMoIkMiKXx8KHRoaXMuZGF0YS5jb2xvcj1udWxsKTt0aGlzLmRhdGEucG9wdXBSZWY9dCBpbnN0YW5jZW9mIEVBP3QudG9TdHJpbmcoKTpudWxsLGUuaGFzKCJSQyIpJiYodGhpcy5kYXRhLnJpY2hUZXh0PU11LmdldFJpY2hUZXh0QXNIdG1sKGUuZ2V0KCJSQyIpKSl9c2V0Q3JlYXRpb25EYXRlKEEpe3RoaXMuY3JlYXRpb25EYXRlPSJzdHJpbmciPT10eXBlb2YgQT9BOm51bGx9X3NldERlZmF1bHRBcHBlYXJhbmNlKHt4cmVmOkEsZXh0cmE6ZSxzdHJva2VDb2xvcjp0LGZpbGxDb2xvcjppLGJsZW5kTW9kZTphLHN0cm9rZUFscGhhOnMsZmlsbEFscGhhOm4scG9pbnRzQ2FsbGJhY2s6cn0pe2xldCBnPU51bWJlci5NQVhfVkFMVUUsbz1OdW1iZXIuTUFYX1ZBTFVFLEk9TnVtYmVyLk1JTl9WQUxVRSxjPU51bWJlci5NSU5fVkFMVUU7Y29uc3QgaD1bInEiXTtlJiZoLnB1c2goZSksdCYmaC5wdXNoKGAke3RbMF19ICR7dFsxXX0gJHt0WzJdfSBSR2ApLGkmJmgucHVzaChgJHtpWzBdfSAke2lbMV19ICR7aVsyXX0gcmdgKTtsZXQgQz10aGlzLmRhdGEucXVhZFBvaW50cztDfHwoQz1GbG9hdDMyQXJyYXkuZnJvbShbdGhpcy5yZWN0YW5nbGVbMF0sdGhpcy5yZWN0YW5nbGVbM10sdGhpcy5yZWN0YW5nbGVbMl0sdGhpcy5yZWN0YW5nbGVbM10sdGhpcy5yZWN0YW5nbGVbMF0sdGhpcy5yZWN0YW5nbGVbMV0sdGhpcy5yZWN0YW5nbGVbMl0sdGhpcy5yZWN0YW5nbGVbMV1dKSk7Zm9yKGxldCBBPTAsZT1DLmxlbmd0aDtBPGU7QSs9OCl7Y29uc3RbZSx0LGksYV09cihoLEMuc3ViYXJyYXkoQSxBKzgpKTtnPU1hdGgubWluKGcsZSksST1NYXRoLm1heChJLHQpLG89TWF0aC5taW4obyxpKSxjPU1hdGgubWF4KGMsYSl9aC5wdXNoKCJRIik7Y29uc3QgQj1uZXcgUUEoQSksbD1uZXcgUUEoQSk7bC5zZXQoIlN1YnR5cGUiLENBLmdldCgiRm9ybSIpKTtjb25zdCBRPW5ldyBvZShoLmpvaW4oIiAiKSk7US5kaWN0PWwsQi5zZXQoIkZtMCIsUSk7Y29uc3QgRT1uZXcgUUEoQSk7YSYmRS5zZXQoIkJNIixDQS5nZXQoYSkpLCJudW1iZXIiPT10eXBlb2YgcyYmRS5zZXQoIkNBIixzKSwibnVtYmVyIj09dHlwZW9mIG4mJkUuc2V0KCJjYSIsbik7Y29uc3QgdT1uZXcgUUEoQSk7dS5zZXQoIkdTMCIsRSk7Y29uc3QgZD1uZXcgUUEoQSk7ZC5zZXQoIkV4dEdTdGF0ZSIsdSksZC5zZXQoIlhPYmplY3QiLEIpO2NvbnN0IGY9bmV3IFFBKEEpO2Yuc2V0KCJSZXNvdXJjZXMiLGQpO2NvbnN0IHA9dGhpcy5kYXRhLnJlY3Q9W2csbyxJLGNdO2Yuc2V0KCJCQm94IixwKSx0aGlzLmFwcGVhcmFuY2U9bmV3IG9lKCIvR1MwIGdzIC9GbTAgRG8iKSx0aGlzLmFwcGVhcmFuY2UuZGljdD1mLHRoaXMuX3N0cmVhbXMucHVzaCh0aGlzLmFwcGVhcmFuY2UsUSl9c3RhdGljIGFzeW5jIGNyZWF0ZU5ld0Fubm90YXRpb24oQSxlLHQsaSl7ZS5yZWZ8fChlLnJlZj1BLmdldE5ld1RlbXBvcmFyeVJlZigpKTtjb25zdCBhPWUucmVmLHM9YXdhaXQgdGhpcy5jcmVhdGVOZXdBcHBlYXJhbmNlU3RyZWFtKGUsQSxpKSxuPVtdO2xldCByO2lmKHMpe2NvbnN0IGk9QS5nZXROZXdUZW1wb3JhcnlSZWYoKTtyPXRoaXMuY3JlYXRlTmV3RGljdChlLEEse2FwUmVmOml9KSxhd2FpdCBYZyhpLHMsbixBKSx0LnB1c2goe3JlZjppLGRhdGE6bi5qb2luKCIiKX0pfWVsc2Ugcj10aGlzLmNyZWF0ZU5ld0RpY3QoZSxBLHt9KTtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihlLnBhcmVudFRyZWVJZCkmJnIuc2V0KCJTdHJ1Y3RQYXJlbnQiLGUucGFyZW50VHJlZUlkKSxuLmxlbmd0aD0wLGF3YWl0IFhnKGEscixuLEEpLHtyZWY6YSxkYXRhOm4uam9pbigiIil9fXN0YXRpYyBhc3luYyBjcmVhdGVOZXdQcmludEFubm90YXRpb24oQSxlLHQsaSl7Y29uc3QgYT1hd2FpdCB0aGlzLmNyZWF0ZU5ld0FwcGVhcmFuY2VTdHJlYW0odCxlLGkpLHM9dGhpcy5jcmVhdGVOZXdEaWN0KHQsZSxhP3thcDphfTp7fSksbj1uZXcgdGhpcy5wcm90b3R5cGUuY29uc3RydWN0b3Ioe2RpY3Q6cyx4cmVmOmUsYW5ub3RhdGlvbkdsb2JhbHM6QSxldmFsdWF0b3JPcHRpb25zOmkuZXZhbHVhdG9yT3B0aW9uc30pO3JldHVybiB0LnJlZiYmKG4ucmVmPW4ucmVmVG9SZXBsYWNlPXQucmVmKSxufX1jbGFzcyBQdSBleHRlbmRzIEt1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEpO2NvbnN0e2RpY3Q6ZSx4cmVmOnQsYW5ub3RhdGlvbkdsb2JhbHM6aX09QSxhPXRoaXMuZGF0YTt0aGlzLl9uZWVkQXBwZWFyYW5jZXM9QS5uZWVkQXBwZWFyYW5jZXMsYS5hbm5vdGF0aW9uVHlwZT0yMCx2b2lkIDA9PT1hLmZpZWxkTmFtZSYmKGEuZmllbGROYW1lPXRoaXMuX2NvbnN0cnVjdEZpZWxkTmFtZShlKSksdm9pZCAwPT09YS5hY3Rpb25zJiYoYS5hY3Rpb25zPWpBKHQsZSxsKSk7bGV0IHM9TkEoe2RpY3Q6ZSxrZXk6IlYiLGdldEFycmF5OiEwfSk7YS5maWVsZFZhbHVlPXRoaXMuX2RlY29kZUZvcm1WYWx1ZShzKTtjb25zdCBuPU5BKHtkaWN0OmUsa2V5OiJEViIsZ2V0QXJyYXk6ITB9KTtpZihhLmRlZmF1bHRGaWVsZFZhbHVlPXRoaXMuX2RlY29kZUZvcm1WYWx1ZShuKSx2b2lkIDA9PT1zJiZpLnhmYURhdGFzZXRzKXtjb25zdCBBPXRoaXMuX3RpdGxlLnN0cjtBJiYodGhpcy5faGFzVmFsdWVGcm9tWEZBPSEwLGEuZmllbGRWYWx1ZT1zPWkueGZhRGF0YXNldHMuZ2V0VmFsdWUoQSkpfXZvaWQgMD09PXMmJm51bGwhPT1hLmRlZmF1bHRGaWVsZFZhbHVlJiYoYS5maWVsZFZhbHVlPWEuZGVmYXVsdEZpZWxkVmFsdWUpLGEuYWx0ZXJuYXRpdmVUZXh0PWVBKGUuZ2V0KCJUVSIpfHwiIiksdGhpcy5zZXREZWZhdWx0QXBwZWFyYW5jZShBKSxhLmhhc0FwcGVhcmFuY2V8fD10aGlzLl9uZWVkQXBwZWFyYW5jZXMmJnZvaWQgMCE9PWEuZmllbGRWYWx1ZSYmbnVsbCE9PWEuZmllbGRWYWx1ZTtjb25zdCByPU5BKHtkaWN0OmUsa2V5OiJGVCJ9KTthLmZpZWxkVHlwZT1yIGluc3RhbmNlb2YgQ0E/ci5uYW1lOm51bGw7Y29uc3QgZz1OQSh7ZGljdDplLGtleToiRFIifSksbz1pLmFjcm9Gb3JtLmdldCgiRFIiKSxJPXRoaXMuYXBwZWFyYW5jZT8uZGljdC5nZXQoIlJlc291cmNlcyIpO3RoaXMuX2ZpZWxkUmVzb3VyY2VzPXtsb2NhbFJlc291cmNlczpnLGFjcm9Gb3JtUmVzb3VyY2VzOm8sYXBwZWFyYW5jZVJlc291cmNlczpJLG1lcmdlZFJlc291cmNlczpRQS5tZXJnZSh7eHJlZjp0LGRpY3RBcnJheTpbZyxJLG9dLG1lcmdlU3ViRGljdHM6ITB9KX0sYS5maWVsZEZsYWdzPU5BKHtkaWN0OmUsa2V5OiJGZiJ9KSwoIU51bWJlci5pc0ludGVnZXIoYS5maWVsZEZsYWdzKXx8YS5maWVsZEZsYWdzPDApJiYoYS5maWVsZEZsYWdzPTApLGEucmVhZE9ubHk9dGhpcy5oYXNGaWVsZEZsYWcoMSksYS5yZXF1aXJlZD10aGlzLmhhc0ZpZWxkRmxhZygyKSxhLmhpZGRlbj10aGlzLl9oYXNGbGFnKGEuYW5ub3RhdGlvbkZsYWdzLDIpfHx0aGlzLl9oYXNGbGFnKGEuYW5ub3RhdGlvbkZsYWdzLGgpfV9kZWNvZGVGb3JtVmFsdWUoQSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoQSk/QS5maWx0ZXIoKEE9PiJzdHJpbmciPT10eXBlb2YgQSkpLm1hcCgoQT0+ZUEoQSkpKTpBIGluc3RhbmNlb2YgQ0E/ZUEoQS5uYW1lKToic3RyaW5nIj09dHlwZW9mIEE/ZUEoQSk6bnVsbH1oYXNGaWVsZEZsYWcoQSl7cmV0dXJuISEodGhpcy5kYXRhLmZpZWxkRmxhZ3MmQSl9X2lzVmlld2FibGUoQSl7cmV0dXJuITB9bXVzdEJlVmlld2VkKEEsZSl7cmV0dXJuIGU/dGhpcy52aWV3YWJsZTpzdXBlci5tdXN0QmVWaWV3ZWQoQSxlKSYmIXRoaXMuX2hhc0ZsYWcodGhpcy5mbGFncyxoKX1nZXRSb3RhdGlvbk1hdHJpeChBKXtsZXQgZT1BPy5nZXQodGhpcy5kYXRhLmlkKT8ucm90YXRpb247cmV0dXJuIHZvaWQgMD09PWUmJihlPXRoaXMucm90YXRpb24pLDA9PT1lP3M6bmUoZSx0aGlzLmRhdGEucmVjdFsyXS10aGlzLmRhdGEucmVjdFswXSx0aGlzLmRhdGEucmVjdFszXS10aGlzLmRhdGEucmVjdFsxXSl9Z2V0Qm9yZGVyQW5kQmFja2dyb3VuZEFwcGVhcmFuY2VzKEEpe2xldCBlPUE/LmdldCh0aGlzLmRhdGEuaWQpPy5yb3RhdGlvbjtpZih2b2lkIDA9PT1lJiYoZT10aGlzLnJvdGF0aW9uKSwhdGhpcy5iYWNrZ3JvdW5kQ29sb3ImJiF0aGlzLmJvcmRlckNvbG9yKXJldHVybiIiO2NvbnN0IHQ9dGhpcy5kYXRhLnJlY3RbMl0tdGhpcy5kYXRhLnJlY3RbMF0saT10aGlzLmRhdGEucmVjdFszXS10aGlzLmRhdGEucmVjdFsxXSxhPTA9PT1lfHwxODA9PT1lP2AwIDAgJHt0fSAke2l9IHJlYDpgMCAwICR7aX0gJHt0fSByZWA7bGV0IHM9IiI7cmV0dXJuIHRoaXMuYmFja2dyb3VuZENvbG9yJiYocz1gJHttZyh0aGlzLmJhY2tncm91bmRDb2xvciwhMCl9ICR7YX0gZiBgKSx0aGlzLmJvcmRlckNvbG9yJiYocys9YCR7dGhpcy5ib3JkZXJTdHlsZS53aWR0aHx8MX0gdyAke21nKHRoaXMuYm9yZGVyQ29sb3IsITEpfSAke2F9IFMgYCksc31hc3luYyBnZXRPcGVyYXRvckxpc3QoQSxlLHQsaSl7aWYoMTYmdCYmISh0aGlzIGluc3RhbmNlb2YganUpJiYhdGhpcy5kYXRhLm5vSFRNTCYmIXRoaXMuZGF0YS5oYXNPd25DYW52YXMpcmV0dXJue29wTGlzdDpuZXcgYWcsc2VwYXJhdGVGb3JtOiEwLHNlcGFyYXRlQ2FudmFzOiExfTtpZighdGhpcy5faGFzVGV4dClyZXR1cm4gc3VwZXIuZ2V0T3BlcmF0b3JMaXN0KEEsZSx0LGkpO2NvbnN0IGE9YXdhaXQgdGhpcy5fZ2V0QXBwZWFyYW5jZShBLGUsdCxpKTtpZih0aGlzLmFwcGVhcmFuY2UmJm51bGw9PT1hKXJldHVybiBzdXBlci5nZXRPcGVyYXRvckxpc3QoQSxlLHQsaSk7Y29uc3Qgcz1uZXcgYWc7aWYoIXRoaXMuX2RlZmF1bHRBcHBlYXJhbmNlfHxudWxsPT09YSlyZXR1cm57b3BMaXN0OnMsc2VwYXJhdGVGb3JtOiExLHNlcGFyYXRlQ2FudmFzOiExfTtjb25zdCBuPSEhKHRoaXMuZGF0YS5oYXNPd25DYW52YXMmJjImdCkscj1bMCwwLHRoaXMuZGF0YS5yZWN0WzJdLXRoaXMuZGF0YS5yZWN0WzBdLHRoaXMuZGF0YS5yZWN0WzNdLXRoaXMuZGF0YS5yZWN0WzFdXSxnPXZ1KHRoaXMuZGF0YS5yZWN0LHIsWzEsMCwwLDEsMCwwXSk7bGV0IG87dGhpcy5vYyYmKG89YXdhaXQgQS5wYXJzZU1hcmtlZENvbnRlbnRQcm9wcyh0aGlzLm9jLG51bGwpKSx2b2lkIDAhPT1vJiZzLmFkZE9wKGssWyJPQyIsb10pLHMuYWRkT3AoODAsW3RoaXMuZGF0YS5pZCx0aGlzLmRhdGEucmVjdCxnLHRoaXMuZ2V0Um90YXRpb25NYXRyaXgoaSksbl0pO2NvbnN0IEk9bmV3IG9lKGEpO3JldHVybiBhd2FpdCBBLmdldE9wZXJhdG9yTGlzdCh7c3RyZWFtOkksdGFzazplLHJlc291cmNlczp0aGlzLl9maWVsZFJlc291cmNlcy5tZXJnZWRSZXNvdXJjZXMsb3BlcmF0b3JMaXN0OnN9KSxzLmFkZE9wKDgxLFtdKSx2b2lkIDAhPT1vJiZzLmFkZE9wKEYsW10pLHtvcExpc3Q6cyxzZXBhcmF0ZUZvcm06ITEsc2VwYXJhdGVDYW52YXM6bn19X2dldE1LRGljdChBKXtjb25zdCBlPW5ldyBRQShudWxsKTtyZXR1cm4gQSYmZS5zZXQoIlIiLEEpLHRoaXMuYm9yZGVyQ29sb3ImJmUuc2V0KCJCQyIsSHUodGhpcy5ib3JkZXJDb2xvcikpLHRoaXMuYmFja2dyb3VuZENvbG9yJiZlLnNldCgiQkciLEh1KHRoaXMuYmFja2dyb3VuZENvbG9yKSksZS5zaXplPjA/ZTpudWxsfWFtZW5kU2F2ZWREaWN0KEEsZSl7fWFzeW5jIHNhdmUoQSxlLHQpe2NvbnN0IGk9dD8uZ2V0KHRoaXMuZGF0YS5pZCksYT10aGlzLl9idWlsZEZsYWdzKGk/Lm5vVmlldyxpPy5ub1ByaW50KTtsZXQgbj1pPy52YWx1ZSxyPWk/LnJvdGF0aW9uO2lmKG49PT10aGlzLmRhdGEuZmllbGRWYWx1ZXx8dm9pZCAwPT09bil7aWYoIXRoaXMuX2hhc1ZhbHVlRnJvbVhGQSYmdm9pZCAwPT09ciYmdm9pZCAwPT09YSlyZXR1cm4gbnVsbDtufHw9dGhpcy5kYXRhLmZpZWxkVmFsdWV9aWYodm9pZCAwPT09ciYmIXRoaXMuX2hhc1ZhbHVlRnJvbVhGQSYmQXJyYXkuaXNBcnJheShuKSYmQXJyYXkuaXNBcnJheSh0aGlzLmRhdGEuZmllbGRWYWx1ZSkmJmFBKG4sdGhpcy5kYXRhLmZpZWxkVmFsdWUpJiZ2b2lkIDA9PT1hKXJldHVybiBudWxsO3ZvaWQgMD09PXImJihyPXRoaXMucm90YXRpb24pO2xldCBnPW51bGw7aWYoIXRoaXMuX25lZWRBcHBlYXJhbmNlcyYmKGc9YXdhaXQgdGhpcy5fZ2V0QXBwZWFyYW5jZShBLGUsOCx0KSxudWxsPT09ZyYmdm9pZCAwPT09YSkpcmV0dXJuIG51bGw7bGV0IG89ITE7Zz8ubmVlZEFwcGVhcmFuY2VzJiYobz0hMCxnPW51bGwpO2NvbnN0e3hyZWY6SX09QSxjPUkuZmV0Y2hJZlJlZih0aGlzLnJlZik7aWYoIShjIGluc3RhbmNlb2YgUUEpKXJldHVybiBudWxsO2NvbnN0IGg9bmV3IFFBKEkpO2Zvcihjb25zdCBBIG9mIGMuZ2V0S2V5cygpKSJBUCIhPT1BJiZoLnNldChBLGMuZ2V0UmF3KEEpKTtpZih2b2lkIDAhPT1hJiYoaC5zZXQoIkYiLGEpLG51bGw9PT1nJiYhbykpe2NvbnN0IEE9Yy5nZXRSYXcoIkFQIik7QSYmaC5zZXQoIkFQIixBKX1jb25zdCBDPXtwYXRoOnRoaXMuZGF0YS5maWVsZE5hbWUsdmFsdWU6bn07aC5zZXQoIlYiLEFycmF5LmlzQXJyYXkobik/bi5tYXAoaWUpOmllKG4pKSx0aGlzLmFtZW5kU2F2ZWREaWN0KHQsaCk7Y29uc3QgQj10aGlzLl9nZXRNS0RpY3Qocik7QiYmaC5zZXQoIk1LIixCKTtjb25zdCBsPVtdLFE9W3tyZWY6dGhpcy5yZWYsZGF0YToiIix4ZmE6QyxuZWVkQXBwZWFyYW5jZXM6b31dO2lmKG51bGwhPT1nKXtjb25zdCBBPUkuZ2V0TmV3VGVtcG9yYXJ5UmVmKCksZT1uZXcgUUEoSSk7aC5zZXQoIkFQIixlKSxlLnNldCgiTiIsQSk7Y29uc3QgaT10aGlzLl9nZXRTYXZlRmllbGRSZXNvdXJjZXMoSSksYT1uZXcgb2UoZyksbj1hLmRpY3Q9bmV3IFFBKEkpO24uc2V0KCJTdWJ0eXBlIixDQS5nZXQoIkZvcm0iKSksbi5zZXQoIlJlc291cmNlcyIsaSksbi5zZXQoIkJCb3giLFswLDAsdGhpcy5kYXRhLnJlY3RbMl0tdGhpcy5kYXRhLnJlY3RbMF0sdGhpcy5kYXRhLnJlY3RbM10tdGhpcy5kYXRhLnJlY3RbMV1dKTtjb25zdCByPXRoaXMuZ2V0Um90YXRpb25NYXRyaXgodCk7ciE9PXMmJm4uc2V0KCJNYXRyaXgiLHIpLGF3YWl0IFhnKEEsYSxsLEkpLFEucHVzaCh7cmVmOkEsZGF0YTpsLmpvaW4oIiIpLHhmYTpudWxsLG5lZWRBcHBlYXJhbmNlczohMX0pLGwubGVuZ3RoPTB9cmV0dXJuIGguc2V0KCJNIixgRDoke3NBKCl9YCksYXdhaXQgWGcodGhpcy5yZWYsaCxsLEkpLFFbMF0uZGF0YT1sLmpvaW4oIiIpLFF9YXN5bmMgX2dldEFwcGVhcmFuY2UoQSxlLHQsaSl7aWYodGhpcy5oYXNGaWVsZEZsYWcoQykpcmV0dXJuIG51bGw7Y29uc3QgYT1pPy5nZXQodGhpcy5kYXRhLmlkKTtsZXQgcyxuO2lmKGEmJihzPWEuZm9ybWF0dGVkVmFsdWV8fGEudmFsdWUsbj1hLnJvdGF0aW9uKSx2b2lkIDA9PT1uJiZ2b2lkIDA9PT1zJiYhdGhpcy5fbmVlZEFwcGVhcmFuY2VzJiYoIXRoaXMuX2hhc1ZhbHVlRnJvbVhGQXx8dGhpcy5hcHBlYXJhbmNlKSlyZXR1cm4gbnVsbDtjb25zdCByPXRoaXMuZ2V0Qm9yZGVyQW5kQmFja2dyb3VuZEFwcGVhcmFuY2VzKGkpO2lmKHZvaWQgMD09PXMmJihzPXRoaXMuZGF0YS5maWVsZFZhbHVlLCFzKSlyZXR1cm5gL1R4IEJNQyBxICR7cn1RIEVNQ2A7aWYoQXJyYXkuaXNBcnJheShzKSYmMT09PXMubGVuZ3RoJiYocz1zWzBdKSxMKCJzdHJpbmciPT10eXBlb2YgcywiRXhwZWN0ZWQgYHZhbHVlYCB0byBiZSBhIHN0cmluZy4iKSxzPXMudHJpbUVuZCgpLHRoaXMuZGF0YS5jb21ibyl7Y29uc3QgQT10aGlzLmRhdGEub3B0aW9ucy5maW5kKCgoe2V4cG9ydFZhbHVlOkF9KT0+cz09PUEpKTtzPUE/LmRpc3BsYXlWYWx1ZXx8c31pZigiIj09PXMpcmV0dXJuYC9UeCBCTUMgcSAke3J9USBFTUNgO3ZvaWQgMD09PW4mJihuPXRoaXMucm90YXRpb24pO2xldCBvLEk9LTE7dGhpcy5kYXRhLm11bHRpTGluZT8obz1zLnNwbGl0KC9cclxuP3xcbi8pLm1hcCgoQT0+QS5ub3JtYWxpemUoIk5GQyIpKSksST1vLmxlbmd0aCk6bz1bcy5yZXBsYWNlKC9cclxuP3xcbi8sIiIpLm5vcm1hbGl6ZSgiTkZDIildO2xldCBjPXRoaXMuZGF0YS5yZWN0WzNdLXRoaXMuZGF0YS5yZWN0WzFdLGg9dGhpcy5kYXRhLnJlY3RbMl0tdGhpcy5kYXRhLnJlY3RbMF07OTAhPT1uJiYyNzAhPT1ufHwoW2gsY109W2MsaF0pLHRoaXMuX2RlZmF1bHRBcHBlYXJhbmNlfHwodGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YT1mZyh0aGlzLl9kZWZhdWx0QXBwZWFyYW5jZT0iL0hlbHZldGljYSAwIFRmIDAgZyIpKTtsZXQgQixsLFEsRT1hd2FpdCBQdS5fZ2V0Rm9udERhdGEoQSxlLHRoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGEsdGhpcy5fZmllbGRSZXNvdXJjZXMubWVyZ2VkUmVzb3VyY2VzKTtjb25zdCB1PVtdO2xldCBkPSExO2Zvcihjb25zdCBBIG9mIG8pe2NvbnN0IGU9RS5lbmNvZGVTdHJpbmcoQSk7ZS5sZW5ndGg+MSYmKGQ9ITApLHUucHVzaChlLmpvaW4oIiIpKX1pZihkJiY4JnQpcmV0dXJue25lZWRBcHBlYXJhbmNlczohMH07aWYoZCYmdGhpcy5faXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQpe2NvbnN0IHQ9dGhpcy5kYXRhLmNvbWI/Im1vbm9zcGFjZSI6InNhbnMtc2VyaWYiLGk9bmV3IHlnKEEueHJlZix0KSxhPWkuY3JlYXRlRm9udFJlc291cmNlcyhvLmpvaW4oIiIpKSxuPWEuZ2V0UmF3KCJGb250Iik7aWYodGhpcy5fZmllbGRSZXNvdXJjZXMubWVyZ2VkUmVzb3VyY2VzLmhhcygiRm9udCIpKXtjb25zdCBBPXRoaXMuX2ZpZWxkUmVzb3VyY2VzLm1lcmdlZFJlc291cmNlcy5nZXQoIkZvbnQiKTtmb3IoY29uc3QgZSBvZiBuLmdldEtleXMoKSlBLnNldChlLG4uZ2V0UmF3KGUpKX1lbHNlIHRoaXMuX2ZpZWxkUmVzb3VyY2VzLm1lcmdlZFJlc291cmNlcy5zZXQoIkZvbnQiLG4pO2NvbnN0IHI9aS5mb250TmFtZS5uYW1lO0U9YXdhaXQgUHUuX2dldEZvbnREYXRhKEEsZSx7Zm9udE5hbWU6cixmb250U2l6ZTowfSxhKTtmb3IobGV0IEE9MCxlPXUubGVuZ3RoO0E8ZTtBKyspdVtBXT1zZShvW0FdKTtjb25zdCBnPU9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhKTt0aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhLmZvbnRTaXplPTAsdGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YS5mb250TmFtZT1yLFtCLGwsUV09dGhpcy5fY29tcHV0ZUZvbnRTaXplKGMtMixoLTQscyxFLEkpLHRoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGE9Z31lbHNlIHRoaXMuX2lzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkfHxVKCJfZ2V0QXBwZWFyYW5jZTogT2Zmc2NyZWVuQ2FudmFzIGlzIG5vdCBzdXBwb3J0ZWQsIGFubm90YXRpb24gbWF5IG5vdCByZW5kZXIgY29ycmVjdGx5LiIpLFtCLGwsUV09dGhpcy5fY29tcHV0ZUZvbnRTaXplKGMtMixoLTQscyxFLEkpO2xldCBmPUUuZGVzY2VudDtmPWlzTmFOKGYpP2cqUTpNYXRoLm1heChnKlEsTWF0aC5hYnMoZikqbCk7Y29uc3QgcD1NYXRoLm1pbihNYXRoLmZsb29yKChjLWwpLzIpLDEpLG09dGhpcy5kYXRhLnRleHRBbGlnbm1lbnQ7aWYodGhpcy5kYXRhLm11bHRpTGluZSlyZXR1cm4gdGhpcy5fZ2V0TXVsdGlsaW5lQXBwZWFyYW5jZShCLHUsRSxsLGgsYyxtLDIscCxmLFEsaSk7aWYodGhpcy5kYXRhLmNvbWIpcmV0dXJuIHRoaXMuX2dldENvbWJBcHBlYXJhbmNlKEIsRSx1WzBdLGwsaCxjLDIscCxmLFEsaSk7Y29uc3QgeT1wK2Y7cmV0dXJuIDA9PT1tfHxtPjI/YC9UeCBCTUMgcSAke3J9QlQgYCtCK2AgMSAwIDAgMSAke2VlKDIpfSAke2VlKHkpfSBUbSAoJHtPQSh1WzBdKX0pIFRqIEVUIFEgRU1DYDpgL1R4IEJNQyBxICR7cn1CVCBgK0IrYCAxIDAgMCAxIDAgMCBUbSAke3RoaXMuX3JlbmRlclRleHQodVswXSxFLGwsaCxtLHtzaGlmdDowfSwyLHkpfSBFVCBRIEVNQ2B9c3RhdGljIGFzeW5jIF9nZXRGb250RGF0YShBLGUsdCxpKXtjb25zdCBhPW5ldyBhZyxzPXtmb250Om51bGwsY2xvbmUoKXtyZXR1cm4gdGhpc319LHtmb250TmFtZTpuLGZvbnRTaXplOnJ9PXQ7cmV0dXJuIGF3YWl0IEEuaGFuZGxlU2V0Rm9udChpLFtuJiZDQS5nZXQobikscl0sbnVsbCxhLGUscyxudWxsKSxzLmZvbnR9X2dldFRleHRXaWR0aChBLGUpe3JldHVybiBlLmNoYXJzVG9HbHlwaHMoQSkucmVkdWNlKCgoQSxlKT0+QStlLndpZHRoKSwwKS8xZTN9X2NvbXB1dGVGb250U2l6ZShBLGUsdCxpLGEpe2xldHtmb250U2l6ZTpzfT10aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhLG49KHN8fDEyKSpyLGc9TWF0aC5yb3VuZChBL24pO2lmKCFzKXtjb25zdCBvPUE9Pk1hdGguZmxvb3IoMTAwKkEpLzEwMDtpZigtMT09PWEpe2NvbnN0IGE9dGhpcy5fZ2V0VGV4dFdpZHRoKHQsaSk7cz1vKE1hdGgubWluKEEvcixlL2EpKSxnPTF9ZWxzZXtjb25zdCBJPXQuc3BsaXQoL1xyXG4/fFxuLyksYz1bXTtmb3IoY29uc3QgQSBvZiBJKXtjb25zdCBlPWkuZW5jb2RlU3RyaW5nKEEpLmpvaW4oIiIpLHQ9aS5jaGFyc1RvR2x5cGhzKGUpLGE9aS5nZXRDaGFyUG9zaXRpb25zKGUpO2MucHVzaCh7bGluZTplLGdseXBoczp0LHBvc2l0aW9uczphfSl9Y29uc3QgaD10PT57bGV0IGE9MDtmb3IoY29uc3QgcyBvZiBjKWlmKGErPXRoaXMuX3NwbGl0TGluZShudWxsLGksdCxlLHMpLmxlbmd0aCp0LGE+QSlyZXR1cm4hMDtyZXR1cm4hMX07Zm9yKGc9TWF0aC5tYXgoZyxhKTtuPUEvZyxzPW8obi9yKSxoKHMpOylnKyt9Y29uc3R7Zm9udE5hbWU6SSxmb250Q29sb3I6Y309dGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YTt0aGlzLl9kZWZhdWx0QXBwZWFyYW5jZT1mdW5jdGlvbih7Zm9udFNpemU6QSxmb250TmFtZTplLGZvbnRDb2xvcjp0fSl7cmV0dXJuYC8ke1dBKGUpfSAke0F9IFRmICR7bWcodCwhMCl9YH0oe2ZvbnRTaXplOnMsZm9udE5hbWU6SSxmb250Q29sb3I6Y30pfXJldHVyblt0aGlzLl9kZWZhdWx0QXBwZWFyYW5jZSxzLEEvZ119X3JlbmRlclRleHQoQSxlLHQsaSxhLHMsbixyKXtsZXQgZztnPTE9PT1hPyhpLXRoaXMuX2dldFRleHRXaWR0aChBLGUpKnQpLzI6Mj09PWE/aS10aGlzLl9nZXRUZXh0V2lkdGgoQSxlKSp0LW46bjtjb25zdCBvPWVlKGctcy5zaGlmdCk7cmV0dXJuIHMuc2hpZnQ9ZyxgJHtvfSAke3I9ZWUocil9IFRkICgke09BKEEpfSkgVGpgfV9nZXRTYXZlRmllbGRSZXNvdXJjZXMoQSl7Y29uc3R7bG9jYWxSZXNvdXJjZXM6ZSxhcHBlYXJhbmNlUmVzb3VyY2VzOnQsYWNyb0Zvcm1SZXNvdXJjZXM6aX09dGhpcy5fZmllbGRSZXNvdXJjZXMsYT10aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhPy5mb250TmFtZTtpZighYSlyZXR1cm4gZXx8UUEuZW1wdHk7Zm9yKGNvbnN0IEEgb2ZbZSx0XSlpZihBIGluc3RhbmNlb2YgUUEpe2NvbnN0IGU9QS5nZXQoIkZvbnQiKTtpZihlIGluc3RhbmNlb2YgUUEmJmUuaGFzKGEpKXJldHVybiBBfWlmKGkgaW5zdGFuY2VvZiBRQSl7Y29uc3QgdD1pLmdldCgiRm9udCIpO2lmKHQgaW5zdGFuY2VvZiBRQSYmdC5oYXMoYSkpe2NvbnN0IGk9bmV3IFFBKEEpO2kuc2V0KGEsdC5nZXRSYXcoYSkpO2NvbnN0IHM9bmV3IFFBKEEpO3JldHVybiBzLnNldCgiRm9udCIsaSksUUEubWVyZ2Uoe3hyZWY6QSxkaWN0QXJyYXk6W3MsZV0sbWVyZ2VTdWJEaWN0czohMH0pfX1yZXR1cm4gZXx8UUEuZW1wdHl9Z2V0RmllbGRPYmplY3QoKXtyZXR1cm4gbnVsbH19Y2xhc3MgV3UgZXh0ZW5kcyBQdXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBKTtjb25zdHtkaWN0OmV9PUE7ZS5oYXMoIlBNRCIpJiYodGhpcy5mbGFnc3w9Mix0aGlzLmRhdGEuaGlkZGVuPSEwLFUoIkJhcmNvZGVzIGFyZSBub3Qgc3VwcG9ydGVkIikpLHRoaXMuZGF0YS5oYXNPd25DYW52YXM9dGhpcy5kYXRhLnJlYWRPbmx5JiYhdGhpcy5kYXRhLm5vSFRNTCx0aGlzLl9oYXNUZXh0PSEwLCJzdHJpbmciIT10eXBlb2YgdGhpcy5kYXRhLmZpZWxkVmFsdWUmJih0aGlzLmRhdGEuZmllbGRWYWx1ZT0iIik7bGV0IHQ9TkEoe2RpY3Q6ZSxrZXk6IlEifSk7KCFOdW1iZXIuaXNJbnRlZ2VyKHQpfHx0PDB8fHQ+MikmJih0PW51bGwpLHRoaXMuZGF0YS50ZXh0QWxpZ25tZW50PXQ7bGV0IGk9TkEoe2RpY3Q6ZSxrZXk6Ik1heExlbiJ9KTsoIU51bWJlci5pc0ludGVnZXIoaSl8fGk8MCkmJihpPTApLHRoaXMuZGF0YS5tYXhMZW49aSx0aGlzLmRhdGEubXVsdGlMaW5lPXRoaXMuaGFzRmllbGRGbGFnKDQwOTYpLHRoaXMuZGF0YS5jb21iPXRoaXMuaGFzRmllbGRGbGFnKDE2Nzc3MjE2KSYmIXRoaXMuaGFzRmllbGRGbGFnKDQwOTYpJiYhdGhpcy5oYXNGaWVsZEZsYWcoQykmJiF0aGlzLmhhc0ZpZWxkRmxhZygxMDQ4NTc2KSYmMCE9PXRoaXMuZGF0YS5tYXhMZW4sdGhpcy5kYXRhLmRvTm90U2Nyb2xsPXRoaXMuaGFzRmllbGRGbGFnKDgzODg2MDgpfWdldCBoYXNUZXh0Q29udGVudCgpe3JldHVybiEhdGhpcy5hcHBlYXJhbmNlJiYhdGhpcy5fbmVlZEFwcGVhcmFuY2VzfV9nZXRDb21iQXBwZWFyYW5jZShBLGUsdCxpLGEscyxuLHIsZyxvLEkpe2NvbnN0IGM9YS90aGlzLmRhdGEubWF4TGVuLGg9dGhpcy5nZXRCb3JkZXJBbmRCYWNrZ3JvdW5kQXBwZWFyYW5jZXMoSSksQz1bXSxCPWUuZ2V0Q2hhclBvc2l0aW9ucyh0KTtmb3IoY29uc3RbQSxlXW9mIEIpQy5wdXNoKGAoJHtPQSh0LnN1YnN0cmluZyhBLGUpKX0pIFRqYCk7Y29uc3QgbD1DLmpvaW4oYCAke2VlKGMpfSAwIFRkIGApO3JldHVybmAvVHggQk1DIHEgJHtofUJUIGArQStgIDEgMCAwIDEgJHtlZShuKX0gJHtlZShyK2cpfSBUbSAke2x9IEVUIFEgRU1DYH1fZ2V0TXVsdGlsaW5lQXBwZWFyYW5jZShBLGUsdCxpLGEscyxuLHIsZyxvLEksYyl7Y29uc3QgaD1bXSxDPWEtMipyLEI9e3NoaWZ0OjB9O2ZvcihsZXQgQT0wLHM9ZS5sZW5ndGg7QTxzO0ErKyl7Y29uc3Qgcz1lW0FdLGM9dGhpcy5fc3BsaXRMaW5lKHMsdCxpLEMpO2ZvcihsZXQgZT0wLHM9Yy5sZW5ndGg7ZTxzO2UrKyl7Y29uc3Qgcz1jW2VdLEM9MD09PUEmJjA9PT1lPy1nLShJLW8pOi1JO2gucHVzaCh0aGlzLl9yZW5kZXJUZXh0KHMsdCxpLGEsbixCLHIsQykpfX1jb25zdCBsPXRoaXMuZ2V0Qm9yZGVyQW5kQmFja2dyb3VuZEFwcGVhcmFuY2VzKGMpLFE9aC5qb2luKCJcbiIpO3JldHVybmAvVHggQk1DIHEgJHtsfUJUIGArQStgIDEgMCAwIDEgMCAke2VlKHMpfSBUbSAke1F9IEVUIFEgRU1DYH1fc3BsaXRMaW5lKEEsZSx0LGksYT17fSl7QT1hLmxpbmV8fEE7Y29uc3Qgcz1hLmdseXBoc3x8ZS5jaGFyc1RvR2x5cGhzKEEpO2lmKHMubGVuZ3RoPD0xKXJldHVybltBXTtjb25zdCBuPWEucG9zaXRpb25zfHxlLmdldENoYXJQb3NpdGlvbnMoQSkscj10LzFlMyxnPVtdO2xldCBvPS0xLEk9LTEsYz0tMSxoPTAsQz0wO2ZvcihsZXQgZT0wLHQ9cy5sZW5ndGg7ZTx0O2UrKyl7Y29uc3RbdCxhXT1uW2VdLEI9c1tlXSxsPUIud2lkdGgqcjsiICI9PT1CLnVuaWNvZGU/QytsPmk/KGcucHVzaChBLnN1YnN0cmluZyhoLHQpKSxoPXQsQz1sLG89LTEsYz0tMSk6KEMrPWwsbz10LEk9YSxjPWUpOkMrbD5pPy0xIT09bz8oZy5wdXNoKEEuc3Vic3RyaW5nKGgsSSkpLGg9SSxlPWMrMSxvPS0xLEM9MCk6KGcucHVzaChBLnN1YnN0cmluZyhoLHQpKSxoPXQsQz1sKTpDKz1sfXJldHVybiBoPEEubGVuZ3RoJiZnLnB1c2goQS5zdWJzdHJpbmcoaCxBLmxlbmd0aCkpLGd9YXN5bmMgZXh0cmFjdFRleHRDb250ZW50KEEsZSx0KXthd2FpdCBzdXBlci5leHRyYWN0VGV4dENvbnRlbnQoQSxlLHQpO2NvbnN0IGk9dGhpcy5kYXRhLnRleHRDb250ZW50O2lmKCFpKXJldHVybjtjb25zdCBhPWkuam9pbigiXG4iKTtpZihhPT09dGhpcy5kYXRhLmZpZWxkVmFsdWUpcmV0dXJuO2NvbnN0IHM9YS5yZXBsYWNlQWxsKC8oWy4qKz9eJHt9KCl8W1xdXFxdKXwoXHMrKS9nLCgoQSxlKT0+ZT9gXFwke2V9YDoiXFxzKyIpKTtuZXcgUmVnRXhwKGBeXFxzKiR7c31cXHMqJGApLnRlc3QodGhpcy5kYXRhLmZpZWxkVmFsdWUpJiYodGhpcy5kYXRhLnRleHRDb250ZW50PXRoaXMuZGF0YS5maWVsZFZhbHVlLnNwbGl0KCJcbiIpKX1nZXRGaWVsZE9iamVjdCgpe3JldHVybntpZDp0aGlzLmRhdGEuaWQsdmFsdWU6dGhpcy5kYXRhLmZpZWxkVmFsdWUsZGVmYXVsdFZhbHVlOnRoaXMuZGF0YS5kZWZhdWx0RmllbGRWYWx1ZXx8IiIsbXVsdGlsaW5lOnRoaXMuZGF0YS5tdWx0aUxpbmUscGFzc3dvcmQ6dGhpcy5oYXNGaWVsZEZsYWcoQyksY2hhckxpbWl0OnRoaXMuZGF0YS5tYXhMZW4sY29tYjp0aGlzLmRhdGEuY29tYixlZGl0YWJsZTohdGhpcy5kYXRhLnJlYWRPbmx5LGhpZGRlbjp0aGlzLmRhdGEuaGlkZGVuLG5hbWU6dGhpcy5kYXRhLmZpZWxkTmFtZSxyZWN0OnRoaXMuZGF0YS5yZWN0LGFjdGlvbnM6dGhpcy5kYXRhLmFjdGlvbnMscGFnZTp0aGlzLmRhdGEucGFnZUluZGV4LHN0cm9rZUNvbG9yOnRoaXMuZGF0YS5ib3JkZXJDb2xvcixmaWxsQ29sb3I6dGhpcy5kYXRhLmJhY2tncm91bmRDb2xvcixyb3RhdGlvbjp0aGlzLnJvdGF0aW9uLHR5cGU6InRleHQifX19Y2xhc3MgT3UgZXh0ZW5kcyBQdXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBKSx0aGlzLmNoZWNrZWRBcHBlYXJhbmNlPW51bGwsdGhpcy51bmNoZWNrZWRBcHBlYXJhbmNlPW51bGwsdGhpcy5kYXRhLmNoZWNrQm94PSF0aGlzLmhhc0ZpZWxkRmxhZygzMjc2OCkmJiF0aGlzLmhhc0ZpZWxkRmxhZyhCKSx0aGlzLmRhdGEucmFkaW9CdXR0b249dGhpcy5oYXNGaWVsZEZsYWcoMzI3NjgpJiYhdGhpcy5oYXNGaWVsZEZsYWcoQiksdGhpcy5kYXRhLnB1c2hCdXR0b249dGhpcy5oYXNGaWVsZEZsYWcoQiksdGhpcy5kYXRhLmlzVG9vbHRpcE9ubHk9ITEsdGhpcy5kYXRhLmNoZWNrQm94P3RoaXMuX3Byb2Nlc3NDaGVja0JveChBKTp0aGlzLmRhdGEucmFkaW9CdXR0b24/dGhpcy5fcHJvY2Vzc1JhZGlvQnV0dG9uKEEpOnRoaXMuZGF0YS5wdXNoQnV0dG9uPyh0aGlzLmRhdGEuaGFzT3duQ2FudmFzPSEwLHRoaXMuZGF0YS5ub0hUTUw9ITEsdGhpcy5fcHJvY2Vzc1B1c2hCdXR0b24oQSkpOlUoIkludmFsaWQgZmllbGQgZmxhZ3MgZm9yIGJ1dHRvbiB3aWRnZXQgYW5ub3RhdGlvbiIpfWFzeW5jIGdldE9wZXJhdG9yTGlzdChBLGUsdCxpKXtpZih0aGlzLmRhdGEucHVzaEJ1dHRvbilyZXR1cm4gc3VwZXIuZ2V0T3BlcmF0b3JMaXN0KEEsZSx0LCExLGkpO2xldCBhPW51bGwsbj1udWxsO2lmKGkpe2NvbnN0IEE9aS5nZXQodGhpcy5kYXRhLmlkKTthPUE/QS52YWx1ZTpudWxsLG49QT9BLnJvdGF0aW9uOm51bGx9aWYobnVsbD09PWEmJnRoaXMuYXBwZWFyYW5jZSlyZXR1cm4gc3VwZXIuZ2V0T3BlcmF0b3JMaXN0KEEsZSx0LGkpO251bGw9PWEmJihhPXRoaXMuZGF0YS5jaGVja0JveD90aGlzLmRhdGEuZmllbGRWYWx1ZT09PXRoaXMuZGF0YS5leHBvcnRWYWx1ZTp0aGlzLmRhdGEuZmllbGRWYWx1ZT09PXRoaXMuZGF0YS5idXR0b25WYWx1ZSk7Y29uc3Qgcj1hP3RoaXMuY2hlY2tlZEFwcGVhcmFuY2U6dGhpcy51bmNoZWNrZWRBcHBlYXJhbmNlO2lmKHIpe2NvbnN0IGE9dGhpcy5hcHBlYXJhbmNlLGc9S0Eoci5kaWN0LmdldEFycmF5KCJNYXRyaXgiKSxzKTtuJiZyLmRpY3Quc2V0KCJNYXRyaXgiLHRoaXMuZ2V0Um90YXRpb25NYXRyaXgoaSkpLHRoaXMuYXBwZWFyYW5jZT1yO2NvbnN0IG89c3VwZXIuZ2V0T3BlcmF0b3JMaXN0KEEsZSx0LGkpO3JldHVybiB0aGlzLmFwcGVhcmFuY2U9YSxyLmRpY3Quc2V0KCJNYXRyaXgiLGcpLG99cmV0dXJue29wTGlzdDpuZXcgYWcsc2VwYXJhdGVGb3JtOiExLHNlcGFyYXRlQ2FudmFzOiExfX1hc3luYyBzYXZlKEEsZSx0KXtyZXR1cm4gdGhpcy5kYXRhLmNoZWNrQm94P3RoaXMuX3NhdmVDaGVja2JveChBLGUsdCk6dGhpcy5kYXRhLnJhZGlvQnV0dG9uP3RoaXMuX3NhdmVSYWRpb0J1dHRvbihBLGUsdCk6bnVsbH1hc3luYyBfc2F2ZUNoZWNrYm94KEEsZSx0KXtpZighdClyZXR1cm4gbnVsbDtjb25zdCBpPXQuZ2V0KHRoaXMuZGF0YS5pZCksYT10aGlzLl9idWlsZEZsYWdzKGk/Lm5vVmlldyxpPy5ub1ByaW50KTtsZXQgcz1pPy5yb3RhdGlvbixuPWk/LnZhbHVlO2lmKHZvaWQgMD09PXMmJnZvaWQgMD09PWEpe2lmKHZvaWQgMD09PW4pcmV0dXJuIG51bGw7aWYodGhpcy5kYXRhLmZpZWxkVmFsdWU9PT10aGlzLmRhdGEuZXhwb3J0VmFsdWU9PT1uKXJldHVybiBudWxsfWxldCByPUEueHJlZi5mZXRjaElmUmVmKHRoaXMucmVmKTtpZighKHIgaW5zdGFuY2VvZiBRQSkpcmV0dXJuIG51bGw7cj1yLmNsb25lKCksdm9pZCAwPT09cyYmKHM9dGhpcy5yb3RhdGlvbiksdm9pZCAwPT09biYmKG49dGhpcy5kYXRhLmZpZWxkVmFsdWU9PT10aGlzLmRhdGEuZXhwb3J0VmFsdWUpO2NvbnN0IGc9e3BhdGg6dGhpcy5kYXRhLmZpZWxkTmFtZSx2YWx1ZTpuP3RoaXMuZGF0YS5leHBvcnRWYWx1ZToiIn0sbz1DQS5nZXQobj90aGlzLmRhdGEuZXhwb3J0VmFsdWU6Ik9mZiIpO3Iuc2V0KCJWIixvKSxyLnNldCgiQVMiLG8pLHIuc2V0KCJNIixgRDoke3NBKCl9YCksdm9pZCAwIT09YSYmci5zZXQoIkYiLGEpO2NvbnN0IEk9dGhpcy5fZ2V0TUtEaWN0KHMpO0kmJnIuc2V0KCJNSyIsSSk7Y29uc3QgYz1bXTtyZXR1cm4gYXdhaXQgWGcodGhpcy5yZWYscixjLEEueHJlZiksW3tyZWY6dGhpcy5yZWYsZGF0YTpjLmpvaW4oIiIpLHhmYTpnfV19YXN5bmMgX3NhdmVSYWRpb0J1dHRvbihBLGUsdCl7aWYoIXQpcmV0dXJuIG51bGw7Y29uc3QgaT10LmdldCh0aGlzLmRhdGEuaWQpLGE9dGhpcy5fYnVpbGRGbGFncyhpPy5ub1ZpZXcsaT8ubm9QcmludCk7bGV0IHM9aT8ucm90YXRpb24sbj1pPy52YWx1ZTtpZih2b2lkIDA9PT1zJiZ2b2lkIDA9PT1hKXtpZih2b2lkIDA9PT1uKXJldHVybiBudWxsO2lmKHRoaXMuZGF0YS5maWVsZFZhbHVlPT09dGhpcy5kYXRhLmJ1dHRvblZhbHVlPT09bilyZXR1cm4gbnVsbH1sZXQgcj1BLnhyZWYuZmV0Y2hJZlJlZih0aGlzLnJlZik7aWYoIShyIGluc3RhbmNlb2YgUUEpKXJldHVybiBudWxsO3I9ci5jbG9uZSgpLHZvaWQgMD09PW4mJihuPXRoaXMuZGF0YS5maWVsZFZhbHVlPT09dGhpcy5kYXRhLmJ1dHRvblZhbHVlKSx2b2lkIDA9PT1zJiYocz10aGlzLnJvdGF0aW9uKTtjb25zdCBnPXtwYXRoOnRoaXMuZGF0YS5maWVsZE5hbWUsdmFsdWU6bj90aGlzLmRhdGEuYnV0dG9uVmFsdWU6IiJ9LG89Q0EuZ2V0KG4/dGhpcy5kYXRhLmJ1dHRvblZhbHVlOiJPZmYiKSxJPVtdO2xldCBjPW51bGw7aWYobilpZih0aGlzLnBhcmVudCBpbnN0YW5jZW9mIEVBKXtjb25zdCBlPUEueHJlZi5mZXRjaCh0aGlzLnBhcmVudCk7ZS5zZXQoIlYiLG8pLGF3YWl0IFhnKHRoaXMucGFyZW50LGUsSSxBLnhyZWYpLGM9SS5qb2luKCIiKSxJLmxlbmd0aD0wfWVsc2UgdGhpcy5wYXJlbnQgaW5zdGFuY2VvZiBRQSYmdGhpcy5wYXJlbnQuc2V0KCJWIixvKTt0aGlzLnBhcmVudHx8ci5zZXQoIlYiLG8pLHIuc2V0KCJBUyIsbyksci5zZXQoIk0iLGBEOiR7c0EoKX1gKSx2b2lkIDAhPT1hJiZyLnNldCgiRiIsYSk7Y29uc3QgaD10aGlzLl9nZXRNS0RpY3Qocyk7aCYmci5zZXQoIk1LIixoKSxhd2FpdCBYZyh0aGlzLnJlZixyLEksQS54cmVmKTtjb25zdCBDPVt7cmVmOnRoaXMucmVmLGRhdGE6SS5qb2luKCIiKSx4ZmE6Z31dO3JldHVybiBjJiZDLnB1c2goe3JlZjp0aGlzLnBhcmVudCxkYXRhOmMseGZhOm51bGx9KSxDfV9nZXREZWZhdWx0Q2hlY2tlZEFwcGVhcmFuY2UoQSxlKXtjb25zdCB0PXRoaXMuZGF0YS5yZWN0WzJdLXRoaXMuZGF0YS5yZWN0WzBdLGk9dGhpcy5kYXRhLnJlY3RbM10tdGhpcy5kYXRhLnJlY3RbMV0sYT1bMCwwLHQsaV0scz0uOCpNYXRoLm1pbih0LGkpO2xldCBuLHI7ImNoZWNrIj09PWU/KG49e3dpZHRoOi43NTUqcyxoZWlnaHQ6LjcwNSpzfSxyPSIzIik6ImRpc2MiPT09ZT8obj17d2lkdGg6Ljc5MSpzLGhlaWdodDouNzA1KnN9LHI9ImwiKTpNKGBfZ2V0RGVmYXVsdENoZWNrZWRBcHBlYXJhbmNlIC0gdW5zdXBwb3J0ZWQgdHlwZTogJHtlfWApO2NvbnN0IGc9YHEgQlQgL1BkZkpzWmFEYiAke3N9IFRmIDAgZyAke2VlKCh0LW4ud2lkdGgpLzIpfSAke2VlKChpLW4uaGVpZ2h0KS8yKX0gVGQgKCR7cn0pIFRqIEVUIFFgLG89bmV3IFFBKEEueHJlZik7by5zZXQoIkZvcm1UeXBlIiwxKSxvLnNldCgiU3VidHlwZSIsQ0EuZ2V0KCJGb3JtIikpLG8uc2V0KCJUeXBlIixDQS5nZXQoIlhPYmplY3QiKSksby5zZXQoIkJCb3giLGEpLG8uc2V0KCJNYXRyaXgiLFsxLDAsMCwxLDAsMF0pLG8uc2V0KCJMZW5ndGgiLGcubGVuZ3RoKTtjb25zdCBJPW5ldyBRQShBLnhyZWYpLGM9bmV3IFFBKEEueHJlZik7Yy5zZXQoIlBkZkpzWmFEYiIsdGhpcy5mYWxsYmFja0ZvbnREaWN0KSxJLnNldCgiRm9udCIsYyksby5zZXQoIlJlc291cmNlcyIsSSksdGhpcy5jaGVja2VkQXBwZWFyYW5jZT1uZXcgb2UoZyksdGhpcy5jaGVja2VkQXBwZWFyYW5jZS5kaWN0PW8sdGhpcy5fc3RyZWFtcy5wdXNoKHRoaXMuY2hlY2tlZEFwcGVhcmFuY2UpfV9wcm9jZXNzQ2hlY2tCb3goQSl7Y29uc3QgZT1BLmRpY3QuZ2V0KCJBUCIpO2lmKCEoZSBpbnN0YW5jZW9mIFFBKSlyZXR1cm47Y29uc3QgdD1lLmdldCgiTiIpO2lmKCEodCBpbnN0YW5jZW9mIFFBKSlyZXR1cm47Y29uc3QgaT10aGlzLl9kZWNvZGVGb3JtVmFsdWUoQS5kaWN0LmdldCgiQVMiKSk7InN0cmluZyI9PXR5cGVvZiBpJiYodGhpcy5kYXRhLmZpZWxkVmFsdWU9aSk7Y29uc3QgYT1udWxsIT09dGhpcy5kYXRhLmZpZWxkVmFsdWUmJiJPZmYiIT09dGhpcy5kYXRhLmZpZWxkVmFsdWU/dGhpcy5kYXRhLmZpZWxkVmFsdWU6IlllcyIscz10LmdldEtleXMoKTtpZigwPT09cy5sZW5ndGgpcy5wdXNoKCJPZmYiLGEpO2Vsc2UgaWYoMT09PXMubGVuZ3RoKSJPZmYiPT09c1swXT9zLnB1c2goYSk6cy51bnNoaWZ0KCJPZmYiKTtlbHNlIGlmKHMuaW5jbHVkZXMoYSkpcy5sZW5ndGg9MCxzLnB1c2goIk9mZiIsYSk7ZWxzZXtjb25zdCBBPXMuZmluZCgoQT0+Ik9mZiIhPT1BKSk7cy5sZW5ndGg9MCxzLnB1c2goIk9mZiIsQSl9cy5pbmNsdWRlcyh0aGlzLmRhdGEuZmllbGRWYWx1ZSl8fCh0aGlzLmRhdGEuZmllbGRWYWx1ZT0iT2ZmIiksdGhpcy5kYXRhLmV4cG9ydFZhbHVlPXNbMV07Y29uc3Qgbj10LmdldCh0aGlzLmRhdGEuZXhwb3J0VmFsdWUpO3RoaXMuY2hlY2tlZEFwcGVhcmFuY2U9biBpbnN0YW5jZW9mIHdBP246bnVsbDtjb25zdCByPXQuZ2V0KCJPZmYiKTt0aGlzLnVuY2hlY2tlZEFwcGVhcmFuY2U9ciBpbnN0YW5jZW9mIHdBP3I6bnVsbCx0aGlzLmNoZWNrZWRBcHBlYXJhbmNlP3RoaXMuX3N0cmVhbXMucHVzaCh0aGlzLmNoZWNrZWRBcHBlYXJhbmNlKTp0aGlzLl9nZXREZWZhdWx0Q2hlY2tlZEFwcGVhcmFuY2UoQSwiY2hlY2siKSx0aGlzLnVuY2hlY2tlZEFwcGVhcmFuY2UmJnRoaXMuX3N0cmVhbXMucHVzaCh0aGlzLnVuY2hlY2tlZEFwcGVhcmFuY2UpLHRoaXMuX2ZhbGxiYWNrRm9udERpY3Q9dGhpcy5mYWxsYmFja0ZvbnREaWN0LG51bGw9PT10aGlzLmRhdGEuZGVmYXVsdEZpZWxkVmFsdWUmJih0aGlzLmRhdGEuZGVmYXVsdEZpZWxkVmFsdWU9Ik9mZiIpfV9wcm9jZXNzUmFkaW9CdXR0b24oQSl7dGhpcy5kYXRhLmJ1dHRvblZhbHVlPW51bGw7Y29uc3QgZT1BLmRpY3QuZ2V0KCJQYXJlbnQiKTtpZihlIGluc3RhbmNlb2YgUUEpe3RoaXMucGFyZW50PUEuZGljdC5nZXRSYXcoIlBhcmVudCIpO2NvbnN0IHQ9ZS5nZXQoIlYiKTt0IGluc3RhbmNlb2YgQ0EmJih0aGlzLmRhdGEuZmllbGRWYWx1ZT10aGlzLl9kZWNvZGVGb3JtVmFsdWUodCkpfWNvbnN0IHQ9QS5kaWN0LmdldCgiQVAiKTtpZighKHQgaW5zdGFuY2VvZiBRQSkpcmV0dXJuO2NvbnN0IGk9dC5nZXQoIk4iKTtpZighKGkgaW5zdGFuY2VvZiBRQSkpcmV0dXJuO2Zvcihjb25zdCBBIG9mIGkuZ2V0S2V5cygpKWlmKCJPZmYiIT09QSl7dGhpcy5kYXRhLmJ1dHRvblZhbHVlPXRoaXMuX2RlY29kZUZvcm1WYWx1ZShBKTticmVha31jb25zdCBhPWkuZ2V0KHRoaXMuZGF0YS5idXR0b25WYWx1ZSk7dGhpcy5jaGVja2VkQXBwZWFyYW5jZT1hIGluc3RhbmNlb2Ygd0E/YTpudWxsO2NvbnN0IHM9aS5nZXQoIk9mZiIpO3RoaXMudW5jaGVja2VkQXBwZWFyYW5jZT1zIGluc3RhbmNlb2Ygd0E/czpudWxsLHRoaXMuY2hlY2tlZEFwcGVhcmFuY2U/dGhpcy5fc3RyZWFtcy5wdXNoKHRoaXMuY2hlY2tlZEFwcGVhcmFuY2UpOnRoaXMuX2dldERlZmF1bHRDaGVja2VkQXBwZWFyYW5jZShBLCJkaXNjIiksdGhpcy51bmNoZWNrZWRBcHBlYXJhbmNlJiZ0aGlzLl9zdHJlYW1zLnB1c2godGhpcy51bmNoZWNrZWRBcHBlYXJhbmNlKSx0aGlzLl9mYWxsYmFja0ZvbnREaWN0PXRoaXMuZmFsbGJhY2tGb250RGljdCxudWxsPT09dGhpcy5kYXRhLmRlZmF1bHRGaWVsZFZhbHVlJiYodGhpcy5kYXRhLmRlZmF1bHRGaWVsZFZhbHVlPSJPZmYiKX1fcHJvY2Vzc1B1c2hCdXR0b24oQSl7Y29uc3R7ZGljdDplLGFubm90YXRpb25HbG9iYWxzOnR9PUE7ZS5oYXMoIkEiKXx8ZS5oYXMoIkFBIil8fHRoaXMuZGF0YS5hbHRlcm5hdGl2ZVRleHQ/KHRoaXMuZGF0YS5pc1Rvb2x0aXBPbmx5PSFlLmhhcygiQSIpJiYhZS5oYXMoIkFBIiksaG8ucGFyc2VEZXN0RGljdGlvbmFyeSh7ZGVzdERpY3Q6ZSxyZXN1bHRPYmo6dGhpcy5kYXRhLGRvY0Jhc2VVcmw6dC5iYXNlVXJsLGRvY0F0dGFjaG1lbnRzOnQuYXR0YWNobWVudHN9KSk6VSgiUHVzaCBidXR0b25zIHdpdGhvdXQgYWN0aW9uIGRpY3Rpb25hcmllcyBhcmUgbm90IHN1cHBvcnRlZCIpfWdldEZpZWxkT2JqZWN0KCl7bGV0IEEsZT0iYnV0dG9uIjtyZXR1cm4gdGhpcy5kYXRhLmNoZWNrQm94PyhlPSJjaGVja2JveCIsQT10aGlzLmRhdGEuZXhwb3J0VmFsdWUpOnRoaXMuZGF0YS5yYWRpb0J1dHRvbiYmKGU9InJhZGlvYnV0dG9uIixBPXRoaXMuZGF0YS5idXR0b25WYWx1ZSkse2lkOnRoaXMuZGF0YS5pZCx2YWx1ZTp0aGlzLmRhdGEuZmllbGRWYWx1ZXx8Ik9mZiIsZGVmYXVsdFZhbHVlOnRoaXMuZGF0YS5kZWZhdWx0RmllbGRWYWx1ZSxleHBvcnRWYWx1ZXM6QSxlZGl0YWJsZTohdGhpcy5kYXRhLnJlYWRPbmx5LG5hbWU6dGhpcy5kYXRhLmZpZWxkTmFtZSxyZWN0OnRoaXMuZGF0YS5yZWN0LGhpZGRlbjp0aGlzLmRhdGEuaGlkZGVuLGFjdGlvbnM6dGhpcy5kYXRhLmFjdGlvbnMscGFnZTp0aGlzLmRhdGEucGFnZUluZGV4LHN0cm9rZUNvbG9yOnRoaXMuZGF0YS5ib3JkZXJDb2xvcixmaWxsQ29sb3I6dGhpcy5kYXRhLmJhY2tncm91bmRDb2xvcixyb3RhdGlvbjp0aGlzLnJvdGF0aW9uLHR5cGU6ZX19Z2V0IGZhbGxiYWNrRm9udERpY3QoKXtjb25zdCBBPW5ldyBRQTtyZXR1cm4gQS5zZXQoIkJhc2VGb250IixDQS5nZXQoIlphcGZEaW5nYmF0cyIpKSxBLnNldCgiVHlwZSIsQ0EuZ2V0KCJGYWxsYmFja1R5cGUiKSksQS5zZXQoIlN1YnR5cGUiLENBLmdldCgiRmFsbGJhY2tUeXBlIikpLEEuc2V0KCJFbmNvZGluZyIsQ0EuZ2V0KCJaYXBmRGluZ2JhdHNFbmNvZGluZyIpKSxIKHRoaXMsImZhbGxiYWNrRm9udERpY3QiLEEpfX1jbGFzcyBadSBleHRlbmRzIFB1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEpO2NvbnN0e2RpY3Q6ZSx4cmVmOnR9PUE7dGhpcy5pbmRpY2VzPWUuZ2V0QXJyYXkoIkkiKSx0aGlzLmhhc0luZGljZXM9QXJyYXkuaXNBcnJheSh0aGlzLmluZGljZXMpJiZ0aGlzLmluZGljZXMubGVuZ3RoPjAsdGhpcy5kYXRhLm9wdGlvbnM9W107Y29uc3QgaT1OQSh7ZGljdDplLGtleToiT3B0In0pO2lmKEFycmF5LmlzQXJyYXkoaSkpZm9yKGxldCBBPTAsZT1pLmxlbmd0aDtBPGU7QSsrKXtjb25zdCBlPXQuZmV0Y2hJZlJlZihpW0FdKSxhPUFycmF5LmlzQXJyYXkoZSk7dGhpcy5kYXRhLm9wdGlvbnNbQV09e2V4cG9ydFZhbHVlOnRoaXMuX2RlY29kZUZvcm1WYWx1ZShhP3QuZmV0Y2hJZlJlZihlWzBdKTplKSxkaXNwbGF5VmFsdWU6dGhpcy5fZGVjb2RlRm9ybVZhbHVlKGE/dC5mZXRjaElmUmVmKGVbMV0pOmUpfX1pZih0aGlzLmhhc0luZGljZXMpe3RoaXMuZGF0YS5maWVsZFZhbHVlPVtdO2NvbnN0IEE9dGhpcy5kYXRhLm9wdGlvbnMubGVuZ3RoO2Zvcihjb25zdCBlIG9mIHRoaXMuaW5kaWNlcylOdW1iZXIuaXNJbnRlZ2VyKGUpJiZlPj0wJiZlPEEmJnRoaXMuZGF0YS5maWVsZFZhbHVlLnB1c2godGhpcy5kYXRhLm9wdGlvbnNbZV0uZXhwb3J0VmFsdWUpfWVsc2Uic3RyaW5nIj09dHlwZW9mIHRoaXMuZGF0YS5maWVsZFZhbHVlP3RoaXMuZGF0YS5maWVsZFZhbHVlPVt0aGlzLmRhdGEuZmllbGRWYWx1ZV06dGhpcy5kYXRhLmZpZWxkVmFsdWV8fCh0aGlzLmRhdGEuZmllbGRWYWx1ZT1bXSk7dGhpcy5kYXRhLmNvbWJvPXRoaXMuaGFzRmllbGRGbGFnKDEzMTA3MiksdGhpcy5kYXRhLm11bHRpU2VsZWN0PXRoaXMuaGFzRmllbGRGbGFnKDIwOTcxNTIpLHRoaXMuX2hhc1RleHQ9ITB9Z2V0RmllbGRPYmplY3QoKXtjb25zdCBBPXRoaXMuZGF0YS5jb21ibz8iY29tYm9ib3giOiJsaXN0Ym94IixlPXRoaXMuZGF0YS5maWVsZFZhbHVlLmxlbmd0aD4wP3RoaXMuZGF0YS5maWVsZFZhbHVlWzBdOm51bGw7cmV0dXJue2lkOnRoaXMuZGF0YS5pZCx2YWx1ZTplLGRlZmF1bHRWYWx1ZTp0aGlzLmRhdGEuZGVmYXVsdEZpZWxkVmFsdWUsZWRpdGFibGU6IXRoaXMuZGF0YS5yZWFkT25seSxuYW1lOnRoaXMuZGF0YS5maWVsZE5hbWUscmVjdDp0aGlzLmRhdGEucmVjdCxudW1JdGVtczp0aGlzLmRhdGEuZmllbGRWYWx1ZS5sZW5ndGgsbXVsdGlwbGVTZWxlY3Rpb246dGhpcy5kYXRhLm11bHRpU2VsZWN0LGhpZGRlbjp0aGlzLmRhdGEuaGlkZGVuLGFjdGlvbnM6dGhpcy5kYXRhLmFjdGlvbnMsaXRlbXM6dGhpcy5kYXRhLm9wdGlvbnMscGFnZTp0aGlzLmRhdGEucGFnZUluZGV4LHN0cm9rZUNvbG9yOnRoaXMuZGF0YS5ib3JkZXJDb2xvcixmaWxsQ29sb3I6dGhpcy5kYXRhLmJhY2tncm91bmRDb2xvcixyb3RhdGlvbjp0aGlzLnJvdGF0aW9uLHR5cGU6QX19YW1lbmRTYXZlZERpY3QoQSxlKXtpZighdGhpcy5oYXNJbmRpY2VzKXJldHVybjtsZXQgdD1BPy5nZXQodGhpcy5kYXRhLmlkKT8udmFsdWU7QXJyYXkuaXNBcnJheSh0KXx8KHQ9W3RdKTtjb25zdCBpPVtdLHtvcHRpb25zOmF9PXRoaXMuZGF0YTtmb3IobGV0IEE9MCxlPTAscz1hLmxlbmd0aDtBPHM7QSsrKWFbQV0uZXhwb3J0VmFsdWU9PT10W2VdJiYoaS5wdXNoKEEpLGUrPTEpO2Uuc2V0KCJJIixpKX1hc3luYyBfZ2V0QXBwZWFyYW5jZShBLGUsdCxpKXtpZih0aGlzLmRhdGEuY29tYm8pcmV0dXJuIHN1cGVyLl9nZXRBcHBlYXJhbmNlKEEsZSx0LGkpO2xldCBhLHM7Y29uc3Qgbj1pPy5nZXQodGhpcy5kYXRhLmlkKTtpZihuJiYocz1uLnJvdGF0aW9uLGE9bi52YWx1ZSksdm9pZCAwPT09cyYmdm9pZCAwPT09YSYmIXRoaXMuX25lZWRBcHBlYXJhbmNlcylyZXR1cm4gbnVsbDt2b2lkIDA9PT1hP2E9dGhpcy5kYXRhLmZpZWxkVmFsdWU6QXJyYXkuaXNBcnJheShhKXx8KGE9W2FdKTtsZXQgZz10aGlzLmRhdGEucmVjdFszXS10aGlzLmRhdGEucmVjdFsxXSxvPXRoaXMuZGF0YS5yZWN0WzJdLXRoaXMuZGF0YS5yZWN0WzBdOzkwIT09cyYmMjcwIT09c3x8KFtvLGddPVtnLG9dKTtjb25zdCBJPXRoaXMuZGF0YS5vcHRpb25zLmxlbmd0aCxjPVtdO2ZvcihsZXQgQT0wO0E8STtBKyspe2NvbnN0e2V4cG9ydFZhbHVlOmV9PXRoaXMuZGF0YS5vcHRpb25zW0FdO2EuaW5jbHVkZXMoZSkmJmMucHVzaChBKX10aGlzLl9kZWZhdWx0QXBwZWFyYW5jZXx8KHRoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGE9ZmcodGhpcy5fZGVmYXVsdEFwcGVhcmFuY2U9Ii9IZWx2ZXRpY2EgMCBUZiAwIGciKSk7Y29uc3QgaD1hd2FpdCBQdS5fZ2V0Rm9udERhdGEoQSxlLHRoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGEsdGhpcy5fZmllbGRSZXNvdXJjZXMubWVyZ2VkUmVzb3VyY2VzKTtsZXQgQyx7Zm9udFNpemU6Qn09dGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YTtpZihCKUM9dGhpcy5fZGVmYXVsdEFwcGVhcmFuY2U7ZWxzZXtjb25zdCBBPShnLTEpL0k7bGV0IGUsdD0tMTtmb3IoY29uc3R7ZGlzcGxheVZhbHVlOkF9b2YgdGhpcy5kYXRhLm9wdGlvbnMpe2NvbnN0IGk9dGhpcy5fZ2V0VGV4dFdpZHRoKEEsaCk7aT50JiYodD1pLGU9QSl9W0MsQl09dGhpcy5fY29tcHV0ZUZvbnRTaXplKEEsby00LGUsaCwtMSl9Y29uc3QgbD1CKnIsUT0obC1CKS8yLEU9TWF0aC5mbG9vcihnL2wpO2xldCB1PTA7aWYoYy5sZW5ndGg+MCl7Y29uc3QgQT1NYXRoLm1pbiguLi5jKSxlPU1hdGgubWF4KC4uLmMpO3U9TWF0aC5tYXgoMCxlLUUrMSksdT5BJiYodT1BKX1jb25zdCBkPU1hdGgubWluKHUrRSsxLEkpLGY9WyIvVHggQk1DIHEiLGAxIDEgJHtvfSAke2d9IHJlIFcgbmBdO2lmKGMubGVuZ3RoKXtmLnB1c2goIjAuNjAwMDA2IDAuNzU2ODY2IDAuODU0OTA0IHJnIik7Zm9yKGNvbnN0IEEgb2YgYyl1PD1BJiZBPGQmJmYucHVzaChgMSAke2ctKEEtdSsxKSpsfSAke299ICR7bH0gcmUgZmApfWYucHVzaCgiQlQiLEMsYDEgMCAwIDEgMCAke2d9IFRtYCk7Y29uc3QgcD17c2hpZnQ6MH07Zm9yKGxldCBBPXU7QTxkO0ErKyl7Y29uc3R7ZGlzcGxheVZhbHVlOmV9PXRoaXMuZGF0YS5vcHRpb25zW0FdLHQ9QT09PXU/UTowO2YucHVzaCh0aGlzLl9yZW5kZXJUZXh0KGUsaCxCLG8sMCxwLDIsLWwrdCkpfXJldHVybiBmLnB1c2goIkVUIFEgRU1DIiksZi5qb2luKCJcbiIpfX1jbGFzcyBqdSBleHRlbmRzIFB1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEpLHRoaXMuZGF0YS5maWVsZFZhbHVlPW51bGwsdGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLmRhdGEubm9Sb3RhdGUsdGhpcy5kYXRhLm5vSFRNTD0hdGhpcy5kYXRhLmhhc093bkNhbnZhc31nZXRGaWVsZE9iamVjdCgpe3JldHVybntpZDp0aGlzLmRhdGEuaWQsdmFsdWU6bnVsbCxwYWdlOnRoaXMuZGF0YS5wYWdlSW5kZXgsdHlwZToic2lnbmF0dXJlIn19fWNsYXNzIFh1IGV4dGVuZHMgVHV7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSksdGhpcy5kYXRhLm5vUm90YXRlPSEwLHRoaXMuZGF0YS5oYXNPd25DYW52YXM9dGhpcy5kYXRhLm5vUm90YXRlLHRoaXMuZGF0YS5ub0hUTUw9ITE7Y29uc3R7ZGljdDplfT1BO3RoaXMuZGF0YS5hbm5vdGF0aW9uVHlwZT0xLHRoaXMuZGF0YS5oYXNBcHBlYXJhbmNlP3RoaXMuZGF0YS5uYW1lPSJOb0ljb24iOih0aGlzLmRhdGEucmVjdFsxXT10aGlzLmRhdGEucmVjdFszXS0yMix0aGlzLmRhdGEucmVjdFsyXT10aGlzLmRhdGEucmVjdFswXSsyMix0aGlzLmRhdGEubmFtZT1lLmhhcygiTmFtZSIpP2UuZ2V0KCJOYW1lIikubmFtZToiTm90ZSIpLGUuaGFzKCJTdGF0ZSIpPyh0aGlzLmRhdGEuc3RhdGU9ZS5nZXQoIlN0YXRlIil8fG51bGwsdGhpcy5kYXRhLnN0YXRlTW9kZWw9ZS5nZXQoIlN0YXRlTW9kZWwiKXx8bnVsbCk6KHRoaXMuZGF0YS5zdGF0ZT1udWxsLHRoaXMuZGF0YS5zdGF0ZU1vZGVsPW51bGwpfX1jbGFzcyBWdSBleHRlbmRzIEt1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEpO2NvbnN0e2RpY3Q6ZSxhbm5vdGF0aW9uR2xvYmFsczp0fT1BO3RoaXMuZGF0YS5hbm5vdGF0aW9uVHlwZT0yLHRoaXMuZGF0YS5ub0hUTUw9ITE7Y29uc3QgaT1ZdShlLHRoaXMucmVjdGFuZ2xlKTtpJiYodGhpcy5kYXRhLnF1YWRQb2ludHM9aSksdGhpcy5kYXRhLmJvcmRlckNvbG9yfHw9dGhpcy5kYXRhLmNvbG9yLGhvLnBhcnNlRGVzdERpY3Rpb25hcnkoe2Rlc3REaWN0OmUscmVzdWx0T2JqOnRoaXMuZGF0YSxkb2NCYXNlVXJsOnQuYmFzZVVybCxkb2NBdHRhY2htZW50czp0LmF0dGFjaG1lbnRzfSl9fWNsYXNzIF91IGV4dGVuZHMgS3V7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSk7Y29uc3R7ZGljdDplfT1BO3RoaXMuZGF0YS5hbm5vdGF0aW9uVHlwZT0xNix0aGlzLmRhdGEubm9IVE1MPSExLHRoaXMuZGF0YS5yZWN0WzBdIT09dGhpcy5kYXRhLnJlY3RbMl0mJnRoaXMuZGF0YS5yZWN0WzFdIT09dGhpcy5kYXRhLnJlY3RbM118fCh0aGlzLmRhdGEucmVjdD1udWxsKTtsZXQgdD1lLmdldCgiUGFyZW50Iik7aWYodCl7aWYodGhpcy5kYXRhLnBhcmVudFJlY3Q9VEEodC5nZXRBcnJheSgiUmVjdCIpLG51bGwpLGZBKHQuZ2V0KCJSVCIpLGMpJiYodD10LmdldCgiSVJUIikpLHQuaGFzKCJNIik/KHRoaXMuc2V0TW9kaWZpY2F0aW9uRGF0ZSh0LmdldCgiTSIpKSx0aGlzLmRhdGEubW9kaWZpY2F0aW9uRGF0ZT10aGlzLm1vZGlmaWNhdGlvbkRhdGUpOnRoaXMuZGF0YS5tb2RpZmljYXRpb25EYXRlPW51bGwsdC5oYXMoIkMiKT8odGhpcy5zZXRDb2xvcih0LmdldEFycmF5KCJDIikpLHRoaXMuZGF0YS5jb2xvcj10aGlzLmNvbG9yKTp0aGlzLmRhdGEuY29sb3I9bnVsbCwhdGhpcy52aWV3YWJsZSl7Y29uc3QgQT10LmdldCgiRiIpO3RoaXMuX2lzVmlld2FibGUoQSkmJnRoaXMuc2V0RmxhZ3MoQSl9dGhpcy5zZXRUaXRsZSh0LmdldCgiVCIpKSx0aGlzLmRhdGEudGl0bGVPYmo9dGhpcy5fdGl0bGUsdGhpcy5zZXRDb250ZW50cyh0LmdldCgiQ29udGVudHMiKSksdGhpcy5kYXRhLmNvbnRlbnRzT2JqPXRoaXMuX2NvbnRlbnRzLHQuaGFzKCJSQyIpJiYodGhpcy5kYXRhLnJpY2hUZXh0PU11LmdldFJpY2hUZXh0QXNIdG1sKHQuZ2V0KCJSQyIpKSksdGhpcy5kYXRhLm9wZW49ISFlLmdldCgiT3BlbiIpfWVsc2UgVSgiUG9wdXAgYW5ub3RhdGlvbiBoYXMgYSBtaXNzaW5nIG9yIGludmFsaWQgcGFyZW50IGFubm90YXRpb24uIil9fWNsYXNzIHp1IGV4dGVuZHMgVHV7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSksdGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLmRhdGEubm9Sb3RhdGUsdGhpcy5kYXRhLmlzRWRpdGFibGU9IXRoaXMuZGF0YS5ub0hUTUwsdGhpcy5kYXRhLm5vSFRNTD0hMTtjb25zdHtldmFsdWF0b3JPcHRpb25zOmUseHJlZjp0fT1BO2lmKHRoaXMuZGF0YS5hbm5vdGF0aW9uVHlwZT0zLHRoaXMuc2V0RGVmYXVsdEFwcGVhcmFuY2UoQSksdGhpcy5faGFzQXBwZWFyYW5jZT0hIXRoaXMuYXBwZWFyYW5jZSx0aGlzLl9oYXNBcHBlYXJhbmNlKXtjb25zdHtmb250Q29sb3I6QSxmb250U2l6ZTppfT1mdW5jdGlvbihBLGUsdCl7cmV0dXJuIG5ldyBwZyhBLGUsdCkucGFyc2UoKX0odGhpcy5hcHBlYXJhbmNlLGUsdCk7dGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YS5mb250Q29sb3I9QSx0aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhLmZvbnRTaXplPWl8fDEwfWVsc2V7dGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YS5mb250U2l6ZXx8PTEwO2NvbnN0e2ZvbnRDb2xvcjplLGZvbnRTaXplOml9PXRoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGE7aWYodGhpcy5fY29udGVudHMuc3RyKXt0aGlzLmRhdGEudGV4dENvbnRlbnQ9dGhpcy5fY29udGVudHMuc3RyLnNwbGl0KC9cclxuP3xcbi8pLm1hcCgoQT0+QS50cmltRW5kKCkpKTtjb25zdHtjb29yZHM6QSxiYm94OmUsbWF0cml4OnR9PXlnLmdldEZpcnN0UG9zaXRpb25JbmZvKHRoaXMucmVjdGFuZ2xlLHRoaXMucm90YXRpb24saSk7dGhpcy5kYXRhLnRleHRQb3NpdGlvbj10aGlzLl90cmFuc2Zvcm1Qb2ludChBLGUsdCl9aWYodGhpcy5faXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQpe2NvbnN0IGE9QS5kaWN0LmdldCgiQ0EiKSxzPW5ldyB5Zyh0LCJzYW5zLXNlcmlmIik7dGhpcy5hcHBlYXJhbmNlPXMuY3JlYXRlQXBwZWFyYW5jZSh0aGlzLl9jb250ZW50cy5zdHIsdGhpcy5yZWN0YW5nbGUsdGhpcy5yb3RhdGlvbixpLGUsYSksdGhpcy5fc3RyZWFtcy5wdXNoKHRoaXMuYXBwZWFyYW5jZSl9ZWxzZSBVKCJGcmVlVGV4dEFubm90YXRpb246IE9mZnNjcmVlbkNhbnZhcyBpcyBub3Qgc3VwcG9ydGVkLCBhbm5vdGF0aW9uIG1heSBub3QgcmVuZGVyIGNvcnJlY3RseS4iKX19Z2V0IGhhc1RleHRDb250ZW50KCl7cmV0dXJuIHRoaXMuX2hhc0FwcGVhcmFuY2V9c3RhdGljIGNyZWF0ZU5ld0RpY3QoQSxlLHthcFJlZjp0LGFwOml9KXtjb25zdHtjb2xvcjphLGZvbnRTaXplOnMsb2xkQW5ub3RhdGlvbjpuLHJlY3Q6cixyb3RhdGlvbjpnLHVzZXI6byx2YWx1ZTpJfT1BLGM9bnx8bmV3IFFBKGUpO2Muc2V0KCJUeXBlIixDQS5nZXQoIkFubm90IikpLGMuc2V0KCJTdWJ0eXBlIixDQS5nZXQoIkZyZWVUZXh0IikpLG4/KGMuc2V0KCJNIixgRDoke3NBKCl9YCksYy5kZWxldGUoIlJDIikpOmMuc2V0KCJDcmVhdGlvbkRhdGUiLGBEOiR7c0EoKX1gKSxjLnNldCgiUmVjdCIscik7Y29uc3QgaD1gL0hlbHYgJHtzfSBUZiAke21nKGEsITApfWA7aWYoYy5zZXQoIkRBIixoKSxjLnNldCgiQ29udGVudHMiLGllKEkpKSxjLnNldCgiRiIsNCksYy5zZXQoIkJvcmRlciIsWzAsMCwwXSksYy5zZXQoIlJvdGF0ZSIsZyksbyYmYy5zZXQoIlQiLGllKG8pKSx0fHxpKXtjb25zdCBBPW5ldyBRQShlKTtjLnNldCgiQVAiLEEpLHQ/QS5zZXQoIk4iLHQpOkEuc2V0KCJOIixpKX1yZXR1cm4gY31zdGF0aWMgYXN5bmMgY3JlYXRlTmV3QXBwZWFyYW5jZVN0cmVhbShBLGUsdCl7Y29uc3R7YmFzZUZvbnRSZWY6aSxldmFsdWF0b3I6YSx0YXNrOnN9PXQse2NvbG9yOm4sZm9udFNpemU6ZyxyZWN0Om8scm90YXRpb246SSx2YWx1ZTpjfT1BLGg9bmV3IFFBKGUpLEM9bmV3IFFBKGUpO2lmKGkpQy5zZXQoIkhlbHYiLGkpO2Vsc2V7Y29uc3QgQT1uZXcgUUEoZSk7QS5zZXQoIkJhc2VGb250IixDQS5nZXQoIkhlbHZldGljYSIpKSxBLnNldCgiVHlwZSIsQ0EuZ2V0KCJGb250IikpLEEuc2V0KCJTdWJ0eXBlIixDQS5nZXQoIlR5cGUxIikpLEEuc2V0KCJFbmNvZGluZyIsQ0EuZ2V0KCJXaW5BbnNpRW5jb2RpbmciKSksQy5zZXQoIkhlbHYiLEEpfWguc2V0KCJGb250IixDKTtjb25zdCBCPWF3YWl0IFB1Ll9nZXRGb250RGF0YShhLHMse2ZvbnROYW1lOiJIZWx2Iixmb250U2l6ZTpnfSxoKSxbbCxRLEUsdV09bztsZXQgZD1FLWwsZj11LVE7SSUxODAhPTAmJihbZCxmXT1bZixkXSk7Y29uc3QgcD1jLnNwbGl0KCJcbiIpLG09Zy8xZTM7bGV0IHk9LTEvMDtjb25zdCB3PVtdO2ZvcihsZXQgQSBvZiBwKXtjb25zdCBlPUIuZW5jb2RlU3RyaW5nKEEpO2lmKGUubGVuZ3RoPjEpcmV0dXJuIG51bGw7QT1lLmpvaW4oIiIpLHcucHVzaChBKTtsZXQgdD0wO2NvbnN0IGk9Qi5jaGFyc1RvR2x5cGhzKEEpO2Zvcihjb25zdCBBIG9mIGkpdCs9QS53aWR0aCptO3k9TWF0aC5tYXgoeSx0KX1sZXQgRD0xO3k+ZCYmKEQ9ZC95KTtsZXQgYj0xO2NvbnN0IGs9cipnLEY9MSpnLFM9aypwLmxlbmd0aDtTPmYmJihiPWYvUyk7Y29uc3QgUj1nKk1hdGgubWluKEQsYik7bGV0IEcsTix4O3N3aXRjaChJKXtjYXNlIDA6eD1bMSwwLDAsMV0sTj1bb1swXSxvWzFdLGQsZl0sRz1bb1swXSxvWzNdLUZdO2JyZWFrO2Nhc2UgOTA6eD1bMCwxLC0xLDBdLE49W29bMV0sLW9bMl0sZCxmXSxHPVtvWzFdLC1vWzBdLUZdO2JyZWFrO2Nhc2UgMTgwOng9Wy0xLDAsMCwtMV0sTj1bLW9bMl0sLW9bM10sZCxmXSxHPVstb1syXSwtb1sxXS1GXTticmVhaztjYXNlIDI3MDp4PVswLC0xLDEsMF0sTj1bLW9bM10sb1swXSxkLGZdLEc9Wy1vWzNdLG9bMl0tRl19Y29uc3QgVT1bInEiLGAke3guam9pbigiICIpfSAwIDAgY21gLGAke04uam9pbigiICIpfSByZSBXIG5gLCJCVCIsYCR7bWcobiwhMCl9YCxgMCBUYyAvSGVsdiAke2VlKFIpfSBUZmBdO1UucHVzaChgJHtHLmpvaW4oIiAiKX0gVGQgKCR7T0Eod1swXSl9KSBUamApO2NvbnN0IE09ZWUoayk7Zm9yKGxldCBBPTEsZT13Lmxlbmd0aDtBPGU7QSsrKXtjb25zdCBlPXdbQV07VS5wdXNoKGAwIC0ke019IFRkICgke09BKGUpfSkgVGpgKX1VLnB1c2goIkVUIiwiUSIpO2NvbnN0IEw9VS5qb2luKCJcbiIpLEo9bmV3IFFBKGUpO0ouc2V0KCJGb3JtVHlwZSIsMSksSi5zZXQoIlN1YnR5cGUiLENBLmdldCgiRm9ybSIpKSxKLnNldCgiVHlwZSIsQ0EuZ2V0KCJYT2JqZWN0IikpLEouc2V0KCJCQm94IixvKSxKLnNldCgiUmVzb3VyY2VzIixoKSxKLnNldCgiTWF0cml4IixbMSwwLDAsMSwtb1swXSwtb1sxXV0pO2NvbnN0IEg9bmV3IG9lKEwpO3JldHVybiBILmRpY3Q9SixIfX1jbGFzcyAkdSBleHRlbmRzIFR1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEpO2NvbnN0e2RpY3Q6ZSx4cmVmOnR9PUE7dGhpcy5kYXRhLmFubm90YXRpb25UeXBlPTQsdGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLmRhdGEubm9Sb3RhdGUsdGhpcy5kYXRhLm5vSFRNTD0hMTtjb25zdCBpPXFBKGUuZ2V0QXJyYXkoIkwiKSxbMCwwLDAsMF0pO2lmKHRoaXMuZGF0YS5saW5lQ29vcmRpbmF0ZXM9JC5ub3JtYWxpemVSZWN0KGkpLHRoaXMuc2V0TGluZUVuZGluZ3MoZS5nZXRBcnJheSgiTEUiKSksdGhpcy5kYXRhLmxpbmVFbmRpbmdzPXRoaXMubGluZUVuZGluZ3MsIXRoaXMuYXBwZWFyYW5jZSl7Y29uc3QgQT10aGlzLmNvbG9yP0h1KHRoaXMuY29sb3IpOlswLDAsMF0sYT1lLmdldCgiQ0EiKSxzPUp1KGUuZ2V0QXJyYXkoIklDIiksbnVsbCksbj1zP0h1KHMpOm51bGwscj1uP2E6bnVsbCxnPXRoaXMuYm9yZGVyU3R5bGUud2lkdGh8fDEsbz0yKmcsST1bdGhpcy5kYXRhLmxpbmVDb29yZGluYXRlc1swXS1vLHRoaXMuZGF0YS5saW5lQ29vcmRpbmF0ZXNbMV0tbyx0aGlzLmRhdGEubGluZUNvb3JkaW5hdGVzWzJdK28sdGhpcy5kYXRhLmxpbmVDb29yZGluYXRlc1szXStvXTskLmludGVyc2VjdCh0aGlzLnJlY3RhbmdsZSxJKXx8KHRoaXMucmVjdGFuZ2xlPUkpLHRoaXMuX3NldERlZmF1bHRBcHBlYXJhbmNlKHt4cmVmOnQsZXh0cmE6YCR7Z30gd2Asc3Ryb2tlQ29sb3I6QSxmaWxsQ29sb3I6bixzdHJva2VBbHBoYTphLGZpbGxBbHBoYTpyLHBvaW50c0NhbGxiYWNrOihBLGUpPT4oQS5wdXNoKGAke2lbMF19ICR7aVsxXX0gbWAsYCR7aVsyXX0gJHtpWzNdfSBsYCwiUyIpLFtlWzBdLWcsZVsyXStnLGVbN10tZyxlWzNdK2ddKX0pfX19Y2xhc3MgQWQgZXh0ZW5kcyBUdXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBKTtjb25zdHtkaWN0OmUseHJlZjp0fT1BO2lmKHRoaXMuZGF0YS5hbm5vdGF0aW9uVHlwZT01LHRoaXMuZGF0YS5oYXNPd25DYW52YXM9dGhpcy5kYXRhLm5vUm90YXRlLHRoaXMuZGF0YS5ub0hUTUw9ITEsIXRoaXMuYXBwZWFyYW5jZSl7Y29uc3QgQT10aGlzLmNvbG9yP0h1KHRoaXMuY29sb3IpOlswLDAsMF0saT1lLmdldCgiQ0EiKSxhPUp1KGUuZ2V0QXJyYXkoIklDIiksbnVsbCkscz1hP0h1KGEpOm51bGwsbj1zP2k6bnVsbDtpZigwPT09dGhpcy5ib3JkZXJTdHlsZS53aWR0aCYmIXMpcmV0dXJuO3RoaXMuX3NldERlZmF1bHRBcHBlYXJhbmNlKHt4cmVmOnQsZXh0cmE6YCR7dGhpcy5ib3JkZXJTdHlsZS53aWR0aH0gd2Asc3Ryb2tlQ29sb3I6QSxmaWxsQ29sb3I6cyxzdHJva2VBbHBoYTppLGZpbGxBbHBoYTpuLHBvaW50c0NhbGxiYWNrOihBLGUpPT57Y29uc3QgdD1lWzRdK3RoaXMuYm9yZGVyU3R5bGUud2lkdGgvMixpPWVbNV0rdGhpcy5ib3JkZXJTdHlsZS53aWR0aC8yLGE9ZVs2XS1lWzRdLXRoaXMuYm9yZGVyU3R5bGUud2lkdGgsbj1lWzNdLWVbN10tdGhpcy5ib3JkZXJTdHlsZS53aWR0aDtyZXR1cm4gQS5wdXNoKGAke3R9ICR7aX0gJHthfSAke259IHJlYCkscz9BLnB1c2goIkIiKTpBLnB1c2goIlMiKSxbZVswXSxlWzJdLGVbN10sZVszXV19fSl9fX1jbGFzcyBlZCBleHRlbmRzIFR1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEpO2NvbnN0e2RpY3Q6ZSx4cmVmOnR9PUE7aWYodGhpcy5kYXRhLmFubm90YXRpb25UeXBlPTYsIXRoaXMuYXBwZWFyYW5jZSl7Y29uc3QgQT10aGlzLmNvbG9yP0h1KHRoaXMuY29sb3IpOlswLDAsMF0saT1lLmdldCgiQ0EiKSxhPUp1KGUuZ2V0QXJyYXkoIklDIiksbnVsbCkscz1hP0h1KGEpOm51bGwsbj1zP2k6bnVsbDtpZigwPT09dGhpcy5ib3JkZXJTdHlsZS53aWR0aCYmIXMpcmV0dXJuO2NvbnN0IHI9NC8zKk1hdGgudGFuKE1hdGguUEkvOCk7dGhpcy5fc2V0RGVmYXVsdEFwcGVhcmFuY2Uoe3hyZWY6dCxleHRyYTpgJHt0aGlzLmJvcmRlclN0eWxlLndpZHRofSB3YCxzdHJva2VDb2xvcjpBLGZpbGxDb2xvcjpzLHN0cm9rZUFscGhhOmksZmlsbEFscGhhOm4scG9pbnRzQ2FsbGJhY2s6KEEsZSk9Pntjb25zdCB0PWVbMF0rdGhpcy5ib3JkZXJTdHlsZS53aWR0aC8yLGk9ZVsxXS10aGlzLmJvcmRlclN0eWxlLndpZHRoLzIsYT1lWzZdLXRoaXMuYm9yZGVyU3R5bGUud2lkdGgvMixuPWVbN10rdGhpcy5ib3JkZXJTdHlsZS53aWR0aC8yLGc9dCsoYS10KS8yLG89aSsobi1pKS8yLEk9KGEtdCkvMipyLGM9KG4taSkvMipyO3JldHVybiBBLnB1c2goYCR7Z30gJHtufSBtYCxgJHtnK0l9ICR7bn0gJHthfSAke28rY30gJHthfSAke299IGNgLGAke2F9ICR7by1jfSAke2crSX0gJHtpfSAke2d9ICR7aX0gY2AsYCR7Zy1JfSAke2l9ICR7dH0gJHtvLWN9ICR7dH0gJHtvfSBjYCxgJHt0fSAke28rY30gJHtnLUl9ICR7bn0gJHtnfSAke259IGNgLCJoIikscz9BLnB1c2goIkIiKTpBLnB1c2goIlMiKSxbZVswXSxlWzJdLGVbN10sZVszXV19fSl9fX1jbGFzcyB0ZCBleHRlbmRzIFR1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEpO2NvbnN0e2RpY3Q6ZSx4cmVmOnR9PUE7dGhpcy5kYXRhLmFubm90YXRpb25UeXBlPTgsdGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLmRhdGEubm9Sb3RhdGUsdGhpcy5kYXRhLm5vSFRNTD0hMSx0aGlzLmRhdGEudmVydGljZXM9bnVsbCx0aGlzIGluc3RhbmNlb2YgaWR8fCh0aGlzLnNldExpbmVFbmRpbmdzKGUuZ2V0QXJyYXkoIkxFIikpLHRoaXMuZGF0YS5saW5lRW5kaW5ncz10aGlzLmxpbmVFbmRpbmdzKTtjb25zdCBpPWUuZ2V0QXJyYXkoIlZlcnRpY2VzIik7aWYoIXZBKGksbnVsbCkpcmV0dXJuO2NvbnN0IGE9dGhpcy5kYXRhLnZlcnRpY2VzPUZsb2F0MzJBcnJheS5mcm9tKGkpO2lmKCF0aGlzLmFwcGVhcmFuY2Upe2NvbnN0IEE9dGhpcy5jb2xvcj9IdSh0aGlzLmNvbG9yKTpbMCwwLDBdLGk9ZS5nZXQoIkNBIikscz10aGlzLmJvcmRlclN0eWxlLndpZHRofHwxLG49MipzLHI9WzEvMCwxLzAsLTEvMCwtMS8wXTtmb3IobGV0IEE9MCxlPWEubGVuZ3RoO0E8ZTtBKz0yKXJbMF09TWF0aC5taW4oclswXSxhW0FdLW4pLHJbMV09TWF0aC5taW4oclsxXSxhW0ErMV0tbiksclsyXT1NYXRoLm1heChyWzJdLGFbQV0rbiksclszXT1NYXRoLm1heChyWzNdLGFbQSsxXStuKTskLmludGVyc2VjdCh0aGlzLnJlY3RhbmdsZSxyKXx8KHRoaXMucmVjdGFuZ2xlPXIpLHRoaXMuX3NldERlZmF1bHRBcHBlYXJhbmNlKHt4cmVmOnQsZXh0cmE6YCR7c30gd2Asc3Ryb2tlQ29sb3I6QSxzdHJva2VBbHBoYTppLHBvaW50c0NhbGxiYWNrOihBLGUpPT57Zm9yKGxldCBlPTAsdD1hLmxlbmd0aDtlPHQ7ZSs9MilBLnB1c2goYCR7YVtlXX0gJHthW2UrMV19ICR7MD09PWU/Im0iOiJsIn1gKTtyZXR1cm4gQS5wdXNoKCJTIiksW2VbMF0sZVsyXSxlWzddLGVbM11dfX0pfX19Y2xhc3MgaWQgZXh0ZW5kcyB0ZHtjb25zdHJ1Y3RvcihBKXtzdXBlcihBKSx0aGlzLmRhdGEuYW5ub3RhdGlvblR5cGU9N319Y2xhc3MgYWQgZXh0ZW5kcyBUdXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBKSx0aGlzLmRhdGEuYW5ub3RhdGlvblR5cGU9MTR9fWNsYXNzIHNkIGV4dGVuZHMgVHV7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSksdGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLmRhdGEubm9Sb3RhdGUsdGhpcy5kYXRhLm5vSFRNTD0hMTtjb25zdHtkaWN0OmUseHJlZjp0fT1BO3RoaXMuZGF0YS5hbm5vdGF0aW9uVHlwZT0xNSx0aGlzLmRhdGEuaW5rTGlzdHM9W10sdGhpcy5kYXRhLmlzRWRpdGFibGU9IXRoaXMuZGF0YS5ub0hUTUwmJiJJbmtIaWdobGlnaHQiPT09dGhpcy5kYXRhLml0LHRoaXMuZGF0YS5ub0hUTUw9ITEsdGhpcy5kYXRhLm9wYWNpdHk9ZS5nZXQoIkNBIil8fDE7Y29uc3QgaT1lLmdldEFycmF5KCJJbmtMaXN0Iik7aWYoQXJyYXkuaXNBcnJheShpKSl7Zm9yKGxldCBBPTAsZT1pLmxlbmd0aDtBPGU7KytBKXtpZighQXJyYXkuaXNBcnJheShpW0FdKSljb250aW51ZTtjb25zdCBlPW5ldyBGbG9hdDMyQXJyYXkoaVtBXS5sZW5ndGgpO3RoaXMuZGF0YS5pbmtMaXN0cy5wdXNoKGUpO2ZvcihsZXQgYT0wLHM9aVtBXS5sZW5ndGg7YTxzO2ErPTIpe2NvbnN0IHM9dC5mZXRjaElmUmVmKGlbQV1bYV0pLG49dC5mZXRjaElmUmVmKGlbQV1bYSsxXSk7Im51bWJlciI9PXR5cGVvZiBzJiYibnVtYmVyIj09dHlwZW9mIG4mJihlW2FdPXMsZVthKzFdPW4pfX1pZighdGhpcy5hcHBlYXJhbmNlKXtjb25zdCBBPXRoaXMuY29sb3I/SHUodGhpcy5jb2xvcik6WzAsMCwwXSxpPWUuZ2V0KCJDQSIpLGE9dGhpcy5ib3JkZXJTdHlsZS53aWR0aHx8MSxzPTIqYSxuPVsxLzAsMS8wLC0xLzAsLTEvMF07Zm9yKGNvbnN0IEEgb2YgdGhpcy5kYXRhLmlua0xpc3RzKWZvcihsZXQgZT0wLHQ9QS5sZW5ndGg7ZTx0O2UrPTIpblswXT1NYXRoLm1pbihuWzBdLEFbZV0tcyksblsxXT1NYXRoLm1pbihuWzFdLEFbZSsxXS1zKSxuWzJdPU1hdGgubWF4KG5bMl0sQVtlXStzKSxuWzNdPU1hdGgubWF4KG5bM10sQVtlKzFdK3MpOyQuaW50ZXJzZWN0KHRoaXMucmVjdGFuZ2xlLG4pfHwodGhpcy5yZWN0YW5nbGU9biksdGhpcy5fc2V0RGVmYXVsdEFwcGVhcmFuY2Uoe3hyZWY6dCxleHRyYTpgJHthfSB3YCxzdHJva2VDb2xvcjpBLHN0cm9rZUFscGhhOmkscG9pbnRzQ2FsbGJhY2s6KEEsZSk9Pntmb3IoY29uc3QgZSBvZiB0aGlzLmRhdGEuaW5rTGlzdHMpe2ZvcihsZXQgdD0wLGk9ZS5sZW5ndGg7dDxpO3QrPTIpQS5wdXNoKGAke2VbdF19ICR7ZVt0KzFdfSAkezA9PT10PyJtIjoibCJ9YCk7QS5wdXNoKCJTIil9cmV0dXJuW2VbMF0sZVsyXSxlWzddLGVbM11dfX0pfX19c3RhdGljIGNyZWF0ZU5ld0RpY3QoQSxlLHthcFJlZjp0LGFwOml9KXtjb25zdHtjb2xvcjphLG9wYWNpdHk6cyxwYXRoczpuLG91dGxpbmVzOnIscmVjdDpnLHJvdGF0aW9uOm8sdGhpY2tuZXNzOkl9PUEsYz1uZXcgUUEoZSk7Yy5zZXQoIlR5cGUiLENBLmdldCgiQW5ub3QiKSksYy5zZXQoIlN1YnR5cGUiLENBLmdldCgiSW5rIikpLGMuc2V0KCJDcmVhdGlvbkRhdGUiLGBEOiR7c0EoKX1gKSxjLnNldCgiUmVjdCIsZyksYy5zZXQoIklua0xpc3QiLHI/LnBvaW50c3x8bi5tYXAoKEE9PkEucG9pbnRzKSkpLGMuc2V0KCJGIiw0KSxjLnNldCgiUm90YXRlIixvKSxyJiZjLnNldCgiSVQiLENBLmdldCgiSW5rSGlnaGxpZ2h0IikpO2NvbnN0IGg9bmV3IFFBKGUpO2Muc2V0KCJCUyIsaCksaC5zZXQoIlciLEkpLGMuc2V0KCJDIixBcnJheS5mcm9tKGEsKEE9PkEvMjU1KSkpLGMuc2V0KCJDQSIscyk7Y29uc3QgQz1uZXcgUUEoZSk7cmV0dXJuIGMuc2V0KCJBUCIsQyksdD9DLnNldCgiTiIsdCk6Qy5zZXQoIk4iLGkpLGN9c3RhdGljIGFzeW5jIGNyZWF0ZU5ld0FwcGVhcmFuY2VTdHJlYW0oQSxlLHQpe2lmKEEub3V0bGluZXMpcmV0dXJuIHRoaXMuY3JlYXRlTmV3QXBwZWFyYW5jZVN0cmVhbUZvckhpZ2hsaWdodChBLGUsdCk7Y29uc3R7Y29sb3I6aSxyZWN0OmEscGF0aHM6cyx0aGlja25lc3M6bixvcGFjaXR5OnJ9PUEsZz1bYCR7bn0gdyAxIEogMSBqYCxgJHttZyhpLCExKX1gXTsxIT09ciYmZy5wdXNoKCIvUjAgZ3MiKTtjb25zdCBvPVtdO2Zvcihjb25zdHtiZXppZXI6QX1vZiBzKXtpZihvLmxlbmd0aD0wLG8ucHVzaChgJHtlZShBWzBdKX0gJHtlZShBWzFdKX0gbWApLDI9PT1BLmxlbmd0aClvLnB1c2goYCR7ZWUoQVswXSl9ICR7ZWUoQVsxXSl9IGwgU2ApO2Vsc2V7Zm9yKGxldCBlPTIsdD1BLmxlbmd0aDtlPHQ7ZSs9Nil7Y29uc3QgdD1BLnNsaWNlKGUsZSs2KS5tYXAoZWUpLmpvaW4oIiAiKTtvLnB1c2goYCR7dH0gY2ApfW8ucHVzaCgiUyIpfWcucHVzaChvLmpvaW4oIlxuIikpfWNvbnN0IEk9Zy5qb2luKCJcbiIpLGM9bmV3IFFBKGUpO2lmKGMuc2V0KCJGb3JtVHlwZSIsMSksYy5zZXQoIlN1YnR5cGUiLENBLmdldCgiRm9ybSIpKSxjLnNldCgiVHlwZSIsQ0EuZ2V0KCJYT2JqZWN0IikpLGMuc2V0KCJCQm94IixhKSxjLnNldCgiTGVuZ3RoIixJLmxlbmd0aCksMSE9PXIpe2NvbnN0IEE9bmV3IFFBKGUpLHQ9bmV3IFFBKGUpLGk9bmV3IFFBKGUpO2kuc2V0KCJDQSIsciksaS5zZXQoIlR5cGUiLENBLmdldCgiRXh0R1N0YXRlIikpLHQuc2V0KCJSMCIsaSksQS5zZXQoIkV4dEdTdGF0ZSIsdCksYy5zZXQoIlJlc291cmNlcyIsQSl9Y29uc3QgaD1uZXcgb2UoSSk7cmV0dXJuIGguZGljdD1jLGh9c3RhdGljIGFzeW5jIGNyZWF0ZU5ld0FwcGVhcmFuY2VTdHJlYW1Gb3JIaWdobGlnaHQoQSxlLHQpe2NvbnN0e2NvbG9yOmkscmVjdDphLG91dGxpbmVzOntvdXRsaW5lOnN9LG9wYWNpdHk6bn09QSxyPVtgJHttZyhpLCEwKX1gLCIvUjAgZ3MiXTtyLnB1c2goYCR7ZWUoc1s0XSl9ICR7ZWUoc1s1XSl9IG1gKTtmb3IobGV0IEE9NixlPXMubGVuZ3RoO0E8ZTtBKz02KWlmKGlzTmFOKHNbQV0pfHxudWxsPT09c1tBXSlyLnB1c2goYCR7ZWUoc1tBKzRdKX0gJHtlZShzW0ErNV0pfSBsYCk7ZWxzZXtjb25zdCBlPXMuc2xpY2UoQSxBKzYpLm1hcChlZSkuam9pbigiICIpO3IucHVzaChgJHtlfSBjYCl9ci5wdXNoKCJoIGYiKTtjb25zdCBnPXIuam9pbigiXG4iKSxvPW5ldyBRQShlKTtvLnNldCgiRm9ybVR5cGUiLDEpLG8uc2V0KCJTdWJ0eXBlIixDQS5nZXQoIkZvcm0iKSksby5zZXQoIlR5cGUiLENBLmdldCgiWE9iamVjdCIpKSxvLnNldCgiQkJveCIsYSksby5zZXQoIkxlbmd0aCIsZy5sZW5ndGgpO2NvbnN0IEk9bmV3IFFBKGUpLGM9bmV3IFFBKGUpO0kuc2V0KCJFeHRHU3RhdGUiLGMpLG8uc2V0KCJSZXNvdXJjZXMiLEkpO2NvbnN0IGg9bmV3IFFBKGUpO2Muc2V0KCJSMCIsaCksaC5zZXQoIkJNIixDQS5nZXQoIk11bHRpcGx5IikpLDEhPT1uJiYoaC5zZXQoImNhIixuKSxoLnNldCgiVHlwZSIsQ0EuZ2V0KCJFeHRHU3RhdGUiKSkpO2NvbnN0IEM9bmV3IG9lKGcpO3JldHVybiBDLmRpY3Q9byxDfX1jbGFzcyBuZCBleHRlbmRzIFR1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEpO2NvbnN0e2RpY3Q6ZSx4cmVmOnR9PUE7aWYodGhpcy5kYXRhLmFubm90YXRpb25UeXBlPTksdGhpcy5kYXRhLmlzRWRpdGFibGU9IXRoaXMuZGF0YS5ub0hUTUwsdGhpcy5kYXRhLm5vSFRNTD0hMSx0aGlzLmRhdGEub3BhY2l0eT1lLmdldCgiQ0EiKXx8MSx0aGlzLmRhdGEucXVhZFBvaW50cz1ZdShlLG51bGwpKXtjb25zdCBBPXRoaXMuYXBwZWFyYW5jZT8uZGljdC5nZXQoIlJlc291cmNlcyIpO2lmKCF0aGlzLmFwcGVhcmFuY2V8fCFBPy5oYXMoIkV4dEdTdGF0ZSIpKXt0aGlzLmFwcGVhcmFuY2UmJlUoIkhpZ2hsaWdodEFubm90YXRpb24gLSBpZ25vcmluZyBidWlsdC1pbiBhcHBlYXJhbmNlIHN0cmVhbS4iKTtjb25zdCBBPXRoaXMuY29sb3I/SHUodGhpcy5jb2xvcik6WzEsMSwwXSxpPWUuZ2V0KCJDQSIpO3RoaXMuX3NldERlZmF1bHRBcHBlYXJhbmNlKHt4cmVmOnQsZmlsbENvbG9yOkEsYmxlbmRNb2RlOiJNdWx0aXBseSIsZmlsbEFscGhhOmkscG9pbnRzQ2FsbGJhY2s6KEEsZSk9PihBLnB1c2goYCR7ZVswXX0gJHtlWzFdfSBtYCxgJHtlWzJdfSAke2VbM119IGxgLGAke2VbNl19ICR7ZVs3XX0gbGAsYCR7ZVs0XX0gJHtlWzVdfSBsYCwiZiIpLFtlWzBdLGVbMl0sZVs3XSxlWzNdXSl9KX19ZWxzZSB0aGlzLmRhdGEucG9wdXBSZWY9bnVsbH1zdGF0aWMgY3JlYXRlTmV3RGljdChBLGUse2FwUmVmOnQsYXA6aX0pe2NvbnN0e2NvbG9yOmEsb2xkQW5ub3RhdGlvbjpzLG9wYWNpdHk6bixyZWN0OnIscm90YXRpb246Zyx1c2VyOm8scXVhZFBvaW50czpJfT1BLGM9c3x8bmV3IFFBKGUpO2lmKGMuc2V0KCJUeXBlIixDQS5nZXQoIkFubm90IikpLGMuc2V0KCJTdWJ0eXBlIixDQS5nZXQoIkhpZ2hsaWdodCIpKSxjLnNldChzPyJNIjoiQ3JlYXRpb25EYXRlIixgRDoke3NBKCl9YCksYy5zZXQoIkNyZWF0aW9uRGF0ZSIsYEQ6JHtzQSgpfWApLGMuc2V0KCJSZWN0IixyKSxjLnNldCgiRiIsNCksYy5zZXQoIkJvcmRlciIsWzAsMCwwXSksYy5zZXQoIlJvdGF0ZSIsZyksYy5zZXQoIlF1YWRQb2ludHMiLEkpLGMuc2V0KCJDIixBcnJheS5mcm9tKGEsKEE9PkEvMjU1KSkpLGMuc2V0KCJDQSIsbiksbyYmYy5zZXQoIlQiLGllKG8pKSx0fHxpKXtjb25zdCBBPW5ldyBRQShlKTtjLnNldCgiQVAiLEEpLEEuc2V0KCJOIix0fHxpKX1yZXR1cm4gY31zdGF0aWMgYXN5bmMgY3JlYXRlTmV3QXBwZWFyYW5jZVN0cmVhbShBLGUsdCl7Y29uc3R7Y29sb3I6aSxyZWN0OmEsb3V0bGluZXM6cyxvcGFjaXR5Om59PUEscj1bYCR7bWcoaSwhMCl9YCwiL1IwIGdzIl0sZz1bXTtmb3IoY29uc3QgQSBvZiBzKXtnLmxlbmd0aD0wLGcucHVzaChgJHtlZShBWzBdKX0gJHtlZShBWzFdKX0gbWApO2ZvcihsZXQgZT0yLHQ9QS5sZW5ndGg7ZTx0O2UrPTIpZy5wdXNoKGAke2VlKEFbZV0pfSAke2VlKEFbZSsxXSl9IGxgKTtnLnB1c2goImgiKSxyLnB1c2goZy5qb2luKCJcbiIpKX1yLnB1c2goImYqIik7Y29uc3Qgbz1yLmpvaW4oIlxuIiksST1uZXcgUUEoZSk7SS5zZXQoIkZvcm1UeXBlIiwxKSxJLnNldCgiU3VidHlwZSIsQ0EuZ2V0KCJGb3JtIikpLEkuc2V0KCJUeXBlIixDQS5nZXQoIlhPYmplY3QiKSksSS5zZXQoIkJCb3giLGEpLEkuc2V0KCJMZW5ndGgiLG8ubGVuZ3RoKTtjb25zdCBjPW5ldyBRQShlKSxoPW5ldyBRQShlKTtjLnNldCgiRXh0R1N0YXRlIixoKSxJLnNldCgiUmVzb3VyY2VzIixjKTtjb25zdCBDPW5ldyBRQShlKTtoLnNldCgiUjAiLEMpLEMuc2V0KCJCTSIsQ0EuZ2V0KCJNdWx0aXBseSIpKSwxIT09biYmKEMuc2V0KCJjYSIsbiksQy5zZXQoIlR5cGUiLENBLmdldCgiRXh0R1N0YXRlIikpKTtjb25zdCBCPW5ldyBvZShvKTtyZXR1cm4gQi5kaWN0PUksQn19Y2xhc3MgcmQgZXh0ZW5kcyBUdXtjb25zdHJ1Y3RvcihBKXtzdXBlcihBKTtjb25zdHtkaWN0OmUseHJlZjp0fT1BO2lmKHRoaXMuZGF0YS5hbm5vdGF0aW9uVHlwZT0xMCx0aGlzLmRhdGEucXVhZFBvaW50cz1ZdShlLG51bGwpKXtpZighdGhpcy5hcHBlYXJhbmNlKXtjb25zdCBBPXRoaXMuY29sb3I/SHUodGhpcy5jb2xvcik6WzAsMCwwXSxpPWUuZ2V0KCJDQSIpO3RoaXMuX3NldERlZmF1bHRBcHBlYXJhbmNlKHt4cmVmOnQsZXh0cmE6IltdIDAgZCAwLjU3MSB3IixzdHJva2VDb2xvcjpBLHN0cm9rZUFscGhhOmkscG9pbnRzQ2FsbGJhY2s6KEEsZSk9PihBLnB1c2goYCR7ZVs0XX0gJHtlWzVdKzEuM30gbWAsYCR7ZVs2XX0gJHtlWzddKzEuM30gbGAsIlMiKSxbZVswXSxlWzJdLGVbN10sZVszXV0pfSl9fWVsc2UgdGhpcy5kYXRhLnBvcHVwUmVmPW51bGx9fWNsYXNzIGdkIGV4dGVuZHMgVHV7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSk7Y29uc3R7ZGljdDplLHhyZWY6dH09QTtpZih0aGlzLmRhdGEuYW5ub3RhdGlvblR5cGU9MTEsdGhpcy5kYXRhLnF1YWRQb2ludHM9WXUoZSxudWxsKSl7aWYoIXRoaXMuYXBwZWFyYW5jZSl7Y29uc3QgQT10aGlzLmNvbG9yP0h1KHRoaXMuY29sb3IpOlswLDAsMF0saT1lLmdldCgiQ0EiKTt0aGlzLl9zZXREZWZhdWx0QXBwZWFyYW5jZSh7eHJlZjp0LGV4dHJhOiJbXSAwIGQgMSB3IixzdHJva2VDb2xvcjpBLHN0cm9rZUFscGhhOmkscG9pbnRzQ2FsbGJhY2s6KEEsZSk9Pntjb25zdCB0PShlWzFdLWVbNV0pLzY7bGV0IGk9dCxhPWVbNF07Y29uc3Qgcz1lWzVdLG49ZVs2XTtBLnB1c2goYCR7YX0gJHtzK2l9IG1gKTtkb3thKz0yLGk9MD09PWk/dDowLEEucHVzaChgJHthfSAke3MraX0gbGApfXdoaWxlKGE8bik7cmV0dXJuIEEucHVzaCgiUyIpLFtlWzRdLG4scy0yKnQscysyKnRdfX0pfX1lbHNlIHRoaXMuZGF0YS5wb3B1cFJlZj1udWxsfX1jbGFzcyBvZCBleHRlbmRzIFR1e2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEpO2NvbnN0e2RpY3Q6ZSx4cmVmOnR9PUE7aWYodGhpcy5kYXRhLmFubm90YXRpb25UeXBlPTEyLHRoaXMuZGF0YS5xdWFkUG9pbnRzPVl1KGUsbnVsbCkpe2lmKCF0aGlzLmFwcGVhcmFuY2Upe2NvbnN0IEE9dGhpcy5jb2xvcj9IdSh0aGlzLmNvbG9yKTpbMCwwLDBdLGk9ZS5nZXQoIkNBIik7dGhpcy5fc2V0RGVmYXVsdEFwcGVhcmFuY2Uoe3hyZWY6dCxleHRyYToiW10gMCBkIDEgdyIsc3Ryb2tlQ29sb3I6QSxzdHJva2VBbHBoYTppLHBvaW50c0NhbGxiYWNrOihBLGUpPT4oQS5wdXNoKChlWzBdK2VbNF0pLzIrIiAiKyhlWzFdK2VbNV0pLzIrIiBtIiwoZVsyXStlWzZdKS8yKyIgIisoZVszXStlWzddKS8yKyIgbCIsIlMiKSxbZVswXSxlWzJdLGVbN10sZVszXV0pfSl9fWVsc2UgdGhpcy5kYXRhLnBvcHVwUmVmPW51bGx9fWNsYXNzIElkIGV4dGVuZHMgVHV7I3E7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSksdGhpcy5kYXRhLmFubm90YXRpb25UeXBlPTEzLHRoaXMuI3E9dGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLmRhdGEubm9Sb3RhdGUsdGhpcy5kYXRhLmlzRWRpdGFibGU9IXRoaXMuZGF0YS5ub0hUTUwsdGhpcy5kYXRhLm5vSFRNTD0hMX1tdXN0QmVWaWV3ZWRXaGVuRWRpdGluZyhBLGU9bnVsbCl7cmV0dXJuIEE/ISF0aGlzLmRhdGEuaXNFZGl0YWJsZSYmKHRoaXMuI3E9dGhpcy5kYXRhLmhhc093bkNhbnZhcyx0aGlzLmRhdGEuaGFzT3duQ2FudmFzPSEwLCEwKToodGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLiNxLCFlPy5oYXModGhpcy5kYXRhLmlkKSl9c3RhdGljIGFzeW5jIGNyZWF0ZUltYWdlKEEsZSl7Y29uc3R7d2lkdGg6dCxoZWlnaHQ6aX09QSxhPW5ldyBPZmZzY3JlZW5DYW52YXModCxpKSxzPWEuZ2V0Q29udGV4dCgiMmQiLHthbHBoYTohMH0pO3MuZHJhd0ltYWdlKEEsMCwwKTtjb25zdCBuPXMuZ2V0SW1hZ2VEYXRhKDAsMCx0LGkpLmRhdGEscj1uZXcgVWludDMyQXJyYXkobi5idWZmZXIpLGc9ci5zb21lKF8uaXNMaXR0bGVFbmRpYW4/QT0+QT4+PjI0IT0yNTU6QT0+MjU1IT0oMjU1JkEpKTtnJiYocy5maWxsU3R5bGU9IndoaXRlIixzLmZpbGxSZWN0KDAsMCx0LGkpLHMuZHJhd0ltYWdlKEEsMCwwKSk7Y29uc3Qgbz1hLmNvbnZlcnRUb0Jsb2Ioe3R5cGU6ImltYWdlL2pwZWciLHF1YWxpdHk6MX0pLnRoZW4oKEE9PkEuYXJyYXlCdWZmZXIoKSkpLEk9Q0EuZ2V0KCJYT2JqZWN0IiksYz1DQS5nZXQoIkltYWdlIiksaD1uZXcgUUEoZSk7aC5zZXQoIlR5cGUiLEkpLGguc2V0KCJTdWJ0eXBlIixjKSxoLnNldCgiQml0c1BlckNvbXBvbmVudCIsOCksaC5zZXQoIkNvbG9yU3BhY2UiLENBLmdldCgiRGV2aWNlUkdCIikpLGguc2V0KCJGaWx0ZXIiLENBLmdldCgiRENURGVjb2RlIikpLGguc2V0KCJCQm94IixbMCwwLHQsaV0pLGguc2V0KCJXaWR0aCIsdCksaC5zZXQoIkhlaWdodCIsaSk7bGV0IEM9bnVsbDtpZihnKXtjb25zdCBBPW5ldyBVaW50OEFycmF5KHIubGVuZ3RoKTtpZihfLmlzTGl0dGxlRW5kaWFuKWZvcihsZXQgZT0wLHQ9ci5sZW5ndGg7ZTx0O2UrKylBW2VdPXJbZV0+Pj4yNDtlbHNlIGZvcihsZXQgZT0wLHQ9ci5sZW5ndGg7ZTx0O2UrKylBW2VdPTI1NSZyW2VdO2NvbnN0IGE9bmV3IFFBKGUpO2Euc2V0KCJUeXBlIixJKSxhLnNldCgiU3VidHlwZSIsYyksYS5zZXQoIkJpdHNQZXJDb21wb25lbnQiLDgpLGEuc2V0KCJDb2xvclNwYWNlIixDQS5nZXQoIkRldmljZUdyYXkiKSksYS5zZXQoIldpZHRoIix0KSxhLnNldCgiSGVpZ2h0IixpKSxDPW5ldyBnZShBLDAsMCxhKX1yZXR1cm57aW1hZ2VTdHJlYW06bmV3IGdlKGF3YWl0IG8sMCwwLGgpLHNtYXNrU3RyZWFtOkMsd2lkdGg6dCxoZWlnaHQ6aX19c3RhdGljIGNyZWF0ZU5ld0RpY3QoQSxlLHthcFJlZjp0LGFwOml9KXtjb25zdHtvbGRBbm5vdGF0aW9uOmEscmVjdDpzLHJvdGF0aW9uOm4sdXNlcjpyfT1BLGc9YXx8bmV3IFFBKGUpO2lmKGcuc2V0KCJUeXBlIixDQS5nZXQoIkFubm90IikpLGcuc2V0KCJTdWJ0eXBlIixDQS5nZXQoIlN0YW1wIikpLGcuc2V0KGE/Ik0iOiJDcmVhdGlvbkRhdGUiLGBEOiR7c0EoKX1gKSxnLnNldCgiQ3JlYXRpb25EYXRlIixgRDoke3NBKCl9YCksZy5zZXQoIlJlY3QiLHMpLGcuc2V0KCJGIiw0KSxnLnNldCgiQm9yZGVyIixbMCwwLDBdKSxnLnNldCgiUm90YXRlIixuKSxyJiZnLnNldCgiVCIsaWUocikpLHR8fGkpe2NvbnN0IEE9bmV3IFFBKGUpO2cuc2V0KCJBUCIsQSksdD9BLnNldCgiTiIsdCk6QS5zZXQoIk4iLGkpfXJldHVybiBnfXN0YXRpYyBhc3luYyBjcmVhdGVOZXdBcHBlYXJhbmNlU3RyZWFtKEEsZSx0KXtpZihBLm9sZEFubm90YXRpb24pcmV0dXJuIG51bGw7Y29uc3R7cm90YXRpb246aX09QSx7aW1hZ2VSZWY6YSx3aWR0aDpzLGhlaWdodDpufT10LmltYWdlLHI9bmV3IFFBKGUpLGc9bmV3IFFBKGUpO3Iuc2V0KCJYT2JqZWN0IixnKSxnLnNldCgiSW0wIixhKTtjb25zdCBvPWBxICR7c30gMCAwICR7bn0gMCAwIGNtIC9JbTAgRG8gUWAsST1uZXcgUUEoZSk7aWYoSS5zZXQoIkZvcm1UeXBlIiwxKSxJLnNldCgiU3VidHlwZSIsQ0EuZ2V0KCJGb3JtIikpLEkuc2V0KCJUeXBlIixDQS5nZXQoIlhPYmplY3QiKSksSS5zZXQoIkJCb3giLFswLDAscyxuXSksSS5zZXQoIlJlc291cmNlcyIsciksaSl7Y29uc3QgQT1uZShpLHMsbik7SS5zZXQoIk1hdHJpeCIsQSl9Y29uc3QgYz1uZXcgb2Uobyk7cmV0dXJuIGMuZGljdD1JLGN9fWNsYXNzIGNkIGV4dGVuZHMgVHV7Y29uc3RydWN0b3IoQSl7c3VwZXIoQSk7Y29uc3R7ZGljdDplLHhyZWY6dH09QSxpPW5ldyBTZyhlLmdldCgiRlMiKSx0KTt0aGlzLmRhdGEuYW5ub3RhdGlvblR5cGU9MTcsdGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLmRhdGEubm9Sb3RhdGUsdGhpcy5kYXRhLm5vSFRNTD0hMSx0aGlzLmRhdGEuZmlsZT1pLnNlcmlhbGl6YWJsZTtjb25zdCBhPWUuZ2V0KCJOYW1lIik7dGhpcy5kYXRhLm5hbWU9YSBpbnN0YW5jZW9mIENBP2VBKGEubmFtZSk6IlB1c2hQaW4iO2NvbnN0IHM9ZS5nZXQoImNhIik7dGhpcy5kYXRhLmZpbGxBbHBoYT0ibnVtYmVyIj09dHlwZW9mIHMmJnM+PTAmJnM8PTE/czpudWxsfX1mdW5jdGlvbiBoZChBKXt0cnl7cmV0dXJuIHRBKEEpfWNhdGNoKGUpe3JldHVybiBVKGBVVEYtOCBkZWNvZGluZyBmYWlsZWQ6ICIke2V9Ii5gKSxBfX1jbGFzcyBDZCBleHRlbmRzIHhne2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEpLHRoaXMubm9kZT1udWxsfW9uRW5kRWxlbWVudChBKXtjb25zdCBlPXN1cGVyLm9uRW5kRWxlbWVudChBKTtpZihlJiYieGZhOmRhdGFzZXRzIj09PUEpdGhyb3cgdGhpcy5ub2RlPWUsbmV3IEVycm9yKCJBYm9ydGluZyBEYXRhc2V0WE1MUGFyc2VyLiIpfX1jbGFzcyBCZHtjb25zdHJ1Y3RvcihBKXtpZihBLmRhdGFzZXRzKXRoaXMubm9kZT1uZXcgeGcoe2hhc0F0dHJpYnV0ZXM6ITB9KS5wYXJzZUZyb21TdHJpbmcoQS5kYXRhc2V0cykuZG9jdW1lbnRFbGVtZW50O2Vsc2V7Y29uc3QgZT1uZXcgQ2Qoe2hhc0F0dHJpYnV0ZXM6ITB9KTt0cnl7ZS5wYXJzZUZyb21TdHJpbmcoQVsieGRwOnhkcCJdKX1jYXRjaHt9dGhpcy5ub2RlPWUubm9kZX19Z2V0VmFsdWUoQSl7aWYoIXRoaXMubm9kZXx8IUEpcmV0dXJuIiI7Y29uc3QgZT10aGlzLm5vZGUuc2VhcmNoTm9kZShQQShBKSwwKTtpZighZSlyZXR1cm4iIjtjb25zdCB0PWUuZmlyc3RDaGlsZDtyZXR1cm4idmFsdWUiPT09dD8ubm9kZU5hbWU/ZS5jaGlsZHJlbi5tYXAoKEE9PmhkKEEudGV4dENvbnRlbnQpKSk6aGQoZS50ZXh0Q29udGVudCl9fWNsYXNzIGxkeyNUPW51bGw7Y29uc3RydWN0b3IoQSxlKXt0aGlzLnN0cmVhbT1BLHRoaXMucGRmTWFuYWdlcj1lLHRoaXMuZW50cmllcz1bXSx0aGlzLl94cmVmU3Rtcz1uZXcgU2V0LHRoaXMuX2NhY2hlTWFwPW5ldyBNYXAsdGhpcy5fcGVuZGluZ1JlZnM9bmV3IHVBLHRoaXMuX25ld1BlcnNpc3RlbnRSZWZOdW09bnVsbCx0aGlzLl9uZXdUZW1wb3JhcnlSZWZOdW09bnVsbCx0aGlzLl9wZXJzaXN0ZW50UmVmc0NhY2hlPW51bGx9Z2V0TmV3UGVyc2lzdGVudFJlZihBKXtudWxsPT09dGhpcy5fbmV3UGVyc2lzdGVudFJlZk51bSYmKHRoaXMuX25ld1BlcnNpc3RlbnRSZWZOdW09dGhpcy5lbnRyaWVzLmxlbmd0aHx8MSk7Y29uc3QgZT10aGlzLl9uZXdQZXJzaXN0ZW50UmVmTnVtKys7cmV0dXJuIHRoaXMuX2NhY2hlTWFwLnNldChlLEEpLEVBLmdldChlLDApfWdldE5ld1RlbXBvcmFyeVJlZigpe2lmKG51bGw9PT10aGlzLl9uZXdUZW1wb3JhcnlSZWZOdW0mJih0aGlzLl9uZXdUZW1wb3JhcnlSZWZOdW09dGhpcy5lbnRyaWVzLmxlbmd0aHx8MSx0aGlzLl9uZXdQZXJzaXN0ZW50UmVmTnVtKSl7dGhpcy5fcGVyc2lzdGVudFJlZnNDYWNoZT1uZXcgTWFwO2ZvcihsZXQgQT10aGlzLl9uZXdUZW1wb3JhcnlSZWZOdW07QTx0aGlzLl9uZXdQZXJzaXN0ZW50UmVmTnVtO0ErKyl0aGlzLl9wZXJzaXN0ZW50UmVmc0NhY2hlLnNldChBLHRoaXMuX2NhY2hlTWFwLmdldChBKSksdGhpcy5fY2FjaGVNYXAuZGVsZXRlKEEpfXJldHVybiBFQS5nZXQodGhpcy5fbmV3VGVtcG9yYXJ5UmVmTnVtKyssMCl9cmVzZXROZXdUZW1wb3JhcnlSZWYoKXtpZih0aGlzLl9uZXdUZW1wb3JhcnlSZWZOdW09bnVsbCx0aGlzLl9wZXJzaXN0ZW50UmVmc0NhY2hlKWZvcihjb25zdFtBLGVdb2YgdGhpcy5fcGVyc2lzdGVudFJlZnNDYWNoZSl0aGlzLl9jYWNoZU1hcC5zZXQoQSxlKTt0aGlzLl9wZXJzaXN0ZW50UmVmc0NhY2hlPW51bGx9c2V0U3RhcnRYUmVmKEEpe3RoaXMuc3RhcnRYUmVmUXVldWU9W0FdfXBhcnNlKEE9ITEpe2xldCBlLHQsaTtBPyhVKCJJbmRleGluZyBhbGwgUERGIG9iamVjdHMiKSxlPXRoaXMuaW5kZXhPYmplY3RzKCkpOmU9dGhpcy5yZWFkWFJlZigpLGUuYXNzaWduWHJlZih0aGlzKSx0aGlzLnRyYWlsZXI9ZTt0cnl7dD1lLmdldCgiRW5jcnlwdCIpfWNhdGNoKEEpe2lmKEEgaW5zdGFuY2VvZiBrQSl0aHJvdyBBO1UoYFhSZWYucGFyc2UgLSBJbnZhbGlkICJFbmNyeXB0IiByZWZlcmVuY2U6ICIke0F9Ii5gKX1pZih0IGluc3RhbmNlb2YgUUEpe2NvbnN0IEE9ZS5nZXQoIklEIiksaT1BPy5sZW5ndGg/QVswXToiIjt0LnN1cHByZXNzRW5jcnlwdGlvbj0hMCx0aGlzLmVuY3J5cHQ9bmV3IGpnKHQsaSx0aGlzLnBkZk1hbmFnZXIucGFzc3dvcmQpfXRyeXtpPWUuZ2V0KCJSb290Iil9Y2F0Y2goQSl7aWYoQSBpbnN0YW5jZW9mIGtBKXRocm93IEE7VShgWFJlZi5wYXJzZSAtIEludmFsaWQgIlJvb3QiIHJlZmVyZW5jZTogIiR7QX0iLmApfWlmKGkgaW5zdGFuY2VvZiBRQSl0cnl7aWYoaS5nZXQoIlBhZ2VzIilpbnN0YW5jZW9mIFFBKXJldHVybiB2b2lkKHRoaXMucm9vdD1pKX1jYXRjaChBKXtpZihBIGluc3RhbmNlb2Yga0EpdGhyb3cgQTtVKGBYUmVmLnBhcnNlIC0gSW52YWxpZCAiUGFnZXMiIHJlZmVyZW5jZTogIiR7QX0iLmApfWlmKCFBKXRocm93IG5ldyBSQTt0aHJvdyBuZXcgcSgiSW52YWxpZCBSb290IHJlZmVyZW5jZS4iKX1wcm9jZXNzWFJlZlRhYmxlKEEpe2lmKCJ0YWJsZVN0YXRlImluIHRoaXN8fCh0aGlzLnRhYmxlU3RhdGU9e2VudHJ5TnVtOjAsc3RyZWFtUG9zOkEubGV4ZXIuc3RyZWFtLnBvcyxwYXJzZXJCdWYxOkEuYnVmMSxwYXJzZXJCdWYyOkEuYnVmMn0pLCFwQSh0aGlzLnJlYWRYUmVmVGFibGUoQSksInRyYWlsZXIiKSl0aHJvdyBuZXcgVygiSW52YWxpZCBYUmVmIHRhYmxlOiBjb3VsZCBub3QgZmluZCB0cmFpbGVyIGRpY3Rpb25hcnkiKTtsZXQgZT1BLmdldE9iaigpO2lmKGUgaW5zdGFuY2VvZiBRQXx8IWUuZGljdHx8KGU9ZS5kaWN0KSwhKGUgaW5zdGFuY2VvZiBRQSkpdGhyb3cgbmV3IFcoIkludmFsaWQgWFJlZiB0YWJsZTogY291bGQgbm90IHBhcnNlIHRyYWlsZXIgZGljdGlvbmFyeSIpO3JldHVybiBkZWxldGUgdGhpcy50YWJsZVN0YXRlLGV9cmVhZFhSZWZUYWJsZShBKXtjb25zdCBlPUEubGV4ZXIuc3RyZWFtLHQ9dGhpcy50YWJsZVN0YXRlO2xldCBpO2ZvcihlLnBvcz10LnN0cmVhbVBvcyxBLmJ1ZjE9dC5wYXJzZXJCdWYxLEEuYnVmMj10LnBhcnNlckJ1ZjI7Oyl7aWYoISgiZmlyc3RFbnRyeU51bSJpbiB0KXx8ISgiZW50cnlDb3VudCJpbiB0KSl7aWYocEEoaT1BLmdldE9iaigpLCJ0cmFpbGVyIikpYnJlYWs7dC5maXJzdEVudHJ5TnVtPWksdC5lbnRyeUNvdW50PUEuZ2V0T2JqKCl9bGV0IGE9dC5maXJzdEVudHJ5TnVtO2NvbnN0IHM9dC5lbnRyeUNvdW50O2lmKCFOdW1iZXIuaXNJbnRlZ2VyKGEpfHwhTnVtYmVyLmlzSW50ZWdlcihzKSl0aHJvdyBuZXcgVygiSW52YWxpZCBYUmVmIHRhYmxlOiB3cm9uZyB0eXBlcyBpbiBzdWJzZWN0aW9uIGhlYWRlciIpO2ZvcihsZXQgaT10LmVudHJ5TnVtO2k8cztpKyspe3Quc3RyZWFtUG9zPWUucG9zLHQuZW50cnlOdW09aSx0LnBhcnNlckJ1ZjE9QS5idWYxLHQucGFyc2VyQnVmMj1BLmJ1ZjI7Y29uc3Qgbj17fTtuLm9mZnNldD1BLmdldE9iaigpLG4uZ2VuPUEuZ2V0T2JqKCk7Y29uc3Qgcj1BLmdldE9iaigpO2lmKHIgaW5zdGFuY2VvZiBCQSlzd2l0Y2goci5jbWQpe2Nhc2UiZiI6bi5mcmVlPSEwO2JyZWFrO2Nhc2UibiI6bi51bmNvbXByZXNzZWQ9ITB9aWYoIU51bWJlci5pc0ludGVnZXIobi5vZmZzZXQpfHwhTnVtYmVyLmlzSW50ZWdlcihuLmdlbil8fCFuLmZyZWUmJiFuLnVuY29tcHJlc3NlZCl0aHJvdyBuZXcgVyhgSW52YWxpZCBlbnRyeSBpbiBYUmVmIHN1YnNlY3Rpb246ICR7YX0sICR7c31gKTswPT09aSYmbi5mcmVlJiYxPT09YSYmKGE9MCksdGhpcy5lbnRyaWVzW2krYV18fCh0aGlzLmVudHJpZXNbaSthXT1uKX10LmVudHJ5TnVtPTAsdC5zdHJlYW1Qb3M9ZS5wb3MsdC5wYXJzZXJCdWYxPUEuYnVmMSx0LnBhcnNlckJ1ZjI9QS5idWYyLGRlbGV0ZSB0LmZpcnN0RW50cnlOdW0sZGVsZXRlIHQuZW50cnlDb3VudH1pZih0aGlzLmVudHJpZXNbMF0mJiF0aGlzLmVudHJpZXNbMF0uZnJlZSl0aHJvdyBuZXcgVygiSW52YWxpZCBYUmVmIHRhYmxlOiB1bmV4cGVjdGVkIGZpcnN0IG9iamVjdCIpO3JldHVybiBpfXByb2Nlc3NYUmVmU3RyZWFtKEEpe2lmKCEoInN0cmVhbVN0YXRlImluIHRoaXMpKXtjb25zdCBlPUEuZGljdCx0PWUuZ2V0KCJXIik7bGV0IGk9ZS5nZXQoIkluZGV4Iik7aXx8KGk9WzAsZS5nZXQoIlNpemUiKV0pLHRoaXMuc3RyZWFtU3RhdGU9e2VudHJ5UmFuZ2VzOmksYnl0ZVdpZHRoczp0LGVudHJ5TnVtOjAsc3RyZWFtUG9zOkEucG9zfX1yZXR1cm4gdGhpcy5yZWFkWFJlZlN0cmVhbShBKSxkZWxldGUgdGhpcy5zdHJlYW1TdGF0ZSxBLmRpY3R9cmVhZFhSZWZTdHJlYW0oQSl7Y29uc3QgZT10aGlzLnN0cmVhbVN0YXRlO0EucG9zPWUuc3RyZWFtUG9zO2NvbnN0W3QsaSxhXT1lLmJ5dGVXaWR0aHMscz1lLmVudHJ5UmFuZ2VzO2Zvcig7cy5sZW5ndGg+MDspe2NvbnN0W24scl09cztpZighTnVtYmVyLmlzSW50ZWdlcihuKXx8IU51bWJlci5pc0ludGVnZXIocikpdGhyb3cgbmV3IFcoYEludmFsaWQgWFJlZiByYW5nZSBmaWVsZHM6ICR7bn0sICR7cn1gKTtpZighTnVtYmVyLmlzSW50ZWdlcih0KXx8IU51bWJlci5pc0ludGVnZXIoaSl8fCFOdW1iZXIuaXNJbnRlZ2VyKGEpKXRocm93IG5ldyBXKGBJbnZhbGlkIFhSZWYgZW50cnkgZmllbGRzIGxlbmd0aDogJHtufSwgJHtyfWApO2ZvcihsZXQgcz1lLmVudHJ5TnVtO3M8cjsrK3Mpe2UuZW50cnlOdW09cyxlLnN0cmVhbVBvcz1BLnBvcztsZXQgcj0wLGc9MCxvPTA7Zm9yKGxldCBlPTA7ZTx0OysrZSl7Y29uc3QgZT1BLmdldEJ5dGUoKTtpZigtMT09PWUpdGhyb3cgbmV3IFcoIkludmFsaWQgWFJlZiBieXRlV2lkdGhzICd0eXBlJy4iKTtyPXI8PDh8ZX0wPT09dCYmKHI9MSk7Zm9yKGxldCBlPTA7ZTxpOysrZSl7Y29uc3QgZT1BLmdldEJ5dGUoKTtpZigtMT09PWUpdGhyb3cgbmV3IFcoIkludmFsaWQgWFJlZiBieXRlV2lkdGhzICdvZmZzZXQnLiIpO2c9Zzw8OHxlfWZvcihsZXQgZT0wO2U8YTsrK2Upe2NvbnN0IGU9QS5nZXRCeXRlKCk7aWYoLTE9PT1lKXRocm93IG5ldyBXKCJJbnZhbGlkIFhSZWYgYnl0ZVdpZHRocyAnZ2VuZXJhdGlvbicuIik7bz1vPDw4fGV9Y29uc3QgST17fTtzd2l0Y2goSS5vZmZzZXQ9ZyxJLmdlbj1vLHIpe2Nhc2UgMDpJLmZyZWU9ITA7YnJlYWs7Y2FzZSAxOkkudW5jb21wcmVzc2VkPSEwO2JyZWFrO2Nhc2UgMjpicmVhaztkZWZhdWx0OnRocm93IG5ldyBXKGBJbnZhbGlkIFhSZWYgZW50cnkgdHlwZTogJHtyfWApfXRoaXMuZW50cmllc1tuK3NdfHwodGhpcy5lbnRyaWVzW24rc109SSl9ZS5lbnRyeU51bT0wLGUuc3RyZWFtUG9zPUEucG9zLHMuc3BsaWNlKDAsMil9fWluZGV4T2JqZWN0cygpe2Z1bmN0aW9uIEEoQSxlKXtsZXQgdD0iIixpPUFbZV07Zm9yKDsxMCE9PWkmJjEzIT09aSYmNjAhPT1pJiYhKCsrZT49QS5sZW5ndGgpOyl0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKGkpLGk9QVtlXTtyZXR1cm4gdH1mdW5jdGlvbiBlKEEsZSx0KXtjb25zdCBpPXQubGVuZ3RoLGE9QS5sZW5ndGg7bGV0IHM9MDtmb3IoO2U8YTspe2xldCBhPTA7Zm9yKDthPGkmJkFbZSthXT09PXRbYV07KSsrYTtpZihhPj1pKWJyZWFrO2UrKyxzKyt9cmV0dXJuIHN9Y29uc3QgdD0vXGIoZW5kb2JqfFxkK1xzK1xkK1xzK29ianx4cmVmfHRyYWlsZXJccyo8PClcYi9nLGk9L1xiKHN0YXJ0eHJlZnxcZCtccytcZCtccytvYmopXGIvZyxhPS9eKFxkKylccysoXGQrKVxzK29ialxiLyxzPW5ldyBVaW50OEFycmF5KFsxMTYsMTE0LDk3LDEwNSwxMDgsMTAxLDExNF0pLG49bmV3IFVpbnQ4QXJyYXkoWzExNSwxMTYsOTcsMTE0LDExNiwxMjAsMTE0LDEwMSwxMDJdKSxyPW5ldyBVaW50OEFycmF5KFs0Nyw4OCw4MiwxMDEsMTAyXSk7dGhpcy5lbnRyaWVzLmxlbmd0aD0wLHRoaXMuX2NhY2hlTWFwLmNsZWFyKCk7Y29uc3QgZz10aGlzLnN0cmVhbTtnLnBvcz0wO2NvbnN0IG89Zy5nZXRCeXRlcygpLEk9WihvKSxjPW8ubGVuZ3RoO2xldCBoPWcuc3RhcnQ7Y29uc3QgQz1bXSxCPVtdO2Zvcig7aDxjOyl7bGV0IGw9b1toXTtpZig5PT09bHx8MTA9PT1sfHwxMz09PWx8fDMyPT09bCl7KytoO2NvbnRpbnVlfWlmKDM3PT09bCl7ZG97aWYoKytoLGg+PWMpYnJlYWs7bD1vW2hdfXdoaWxlKDEwIT09bCYmMTMhPT1sKTtjb250aW51ZX1jb25zdCBRPUEobyxoKTtsZXQgRTtpZihRLnN0YXJ0c1dpdGgoInhyZWYiKSYmKDQ9PT1RLmxlbmd0aHx8L1xzLy50ZXN0KFFbNF0pKSloKz1lKG8saCxzKSxDLnB1c2goaCksaCs9ZShvLGgsbik7ZWxzZSBpZihFPWEuZXhlYyhRKSl7Y29uc3QgQT0wfEVbMV0saT0wfEVbMl0sYT1oK1EubGVuZ3RoO2xldCBzLG49ITE7aWYodGhpcy5lbnRyaWVzW0FdKXtpZih0aGlzLmVudHJpZXNbQV0uZ2VuPT09aSl0cnl7bmV3IGdpKHtsZXhlcjpuZXcgY2koZy5tYWtlU3ViU3RyZWFtKGEpKX0pLmdldE9iaigpLG49ITB9Y2F0Y2goQSl7QSBpbnN0YW5jZW9mIEZBP1UoYGluZGV4T2JqZWN0cyAtLSBjaGVja2luZyBvYmplY3QgKCR7UX0pOiAiJHtBfSIuYCk6bj0hMH19ZWxzZSBuPSEwO24mJih0aGlzLmVudHJpZXNbQV09e29mZnNldDpoLWcuc3RhcnQsZ2VuOmksdW5jb21wcmVzc2VkOiEwfSksdC5sYXN0SW5kZXg9YTtjb25zdCBDPXQuZXhlYyhJKTtDPyhzPXQubGFzdEluZGV4KzEtaCwiZW5kb2JqIiE9PUNbMV0mJihVKGBpbmRleE9iamVjdHM6IEZvdW5kICIke0NbMV19IiBpbnNpZGUgb2YgYW5vdGhlciAib2JqIiwgY2F1c2VkIGJ5IG1pc3NpbmcgImVuZG9iaiIgLS0gdHJ5aW5nIHRvIHJlY292ZXIuYCkscy09Q1sxXS5sZW5ndGgrMSkpOnM9Yy1oO2NvbnN0IGw9by5zdWJhcnJheShoLGgrcyksdT1lKGwsMCxyKTt1PHMmJmxbdSs1XTw2NCYmKEIucHVzaChoLWcuc3RhcnQpLHRoaXMuX3hyZWZTdG1zLmFkZChoLWcuc3RhcnQpKSxoKz1zfWVsc2UgaWYoUS5zdGFydHNXaXRoKCJ0cmFpbGVyIikmJig3PT09US5sZW5ndGh8fC9ccy8udGVzdChRWzddKSkpe0MucHVzaChoKTtjb25zdCBBPWgrUS5sZW5ndGg7bGV0IGU7aS5sYXN0SW5kZXg9QTtjb25zdCB0PWkuZXhlYyhJKTt0PyhlPWkubGFzdEluZGV4KzEtaCwic3RhcnR4cmVmIiE9PXRbMV0mJihVKGBpbmRleE9iamVjdHM6IEZvdW5kICIke3RbMV19IiBhZnRlciAidHJhaWxlciIsIGNhdXNlZCBieSBtaXNzaW5nICJzdGFydHhyZWYiIC0tIHRyeWluZyB0byByZWNvdmVyLmApLGUtPXRbMV0ubGVuZ3RoKzEpKTplPWMtaCxoKz1lfWVsc2UgaCs9US5sZW5ndGgrMX1mb3IoY29uc3QgQSBvZiBCKXRoaXMuc3RhcnRYUmVmUXVldWUucHVzaChBKSx0aGlzLnJlYWRYUmVmKCEwKTtjb25zdCBsPVtdO2xldCBRLEUsdT0hMTtmb3IoY29uc3QgQSBvZiBDKXtnLnBvcz1BO2NvbnN0IGU9bmV3IGdpKHtsZXhlcjpuZXcgY2koZykseHJlZjp0aGlzLGFsbG93U3RyZWFtczohMCxyZWNvdmVyeU1vZGU6ITB9KTtpZighcEEoZS5nZXRPYmooKSwidHJhaWxlciIpKWNvbnRpbnVlO2NvbnN0IHQ9ZS5nZXRPYmooKTt0IGluc3RhbmNlb2YgUUEmJihsLnB1c2godCksdC5oYXMoIkVuY3J5cHQiKSYmKHU9ITApKX1mb3IoY29uc3QgQSBvZlsuLi5sLCJnZW5GYWxsYmFjayIsLi4ubF0pe2lmKCJnZW5GYWxsYmFjayI9PT1BKXtpZighRSlicmVhazt0aGlzLl9nZW5lcmF0aW9uRmFsbGJhY2s9ITA7Y29udGludWV9bGV0IGU9ITE7dHJ5e2NvbnN0IHQ9QS5nZXQoIlJvb3QiKTtpZighKHQgaW5zdGFuY2VvZiBRQSkpY29udGludWU7Y29uc3QgaT10LmdldCgiUGFnZXMiKTtpZighKGkgaW5zdGFuY2VvZiBRQSkpY29udGludWU7Y29uc3QgYT1pLmdldCgiQ291bnQiKTtOdW1iZXIuaXNJbnRlZ2VyKGEpJiYoZT0hMCl9Y2F0Y2goQSl7RT1BO2NvbnRpbnVlfWlmKGUmJighdXx8QS5oYXMoIkVuY3J5cHQiKSkmJkEuaGFzKCJJRCIpKXJldHVybiBBO1E9QX1pZihRKXJldHVybiBRO2lmKHRoaXMudG9wRGljdClyZXR1cm4gdGhpcy50b3BEaWN0O3Rocm93IG5ldyBxKCJJbnZhbGlkIFBERiBzdHJ1Y3R1cmUuIil9cmVhZFhSZWYoQT0hMSl7Y29uc3QgZT10aGlzLnN0cmVhbSx0PW5ldyBTZXQ7Zm9yKDt0aGlzLnN0YXJ0WFJlZlF1ZXVlLmxlbmd0aDspe3RyeXtjb25zdCBBPXRoaXMuc3RhcnRYUmVmUXVldWVbMF07aWYodC5oYXMoQSkpe1UoInJlYWRYUmVmIC0gc2tpcHBpbmcgWFJlZiB0YWJsZSBzaW5jZSBpdCB3YXMgYWxyZWFkeSBwYXJzZWQuIiksdGhpcy5zdGFydFhSZWZRdWV1ZS5zaGlmdCgpO2NvbnRpbnVlfXQuYWRkKEEpLGUucG9zPUErZS5zdGFydDtjb25zdCBpPW5ldyBnaSh7bGV4ZXI6bmV3IGNpKGUpLHhyZWY6dGhpcyxhbGxvd1N0cmVhbXM6ITB9KTtsZXQgYSxzPWkuZ2V0T2JqKCk7aWYocEEocywieHJlZiIpKWE9dGhpcy5wcm9jZXNzWFJlZlRhYmxlKGkpLHRoaXMudG9wRGljdHx8KHRoaXMudG9wRGljdD1hKSxzPWEuZ2V0KCJYUmVmU3RtIiksTnVtYmVyLmlzSW50ZWdlcihzKSYmIXRoaXMuX3hyZWZTdG1zLmhhcyhzKSYmKHRoaXMuX3hyZWZTdG1zLmFkZChzKSx0aGlzLnN0YXJ0WFJlZlF1ZXVlLnB1c2gocyksdGhpcy4jVD8/PXMpO2Vsc2V7aWYoIU51bWJlci5pc0ludGVnZXIocykpdGhyb3cgbmV3IFcoIkludmFsaWQgWFJlZiBzdHJlYW0gaGVhZGVyIik7aWYoIShOdW1iZXIuaXNJbnRlZ2VyKGkuZ2V0T2JqKCkpJiZwQShpLmdldE9iaigpLCJvYmoiKSYmKHM9aS5nZXRPYmooKSlpbnN0YW5jZW9mIHdBKSl0aHJvdyBuZXcgVygiSW52YWxpZCBYUmVmIHN0cmVhbSIpO2lmKGE9dGhpcy5wcm9jZXNzWFJlZlN0cmVhbShzKSx0aGlzLnRvcERpY3R8fCh0aGlzLnRvcERpY3Q9YSksIWEpdGhyb3cgbmV3IFcoIkZhaWxlZCB0byByZWFkIFhSZWYgc3RyZWFtIil9cz1hLmdldCgiUHJldiIpLE51bWJlci5pc0ludGVnZXIocyk/dGhpcy5zdGFydFhSZWZRdWV1ZS5wdXNoKHMpOnMgaW5zdGFuY2VvZiBFQSYmdGhpcy5zdGFydFhSZWZRdWV1ZS5wdXNoKHMubnVtKX1jYXRjaChBKXtpZihBIGluc3RhbmNlb2Yga0EpdGhyb3cgQTt4KCIod2hpbGUgcmVhZGluZyBYUmVmKTogIitBKX10aGlzLnN0YXJ0WFJlZlF1ZXVlLnNoaWZ0KCl9aWYodGhpcy50b3BEaWN0KXJldHVybiB0aGlzLnRvcERpY3Q7aWYoIUEpdGhyb3cgbmV3IFJBfWdldCBsYXN0WFJlZlN0cmVhbVBvcygpe3JldHVybiB0aGlzLiNUPz8odGhpcy5feHJlZlN0bXMuc2l6ZT4wP01hdGgubWF4KC4uLnRoaXMuX3hyZWZTdG1zKTpudWxsKX1nZXRFbnRyeShBKXtjb25zdCBlPXRoaXMuZW50cmllc1tBXTtyZXR1cm4gZSYmIWUuZnJlZSYmZS5vZmZzZXQ/ZTpudWxsfWZldGNoSWZSZWYoQSxlPSExKXtyZXR1cm4gQSBpbnN0YW5jZW9mIEVBP3RoaXMuZmV0Y2goQSxlKTpBfWZldGNoKEEsZT0hMSl7aWYoIShBIGluc3RhbmNlb2YgRUEpKXRocm93IG5ldyBFcnJvcigicmVmIG9iamVjdCBpcyBub3QgYSByZWZlcmVuY2UiKTtjb25zdCB0PUEubnVtLGk9dGhpcy5fY2FjaGVNYXAuZ2V0KHQpO2lmKHZvaWQgMCE9PWkpcmV0dXJuIGkgaW5zdGFuY2VvZiBRQSYmIWkub2JqSWQmJihpLm9iaklkPUEudG9TdHJpbmcoKSksaTtsZXQgYT10aGlzLmdldEVudHJ5KHQpO2lmKG51bGw9PT1hKXJldHVybiB0aGlzLl9jYWNoZU1hcC5zZXQodCxhKSxhO2lmKHRoaXMuX3BlbmRpbmdSZWZzLmhhcyhBKSlyZXR1cm4gdGhpcy5fcGVuZGluZ1JlZnMucmVtb3ZlKEEpLFUoYElnbm9yaW5nIGNpcmN1bGFyIHJlZmVyZW5jZTogJHtBfS5gKSxnQTt0aGlzLl9wZW5kaW5nUmVmcy5wdXQoQSk7dHJ5e2E9YS51bmNvbXByZXNzZWQ/dGhpcy5mZXRjaFVuY29tcHJlc3NlZChBLGEsZSk6dGhpcy5mZXRjaENvbXByZXNzZWQoQSxhLGUpLHRoaXMuX3BlbmRpbmdSZWZzLnJlbW92ZShBKX1jYXRjaChlKXt0aHJvdyB0aGlzLl9wZW5kaW5nUmVmcy5yZW1vdmUoQSksZX1yZXR1cm4gYSBpbnN0YW5jZW9mIFFBP2Eub2JqSWQ9QS50b1N0cmluZygpOmEgaW5zdGFuY2VvZiB3QSYmKGEuZGljdC5vYmpJZD1BLnRvU3RyaW5nKCkpLGF9ZmV0Y2hVbmNvbXByZXNzZWQoQSxlLHQ9ITEpe2NvbnN0IGk9QS5nZW47bGV0IGE9QS5udW07aWYoZS5nZW4hPT1pKXtjb25zdCBzPWBJbmNvbnNpc3RlbnQgZ2VuZXJhdGlvbiBpbiBYUmVmOiAke0F9YDtpZih0aGlzLl9nZW5lcmF0aW9uRmFsbGJhY2smJmUuZ2VuPGkpcmV0dXJuIFUocyksdGhpcy5mZXRjaFVuY29tcHJlc3NlZChFQS5nZXQoYSxlLmdlbiksZSx0KTt0aHJvdyBuZXcgU0Eocyl9Y29uc3Qgcz10aGlzLnN0cmVhbS5tYWtlU3ViU3RyZWFtKGUub2Zmc2V0K3RoaXMuc3RyZWFtLnN0YXJ0KSxuPW5ldyBnaSh7bGV4ZXI6bmV3IGNpKHMpLHhyZWY6dGhpcyxhbGxvd1N0cmVhbXM6ITB9KSxyPW4uZ2V0T2JqKCksZz1uLmdldE9iaigpLG89bi5nZXRPYmooKTtpZihyIT09YXx8ZyE9PWl8fCEobyBpbnN0YW5jZW9mIEJBKSl0aHJvdyBuZXcgU0EoYEJhZCAodW5jb21wcmVzc2VkKSBYUmVmIGVudHJ5OiAke0F9YCk7aWYoIm9iaiIhPT1vLmNtZCl7aWYoby5jbWQuc3RhcnRzV2l0aCgib2JqIikmJihhPXBhcnNlSW50KG8uY21kLnN1YnN0cmluZygzKSwxMCksIU51bWJlci5pc05hTihhKSkpcmV0dXJuIGE7dGhyb3cgbmV3IFNBKGBCYWQgKHVuY29tcHJlc3NlZCkgWFJlZiBlbnRyeTogJHtBfWApfXJldHVybihlPXRoaXMuZW5jcnlwdCYmIXQ/bi5nZXRPYmoodGhpcy5lbmNyeXB0LmNyZWF0ZUNpcGhlclRyYW5zZm9ybShhLGkpKTpuLmdldE9iaigpKWluc3RhbmNlb2Ygd0F8fHRoaXMuX2NhY2hlTWFwLnNldChhLGUpLGV9ZmV0Y2hDb21wcmVzc2VkKEEsZSx0PSExKXtjb25zdCBpPWUub2Zmc2V0LGE9dGhpcy5mZXRjaChFQS5nZXQoaSwwKSk7aWYoIShhIGluc3RhbmNlb2Ygd0EpKXRocm93IG5ldyBXKCJiYWQgT2JqU3RtIHN0cmVhbSIpO2NvbnN0IHM9YS5kaWN0LmdldCgiRmlyc3QiKSxuPWEuZGljdC5nZXQoIk4iKTtpZighTnVtYmVyLmlzSW50ZWdlcihzKXx8IU51bWJlci5pc0ludGVnZXIobikpdGhyb3cgbmV3IFcoImludmFsaWQgZmlyc3QgYW5kIG4gcGFyYW1ldGVycyBmb3IgT2JqU3RtIHN0cmVhbSIpO2xldCByPW5ldyBnaSh7bGV4ZXI6bmV3IGNpKGEpLHhyZWY6dGhpcyxhbGxvd1N0cmVhbXM6ITB9KTtjb25zdCBnPW5ldyBBcnJheShuKSxvPW5ldyBBcnJheShuKTtmb3IobGV0IEE9MDtBPG47KytBKXtjb25zdCBlPXIuZ2V0T2JqKCk7aWYoIU51bWJlci5pc0ludGVnZXIoZSkpdGhyb3cgbmV3IFcoYGludmFsaWQgb2JqZWN0IG51bWJlciBpbiB0aGUgT2JqU3RtIHN0cmVhbTogJHtlfWApO2NvbnN0IHQ9ci5nZXRPYmooKTtpZighTnVtYmVyLmlzSW50ZWdlcih0KSl0aHJvdyBuZXcgVyhgaW52YWxpZCBvYmplY3Qgb2Zmc2V0IGluIHRoZSBPYmpTdG0gc3RyZWFtOiAke3R9YCk7Z1tBXT1lLG9bQV09dH1jb25zdCBJPShhLnN0YXJ0fHwwKStzLGM9bmV3IEFycmF5KG4pO2ZvcihsZXQgQT0wO0E8bjsrK0Epe2NvbnN0IGU9QTxuLTE/b1tBKzFdLW9bQV06dm9pZCAwO2lmKGU8MCl0aHJvdyBuZXcgVygiSW52YWxpZCBvZmZzZXQgaW4gdGhlIE9ialN0bSBzdHJlYW0uIik7cj1uZXcgZ2koe2xleGVyOm5ldyBjaShhLm1ha2VTdWJTdHJlYW0oSStvW0FdLGUsYS5kaWN0KSkseHJlZjp0aGlzLGFsbG93U3RyZWFtczohMH0pO2NvbnN0IHQ9ci5nZXRPYmooKTtpZihjW0FdPXQsdCBpbnN0YW5jZW9mIHdBKWNvbnRpbnVlO2NvbnN0IHM9Z1tBXSxoPXRoaXMuZW50cmllc1tzXTtoJiZoLm9mZnNldD09PWkmJmguZ2VuPT09QSYmdGhpcy5fY2FjaGVNYXAuc2V0KHMsdCl9aWYodm9pZCAwPT09KGU9Y1tlLmdlbl0pKXRocm93IG5ldyBTQShgQmFkIChjb21wcmVzc2VkKSBYUmVmIGVudHJ5OiAke0F9YCk7cmV0dXJuIGV9YXN5bmMgZmV0Y2hJZlJlZkFzeW5jKEEsZSl7cmV0dXJuIEEgaW5zdGFuY2VvZiBFQT90aGlzLmZldGNoQXN5bmMoQSxlKTpBfWFzeW5jIGZldGNoQXN5bmMoQSxlKXt0cnl7cmV0dXJuIHRoaXMuZmV0Y2goQSxlKX1jYXRjaCh0KXtpZighKHQgaW5zdGFuY2VvZiBrQSkpdGhyb3cgdDtyZXR1cm4gYXdhaXQgdGhpcy5wZGZNYW5hZ2VyLnJlcXVlc3RSYW5nZSh0LmJlZ2luLHQuZW5kKSx0aGlzLmZldGNoQXN5bmMoQSxlKX19Z2V0Q2F0YWxvZ09iaigpe3JldHVybiB0aGlzLnJvb3R9fWNvbnN0IFFkPVswLDAsNjEyLDc5Ml07Y2xhc3MgRWR7Y29uc3RydWN0b3Ioe3BkZk1hbmFnZXI6QSx4cmVmOmUscGFnZUluZGV4OnQscGFnZURpY3Q6aSxyZWY6YSxnbG9iYWxJZEZhY3Rvcnk6cyxmb250Q2FjaGU6bixidWlsdEluQ01hcENhY2hlOnIsc3RhbmRhcmRGb250RGF0YUNhY2hlOmcsZ2xvYmFsSW1hZ2VDYWNoZTpvLHN5c3RlbUZvbnRDYWNoZTpJLG5vbkJsZW5kTW9kZXNTZXQ6Yyx4ZmFGYWN0b3J5Omh9KXt0aGlzLnBkZk1hbmFnZXI9QSx0aGlzLnBhZ2VJbmRleD10LHRoaXMucGFnZURpY3Q9aSx0aGlzLnhyZWY9ZSx0aGlzLnJlZj1hLHRoaXMuZm9udENhY2hlPW4sdGhpcy5idWlsdEluQ01hcENhY2hlPXIsdGhpcy5zdGFuZGFyZEZvbnREYXRhQ2FjaGU9Zyx0aGlzLmdsb2JhbEltYWdlQ2FjaGU9byx0aGlzLnN5c3RlbUZvbnRDYWNoZT1JLHRoaXMubm9uQmxlbmRNb2Rlc1NldD1jLHRoaXMuZXZhbHVhdG9yT3B0aW9ucz1BLmV2YWx1YXRvck9wdGlvbnMsdGhpcy5yZXNvdXJjZXNQcm9taXNlPW51bGwsdGhpcy54ZmFGYWN0b3J5PWg7Y29uc3QgQz17b2JqOjB9O3RoaXMuX2xvY2FsSWRGYWN0b3J5PWNsYXNzIGV4dGVuZHMgc3tzdGF0aWMgY3JlYXRlT2JqSWQoKXtyZXR1cm5gcCR7dH1fJHsrK0Mub2JqfWB9c3RhdGljIGdldFBhZ2VPYmpJZCgpe3JldHVybmBwJHthLnRvU3RyaW5nKCl9YH19fV9nZXRJbmhlcml0YWJsZVByb3BlcnR5KEEsZT0hMSl7Y29uc3QgdD1OQSh7ZGljdDp0aGlzLnBhZ2VEaWN0LGtleTpBLGdldEFycmF5OmUsc3RvcFdoZW5Gb3VuZDohMX0pO3JldHVybiBBcnJheS5pc0FycmF5KHQpPzEhPT10Lmxlbmd0aCYmdFswXWluc3RhbmNlb2YgUUE/UUEubWVyZ2Uoe3hyZWY6dGhpcy54cmVmLGRpY3RBcnJheTp0fSk6dFswXTp0fWdldCBjb250ZW50KCl7cmV0dXJuIHRoaXMucGFnZURpY3QuZ2V0QXJyYXkoIkNvbnRlbnRzIil9Z2V0IHJlc291cmNlcygpe2NvbnN0IEE9dGhpcy5fZ2V0SW5oZXJpdGFibGVQcm9wZXJ0eSgiUmVzb3VyY2VzIik7cmV0dXJuIEgodGhpcywicmVzb3VyY2VzIixBIGluc3RhbmNlb2YgUUE/QTpRQS5lbXB0eSl9X2dldEJvdW5kaW5nQm94KEEpe2lmKHRoaXMueGZhRGF0YSlyZXR1cm4gdGhpcy54ZmFEYXRhLmJib3g7Y29uc3QgZT1UQSh0aGlzLl9nZXRJbmhlcml0YWJsZVByb3BlcnR5KEEsITApLG51bGwpO2lmKGUpe2lmKGVbMl0tZVswXT4wJiZlWzNdLWVbMV0+MClyZXR1cm4gZTtVKGBFbXB0eSwgb3IgaW52YWxpZCwgLyR7QX0gZW50cnkuYCl9cmV0dXJuIG51bGx9Z2V0IG1lZGlhQm94KCl7cmV0dXJuIEgodGhpcywibWVkaWFCb3giLHRoaXMuX2dldEJvdW5kaW5nQm94KCJNZWRpYUJveCIpfHxRZCl9Z2V0IGNyb3BCb3goKXtyZXR1cm4gSCh0aGlzLCJjcm9wQm94Iix0aGlzLl9nZXRCb3VuZGluZ0JveCgiQ3JvcEJveCIpfHx0aGlzLm1lZGlhQm94KX1nZXQgdXNlclVuaXQoKXtsZXQgQT10aGlzLnBhZ2VEaWN0LmdldCgiVXNlclVuaXQiKTtyZXR1cm4oIm51bWJlciIhPXR5cGVvZiBBfHxBPD0wKSYmKEE9MSksSCh0aGlzLCJ1c2VyVW5pdCIsQSl9Z2V0IHZpZXcoKXtjb25zdHtjcm9wQm94OkEsbWVkaWFCb3g6ZX09dGhpcztpZihBIT09ZSYmIWFBKEEsZSkpe2NvbnN0IHQ9JC5pbnRlcnNlY3QoQSxlKTtpZih0JiZ0WzJdLXRbMF0+MCYmdFszXS10WzFdPjApcmV0dXJuIEgodGhpcywidmlldyIsdCk7VSgiRW1wdHkgL0Nyb3BCb3ggYW5kIC9NZWRpYUJveCBpbnRlcnNlY3Rpb24uIil9cmV0dXJuIEgodGhpcywidmlldyIsZSl9Z2V0IHJvdGF0ZSgpe2xldCBBPXRoaXMuX2dldEluaGVyaXRhYmxlUHJvcGVydHkoIlJvdGF0ZSIpfHwwO3JldHVybiBBJTkwIT0wP0E9MDpBPj0zNjA/QSU9MzYwOkE8MCYmKEE9KEElMzYwKzM2MCklMzYwKSxIKHRoaXMsInJvdGF0ZSIsQSl9X29uU3ViU3RyZWFtRXJyb3IoQSxlKXtpZighdGhpcy5ldmFsdWF0b3JPcHRpb25zLmlnbm9yZUVycm9ycyl0aHJvdyBBO1UoYGdldENvbnRlbnRTdHJlYW0gLSBpZ25vcmluZyBzdWItc3RyZWFtICgke2V9KTogIiR7QX0iLmApfWdldENvbnRlbnRTdHJlYW0oKXtyZXR1cm4gdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZSh0aGlzLCJjb250ZW50IikudGhlbigoQT0+QSBpbnN0YW5jZW9mIHdBP0E6QXJyYXkuaXNBcnJheShBKT9uZXcgeGUoQSx0aGlzLl9vblN1YlN0cmVhbUVycm9yLmJpbmQodGhpcykpOm5ldyBJZSkpfWdldCB4ZmFEYXRhKCl7cmV0dXJuIEgodGhpcywieGZhRGF0YSIsdGhpcy54ZmFGYWN0b3J5P3tiYm94OnRoaXMueGZhRmFjdG9yeS5nZXRCb3VuZGluZ0JveCh0aGlzLnBhZ2VJbmRleCl9Om51bGwpfWFzeW5jI1AoQSxlLHQpe2NvbnN0IGk9W107Zm9yKGNvbnN0IGEgb2YgQSlpZihhLmlkKXtjb25zdCBBPUVBLmZyb21TdHJpbmcoYS5pZCk7aWYoIUEpe1UoYEEgbm9uLWxpbmtlZCBhbm5vdGF0aW9uIGNhbm5vdCBiZSBtb2RpZmllZDogJHthLmlkfWApO2NvbnRpbnVlfWlmKGEuZGVsZXRlZCl7aWYoZS5wdXQoQSxBKSxhLnBvcHVwUmVmKXtjb25zdCBBPUVBLmZyb21TdHJpbmcoYS5wb3B1cFJlZik7QSYmZS5wdXQoQSxBKX1jb250aW51ZX10Py5wdXQoQSksYS5yZWY9QSxpLnB1c2godGhpcy54cmVmLmZldGNoQXN5bmMoQSkudGhlbigoQT0+e0EgaW5zdGFuY2VvZiBRQSYmKGEub2xkQW5ub3RhdGlvbj1BLmNsb25lKCkpfSksKCgpPT57VShgQ2Fubm90IGZldGNoIFxgb2xkQW5ub3RhdGlvblxgIGZvcjogJHtBfS5gKX0pKSksZGVsZXRlIGEuaWR9YXdhaXQgUHJvbWlzZS5hbGwoaSl9YXN5bmMgc2F2ZU5ld0Fubm90YXRpb25zKEEsZSx0LGkpe2lmKHRoaXMueGZhRmFjdG9yeSl0aHJvdyBuZXcgRXJyb3IoIlhGQTogQ2Fubm90IHNhdmUgbmV3IGFubm90YXRpb25zLiIpO2NvbnN0IGE9bmV3IENnKHt4cmVmOnRoaXMueHJlZixoYW5kbGVyOkEscGFnZUluZGV4OnRoaXMucGFnZUluZGV4LGlkRmFjdG9yeTp0aGlzLl9sb2NhbElkRmFjdG9yeSxmb250Q2FjaGU6dGhpcy5mb250Q2FjaGUsYnVpbHRJbkNNYXBDYWNoZTp0aGlzLmJ1aWx0SW5DTWFwQ2FjaGUsc3RhbmRhcmRGb250RGF0YUNhY2hlOnRoaXMuc3RhbmRhcmRGb250RGF0YUNhY2hlLGdsb2JhbEltYWdlQ2FjaGU6dGhpcy5nbG9iYWxJbWFnZUNhY2hlLHN5c3RlbUZvbnRDYWNoZTp0aGlzLnN5c3RlbUZvbnRDYWNoZSxvcHRpb25zOnRoaXMuZXZhbHVhdG9yT3B0aW9uc30pLHM9bmV3IGRBLG49bmV3IHVBO2F3YWl0IHRoaXMuI1AodCxzLG4pO2NvbnN0IHI9dGhpcy5wYWdlRGljdCxnPXRoaXMuYW5ub3RhdGlvbnMuZmlsdGVyKChBPT4hKEEgaW5zdGFuY2VvZiBFQSYmcy5oYXMoQSkpKSksbz1hd2FpdCBMdS5zYXZlTmV3QW5ub3RhdGlvbnMoYSxlLHQsaSk7Zm9yKGNvbnN0e3JlZjpBfW9mIG8uYW5ub3RhdGlvbnMpQSBpbnN0YW5jZW9mIEVBJiYhbi5oYXMoQSkmJmcucHVzaChBKTtjb25zdCBJPXIuZ2V0KCJBbm5vdHMiKTtyLnNldCgiQW5ub3RzIixnKTtjb25zdCBjPVtdO2F3YWl0IFhnKHRoaXMucmVmLHIsYyx0aGlzLnhyZWYpLEkmJnIuc2V0KCJBbm5vdHMiLEkpO2NvbnN0IGg9by5kZXBlbmRlbmNpZXM7aC5wdXNoKHtyZWY6dGhpcy5yZWYsZGF0YTpjLmpvaW4oIiIpfSwuLi5vLmFubm90YXRpb25zKTtmb3IoY29uc3QgQSBvZiBzKWgucHVzaCh7cmVmOkEsZGF0YTpudWxsfSk7cmV0dXJuIGh9c2F2ZShBLGUsdCl7Y29uc3QgaT1uZXcgQ2coe3hyZWY6dGhpcy54cmVmLGhhbmRsZXI6QSxwYWdlSW5kZXg6dGhpcy5wYWdlSW5kZXgsaWRGYWN0b3J5OnRoaXMuX2xvY2FsSWRGYWN0b3J5LGZvbnRDYWNoZTp0aGlzLmZvbnRDYWNoZSxidWlsdEluQ01hcENhY2hlOnRoaXMuYnVpbHRJbkNNYXBDYWNoZSxzdGFuZGFyZEZvbnREYXRhQ2FjaGU6dGhpcy5zdGFuZGFyZEZvbnREYXRhQ2FjaGUsZ2xvYmFsSW1hZ2VDYWNoZTp0aGlzLmdsb2JhbEltYWdlQ2FjaGUsc3lzdGVtRm9udENhY2hlOnRoaXMuc3lzdGVtRm9udENhY2hlLG9wdGlvbnM6dGhpcy5ldmFsdWF0b3JPcHRpb25zfSk7cmV0dXJuIHRoaXMuX3BhcnNlZEFubm90YXRpb25zLnRoZW4oKGZ1bmN0aW9uKEEpe2NvbnN0IGE9W107Zm9yKGNvbnN0IHMgb2YgQSlhLnB1c2gocy5zYXZlKGksZSx0KS5jYXRjaCgoZnVuY3Rpb24oQSl7cmV0dXJuIFUoYHNhdmUgLSBpZ25vcmluZyBhbm5vdGF0aW9uIGRhdGEgZHVyaW5nICIke2UubmFtZX0iIHRhc2s6ICIke0F9Ii5gKSxudWxsfSkpKTtyZXR1cm4gUHJvbWlzZS5hbGwoYSkudGhlbigoZnVuY3Rpb24oQSl7cmV0dXJuIEEuZmlsdGVyKChBPT4hIUEpKX0pKX0pKX1sb2FkUmVzb3VyY2VzKEEpe3JldHVybiB0aGlzLnJlc291cmNlc1Byb21pc2V8fD10aGlzLnBkZk1hbmFnZXIuZW5zdXJlKHRoaXMsInJlc291cmNlcyIpLHRoaXMucmVzb3VyY2VzUHJvbWlzZS50aGVuKCgoKT0+bmV3IEJvKHRoaXMucmVzb3VyY2VzLEEsdGhpcy54cmVmKS5sb2FkKCkpKX1nZXRPcGVyYXRvckxpc3Qoe2hhbmRsZXI6QSxzaW5rOmUsdGFzazp0LGludGVudDppLGNhY2hlS2V5OmEsYW5ub3RhdGlvblN0b3JhZ2U6cz1udWxsLG1vZGlmaWVkSWRzOm49bnVsbH0pe2NvbnN0IHI9dGhpcy5nZXRDb250ZW50U3RyZWFtKCksZz10aGlzLmxvYWRSZXNvdXJjZXMoWyJDb2xvclNwYWNlIiwiRXh0R1N0YXRlIiwiRm9udCIsIlBhdHRlcm4iLCJQcm9wZXJ0aWVzIiwiU2hhZGluZyIsIlhPYmplY3QiXSksST1uZXcgQ2coe3hyZWY6dGhpcy54cmVmLGhhbmRsZXI6QSxwYWdlSW5kZXg6dGhpcy5wYWdlSW5kZXgsaWRGYWN0b3J5OnRoaXMuX2xvY2FsSWRGYWN0b3J5LGZvbnRDYWNoZTp0aGlzLmZvbnRDYWNoZSxidWlsdEluQ01hcENhY2hlOnRoaXMuYnVpbHRJbkNNYXBDYWNoZSxzdGFuZGFyZEZvbnREYXRhQ2FjaGU6dGhpcy5zdGFuZGFyZEZvbnREYXRhQ2FjaGUsZ2xvYmFsSW1hZ2VDYWNoZTp0aGlzLmdsb2JhbEltYWdlQ2FjaGUsc3lzdGVtRm9udENhY2hlOnRoaXMuc3lzdGVtRm9udENhY2hlLG9wdGlvbnM6dGhpcy5ldmFsdWF0b3JPcHRpb25zfSksYz10aGlzLnhmYUZhY3Rvcnk/bnVsbDp0ZShzKSxoPWM/LmdldCh0aGlzLnBhZ2VJbmRleCk7bGV0IEM9UHJvbWlzZS5yZXNvbHZlKG51bGwpLEI9bnVsbDtpZihoKXtjb25zdCBBPXRoaXMucGRmTWFuYWdlci5lbnN1cmVEb2MoImFubm90YXRpb25HbG9iYWxzIik7bGV0IGU7Y29uc3QgaT1uZXcgU2V0O2Zvcihjb25zdHtiaXRtYXBJZDpBLGJpdG1hcDplfW9mIGgpIUF8fGV8fGkuaGFzKEEpfHxpLmFkZChBKTtjb25zdHtpc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZDphfT10aGlzLmV2YWx1YXRvck9wdGlvbnM7aWYoaS5zaXplPjApe2NvbnN0IEE9aC5zbGljZSgpO2Zvcihjb25zdFtlLHRdb2YgcyllLnN0YXJ0c1dpdGgobykmJnQuYml0bWFwJiZpLmhhcyh0LmJpdG1hcElkKSYmQS5wdXNoKHQpO2U9THUuZ2VuZXJhdGVJbWFnZXMoQSx0aGlzLnhyZWYsYSl9ZWxzZSBlPUx1LmdlbmVyYXRlSW1hZ2VzKGgsdGhpcy54cmVmLGEpO0I9bmV3IHVBLEM9UHJvbWlzZS5hbGwoW0EsdGhpcy4jUChoLEIsbnVsbCldKS50aGVuKCgoW0FdKT0+QT9MdS5wcmludE5ld0Fubm90YXRpb25zKEEsSSx0LGgsZSk6bnVsbCkpfWNvbnN0IGw9UHJvbWlzZS5hbGwoW3IsZ10pLnRoZW4oKChbc10pPT57Y29uc3Qgbj1uZXcgYWcoaSxlKTtyZXR1cm4gQS5zZW5kKCJTdGFydFJlbmRlclBhZ2UiLHt0cmFuc3BhcmVuY3k6SS5oYXNCbGVuZE1vZGVzKHRoaXMucmVzb3VyY2VzLHRoaXMubm9uQmxlbmRNb2Rlc1NldCkscGFnZUluZGV4OnRoaXMucGFnZUluZGV4LGNhY2hlS2V5OmF9KSxJLmdldE9wZXJhdG9yTGlzdCh7c3RyZWFtOnMsdGFzazp0LHJlc291cmNlczp0aGlzLnJlc291cmNlcyxvcGVyYXRvckxpc3Q6bn0pLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIG59KSl9KSk7cmV0dXJuIFByb21pc2UuYWxsKFtsLHRoaXMuX3BhcnNlZEFubm90YXRpb25zLENdKS50aGVuKChmdW5jdGlvbihbQSxlLGFdKXtpZihhKXtlPWUuZmlsdGVyKChBPT4hKEEucmVmJiZCLmhhcyhBLnJlZikpKSk7Zm9yKGxldCBBPTAsdD1hLmxlbmd0aDtBPHQ7QSsrKXtjb25zdCBpPWFbQV07aWYoaS5yZWZUb1JlcGxhY2Upe2NvbnN0IHM9ZS5maW5kSW5kZXgoKEE9PkEucmVmJiZ5QShBLnJlZixpLnJlZlRvUmVwbGFjZSkpKTtzPj0wJiYoZS5zcGxpY2UocywxLGkpLGEuc3BsaWNlKEEtLSwxKSx0LS0pfX1lPWUuY29uY2F0KGEpfWlmKDA9PT1lLmxlbmd0aHx8NjQmaSlyZXR1cm4gQS5mbHVzaCghMCkse2xlbmd0aDpBLnRvdGFsTGVuZ3RofTtjb25zdCByPSEhKDE2JmkpLGc9ISEoMTI4JmkpLG89ISEoMSZpKSxjPSEhKDImaSksaD0hISg0JmkpLEM9W107Zm9yKGNvbnN0IEEgb2YgZSkob3x8YyYmQS5tdXN0QmVWaWV3ZWQocyxyKSYmQS5tdXN0QmVWaWV3ZWRXaGVuRWRpdGluZyhnLG4pfHxoJiZBLm11c3RCZVByaW50ZWQocykpJiZDLnB1c2goQS5nZXRPcGVyYXRvckxpc3QoSSx0LGkscykuY2F0Y2goKGZ1bmN0aW9uKEEpe3JldHVybiBVKGBnZXRPcGVyYXRvckxpc3QgLSBpZ25vcmluZyBhbm5vdGF0aW9uIGRhdGEgZHVyaW5nICIke3QubmFtZX0iIHRhc2s6ICIke0F9Ii5gKSx7b3BMaXN0Om51bGwsc2VwYXJhdGVGb3JtOiExLHNlcGFyYXRlQ2FudmFzOiExfX0pKSk7cmV0dXJuIFByb21pc2UuYWxsKEMpLnRoZW4oKGZ1bmN0aW9uKGUpe2xldCB0PSExLGk9ITE7Zm9yKGNvbnN0e29wTGlzdDphLHNlcGFyYXRlRm9ybTpzLHNlcGFyYXRlQ2FudmFzOm59b2YgZSlBLmFkZE9wTGlzdChhKSx0fHw9cyxpfHw9bjtyZXR1cm4gQS5mbHVzaCghMCx7Zm9ybTp0LGNhbnZhczppfSkse2xlbmd0aDpBLnRvdGFsTGVuZ3RofX0pKX0pKX1hc3luYyBleHRyYWN0VGV4dENvbnRlbnQoe2hhbmRsZXI6QSx0YXNrOmUsaW5jbHVkZU1hcmtlZENvbnRlbnQ6dCxkaXNhYmxlTm9ybWFsaXphdGlvbjppLHNpbms6YX0pe2NvbnN0IHM9dGhpcy5nZXRDb250ZW50U3RyZWFtKCksbj10aGlzLmxvYWRSZXNvdXJjZXMoWyJFeHRHU3RhdGUiLCJGb250IiwiUHJvcGVydGllcyIsIlhPYmplY3QiXSkscj10aGlzLnBkZk1hbmFnZXIuZW5zdXJlQ2F0YWxvZygibGFuZyIpLFtnLCxvXT1hd2FpdCBQcm9taXNlLmFsbChbcyxuLHJdKTtyZXR1cm4gbmV3IENnKHt4cmVmOnRoaXMueHJlZixoYW5kbGVyOkEscGFnZUluZGV4OnRoaXMucGFnZUluZGV4LGlkRmFjdG9yeTp0aGlzLl9sb2NhbElkRmFjdG9yeSxmb250Q2FjaGU6dGhpcy5mb250Q2FjaGUsYnVpbHRJbkNNYXBDYWNoZTp0aGlzLmJ1aWx0SW5DTWFwQ2FjaGUsc3RhbmRhcmRGb250RGF0YUNhY2hlOnRoaXMuc3RhbmRhcmRGb250RGF0YUNhY2hlLGdsb2JhbEltYWdlQ2FjaGU6dGhpcy5nbG9iYWxJbWFnZUNhY2hlLHN5c3RlbUZvbnRDYWNoZTp0aGlzLnN5c3RlbUZvbnRDYWNoZSxvcHRpb25zOnRoaXMuZXZhbHVhdG9yT3B0aW9uc30pLmdldFRleHRDb250ZW50KHtzdHJlYW06Zyx0YXNrOmUscmVzb3VyY2VzOnRoaXMucmVzb3VyY2VzLGluY2x1ZGVNYXJrZWRDb250ZW50OnQsZGlzYWJsZU5vcm1hbGl6YXRpb246aSxzaW5rOmEsdmlld0JveDp0aGlzLnZpZXcsbGFuZzpvfSl9YXN5bmMgZ2V0U3RydWN0VHJlZSgpe2NvbnN0IEE9YXdhaXQgdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZUNhdGFsb2coInN0cnVjdFRyZWVSb290Iik7cmV0dXJuIEE/KGF3YWl0IHRoaXMuX3BhcnNlZEFubm90YXRpb25zLChhd2FpdCB0aGlzLnBkZk1hbmFnZXIuZW5zdXJlKHRoaXMsIl9wYXJzZVN0cnVjdFRyZWUiLFtBXSkpLnNlcmlhbGl6YWJsZSk6bnVsbH1fcGFyc2VTdHJ1Y3RUcmVlKEEpe2NvbnN0IGU9bmV3IGdvKEEsdGhpcy5wYWdlRGljdCk7cmV0dXJuIGUucGFyc2UodGhpcy5yZWYpLGV9YXN5bmMgZ2V0QW5ub3RhdGlvbnNEYXRhKEEsZSx0KXtjb25zdCBpPWF3YWl0IHRoaXMuX3BhcnNlZEFubm90YXRpb25zO2lmKDA9PT1pLmxlbmd0aClyZXR1cm4gaTtjb25zdCBhPVtdLHM9W107bGV0IG47Y29uc3Qgcj0hISgxJnQpLGc9ISEoMiZ0KSxvPSEhKDQmdCk7Zm9yKGNvbnN0IHQgb2YgaSl7Y29uc3QgaT1yfHxnJiZ0LnZpZXdhYmxlOyhpfHxvJiZ0LnByaW50YWJsZSkmJmEucHVzaCh0LmRhdGEpLHQuaGFzVGV4dENvbnRlbnQmJmkmJihufHw9bmV3IENnKHt4cmVmOnRoaXMueHJlZixoYW5kbGVyOkEscGFnZUluZGV4OnRoaXMucGFnZUluZGV4LGlkRmFjdG9yeTp0aGlzLl9sb2NhbElkRmFjdG9yeSxmb250Q2FjaGU6dGhpcy5mb250Q2FjaGUsYnVpbHRJbkNNYXBDYWNoZTp0aGlzLmJ1aWx0SW5DTWFwQ2FjaGUsc3RhbmRhcmRGb250RGF0YUNhY2hlOnRoaXMuc3RhbmRhcmRGb250RGF0YUNhY2hlLGdsb2JhbEltYWdlQ2FjaGU6dGhpcy5nbG9iYWxJbWFnZUNhY2hlLHN5c3RlbUZvbnRDYWNoZTp0aGlzLnN5c3RlbUZvbnRDYWNoZSxvcHRpb25zOnRoaXMuZXZhbHVhdG9yT3B0aW9uc30pLHMucHVzaCh0LmV4dHJhY3RUZXh0Q29udGVudChuLGUsWy0xLzAsLTEvMCwxLzAsMS8wXSkuY2F0Y2goKGZ1bmN0aW9uKEEpe1UoYGdldEFubm90YXRpb25zRGF0YSAtIGlnbm9yaW5nIHRleHRDb250ZW50IGR1cmluZyAiJHtlLm5hbWV9IiB0YXNrOiAiJHtBfSIuYCl9KSkpKX1yZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwocyksYX1nZXQgYW5ub3RhdGlvbnMoKXtjb25zdCBBPXRoaXMuX2dldEluaGVyaXRhYmxlUHJvcGVydHkoIkFubm90cyIpO3JldHVybiBIKHRoaXMsImFubm90YXRpb25zIixBcnJheS5pc0FycmF5KEEpP0E6W10pfWdldCBfcGFyc2VkQW5ub3RhdGlvbnMoKXtyZXR1cm4gSCh0aGlzLCJfcGFyc2VkQW5ub3RhdGlvbnMiLHRoaXMucGRmTWFuYWdlci5lbnN1cmUodGhpcywiYW5ub3RhdGlvbnMiKS50aGVuKChhc3luYyBBPT57aWYoMD09PUEubGVuZ3RoKXJldHVybiBBO2NvbnN0W2UsdF09YXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMucGRmTWFuYWdlci5lbnN1cmVEb2MoImFubm90YXRpb25HbG9iYWxzIiksdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZURvYygiZmllbGRPYmplY3RzIildKTtpZighZSlyZXR1cm5bXTtjb25zdCBpPXQ/Lm9ycGhhbkZpZWxkcyxhPVtdO2Zvcihjb25zdCB0IG9mIEEpYS5wdXNoKEx1LmNyZWF0ZSh0aGlzLnhyZWYsdCxlLHRoaXMuX2xvY2FsSWRGYWN0b3J5LCExLGksdGhpcy5yZWYpLmNhdGNoKChmdW5jdGlvbihBKXtyZXR1cm4gVShgX3BhcnNlZEFubm90YXRpb25zOiAiJHtBfSIuYCksbnVsbH0pKSk7Y29uc3Qgcz1bXTtsZXQgbixyO2Zvcihjb25zdCBBIG9mIGF3YWl0IFByb21pc2UuYWxsKGEpKUEmJihBIGluc3RhbmNlb2YgUHU/KHJ8fD1bXSkucHVzaChBKTpBIGluc3RhbmNlb2YgX3U/KG58fD1bXSkucHVzaChBKTpzLnB1c2goQSkpO3JldHVybiByJiZzLnB1c2goLi4uciksbiYmcy5wdXNoKC4uLm4pLHN9KSkpfWdldCBqc0FjdGlvbnMoKXtyZXR1cm4gSCh0aGlzLCJqc0FjdGlvbnMiLGpBKHRoaXMueHJlZix0aGlzLnBhZ2VEaWN0LEUpKX19Y29uc3QgdWQ9bmV3IFVpbnQ4QXJyYXkoWzM3LDgwLDY4LDcwLDQ1XSksZGQ9bmV3IFVpbnQ4QXJyYXkoWzExNSwxMTYsOTcsMTE0LDExNiwxMjAsMTE0LDEwMSwxMDJdKSxmZD1uZXcgVWludDhBcnJheShbMTAxLDExMCwxMDAsMTExLDk4LDEwNl0pO2Z1bmN0aW9uIHBkKEEsZSx0PTEwMjQsaT0hMSl7Y29uc3QgYT1lLmxlbmd0aCxzPUEucGVla0J5dGVzKHQpLG49cy5sZW5ndGgtYTtpZihuPD0wKXJldHVybiExO2lmKGkpe2NvbnN0IHQ9YS0xO2xldCBpPXMubGVuZ3RoLTE7Zm9yKDtpPj10Oyl7bGV0IG49MDtmb3IoO248YSYmc1tpLW5dPT09ZVt0LW5dOyluKys7aWYobj49YSlyZXR1cm4gQS5wb3MrPWktdCwhMDtpLS19fWVsc2V7bGV0IHQ9MDtmb3IoO3Q8PW47KXtsZXQgaT0wO2Zvcig7aTxhJiZzW3QraV09PT1lW2ldOylpKys7aWYoaT49YSlyZXR1cm4gQS5wb3MrPXQsITA7dCsrfX1yZXR1cm4hMX1jbGFzcyBtZHtjb25zdHJ1Y3RvcihBLGUpe2lmKGUubGVuZ3RoPD0wKXRocm93IG5ldyBxKCJUaGUgUERGIGZpbGUgaXMgZW1wdHksIGkuZS4gaXRzIHNpemUgaXMgemVybyBieXRlcy4iKTt0aGlzLnBkZk1hbmFnZXI9QSx0aGlzLnN0cmVhbT1lLHRoaXMueHJlZj1uZXcgbGQoZSxBKSx0aGlzLl9wYWdlUHJvbWlzZXM9bmV3IE1hcCx0aGlzLl92ZXJzaW9uPW51bGw7Y29uc3QgdD17Zm9udDowfTt0aGlzLl9nbG9iYWxJZEZhY3Rvcnk9Y2xhc3N7c3RhdGljIGdldERvY0lkKCl7cmV0dXJuYGdfJHtBLmRvY0lkfWB9c3RhdGljIGNyZWF0ZUZvbnRJZCgpe3JldHVybiJmIisgKyt0LmZvbnR9c3RhdGljIGNyZWF0ZU9iaklkKCl7TSgiQWJzdHJhY3QgbWV0aG9kIGBjcmVhdGVPYmpJZGAgY2FsbGVkLiIpfXN0YXRpYyBnZXRQYWdlT2JqSWQoKXtNKCJBYnN0cmFjdCBtZXRob2QgYGdldFBhZ2VPYmpJZGAgY2FsbGVkLiIpfX19cGFyc2UoQSl7dGhpcy54cmVmLnBhcnNlKEEpLHRoaXMuY2F0YWxvZz1uZXcgaG8odGhpcy5wZGZNYW5hZ2VyLHRoaXMueHJlZil9Z2V0IGxpbmVhcml6YXRpb24oKXtsZXQgQT1udWxsO3RyeXtBPWhpLmNyZWF0ZSh0aGlzLnN0cmVhbSl9Y2F0Y2goQSl7aWYoQSBpbnN0YW5jZW9mIGtBKXRocm93IEE7eChBKX1yZXR1cm4gSCh0aGlzLCJsaW5lYXJpemF0aW9uIixBKX1nZXQgc3RhcnRYUmVmKCl7Y29uc3QgQT10aGlzLnN0cmVhbTtsZXQgZT0wO2lmKHRoaXMubGluZWFyaXphdGlvbil7aWYoQS5yZXNldCgpLHBkKEEsZmQpKXtBLnNraXAoNik7bGV0IHQ9QS5wZWVrQnl0ZSgpO2Zvcig7WUEodCk7KUEucG9zKyssdD1BLnBlZWtCeXRlKCk7ZT1BLnBvcy1BLnN0YXJ0fX1lbHNle2NvbnN0IHQ9MTAyNCxpPWRkLmxlbmd0aDtsZXQgYT0hMSxzPUEuZW5kO2Zvcig7IWEmJnM+MDspcy09dC1pLHM8MCYmKHM9MCksQS5wb3M9cyxhPXBkKEEsZGQsdCwhMCk7aWYoYSl7bGV0IHQ7QS5za2lwKDkpO2Rve3Q9QS5nZXRCeXRlKCl9d2hpbGUoWUEodCkpO2xldCBpPSIiO2Zvcig7dD49MzImJnQ8PTU3OylpKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHQpLHQ9QS5nZXRCeXRlKCk7ZT1wYXJzZUludChpLDEwKSxpc05hTihlKSYmKGU9MCl9fXJldHVybiBIKHRoaXMsInN0YXJ0WFJlZiIsZSl9Y2hlY2tIZWFkZXIoKXtjb25zdCBBPXRoaXMuc3RyZWFtO2lmKEEucmVzZXQoKSwhcGQoQSx1ZCkpcmV0dXJuO0EubW92ZVN0YXJ0KCksQS5za2lwKHVkLmxlbmd0aCk7bGV0IGUsdD0iIjtmb3IoOyhlPUEuZ2V0Qnl0ZSgpKT4zMiYmdC5sZW5ndGg8NzspdCs9U3RyaW5nLmZyb21DaGFyQ29kZShlKTtEQS50ZXN0KHQpP3RoaXMuX3ZlcnNpb249dDpVKGBJbnZhbGlkIFBERiBoZWFkZXIgdmVyc2lvbjogJHt0fWApfXBhcnNlU3RhcnRYUmVmKCl7dGhpcy54cmVmLnNldFN0YXJ0WFJlZih0aGlzLnN0YXJ0WFJlZil9Z2V0IG51bVBhZ2VzKCl7bGV0IEE9MDtyZXR1cm4gQT10aGlzLmNhdGFsb2cuaGFzQWN0dWFsTnVtUGFnZXM/dGhpcy5jYXRhbG9nLm51bVBhZ2VzOnRoaXMueGZhRmFjdG9yeT90aGlzLnhmYUZhY3RvcnkuZ2V0TnVtUGFnZXMoKTp0aGlzLmxpbmVhcml6YXRpb24/dGhpcy5saW5lYXJpemF0aW9uLm51bVBhZ2VzOnRoaXMuY2F0YWxvZy5udW1QYWdlcyxIKHRoaXMsIm51bVBhZ2VzIixBKX1faGFzT25seURvY3VtZW50U2lnbmF0dXJlcyhBLGU9MCl7cmV0dXJuISFBcnJheS5pc0FycmF5KEEpJiZBLmV2ZXJ5KChBPT57aWYoISgoQT10aGlzLnhyZWYuZmV0Y2hJZlJlZihBKSlpbnN0YW5jZW9mIFFBKSlyZXR1cm4hMTtpZihBLmhhcygiS2lkcyIpKXJldHVybisrZT4xMD8oVSgiX2hhc09ubHlEb2N1bWVudFNpZ25hdHVyZXM6IG1heGltdW0gcmVjdXJzaW9uIGRlcHRoIHJlYWNoZWQiKSwhMSk6dGhpcy5faGFzT25seURvY3VtZW50U2lnbmF0dXJlcyhBLmdldCgiS2lkcyIpLGUpO2NvbnN0IHQ9ZkEoQS5nZXQoIkZUIiksIlNpZyIpLGk9QS5nZXQoIlJlY3QiKSxhPUFycmF5LmlzQXJyYXkoaSkmJmkuZXZlcnkoKEE9PjA9PT1BKSk7cmV0dXJuIHQmJmF9KSl9Z2V0IF94ZmFTdHJlYW1zKCl7Y29uc3QgQT10aGlzLmNhdGFsb2cuYWNyb0Zvcm07aWYoIUEpcmV0dXJuIG51bGw7Y29uc3QgZT1BLmdldCgiWEZBIiksdD17InhkcDp4ZHAiOiIiLHRlbXBsYXRlOiIiLGRhdGFzZXRzOiIiLGNvbmZpZzoiIixjb25uZWN0aW9uU2V0OiIiLGxvY2FsZVNldDoiIixzdHlsZXNoZWV0OiIiLCIveGRwOnhkcCI6IiJ9O2lmKGUgaW5zdGFuY2VvZiB3QSYmIWUuaXNFbXB0eSlyZXR1cm4gdFsieGRwOnhkcCJdPWUsdDtpZighQXJyYXkuaXNBcnJheShlKXx8MD09PWUubGVuZ3RoKXJldHVybiBudWxsO2ZvcihsZXQgQT0wLGk9ZS5sZW5ndGg7QTxpO0ErPTIpe2xldCBhO2lmKGE9MD09PUE/InhkcDp4ZHAiOkE9PT1pLTI/Ii94ZHA6eGRwIjplW0FdLCF0Lmhhc093blByb3BlcnR5KGEpKWNvbnRpbnVlO2NvbnN0IHM9dGhpcy54cmVmLmZldGNoSWZSZWYoZVtBKzFdKTtzIGluc3RhbmNlb2Ygd0EmJiFzLmlzRW1wdHkmJih0W2FdPXMpfXJldHVybiB0fWdldCB4ZmFEYXRhc2V0cygpe2NvbnN0IEE9dGhpcy5feGZhU3RyZWFtcztpZighQSlyZXR1cm4gSCh0aGlzLCJ4ZmFEYXRhc2V0cyIsbnVsbCk7Zm9yKGNvbnN0IGUgb2ZbImRhdGFzZXRzIiwieGRwOnhkcCJdKXtjb25zdCB0PUFbZV07aWYodCl0cnl7Y29uc3QgQT10QSh0LmdldFN0cmluZygpKTtyZXR1cm4gSCh0aGlzLCJ4ZmFEYXRhc2V0cyIsbmV3IEJkKHtbZV06QX0pKX1jYXRjaHtVKCJYRkEgLSBJbnZhbGlkIHV0Zi04IHN0cmluZy4iKTticmVha319cmV0dXJuIEgodGhpcywieGZhRGF0YXNldHMiLG51bGwpfWdldCB4ZmFEYXRhKCl7Y29uc3QgQT10aGlzLl94ZmFTdHJlYW1zO2lmKCFBKXJldHVybiBudWxsO2NvbnN0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IoY29uc3RbdCxpXW9mIE9iamVjdC5lbnRyaWVzKEEpKWlmKGkpdHJ5e2VbdF09dEEoaS5nZXRTdHJpbmcoKSl9Y2F0Y2h7cmV0dXJuIFUoIlhGQSAtIEludmFsaWQgdXRmLTggc3RyaW5nLiIpLG51bGx9cmV0dXJuIGV9Z2V0IHhmYUZhY3RvcnkoKXtsZXQgQTtyZXR1cm4gdGhpcy5wZGZNYW5hZ2VyLmVuYWJsZVhmYSYmdGhpcy5jYXRhbG9nLm5lZWRzUmVuZGVyaW5nJiZ0aGlzLmZvcm1JbmZvLmhhc1hmYSYmIXRoaXMuZm9ybUluZm8uaGFzQWNyb0Zvcm0mJihBPXRoaXMueGZhRGF0YSksSCh0aGlzLCJ4ZmFGYWN0b3J5IixBP25ldyBNdShBKTpudWxsKX1nZXQgaXNQdXJlWGZhKCl7cmV0dXJuISF0aGlzLnhmYUZhY3RvcnkmJnRoaXMueGZhRmFjdG9yeS5pc1ZhbGlkKCl9Z2V0IGh0bWxGb3JYZmEoKXtyZXR1cm4gdGhpcy54ZmFGYWN0b3J5P3RoaXMueGZhRmFjdG9yeS5nZXRQYWdlcygpOm51bGx9YXN5bmMgbG9hZFhmYUltYWdlcygpe2NvbnN0IEE9YXdhaXQgdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZUNhdGFsb2coInhmYUltYWdlcyIpO2lmKCFBKXJldHVybjtjb25zdCBlPUEuZ2V0S2V5cygpLHQ9bmV3IEJvKEEsZSx0aGlzLnhyZWYpO2F3YWl0IHQubG9hZCgpO2NvbnN0IGk9bmV3IE1hcDtmb3IoY29uc3QgdCBvZiBlKXtjb25zdCBlPUEuZ2V0KHQpO2UgaW5zdGFuY2VvZiB3QSYmaS5zZXQodCxlLmdldEJ5dGVzKCkpfXRoaXMueGZhRmFjdG9yeS5zZXRJbWFnZXMoaSl9YXN5bmMgbG9hZFhmYUZvbnRzKEEsZSl7Y29uc3QgdD1hd2FpdCB0aGlzLnBkZk1hbmFnZXIuZW5zdXJlQ2F0YWxvZygiYWNyb0Zvcm0iKTtpZighdClyZXR1cm47Y29uc3QgaT1hd2FpdCB0LmdldEFzeW5jKCJEUiIpO2lmKCEoaSBpbnN0YW5jZW9mIFFBKSlyZXR1cm47Y29uc3QgYT1uZXcgQm8oaSxbIkZvbnQiXSx0aGlzLnhyZWYpO2F3YWl0IGEubG9hZCgpO2NvbnN0IHM9aS5nZXQoIkZvbnQiKTtpZighKHMgaW5zdGFuY2VvZiBRQSkpcmV0dXJuO2NvbnN0IG49T2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKG51bGwpLHRoaXMucGRmTWFuYWdlci5ldmFsdWF0b3JPcHRpb25zKTtuLnVzZVN5c3RlbUZvbnRzPSExO2NvbnN0IHI9bmV3IENnKHt4cmVmOnRoaXMueHJlZixoYW5kbGVyOkEscGFnZUluZGV4Oi0xLGlkRmFjdG9yeTp0aGlzLl9nbG9iYWxJZEZhY3RvcnksZm9udENhY2hlOnRoaXMuY2F0YWxvZy5mb250Q2FjaGUsYnVpbHRJbkNNYXBDYWNoZTp0aGlzLmNhdGFsb2cuYnVpbHRJbkNNYXBDYWNoZSxzdGFuZGFyZEZvbnREYXRhQ2FjaGU6dGhpcy5jYXRhbG9nLnN0YW5kYXJkRm9udERhdGFDYWNoZSxvcHRpb25zOm59KSxnPW5ldyBhZyxvPVtdLEk9e2dldCBmb250KCl7cmV0dXJuIG8uYXQoLTEpfSxzZXQgZm9udChBKXtvLnB1c2goQSl9LGNsb25lKCl7cmV0dXJuIHRoaXN9fSxjPW5ldyBNYXA7cy5mb3JFYWNoKCgoQSxlKT0+e2Muc2V0KEEsZSl9KSk7Y29uc3QgaD1bXTtmb3IoY29uc3RbQSx0XW9mIGMpe2NvbnN0IGE9dC5nZXQoIkZvbnREZXNjcmlwdG9yIik7aWYoIShhIGluc3RhbmNlb2YgUUEpKWNvbnRpbnVlO2xldCBzPWEuZ2V0KCJGb250RmFtaWx5Iik7cz1zLnJlcGxhY2VBbGwoL1sgXSsoXGQpL2csIiQxIik7Y29uc3Qgbj17Zm9udEZhbWlseTpzLGZvbnRXZWlnaHQ6YS5nZXQoIkZvbnRXZWlnaHQiKSxpdGFsaWNBbmdsZTotYS5nZXQoIkl0YWxpY0FuZ2xlIil9OyRBKG4pJiZoLnB1c2goci5oYW5kbGVTZXRGb250KGksW0NBLmdldChBKSwxXSxudWxsLGcsZSxJLG51bGwsbikuY2F0Y2goKGZ1bmN0aW9uKEEpe3JldHVybiBVKGBsb2FkWGZhRm9udHM6ICIke0F9Ii5gKSxudWxsfSkpKX1hd2FpdCBQcm9taXNlLmFsbChoKTtjb25zdCBDPXRoaXMueGZhRmFjdG9yeS5zZXRGb250cyhvKTtpZighQylyZXR1cm47bi5pZ25vcmVFcnJvcnM9ITAsaC5sZW5ndGg9MCxvLmxlbmd0aD0wO2NvbnN0IEI9bmV3IFNldDtmb3IoY29uc3QgQSBvZiBDKVZuKGAke0F9LVJlZ3VsYXJgKXx8Qi5hZGQoQSk7Qi5zaXplJiZDLnB1c2goIlBkZkpTLUZhbGxiYWNrIik7Zm9yKGNvbnN0IEEgb2YgQylpZighQi5oYXMoQSkpZm9yKGNvbnN0IHQgb2Zbe25hbWU6IlJlZ3VsYXIiLGZvbnRXZWlnaHQ6NDAwLGl0YWxpY0FuZ2xlOjB9LHtuYW1lOiJCb2xkIixmb250V2VpZ2h0OjcwMCxpdGFsaWNBbmdsZTowfSx7bmFtZToiSXRhbGljIixmb250V2VpZ2h0OjQwMCxpdGFsaWNBbmdsZToxMn0se25hbWU6IkJvbGRJdGFsaWMiLGZvbnRXZWlnaHQ6NzAwLGl0YWxpY0FuZ2xlOjEyfV0pe2NvbnN0IGE9YCR7QX0tJHt0Lm5hbWV9YCxzPV9uKGEpO2gucHVzaChyLmhhbmRsZVNldEZvbnQoaSxbQ0EuZ2V0KGEpLDFdLG51bGwsZyxlLEkscyx7Zm9udEZhbWlseTpBLGZvbnRXZWlnaHQ6dC5mb250V2VpZ2h0LGl0YWxpY0FuZ2xlOnQuaXRhbGljQW5nbGV9KS5jYXRjaCgoZnVuY3Rpb24oQSl7cmV0dXJuIFUoYGxvYWRYZmFGb250czogIiR7QX0iLmApLG51bGx9KSkpfWF3YWl0IFByb21pc2UuYWxsKGgpLHRoaXMueGZhRmFjdG9yeS5hcHBlbmRGb250cyhvLEIpfWFzeW5jIHNlcmlhbGl6ZVhmYURhdGEoQSl7cmV0dXJuIHRoaXMueGZhRmFjdG9yeT90aGlzLnhmYUZhY3Rvcnkuc2VyaWFsaXplRGF0YShBKTpudWxsfWdldCB2ZXJzaW9uKCl7cmV0dXJuIHRoaXMuY2F0YWxvZy52ZXJzaW9ufHx0aGlzLl92ZXJzaW9ufWdldCBmb3JtSW5mbygpe2NvbnN0IEE9e2hhc0ZpZWxkczohMSxoYXNBY3JvRm9ybTohMSxoYXNYZmE6ITEsaGFzU2lnbmF0dXJlczohMX0sZT10aGlzLmNhdGFsb2cuYWNyb0Zvcm07aWYoIWUpcmV0dXJuIEgodGhpcywiZm9ybUluZm8iLEEpO3RyeXtjb25zdCB0PWUuZ2V0KCJGaWVsZHMiKSxpPUFycmF5LmlzQXJyYXkodCkmJnQubGVuZ3RoPjA7QS5oYXNGaWVsZHM9aTtjb25zdCBhPWUuZ2V0KCJYRkEiKTtBLmhhc1hmYT1BcnJheS5pc0FycmF5KGEpJiZhLmxlbmd0aD4wfHxhIGluc3RhbmNlb2Ygd0EmJiFhLmlzRW1wdHk7Y29uc3Qgcz0hISgxJmUuZ2V0KCJTaWdGbGFncyIpKSxuPXMmJnRoaXMuX2hhc09ubHlEb2N1bWVudFNpZ25hdHVyZXModCk7QS5oYXNBY3JvRm9ybT1pJiYhbixBLmhhc1NpZ25hdHVyZXM9c31jYXRjaChBKXtpZihBIGluc3RhbmNlb2Yga0EpdGhyb3cgQTtVKGBDYW5ub3QgZmV0Y2ggZm9ybSBpbmZvcm1hdGlvbjogIiR7QX0iLmApfXJldHVybiBIKHRoaXMsImZvcm1JbmZvIixBKX1nZXQgZG9jdW1lbnRJbmZvKCl7Y29uc3QgQT17UERGRm9ybWF0VmVyc2lvbjp0aGlzLnZlcnNpb24sTGFuZ3VhZ2U6dGhpcy5jYXRhbG9nLmxhbmcsRW5jcnlwdEZpbHRlck5hbWU6dGhpcy54cmVmLmVuY3J5cHQ/dGhpcy54cmVmLmVuY3J5cHQuZmlsdGVyTmFtZTpudWxsLElzTGluZWFyaXplZDohIXRoaXMubGluZWFyaXphdGlvbixJc0Fjcm9Gb3JtUHJlc2VudDp0aGlzLmZvcm1JbmZvLmhhc0Fjcm9Gb3JtLElzWEZBUHJlc2VudDp0aGlzLmZvcm1JbmZvLmhhc1hmYSxJc0NvbGxlY3Rpb25QcmVzZW50OiEhdGhpcy5jYXRhbG9nLmNvbGxlY3Rpb24sSXNTaWduYXR1cmVzUHJlc2VudDp0aGlzLmZvcm1JbmZvLmhhc1NpZ25hdHVyZXN9O2xldCBlO3RyeXtlPXRoaXMueHJlZi50cmFpbGVyLmdldCgiSW5mbyIpfWNhdGNoKEEpe2lmKEEgaW5zdGFuY2VvZiBrQSl0aHJvdyBBO3goIlRoZSBkb2N1bWVudCBpbmZvcm1hdGlvbiBkaWN0aW9uYXJ5IGlzIGludmFsaWQuIil9aWYoIShlIGluc3RhbmNlb2YgUUEpKXJldHVybiBIKHRoaXMsImRvY3VtZW50SW5mbyIsQSk7Zm9yKGNvbnN0IHQgb2YgZS5nZXRLZXlzKCkpe2NvbnN0IGk9ZS5nZXQodCk7c3dpdGNoKHQpe2Nhc2UiVGl0bGUiOmNhc2UiQXV0aG9yIjpjYXNlIlN1YmplY3QiOmNhc2UiS2V5d29yZHMiOmNhc2UiQ3JlYXRvciI6Y2FzZSJQcm9kdWNlciI6Y2FzZSJDcmVhdGlvbkRhdGUiOmNhc2UiTW9kRGF0ZSI6aWYoInN0cmluZyI9PXR5cGVvZiBpKXtBW3RdPWVBKGkpO2NvbnRpbnVlfWJyZWFrO2Nhc2UiVHJhcHBlZCI6aWYoaSBpbnN0YW5jZW9mIENBKXtBW3RdPWk7Y29udGludWV9YnJlYWs7ZGVmYXVsdDpsZXQgZTtzd2l0Y2godHlwZW9mIGkpe2Nhc2Uic3RyaW5nIjplPWVBKGkpO2JyZWFrO2Nhc2UibnVtYmVyIjpjYXNlImJvb2xlYW4iOmU9aTticmVhaztkZWZhdWx0OmkgaW5zdGFuY2VvZiBDQSYmKGU9aSl9aWYodm9pZCAwPT09ZSl7VShgQmFkIHZhbHVlLCBmb3IgY3VzdG9tIGtleSAiJHt0fSIsIGluIEluZm86ICR7aX0uYCk7Y29udGludWV9QS5DdXN0b218fChBLkN1c3RvbT1PYmplY3QuY3JlYXRlKG51bGwpKSxBLkN1c3RvbVt0XT1lO2NvbnRpbnVlfVUoYEJhZCB2YWx1ZSwgZm9yIGtleSAiJHt0fSIsIGluIEluZm86ICR7aX0uYCl9cmV0dXJuIEgodGhpcywiZG9jdW1lbnRJbmZvIixBKX1nZXQgZmluZ2VycHJpbnRzKCl7ZnVuY3Rpb24gQShBKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIEEmJkEubGVuZ3RoPjAmJiJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIhPT1BfWZ1bmN0aW9uIGUoQSl7Y29uc3QgZT1bXTtmb3IoY29uc3QgdCBvZiBBKXtjb25zdCBBPXQudG9TdHJpbmcoMTYpO2UucHVzaChBLnBhZFN0YXJ0KDIsIjAiKSl9cmV0dXJuIGUuam9pbigiIil9Y29uc3QgdD10aGlzLnhyZWYudHJhaWxlci5nZXQoIklEIik7bGV0IGksYTtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KSYmQSh0WzBdKT8oaT1qKHRbMF0pLHRbMV0hPT10WzBdJiZBKHRbMV0pJiYoYT1qKHRbMV0pKSk6aT1KZyh0aGlzLnN0cmVhbS5nZXRCeXRlUmFuZ2UoMCwxMDI0KSwwLDEwMjQpLEgodGhpcywiZmluZ2VycHJpbnRzIixbZShpKSxhP2UoYSk6bnVsbF0pfWFzeW5jIF9nZXRMaW5lYXJpemF0aW9uUGFnZShBKXtjb25zdHtjYXRhbG9nOmUsbGluZWFyaXphdGlvbjp0LHhyZWY6aX09dGhpcyxhPUVBLmdldCh0Lm9iamVjdE51bWJlckZpcnN0LDApO3RyeXtjb25zdCBBPWF3YWl0IGkuZmV0Y2hBc3luYyhhKTtpZihBIGluc3RhbmNlb2YgUUEpe2xldCB0PUEuZ2V0UmF3KCJUeXBlIik7aWYodCBpbnN0YW5jZW9mIEVBJiYodD1hd2FpdCBpLmZldGNoQXN5bmModCkpLGZBKHQsIlBhZ2UiKXx8IUEuaGFzKCJUeXBlIikmJiFBLmhhcygiS2lkcyIpJiZBLmhhcygiQ29udGVudHMiKSlyZXR1cm4gZS5wYWdlS2lkc0NvdW50Q2FjaGUuaGFzKGEpfHxlLnBhZ2VLaWRzQ291bnRDYWNoZS5wdXQoYSwxKSxlLnBhZ2VJbmRleENhY2hlLmhhcyhhKXx8ZS5wYWdlSW5kZXhDYWNoZS5wdXQoYSwwKSxbQSxhXX10aHJvdyBuZXcgVygiVGhlIExpbmVhcml6YXRpb24gZGljdGlvbmFyeSBkb2Vzbid0IHBvaW50IHRvIGEgdmFsaWQgUGFnZSBkaWN0aW9uYXJ5LiIpfWNhdGNoKHQpe3JldHVybiBVKGBfZ2V0TGluZWFyaXphdGlvblBhZ2U6ICIke3QubWVzc2FnZX0iLmApLGUuZ2V0UGFnZURpY3QoQSl9fWdldFBhZ2UoQSl7Y29uc3QgZT10aGlzLl9wYWdlUHJvbWlzZXMuZ2V0KEEpO2lmKGUpcmV0dXJuIGU7Y29uc3R7Y2F0YWxvZzp0LGxpbmVhcml6YXRpb246aSx4ZmFGYWN0b3J5OmF9PXRoaXM7bGV0IHM7cmV0dXJuIHM9YT9Qcm9taXNlLnJlc29sdmUoW1FBLmVtcHR5LG51bGxdKTppPy5wYWdlRmlyc3Q9PT1BP3RoaXMuX2dldExpbmVhcml6YXRpb25QYWdlKEEpOnQuZ2V0UGFnZURpY3QoQSkscz1zLnRoZW4oKChbZSxpXSk9Pm5ldyBFZCh7cGRmTWFuYWdlcjp0aGlzLnBkZk1hbmFnZXIseHJlZjp0aGlzLnhyZWYscGFnZUluZGV4OkEscGFnZURpY3Q6ZSxyZWY6aSxnbG9iYWxJZEZhY3Rvcnk6dGhpcy5fZ2xvYmFsSWRGYWN0b3J5LGZvbnRDYWNoZTp0LmZvbnRDYWNoZSxidWlsdEluQ01hcENhY2hlOnQuYnVpbHRJbkNNYXBDYWNoZSxzdGFuZGFyZEZvbnREYXRhQ2FjaGU6dC5zdGFuZGFyZEZvbnREYXRhQ2FjaGUsZ2xvYmFsSW1hZ2VDYWNoZTp0Lmdsb2JhbEltYWdlQ2FjaGUsc3lzdGVtRm9udENhY2hlOnQuc3lzdGVtRm9udENhY2hlLG5vbkJsZW5kTW9kZXNTZXQ6dC5ub25CbGVuZE1vZGVzU2V0LHhmYUZhY3Rvcnk6YX0pKSksdGhpcy5fcGFnZVByb21pc2VzLnNldChBLHMpLHN9YXN5bmMgY2hlY2tGaXJzdFBhZ2UoQT0hMSl7aWYoIUEpdHJ5e2F3YWl0IHRoaXMuZ2V0UGFnZSgwKX1jYXRjaChBKXtpZihBIGluc3RhbmNlb2YgU0EpdGhyb3cgdGhpcy5fcGFnZVByb21pc2VzLmRlbGV0ZSgwKSxhd2FpdCB0aGlzLmNsZWFudXAoKSxuZXcgUkF9fWFzeW5jIGNoZWNrTGFzdFBhZ2UoQT0hMSl7Y29uc3R7Y2F0YWxvZzplLHBkZk1hbmFnZXI6dH09dGhpcztsZXQgaTtlLnNldEFjdHVhbE51bVBhZ2VzKCk7dHJ5e2lmKGF3YWl0IFByb21pc2UuYWxsKFt0LmVuc3VyZURvYygieGZhRmFjdG9yeSIpLHQuZW5zdXJlRG9jKCJsaW5lYXJpemF0aW9uIiksdC5lbnN1cmVDYXRhbG9nKCJudW1QYWdlcyIpXSksdGhpcy54ZmFGYWN0b3J5KXJldHVybjtpZihpPXRoaXMubGluZWFyaXphdGlvbj90aGlzLmxpbmVhcml6YXRpb24ubnVtUGFnZXM6ZS5udW1QYWdlcywhTnVtYmVyLmlzSW50ZWdlcihpKSl0aHJvdyBuZXcgVygiUGFnZSBjb3VudCBpcyBub3QgYW4gaW50ZWdlci4iKTtpZihpPD0xKXJldHVybjthd2FpdCB0aGlzLmdldFBhZ2UoaS0xKX1jYXRjaChhKXtpZih0aGlzLl9wYWdlUHJvbWlzZXMuZGVsZXRlKGktMSksYXdhaXQgdGhpcy5jbGVhbnVwKCksYSBpbnN0YW5jZW9mIFNBJiYhQSl0aHJvdyBuZXcgUkE7bGV0IHM7VShgY2hlY2tMYXN0UGFnZSAtIGludmFsaWQgL1BhZ2VzIHRyZWUgL0NvdW50OiAke2l9LmApO3RyeXtzPWF3YWl0IGUuZ2V0QWxsUGFnZURpY3RzKEEpfWNhdGNoKHQpe2lmKHQgaW5zdGFuY2VvZiBTQSYmIUEpdGhyb3cgbmV3IFJBO3JldHVybiB2b2lkIGUuc2V0QWN0dWFsTnVtUGFnZXMoMSl9Zm9yKGNvbnN0W0EsW2ksYV1db2Ygcyl7bGV0IHM7aSBpbnN0YW5jZW9mIEVycm9yPyhzPVByb21pc2UucmVqZWN0KGkpLHMuY2F0Y2goKCgpPT57fSkpKTpzPVByb21pc2UucmVzb2x2ZShuZXcgRWQoe3BkZk1hbmFnZXI6dCx4cmVmOnRoaXMueHJlZixwYWdlSW5kZXg6QSxwYWdlRGljdDppLHJlZjphLGdsb2JhbElkRmFjdG9yeTp0aGlzLl9nbG9iYWxJZEZhY3RvcnksZm9udENhY2hlOmUuZm9udENhY2hlLGJ1aWx0SW5DTWFwQ2FjaGU6ZS5idWlsdEluQ01hcENhY2hlLHN0YW5kYXJkRm9udERhdGFDYWNoZTplLnN0YW5kYXJkRm9udERhdGFDYWNoZSxnbG9iYWxJbWFnZUNhY2hlOmUuZ2xvYmFsSW1hZ2VDYWNoZSxzeXN0ZW1Gb250Q2FjaGU6ZS5zeXN0ZW1Gb250Q2FjaGUsbm9uQmxlbmRNb2Rlc1NldDplLm5vbkJsZW5kTW9kZXNTZXQseGZhRmFjdG9yeTpudWxsfSkpLHRoaXMuX3BhZ2VQcm9taXNlcy5zZXQoQSxzKX1lLnNldEFjdHVhbE51bVBhZ2VzKHMuc2l6ZSl9fWZvbnRGYWxsYmFjayhBLGUpe3JldHVybiB0aGlzLmNhdGFsb2cuZm9udEZhbGxiYWNrKEEsZSl9YXN5bmMgY2xlYW51cChBPSExKXtyZXR1cm4gdGhpcy5jYXRhbG9nP3RoaXMuY2F0YWxvZy5jbGVhbnVwKEEpOmtnKCl9YXN5bmMjVyhBLGUsdCxpLGEscyxuKXtjb25zdHt4cmVmOnJ9PXRoaXM7aWYoISh0IGluc3RhbmNlb2YgRUEpfHxzLmhhcyh0KSlyZXR1cm47cy5wdXQodCk7Y29uc3QgZz1hd2FpdCByLmZldGNoQXN5bmModCk7aWYoIShnIGluc3RhbmNlb2YgUUEpKXJldHVybjtpZihnLmhhcygiVCIpKXtjb25zdCBlPWVBKGF3YWl0IGcuZ2V0QXN5bmMoIlQiKSk7QT0iIj09PUE/ZTpgJHtBfS4ke2V9YH1lbHNle2xldCB0PWc7Zm9yKDs7KXtpZih0PXQuZ2V0UmF3KCJQYXJlbnQiKXx8ZSx0IGluc3RhbmNlb2YgRUEpe2lmKHMuaGFzKHQpKWJyZWFrO3Q9YXdhaXQgci5mZXRjaEFzeW5jKHQpfWlmKCEodCBpbnN0YW5jZW9mIFFBKSlicmVhaztpZih0LmhhcygiVCIpKXtjb25zdCBlPWVBKGF3YWl0IHQuZ2V0QXN5bmMoIlQiKSk7QT0iIj09PUE/ZTpgJHtBfS4ke2V9YDticmVha319fWlmKGUmJiFnLmhhcygiUGFyZW50IikmJmZBKGcuZ2V0KCJTdWJ0eXBlIiksIldpZGdldCIpJiZuLnB1dCh0LGUpLGkuaGFzKEEpfHxpLnNldChBLFtdKSxpLmdldChBKS5wdXNoKEx1LmNyZWF0ZShyLHQsYSxudWxsLCEwLG4sbnVsbCkudGhlbigoQT0+QT8uZ2V0RmllbGRPYmplY3QoKSkpLmNhdGNoKChmdW5jdGlvbihBKXtyZXR1cm4gVShgI2NvbGxlY3RGaWVsZE9iamVjdHM6ICIke0F9Ii5gKSxudWxsfSkpKSwhZy5oYXMoIktpZHMiKSlyZXR1cm47Y29uc3Qgbz1hd2FpdCBnLmdldEFzeW5jKCJLaWRzIik7aWYoQXJyYXkuaXNBcnJheShvKSlmb3IoY29uc3QgZSBvZiBvKWF3YWl0IHRoaXMuI1coQSx0LGUsaSxhLHMsbil9Z2V0IGZpZWxkT2JqZWN0cygpe3JldHVybiB0aGlzLmZvcm1JbmZvLmhhc0ZpZWxkcz9IKHRoaXMsImZpZWxkT2JqZWN0cyIsUHJvbWlzZS5hbGwoW3RoaXMucGRmTWFuYWdlci5lbnN1cmVEb2MoImFubm90YXRpb25HbG9iYWxzIiksdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZUNhdGFsb2coImFjcm9Gb3JtIildKS50aGVuKChhc3luYyhbQSxlXSk9PntpZighQSlyZXR1cm4gbnVsbDtjb25zdCB0PW5ldyB1QSxpPU9iamVjdC5jcmVhdGUobnVsbCksYT1uZXcgTWFwLHM9bmV3IGRBO2Zvcihjb25zdCBpIG9mIGF3YWl0IGUuZ2V0QXN5bmMoIkZpZWxkcyIpKWF3YWl0IHRoaXMuI1coIiIsbnVsbCxpLGEsQSx0LHMpO2NvbnN0IG49W107Zm9yKGNvbnN0W0EsZV1vZiBhKW4ucHVzaChQcm9taXNlLmFsbChlKS50aGVuKChlPT57KGU9ZS5maWx0ZXIoKEE9PiEhQSkpKS5sZW5ndGg+MCYmKGlbQV09ZSl9KSkpO3JldHVybiBhd2FpdCBQcm9taXNlLmFsbChuKSx7YWxsRmllbGRzOmksb3JwaGFuRmllbGRzOnN9fSkpKTpIKHRoaXMsImZpZWxkT2JqZWN0cyIsUHJvbWlzZS5yZXNvbHZlKG51bGwpKX1nZXQgaGFzSlNBY3Rpb25zKCl7cmV0dXJuIEgodGhpcywiaGFzSlNBY3Rpb25zIix0aGlzLnBkZk1hbmFnZXIuZW5zdXJlRG9jKCJfcGFyc2VIYXNKU0FjdGlvbnMiKSl9YXN5bmMgX3BhcnNlSGFzSlNBY3Rpb25zKCl7Y29uc3RbQSxlXT1hd2FpdCBQcm9taXNlLmFsbChbdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZUNhdGFsb2coImpzQWN0aW9ucyIpLHRoaXMucGRmTWFuYWdlci5lbnN1cmVEb2MoImZpZWxkT2JqZWN0cyIpXSk7cmV0dXJuISFBfHwhIWUmJk9iamVjdC52YWx1ZXMoZS5hbGxGaWVsZHMpLnNvbWUoKEE9PkEuc29tZSgoQT0+bnVsbCE9PUEuYWN0aW9ucykpKSl9Z2V0IGNhbGN1bGF0aW9uT3JkZXJJZHMoKXtjb25zdCBBPXRoaXMuY2F0YWxvZy5hY3JvRm9ybTtpZighQT8uaGFzKCJDTyIpKXJldHVybiBIKHRoaXMsImNhbGN1bGF0aW9uT3JkZXJJZHMiLG51bGwpO2NvbnN0IGU9QS5nZXQoIkNPIik7aWYoIUFycmF5LmlzQXJyYXkoZSl8fDA9PT1lLmxlbmd0aClyZXR1cm4gSCh0aGlzLCJjYWxjdWxhdGlvbk9yZGVySWRzIixudWxsKTtjb25zdCB0PVtdO2Zvcihjb25zdCBBIG9mIGUpQSBpbnN0YW5jZW9mIEVBJiZ0LnB1c2goQS50b1N0cmluZygpKTtyZXR1cm4gMD09PXQubGVuZ3RoP0godGhpcywiY2FsY3VsYXRpb25PcmRlcklkcyIsbnVsbCk6SCh0aGlzLCJjYWxjdWxhdGlvbk9yZGVySWRzIix0KX1nZXQgYW5ub3RhdGlvbkdsb2JhbHMoKXtyZXR1cm4gSCh0aGlzLCJhbm5vdGF0aW9uR2xvYmFscyIsTHUuY3JlYXRlR2xvYmFscyh0aGlzLnBkZk1hbmFnZXIpKX19Y2xhc3MgeWR7Y29uc3RydWN0b3IoQSl7dGhpcy5fZG9jQmFzZVVybD1mdW5jdGlvbihBKXtpZihBKXtjb25zdCBlPUooQSk7aWYoZSlyZXR1cm4gZS5ocmVmO1UoYEludmFsaWQgYWJzb2x1dGUgZG9jQmFzZVVybDogIiR7QX0iLmApfXJldHVybiBudWxsfShBLmRvY0Jhc2VVcmwpLHRoaXMuX2RvY0lkPUEuZG9jSWQsdGhpcy5fcGFzc3dvcmQ9QS5wYXNzd29yZCx0aGlzLmVuYWJsZVhmYT1BLmVuYWJsZVhmYSxBLmV2YWx1YXRvck9wdGlvbnMuaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQmJj1fLmlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkLHRoaXMuZXZhbHVhdG9yT3B0aW9ucz1PYmplY3QuZnJlZXplKEEuZXZhbHVhdG9yT3B0aW9ucyl9Z2V0IGRvY0lkKCl7cmV0dXJuIHRoaXMuX2RvY0lkfWdldCBwYXNzd29yZCgpe3JldHVybiB0aGlzLl9wYXNzd29yZH1nZXQgZG9jQmFzZVVybCgpe3JldHVybiB0aGlzLl9kb2NCYXNlVXJsfWdldCBjYXRhbG9nKCl7cmV0dXJuIHRoaXMucGRmRG9jdW1lbnQuY2F0YWxvZ31lbnN1cmVEb2MoQSxlKXtyZXR1cm4gdGhpcy5lbnN1cmUodGhpcy5wZGZEb2N1bWVudCxBLGUpfWVuc3VyZVhSZWYoQSxlKXtyZXR1cm4gdGhpcy5lbnN1cmUodGhpcy5wZGZEb2N1bWVudC54cmVmLEEsZSl9ZW5zdXJlQ2F0YWxvZyhBLGUpe3JldHVybiB0aGlzLmVuc3VyZSh0aGlzLnBkZkRvY3VtZW50LmNhdGFsb2csQSxlKX1nZXRQYWdlKEEpe3JldHVybiB0aGlzLnBkZkRvY3VtZW50LmdldFBhZ2UoQSl9Zm9udEZhbGxiYWNrKEEsZSl7cmV0dXJuIHRoaXMucGRmRG9jdW1lbnQuZm9udEZhbGxiYWNrKEEsZSl9bG9hZFhmYUZvbnRzKEEsZSl7cmV0dXJuIHRoaXMucGRmRG9jdW1lbnQubG9hZFhmYUZvbnRzKEEsZSl9bG9hZFhmYUltYWdlcygpe3JldHVybiB0aGlzLnBkZkRvY3VtZW50LmxvYWRYZmFJbWFnZXMoKX1zZXJpYWxpemVYZmFEYXRhKEEpe3JldHVybiB0aGlzLnBkZkRvY3VtZW50LnNlcmlhbGl6ZVhmYURhdGEoQSl9Y2xlYW51cChBPSExKXtyZXR1cm4gdGhpcy5wZGZEb2N1bWVudC5jbGVhbnVwKEEpfWFzeW5jIGVuc3VyZShBLGUsdCl7TSgiQWJzdHJhY3QgbWV0aG9kIGBlbnN1cmVgIGNhbGxlZCIpfXJlcXVlc3RSYW5nZShBLGUpe00oIkFic3RyYWN0IG1ldGhvZCBgcmVxdWVzdFJhbmdlYCBjYWxsZWQiKX1yZXF1ZXN0TG9hZGVkU3RyZWFtKEE9ITEpe00oIkFic3RyYWN0IG1ldGhvZCBgcmVxdWVzdExvYWRlZFN0cmVhbWAgY2FsbGVkIil9c2VuZFByb2dyZXNzaXZlRGF0YShBKXtNKCJBYnN0cmFjdCBtZXRob2QgYHNlbmRQcm9ncmVzc2l2ZURhdGFgIGNhbGxlZCIpfXVwZGF0ZVBhc3N3b3JkKEEpe3RoaXMuX3Bhc3N3b3JkPUF9dGVybWluYXRlKEEpe00oIkFic3RyYWN0IG1ldGhvZCBgdGVybWluYXRlYCBjYWxsZWQiKX19Y2xhc3Mgd2QgZXh0ZW5kcyB5ZHtjb25zdHJ1Y3RvcihBKXtzdXBlcihBKTtjb25zdCBlPW5ldyBnZShBLnNvdXJjZSk7dGhpcy5wZGZEb2N1bWVudD1uZXcgbWQodGhpcyxlKSx0aGlzLl9sb2FkZWRTdHJlYW1Qcm9taXNlPVByb21pc2UucmVzb2x2ZShlKX1hc3luYyBlbnN1cmUoQSxlLHQpe2NvbnN0IGk9QVtlXTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgaT9pLmFwcGx5KEEsdCk6aX1yZXF1ZXN0UmFuZ2UoQSxlKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCl9cmVxdWVzdExvYWRlZFN0cmVhbShBPSExKXtyZXR1cm4gdGhpcy5fbG9hZGVkU3RyZWFtUHJvbWlzZX10ZXJtaW5hdGUoQSl7fX1jbGFzcyBEZCBleHRlbmRzIHlke2NvbnN0cnVjdG9yKEEpe3N1cGVyKEEpLHRoaXMuc3RyZWFtTWFuYWdlcj1uZXcgaGUoQS5zb3VyY2Use21zZ0hhbmRsZXI6QS5oYW5kbGVyLGxlbmd0aDpBLmxlbmd0aCxkaXNhYmxlQXV0b0ZldGNoOkEuZGlzYWJsZUF1dG9GZXRjaCxyYW5nZUNodW5rU2l6ZTpBLnJhbmdlQ2h1bmtTaXplfSksdGhpcy5wZGZEb2N1bWVudD1uZXcgbWQodGhpcyx0aGlzLnN0cmVhbU1hbmFnZXIuZ2V0U3RyZWFtKCkpfWFzeW5jIGVuc3VyZShBLGUsdCl7dHJ5e2NvbnN0IGk9QVtlXTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgaT9pLmFwcGx5KEEsdCk6aX1jYXRjaChpKXtpZighKGkgaW5zdGFuY2VvZiBrQSkpdGhyb3cgaTtyZXR1cm4gYXdhaXQgdGhpcy5yZXF1ZXN0UmFuZ2UoaS5iZWdpbixpLmVuZCksdGhpcy5lbnN1cmUoQSxlLHQpfX1yZXF1ZXN0UmFuZ2UoQSxlKXtyZXR1cm4gdGhpcy5zdHJlYW1NYW5hZ2VyLnJlcXVlc3RSYW5nZShBLGUpfXJlcXVlc3RMb2FkZWRTdHJlYW0oQT0hMSl7cmV0dXJuIHRoaXMuc3RyZWFtTWFuYWdlci5yZXF1ZXN0QWxsQ2h1bmtzKEEpfXNlbmRQcm9ncmVzc2l2ZURhdGEoQSl7dGhpcy5zdHJlYW1NYW5hZ2VyLm9uUmVjZWl2ZURhdGEoe2NodW5rOkF9KX10ZXJtaW5hdGUoQSl7dGhpcy5zdHJlYW1NYW5hZ2VyLmFib3J0KEEpfX1mdW5jdGlvbiBiZChBKXtzd2l0Y2goQSBpbnN0YW5jZW9mIEVycm9yfHwib2JqZWN0Ij09dHlwZW9mIEEmJm51bGwhPT1BfHxNKCd3cmFwUmVhc29uOiBFeHBlY3RlZCAicmVhc29uIiB0byBiZSBhIChwb3NzaWJseSBjbG9uZWQpIEVycm9yLicpLEEubmFtZSl7Y2FzZSJBYm9ydEV4Y2VwdGlvbiI6cmV0dXJuIG5ldyBPKEEubWVzc2FnZSk7Y2FzZSJNaXNzaW5nUERGRXhjZXB0aW9uIjpyZXR1cm4gbmV3IFQoQS5tZXNzYWdlKTtjYXNlIlBhc3N3b3JkRXhjZXB0aW9uIjpyZXR1cm4gbmV3IHYoQS5tZXNzYWdlLEEuY29kZSk7Y2FzZSJVbmV4cGVjdGVkUmVzcG9uc2VFeGNlcHRpb24iOnJldHVybiBuZXcgUChBLm1lc3NhZ2UsQS5zdGF0dXMpO2Nhc2UiVW5rbm93bkVycm9yRXhjZXB0aW9uIjpyZXR1cm4gbmV3IEsoQS5tZXNzYWdlLEEuZGV0YWlscyk7ZGVmYXVsdDpyZXR1cm4gbmV3IEsoQS5tZXNzYWdlLEEudG9TdHJpbmcoKSl9fWNsYXNzIGtke2NvbnN0cnVjdG9yKEEsZSx0KXt0aGlzLnNvdXJjZU5hbWU9QSx0aGlzLnRhcmdldE5hbWU9ZSx0aGlzLmNvbU9iaj10LHRoaXMuY2FsbGJhY2tJZD0xLHRoaXMuc3RyZWFtSWQ9MSx0aGlzLnN0cmVhbVNpbmtzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5zdHJlYW1Db250cm9sbGVycz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuY2FsbGJhY2tDYXBhYmlsaXRpZXM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLmFjdGlvbkhhbmRsZXI9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9vbkNvbU9iak9uTWVzc2FnZT1BPT57Y29uc3QgZT1BLmRhdGE7aWYoZS50YXJnZXROYW1lIT09dGhpcy5zb3VyY2VOYW1lKXJldHVybjtpZihlLnN0cmVhbSlyZXR1cm4gdm9pZCB0aGlzLiNPKGUpO2lmKGUuY2FsbGJhY2spe2NvbnN0IEE9ZS5jYWxsYmFja0lkLHQ9dGhpcy5jYWxsYmFja0NhcGFiaWxpdGllc1tBXTtpZighdCl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZXNvbHZlIGNhbGxiYWNrICR7QX1gKTtpZihkZWxldGUgdGhpcy5jYWxsYmFja0NhcGFiaWxpdGllc1tBXSwxPT09ZS5jYWxsYmFjayl0LnJlc29sdmUoZS5kYXRhKTtlbHNle2lmKDIhPT1lLmNhbGxiYWNrKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBjYWxsYmFjayBjYXNlIik7dC5yZWplY3QoYmQoZS5yZWFzb24pKX1yZXR1cm59Y29uc3QgaT10aGlzLmFjdGlvbkhhbmRsZXJbZS5hY3Rpb25dO2lmKCFpKXRocm93IG5ldyBFcnJvcihgVW5rbm93biBhY3Rpb24gZnJvbSB3b3JrZXI6ICR7ZS5hY3Rpb259YCk7aWYoZS5jYWxsYmFja0lkKXtjb25zdCBBPXRoaXMuc291cmNlTmFtZSxhPWUuc291cmNlTmFtZTtuZXcgUHJvbWlzZSgoZnVuY3Rpb24oQSl7QShpKGUuZGF0YSkpfSkpLnRoZW4oKGZ1bmN0aW9uKGkpe3QucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6QSx0YXJnZXROYW1lOmEsY2FsbGJhY2s6MSxjYWxsYmFja0lkOmUuY2FsbGJhY2tJZCxkYXRhOml9KX0pLChmdW5jdGlvbihpKXt0LnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOkEsdGFyZ2V0TmFtZTphLGNhbGxiYWNrOjIsY2FsbGJhY2tJZDplLmNhbGxiYWNrSWQscmVhc29uOmJkKGkpfSl9KSl9ZWxzZSBlLnN0cmVhbUlkP3RoaXMuI1ooZSk6aShlLmRhdGEpfSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHRoaXMuX29uQ29tT2JqT25NZXNzYWdlKX1vbihBLGUpe2NvbnN0IHQ9dGhpcy5hY3Rpb25IYW5kbGVyO2lmKHRbQV0pdGhyb3cgbmV3IEVycm9yKGBUaGVyZSBpcyBhbHJlYWR5IGFuIGFjdGlvbk5hbWUgY2FsbGVkICIke0F9ImApO3RbQV09ZX1zZW5kKEEsZSx0KXt0aGlzLmNvbU9iai5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTp0aGlzLnNvdXJjZU5hbWUsdGFyZ2V0TmFtZTp0aGlzLnRhcmdldE5hbWUsYWN0aW9uOkEsZGF0YTplfSx0KX1zZW5kV2l0aFByb21pc2UoQSxlLHQpe2NvbnN0IGk9dGhpcy5jYWxsYmFja0lkKyssYT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKTt0aGlzLmNhbGxiYWNrQ2FwYWJpbGl0aWVzW2ldPWE7dHJ5e3RoaXMuY29tT2JqLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOnRoaXMuc291cmNlTmFtZSx0YXJnZXROYW1lOnRoaXMudGFyZ2V0TmFtZSxhY3Rpb246QSxjYWxsYmFja0lkOmksZGF0YTplfSx0KX1jYXRjaChBKXthLnJlamVjdChBKX1yZXR1cm4gYS5wcm9taXNlfXNlbmRXaXRoU3RyZWFtKEEsZSx0LGkpe2NvbnN0IGE9dGhpcy5zdHJlYW1JZCsrLHM9dGhpcy5zb3VyY2VOYW1lLG49dGhpcy50YXJnZXROYW1lLHI9dGhpcy5jb21PYmo7cmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7c3RhcnQ6dD0+e2NvbnN0IGc9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7cmV0dXJuIHRoaXMuc3RyZWFtQ29udHJvbGxlcnNbYV09e2NvbnRyb2xsZXI6dCxzdGFydENhbGw6ZyxwdWxsQ2FsbDpudWxsLGNhbmNlbENhbGw6bnVsbCxpc0Nsb3NlZDohMX0sci5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTpzLHRhcmdldE5hbWU6bixhY3Rpb246QSxzdHJlYW1JZDphLGRhdGE6ZSxkZXNpcmVkU2l6ZTp0LmRlc2lyZWRTaXplfSxpKSxnLnByb21pc2V9LHB1bGw6QT0+e2NvbnN0IGU9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7cmV0dXJuIHRoaXMuc3RyZWFtQ29udHJvbGxlcnNbYV0ucHVsbENhbGw9ZSxyLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOnMsdGFyZ2V0TmFtZTpuLHN0cmVhbTo2LHN0cmVhbUlkOmEsZGVzaXJlZFNpemU6QS5kZXNpcmVkU2l6ZX0pLGUucHJvbWlzZX0sY2FuY2VsOkE9PntMKEEgaW5zdGFuY2VvZiBFcnJvciwiY2FuY2VsIG11c3QgaGF2ZSBhIHZhbGlkIHJlYXNvbiIpO2NvbnN0IGU9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7cmV0dXJuIHRoaXMuc3RyZWFtQ29udHJvbGxlcnNbYV0uY2FuY2VsQ2FsbD1lLHRoaXMuc3RyZWFtQ29udHJvbGxlcnNbYV0uaXNDbG9zZWQ9ITAsci5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTpzLHRhcmdldE5hbWU6bixzdHJlYW06MSxzdHJlYW1JZDphLHJlYXNvbjpiZChBKX0pLGUucHJvbWlzZX19LHQpfSNaKEEpe2NvbnN0IGU9QS5zdHJlYW1JZCx0PXRoaXMuc291cmNlTmFtZSxpPUEuc291cmNlTmFtZSxhPXRoaXMuY29tT2JqLHM9dGhpcyxuPXRoaXMuYWN0aW9uSGFuZGxlcltBLmFjdGlvbl0scj17ZW5xdWV1ZShBLHM9MSxuKXtpZih0aGlzLmlzQ2FuY2VsbGVkKXJldHVybjtjb25zdCByPXRoaXMuZGVzaXJlZFNpemU7dGhpcy5kZXNpcmVkU2l6ZS09cyxyPjAmJnRoaXMuZGVzaXJlZFNpemU8PTAmJih0aGlzLnNpbmtDYXBhYmlsaXR5PVByb21pc2Uud2l0aFJlc29sdmVycygpLHRoaXMucmVhZHk9dGhpcy5zaW5rQ2FwYWJpbGl0eS5wcm9taXNlKSxhLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOnQsdGFyZ2V0TmFtZTppLHN0cmVhbTo0LHN0cmVhbUlkOmUsY2h1bms6QX0sbil9LGNsb3NlKCl7dGhpcy5pc0NhbmNlbGxlZHx8KHRoaXMuaXNDYW5jZWxsZWQ9ITAsYS5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTp0LHRhcmdldE5hbWU6aSxzdHJlYW06MyxzdHJlYW1JZDplfSksZGVsZXRlIHMuc3RyZWFtU2lua3NbZV0pfSxlcnJvcihBKXtMKEEgaW5zdGFuY2VvZiBFcnJvciwiZXJyb3IgbXVzdCBoYXZlIGEgdmFsaWQgcmVhc29uIiksdGhpcy5pc0NhbmNlbGxlZHx8KHRoaXMuaXNDYW5jZWxsZWQ9ITAsYS5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTp0LHRhcmdldE5hbWU6aSxzdHJlYW06NSxzdHJlYW1JZDplLHJlYXNvbjpiZChBKX0pKX0sc2lua0NhcGFiaWxpdHk6UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCksb25QdWxsOm51bGwsb25DYW5jZWw6bnVsbCxpc0NhbmNlbGxlZDohMSxkZXNpcmVkU2l6ZTpBLmRlc2lyZWRTaXplLHJlYWR5Om51bGx9O3Iuc2lua0NhcGFiaWxpdHkucmVzb2x2ZSgpLHIucmVhZHk9ci5zaW5rQ2FwYWJpbGl0eS5wcm9taXNlLHRoaXMuc3RyZWFtU2lua3NbZV09cixuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7ZShuKEEuZGF0YSxyKSl9KSkudGhlbigoZnVuY3Rpb24oKXthLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOnQsdGFyZ2V0TmFtZTppLHN0cmVhbTo4LHN0cmVhbUlkOmUsc3VjY2VzczohMH0pfSksKGZ1bmN0aW9uKEEpe2EucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6dCx0YXJnZXROYW1lOmksc3RyZWFtOjgsc3RyZWFtSWQ6ZSxyZWFzb246YmQoQSl9KX0pKX0jTyhBKXtjb25zdCBlPUEuc3RyZWFtSWQsdD10aGlzLnNvdXJjZU5hbWUsaT1BLnNvdXJjZU5hbWUsYT10aGlzLmNvbU9iaixzPXRoaXMuc3RyZWFtQ29udHJvbGxlcnNbZV0sbj10aGlzLnN0cmVhbVNpbmtzW2VdO3N3aXRjaChBLnN0cmVhbSl7Y2FzZSA4OkEuc3VjY2Vzcz9zLnN0YXJ0Q2FsbC5yZXNvbHZlKCk6cy5zdGFydENhbGwucmVqZWN0KGJkKEEucmVhc29uKSk7YnJlYWs7Y2FzZSA3OkEuc3VjY2Vzcz9zLnB1bGxDYWxsLnJlc29sdmUoKTpzLnB1bGxDYWxsLnJlamVjdChiZChBLnJlYXNvbikpO2JyZWFrO2Nhc2UgNjppZighbil7YS5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTp0LHRhcmdldE5hbWU6aSxzdHJlYW06NyxzdHJlYW1JZDplLHN1Y2Nlc3M6ITB9KTticmVha31uLmRlc2lyZWRTaXplPD0wJiZBLmRlc2lyZWRTaXplPjAmJm4uc2lua0NhcGFiaWxpdHkucmVzb2x2ZSgpLG4uZGVzaXJlZFNpemU9QS5kZXNpcmVkU2l6ZSxuZXcgUHJvbWlzZSgoZnVuY3Rpb24oQSl7QShuLm9uUHVsbD8uKCkpfSkpLnRoZW4oKGZ1bmN0aW9uKCl7YS5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTp0LHRhcmdldE5hbWU6aSxzdHJlYW06NyxzdHJlYW1JZDplLHN1Y2Nlc3M6ITB9KX0pLChmdW5jdGlvbihBKXthLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOnQsdGFyZ2V0TmFtZTppLHN0cmVhbTo3LHN0cmVhbUlkOmUscmVhc29uOmJkKEEpfSl9KSk7YnJlYWs7Y2FzZSA0OmlmKEwocywiZW5xdWV1ZSBzaG91bGQgaGF2ZSBzdHJlYW0gY29udHJvbGxlciIpLHMuaXNDbG9zZWQpYnJlYWs7cy5jb250cm9sbGVyLmVucXVldWUoQS5jaHVuayk7YnJlYWs7Y2FzZSAzOmlmKEwocywiY2xvc2Ugc2hvdWxkIGhhdmUgc3RyZWFtIGNvbnRyb2xsZXIiKSxzLmlzQ2xvc2VkKWJyZWFrO3MuaXNDbG9zZWQ9ITAscy5jb250cm9sbGVyLmNsb3NlKCksdGhpcy4jaihzLGUpO2JyZWFrO2Nhc2UgNTpMKHMsImVycm9yIHNob3VsZCBoYXZlIHN0cmVhbSBjb250cm9sbGVyIikscy5jb250cm9sbGVyLmVycm9yKGJkKEEucmVhc29uKSksdGhpcy4jaihzLGUpO2JyZWFrO2Nhc2UgMjpBLnN1Y2Nlc3M/cy5jYW5jZWxDYWxsLnJlc29sdmUoKTpzLmNhbmNlbENhbGwucmVqZWN0KGJkKEEucmVhc29uKSksdGhpcy4jaihzLGUpO2JyZWFrO2Nhc2UgMTppZighbilicmVhaztuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7ZShuLm9uQ2FuY2VsPy4oYmQoQS5yZWFzb24pKSl9KSkudGhlbigoZnVuY3Rpb24oKXthLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOnQsdGFyZ2V0TmFtZTppLHN0cmVhbToyLHN0cmVhbUlkOmUsc3VjY2VzczohMH0pfSksKGZ1bmN0aW9uKEEpe2EucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6dCx0YXJnZXROYW1lOmksc3RyZWFtOjIsc3RyZWFtSWQ6ZSxyZWFzb246YmQoQSl9KX0pKSxuLnNpbmtDYXBhYmlsaXR5LnJlamVjdChiZChBLnJlYXNvbikpLG4uaXNDYW5jZWxsZWQ9ITAsZGVsZXRlIHRoaXMuc3RyZWFtU2lua3NbZV07YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgc3RyZWFtIGNhc2UiKX19YXN5bmMjaihBLGUpe2F3YWl0IFByb21pc2UuYWxsU2V0dGxlZChbQS5zdGFydENhbGw/LnByb21pc2UsQS5wdWxsQ2FsbD8ucHJvbWlzZSxBLmNhbmNlbENhbGw/LnByb21pc2VdKSxkZWxldGUgdGhpcy5zdHJlYW1Db250cm9sbGVyc1tlXX1kZXN0cm95KCl7dGhpcy5jb21PYmoucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdGhpcy5fb25Db21PYmpPbk1lc3NhZ2UpfX1jbGFzcyBGZHtjb25zdHJ1Y3RvcihBKXt0aGlzLl9tc2dIYW5kbGVyPUEsdGhpcy5fY29udGVudExlbmd0aD1udWxsLHRoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyPW51bGwsdGhpcy5fcmFuZ2VSZXF1ZXN0UmVhZGVycz1bXX1nZXRGdWxsUmVhZGVyKCl7cmV0dXJuIEwoIXRoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyLCJQREZXb3JrZXJTdHJlYW0uZ2V0RnVsbFJlYWRlciBjYW4gb25seSBiZSBjYWxsZWQgb25jZS4iKSx0aGlzLl9mdWxsUmVxdWVzdFJlYWRlcj1uZXcgU2QodGhpcy5fbXNnSGFuZGxlciksdGhpcy5fZnVsbFJlcXVlc3RSZWFkZXJ9Z2V0UmFuZ2VSZWFkZXIoQSxlKXtjb25zdCB0PW5ldyBSZChBLGUsdGhpcy5fbXNnSGFuZGxlcik7cmV0dXJuIHRoaXMuX3JhbmdlUmVxdWVzdFJlYWRlcnMucHVzaCh0KSx0fWNhbmNlbEFsbFJlcXVlc3RzKEEpe3RoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyPy5jYW5jZWwoQSk7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fcmFuZ2VSZXF1ZXN0UmVhZGVycy5zbGljZSgwKSllLmNhbmNlbChBKX19Y2xhc3MgU2R7Y29uc3RydWN0b3IoQSl7dGhpcy5fbXNnSGFuZGxlcj1BLHRoaXMub25Qcm9ncmVzcz1udWxsLHRoaXMuX2NvbnRlbnRMZW5ndGg9bnVsbCx0aGlzLl9pc1JhbmdlU3VwcG9ydGVkPSExLHRoaXMuX2lzU3RyZWFtaW5nU3VwcG9ydGVkPSExO2NvbnN0IGU9dGhpcy5fbXNnSGFuZGxlci5zZW5kV2l0aFN0cmVhbSgiR2V0UmVhZGVyIik7dGhpcy5fcmVhZGVyPWUuZ2V0UmVhZGVyKCksdGhpcy5faGVhZGVyc1JlYWR5PXRoaXMuX21zZ0hhbmRsZXIuc2VuZFdpdGhQcm9taXNlKCJSZWFkZXJIZWFkZXJzUmVhZHkiKS50aGVuKChBPT57dGhpcy5faXNTdHJlYW1pbmdTdXBwb3J0ZWQ9QS5pc1N0cmVhbWluZ1N1cHBvcnRlZCx0aGlzLl9pc1JhbmdlU3VwcG9ydGVkPUEuaXNSYW5nZVN1cHBvcnRlZCx0aGlzLl9jb250ZW50TGVuZ3RoPUEuY29udGVudExlbmd0aH0pKX1nZXQgaGVhZGVyc1JlYWR5KCl7cmV0dXJuIHRoaXMuX2hlYWRlcnNSZWFkeX1nZXQgY29udGVudExlbmd0aCgpe3JldHVybiB0aGlzLl9jb250ZW50TGVuZ3RofWdldCBpc1N0cmVhbWluZ1N1cHBvcnRlZCgpe3JldHVybiB0aGlzLl9pc1N0cmVhbWluZ1N1cHBvcnRlZH1nZXQgaXNSYW5nZVN1cHBvcnRlZCgpe3JldHVybiB0aGlzLl9pc1JhbmdlU3VwcG9ydGVkfWFzeW5jIHJlYWQoKXtjb25zdHt2YWx1ZTpBLGRvbmU6ZX09YXdhaXQgdGhpcy5fcmVhZGVyLnJlYWQoKTtyZXR1cm4gZT97dmFsdWU6dm9pZCAwLGRvbmU6ITB9Ont2YWx1ZTpBLmJ1ZmZlcixkb25lOiExfX1jYW5jZWwoQSl7dGhpcy5fcmVhZGVyLmNhbmNlbChBKX19Y2xhc3MgUmR7Y29uc3RydWN0b3IoQSxlLHQpe3RoaXMuX21zZ0hhbmRsZXI9dCx0aGlzLm9uUHJvZ3Jlc3M9bnVsbDtjb25zdCBpPXRoaXMuX21zZ0hhbmRsZXIuc2VuZFdpdGhTdHJlYW0oIkdldFJhbmdlUmVhZGVyIix7YmVnaW46QSxlbmQ6ZX0pO3RoaXMuX3JlYWRlcj1pLmdldFJlYWRlcigpfWdldCBpc1N0cmVhbWluZ1N1cHBvcnRlZCgpe3JldHVybiExfWFzeW5jIHJlYWQoKXtjb25zdHt2YWx1ZTpBLGRvbmU6ZX09YXdhaXQgdGhpcy5fcmVhZGVyLnJlYWQoKTtyZXR1cm4gZT97dmFsdWU6dm9pZCAwLGRvbmU6ITB9Ont2YWx1ZTpBLmJ1ZmZlcixkb25lOiExfX1jYW5jZWwoQSl7dGhpcy5fcmVhZGVyLmNhbmNlbChBKX19Y2xhc3MgR2R7Y29uc3RydWN0b3IoQSl7dGhpcy5uYW1lPUEsdGhpcy50ZXJtaW5hdGVkPSExLHRoaXMuX2NhcGFiaWxpdHk9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCl9Z2V0IGZpbmlzaGVkKCl7cmV0dXJuIHRoaXMuX2NhcGFiaWxpdHkucHJvbWlzZX1maW5pc2goKXt0aGlzLl9jYXBhYmlsaXR5LnJlc29sdmUoKX10ZXJtaW5hdGUoKXt0aGlzLnRlcm1pbmF0ZWQ9ITB9ZW5zdXJlTm90VGVybWluYXRlZCgpe2lmKHRoaXMudGVybWluYXRlZCl0aHJvdyBuZXcgRXJyb3IoIldvcmtlciB0YXNrIHdhcyB0ZXJtaW5hdGVkIil9fWNsYXNzIE5ke3N0YXRpYyBzZXR1cChBLGUpe2xldCB0PSExO0Eub24oInRlc3QiLChmdW5jdGlvbihlKXt0fHwodD0hMCxBLnNlbmQoInRlc3QiLGUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSl9KSksQS5vbigiY29uZmlndXJlIiwoZnVuY3Rpb24oQSl7dmFyIGU7ZT1BLnZlcmJvc2l0eSxOdW1iZXIuaXNJbnRlZ2VyKGUpJiYoRz1lKX0pKSxBLm9uKCJHZXREb2NSZXF1ZXN0IiwoZnVuY3Rpb24oQSl7cmV0dXJuIE5kLmNyZWF0ZURvY3VtZW50SGFuZGxlcihBLGUpfSkpfXN0YXRpYyBjcmVhdGVEb2N1bWVudEhhbmRsZXIoQSxlKXtsZXQgdCxpPSExLGE9bnVsbDtjb25zdCBzPW5ldyBTZXQsbj1OKCkse2RvY0lkOnIsYXBpVmVyc2lvbjpnfT1BLG89IjQuNy43NiI7aWYoZyE9PW8pdGhyb3cgbmV3IEVycm9yKGBUaGUgQVBJIHZlcnNpb24gIiR7Z30iIGRvZXMgbm90IG1hdGNoIHRoZSBXb3JrZXIgdmVyc2lvbiAiJHtvfSIuYCk7Y29uc3QgST1bXTtmb3IoY29uc3QgQSBpbltdKUkucHVzaChBKTtpZihJLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIlRoZSBgQXJyYXkucHJvdG90eXBlYCBjb250YWlucyB1bmV4cGVjdGVkIGVudW1lcmFibGUgcHJvcGVydGllczogIitJLmpvaW4oIiwgIikrIjsgdGh1cyBicmVha2luZyBlLmcuIGBmb3IuLi5pbmAgaXRlcmF0aW9uIG9mIGBBcnJheWBzLiIpO2NvbnN0IGM9cisiX3dvcmtlciI7bGV0IGg9bmV3IGtkKGMscixlKTtmdW5jdGlvbiBDKCl7aWYoaSl0aHJvdyBuZXcgRXJyb3IoIldvcmtlciB3YXMgdGVybWluYXRlZCIpfWZ1bmN0aW9uIEIoQSl7cy5hZGQoQSl9ZnVuY3Rpb24gbChBKXtBLmZpbmlzaCgpLHMuZGVsZXRlKEEpfWFzeW5jIGZ1bmN0aW9uIFEoQSl7YXdhaXQgdC5lbnN1cmVEb2MoImNoZWNrSGVhZGVyIiksYXdhaXQgdC5lbnN1cmVEb2MoInBhcnNlU3RhcnRYUmVmIiksYXdhaXQgdC5lbnN1cmVEb2MoInBhcnNlIixbQV0pLGF3YWl0IHQuZW5zdXJlRG9jKCJjaGVja0ZpcnN0UGFnZSIsW0FdKSxhd2FpdCB0LmVuc3VyZURvYygiY2hlY2tMYXN0UGFnZSIsW0FdKTtjb25zdCBlPWF3YWl0IHQuZW5zdXJlRG9jKCJpc1B1cmVYZmEiKTtpZihlKXtjb25zdCBBPW5ldyBHZCgibG9hZFhmYUZvbnRzIik7QihBKSxhd2FpdCBQcm9taXNlLmFsbChbdC5sb2FkWGZhRm9udHMoaCxBKS5jYXRjaCgoQT0+e30pKS50aGVuKCgoKT0+bChBKSkpLHQubG9hZFhmYUltYWdlcygpXSl9Y29uc3RbaSxhXT1hd2FpdCBQcm9taXNlLmFsbChbdC5lbnN1cmVEb2MoIm51bVBhZ2VzIiksdC5lbnN1cmVEb2MoImZpbmdlcnByaW50cyIpXSk7cmV0dXJue251bVBhZ2VzOmksZmluZ2VycHJpbnRzOmEsaHRtbEZvclhmYTplP2F3YWl0IHQuZW5zdXJlRG9jKCJodG1sRm9yWGZhIik6bnVsbH19cmV0dXJuIGgub24oIkdldFBhZ2UiLChmdW5jdGlvbihBKXtyZXR1cm4gdC5nZXRQYWdlKEEucGFnZUluZGV4KS50aGVuKChmdW5jdGlvbihBKXtyZXR1cm4gUHJvbWlzZS5hbGwoW3QuZW5zdXJlKEEsInJvdGF0ZSIpLHQuZW5zdXJlKEEsInJlZiIpLHQuZW5zdXJlKEEsInVzZXJVbml0IiksdC5lbnN1cmUoQSwidmlldyIpXSkudGhlbigoZnVuY3Rpb24oW0EsZSx0LGldKXtyZXR1cm57cm90YXRlOkEscmVmOmUscmVmU3RyOmU/LnRvU3RyaW5nKCk/P251bGwsdXNlclVuaXQ6dCx2aWV3Oml9fSkpfSkpfSkpLGgub24oIkdldFBhZ2VJbmRleCIsKGZ1bmN0aW9uKEEpe2NvbnN0IGU9RUEuZ2V0KEEubnVtLEEuZ2VuKTtyZXR1cm4gdC5lbnN1cmVDYXRhbG9nKCJnZXRQYWdlSW5kZXgiLFtlXSl9KSksaC5vbigiR2V0RGVzdGluYXRpb25zIiwoZnVuY3Rpb24oQSl7cmV0dXJuIHQuZW5zdXJlQ2F0YWxvZygiZGVzdGluYXRpb25zIil9KSksaC5vbigiR2V0RGVzdGluYXRpb24iLChmdW5jdGlvbihBKXtyZXR1cm4gdC5lbnN1cmVDYXRhbG9nKCJnZXREZXN0aW5hdGlvbiIsW0EuaWRdKX0pKSxoLm9uKCJHZXRQYWdlTGFiZWxzIiwoZnVuY3Rpb24oQSl7cmV0dXJuIHQuZW5zdXJlQ2F0YWxvZygicGFnZUxhYmVscyIpfSkpLGgub24oIkdldFBhZ2VMYXlvdXQiLChmdW5jdGlvbihBKXtyZXR1cm4gdC5lbnN1cmVDYXRhbG9nKCJwYWdlTGF5b3V0Iil9KSksaC5vbigiR2V0UGFnZU1vZGUiLChmdW5jdGlvbihBKXtyZXR1cm4gdC5lbnN1cmVDYXRhbG9nKCJwYWdlTW9kZSIpfSkpLGgub24oIkdldFZpZXdlclByZWZlcmVuY2VzIiwoZnVuY3Rpb24oQSl7cmV0dXJuIHQuZW5zdXJlQ2F0YWxvZygidmlld2VyUHJlZmVyZW5jZXMiKX0pKSxoLm9uKCJHZXRPcGVuQWN0aW9uIiwoZnVuY3Rpb24oQSl7cmV0dXJuIHQuZW5zdXJlQ2F0YWxvZygib3BlbkFjdGlvbiIpfSkpLGgub24oIkdldEF0dGFjaG1lbnRzIiwoZnVuY3Rpb24oQSl7cmV0dXJuIHQuZW5zdXJlQ2F0YWxvZygiYXR0YWNobWVudHMiKX0pKSxoLm9uKCJHZXREb2NKU0FjdGlvbnMiLChmdW5jdGlvbihBKXtyZXR1cm4gdC5lbnN1cmVDYXRhbG9nKCJqc0FjdGlvbnMiKX0pKSxoLm9uKCJHZXRQYWdlSlNBY3Rpb25zIiwoZnVuY3Rpb24oe3BhZ2VJbmRleDpBfSl7cmV0dXJuIHQuZ2V0UGFnZShBKS50aGVuKChmdW5jdGlvbihBKXtyZXR1cm4gdC5lbnN1cmUoQSwianNBY3Rpb25zIil9KSl9KSksaC5vbigiR2V0T3V0bGluZSIsKGZ1bmN0aW9uKEEpe3JldHVybiB0LmVuc3VyZUNhdGFsb2coImRvY3VtZW50T3V0bGluZSIpfSkpLGgub24oIkdldE9wdGlvbmFsQ29udGVudENvbmZpZyIsKGZ1bmN0aW9uKEEpe3JldHVybiB0LmVuc3VyZUNhdGFsb2coIm9wdGlvbmFsQ29udGVudENvbmZpZyIpfSkpLGgub24oIkdldFBlcm1pc3Npb25zIiwoZnVuY3Rpb24oQSl7cmV0dXJuIHQuZW5zdXJlQ2F0YWxvZygicGVybWlzc2lvbnMiKX0pKSxoLm9uKCJHZXRNZXRhZGF0YSIsKGZ1bmN0aW9uKEEpe3JldHVybiBQcm9taXNlLmFsbChbdC5lbnN1cmVEb2MoImRvY3VtZW50SW5mbyIpLHQuZW5zdXJlQ2F0YWxvZygibWV0YWRhdGEiKV0pfSkpLGgub24oIkdldE1hcmtJbmZvIiwoZnVuY3Rpb24oQSl7cmV0dXJuIHQuZW5zdXJlQ2F0YWxvZygibWFya0luZm8iKX0pKSxoLm9uKCJHZXREYXRhIiwoZnVuY3Rpb24oQSl7cmV0dXJuIHQucmVxdWVzdExvYWRlZFN0cmVhbSgpLnRoZW4oKGZ1bmN0aW9uKEEpe3JldHVybiBBLmJ5dGVzfSkpfSkpLGgub24oIkdldEFubm90YXRpb25zIiwoZnVuY3Rpb24oe3BhZ2VJbmRleDpBLGludGVudDplfSl7cmV0dXJuIHQuZ2V0UGFnZShBKS50aGVuKChmdW5jdGlvbih0KXtjb25zdCBpPW5ldyBHZChgR2V0QW5ub3RhdGlvbnM6IHBhZ2UgJHtBfWApO3JldHVybiBCKGkpLHQuZ2V0QW5ub3RhdGlvbnNEYXRhKGgsaSxlKS50aGVuKChBPT4obChpKSxBKSksKEE9Pnt0aHJvdyBsKGkpLEF9KSl9KSl9KSksaC5vbigiR2V0RmllbGRPYmplY3RzIiwoZnVuY3Rpb24oQSl7cmV0dXJuIHQuZW5zdXJlRG9jKCJmaWVsZE9iamVjdHMiKS50aGVuKChBPT5BPy5hbGxGaWVsZHN8fG51bGwpKX0pKSxoLm9uKCJIYXNKU0FjdGlvbnMiLChmdW5jdGlvbihBKXtyZXR1cm4gdC5lbnN1cmVEb2MoImhhc0pTQWN0aW9ucyIpfSkpLGgub24oIkdldENhbGN1bGF0aW9uT3JkZXJJZHMiLChmdW5jdGlvbihBKXtyZXR1cm4gdC5lbnN1cmVEb2MoImNhbGN1bGF0aW9uT3JkZXJJZHMiKX0pKSxoLm9uKCJTYXZlRG9jdW1lbnQiLChhc3luYyBmdW5jdGlvbih7aXNQdXJlWGZhOkEsbnVtUGFnZXM6ZSxhbm5vdGF0aW9uU3RvcmFnZTppLGZpbGVuYW1lOmF9KXtjb25zdCBzPVt0LnJlcXVlc3RMb2FkZWRTdHJlYW0oKSx0LmVuc3VyZUNhdGFsb2coImFjcm9Gb3JtIiksdC5lbnN1cmVDYXRhbG9nKCJhY3JvRm9ybVJlZiIpLHQuZW5zdXJlRG9jKCJzdGFydFhSZWYiKSx0LmVuc3VyZURvYygieHJlZiIpLHQuZW5zdXJlRG9jKCJsaW5lYXJpemF0aW9uIiksdC5lbnN1cmVDYXRhbG9nKCJzdHJ1Y3RUcmVlUm9vdCIpXSxuPVtdLHI9QT9udWxsOnRlKGkpLFtnLG8sSSxjLEMsQixRXT1hd2FpdCBQcm9taXNlLmFsbChzKSxFPUMudHJhaWxlci5nZXRSYXcoIlJvb3QiKXx8bnVsbDtsZXQgdTtpZihyKXtRP2F3YWl0IFEuY2FuVXBkYXRlU3RydWN0VHJlZSh7cGRmTWFuYWdlcjp0LHhyZWY6QyxuZXdBbm5vdGF0aW9uc0J5UGFnZTpyfSkmJih1PVEpOmF3YWl0IHNvLmNhbkNyZWF0ZVN0cnVjdHVyZVRyZWUoe2NhdGFsb2dSZWY6RSxwZGZNYW5hZ2VyOnQsbmV3QW5ub3RhdGlvbnNCeVBhZ2U6cn0pJiYodT1udWxsKTtjb25zdCBBPUx1LmdlbmVyYXRlSW1hZ2VzKGkudmFsdWVzKCksQyx0LmV2YWx1YXRvck9wdGlvbnMuaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQpLGU9dm9pZCAwPT09dT9uOltdO2Zvcihjb25zdFtpLGFdb2YgcillLnB1c2godC5nZXRQYWdlKGkpLnRoZW4oKGU9Pntjb25zdCB0PW5ldyBHZChgU2F2ZSAoZWRpdG9yKTogcGFnZSAke2l9YCk7cmV0dXJuIGUuc2F2ZU5ld0Fubm90YXRpb25zKGgsdCxhLEEpLmZpbmFsbHkoKGZ1bmN0aW9uKCl7bCh0KX0pKX0pKSk7bnVsbD09PXU/bi5wdXNoKFByb21pc2UuYWxsKGUpLnRoZW4oKGFzeW5jIEE9Pihhd2FpdCBzby5jcmVhdGVTdHJ1Y3R1cmVUcmVlKHtuZXdBbm5vdGF0aW9uc0J5UGFnZTpyLHhyZWY6QyxjYXRhbG9nUmVmOkUscGRmTWFuYWdlcjp0LG5ld1JlZnM6QX0pLEEpKSkpOnUmJm4ucHVzaChQcm9taXNlLmFsbChlKS50aGVuKChhc3luYyBBPT4oYXdhaXQgdS51cGRhdGVTdHJ1Y3R1cmVUcmVlKHtuZXdBbm5vdGF0aW9uc0J5UGFnZTpyLHBkZk1hbmFnZXI6dCxuZXdSZWZzOkF9KSxBKSkpKX1pZihBKW4ucHVzaCh0LnNlcmlhbGl6ZVhmYURhdGEoaSkpO2Vsc2UgZm9yKGxldCBBPTA7QTxlO0ErKyluLnB1c2godC5nZXRQYWdlKEEpLnRoZW4oKGZ1bmN0aW9uKGUpe2NvbnN0IHQ9bmV3IEdkKGBTYXZlOiBwYWdlICR7QX1gKTtyZXR1cm4gZS5zYXZlKGgsdCxpKS5maW5hbGx5KChmdW5jdGlvbigpe2wodCl9KSl9KSkpO2NvbnN0IGQ9YXdhaXQgUHJvbWlzZS5hbGwobik7bGV0IGY9W10scD1udWxsO2lmKEEpe2lmKHA9ZFswXSwhcClyZXR1cm4gZy5ieXRlc31lbHNlIGlmKGY9ZC5mbGF0KDIpLDA9PT1mLmxlbmd0aClyZXR1cm4gZy5ieXRlcztjb25zdCBtPUkmJm8gaW5zdGFuY2VvZiBRQSYmZi5zb21lKChBPT5BLm5lZWRBcHBlYXJhbmNlcykpLHk9byBpbnN0YW5jZW9mIFFBJiZvLmdldCgiWEZBIil8fG51bGw7bGV0IHc9bnVsbCxEPSExO2lmKEFycmF5LmlzQXJyYXkoeSkpe2ZvcihsZXQgQT0wLGU9eS5sZW5ndGg7QTxlO0ErPTIpImRhdGFzZXRzIj09PXlbQV0mJih3PXlbQSsxXSxEPSEwKTtudWxsPT09dyYmKHc9Qy5nZXROZXdUZW1wb3JhcnlSZWYoKSl9ZWxzZSB5JiZVKCJVbnN1cHBvcnRlZCBYRkEgdHlwZS4iKTtsZXQgYj1PYmplY3QuY3JlYXRlKG51bGwpO2lmKEMudHJhaWxlcil7Y29uc3QgQT1PYmplY3QuY3JlYXRlKG51bGwpLGU9Qy50cmFpbGVyLmdldCgiSW5mbyIpfHxudWxsO2UgaW5zdGFuY2VvZiBRQSYmZS5mb3JFYWNoKCgoZSx0KT0+eyJzdHJpbmciPT10eXBlb2YgdCYmKEFbZV09ZUEodCkpfSkpLGI9e3Jvb3RSZWY6RSxlbmNyeXB0UmVmOkMudHJhaWxlci5nZXRSYXcoIkVuY3J5cHQiKXx8bnVsbCxuZXdSZWY6Qy5nZXROZXdUZW1wb3JhcnlSZWYoKSxpbmZvUmVmOkMudHJhaWxlci5nZXRSYXcoIkluZm8iKXx8bnVsbCxpbmZvOkEsZmlsZUlkczpDLnRyYWlsZXIuZ2V0KCJJRCIpfHxudWxsLHN0YXJ0WFJlZjpCP2M6Qy5sYXN0WFJlZlN0cmVhbVBvcz8/YyxmaWxlbmFtZTphfX1yZXR1cm4gYW8oe29yaWdpbmFsRGF0YTpnLmJ5dGVzLHhyZWZJbmZvOmIsbmV3UmVmczpmLHhyZWY6QyxoYXNYZmE6ISF5LHhmYURhdGFzZXRzUmVmOncsaGFzWGZhRGF0YXNldHNFbnRyeTpELG5lZWRBcHBlYXJhbmNlczptLGFjcm9Gb3JtUmVmOkksYWNyb0Zvcm06byx4ZmFEYXRhOnAsdXNlWHJlZlN0cmVhbTptQShDLnRvcERpY3QsIlhSZWYiKX0pLmZpbmFsbHkoKCgpPT57Qy5yZXNldE5ld1RlbXBvcmFyeVJlZigpfSkpfSkpLGgub24oIkdldE9wZXJhdG9yTGlzdCIsKGZ1bmN0aW9uKEEsZSl7Y29uc3QgaT1BLnBhZ2VJbmRleDt0LmdldFBhZ2UoaSkudGhlbigoZnVuY3Rpb24odCl7Y29uc3QgYT1uZXcgR2QoYEdldE9wZXJhdG9yTGlzdDogcGFnZSAke2l9YCk7QihhKTtjb25zdCBzPW4+PXUuSU5GT1M/RGF0ZS5ub3coKTowO3QuZ2V0T3BlcmF0b3JMaXN0KHtoYW5kbGVyOmgsc2luazplLHRhc2s6YSxpbnRlbnQ6QS5pbnRlbnQsY2FjaGVLZXk6QS5jYWNoZUtleSxhbm5vdGF0aW9uU3RvcmFnZTpBLmFubm90YXRpb25TdG9yYWdlLG1vZGlmaWVkSWRzOkEubW9kaWZpZWRJZHN9KS50aGVuKChmdW5jdGlvbihBKXtsKGEpLHMmJngoYHBhZ2U9JHtpKzF9IC0gZ2V0T3BlcmF0b3JMaXN0OiB0aW1lPSR7RGF0ZS5ub3coKS1zfW1zLCBsZW49JHtBLmxlbmd0aH1gKSxlLmNsb3NlKCl9KSwoZnVuY3Rpb24oQSl7bChhKSxhLnRlcm1pbmF0ZWR8fGUuZXJyb3IoQSl9KSl9KSl9KSksaC5vbigiR2V0VGV4dENvbnRlbnQiLChmdW5jdGlvbihBLGUpe2NvbnN0e3BhZ2VJbmRleDppLGluY2x1ZGVNYXJrZWRDb250ZW50OmEsZGlzYWJsZU5vcm1hbGl6YXRpb246c309QTt0LmdldFBhZ2UoaSkudGhlbigoZnVuY3Rpb24oQSl7Y29uc3QgdD1uZXcgR2QoIkdldFRleHRDb250ZW50OiBwYWdlICIraSk7Qih0KTtjb25zdCByPW4+PXUuSU5GT1M/RGF0ZS5ub3coKTowO0EuZXh0cmFjdFRleHRDb250ZW50KHtoYW5kbGVyOmgsdGFzazp0LHNpbms6ZSxpbmNsdWRlTWFya2VkQ29udGVudDphLGRpc2FibGVOb3JtYWxpemF0aW9uOnN9KS50aGVuKChmdW5jdGlvbigpe2wodCksciYmeChgcGFnZT0ke2krMX0gLSBnZXRUZXh0Q29udGVudDogdGltZT1gKyhEYXRlLm5vdygpLXIpKyJtcyIpLGUuY2xvc2UoKX0pLChmdW5jdGlvbihBKXtsKHQpLHQudGVybWluYXRlZHx8ZS5lcnJvcihBKX0pKX0pKX0pKSxoLm9uKCJHZXRTdHJ1Y3RUcmVlIiwoZnVuY3Rpb24oQSl7cmV0dXJuIHQuZ2V0UGFnZShBLnBhZ2VJbmRleCkudGhlbigoZnVuY3Rpb24oQSl7cmV0dXJuIHQuZW5zdXJlKEEsImdldFN0cnVjdFRyZWUiKX0pKX0pKSxoLm9uKCJGb250RmFsbGJhY2siLChmdW5jdGlvbihBKXtyZXR1cm4gdC5mb250RmFsbGJhY2soQS5pZCxoKX0pKSxoLm9uKCJDbGVhbnVwIiwoZnVuY3Rpb24oQSl7cmV0dXJuIHQuY2xlYW51cCghMCl9KSksaC5vbigiVGVybWluYXRlIiwoZnVuY3Rpb24oQSl7aT0hMDtjb25zdCBlPVtdO2lmKHQpe3QudGVybWluYXRlKG5ldyBPKCJXb3JrZXIgd2FzIHRlcm1pbmF0ZWQuIikpO2NvbnN0IEE9dC5jbGVhbnVwKCk7ZS5wdXNoKEEpLHQ9bnVsbH1lbHNlIGtnKCk7YSYmYShuZXcgTygiV29ya2VyIHdhcyB0ZXJtaW5hdGVkLiIpKTtmb3IoY29uc3QgQSBvZiBzKWUucHVzaChBLmZpbmlzaGVkKSxBLnRlcm1pbmF0ZSgpO3JldHVybiBQcm9taXNlLmFsbChlKS50aGVuKChmdW5jdGlvbigpe2guZGVzdHJveSgpLGg9bnVsbH0pKX0pKSxoLm9uKCJSZWFkeSIsKGZ1bmN0aW9uKGUpeyFmdW5jdGlvbihBKXtmdW5jdGlvbiBlKEEpe0MoKSxoLnNlbmQoIkdldERvYyIse3BkZkluZm86QX0pfWZ1bmN0aW9uIHMoQSl7aWYoQygpLEEgaW5zdGFuY2VvZiB2KXtjb25zdCBlPW5ldyBHZChgUGFzc3dvcmRFeGNlcHRpb246IHJlc3BvbnNlICR7QS5jb2RlfWApO0IoZSksaC5zZW5kV2l0aFByb21pc2UoIlBhc3N3b3JkUmVxdWVzdCIsQSkudGhlbigoZnVuY3Rpb24oe3Bhc3N3b3JkOkF9KXtsKGUpLHQudXBkYXRlUGFzc3dvcmQoQSksbigpfSkpLmNhdGNoKChmdW5jdGlvbigpe2woZSksaC5zZW5kKCJEb2NFeGNlcHRpb24iLEEpfSkpfWVsc2UgQSBpbnN0YW5jZW9mIHF8fEEgaW5zdGFuY2VvZiBUfHxBIGluc3RhbmNlb2YgUHx8QSBpbnN0YW5jZW9mIEs/aC5zZW5kKCJEb2NFeGNlcHRpb24iLEEpOmguc2VuZCgiRG9jRXhjZXB0aW9uIixuZXcgSyhBLm1lc3NhZ2UsQS50b1N0cmluZygpKSl9ZnVuY3Rpb24gbigpe0MoKSxRKCExKS50aGVuKGUsKGZ1bmN0aW9uKEEpe0MoKSxBIGluc3RhbmNlb2YgUkE/dC5yZXF1ZXN0TG9hZGVkU3RyZWFtKCkudGhlbigoZnVuY3Rpb24oKXtDKCksUSghMCkudGhlbihlLHMpfSkpOnMoQSl9KSl9QygpLGZ1bmN0aW9uKHtkYXRhOkEscGFzc3dvcmQ6ZSxkaXNhYmxlQXV0b0ZldGNoOnQscmFuZ2VDaHVua1NpemU6aSxsZW5ndGg6cyxkb2NCYXNlVXJsOm4sZW5hYmxlWGZhOmcsZXZhbHVhdG9yT3B0aW9uczpvfSl7Y29uc3QgST17c291cmNlOm51bGwsZGlzYWJsZUF1dG9GZXRjaDp0LGRvY0Jhc2VVcmw6bixkb2NJZDpyLGVuYWJsZVhmYTpnLGV2YWx1YXRvck9wdGlvbnM6byxoYW5kbGVyOmgsbGVuZ3RoOnMscGFzc3dvcmQ6ZSxyYW5nZUNodW5rU2l6ZTppfSxjPVByb21pc2Uud2l0aFJlc29sdmVycygpO2xldCBCO2lmKEEpe3RyeXtJLnNvdXJjZT1BLEI9bmV3IHdkKEkpLGMucmVzb2x2ZShCKX1jYXRjaChBKXtjLnJlamVjdChBKX1yZXR1cm4gYy5wcm9taXNlfWxldCBsLFE9W107dHJ5e2w9bmV3IEZkKGgpfWNhdGNoKEEpe3JldHVybiBjLnJlamVjdChBKSxjLnByb21pc2V9Y29uc3QgRT1sLmdldEZ1bGxSZWFkZXIoKTtFLmhlYWRlcnNSZWFkeS50aGVuKChmdW5jdGlvbigpe2lmKEUuaXNSYW5nZVN1cHBvcnRlZCl7SS5zb3VyY2U9bCxJLmxlbmd0aD1FLmNvbnRlbnRMZW5ndGgsSS5kaXNhYmxlQXV0b0ZldGNofHw9RS5pc1N0cmVhbWluZ1N1cHBvcnRlZCxCPW5ldyBEZChJKTtmb3IoY29uc3QgQSBvZiBRKUIuc2VuZFByb2dyZXNzaXZlRGF0YShBKTtRPVtdLGMucmVzb2x2ZShCKSxhPW51bGx9fSkpLmNhdGNoKChmdW5jdGlvbihBKXtjLnJlamVjdChBKSxhPW51bGx9KSk7bGV0IHU9MDtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKEEsZSl7Y29uc3QgdD1mdW5jdGlvbih7dmFsdWU6QSxkb25lOml9KXt0cnl7aWYoQygpLGkpcmV0dXJuIEJ8fGZ1bmN0aW9uKCl7Y29uc3QgQT1HQShRKTtzJiZBLmxlbmd0aCE9PXMmJlUoInJlcG9ydGVkIEhUVFAgbGVuZ3RoIGlzIGRpZmZlcmVudCBmcm9tIGFjdHVhbCIpO3RyeXtJLnNvdXJjZT1BLEI9bmV3IHdkKEkpLGMucmVzb2x2ZShCKX1jYXRjaChBKXtjLnJlamVjdChBKX1RPVtdfSgpLHZvaWQoYT1udWxsKTt1Kz1BLmJ5dGVMZW5ndGgsRS5pc1N0cmVhbWluZ1N1cHBvcnRlZHx8aC5zZW5kKCJEb2NQcm9ncmVzcyIse2xvYWRlZDp1LHRvdGFsOk1hdGgubWF4KHUsRS5jb250ZW50TGVuZ3RofHwwKX0pLEI/Qi5zZW5kUHJvZ3Jlc3NpdmVEYXRhKEEpOlEucHVzaChBKSxFLnJlYWQoKS50aGVuKHQsZSl9Y2F0Y2goQSl7ZShBKX19O0UucmVhZCgpLnRoZW4odCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oQSl7Yy5yZWplY3QoQSksYT1udWxsfSkpLGE9ZnVuY3Rpb24oQSl7bC5jYW5jZWxBbGxSZXF1ZXN0cyhBKX0sYy5wcm9taXNlfShBKS50aGVuKChmdW5jdGlvbihBKXtpZihpKXRocm93IEEudGVybWluYXRlKG5ldyBPKCJXb3JrZXIgd2FzIHRlcm1pbmF0ZWQuIikpLG5ldyBFcnJvcigiV29ya2VyIHdhcyB0ZXJtaW5hdGVkIik7dD1BLHQucmVxdWVzdExvYWRlZFN0cmVhbSghMCkudGhlbigoQT0+e2guc2VuZCgiRGF0YUxvYWRlZCIse2xlbmd0aDpBLmJ5dGVzLmJ5dGVMZW5ndGh9KX0pKX0pKS50aGVuKG4scyl9KEEpLEE9bnVsbH0pKSxjfXN0YXRpYyBpbml0aWFsaXplRnJvbVBvcnQoQSl7Y29uc3QgZT1uZXcga2QoIndvcmtlciIsIm1haW4iLEEpO05kLnNldHVwKGUsQSksZS5zZW5kKCJyZWFkeSIsbnVsbCl9fXZhciB4ZDsidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdyYmIWEmJiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmImZ1bmN0aW9uIj09dHlwZW9mKHhkPXNlbGYpLnBvc3RNZXNzYWdlJiYib25tZXNzYWdlImluIHhkJiZOZC5pbml0aWFsaXplRnJvbVBvcnQoc2VsZik7",a="dmFyIHQ9ezkzMDY6KHQsZSxpKT0+e3ZhciBzPWkoNDkwMSksbj1pKDY4MjMpLHI9VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihzKHQpKXJldHVybiB0O3Rocm93IG5ldyByKG4odCkrIiBpcyBub3QgYSBmdW5jdGlvbiIpfX0sMzUwNjoodCxlLGkpPT57dmFyIHM9aSgzOTI1KSxuPVN0cmluZyxyPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYocyh0KSlyZXR1cm4gdDt0aHJvdyBuZXcgcigiQ2FuJ3Qgc2V0ICIrbih0KSsiIGFzIGEgcHJvdG90eXBlIil9fSw3MDgwOih0LGUsaSk9Pnt2YXIgcz1pKDQ0MDIpLmhhczt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHModCksdH19LDY3OToodCxlLGkpPT57dmFyIHM9aSgxNjI1KSxuPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZihzKGUsdCkpcmV0dXJuIHQ7dGhyb3cgbmV3IG4oIkluY29ycmVjdCBpbnZvY2F0aW9uIil9fSw4NTUxOih0LGUsaSk9Pnt2YXIgcz1pKDM0KSxuPVN0cmluZyxyPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYocyh0KSlyZXR1cm4gdDt0aHJvdyBuZXcgcihuKHQpKyIgaXMgbm90IGFuIG9iamVjdCIpfX0sNzgxMTp0PT57dC5leHBvcnRzPSJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJiJ1bmRlZmluZWQiIT10eXBlb2YgRGF0YVZpZXd9LDczOTQ6KHQsZSxpKT0+e3ZhciBzPWkoNDU3Niksbj1pKDY3MDYpLHI9aSgyMTk1KSxhPXMuQXJyYXlCdWZmZXIsbz1zLlR5cGVFcnJvcjt0LmV4cG9ydHM9YSYmbihhLnByb3RvdHlwZSwiYnl0ZUxlbmd0aCIsImdldCIpfHxmdW5jdGlvbih0KXtpZigiQXJyYXlCdWZmZXIiIT09cih0KSl0aHJvdyBuZXcgbygiQXJyYXlCdWZmZXIgZXhwZWN0ZWQiKTtyZXR1cm4gdC5ieXRlTGVuZ3RofX0sMzIzODoodCxlLGkpPT57dmFyIHM9aSg0NTc2KSxuPWkoNzQ3Nikscj1pKDczOTQpLGE9cy5BcnJheUJ1ZmZlcixvPWEmJmEucHJvdG90eXBlLGg9byYmbihvLnNsaWNlKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoMCE9PXIodCkpcmV0dXJuITE7aWYoIWgpcmV0dXJuITE7dHJ5e3JldHVybiBoKHQsMCwwKSwhMX1jYXRjaCh0KXtyZXR1cm4hMH19fSw1MTY5Oih0LGUsaSk9Pnt2YXIgcz1pKDMyMzgpLG49VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihzKHQpKXRocm93IG5ldyBuKCJBcnJheUJ1ZmZlciBpcyBkZXRhY2hlZCIpO3JldHVybiB0fX0sNTYzNjoodCxlLGkpPT57dmFyIHM9aSg0NTc2KSxuPWkoOTUwNCkscj1pKDY3MDYpLGE9aSg3Njk2KSxvPWkoNTE2OSksaD1pKDczOTQpLGw9aSg0NDgzKSxjPWkoMTU0OCksZD1zLnN0cnVjdHVyZWRDbG9uZSx1PXMuQXJyYXlCdWZmZXIscD1zLkRhdGFWaWV3LGc9TWF0aC5taW4sZj11LnByb3RvdHlwZSxtPXAucHJvdG90eXBlLGI9bihmLnNsaWNlKSx2PXIoZiwicmVzaXphYmxlIiwiZ2V0IikseT1yKGYsIm1heEJ5dGVMZW5ndGgiLCJnZXQiKSxBPW4obS5nZXRJbnQ4KSx3PW4obS5zZXRJbnQ4KTt0LmV4cG9ydHM9KGN8fGwpJiZmdW5jdGlvbih0LGUsaSl7dmFyIHMsbj1oKHQpLHI9dm9pZCAwPT09ZT9uOmEoZSksZj0hdnx8IXYodCk7aWYobyh0KSxjJiYodD1kKHQse3RyYW5zZmVyOlt0XX0pLG49PT1yJiYoaXx8ZikpKXJldHVybiB0O2lmKG4+PXImJighaXx8Zikpcz1iKHQsMCxyKTtlbHNle3ZhciBtPWkmJiFmJiZ5P3ttYXhCeXRlTGVuZ3RoOnkodCl9OnZvaWQgMDtzPW5ldyB1KHIsbSk7Zm9yKHZhciB4PW5ldyBwKHQpLF89bmV3IHAocyksRT1nKHIsbiksQz0wO0M8RTtDKyspdyhfLEMsQSh4LEMpKX1yZXR1cm4gY3x8bCh0KSxzfX0sNDY0NDoodCxlLGkpPT57dmFyIHMsbixyLGE9aSg3ODExKSxvPWkoMzcyNCksaD1pKDQ1NzYpLGw9aSg0OTAxKSxjPWkoMzQpLGQ9aSg5Mjk3KSx1PWkoNjk1NSkscD1pKDY4MjMpLGc9aSg2Njk5KSxmPWkoNjg0MCksbT1pKDIxMDYpLGI9aSgxNjI1KSx2PWkoMjc4NykseT1pKDI5NjcpLEE9aSg4MjI3KSx3PWkoMzM5MikseD1pKDExODEpLF89eC5lbmZvcmNlLEU9eC5nZXQsQz1oLkludDhBcnJheSxTPUMmJkMucHJvdG90eXBlLFQ9aC5VaW50OENsYW1wZWRBcnJheSxNPVQmJlQucHJvdG90eXBlLGs9QyYmdihDKSxJPVMmJnYoUyksUj1PYmplY3QucHJvdG90eXBlLFA9aC5UeXBlRXJyb3IsRD1BKCJ0b1N0cmluZ1RhZyIpLEw9dygiVFlQRURfQVJSQVlfVEFHIiksRj0iVHlwZWRBcnJheUNvbnN0cnVjdG9yIixPPWEmJiEheSYmIk9wZXJhIiE9PXUoaC5vcGVyYSksTj0hMSxCPXtJbnQ4QXJyYXk6MSxVaW50OEFycmF5OjEsVWludDhDbGFtcGVkQXJyYXk6MSxJbnQxNkFycmF5OjIsVWludDE2QXJyYXk6MixJbnQzMkFycmF5OjQsVWludDMyQXJyYXk6NCxGbG9hdDMyQXJyYXk6NCxGbG9hdDY0QXJyYXk6OH0sej17QmlnSW50NjRBcnJheTo4LEJpZ1VpbnQ2NEFycmF5Ojh9LEg9ZnVuY3Rpb24odCl7dmFyIGU9dih0KTtpZihjKGUpKXt2YXIgaT1FKGUpO3JldHVybiBpJiZkKGksRik/aVtGXTpIKGUpfX0saj1mdW5jdGlvbih0KXtpZighYyh0KSlyZXR1cm4hMTt2YXIgZT11KHQpO3JldHVybiBkKEIsZSl8fGQoeixlKX07Zm9yKHMgaW4gQikocj0obj1oW3NdKSYmbi5wcm90b3R5cGUpP18ocilbRl09bjpPPSExO2ZvcihzIGluIHopKHI9KG49aFtzXSkmJm4ucHJvdG90eXBlKSYmKF8ocilbRl09bik7aWYoKCFPfHwhbChrKXx8az09PUZ1bmN0aW9uLnByb3RvdHlwZSkmJihrPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IFAoIkluY29ycmVjdCBpbnZvY2F0aW9uIil9LE8pKWZvcihzIGluIEIpaFtzXSYmeShoW3NdLGspO2lmKCghT3x8IUl8fEk9PT1SKSYmKEk9ay5wcm90b3R5cGUsTykpZm9yKHMgaW4gQiloW3NdJiZ5KGhbc10ucHJvdG90eXBlLEkpO2lmKE8mJnYoTSkhPT1JJiZ5KE0sSSksbyYmIWQoSSxEKSlmb3IocyBpbiBOPSEwLG0oSSxELHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGModGhpcyk/dGhpc1tMXTp2b2lkIDB9fSksQiloW3NdJiZnKGhbc10sTCxzKTt0LmV4cG9ydHM9e05BVElWRV9BUlJBWV9CVUZGRVJfVklFV1M6TyxUWVBFRF9BUlJBWV9UQUc6TiYmTCxhVHlwZWRBcnJheTpmdW5jdGlvbih0KXtpZihqKHQpKXJldHVybiB0O3Rocm93IG5ldyBQKCJUYXJnZXQgaXMgbm90IGEgdHlwZWQgYXJyYXkiKX0sYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjpmdW5jdGlvbih0KXtpZihsKHQpJiYoIXl8fGIoayx0KSkpcmV0dXJuIHQ7dGhyb3cgbmV3IFAocCh0KSsiIGlzIG5vdCBhIHR5cGVkIGFycmF5IGNvbnN0cnVjdG9yIil9LGV4cG9ydFR5cGVkQXJyYXlNZXRob2Q6ZnVuY3Rpb24odCxlLGkscyl7aWYobyl7aWYoaSlmb3IodmFyIG4gaW4gQil7dmFyIHI9aFtuXTtpZihyJiZkKHIucHJvdG90eXBlLHQpKXRyeXtkZWxldGUgci5wcm90b3R5cGVbdF19Y2F0Y2goaSl7dHJ5e3IucHJvdG90eXBlW3RdPWV9Y2F0Y2godCl7fX19SVt0XSYmIWl8fGYoSSx0LGk/ZTpPJiZTW3RdfHxlLHMpfX0sZXhwb3J0VHlwZWRBcnJheVN0YXRpY01ldGhvZDpmdW5jdGlvbih0LGUsaSl7dmFyIHMsbjtpZihvKXtpZih5KXtpZihpKWZvcihzIGluIEIpaWYoKG49aFtzXSkmJmQobix0KSl0cnl7ZGVsZXRlIG5bdF19Y2F0Y2godCl7fWlmKGtbdF0mJiFpKXJldHVybjt0cnl7cmV0dXJuIGYoayx0LGk/ZTpPJiZrW3RdfHxlKX1jYXRjaCh0KXt9fWZvcihzIGluIEIpIShuPWhbc10pfHxuW3RdJiYhaXx8ZihuLHQsZSl9fSxnZXRUeXBlZEFycmF5Q29uc3RydWN0b3I6SCxpc1ZpZXc6ZnVuY3Rpb24odCl7aWYoIWModCkpcmV0dXJuITE7dmFyIGU9dSh0KTtyZXR1cm4iRGF0YVZpZXciPT09ZXx8ZChCLGUpfHxkKHosZSl9LGlzVHlwZWRBcnJheTpqLFR5cGVkQXJyYXk6ayxUeXBlZEFycmF5UHJvdG90eXBlOkl9fSw1MzcwOih0LGUsaSk9Pnt2YXIgcz1pKDYxOTgpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSl7Zm9yKHZhciBuPTAscj1hcmd1bWVudHMubGVuZ3RoPjI/aTpzKGUpLGE9bmV3IHQocik7cj5uOylhW25dPWVbbisrXTtyZXR1cm4gYX19LDk2MTc6KHQsZSxpKT0+e3ZhciBzPWkoNTM5Nyksbj1pKDU2MTApLHI9aSg2MTk4KSxhPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLGksYSl7dmFyIG89cyhlKSxoPXIobyk7aWYoMD09PWgpcmV0dXJuIXQmJi0xO3ZhciBsLGM9bihhLGgpO2lmKHQmJmkhPWkpe2Zvcig7aD5jOylpZigobD1vW2MrK10pIT1sKXJldHVybiEwfWVsc2UgZm9yKDtoPmM7YysrKWlmKCh0fHxjIGluIG8pJiZvW2NdPT09aSlyZXR1cm4gdHx8Y3x8MDtyZXR1cm4hdCYmLTF9fTt0LmV4cG9ydHM9e2luY2x1ZGVzOmEoITApLGluZGV4T2Y6YSghMSl9fSw0NTI3Oih0LGUsaSk9Pnt2YXIgcz1pKDM3MjQpLG49aSg0Mzc2KSxyPVR5cGVFcnJvcixhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Isbz1zJiYhZnVuY3Rpb24oKXtpZih2b2lkIDAhPT10aGlzKXJldHVybiEwO3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoW10sImxlbmd0aCIse3dyaXRhYmxlOiExfSkubGVuZ3RoPTF9Y2F0Y2godCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBUeXBlRXJyb3J9fSgpO3QuZXhwb3J0cz1vP2Z1bmN0aW9uKHQsZSl7aWYobih0KSYmIWEodCwibGVuZ3RoIikud3JpdGFibGUpdGhyb3cgbmV3IHIoIkNhbm5vdCBzZXQgcmVhZCBvbmx5IC5sZW5ndGgiKTtyZXR1cm4gdC5sZW5ndGg9ZX06ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5sZW5ndGg9ZX19LDc2Mjg6KHQsZSxpKT0+e3ZhciBzPWkoNjE5OCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBpPXModCksbj1uZXcgZShpKSxyPTA7cjxpO3IrKyluW3JdPXRbaS1yLTFdO3JldHVybiBufX0sOTkyODoodCxlLGkpPT57dmFyIHM9aSg2MTk4KSxuPWkoMTI5MSkscj1SYW5nZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSxhKXt2YXIgbz1zKHQpLGg9bihpKSxsPWg8MD9vK2g6aDtpZihsPj1vfHxsPDApdGhyb3cgbmV3IHIoIkluY29ycmVjdCBpbmRleCIpO2Zvcih2YXIgYz1uZXcgZShvKSxkPTA7ZDxvO2QrKyljW2RdPWQ9PT1sP2E6dFtkXTtyZXR1cm4gY319LDYzMTk6KHQsZSxpKT0+e3ZhciBzPWkoODU1MSksbj1pKDk1MzkpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSxyKXt0cnl7cmV0dXJuIHI/ZShzKGkpWzBdLGlbMV0pOmUoaSl9Y2F0Y2goZSl7bih0LCJ0aHJvdyIsZSl9fX0sMjE5NToodCxlLGkpPT57dmFyIHM9aSg5NTA0KSxuPXMoe30udG9TdHJpbmcpLHI9cygiIi5zbGljZSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiByKG4odCksOCwtMSl9fSw2OTU1Oih0LGUsaSk9Pnt2YXIgcz1pKDIxNDApLG49aSg0OTAxKSxyPWkoMjE5NSksYT1pKDgyMjcpKCJ0b1N0cmluZ1RhZyIpLG89T2JqZWN0LGg9IkFyZ3VtZW50cyI9PT1yKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk7dC5leHBvcnRzPXM/cjpmdW5jdGlvbih0KXt2YXIgZSxpLHM7cmV0dXJuIHZvaWQgMD09PXQ/IlVuZGVmaW5lZCI6bnVsbD09PXQ/Ik51bGwiOiJzdHJpbmciPT10eXBlb2YoaT1mdW5jdGlvbih0LGUpe3RyeXtyZXR1cm4gdFtlXX1jYXRjaCh0KXt9fShlPW8odCksYSkpP2k6aD9yKGUpOiJPYmplY3QiPT09KHM9cihlKSkmJm4oZS5jYWxsZWUpPyJBcmd1bWVudHMiOnN9fSw3NzQwOih0LGUsaSk9Pnt2YXIgcz1pKDkyOTcpLG49aSg1MDMxKSxyPWkoNzM0NyksYT1pKDQ5MTMpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSl7Zm9yKHZhciBvPW4oZSksaD1hLmYsbD1yLmYsYz0wO2M8by5sZW5ndGg7YysrKXt2YXIgZD1vW2NdO3ModCxkKXx8aSYmcyhpLGQpfHxoKHQsZCxsKGUsZCkpfX19LDIyMTE6KHQsZSxpKT0+e3ZhciBzPWkoOTAzOSk7dC5leHBvcnRzPSFzKChmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPW51bGwsT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyB0KSE9PXQucHJvdG90eXBlfSkpfSwyNTI5OnQ9Pnt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm57dmFsdWU6dCxkb25lOmV9fX0sNjY5OToodCxlLGkpPT57dmFyIHM9aSgzNzI0KSxuPWkoNDkxMykscj1pKDY5ODApO3QuZXhwb3J0cz1zP2Z1bmN0aW9uKHQsZSxpKXtyZXR1cm4gbi5mKHQsZSxyKDEsaSkpfTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuIHRbZV09aSx0fX0sNjk4MDp0PT57dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJue2VudW1lcmFibGU6ISgxJnQpLGNvbmZpZ3VyYWJsZTohKDImdCksd3JpdGFibGU6ISg0JnQpLHZhbHVlOmV9fX0sNDY1OToodCxlLGkpPT57dmFyIHM9aSgzNzI0KSxuPWkoNDkxMykscj1pKDY5ODApO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSl7cz9uLmYodCxlLHIoMCxpKSk6dFtlXT1pfX0sMjEwNjoodCxlLGkpPT57dmFyIHM9aSgyODMpLG49aSg0OTEzKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLGkpe3JldHVybiBpLmdldCYmcyhpLmdldCxlLHtnZXR0ZXI6ITB9KSxpLnNldCYmcyhpLnNldCxlLHtzZXR0ZXI6ITB9KSxuLmYodCxlLGkpfX0sNjg0MDoodCxlLGkpPT57dmFyIHM9aSg0OTAxKSxuPWkoNDkxMykscj1pKDI4MyksYT1pKDk0MzMpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSxvKXtvfHwobz17fSk7dmFyIGg9by5lbnVtZXJhYmxlLGw9dm9pZCAwIT09by5uYW1lP28ubmFtZTplO2lmKHMoaSkmJnIoaSxsLG8pLG8uZ2xvYmFsKWg/dFtlXT1pOmEoZSxpKTtlbHNle3RyeXtvLnVuc2FmZT90W2VdJiYoaD0hMCk6ZGVsZXRlIHRbZV19Y2F0Y2godCl7fWg/dFtlXT1pOm4uZih0LGUse3ZhbHVlOmksZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6IW8ubm9uQ29uZmlndXJhYmxlLHdyaXRhYmxlOiFvLm5vbldyaXRhYmxlfSl9cmV0dXJuIHR9fSw2Mjc5Oih0LGUsaSk9Pnt2YXIgcz1pKDY4NDApO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSl7Zm9yKHZhciBuIGluIGUpcyh0LG4sZVtuXSxpKTtyZXR1cm4gdH19LDk0MzM6KHQsZSxpKT0+e3ZhciBzPWkoNDU3Niksbj1PYmplY3QuZGVmaW5lUHJvcGVydHk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dHJ5e24ocyx0LHt2YWx1ZTplLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pfWNhdGNoKGkpe3NbdF09ZX1yZXR1cm4gZX19LDM3MjQ6KHQsZSxpKT0+e3ZhciBzPWkoOTAzOSk7dC5leHBvcnRzPSFzKChmdW5jdGlvbigpe3JldHVybiA3IT09T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LDEse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pWzFdfSkpfSw0NDgzOih0LGUsaSk9Pnt2YXIgcyxuLHIsYSxvPWkoNDU3NiksaD1pKDk0MjkpLGw9aSgxNTQ4KSxjPW8uc3RydWN0dXJlZENsb25lLGQ9by5BcnJheUJ1ZmZlcix1PW8uTWVzc2FnZUNoYW5uZWwscD0hMTtpZihsKXA9ZnVuY3Rpb24odCl7Yyh0LHt0cmFuc2ZlcjpbdF19KX07ZWxzZSBpZihkKXRyeXt1fHwocz1oKCJ3b3JrZXJfdGhyZWFkcyIpKSYmKHU9cy5NZXNzYWdlQ2hhbm5lbCksdSYmKG49bmV3IHUscj1uZXcgZCgyKSxhPWZ1bmN0aW9uKHQpe24ucG9ydDEucG9zdE1lc3NhZ2UobnVsbCxbdF0pfSwyPT09ci5ieXRlTGVuZ3RoJiYoYShyKSwwPT09ci5ieXRlTGVuZ3RoJiYocD1hKSkpfWNhdGNoKHQpe310LmV4cG9ydHM9cH0sNDA1NToodCxlLGkpPT57dmFyIHM9aSg0NTc2KSxuPWkoMzQpLHI9cy5kb2N1bWVudCxhPW4ocikmJm4oci5jcmVhdGVFbGVtZW50KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGE/ci5jcmVhdGVFbGVtZW50KHQpOnt9fX0sNjgzNzp0PT57dmFyIGU9VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZih0PjkwMDcxOTkyNTQ3NDA5OTEpdGhyb3cgZSgiTWF4aW11bSBhbGxvd2VkIGluZGV4IGV4Y2VlZGVkIik7cmV0dXJuIHR9fSw1MDAyOnQ9Pnt0LmV4cG9ydHM9e0luZGV4U2l6ZUVycm9yOntzOiJJTkRFWF9TSVpFX0VSUiIsYzoxLG06MX0sRE9NU3RyaW5nU2l6ZUVycm9yOntzOiJET01TVFJJTkdfU0laRV9FUlIiLGM6MixtOjB9LEhpZXJhcmNoeVJlcXVlc3RFcnJvcjp7czoiSElFUkFSQ0hZX1JFUVVFU1RfRVJSIixjOjMsbToxfSxXcm9uZ0RvY3VtZW50RXJyb3I6e3M6IldST05HX0RPQ1VNRU5UX0VSUiIsYzo0LG06MX0sSW52YWxpZENoYXJhY3RlckVycm9yOntzOiJJTlZBTElEX0NIQVJBQ1RFUl9FUlIiLGM6NSxtOjF9LE5vRGF0YUFsbG93ZWRFcnJvcjp7czoiTk9fREFUQV9BTExPV0VEX0VSUiIsYzo2LG06MH0sTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6e3M6Ik5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiIsYzo3LG06MX0sTm90Rm91bmRFcnJvcjp7czoiTk9UX0ZPVU5EX0VSUiIsYzo4LG06MX0sTm90U3VwcG9ydGVkRXJyb3I6e3M6Ik5PVF9TVVBQT1JURURfRVJSIixjOjksbToxfSxJblVzZUF0dHJpYnV0ZUVycm9yOntzOiJJTlVTRV9BVFRSSUJVVEVfRVJSIixjOjEwLG06MX0sSW52YWxpZFN0YXRlRXJyb3I6e3M6IklOVkFMSURfU1RBVEVfRVJSIixjOjExLG06MX0sU3ludGF4RXJyb3I6e3M6IlNZTlRBWF9FUlIiLGM6MTIsbToxfSxJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3I6e3M6IklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUiIsYzoxMyxtOjF9LE5hbWVzcGFjZUVycm9yOntzOiJOQU1FU1BBQ0VfRVJSIixjOjE0LG06MX0sSW52YWxpZEFjY2Vzc0Vycm9yOntzOiJJTlZBTElEX0FDQ0VTU19FUlIiLGM6MTUsbToxfSxWYWxpZGF0aW9uRXJyb3I6e3M6IlZBTElEQVRJT05fRVJSIixjOjE2LG06MH0sVHlwZU1pc21hdGNoRXJyb3I6e3M6IlRZUEVfTUlTTUFUQ0hfRVJSIixjOjE3LG06MX0sU2VjdXJpdHlFcnJvcjp7czoiU0VDVVJJVFlfRVJSIixjOjE4LG06MX0sTmV0d29ya0Vycm9yOntzOiJORVRXT1JLX0VSUiIsYzoxOSxtOjF9LEFib3J0RXJyb3I6e3M6IkFCT1JUX0VSUiIsYzoyMCxtOjF9LFVSTE1pc21hdGNoRXJyb3I6e3M6IlVSTF9NSVNNQVRDSF9FUlIiLGM6MjEsbToxfSxRdW90YUV4Y2VlZGVkRXJyb3I6e3M6IlFVT1RBX0VYQ0VFREVEX0VSUiIsYzoyMixtOjF9LFRpbWVvdXRFcnJvcjp7czoiVElNRU9VVF9FUlIiLGM6MjMsbToxfSxJbnZhbGlkTm9kZVR5cGVFcnJvcjp7czoiSU5WQUxJRF9OT0RFX1RZUEVfRVJSIixjOjI0LG06MX0sRGF0YUNsb25lRXJyb3I6e3M6IkRBVEFfQ0xPTkVfRVJSIixjOjI1LG06MX19fSw4NzI3OnQ9Pnt0LmV4cG9ydHM9WyJjb25zdHJ1Y3RvciIsImhhc093blByb3BlcnR5IiwiaXNQcm90b3R5cGVPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidG9Mb2NhbGVTdHJpbmciLCJ0b1N0cmluZyIsInZhbHVlT2YiXX0sNjE5MzoodCxlLGkpPT57dmFyIHM9aSg0MjE1KTt0LmV4cG9ydHM9Ik5PREUiPT09c30sMjgzOToodCxlLGkpPT57dmFyIHM9aSg0NTc2KS5uYXZpZ2F0b3Isbj1zJiZzLnVzZXJBZ2VudDt0LmV4cG9ydHM9bj9TdHJpbmcobik6IiJ9LDk1MTk6KHQsZSxpKT0+e3ZhciBzLG4scj1pKDQ1NzYpLGE9aSgyODM5KSxvPXIucHJvY2VzcyxoPXIuRGVubyxsPW8mJm8udmVyc2lvbnN8fGgmJmgudmVyc2lvbixjPWwmJmwudjg7YyYmKG49KHM9Yy5zcGxpdCgiLiIpKVswXT4wJiZzWzBdPDQ/MTorKHNbMF0rc1sxXSkpLCFuJiZhJiYoIShzPWEubWF0Y2goL0VkZ2VcLyhcZCspLykpfHxzWzFdPj03NCkmJihzPWEubWF0Y2goL0Nocm9tZVwvKFxkKykvKSkmJihuPStzWzFdKSx0LmV4cG9ydHM9bn0sNDIxNToodCxlLGkpPT57dmFyIHM9aSg0NTc2KSxuPWkoMjgzOSkscj1pKDIxOTUpLGE9ZnVuY3Rpb24odCl7cmV0dXJuIG4uc2xpY2UoMCx0Lmxlbmd0aCk9PT10fTt0LmV4cG9ydHM9YSgiQnVuLyIpPyJCVU4iOmEoIkNsb3VkZmxhcmUtV29ya2VycyIpPyJDTE9VREZMQVJFIjphKCJEZW5vLyIpPyJERU5PIjphKCJOb2RlLmpzLyIpPyJOT0RFIjpzLkJ1biYmInN0cmluZyI9PXR5cGVvZiBCdW4udmVyc2lvbj8iQlVOIjpzLkRlbm8mJiJvYmplY3QiPT10eXBlb2YgRGVuby52ZXJzaW9uPyJERU5PIjoicHJvY2VzcyI9PT1yKHMucHJvY2Vzcyk/Ik5PREUiOnMud2luZG93JiZzLmRvY3VtZW50PyJCUk9XU0VSIjoiUkVTVCJ9LDg1NzQ6KHQsZSxpKT0+e3ZhciBzPWkoOTUwNCksbj1FcnJvcixyPXMoIiIucmVwbGFjZSksYT1TdHJpbmcobmV3IG4oInp4Y2FzZCIpLnN0YWNrKSxvPS9cblxzKmF0IFteOl0qOlteXG5dKi8saD1vLnRlc3QoYSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYoaCYmInN0cmluZyI9PXR5cGVvZiB0JiYhbi5wcmVwYXJlU3RhY2tUcmFjZSlmb3IoO2UtLTspdD1yKHQsbywiIik7cmV0dXJuIHR9fSw2NTE4Oih0LGUsaSk9Pnt2YXIgcz1pKDQ1NzYpLG49aSg3MzQ3KS5mLHI9aSg2Njk5KSxhPWkoNjg0MCksbz1pKDk0MzMpLGg9aSg3NzQwKSxsPWkoMjc5Nik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIGksYyxkLHUscCxnPXQudGFyZ2V0LGY9dC5nbG9iYWwsbT10LnN0YXQ7aWYoaT1mP3M6bT9zW2ddfHxvKGcse30pOnNbZ10mJnNbZ10ucHJvdG90eXBlKWZvcihjIGluIGUpe2lmKHU9ZVtjXSxkPXQuZG9udENhbGxHZXRTZXQ/KHA9bihpLGMpKSYmcC52YWx1ZTppW2NdLCFsKGY/YzpnKyhtPyIuIjoiIyIpK2MsdC5mb3JjZWQpJiZ2b2lkIDAhPT1kKXtpZih0eXBlb2YgdT09dHlwZW9mIGQpY29udGludWU7aCh1LGQpfSh0LnNoYW18fGQmJmQuc2hhbSkmJnIodSwic2hhbSIsITApLGEoaSxjLHUsdCl9fX0sOTAzOTp0PT57dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4hIXQoKX1jYXRjaCh0KXtyZXR1cm4hMH19fSw2MDgwOih0LGUsaSk9Pnt2YXIgcz1pKDc0NzYpLG49aSg5MzA2KSxyPWkoNjE2KSxhPXMocy5iaW5kKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0KSx2b2lkIDA9PT1lP3Q6cj9hKHQsZSk6ZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseShlLGFyZ3VtZW50cyl9fX0sNjE2Oih0LGUsaSk9Pnt2YXIgcz1pKDkwMzkpO3QuZXhwb3J0cz0hcygoZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbigpe30uYmluZCgpO3JldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB0fHx0Lmhhc093blByb3BlcnR5KCJwcm90b3R5cGUiKX0pKX0sOTU2NToodCxlLGkpPT57dmFyIHM9aSg2MTYpLG49RnVuY3Rpb24ucHJvdG90eXBlLmNhbGw7dC5leHBvcnRzPXM/bi5iaW5kKG4pOmZ1bmN0aW9uKCl7cmV0dXJuIG4uYXBwbHkobixhcmd1bWVudHMpfX0sMzUwOih0LGUsaSk9Pnt2YXIgcz1pKDM3MjQpLG49aSg5Mjk3KSxyPUZ1bmN0aW9uLnByb3RvdHlwZSxhPXMmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Isbz1uKHIsIm5hbWUiKSxoPW8mJiJzb21ldGhpbmciPT09ZnVuY3Rpb24oKXt9Lm5hbWUsbD1vJiYoIXN8fHMmJmEociwibmFtZSIpLmNvbmZpZ3VyYWJsZSk7dC5leHBvcnRzPXtFWElTVFM6byxQUk9QRVI6aCxDT05GSUdVUkFCTEU6bH19LDY3MDY6KHQsZSxpKT0+e3ZhciBzPWkoOTUwNCksbj1pKDkzMDYpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSl7dHJ5e3JldHVybiBzKG4oT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpW2ldKSl9Y2F0Y2godCl7fX19LDc0NzY6KHQsZSxpKT0+e3ZhciBzPWkoMjE5NSksbj1pKDk1MDQpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZigiRnVuY3Rpb24iPT09cyh0KSlyZXR1cm4gbih0KX19LDk1MDQ6KHQsZSxpKT0+e3ZhciBzPWkoNjE2KSxuPUZ1bmN0aW9uLnByb3RvdHlwZSxyPW4uY2FsbCxhPXMmJm4uYmluZC5iaW5kKHIscik7dC5leHBvcnRzPXM/YTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gci5hcHBseSh0LGFyZ3VtZW50cyl9fX0sOTQyOToodCxlLGkpPT57dmFyIHM9aSg0NTc2KSxuPWkoNjE5Myk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKG4pe3RyeXtyZXR1cm4gcy5wcm9jZXNzLmdldEJ1aWx0aW5Nb2R1bGUodCl9Y2F0Y2godCl7fXRyeXtyZXR1cm4gRnVuY3Rpb24oJ3JldHVybiByZXF1aXJlKCInK3QrJyIpJykoKX1jYXRjaCh0KXt9fX19LDc3NTE6KHQsZSxpKT0+e3ZhciBzPWkoNDU3Niksbj1pKDQ5MDEpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDI/KGk9c1t0XSxuKGkpP2k6dm9pZCAwKTpzW3RdJiZzW3RdW2VdO3ZhciBpfX0sMTc2Nzp0PT57dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybntpdGVyYXRvcjp0LG5leHQ6dC5uZXh0LGRvbmU6ITF9fX0sODY0NjoodCxlLGkpPT57dmFyIHM9aSg5NTY1KSxuPWkoODU1MSkscj1pKDE3NjcpLGE9aSg4NTEpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2UmJiJzdHJpbmciPT10eXBlb2YgdHx8bih0KTt2YXIgaT1hKHQpO3JldHVybiByKG4odm9pZCAwIT09aT9zKGksdCk6dCkpfX0sODUxOih0LGUsaSk9Pnt2YXIgcz1pKDY5NTUpLG49aSg1OTY2KSxyPWkoNDExNyksYT1pKDYyNjkpLG89aSg4MjI3KSgiaXRlcmF0b3IiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoIXIodCkpcmV0dXJuIG4odCxvKXx8bih0LCJAQGl0ZXJhdG9yIil8fGFbcyh0KV19fSw4MToodCxlLGkpPT57dmFyIHM9aSg5NTY1KSxuPWkoOTMwNikscj1pKDg1NTEpLGE9aSg2ODIzKSxvPWkoODUxKSxoPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoPDI/byh0KTplO2lmKG4oaSkpcmV0dXJuIHIocyhpLHQpKTt0aHJvdyBuZXcgaChhKHQpKyIgaXMgbm90IGl0ZXJhYmxlIil9fSw1OTY2Oih0LGUsaSk9Pnt2YXIgcz1pKDkzMDYpLG49aSg0MTE3KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgaT10W2VdO3JldHVybiBuKGkpP3ZvaWQgMDpzKGkpfX0sMzc4OToodCxlLGkpPT57dmFyIHM9aSg5MzA2KSxuPWkoODU1MSkscj1pKDk1NjUpLGE9aSgxMjkxKSxvPWkoMTc2NyksaD0iSW52YWxpZCBzaXplIixsPVJhbmdlRXJyb3IsYz1UeXBlRXJyb3IsZD1NYXRoLm1heCx1PWZ1bmN0aW9uKHQsZSl7dGhpcy5zZXQ9dCx0aGlzLnNpemU9ZChlLDApLHRoaXMuaGFzPXModC5oYXMpLHRoaXMua2V5cz1zKHQua2V5cyl9O3UucHJvdG90eXBlPXtnZXRJdGVyYXRvcjpmdW5jdGlvbigpe3JldHVybiBvKG4ocih0aGlzLmtleXMsdGhpcy5zZXQpKSl9LGluY2x1ZGVzOmZ1bmN0aW9uKHQpe3JldHVybiByKHRoaXMuaGFzLHRoaXMuc2V0LHQpfX0sdC5leHBvcnRzPWZ1bmN0aW9uKHQpe24odCk7dmFyIGU9K3Quc2l6ZTtpZihlIT1lKXRocm93IG5ldyBjKGgpO3ZhciBpPWEoZSk7aWYoaTwwKXRocm93IG5ldyBsKGgpO3JldHVybiBuZXcgdSh0LGkpfX0sNDU3NjpmdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5NYXRoPT09TWF0aCYmdH07dC5leHBvcnRzPWUoIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzKXx8ZSgib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93KXx8ZSgib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYpfHxlKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWwpfHxlKCJvYmplY3QiPT10eXBlb2YgdGhpcyYmdGhpcyl8fGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KCl8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCl9LDkyOTc6KHQsZSxpKT0+e3ZhciBzPWkoOTUwNCksbj1pKDg5ODEpLHI9cyh7fS5oYXNPd25Qcm9wZXJ0eSk7dC5leHBvcnRzPU9iamVjdC5oYXNPd258fGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIobih0KSxlKX19LDQyMTp0PT57dC5leHBvcnRzPXt9fSwzOTc6KHQsZSxpKT0+e3ZhciBzPWkoNzc1MSk7dC5leHBvcnRzPXMoImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50Iil9LDU5MTc6KHQsZSxpKT0+e3ZhciBzPWkoMzcyNCksbj1pKDkwMzkpLHI9aSg0MDU1KTt0LmV4cG9ydHM9IXMmJiFuKChmdW5jdGlvbigpe3JldHVybiA3IT09T2JqZWN0LmRlZmluZVByb3BlcnR5KHIoImRpdiIpLCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pKX0sNzA1NToodCxlLGkpPT57dmFyIHM9aSg5NTA0KSxuPWkoOTAzOSkscj1pKDIxOTUpLGE9T2JqZWN0LG89cygiIi5zcGxpdCk7dC5leHBvcnRzPW4oKGZ1bmN0aW9uKCl7cmV0dXJuIWEoInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pKT9mdW5jdGlvbih0KXtyZXR1cm4iU3RyaW5nIj09PXIodCk/byh0LCIiKTphKHQpfTphfSwzMTY3Oih0LGUsaSk9Pnt2YXIgcz1pKDQ5MDEpLG49aSgzNCkscj1pKDI5NjcpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSl7dmFyIGEsbztyZXR1cm4gciYmcyhhPWUuY29uc3RydWN0b3IpJiZhIT09aSYmbihvPWEucHJvdG90eXBlKSYmbyE9PWkucHJvdG90eXBlJiZyKHQsbyksdH19LDM3MDY6KHQsZSxpKT0+e3ZhciBzPWkoOTUwNCksbj1pKDQ5MDEpLHI9aSg3NjI5KSxhPXMoRnVuY3Rpb24udG9TdHJpbmcpO24oci5pbnNwZWN0U291cmNlKXx8KHIuaW5zcGVjdFNvdXJjZT1mdW5jdGlvbih0KXtyZXR1cm4gYSh0KX0pLHQuZXhwb3J0cz1yLmluc3BlY3RTb3VyY2V9LDExODE6KHQsZSxpKT0+e3ZhciBzLG4scixhPWkoODYyMiksbz1pKDQ1NzYpLGg9aSgzNCksbD1pKDY2OTkpLGM9aSg5Mjk3KSxkPWkoNzYyOSksdT1pKDYxMTkpLHA9aSg0MjEpLGc9Ik9iamVjdCBhbHJlYWR5IGluaXRpYWxpemVkIixmPW8uVHlwZUVycm9yLG09by5XZWFrTWFwO2lmKGF8fGQuc3RhdGUpe3ZhciBiPWQuc3RhdGV8fChkLnN0YXRlPW5ldyBtKTtiLmdldD1iLmdldCxiLmhhcz1iLmhhcyxiLnNldD1iLnNldCxzPWZ1bmN0aW9uKHQsZSl7aWYoYi5oYXModCkpdGhyb3cgbmV3IGYoZyk7cmV0dXJuIGUuZmFjYWRlPXQsYi5zZXQodCxlKSxlfSxuPWZ1bmN0aW9uKHQpe3JldHVybiBiLmdldCh0KXx8e319LHI9ZnVuY3Rpb24odCl7cmV0dXJuIGIuaGFzKHQpfX1lbHNle3ZhciB2PXUoInN0YXRlIik7cFt2XT0hMCxzPWZ1bmN0aW9uKHQsZSl7aWYoYyh0LHYpKXRocm93IG5ldyBmKGcpO3JldHVybiBlLmZhY2FkZT10LGwodCx2LGUpLGV9LG49ZnVuY3Rpb24odCl7cmV0dXJuIGModCx2KT90W3ZdOnt9fSxyPWZ1bmN0aW9uKHQpe3JldHVybiBjKHQsdil9fXQuZXhwb3J0cz17c2V0OnMsZ2V0Om4saGFzOnIsZW5mb3JjZTpmdW5jdGlvbih0KXtyZXR1cm4gcih0KT9uKHQpOnModCx7fSl9LGdldHRlckZvcjpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIGk7aWYoIWgoZSl8fChpPW4oZSkpLnR5cGUhPT10KXRocm93IG5ldyBmKCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICIrdCsiIHJlcXVpcmVkIik7cmV0dXJuIGl9fX19LDQyMDk6KHQsZSxpKT0+e3ZhciBzPWkoODIyNyksbj1pKDYyNjkpLHI9cygiaXRlcmF0b3IiKSxhPUFycmF5LnByb3RvdHlwZTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMCE9PXQmJihuLkFycmF5PT09dHx8YVtyXT09PXQpfX0sNDM3NjoodCxlLGkpPT57dmFyIHM9aSgyMTk1KTt0LmV4cG9ydHM9QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24odCl7cmV0dXJuIkFycmF5Ij09PXModCl9fSwxMTA4Oih0LGUsaSk9Pnt2YXIgcz1pKDY5NTUpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1zKHQpO3JldHVybiJCaWdJbnQ2NEFycmF5Ij09PWV8fCJCaWdVaW50NjRBcnJheSI9PT1lfX0sNDkwMTp0PT57dmFyIGU9Im9iamVjdCI9PXR5cGVvZiBkb2N1bWVudCYmZG9jdW1lbnQuYWxsO3QuZXhwb3J0cz12b2lkIDA9PT1lJiZ2b2lkIDAhPT1lP2Z1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fHx0PT09ZX06ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHR9fSwyNzk2Oih0LGUsaSk9Pnt2YXIgcz1pKDkwMzkpLG49aSg0OTAxKSxyPS8jfFwucHJvdG90eXBlXC4vLGE9ZnVuY3Rpb24odCxlKXt2YXIgaT1oW28odCldO3JldHVybiBpPT09Y3x8aSE9PWwmJihuKGUpP3MoZSk6ISFlKX0sbz1hLm5vcm1hbGl6ZT1mdW5jdGlvbih0KXtyZXR1cm4gU3RyaW5nKHQpLnJlcGxhY2UociwiLiIpLnRvTG93ZXJDYXNlKCl9LGg9YS5kYXRhPXt9LGw9YS5OQVRJVkU9Ik4iLGM9YS5QT0xZRklMTD0iUCI7dC5leHBvcnRzPWF9LDQxMTc6dD0+e3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dH19LDM0Oih0LGUsaSk9Pnt2YXIgcz1pKDQ5MDEpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQ/bnVsbCE9PXQ6cyh0KX19LDM5MjU6KHQsZSxpKT0+e3ZhciBzPWkoMzQpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gcyh0KXx8bnVsbD09PXR9fSw2Mzk1OnQ9Pnt0LmV4cG9ydHM9ITF9LDc1NzoodCxlLGkpPT57dmFyIHM9aSg3NzUxKSxuPWkoNDkwMSkscj1pKDE2MjUpLGE9aSg3MDQwKSxvPU9iamVjdDt0LmV4cG9ydHM9YT9mdW5jdGlvbih0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3ZhciBlPXMoIlN5bWJvbCIpO3JldHVybiBuKGUpJiZyKGUucHJvdG90eXBlLG8odCkpfX0sNTA3Oih0LGUsaSk9Pnt2YXIgcz1pKDk1NjUpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSl7Zm9yKHZhciBuLHIsYT1pP3Q6dC5pdGVyYXRvcixvPXQubmV4dDshKG49cyhvLGEpKS5kb25lOylpZih2b2lkIDAhPT0ocj1lKG4udmFsdWUpKSlyZXR1cm4gcn19LDI2NTI6KHQsZSxpKT0+e3ZhciBzPWkoNjA4MCksbj1pKDk1NjUpLHI9aSg4NTUxKSxhPWkoNjgyMyksbz1pKDQyMDkpLGg9aSg2MTk4KSxsPWkoMTYyNSksYz1pKDgxKSxkPWkoODUxKSx1PWkoOTUzOSkscD1UeXBlRXJyb3IsZz1mdW5jdGlvbih0LGUpe3RoaXMuc3RvcHBlZD10LHRoaXMucmVzdWx0PWV9LGY9Zy5wcm90b3R5cGU7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbSxiLHYseSxBLHcseCxfPWkmJmkudGhhdCxFPSEoIWl8fCFpLkFTX0VOVFJJRVMpLEM9ISghaXx8IWkuSVNfUkVDT1JEKSxTPSEoIWl8fCFpLklTX0lURVJBVE9SKSxUPSEoIWl8fCFpLklOVEVSUlVQVEVEKSxNPXMoZSxfKSxrPWZ1bmN0aW9uKHQpe3JldHVybiBtJiZ1KG0sIm5vcm1hbCIsdCksbmV3IGcoITAsdCl9LEk9ZnVuY3Rpb24odCl7cmV0dXJuIEU/KHIodCksVD9NKHRbMF0sdFsxXSxrKTpNKHRbMF0sdFsxXSkpOlQ/TSh0LGspOk0odCl9O2lmKEMpbT10Lml0ZXJhdG9yO2Vsc2UgaWYoUyltPXQ7ZWxzZXtpZighKGI9ZCh0KSkpdGhyb3cgbmV3IHAoYSh0KSsiIGlzIG5vdCBpdGVyYWJsZSIpO2lmKG8oYikpe2Zvcih2PTAseT1oKHQpO3k+djt2KyspaWYoKEE9SSh0W3ZdKSkmJmwoZixBKSlyZXR1cm4gQTtyZXR1cm4gbmV3IGcoITEpfW09Yyh0LGIpfWZvcih3PUM/dC5uZXh0Om0ubmV4dDshKHg9bih3LG0pKS5kb25lOyl7dHJ5e0E9SSh4LnZhbHVlKX1jYXRjaCh0KXt1KG0sInRocm93Iix0KX1pZigib2JqZWN0Ij09dHlwZW9mIEEmJkEmJmwoZixBKSlyZXR1cm4gQX1yZXR1cm4gbmV3IGcoITEpfX0sOTUzOToodCxlLGkpPT57dmFyIHM9aSg5NTY1KSxuPWkoODU1MSkscj1pKDU5NjYpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSl7dmFyIGEsbztuKHQpO3RyeXtpZighKGE9cih0LCJyZXR1cm4iKSkpe2lmKCJ0aHJvdyI9PT1lKXRocm93IGk7cmV0dXJuIGl9YT1zKGEsdCl9Y2F0Y2godCl7bz0hMCxhPXR9aWYoInRocm93Ij09PWUpdGhyb3cgaTtpZihvKXRocm93IGE7cmV0dXJuIG4oYSksaX19LDk0NjI6KHQsZSxpKT0+e3ZhciBzPWkoOTU2NSksbj1pKDIzNjApLHI9aSg2Njk5KSxhPWkoNjI3OSksbz1pKDgyMjcpLGg9aSgxMTgxKSxsPWkoNTk2NiksYz1pKDc2NTcpLkl0ZXJhdG9yUHJvdG90eXBlLGQ9aSgyNTI5KSx1PWkoOTUzOSkscD1vKCJ0b1N0cmluZ1RhZyIpLGc9Ikl0ZXJhdG9ySGVscGVyIixmPSJXcmFwRm9yVmFsaWRJdGVyYXRvciIsbT1oLnNldCxiPWZ1bmN0aW9uKHQpe3ZhciBlPWguZ2V0dGVyRm9yKHQ/ZjpnKTtyZXR1cm4gYShuKGMpLHtuZXh0OmZ1bmN0aW9uKCl7dmFyIGk9ZSh0aGlzKTtpZih0KXJldHVybiBpLm5leHRIYW5kbGVyKCk7dHJ5e3ZhciBzPWkuZG9uZT92b2lkIDA6aS5uZXh0SGFuZGxlcigpO3JldHVybiBkKHMsaS5kb25lKX1jYXRjaCh0KXt0aHJvdyBpLmRvbmU9ITAsdH19LHJldHVybjpmdW5jdGlvbigpe3ZhciBpPWUodGhpcyksbj1pLml0ZXJhdG9yO2lmKGkuZG9uZT0hMCx0KXt2YXIgcj1sKG4sInJldHVybiIpO3JldHVybiByP3MocixuKTpkKHZvaWQgMCwhMCl9aWYoaS5pbm5lcil0cnl7dShpLmlubmVyLml0ZXJhdG9yLCJub3JtYWwiKX1jYXRjaCh0KXtyZXR1cm4gdShuLCJ0aHJvdyIsdCl9cmV0dXJuIHUobiwibm9ybWFsIiksZCh2b2lkIDAsITApfX0pfSx2PWIoITApLHk9YighMSk7cih5LHAsIkl0ZXJhdG9yIEhlbHBlciIpLHQuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBpPWZ1bmN0aW9uKGkscyl7cz8ocy5pdGVyYXRvcj1pLml0ZXJhdG9yLHMubmV4dD1pLm5leHQpOnM9aSxzLnR5cGU9ZT9mOmcscy5uZXh0SGFuZGxlcj10LHMuY291bnRlcj0wLHMuZG9uZT0hMSxtKHRoaXMscyl9O3JldHVybiBpLnByb3RvdHlwZT1lP3Y6eSxpfX0sNzEzOih0LGUsaSk9Pnt2YXIgcz1pKDk1NjUpLG49aSg5MzA2KSxyPWkoODU1MSksYT1pKDE3NjcpLG89aSg5NDYyKSxoPWkoNjMxOSksbD1vKChmdW5jdGlvbigpe3ZhciB0PXRoaXMuaXRlcmF0b3IsZT1yKHModGhpcy5uZXh0LHQpKTtpZighKHRoaXMuZG9uZT0hIWUuZG9uZSkpcmV0dXJuIGgodCx0aGlzLm1hcHBlcixbZS52YWx1ZSx0aGlzLmNvdW50ZXIrK10sITApfSkpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gcih0aGlzKSxuKHQpLG5ldyBsKGEodGhpcykse21hcHBlcjp0fSl9fSw3NjU3Oih0LGUsaSk9Pnt2YXIgcyxuLHIsYT1pKDkwMzkpLG89aSg0OTAxKSxoPWkoMzQpLGw9aSgyMzYwKSxjPWkoMjc4NyksZD1pKDY4NDApLHU9aSg4MjI3KSxwPWkoNjM5NSksZz11KCJpdGVyYXRvciIpLGY9ITE7W10ua2V5cyYmKCJuZXh0ImluKHI9W10ua2V5cygpKT8obj1jKGMocikpKSE9PU9iamVjdC5wcm90b3R5cGUmJihzPW4pOmY9ITApLCFoKHMpfHxhKChmdW5jdGlvbigpe3ZhciB0PXt9O3JldHVybiBzW2ddLmNhbGwodCkhPT10fSkpP3M9e306cCYmKHM9bChzKSksbyhzW2ddKXx8ZChzLGcsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksdC5leHBvcnRzPXtJdGVyYXRvclByb3RvdHlwZTpzLEJVR0dZX1NBRkFSSV9JVEVSQVRPUlM6Zn19LDYyNjk6dD0+e3QuZXhwb3J0cz17fX0sNjE5ODoodCxlLGkpPT57dmFyIHM9aSg4MDE0KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHModC5sZW5ndGgpfX0sMjgzOih0LGUsaSk9Pnt2YXIgcz1pKDk1MDQpLG49aSg5MDM5KSxyPWkoNDkwMSksYT1pKDkyOTcpLG89aSgzNzI0KSxoPWkoMzUwKS5DT05GSUdVUkFCTEUsbD1pKDM3MDYpLGM9aSgxMTgxKSxkPWMuZW5mb3JjZSx1PWMuZ2V0LHA9U3RyaW5nLGc9T2JqZWN0LmRlZmluZVByb3BlcnR5LGY9cygiIi5zbGljZSksbT1zKCIiLnJlcGxhY2UpLGI9cyhbXS5qb2luKSx2PW8mJiFuKChmdW5jdGlvbigpe3JldHVybiA4IT09ZygoZnVuY3Rpb24oKXt9KSwibGVuZ3RoIix7dmFsdWU6OH0pLmxlbmd0aH0pKSx5PVN0cmluZyhTdHJpbmcpLnNwbGl0KCJTdHJpbmciKSxBPXQuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSl7IlN5bWJvbCgiPT09ZihwKGUpLDAsNykmJihlPSJbIittKHAoZSksL15TeW1ib2xcKChbXildKilcKS4qJC8sIiQxIikrIl0iKSxpJiZpLmdldHRlciYmKGU9ImdldCAiK2UpLGkmJmkuc2V0dGVyJiYoZT0ic2V0ICIrZSksKCFhKHQsIm5hbWUiKXx8aCYmdC5uYW1lIT09ZSkmJihvP2codCwibmFtZSIse3ZhbHVlOmUsY29uZmlndXJhYmxlOiEwfSk6dC5uYW1lPWUpLHYmJmkmJmEoaSwiYXJpdHkiKSYmdC5sZW5ndGghPT1pLmFyaXR5JiZnKHQsImxlbmd0aCIse3ZhbHVlOmkuYXJpdHl9KTt0cnl7aSYmYShpLCJjb25zdHJ1Y3RvciIpJiZpLmNvbnN0cnVjdG9yP28mJmcodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KTp0LnByb3RvdHlwZSYmKHQucHJvdG90eXBlPXZvaWQgMCl9Y2F0Y2godCl7fXZhciBzPWQodCk7cmV0dXJuIGEocywic291cmNlIil8fChzLnNvdXJjZT1iKHksInN0cmluZyI9PXR5cGVvZiBlP2U6IiIpKSx0fTtGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc9QSgoZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzKSYmdSh0aGlzKS5zb3VyY2V8fGwodGhpcyl9KSwidG9TdHJpbmciKX0sNzQxOnQ9Pnt2YXIgZT1NYXRoLmNlaWwsaT1NYXRoLmZsb29yO3QuZXhwb3J0cz1NYXRoLnRydW5jfHxmdW5jdGlvbih0KXt2YXIgcz0rdDtyZXR1cm4ocz4wP2k6ZSkocyl9fSw2MDQzOih0LGUsaSk9Pnt2YXIgcz1pKDkzMDYpLG49VHlwZUVycm9yLHI9ZnVuY3Rpb24odCl7dmFyIGUsaTt0aGlzLnByb21pc2U9bmV3IHQoKGZ1bmN0aW9uKHQscyl7aWYodm9pZCAwIT09ZXx8dm9pZCAwIT09aSl0aHJvdyBuZXcgbigiQmFkIFByb21pc2UgY29uc3RydWN0b3IiKTtlPXQsaT1zfSkpLHRoaXMucmVzb2x2ZT1zKGUpLHRoaXMucmVqZWN0PXMoaSl9O3QuZXhwb3J0cy5mPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgcih0KX19LDI2MDM6KHQsZSxpKT0+e3ZhciBzPWkoNjU1KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09dD9hcmd1bWVudHMubGVuZ3RoPDI/IiI6ZTpzKHQpfX0sNDE0OTp0PT57dmFyIGU9UmFuZ2VFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYodD09dClyZXR1cm4gdDt0aHJvdyBuZXcgZSgiTmFOIGlzIG5vdCBhbGxvd2VkIil9fSwyMzYwOih0LGUsaSk9Pnt2YXIgcyxuPWkoODU1MSkscj1pKDY4MDEpLGE9aSg4NzI3KSxvPWkoNDIxKSxoPWkoMzk3KSxsPWkoNDA1NSksYz1pKDYxMTkpLGQ9InByb3RvdHlwZSIsdT0ic2NyaXB0IixwPWMoIklFX1BST1RPIiksZz1mdW5jdGlvbigpe30sZj1mdW5jdGlvbih0KXtyZXR1cm4iPCIrdSsiPiIrdCsiPC8iK3UrIj4ifSxtPWZ1bmN0aW9uKHQpe3Qud3JpdGUoZigiIikpLHQuY2xvc2UoKTt2YXIgZT10LnBhcmVudFdpbmRvdy5PYmplY3Q7cmV0dXJuIHQ9bnVsbCxlfSxiPWZ1bmN0aW9uKCl7dHJ5e3M9bmV3IEFjdGl2ZVhPYmplY3QoImh0bWxmaWxlIil9Y2F0Y2godCl7fXZhciB0LGUsaTtiPSJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQuZG9tYWluJiZzP20ocyk6KGU9bCgiaWZyYW1lIiksaT0iamF2YSIrdSsiOiIsZS5zdHlsZS5kaXNwbGF5PSJub25lIixoLmFwcGVuZENoaWxkKGUpLGUuc3JjPVN0cmluZyhpKSwodD1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpLm9wZW4oKSx0LndyaXRlKGYoImRvY3VtZW50LkY9T2JqZWN0IikpLHQuY2xvc2UoKSx0LkYpOm0ocyk7Zm9yKHZhciBuPWEubGVuZ3RoO24tLTspZGVsZXRlIGJbZF1bYVtuXV07cmV0dXJuIGIoKX07b1twXT0hMCx0LmV4cG9ydHM9T2JqZWN0LmNyZWF0ZXx8ZnVuY3Rpb24odCxlKXt2YXIgaTtyZXR1cm4gbnVsbCE9PXQ/KGdbZF09bih0KSxpPW5ldyBnLGdbZF09bnVsbCxpW3BdPXQpOmk9YigpLHZvaWQgMD09PWU/aTpyLmYoaSxlKX19LDY4MDE6KHQsZSxpKT0+e3ZhciBzPWkoMzcyNCksbj1pKDg2ODYpLHI9aSg0OTEzKSxhPWkoODU1MSksbz1pKDUzOTcpLGg9aSgxMDcyKTtlLmY9cyYmIW4/T2JqZWN0LmRlZmluZVByb3BlcnRpZXM6ZnVuY3Rpb24odCxlKXthKHQpO2Zvcih2YXIgaSxzPW8oZSksbj1oKGUpLGw9bi5sZW5ndGgsYz0wO2w+Yzspci5mKHQsaT1uW2MrK10sc1tpXSk7cmV0dXJuIHR9fSw0OTEzOih0LGUsaSk9Pnt2YXIgcz1pKDM3MjQpLG49aSg1OTE3KSxyPWkoODY4NiksYT1pKDg1NTEpLG89aSg2OTY5KSxoPVR5cGVFcnJvcixsPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxjPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsZD0iZW51bWVyYWJsZSIsdT0iY29uZmlndXJhYmxlIixwPSJ3cml0YWJsZSI7ZS5mPXM/cj9mdW5jdGlvbih0LGUsaSl7aWYoYSh0KSxlPW8oZSksYShpKSwiZnVuY3Rpb24iPT10eXBlb2YgdCYmInByb3RvdHlwZSI9PT1lJiYidmFsdWUiaW4gaSYmcCBpbiBpJiYhaVtwXSl7dmFyIHM9Yyh0LGUpO3MmJnNbcF0mJih0W2VdPWkudmFsdWUsaT17Y29uZmlndXJhYmxlOnUgaW4gaT9pW3VdOnNbdV0sZW51bWVyYWJsZTpkIGluIGk/aVtkXTpzW2RdLHdyaXRhYmxlOiExfSl9cmV0dXJuIGwodCxlLGkpfTpsOmZ1bmN0aW9uKHQsZSxpKXtpZihhKHQpLGU9byhlKSxhKGkpLG4pdHJ5e3JldHVybiBsKHQsZSxpKX1jYXRjaCh0KXt9aWYoImdldCJpbiBpfHwic2V0ImluIGkpdGhyb3cgbmV3IGgoIkFjY2Vzc29ycyBub3Qgc3VwcG9ydGVkIik7cmV0dXJuInZhbHVlImluIGkmJih0W2VdPWkudmFsdWUpLHR9fSw3MzQ3Oih0LGUsaSk9Pnt2YXIgcz1pKDM3MjQpLG49aSg5NTY1KSxyPWkoODc3MyksYT1pKDY5ODApLG89aSg1Mzk3KSxoPWkoNjk2OSksbD1pKDkyOTcpLGM9aSg1OTE3KSxkPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7ZS5mPXM/ZDpmdW5jdGlvbih0LGUpe2lmKHQ9byh0KSxlPWgoZSksYyl0cnl7cmV0dXJuIGQodCxlKX1jYXRjaCh0KXt9aWYobCh0LGUpKXJldHVybiBhKCFuKHIuZix0LGUpLHRbZV0pfX0sODQ4MDoodCxlLGkpPT57dmFyIHM9aSgxODI4KSxuPWkoODcyNykuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTtlLmY9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKHQpe3JldHVybiBzKHQsbil9fSwzNzE3Oih0LGUpPT57ZS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHN9LDI3ODc6KHQsZSxpKT0+e3ZhciBzPWkoOTI5Nyksbj1pKDQ5MDEpLHI9aSg4OTgxKSxhPWkoNjExOSksbz1pKDIyMTEpLGg9YSgiSUVfUFJPVE8iKSxsPU9iamVjdCxjPWwucHJvdG90eXBlO3QuZXhwb3J0cz1vP2wuZ2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24odCl7dmFyIGU9cih0KTtpZihzKGUsaCkpcmV0dXJuIGVbaF07dmFyIGk9ZS5jb25zdHJ1Y3RvcjtyZXR1cm4gbihpKSYmZSBpbnN0YW5jZW9mIGk/aS5wcm90b3R5cGU6ZSBpbnN0YW5jZW9mIGw/YzpudWxsfX0sMTYyNToodCxlLGkpPT57dmFyIHM9aSg5NTA0KTt0LmV4cG9ydHM9cyh7fS5pc1Byb3RvdHlwZU9mKX0sMTgyODoodCxlLGkpPT57dmFyIHM9aSg5NTA0KSxuPWkoOTI5Nykscj1pKDUzOTcpLGE9aSg5NjE3KS5pbmRleE9mLG89aSg0MjEpLGg9cyhbXS5wdXNoKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgaSxzPXIodCksbD0wLGM9W107Zm9yKGkgaW4gcykhbihvLGkpJiZuKHMsaSkmJmgoYyxpKTtmb3IoO2UubGVuZ3RoPmw7KW4ocyxpPWVbbCsrXSkmJih+YShjLGkpfHxoKGMsaSkpO3JldHVybiBjfX0sMTA3MjoodCxlLGkpPT57dmFyIHM9aSgxODI4KSxuPWkoODcyNyk7dC5leHBvcnRzPU9iamVjdC5rZXlzfHxmdW5jdGlvbih0KXtyZXR1cm4gcyh0LG4pfX0sODc3MzoodCxlKT0+e3ZhciBpPXt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLHM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixuPXMmJiFpLmNhbGwoezE6Mn0sMSk7ZS5mPW4/ZnVuY3Rpb24odCl7dmFyIGU9cyh0aGlzLHQpO3JldHVybiEhZSYmZS5lbnVtZXJhYmxlfTppfSwyOTY3Oih0LGUsaSk9Pnt2YXIgcz1pKDY3MDYpLG49aSgzNCkscj1pKDc3NTApLGE9aSgzNTA2KTt0LmV4cG9ydHM9T2JqZWN0LnNldFByb3RvdHlwZU9mfHwoIl9fcHJvdG9fXyJpbnt9P2Z1bmN0aW9uKCl7dmFyIHQsZT0hMSxpPXt9O3RyeXsodD1zKE9iamVjdC5wcm90b3R5cGUsIl9fcHJvdG9fXyIsInNldCIpKShpLFtdKSxlPWkgaW5zdGFuY2VvZiBBcnJheX1jYXRjaCh0KXt9cmV0dXJuIGZ1bmN0aW9uKGkscyl7cmV0dXJuIHIoaSksYShzKSxuKGkpPyhlP3QoaSxzKTppLl9fcHJvdG9fXz1zLGkpOml9fSgpOnZvaWQgMCl9LDQyNzA6KHQsZSxpKT0+e3ZhciBzPWkoOTU2NSksbj1pKDQ5MDEpLHI9aSgzNCksYT1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIGksbztpZigic3RyaW5nIj09PWUmJm4oaT10LnRvU3RyaW5nKSYmIXIobz1zKGksdCkpKXJldHVybiBvO2lmKG4oaT10LnZhbHVlT2YpJiYhcihvPXMoaSx0KSkpcmV0dXJuIG87aWYoInN0cmluZyIhPT1lJiZuKGk9dC50b1N0cmluZykmJiFyKG89cyhpLHQpKSlyZXR1cm4gbzt0aHJvdyBuZXcgYSgiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlIil9fSw1MDMxOih0LGUsaSk9Pnt2YXIgcz1pKDc3NTEpLG49aSg5NTA0KSxyPWkoODQ4MCksYT1pKDM3MTcpLG89aSg4NTUxKSxoPW4oW10uY29uY2F0KTt0LmV4cG9ydHM9cygiUmVmbGVjdCIsIm93bktleXMiKXx8ZnVuY3Rpb24odCl7dmFyIGU9ci5mKG8odCkpLGk9YS5mO3JldHVybiBpP2goZSxpKHQpKTplfX0sODIzNToodCxlLGkpPT57dmFyIHM9aSg5NTA0KSxuPWkoOTI5Nykscj1TeW50YXhFcnJvcixhPXBhcnNlSW50LG89U3RyaW5nLmZyb21DaGFyQ29kZSxoPXMoIiIuY2hhckF0KSxsPXMoIiIuc2xpY2UpLGM9cygvLi8uZXhlYyksZD17J1xcIic6JyInLCJcXFxcIjoiXFwiLCJcXC8iOiIvIiwiXFxiIjoiXGIiLCJcXGYiOiJcZiIsIlxcbiI6IlxuIiwiXFxyIjoiXHIiLCJcXHQiOiJcdCJ9LHU9L15bXGRhLWZdezR9JC9pLHA9L15bXHUwMDAwLVx1MDAxRl0kLzt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIGk9ITAscz0iIjtlPHQubGVuZ3RoOyl7dmFyIGc9aCh0LGUpO2lmKCJcXCI9PT1nKXt2YXIgZj1sKHQsZSxlKzIpO2lmKG4oZCxmKSlzKz1kW2ZdLGUrPTI7ZWxzZXtpZigiXFx1IiE9PWYpdGhyb3cgbmV3IHIoJ1Vua25vd24gZXNjYXBlIHNlcXVlbmNlOiAiJytmKyciJyk7dmFyIG09bCh0LGUrPTIsZSs0KTtpZighYyh1LG0pKXRocm93IG5ldyByKCJCYWQgVW5pY29kZSBlc2NhcGUgYXQ6ICIrZSk7cys9byhhKG0sMTYpKSxlKz00fX1lbHNle2lmKCciJz09PWcpe2k9ITEsZSsrO2JyZWFrfWlmKGMocCxnKSl0aHJvdyBuZXcgcigiQmFkIGNvbnRyb2wgY2hhcmFjdGVyIGluIHN0cmluZyBsaXRlcmFsIGF0OiAiK2UpO3MrPWcsZSsrfX1pZihpKXRocm93IG5ldyByKCJVbnRlcm1pbmF0ZWQgc3RyaW5nIGF0OiAiK2UpO3JldHVybnt2YWx1ZTpzLGVuZDplfX19LDc3NTA6KHQsZSxpKT0+e3ZhciBzPWkoNDExNyksbj1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKHModCkpdGhyb3cgbmV3IG4oIkNhbid0IGNhbGwgbWV0aG9kIG9uICIrdCk7cmV0dXJuIHR9fSw5Mjg2Oih0LGUsaSk9Pnt2YXIgcz1pKDQ0MDIpLG49aSg4NDY5KSxyPXMuU2V0LGE9cy5hZGQ7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyByO3JldHVybiBuKHQsKGZ1bmN0aW9uKHQpe2EoZSx0KX0pKSxlfX0sMzQ0MDoodCxlLGkpPT57dmFyIHM9aSg3MDgwKSxuPWkoNDQwMikscj1pKDkyODYpLGE9aSg1MTcwKSxvPWkoMzc4OSksaD1pKDg0NjkpLGw9aSg1MDcpLGM9bi5oYXMsZD1uLnJlbW92ZTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9cyh0aGlzKSxpPW8odCksbj1yKGUpO3JldHVybiBhKGUpPD1pLnNpemU/aChlLChmdW5jdGlvbih0KXtpLmluY2x1ZGVzKHQpJiZkKG4sdCl9KSk6bChpLmdldEl0ZXJhdG9yKCksKGZ1bmN0aW9uKHQpe2MoZSx0KSYmZChuLHQpfSkpLG59fSw0NDAyOih0LGUsaSk9Pnt2YXIgcz1pKDk1MDQpLG49U2V0LnByb3RvdHlwZTt0LmV4cG9ydHM9e1NldCxhZGQ6cyhuLmFkZCksaGFzOnMobi5oYXMpLHJlbW92ZTpzKG4uZGVsZXRlKSxwcm90bzpufX0sODc1MDoodCxlLGkpPT57dmFyIHM9aSg3MDgwKSxuPWkoNDQwMikscj1pKDUxNzApLGE9aSgzNzg5KSxvPWkoODQ2OSksaD1pKDUwNyksbD1uLlNldCxjPW4uYWRkLGQ9bi5oYXM7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXModGhpcyksaT1hKHQpLG49bmV3IGw7cmV0dXJuIHIoZSk+aS5zaXplP2goaS5nZXRJdGVyYXRvcigpLChmdW5jdGlvbih0KXtkKGUsdCkmJmMobix0KX0pKTpvKGUsKGZ1bmN0aW9uKHQpe2kuaW5jbHVkZXModCkmJmMobix0KX0pKSxufX0sNDQ0OToodCxlLGkpPT57dmFyIHM9aSg3MDgwKSxuPWkoNDQwMikuaGFzLHI9aSg1MTcwKSxhPWkoMzc4OSksbz1pKDg0NjkpLGg9aSg1MDcpLGw9aSg5NTM5KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9cyh0aGlzKSxpPWEodCk7aWYocihlKTw9aS5zaXplKXJldHVybiExIT09byhlLChmdW5jdGlvbih0KXtpZihpLmluY2x1ZGVzKHQpKXJldHVybiExfSksITApO3ZhciBjPWkuZ2V0SXRlcmF0b3IoKTtyZXR1cm4hMSE9PWgoYywoZnVuY3Rpb24odCl7aWYobihlLHQpKXJldHVybiBsKGMsIm5vcm1hbCIsITEpfSkpfX0sMzgzODoodCxlLGkpPT57dmFyIHM9aSg3MDgwKSxuPWkoNTE3MCkscj1pKDg0NjkpLGE9aSgzNzg5KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9cyh0aGlzKSxpPWEodCk7cmV0dXJuIShuKGUpPmkuc2l6ZSkmJiExIT09cihlLChmdW5jdGlvbih0KXtpZighaS5pbmNsdWRlcyh0KSlyZXR1cm4hMX0pLCEwKX19LDg1Mjc6KHQsZSxpKT0+e3ZhciBzPWkoNzA4MCksbj1pKDQ0MDIpLmhhcyxyPWkoNTE3MCksYT1pKDM3ODkpLG89aSg1MDcpLGg9aSg5NTM5KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9cyh0aGlzKSxpPWEodCk7aWYocihlKTxpLnNpemUpcmV0dXJuITE7dmFyIGw9aS5nZXRJdGVyYXRvcigpO3JldHVybiExIT09byhsLChmdW5jdGlvbih0KXtpZighbihlLHQpKXJldHVybiBoKGwsIm5vcm1hbCIsITEpfSkpfX0sODQ2OToodCxlLGkpPT57dmFyIHM9aSg5NTA0KSxuPWkoNTA3KSxyPWkoNDQwMiksYT1yLlNldCxvPXIucHJvdG8saD1zKG8uZm9yRWFjaCksbD1zKG8ua2V5cyksYz1sKG5ldyBhKS5uZXh0O3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsaSl7cmV0dXJuIGk/bih7aXRlcmF0b3I6bCh0KSxuZXh0OmN9LGUpOmgodCxlKX19LDQ5MTY6KHQsZSxpKT0+e3ZhciBzPWkoNzc1MSksbj1mdW5jdGlvbih0KXtyZXR1cm57c2l6ZTp0LGhhczpmdW5jdGlvbigpe3JldHVybiExfSxrZXlzOmZ1bmN0aW9uKCl7cmV0dXJue25leHQ6ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTohMH19fX19fTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9cygiU2V0Iik7dHJ5eyhuZXcgZSlbdF0obigwKSk7dHJ5e3JldHVybihuZXcgZSlbdF0obigtMSkpLCExfWNhdGNoKHQpe3JldHVybiEwfX1jYXRjaCh0KXtyZXR1cm4hMX19fSw1MTcwOih0LGUsaSk9Pnt2YXIgcz1pKDY3MDYpLG49aSg0NDAyKTt0LmV4cG9ydHM9cyhuLnByb3RvLCJzaXplIiwiZ2V0Iil8fGZ1bmN0aW9uKHQpe3JldHVybiB0LnNpemV9fSwzNjUwOih0LGUsaSk9Pnt2YXIgcz1pKDcwODApLG49aSg0NDAyKSxyPWkoOTI4NiksYT1pKDM3ODkpLG89aSg1MDcpLGg9bi5hZGQsbD1uLmhhcyxjPW4ucmVtb3ZlO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1zKHRoaXMpLGk9YSh0KS5nZXRJdGVyYXRvcigpLG49cihlKTtyZXR1cm4gbyhpLChmdW5jdGlvbih0KXtsKGUsdCk/YyhuLHQpOmgobix0KX0pKSxufX0sNDIwNDoodCxlLGkpPT57dmFyIHM9aSg3MDgwKSxuPWkoNDQwMikuYWRkLHI9aSg5Mjg2KSxhPWkoMzc4OSksbz1pKDUwNyk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXModGhpcyksaT1hKHQpLmdldEl0ZXJhdG9yKCksaD1yKGUpO3JldHVybiBvKGksKGZ1bmN0aW9uKHQpe24oaCx0KX0pKSxofX0sNjExOToodCxlLGkpPT57dmFyIHM9aSg1NzQ1KSxuPWkoMzM5Mikscj1zKCJrZXlzIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiByW3RdfHwoclt0XT1uKHQpKX19LDc2Mjk6KHQsZSxpKT0+e3ZhciBzPWkoNjM5NSksbj1pKDQ1NzYpLHI9aSg5NDMzKSxhPSJfX2NvcmUtanNfc2hhcmVkX18iLG89dC5leHBvcnRzPW5bYV18fHIoYSx7fSk7KG8udmVyc2lvbnN8fChvLnZlcnNpb25zPVtdKSkucHVzaCh7dmVyc2lvbjoiMy4zOC4xIixtb2RlOnM/InB1cmUiOiJnbG9iYWwiLGNvcHlyaWdodDoiwqkgMjAxNC0yMDI0IERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpIixsaWNlbnNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9ibG9iL3YzLjM4LjEvTElDRU5TRSIsc291cmNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcyJ9KX0sNTc0NToodCxlLGkpPT57dmFyIHM9aSg3NjI5KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gc1t0XXx8KHNbdF09ZXx8e30pfX0sMTU0ODoodCxlLGkpPT57dmFyIHM9aSg0NTc2KSxuPWkoOTAzOSkscj1pKDk1MTkpLGE9aSg0MjE1KSxvPXMuc3RydWN0dXJlZENsb25lO3QuZXhwb3J0cz0hIW8mJiFuKChmdW5jdGlvbigpe2lmKCJERU5PIj09PWEmJnI+OTJ8fCJOT0RFIj09PWEmJnI+OTR8fCJCUk9XU0VSIj09PWEmJnI+OTcpcmV0dXJuITE7dmFyIHQ9bmV3IEFycmF5QnVmZmVyKDgpLGU9byh0LHt0cmFuc2ZlcjpbdF19KTtyZXR1cm4gMCE9PXQuYnl0ZUxlbmd0aHx8OCE9PWUuYnl0ZUxlbmd0aH0pKX0sNDQ5NToodCxlLGkpPT57dmFyIHM9aSg5NTE5KSxuPWkoOTAzOSkscj1pKDQ1NzYpLlN0cmluZzt0LmV4cG9ydHM9ISFPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYhbigoZnVuY3Rpb24oKXt2YXIgdD1TeW1ib2woInN5bWJvbCBkZXRlY3Rpb24iKTtyZXR1cm4hcih0KXx8IShPYmplY3QodClpbnN0YW5jZW9mIFN5bWJvbCl8fCFTeW1ib2wuc2hhbSYmcyYmczw0MX0pKX0sNTYxMDoodCxlLGkpPT57dmFyIHM9aSgxMjkxKSxuPU1hdGgubWF4LHI9TWF0aC5taW47dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIGk9cyh0KTtyZXR1cm4gaTwwP24oaStlLDApOnIoaSxlKX19LDU4NTQ6KHQsZSxpKT0+e3ZhciBzPWkoMjc3Nyksbj1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXModCwibnVtYmVyIik7aWYoIm51bWJlciI9PXR5cGVvZiBlKXRocm93IG5ldyBuKCJDYW4ndCBjb252ZXJ0IG51bWJlciB0byBiaWdpbnQiKTtyZXR1cm4gQmlnSW50KGUpfX0sNzY5NjoodCxlLGkpPT57dmFyIHM9aSgxMjkxKSxuPWkoODAxNCkscj1SYW5nZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZih2b2lkIDA9PT10KXJldHVybiAwO3ZhciBlPXModCksaT1uKGUpO2lmKGUhPT1pKXRocm93IG5ldyByKCJXcm9uZyBsZW5ndGggb3IgaW5kZXgiKTtyZXR1cm4gaX19LDUzOTc6KHQsZSxpKT0+e3ZhciBzPWkoNzA1NSksbj1pKDc3NTApO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gcyhuKHQpKX19LDEyOTE6KHQsZSxpKT0+e3ZhciBzPWkoNzQxKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9K3Q7cmV0dXJuIGUhPWV8fDA9PT1lPzA6cyhlKX19LDgwMTQ6KHQsZSxpKT0+e3ZhciBzPWkoMTI5MSksbj1NYXRoLm1pbjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9cyh0KTtyZXR1cm4gZT4wP24oZSw5MDA3MTk5MjU0NzQwOTkxKTowfX0sODk4MToodCxlLGkpPT57dmFyIHM9aSg3NzUwKSxuPU9iamVjdDt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG4ocyh0KSl9fSw5NTkwOih0LGUsaSk9Pnt2YXIgcz1pKDEyOTEpLG49UmFuZ2VFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9cyh0KTtpZihlPDApdGhyb3cgbmV3IG4oIlRoZSBhcmd1bWVudCBjYW4ndCBiZSBsZXNzIHRoYW4gMCIpO3JldHVybiBlfX0sMjc3NzoodCxlLGkpPT57dmFyIHM9aSg5NTY1KSxuPWkoMzQpLHI9aSg3NTcpLGE9aSg1OTY2KSxvPWkoNDI3MCksaD1pKDgyMjcpLGw9VHlwZUVycm9yLGM9aCgidG9QcmltaXRpdmUiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZighbih0KXx8cih0KSlyZXR1cm4gdDt2YXIgaSxoPWEodCxjKTtpZihoKXtpZih2b2lkIDA9PT1lJiYoZT0iZGVmYXVsdCIpLGk9cyhoLHQsZSksIW4oaSl8fHIoaSkpcmV0dXJuIGk7dGhyb3cgbmV3IGwoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfXJldHVybiB2b2lkIDA9PT1lJiYoZT0ibnVtYmVyIiksbyh0LGUpfX0sNjk2OToodCxlLGkpPT57dmFyIHM9aSgyNzc3KSxuPWkoNzU3KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9cyh0LCJzdHJpbmciKTtyZXR1cm4gbihlKT9lOmUrIiJ9fSwyMTQwOih0LGUsaSk9Pnt2YXIgcz17fTtzW2koODIyNykoInRvU3RyaW5nVGFnIildPSJ6Iix0LmV4cG9ydHM9IltvYmplY3Qgel0iPT09U3RyaW5nKHMpfSw2NTU6KHQsZSxpKT0+e3ZhciBzPWkoNjk1NSksbj1TdHJpbmc7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCJTeW1ib2wiPT09cyh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZyIpO3JldHVybiBuKHQpfX0sNjgyMzp0PT57dmFyIGU9U3RyaW5nO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt0cnl7cmV0dXJuIGUodCl9Y2F0Y2godCl7cmV0dXJuIk9iamVjdCJ9fX0sMzM5MjoodCxlLGkpPT57dmFyIHM9aSg5NTA0KSxuPTAscj1NYXRoLnJhbmRvbSgpLGE9cygxLi50b1N0cmluZyk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiJTeW1ib2woIisodm9pZCAwPT09dD8iIjp0KSsiKV8iK2EoKytuK3IsMzYpfX0sNzA0MDoodCxlLGkpPT57dmFyIHM9aSg0NDk1KTt0LmV4cG9ydHM9cyYmIVN5bWJvbC5zaGFtJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcn0sODY4NjoodCxlLGkpPT57dmFyIHM9aSgzNzI0KSxuPWkoOTAzOSk7dC5leHBvcnRzPXMmJm4oKGZ1bmN0aW9uKCl7cmV0dXJuIDQyIT09T2JqZWN0LmRlZmluZVByb3BlcnR5KChmdW5jdGlvbigpe30pLCJwcm90b3R5cGUiLHt2YWx1ZTo0Mix3cml0YWJsZTohMX0pLnByb3RvdHlwZX0pKX0sMjgxMjp0PT57dmFyIGU9VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0LGkpe2lmKHQ8aSl0aHJvdyBuZXcgZSgiTm90IGVub3VnaCBhcmd1bWVudHMiKTtyZXR1cm4gdH19LDg2MjI6KHQsZSxpKT0+e3ZhciBzPWkoNDU3Niksbj1pKDQ5MDEpLHI9cy5XZWFrTWFwO3QuZXhwb3J0cz1uKHIpJiYvbmF0aXZlIGNvZGUvLnRlc3QoU3RyaW5nKHIpKX0sODIyNzoodCxlLGkpPT57dmFyIHM9aSg0NTc2KSxuPWkoNTc0NSkscj1pKDkyOTcpLGE9aSgzMzkyKSxvPWkoNDQ5NSksaD1pKDcwNDApLGw9cy5TeW1ib2wsYz1uKCJ3a3MiKSxkPWg/bC5mb3J8fGw6bCYmbC53aXRob3V0U2V0dGVyfHxhO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gcihjLHQpfHwoY1t0XT1vJiZyKGwsdCk/bFt0XTpkKCJTeW1ib2wuIit0KSksY1t0XX19LDY1NzM6KHQsZSxpKT0+e3ZhciBzPWkoMzcyNCksbj1pKDIxMDYpLHI9aSgzMjM4KSxhPUFycmF5QnVmZmVyLnByb3RvdHlwZTtzJiYhKCJkZXRhY2hlZCJpbiBhKSYmbihhLCJkZXRhY2hlZCIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzKX19KX0sNzkzNjoodCxlLGkpPT57dmFyIHM9aSg2NTE4KSxuPWkoNTYzNik7biYmcyh7dGFyZ2V0OiJBcnJheUJ1ZmZlciIscHJvdG86ITB9LHt0cmFuc2ZlclRvRml4ZWRMZW5ndGg6ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCwhMSl9fSl9LDgxMDA6KHQsZSxpKT0+e3ZhciBzPWkoNjUxOCksbj1pKDU2MzYpO24mJnMoe3RhcmdldDoiQXJyYXlCdWZmZXIiLHByb3RvOiEwfSx7dHJhbnNmZXI6ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCwhMCl9fSl9LDQxMTQ6KHQsZSxpKT0+e3ZhciBzPWkoNjUxOCksbj1pKDg5ODEpLHI9aSg2MTk4KSxhPWkoNDUyNyksbz1pKDY4MzcpO3Moe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGFyaXR5OjEsZm9yY2VkOmkoOTAzOSkoKGZ1bmN0aW9uKCl7cmV0dXJuIDQyOTQ5NjcyOTchPT1bXS5wdXNoLmNhbGwoe2xlbmd0aDo0Mjk0OTY3Mjk2fSwxKX0pKXx8IWZ1bmN0aW9uKCl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShbXSwibGVuZ3RoIix7d3JpdGFibGU6ITF9KS5wdXNoKCl9Y2F0Y2godCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBUeXBlRXJyb3J9fSgpfSx7cHVzaDpmdW5jdGlvbih0KXt2YXIgZT1uKHRoaXMpLGk9cihlKSxzPWFyZ3VtZW50cy5sZW5ndGg7byhpK3MpO2Zvcih2YXIgaD0wO2g8cztoKyspZVtpXT1hcmd1bWVudHNbaF0saSsrO3JldHVybiBhKGUsaSksaX19KX0sNDYyODoodCxlLGkpPT57dmFyIHM9aSg2NTE4KSxuPWkoNjA0Myk7cyh7dGFyZ2V0OiJQcm9taXNlIixzdGF0OiEwfSx7d2l0aFJlc29sdmVyczpmdW5jdGlvbigpe3ZhciB0PW4uZih0aGlzKTtyZXR1cm57cHJvbWlzZTp0LnByb21pc2UscmVzb2x2ZTp0LnJlc29sdmUscmVqZWN0OnQucmVqZWN0fX19KX0sNzY0MjoodCxlLGkpPT57dmFyIHM9aSg2NTE4KSxuPWkoMzQ0MCk7cyh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiFpKDQ5MTYpKCJkaWZmZXJlbmNlIil9LHtkaWZmZXJlbmNlOm59KX0sODAwNDoodCxlLGkpPT57dmFyIHM9aSg2NTE4KSxuPWkoOTAzOSkscj1pKDg3NTApO3Moe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohaSg0OTE2KSgiaW50ZXJzZWN0aW9uIil8fG4oKGZ1bmN0aW9uKCl7cmV0dXJuIjMsMiIhPT1TdHJpbmcoQXJyYXkuZnJvbShuZXcgU2V0KFsxLDIsM10pLmludGVyc2VjdGlvbihuZXcgU2V0KFszLDJdKSkpKX0pKX0se2ludGVyc2VjdGlvbjpyfSl9LDM4NTM6KHQsZSxpKT0+e3ZhciBzPWkoNjUxOCksbj1pKDQ0NDkpO3Moe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohaSg0OTE2KSgiaXNEaXNqb2ludEZyb20iKX0se2lzRGlzam9pbnRGcm9tOm59KX0sNTg3NjoodCxlLGkpPT57dmFyIHM9aSg2NTE4KSxuPWkoMzgzOCk7cyh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiFpKDQ5MTYpKCJpc1N1YnNldE9mIil9LHtpc1N1YnNldE9mOm59KX0sMjQ3NToodCxlLGkpPT57dmFyIHM9aSg2NTE4KSxuPWkoODUyNyk7cyh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiFpKDQ5MTYpKCJpc1N1cGVyc2V0T2YiKX0se2lzU3VwZXJzZXRPZjpufSl9LDUwMjQ6KHQsZSxpKT0+e3ZhciBzPWkoNjUxOCksbj1pKDM2NTApO3Moe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohaSg0OTE2KSgic3ltbWV0cmljRGlmZmVyZW5jZSIpfSx7c3ltbWV0cmljRGlmZmVyZW5jZTpufSl9LDE2OTg6KHQsZSxpKT0+e3ZhciBzPWkoNjUxOCksbj1pKDQyMDQpO3Moe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohaSg0OTE2KSgidW5pb24iKX0se3VuaW9uOm59KX0sNzQ2NzoodCxlLGkpPT57dmFyIHM9aSg3NjI4KSxuPWkoNDY0NCkscj1uLmFUeXBlZEFycmF5LGE9bi5leHBvcnRUeXBlZEFycmF5TWV0aG9kLG89bi5nZXRUeXBlZEFycmF5Q29uc3RydWN0b3I7YSgidG9SZXZlcnNlZCIsKGZ1bmN0aW9uKCl7cmV0dXJuIHMocih0aGlzKSxvKHRoaXMpKX0pKX0sNDczMjoodCxlLGkpPT57dmFyIHM9aSg0NjQ0KSxuPWkoOTUwNCkscj1pKDkzMDYpLGE9aSg1MzcwKSxvPXMuYVR5cGVkQXJyYXksaD1zLmdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvcixsPXMuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxjPW4ocy5UeXBlZEFycmF5UHJvdG90eXBlLnNvcnQpO2woInRvU29ydGVkIiwoZnVuY3Rpb24odCl7dm9pZCAwIT09dCYmcih0KTt2YXIgZT1vKHRoaXMpLGk9YShoKGUpLGUpO3JldHVybiBjKGksdCl9KSl9LDk1Nzc6KHQsZSxpKT0+e3ZhciBzPWkoOTkyOCksbj1pKDQ2NDQpLHI9aSgxMTA4KSxhPWkoMTI5MSksbz1pKDU4NTQpLGg9bi5hVHlwZWRBcnJheSxsPW4uZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yLGM9bi5leHBvcnRUeXBlZEFycmF5TWV0aG9kLGQ9ISFmdW5jdGlvbigpe3RyeXtuZXcgSW50OEFycmF5KDEpLndpdGgoMix7dmFsdWVPZjpmdW5jdGlvbigpe3Rocm93IDh9fSl9Y2F0Y2godCl7cmV0dXJuIDg9PT10fX0oKTtjKCJ3aXRoIix7d2l0aDpmdW5jdGlvbih0LGUpe3ZhciBpPWgodGhpcyksbj1hKHQpLGM9cihpKT9vKGUpOitlO3JldHVybiBzKGksbChpKSxuLGMpfX0ud2l0aCwhZCl9LDg5OTI6KHQsZSxpKT0+e3ZhciBzPWkoNjUxOCksbj1pKDQ1NzYpLHI9aSg2NzkpLGE9aSg4NTUxKSxvPWkoNDkwMSksaD1pKDI3ODcpLGw9aSgyMTA2KSxjPWkoNDY1OSksZD1pKDkwMzkpLHU9aSg5Mjk3KSxwPWkoODIyNyksZz1pKDc2NTcpLkl0ZXJhdG9yUHJvdG90eXBlLGY9aSgzNzI0KSxtPWkoNjM5NSksYj0iY29uc3RydWN0b3IiLHY9Ikl0ZXJhdG9yIix5PXAoInRvU3RyaW5nVGFnIiksQT1UeXBlRXJyb3Isdz1uW3ZdLHg9bXx8IW8odyl8fHcucHJvdG90eXBlIT09Z3x8IWQoKGZ1bmN0aW9uKCl7dyh7fSl9KSksXz1mdW5jdGlvbigpe2lmKHIodGhpcyxnKSxoKHRoaXMpPT09Zyl0aHJvdyBuZXcgQSgiQWJzdHJhY3QgY2xhc3MgSXRlcmF0b3Igbm90IGRpcmVjdGx5IGNvbnN0cnVjdGFibGUiKX0sRT1mdW5jdGlvbih0LGUpe2Y/bChnLHQse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZX0sc2V0OmZ1bmN0aW9uKGUpe2lmKGEodGhpcyksdGhpcz09PWcpdGhyb3cgbmV3IEEoIllvdSBjYW4ndCByZWRlZmluZSB0aGlzIHByb3BlcnR5Iik7dSh0aGlzLHQpP3RoaXNbdF09ZTpjKHRoaXMsdCxlKX19KTpnW3RdPWV9O3UoZyx5KXx8RSh5LHYpLCF4JiZ1KGcsYikmJmdbYl0hPT1PYmplY3R8fEUoYixfKSxfLnByb3RvdHlwZT1nLHMoe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6eH0se0l0ZXJhdG9yOl99KX0sNDc0MzoodCxlLGkpPT57dmFyIHM9aSg2NTE4KSxuPWkoOTU2NSkscj1pKDg1NTEpLGE9aSgxNzY3KSxvPWkoNDE0OSksaD1pKDk1OTApLGw9aSg5NDYyKSxjPWkoNjM5NSksZD1sKChmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXRoaXMuaXRlcmF0b3IsaT10aGlzLm5leHQ7dGhpcy5yZW1haW5pbmc7KWlmKHRoaXMucmVtYWluaW5nLS0sdD1yKG4oaSxlKSksdGhpcy5kb25lPSEhdC5kb25lKXJldHVybjtpZih0PXIobihpLGUpKSwhKHRoaXMuZG9uZT0hIXQuZG9uZSkpcmV0dXJuIHQudmFsdWV9KSk7cyh7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6Y30se2Ryb3A6ZnVuY3Rpb24odCl7cih0aGlzKTt2YXIgZT1oKG8oK3QpKTtyZXR1cm4gbmV3IGQoYSh0aGlzKSx7cmVtYWluaW5nOmV9KX19KX0sMzIxNToodCxlLGkpPT57dmFyIHM9aSg2NTE4KSxuPWkoMjY1Mikscj1pKDkzMDYpLGE9aSg4NTUxKSxvPWkoMTc2Nyk7cyh7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86ITAscmVhbDohMH0se2V2ZXJ5OmZ1bmN0aW9uKHQpe2EodGhpcykscih0KTt2YXIgZT1vKHRoaXMpLGk9MDtyZXR1cm4hbihlLChmdW5jdGlvbihlLHMpe2lmKCF0KGUsaSsrKSlyZXR1cm4gcygpfSkse0lTX1JFQ09SRDohMCxJTlRFUlJVUFRFRDohMH0pLnN0b3BwZWR9fSl9LDQ1MjA6KHQsZSxpKT0+e3ZhciBzPWkoNjUxOCksbj1pKDk1NjUpLHI9aSg5MzA2KSxhPWkoODU1MSksbz1pKDE3NjcpLGg9aSg5NDYyKSxsPWkoNjMxOSksYz1pKDYzOTUpLGQ9aCgoZnVuY3Rpb24oKXtmb3IodmFyIHQsZSxpPXRoaXMuaXRlcmF0b3Iscz10aGlzLnByZWRpY2F0ZSxyPXRoaXMubmV4dDs7KXtpZih0PWEobihyLGkpKSx0aGlzLmRvbmU9ISF0LmRvbmUpcmV0dXJuO2lmKGU9dC52YWx1ZSxsKGkscyxbZSx0aGlzLmNvdW50ZXIrK10sITApKXJldHVybiBlfX0pKTtzKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpjfSx7ZmlsdGVyOmZ1bmN0aW9uKHQpe3JldHVybiBhKHRoaXMpLHIodCksbmV3IGQobyh0aGlzKSx7cHJlZGljYXRlOnR9KX19KX0sNjcwOih0LGUsaSk9Pnt2YXIgcz1pKDY1MTgpLG49aSg5NTY1KSxyPWkoOTMwNiksYT1pKDg1NTEpLG89aSgxNzY3KSxoPWkoODY0NiksbD1pKDk0NjIpLGM9aSg5NTM5KSxkPWkoNjM5NSksdT1sKChmdW5jdGlvbigpe2Zvcih2YXIgdCxlLGk9dGhpcy5pdGVyYXRvcixzPXRoaXMubWFwcGVyOzspe2lmKGU9dGhpcy5pbm5lcil0cnl7aWYoISh0PWEobihlLm5leHQsZS5pdGVyYXRvcikpKS5kb25lKXJldHVybiB0LnZhbHVlO3RoaXMuaW5uZXI9bnVsbH1jYXRjaCh0KXtjKGksInRocm93Iix0KX1pZih0PWEobih0aGlzLm5leHQsaSkpLHRoaXMuZG9uZT0hIXQuZG9uZSlyZXR1cm47dHJ5e3RoaXMuaW5uZXI9aChzKHQudmFsdWUsdGhpcy5jb3VudGVyKyspLCExKX1jYXRjaCh0KXtjKGksInRocm93Iix0KX19fSkpO3Moe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOmR9LHtmbGF0TWFwOmZ1bmN0aW9uKHQpe3JldHVybiBhKHRoaXMpLHIodCksbmV3IHUobyh0aGlzKSx7bWFwcGVyOnQsaW5uZXI6bnVsbH0pfX0pfSwxNDU0Oih0LGUsaSk9Pnt2YXIgcz1pKDY1MTgpLG49aSg3MTMpO3Moe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOmkoNjM5NSl9LHttYXA6bn0pfSw3NTUwOih0LGUsaSk9Pnt2YXIgcz1pKDY1MTgpLG49aSgyNjUyKSxyPWkoOTMwNiksYT1pKDg1NTEpLG89aSgxNzY3KTtzKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7c29tZTpmdW5jdGlvbih0KXthKHRoaXMpLHIodCk7dmFyIGU9byh0aGlzKSxpPTA7cmV0dXJuIG4oZSwoZnVuY3Rpb24oZSxzKXtpZih0KGUsaSsrKSlyZXR1cm4gcygpfSkse0lTX1JFQ09SRDohMCxJTlRFUlJVUFRFRDohMH0pLnN0b3BwZWR9fSl9LDgzMzU6KHQsZSxpKT0+e3ZhciBzPWkoNjUxOCksbj1pKDM3MjQpLHI9aSg0NTc2KSxhPWkoNzc1MSksbz1pKDk1MDQpLGg9aSg5NTY1KSxsPWkoNDkwMSksYz1pKDM0KSxkPWkoNDM3NiksdT1pKDkyOTcpLHA9aSg2NTUpLGc9aSg2MTk4KSxmPWkoNDY1OSksbT1pKDkwMzkpLGI9aSg4MjM1KSx2PWkoNDQ5NSkseT1yLkpTT04sQT1yLk51bWJlcix3PXIuU3ludGF4RXJyb3IseD15JiZ5LnBhcnNlLF89YSgiT2JqZWN0Iiwia2V5cyIpLEU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixDPW8oIiIuY2hhckF0KSxTPW8oIiIuc2xpY2UpLFQ9bygvLi8uZXhlYyksTT1vKFtdLnB1c2gpLGs9L15cZCQvLEk9L15bMS05XSQvLFI9L15bXGQtXSQvLFA9L15bXHRcblxyIF0kLyxEPWZ1bmN0aW9uKHQsZSxpLHMpe3ZhciBuLHIsYSxvLGwscD10W2VdLGY9cyYmcD09PXMudmFsdWUsbT1mJiYic3RyaW5nIj09dHlwZW9mIHMuc291cmNlP3tzb3VyY2U6cy5zb3VyY2V9Ont9O2lmKGMocCkpe3ZhciBiPWQocCksdj1mP3Mubm9kZXM6Yj9bXTp7fTtpZihiKWZvcihuPXYubGVuZ3RoLGE9ZyhwKSxvPTA7bzxhO28rKylMKHAsbyxEKHAsIiIrbyxpLG88bj92W29dOnZvaWQgMCkpO2Vsc2UgZm9yKHI9XyhwKSxhPWcociksbz0wO288YTtvKyspbD1yW29dLEwocCxsLEQocCxsLGksdSh2LGwpP3ZbbF06dm9pZCAwKSl9cmV0dXJuIGgoaSx0LGUscCxtKX0sTD1mdW5jdGlvbih0LGUsaSl7aWYobil7dmFyIHM9RSh0LGUpO2lmKHMmJiFzLmNvbmZpZ3VyYWJsZSlyZXR1cm59dm9pZCAwPT09aT9kZWxldGUgdFtlXTpmKHQsZSxpKX0sRj1mdW5jdGlvbih0LGUsaSxzKXt0aGlzLnZhbHVlPXQsdGhpcy5lbmQ9ZSx0aGlzLnNvdXJjZT1pLHRoaXMubm9kZXM9c30sTz1mdW5jdGlvbih0LGUpe3RoaXMuc291cmNlPXQsdGhpcy5pbmRleD1lfTtPLnByb3RvdHlwZT17Zm9yazpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IE8odGhpcy5zb3VyY2UsdCl9LHBhcnNlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zb3VyY2UsZT10aGlzLnNraXAoUCx0aGlzLmluZGV4KSxpPXRoaXMuZm9yayhlKSxzPUModCxlKTtpZihUKFIscykpcmV0dXJuIGkubnVtYmVyKCk7c3dpdGNoKHMpe2Nhc2UieyI6cmV0dXJuIGkub2JqZWN0KCk7Y2FzZSJbIjpyZXR1cm4gaS5hcnJheSgpO2Nhc2UnIic6cmV0dXJuIGkuc3RyaW5nKCk7Y2FzZSJ0IjpyZXR1cm4gaS5rZXl3b3JkKCEwKTtjYXNlImYiOnJldHVybiBpLmtleXdvcmQoITEpO2Nhc2UibiI6cmV0dXJuIGkua2V5d29yZChudWxsKX10aHJvdyBuZXcgdygnVW5leHBlY3RlZCBjaGFyYWN0ZXI6ICInK3MrJyIgYXQ6ICcrZSl9LG5vZGU6ZnVuY3Rpb24odCxlLGkscyxuKXtyZXR1cm4gbmV3IEYoZSxzLHQ/bnVsbDpTKHRoaXMuc291cmNlLGkscyksbil9LG9iamVjdDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLnNvdXJjZSxlPXRoaXMuaW5kZXgrMSxpPSExLHM9e30sbj17fTtlPHQubGVuZ3RoOyl7aWYoZT10aGlzLnVudGlsKFsnIicsIn0iXSxlKSwifSI9PT1DKHQsZSkmJiFpKXtlKys7YnJlYWt9dmFyIHI9dGhpcy5mb3JrKGUpLnN0cmluZygpLGE9ci52YWx1ZTtlPXIuZW5kLGU9dGhpcy51bnRpbChbIjoiXSxlKSsxLGU9dGhpcy5za2lwKFAsZSkscj10aGlzLmZvcmsoZSkucGFyc2UoKSxmKG4sYSxyKSxmKHMsYSxyLnZhbHVlKSxlPXRoaXMudW50aWwoWyIsIiwifSJdLHIuZW5kKTt2YXIgbz1DKHQsZSk7aWYoIiwiPT09bylpPSEwLGUrKztlbHNlIGlmKCJ9Ij09PW8pe2UrKzticmVha319cmV0dXJuIHRoaXMubm9kZSgxLHMsdGhpcy5pbmRleCxlLG4pfSxhcnJheTpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLnNvdXJjZSxlPXRoaXMuaW5kZXgrMSxpPSExLHM9W10sbj1bXTtlPHQubGVuZ3RoOyl7aWYoZT10aGlzLnNraXAoUCxlKSwiXSI9PT1DKHQsZSkmJiFpKXtlKys7YnJlYWt9dmFyIHI9dGhpcy5mb3JrKGUpLnBhcnNlKCk7aWYoTShuLHIpLE0ocyxyLnZhbHVlKSxlPXRoaXMudW50aWwoWyIsIiwiXSJdLHIuZW5kKSwiLCI9PT1DKHQsZSkpaT0hMCxlKys7ZWxzZSBpZigiXSI9PT1DKHQsZSkpe2UrKzticmVha319cmV0dXJuIHRoaXMubm9kZSgxLHMsdGhpcy5pbmRleCxlLG4pfSxzdHJpbmc6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmluZGV4LGU9Yih0aGlzLnNvdXJjZSx0aGlzLmluZGV4KzEpO3JldHVybiB0aGlzLm5vZGUoMCxlLnZhbHVlLHQsZS5lbmQpfSxudW1iZXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnNvdXJjZSxlPXRoaXMuaW5kZXgsaT1lO2lmKCItIj09PUModCxpKSYmaSsrLCIwIj09PUModCxpKSlpKys7ZWxzZXtpZighVChJLEModCxpKSkpdGhyb3cgbmV3IHcoIkZhaWxlZCB0byBwYXJzZSBudW1iZXIgYXQ6ICIraSk7aT10aGlzLnNraXAoayxpKzEpfWlmKCEoIi4iPT09Qyh0LGkpJiYoaT10aGlzLnNraXAoayxpKzEpKSwiZSIhPT1DKHQsaSkmJiJFIiE9PUModCxpKXx8KGkrKywiKyIhPT1DKHQsaSkmJiItIiE9PUModCxpKXx8aSsrLGkhPT0oaT10aGlzLnNraXAoayxpKSkpKSl0aHJvdyBuZXcgdygiRmFpbGVkIHRvIHBhcnNlIG51bWJlcidzIGV4cG9uZW50IHZhbHVlIGF0OiAiK2kpO3JldHVybiB0aGlzLm5vZGUoMCxBKFModCxlLGkpKSxlLGkpfSxrZXl3b3JkOmZ1bmN0aW9uKHQpe3ZhciBlPSIiK3QsaT10aGlzLmluZGV4LHM9aStlLmxlbmd0aDtpZihTKHRoaXMuc291cmNlLGkscykhPT1lKXRocm93IG5ldyB3KCJGYWlsZWQgdG8gcGFyc2UgdmFsdWUgYXQ6ICIraSk7cmV0dXJuIHRoaXMubm9kZSgwLHQsaSxzKX0sc2tpcDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgaT10aGlzLnNvdXJjZTtlPGkubGVuZ3RoJiZUKHQsQyhpLGUpKTtlKyspO3JldHVybiBlfSx1bnRpbDpmdW5jdGlvbih0LGUpe2U9dGhpcy5za2lwKFAsZSk7Zm9yKHZhciBpPUModGhpcy5zb3VyY2UsZSkscz0wO3M8dC5sZW5ndGg7cysrKWlmKHRbc109PT1pKXJldHVybiBlO3Rocm93IG5ldyB3KCdVbmV4cGVjdGVkIGNoYXJhY3RlcjogIicraSsnIiBhdDogJytlKX19O3ZhciBOPW0oKGZ1bmN0aW9uKCl7dmFyIHQsZT0iOTAwNzE5OTI1NDc0MDk5MyI7cmV0dXJuIHgoZSwoZnVuY3Rpb24oZSxpLHMpe3Q9cy5zb3VyY2V9KSksdCE9PWV9KSksQj12JiYhbSgoZnVuY3Rpb24oKXtyZXR1cm4gMS94KCItMCBcdCIpIT0tMS8wfSkpO3Moe3RhcmdldDoiSlNPTiIsc3RhdDohMCxmb3JjZWQ6Tn0se3BhcnNlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIEImJiFsKGUpP3godCk6ZnVuY3Rpb24odCxlKXt0PXAodCk7dmFyIGk9bmV3IE8odCwwLCIiKSxzPWkucGFyc2UoKSxuPXMudmFsdWUscj1pLnNraXAoUCxzLmVuZCk7aWYocjx0Lmxlbmd0aCl0aHJvdyBuZXcgdygnVW5leHBlY3RlZCBleHRyYSBjaGFyYWN0ZXI6ICInK0ModCxyKSsnIiBhZnRlciB0aGUgcGFyc2VkIGRhdGEgYXQ6ICcrcik7cmV0dXJuIGwoZSk/RCh7IiI6bn0sIiIsZSxzKTpufSh0LGUpfX0pfSw0OTc5Oih0LGUsaSk9Pnt2YXIgcz1pKDY1MTgpLG49aSg0NTc2KSxyPWkoNzc1MSksYT1pKDY5ODApLG89aSg0OTEzKS5mLGg9aSg5Mjk3KSxsPWkoNjc5KSxjPWkoMzE2NyksZD1pKDI2MDMpLHU9aSg1MDAyKSxwPWkoODU3NCksZz1pKDM3MjQpLGY9aSg2Mzk1KSxtPSJET01FeGNlcHRpb24iLGI9cigiRXJyb3IiKSx2PXIobSkseT1mdW5jdGlvbigpe2wodGhpcyxBKTt2YXIgdD1hcmd1bWVudHMubGVuZ3RoLGU9ZCh0PDE/dm9pZCAwOmFyZ3VtZW50c1swXSksaT1kKHQ8Mj92b2lkIDA6YXJndW1lbnRzWzFdLCJFcnJvciIpLHM9bmV3IHYoZSxpKSxuPW5ldyBiKGUpO3JldHVybiBuLm5hbWU9bSxvKHMsInN0YWNrIixhKDEscChuLnN0YWNrLDEpKSksYyhzLHRoaXMseSksc30sQT15LnByb3RvdHlwZT12LnByb3RvdHlwZSx3PSJzdGFjayJpbiBuZXcgYihtKSx4PSJzdGFjayJpbiBuZXcgdigxLDIpLF89diYmZyYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLG0pLEU9ISghX3x8Xy53cml0YWJsZSYmXy5jb25maWd1cmFibGUpLEM9dyYmIUUmJiF4O3Moe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6Znx8Q30se0RPTUV4Y2VwdGlvbjpDP3k6dn0pO3ZhciBTPXIobSksVD1TLnByb3RvdHlwZTtpZihULmNvbnN0cnVjdG9yIT09Uylmb3IodmFyIE0gaW4gZnx8byhULCJjb25zdHJ1Y3RvciIsYSgxLFMpKSx1KWlmKGgodSxNKSl7dmFyIGs9dVtNXSxJPWsucztoKFMsSSl8fG8oUyxJLGEoNixrLmMpKX19LDQ2MDM6KHQsZSxpKT0+e3ZhciBzPWkoNjg0MCksbj1pKDk1MDQpLHI9aSg2NTUpLGE9aSgyODEyKSxvPVVSTFNlYXJjaFBhcmFtcyxoPW8ucHJvdG90eXBlLGw9bihoLmFwcGVuZCksYz1uKGguZGVsZXRlKSxkPW4oaC5mb3JFYWNoKSx1PW4oW10ucHVzaCkscD1uZXcgbygiYT0xJmE9MiZiPTMiKTtwLmRlbGV0ZSgiYSIsMSkscC5kZWxldGUoImIiLHZvaWQgMCkscCsiIiE9ImE9MiImJnMoaCwiZGVsZXRlIiwoZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aCxpPWU8Mj92b2lkIDA6YXJndW1lbnRzWzFdO2lmKGUmJnZvaWQgMD09PWkpcmV0dXJuIGModGhpcyx0KTt2YXIgcz1bXTtkKHRoaXMsKGZ1bmN0aW9uKHQsZSl7dShzLHtrZXk6ZSx2YWx1ZTp0fSl9KSksYShlLDEpO2Zvcih2YXIgbixvPXIodCksaD1yKGkpLHA9MCxnPTAsZj0hMSxtPXMubGVuZ3RoO3A8bTspbj1zW3ArK10sZnx8bi5rZXk9PT1vPyhmPSEwLGModGhpcyxuLmtleSkpOmcrKztmb3IoO2c8bTspKG49c1tnKytdKS5rZXk9PT1vJiZuLnZhbHVlPT09aHx8bCh0aGlzLG4ua2V5LG4udmFsdWUpfSkse2VudW1lcmFibGU6ITAsdW5zYWZlOiEwfSl9LDc1NjY6KHQsZSxpKT0+e3ZhciBzPWkoNjg0MCksbj1pKDk1MDQpLHI9aSg2NTUpLGE9aSgyODEyKSxvPVVSTFNlYXJjaFBhcmFtcyxoPW8ucHJvdG90eXBlLGw9bihoLmdldEFsbCksYz1uKGguaGFzKSxkPW5ldyBvKCJhPTEiKTshZC5oYXMoImEiLDIpJiZkLmhhcygiYSIsdm9pZCAwKXx8cyhoLCJoYXMiLChmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoLGk9ZTwyP3ZvaWQgMDphcmd1bWVudHNbMV07aWYoZSYmdm9pZCAwPT09aSlyZXR1cm4gYyh0aGlzLHQpO3ZhciBzPWwodGhpcyx0KTthKGUsMSk7Zm9yKHZhciBuPXIoaSksbz0wO288cy5sZW5ndGg7KWlmKHNbbysrXT09PW4pcmV0dXJuITA7cmV0dXJuITF9KSx7ZW51bWVyYWJsZTohMCx1bnNhZmU6ITB9KX0sODcyMToodCxlLGkpPT57dmFyIHM9aSgzNzI0KSxuPWkoOTUwNCkscj1pKDIxMDYpLGE9VVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZSxvPW4oYS5mb3JFYWNoKTtzJiYhKCJzaXplImluIGEpJiZyKGEsInNpemUiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD0wO3JldHVybiBvKHRoaXMsKGZ1bmN0aW9uKCl7dCsrfSkpLHR9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfSl9fSxlPXt9O2Z1bmN0aW9uIGkocyl7dmFyIG49ZVtzXTtpZih2b2lkIDAhPT1uKXJldHVybiBuLmV4cG9ydHM7dmFyIHI9ZVtzXT17ZXhwb3J0czp7fX07cmV0dXJuIHRbc10uY2FsbChyLmV4cG9ydHMscixyLmV4cG9ydHMsaSksci5leHBvcnRzfWkuZD0odCxlKT0+e2Zvcih2YXIgcyBpbiBlKWkubyhlLHMpJiYhaS5vKHQscykmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHMse2VudW1lcmFibGU6ITAsZ2V0OmVbc119KX0saS5vPSh0LGUpPT5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKTt2YXIgcz1nbG9iYWxUaGlzLnBkZmpzTGliPXt9O2kuZChzLHtBYm9ydEV4Y2VwdGlvbjooKT0+RCxBbm5vdGF0aW9uRWRpdG9yTGF5ZXI6KCk9PmNzLEFubm90YXRpb25FZGl0b3JQYXJhbXNUeXBlOigpPT5jLEFubm90YXRpb25FZGl0b3JUeXBlOigpPT5sLEFubm90YXRpb25FZGl0b3JVSU1hbmFnZXI6KCk9PlR0LEFubm90YXRpb25MYXllcjooKT0+SmksQW5ub3RhdGlvbk1vZGU6KCk9PmgsQ01hcENvbXByZXNzaW9uVHlwZTooKT0+ZyxDb2xvclBpY2tlcjooKT0+YXMsRE9NU1ZHRmFjdG9yeTooKT0+dHQsRHJhd0xheWVyOigpPT5kcyxGZWF0dXJlVGVzdDooKT0+TixHbG9iYWxXb3JrZXJPcHRpb25zOigpPT5tZSxJbWFnZUtpbmQ6KCk9PnUsSW52YWxpZFBERkV4Y2VwdGlvbjooKT0+ayxNaXNzaW5nUERGRXhjZXB0aW9uOigpPT5JLE9QUzooKT0+ZixPdXRwdXRTY2FsZTooKT0+dnQsUERGRGF0YVJhbmdlVHJhbnNwb3J0OigpPT5haSxQREZEYXRlU3RyaW5nOigpPT51dCxQREZXb3JrZXI6KCk9PmNpLFBhc3N3b3JkUmVzcG9uc2VzOigpPT5tLFBlcm1pc3Npb25GbGFnOigpPT5kLFBpeGVsc1BlckluY2g6KCk9PlksUmVuZGVyaW5nQ2FuY2VsbGVkRXhjZXB0aW9uOigpPT5pdCxUZXh0TGF5ZXI6KCk9PlllLFVuZXhwZWN0ZWRSZXNwb25zZUV4Y2VwdGlvbjooKT0+UixVdGlsOigpPT56LFZlcmJvc2l0eUxldmVsOigpPT5wLFhmYUxheWVyOigpPT53aSxidWlsZDooKT0+YmksY3JlYXRlVmFsaWRBYnNvbHV0ZVVybDooKT0+RSxmZXRjaERhdGE6KCk9PlEsZ2V0RG9jdW1lbnQ6KCk9PnNpLGdldEZpbGVuYW1lRnJvbVVybDooKT0+cnQsZ2V0UGRmRmlsZW5hbWVGcm9tVXJsOigpPT5hdCxnZXRYZmFQYWdlVmlld3BvcnQ6KCk9PnB0LGlzRGF0YVNjaGVtZTooKT0+c3QsaXNQZGZGaWxlOigpPT5udCxub0NvbnRleHRNZW51OigpPT5sdCxub3JtYWxpemVVbmljb2RlOigpPT5VLHNldExheWVyRGltZW5zaW9uczooKT0+YnQsc2hhZG93OigpPT5DLHZlcnNpb246KCk9Pm1pfSksaSg0MTE0KSxpKDY1NzMpLGkoODEwMCksaSg3OTM2KSxpKDc0NjcpLGkoNDczMiksaSg5NTc3KSxpKDQ2MDMpLGkoNzU2NiksaSg4NzIxKTtjb25zdCBuPSEoIm9iamVjdCIhPXR5cGVvZiBwcm9jZXNzfHxwcm9jZXNzKyIiIT0iW29iamVjdCBwcm9jZXNzXSJ8fHByb2Nlc3MudmVyc2lvbnMubnd8fHByb2Nlc3MudmVyc2lvbnMuZWxlY3Ryb24mJnByb2Nlc3MudHlwZSYmImJyb3dzZXIiIT09cHJvY2Vzcy50eXBlKSxyPVsxLDAsMCwxLDAsMF0sYT1bLjAwMSwwLDAsLjAwMSwwLDBdLG89MS4zNSxoPXtESVNBQkxFOjAsRU5BQkxFOjEsRU5BQkxFX0ZPUk1TOjIsRU5BQkxFX1NUT1JBR0U6M30sbD17RElTQUJMRTotMSxOT05FOjAsRlJFRVRFWFQ6MyxISUdITElHSFQ6OSxTVEFNUDoxMyxJTks6MTV9LGM9e1JFU0laRToxLENSRUFURToyLEZSRUVURVhUX1NJWkU6MTEsRlJFRVRFWFRfQ09MT1I6MTIsRlJFRVRFWFRfT1BBQ0lUWToxMyxJTktfQ09MT1I6MjEsSU5LX1RISUNLTkVTUzoyMixJTktfT1BBQ0lUWToyMyxISUdITElHSFRfQ09MT1I6MzEsSElHSExJR0hUX0RFRkFVTFRfQ09MT1I6MzIsSElHSExJR0hUX1RISUNLTkVTUzozMyxISUdITElHSFRfRlJFRTozNCxISUdITElHSFRfU0hPV19BTEw6MzV9LGQ9e1BSSU5UOjQsTU9ESUZZX0NPTlRFTlRTOjgsQ09QWToxNixNT0RJRllfQU5OT1RBVElPTlM6MzIsRklMTF9JTlRFUkFDVElWRV9GT1JNUzoyNTYsQ09QWV9GT1JfQUNDRVNTSUJJTElUWTo1MTIsQVNTRU1CTEU6MTAyNCxQUklOVF9ISUdIX1FVQUxJVFk6MjA0OH0sdT17R1JBWVNDQUxFXzFCUFA6MSxSR0JfMjRCUFA6MixSR0JBXzMyQlBQOjN9LHA9e0VSUk9SUzowLFdBUk5JTkdTOjEsSU5GT1M6NX0sZz17Tk9ORTowLEJJTkFSWToxfSxmPXtkZXBlbmRlbmN5OjEsc2V0TGluZVdpZHRoOjIsc2V0TGluZUNhcDozLHNldExpbmVKb2luOjQsc2V0TWl0ZXJMaW1pdDo1LHNldERhc2g6NixzZXRSZW5kZXJpbmdJbnRlbnQ6NyxzZXRGbGF0bmVzczo4LHNldEdTdGF0ZTo5LHNhdmU6MTAscmVzdG9yZToxMSx0cmFuc2Zvcm06MTIsbW92ZVRvOjEzLGxpbmVUbzoxNCxjdXJ2ZVRvOjE1LGN1cnZlVG8yOjE2LGN1cnZlVG8zOjE3LGNsb3NlUGF0aDoxOCxyZWN0YW5nbGU6MTksc3Ryb2tlOjIwLGNsb3NlU3Ryb2tlOjIxLGZpbGw6MjIsZW9GaWxsOjIzLGZpbGxTdHJva2U6MjQsZW9GaWxsU3Ryb2tlOjI1LGNsb3NlRmlsbFN0cm9rZToyNixjbG9zZUVPRmlsbFN0cm9rZToyNyxlbmRQYXRoOjI4LGNsaXA6MjksZW9DbGlwOjMwLGJlZ2luVGV4dDozMSxlbmRUZXh0OjMyLHNldENoYXJTcGFjaW5nOjMzLHNldFdvcmRTcGFjaW5nOjM0LHNldEhTY2FsZTozNSxzZXRMZWFkaW5nOjM2LHNldEZvbnQ6Mzcsc2V0VGV4dFJlbmRlcmluZ01vZGU6Mzgsc2V0VGV4dFJpc2U6MzksbW92ZVRleHQ6NDAsc2V0TGVhZGluZ01vdmVUZXh0OjQxLHNldFRleHRNYXRyaXg6NDIsbmV4dExpbmU6NDMsc2hvd1RleHQ6NDQsc2hvd1NwYWNlZFRleHQ6NDUsbmV4dExpbmVTaG93VGV4dDo0NixuZXh0TGluZVNldFNwYWNpbmdTaG93VGV4dDo0NyxzZXRDaGFyV2lkdGg6NDgsc2V0Q2hhcldpZHRoQW5kQm91bmRzOjQ5LHNldFN0cm9rZUNvbG9yU3BhY2U6NTAsc2V0RmlsbENvbG9yU3BhY2U6NTEsc2V0U3Ryb2tlQ29sb3I6NTIsc2V0U3Ryb2tlQ29sb3JOOjUzLHNldEZpbGxDb2xvcjo1NCxzZXRGaWxsQ29sb3JOOjU1LHNldFN0cm9rZUdyYXk6NTYsc2V0RmlsbEdyYXk6NTcsc2V0U3Ryb2tlUkdCQ29sb3I6NTgsc2V0RmlsbFJHQkNvbG9yOjU5LHNldFN0cm9rZUNNWUtDb2xvcjo2MCxzZXRGaWxsQ01ZS0NvbG9yOjYxLHNoYWRpbmdGaWxsOjYyLGJlZ2luSW5saW5lSW1hZ2U6NjMsYmVnaW5JbWFnZURhdGE6NjQsZW5kSW5saW5lSW1hZ2U6NjUscGFpbnRYT2JqZWN0OjY2LG1hcmtQb2ludDo2NyxtYXJrUG9pbnRQcm9wczo2OCxiZWdpbk1hcmtlZENvbnRlbnQ6NjksYmVnaW5NYXJrZWRDb250ZW50UHJvcHM6NzAsZW5kTWFya2VkQ29udGVudDo3MSxiZWdpbkNvbXBhdDo3MixlbmRDb21wYXQ6NzMscGFpbnRGb3JtWE9iamVjdEJlZ2luOjc0LHBhaW50Rm9ybVhPYmplY3RFbmQ6NzUsYmVnaW5Hcm91cDo3NixlbmRHcm91cDo3NyxiZWdpbkFubm90YXRpb246ODAsZW5kQW5ub3RhdGlvbjo4MSxwYWludEltYWdlTWFza1hPYmplY3Q6ODMscGFpbnRJbWFnZU1hc2tYT2JqZWN0R3JvdXA6ODQscGFpbnRJbWFnZVhPYmplY3Q6ODUscGFpbnRJbmxpbmVJbWFnZVhPYmplY3Q6ODYscGFpbnRJbmxpbmVJbWFnZVhPYmplY3RHcm91cDo4NyxwYWludEltYWdlWE9iamVjdFJlcGVhdDo4OCxwYWludEltYWdlTWFza1hPYmplY3RSZXBlYXQ6ODkscGFpbnRTb2xpZENvbG9ySW1hZ2VNYXNrOjkwLGNvbnN0cnVjdFBhdGg6OTEsc2V0U3Ryb2tlVHJhbnNwYXJlbnQ6OTIsc2V0RmlsbFRyYW5zcGFyZW50OjkzfSxtPXtORUVEX1BBU1NXT1JEOjEsSU5DT1JSRUNUX1BBU1NXT1JEOjJ9O2xldCBiPXAuV0FSTklOR1M7ZnVuY3Rpb24gdih0KXtOdW1iZXIuaXNJbnRlZ2VyKHQpJiYoYj10KX1mdW5jdGlvbiB5KCl7cmV0dXJuIGJ9ZnVuY3Rpb24gQSh0KXtiPj1wLklORk9TJiZjb25zb2xlLmxvZyhgSW5mbzogJHt0fWApfWZ1bmN0aW9uIHcodCl7Yj49cC5XQVJOSU5HUyYmY29uc29sZS5sb2coYFdhcm5pbmc6ICR7dH1gKX1mdW5jdGlvbiB4KHQpe3Rocm93IG5ldyBFcnJvcih0KX1mdW5jdGlvbiBfKHQsZSl7dHx8eChlKX1mdW5jdGlvbiBFKHQsZT1udWxsLGk9bnVsbCl7aWYoIXQpcmV0dXJuIG51bGw7dHJ5e2lmKGkmJiJzdHJpbmciPT10eXBlb2YgdCl7aWYoaS5hZGREZWZhdWx0UHJvdG9jb2wmJnQuc3RhcnRzV2l0aCgid3d3LiIpKXtjb25zdCBlPXQubWF0Y2goL1wuL2cpO2U/Lmxlbmd0aD49MiYmKHQ9YGh0dHA6Ly8ke3R9YCl9aWYoaS50cnlDb252ZXJ0RW5jb2RpbmcpdHJ5e3Q9ZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZSh0KSl9Y2F0Y2h7fX1jb25zdCBzPWU/bmV3IFVSTCh0LGUpOm5ldyBVUkwodCk7aWYoZnVuY3Rpb24odCl7c3dpdGNoKHQ/LnByb3RvY29sKXtjYXNlImh0dHA6IjpjYXNlImh0dHBzOiI6Y2FzZSJmdHA6IjpjYXNlIm1haWx0bzoiOmNhc2UidGVsOiI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19KHMpKXJldHVybiBzfWNhdGNoe31yZXR1cm4gbnVsbH1mdW5jdGlvbiBDKHQsZSxpLHM9ITEpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTppLGVudW1lcmFibGU6IXMsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiExfSksaX1jb25zdCBTPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUpe3RoaXMubWVzc2FnZT10LHRoaXMubmFtZT1lfXJldHVybiB0LnByb3RvdHlwZT1uZXcgRXJyb3IsdC5jb25zdHJ1Y3Rvcj10LHR9KCk7Y2xhc3MgVCBleHRlbmRzIFN7Y29uc3RydWN0b3IodCxlKXtzdXBlcih0LCJQYXNzd29yZEV4Y2VwdGlvbiIpLHRoaXMuY29kZT1lfX1jbGFzcyBNIGV4dGVuZHMgU3tjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsIlVua25vd25FcnJvckV4Y2VwdGlvbiIpLHRoaXMuZGV0YWlscz1lfX1jbGFzcyBrIGV4dGVuZHMgU3tjb25zdHJ1Y3Rvcih0KXtzdXBlcih0LCJJbnZhbGlkUERGRXhjZXB0aW9uIil9fWNsYXNzIEkgZXh0ZW5kcyBTe2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQsIk1pc3NpbmdQREZFeGNlcHRpb24iKX19Y2xhc3MgUiBleHRlbmRzIFN7Y29uc3RydWN0b3IodCxlKXtzdXBlcih0LCJVbmV4cGVjdGVkUmVzcG9uc2VFeGNlcHRpb24iKSx0aGlzLnN0YXR1cz1lfX1jbGFzcyBQIGV4dGVuZHMgU3tjb25zdHJ1Y3Rvcih0KXtzdXBlcih0LCJGb3JtYXRFcnJvciIpfX1jbGFzcyBEIGV4dGVuZHMgU3tjb25zdHJ1Y3Rvcih0KXtzdXBlcih0LCJBYm9ydEV4Y2VwdGlvbiIpfX1mdW5jdGlvbiBMKHQpeyJvYmplY3QiPT10eXBlb2YgdCYmdm9pZCAwIT09dD8ubGVuZ3RofHx4KCJJbnZhbGlkIGFyZ3VtZW50IGZvciBieXRlc1RvU3RyaW5nIik7Y29uc3QgZT10Lmxlbmd0aCxpPTgxOTI7aWYoZTxpKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsdCk7Y29uc3Qgcz1bXTtmb3IobGV0IG49MDtuPGU7bis9aSl7Y29uc3Qgcj1NYXRoLm1pbihuK2ksZSksYT10LnN1YmFycmF5KG4scik7cy5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxhKSl9cmV0dXJuIHMuam9pbigiIil9ZnVuY3Rpb24gRih0KXsic3RyaW5nIiE9dHlwZW9mIHQmJngoIkludmFsaWQgYXJndW1lbnQgZm9yIHN0cmluZ1RvQnl0ZXMiKTtjb25zdCBlPXQubGVuZ3RoLGk9bmV3IFVpbnQ4QXJyYXkoZSk7Zm9yKGxldCBzPTA7czxlOysrcylpW3NdPTI1NSZ0LmNoYXJDb2RlQXQocyk7cmV0dXJuIGl9ZnVuY3Rpb24gTyh0KXtjb25zdCBlPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGNvbnN0W2ksc11vZiB0KWVbaV09cztyZXR1cm4gZX1jbGFzcyBOe3N0YXRpYyBnZXQgaXNMaXR0bGVFbmRpYW4oKXtyZXR1cm4gQyh0aGlzLCJpc0xpdHRsZUVuZGlhbiIsZnVuY3Rpb24oKXtjb25zdCB0PW5ldyBVaW50OEFycmF5KDQpO3JldHVybiB0WzBdPTEsMT09PW5ldyBVaW50MzJBcnJheSh0LmJ1ZmZlciwwLDEpWzBdfSgpKX1zdGF0aWMgZ2V0IGlzRXZhbFN1cHBvcnRlZCgpe3JldHVybiBDKHRoaXMsImlzRXZhbFN1cHBvcnRlZCIsZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG5ldyBGdW5jdGlvbigiIiksITB9Y2F0Y2h7cmV0dXJuITF9fSgpKX1zdGF0aWMgZ2V0IGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkKCl7cmV0dXJuIEModGhpcywiaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQiLCJ1bmRlZmluZWQiIT10eXBlb2YgT2Zmc2NyZWVuQ2FudmFzKX1zdGF0aWMgZ2V0IHBsYXRmb3JtKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJiJzdHJpbmciPT10eXBlb2YgbmF2aWdhdG9yPy5wbGF0Zm9ybT9DKHRoaXMsInBsYXRmb3JtIix7aXNNYWM6bmF2aWdhdG9yLnBsYXRmb3JtLmluY2x1ZGVzKCJNYWMiKSxpc1dpbmRvd3M6bmF2aWdhdG9yLnBsYXRmb3JtLmluY2x1ZGVzKCJXaW4iKSxpc0ZpcmVmb3g6InN0cmluZyI9PXR5cGVvZiBuYXZpZ2F0b3I/LnVzZXJBZ2VudCYmbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygiRmlyZWZveCIpfSk6Qyh0aGlzLCJwbGF0Zm9ybSIse2lzTWFjOiExLGlzV2luZG93czohMSxpc0ZpcmVmb3g6ITF9KX1zdGF0aWMgZ2V0IGlzQ1NTUm91bmRTdXBwb3J0ZWQoKXtyZXR1cm4gQyh0aGlzLCJpc0NTU1JvdW5kU3VwcG9ydGVkIixnbG9iYWxUaGlzLkNTUz8uc3VwcG9ydHM/Ligid2lkdGg6IHJvdW5kKDEuNXB4LCAxcHgpIikpfX1jb25zdCBCPUFycmF5LmZyb20oQXJyYXkoMjU2KS5rZXlzKCksKHQ9PnQudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSkpO2NsYXNzIHp7c3RhdGljIG1ha2VIZXhDb2xvcih0LGUsaSl7cmV0dXJuYCMke0JbdF19JHtCW2VdfSR7QltpXX1gfXN0YXRpYyBzY2FsZU1pbk1heCh0LGUpe2xldCBpO3RbMF0/KHRbMF08MCYmKGk9ZVswXSxlWzBdPWVbMl0sZVsyXT1pKSxlWzBdKj10WzBdLGVbMl0qPXRbMF0sdFszXTwwJiYoaT1lWzFdLGVbMV09ZVszXSxlWzNdPWkpLGVbMV0qPXRbM10sZVszXSo9dFszXSk6KGk9ZVswXSxlWzBdPWVbMV0sZVsxXT1pLGk9ZVsyXSxlWzJdPWVbM10sZVszXT1pLHRbMV08MCYmKGk9ZVsxXSxlWzFdPWVbM10sZVszXT1pKSxlWzFdKj10WzFdLGVbM10qPXRbMV0sdFsyXTwwJiYoaT1lWzBdLGVbMF09ZVsyXSxlWzJdPWkpLGVbMF0qPXRbMl0sZVsyXSo9dFsyXSksZVswXSs9dFs0XSxlWzFdKz10WzVdLGVbMl0rPXRbNF0sZVszXSs9dFs1XX1zdGF0aWMgdHJhbnNmb3JtKHQsZSl7cmV0dXJuW3RbMF0qZVswXSt0WzJdKmVbMV0sdFsxXSplWzBdK3RbM10qZVsxXSx0WzBdKmVbMl0rdFsyXSplWzNdLHRbMV0qZVsyXSt0WzNdKmVbM10sdFswXSplWzRdK3RbMl0qZVs1XSt0WzRdLHRbMV0qZVs0XSt0WzNdKmVbNV0rdFs1XV19c3RhdGljIGFwcGx5VHJhbnNmb3JtKHQsZSl7cmV0dXJuW3RbMF0qZVswXSt0WzFdKmVbMl0rZVs0XSx0WzBdKmVbMV0rdFsxXSplWzNdK2VbNV1dfXN0YXRpYyBhcHBseUludmVyc2VUcmFuc2Zvcm0odCxlKXtjb25zdCBpPWVbMF0qZVszXS1lWzFdKmVbMl07cmV0dXJuWyh0WzBdKmVbM10tdFsxXSplWzJdK2VbMl0qZVs1XS1lWzRdKmVbM10pL2ksKC10WzBdKmVbMV0rdFsxXSplWzBdK2VbNF0qZVsxXS1lWzVdKmVbMF0pL2ldfXN0YXRpYyBnZXRBeGlhbEFsaWduZWRCb3VuZGluZ0JveCh0LGUpe2NvbnN0IGk9dGhpcy5hcHBseVRyYW5zZm9ybSh0LGUpLHM9dGhpcy5hcHBseVRyYW5zZm9ybSh0LnNsaWNlKDIsNCksZSksbj10aGlzLmFwcGx5VHJhbnNmb3JtKFt0WzBdLHRbM11dLGUpLHI9dGhpcy5hcHBseVRyYW5zZm9ybShbdFsyXSx0WzFdXSxlKTtyZXR1cm5bTWF0aC5taW4oaVswXSxzWzBdLG5bMF0sclswXSksTWF0aC5taW4oaVsxXSxzWzFdLG5bMV0sclsxXSksTWF0aC5tYXgoaVswXSxzWzBdLG5bMF0sclswXSksTWF0aC5tYXgoaVsxXSxzWzFdLG5bMV0sclsxXSldfXN0YXRpYyBpbnZlcnNlVHJhbnNmb3JtKHQpe2NvbnN0IGU9dFswXSp0WzNdLXRbMV0qdFsyXTtyZXR1cm5bdFszXS9lLC10WzFdL2UsLXRbMl0vZSx0WzBdL2UsKHRbMl0qdFs1XS10WzRdKnRbM10pL2UsKHRbNF0qdFsxXS10WzVdKnRbMF0pL2VdfXN0YXRpYyBzaW5ndWxhclZhbHVlRGVjb21wb3NlMmRTY2FsZSh0KXtjb25zdCBlPVt0WzBdLHRbMl0sdFsxXSx0WzNdXSxpPXRbMF0qZVswXSt0WzFdKmVbMl0scz10WzBdKmVbMV0rdFsxXSplWzNdLG49dFsyXSplWzBdK3RbM10qZVsyXSxyPXRbMl0qZVsxXSt0WzNdKmVbM10sYT0oaStyKS8yLG89TWF0aC5zcXJ0KChpK3IpKioyLTQqKGkqci1uKnMpKS8yLGg9YStvfHwxLGw9YS1vfHwxO3JldHVybltNYXRoLnNxcnQoaCksTWF0aC5zcXJ0KGwpXX1zdGF0aWMgbm9ybWFsaXplUmVjdCh0KXtjb25zdCBlPXQuc2xpY2UoMCk7cmV0dXJuIHRbMF0+dFsyXSYmKGVbMF09dFsyXSxlWzJdPXRbMF0pLHRbMV0+dFszXSYmKGVbMV09dFszXSxlWzNdPXRbMV0pLGV9c3RhdGljIGludGVyc2VjdCh0LGUpe2NvbnN0IGk9TWF0aC5tYXgoTWF0aC5taW4odFswXSx0WzJdKSxNYXRoLm1pbihlWzBdLGVbMl0pKSxzPU1hdGgubWluKE1hdGgubWF4KHRbMF0sdFsyXSksTWF0aC5tYXgoZVswXSxlWzJdKSk7aWYoaT5zKXJldHVybiBudWxsO2NvbnN0IG49TWF0aC5tYXgoTWF0aC5taW4odFsxXSx0WzNdKSxNYXRoLm1pbihlWzFdLGVbM10pKSxyPU1hdGgubWluKE1hdGgubWF4KHRbMV0sdFszXSksTWF0aC5tYXgoZVsxXSxlWzNdKSk7cmV0dXJuIG4+cj9udWxsOltpLG4scyxyXX1zdGF0aWMjdCh0LGUsaSxzLG4scixhLG8saCxsKXtpZihoPD0wfHxoPj0xKXJldHVybjtjb25zdCBjPTEtaCxkPWgqaCx1PWQqaCxwPWMqKGMqKGMqdCszKmgqZSkrMypkKmkpK3UqcyxnPWMqKGMqKGMqbiszKmgqcikrMypkKmEpK3UqbztsWzBdPU1hdGgubWluKGxbMF0scCksbFsxXT1NYXRoLm1pbihsWzFdLGcpLGxbMl09TWF0aC5tYXgobFsyXSxwKSxsWzNdPU1hdGgubWF4KGxbM10sZyl9c3RhdGljI2UodCxlLGkscyxuLHIsYSxvLGgsbCxjLGQpe2lmKE1hdGguYWJzKGgpPDFlLTEyKXJldHVybiB2b2lkKE1hdGguYWJzKGwpPj0xZS0xMiYmdGhpcy4jdCh0LGUsaSxzLG4scixhLG8sLWMvbCxkKSk7Y29uc3QgdT1sKioyLTQqYypoO2lmKHU8MClyZXR1cm47Y29uc3QgcD1NYXRoLnNxcnQodSksZz0yKmg7dGhpcy4jdCh0LGUsaSxzLG4scixhLG8sKC1sK3ApL2csZCksdGhpcy4jdCh0LGUsaSxzLG4scixhLG8sKC1sLXApL2csZCl9c3RhdGljIGJlemllckJvdW5kaW5nQm94KHQsZSxpLHMsbixyLGEsbyxoKXtyZXR1cm4gaD8oaFswXT1NYXRoLm1pbihoWzBdLHQsYSksaFsxXT1NYXRoLm1pbihoWzFdLGUsbyksaFsyXT1NYXRoLm1heChoWzJdLHQsYSksaFszXT1NYXRoLm1heChoWzNdLGUsbykpOmg9W01hdGgubWluKHQsYSksTWF0aC5taW4oZSxvKSxNYXRoLm1heCh0LGEpLE1hdGgubWF4KGUsbyldLHRoaXMuI2UodCxpLG4sYSxlLHMscixvLDMqKDMqKGktbiktdCthKSw2Kih0LTIqaStuKSwzKihpLXQpLGgpLHRoaXMuI2UodCxpLG4sYSxlLHMscixvLDMqKDMqKHMtciktZStvKSw2KihlLTIqcytyKSwzKihzLWUpLGgpLGh9fWxldCBIPW51bGwsaj1udWxsO2Z1bmN0aW9uIFUodCl7cmV0dXJuIEh8fChIPS8oW1x1MDBhMFx1MDBiNVx1MDM3ZVx1MGViM1x1MjAwMC1cdTIwMGFcdTIwMmZcdTIxMjZcdWZiMDAtXHVmYjA0XHVmYjA2XHVmYjIwLVx1ZmIzNlx1ZmIzOC1cdWZiM2NcdWZiM2VcdWZiNDAtXHVmYjQxXHVmYjQzLVx1ZmI0NFx1ZmI0Ni1cdWZiYTFcdWZiYTQtXHVmYmE5XHVmYmFlLVx1ZmJiMVx1ZmJkMy1cdWZiZGNcdWZiZGUtXHVmYmU3XHVmYmVhLVx1ZmJmOFx1ZmJmYy1cdWZiZmRcdWZjMDAtXHVmYzVkXHVmYzY0LVx1ZmNmMVx1ZmNmNS1cdWZkM2RcdWZkODhcdWZkZjRcdWZkZmEtXHVmZGZiXHVmZTcxXHVmZTc3XHVmZTc5XHVmZTdiXHVmZTdkXSspfChcdWZiMDUrKS9ndSxqPW5ldyBNYXAoW1si76yFIiwixb90Il1dKSksdC5yZXBsYWNlQWxsKEgsKCh0LGUsaSk9PmU/ZS5ub3JtYWxpemUoIk5GS0MiKTpqLmdldChpKSkpfWNvbnN0ICQ9InBkZmpzX2ludGVybmFsX2lkXyI7aSg0NjI4KSxpKDc2NDIpLGkoODAwNCksaSgzODUzKSxpKDU4NzYpLGkoMjQ3NSksaSg1MDI0KSxpKDE2OTgpLGkoMTQ1NCksaSg0OTc5KSxpKDg5OTIpLGkoNDc0MyksaSgzMjE1KSxpKDc1NTApLGkoODMzNSksaSg0NTIwKTtjbGFzcyBXe2FkZEZpbHRlcih0KXtyZXR1cm4ibm9uZSJ9YWRkSENNRmlsdGVyKHQsZSl7cmV0dXJuIm5vbmUifWFkZEFscGhhRmlsdGVyKHQpe3JldHVybiJub25lIn1hZGRMdW1pbm9zaXR5RmlsdGVyKHQpe3JldHVybiJub25lIn1hZGRIaWdobGlnaHRIQ01GaWx0ZXIodCxlLGkscyxuKXtyZXR1cm4ibm9uZSJ9ZGVzdHJveSh0PSExKXt9fWNsYXNzIEd7I2k9ITE7Y29uc3RydWN0b3Ioe2VuYWJsZUhXQTp0PSExfSl7dGhpcy4jaT10fWNyZWF0ZSh0LGUpe2lmKHQ8PTB8fGU8PTApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNhbnZhcyBzaXplIik7Y29uc3QgaT10aGlzLl9jcmVhdGVDYW52YXModCxlKTtyZXR1cm57Y2FudmFzOmksY29udGV4dDppLmdldENvbnRleHQoIjJkIix7d2lsbFJlYWRGcmVxdWVudGx5OiF0aGlzLiNpfSl9fXJlc2V0KHQsZSxpKXtpZighdC5jYW52YXMpdGhyb3cgbmV3IEVycm9yKCJDYW52YXMgaXMgbm90IHNwZWNpZmllZCIpO2lmKGU8PTB8fGk8PTApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNhbnZhcyBzaXplIik7dC5jYW52YXMud2lkdGg9ZSx0LmNhbnZhcy5oZWlnaHQ9aX1kZXN0cm95KHQpe2lmKCF0LmNhbnZhcyl0aHJvdyBuZXcgRXJyb3IoIkNhbnZhcyBpcyBub3Qgc3BlY2lmaWVkIik7dC5jYW52YXMud2lkdGg9MCx0LmNhbnZhcy5oZWlnaHQ9MCx0LmNhbnZhcz1udWxsLHQuY29udGV4dD1udWxsfV9jcmVhdGVDYW52YXModCxlKXt4KCJBYnN0cmFjdCBtZXRob2QgYF9jcmVhdGVDYW52YXNgIGNhbGxlZC4iKX19Y2xhc3MgVntjb25zdHJ1Y3Rvcih7YmFzZVVybDp0PW51bGwsaXNDb21wcmVzc2VkOmU9ITB9KXt0aGlzLmJhc2VVcmw9dCx0aGlzLmlzQ29tcHJlc3NlZD1lfWFzeW5jIGZldGNoKHtuYW1lOnR9KXtpZighdGhpcy5iYXNlVXJsKXRocm93IG5ldyBFcnJvcigiRW5zdXJlIHRoYXQgdGhlIGBjTWFwVXJsYCBhbmQgYGNNYXBQYWNrZWRgIEFQSSBwYXJhbWV0ZXJzIGFyZSBwcm92aWRlZC4iKTtpZighdCl0aHJvdyBuZXcgRXJyb3IoIkNNYXAgbmFtZSBtdXN0IGJlIHNwZWNpZmllZC4iKTtjb25zdCBlPXRoaXMuYmFzZVVybCt0Kyh0aGlzLmlzQ29tcHJlc3NlZD8iLmJjbWFwIjoiIiksaT10aGlzLmlzQ29tcHJlc3NlZD9nLkJJTkFSWTpnLk5PTkU7cmV0dXJuIHRoaXMuX2ZldGNoRGF0YShlLGkpLmNhdGNoKCh0PT57dGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gbG9hZCAke3RoaXMuaXNDb21wcmVzc2VkPyJiaW5hcnkgIjoiIn1DTWFwIGF0OiAke2V9YCl9KSl9X2ZldGNoRGF0YSh0LGUpe3goIkFic3RyYWN0IG1ldGhvZCBgX2ZldGNoRGF0YWAgY2FsbGVkLiIpfX1jbGFzcyBxe2NvbnN0cnVjdG9yKHtiYXNlVXJsOnQ9bnVsbH0pe3RoaXMuYmFzZVVybD10fWFzeW5jIGZldGNoKHtmaWxlbmFtZTp0fSl7aWYoIXRoaXMuYmFzZVVybCl0aHJvdyBuZXcgRXJyb3IoIkVuc3VyZSB0aGF0IHRoZSBgc3RhbmRhcmRGb250RGF0YVVybGAgQVBJIHBhcmFtZXRlciBpcyBwcm92aWRlZC4iKTtpZighdCl0aHJvdyBuZXcgRXJyb3IoIkZvbnQgZmlsZW5hbWUgbXVzdCBiZSBzcGVjaWZpZWQuIik7Y29uc3QgZT1gJHt0aGlzLmJhc2VVcmx9JHt0fWA7cmV0dXJuIHRoaXMuX2ZldGNoRGF0YShlKS5jYXRjaCgodD0+e3Rocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGxvYWQgZm9udCBkYXRhIGF0OiAke2V9YCl9KSl9X2ZldGNoRGF0YSh0KXt4KCJBYnN0cmFjdCBtZXRob2QgYF9mZXRjaERhdGFgIGNhbGxlZC4iKX19Y2xhc3MgWHtjcmVhdGUodCxlLGk9ITEpe2lmKHQ8PTB8fGU8PTApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIFNWRyBkaW1lbnNpb25zIik7Y29uc3Qgcz10aGlzLl9jcmVhdGVTVkcoInN2ZzpzdmciKTtyZXR1cm4gcy5zZXRBdHRyaWJ1dGUoInZlcnNpb24iLCIxLjEiKSxpfHwocy5zZXRBdHRyaWJ1dGUoIndpZHRoIixgJHt0fXB4YCkscy5zZXRBdHRyaWJ1dGUoImhlaWdodCIsYCR7ZX1weGApKSxzLnNldEF0dHJpYnV0ZSgicHJlc2VydmVBc3BlY3RSYXRpbyIsIm5vbmUiKSxzLnNldEF0dHJpYnV0ZSgidmlld0JveCIsYDAgMCAke3R9ICR7ZX1gKSxzfWNyZWF0ZUVsZW1lbnQodCl7aWYoInN0cmluZyIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBTVkcgZWxlbWVudCB0eXBlIik7cmV0dXJuIHRoaXMuX2NyZWF0ZVNWRyh0KX1fY3JlYXRlU1ZHKHQpe3goIkFic3RyYWN0IG1ldGhvZCBgX2NyZWF0ZVNWR2AgY2FsbGVkLiIpfX1jb25zdCBLPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI7Y2xhc3MgWXtzdGF0aWMgQ1NTPTk2O3N0YXRpYyBQREY9NzI7c3RhdGljIFBERl9UT19DU1NfVU5JVFM9dGhpcy5DU1MvdGhpcy5QREZ9YXN5bmMgZnVuY3Rpb24gUSh0LGU9InRleHQiKXtpZihodCh0LGRvY3VtZW50LmJhc2VVUkkpKXtjb25zdCBpPWF3YWl0IGZldGNoKHQpO2lmKCFpLm9rKXRocm93IG5ldyBFcnJvcihpLnN0YXR1c1RleHQpO3N3aXRjaChlKXtjYXNlImFycmF5YnVmZmVyIjpyZXR1cm4gaS5hcnJheUJ1ZmZlcigpO2Nhc2UiYmxvYiI6cmV0dXJuIGkuYmxvYigpO2Nhc2UianNvbiI6cmV0dXJuIGkuanNvbigpfXJldHVybiBpLnRleHQoKX1yZXR1cm4gbmV3IFByb21pc2UoKChpLHMpPT57Y29uc3Qgbj1uZXcgWE1MSHR0cFJlcXVlc3Q7bi5vcGVuKCJHRVQiLHQsITApLG4ucmVzcG9uc2VUeXBlPWUsbi5vbnJlYWR5c3RhdGVjaGFuZ2U9KCk9PntpZihuLnJlYWR5U3RhdGU9PT1YTUxIdHRwUmVxdWVzdC5ET05FKWlmKDIwMCE9PW4uc3RhdHVzJiYwIT09bi5zdGF0dXMpcyhuZXcgRXJyb3Iobi5zdGF0dXNUZXh0KSk7ZWxzZXtzd2l0Y2goZSl7Y2FzZSJhcnJheWJ1ZmZlciI6Y2FzZSJibG9iIjpjYXNlImpzb24iOnJldHVybiB2b2lkIGkobi5yZXNwb25zZSl9aShuLnJlc3BvbnNlVGV4dCl9fSxuLnNlbmQobnVsbCl9KSl9Y2xhc3MgSiBleHRlbmRzIFZ7X2ZldGNoRGF0YSh0LGUpe3JldHVybiBRKHQsdGhpcy5pc0NvbXByZXNzZWQ/ImFycmF5YnVmZmVyIjoidGV4dCIpLnRoZW4oKHQ9Pih7Y01hcERhdGE6dCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyP25ldyBVaW50OEFycmF5KHQpOkYodCksY29tcHJlc3Npb25UeXBlOmV9KSkpfX1jbGFzcyBaIGV4dGVuZHMgcXtfZmV0Y2hEYXRhKHQpe3JldHVybiBRKHQsImFycmF5YnVmZmVyIikudGhlbigodD0+bmV3IFVpbnQ4QXJyYXkodCkpKX19Y2xhc3MgdHQgZXh0ZW5kcyBYe19jcmVhdGVTVkcodCl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhLLHQpfX1jbGFzcyBldHtjb25zdHJ1Y3Rvcih7dmlld0JveDp0LHNjYWxlOmUscm90YXRpb246aSxvZmZzZXRYOnM9MCxvZmZzZXRZOm49MCxkb250RmxpcDpyPSExfSl7dGhpcy52aWV3Qm94PXQsdGhpcy5zY2FsZT1lLHRoaXMucm90YXRpb249aSx0aGlzLm9mZnNldFg9cyx0aGlzLm9mZnNldFk9bjtjb25zdCBhPSh0WzJdK3RbMF0pLzIsbz0odFszXSt0WzFdKS8yO2xldCBoLGwsYyxkLHUscCxnLGY7c3dpdGNoKChpJT0zNjApPDAmJihpKz0zNjApLGkpe2Nhc2UgMTgwOmg9LTEsbD0wLGM9MCxkPTE7YnJlYWs7Y2FzZSA5MDpoPTAsbD0xLGM9MSxkPTA7YnJlYWs7Y2FzZSAyNzA6aD0wLGw9LTEsYz0tMSxkPTA7YnJlYWs7Y2FzZSAwOmg9MSxsPTAsYz0wLGQ9LTE7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlBhZ2VWaWV3cG9ydDogSW52YWxpZCByb3RhdGlvbiwgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDkwIGRlZ3JlZXMuIil9ciYmKGM9LWMsZD0tZCksMD09PWg/KHU9TWF0aC5hYnMoby10WzFdKSplK3MscD1NYXRoLmFicyhhLXRbMF0pKmUrbixnPSh0WzNdLXRbMV0pKmUsZj0odFsyXS10WzBdKSplKToodT1NYXRoLmFicyhhLXRbMF0pKmUrcyxwPU1hdGguYWJzKG8tdFsxXSkqZStuLGc9KHRbMl0tdFswXSkqZSxmPSh0WzNdLXRbMV0pKmUpLHRoaXMudHJhbnNmb3JtPVtoKmUsbCplLGMqZSxkKmUsdS1oKmUqYS1jKmUqbyxwLWwqZSphLWQqZSpvXSx0aGlzLndpZHRoPWcsdGhpcy5oZWlnaHQ9Zn1nZXQgcmF3RGltcygpe2NvbnN0e3ZpZXdCb3g6dH09dGhpcztyZXR1cm4gQyh0aGlzLCJyYXdEaW1zIix7cGFnZVdpZHRoOnRbMl0tdFswXSxwYWdlSGVpZ2h0OnRbM10tdFsxXSxwYWdlWDp0WzBdLHBhZ2VZOnRbMV19KX1jbG9uZSh7c2NhbGU6dD10aGlzLnNjYWxlLHJvdGF0aW9uOmU9dGhpcy5yb3RhdGlvbixvZmZzZXRYOmk9dGhpcy5vZmZzZXRYLG9mZnNldFk6cz10aGlzLm9mZnNldFksZG9udEZsaXA6bj0hMX09e30pe3JldHVybiBuZXcgZXQoe3ZpZXdCb3g6dGhpcy52aWV3Qm94LnNsaWNlKCksc2NhbGU6dCxyb3RhdGlvbjplLG9mZnNldFg6aSxvZmZzZXRZOnMsZG9udEZsaXA6bn0pfWNvbnZlcnRUb1ZpZXdwb3J0UG9pbnQodCxlKXtyZXR1cm4gei5hcHBseVRyYW5zZm9ybShbdCxlXSx0aGlzLnRyYW5zZm9ybSl9Y29udmVydFRvVmlld3BvcnRSZWN0YW5nbGUodCl7Y29uc3QgZT16LmFwcGx5VHJhbnNmb3JtKFt0WzBdLHRbMV1dLHRoaXMudHJhbnNmb3JtKSxpPXouYXBwbHlUcmFuc2Zvcm0oW3RbMl0sdFszXV0sdGhpcy50cmFuc2Zvcm0pO3JldHVybltlWzBdLGVbMV0saVswXSxpWzFdXX1jb252ZXJ0VG9QZGZQb2ludCh0LGUpe3JldHVybiB6LmFwcGx5SW52ZXJzZVRyYW5zZm9ybShbdCxlXSx0aGlzLnRyYW5zZm9ybSl9fWNsYXNzIGl0IGV4dGVuZHMgU3tjb25zdHJ1Y3Rvcih0LGU9MCl7c3VwZXIodCwiUmVuZGVyaW5nQ2FuY2VsbGVkRXhjZXB0aW9uIiksdGhpcy5leHRyYURlbGF5PWV9fWZ1bmN0aW9uIHN0KHQpe2NvbnN0IGU9dC5sZW5ndGg7bGV0IGk9MDtmb3IoO2k8ZSYmIiI9PT10W2ldLnRyaW0oKTspaSsrO3JldHVybiJkYXRhOiI9PT10LnN1YnN0cmluZyhpLGkrNSkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBudCh0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJi9cLnBkZiQvaS50ZXN0KHQpfWZ1bmN0aW9uIHJ0KHQpe3JldHVyblt0XT10LnNwbGl0KC9bIz9dLywxKSx0LnN1YnN0cmluZyh0Lmxhc3RJbmRleE9mKCIvIikrMSl9ZnVuY3Rpb24gYXQodCxlPSJkb2N1bWVudC5wZGYiKXtpZigic3RyaW5nIiE9dHlwZW9mIHQpcmV0dXJuIGU7aWYoc3QodCkpcmV0dXJuIHcoJ2dldFBkZkZpbGVuYW1lRnJvbVVybDogaWdub3JlICJkYXRhOiItVVJMIGZvciBwZXJmb3JtYW5jZSByZWFzb25zLicpLGU7Y29uc3QgaT0vW14vPyM9XStcLnBkZlxiKD8hLipcLnBkZlxiKS9pLHM9L14oPzooPzpbXjpdKzopP1wvXC9bXi9dKyk/KFtePyNdKikoXD9bXiNdKik/KCMuKik/JC8uZXhlYyh0KTtsZXQgbj1pLmV4ZWMoc1sxXSl8fGkuZXhlYyhzWzJdKXx8aS5leGVjKHNbM10pO2lmKG4mJihuPW5bMF0sbi5pbmNsdWRlcygiJSIpKSl0cnl7bj1pLmV4ZWMoZGVjb2RlVVJJQ29tcG9uZW50KG4pKVswXX1jYXRjaHt9cmV0dXJuIG58fGV9Y2xhc3Mgb3R7c3RhcnRlZD1PYmplY3QuY3JlYXRlKG51bGwpO3RpbWVzPVtdO3RpbWUodCl7dCBpbiB0aGlzLnN0YXJ0ZWQmJncoYFRpbWVyIGlzIGFscmVhZHkgcnVubmluZyBmb3IgJHt0fWApLHRoaXMuc3RhcnRlZFt0XT1EYXRlLm5vdygpfXRpbWVFbmQodCl7dCBpbiB0aGlzLnN0YXJ0ZWR8fHcoYFRpbWVyIGhhcyBub3QgYmVlbiBzdGFydGVkIGZvciAke3R9YCksdGhpcy50aW1lcy5wdXNoKHtuYW1lOnQsc3RhcnQ6dGhpcy5zdGFydGVkW3RdLGVuZDpEYXRlLm5vdygpfSksZGVsZXRlIHRoaXMuc3RhcnRlZFt0XX10b1N0cmluZygpe2NvbnN0IHQ9W107bGV0IGU9MDtmb3IoY29uc3R7bmFtZTp0fW9mIHRoaXMudGltZXMpZT1NYXRoLm1heCh0Lmxlbmd0aCxlKTtmb3IoY29uc3R7bmFtZTppLHN0YXJ0OnMsZW5kOm59b2YgdGhpcy50aW1lcyl0LnB1c2goYCR7aS5wYWRFbmQoZSl9ICR7bi1zfW1zXG5gKTtyZXR1cm4gdC5qb2luKCIiKX19ZnVuY3Rpb24gaHQodCxlKXt0cnl7Y29uc3R7cHJvdG9jb2w6aX09ZT9uZXcgVVJMKHQsZSk6bmV3IFVSTCh0KTtyZXR1cm4iaHR0cDoiPT09aXx8Imh0dHBzOiI9PT1pfWNhdGNoe3JldHVybiExfX1mdW5jdGlvbiBsdCh0KXt0LnByZXZlbnREZWZhdWx0KCl9ZnVuY3Rpb24gY3QodCl7Y29uc29sZS5sb2coIkRlcHJlY2F0ZWQgQVBJIHVzYWdlOiAiK3QpfWxldCBkdDtjbGFzcyB1dHtzdGF0aWMgdG9EYXRlT2JqZWN0KHQpe2lmKCF0fHwic3RyaW5nIiE9dHlwZW9mIHQpcmV0dXJuIG51bGw7ZHR8fD1uZXcgUmVnRXhwKCJeRDooXFxkezR9KShcXGR7Mn0pPyhcXGR7Mn0pPyhcXGR7Mn0pPyhcXGR7Mn0pPyhcXGR7Mn0pPyhbWnwrfC1dKT8oXFxkezJ9KT8nPyhcXGR7Mn0pPyc/Iik7Y29uc3QgZT1kdC5leGVjKHQpO2lmKCFlKXJldHVybiBudWxsO2NvbnN0IGk9cGFyc2VJbnQoZVsxXSwxMCk7bGV0IHM9cGFyc2VJbnQoZVsyXSwxMCk7cz1zPj0xJiZzPD0xMj9zLTE6MDtsZXQgbj1wYXJzZUludChlWzNdLDEwKTtuPW4+PTEmJm48PTMxP246MTtsZXQgcj1wYXJzZUludChlWzRdLDEwKTtyPXI+PTAmJnI8PTIzP3I6MDtsZXQgYT1wYXJzZUludChlWzVdLDEwKTthPWE+PTAmJmE8PTU5P2E6MDtsZXQgbz1wYXJzZUludChlWzZdLDEwKTtvPW8+PTAmJm88PTU5P286MDtjb25zdCBoPWVbN118fCJaIjtsZXQgbD1wYXJzZUludChlWzhdLDEwKTtsPWw+PTAmJmw8PTIzP2w6MDtsZXQgYz1wYXJzZUludChlWzldLDEwKXx8MDtyZXR1cm4gYz1jPj0wJiZjPD01OT9jOjAsIi0iPT09aD8ocis9bCxhKz1jKToiKyI9PT1oJiYoci09bCxhLT1jKSxuZXcgRGF0ZShEYXRlLlVUQyhpLHMsbixyLGEsbykpfX1mdW5jdGlvbiBwdCh0LHtzY2FsZTplPTEscm90YXRpb246aT0wfSl7Y29uc3R7d2lkdGg6cyxoZWlnaHQ6bn09dC5hdHRyaWJ1dGVzLnN0eWxlLHI9WzAsMCxwYXJzZUludChzKSxwYXJzZUludChuKV07cmV0dXJuIG5ldyBldCh7dmlld0JveDpyLHNjYWxlOmUscm90YXRpb246aX0pfWZ1bmN0aW9uIGd0KHQpe2lmKHQuc3RhcnRzV2l0aCgiIyIpKXtjb25zdCBlPXBhcnNlSW50KHQuc2xpY2UoMSksMTYpO3JldHVyblsoMTY3MTE2ODAmZSk+PjE2LCg2NTI4MCZlKT4+OCwyNTUmZV19cmV0dXJuIHQuc3RhcnRzV2l0aCgicmdiKCIpP3Quc2xpY2UoNCwtMSkuc3BsaXQoIiwiKS5tYXAoKHQ9PnBhcnNlSW50KHQpKSk6dC5zdGFydHNXaXRoKCJyZ2JhKCIpP3Quc2xpY2UoNSwtMSkuc3BsaXQoIiwiKS5tYXAoKHQ9PnBhcnNlSW50KHQpKSkuc2xpY2UoMCwzKToodyhgTm90IGEgdmFsaWQgY29sb3IgZm9ybWF0OiAiJHt0fSJgKSxbMCwwLDBdKX1mdW5jdGlvbiBmdCh0KXtjb25zdHthOmUsYjppLGM6cyxkOm4sZTpyLGY6YX09dC5nZXRUcmFuc2Zvcm0oKTtyZXR1cm5bZSxpLHMsbixyLGFdfWZ1bmN0aW9uIG10KHQpe2NvbnN0e2E6ZSxiOmksYzpzLGQ6bixlOnIsZjphfT10LmdldFRyYW5zZm9ybSgpLmludmVydFNlbGYoKTtyZXR1cm5bZSxpLHMsbixyLGFdfWZ1bmN0aW9uIGJ0KHQsZSxpPSExLHM9ITApe2lmKGUgaW5zdGFuY2VvZiBldCl7Y29uc3R7cGFnZVdpZHRoOnMscGFnZUhlaWdodDpufT1lLnJhd0RpbXMse3N0eWxlOnJ9PXQsYT1OLmlzQ1NTUm91bmRTdXBwb3J0ZWQsbz1gdmFyKC0tc2NhbGUtZmFjdG9yKSAqICR7c31weGAsaD1gdmFyKC0tc2NhbGUtZmFjdG9yKSAqICR7bn1weGAsbD1hP2Byb3VuZChkb3duLCAke299LCB2YXIoLS1zY2FsZS1yb3VuZC14LCAxcHgpKWA6YGNhbGMoJHtvfSlgLGM9YT9gcm91bmQoZG93biwgJHtofSwgdmFyKC0tc2NhbGUtcm91bmQteSwgMXB4KSlgOmBjYWxjKCR7aH0pYDtpJiZlLnJvdGF0aW9uJTE4MCE9MD8oci53aWR0aD1jLHIuaGVpZ2h0PWwpOihyLndpZHRoPWwsci5oZWlnaHQ9Yyl9cyYmdC5zZXRBdHRyaWJ1dGUoImRhdGEtbWFpbi1yb3RhdGlvbiIsZS5yb3RhdGlvbil9Y2xhc3MgdnR7Y29uc3RydWN0b3IoKXtjb25zdCB0PXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO3RoaXMuc3g9dCx0aGlzLnN5PXR9Z2V0IHNjYWxlZCgpe3JldHVybiAxIT09dGhpcy5zeHx8MSE9PXRoaXMuc3l9Z2V0IHN5bW1ldHJpYygpe3JldHVybiB0aGlzLnN4PT09dGhpcy5zeX19Y2xhc3MgeXR7I3M9bnVsbDsjbj1udWxsOyNyOyNhPW51bGw7I289bnVsbDtzdGF0aWMjaD1udWxsO2NvbnN0cnVjdG9yKHQpe3RoaXMuI3I9dCx5dC4jaHx8PU9iamVjdC5mcmVlemUoe2ZyZWV0ZXh0OiJwZGZqcy1lZGl0b3ItcmVtb3ZlLWZyZWV0ZXh0LWJ1dHRvbiIsaGlnaGxpZ2h0OiJwZGZqcy1lZGl0b3ItcmVtb3ZlLWhpZ2hsaWdodC1idXR0b24iLGluazoicGRmanMtZWRpdG9yLXJlbW92ZS1pbmstYnV0dG9uIixzdGFtcDoicGRmanMtZWRpdG9yLXJlbW92ZS1zdGFtcC1idXR0b24ifSl9cmVuZGVyKCl7Y29uc3QgdD10aGlzLiNzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NMaXN0LmFkZCgiZWRpdFRvb2xiYXIiLCJoaWRkZW4iKSx0LnNldEF0dHJpYnV0ZSgicm9sZSIsInRvb2xiYXIiKTtjb25zdCBlPXRoaXMuI3IuX3VpTWFuYWdlci5fc2lnbmFsO3QuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLGx0LHtzaWduYWw6ZX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLHl0LiNsLHtzaWduYWw6ZX0pO2NvbnN0IGk9dGhpcy4jYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpLmNsYXNzTmFtZT0iYnV0dG9ucyIsdC5hcHBlbmQoaSk7Y29uc3Qgcz10aGlzLiNyLnRvb2xiYXJQb3NpdGlvbjtpZihzKXtjb25zdHtzdHlsZTplfT10LGk9Imx0ciI9PT10aGlzLiNyLl91aU1hbmFnZXIuZGlyZWN0aW9uPzEtc1swXTpzWzBdO2UuaW5zZXRJbmxpbmVFbmQ9MTAwKmkrIiUiLGUudG9wPWBjYWxjKCR7MTAwKnNbMV19JSArIHZhcigtLWVkaXRvci10b29sYmFyLXZlcnQtb2Zmc2V0KSlgfXJldHVybiB0aGlzLiNjKCksdH1nZXQgZGl2KCl7cmV0dXJuIHRoaXMuI3N9c3RhdGljI2wodCl7dC5zdG9wUHJvcGFnYXRpb24oKX0jZCh0KXt0aGlzLiNyLl9mb2N1c0V2ZW50c0FsbG93ZWQ9ITEsdC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCl9I3UodCl7dGhpcy4jci5fZm9jdXNFdmVudHNBbGxvd2VkPSEwLHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpfSNwKHQpe2NvbnN0IGU9dGhpcy4jci5fdWlNYW5hZ2VyLl9zaWduYWw7dC5hZGRFdmVudExpc3RlbmVyKCJmb2N1c2luIix0aGlzLiNkLmJpbmQodGhpcykse2NhcHR1cmU6ITAsc2lnbmFsOmV9KSx0LmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0Iix0aGlzLiN1LmJpbmQodGhpcykse2NhcHR1cmU6ITAsc2lnbmFsOmV9KSx0LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IixsdCx7c2lnbmFsOmV9KX1oaWRlKCl7dGhpcy4jcy5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSx0aGlzLiNuPy5oaWRlRHJvcGRvd24oKX1zaG93KCl7dGhpcy4jcy5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSx0aGlzLiNvPy5zaG93bigpfSNjKCl7Y29uc3R7ZWRpdG9yVHlwZTp0LF91aU1hbmFnZXI6ZX09dGhpcy4jcixpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO2kuY2xhc3NOYW1lPSJkZWxldGUiLGkudGFiSW5kZXg9MCxpLnNldEF0dHJpYnV0ZSgiZGF0YS1sMTBuLWlkIix5dC4jaFt0XSksdGhpcy4jcChpKSxpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwodD0+e2UuZGVsZXRlKCl9KSx7c2lnbmFsOmUuX3NpZ25hbH0pLHRoaXMuI2EuYXBwZW5kKGkpfWdldCNnKCl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5jbGFzc05hbWU9ImRpdmlkZXIiLHR9YXN5bmMgYWRkQWx0VGV4dCh0KXtjb25zdCBlPWF3YWl0IHQucmVuZGVyKCk7dGhpcy4jcChlKSx0aGlzLiNhLnByZXBlbmQoZSx0aGlzLiNnKSx0aGlzLiNvPXR9YWRkQ29sb3JQaWNrZXIodCl7dGhpcy4jbj10O2NvbnN0IGU9dC5yZW5kZXJCdXR0b24oKTt0aGlzLiNwKGUpLHRoaXMuI2EucHJlcGVuZChlLHRoaXMuI2cpfXJlbW92ZSgpe3RoaXMuI3MucmVtb3ZlKCksdGhpcy4jbj8uZGVzdHJveSgpLHRoaXMuI249bnVsbH19Y2xhc3MgQXR7I2E9bnVsbDsjcz1udWxsOyNmO2NvbnN0cnVjdG9yKHQpe3RoaXMuI2Y9dH0jbSgpe2NvbnN0IHQ9dGhpcy4jcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmNsYXNzTmFtZT0iZWRpdFRvb2xiYXIiLHQuc2V0QXR0cmlidXRlKCJyb2xlIiwidG9vbGJhciIpLHQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLGx0LHtzaWduYWw6dGhpcy4jZi5fc2lnbmFsfSk7Y29uc3QgZT10aGlzLiNhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBlLmNsYXNzTmFtZT0iYnV0dG9ucyIsdC5hcHBlbmQoZSksdGhpcy4jYigpLHR9I3YodCxlKXtsZXQgaT0wLHM9MDtmb3IoY29uc3QgbiBvZiB0KXtjb25zdCB0PW4ueStuLmhlaWdodDtpZih0PGkpY29udGludWU7Y29uc3Qgcj1uLngrKGU/bi53aWR0aDowKTt0Pmk/KHM9cixpPXQpOmU/cj5zJiYocz1yKTpyPHMmJihzPXIpfXJldHVybltlPzEtczpzLGldfXNob3codCxlLGkpe2NvbnN0W3Msbl09dGhpcy4jdihlLGkpLHtzdHlsZTpyfT10aGlzLiNzfHw9dGhpcy4jbSgpO3QuYXBwZW5kKHRoaXMuI3MpLHIuaW5zZXRJbmxpbmVFbmQ9MTAwKnMrIiUiLHIudG9wPWBjYWxjKCR7MTAwKm59JSArIHZhcigtLWVkaXRvci10b29sYmFyLXZlcnQtb2Zmc2V0KSlgfWhpZGUoKXt0aGlzLiNzLnJlbW92ZSgpfSNiKCl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTt0LmNsYXNzTmFtZT0iaGlnaGxpZ2h0QnV0dG9uIix0LnRhYkluZGV4PTAsdC5zZXRBdHRyaWJ1dGUoImRhdGEtbDEwbi1pZCIsInBkZmpzLWhpZ2hsaWdodC1mbG9hdGluZy1idXR0b24xIik7Y29uc3QgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7dC5hcHBlbmQoZSksZS5jbGFzc05hbWU9InZpc3VhbGx5SGlkZGVuIixlLnNldEF0dHJpYnV0ZSgiZGF0YS1sMTBuLWlkIiwicGRmanMtaGlnaGxpZ2h0LWZsb2F0aW5nLWJ1dHRvbi1sYWJlbCIpO2NvbnN0IGk9dGhpcy4jZi5fc2lnbmFsO3QuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLGx0LHtzaWduYWw6aX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgoKT0+e3RoaXMuI2YuaGlnaGxpZ2h0U2VsZWN0aW9uKCJmbG9hdGluZ19idXR0b24iKX0pLHtzaWduYWw6aX0pLHRoaXMuI2EuYXBwZW5kKHQpfX1mdW5jdGlvbiB3dCh0LGUsaSl7Zm9yKGNvbnN0IHMgb2YgaSllLmFkZEV2ZW50TGlzdGVuZXIocyx0W3NdLmJpbmQodCkpfWNsYXNzIHh0eyN5PTA7Z2V0IGlkKCl7cmV0dXJuInBkZmpzX2ludGVybmFsX2VkaXRvcl8iK3RoaXMuI3krK319Y2xhc3MgX3R7I0E9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGNyeXB0byYmImZ1bmN0aW9uIj09dHlwZW9mIGNyeXB0bz8ucmFuZG9tVVVJRClyZXR1cm4gY3J5cHRvLnJhbmRvbVVVSUQoKTtjb25zdCB0PW5ldyBVaW50OEFycmF5KDMyKTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGNyeXB0byYmImZ1bmN0aW9uIj09dHlwZW9mIGNyeXB0bz8uZ2V0UmFuZG9tVmFsdWVzKWNyeXB0by5nZXRSYW5kb21WYWx1ZXModCk7ZWxzZSBmb3IobGV0IGU9MDtlPDMyO2UrKyl0W2VdPU1hdGguZmxvb3IoMjU1Kk1hdGgucmFuZG9tKCkpO3JldHVybiBMKHQpfSgpOyN5PTA7I3c9bnVsbDtzdGF0aWMgZ2V0IF9pc1NWR0ZpdHRpbmdDYW52YXMoKXtjb25zdCB0PW5ldyBPZmZzY3JlZW5DYW52YXMoMSwzKS5nZXRDb250ZXh0KCIyZCIse3dpbGxSZWFkRnJlcXVlbnRseTohMH0pLGU9bmV3IEltYWdlO3JldHVybiBlLnNyYz0nZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsPHN2ZyB2aWV3Qm94PSIwIDAgMSAxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHN0eWxlPSJmaWxsOnJlZDsiLz48L3N2Zz4nLEModGhpcywiX2lzU1ZHRml0dGluZ0NhbnZhcyIsZS5kZWNvZGUoKS50aGVuKCgoKT0+KHQuZHJhd0ltYWdlKGUsMCwwLDEsMSwwLDAsMSwzKSwwPT09bmV3IFVpbnQzMkFycmF5KHQuZ2V0SW1hZ2VEYXRhKDAsMCwxLDEpLmRhdGEuYnVmZmVyKVswXSkpKSl9YXN5bmMjeCh0LGUpe3RoaXMuI3d8fD1uZXcgTWFwO2xldCBpPXRoaXMuI3cuZ2V0KHQpO2lmKG51bGw9PT1pKXJldHVybiBudWxsO2lmKGk/LmJpdG1hcClyZXR1cm4gaS5yZWZDb3VudGVyKz0xLGk7dHJ5e2xldCB0O2lmKGl8fD17Yml0bWFwOm51bGwsaWQ6YGltYWdlXyR7dGhpcy4jQX1fJHt0aGlzLiN5Kyt9YCxyZWZDb3VudGVyOjAsaXNTdmc6ITF9LCJzdHJpbmciPT10eXBlb2YgZT8oaS51cmw9ZSx0PWF3YWl0IFEoZSwiYmxvYiIpKTplIGluc3RhbmNlb2YgRmlsZT90PWkuZmlsZT1lOmUgaW5zdGFuY2VvZiBCbG9iJiYodD1lKSwiaW1hZ2Uvc3ZnK3htbCI9PT10LnR5cGUpe2NvbnN0IGU9X3QuX2lzU1ZHRml0dGluZ0NhbnZhcyxzPW5ldyBGaWxlUmVhZGVyLG49bmV3IEltYWdlLHI9bmV3IFByb21pc2UoKCh0LHIpPT57bi5vbmxvYWQ9KCk9PntpLmJpdG1hcD1uLGkuaXNTdmc9ITAsdCgpfSxzLm9ubG9hZD1hc3luYygpPT57Y29uc3QgdD1pLnN2Z1VybD1zLnJlc3VsdDtuLnNyYz1hd2FpdCBlP2Ake3R9I3N2Z1ZpZXcocHJlc2VydmVBc3BlY3RSYXRpbyhub25lKSlgOnR9LG4ub25lcnJvcj1zLm9uZXJyb3I9cn0pKTtzLnJlYWRBc0RhdGFVUkwodCksYXdhaXQgcn1lbHNlIGkuYml0bWFwPWF3YWl0IGNyZWF0ZUltYWdlQml0bWFwKHQpO2kucmVmQ291bnRlcj0xfWNhdGNoKHQpe2NvbnNvbGUuZXJyb3IodCksaT1udWxsfXJldHVybiB0aGlzLiN3LnNldCh0LGkpLGkmJnRoaXMuI3cuc2V0KGkuaWQsaSksaX1hc3luYyBnZXRGcm9tRmlsZSh0KXtjb25zdHtsYXN0TW9kaWZpZWQ6ZSxuYW1lOmksc2l6ZTpzLHR5cGU6bn09dDtyZXR1cm4gdGhpcy4jeChgJHtlfV8ke2l9XyR7c31fJHtufWAsdCl9YXN5bmMgZ2V0RnJvbVVybCh0KXtyZXR1cm4gdGhpcy4jeCh0LHQpfWFzeW5jIGdldEZyb21CbG9iKHQsZSl7Y29uc3QgaT1hd2FpdCBlO3JldHVybiB0aGlzLiN4KHQsaSl9YXN5bmMgZ2V0RnJvbUlkKHQpe3RoaXMuI3d8fD1uZXcgTWFwO2NvbnN0IGU9dGhpcy4jdy5nZXQodCk7aWYoIWUpcmV0dXJuIG51bGw7aWYoZS5iaXRtYXApcmV0dXJuIGUucmVmQ291bnRlcis9MSxlO2lmKGUuZmlsZSlyZXR1cm4gdGhpcy5nZXRGcm9tRmlsZShlLmZpbGUpO2lmKGUuYmxvYlByb21pc2Upe2NvbnN0e2Jsb2JQcm9taXNlOnR9PWU7cmV0dXJuIGRlbGV0ZSBlLmJsb2JQcm9taXNlLHRoaXMuZ2V0RnJvbUJsb2IoZS5pZCx0KX1yZXR1cm4gdGhpcy5nZXRGcm9tVXJsKGUudXJsKX1nZXRGcm9tQ2FudmFzKHQsZSl7dGhpcy4jd3x8PW5ldyBNYXA7bGV0IGk9dGhpcy4jdy5nZXQodCk7aWYoaT8uYml0bWFwKXJldHVybiBpLnJlZkNvdW50ZXIrPTEsaTtjb25zdCBzPW5ldyBPZmZzY3JlZW5DYW52YXMoZS53aWR0aCxlLmhlaWdodCk7cmV0dXJuIHMuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UoZSwwLDApLGk9e2JpdG1hcDpzLnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpLGlkOmBpbWFnZV8ke3RoaXMuI0F9XyR7dGhpcy4jeSsrfWAscmVmQ291bnRlcjoxLGlzU3ZnOiExfSx0aGlzLiN3LnNldCh0LGkpLHRoaXMuI3cuc2V0KGkuaWQsaSksaX1nZXRTdmdVcmwodCl7Y29uc3QgZT10aGlzLiN3LmdldCh0KTtyZXR1cm4gZT8uaXNTdmc/ZS5zdmdVcmw6bnVsbH1kZWxldGVJZCh0KXt0aGlzLiN3fHw9bmV3IE1hcDtjb25zdCBlPXRoaXMuI3cuZ2V0KHQpO2lmKCFlKXJldHVybjtpZihlLnJlZkNvdW50ZXItPTEsMCE9PWUucmVmQ291bnRlcilyZXR1cm47Y29uc3R7Yml0bWFwOml9PWU7aWYoIWUudXJsJiYhZS5maWxlKXtjb25zdCB0PW5ldyBPZmZzY3JlZW5DYW52YXMoaS53aWR0aCxpLmhlaWdodCk7dC5nZXRDb250ZXh0KCJiaXRtYXByZW5kZXJlciIpLnRyYW5zZmVyRnJvbUltYWdlQml0bWFwKGkpLGUuYmxvYlByb21pc2U9dC5jb252ZXJ0VG9CbG9iKCl9aS5jbG9zZT8uKCksZS5iaXRtYXA9bnVsbH1pc1ZhbGlkSWQodCl7cmV0dXJuIHQuc3RhcnRzV2l0aChgaW1hZ2VfJHt0aGlzLiNBfV9gKX19Y2xhc3MgRXR7I189W107I0U9ITE7I0M7I1M9LTE7Y29uc3RydWN0b3IodD0xMjgpe3RoaXMuI0M9dH1hZGQoe2NtZDp0LHVuZG86ZSxwb3N0OmksbXVzdEV4ZWM6cyx0eXBlOm49TmFOLG92ZXJ3cml0ZUlmU2FtZVR5cGU6cj0hMSxrZWVwVW5kbzphPSExfSl7aWYocyYmdCgpLHRoaXMuI0UpcmV0dXJuO2NvbnN0IG89e2NtZDp0LHVuZG86ZSxwb3N0OmksdHlwZTpufTtpZigtMT09PXRoaXMuI1MpcmV0dXJuIHRoaXMuI18ubGVuZ3RoPjAmJih0aGlzLiNfLmxlbmd0aD0wKSx0aGlzLiNTPTAsdm9pZCB0aGlzLiNfLnB1c2gobyk7aWYociYmdGhpcy4jX1t0aGlzLiNTXS50eXBlPT09bilyZXR1cm4gYSYmKG8udW5kbz10aGlzLiNfW3RoaXMuI1NdLnVuZG8pLHZvaWQodGhpcy4jX1t0aGlzLiNTXT1vKTtjb25zdCBoPXRoaXMuI1MrMTtoPT09dGhpcy4jQz90aGlzLiNfLnNwbGljZSgwLDEpOih0aGlzLiNTPWgsaDx0aGlzLiNfLmxlbmd0aCYmdGhpcy4jXy5zcGxpY2UoaCkpLHRoaXMuI18ucHVzaChvKX11bmRvKCl7aWYoLTE9PT10aGlzLiNTKXJldHVybjt0aGlzLiNFPSEwO2NvbnN0e3VuZG86dCxwb3N0OmV9PXRoaXMuI19bdGhpcy4jU107dCgpLGU/LigpLHRoaXMuI0U9ITEsdGhpcy4jUy09MX1yZWRvKCl7aWYodGhpcy4jUzx0aGlzLiNfLmxlbmd0aC0xKXt0aGlzLiNTKz0xLHRoaXMuI0U9ITA7Y29uc3R7Y21kOnQscG9zdDplfT10aGlzLiNfW3RoaXMuI1NdO3QoKSxlPy4oKSx0aGlzLiNFPSExfX1oYXNTb21ldGhpbmdUb1VuZG8oKXtyZXR1cm4tMSE9PXRoaXMuI1N9aGFzU29tZXRoaW5nVG9SZWRvKCl7cmV0dXJuIHRoaXMuI1M8dGhpcy4jXy5sZW5ndGgtMX1kZXN0cm95KCl7dGhpcy4jXz1udWxsfX1jbGFzcyBDdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLmJ1ZmZlcj1bXSx0aGlzLmNhbGxiYWNrcz1uZXcgTWFwLHRoaXMuYWxsS2V5cz1uZXcgU2V0O2NvbnN0e2lzTWFjOmV9PU4ucGxhdGZvcm07Zm9yKGNvbnN0W2kscyxuPXt9XW9mIHQpZm9yKGNvbnN0IHQgb2YgaSl7Y29uc3QgaT10LnN0YXJ0c1dpdGgoIm1hYysiKTtlJiZpPyh0aGlzLmNhbGxiYWNrcy5zZXQodC5zbGljZSg0KSx7Y2FsbGJhY2s6cyxvcHRpb25zOm59KSx0aGlzLmFsbEtleXMuYWRkKHQuc3BsaXQoIisiKS5hdCgtMSkpKTplfHxpfHwodGhpcy5jYWxsYmFja3Muc2V0KHQse2NhbGxiYWNrOnMsb3B0aW9uczpufSksdGhpcy5hbGxLZXlzLmFkZCh0LnNwbGl0KCIrIikuYXQoLTEpKSl9fSNUKHQpe3QuYWx0S2V5JiZ0aGlzLmJ1ZmZlci5wdXNoKCJhbHQiKSx0LmN0cmxLZXkmJnRoaXMuYnVmZmVyLnB1c2goImN0cmwiKSx0Lm1ldGFLZXkmJnRoaXMuYnVmZmVyLnB1c2goIm1ldGEiKSx0LnNoaWZ0S2V5JiZ0aGlzLmJ1ZmZlci5wdXNoKCJzaGlmdCIpLHRoaXMuYnVmZmVyLnB1c2godC5rZXkpO2NvbnN0IGU9dGhpcy5idWZmZXIuam9pbigiKyIpO3JldHVybiB0aGlzLmJ1ZmZlci5sZW5ndGg9MCxlfWV4ZWModCxlKXtpZighdGhpcy5hbGxLZXlzLmhhcyhlLmtleSkpcmV0dXJuO2NvbnN0IGk9dGhpcy5jYWxsYmFja3MuZ2V0KHRoaXMuI1QoZSkpO2lmKCFpKXJldHVybjtjb25zdHtjYWxsYmFjazpzLG9wdGlvbnM6e2J1YmJsZXM6bj0hMSxhcmdzOnI9W10sY2hlY2tlcjphPW51bGx9fT1pO2EmJiFhKHQsZSl8fChzLmJpbmQodCwuLi5yLGUpKCksbnx8KGUuc3RvcFByb3BhZ2F0aW9uKCksZS5wcmV2ZW50RGVmYXVsdCgpKSl9fWNsYXNzIFN0e3N0YXRpYyBfY29sb3JzTWFwcGluZz1uZXcgTWFwKFtbIkNhbnZhc1RleHQiLFswLDAsMF1dLFsiQ2FudmFzIixbMjU1LDI1NSwyNTVdXV0pO2dldCBfY29sb3JzKCl7Y29uc3QgdD1uZXcgTWFwKFtbIkNhbnZhc1RleHQiLG51bGxdLFsiQ2FudmFzIixudWxsXV0pO3JldHVybiBmdW5jdGlvbih0KXtjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtlLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIsZG9jdW1lbnQuYm9keS5hcHBlbmQoZSk7Zm9yKGNvbnN0IGkgb2YgdC5rZXlzKCkpe2Uuc3R5bGUuY29sb3I9aTtjb25zdCBzPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUpLmNvbG9yO3Quc2V0KGksZ3QocykpfWUucmVtb3ZlKCl9KHQpLEModGhpcywiX2NvbG9ycyIsdCl9Y29udmVydCh0KXtjb25zdCBlPWd0KHQpO2lmKCF3aW5kb3cubWF0Y2hNZWRpYSgiKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkiKS5tYXRjaGVzKXJldHVybiBlO2Zvcihjb25zdFt0LGldb2YgdGhpcy5fY29sb3JzKWlmKGkuZXZlcnkoKCh0LGkpPT50PT09ZVtpXSkpKXJldHVybiBTdC5fY29sb3JzTWFwcGluZy5nZXQodCk7cmV0dXJuIGV9Z2V0SGV4Q29kZSh0KXtjb25zdCBlPXRoaXMuX2NvbG9ycy5nZXQodCk7cmV0dXJuIGU/ei5tYWtlSGV4Q29sb3IoLi4uZSk6dH19Y2xhc3MgVHR7I009bmV3IEFib3J0Q29udHJvbGxlcjsjaz1udWxsOyNJPW5ldyBNYXA7I1I9bmV3IE1hcDsjUD1udWxsOyNEPW51bGw7I0w9bnVsbDsjRj1uZXcgRXQ7I089bnVsbDsjTj0wOyNCPW5ldyBTZXQ7I3o9bnVsbDsjSD1udWxsOyNqPW5ldyBTZXQ7I1U9ITE7IyQ9ITE7I1c9ITE7I0c9bnVsbDsjVj1udWxsOyNxPW51bGw7I1g9bnVsbDsjSz0hMTsjWT1udWxsOyNRPW5ldyB4dDsjSj0hMTsjWj0hMTsjdHQ9bnVsbDsjZXQ9bnVsbDsjaXQ9bnVsbDsjc3Q9bnVsbDsjbnQ9bC5OT05FOyNydD1uZXcgU2V0OyNhdD1udWxsOyNvdD1udWxsOyNodD1udWxsOyNsdD17aXNFZGl0aW5nOiExLGlzRW1wdHk6ITAsaGFzU29tZXRoaW5nVG9VbmRvOiExLGhhc1NvbWV0aGluZ1RvUmVkbzohMSxoYXNTZWxlY3RlZEVkaXRvcjohMSxoYXNTZWxlY3RlZFRleHQ6ITF9OyNjdD1bMCwwXTsjZHQ9bnVsbDsjdXQ9bnVsbDsjcHQ9bnVsbDsjZ3Q9bnVsbDtzdGF0aWMgVFJBTlNMQVRFX1NNQUxMPTE7c3RhdGljIFRSQU5TTEFURV9CSUc9MTA7c3RhdGljIGdldCBfa2V5Ym9hcmRNYW5hZ2VyKCl7Y29uc3QgdD1UdC5wcm90b3R5cGUsZT10PT50LiN1dC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSYmIkJVVFRPTiIhPT1kb2N1bWVudC5hY3RpdmVFbGVtZW50LnRhZ05hbWUmJnQuaGFzU29tZXRoaW5nVG9Db250cm9sKCksaT0odCx7dGFyZ2V0OmV9KT0+e2lmKGUgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KXtjb25zdHt0eXBlOnR9PWU7cmV0dXJuInRleHQiIT09dCYmIm51bWJlciIhPT10fXJldHVybiEwfSxzPXRoaXMuVFJBTlNMQVRFX1NNQUxMLG49dGhpcy5UUkFOU0xBVEVfQklHO3JldHVybiBDKHRoaXMsIl9rZXlib2FyZE1hbmFnZXIiLG5ldyBDdChbW1siY3RybCthIiwibWFjK21ldGErYSJdLHQuc2VsZWN0QWxsLHtjaGVja2VyOml9XSxbWyJjdHJsK3oiLCJtYWMrbWV0YSt6Il0sdC51bmRvLHtjaGVja2VyOml9XSxbWyJjdHJsK3kiLCJjdHJsK3NoaWZ0K3oiLCJtYWMrbWV0YStzaGlmdCt6IiwiY3RybCtzaGlmdCtaIiwibWFjK21ldGErc2hpZnQrWiJdLHQucmVkbyx7Y2hlY2tlcjppfV0sW1siQmFja3NwYWNlIiwiYWx0K0JhY2tzcGFjZSIsImN0cmwrQmFja3NwYWNlIiwic2hpZnQrQmFja3NwYWNlIiwibWFjK0JhY2tzcGFjZSIsIm1hYythbHQrQmFja3NwYWNlIiwibWFjK2N0cmwrQmFja3NwYWNlIiwiRGVsZXRlIiwiY3RybCtEZWxldGUiLCJzaGlmdCtEZWxldGUiLCJtYWMrRGVsZXRlIl0sdC5kZWxldGUse2NoZWNrZXI6aX1dLFtbIkVudGVyIiwibWFjK0VudGVyIl0sdC5hZGROZXdFZGl0b3JGcm9tS2V5Ym9hcmQse2NoZWNrZXI6KHQse3RhcmdldDplfSk9PiEoZSBpbnN0YW5jZW9mIEhUTUxCdXR0b25FbGVtZW50KSYmdC4jdXQuY29udGFpbnMoZSkmJiF0LmlzRW50ZXJIYW5kbGVkfV0sW1siICIsIm1hYysgIl0sdC5hZGROZXdFZGl0b3JGcm9tS2V5Ym9hcmQse2NoZWNrZXI6KHQse3RhcmdldDplfSk9PiEoZSBpbnN0YW5jZW9mIEhUTUxCdXR0b25FbGVtZW50KSYmdC4jdXQuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCl9XSxbWyJFc2NhcGUiLCJtYWMrRXNjYXBlIl0sdC51bnNlbGVjdEFsbF0sW1siQXJyb3dMZWZ0IiwibWFjK0Fycm93TGVmdCJdLHQudHJhbnNsYXRlU2VsZWN0ZWRFZGl0b3JzLHthcmdzOlstcywwXSxjaGVja2VyOmV9XSxbWyJjdHJsK0Fycm93TGVmdCIsIm1hYytzaGlmdCtBcnJvd0xlZnQiXSx0LnRyYW5zbGF0ZVNlbGVjdGVkRWRpdG9ycyx7YXJnczpbLW4sMF0sY2hlY2tlcjplfV0sW1siQXJyb3dSaWdodCIsIm1hYytBcnJvd1JpZ2h0Il0sdC50cmFuc2xhdGVTZWxlY3RlZEVkaXRvcnMse2FyZ3M6W3MsMF0sY2hlY2tlcjplfV0sW1siY3RybCtBcnJvd1JpZ2h0IiwibWFjK3NoaWZ0K0Fycm93UmlnaHQiXSx0LnRyYW5zbGF0ZVNlbGVjdGVkRWRpdG9ycyx7YXJnczpbbiwwXSxjaGVja2VyOmV9XSxbWyJBcnJvd1VwIiwibWFjK0Fycm93VXAiXSx0LnRyYW5zbGF0ZVNlbGVjdGVkRWRpdG9ycyx7YXJnczpbMCwtc10sY2hlY2tlcjplfV0sW1siY3RybCtBcnJvd1VwIiwibWFjK3NoaWZ0K0Fycm93VXAiXSx0LnRyYW5zbGF0ZVNlbGVjdGVkRWRpdG9ycyx7YXJnczpbMCwtbl0sY2hlY2tlcjplfV0sW1siQXJyb3dEb3duIiwibWFjK0Fycm93RG93biJdLHQudHJhbnNsYXRlU2VsZWN0ZWRFZGl0b3JzLHthcmdzOlswLHNdLGNoZWNrZXI6ZX1dLFtbImN0cmwrQXJyb3dEb3duIiwibWFjK3NoaWZ0K0Fycm93RG93biJdLHQudHJhbnNsYXRlU2VsZWN0ZWRFZGl0b3JzLHthcmdzOlswLG5dLGNoZWNrZXI6ZX1dXSkpfWNvbnN0cnVjdG9yKHQsZSxpLHMsbixyLGEsbyxoLGwsYyl7Y29uc3QgZD10aGlzLl9zaWduYWw9dGhpcy4jTS5zaWduYWw7dGhpcy4jdXQ9dCx0aGlzLiNwdD1lLHRoaXMuI1A9aSx0aGlzLl9ldmVudEJ1cz1zLHMuX29uKCJlZGl0aW5nYWN0aW9uIix0aGlzLm9uRWRpdGluZ0FjdGlvbi5iaW5kKHRoaXMpLHtzaWduYWw6ZH0pLHMuX29uKCJwYWdlY2hhbmdpbmciLHRoaXMub25QYWdlQ2hhbmdpbmcuYmluZCh0aGlzKSx7c2lnbmFsOmR9KSxzLl9vbigic2NhbGVjaGFuZ2luZyIsdGhpcy5vblNjYWxlQ2hhbmdpbmcuYmluZCh0aGlzKSx7c2lnbmFsOmR9KSxzLl9vbigicm90YXRpb25jaGFuZ2luZyIsdGhpcy5vblJvdGF0aW9uQ2hhbmdpbmcuYmluZCh0aGlzKSx7c2lnbmFsOmR9KSxzLl9vbigic2V0cHJlZmVyZW5jZSIsdGhpcy5vblNldFByZWZlcmVuY2UuYmluZCh0aGlzKSx7c2lnbmFsOmR9KSxzLl9vbigic3dpdGNoYW5ub3RhdGlvbmVkaXRvcnBhcmFtcyIsKHQ9PnRoaXMudXBkYXRlUGFyYW1zKHQudHlwZSx0LnZhbHVlKSkse3NpZ25hbDpkfSksdGhpcy4jZnQoKSx0aGlzLiNtdCgpLHRoaXMuI2J0KCksdGhpcy4jRD1uLmFubm90YXRpb25TdG9yYWdlLHRoaXMuI0c9bi5maWx0ZXJGYWN0b3J5LHRoaXMuI290PXIsdGhpcy4jWD1hfHxudWxsLHRoaXMuI1U9byx0aGlzLiMkPWgsdGhpcy4jVz1sLHRoaXMuI3N0PWN8fG51bGwsdGhpcy52aWV3UGFyYW1ldGVycz17cmVhbFNjYWxlOlkuUERGX1RPX0NTU19VTklUUyxyb3RhdGlvbjowfSx0aGlzLmlzU2hpZnRLZXlEb3duPSExfWRlc3Ryb3koKXt0aGlzLiNndD8ucmVzb2x2ZSgpLHRoaXMuI2d0PW51bGwsdGhpcy4jTT8uYWJvcnQoKSx0aGlzLiNNPW51bGwsdGhpcy5fc2lnbmFsPW51bGw7Zm9yKGNvbnN0IHQgb2YgdGhpcy4jUi52YWx1ZXMoKSl0LmRlc3Ryb3koKTt0aGlzLiNSLmNsZWFyKCksdGhpcy4jSS5jbGVhcigpLHRoaXMuI2ouY2xlYXIoKSx0aGlzLiNrPW51bGwsdGhpcy4jcnQuY2xlYXIoKSx0aGlzLiNGLmRlc3Ryb3koKSx0aGlzLiNQPy5kZXN0cm95KCksdGhpcy4jWT8uaGlkZSgpLHRoaXMuI1k9bnVsbCx0aGlzLiNWJiYoY2xlYXJUaW1lb3V0KHRoaXMuI1YpLHRoaXMuI1Y9bnVsbCksdGhpcy4jZHQmJihjbGVhclRpbWVvdXQodGhpcy4jZHQpLHRoaXMuI2R0PW51bGwpfWNvbWJpbmVkU2lnbmFsKHQpe3JldHVybiBBYm9ydFNpZ25hbC5hbnkoW3RoaXMuX3NpZ25hbCx0LnNpZ25hbF0pfWdldCBtbE1hbmFnZXIoKXtyZXR1cm4gdGhpcy4jc3R9Z2V0IHVzZU5ld0FsdFRleHRGbG93KCl7cmV0dXJuIHRoaXMuIyR9Z2V0IHVzZU5ld0FsdFRleHRXaGVuQWRkaW5nSW1hZ2UoKXtyZXR1cm4gdGhpcy4jV31nZXQgaGNtRmlsdGVyKCl7cmV0dXJuIEModGhpcywiaGNtRmlsdGVyIix0aGlzLiNvdD90aGlzLiNHLmFkZEhDTUZpbHRlcih0aGlzLiNvdC5mb3JlZ3JvdW5kLHRoaXMuI290LmJhY2tncm91bmQpOiJub25lIil9Z2V0IGRpcmVjdGlvbigpe3JldHVybiBDKHRoaXMsImRpcmVjdGlvbiIsZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLiN1dCkuZGlyZWN0aW9uKX1nZXQgaGlnaGxpZ2h0Q29sb3JzKCl7cmV0dXJuIEModGhpcywiaGlnaGxpZ2h0Q29sb3JzIix0aGlzLiNYP25ldyBNYXAodGhpcy4jWC5zcGxpdCgiLCIpLm1hcCgodD0+dC5zcGxpdCgiPSIpLm1hcCgodD0+dC50cmltKCkpKSkpKTpudWxsKX1nZXQgaGlnaGxpZ2h0Q29sb3JOYW1lcygpe3JldHVybiBDKHRoaXMsImhpZ2hsaWdodENvbG9yTmFtZXMiLHRoaXMuaGlnaGxpZ2h0Q29sb3JzP25ldyBNYXAoQXJyYXkuZnJvbSh0aGlzLmhpZ2hsaWdodENvbG9ycywodD0+dC5yZXZlcnNlKCkpKSk6bnVsbCl9c2V0TWFpbkhpZ2hsaWdodENvbG9yUGlja2VyKHQpe3RoaXMuI2l0PXR9ZWRpdEFsdFRleHQodCxlPSExKXt0aGlzLiNQPy5lZGl0QWx0VGV4dCh0aGlzLHQsZSl9c3dpdGNoVG9Nb2RlKHQsZSl7dGhpcy5fZXZlbnRCdXMub24oImFubm90YXRpb25lZGl0b3Jtb2RlY2hhbmdlZCIsZSx7b25jZTohMCxzaWduYWw6dGhpcy5fc2lnbmFsfSksdGhpcy5fZXZlbnRCdXMuZGlzcGF0Y2goInNob3dhbm5vdGF0aW9uZWRpdG9ydWkiLHtzb3VyY2U6dGhpcyxtb2RlOnR9KX1zZXRQcmVmZXJlbmNlKHQsZSl7dGhpcy5fZXZlbnRCdXMuZGlzcGF0Y2goInNldHByZWZlcmVuY2UiLHtzb3VyY2U6dGhpcyxuYW1lOnQsdmFsdWU6ZX0pfW9uU2V0UHJlZmVyZW5jZSh7bmFtZTp0LHZhbHVlOmV9KXsiZW5hYmxlTmV3QWx0VGV4dFdoZW5BZGRpbmdJbWFnZSI9PT10JiYodGhpcy4jVz1lKX1vblBhZ2VDaGFuZ2luZyh7cGFnZU51bWJlcjp0fSl7dGhpcy4jTj10LTF9Zm9jdXNNYWluQ29udGFpbmVyKCl7dGhpcy4jdXQuZm9jdXMoKX1maW5kUGFyZW50KHQsZSl7Zm9yKGNvbnN0IGkgb2YgdGhpcy4jUi52YWx1ZXMoKSl7Y29uc3R7eDpzLHk6bix3aWR0aDpyLGhlaWdodDphfT1pLmRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZih0Pj1zJiZ0PD1zK3ImJmU+PW4mJmU8PW4rYSlyZXR1cm4gaX1yZXR1cm4gbnVsbH1kaXNhYmxlVXNlclNlbGVjdCh0PSExKXt0aGlzLiNwdC5jbGFzc0xpc3QudG9nZ2xlKCJub1VzZXJTZWxlY3QiLHQpfWFkZFNob3VsZFJlc2NhbGUodCl7dGhpcy4jai5hZGQodCl9cmVtb3ZlU2hvdWxkUmVzY2FsZSh0KXt0aGlzLiNqLmRlbGV0ZSh0KX1vblNjYWxlQ2hhbmdpbmcoe3NjYWxlOnR9KXt0aGlzLmNvbW1pdE9yUmVtb3ZlKCksdGhpcy52aWV3UGFyYW1ldGVycy5yZWFsU2NhbGU9dCpZLlBERl9UT19DU1NfVU5JVFM7Zm9yKGNvbnN0IHQgb2YgdGhpcy4jail0Lm9uU2NhbGVDaGFuZ2luZygpfW9uUm90YXRpb25DaGFuZ2luZyh7cGFnZXNSb3RhdGlvbjp0fSl7dGhpcy5jb21taXRPclJlbW92ZSgpLHRoaXMudmlld1BhcmFtZXRlcnMucm90YXRpb249dH0jdnQoe2FuY2hvck5vZGU6dH0pe3JldHVybiB0Lm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREU/dC5wYXJlbnRFbGVtZW50OnR9I3l0KHQpe2NvbnN0e2N1cnJlbnRMYXllcjplfT10aGlzO2lmKGUuaGFzVGV4dExheWVyKHQpKXJldHVybiBlO2Zvcihjb25zdCBlIG9mIHRoaXMuI1IudmFsdWVzKCkpaWYoZS5oYXNUZXh0TGF5ZXIodCkpcmV0dXJuIGU7cmV0dXJuIG51bGx9aGlnaGxpZ2h0U2VsZWN0aW9uKHQ9IiIpe2NvbnN0IGU9ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCk7aWYoIWV8fGUuaXNDb2xsYXBzZWQpcmV0dXJuO2NvbnN0e2FuY2hvck5vZGU6aSxhbmNob3JPZmZzZXQ6cyxmb2N1c05vZGU6bixmb2N1c09mZnNldDpyfT1lLGE9ZS50b1N0cmluZygpLG89dGhpcy4jdnQoZSkuY2xvc2VzdCgiLnRleHRMYXllciIpLGg9dGhpcy5nZXRTZWxlY3Rpb25Cb3hlcyhvKTtpZighaClyZXR1cm47ZS5lbXB0eSgpO2NvbnN0IGM9dGhpcy4jeXQobyksZD10aGlzLiNudD09PWwuTk9ORSx1PSgpPT57Yz8uY3JlYXRlQW5kQWRkTmV3RWRpdG9yKHt4OjAseTowfSwhMSx7bWV0aG9kT2ZDcmVhdGlvbjp0LGJveGVzOmgsYW5jaG9yTm9kZTppLGFuY2hvck9mZnNldDpzLGZvY3VzTm9kZTpuLGZvY3VzT2Zmc2V0OnIsdGV4dDphfSksZCYmdGhpcy5zaG93QWxsRWRpdG9ycygiaGlnaGxpZ2h0IiwhMCwhMCl9O2Q/dGhpcy5zd2l0Y2hUb01vZGUobC5ISUdITElHSFQsdSk6dSgpfSNBdCgpe2NvbnN0IHQ9ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCk7aWYoIXR8fHQuaXNDb2xsYXBzZWQpcmV0dXJuO2NvbnN0IGU9dGhpcy4jdnQodCkuY2xvc2VzdCgiLnRleHRMYXllciIpLGk9dGhpcy5nZXRTZWxlY3Rpb25Cb3hlcyhlKTtpJiYodGhpcy4jWXx8PW5ldyBBdCh0aGlzKSx0aGlzLiNZLnNob3coZSxpLCJsdHIiPT09dGhpcy5kaXJlY3Rpb24pKX1hZGRUb0Fubm90YXRpb25TdG9yYWdlKHQpe3QuaXNFbXB0eSgpfHwhdGhpcy4jRHx8dGhpcy4jRC5oYXModC5pZCl8fHRoaXMuI0Quc2V0VmFsdWUodC5pZCx0KX0jd3QoKXtjb25zdCB0PWRvY3VtZW50LmdldFNlbGVjdGlvbigpO2lmKCF0fHx0LmlzQ29sbGFwc2VkKXJldHVybiB2b2lkKHRoaXMuI2F0JiYodGhpcy4jWT8uaGlkZSgpLHRoaXMuI2F0PW51bGwsdGhpcy4jeHQoe2hhc1NlbGVjdGVkVGV4dDohMX0pKSk7Y29uc3R7YW5jaG9yTm9kZTplfT10O2lmKGU9PT10aGlzLiNhdClyZXR1cm47Y29uc3QgaT10aGlzLiN2dCh0KS5jbG9zZXN0KCIudGV4dExheWVyIik7aWYoaSl7aWYodGhpcy4jWT8uaGlkZSgpLHRoaXMuI2F0PWUsdGhpcy4jeHQoe2hhc1NlbGVjdGVkVGV4dDohMH0pLCh0aGlzLiNudD09PWwuSElHSExJR0hUfHx0aGlzLiNudD09PWwuTk9ORSkmJih0aGlzLiNudD09PWwuSElHSExJR0hUJiZ0aGlzLnNob3dBbGxFZGl0b3JzKCJoaWdobGlnaHQiLCEwLCEwKSx0aGlzLiNLPXRoaXMuaXNTaGlmdEtleURvd24sIXRoaXMuaXNTaGlmdEtleURvd24pKXtjb25zdCB0PXRoaXMuI250PT09bC5ISUdITElHSFQ/dGhpcy4jeXQoaSk6bnVsbDt0Py50b2dnbGVEcmF3aW5nKCk7Y29uc3QgZT1uZXcgQWJvcnRDb250cm9sbGVyLHM9dGhpcy5jb21iaW5lZFNpZ25hbChlKSxuPWk9PnsicG9pbnRlcnVwIj09PWkudHlwZSYmMCE9PWkuYnV0dG9ufHwoZS5hYm9ydCgpLHQ/LnRvZ2dsZURyYXdpbmcoITApLCJwb2ludGVydXAiPT09aS50eXBlJiZ0aGlzLiNfdCgibWFpbl90b29sYmFyIikpfTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixuLHtzaWduYWw6c30pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJibHVyIixuLHtzaWduYWw6c30pfX1lbHNlIHRoaXMuI2F0JiYodGhpcy4jWT8uaGlkZSgpLHRoaXMuI2F0PW51bGwsdGhpcy4jeHQoe2hhc1NlbGVjdGVkVGV4dDohMX0pKX0jX3QodD0iIil7dGhpcy4jbnQ9PT1sLkhJR0hMSUdIVD90aGlzLmhpZ2hsaWdodFNlbGVjdGlvbih0KTp0aGlzLiNVJiZ0aGlzLiNBdCgpfSNmdCgpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsdGhpcy4jd3QuYmluZCh0aGlzKSx7c2lnbmFsOnRoaXMuX3NpZ25hbH0pfSNFdCgpe2lmKHRoaXMuI3EpcmV0dXJuO3RoaXMuI3E9bmV3IEFib3J0Q29udHJvbGxlcjtjb25zdCB0PXRoaXMuY29tYmluZWRTaWduYWwodGhpcy4jcSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLmZvY3VzLmJpbmQodGhpcykse3NpZ25hbDp0fSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLHRoaXMuYmx1ci5iaW5kKHRoaXMpLHtzaWduYWw6dH0pfSNDdCgpe3RoaXMuI3E/LmFib3J0KCksdGhpcy4jcT1udWxsfWJsdXIoKXtpZih0aGlzLmlzU2hpZnRLZXlEb3duPSExLHRoaXMuI0smJih0aGlzLiNLPSExLHRoaXMuI190KCJtYWluX3Rvb2xiYXIiKSksIXRoaXMuaGFzU2VsZWN0aW9uKXJldHVybjtjb25zdHthY3RpdmVFbGVtZW50OnR9PWRvY3VtZW50O2Zvcihjb25zdCBlIG9mIHRoaXMuI3J0KWlmKGUuZGl2LmNvbnRhaW5zKHQpKXt0aGlzLiNldD1bZSx0XSxlLl9mb2N1c0V2ZW50c0FsbG93ZWQ9ITE7YnJlYWt9fWZvY3VzKCl7aWYoIXRoaXMuI2V0KXJldHVybjtjb25zdFt0LGVdPXRoaXMuI2V0O3RoaXMuI2V0PW51bGwsZS5hZGRFdmVudExpc3RlbmVyKCJmb2N1c2luIiwoKCk9Pnt0Ll9mb2N1c0V2ZW50c0FsbG93ZWQ9ITB9KSx7b25jZTohMCxzaWduYWw6dGhpcy5fc2lnbmFsfSksZS5mb2N1cygpfSNidCgpe2lmKHRoaXMuI3R0KXJldHVybjt0aGlzLiN0dD1uZXcgQWJvcnRDb250cm9sbGVyO2NvbnN0IHQ9dGhpcy5jb21iaW5lZFNpZ25hbCh0aGlzLiN0dCk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMua2V5ZG93bi5iaW5kKHRoaXMpLHtzaWduYWw6dH0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcy5rZXl1cC5iaW5kKHRoaXMpLHtzaWduYWw6dH0pfSNTdCgpe3RoaXMuI3R0Py5hYm9ydCgpLHRoaXMuI3R0PW51bGx9I1R0KCl7aWYodGhpcy4jTylyZXR1cm47dGhpcy4jTz1uZXcgQWJvcnRDb250cm9sbGVyO2NvbnN0IHQ9dGhpcy5jb21iaW5lZFNpZ25hbCh0aGlzLiNPKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjb3B5Iix0aGlzLmNvcHkuYmluZCh0aGlzKSx7c2lnbmFsOnR9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjdXQiLHRoaXMuY3V0LmJpbmQodGhpcykse3NpZ25hbDp0fSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicGFzdGUiLHRoaXMucGFzdGUuYmluZCh0aGlzKSx7c2lnbmFsOnR9KX0jTXQoKXt0aGlzLiNPPy5hYm9ydCgpLHRoaXMuI089bnVsbH0jbXQoKXtjb25zdCB0PXRoaXMuX3NpZ25hbDtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsdGhpcy5kcmFnT3Zlci5iaW5kKHRoaXMpLHtzaWduYWw6dH0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLHRoaXMuZHJvcC5iaW5kKHRoaXMpLHtzaWduYWw6dH0pfWFkZEVkaXRMaXN0ZW5lcnMoKXt0aGlzLiNidCgpLHRoaXMuI1R0KCl9cmVtb3ZlRWRpdExpc3RlbmVycygpe3RoaXMuI1N0KCksdGhpcy4jTXQoKX1kcmFnT3Zlcih0KXtmb3IoY29uc3R7dHlwZTplfW9mIHQuZGF0YVRyYW5zZmVyLml0ZW1zKWZvcihjb25zdCBpIG9mIHRoaXMuI0gpaWYoaS5pc0hhbmRsaW5nTWltZUZvclBhc3RpbmcoZSkpcmV0dXJuIHQuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3Q9ImNvcHkiLHZvaWQgdC5wcmV2ZW50RGVmYXVsdCgpfWRyb3AodCl7Zm9yKGNvbnN0IGUgb2YgdC5kYXRhVHJhbnNmZXIuaXRlbXMpZm9yKGNvbnN0IGkgb2YgdGhpcy4jSClpZihpLmlzSGFuZGxpbmdNaW1lRm9yUGFzdGluZyhlLnR5cGUpKXJldHVybiBpLnBhc3RlKGUsdGhpcy5jdXJyZW50TGF5ZXIpLHZvaWQgdC5wcmV2ZW50RGVmYXVsdCgpfWNvcHkodCl7aWYodC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuI2s/LmNvbW1pdE9yUmVtb3ZlKCksIXRoaXMuaGFzU2VsZWN0aW9uKXJldHVybjtjb25zdCBlPVtdO2Zvcihjb25zdCB0IG9mIHRoaXMuI3J0KXtjb25zdCBpPXQuc2VyaWFsaXplKCEwKTtpJiZlLnB1c2goaSl9MCE9PWUubGVuZ3RoJiZ0LmNsaXBib2FyZERhdGEuc2V0RGF0YSgiYXBwbGljYXRpb24vcGRmanMiLEpTT04uc3RyaW5naWZ5KGUpKX1jdXQodCl7dGhpcy5jb3B5KHQpLHRoaXMuZGVsZXRlKCl9YXN5bmMgcGFzdGUodCl7dC5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0e2NsaXBib2FyZERhdGE6ZX09dDtmb3IoY29uc3QgdCBvZiBlLml0ZW1zKWZvcihjb25zdCBlIG9mIHRoaXMuI0gpaWYoZS5pc0hhbmRsaW5nTWltZUZvclBhc3RpbmcodC50eXBlKSlyZXR1cm4gdm9pZCBlLnBhc3RlKHQsdGhpcy5jdXJyZW50TGF5ZXIpO2xldCBpPWUuZ2V0RGF0YSgiYXBwbGljYXRpb24vcGRmanMiKTtpZighaSlyZXR1cm47dHJ5e2k9SlNPTi5wYXJzZShpKX1jYXRjaCh0KXtyZXR1cm4gdm9pZCB3KGBwYXN0ZTogIiR7dC5tZXNzYWdlfSIuYCl9aWYoIUFycmF5LmlzQXJyYXkoaSkpcmV0dXJuO3RoaXMudW5zZWxlY3RBbGwoKTtjb25zdCBzPXRoaXMuY3VycmVudExheWVyO3RyeXtjb25zdCB0PVtdO2Zvcihjb25zdCBlIG9mIGkpe2NvbnN0IGk9YXdhaXQgcy5kZXNlcmlhbGl6ZShlKTtpZighaSlyZXR1cm47dC5wdXNoKGkpfWNvbnN0IGU9KCk9Pntmb3IoY29uc3QgZSBvZiB0KXRoaXMuI2t0KGUpO3RoaXMuI0l0KHQpfSxuPSgpPT57Zm9yKGNvbnN0IGUgb2YgdCllLnJlbW92ZSgpfTt0aGlzLmFkZENvbW1hbmRzKHtjbWQ6ZSx1bmRvOm4sbXVzdEV4ZWM6ITB9KX1jYXRjaCh0KXt3KGBwYXN0ZTogIiR7dC5tZXNzYWdlfSIuYCl9fWtleWRvd24odCl7dGhpcy5pc1NoaWZ0S2V5RG93bnx8IlNoaWZ0IiE9PXQua2V5fHwodGhpcy5pc1NoaWZ0S2V5RG93bj0hMCksdGhpcy4jbnQ9PT1sLk5PTkV8fHRoaXMuaXNFZGl0b3JIYW5kbGluZ0tleWJvYXJkfHxUdC5fa2V5Ym9hcmRNYW5hZ2VyLmV4ZWModGhpcyx0KX1rZXl1cCh0KXt0aGlzLmlzU2hpZnRLZXlEb3duJiYiU2hpZnQiPT09dC5rZXkmJih0aGlzLmlzU2hpZnRLZXlEb3duPSExLHRoaXMuI0smJih0aGlzLiNLPSExLHRoaXMuI190KCJtYWluX3Rvb2xiYXIiKSkpfW9uRWRpdGluZ0FjdGlvbih7bmFtZTp0fSl7c3dpdGNoKHQpe2Nhc2UidW5kbyI6Y2FzZSJyZWRvIjpjYXNlImRlbGV0ZSI6Y2FzZSJzZWxlY3RBbGwiOnRoaXNbdF0oKTticmVhaztjYXNlImhpZ2hsaWdodFNlbGVjdGlvbiI6dGhpcy5oaWdobGlnaHRTZWxlY3Rpb24oImNvbnRleHRfbWVudSIpfX0jeHQodCl7T2JqZWN0LmVudHJpZXModCkuc29tZSgoKFt0LGVdKT0+dGhpcy4jbHRbdF0hPT1lKSkmJih0aGlzLl9ldmVudEJ1cy5kaXNwYXRjaCgiYW5ub3RhdGlvbmVkaXRvcnN0YXRlc2NoYW5nZWQiLHtzb3VyY2U6dGhpcyxkZXRhaWxzOk9iamVjdC5hc3NpZ24odGhpcy4jbHQsdCl9KSx0aGlzLiNudD09PWwuSElHSExJR0hUJiYhMT09PXQuaGFzU2VsZWN0ZWRFZGl0b3ImJnRoaXMuI1J0KFtbYy5ISUdITElHSFRfRlJFRSwhMF1dKSl9I1J0KHQpe3RoaXMuX2V2ZW50QnVzLmRpc3BhdGNoKCJhbm5vdGF0aW9uZWRpdG9ycGFyYW1zY2hhbmdlZCIse3NvdXJjZTp0aGlzLGRldGFpbHM6dH0pfXNldEVkaXRpbmdTdGF0ZSh0KXt0Pyh0aGlzLiNFdCgpLHRoaXMuI1R0KCksdGhpcy4jeHQoe2lzRWRpdGluZzp0aGlzLiNudCE9PWwuTk9ORSxpc0VtcHR5OnRoaXMuI1B0KCksaGFzU29tZXRoaW5nVG9VbmRvOnRoaXMuI0YuaGFzU29tZXRoaW5nVG9VbmRvKCksaGFzU29tZXRoaW5nVG9SZWRvOnRoaXMuI0YuaGFzU29tZXRoaW5nVG9SZWRvKCksaGFzU2VsZWN0ZWRFZGl0b3I6ITF9KSk6KHRoaXMuI0N0KCksdGhpcy4jTXQoKSx0aGlzLiN4dCh7aXNFZGl0aW5nOiExfSksdGhpcy5kaXNhYmxlVXNlclNlbGVjdCghMSkpfXJlZ2lzdGVyRWRpdG9yVHlwZXModCl7aWYoIXRoaXMuI0gpe3RoaXMuI0g9dDtmb3IoY29uc3QgdCBvZiB0aGlzLiNIKXRoaXMuI1J0KHQuZGVmYXVsdFByb3BlcnRpZXNUb1VwZGF0ZSl9fWdldElkKCl7cmV0dXJuIHRoaXMuI1EuaWR9Z2V0IGN1cnJlbnRMYXllcigpe3JldHVybiB0aGlzLiNSLmdldCh0aGlzLiNOKX1nZXRMYXllcih0KXtyZXR1cm4gdGhpcy4jUi5nZXQodCl9Z2V0IGN1cnJlbnRQYWdlSW5kZXgoKXtyZXR1cm4gdGhpcy4jTn1hZGRMYXllcih0KXt0aGlzLiNSLnNldCh0LnBhZ2VJbmRleCx0KSx0aGlzLiNKP3QuZW5hYmxlKCk6dC5kaXNhYmxlKCl9cmVtb3ZlTGF5ZXIodCl7dGhpcy4jUi5kZWxldGUodC5wYWdlSW5kZXgpfWFzeW5jIHVwZGF0ZU1vZGUodCxlPW51bGwsaT0hMSl7aWYodGhpcy4jbnQhPT10JiYoIXRoaXMuI2d0fHwoYXdhaXQgdGhpcy4jZ3QucHJvbWlzZSx0aGlzLiNndCkpKXtpZih0aGlzLiNndD1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKSx0aGlzLiNudD10LHQ9PT1sLk5PTkUpcmV0dXJuIHRoaXMuc2V0RWRpdGluZ1N0YXRlKCExKSx0aGlzLiNEdCgpLHZvaWQgdGhpcy4jZ3QucmVzb2x2ZSgpO3RoaXMuc2V0RWRpdGluZ1N0YXRlKCEwKSxhd2FpdCB0aGlzLiNMdCgpLHRoaXMudW5zZWxlY3RBbGwoKTtmb3IoY29uc3QgZSBvZiB0aGlzLiNSLnZhbHVlcygpKWUudXBkYXRlTW9kZSh0KTtpZighZSlyZXR1cm4gaSYmdGhpcy5hZGROZXdFZGl0b3JGcm9tS2V5Ym9hcmQoKSx2b2lkIHRoaXMuI2d0LnJlc29sdmUoKTtmb3IoY29uc3QgdCBvZiB0aGlzLiNJLnZhbHVlcygpKXQuYW5ub3RhdGlvbkVsZW1lbnRJZD09PWU/KHRoaXMuc2V0U2VsZWN0ZWQodCksdC5lbnRlckluRWRpdE1vZGUoKSk6dC51bnNlbGVjdCgpO3RoaXMuI2d0LnJlc29sdmUoKX19YWRkTmV3RWRpdG9yRnJvbUtleWJvYXJkKCl7dGhpcy5jdXJyZW50TGF5ZXIuY2FuQ3JlYXRlTmV3RW1wdHlFZGl0b3IoKSYmdGhpcy5jdXJyZW50TGF5ZXIuYWRkTmV3RWRpdG9yKCl9dXBkYXRlVG9vbGJhcih0KXt0IT09dGhpcy4jbnQmJnRoaXMuX2V2ZW50QnVzLmRpc3BhdGNoKCJzd2l0Y2hhbm5vdGF0aW9uZWRpdG9ybW9kZSIse3NvdXJjZTp0aGlzLG1vZGU6dH0pfXVwZGF0ZVBhcmFtcyh0LGUpe2lmKHRoaXMuI0gpe3N3aXRjaCh0KXtjYXNlIGMuQ1JFQVRFOnJldHVybiB2b2lkIHRoaXMuY3VycmVudExheWVyLmFkZE5ld0VkaXRvcigpO2Nhc2UgYy5ISUdITElHSFRfREVGQVVMVF9DT0xPUjp0aGlzLiNpdD8udXBkYXRlQ29sb3IoZSk7YnJlYWs7Y2FzZSBjLkhJR0hMSUdIVF9TSE9XX0FMTDp0aGlzLl9ldmVudEJ1cy5kaXNwYXRjaCgicmVwb3J0dGVsZW1ldHJ5Iix7c291cmNlOnRoaXMsZGV0YWlsczp7dHlwZToiZWRpdGluZyIsZGF0YTp7dHlwZToiaGlnaGxpZ2h0IixhY3Rpb246InRvZ2dsZV92aXNpYmlsaXR5In19fSksKHRoaXMuI2h0fHw9bmV3IE1hcCkuc2V0KHQsZSksdGhpcy5zaG93QWxsRWRpdG9ycygiaGlnaGxpZ2h0IixlKX1mb3IoY29uc3QgaSBvZiB0aGlzLiNydClpLnVwZGF0ZVBhcmFtcyh0LGUpO2Zvcihjb25zdCBpIG9mIHRoaXMuI0gpaS51cGRhdGVEZWZhdWx0UGFyYW1zKHQsZSl9fXNob3dBbGxFZGl0b3JzKHQsZSxpPSExKXtmb3IoY29uc3QgaSBvZiB0aGlzLiNJLnZhbHVlcygpKWkuZWRpdG9yVHlwZT09PXQmJmkuc2hvdyhlKTsodGhpcy4jaHQ/LmdldChjLkhJR0hMSUdIVF9TSE9XX0FMTCk/PyEwKSE9PWUmJnRoaXMuI1J0KFtbYy5ISUdITElHSFRfU0hPV19BTEwsZV1dKX1lbmFibGVXYWl0aW5nKHQ9ITEpe2lmKHRoaXMuI1ohPT10KXt0aGlzLiNaPXQ7Zm9yKGNvbnN0IGUgb2YgdGhpcy4jUi52YWx1ZXMoKSl0P2UuZGlzYWJsZUNsaWNrKCk6ZS5lbmFibGVDbGljaygpLGUuZGl2LmNsYXNzTGlzdC50b2dnbGUoIndhaXRpbmciLHQpfX1hc3luYyNMdCgpe2lmKCF0aGlzLiNKKXt0aGlzLiNKPSEwO2NvbnN0IHQ9W107Zm9yKGNvbnN0IGUgb2YgdGhpcy4jUi52YWx1ZXMoKSl0LnB1c2goZS5lbmFibGUoKSk7YXdhaXQgUHJvbWlzZS5hbGwodCk7Zm9yKGNvbnN0IHQgb2YgdGhpcy4jSS52YWx1ZXMoKSl0LmVuYWJsZSgpfX0jRHQoKXtpZih0aGlzLnVuc2VsZWN0QWxsKCksdGhpcy4jSil7dGhpcy4jSj0hMTtmb3IoY29uc3QgdCBvZiB0aGlzLiNSLnZhbHVlcygpKXQuZGlzYWJsZSgpO2Zvcihjb25zdCB0IG9mIHRoaXMuI0kudmFsdWVzKCkpdC5kaXNhYmxlKCl9fWdldEVkaXRvcnModCl7Y29uc3QgZT1bXTtmb3IoY29uc3QgaSBvZiB0aGlzLiNJLnZhbHVlcygpKWkucGFnZUluZGV4PT09dCYmZS5wdXNoKGkpO3JldHVybiBlfWdldEVkaXRvcih0KXtyZXR1cm4gdGhpcy4jSS5nZXQodCl9YWRkRWRpdG9yKHQpe3RoaXMuI0kuc2V0KHQuaWQsdCl9cmVtb3ZlRWRpdG9yKHQpe3QuZGl2LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpJiYodGhpcy4jViYmY2xlYXJUaW1lb3V0KHRoaXMuI1YpLHRoaXMuI1Y9c2V0VGltZW91dCgoKCk9Pnt0aGlzLmZvY3VzTWFpbkNvbnRhaW5lcigpLHRoaXMuI1Y9bnVsbH0pLDApKSx0aGlzLiNJLmRlbGV0ZSh0LmlkKSx0aGlzLnVuc2VsZWN0KHQpLHQuYW5ub3RhdGlvbkVsZW1lbnRJZCYmdGhpcy4jQi5oYXModC5hbm5vdGF0aW9uRWxlbWVudElkKXx8dGhpcy4jRD8ucmVtb3ZlKHQuaWQpfWFkZERlbGV0ZWRBbm5vdGF0aW9uRWxlbWVudCh0KXt0aGlzLiNCLmFkZCh0LmFubm90YXRpb25FbGVtZW50SWQpLHRoaXMuYWRkQ2hhbmdlZEV4aXN0aW5nQW5ub3RhdGlvbih0KSx0LmRlbGV0ZWQ9ITB9aXNEZWxldGVkQW5ub3RhdGlvbkVsZW1lbnQodCl7cmV0dXJuIHRoaXMuI0IuaGFzKHQpfXJlbW92ZURlbGV0ZWRBbm5vdGF0aW9uRWxlbWVudCh0KXt0aGlzLiNCLmRlbGV0ZSh0LmFubm90YXRpb25FbGVtZW50SWQpLHRoaXMucmVtb3ZlQ2hhbmdlZEV4aXN0aW5nQW5ub3RhdGlvbih0KSx0LmRlbGV0ZWQ9ITF9I2t0KHQpe2NvbnN0IGU9dGhpcy4jUi5nZXQodC5wYWdlSW5kZXgpO2U/ZS5hZGRPclJlYnVpbGQodCk6KHRoaXMuYWRkRWRpdG9yKHQpLHRoaXMuYWRkVG9Bbm5vdGF0aW9uU3RvcmFnZSh0KSl9c2V0QWN0aXZlRWRpdG9yKHQpe3RoaXMuI2shPT10JiYodGhpcy4jaz10LHQmJnRoaXMuI1J0KHQucHJvcGVydGllc1RvVXBkYXRlKSl9Z2V0I0Z0KCl7bGV0IHQ9bnVsbDtmb3IodCBvZiB0aGlzLiNydCk7cmV0dXJuIHR9dXBkYXRlVUkodCl7dGhpcy4jRnQ9PT10JiZ0aGlzLiNSdCh0LnByb3BlcnRpZXNUb1VwZGF0ZSl9dG9nZ2xlU2VsZWN0ZWQodCl7aWYodGhpcy4jcnQuaGFzKHQpKXJldHVybiB0aGlzLiNydC5kZWxldGUodCksdC51bnNlbGVjdCgpLHZvaWQgdGhpcy4jeHQoe2hhc1NlbGVjdGVkRWRpdG9yOnRoaXMuaGFzU2VsZWN0aW9ufSk7dGhpcy4jcnQuYWRkKHQpLHQuc2VsZWN0KCksdGhpcy4jUnQodC5wcm9wZXJ0aWVzVG9VcGRhdGUpLHRoaXMuI3h0KHtoYXNTZWxlY3RlZEVkaXRvcjohMH0pfXNldFNlbGVjdGVkKHQpe2Zvcihjb25zdCBlIG9mIHRoaXMuI3J0KWUhPT10JiZlLnVuc2VsZWN0KCk7dGhpcy4jcnQuY2xlYXIoKSx0aGlzLiNydC5hZGQodCksdC5zZWxlY3QoKSx0aGlzLiNSdCh0LnByb3BlcnRpZXNUb1VwZGF0ZSksdGhpcy4jeHQoe2hhc1NlbGVjdGVkRWRpdG9yOiEwfSl9aXNTZWxlY3RlZCh0KXtyZXR1cm4gdGhpcy4jcnQuaGFzKHQpfWdldCBmaXJzdFNlbGVjdGVkRWRpdG9yKCl7cmV0dXJuIHRoaXMuI3J0LnZhbHVlcygpLm5leHQoKS52YWx1ZX11bnNlbGVjdCh0KXt0LnVuc2VsZWN0KCksdGhpcy4jcnQuZGVsZXRlKHQpLHRoaXMuI3h0KHtoYXNTZWxlY3RlZEVkaXRvcjp0aGlzLmhhc1NlbGVjdGlvbn0pfWdldCBoYXNTZWxlY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMuI3J0LnNpemV9Z2V0IGlzRW50ZXJIYW5kbGVkKCl7cmV0dXJuIDE9PT10aGlzLiNydC5zaXplJiZ0aGlzLmZpcnN0U2VsZWN0ZWRFZGl0b3IuaXNFbnRlckhhbmRsZWR9dW5kbygpe3RoaXMuI0YudW5kbygpLHRoaXMuI3h0KHtoYXNTb21ldGhpbmdUb1VuZG86dGhpcy4jRi5oYXNTb21ldGhpbmdUb1VuZG8oKSxoYXNTb21ldGhpbmdUb1JlZG86ITAsaXNFbXB0eTp0aGlzLiNQdCgpfSl9cmVkbygpe3RoaXMuI0YucmVkbygpLHRoaXMuI3h0KHtoYXNTb21ldGhpbmdUb1VuZG86ITAsaGFzU29tZXRoaW5nVG9SZWRvOnRoaXMuI0YuaGFzU29tZXRoaW5nVG9SZWRvKCksaXNFbXB0eTp0aGlzLiNQdCgpfSl9YWRkQ29tbWFuZHModCl7dGhpcy4jRi5hZGQodCksdGhpcy4jeHQoe2hhc1NvbWV0aGluZ1RvVW5kbzohMCxoYXNTb21ldGhpbmdUb1JlZG86ITEsaXNFbXB0eTp0aGlzLiNQdCgpfSl9I1B0KCl7aWYoMD09PXRoaXMuI0kuc2l6ZSlyZXR1cm4hMDtpZigxPT09dGhpcy4jSS5zaXplKWZvcihjb25zdCB0IG9mIHRoaXMuI0kudmFsdWVzKCkpcmV0dXJuIHQuaXNFbXB0eSgpO3JldHVybiExfWRlbGV0ZSgpe2lmKHRoaXMuY29tbWl0T3JSZW1vdmUoKSwhdGhpcy5oYXNTZWxlY3Rpb24pcmV0dXJuO2NvbnN0IHQ9Wy4uLnRoaXMuI3J0XTt0aGlzLmFkZENvbW1hbmRzKHtjbWQ6KCk9Pntmb3IoY29uc3QgZSBvZiB0KWUucmVtb3ZlKCl9LHVuZG86KCk9Pntmb3IoY29uc3QgZSBvZiB0KXRoaXMuI2t0KGUpfSxtdXN0RXhlYzohMH0pfWNvbW1pdE9yUmVtb3ZlKCl7dGhpcy4jaz8uY29tbWl0T3JSZW1vdmUoKX1oYXNTb21ldGhpbmdUb0NvbnRyb2woKXtyZXR1cm4gdGhpcy4ja3x8dGhpcy5oYXNTZWxlY3Rpb259I0l0KHQpe2Zvcihjb25zdCB0IG9mIHRoaXMuI3J0KXQudW5zZWxlY3QoKTt0aGlzLiNydC5jbGVhcigpO2Zvcihjb25zdCBlIG9mIHQpZS5pc0VtcHR5KCl8fCh0aGlzLiNydC5hZGQoZSksZS5zZWxlY3QoKSk7dGhpcy4jeHQoe2hhc1NlbGVjdGVkRWRpdG9yOnRoaXMuaGFzU2VsZWN0aW9ufSl9c2VsZWN0QWxsKCl7Zm9yKGNvbnN0IHQgb2YgdGhpcy4jcnQpdC5jb21taXQoKTt0aGlzLiNJdCh0aGlzLiNJLnZhbHVlcygpKX11bnNlbGVjdEFsbCgpe2lmKCghdGhpcy4ja3x8KHRoaXMuI2suY29tbWl0T3JSZW1vdmUoKSx0aGlzLiNudD09PWwuTk9ORSkpJiZ0aGlzLmhhc1NlbGVjdGlvbil7Zm9yKGNvbnN0IHQgb2YgdGhpcy4jcnQpdC51bnNlbGVjdCgpO3RoaXMuI3J0LmNsZWFyKCksdGhpcy4jeHQoe2hhc1NlbGVjdGVkRWRpdG9yOiExfSl9fXRyYW5zbGF0ZVNlbGVjdGVkRWRpdG9ycyh0LGUsaT0hMSl7aWYoaXx8dGhpcy5jb21taXRPclJlbW92ZSgpLCF0aGlzLmhhc1NlbGVjdGlvbilyZXR1cm47dGhpcy4jY3RbMF0rPXQsdGhpcy4jY3RbMV0rPWU7Y29uc3RbcyxuXT10aGlzLiNjdCxyPVsuLi50aGlzLiNydF07dGhpcy4jZHQmJmNsZWFyVGltZW91dCh0aGlzLiNkdCksdGhpcy4jZHQ9c2V0VGltZW91dCgoKCk9Pnt0aGlzLiNkdD1udWxsLHRoaXMuI2N0WzBdPXRoaXMuI2N0WzFdPTAsdGhpcy5hZGRDb21tYW5kcyh7Y21kOigpPT57Zm9yKGNvbnN0IHQgb2Ygcil0aGlzLiNJLmhhcyh0LmlkKSYmdC50cmFuc2xhdGVJblBhZ2UocyxuKX0sdW5kbzooKT0+e2Zvcihjb25zdCB0IG9mIHIpdGhpcy4jSS5oYXModC5pZCkmJnQudHJhbnNsYXRlSW5QYWdlKC1zLC1uKX0sbXVzdEV4ZWM6ITF9KX0pLDFlMyk7Zm9yKGNvbnN0IGkgb2YgcilpLnRyYW5zbGF0ZUluUGFnZSh0LGUpfXNldFVwRHJhZ1Nlc3Npb24oKXtpZih0aGlzLmhhc1NlbGVjdGlvbil7dGhpcy5kaXNhYmxlVXNlclNlbGVjdCghMCksdGhpcy4jej1uZXcgTWFwO2Zvcihjb25zdCB0IG9mIHRoaXMuI3J0KXRoaXMuI3ouc2V0KHQse3NhdmVkWDp0Lngsc2F2ZWRZOnQueSxzYXZlZFBhZ2VJbmRleDp0LnBhZ2VJbmRleCxuZXdYOjAsbmV3WTowLG5ld1BhZ2VJbmRleDotMX0pfX1lbmREcmFnU2Vzc2lvbigpe2lmKCF0aGlzLiN6KXJldHVybiExO3RoaXMuZGlzYWJsZVVzZXJTZWxlY3QoITEpO2NvbnN0IHQ9dGhpcy4jejt0aGlzLiN6PW51bGw7bGV0IGU9ITE7Zm9yKGNvbnN0W3t4OmkseTpzLHBhZ2VJbmRleDpufSxyXW9mIHQpci5uZXdYPWksci5uZXdZPXMsci5uZXdQYWdlSW5kZXg9bixlfHw9aSE9PXIuc2F2ZWRYfHxzIT09ci5zYXZlZFl8fG4hPT1yLnNhdmVkUGFnZUluZGV4O2lmKCFlKXJldHVybiExO2NvbnN0IGk9KHQsZSxpLHMpPT57aWYodGhpcy4jSS5oYXModC5pZCkpe2NvbnN0IG49dGhpcy4jUi5nZXQocyk7bj90Ll9zZXRQYXJlbnRBbmRQb3NpdGlvbihuLGUsaSk6KHQucGFnZUluZGV4PXMsdC54PWUsdC55PWkpfX07cmV0dXJuIHRoaXMuYWRkQ29tbWFuZHMoe2NtZDooKT0+e2Zvcihjb25zdFtlLHtuZXdYOnMsbmV3WTpuLG5ld1BhZ2VJbmRleDpyfV1vZiB0KWkoZSxzLG4scil9LHVuZG86KCk9Pntmb3IoY29uc3RbZSx7c2F2ZWRYOnMsc2F2ZWRZOm4sc2F2ZWRQYWdlSW5kZXg6cn1db2YgdClpKGUscyxuLHIpfSxtdXN0RXhlYzohMH0pLCEwfWRyYWdTZWxlY3RlZEVkaXRvcnModCxlKXtpZih0aGlzLiN6KWZvcihjb25zdCBpIG9mIHRoaXMuI3oua2V5cygpKWkuZHJhZyh0LGUpfXJlYnVpbGQodCl7aWYobnVsbD09PXQucGFyZW50KXtjb25zdCBlPXRoaXMuZ2V0TGF5ZXIodC5wYWdlSW5kZXgpO2U/KGUuY2hhbmdlUGFyZW50KHQpLGUuYWRkT3JSZWJ1aWxkKHQpKToodGhpcy5hZGRFZGl0b3IodCksdGhpcy5hZGRUb0Fubm90YXRpb25TdG9yYWdlKHQpLHQucmVidWlsZCgpKX1lbHNlIHQucGFyZW50LmFkZE9yUmVidWlsZCh0KX1nZXQgaXNFZGl0b3JIYW5kbGluZ0tleWJvYXJkKCl7cmV0dXJuIHRoaXMuZ2V0QWN0aXZlKCk/LnNob3VsZEdldEtleWJvYXJkRXZlbnRzKCl8fDE9PT10aGlzLiNydC5zaXplJiZ0aGlzLmZpcnN0U2VsZWN0ZWRFZGl0b3Iuc2hvdWxkR2V0S2V5Ym9hcmRFdmVudHMoKX1pc0FjdGl2ZSh0KXtyZXR1cm4gdGhpcy4jaz09PXR9Z2V0QWN0aXZlKCl7cmV0dXJuIHRoaXMuI2t9Z2V0TW9kZSgpe3JldHVybiB0aGlzLiNudH1nZXQgaW1hZ2VNYW5hZ2VyKCl7cmV0dXJuIEModGhpcywiaW1hZ2VNYW5hZ2VyIixuZXcgX3QpfWdldFNlbGVjdGlvbkJveGVzKHQpe2lmKCF0KXJldHVybiBudWxsO2NvbnN0IGU9ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCk7Zm9yKGxldCBpPTAscz1lLnJhbmdlQ291bnQ7aTxzO2krKylpZighdC5jb250YWlucyhlLmdldFJhbmdlQXQoaSkuY29tbW9uQW5jZXN0b3JDb250YWluZXIpKXJldHVybiBudWxsO2NvbnN0e3g6aSx5OnMsd2lkdGg6bixoZWlnaHQ6cn09dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtsZXQgYTtzd2l0Y2godC5nZXRBdHRyaWJ1dGUoImRhdGEtbWFpbi1yb3RhdGlvbiIpKXtjYXNlIjkwIjphPSh0LGUsYSxvKT0+KHt4OihlLXMpL3IseToxLSh0K2EtaSkvbix3aWR0aDpvL3IsaGVpZ2h0OmEvbn0pO2JyZWFrO2Nhc2UiMTgwIjphPSh0LGUsYSxvKT0+KHt4OjEtKHQrYS1pKS9uLHk6MS0oZStvLXMpL3Isd2lkdGg6YS9uLGhlaWdodDpvL3J9KTticmVhaztjYXNlIjI3MCI6YT0odCxlLGEsbyk9Pih7eDoxLShlK28tcykvcix5Oih0LWkpL24sd2lkdGg6by9yLGhlaWdodDphL259KTticmVhaztkZWZhdWx0OmE9KHQsZSxhLG8pPT4oe3g6KHQtaSkvbix5OihlLXMpL3Isd2lkdGg6YS9uLGhlaWdodDpvL3J9KX1jb25zdCBvPVtdO2ZvcihsZXQgdD0wLGk9ZS5yYW5nZUNvdW50O3Q8aTt0Kyspe2NvbnN0IGk9ZS5nZXRSYW5nZUF0KHQpO2lmKCFpLmNvbGxhcHNlZClmb3IoY29uc3R7eDp0LHk6ZSx3aWR0aDpzLGhlaWdodDpufW9mIGkuZ2V0Q2xpZW50UmVjdHMoKSkwIT09cyYmMCE9PW4mJm8ucHVzaChhKHQsZSxzLG4pKX1yZXR1cm4gMD09PW8ubGVuZ3RoP251bGw6b31hZGRDaGFuZ2VkRXhpc3RpbmdBbm5vdGF0aW9uKHthbm5vdGF0aW9uRWxlbWVudElkOnQsaWQ6ZX0peyh0aGlzLiNMfHw9bmV3IE1hcCkuc2V0KHQsZSl9cmVtb3ZlQ2hhbmdlZEV4aXN0aW5nQW5ub3RhdGlvbih7YW5ub3RhdGlvbkVsZW1lbnRJZDp0fSl7dGhpcy4jTD8uZGVsZXRlKHQpfXJlbmRlckFubm90YXRpb25FbGVtZW50KHQpe2NvbnN0IGU9dGhpcy4jTD8uZ2V0KHQuZGF0YS5pZCk7aWYoIWUpcmV0dXJuO2NvbnN0IGk9dGhpcy4jRC5nZXRSYXdWYWx1ZShlKTtpJiYodGhpcy4jbnQhPT1sLk5PTkV8fGkuaGFzQmVlbk1vZGlmaWVkKSYmaS5yZW5kZXJBbm5vdGF0aW9uRWxlbWVudCh0KX19Y2xhc3MgTXR7I289bnVsbDsjT3Q9ITE7I050PW51bGw7I0J0PW51bGw7I3p0PW51bGw7I0h0PSExOyNqdD1udWxsOyNyPW51bGw7I1V0PW51bGw7IyR0PW51bGw7I1d0PSExO3N0YXRpYyNHdD1udWxsO3N0YXRpYyBfbDEwblByb21pc2U9bnVsbDtjb25zdHJ1Y3Rvcih0KXt0aGlzLiNyPXQsdGhpcy4jV3Q9dC5fdWlNYW5hZ2VyLnVzZU5ld0FsdFRleHRGbG93LE10LiNHdHx8PU9iamVjdC5mcmVlemUoe2FkZGVkOiJwZGZqcy1lZGl0b3ItbmV3LWFsdC10ZXh0LWFkZGVkLWJ1dHRvbi1sYWJlbCIsbWlzc2luZzoicGRmanMtZWRpdG9yLW5ldy1hbHQtdGV4dC1taXNzaW5nLWJ1dHRvbi1sYWJlbCIscmV2aWV3OiJwZGZqcy1lZGl0b3ItbmV3LWFsdC10ZXh0LXRvLXJldmlldy1idXR0b24tbGFiZWwifSl9c3RhdGljIGluaXRpYWxpemUodCl7TXQuX2wxMG5Qcm9taXNlfHw9dH1hc3luYyByZW5kZXIoKXtjb25zdCB0PXRoaXMuI050PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO2xldCBlO3QuY2xhc3NOYW1lPSJhbHRUZXh0Iix0aGlzLiNXdD8odC5jbGFzc0xpc3QuYWRkKCJuZXciKSxlPWF3YWl0IE10Ll9sMTBuUHJvbWlzZS5nZXQoTXQuI0d0Lm1pc3NpbmcpKTplPWF3YWl0IE10Ll9sMTBuUHJvbWlzZS5nZXQoInBkZmpzLWVkaXRvci1hbHQtdGV4dC1idXR0b24tbGFiZWwiKSx0LnRleHRDb250ZW50PWUsdC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLGUpLHQudGFiSW5kZXg9IjAiO2NvbnN0IGk9dGhpcy4jci5fdWlNYW5hZ2VyLl9zaWduYWw7dC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsbHQse3NpZ25hbDppfSksdC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsKHQ9PnQuc3RvcFByb3BhZ2F0aW9uKCkpLHtzaWduYWw6aX0pO2NvbnN0IHM9dD0+e3QucHJldmVudERlZmF1bHQoKSx0aGlzLiNyLl91aU1hbmFnZXIuZWRpdEFsdFRleHQodGhpcy4jciksdGhpcy4jV3QmJnRoaXMuI3IuX3JlcG9ydFRlbGVtZXRyeSh7YWN0aW9uOiJwZGZqcy5pbWFnZS5hbHRfdGV4dC5pbWFnZV9zdGF0dXNfbGFiZWxfY2xpY2tlZCIsZGF0YTp7bGFiZWw6dGhpcy4jVnR9fSl9O3JldHVybiB0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixzLHtjYXB0dXJlOiEwLHNpZ25hbDppfSksdC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwoZT0+e2UudGFyZ2V0PT09dCYmIkVudGVyIj09PWUua2V5JiYodGhpcy4jSHQ9ITAscyhlKSl9KSx7c2lnbmFsOml9KSxhd2FpdCB0aGlzLiNxdCgpLHR9Z2V0I1Z0KCl7cmV0dXJuKHRoaXMuI28/ImFkZGVkIjpudWxsPT09dGhpcy4jbyYmdGhpcy5ndWVzc2VkVGV4dCYmInJldmlldyIpfHwibWlzc2luZyJ9ZmluaXNoKCl7dGhpcy4jTnQmJih0aGlzLiNOdC5mb2N1cyh7Zm9jdXNWaXNpYmxlOnRoaXMuI0h0fSksdGhpcy4jSHQ9ITEpfWlzRW1wdHkoKXtyZXR1cm4gdGhpcy4jV3Q/bnVsbD09PXRoaXMuI286IXRoaXMuI28mJiF0aGlzLiNPdH1oYXNEYXRhKCl7cmV0dXJuIHRoaXMuI1d0P251bGwhPT10aGlzLiNvfHwhIXRoaXMuI1V0OnRoaXMuaXNFbXB0eSgpfWdldCBndWVzc2VkVGV4dCgpe3JldHVybiB0aGlzLiNVdH1hc3luYyBzZXRHdWVzc2VkVGV4dCh0KXtudWxsPT09dGhpcy4jbyYmKHRoaXMuI1V0PXQsdGhpcy4jJHQ9YXdhaXQgTXQuX2wxMG5Qcm9taXNlLmdldCgicGRmanMtZWRpdG9yLW5ldy1hbHQtdGV4dC1nZW5lcmF0ZWQtYWx0LXRleHQtd2l0aC1kaXNjbGFpbWVyIikoe2dlbmVyYXRlZEFsdFRleHQ6dH0pLHRoaXMuI3F0KCkpfXRvZ2dsZUFsdFRleHRCYWRnZSh0PSExKXtpZighdGhpcy4jV3R8fHRoaXMuI28pcmV0dXJuIHRoaXMuI2p0Py5yZW1vdmUoKSx2b2lkKHRoaXMuI2p0PW51bGwpO2lmKCF0aGlzLiNqdCl7Y29uc3QgdD10aGlzLiNqdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmNsYXNzTmFtZT0ibm9BbHRUZXh0QmFkZ2UiLHRoaXMuI3IuZGl2LmFwcGVuZCh0KX10aGlzLiNqdC5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLCF0KX1zZXJpYWxpemUodCl7bGV0IGU9dGhpcy4jbztyZXR1cm4gdHx8dGhpcy4jVXQhPT1lfHwoZT10aGlzLiMkdCkse2FsdFRleHQ6ZSxkZWNvcmF0aXZlOnRoaXMuI090LGd1ZXNzZWRUZXh0OnRoaXMuI1V0LHRleHRXaXRoRGlzY2xhaW1lcjp0aGlzLiMkdH19Z2V0IGRhdGEoKXtyZXR1cm57YWx0VGV4dDp0aGlzLiNvLGRlY29yYXRpdmU6dGhpcy4jT3R9fXNldCBkYXRhKHthbHRUZXh0OnQsZGVjb3JhdGl2ZTplLGd1ZXNzZWRUZXh0OmksdGV4dFdpdGhEaXNjbGFpbWVyOnMsY2FuY2VsOm49ITF9KXtpJiYodGhpcy4jVXQ9aSx0aGlzLiMkdD1zKSx0aGlzLiNvPT09dCYmdGhpcy4jT3Q9PT1lfHwobnx8KHRoaXMuI289dCx0aGlzLiNPdD1lKSx0aGlzLiNxdCgpKX10b2dnbGUodD0hMSl7dGhpcy4jTnQmJighdCYmdGhpcy4jenQmJihjbGVhclRpbWVvdXQodGhpcy4jenQpLHRoaXMuI3p0PW51bGwpLHRoaXMuI050LmRpc2FibGVkPSF0KX1zaG93bigpe3RoaXMuI3IuX3JlcG9ydFRlbGVtZXRyeSh7YWN0aW9uOiJwZGZqcy5pbWFnZS5hbHRfdGV4dC5pbWFnZV9zdGF0dXNfbGFiZWxfZGlzcGxheWVkIixkYXRhOntsYWJlbDp0aGlzLiNWdH19KX1kZXN0cm95KCl7dGhpcy4jTnQ/LnJlbW92ZSgpLHRoaXMuI050PW51bGwsdGhpcy4jQnQ9bnVsbCx0aGlzLiNqdD8ucmVtb3ZlKCksdGhpcy4janQ9bnVsbH1hc3luYyNxdCgpe2NvbnN0IHQ9dGhpcy4jTnQ7aWYoIXQpcmV0dXJuO2lmKHRoaXMuI1d0KXtpZih0LmNsYXNzTGlzdC50b2dnbGUoImRvbmUiLCEhdGhpcy4jbyksTXQuX2wxMG5Qcm9taXNlLmdldChNdC4jR3RbdGhpcy4jVnRdKS50aGVuKChlPT57dC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLGUpO2Zvcihjb25zdCBpIG9mIHQuY2hpbGROb2RlcylpZihpLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpe2kudGV4dENvbnRlbnQ9ZTticmVha319KSksIXRoaXMuI28pcmV0dXJuIHZvaWQgdGhpcy4jQnQ/LnJlbW92ZSgpfWVsc2V7aWYoIXRoaXMuI28mJiF0aGlzLiNPdClyZXR1cm4gdC5jbGFzc0xpc3QucmVtb3ZlKCJkb25lIiksdm9pZCB0aGlzLiNCdD8ucmVtb3ZlKCk7dC5jbGFzc0xpc3QuYWRkKCJkb25lIiksTXQuX2wxMG5Qcm9taXNlLmdldCgicGRmanMtZWRpdG9yLWFsdC10ZXh0LWVkaXQtYnV0dG9uLWxhYmVsIikudGhlbigoZT0+e3Quc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixlKX0pKX1sZXQgZT10aGlzLiNCdDtpZighZSl7dGhpcy4jQnQ9ZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIiksZS5jbGFzc05hbWU9InRvb2x0aXAiLGUuc2V0QXR0cmlidXRlKCJyb2xlIiwidG9vbHRpcCIpLGUuaWQ9YGFsdC10ZXh0LXRvb2x0aXAtJHt0aGlzLiNyLmlkfWA7Y29uc3QgaT0xMDAscz10aGlzLiNyLl91aU1hbmFnZXIuX3NpZ25hbDtzLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IiwoKCk9PntjbGVhclRpbWVvdXQodGhpcy4jenQpLHRoaXMuI3p0PW51bGx9KSx7b25jZTohMH0pLHQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsKCgpPT57dGhpcy4jenQ9c2V0VGltZW91dCgoKCk9Pnt0aGlzLiN6dD1udWxsLHRoaXMuI0J0LmNsYXNzTGlzdC5hZGQoInNob3ciKSx0aGlzLiNyLl9yZXBvcnRUZWxlbWV0cnkoe2FjdGlvbjoiYWx0X3RleHRfdG9vbHRpcCJ9KX0pLGkpfSkse3NpZ25hbDpzfSksdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwoKCk9Pnt0aGlzLiN6dCYmKGNsZWFyVGltZW91dCh0aGlzLiN6dCksdGhpcy4jenQ9bnVsbCksdGhpcy4jQnQ/LmNsYXNzTGlzdC5yZW1vdmUoInNob3ciKX0pLHtzaWduYWw6c30pfWUuaW5uZXJUZXh0PXRoaXMuI090P2F3YWl0IE10Ll9sMTBuUHJvbWlzZS5nZXQoInBkZmpzLWVkaXRvci1hbHQtdGV4dC1kZWNvcmF0aXZlLXRvb2x0aXAiKTp0aGlzLiNvLGUucGFyZW50Tm9kZXx8dC5hcHBlbmQoZSk7Y29uc3QgaT10aGlzLiNyLmdldEltYWdlRm9yQWx0VGV4dCgpO2k/LnNldEF0dHJpYnV0ZSgiYXJpYS1kZXNjcmliZWRieSIsZS5pZCl9fWNsYXNzIGt0eyNYdD1udWxsOyNLdD1udWxsOyNvPW51bGw7I1l0PSExOyNRdD0hMTsjSnQ9bnVsbDsjWnQ9bnVsbDsjdGU9bnVsbDsjZWU9IiI7I2llPSExOyNzZT1udWxsOyNuZT0hMTsjcmU9ITE7I2FlPSExOyNvZT1udWxsOyNoZT0wOyNsZT0wOyNjZT1udWxsO19lZGl0VG9vbGJhcj1udWxsO19pbml0aWFsT3B0aW9ucz1PYmplY3QuY3JlYXRlKG51bGwpO19pbml0aWFsRGF0YT1udWxsO19pc1Zpc2libGU9ITA7X3VpTWFuYWdlcj1udWxsO19mb2N1c0V2ZW50c0FsbG93ZWQ9ITA7c3RhdGljIF9sMTBuUHJvbWlzZT1udWxsO3N0YXRpYyBfbDEwblJlc2l6ZXI9bnVsbDsjZGU9ITE7I3VlPWt0Ll96SW5kZXgrKztzdGF0aWMgX2JvcmRlckxpbmVXaWR0aD0tMTtzdGF0aWMgX2NvbG9yTWFuYWdlcj1uZXcgU3Q7c3RhdGljIF96SW5kZXg9MTtzdGF0aWMgX3RlbGVtZXRyeVRpbWVvdXQ9MWUzO3N0YXRpYyBnZXQgX3Jlc2l6ZXJLZXlib2FyZE1hbmFnZXIoKXtjb25zdCB0PWt0LnByb3RvdHlwZS5fcmVzaXplV2l0aEtleWJvYXJkLGU9VHQuVFJBTlNMQVRFX1NNQUxMLGk9VHQuVFJBTlNMQVRFX0JJRztyZXR1cm4gQyh0aGlzLCJfcmVzaXplcktleWJvYXJkTWFuYWdlciIsbmV3IEN0KFtbWyJBcnJvd0xlZnQiLCJtYWMrQXJyb3dMZWZ0Il0sdCx7YXJnczpbLWUsMF19XSxbWyJjdHJsK0Fycm93TGVmdCIsIm1hYytzaGlmdCtBcnJvd0xlZnQiXSx0LHthcmdzOlstaSwwXX1dLFtbIkFycm93UmlnaHQiLCJtYWMrQXJyb3dSaWdodCJdLHQse2FyZ3M6W2UsMF19XSxbWyJjdHJsK0Fycm93UmlnaHQiLCJtYWMrc2hpZnQrQXJyb3dSaWdodCJdLHQse2FyZ3M6W2ksMF19XSxbWyJBcnJvd1VwIiwibWFjK0Fycm93VXAiXSx0LHthcmdzOlswLC1lXX1dLFtbImN0cmwrQXJyb3dVcCIsIm1hYytzaGlmdCtBcnJvd1VwIl0sdCx7YXJnczpbMCwtaV19XSxbWyJBcnJvd0Rvd24iLCJtYWMrQXJyb3dEb3duIl0sdCx7YXJnczpbMCxlXX1dLFtbImN0cmwrQXJyb3dEb3duIiwibWFjK3NoaWZ0K0Fycm93RG93biJdLHQse2FyZ3M6WzAsaV19XSxbWyJFc2NhcGUiLCJtYWMrRXNjYXBlIl0sa3QucHJvdG90eXBlLl9zdG9wUmVzaXppbmdXaXRoS2V5Ym9hcmRdXSkpfWNvbnN0cnVjdG9yKHQpe3RoaXMucGFyZW50PXQucGFyZW50LHRoaXMuaWQ9dC5pZCx0aGlzLndpZHRoPXRoaXMuaGVpZ2h0PW51bGwsdGhpcy5wYWdlSW5kZXg9dC5wYXJlbnQucGFnZUluZGV4LHRoaXMubmFtZT10Lm5hbWUsdGhpcy5kaXY9bnVsbCx0aGlzLl91aU1hbmFnZXI9dC51aU1hbmFnZXIsdGhpcy5hbm5vdGF0aW9uRWxlbWVudElkPW51bGwsdGhpcy5fd2lsbEtlZXBBc3BlY3RSYXRpbz0hMSx0aGlzLl9pbml0aWFsT3B0aW9ucy5pc0NlbnRlcmVkPXQuaXNDZW50ZXJlZCx0aGlzLl9zdHJ1Y3RUcmVlUGFyZW50SWQ9bnVsbDtjb25zdHtyb3RhdGlvbjplLHJhd0RpbXM6e3BhZ2VXaWR0aDppLHBhZ2VIZWlnaHQ6cyxwYWdlWDpuLHBhZ2VZOnJ9fT10aGlzLnBhcmVudC52aWV3cG9ydDt0aGlzLnJvdGF0aW9uPWUsdGhpcy5wYWdlUm90YXRpb249KDM2MCtlLXRoaXMuX3VpTWFuYWdlci52aWV3UGFyYW1ldGVycy5yb3RhdGlvbiklMzYwLHRoaXMucGFnZURpbWVuc2lvbnM9W2ksc10sdGhpcy5wYWdlVHJhbnNsYXRpb249W24scl07Y29uc3RbYSxvXT10aGlzLnBhcmVudERpbWVuc2lvbnM7dGhpcy54PXQueC9hLHRoaXMueT10Lnkvbyx0aGlzLmlzQXR0YWNoZWRUb0RPTT0hMSx0aGlzLmRlbGV0ZWQ9ITF9Z2V0IGVkaXRvclR5cGUoKXtyZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yLl90eXBlfXN0YXRpYyBnZXQgX2RlZmF1bHRMaW5lQ29sb3IoKXtyZXR1cm4gQyh0aGlzLCJfZGVmYXVsdExpbmVDb2xvciIsdGhpcy5fY29sb3JNYW5hZ2VyLmdldEhleENvZGUoIkNhbnZhc1RleHQiKSl9c3RhdGljIGRlbGV0ZUFubm90YXRpb25FbGVtZW50KHQpe2NvbnN0IGU9bmV3IEl0KHtpZDp0LnBhcmVudC5nZXROZXh0SWQoKSxwYXJlbnQ6dC5wYXJlbnQsdWlNYW5hZ2VyOnQuX3VpTWFuYWdlcn0pO2UuYW5ub3RhdGlvbkVsZW1lbnRJZD10LmFubm90YXRpb25FbGVtZW50SWQsZS5kZWxldGVkPSEwLGUuX3VpTWFuYWdlci5hZGRUb0Fubm90YXRpb25TdG9yYWdlKGUpfXN0YXRpYyBpbml0aWFsaXplKHQsZSxpKXtpZihrdC5fbDEwblJlc2l6ZXJ8fD1PYmplY3QuZnJlZXplKHt0b3BMZWZ0OiJwZGZqcy1lZGl0b3ItcmVzaXplci10b3AtbGVmdCIsdG9wTWlkZGxlOiJwZGZqcy1lZGl0b3ItcmVzaXplci10b3AtbWlkZGxlIix0b3BSaWdodDoicGRmanMtZWRpdG9yLXJlc2l6ZXItdG9wLXJpZ2h0IixtaWRkbGVSaWdodDoicGRmanMtZWRpdG9yLXJlc2l6ZXItbWlkZGxlLXJpZ2h0Iixib3R0b21SaWdodDoicGRmanMtZWRpdG9yLXJlc2l6ZXItYm90dG9tLXJpZ2h0Iixib3R0b21NaWRkbGU6InBkZmpzLWVkaXRvci1yZXNpemVyLWJvdHRvbS1taWRkbGUiLGJvdHRvbUxlZnQ6InBkZmpzLWVkaXRvci1yZXNpemVyLWJvdHRvbS1sZWZ0IixtaWRkbGVMZWZ0OiJwZGZqcy1lZGl0b3ItcmVzaXplci1taWRkbGUtbGVmdCJ9KSxrdC5fbDEwblByb21pc2V8fD1uZXcgTWFwKFsuLi5bInBkZmpzLWVkaXRvci1hbHQtdGV4dC1idXR0b24tbGFiZWwiLCJwZGZqcy1lZGl0b3ItYWx0LXRleHQtZWRpdC1idXR0b24tbGFiZWwiLCJwZGZqcy1lZGl0b3ItYWx0LXRleHQtZGVjb3JhdGl2ZS10b29sdGlwIiwicGRmanMtZWRpdG9yLW5ldy1hbHQtdGV4dC1hZGRlZC1idXR0b24tbGFiZWwiLCJwZGZqcy1lZGl0b3ItbmV3LWFsdC10ZXh0LW1pc3NpbmctYnV0dG9uLWxhYmVsIiwicGRmanMtZWRpdG9yLW5ldy1hbHQtdGV4dC10by1yZXZpZXctYnV0dG9uLWxhYmVsIl0ubWFwKChlPT5bZSx0LmdldChlKV0pKSwuLi5bInBkZmpzLWVkaXRvci1uZXctYWx0LXRleHQtZ2VuZXJhdGVkLWFsdC10ZXh0LXdpdGgtZGlzY2xhaW1lciJdLm1hcCgoZT0+W2UsdC5nZXQuYmluZCh0LGUpXSkpXSksaT8uc3RyaW5ncylmb3IoY29uc3QgZSBvZiBpLnN0cmluZ3Mpa3QuX2wxMG5Qcm9taXNlLnNldChlLHQuZ2V0KGUpKTtpZigtMSE9PWt0Ll9ib3JkZXJMaW5lV2lkdGgpcmV0dXJuO2NvbnN0IHM9Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpO2t0Ll9ib3JkZXJMaW5lV2lkdGg9cGFyc2VGbG9hdChzLmdldFByb3BlcnR5VmFsdWUoIi0tb3V0bGluZS13aWR0aCIpKXx8MH1zdGF0aWMgdXBkYXRlRGVmYXVsdFBhcmFtcyh0LGUpe31zdGF0aWMgZ2V0IGRlZmF1bHRQcm9wZXJ0aWVzVG9VcGRhdGUoKXtyZXR1cm5bXX1zdGF0aWMgaXNIYW5kbGluZ01pbWVGb3JQYXN0aW5nKHQpe3JldHVybiExfXN0YXRpYyBwYXN0ZSh0LGUpe3goIk5vdCBpbXBsZW1lbnRlZCIpfWdldCBwcm9wZXJ0aWVzVG9VcGRhdGUoKXtyZXR1cm5bXX1nZXQgX2lzRHJhZ2dhYmxlKCl7cmV0dXJuIHRoaXMuI2RlfXNldCBfaXNEcmFnZ2FibGUodCl7dGhpcy4jZGU9dCx0aGlzLmRpdj8uY2xhc3NMaXN0LnRvZ2dsZSgiZHJhZ2dhYmxlIix0KX1nZXQgaXNFbnRlckhhbmRsZWQoKXtyZXR1cm4hMH1jZW50ZXIoKXtjb25zdFt0LGVdPXRoaXMucGFnZURpbWVuc2lvbnM7c3dpdGNoKHRoaXMucGFyZW50Um90YXRpb24pe2Nhc2UgOTA6dGhpcy54LT10aGlzLmhlaWdodCplLygyKnQpLHRoaXMueSs9dGhpcy53aWR0aCp0LygyKmUpO2JyZWFrO2Nhc2UgMTgwOnRoaXMueCs9dGhpcy53aWR0aC8yLHRoaXMueSs9dGhpcy5oZWlnaHQvMjticmVhaztjYXNlIDI3MDp0aGlzLngrPXRoaXMuaGVpZ2h0KmUvKDIqdCksdGhpcy55LT10aGlzLndpZHRoKnQvKDIqZSk7YnJlYWs7ZGVmYXVsdDp0aGlzLngtPXRoaXMud2lkdGgvMix0aGlzLnktPXRoaXMuaGVpZ2h0LzJ9dGhpcy5maXhBbmRTZXRQb3NpdGlvbigpfWFkZENvbW1hbmRzKHQpe3RoaXMuX3VpTWFuYWdlci5hZGRDb21tYW5kcyh0KX1nZXQgY3VycmVudExheWVyKCl7cmV0dXJuIHRoaXMuX3VpTWFuYWdlci5jdXJyZW50TGF5ZXJ9c2V0SW5CYWNrZ3JvdW5kKCl7dGhpcy5kaXYuc3R5bGUuekluZGV4PTB9c2V0SW5Gb3JlZ3JvdW5kKCl7dGhpcy5kaXYuc3R5bGUuekluZGV4PXRoaXMuI3VlfXNldFBhcmVudCh0KXtudWxsIT09dD8odGhpcy5wYWdlSW5kZXg9dC5wYWdlSW5kZXgsdGhpcy5wYWdlRGltZW5zaW9ucz10LnBhZ2VEaW1lbnNpb25zKTp0aGlzLiNwZSgpLHRoaXMucGFyZW50PXR9Zm9jdXNpbih0KXt0aGlzLl9mb2N1c0V2ZW50c0FsbG93ZWQmJih0aGlzLiNpZT90aGlzLiNpZT0hMTp0aGlzLnBhcmVudC5zZXRTZWxlY3RlZCh0aGlzKSl9Zm9jdXNvdXQodCl7aWYoIXRoaXMuX2ZvY3VzRXZlbnRzQWxsb3dlZClyZXR1cm47aWYoIXRoaXMuaXNBdHRhY2hlZFRvRE9NKXJldHVybjtjb25zdCBlPXQucmVsYXRlZFRhcmdldDtlPy5jbG9zZXN0KGAjJHt0aGlzLmlkfWApfHwodC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMucGFyZW50Py5pc011bHRpcGxlU2VsZWN0aW9ufHx0aGlzLmNvbW1pdE9yUmVtb3ZlKCkpfWNvbW1pdE9yUmVtb3ZlKCl7dGhpcy5pc0VtcHR5KCk/dGhpcy5yZW1vdmUoKTp0aGlzLmNvbW1pdCgpfWNvbW1pdCgpe3RoaXMuYWRkVG9Bbm5vdGF0aW9uU3RvcmFnZSgpfWFkZFRvQW5ub3RhdGlvblN0b3JhZ2UoKXt0aGlzLl91aU1hbmFnZXIuYWRkVG9Bbm5vdGF0aW9uU3RvcmFnZSh0aGlzKX1zZXRBdCh0LGUsaSxzKXtjb25zdFtuLHJdPXRoaXMucGFyZW50RGltZW5zaW9ucztbaSxzXT10aGlzLnNjcmVlblRvUGFnZVRyYW5zbGF0aW9uKGkscyksdGhpcy54PSh0K2kpL24sdGhpcy55PShlK3MpL3IsdGhpcy5maXhBbmRTZXRQb3NpdGlvbigpfSNnZShbdCxlXSxpLHMpe1tpLHNdPXRoaXMuc2NyZWVuVG9QYWdlVHJhbnNsYXRpb24oaSxzKSx0aGlzLngrPWkvdCx0aGlzLnkrPXMvZSx0aGlzLmZpeEFuZFNldFBvc2l0aW9uKCl9dHJhbnNsYXRlKHQsZSl7dGhpcy4jZ2UodGhpcy5wYXJlbnREaW1lbnNpb25zLHQsZSl9dHJhbnNsYXRlSW5QYWdlKHQsZSl7dGhpcy4jc2V8fD1bdGhpcy54LHRoaXMueV0sdGhpcy4jZ2UodGhpcy5wYWdlRGltZW5zaW9ucyx0LGUpLHRoaXMuZGl2LnNjcm9sbEludG9WaWV3KHtibG9jazoibmVhcmVzdCJ9KX1kcmFnKHQsZSl7dGhpcy4jc2V8fD1bdGhpcy54LHRoaXMueV07Y29uc3RbaSxzXT10aGlzLnBhcmVudERpbWVuc2lvbnM7aWYodGhpcy54Kz10L2ksdGhpcy55Kz1lL3MsdGhpcy5wYXJlbnQmJih0aGlzLng8MHx8dGhpcy54PjF8fHRoaXMueTwwfHx0aGlzLnk+MSkpe2NvbnN0e3g6dCx5OmV9PXRoaXMuZGl2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMucGFyZW50LmZpbmROZXdQYXJlbnQodGhpcyx0LGUpJiYodGhpcy54LT1NYXRoLmZsb29yKHRoaXMueCksdGhpcy55LT1NYXRoLmZsb29yKHRoaXMueSkpfWxldHt4Om4seTpyfT10aGlzO2NvbnN0W2Esb109dGhpcy5nZXRCYXNlVHJhbnNsYXRpb24oKTtuKz1hLHIrPW8sdGhpcy5kaXYuc3R5bGUubGVmdD1gJHsoMTAwKm4pLnRvRml4ZWQoMil9JWAsdGhpcy5kaXYuc3R5bGUudG9wPWAkeygxMDAqcikudG9GaXhlZCgyKX0lYCx0aGlzLmRpdi5zY3JvbGxJbnRvVmlldyh7YmxvY2s6Im5lYXJlc3QifSl9Z2V0IF9oYXNCZWVuTW92ZWQoKXtyZXR1cm4hIXRoaXMuI3NlJiYodGhpcy4jc2VbMF0hPT10aGlzLnh8fHRoaXMuI3NlWzFdIT09dGhpcy55KX1nZXRCYXNlVHJhbnNsYXRpb24oKXtjb25zdFt0LGVdPXRoaXMucGFyZW50RGltZW5zaW9ucyx7X2JvcmRlckxpbmVXaWR0aDppfT1rdCxzPWkvdCxuPWkvZTtzd2l0Y2godGhpcy5yb3RhdGlvbil7Y2FzZSA5MDpyZXR1cm5bLXMsbl07Y2FzZSAxODA6cmV0dXJuW3Msbl07Y2FzZSAyNzA6cmV0dXJuW3MsLW5dO2RlZmF1bHQ6cmV0dXJuWy1zLC1uXX19Z2V0IF9tdXN0Rml4UG9zaXRpb24oKXtyZXR1cm4hMH1maXhBbmRTZXRQb3NpdGlvbih0PXRoaXMucm90YXRpb24pe2NvbnN0W2UsaV09dGhpcy5wYWdlRGltZW5zaW9ucztsZXR7eDpzLHk6bix3aWR0aDpyLGhlaWdodDphfT10aGlzO2lmKHIqPWUsYSo9aSxzKj1lLG4qPWksdGhpcy5fbXVzdEZpeFBvc2l0aW9uKXN3aXRjaCh0KXtjYXNlIDA6cz1NYXRoLm1heCgwLE1hdGgubWluKGUtcixzKSksbj1NYXRoLm1heCgwLE1hdGgubWluKGktYSxuKSk7YnJlYWs7Y2FzZSA5MDpzPU1hdGgubWF4KDAsTWF0aC5taW4oZS1hLHMpKSxuPU1hdGgubWluKGksTWF0aC5tYXgocixuKSk7YnJlYWs7Y2FzZSAxODA6cz1NYXRoLm1pbihlLE1hdGgubWF4KHIscykpLG49TWF0aC5taW4oaSxNYXRoLm1heChhLG4pKTticmVhaztjYXNlIDI3MDpzPU1hdGgubWluKGUsTWF0aC5tYXgoYSxzKSksbj1NYXRoLm1heCgwLE1hdGgubWluKGktcixuKSl9dGhpcy54PXMvPWUsdGhpcy55PW4vPWk7Y29uc3RbbyxoXT10aGlzLmdldEJhc2VUcmFuc2xhdGlvbigpO3MrPW8sbis9aDtjb25zdHtzdHlsZTpsfT10aGlzLmRpdjtsLmxlZnQ9YCR7KDEwMCpzKS50b0ZpeGVkKDIpfSVgLGwudG9wPWAkeygxMDAqbikudG9GaXhlZCgyKX0lYCx0aGlzLm1vdmVJbkRPTSgpfXN0YXRpYyNmZSh0LGUsaSl7c3dpdGNoKGkpe2Nhc2UgOTA6cmV0dXJuW2UsLXRdO2Nhc2UgMTgwOnJldHVyblstdCwtZV07Y2FzZSAyNzA6cmV0dXJuWy1lLHRdO2RlZmF1bHQ6cmV0dXJuW3QsZV19fXNjcmVlblRvUGFnZVRyYW5zbGF0aW9uKHQsZSl7cmV0dXJuIGt0LiNmZSh0LGUsdGhpcy5wYXJlbnRSb3RhdGlvbil9cGFnZVRyYW5zbGF0aW9uVG9TY3JlZW4odCxlKXtyZXR1cm4ga3QuI2ZlKHQsZSwzNjAtdGhpcy5wYXJlbnRSb3RhdGlvbil9I21lKHQpe3N3aXRjaCh0KXtjYXNlIDkwOntjb25zdFt0LGVdPXRoaXMucGFnZURpbWVuc2lvbnM7cmV0dXJuWzAsLXQvZSxlL3QsMF19Y2FzZSAxODA6cmV0dXJuWy0xLDAsMCwtMV07Y2FzZSAyNzA6e2NvbnN0W3QsZV09dGhpcy5wYWdlRGltZW5zaW9ucztyZXR1cm5bMCx0L2UsLWUvdCwwXX1kZWZhdWx0OnJldHVyblsxLDAsMCwxXX19Z2V0IHBhcmVudFNjYWxlKCl7cmV0dXJuIHRoaXMuX3VpTWFuYWdlci52aWV3UGFyYW1ldGVycy5yZWFsU2NhbGV9Z2V0IHBhcmVudFJvdGF0aW9uKCl7cmV0dXJuKHRoaXMuX3VpTWFuYWdlci52aWV3UGFyYW1ldGVycy5yb3RhdGlvbit0aGlzLnBhZ2VSb3RhdGlvbiklMzYwfWdldCBwYXJlbnREaW1lbnNpb25zKCl7Y29uc3R7cGFyZW50U2NhbGU6dCxwYWdlRGltZW5zaW9uczpbZSxpXX09dGhpcztyZXR1cm5bZSp0LGkqdF19c2V0RGltcyh0LGUpe2NvbnN0W2ksc109dGhpcy5wYXJlbnREaW1lbnNpb25zO3RoaXMuZGl2LnN0eWxlLndpZHRoPWAkeygxMDAqdC9pKS50b0ZpeGVkKDIpfSVgLHRoaXMuI1F0fHwodGhpcy5kaXYuc3R5bGUuaGVpZ2h0PWAkeygxMDAqZS9zKS50b0ZpeGVkKDIpfSVgKX1maXhEaW1zKCl7Y29uc3R7c3R5bGU6dH09dGhpcy5kaXYse2hlaWdodDplLHdpZHRoOml9PXQscz1pLmVuZHNXaXRoKCIlIiksbj0hdGhpcy4jUXQmJmUuZW5kc1dpdGgoIiUiKTtpZihzJiZuKXJldHVybjtjb25zdFtyLGFdPXRoaXMucGFyZW50RGltZW5zaW9ucztzfHwodC53aWR0aD1gJHsoMTAwKnBhcnNlRmxvYXQoaSkvcikudG9GaXhlZCgyKX0lYCksdGhpcy4jUXR8fG58fCh0LmhlaWdodD1gJHsoMTAwKnBhcnNlRmxvYXQoZSkvYSkudG9GaXhlZCgyKX0lYCl9Z2V0SW5pdGlhbFRyYW5zbGF0aW9uKCl7cmV0dXJuWzAsMF19I2JlKCl7aWYodGhpcy4jSnQpcmV0dXJuO3RoaXMuI0p0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuI0p0LmNsYXNzTGlzdC5hZGQoInJlc2l6ZXJzIik7Y29uc3QgdD10aGlzLl93aWxsS2VlcEFzcGVjdFJhdGlvP1sidG9wTGVmdCIsInRvcFJpZ2h0IiwiYm90dG9tUmlnaHQiLCJib3R0b21MZWZ0Il06WyJ0b3BMZWZ0IiwidG9wTWlkZGxlIiwidG9wUmlnaHQiLCJtaWRkbGVSaWdodCIsImJvdHRvbVJpZ2h0IiwiYm90dG9tTWlkZGxlIiwiYm90dG9tTGVmdCIsIm1pZGRsZUxlZnQiXSxlPXRoaXMuX3VpTWFuYWdlci5fc2lnbmFsO2Zvcihjb25zdCBpIG9mIHQpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dGhpcy4jSnQuYXBwZW5kKHQpLHQuY2xhc3NMaXN0LmFkZCgicmVzaXplciIsaSksdC5zZXRBdHRyaWJ1dGUoImRhdGEtcmVzaXplci1uYW1lIixpKSx0LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix0aGlzLiN2ZS5iaW5kKHRoaXMsaSkse3NpZ25hbDplfSksdC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsbHQse3NpZ25hbDplfSksdC50YWJJbmRleD0tMX10aGlzLmRpdi5wcmVwZW5kKHRoaXMuI0p0KX0jdmUodCxlKXtlLnByZXZlbnREZWZhdWx0KCk7Y29uc3R7aXNNYWM6aX09Ti5wbGF0Zm9ybTtpZigwIT09ZS5idXR0b258fGUuY3RybEtleSYmaSlyZXR1cm47dGhpcy4jbz8udG9nZ2xlKCExKTtjb25zdCBzPXRoaXMuX2lzRHJhZ2dhYmxlO3RoaXMuX2lzRHJhZ2dhYmxlPSExO2NvbnN0IG49bmV3IEFib3J0Q29udHJvbGxlcixyPXRoaXMuX3VpTWFuYWdlci5jb21iaW5lZFNpZ25hbChuKTt0aGlzLnBhcmVudC50b2dnbGVQb2ludGVyRXZlbnRzKCExKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuI3llLmJpbmQodGhpcyx0KSx7cGFzc2l2ZTohMCxjYXB0dXJlOiEwLHNpZ25hbDpyfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IixsdCx7c2lnbmFsOnJ9KTtjb25zdCBhPXRoaXMueCxvPXRoaXMueSxoPXRoaXMud2lkdGgsbD10aGlzLmhlaWdodCxjPXRoaXMucGFyZW50LmRpdi5zdHlsZS5jdXJzb3IsZD10aGlzLmRpdi5zdHlsZS5jdXJzb3I7dGhpcy5kaXYuc3R5bGUuY3Vyc29yPXRoaXMucGFyZW50LmRpdi5zdHlsZS5jdXJzb3I9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZS50YXJnZXQpLmN1cnNvcjtjb25zdCB1PSgpPT57bi5hYm9ydCgpLHRoaXMucGFyZW50LnRvZ2dsZVBvaW50ZXJFdmVudHMoITApLHRoaXMuI28/LnRvZ2dsZSghMCksdGhpcy5faXNEcmFnZ2FibGU9cyx0aGlzLnBhcmVudC5kaXYuc3R5bGUuY3Vyc29yPWMsdGhpcy5kaXYuc3R5bGUuY3Vyc29yPWQsdGhpcy4jQWUoYSxvLGgsbCl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHUse3NpZ25hbDpyfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLHUse3NpZ25hbDpyfSl9I0FlKHQsZSxpLHMpe2NvbnN0IG49dGhpcy54LHI9dGhpcy55LGE9dGhpcy53aWR0aCxvPXRoaXMuaGVpZ2h0O249PT10JiZyPT09ZSYmYT09PWkmJm89PT1zfHx0aGlzLmFkZENvbW1hbmRzKHtjbWQ6KCk9Pnt0aGlzLndpZHRoPWEsdGhpcy5oZWlnaHQ9byx0aGlzLng9bix0aGlzLnk9cjtjb25zdFt0LGVdPXRoaXMucGFyZW50RGltZW5zaW9uczt0aGlzLnNldERpbXModCphLGUqbyksdGhpcy5maXhBbmRTZXRQb3NpdGlvbigpfSx1bmRvOigpPT57dGhpcy53aWR0aD1pLHRoaXMuaGVpZ2h0PXMsdGhpcy54PXQsdGhpcy55PWU7Y29uc3RbbixyXT10aGlzLnBhcmVudERpbWVuc2lvbnM7dGhpcy5zZXREaW1zKG4qaSxyKnMpLHRoaXMuZml4QW5kU2V0UG9zaXRpb24oKX0sbXVzdEV4ZWM6ITB9KX0jeWUodCxlKXtjb25zdFtpLHNdPXRoaXMucGFyZW50RGltZW5zaW9ucyxuPXRoaXMueCxyPXRoaXMueSxhPXRoaXMud2lkdGgsbz10aGlzLmhlaWdodCxoPWt0Lk1JTl9TSVpFL2ksbD1rdC5NSU5fU0laRS9zLGM9dD0+TWF0aC5yb3VuZCgxZTQqdCkvMWU0LGQ9dGhpcy4jbWUodGhpcy5yb3RhdGlvbiksdT0odCxlKT0+W2RbMF0qdCtkWzJdKmUsZFsxXSp0K2RbM10qZV0scD10aGlzLiNtZSgzNjAtdGhpcy5yb3RhdGlvbik7bGV0IGcsZixtPSExLGI9ITE7c3dpdGNoKHQpe2Nhc2UidG9wTGVmdCI6bT0hMCxnPSh0LGUpPT5bMCwwXSxmPSh0LGUpPT5bdCxlXTticmVhaztjYXNlInRvcE1pZGRsZSI6Zz0odCxlKT0+W3QvMiwwXSxmPSh0LGUpPT5bdC8yLGVdO2JyZWFrO2Nhc2UidG9wUmlnaHQiOm09ITAsZz0odCxlKT0+W3QsMF0sZj0odCxlKT0+WzAsZV07YnJlYWs7Y2FzZSJtaWRkbGVSaWdodCI6Yj0hMCxnPSh0LGUpPT5bdCxlLzJdLGY9KHQsZSk9PlswLGUvMl07YnJlYWs7Y2FzZSJib3R0b21SaWdodCI6bT0hMCxnPSh0LGUpPT5bdCxlXSxmPSh0LGUpPT5bMCwwXTticmVhaztjYXNlImJvdHRvbU1pZGRsZSI6Zz0odCxlKT0+W3QvMixlXSxmPSh0LGUpPT5bdC8yLDBdO2JyZWFrO2Nhc2UiYm90dG9tTGVmdCI6bT0hMCxnPSh0LGUpPT5bMCxlXSxmPSh0LGUpPT5bdCwwXTticmVhaztjYXNlIm1pZGRsZUxlZnQiOmI9ITAsZz0odCxlKT0+WzAsZS8yXSxmPSh0LGUpPT5bdCxlLzJdfWNvbnN0IHY9ZyhhLG8pLHk9ZihhLG8pO2xldCBBPXUoLi4ueSk7Y29uc3Qgdz1jKG4rQVswXSkseD1jKHIrQVsxXSk7bGV0IF89MSxFPTEsW0MsU109dGhpcy5zY3JlZW5Ub1BhZ2VUcmFuc2xhdGlvbihlLm1vdmVtZW50WCxlLm1vdmVtZW50WSk7dmFyIFQsTTtpZihbQyxTXT0oVD1DL2ksTT1TL3MsW3BbMF0qVCtwWzJdKk0scFsxXSpUK3BbM10qTV0pLG0pe2NvbnN0IHQ9TWF0aC5oeXBvdChhLG8pO189RT1NYXRoLm1heChNYXRoLm1pbihNYXRoLmh5cG90KHlbMF0tdlswXS1DLHlbMV0tdlsxXS1TKS90LDEvYSwxL28pLGgvYSxsL28pfWVsc2UgYj9fPU1hdGgubWF4KGgsTWF0aC5taW4oMSxNYXRoLmFicyh5WzBdLXZbMF0tQykpKS9hOkU9TWF0aC5tYXgobCxNYXRoLm1pbigxLE1hdGguYWJzKHlbMV0tdlsxXS1TKSkpL287Y29uc3Qgaz1jKGEqXyksST1jKG8qRSk7QT11KC4uLmYoayxJKSk7Y29uc3QgUj13LUFbMF0sUD14LUFbMV07dGhpcy53aWR0aD1rLHRoaXMuaGVpZ2h0PUksdGhpcy54PVIsdGhpcy55PVAsdGhpcy5zZXREaW1zKGkqayxzKkkpLHRoaXMuZml4QW5kU2V0UG9zaXRpb24oKX1hbHRUZXh0RmluaXNoKCl7dGhpcy4jbz8uZmluaXNoKCl9YXN5bmMgYWRkRWRpdFRvb2xiYXIoKXtyZXR1cm4gdGhpcy5fZWRpdFRvb2xiYXJ8fHRoaXMuI3JlfHwodGhpcy5fZWRpdFRvb2xiYXI9bmV3IHl0KHRoaXMpLHRoaXMuZGl2LmFwcGVuZCh0aGlzLl9lZGl0VG9vbGJhci5yZW5kZXIoKSksdGhpcy4jbyYmYXdhaXQgdGhpcy5fZWRpdFRvb2xiYXIuYWRkQWx0VGV4dCh0aGlzLiNvKSksdGhpcy5fZWRpdFRvb2xiYXJ9cmVtb3ZlRWRpdFRvb2xiYXIoKXt0aGlzLl9lZGl0VG9vbGJhciYmKHRoaXMuX2VkaXRUb29sYmFyLnJlbW92ZSgpLHRoaXMuX2VkaXRUb29sYmFyPW51bGwsdGhpcy4jbz8uZGVzdHJveSgpKX1hZGRDb250YWluZXIodCl7Y29uc3QgZT10aGlzLl9lZGl0VG9vbGJhcj8uZGl2O2U/ZS5iZWZvcmUodCk6dGhpcy5kaXYuYXBwZW5kKHQpfWdldENsaWVudERpbWVuc2lvbnMoKXtyZXR1cm4gdGhpcy5kaXYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9YXN5bmMgYWRkQWx0VGV4dEJ1dHRvbigpe3RoaXMuI298fChNdC5pbml0aWFsaXplKGt0Ll9sMTBuUHJvbWlzZSksdGhpcy4jbz1uZXcgTXQodGhpcyksdGhpcy4jWHQmJih0aGlzLiNvLmRhdGE9dGhpcy4jWHQsdGhpcy4jWHQ9bnVsbCksYXdhaXQgdGhpcy5hZGRFZGl0VG9vbGJhcigpKX1nZXQgYWx0VGV4dERhdGEoKXtyZXR1cm4gdGhpcy4jbz8uZGF0YX1zZXQgYWx0VGV4dERhdGEodCl7dGhpcy4jbyYmKHRoaXMuI28uZGF0YT10KX1nZXQgZ3Vlc3NlZEFsdFRleHQoKXtyZXR1cm4gdGhpcy4jbz8uZ3Vlc3NlZFRleHR9YXN5bmMgc2V0R3Vlc3NlZEFsdFRleHQodCl7YXdhaXQodGhpcy4jbz8uc2V0R3Vlc3NlZFRleHQodCkpfXNlcmlhbGl6ZUFsdFRleHQodCl7cmV0dXJuIHRoaXMuI28/LnNlcmlhbGl6ZSh0KX1oYXNBbHRUZXh0KCl7cmV0dXJuISF0aGlzLiNvJiYhdGhpcy4jby5pc0VtcHR5KCl9aGFzQWx0VGV4dERhdGEoKXtyZXR1cm4gdGhpcy4jbz8uaGFzRGF0YSgpPz8hMX1yZW5kZXIoKXt0aGlzLmRpdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLmRpdi5zZXRBdHRyaWJ1dGUoImRhdGEtZWRpdG9yLXJvdGF0aW9uIiwoMzYwLXRoaXMucm90YXRpb24pJTM2MCksdGhpcy5kaXYuY2xhc3NOYW1lPXRoaXMubmFtZSx0aGlzLmRpdi5zZXRBdHRyaWJ1dGUoImlkIix0aGlzLmlkKSx0aGlzLmRpdi50YWJJbmRleD10aGlzLiNZdD8tMTowLHRoaXMuX2lzVmlzaWJsZXx8dGhpcy5kaXYuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksdGhpcy5zZXRJbkZvcmVncm91bmQoKSx0aGlzLiN3ZSgpO2NvbnN0W3QsZV09dGhpcy5wYXJlbnREaW1lbnNpb25zO3RoaXMucGFyZW50Um90YXRpb24lMTgwIT0wJiYodGhpcy5kaXYuc3R5bGUubWF4V2lkdGg9YCR7KDEwMCplL3QpLnRvRml4ZWQoMil9JWAsdGhpcy5kaXYuc3R5bGUubWF4SGVpZ2h0PWAkeygxMDAqdC9lKS50b0ZpeGVkKDIpfSVgKTtjb25zdFtpLHNdPXRoaXMuZ2V0SW5pdGlhbFRyYW5zbGF0aW9uKCk7cmV0dXJuIHRoaXMudHJhbnNsYXRlKGkscyksd3QodGhpcyx0aGlzLmRpdixbInBvaW50ZXJkb3duIl0pLHRoaXMuZGl2fXBvaW50ZXJkb3duKHQpe2NvbnN0e2lzTWFjOmV9PU4ucGxhdGZvcm07MCE9PXQuYnV0dG9ufHx0LmN0cmxLZXkmJmU/dC5wcmV2ZW50RGVmYXVsdCgpOih0aGlzLiNpZT0hMCx0aGlzLl9pc0RyYWdnYWJsZT90aGlzLiN4ZSh0KTp0aGlzLiNfZSh0KSl9I19lKHQpe2NvbnN0e2lzTWFjOmV9PU4ucGxhdGZvcm07dC5jdHJsS2V5JiYhZXx8dC5zaGlmdEtleXx8dC5tZXRhS2V5JiZlP3RoaXMucGFyZW50LnRvZ2dsZVNlbGVjdGVkKHRoaXMpOnRoaXMucGFyZW50LnNldFNlbGVjdGVkKHRoaXMpfSN4ZSh0KXtjb25zdCBlPXRoaXMuX3VpTWFuYWdlci5pc1NlbGVjdGVkKHRoaXMpO3RoaXMuX3VpTWFuYWdlci5zZXRVcERyYWdTZXNzaW9uKCk7Y29uc3QgaT1uZXcgQWJvcnRDb250cm9sbGVyLHM9dGhpcy5fdWlNYW5hZ2VyLmNvbWJpbmVkU2lnbmFsKGkpO2lmKGUpe3RoaXMuZGl2LmNsYXNzTGlzdC5hZGQoIm1vdmluZyIpLHRoaXMuI2hlPXQuY2xpZW50WCx0aGlzLiNsZT10LmNsaWVudFk7Y29uc3QgZT10PT57Y29uc3R7Y2xpZW50WDplLGNsaWVudFk6aX09dCxbcyxuXT10aGlzLnNjcmVlblRvUGFnZVRyYW5zbGF0aW9uKGUtdGhpcy4jaGUsaS10aGlzLiNsZSk7dGhpcy4jaGU9ZSx0aGlzLiNsZT1pLHRoaXMuX3VpTWFuYWdlci5kcmFnU2VsZWN0ZWRFZGl0b3JzKHMsbil9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsZSx7cGFzc2l2ZTohMCxjYXB0dXJlOiEwLHNpZ25hbDpzfSl9Y29uc3Qgbj0oKT0+e2kuYWJvcnQoKSxlJiZ0aGlzLmRpdi5jbGFzc0xpc3QucmVtb3ZlKCJtb3ZpbmciKSx0aGlzLiNpZT0hMSx0aGlzLl91aU1hbmFnZXIuZW5kRHJhZ1Nlc3Npb24oKXx8dGhpcy4jX2UodCl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLG4se3NpZ25hbDpzfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLG4se3NpZ25hbDpzfSl9bW92ZUluRE9NKCl7dGhpcy4jb2UmJmNsZWFyVGltZW91dCh0aGlzLiNvZSksdGhpcy4jb2U9c2V0VGltZW91dCgoKCk9Pnt0aGlzLiNvZT1udWxsLHRoaXMucGFyZW50Py5tb3ZlRWRpdG9ySW5ET00odGhpcyl9KSwwKX1fc2V0UGFyZW50QW5kUG9zaXRpb24odCxlLGkpe3QuY2hhbmdlUGFyZW50KHRoaXMpLHRoaXMueD1lLHRoaXMueT1pLHRoaXMuZml4QW5kU2V0UG9zaXRpb24oKX1nZXRSZWN0KHQsZSxpPXRoaXMucm90YXRpb24pe2NvbnN0IHM9dGhpcy5wYXJlbnRTY2FsZSxbbixyXT10aGlzLnBhZ2VEaW1lbnNpb25zLFthLG9dPXRoaXMucGFnZVRyYW5zbGF0aW9uLGg9dC9zLGw9ZS9zLGM9dGhpcy54Km4sZD10aGlzLnkqcix1PXRoaXMud2lkdGgqbixwPXRoaXMuaGVpZ2h0KnI7c3dpdGNoKGkpe2Nhc2UgMDpyZXR1cm5bYytoK2Esci1kLWwtcCtvLGMraCt1K2Esci1kLWwrb107Y2FzZSA5MDpyZXR1cm5bYytsK2Esci1kK2grbyxjK2wrcCthLHItZCtoK3Urb107Y2FzZSAxODA6cmV0dXJuW2MtaC11K2Esci1kK2wrbyxjLWgrYSxyLWQrbCtwK29dO2Nhc2UgMjcwOnJldHVybltjLWwtcCthLHItZC1oLXUrbyxjLWwrYSxyLWQtaCtvXTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiSW52YWxpZCByb3RhdGlvbiIpfX1nZXRSZWN0SW5DdXJyZW50Q29vcmRzKHQsZSl7Y29uc3RbaSxzLG4scl09dCxhPW4taSxvPXItcztzd2l0Y2godGhpcy5yb3RhdGlvbil7Y2FzZSAwOnJldHVybltpLGUtcixhLG9dO2Nhc2UgOTA6cmV0dXJuW2ksZS1zLG8sYV07Y2FzZSAxODA6cmV0dXJuW24sZS1zLGEsb107Y2FzZSAyNzA6cmV0dXJuW24sZS1yLG8sYV07ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgcm90YXRpb24iKX19b25jZUFkZGVkKCl7fWlzRW1wdHkoKXtyZXR1cm4hMX1lbmFibGVFZGl0TW9kZSgpe3RoaXMuI3JlPSEwfWRpc2FibGVFZGl0TW9kZSgpe3RoaXMuI3JlPSExfWlzSW5FZGl0TW9kZSgpe3JldHVybiB0aGlzLiNyZX1zaG91bGRHZXRLZXlib2FyZEV2ZW50cygpe3JldHVybiB0aGlzLiNhZX1uZWVkc1RvQmVSZWJ1aWx0KCl7cmV0dXJuIHRoaXMuZGl2JiYhdGhpcy5pc0F0dGFjaGVkVG9ET019I3dlKCl7aWYodGhpcy4jdGV8fCF0aGlzLmRpdilyZXR1cm47dGhpcy4jdGU9bmV3IEFib3J0Q29udHJvbGxlcjtjb25zdCB0PXRoaXMuX3VpTWFuYWdlci5jb21iaW5lZFNpZ25hbCh0aGlzLiN0ZSk7dGhpcy5kaXYuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNpbiIsdGhpcy5mb2N1c2luLmJpbmQodGhpcykse3NpZ25hbDp0fSksdGhpcy5kaXYuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNvdXQiLHRoaXMuZm9jdXNvdXQuYmluZCh0aGlzKSx7c2lnbmFsOnR9KX1yZWJ1aWxkKCl7dGhpcy4jd2UoKX1yb3RhdGUodCl7fXNlcmlhbGl6ZURlbGV0ZWQoKXtyZXR1cm57aWQ6dGhpcy5hbm5vdGF0aW9uRWxlbWVudElkLGRlbGV0ZWQ6ITAscGFnZUluZGV4OnRoaXMucGFnZUluZGV4LHBvcHVwUmVmOnRoaXMuX2luaXRpYWxEYXRhPy5wb3B1cFJlZnx8IiJ9fXNlcmlhbGl6ZSh0PSExLGU9bnVsbCl7eCgiQW4gZWRpdG9yIG11c3QgYmUgc2VyaWFsaXphYmxlIil9c3RhdGljIGFzeW5jIGRlc2VyaWFsaXplKHQsZSxpKXtjb25zdCBzPW5ldyB0aGlzLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcih7cGFyZW50OmUsaWQ6ZS5nZXROZXh0SWQoKSx1aU1hbmFnZXI6aX0pO3Mucm90YXRpb249dC5yb3RhdGlvbixzLiNYdD10LmFjY2Vzc2liaWxpdHlEYXRhO2NvbnN0W24scl09cy5wYWdlRGltZW5zaW9ucyxbYSxvLGgsbF09cy5nZXRSZWN0SW5DdXJyZW50Q29vcmRzKHQucmVjdCxyKTtyZXR1cm4gcy54PWEvbixzLnk9by9yLHMud2lkdGg9aC9uLHMuaGVpZ2h0PWwvcixzfWdldCBoYXNCZWVuTW9kaWZpZWQoKXtyZXR1cm4hIXRoaXMuYW5ub3RhdGlvbkVsZW1lbnRJZCYmKHRoaXMuZGVsZXRlZHx8bnVsbCE9PXRoaXMuc2VyaWFsaXplKCkpfXJlbW92ZSgpe2lmKHRoaXMuI3RlPy5hYm9ydCgpLHRoaXMuI3RlPW51bGwsdGhpcy5pc0VtcHR5KCl8fHRoaXMuY29tbWl0KCksdGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQucmVtb3ZlKHRoaXMpOnRoaXMuX3VpTWFuYWdlci5yZW1vdmVFZGl0b3IodGhpcyksdGhpcy4jb2UmJihjbGVhclRpbWVvdXQodGhpcy4jb2UpLHRoaXMuI29lPW51bGwpLHRoaXMuI3BlKCksdGhpcy5yZW1vdmVFZGl0VG9vbGJhcigpLHRoaXMuI2NlKXtmb3IoY29uc3QgdCBvZiB0aGlzLiNjZS52YWx1ZXMoKSljbGVhclRpbWVvdXQodCk7dGhpcy4jY2U9bnVsbH10aGlzLnBhcmVudD1udWxsfWdldCBpc1Jlc2l6YWJsZSgpe3JldHVybiExfW1ha2VSZXNpemFibGUoKXt0aGlzLmlzUmVzaXphYmxlJiYodGhpcy4jYmUoKSx0aGlzLiNKdC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSx3dCh0aGlzLHRoaXMuZGl2LFsia2V5ZG93biJdKSl9Z2V0IHRvb2xiYXJQb3NpdGlvbigpe3JldHVybiBudWxsfWtleWRvd24odCl7aWYoIXRoaXMuaXNSZXNpemFibGV8fHQudGFyZ2V0IT09dGhpcy5kaXZ8fCJFbnRlciIhPT10LmtleSlyZXR1cm47dGhpcy5fdWlNYW5hZ2VyLnNldFNlbGVjdGVkKHRoaXMpLHRoaXMuI1p0PXtzYXZlZFg6dGhpcy54LHNhdmVkWTp0aGlzLnksc2F2ZWRXaWR0aDp0aGlzLndpZHRoLHNhdmVkSGVpZ2h0OnRoaXMuaGVpZ2h0fTtjb25zdCBlPXRoaXMuI0p0LmNoaWxkcmVuO2lmKCF0aGlzLiNLdCl7dGhpcy4jS3Q9QXJyYXkuZnJvbShlKTtjb25zdCB0PXRoaXMuI0VlLmJpbmQodGhpcyksaT10aGlzLiNDZS5iaW5kKHRoaXMpLHM9dGhpcy5fdWlNYW5hZ2VyLl9zaWduYWw7Zm9yKGNvbnN0IGUgb2YgdGhpcy4jS3Qpe2NvbnN0IG49ZS5nZXRBdHRyaWJ1dGUoImRhdGEtcmVzaXplci1uYW1lIik7ZS5zZXRBdHRyaWJ1dGUoInJvbGUiLCJzcGluYnV0dG9uIiksZS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0LHtzaWduYWw6c30pLGUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsaSx7c2lnbmFsOnN9KSxlLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLiNTZS5iaW5kKHRoaXMsbikse3NpZ25hbDpzfSksZS5zZXRBdHRyaWJ1dGUoImRhdGEtbDEwbi1pZCIsa3QuX2wxMG5SZXNpemVyW25dKX19Y29uc3QgaT10aGlzLiNLdFswXTtsZXQgcz0wO2Zvcihjb25zdCB0IG9mIGUpe2lmKHQ9PT1pKWJyZWFrO3MrK31jb25zdCBuPSgzNjAtdGhpcy5yb3RhdGlvbit0aGlzLnBhcmVudFJvdGF0aW9uKSUzNjAvOTAqKHRoaXMuI0t0Lmxlbmd0aC80KTtpZihuIT09cyl7aWYobjxzKWZvcihsZXQgdD0wO3Q8cy1uO3QrKyl0aGlzLiNKdC5hcHBlbmQodGhpcy4jSnQuZmlyc3RDaGlsZCk7ZWxzZSBpZihuPnMpZm9yKGxldCB0PTA7dDxuLXM7dCsrKXRoaXMuI0p0LmZpcnN0Q2hpbGQuYmVmb3JlKHRoaXMuI0p0Lmxhc3RDaGlsZCk7bGV0IHQ9MDtmb3IoY29uc3QgaSBvZiBlKXtjb25zdCBlPXRoaXMuI0t0W3QrK10uZ2V0QXR0cmlidXRlKCJkYXRhLXJlc2l6ZXItbmFtZSIpO2kuc2V0QXR0cmlidXRlKCJkYXRhLWwxMG4taWQiLGt0Ll9sMTBuUmVzaXplcltlXSl9fXRoaXMuI1RlKDApLHRoaXMuI2FlPSEwLHRoaXMuI0p0LmZpcnN0Q2hpbGQuZm9jdXMoe2ZvY3VzVmlzaWJsZTohMH0pLHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfSNFZSh0KXtrdC5fcmVzaXplcktleWJvYXJkTWFuYWdlci5leGVjKHRoaXMsdCl9I0NlKHQpe3RoaXMuI2FlJiZ0LnJlbGF0ZWRUYXJnZXQ/LnBhcmVudE5vZGUhPT10aGlzLiNKdCYmdGhpcy4jcGUoKX0jU2UodCl7dGhpcy4jZWU9dGhpcy4jYWU/dDoiIn0jVGUodCl7aWYodGhpcy4jS3QpZm9yKGNvbnN0IGUgb2YgdGhpcy4jS3QpZS50YWJJbmRleD10fV9yZXNpemVXaXRoS2V5Ym9hcmQodCxlKXt0aGlzLiNhZSYmdGhpcy4jeWUodGhpcy4jZWUse21vdmVtZW50WDp0LG1vdmVtZW50WTplfSl9I3BlKCl7aWYodGhpcy4jYWU9ITEsdGhpcy4jVGUoLTEpLHRoaXMuI1p0KXtjb25zdHtzYXZlZFg6dCxzYXZlZFk6ZSxzYXZlZFdpZHRoOmksc2F2ZWRIZWlnaHQ6c309dGhpcy4jWnQ7dGhpcy4jQWUodCxlLGkscyksdGhpcy4jWnQ9bnVsbH19X3N0b3BSZXNpemluZ1dpdGhLZXlib2FyZCgpe3RoaXMuI3BlKCksdGhpcy5kaXYuZm9jdXMoKX1zZWxlY3QoKXt0aGlzLm1ha2VSZXNpemFibGUoKSx0aGlzLmRpdj8uY2xhc3NMaXN0LmFkZCgic2VsZWN0ZWRFZGl0b3IiKSx0aGlzLl9lZGl0VG9vbGJhcj8odGhpcy5fZWRpdFRvb2xiYXI/LnNob3coKSx0aGlzLiNvPy50b2dnbGVBbHRUZXh0QmFkZ2UoITEpKTp0aGlzLmFkZEVkaXRUb29sYmFyKCkudGhlbigoKCk9Pnt0aGlzLmRpdj8uY2xhc3NMaXN0LmNvbnRhaW5zKCJzZWxlY3RlZEVkaXRvciIpJiZ0aGlzLl9lZGl0VG9vbGJhcj8uc2hvdygpfSkpfXVuc2VsZWN0KCl7dGhpcy4jSnQ/LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHRoaXMuZGl2Py5jbGFzc0xpc3QucmVtb3ZlKCJzZWxlY3RlZEVkaXRvciIpLHRoaXMuZGl2Py5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSYmdGhpcy5fdWlNYW5hZ2VyLmN1cnJlbnRMYXllci5kaXYuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSx0aGlzLl9lZGl0VG9vbGJhcj8uaGlkZSgpLHRoaXMuI28/LnRvZ2dsZUFsdFRleHRCYWRnZSghMCl9dXBkYXRlUGFyYW1zKHQsZSl7fWRpc2FibGVFZGl0aW5nKCl7fWVuYWJsZUVkaXRpbmcoKXt9ZW50ZXJJbkVkaXRNb2RlKCl7fWdldEltYWdlRm9yQWx0VGV4dCgpe3JldHVybiBudWxsfWdldCBjb250ZW50RGl2KCl7cmV0dXJuIHRoaXMuZGl2fWdldCBpc0VkaXRpbmcoKXtyZXR1cm4gdGhpcy4jbmV9c2V0IGlzRWRpdGluZyh0KXt0aGlzLiNuZT10LHRoaXMucGFyZW50JiYodD8odGhpcy5wYXJlbnQuc2V0U2VsZWN0ZWQodGhpcyksdGhpcy5wYXJlbnQuc2V0QWN0aXZlRWRpdG9yKHRoaXMpKTp0aGlzLnBhcmVudC5zZXRBY3RpdmVFZGl0b3IobnVsbCkpfXNldEFzcGVjdFJhdGlvKHQsZSl7dGhpcy4jUXQ9ITA7Y29uc3QgaT10L2Use3N0eWxlOnN9PXRoaXMuZGl2O3MuYXNwZWN0UmF0aW89aSxzLmhlaWdodD0iYXV0byJ9c3RhdGljIGdldCBNSU5fU0laRSgpe3JldHVybiAxNn1zdGF0aWMgY2FuQ3JlYXRlTmV3RW1wdHlFZGl0b3IoKXtyZXR1cm4hMH1nZXQgdGVsZW1ldHJ5SW5pdGlhbERhdGEoKXtyZXR1cm57YWN0aW9uOiJhZGRlZCJ9fWdldCB0ZWxlbWV0cnlGaW5hbERhdGEoKXtyZXR1cm4gbnVsbH1fcmVwb3J0VGVsZW1ldHJ5KHQsZT0hMSl7aWYoZSl7dGhpcy4jY2V8fD1uZXcgTWFwO2NvbnN0e2FjdGlvbjplfT10O2xldCBpPXRoaXMuI2NlLmdldChlKTtyZXR1cm4gaSYmY2xlYXJUaW1lb3V0KGkpLGk9c2V0VGltZW91dCgoKCk9Pnt0aGlzLl9yZXBvcnRUZWxlbWV0cnkodCksdGhpcy4jY2UuZGVsZXRlKGUpLDA9PT10aGlzLiNjZS5zaXplJiYodGhpcy4jY2U9bnVsbCl9KSxrdC5fdGVsZW1ldHJ5VGltZW91dCksdm9pZCB0aGlzLiNjZS5zZXQoZSxpKX10LnR5cGV8fD10aGlzLmVkaXRvclR5cGUsdGhpcy5fdWlNYW5hZ2VyLl9ldmVudEJ1cy5kaXNwYXRjaCgicmVwb3J0dGVsZW1ldHJ5Iix7c291cmNlOnRoaXMsZGV0YWlsczp7dHlwZToiZWRpdGluZyIsZGF0YTp0fX0pfXNob3codD10aGlzLl9pc1Zpc2libGUpe3RoaXMuZGl2LmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsIXQpLHRoaXMuX2lzVmlzaWJsZT10fWVuYWJsZSgpe3RoaXMuZGl2JiYodGhpcy5kaXYudGFiSW5kZXg9MCksdGhpcy4jWXQ9ITF9ZGlzYWJsZSgpe3RoaXMuZGl2JiYodGhpcy5kaXYudGFiSW5kZXg9LTEpLHRoaXMuI1l0PSEwfXJlbmRlckFubm90YXRpb25FbGVtZW50KHQpe2xldCBlPXQuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoIi5hbm5vdGF0aW9uQ29udGVudCIpO2lmKGUpe2lmKCJDQU5WQVMiPT09ZS5ub2RlTmFtZSl7Y29uc3QgdD1lO2U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksZS5jbGFzc0xpc3QuYWRkKCJhbm5vdGF0aW9uQ29udGVudCIsdGhpcy5lZGl0b3JUeXBlKSx0LmJlZm9yZShlKX19ZWxzZSBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGUuY2xhc3NMaXN0LmFkZCgiYW5ub3RhdGlvbkNvbnRlbnQiLHRoaXMuZWRpdG9yVHlwZSksdC5jb250YWluZXIucHJlcGVuZChlKTtyZXR1cm4gZX1yZXNldEFubm90YXRpb25FbGVtZW50KHQpe2NvbnN0e2ZpcnN0Q2hpbGQ6ZX09dC5jb250YWluZXI7IkRJViI9PT1lPy5ub2RlTmFtZSYmZS5jbGFzc0xpc3QuY29udGFpbnMoImFubm90YXRpb25Db250ZW50IikmJmUucmVtb3ZlKCl9fWNsYXNzIEl0IGV4dGVuZHMga3R7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy5hbm5vdGF0aW9uRWxlbWVudElkPXQuYW5ub3RhdGlvbkVsZW1lbnRJZCx0aGlzLmRlbGV0ZWQ9ITB9c2VyaWFsaXplKCl7cmV0dXJuIHRoaXMuc2VyaWFsaXplRGVsZXRlZCgpfX1jb25zdCBSdD0zMjg1Mzc3NTIwLFB0PTQyOTQ5MDE3NjAsRHQ9NjU1MzU7Y2xhc3MgTHR7Y29uc3RydWN0b3IodCl7dGhpcy5oMT10PzQyOTQ5NjcyOTUmdDpSdCx0aGlzLmgyPXQ/NDI5NDk2NzI5NSZ0OlJ0fXVwZGF0ZSh0KXtsZXQgZSxpO2lmKCJzdHJpbmciPT10eXBlb2YgdCl7ZT1uZXcgVWludDhBcnJheSgyKnQubGVuZ3RoKSxpPTA7Zm9yKGxldCBzPTAsbj10Lmxlbmd0aDtzPG47cysrKXtjb25zdCBuPXQuY2hhckNvZGVBdChzKTtuPD0yNTU/ZVtpKytdPW46KGVbaSsrXT1uPj4+OCxlW2krK109MjU1Jm4pfX1lbHNle2lmKCFBcnJheUJ1ZmZlci5pc1ZpZXcodCkpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGRhdGEgZm9ybWF0LCBtdXN0IGJlIGEgc3RyaW5nIG9yIFR5cGVkQXJyYXkuIik7ZT10LnNsaWNlKCksaT1lLmJ5dGVMZW5ndGh9Y29uc3Qgcz1pPj4yLG49aS00KnMscj1uZXcgVWludDMyQXJyYXkoZS5idWZmZXIsMCxzKTtsZXQgYT0wLG89MCxoPXRoaXMuaDEsbD10aGlzLmgyO2NvbnN0IGM9MzQzMjkxODM1MyxkPTQ2MTg0NTkwNyx1PTExNjAxLHA9MTM3MTU7Zm9yKGxldCB0PTA7dDxzO3QrKykxJnQ/KGE9clt0XSxhPWEqYyZQdHxhKnUmRHQsYT1hPDwxNXxhPj4+MTcsYT1hKmQmUHR8YSpwJkR0LGhePWEsaD1oPDwxM3xoPj4+MTksaD01KmgrMzg2NDI5MjE5Nik6KG89clt0XSxvPW8qYyZQdHxvKnUmRHQsbz1vPDwxNXxvPj4+MTcsbz1vKmQmUHR8bypwJkR0LGxePW8sbD1sPDwxM3xsPj4+MTksbD01KmwrMzg2NDI5MjE5Nik7c3dpdGNoKGE9MCxuKXtjYXNlIDM6YV49ZVs0KnMrMl08PDE2O2Nhc2UgMjphXj1lWzQqcysxXTw8ODtjYXNlIDE6YV49ZVs0KnNdLGE9YSpjJlB0fGEqdSZEdCxhPWE8PDE1fGE+Pj4xNyxhPWEqZCZQdHxhKnAmRHQsMSZzP2hePWE6bF49YX10aGlzLmgxPWgsdGhpcy5oMj1sfWhleGRpZ2VzdCgpe2xldCB0PXRoaXMuaDEsZT10aGlzLmgyO3JldHVybiB0Xj1lPj4+MSx0PTM5ODE4MDY3OTcqdCZQdHwzNjA0NSp0JkR0LGU9NDI4MzU0MzUxMSplJlB0fCgyOTUwMTYzNzk3KihlPDwxNnx0Pj4+MTYpJlB0KT4+PjE2LHRePWU+Pj4xLHQ9NDQ0OTg0NDAzKnQmUHR8NjA0OTkqdCZEdCxlPTMzMDE4ODIzNjYqZSZQdHwoMzEyMDQzNzg5MyooZTw8MTZ8dD4+PjE2KSZQdCk+Pj4xNix0Xj1lPj4+MSwodD4+PjApLnRvU3RyaW5nKDE2KS5wYWRTdGFydCg4LCIwIikrKGU+Pj4wKS50b1N0cmluZygxNikucGFkU3RhcnQoOCwiMCIpfX1jb25zdCBGdD1PYmplY3QuZnJlZXplKHttYXA6bnVsbCxoYXNoOiIiLHRyYW5zZmVyOnZvaWQgMH0pO2NsYXNzIE90eyNNZT0hMTsja2U9bnVsbDsjSWU9bmV3IE1hcDtjb25zdHJ1Y3Rvcigpe3RoaXMub25TZXRNb2RpZmllZD1udWxsLHRoaXMub25SZXNldE1vZGlmaWVkPW51bGwsdGhpcy5vbkFubm90YXRpb25FZGl0b3I9bnVsbH1nZXRWYWx1ZSh0LGUpe2NvbnN0IGk9dGhpcy4jSWUuZ2V0KHQpO3JldHVybiB2b2lkIDA9PT1pP2U6T2JqZWN0LmFzc2lnbihlLGkpfWdldFJhd1ZhbHVlKHQpe3JldHVybiB0aGlzLiNJZS5nZXQodCl9cmVtb3ZlKHQpe2lmKHRoaXMuI0llLmRlbGV0ZSh0KSwwPT09dGhpcy4jSWUuc2l6ZSYmdGhpcy5yZXNldE1vZGlmaWVkKCksImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMub25Bbm5vdGF0aW9uRWRpdG9yKXtmb3IoY29uc3QgdCBvZiB0aGlzLiNJZS52YWx1ZXMoKSlpZih0IGluc3RhbmNlb2Yga3QpcmV0dXJuO3RoaXMub25Bbm5vdGF0aW9uRWRpdG9yKG51bGwpfX1zZXRWYWx1ZSh0LGUpe2NvbnN0IGk9dGhpcy4jSWUuZ2V0KHQpO2xldCBzPSExO2lmKHZvaWQgMCE9PWkpZm9yKGNvbnN0W3Qsbl1vZiBPYmplY3QuZW50cmllcyhlKSlpW3RdIT09biYmKHM9ITAsaVt0XT1uKTtlbHNlIHM9ITAsdGhpcy4jSWUuc2V0KHQsZSk7cyYmdGhpcy4jUmUoKSxlIGluc3RhbmNlb2Yga3QmJiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLm9uQW5ub3RhdGlvbkVkaXRvciYmdGhpcy5vbkFubm90YXRpb25FZGl0b3IoZS5jb25zdHJ1Y3Rvci5fdHlwZSl9aGFzKHQpe3JldHVybiB0aGlzLiNJZS5oYXModCl9Z2V0QWxsKCl7cmV0dXJuIHRoaXMuI0llLnNpemU+MD9PKHRoaXMuI0llKTpudWxsfXNldEFsbCh0KXtmb3IoY29uc3RbZSxpXW9mIE9iamVjdC5lbnRyaWVzKHQpKXRoaXMuc2V0VmFsdWUoZSxpKX1nZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNJZS5zaXplfSNSZSgpe3RoaXMuI01lfHwodGhpcy4jTWU9ITAsImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMub25TZXRNb2RpZmllZCYmdGhpcy5vblNldE1vZGlmaWVkKCkpfXJlc2V0TW9kaWZpZWQoKXt0aGlzLiNNZSYmKHRoaXMuI01lPSExLCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLm9uUmVzZXRNb2RpZmllZCYmdGhpcy5vblJlc2V0TW9kaWZpZWQoKSl9Z2V0IHByaW50KCl7cmV0dXJuIG5ldyBOdCh0aGlzKX1nZXQgc2VyaWFsaXphYmxlKCl7aWYoMD09PXRoaXMuI0llLnNpemUpcmV0dXJuIEZ0O2NvbnN0IHQ9bmV3IE1hcCxlPW5ldyBMdCxpPVtdLHM9T2JqZWN0LmNyZWF0ZShudWxsKTtsZXQgbj0hMTtmb3IoY29uc3RbaSxyXW9mIHRoaXMuI0llKXtjb25zdCBhPXIgaW5zdGFuY2VvZiBrdD9yLnNlcmlhbGl6ZSghMSxzKTpyO2EmJih0LnNldChpLGEpLGUudXBkYXRlKGAke2l9OiR7SlNPTi5zdHJpbmdpZnkoYSl9YCksbnx8PSEhYS5iaXRtYXApfWlmKG4pZm9yKGNvbnN0IGUgb2YgdC52YWx1ZXMoKSllLmJpdG1hcCYmaS5wdXNoKGUuYml0bWFwKTtyZXR1cm4gdC5zaXplPjA/e21hcDp0LGhhc2g6ZS5oZXhkaWdlc3QoKSx0cmFuc2ZlcjppfTpGdH1nZXQgZWRpdG9yU3RhdHMoKXtsZXQgdD1udWxsO2NvbnN0IGU9bmV3IE1hcDtmb3IoY29uc3QgaSBvZiB0aGlzLiNJZS52YWx1ZXMoKSl7aWYoIShpIGluc3RhbmNlb2Yga3QpKWNvbnRpbnVlO2NvbnN0IHM9aS50ZWxlbWV0cnlGaW5hbERhdGE7aWYoIXMpY29udGludWU7Y29uc3R7dHlwZTpufT1zO2UuaGFzKG4pfHxlLnNldChuLE9iamVjdC5nZXRQcm90b3R5cGVPZihpKS5jb25zdHJ1Y3RvciksdHx8PU9iamVjdC5jcmVhdGUobnVsbCk7Y29uc3Qgcj10W25dfHw9bmV3IE1hcDtmb3IoY29uc3RbdCxlXW9mIE9iamVjdC5lbnRyaWVzKHMpKXtpZigidHlwZSI9PT10KWNvbnRpbnVlO2xldCBpPXIuZ2V0KHQpO2l8fChpPW5ldyBNYXAsci5zZXQodCxpKSk7Y29uc3Qgcz1pLmdldChlKT8/MDtpLnNldChlLHMrMSl9fWZvcihjb25zdFtpLHNdb2YgZSl0W2ldPXMuY29tcHV0ZVRlbGVtZXRyeUZpbmFsRGF0YSh0W2ldKTtyZXR1cm4gdH1yZXNldE1vZGlmaWVkSWRzKCl7dGhpcy4ja2U9bnVsbH1nZXQgbW9kaWZpZWRJZHMoKXtpZih0aGlzLiNrZSlyZXR1cm4gdGhpcy4ja2U7Y29uc3QgdD1bXTtmb3IoY29uc3QgZSBvZiB0aGlzLiNJZS52YWx1ZXMoKSllIGluc3RhbmNlb2Yga3QmJmUuYW5ub3RhdGlvbkVsZW1lbnRJZCYmZS5zZXJpYWxpemUoKSYmdC5wdXNoKGUuYW5ub3RhdGlvbkVsZW1lbnRJZCk7cmV0dXJuIHRoaXMuI2tlPXtpZHM6bmV3IFNldCh0KSxoYXNoOnQuam9pbigiLCIpfX19Y2xhc3MgTnQgZXh0ZW5kcyBPdHsjUGU7Y29uc3RydWN0b3IodCl7c3VwZXIoKTtjb25zdHttYXA6ZSxoYXNoOmksdHJhbnNmZXI6c309dC5zZXJpYWxpemFibGUsbj1zdHJ1Y3R1cmVkQ2xvbmUoZSxzP3t0cmFuc2ZlcjpzfTpudWxsKTt0aGlzLiNQZT17bWFwOm4saGFzaDppLHRyYW5zZmVyOnN9fWdldCBwcmludCgpe3goIlNob3VsZCBub3QgY2FsbCBQcmludEFubm90YXRpb25TdG9yYWdlLnByaW50Iil9Z2V0IHNlcmlhbGl6YWJsZSgpe3JldHVybiB0aGlzLiNQZX1nZXQgbW9kaWZpZWRJZHMoKXtyZXR1cm4gQyh0aGlzLCJtb2RpZmllZElkcyIse2lkczpuZXcgU2V0LGhhc2g6IiJ9KX19Y2xhc3MgQnR7I0RlPW5ldyBTZXQ7Y29uc3RydWN0b3Ioe293bmVyRG9jdW1lbnQ6dD1nbG9iYWxUaGlzLmRvY3VtZW50LHN0eWxlRWxlbWVudDplPW51bGx9KXt0aGlzLl9kb2N1bWVudD10LHRoaXMubmF0aXZlRm9udEZhY2VzPW5ldyBTZXQsdGhpcy5zdHlsZUVsZW1lbnQ9bnVsbCx0aGlzLmxvYWRpbmdSZXF1ZXN0cz1bXSx0aGlzLmxvYWRUZXN0Rm9udElkPTB9YWRkTmF0aXZlRm9udEZhY2UodCl7dGhpcy5uYXRpdmVGb250RmFjZXMuYWRkKHQpLHRoaXMuX2RvY3VtZW50LmZvbnRzLmFkZCh0KX1yZW1vdmVOYXRpdmVGb250RmFjZSh0KXt0aGlzLm5hdGl2ZUZvbnRGYWNlcy5kZWxldGUodCksdGhpcy5fZG9jdW1lbnQuZm9udHMuZGVsZXRlKHQpfWluc2VydFJ1bGUodCl7dGhpcy5zdHlsZUVsZW1lbnR8fCh0aGlzLnN0eWxlRWxlbWVudD10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpLHRoaXMuX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZCh0aGlzLnN0eWxlRWxlbWVudCkpO2NvbnN0IGU9dGhpcy5zdHlsZUVsZW1lbnQuc2hlZXQ7ZS5pbnNlcnRSdWxlKHQsZS5jc3NSdWxlcy5sZW5ndGgpfWNsZWFyKCl7Zm9yKGNvbnN0IHQgb2YgdGhpcy5uYXRpdmVGb250RmFjZXMpdGhpcy5fZG9jdW1lbnQuZm9udHMuZGVsZXRlKHQpO3RoaXMubmF0aXZlRm9udEZhY2VzLmNsZWFyKCksdGhpcy4jRGUuY2xlYXIoKSx0aGlzLnN0eWxlRWxlbWVudCYmKHRoaXMuc3R5bGVFbGVtZW50LnJlbW92ZSgpLHRoaXMuc3R5bGVFbGVtZW50PW51bGwpfWFzeW5jIGxvYWRTeXN0ZW1Gb250KHtzeXN0ZW1Gb250SW5mbzp0LF9pbnNwZWN0Rm9udDplfSl7aWYodCYmIXRoaXMuI0RlLmhhcyh0LmxvYWRlZE5hbWUpKWlmKF8oIXRoaXMuZGlzYWJsZUZvbnRGYWNlLCJsb2FkU3lzdGVtRm9udCBzaG91bGRuJ3QgYmUgY2FsbGVkIHdoZW4gYGRpc2FibGVGb250RmFjZWAgaXMgc2V0LiIpLHRoaXMuaXNGb250TG9hZGluZ0FQSVN1cHBvcnRlZCl7Y29uc3R7bG9hZGVkTmFtZTppLHNyYzpzLHN0eWxlOm59PXQscj1uZXcgRm9udEZhY2UoaSxzLG4pO3RoaXMuYWRkTmF0aXZlRm9udEZhY2Uocik7dHJ5e2F3YWl0IHIubG9hZCgpLHRoaXMuI0RlLmFkZChpKSxlPy4odCl9Y2F0Y2h7dyhgQ2Fubm90IGxvYWQgc3lzdGVtIGZvbnQ6ICR7dC5iYXNlRm9udE5hbWV9LCBpbnN0YWxsaW5nIGl0IGNvdWxkIGhlbHAgdG8gaW1wcm92ZSBQREYgcmVuZGVyaW5nLmApLHRoaXMucmVtb3ZlTmF0aXZlRm9udEZhY2Uocil9fWVsc2UgeCgiTm90IGltcGxlbWVudGVkOiBsb2FkU3lzdGVtRm9udCB3aXRob3V0IHRoZSBGb250IExvYWRpbmcgQVBJLiIpfWFzeW5jIGJpbmQodCl7aWYodC5hdHRhY2hlZHx8dC5taXNzaW5nRmlsZSYmIXQuc3lzdGVtRm9udEluZm8pcmV0dXJuO2lmKHQuYXR0YWNoZWQ9ITAsdC5zeXN0ZW1Gb250SW5mbylyZXR1cm4gdm9pZCBhd2FpdCB0aGlzLmxvYWRTeXN0ZW1Gb250KHQpO2lmKHRoaXMuaXNGb250TG9hZGluZ0FQSVN1cHBvcnRlZCl7Y29uc3QgZT10LmNyZWF0ZU5hdGl2ZUZvbnRGYWNlKCk7aWYoZSl7dGhpcy5hZGROYXRpdmVGb250RmFjZShlKTt0cnl7YXdhaXQgZS5sb2FkZWR9Y2F0Y2goaSl7dGhyb3cgdyhgRmFpbGVkIHRvIGxvYWQgZm9udCAnJHtlLmZhbWlseX0nOiAnJHtpfScuYCksdC5kaXNhYmxlRm9udEZhY2U9ITAsaX19cmV0dXJufWNvbnN0IGU9dC5jcmVhdGVGb250RmFjZVJ1bGUoKTtpZihlKXtpZih0aGlzLmluc2VydFJ1bGUoZSksdGhpcy5pc1N5bmNGb250TG9hZGluZ1N1cHBvcnRlZClyZXR1cm47YXdhaXQgbmV3IFByb21pc2UoKGU9Pntjb25zdCBpPXRoaXMuX3F1ZXVlTG9hZGluZ0NhbGxiYWNrKGUpO3RoaXMuX3ByZXBhcmVGb250TG9hZEV2ZW50KHQsaSl9KSl9fWdldCBpc0ZvbnRMb2FkaW5nQVBJU3VwcG9ydGVkKCl7cmV0dXJuIEModGhpcywiaXNGb250TG9hZGluZ0FQSVN1cHBvcnRlZCIsISF0aGlzLl9kb2N1bWVudD8uZm9udHMpfWdldCBpc1N5bmNGb250TG9hZGluZ1N1cHBvcnRlZCgpe2xldCB0PSExO3JldHVybihufHwidW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvciYmInN0cmluZyI9PXR5cGVvZiBuYXZpZ2F0b3I/LnVzZXJBZ2VudCYmL01vemlsbGFcLzUuMC4qP3J2OlxkKy4qPyBHZWNrby8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkmJih0PSEwKSxDKHRoaXMsImlzU3luY0ZvbnRMb2FkaW5nU3VwcG9ydGVkIix0KX1fcXVldWVMb2FkaW5nQ2FsbGJhY2sodCl7Y29uc3R7bG9hZGluZ1JlcXVlc3RzOmV9PXRoaXMsaT17ZG9uZTohMSxjb21wbGV0ZTpmdW5jdGlvbigpe2ZvcihfKCFpLmRvbmUsImNvbXBsZXRlUmVxdWVzdCgpIGNhbm5vdCBiZSBjYWxsZWQgdHdpY2UuIiksaS5kb25lPSEwO2UubGVuZ3RoPjAmJmVbMF0uZG9uZTspe2NvbnN0IHQ9ZS5zaGlmdCgpO3NldFRpbWVvdXQodC5jYWxsYmFjaywwKX19LGNhbGxiYWNrOnR9O3JldHVybiBlLnB1c2goaSksaX1nZXQgX2xvYWRUZXN0Rm9udCgpe3JldHVybiBDKHRoaXMsIl9sb2FkVGVzdEZvbnQiLGF0b2IoIlQxUlVUd0FMQUlBQUF3QXdRMFpHSURIdFpnNEFBQU9ZQUFBQWdVWkdWRTFsa3pad0FBQUVIQUFBQUJ4SFJFVkdBQlFBRlFBQUJEZ0FBQUFlVDFNdk1sWU5Zd2tBQUFFZ0FBQUFZR050WVhBQkRRTFVBQUFDTkFBQUFVSm9aV0ZrL3hWRkRRQUFBTHdBQUFBMmFHaGxZUWRrQStvQUFBRDBBQUFBSkdodGRIZ0Q2QUFBQUFBRVdBQUFBQVp0WVhod0FBSlFBQUFBQVJnQUFBQUdibUZ0WlZqbWRINEFBQUdBQUFBQXNYQnZjM1QvaGdBekFBQURlQUFBQUNBQUFRQUFBQUVBQUxaUkZzUmZEenoxQUFzRDZBQUFBQURPQk9UTEFBQUFBTTRLSER3QUFBQUFBK2dESVFBQUFBZ0FBZ0FBQUFBQUFBQUJBQUFESVFBQUFGb0Q2QUFBQUFBRDZBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFVQUFBQWdBQUFBUUQ2QUgwQUFVQUFBS0tBcndBQUFDTUFvb0N2QUFBQWVBQU1RRUNBQUFDQUFZSkFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFBRkJtUldRQXdBQXVBQzRESVA4NEFGb0RJUUFBQUFBQUFRQUFBQUFBQUFBQUFDQUFJQUFCQUFBQURnQ3VBQUVBQUFBQUFBQUFBUUFBQUFFQUFBQUFBQUVBQVFBQUFBRUFBQUFBQUFJQUFRQUFBQUVBQUFBQUFBTUFBUUFBQUFFQUFBQUFBQVFBQVFBQUFBRUFBQUFBQUFVQUFRQUFBQUVBQUFBQUFBWUFBUUFBQUFNQUFRUUpBQUFBQWdBQkFBTUFBUVFKQUFFQUFnQUJBQU1BQVFRSkFBSUFBZ0FCQUFNQUFRUUpBQU1BQWdBQkFBTUFBUVFKQUFRQUFnQUJBQU1BQVFRSkFBVUFBZ0FCQUFNQUFRUUpBQVlBQWdBQldBQllBQUFBQUFBQUF3QUFBQU1BQUFBY0FBRUFBQUFBQUR3QUF3QUJBQUFBSEFBRUFDQUFBQUFFQUFRQUFRQUFBQzcvL3dBQUFDNy8vLy9UQUFFQUFBQUFBQUFCQmdBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFNQUFBQUFBQUQvZ3dBeUFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQVFFQUFFQkFRSllBQUVCQVNINER3RDRHd0hFQXZnY0EvZ1hCSXdNQVl1TCtuejV0UVhrRDVqM0NCTG5FUUFDQVFFQklWaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZQUFBQkFRQUFEd0FDQVFFRUUvdDNEb3Y2ZkFINmZBVCtmUHA4K253SERvc01Ddm0xQ3ZtMURBejZmQlFBQUFBQUFBQUJBQUFBQU1tSmJ6RUFBQUFBemdUakZRQUFBQURPQk9RcEFBRUFBQUFBQUFBQURBQVVBQVFBQUFBQkFBQUFBZ0FCQUFBQUFBQUFBQUFENkFBQUFBQUFBQT09IikpfV9wcmVwYXJlRm9udExvYWRFdmVudCh0LGUpe2Z1bmN0aW9uIGkodCxlKXtyZXR1cm4gdC5jaGFyQ29kZUF0KGUpPDwyNHx0LmNoYXJDb2RlQXQoZSsxKTw8MTZ8dC5jaGFyQ29kZUF0KGUrMik8PDh8MjU1JnQuY2hhckNvZGVBdChlKzMpfWZ1bmN0aW9uIHModCxlLGkscyl7cmV0dXJuIHQuc3Vic3RyaW5nKDAsZSkrcyt0LnN1YnN0cmluZyhlK2kpfWxldCBuLHI7Y29uc3QgYT10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTthLndpZHRoPTEsYS5oZWlnaHQ9MTtjb25zdCBvPWEuZ2V0Q29udGV4dCgiMmQiKTtsZXQgaD0wO2NvbnN0IGw9YGx0JHtEYXRlLm5vdygpfSR7dGhpcy5sb2FkVGVzdEZvbnRJZCsrfWA7bGV0IGM9dGhpcy5fbG9hZFRlc3RGb250O2M9cyhjLDk3NixsLmxlbmd0aCxsKTtjb25zdCBkPTE0ODIxODQ3OTI7bGV0IHU9aShjLDE2KTtmb3Iobj0wLHI9bC5sZW5ndGgtMztuPHI7bis9NCl1PXUtZCtpKGwsbil8MDt2YXIgcDtuPGwubGVuZ3RoJiYodT11LWQraShsKyJYWFgiLG4pfDApLGM9cyhjLDE2LDQsKHA9dSxTdHJpbmcuZnJvbUNoYXJDb2RlKHA+PjI0JjI1NSxwPj4xNiYyNTUscD4+OCYyNTUsMjU1JnApKSk7Y29uc3QgZz1gQGZvbnQtZmFjZSB7Zm9udC1mYW1pbHk6IiR7bH0iO3NyYzp1cmwoZGF0YTpmb250L29wZW50eXBlO2Jhc2U2NCwke2J0b2EoYyl9KTt9YDt0aGlzLmluc2VydFJ1bGUoZyk7Y29uc3QgZj10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtmLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIsZi5zdHlsZS53aWR0aD1mLnN0eWxlLmhlaWdodD0iMTBweCIsZi5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGYuc3R5bGUudG9wPWYuc3R5bGUubGVmdD0iMHB4Ijtmb3IoY29uc3QgZSBvZlt0LmxvYWRlZE5hbWUsbF0pe2NvbnN0IHQ9dGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO3QudGV4dENvbnRlbnQ9IkhpIix0LnN0eWxlLmZvbnRGYW1pbHk9ZSxmLmFwcGVuZCh0KX10aGlzLl9kb2N1bWVudC5ib2R5LmFwcGVuZChmKSxmdW5jdGlvbiB0KGUsaSl7aWYoKytoPjMwKXJldHVybiB3KCJMb2FkIHRlc3QgZm9udCBuZXZlciBsb2FkZWQuIiksdm9pZCBpKCk7by5mb250PSIzMHB4ICIrZSxvLmZpbGxUZXh0KCIuIiwwLDIwKSxvLmdldEltYWdlRGF0YSgwLDAsMSwxKS5kYXRhWzNdPjA/aSgpOnNldFRpbWVvdXQodC5iaW5kKG51bGwsZSxpKSl9KGwsKCgpPT57Zi5yZW1vdmUoKSxlLmNvbXBsZXRlKCl9KSl9fWNsYXNzIHp0e2NvbnN0cnVjdG9yKHQse2Rpc2FibGVGb250RmFjZTplPSExLGluc3BlY3RGb250Omk9bnVsbH0pe3RoaXMuY29tcGlsZWRHbHlwaHM9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IoY29uc3QgZSBpbiB0KXRoaXNbZV09dFtlXTt0aGlzLmRpc2FibGVGb250RmFjZT0hMD09PWUsdGhpcy5faW5zcGVjdEZvbnQ9aX1jcmVhdGVOYXRpdmVGb250RmFjZSgpe2lmKCF0aGlzLmRhdGF8fHRoaXMuZGlzYWJsZUZvbnRGYWNlKXJldHVybiBudWxsO2xldCB0O2lmKHRoaXMuY3NzRm9udEluZm8pe2NvbnN0IGU9e3dlaWdodDp0aGlzLmNzc0ZvbnRJbmZvLmZvbnRXZWlnaHR9O3RoaXMuY3NzRm9udEluZm8uaXRhbGljQW5nbGUmJihlLnN0eWxlPWBvYmxpcXVlICR7dGhpcy5jc3NGb250SW5mby5pdGFsaWNBbmdsZX1kZWdgKSx0PW5ldyBGb250RmFjZSh0aGlzLmNzc0ZvbnRJbmZvLmZvbnRGYW1pbHksdGhpcy5kYXRhLGUpfWVsc2UgdD1uZXcgRm9udEZhY2UodGhpcy5sb2FkZWROYW1lLHRoaXMuZGF0YSx7fSk7cmV0dXJuIHRoaXMuX2luc3BlY3RGb250Py4odGhpcyksdH1jcmVhdGVGb250RmFjZVJ1bGUoKXtpZighdGhpcy5kYXRhfHx0aGlzLmRpc2FibGVGb250RmFjZSlyZXR1cm4gbnVsbDtjb25zdCB0PUwodGhpcy5kYXRhKSxlPWB1cmwoZGF0YToke3RoaXMubWltZXR5cGV9O2Jhc2U2NCwke2J0b2EodCl9KTtgO2xldCBpO2lmKHRoaXMuY3NzRm9udEluZm8pe2xldCB0PWBmb250LXdlaWdodDogJHt0aGlzLmNzc0ZvbnRJbmZvLmZvbnRXZWlnaHR9O2A7dGhpcy5jc3NGb250SW5mby5pdGFsaWNBbmdsZSYmKHQrPWBmb250LXN0eWxlOiBvYmxpcXVlICR7dGhpcy5jc3NGb250SW5mby5pdGFsaWNBbmdsZX1kZWc7YCksaT1gQGZvbnQtZmFjZSB7Zm9udC1mYW1pbHk6IiR7dGhpcy5jc3NGb250SW5mby5mb250RmFtaWx5fSI7JHt0fXNyYzoke2V9fWB9ZWxzZSBpPWBAZm9udC1mYWNlIHtmb250LWZhbWlseToiJHt0aGlzLmxvYWRlZE5hbWV9IjtzcmM6JHtlfX1gO3JldHVybiB0aGlzLl9pbnNwZWN0Rm9udD8uKHRoaXMsZSksaX1nZXRQYXRoR2VuZXJhdG9yKHQsZSl7aWYodm9pZCAwIT09dGhpcy5jb21waWxlZEdseXBoc1tlXSlyZXR1cm4gdGhpcy5jb21waWxlZEdseXBoc1tlXTtsZXQgaTt0cnl7aT10LmdldCh0aGlzLmxvYWRlZE5hbWUrIl9wYXRoXyIrZSl9Y2F0Y2godCl7dyhgZ2V0UGF0aEdlbmVyYXRvciAtIGlnbm9yaW5nIGNoYXJhY3RlcjogIiR7dH0iLmApfWlmKCFBcnJheS5pc0FycmF5KGkpfHwwPT09aS5sZW5ndGgpcmV0dXJuIHRoaXMuY29tcGlsZWRHbHlwaHNbZV09ZnVuY3Rpb24odCxlKXt9O2NvbnN0IHM9W107Zm9yKGxldCB0PTAsZT1pLmxlbmd0aDt0PGU7KXN3aXRjaChpW3QrK10pe2Nhc2UgMDp7Y29uc3RbZSxuLHIsYSxvLGhdPWkuc2xpY2UodCx0KzYpO3MucHVzaCgodD0+dC5iZXppZXJDdXJ2ZVRvKGUsbixyLGEsbyxoKSkpLHQrPTZ9YnJlYWs7Y2FzZSAxOntjb25zdFtlLG5dPWkuc2xpY2UodCx0KzIpO3MucHVzaCgodD0+dC5tb3ZlVG8oZSxuKSkpLHQrPTJ9YnJlYWs7Y2FzZSAyOntjb25zdFtlLG5dPWkuc2xpY2UodCx0KzIpO3MucHVzaCgodD0+dC5saW5lVG8oZSxuKSkpLHQrPTJ9YnJlYWs7Y2FzZSAzOntjb25zdFtlLG4scixhXT1pLnNsaWNlKHQsdCs0KTtzLnB1c2goKHQ9PnQucXVhZHJhdGljQ3VydmVUbyhlLG4scixhKSkpLHQrPTR9YnJlYWs7Y2FzZSA0OnMucHVzaCgodD0+dC5yZXN0b3JlKCkpKTticmVhaztjYXNlIDU6cy5wdXNoKCh0PT50LnNhdmUoKSkpO2JyZWFrO2Nhc2UgNjpfKDI9PT1zLmxlbmd0aCwiU2NhbGUgY29tbWFuZCBpcyBvbmx5IHZhbGlkIGF0IHRoZSB0aGlyZCBwb3NpdGlvbi4iKTticmVhaztjYXNlIDc6e2NvbnN0W2UsbixyLGEsbyxoXT1pLnNsaWNlKHQsdCs2KTtzLnB1c2goKHQ9PnQudHJhbnNmb3JtKGUsbixyLGEsbyxoKSkpLHQrPTZ9YnJlYWs7Y2FzZSA4Ontjb25zdFtlLG5dPWkuc2xpY2UodCx0KzIpO3MucHVzaCgodD0+dC50cmFuc2xhdGUoZSxuKSkpLHQrPTJ9fXJldHVybiB0aGlzLmNvbXBpbGVkR2x5cGhzW2VdPWZ1bmN0aW9uKHQsZSl7c1swXSh0KSxzWzFdKHQpLHQuc2NhbGUoZSwtZSk7Zm9yKGxldCBlPTIsaT1zLmxlbmd0aDtlPGk7ZSsrKXNbZV0odCl9fX1pZihuKXt2YXIgSHQ9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCksanQ9bnVsbDsoYXN5bmMoKT0+e2NvbnN0IHQ9YXdhaXQgaW1wb3J0KCJmcyIpLGU9YXdhaXQgaW1wb3J0KCJodHRwIiksaT1hd2FpdCBpbXBvcnQoImh0dHBzIikscz1hd2FpdCBpbXBvcnQoInVybCIpO2xldCBuLHI7dHJ5e249YXdhaXQgaW1wb3J0KCJjYW52YXMiKX1jYXRjaHt9dHJ5e3I9YXdhaXQgaW1wb3J0KCJwYXRoMmQiKX1jYXRjaHt9cmV0dXJuIG5ldyBNYXAoT2JqZWN0LmVudHJpZXMoe2ZzOnQsaHR0cDplLGh0dHBzOmksdXJsOnMsY2FudmFzOm4scGF0aDJkOnJ9KSl9KSgpLnRoZW4oKHQ9PntpZihqdD10LEh0LnJlc29sdmUoKSwhZ2xvYmFsVGhpcy5ET01NYXRyaXgpe2NvbnN0IGU9dC5nZXQoImNhbnZhcyIpPy5ET01NYXRyaXg7ZT9nbG9iYWxUaGlzLkRPTU1hdHJpeD1lOncoIkNhbm5vdCBwb2x5ZmlsbCBgRE9NTWF0cml4YCwgcmVuZGVyaW5nIG1heSBiZSBicm9rZW4uIil9aWYoIWdsb2JhbFRoaXMuUGF0aDJEKXtjb25zdCBlPXQuZ2V0KCJjYW52YXMiKT8uQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELGk9dC5nZXQoInBhdGgyZCIpPy5hcHBseVBhdGgyRFRvQ2FudmFzUmVuZGVyaW5nQ29udGV4dCxzPXQuZ2V0KCJwYXRoMmQiKT8uUGF0aDJEO2UmJmkmJnM/KGkoZSksZ2xvYmFsVGhpcy5QYXRoMkQ9cyk6dygiQ2Fubm90IHBvbHlmaWxsIGBQYXRoMkRgLCByZW5kZXJpbmcgbWF5IGJlIGJyb2tlbi4iKX19KSwodD0+e3coYGxvYWRQYWNrYWdlczogJHt0fWApLGp0PW5ldyBNYXAsSHQucmVzb2x2ZSgpfSkpfWNsYXNzIFV0e3N0YXRpYyBnZXQgcHJvbWlzZSgpe3JldHVybiBIdC5wcm9taXNlfXN0YXRpYyBnZXQodCl7cmV0dXJuIGp0Py5nZXQodCl9fWNvbnN0ICR0PWZ1bmN0aW9uKHQpe3JldHVybiBVdC5nZXQoImZzIikucHJvbWlzZXMucmVhZEZpbGUodCkudGhlbigodD0+bmV3IFVpbnQ4QXJyYXkodCkpKX0sV3Q9IkZpbGwiLEd0PSJTdHJva2UiLFZ0PSJTaGFkaW5nIjtmdW5jdGlvbiBxdCh0LGUpe2lmKCFlKXJldHVybjtjb25zdCBpPWVbMl0tZVswXSxzPWVbM10tZVsxXSxuPW5ldyBQYXRoMkQ7bi5yZWN0KGVbMF0sZVsxXSxpLHMpLHQuY2xpcChuKX1jbGFzcyBYdHtnZXRQYXR0ZXJuKCl7eCgiQWJzdHJhY3QgbWV0aG9kIGBnZXRQYXR0ZXJuYCBjYWxsZWQuIil9fWNsYXNzIEt0IGV4dGVuZHMgWHR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLl90eXBlPXRbMV0sdGhpcy5fYmJveD10WzJdLHRoaXMuX2NvbG9yU3RvcHM9dFszXSx0aGlzLl9wMD10WzRdLHRoaXMuX3AxPXRbNV0sdGhpcy5fcjA9dFs2XSx0aGlzLl9yMT10WzddLHRoaXMubWF0cml4PW51bGx9X2NyZWF0ZUdyYWRpZW50KHQpe2xldCBlOyJheGlhbCI9PT10aGlzLl90eXBlP2U9dC5jcmVhdGVMaW5lYXJHcmFkaWVudCh0aGlzLl9wMFswXSx0aGlzLl9wMFsxXSx0aGlzLl9wMVswXSx0aGlzLl9wMVsxXSk6InJhZGlhbCI9PT10aGlzLl90eXBlJiYoZT10LmNyZWF0ZVJhZGlhbEdyYWRpZW50KHRoaXMuX3AwWzBdLHRoaXMuX3AwWzFdLHRoaXMuX3IwLHRoaXMuX3AxWzBdLHRoaXMuX3AxWzFdLHRoaXMuX3IxKSk7Zm9yKGNvbnN0IHQgb2YgdGhpcy5fY29sb3JTdG9wcyllLmFkZENvbG9yU3RvcCh0WzBdLHRbMV0pO3JldHVybiBlfWdldFBhdHRlcm4odCxlLGkscyl7bGV0IG47aWYocz09PUd0fHxzPT09V3Qpe2NvbnN0IHI9ZS5jdXJyZW50LmdldENsaXBwZWRQYXRoQm91bmRpbmdCb3gocyxmdCh0KSl8fFswLDAsMCwwXSxhPU1hdGguY2VpbChyWzJdLXJbMF0pfHwxLG89TWF0aC5jZWlsKHJbM10tclsxXSl8fDEsaD1lLmNhY2hlZENhbnZhc2VzLmdldENhbnZhcygicGF0dGVybiIsYSxvKSxsPWguY29udGV4dDtsLmNsZWFyUmVjdCgwLDAsbC5jYW52YXMud2lkdGgsbC5jYW52YXMuaGVpZ2h0KSxsLmJlZ2luUGF0aCgpLGwucmVjdCgwLDAsbC5jYW52YXMud2lkdGgsbC5jYW52YXMuaGVpZ2h0KSxsLnRyYW5zbGF0ZSgtclswXSwtclsxXSksaT16LnRyYW5zZm9ybShpLFsxLDAsMCwxLHJbMF0sclsxXV0pLGwudHJhbnNmb3JtKC4uLmUuYmFzZVRyYW5zZm9ybSksdGhpcy5tYXRyaXgmJmwudHJhbnNmb3JtKC4uLnRoaXMubWF0cml4KSxxdChsLHRoaXMuX2Jib3gpLGwuZmlsbFN0eWxlPXRoaXMuX2NyZWF0ZUdyYWRpZW50KGwpLGwuZmlsbCgpLG49dC5jcmVhdGVQYXR0ZXJuKGguY2FudmFzLCJuby1yZXBlYXQiKTtjb25zdCBjPW5ldyBET01NYXRyaXgoaSk7bi5zZXRUcmFuc2Zvcm0oYyl9ZWxzZSBxdCh0LHRoaXMuX2Jib3gpLG49dGhpcy5fY3JlYXRlR3JhZGllbnQodCk7cmV0dXJuIG59fWZ1bmN0aW9uIFl0KHQsZSxpLHMsbixyLGEsbyl7Y29uc3QgaD1lLmNvb3JkcyxsPWUuY29sb3JzLGM9dC5kYXRhLGQ9NCp0LndpZHRoO2xldCB1O2hbaSsxXT5oW3MrMV0mJih1PWksaT1zLHM9dSx1PXIscj1hLGE9dSksaFtzKzFdPmhbbisxXSYmKHU9cyxzPW4sbj11LHU9YSxhPW8sbz11KSxoW2krMV0+aFtzKzFdJiYodT1pLGk9cyxzPXUsdT1yLHI9YSxhPXUpO2NvbnN0IHA9KGhbaV0rZS5vZmZzZXRYKSplLnNjYWxlWCxnPShoW2krMV0rZS5vZmZzZXRZKSplLnNjYWxlWSxmPShoW3NdK2Uub2Zmc2V0WCkqZS5zY2FsZVgsbT0oaFtzKzFdK2Uub2Zmc2V0WSkqZS5zY2FsZVksYj0oaFtuXStlLm9mZnNldFgpKmUuc2NhbGVYLHY9KGhbbisxXStlLm9mZnNldFkpKmUuc2NhbGVZO2lmKGc+PXYpcmV0dXJuO2NvbnN0IHk9bFtyXSxBPWxbcisxXSx3PWxbcisyXSx4PWxbYV0sXz1sW2ErMV0sRT1sW2ErMl0sQz1sW29dLFM9bFtvKzFdLFQ9bFtvKzJdLE09TWF0aC5yb3VuZChnKSxrPU1hdGgucm91bmQodik7bGV0IEksUixQLEQsTCxGLE8sTjtmb3IobGV0IHQ9TTt0PD1rO3QrKyl7aWYodDxtKXtjb25zdCBlPXQ8Zz8wOihnLXQpLyhnLW0pO0k9cC0ocC1mKSplLFI9eS0oeS14KSplLFA9QS0oQS1fKSplLEQ9dy0ody1FKSplfWVsc2V7bGV0IGU7ZT10PnY/MTptPT09dj8wOihtLXQpLyhtLXYpLEk9Zi0oZi1iKSplLFI9eC0oeC1DKSplLFA9Xy0oXy1TKSplLEQ9RS0oRS1UKSplfWxldCBlO2U9dDxnPzA6dD52PzE6KGctdCkvKGctdiksTD1wLShwLWIpKmUsRj15LSh5LUMpKmUsTz1BLShBLVMpKmUsTj13LSh3LVQpKmU7Y29uc3QgaT1NYXRoLnJvdW5kKE1hdGgubWluKEksTCkpLHM9TWF0aC5yb3VuZChNYXRoLm1heChJLEwpKTtsZXQgbj1kKnQrNCppO2ZvcihsZXQgdD1pO3Q8PXM7dCsrKWU9KEktdCkvKEktTCksZTwwP2U9MDplPjEmJihlPTEpLGNbbisrXT1SLShSLUYpKmV8MCxjW24rK109UC0oUC1PKSplfDAsY1tuKytdPUQtKEQtTikqZXwwLGNbbisrXT0yNTV9fWZ1bmN0aW9uIFF0KHQsZSxpKXtjb25zdCBzPWUuY29vcmRzLG49ZS5jb2xvcnM7bGV0IHIsYTtzd2l0Y2goZS50eXBlKXtjYXNlImxhdHRpY2UiOmNvbnN0IG89ZS52ZXJ0aWNlc1BlclJvdyxoPU1hdGguZmxvb3Iocy5sZW5ndGgvbyktMSxsPW8tMTtmb3Iocj0wO3I8aDtyKyspe2xldCBlPXIqbztmb3IobGV0IHI9MDtyPGw7cisrLGUrKylZdCh0LGksc1tlXSxzW2UrMV0sc1tlK29dLG5bZV0sbltlKzFdLG5bZStvXSksWXQodCxpLHNbZStvKzFdLHNbZSsxXSxzW2Urb10sbltlK28rMV0sbltlKzFdLG5bZStvXSl9YnJlYWs7Y2FzZSJ0cmlhbmdsZXMiOmZvcihyPTAsYT1zLmxlbmd0aDtyPGE7cis9MylZdCh0LGksc1tyXSxzW3IrMV0sc1tyKzJdLG5bcl0sbltyKzFdLG5bcisyXSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImlsbGVnYWwgZmlndXJlIil9fWNsYXNzIEp0IGV4dGVuZHMgWHR7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLl9jb29yZHM9dFsyXSx0aGlzLl9jb2xvcnM9dFszXSx0aGlzLl9maWd1cmVzPXRbNF0sdGhpcy5fYm91bmRzPXRbNV0sdGhpcy5fYmJveD10WzddLHRoaXMuX2JhY2tncm91bmQ9dFs4XSx0aGlzLm1hdHJpeD1udWxsfV9jcmVhdGVNZXNoQ2FudmFzKHQsZSxpKXtjb25zdCBzPU1hdGguZmxvb3IodGhpcy5fYm91bmRzWzBdKSxuPU1hdGguZmxvb3IodGhpcy5fYm91bmRzWzFdKSxyPU1hdGguY2VpbCh0aGlzLl9ib3VuZHNbMl0pLXMsYT1NYXRoLmNlaWwodGhpcy5fYm91bmRzWzNdKS1uLG89TWF0aC5taW4oTWF0aC5jZWlsKE1hdGguYWJzKHIqdFswXSoxLjEpKSwzZTMpLGg9TWF0aC5taW4oTWF0aC5jZWlsKE1hdGguYWJzKGEqdFsxXSoxLjEpKSwzZTMpLGw9ci9vLGM9YS9oLGQ9e2Nvb3Jkczp0aGlzLl9jb29yZHMsY29sb3JzOnRoaXMuX2NvbG9ycyxvZmZzZXRYOi1zLG9mZnNldFk6LW4sc2NhbGVYOjEvbCxzY2FsZVk6MS9jfSx1PW8rNCxwPWgrNCxnPWkuZ2V0Q2FudmFzKCJtZXNoIix1LHApLGY9Zy5jb250ZXh0LG09Zi5jcmVhdGVJbWFnZURhdGEobyxoKTtpZihlKXtjb25zdCB0PW0uZGF0YTtmb3IobGV0IGk9MCxzPXQubGVuZ3RoO2k8cztpKz00KXRbaV09ZVswXSx0W2krMV09ZVsxXSx0W2krMl09ZVsyXSx0W2krM109MjU1fWZvcihjb25zdCB0IG9mIHRoaXMuX2ZpZ3VyZXMpUXQobSx0LGQpO3JldHVybiBmLnB1dEltYWdlRGF0YShtLDIsMikse2NhbnZhczpnLmNhbnZhcyxvZmZzZXRYOnMtMipsLG9mZnNldFk6bi0yKmMsc2NhbGVYOmwsc2NhbGVZOmN9fWdldFBhdHRlcm4odCxlLGkscyl7bGV0IG47aWYocXQodCx0aGlzLl9iYm94KSxzPT09VnQpbj16LnNpbmd1bGFyVmFsdWVEZWNvbXBvc2UyZFNjYWxlKGZ0KHQpKTtlbHNlIGlmKG49ei5zaW5ndWxhclZhbHVlRGVjb21wb3NlMmRTY2FsZShlLmJhc2VUcmFuc2Zvcm0pLHRoaXMubWF0cml4KXtjb25zdCB0PXouc2luZ3VsYXJWYWx1ZURlY29tcG9zZTJkU2NhbGUodGhpcy5tYXRyaXgpO249W25bMF0qdFswXSxuWzFdKnRbMV1dfWNvbnN0IHI9dGhpcy5fY3JlYXRlTWVzaENhbnZhcyhuLHM9PT1WdD9udWxsOnRoaXMuX2JhY2tncm91bmQsZS5jYWNoZWRDYW52YXNlcyk7cmV0dXJuIHMhPT1WdCYmKHQuc2V0VHJhbnNmb3JtKC4uLmUuYmFzZVRyYW5zZm9ybSksdGhpcy5tYXRyaXgmJnQudHJhbnNmb3JtKC4uLnRoaXMubWF0cml4KSksdC50cmFuc2xhdGUoci5vZmZzZXRYLHIub2Zmc2V0WSksdC5zY2FsZShyLnNjYWxlWCxyLnNjYWxlWSksdC5jcmVhdGVQYXR0ZXJuKHIuY2FudmFzLCJuby1yZXBlYXQiKX19Y2xhc3MgWnQgZXh0ZW5kcyBYdHtnZXRQYXR0ZXJuKCl7cmV0dXJuImhvdHBpbmsifX1jbGFzcyB0ZXtzdGF0aWMgTUFYX1BBVFRFUk5fU0laRT0zZTM7Y29uc3RydWN0b3IodCxlLGkscyxuKXt0aGlzLm9wZXJhdG9yTGlzdD10WzJdLHRoaXMubWF0cml4PXRbM10sdGhpcy5iYm94PXRbNF0sdGhpcy54c3RlcD10WzVdLHRoaXMueXN0ZXA9dFs2XSx0aGlzLnBhaW50VHlwZT10WzddLHRoaXMudGlsaW5nVHlwZT10WzhdLHRoaXMuY29sb3I9ZSx0aGlzLmN0eD1pLHRoaXMuY2FudmFzR3JhcGhpY3NGYWN0b3J5PXMsdGhpcy5iYXNlVHJhbnNmb3JtPW59Y3JlYXRlUGF0dGVybkNhbnZhcyh0KXtjb25zdHtiYm94OmUsb3BlcmF0b3JMaXN0OmkscGFpbnRUeXBlOnMsdGlsaW5nVHlwZTpuLGNvbG9yOnIsY2FudmFzR3JhcGhpY3NGYWN0b3J5OmF9PXRoaXM7bGV0e3hzdGVwOm8seXN0ZXA6aH09dGhpcztvPU1hdGguYWJzKG8pLGg9TWF0aC5hYnMoaCksQSgiVGlsaW5nVHlwZTogIituKTtjb25zdCBsPWVbMF0sYz1lWzFdLGQ9ZVsyXSx1PWVbM10scD1kLWwsZz11LWMsZj16LnNpbmd1bGFyVmFsdWVEZWNvbXBvc2UyZFNjYWxlKHRoaXMubWF0cml4KSxtPXouc2luZ3VsYXJWYWx1ZURlY29tcG9zZTJkU2NhbGUodGhpcy5iYXNlVHJhbnNmb3JtKSxiPWZbMF0qbVswXSx2PWZbMV0qbVsxXTtsZXQgeT1wLHc9Zyx4PSExLF89ITE7Y29uc3QgRT1NYXRoLmNlaWwobypiKSxDPU1hdGguY2VpbChoKnYpO0U+PU1hdGguY2VpbChwKmIpP3k9bzp4PSEwLEM+PU1hdGguY2VpbChnKnYpP3c9aDpfPSEwO2NvbnN0IFM9dGhpcy5nZXRTaXplQW5kU2NhbGUoeSx0aGlzLmN0eC5jYW52YXMud2lkdGgsYiksVD10aGlzLmdldFNpemVBbmRTY2FsZSh3LHRoaXMuY3R4LmNhbnZhcy5oZWlnaHQsdiksTT10LmNhY2hlZENhbnZhc2VzLmdldENhbnZhcygicGF0dGVybiIsUy5zaXplLFQuc2l6ZSksaz1NLmNvbnRleHQsST1hLmNyZWF0ZUNhbnZhc0dyYXBoaWNzKGspO2lmKEkuZ3JvdXBMZXZlbD10Lmdyb3VwTGV2ZWwsdGhpcy5zZXRGaWxsQW5kU3Ryb2tlU3R5bGVUb0NvbnRleHQoSSxzLHIpLGsudHJhbnNsYXRlKC1TLnNjYWxlKmwsLVQuc2NhbGUqYyksSS50cmFuc2Zvcm0oUy5zY2FsZSwwLDAsVC5zY2FsZSwwLDApLGsuc2F2ZSgpLHRoaXMuY2xpcEJib3goSSxsLGMsZCx1KSxJLmJhc2VUcmFuc2Zvcm09ZnQoSS5jdHgpLEkuZXhlY3V0ZU9wZXJhdG9yTGlzdChpKSxJLmVuZERyYXdpbmcoKSxrLnJlc3RvcmUoKSx4fHxfKXtjb25zdCBlPU0uY2FudmFzO3gmJih5PW8pLF8mJih3PWgpO2NvbnN0IGk9dGhpcy5nZXRTaXplQW5kU2NhbGUoeSx0aGlzLmN0eC5jYW52YXMud2lkdGgsYikscz10aGlzLmdldFNpemVBbmRTY2FsZSh3LHRoaXMuY3R4LmNhbnZhcy5oZWlnaHQsdiksbj1pLnNpemUscj1zLnNpemUsYT10LmNhY2hlZENhbnZhc2VzLmdldENhbnZhcygicGF0dGVybi13b3JrYXJvdW5kIixuLHIpLGQ9YS5jb250ZXh0LHU9eD9NYXRoLmZsb29yKHAvbyk6MCxmPV8/TWF0aC5mbG9vcihnL2gpOjA7Zm9yKGxldCB0PTA7dDw9dTt0KyspZm9yKGxldCBpPTA7aTw9ZjtpKyspZC5kcmF3SW1hZ2UoZSxuKnQscippLG4sciwwLDAsbixyKTtyZXR1cm57Y2FudmFzOmEuY2FudmFzLHNjYWxlWDppLnNjYWxlLHNjYWxlWTpzLnNjYWxlLG9mZnNldFg6bCxvZmZzZXRZOmN9fXJldHVybntjYW52YXM6TS5jYW52YXMsc2NhbGVYOlMuc2NhbGUsc2NhbGVZOlQuc2NhbGUsb2Zmc2V0WDpsLG9mZnNldFk6Y319Z2V0U2l6ZUFuZFNjYWxlKHQsZSxpKXtjb25zdCBzPU1hdGgubWF4KHRlLk1BWF9QQVRURVJOX1NJWkUsZSk7bGV0IG49TWF0aC5jZWlsKHQqaSk7cmV0dXJuIG4+PXM/bj1zOmk9bi90LHtzY2FsZTppLHNpemU6bn19Y2xpcEJib3godCxlLGkscyxuKXtjb25zdCByPXMtZSxhPW4taTt0LmN0eC5yZWN0KGUsaSxyLGEpLHQuY3VycmVudC51cGRhdGVSZWN0TWluTWF4KGZ0KHQuY3R4KSxbZSxpLHMsbl0pLHQuY2xpcCgpLHQuZW5kUGF0aCgpfXNldEZpbGxBbmRTdHJva2VTdHlsZVRvQ29udGV4dCh0LGUsaSl7Y29uc3Qgcz10LmN0eCxuPXQuY3VycmVudDtzd2l0Y2goZSl7Y2FzZSAxOmNvbnN0IHQ9dGhpcy5jdHg7cy5maWxsU3R5bGU9dC5maWxsU3R5bGUscy5zdHJva2VTdHlsZT10LnN0cm9rZVN0eWxlLG4uZmlsbENvbG9yPXQuZmlsbFN0eWxlLG4uc3Ryb2tlQ29sb3I9dC5zdHJva2VTdHlsZTticmVhaztjYXNlIDI6Y29uc3Qgcj16Lm1ha2VIZXhDb2xvcihpWzBdLGlbMV0saVsyXSk7cy5maWxsU3R5bGU9cixzLnN0cm9rZVN0eWxlPXIsbi5maWxsQ29sb3I9cixuLnN0cm9rZUNvbG9yPXI7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgUChgVW5zdXBwb3J0ZWQgcGFpbnQgdHlwZTogJHtlfWApfX1nZXRQYXR0ZXJuKHQsZSxpLHMpe2xldCBuPWk7cyE9PVZ0JiYobj16LnRyYW5zZm9ybShuLGUuYmFzZVRyYW5zZm9ybSksdGhpcy5tYXRyaXgmJihuPXoudHJhbnNmb3JtKG4sdGhpcy5tYXRyaXgpKSk7Y29uc3Qgcj10aGlzLmNyZWF0ZVBhdHRlcm5DYW52YXMoZSk7bGV0IGE9bmV3IERPTU1hdHJpeChuKTthPWEudHJhbnNsYXRlKHIub2Zmc2V0WCxyLm9mZnNldFkpLGE9YS5zY2FsZSgxL3Iuc2NhbGVYLDEvci5zY2FsZVkpO2NvbnN0IG89dC5jcmVhdGVQYXR0ZXJuKHIuY2FudmFzLCJyZXBlYXQiKTtyZXR1cm4gby5zZXRUcmFuc2Zvcm0oYSksb319ZnVuY3Rpb24gZWUoe3NyYzp0LHNyY1BvczplPTAsZGVzdDppLHdpZHRoOnMsaGVpZ2h0Om4sbm9uQmxhY2tDb2xvcjpyPTQyOTQ5NjcyOTUsaW52ZXJzZURlY29kZTphPSExfSl7Y29uc3Qgbz1OLmlzTGl0dGxlRW5kaWFuPzQyNzgxOTAwODA6MjU1LFtoLGxdPWE/W3Isb106W28scl0sYz1zPj4zLGQ9NyZzLHU9dC5sZW5ndGg7aT1uZXcgVWludDMyQXJyYXkoaS5idWZmZXIpO2xldCBwPTA7Zm9yKGxldCBzPTA7czxuO3MrKyl7Zm9yKGNvbnN0IHM9ZStjO2U8cztlKyspe2NvbnN0IHM9ZTx1P3RbZV06MjU1O2lbcCsrXT0xMjgmcz9sOmgsaVtwKytdPTY0JnM/bDpoLGlbcCsrXT0zMiZzP2w6aCxpW3ArK109MTYmcz9sOmgsaVtwKytdPTgmcz9sOmgsaVtwKytdPTQmcz9sOmgsaVtwKytdPTImcz9sOmgsaVtwKytdPTEmcz9sOmh9aWYoMD09PWQpY29udGludWU7Y29uc3Qgcz1lPHU/dFtlKytdOjI1NTtmb3IobGV0IHQ9MDt0PGQ7dCsrKWlbcCsrXT1zJjE8PDctdD9sOmh9cmV0dXJue3NyY1BvczplLGRlc3RQb3M6cH19Y29uc3QgaWU9MTY7Y2xhc3Mgc2V7Y29uc3RydWN0b3IodCl7dGhpcy5jYW52YXNGYWN0b3J5PXQsdGhpcy5jYWNoZT1PYmplY3QuY3JlYXRlKG51bGwpfWdldENhbnZhcyh0LGUsaSl7bGV0IHM7cmV0dXJuIHZvaWQgMCE9PXRoaXMuY2FjaGVbdF0/KHM9dGhpcy5jYWNoZVt0XSx0aGlzLmNhbnZhc0ZhY3RvcnkucmVzZXQocyxlLGkpKToocz10aGlzLmNhbnZhc0ZhY3RvcnkuY3JlYXRlKGUsaSksdGhpcy5jYWNoZVt0XT1zKSxzfWRlbGV0ZSh0KXtkZWxldGUgdGhpcy5jYWNoZVt0XX1jbGVhcigpe2Zvcihjb25zdCB0IGluIHRoaXMuY2FjaGUpe2NvbnN0IGU9dGhpcy5jYWNoZVt0XTt0aGlzLmNhbnZhc0ZhY3RvcnkuZGVzdHJveShlKSxkZWxldGUgdGhpcy5jYWNoZVt0XX19fWZ1bmN0aW9uIG5lKHQsZSxpLHMsbixyLGEsbyxoLGwpe2NvbnN0W2MsZCx1LHAsZyxmXT1mdCh0KTtpZigwPT09ZCYmMD09PXUpe2NvbnN0IG09YSpjK2csYj1NYXRoLnJvdW5kKG0pLHY9bypwK2YseT1NYXRoLnJvdW5kKHYpLEE9KGEraCkqYytnLHc9TWF0aC5hYnMoTWF0aC5yb3VuZChBKS1iKXx8MSx4PShvK2wpKnArZixfPU1hdGguYWJzKE1hdGgucm91bmQoeCkteSl8fDE7cmV0dXJuIHQuc2V0VHJhbnNmb3JtKE1hdGguc2lnbihjKSwwLDAsTWF0aC5zaWduKHApLGIseSksdC5kcmF3SW1hZ2UoZSxpLHMsbixyLDAsMCx3LF8pLHQuc2V0VHJhbnNmb3JtKGMsZCx1LHAsZyxmKSxbdyxfXX1pZigwPT09YyYmMD09PXApe2NvbnN0IG09byp1K2csYj1NYXRoLnJvdW5kKG0pLHY9YSpkK2YseT1NYXRoLnJvdW5kKHYpLEE9KG8rbCkqdStnLHc9TWF0aC5hYnMoTWF0aC5yb3VuZChBKS1iKXx8MSx4PShhK2gpKmQrZixfPU1hdGguYWJzKE1hdGgucm91bmQoeCkteSl8fDE7cmV0dXJuIHQuc2V0VHJhbnNmb3JtKDAsTWF0aC5zaWduKGQpLE1hdGguc2lnbih1KSwwLGIseSksdC5kcmF3SW1hZ2UoZSxpLHMsbixyLDAsMCxfLHcpLHQuc2V0VHJhbnNmb3JtKGMsZCx1LHAsZyxmKSxbXyx3XX1yZXR1cm4gdC5kcmF3SW1hZ2UoZSxpLHMsbixyLGEsbyxoLGwpLFtNYXRoLmh5cG90KGMsZCkqaCxNYXRoLmh5cG90KHUscCkqbF19Y2xhc3MgcmV7Y29uc3RydWN0b3IodCxlKXt0aGlzLmFscGhhSXNTaGFwZT0hMSx0aGlzLmZvbnRTaXplPTAsdGhpcy5mb250U2l6ZVNjYWxlPTEsdGhpcy50ZXh0TWF0cml4PXIsdGhpcy50ZXh0TWF0cml4U2NhbGU9MSx0aGlzLmZvbnRNYXRyaXg9YSx0aGlzLmxlYWRpbmc9MCx0aGlzLng9MCx0aGlzLnk9MCx0aGlzLmxpbmVYPTAsdGhpcy5saW5lWT0wLHRoaXMuY2hhclNwYWNpbmc9MCx0aGlzLndvcmRTcGFjaW5nPTAsdGhpcy50ZXh0SFNjYWxlPTEsdGhpcy50ZXh0UmVuZGVyaW5nTW9kZT0wLHRoaXMudGV4dFJpc2U9MCx0aGlzLmZpbGxDb2xvcj0iIzAwMDAwMCIsdGhpcy5zdHJva2VDb2xvcj0iIzAwMDAwMCIsdGhpcy5wYXR0ZXJuRmlsbD0hMSx0aGlzLmZpbGxBbHBoYT0xLHRoaXMuc3Ryb2tlQWxwaGE9MSx0aGlzLmxpbmVXaWR0aD0xLHRoaXMuYWN0aXZlU01hc2s9bnVsbCx0aGlzLnRyYW5zZmVyTWFwcz0ibm9uZSIsdGhpcy5zdGFydE5ld1BhdGhBbmRDbGlwQm94KFswLDAsdCxlXSl9Y2xvbmUoKXtjb25zdCB0PU9iamVjdC5jcmVhdGUodGhpcyk7cmV0dXJuIHQuY2xpcEJveD10aGlzLmNsaXBCb3guc2xpY2UoKSx0fXNldEN1cnJlbnRQb2ludCh0LGUpe3RoaXMueD10LHRoaXMueT1lfXVwZGF0ZVBhdGhNaW5NYXgodCxlLGkpe1tlLGldPXouYXBwbHlUcmFuc2Zvcm0oW2UsaV0sdCksdGhpcy5taW5YPU1hdGgubWluKHRoaXMubWluWCxlKSx0aGlzLm1pblk9TWF0aC5taW4odGhpcy5taW5ZLGkpLHRoaXMubWF4WD1NYXRoLm1heCh0aGlzLm1heFgsZSksdGhpcy5tYXhZPU1hdGgubWF4KHRoaXMubWF4WSxpKX11cGRhdGVSZWN0TWluTWF4KHQsZSl7Y29uc3QgaT16LmFwcGx5VHJhbnNmb3JtKGUsdCkscz16LmFwcGx5VHJhbnNmb3JtKGUuc2xpY2UoMiksdCksbj16LmFwcGx5VHJhbnNmb3JtKFtlWzBdLGVbM11dLHQpLHI9ei5hcHBseVRyYW5zZm9ybShbZVsyXSxlWzFdXSx0KTt0aGlzLm1pblg9TWF0aC5taW4odGhpcy5taW5YLGlbMF0sc1swXSxuWzBdLHJbMF0pLHRoaXMubWluWT1NYXRoLm1pbih0aGlzLm1pblksaVsxXSxzWzFdLG5bMV0sclsxXSksdGhpcy5tYXhYPU1hdGgubWF4KHRoaXMubWF4WCxpWzBdLHNbMF0sblswXSxyWzBdKSx0aGlzLm1heFk9TWF0aC5tYXgodGhpcy5tYXhZLGlbMV0sc1sxXSxuWzFdLHJbMV0pfXVwZGF0ZVNjYWxpbmdQYXRoTWluTWF4KHQsZSl7ei5zY2FsZU1pbk1heCh0LGUpLHRoaXMubWluWD1NYXRoLm1pbih0aGlzLm1pblgsZVswXSksdGhpcy5taW5ZPU1hdGgubWluKHRoaXMubWluWSxlWzFdKSx0aGlzLm1heFg9TWF0aC5tYXgodGhpcy5tYXhYLGVbMl0pLHRoaXMubWF4WT1NYXRoLm1heCh0aGlzLm1heFksZVszXSl9dXBkYXRlQ3VydmVQYXRoTWluTWF4KHQsZSxpLHMsbixyLGEsbyxoLGwpe2NvbnN0IGM9ei5iZXppZXJCb3VuZGluZ0JveChlLGkscyxuLHIsYSxvLGgsbCk7bHx8dGhpcy51cGRhdGVSZWN0TWluTWF4KHQsYyl9Z2V0UGF0aEJvdW5kaW5nQm94KHQ9V3QsZT1udWxsKXtjb25zdCBpPVt0aGlzLm1pblgsdGhpcy5taW5ZLHRoaXMubWF4WCx0aGlzLm1heFldO2lmKHQ9PT1HdCl7ZXx8eCgiU3Ryb2tlIGJvdW5kaW5nIGJveCBtdXN0IGluY2x1ZGUgdHJhbnNmb3JtLiIpO2NvbnN0IHQ9ei5zaW5ndWxhclZhbHVlRGVjb21wb3NlMmRTY2FsZShlKSxzPXRbMF0qdGhpcy5saW5lV2lkdGgvMixuPXRbMV0qdGhpcy5saW5lV2lkdGgvMjtpWzBdLT1zLGlbMV0tPW4saVsyXSs9cyxpWzNdKz1ufXJldHVybiBpfXVwZGF0ZUNsaXBGcm9tUGF0aCgpe2NvbnN0IHQ9ei5pbnRlcnNlY3QodGhpcy5jbGlwQm94LHRoaXMuZ2V0UGF0aEJvdW5kaW5nQm94KCkpO3RoaXMuc3RhcnROZXdQYXRoQW5kQ2xpcEJveCh0fHxbMCwwLDAsMF0pfWlzRW1wdHlDbGlwKCl7cmV0dXJuIHRoaXMubWluWD09PTEvMH1zdGFydE5ld1BhdGhBbmRDbGlwQm94KHQpe3RoaXMuY2xpcEJveD10LHRoaXMubWluWD0xLzAsdGhpcy5taW5ZPTEvMCx0aGlzLm1heFg9MCx0aGlzLm1heFk9MH1nZXRDbGlwcGVkUGF0aEJvdW5kaW5nQm94KHQ9V3QsZT1udWxsKXtyZXR1cm4gei5pbnRlcnNlY3QodGhpcy5jbGlwQm94LHRoaXMuZ2V0UGF0aEJvdW5kaW5nQm94KHQsZSkpfX1mdW5jdGlvbiBhZSh0LGUpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgSW1hZ2VEYXRhJiZlIGluc3RhbmNlb2YgSW1hZ2VEYXRhKXJldHVybiB2b2lkIHQucHV0SW1hZ2VEYXRhKGUsMCwwKTtjb25zdCBpPWUuaGVpZ2h0LHM9ZS53aWR0aCxuPWklaWUscj0oaS1uKS9pZSxhPTA9PT1uP3I6cisxLG89dC5jcmVhdGVJbWFnZURhdGEocyxpZSk7bGV0IGgsbD0wO2NvbnN0IGM9ZS5kYXRhLGQ9by5kYXRhO2xldCBwLGcsZixtO2lmKGUua2luZD09PXUuR1JBWVNDQUxFXzFCUFApe2NvbnN0IGU9Yy5ieXRlTGVuZ3RoLGk9bmV3IFVpbnQzMkFycmF5KGQuYnVmZmVyLDAsZC5ieXRlTGVuZ3RoPj4yKSx1PWkubGVuZ3RoLG09cys3Pj4zLGI9NDI5NDk2NzI5NSx2PU4uaXNMaXR0bGVFbmRpYW4/NDI3ODE5MDA4MDoyNTU7Zm9yKHA9MDtwPGE7cCsrKXtmb3IoZj1wPHI/aWU6bixoPTAsZz0wO2c8ZjtnKyspe2NvbnN0IHQ9ZS1sO2xldCBuPTA7Y29uc3Qgcj10Pm0/czo4KnQtNyxhPS04JnI7bGV0IG89MCxkPTA7Zm9yKDtuPGE7bis9OClkPWNbbCsrXSxpW2grK109MTI4JmQ/Yjp2LGlbaCsrXT02NCZkP2I6dixpW2grK109MzImZD9iOnYsaVtoKytdPTE2JmQ/Yjp2LGlbaCsrXT04JmQ/Yjp2LGlbaCsrXT00JmQ/Yjp2LGlbaCsrXT0yJmQ/Yjp2LGlbaCsrXT0xJmQ/Yjp2O2Zvcig7bjxyO24rKykwPT09byYmKGQ9Y1tsKytdLG89MTI4KSxpW2grK109ZCZvP2I6dixvPj49MX1mb3IoO2g8dTspaVtoKytdPTA7dC5wdXRJbWFnZURhdGEobywwLHAqaWUpfX1lbHNlIGlmKGUua2luZD09PXUuUkdCQV8zMkJQUCl7Zm9yKGc9MCxtPXMqaWUqNCxwPTA7cDxyO3ArKylkLnNldChjLnN1YmFycmF5KGwsbCttKSksbCs9bSx0LnB1dEltYWdlRGF0YShvLDAsZyksZys9aWU7cDxhJiYobT1zKm4qNCxkLnNldChjLnN1YmFycmF5KGwsbCttKSksdC5wdXRJbWFnZURhdGEobywwLGcpKX1lbHNle2lmKGUua2luZCE9PXUuUkdCXzI0QlBQKXRocm93IG5ldyBFcnJvcihgYmFkIGltYWdlIGtpbmQ6ICR7ZS5raW5kfWApO2ZvcihmPWllLG09cypmLHA9MDtwPGE7cCsrKXtmb3IocD49ciYmKGY9bixtPXMqZiksaD0wLGc9bTtnLS07KWRbaCsrXT1jW2wrK10sZFtoKytdPWNbbCsrXSxkW2grK109Y1tsKytdLGRbaCsrXT0yNTU7dC5wdXRJbWFnZURhdGEobywwLHAqaWUpfX19ZnVuY3Rpb24gb2UodCxlKXtpZihlLmJpdG1hcClyZXR1cm4gdm9pZCB0LmRyYXdJbWFnZShlLmJpdG1hcCwwLDApO2NvbnN0IGk9ZS5oZWlnaHQscz1lLndpZHRoLG49aSVpZSxyPShpLW4pL2llLGE9MD09PW4/cjpyKzEsbz10LmNyZWF0ZUltYWdlRGF0YShzLGllKTtsZXQgaD0wO2NvbnN0IGw9ZS5kYXRhLGM9by5kYXRhO2ZvcihsZXQgZT0wO2U8YTtlKyspe2NvbnN0IGk9ZTxyP2llOm47KHtzcmNQb3M6aH09ZWUoe3NyYzpsLHNyY1BvczpoLGRlc3Q6Yyx3aWR0aDpzLGhlaWdodDppLG5vbkJsYWNrQ29sb3I6MH0pKSx0LnB1dEltYWdlRGF0YShvLDAsZSppZSl9fWZ1bmN0aW9uIGhlKHQsZSl7Y29uc3QgaT1bInN0cm9rZVN0eWxlIiwiZmlsbFN0eWxlIiwiZmlsbFJ1bGUiLCJnbG9iYWxBbHBoYSIsImxpbmVXaWR0aCIsImxpbmVDYXAiLCJsaW5lSm9pbiIsIm1pdGVyTGltaXQiLCJnbG9iYWxDb21wb3NpdGVPcGVyYXRpb24iLCJmb250IiwiZmlsdGVyIl07Zm9yKGNvbnN0IHMgb2YgaSl2b2lkIDAhPT10W3NdJiYoZVtzXT10W3NdKTt2b2lkIDAhPT10LnNldExpbmVEYXNoJiYoZS5zZXRMaW5lRGFzaCh0LmdldExpbmVEYXNoKCkpLGUubGluZURhc2hPZmZzZXQ9dC5saW5lRGFzaE9mZnNldCl9ZnVuY3Rpb24gbGUodCl7aWYodC5zdHJva2VTdHlsZT10LmZpbGxTdHlsZT0iIzAwMDAwMCIsdC5maWxsUnVsZT0ibm9uemVybyIsdC5nbG9iYWxBbHBoYT0xLHQubGluZVdpZHRoPTEsdC5saW5lQ2FwPSJidXR0Iix0LmxpbmVKb2luPSJtaXRlciIsdC5taXRlckxpbWl0PTEwLHQuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJzb3VyY2Utb3ZlciIsdC5mb250PSIxMHB4IHNhbnMtc2VyaWYiLHZvaWQgMCE9PXQuc2V0TGluZURhc2gmJih0LnNldExpbmVEYXNoKFtdKSx0LmxpbmVEYXNoT2Zmc2V0PTApLCFuKXtjb25zdHtmaWx0ZXI6ZX09dDsibm9uZSIhPT1lJiYiIiE9PWUmJih0LmZpbHRlcj0ibm9uZSIpfX1mdW5jdGlvbiBjZSh0LGUpe2lmKGUpcmV0dXJuITA7Y29uc3QgaT16LnNpbmd1bGFyVmFsdWVEZWNvbXBvc2UyZFNjYWxlKHQpO2lbMF09TWF0aC5mcm91bmQoaVswXSksaVsxXT1NYXRoLmZyb3VuZChpWzFdKTtjb25zdCBzPU1hdGguZnJvdW5kKChnbG9iYWxUaGlzLmRldmljZVBpeGVsUmF0aW98fDEpKlkuUERGX1RPX0NTU19VTklUUyk7cmV0dXJuIGlbMF08PXMmJmlbMV08PXN9Y29uc3QgZGU9WyJidXR0Iiwicm91bmQiLCJzcXVhcmUiXSx1ZT1bIm1pdGVyIiwicm91bmQiLCJiZXZlbCJdLHBlPXt9LGdlPXt9O2NsYXNzIGZle2NvbnN0cnVjdG9yKHQsZSxpLHMsbix7b3B0aW9uYWxDb250ZW50Q29uZmlnOnIsbWFya2VkQ29udGVudFN0YWNrOmE9bnVsbH0sbyxoKXt0aGlzLmN0eD10LHRoaXMuY3VycmVudD1uZXcgcmUodGhpcy5jdHguY2FudmFzLndpZHRoLHRoaXMuY3R4LmNhbnZhcy5oZWlnaHQpLHRoaXMuc3RhdGVTdGFjaz1bXSx0aGlzLnBlbmRpbmdDbGlwPW51bGwsdGhpcy5wZW5kaW5nRU9GaWxsPSExLHRoaXMucmVzPW51bGwsdGhpcy54b2Jqcz1udWxsLHRoaXMuY29tbW9uT2Jqcz1lLHRoaXMub2Jqcz1pLHRoaXMuY2FudmFzRmFjdG9yeT1zLHRoaXMuZmlsdGVyRmFjdG9yeT1uLHRoaXMuZ3JvdXBTdGFjaz1bXSx0aGlzLnByb2Nlc3NpbmdUeXBlMz1udWxsLHRoaXMuYmFzZVRyYW5zZm9ybT1udWxsLHRoaXMuYmFzZVRyYW5zZm9ybVN0YWNrPVtdLHRoaXMuZ3JvdXBMZXZlbD0wLHRoaXMuc21hc2tTdGFjaz1bXSx0aGlzLnNtYXNrQ291bnRlcj0wLHRoaXMudGVtcFNNYXNrPW51bGwsdGhpcy5zdXNwZW5kZWRDdHg9bnVsbCx0aGlzLmNvbnRlbnRWaXNpYmxlPSEwLHRoaXMubWFya2VkQ29udGVudFN0YWNrPWF8fFtdLHRoaXMub3B0aW9uYWxDb250ZW50Q29uZmlnPXIsdGhpcy5jYWNoZWRDYW52YXNlcz1uZXcgc2UodGhpcy5jYW52YXNGYWN0b3J5KSx0aGlzLmNhY2hlZFBhdHRlcm5zPW5ldyBNYXAsdGhpcy5hbm5vdGF0aW9uQ2FudmFzTWFwPW8sdGhpcy52aWV3cG9ydFNjYWxlPTEsdGhpcy5vdXRwdXRTY2FsZVg9MSx0aGlzLm91dHB1dFNjYWxlWT0xLHRoaXMucGFnZUNvbG9ycz1oLHRoaXMuX2NhY2hlZFNjYWxlRm9yU3Ryb2tpbmc9Wy0xLDBdLHRoaXMuX2NhY2hlZEdldFNpbmdsZVBpeGVsV2lkdGg9bnVsbCx0aGlzLl9jYWNoZWRCaXRtYXBzTWFwPW5ldyBNYXB9Z2V0T2JqZWN0KHQsZT1udWxsKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/dC5zdGFydHNXaXRoKCJnXyIpP3RoaXMuY29tbW9uT2Jqcy5nZXQodCk6dGhpcy5vYmpzLmdldCh0KTplfWJlZ2luRHJhd2luZyh7dHJhbnNmb3JtOnQsdmlld3BvcnQ6ZSx0cmFuc3BhcmVuY3k6aT0hMSxiYWNrZ3JvdW5kOnM9bnVsbH0pe2NvbnN0IG49dGhpcy5jdHguY2FudmFzLndpZHRoLHI9dGhpcy5jdHguY2FudmFzLmhlaWdodCxhPXRoaXMuY3R4LmZpbGxTdHlsZTtpZih0aGlzLmN0eC5maWxsU3R5bGU9c3x8IiNmZmZmZmYiLHRoaXMuY3R4LmZpbGxSZWN0KDAsMCxuLHIpLHRoaXMuY3R4LmZpbGxTdHlsZT1hLGkpe2NvbnN0IHQ9dGhpcy5jYWNoZWRDYW52YXNlcy5nZXRDYW52YXMoInRyYW5zcGFyZW50IixuLHIpO3RoaXMuY29tcG9zaXRlQ3R4PXRoaXMuY3R4LHRoaXMudHJhbnNwYXJlbnRDYW52YXM9dC5jYW52YXMsdGhpcy5jdHg9dC5jb250ZXh0LHRoaXMuY3R4LnNhdmUoKSx0aGlzLmN0eC50cmFuc2Zvcm0oLi4uZnQodGhpcy5jb21wb3NpdGVDdHgpKX10aGlzLmN0eC5zYXZlKCksbGUodGhpcy5jdHgpLHQmJih0aGlzLmN0eC50cmFuc2Zvcm0oLi4udCksdGhpcy5vdXRwdXRTY2FsZVg9dFswXSx0aGlzLm91dHB1dFNjYWxlWT10WzBdKSx0aGlzLmN0eC50cmFuc2Zvcm0oLi4uZS50cmFuc2Zvcm0pLHRoaXMudmlld3BvcnRTY2FsZT1lLnNjYWxlLHRoaXMuYmFzZVRyYW5zZm9ybT1mdCh0aGlzLmN0eCl9ZXhlY3V0ZU9wZXJhdG9yTGlzdCh0LGUsaSxzKXtjb25zdCBuPXQuYXJnc0FycmF5LHI9dC5mbkFycmF5O2xldCBhPWV8fDA7Y29uc3Qgbz1uLmxlbmd0aDtpZihvPT09YSlyZXR1cm4gYTtjb25zdCBoPW8tYT4xMCYmImZ1bmN0aW9uIj09dHlwZW9mIGksbD1oP0RhdGUubm93KCkrMTU6MDtsZXQgYz0wO2NvbnN0IGQ9dGhpcy5jb21tb25PYmpzLHU9dGhpcy5vYmpzO2xldCBwO2Zvcig7Oyl7aWYodm9pZCAwIT09cyYmYT09PXMubmV4dEJyZWFrUG9pbnQpcmV0dXJuIHMuYnJlYWtJdChhLGkpLGE7aWYocD1yW2FdLHAhPT1mLmRlcGVuZGVuY3kpdGhpc1twXS5hcHBseSh0aGlzLG5bYV0pO2Vsc2UgZm9yKGNvbnN0IHQgb2YgblthXSl7Y29uc3QgZT10LnN0YXJ0c1dpdGgoImdfIik/ZDp1O2lmKCFlLmhhcyh0KSlyZXR1cm4gZS5nZXQodCxpKSxhfWlmKGErKyxhPT09bylyZXR1cm4gYTtpZihoJiYrK2M+MTApe2lmKERhdGUubm93KCk+bClyZXR1cm4gaSgpLGE7Yz0wfX19I0xlKCl7Zm9yKDt0aGlzLnN0YXRlU3RhY2subGVuZ3RofHx0aGlzLmluU01hc2tNb2RlOyl0aGlzLnJlc3RvcmUoKTt0aGlzLmN1cnJlbnQuYWN0aXZlU01hc2s9bnVsbCx0aGlzLmN0eC5yZXN0b3JlKCksdGhpcy50cmFuc3BhcmVudENhbnZhcyYmKHRoaXMuY3R4PXRoaXMuY29tcG9zaXRlQ3R4LHRoaXMuY3R4LnNhdmUoKSx0aGlzLmN0eC5zZXRUcmFuc2Zvcm0oMSwwLDAsMSwwLDApLHRoaXMuY3R4LmRyYXdJbWFnZSh0aGlzLnRyYW5zcGFyZW50Q2FudmFzLDAsMCksdGhpcy5jdHgucmVzdG9yZSgpLHRoaXMudHJhbnNwYXJlbnRDYW52YXM9bnVsbCl9ZW5kRHJhd2luZygpe3RoaXMuI0xlKCksdGhpcy5jYWNoZWRDYW52YXNlcy5jbGVhcigpLHRoaXMuY2FjaGVkUGF0dGVybnMuY2xlYXIoKTtmb3IoY29uc3QgdCBvZiB0aGlzLl9jYWNoZWRCaXRtYXBzTWFwLnZhbHVlcygpKXtmb3IoY29uc3QgZSBvZiB0LnZhbHVlcygpKSJ1bmRlZmluZWQiIT10eXBlb2YgSFRNTENhbnZhc0VsZW1lbnQmJmUgaW5zdGFuY2VvZiBIVE1MQ2FudmFzRWxlbWVudCYmKGUud2lkdGg9ZS5oZWlnaHQ9MCk7dC5jbGVhcigpfXRoaXMuX2NhY2hlZEJpdG1hcHNNYXAuY2xlYXIoKSx0aGlzLiNGZSgpfSNGZSgpe2lmKHRoaXMucGFnZUNvbG9ycyl7Y29uc3QgdD10aGlzLmZpbHRlckZhY3RvcnkuYWRkSENNRmlsdGVyKHRoaXMucGFnZUNvbG9ycy5mb3JlZ3JvdW5kLHRoaXMucGFnZUNvbG9ycy5iYWNrZ3JvdW5kKTtpZigibm9uZSIhPT10KXtjb25zdCBlPXRoaXMuY3R4LmZpbHRlcjt0aGlzLmN0eC5maWx0ZXI9dCx0aGlzLmN0eC5kcmF3SW1hZ2UodGhpcy5jdHguY2FudmFzLDAsMCksdGhpcy5jdHguZmlsdGVyPWV9fX1fc2NhbGVJbWFnZSh0LGUpe2NvbnN0IGk9dC53aWR0aCxzPXQuaGVpZ2h0O2xldCBuLHIsYT1NYXRoLm1heChNYXRoLmh5cG90KGVbMF0sZVsxXSksMSksbz1NYXRoLm1heChNYXRoLmh5cG90KGVbMl0sZVszXSksMSksaD1pLGw9cyxjPSJwcmVzY2FsZTEiO2Zvcig7YT4yJiZoPjF8fG8+MiYmbD4xOyl7bGV0IGU9aCxpPWw7YT4yJiZoPjEmJihlPWg+PTE2Mzg0P01hdGguZmxvb3IoaC8yKS0xfHwxOk1hdGguY2VpbChoLzIpLGEvPWgvZSksbz4yJiZsPjEmJihpPWw+PTE2Mzg0P01hdGguZmxvb3IobC8yKS0xfHwxOk1hdGguY2VpbChsKS8yLG8vPWwvaSksbj10aGlzLmNhY2hlZENhbnZhc2VzLmdldENhbnZhcyhjLGUsaSkscj1uLmNvbnRleHQsci5jbGVhclJlY3QoMCwwLGUsaSksci5kcmF3SW1hZ2UodCwwLDAsaCxsLDAsMCxlLGkpLHQ9bi5jYW52YXMsaD1lLGw9aSxjPSJwcmVzY2FsZTEiPT09Yz8icHJlc2NhbGUyIjoicHJlc2NhbGUxIn1yZXR1cm57aW1nOnQscGFpbnRXaWR0aDpoLHBhaW50SGVpZ2h0Omx9fV9jcmVhdGVNYXNrQ2FudmFzKHQpe2NvbnN0IGU9dGhpcy5jdHgse3dpZHRoOmksaGVpZ2h0OnN9PXQsbj10aGlzLmN1cnJlbnQuZmlsbENvbG9yLHI9dGhpcy5jdXJyZW50LnBhdHRlcm5GaWxsLGE9ZnQoZSk7bGV0IG8saCxsLGM7aWYoKHQuYml0bWFwfHx0LmRhdGEpJiZ0LmNvdW50PjEpe2NvbnN0IGU9dC5iaXRtYXB8fHQuZGF0YS5idWZmZXI7aD1KU09OLnN0cmluZ2lmeShyP2E6W2Euc2xpY2UoMCw0KSxuXSksbz10aGlzLl9jYWNoZWRCaXRtYXBzTWFwLmdldChlKSxvfHwobz1uZXcgTWFwLHRoaXMuX2NhY2hlZEJpdG1hcHNNYXAuc2V0KGUsbykpO2NvbnN0IGk9by5nZXQoaCk7aWYoaSYmIXIpcmV0dXJue2NhbnZhczppLG9mZnNldFg6TWF0aC5yb3VuZChNYXRoLm1pbihhWzBdLGFbMl0pK2FbNF0pLG9mZnNldFk6TWF0aC5yb3VuZChNYXRoLm1pbihhWzFdLGFbM10pK2FbNV0pfTtsPWl9bHx8KGM9dGhpcy5jYWNoZWRDYW52YXNlcy5nZXRDYW52YXMoIm1hc2tDYW52YXMiLGkscyksb2UoYy5jb250ZXh0LHQpKTtsZXQgZD16LnRyYW5zZm9ybShhLFsxL2ksMCwwLC0xL3MsMCwwXSk7ZD16LnRyYW5zZm9ybShkLFsxLDAsMCwxLDAsLXNdKTtjb25zdFt1LHAsZyxmXT16LmdldEF4aWFsQWxpZ25lZEJvdW5kaW5nQm94KFswLDAsaSxzXSxkKSxtPU1hdGgucm91bmQoZy11KXx8MSxiPU1hdGgucm91bmQoZi1wKXx8MSx2PXRoaXMuY2FjaGVkQ2FudmFzZXMuZ2V0Q2FudmFzKCJmaWxsQ2FudmFzIixtLGIpLHk9di5jb250ZXh0LEE9dSx3PXA7eS50cmFuc2xhdGUoLUEsLXcpLHkudHJhbnNmb3JtKC4uLmQpLGx8fChsPXRoaXMuX3NjYWxlSW1hZ2UoYy5jYW52YXMsbXQoeSkpLGw9bC5pbWcsbyYmciYmby5zZXQoaCxsKSkseS5pbWFnZVNtb290aGluZ0VuYWJsZWQ9Y2UoZnQoeSksdC5pbnRlcnBvbGF0ZSksbmUoeSxsLDAsMCxsLndpZHRoLGwuaGVpZ2h0LDAsMCxpLHMpLHkuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJzb3VyY2UtaW4iO2NvbnN0IHg9ei50cmFuc2Zvcm0obXQoeSksWzEsMCwwLDEsLUEsLXddKTtyZXR1cm4geS5maWxsU3R5bGU9cj9uLmdldFBhdHRlcm4oZSx0aGlzLHgsV3QpOm4seS5maWxsUmVjdCgwLDAsaSxzKSxvJiYhciYmKHRoaXMuY2FjaGVkQ2FudmFzZXMuZGVsZXRlKCJmaWxsQ2FudmFzIiksby5zZXQoaCx2LmNhbnZhcykpLHtjYW52YXM6di5jYW52YXMsb2Zmc2V0WDpNYXRoLnJvdW5kKEEpLG9mZnNldFk6TWF0aC5yb3VuZCh3KX19c2V0TGluZVdpZHRoKHQpe3QhPT10aGlzLmN1cnJlbnQubGluZVdpZHRoJiYodGhpcy5fY2FjaGVkU2NhbGVGb3JTdHJva2luZ1swXT0tMSksdGhpcy5jdXJyZW50LmxpbmVXaWR0aD10LHRoaXMuY3R4LmxpbmVXaWR0aD10fXNldExpbmVDYXAodCl7dGhpcy5jdHgubGluZUNhcD1kZVt0XX1zZXRMaW5lSm9pbih0KXt0aGlzLmN0eC5saW5lSm9pbj11ZVt0XX1zZXRNaXRlckxpbWl0KHQpe3RoaXMuY3R4Lm1pdGVyTGltaXQ9dH1zZXREYXNoKHQsZSl7Y29uc3QgaT10aGlzLmN0eDt2b2lkIDAhPT1pLnNldExpbmVEYXNoJiYoaS5zZXRMaW5lRGFzaCh0KSxpLmxpbmVEYXNoT2Zmc2V0PWUpfXNldFJlbmRlcmluZ0ludGVudCh0KXt9c2V0RmxhdG5lc3ModCl7fXNldEdTdGF0ZSh0KXtmb3IoY29uc3RbZSxpXW9mIHQpc3dpdGNoKGUpe2Nhc2UiTFciOnRoaXMuc2V0TGluZVdpZHRoKGkpO2JyZWFrO2Nhc2UiTEMiOnRoaXMuc2V0TGluZUNhcChpKTticmVhaztjYXNlIkxKIjp0aGlzLnNldExpbmVKb2luKGkpO2JyZWFrO2Nhc2UiTUwiOnRoaXMuc2V0TWl0ZXJMaW1pdChpKTticmVhaztjYXNlIkQiOnRoaXMuc2V0RGFzaChpWzBdLGlbMV0pO2JyZWFrO2Nhc2UiUkkiOnRoaXMuc2V0UmVuZGVyaW5nSW50ZW50KGkpO2JyZWFrO2Nhc2UiRkwiOnRoaXMuc2V0RmxhdG5lc3MoaSk7YnJlYWs7Y2FzZSJGb250Ijp0aGlzLnNldEZvbnQoaVswXSxpWzFdKTticmVhaztjYXNlIkNBIjp0aGlzLmN1cnJlbnQuc3Ryb2tlQWxwaGE9aTticmVhaztjYXNlImNhIjp0aGlzLmN1cnJlbnQuZmlsbEFscGhhPWksdGhpcy5jdHguZ2xvYmFsQWxwaGE9aTticmVhaztjYXNlIkJNIjp0aGlzLmN0eC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249aTticmVhaztjYXNlIlNNYXNrIjp0aGlzLmN1cnJlbnQuYWN0aXZlU01hc2s9aT90aGlzLnRlbXBTTWFzazpudWxsLHRoaXMudGVtcFNNYXNrPW51bGwsdGhpcy5jaGVja1NNYXNrU3RhdGUoKTticmVhaztjYXNlIlRSIjp0aGlzLmN0eC5maWx0ZXI9dGhpcy5jdXJyZW50LnRyYW5zZmVyTWFwcz10aGlzLmZpbHRlckZhY3RvcnkuYWRkRmlsdGVyKGkpfX1nZXQgaW5TTWFza01vZGUoKXtyZXR1cm4hIXRoaXMuc3VzcGVuZGVkQ3R4fWNoZWNrU01hc2tTdGF0ZSgpe2NvbnN0IHQ9dGhpcy5pblNNYXNrTW9kZTt0aGlzLmN1cnJlbnQuYWN0aXZlU01hc2smJiF0P3RoaXMuYmVnaW5TTWFza01vZGUoKTohdGhpcy5jdXJyZW50LmFjdGl2ZVNNYXNrJiZ0JiZ0aGlzLmVuZFNNYXNrTW9kZSgpfWJlZ2luU01hc2tNb2RlKCl7aWYodGhpcy5pblNNYXNrTW9kZSl0aHJvdyBuZXcgRXJyb3IoImJlZ2luU01hc2tNb2RlIGNhbGxlZCB3aGlsZSBhbHJlYWR5IGluIHNtYXNrIG1vZGUiKTtjb25zdCB0PXRoaXMuY3R4LmNhbnZhcy53aWR0aCxlPXRoaXMuY3R4LmNhbnZhcy5oZWlnaHQsaT0ic21hc2tHcm91cEF0Iit0aGlzLmdyb3VwTGV2ZWwscz10aGlzLmNhY2hlZENhbnZhc2VzLmdldENhbnZhcyhpLHQsZSk7dGhpcy5zdXNwZW5kZWRDdHg9dGhpcy5jdHgsdGhpcy5jdHg9cy5jb250ZXh0O2NvbnN0IG49dGhpcy5jdHg7bi5zZXRUcmFuc2Zvcm0oLi4uZnQodGhpcy5zdXNwZW5kZWRDdHgpKSxoZSh0aGlzLnN1c3BlbmRlZEN0eCxuKSxmdW5jdGlvbih0LGUpe2lmKHQuX3JlbW92ZU1pcnJvcmluZyl0aHJvdyBuZXcgRXJyb3IoIkNvbnRleHQgaXMgYWxyZWFkeSBmb3J3YXJkaW5nIG9wZXJhdGlvbnMuIik7dC5fX29yaWdpbmFsU2F2ZT10LnNhdmUsdC5fX29yaWdpbmFsUmVzdG9yZT10LnJlc3RvcmUsdC5fX29yaWdpbmFsUm90YXRlPXQucm90YXRlLHQuX19vcmlnaW5hbFNjYWxlPXQuc2NhbGUsdC5fX29yaWdpbmFsVHJhbnNsYXRlPXQudHJhbnNsYXRlLHQuX19vcmlnaW5hbFRyYW5zZm9ybT10LnRyYW5zZm9ybSx0Ll9fb3JpZ2luYWxTZXRUcmFuc2Zvcm09dC5zZXRUcmFuc2Zvcm0sdC5fX29yaWdpbmFsUmVzZXRUcmFuc2Zvcm09dC5yZXNldFRyYW5zZm9ybSx0Ll9fb3JpZ2luYWxDbGlwPXQuY2xpcCx0Ll9fb3JpZ2luYWxNb3ZlVG89dC5tb3ZlVG8sdC5fX29yaWdpbmFsTGluZVRvPXQubGluZVRvLHQuX19vcmlnaW5hbEJlemllckN1cnZlVG89dC5iZXppZXJDdXJ2ZVRvLHQuX19vcmlnaW5hbFJlY3Q9dC5yZWN0LHQuX19vcmlnaW5hbENsb3NlUGF0aD10LmNsb3NlUGF0aCx0Ll9fb3JpZ2luYWxCZWdpblBhdGg9dC5iZWdpblBhdGgsdC5fcmVtb3ZlTWlycm9yaW5nPSgpPT57dC5zYXZlPXQuX19vcmlnaW5hbFNhdmUsdC5yZXN0b3JlPXQuX19vcmlnaW5hbFJlc3RvcmUsdC5yb3RhdGU9dC5fX29yaWdpbmFsUm90YXRlLHQuc2NhbGU9dC5fX29yaWdpbmFsU2NhbGUsdC50cmFuc2xhdGU9dC5fX29yaWdpbmFsVHJhbnNsYXRlLHQudHJhbnNmb3JtPXQuX19vcmlnaW5hbFRyYW5zZm9ybSx0LnNldFRyYW5zZm9ybT10Ll9fb3JpZ2luYWxTZXRUcmFuc2Zvcm0sdC5yZXNldFRyYW5zZm9ybT10Ll9fb3JpZ2luYWxSZXNldFRyYW5zZm9ybSx0LmNsaXA9dC5fX29yaWdpbmFsQ2xpcCx0Lm1vdmVUbz10Ll9fb3JpZ2luYWxNb3ZlVG8sdC5saW5lVG89dC5fX29yaWdpbmFsTGluZVRvLHQuYmV6aWVyQ3VydmVUbz10Ll9fb3JpZ2luYWxCZXppZXJDdXJ2ZVRvLHQucmVjdD10Ll9fb3JpZ2luYWxSZWN0LHQuY2xvc2VQYXRoPXQuX19vcmlnaW5hbENsb3NlUGF0aCx0LmJlZ2luUGF0aD10Ll9fb3JpZ2luYWxCZWdpblBhdGgsZGVsZXRlIHQuX3JlbW92ZU1pcnJvcmluZ30sdC5zYXZlPWZ1bmN0aW9uKCl7ZS5zYXZlKCksdGhpcy5fX29yaWdpbmFsU2F2ZSgpfSx0LnJlc3RvcmU9ZnVuY3Rpb24oKXtlLnJlc3RvcmUoKSx0aGlzLl9fb3JpZ2luYWxSZXN0b3JlKCl9LHQudHJhbnNsYXRlPWZ1bmN0aW9uKHQsaSl7ZS50cmFuc2xhdGUodCxpKSx0aGlzLl9fb3JpZ2luYWxUcmFuc2xhdGUodCxpKX0sdC5zY2FsZT1mdW5jdGlvbih0LGkpe2Uuc2NhbGUodCxpKSx0aGlzLl9fb3JpZ2luYWxTY2FsZSh0LGkpfSx0LnRyYW5zZm9ybT1mdW5jdGlvbih0LGkscyxuLHIsYSl7ZS50cmFuc2Zvcm0odCxpLHMsbixyLGEpLHRoaXMuX19vcmlnaW5hbFRyYW5zZm9ybSh0LGkscyxuLHIsYSl9LHQuc2V0VHJhbnNmb3JtPWZ1bmN0aW9uKHQsaSxzLG4scixhKXtlLnNldFRyYW5zZm9ybSh0LGkscyxuLHIsYSksdGhpcy5fX29yaWdpbmFsU2V0VHJhbnNmb3JtKHQsaSxzLG4scixhKX0sdC5yZXNldFRyYW5zZm9ybT1mdW5jdGlvbigpe2UucmVzZXRUcmFuc2Zvcm0oKSx0aGlzLl9fb3JpZ2luYWxSZXNldFRyYW5zZm9ybSgpfSx0LnJvdGF0ZT1mdW5jdGlvbih0KXtlLnJvdGF0ZSh0KSx0aGlzLl9fb3JpZ2luYWxSb3RhdGUodCl9LHQuY2xpcD1mdW5jdGlvbih0KXtlLmNsaXAodCksdGhpcy5fX29yaWdpbmFsQ2xpcCh0KX0sdC5tb3ZlVG89ZnVuY3Rpb24odCxpKXtlLm1vdmVUbyh0LGkpLHRoaXMuX19vcmlnaW5hbE1vdmVUbyh0LGkpfSx0LmxpbmVUbz1mdW5jdGlvbih0LGkpe2UubGluZVRvKHQsaSksdGhpcy5fX29yaWdpbmFsTGluZVRvKHQsaSl9LHQuYmV6aWVyQ3VydmVUbz1mdW5jdGlvbih0LGkscyxuLHIsYSl7ZS5iZXppZXJDdXJ2ZVRvKHQsaSxzLG4scixhKSx0aGlzLl9fb3JpZ2luYWxCZXppZXJDdXJ2ZVRvKHQsaSxzLG4scixhKX0sdC5yZWN0PWZ1bmN0aW9uKHQsaSxzLG4pe2UucmVjdCh0LGkscyxuKSx0aGlzLl9fb3JpZ2luYWxSZWN0KHQsaSxzLG4pfSx0LmNsb3NlUGF0aD1mdW5jdGlvbigpe2UuY2xvc2VQYXRoKCksdGhpcy5fX29yaWdpbmFsQ2xvc2VQYXRoKCl9LHQuYmVnaW5QYXRoPWZ1bmN0aW9uKCl7ZS5iZWdpblBhdGgoKSx0aGlzLl9fb3JpZ2luYWxCZWdpblBhdGgoKX19KG4sdGhpcy5zdXNwZW5kZWRDdHgpLHRoaXMuc2V0R1N0YXRlKFtbIkJNIiwic291cmNlLW92ZXIiXSxbImNhIiwxXSxbIkNBIiwxXV0pfWVuZFNNYXNrTW9kZSgpe2lmKCF0aGlzLmluU01hc2tNb2RlKXRocm93IG5ldyBFcnJvcigiZW5kU01hc2tNb2RlIGNhbGxlZCB3aGlsZSBub3QgaW4gc21hc2sgbW9kZSIpO3RoaXMuY3R4Ll9yZW1vdmVNaXJyb3JpbmcoKSxoZSh0aGlzLmN0eCx0aGlzLnN1c3BlbmRlZEN0eCksdGhpcy5jdHg9dGhpcy5zdXNwZW5kZWRDdHgsdGhpcy5zdXNwZW5kZWRDdHg9bnVsbH1jb21wb3NlKHQpe2lmKCF0aGlzLmN1cnJlbnQuYWN0aXZlU01hc2spcmV0dXJuO3Q/KHRbMF09TWF0aC5mbG9vcih0WzBdKSx0WzFdPU1hdGguZmxvb3IodFsxXSksdFsyXT1NYXRoLmNlaWwodFsyXSksdFszXT1NYXRoLmNlaWwodFszXSkpOnQ9WzAsMCx0aGlzLmN0eC5jYW52YXMud2lkdGgsdGhpcy5jdHguY2FudmFzLmhlaWdodF07Y29uc3QgZT10aGlzLmN1cnJlbnQuYWN0aXZlU01hc2ssaT10aGlzLnN1c3BlbmRlZEN0eDt0aGlzLmNvbXBvc2VTTWFzayhpLGUsdGhpcy5jdHgsdCksdGhpcy5jdHguc2F2ZSgpLHRoaXMuY3R4LnNldFRyYW5zZm9ybSgxLDAsMCwxLDAsMCksdGhpcy5jdHguY2xlYXJSZWN0KDAsMCx0aGlzLmN0eC5jYW52YXMud2lkdGgsdGhpcy5jdHguY2FudmFzLmhlaWdodCksdGhpcy5jdHgucmVzdG9yZSgpfWNvbXBvc2VTTWFzayh0LGUsaSxzKXtjb25zdCBuPXNbMF0scj1zWzFdLGE9c1syXS1uLG89c1szXS1yOzAhPT1hJiYwIT09byYmKHRoaXMuZ2VuZXJpY0NvbXBvc2VTTWFzayhlLmNvbnRleHQsaSxhLG8sZS5zdWJ0eXBlLGUuYmFja2Ryb3AsZS50cmFuc2Zlck1hcCxuLHIsZS5vZmZzZXRYLGUub2Zmc2V0WSksdC5zYXZlKCksdC5nbG9iYWxBbHBoYT0xLHQuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJzb3VyY2Utb3ZlciIsdC5zZXRUcmFuc2Zvcm0oMSwwLDAsMSwwLDApLHQuZHJhd0ltYWdlKGkuY2FudmFzLDAsMCksdC5yZXN0b3JlKCkpfWdlbmVyaWNDb21wb3NlU01hc2sodCxlLGkscyxuLHIsYSxvLGgsbCxjKXtsZXQgZD10LmNhbnZhcyx1PW8tbCxwPWgtYztpZihyKWlmKHU8MHx8cDwwfHx1K2k+ZC53aWR0aHx8cCtzPmQuaGVpZ2h0KXtjb25zdCB0PXRoaXMuY2FjaGVkQ2FudmFzZXMuZ2V0Q2FudmFzKCJtYXNrRXh0ZW5zaW9uIixpLHMpLGU9dC5jb250ZXh0O2UuZHJhd0ltYWdlKGQsLXUsLXApLHIuc29tZSgodD0+MCE9PXQpKSYmKGUuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJkZXN0aW5hdGlvbi1hdG9wIixlLmZpbGxTdHlsZT16Lm1ha2VIZXhDb2xvciguLi5yKSxlLmZpbGxSZWN0KDAsMCxpLHMpLGUuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJzb3VyY2Utb3ZlciIpLGQ9dC5jYW52YXMsdT1wPTB9ZWxzZSBpZihyLnNvbWUoKHQ9PjAhPT10KSkpe3Quc2F2ZSgpLHQuZ2xvYmFsQWxwaGE9MSx0LnNldFRyYW5zZm9ybSgxLDAsMCwxLDAsMCk7Y29uc3QgZT1uZXcgUGF0aDJEO2UucmVjdCh1LHAsaSxzKSx0LmNsaXAoZSksdC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249ImRlc3RpbmF0aW9uLWF0b3AiLHQuZmlsbFN0eWxlPXoubWFrZUhleENvbG9yKC4uLnIpLHQuZmlsbFJlY3QodSxwLGkscyksdC5yZXN0b3JlKCl9ZS5zYXZlKCksZS5nbG9iYWxBbHBoYT0xLGUuc2V0VHJhbnNmb3JtKDEsMCwwLDEsMCwwKSwiQWxwaGEiPT09biYmYT9lLmZpbHRlcj10aGlzLmZpbHRlckZhY3RvcnkuYWRkQWxwaGFGaWx0ZXIoYSk6Ikx1bWlub3NpdHkiPT09biYmKGUuZmlsdGVyPXRoaXMuZmlsdGVyRmFjdG9yeS5hZGRMdW1pbm9zaXR5RmlsdGVyKGEpKTtjb25zdCBnPW5ldyBQYXRoMkQ7Zy5yZWN0KG8saCxpLHMpLGUuY2xpcChnKSxlLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0iZGVzdGluYXRpb24taW4iLGUuZHJhd0ltYWdlKGQsdSxwLGkscyxvLGgsaSxzKSxlLnJlc3RvcmUoKX1zYXZlKCl7dGhpcy5pblNNYXNrTW9kZT8oaGUodGhpcy5jdHgsdGhpcy5zdXNwZW5kZWRDdHgpLHRoaXMuc3VzcGVuZGVkQ3R4LnNhdmUoKSk6dGhpcy5jdHguc2F2ZSgpO2NvbnN0IHQ9dGhpcy5jdXJyZW50O3RoaXMuc3RhdGVTdGFjay5wdXNoKHQpLHRoaXMuY3VycmVudD10LmNsb25lKCl9cmVzdG9yZSgpezA9PT10aGlzLnN0YXRlU3RhY2subGVuZ3RoJiZ0aGlzLmluU01hc2tNb2RlJiZ0aGlzLmVuZFNNYXNrTW9kZSgpLDAhPT10aGlzLnN0YXRlU3RhY2subGVuZ3RoJiYodGhpcy5jdXJyZW50PXRoaXMuc3RhdGVTdGFjay5wb3AoKSx0aGlzLmluU01hc2tNb2RlPyh0aGlzLnN1c3BlbmRlZEN0eC5yZXN0b3JlKCksaGUodGhpcy5zdXNwZW5kZWRDdHgsdGhpcy5jdHgpKTp0aGlzLmN0eC5yZXN0b3JlKCksdGhpcy5jaGVja1NNYXNrU3RhdGUoKSx0aGlzLnBlbmRpbmdDbGlwPW51bGwsdGhpcy5fY2FjaGVkU2NhbGVGb3JTdHJva2luZ1swXT0tMSx0aGlzLl9jYWNoZWRHZXRTaW5nbGVQaXhlbFdpZHRoPW51bGwpfXRyYW5zZm9ybSh0LGUsaSxzLG4scil7dGhpcy5jdHgudHJhbnNmb3JtKHQsZSxpLHMsbixyKSx0aGlzLl9jYWNoZWRTY2FsZUZvclN0cm9raW5nWzBdPS0xLHRoaXMuX2NhY2hlZEdldFNpbmdsZVBpeGVsV2lkdGg9bnVsbH1jb25zdHJ1Y3RQYXRoKHQsZSxpKXtjb25zdCBzPXRoaXMuY3R4LG49dGhpcy5jdXJyZW50O2xldCByLGEsbz1uLngsaD1uLnk7Y29uc3QgbD1mdChzKSxjPTA9PT1sWzBdJiYwPT09bFszXXx8MD09PWxbMV0mJjA9PT1sWzJdLGQ9Yz9pLnNsaWNlKDApOm51bGw7Zm9yKGxldCBpPTAsdT0wLHA9dC5sZW5ndGg7aTxwO2krKylzd2l0Y2goMHx0W2ldKXtjYXNlIGYucmVjdGFuZ2xlOm89ZVt1KytdLGg9ZVt1KytdO2NvbnN0IHQ9ZVt1KytdLGk9ZVt1KytdLHA9byt0LGc9aCtpO3MubW92ZVRvKG8saCksMD09PXR8fDA9PT1pP3MubGluZVRvKHAsZyk6KHMubGluZVRvKHAsaCkscy5saW5lVG8ocCxnKSxzLmxpbmVUbyhvLGcpKSxjfHxuLnVwZGF0ZVJlY3RNaW5NYXgobCxbbyxoLHAsZ10pLHMuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSBmLm1vdmVUbzpvPWVbdSsrXSxoPWVbdSsrXSxzLm1vdmVUbyhvLGgpLGN8fG4udXBkYXRlUGF0aE1pbk1heChsLG8saCk7YnJlYWs7Y2FzZSBmLmxpbmVUbzpvPWVbdSsrXSxoPWVbdSsrXSxzLmxpbmVUbyhvLGgpLGN8fG4udXBkYXRlUGF0aE1pbk1heChsLG8saCk7YnJlYWs7Y2FzZSBmLmN1cnZlVG86cj1vLGE9aCxvPWVbdSs0XSxoPWVbdSs1XSxzLmJlemllckN1cnZlVG8oZVt1XSxlW3UrMV0sZVt1KzJdLGVbdSszXSxvLGgpLG4udXBkYXRlQ3VydmVQYXRoTWluTWF4KGwscixhLGVbdV0sZVt1KzFdLGVbdSsyXSxlW3UrM10sbyxoLGQpLHUrPTY7YnJlYWs7Y2FzZSBmLmN1cnZlVG8yOnI9byxhPWgscy5iZXppZXJDdXJ2ZVRvKG8saCxlW3VdLGVbdSsxXSxlW3UrMl0sZVt1KzNdKSxuLnVwZGF0ZUN1cnZlUGF0aE1pbk1heChsLHIsYSxvLGgsZVt1XSxlW3UrMV0sZVt1KzJdLGVbdSszXSxkKSxvPWVbdSsyXSxoPWVbdSszXSx1Kz00O2JyZWFrO2Nhc2UgZi5jdXJ2ZVRvMzpyPW8sYT1oLG89ZVt1KzJdLGg9ZVt1KzNdLHMuYmV6aWVyQ3VydmVUbyhlW3VdLGVbdSsxXSxvLGgsbyxoKSxuLnVwZGF0ZUN1cnZlUGF0aE1pbk1heChsLHIsYSxlW3VdLGVbdSsxXSxvLGgsbyxoLGQpLHUrPTQ7YnJlYWs7Y2FzZSBmLmNsb3NlUGF0aDpzLmNsb3NlUGF0aCgpfWMmJm4udXBkYXRlU2NhbGluZ1BhdGhNaW5NYXgobCxkKSxuLnNldEN1cnJlbnRQb2ludChvLGgpfWNsb3NlUGF0aCgpe3RoaXMuY3R4LmNsb3NlUGF0aCgpfXN0cm9rZSh0PSEwKXtjb25zdCBlPXRoaXMuY3R4LGk9dGhpcy5jdXJyZW50LnN0cm9rZUNvbG9yO2UuZ2xvYmFsQWxwaGE9dGhpcy5jdXJyZW50LnN0cm9rZUFscGhhLHRoaXMuY29udGVudFZpc2libGUmJigib2JqZWN0Ij09dHlwZW9mIGkmJmk/LmdldFBhdHRlcm4/KGUuc2F2ZSgpLGUuc3Ryb2tlU3R5bGU9aS5nZXRQYXR0ZXJuKGUsdGhpcyxtdChlKSxHdCksdGhpcy5yZXNjYWxlQW5kU3Ryb2tlKCExKSxlLnJlc3RvcmUoKSk6dGhpcy5yZXNjYWxlQW5kU3Ryb2tlKCEwKSksdCYmdGhpcy5jb25zdW1lUGF0aCh0aGlzLmN1cnJlbnQuZ2V0Q2xpcHBlZFBhdGhCb3VuZGluZ0JveCgpKSxlLmdsb2JhbEFscGhhPXRoaXMuY3VycmVudC5maWxsQWxwaGF9Y2xvc2VTdHJva2UoKXt0aGlzLmNsb3NlUGF0aCgpLHRoaXMuc3Ryb2tlKCl9ZmlsbCh0PSEwKXtjb25zdCBlPXRoaXMuY3R4LGk9dGhpcy5jdXJyZW50LmZpbGxDb2xvcjtsZXQgcz0hMTt0aGlzLmN1cnJlbnQucGF0dGVybkZpbGwmJihlLnNhdmUoKSxlLmZpbGxTdHlsZT1pLmdldFBhdHRlcm4oZSx0aGlzLG10KGUpLFd0KSxzPSEwKTtjb25zdCBuPXRoaXMuY3VycmVudC5nZXRDbGlwcGVkUGF0aEJvdW5kaW5nQm94KCk7dGhpcy5jb250ZW50VmlzaWJsZSYmbnVsbCE9PW4mJih0aGlzLnBlbmRpbmdFT0ZpbGw/KGUuZmlsbCgiZXZlbm9kZCIpLHRoaXMucGVuZGluZ0VPRmlsbD0hMSk6ZS5maWxsKCkpLHMmJmUucmVzdG9yZSgpLHQmJnRoaXMuY29uc3VtZVBhdGgobil9ZW9GaWxsKCl7dGhpcy5wZW5kaW5nRU9GaWxsPSEwLHRoaXMuZmlsbCgpfWZpbGxTdHJva2UoKXt0aGlzLmZpbGwoITEpLHRoaXMuc3Ryb2tlKCExKSx0aGlzLmNvbnN1bWVQYXRoKCl9ZW9GaWxsU3Ryb2tlKCl7dGhpcy5wZW5kaW5nRU9GaWxsPSEwLHRoaXMuZmlsbFN0cm9rZSgpfWNsb3NlRmlsbFN0cm9rZSgpe3RoaXMuY2xvc2VQYXRoKCksdGhpcy5maWxsU3Ryb2tlKCl9Y2xvc2VFT0ZpbGxTdHJva2UoKXt0aGlzLnBlbmRpbmdFT0ZpbGw9ITAsdGhpcy5jbG9zZVBhdGgoKSx0aGlzLmZpbGxTdHJva2UoKX1lbmRQYXRoKCl7dGhpcy5jb25zdW1lUGF0aCgpfWNsaXAoKXt0aGlzLnBlbmRpbmdDbGlwPXBlfWVvQ2xpcCgpe3RoaXMucGVuZGluZ0NsaXA9Z2V9YmVnaW5UZXh0KCl7dGhpcy5jdXJyZW50LnRleHRNYXRyaXg9cix0aGlzLmN1cnJlbnQudGV4dE1hdHJpeFNjYWxlPTEsdGhpcy5jdXJyZW50Lng9dGhpcy5jdXJyZW50LmxpbmVYPTAsdGhpcy5jdXJyZW50Lnk9dGhpcy5jdXJyZW50LmxpbmVZPTB9ZW5kVGV4dCgpe2NvbnN0IHQ9dGhpcy5wZW5kaW5nVGV4dFBhdGhzLGU9dGhpcy5jdHg7aWYodm9pZCAwIT09dCl7ZS5zYXZlKCksZS5iZWdpblBhdGgoKTtmb3IoY29uc3QgaSBvZiB0KWUuc2V0VHJhbnNmb3JtKC4uLmkudHJhbnNmb3JtKSxlLnRyYW5zbGF0ZShpLngsaS55KSxpLmFkZFRvUGF0aChlLGkuZm9udFNpemUpO2UucmVzdG9yZSgpLGUuY2xpcCgpLGUuYmVnaW5QYXRoKCksZGVsZXRlIHRoaXMucGVuZGluZ1RleHRQYXRoc31lbHNlIGUuYmVnaW5QYXRoKCl9c2V0Q2hhclNwYWNpbmcodCl7dGhpcy5jdXJyZW50LmNoYXJTcGFjaW5nPXR9c2V0V29yZFNwYWNpbmcodCl7dGhpcy5jdXJyZW50LndvcmRTcGFjaW5nPXR9c2V0SFNjYWxlKHQpe3RoaXMuY3VycmVudC50ZXh0SFNjYWxlPXQvMTAwfXNldExlYWRpbmcodCl7dGhpcy5jdXJyZW50LmxlYWRpbmc9LXR9c2V0Rm9udCh0LGUpe2NvbnN0IGk9dGhpcy5jb21tb25PYmpzLmdldCh0KSxzPXRoaXMuY3VycmVudDtpZighaSl0aHJvdyBuZXcgRXJyb3IoYENhbid0IGZpbmQgZm9udCBmb3IgJHt0fWApO2lmKHMuZm9udE1hdHJpeD1pLmZvbnRNYXRyaXh8fGEsMCE9PXMuZm9udE1hdHJpeFswXSYmMCE9PXMuZm9udE1hdHJpeFszXXx8dygiSW52YWxpZCBmb250IG1hdHJpeCBmb3IgZm9udCAiK3QpLGU8MD8oZT0tZSxzLmZvbnREaXJlY3Rpb249LTEpOnMuZm9udERpcmVjdGlvbj0xLHRoaXMuY3VycmVudC5mb250PWksdGhpcy5jdXJyZW50LmZvbnRTaXplPWUsaS5pc1R5cGUzRm9udClyZXR1cm47Y29uc3Qgbj1pLmxvYWRlZE5hbWV8fCJzYW5zLXNlcmlmIixyPWkuc3lzdGVtRm9udEluZm8/LmNzc3x8YCIke259IiwgJHtpLmZhbGxiYWNrTmFtZX1gO2xldCBvPSJub3JtYWwiO2kuYmxhY2s/bz0iOTAwIjppLmJvbGQmJihvPSJib2xkIik7Y29uc3QgaD1pLml0YWxpYz8iaXRhbGljIjoibm9ybWFsIjtsZXQgbD1lO2U8MTY/bD0xNjplPjEwMCYmKGw9MTAwKSx0aGlzLmN1cnJlbnQuZm9udFNpemVTY2FsZT1lL2wsdGhpcy5jdHguZm9udD1gJHtofSAke299ICR7bH1weCAke3J9YH1zZXRUZXh0UmVuZGVyaW5nTW9kZSh0KXt0aGlzLmN1cnJlbnQudGV4dFJlbmRlcmluZ01vZGU9dH1zZXRUZXh0UmlzZSh0KXt0aGlzLmN1cnJlbnQudGV4dFJpc2U9dH1tb3ZlVGV4dCh0LGUpe3RoaXMuY3VycmVudC54PXRoaXMuY3VycmVudC5saW5lWCs9dCx0aGlzLmN1cnJlbnQueT10aGlzLmN1cnJlbnQubGluZVkrPWV9c2V0TGVhZGluZ01vdmVUZXh0KHQsZSl7dGhpcy5zZXRMZWFkaW5nKC1lKSx0aGlzLm1vdmVUZXh0KHQsZSl9c2V0VGV4dE1hdHJpeCh0LGUsaSxzLG4scil7dGhpcy5jdXJyZW50LnRleHRNYXRyaXg9W3QsZSxpLHMsbixyXSx0aGlzLmN1cnJlbnQudGV4dE1hdHJpeFNjYWxlPU1hdGguaHlwb3QodCxlKSx0aGlzLmN1cnJlbnQueD10aGlzLmN1cnJlbnQubGluZVg9MCx0aGlzLmN1cnJlbnQueT10aGlzLmN1cnJlbnQubGluZVk9MH1uZXh0TGluZSgpe3RoaXMubW92ZVRleHQoMCx0aGlzLmN1cnJlbnQubGVhZGluZyl9cGFpbnRDaGFyKHQsZSxpLHMpe2NvbnN0IG49dGhpcy5jdHgscj10aGlzLmN1cnJlbnQsYT1yLmZvbnQsbz1yLnRleHRSZW5kZXJpbmdNb2RlLGg9ci5mb250U2l6ZS9yLmZvbnRTaXplU2NhbGUsbD0zJm8sYz0hISg0Jm8pLGQ9ci5wYXR0ZXJuRmlsbCYmIWEubWlzc2luZ0ZpbGU7bGV0IHU7KGEuZGlzYWJsZUZvbnRGYWNlfHxjfHxkKSYmKHU9YS5nZXRQYXRoR2VuZXJhdG9yKHRoaXMuY29tbW9uT2Jqcyx0KSksYS5kaXNhYmxlRm9udEZhY2V8fGQ/KG4uc2F2ZSgpLG4udHJhbnNsYXRlKGUsaSksbi5iZWdpblBhdGgoKSx1KG4saCkscyYmbi5zZXRUcmFuc2Zvcm0oLi4ucyksMCE9PWwmJjIhPT1sfHxuLmZpbGwoKSwxIT09bCYmMiE9PWx8fG4uc3Ryb2tlKCksbi5yZXN0b3JlKCkpOigwIT09bCYmMiE9PWx8fG4uZmlsbFRleHQodCxlLGkpLDEhPT1sJiYyIT09bHx8bi5zdHJva2VUZXh0KHQsZSxpKSksYyYmKHRoaXMucGVuZGluZ1RleHRQYXRoc3x8PVtdKS5wdXNoKHt0cmFuc2Zvcm06ZnQobikseDplLHk6aSxmb250U2l6ZTpoLGFkZFRvUGF0aDp1fSl9Z2V0IGlzRm9udFN1YnBpeGVsQUFFbmFibGVkKCl7Y29uc3R7Y29udGV4dDp0fT10aGlzLmNhY2hlZENhbnZhc2VzLmdldENhbnZhcygiaXNGb250U3VicGl4ZWxBQUVuYWJsZWQiLDEwLDEwKTt0LnNjYWxlKDEuNSwxKSx0LmZpbGxUZXh0KCJJIiwwLDEwKTtjb25zdCBlPXQuZ2V0SW1hZ2VEYXRhKDAsMCwxMCwxMCkuZGF0YTtsZXQgaT0hMTtmb3IobGV0IHQ9Mzt0PGUubGVuZ3RoO3QrPTQpaWYoZVt0XT4wJiZlW3RdPDI1NSl7aT0hMDticmVha31yZXR1cm4gQyh0aGlzLCJpc0ZvbnRTdWJwaXhlbEFBRW5hYmxlZCIsaSl9c2hvd1RleHQodCl7Y29uc3QgZT10aGlzLmN1cnJlbnQsaT1lLmZvbnQ7aWYoaS5pc1R5cGUzRm9udClyZXR1cm4gdGhpcy5zaG93VHlwZTNUZXh0KHQpO2NvbnN0IHM9ZS5mb250U2l6ZTtpZigwPT09cylyZXR1cm47Y29uc3Qgbj10aGlzLmN0eCxyPWUuZm9udFNpemVTY2FsZSxhPWUuY2hhclNwYWNpbmcsbz1lLndvcmRTcGFjaW5nLGg9ZS5mb250RGlyZWN0aW9uLGw9ZS50ZXh0SFNjYWxlKmgsYz10Lmxlbmd0aCxkPWkudmVydGljYWwsdT1kPzE6LTEscD1pLmRlZmF1bHRWTWV0cmljcyxnPXMqZS5mb250TWF0cml4WzBdLGY9MD09PWUudGV4dFJlbmRlcmluZ01vZGUmJiFpLmRpc2FibGVGb250RmFjZSYmIWUucGF0dGVybkZpbGw7bGV0IG07aWYobi5zYXZlKCksbi50cmFuc2Zvcm0oLi4uZS50ZXh0TWF0cml4KSxuLnRyYW5zbGF0ZShlLngsZS55K2UudGV4dFJpc2UpLGg+MD9uLnNjYWxlKGwsLTEpOm4uc2NhbGUobCwxKSxlLnBhdHRlcm5GaWxsKXtuLnNhdmUoKTtjb25zdCB0PWUuZmlsbENvbG9yLmdldFBhdHRlcm4obix0aGlzLG10KG4pLFd0KTttPWZ0KG4pLG4ucmVzdG9yZSgpLG4uZmlsbFN0eWxlPXR9bGV0IGI9ZS5saW5lV2lkdGg7Y29uc3Qgdj1lLnRleHRNYXRyaXhTY2FsZTtpZigwPT09dnx8MD09PWIpe2NvbnN0IHQ9MyZlLnRleHRSZW5kZXJpbmdNb2RlOzEhPT10JiYyIT09dHx8KGI9dGhpcy5nZXRTaW5nbGVQaXhlbFdpZHRoKCkpfWVsc2UgYi89djtpZigxIT09ciYmKG4uc2NhbGUocixyKSxiLz1yKSxuLmxpbmVXaWR0aD1iLGkuaXNJbnZhbGlkUERGanNGb250KXtjb25zdCBpPVtdO2xldCBzPTA7Zm9yKGNvbnN0IGUgb2YgdClpLnB1c2goZS51bmljb2RlKSxzKz1lLndpZHRoO3JldHVybiBuLmZpbGxUZXh0KGkuam9pbigiIiksMCwwKSxlLngrPXMqZypsLG4ucmVzdG9yZSgpLHZvaWQgdGhpcy5jb21wb3NlKCl9bGV0IHksQT0wO2Zvcih5PTA7eTxjOysreSl7Y29uc3QgZT10W3ldO2lmKCJudW1iZXIiPT10eXBlb2YgZSl7QSs9dSplKnMvMWUzO2NvbnRpbnVlfWxldCBsPSExO2NvbnN0IGM9KGUuaXNTcGFjZT9vOjApK2EsYj1lLmZvbnRDaGFyLHY9ZS5hY2NlbnQ7bGV0IHcseCxfPWUud2lkdGg7aWYoZCl7Y29uc3QgdD1lLnZtZXRyaWN8fHAsaT0tKGUudm1ldHJpYz90WzFdOi41Kl8pKmcscz10WzJdKmc7Xz10Py10WzBdOl8sdz1pL3IseD0oQStzKS9yfWVsc2Ugdz1BL3IseD0wO2lmKGkucmVtZWFzdXJlJiZfPjApe2NvbnN0IHQ9MWUzKm4ubWVhc3VyZVRleHQoYikud2lkdGgvcypyO2lmKF88dCYmdGhpcy5pc0ZvbnRTdWJwaXhlbEFBRW5hYmxlZCl7Y29uc3QgZT1fL3Q7bD0hMCxuLnNhdmUoKSxuLnNjYWxlKGUsMSksdy89ZX1lbHNlIF8hPT10JiYodys9KF8tdCkvMmUzKnMvcil9aWYodGhpcy5jb250ZW50VmlzaWJsZSYmKGUuaXNJbkZvbnR8fGkubWlzc2luZ0ZpbGUpKWlmKGYmJiF2KW4uZmlsbFRleHQoYix3LHgpO2Vsc2UgaWYodGhpcy5wYWludENoYXIoYix3LHgsbSksdil7Y29uc3QgdD13K3Mqdi5vZmZzZXQueC9yLGU9eC1zKnYub2Zmc2V0Lnkvcjt0aGlzLnBhaW50Q2hhcih2LmZvbnRDaGFyLHQsZSxtKX1BKz1kP18qZy1jKmg6XypnK2MqaCxsJiZuLnJlc3RvcmUoKX1kP2UueS09QTplLngrPUEqbCxuLnJlc3RvcmUoKSx0aGlzLmNvbXBvc2UoKX1zaG93VHlwZTNUZXh0KHQpe2NvbnN0IGU9dGhpcy5jdHgsaT10aGlzLmN1cnJlbnQscz1pLmZvbnQsbj1pLmZvbnRTaXplLHI9aS5mb250RGlyZWN0aW9uLG89cy52ZXJ0aWNhbD8xOi0xLGg9aS5jaGFyU3BhY2luZyxsPWkud29yZFNwYWNpbmcsYz1pLnRleHRIU2NhbGUqcixkPWkuZm9udE1hdHJpeHx8YSx1PXQubGVuZ3RoO2xldCBwLGcsZixtO2lmKDMhPT1pLnRleHRSZW5kZXJpbmdNb2RlJiYwIT09bil7Zm9yKHRoaXMuX2NhY2hlZFNjYWxlRm9yU3Ryb2tpbmdbMF09LTEsdGhpcy5fY2FjaGVkR2V0U2luZ2xlUGl4ZWxXaWR0aD1udWxsLGUuc2F2ZSgpLGUudHJhbnNmb3JtKC4uLmkudGV4dE1hdHJpeCksZS50cmFuc2xhdGUoaS54LGkueSksZS5zY2FsZShjLHIpLHA9MDtwPHU7KytwKXtpZihnPXRbcF0sIm51bWJlciI9PXR5cGVvZiBnKXttPW8qZypuLzFlMyx0aGlzLmN0eC50cmFuc2xhdGUobSwwKSxpLngrPW0qYztjb250aW51ZX1jb25zdCByPShnLmlzU3BhY2U/bDowKStoLGE9cy5jaGFyUHJvY09wZXJhdG9yTGlzdFtnLm9wZXJhdG9yTGlzdElkXTthPyh0aGlzLmNvbnRlbnRWaXNpYmxlJiYodGhpcy5wcm9jZXNzaW5nVHlwZTM9Zyx0aGlzLnNhdmUoKSxlLnNjYWxlKG4sbiksZS50cmFuc2Zvcm0oLi4uZCksdGhpcy5leGVjdXRlT3BlcmF0b3JMaXN0KGEpLHRoaXMucmVzdG9yZSgpKSxmPXouYXBwbHlUcmFuc2Zvcm0oW2cud2lkdGgsMF0sZClbMF0qbityLGUudHJhbnNsYXRlKGYsMCksaS54Kz1mKmMpOncoYFR5cGUzIGNoYXJhY3RlciAiJHtnLm9wZXJhdG9yTGlzdElkfSIgaXMgbm90IGF2YWlsYWJsZS5gKX1lLnJlc3RvcmUoKSx0aGlzLnByb2Nlc3NpbmdUeXBlMz1udWxsfX1zZXRDaGFyV2lkdGgodCxlKXt9c2V0Q2hhcldpZHRoQW5kQm91bmRzKHQsZSxpLHMsbixyKXt0aGlzLmN0eC5yZWN0KGkscyxuLWksci1zKSx0aGlzLmN0eC5jbGlwKCksdGhpcy5lbmRQYXRoKCl9Z2V0Q29sb3JOX1BhdHRlcm4odCl7bGV0IGU7aWYoIlRpbGluZ1BhdHRlcm4iPT09dFswXSl7Y29uc3QgaT10WzFdLHM9dGhpcy5iYXNlVHJhbnNmb3JtfHxmdCh0aGlzLmN0eCksbj17Y3JlYXRlQ2FudmFzR3JhcGhpY3M6dD0+bmV3IGZlKHQsdGhpcy5jb21tb25PYmpzLHRoaXMub2Jqcyx0aGlzLmNhbnZhc0ZhY3RvcnksdGhpcy5maWx0ZXJGYWN0b3J5LHtvcHRpb25hbENvbnRlbnRDb25maWc6dGhpcy5vcHRpb25hbENvbnRlbnRDb25maWcsbWFya2VkQ29udGVudFN0YWNrOnRoaXMubWFya2VkQ29udGVudFN0YWNrfSl9O2U9bmV3IHRlKHQsaSx0aGlzLmN0eCxuLHMpfWVsc2UgZT10aGlzLl9nZXRQYXR0ZXJuKHRbMV0sdFsyXSk7cmV0dXJuIGV9c2V0U3Ryb2tlQ29sb3JOKCl7dGhpcy5jdXJyZW50LnN0cm9rZUNvbG9yPXRoaXMuZ2V0Q29sb3JOX1BhdHRlcm4oYXJndW1lbnRzKX1zZXRGaWxsQ29sb3JOKCl7dGhpcy5jdXJyZW50LmZpbGxDb2xvcj10aGlzLmdldENvbG9yTl9QYXR0ZXJuKGFyZ3VtZW50cyksdGhpcy5jdXJyZW50LnBhdHRlcm5GaWxsPSEwfXNldFN0cm9rZVJHQkNvbG9yKHQsZSxpKXt0aGlzLmN0eC5zdHJva2VTdHlsZT10aGlzLmN1cnJlbnQuc3Ryb2tlQ29sb3I9ei5tYWtlSGV4Q29sb3IodCxlLGkpfXNldFN0cm9rZVRyYW5zcGFyZW50KCl7dGhpcy5jdHguc3Ryb2tlU3R5bGU9dGhpcy5jdXJyZW50LnN0cm9rZUNvbG9yPSJ0cmFuc3BhcmVudCJ9c2V0RmlsbFJHQkNvbG9yKHQsZSxpKXt0aGlzLmN0eC5maWxsU3R5bGU9dGhpcy5jdXJyZW50LmZpbGxDb2xvcj16Lm1ha2VIZXhDb2xvcih0LGUsaSksdGhpcy5jdXJyZW50LnBhdHRlcm5GaWxsPSExfXNldEZpbGxUcmFuc3BhcmVudCgpe3RoaXMuY3R4LmZpbGxTdHlsZT10aGlzLmN1cnJlbnQuZmlsbENvbG9yPSJ0cmFuc3BhcmVudCIsdGhpcy5jdXJyZW50LnBhdHRlcm5GaWxsPSExfV9nZXRQYXR0ZXJuKHQsZT1udWxsKXtsZXQgaTtyZXR1cm4gdGhpcy5jYWNoZWRQYXR0ZXJucy5oYXModCk/aT10aGlzLmNhY2hlZFBhdHRlcm5zLmdldCh0KTooaT1mdW5jdGlvbih0KXtzd2l0Y2godFswXSl7Y2FzZSJSYWRpYWxBeGlhbCI6cmV0dXJuIG5ldyBLdCh0KTtjYXNlIk1lc2giOnJldHVybiBuZXcgSnQodCk7Y2FzZSJEdW1teSI6cmV0dXJuIG5ldyBadH10aHJvdyBuZXcgRXJyb3IoYFVua25vd24gSVIgdHlwZTogJHt0WzBdfWApfSh0aGlzLmdldE9iamVjdCh0KSksdGhpcy5jYWNoZWRQYXR0ZXJucy5zZXQodCxpKSksZSYmKGkubWF0cml4PWUpLGl9c2hhZGluZ0ZpbGwodCl7aWYoIXRoaXMuY29udGVudFZpc2libGUpcmV0dXJuO2NvbnN0IGU9dGhpcy5jdHg7dGhpcy5zYXZlKCk7Y29uc3QgaT10aGlzLl9nZXRQYXR0ZXJuKHQpO2UuZmlsbFN0eWxlPWkuZ2V0UGF0dGVybihlLHRoaXMsbXQoZSksVnQpO2NvbnN0IHM9bXQoZSk7aWYocyl7Y29uc3R7d2lkdGg6dCxoZWlnaHQ6aX09ZS5jYW52YXMsW24scixhLG9dPXouZ2V0QXhpYWxBbGlnbmVkQm91bmRpbmdCb3goWzAsMCx0LGldLHMpO3RoaXMuY3R4LmZpbGxSZWN0KG4scixhLW4sby1yKX1lbHNlIHRoaXMuY3R4LmZpbGxSZWN0KC0xZTEwLC0xZTEwLDJlMTAsMmUxMCk7dGhpcy5jb21wb3NlKHRoaXMuY3VycmVudC5nZXRDbGlwcGVkUGF0aEJvdW5kaW5nQm94KCkpLHRoaXMucmVzdG9yZSgpfWJlZ2luSW5saW5lSW1hZ2UoKXt4KCJTaG91bGQgbm90IGNhbGwgYmVnaW5JbmxpbmVJbWFnZSIpfWJlZ2luSW1hZ2VEYXRhKCl7eCgiU2hvdWxkIG5vdCBjYWxsIGJlZ2luSW1hZ2VEYXRhIil9cGFpbnRGb3JtWE9iamVjdEJlZ2luKHQsZSl7aWYodGhpcy5jb250ZW50VmlzaWJsZSYmKHRoaXMuc2F2ZSgpLHRoaXMuYmFzZVRyYW5zZm9ybVN0YWNrLnB1c2godGhpcy5iYXNlVHJhbnNmb3JtKSx0JiZ0aGlzLnRyYW5zZm9ybSguLi50KSx0aGlzLmJhc2VUcmFuc2Zvcm09ZnQodGhpcy5jdHgpLGUpKXtjb25zdCB0PWVbMl0tZVswXSxpPWVbM10tZVsxXTt0aGlzLmN0eC5yZWN0KGVbMF0sZVsxXSx0LGkpLHRoaXMuY3VycmVudC51cGRhdGVSZWN0TWluTWF4KGZ0KHRoaXMuY3R4KSxlKSx0aGlzLmNsaXAoKSx0aGlzLmVuZFBhdGgoKX19cGFpbnRGb3JtWE9iamVjdEVuZCgpe3RoaXMuY29udGVudFZpc2libGUmJih0aGlzLnJlc3RvcmUoKSx0aGlzLmJhc2VUcmFuc2Zvcm09dGhpcy5iYXNlVHJhbnNmb3JtU3RhY2sucG9wKCkpfWJlZ2luR3JvdXAodCl7aWYoIXRoaXMuY29udGVudFZpc2libGUpcmV0dXJuO3RoaXMuc2F2ZSgpLHRoaXMuaW5TTWFza01vZGUmJih0aGlzLmVuZFNNYXNrTW9kZSgpLHRoaXMuY3VycmVudC5hY3RpdmVTTWFzaz1udWxsKTtjb25zdCBlPXRoaXMuY3R4O3QuaXNvbGF0ZWR8fEEoIlRPRE86IFN1cHBvcnQgbm9uLWlzb2xhdGVkIGdyb3Vwcy4iKSx0Lmtub2Nrb3V0JiZ3KCJLbm9ja291dCBncm91cHMgbm90IHN1cHBvcnRlZC4iKTtjb25zdCBpPWZ0KGUpO2lmKHQubWF0cml4JiZlLnRyYW5zZm9ybSguLi50Lm1hdHJpeCksIXQuYmJveCl0aHJvdyBuZXcgRXJyb3IoIkJvdW5kaW5nIGJveCBpcyByZXF1aXJlZC4iKTtsZXQgcz16LmdldEF4aWFsQWxpZ25lZEJvdW5kaW5nQm94KHQuYmJveCxmdChlKSk7Y29uc3Qgbj1bMCwwLGUuY2FudmFzLndpZHRoLGUuY2FudmFzLmhlaWdodF07cz16LmludGVyc2VjdChzLG4pfHxbMCwwLDAsMF07Y29uc3Qgcj1NYXRoLmZsb29yKHNbMF0pLGE9TWF0aC5mbG9vcihzWzFdKSxvPU1hdGgubWF4KE1hdGguY2VpbChzWzJdKS1yLDEpLGg9TWF0aC5tYXgoTWF0aC5jZWlsKHNbM10pLWEsMSk7dGhpcy5jdXJyZW50LnN0YXJ0TmV3UGF0aEFuZENsaXBCb3goWzAsMCxvLGhdKTtsZXQgbD0iZ3JvdXBBdCIrdGhpcy5ncm91cExldmVsO3Quc21hc2smJihsKz0iX3NtYXNrXyIrdGhpcy5zbWFza0NvdW50ZXIrKyUyKTtjb25zdCBjPXRoaXMuY2FjaGVkQ2FudmFzZXMuZ2V0Q2FudmFzKGwsbyxoKSxkPWMuY29udGV4dDtkLnRyYW5zbGF0ZSgtciwtYSksZC50cmFuc2Zvcm0oLi4uaSksdC5zbWFzaz90aGlzLnNtYXNrU3RhY2sucHVzaCh7Y2FudmFzOmMuY2FudmFzLGNvbnRleHQ6ZCxvZmZzZXRYOnIsb2Zmc2V0WTphLHN1YnR5cGU6dC5zbWFzay5zdWJ0eXBlLGJhY2tkcm9wOnQuc21hc2suYmFja2Ryb3AsdHJhbnNmZXJNYXA6dC5zbWFzay50cmFuc2Zlck1hcHx8bnVsbCxzdGFydFRyYW5zZm9ybUludmVyc2U6bnVsbH0pOihlLnNldFRyYW5zZm9ybSgxLDAsMCwxLDAsMCksZS50cmFuc2xhdGUocixhKSxlLnNhdmUoKSksaGUoZSxkKSx0aGlzLmN0eD1kLHRoaXMuc2V0R1N0YXRlKFtbIkJNIiwic291cmNlLW92ZXIiXSxbImNhIiwxXSxbIkNBIiwxXV0pLHRoaXMuZ3JvdXBTdGFjay5wdXNoKGUpLHRoaXMuZ3JvdXBMZXZlbCsrfWVuZEdyb3VwKHQpe2lmKCF0aGlzLmNvbnRlbnRWaXNpYmxlKXJldHVybjt0aGlzLmdyb3VwTGV2ZWwtLTtjb25zdCBlPXRoaXMuY3R4LGk9dGhpcy5ncm91cFN0YWNrLnBvcCgpO2lmKHRoaXMuY3R4PWksdGhpcy5jdHguaW1hZ2VTbW9vdGhpbmdFbmFibGVkPSExLHQuc21hc2spdGhpcy50ZW1wU01hc2s9dGhpcy5zbWFza1N0YWNrLnBvcCgpLHRoaXMucmVzdG9yZSgpO2Vsc2V7dGhpcy5jdHgucmVzdG9yZSgpO2NvbnN0IHQ9ZnQodGhpcy5jdHgpO3RoaXMucmVzdG9yZSgpLHRoaXMuY3R4LnNhdmUoKSx0aGlzLmN0eC5zZXRUcmFuc2Zvcm0oLi4udCk7Y29uc3QgaT16LmdldEF4aWFsQWxpZ25lZEJvdW5kaW5nQm94KFswLDAsZS5jYW52YXMud2lkdGgsZS5jYW52YXMuaGVpZ2h0XSx0KTt0aGlzLmN0eC5kcmF3SW1hZ2UoZS5jYW52YXMsMCwwKSx0aGlzLmN0eC5yZXN0b3JlKCksdGhpcy5jb21wb3NlKGkpfX1iZWdpbkFubm90YXRpb24odCxlLGkscyxuKXtpZih0aGlzLiNMZSgpLGxlKHRoaXMuY3R4KSx0aGlzLmN0eC5zYXZlKCksdGhpcy5zYXZlKCksdGhpcy5iYXNlVHJhbnNmb3JtJiZ0aGlzLmN0eC5zZXRUcmFuc2Zvcm0oLi4udGhpcy5iYXNlVHJhbnNmb3JtKSxlKXtjb25zdCBzPWVbMl0tZVswXSxyPWVbM10tZVsxXTtpZihuJiZ0aGlzLmFubm90YXRpb25DYW52YXNNYXApeyhpPWkuc2xpY2UoKSlbNF0tPWVbMF0saVs1XS09ZVsxXSwoZT1lLnNsaWNlKCkpWzBdPWVbMV09MCxlWzJdPXMsZVszXT1yO2NvbnN0W24sYV09ei5zaW5ndWxhclZhbHVlRGVjb21wb3NlMmRTY2FsZShmdCh0aGlzLmN0eCkpLHt2aWV3cG9ydFNjYWxlOm99PXRoaXMsaD1NYXRoLmNlaWwocyp0aGlzLm91dHB1dFNjYWxlWCpvKSxsPU1hdGguY2VpbChyKnRoaXMub3V0cHV0U2NhbGVZKm8pO3RoaXMuYW5ub3RhdGlvbkNhbnZhcz10aGlzLmNhbnZhc0ZhY3RvcnkuY3JlYXRlKGgsbCk7Y29uc3R7Y2FudmFzOmMsY29udGV4dDpkfT10aGlzLmFubm90YXRpb25DYW52YXM7dGhpcy5hbm5vdGF0aW9uQ2FudmFzTWFwLnNldCh0LGMpLHRoaXMuYW5ub3RhdGlvbkNhbnZhcy5zYXZlZEN0eD10aGlzLmN0eCx0aGlzLmN0eD1kLHRoaXMuY3R4LnNhdmUoKSx0aGlzLmN0eC5zZXRUcmFuc2Zvcm0obiwwLDAsLWEsMCxyKmEpLGxlKHRoaXMuY3R4KX1lbHNlIGxlKHRoaXMuY3R4KSx0aGlzLmVuZFBhdGgoKSx0aGlzLmN0eC5yZWN0KGVbMF0sZVsxXSxzLHIpLHRoaXMuY3R4LmNsaXAoKSx0aGlzLmN0eC5iZWdpblBhdGgoKX10aGlzLmN1cnJlbnQ9bmV3IHJlKHRoaXMuY3R4LmNhbnZhcy53aWR0aCx0aGlzLmN0eC5jYW52YXMuaGVpZ2h0KSx0aGlzLnRyYW5zZm9ybSguLi5pKSx0aGlzLnRyYW5zZm9ybSguLi5zKX1lbmRBbm5vdGF0aW9uKCl7dGhpcy5hbm5vdGF0aW9uQ2FudmFzJiYodGhpcy5jdHgucmVzdG9yZSgpLHRoaXMuI0ZlKCksdGhpcy5jdHg9dGhpcy5hbm5vdGF0aW9uQ2FudmFzLnNhdmVkQ3R4LGRlbGV0ZSB0aGlzLmFubm90YXRpb25DYW52YXMuc2F2ZWRDdHgsZGVsZXRlIHRoaXMuYW5ub3RhdGlvbkNhbnZhcyl9cGFpbnRJbWFnZU1hc2tYT2JqZWN0KHQpe2lmKCF0aGlzLmNvbnRlbnRWaXNpYmxlKXJldHVybjtjb25zdCBlPXQuY291bnQ7KHQ9dGhpcy5nZXRPYmplY3QodC5kYXRhLHQpKS5jb3VudD1lO2NvbnN0IGk9dGhpcy5jdHgscz10aGlzLnByb2Nlc3NpbmdUeXBlMztpZihzJiYodm9pZCAwPT09cy5jb21waWxlZCYmKHMuY29tcGlsZWQ9ZnVuY3Rpb24odCl7Y29uc3R7d2lkdGg6ZSxoZWlnaHQ6aX09dDtpZihlPjFlM3x8aT4xZTMpcmV0dXJuIG51bGw7Y29uc3Qgcz1uZXcgVWludDhBcnJheShbMCwyLDQsMCwxLDAsNSw0LDgsMTAsMCw4LDAsMiwxLDBdKSxuPWUrMTtsZXQgcixhLG8saD1uZXcgVWludDhBcnJheShuKihpKzEpKTtjb25zdCBsPWUrNyYtODtsZXQgYz1uZXcgVWludDhBcnJheShsKmkpLGQ9MDtmb3IoY29uc3QgZSBvZiB0LmRhdGEpe2xldCB0PTEyODtmb3IoO3Q+MDspY1tkKytdPWUmdD8wOjI1NSx0Pj49MX1sZXQgdT0wO2ZvcihkPTAsMCE9PWNbZF0mJihoWzBdPTEsKyt1KSxhPTE7YTxlO2ErKyljW2RdIT09Y1tkKzFdJiYoaFthXT1jW2RdPzI6MSwrK3UpLGQrKztmb3IoMCE9PWNbZF0mJihoW2FdPTIsKyt1KSxyPTE7cjxpO3IrKyl7ZD1yKmwsbz1yKm4sY1tkLWxdIT09Y1tkXSYmKGhbb109Y1tkXT8xOjgsKyt1KTtsZXQgdD0oY1tkXT80OjApKyhjW2QtbF0/ODowKTtmb3IoYT0xO2E8ZTthKyspdD0odD4+MikrKGNbZCsxXT80OjApKyhjW2QtbCsxXT84OjApLHNbdF0mJihoW28rYV09c1t0XSwrK3UpLGQrKztpZihjW2QtbF0hPT1jW2RdJiYoaFtvK2FdPWNbZF0/Mjo0LCsrdSksdT4xZTMpcmV0dXJuIG51bGx9Zm9yKGQ9bCooaS0xKSxvPXIqbiwwIT09Y1tkXSYmKGhbb109OCwrK3UpLGE9MTthPGU7YSsrKWNbZF0hPT1jW2QrMV0mJihoW28rYV09Y1tkXT80OjgsKyt1KSxkKys7aWYoMCE9PWNbZF0mJihoW28rYV09NCwrK3UpLHU+MWUzKXJldHVybiBudWxsO2NvbnN0IHA9bmV3IEludDMyQXJyYXkoWzAsbiwtMSwwLC1uLDAsMCwwLDFdKSxnPW5ldyBQYXRoMkQ7Zm9yKHI9MDt1JiZyPD1pO3IrKyl7bGV0IHQ9cipuO2NvbnN0IGk9dCtlO2Zvcig7dDxpJiYhaFt0XTspdCsrO2lmKHQ9PT1pKWNvbnRpbnVlO2cubW92ZVRvKHQlbixyKTtjb25zdCBzPXQ7bGV0IGE9aFt0XTtkb3tjb25zdCBlPXBbYV07ZG97dCs9ZX13aGlsZSghaFt0XSk7Y29uc3QgaT1oW3RdOzUhPT1pJiYxMCE9PWk/KGE9aSxoW3RdPTApOihhPWkmNTEqYT4+NCxoW3RdJj1hPj4yfGE8PDIpLGcubGluZVRvKHQlbix0L258MCksaFt0XXx8LS11fXdoaWxlKHMhPT10KTstLXJ9cmV0dXJuIGM9bnVsbCxoPW51bGwsZnVuY3Rpb24odCl7dC5zYXZlKCksdC5zY2FsZSgxL2UsLTEvaSksdC50cmFuc2xhdGUoMCwtaSksdC5maWxsKGcpLHQuYmVnaW5QYXRoKCksdC5yZXN0b3JlKCl9fSh0KSkscy5jb21waWxlZCkpcmV0dXJuIHZvaWQgcy5jb21waWxlZChpKTtjb25zdCBuPXRoaXMuX2NyZWF0ZU1hc2tDYW52YXModCkscj1uLmNhbnZhcztpLnNhdmUoKSxpLnNldFRyYW5zZm9ybSgxLDAsMCwxLDAsMCksaS5kcmF3SW1hZ2UocixuLm9mZnNldFgsbi5vZmZzZXRZKSxpLnJlc3RvcmUoKSx0aGlzLmNvbXBvc2UoKX1wYWludEltYWdlTWFza1hPYmplY3RSZXBlYXQodCxlLGk9MCxzPTAsbixyKXtpZighdGhpcy5jb250ZW50VmlzaWJsZSlyZXR1cm47dD10aGlzLmdldE9iamVjdCh0LmRhdGEsdCk7Y29uc3QgYT10aGlzLmN0eDthLnNhdmUoKTtjb25zdCBvPWZ0KGEpO2EudHJhbnNmb3JtKGUsaSxzLG4sMCwwKTtjb25zdCBoPXRoaXMuX2NyZWF0ZU1hc2tDYW52YXModCk7YS5zZXRUcmFuc2Zvcm0oMSwwLDAsMSxoLm9mZnNldFgtb1s0XSxoLm9mZnNldFktb1s1XSk7Zm9yKGxldCB0PTAsbD1yLmxlbmd0aDt0PGw7dCs9Mil7Y29uc3QgbD16LnRyYW5zZm9ybShvLFtlLGkscyxuLHJbdF0sclt0KzFdXSksW2MsZF09ei5hcHBseVRyYW5zZm9ybShbMCwwXSxsKTthLmRyYXdJbWFnZShoLmNhbnZhcyxjLGQpfWEucmVzdG9yZSgpLHRoaXMuY29tcG9zZSgpfXBhaW50SW1hZ2VNYXNrWE9iamVjdEdyb3VwKHQpe2lmKCF0aGlzLmNvbnRlbnRWaXNpYmxlKXJldHVybjtjb25zdCBlPXRoaXMuY3R4LGk9dGhpcy5jdXJyZW50LmZpbGxDb2xvcixzPXRoaXMuY3VycmVudC5wYXR0ZXJuRmlsbDtmb3IoY29uc3QgbiBvZiB0KXtjb25zdHtkYXRhOnQsd2lkdGg6cixoZWlnaHQ6YSx0cmFuc2Zvcm06b309bixoPXRoaXMuY2FjaGVkQ2FudmFzZXMuZ2V0Q2FudmFzKCJtYXNrQ2FudmFzIixyLGEpLGw9aC5jb250ZXh0O2wuc2F2ZSgpLG9lKGwsdGhpcy5nZXRPYmplY3QodCxuKSksbC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249InNvdXJjZS1pbiIsbC5maWxsU3R5bGU9cz9pLmdldFBhdHRlcm4obCx0aGlzLG10KGUpLFd0KTppLGwuZmlsbFJlY3QoMCwwLHIsYSksbC5yZXN0b3JlKCksZS5zYXZlKCksZS50cmFuc2Zvcm0oLi4ubyksZS5zY2FsZSgxLC0xKSxuZShlLGguY2FudmFzLDAsMCxyLGEsMCwtMSwxLDEpLGUucmVzdG9yZSgpfXRoaXMuY29tcG9zZSgpfXBhaW50SW1hZ2VYT2JqZWN0KHQpe2lmKCF0aGlzLmNvbnRlbnRWaXNpYmxlKXJldHVybjtjb25zdCBlPXRoaXMuZ2V0T2JqZWN0KHQpO2U/dGhpcy5wYWludElubGluZUltYWdlWE9iamVjdChlKTp3KCJEZXBlbmRlbnQgaW1hZ2UgaXNuJ3QgcmVhZHkgeWV0Iil9cGFpbnRJbWFnZVhPYmplY3RSZXBlYXQodCxlLGkscyl7aWYoIXRoaXMuY29udGVudFZpc2libGUpcmV0dXJuO2NvbnN0IG49dGhpcy5nZXRPYmplY3QodCk7aWYoIW4pcmV0dXJuIHZvaWQgdygiRGVwZW5kZW50IGltYWdlIGlzbid0IHJlYWR5IHlldCIpO2NvbnN0IHI9bi53aWR0aCxhPW4uaGVpZ2h0LG89W107Zm9yKGxldCB0PTAsbj1zLmxlbmd0aDt0PG47dCs9MilvLnB1c2goe3RyYW5zZm9ybTpbZSwwLDAsaSxzW3RdLHNbdCsxXV0seDowLHk6MCx3OnIsaDphfSk7dGhpcy5wYWludElubGluZUltYWdlWE9iamVjdEdyb3VwKG4sbyl9YXBwbHlUcmFuc2Zlck1hcHNUb0NhbnZhcyh0KXtyZXR1cm4ibm9uZSIhPT10aGlzLmN1cnJlbnQudHJhbnNmZXJNYXBzJiYodC5maWx0ZXI9dGhpcy5jdXJyZW50LnRyYW5zZmVyTWFwcyx0LmRyYXdJbWFnZSh0LmNhbnZhcywwLDApLHQuZmlsdGVyPSJub25lIiksdC5jYW52YXN9YXBwbHlUcmFuc2Zlck1hcHNUb0JpdG1hcCh0KXtpZigibm9uZSI9PT10aGlzLmN1cnJlbnQudHJhbnNmZXJNYXBzKXJldHVybiB0LmJpdG1hcDtjb25zdHtiaXRtYXA6ZSx3aWR0aDppLGhlaWdodDpzfT10LG49dGhpcy5jYWNoZWRDYW52YXNlcy5nZXRDYW52YXMoImlubGluZUltYWdlIixpLHMpLHI9bi5jb250ZXh0O3JldHVybiByLmZpbHRlcj10aGlzLmN1cnJlbnQudHJhbnNmZXJNYXBzLHIuZHJhd0ltYWdlKGUsMCwwKSxyLmZpbHRlcj0ibm9uZSIsbi5jYW52YXN9cGFpbnRJbmxpbmVJbWFnZVhPYmplY3QodCl7aWYoIXRoaXMuY29udGVudFZpc2libGUpcmV0dXJuO2NvbnN0IGU9dC53aWR0aCxpPXQuaGVpZ2h0LHM9dGhpcy5jdHg7aWYodGhpcy5zYXZlKCksIW4pe2NvbnN0e2ZpbHRlcjp0fT1zOyJub25lIiE9PXQmJiIiIT09dCYmKHMuZmlsdGVyPSJub25lIil9bGV0IHI7aWYocy5zY2FsZSgxL2UsLTEvaSksdC5iaXRtYXApcj10aGlzLmFwcGx5VHJhbnNmZXJNYXBzVG9CaXRtYXAodCk7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgSFRNTEVsZW1lbnQmJnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudHx8IXQuZGF0YSlyPXQ7ZWxzZXtjb25zdCBzPXRoaXMuY2FjaGVkQ2FudmFzZXMuZ2V0Q2FudmFzKCJpbmxpbmVJbWFnZSIsZSxpKS5jb250ZXh0O2FlKHMsdCkscj10aGlzLmFwcGx5VHJhbnNmZXJNYXBzVG9DYW52YXMocyl9Y29uc3QgYT10aGlzLl9zY2FsZUltYWdlKHIsbXQocykpO3MuaW1hZ2VTbW9vdGhpbmdFbmFibGVkPWNlKGZ0KHMpLHQuaW50ZXJwb2xhdGUpLG5lKHMsYS5pbWcsMCwwLGEucGFpbnRXaWR0aCxhLnBhaW50SGVpZ2h0LDAsLWksZSxpKSx0aGlzLmNvbXBvc2UoKSx0aGlzLnJlc3RvcmUoKX1wYWludElubGluZUltYWdlWE9iamVjdEdyb3VwKHQsZSl7aWYoIXRoaXMuY29udGVudFZpc2libGUpcmV0dXJuO2NvbnN0IGk9dGhpcy5jdHg7bGV0IHM7aWYodC5iaXRtYXApcz10LmJpdG1hcDtlbHNle2NvbnN0IGU9dC53aWR0aCxpPXQuaGVpZ2h0LG49dGhpcy5jYWNoZWRDYW52YXNlcy5nZXRDYW52YXMoImlubGluZUltYWdlIixlLGkpLmNvbnRleHQ7YWUobix0KSxzPXRoaXMuYXBwbHlUcmFuc2Zlck1hcHNUb0NhbnZhcyhuKX1mb3IoY29uc3QgdCBvZiBlKWkuc2F2ZSgpLGkudHJhbnNmb3JtKC4uLnQudHJhbnNmb3JtKSxpLnNjYWxlKDEsLTEpLG5lKGkscyx0LngsdC55LHQudyx0LmgsMCwtMSwxLDEpLGkucmVzdG9yZSgpO3RoaXMuY29tcG9zZSgpfXBhaW50U29saWRDb2xvckltYWdlTWFzaygpe3RoaXMuY29udGVudFZpc2libGUmJih0aGlzLmN0eC5maWxsUmVjdCgwLDAsMSwxKSx0aGlzLmNvbXBvc2UoKSl9bWFya1BvaW50KHQpe31tYXJrUG9pbnRQcm9wcyh0LGUpe31iZWdpbk1hcmtlZENvbnRlbnQodCl7dGhpcy5tYXJrZWRDb250ZW50U3RhY2sucHVzaCh7dmlzaWJsZTohMH0pfWJlZ2luTWFya2VkQ29udGVudFByb3BzKHQsZSl7Ik9DIj09PXQ/dGhpcy5tYXJrZWRDb250ZW50U3RhY2sucHVzaCh7dmlzaWJsZTp0aGlzLm9wdGlvbmFsQ29udGVudENvbmZpZy5pc1Zpc2libGUoZSl9KTp0aGlzLm1hcmtlZENvbnRlbnRTdGFjay5wdXNoKHt2aXNpYmxlOiEwfSksdGhpcy5jb250ZW50VmlzaWJsZT10aGlzLmlzQ29udGVudFZpc2libGUoKX1lbmRNYXJrZWRDb250ZW50KCl7dGhpcy5tYXJrZWRDb250ZW50U3RhY2sucG9wKCksdGhpcy5jb250ZW50VmlzaWJsZT10aGlzLmlzQ29udGVudFZpc2libGUoKX1iZWdpbkNvbXBhdCgpe31lbmRDb21wYXQoKXt9Y29uc3VtZVBhdGgodCl7Y29uc3QgZT10aGlzLmN1cnJlbnQuaXNFbXB0eUNsaXAoKTt0aGlzLnBlbmRpbmdDbGlwJiZ0aGlzLmN1cnJlbnQudXBkYXRlQ2xpcEZyb21QYXRoKCksdGhpcy5wZW5kaW5nQ2xpcHx8dGhpcy5jb21wb3NlKHQpO2NvbnN0IGk9dGhpcy5jdHg7dGhpcy5wZW5kaW5nQ2xpcCYmKGV8fCh0aGlzLnBlbmRpbmdDbGlwPT09Z2U/aS5jbGlwKCJldmVub2RkIik6aS5jbGlwKCkpLHRoaXMucGVuZGluZ0NsaXA9bnVsbCksdGhpcy5jdXJyZW50LnN0YXJ0TmV3UGF0aEFuZENsaXBCb3godGhpcy5jdXJyZW50LmNsaXBCb3gpLGkuYmVnaW5QYXRoKCl9Z2V0U2luZ2xlUGl4ZWxXaWR0aCgpe2lmKCF0aGlzLl9jYWNoZWRHZXRTaW5nbGVQaXhlbFdpZHRoKXtjb25zdCB0PWZ0KHRoaXMuY3R4KTtpZigwPT09dFsxXSYmMD09PXRbMl0pdGhpcy5fY2FjaGVkR2V0U2luZ2xlUGl4ZWxXaWR0aD0xL01hdGgubWluKE1hdGguYWJzKHRbMF0pLE1hdGguYWJzKHRbM10pKTtlbHNle2NvbnN0IGU9TWF0aC5hYnModFswXSp0WzNdLXRbMl0qdFsxXSksaT1NYXRoLmh5cG90KHRbMF0sdFsyXSkscz1NYXRoLmh5cG90KHRbMV0sdFszXSk7dGhpcy5fY2FjaGVkR2V0U2luZ2xlUGl4ZWxXaWR0aD1NYXRoLm1heChpLHMpL2V9fXJldHVybiB0aGlzLl9jYWNoZWRHZXRTaW5nbGVQaXhlbFdpZHRofWdldFNjYWxlRm9yU3Ryb2tpbmcoKXtpZigtMT09PXRoaXMuX2NhY2hlZFNjYWxlRm9yU3Ryb2tpbmdbMF0pe2NvbnN0e2xpbmVXaWR0aDp0fT10aGlzLmN1cnJlbnQse2E6ZSxiOmksYzpzLGQ6bn09dGhpcy5jdHguZ2V0VHJhbnNmb3JtKCk7bGV0IHIsYTtpZigwPT09aSYmMD09PXMpe2NvbnN0IGk9TWF0aC5hYnMoZSkscz1NYXRoLmFicyhuKTtpZihpPT09cylpZigwPT09dClyPWE9MS9pO2Vsc2V7Y29uc3QgZT1pKnQ7cj1hPWU8MT8xL2U6MX1lbHNlIGlmKDA9PT10KXI9MS9pLGE9MS9zO2Vsc2V7Y29uc3QgZT1pKnQsbj1zKnQ7cj1lPDE/MS9lOjEsYT1uPDE/MS9uOjF9fWVsc2V7Y29uc3Qgbz1NYXRoLmFicyhlKm4taSpzKSxoPU1hdGguaHlwb3QoZSxpKSxsPU1hdGguaHlwb3QocyxuKTtpZigwPT09dClyPWwvbyxhPWgvbztlbHNle2NvbnN0IGU9dCpvO3I9bD5lP2wvZToxLGE9aD5lP2gvZToxfX10aGlzLl9jYWNoZWRTY2FsZUZvclN0cm9raW5nWzBdPXIsdGhpcy5fY2FjaGVkU2NhbGVGb3JTdHJva2luZ1sxXT1hfXJldHVybiB0aGlzLl9jYWNoZWRTY2FsZUZvclN0cm9raW5nfXJlc2NhbGVBbmRTdHJva2UodCl7Y29uc3R7Y3R4OmV9PXRoaXMse2xpbmVXaWR0aDppfT10aGlzLmN1cnJlbnQsW3Msbl09dGhpcy5nZXRTY2FsZUZvclN0cm9raW5nKCk7aWYoZS5saW5lV2lkdGg9aXx8MSwxPT09cyYmMT09PW4pcmV0dXJuIHZvaWQgZS5zdHJva2UoKTtjb25zdCByPWUuZ2V0TGluZURhc2goKTtpZih0JiZlLnNhdmUoKSxlLnNjYWxlKHMsbiksci5sZW5ndGg+MCl7Y29uc3QgdD1NYXRoLm1heChzLG4pO2Uuc2V0TGluZURhc2goci5tYXAoKGU9PmUvdCkpKSxlLmxpbmVEYXNoT2Zmc2V0Lz10fWUuc3Ryb2tlKCksdCYmZS5yZXN0b3JlKCl9aXNDb250ZW50VmlzaWJsZSgpe2ZvcihsZXQgdD10aGlzLm1hcmtlZENvbnRlbnRTdGFjay5sZW5ndGgtMTt0Pj0wO3QtLSlpZighdGhpcy5tYXJrZWRDb250ZW50U3RhY2tbdF0udmlzaWJsZSlyZXR1cm4hMTtyZXR1cm4hMH19Zm9yKGNvbnN0IHQgaW4gZil2b2lkIDAhPT1mZS5wcm90b3R5cGVbdF0mJihmZS5wcm90b3R5cGVbZlt0XV09ZmUucHJvdG90eXBlW3RdKTtjbGFzcyBtZXtzdGF0aWMjT2U9bnVsbDtzdGF0aWMjTmU9IiI7c3RhdGljIGdldCB3b3JrZXJQb3J0KCl7cmV0dXJuIHRoaXMuI09lfXN0YXRpYyBzZXQgd29ya2VyUG9ydCh0KXtpZighKCJ1bmRlZmluZWQiIT10eXBlb2YgV29ya2VyJiZ0IGluc3RhbmNlb2YgV29ya2VyKSYmbnVsbCE9PXQpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGB3b3JrZXJQb3J0YCB0eXBlLiIpO3RoaXMuI09lPXR9c3RhdGljIGdldCB3b3JrZXJTcmMoKXtyZXR1cm4gdGhpcy4jTmV9c3RhdGljIHNldCB3b3JrZXJTcmModCl7aWYoInN0cmluZyIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBgd29ya2VyU3JjYCB0eXBlLiIpO3RoaXMuI05lPXR9fWZ1bmN0aW9uIGJlKHQpe3N3aXRjaCh0IGluc3RhbmNlb2YgRXJyb3J8fCJvYmplY3QiPT10eXBlb2YgdCYmbnVsbCE9PXR8fHgoJ3dyYXBSZWFzb246IEV4cGVjdGVkICJyZWFzb24iIHRvIGJlIGEgKHBvc3NpYmx5IGNsb25lZCkgRXJyb3IuJyksdC5uYW1lKXtjYXNlIkFib3J0RXhjZXB0aW9uIjpyZXR1cm4gbmV3IEQodC5tZXNzYWdlKTtjYXNlIk1pc3NpbmdQREZFeGNlcHRpb24iOnJldHVybiBuZXcgSSh0Lm1lc3NhZ2UpO2Nhc2UiUGFzc3dvcmRFeGNlcHRpb24iOnJldHVybiBuZXcgVCh0Lm1lc3NhZ2UsdC5jb2RlKTtjYXNlIlVuZXhwZWN0ZWRSZXNwb25zZUV4Y2VwdGlvbiI6cmV0dXJuIG5ldyBSKHQubWVzc2FnZSx0LnN0YXR1cyk7Y2FzZSJVbmtub3duRXJyb3JFeGNlcHRpb24iOnJldHVybiBuZXcgTSh0Lm1lc3NhZ2UsdC5kZXRhaWxzKTtkZWZhdWx0OnJldHVybiBuZXcgTSh0Lm1lc3NhZ2UsdC50b1N0cmluZygpKX19Y2xhc3MgdmV7Y29uc3RydWN0b3IodCxlLGkpe3RoaXMuc291cmNlTmFtZT10LHRoaXMudGFyZ2V0TmFtZT1lLHRoaXMuY29tT2JqPWksdGhpcy5jYWxsYmFja0lkPTEsdGhpcy5zdHJlYW1JZD0xLHRoaXMuc3RyZWFtU2lua3M9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLnN0cmVhbUNvbnRyb2xsZXJzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5jYWxsYmFja0NhcGFiaWxpdGllcz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuYWN0aW9uSGFuZGxlcj1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX29uQ29tT2JqT25NZXNzYWdlPXQ9Pntjb25zdCBlPXQuZGF0YTtpZihlLnRhcmdldE5hbWUhPT10aGlzLnNvdXJjZU5hbWUpcmV0dXJuO2lmKGUuc3RyZWFtKXJldHVybiB2b2lkIHRoaXMuI0JlKGUpO2lmKGUuY2FsbGJhY2spe2NvbnN0IHQ9ZS5jYWxsYmFja0lkLGk9dGhpcy5jYWxsYmFja0NhcGFiaWxpdGllc1t0XTtpZighaSl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZXNvbHZlIGNhbGxiYWNrICR7dH1gKTtpZihkZWxldGUgdGhpcy5jYWxsYmFja0NhcGFiaWxpdGllc1t0XSwxPT09ZS5jYWxsYmFjaylpLnJlc29sdmUoZS5kYXRhKTtlbHNle2lmKDIhPT1lLmNhbGxiYWNrKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBjYWxsYmFjayBjYXNlIik7aS5yZWplY3QoYmUoZS5yZWFzb24pKX1yZXR1cm59Y29uc3Qgcz10aGlzLmFjdGlvbkhhbmRsZXJbZS5hY3Rpb25dO2lmKCFzKXRocm93IG5ldyBFcnJvcihgVW5rbm93biBhY3Rpb24gZnJvbSB3b3JrZXI6ICR7ZS5hY3Rpb259YCk7aWYoZS5jYWxsYmFja0lkKXtjb25zdCB0PXRoaXMuc291cmNlTmFtZSxuPWUuc291cmNlTmFtZTtuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCl7dChzKGUuZGF0YSkpfSkpLnRoZW4oKGZ1bmN0aW9uKHMpe2kucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6dCx0YXJnZXROYW1lOm4sY2FsbGJhY2s6MSxjYWxsYmFja0lkOmUuY2FsbGJhY2tJZCxkYXRhOnN9KX0pLChmdW5jdGlvbihzKXtpLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOnQsdGFyZ2V0TmFtZTpuLGNhbGxiYWNrOjIsY2FsbGJhY2tJZDplLmNhbGxiYWNrSWQscmVhc29uOmJlKHMpfSl9KSl9ZWxzZSBlLnN0cmVhbUlkP3RoaXMuI3plKGUpOnMoZS5kYXRhKX0saS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIix0aGlzLl9vbkNvbU9iak9uTWVzc2FnZSl9b24odCxlKXtjb25zdCBpPXRoaXMuYWN0aW9uSGFuZGxlcjtpZihpW3RdKXRocm93IG5ldyBFcnJvcihgVGhlcmUgaXMgYWxyZWFkeSBhbiBhY3Rpb25OYW1lIGNhbGxlZCAiJHt0fSJgKTtpW3RdPWV9c2VuZCh0LGUsaSl7dGhpcy5jb21PYmoucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6dGhpcy5zb3VyY2VOYW1lLHRhcmdldE5hbWU6dGhpcy50YXJnZXROYW1lLGFjdGlvbjp0LGRhdGE6ZX0saSl9c2VuZFdpdGhQcm9taXNlKHQsZSxpKXtjb25zdCBzPXRoaXMuY2FsbGJhY2tJZCsrLG49UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7dGhpcy5jYWxsYmFja0NhcGFiaWxpdGllc1tzXT1uO3RyeXt0aGlzLmNvbU9iai5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTp0aGlzLnNvdXJjZU5hbWUsdGFyZ2V0TmFtZTp0aGlzLnRhcmdldE5hbWUsYWN0aW9uOnQsY2FsbGJhY2tJZDpzLGRhdGE6ZX0saSl9Y2F0Y2godCl7bi5yZWplY3QodCl9cmV0dXJuIG4ucHJvbWlzZX1zZW5kV2l0aFN0cmVhbSh0LGUsaSxzKXtjb25zdCBuPXRoaXMuc3RyZWFtSWQrKyxyPXRoaXMuc291cmNlTmFtZSxhPXRoaXMudGFyZ2V0TmFtZSxvPXRoaXMuY29tT2JqO3JldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe3N0YXJ0Omk9Pntjb25zdCBoPVByb21pc2Uud2l0aFJlc29sdmVycygpO3JldHVybiB0aGlzLnN0cmVhbUNvbnRyb2xsZXJzW25dPXtjb250cm9sbGVyOmksc3RhcnRDYWxsOmgscHVsbENhbGw6bnVsbCxjYW5jZWxDYWxsOm51bGwsaXNDbG9zZWQ6ITF9LG8ucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6cix0YXJnZXROYW1lOmEsYWN0aW9uOnQsc3RyZWFtSWQ6bixkYXRhOmUsZGVzaXJlZFNpemU6aS5kZXNpcmVkU2l6ZX0scyksaC5wcm9taXNlfSxwdWxsOnQ9Pntjb25zdCBlPVByb21pc2Uud2l0aFJlc29sdmVycygpO3JldHVybiB0aGlzLnN0cmVhbUNvbnRyb2xsZXJzW25dLnB1bGxDYWxsPWUsby5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTpyLHRhcmdldE5hbWU6YSxzdHJlYW06NixzdHJlYW1JZDpuLGRlc2lyZWRTaXplOnQuZGVzaXJlZFNpemV9KSxlLnByb21pc2V9LGNhbmNlbDp0PT57Xyh0IGluc3RhbmNlb2YgRXJyb3IsImNhbmNlbCBtdXN0IGhhdmUgYSB2YWxpZCByZWFzb24iKTtjb25zdCBlPVByb21pc2Uud2l0aFJlc29sdmVycygpO3JldHVybiB0aGlzLnN0cmVhbUNvbnRyb2xsZXJzW25dLmNhbmNlbENhbGw9ZSx0aGlzLnN0cmVhbUNvbnRyb2xsZXJzW25dLmlzQ2xvc2VkPSEwLG8ucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6cix0YXJnZXROYW1lOmEsc3RyZWFtOjEsc3RyZWFtSWQ6bixyZWFzb246YmUodCl9KSxlLnByb21pc2V9fSxpKX0jemUodCl7Y29uc3QgZT10LnN0cmVhbUlkLGk9dGhpcy5zb3VyY2VOYW1lLHM9dC5zb3VyY2VOYW1lLG49dGhpcy5jb21PYmoscj10aGlzLGE9dGhpcy5hY3Rpb25IYW5kbGVyW3QuYWN0aW9uXSxvPXtlbnF1ZXVlKHQscj0xLGEpe2lmKHRoaXMuaXNDYW5jZWxsZWQpcmV0dXJuO2NvbnN0IG89dGhpcy5kZXNpcmVkU2l6ZTt0aGlzLmRlc2lyZWRTaXplLT1yLG8+MCYmdGhpcy5kZXNpcmVkU2l6ZTw9MCYmKHRoaXMuc2lua0NhcGFiaWxpdHk9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCksdGhpcy5yZWFkeT10aGlzLnNpbmtDYXBhYmlsaXR5LnByb21pc2UpLG4ucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6aSx0YXJnZXROYW1lOnMsc3RyZWFtOjQsc3RyZWFtSWQ6ZSxjaHVuazp0fSxhKX0sY2xvc2UoKXt0aGlzLmlzQ2FuY2VsbGVkfHwodGhpcy5pc0NhbmNlbGxlZD0hMCxuLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOmksdGFyZ2V0TmFtZTpzLHN0cmVhbTozLHN0cmVhbUlkOmV9KSxkZWxldGUgci5zdHJlYW1TaW5rc1tlXSl9LGVycm9yKHQpe18odCBpbnN0YW5jZW9mIEVycm9yLCJlcnJvciBtdXN0IGhhdmUgYSB2YWxpZCByZWFzb24iKSx0aGlzLmlzQ2FuY2VsbGVkfHwodGhpcy5pc0NhbmNlbGxlZD0hMCxuLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOmksdGFyZ2V0TmFtZTpzLHN0cmVhbTo1LHN0cmVhbUlkOmUscmVhc29uOmJlKHQpfSkpfSxzaW5rQ2FwYWJpbGl0eTpQcm9taXNlLndpdGhSZXNvbHZlcnMoKSxvblB1bGw6bnVsbCxvbkNhbmNlbDpudWxsLGlzQ2FuY2VsbGVkOiExLGRlc2lyZWRTaXplOnQuZGVzaXJlZFNpemUscmVhZHk6bnVsbH07by5zaW5rQ2FwYWJpbGl0eS5yZXNvbHZlKCksby5yZWFkeT1vLnNpbmtDYXBhYmlsaXR5LnByb21pc2UsdGhpcy5zdHJlYW1TaW5rc1tlXT1vLG5ldyBQcm9taXNlKChmdW5jdGlvbihlKXtlKGEodC5kYXRhLG8pKX0pKS50aGVuKChmdW5jdGlvbigpe24ucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6aSx0YXJnZXROYW1lOnMsc3RyZWFtOjgsc3RyZWFtSWQ6ZSxzdWNjZXNzOiEwfSl9KSwoZnVuY3Rpb24odCl7bi5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTppLHRhcmdldE5hbWU6cyxzdHJlYW06OCxzdHJlYW1JZDplLHJlYXNvbjpiZSh0KX0pfSkpfSNCZSh0KXtjb25zdCBlPXQuc3RyZWFtSWQsaT10aGlzLnNvdXJjZU5hbWUscz10LnNvdXJjZU5hbWUsbj10aGlzLmNvbU9iaixyPXRoaXMuc3RyZWFtQ29udHJvbGxlcnNbZV0sYT10aGlzLnN0cmVhbVNpbmtzW2VdO3N3aXRjaCh0LnN0cmVhbSl7Y2FzZSA4OnQuc3VjY2Vzcz9yLnN0YXJ0Q2FsbC5yZXNvbHZlKCk6ci5zdGFydENhbGwucmVqZWN0KGJlKHQucmVhc29uKSk7YnJlYWs7Y2FzZSA3OnQuc3VjY2Vzcz9yLnB1bGxDYWxsLnJlc29sdmUoKTpyLnB1bGxDYWxsLnJlamVjdChiZSh0LnJlYXNvbikpO2JyZWFrO2Nhc2UgNjppZighYSl7bi5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTppLHRhcmdldE5hbWU6cyxzdHJlYW06NyxzdHJlYW1JZDplLHN1Y2Nlc3M6ITB9KTticmVha31hLmRlc2lyZWRTaXplPD0wJiZ0LmRlc2lyZWRTaXplPjAmJmEuc2lua0NhcGFiaWxpdHkucmVzb2x2ZSgpLGEuZGVzaXJlZFNpemU9dC5kZXNpcmVkU2l6ZSxuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCl7dChhLm9uUHVsbD8uKCkpfSkpLnRoZW4oKGZ1bmN0aW9uKCl7bi5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTppLHRhcmdldE5hbWU6cyxzdHJlYW06NyxzdHJlYW1JZDplLHN1Y2Nlc3M6ITB9KX0pLChmdW5jdGlvbih0KXtuLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOmksdGFyZ2V0TmFtZTpzLHN0cmVhbTo3LHN0cmVhbUlkOmUscmVhc29uOmJlKHQpfSl9KSk7YnJlYWs7Y2FzZSA0OmlmKF8ociwiZW5xdWV1ZSBzaG91bGQgaGF2ZSBzdHJlYW0gY29udHJvbGxlciIpLHIuaXNDbG9zZWQpYnJlYWs7ci5jb250cm9sbGVyLmVucXVldWUodC5jaHVuayk7YnJlYWs7Y2FzZSAzOmlmKF8ociwiY2xvc2Ugc2hvdWxkIGhhdmUgc3RyZWFtIGNvbnRyb2xsZXIiKSxyLmlzQ2xvc2VkKWJyZWFrO3IuaXNDbG9zZWQ9ITAsci5jb250cm9sbGVyLmNsb3NlKCksdGhpcy4jSGUocixlKTticmVhaztjYXNlIDU6XyhyLCJlcnJvciBzaG91bGQgaGF2ZSBzdHJlYW0gY29udHJvbGxlciIpLHIuY29udHJvbGxlci5lcnJvcihiZSh0LnJlYXNvbikpLHRoaXMuI0hlKHIsZSk7YnJlYWs7Y2FzZSAyOnQuc3VjY2Vzcz9yLmNhbmNlbENhbGwucmVzb2x2ZSgpOnIuY2FuY2VsQ2FsbC5yZWplY3QoYmUodC5yZWFzb24pKSx0aGlzLiNIZShyLGUpO2JyZWFrO2Nhc2UgMTppZighYSlicmVhaztuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7ZShhLm9uQ2FuY2VsPy4oYmUodC5yZWFzb24pKSl9KSkudGhlbigoZnVuY3Rpb24oKXtuLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOmksdGFyZ2V0TmFtZTpzLHN0cmVhbToyLHN0cmVhbUlkOmUsc3VjY2VzczohMH0pfSksKGZ1bmN0aW9uKHQpe24ucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6aSx0YXJnZXROYW1lOnMsc3RyZWFtOjIsc3RyZWFtSWQ6ZSxyZWFzb246YmUodCl9KX0pKSxhLnNpbmtDYXBhYmlsaXR5LnJlamVjdChiZSh0LnJlYXNvbikpLGEuaXNDYW5jZWxsZWQ9ITAsZGVsZXRlIHRoaXMuc3RyZWFtU2lua3NbZV07YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgc3RyZWFtIGNhc2UiKX19YXN5bmMjSGUodCxlKXthd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoW3Quc3RhcnRDYWxsPy5wcm9taXNlLHQucHVsbENhbGw/LnByb21pc2UsdC5jYW5jZWxDYWxsPy5wcm9taXNlXSksZGVsZXRlIHRoaXMuc3RyZWFtQ29udHJvbGxlcnNbZV19ZGVzdHJveSgpe3RoaXMuY29tT2JqLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHRoaXMuX29uQ29tT2JqT25NZXNzYWdlKX19Y2xhc3MgeWV7I2plOyNVZTtjb25zdHJ1Y3Rvcih7cGFyc2VkRGF0YTp0LHJhd0RhdGE6ZX0pe3RoaXMuI2plPXQsdGhpcy4jVWU9ZX1nZXRSYXcoKXtyZXR1cm4gdGhpcy4jVWV9Z2V0KHQpe3JldHVybiB0aGlzLiNqZS5nZXQodCk/P251bGx9Z2V0QWxsKCl7cmV0dXJuIE8odGhpcy4jamUpfWhhcyh0KXtyZXR1cm4gdGhpcy4jamUuaGFzKHQpfX1jb25zdCBBZT1TeW1ib2woIklOVEVSTkFMIik7Y2xhc3Mgd2V7IyRlPSExOyNXZT0hMTsjR2U9ITE7I1ZlPSEwO2NvbnN0cnVjdG9yKHQse25hbWU6ZSxpbnRlbnQ6aSx1c2FnZTpzfSl7dGhpcy4jJGU9ISEoMiZ0KSx0aGlzLiNXZT0hISg0JnQpLHRoaXMubmFtZT1lLHRoaXMuaW50ZW50PWksdGhpcy51c2FnZT1zfWdldCB2aXNpYmxlKCl7aWYodGhpcy4jR2UpcmV0dXJuIHRoaXMuI1ZlO2lmKCF0aGlzLiNWZSlyZXR1cm4hMTtjb25zdHtwcmludDp0LHZpZXc6ZX09dGhpcy51c2FnZTtyZXR1cm4gdGhpcy4jJGU/Ik9GRiIhPT1lPy52aWV3U3RhdGU6IXRoaXMuI1dlfHwiT0ZGIiE9PXQ/LnByaW50U3RhdGV9X3NldFZpc2libGUodCxlLGk9ITEpe3QhPT1BZSYmeCgiSW50ZXJuYWwgbWV0aG9kIGBfc2V0VmlzaWJsZWAgY2FsbGVkLiIpLHRoaXMuI0dlPWksdGhpcy4jVmU9ZX19Y2xhc3MgeGV7I3FlPW51bGw7I1hlPW5ldyBNYXA7I0tlPW51bGw7I1llPW51bGw7Y29uc3RydWN0b3IodCxlPTIpe2lmKHRoaXMucmVuZGVyaW5nSW50ZW50PWUsdGhpcy5uYW1lPW51bGwsdGhpcy5jcmVhdG9yPW51bGwsbnVsbCE9PXQpe3RoaXMubmFtZT10Lm5hbWUsdGhpcy5jcmVhdG9yPXQuY3JlYXRvcix0aGlzLiNZZT10Lm9yZGVyO2Zvcihjb25zdCBpIG9mIHQuZ3JvdXBzKXRoaXMuI1hlLnNldChpLmlkLG5ldyB3ZShlLGkpKTtpZigiT0ZGIj09PXQuYmFzZVN0YXRlKWZvcihjb25zdCB0IG9mIHRoaXMuI1hlLnZhbHVlcygpKXQuX3NldFZpc2libGUoQWUsITEpO2Zvcihjb25zdCBlIG9mIHQub24pdGhpcy4jWGUuZ2V0KGUpLl9zZXRWaXNpYmxlKEFlLCEwKTtmb3IoY29uc3QgZSBvZiB0Lm9mZil0aGlzLiNYZS5nZXQoZSkuX3NldFZpc2libGUoQWUsITEpO3RoaXMuI0tlPXRoaXMuZ2V0SGFzaCgpfX0jUWUodCl7Y29uc3QgZT10Lmxlbmd0aDtpZihlPDIpcmV0dXJuITA7Y29uc3QgaT10WzBdO2ZvcihsZXQgcz0xO3M8ZTtzKyspe2NvbnN0IGU9dFtzXTtsZXQgbjtpZihBcnJheS5pc0FycmF5KGUpKW49dGhpcy4jUWUoZSk7ZWxzZXtpZighdGhpcy4jWGUuaGFzKGUpKXJldHVybiB3KGBPcHRpb25hbCBjb250ZW50IGdyb3VwIG5vdCBmb3VuZDogJHtlfWApLCEwO249dGhpcy4jWGUuZ2V0KGUpLnZpc2libGV9c3dpdGNoKGkpe2Nhc2UiQW5kIjppZighbilyZXR1cm4hMTticmVhaztjYXNlIk9yIjppZihuKXJldHVybiEwO2JyZWFrO2Nhc2UiTm90IjpyZXR1cm4hbjtkZWZhdWx0OnJldHVybiEwfX1yZXR1cm4iQW5kIj09PWl9aXNWaXNpYmxlKHQpe2lmKDA9PT10aGlzLiNYZS5zaXplKXJldHVybiEwO2lmKCF0KXJldHVybiBBKCJPcHRpb25hbCBjb250ZW50IGdyb3VwIG5vdCBkZWZpbmVkLiIpLCEwO2lmKCJPQ0ciPT09dC50eXBlKXJldHVybiB0aGlzLiNYZS5oYXModC5pZCk/dGhpcy4jWGUuZ2V0KHQuaWQpLnZpc2libGU6KHcoYE9wdGlvbmFsIGNvbnRlbnQgZ3JvdXAgbm90IGZvdW5kOiAke3QuaWR9YCksITApO2lmKCJPQ01EIj09PXQudHlwZSl7aWYodC5leHByZXNzaW9uKXJldHVybiB0aGlzLiNRZSh0LmV4cHJlc3Npb24pO2lmKCF0LnBvbGljeXx8IkFueU9uIj09PXQucG9saWN5KXtmb3IoY29uc3QgZSBvZiB0Lmlkcyl7aWYoIXRoaXMuI1hlLmhhcyhlKSlyZXR1cm4gdyhgT3B0aW9uYWwgY29udGVudCBncm91cCBub3QgZm91bmQ6ICR7ZX1gKSwhMDtpZih0aGlzLiNYZS5nZXQoZSkudmlzaWJsZSlyZXR1cm4hMH1yZXR1cm4hMX1pZigiQWxsT24iPT09dC5wb2xpY3kpe2Zvcihjb25zdCBlIG9mIHQuaWRzKXtpZighdGhpcy4jWGUuaGFzKGUpKXJldHVybiB3KGBPcHRpb25hbCBjb250ZW50IGdyb3VwIG5vdCBmb3VuZDogJHtlfWApLCEwO2lmKCF0aGlzLiNYZS5nZXQoZSkudmlzaWJsZSlyZXR1cm4hMX1yZXR1cm4hMH1pZigiQW55T2ZmIj09PXQucG9saWN5KXtmb3IoY29uc3QgZSBvZiB0Lmlkcyl7aWYoIXRoaXMuI1hlLmhhcyhlKSlyZXR1cm4gdyhgT3B0aW9uYWwgY29udGVudCBncm91cCBub3QgZm91bmQ6ICR7ZX1gKSwhMDtpZighdGhpcy4jWGUuZ2V0KGUpLnZpc2libGUpcmV0dXJuITB9cmV0dXJuITF9aWYoIkFsbE9mZiI9PT10LnBvbGljeSl7Zm9yKGNvbnN0IGUgb2YgdC5pZHMpe2lmKCF0aGlzLiNYZS5oYXMoZSkpcmV0dXJuIHcoYE9wdGlvbmFsIGNvbnRlbnQgZ3JvdXAgbm90IGZvdW5kOiAke2V9YCksITA7aWYodGhpcy4jWGUuZ2V0KGUpLnZpc2libGUpcmV0dXJuITF9cmV0dXJuITB9cmV0dXJuIHcoYFVua25vd24gb3B0aW9uYWwgY29udGVudCBwb2xpY3kgJHt0LnBvbGljeX0uYCksITB9cmV0dXJuIHcoYFVua25vd24gZ3JvdXAgdHlwZSAke3QudHlwZX0uYCksITB9c2V0VmlzaWJpbGl0eSh0LGU9ITApe2NvbnN0IGk9dGhpcy4jWGUuZ2V0KHQpO2k/KGkuX3NldFZpc2libGUoQWUsISFlLCEwKSx0aGlzLiNxZT1udWxsKTp3KGBPcHRpb25hbCBjb250ZW50IGdyb3VwIG5vdCBmb3VuZDogJHt0fWApfXNldE9DR1N0YXRlKHtzdGF0ZTp0LHByZXNlcnZlUkI6ZX0pe2xldCBpO2Zvcihjb25zdCBlIG9mIHQpe3N3aXRjaChlKXtjYXNlIk9OIjpjYXNlIk9GRiI6Y2FzZSJUb2dnbGUiOmk9ZTtjb250aW51ZX1jb25zdCB0PXRoaXMuI1hlLmdldChlKTtpZih0KXN3aXRjaChpKXtjYXNlIk9OIjp0Ll9zZXRWaXNpYmxlKEFlLCEwKTticmVhaztjYXNlIk9GRiI6dC5fc2V0VmlzaWJsZShBZSwhMSk7YnJlYWs7Y2FzZSJUb2dnbGUiOnQuX3NldFZpc2libGUoQWUsIXQudmlzaWJsZSl9fXRoaXMuI3FlPW51bGx9Z2V0IGhhc0luaXRpYWxWaXNpYmlsaXR5KCl7cmV0dXJuIG51bGw9PT10aGlzLiNLZXx8dGhpcy5nZXRIYXNoKCk9PT10aGlzLiNLZX1nZXRPcmRlcigpe3JldHVybiB0aGlzLiNYZS5zaXplP3RoaXMuI1llP3RoaXMuI1llLnNsaWNlKCk6Wy4uLnRoaXMuI1hlLmtleXMoKV06bnVsbH1nZXRHcm91cHMoKXtyZXR1cm4gdGhpcy4jWGUuc2l6ZT4wP08odGhpcy4jWGUpOm51bGx9Z2V0R3JvdXAodCl7cmV0dXJuIHRoaXMuI1hlLmdldCh0KXx8bnVsbH1nZXRIYXNoKCl7aWYobnVsbCE9PXRoaXMuI3FlKXJldHVybiB0aGlzLiNxZTtjb25zdCB0PW5ldyBMdDtmb3IoY29uc3RbZSxpXW9mIHRoaXMuI1hlKXQudXBkYXRlKGAke2V9OiR7aS52aXNpYmxlfWApO3JldHVybiB0aGlzLiNxZT10LmhleGRpZ2VzdCgpfX1jbGFzcyBfZXtjb25zdHJ1Y3Rvcih0LHtkaXNhYmxlUmFuZ2U6ZT0hMSxkaXNhYmxlU3RyZWFtOmk9ITF9KXtfKHQsJ1BERkRhdGFUcmFuc3BvcnRTdHJlYW0gLSBtaXNzaW5nIHJlcXVpcmVkICJwZGZEYXRhUmFuZ2VUcmFuc3BvcnQiIGFyZ3VtZW50LicpO2NvbnN0e2xlbmd0aDpzLGluaXRpYWxEYXRhOm4scHJvZ3Jlc3NpdmVEb25lOnIsY29udGVudERpc3Bvc2l0aW9uRmlsZW5hbWU6YX09dDtpZih0aGlzLl9xdWV1ZWRDaHVua3M9W10sdGhpcy5fcHJvZ3Jlc3NpdmVEb25lPXIsdGhpcy5fY29udGVudERpc3Bvc2l0aW9uRmlsZW5hbWU9YSxuPy5sZW5ndGg+MCl7Y29uc3QgdD1uIGluc3RhbmNlb2YgVWludDhBcnJheSYmbi5ieXRlTGVuZ3RoPT09bi5idWZmZXIuYnl0ZUxlbmd0aD9uLmJ1ZmZlcjpuZXcgVWludDhBcnJheShuKS5idWZmZXI7dGhpcy5fcXVldWVkQ2h1bmtzLnB1c2godCl9dGhpcy5fcGRmRGF0YVJhbmdlVHJhbnNwb3J0PXQsdGhpcy5faXNTdHJlYW1pbmdTdXBwb3J0ZWQ9IWksdGhpcy5faXNSYW5nZVN1cHBvcnRlZD0hZSx0aGlzLl9jb250ZW50TGVuZ3RoPXMsdGhpcy5fZnVsbFJlcXVlc3RSZWFkZXI9bnVsbCx0aGlzLl9yYW5nZVJlYWRlcnM9W10sdC5hZGRSYW5nZUxpc3RlbmVyKCgodCxlKT0+e3RoaXMuX29uUmVjZWl2ZURhdGEoe2JlZ2luOnQsY2h1bms6ZX0pfSkpLHQuYWRkUHJvZ3Jlc3NMaXN0ZW5lcigoKHQsZSk9Pnt0aGlzLl9vblByb2dyZXNzKHtsb2FkZWQ6dCx0b3RhbDplfSl9KSksdC5hZGRQcm9ncmVzc2l2ZVJlYWRMaXN0ZW5lcigodD0+e3RoaXMuX29uUmVjZWl2ZURhdGEoe2NodW5rOnR9KX0pKSx0LmFkZFByb2dyZXNzaXZlRG9uZUxpc3RlbmVyKCgoKT0+e3RoaXMuX29uUHJvZ3Jlc3NpdmVEb25lKCl9KSksdC50cmFuc3BvcnRSZWFkeSgpfV9vblJlY2VpdmVEYXRhKHtiZWdpbjp0LGNodW5rOmV9KXtjb25zdCBpPWUgaW5zdGFuY2VvZiBVaW50OEFycmF5JiZlLmJ5dGVMZW5ndGg9PT1lLmJ1ZmZlci5ieXRlTGVuZ3RoP2UuYnVmZmVyOm5ldyBVaW50OEFycmF5KGUpLmJ1ZmZlcjt2b2lkIDA9PT10P3RoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyP3RoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyLl9lbnF1ZXVlKGkpOnRoaXMuX3F1ZXVlZENodW5rcy5wdXNoKGkpOl8odGhpcy5fcmFuZ2VSZWFkZXJzLnNvbWUoKGZ1bmN0aW9uKGUpe3JldHVybiBlLl9iZWdpbj09PXQmJihlLl9lbnF1ZXVlKGkpLCEwKX0pKSwiX29uUmVjZWl2ZURhdGEgLSBubyBgUERGRGF0YVRyYW5zcG9ydFN0cmVhbVJhbmdlUmVhZGVyYCBpbnN0YW5jZSBmb3VuZC4iKX1nZXQgX3Byb2dyZXNzaXZlRGF0YUxlbmd0aCgpe3JldHVybiB0aGlzLl9mdWxsUmVxdWVzdFJlYWRlcj8uX2xvYWRlZD8/MH1fb25Qcm9ncmVzcyh0KXt2b2lkIDA9PT10LnRvdGFsP3RoaXMuX3JhbmdlUmVhZGVyc1swXT8ub25Qcm9ncmVzcz8uKHtsb2FkZWQ6dC5sb2FkZWR9KTp0aGlzLl9mdWxsUmVxdWVzdFJlYWRlcj8ub25Qcm9ncmVzcz8uKHtsb2FkZWQ6dC5sb2FkZWQsdG90YWw6dC50b3RhbH0pfV9vblByb2dyZXNzaXZlRG9uZSgpe3RoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyPy5wcm9ncmVzc2l2ZURvbmUoKSx0aGlzLl9wcm9ncmVzc2l2ZURvbmU9ITB9X3JlbW92ZVJhbmdlUmVhZGVyKHQpe2NvbnN0IGU9dGhpcy5fcmFuZ2VSZWFkZXJzLmluZGV4T2YodCk7ZT49MCYmdGhpcy5fcmFuZ2VSZWFkZXJzLnNwbGljZShlLDEpfWdldEZ1bGxSZWFkZXIoKXtfKCF0aGlzLl9mdWxsUmVxdWVzdFJlYWRlciwiUERGRGF0YVRyYW5zcG9ydFN0cmVhbS5nZXRGdWxsUmVhZGVyIGNhbiBvbmx5IGJlIGNhbGxlZCBvbmNlLiIpO2NvbnN0IHQ9dGhpcy5fcXVldWVkQ2h1bmtzO3JldHVybiB0aGlzLl9xdWV1ZWRDaHVua3M9bnVsbCxuZXcgRWUodGhpcyx0LHRoaXMuX3Byb2dyZXNzaXZlRG9uZSx0aGlzLl9jb250ZW50RGlzcG9zaXRpb25GaWxlbmFtZSl9Z2V0UmFuZ2VSZWFkZXIodCxlKXtpZihlPD10aGlzLl9wcm9ncmVzc2l2ZURhdGFMZW5ndGgpcmV0dXJuIG51bGw7Y29uc3QgaT1uZXcgQ2UodGhpcyx0LGUpO3JldHVybiB0aGlzLl9wZGZEYXRhUmFuZ2VUcmFuc3BvcnQucmVxdWVzdERhdGFSYW5nZSh0LGUpLHRoaXMuX3JhbmdlUmVhZGVycy5wdXNoKGkpLGl9Y2FuY2VsQWxsUmVxdWVzdHModCl7dGhpcy5fZnVsbFJlcXVlc3RSZWFkZXI/LmNhbmNlbCh0KTtmb3IoY29uc3QgZSBvZiB0aGlzLl9yYW5nZVJlYWRlcnMuc2xpY2UoMCkpZS5jYW5jZWwodCk7dGhpcy5fcGRmRGF0YVJhbmdlVHJhbnNwb3J0LmFib3J0KCl9fWNsYXNzIEVle2NvbnN0cnVjdG9yKHQsZSxpPSExLHM9bnVsbCl7dGhpcy5fc3RyZWFtPXQsdGhpcy5fZG9uZT1pfHwhMSx0aGlzLl9maWxlbmFtZT1udChzKT9zOm51bGwsdGhpcy5fcXVldWVkQ2h1bmtzPWV8fFtdLHRoaXMuX2xvYWRlZD0wO2Zvcihjb25zdCB0IG9mIHRoaXMuX3F1ZXVlZENodW5rcyl0aGlzLl9sb2FkZWQrPXQuYnl0ZUxlbmd0aDt0aGlzLl9yZXF1ZXN0cz1bXSx0aGlzLl9oZWFkZXJzUmVhZHk9UHJvbWlzZS5yZXNvbHZlKCksdC5fZnVsbFJlcXVlc3RSZWFkZXI9dGhpcyx0aGlzLm9uUHJvZ3Jlc3M9bnVsbH1fZW5xdWV1ZSh0KXt0aGlzLl9kb25lfHwodGhpcy5fcmVxdWVzdHMubGVuZ3RoPjA/dGhpcy5fcmVxdWVzdHMuc2hpZnQoKS5yZXNvbHZlKHt2YWx1ZTp0LGRvbmU6ITF9KTp0aGlzLl9xdWV1ZWRDaHVua3MucHVzaCh0KSx0aGlzLl9sb2FkZWQrPXQuYnl0ZUxlbmd0aCl9Z2V0IGhlYWRlcnNSZWFkeSgpe3JldHVybiB0aGlzLl9oZWFkZXJzUmVhZHl9Z2V0IGZpbGVuYW1lKCl7cmV0dXJuIHRoaXMuX2ZpbGVuYW1lfWdldCBpc1JhbmdlU3VwcG9ydGVkKCl7cmV0dXJuIHRoaXMuX3N0cmVhbS5faXNSYW5nZVN1cHBvcnRlZH1nZXQgaXNTdHJlYW1pbmdTdXBwb3J0ZWQoKXtyZXR1cm4gdGhpcy5fc3RyZWFtLl9pc1N0cmVhbWluZ1N1cHBvcnRlZH1nZXQgY29udGVudExlbmd0aCgpe3JldHVybiB0aGlzLl9zdHJlYW0uX2NvbnRlbnRMZW5ndGh9YXN5bmMgcmVhZCgpe2lmKHRoaXMuX3F1ZXVlZENodW5rcy5sZW5ndGg+MClyZXR1cm57dmFsdWU6dGhpcy5fcXVldWVkQ2h1bmtzLnNoaWZ0KCksZG9uZTohMX07aWYodGhpcy5fZG9uZSlyZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9O2NvbnN0IHQ9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7cmV0dXJuIHRoaXMuX3JlcXVlc3RzLnB1c2godCksdC5wcm9taXNlfWNhbmNlbCh0KXt0aGlzLl9kb25lPSEwO2Zvcihjb25zdCB0IG9mIHRoaXMuX3JlcXVlc3RzKXQucmVzb2x2ZSh7dmFsdWU6dm9pZCAwLGRvbmU6ITB9KTt0aGlzLl9yZXF1ZXN0cy5sZW5ndGg9MH1wcm9ncmVzc2l2ZURvbmUoKXt0aGlzLl9kb25lfHwodGhpcy5fZG9uZT0hMCl9fWNsYXNzIENle2NvbnN0cnVjdG9yKHQsZSxpKXt0aGlzLl9zdHJlYW09dCx0aGlzLl9iZWdpbj1lLHRoaXMuX2VuZD1pLHRoaXMuX3F1ZXVlZENodW5rPW51bGwsdGhpcy5fcmVxdWVzdHM9W10sdGhpcy5fZG9uZT0hMSx0aGlzLm9uUHJvZ3Jlc3M9bnVsbH1fZW5xdWV1ZSh0KXtpZighdGhpcy5fZG9uZSl7aWYoMD09PXRoaXMuX3JlcXVlc3RzLmxlbmd0aCl0aGlzLl9xdWV1ZWRDaHVuaz10O2Vsc2V7dGhpcy5fcmVxdWVzdHMuc2hpZnQoKS5yZXNvbHZlKHt2YWx1ZTp0LGRvbmU6ITF9KTtmb3IoY29uc3QgdCBvZiB0aGlzLl9yZXF1ZXN0cyl0LnJlc29sdmUoe3ZhbHVlOnZvaWQgMCxkb25lOiEwfSk7dGhpcy5fcmVxdWVzdHMubGVuZ3RoPTB9dGhpcy5fZG9uZT0hMCx0aGlzLl9zdHJlYW0uX3JlbW92ZVJhbmdlUmVhZGVyKHRoaXMpfX1nZXQgaXNTdHJlYW1pbmdTdXBwb3J0ZWQoKXtyZXR1cm4hMX1hc3luYyByZWFkKCl7aWYodGhpcy5fcXVldWVkQ2h1bmspe2NvbnN0IHQ9dGhpcy5fcXVldWVkQ2h1bms7cmV0dXJuIHRoaXMuX3F1ZXVlZENodW5rPW51bGwse3ZhbHVlOnQsZG9uZTohMX19aWYodGhpcy5fZG9uZSlyZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9O2NvbnN0IHQ9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7cmV0dXJuIHRoaXMuX3JlcXVlc3RzLnB1c2godCksdC5wcm9taXNlfWNhbmNlbCh0KXt0aGlzLl9kb25lPSEwO2Zvcihjb25zdCB0IG9mIHRoaXMuX3JlcXVlc3RzKXQucmVzb2x2ZSh7dmFsdWU6dm9pZCAwLGRvbmU6ITB9KTt0aGlzLl9yZXF1ZXN0cy5sZW5ndGg9MCx0aGlzLl9zdHJlYW0uX3JlbW92ZVJhbmdlUmVhZGVyKHRoaXMpfX1mdW5jdGlvbiBTZSh0LGUpe2NvbnN0IGk9bmV3IEhlYWRlcnM7aWYoIXR8fCFlfHwib2JqZWN0IiE9dHlwZW9mIGUpcmV0dXJuIGk7Zm9yKGNvbnN0IHQgaW4gZSl7Y29uc3Qgcz1lW3RdO3ZvaWQgMCE9PXMmJmkuYXBwZW5kKHQscyl9cmV0dXJuIGl9ZnVuY3Rpb24gVGUoe3Jlc3BvbnNlSGVhZGVyczp0LGlzSHR0cDplLHJhbmdlQ2h1bmtTaXplOmksZGlzYWJsZVJhbmdlOnN9KXtjb25zdCBuPXthbGxvd1JhbmdlUmVxdWVzdHM6ITEsc3VnZ2VzdGVkTGVuZ3RoOnZvaWQgMH0scj1wYXJzZUludCh0LmdldCgiQ29udGVudC1MZW5ndGgiKSwxMCk7cmV0dXJuIE51bWJlci5pc0ludGVnZXIocik/KG4uc3VnZ2VzdGVkTGVuZ3RoPXIscjw9MippfHxzfHwhZXx8ImJ5dGVzIiE9PXQuZ2V0KCJBY2NlcHQtUmFuZ2VzIil8fCJpZGVudGl0eSIhPT0odC5nZXQoIkNvbnRlbnQtRW5jb2RpbmciKXx8ImlkZW50aXR5Iil8fChuLmFsbG93UmFuZ2VSZXF1ZXN0cz0hMCksbik6bn1mdW5jdGlvbiBNZSh0KXtjb25zdCBlPXQuZ2V0KCJDb250ZW50LURpc3Bvc2l0aW9uIik7aWYoZSl7bGV0IHQ9ZnVuY3Rpb24odCl7bGV0IGU9ITAsaT1zKCJmaWxlbmFtZVxcKiIsImkiKS5leGVjKHQpO2lmKGkpe2k9aVsxXTtsZXQgdD1hKGkpO3JldHVybiB0PXVuZXNjYXBlKHQpLHQ9byh0KSx0PWgodCkscih0KX1pZihpPWZ1bmN0aW9uKHQpe2NvbnN0IGU9W107bGV0IGk7Y29uc3Qgbj1zKCJmaWxlbmFtZVxcKigoPyEwXFxkKVxcZCspKFxcKj8pIiwiaWciKTtmb3IoO251bGwhPT0oaT1uLmV4ZWModCkpOyl7bGV0Wyx0LHMsbl09aTtpZih0PXBhcnNlSW50KHQsMTApLHQgaW4gZSl7aWYoMD09PXQpYnJlYWt9ZWxzZSBlW3RdPVtzLG5dfWNvbnN0IHI9W107Zm9yKGxldCB0PTA7dDxlLmxlbmd0aCYmdCBpbiBlOysrdCl7bGV0W2ksc109ZVt0XTtzPWEocyksaSYmKHM9dW5lc2NhcGUocyksMD09PXQmJihzPW8ocykpKSxyLnB1c2gocyl9cmV0dXJuIHIuam9pbigiIil9KHQpLGkpcmV0dXJuIHIoaChpKSk7aWYoaT1zKCJmaWxlbmFtZSIsImkiKS5leGVjKHQpLGkpe2k9aVsxXTtsZXQgdD1hKGkpO3JldHVybiB0PWgodCkscih0KX1mdW5jdGlvbiBzKHQsZSl7cmV0dXJuIG5ldyBSZWdFeHAoIig/Ol58OylcXHMqIit0KydcXHMqPVxccyooW14iO1xcc11bXjtcXHNdKnwiKD86W14iXFxcXF18XFxcXCI/KSsiPyknLGUpfWZ1bmN0aW9uIG4odCxpKXtpZih0KXtpZighL15bXHgwMC1ceEZGXSskLy50ZXN0KGkpKXJldHVybiBpO3RyeXtjb25zdCBzPW5ldyBUZXh0RGVjb2Rlcih0LHtmYXRhbDohMH0pLG49RihpKTtpPXMuZGVjb2RlKG4pLGU9ITF9Y2F0Y2h7fX1yZXR1cm4gaX1mdW5jdGlvbiByKHQpe3JldHVybiBlJiYvW1x4ODAtXHhmZl0vLnRlc3QodCkmJih0PW4oInV0Zi04Iix0KSxlJiYodD1uKCJpc28tODg1OS0xIix0KSkpLHR9ZnVuY3Rpb24gYSh0KXtpZih0LnN0YXJ0c1dpdGgoJyInKSl7Y29uc3QgZT10LnNsaWNlKDEpLnNwbGl0KCdcXCInKTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoOysrdCl7Y29uc3QgaT1lW3RdLmluZGV4T2YoJyInKTstMSE9PWkmJihlW3RdPWVbdF0uc2xpY2UoMCxpKSxlLmxlbmd0aD10KzEpLGVbdF09ZVt0XS5yZXBsYWNlQWxsKC9cXCguKS9nLCIkMSIpfXQ9ZS5qb2luKCciJyl9cmV0dXJuIHR9ZnVuY3Rpb24gbyh0KXtjb25zdCBlPXQuaW5kZXhPZigiJyIpO3JldHVybi0xPT09ZT90Om4odC5zbGljZSgwLGUpLHQuc2xpY2UoZSsxKS5yZXBsYWNlKC9eW14nXSonLywiIikpfWZ1bmN0aW9uIGgodCl7cmV0dXJuIXQuc3RhcnRzV2l0aCgiPT8iKXx8L1tceDAwLVx4MTlceDgwLVx4ZmZdLy50ZXN0KHQpP3Q6dC5yZXBsYWNlQWxsKC89XD8oW1x3LV0qKVw/KFtRcUJiXSlcPygoPzpbXj9dfFw/KD8hPSkpKilcPz0vZywoZnVuY3Rpb24odCxlLGkscyl7aWYoInEiPT09aXx8IlEiPT09aSlyZXR1cm4gbihlLHM9KHM9cy5yZXBsYWNlQWxsKCJfIiwiICIpKS5yZXBsYWNlQWxsKC89KFswLTlhLWZBLUZdezJ9KS9nLChmdW5jdGlvbih0LGUpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGUsMTYpKX0pKSk7dHJ5e3M9YXRvYihzKX1jYXRjaHt9cmV0dXJuIG4oZSxzKX0pKX1yZXR1cm4iIn0oZSk7aWYodC5pbmNsdWRlcygiJSIpKXRyeXt0PWRlY29kZVVSSUNvbXBvbmVudCh0KX1jYXRjaHt9aWYobnQodCkpcmV0dXJuIHR9cmV0dXJuIG51bGx9ZnVuY3Rpb24ga2UodCxlKXtyZXR1cm4gNDA0PT09dHx8MD09PXQmJmUuc3RhcnRzV2l0aCgiZmlsZToiKT9uZXcgSSgnTWlzc2luZyBQREYgIicrZSsnIi4nKTpuZXcgUihgVW5leHBlY3RlZCBzZXJ2ZXIgcmVzcG9uc2UgKCR7dH0pIHdoaWxlIHJldHJpZXZpbmcgUERGICIke2V9Ii5gLHQpfWZ1bmN0aW9uIEllKHQpe3JldHVybiAyMDA9PT10fHwyMDY9PT10fWZ1bmN0aW9uIFJlKHQsZSxpKXtyZXR1cm57bWV0aG9kOiJHRVQiLGhlYWRlcnM6dCxzaWduYWw6aS5zaWduYWwsbW9kZToiY29ycyIsY3JlZGVudGlhbHM6ZT8iaW5jbHVkZSI6InNhbWUtb3JpZ2luIixyZWRpcmVjdDoiZm9sbG93In19ZnVuY3Rpb24gUGUodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBVaW50OEFycmF5P3QuYnVmZmVyOnQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj90Oih3KGBnZXRBcnJheUJ1ZmZlciAtIHVuZXhwZWN0ZWQgZGF0YSBmb3JtYXQ6ICR7dH1gKSxuZXcgVWludDhBcnJheSh0KS5idWZmZXIpfWNsYXNzIERle2NvbnN0cnVjdG9yKHQpe3RoaXMuc291cmNlPXQsdGhpcy5pc0h0dHA9L15odHRwcz86L2kudGVzdCh0LnVybCksdGhpcy5oZWFkZXJzPVNlKHRoaXMuaXNIdHRwLHQuaHR0cEhlYWRlcnMpLHRoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyPW51bGwsdGhpcy5fcmFuZ2VSZXF1ZXN0UmVhZGVycz1bXX1nZXQgX3Byb2dyZXNzaXZlRGF0YUxlbmd0aCgpe3JldHVybiB0aGlzLl9mdWxsUmVxdWVzdFJlYWRlcj8uX2xvYWRlZD8/MH1nZXRGdWxsUmVhZGVyKCl7cmV0dXJuIF8oIXRoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyLCJQREZGZXRjaFN0cmVhbS5nZXRGdWxsUmVhZGVyIGNhbiBvbmx5IGJlIGNhbGxlZCBvbmNlLiIpLHRoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyPW5ldyBMZSh0aGlzKSx0aGlzLl9mdWxsUmVxdWVzdFJlYWRlcn1nZXRSYW5nZVJlYWRlcih0LGUpe2lmKGU8PXRoaXMuX3Byb2dyZXNzaXZlRGF0YUxlbmd0aClyZXR1cm4gbnVsbDtjb25zdCBpPW5ldyBGZSh0aGlzLHQsZSk7cmV0dXJuIHRoaXMuX3JhbmdlUmVxdWVzdFJlYWRlcnMucHVzaChpKSxpfWNhbmNlbEFsbFJlcXVlc3RzKHQpe3RoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyPy5jYW5jZWwodCk7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fcmFuZ2VSZXF1ZXN0UmVhZGVycy5zbGljZSgwKSllLmNhbmNlbCh0KX19Y2xhc3MgTGV7Y29uc3RydWN0b3IodCl7dGhpcy5fc3RyZWFtPXQsdGhpcy5fcmVhZGVyPW51bGwsdGhpcy5fbG9hZGVkPTAsdGhpcy5fZmlsZW5hbWU9bnVsbDtjb25zdCBlPXQuc291cmNlO3RoaXMuX3dpdGhDcmVkZW50aWFscz1lLndpdGhDcmVkZW50aWFsc3x8ITEsdGhpcy5fY29udGVudExlbmd0aD1lLmxlbmd0aCx0aGlzLl9oZWFkZXJzQ2FwYWJpbGl0eT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKSx0aGlzLl9kaXNhYmxlUmFuZ2U9ZS5kaXNhYmxlUmFuZ2V8fCExLHRoaXMuX3JhbmdlQ2h1bmtTaXplPWUucmFuZ2VDaHVua1NpemUsdGhpcy5fcmFuZ2VDaHVua1NpemV8fHRoaXMuX2Rpc2FibGVSYW5nZXx8KHRoaXMuX2Rpc2FibGVSYW5nZT0hMCksdGhpcy5fYWJvcnRDb250cm9sbGVyPW5ldyBBYm9ydENvbnRyb2xsZXIsdGhpcy5faXNTdHJlYW1pbmdTdXBwb3J0ZWQ9IWUuZGlzYWJsZVN0cmVhbSx0aGlzLl9pc1JhbmdlU3VwcG9ydGVkPSFlLmRpc2FibGVSYW5nZTtjb25zdCBpPW5ldyBIZWFkZXJzKHQuaGVhZGVycykscz1lLnVybDtmZXRjaChzLFJlKGksdGhpcy5fd2l0aENyZWRlbnRpYWxzLHRoaXMuX2Fib3J0Q29udHJvbGxlcikpLnRoZW4oKGU9PntpZighSWUoZS5zdGF0dXMpKXRocm93IGtlKGUuc3RhdHVzLHMpO3RoaXMuX3JlYWRlcj1lLmJvZHkuZ2V0UmVhZGVyKCksdGhpcy5faGVhZGVyc0NhcGFiaWxpdHkucmVzb2x2ZSgpO2NvbnN0IGk9ZS5oZWFkZXJzLHthbGxvd1JhbmdlUmVxdWVzdHM6bixzdWdnZXN0ZWRMZW5ndGg6cn09VGUoe3Jlc3BvbnNlSGVhZGVyczppLGlzSHR0cDp0LmlzSHR0cCxyYW5nZUNodW5rU2l6ZTp0aGlzLl9yYW5nZUNodW5rU2l6ZSxkaXNhYmxlUmFuZ2U6dGhpcy5fZGlzYWJsZVJhbmdlfSk7dGhpcy5faXNSYW5nZVN1cHBvcnRlZD1uLHRoaXMuX2NvbnRlbnRMZW5ndGg9cnx8dGhpcy5fY29udGVudExlbmd0aCx0aGlzLl9maWxlbmFtZT1NZShpKSwhdGhpcy5faXNTdHJlYW1pbmdTdXBwb3J0ZWQmJnRoaXMuX2lzUmFuZ2VTdXBwb3J0ZWQmJnRoaXMuY2FuY2VsKG5ldyBEKCJTdHJlYW1pbmcgaXMgZGlzYWJsZWQuIikpfSkpLmNhdGNoKHRoaXMuX2hlYWRlcnNDYXBhYmlsaXR5LnJlamVjdCksdGhpcy5vblByb2dyZXNzPW51bGx9Z2V0IGhlYWRlcnNSZWFkeSgpe3JldHVybiB0aGlzLl9oZWFkZXJzQ2FwYWJpbGl0eS5wcm9taXNlfWdldCBmaWxlbmFtZSgpe3JldHVybiB0aGlzLl9maWxlbmFtZX1nZXQgY29udGVudExlbmd0aCgpe3JldHVybiB0aGlzLl9jb250ZW50TGVuZ3RofWdldCBpc1JhbmdlU3VwcG9ydGVkKCl7cmV0dXJuIHRoaXMuX2lzUmFuZ2VTdXBwb3J0ZWR9Z2V0IGlzU3RyZWFtaW5nU3VwcG9ydGVkKCl7cmV0dXJuIHRoaXMuX2lzU3RyZWFtaW5nU3VwcG9ydGVkfWFzeW5jIHJlYWQoKXthd2FpdCB0aGlzLl9oZWFkZXJzQ2FwYWJpbGl0eS5wcm9taXNlO2NvbnN0e3ZhbHVlOnQsZG9uZTplfT1hd2FpdCB0aGlzLl9yZWFkZXIucmVhZCgpO3JldHVybiBlP3t2YWx1ZTp0LGRvbmU6ZX06KHRoaXMuX2xvYWRlZCs9dC5ieXRlTGVuZ3RoLHRoaXMub25Qcm9ncmVzcz8uKHtsb2FkZWQ6dGhpcy5fbG9hZGVkLHRvdGFsOnRoaXMuX2NvbnRlbnRMZW5ndGh9KSx7dmFsdWU6UGUodCksZG9uZTohMX0pfWNhbmNlbCh0KXt0aGlzLl9yZWFkZXI/LmNhbmNlbCh0KSx0aGlzLl9hYm9ydENvbnRyb2xsZXIuYWJvcnQoKX19Y2xhc3MgRmV7Y29uc3RydWN0b3IodCxlLGkpe3RoaXMuX3N0cmVhbT10LHRoaXMuX3JlYWRlcj1udWxsLHRoaXMuX2xvYWRlZD0wO2NvbnN0IHM9dC5zb3VyY2U7dGhpcy5fd2l0aENyZWRlbnRpYWxzPXMud2l0aENyZWRlbnRpYWxzfHwhMSx0aGlzLl9yZWFkQ2FwYWJpbGl0eT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKSx0aGlzLl9pc1N0cmVhbWluZ1N1cHBvcnRlZD0hcy5kaXNhYmxlU3RyZWFtLHRoaXMuX2Fib3J0Q29udHJvbGxlcj1uZXcgQWJvcnRDb250cm9sbGVyO2NvbnN0IG49bmV3IEhlYWRlcnModC5oZWFkZXJzKTtuLmFwcGVuZCgiUmFuZ2UiLGBieXRlcz0ke2V9LSR7aS0xfWApO2NvbnN0IHI9cy51cmw7ZmV0Y2gocixSZShuLHRoaXMuX3dpdGhDcmVkZW50aWFscyx0aGlzLl9hYm9ydENvbnRyb2xsZXIpKS50aGVuKCh0PT57aWYoIUllKHQuc3RhdHVzKSl0aHJvdyBrZSh0LnN0YXR1cyxyKTt0aGlzLl9yZWFkQ2FwYWJpbGl0eS5yZXNvbHZlKCksdGhpcy5fcmVhZGVyPXQuYm9keS5nZXRSZWFkZXIoKX0pKS5jYXRjaCh0aGlzLl9yZWFkQ2FwYWJpbGl0eS5yZWplY3QpLHRoaXMub25Qcm9ncmVzcz1udWxsfWdldCBpc1N0cmVhbWluZ1N1cHBvcnRlZCgpe3JldHVybiB0aGlzLl9pc1N0cmVhbWluZ1N1cHBvcnRlZH1hc3luYyByZWFkKCl7YXdhaXQgdGhpcy5fcmVhZENhcGFiaWxpdHkucHJvbWlzZTtjb25zdHt2YWx1ZTp0LGRvbmU6ZX09YXdhaXQgdGhpcy5fcmVhZGVyLnJlYWQoKTtyZXR1cm4gZT97dmFsdWU6dCxkb25lOmV9Oih0aGlzLl9sb2FkZWQrPXQuYnl0ZUxlbmd0aCx0aGlzLm9uUHJvZ3Jlc3M/Lih7bG9hZGVkOnRoaXMuX2xvYWRlZH0pLHt2YWx1ZTpQZSh0KSxkb25lOiExfSl9Y2FuY2VsKHQpe3RoaXMuX3JlYWRlcj8uY2FuY2VsKHQpLHRoaXMuX2Fib3J0Q29udHJvbGxlci5hYm9ydCgpfX1jbGFzcyBPZXtjb25zdHJ1Y3Rvcih7dXJsOnQsaHR0cEhlYWRlcnM6ZSx3aXRoQ3JlZGVudGlhbHM6aX0pe3RoaXMudXJsPXQsdGhpcy5pc0h0dHA9L15odHRwcz86L2kudGVzdCh0KSx0aGlzLmhlYWRlcnM9U2UodGhpcy5pc0h0dHAsZSksdGhpcy53aXRoQ3JlZGVudGlhbHM9aXx8ITEsdGhpcy5jdXJyWGhySWQ9MCx0aGlzLnBlbmRpbmdSZXF1ZXN0cz1PYmplY3QuY3JlYXRlKG51bGwpfXJlcXVlc3RSYW5nZSh0LGUsaSl7Y29uc3Qgcz17YmVnaW46dCxlbmQ6ZX07Zm9yKGNvbnN0IHQgaW4gaSlzW3RdPWlbdF07cmV0dXJuIHRoaXMucmVxdWVzdChzKX1yZXF1ZXN0RnVsbCh0KXtyZXR1cm4gdGhpcy5yZXF1ZXN0KHQpfXJlcXVlc3QodCl7Y29uc3QgZT1uZXcgWE1MSHR0cFJlcXVlc3QsaT10aGlzLmN1cnJYaHJJZCsrLHM9dGhpcy5wZW5kaW5nUmVxdWVzdHNbaV09e3hocjplfTtlLm9wZW4oIkdFVCIsdGhpcy51cmwpLGUud2l0aENyZWRlbnRpYWxzPXRoaXMud2l0aENyZWRlbnRpYWxzO2Zvcihjb25zdFt0LGldb2YgdGhpcy5oZWFkZXJzKWUuc2V0UmVxdWVzdEhlYWRlcih0LGkpO3JldHVybiB0aGlzLmlzSHR0cCYmImJlZ2luImluIHQmJiJlbmQiaW4gdD8oZS5zZXRSZXF1ZXN0SGVhZGVyKCJSYW5nZSIsYGJ5dGVzPSR7dC5iZWdpbn0tJHt0LmVuZC0xfWApLHMuZXhwZWN0ZWRTdGF0dXM9MjA2KTpzLmV4cGVjdGVkU3RhdHVzPTIwMCxlLnJlc3BvbnNlVHlwZT0iYXJyYXlidWZmZXIiLHQub25FcnJvciYmKGUub25lcnJvcj1mdW5jdGlvbihpKXt0Lm9uRXJyb3IoZS5zdGF0dXMpfSksZS5vbnJlYWR5c3RhdGVjaGFuZ2U9dGhpcy5vblN0YXRlQ2hhbmdlLmJpbmQodGhpcyxpKSxlLm9ucHJvZ3Jlc3M9dGhpcy5vblByb2dyZXNzLmJpbmQodGhpcyxpKSxzLm9uSGVhZGVyc1JlY2VpdmVkPXQub25IZWFkZXJzUmVjZWl2ZWQscy5vbkRvbmU9dC5vbkRvbmUscy5vbkVycm9yPXQub25FcnJvcixzLm9uUHJvZ3Jlc3M9dC5vblByb2dyZXNzLGUuc2VuZChudWxsKSxpfW9uUHJvZ3Jlc3ModCxlKXtjb25zdCBpPXRoaXMucGVuZGluZ1JlcXVlc3RzW3RdO2kmJmkub25Qcm9ncmVzcz8uKGUpfW9uU3RhdGVDaGFuZ2UodCxlKXtjb25zdCBpPXRoaXMucGVuZGluZ1JlcXVlc3RzW3RdO2lmKCFpKXJldHVybjtjb25zdCBzPWkueGhyO2lmKHMucmVhZHlTdGF0ZT49MiYmaS5vbkhlYWRlcnNSZWNlaXZlZCYmKGkub25IZWFkZXJzUmVjZWl2ZWQoKSxkZWxldGUgaS5vbkhlYWRlcnNSZWNlaXZlZCksNCE9PXMucmVhZHlTdGF0ZSlyZXR1cm47aWYoISh0IGluIHRoaXMucGVuZGluZ1JlcXVlc3RzKSlyZXR1cm47aWYoZGVsZXRlIHRoaXMucGVuZGluZ1JlcXVlc3RzW3RdLDA9PT1zLnN0YXR1cyYmdGhpcy5pc0h0dHApcmV0dXJuIHZvaWQgaS5vbkVycm9yPy4ocy5zdGF0dXMpO2NvbnN0IG49cy5zdGF0dXN8fDIwMDtpZigoMjAwIT09bnx8MjA2IT09aS5leHBlY3RlZFN0YXR1cykmJm4hPT1pLmV4cGVjdGVkU3RhdHVzKXJldHVybiB2b2lkIGkub25FcnJvcj8uKHMuc3RhdHVzKTtjb25zdCByPWZ1bmN0aW9uKHQpe2NvbnN0IGU9dC5yZXNwb25zZTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGU/ZTpGKGUpLmJ1ZmZlcn0ocyk7aWYoMjA2PT09bil7Y29uc3QgdD1zLmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LVJhbmdlIiksZT0vYnl0ZXMgKFxkKyktKFxkKylcLyhcZCspLy5leGVjKHQpO2kub25Eb25lKHtiZWdpbjpwYXJzZUludChlWzFdLDEwKSxjaHVuazpyfSl9ZWxzZSByP2kub25Eb25lKHtiZWdpbjowLGNodW5rOnJ9KTppLm9uRXJyb3I/LihzLnN0YXR1cyl9Z2V0UmVxdWVzdFhocih0KXtyZXR1cm4gdGhpcy5wZW5kaW5nUmVxdWVzdHNbdF0ueGhyfWlzUGVuZGluZ1JlcXVlc3QodCl7cmV0dXJuIHQgaW4gdGhpcy5wZW5kaW5nUmVxdWVzdHN9YWJvcnRSZXF1ZXN0KHQpe2NvbnN0IGU9dGhpcy5wZW5kaW5nUmVxdWVzdHNbdF0ueGhyO2RlbGV0ZSB0aGlzLnBlbmRpbmdSZXF1ZXN0c1t0XSxlLmFib3J0KCl9fWNsYXNzIE5le2NvbnN0cnVjdG9yKHQpe3RoaXMuX3NvdXJjZT10LHRoaXMuX21hbmFnZXI9bmV3IE9lKHQpLHRoaXMuX3JhbmdlQ2h1bmtTaXplPXQucmFuZ2VDaHVua1NpemUsdGhpcy5fZnVsbFJlcXVlc3RSZWFkZXI9bnVsbCx0aGlzLl9yYW5nZVJlcXVlc3RSZWFkZXJzPVtdfV9vblJhbmdlUmVxdWVzdFJlYWRlckNsb3NlZCh0KXtjb25zdCBlPXRoaXMuX3JhbmdlUmVxdWVzdFJlYWRlcnMuaW5kZXhPZih0KTtlPj0wJiZ0aGlzLl9yYW5nZVJlcXVlc3RSZWFkZXJzLnNwbGljZShlLDEpfWdldEZ1bGxSZWFkZXIoKXtyZXR1cm4gXyghdGhpcy5fZnVsbFJlcXVlc3RSZWFkZXIsIlBERk5ldHdvcmtTdHJlYW0uZ2V0RnVsbFJlYWRlciBjYW4gb25seSBiZSBjYWxsZWQgb25jZS4iKSx0aGlzLl9mdWxsUmVxdWVzdFJlYWRlcj1uZXcgQmUodGhpcy5fbWFuYWdlcix0aGlzLl9zb3VyY2UpLHRoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyfWdldFJhbmdlUmVhZGVyKHQsZSl7Y29uc3QgaT1uZXcgemUodGhpcy5fbWFuYWdlcix0LGUpO3JldHVybiBpLm9uQ2xvc2VkPXRoaXMuX29uUmFuZ2VSZXF1ZXN0UmVhZGVyQ2xvc2VkLmJpbmQodGhpcyksdGhpcy5fcmFuZ2VSZXF1ZXN0UmVhZGVycy5wdXNoKGkpLGl9Y2FuY2VsQWxsUmVxdWVzdHModCl7dGhpcy5fZnVsbFJlcXVlc3RSZWFkZXI/LmNhbmNlbCh0KTtmb3IoY29uc3QgZSBvZiB0aGlzLl9yYW5nZVJlcXVlc3RSZWFkZXJzLnNsaWNlKDApKWUuY2FuY2VsKHQpfX1jbGFzcyBCZXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuX21hbmFnZXI9dDtjb25zdCBpPXtvbkhlYWRlcnNSZWNlaXZlZDp0aGlzLl9vbkhlYWRlcnNSZWNlaXZlZC5iaW5kKHRoaXMpLG9uRG9uZTp0aGlzLl9vbkRvbmUuYmluZCh0aGlzKSxvbkVycm9yOnRoaXMuX29uRXJyb3IuYmluZCh0aGlzKSxvblByb2dyZXNzOnRoaXMuX29uUHJvZ3Jlc3MuYmluZCh0aGlzKX07dGhpcy5fdXJsPWUudXJsLHRoaXMuX2Z1bGxSZXF1ZXN0SWQ9dC5yZXF1ZXN0RnVsbChpKSx0aGlzLl9oZWFkZXJzQ2FwYWJpbGl0eT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKSx0aGlzLl9kaXNhYmxlUmFuZ2U9ZS5kaXNhYmxlUmFuZ2V8fCExLHRoaXMuX2NvbnRlbnRMZW5ndGg9ZS5sZW5ndGgsdGhpcy5fcmFuZ2VDaHVua1NpemU9ZS5yYW5nZUNodW5rU2l6ZSx0aGlzLl9yYW5nZUNodW5rU2l6ZXx8dGhpcy5fZGlzYWJsZVJhbmdlfHwodGhpcy5fZGlzYWJsZVJhbmdlPSEwKSx0aGlzLl9pc1N0cmVhbWluZ1N1cHBvcnRlZD0hMSx0aGlzLl9pc1JhbmdlU3VwcG9ydGVkPSExLHRoaXMuX2NhY2hlZENodW5rcz1bXSx0aGlzLl9yZXF1ZXN0cz1bXSx0aGlzLl9kb25lPSExLHRoaXMuX3N0b3JlZEVycm9yPXZvaWQgMCx0aGlzLl9maWxlbmFtZT1udWxsLHRoaXMub25Qcm9ncmVzcz1udWxsfV9vbkhlYWRlcnNSZWNlaXZlZCgpe2NvbnN0IHQ9dGhpcy5fZnVsbFJlcXVlc3RJZCxlPXRoaXMuX21hbmFnZXIuZ2V0UmVxdWVzdFhocih0KSxpPW5ldyBIZWFkZXJzKGUuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkudHJpbSgpLnNwbGl0KC9bXHJcbl0rLykubWFwKCh0PT57Y29uc3RbZSwuLi5pXT10LnNwbGl0KCI6ICIpO3JldHVybltlLGkuam9pbigiOiAiKV19KSkpLHthbGxvd1JhbmdlUmVxdWVzdHM6cyxzdWdnZXN0ZWRMZW5ndGg6bn09VGUoe3Jlc3BvbnNlSGVhZGVyczppLGlzSHR0cDp0aGlzLl9tYW5hZ2VyLmlzSHR0cCxyYW5nZUNodW5rU2l6ZTp0aGlzLl9yYW5nZUNodW5rU2l6ZSxkaXNhYmxlUmFuZ2U6dGhpcy5fZGlzYWJsZVJhbmdlfSk7cyYmKHRoaXMuX2lzUmFuZ2VTdXBwb3J0ZWQ9ITApLHRoaXMuX2NvbnRlbnRMZW5ndGg9bnx8dGhpcy5fY29udGVudExlbmd0aCx0aGlzLl9maWxlbmFtZT1NZShpKSx0aGlzLl9pc1JhbmdlU3VwcG9ydGVkJiZ0aGlzLl9tYW5hZ2VyLmFib3J0UmVxdWVzdCh0KSx0aGlzLl9oZWFkZXJzQ2FwYWJpbGl0eS5yZXNvbHZlKCl9X29uRG9uZSh0KXtpZih0JiYodGhpcy5fcmVxdWVzdHMubGVuZ3RoPjA/dGhpcy5fcmVxdWVzdHMuc2hpZnQoKS5yZXNvbHZlKHt2YWx1ZTp0LmNodW5rLGRvbmU6ITF9KTp0aGlzLl9jYWNoZWRDaHVua3MucHVzaCh0LmNodW5rKSksdGhpcy5fZG9uZT0hMCwhKHRoaXMuX2NhY2hlZENodW5rcy5sZW5ndGg+MCkpe2Zvcihjb25zdCB0IG9mIHRoaXMuX3JlcXVlc3RzKXQucmVzb2x2ZSh7dmFsdWU6dm9pZCAwLGRvbmU6ITB9KTt0aGlzLl9yZXF1ZXN0cy5sZW5ndGg9MH19X29uRXJyb3IodCl7dGhpcy5fc3RvcmVkRXJyb3I9a2UodCx0aGlzLl91cmwpLHRoaXMuX2hlYWRlcnNDYXBhYmlsaXR5LnJlamVjdCh0aGlzLl9zdG9yZWRFcnJvcik7Zm9yKGNvbnN0IHQgb2YgdGhpcy5fcmVxdWVzdHMpdC5yZWplY3QodGhpcy5fc3RvcmVkRXJyb3IpO3RoaXMuX3JlcXVlc3RzLmxlbmd0aD0wLHRoaXMuX2NhY2hlZENodW5rcy5sZW5ndGg9MH1fb25Qcm9ncmVzcyh0KXt0aGlzLm9uUHJvZ3Jlc3M/Lih7bG9hZGVkOnQubG9hZGVkLHRvdGFsOnQubGVuZ3RoQ29tcHV0YWJsZT90LnRvdGFsOnRoaXMuX2NvbnRlbnRMZW5ndGh9KX1nZXQgZmlsZW5hbWUoKXtyZXR1cm4gdGhpcy5fZmlsZW5hbWV9Z2V0IGlzUmFuZ2VTdXBwb3J0ZWQoKXtyZXR1cm4gdGhpcy5faXNSYW5nZVN1cHBvcnRlZH1nZXQgaXNTdHJlYW1pbmdTdXBwb3J0ZWQoKXtyZXR1cm4gdGhpcy5faXNTdHJlYW1pbmdTdXBwb3J0ZWR9Z2V0IGNvbnRlbnRMZW5ndGgoKXtyZXR1cm4gdGhpcy5fY29udGVudExlbmd0aH1nZXQgaGVhZGVyc1JlYWR5KCl7cmV0dXJuIHRoaXMuX2hlYWRlcnNDYXBhYmlsaXR5LnByb21pc2V9YXN5bmMgcmVhZCgpe2lmKHRoaXMuX3N0b3JlZEVycm9yKXRocm93IHRoaXMuX3N0b3JlZEVycm9yO2lmKHRoaXMuX2NhY2hlZENodW5rcy5sZW5ndGg+MClyZXR1cm57dmFsdWU6dGhpcy5fY2FjaGVkQ2h1bmtzLnNoaWZ0KCksZG9uZTohMX07aWYodGhpcy5fZG9uZSlyZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9O2NvbnN0IHQ9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7cmV0dXJuIHRoaXMuX3JlcXVlc3RzLnB1c2godCksdC5wcm9taXNlfWNhbmNlbCh0KXt0aGlzLl9kb25lPSEwLHRoaXMuX2hlYWRlcnNDYXBhYmlsaXR5LnJlamVjdCh0KTtmb3IoY29uc3QgdCBvZiB0aGlzLl9yZXF1ZXN0cyl0LnJlc29sdmUoe3ZhbHVlOnZvaWQgMCxkb25lOiEwfSk7dGhpcy5fcmVxdWVzdHMubGVuZ3RoPTAsdGhpcy5fbWFuYWdlci5pc1BlbmRpbmdSZXF1ZXN0KHRoaXMuX2Z1bGxSZXF1ZXN0SWQpJiZ0aGlzLl9tYW5hZ2VyLmFib3J0UmVxdWVzdCh0aGlzLl9mdWxsUmVxdWVzdElkKSx0aGlzLl9mdWxsUmVxdWVzdFJlYWRlcj1udWxsfX1jbGFzcyB6ZXtjb25zdHJ1Y3Rvcih0LGUsaSl7dGhpcy5fbWFuYWdlcj10O2NvbnN0IHM9e29uRG9uZTp0aGlzLl9vbkRvbmUuYmluZCh0aGlzKSxvbkVycm9yOnRoaXMuX29uRXJyb3IuYmluZCh0aGlzKSxvblByb2dyZXNzOnRoaXMuX29uUHJvZ3Jlc3MuYmluZCh0aGlzKX07dGhpcy5fdXJsPXQudXJsLHRoaXMuX3JlcXVlc3RJZD10LnJlcXVlc3RSYW5nZShlLGkscyksdGhpcy5fcmVxdWVzdHM9W10sdGhpcy5fcXVldWVkQ2h1bms9bnVsbCx0aGlzLl9kb25lPSExLHRoaXMuX3N0b3JlZEVycm9yPXZvaWQgMCx0aGlzLm9uUHJvZ3Jlc3M9bnVsbCx0aGlzLm9uQ2xvc2VkPW51bGx9X2Nsb3NlKCl7dGhpcy5vbkNsb3NlZD8uKHRoaXMpfV9vbkRvbmUodCl7Y29uc3QgZT10LmNodW5rO3RoaXMuX3JlcXVlc3RzLmxlbmd0aD4wP3RoaXMuX3JlcXVlc3RzLnNoaWZ0KCkucmVzb2x2ZSh7dmFsdWU6ZSxkb25lOiExfSk6dGhpcy5fcXVldWVkQ2h1bms9ZSx0aGlzLl9kb25lPSEwO2Zvcihjb25zdCB0IG9mIHRoaXMuX3JlcXVlc3RzKXQucmVzb2x2ZSh7dmFsdWU6dm9pZCAwLGRvbmU6ITB9KTt0aGlzLl9yZXF1ZXN0cy5sZW5ndGg9MCx0aGlzLl9jbG9zZSgpfV9vbkVycm9yKHQpe3RoaXMuX3N0b3JlZEVycm9yPWtlKHQsdGhpcy5fdXJsKTtmb3IoY29uc3QgdCBvZiB0aGlzLl9yZXF1ZXN0cyl0LnJlamVjdCh0aGlzLl9zdG9yZWRFcnJvcik7dGhpcy5fcmVxdWVzdHMubGVuZ3RoPTAsdGhpcy5fcXVldWVkQ2h1bms9bnVsbH1fb25Qcm9ncmVzcyh0KXt0aGlzLmlzU3RyZWFtaW5nU3VwcG9ydGVkfHx0aGlzLm9uUHJvZ3Jlc3M/Lih7bG9hZGVkOnQubG9hZGVkfSl9Z2V0IGlzU3RyZWFtaW5nU3VwcG9ydGVkKCl7cmV0dXJuITF9YXN5bmMgcmVhZCgpe2lmKHRoaXMuX3N0b3JlZEVycm9yKXRocm93IHRoaXMuX3N0b3JlZEVycm9yO2lmKG51bGwhPT10aGlzLl9xdWV1ZWRDaHVuayl7Y29uc3QgdD10aGlzLl9xdWV1ZWRDaHVuaztyZXR1cm4gdGhpcy5fcXVldWVkQ2h1bms9bnVsbCx7dmFsdWU6dCxkb25lOiExfX1pZih0aGlzLl9kb25lKXJldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH07Y29uc3QgdD1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKTtyZXR1cm4gdGhpcy5fcmVxdWVzdHMucHVzaCh0KSx0LnByb21pc2V9Y2FuY2VsKHQpe3RoaXMuX2RvbmU9ITA7Zm9yKGNvbnN0IHQgb2YgdGhpcy5fcmVxdWVzdHMpdC5yZXNvbHZlKHt2YWx1ZTp2b2lkIDAsZG9uZTohMH0pO3RoaXMuX3JlcXVlc3RzLmxlbmd0aD0wLHRoaXMuX21hbmFnZXIuaXNQZW5kaW5nUmVxdWVzdCh0aGlzLl9yZXF1ZXN0SWQpJiZ0aGlzLl9tYW5hZ2VyLmFib3J0UmVxdWVzdCh0aGlzLl9yZXF1ZXN0SWQpLHRoaXMuX2Nsb3NlKCl9fWNvbnN0IEhlPS9eW2Etel1bYS16MC05XC0rLl0rOi9pO2Z1bmN0aW9uIGplKHQsZSxpKXtyZXR1cm4iaHR0cDoiPT09dC5wcm90b2NvbD9VdC5nZXQoImh0dHAiKS5yZXF1ZXN0KHQse2hlYWRlcnM6ZX0saSk6VXQuZ2V0KCJodHRwcyIpLnJlcXVlc3QodCx7aGVhZGVyczplfSxpKX1jbGFzcyBVZXtjb25zdHJ1Y3Rvcih0KXt0aGlzLnNvdXJjZT10LHRoaXMudXJsPWZ1bmN0aW9uKHQpe2lmKEhlLnRlc3QodCkpcmV0dXJuIG5ldyBVUkwodCk7Y29uc3QgZT1VdC5nZXQoInVybCIpO3JldHVybiBuZXcgVVJMKGUucGF0aFRvRmlsZVVSTCh0KSl9KHQudXJsKSx0aGlzLmlzSHR0cD0iaHR0cDoiPT09dGhpcy51cmwucHJvdG9jb2x8fCJodHRwczoiPT09dGhpcy51cmwucHJvdG9jb2wsdGhpcy5pc0ZzVXJsPSJmaWxlOiI9PT10aGlzLnVybC5wcm90b2NvbCx0aGlzLmhlYWRlcnM9U2UodGhpcy5pc0h0dHAsdC5odHRwSGVhZGVycyksdGhpcy5fZnVsbFJlcXVlc3RSZWFkZXI9bnVsbCx0aGlzLl9yYW5nZVJlcXVlc3RSZWFkZXJzPVtdfWdldCBfcHJvZ3Jlc3NpdmVEYXRhTGVuZ3RoKCl7cmV0dXJuIHRoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyPy5fbG9hZGVkPz8wfWdldEZ1bGxSZWFkZXIoKXtyZXR1cm4gXyghdGhpcy5fZnVsbFJlcXVlc3RSZWFkZXIsIlBERk5vZGVTdHJlYW0uZ2V0RnVsbFJlYWRlciBjYW4gb25seSBiZSBjYWxsZWQgb25jZS4iKSx0aGlzLl9mdWxsUmVxdWVzdFJlYWRlcj10aGlzLmlzRnNVcmw/bmV3IHFlKHRoaXMpOm5ldyBHZSh0aGlzKSx0aGlzLl9mdWxsUmVxdWVzdFJlYWRlcn1nZXRSYW5nZVJlYWRlcih0LGUpe2lmKGU8PXRoaXMuX3Byb2dyZXNzaXZlRGF0YUxlbmd0aClyZXR1cm4gbnVsbDtjb25zdCBpPXRoaXMuaXNGc1VybD9uZXcgWGUodGhpcyx0LGUpOm5ldyBWZSh0aGlzLHQsZSk7cmV0dXJuIHRoaXMuX3JhbmdlUmVxdWVzdFJlYWRlcnMucHVzaChpKSxpfWNhbmNlbEFsbFJlcXVlc3RzKHQpe3RoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyPy5jYW5jZWwodCk7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fcmFuZ2VSZXF1ZXN0UmVhZGVycy5zbGljZSgwKSllLmNhbmNlbCh0KX19Y2xhc3MgJGV7Y29uc3RydWN0b3IodCl7dGhpcy5fdXJsPXQudXJsLHRoaXMuX2RvbmU9ITEsdGhpcy5fc3RvcmVkRXJyb3I9bnVsbCx0aGlzLm9uUHJvZ3Jlc3M9bnVsbDtjb25zdCBlPXQuc291cmNlO3RoaXMuX2NvbnRlbnRMZW5ndGg9ZS5sZW5ndGgsdGhpcy5fbG9hZGVkPTAsdGhpcy5fZmlsZW5hbWU9bnVsbCx0aGlzLl9kaXNhYmxlUmFuZ2U9ZS5kaXNhYmxlUmFuZ2V8fCExLHRoaXMuX3JhbmdlQ2h1bmtTaXplPWUucmFuZ2VDaHVua1NpemUsdGhpcy5fcmFuZ2VDaHVua1NpemV8fHRoaXMuX2Rpc2FibGVSYW5nZXx8KHRoaXMuX2Rpc2FibGVSYW5nZT0hMCksdGhpcy5faXNTdHJlYW1pbmdTdXBwb3J0ZWQ9IWUuZGlzYWJsZVN0cmVhbSx0aGlzLl9pc1JhbmdlU3VwcG9ydGVkPSFlLmRpc2FibGVSYW5nZSx0aGlzLl9yZWFkYWJsZVN0cmVhbT1udWxsLHRoaXMuX3JlYWRDYXBhYmlsaXR5PVByb21pc2Uud2l0aFJlc29sdmVycygpLHRoaXMuX2hlYWRlcnNDYXBhYmlsaXR5PVByb21pc2Uud2l0aFJlc29sdmVycygpfWdldCBoZWFkZXJzUmVhZHkoKXtyZXR1cm4gdGhpcy5faGVhZGVyc0NhcGFiaWxpdHkucHJvbWlzZX1nZXQgZmlsZW5hbWUoKXtyZXR1cm4gdGhpcy5fZmlsZW5hbWV9Z2V0IGNvbnRlbnRMZW5ndGgoKXtyZXR1cm4gdGhpcy5fY29udGVudExlbmd0aH1nZXQgaXNSYW5nZVN1cHBvcnRlZCgpe3JldHVybiB0aGlzLl9pc1JhbmdlU3VwcG9ydGVkfWdldCBpc1N0cmVhbWluZ1N1cHBvcnRlZCgpe3JldHVybiB0aGlzLl9pc1N0cmVhbWluZ1N1cHBvcnRlZH1hc3luYyByZWFkKCl7aWYoYXdhaXQgdGhpcy5fcmVhZENhcGFiaWxpdHkucHJvbWlzZSx0aGlzLl9kb25lKXJldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH07aWYodGhpcy5fc3RvcmVkRXJyb3IpdGhyb3cgdGhpcy5fc3RvcmVkRXJyb3I7Y29uc3QgdD10aGlzLl9yZWFkYWJsZVN0cmVhbS5yZWFkKCk7cmV0dXJuIG51bGw9PT10Pyh0aGlzLl9yZWFkQ2FwYWJpbGl0eT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKSx0aGlzLnJlYWQoKSk6KHRoaXMuX2xvYWRlZCs9dC5sZW5ndGgsdGhpcy5vblByb2dyZXNzPy4oe2xvYWRlZDp0aGlzLl9sb2FkZWQsdG90YWw6dGhpcy5fY29udGVudExlbmd0aH0pLHt2YWx1ZTpuZXcgVWludDhBcnJheSh0KS5idWZmZXIsZG9uZTohMX0pfWNhbmNlbCh0KXt0aGlzLl9yZWFkYWJsZVN0cmVhbT90aGlzLl9yZWFkYWJsZVN0cmVhbS5kZXN0cm95KHQpOnRoaXMuX2Vycm9yKHQpfV9lcnJvcih0KXt0aGlzLl9zdG9yZWRFcnJvcj10LHRoaXMuX3JlYWRDYXBhYmlsaXR5LnJlc29sdmUoKX1fc2V0UmVhZGFibGVTdHJlYW0odCl7dGhpcy5fcmVhZGFibGVTdHJlYW09dCx0Lm9uKCJyZWFkYWJsZSIsKCgpPT57dGhpcy5fcmVhZENhcGFiaWxpdHkucmVzb2x2ZSgpfSkpLHQub24oImVuZCIsKCgpPT57dC5kZXN0cm95KCksdGhpcy5fZG9uZT0hMCx0aGlzLl9yZWFkQ2FwYWJpbGl0eS5yZXNvbHZlKCl9KSksdC5vbigiZXJyb3IiLCh0PT57dGhpcy5fZXJyb3IodCl9KSksIXRoaXMuX2lzU3RyZWFtaW5nU3VwcG9ydGVkJiZ0aGlzLl9pc1JhbmdlU3VwcG9ydGVkJiZ0aGlzLl9lcnJvcihuZXcgRCgic3RyZWFtaW5nIGlzIGRpc2FibGVkIikpLHRoaXMuX3N0b3JlZEVycm9yJiZ0aGlzLl9yZWFkYWJsZVN0cmVhbS5kZXN0cm95KHRoaXMuX3N0b3JlZEVycm9yKX19Y2xhc3MgV2V7Y29uc3RydWN0b3IodCl7dGhpcy5fdXJsPXQudXJsLHRoaXMuX2RvbmU9ITEsdGhpcy5fc3RvcmVkRXJyb3I9bnVsbCx0aGlzLm9uUHJvZ3Jlc3M9bnVsbCx0aGlzLl9sb2FkZWQ9MCx0aGlzLl9yZWFkYWJsZVN0cmVhbT1udWxsLHRoaXMuX3JlYWRDYXBhYmlsaXR5PVByb21pc2Uud2l0aFJlc29sdmVycygpO2NvbnN0IGU9dC5zb3VyY2U7dGhpcy5faXNTdHJlYW1pbmdTdXBwb3J0ZWQ9IWUuZGlzYWJsZVN0cmVhbX1nZXQgaXNTdHJlYW1pbmdTdXBwb3J0ZWQoKXtyZXR1cm4gdGhpcy5faXNTdHJlYW1pbmdTdXBwb3J0ZWR9YXN5bmMgcmVhZCgpe2lmKGF3YWl0IHRoaXMuX3JlYWRDYXBhYmlsaXR5LnByb21pc2UsdGhpcy5fZG9uZSlyZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9O2lmKHRoaXMuX3N0b3JlZEVycm9yKXRocm93IHRoaXMuX3N0b3JlZEVycm9yO2NvbnN0IHQ9dGhpcy5fcmVhZGFibGVTdHJlYW0ucmVhZCgpO3JldHVybiBudWxsPT09dD8odGhpcy5fcmVhZENhcGFiaWxpdHk9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCksdGhpcy5yZWFkKCkpOih0aGlzLl9sb2FkZWQrPXQubGVuZ3RoLHRoaXMub25Qcm9ncmVzcz8uKHtsb2FkZWQ6dGhpcy5fbG9hZGVkfSkse3ZhbHVlOm5ldyBVaW50OEFycmF5KHQpLmJ1ZmZlcixkb25lOiExfSl9Y2FuY2VsKHQpe3RoaXMuX3JlYWRhYmxlU3RyZWFtP3RoaXMuX3JlYWRhYmxlU3RyZWFtLmRlc3Ryb3kodCk6dGhpcy5fZXJyb3IodCl9X2Vycm9yKHQpe3RoaXMuX3N0b3JlZEVycm9yPXQsdGhpcy5fcmVhZENhcGFiaWxpdHkucmVzb2x2ZSgpfV9zZXRSZWFkYWJsZVN0cmVhbSh0KXt0aGlzLl9yZWFkYWJsZVN0cmVhbT10LHQub24oInJlYWRhYmxlIiwoKCk9Pnt0aGlzLl9yZWFkQ2FwYWJpbGl0eS5yZXNvbHZlKCl9KSksdC5vbigiZW5kIiwoKCk9Pnt0LmRlc3Ryb3koKSx0aGlzLl9kb25lPSEwLHRoaXMuX3JlYWRDYXBhYmlsaXR5LnJlc29sdmUoKX0pKSx0Lm9uKCJlcnJvciIsKHQ9Pnt0aGlzLl9lcnJvcih0KX0pKSx0aGlzLl9zdG9yZWRFcnJvciYmdGhpcy5fcmVhZGFibGVTdHJlYW0uZGVzdHJveSh0aGlzLl9zdG9yZWRFcnJvcil9fWNsYXNzIEdlIGV4dGVuZHMgJGV7Y29uc3RydWN0b3IodCl7c3VwZXIodCk7Y29uc3QgZT1PYmplY3QuZnJvbUVudHJpZXModC5oZWFkZXJzKTt0aGlzLl9yZXF1ZXN0PWplKHRoaXMuX3VybCxlLChlPT57aWYoNDA0PT09ZS5zdGF0dXNDb2RlKXtjb25zdCB0PW5ldyBJKGBNaXNzaW5nIFBERiAiJHt0aGlzLl91cmx9Ii5gKTtyZXR1cm4gdGhpcy5fc3RvcmVkRXJyb3I9dCx2b2lkIHRoaXMuX2hlYWRlcnNDYXBhYmlsaXR5LnJlamVjdCh0KX10aGlzLl9oZWFkZXJzQ2FwYWJpbGl0eS5yZXNvbHZlKCksdGhpcy5fc2V0UmVhZGFibGVTdHJlYW0oZSk7Y29uc3QgaT1uZXcgSGVhZGVycyh0aGlzLl9yZWFkYWJsZVN0cmVhbS5oZWFkZXJzKSx7YWxsb3dSYW5nZVJlcXVlc3RzOnMsc3VnZ2VzdGVkTGVuZ3RoOm59PVRlKHtyZXNwb25zZUhlYWRlcnM6aSxpc0h0dHA6dC5pc0h0dHAscmFuZ2VDaHVua1NpemU6dGhpcy5fcmFuZ2VDaHVua1NpemUsZGlzYWJsZVJhbmdlOnRoaXMuX2Rpc2FibGVSYW5nZX0pO3RoaXMuX2lzUmFuZ2VTdXBwb3J0ZWQ9cyx0aGlzLl9jb250ZW50TGVuZ3RoPW58fHRoaXMuX2NvbnRlbnRMZW5ndGgsdGhpcy5fZmlsZW5hbWU9TWUoaSl9KSksdGhpcy5fcmVxdWVzdC5vbigiZXJyb3IiLCh0PT57dGhpcy5fc3RvcmVkRXJyb3I9dCx0aGlzLl9oZWFkZXJzQ2FwYWJpbGl0eS5yZWplY3QodCl9KSksdGhpcy5fcmVxdWVzdC5lbmQoKX19Y2xhc3MgVmUgZXh0ZW5kcyBXZXtjb25zdHJ1Y3Rvcih0LGUsaSl7c3VwZXIodCk7Y29uc3Qgcz1PYmplY3QuZnJvbUVudHJpZXModC5oZWFkZXJzKTtzLlJhbmdlPWBieXRlcz0ke2V9LSR7aS0xfWAsdGhpcy5fcmVxdWVzdD1qZSh0aGlzLl91cmwscywodD0+e2lmKDQwNCE9PXQuc3RhdHVzQ29kZSl0aGlzLl9zZXRSZWFkYWJsZVN0cmVhbSh0KTtlbHNle2NvbnN0IHQ9bmV3IEkoYE1pc3NpbmcgUERGICIke3RoaXMuX3VybH0iLmApO3RoaXMuX3N0b3JlZEVycm9yPXR9fSkpLHRoaXMuX3JlcXVlc3Qub24oImVycm9yIiwodD0+e3RoaXMuX3N0b3JlZEVycm9yPXR9KSksdGhpcy5fcmVxdWVzdC5lbmQoKX19Y2xhc3MgcWUgZXh0ZW5kcyAkZXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KTtjb25zdCBlPVV0LmdldCgiZnMiKTtlLnByb21pc2VzLmxzdGF0KHRoaXMuX3VybCkudGhlbigodD0+e3RoaXMuX2NvbnRlbnRMZW5ndGg9dC5zaXplLHRoaXMuX3NldFJlYWRhYmxlU3RyZWFtKGUuY3JlYXRlUmVhZFN0cmVhbSh0aGlzLl91cmwpKSx0aGlzLl9oZWFkZXJzQ2FwYWJpbGl0eS5yZXNvbHZlKCl9KSwodD0+eyJFTk9FTlQiPT09dC5jb2RlJiYodD1uZXcgSShgTWlzc2luZyBQREYgIiR7dGhpcy5fdXJsfSIuYCkpLHRoaXMuX3N0b3JlZEVycm9yPXQsdGhpcy5faGVhZGVyc0NhcGFiaWxpdHkucmVqZWN0KHQpfSkpfX1jbGFzcyBYZSBleHRlbmRzIFdle2NvbnN0cnVjdG9yKHQsZSxpKXtzdXBlcih0KTtjb25zdCBzPVV0LmdldCgiZnMiKTt0aGlzLl9zZXRSZWFkYWJsZVN0cmVhbShzLmNyZWF0ZVJlYWRTdHJlYW0odGhpcy5fdXJsLHtzdGFydDplLGVuZDppLTF9KSl9fWNvbnN0IEtlPTMwO2NsYXNzIFlleyNKZT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKTsjdXQ9bnVsbDsjWmU9ITE7I3RpPSEhZ2xvYmFsVGhpcy5Gb250SW5zcGVjdG9yPy5lbmFibGVkOyNlaT1udWxsOyNpaT1udWxsOyNzaT0wOyNuaT0wOyNyaT1udWxsOyNhaT1udWxsOyNvaT0wOyNoaT0wOyNsaT1PYmplY3QuY3JlYXRlKG51bGwpOyNjaT1bXTsjZGk9bnVsbDsjdWk9W107I3BpPW5ldyBXZWFrTWFwOyNnaT1udWxsO3N0YXRpYyNmaT1uZXcgTWFwO3N0YXRpYyNtaT1uZXcgTWFwO3N0YXRpYyNiaT1uZXcgV2Vha01hcDtzdGF0aWMjdmk9bnVsbDtzdGF0aWMjeWk9bmV3IFNldDtjb25zdHJ1Y3Rvcih7dGV4dENvbnRlbnRTb3VyY2U6dCxjb250YWluZXI6ZSx2aWV3cG9ydDppfSl7aWYodCBpbnN0YW5jZW9mIFJlYWRhYmxlU3RyZWFtKXRoaXMuI2RpPXQ7ZWxzZXtpZigib2JqZWN0IiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yKCdObyAidGV4dENvbnRlbnRTb3VyY2UiIHBhcmFtZXRlciBzcGVjaWZpZWQuJyk7dGhpcy4jZGk9bmV3IFJlYWRhYmxlU3RyZWFtKHtzdGFydChlKXtlLmVucXVldWUodCksZS5jbG9zZSgpfX0pfXRoaXMuI3V0PXRoaXMuI2FpPWUsdGhpcy4jaGk9aS5zY2FsZSooZ2xvYmFsVGhpcy5kZXZpY2VQaXhlbFJhdGlvfHwxKSx0aGlzLiNvaT1pLnJvdGF0aW9uLHRoaXMuI2lpPXtkaXY6bnVsbCxwcm9wZXJ0aWVzOm51bGwsY3R4Om51bGx9O2NvbnN0e3BhZ2VXaWR0aDpzLHBhZ2VIZWlnaHQ6bixwYWdlWDpyLHBhZ2VZOmF9PWkucmF3RGltczt0aGlzLiNnaT1bMSwwLDAsLTEsLXIsYStuXSx0aGlzLiNuaT1zLHRoaXMuI3NpPW4sWWUuI0FpKCksYnQoZSxpKSx0aGlzLiNKZS5wcm9taXNlLmZpbmFsbHkoKCgpPT57WWUuI3lpLmRlbGV0ZSh0aGlzKSx0aGlzLiNpaT1udWxsLHRoaXMuI2xpPW51bGx9KSkuY2F0Y2goKCgpPT57fSkpfXN0YXRpYyBnZXQgZm9udEZhbWlseU1hcCgpe2NvbnN0e2lzV2luZG93czp0LGlzRmlyZWZveDplfT1OLnBsYXRmb3JtO3JldHVybiBDKHRoaXMsImZvbnRGYW1pbHlNYXAiLG5ldyBNYXAoW1sic2Fucy1zZXJpZiIsKHQmJmU/IkNhbGlicmksICI6IiIpKyJzYW5zLXNlcmlmIl0sWyJtb25vc3BhY2UiLCh0JiZlPyJMdWNpZGEgQ29uc29sZSwgIjoiIikrIm1vbm9zcGFjZSJdXSkpfXJlbmRlcigpe2NvbnN0IHQ9KCk9Pnt0aGlzLiNyaS5yZWFkKCkudGhlbigoKHt2YWx1ZTplLGRvbmU6aX0pPT57aT90aGlzLiNKZS5yZXNvbHZlKCk6KHRoaXMuI2VpPz89ZS5sYW5nLE9iamVjdC5hc3NpZ24odGhpcy4jbGksZS5zdHlsZXMpLHRoaXMuI3dpKGUuaXRlbXMpLHQoKSl9KSx0aGlzLiNKZS5yZWplY3QpfTtyZXR1cm4gdGhpcy4jcmk9dGhpcy4jZGkuZ2V0UmVhZGVyKCksWWUuI3lpLmFkZCh0aGlzKSx0KCksdGhpcy4jSmUucHJvbWlzZX11cGRhdGUoe3ZpZXdwb3J0OnQsb25CZWZvcmU6ZT1udWxsfSl7Y29uc3QgaT10LnNjYWxlKihnbG9iYWxUaGlzLmRldmljZVBpeGVsUmF0aW98fDEpLHM9dC5yb3RhdGlvbjtpZihzIT09dGhpcy4jb2kmJihlPy4oKSx0aGlzLiNvaT1zLGJ0KHRoaXMuI2FpLHtyb3RhdGlvbjpzfSkpLGkhPT10aGlzLiNoaSl7ZT8uKCksdGhpcy4jaGk9aTtjb25zdCB0PXtkaXY6bnVsbCxwcm9wZXJ0aWVzOm51bGwsY3R4OlllLiN4aSh0aGlzLiNlaSl9O2Zvcihjb25zdCBlIG9mIHRoaXMuI3VpKXQucHJvcGVydGllcz10aGlzLiNwaS5nZXQoZSksdC5kaXY9ZSx0aGlzLiNfaSh0KX19Y2FuY2VsKCl7Y29uc3QgdD1uZXcgRCgiVGV4dExheWVyIHRhc2sgY2FuY2VsbGVkLiIpO3RoaXMuI3JpPy5jYW5jZWwodCkuY2F0Y2goKCgpPT57fSkpLHRoaXMuI3JpPW51bGwsdGhpcy4jSmUucmVqZWN0KHQpfWdldCB0ZXh0RGl2cygpe3JldHVybiB0aGlzLiN1aX1nZXQgdGV4dENvbnRlbnRJdGVtc1N0cigpe3JldHVybiB0aGlzLiNjaX0jd2kodCl7aWYodGhpcy4jWmUpcmV0dXJuO3RoaXMuI2lpLmN0eD8/PVllLiN4aSh0aGlzLiNlaSk7Y29uc3QgZT10aGlzLiN1aSxpPXRoaXMuI2NpO2Zvcihjb25zdCBzIG9mIHQpe2lmKGUubGVuZ3RoPjFlNSlyZXR1cm4gdygiSWdub3JpbmcgYWRkaXRpb25hbCB0ZXh0RGl2cyBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4iKSx2b2lkKHRoaXMuI1plPSEwKTtpZih2b2lkIDAhPT1zLnN0cilpLnB1c2gocy5zdHIpLHRoaXMuI0VpKHMpO2Vsc2UgaWYoImJlZ2luTWFya2VkQ29udGVudFByb3BzIj09PXMudHlwZXx8ImJlZ2luTWFya2VkQ29udGVudCI9PT1zLnR5cGUpe2NvbnN0IHQ9dGhpcy4jdXQ7dGhpcy4jdXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpLHRoaXMuI3V0LmNsYXNzTGlzdC5hZGQoIm1hcmtlZENvbnRlbnQiKSxudWxsIT09cy5pZCYmdGhpcy4jdXQuc2V0QXR0cmlidXRlKCJpZCIsYCR7cy5pZH1gKSx0LmFwcGVuZCh0aGlzLiN1dCl9ZWxzZSJlbmRNYXJrZWRDb250ZW50Ij09PXMudHlwZSYmKHRoaXMuI3V0PXRoaXMuI3V0LnBhcmVudE5vZGUpfX0jRWkodCl7Y29uc3QgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIiksaT17YW5nbGU6MCxjYW52YXNXaWR0aDowLGhhc1RleHQ6IiIhPT10LnN0cixoYXNFT0w6dC5oYXNFT0wsZm9udFNpemU6MH07dGhpcy4jdWkucHVzaChlKTtjb25zdCBzPXoudHJhbnNmb3JtKHRoaXMuI2dpLHQudHJhbnNmb3JtKTtsZXQgbj1NYXRoLmF0YW4yKHNbMV0sc1swXSk7Y29uc3Qgcj10aGlzLiNsaVt0LmZvbnROYW1lXTtyLnZlcnRpY2FsJiYobis9TWF0aC5QSS8yKTtsZXQgYT10aGlzLiN0aSYmci5mb250U3Vic3RpdHV0aW9ufHxyLmZvbnRGYW1pbHk7YT1ZZS5mb250RmFtaWx5TWFwLmdldChhKXx8YTtjb25zdCBvPU1hdGguaHlwb3Qoc1syXSxzWzNdKSxoPW8qWWUuI0NpKGEsdGhpcy4jZWkpO2xldCBsLGM7MD09PW4/KGw9c1s0XSxjPXNbNV0taCk6KGw9c1s0XStoKk1hdGguc2luKG4pLGM9c1s1XS1oKk1hdGguY29zKG4pKTtjb25zdCBkPSJjYWxjKHZhcigtLXNjYWxlLWZhY3RvcikqIix1PWUuc3R5bGU7dGhpcy4jdXQ9PT10aGlzLiNhaT8odS5sZWZ0PWAkeygxMDAqbC90aGlzLiNuaSkudG9GaXhlZCgyKX0lYCx1LnRvcD1gJHsoMTAwKmMvdGhpcy4jc2kpLnRvRml4ZWQoMil9JWApOih1LmxlZnQ9YCR7ZH0ke2wudG9GaXhlZCgyKX1weClgLHUudG9wPWAke2R9JHtjLnRvRml4ZWQoMil9cHgpYCksdS5mb250U2l6ZT1gJHtkfSR7KFllLiN2aSpvKS50b0ZpeGVkKDIpfXB4KWAsdS5mb250RmFtaWx5PWEsaS5mb250U2l6ZT1vLGUuc2V0QXR0cmlidXRlKCJyb2xlIiwicHJlc2VudGF0aW9uIiksZS50ZXh0Q29udGVudD10LnN0cixlLmRpcj10LmRpcix0aGlzLiN0aSYmKGUuZGF0YXNldC5mb250TmFtZT1yLmZvbnRTdWJzdGl0dXRpb25Mb2FkZWROYW1lfHx0LmZvbnROYW1lKSwwIT09biYmKGkuYW5nbGU9biooMTgwL01hdGguUEkpKTtsZXQgcD0hMTtpZih0LnN0ci5sZW5ndGg+MSlwPSEwO2Vsc2UgaWYoIiAiIT09dC5zdHImJnQudHJhbnNmb3JtWzBdIT09dC50cmFuc2Zvcm1bM10pe2NvbnN0IGU9TWF0aC5hYnModC50cmFuc2Zvcm1bMF0pLGk9TWF0aC5hYnModC50cmFuc2Zvcm1bM10pO2UhPT1pJiZNYXRoLm1heChlLGkpL01hdGgubWluKGUsaSk+MS41JiYocD0hMCl9aWYocCYmKGkuY2FudmFzV2lkdGg9ci52ZXJ0aWNhbD90LmhlaWdodDp0LndpZHRoKSx0aGlzLiNwaS5zZXQoZSxpKSx0aGlzLiNpaS5kaXY9ZSx0aGlzLiNpaS5wcm9wZXJ0aWVzPWksdGhpcy4jX2kodGhpcy4jaWkpLGkuaGFzVGV4dCYmdGhpcy4jdXQuYXBwZW5kKGUpLGkuaGFzRU9MKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJyIik7dC5zZXRBdHRyaWJ1dGUoInJvbGUiLCJwcmVzZW50YXRpb24iKSx0aGlzLiN1dC5hcHBlbmQodCl9fSNfaSh0KXtjb25zdHtkaXY6ZSxwcm9wZXJ0aWVzOmksY3R4OnN9PXQse3N0eWxlOm59PWU7bGV0IHI9IiI7aWYoWWUuI3ZpPjEmJihyPWBzY2FsZSgkezEvWWUuI3ZpfSlgKSwwIT09aS5jYW52YXNXaWR0aCYmaS5oYXNUZXh0KXtjb25zdHtmb250RmFtaWx5OnR9PW4se2NhbnZhc1dpZHRoOmEsZm9udFNpemU6b309aTtZZS4jU2kocyxvKnRoaXMuI2hpLHQpO2NvbnN0e3dpZHRoOmh9PXMubWVhc3VyZVRleHQoZS50ZXh0Q29udGVudCk7aD4wJiYocj1gc2NhbGVYKCR7YSp0aGlzLiNoaS9ofSkgJHtyfWApfTAhPT1pLmFuZ2xlJiYocj1gcm90YXRlKCR7aS5hbmdsZX1kZWcpICR7cn1gKSxyLmxlbmd0aD4wJiYobi50cmFuc2Zvcm09cil9c3RhdGljIGNsZWFudXAoKXtpZighKHRoaXMuI3lpLnNpemU+MCkpe3RoaXMuI2ZpLmNsZWFyKCk7Zm9yKGNvbnN0e2NhbnZhczp0fW9mIHRoaXMuI21pLnZhbHVlcygpKXQucmVtb3ZlKCk7dGhpcy4jbWkuY2xlYXIoKX19c3RhdGljI3hpKHQ9bnVsbCl7bGV0IGU9dGhpcy4jbWkuZ2V0KHR8fD0iIik7aWYoIWUpe2NvbnN0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7aS5jbGFzc05hbWU9ImhpZGRlbkNhbnZhc0VsZW1lbnQiLGkubGFuZz10LGRvY3VtZW50LmJvZHkuYXBwZW5kKGkpLGU9aS5nZXRDb250ZXh0KCIyZCIse2FscGhhOiExLHdpbGxSZWFkRnJlcXVlbnRseTohMH0pLHRoaXMuI21pLnNldCh0LGUpLHRoaXMuI2JpLnNldChlLHtzaXplOjAsZmFtaWx5OiIifSl9cmV0dXJuIGV9c3RhdGljI1NpKHQsZSxpKXtjb25zdCBzPXRoaXMuI2JpLmdldCh0KTtlPT09cy5zaXplJiZpPT09cy5mYW1pbHl8fCh0LmZvbnQ9YCR7ZX1weCAke2l9YCxzLnNpemU9ZSxzLmZhbWlseT1pKX1zdGF0aWMjQWkoKXtpZihudWxsIT09dGhpcy4jdmkpcmV0dXJuO2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dC5zdHlsZS5vcGFjaXR5PTAsdC5zdHlsZS5saW5lSGVpZ2h0PTEsdC5zdHlsZS5mb250U2l6ZT0iMXB4Iix0LnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsdC50ZXh0Q29udGVudD0iWCIsZG9jdW1lbnQuYm9keS5hcHBlbmQodCksdGhpcy4jdmk9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQsdC5yZW1vdmUoKX1zdGF0aWMjQ2kodCxlKXtjb25zdCBpPXRoaXMuI2ZpLmdldCh0KTtpZihpKXJldHVybiBpO2NvbnN0IHM9dGhpcy4jeGkoZSk7cy5jYW52YXMud2lkdGg9cy5jYW52YXMuaGVpZ2h0PUtlLHRoaXMuI1NpKHMsS2UsdCk7Y29uc3Qgbj1zLm1lYXN1cmVUZXh0KCIiKTtsZXQgcj1uLmZvbnRCb3VuZGluZ0JveEFzY2VudCxhPU1hdGguYWJzKG4uZm9udEJvdW5kaW5nQm94RGVzY2VudCk7aWYocil7Y29uc3QgZT1yLyhyK2EpO3JldHVybiB0aGlzLiNmaS5zZXQodCxlKSxzLmNhbnZhcy53aWR0aD1zLmNhbnZhcy5oZWlnaHQ9MCxlfXMuc3Ryb2tlU3R5bGU9InJlZCIscy5jbGVhclJlY3QoMCwwLEtlLEtlKSxzLnN0cm9rZVRleHQoImciLDAsMCk7bGV0IG89cy5nZXRJbWFnZURhdGEoMCwwLEtlLEtlKS5kYXRhO2E9MDtmb3IobGV0IHQ9by5sZW5ndGgtMS0zO3Q+PTA7dC09NClpZihvW3RdPjApe2E9TWF0aC5jZWlsKHQvNC9LZSk7YnJlYWt9cy5jbGVhclJlY3QoMCwwLEtlLEtlKSxzLnN0cm9rZVRleHQoIkEiLDAsS2UpLG89cy5nZXRJbWFnZURhdGEoMCwwLEtlLEtlKS5kYXRhLHI9MDtmb3IobGV0IHQ9MCxlPW8ubGVuZ3RoO3Q8ZTt0Kz00KWlmKG9bdF0+MCl7cj1LZS1NYXRoLmZsb29yKHQvNC9LZSk7YnJlYWt9cy5jYW52YXMud2lkdGg9cy5jYW52YXMuaGVpZ2h0PTA7Y29uc3QgaD1yP3IvKHIrYSk6Ljg7cmV0dXJuIHRoaXMuI2ZpLnNldCh0LGgpLGh9fWNsYXNzIFFle3N0YXRpYyB0ZXh0Q29udGVudCh0KXtjb25zdCBlPVtdLGk9e2l0ZW1zOmUsc3R5bGVzOk9iamVjdC5jcmVhdGUobnVsbCl9O3JldHVybiBmdW5jdGlvbiB0KGkpe2lmKCFpKXJldHVybjtsZXQgcz1udWxsO2NvbnN0IG49aS5uYW1lO2lmKCIjdGV4dCI9PT1uKXM9aS52YWx1ZTtlbHNle2lmKCFRZS5zaG91bGRCdWlsZFRleHQobikpcmV0dXJuO2k/LmF0dHJpYnV0ZXM/LnRleHRDb250ZW50P3M9aS5hdHRyaWJ1dGVzLnRleHRDb250ZW50OmkudmFsdWUmJihzPWkudmFsdWUpfWlmKG51bGwhPT1zJiZlLnB1c2goe3N0cjpzfSksaS5jaGlsZHJlbilmb3IoY29uc3QgZSBvZiBpLmNoaWxkcmVuKXQoZSl9KHQpLGl9c3RhdGljIHNob3VsZEJ1aWxkVGV4dCh0KXtyZXR1cm4hKCJ0ZXh0YXJlYSI9PT10fHwiaW5wdXQiPT09dHx8Im9wdGlvbiI9PT10fHwic2VsZWN0Ij09PXQpfX1jb25zdCBKZT02NTUzNixaZT1uP2NsYXNzIGV4dGVuZHMgR3tfY3JlYXRlQ2FudmFzKHQsZSl7cmV0dXJuIFV0LmdldCgiY2FudmFzIikuY3JlYXRlQ2FudmFzKHQsZSl9fTpjbGFzcyBleHRlbmRzIEd7Y29uc3RydWN0b3Ioe293bmVyRG9jdW1lbnQ6dD1nbG9iYWxUaGlzLmRvY3VtZW50LGVuYWJsZUhXQTplPSExfSl7c3VwZXIoe2VuYWJsZUhXQTplfSksdGhpcy5fZG9jdW1lbnQ9dH1fY3JlYXRlQ2FudmFzKHQsZSl7Y29uc3QgaT10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtyZXR1cm4gaS53aWR0aD10LGkuaGVpZ2h0PWUsaX19LHRpPW4/Y2xhc3MgZXh0ZW5kcyBWe19mZXRjaERhdGEodCxlKXtyZXR1cm4gJHQodCkudGhlbigodD0+KHtjTWFwRGF0YTp0LGNvbXByZXNzaW9uVHlwZTplfSkpKX19OkosZWk9bj9jbGFzcyBleHRlbmRzIFd7fTpjbGFzcyBleHRlbmRzIFd7I1RpOyNNaTsja2k7I0lpOyNSaTsjUGk7I3k9MDtjb25zdHJ1Y3Rvcih7ZG9jSWQ6dCxvd25lckRvY3VtZW50OmU9Z2xvYmFsVGhpcy5kb2N1bWVudH0pe3N1cGVyKCksdGhpcy4jSWk9dCx0aGlzLiNSaT1lfWdldCN3KCl7cmV0dXJuIHRoaXMuI01pfHw9bmV3IE1hcH1nZXQjRGkoKXtyZXR1cm4gdGhpcy4jUGl8fD1uZXcgTWFwfWdldCNMaSgpe2lmKCF0aGlzLiNraSl7Y29uc3QgdD10aGlzLiNSaS5jcmVhdGVFbGVtZW50KCJkaXYiKSx7c3R5bGU6ZX09dDtlLnZpc2liaWxpdHk9ImhpZGRlbiIsZS5jb250YWluPSJzdHJpY3QiLGUud2lkdGg9ZS5oZWlnaHQ9MCxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsZS50b3A9ZS5sZWZ0PTAsZS56SW5kZXg9LTE7Y29uc3QgaT10aGlzLiNSaS5jcmVhdGVFbGVtZW50TlMoSywic3ZnIik7aS5zZXRBdHRyaWJ1dGUoIndpZHRoIiwwKSxpLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwwKSx0aGlzLiNraT10aGlzLiNSaS5jcmVhdGVFbGVtZW50TlMoSywiZGVmcyIpLHQuYXBwZW5kKGkpLGkuYXBwZW5kKHRoaXMuI2tpKSx0aGlzLiNSaS5ib2R5LmFwcGVuZCh0KX1yZXR1cm4gdGhpcy4ja2l9I0ZpKHQpe2lmKDE9PT10Lmxlbmd0aCl7Y29uc3QgZT10WzBdLGk9bmV3IEFycmF5KDI1Nik7Zm9yKGxldCB0PTA7dDwyNTY7dCsrKWlbdF09ZVt0XS8yNTU7Y29uc3Qgcz1pLmpvaW4oIiwiKTtyZXR1cm5bcyxzLHNdfWNvbnN0W2UsaSxzXT10LG49bmV3IEFycmF5KDI1Nikscj1uZXcgQXJyYXkoMjU2KSxhPW5ldyBBcnJheSgyNTYpO2ZvcihsZXQgdD0wO3Q8MjU2O3QrKyluW3RdPWVbdF0vMjU1LHJbdF09aVt0XS8yNTUsYVt0XT1zW3RdLzI1NTtyZXR1cm5bbi5qb2luKCIsIiksci5qb2luKCIsIiksYS5qb2luKCIsIildfSNPaSh0KXtpZih2b2lkIDA9PT10aGlzLiNUaSl7dGhpcy4jVGk9IiI7Y29uc3QgdD10aGlzLiNSaS5VUkw7dCE9PXRoaXMuI1JpLmJhc2VVUkkmJihzdCh0KT93KCcjY3JlYXRlVXJsOiBpZ25vcmUgImRhdGE6Ii1VUkwgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuJyk6dGhpcy4jVGk9dC5zcGxpdCgiIyIsMSlbMF0pfXJldHVybmB1cmwoJHt0aGlzLiNUaX0jJHt0fSlgfWFkZEZpbHRlcih0KXtpZighdClyZXR1cm4ibm9uZSI7bGV0IGU9dGhpcy4jdy5nZXQodCk7aWYoZSlyZXR1cm4gZTtjb25zdFtpLHMsbl09dGhpcy4jRmkodCkscj0xPT09dC5sZW5ndGg/aTpgJHtpfSR7c30ke259YDtpZihlPXRoaXMuI3cuZ2V0KHIpLGUpcmV0dXJuIHRoaXMuI3cuc2V0KHQsZSksZTtjb25zdCBhPWBnXyR7dGhpcy4jSWl9X3RyYW5zZmVyX21hcF8ke3RoaXMuI3krK31gLG89dGhpcy4jT2koYSk7dGhpcy4jdy5zZXQodCxvKSx0aGlzLiN3LnNldChyLG8pO2NvbnN0IGg9dGhpcy4jTmkoYSk7cmV0dXJuIHRoaXMuI0JpKGkscyxuLGgpLG99YWRkSENNRmlsdGVyKHQsZSl7Y29uc3QgaT1gJHt0fS0ke2V9YCxzPSJiYXNlIjtsZXQgbj10aGlzLiNEaS5nZXQocyk7aWYobj8ua2V5PT09aSlyZXR1cm4gbi51cmw7aWYobj8obi5maWx0ZXI/LnJlbW92ZSgpLG4ua2V5PWksbi51cmw9Im5vbmUiLG4uZmlsdGVyPW51bGwpOihuPXtrZXk6aSx1cmw6Im5vbmUiLGZpbHRlcjpudWxsfSx0aGlzLiNEaS5zZXQocyxuKSksIXR8fCFlKXJldHVybiBuLnVybDtjb25zdCByPXRoaXMuI3ppKHQpO3Q9ei5tYWtlSGV4Q29sb3IoLi4ucik7Y29uc3QgYT10aGlzLiN6aShlKTtpZihlPXoubWFrZUhleENvbG9yKC4uLmEpLHRoaXMuI0xpLnN0eWxlLmNvbG9yPSIiLCIjMDAwMDAwIj09PXQmJiIjZmZmZmZmIj09PWV8fHQ9PT1lKXJldHVybiBuLnVybDtjb25zdCBvPW5ldyBBcnJheSgyNTYpO2ZvcihsZXQgdD0wO3Q8PTI1NTt0Kyspe2NvbnN0IGU9dC8yNTU7b1t0XT1lPD0uMDM5Mjg/ZS8xMi45MjooKGUrLjA1NSkvMS4wNTUpKioyLjR9Y29uc3QgaD1vLmpvaW4oIiwiKSxsPWBnXyR7dGhpcy4jSWl9X2hjbV9maWx0ZXJgLGM9bi5maWx0ZXI9dGhpcy4jTmkobCk7dGhpcy4jQmkoaCxoLGgsYyksdGhpcy4jSGkoYyk7Y29uc3QgZD0odCxlKT0+e2NvbnN0IGk9clt0XS8yNTUscz1hW3RdLzI1NSxuPW5ldyBBcnJheShlKzEpO2ZvcihsZXQgdD0wO3Q8PWU7dCsrKW5bdF09aSt0L2UqKHMtaSk7cmV0dXJuIG4uam9pbigiLCIpfTtyZXR1cm4gdGhpcy4jQmkoZCgwLDUpLGQoMSw1KSxkKDIsNSksYyksbi51cmw9dGhpcy4jT2kobCksbi51cmx9YWRkQWxwaGFGaWx0ZXIodCl7bGV0IGU9dGhpcy4jdy5nZXQodCk7aWYoZSlyZXR1cm4gZTtjb25zdFtpXT10aGlzLiNGaShbdF0pLHM9YGFscGhhXyR7aX1gO2lmKGU9dGhpcy4jdy5nZXQocyksZSlyZXR1cm4gdGhpcy4jdy5zZXQodCxlKSxlO2NvbnN0IG49YGdfJHt0aGlzLiNJaX1fYWxwaGFfbWFwXyR7dGhpcy4jeSsrfWAscj10aGlzLiNPaShuKTt0aGlzLiN3LnNldCh0LHIpLHRoaXMuI3cuc2V0KHMscik7Y29uc3QgYT10aGlzLiNOaShuKTtyZXR1cm4gdGhpcy4jamkoaSxhKSxyfWFkZEx1bWlub3NpdHlGaWx0ZXIodCl7bGV0IGUsaSxzPXRoaXMuI3cuZ2V0KHR8fCJsdW1pbm9zaXR5Iik7aWYocylyZXR1cm4gcztpZih0PyhbZV09dGhpcy4jRmkoW3RdKSxpPWBsdW1pbm9zaXR5XyR7ZX1gKTppPSJsdW1pbm9zaXR5IixzPXRoaXMuI3cuZ2V0KGkpLHMpcmV0dXJuIHRoaXMuI3cuc2V0KHQscykscztjb25zdCBuPWBnXyR7dGhpcy4jSWl9X2x1bWlub3NpdHlfbWFwXyR7dGhpcy4jeSsrfWAscj10aGlzLiNPaShuKTt0aGlzLiN3LnNldCh0LHIpLHRoaXMuI3cuc2V0KGkscik7Y29uc3QgYT10aGlzLiNOaShuKTtyZXR1cm4gdGhpcy4jVWkoYSksdCYmdGhpcy4jamkoZSxhKSxyfWFkZEhpZ2hsaWdodEhDTUZpbHRlcih0LGUsaSxzLG4pe2NvbnN0IHI9YCR7ZX0tJHtpfS0ke3N9LSR7bn1gO2xldCBhPXRoaXMuI0RpLmdldCh0KTtpZihhPy5rZXk9PT1yKXJldHVybiBhLnVybDtpZihhPyhhLmZpbHRlcj8ucmVtb3ZlKCksYS5rZXk9cixhLnVybD0ibm9uZSIsYS5maWx0ZXI9bnVsbCk6KGE9e2tleTpyLHVybDoibm9uZSIsZmlsdGVyOm51bGx9LHRoaXMuI0RpLnNldCh0LGEpKSwhZXx8IWkpcmV0dXJuIGEudXJsO2NvbnN0W28saF09W2UsaV0ubWFwKHRoaXMuI3ppLmJpbmQodGhpcykpO2xldCBsPU1hdGgucm91bmQoLjIxMjYqb1swXSsuNzE1MipvWzFdKy4wNzIyKm9bMl0pLGM9TWF0aC5yb3VuZCguMjEyNipoWzBdKy43MTUyKmhbMV0rLjA3MjIqaFsyXSksW2QsdV09W3Msbl0ubWFwKHRoaXMuI3ppLmJpbmQodGhpcykpO2M8bCYmKFtsLGMsZCx1XT1bYyxsLHUsZF0pLHRoaXMuI0xpLnN0eWxlLmNvbG9yPSIiO2NvbnN0IHA9KHQsZSxpKT0+e2NvbnN0IHM9bmV3IEFycmF5KDI1Niksbj0oYy1sKS9pLHI9dC8yNTUsYT0oZS10KS8oMjU1KmkpO2xldCBvPTA7Zm9yKGxldCB0PTA7dDw9aTt0Kyspe2NvbnN0IGU9TWF0aC5yb3VuZChsK3QqbiksaT1yK3QqYTtmb3IobGV0IHQ9bzt0PD1lO3QrKylzW3RdPWk7bz1lKzF9Zm9yKGxldCB0PW87dDwyNTY7dCsrKXNbdF09c1tvLTFdO3JldHVybiBzLmpvaW4oIiwiKX0sZz1gZ18ke3RoaXMuI0lpfV9oY21fJHt0fV9maWx0ZXJgLGY9YS5maWx0ZXI9dGhpcy4jTmkoZyk7cmV0dXJuIHRoaXMuI0hpKGYpLHRoaXMuI0JpKHAoZFswXSx1WzBdLDUpLHAoZFsxXSx1WzFdLDUpLHAoZFsyXSx1WzJdLDUpLGYpLGEudXJsPXRoaXMuI09pKGcpLGEudXJsfWRlc3Ryb3kodD0hMSl7dCYmMCE9PXRoaXMuI0RpLnNpemV8fCh0aGlzLiNraSYmKHRoaXMuI2tpLnBhcmVudE5vZGUucGFyZW50Tm9kZS5yZW1vdmUoKSx0aGlzLiNraT1udWxsKSx0aGlzLiNNaSYmKHRoaXMuI01pLmNsZWFyKCksdGhpcy4jTWk9bnVsbCksdGhpcy4jeT0wKX0jVWkodCl7Y29uc3QgZT10aGlzLiNSaS5jcmVhdGVFbGVtZW50TlMoSywiZmVDb2xvck1hdHJpeCIpO2Uuc2V0QXR0cmlidXRlKCJ0eXBlIiwibWF0cml4IiksZS5zZXRBdHRyaWJ1dGUoInZhbHVlcyIsIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMyAwLjU5IDAuMTEgMCAwIiksdC5hcHBlbmQoZSl9I0hpKHQpe2NvbnN0IGU9dGhpcy4jUmkuY3JlYXRlRWxlbWVudE5TKEssImZlQ29sb3JNYXRyaXgiKTtlLnNldEF0dHJpYnV0ZSgidHlwZSIsIm1hdHJpeCIpLGUuc2V0QXR0cmlidXRlKCJ2YWx1ZXMiLCIwLjIxMjYgMC43MTUyIDAuMDcyMiAwIDAgMC4yMTI2IDAuNzE1MiAwLjA3MjIgMCAwIDAuMjEyNiAwLjcxNTIgMC4wNzIyIDAgMCAwIDAgMCAxIDAiKSx0LmFwcGVuZChlKX0jTmkodCl7Y29uc3QgZT10aGlzLiNSaS5jcmVhdGVFbGVtZW50TlMoSywiZmlsdGVyIik7cmV0dXJuIGUuc2V0QXR0cmlidXRlKCJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMiLCJzUkdCIiksZS5zZXRBdHRyaWJ1dGUoImlkIix0KSx0aGlzLiNMaS5hcHBlbmQoZSksZX0jJGkodCxlLGkpe2NvbnN0IHM9dGhpcy4jUmkuY3JlYXRlRWxlbWVudE5TKEssZSk7cy5zZXRBdHRyaWJ1dGUoInR5cGUiLCJkaXNjcmV0ZSIpLHMuc2V0QXR0cmlidXRlKCJ0YWJsZVZhbHVlcyIsaSksdC5hcHBlbmQocyl9I0JpKHQsZSxpLHMpe2NvbnN0IG49dGhpcy4jUmkuY3JlYXRlRWxlbWVudE5TKEssImZlQ29tcG9uZW50VHJhbnNmZXIiKTtzLmFwcGVuZChuKSx0aGlzLiMkaShuLCJmZUZ1bmNSIix0KSx0aGlzLiMkaShuLCJmZUZ1bmNHIixlKSx0aGlzLiMkaShuLCJmZUZ1bmNCIixpKX0jamkodCxlKXtjb25zdCBpPXRoaXMuI1JpLmNyZWF0ZUVsZW1lbnROUyhLLCJmZUNvbXBvbmVudFRyYW5zZmVyIik7ZS5hcHBlbmQoaSksdGhpcy4jJGkoaSwiZmVGdW5jQSIsdCl9I3ppKHQpe3JldHVybiB0aGlzLiNMaS5zdHlsZS5jb2xvcj10LGd0KGdldENvbXB1dGVkU3R5bGUodGhpcy4jTGkpLmdldFByb3BlcnR5VmFsdWUoImNvbG9yIikpfX0saWk9bj9jbGFzcyBleHRlbmRzIHF7X2ZldGNoRGF0YSh0KXtyZXR1cm4gJHQodCl9fTpaO2Z1bmN0aW9uIHNpKHQ9e30peyJzdHJpbmciPT10eXBlb2YgdHx8dCBpbnN0YW5jZW9mIFVSTD90PXt1cmw6dH06KHQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcnx8QXJyYXlCdWZmZXIuaXNWaWV3KHQpKSYmKHQ9e2RhdGE6dH0pO2NvbnN0IGU9bmV3IHJpLHtkb2NJZDppfT1lLHM9dC51cmw/ZnVuY3Rpb24odCl7aWYodCBpbnN0YW5jZW9mIFVSTClyZXR1cm4gdC5ocmVmO3RyeXtyZXR1cm4gbmV3IFVSTCh0LHdpbmRvdy5sb2NhdGlvbikuaHJlZn1jYXRjaHtpZihuJiYic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIHR9dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIFBERiB1cmwgZGF0YTogZWl0aGVyIHN0cmluZyBvciBVUkwtb2JqZWN0IGlzIGV4cGVjdGVkIGluIHRoZSB1cmwgcHJvcGVydHkuIil9KHQudXJsKTpudWxsLHI9dC5kYXRhP2Z1bmN0aW9uKHQpe2lmKG4mJiJ1bmRlZmluZWQiIT10eXBlb2YgQnVmZmVyJiZ0IGluc3RhbmNlb2YgQnVmZmVyKXRocm93IG5ldyBFcnJvcigiUGxlYXNlIHByb3ZpZGUgYmluYXJ5IGRhdGEgYXMgYFVpbnQ4QXJyYXlgLCByYXRoZXIgdGhhbiBgQnVmZmVyYC4iKTtpZih0IGluc3RhbmNlb2YgVWludDhBcnJheSYmdC5ieXRlTGVuZ3RoPT09dC5idWZmZXIuYnl0ZUxlbmd0aClyZXR1cm4gdDtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIEYodCk7aWYodCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyfHxBcnJheUJ1ZmZlci5pc1ZpZXcodCl8fCJvYmplY3QiPT10eXBlb2YgdCYmIWlzTmFOKHQ/Lmxlbmd0aCkpcmV0dXJuIG5ldyBVaW50OEFycmF5KHQpO3Rocm93IG5ldyBFcnJvcigiSW52YWxpZCBQREYgYmluYXJ5IGRhdGE6IGVpdGhlciBUeXBlZEFycmF5LCBzdHJpbmcsIG9yIGFycmF5LWxpa2Ugb2JqZWN0IGlzIGV4cGVjdGVkIGluIHRoZSBkYXRhIHByb3BlcnR5LiIpfSh0LmRhdGEpOm51bGwsYT10Lmh0dHBIZWFkZXJzfHxudWxsLG89ITA9PT10LndpdGhDcmVkZW50aWFscyxoPXQucGFzc3dvcmQ/P251bGwsbD10LnJhbmdlIGluc3RhbmNlb2YgYWk/dC5yYW5nZTpudWxsLGM9TnVtYmVyLmlzSW50ZWdlcih0LnJhbmdlQ2h1bmtTaXplKSYmdC5yYW5nZUNodW5rU2l6ZT4wP3QucmFuZ2VDaHVua1NpemU6SmU7bGV0IGQ9dC53b3JrZXIgaW5zdGFuY2VvZiBjaT90LndvcmtlcjpudWxsO2NvbnN0IHU9dC52ZXJib3NpdHkscD0ic3RyaW5nIiE9dHlwZW9mIHQuZG9jQmFzZVVybHx8c3QodC5kb2NCYXNlVXJsKT9udWxsOnQuZG9jQmFzZVVybCxnPSJzdHJpbmciPT10eXBlb2YgdC5jTWFwVXJsP3QuY01hcFVybDpudWxsLGY9ITEhPT10LmNNYXBQYWNrZWQsbT10LkNNYXBSZWFkZXJGYWN0b3J5fHx0aSxiPSJzdHJpbmciPT10eXBlb2YgdC5zdGFuZGFyZEZvbnREYXRhVXJsP3Quc3RhbmRhcmRGb250RGF0YVVybDpudWxsLHk9dC5TdGFuZGFyZEZvbnREYXRhRmFjdG9yeXx8aWksQT0hMCE9PXQuc3RvcEF0RXJyb3JzLHc9TnVtYmVyLmlzSW50ZWdlcih0Lm1heEltYWdlU2l6ZSkmJnQubWF4SW1hZ2VTaXplPi0xP3QubWF4SW1hZ2VTaXplOi0xLHg9ITEhPT10LmlzRXZhbFN1cHBvcnRlZCxfPSJib29sZWFuIj09dHlwZW9mIHQuaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQ/dC5pc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZDohbixFPU51bWJlci5pc0ludGVnZXIodC5jYW52YXNNYXhBcmVhSW5CeXRlcyk/dC5jYW52YXNNYXhBcmVhSW5CeXRlczotMSxDPSJib29sZWFuIj09dHlwZW9mIHQuZGlzYWJsZUZvbnRGYWNlP3QuZGlzYWJsZUZvbnRGYWNlOm4sUz0hMD09PXQuZm9udEV4dHJhUHJvcGVydGllcyxUPSEwPT09dC5lbmFibGVYZmEsTT10Lm93bmVyRG9jdW1lbnR8fGdsb2JhbFRoaXMuZG9jdW1lbnQsaz0hMD09PXQuZGlzYWJsZVJhbmdlLEk9ITA9PT10LmRpc2FibGVTdHJlYW0sUj0hMD09PXQuZGlzYWJsZUF1dG9GZXRjaCxQPSEwPT09dC5wZGZCdWcsRD10LkNhbnZhc0ZhY3Rvcnl8fFplLEw9dC5GaWx0ZXJGYWN0b3J5fHxlaSxPPSEwPT09dC5lbmFibGVIV0EsTj1sP2wubGVuZ3RoOnQubGVuZ3RoPz9OYU4sQj0iYm9vbGVhbiI9PXR5cGVvZiB0LnVzZVN5c3RlbUZvbnRzP3QudXNlU3lzdGVtRm9udHM6IW4mJiFDLHo9ImJvb2xlYW4iPT10eXBlb2YgdC51c2VXb3JrZXJGZXRjaD90LnVzZVdvcmtlckZldGNoOm09PT1KJiZ5PT09WiYmZyYmYiYmaHQoZyxkb2N1bWVudC5iYXNlVVJJKSYmaHQoYixkb2N1bWVudC5iYXNlVVJJKTt0LmNhbnZhc0ZhY3RvcnkmJmN0KCJgY2FudmFzRmFjdG9yeWAtaW5zdGFuY2Ugb3B0aW9uLCBwbGVhc2UgdXNlIGBDYW52YXNGYWN0b3J5YCBpbnN0ZWFkLiIpLHQuZmlsdGVyRmFjdG9yeSYmY3QoImBmaWx0ZXJGYWN0b3J5YC1pbnN0YW5jZSBvcHRpb24sIHBsZWFzZSB1c2UgYEZpbHRlckZhY3RvcnlgIGluc3RlYWQuIiksdih1KTtjb25zdCBIPXtjYW52YXNGYWN0b3J5Om5ldyBEKHtvd25lckRvY3VtZW50Ok0sZW5hYmxlSFdBOk99KSxmaWx0ZXJGYWN0b3J5Om5ldyBMKHtkb2NJZDppLG93bmVyRG9jdW1lbnQ6TX0pLGNNYXBSZWFkZXJGYWN0b3J5Ono/bnVsbDpuZXcgbSh7YmFzZVVybDpnLGlzQ29tcHJlc3NlZDpmfSksc3RhbmRhcmRGb250RGF0YUZhY3Rvcnk6ej9udWxsOm5ldyB5KHtiYXNlVXJsOmJ9KX07aWYoIWQpe2NvbnN0IHQ9e3ZlcmJvc2l0eTp1LHBvcnQ6bWUud29ya2VyUG9ydH07ZD10LnBvcnQ/Y2kuZnJvbVBvcnQodCk6bmV3IGNpKHQpLGUuX3dvcmtlcj1kfWNvbnN0IGo9e2RvY0lkOmksYXBpVmVyc2lvbjoiNC43Ljc2IixkYXRhOnIscGFzc3dvcmQ6aCxkaXNhYmxlQXV0b0ZldGNoOlIscmFuZ2VDaHVua1NpemU6YyxsZW5ndGg6Tixkb2NCYXNlVXJsOnAsZW5hYmxlWGZhOlQsZXZhbHVhdG9yT3B0aW9uczp7bWF4SW1hZ2VTaXplOncsZGlzYWJsZUZvbnRGYWNlOkMsaWdub3JlRXJyb3JzOkEsaXNFdmFsU3VwcG9ydGVkOngsaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQ6XyxjYW52YXNNYXhBcmVhSW5CeXRlczpFLGZvbnRFeHRyYVByb3BlcnRpZXM6Uyx1c2VTeXN0ZW1Gb250czpCLGNNYXBVcmw6ej9nOm51bGwsc3RhbmRhcmRGb250RGF0YVVybDp6P2I6bnVsbH19LFU9e2Rpc2FibGVGb250RmFjZTpDLGZvbnRFeHRyYVByb3BlcnRpZXM6Uyxvd25lckRvY3VtZW50Ok0scGRmQnVnOlAsc3R5bGVFbGVtZW50Om51bGwsbG9hZGluZ1BhcmFtczp7ZGlzYWJsZUF1dG9GZXRjaDpSLGVuYWJsZVhmYTpUfX07cmV0dXJuIGQucHJvbWlzZS50aGVuKChmdW5jdGlvbigpe2lmKGUuZGVzdHJveWVkKXRocm93IG5ldyBFcnJvcigiTG9hZGluZyBhYm9ydGVkIik7aWYoZC5kZXN0cm95ZWQpdGhyb3cgbmV3IEVycm9yKCJXb3JrZXIgd2FzIGRlc3Ryb3llZCIpO2NvbnN0IHQ9ZC5tZXNzYWdlSGFuZGxlci5zZW5kV2l0aFByb21pc2UoIkdldERvY1JlcXVlc3QiLGoscj9bci5idWZmZXJdOm51bGwpO2xldCBoO2lmKGwpaD1uZXcgX2UobCx7ZGlzYWJsZVJhbmdlOmssZGlzYWJsZVN0cmVhbTpJfSk7ZWxzZSBpZighcil7aWYoIXMpdGhyb3cgbmV3IEVycm9yKCJnZXREb2N1bWVudCAtIG5vIGB1cmxgIHBhcmFtZXRlciBwcm92aWRlZC4iKTtsZXQgdDt0PW4/InVuZGVmaW5lZCIhPXR5cGVvZiBmZXRjaCYmInVuZGVmaW5lZCIhPXR5cGVvZiBSZXNwb25zZSYmImJvZHkiaW4gUmVzcG9uc2UucHJvdG90eXBlJiZodChzKT9EZTpVZTpodChzKT9EZTpOZSxoPW5ldyB0KHt1cmw6cyxsZW5ndGg6TixodHRwSGVhZGVyczphLHdpdGhDcmVkZW50aWFsczpvLHJhbmdlQ2h1bmtTaXplOmMsZGlzYWJsZVJhbmdlOmssZGlzYWJsZVN0cmVhbTpJfSl9cmV0dXJuIHQudGhlbigodD0+e2lmKGUuZGVzdHJveWVkKXRocm93IG5ldyBFcnJvcigiTG9hZGluZyBhYm9ydGVkIik7aWYoZC5kZXN0cm95ZWQpdGhyb3cgbmV3IEVycm9yKCJXb3JrZXIgd2FzIGRlc3Ryb3llZCIpO2NvbnN0IHM9bmV3IHZlKGksdCxkLnBvcnQpLG49bmV3IGRpKHMsZSxoLFUsSCk7ZS5fdHJhbnNwb3J0PW4scy5zZW5kKCJSZWFkeSIsbnVsbCl9KSl9KSkuY2F0Y2goZS5fY2FwYWJpbGl0eS5yZWplY3QpLGV9ZnVuY3Rpb24gbmkodCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiZOdW1iZXIuaXNJbnRlZ2VyKHQ/Lm51bSkmJnQubnVtPj0wJiZOdW1iZXIuaXNJbnRlZ2VyKHQ/LmdlbikmJnQuZ2VuPj0wfWNsYXNzIHJpe3N0YXRpYyNJaT0wO2NvbnN0cnVjdG9yKCl7dGhpcy5fY2FwYWJpbGl0eT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKSx0aGlzLl90cmFuc3BvcnQ9bnVsbCx0aGlzLl93b3JrZXI9bnVsbCx0aGlzLmRvY0lkPSJkIityaS4jSWkrKyx0aGlzLmRlc3Ryb3llZD0hMSx0aGlzLm9uUGFzc3dvcmQ9bnVsbCx0aGlzLm9uUHJvZ3Jlc3M9bnVsbH1nZXQgcHJvbWlzZSgpe3JldHVybiB0aGlzLl9jYXBhYmlsaXR5LnByb21pc2V9YXN5bmMgZGVzdHJveSgpe3RoaXMuZGVzdHJveWVkPSEwO3RyeXt0aGlzLl93b3JrZXI/LnBvcnQmJih0aGlzLl93b3JrZXIuX3BlbmRpbmdEZXN0cm95PSEwKSxhd2FpdCh0aGlzLl90cmFuc3BvcnQ/LmRlc3Ryb3koKSl9Y2F0Y2godCl7dGhyb3cgdGhpcy5fd29ya2VyPy5wb3J0JiZkZWxldGUgdGhpcy5fd29ya2VyLl9wZW5kaW5nRGVzdHJveSx0fXRoaXMuX3RyYW5zcG9ydD1udWxsLHRoaXMuX3dvcmtlciYmKHRoaXMuX3dvcmtlci5kZXN0cm95KCksdGhpcy5fd29ya2VyPW51bGwpfX1jbGFzcyBhaXtjb25zdHJ1Y3Rvcih0LGUsaT0hMSxzPW51bGwpe3RoaXMubGVuZ3RoPXQsdGhpcy5pbml0aWFsRGF0YT1lLHRoaXMucHJvZ3Jlc3NpdmVEb25lPWksdGhpcy5jb250ZW50RGlzcG9zaXRpb25GaWxlbmFtZT1zLHRoaXMuX3JhbmdlTGlzdGVuZXJzPVtdLHRoaXMuX3Byb2dyZXNzTGlzdGVuZXJzPVtdLHRoaXMuX3Byb2dyZXNzaXZlUmVhZExpc3RlbmVycz1bXSx0aGlzLl9wcm9ncmVzc2l2ZURvbmVMaXN0ZW5lcnM9W10sdGhpcy5fcmVhZHlDYXBhYmlsaXR5PVByb21pc2Uud2l0aFJlc29sdmVycygpfWFkZFJhbmdlTGlzdGVuZXIodCl7dGhpcy5fcmFuZ2VMaXN0ZW5lcnMucHVzaCh0KX1hZGRQcm9ncmVzc0xpc3RlbmVyKHQpe3RoaXMuX3Byb2dyZXNzTGlzdGVuZXJzLnB1c2godCl9YWRkUHJvZ3Jlc3NpdmVSZWFkTGlzdGVuZXIodCl7dGhpcy5fcHJvZ3Jlc3NpdmVSZWFkTGlzdGVuZXJzLnB1c2godCl9YWRkUHJvZ3Jlc3NpdmVEb25lTGlzdGVuZXIodCl7dGhpcy5fcHJvZ3Jlc3NpdmVEb25lTGlzdGVuZXJzLnB1c2godCl9b25EYXRhUmFuZ2UodCxlKXtmb3IoY29uc3QgaSBvZiB0aGlzLl9yYW5nZUxpc3RlbmVycylpKHQsZSl9b25EYXRhUHJvZ3Jlc3ModCxlKXt0aGlzLl9yZWFkeUNhcGFiaWxpdHkucHJvbWlzZS50aGVuKCgoKT0+e2Zvcihjb25zdCBpIG9mIHRoaXMuX3Byb2dyZXNzTGlzdGVuZXJzKWkodCxlKX0pKX1vbkRhdGFQcm9ncmVzc2l2ZVJlYWQodCl7dGhpcy5fcmVhZHlDYXBhYmlsaXR5LnByb21pc2UudGhlbigoKCk9Pntmb3IoY29uc3QgZSBvZiB0aGlzLl9wcm9ncmVzc2l2ZVJlYWRMaXN0ZW5lcnMpZSh0KX0pKX1vbkRhdGFQcm9ncmVzc2l2ZURvbmUoKXt0aGlzLl9yZWFkeUNhcGFiaWxpdHkucHJvbWlzZS50aGVuKCgoKT0+e2Zvcihjb25zdCB0IG9mIHRoaXMuX3Byb2dyZXNzaXZlRG9uZUxpc3RlbmVycyl0KCl9KSl9dHJhbnNwb3J0UmVhZHkoKXt0aGlzLl9yZWFkeUNhcGFiaWxpdHkucmVzb2x2ZSgpfXJlcXVlc3REYXRhUmFuZ2UodCxlKXt4KCJBYnN0cmFjdCBtZXRob2QgUERGRGF0YVJhbmdlVHJhbnNwb3J0LnJlcXVlc3REYXRhUmFuZ2UiKX1hYm9ydCgpe319Y2xhc3Mgb2l7Y29uc3RydWN0b3IodCxlKXt0aGlzLl9wZGZJbmZvPXQsdGhpcy5fdHJhbnNwb3J0PWV9Z2V0IGFubm90YXRpb25TdG9yYWdlKCl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydC5hbm5vdGF0aW9uU3RvcmFnZX1nZXQgY2FudmFzRmFjdG9yeSgpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuY2FudmFzRmFjdG9yeX1nZXQgZmlsdGVyRmFjdG9yeSgpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuZmlsdGVyRmFjdG9yeX1nZXQgbnVtUGFnZXMoKXtyZXR1cm4gdGhpcy5fcGRmSW5mby5udW1QYWdlc31nZXQgZmluZ2VycHJpbnRzKCl7cmV0dXJuIHRoaXMuX3BkZkluZm8uZmluZ2VycHJpbnRzfWdldCBpc1B1cmVYZmEoKXtyZXR1cm4gQyh0aGlzLCJpc1B1cmVYZmEiLCEhdGhpcy5fdHJhbnNwb3J0Ll9odG1sRm9yWGZhKX1nZXQgYWxsWGZhSHRtbCgpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuX2h0bWxGb3JYZmF9Z2V0UGFnZSh0KXtyZXR1cm4gdGhpcy5fdHJhbnNwb3J0LmdldFBhZ2UodCl9Z2V0UGFnZUluZGV4KHQpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuZ2V0UGFnZUluZGV4KHQpfWdldERlc3RpbmF0aW9ucygpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuZ2V0RGVzdGluYXRpb25zKCl9Z2V0RGVzdGluYXRpb24odCl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydC5nZXREZXN0aW5hdGlvbih0KX1nZXRQYWdlTGFiZWxzKCl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydC5nZXRQYWdlTGFiZWxzKCl9Z2V0UGFnZUxheW91dCgpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuZ2V0UGFnZUxheW91dCgpfWdldFBhZ2VNb2RlKCl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydC5nZXRQYWdlTW9kZSgpfWdldFZpZXdlclByZWZlcmVuY2VzKCl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydC5nZXRWaWV3ZXJQcmVmZXJlbmNlcygpfWdldE9wZW5BY3Rpb24oKXtyZXR1cm4gdGhpcy5fdHJhbnNwb3J0LmdldE9wZW5BY3Rpb24oKX1nZXRBdHRhY2htZW50cygpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuZ2V0QXR0YWNobWVudHMoKX1nZXRKU0FjdGlvbnMoKXtyZXR1cm4gdGhpcy5fdHJhbnNwb3J0LmdldERvY0pTQWN0aW9ucygpfWdldE91dGxpbmUoKXtyZXR1cm4gdGhpcy5fdHJhbnNwb3J0LmdldE91dGxpbmUoKX1nZXRPcHRpb25hbENvbnRlbnRDb25maWcoe2ludGVudDp0PSJkaXNwbGF5In09e30pe2NvbnN0e3JlbmRlcmluZ0ludGVudDplfT10aGlzLl90cmFuc3BvcnQuZ2V0UmVuZGVyaW5nSW50ZW50KHQpO3JldHVybiB0aGlzLl90cmFuc3BvcnQuZ2V0T3B0aW9uYWxDb250ZW50Q29uZmlnKGUpfWdldFBlcm1pc3Npb25zKCl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydC5nZXRQZXJtaXNzaW9ucygpfWdldE1ldGFkYXRhKCl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydC5nZXRNZXRhZGF0YSgpfWdldE1hcmtJbmZvKCl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydC5nZXRNYXJrSW5mbygpfWdldERhdGEoKXtyZXR1cm4gdGhpcy5fdHJhbnNwb3J0LmdldERhdGEoKX1zYXZlRG9jdW1lbnQoKXtyZXR1cm4gdGhpcy5fdHJhbnNwb3J0LnNhdmVEb2N1bWVudCgpfWdldERvd25sb2FkSW5mbygpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuZG93bmxvYWRJbmZvQ2FwYWJpbGl0eS5wcm9taXNlfWNsZWFudXAodD0hMSl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydC5zdGFydENsZWFudXAodHx8dGhpcy5pc1B1cmVYZmEpfWRlc3Ryb3koKXtyZXR1cm4gdGhpcy5sb2FkaW5nVGFzay5kZXN0cm95KCl9Y2FjaGVkUGFnZU51bWJlcih0KXtyZXR1cm4gdGhpcy5fdHJhbnNwb3J0LmNhY2hlZFBhZ2VOdW1iZXIodCl9Z2V0IGxvYWRpbmdQYXJhbXMoKXtyZXR1cm4gdGhpcy5fdHJhbnNwb3J0LmxvYWRpbmdQYXJhbXN9Z2V0IGxvYWRpbmdUYXNrKCl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydC5sb2FkaW5nVGFza31nZXRGaWVsZE9iamVjdHMoKXtyZXR1cm4gdGhpcy5fdHJhbnNwb3J0LmdldEZpZWxkT2JqZWN0cygpfWhhc0pTQWN0aW9ucygpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuaGFzSlNBY3Rpb25zKCl9Z2V0Q2FsY3VsYXRpb25PcmRlcklkcygpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuZ2V0Q2FsY3VsYXRpb25PcmRlcklkcygpfX1jbGFzcyBoaXsjV2k9bnVsbDsjR2k9ITE7Y29uc3RydWN0b3IodCxlLGkscz0hMSl7dGhpcy5fcGFnZUluZGV4PXQsdGhpcy5fcGFnZUluZm89ZSx0aGlzLl90cmFuc3BvcnQ9aSx0aGlzLl9zdGF0cz1zP25ldyBvdDpudWxsLHRoaXMuX3BkZkJ1Zz1zLHRoaXMuY29tbW9uT2Jqcz1pLmNvbW1vbk9ianMsdGhpcy5vYmpzPW5ldyBwaSx0aGlzLl9tYXliZUNsZWFudXBBZnRlclJlbmRlcj0hMSx0aGlzLl9pbnRlbnRTdGF0ZXM9bmV3IE1hcCx0aGlzLmRlc3Ryb3llZD0hMX1nZXQgcGFnZU51bWJlcigpe3JldHVybiB0aGlzLl9wYWdlSW5kZXgrMX1nZXQgcm90YXRlKCl7cmV0dXJuIHRoaXMuX3BhZ2VJbmZvLnJvdGF0ZX1nZXQgcmVmKCl7cmV0dXJuIHRoaXMuX3BhZ2VJbmZvLnJlZn1nZXQgdXNlclVuaXQoKXtyZXR1cm4gdGhpcy5fcGFnZUluZm8udXNlclVuaXR9Z2V0IHZpZXcoKXtyZXR1cm4gdGhpcy5fcGFnZUluZm8udmlld31nZXRWaWV3cG9ydCh7c2NhbGU6dCxyb3RhdGlvbjplPXRoaXMucm90YXRlLG9mZnNldFg6aT0wLG9mZnNldFk6cz0wLGRvbnRGbGlwOm49ITF9PXt9KXtyZXR1cm4gbmV3IGV0KHt2aWV3Qm94OnRoaXMudmlldyxzY2FsZTp0LHJvdGF0aW9uOmUsb2Zmc2V0WDppLG9mZnNldFk6cyxkb250RmxpcDpufSl9Z2V0QW5ub3RhdGlvbnMoe2ludGVudDp0PSJkaXNwbGF5In09e30pe2NvbnN0e3JlbmRlcmluZ0ludGVudDplfT10aGlzLl90cmFuc3BvcnQuZ2V0UmVuZGVyaW5nSW50ZW50KHQpO3JldHVybiB0aGlzLl90cmFuc3BvcnQuZ2V0QW5ub3RhdGlvbnModGhpcy5fcGFnZUluZGV4LGUpfWdldEpTQWN0aW9ucygpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuZ2V0UGFnZUpTQWN0aW9ucyh0aGlzLl9wYWdlSW5kZXgpfWdldCBmaWx0ZXJGYWN0b3J5KCl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydC5maWx0ZXJGYWN0b3J5fWdldCBpc1B1cmVYZmEoKXtyZXR1cm4gQyh0aGlzLCJpc1B1cmVYZmEiLCEhdGhpcy5fdHJhbnNwb3J0Ll9odG1sRm9yWGZhKX1hc3luYyBnZXRYZmEoKXtyZXR1cm4gdGhpcy5fdHJhbnNwb3J0Ll9odG1sRm9yWGZhPy5jaGlsZHJlblt0aGlzLl9wYWdlSW5kZXhdfHxudWxsfXJlbmRlcih7Y2FudmFzQ29udGV4dDp0LHZpZXdwb3J0OmUsaW50ZW50Omk9ImRpc3BsYXkiLGFubm90YXRpb25Nb2RlOnM9aC5FTkFCTEUsdHJhbnNmb3JtOm49bnVsbCxiYWNrZ3JvdW5kOnI9bnVsbCxvcHRpb25hbENvbnRlbnRDb25maWdQcm9taXNlOmE9bnVsbCxhbm5vdGF0aW9uQ2FudmFzTWFwOm89bnVsbCxwYWdlQ29sb3JzOmw9bnVsbCxwcmludEFubm90YXRpb25TdG9yYWdlOmM9bnVsbCxpc0VkaXRpbmc6ZD0hMX0pe3RoaXMuX3N0YXRzPy50aW1lKCJPdmVyYWxsIik7Y29uc3QgdT10aGlzLl90cmFuc3BvcnQuZ2V0UmVuZGVyaW5nSW50ZW50KGkscyxjLGQpLHtyZW5kZXJpbmdJbnRlbnQ6cCxjYWNoZUtleTpnfT11O3RoaXMuI0dpPSExLHRoaXMuI1ZpKCksYXx8PXRoaXMuX3RyYW5zcG9ydC5nZXRPcHRpb25hbENvbnRlbnRDb25maWcocCk7bGV0IGY9dGhpcy5faW50ZW50U3RhdGVzLmdldChnKTtmfHwoZj1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX2ludGVudFN0YXRlcy5zZXQoZyxmKSksZi5zdHJlYW1SZWFkZXJDYW5jZWxUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KGYuc3RyZWFtUmVhZGVyQ2FuY2VsVGltZW91dCksZi5zdHJlYW1SZWFkZXJDYW5jZWxUaW1lb3V0PW51bGwpO2NvbnN0IG09ISEoNCZwKTtmLmRpc3BsYXlSZWFkeUNhcGFiaWxpdHl8fChmLmRpc3BsYXlSZWFkeUNhcGFiaWxpdHk9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCksZi5vcGVyYXRvckxpc3Q9e2ZuQXJyYXk6W10sYXJnc0FycmF5OltdLGxhc3RDaHVuazohMSxzZXBhcmF0ZUFubm90czpudWxsfSx0aGlzLl9zdGF0cz8udGltZSgiUGFnZSBSZXF1ZXN0IiksdGhpcy5fcHVtcE9wZXJhdG9yTGlzdCh1KSk7Y29uc3QgYj10PT57Zi5yZW5kZXJUYXNrcy5kZWxldGUodiksKHRoaXMuX21heWJlQ2xlYW51cEFmdGVyUmVuZGVyfHxtKSYmKHRoaXMuI0dpPSEwKSx0aGlzLiNxaSghbSksdD8odi5jYXBhYmlsaXR5LnJlamVjdCh0KSx0aGlzLl9hYm9ydE9wZXJhdG9yTGlzdCh7aW50ZW50U3RhdGU6ZixyZWFzb246dCBpbnN0YW5jZW9mIEVycm9yP3Q6bmV3IEVycm9yKHQpfSkpOnYuY2FwYWJpbGl0eS5yZXNvbHZlKCksdGhpcy5fc3RhdHMmJih0aGlzLl9zdGF0cy50aW1lRW5kKCJSZW5kZXJpbmciKSx0aGlzLl9zdGF0cy50aW1lRW5kKCJPdmVyYWxsIiksZ2xvYmFsVGhpcy5TdGF0cz8uZW5hYmxlZCYmZ2xvYmFsVGhpcy5TdGF0cy5hZGQodGhpcy5wYWdlTnVtYmVyLHRoaXMuX3N0YXRzKSl9LHY9bmV3IGZpKHtjYWxsYmFjazpiLHBhcmFtczp7Y2FudmFzQ29udGV4dDp0LHZpZXdwb3J0OmUsdHJhbnNmb3JtOm4sYmFja2dyb3VuZDpyfSxvYmpzOnRoaXMub2Jqcyxjb21tb25PYmpzOnRoaXMuY29tbW9uT2Jqcyxhbm5vdGF0aW9uQ2FudmFzTWFwOm8sb3BlcmF0b3JMaXN0OmYub3BlcmF0b3JMaXN0LHBhZ2VJbmRleDp0aGlzLl9wYWdlSW5kZXgsY2FudmFzRmFjdG9yeTp0aGlzLl90cmFuc3BvcnQuY2FudmFzRmFjdG9yeSxmaWx0ZXJGYWN0b3J5OnRoaXMuX3RyYW5zcG9ydC5maWx0ZXJGYWN0b3J5LHVzZVJlcXVlc3RBbmltYXRpb25GcmFtZTohbSxwZGZCdWc6dGhpcy5fcGRmQnVnLHBhZ2VDb2xvcnM6bH0pOyhmLnJlbmRlclRhc2tzfHw9bmV3IFNldCkuYWRkKHYpO2NvbnN0IHk9di50YXNrO3JldHVybiBQcm9taXNlLmFsbChbZi5kaXNwbGF5UmVhZHlDYXBhYmlsaXR5LnByb21pc2UsYV0pLnRoZW4oKChbdCxlXSk9PntpZih0aGlzLmRlc3Ryb3llZCliKCk7ZWxzZXtpZih0aGlzLl9zdGF0cz8udGltZSgiUmVuZGVyaW5nIiksIShlLnJlbmRlcmluZ0ludGVudCZwKSl0aHJvdyBuZXcgRXJyb3IoIk11c3QgdXNlIHRoZSBzYW1lIGBpbnRlbnRgLWFyZ3VtZW50IHdoZW4gY2FsbGluZyB0aGUgYFBERlBhZ2VQcm94eS5yZW5kZXJgIGFuZCBgUERGRG9jdW1lbnRQcm94eS5nZXRPcHRpb25hbENvbnRlbnRDb25maWdgIG1ldGhvZHMuIik7di5pbml0aWFsaXplR3JhcGhpY3Moe3RyYW5zcGFyZW5jeTp0LG9wdGlvbmFsQ29udGVudENvbmZpZzplfSksdi5vcGVyYXRvckxpc3RDaGFuZ2VkKCl9fSkpLmNhdGNoKGIpLHl9Z2V0T3BlcmF0b3JMaXN0KHtpbnRlbnQ6dD0iZGlzcGxheSIsYW5ub3RhdGlvbk1vZGU6ZT1oLkVOQUJMRSxwcmludEFubm90YXRpb25TdG9yYWdlOmk9bnVsbCxpc0VkaXRpbmc6cz0hMX09e30pe2NvbnN0IG49dGhpcy5fdHJhbnNwb3J0LmdldFJlbmRlcmluZ0ludGVudCh0LGUsaSxzLCEwKTtsZXQgcixhPXRoaXMuX2ludGVudFN0YXRlcy5nZXQobi5jYWNoZUtleSk7cmV0dXJuIGF8fChhPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5faW50ZW50U3RhdGVzLnNldChuLmNhY2hlS2V5LGEpKSxhLm9wTGlzdFJlYWRDYXBhYmlsaXR5fHwocj1PYmplY3QuY3JlYXRlKG51bGwpLHIub3BlcmF0b3JMaXN0Q2hhbmdlZD1mdW5jdGlvbigpe2Eub3BlcmF0b3JMaXN0Lmxhc3RDaHVuayYmKGEub3BMaXN0UmVhZENhcGFiaWxpdHkucmVzb2x2ZShhLm9wZXJhdG9yTGlzdCksYS5yZW5kZXJUYXNrcy5kZWxldGUocikpfSxhLm9wTGlzdFJlYWRDYXBhYmlsaXR5PVByb21pc2Uud2l0aFJlc29sdmVycygpLChhLnJlbmRlclRhc2tzfHw9bmV3IFNldCkuYWRkKHIpLGEub3BlcmF0b3JMaXN0PXtmbkFycmF5OltdLGFyZ3NBcnJheTpbXSxsYXN0Q2h1bms6ITEsc2VwYXJhdGVBbm5vdHM6bnVsbH0sdGhpcy5fc3RhdHM/LnRpbWUoIlBhZ2UgUmVxdWVzdCIpLHRoaXMuX3B1bXBPcGVyYXRvckxpc3QobikpLGEub3BMaXN0UmVhZENhcGFiaWxpdHkucHJvbWlzZX1zdHJlYW1UZXh0Q29udGVudCh7aW5jbHVkZU1hcmtlZENvbnRlbnQ6dD0hMSxkaXNhYmxlTm9ybWFsaXphdGlvbjplPSExfT17fSl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydC5tZXNzYWdlSGFuZGxlci5zZW5kV2l0aFN0cmVhbSgiR2V0VGV4dENvbnRlbnQiLHtwYWdlSW5kZXg6dGhpcy5fcGFnZUluZGV4LGluY2x1ZGVNYXJrZWRDb250ZW50OiEwPT09dCxkaXNhYmxlTm9ybWFsaXphdGlvbjohMD09PWV9LHtoaWdoV2F0ZXJNYXJrOjEwMCxzaXplOnQ9PnQuaXRlbXMubGVuZ3RofSl9Z2V0VGV4dENvbnRlbnQodD17fSl7aWYodGhpcy5fdHJhbnNwb3J0Ll9odG1sRm9yWGZhKXJldHVybiB0aGlzLmdldFhmYSgpLnRoZW4oKHQ9PlFlLnRleHRDb250ZW50KHQpKSk7Y29uc3QgZT10aGlzLnN0cmVhbVRleHRDb250ZW50KHQpO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCxpKXtjb25zdCBzPWUuZ2V0UmVhZGVyKCksbj17aXRlbXM6W10sc3R5bGVzOk9iamVjdC5jcmVhdGUobnVsbCksbGFuZzpudWxsfTshZnVuY3Rpb24gZSgpe3MucmVhZCgpLnRoZW4oKGZ1bmN0aW9uKHt2YWx1ZTppLGRvbmU6c30pe3M/dChuKToobi5sYW5nPz89aS5sYW5nLE9iamVjdC5hc3NpZ24obi5zdHlsZXMsaS5zdHlsZXMpLG4uaXRlbXMucHVzaCguLi5pLml0ZW1zKSxlKCkpfSksaSl9KCl9KSl9Z2V0U3RydWN0VHJlZSgpe3JldHVybiB0aGlzLl90cmFuc3BvcnQuZ2V0U3RydWN0VHJlZSh0aGlzLl9wYWdlSW5kZXgpfV9kZXN0cm95KCl7dGhpcy5kZXN0cm95ZWQ9ITA7Y29uc3QgdD1bXTtmb3IoY29uc3QgZSBvZiB0aGlzLl9pbnRlbnRTdGF0ZXMudmFsdWVzKCkpaWYodGhpcy5fYWJvcnRPcGVyYXRvckxpc3Qoe2ludGVudFN0YXRlOmUscmVhc29uOm5ldyBFcnJvcigiUGFnZSB3YXMgZGVzdHJveWVkLiIpLGZvcmNlOiEwfSksIWUub3BMaXN0UmVhZENhcGFiaWxpdHkpZm9yKGNvbnN0IGkgb2YgZS5yZW5kZXJUYXNrcyl0LnB1c2goaS5jb21wbGV0ZWQpLGkuY2FuY2VsKCk7cmV0dXJuIHRoaXMub2Jqcy5jbGVhcigpLHRoaXMuI0dpPSExLHRoaXMuI1ZpKCksUHJvbWlzZS5hbGwodCl9Y2xlYW51cCh0PSExKXt0aGlzLiNHaT0hMDtjb25zdCBlPXRoaXMuI3FpKCExKTtyZXR1cm4gdCYmZSYmKHRoaXMuX3N0YXRzJiY9bmV3IG90KSxlfSNxaSh0PSExKXtpZih0aGlzLiNWaSgpLCF0aGlzLiNHaXx8dGhpcy5kZXN0cm95ZWQpcmV0dXJuITE7aWYodClyZXR1cm4gdGhpcy4jV2k9c2V0VGltZW91dCgoKCk9Pnt0aGlzLiNXaT1udWxsLHRoaXMuI3FpKCExKX0pLDVlMyksITE7Zm9yKGNvbnN0e3JlbmRlclRhc2tzOnQsb3BlcmF0b3JMaXN0OmV9b2YgdGhpcy5faW50ZW50U3RhdGVzLnZhbHVlcygpKWlmKHQuc2l6ZT4wfHwhZS5sYXN0Q2h1bmspcmV0dXJuITE7cmV0dXJuIHRoaXMuX2ludGVudFN0YXRlcy5jbGVhcigpLHRoaXMub2Jqcy5jbGVhcigpLHRoaXMuI0dpPSExLCEwfSNWaSgpe3RoaXMuI1dpJiYoY2xlYXJUaW1lb3V0KHRoaXMuI1dpKSx0aGlzLiNXaT1udWxsKX1fc3RhcnRSZW5kZXJQYWdlKHQsZSl7Y29uc3QgaT10aGlzLl9pbnRlbnRTdGF0ZXMuZ2V0KGUpO2kmJih0aGlzLl9zdGF0cz8udGltZUVuZCgiUGFnZSBSZXF1ZXN0IiksaS5kaXNwbGF5UmVhZHlDYXBhYmlsaXR5Py5yZXNvbHZlKHQpKX1fcmVuZGVyUGFnZUNodW5rKHQsZSl7Zm9yKGxldCBpPTAscz10Lmxlbmd0aDtpPHM7aSsrKWUub3BlcmF0b3JMaXN0LmZuQXJyYXkucHVzaCh0LmZuQXJyYXlbaV0pLGUub3BlcmF0b3JMaXN0LmFyZ3NBcnJheS5wdXNoKHQuYXJnc0FycmF5W2ldKTtlLm9wZXJhdG9yTGlzdC5sYXN0Q2h1bms9dC5sYXN0Q2h1bmssZS5vcGVyYXRvckxpc3Quc2VwYXJhdGVBbm5vdHM9dC5zZXBhcmF0ZUFubm90cztmb3IoY29uc3QgdCBvZiBlLnJlbmRlclRhc2tzKXQub3BlcmF0b3JMaXN0Q2hhbmdlZCgpO3QubGFzdENodW5rJiZ0aGlzLiNxaSghMCl9X3B1bXBPcGVyYXRvckxpc3Qoe3JlbmRlcmluZ0ludGVudDp0LGNhY2hlS2V5OmUsYW5ub3RhdGlvblN0b3JhZ2VTZXJpYWxpemFibGU6aSxtb2RpZmllZElkczpzfSl7Y29uc3R7bWFwOm4sdHJhbnNmZXI6cn09aSxhPXRoaXMuX3RyYW5zcG9ydC5tZXNzYWdlSGFuZGxlci5zZW5kV2l0aFN0cmVhbSgiR2V0T3BlcmF0b3JMaXN0Iix7cGFnZUluZGV4OnRoaXMuX3BhZ2VJbmRleCxpbnRlbnQ6dCxjYWNoZUtleTplLGFubm90YXRpb25TdG9yYWdlOm4sbW9kaWZpZWRJZHM6c30scikuZ2V0UmVhZGVyKCksbz10aGlzLl9pbnRlbnRTdGF0ZXMuZ2V0KGUpO28uc3RyZWFtUmVhZGVyPWE7Y29uc3QgaD0oKT0+e2EucmVhZCgpLnRoZW4oKCh7dmFsdWU6dCxkb25lOmV9KT0+e2U/by5zdHJlYW1SZWFkZXI9bnVsbDp0aGlzLl90cmFuc3BvcnQuZGVzdHJveWVkfHwodGhpcy5fcmVuZGVyUGFnZUNodW5rKHQsbyksaCgpKX0pLCh0PT57aWYoby5zdHJlYW1SZWFkZXI9bnVsbCwhdGhpcy5fdHJhbnNwb3J0LmRlc3Ryb3llZCl7aWYoby5vcGVyYXRvckxpc3Qpe28ub3BlcmF0b3JMaXN0Lmxhc3RDaHVuaz0hMDtmb3IoY29uc3QgdCBvZiBvLnJlbmRlclRhc2tzKXQub3BlcmF0b3JMaXN0Q2hhbmdlZCgpO3RoaXMuI3FpKCEwKX1pZihvLmRpc3BsYXlSZWFkeUNhcGFiaWxpdHkpby5kaXNwbGF5UmVhZHlDYXBhYmlsaXR5LnJlamVjdCh0KTtlbHNle2lmKCFvLm9wTGlzdFJlYWRDYXBhYmlsaXR5KXRocm93IHQ7by5vcExpc3RSZWFkQ2FwYWJpbGl0eS5yZWplY3QodCl9fX0pKX07aCgpfV9hYm9ydE9wZXJhdG9yTGlzdCh7aW50ZW50U3RhdGU6dCxyZWFzb246ZSxmb3JjZTppPSExfSl7aWYodC5zdHJlYW1SZWFkZXIpe2lmKHQuc3RyZWFtUmVhZGVyQ2FuY2VsVGltZW91dCYmKGNsZWFyVGltZW91dCh0LnN0cmVhbVJlYWRlckNhbmNlbFRpbWVvdXQpLHQuc3RyZWFtUmVhZGVyQ2FuY2VsVGltZW91dD1udWxsKSwhaSl7aWYodC5yZW5kZXJUYXNrcy5zaXplPjApcmV0dXJuO2lmKGUgaW5zdGFuY2VvZiBpdCl7bGV0IGk9MTAwO3JldHVybiBlLmV4dHJhRGVsYXk+MCYmZS5leHRyYURlbGF5PDFlMyYmKGkrPWUuZXh0cmFEZWxheSksdm9pZCh0LnN0cmVhbVJlYWRlckNhbmNlbFRpbWVvdXQ9c2V0VGltZW91dCgoKCk9Pnt0LnN0cmVhbVJlYWRlckNhbmNlbFRpbWVvdXQ9bnVsbCx0aGlzLl9hYm9ydE9wZXJhdG9yTGlzdCh7aW50ZW50U3RhdGU6dCxyZWFzb246ZSxmb3JjZTohMH0pfSksaSkpfX1pZih0LnN0cmVhbVJlYWRlci5jYW5jZWwobmV3IEQoZS5tZXNzYWdlKSkuY2F0Y2goKCgpPT57fSkpLHQuc3RyZWFtUmVhZGVyPW51bGwsIXRoaXMuX3RyYW5zcG9ydC5kZXN0cm95ZWQpe2Zvcihjb25zdFtlLGldb2YgdGhpcy5faW50ZW50U3RhdGVzKWlmKGk9PT10KXt0aGlzLl9pbnRlbnRTdGF0ZXMuZGVsZXRlKGUpO2JyZWFrfXRoaXMuY2xlYW51cCgpfX19Z2V0IHN0YXRzKCl7cmV0dXJuIHRoaXMuX3N0YXRzfX1jbGFzcyBsaXsjWGk9bmV3IFNldDsjS2k9UHJvbWlzZS5yZXNvbHZlKCk7cG9zdE1lc3NhZ2UodCxlKXtjb25zdCBpPXtkYXRhOnN0cnVjdHVyZWRDbG9uZSh0LGU/e3RyYW5zZmVyOmV9Om51bGwpfTt0aGlzLiNLaS50aGVuKCgoKT0+e2Zvcihjb25zdCB0IG9mIHRoaXMuI1hpKXQuY2FsbCh0aGlzLGkpfSkpfWFkZEV2ZW50TGlzdGVuZXIodCxlKXt0aGlzLiNYaS5hZGQoZSl9cmVtb3ZlRXZlbnRMaXN0ZW5lcih0LGUpe3RoaXMuI1hpLmRlbGV0ZShlKX10ZXJtaW5hdGUoKXt0aGlzLiNYaS5jbGVhcigpfX1jbGFzcyBjaXtzdGF0aWMjWWk9MDtzdGF0aWMjUWk9ITE7c3RhdGljI0ppO3N0YXRpY3tuJiYodGhpcy4jUWk9ITAsbWUud29ya2VyU3JjfHw9Ii4vcGRmLndvcmtlci5tanMiKSx0aGlzLl9pc1NhbWVPcmlnaW49KHQsZSk9PntsZXQgaTt0cnl7aWYoaT1uZXcgVVJMKHQpLCFpLm9yaWdpbnx8Im51bGwiPT09aS5vcmlnaW4pcmV0dXJuITF9Y2F0Y2h7cmV0dXJuITF9Y29uc3Qgcz1uZXcgVVJMKGUsaSk7cmV0dXJuIGkub3JpZ2luPT09cy5vcmlnaW59LHRoaXMuX2NyZWF0ZUNETldyYXBwZXI9dD0+e2NvbnN0IGU9YGF3YWl0IGltcG9ydCgiJHt0fSIpO2A7cmV0dXJuIFVSTC5jcmVhdGVPYmplY3RVUkwobmV3IEJsb2IoW2VdLHt0eXBlOiJ0ZXh0L2phdmFzY3JpcHQifSkpfX1jb25zdHJ1Y3Rvcih7bmFtZTp0PW51bGwscG9ydDplPW51bGwsdmVyYm9zaXR5Omk9eSgpfT17fSl7aWYodGhpcy5uYW1lPXQsdGhpcy5kZXN0cm95ZWQ9ITEsdGhpcy52ZXJib3NpdHk9aSx0aGlzLl9yZWFkeUNhcGFiaWxpdHk9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCksdGhpcy5fcG9ydD1udWxsLHRoaXMuX3dlYldvcmtlcj1udWxsLHRoaXMuX21lc3NhZ2VIYW5kbGVyPW51bGwsZSl7aWYoY2kuI0ppPy5oYXMoZSkpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgdXNlIG1vcmUgdGhhbiBvbmUgUERGV29ya2VyIHBlciBwb3J0LiIpO3JldHVybihjaS4jSml8fD1uZXcgV2Vha01hcCkuc2V0KGUsdGhpcyksdm9pZCB0aGlzLl9pbml0aWFsaXplRnJvbVBvcnQoZSl9dGhpcy5faW5pdGlhbGl6ZSgpfWdldCBwcm9taXNlKCl7cmV0dXJuIG4/UHJvbWlzZS5hbGwoW1V0LnByb21pc2UsdGhpcy5fcmVhZHlDYXBhYmlsaXR5LnByb21pc2VdKTp0aGlzLl9yZWFkeUNhcGFiaWxpdHkucHJvbWlzZX0jWmkoKXt0aGlzLl9yZWFkeUNhcGFiaWxpdHkucmVzb2x2ZSgpLHRoaXMuX21lc3NhZ2VIYW5kbGVyLnNlbmQoImNvbmZpZ3VyZSIse3ZlcmJvc2l0eTp0aGlzLnZlcmJvc2l0eX0pfWdldCBwb3J0KCl7cmV0dXJuIHRoaXMuX3BvcnR9Z2V0IG1lc3NhZ2VIYW5kbGVyKCl7cmV0dXJuIHRoaXMuX21lc3NhZ2VIYW5kbGVyfV9pbml0aWFsaXplRnJvbVBvcnQodCl7dGhpcy5fcG9ydD10LHRoaXMuX21lc3NhZ2VIYW5kbGVyPW5ldyB2ZSgibWFpbiIsIndvcmtlciIsdCksdGhpcy5fbWVzc2FnZUhhbmRsZXIub24oInJlYWR5IiwoZnVuY3Rpb24oKXt9KSksdGhpcy4jWmkoKX1faW5pdGlhbGl6ZSgpe2lmKGNpLiNRaXx8Y2kuI3RzKXJldHVybiB2b2lkIHRoaXMuX3NldHVwRmFrZVdvcmtlcigpO2xldHt3b3JrZXJTcmM6dH09Y2k7dHJ5e2NpLl9pc1NhbWVPcmlnaW4od2luZG93LmxvY2F0aW9uLmhyZWYsdCl8fCh0PWNpLl9jcmVhdGVDRE5XcmFwcGVyKG5ldyBVUkwodCx3aW5kb3cubG9jYXRpb24pLmhyZWYpKTtjb25zdCBlPW5ldyBXb3JrZXIodCx7dHlwZToibW9kdWxlIn0pLGk9bmV3IHZlKCJtYWluIiwid29ya2VyIixlKSxzPSgpPT57bi5hYm9ydCgpLGkuZGVzdHJveSgpLGUudGVybWluYXRlKCksdGhpcy5kZXN0cm95ZWQ/dGhpcy5fcmVhZHlDYXBhYmlsaXR5LnJlamVjdChuZXcgRXJyb3IoIldvcmtlciB3YXMgZGVzdHJveWVkIikpOnRoaXMuX3NldHVwRmFrZVdvcmtlcigpfSxuPW5ldyBBYm9ydENvbnRyb2xsZXI7ZS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCgpPT57dGhpcy5fd2ViV29ya2VyfHxzKCl9KSx7c2lnbmFsOm4uc2lnbmFsfSksaS5vbigidGVzdCIsKHQ9PntuLmFib3J0KCksIXRoaXMuZGVzdHJveWVkJiZ0Pyh0aGlzLl9tZXNzYWdlSGFuZGxlcj1pLHRoaXMuX3BvcnQ9ZSx0aGlzLl93ZWJXb3JrZXI9ZSx0aGlzLiNaaSgpKTpzKCl9KSksaS5vbigicmVhZHkiLCh0PT57aWYobi5hYm9ydCgpLHRoaXMuZGVzdHJveWVkKXMoKTtlbHNlIHRyeXtyKCl9Y2F0Y2h7dGhpcy5fc2V0dXBGYWtlV29ya2VyKCl9fSkpO2NvbnN0IHI9KCk9Pntjb25zdCB0PW5ldyBVaW50OEFycmF5O2kuc2VuZCgidGVzdCIsdCxbdC5idWZmZXJdKX07cmV0dXJuIHZvaWQgcigpfWNhdGNoe0EoIlRoZSB3b3JrZXIgaGFzIGJlZW4gZGlzYWJsZWQuIil9dGhpcy5fc2V0dXBGYWtlV29ya2VyKCl9X3NldHVwRmFrZVdvcmtlcigpe2NpLiNRaXx8KHcoIlNldHRpbmcgdXAgZmFrZSB3b3JrZXIuIiksY2kuI1FpPSEwKSxjaS5fc2V0dXBGYWtlV29ya2VyR2xvYmFsLnRoZW4oKHQ9PntpZih0aGlzLmRlc3Ryb3llZClyZXR1cm4gdm9pZCB0aGlzLl9yZWFkeUNhcGFiaWxpdHkucmVqZWN0KG5ldyBFcnJvcigiV29ya2VyIHdhcyBkZXN0cm95ZWQiKSk7Y29uc3QgZT1uZXcgbGk7dGhpcy5fcG9ydD1lO2NvbnN0IGk9ImZha2UiK2NpLiNZaSsrLHM9bmV3IHZlKGkrIl93b3JrZXIiLGksZSk7dC5zZXR1cChzLGUpLHRoaXMuX21lc3NhZ2VIYW5kbGVyPW5ldyB2ZShpLGkrIl93b3JrZXIiLGUpLHRoaXMuI1ppKCl9KSkuY2F0Y2goKHQ9Pnt0aGlzLl9yZWFkeUNhcGFiaWxpdHkucmVqZWN0KG5ldyBFcnJvcihgU2V0dGluZyB1cCBmYWtlIHdvcmtlciBmYWlsZWQ6ICIke3QubWVzc2FnZX0iLmApKX0pKX1kZXN0cm95KCl7dGhpcy5kZXN0cm95ZWQ9ITAsdGhpcy5fd2ViV29ya2VyJiYodGhpcy5fd2ViV29ya2VyLnRlcm1pbmF0ZSgpLHRoaXMuX3dlYldvcmtlcj1udWxsKSxjaS4jSmk/LmRlbGV0ZSh0aGlzLl9wb3J0KSx0aGlzLl9wb3J0PW51bGwsdGhpcy5fbWVzc2FnZUhhbmRsZXImJih0aGlzLl9tZXNzYWdlSGFuZGxlci5kZXN0cm95KCksdGhpcy5fbWVzc2FnZUhhbmRsZXI9bnVsbCl9c3RhdGljIGZyb21Qb3J0KHQpe2lmKCF0Py5wb3J0KXRocm93IG5ldyBFcnJvcigiUERGV29ya2VyLmZyb21Qb3J0IC0gaW52YWxpZCBtZXRob2Qgc2lnbmF0dXJlLiIpO2NvbnN0IGU9dGhpcy4jSmk/LmdldCh0LnBvcnQpO2lmKGUpe2lmKGUuX3BlbmRpbmdEZXN0cm95KXRocm93IG5ldyBFcnJvcigiUERGV29ya2VyLmZyb21Qb3J0IC0gdGhlIHdvcmtlciBpcyBiZWluZyBkZXN0cm95ZWQuXG5QbGVhc2UgcmVtZW1iZXIgdG8gYXdhaXQgYFBERkRvY3VtZW50TG9hZGluZ1Rhc2suZGVzdHJveSgpYC1jYWxscy4iKTtyZXR1cm4gZX1yZXR1cm4gbmV3IGNpKHQpfXN0YXRpYyBnZXQgd29ya2VyU3JjKCl7aWYobWUud29ya2VyU3JjKXJldHVybiBtZS53b3JrZXJTcmM7dGhyb3cgbmV3IEVycm9yKCdObyAiR2xvYmFsV29ya2VyT3B0aW9ucy53b3JrZXJTcmMiIHNwZWNpZmllZC4nKX1zdGF0aWMgZ2V0I3RzKCl7dHJ5e3JldHVybiBnbG9iYWxUaGlzLnBkZmpzV29ya2VyPy5Xb3JrZXJNZXNzYWdlSGFuZGxlcnx8bnVsbH1jYXRjaHtyZXR1cm4gbnVsbH19c3RhdGljIGdldCBfc2V0dXBGYWtlV29ya2VyR2xvYmFsKCl7cmV0dXJuIEModGhpcywiX3NldHVwRmFrZVdvcmtlckdsb2JhbCIsKGFzeW5jKCk9PnRoaXMuI3RzP3RoaXMuI3RzOihhd2FpdCBpbXBvcnQodGhpcy53b3JrZXJTcmMpKS5Xb3JrZXJNZXNzYWdlSGFuZGxlcikoKSl9fWNsYXNzIGRpeyNlcz1uZXcgTWFwOyNpcz1uZXcgTWFwOyNzcz1uZXcgTWFwOyNucz1uZXcgTWFwOyNycz1udWxsO2NvbnN0cnVjdG9yKHQsZSxpLHMsbil7dGhpcy5tZXNzYWdlSGFuZGxlcj10LHRoaXMubG9hZGluZ1Rhc2s9ZSx0aGlzLmNvbW1vbk9ianM9bmV3IHBpLHRoaXMuZm9udExvYWRlcj1uZXcgQnQoe293bmVyRG9jdW1lbnQ6cy5vd25lckRvY3VtZW50LHN0eWxlRWxlbWVudDpzLnN0eWxlRWxlbWVudH0pLHRoaXMubG9hZGluZ1BhcmFtcz1zLmxvYWRpbmdQYXJhbXMsdGhpcy5fcGFyYW1zPXMsdGhpcy5jYW52YXNGYWN0b3J5PW4uY2FudmFzRmFjdG9yeSx0aGlzLmZpbHRlckZhY3Rvcnk9bi5maWx0ZXJGYWN0b3J5LHRoaXMuY01hcFJlYWRlckZhY3Rvcnk9bi5jTWFwUmVhZGVyRmFjdG9yeSx0aGlzLnN0YW5kYXJkRm9udERhdGFGYWN0b3J5PW4uc3RhbmRhcmRGb250RGF0YUZhY3RvcnksdGhpcy5kZXN0cm95ZWQ9ITEsdGhpcy5kZXN0cm95Q2FwYWJpbGl0eT1udWxsLHRoaXMuX25ldHdvcmtTdHJlYW09aSx0aGlzLl9mdWxsUmVhZGVyPW51bGwsdGhpcy5fbGFzdFByb2dyZXNzPW51bGwsdGhpcy5kb3dubG9hZEluZm9DYXBhYmlsaXR5PVByb21pc2Uud2l0aFJlc29sdmVycygpLHRoaXMuc2V0dXBNZXNzYWdlSGFuZGxlcigpfSNhcyh0LGU9bnVsbCl7Y29uc3QgaT10aGlzLiNlcy5nZXQodCk7aWYoaSlyZXR1cm4gaTtjb25zdCBzPXRoaXMubWVzc2FnZUhhbmRsZXIuc2VuZFdpdGhQcm9taXNlKHQsZSk7cmV0dXJuIHRoaXMuI2VzLnNldCh0LHMpLHN9Z2V0IGFubm90YXRpb25TdG9yYWdlKCl7cmV0dXJuIEModGhpcywiYW5ub3RhdGlvblN0b3JhZ2UiLG5ldyBPdCl9Z2V0UmVuZGVyaW5nSW50ZW50KHQsZT1oLkVOQUJMRSxpPW51bGwscz0hMSxuPSExKXtsZXQgcj0yLGE9RnQ7c3dpdGNoKHQpe2Nhc2UiYW55IjpyPTE7YnJlYWs7Y2FzZSJkaXNwbGF5IjpicmVhaztjYXNlInByaW50IjpyPTQ7YnJlYWs7ZGVmYXVsdDp3KGBnZXRSZW5kZXJpbmdJbnRlbnQgLSBpbnZhbGlkIGludGVudDogJHt0fWApfWNvbnN0IG89NCZyJiZpIGluc3RhbmNlb2YgTnQ/aTp0aGlzLmFubm90YXRpb25TdG9yYWdlO3N3aXRjaChlKXtjYXNlIGguRElTQUJMRTpyKz02NDticmVhaztjYXNlIGguRU5BQkxFOmJyZWFrO2Nhc2UgaC5FTkFCTEVfRk9STVM6cis9MTY7YnJlYWs7Y2FzZSBoLkVOQUJMRV9TVE9SQUdFOnIrPTMyLGE9by5zZXJpYWxpemFibGU7YnJlYWs7ZGVmYXVsdDp3KGBnZXRSZW5kZXJpbmdJbnRlbnQgLSBpbnZhbGlkIGFubm90YXRpb25Nb2RlOiAke2V9YCl9cyYmKHIrPTEyOCksbiYmKHIrPTI1Nik7Y29uc3R7aWRzOmwsaGFzaDpjfT1vLm1vZGlmaWVkSWRzO3JldHVybntyZW5kZXJpbmdJbnRlbnQ6cixjYWNoZUtleTpbcixhLmhhc2gsY10uam9pbigiXyIpLGFubm90YXRpb25TdG9yYWdlU2VyaWFsaXphYmxlOmEsbW9kaWZpZWRJZHM6bH19ZGVzdHJveSgpe2lmKHRoaXMuZGVzdHJveUNhcGFiaWxpdHkpcmV0dXJuIHRoaXMuZGVzdHJveUNhcGFiaWxpdHkucHJvbWlzZTt0aGlzLmRlc3Ryb3llZD0hMCx0aGlzLmRlc3Ryb3lDYXBhYmlsaXR5PVByb21pc2Uud2l0aFJlc29sdmVycygpLHRoaXMuI3JzPy5yZWplY3QobmV3IEVycm9yKCJXb3JrZXIgd2FzIGRlc3Ryb3llZCBkdXJpbmcgb25QYXNzd29yZCBjYWxsYmFjayIpKTtjb25zdCB0PVtdO2Zvcihjb25zdCBlIG9mIHRoaXMuI2lzLnZhbHVlcygpKXQucHVzaChlLl9kZXN0cm95KCkpO3RoaXMuI2lzLmNsZWFyKCksdGhpcy4jc3MuY2xlYXIoKSx0aGlzLiNucy5jbGVhcigpLHRoaXMuaGFzT3duUHJvcGVydHkoImFubm90YXRpb25TdG9yYWdlIikmJnRoaXMuYW5ub3RhdGlvblN0b3JhZ2UucmVzZXRNb2RpZmllZCgpO2NvbnN0IGU9dGhpcy5tZXNzYWdlSGFuZGxlci5zZW5kV2l0aFByb21pc2UoIlRlcm1pbmF0ZSIsbnVsbCk7cmV0dXJuIHQucHVzaChlKSxQcm9taXNlLmFsbCh0KS50aGVuKCgoKT0+e3RoaXMuY29tbW9uT2Jqcy5jbGVhcigpLHRoaXMuZm9udExvYWRlci5jbGVhcigpLHRoaXMuI2VzLmNsZWFyKCksdGhpcy5maWx0ZXJGYWN0b3J5LmRlc3Ryb3koKSxZZS5jbGVhbnVwKCksdGhpcy5fbmV0d29ya1N0cmVhbT8uY2FuY2VsQWxsUmVxdWVzdHMobmV3IEQoIldvcmtlciB3YXMgdGVybWluYXRlZC4iKSksdGhpcy5tZXNzYWdlSGFuZGxlciYmKHRoaXMubWVzc2FnZUhhbmRsZXIuZGVzdHJveSgpLHRoaXMubWVzc2FnZUhhbmRsZXI9bnVsbCksdGhpcy5kZXN0cm95Q2FwYWJpbGl0eS5yZXNvbHZlKCl9KSx0aGlzLmRlc3Ryb3lDYXBhYmlsaXR5LnJlamVjdCksdGhpcy5kZXN0cm95Q2FwYWJpbGl0eS5wcm9taXNlfXNldHVwTWVzc2FnZUhhbmRsZXIoKXtjb25zdHttZXNzYWdlSGFuZGxlcjp0LGxvYWRpbmdUYXNrOmV9PXRoaXM7dC5vbigiR2V0UmVhZGVyIiwoKHQsZSk9PntfKHRoaXMuX25ldHdvcmtTdHJlYW0sIkdldFJlYWRlciAtIG5vIGBJUERGU3RyZWFtYCBpbnN0YW5jZSBhdmFpbGFibGUuIiksdGhpcy5fZnVsbFJlYWRlcj10aGlzLl9uZXR3b3JrU3RyZWFtLmdldEZ1bGxSZWFkZXIoKSx0aGlzLl9mdWxsUmVhZGVyLm9uUHJvZ3Jlc3M9dD0+e3RoaXMuX2xhc3RQcm9ncmVzcz17bG9hZGVkOnQubG9hZGVkLHRvdGFsOnQudG90YWx9fSxlLm9uUHVsbD0oKT0+e3RoaXMuX2Z1bGxSZWFkZXIucmVhZCgpLnRoZW4oKGZ1bmN0aW9uKHt2YWx1ZTp0LGRvbmU6aX0pe2k/ZS5jbG9zZSgpOihfKHQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciwiR2V0UmVhZGVyIC0gZXhwZWN0ZWQgYW4gQXJyYXlCdWZmZXIuIiksZS5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KHQpLDEsW3RdKSl9KSkuY2F0Y2goKHQ9PntlLmVycm9yKHQpfSkpfSxlLm9uQ2FuY2VsPXQ9Pnt0aGlzLl9mdWxsUmVhZGVyLmNhbmNlbCh0KSxlLnJlYWR5LmNhdGNoKCh0PT57aWYoIXRoaXMuZGVzdHJveWVkKXRocm93IHR9KSl9fSkpLHQub24oIlJlYWRlckhlYWRlcnNSZWFkeSIsKHQ9Pntjb25zdCBpPVByb21pc2Uud2l0aFJlc29sdmVycygpLHM9dGhpcy5fZnVsbFJlYWRlcjtyZXR1cm4gcy5oZWFkZXJzUmVhZHkudGhlbigoKCk9PntzLmlzU3RyZWFtaW5nU3VwcG9ydGVkJiZzLmlzUmFuZ2VTdXBwb3J0ZWR8fCh0aGlzLl9sYXN0UHJvZ3Jlc3MmJmUub25Qcm9ncmVzcz8uKHRoaXMuX2xhc3RQcm9ncmVzcykscy5vblByb2dyZXNzPXQ9PntlLm9uUHJvZ3Jlc3M/Lih7bG9hZGVkOnQubG9hZGVkLHRvdGFsOnQudG90YWx9KX0pLGkucmVzb2x2ZSh7aXNTdHJlYW1pbmdTdXBwb3J0ZWQ6cy5pc1N0cmVhbWluZ1N1cHBvcnRlZCxpc1JhbmdlU3VwcG9ydGVkOnMuaXNSYW5nZVN1cHBvcnRlZCxjb250ZW50TGVuZ3RoOnMuY29udGVudExlbmd0aH0pfSksaS5yZWplY3QpLGkucHJvbWlzZX0pKSx0Lm9uKCJHZXRSYW5nZVJlYWRlciIsKCh0LGUpPT57Xyh0aGlzLl9uZXR3b3JrU3RyZWFtLCJHZXRSYW5nZVJlYWRlciAtIG5vIGBJUERGU3RyZWFtYCBpbnN0YW5jZSBhdmFpbGFibGUuIik7Y29uc3QgaT10aGlzLl9uZXR3b3JrU3RyZWFtLmdldFJhbmdlUmVhZGVyKHQuYmVnaW4sdC5lbmQpO2k/KGUub25QdWxsPSgpPT57aS5yZWFkKCkudGhlbigoZnVuY3Rpb24oe3ZhbHVlOnQsZG9uZTppfSl7aT9lLmNsb3NlKCk6KF8odCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyLCJHZXRSYW5nZVJlYWRlciAtIGV4cGVjdGVkIGFuIEFycmF5QnVmZmVyLiIpLGUuZW5xdWV1ZShuZXcgVWludDhBcnJheSh0KSwxLFt0XSkpfSkpLmNhdGNoKCh0PT57ZS5lcnJvcih0KX0pKX0sZS5vbkNhbmNlbD10PT57aS5jYW5jZWwodCksZS5yZWFkeS5jYXRjaCgodD0+e2lmKCF0aGlzLmRlc3Ryb3llZCl0aHJvdyB0fSkpfSk6ZS5jbG9zZSgpfSkpLHQub24oIkdldERvYyIsKCh7cGRmSW5mbzp0fSk9Pnt0aGlzLl9udW1QYWdlcz10Lm51bVBhZ2VzLHRoaXMuX2h0bWxGb3JYZmE9dC5odG1sRm9yWGZhLGRlbGV0ZSB0Lmh0bWxGb3JYZmEsZS5fY2FwYWJpbGl0eS5yZXNvbHZlKG5ldyBvaSh0LHRoaXMpKX0pKSx0Lm9uKCJEb2NFeGNlcHRpb24iLChmdW5jdGlvbih0KXtsZXQgaTtzd2l0Y2godC5uYW1lKXtjYXNlIlBhc3N3b3JkRXhjZXB0aW9uIjppPW5ldyBUKHQubWVzc2FnZSx0LmNvZGUpO2JyZWFrO2Nhc2UiSW52YWxpZFBERkV4Y2VwdGlvbiI6aT1uZXcgayh0Lm1lc3NhZ2UpO2JyZWFrO2Nhc2UiTWlzc2luZ1BERkV4Y2VwdGlvbiI6aT1uZXcgSSh0Lm1lc3NhZ2UpO2JyZWFrO2Nhc2UiVW5leHBlY3RlZFJlc3BvbnNlRXhjZXB0aW9uIjppPW5ldyBSKHQubWVzc2FnZSx0LnN0YXR1cyk7YnJlYWs7Y2FzZSJVbmtub3duRXJyb3JFeGNlcHRpb24iOmk9bmV3IE0odC5tZXNzYWdlLHQuZGV0YWlscyk7YnJlYWs7ZGVmYXVsdDp4KCJEb2NFeGNlcHRpb24gLSBleHBlY3RlZCBhIHZhbGlkIEVycm9yLiIpfWUuX2NhcGFiaWxpdHkucmVqZWN0KGkpfSkpLHQub24oIlBhc3N3b3JkUmVxdWVzdCIsKHQ9PntpZih0aGlzLiNycz1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKSxlLm9uUGFzc3dvcmQpe2NvbnN0IGk9dD0+e3QgaW5zdGFuY2VvZiBFcnJvcj90aGlzLiNycy5yZWplY3QodCk6dGhpcy4jcnMucmVzb2x2ZSh7cGFzc3dvcmQ6dH0pfTt0cnl7ZS5vblBhc3N3b3JkKGksdC5jb2RlKX1jYXRjaCh0KXt0aGlzLiNycy5yZWplY3QodCl9fWVsc2UgdGhpcy4jcnMucmVqZWN0KG5ldyBUKHQubWVzc2FnZSx0LmNvZGUpKTtyZXR1cm4gdGhpcy4jcnMucHJvbWlzZX0pKSx0Lm9uKCJEYXRhTG9hZGVkIiwodD0+e2Uub25Qcm9ncmVzcz8uKHtsb2FkZWQ6dC5sZW5ndGgsdG90YWw6dC5sZW5ndGh9KSx0aGlzLmRvd25sb2FkSW5mb0NhcGFiaWxpdHkucmVzb2x2ZSh0KX0pKSx0Lm9uKCJTdGFydFJlbmRlclBhZ2UiLCh0PT57dGhpcy5kZXN0cm95ZWR8fHRoaXMuI2lzLmdldCh0LnBhZ2VJbmRleCkuX3N0YXJ0UmVuZGVyUGFnZSh0LnRyYW5zcGFyZW5jeSx0LmNhY2hlS2V5KX0pKSx0Lm9uKCJjb21tb25vYmoiLCgoW2UsaSxzXSk9PntpZih0aGlzLmRlc3Ryb3llZClyZXR1cm4gbnVsbDtpZih0aGlzLmNvbW1vbk9ianMuaGFzKGUpKXJldHVybiBudWxsO3N3aXRjaChpKXtjYXNlIkZvbnQiOmNvbnN0e2Rpc2FibGVGb250RmFjZTpuLGZvbnRFeHRyYVByb3BlcnRpZXM6cixwZGZCdWc6YX09dGhpcy5fcGFyYW1zO2lmKCJlcnJvciJpbiBzKXtjb25zdCB0PXMuZXJyb3I7dyhgRXJyb3IgZHVyaW5nIGZvbnQgbG9hZGluZzogJHt0fWApLHRoaXMuY29tbW9uT2Jqcy5yZXNvbHZlKGUsdCk7YnJlYWt9Y29uc3Qgbz1hJiZnbG9iYWxUaGlzLkZvbnRJbnNwZWN0b3I/LmVuYWJsZWQ/KHQsZSk9Pmdsb2JhbFRoaXMuRm9udEluc3BlY3Rvci5mb250QWRkZWQodCxlKTpudWxsLGg9bmV3IHp0KHMse2Rpc2FibGVGb250RmFjZTpuLGluc3BlY3RGb250Om99KTt0aGlzLmZvbnRMb2FkZXIuYmluZChoKS5jYXRjaCgoKCk9PnQuc2VuZFdpdGhQcm9taXNlKCJGb250RmFsbGJhY2siLHtpZDplfSkpKS5maW5hbGx5KCgoKT0+eyFyJiZoLmRhdGEmJihoLmRhdGE9bnVsbCksdGhpcy5jb21tb25PYmpzLnJlc29sdmUoZSxoKX0pKTticmVhaztjYXNlIkNvcHlMb2NhbEltYWdlIjpjb25zdHtpbWFnZVJlZjpsfT1zO18obCwiVGhlIGltYWdlUmVmIG11c3QgYmUgZGVmaW5lZC4iKTtmb3IoY29uc3QgdCBvZiB0aGlzLiNpcy52YWx1ZXMoKSlmb3IoY29uc3RbLGldb2YgdC5vYmpzKWlmKGk/LnJlZj09PWwpcmV0dXJuIGkuZGF0YUxlbj8odGhpcy5jb21tb25PYmpzLnJlc29sdmUoZSxzdHJ1Y3R1cmVkQ2xvbmUoaSkpLGkuZGF0YUxlbik6bnVsbDticmVhaztjYXNlIkZvbnRQYXRoIjpjYXNlIkltYWdlIjpjYXNlIlBhdHRlcm4iOnRoaXMuY29tbW9uT2Jqcy5yZXNvbHZlKGUscyk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYEdvdCB1bmtub3duIGNvbW1vbiBvYmplY3QgdHlwZSAke2l9YCl9cmV0dXJuIG51bGx9KSksdC5vbigib2JqIiwoKFt0LGUsaSxzXSk9PntpZih0aGlzLmRlc3Ryb3llZClyZXR1cm47Y29uc3Qgbj10aGlzLiNpcy5nZXQoZSk7aWYoIW4ub2Jqcy5oYXModCkpaWYoMCE9PW4uX2ludGVudFN0YXRlcy5zaXplKXN3aXRjaChpKXtjYXNlIkltYWdlIjpuLm9ianMucmVzb2x2ZSh0LHMpLHM/LmRhdGFMZW4+MWU3JiYobi5fbWF5YmVDbGVhbnVwQWZ0ZXJSZW5kZXI9ITApO2JyZWFrO2Nhc2UiUGF0dGVybiI6bi5vYmpzLnJlc29sdmUodCxzKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgR290IHVua25vd24gb2JqZWN0IHR5cGUgJHtpfWApfWVsc2Ugcz8uYml0bWFwPy5jbG9zZSgpfSkpLHQub24oIkRvY1Byb2dyZXNzIiwodD0+e3RoaXMuZGVzdHJveWVkfHxlLm9uUHJvZ3Jlc3M/Lih7bG9hZGVkOnQubG9hZGVkLHRvdGFsOnQudG90YWx9KX0pKSx0Lm9uKCJGZXRjaEJ1aWx0SW5DTWFwIiwodD0+dGhpcy5kZXN0cm95ZWQ/UHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCJXb3JrZXIgd2FzIGRlc3Ryb3llZC4iKSk6dGhpcy5jTWFwUmVhZGVyRmFjdG9yeT90aGlzLmNNYXBSZWFkZXJGYWN0b3J5LmZldGNoKHQpOlByb21pc2UucmVqZWN0KG5ldyBFcnJvcigiQ01hcFJlYWRlckZhY3Rvcnkgbm90IGluaXRpYWxpemVkLCBzZWUgdGhlIGB1c2VXb3JrZXJGZXRjaGAgcGFyYW1ldGVyLiIpKSkpLHQub24oIkZldGNoU3RhbmRhcmRGb250RGF0YSIsKHQ9PnRoaXMuZGVzdHJveWVkP1Byb21pc2UucmVqZWN0KG5ldyBFcnJvcigiV29ya2VyIHdhcyBkZXN0cm95ZWQuIikpOnRoaXMuc3RhbmRhcmRGb250RGF0YUZhY3Rvcnk/dGhpcy5zdGFuZGFyZEZvbnREYXRhRmFjdG9yeS5mZXRjaCh0KTpQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoIlN0YW5kYXJkRm9udERhdGFGYWN0b3J5IG5vdCBpbml0aWFsaXplZCwgc2VlIHRoZSBgdXNlV29ya2VyRmV0Y2hgIHBhcmFtZXRlci4iKSkpKX1nZXREYXRhKCl7cmV0dXJuIHRoaXMubWVzc2FnZUhhbmRsZXIuc2VuZFdpdGhQcm9taXNlKCJHZXREYXRhIixudWxsKX1zYXZlRG9jdW1lbnQoKXt0aGlzLmFubm90YXRpb25TdG9yYWdlLnNpemU8PTAmJncoInNhdmVEb2N1bWVudCBjYWxsZWQgd2hpbGUgYGFubm90YXRpb25TdG9yYWdlYCBpcyBlbXB0eSwgcGxlYXNlIHVzZSB0aGUgZ2V0RGF0YS1tZXRob2QgaW5zdGVhZC4iKTtjb25zdHttYXA6dCx0cmFuc2ZlcjplfT10aGlzLmFubm90YXRpb25TdG9yYWdlLnNlcmlhbGl6YWJsZTtyZXR1cm4gdGhpcy5tZXNzYWdlSGFuZGxlci5zZW5kV2l0aFByb21pc2UoIlNhdmVEb2N1bWVudCIse2lzUHVyZVhmYTohIXRoaXMuX2h0bWxGb3JYZmEsbnVtUGFnZXM6dGhpcy5fbnVtUGFnZXMsYW5ub3RhdGlvblN0b3JhZ2U6dCxmaWxlbmFtZTp0aGlzLl9mdWxsUmVhZGVyPy5maWxlbmFtZT8/bnVsbH0sZSkuZmluYWxseSgoKCk9Pnt0aGlzLmFubm90YXRpb25TdG9yYWdlLnJlc2V0TW9kaWZpZWQoKX0pKX1nZXRQYWdlKHQpe2lmKCFOdW1iZXIuaXNJbnRlZ2VyKHQpfHx0PD0wfHx0PnRoaXMuX251bVBhZ2VzKXJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoIkludmFsaWQgcGFnZSByZXF1ZXN0LiIpKTtjb25zdCBlPXQtMSxpPXRoaXMuI3NzLmdldChlKTtpZihpKXJldHVybiBpO2NvbnN0IHM9dGhpcy5tZXNzYWdlSGFuZGxlci5zZW5kV2l0aFByb21pc2UoIkdldFBhZ2UiLHtwYWdlSW5kZXg6ZX0pLnRoZW4oKGk9PntpZih0aGlzLmRlc3Ryb3llZCl0aHJvdyBuZXcgRXJyb3IoIlRyYW5zcG9ydCBkZXN0cm95ZWQiKTtpLnJlZlN0ciYmdGhpcy4jbnMuc2V0KGkucmVmU3RyLHQpO2NvbnN0IHM9bmV3IGhpKGUsaSx0aGlzLHRoaXMuX3BhcmFtcy5wZGZCdWcpO3JldHVybiB0aGlzLiNpcy5zZXQoZSxzKSxzfSkpO3JldHVybiB0aGlzLiNzcy5zZXQoZSxzKSxzfWdldFBhZ2VJbmRleCh0KXtyZXR1cm4gbmkodCk/dGhpcy5tZXNzYWdlSGFuZGxlci5zZW5kV2l0aFByb21pc2UoIkdldFBhZ2VJbmRleCIse251bTp0Lm51bSxnZW46dC5nZW59KTpQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoIkludmFsaWQgcGFnZUluZGV4IHJlcXVlc3QuIikpfWdldEFubm90YXRpb25zKHQsZSl7cmV0dXJuIHRoaXMubWVzc2FnZUhhbmRsZXIuc2VuZFdpdGhQcm9taXNlKCJHZXRBbm5vdGF0aW9ucyIse3BhZ2VJbmRleDp0LGludGVudDplfSl9Z2V0RmllbGRPYmplY3RzKCl7cmV0dXJuIHRoaXMuI2FzKCJHZXRGaWVsZE9iamVjdHMiKX1oYXNKU0FjdGlvbnMoKXtyZXR1cm4gdGhpcy4jYXMoIkhhc0pTQWN0aW9ucyIpfWdldENhbGN1bGF0aW9uT3JkZXJJZHMoKXtyZXR1cm4gdGhpcy5tZXNzYWdlSGFuZGxlci5zZW5kV2l0aFByb21pc2UoIkdldENhbGN1bGF0aW9uT3JkZXJJZHMiLG51bGwpfWdldERlc3RpbmF0aW9ucygpe3JldHVybiB0aGlzLm1lc3NhZ2VIYW5kbGVyLnNlbmRXaXRoUHJvbWlzZSgiR2V0RGVzdGluYXRpb25zIixudWxsKX1nZXREZXN0aW5hdGlvbih0KXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHQ/UHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCJJbnZhbGlkIGRlc3RpbmF0aW9uIHJlcXVlc3QuIikpOnRoaXMubWVzc2FnZUhhbmRsZXIuc2VuZFdpdGhQcm9taXNlKCJHZXREZXN0aW5hdGlvbiIse2lkOnR9KX1nZXRQYWdlTGFiZWxzKCl7cmV0dXJuIHRoaXMubWVzc2FnZUhhbmRsZXIuc2VuZFdpdGhQcm9taXNlKCJHZXRQYWdlTGFiZWxzIixudWxsKX1nZXRQYWdlTGF5b3V0KCl7cmV0dXJuIHRoaXMubWVzc2FnZUhhbmRsZXIuc2VuZFdpdGhQcm9taXNlKCJHZXRQYWdlTGF5b3V0IixudWxsKX1nZXRQYWdlTW9kZSgpe3JldHVybiB0aGlzLm1lc3NhZ2VIYW5kbGVyLnNlbmRXaXRoUHJvbWlzZSgiR2V0UGFnZU1vZGUiLG51bGwpfWdldFZpZXdlclByZWZlcmVuY2VzKCl7cmV0dXJuIHRoaXMubWVzc2FnZUhhbmRsZXIuc2VuZFdpdGhQcm9taXNlKCJHZXRWaWV3ZXJQcmVmZXJlbmNlcyIsbnVsbCl9Z2V0T3BlbkFjdGlvbigpe3JldHVybiB0aGlzLm1lc3NhZ2VIYW5kbGVyLnNlbmRXaXRoUHJvbWlzZSgiR2V0T3BlbkFjdGlvbiIsbnVsbCl9Z2V0QXR0YWNobWVudHMoKXtyZXR1cm4gdGhpcy5tZXNzYWdlSGFuZGxlci5zZW5kV2l0aFByb21pc2UoIkdldEF0dGFjaG1lbnRzIixudWxsKX1nZXREb2NKU0FjdGlvbnMoKXtyZXR1cm4gdGhpcy4jYXMoIkdldERvY0pTQWN0aW9ucyIpfWdldFBhZ2VKU0FjdGlvbnModCl7cmV0dXJuIHRoaXMubWVzc2FnZUhhbmRsZXIuc2VuZFdpdGhQcm9taXNlKCJHZXRQYWdlSlNBY3Rpb25zIix7cGFnZUluZGV4OnR9KX1nZXRTdHJ1Y3RUcmVlKHQpe3JldHVybiB0aGlzLm1lc3NhZ2VIYW5kbGVyLnNlbmRXaXRoUHJvbWlzZSgiR2V0U3RydWN0VHJlZSIse3BhZ2VJbmRleDp0fSl9Z2V0T3V0bGluZSgpe3JldHVybiB0aGlzLm1lc3NhZ2VIYW5kbGVyLnNlbmRXaXRoUHJvbWlzZSgiR2V0T3V0bGluZSIsbnVsbCl9Z2V0T3B0aW9uYWxDb250ZW50Q29uZmlnKHQpe3JldHVybiB0aGlzLiNhcygiR2V0T3B0aW9uYWxDb250ZW50Q29uZmlnIikudGhlbigoZT0+bmV3IHhlKGUsdCkpKX1nZXRQZXJtaXNzaW9ucygpe3JldHVybiB0aGlzLm1lc3NhZ2VIYW5kbGVyLnNlbmRXaXRoUHJvbWlzZSgiR2V0UGVybWlzc2lvbnMiLG51bGwpfWdldE1ldGFkYXRhKCl7Y29uc3QgdD0iR2V0TWV0YWRhdGEiLGU9dGhpcy4jZXMuZ2V0KHQpO2lmKGUpcmV0dXJuIGU7Y29uc3QgaT10aGlzLm1lc3NhZ2VIYW5kbGVyLnNlbmRXaXRoUHJvbWlzZSh0LG51bGwpLnRoZW4oKHQ9Pih7aW5mbzp0WzBdLG1ldGFkYXRhOnRbMV0/bmV3IHllKHRbMV0pOm51bGwsY29udGVudERpc3Bvc2l0aW9uRmlsZW5hbWU6dGhpcy5fZnVsbFJlYWRlcj8uZmlsZW5hbWU/P251bGwsY29udGVudExlbmd0aDp0aGlzLl9mdWxsUmVhZGVyPy5jb250ZW50TGVuZ3RoPz9udWxsfSkpKTtyZXR1cm4gdGhpcy4jZXMuc2V0KHQsaSksaX1nZXRNYXJrSW5mbygpe3JldHVybiB0aGlzLm1lc3NhZ2VIYW5kbGVyLnNlbmRXaXRoUHJvbWlzZSgiR2V0TWFya0luZm8iLG51bGwpfWFzeW5jIHN0YXJ0Q2xlYW51cCh0PSExKXtpZighdGhpcy5kZXN0cm95ZWQpe2F3YWl0IHRoaXMubWVzc2FnZUhhbmRsZXIuc2VuZFdpdGhQcm9taXNlKCJDbGVhbnVwIixudWxsKTtmb3IoY29uc3QgdCBvZiB0aGlzLiNpcy52YWx1ZXMoKSlpZighdC5jbGVhbnVwKCkpdGhyb3cgbmV3IEVycm9yKGBzdGFydENsZWFudXA6IFBhZ2UgJHt0LnBhZ2VOdW1iZXJ9IGlzIGN1cnJlbnRseSByZW5kZXJpbmcuYCk7dGhpcy5jb21tb25PYmpzLmNsZWFyKCksdHx8dGhpcy5mb250TG9hZGVyLmNsZWFyKCksdGhpcy4jZXMuY2xlYXIoKSx0aGlzLmZpbHRlckZhY3RvcnkuZGVzdHJveSghMCksWWUuY2xlYW51cCgpfX1jYWNoZWRQYWdlTnVtYmVyKHQpe2lmKCFuaSh0KSlyZXR1cm4gbnVsbDtjb25zdCBlPTA9PT10Lmdlbj9gJHt0Lm51bX1SYDpgJHt0Lm51bX1SJHt0Lmdlbn1gO3JldHVybiB0aGlzLiNucy5nZXQoZSk/P251bGx9fWNvbnN0IHVpPVN5bWJvbCgiSU5JVElBTF9EQVRBIik7Y2xhc3MgcGl7I29zPU9iamVjdC5jcmVhdGUobnVsbCk7I2hzKHQpe3JldHVybiB0aGlzLiNvc1t0XXx8PXsuLi5Qcm9taXNlLndpdGhSZXNvbHZlcnMoKSxkYXRhOnVpfX1nZXQodCxlPW51bGwpe2lmKGUpe2NvbnN0IGk9dGhpcy4jaHModCk7cmV0dXJuIGkucHJvbWlzZS50aGVuKCgoKT0+ZShpLmRhdGEpKSksbnVsbH1jb25zdCBpPXRoaXMuI29zW3RdO2lmKCFpfHxpLmRhdGE9PT11aSl0aHJvdyBuZXcgRXJyb3IoYFJlcXVlc3Rpbmcgb2JqZWN0IHRoYXQgaXNuJ3QgcmVzb2x2ZWQgeWV0ICR7dH0uYCk7cmV0dXJuIGkuZGF0YX1oYXModCl7Y29uc3QgZT10aGlzLiNvc1t0XTtyZXR1cm4hIWUmJmUuZGF0YSE9PXVpfXJlc29sdmUodCxlPW51bGwpe2NvbnN0IGk9dGhpcy4jaHModCk7aS5kYXRhPWUsaS5yZXNvbHZlKCl9Y2xlYXIoKXtmb3IoY29uc3QgdCBpbiB0aGlzLiNvcyl7Y29uc3R7ZGF0YTplfT10aGlzLiNvc1t0XTtlPy5iaXRtYXA/LmNsb3NlKCl9dGhpcy4jb3M9T2JqZWN0LmNyZWF0ZShudWxsKX0qW1N5bWJvbC5pdGVyYXRvcl0oKXtmb3IoY29uc3QgdCBpbiB0aGlzLiNvcyl7Y29uc3R7ZGF0YTplfT10aGlzLiNvc1t0XTtlIT09dWkmJih5aWVsZFt0LGVdKX19fWNsYXNzIGdpeyNscz1udWxsO2NvbnN0cnVjdG9yKHQpe3RoaXMuI2xzPXQsdGhpcy5vbkNvbnRpbnVlPW51bGx9Z2V0IHByb21pc2UoKXtyZXR1cm4gdGhpcy4jbHMuY2FwYWJpbGl0eS5wcm9taXNlfWNhbmNlbCh0PTApe3RoaXMuI2xzLmNhbmNlbChudWxsLHQpfWdldCBzZXBhcmF0ZUFubm90cygpe2NvbnN0e3NlcGFyYXRlQW5ub3RzOnR9PXRoaXMuI2xzLm9wZXJhdG9yTGlzdDtpZighdClyZXR1cm4hMTtjb25zdHthbm5vdGF0aW9uQ2FudmFzTWFwOmV9PXRoaXMuI2xzO3JldHVybiB0LmZvcm18fHQuY2FudmFzJiZlPy5zaXplPjB9fWNsYXNzIGZpeyNjcz1udWxsO3N0YXRpYyNkcz1uZXcgV2Vha1NldDtjb25zdHJ1Y3Rvcih7Y2FsbGJhY2s6dCxwYXJhbXM6ZSxvYmpzOmksY29tbW9uT2JqczpzLGFubm90YXRpb25DYW52YXNNYXA6bixvcGVyYXRvckxpc3Q6cixwYWdlSW5kZXg6YSxjYW52YXNGYWN0b3J5Om8sZmlsdGVyRmFjdG9yeTpoLHVzZVJlcXVlc3RBbmltYXRpb25GcmFtZTpsPSExLHBkZkJ1ZzpjPSExLHBhZ2VDb2xvcnM6ZD1udWxsfSl7dGhpcy5jYWxsYmFjaz10LHRoaXMucGFyYW1zPWUsdGhpcy5vYmpzPWksdGhpcy5jb21tb25PYmpzPXMsdGhpcy5hbm5vdGF0aW9uQ2FudmFzTWFwPW4sdGhpcy5vcGVyYXRvckxpc3RJZHg9bnVsbCx0aGlzLm9wZXJhdG9yTGlzdD1yLHRoaXMuX3BhZ2VJbmRleD1hLHRoaXMuY2FudmFzRmFjdG9yeT1vLHRoaXMuZmlsdGVyRmFjdG9yeT1oLHRoaXMuX3BkZkJ1Zz1jLHRoaXMucGFnZUNvbG9ycz1kLHRoaXMucnVubmluZz0hMSx0aGlzLmdyYXBoaWNzUmVhZHlDYWxsYmFjaz1udWxsLHRoaXMuZ3JhcGhpY3NSZWFkeT0hMSx0aGlzLl91c2VSZXF1ZXN0QW5pbWF0aW9uRnJhbWU9ITA9PT1sJiYidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyx0aGlzLmNhbmNlbGxlZD0hMSx0aGlzLmNhcGFiaWxpdHk9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCksdGhpcy50YXNrPW5ldyBnaSh0aGlzKSx0aGlzLl9jYW5jZWxCb3VuZD10aGlzLmNhbmNlbC5iaW5kKHRoaXMpLHRoaXMuX2NvbnRpbnVlQm91bmQ9dGhpcy5fY29udGludWUuYmluZCh0aGlzKSx0aGlzLl9zY2hlZHVsZU5leHRCb3VuZD10aGlzLl9zY2hlZHVsZU5leHQuYmluZCh0aGlzKSx0aGlzLl9uZXh0Qm91bmQ9dGhpcy5fbmV4dC5iaW5kKHRoaXMpLHRoaXMuX2NhbnZhcz1lLmNhbnZhc0NvbnRleHQuY2FudmFzfWdldCBjb21wbGV0ZWQoKXtyZXR1cm4gdGhpcy5jYXBhYmlsaXR5LnByb21pc2UuY2F0Y2goKGZ1bmN0aW9uKCl7fSkpfWluaXRpYWxpemVHcmFwaGljcyh7dHJhbnNwYXJlbmN5OnQ9ITEsb3B0aW9uYWxDb250ZW50Q29uZmlnOmV9KXtpZih0aGlzLmNhbmNlbGxlZClyZXR1cm47aWYodGhpcy5fY2FudmFzKXtpZihmaS4jZHMuaGFzKHRoaXMuX2NhbnZhcykpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgdXNlIHRoZSBzYW1lIGNhbnZhcyBkdXJpbmcgbXVsdGlwbGUgcmVuZGVyKCkgb3BlcmF0aW9ucy4gVXNlIGRpZmZlcmVudCBjYW52YXMgb3IgZW5zdXJlIHByZXZpb3VzIG9wZXJhdGlvbnMgd2VyZSBjYW5jZWxsZWQgb3IgY29tcGxldGVkLiIpO2ZpLiNkcy5hZGQodGhpcy5fY2FudmFzKX10aGlzLl9wZGZCdWcmJmdsb2JhbFRoaXMuU3RlcHBlck1hbmFnZXI/LmVuYWJsZWQmJih0aGlzLnN0ZXBwZXI9Z2xvYmFsVGhpcy5TdGVwcGVyTWFuYWdlci5jcmVhdGUodGhpcy5fcGFnZUluZGV4KSx0aGlzLnN0ZXBwZXIuaW5pdCh0aGlzLm9wZXJhdG9yTGlzdCksdGhpcy5zdGVwcGVyLm5leHRCcmVha1BvaW50PXRoaXMuc3RlcHBlci5nZXROZXh0QnJlYWtQb2ludCgpKTtjb25zdHtjYW52YXNDb250ZXh0Omksdmlld3BvcnQ6cyx0cmFuc2Zvcm06bixiYWNrZ3JvdW5kOnJ9PXRoaXMucGFyYW1zO3RoaXMuZ2Z4PW5ldyBmZShpLHRoaXMuY29tbW9uT2Jqcyx0aGlzLm9ianMsdGhpcy5jYW52YXNGYWN0b3J5LHRoaXMuZmlsdGVyRmFjdG9yeSx7b3B0aW9uYWxDb250ZW50Q29uZmlnOmV9LHRoaXMuYW5ub3RhdGlvbkNhbnZhc01hcCx0aGlzLnBhZ2VDb2xvcnMpLHRoaXMuZ2Z4LmJlZ2luRHJhd2luZyh7dHJhbnNmb3JtOm4sdmlld3BvcnQ6cyx0cmFuc3BhcmVuY3k6dCxiYWNrZ3JvdW5kOnJ9KSx0aGlzLm9wZXJhdG9yTGlzdElkeD0wLHRoaXMuZ3JhcGhpY3NSZWFkeT0hMCx0aGlzLmdyYXBoaWNzUmVhZHlDYWxsYmFjaz8uKCl9Y2FuY2VsKHQ9bnVsbCxlPTApe3RoaXMucnVubmluZz0hMSx0aGlzLmNhbmNlbGxlZD0hMCx0aGlzLmdmeD8uZW5kRHJhd2luZygpLHRoaXMuI2NzJiYod2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuI2NzKSx0aGlzLiNjcz1udWxsKSxmaS4jZHMuZGVsZXRlKHRoaXMuX2NhbnZhcyksdGhpcy5jYWxsYmFjayh0fHxuZXcgaXQoYFJlbmRlcmluZyBjYW5jZWxsZWQsIHBhZ2UgJHt0aGlzLl9wYWdlSW5kZXgrMX1gLGUpKX1vcGVyYXRvckxpc3RDaGFuZ2VkKCl7dGhpcy5ncmFwaGljc1JlYWR5Pyh0aGlzLnN0ZXBwZXI/LnVwZGF0ZU9wZXJhdG9yTGlzdCh0aGlzLm9wZXJhdG9yTGlzdCksdGhpcy5ydW5uaW5nfHx0aGlzLl9jb250aW51ZSgpKTp0aGlzLmdyYXBoaWNzUmVhZHlDYWxsYmFja3x8PXRoaXMuX2NvbnRpbnVlQm91bmR9X2NvbnRpbnVlKCl7dGhpcy5ydW5uaW5nPSEwLHRoaXMuY2FuY2VsbGVkfHwodGhpcy50YXNrLm9uQ29udGludWU/dGhpcy50YXNrLm9uQ29udGludWUodGhpcy5fc2NoZWR1bGVOZXh0Qm91bmQpOnRoaXMuX3NjaGVkdWxlTmV4dCgpKX1fc2NoZWR1bGVOZXh0KCl7dGhpcy5fdXNlUmVxdWVzdEFuaW1hdGlvbkZyYW1lP3RoaXMuI2NzPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dGhpcy4jY3M9bnVsbCx0aGlzLl9uZXh0Qm91bmQoKS5jYXRjaCh0aGlzLl9jYW5jZWxCb3VuZCl9KSk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbih0aGlzLl9uZXh0Qm91bmQpLmNhdGNoKHRoaXMuX2NhbmNlbEJvdW5kKX1hc3luYyBfbmV4dCgpe3RoaXMuY2FuY2VsbGVkfHwodGhpcy5vcGVyYXRvckxpc3RJZHg9dGhpcy5nZnguZXhlY3V0ZU9wZXJhdG9yTGlzdCh0aGlzLm9wZXJhdG9yTGlzdCx0aGlzLm9wZXJhdG9yTGlzdElkeCx0aGlzLl9jb250aW51ZUJvdW5kLHRoaXMuc3RlcHBlciksdGhpcy5vcGVyYXRvckxpc3RJZHg9PT10aGlzLm9wZXJhdG9yTGlzdC5hcmdzQXJyYXkubGVuZ3RoJiYodGhpcy5ydW5uaW5nPSExLHRoaXMub3BlcmF0b3JMaXN0Lmxhc3RDaHVuayYmKHRoaXMuZ2Z4LmVuZERyYXdpbmcoKSxmaS4jZHMuZGVsZXRlKHRoaXMuX2NhbnZhcyksdGhpcy5jYWxsYmFjaygpKSkpfX1jb25zdCBtaT0iNC43Ljc2IixiaT0iOGI3M2I4MjhiIjtmdW5jdGlvbiB2aSh0KXtyZXR1cm4gTWF0aC5mbG9vcigyNTUqTWF0aC5tYXgoMCxNYXRoLm1pbigxLHQpKSkudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKX1mdW5jdGlvbiB5aSh0KXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsMjU1KnQpKX1pKDY3MCk7Y2xhc3MgQWl7c3RhdGljIENNWUtfRyhbdCxlLGksc10pe3JldHVyblsiRyIsMS1NYXRoLm1pbigxLC4zKnQrLjU5KmkrLjExKmUrcyldfXN0YXRpYyBHX0NNWUsoW3RdKXtyZXR1cm5bIkNNWUsiLDAsMCwwLDEtdF19c3RhdGljIEdfUkdCKFt0XSl7cmV0dXJuWyJSR0IiLHQsdCx0XX1zdGF0aWMgR19yZ2IoW3RdKXtyZXR1cm5bdD15aSh0KSx0LHRdfXN0YXRpYyBHX0hUTUwoW3RdKXtjb25zdCBlPXZpKHQpO3JldHVybmAjJHtlfSR7ZX0ke2V9YH1zdGF0aWMgUkdCX0coW3QsZSxpXSl7cmV0dXJuWyJHIiwuMyp0Ky41OSplKy4xMSppXX1zdGF0aWMgUkdCX3JnYih0KXtyZXR1cm4gdC5tYXAoeWkpfXN0YXRpYyBSR0JfSFRNTCh0KXtyZXR1cm5gIyR7dC5tYXAodmkpLmpvaW4oIiIpfWB9c3RhdGljIFRfSFRNTCgpe3JldHVybiIjMDAwMDAwMDAifXN0YXRpYyBUX3JnYigpe3JldHVybltudWxsXX1zdGF0aWMgQ01ZS19SR0IoW3QsZSxpLHNdKXtyZXR1cm5bIlJHQiIsMS1NYXRoLm1pbigxLHQrcyksMS1NYXRoLm1pbigxLGkrcyksMS1NYXRoLm1pbigxLGUrcyldfXN0YXRpYyBDTVlLX3JnYihbdCxlLGksc10pe3JldHVyblt5aSgxLU1hdGgubWluKDEsdCtzKSkseWkoMS1NYXRoLm1pbigxLGkrcykpLHlpKDEtTWF0aC5taW4oMSxlK3MpKV19c3RhdGljIENNWUtfSFRNTCh0KXtjb25zdCBlPXRoaXMuQ01ZS19SR0IodCkuc2xpY2UoMSk7cmV0dXJuIHRoaXMuUkdCX0hUTUwoZSl9c3RhdGljIFJHQl9DTVlLKFt0LGUsaV0pe2NvbnN0IHM9MS10LG49MS1lLHI9MS1pO3JldHVyblsiQ01ZSyIscyxuLHIsTWF0aC5taW4ocyxuLHIpXX19Y2xhc3Mgd2l7c3RhdGljIHNldHVwU3RvcmFnZSh0LGUsaSxzLG4pe2NvbnN0IHI9cy5nZXRWYWx1ZShlLHt2YWx1ZTpudWxsfSk7c3dpdGNoKGkubmFtZSl7Y2FzZSJ0ZXh0YXJlYSI6aWYobnVsbCE9PXIudmFsdWUmJih0LnRleHRDb250ZW50PXIudmFsdWUpLCJwcmludCI9PT1uKWJyZWFrO3QuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCh0PT57cy5zZXRWYWx1ZShlLHt2YWx1ZTp0LnRhcmdldC52YWx1ZX0pfSkpO2JyZWFrO2Nhc2UiaW5wdXQiOmlmKCJyYWRpbyI9PT1pLmF0dHJpYnV0ZXMudHlwZXx8ImNoZWNrYm94Ij09PWkuYXR0cmlidXRlcy50eXBlKXtpZihyLnZhbHVlPT09aS5hdHRyaWJ1dGVzLnhmYU9uP3Quc2V0QXR0cmlidXRlKCJjaGVja2VkIiwhMCk6ci52YWx1ZT09PWkuYXR0cmlidXRlcy54ZmFPZmYmJnQucmVtb3ZlQXR0cmlidXRlKCJjaGVja2VkIiksInByaW50Ij09PW4pYnJlYWs7dC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCh0PT57cy5zZXRWYWx1ZShlLHt2YWx1ZTp0LnRhcmdldC5jaGVja2VkP3QudGFyZ2V0LmdldEF0dHJpYnV0ZSgieGZhT24iKTp0LnRhcmdldC5nZXRBdHRyaWJ1dGUoInhmYU9mZiIpfSl9KSl9ZWxzZXtpZihudWxsIT09ci52YWx1ZSYmdC5zZXRBdHRyaWJ1dGUoInZhbHVlIixyLnZhbHVlKSwicHJpbnQiPT09bilicmVhazt0LmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwodD0+e3Muc2V0VmFsdWUoZSx7dmFsdWU6dC50YXJnZXQudmFsdWV9KX0pKX1icmVhaztjYXNlInNlbGVjdCI6aWYobnVsbCE9PXIudmFsdWUpe3Quc2V0QXR0cmlidXRlKCJ2YWx1ZSIsci52YWx1ZSk7Zm9yKGNvbnN0IHQgb2YgaS5jaGlsZHJlbil0LmF0dHJpYnV0ZXMudmFsdWU9PT1yLnZhbHVlP3QuYXR0cmlidXRlcy5zZWxlY3RlZD0hMDp0LmF0dHJpYnV0ZXMuaGFzT3duUHJvcGVydHkoInNlbGVjdGVkIikmJmRlbGV0ZSB0LmF0dHJpYnV0ZXMuc2VsZWN0ZWR9dC5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsKHQ9Pntjb25zdCBpPXQudGFyZ2V0Lm9wdGlvbnMsbj0tMT09PWkuc2VsZWN0ZWRJbmRleD8iIjppW2kuc2VsZWN0ZWRJbmRleF0udmFsdWU7cy5zZXRWYWx1ZShlLHt2YWx1ZTpufSl9KSl9fXN0YXRpYyBzZXRBdHRyaWJ1dGVzKHtodG1sOnQsZWxlbWVudDplLHN0b3JhZ2U6aT1udWxsLGludGVudDpzLGxpbmtTZXJ2aWNlOm59KXtjb25zdHthdHRyaWJ1dGVzOnJ9PWUsYT10IGluc3RhbmNlb2YgSFRNTEFuY2hvckVsZW1lbnQ7InJhZGlvIj09PXIudHlwZSYmKHIubmFtZT1gJHtyLm5hbWV9LSR7c31gKTtmb3IoY29uc3RbZSxpXW9mIE9iamVjdC5lbnRyaWVzKHIpKWlmKG51bGwhPWkpc3dpdGNoKGUpe2Nhc2UiY2xhc3MiOmkubGVuZ3RoJiZ0LnNldEF0dHJpYnV0ZShlLGkuam9pbigiICIpKTticmVhaztjYXNlImRhdGFJZCI6YnJlYWs7Y2FzZSJpZCI6dC5zZXRBdHRyaWJ1dGUoImRhdGEtZWxlbWVudC1pZCIsaSk7YnJlYWs7Y2FzZSJzdHlsZSI6T2JqZWN0LmFzc2lnbih0LnN0eWxlLGkpO2JyZWFrO2Nhc2UidGV4dENvbnRlbnQiOnQudGV4dENvbnRlbnQ9aTticmVhaztkZWZhdWx0OighYXx8ImhyZWYiIT09ZSYmIm5ld1dpbmRvdyIhPT1lKSYmdC5zZXRBdHRyaWJ1dGUoZSxpKX1hJiZuLmFkZExpbmtBdHRyaWJ1dGVzKHQsci5ocmVmLHIubmV3V2luZG93KSxpJiZyLmRhdGFJZCYmdGhpcy5zZXR1cFN0b3JhZ2UodCxyLmRhdGFJZCxlLGkpfXN0YXRpYyByZW5kZXIodCl7Y29uc3QgZT10LmFubm90YXRpb25TdG9yYWdlLGk9dC5saW5rU2VydmljZSxzPXQueGZhSHRtbCxuPXQuaW50ZW50fHwiZGlzcGxheSIscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHMubmFtZSk7cy5hdHRyaWJ1dGVzJiZ0aGlzLnNldEF0dHJpYnV0ZXMoe2h0bWw6cixlbGVtZW50OnMsaW50ZW50Om4sbGlua1NlcnZpY2U6aX0pO2NvbnN0IGE9InJpY2hUZXh0IiE9PW4sbz10LmRpdjtpZihvLmFwcGVuZChyKSx0LnZpZXdwb3J0KXtjb25zdCBlPWBtYXRyaXgoJHt0LnZpZXdwb3J0LnRyYW5zZm9ybS5qb2luKCIsIil9KWA7by5zdHlsZS50cmFuc2Zvcm09ZX1hJiZvLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCJ4ZmFMYXllciB4ZmFGb250Iik7Y29uc3QgaD1bXTtpZigwPT09cy5jaGlsZHJlbi5sZW5ndGgpe2lmKHMudmFsdWUpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUocy52YWx1ZSk7ci5hcHBlbmQodCksYSYmUWUuc2hvdWxkQnVpbGRUZXh0KHMubmFtZSkmJmgucHVzaCh0KX1yZXR1cm57dGV4dERpdnM6aH19Y29uc3QgbD1bW3MsLTEscl1dO2Zvcig7bC5sZW5ndGg+MDspe2NvbnN0W3QscyxyXT1sLmF0KC0xKTtpZihzKzE9PT10LmNoaWxkcmVuLmxlbmd0aCl7bC5wb3AoKTtjb250aW51ZX1jb25zdCBvPXQuY2hpbGRyZW5bKytsLmF0KC0xKVsxXV07aWYobnVsbD09PW8pY29udGludWU7Y29uc3R7bmFtZTpjfT1vO2lmKCIjdGV4dCI9PT1jKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG8udmFsdWUpO2gucHVzaCh0KSxyLmFwcGVuZCh0KTtjb250aW51ZX1jb25zdCBkPW8/LmF0dHJpYnV0ZXM/LnhtbG5zP2RvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhvLmF0dHJpYnV0ZXMueG1sbnMsYyk6ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChjKTtpZihyLmFwcGVuZChkKSxvLmF0dHJpYnV0ZXMmJnRoaXMuc2V0QXR0cmlidXRlcyh7aHRtbDpkLGVsZW1lbnQ6byxzdG9yYWdlOmUsaW50ZW50Om4sbGlua1NlcnZpY2U6aX0pLG8uY2hpbGRyZW4/Lmxlbmd0aD4wKWwucHVzaChbbywtMSxkXSk7ZWxzZSBpZihvLnZhbHVlKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG8udmFsdWUpO2EmJlFlLnNob3VsZEJ1aWxkVGV4dChjKSYmaC5wdXNoKHQpLGQuYXBwZW5kKHQpfX1mb3IoY29uc3QgdCBvZiBvLnF1ZXJ5U2VsZWN0b3JBbGwoIi54ZmFOb25JbnRlcmFjdGl2ZSBpbnB1dCwgLnhmYU5vbkludGVyYWN0aXZlIHRleHRhcmVhIikpdC5zZXRBdHRyaWJ1dGUoInJlYWRPbmx5IiwhMCk7cmV0dXJue3RleHREaXZzOmh9fXN0YXRpYyB1cGRhdGUodCl7Y29uc3QgZT1gbWF0cml4KCR7dC52aWV3cG9ydC50cmFuc2Zvcm0uam9pbigiLCIpfSlgO3QuZGl2LnN0eWxlLnRyYW5zZm9ybT1lLHQuZGl2LmhpZGRlbj0hMX19Y29uc3QgeGk9MWUzLF9pPW5ldyBXZWFrU2V0O2Z1bmN0aW9uIEVpKHQpe3JldHVybnt3aWR0aDp0WzJdLXRbMF0saGVpZ2h0OnRbM10tdFsxXX19Y2xhc3MgQ2l7c3RhdGljIGNyZWF0ZSh0KXtzd2l0Y2godC5kYXRhLmFubm90YXRpb25UeXBlKXtjYXNlIDI6cmV0dXJuIG5ldyBUaSh0KTtjYXNlIDE6cmV0dXJuIG5ldyBNaSh0KTtjYXNlIDIwOnN3aXRjaCh0LmRhdGEuZmllbGRUeXBlKXtjYXNlIlR4IjpyZXR1cm4gbmV3IElpKHQpO2Nhc2UiQnRuIjpyZXR1cm4gdC5kYXRhLnJhZGlvQnV0dG9uP25ldyBEaSh0KTp0LmRhdGEuY2hlY2tCb3g/bmV3IFBpKHQpOm5ldyBMaSh0KTtjYXNlIkNoIjpyZXR1cm4gbmV3IEZpKHQpO2Nhc2UiU2lnIjpyZXR1cm4gbmV3IFJpKHQpfXJldHVybiBuZXcga2kodCk7Y2FzZSAxNjpyZXR1cm4gbmV3IE9pKHQpO2Nhc2UgMzpyZXR1cm4gbmV3IEJpKHQpO2Nhc2UgNDpyZXR1cm4gbmV3IHppKHQpO2Nhc2UgNTpyZXR1cm4gbmV3IEhpKHQpO2Nhc2UgNjpyZXR1cm4gbmV3IGppKHQpO2Nhc2UgODpyZXR1cm4gbmV3IFVpKHQpO2Nhc2UgMTQ6cmV0dXJuIG5ldyBXaSh0KTtjYXNlIDE1OnJldHVybiBuZXcgR2kodCk7Y2FzZSA3OnJldHVybiBuZXcgJGkodCk7Y2FzZSA5OnJldHVybiBuZXcgVmkodCk7Y2FzZSAxMDpyZXR1cm4gbmV3IHFpKHQpO2Nhc2UgMTE6cmV0dXJuIG5ldyBYaSh0KTtjYXNlIDEyOnJldHVybiBuZXcgS2kodCk7Y2FzZSAxMzpyZXR1cm4gbmV3IFlpKHQpO2Nhc2UgMTc6cmV0dXJuIG5ldyBRaSh0KTtkZWZhdWx0OnJldHVybiBuZXcgU2kodCl9fX1jbGFzcyBTaXsjdXM9bnVsbDsjcHM9ITE7I2dzPW51bGw7Y29uc3RydWN0b3IodCx7aXNSZW5kZXJhYmxlOmU9ITEsaWdub3JlQm9yZGVyOmk9ITEsY3JlYXRlUXVhZHJpbGF0ZXJhbHM6cz0hMX09e30pe3RoaXMuaXNSZW5kZXJhYmxlPWUsdGhpcy5kYXRhPXQuZGF0YSx0aGlzLmxheWVyPXQubGF5ZXIsdGhpcy5saW5rU2VydmljZT10LmxpbmtTZXJ2aWNlLHRoaXMuZG93bmxvYWRNYW5hZ2VyPXQuZG93bmxvYWRNYW5hZ2VyLHRoaXMuaW1hZ2VSZXNvdXJjZXNQYXRoPXQuaW1hZ2VSZXNvdXJjZXNQYXRoLHRoaXMucmVuZGVyRm9ybXM9dC5yZW5kZXJGb3Jtcyx0aGlzLnN2Z0ZhY3Rvcnk9dC5zdmdGYWN0b3J5LHRoaXMuYW5ub3RhdGlvblN0b3JhZ2U9dC5hbm5vdGF0aW9uU3RvcmFnZSx0aGlzLmVuYWJsZVNjcmlwdGluZz10LmVuYWJsZVNjcmlwdGluZyx0aGlzLmhhc0pTQWN0aW9ucz10Lmhhc0pTQWN0aW9ucyx0aGlzLl9maWVsZE9iamVjdHM9dC5maWVsZE9iamVjdHMsdGhpcy5wYXJlbnQ9dC5wYXJlbnQsZSYmKHRoaXMuY29udGFpbmVyPXRoaXMuX2NyZWF0ZUNvbnRhaW5lcihpKSkscyYmdGhpcy5fY3JlYXRlUXVhZHJpbGF0ZXJhbHMoKX1zdGF0aWMgX2hhc1BvcHVwRGF0YSh7dGl0bGVPYmo6dCxjb250ZW50c09iajplLHJpY2hUZXh0Oml9KXtyZXR1cm4hISh0Py5zdHJ8fGU/LnN0cnx8aT8uc3RyKX1nZXQgX2lzRWRpdGFibGUoKXtyZXR1cm4gdGhpcy5kYXRhLmlzRWRpdGFibGV9Z2V0IGhhc1BvcHVwRGF0YSgpe3JldHVybiBTaS5faGFzUG9wdXBEYXRhKHRoaXMuZGF0YSl9dXBkYXRlRWRpdGVkKHQpe2lmKCF0aGlzLmNvbnRhaW5lcilyZXR1cm47dGhpcy4jdXN8fD17cmVjdDp0aGlzLmRhdGEucmVjdC5zbGljZSgwKX07Y29uc3R7cmVjdDplfT10O2UmJnRoaXMuI2ZzKGUpLHRoaXMuI2dzPy5wb3B1cC51cGRhdGVFZGl0ZWQodCl9cmVzZXRFZGl0ZWQoKXt0aGlzLiN1cyYmKHRoaXMuI2ZzKHRoaXMuI3VzLnJlY3QpLHRoaXMuI2dzPy5wb3B1cC5yZXNldEVkaXRlZCgpLHRoaXMuI3VzPW51bGwpfSNmcyh0KXtjb25zdHtjb250YWluZXI6e3N0eWxlOmV9LGRhdGE6e3JlY3Q6aSxyb3RhdGlvbjpzfSxwYXJlbnQ6e3ZpZXdwb3J0OntyYXdEaW1zOntwYWdlV2lkdGg6bixwYWdlSGVpZ2h0OnIscGFnZVg6YSxwYWdlWTpvfX19fT10aGlzO2k/LnNwbGljZSgwLDQsLi4udCk7Y29uc3R7d2lkdGg6aCxoZWlnaHQ6bH09RWkodCk7ZS5sZWZ0PTEwMCoodFswXS1hKS9uKyIlIixlLnRvcD0xMDAqKHItdFszXStvKS9yKyIlIiwwPT09cz8oZS53aWR0aD0xMDAqaC9uKyIlIixlLmhlaWdodD0xMDAqbC9yKyIlIik6dGhpcy5zZXRSb3RhdGlvbihzKX1fY3JlYXRlQ29udGFpbmVyKHQpe2NvbnN0e2RhdGE6ZSxwYXJlbnQ6e3BhZ2U6aSx2aWV3cG9ydDpzfX09dGhpcyxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlY3Rpb24iKTtuLnNldEF0dHJpYnV0ZSgiZGF0YS1hbm5vdGF0aW9uLWlkIixlLmlkKSx0aGlzIGluc3RhbmNlb2Yga2l8fChuLnRhYkluZGV4PXhpKTtjb25zdHtzdHlsZTpyfT1uO2lmKHIuekluZGV4PXRoaXMucGFyZW50LnpJbmRleCsrLGUucG9wdXBSZWYmJm4uc2V0QXR0cmlidXRlKCJhcmlhLWhhc3BvcHVwIiwiZGlhbG9nIiksZS5hbHRlcm5hdGl2ZVRleHQmJihuLnRpdGxlPWUuYWx0ZXJuYXRpdmVUZXh0KSxlLm5vUm90YXRlJiZuLmNsYXNzTGlzdC5hZGQoIm5vcm90YXRlIiksIWUucmVjdHx8dGhpcyBpbnN0YW5jZW9mIE9pKXtjb25zdHtyb3RhdGlvbjp0fT1lO3JldHVybiBlLmhhc093bkNhbnZhc3x8MD09PXR8fHRoaXMuc2V0Um90YXRpb24odCxuKSxufWNvbnN0e3dpZHRoOmEsaGVpZ2h0Om99PUVpKGUucmVjdCk7aWYoIXQmJmUuYm9yZGVyU3R5bGUud2lkdGg+MCl7ci5ib3JkZXJXaWR0aD1gJHtlLmJvcmRlclN0eWxlLndpZHRofXB4YDtjb25zdCB0PWUuYm9yZGVyU3R5bGUuaG9yaXpvbnRhbENvcm5lclJhZGl1cyxpPWUuYm9yZGVyU3R5bGUudmVydGljYWxDb3JuZXJSYWRpdXM7aWYodD4wfHxpPjApe2NvbnN0IGU9YGNhbGMoJHt0fXB4ICogdmFyKC0tc2NhbGUtZmFjdG9yKSkgLyBjYWxjKCR7aX1weCAqIHZhcigtLXNjYWxlLWZhY3RvcikpYDtyLmJvcmRlclJhZGl1cz1lfWVsc2UgaWYodGhpcyBpbnN0YW5jZW9mIERpKXtjb25zdCB0PWBjYWxjKCR7YX1weCAqIHZhcigtLXNjYWxlLWZhY3RvcikpIC8gY2FsYygke299cHggKiB2YXIoLS1zY2FsZS1mYWN0b3IpKWA7ci5ib3JkZXJSYWRpdXM9dH1zd2l0Y2goZS5ib3JkZXJTdHlsZS5zdHlsZSl7Y2FzZSAxOnIuYm9yZGVyU3R5bGU9InNvbGlkIjticmVhaztjYXNlIDI6ci5ib3JkZXJTdHlsZT0iZGFzaGVkIjticmVhaztjYXNlIDM6dygiVW5pbXBsZW1lbnRlZCBib3JkZXIgc3R5bGU6IGJldmVsZWQiKTticmVhaztjYXNlIDQ6dygiVW5pbXBsZW1lbnRlZCBib3JkZXIgc3R5bGU6IGluc2V0Iik7YnJlYWs7Y2FzZSA1OnIuYm9yZGVyQm90dG9tU3R5bGU9InNvbGlkIn1jb25zdCBzPWUuYm9yZGVyQ29sb3J8fG51bGw7cz8odGhpcy4jcHM9ITAsci5ib3JkZXJDb2xvcj16Lm1ha2VIZXhDb2xvcigwfHNbMF0sMHxzWzFdLDB8c1syXSkpOnIuYm9yZGVyV2lkdGg9MH1jb25zdCBoPXoubm9ybWFsaXplUmVjdChbZS5yZWN0WzBdLGkudmlld1szXS1lLnJlY3RbMV0raS52aWV3WzFdLGUucmVjdFsyXSxpLnZpZXdbM10tZS5yZWN0WzNdK2kudmlld1sxXV0pLHtwYWdlV2lkdGg6bCxwYWdlSGVpZ2h0OmMscGFnZVg6ZCxwYWdlWTp1fT1zLnJhd0RpbXM7ci5sZWZ0PTEwMCooaFswXS1kKS9sKyIlIixyLnRvcD0xMDAqKGhbMV0tdSkvYysiJSI7Y29uc3R7cm90YXRpb246cH09ZTtyZXR1cm4gZS5oYXNPd25DYW52YXN8fDA9PT1wPyhyLndpZHRoPTEwMCphL2wrIiUiLHIuaGVpZ2h0PTEwMCpvL2MrIiUiKTp0aGlzLnNldFJvdGF0aW9uKHAsbiksbn1zZXRSb3RhdGlvbih0LGU9dGhpcy5jb250YWluZXIpe2lmKCF0aGlzLmRhdGEucmVjdClyZXR1cm47Y29uc3R7cGFnZVdpZHRoOmkscGFnZUhlaWdodDpzfT10aGlzLnBhcmVudC52aWV3cG9ydC5yYXdEaW1zLHt3aWR0aDpuLGhlaWdodDpyfT1FaSh0aGlzLmRhdGEucmVjdCk7bGV0IGEsbzt0JTE4MD09MD8oYT0xMDAqbi9pLG89MTAwKnIvcyk6KGE9MTAwKnIvaSxvPTEwMCpuL3MpLGUuc3R5bGUud2lkdGg9YCR7YX0lYCxlLnN0eWxlLmhlaWdodD1gJHtvfSVgLGUuc2V0QXR0cmlidXRlKCJkYXRhLW1haW4tcm90YXRpb24iLCgzNjAtdCklMzYwKX1nZXQgX2NvbW1vbkFjdGlvbnMoKXtjb25zdCB0PSh0LGUsaSk9Pntjb25zdCBzPWkuZGV0YWlsW3RdLG49c1swXSxyPXMuc2xpY2UoMSk7aS50YXJnZXQuc3R5bGVbZV09QWlbYCR7bn1fSFRNTGBdKHIpLHRoaXMuYW5ub3RhdGlvblN0b3JhZ2Uuc2V0VmFsdWUodGhpcy5kYXRhLmlkLHtbZV06QWlbYCR7bn1fcmdiYF0ocil9KX07cmV0dXJuIEModGhpcywiX2NvbW1vbkFjdGlvbnMiLHtkaXNwbGF5OnQ9Pntjb25zdHtkaXNwbGF5OmV9PXQuZGV0YWlsLGk9ZSUyPT0xO3RoaXMuY29udGFpbmVyLnN0eWxlLnZpc2liaWxpdHk9aT8iaGlkZGVuIjoidmlzaWJsZSIsdGhpcy5hbm5vdGF0aW9uU3RvcmFnZS5zZXRWYWx1ZSh0aGlzLmRhdGEuaWQse25vVmlldzppLG5vUHJpbnQ6MT09PWV8fDI9PT1lfSl9LHByaW50OnQ9Pnt0aGlzLmFubm90YXRpb25TdG9yYWdlLnNldFZhbHVlKHRoaXMuZGF0YS5pZCx7bm9QcmludDohdC5kZXRhaWwucHJpbnR9KX0saGlkZGVuOnQ9Pntjb25zdHtoaWRkZW46ZX09dC5kZXRhaWw7dGhpcy5jb250YWluZXIuc3R5bGUudmlzaWJpbGl0eT1lPyJoaWRkZW4iOiJ2aXNpYmxlIix0aGlzLmFubm90YXRpb25TdG9yYWdlLnNldFZhbHVlKHRoaXMuZGF0YS5pZCx7bm9QcmludDplLG5vVmlldzplfSl9LGZvY3VzOnQ9PntzZXRUaW1lb3V0KCgoKT0+dC50YXJnZXQuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITF9KSksMCl9LHVzZXJOYW1lOnQ9Pnt0LnRhcmdldC50aXRsZT10LmRldGFpbC51c2VyTmFtZX0scmVhZG9ubHk6dD0+e3QudGFyZ2V0LmRpc2FibGVkPXQuZGV0YWlsLnJlYWRvbmx5fSxyZXF1aXJlZDp0PT57dGhpcy5fc2V0UmVxdWlyZWQodC50YXJnZXQsdC5kZXRhaWwucmVxdWlyZWQpfSxiZ0NvbG9yOmU9Pnt0KCJiZ0NvbG9yIiwiYmFja2dyb3VuZENvbG9yIixlKX0sZmlsbENvbG9yOmU9Pnt0KCJmaWxsQ29sb3IiLCJiYWNrZ3JvdW5kQ29sb3IiLGUpfSxmZ0NvbG9yOmU9Pnt0KCJmZ0NvbG9yIiwiY29sb3IiLGUpfSx0ZXh0Q29sb3I6ZT0+e3QoInRleHRDb2xvciIsImNvbG9yIixlKX0sYm9yZGVyQ29sb3I6ZT0+e3QoImJvcmRlckNvbG9yIiwiYm9yZGVyQ29sb3IiLGUpfSxzdHJva2VDb2xvcjplPT57dCgic3Ryb2tlQ29sb3IiLCJib3JkZXJDb2xvciIsZSl9LHJvdGF0aW9uOnQ9Pntjb25zdCBlPXQuZGV0YWlsLnJvdGF0aW9uO3RoaXMuc2V0Um90YXRpb24oZSksdGhpcy5hbm5vdGF0aW9uU3RvcmFnZS5zZXRWYWx1ZSh0aGlzLmRhdGEuaWQse3JvdGF0aW9uOmV9KX19KX1fZGlzcGF0Y2hFdmVudEZyb21TYW5kYm94KHQsZSl7Y29uc3QgaT10aGlzLl9jb21tb25BY3Rpb25zO2Zvcihjb25zdCBzIG9mIE9iamVjdC5rZXlzKGUuZGV0YWlsKSl7Y29uc3Qgbj10W3NdfHxpW3NdO24/LihlKX19X3NldERlZmF1bHRQcm9wZXJ0aWVzRnJvbUpTKHQpe2lmKCF0aGlzLmVuYWJsZVNjcmlwdGluZylyZXR1cm47Y29uc3QgZT10aGlzLmFubm90YXRpb25TdG9yYWdlLmdldFJhd1ZhbHVlKHRoaXMuZGF0YS5pZCk7aWYoIWUpcmV0dXJuO2NvbnN0IGk9dGhpcy5fY29tbW9uQWN0aW9ucztmb3IoY29uc3RbcyxuXW9mIE9iamVjdC5lbnRyaWVzKGUpKXtjb25zdCByPWlbc107ciYmKHIoe2RldGFpbDp7W3NdOm59LHRhcmdldDp0fSksZGVsZXRlIGVbc10pfX1fY3JlYXRlUXVhZHJpbGF0ZXJhbHMoKXtpZighdGhpcy5jb250YWluZXIpcmV0dXJuO2NvbnN0e3F1YWRQb2ludHM6dH09dGhpcy5kYXRhO2lmKCF0KXJldHVybjtjb25zdFtlLGkscyxuXT10aGlzLmRhdGEucmVjdC5tYXAoKHQ9Pk1hdGguZnJvdW5kKHQpKSk7aWYoOD09PXQubGVuZ3RoKXtjb25zdFtyLGEsbyxoXT10LnN1YmFycmF5KDIsNik7aWYocz09PXImJm49PT1hJiZlPT09byYmaT09PWgpcmV0dXJufWNvbnN0e3N0eWxlOnJ9PXRoaXMuY29udGFpbmVyO2xldCBhO2lmKHRoaXMuI3BzKXtjb25zdHtib3JkZXJDb2xvcjp0LGJvcmRlcldpZHRoOmV9PXI7ci5ib3JkZXJXaWR0aD0wLGE9WyJ1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCIsJzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIicsJyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiB2aWV3Qm94PSIwIDAgMSAxIj4nLGA8ZyBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSIke3R9IiBzdHJva2Utd2lkdGg9IiR7ZX0iPmBdLHRoaXMuY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImhhc0JvcmRlciIpfWNvbnN0IG89cy1lLGg9bi1pLHtzdmdGYWN0b3J5Omx9PXRoaXMsYz1sLmNyZWF0ZUVsZW1lbnQoInN2ZyIpO2MuY2xhc3NMaXN0LmFkZCgicXVhZHJpbGF0ZXJhbHNDb250YWluZXIiKSxjLnNldEF0dHJpYnV0ZSgid2lkdGgiLDApLGMuc2V0QXR0cmlidXRlKCJoZWlnaHQiLDApO2NvbnN0IGQ9bC5jcmVhdGVFbGVtZW50KCJkZWZzIik7Yy5hcHBlbmQoZCk7Y29uc3QgdT1sLmNyZWF0ZUVsZW1lbnQoImNsaXBQYXRoIikscD1gY2xpcHBhdGhfJHt0aGlzLmRhdGEuaWR9YDt1LnNldEF0dHJpYnV0ZSgiaWQiLHApLHUuc2V0QXR0cmlidXRlKCJjbGlwUGF0aFVuaXRzIiwib2JqZWN0Qm91bmRpbmdCb3giKSxkLmFwcGVuZCh1KTtmb3IobGV0IGk9MixzPXQubGVuZ3RoO2k8cztpKz04KXtjb25zdCBzPXRbaV0scj10W2krMV0sYz10W2krMl0sZD10W2krM10scD1sLmNyZWF0ZUVsZW1lbnQoInJlY3QiKSxnPShjLWUpL28sZj0obi1yKS9oLG09KHMtYykvbyxiPShyLWQpL2g7cC5zZXRBdHRyaWJ1dGUoIngiLGcpLHAuc2V0QXR0cmlidXRlKCJ5IixmKSxwLnNldEF0dHJpYnV0ZSgid2lkdGgiLG0pLHAuc2V0QXR0cmlidXRlKCJoZWlnaHQiLGIpLHUuYXBwZW5kKHApLGE/LnB1c2goYDxyZWN0IHZlY3Rvci1lZmZlY3Q9Im5vbi1zY2FsaW5nLXN0cm9rZSIgeD0iJHtnfSIgeT0iJHtmfSIgd2lkdGg9IiR7bX0iIGhlaWdodD0iJHtifSIvPmApfXRoaXMuI3BzJiYoYS5wdXNoKCI8L2c+PC9zdmc+JykiKSxyLmJhY2tncm91bmRJbWFnZT1hLmpvaW4oIiIpKSx0aGlzLmNvbnRhaW5lci5hcHBlbmQoYyksdGhpcy5jb250YWluZXIuc3R5bGUuY2xpcFBhdGg9YHVybCgjJHtwfSlgfV9jcmVhdGVQb3B1cCgpe2NvbnN0e2NvbnRhaW5lcjp0LGRhdGE6ZX09dGhpczt0LnNldEF0dHJpYnV0ZSgiYXJpYS1oYXNwb3B1cCIsImRpYWxvZyIpO2NvbnN0IGk9dGhpcy4jZ3M9bmV3IE9pKHtkYXRhOntjb2xvcjplLmNvbG9yLHRpdGxlT2JqOmUudGl0bGVPYmosbW9kaWZpY2F0aW9uRGF0ZTplLm1vZGlmaWNhdGlvbkRhdGUsY29udGVudHNPYmo6ZS5jb250ZW50c09iaixyaWNoVGV4dDplLnJpY2hUZXh0LHBhcmVudFJlY3Q6ZS5yZWN0LGJvcmRlclN0eWxlOjAsaWQ6YHBvcHVwXyR7ZS5pZH1gLHJvdGF0aW9uOmUucm90YXRpb259LHBhcmVudDp0aGlzLnBhcmVudCxlbGVtZW50czpbdGhpc119KTt0aGlzLnBhcmVudC5kaXYuYXBwZW5kKGkucmVuZGVyKCkpfXJlbmRlcigpe3goIkFic3RyYWN0IG1ldGhvZCBgQW5ub3RhdGlvbkVsZW1lbnQucmVuZGVyYCBjYWxsZWQiKX1fZ2V0RWxlbWVudHNCeU5hbWUodCxlPW51bGwpe2NvbnN0IGk9W107aWYodGhpcy5fZmllbGRPYmplY3RzKXtjb25zdCBzPXRoaXMuX2ZpZWxkT2JqZWN0c1t0XTtpZihzKWZvcihjb25zdHtwYWdlOnQsaWQ6bixleHBvcnRWYWx1ZXM6cn1vZiBzKXtpZigtMT09PXQpY29udGludWU7aWYobj09PWUpY29udGludWU7Y29uc3Qgcz0ic3RyaW5nIj09dHlwZW9mIHI/cjpudWxsLGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgW2RhdGEtZWxlbWVudC1pZD0iJHtufSJdYCk7IWF8fF9pLmhhcyhhKT9pLnB1c2goe2lkOm4sZXhwb3J0VmFsdWU6cyxkb21FbGVtZW50OmF9KTp3KGBfZ2V0RWxlbWVudHNCeU5hbWUgLSBlbGVtZW50IG5vdCBhbGxvd2VkOiAke259YCl9cmV0dXJuIGl9Zm9yKGNvbnN0IHMgb2YgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUodCkpe2NvbnN0e2V4cG9ydFZhbHVlOnR9PXMsbj1zLmdldEF0dHJpYnV0ZSgiZGF0YS1lbGVtZW50LWlkIik7biE9PWUmJl9pLmhhcyhzKSYmaS5wdXNoKHtpZDpuLGV4cG9ydFZhbHVlOnQsZG9tRWxlbWVudDpzfSl9cmV0dXJuIGl9c2hvdygpe3RoaXMuY29udGFpbmVyJiYodGhpcy5jb250YWluZXIuaGlkZGVuPSExKSx0aGlzLnBvcHVwPy5tYXliZVNob3coKX1oaWRlKCl7dGhpcy5jb250YWluZXImJih0aGlzLmNvbnRhaW5lci5oaWRkZW49ITApLHRoaXMucG9wdXA/LmZvcmNlSGlkZSgpfWdldEVsZW1lbnRzVG9UcmlnZ2VyUG9wdXAoKXtyZXR1cm4gdGhpcy5jb250YWluZXJ9YWRkSGlnaGxpZ2h0QXJlYSgpe2NvbnN0IHQ9dGhpcy5nZXRFbGVtZW50c1RvVHJpZ2dlclBvcHVwKCk7aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IoY29uc3QgZSBvZiB0KWUuY2xhc3NMaXN0LmFkZCgiaGlnaGxpZ2h0QXJlYSIpO2Vsc2UgdC5jbGFzc0xpc3QuYWRkKCJoaWdobGlnaHRBcmVhIil9X2VkaXRPbkRvdWJsZUNsaWNrKCl7aWYoIXRoaXMuX2lzRWRpdGFibGUpcmV0dXJuO2NvbnN0e2Fubm90YXRpb25FZGl0b3JUeXBlOnQsZGF0YTp7aWQ6ZX19PXRoaXM7dGhpcy5jb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLCgoKT0+e3RoaXMubGlua1NlcnZpY2UuZXZlbnRCdXM/LmRpc3BhdGNoKCJzd2l0Y2hhbm5vdGF0aW9uZWRpdG9ybW9kZSIse3NvdXJjZTp0aGlzLG1vZGU6dCxlZGl0SWQ6ZX0pfSkpfX1jbGFzcyBUaSBleHRlbmRzIFNpe2NvbnN0cnVjdG9yKHQsZT1udWxsKXtzdXBlcih0LHtpc1JlbmRlcmFibGU6ITAsaWdub3JlQm9yZGVyOiEhZT8uaWdub3JlQm9yZGVyLGNyZWF0ZVF1YWRyaWxhdGVyYWxzOiEwfSksdGhpcy5pc1Rvb2x0aXBPbmx5PXQuZGF0YS5pc1Rvb2x0aXBPbmx5fXJlbmRlcigpe2NvbnN0e2RhdGE6dCxsaW5rU2VydmljZTplfT10aGlzLGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2kuc2V0QXR0cmlidXRlKCJkYXRhLWVsZW1lbnQtaWQiLHQuaWQpO2xldCBzPSExO3JldHVybiB0LnVybD8oZS5hZGRMaW5rQXR0cmlidXRlcyhpLHQudXJsLHQubmV3V2luZG93KSxzPSEwKTp0LmFjdGlvbj8odGhpcy5fYmluZE5hbWVkQWN0aW9uKGksdC5hY3Rpb24pLHM9ITApOnQuYXR0YWNobWVudD8odGhpcy4jbXMoaSx0LmF0dGFjaG1lbnQsdC5hdHRhY2htZW50RGVzdCkscz0hMCk6dC5zZXRPQ0dTdGF0ZT8odGhpcy4jYnMoaSx0LnNldE9DR1N0YXRlKSxzPSEwKTp0LmRlc3Q/KHRoaXMuX2JpbmRMaW5rKGksdC5kZXN0KSxzPSEwKToodC5hY3Rpb25zJiYodC5hY3Rpb25zLkFjdGlvbnx8dC5hY3Rpb25zWyJNb3VzZSBVcCJdfHx0LmFjdGlvbnNbIk1vdXNlIERvd24iXSkmJnRoaXMuZW5hYmxlU2NyaXB0aW5nJiZ0aGlzLmhhc0pTQWN0aW9ucyYmKHRoaXMuX2JpbmRKU0FjdGlvbihpLHQpLHM9ITApLHQucmVzZXRGb3JtPyh0aGlzLl9iaW5kUmVzZXRGb3JtQWN0aW9uKGksdC5yZXNldEZvcm0pLHM9ITApOnRoaXMuaXNUb29sdGlwT25seSYmIXMmJih0aGlzLl9iaW5kTGluayhpLCIiKSxzPSEwKSksdGhpcy5jb250YWluZXIuY2xhc3NMaXN0LmFkZCgibGlua0Fubm90YXRpb24iKSxzJiZ0aGlzLmNvbnRhaW5lci5hcHBlbmQoaSksdGhpcy5jb250YWluZXJ9I3ZzKCl7dGhpcy5jb250YWluZXIuc2V0QXR0cmlidXRlKCJkYXRhLWludGVybmFsLWxpbmsiLCIiKX1fYmluZExpbmsodCxlKXt0LmhyZWY9dGhpcy5saW5rU2VydmljZS5nZXREZXN0aW5hdGlvbkhhc2goZSksdC5vbmNsaWNrPSgpPT4oZSYmdGhpcy5saW5rU2VydmljZS5nb1RvRGVzdGluYXRpb24oZSksITEpLChlfHwiIj09PWUpJiZ0aGlzLiN2cygpfV9iaW5kTmFtZWRBY3Rpb24odCxlKXt0LmhyZWY9dGhpcy5saW5rU2VydmljZS5nZXRBbmNob3JVcmwoIiIpLHQub25jbGljaz0oKT0+KHRoaXMubGlua1NlcnZpY2UuZXhlY3V0ZU5hbWVkQWN0aW9uKGUpLCExKSx0aGlzLiN2cygpfSNtcyh0LGUsaT1udWxsKXt0LmhyZWY9dGhpcy5saW5rU2VydmljZS5nZXRBbmNob3JVcmwoIiIpLGUuZGVzY3JpcHRpb24mJih0LnRpdGxlPWUuZGVzY3JpcHRpb24pLHQub25jbGljaz0oKT0+KHRoaXMuZG93bmxvYWRNYW5hZ2VyPy5vcGVuT3JEb3dubG9hZERhdGEoZS5jb250ZW50LGUuZmlsZW5hbWUsaSksITEpLHRoaXMuI3ZzKCl9I2JzKHQsZSl7dC5ocmVmPXRoaXMubGlua1NlcnZpY2UuZ2V0QW5jaG9yVXJsKCIiKSx0Lm9uY2xpY2s9KCk9Pih0aGlzLmxpbmtTZXJ2aWNlLmV4ZWN1dGVTZXRPQ0dTdGF0ZShlKSwhMSksdGhpcy4jdnMoKX1fYmluZEpTQWN0aW9uKHQsZSl7dC5ocmVmPXRoaXMubGlua1NlcnZpY2UuZ2V0QW5jaG9yVXJsKCIiKTtjb25zdCBpPW5ldyBNYXAoW1siQWN0aW9uIiwib25jbGljayJdLFsiTW91c2UgVXAiLCJvbm1vdXNldXAiXSxbIk1vdXNlIERvd24iLCJvbm1vdXNlZG93biJdXSk7Zm9yKGNvbnN0IHMgb2YgT2JqZWN0LmtleXMoZS5hY3Rpb25zKSl7Y29uc3Qgbj1pLmdldChzKTtuJiYodFtuXT0oKT0+KHRoaXMubGlua1NlcnZpY2UuZXZlbnRCdXM/LmRpc3BhdGNoKCJkaXNwYXRjaGV2ZW50aW5zYW5kYm94Iix7c291cmNlOnRoaXMsZGV0YWlsOntpZDplLmlkLG5hbWU6c319KSwhMSkpfXQub25jbGlja3x8KHQub25jbGljaz0oKT0+ITEpLHRoaXMuI3ZzKCl9X2JpbmRSZXNldEZvcm1BY3Rpb24odCxlKXtjb25zdCBpPXQub25jbGljaztpZihpfHwodC5ocmVmPXRoaXMubGlua1NlcnZpY2UuZ2V0QW5jaG9yVXJsKCIiKSksdGhpcy4jdnMoKSwhdGhpcy5fZmllbGRPYmplY3RzKXJldHVybiB3KCdfYmluZFJlc2V0Rm9ybUFjdGlvbiAtICJyZXNldEZvcm0iIGFjdGlvbiBub3Qgc3VwcG9ydGVkLCBlbnN1cmUgdGhhdCB0aGUgYGZpZWxkT2JqZWN0c2AgcGFyYW1ldGVyIGlzIHByb3ZpZGVkLicpLHZvaWQoaXx8KHQub25jbGljaz0oKT0+ITEpKTt0Lm9uY2xpY2s9KCk9PntpPy4oKTtjb25zdHtmaWVsZHM6dCxyZWZzOnMsaW5jbHVkZTpufT1lLHI9W107aWYoMCE9PXQubGVuZ3RofHwwIT09cy5sZW5ndGgpe2NvbnN0IGU9bmV3IFNldChzKTtmb3IoY29uc3QgaSBvZiB0KXtjb25zdCB0PXRoaXMuX2ZpZWxkT2JqZWN0c1tpXXx8W107Zm9yKGNvbnN0e2lkOml9b2YgdCllLmFkZChpKX1mb3IoY29uc3QgdCBvZiBPYmplY3QudmFsdWVzKHRoaXMuX2ZpZWxkT2JqZWN0cykpZm9yKGNvbnN0IGkgb2YgdCllLmhhcyhpLmlkKT09PW4mJnIucHVzaChpKX1lbHNlIGZvcihjb25zdCB0IG9mIE9iamVjdC52YWx1ZXModGhpcy5fZmllbGRPYmplY3RzKSlyLnB1c2goLi4udCk7Y29uc3QgYT10aGlzLmFubm90YXRpb25TdG9yYWdlLG89W107Zm9yKGNvbnN0IHQgb2Ygcil7Y29uc3R7aWQ6ZX09dDtzd2l0Y2goby5wdXNoKGUpLHQudHlwZSl7Y2FzZSJ0ZXh0Ijp7Y29uc3QgaT10LmRlZmF1bHRWYWx1ZXx8IiI7YS5zZXRWYWx1ZShlLHt2YWx1ZTppfSk7YnJlYWt9Y2FzZSJjaGVja2JveCI6Y2FzZSJyYWRpb2J1dHRvbiI6e2NvbnN0IGk9dC5kZWZhdWx0VmFsdWU9PT10LmV4cG9ydFZhbHVlczthLnNldFZhbHVlKGUse3ZhbHVlOml9KTticmVha31jYXNlImNvbWJvYm94IjpjYXNlImxpc3Rib3giOntjb25zdCBpPXQuZGVmYXVsdFZhbHVlfHwiIjthLnNldFZhbHVlKGUse3ZhbHVlOml9KTticmVha31kZWZhdWx0OmNvbnRpbnVlfWNvbnN0IGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgW2RhdGEtZWxlbWVudC1pZD0iJHtlfSJdYCk7aSYmKF9pLmhhcyhpKT9pLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNldGZvcm0iKSk6dyhgX2JpbmRSZXNldEZvcm1BY3Rpb24gLSBlbGVtZW50IG5vdCBhbGxvd2VkOiAke2V9YCkpfXJldHVybiB0aGlzLmVuYWJsZVNjcmlwdGluZyYmdGhpcy5saW5rU2VydmljZS5ldmVudEJ1cz8uZGlzcGF0Y2goImRpc3BhdGNoZXZlbnRpbnNhbmRib3giLHtzb3VyY2U6dGhpcyxkZXRhaWw6e2lkOiJhcHAiLGlkczpvLG5hbWU6IlJlc2V0Rm9ybSJ9fSksITF9fX1jbGFzcyBNaSBleHRlbmRzIFNpe2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQse2lzUmVuZGVyYWJsZTohMH0pfXJlbmRlcigpe3RoaXMuY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoInRleHRBbm5vdGF0aW9uIik7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTtyZXR1cm4gdC5zcmM9dGhpcy5pbWFnZVJlc291cmNlc1BhdGgrImFubm90YXRpb24tIit0aGlzLmRhdGEubmFtZS50b0xvd2VyQ2FzZSgpKyIuc3ZnIix0LnNldEF0dHJpYnV0ZSgiZGF0YS1sMTBuLWlkIiwicGRmanMtdGV4dC1hbm5vdGF0aW9uLXR5cGUiKSx0LnNldEF0dHJpYnV0ZSgiZGF0YS1sMTBuLWFyZ3MiLEpTT04uc3RyaW5naWZ5KHt0eXBlOnRoaXMuZGF0YS5uYW1lfSkpLCF0aGlzLmRhdGEucG9wdXBSZWYmJnRoaXMuaGFzUG9wdXBEYXRhJiZ0aGlzLl9jcmVhdGVQb3B1cCgpLHRoaXMuY29udGFpbmVyLmFwcGVuZCh0KSx0aGlzLmNvbnRhaW5lcn19Y2xhc3Mga2kgZXh0ZW5kcyBTaXtyZW5kZXIoKXtyZXR1cm4gdGhpcy5jb250YWluZXJ9c2hvd0VsZW1lbnRBbmRIaWRlQ2FudmFzKHQpe3RoaXMuZGF0YS5oYXNPd25DYW52YXMmJigiQ0FOVkFTIj09PXQucHJldmlvdXNTaWJsaW5nPy5ub2RlTmFtZSYmKHQucHJldmlvdXNTaWJsaW5nLmhpZGRlbj0hMCksdC5oaWRkZW49ITEpfV9nZXRLZXlNb2RpZmllcih0KXtyZXR1cm4gTi5wbGF0Zm9ybS5pc01hYz90Lm1ldGFLZXk6dC5jdHJsS2V5fV9zZXRFdmVudExpc3RlbmVyKHQsZSxpLHMsbil7aS5pbmNsdWRlcygibW91c2UiKT90LmFkZEV2ZW50TGlzdGVuZXIoaSwodD0+e3RoaXMubGlua1NlcnZpY2UuZXZlbnRCdXM/LmRpc3BhdGNoKCJkaXNwYXRjaGV2ZW50aW5zYW5kYm94Iix7c291cmNlOnRoaXMsZGV0YWlsOntpZDp0aGlzLmRhdGEuaWQsbmFtZTpzLHZhbHVlOm4odCksc2hpZnQ6dC5zaGlmdEtleSxtb2RpZmllcjp0aGlzLl9nZXRLZXlNb2RpZmllcih0KX19KX0pKTp0LmFkZEV2ZW50TGlzdGVuZXIoaSwodD0+e2lmKCJibHVyIj09PWkpe2lmKCFlLmZvY3VzZWR8fCF0LnJlbGF0ZWRUYXJnZXQpcmV0dXJuO2UuZm9jdXNlZD0hMX1lbHNlIGlmKCJmb2N1cyI9PT1pKXtpZihlLmZvY3VzZWQpcmV0dXJuO2UuZm9jdXNlZD0hMH1uJiZ0aGlzLmxpbmtTZXJ2aWNlLmV2ZW50QnVzPy5kaXNwYXRjaCgiZGlzcGF0Y2hldmVudGluc2FuZGJveCIse3NvdXJjZTp0aGlzLGRldGFpbDp7aWQ6dGhpcy5kYXRhLmlkLG5hbWU6cyx2YWx1ZTpuKHQpfX0pfSkpfV9zZXRFdmVudExpc3RlbmVycyh0LGUsaSxzKXtmb3IoY29uc3RbbixyXW9mIGkpKCJBY3Rpb24iPT09cnx8dGhpcy5kYXRhLmFjdGlvbnM/LltyXSkmJigiRm9jdXMiIT09ciYmIkJsdXIiIT09cnx8KGV8fD17Zm9jdXNlZDohMX0pLHRoaXMuX3NldEV2ZW50TGlzdGVuZXIodCxlLG4scixzKSwiRm9jdXMiIT09cnx8dGhpcy5kYXRhLmFjdGlvbnM/LkJsdXI/IkJsdXIiIT09cnx8dGhpcy5kYXRhLmFjdGlvbnM/LkZvY3VzfHx0aGlzLl9zZXRFdmVudExpc3RlbmVyKHQsZSwiZm9jdXMiLCJGb2N1cyIsbnVsbCk6dGhpcy5fc2V0RXZlbnRMaXN0ZW5lcih0LGUsImJsdXIiLCJCbHVyIixudWxsKSl9X3NldEJhY2tncm91bmRDb2xvcih0KXtjb25zdCBlPXRoaXMuZGF0YS5iYWNrZ3JvdW5kQ29sb3J8fG51bGw7dC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9bnVsbD09PWU/InRyYW5zcGFyZW50Ijp6Lm1ha2VIZXhDb2xvcihlWzBdLGVbMV0sZVsyXSl9X3NldFRleHRTdHlsZSh0KXtjb25zdHtmb250Q29sb3I6ZX09dGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YSxpPXRoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGEuZm9udFNpemV8fDkscz10LnN0eWxlO2xldCBuO2NvbnN0IHI9dD0+TWF0aC5yb3VuZCgxMCp0KS8xMDtpZih0aGlzLmRhdGEubXVsdGlMaW5lKXtjb25zdCB0PU1hdGguYWJzKHRoaXMuZGF0YS5yZWN0WzNdLXRoaXMuZGF0YS5yZWN0WzFdLTIpLGU9dC8oTWF0aC5yb3VuZCh0LyhvKmkpKXx8MSk7bj1NYXRoLm1pbihpLHIoZS9vKSl9ZWxzZXtjb25zdCB0PU1hdGguYWJzKHRoaXMuZGF0YS5yZWN0WzNdLXRoaXMuZGF0YS5yZWN0WzFdLTIpO249TWF0aC5taW4oaSxyKHQvbykpfXMuZm9udFNpemU9YGNhbGMoJHtufXB4ICogdmFyKC0tc2NhbGUtZmFjdG9yKSlgLHMuY29sb3I9ei5tYWtlSGV4Q29sb3IoZVswXSxlWzFdLGVbMl0pLG51bGwhPT10aGlzLmRhdGEudGV4dEFsaWdubWVudCYmKHMudGV4dEFsaWduPVsibGVmdCIsImNlbnRlciIsInJpZ2h0Il1bdGhpcy5kYXRhLnRleHRBbGlnbm1lbnRdKX1fc2V0UmVxdWlyZWQodCxlKXtlP3Quc2V0QXR0cmlidXRlKCJyZXF1aXJlZCIsITApOnQucmVtb3ZlQXR0cmlidXRlKCJyZXF1aXJlZCIpLHQuc2V0QXR0cmlidXRlKCJhcmlhLXJlcXVpcmVkIixlKX19Y2xhc3MgSWkgZXh0ZW5kcyBraXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0LHtpc1JlbmRlcmFibGU6dC5yZW5kZXJGb3Jtc3x8dC5kYXRhLmhhc093bkNhbnZhc3x8IXQuZGF0YS5oYXNBcHBlYXJhbmNlJiYhIXQuZGF0YS5maWVsZFZhbHVlfSl9c2V0UHJvcGVydHlPblNpYmxpbmdzKHQsZSxpLHMpe2NvbnN0IG49dGhpcy5hbm5vdGF0aW9uU3RvcmFnZTtmb3IoY29uc3QgciBvZiB0aGlzLl9nZXRFbGVtZW50c0J5TmFtZSh0Lm5hbWUsdC5pZCkpci5kb21FbGVtZW50JiYoci5kb21FbGVtZW50W2VdPWkpLG4uc2V0VmFsdWUoci5pZCx7W3NdOml9KX1yZW5kZXIoKXtjb25zdCB0PXRoaXMuYW5ub3RhdGlvblN0b3JhZ2UsZT10aGlzLmRhdGEuaWQ7dGhpcy5jb250YWluZXIuY2xhc3NMaXN0LmFkZCgidGV4dFdpZGdldEFubm90YXRpb24iKTtsZXQgaT1udWxsO2lmKHRoaXMucmVuZGVyRm9ybXMpe2NvbnN0IHM9dC5nZXRWYWx1ZShlLHt2YWx1ZTp0aGlzLmRhdGEuZmllbGRWYWx1ZX0pO2xldCBuPXMudmFsdWV8fCIiO2NvbnN0IHI9dC5nZXRWYWx1ZShlLHtjaGFyTGltaXQ6dGhpcy5kYXRhLm1heExlbn0pLmNoYXJMaW1pdDtyJiZuLmxlbmd0aD5yJiYobj1uLnNsaWNlKDAscikpO2xldCBhPXMuZm9ybWF0dGVkVmFsdWV8fHRoaXMuZGF0YS50ZXh0Q29udGVudD8uam9pbigiXG4iKXx8bnVsbDthJiZ0aGlzLmRhdGEuY29tYiYmKGE9YS5yZXBsYWNlQWxsKC9ccysvZywiIikpO2NvbnN0IG89e3VzZXJWYWx1ZTpuLGZvcm1hdHRlZFZhbHVlOmEsbGFzdENvbW1pdHRlZFZhbHVlOm51bGwsY29tbWl0S2V5OjEsZm9jdXNlZDohMX07dGhpcy5kYXRhLm11bHRpTGluZT8oaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpLGkudGV4dENvbnRlbnQ9YT8/bix0aGlzLmRhdGEuZG9Ob3RTY3JvbGwmJihpLnN0eWxlLm92ZXJmbG93WT0iaGlkZGVuIikpOihpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IiksaS50eXBlPSJ0ZXh0IixpLnNldEF0dHJpYnV0ZSgidmFsdWUiLGE/P24pLHRoaXMuZGF0YS5kb05vdFNjcm9sbCYmKGkuc3R5bGUub3ZlcmZsb3dYPSJoaWRkZW4iKSksdGhpcy5kYXRhLmhhc093bkNhbnZhcyYmKGkuaGlkZGVuPSEwKSxfaS5hZGQoaSksaS5zZXRBdHRyaWJ1dGUoImRhdGEtZWxlbWVudC1pZCIsZSksaS5kaXNhYmxlZD10aGlzLmRhdGEucmVhZE9ubHksaS5uYW1lPXRoaXMuZGF0YS5maWVsZE5hbWUsaS50YWJJbmRleD14aSx0aGlzLl9zZXRSZXF1aXJlZChpLHRoaXMuZGF0YS5yZXF1aXJlZCksciYmKGkubWF4TGVuZ3RoPXIpLGkuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLChzPT57dC5zZXRWYWx1ZShlLHt2YWx1ZTpzLnRhcmdldC52YWx1ZX0pLHRoaXMuc2V0UHJvcGVydHlPblNpYmxpbmdzKGksInZhbHVlIixzLnRhcmdldC52YWx1ZSwidmFsdWUiKSxvLmZvcm1hdHRlZFZhbHVlPW51bGx9KSksaS5hZGRFdmVudExpc3RlbmVyKCJyZXNldGZvcm0iLCh0PT57Y29uc3QgZT10aGlzLmRhdGEuZGVmYXVsdEZpZWxkVmFsdWU/PyIiO2kudmFsdWU9by51c2VyVmFsdWU9ZSxvLmZvcm1hdHRlZFZhbHVlPW51bGx9KSk7bGV0IGg9dD0+e2NvbnN0e2Zvcm1hdHRlZFZhbHVlOmV9PW87bnVsbCE9ZSYmKHQudGFyZ2V0LnZhbHVlPWUpLHQudGFyZ2V0LnNjcm9sbExlZnQ9MH07aWYodGhpcy5lbmFibGVTY3JpcHRpbmcmJnRoaXMuaGFzSlNBY3Rpb25zKXtpLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwodD0+e2lmKG8uZm9jdXNlZClyZXR1cm47Y29uc3R7dGFyZ2V0OmV9PXQ7by51c2VyVmFsdWUmJihlLnZhbHVlPW8udXNlclZhbHVlKSxvLmxhc3RDb21taXR0ZWRWYWx1ZT1lLnZhbHVlLG8uY29tbWl0S2V5PTEsdGhpcy5kYXRhLmFjdGlvbnM/LkZvY3VzfHwoby5mb2N1c2VkPSEwKX0pKSxpLmFkZEV2ZW50TGlzdGVuZXIoInVwZGF0ZWZyb21zYW5kYm94IiwoaT0+e3RoaXMuc2hvd0VsZW1lbnRBbmRIaWRlQ2FudmFzKGkudGFyZ2V0KTtjb25zdCBzPXt2YWx1ZShpKXtvLnVzZXJWYWx1ZT1pLmRldGFpbC52YWx1ZT8/IiIsdC5zZXRWYWx1ZShlLHt2YWx1ZTpvLnVzZXJWYWx1ZS50b1N0cmluZygpfSksaS50YXJnZXQudmFsdWU9by51c2VyVmFsdWV9LGZvcm1hdHRlZFZhbHVlKGkpe2NvbnN0e2Zvcm1hdHRlZFZhbHVlOnN9PWkuZGV0YWlsO28uZm9ybWF0dGVkVmFsdWU9cyxudWxsIT1zJiZpLnRhcmdldCE9PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQmJihpLnRhcmdldC52YWx1ZT1zKSx0LnNldFZhbHVlKGUse2Zvcm1hdHRlZFZhbHVlOnN9KX0sc2VsUmFuZ2UodCl7dC50YXJnZXQuc2V0U2VsZWN0aW9uUmFuZ2UoLi4udC5kZXRhaWwuc2VsUmFuZ2UpfSxjaGFyTGltaXQ6aT0+e2NvbnN0e2NoYXJMaW1pdDpzfT1pLmRldGFpbCx7dGFyZ2V0Om59PWk7aWYoMD09PXMpcmV0dXJuIHZvaWQgbi5yZW1vdmVBdHRyaWJ1dGUoIm1heExlbmd0aCIpO24uc2V0QXR0cmlidXRlKCJtYXhMZW5ndGgiLHMpO2xldCByPW8udXNlclZhbHVlOyFyfHxyLmxlbmd0aDw9c3x8KHI9ci5zbGljZSgwLHMpLG4udmFsdWU9by51c2VyVmFsdWU9cix0LnNldFZhbHVlKGUse3ZhbHVlOnJ9KSx0aGlzLmxpbmtTZXJ2aWNlLmV2ZW50QnVzPy5kaXNwYXRjaCgiZGlzcGF0Y2hldmVudGluc2FuZGJveCIse3NvdXJjZTp0aGlzLGRldGFpbDp7aWQ6ZSxuYW1lOiJLZXlzdHJva2UiLHZhbHVlOnIsd2lsbENvbW1pdDohMCxjb21taXRLZXk6MSxzZWxTdGFydDpuLnNlbGVjdGlvblN0YXJ0LHNlbEVuZDpuLnNlbGVjdGlvbkVuZH19KSl9fTt0aGlzLl9kaXNwYXRjaEV2ZW50RnJvbVNhbmRib3gocyxpKX0pKSxpLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCh0PT57by5jb21taXRLZXk9MTtsZXQgaT0tMTtpZigiRXNjYXBlIj09PXQua2V5P2k9MDoiRW50ZXIiIT09dC5rZXl8fHRoaXMuZGF0YS5tdWx0aUxpbmU/IlRhYiI9PT10LmtleSYmKG8uY29tbWl0S2V5PTMpOmk9MiwtMT09PWkpcmV0dXJuO2NvbnN0e3ZhbHVlOnN9PXQudGFyZ2V0O28ubGFzdENvbW1pdHRlZFZhbHVlIT09cyYmKG8ubGFzdENvbW1pdHRlZFZhbHVlPXMsby51c2VyVmFsdWU9cyx0aGlzLmxpbmtTZXJ2aWNlLmV2ZW50QnVzPy5kaXNwYXRjaCgiZGlzcGF0Y2hldmVudGluc2FuZGJveCIse3NvdXJjZTp0aGlzLGRldGFpbDp7aWQ6ZSxuYW1lOiJLZXlzdHJva2UiLHZhbHVlOnMsd2lsbENvbW1pdDohMCxjb21taXRLZXk6aSxzZWxTdGFydDp0LnRhcmdldC5zZWxlY3Rpb25TdGFydCxzZWxFbmQ6dC50YXJnZXQuc2VsZWN0aW9uRW5kfX0pKX0pKTtjb25zdCBzPWg7aD1udWxsLGkuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKHQ9PntpZighby5mb2N1c2VkfHwhdC5yZWxhdGVkVGFyZ2V0KXJldHVybjt0aGlzLmRhdGEuYWN0aW9ucz8uQmx1cnx8KG8uZm9jdXNlZD0hMSk7Y29uc3R7dmFsdWU6aX09dC50YXJnZXQ7by51c2VyVmFsdWU9aSxvLmxhc3RDb21taXR0ZWRWYWx1ZSE9PWkmJnRoaXMubGlua1NlcnZpY2UuZXZlbnRCdXM/LmRpc3BhdGNoKCJkaXNwYXRjaGV2ZW50aW5zYW5kYm94Iix7c291cmNlOnRoaXMsZGV0YWlsOntpZDplLG5hbWU6IktleXN0cm9rZSIsdmFsdWU6aSx3aWxsQ29tbWl0OiEwLGNvbW1pdEtleTpvLmNvbW1pdEtleSxzZWxTdGFydDp0LnRhcmdldC5zZWxlY3Rpb25TdGFydCxzZWxFbmQ6dC50YXJnZXQuc2VsZWN0aW9uRW5kfX0pLHModCl9KSksdGhpcy5kYXRhLmFjdGlvbnM/LktleXN0cm9rZSYmaS5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmVpbnB1dCIsKHQ9PntvLmxhc3RDb21taXR0ZWRWYWx1ZT1udWxsO2NvbnN0e2RhdGE6aSx0YXJnZXQ6c309dCx7dmFsdWU6bixzZWxlY3Rpb25TdGFydDpyLHNlbGVjdGlvbkVuZDphfT1zO2xldCBoPXIsbD1hO3N3aXRjaCh0LmlucHV0VHlwZSl7Y2FzZSJkZWxldGVXb3JkQmFja3dhcmQiOntjb25zdCB0PW4uc3Vic3RyaW5nKDAscikubWF0Y2goL1x3KlteXHddKiQvKTt0JiYoaC09dFswXS5sZW5ndGgpO2JyZWFrfWNhc2UiZGVsZXRlV29yZEZvcndhcmQiOntjb25zdCB0PW4uc3Vic3RyaW5nKHIpLm1hdGNoKC9eW15cd10qXHcqLyk7dCYmKGwrPXRbMF0ubGVuZ3RoKTticmVha31jYXNlImRlbGV0ZUNvbnRlbnRCYWNrd2FyZCI6cj09PWEmJihoLT0xKTticmVhaztjYXNlImRlbGV0ZUNvbnRlbnRGb3J3YXJkIjpyPT09YSYmKGwrPTEpfXQucHJldmVudERlZmF1bHQoKSx0aGlzLmxpbmtTZXJ2aWNlLmV2ZW50QnVzPy5kaXNwYXRjaCgiZGlzcGF0Y2hldmVudGluc2FuZGJveCIse3NvdXJjZTp0aGlzLGRldGFpbDp7aWQ6ZSxuYW1lOiJLZXlzdHJva2UiLHZhbHVlOm4sY2hhbmdlOml8fCIiLHdpbGxDb21taXQ6ITEsc2VsU3RhcnQ6aCxzZWxFbmQ6bH19KX0pKSx0aGlzLl9zZXRFdmVudExpc3RlbmVycyhpLG8sW1siZm9jdXMiLCJGb2N1cyJdLFsiYmx1ciIsIkJsdXIiXSxbIm1vdXNlZG93biIsIk1vdXNlIERvd24iXSxbIm1vdXNlZW50ZXIiLCJNb3VzZSBFbnRlciJdLFsibW91c2VsZWF2ZSIsIk1vdXNlIEV4aXQiXSxbIm1vdXNldXAiLCJNb3VzZSBVcCJdXSwodD0+dC50YXJnZXQudmFsdWUpKX1pZihoJiZpLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLGgpLHRoaXMuZGF0YS5jb21iKXtjb25zdCB0PSh0aGlzLmRhdGEucmVjdFsyXS10aGlzLmRhdGEucmVjdFswXSkvcjtpLmNsYXNzTGlzdC5hZGQoImNvbWIiKSxpLnN0eWxlLmxldHRlclNwYWNpbmc9YGNhbGMoJHt0fXB4ICogdmFyKC0tc2NhbGUtZmFjdG9yKSAtIDFjaClgfX1lbHNlIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksaS50ZXh0Q29udGVudD10aGlzLmRhdGEuZmllbGRWYWx1ZSxpLnN0eWxlLnZlcnRpY2FsQWxpZ249Im1pZGRsZSIsaS5zdHlsZS5kaXNwbGF5PSJ0YWJsZS1jZWxsIix0aGlzLmRhdGEuaGFzT3duQ2FudmFzJiYoaS5oaWRkZW49ITApO3JldHVybiB0aGlzLl9zZXRUZXh0U3R5bGUoaSksdGhpcy5fc2V0QmFja2dyb3VuZENvbG9yKGkpLHRoaXMuX3NldERlZmF1bHRQcm9wZXJ0aWVzRnJvbUpTKGkpLHRoaXMuY29udGFpbmVyLmFwcGVuZChpKSx0aGlzLmNvbnRhaW5lcn19Y2xhc3MgUmkgZXh0ZW5kcyBraXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0LHtpc1JlbmRlcmFibGU6ISF0LmRhdGEuaGFzT3duQ2FudmFzfSl9fWNsYXNzIFBpIGV4dGVuZHMga2l7Y29uc3RydWN0b3IodCl7c3VwZXIodCx7aXNSZW5kZXJhYmxlOnQucmVuZGVyRm9ybXN9KX1yZW5kZXIoKXtjb25zdCB0PXRoaXMuYW5ub3RhdGlvblN0b3JhZ2UsZT10aGlzLmRhdGEsaT1lLmlkO2xldCBzPXQuZ2V0VmFsdWUoaSx7dmFsdWU6ZS5leHBvcnRWYWx1ZT09PWUuZmllbGRWYWx1ZX0pLnZhbHVlOyJzdHJpbmciPT10eXBlb2YgcyYmKHM9Ik9mZiIhPT1zLHQuc2V0VmFsdWUoaSx7dmFsdWU6c30pKSx0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJidXR0b25XaWRnZXRBbm5vdGF0aW9uIiwiY2hlY2tCb3giKTtjb25zdCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7cmV0dXJuIF9pLmFkZChuKSxuLnNldEF0dHJpYnV0ZSgiZGF0YS1lbGVtZW50LWlkIixpKSxuLmRpc2FibGVkPWUucmVhZE9ubHksdGhpcy5fc2V0UmVxdWlyZWQobix0aGlzLmRhdGEucmVxdWlyZWQpLG4udHlwZT0iY2hlY2tib3giLG4ubmFtZT1lLmZpZWxkTmFtZSxzJiZuLnNldEF0dHJpYnV0ZSgiY2hlY2tlZCIsITApLG4uc2V0QXR0cmlidXRlKCJleHBvcnRWYWx1ZSIsZS5leHBvcnRWYWx1ZSksbi50YWJJbmRleD14aSxuLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKHM9Pntjb25zdHtuYW1lOm4sY2hlY2tlZDpyfT1zLnRhcmdldDtmb3IoY29uc3QgcyBvZiB0aGlzLl9nZXRFbGVtZW50c0J5TmFtZShuLGkpKXtjb25zdCBpPXImJnMuZXhwb3J0VmFsdWU9PT1lLmV4cG9ydFZhbHVlO3MuZG9tRWxlbWVudCYmKHMuZG9tRWxlbWVudC5jaGVja2VkPWkpLHQuc2V0VmFsdWUocy5pZCx7dmFsdWU6aX0pfXQuc2V0VmFsdWUoaSx7dmFsdWU6cn0pfSkpLG4uYWRkRXZlbnRMaXN0ZW5lcigicmVzZXRmb3JtIiwodD0+e2NvbnN0IGk9ZS5kZWZhdWx0RmllbGRWYWx1ZXx8Ik9mZiI7dC50YXJnZXQuY2hlY2tlZD1pPT09ZS5leHBvcnRWYWx1ZX0pKSx0aGlzLmVuYWJsZVNjcmlwdGluZyYmdGhpcy5oYXNKU0FjdGlvbnMmJihuLmFkZEV2ZW50TGlzdGVuZXIoInVwZGF0ZWZyb21zYW5kYm94IiwoZT0+e2NvbnN0IHM9e3ZhbHVlKGUpe2UudGFyZ2V0LmNoZWNrZWQ9Ik9mZiIhPT1lLmRldGFpbC52YWx1ZSx0LnNldFZhbHVlKGkse3ZhbHVlOmUudGFyZ2V0LmNoZWNrZWR9KX19O3RoaXMuX2Rpc3BhdGNoRXZlbnRGcm9tU2FuZGJveChzLGUpfSkpLHRoaXMuX3NldEV2ZW50TGlzdGVuZXJzKG4sbnVsbCxbWyJjaGFuZ2UiLCJWYWxpZGF0ZSJdLFsiY2hhbmdlIiwiQWN0aW9uIl0sWyJmb2N1cyIsIkZvY3VzIl0sWyJibHVyIiwiQmx1ciJdLFsibW91c2Vkb3duIiwiTW91c2UgRG93biJdLFsibW91c2VlbnRlciIsIk1vdXNlIEVudGVyIl0sWyJtb3VzZWxlYXZlIiwiTW91c2UgRXhpdCJdLFsibW91c2V1cCIsIk1vdXNlIFVwIl1dLCh0PT50LnRhcmdldC5jaGVja2VkKSkpLHRoaXMuX3NldEJhY2tncm91bmRDb2xvcihuKSx0aGlzLl9zZXREZWZhdWx0UHJvcGVydGllc0Zyb21KUyhuKSx0aGlzLmNvbnRhaW5lci5hcHBlbmQobiksdGhpcy5jb250YWluZXJ9fWNsYXNzIERpIGV4dGVuZHMga2l7Y29uc3RydWN0b3IodCl7c3VwZXIodCx7aXNSZW5kZXJhYmxlOnQucmVuZGVyRm9ybXN9KX1yZW5kZXIoKXt0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJidXR0b25XaWRnZXRBbm5vdGF0aW9uIiwicmFkaW9CdXR0b24iKTtjb25zdCB0PXRoaXMuYW5ub3RhdGlvblN0b3JhZ2UsZT10aGlzLmRhdGEsaT1lLmlkO2xldCBzPXQuZ2V0VmFsdWUoaSx7dmFsdWU6ZS5maWVsZFZhbHVlPT09ZS5idXR0b25WYWx1ZX0pLnZhbHVlO2lmKCJzdHJpbmciPT10eXBlb2YgcyYmKHM9cyE9PWUuYnV0dG9uVmFsdWUsdC5zZXRWYWx1ZShpLHt2YWx1ZTpzfSkpLHMpZm9yKGNvbnN0IHMgb2YgdGhpcy5fZ2V0RWxlbWVudHNCeU5hbWUoZS5maWVsZE5hbWUsaSkpdC5zZXRWYWx1ZShzLmlkLHt2YWx1ZTohMX0pO2NvbnN0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtpZihfaS5hZGQobiksbi5zZXRBdHRyaWJ1dGUoImRhdGEtZWxlbWVudC1pZCIsaSksbi5kaXNhYmxlZD1lLnJlYWRPbmx5LHRoaXMuX3NldFJlcXVpcmVkKG4sdGhpcy5kYXRhLnJlcXVpcmVkKSxuLnR5cGU9InJhZGlvIixuLm5hbWU9ZS5maWVsZE5hbWUscyYmbi5zZXRBdHRyaWJ1dGUoImNoZWNrZWQiLCEwKSxuLnRhYkluZGV4PXhpLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwoZT0+e2NvbnN0e25hbWU6cyxjaGVja2VkOm59PWUudGFyZ2V0O2Zvcihjb25zdCBlIG9mIHRoaXMuX2dldEVsZW1lbnRzQnlOYW1lKHMsaSkpdC5zZXRWYWx1ZShlLmlkLHt2YWx1ZTohMX0pO3Quc2V0VmFsdWUoaSx7dmFsdWU6bn0pfSkpLG4uYWRkRXZlbnRMaXN0ZW5lcigicmVzZXRmb3JtIiwodD0+e2NvbnN0IGk9ZS5kZWZhdWx0RmllbGRWYWx1ZTt0LnRhcmdldC5jaGVja2VkPW51bGwhPWkmJmk9PT1lLmJ1dHRvblZhbHVlfSkpLHRoaXMuZW5hYmxlU2NyaXB0aW5nJiZ0aGlzLmhhc0pTQWN0aW9ucyl7Y29uc3Qgcz1lLmJ1dHRvblZhbHVlO24uYWRkRXZlbnRMaXN0ZW5lcigidXBkYXRlZnJvbXNhbmRib3giLChlPT57Y29uc3Qgbj17dmFsdWU6ZT0+e2NvbnN0IG49cz09PWUuZGV0YWlsLnZhbHVlO2Zvcihjb25zdCBzIG9mIHRoaXMuX2dldEVsZW1lbnRzQnlOYW1lKGUudGFyZ2V0Lm5hbWUpKXtjb25zdCBlPW4mJnMuaWQ9PT1pO3MuZG9tRWxlbWVudCYmKHMuZG9tRWxlbWVudC5jaGVja2VkPWUpLHQuc2V0VmFsdWUocy5pZCx7dmFsdWU6ZX0pfX19O3RoaXMuX2Rpc3BhdGNoRXZlbnRGcm9tU2FuZGJveChuLGUpfSkpLHRoaXMuX3NldEV2ZW50TGlzdGVuZXJzKG4sbnVsbCxbWyJjaGFuZ2UiLCJWYWxpZGF0ZSJdLFsiY2hhbmdlIiwiQWN0aW9uIl0sWyJmb2N1cyIsIkZvY3VzIl0sWyJibHVyIiwiQmx1ciJdLFsibW91c2Vkb3duIiwiTW91c2UgRG93biJdLFsibW91c2VlbnRlciIsIk1vdXNlIEVudGVyIl0sWyJtb3VzZWxlYXZlIiwiTW91c2UgRXhpdCJdLFsibW91c2V1cCIsIk1vdXNlIFVwIl1dLCh0PT50LnRhcmdldC5jaGVja2VkKSl9cmV0dXJuIHRoaXMuX3NldEJhY2tncm91bmRDb2xvcihuKSx0aGlzLl9zZXREZWZhdWx0UHJvcGVydGllc0Zyb21KUyhuKSx0aGlzLmNvbnRhaW5lci5hcHBlbmQobiksdGhpcy5jb250YWluZXJ9fWNsYXNzIExpIGV4dGVuZHMgVGl7Y29uc3RydWN0b3IodCl7c3VwZXIodCx7aWdub3JlQm9yZGVyOnQuZGF0YS5oYXNBcHBlYXJhbmNlfSl9cmVuZGVyKCl7Y29uc3QgdD1zdXBlci5yZW5kZXIoKTt0LmNsYXNzTGlzdC5hZGQoImJ1dHRvbldpZGdldEFubm90YXRpb24iLCJwdXNoQnV0dG9uIik7Y29uc3QgZT10Lmxhc3RDaGlsZDtyZXR1cm4gdGhpcy5lbmFibGVTY3JpcHRpbmcmJnRoaXMuaGFzSlNBY3Rpb25zJiZlJiYodGhpcy5fc2V0RGVmYXVsdFByb3BlcnRpZXNGcm9tSlMoZSksZS5hZGRFdmVudExpc3RlbmVyKCJ1cGRhdGVmcm9tc2FuZGJveCIsKHQ9Pnt0aGlzLl9kaXNwYXRjaEV2ZW50RnJvbVNhbmRib3goe30sdCl9KSkpLHR9fWNsYXNzIEZpIGV4dGVuZHMga2l7Y29uc3RydWN0b3IodCl7c3VwZXIodCx7aXNSZW5kZXJhYmxlOnQucmVuZGVyRm9ybXN9KX1yZW5kZXIoKXt0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJjaG9pY2VXaWRnZXRBbm5vdGF0aW9uIik7Y29uc3QgdD10aGlzLmFubm90YXRpb25TdG9yYWdlLGU9dGhpcy5kYXRhLmlkLGk9dC5nZXRWYWx1ZShlLHt2YWx1ZTp0aGlzLmRhdGEuZmllbGRWYWx1ZX0pLHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2VsZWN0Iik7X2kuYWRkKHMpLHMuc2V0QXR0cmlidXRlKCJkYXRhLWVsZW1lbnQtaWQiLGUpLHMuZGlzYWJsZWQ9dGhpcy5kYXRhLnJlYWRPbmx5LHRoaXMuX3NldFJlcXVpcmVkKHMsdGhpcy5kYXRhLnJlcXVpcmVkKSxzLm5hbWU9dGhpcy5kYXRhLmZpZWxkTmFtZSxzLnRhYkluZGV4PXhpO2xldCBuPXRoaXMuZGF0YS5jb21ibyYmdGhpcy5kYXRhLm9wdGlvbnMubGVuZ3RoPjA7dGhpcy5kYXRhLmNvbWJvfHwocy5zaXplPXRoaXMuZGF0YS5vcHRpb25zLmxlbmd0aCx0aGlzLmRhdGEubXVsdGlTZWxlY3QmJihzLm11bHRpcGxlPSEwKSkscy5hZGRFdmVudExpc3RlbmVyKCJyZXNldGZvcm0iLCh0PT57Y29uc3QgZT10aGlzLmRhdGEuZGVmYXVsdEZpZWxkVmFsdWU7Zm9yKGNvbnN0IHQgb2Ygcy5vcHRpb25zKXQuc2VsZWN0ZWQ9dC52YWx1ZT09PWV9KSk7Zm9yKGNvbnN0IHQgb2YgdGhpcy5kYXRhLm9wdGlvbnMpe2NvbnN0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIik7ZS50ZXh0Q29udGVudD10LmRpc3BsYXlWYWx1ZSxlLnZhbHVlPXQuZXhwb3J0VmFsdWUsaS52YWx1ZS5pbmNsdWRlcyh0LmV4cG9ydFZhbHVlKSYmKGUuc2V0QXR0cmlidXRlKCJzZWxlY3RlZCIsITApLG49ITEpLHMuYXBwZW5kKGUpfWxldCByPW51bGw7aWYobil7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTt0LnZhbHVlPSIgIix0LnNldEF0dHJpYnV0ZSgiaGlkZGVuIiwhMCksdC5zZXRBdHRyaWJ1dGUoInNlbGVjdGVkIiwhMCkscy5wcmVwZW5kKHQpLHI9KCk9Pnt0LnJlbW92ZSgpLHMucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW5wdXQiLHIpLHI9bnVsbH0scy5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIscil9Y29uc3QgYT10PT57Y29uc3QgZT10PyJ2YWx1ZSI6InRleHRDb250ZW50Iix7b3B0aW9uczppLG11bHRpcGxlOm59PXM7cmV0dXJuIG4/QXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKGksKHQ9PnQuc2VsZWN0ZWQpKS5tYXAoKHQ9PnRbZV0pKTotMT09PWkuc2VsZWN0ZWRJbmRleD9udWxsOmlbaS5zZWxlY3RlZEluZGV4XVtlXX07bGV0IG89YSghMSk7Y29uc3QgaD10PT57Y29uc3QgZT10LnRhcmdldC5vcHRpb25zO3JldHVybiBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwoZSwodD0+KHtkaXNwbGF5VmFsdWU6dC50ZXh0Q29udGVudCxleHBvcnRWYWx1ZTp0LnZhbHVlfSkpKX07cmV0dXJuIHRoaXMuZW5hYmxlU2NyaXB0aW5nJiZ0aGlzLmhhc0pTQWN0aW9ucz8ocy5hZGRFdmVudExpc3RlbmVyKCJ1cGRhdGVmcm9tc2FuZGJveCIsKGk9Pntjb25zdCBuPXt2YWx1ZShpKXtyPy4oKTtjb25zdCBuPWkuZGV0YWlsLnZhbHVlLGg9bmV3IFNldChBcnJheS5pc0FycmF5KG4pP246W25dKTtmb3IoY29uc3QgdCBvZiBzLm9wdGlvbnMpdC5zZWxlY3RlZD1oLmhhcyh0LnZhbHVlKTt0LnNldFZhbHVlKGUse3ZhbHVlOmEoITApfSksbz1hKCExKX0sbXVsdGlwbGVTZWxlY3Rpb24odCl7cy5tdWx0aXBsZT0hMH0scmVtb3ZlKGkpe2NvbnN0IG49cy5vcHRpb25zLHI9aS5kZXRhaWwucmVtb3ZlO25bcl0uc2VsZWN0ZWQ9ITEscy5yZW1vdmUociksbi5sZW5ndGg+MCYmLTE9PT1BcnJheS5wcm90b3R5cGUuZmluZEluZGV4LmNhbGwobiwodD0+dC5zZWxlY3RlZCkpJiYoblswXS5zZWxlY3RlZD0hMCksdC5zZXRWYWx1ZShlLHt2YWx1ZTphKCEwKSxpdGVtczpoKGkpfSksbz1hKCExKX0sY2xlYXIoaSl7Zm9yKDswIT09cy5sZW5ndGg7KXMucmVtb3ZlKDApO3Quc2V0VmFsdWUoZSx7dmFsdWU6bnVsbCxpdGVtczpbXX0pLG89YSghMSl9LGluc2VydChpKXtjb25zdHtpbmRleDpuLGRpc3BsYXlWYWx1ZTpyLGV4cG9ydFZhbHVlOmx9PWkuZGV0YWlsLmluc2VydCxjPXMuY2hpbGRyZW5bbl0sZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTtkLnRleHRDb250ZW50PXIsZC52YWx1ZT1sLGM/Yy5iZWZvcmUoZCk6cy5hcHBlbmQoZCksdC5zZXRWYWx1ZShlLHt2YWx1ZTphKCEwKSxpdGVtczpoKGkpfSksbz1hKCExKX0saXRlbXMoaSl7Y29uc3R7aXRlbXM6bn09aS5kZXRhaWw7Zm9yKDswIT09cy5sZW5ndGg7KXMucmVtb3ZlKDApO2Zvcihjb25zdCB0IG9mIG4pe2NvbnN0e2Rpc3BsYXlWYWx1ZTplLGV4cG9ydFZhbHVlOml9PXQsbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTtuLnRleHRDb250ZW50PWUsbi52YWx1ZT1pLHMuYXBwZW5kKG4pfXMub3B0aW9ucy5sZW5ndGg+MCYmKHMub3B0aW9uc1swXS5zZWxlY3RlZD0hMCksdC5zZXRWYWx1ZShlLHt2YWx1ZTphKCEwKSxpdGVtczpoKGkpfSksbz1hKCExKX0saW5kaWNlcyhpKXtjb25zdCBzPW5ldyBTZXQoaS5kZXRhaWwuaW5kaWNlcyk7Zm9yKGNvbnN0IHQgb2YgaS50YXJnZXQub3B0aW9ucyl0LnNlbGVjdGVkPXMuaGFzKHQuaW5kZXgpO3Quc2V0VmFsdWUoZSx7dmFsdWU6YSghMCl9KSxvPWEoITEpfSxlZGl0YWJsZSh0KXt0LnRhcmdldC5kaXNhYmxlZD0hdC5kZXRhaWwuZWRpdGFibGV9fTt0aGlzLl9kaXNwYXRjaEV2ZW50RnJvbVNhbmRib3gobixpKX0pKSxzLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwoaT0+e2NvbnN0IHM9YSghMCksbj1hKCExKTt0LnNldFZhbHVlKGUse3ZhbHVlOnN9KSxpLnByZXZlbnREZWZhdWx0KCksdGhpcy5saW5rU2VydmljZS5ldmVudEJ1cz8uZGlzcGF0Y2goImRpc3BhdGNoZXZlbnRpbnNhbmRib3giLHtzb3VyY2U6dGhpcyxkZXRhaWw6e2lkOmUsbmFtZToiS2V5c3Ryb2tlIix2YWx1ZTpvLGNoYW5nZTpuLGNoYW5nZUV4OnMsd2lsbENvbW1pdDohMSxjb21taXRLZXk6MSxrZXlEb3duOiExfX0pfSkpLHRoaXMuX3NldEV2ZW50TGlzdGVuZXJzKHMsbnVsbCxbWyJmb2N1cyIsIkZvY3VzIl0sWyJibHVyIiwiQmx1ciJdLFsibW91c2Vkb3duIiwiTW91c2UgRG93biJdLFsibW91c2VlbnRlciIsIk1vdXNlIEVudGVyIl0sWyJtb3VzZWxlYXZlIiwiTW91c2UgRXhpdCJdLFsibW91c2V1cCIsIk1vdXNlIFVwIl0sWyJpbnB1dCIsIkFjdGlvbiJdLFsiaW5wdXQiLCJWYWxpZGF0ZSJdXSwodD0+dC50YXJnZXQudmFsdWUpKSk6cy5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsKGZ1bmN0aW9uKGkpe3Quc2V0VmFsdWUoZSx7dmFsdWU6YSghMCl9KX0pKSx0aGlzLmRhdGEuY29tYm8mJnRoaXMuX3NldFRleHRTdHlsZShzKSx0aGlzLl9zZXRCYWNrZ3JvdW5kQ29sb3IocyksdGhpcy5fc2V0RGVmYXVsdFByb3BlcnRpZXNGcm9tSlMocyksdGhpcy5jb250YWluZXIuYXBwZW5kKHMpLHRoaXMuY29udGFpbmVyfX1jbGFzcyBPaSBleHRlbmRzIFNpe2NvbnN0cnVjdG9yKHQpe2NvbnN0e2RhdGE6ZSxlbGVtZW50czppfT10O3N1cGVyKHQse2lzUmVuZGVyYWJsZTpTaS5faGFzUG9wdXBEYXRhKGUpfSksdGhpcy5lbGVtZW50cz1pLHRoaXMucG9wdXA9bnVsbH1yZW5kZXIoKXt0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJwb3B1cEFubm90YXRpb24iKTtjb25zdCB0PXRoaXMucG9wdXA9bmV3IE5pKHtjb250YWluZXI6dGhpcy5jb250YWluZXIsY29sb3I6dGhpcy5kYXRhLmNvbG9yLHRpdGxlT2JqOnRoaXMuZGF0YS50aXRsZU9iaixtb2RpZmljYXRpb25EYXRlOnRoaXMuZGF0YS5tb2RpZmljYXRpb25EYXRlLGNvbnRlbnRzT2JqOnRoaXMuZGF0YS5jb250ZW50c09iaixyaWNoVGV4dDp0aGlzLmRhdGEucmljaFRleHQscmVjdDp0aGlzLmRhdGEucmVjdCxwYXJlbnRSZWN0OnRoaXMuZGF0YS5wYXJlbnRSZWN0fHxudWxsLHBhcmVudDp0aGlzLnBhcmVudCxlbGVtZW50czp0aGlzLmVsZW1lbnRzLG9wZW46dGhpcy5kYXRhLm9wZW59KSxlPVtdO2Zvcihjb25zdCBpIG9mIHRoaXMuZWxlbWVudHMpaS5wb3B1cD10LGUucHVzaChpLmRhdGEuaWQpLGkuYWRkSGlnaGxpZ2h0QXJlYSgpO3JldHVybiB0aGlzLmNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoImFyaWEtY29udHJvbHMiLGUubWFwKCh0PT5gJHskfSR7dH1gKSkuam9pbigiLCIpKSx0aGlzLmNvbnRhaW5lcn19Y2xhc3MgTml7I3lzPXRoaXMuI0FzLmJpbmQodGhpcyk7I3dzPXRoaXMuI3hzLmJpbmQodGhpcyk7I19zPXRoaXMuI0VzLmJpbmQodGhpcyk7I0NzPXRoaXMuI1NzLmJpbmQodGhpcyk7I1RzPW51bGw7I3V0PW51bGw7I01zPW51bGw7I2tzPW51bGw7I0lzPW51bGw7I1JzPW51bGw7I1BzPW51bGw7I0RzPSExOyNMcz1udWxsOyNTPW51bGw7I0ZzPW51bGw7I09zPW51bGw7I05zPW51bGw7I3VzPW51bGw7I0JzPSExO2NvbnN0cnVjdG9yKHtjb250YWluZXI6dCxjb2xvcjplLGVsZW1lbnRzOmksdGl0bGVPYmo6cyxtb2RpZmljYXRpb25EYXRlOm4sY29udGVudHNPYmo6cixyaWNoVGV4dDphLHBhcmVudDpvLHJlY3Q6aCxwYXJlbnRSZWN0Omwsb3BlbjpjfSl7dGhpcy4jdXQ9dCx0aGlzLiNOcz1zLHRoaXMuI01zPXIsdGhpcy4jT3M9YSx0aGlzLiNScz1vLHRoaXMuI1RzPWUsdGhpcy4jRnM9aCx0aGlzLiNQcz1sLHRoaXMuI0lzPWksdGhpcy4ja3M9dXQudG9EYXRlT2JqZWN0KG4pLHRoaXMudHJpZ2dlcj1pLmZsYXRNYXAoKHQ9PnQuZ2V0RWxlbWVudHNUb1RyaWdnZXJQb3B1cCgpKSk7Zm9yKGNvbnN0IHQgb2YgdGhpcy50cmlnZ2VyKXQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuI0NzKSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLHRoaXMuI19zKSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMuI3dzKSx0LmNsYXNzTGlzdC5hZGQoInBvcHVwVHJpZ2dlckFyZWEiKTtmb3IoY29uc3QgdCBvZiBpKXQuY29udGFpbmVyPy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLiN5cyk7dGhpcy4jdXQuaGlkZGVuPSEwLGMmJnRoaXMuI1NzKCl9cmVuZGVyKCl7aWYodGhpcy4jTHMpcmV0dXJuO2NvbnN0IHQ9dGhpcy4jTHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aWYodC5jbGFzc05hbWU9InBvcHVwIix0aGlzLiNUcyl7Y29uc3QgZT10LnN0eWxlLm91dGxpbmVDb2xvcj16Lm1ha2VIZXhDb2xvciguLi50aGlzLiNUcyk7aWYoQ1NTLnN1cHBvcnRzKCJiYWNrZ3JvdW5kLWNvbG9yIiwiY29sb3ItbWl4KGluIHNyZ2IsIHJlZCAzMCUsIHdoaXRlKSIpKXQuc3R5bGUuYmFja2dyb3VuZENvbG9yPWBjb2xvci1taXgoaW4gc3JnYiwgJHtlfSAzMCUsIHdoaXRlKWA7ZWxzZXtjb25zdCBlPS43O3Quc3R5bGUuYmFja2dyb3VuZENvbG9yPXoubWFrZUhleENvbG9yKC4uLnRoaXMuI1RzLm1hcCgodD0+TWF0aC5mbG9vcihlKigyNTUtdCkrdCkpKSl9fWNvbnN0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2UuY2xhc3NOYW1lPSJoZWFkZXIiO2NvbnN0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaDEiKTtpZihlLmFwcGVuZChpKSwoe2RpcjppLmRpcixzdHI6aS50ZXh0Q29udGVudH09dGhpcy4jTnMpLHQuYXBwZW5kKGUpLHRoaXMuI2tzKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTt0LmNsYXNzTGlzdC5hZGQoInBvcHVwRGF0ZSIpLHQuc2V0QXR0cmlidXRlKCJkYXRhLWwxMG4taWQiLCJwZGZqcy1hbm5vdGF0aW9uLWRhdGUtdGltZS1zdHJpbmciKSx0LnNldEF0dHJpYnV0ZSgiZGF0YS1sMTBuLWFyZ3MiLEpTT04uc3RyaW5naWZ5KHtkYXRlT2JqOnRoaXMuI2tzLnZhbHVlT2YoKX0pKSxlLmFwcGVuZCh0KX1jb25zdCBzPXRoaXMuI3pzO2lmKHMpd2kucmVuZGVyKHt4ZmFIdG1sOnMsaW50ZW50OiJyaWNoVGV4dCIsZGl2OnR9KSx0Lmxhc3RDaGlsZC5jbGFzc0xpc3QuYWRkKCJyaWNoVGV4dCIsInBvcHVwQ29udGVudCIpO2Vsc2V7Y29uc3QgZT10aGlzLl9mb3JtYXRDb250ZW50cyh0aGlzLiNNcyk7dC5hcHBlbmQoZSl9dGhpcy4jdXQuYXBwZW5kKHQpfWdldCN6cygpe2NvbnN0IHQ9dGhpcy4jT3MsZT10aGlzLiNNcztyZXR1cm4hdD8uc3RyfHxlPy5zdHImJmUuc3RyIT09dC5zdHI/bnVsbDp0aGlzLiNPcy5odG1sfHxudWxsfWdldCNIcygpe3JldHVybiB0aGlzLiN6cz8uYXR0cmlidXRlcz8uc3R5bGU/LmZvbnRTaXplfHwwfWdldCNqcygpe3JldHVybiB0aGlzLiN6cz8uYXR0cmlidXRlcz8uc3R5bGU/LmNvbG9yfHxudWxsfSNVcyh0KXtjb25zdCBlPVtdLGk9e3N0cjp0LGh0bWw6e25hbWU6ImRpdiIsYXR0cmlidXRlczp7ZGlyOiJhdXRvIn0sY2hpbGRyZW46W3tuYW1lOiJwIixjaGlsZHJlbjplfV19fSxzPXtzdHlsZTp7Y29sb3I6dGhpcy4janMsZm9udFNpemU6dGhpcy4jSHM/YGNhbGMoJHt0aGlzLiNIc31weCAqIHZhcigtLXNjYWxlLWZhY3RvcikpYDoiIn19O2Zvcihjb25zdCBpIG9mIHQuc3BsaXQoIlxuIikpZS5wdXNoKHtuYW1lOiJzcGFuIix2YWx1ZTppLGF0dHJpYnV0ZXM6c30pO3JldHVybiBpfV9mb3JtYXRDb250ZW50cyh7c3RyOnQsZGlyOmV9KXtjb25zdCBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTtpLmNsYXNzTGlzdC5hZGQoInBvcHVwQ29udGVudCIpLGkuZGlyPWU7Y29uc3Qgcz10LnNwbGl0KC8oPzpcclxuP3xcbikvKTtmb3IobGV0IHQ9MCxlPXMubGVuZ3RoO3Q8ZTsrK3Qpe2NvbnN0IG49c1t0XTtpLmFwcGVuZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShuKSksdDxlLTEmJmkuYXBwZW5kKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJyIikpfXJldHVybiBpfSNBcyh0KXt0LmFsdEtleXx8dC5zaGlmdEtleXx8dC5jdHJsS2V5fHx0Lm1ldGFLZXl8fCgiRW50ZXIiPT09dC5rZXl8fCJFc2NhcGUiPT09dC5rZXkmJnRoaXMuI0RzKSYmdGhpcy4jU3MoKX11cGRhdGVFZGl0ZWQoe3JlY3Q6dCxwb3B1cENvbnRlbnQ6ZX0pe3RoaXMuI3VzfHw9e2NvbnRlbnRzT2JqOnRoaXMuI01zLHJpY2hUZXh0OnRoaXMuI09zfSx0JiYodGhpcy4jUz1udWxsKSxlJiYodGhpcy4jT3M9dGhpcy4jVXMoZSksdGhpcy4jTXM9bnVsbCksdGhpcy4jTHM/LnJlbW92ZSgpLHRoaXMuI0xzPW51bGx9cmVzZXRFZGl0ZWQoKXt0aGlzLiN1cyYmKCh7Y29udGVudHNPYmo6dGhpcy4jTXMscmljaFRleHQ6dGhpcy4jT3N9PXRoaXMuI3VzKSx0aGlzLiN1cz1udWxsLHRoaXMuI0xzPy5yZW1vdmUoKSx0aGlzLiNMcz1udWxsLHRoaXMuI1M9bnVsbCl9IyRzKCl7aWYobnVsbCE9PXRoaXMuI1MpcmV0dXJuO2NvbnN0e3BhZ2U6e3ZpZXc6dH0sdmlld3BvcnQ6e3Jhd0RpbXM6e3BhZ2VXaWR0aDplLHBhZ2VIZWlnaHQ6aSxwYWdlWDpzLHBhZ2VZOm59fX09dGhpcy4jUnM7bGV0IHI9ISF0aGlzLiNQcyxhPXI/dGhpcy4jUHM6dGhpcy4jRnM7Zm9yKGNvbnN0IHQgb2YgdGhpcy4jSXMpaWYoIWF8fG51bGwhPT16LmludGVyc2VjdCh0LmRhdGEucmVjdCxhKSl7YT10LmRhdGEucmVjdCxyPSEwO2JyZWFrfWNvbnN0IG89ei5ub3JtYWxpemVSZWN0KFthWzBdLHRbM10tYVsxXSt0WzFdLGFbMl0sdFszXS1hWzNdK3RbMV1dKSxoPXI/YVsyXS1hWzBdKzU6MCxsPW9bMF0raCxjPW9bMV07dGhpcy4jUz1bMTAwKihsLXMpL2UsMTAwKihjLW4pL2ldO2NvbnN0e3N0eWxlOmR9PXRoaXMuI3V0O2QubGVmdD1gJHt0aGlzLiNTWzBdfSVgLGQudG9wPWAke3RoaXMuI1NbMV19JWB9I1NzKCl7dGhpcy4jRHM9IXRoaXMuI0RzLHRoaXMuI0RzPyh0aGlzLiNFcygpLHRoaXMuI3V0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLiNDcyksdGhpcy4jdXQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy4jeXMpKToodGhpcy4jeHMoKSx0aGlzLiN1dC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy4jQ3MpLHRoaXMuI3V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuI3lzKSl9I0VzKCl7dGhpcy4jTHN8fHRoaXMucmVuZGVyKCksdGhpcy5pc1Zpc2libGU/dGhpcy4jRHMmJnRoaXMuI3V0LmNsYXNzTGlzdC5hZGQoImZvY3VzZWQiKToodGhpcy4jJHMoKSx0aGlzLiN1dC5oaWRkZW49ITEsdGhpcy4jdXQuc3R5bGUuekluZGV4PXBhcnNlSW50KHRoaXMuI3V0LnN0eWxlLnpJbmRleCkrMWUzKX0jeHMoKXt0aGlzLiN1dC5jbGFzc0xpc3QucmVtb3ZlKCJmb2N1c2VkIiksIXRoaXMuI0RzJiZ0aGlzLmlzVmlzaWJsZSYmKHRoaXMuI3V0LmhpZGRlbj0hMCx0aGlzLiN1dC5zdHlsZS56SW5kZXg9cGFyc2VJbnQodGhpcy4jdXQuc3R5bGUuekluZGV4KS0xZTMpfWZvcmNlSGlkZSgpe3RoaXMuI0JzPXRoaXMuaXNWaXNpYmxlLHRoaXMuI0JzJiYodGhpcy4jdXQuaGlkZGVuPSEwKX1tYXliZVNob3coKXt0aGlzLiNCcyYmKHRoaXMuI0xzfHx0aGlzLiNFcygpLHRoaXMuI0JzPSExLHRoaXMuI3V0LmhpZGRlbj0hMSl9Z2V0IGlzVmlzaWJsZSgpe3JldHVybiExPT09dGhpcy4jdXQuaGlkZGVufX1jbGFzcyBCaSBleHRlbmRzIFNpe2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQse2lzUmVuZGVyYWJsZTohMCxpZ25vcmVCb3JkZXI6ITB9KSx0aGlzLnRleHRDb250ZW50PXQuZGF0YS50ZXh0Q29udGVudCx0aGlzLnRleHRQb3NpdGlvbj10LmRhdGEudGV4dFBvc2l0aW9uLHRoaXMuYW5ub3RhdGlvbkVkaXRvclR5cGU9bC5GUkVFVEVYVH1yZW5kZXIoKXtpZih0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJmcmVlVGV4dEFubm90YXRpb24iKSx0aGlzLnRleHRDb250ZW50KXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NMaXN0LmFkZCgiYW5ub3RhdGlvblRleHRDb250ZW50IiksdC5zZXRBdHRyaWJ1dGUoInJvbGUiLCJjb21tZW50Iik7Zm9yKGNvbnN0IGUgb2YgdGhpcy50ZXh0Q29udGVudCl7Y29uc3QgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7aS50ZXh0Q29udGVudD1lLHQuYXBwZW5kKGkpfXRoaXMuY29udGFpbmVyLmFwcGVuZCh0KX1yZXR1cm4hdGhpcy5kYXRhLnBvcHVwUmVmJiZ0aGlzLmhhc1BvcHVwRGF0YSYmdGhpcy5fY3JlYXRlUG9wdXAoKSx0aGlzLl9lZGl0T25Eb3VibGVDbGljaygpLHRoaXMuY29udGFpbmVyfX1jbGFzcyB6aSBleHRlbmRzIFNpeyNXcz1udWxsO2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQse2lzUmVuZGVyYWJsZTohMCxpZ25vcmVCb3JkZXI6ITB9KX1yZW5kZXIoKXt0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJsaW5lQW5ub3RhdGlvbiIpO2NvbnN0IHQ9dGhpcy5kYXRhLHt3aWR0aDplLGhlaWdodDppfT1FaSh0LnJlY3QpLHM9dGhpcy5zdmdGYWN0b3J5LmNyZWF0ZShlLGksITApLG49dGhpcy4jV3M9dGhpcy5zdmdGYWN0b3J5LmNyZWF0ZUVsZW1lbnQoInN2ZzpsaW5lIik7cmV0dXJuIG4uc2V0QXR0cmlidXRlKCJ4MSIsdC5yZWN0WzJdLXQubGluZUNvb3JkaW5hdGVzWzBdKSxuLnNldEF0dHJpYnV0ZSgieTEiLHQucmVjdFszXS10LmxpbmVDb29yZGluYXRlc1sxXSksbi5zZXRBdHRyaWJ1dGUoIngyIix0LnJlY3RbMl0tdC5saW5lQ29vcmRpbmF0ZXNbMl0pLG4uc2V0QXR0cmlidXRlKCJ5MiIsdC5yZWN0WzNdLXQubGluZUNvb3JkaW5hdGVzWzNdKSxuLnNldEF0dHJpYnV0ZSgic3Ryb2tlLXdpZHRoIix0LmJvcmRlclN0eWxlLndpZHRofHwxKSxuLnNldEF0dHJpYnV0ZSgic3Ryb2tlIiwidHJhbnNwYXJlbnQiKSxuLnNldEF0dHJpYnV0ZSgiZmlsbCIsInRyYW5zcGFyZW50Iikscy5hcHBlbmQobiksdGhpcy5jb250YWluZXIuYXBwZW5kKHMpLCF0LnBvcHVwUmVmJiZ0aGlzLmhhc1BvcHVwRGF0YSYmdGhpcy5fY3JlYXRlUG9wdXAoKSx0aGlzLmNvbnRhaW5lcn1nZXRFbGVtZW50c1RvVHJpZ2dlclBvcHVwKCl7cmV0dXJuIHRoaXMuI1dzfWFkZEhpZ2hsaWdodEFyZWEoKXt0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJoaWdobGlnaHRBcmVhIil9fWNsYXNzIEhpIGV4dGVuZHMgU2l7I0dzPW51bGw7Y29uc3RydWN0b3IodCl7c3VwZXIodCx7aXNSZW5kZXJhYmxlOiEwLGlnbm9yZUJvcmRlcjohMH0pfXJlbmRlcigpe3RoaXMuY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoInNxdWFyZUFubm90YXRpb24iKTtjb25zdCB0PXRoaXMuZGF0YSx7d2lkdGg6ZSxoZWlnaHQ6aX09RWkodC5yZWN0KSxzPXRoaXMuc3ZnRmFjdG9yeS5jcmVhdGUoZSxpLCEwKSxuPXQuYm9yZGVyU3R5bGUud2lkdGgscj10aGlzLiNHcz10aGlzLnN2Z0ZhY3RvcnkuY3JlYXRlRWxlbWVudCgic3ZnOnJlY3QiKTtyZXR1cm4gci5zZXRBdHRyaWJ1dGUoIngiLG4vMiksci5zZXRBdHRyaWJ1dGUoInkiLG4vMiksci5zZXRBdHRyaWJ1dGUoIndpZHRoIixlLW4pLHIuc2V0QXR0cmlidXRlKCJoZWlnaHQiLGktbiksci5zZXRBdHRyaWJ1dGUoInN0cm9rZS13aWR0aCIsbnx8MSksci5zZXRBdHRyaWJ1dGUoInN0cm9rZSIsInRyYW5zcGFyZW50Iiksci5zZXRBdHRyaWJ1dGUoImZpbGwiLCJ0cmFuc3BhcmVudCIpLHMuYXBwZW5kKHIpLHRoaXMuY29udGFpbmVyLmFwcGVuZChzKSwhdC5wb3B1cFJlZiYmdGhpcy5oYXNQb3B1cERhdGEmJnRoaXMuX2NyZWF0ZVBvcHVwKCksdGhpcy5jb250YWluZXJ9Z2V0RWxlbWVudHNUb1RyaWdnZXJQb3B1cCgpe3JldHVybiB0aGlzLiNHc31hZGRIaWdobGlnaHRBcmVhKCl7dGhpcy5jb250YWluZXIuY2xhc3NMaXN0LmFkZCgiaGlnaGxpZ2h0QXJlYSIpfX1jbGFzcyBqaSBleHRlbmRzIFNpeyNWcz1udWxsO2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQse2lzUmVuZGVyYWJsZTohMCxpZ25vcmVCb3JkZXI6ITB9KX1yZW5kZXIoKXt0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJjaXJjbGVBbm5vdGF0aW9uIik7Y29uc3QgdD10aGlzLmRhdGEse3dpZHRoOmUsaGVpZ2h0Oml9PUVpKHQucmVjdCkscz10aGlzLnN2Z0ZhY3RvcnkuY3JlYXRlKGUsaSwhMCksbj10LmJvcmRlclN0eWxlLndpZHRoLHI9dGhpcy4jVnM9dGhpcy5zdmdGYWN0b3J5LmNyZWF0ZUVsZW1lbnQoInN2ZzplbGxpcHNlIik7cmV0dXJuIHIuc2V0QXR0cmlidXRlKCJjeCIsZS8yKSxyLnNldEF0dHJpYnV0ZSgiY3kiLGkvMiksci5zZXRBdHRyaWJ1dGUoInJ4IixlLzItbi8yKSxyLnNldEF0dHJpYnV0ZSgicnkiLGkvMi1uLzIpLHIuc2V0QXR0cmlidXRlKCJzdHJva2Utd2lkdGgiLG58fDEpLHIuc2V0QXR0cmlidXRlKCJzdHJva2UiLCJ0cmFuc3BhcmVudCIpLHIuc2V0QXR0cmlidXRlKCJmaWxsIiwidHJhbnNwYXJlbnQiKSxzLmFwcGVuZChyKSx0aGlzLmNvbnRhaW5lci5hcHBlbmQocyksIXQucG9wdXBSZWYmJnRoaXMuaGFzUG9wdXBEYXRhJiZ0aGlzLl9jcmVhdGVQb3B1cCgpLHRoaXMuY29udGFpbmVyfWdldEVsZW1lbnRzVG9UcmlnZ2VyUG9wdXAoKXtyZXR1cm4gdGhpcy4jVnN9YWRkSGlnaGxpZ2h0QXJlYSgpe3RoaXMuY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImhpZ2hsaWdodEFyZWEiKX19Y2xhc3MgVWkgZXh0ZW5kcyBTaXsjcXM9bnVsbDtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0LHtpc1JlbmRlcmFibGU6ITAsaWdub3JlQm9yZGVyOiEwfSksdGhpcy5jb250YWluZXJDbGFzc05hbWU9InBvbHlsaW5lQW5ub3RhdGlvbiIsdGhpcy5zdmdFbGVtZW50TmFtZT0ic3ZnOnBvbHlsaW5lIn1yZW5kZXIoKXt0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKHRoaXMuY29udGFpbmVyQ2xhc3NOYW1lKTtjb25zdHtkYXRhOntyZWN0OnQsdmVydGljZXM6ZSxib3JkZXJTdHlsZTppLHBvcHVwUmVmOnN9fT10aGlzO2lmKCFlKXJldHVybiB0aGlzLmNvbnRhaW5lcjtjb25zdHt3aWR0aDpuLGhlaWdodDpyfT1FaSh0KSxhPXRoaXMuc3ZnRmFjdG9yeS5jcmVhdGUobixyLCEwKTtsZXQgbz1bXTtmb3IobGV0IGk9MCxzPWUubGVuZ3RoO2k8cztpKz0yKXtjb25zdCBzPWVbaV0tdFswXSxuPXRbM10tZVtpKzFdO28ucHVzaChgJHtzfSwke259YCl9bz1vLmpvaW4oIiAiKTtjb25zdCBoPXRoaXMuI3FzPXRoaXMuc3ZnRmFjdG9yeS5jcmVhdGVFbGVtZW50KHRoaXMuc3ZnRWxlbWVudE5hbWUpO3JldHVybiBoLnNldEF0dHJpYnV0ZSgicG9pbnRzIixvKSxoLnNldEF0dHJpYnV0ZSgic3Ryb2tlLXdpZHRoIixpLndpZHRofHwxKSxoLnNldEF0dHJpYnV0ZSgic3Ryb2tlIiwidHJhbnNwYXJlbnQiKSxoLnNldEF0dHJpYnV0ZSgiZmlsbCIsInRyYW5zcGFyZW50IiksYS5hcHBlbmQoaCksdGhpcy5jb250YWluZXIuYXBwZW5kKGEpLCFzJiZ0aGlzLmhhc1BvcHVwRGF0YSYmdGhpcy5fY3JlYXRlUG9wdXAoKSx0aGlzLmNvbnRhaW5lcn1nZXRFbGVtZW50c1RvVHJpZ2dlclBvcHVwKCl7cmV0dXJuIHRoaXMuI3FzfWFkZEhpZ2hsaWdodEFyZWEoKXt0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJoaWdobGlnaHRBcmVhIil9fWNsYXNzICRpIGV4dGVuZHMgVWl7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy5jb250YWluZXJDbGFzc05hbWU9InBvbHlnb25Bbm5vdGF0aW9uIix0aGlzLnN2Z0VsZW1lbnROYW1lPSJzdmc6cG9seWdvbiJ9fWNsYXNzIFdpIGV4dGVuZHMgU2l7Y29uc3RydWN0b3IodCl7c3VwZXIodCx7aXNSZW5kZXJhYmxlOiEwLGlnbm9yZUJvcmRlcjohMH0pfXJlbmRlcigpe3JldHVybiB0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJjYXJldEFubm90YXRpb24iKSwhdGhpcy5kYXRhLnBvcHVwUmVmJiZ0aGlzLmhhc1BvcHVwRGF0YSYmdGhpcy5fY3JlYXRlUG9wdXAoKSx0aGlzLmNvbnRhaW5lcn19Y2xhc3MgR2kgZXh0ZW5kcyBTaXsjWHM9W107Y29uc3RydWN0b3IodCl7c3VwZXIodCx7aXNSZW5kZXJhYmxlOiEwLGlnbm9yZUJvcmRlcjohMH0pLHRoaXMuY29udGFpbmVyQ2xhc3NOYW1lPSJpbmtBbm5vdGF0aW9uIix0aGlzLnN2Z0VsZW1lbnROYW1lPSJzdmc6cG9seWxpbmUiLHRoaXMuYW5ub3RhdGlvbkVkaXRvclR5cGU9Iklua0hpZ2hsaWdodCI9PT10aGlzLmRhdGEuaXQ/bC5ISUdITElHSFQ6bC5JTkt9cmVuZGVyKCl7dGhpcy5jb250YWluZXIuY2xhc3NMaXN0LmFkZCh0aGlzLmNvbnRhaW5lckNsYXNzTmFtZSk7Y29uc3R7ZGF0YTp7cmVjdDp0LGlua0xpc3RzOmUsYm9yZGVyU3R5bGU6aSxwb3B1cFJlZjpzfX09dGhpcyx7d2lkdGg6bixoZWlnaHQ6cn09RWkodCksYT10aGlzLnN2Z0ZhY3RvcnkuY3JlYXRlKG4sciwhMCk7Zm9yKGNvbnN0IG4gb2YgZSl7bGV0IGU9W107Zm9yKGxldCBpPTAscz1uLmxlbmd0aDtpPHM7aSs9Mil7Y29uc3Qgcz1uW2ldLXRbMF0scj10WzNdLW5baSsxXTtlLnB1c2goYCR7c30sJHtyfWApfWU9ZS5qb2luKCIgIik7Y29uc3Qgcj10aGlzLnN2Z0ZhY3RvcnkuY3JlYXRlRWxlbWVudCh0aGlzLnN2Z0VsZW1lbnROYW1lKTt0aGlzLiNYcy5wdXNoKHIpLHIuc2V0QXR0cmlidXRlKCJwb2ludHMiLGUpLHIuc2V0QXR0cmlidXRlKCJzdHJva2Utd2lkdGgiLGkud2lkdGh8fDEpLHIuc2V0QXR0cmlidXRlKCJzdHJva2UiLCJ0cmFuc3BhcmVudCIpLHIuc2V0QXR0cmlidXRlKCJmaWxsIiwidHJhbnNwYXJlbnQiKSwhcyYmdGhpcy5oYXNQb3B1cERhdGEmJnRoaXMuX2NyZWF0ZVBvcHVwKCksYS5hcHBlbmQocil9cmV0dXJuIHRoaXMuY29udGFpbmVyLmFwcGVuZChhKSx0aGlzLl9lZGl0T25Eb3VibGVDbGljaygpLHRoaXMuY29udGFpbmVyfWdldEVsZW1lbnRzVG9UcmlnZ2VyUG9wdXAoKXtyZXR1cm4gdGhpcy4jWHN9YWRkSGlnaGxpZ2h0QXJlYSgpe3RoaXMuY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImhpZ2hsaWdodEFyZWEiKX19Y2xhc3MgVmkgZXh0ZW5kcyBTaXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0LHtpc1JlbmRlcmFibGU6ITAsaWdub3JlQm9yZGVyOiEwLGNyZWF0ZVF1YWRyaWxhdGVyYWxzOiEwfSksdGhpcy5hbm5vdGF0aW9uRWRpdG9yVHlwZT1sLkhJR0hMSUdIVH1yZW5kZXIoKXtyZXR1cm4hdGhpcy5kYXRhLnBvcHVwUmVmJiZ0aGlzLmhhc1BvcHVwRGF0YSYmdGhpcy5fY3JlYXRlUG9wdXAoKSx0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJoaWdobGlnaHRBbm5vdGF0aW9uIiksdGhpcy5fZWRpdE9uRG91YmxlQ2xpY2soKSx0aGlzLmNvbnRhaW5lcn19Y2xhc3MgcWkgZXh0ZW5kcyBTaXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0LHtpc1JlbmRlcmFibGU6ITAsaWdub3JlQm9yZGVyOiEwLGNyZWF0ZVF1YWRyaWxhdGVyYWxzOiEwfSl9cmVuZGVyKCl7cmV0dXJuIXRoaXMuZGF0YS5wb3B1cFJlZiYmdGhpcy5oYXNQb3B1cERhdGEmJnRoaXMuX2NyZWF0ZVBvcHVwKCksdGhpcy5jb250YWluZXIuY2xhc3NMaXN0LmFkZCgidW5kZXJsaW5lQW5ub3RhdGlvbiIpLHRoaXMuY29udGFpbmVyfX1jbGFzcyBYaSBleHRlbmRzIFNpe2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQse2lzUmVuZGVyYWJsZTohMCxpZ25vcmVCb3JkZXI6ITAsY3JlYXRlUXVhZHJpbGF0ZXJhbHM6ITB9KX1yZW5kZXIoKXtyZXR1cm4hdGhpcy5kYXRhLnBvcHVwUmVmJiZ0aGlzLmhhc1BvcHVwRGF0YSYmdGhpcy5fY3JlYXRlUG9wdXAoKSx0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJzcXVpZ2dseUFubm90YXRpb24iKSx0aGlzLmNvbnRhaW5lcn19Y2xhc3MgS2kgZXh0ZW5kcyBTaXtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0LHtpc1JlbmRlcmFibGU6ITAsaWdub3JlQm9yZGVyOiEwLGNyZWF0ZVF1YWRyaWxhdGVyYWxzOiEwfSl9cmVuZGVyKCl7cmV0dXJuIXRoaXMuZGF0YS5wb3B1cFJlZiYmdGhpcy5oYXNQb3B1cERhdGEmJnRoaXMuX2NyZWF0ZVBvcHVwKCksdGhpcy5jb250YWluZXIuY2xhc3NMaXN0LmFkZCgic3RyaWtlb3V0QW5ub3RhdGlvbiIpLHRoaXMuY29udGFpbmVyfX1jbGFzcyBZaSBleHRlbmRzIFNpe2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQse2lzUmVuZGVyYWJsZTohMCxpZ25vcmVCb3JkZXI6ITB9KSx0aGlzLmFubm90YXRpb25FZGl0b3JUeXBlPWwuU1RBTVB9cmVuZGVyKCl7cmV0dXJuIHRoaXMuY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoInN0YW1wQW5ub3RhdGlvbiIpLHRoaXMuY29udGFpbmVyLnNldEF0dHJpYnV0ZSgicm9sZSIsImltZyIpLCF0aGlzLmRhdGEucG9wdXBSZWYmJnRoaXMuaGFzUG9wdXBEYXRhJiZ0aGlzLl9jcmVhdGVQb3B1cCgpLHRoaXMuX2VkaXRPbkRvdWJsZUNsaWNrKCksdGhpcy5jb250YWluZXJ9fWNsYXNzIFFpIGV4dGVuZHMgU2l7I0tzPW51bGw7Y29uc3RydWN0b3IodCl7c3VwZXIodCx7aXNSZW5kZXJhYmxlOiEwfSk7Y29uc3R7ZmlsZTplfT10aGlzLmRhdGE7dGhpcy5maWxlbmFtZT1lLmZpbGVuYW1lLHRoaXMuY29udGVudD1lLmNvbnRlbnQsdGhpcy5saW5rU2VydmljZS5ldmVudEJ1cz8uZGlzcGF0Y2goImZpbGVhdHRhY2htZW50YW5ub3RhdGlvbiIse3NvdXJjZTp0aGlzLC4uLmV9KX1yZW5kZXIoKXt0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJmaWxlQXR0YWNobWVudEFubm90YXRpb24iKTtjb25zdHtjb250YWluZXI6dCxkYXRhOmV9PXRoaXM7bGV0IGk7ZS5oYXNBcHBlYXJhbmNlfHwwPT09ZS5maWxsQWxwaGE/aT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTooaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSxpLnNyYz1gJHt0aGlzLmltYWdlUmVzb3VyY2VzUGF0aH1hbm5vdGF0aW9uLSR7L3BhcGVyY2xpcC9pLnRlc3QoZS5uYW1lKT8icGFwZXJjbGlwIjoicHVzaHBpbiJ9LnN2Z2AsZS5maWxsQWxwaGEmJmUuZmlsbEFscGhhPDEmJihpLnN0eWxlPWBmaWx0ZXI6IG9wYWNpdHkoJHtNYXRoLnJvdW5kKDEwMCplLmZpbGxBbHBoYSl9JSk7YCkpLGkuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLHRoaXMuI1lzLmJpbmQodGhpcykpLHRoaXMuI0tzPWk7Y29uc3R7aXNNYWM6c309Ti5wbGF0Zm9ybTtyZXR1cm4gdC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwodD0+eyJFbnRlciI9PT10LmtleSYmKHM/dC5tZXRhS2V5OnQuY3RybEtleSkmJnRoaXMuI1lzKCl9KSksIWUucG9wdXBSZWYmJnRoaXMuaGFzUG9wdXBEYXRhP3RoaXMuX2NyZWF0ZVBvcHVwKCk6aS5jbGFzc0xpc3QuYWRkKCJwb3B1cFRyaWdnZXJBcmVhIiksdC5hcHBlbmQoaSksdH1nZXRFbGVtZW50c1RvVHJpZ2dlclBvcHVwKCl7cmV0dXJuIHRoaXMuI0tzfWFkZEhpZ2hsaWdodEFyZWEoKXt0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJoaWdobGlnaHRBcmVhIil9I1lzKCl7dGhpcy5kb3dubG9hZE1hbmFnZXI/Lm9wZW5PckRvd25sb2FkRGF0YSh0aGlzLmNvbnRlbnQsdGhpcy5maWxlbmFtZSl9fWNsYXNzIEppeyNRcz1udWxsOyNKcz1udWxsOyNacz1uZXcgTWFwOyN0bj1udWxsO2NvbnN0cnVjdG9yKHtkaXY6dCxhY2Nlc3NpYmlsaXR5TWFuYWdlcjplLGFubm90YXRpb25DYW52YXNNYXA6aSxhbm5vdGF0aW9uRWRpdG9yVUlNYW5hZ2VyOnMscGFnZTpuLHZpZXdwb3J0OnIsc3RydWN0VHJlZUxheWVyOmF9KXt0aGlzLmRpdj10LHRoaXMuI1FzPWUsdGhpcy4jSnM9aSx0aGlzLiN0bj1hfHxudWxsLHRoaXMucGFnZT1uLHRoaXMudmlld3BvcnQ9cix0aGlzLnpJbmRleD0wLHRoaXMuX2Fubm90YXRpb25FZGl0b3JVSU1hbmFnZXI9c31oYXNFZGl0YWJsZUFubm90YXRpb25zKCl7cmV0dXJuIHRoaXMuI1pzLnNpemU+MH1hc3luYyNlbih0LGUpe2NvbnN0IGk9dC5maXJzdENoaWxkfHx0LHM9aS5pZD1gJHskfSR7ZX1gLG49YXdhaXQodGhpcy4jdG4/LmdldEFyaWFBdHRyaWJ1dGVzKHMpKTtpZihuKWZvcihjb25zdFt0LGVdb2YgbilpLnNldEF0dHJpYnV0ZSh0LGUpO3RoaXMuZGl2LmFwcGVuZCh0KSx0aGlzLiNRcz8ubW92ZUVsZW1lbnRJbkRPTSh0aGlzLmRpdix0LGksITEpfWFzeW5jIHJlbmRlcih0KXtjb25zdHthbm5vdGF0aW9uczplfT10LGk9dGhpcy5kaXY7YnQoaSx0aGlzLnZpZXdwb3J0KTtjb25zdCBzPW5ldyBNYXAsbj17ZGF0YTpudWxsLGxheWVyOmksbGlua1NlcnZpY2U6dC5saW5rU2VydmljZSxkb3dubG9hZE1hbmFnZXI6dC5kb3dubG9hZE1hbmFnZXIsaW1hZ2VSZXNvdXJjZXNQYXRoOnQuaW1hZ2VSZXNvdXJjZXNQYXRofHwiIixyZW5kZXJGb3JtczohMSE9PXQucmVuZGVyRm9ybXMsc3ZnRmFjdG9yeTpuZXcgdHQsYW5ub3RhdGlvblN0b3JhZ2U6dC5hbm5vdGF0aW9uU3RvcmFnZXx8bmV3IE90LGVuYWJsZVNjcmlwdGluZzohMD09PXQuZW5hYmxlU2NyaXB0aW5nLGhhc0pTQWN0aW9uczp0Lmhhc0pTQWN0aW9ucyxmaWVsZE9iamVjdHM6dC5maWVsZE9iamVjdHMscGFyZW50OnRoaXMsZWxlbWVudHM6bnVsbH07Zm9yKGNvbnN0IHQgb2YgZSl7aWYodC5ub0hUTUwpY29udGludWU7Y29uc3QgZT0xNj09PXQuYW5ub3RhdGlvblR5cGU7aWYoZSl7Y29uc3QgZT1zLmdldCh0LmlkKTtpZighZSljb250aW51ZTtuLmVsZW1lbnRzPWV9ZWxzZXtjb25zdHt3aWR0aDplLGhlaWdodDppfT1FaSh0LnJlY3QpO2lmKGU8PTB8fGk8PTApY29udGludWV9bi5kYXRhPXQ7Y29uc3QgaT1DaS5jcmVhdGUobik7aWYoIWkuaXNSZW5kZXJhYmxlKWNvbnRpbnVlO2lmKCFlJiZ0LnBvcHVwUmVmKXtjb25zdCBlPXMuZ2V0KHQucG9wdXBSZWYpO2U/ZS5wdXNoKGkpOnMuc2V0KHQucG9wdXBSZWYsW2ldKX1jb25zdCByPWkucmVuZGVyKCk7dC5oaWRkZW4mJihyLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIpLGF3YWl0IHRoaXMuI2VuKHIsdC5pZCksaS5faXNFZGl0YWJsZSYmKHRoaXMuI1pzLnNldChpLmRhdGEuaWQsaSksdGhpcy5fYW5ub3RhdGlvbkVkaXRvclVJTWFuYWdlcj8ucmVuZGVyQW5ub3RhdGlvbkVsZW1lbnQoaSkpfXRoaXMuI2luKCl9dXBkYXRlKHt2aWV3cG9ydDp0fSl7Y29uc3QgZT10aGlzLmRpdjt0aGlzLnZpZXdwb3J0PXQsYnQoZSx7cm90YXRpb246dC5yb3RhdGlvbn0pLHRoaXMuI2luKCksZS5oaWRkZW49ITF9I2luKCl7aWYoIXRoaXMuI0pzKXJldHVybjtjb25zdCB0PXRoaXMuZGl2O2Zvcihjb25zdFtlLGldb2YgdGhpcy4jSnMpe2NvbnN0IHM9dC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1hbm5vdGF0aW9uLWlkPSIke2V9Il1gKTtpZighcyljb250aW51ZTtpLmNsYXNzTmFtZT0iYW5ub3RhdGlvbkNvbnRlbnQiO2NvbnN0e2ZpcnN0Q2hpbGQ6bn09cztuPyJDQU5WQVMiPT09bi5ub2RlTmFtZT9uLnJlcGxhY2VXaXRoKGkpOm4uY2xhc3NMaXN0LmNvbnRhaW5zKCJhbm5vdGF0aW9uQ29udGVudCIpP24uYWZ0ZXIoaSk6bi5iZWZvcmUoaSk6cy5hcHBlbmQoaSl9dGhpcy4jSnMuY2xlYXIoKX1nZXRFZGl0YWJsZUFubm90YXRpb25zKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy4jWnMudmFsdWVzKCkpfWdldEVkaXRhYmxlQW5ub3RhdGlvbih0KXtyZXR1cm4gdGhpcy4jWnMuZ2V0KHQpfX1jb25zdCBaaT0vXHJcbj98XG4vZztjbGFzcyB0cyBleHRlbmRzIGt0eyNUczsjc249IiI7I25uPWAke3RoaXMuaWR9LWVkaXRvcmA7I3JuPW51bGw7I0hzO3N0YXRpYyBfZnJlZVRleHREZWZhdWx0Q29udGVudD0iIjtzdGF0aWMgX2ludGVybmFsUGFkZGluZz0wO3N0YXRpYyBfZGVmYXVsdENvbG9yPW51bGw7c3RhdGljIF9kZWZhdWx0Rm9udFNpemU9MTA7c3RhdGljIGdldCBfa2V5Ym9hcmRNYW5hZ2VyKCl7Y29uc3QgdD10cy5wcm90b3R5cGUsZT10PT50LmlzRW1wdHkoKSxpPVR0LlRSQU5TTEFURV9TTUFMTCxzPVR0LlRSQU5TTEFURV9CSUc7cmV0dXJuIEModGhpcywiX2tleWJvYXJkTWFuYWdlciIsbmV3IEN0KFtbWyJjdHJsK3MiLCJtYWMrbWV0YStzIiwiY3RybCtwIiwibWFjK21ldGErcCJdLHQuY29tbWl0T3JSZW1vdmUse2J1YmJsZXM6ITB9XSxbWyJjdHJsK0VudGVyIiwibWFjK21ldGErRW50ZXIiLCJFc2NhcGUiLCJtYWMrRXNjYXBlIl0sdC5jb21taXRPclJlbW92ZV0sW1siQXJyb3dMZWZ0IiwibWFjK0Fycm93TGVmdCJdLHQuX3RyYW5zbGF0ZUVtcHR5LHthcmdzOlstaSwwXSxjaGVja2VyOmV9XSxbWyJjdHJsK0Fycm93TGVmdCIsIm1hYytzaGlmdCtBcnJvd0xlZnQiXSx0Ll90cmFuc2xhdGVFbXB0eSx7YXJnczpbLXMsMF0sY2hlY2tlcjplfV0sW1siQXJyb3dSaWdodCIsIm1hYytBcnJvd1JpZ2h0Il0sdC5fdHJhbnNsYXRlRW1wdHkse2FyZ3M6W2ksMF0sY2hlY2tlcjplfV0sW1siY3RybCtBcnJvd1JpZ2h0IiwibWFjK3NoaWZ0K0Fycm93UmlnaHQiXSx0Ll90cmFuc2xhdGVFbXB0eSx7YXJnczpbcywwXSxjaGVja2VyOmV9XSxbWyJBcnJvd1VwIiwibWFjK0Fycm93VXAiXSx0Ll90cmFuc2xhdGVFbXB0eSx7YXJnczpbMCwtaV0sY2hlY2tlcjplfV0sW1siY3RybCtBcnJvd1VwIiwibWFjK3NoaWZ0K0Fycm93VXAiXSx0Ll90cmFuc2xhdGVFbXB0eSx7YXJnczpbMCwtc10sY2hlY2tlcjplfV0sW1siQXJyb3dEb3duIiwibWFjK0Fycm93RG93biJdLHQuX3RyYW5zbGF0ZUVtcHR5LHthcmdzOlswLGldLGNoZWNrZXI6ZX1dLFtbImN0cmwrQXJyb3dEb3duIiwibWFjK3NoaWZ0K0Fycm93RG93biJdLHQuX3RyYW5zbGF0ZUVtcHR5LHthcmdzOlswLHNdLGNoZWNrZXI6ZX1dXSkpfXN0YXRpYyBfdHlwZT0iZnJlZXRleHQiO3N0YXRpYyBfZWRpdG9yVHlwZT1sLkZSRUVURVhUO2NvbnN0cnVjdG9yKHQpe3N1cGVyKHsuLi50LG5hbWU6ImZyZWVUZXh0RWRpdG9yIn0pLHRoaXMuI1RzPXQuY29sb3J8fHRzLl9kZWZhdWx0Q29sb3J8fGt0Ll9kZWZhdWx0TGluZUNvbG9yLHRoaXMuI0hzPXQuZm9udFNpemV8fHRzLl9kZWZhdWx0Rm9udFNpemV9c3RhdGljIGluaXRpYWxpemUodCxlKXtrdC5pbml0aWFsaXplKHQsZSx7c3RyaW5nczpbInBkZmpzLWZyZWUtdGV4dC1kZWZhdWx0LWNvbnRlbnQiXX0pO2NvbnN0IGk9Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpO3RoaXMuX2ludGVybmFsUGFkZGluZz1wYXJzZUZsb2F0KGkuZ2V0UHJvcGVydHlWYWx1ZSgiLS1mcmVldGV4dC1wYWRkaW5nIikpfXN0YXRpYyB1cGRhdGVEZWZhdWx0UGFyYW1zKHQsZSl7c3dpdGNoKHQpe2Nhc2UgYy5GUkVFVEVYVF9TSVpFOnRzLl9kZWZhdWx0Rm9udFNpemU9ZTticmVhaztjYXNlIGMuRlJFRVRFWFRfQ09MT1I6dHMuX2RlZmF1bHRDb2xvcj1lfX11cGRhdGVQYXJhbXModCxlKXtzd2l0Y2godCl7Y2FzZSBjLkZSRUVURVhUX1NJWkU6dGhpcy4jYW4oZSk7YnJlYWs7Y2FzZSBjLkZSRUVURVhUX0NPTE9SOnRoaXMuI29uKGUpfX1zdGF0aWMgZ2V0IGRlZmF1bHRQcm9wZXJ0aWVzVG9VcGRhdGUoKXtyZXR1cm5bW2MuRlJFRVRFWFRfU0laRSx0cy5fZGVmYXVsdEZvbnRTaXplXSxbYy5GUkVFVEVYVF9DT0xPUix0cy5fZGVmYXVsdENvbG9yfHxrdC5fZGVmYXVsdExpbmVDb2xvcl1dfWdldCBwcm9wZXJ0aWVzVG9VcGRhdGUoKXtyZXR1cm5bW2MuRlJFRVRFWFRfU0laRSx0aGlzLiNIc10sW2MuRlJFRVRFWFRfQ09MT1IsdGhpcy4jVHNdXX0jYW4odCl7Y29uc3QgZT10PT57dGhpcy5lZGl0b3JEaXYuc3R5bGUuZm9udFNpemU9YGNhbGMoJHt0fXB4ICogdmFyKC0tc2NhbGUtZmFjdG9yKSlgLHRoaXMudHJhbnNsYXRlKDAsLSh0LXRoaXMuI0hzKSp0aGlzLnBhcmVudFNjYWxlKSx0aGlzLiNIcz10LHRoaXMuI2huKCl9LGk9dGhpcy4jSHM7dGhpcy5hZGRDb21tYW5kcyh7Y21kOmUuYmluZCh0aGlzLHQpLHVuZG86ZS5iaW5kKHRoaXMsaSkscG9zdDp0aGlzLl91aU1hbmFnZXIudXBkYXRlVUkuYmluZCh0aGlzLl91aU1hbmFnZXIsdGhpcyksbXVzdEV4ZWM6ITAsdHlwZTpjLkZSRUVURVhUX1NJWkUsb3ZlcndyaXRlSWZTYW1lVHlwZTohMCxrZWVwVW5kbzohMH0pfSNvbih0KXtjb25zdCBlPXQ9Pnt0aGlzLiNUcz10aGlzLmVkaXRvckRpdi5zdHlsZS5jb2xvcj10fSxpPXRoaXMuI1RzO3RoaXMuYWRkQ29tbWFuZHMoe2NtZDplLmJpbmQodGhpcyx0KSx1bmRvOmUuYmluZCh0aGlzLGkpLHBvc3Q6dGhpcy5fdWlNYW5hZ2VyLnVwZGF0ZVVJLmJpbmQodGhpcy5fdWlNYW5hZ2VyLHRoaXMpLG11c3RFeGVjOiEwLHR5cGU6Yy5GUkVFVEVYVF9DT0xPUixvdmVyd3JpdGVJZlNhbWVUeXBlOiEwLGtlZXBVbmRvOiEwfSl9X3RyYW5zbGF0ZUVtcHR5KHQsZSl7dGhpcy5fdWlNYW5hZ2VyLnRyYW5zbGF0ZVNlbGVjdGVkRWRpdG9ycyh0LGUsITApfWdldEluaXRpYWxUcmFuc2xhdGlvbigpe2NvbnN0IHQ9dGhpcy5wYXJlbnRTY2FsZTtyZXR1cm5bLXRzLl9pbnRlcm5hbFBhZGRpbmcqdCwtKHRzLl9pbnRlcm5hbFBhZGRpbmcrdGhpcy4jSHMpKnRdfXJlYnVpbGQoKXt0aGlzLnBhcmVudCYmKHN1cGVyLnJlYnVpbGQoKSxudWxsIT09dGhpcy5kaXYmJih0aGlzLmlzQXR0YWNoZWRUb0RPTXx8dGhpcy5wYXJlbnQuYWRkKHRoaXMpKSl9ZW5hYmxlRWRpdE1vZGUoKXtpZih0aGlzLmlzSW5FZGl0TW9kZSgpKXJldHVybjt0aGlzLnBhcmVudC5zZXRFZGl0aW5nU3RhdGUoITEpLHRoaXMucGFyZW50LnVwZGF0ZVRvb2xiYXIobC5GUkVFVEVYVCksc3VwZXIuZW5hYmxlRWRpdE1vZGUoKSx0aGlzLm92ZXJsYXlEaXYuY2xhc3NMaXN0LnJlbW92ZSgiZW5hYmxlZCIpLHRoaXMuZWRpdG9yRGl2LmNvbnRlbnRFZGl0YWJsZT0hMCx0aGlzLl9pc0RyYWdnYWJsZT0hMSx0aGlzLmRpdi5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtYWN0aXZlZGVzY2VuZGFudCIpLHRoaXMuI3JuPW5ldyBBYm9ydENvbnRyb2xsZXI7Y29uc3QgdD10aGlzLl91aU1hbmFnZXIuY29tYmluZWRTaWduYWwodGhpcy4jcm4pO3RoaXMuZWRpdG9yRGl2LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuZWRpdG9yRGl2S2V5ZG93bi5iaW5kKHRoaXMpLHtzaWduYWw6dH0pLHRoaXMuZWRpdG9yRGl2LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLmVkaXRvckRpdkZvY3VzLmJpbmQodGhpcykse3NpZ25hbDp0fSksdGhpcy5lZGl0b3JEaXYuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcy5lZGl0b3JEaXZCbHVyLmJpbmQodGhpcykse3NpZ25hbDp0fSksdGhpcy5lZGl0b3JEaXYuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLHRoaXMuZWRpdG9yRGl2SW5wdXQuYmluZCh0aGlzKSx7c2lnbmFsOnR9KSx0aGlzLmVkaXRvckRpdi5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsdGhpcy5lZGl0b3JEaXZQYXN0ZS5iaW5kKHRoaXMpLHtzaWduYWw6dH0pfWRpc2FibGVFZGl0TW9kZSgpe3RoaXMuaXNJbkVkaXRNb2RlKCkmJih0aGlzLnBhcmVudC5zZXRFZGl0aW5nU3RhdGUoITApLHN1cGVyLmRpc2FibGVFZGl0TW9kZSgpLHRoaXMub3ZlcmxheURpdi5jbGFzc0xpc3QuYWRkKCJlbmFibGVkIiksdGhpcy5lZGl0b3JEaXYuY29udGVudEVkaXRhYmxlPSExLHRoaXMuZGl2LnNldEF0dHJpYnV0ZSgiYXJpYS1hY3RpdmVkZXNjZW5kYW50Iix0aGlzLiNubiksdGhpcy5faXNEcmFnZ2FibGU9ITAsdGhpcy4jcm4/LmFib3J0KCksdGhpcy4jcm49bnVsbCx0aGlzLmRpdi5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pLHRoaXMuaXNFZGl0aW5nPSExLHRoaXMucGFyZW50LmRpdi5jbGFzc0xpc3QuYWRkKCJmcmVldGV4dEVkaXRpbmciKSl9Zm9jdXNpbih0KXt0aGlzLl9mb2N1c0V2ZW50c0FsbG93ZWQmJihzdXBlci5mb2N1c2luKHQpLHQudGFyZ2V0IT09dGhpcy5lZGl0b3JEaXYmJnRoaXMuZWRpdG9yRGl2LmZvY3VzKCkpfW9uY2VBZGRlZCgpe3RoaXMud2lkdGh8fCh0aGlzLmVuYWJsZUVkaXRNb2RlKCksdGhpcy5lZGl0b3JEaXYuZm9jdXMoKSx0aGlzLl9pbml0aWFsT3B0aW9ucz8uaXNDZW50ZXJlZCYmdGhpcy5jZW50ZXIoKSx0aGlzLl9pbml0aWFsT3B0aW9ucz1udWxsKX1pc0VtcHR5KCl7cmV0dXJuIXRoaXMuZWRpdG9yRGl2fHwiIj09PXRoaXMuZWRpdG9yRGl2LmlubmVyVGV4dC50cmltKCl9cmVtb3ZlKCl7dGhpcy5pc0VkaXRpbmc9ITEsdGhpcy5wYXJlbnQmJih0aGlzLnBhcmVudC5zZXRFZGl0aW5nU3RhdGUoITApLHRoaXMucGFyZW50LmRpdi5jbGFzc0xpc3QuYWRkKCJmcmVldGV4dEVkaXRpbmciKSksc3VwZXIucmVtb3ZlKCl9I2xuKCl7Y29uc3QgdD1bXTt0aGlzLmVkaXRvckRpdi5ub3JtYWxpemUoKTtsZXQgZT1udWxsO2Zvcihjb25zdCBpIG9mIHRoaXMuZWRpdG9yRGl2LmNoaWxkTm9kZXMpZT8ubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmIkJSIj09PWkubm9kZU5hbWV8fCh0LnB1c2godHMuI2NuKGkpKSxlPWkpO3JldHVybiB0LmpvaW4oIlxuIil9I2huKCl7Y29uc3RbdCxlXT10aGlzLnBhcmVudERpbWVuc2lvbnM7bGV0IGk7aWYodGhpcy5pc0F0dGFjaGVkVG9ET00paT10aGlzLmRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlbHNle2NvbnN0e2N1cnJlbnRMYXllcjp0LGRpdjplfT10aGlzLHM9ZS5zdHlsZS5kaXNwbGF5LG49ZS5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpO2UuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksZS5zdHlsZS5kaXNwbGF5PSJoaWRkZW4iLHQuZGl2LmFwcGVuZCh0aGlzLmRpdiksaT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGUucmVtb3ZlKCksZS5zdHlsZS5kaXNwbGF5PXMsZS5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLG4pfXRoaXMucm90YXRpb24lMTgwPT10aGlzLnBhcmVudFJvdGF0aW9uJTE4MD8odGhpcy53aWR0aD1pLndpZHRoL3QsdGhpcy5oZWlnaHQ9aS5oZWlnaHQvZSk6KHRoaXMud2lkdGg9aS5oZWlnaHQvdCx0aGlzLmhlaWdodD1pLndpZHRoL2UpLHRoaXMuZml4QW5kU2V0UG9zaXRpb24oKX1jb21taXQoKXtpZighdGhpcy5pc0luRWRpdE1vZGUoKSlyZXR1cm47c3VwZXIuY29tbWl0KCksdGhpcy5kaXNhYmxlRWRpdE1vZGUoKTtjb25zdCB0PXRoaXMuI3NuLGU9dGhpcy4jc249dGhpcy4jbG4oKS50cmltRW5kKCk7aWYodD09PWUpcmV0dXJuO2NvbnN0IGk9dD0+e3RoaXMuI3NuPXQsdD8odGhpcy4jZG4oKSx0aGlzLl91aU1hbmFnZXIucmVidWlsZCh0aGlzKSx0aGlzLiNobigpKTp0aGlzLnJlbW92ZSgpfTt0aGlzLmFkZENvbW1hbmRzKHtjbWQ6KCk9PntpKGUpfSx1bmRvOigpPT57aSh0KX0sbXVzdEV4ZWM6ITF9KSx0aGlzLiNobigpfXNob3VsZEdldEtleWJvYXJkRXZlbnRzKCl7cmV0dXJuIHRoaXMuaXNJbkVkaXRNb2RlKCl9ZW50ZXJJbkVkaXRNb2RlKCl7dGhpcy5lbmFibGVFZGl0TW9kZSgpLHRoaXMuZWRpdG9yRGl2LmZvY3VzKCl9ZGJsY2xpY2sodCl7dGhpcy5lbnRlckluRWRpdE1vZGUoKX1rZXlkb3duKHQpe3QudGFyZ2V0PT09dGhpcy5kaXYmJiJFbnRlciI9PT10LmtleSYmKHRoaXMuZW50ZXJJbkVkaXRNb2RlKCksdC5wcmV2ZW50RGVmYXVsdCgpKX1lZGl0b3JEaXZLZXlkb3duKHQpe3RzLl9rZXlib2FyZE1hbmFnZXIuZXhlYyh0aGlzLHQpfWVkaXRvckRpdkZvY3VzKHQpe3RoaXMuaXNFZGl0aW5nPSEwfWVkaXRvckRpdkJsdXIodCl7dGhpcy5pc0VkaXRpbmc9ITF9ZWRpdG9yRGl2SW5wdXQodCl7dGhpcy5wYXJlbnQuZGl2LmNsYXNzTGlzdC50b2dnbGUoImZyZWV0ZXh0RWRpdGluZyIsdGhpcy5pc0VtcHR5KCkpfWRpc2FibGVFZGl0aW5nKCl7dGhpcy5lZGl0b3JEaXYuc2V0QXR0cmlidXRlKCJyb2xlIiwiY29tbWVudCIpLHRoaXMuZWRpdG9yRGl2LnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1tdWx0aWxpbmUiKX1lbmFibGVFZGl0aW5nKCl7dGhpcy5lZGl0b3JEaXYuc2V0QXR0cmlidXRlKCJyb2xlIiwidGV4dGJveCIpLHRoaXMuZWRpdG9yRGl2LnNldEF0dHJpYnV0ZSgiYXJpYS1tdWx0aWxpbmUiLCEwKX1yZW5kZXIoKXtpZih0aGlzLmRpdilyZXR1cm4gdGhpcy5kaXY7bGV0IHQsZTt0aGlzLndpZHRoJiYodD10aGlzLngsZT10aGlzLnkpLHN1cGVyLnJlbmRlcigpLHRoaXMuZWRpdG9yRGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuZWRpdG9yRGl2LmNsYXNzTmFtZT0iaW50ZXJuYWwiLHRoaXMuZWRpdG9yRGl2LnNldEF0dHJpYnV0ZSgiaWQiLHRoaXMuI25uKSx0aGlzLmVkaXRvckRpdi5zZXRBdHRyaWJ1dGUoImRhdGEtbDEwbi1pZCIsInBkZmpzLWZyZWUtdGV4dCIpLHRoaXMuZW5hYmxlRWRpdGluZygpLGt0Ll9sMTBuUHJvbWlzZS5nZXQoInBkZmpzLWZyZWUtdGV4dC1kZWZhdWx0LWNvbnRlbnQiKS50aGVuKCh0PT50aGlzLmVkaXRvckRpdj8uc2V0QXR0cmlidXRlKCJkZWZhdWx0LWNvbnRlbnQiLHQpKSksdGhpcy5lZGl0b3JEaXYuY29udGVudEVkaXRhYmxlPSEwO2NvbnN0e3N0eWxlOml9PXRoaXMuZWRpdG9yRGl2O2lmKGkuZm9udFNpemU9YGNhbGMoJHt0aGlzLiNIc31weCAqIHZhcigtLXNjYWxlLWZhY3RvcikpYCxpLmNvbG9yPXRoaXMuI1RzLHRoaXMuZGl2LmFwcGVuZCh0aGlzLmVkaXRvckRpdiksdGhpcy5vdmVybGF5RGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMub3ZlcmxheURpdi5jbGFzc0xpc3QuYWRkKCJvdmVybGF5IiwiZW5hYmxlZCIpLHRoaXMuZGl2LmFwcGVuZCh0aGlzLm92ZXJsYXlEaXYpLHd0KHRoaXMsdGhpcy5kaXYsWyJkYmxjbGljayIsImtleWRvd24iXSksdGhpcy53aWR0aCl7Y29uc3RbaSxzXT10aGlzLnBhcmVudERpbWVuc2lvbnM7aWYodGhpcy5hbm5vdGF0aW9uRWxlbWVudElkKXtjb25zdHtwb3NpdGlvbjpufT10aGlzLl9pbml0aWFsRGF0YTtsZXRbcixhXT10aGlzLmdldEluaXRpYWxUcmFuc2xhdGlvbigpO1tyLGFdPXRoaXMucGFnZVRyYW5zbGF0aW9uVG9TY3JlZW4ocixhKTtjb25zdFtvLGhdPXRoaXMucGFnZURpbWVuc2lvbnMsW2wsY109dGhpcy5wYWdlVHJhbnNsYXRpb247bGV0IGQsdTtzd2l0Y2godGhpcy5yb3RhdGlvbil7Y2FzZSAwOmQ9dCsoblswXS1sKS9vLHU9ZSt0aGlzLmhlaWdodC0oblsxXS1jKS9oO2JyZWFrO2Nhc2UgOTA6ZD10KyhuWzBdLWwpL28sdT1lLShuWzFdLWMpL2gsW3IsYV09W2EsLXJdO2JyZWFrO2Nhc2UgMTgwOmQ9dC10aGlzLndpZHRoKyhuWzBdLWwpL28sdT1lLShuWzFdLWMpL2gsW3IsYV09Wy1yLC1hXTticmVhaztjYXNlIDI3MDpkPXQrKG5bMF0tbC10aGlzLmhlaWdodCpoKS9vLHU9ZSsoblsxXS1jLXRoaXMud2lkdGgqbykvaCxbcixhXT1bLWEscl19dGhpcy5zZXRBdChkKmksdSpzLHIsYSl9ZWxzZSB0aGlzLnNldEF0KHQqaSxlKnMsdGhpcy53aWR0aCppLHRoaXMuaGVpZ2h0KnMpO3RoaXMuI2RuKCksdGhpcy5faXNEcmFnZ2FibGU9ITAsdGhpcy5lZGl0b3JEaXYuY29udGVudEVkaXRhYmxlPSExfWVsc2UgdGhpcy5faXNEcmFnZ2FibGU9ITEsdGhpcy5lZGl0b3JEaXYuY29udGVudEVkaXRhYmxlPSEwO3JldHVybiB0aGlzLmRpdn1zdGF0aWMjY24odCl7cmV0dXJuKHQubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT90Lm5vZGVWYWx1ZTp0LmlubmVyVGV4dCkucmVwbGFjZUFsbChaaSwiIil9ZWRpdG9yRGl2UGFzdGUodCl7Y29uc3QgZT10LmNsaXBib2FyZERhdGF8fHdpbmRvdy5jbGlwYm9hcmREYXRhLHt0eXBlczppfT1lO2lmKDE9PT1pLmxlbmd0aCYmInRleHQvcGxhaW4iPT09aVswXSlyZXR1cm47dC5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IHM9dHMuI3VuKGUuZ2V0RGF0YSgidGV4dCIpfHwiIikucmVwbGFjZUFsbChaaSwiXG4iKTtpZighcylyZXR1cm47Y29uc3Qgbj13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIW4ucmFuZ2VDb3VudClyZXR1cm47dGhpcy5lZGl0b3JEaXYubm9ybWFsaXplKCksbi5kZWxldGVGcm9tRG9jdW1lbnQoKTtjb25zdCByPW4uZ2V0UmFuZ2VBdCgwKTtpZighcy5pbmNsdWRlcygiXG4iKSlyZXR1cm4gci5pbnNlcnROb2RlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHMpKSx0aGlzLmVkaXRvckRpdi5ub3JtYWxpemUoKSx2b2lkIG4uY29sbGFwc2VUb1N0YXJ0KCk7Y29uc3R7c3RhcnRDb250YWluZXI6YSxzdGFydE9mZnNldDpvfT1yLGg9W10sbD1bXTtpZihhLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpe2NvbnN0IHQ9YS5wYXJlbnRFbGVtZW50O2lmKGwucHVzaChhLm5vZGVWYWx1ZS5zbGljZShvKS5yZXBsYWNlQWxsKFppLCIiKSksdCE9PXRoaXMuZWRpdG9yRGl2KXtsZXQgZT1oO2Zvcihjb25zdCBpIG9mIHRoaXMuZWRpdG9yRGl2LmNoaWxkTm9kZXMpaSE9PXQ/ZS5wdXNoKHRzLiNjbihpKSk6ZT1sfWgucHVzaChhLm5vZGVWYWx1ZS5zbGljZSgwLG8pLnJlcGxhY2VBbGwoWmksIiIpKX1lbHNlIGlmKGE9PT10aGlzLmVkaXRvckRpdil7bGV0IHQ9aCxlPTA7Zm9yKGNvbnN0IGkgb2YgdGhpcy5lZGl0b3JEaXYuY2hpbGROb2RlcyllKys9PT1vJiYodD1sKSx0LnB1c2godHMuI2NuKGkpKX10aGlzLiNzbj1gJHtoLmpvaW4oIlxuIil9JHtzfSR7bC5qb2luKCJcbiIpfWAsdGhpcy4jZG4oKTtjb25zdCBjPW5ldyBSYW5nZTtsZXQgZD1oLnJlZHVjZSgoKHQsZSk9PnQrZS5sZW5ndGgpLDApO2Zvcihjb25zdHtmaXJzdENoaWxkOnR9b2YgdGhpcy5lZGl0b3JEaXYuY2hpbGROb2RlcylpZih0Lm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpe2NvbnN0IGU9dC5ub2RlVmFsdWUubGVuZ3RoO2lmKGQ8PWUpe2Muc2V0U3RhcnQodCxkKSxjLnNldEVuZCh0LGQpO2JyZWFrfWQtPWV9bi5yZW1vdmVBbGxSYW5nZXMoKSxuLmFkZFJhbmdlKGMpfSNkbigpe2lmKHRoaXMuZWRpdG9yRGl2LnJlcGxhY2VDaGlsZHJlbigpLHRoaXMuI3NuKWZvcihjb25zdCB0IG9mIHRoaXMuI3NuLnNwbGl0KCJcbiIpKXtjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuYXBwZW5kKHQ/ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodCk6ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnIiKSksdGhpcy5lZGl0b3JEaXYuYXBwZW5kKGUpfX0jcG4oKXtyZXR1cm4gdGhpcy4jc24ucmVwbGFjZUFsbCgiwqAiLCIgIil9c3RhdGljI3VuKHQpe3JldHVybiB0LnJlcGxhY2VBbGwoIiAiLCLCoCIpfWdldCBjb250ZW50RGl2KCl7cmV0dXJuIHRoaXMuZWRpdG9yRGl2fXN0YXRpYyBhc3luYyBkZXNlcmlhbGl6ZSh0LGUsaSl7bGV0IHM9bnVsbDtpZih0IGluc3RhbmNlb2YgQmkpe2NvbnN0e2RhdGE6e2RlZmF1bHRBcHBlYXJhbmNlRGF0YTp7Zm9udFNpemU6ZSxmb250Q29sb3I6aX0scmVjdDpuLHJvdGF0aW9uOnIsaWQ6YSxwb3B1cFJlZjpvfSx0ZXh0Q29udGVudDpoLHRleHRQb3NpdGlvbjpjLHBhcmVudDp7cGFnZTp7cGFnZU51bWJlcjpkfX19PXQ7aWYoIWh8fDA9PT1oLmxlbmd0aClyZXR1cm4gbnVsbDtzPXQ9e2Fubm90YXRpb25UeXBlOmwuRlJFRVRFWFQsY29sb3I6QXJyYXkuZnJvbShpKSxmb250U2l6ZTplLHZhbHVlOmguam9pbigiXG4iKSxwb3NpdGlvbjpjLHBhZ2VJbmRleDpkLTEscmVjdDpuLnNsaWNlKDApLHJvdGF0aW9uOnIsaWQ6YSxkZWxldGVkOiExLHBvcHVwUmVmOm99fWNvbnN0IG49YXdhaXQgc3VwZXIuZGVzZXJpYWxpemUodCxlLGkpO3JldHVybiBuLiNIcz10LmZvbnRTaXplLG4uI1RzPXoubWFrZUhleENvbG9yKC4uLnQuY29sb3IpLG4uI3NuPXRzLiN1bih0LnZhbHVlKSxuLmFubm90YXRpb25FbGVtZW50SWQ9dC5pZHx8bnVsbCxuLl9pbml0aWFsRGF0YT1zLG59c2VyaWFsaXplKHQ9ITEpe2lmKHRoaXMuaXNFbXB0eSgpKXJldHVybiBudWxsO2lmKHRoaXMuZGVsZXRlZClyZXR1cm4gdGhpcy5zZXJpYWxpemVEZWxldGVkKCk7Y29uc3QgZT10cy5faW50ZXJuYWxQYWRkaW5nKnRoaXMucGFyZW50U2NhbGUsaT10aGlzLmdldFJlY3QoZSxlKSxzPWt0Ll9jb2xvck1hbmFnZXIuY29udmVydCh0aGlzLmlzQXR0YWNoZWRUb0RPTT9nZXRDb21wdXRlZFN0eWxlKHRoaXMuZWRpdG9yRGl2KS5jb2xvcjp0aGlzLiNUcyksbj17YW5ub3RhdGlvblR5cGU6bC5GUkVFVEVYVCxjb2xvcjpzLGZvbnRTaXplOnRoaXMuI0hzLHZhbHVlOnRoaXMuI3BuKCkscGFnZUluZGV4OnRoaXMucGFnZUluZGV4LHJlY3Q6aSxyb3RhdGlvbjp0aGlzLnJvdGF0aW9uLHN0cnVjdFRyZWVQYXJlbnRJZDp0aGlzLl9zdHJ1Y3RUcmVlUGFyZW50SWR9O3JldHVybiB0P246dGhpcy5hbm5vdGF0aW9uRWxlbWVudElkJiYhdGhpcy4jZ24obik/bnVsbDoobi5pZD10aGlzLmFubm90YXRpb25FbGVtZW50SWQsbil9I2duKHQpe2NvbnN0e3ZhbHVlOmUsZm9udFNpemU6aSxjb2xvcjpzLHBhZ2VJbmRleDpufT10aGlzLl9pbml0aWFsRGF0YTtyZXR1cm4gdGhpcy5faGFzQmVlbk1vdmVkfHx0LnZhbHVlIT09ZXx8dC5mb250U2l6ZSE9PWl8fHQuY29sb3Iuc29tZSgoKHQsZSk9PnQhPT1zW2VdKSl8fHQucGFnZUluZGV4IT09bn1yZW5kZXJBbm5vdGF0aW9uRWxlbWVudCh0KXtjb25zdCBlPXN1cGVyLnJlbmRlckFubm90YXRpb25FbGVtZW50KHQpO2lmKHRoaXMuZGVsZXRlZClyZXR1cm4gZTtjb25zdHtzdHlsZTppfT1lO2kuZm9udFNpemU9YGNhbGMoJHt0aGlzLiNIc31weCAqIHZhcigtLXNjYWxlLWZhY3RvcikpYCxpLmNvbG9yPXRoaXMuI1RzLGUucmVwbGFjZUNoaWxkcmVuKCk7Zm9yKGNvbnN0IHQgb2YgdGhpcy4jc24uc3BsaXQoIlxuIikpe2NvbnN0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aS5hcHBlbmQodD9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0KTpkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJiciIpKSxlLmFwcGVuZChpKX1jb25zdCBzPXRzLl9pbnRlcm5hbFBhZGRpbmcqdGhpcy5wYXJlbnRTY2FsZTtyZXR1cm4gdC51cGRhdGVFZGl0ZWQoe3JlY3Q6dGhpcy5nZXRSZWN0KHMscykscG9wdXBDb250ZW50OnRoaXMuI3NufSksZX1yZXNldEFubm90YXRpb25FbGVtZW50KHQpe3N1cGVyLnJlc2V0QW5ub3RhdGlvbkVsZW1lbnQodCksdC5yZXNldEVkaXRlZCgpfX1jbGFzcyBlc3sjZm47I21uPVtdOyNibj1bXTtjb25zdHJ1Y3Rvcih0LGU9MCxpPTAscz0hMCl7bGV0IG49MS8wLHI9LTEvMCxhPTEvMCxvPS0xLzA7Y29uc3QgaD0xMCoqLTQ7Zm9yKGNvbnN0e3g6aSx5OnMsd2lkdGg6bCxoZWlnaHQ6Y31vZiB0KXtjb25zdCB0PU1hdGguZmxvb3IoKGktZSkvaCkqaCxkPU1hdGguY2VpbCgoaStsK2UpL2gpKmgsdT1NYXRoLmZsb29yKChzLWUpL2gpKmgscD1NYXRoLmNlaWwoKHMrYytlKS9oKSpoLGc9W3QsdSxwLCEwXSxmPVtkLHUscCwhMV07dGhpcy4jbW4ucHVzaChnLGYpLG49TWF0aC5taW4obix0KSxyPU1hdGgubWF4KHIsZCksYT1NYXRoLm1pbihhLHUpLG89TWF0aC5tYXgobyxwKX1jb25zdCBsPXItbisyKmksYz1vLWErMippLGQ9bi1pLHU9YS1pLHA9dGhpcy4jbW4uYXQocz8tMTotMiksZz1bcFswXSxwWzJdXTtmb3IoY29uc3QgdCBvZiB0aGlzLiNtbil7Y29uc3RbZSxpLHNdPXQ7dFswXT0oZS1kKS9sLHRbMV09KGktdSkvYyx0WzJdPShzLXUpL2N9dGhpcy4jZm49e3g6ZCx5OnUsd2lkdGg6bCxoZWlnaHQ6YyxsYXN0UG9pbnQ6Z319Z2V0T3V0bGluZXMoKXt0aGlzLiNtbi5zb3J0KCgodCxlKT0+dFswXS1lWzBdfHx0WzFdLWVbMV18fHRbMl0tZVsyXSkpO2NvbnN0IHQ9W107Zm9yKGNvbnN0IGUgb2YgdGhpcy4jbW4pZVszXT8odC5wdXNoKC4uLnRoaXMuI3ZuKGUpKSx0aGlzLiN5bihlKSk6KHRoaXMuI0FuKGUpLHQucHVzaCguLi50aGlzLiN2bihlKSkpO3JldHVybiB0aGlzLiN3bih0KX0jd24odCl7Y29uc3QgZT1bXSxpPW5ldyBTZXQ7Zm9yKGNvbnN0IGkgb2YgdCl7Y29uc3RbdCxzLG5dPWk7ZS5wdXNoKFt0LHMsaV0sW3QsbixpXSl9ZS5zb3J0KCgodCxlKT0+dFsxXS1lWzFdfHx0WzBdLWVbMF0pKTtmb3IobGV0IHQ9MCxzPWUubGVuZ3RoO3Q8czt0Kz0yKXtjb25zdCBzPWVbdF1bMl0sbj1lW3QrMV1bMl07cy5wdXNoKG4pLG4ucHVzaChzKSxpLmFkZChzKSxpLmFkZChuKX1jb25zdCBzPVtdO2xldCBuO2Zvcig7aS5zaXplPjA7KXtjb25zdCB0PWkudmFsdWVzKCkubmV4dCgpLnZhbHVlO2xldFtlLHIsYSxvLGhdPXQ7aS5kZWxldGUodCk7bGV0IGw9ZSxjPXI7Zm9yKG49W2UsYV0scy5wdXNoKG4pOzspe2xldCB0O2lmKGkuaGFzKG8pKXQ9bztlbHNle2lmKCFpLmhhcyhoKSlicmVhazt0PWh9aS5kZWxldGUodCksW2UscixhLG8saF09dCxsIT09ZSYmKG4ucHVzaChsLGMsZSxjPT09cj9yOmEpLGw9ZSksYz1jPT09cj9hOnJ9bi5wdXNoKGwsYyl9cmV0dXJuIG5ldyBzcyhzLHRoaXMuI2ZuKX0jeG4odCl7Y29uc3QgZT10aGlzLiNibjtsZXQgaT0wLHM9ZS5sZW5ndGgtMTtmb3IoO2k8PXM7KXtjb25zdCBuPWkrcz4+MSxyPWVbbl1bMF07aWYocj09PXQpcmV0dXJuIG47cjx0P2k9bisxOnM9bi0xfXJldHVybiBzKzF9I3luKFssdCxlXSl7Y29uc3QgaT10aGlzLiN4bih0KTt0aGlzLiNibi5zcGxpY2UoaSwwLFt0LGVdKX0jQW4oWyx0LGVdKXtjb25zdCBpPXRoaXMuI3huKHQpO2ZvcihsZXQgcz1pO3M8dGhpcy4jYm4ubGVuZ3RoO3MrKyl7Y29uc3RbaSxuXT10aGlzLiNibltzXTtpZihpIT09dClicmVhaztpZihpPT09dCYmbj09PWUpcmV0dXJuIHZvaWQgdGhpcy4jYm4uc3BsaWNlKHMsMSl9Zm9yKGxldCBzPWktMTtzPj0wO3MtLSl7Y29uc3RbaSxuXT10aGlzLiNibltzXTtpZihpIT09dClicmVhaztpZihpPT09dCYmbj09PWUpcmV0dXJuIHZvaWQgdGhpcy4jYm4uc3BsaWNlKHMsMSl9fSN2bih0KXtjb25zdFtlLGksc109dCxuPVtbZSxpLHNdXSxyPXRoaXMuI3huKHMpO2ZvcihsZXQgdD0wO3Q8cjt0Kyspe2NvbnN0W2ksc109dGhpcy4jYm5bdF07Zm9yKGxldCB0PTAscj1uLmxlbmd0aDt0PHI7dCsrKXtjb25zdFssYSxvXT1uW3RdO2lmKCEoczw9YXx8bzw9aSkpaWYoYT49aSlpZihvPnMpblt0XVsxXT1zO2Vsc2V7aWYoMT09PXIpcmV0dXJuW107bi5zcGxpY2UodCwxKSx0LS0sci0tfWVsc2Ugblt0XVsyXT1pLG8+cyYmbi5wdXNoKFtlLHMsb10pfX1yZXR1cm4gbn19Y2xhc3MgaXN7dG9TVkdQYXRoKCl7dGhyb3cgbmV3IEVycm9yKCJBYnN0cmFjdCBtZXRob2QgYHRvU1ZHUGF0aGAgbXVzdCBiZSBpbXBsZW1lbnRlZC4iKX1nZXQgYm94KCl7dGhyb3cgbmV3IEVycm9yKCJBYnN0cmFjdCBnZXR0ZXIgYGJveGAgbXVzdCBiZSBpbXBsZW1lbnRlZC4iKX1zZXJpYWxpemUodCxlKXt0aHJvdyBuZXcgRXJyb3IoIkFic3RyYWN0IG1ldGhvZCBgc2VyaWFsaXplYCBtdXN0IGJlIGltcGxlbWVudGVkLiIpfWdldCBmcmVlKCl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiByc319Y2xhc3Mgc3MgZXh0ZW5kcyBpc3sjZm47I19uO2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKSx0aGlzLiNfbj10LHRoaXMuI2ZuPWV9dG9TVkdQYXRoKCl7Y29uc3QgdD1bXTtmb3IoY29uc3QgZSBvZiB0aGlzLiNfbil7bGV0W2ksc109ZTt0LnB1c2goYE0ke2l9ICR7c31gKTtmb3IobGV0IG49MjtuPGUubGVuZ3RoO24rPTIpe2NvbnN0IHI9ZVtuXSxhPWVbbisxXTtyPT09aT8odC5wdXNoKGBWJHthfWApLHM9YSk6YT09PXMmJih0LnB1c2goYEgke3J9YCksaT1yKX10LnB1c2goIloiKX1yZXR1cm4gdC5qb2luKCIgIil9c2VyaWFsaXplKFt0LGUsaSxzXSxuKXtjb25zdCByPVtdLGE9aS10LG89cy1lO2Zvcihjb25zdCBlIG9mIHRoaXMuI19uKXtjb25zdCBpPW5ldyBBcnJheShlLmxlbmd0aCk7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKz0yKWlbbl09dCtlW25dKmEsaVtuKzFdPXMtZVtuKzFdKm87ci5wdXNoKGkpfXJldHVybiByfWdldCBib3goKXtyZXR1cm4gdGhpcy4jZm59fWNsYXNzIG5zeyNmbjsjRW49W107I0NuOyNTbjsjVG49W107I01uPW5ldyBGbG9hdDY0QXJyYXkoMTgpOyNrbjsjSW47I1JuOyNQbjsjRG47I0xuOyNGbj1bXTtzdGF0aWMjT249ODtzdGF0aWMjTm49MjtzdGF0aWMjQm49bnMuI09uK25zLiNObjtjb25zdHJ1Y3Rvcih7eDp0LHk6ZX0saSxzLG4scixhPTApe3RoaXMuI2ZuPWksdGhpcy4jTG49bipzLHRoaXMuI1NuPXIsdGhpcy4jTW4uc2V0KFtOYU4sTmFOLE5hTixOYU4sdCxlXSw2KSx0aGlzLiNDbj1hLHRoaXMuI1BuPW5zLiNPbipzLHRoaXMuI1JuPW5zLiNCbipzLHRoaXMuI0RuPXMsdGhpcy4jRm4ucHVzaCh0LGUpfWdldCBmcmVlKCl7cmV0dXJuITB9aXNFbXB0eSgpe3JldHVybiBpc05hTih0aGlzLiNNbls4XSl9I3puKCl7Y29uc3QgdD10aGlzLiNNbi5zdWJhcnJheSg0LDYpLGU9dGhpcy4jTW4uc3ViYXJyYXkoMTYsMTgpLFtpLHMsbixyXT10aGlzLiNmbjtyZXR1cm5bKHRoaXMuI2tuKyh0WzBdLWVbMF0pLzItaSkvbiwodGhpcy4jSW4rKHRbMV0tZVsxXSkvMi1zKS9yLCh0aGlzLiNrbisoZVswXS10WzBdKS8yLWkpL24sKHRoaXMuI0luKyhlWzFdLXRbMV0pLzItcykvcl19YWRkKHt4OnQseTplfSl7dGhpcy4ja249dCx0aGlzLiNJbj1lO2NvbnN0W2kscyxuLHJdPXRoaXMuI2ZuO2xldFthLG8saCxsXT10aGlzLiNNbi5zdWJhcnJheSg4LDEyKTtjb25zdCBjPXQtaCxkPWUtbCx1PU1hdGguaHlwb3QoYyxkKTtpZih1PHRoaXMuI1JuKXJldHVybiExO2NvbnN0IHA9dS10aGlzLiNQbixnPXAvdSxmPWcqYyxtPWcqZDtsZXQgYj1hLHY9bzthPWgsbz1sLGgrPWYsbCs9bSx0aGlzLiNGbj8ucHVzaCh0LGUpO2NvbnN0IHk9Zi9wLEE9LW0vcCp0aGlzLiNMbix3PXkqdGhpcy4jTG47cmV0dXJuIHRoaXMuI01uLnNldCh0aGlzLiNNbi5zdWJhcnJheSgyLDgpLDApLHRoaXMuI01uLnNldChbaCtBLGwrd10sNCksdGhpcy4jTW4uc2V0KHRoaXMuI01uLnN1YmFycmF5KDE0LDE4KSwxMiksdGhpcy4jTW4uc2V0KFtoLUEsbC13XSwxNiksaXNOYU4odGhpcy4jTW5bNl0pPygwPT09dGhpcy4jVG4ubGVuZ3RoJiYodGhpcy4jTW4uc2V0KFthK0Esbyt3XSwyKSx0aGlzLiNUbi5wdXNoKE5hTixOYU4sTmFOLE5hTiwoYStBLWkpL24sKG8rdy1zKS9yKSx0aGlzLiNNbi5zZXQoW2EtQSxvLXddLDE0KSx0aGlzLiNFbi5wdXNoKE5hTixOYU4sTmFOLE5hTiwoYS1BLWkpL24sKG8tdy1zKS9yKSksdGhpcy4jTW4uc2V0KFtiLHYsYSxvLGgsbF0sNiksIXRoaXMuaXNFbXB0eSgpKToodGhpcy4jTW4uc2V0KFtiLHYsYSxvLGgsbF0sNiksTWF0aC5hYnMoTWF0aC5hdGFuMih2LW8sYi1hKS1NYXRoLmF0YW4yKG0sZikpPE1hdGguUEkvMj8oW2EsbyxoLGxdPXRoaXMuI01uLnN1YmFycmF5KDIsNiksdGhpcy4jVG4ucHVzaChOYU4sTmFOLE5hTixOYU4sKChhK2gpLzItaSkvbiwoKG8rbCkvMi1zKS9yKSxbYSxvLGIsdl09dGhpcy4jTW4uc3ViYXJyYXkoMTQsMTgpLHRoaXMuI0VuLnB1c2goTmFOLE5hTixOYU4sTmFOLCgoYithKS8yLWkpL24sKCh2K28pLzItcykvciksITApOihbYix2LGEsbyxoLGxdPXRoaXMuI01uLnN1YmFycmF5KDAsNiksdGhpcy4jVG4ucHVzaCgoKGIrNSphKS82LWkpL24sKCh2KzUqbykvNi1zKS9yLCgoNSphK2gpLzYtaSkvbiwoKDUqbytsKS82LXMpL3IsKChhK2gpLzItaSkvbiwoKG8rbCkvMi1zKS9yKSxbaCxsLGEsbyxiLHZdPXRoaXMuI01uLnN1YmFycmF5KDEyLDE4KSx0aGlzLiNFbi5wdXNoKCgoYis1KmEpLzYtaSkvbiwoKHYrNSpvKS82LXMpL3IsKCg1KmEraCkvNi1pKS9uLCgoNSpvK2wpLzYtcykvciwoKGEraCkvMi1pKS9uLCgobytsKS8yLXMpL3IpLCEwKSl9dG9TVkdQYXRoKCl7aWYodGhpcy5pc0VtcHR5KCkpcmV0dXJuIiI7Y29uc3QgdD10aGlzLiNUbixlPXRoaXMuI0VuLGk9dGhpcy4jTW4uc3ViYXJyYXkoNCw2KSxzPXRoaXMuI01uLnN1YmFycmF5KDE2LDE4KSxbbixyLGEsb109dGhpcy4jZm4sW2gsbCxjLGRdPXRoaXMuI3puKCk7aWYoaXNOYU4odGhpcy4jTW5bNl0pJiYhdGhpcy5pc0VtcHR5KCkpcmV0dXJuYE0keyh0aGlzLiNNblsyXS1uKS9hfSAkeyh0aGlzLiNNblszXS1yKS9vfSBMJHsodGhpcy4jTW5bNF0tbikvYX0gJHsodGhpcy4jTW5bNV0tcikvb30gTCR7aH0gJHtsfSBMJHtjfSAke2R9IEwkeyh0aGlzLiNNblsxNl0tbikvYX0gJHsodGhpcy4jTW5bMTddLXIpL299IEwkeyh0aGlzLiNNblsxNF0tbikvYX0gJHsodGhpcy4jTW5bMTVdLXIpL299IFpgO2NvbnN0IHU9W107dS5wdXNoKGBNJHt0WzRdfSAke3RbNV19YCk7Zm9yKGxldCBlPTY7ZTx0Lmxlbmd0aDtlKz02KWlzTmFOKHRbZV0pP3UucHVzaChgTCR7dFtlKzRdfSAke3RbZSs1XX1gKTp1LnB1c2goYEMke3RbZV19ICR7dFtlKzFdfSAke3RbZSsyXX0gJHt0W2UrM119ICR7dFtlKzRdfSAke3RbZSs1XX1gKTt1LnB1c2goYEwkeyhpWzBdLW4pL2F9ICR7KGlbMV0tcikvb30gTCR7aH0gJHtsfSBMJHtjfSAke2R9IEwkeyhzWzBdLW4pL2F9ICR7KHNbMV0tcikvb31gKTtmb3IobGV0IHQ9ZS5sZW5ndGgtNjt0Pj02O3QtPTYpaXNOYU4oZVt0XSk/dS5wdXNoKGBMJHtlW3QrNF19ICR7ZVt0KzVdfWApOnUucHVzaChgQyR7ZVt0XX0gJHtlW3QrMV19ICR7ZVt0KzJdfSAke2VbdCszXX0gJHtlW3QrNF19ICR7ZVt0KzVdfWApO3JldHVybiB1LnB1c2goYEwke2VbNF19ICR7ZVs1XX0gWmApLHUuam9pbigiICIpfWdldE91dGxpbmVzKCl7Y29uc3QgdD10aGlzLiNUbixlPXRoaXMuI0VuLGk9dGhpcy4jTW4scz1pLnN1YmFycmF5KDQsNiksbj1pLnN1YmFycmF5KDE2LDE4KSxbcixhLG8saF09dGhpcy4jZm4sbD1uZXcgRmxvYXQ2NEFycmF5KCh0aGlzLiNGbj8ubGVuZ3RoPz8wKSsyKTtmb3IobGV0IHQ9MCxlPWwubGVuZ3RoLTI7dDxlO3QrPTIpbFt0XT0odGhpcy4jRm5bdF0tcikvbyxsW3QrMV09KHRoaXMuI0ZuW3QrMV0tYSkvaDtsW2wubGVuZ3RoLTJdPSh0aGlzLiNrbi1yKS9vLGxbbC5sZW5ndGgtMV09KHRoaXMuI0luLWEpL2g7Y29uc3RbYyxkLHUscF09dGhpcy4jem4oKTtpZihpc05hTihpWzZdKSYmIXRoaXMuaXNFbXB0eSgpKXtjb25zdCB0PW5ldyBGbG9hdDY0QXJyYXkoMzYpO3JldHVybiB0LnNldChbTmFOLE5hTixOYU4sTmFOLChpWzJdLXIpL28sKGlbM10tYSkvaCxOYU4sTmFOLE5hTixOYU4sKGlbNF0tcikvbywoaVs1XS1hKS9oLE5hTixOYU4sTmFOLE5hTixjLGQsTmFOLE5hTixOYU4sTmFOLHUscCxOYU4sTmFOLE5hTixOYU4sKGlbMTZdLXIpL28sKGlbMTddLWEpL2gsTmFOLE5hTixOYU4sTmFOLChpWzE0XS1yKS9vLChpWzE1XS1hKS9oXSwwKSxuZXcgcnModCxsLHRoaXMuI2ZuLHRoaXMuI0RuLHRoaXMuI0NuLHRoaXMuI1NuKX1jb25zdCBnPW5ldyBGbG9hdDY0QXJyYXkodGhpcy4jVG4ubGVuZ3RoKzI0K3RoaXMuI0VuLmxlbmd0aCk7bGV0IGY9dC5sZW5ndGg7Zm9yKGxldCBlPTA7ZTxmO2UrPTIpaXNOYU4odFtlXSk/Z1tlXT1nW2UrMV09TmFOOihnW2VdPXRbZV0sZ1tlKzFdPXRbZSsxXSk7Zy5zZXQoW05hTixOYU4sTmFOLE5hTiwoc1swXS1yKS9vLChzWzFdLWEpL2gsTmFOLE5hTixOYU4sTmFOLGMsZCxOYU4sTmFOLE5hTixOYU4sdSxwLE5hTixOYU4sTmFOLE5hTiwoblswXS1yKS9vLChuWzFdLWEpL2hdLGYpLGYrPTI0O2ZvcihsZXQgdD1lLmxlbmd0aC02O3Q+PTY7dC09Nilmb3IobGV0IGk9MDtpPDY7aSs9Milpc05hTihlW3QraV0pPyhnW2ZdPWdbZisxXT1OYU4sZis9Mik6KGdbZl09ZVt0K2ldLGdbZisxXT1lW3QraSsxXSxmKz0yKTtyZXR1cm4gZy5zZXQoW05hTixOYU4sTmFOLE5hTixlWzRdLGVbNV1dLGYpLG5ldyBycyhnLGwsdGhpcy4jZm4sdGhpcy4jRG4sdGhpcy4jQ24sdGhpcy4jU24pfX1jbGFzcyBycyBleHRlbmRzIGlzeyNmbjsjSG49bnVsbDsjQ247I1NuOyNGbjsjRG47I2puO2NvbnN0cnVjdG9yKHQsZSxpLHMsbixyKXtzdXBlcigpLHRoaXMuI2puPXQsdGhpcy4jRm49ZSx0aGlzLiNmbj1pLHRoaXMuI0RuPXMsdGhpcy4jQ249bix0aGlzLiNTbj1yLHRoaXMuI1VuKHIpO2NvbnN0e3g6YSx5Om8sd2lkdGg6aCxoZWlnaHQ6bH09dGhpcy4jSG47Zm9yKGxldCBlPTAsaT10Lmxlbmd0aDtlPGk7ZSs9Mil0W2VdPSh0W2VdLWEpL2gsdFtlKzFdPSh0W2UrMV0tbykvbDtmb3IobGV0IHQ9MCxpPWUubGVuZ3RoO3Q8aTt0Kz0yKWVbdF09KGVbdF0tYSkvaCxlW3QrMV09KGVbdCsxXS1vKS9sfXRvU1ZHUGF0aCgpe2NvbnN0IHQ9W2BNJHt0aGlzLiNqbls0XX0gJHt0aGlzLiNqbls1XX1gXTtmb3IobGV0IGU9NixpPXRoaXMuI2puLmxlbmd0aDtlPGk7ZSs9Nilpc05hTih0aGlzLiNqbltlXSk/dC5wdXNoKGBMJHt0aGlzLiNqbltlKzRdfSAke3RoaXMuI2puW2UrNV19YCk6dC5wdXNoKGBDJHt0aGlzLiNqbltlXX0gJHt0aGlzLiNqbltlKzFdfSAke3RoaXMuI2puW2UrMl19ICR7dGhpcy4jam5bZSszXX0gJHt0aGlzLiNqbltlKzRdfSAke3RoaXMuI2puW2UrNV19YCk7cmV0dXJuIHQucHVzaCgiWiIpLHQuam9pbigiICIpfXNlcmlhbGl6ZShbdCxlLGksc10sbil7Y29uc3Qgcj1pLXQsYT1zLWU7bGV0IG8saDtzd2l0Y2gobil7Y2FzZSAwOm89dGhpcy4jJG4odGhpcy4jam4sdCxzLHIsLWEpLGg9dGhpcy4jJG4odGhpcy4jRm4sdCxzLHIsLWEpO2JyZWFrO2Nhc2UgOTA6bz10aGlzLiNXbih0aGlzLiNqbix0LGUscixhKSxoPXRoaXMuI1duKHRoaXMuI0ZuLHQsZSxyLGEpO2JyZWFrO2Nhc2UgMTgwOm89dGhpcy4jJG4odGhpcy4jam4saSxlLC1yLGEpLGg9dGhpcy4jJG4odGhpcy4jRm4saSxlLC1yLGEpO2JyZWFrO2Nhc2UgMjcwOm89dGhpcy4jV24odGhpcy4jam4saSxzLC1yLC1hKSxoPXRoaXMuI1duKHRoaXMuI0ZuLGkscywtciwtYSl9cmV0dXJue291dGxpbmU6QXJyYXkuZnJvbShvKSxwb2ludHM6W0FycmF5LmZyb20oaCldfX0jJG4odCxlLGkscyxuKXtjb25zdCByPW5ldyBGbG9hdDY0QXJyYXkodC5sZW5ndGgpO2ZvcihsZXQgYT0wLG89dC5sZW5ndGg7YTxvO2ErPTIpclthXT1lK3RbYV0qcyxyW2ErMV09aSt0W2ErMV0qbjtyZXR1cm4gcn0jV24odCxlLGkscyxuKXtjb25zdCByPW5ldyBGbG9hdDY0QXJyYXkodC5sZW5ndGgpO2ZvcihsZXQgYT0wLG89dC5sZW5ndGg7YTxvO2ErPTIpclthXT1lK3RbYSsxXSpzLHJbYSsxXT1pK3RbYV0qbjtyZXR1cm4gcn0jVW4odCl7Y29uc3QgZT10aGlzLiNqbjtsZXQgaT1lWzRdLHM9ZVs1XSxuPWkscj1zLGE9aSxvPXMsaD1pLGw9cztjb25zdCBjPXQ/TWF0aC5tYXg6TWF0aC5taW47Zm9yKGxldCB0PTYsZD1lLmxlbmd0aDt0PGQ7dCs9Nil7aWYoaXNOYU4oZVt0XSkpbj1NYXRoLm1pbihuLGVbdCs0XSkscj1NYXRoLm1pbihyLGVbdCs1XSksYT1NYXRoLm1heChhLGVbdCs0XSksbz1NYXRoLm1heChvLGVbdCs1XSksbDxlW3QrNV0/KGg9ZVt0KzRdLGw9ZVt0KzVdKTpsPT09ZVt0KzVdJiYoaD1jKGgsZVt0KzRdKSk7ZWxzZXtjb25zdCBkPXouYmV6aWVyQm91bmRpbmdCb3goaSxzLC4uLmUuc2xpY2UodCx0KzYpKTtuPU1hdGgubWluKG4sZFswXSkscj1NYXRoLm1pbihyLGRbMV0pLGE9TWF0aC5tYXgoYSxkWzJdKSxvPU1hdGgubWF4KG8sZFszXSksbDxkWzNdPyhoPWRbMl0sbD1kWzNdKTpsPT09ZFszXSYmKGg9YyhoLGRbMl0pKX1pPWVbdCs0XSxzPWVbdCs1XX1jb25zdCBkPW4tdGhpcy4jQ24sdT1yLXRoaXMuI0NuLHA9YS1uKzIqdGhpcy4jQ24sZz1vLXIrMip0aGlzLiNDbjt0aGlzLiNIbj17eDpkLHk6dSx3aWR0aDpwLGhlaWdodDpnLGxhc3RQb2ludDpbaCxsXX19Z2V0IGJveCgpe3JldHVybiB0aGlzLiNIbn1nZXROZXdPdXRsaW5lKHQsZSl7Y29uc3R7eDppLHk6cyx3aWR0aDpuLGhlaWdodDpyfT10aGlzLiNIbixbYSxvLGgsbF09dGhpcy4jZm4sYz1uKmgsZD1yKmwsdT1pKmgrYSxwPXMqbCtvLGc9bmV3IG5zKHt4OnRoaXMuI0ZuWzBdKmMrdSx5OnRoaXMuI0ZuWzFdKmQrcH0sdGhpcy4jZm4sdGhpcy4jRG4sdCx0aGlzLiNTbixlPz90aGlzLiNDbik7Zm9yKGxldCB0PTI7dDx0aGlzLiNGbi5sZW5ndGg7dCs9MilnLmFkZCh7eDp0aGlzLiNGblt0XSpjK3UseTp0aGlzLiNGblt0KzFdKmQrcH0pO3JldHVybiBnLmdldE91dGxpbmVzKCl9fWNsYXNzIGFzeyN5cz10aGlzLiNBcy5iaW5kKHRoaXMpOyNHbj10aGlzLiNsLmJpbmQodGhpcyk7I1ZuPW51bGw7I3FuPW51bGw7I1huOyNLbj1udWxsOyNZbj0hMTsjUW49ITE7I3I9bnVsbDsjSm47I2Y9bnVsbDsjWm47c3RhdGljI3RyPW51bGw7c3RhdGljIGdldCBfa2V5Ym9hcmRNYW5hZ2VyKCl7cmV0dXJuIEModGhpcywiX2tleWJvYXJkTWFuYWdlciIsbmV3IEN0KFtbWyJFc2NhcGUiLCJtYWMrRXNjYXBlIl0sYXMucHJvdG90eXBlLl9oaWRlRHJvcGRvd25Gcm9tS2V5Ym9hcmRdLFtbIiAiLCJtYWMrICJdLGFzLnByb3RvdHlwZS5fY29sb3JTZWxlY3RGcm9tS2V5Ym9hcmRdLFtbIkFycm93RG93biIsIkFycm93UmlnaHQiLCJtYWMrQXJyb3dEb3duIiwibWFjK0Fycm93UmlnaHQiXSxhcy5wcm90b3R5cGUuX21vdmVUb05leHRdLFtbIkFycm93VXAiLCJBcnJvd0xlZnQiLCJtYWMrQXJyb3dVcCIsIm1hYytBcnJvd0xlZnQiXSxhcy5wcm90b3R5cGUuX21vdmVUb1ByZXZpb3VzXSxbWyJIb21lIiwibWFjK0hvbWUiXSxhcy5wcm90b3R5cGUuX21vdmVUb0JlZ2lubmluZ10sW1siRW5kIiwibWFjK0VuZCJdLGFzLnByb3RvdHlwZS5fbW92ZVRvRW5kXV0pKX1jb25zdHJ1Y3Rvcih7ZWRpdG9yOnQ9bnVsbCx1aU1hbmFnZXI6ZT1udWxsfSl7dD8odGhpcy4jUW49ITEsdGhpcy4jWm49Yy5ISUdITElHSFRfQ09MT1IsdGhpcy4jcj10KToodGhpcy4jUW49ITAsdGhpcy4jWm49Yy5ISUdITElHSFRfREVGQVVMVF9DT0xPUiksdGhpcy4jZj10Py5fdWlNYW5hZ2VyfHxlLHRoaXMuI0puPXRoaXMuI2YuX2V2ZW50QnVzLHRoaXMuI1huPXQ/LmNvbG9yfHx0aGlzLiNmPy5oaWdobGlnaHRDb2xvcnMudmFsdWVzKCkubmV4dCgpLnZhbHVlfHwiI0ZGRkY5OCIsYXMuI3RyfHw9T2JqZWN0LmZyZWV6ZSh7Ymx1ZToicGRmanMtZWRpdG9yLWNvbG9ycGlja2VyLWJsdWUiLGdyZWVuOiJwZGZqcy1lZGl0b3ItY29sb3JwaWNrZXItZ3JlZW4iLHBpbms6InBkZmpzLWVkaXRvci1jb2xvcnBpY2tlci1waW5rIixyZWQ6InBkZmpzLWVkaXRvci1jb2xvcnBpY2tlci1yZWQiLHllbGxvdzoicGRmanMtZWRpdG9yLWNvbG9ycGlja2VyLXllbGxvdyJ9KX1yZW5kZXJCdXR0b24oKXtjb25zdCB0PXRoaXMuI1ZuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO3QuY2xhc3NOYW1lPSJjb2xvclBpY2tlciIsdC50YWJJbmRleD0iMCIsdC5zZXRBdHRyaWJ1dGUoImRhdGEtbDEwbi1pZCIsInBkZmpzLWVkaXRvci1jb2xvcnBpY2tlci1idXR0b24iKSx0LnNldEF0dHJpYnV0ZSgiYXJpYS1oYXNwb3B1cCIsITApO2NvbnN0IGU9dGhpcy4jZi5fc2lnbmFsO3QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuI2VyLmJpbmQodGhpcykse3NpZ25hbDplfSksdC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLiN5cyx7c2lnbmFsOmV9KTtjb25zdCBpPXRoaXMuI3FuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtyZXR1cm4gaS5jbGFzc05hbWU9InN3YXRjaCIsaS5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwhMCksaS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9dGhpcy4jWG4sdC5hcHBlbmQoaSksdH1yZW5kZXJNYWluRHJvcGRvd24oKXtjb25zdCB0PXRoaXMuI0tuPXRoaXMuI2lyKCk7cmV0dXJuIHQuc2V0QXR0cmlidXRlKCJhcmlhLW9yaWVudGF0aW9uIiwiaG9yaXpvbnRhbCIpLHQuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsbGVkYnkiLCJoaWdobGlnaHRDb2xvclBpY2tlckxhYmVsIiksdH0jaXIoKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGU9dGhpcy4jZi5fc2lnbmFsO3QuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLGx0LHtzaWduYWw6ZX0pLHQuY2xhc3NOYW1lPSJkcm9wZG93biIsdC5yb2xlPSJsaXN0Ym94Iix0LnNldEF0dHJpYnV0ZSgiYXJpYS1tdWx0aXNlbGVjdGFibGUiLCExKSx0LnNldEF0dHJpYnV0ZSgiYXJpYS1vcmllbnRhdGlvbiIsInZlcnRpY2FsIiksdC5zZXRBdHRyaWJ1dGUoImRhdGEtbDEwbi1pZCIsInBkZmpzLWVkaXRvci1jb2xvcnBpY2tlci1kcm9wZG93biIpO2Zvcihjb25zdFtpLHNdb2YgdGhpcy4jZi5oaWdobGlnaHRDb2xvcnMpe2NvbnN0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7bi50YWJJbmRleD0iMCIsbi5yb2xlPSJvcHRpb24iLG4uc2V0QXR0cmlidXRlKCJkYXRhLWNvbG9yIixzKSxuLnRpdGxlPWksbi5zZXRBdHRyaWJ1dGUoImRhdGEtbDEwbi1pZCIsYXMuI3RyW2ldKTtjb25zdCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtuLmFwcGVuZChyKSxyLmNsYXNzTmFtZT0ic3dhdGNoIixyLnN0eWxlLmJhY2tncm91bmRDb2xvcj1zLG4uc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIixzPT09dGhpcy4jWG4pLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuI3NyLmJpbmQodGhpcyxzKSx7c2lnbmFsOmV9KSx0LmFwcGVuZChuKX1yZXR1cm4gdC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLiN5cyx7c2lnbmFsOmV9KSx0fSNzcih0LGUpe2Uuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy4jSm4uZGlzcGF0Y2goInN3aXRjaGFubm90YXRpb25lZGl0b3JwYXJhbXMiLHtzb3VyY2U6dGhpcyx0eXBlOnRoaXMuI1puLHZhbHVlOnR9KX1fY29sb3JTZWxlY3RGcm9tS2V5Ym9hcmQodCl7aWYodC50YXJnZXQ9PT10aGlzLiNWbilyZXR1cm4gdm9pZCB0aGlzLiNlcih0KTtjb25zdCBlPXQudGFyZ2V0LmdldEF0dHJpYnV0ZSgiZGF0YS1jb2xvciIpO2UmJnRoaXMuI3NyKGUsdCl9X21vdmVUb05leHQodCl7dGhpcy4jbnI/dC50YXJnZXQhPT10aGlzLiNWbj90LnRhcmdldC5uZXh0U2libGluZz8uZm9jdXMoKTp0aGlzLiNLbi5maXJzdENoaWxkPy5mb2N1cygpOnRoaXMuI2VyKHQpfV9tb3ZlVG9QcmV2aW91cyh0KXt0LnRhcmdldCE9PXRoaXMuI0tuPy5maXJzdENoaWxkJiZ0LnRhcmdldCE9PXRoaXMuI1ZuPyh0aGlzLiNucnx8dGhpcy4jZXIodCksdC50YXJnZXQucHJldmlvdXNTaWJsaW5nPy5mb2N1cygpKTp0aGlzLiNuciYmdGhpcy5faGlkZURyb3Bkb3duRnJvbUtleWJvYXJkKCl9X21vdmVUb0JlZ2lubmluZyh0KXt0aGlzLiNucj90aGlzLiNLbi5maXJzdENoaWxkPy5mb2N1cygpOnRoaXMuI2VyKHQpfV9tb3ZlVG9FbmQodCl7dGhpcy4jbnI/dGhpcy4jS24ubGFzdENoaWxkPy5mb2N1cygpOnRoaXMuI2VyKHQpfSNBcyh0KXthcy5fa2V5Ym9hcmRNYW5hZ2VyLmV4ZWModGhpcyx0KX0jZXIodCl7aWYodGhpcy4jbnIpcmV0dXJuIHZvaWQgdGhpcy5oaWRlRHJvcGRvd24oKTtpZih0aGlzLiNZbj0wPT09dC5kZXRhaWwsd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix0aGlzLiNHbix7c2lnbmFsOnRoaXMuI2YuX3NpZ25hbH0pLHRoaXMuI0tuKXJldHVybiB2b2lkIHRoaXMuI0tuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO2NvbnN0IGU9dGhpcy4jS249dGhpcy4jaXIoKTt0aGlzLiNWbi5hcHBlbmQoZSl9I2wodCl7dGhpcy4jS24/LmNvbnRhaW5zKHQudGFyZ2V0KXx8dGhpcy5oaWRlRHJvcGRvd24oKX1oaWRlRHJvcGRvd24oKXt0aGlzLiNLbj8uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix0aGlzLiNHbil9Z2V0I25yKCl7cmV0dXJuIHRoaXMuI0tuJiYhdGhpcy4jS24uY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKX1faGlkZURyb3Bkb3duRnJvbUtleWJvYXJkKCl7dGhpcy4jUW58fCh0aGlzLiNucj8odGhpcy5oaWRlRHJvcGRvd24oKSx0aGlzLiNWbi5mb2N1cyh7cHJldmVudFNjcm9sbDohMCxmb2N1c1Zpc2libGU6dGhpcy4jWW59KSk6dGhpcy4jcj8udW5zZWxlY3QoKSl9dXBkYXRlQ29sb3IodCl7aWYodGhpcy4jcW4mJih0aGlzLiNxbi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9dCksIXRoaXMuI0tuKXJldHVybjtjb25zdCBlPXRoaXMuI2YuaGlnaGxpZ2h0Q29sb3JzLnZhbHVlcygpO2Zvcihjb25zdCBpIG9mIHRoaXMuI0tuLmNoaWxkcmVuKWkuc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIixlLm5leHQoKS52YWx1ZT09PXQpfWRlc3Ryb3koKXt0aGlzLiNWbj8ucmVtb3ZlKCksdGhpcy4jVm49bnVsbCx0aGlzLiNxbj1udWxsLHRoaXMuI0tuPy5yZW1vdmUoKSx0aGlzLiNLbj1udWxsfX1jbGFzcyBvcyBleHRlbmRzIGt0eyNycj1udWxsOyNhcj0wOyNvcjsjaHI9bnVsbDsjbj1udWxsOyNscj1udWxsOyNjcj1udWxsOyNkcj0wOyN1cj1udWxsOyNwcj1udWxsOyN5PW51bGw7I2dyPSExOyNmcj1udWxsOyNtcjsjYnI9bnVsbDsjdnI9IiI7I0xuOyN5cj0iIjtzdGF0aWMgX2RlZmF1bHRDb2xvcj1udWxsO3N0YXRpYyBfZGVmYXVsdE9wYWNpdHk9MTtzdGF0aWMgX2RlZmF1bHRUaGlja25lc3M9MTI7c3RhdGljIF90eXBlPSJoaWdobGlnaHQiO3N0YXRpYyBfZWRpdG9yVHlwZT1sLkhJR0hMSUdIVDtzdGF0aWMgX2ZyZWVIaWdobGlnaHRJZD0tMTtzdGF0aWMgX2ZyZWVIaWdobGlnaHQ9bnVsbDtzdGF0aWMgX2ZyZWVIaWdobGlnaHRDbGlwSWQ9IiI7c3RhdGljIGdldCBfa2V5Ym9hcmRNYW5hZ2VyKCl7Y29uc3QgdD1vcy5wcm90b3R5cGU7cmV0dXJuIEModGhpcywiX2tleWJvYXJkTWFuYWdlciIsbmV3IEN0KFtbWyJBcnJvd0xlZnQiLCJtYWMrQXJyb3dMZWZ0Il0sdC5fbW92ZUNhcmV0LHthcmdzOlswXX1dLFtbIkFycm93UmlnaHQiLCJtYWMrQXJyb3dSaWdodCJdLHQuX21vdmVDYXJldCx7YXJnczpbMV19XSxbWyJBcnJvd1VwIiwibWFjK0Fycm93VXAiXSx0Ll9tb3ZlQ2FyZXQse2FyZ3M6WzJdfV0sW1siQXJyb3dEb3duIiwibWFjK0Fycm93RG93biJdLHQuX21vdmVDYXJldCx7YXJnczpbM119XV0pKX1jb25zdHJ1Y3Rvcih0KXtzdXBlcih7Li4udCxuYW1lOiJoaWdobGlnaHRFZGl0b3IifSksdGhpcy5jb2xvcj10LmNvbG9yfHxvcy5fZGVmYXVsdENvbG9yLHRoaXMuI0xuPXQudGhpY2tuZXNzfHxvcy5fZGVmYXVsdFRoaWNrbmVzcyx0aGlzLiNtcj10Lm9wYWNpdHl8fG9zLl9kZWZhdWx0T3BhY2l0eSx0aGlzLiNvcj10LmJveGVzfHxudWxsLHRoaXMuI3lyPXQubWV0aG9kT2ZDcmVhdGlvbnx8IiIsdGhpcy4jdnI9dC50ZXh0fHwiIix0aGlzLl9pc0RyYWdnYWJsZT0hMSx0LmhpZ2hsaWdodElkPi0xPyh0aGlzLiNncj0hMCx0aGlzLiNBcih0KSx0aGlzLiN3cigpKTp0aGlzLiNvciYmKHRoaXMuI3JyPXQuYW5jaG9yTm9kZSx0aGlzLiNhcj10LmFuY2hvck9mZnNldCx0aGlzLiNjcj10LmZvY3VzTm9kZSx0aGlzLiNkcj10LmZvY3VzT2Zmc2V0LHRoaXMuI3hyKCksdGhpcy4jd3IoKSx0aGlzLnJvdGF0ZSh0aGlzLnJvdGF0aW9uKSl9Z2V0IHRlbGVtZXRyeUluaXRpYWxEYXRhKCl7cmV0dXJue2FjdGlvbjoiYWRkZWQiLHR5cGU6dGhpcy4jZ3I/ImZyZWVfaGlnaGxpZ2h0IjoiaGlnaGxpZ2h0Iixjb2xvcjp0aGlzLl91aU1hbmFnZXIuaGlnaGxpZ2h0Q29sb3JOYW1lcy5nZXQodGhpcy5jb2xvciksdGhpY2tuZXNzOnRoaXMuI0xuLG1ldGhvZE9mQ3JlYXRpb246dGhpcy4jeXJ9fWdldCB0ZWxlbWV0cnlGaW5hbERhdGEoKXtyZXR1cm57dHlwZToiaGlnaGxpZ2h0Iixjb2xvcjp0aGlzLl91aU1hbmFnZXIuaGlnaGxpZ2h0Q29sb3JOYW1lcy5nZXQodGhpcy5jb2xvcil9fXN0YXRpYyBjb21wdXRlVGVsZW1ldHJ5RmluYWxEYXRhKHQpe3JldHVybntudW1iZXJPZkNvbG9yczp0LmdldCgiY29sb3IiKS5zaXplfX0jeHIoKXtjb25zdCB0PW5ldyBlcyh0aGlzLiNvciwuMDAxKTt0aGlzLiNwcj10LmdldE91dGxpbmVzKCksKHt4OnRoaXMueCx5OnRoaXMueSx3aWR0aDp0aGlzLndpZHRoLGhlaWdodDp0aGlzLmhlaWdodH09dGhpcy4jcHIuYm94KTtjb25zdCBlPW5ldyBlcyh0aGlzLiNvciwuMDAyNSwuMDAxLCJsdHIiPT09dGhpcy5fdWlNYW5hZ2VyLmRpcmVjdGlvbik7dGhpcy4jbHI9ZS5nZXRPdXRsaW5lcygpO2NvbnN0e2xhc3RQb2ludDppfT10aGlzLiNsci5ib3g7dGhpcy4jZnI9WyhpWzBdLXRoaXMueCkvdGhpcy53aWR0aCwoaVsxXS10aGlzLnkpL3RoaXMuaGVpZ2h0XX0jQXIoe2hpZ2hsaWdodE91dGxpbmVzOnQsaGlnaGxpZ2h0SWQ6ZSxjbGlwUGF0aElkOml9KXtpZih0aGlzLiNwcj10LHRoaXMuI2xyPXQuZ2V0TmV3T3V0bGluZSh0aGlzLiNMbi8yKzEuNSwuMDAyNSksZT49MCl0aGlzLiN5PWUsdGhpcy4jaHI9aSx0aGlzLnBhcmVudC5kcmF3TGF5ZXIuZmluYWxpemVMaW5lKGUsdCksdGhpcy4jYnI9dGhpcy5wYXJlbnQuZHJhd0xheWVyLmhpZ2hsaWdodE91dGxpbmUodGhpcy4jbHIpO2Vsc2UgaWYodGhpcy5wYXJlbnQpe2NvbnN0IGU9dGhpcy5wYXJlbnQudmlld3BvcnQucm90YXRpb247dGhpcy5wYXJlbnQuZHJhd0xheWVyLnVwZGF0ZUxpbmUodGhpcy4jeSx0KSx0aGlzLnBhcmVudC5kcmF3TGF5ZXIudXBkYXRlQm94KHRoaXMuI3ksb3MuI19yKHRoaXMuI3ByLmJveCwoZS10aGlzLnJvdGF0aW9uKzM2MCklMzYwKSksdGhpcy5wYXJlbnQuZHJhd0xheWVyLnVwZGF0ZUxpbmUodGhpcy4jYnIsdGhpcy4jbHIpLHRoaXMucGFyZW50LmRyYXdMYXllci51cGRhdGVCb3godGhpcy4jYnIsb3MuI19yKHRoaXMuI2xyLmJveCxlKSl9Y29uc3R7eDpzLHk6bix3aWR0aDpyLGhlaWdodDphfT10LmJveDtzd2l0Y2godGhpcy5yb3RhdGlvbil7Y2FzZSAwOnRoaXMueD1zLHRoaXMueT1uLHRoaXMud2lkdGg9cix0aGlzLmhlaWdodD1hO2JyZWFrO2Nhc2UgOTA6e2NvbnN0W3QsZV09dGhpcy5wYXJlbnREaW1lbnNpb25zO3RoaXMueD1uLHRoaXMueT0xLXMsdGhpcy53aWR0aD1yKmUvdCx0aGlzLmhlaWdodD1hKnQvZTticmVha31jYXNlIDE4MDp0aGlzLng9MS1zLHRoaXMueT0xLW4sdGhpcy53aWR0aD1yLHRoaXMuaGVpZ2h0PWE7YnJlYWs7Y2FzZSAyNzA6e2NvbnN0W3QsZV09dGhpcy5wYXJlbnREaW1lbnNpb25zO3RoaXMueD0xLW4sdGhpcy55PXMsdGhpcy53aWR0aD1yKmUvdCx0aGlzLmhlaWdodD1hKnQvZTticmVha319Y29uc3R7bGFzdFBvaW50Om99PXRoaXMuI2xyLmJveDt0aGlzLiNmcj1bKG9bMF0tcykvciwob1sxXS1uKS9hXX1zdGF0aWMgaW5pdGlhbGl6ZSh0LGUpe2t0LmluaXRpYWxpemUodCxlKSxvcy5fZGVmYXVsdENvbG9yfHw9ZS5oaWdobGlnaHRDb2xvcnM/LnZhbHVlcygpLm5leHQoKS52YWx1ZXx8IiNmZmYwNjYifXN0YXRpYyB1cGRhdGVEZWZhdWx0UGFyYW1zKHQsZSl7c3dpdGNoKHQpe2Nhc2UgYy5ISUdITElHSFRfREVGQVVMVF9DT0xPUjpvcy5fZGVmYXVsdENvbG9yPWU7YnJlYWs7Y2FzZSBjLkhJR0hMSUdIVF9USElDS05FU1M6b3MuX2RlZmF1bHRUaGlja25lc3M9ZX19dHJhbnNsYXRlSW5QYWdlKHQsZSl7fWdldCB0b29sYmFyUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jZnJ9dXBkYXRlUGFyYW1zKHQsZSl7c3dpdGNoKHQpe2Nhc2UgYy5ISUdITElHSFRfQ09MT1I6dGhpcy4jb24oZSk7YnJlYWs7Y2FzZSBjLkhJR0hMSUdIVF9USElDS05FU1M6dGhpcy4jRXIoZSl9fXN0YXRpYyBnZXQgZGVmYXVsdFByb3BlcnRpZXNUb1VwZGF0ZSgpe3JldHVybltbYy5ISUdITElHSFRfREVGQVVMVF9DT0xPUixvcy5fZGVmYXVsdENvbG9yXSxbYy5ISUdITElHSFRfVEhJQ0tORVNTLG9zLl9kZWZhdWx0VGhpY2tuZXNzXV19Z2V0IHByb3BlcnRpZXNUb1VwZGF0ZSgpe3JldHVybltbYy5ISUdITElHSFRfQ09MT1IsdGhpcy5jb2xvcnx8b3MuX2RlZmF1bHRDb2xvcl0sW2MuSElHSExJR0hUX1RISUNLTkVTUyx0aGlzLiNMbnx8b3MuX2RlZmF1bHRUaGlja25lc3NdLFtjLkhJR0hMSUdIVF9GUkVFLHRoaXMuI2dyXV19I29uKHQpe2NvbnN0IGU9KHQsZSk9Pnt0aGlzLmNvbG9yPXQsdGhpcy5wYXJlbnQ/LmRyYXdMYXllci5jaGFuZ2VDb2xvcih0aGlzLiN5LHQpLHRoaXMuI24/LnVwZGF0ZUNvbG9yKHQpLHRoaXMuI21yPWUsdGhpcy5wYXJlbnQ/LmRyYXdMYXllci5jaGFuZ2VPcGFjaXR5KHRoaXMuI3ksZSl9LGk9dGhpcy5jb2xvcixzPXRoaXMuI21yO3RoaXMuYWRkQ29tbWFuZHMoe2NtZDplLmJpbmQodGhpcyx0LG9zLl9kZWZhdWx0T3BhY2l0eSksdW5kbzplLmJpbmQodGhpcyxpLHMpLHBvc3Q6dGhpcy5fdWlNYW5hZ2VyLnVwZGF0ZVVJLmJpbmQodGhpcy5fdWlNYW5hZ2VyLHRoaXMpLG11c3RFeGVjOiEwLHR5cGU6Yy5ISUdITElHSFRfQ09MT1Isb3ZlcndyaXRlSWZTYW1lVHlwZTohMCxrZWVwVW5kbzohMH0pLHRoaXMuX3JlcG9ydFRlbGVtZXRyeSh7YWN0aW9uOiJjb2xvcl9jaGFuZ2VkIixjb2xvcjp0aGlzLl91aU1hbmFnZXIuaGlnaGxpZ2h0Q29sb3JOYW1lcy5nZXQodCl9LCEwKX0jRXIodCl7Y29uc3QgZT10aGlzLiNMbixpPXQ9Pnt0aGlzLiNMbj10LHRoaXMuI0NyKHQpfTt0aGlzLmFkZENvbW1hbmRzKHtjbWQ6aS5iaW5kKHRoaXMsdCksdW5kbzppLmJpbmQodGhpcyxlKSxwb3N0OnRoaXMuX3VpTWFuYWdlci51cGRhdGVVSS5iaW5kKHRoaXMuX3VpTWFuYWdlcix0aGlzKSxtdXN0RXhlYzohMCx0eXBlOmMuSU5LX1RISUNLTkVTUyxvdmVyd3JpdGVJZlNhbWVUeXBlOiEwLGtlZXBVbmRvOiEwfSksdGhpcy5fcmVwb3J0VGVsZW1ldHJ5KHthY3Rpb246InRoaWNrbmVzc19jaGFuZ2VkIix0aGlja25lc3M6dH0sITApfWFzeW5jIGFkZEVkaXRUb29sYmFyKCl7Y29uc3QgdD1hd2FpdCBzdXBlci5hZGRFZGl0VG9vbGJhcigpO3JldHVybiB0Pyh0aGlzLl91aU1hbmFnZXIuaGlnaGxpZ2h0Q29sb3JzJiYodGhpcy4jbj1uZXcgYXMoe2VkaXRvcjp0aGlzfSksdC5hZGRDb2xvclBpY2tlcih0aGlzLiNuKSksdCk6bnVsbH1kaXNhYmxlRWRpdGluZygpe3N1cGVyLmRpc2FibGVFZGl0aW5nKCksdGhpcy5kaXYuY2xhc3NMaXN0LnRvZ2dsZSgiZGlzYWJsZWQiLCEwKX1lbmFibGVFZGl0aW5nKCl7c3VwZXIuZW5hYmxlRWRpdGluZygpLHRoaXMuZGl2LmNsYXNzTGlzdC50b2dnbGUoImRpc2FibGVkIiwhMSl9Zml4QW5kU2V0UG9zaXRpb24oKXtyZXR1cm4gc3VwZXIuZml4QW5kU2V0UG9zaXRpb24odGhpcy4jU3IoKSl9Z2V0QmFzZVRyYW5zbGF0aW9uKCl7cmV0dXJuWzAsMF19Z2V0UmVjdCh0LGUpe3JldHVybiBzdXBlci5nZXRSZWN0KHQsZSx0aGlzLiNTcigpKX1vbmNlQWRkZWQoKXt0aGlzLmFubm90YXRpb25FbGVtZW50SWR8fHRoaXMucGFyZW50LmFkZFVuZG9hYmxlRWRpdG9yKHRoaXMpLHRoaXMuZGl2LmZvY3VzKCl9cmVtb3ZlKCl7dGhpcy4jVHIoKSx0aGlzLl9yZXBvcnRUZWxlbWV0cnkoe2FjdGlvbjoiZGVsZXRlZCJ9KSxzdXBlci5yZW1vdmUoKX1yZWJ1aWxkKCl7dGhpcy5wYXJlbnQmJihzdXBlci5yZWJ1aWxkKCksbnVsbCE9PXRoaXMuZGl2JiYodGhpcy4jd3IoKSx0aGlzLmlzQXR0YWNoZWRUb0RPTXx8dGhpcy5wYXJlbnQuYWRkKHRoaXMpKSl9c2V0UGFyZW50KHQpe2xldCBlPSExO3RoaXMucGFyZW50JiYhdD90aGlzLiNUcigpOnQmJih0aGlzLiN3cih0KSxlPSF0aGlzLnBhcmVudCYmdGhpcy5kaXY/LmNsYXNzTGlzdC5jb250YWlucygic2VsZWN0ZWRFZGl0b3IiKSksc3VwZXIuc2V0UGFyZW50KHQpLHRoaXMuc2hvdyh0aGlzLl9pc1Zpc2libGUpLGUmJnRoaXMuc2VsZWN0KCl9I0NyKHQpe2lmKCF0aGlzLiNncilyZXR1cm47dGhpcy4jQXIoe2hpZ2hsaWdodE91dGxpbmVzOnRoaXMuI3ByLmdldE5ld091dGxpbmUodC8yKX0pLHRoaXMuZml4QW5kU2V0UG9zaXRpb24oKTtjb25zdFtlLGldPXRoaXMucGFyZW50RGltZW5zaW9uczt0aGlzLnNldERpbXModGhpcy53aWR0aCplLHRoaXMuaGVpZ2h0KmkpfSNUcigpe251bGwhPT10aGlzLiN5JiZ0aGlzLnBhcmVudCYmKHRoaXMucGFyZW50LmRyYXdMYXllci5yZW1vdmUodGhpcy4jeSksdGhpcy4jeT1udWxsLHRoaXMucGFyZW50LmRyYXdMYXllci5yZW1vdmUodGhpcy4jYnIpLHRoaXMuI2JyPW51bGwpfSN3cih0PXRoaXMucGFyZW50KXtudWxsPT09dGhpcy4jeSYmKCh7aWQ6dGhpcy4jeSxjbGlwUGF0aElkOnRoaXMuI2hyfT10LmRyYXdMYXllci5oaWdobGlnaHQodGhpcy4jcHIsdGhpcy5jb2xvcix0aGlzLiNtcikpLHRoaXMuI2JyPXQuZHJhd0xheWVyLmhpZ2hsaWdodE91dGxpbmUodGhpcy4jbHIpLHRoaXMuI3VyJiYodGhpcy4jdXIuc3R5bGUuY2xpcFBhdGg9dGhpcy4jaHIpKX1zdGF0aWMjX3Ioe3g6dCx5OmUsd2lkdGg6aSxoZWlnaHQ6c30sbil7c3dpdGNoKG4pe2Nhc2UgOTA6cmV0dXJue3g6MS1lLXMseTp0LHdpZHRoOnMsaGVpZ2h0Oml9O2Nhc2UgMTgwOnJldHVybnt4OjEtdC1pLHk6MS1lLXMsd2lkdGg6aSxoZWlnaHQ6c307Y2FzZSAyNzA6cmV0dXJue3g6ZSx5OjEtdC1pLHdpZHRoOnMsaGVpZ2h0Oml9fXJldHVybnt4OnQseTplLHdpZHRoOmksaGVpZ2h0OnN9fXJvdGF0ZSh0KXtjb25zdHtkcmF3TGF5ZXI6ZX09dGhpcy5wYXJlbnQ7bGV0IGk7dGhpcy4jZ3I/KHQ9KHQtdGhpcy5yb3RhdGlvbiszNjApJTM2MCxpPW9zLiNfcih0aGlzLiNwci5ib3gsdCkpOmk9b3MuI19yKHRoaXMsdCksZS5yb3RhdGUodGhpcy4jeSx0KSxlLnJvdGF0ZSh0aGlzLiNicix0KSxlLnVwZGF0ZUJveCh0aGlzLiN5LGkpLGUudXBkYXRlQm94KHRoaXMuI2JyLG9zLiNfcih0aGlzLiNsci5ib3gsdCkpfXJlbmRlcigpe2lmKHRoaXMuZGl2KXJldHVybiB0aGlzLmRpdjtjb25zdCB0PXN1cGVyLnJlbmRlcigpO3RoaXMuI3ZyJiYodC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHRoaXMuI3ZyKSx0LnNldEF0dHJpYnV0ZSgicm9sZSIsIm1hcmsiKSksdGhpcy4jZ3I/dC5jbGFzc0xpc3QuYWRkKCJmcmVlIik6dGhpcy5kaXYuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy4jTXIuYmluZCh0aGlzKSx7c2lnbmFsOnRoaXMuX3VpTWFuYWdlci5fc2lnbmFsfSk7Y29uc3QgZT10aGlzLiN1cj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmFwcGVuZChlKSxlLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIiksZS5jbGFzc05hbWU9ImludGVybmFsIixlLnN0eWxlLmNsaXBQYXRoPXRoaXMuI2hyO2NvbnN0W2ksc109dGhpcy5wYXJlbnREaW1lbnNpb25zO3JldHVybiB0aGlzLnNldERpbXModGhpcy53aWR0aCppLHRoaXMuaGVpZ2h0KnMpLHd0KHRoaXMsdGhpcy4jdXIsWyJwb2ludGVyb3ZlciIsInBvaW50ZXJsZWF2ZSJdKSx0aGlzLmVuYWJsZUVkaXRpbmcoKSx0fXBvaW50ZXJvdmVyKCl7dGhpcy5wYXJlbnQuZHJhd0xheWVyLmFkZENsYXNzKHRoaXMuI2JyLCJob3ZlcmVkIil9cG9pbnRlcmxlYXZlKCl7dGhpcy5wYXJlbnQuZHJhd0xheWVyLnJlbW92ZUNsYXNzKHRoaXMuI2JyLCJob3ZlcmVkIil9I01yKHQpe29zLl9rZXlib2FyZE1hbmFnZXIuZXhlYyh0aGlzLHQpfV9tb3ZlQ2FyZXQodCl7c3dpdGNoKHRoaXMucGFyZW50LnVuc2VsZWN0KHRoaXMpLHQpe2Nhc2UgMDpjYXNlIDI6dGhpcy4ja3IoITApO2JyZWFrO2Nhc2UgMTpjYXNlIDM6dGhpcy4ja3IoITEpfX0ja3IodCl7aWYoIXRoaXMuI3JyKXJldHVybjtjb25zdCBlPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTt0P2Uuc2V0UG9zaXRpb24odGhpcy4jcnIsdGhpcy4jYXIpOmUuc2V0UG9zaXRpb24odGhpcy4jY3IsdGhpcy4jZHIpfXNlbGVjdCgpe3N1cGVyLnNlbGVjdCgpLHRoaXMuI2JyJiYodGhpcy5wYXJlbnQ/LmRyYXdMYXllci5yZW1vdmVDbGFzcyh0aGlzLiNiciwiaG92ZXJlZCIpLHRoaXMucGFyZW50Py5kcmF3TGF5ZXIuYWRkQ2xhc3ModGhpcy4jYnIsInNlbGVjdGVkIikpfXVuc2VsZWN0KCl7c3VwZXIudW5zZWxlY3QoKSx0aGlzLiNiciYmKHRoaXMucGFyZW50Py5kcmF3TGF5ZXIucmVtb3ZlQ2xhc3ModGhpcy4jYnIsInNlbGVjdGVkIiksdGhpcy4jZ3J8fHRoaXMuI2tyKCExKSl9Z2V0IF9tdXN0Rml4UG9zaXRpb24oKXtyZXR1cm4hdGhpcy4jZ3J9c2hvdyh0PXRoaXMuX2lzVmlzaWJsZSl7c3VwZXIuc2hvdyh0KSx0aGlzLnBhcmVudCYmKHRoaXMucGFyZW50LmRyYXdMYXllci5zaG93KHRoaXMuI3ksdCksdGhpcy5wYXJlbnQuZHJhd0xheWVyLnNob3codGhpcy4jYnIsdCkpfSNTcigpe3JldHVybiB0aGlzLiNncj90aGlzLnJvdGF0aW9uOjB9I0lyKCl7aWYodGhpcy4jZ3IpcmV0dXJuIG51bGw7Y29uc3RbdCxlXT10aGlzLnBhZ2VEaW1lbnNpb25zLFtpLHNdPXRoaXMucGFnZVRyYW5zbGF0aW9uLG49dGhpcy4jb3Iscj1uZXcgRmxvYXQzMkFycmF5KDgqbi5sZW5ndGgpO2xldCBhPTA7Zm9yKGNvbnN0e3g6byx5Omgsd2lkdGg6bCxoZWlnaHQ6Y31vZiBuKXtjb25zdCBuPW8qdCtpLGQ9KDEtaC1jKSplK3M7clthXT1yW2ErNF09bixyW2ErMV09clthKzNdPWQsclthKzJdPXJbYSs2XT1uK2wqdCxyW2ErNV09clthKzddPWQrYyplLGErPTh9cmV0dXJuIHJ9I1JyKHQpe3JldHVybiB0aGlzLiNwci5zZXJpYWxpemUodCx0aGlzLiNTcigpKX1zdGF0aWMgc3RhcnRIaWdobGlnaHRpbmcodCxlLHt0YXJnZXQ6aSx4OnMseTpufSl7Y29uc3R7eDpyLHk6YSx3aWR0aDpvLGhlaWdodDpofT1pLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGw9bmV3IEFib3J0Q29udHJvbGxlcixjPXQuY29tYmluZWRTaWduYWwobCksZD1lPT57bC5hYm9ydCgpLHRoaXMuI1ByKHQsZSl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJibHVyIixkLHtzaWduYWw6Y30pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLGQse3NpZ25hbDpjfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIiwodD0+e3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpfSkse2NhcHR1cmU6ITAscGFzc2l2ZTohMSxzaWduYWw6Y30pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsbHQse3NpZ25hbDpjfSksaS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdGhpcy4jRHIuYmluZCh0aGlzLHQpLHtzaWduYWw6Y30pLHRoaXMuX2ZyZWVIaWdobGlnaHQ9bmV3IG5zKHt4OnMseTpufSxbcixhLG8saF0sdC5zY2FsZSx0aGlzLl9kZWZhdWx0VGhpY2tuZXNzLzIsZSwuMDAxKSwoe2lkOnRoaXMuX2ZyZWVIaWdobGlnaHRJZCxjbGlwUGF0aElkOnRoaXMuX2ZyZWVIaWdobGlnaHRDbGlwSWR9PXQuZHJhd0xheWVyLmhpZ2hsaWdodCh0aGlzLl9mcmVlSGlnaGxpZ2h0LHRoaXMuX2RlZmF1bHRDb2xvcix0aGlzLl9kZWZhdWx0T3BhY2l0eSwhMCkpfXN0YXRpYyNEcih0LGUpe3RoaXMuX2ZyZWVIaWdobGlnaHQuYWRkKGUpJiZ0LmRyYXdMYXllci51cGRhdGVQYXRoKHRoaXMuX2ZyZWVIaWdobGlnaHRJZCx0aGlzLl9mcmVlSGlnaGxpZ2h0KX1zdGF0aWMjUHIodCxlKXt0aGlzLl9mcmVlSGlnaGxpZ2h0LmlzRW1wdHkoKT90LmRyYXdMYXllci5yZW1vdmVGcmVlSGlnaGxpZ2h0KHRoaXMuX2ZyZWVIaWdobGlnaHRJZCk6dC5jcmVhdGVBbmRBZGROZXdFZGl0b3IoZSwhMSx7aGlnaGxpZ2h0SWQ6dGhpcy5fZnJlZUhpZ2hsaWdodElkLGhpZ2hsaWdodE91dGxpbmVzOnRoaXMuX2ZyZWVIaWdobGlnaHQuZ2V0T3V0bGluZXMoKSxjbGlwUGF0aElkOnRoaXMuX2ZyZWVIaWdobGlnaHRDbGlwSWQsbWV0aG9kT2ZDcmVhdGlvbjoibWFpbl90b29sYmFyIn0pLHRoaXMuX2ZyZWVIaWdobGlnaHRJZD0tMSx0aGlzLl9mcmVlSGlnaGxpZ2h0PW51bGwsdGhpcy5fZnJlZUhpZ2hsaWdodENsaXBJZD0iIn1zdGF0aWMgYXN5bmMgZGVzZXJpYWxpemUodCxlLGkpe2xldCBzPW51bGw7aWYodCBpbnN0YW5jZW9mIFZpKXtjb25zdHtkYXRhOntxdWFkUG9pbnRzOmUscmVjdDppLHJvdGF0aW9uOm4saWQ6cixjb2xvcjphLG9wYWNpdHk6byxwb3B1cFJlZjpofSxwYXJlbnQ6e3BhZ2U6e3BhZ2VOdW1iZXI6Y319fT10O3M9dD17YW5ub3RhdGlvblR5cGU6bC5ISUdITElHSFQsY29sb3I6QXJyYXkuZnJvbShhKSxvcGFjaXR5Om8scXVhZFBvaW50czplLGJveGVzOm51bGwscGFnZUluZGV4OmMtMSxyZWN0Omkuc2xpY2UoMCkscm90YXRpb246bixpZDpyLGRlbGV0ZWQ6ITEscG9wdXBSZWY6aH19ZWxzZSBpZih0IGluc3RhbmNlb2YgR2kpe2NvbnN0e2RhdGE6e2lua0xpc3RzOmUscmVjdDppLHJvdGF0aW9uOm4saWQ6cixjb2xvcjphLGJvcmRlclN0eWxlOntyYXdXaWR0aDpvfSxwb3B1cFJlZjpofSxwYXJlbnQ6e3BhZ2U6e3BhZ2VOdW1iZXI6Y319fT10O3M9dD17YW5ub3RhdGlvblR5cGU6bC5ISUdITElHSFQsY29sb3I6QXJyYXkuZnJvbShhKSx0aGlja25lc3M6byxpbmtMaXN0czplLGJveGVzOm51bGwscGFnZUluZGV4OmMtMSxyZWN0Omkuc2xpY2UoMCkscm90YXRpb246bixpZDpyLGRlbGV0ZWQ6ITEscG9wdXBSZWY6aH19Y29uc3R7Y29sb3I6bixxdWFkUG9pbnRzOnIsaW5rTGlzdHM6YSxvcGFjaXR5Om99PXQsaD1hd2FpdCBzdXBlci5kZXNlcmlhbGl6ZSh0LGUsaSk7aC5jb2xvcj16Lm1ha2VIZXhDb2xvciguLi5uKSxoLiNtcj1vfHwxLGEmJihoLiNMbj10LnRoaWNrbmVzcyksaC5hbm5vdGF0aW9uRWxlbWVudElkPXQuaWR8fG51bGwsaC5faW5pdGlhbERhdGE9cztjb25zdFtjLGRdPWgucGFnZURpbWVuc2lvbnMsW3UscF09aC5wYWdlVHJhbnNsYXRpb247aWYocil7Y29uc3QgdD1oLiNvcj1bXTtmb3IobGV0IGU9MDtlPHIubGVuZ3RoO2UrPTgpdC5wdXNoKHt4OihyW2VdLXUpL2MseToxLShyW2UrMV0tcCkvZCx3aWR0aDoocltlKzJdLXJbZV0pL2MsaGVpZ2h0OihyW2UrMV0tcltlKzVdKS9kfSk7aC4jeHIoKSxoLiN3cigpLGgucm90YXRlKGgucm90YXRpb24pfWVsc2UgaWYoYSl7aC4jZ3I9ITA7Y29uc3QgdD1hWzBdLGk9e3g6dFswXS11LHk6ZC0odFsxXS1wKX0scz1uZXcgbnMoaSxbMCwwLGMsZF0sMSxoLiNMbi8yLCEwLC4wMDEpO2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrPTIpaS54PXRbZV0tdSxpLnk9ZC0odFtlKzFdLXApLHMuYWRkKGkpO2NvbnN0e2lkOm4sY2xpcFBhdGhJZDpyfT1lLmRyYXdMYXllci5oaWdobGlnaHQocyxoLmNvbG9yLGguX2RlZmF1bHRPcGFjaXR5LCEwKTtoLiNBcih7aGlnaGxpZ2h0T3V0bGluZXM6cy5nZXRPdXRsaW5lcygpLGhpZ2hsaWdodElkOm4sY2xpcFBhdGhJZDpyfSksaC4jd3IoKX1yZXR1cm4gaH1zZXJpYWxpemUodD0hMSl7aWYodGhpcy5pc0VtcHR5KCl8fHQpcmV0dXJuIG51bGw7aWYodGhpcy5kZWxldGVkKXJldHVybiB0aGlzLnNlcmlhbGl6ZURlbGV0ZWQoKTtjb25zdCBlPXRoaXMuZ2V0UmVjdCgwLDApLGk9a3QuX2NvbG9yTWFuYWdlci5jb252ZXJ0KHRoaXMuY29sb3IpLHM9e2Fubm90YXRpb25UeXBlOmwuSElHSExJR0hULGNvbG9yOmksb3BhY2l0eTp0aGlzLiNtcix0aGlja25lc3M6dGhpcy4jTG4scXVhZFBvaW50czp0aGlzLiNJcigpLG91dGxpbmVzOnRoaXMuI1JyKGUpLHBhZ2VJbmRleDp0aGlzLnBhZ2VJbmRleCxyZWN0OmUscm90YXRpb246dGhpcy4jU3IoKSxzdHJ1Y3RUcmVlUGFyZW50SWQ6dGhpcy5fc3RydWN0VHJlZVBhcmVudElkfTtyZXR1cm4gdGhpcy5hbm5vdGF0aW9uRWxlbWVudElkJiYhdGhpcy4jZ24ocyk/bnVsbDoocy5pZD10aGlzLmFubm90YXRpb25FbGVtZW50SWQscyl9I2duKHQpe2NvbnN0e2NvbG9yOmV9PXRoaXMuX2luaXRpYWxEYXRhO3JldHVybiB0LmNvbG9yLnNvbWUoKCh0LGkpPT50IT09ZVtpXSkpfXJlbmRlckFubm90YXRpb25FbGVtZW50KHQpe3JldHVybiB0LnVwZGF0ZUVkaXRlZCh7cmVjdDp0aGlzLmdldFJlY3QoMCwwKX0pLG51bGx9c3RhdGljIGNhbkNyZWF0ZU5ld0VtcHR5RWRpdG9yKCl7cmV0dXJuITF9fWNsYXNzIGhzIGV4dGVuZHMga3R7I0xyPTA7I0ZyPTA7I09yPW51bGw7I05yPW5ldyBQYXRoMkQ7I0JyPSExOyN6cj1udWxsOyNIcj0hMTsjanI9ITE7I1VyPW51bGw7IyRyPW51bGw7I1dyPTA7I0dyPTA7I1ZyPW51bGw7c3RhdGljIF9kZWZhdWx0Q29sb3I9bnVsbDtzdGF0aWMgX2RlZmF1bHRPcGFjaXR5PTE7c3RhdGljIF9kZWZhdWx0VGhpY2tuZXNzPTE7c3RhdGljIF90eXBlPSJpbmsiO3N0YXRpYyBfZWRpdG9yVHlwZT1sLklOSztjb25zdHJ1Y3Rvcih0KXtzdXBlcih7Li4udCxuYW1lOiJpbmtFZGl0b3IifSksdGhpcy5jb2xvcj10LmNvbG9yfHxudWxsLHRoaXMudGhpY2tuZXNzPXQudGhpY2tuZXNzfHxudWxsLHRoaXMub3BhY2l0eT10Lm9wYWNpdHl8fG51bGwsdGhpcy5wYXRocz1bXSx0aGlzLmJlemllclBhdGgyRD1bXSx0aGlzLmFsbFJhd1BhdGhzPVtdLHRoaXMuY3VycmVudFBhdGg9W10sdGhpcy5zY2FsZUZhY3Rvcj0xLHRoaXMudHJhbnNsYXRpb25YPXRoaXMudHJhbnNsYXRpb25ZPTAsdGhpcy54PTAsdGhpcy55PTAsdGhpcy5fd2lsbEtlZXBBc3BlY3RSYXRpbz0hMH1zdGF0aWMgaW5pdGlhbGl6ZSh0LGUpe2t0LmluaXRpYWxpemUodCxlKX1zdGF0aWMgdXBkYXRlRGVmYXVsdFBhcmFtcyh0LGUpe3N3aXRjaCh0KXtjYXNlIGMuSU5LX1RISUNLTkVTUzpocy5fZGVmYXVsdFRoaWNrbmVzcz1lO2JyZWFrO2Nhc2UgYy5JTktfQ09MT1I6aHMuX2RlZmF1bHRDb2xvcj1lO2JyZWFrO2Nhc2UgYy5JTktfT1BBQ0lUWTpocy5fZGVmYXVsdE9wYWNpdHk9ZS8xMDB9fXVwZGF0ZVBhcmFtcyh0LGUpe3N3aXRjaCh0KXtjYXNlIGMuSU5LX1RISUNLTkVTUzp0aGlzLiNFcihlKTticmVhaztjYXNlIGMuSU5LX0NPTE9SOnRoaXMuI29uKGUpO2JyZWFrO2Nhc2UgYy5JTktfT1BBQ0lUWTp0aGlzLiNxcihlKX19c3RhdGljIGdldCBkZWZhdWx0UHJvcGVydGllc1RvVXBkYXRlKCl7cmV0dXJuW1tjLklOS19USElDS05FU1MsaHMuX2RlZmF1bHRUaGlja25lc3NdLFtjLklOS19DT0xPUixocy5fZGVmYXVsdENvbG9yfHxrdC5fZGVmYXVsdExpbmVDb2xvcl0sW2MuSU5LX09QQUNJVFksTWF0aC5yb3VuZCgxMDAqaHMuX2RlZmF1bHRPcGFjaXR5KV1dfWdldCBwcm9wZXJ0aWVzVG9VcGRhdGUoKXtyZXR1cm5bW2MuSU5LX1RISUNLTkVTUyx0aGlzLnRoaWNrbmVzc3x8aHMuX2RlZmF1bHRUaGlja25lc3NdLFtjLklOS19DT0xPUix0aGlzLmNvbG9yfHxocy5fZGVmYXVsdENvbG9yfHxrdC5fZGVmYXVsdExpbmVDb2xvcl0sW2MuSU5LX09QQUNJVFksTWF0aC5yb3VuZCgxMDAqKHRoaXMub3BhY2l0eT8/aHMuX2RlZmF1bHRPcGFjaXR5KSldXX0jRXIodCl7Y29uc3QgZT10PT57dGhpcy50aGlja25lc3M9dCx0aGlzLiNYcigpfSxpPXRoaXMudGhpY2tuZXNzO3RoaXMuYWRkQ29tbWFuZHMoe2NtZDplLmJpbmQodGhpcyx0KSx1bmRvOmUuYmluZCh0aGlzLGkpLHBvc3Q6dGhpcy5fdWlNYW5hZ2VyLnVwZGF0ZVVJLmJpbmQodGhpcy5fdWlNYW5hZ2VyLHRoaXMpLG11c3RFeGVjOiEwLHR5cGU6Yy5JTktfVEhJQ0tORVNTLG92ZXJ3cml0ZUlmU2FtZVR5cGU6ITAsa2VlcFVuZG86ITB9KX0jb24odCl7Y29uc3QgZT10PT57dGhpcy5jb2xvcj10LHRoaXMuI0tyKCl9LGk9dGhpcy5jb2xvcjt0aGlzLmFkZENvbW1hbmRzKHtjbWQ6ZS5iaW5kKHRoaXMsdCksdW5kbzplLmJpbmQodGhpcyxpKSxwb3N0OnRoaXMuX3VpTWFuYWdlci51cGRhdGVVSS5iaW5kKHRoaXMuX3VpTWFuYWdlcix0aGlzKSxtdXN0RXhlYzohMCx0eXBlOmMuSU5LX0NPTE9SLG92ZXJ3cml0ZUlmU2FtZVR5cGU6ITAsa2VlcFVuZG86ITB9KX0jcXIodCl7Y29uc3QgZT10PT57dGhpcy5vcGFjaXR5PXQsdGhpcy4jS3IoKX07dC89MTAwO2NvbnN0IGk9dGhpcy5vcGFjaXR5O3RoaXMuYWRkQ29tbWFuZHMoe2NtZDplLmJpbmQodGhpcyx0KSx1bmRvOmUuYmluZCh0aGlzLGkpLHBvc3Q6dGhpcy5fdWlNYW5hZ2VyLnVwZGF0ZVVJLmJpbmQodGhpcy5fdWlNYW5hZ2VyLHRoaXMpLG11c3RFeGVjOiEwLHR5cGU6Yy5JTktfT1BBQ0lUWSxvdmVyd3JpdGVJZlNhbWVUeXBlOiEwLGtlZXBVbmRvOiEwfSl9cmVidWlsZCgpe3RoaXMucGFyZW50JiYoc3VwZXIucmVidWlsZCgpLG51bGwhPT10aGlzLmRpdiYmKHRoaXMuY2FudmFzfHwodGhpcy4jWXIoKSx0aGlzLiNRcigpKSx0aGlzLmlzQXR0YWNoZWRUb0RPTXx8KHRoaXMucGFyZW50LmFkZCh0aGlzKSx0aGlzLiNKcigpKSx0aGlzLiNYcigpKSl9cmVtb3ZlKCl7bnVsbCE9PXRoaXMuY2FudmFzJiYodGhpcy5pc0VtcHR5KCl8fHRoaXMuY29tbWl0KCksdGhpcy5jYW52YXMud2lkdGg9dGhpcy5jYW52YXMuaGVpZ2h0PTAsdGhpcy5jYW52YXMucmVtb3ZlKCksdGhpcy5jYW52YXM9bnVsbCx0aGlzLiNPciYmKGNsZWFyVGltZW91dCh0aGlzLiNPciksdGhpcy4jT3I9bnVsbCksdGhpcy4jVXI/LmRpc2Nvbm5lY3QoKSx0aGlzLiNVcj1udWxsLHN1cGVyLnJlbW92ZSgpKX1zZXRQYXJlbnQodCl7IXRoaXMucGFyZW50JiZ0P3RoaXMuX3VpTWFuYWdlci5yZW1vdmVTaG91bGRSZXNjYWxlKHRoaXMpOnRoaXMucGFyZW50JiZudWxsPT09dCYmdGhpcy5fdWlNYW5hZ2VyLmFkZFNob3VsZFJlc2NhbGUodGhpcyksc3VwZXIuc2V0UGFyZW50KHQpfW9uU2NhbGVDaGFuZ2luZygpe2NvbnN0W3QsZV09dGhpcy5wYXJlbnREaW1lbnNpb25zLGk9dGhpcy53aWR0aCp0LHM9dGhpcy5oZWlnaHQqZTt0aGlzLnNldERpbWVuc2lvbnMoaSxzKX1lbmFibGVFZGl0TW9kZSgpe3RoaXMuI0JyfHxudWxsPT09dGhpcy5jYW52YXN8fChzdXBlci5lbmFibGVFZGl0TW9kZSgpLHRoaXMuX2lzRHJhZ2dhYmxlPSExLHRoaXMuI1pyKCkpfWRpc2FibGVFZGl0TW9kZSgpe3RoaXMuaXNJbkVkaXRNb2RlKCkmJm51bGwhPT10aGlzLmNhbnZhcyYmKHN1cGVyLmRpc2FibGVFZGl0TW9kZSgpLHRoaXMuX2lzRHJhZ2dhYmxlPSF0aGlzLmlzRW1wdHkoKSx0aGlzLmRpdi5jbGFzc0xpc3QucmVtb3ZlKCJlZGl0aW5nIiksdGhpcy4jdGEoKSl9b25jZUFkZGVkKCl7dGhpcy5faXNEcmFnZ2FibGU9IXRoaXMuaXNFbXB0eSgpfWlzRW1wdHkoKXtyZXR1cm4gMD09PXRoaXMucGF0aHMubGVuZ3RofHwxPT09dGhpcy5wYXRocy5sZW5ndGgmJjA9PT10aGlzLnBhdGhzWzBdLmxlbmd0aH0jZWEoKXtjb25zdHtwYXJlbnRSb3RhdGlvbjp0LHBhcmVudERpbWVuc2lvbnM6W2UsaV19PXRoaXM7c3dpdGNoKHQpe2Nhc2UgOTA6cmV0dXJuWzAsaSxpLGVdO2Nhc2UgMTgwOnJldHVybltlLGksZSxpXTtjYXNlIDI3MDpyZXR1cm5bZSwwLGksZV07ZGVmYXVsdDpyZXR1cm5bMCwwLGUsaV19fSNpYSgpe2NvbnN0e2N0eDp0LGNvbG9yOmUsb3BhY2l0eTppLHRoaWNrbmVzczpzLHBhcmVudFNjYWxlOm4sc2NhbGVGYWN0b3I6cn09dGhpczt0LmxpbmVXaWR0aD1zKm4vcix0LmxpbmVDYXA9InJvdW5kIix0LmxpbmVKb2luPSJyb3VuZCIsdC5taXRlckxpbWl0PTEwLHQuc3Ryb2tlU3R5bGU9YCR7ZX0ke2Z1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKE1hdGgubWluKDI1NSxNYXRoLm1heCgxLDI1NSp0KSkpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCIwIil9KGkpfWB9I3NhKHQsZSl7dGhpcy5jYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLGx0LHtzaWduYWw6dGhpcy5fdWlNYW5hZ2VyLl9zaWduYWx9KSx0aGlzLiN0YSgpLHRoaXMuI3pyPW5ldyBBYm9ydENvbnRyb2xsZXI7Y29uc3QgaT10aGlzLl91aU1hbmFnZXIuY29tYmluZWRTaWduYWwodGhpcy4jenIpO3RoaXMuY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJsZWF2ZSIsdGhpcy5jYW52YXNQb2ludGVybGVhdmUuYmluZCh0aGlzKSx7c2lnbmFsOml9KSx0aGlzLmNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdGhpcy5jYW52YXNQb2ludGVybW92ZS5iaW5kKHRoaXMpLHtzaWduYWw6aX0pLHRoaXMuY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdGhpcy5jYW52YXNQb2ludGVydXAuYmluZCh0aGlzKSx7c2lnbmFsOml9KSx0aGlzLmlzRWRpdGluZz0hMCx0aGlzLiNqcnx8KHRoaXMuI2pyPSEwLHRoaXMuI0pyKCksdGhpcy50aGlja25lc3N8fD1ocy5fZGVmYXVsdFRoaWNrbmVzcyx0aGlzLmNvbG9yfHw9aHMuX2RlZmF1bHRDb2xvcnx8a3QuX2RlZmF1bHRMaW5lQ29sb3IsdGhpcy5vcGFjaXR5Pz89aHMuX2RlZmF1bHRPcGFjaXR5KSx0aGlzLmN1cnJlbnRQYXRoLnB1c2goW3QsZV0pLHRoaXMuI0hyPSExLHRoaXMuI2lhKCksdGhpcy4jVnI9KCk9Pnt0aGlzLiNuYSgpLHRoaXMuI1ZyJiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMuI1ZyKX0sd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLiNWcil9I3JhKHQsZSl7Y29uc3RbaSxzXT10aGlzLmN1cnJlbnRQYXRoLmF0KC0xKTtpZih0aGlzLmN1cnJlbnRQYXRoLmxlbmd0aD4xJiZ0PT09aSYmZT09PXMpcmV0dXJuO2NvbnN0IG49dGhpcy5jdXJyZW50UGF0aDtsZXQgcj10aGlzLiNOcjtpZihuLnB1c2goW3QsZV0pLHRoaXMuI0hyPSEwLG4ubGVuZ3RoPD0yKXJldHVybiByLm1vdmVUbyguLi5uWzBdKSx2b2lkIHIubGluZVRvKHQsZSk7Mz09PW4ubGVuZ3RoJiYodGhpcy4jTnI9cj1uZXcgUGF0aDJELHIubW92ZVRvKC4uLm5bMF0pKSx0aGlzLiNhYShyLC4uLm4uYXQoLTMpLC4uLm4uYXQoLTIpLHQsZSl9I29hKCl7aWYoMD09PXRoaXMuY3VycmVudFBhdGgubGVuZ3RoKXJldHVybjtjb25zdCB0PXRoaXMuY3VycmVudFBhdGguYXQoLTEpO3RoaXMuI05yLmxpbmVUbyguLi50KX0jaGEodCxlKXtsZXQgaTtpZih0aGlzLiNWcj1udWxsLHQ9TWF0aC5taW4oTWF0aC5tYXgodCwwKSx0aGlzLmNhbnZhcy53aWR0aCksZT1NYXRoLm1pbihNYXRoLm1heChlLDApLHRoaXMuY2FudmFzLmhlaWdodCksdGhpcy4jcmEodCxlKSx0aGlzLiNvYSgpLDEhPT10aGlzLmN1cnJlbnRQYXRoLmxlbmd0aClpPXRoaXMuI2xhKCk7ZWxzZXtjb25zdCBzPVt0LGVdO2k9W1tzLHMuc2xpY2UoKSxzLnNsaWNlKCksc11dfWNvbnN0IHM9dGhpcy4jTnIsbj10aGlzLmN1cnJlbnRQYXRoO3RoaXMuY3VycmVudFBhdGg9W10sdGhpcy4jTnI9bmV3IFBhdGgyRCx0aGlzLmFkZENvbW1hbmRzKHtjbWQ6KCk9Pnt0aGlzLmFsbFJhd1BhdGhzLnB1c2gobiksdGhpcy5wYXRocy5wdXNoKGkpLHRoaXMuYmV6aWVyUGF0aDJELnB1c2gocyksdGhpcy5fdWlNYW5hZ2VyLnJlYnVpbGQodGhpcyl9LHVuZG86KCk9Pnt0aGlzLmFsbFJhd1BhdGhzLnBvcCgpLHRoaXMucGF0aHMucG9wKCksdGhpcy5iZXppZXJQYXRoMkQucG9wKCksMD09PXRoaXMucGF0aHMubGVuZ3RoP3RoaXMucmVtb3ZlKCk6KHRoaXMuY2FudmFzfHwodGhpcy4jWXIoKSx0aGlzLiNRcigpKSx0aGlzLiNYcigpKX0sbXVzdEV4ZWM6ITB9KX0jbmEoKXtpZighdGhpcy4jSHIpcmV0dXJuO3RoaXMuI0hyPSExO01hdGguY2VpbCh0aGlzLnRoaWNrbmVzcyp0aGlzLnBhcmVudFNjYWxlKTtjb25zdCB0PXRoaXMuY3VycmVudFBhdGguc2xpY2UoLTMpLGU9dC5tYXAoKHQ9PnRbMF0pKSxpPXQubWFwKCh0PT50WzFdKSkse2N0eDpzfT0oTWF0aC5taW4oLi4uZSksTWF0aC5tYXgoLi4uZSksTWF0aC5taW4oLi4uaSksTWF0aC5tYXgoLi4uaSksdGhpcyk7cy5zYXZlKCkscy5jbGVhclJlY3QoMCwwLHRoaXMuY2FudmFzLndpZHRoLHRoaXMuY2FudmFzLmhlaWdodCk7Zm9yKGNvbnN0IHQgb2YgdGhpcy5iZXppZXJQYXRoMkQpcy5zdHJva2UodCk7cy5zdHJva2UodGhpcy4jTnIpLHMucmVzdG9yZSgpfSNhYSh0LGUsaSxzLG4scixhKXtjb25zdCBvPShlK3MpLzIsaD0oaStuKS8yLGw9KHMrcikvMixjPShuK2EpLzI7dC5iZXppZXJDdXJ2ZVRvKG8rMioocy1vKS8zLGgrMioobi1oKS8zLGwrMioocy1sKS8zLGMrMioobi1jKS8zLGwsYyl9I2xhKCl7Y29uc3QgdD10aGlzLmN1cnJlbnRQYXRoO2lmKHQubGVuZ3RoPD0yKXJldHVybltbdFswXSx0WzBdLHQuYXQoLTEpLHQuYXQoLTEpXV07Y29uc3QgZT1bXTtsZXQgaSxbcyxuXT10WzBdO2ZvcihpPTE7aTx0Lmxlbmd0aC0yO2krKyl7Y29uc3RbcixhXT10W2ldLFtvLGhdPXRbaSsxXSxsPShyK28pLzIsYz0oYStoKS8yLGQ9W3MrMiooci1zKS8zLG4rMiooYS1uKS8zXSx1PVtsKzIqKHItbCkvMyxjKzIqKGEtYykvM107ZS5wdXNoKFtbcyxuXSxkLHUsW2wsY11dKSxbcyxuXT1bbCxjXX1jb25zdFtyLGFdPXRbaV0sW28saF09dFtpKzFdLGw9W3MrMiooci1zKS8zLG4rMiooYS1uKS8zXSxjPVtvKzIqKHItbykvMyxoKzIqKGEtaCkvM107cmV0dXJuIGUucHVzaChbW3Msbl0sbCxjLFtvLGhdXSksZX0jS3IoKXtpZih0aGlzLmlzRW1wdHkoKSlyZXR1cm4gdm9pZCB0aGlzLiNjYSgpO3RoaXMuI2lhKCk7Y29uc3R7Y2FudmFzOnQsY3R4OmV9PXRoaXM7ZS5zZXRUcmFuc2Zvcm0oMSwwLDAsMSwwLDApLGUuY2xlYXJSZWN0KDAsMCx0LndpZHRoLHQuaGVpZ2h0KSx0aGlzLiNjYSgpO2Zvcihjb25zdCB0IG9mIHRoaXMuYmV6aWVyUGF0aDJEKWUuc3Ryb2tlKHQpfWNvbW1pdCgpe3RoaXMuI0JyfHwoc3VwZXIuY29tbWl0KCksdGhpcy5pc0VkaXRpbmc9ITEsdGhpcy5kaXNhYmxlRWRpdE1vZGUoKSx0aGlzLnNldEluRm9yZWdyb3VuZCgpLHRoaXMuI0JyPSEwLHRoaXMuZGl2LmNsYXNzTGlzdC5hZGQoImRpc2FibGVkIiksdGhpcy4jWHIoITApLHRoaXMuc2VsZWN0KCksdGhpcy5wYXJlbnQuYWRkSW5rRWRpdG9ySWZOZWVkZWQoITApLHRoaXMubW92ZUluRE9NKCksdGhpcy5kaXYuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSl9Zm9jdXNpbih0KXt0aGlzLl9mb2N1c0V2ZW50c0FsbG93ZWQmJihzdXBlci5mb2N1c2luKHQpLHRoaXMuZW5hYmxlRWRpdE1vZGUoKSl9I1pyKCl7aWYodGhpcy4jJHIpcmV0dXJuO3RoaXMuIyRyPW5ldyBBYm9ydENvbnRyb2xsZXI7Y29uc3QgdD10aGlzLl91aU1hbmFnZXIuY29tYmluZWRTaWduYWwodGhpcy4jJHIpO3RoaXMuY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix0aGlzLmNhbnZhc1BvaW50ZXJkb3duLmJpbmQodGhpcykse3NpZ25hbDp0fSl9I3RhKCl7dGhpcy5wb2ludGVyZG93bkFDPy5hYm9ydCgpLHRoaXMucG9pbnRlcmRvd25BQz1udWxsfWNhbnZhc1BvaW50ZXJkb3duKHQpezA9PT10LmJ1dHRvbiYmdGhpcy5pc0luRWRpdE1vZGUoKSYmIXRoaXMuI0JyJiYodGhpcy5zZXRJbkZvcmVncm91bmQoKSx0LnByZXZlbnREZWZhdWx0KCksdGhpcy5kaXYuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCl8fHRoaXMuZGl2LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSksdGhpcy4jc2EodC5vZmZzZXRYLHQub2Zmc2V0WSkpfWNhbnZhc1BvaW50ZXJtb3ZlKHQpe3QucHJldmVudERlZmF1bHQoKSx0aGlzLiNyYSh0Lm9mZnNldFgsdC5vZmZzZXRZKX1jYW52YXNQb2ludGVydXAodCl7dC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuI2RhKHQpfWNhbnZhc1BvaW50ZXJsZWF2ZSh0KXt0aGlzLiNkYSh0KX0jZGEodCl7dGhpcy4jenI/LmFib3J0KCksdGhpcy4jenI9bnVsbCx0aGlzLiNacigpLHRoaXMuI09yJiZjbGVhclRpbWVvdXQodGhpcy4jT3IpLHRoaXMuI09yPXNldFRpbWVvdXQoKCgpPT57dGhpcy4jT3I9bnVsbCx0aGlzLmNhbnZhcy5yZW1vdmVFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsbHQpfSksMTApLHRoaXMuI2hhKHQub2Zmc2V0WCx0Lm9mZnNldFkpLHRoaXMuYWRkVG9Bbm5vdGF0aW9uU3RvcmFnZSgpLHRoaXMuc2V0SW5CYWNrZ3JvdW5kKCl9I1lyKCl7dGhpcy5jYW52YXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksdGhpcy5jYW52YXMud2lkdGg9dGhpcy5jYW52YXMuaGVpZ2h0PTAsdGhpcy5jYW52YXMuY2xhc3NOYW1lPSJpbmtFZGl0b3JDYW52YXMiLHRoaXMuY2FudmFzLnNldEF0dHJpYnV0ZSgiZGF0YS1sMTBuLWlkIiwicGRmanMtaW5rLWNhbnZhcyIpLHRoaXMuZGl2LmFwcGVuZCh0aGlzLmNhbnZhcyksdGhpcy5jdHg9dGhpcy5jYW52YXMuZ2V0Q29udGV4dCgiMmQiKX0jUXIoKXt0aGlzLiNVcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKHQ9Pntjb25zdCBlPXRbMF0uY29udGVudFJlY3Q7ZS53aWR0aCYmZS5oZWlnaHQmJnRoaXMuc2V0RGltZW5zaW9ucyhlLndpZHRoLGUuaGVpZ2h0KX0pKSx0aGlzLiNVci5vYnNlcnZlKHRoaXMuZGl2KSx0aGlzLl91aU1hbmFnZXIuX3NpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsKCgpPT57dGhpcy4jVXI/LmRpc2Nvbm5lY3QoKSx0aGlzLiNVcj1udWxsfSkse29uY2U6ITB9KX1nZXQgaXNSZXNpemFibGUoKXtyZXR1cm4hdGhpcy5pc0VtcHR5KCkmJnRoaXMuI0JyfXJlbmRlcigpe2lmKHRoaXMuZGl2KXJldHVybiB0aGlzLmRpdjtsZXQgdCxlO3RoaXMud2lkdGgmJih0PXRoaXMueCxlPXRoaXMueSksc3VwZXIucmVuZGVyKCksdGhpcy5kaXYuc2V0QXR0cmlidXRlKCJkYXRhLWwxMG4taWQiLCJwZGZqcy1pbmsiKTtjb25zdFtpLHMsbixyXT10aGlzLiNlYSgpO2lmKHRoaXMuc2V0QXQoaSxzLDAsMCksdGhpcy5zZXREaW1zKG4sciksdGhpcy4jWXIoKSx0aGlzLndpZHRoKXtjb25zdFtpLHNdPXRoaXMucGFyZW50RGltZW5zaW9uczt0aGlzLnNldEFzcGVjdFJhdGlvKHRoaXMud2lkdGgqaSx0aGlzLmhlaWdodCpzKSx0aGlzLnNldEF0KHQqaSxlKnMsdGhpcy53aWR0aCppLHRoaXMuaGVpZ2h0KnMpLHRoaXMuI2pyPSEwLHRoaXMuI0pyKCksdGhpcy5zZXREaW1zKHRoaXMud2lkdGgqaSx0aGlzLmhlaWdodCpzKSx0aGlzLiNLcigpLHRoaXMuZGl2LmNsYXNzTGlzdC5hZGQoImRpc2FibGVkIil9ZWxzZSB0aGlzLmRpdi5jbGFzc0xpc3QuYWRkKCJlZGl0aW5nIiksdGhpcy5lbmFibGVFZGl0TW9kZSgpO3JldHVybiB0aGlzLiNRcigpLHRoaXMuZGl2fSNKcigpe2lmKCF0aGlzLiNqcilyZXR1cm47Y29uc3RbdCxlXT10aGlzLnBhcmVudERpbWVuc2lvbnM7dGhpcy5jYW52YXMud2lkdGg9TWF0aC5jZWlsKHRoaXMud2lkdGgqdCksdGhpcy5jYW52YXMuaGVpZ2h0PU1hdGguY2VpbCh0aGlzLmhlaWdodCplKSx0aGlzLiNjYSgpfXNldERpbWVuc2lvbnModCxlKXtjb25zdCBpPU1hdGgucm91bmQodCkscz1NYXRoLnJvdW5kKGUpO2lmKHRoaXMuI1dyPT09aSYmdGhpcy4jR3I9PT1zKXJldHVybjt0aGlzLiNXcj1pLHRoaXMuI0dyPXMsdGhpcy5jYW52YXMuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjtjb25zdFtuLHJdPXRoaXMucGFyZW50RGltZW5zaW9uczt0aGlzLndpZHRoPXQvbix0aGlzLmhlaWdodD1lL3IsdGhpcy5maXhBbmRTZXRQb3NpdGlvbigpLHRoaXMuI0JyJiZ0aGlzLiN1YSh0LGUpLHRoaXMuI0pyKCksdGhpcy4jS3IoKSx0aGlzLmNhbnZhcy5zdHlsZS52aXNpYmlsaXR5PSJ2aXNpYmxlIix0aGlzLmZpeERpbXMoKX0jdWEodCxlKXtjb25zdCBpPXRoaXMuI3BhKCkscz0odC1pKS90aGlzLiNGcixuPShlLWkpL3RoaXMuI0xyO3RoaXMuc2NhbGVGYWN0b3I9TWF0aC5taW4ocyxuKX0jY2EoKXtjb25zdCB0PXRoaXMuI3BhKCkvMjt0aGlzLmN0eC5zZXRUcmFuc2Zvcm0odGhpcy5zY2FsZUZhY3RvciwwLDAsdGhpcy5zY2FsZUZhY3Rvcix0aGlzLnRyYW5zbGF0aW9uWCp0aGlzLnNjYWxlRmFjdG9yK3QsdGhpcy50cmFuc2xhdGlvblkqdGhpcy5zY2FsZUZhY3Rvcit0KX1zdGF0aWMjZ2EodCl7Y29uc3QgZT1uZXcgUGF0aDJEO2ZvcihsZXQgaT0wLHM9dC5sZW5ndGg7aTxzO2krKyl7Y29uc3RbcyxuLHIsYV09dFtpXTswPT09aSYmZS5tb3ZlVG8oLi4ucyksZS5iZXppZXJDdXJ2ZVRvKG5bMF0sblsxXSxyWzBdLHJbMV0sYVswXSxhWzFdKX1yZXR1cm4gZX1zdGF0aWMjZmEodCxlLGkpe2NvbnN0W3MsbixyLGFdPWU7c3dpdGNoKGkpe2Nhc2UgMDpmb3IobGV0IGU9MCxpPXQubGVuZ3RoO2U8aTtlKz0yKXRbZV0rPXMsdFtlKzFdPWEtdFtlKzFdO2JyZWFrO2Nhc2UgOTA6Zm9yKGxldCBlPTAsaT10Lmxlbmd0aDtlPGk7ZSs9Mil7Y29uc3QgaT10W2VdO3RbZV09dFtlKzFdK3MsdFtlKzFdPWkrbn1icmVhaztjYXNlIDE4MDpmb3IobGV0IGU9MCxpPXQubGVuZ3RoO2U8aTtlKz0yKXRbZV09ci10W2VdLHRbZSsxXSs9bjticmVhaztjYXNlIDI3MDpmb3IobGV0IGU9MCxpPXQubGVuZ3RoO2U8aTtlKz0yKXtjb25zdCBpPXRbZV07dFtlXT1yLXRbZSsxXSx0W2UrMV09YS1pfWJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHJvdGF0aW9uIil9cmV0dXJuIHR9c3RhdGljI21hKHQsZSxpKXtjb25zdFtzLG4scixhXT1lO3N3aXRjaChpKXtjYXNlIDA6Zm9yKGxldCBlPTAsaT10Lmxlbmd0aDtlPGk7ZSs9Mil0W2VdLT1zLHRbZSsxXT1hLXRbZSsxXTticmVhaztjYXNlIDkwOmZvcihsZXQgZT0wLGk9dC5sZW5ndGg7ZTxpO2UrPTIpe2NvbnN0IGk9dFtlXTt0W2VdPXRbZSsxXS1uLHRbZSsxXT1pLXN9YnJlYWs7Y2FzZSAxODA6Zm9yKGxldCBlPTAsaT10Lmxlbmd0aDtlPGk7ZSs9Mil0W2VdPXItdFtlXSx0W2UrMV0tPW47YnJlYWs7Y2FzZSAyNzA6Zm9yKGxldCBlPTAsaT10Lmxlbmd0aDtlPGk7ZSs9Mil7Y29uc3QgaT10W2VdO3RbZV09YS10W2UrMV0sdFtlKzFdPXItaX1icmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiSW52YWxpZCByb3RhdGlvbiIpfXJldHVybiB0fSNiYSh0LGUsaSxzKXtjb25zdCBuPVtdLHI9dGhpcy50aGlja25lc3MvMixhPXQqZStyLG89dCppK3I7Zm9yKGNvbnN0IGUgb2YgdGhpcy5wYXRocyl7Y29uc3QgaT1bXSxyPVtdO2ZvcihsZXQgcz0wLG49ZS5sZW5ndGg7czxuO3MrKyl7Y29uc3RbaCxsLGMsZF09ZVtzXTtpZihoWzBdPT09ZFswXSYmaFsxXT09PWRbMV0mJjE9PT1uKXtjb25zdCBlPXQqaFswXSthLHM9dCpoWzFdK287aS5wdXNoKGUscyksci5wdXNoKGUscyk7YnJlYWt9Y29uc3QgdT10KmhbMF0rYSxwPXQqaFsxXStvLGc9dCpsWzBdK2EsZj10KmxbMV0rbyxtPXQqY1swXSthLGI9dCpjWzFdK28sdj10KmRbMF0rYSx5PXQqZFsxXStvOzA9PT1zJiYoaS5wdXNoKHUscCksci5wdXNoKHUscCkpLGkucHVzaChnLGYsbSxiLHYseSksci5wdXNoKGcsZikscz09PW4tMSYmci5wdXNoKHYseSl9bi5wdXNoKHtiZXppZXI6aHMuI2ZhKGkscyx0aGlzLnJvdGF0aW9uKSxwb2ludHM6aHMuI2ZhKHIscyx0aGlzLnJvdGF0aW9uKX0pfXJldHVybiBufSN2YSgpe2xldCB0PTEvMCxlPS0xLzAsaT0xLzAscz0tMS8wO2Zvcihjb25zdCBuIG9mIHRoaXMucGF0aHMpZm9yKGNvbnN0W3IsYSxvLGhdb2Ygbil7Y29uc3Qgbj16LmJlemllckJvdW5kaW5nQm94KC4uLnIsLi4uYSwuLi5vLC4uLmgpO3Q9TWF0aC5taW4odCxuWzBdKSxpPU1hdGgubWluKGksblsxXSksZT1NYXRoLm1heChlLG5bMl0pLHM9TWF0aC5tYXgocyxuWzNdKX1yZXR1cm5bdCxpLGUsc119I3BhKCl7cmV0dXJuIHRoaXMuI0JyP01hdGguY2VpbCh0aGlzLnRoaWNrbmVzcyp0aGlzLnBhcmVudFNjYWxlKTowfSNYcih0PSExKXtpZih0aGlzLmlzRW1wdHkoKSlyZXR1cm47aWYoIXRoaXMuI0JyKXJldHVybiB2b2lkIHRoaXMuI0tyKCk7Y29uc3QgZT10aGlzLiN2YSgpLGk9dGhpcy4jcGEoKTt0aGlzLiNGcj1NYXRoLm1heChrdC5NSU5fU0laRSxlWzJdLWVbMF0pLHRoaXMuI0xyPU1hdGgubWF4KGt0Lk1JTl9TSVpFLGVbM10tZVsxXSk7Y29uc3Qgcz1NYXRoLmNlaWwoaSt0aGlzLiNGcip0aGlzLnNjYWxlRmFjdG9yKSxuPU1hdGguY2VpbChpK3RoaXMuI0xyKnRoaXMuc2NhbGVGYWN0b3IpLFtyLGFdPXRoaXMucGFyZW50RGltZW5zaW9uczt0aGlzLndpZHRoPXMvcix0aGlzLmhlaWdodD1uL2EsdGhpcy5zZXRBc3BlY3RSYXRpbyhzLG4pO2NvbnN0IG89dGhpcy50cmFuc2xhdGlvblgsaD10aGlzLnRyYW5zbGF0aW9uWTt0aGlzLnRyYW5zbGF0aW9uWD0tZVswXSx0aGlzLnRyYW5zbGF0aW9uWT0tZVsxXSx0aGlzLiNKcigpLHRoaXMuI0tyKCksdGhpcy4jV3I9cyx0aGlzLiNHcj1uLHRoaXMuc2V0RGltcyhzLG4pO2NvbnN0IGw9dD9pL3RoaXMuc2NhbGVGYWN0b3IvMjowO3RoaXMudHJhbnNsYXRlKG8tdGhpcy50cmFuc2xhdGlvblgtbCxoLXRoaXMudHJhbnNsYXRpb25ZLWwpfXN0YXRpYyBhc3luYyBkZXNlcmlhbGl6ZSh0LGUsaSl7aWYodCBpbnN0YW5jZW9mIEdpKXJldHVybiBudWxsO2NvbnN0IHM9YXdhaXQgc3VwZXIuZGVzZXJpYWxpemUodCxlLGkpO3MudGhpY2tuZXNzPXQudGhpY2tuZXNzLHMuY29sb3I9ei5tYWtlSGV4Q29sb3IoLi4udC5jb2xvcikscy5vcGFjaXR5PXQub3BhY2l0eTtjb25zdFtuLHJdPXMucGFnZURpbWVuc2lvbnMsYT1zLndpZHRoKm4sbz1zLmhlaWdodCpyLGg9cy5wYXJlbnRTY2FsZSxsPXQudGhpY2tuZXNzLzI7cy4jQnI9ITAscy4jV3I9TWF0aC5yb3VuZChhKSxzLiNHcj1NYXRoLnJvdW5kKG8pO2NvbnN0e3BhdGhzOmMscmVjdDpkLHJvdGF0aW9uOnV9PXQ7Zm9yKGxldHtiZXppZXI6dH1vZiBjKXt0PWhzLiNtYSh0LGQsdSk7Y29uc3QgZT1bXTtzLnBhdGhzLnB1c2goZSk7bGV0IGk9aCoodFswXS1sKSxuPWgqKHRbMV0tbCk7Zm9yKGxldCBzPTIscj10Lmxlbmd0aDtzPHI7cys9Nil7Y29uc3Qgcj1oKih0W3NdLWwpLGE9aCoodFtzKzFdLWwpLG89aCoodFtzKzJdLWwpLGM9aCoodFtzKzNdLWwpLGQ9aCoodFtzKzRdLWwpLHU9aCoodFtzKzVdLWwpO2UucHVzaChbW2ksbl0sW3IsYV0sW28sY10sW2QsdV1dKSxpPWQsbj11fWNvbnN0IHI9dGhpcy4jZ2EoZSk7cy5iZXppZXJQYXRoMkQucHVzaChyKX1jb25zdCBwPXMuI3ZhKCk7cmV0dXJuIHMuI0ZyPU1hdGgubWF4KGt0Lk1JTl9TSVpFLHBbMl0tcFswXSkscy4jTHI9TWF0aC5tYXgoa3QuTUlOX1NJWkUscFszXS1wWzFdKSxzLiN1YShhLG8pLHN9c2VyaWFsaXplKCl7aWYodGhpcy5pc0VtcHR5KCkpcmV0dXJuIG51bGw7Y29uc3QgdD10aGlzLmdldFJlY3QoMCwwKSxlPWt0Ll9jb2xvck1hbmFnZXIuY29udmVydCh0aGlzLmN0eC5zdHJva2VTdHlsZSk7cmV0dXJue2Fubm90YXRpb25UeXBlOmwuSU5LLGNvbG9yOmUsdGhpY2tuZXNzOnRoaXMudGhpY2tuZXNzLG9wYWNpdHk6dGhpcy5vcGFjaXR5LHBhdGhzOnRoaXMuI2JhKHRoaXMuc2NhbGVGYWN0b3IvdGhpcy5wYXJlbnRTY2FsZSx0aGlzLnRyYW5zbGF0aW9uWCx0aGlzLnRyYW5zbGF0aW9uWSx0KSxwYWdlSW5kZXg6dGhpcy5wYWdlSW5kZXgscmVjdDp0LHJvdGF0aW9uOnRoaXMucm90YXRpb24sc3RydWN0VHJlZVBhcmVudElkOnRoaXMuX3N0cnVjdFRyZWVQYXJlbnRJZH19fWNsYXNzIGxzIGV4dGVuZHMga3R7I3lhPW51bGw7I0FhPW51bGw7I3dhPW51bGw7I3hhPW51bGw7I19hPW51bGw7I0VhPSIiOyNDYT1udWxsOyNVcj1udWxsOyNTYT1udWxsOyNUYT0hMTsjTWE9ITE7c3RhdGljIF90eXBlPSJzdGFtcCI7c3RhdGljIF9lZGl0b3JUeXBlPWwuU1RBTVA7Y29uc3RydWN0b3IodCl7c3VwZXIoey4uLnQsbmFtZToic3RhbXBFZGl0b3IifSksdGhpcy4jeGE9dC5iaXRtYXBVcmwsdGhpcy4jX2E9dC5iaXRtYXBGaWxlfXN0YXRpYyBpbml0aWFsaXplKHQsZSl7a3QuaW5pdGlhbGl6ZSh0LGUpfXN0YXRpYyBnZXQgc3VwcG9ydGVkVHlwZXMoKXtyZXR1cm4gQyh0aGlzLCJzdXBwb3J0ZWRUeXBlcyIsWyJhcG5nIiwiYXZpZiIsImJtcCIsImdpZiIsImpwZWciLCJwbmciLCJzdmcreG1sIiwid2VicCIsIngtaWNvbiJdLm1hcCgodD0+YGltYWdlLyR7dH1gKSkpfXN0YXRpYyBnZXQgc3VwcG9ydGVkVHlwZXNTdHIoKXtyZXR1cm4gQyh0aGlzLCJzdXBwb3J0ZWRUeXBlc1N0ciIsdGhpcy5zdXBwb3J0ZWRUeXBlcy5qb2luKCIsIikpfXN0YXRpYyBpc0hhbmRsaW5nTWltZUZvclBhc3RpbmcodCl7cmV0dXJuIHRoaXMuc3VwcG9ydGVkVHlwZXMuaW5jbHVkZXModCl9c3RhdGljIHBhc3RlKHQsZSl7ZS5wYXN0ZUVkaXRvcihsLlNUQU1QLHtiaXRtYXBGaWxlOnQuZ2V0QXNGaWxlKCl9KX1hbHRUZXh0RmluaXNoKCl7dGhpcy5fdWlNYW5hZ2VyLnVzZU5ld0FsdFRleHRGbG93JiYodGhpcy5kaXYuaGlkZGVuPSExKSxzdXBlci5hbHRUZXh0RmluaXNoKCl9Z2V0IHRlbGVtZXRyeUZpbmFsRGF0YSgpe3JldHVybnt0eXBlOiJzdGFtcCIsaGFzQWx0VGV4dDohIXRoaXMuYWx0VGV4dERhdGE/LmFsdFRleHR9fXN0YXRpYyBjb21wdXRlVGVsZW1ldHJ5RmluYWxEYXRhKHQpe2NvbnN0IGU9dC5nZXQoImhhc0FsdFRleHQiKTtyZXR1cm57aGFzQWx0VGV4dDplLmdldCghMCk/PzAsaGFzTm9BbHRUZXh0OmUuZ2V0KCExKT8/MH19I2thKHQsZT0hMSl7dD8odGhpcy4jeWE9dC5iaXRtYXAsZXx8KHRoaXMuI0FhPXQuaWQsdGhpcy4jVGE9dC5pc1N2ZyksdC5maWxlJiYodGhpcy4jRWE9dC5maWxlLm5hbWUpLHRoaXMuI1lyKCkpOnRoaXMucmVtb3ZlKCl9I0lhKCl7aWYodGhpcy4jd2E9bnVsbCx0aGlzLl91aU1hbmFnZXIuZW5hYmxlV2FpdGluZyghMSksdGhpcy4jQ2Epe2lmKHRoaXMuX3VpTWFuYWdlci51c2VOZXdBbHRUZXh0V2hlbkFkZGluZ0ltYWdlJiZ0aGlzLl91aU1hbmFnZXIudXNlTmV3QWx0VGV4dEZsb3cmJnRoaXMuI3lhKXJldHVybiB0aGlzLl9lZGl0VG9vbGJhci5oaWRlKCksdm9pZCB0aGlzLl91aU1hbmFnZXIuZWRpdEFsdFRleHQodGhpcywhMCk7aWYoIXRoaXMuX3VpTWFuYWdlci51c2VOZXdBbHRUZXh0V2hlbkFkZGluZ0ltYWdlJiZ0aGlzLl91aU1hbmFnZXIudXNlTmV3QWx0VGV4dEZsb3cmJnRoaXMuI3lhKXt0aGlzLl9yZXBvcnRUZWxlbWV0cnkoe2FjdGlvbjoicGRmanMuaW1hZ2UuaW1hZ2VfYWRkZWQiLGRhdGE6e2FsdF90ZXh0X21vZGFsOiExLGFsdF90ZXh0X3R5cGU6ImVtcHR5In19KTt0cnl7dGhpcy5tbEd1ZXNzQWx0VGV4dCgpfWNhdGNoe319dGhpcy5kaXYuZm9jdXMoKX19YXN5bmMgbWxHdWVzc0FsdFRleHQodD1udWxsLGU9ITApe2lmKHRoaXMuaGFzQWx0VGV4dERhdGEoKSlyZXR1cm4gbnVsbDtjb25zdHttbE1hbmFnZXI6aX09dGhpcy5fdWlNYW5hZ2VyO2lmKCFpKXRocm93IG5ldyBFcnJvcigiTm8gTUwuIik7aWYoIWF3YWl0IGkuaXNFbmFibGVkRm9yKCJhbHRUZXh0IikpdGhyb3cgbmV3IEVycm9yKCJNTCBpc24ndCBlbmFibGVkIGZvciBhbHQgdGV4dC4iKTtjb25zdHtkYXRhOnMsd2lkdGg6bixoZWlnaHQ6cn09dHx8dGhpcy5jb3B5Q2FudmFzKG51bGwsbnVsbCwhMCkuaW1hZ2VEYXRhLGE9YXdhaXQgaS5ndWVzcyh7bmFtZToiYWx0VGV4dCIscmVxdWVzdDp7ZGF0YTpzLHdpZHRoOm4saGVpZ2h0OnIsY2hhbm5lbHM6cy5sZW5ndGgvKG4qcil9fSk7aWYoIWEpdGhyb3cgbmV3IEVycm9yKCJObyByZXNwb25zZSBmcm9tIHRoZSBBSSBzZXJ2aWNlLiIpO2lmKGEuZXJyb3IpdGhyb3cgbmV3IEVycm9yKCJFcnJvciBmcm9tIHRoZSBBSSBzZXJ2aWNlLiIpO2lmKGEuY2FuY2VsKXJldHVybiBudWxsO2lmKCFhLm91dHB1dCl0aHJvdyBuZXcgRXJyb3IoIk5vIHZhbGlkIHJlc3BvbnNlIGZyb20gdGhlIEFJIHNlcnZpY2UuIik7Y29uc3Qgbz1hLm91dHB1dDtyZXR1cm4gYXdhaXQgdGhpcy5zZXRHdWVzc2VkQWx0VGV4dChvKSxlJiYhdGhpcy5oYXNBbHRUZXh0RGF0YSgpJiYodGhpcy5hbHRUZXh0RGF0YT17YWx0Om8sZGVjb3JhdGl2ZTohMX0pLG99I1JhKCl7aWYodGhpcy4jQWEpcmV0dXJuIHRoaXMuX3VpTWFuYWdlci5lbmFibGVXYWl0aW5nKCEwKSx2b2lkIHRoaXMuX3VpTWFuYWdlci5pbWFnZU1hbmFnZXIuZ2V0RnJvbUlkKHRoaXMuI0FhKS50aGVuKCh0PT50aGlzLiNrYSh0LCEwKSkpLmZpbmFsbHkoKCgpPT50aGlzLiNJYSgpKSk7aWYodGhpcy4jeGEpe2NvbnN0IHQ9dGhpcy4jeGE7cmV0dXJuIHRoaXMuI3hhPW51bGwsdGhpcy5fdWlNYW5hZ2VyLmVuYWJsZVdhaXRpbmcoITApLHZvaWQodGhpcy4jd2E9dGhpcy5fdWlNYW5hZ2VyLmltYWdlTWFuYWdlci5nZXRGcm9tVXJsKHQpLnRoZW4oKHQ9PnRoaXMuI2thKHQpKSkuZmluYWxseSgoKCk9PnRoaXMuI0lhKCkpKSl9aWYodGhpcy4jX2Epe2NvbnN0IHQ9dGhpcy4jX2E7cmV0dXJuIHRoaXMuI19hPW51bGwsdGhpcy5fdWlNYW5hZ2VyLmVuYWJsZVdhaXRpbmcoITApLHZvaWQodGhpcy4jd2E9dGhpcy5fdWlNYW5hZ2VyLmltYWdlTWFuYWdlci5nZXRGcm9tRmlsZSh0KS50aGVuKCh0PT50aGlzLiNrYSh0KSkpLmZpbmFsbHkoKCgpPT50aGlzLiNJYSgpKSkpfWNvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTt0LnR5cGU9ImZpbGUiLHQuYWNjZXB0PWxzLnN1cHBvcnRlZFR5cGVzU3RyO2NvbnN0IGU9dGhpcy5fdWlNYW5hZ2VyLl9zaWduYWw7dGhpcy4jd2E9bmV3IFByb21pc2UoKGk9Pnt0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsKGFzeW5jKCk9PntpZih0LmZpbGVzJiYwIT09dC5maWxlcy5sZW5ndGgpe3RoaXMuX3VpTWFuYWdlci5lbmFibGVXYWl0aW5nKCEwKTtjb25zdCBlPWF3YWl0IHRoaXMuX3VpTWFuYWdlci5pbWFnZU1hbmFnZXIuZ2V0RnJvbUZpbGUodC5maWxlc1swXSk7dGhpcy5fcmVwb3J0VGVsZW1ldHJ5KHthY3Rpb246InBkZmpzLmltYWdlLmltYWdlX3NlbGVjdGVkIixkYXRhOnthbHRfdGV4dF9tb2RhbDp0aGlzLl91aU1hbmFnZXIudXNlTmV3QWx0VGV4dEZsb3d9fSksdGhpcy4ja2EoZSl9ZWxzZSB0aGlzLnJlbW92ZSgpO2koKX0pLHtzaWduYWw6ZX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2FuY2VsIiwoKCk9Pnt0aGlzLnJlbW92ZSgpLGkoKX0pLHtzaWduYWw6ZX0pfSkpLmZpbmFsbHkoKCgpPT50aGlzLiNJYSgpKSksdC5jbGljaygpfXJlbW92ZSgpe3RoaXMuI0FhJiYodGhpcy4jeWE9bnVsbCx0aGlzLl91aU1hbmFnZXIuaW1hZ2VNYW5hZ2VyLmRlbGV0ZUlkKHRoaXMuI0FhKSx0aGlzLiNDYT8ucmVtb3ZlKCksdGhpcy4jQ2E9bnVsbCx0aGlzLiNVcj8uZGlzY29ubmVjdCgpLHRoaXMuI1VyPW51bGwsdGhpcy4jU2EmJihjbGVhclRpbWVvdXQodGhpcy4jU2EpLHRoaXMuI1NhPW51bGwpKSxzdXBlci5yZW1vdmUoKX1yZWJ1aWxkKCl7dGhpcy5wYXJlbnQ/KHN1cGVyLnJlYnVpbGQoKSxudWxsIT09dGhpcy5kaXYmJih0aGlzLiNBYSYmbnVsbD09PXRoaXMuI0NhJiZ0aGlzLiNSYSgpLHRoaXMuaXNBdHRhY2hlZFRvRE9NfHx0aGlzLnBhcmVudC5hZGQodGhpcykpKTp0aGlzLiNBYSYmdGhpcy4jUmEoKX1vbmNlQWRkZWQoKXt0aGlzLl9pc0RyYWdnYWJsZT0hMCx0aGlzLmRpdi5mb2N1cygpfWlzRW1wdHkoKXtyZXR1cm4hKHRoaXMuI3dhfHx0aGlzLiN5YXx8dGhpcy4jeGF8fHRoaXMuI19hfHx0aGlzLiNBYSl9Z2V0IGlzUmVzaXphYmxlKCl7cmV0dXJuITB9cmVuZGVyKCl7aWYodGhpcy5kaXYpcmV0dXJuIHRoaXMuZGl2O2xldCB0LGU7aWYodGhpcy53aWR0aCYmKHQ9dGhpcy54LGU9dGhpcy55KSxzdXBlci5yZW5kZXIoKSx0aGlzLmRpdi5oaWRkZW49ITAsdGhpcy5kaXYuc2V0QXR0cmlidXRlKCJyb2xlIiwiZmlndXJlIiksdGhpcy5hZGRBbHRUZXh0QnV0dG9uKCksdGhpcy4jeWE/dGhpcy4jWXIoKTp0aGlzLiNSYSgpLHRoaXMud2lkdGgmJiF0aGlzLmFubm90YXRpb25FbGVtZW50SWQpe2NvbnN0W2ksc109dGhpcy5wYXJlbnREaW1lbnNpb25zO3RoaXMuc2V0QXQodCppLGUqcyx0aGlzLndpZHRoKmksdGhpcy5oZWlnaHQqcyl9cmV0dXJuIHRoaXMuZGl2fSNZcigpe2NvbnN0e2Rpdjp0fT10aGlzO2xldHt3aWR0aDplLGhlaWdodDppfT10aGlzLiN5YTtjb25zdFtzLG5dPXRoaXMucGFnZURpbWVuc2lvbnMscj0uNzU7aWYodGhpcy53aWR0aCllPXRoaXMud2lkdGgqcyxpPXRoaXMuaGVpZ2h0Km47ZWxzZSBpZihlPnIqc3x8aT5yKm4pe2NvbnN0IHQ9TWF0aC5taW4ocipzL2UscipuL2kpO2UqPXQsaSo9dH1jb25zdFthLG9dPXRoaXMucGFyZW50RGltZW5zaW9uczt0aGlzLnNldERpbXMoZSphL3MsaSpvL24pLHRoaXMuX3VpTWFuYWdlci5lbmFibGVXYWl0aW5nKCExKTtjb25zdCBoPXRoaXMuI0NhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO2guc2V0QXR0cmlidXRlKCJyb2xlIiwiaW1nIiksdGhpcy5hZGRDb250YWluZXIoaCksdGhpcy5fdWlNYW5hZ2VyLnVzZU5ld0FsdFRleHRXaGVuQWRkaW5nSW1hZ2UmJnRoaXMuX3VpTWFuYWdlci51c2VOZXdBbHRUZXh0RmxvdyYmIXRoaXMuYW5ub3RhdGlvbkVsZW1lbnRJZHx8KHQuaGlkZGVuPSExKSx0aGlzLiNQYShlLGkpLHRoaXMuI1FyKCksdGhpcy4jTWF8fCh0aGlzLnBhcmVudC5hZGRVbmRvYWJsZUVkaXRvcih0aGlzKSx0aGlzLiNNYT0hMCksdGhpcy5fcmVwb3J0VGVsZW1ldHJ5KHthY3Rpb246Imluc2VydGVkX2ltYWdlIn0pLHRoaXMuI0VhJiZoLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsdGhpcy4jRWEpfWNvcHlDYW52YXModCxlLGk9ITEpe3R8fCh0PTIyNCk7Y29uc3R7d2lkdGg6cyxoZWlnaHQ6bn09dGhpcy4jeWEscj1uZXcgdnQ7bGV0IGE9dGhpcy4jeWEsbz1zLGg9bixsPW51bGw7aWYoZSl7aWYocz5lfHxuPmUpe2NvbnN0IHQ9TWF0aC5taW4oZS9zLGUvbik7bz1NYXRoLmZsb29yKHMqdCksaD1NYXRoLmZsb29yKG4qdCl9bD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtjb25zdCB0PWwud2lkdGg9TWF0aC5jZWlsKG8qci5zeCksaT1sLmhlaWdodD1NYXRoLmNlaWwoaCpyLnN5KTt0aGlzLiNUYXx8KGE9dGhpcy4jRGEodCxpKSk7Y29uc3QgYz1sLmdldENvbnRleHQoIjJkIik7Yy5maWx0ZXI9dGhpcy5fdWlNYW5hZ2VyLmhjbUZpbHRlcjtsZXQgZD0id2hpdGUiLHU9IiNjZmNmZDgiOyJub25lIiE9PXRoaXMuX3VpTWFuYWdlci5oY21GaWx0ZXI/dT0iYmxhY2siOndpbmRvdy5tYXRjaE1lZGlhPy4oIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiKS5tYXRjaGVzJiYoZD0iIzhmOGY5ZCIsdT0iIzQyNDE0ZCIpO2NvbnN0IHA9MTUsZz1wKnIuc3gsZj1wKnIuc3ksbT1uZXcgT2Zmc2NyZWVuQ2FudmFzKDIqZywyKmYpLGI9bS5nZXRDb250ZXh0KCIyZCIpO2IuZmlsbFN0eWxlPWQsYi5maWxsUmVjdCgwLDAsMipnLDIqZiksYi5maWxsU3R5bGU9dSxiLmZpbGxSZWN0KDAsMCxnLGYpLGIuZmlsbFJlY3QoZyxmLGcsZiksYy5maWxsU3R5bGU9Yy5jcmVhdGVQYXR0ZXJuKG0sInJlcGVhdCIpLGMuZmlsbFJlY3QoMCwwLHQsaSksYy5kcmF3SW1hZ2UoYSwwLDAsYS53aWR0aCxhLmhlaWdodCwwLDAsdCxpKX1sZXQgYz1udWxsO2lmKGkpe2xldCBlLGk7aWYoci5zeW1tZXRyaWMmJmEud2lkdGg8dCYmYS5oZWlnaHQ8dCllPWEud2lkdGgsaT1hLmhlaWdodDtlbHNlIGlmKGE9dGhpcy4jeWEscz50fHxuPnQpe2NvbnN0IHI9TWF0aC5taW4odC9zLHQvbik7ZT1NYXRoLmZsb29yKHMqciksaT1NYXRoLmZsb29yKG4qciksdGhpcy4jVGF8fChhPXRoaXMuI0RhKGUsaSkpfWNvbnN0IG89bmV3IE9mZnNjcmVlbkNhbnZhcyhlLGkpLmdldENvbnRleHQoIjJkIix7d2lsbFJlYWRGcmVxdWVudGx5OiEwfSk7by5kcmF3SW1hZ2UoYSwwLDAsYS53aWR0aCxhLmhlaWdodCwwLDAsZSxpKSxjPXt3aWR0aDplLGhlaWdodDppLGRhdGE6by5nZXRJbWFnZURhdGEoMCwwLGUsaSkuZGF0YX19cmV0dXJue2NhbnZhczpsLHdpZHRoOm8saGVpZ2h0OmgsaW1hZ2VEYXRhOmN9fSNMYSh0LGUpe2NvbnN0W2ksc109dGhpcy5wYXJlbnREaW1lbnNpb25zO3RoaXMud2lkdGg9dC9pLHRoaXMuaGVpZ2h0PWUvcyx0aGlzLl9pbml0aWFsT3B0aW9ucz8uaXNDZW50ZXJlZD90aGlzLmNlbnRlcigpOnRoaXMuZml4QW5kU2V0UG9zaXRpb24oKSx0aGlzLl9pbml0aWFsT3B0aW9ucz1udWxsLG51bGwhPT10aGlzLiNTYSYmY2xlYXJUaW1lb3V0KHRoaXMuI1NhKSx0aGlzLiNTYT1zZXRUaW1lb3V0KCgoKT0+e3RoaXMuI1NhPW51bGwsdGhpcy4jUGEodCxlKX0pLDIwMCl9I0RhKHQsZSl7Y29uc3R7d2lkdGg6aSxoZWlnaHQ6c309dGhpcy4jeWE7bGV0IG49aSxyPXMsYT10aGlzLiN5YTtmb3IoO24+Mip0fHxyPjIqZTspe2NvbnN0IGk9bixzPXI7bj4yKnQmJihuPW4+PTE2Mzg0P01hdGguZmxvb3Iobi8yKS0xOk1hdGguY2VpbChuLzIpKSxyPjIqZSYmKHI9cj49MTYzODQ/TWF0aC5mbG9vcihyLzIpLTE6TWF0aC5jZWlsKHIvMikpO2NvbnN0IG89bmV3IE9mZnNjcmVlbkNhbnZhcyhuLHIpO28uZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UoYSwwLDAsaSxzLDAsMCxuLHIpLGE9by50cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKX1yZXR1cm4gYX0jUGEodCxlKXtjb25zdCBpPW5ldyB2dCxzPU1hdGguY2VpbCh0Kmkuc3gpLG49TWF0aC5jZWlsKGUqaS5zeSkscj10aGlzLiNDYTtpZighcnx8ci53aWR0aD09PXMmJnIuaGVpZ2h0PT09bilyZXR1cm47ci53aWR0aD1zLHIuaGVpZ2h0PW47Y29uc3QgYT10aGlzLiNUYT90aGlzLiN5YTp0aGlzLiNEYShzLG4pLG89ci5nZXRDb250ZXh0KCIyZCIpO28uZmlsdGVyPXRoaXMuX3VpTWFuYWdlci5oY21GaWx0ZXIsby5kcmF3SW1hZ2UoYSwwLDAsYS53aWR0aCxhLmhlaWdodCwwLDAscyxuKX1nZXRJbWFnZUZvckFsdFRleHQoKXtyZXR1cm4gdGhpcy4jQ2F9I0ZhKHQpe2lmKHQpe2lmKHRoaXMuI1RhKXtjb25zdCB0PXRoaXMuX3VpTWFuYWdlci5pbWFnZU1hbmFnZXIuZ2V0U3ZnVXJsKHRoaXMuI0FhKTtpZih0KXJldHVybiB0fWNvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7cmV0dXJuKHt3aWR0aDp0LndpZHRoLGhlaWdodDp0LmhlaWdodH09dGhpcy4jeWEpLHQuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UodGhpcy4jeWEsMCwwKSx0LnRvRGF0YVVSTCgpfWlmKHRoaXMuI1RhKXtjb25zdFt0LGVdPXRoaXMucGFnZURpbWVuc2lvbnMsaT1NYXRoLnJvdW5kKHRoaXMud2lkdGgqdCpZLlBERl9UT19DU1NfVU5JVFMpLHM9TWF0aC5yb3VuZCh0aGlzLmhlaWdodCplKlkuUERGX1RPX0NTU19VTklUUyksbj1uZXcgT2Zmc2NyZWVuQ2FudmFzKGkscyk7cmV0dXJuIG4uZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UodGhpcy4jeWEsMCwwLHRoaXMuI3lhLndpZHRoLHRoaXMuI3lhLmhlaWdodCwwLDAsaSxzKSxuLnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpfXJldHVybiBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy4jeWEpfSNRcigpe3RoaXMuX3VpTWFuYWdlci5fc2lnbmFsJiYodGhpcy4jVXI9bmV3IFJlc2l6ZU9ic2VydmVyKCh0PT57Y29uc3QgZT10WzBdLmNvbnRlbnRSZWN0O2Uud2lkdGgmJmUuaGVpZ2h0JiZ0aGlzLiNMYShlLndpZHRoLGUuaGVpZ2h0KX0pKSx0aGlzLiNVci5vYnNlcnZlKHRoaXMuZGl2KSx0aGlzLl91aU1hbmFnZXIuX3NpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsKCgpPT57dGhpcy4jVXI/LmRpc2Nvbm5lY3QoKSx0aGlzLiNVcj1udWxsfSkse29uY2U6ITB9KSl9c3RhdGljIGFzeW5jIGRlc2VyaWFsaXplKHQsZSxpKXtsZXQgcz1udWxsO2lmKHQgaW5zdGFuY2VvZiBZaSl7Y29uc3R7ZGF0YTp7cmVjdDpuLHJvdGF0aW9uOnIsaWQ6YSxzdHJ1Y3RQYXJlbnQ6byxwb3B1cFJlZjpofSxjb250YWluZXI6YyxwYXJlbnQ6e3BhZ2U6e3BhZ2VOdW1iZXI6ZH19fT10LHU9Yy5xdWVyeVNlbGVjdG9yKCJjYW52YXMiKSxwPWkuaW1hZ2VNYW5hZ2VyLmdldEZyb21DYW52YXMoYy5pZCx1KTt1LnJlbW92ZSgpO2NvbnN0IGc9KGF3YWl0IGUuX3N0cnVjdFRyZWUuZ2V0QXJpYUF0dHJpYnV0ZXMoYCR7JH0ke2F9YCkpPy5nZXQoImFyaWEtbGFiZWwiKXx8IiI7cz10PXthbm5vdGF0aW9uVHlwZTpsLlNUQU1QLGJpdG1hcElkOnAuaWQsYml0bWFwOnAuYml0bWFwLHBhZ2VJbmRleDpkLTEscmVjdDpuLnNsaWNlKDApLHJvdGF0aW9uOnIsaWQ6YSxkZWxldGVkOiExLGFjY2Vzc2liaWxpdHlEYXRhOntkZWNvcmF0aXZlOiExLGFsdFRleHQ6Z30saXNTdmc6ITEsc3RydWN0UGFyZW50Om8scG9wdXBSZWY6aH19Y29uc3Qgbj1hd2FpdCBzdXBlci5kZXNlcmlhbGl6ZSh0LGUsaSkse3JlY3Q6cixiaXRtYXA6YSxiaXRtYXBVcmw6byxiaXRtYXBJZDpoLGlzU3ZnOmMsYWNjZXNzaWJpbGl0eURhdGE6ZH09dDtoJiZpLmltYWdlTWFuYWdlci5pc1ZhbGlkSWQoaCk/KG4uI0FhPWgsYSYmKG4uI3lhPWEpKTpuLiN4YT1vLG4uI1RhPWM7Y29uc3RbdSxwXT1uLnBhZ2VEaW1lbnNpb25zO3JldHVybiBuLndpZHRoPShyWzJdLXJbMF0pL3Usbi5oZWlnaHQ9KHJbM10tclsxXSkvcCxuLmFubm90YXRpb25FbGVtZW50SWQ9dC5pZHx8bnVsbCxkJiYobi5hbHRUZXh0RGF0YT1kKSxuLl9pbml0aWFsRGF0YT1zLG4uI01hPSEhcyxufXNlcmlhbGl6ZSh0PSExLGU9bnVsbCl7aWYodGhpcy5pc0VtcHR5KCkpcmV0dXJuIG51bGw7aWYodGhpcy5kZWxldGVkKXJldHVybiB0aGlzLnNlcmlhbGl6ZURlbGV0ZWQoKTtjb25zdCBpPXthbm5vdGF0aW9uVHlwZTpsLlNUQU1QLGJpdG1hcElkOnRoaXMuI0FhLHBhZ2VJbmRleDp0aGlzLnBhZ2VJbmRleCxyZWN0OnRoaXMuZ2V0UmVjdCgwLDApLHJvdGF0aW9uOnRoaXMucm90YXRpb24saXNTdmc6dGhpcy4jVGEsc3RydWN0VHJlZVBhcmVudElkOnRoaXMuX3N0cnVjdFRyZWVQYXJlbnRJZH07aWYodClyZXR1cm4gaS5iaXRtYXBVcmw9dGhpcy4jRmEoITApLGkuYWNjZXNzaWJpbGl0eURhdGE9dGhpcy5zZXJpYWxpemVBbHRUZXh0KCEwKSxpO2NvbnN0e2RlY29yYXRpdmU6cyxhbHRUZXh0Om59PXRoaXMuc2VyaWFsaXplQWx0VGV4dCghMSk7aWYoIXMmJm4mJihpLmFjY2Vzc2liaWxpdHlEYXRhPXt0eXBlOiJGaWd1cmUiLGFsdDpufSksdGhpcy5hbm5vdGF0aW9uRWxlbWVudElkKXtjb25zdCB0PXRoaXMuI2duKGkpO2lmKHQuaXNTYW1lKXJldHVybiBudWxsO3QuaXNTYW1lQWx0VGV4dD9kZWxldGUgaS5hY2Nlc3NpYmlsaXR5RGF0YTppLmFjY2Vzc2liaWxpdHlEYXRhLnN0cnVjdFBhcmVudD10aGlzLl9pbml0aWFsRGF0YS5zdHJ1Y3RQYXJlbnQ/Py0xfWlmKGkuaWQ9dGhpcy5hbm5vdGF0aW9uRWxlbWVudElkLG51bGw9PT1lKXJldHVybiBpO2Uuc3RhbXBzfHw9bmV3IE1hcDtjb25zdCByPXRoaXMuI1RhPyhpLnJlY3RbMl0taS5yZWN0WzBdKSooaS5yZWN0WzNdLWkucmVjdFsxXSk6bnVsbDtpZihlLnN0YW1wcy5oYXModGhpcy4jQWEpKXtpZih0aGlzLiNUYSl7Y29uc3QgdD1lLnN0YW1wcy5nZXQodGhpcy4jQWEpO3I+dC5hcmVhJiYodC5hcmVhPXIsdC5zZXJpYWxpemVkLmJpdG1hcC5jbG9zZSgpLHQuc2VyaWFsaXplZC5iaXRtYXA9dGhpcy4jRmEoITEpKX19ZWxzZSBlLnN0YW1wcy5zZXQodGhpcy4jQWEse2FyZWE6cixzZXJpYWxpemVkOml9KSxpLmJpdG1hcD10aGlzLiNGYSghMSk7cmV0dXJuIGl9I2duKHQpe2NvbnN0e3JlY3Q6ZSxwYWdlSW5kZXg6aSxhY2Nlc3NpYmlsaXR5RGF0YTp7YWx0VGV4dDpzfX09dGhpcy5faW5pdGlhbERhdGEsbj10LnJlY3QuZXZlcnkoKCh0LGkpPT5NYXRoLmFicyh0LWVbaV0pPDEpKSxyPXQucGFnZUluZGV4PT09aSxhPSh0LmFjY2Vzc2liaWxpdHlEYXRhPy5hbHR8fCIiKT09PXM7cmV0dXJue2lzU2FtZTpuJiZyJiZhLGlzU2FtZUFsdFRleHQ6YX19cmVuZGVyQW5ub3RhdGlvbkVsZW1lbnQodCl7cmV0dXJuIHQudXBkYXRlRWRpdGVkKHtyZWN0OnRoaXMuZ2V0UmVjdCgwLDApfSksbnVsbH19Y2xhc3MgY3N7I1FzOyNPYT0hMTsjTmE9bnVsbDsjQmE9bnVsbDsjemE9bnVsbDsjSGE9bmV3IE1hcDsjamE9ITE7I1VhPSExOyMkYT0hMTsjV2E9bnVsbDsjR2E9bnVsbDsjZjtzdGF0aWMgX2luaXRpYWxpemVkPSExO3N0YXRpYyNIPW5ldyBNYXAoW3RzLGhzLGxzLG9zXS5tYXAoKHQ9Plt0Ll9lZGl0b3JUeXBlLHRdKSkpO2NvbnN0cnVjdG9yKHt1aU1hbmFnZXI6dCxwYWdlSW5kZXg6ZSxkaXY6aSxzdHJ1Y3RUcmVlTGF5ZXI6cyxhY2Nlc3NpYmlsaXR5TWFuYWdlcjpuLGFubm90YXRpb25MYXllcjpyLGRyYXdMYXllcjphLHRleHRMYXllcjpvLHZpZXdwb3J0OmgsbDEwbjpsfSl7Y29uc3QgYz1bLi4uY3MuI0gudmFsdWVzKCldO2lmKCFjcy5faW5pdGlhbGl6ZWQpe2NzLl9pbml0aWFsaXplZD0hMDtmb3IoY29uc3QgZSBvZiBjKWUuaW5pdGlhbGl6ZShsLHQpfXQucmVnaXN0ZXJFZGl0b3JUeXBlcyhjKSx0aGlzLiNmPXQsdGhpcy5wYWdlSW5kZXg9ZSx0aGlzLmRpdj1pLHRoaXMuI1FzPW4sdGhpcy4jTmE9cix0aGlzLnZpZXdwb3J0PWgsdGhpcy4jV2E9byx0aGlzLmRyYXdMYXllcj1hLHRoaXMuX3N0cnVjdFRyZWU9cyx0aGlzLiNmLmFkZExheWVyKHRoaXMpfWdldCBpc0VtcHR5KCl7cmV0dXJuIDA9PT10aGlzLiNIYS5zaXplfWdldCBpc0ludmlzaWJsZSgpe3JldHVybiB0aGlzLmlzRW1wdHkmJnRoaXMuI2YuZ2V0TW9kZSgpPT09bC5OT05FfXVwZGF0ZVRvb2xiYXIodCl7dGhpcy4jZi51cGRhdGVUb29sYmFyKHQpfXVwZGF0ZU1vZGUodD10aGlzLiNmLmdldE1vZGUoKSl7c3dpdGNoKHRoaXMuI1ZhKCksdCl7Y2FzZSBsLk5PTkU6cmV0dXJuIHRoaXMuZGlzYWJsZVRleHRTZWxlY3Rpb24oKSx0aGlzLnRvZ2dsZVBvaW50ZXJFdmVudHMoITEpLHRoaXMudG9nZ2xlQW5ub3RhdGlvbkxheWVyUG9pbnRlckV2ZW50cyghMCksdm9pZCB0aGlzLmRpc2FibGVDbGljaygpO2Nhc2UgbC5JTks6dGhpcy5hZGRJbmtFZGl0b3JJZk5lZWRlZCghMSksdGhpcy5kaXNhYmxlVGV4dFNlbGVjdGlvbigpLHRoaXMudG9nZ2xlUG9pbnRlckV2ZW50cyghMCksdGhpcy5kaXNhYmxlQ2xpY2soKTticmVhaztjYXNlIGwuSElHSExJR0hUOnRoaXMuZW5hYmxlVGV4dFNlbGVjdGlvbigpLHRoaXMudG9nZ2xlUG9pbnRlckV2ZW50cyghMSksdGhpcy5kaXNhYmxlQ2xpY2soKTticmVhaztkZWZhdWx0OnRoaXMuZGlzYWJsZVRleHRTZWxlY3Rpb24oKSx0aGlzLnRvZ2dsZVBvaW50ZXJFdmVudHMoITApLHRoaXMuZW5hYmxlQ2xpY2soKX10aGlzLnRvZ2dsZUFubm90YXRpb25MYXllclBvaW50ZXJFdmVudHMoITEpO2NvbnN0e2NsYXNzTGlzdDplfT10aGlzLmRpdjtmb3IoY29uc3QgaSBvZiBjcy4jSC52YWx1ZXMoKSllLnRvZ2dsZShgJHtpLl90eXBlfUVkaXRpbmdgLHQ9PT1pLl9lZGl0b3JUeXBlKTt0aGlzLmRpdi5oaWRkZW49ITF9aGFzVGV4dExheWVyKHQpe3JldHVybiB0PT09dGhpcy4jV2E/LmRpdn1hZGRJbmtFZGl0b3JJZk5lZWRlZCh0KXtpZih0aGlzLiNmLmdldE1vZGUoKT09PWwuSU5LKXtpZighdClmb3IoY29uc3QgdCBvZiB0aGlzLiNIYS52YWx1ZXMoKSlpZih0LmlzRW1wdHkoKSlyZXR1cm4gdm9pZCB0LnNldEluQmFja2dyb3VuZCgpO3RoaXMuY3JlYXRlQW5kQWRkTmV3RWRpdG9yKHtvZmZzZXRYOjAsb2Zmc2V0WTowfSwhMSkuc2V0SW5CYWNrZ3JvdW5kKCl9fXNldEVkaXRpbmdTdGF0ZSh0KXt0aGlzLiNmLnNldEVkaXRpbmdTdGF0ZSh0KX1hZGRDb21tYW5kcyh0KXt0aGlzLiNmLmFkZENvbW1hbmRzKHQpfXRvZ2dsZURyYXdpbmcodD0hMSl7dGhpcy5kaXYuY2xhc3NMaXN0LnRvZ2dsZSgiZHJhd2luZyIsIXQpfXRvZ2dsZVBvaW50ZXJFdmVudHModD0hMSl7dGhpcy5kaXYuY2xhc3NMaXN0LnRvZ2dsZSgiZGlzYWJsZWQiLCF0KX10b2dnbGVBbm5vdGF0aW9uTGF5ZXJQb2ludGVyRXZlbnRzKHQ9ITEpe3RoaXMuI05hPy5kaXYuY2xhc3NMaXN0LnRvZ2dsZSgiZGlzYWJsZWQiLCF0KX1hc3luYyBlbmFibGUoKXt0aGlzLmRpdi50YWJJbmRleD0wLHRoaXMudG9nZ2xlUG9pbnRlckV2ZW50cyghMCk7Y29uc3QgdD1uZXcgU2V0O2Zvcihjb25zdCBlIG9mIHRoaXMuI0hhLnZhbHVlcygpKWUuZW5hYmxlRWRpdGluZygpLGUuc2hvdyghMCksZS5hbm5vdGF0aW9uRWxlbWVudElkJiYodGhpcy4jZi5yZW1vdmVDaGFuZ2VkRXhpc3RpbmdBbm5vdGF0aW9uKGUpLHQuYWRkKGUuYW5ub3RhdGlvbkVsZW1lbnRJZCkpO2lmKCF0aGlzLiNOYSlyZXR1cm47Y29uc3QgZT10aGlzLiNOYS5nZXRFZGl0YWJsZUFubm90YXRpb25zKCk7Zm9yKGNvbnN0IGkgb2YgZSl7aWYoaS5oaWRlKCksdGhpcy4jZi5pc0RlbGV0ZWRBbm5vdGF0aW9uRWxlbWVudChpLmRhdGEuaWQpKWNvbnRpbnVlO2lmKHQuaGFzKGkuZGF0YS5pZCkpY29udGludWU7Y29uc3QgZT1hd2FpdCB0aGlzLmRlc2VyaWFsaXplKGkpO2UmJih0aGlzLmFkZE9yUmVidWlsZChlKSxlLmVuYWJsZUVkaXRpbmcoKSl9fWRpc2FibGUoKXt0aGlzLiMkYT0hMCx0aGlzLmRpdi50YWJJbmRleD0tMSx0aGlzLnRvZ2dsZVBvaW50ZXJFdmVudHMoITEpO2NvbnN0IHQ9bmV3IE1hcCxlPW5ldyBNYXA7Zm9yKGNvbnN0IGkgb2YgdGhpcy4jSGEudmFsdWVzKCkpaS5kaXNhYmxlRWRpdGluZygpLGkuYW5ub3RhdGlvbkVsZW1lbnRJZCYmKG51bGw9PT1pLnNlcmlhbGl6ZSgpPyhlLnNldChpLmFubm90YXRpb25FbGVtZW50SWQsaSksdGhpcy5nZXRFZGl0YWJsZUFubm90YXRpb24oaS5hbm5vdGF0aW9uRWxlbWVudElkKT8uc2hvdygpLGkucmVtb3ZlKCkpOnQuc2V0KGkuYW5ub3RhdGlvbkVsZW1lbnRJZCxpKSk7aWYodGhpcy4jTmEpe2NvbnN0IGk9dGhpcy4jTmEuZ2V0RWRpdGFibGVBbm5vdGF0aW9ucygpO2Zvcihjb25zdCBzIG9mIGkpe2NvbnN0e2lkOml9PXMuZGF0YTtpZih0aGlzLiNmLmlzRGVsZXRlZEFubm90YXRpb25FbGVtZW50KGkpKWNvbnRpbnVlO2xldCBuPWUuZ2V0KGkpO24/KG4ucmVzZXRBbm5vdGF0aW9uRWxlbWVudChzKSxuLnNob3coITEpLHMuc2hvdygpKToobj10LmdldChpKSxuJiYodGhpcy4jZi5hZGRDaGFuZ2VkRXhpc3RpbmdBbm5vdGF0aW9uKG4pLG4ucmVuZGVyQW5ub3RhdGlvbkVsZW1lbnQocykmJm4uc2hvdyghMSkpLHMuc2hvdygpKX19dGhpcy4jVmEoKSx0aGlzLmlzRW1wdHkmJih0aGlzLmRpdi5oaWRkZW49ITApO2NvbnN0e2NsYXNzTGlzdDppfT10aGlzLmRpdjtmb3IoY29uc3QgdCBvZiBjcy4jSC52YWx1ZXMoKSlpLnJlbW92ZShgJHt0Ll90eXBlfUVkaXRpbmdgKTt0aGlzLmRpc2FibGVUZXh0U2VsZWN0aW9uKCksdGhpcy50b2dnbGVBbm5vdGF0aW9uTGF5ZXJQb2ludGVyRXZlbnRzKCEwKSx0aGlzLiMkYT0hMX1nZXRFZGl0YWJsZUFubm90YXRpb24odCl7cmV0dXJuIHRoaXMuI05hPy5nZXRFZGl0YWJsZUFubm90YXRpb24odCl8fG51bGx9c2V0QWN0aXZlRWRpdG9yKHQpe3RoaXMuI2YuZ2V0QWN0aXZlKCkhPT10JiZ0aGlzLiNmLnNldEFjdGl2ZUVkaXRvcih0KX1lbmFibGVUZXh0U2VsZWN0aW9uKCl7aWYodGhpcy5kaXYudGFiSW5kZXg9LTEsdGhpcy4jV2E/LmRpdiYmIXRoaXMuI0dhKXt0aGlzLiNHYT1uZXcgQWJvcnRDb250cm9sbGVyO2NvbnN0IHQ9dGhpcy4jZi5jb21iaW5lZFNpZ25hbCh0aGlzLiNHYSk7dGhpcy4jV2EuZGl2LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix0aGlzLiNxYS5iaW5kKHRoaXMpLHtzaWduYWw6dH0pLHRoaXMuI1dhLmRpdi5jbGFzc0xpc3QuYWRkKCJoaWdobGlnaHRpbmciKX19ZGlzYWJsZVRleHRTZWxlY3Rpb24oKXt0aGlzLmRpdi50YWJJbmRleD0wLHRoaXMuI1dhPy5kaXYmJnRoaXMuI0dhJiYodGhpcy4jR2EuYWJvcnQoKSx0aGlzLiNHYT1udWxsLHRoaXMuI1dhLmRpdi5jbGFzc0xpc3QucmVtb3ZlKCJoaWdobGlnaHRpbmciKSl9I3FhKHQpe3RoaXMuI2YudW5zZWxlY3RBbGwoKTtjb25zdHt0YXJnZXQ6ZX09dDtpZihlPT09dGhpcy4jV2EuZGl2fHwoImltZyI9PT1lLmdldEF0dHJpYnV0ZSgicm9sZSIpfHxlLmNsYXNzTGlzdC5jb250YWlucygiZW5kT2ZDb250ZW50IikpJiZ0aGlzLiNXYS5kaXYuY29udGFpbnMoZSkpe2NvbnN0e2lzTWFjOmV9PU4ucGxhdGZvcm07aWYoMCE9PXQuYnV0dG9ufHx0LmN0cmxLZXkmJmUpcmV0dXJuO3RoaXMuI2Yuc2hvd0FsbEVkaXRvcnMoImhpZ2hsaWdodCIsITAsITApLHRoaXMuI1dhLmRpdi5jbGFzc0xpc3QuYWRkKCJmcmVlIiksdGhpcy50b2dnbGVEcmF3aW5nKCksb3Muc3RhcnRIaWdobGlnaHRpbmcodGhpcywibHRyIj09PXRoaXMuI2YuZGlyZWN0aW9uLHt0YXJnZXQ6dGhpcy4jV2EuZGl2LHg6dC54LHk6dC55fSksdGhpcy4jV2EuZGl2LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsKCgpPT57dGhpcy4jV2EuZGl2LmNsYXNzTGlzdC5yZW1vdmUoImZyZWUiKSx0aGlzLnRvZ2dsZURyYXdpbmcoITApfSkse29uY2U6ITAsc2lnbmFsOnRoaXMuI2YuX3NpZ25hbH0pLHQucHJldmVudERlZmF1bHQoKX19ZW5hYmxlQ2xpY2soKXtpZih0aGlzLiNCYSlyZXR1cm47dGhpcy4jQmE9bmV3IEFib3J0Q29udHJvbGxlcjtjb25zdCB0PXRoaXMuI2YuY29tYmluZWRTaWduYWwodGhpcy4jQmEpO3RoaXMuZGl2LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIix0aGlzLnBvaW50ZXJkb3duLmJpbmQodGhpcykse3NpZ25hbDp0fSksdGhpcy5kaXYuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix0aGlzLnBvaW50ZXJ1cC5iaW5kKHRoaXMpLHtzaWduYWw6dH0pfWRpc2FibGVDbGljaygpe3RoaXMuI0JhPy5hYm9ydCgpLHRoaXMuI0JhPW51bGx9YXR0YWNoKHQpe3RoaXMuI0hhLnNldCh0LmlkLHQpO2NvbnN0e2Fubm90YXRpb25FbGVtZW50SWQ6ZX09dDtlJiZ0aGlzLiNmLmlzRGVsZXRlZEFubm90YXRpb25FbGVtZW50KGUpJiZ0aGlzLiNmLnJlbW92ZURlbGV0ZWRBbm5vdGF0aW9uRWxlbWVudCh0KX1kZXRhY2godCl7dGhpcy4jSGEuZGVsZXRlKHQuaWQpLHRoaXMuI1FzPy5yZW1vdmVQb2ludGVySW5UZXh0TGF5ZXIodC5jb250ZW50RGl2KSwhdGhpcy4jJGEmJnQuYW5ub3RhdGlvbkVsZW1lbnRJZCYmdGhpcy4jZi5hZGREZWxldGVkQW5ub3RhdGlvbkVsZW1lbnQodCl9cmVtb3ZlKHQpe3RoaXMuZGV0YWNoKHQpLHRoaXMuI2YucmVtb3ZlRWRpdG9yKHQpLHQuZGl2LnJlbW92ZSgpLHQuaXNBdHRhY2hlZFRvRE9NPSExLHRoaXMuI1VhfHx0aGlzLmFkZElua0VkaXRvcklmTmVlZGVkKCExKX1jaGFuZ2VQYXJlbnQodCl7dC5wYXJlbnQhPT10aGlzJiYodC5wYXJlbnQmJnQuYW5ub3RhdGlvbkVsZW1lbnRJZCYmKHRoaXMuI2YuYWRkRGVsZXRlZEFubm90YXRpb25FbGVtZW50KHQuYW5ub3RhdGlvbkVsZW1lbnRJZCksa3QuZGVsZXRlQW5ub3RhdGlvbkVsZW1lbnQodCksdC5hbm5vdGF0aW9uRWxlbWVudElkPW51bGwpLHRoaXMuYXR0YWNoKHQpLHQucGFyZW50Py5kZXRhY2godCksdC5zZXRQYXJlbnQodGhpcyksdC5kaXYmJnQuaXNBdHRhY2hlZFRvRE9NJiYodC5kaXYucmVtb3ZlKCksdGhpcy5kaXYuYXBwZW5kKHQuZGl2KSkpfWFkZCh0KXtpZih0LnBhcmVudCE9PXRoaXN8fCF0LmlzQXR0YWNoZWRUb0RPTSl7aWYodGhpcy5jaGFuZ2VQYXJlbnQodCksdGhpcy4jZi5hZGRFZGl0b3IodCksdGhpcy5hdHRhY2godCksIXQuaXNBdHRhY2hlZFRvRE9NKXtjb25zdCBlPXQucmVuZGVyKCk7dGhpcy5kaXYuYXBwZW5kKGUpLHQuaXNBdHRhY2hlZFRvRE9NPSEwfXQuZml4QW5kU2V0UG9zaXRpb24oKSx0Lm9uY2VBZGRlZCgpLHRoaXMuI2YuYWRkVG9Bbm5vdGF0aW9uU3RvcmFnZSh0KSx0Ll9yZXBvcnRUZWxlbWV0cnkodC50ZWxlbWV0cnlJbml0aWFsRGF0YSl9fW1vdmVFZGl0b3JJbkRPTSh0KXtpZighdC5pc0F0dGFjaGVkVG9ET00pcmV0dXJuO2NvbnN0e2FjdGl2ZUVsZW1lbnQ6ZX09ZG9jdW1lbnQ7dC5kaXYuY29udGFpbnMoZSkmJiF0aGlzLiN6YSYmKHQuX2ZvY3VzRXZlbnRzQWxsb3dlZD0hMSx0aGlzLiN6YT1zZXRUaW1lb3V0KCgoKT0+e3RoaXMuI3phPW51bGwsdC5kaXYuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCk/dC5fZm9jdXNFdmVudHNBbGxvd2VkPSEwOih0LmRpdi5hZGRFdmVudExpc3RlbmVyKCJmb2N1c2luIiwoKCk9Pnt0Ll9mb2N1c0V2ZW50c0FsbG93ZWQ9ITB9KSx7b25jZTohMCxzaWduYWw6dGhpcy4jZi5fc2lnbmFsfSksZS5mb2N1cygpKX0pLDApKSx0Ll9zdHJ1Y3RUcmVlUGFyZW50SWQ9dGhpcy4jUXM/Lm1vdmVFbGVtZW50SW5ET00odGhpcy5kaXYsdC5kaXYsdC5jb250ZW50RGl2LCEwKX1hZGRPclJlYnVpbGQodCl7dC5uZWVkc1RvQmVSZWJ1aWx0KCk/KHQucGFyZW50fHw9dGhpcyx0LnJlYnVpbGQoKSx0LnNob3coKSk6dGhpcy5hZGQodCl9YWRkVW5kb2FibGVFZGl0b3IodCl7dGhpcy5hZGRDb21tYW5kcyh7Y21kOigpPT50Ll91aU1hbmFnZXIucmVidWlsZCh0KSx1bmRvOigpPT57dC5yZW1vdmUoKX0sbXVzdEV4ZWM6ITF9KX1nZXROZXh0SWQoKXtyZXR1cm4gdGhpcy4jZi5nZXRJZCgpfWdldCNYYSgpe3JldHVybiBjcy4jSC5nZXQodGhpcy4jZi5nZXRNb2RlKCkpfWNvbWJpbmVkU2lnbmFsKHQpe3JldHVybiB0aGlzLiNmLmNvbWJpbmVkU2lnbmFsKHQpfSNLYSh0KXtjb25zdCBlPXRoaXMuI1hhO3JldHVybiBlP25ldyBlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcih0KTpudWxsfWNhbkNyZWF0ZU5ld0VtcHR5RWRpdG9yKCl7cmV0dXJuIHRoaXMuI1hhPy5jYW5DcmVhdGVOZXdFbXB0eUVkaXRvcigpfXBhc3RlRWRpdG9yKHQsZSl7dGhpcy4jZi51cGRhdGVUb29sYmFyKHQpLHRoaXMuI2YudXBkYXRlTW9kZSh0KTtjb25zdHtvZmZzZXRYOmksb2Zmc2V0WTpzfT10aGlzLiNZYSgpLG49dGhpcy5nZXROZXh0SWQoKSxyPXRoaXMuI0thKHtwYXJlbnQ6dGhpcyxpZDpuLHg6aSx5OnMsdWlNYW5hZ2VyOnRoaXMuI2YsaXNDZW50ZXJlZDohMCwuLi5lfSk7ciYmdGhpcy5hZGQocil9YXN5bmMgZGVzZXJpYWxpemUodCl7cmV0dXJuIGF3YWl0KGNzLiNILmdldCh0LmFubm90YXRpb25UeXBlPz90LmFubm90YXRpb25FZGl0b3JUeXBlKT8uZGVzZXJpYWxpemUodCx0aGlzLHRoaXMuI2YpKXx8bnVsbH1jcmVhdGVBbmRBZGROZXdFZGl0b3IodCxlLGk9e30pe2NvbnN0IHM9dGhpcy5nZXROZXh0SWQoKSxuPXRoaXMuI0thKHtwYXJlbnQ6dGhpcyxpZDpzLHg6dC5vZmZzZXRYLHk6dC5vZmZzZXRZLHVpTWFuYWdlcjp0aGlzLiNmLGlzQ2VudGVyZWQ6ZSwuLi5pfSk7cmV0dXJuIG4mJnRoaXMuYWRkKG4pLG59I1lhKCl7Y29uc3R7eDp0LHk6ZSx3aWR0aDppLGhlaWdodDpzfT10aGlzLmRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPU1hdGgubWF4KDAsdCkscj1NYXRoLm1heCgwLGUpLGE9KG4rTWF0aC5taW4od2luZG93LmlubmVyV2lkdGgsdCtpKSkvMi10LG89KHIrTWF0aC5taW4od2luZG93LmlubmVySGVpZ2h0LGUrcykpLzItZSxbaCxsXT10aGlzLnZpZXdwb3J0LnJvdGF0aW9uJTE4MD09MD9bYSxvXTpbbyxhXTtyZXR1cm57b2Zmc2V0WDpoLG9mZnNldFk6bH19YWRkTmV3RWRpdG9yKCl7dGhpcy5jcmVhdGVBbmRBZGROZXdFZGl0b3IodGhpcy4jWWEoKSwhMCl9c2V0U2VsZWN0ZWQodCl7dGhpcy4jZi5zZXRTZWxlY3RlZCh0KX10b2dnbGVTZWxlY3RlZCh0KXt0aGlzLiNmLnRvZ2dsZVNlbGVjdGVkKHQpfWlzU2VsZWN0ZWQodCl7cmV0dXJuIHRoaXMuI2YuaXNTZWxlY3RlZCh0KX11bnNlbGVjdCh0KXt0aGlzLiNmLnVuc2VsZWN0KHQpfXBvaW50ZXJ1cCh0KXtjb25zdHtpc01hYzplfT1OLnBsYXRmb3JtOzAhPT10LmJ1dHRvbnx8dC5jdHJsS2V5JiZlfHx0LnRhcmdldD09PXRoaXMuZGl2JiZ0aGlzLiNqYSYmKHRoaXMuI2phPSExLHRoaXMuI09hP3RoaXMuI2YuZ2V0TW9kZSgpIT09bC5TVEFNUD90aGlzLmNyZWF0ZUFuZEFkZE5ld0VkaXRvcih0LCExKTp0aGlzLiNmLnVuc2VsZWN0QWxsKCk6dGhpcy4jT2E9ITApfXBvaW50ZXJkb3duKHQpe2lmKHRoaXMuI2YuZ2V0TW9kZSgpPT09bC5ISUdITElHSFQmJnRoaXMuZW5hYmxlVGV4dFNlbGVjdGlvbigpLHRoaXMuI2phKXJldHVybiB2b2lkKHRoaXMuI2phPSExKTtjb25zdHtpc01hYzplfT1OLnBsYXRmb3JtO2lmKDAhPT10LmJ1dHRvbnx8dC5jdHJsS2V5JiZlKXJldHVybjtpZih0LnRhcmdldCE9PXRoaXMuZGl2KXJldHVybjt0aGlzLiNqYT0hMDtjb25zdCBpPXRoaXMuI2YuZ2V0QWN0aXZlKCk7dGhpcy4jT2E9IWl8fGkuaXNFbXB0eSgpfWZpbmROZXdQYXJlbnQodCxlLGkpe2NvbnN0IHM9dGhpcy4jZi5maW5kUGFyZW50KGUsaSk7cmV0dXJuIG51bGwhPT1zJiZzIT09dGhpcyYmKHMuY2hhbmdlUGFyZW50KHQpLCEwKX1kZXN0cm95KCl7dGhpcy4jZi5nZXRBY3RpdmUoKT8ucGFyZW50PT09dGhpcyYmKHRoaXMuI2YuY29tbWl0T3JSZW1vdmUoKSx0aGlzLiNmLnNldEFjdGl2ZUVkaXRvcihudWxsKSksdGhpcy4jemEmJihjbGVhclRpbWVvdXQodGhpcy4jemEpLHRoaXMuI3phPW51bGwpO2Zvcihjb25zdCB0IG9mIHRoaXMuI0hhLnZhbHVlcygpKXRoaXMuI1FzPy5yZW1vdmVQb2ludGVySW5UZXh0TGF5ZXIodC5jb250ZW50RGl2KSx0LnNldFBhcmVudChudWxsKSx0LmlzQXR0YWNoZWRUb0RPTT0hMSx0LmRpdi5yZW1vdmUoKTt0aGlzLmRpdj1udWxsLHRoaXMuI0hhLmNsZWFyKCksdGhpcy4jZi5yZW1vdmVMYXllcih0aGlzKX0jVmEoKXt0aGlzLiNVYT0hMDtmb3IoY29uc3QgdCBvZiB0aGlzLiNIYS52YWx1ZXMoKSl0LmlzRW1wdHkoKSYmdC5yZW1vdmUoKTt0aGlzLiNVYT0hMX1yZW5kZXIoe3ZpZXdwb3J0OnR9KXt0aGlzLnZpZXdwb3J0PXQsYnQodGhpcy5kaXYsdCk7Zm9yKGNvbnN0IHQgb2YgdGhpcy4jZi5nZXRFZGl0b3JzKHRoaXMucGFnZUluZGV4KSl0aGlzLmFkZCh0KSx0LnJlYnVpbGQoKTt0aGlzLnVwZGF0ZU1vZGUoKX11cGRhdGUoe3ZpZXdwb3J0OnR9KXt0aGlzLiNmLmNvbW1pdE9yUmVtb3ZlKCksdGhpcy4jVmEoKTtjb25zdCBlPXRoaXMudmlld3BvcnQucm90YXRpb24saT10LnJvdGF0aW9uO2lmKHRoaXMudmlld3BvcnQ9dCxidCh0aGlzLmRpdix7cm90YXRpb246aX0pLGUhPT1pKWZvcihjb25zdCB0IG9mIHRoaXMuI0hhLnZhbHVlcygpKXQucm90YXRlKGkpO3RoaXMuYWRkSW5rRWRpdG9ySWZOZWVkZWQoITEpfWdldCBwYWdlRGltZW5zaW9ucygpe2NvbnN0e3BhZ2VXaWR0aDp0LHBhZ2VIZWlnaHQ6ZX09dGhpcy52aWV3cG9ydC5yYXdEaW1zO3JldHVyblt0LGVdfWdldCBzY2FsZSgpe3JldHVybiB0aGlzLiNmLnZpZXdQYXJhbWV0ZXJzLnJlYWxTY2FsZX19Y2xhc3MgZHN7I1JzPW51bGw7I3k9MDsjUWE9bmV3IE1hcDsjSmE9bmV3IE1hcDtjb25zdHJ1Y3Rvcih7cGFnZUluZGV4OnR9KXt0aGlzLnBhZ2VJbmRleD10fXNldFBhcmVudCh0KXtpZih0aGlzLiNScyl7aWYodGhpcy4jUnMhPT10KXtpZih0aGlzLiNRYS5zaXplPjApZm9yKGNvbnN0IGUgb2YgdGhpcy4jUWEudmFsdWVzKCkpZS5yZW1vdmUoKSx0LmFwcGVuZChlKTt0aGlzLiNScz10fX1lbHNlIHRoaXMuI1JzPXR9c3RhdGljIGdldCBfc3ZnRmFjdG9yeSgpe3JldHVybiBDKHRoaXMsIl9zdmdGYWN0b3J5IixuZXcgdHQpfXN0YXRpYyNaYSh0LHt4OmU9MCx5Omk9MCx3aWR0aDpzPTEsaGVpZ2h0Om49MX09e30pe2NvbnN0e3N0eWxlOnJ9PXQ7ci50b3A9MTAwKmkrIiUiLHIubGVmdD0xMDAqZSsiJSIsci53aWR0aD0xMDAqcysiJSIsci5oZWlnaHQ9MTAwKm4rIiUifSN0byh0KXtjb25zdCBlPWRzLl9zdmdGYWN0b3J5LmNyZWF0ZSgxLDEsITApO3JldHVybiB0aGlzLiNScy5hcHBlbmQoZSksZS5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwhMCksZHMuI1phKGUsdCksZX0jZW8odCxlKXtjb25zdCBpPWRzLl9zdmdGYWN0b3J5LmNyZWF0ZUVsZW1lbnQoImNsaXBQYXRoIik7dC5hcHBlbmQoaSk7Y29uc3Qgcz1gY2xpcF8ke2V9YDtpLnNldEF0dHJpYnV0ZSgiaWQiLHMpLGkuc2V0QXR0cmlidXRlKCJjbGlwUGF0aFVuaXRzIiwib2JqZWN0Qm91bmRpbmdCb3giKTtjb25zdCBuPWRzLl9zdmdGYWN0b3J5LmNyZWF0ZUVsZW1lbnQoInVzZSIpO3JldHVybiBpLmFwcGVuZChuKSxuLnNldEF0dHJpYnV0ZSgiaHJlZiIsYCMke2V9YCksbi5jbGFzc0xpc3QuYWRkKCJjbGlwIiksc31oaWdobGlnaHQodCxlLGkscz0hMSl7Y29uc3Qgbj10aGlzLiN5Kysscj10aGlzLiN0byh0LmJveCk7ci5jbGFzc0xpc3QuYWRkKCJoaWdobGlnaHQiKSx0LmZyZWUmJnIuY2xhc3NMaXN0LmFkZCgiZnJlZSIpO2NvbnN0IGE9ZHMuX3N2Z0ZhY3RvcnkuY3JlYXRlRWxlbWVudCgiZGVmcyIpO3IuYXBwZW5kKGEpO2NvbnN0IG89ZHMuX3N2Z0ZhY3RvcnkuY3JlYXRlRWxlbWVudCgicGF0aCIpO2EuYXBwZW5kKG8pO2NvbnN0IGg9YHBhdGhfcCR7dGhpcy5wYWdlSW5kZXh9XyR7bn1gO28uc2V0QXR0cmlidXRlKCJpZCIsaCksby5zZXRBdHRyaWJ1dGUoImQiLHQudG9TVkdQYXRoKCkpLHMmJnRoaXMuI0phLnNldChuLG8pO2NvbnN0IGw9dGhpcy4jZW8oYSxoKSxjPWRzLl9zdmdGYWN0b3J5LmNyZWF0ZUVsZW1lbnQoInVzZSIpO3JldHVybiByLmFwcGVuZChjKSxyLnNldEF0dHJpYnV0ZSgiZmlsbCIsZSksci5zZXRBdHRyaWJ1dGUoImZpbGwtb3BhY2l0eSIsaSksYy5zZXRBdHRyaWJ1dGUoImhyZWYiLGAjJHtofWApLHRoaXMuI1FhLnNldChuLHIpLHtpZDpuLGNsaXBQYXRoSWQ6YHVybCgjJHtsfSlgfX1oaWdobGlnaHRPdXRsaW5lKHQpe2NvbnN0IGU9dGhpcy4jeSsrLGk9dGhpcy4jdG8odC5ib3gpO2kuY2xhc3NMaXN0LmFkZCgiaGlnaGxpZ2h0T3V0bGluZSIpO2NvbnN0IHM9ZHMuX3N2Z0ZhY3RvcnkuY3JlYXRlRWxlbWVudCgiZGVmcyIpO2kuYXBwZW5kKHMpO2NvbnN0IG49ZHMuX3N2Z0ZhY3RvcnkuY3JlYXRlRWxlbWVudCgicGF0aCIpO3MuYXBwZW5kKG4pO2NvbnN0IHI9YHBhdGhfcCR7dGhpcy5wYWdlSW5kZXh9XyR7ZX1gO2xldCBhO2lmKG4uc2V0QXR0cmlidXRlKCJpZCIsciksbi5zZXRBdHRyaWJ1dGUoImQiLHQudG9TVkdQYXRoKCkpLG4uc2V0QXR0cmlidXRlKCJ2ZWN0b3ItZWZmZWN0Iiwibm9uLXNjYWxpbmctc3Ryb2tlIiksdC5mcmVlKXtpLmNsYXNzTGlzdC5hZGQoImZyZWUiKTtjb25zdCB0PWRzLl9zdmdGYWN0b3J5LmNyZWF0ZUVsZW1lbnQoIm1hc2siKTtzLmFwcGVuZCh0KSxhPWBtYXNrX3Ake3RoaXMucGFnZUluZGV4fV8ke2V9YCx0LnNldEF0dHJpYnV0ZSgiaWQiLGEpLHQuc2V0QXR0cmlidXRlKCJtYXNrVW5pdHMiLCJvYmplY3RCb3VuZGluZ0JveCIpO2NvbnN0IG49ZHMuX3N2Z0ZhY3RvcnkuY3JlYXRlRWxlbWVudCgicmVjdCIpO3QuYXBwZW5kKG4pLG4uc2V0QXR0cmlidXRlKCJ3aWR0aCIsIjEiKSxuLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwiMSIpLG4uc2V0QXR0cmlidXRlKCJmaWxsIiwid2hpdGUiKTtjb25zdCBvPWRzLl9zdmdGYWN0b3J5LmNyZWF0ZUVsZW1lbnQoInVzZSIpO3QuYXBwZW5kKG8pLG8uc2V0QXR0cmlidXRlKCJocmVmIixgIyR7cn1gKSxvLnNldEF0dHJpYnV0ZSgic3Ryb2tlIiwibm9uZSIpLG8uc2V0QXR0cmlidXRlKCJmaWxsIiwiYmxhY2siKSxvLnNldEF0dHJpYnV0ZSgiZmlsbC1ydWxlIiwibm9uemVybyIpLG8uY2xhc3NMaXN0LmFkZCgibWFzayIpfWNvbnN0IG89ZHMuX3N2Z0ZhY3RvcnkuY3JlYXRlRWxlbWVudCgidXNlIik7aS5hcHBlbmQobyksby5zZXRBdHRyaWJ1dGUoImhyZWYiLGAjJHtyfWApLGEmJm8uc2V0QXR0cmlidXRlKCJtYXNrIixgdXJsKCMke2F9KWApO2NvbnN0IGg9by5jbG9uZU5vZGUoKTtyZXR1cm4gaS5hcHBlbmQoaCksby5jbGFzc0xpc3QuYWRkKCJtYWluT3V0bGluZSIpLGguY2xhc3NMaXN0LmFkZCgic2Vjb25kYXJ5T3V0bGluZSIpLHRoaXMuI1FhLnNldChlLGkpLGV9ZmluYWxpemVMaW5lKHQsZSl7Y29uc3QgaT10aGlzLiNKYS5nZXQodCk7dGhpcy4jSmEuZGVsZXRlKHQpLHRoaXMudXBkYXRlQm94KHQsZS5ib3gpLGkuc2V0QXR0cmlidXRlKCJkIixlLnRvU1ZHUGF0aCgpKX11cGRhdGVMaW5lKHQsZSl7dGhpcy4jUWEuZ2V0KHQpLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoImQiLGUudG9TVkdQYXRoKCkpfXJlbW92ZUZyZWVIaWdobGlnaHQodCl7dGhpcy5yZW1vdmUodCksdGhpcy4jSmEuZGVsZXRlKHQpfXVwZGF0ZVBhdGgodCxlKXt0aGlzLiNKYS5nZXQodCkuc2V0QXR0cmlidXRlKCJkIixlLnRvU1ZHUGF0aCgpKX11cGRhdGVCb3godCxlKXtkcy4jWmEodGhpcy4jUWEuZ2V0KHQpLGUpfXNob3codCxlKXt0aGlzLiNRYS5nZXQodCkuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhZSl9cm90YXRlKHQsZSl7dGhpcy4jUWEuZ2V0KHQpLnNldEF0dHJpYnV0ZSgiZGF0YS1tYWluLXJvdGF0aW9uIixlKX1jaGFuZ2VDb2xvcih0LGUpe3RoaXMuI1FhLmdldCh0KS5zZXRBdHRyaWJ1dGUoImZpbGwiLGUpfWNoYW5nZU9wYWNpdHkodCxlKXt0aGlzLiNRYS5nZXQodCkuc2V0QXR0cmlidXRlKCJmaWxsLW9wYWNpdHkiLGUpfWFkZENsYXNzKHQsZSl7dGhpcy4jUWEuZ2V0KHQpLmNsYXNzTGlzdC5hZGQoZSl9cmVtb3ZlQ2xhc3ModCxlKXt0aGlzLiNRYS5nZXQodCkuY2xhc3NMaXN0LnJlbW92ZShlKX1nZXRTVkdSb290KHQpe3JldHVybiB0aGlzLiNRYS5nZXQodCl9cmVtb3ZlKHQpe251bGwhPT10aGlzLiNScyYmKHRoaXMuI1FhLmdldCh0KS5yZW1vdmUoKSx0aGlzLiNRYS5kZWxldGUodCkpfWRlc3Ryb3koKXt0aGlzLiNScz1udWxsO2Zvcihjb25zdCB0IG9mIHRoaXMuI1FhLnZhbHVlcygpKXQucmVtb3ZlKCk7dGhpcy4jUWEuY2xlYXIoKX19",z=`data:text/javascript;base64,${a}`,k=`data:text/javascript;base64,${y}`;let X=!1,m=!1;class I{constructor(l,Z={},U={}){R(this,"container",null);R(this,"wrapper",null);R(this,"wrapperMain",null);R(this,"options",{});R(this,"requestOptions",{});R(this,"pdfDocument",null);R(this,"loopCheckTimer",null);R(this,"totalItems",0);R(this,"pageWidth",0);R(this,"pageHeight",0);R(this,"containerHeight",0);R(this,"visibleItems",6);R(this,"canvasWidth",0);R(this,"canvasHeight",0);R(this,"getViewportScale",2);R(this,"onScroll",Y.debounce(l=>{const{scrollTop:Z}=l.target;let U=parseInt(getComputedStyle(this.wrapperMain).paddingTop);const d=this.options.gap||10,Q=Math.max(Math.floor(Math.max(Z-U,0)/(this.pageHeight+d))-1,1),W=Math.min(Q+this.visibleItems-1,this.totalItems);this.renderList(Q,W)},60));this.container=l,this.options={staticFileUrl:"https://unpkg.com/pdfjs-dist@3.1.81/",...Z},this.requestOptions=U,this.createWrapper(),this.createWrapperMain()}createWrapper(){this.wrapper=document.createElement("div"),this.wrapper.className="vue-office-pdf",this.wrapper.setAttribute("style","text-align: center;overflow-y: auto;position: relative;height:100%"),this.container.appendChild(this.wrapper),this.wrapper.addEventListener("scroll",this.onScroll)}createWrapperMain(){this.wrapperMain=document.createElement("div"),this.wrapperMain.className="vue-office-pdf-wrapper",this.wrapperMain.setAttribute("style","background: gray; padding: 30px 0;position: relative;box-sizing: content-box"),this.wrapper.appendChild(this.wrapperMain)}installPdfScript(){return J(z).then(()=>{if(window.pdfjsLib&&!m)m=!0,window.pdfjsLib.GlobalWorkerOptions.workerSrc=k;else return Promise.reject("window.pdfjsLib未找到")})}waitPdfjsLoad(){return new Promise(l=>{const Z=()=>{window.pdfjsLib?l():this.loopCheckTimer=setTimeout(Z,10)};Z()})}checkPdfLib(){return window.pdfjsLib?Promise.resolve():X?this.waitPdfjsLoad():(X=!0,this.installPdfScript())}getDocument(l){return window.pdfjsLib.getDocument({url:M(l,{type:"application/pdf"}),httpHeaders:this.requestOptions&&this.requestOptions.headers,withCredentials:this.requestOptions&&this.requestOptions.withCredentials,cMapUrl:`${this.options.staticFileUrl.endsWith("/")?this.options.staticFileUrl:this.options.staticFileUrl+"/"}cmaps/`,cMapPacked:!0,enableXfa:!0,...h(this.options,["width","staticFileUrl"])}).promise}renderSinglePage(l,Z){return this.pdfDocument.getPage(l).then(U=>{const d=U.getViewport({scale:this.getViewportScale});let Q=window.devicePixelRatio>2?1.5:2;if(this.canvasWidth*d.height!==this.canvasHeight*d.width){let V=Math.floor(d.width*Q),G=Math.floor(d.height*Q),c=this.canvasHeight/G;Q=Q*c,Z.width=V*c,Z.style.width=parseInt(Z.style.width)*c+"px"}const W=Z.getContext("2d"),b=Q!==1?[Q,0,0,Q,0,0]:null;return U.render({canvasContext:W,transform:b,viewport:d}).promise})}getPageSize(l){return l.getPage(1).then(Z=>{const U=this.options.width||this.wrapper.getBoundingClientRect().width-20;let d=Z.getViewport({scale:1});d.width>U*1.5?this.getViewportScale=.5:d.width>U?this.getViewportScale=1:this.getViewportScale=2,d=Z.getViewport({scale:this.getViewportScale});const Q=window.devicePixelRatio>2?1.5:2;let W=Math.floor(d.width*Q),b=Math.floor(d.height*Q),F=Math.floor(d.width),V=Math.floor(d.height);if(this.options.width){let c=this.options.width/F;F=Math.floor(this.options.width),V=Math.floor(V*c)}let G=this.wrapper.getBoundingClientRect().width-20;if(F>G){let c=G/F;F=Math.floor(G),V=Math.floor(V*c)}return{width:F,height:V,canvasWidth:W,canvasHeight:b}})}createCanvas(l){let Z=parseInt(getComputedStyle(this.wrapperMain).paddingTop),U=this.options.gap||10;const d=document.createElement("canvas");return d.style.position="absolute",d.style.top=(l-1)*(this.pageHeight+U)+Z+"px",d.style.left="50%",d.style.transform="translate(-50%)",d.style.backgroundColor="#fff",d.setAttribute("data-id",l),d.width=this.canvasWidth,d.height=this.canvasHeight,d.style.width=`${this.pageWidth}px`,d.style.height=`${this.pageHeight}px`,d}clearAllCanvas(){this.wrapperMain&&(this.wrapperMain.innerHTML="")}setOptions(l){this.options=l}setRequestOptions(l){this.requestOptions=l}preview(l){if(!l){this.clearAllCanvas(),this.options.onError&&this.options.onError(new Error("预览地址不能为空"));return}this.checkPdfLib().then(Z=>{this.getDocument(l).then(U=>{this.pdfDocument&&this.pdfDocument.destroy(),this.pdfDocument=U,this.getPageSize(U).then(d=>{this.totalItems=U.numPages,this.containerHeight=this.wrapper.getBoundingClientRect().height,this.pageWidth=d.width,this.pageHeight=d.height,this.canvasWidth=d.canvasWidth,this.canvasHeight=d.canvasHeight;let Q=this.options.gap||10;this.visibleItems=Math.ceil(this.containerHeight/(this.pageHeight+Q))+4;let W=(this.pageHeight+Q)*this.totalItems-Q;this.wrapperMain.style.height=W+"px",this.clearAllCanvas(),this.renderList(1,Math.min(this.totalItems,this.visibleItems))}).catch(d=>{this.clearAllCanvas(),this.options.onError&&this.options.onError(d)})}).catch(U=>{this.clearAllCanvas(),this.options.onError&&this.options.onError(U)})}).catch(Z=>{this.clearAllCanvas(),this.options.onError&&this.options.onError(Z)})}renderList(l,Z){let U=this.wrapperMain,d=[...U.childNodes],Q=[];if(U.childNodes.length===0)for(let W=l;W<=Z;W++){let b=this.createCanvas(W);U.appendChild(b),Q.push(this.renderSinglePage(W,b))}else{let W=+d[0].getAttribute("data-id"),b=+d[d.length-1].getAttribute("data-id");if(Zb)for(let F=l;F<=Z;F++){let V=this.createCanvas(F);U.appendChild(V),Q.push(this.renderSinglePage(F,V))}if(l=W){let F=d[0];for(let V=W-1;V>=l;V--){let G=this.createCanvas(V);U.insertBefore(G,F),F=G,Q.push(this.renderSinglePage(V,G))}}for(let F=0;F<=b-W;F++){let V=+d[F].getAttribute("data-id");(VZ)&&U.removeChild(d[F])}if(Z>b&&l<=b)for(let F=b+1;F<=Z;F++){let V=this.createCanvas(F);U.appendChild(V),Q.push(this.renderSinglePage(F,V))}}Promise.all(Q).then(W=>{this.options.onRendered&&this.options.onRendered()}).catch(W=>{this.options.onError&&this.options.onError(W)})}rerender(){this.renderList(1,Math.min(this.totalItems,this.visibleItems))}save(l){this.pdfDocument&&this.pdfDocument._transport&&this.pdfDocument._transport.getData().then(Z=>{L(l||`js-preview-pdf-${new Date().getTime()}.pdf`,Z.buffer)})}destroy(){this.wrapper.removeEventListener("scroll",this.onScroll),this.container.removeChild(this.wrapper),this.container=null,this.wrapper=null,this.wrapperMain=null,this.options={},this.requestOptions={},this.pdfDocument&&this.pdfDocument.destroy(),this.pdfDocument=null,this.loopCheckTimer&&clearTimeout(this.loopCheckTimer)}}function x(N,l,Z){return new I(N,l,Z)}const u={init:x},w={__name:"JsPdfDemo",setup(N){const l=T(null);return E(()=>{window.myPdfPreview=u.init(l.value,{onError:Z=>{console.log("发生错误",Z)},onRendered:()=>{console.log("渲染完成")}}),window.myPdfPreview.preview("/vue-office/examples/dist/static/test-files/test.pdf")}),(Z,U)=>(p(),s("div",{ref_key:"dom",ref:l,style:{height:"calc(100vh - 50px)"}},null,512))}};export{w as default}; diff --git a/examples/dist/assets/PdfDemo-6eef3709.js b/examples/dist/assets/PdfDemo-6eef3709.js new file mode 100644 index 0000000..5200e58 --- /dev/null +++ b/examples/dist/assets/PdfDemo-6eef3709.js @@ -0,0 +1,3 @@ +import{g as X,d as z,l as $}from"./url-065d6777.js";import{_ as ee,o as te}from"./function-e46b3664.js";import{d as re,_ as ne,r as E,h as ie,o as ae,w as oe,a as T,c as Ae,b as se,k as ce,l as ue,e as le,f as ge,g as he,u as fe}from"./index-b9f20394.js";import{P as de,u as O}from"./PreviewWrapper-b82be9e1.js";const Ie=`/*! For license information please see worker.js.LICENSE.txt */ +var e={4186:(e,t,r)=>{var A=r(3749),n=r(8055),i=TypeError;e.exports=function(e){if(A(e))return e;throw new i(n(e)+" is not a function")}},9052:(e,t,r)=>{var A=r(8413),n=r(8055),i=TypeError;e.exports=function(e){if(A(e))return e;throw new i(n(e)+" is not a constructor")}},7330:(e,t,r)=>{var A=r(4597),n=String,i=TypeError;e.exports=function(e){if(A(e))return e;throw new i("Can't set "+n(e)+" as a prototype")}},4376:(e,t,r)=>{var A=r(418).has;e.exports=function(e){return A(e),e}},1458:(e,t,r)=>{var A=r(5811),n=r(5304),i=r(1601).f,a=A("unscopables"),o=Array.prototype;void 0===o[a]&&i(o,a,{configurable:!0,value:n(null)}),e.exports=function(e){o[a][e]=!0}},8149:(e,t,r)=>{var A=r(6903).charAt;e.exports=function(e,t,r){return t+(r?A(e,t).length:1)}},3399:(e,t,r)=>{var A=r(6921),n=TypeError;e.exports=function(e,t){if(A(t,e))return e;throw new n("Incorrect invocation")}},7447:(e,t,r)=>{var A=r(2674),n=String,i=TypeError;e.exports=function(e){if(A(e))return e;throw new i(n(e)+" is not an object")}},387:e=>{e.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},8242:(e,t,r)=>{var A=r(4032),n=r(5026),i=r(9872),a=A.ArrayBuffer,o=A.TypeError;e.exports=a&&n(a.prototype,"byteLength","get")||function(e){if("ArrayBuffer"!==i(e))throw new o("ArrayBuffer expected");return e.byteLength}},8102:(e,t,r)=>{var A=r(4032),n=r(2116),i=r(8242),a=A.ArrayBuffer,o=a&&a.prototype,s=o&&n(o.slice);e.exports=function(e){if(0!==i(e))return!1;if(!s)return!1;try{return s(e,0,0),!1}catch(e){return!0}}},7060:(e,t,r)=>{var A=r(3455);e.exports=A((function(){if("function"==typeof ArrayBuffer){var e=new ArrayBuffer(8);Object.isExtensible(e)&&Object.defineProperty(e,"a",{value:8})}}))},6033:(e,t,r)=>{var A=r(8102),n=TypeError;e.exports=function(e){if(A(e))throw new n("ArrayBuffer is detached");return e}},4676:(e,t,r)=>{var A=r(4032),n=r(2608),i=r(5026),a=r(9088),o=r(6033),s=r(8242),c=r(7395),g=r(6572),u=A.structuredClone,l=A.ArrayBuffer,h=A.DataView,I=Math.min,f=l.prototype,C=h.prototype,B=n(f.slice),Q=i(f,"resizable","get"),E=i(f,"maxByteLength","get"),d=n(C.getInt8),y=n(C.setInt8);e.exports=(g||c)&&function(e,t,r){var A,n=s(e),i=void 0===t?n:a(t),f=!Q||!Q(e);if(o(e),g&&(e=u(e,{transfer:[e]}),n===i&&(r||f)))return e;if(n>=i&&(!r||f))A=B(e,0,i);else{var C=r&&!f&&E?{maxByteLength:E(e)}:void 0;A=new l(i,C);for(var p=new h(e),v=new h(A),m=I(i,n),w=0;w{var A,n,i,a=r(387),o=r(2444),s=r(4032),c=r(3749),g=r(2674),u=r(9649),l=r(1179),h=r(8055),I=r(139),f=r(8552),C=r(8986),B=r(6921),Q=r(2611),E=r(9415),d=r(5811),y=r(5936),p=r(8301),v=p.enforce,m=p.get,w=s.Int8Array,b=w&&w.prototype,k=s.Uint8ClampedArray,D=k&&k.prototype,S=w&&Q(w),F=b&&Q(b),x=Object.prototype,R=s.TypeError,G=d("toStringTag"),N=y("TYPED_ARRAY_TAG"),L="TypedArrayConstructor",U=a&&!!E&&"Opera"!==l(s.opera),M=!1,J={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},H={BigInt64Array:8,BigUint64Array:8},Y=function(e){var t=Q(e);if(g(t)){var r=m(t);return r&&u(r,L)?r[L]:Y(t)}},P=function(e){if(!g(e))return!1;var t=l(e);return u(J,t)||u(H,t)};for(A in J)(i=(n=s[A])&&n.prototype)?v(i)[L]=n:U=!1;for(A in H)(i=(n=s[A])&&n.prototype)&&(v(i)[L]=n);if((!U||!c(S)||S===Function.prototype)&&(S=function(){throw new R("Incorrect invocation")},U))for(A in J)s[A]&&E(s[A],S);if((!U||!F||F===x)&&(F=S.prototype,U))for(A in J)s[A]&&E(s[A].prototype,F);if(U&&Q(D)!==F&&E(D,F),o&&!u(F,G))for(A in M=!0,C(F,G,{configurable:!0,get:function(){return g(this)?this[N]:void 0}}),J)s[A]&&I(s[A],N,A);e.exports={NATIVE_ARRAY_BUFFER_VIEWS:U,TYPED_ARRAY_TAG:M&&N,aTypedArray:function(e){if(P(e))return e;throw new R("Target is not a typed array")},aTypedArrayConstructor:function(e){if(c(e)&&(!E||B(S,e)))return e;throw new R(h(e)+" is not a typed array constructor")},exportTypedArrayMethod:function(e,t,r,A){if(o){if(r)for(var n in J){var i=s[n];if(i&&u(i.prototype,e))try{delete i.prototype[e]}catch(r){try{i.prototype[e]=t}catch(e){}}}F[e]&&!r||f(F,e,r?t:U&&b[e]||t,A)}},exportTypedArrayStaticMethod:function(e,t,r){var A,n;if(o){if(E){if(r)for(A in J)if((n=s[A])&&u(n,e))try{delete n[e]}catch(e){}if(S[e]&&!r)return;try{return f(S,e,r?t:U&&S[e]||t)}catch(e){}}for(A in J)!(n=s[A])||n[e]&&!r||f(n,e,t)}},getTypedArrayConstructor:Y,isView:function(e){if(!g(e))return!1;var t=l(e);return"DataView"===t||u(J,t)||u(H,t)},isTypedArray:P,TypedArray:S,TypedArrayPrototype:F}},7226:(e,t,r)=>{var A=r(4032),n=r(2608),i=r(2444),a=r(387),o=r(2542),s=r(139),c=r(8986),g=r(4183),u=r(3455),l=r(3399),h=r(1211),I=r(5806),f=r(9088),C=r(3505),B=r(1306),Q=r(2611),E=r(9415),d=r(9557),y=r(4224),p=r(3951),v=r(2924),m=r(6911),w=r(8301),b=o.PROPER,k=o.CONFIGURABLE,D="ArrayBuffer",S="DataView",F="prototype",x="Wrong index",R=w.getterFor(D),G=w.getterFor(S),N=w.set,L=A[D],U=L,M=U&&U[F],J=A[S],H=J&&J[F],Y=Object.prototype,P=A.Array,O=A.RangeError,K=n(d),T=n([].reverse),q=B.pack,j=B.unpack,W=function(e){return[255&e]},Z=function(e){return[255&e,e>>8&255]},_=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},X=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},V=function(e){return q(C(e),23,4)},z=function(e){return q(e,52,8)},$=function(e,t,r){c(e[F],t,{configurable:!0,get:function(){return r(this)[t]}})},ee=function(e,t,r,A){var n=G(e),i=f(r),a=!!A;if(i+t>n.byteLength)throw new O(x);var o=n.bytes,s=i+n.byteOffset,c=y(o,s,s+t);return a?c:T(c)},te=function(e,t,r,A,n,i){var a=G(e),o=f(r),s=A(+n),c=!!i;if(o+t>a.byteLength)throw new O(x);for(var g=a.bytes,u=o+a.byteOffset,l=0;l>24)},setUint8:function(e,t){ne(this,e,t<<24>>24)}},{unsafe:!0})}else M=(U=function(e){l(this,M);var t=f(e);N(this,{type:D,bytes:K(P(t),0),byteLength:t}),i||(this.byteLength=t,this.detached=!1)})[F],H=(J=function(e,t,r){l(this,H),l(e,M);var A=R(e),n=A.byteLength,a=h(t);if(a<0||a>n)throw new O("Wrong offset");if(a+(r=void 0===r?n-a:I(r))>n)throw new O("Wrong length");N(this,{type:S,buffer:e,byteLength:r,byteOffset:a,bytes:A.bytes}),i||(this.buffer=e,this.byteLength=r,this.byteOffset=a)})[F],i&&($(U,"byteLength",R),$(J,"buffer",G),$(J,"byteLength",G),$(J,"byteOffset",G)),g(H,{getInt8:function(e){return ee(this,1,e)[0]<<24>>24},getUint8:function(e){return ee(this,1,e)[0]},getInt16:function(e){var t=ee(this,2,e,arguments.length>1&&arguments[1]);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=ee(this,2,e,arguments.length>1&&arguments[1]);return t[1]<<8|t[0]},getInt32:function(e){return X(ee(this,4,e,arguments.length>1&&arguments[1]))},getUint32:function(e){return X(ee(this,4,e,arguments.length>1&&arguments[1]))>>>0},getFloat32:function(e){return j(ee(this,4,e,arguments.length>1&&arguments[1]),23)},getFloat64:function(e){return j(ee(this,8,e,arguments.length>1&&arguments[1]),52)},setInt8:function(e,t){te(this,1,e,W,t)},setUint8:function(e,t){te(this,1,e,W,t)},setInt16:function(e,t){te(this,2,e,Z,t,arguments.length>2&&arguments[2])},setUint16:function(e,t){te(this,2,e,Z,t,arguments.length>2&&arguments[2])},setInt32:function(e,t){te(this,4,e,_,t,arguments.length>2&&arguments[2])},setUint32:function(e,t){te(this,4,e,_,t,arguments.length>2&&arguments[2])},setFloat32:function(e,t){te(this,4,e,V,t,arguments.length>2&&arguments[2])},setFloat64:function(e,t){te(this,8,e,z,t,arguments.length>2&&arguments[2])}});m(U,D),m(J,S),e.exports={ArrayBuffer:U,DataView:J}},6677:(e,t,r)=>{var A=r(4165),n=r(9002),i=r(7878),a=r(1870),o=Math.min;e.exports=[].copyWithin||function(e,t){var r=A(this),s=i(r),c=n(e,s),g=n(t,s),u=arguments.length>2?arguments[2]:void 0,l=o((void 0===u?s:n(u,s))-g,s-c),h=1;for(g0;)g in r?r[c]=r[g]:a(r,c),c+=h,g+=h;return r}},9557:(e,t,r)=>{var A=r(4165),n=r(9002),i=r(7878);e.exports=function(e){for(var t=A(this),r=i(t),a=arguments.length,o=n(a>1?arguments[1]:void 0,r),s=a>2?arguments[2]:void 0,c=void 0===s?r:n(s,r);c>o;)t[o++]=e;return t}},3147:(e,t,r)=>{var A=r(5645).forEach,n=r(1814)("forEach");e.exports=n?[].forEach:function(e){return A(this,e,arguments.length>1?arguments[1]:void 0)}},7434:(e,t,r)=>{var A=r(7878);e.exports=function(e,t,r){for(var n=0,i=arguments.length>2?r:A(t),a=new e(i);i>n;)a[n]=t[n++];return a}},3948:(e,t,r)=>{var A=r(4864),n=r(3453),i=r(4165),a=r(3535),o=r(993),s=r(8413),c=r(7878),g=r(3552),u=r(6961),l=r(7507),h=Array;e.exports=function(e){var t=i(e),r=s(this),I=arguments.length,f=I>1?arguments[1]:void 0,C=void 0!==f;C&&(f=A(f,I>2?arguments[2]:void 0));var B,Q,E,d,y,p,v=l(t),m=0;if(!v||this===h&&o(v))for(B=c(t),Q=r?new this(B):h(B);B>m;m++)p=C?f(t[m],m):t[m],g(Q,m,p);else for(Q=r?new this:[],y=(d=u(t,v)).next;!(E=n(y,d)).done;m++)p=C?a(d,f,[E.value,m],!0):E.value,g(Q,m,p);return Q.length=m,Q}},7921:(e,t,r)=>{var A=r(3637),n=r(9002),i=r(7878),a=function(e){return function(t,r,a){var o=A(t),s=i(o);if(0===s)return!e&&-1;var c,g=n(a,s);if(e&&r!=r){for(;s>g;)if((c=o[g++])!=c)return!0}else for(;s>g;g++)if((e||g in o)&&o[g]===r)return e||g||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},767:(e,t,r)=>{var A=r(4864),n=r(9455),i=r(4165),a=r(7878),o=function(e){var t=1===e;return function(r,o,s){for(var c,g=i(r),u=n(g),l=a(u),h=A(o,s);l-- >0;)if(h(c=u[l],l,g))switch(e){case 0:return c;case 1:return l}return t?-1:void 0}};e.exports={findLast:o(0),findLastIndex:o(1)}},5645:(e,t,r)=>{var A=r(4864),n=r(2608),i=r(9455),a=r(4165),o=r(7878),s=r(1453),c=n([].push),g=function(e){var t=1===e,r=2===e,n=3===e,g=4===e,u=6===e,l=7===e,h=5===e||u;return function(I,f,C,B){for(var Q,E,d=a(I),y=i(d),p=o(y),v=A(f,C),m=0,w=B||s,b=t?w(I,p):r||l?w(I,0):void 0;p>m;m++)if((h||m in y)&&(E=v(Q=y[m],m,d),e))if(t)b[m]=E;else if(E)switch(e){case 3:return!0;case 5:return Q;case 6:return m;case 2:c(b,Q)}else switch(e){case 4:return!1;case 7:c(b,Q)}return u?-1:n||g?g:b}};e.exports={forEach:g(0),map:g(1),filter:g(2),some:g(3),every:g(4),find:g(5),findIndex:g(6),filterReject:g(7)}},3499:(e,t,r)=>{var A=r(3881),n=r(3637),i=r(1211),a=r(7878),o=r(1814),s=Math.min,c=[].lastIndexOf,g=!!c&&1/[1].lastIndexOf(1,-0)<0,u=o("lastIndexOf"),l=g||!u;e.exports=l?function(e){if(g)return A(c,this,arguments)||0;var t=n(this),r=a(t);if(0===r)return-1;var o=r-1;for(arguments.length>1&&(o=s(o,i(arguments[1]))),o<0&&(o=r+o);o>=0;o--)if(o in t&&t[o]===e)return o||0;return-1}:c},9077:(e,t,r)=>{var A=r(3455),n=r(5811),i=r(6415),a=n("species");e.exports=function(e){return i>=51||!A((function(){var t=[];return(t.constructor={})[a]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},1814:(e,t,r)=>{var A=r(3455);e.exports=function(e,t){var r=[][e];return!!r&&A((function(){r.call(null,t||function(){return 1},1)}))}},4734:(e,t,r)=>{var A=r(4186),n=r(4165),i=r(9455),a=r(7878),o=TypeError,s="Reduce of empty array with no initial value",c=function(e){return function(t,r,c,g){var u=n(t),l=i(u),h=a(u);if(A(r),0===h&&c<2)throw new o(s);var I=e?h-1:0,f=e?-1:1;if(c<2)for(;;){if(I in l){g=l[I],I+=f;break}if(I+=f,e?I<0:h<=I)throw new o(s)}for(;e?I>=0:h>I;I+=f)I in l&&(g=r(g,l[I],I,u));return g}};e.exports={left:c(!1),right:c(!0)}},7375:(e,t,r)=>{var A=r(2444),n=r(5448),i=TypeError,a=Object.getOwnPropertyDescriptor,o=A&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(e){return e instanceof TypeError}}();e.exports=o?function(e,t){if(n(e)&&!a(e,"length").writable)throw new i("Cannot set read only .length");return e.length=t}:function(e,t){return e.length=t}},4224:(e,t,r)=>{var A=r(2608);e.exports=A([].slice)},5272:(e,t,r)=>{var A=r(4224),n=Math.floor,i=function(e,t){var r=e.length;if(r<8)for(var a,o,s=1;s0;)e[o]=e[--o];o!==s++&&(e[o]=a)}else for(var c=n(r/2),g=i(A(e,0,c),t),u=i(A(e,c),t),l=g.length,h=u.length,I=0,f=0;I{var A=r(5448),n=r(8413),i=r(2674),a=r(5811)("species"),o=Array;e.exports=function(e){var t;return A(e)&&(t=e.constructor,(n(t)&&(t===o||A(t.prototype))||i(t)&&null===(t=t[a]))&&(t=void 0)),void 0===t?o:t}},1453:(e,t,r)=>{var A=r(2329);e.exports=function(e,t){return new(A(e))(0===t?0:t)}},6444:(e,t,r)=>{var A=r(7878);e.exports=function(e,t){for(var r=A(e),n=new t(r),i=0;i{var A=r(7878),n=r(1211),i=RangeError;e.exports=function(e,t,r,a){var o=A(e),s=n(r),c=s<0?o+s:s;if(c>=o||c<0)throw new i("Incorrect index");for(var g=new t(o),u=0;u{var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r=t+"+/",A=t+"-_",n=function(e){for(var t={},r=0;r<64;r++)t[e.charAt(r)]=r;return t};e.exports={i2c:r,c2i:n(r),i2cUrl:A,c2iUrl:n(A)}},3535:(e,t,r)=>{var A=r(7447),n=r(5235);e.exports=function(e,t,r,i){try{return i?t(A(r)[0],r[1]):t(r)}catch(t){n(e,"throw",t)}}},4348:(e,t,r)=>{var A=r(5811)("iterator"),n=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){n=!0}};a[A]=function(){return this},Array.from(a,(function(){throw 2}))}catch(e){}e.exports=function(e,t){try{if(!t&&!n)return!1}catch(e){return!1}var r=!1;try{var i={};i[A]=function(){return{next:function(){return{done:r=!0}}}},e(i)}catch(e){}return r}},9872:(e,t,r)=>{var A=r(2608),n=A({}.toString),i=A("".slice);e.exports=function(e){return i(n(e),8,-1)}},1179:(e,t,r)=>{var A=r(3724),n=r(3749),i=r(9872),a=r(5811)("toStringTag"),o=Object,s="Arguments"===i(function(){return arguments}());e.exports=A?i:function(e){var t,r,A;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=o(e),a))?r:s?i(t):"Object"===(A=i(t))&&n(t.callee)?"Arguments":A}},2042:(e,t,r)=>{var A=r(5304),n=r(8986),i=r(4183),a=r(4864),o=r(3399),s=r(6021),c=r(1804),g=r(656),u=r(9393),l=r(5409),h=r(2444),I=r(5227).fastKey,f=r(8301),C=f.set,B=f.getterFor;e.exports={getConstructor:function(e,t,r,g){var u=e((function(e,n){o(e,l),C(e,{type:t,index:A(null),first:null,last:null,size:0}),h||(e.size=0),s(n)||c(n,e[g],{that:e,AS_ENTRIES:r})})),l=u.prototype,f=B(t),Q=function(e,t,r){var A,n,i=f(e),a=E(e,t);return a?a.value=r:(i.last=a={index:n=I(t,!0),key:t,value:r,previous:A=i.last,next:null,removed:!1},i.first||(i.first=a),A&&(A.next=a),h?i.size++:e.size++,"F"!==n&&(i.index[n]=a)),e},E=function(e,t){var r,A=f(e),n=I(t);if("F"!==n)return A.index[n];for(r=A.first;r;r=r.next)if(r.key===t)return r};return i(l,{clear:function(){for(var e=f(this),t=e.first;t;)t.removed=!0,t.previous&&(t.previous=t.previous.next=null),t=t.next;e.first=e.last=null,e.index=A(null),h?e.size=0:this.size=0},delete:function(e){var t=this,r=f(t),A=E(t,e);if(A){var n=A.next,i=A.previous;delete r.index[A.index],A.removed=!0,i&&(i.next=n),n&&(n.previous=i),r.first===A&&(r.first=n),r.last===A&&(r.last=i),h?r.size--:t.size--}return!!A},forEach:function(e){for(var t,r=f(this),A=a(e,arguments.length>1?arguments[1]:void 0);t=t?t.next:r.first;)for(A(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!E(this,e)}}),i(l,r?{get:function(e){var t=E(this,e);return t&&t.value},set:function(e,t){return Q(this,0===e?0:e,t)}}:{add:function(e){return Q(this,e=0===e?0:e,e)}}),h&&n(l,"size",{configurable:!0,get:function(){return f(this).size}}),u},setStrong:function(e,t,r){var A=t+" Iterator",n=B(t),i=B(A);g(e,t,(function(e,t){C(this,{type:A,target:e,state:n(e),kind:t,last:null})}),(function(){for(var e=i(this),t=e.kind,r=e.last;r&&r.removed;)r=r.previous;return e.target&&(e.last=r=r?r.next:e.state.first)?u("keys"===t?r.key:"values"===t?r.value:[r.key,r.value],!1):(e.target=null,u(void 0,!0))}),r?"entries":"values",!r,!0),l(t)}}},8153:(e,t,r)=>{var A=r(2608),n=r(4183),i=r(5227).getWeakData,a=r(3399),o=r(7447),s=r(6021),c=r(2674),g=r(1804),u=r(5645),l=r(9649),h=r(8301),I=h.set,f=h.getterFor,C=u.find,B=u.findIndex,Q=A([].splice),E=0,d=function(e){return e.frozen||(e.frozen=new y)},y=function(){this.entries=[]},p=function(e,t){return C(e.entries,(function(e){return e[0]===t}))};y.prototype={get:function(e){var t=p(this,e);if(t)return t[1]},has:function(e){return!!p(this,e)},set:function(e,t){var r=p(this,e);r?r[1]=t:this.entries.push([e,t])},delete:function(e){var t=B(this.entries,(function(t){return t[0]===e}));return~t&&Q(this.entries,t,1),!!~t}},e.exports={getConstructor:function(e,t,r,A){var u=e((function(e,n){a(e,h),I(e,{type:t,id:E++,frozen:null}),s(n)||g(n,e[A],{that:e,AS_ENTRIES:r})})),h=u.prototype,C=f(t),B=function(e,t,r){var A=C(e),n=i(o(t),!0);return!0===n?d(A).set(t,r):n[A.id]=r,e};return n(h,{delete:function(e){var t=C(this);if(!c(e))return!1;var r=i(e);return!0===r?d(t).delete(e):r&&l(r,t.id)&&delete r[t.id]},has:function(e){var t=C(this);if(!c(e))return!1;var r=i(e);return!0===r?d(t).has(e):r&&l(r,t.id)}}),n(h,r?{get:function(e){var t=C(this);if(c(e)){var r=i(e);if(!0===r)return d(t).get(e);if(r)return r[t.id]}},set:function(e,t){return B(this,e,t)}}:{add:function(e){return B(this,e,!0)}}),u}}},9556:(e,t,r)=>{var A=r(5366),n=r(4032),i=r(2608),a=r(5868),o=r(8552),s=r(5227),c=r(1804),g=r(3399),u=r(3749),l=r(6021),h=r(2674),I=r(3455),f=r(4348),C=r(6911),B=r(3951);e.exports=function(e,t,r){var Q=-1!==e.indexOf("Map"),E=-1!==e.indexOf("Weak"),d=Q?"set":"add",y=n[e],p=y&&y.prototype,v=y,m={},w=function(e){var t=i(p[e]);o(p,e,"add"===e?function(e){return t(this,0===e?0:e),this}:"delete"===e?function(e){return!(E&&!h(e))&&t(this,0===e?0:e)}:"get"===e?function(e){return E&&!h(e)?void 0:t(this,0===e?0:e)}:"has"===e?function(e){return!(E&&!h(e))&&t(this,0===e?0:e)}:function(e,r){return t(this,0===e?0:e,r),this})};if(a(e,!u(y)||!(E||p.forEach&&!I((function(){(new y).entries().next()})))))v=r.getConstructor(t,e,Q,d),s.enable();else if(a(e,!0)){var b=new v,k=b[d](E?{}:-0,1)!==b,D=I((function(){b.has(1)})),S=f((function(e){new y(e)})),F=!E&&I((function(){for(var e=new y,t=5;t--;)e[d](t,t);return!e.has(-0)}));S||((v=t((function(e,t){g(e,p);var r=B(new y,e,v);return l(t)||c(t,r[d],{that:r,AS_ENTRIES:Q}),r}))).prototype=p,p.constructor=v),(D||F)&&(w("delete"),w("has"),Q&&w("get")),(F||k)&&w(d),E&&p.clear&&delete p.clear}return m[e]=v,A({global:!0,constructor:!0,forced:v!==y},m),C(v,e),E||r.setStrong(v,e,Q),v}},2924:(e,t,r)=>{var A=r(9649),n=r(2919),i=r(1139),a=r(1601);e.exports=function(e,t,r){for(var o=n(t),s=a.f,c=i.f,g=0;g{var A=r(5811)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(r){try{return t[A]=!1,"/./"[e](t)}catch(e){}}return!1}},5139:(e,t,r)=>{var A=r(3455);e.exports=!A((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},9393:e=>{e.exports=function(e,t){return{value:e,done:t}}},139:(e,t,r)=>{var A=r(2444),n=r(1601),i=r(4004);e.exports=A?function(e,t,r){return n.f(e,t,i(1,r))}:function(e,t,r){return e[t]=r,e}},4004:e=>{e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},3552:(e,t,r)=>{var A=r(2444),n=r(1601),i=r(4004);e.exports=function(e,t,r){A?n.f(e,t,i(0,r)):e[t]=r}},952:(e,t,r)=>{var A=r(7447),n=r(3118),i=TypeError;e.exports=function(e){if(A(this),"string"===e||"default"===e)e="string";else if("number"!==e)throw new i("Incorrect hint");return n(this,e)}},8986:(e,t,r)=>{var A=r(1147),n=r(1601);e.exports=function(e,t,r){return r.get&&A(r.get,t,{getter:!0}),r.set&&A(r.set,t,{setter:!0}),n.f(e,t,r)}},8552:(e,t,r)=>{var A=r(3749),n=r(1601),i=r(1147),a=r(5801);e.exports=function(e,t,r,o){o||(o={});var s=o.enumerable,c=void 0!==o.name?o.name:t;if(A(r)&&i(r,c,o),o.global)s?e[t]=r:a(t,r);else{try{o.unsafe?e[t]&&(s=!0):delete e[t]}catch(e){}s?e[t]=r:n.f(e,t,{value:r,enumerable:!1,configurable:!o.nonConfigurable,writable:!o.nonWritable})}return e}},4183:(e,t,r)=>{var A=r(8552);e.exports=function(e,t,r){for(var n in t)A(e,n,t[n],r);return e}},5801:(e,t,r)=>{var A=r(4032),n=Object.defineProperty;e.exports=function(e,t){try{n(A,e,{value:t,configurable:!0,writable:!0})}catch(r){A[e]=t}return t}},1870:(e,t,r)=>{var A=r(8055),n=TypeError;e.exports=function(e,t){if(!delete e[t])throw new n("Cannot delete property "+A(t)+" of "+A(e))}},2444:(e,t,r)=>{var A=r(3455);e.exports=!A((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},7395:(e,t,r)=>{var A,n,i,a,o=r(4032),s=r(9685),c=r(6572),g=o.structuredClone,u=o.ArrayBuffer,l=o.MessageChannel,h=!1;if(c)h=function(e){g(e,{transfer:[e]})};else if(u)try{l||(A=s("worker_threads"))&&(l=A.MessageChannel),l&&(n=new l,i=new u(2),a=function(e){n.port1.postMessage(null,[e])},2===i.byteLength&&(a(i),0===i.byteLength&&(h=a)))}catch(e){}e.exports=h},5751:(e,t,r)=>{var A=r(4032),n=r(2674),i=A.document,a=n(i)&&n(i.createElement);e.exports=function(e){return a?i.createElement(e):{}}},9573:e=>{var t=TypeError;e.exports=function(e){if(e>9007199254740991)throw t("Maximum allowed index exceeded");return e}},4090:e=>{e.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}}},2760:e=>{e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},4784:(e,t,r)=>{var A=r(5751)("span").classList,n=A&&A.constructor&&A.constructor.prototype;e.exports=n===Object.prototype?void 0:n},5175:e=>{e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},7085:(e,t,r)=>{var A=r(7607).match(/firefox\\/(\\d+)/i);e.exports=!!A&&+A[1]},5123:(e,t,r)=>{var A=r(7607);e.exports=/MSIE|Trident/.test(A)},9081:(e,t,r)=>{var A=r(7607);e.exports=/ipad|iphone|ipod/i.test(A)&&"undefined"!=typeof Pebble},9352:(e,t,r)=>{var A=r(7607);e.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(A)},4529:(e,t,r)=>{var A=r(7351);e.exports="NODE"===A},628:(e,t,r)=>{var A=r(7607);e.exports=/web0s(?!.*chrome)/i.test(A)},7607:(e,t,r)=>{var A=r(4032).navigator,n=A&&A.userAgent;e.exports=n?String(n):""},6415:(e,t,r)=>{var A,n,i=r(4032),a=r(7607),o=i.process,s=i.Deno,c=o&&o.versions||s&&s.version,g=c&&c.v8;g&&(n=(A=g.split("."))[0]>0&&A[0]<4?1:+(A[0]+A[1])),!n&&a&&(!(A=a.match(/Edge\\/(\\d+)/))||A[1]>=74)&&(A=a.match(/Chrome\\/(\\d+)/))&&(n=+A[1]),e.exports=n},1911:(e,t,r)=>{var A=r(7607).match(/AppleWebKit\\/(\\d+)\\./);e.exports=!!A&&+A[1]},7351:(e,t,r)=>{var A=r(4032),n=r(7607),i=r(9872),a=function(e){return n.slice(0,e.length)===e};e.exports=a("Bun/")?"BUN":a("Cloudflare-Workers")?"CLOUDFLARE":a("Deno/")?"DENO":a("Node.js/")?"NODE":A.Bun&&"string"==typeof Bun.version?"BUN":A.Deno&&"object"==typeof Deno.version?"DENO":"process"===i(A.process)?"NODE":A.window&&A.document?"BROWSER":"REST"},3633:(e,t,r)=>{var A=r(2608),n=Error,i=A("".replace),a=String(new n("zxcasd").stack),o=/\\n\\s*at [^:]*:[^\\n]*/,s=o.test(a);e.exports=function(e,t){if(s&&"string"==typeof e&&!n.prepareStackTrace)for(;t--;)e=i(e,o,"");return e}},4171:(e,t,r)=>{var A=r(139),n=r(3633),i=r(3427),a=Error.captureStackTrace;e.exports=function(e,t,r,o){i&&(a?a(e,t):A(e,"stack",n(r,o)))}},3427:(e,t,r)=>{var A=r(3455),n=r(4004);e.exports=!A((function(){var e=new Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",n(1,7)),7!==e.stack)}))},2912:(e,t,r)=>{var A=r(2444),n=r(3455),i=r(7447),a=r(8363),o=Error.prototype.toString,s=n((function(){if(A){var e=Object.create(Object.defineProperty({},"name",{get:function(){return this===e}}));if("true"!==o.call(e))return!0}return"2: 1"!==o.call({message:1,name:2})||"Error"!==o.call({})}));e.exports=s?function(){var e=i(this),t=a(e.name,"Error"),r=a(e.message);return t?r?t+": "+r:t:r}:o},5366:(e,t,r)=>{var A=r(4032),n=r(1139).f,i=r(139),a=r(8552),o=r(5801),s=r(2924),c=r(5868);e.exports=function(e,t){var r,g,u,l,h,I=e.target,f=e.global,C=e.stat;if(r=f?A:C?A[I]||o(I,{}):A[I]&&A[I].prototype)for(g in t){if(l=t[g],u=e.dontCallGetSet?(h=n(r,g))&&h.value:r[g],!c(f?g:I+(C?".":"#")+g,e.forced)&&void 0!==u){if(typeof l==typeof u)continue;s(l,u)}(e.sham||u&&u.sham)&&i(l,"sham",!0),a(r,g,l,e)}}},3455:e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},4364:(e,t,r)=>{r(2823);var A=r(3453),n=r(8552),i=r(9867),a=r(3455),o=r(5811),s=r(139),c=o("species"),g=RegExp.prototype;e.exports=function(e,t,r,u){var l=o(e),h=!a((function(){var t={};return t[l]=function(){return 7},7!==""[e](t)})),I=h&&!a((function(){var t=!1,r=/a/;return"split"===e&&((r={}).constructor={},r.constructor[c]=function(){return r},r.flags="",r[l]=/./[l]),r.exec=function(){return t=!0,null},r[l](""),!t}));if(!h||!I||r){var f=/./[l],C=t(l,""[e],(function(e,t,r,n,a){var o=t.exec;return o===i||o===g.exec?h&&!a?{done:!0,value:A(f,t,r,n)}:{done:!0,value:A(e,r,t,n)}:{done:!1}}));n(String.prototype,e,C[0]),n(g,l,C[1])}u&&s(g[l],"sham",!0)}},2851:(e,t,r)=>{var A=r(5448),n=r(7878),i=r(9573),a=r(4864),o=function(e,t,r,s,c,g,u,l){for(var h,I,f=c,C=0,B=!!u&&a(u,l);C0&&A(h)?(I=n(h),f=o(e,t,h,I,f,g-1)-1):(i(f+1),e[f]=h),f++),C++;return f};e.exports=o},568:(e,t,r)=>{var A=r(3455);e.exports=!A((function(){return Object.isExtensible(Object.preventExtensions({}))}))},3881:(e,t,r)=>{var A=r(9128),n=Function.prototype,i=n.apply,a=n.call;e.exports="object"==typeof Reflect&&Reflect.apply||(A?a.bind(i):function(){return a.apply(i,arguments)})},4864:(e,t,r)=>{var A=r(2116),n=r(4186),i=r(9128),a=A(A.bind);e.exports=function(e,t){return n(e),void 0===t?e:i?a(e,t):function(){return e.apply(t,arguments)}}},9128:(e,t,r)=>{var A=r(3455);e.exports=!A((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))},2230:(e,t,r)=>{var A=r(2608),n=r(4186),i=r(2674),a=r(9649),o=r(4224),s=r(9128),c=Function,g=A([].concat),u=A([].join),l={};e.exports=s?c.bind:function(e){var t=n(this),r=t.prototype,A=o(arguments,1),s=function(){var r=g(A,o(arguments));return this instanceof s?function(e,t,r){if(!a(l,t)){for(var A=[],n=0;n{var A=r(9128),n=Function.prototype.call;e.exports=A?n.bind(n):function(){return n.apply(n,arguments)}},2542:(e,t,r)=>{var A=r(2444),n=r(9649),i=Function.prototype,a=A&&Object.getOwnPropertyDescriptor,o=n(i,"name"),s=o&&"something"===function(){}.name,c=o&&(!A||A&&a(i,"name").configurable);e.exports={EXISTS:o,PROPER:s,CONFIGURABLE:c}},5026:(e,t,r)=>{var A=r(2608),n=r(4186);e.exports=function(e,t,r){try{return A(n(Object.getOwnPropertyDescriptor(e,t)[r]))}catch(e){}}},2116:(e,t,r)=>{var A=r(9872),n=r(2608);e.exports=function(e){if("Function"===A(e))return n(e)}},2608:(e,t,r)=>{var A=r(9128),n=Function.prototype,i=n.call,a=A&&n.bind.bind(i,i);e.exports=A?a:function(e){return function(){return i.apply(e,arguments)}}},9685:(e,t,r)=>{var A=r(4032),n=r(4529);e.exports=function(e){if(n){try{return A.process.getBuiltinModule(e)}catch(e){}try{return Function('return require("'+e+'")')()}catch(e){}}}},8711:(e,t,r)=>{var A=r(4032),n=r(3749);e.exports=function(e,t){return arguments.length<2?(r=A[e],n(r)?r:void 0):A[e]&&A[e][t];var r}},3447:e=>{e.exports=function(e){return{iterator:e,next:e.next,done:!1}}},7507:(e,t,r)=>{var A=r(1179),n=r(8622),i=r(6021),a=r(5597),o=r(5811)("iterator");e.exports=function(e){if(!i(e))return n(e,o)||n(e,"@@iterator")||a[A(e)]}},6961:(e,t,r)=>{var A=r(3453),n=r(4186),i=r(7447),a=r(8055),o=r(7507),s=TypeError;e.exports=function(e,t){var r=arguments.length<2?o(e):t;if(n(r))return i(A(r,e));throw new s(a(e)+" is not iterable")}},213:(e,t,r)=>{var A=r(2608),n=r(5448),i=r(3749),a=r(9872),o=r(687),s=A([].push);e.exports=function(e){if(i(e))return e;if(n(e)){for(var t=e.length,r=[],A=0;A{var A=r(4186),n=r(6021);e.exports=function(e,t){var r=e[t];return n(r)?void 0:A(r)}},3885:(e,t,r)=>{var A=r(4186),n=r(7447),i=r(3453),a=r(1211),o=r(3447),s="Invalid size",c=RangeError,g=TypeError,u=Math.max,l=function(e,t){this.set=e,this.size=u(t,0),this.has=A(e.has),this.keys=A(e.keys)};l.prototype={getIterator:function(){return o(n(i(this.keys,this.set)))},includes:function(e){return i(this.has,this.set,e)}},e.exports=function(e){n(e);var t=+e.size;if(t!=t)throw new g(s);var r=a(t);if(r<0)throw new c(s);return new l(e,r)}},3966:(e,t,r)=>{var A=r(2608),n=r(4165),i=Math.floor,a=A("".charAt),o=A("".replace),s=A("".slice),c=/\\$([$&'\`]|\\d{1,2}|<[^>]*>)/g,g=/\\$([$&'\`]|\\d{1,2})/g;e.exports=function(e,t,r,A,u,l){var h=r+e.length,I=A.length,f=g;return void 0!==u&&(u=n(u),f=c),o(l,f,(function(n,o){var c;switch(a(o,0)){case"$":return"$";case"&":return e;case"\`":return s(t,0,r);case"'":return s(t,h);case"<":c=u[s(o,1,-1)];break;default:var g=+o;if(0===g)return n;if(g>I){var l=i(g/10);return 0===l?n:l<=I?void 0===A[l-1]?a(o,1):A[l-1]+a(o,1):n}c=A[g-1]}return void 0===c?"":c}))}},4032:function(e){var t=function(e){return e&&e.Math===Math&&e};e.exports=t("object"==typeof globalThis&&globalThis)||t("object"==typeof window&&window)||t("object"==typeof self&&self)||t("object"==typeof global&&global)||t("object"==typeof this&&this)||function(){return this}()||Function("return this")()},9649:(e,t,r)=>{var A=r(2608),n=r(4165),i=A({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return i(n(e),t)}},2645:e=>{e.exports={}},4885:e=>{e.exports=function(e,t){try{1===arguments.length?console.error(e):console.error(e,t)}catch(e){}}},3085:(e,t,r)=>{var A=r(8711);e.exports=A("document","documentElement")},8829:(e,t,r)=>{var A=r(2444),n=r(3455),i=r(5751);e.exports=!A&&!n((function(){return 7!==Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},1306:e=>{var t=Array,r=Math.abs,A=Math.pow,n=Math.floor,i=Math.log,a=Math.LN2;e.exports={pack:function(e,o,s){var c,g,u,l=t(s),h=8*s-o-1,I=(1<>1,C=23===o?A(2,-24)-A(2,-77):0,B=e<0||0===e&&1/e<0?1:0,Q=0;for((e=r(e))!=e||e===1/0?(g=e!=e?1:0,c=I):(c=n(i(e)/a),e*(u=A(2,-c))<1&&(c--,u*=2),(e+=c+f>=1?C/u:C*A(2,1-f))*u>=2&&(c++,u/=2),c+f>=I?(g=0,c=I):c+f>=1?(g=(e*u-1)*A(2,o),c+=f):(g=e*A(2,f-1)*A(2,o),c=0));o>=8;)l[Q++]=255&g,g/=256,o-=8;for(c=c<0;)l[Q++]=255&c,c/=256,h-=8;return l[Q-1]|=128*B,l},unpack:function(e,t){var r,n=e.length,i=8*n-t-1,a=(1<>1,s=i-7,c=n-1,g=e[c--],u=127&g;for(g>>=7;s>0;)u=256*u+e[c--],s-=8;for(r=u&(1<<-s)-1,u>>=-s,s+=t;s>0;)r=256*r+e[c--],s-=8;if(0===u)u=1-o;else{if(u===a)return r?NaN:g?-1/0:1/0;r+=A(2,t),u-=o}return(g?-1:1)*r*A(2,u-t)}}},9455:(e,t,r)=>{var A=r(2608),n=r(3455),i=r(9872),a=Object,o=A("".split);e.exports=n((function(){return!a("z").propertyIsEnumerable(0)}))?function(e){return"String"===i(e)?o(e,""):a(e)}:a},3951:(e,t,r)=>{var A=r(3749),n=r(2674),i=r(9415);e.exports=function(e,t,r){var a,o;return i&&A(a=t.constructor)&&a!==r&&n(o=a.prototype)&&o!==r.prototype&&i(e,o),e}},6906:(e,t,r)=>{var A=r(2608),n=r(3749),i=r(2205),a=A(Function.toString);n(i.inspectSource)||(i.inspectSource=function(e){return a(e)}),e.exports=i.inspectSource},2483:(e,t,r)=>{var A=r(2674),n=r(139);e.exports=function(e,t){A(t)&&"cause"in t&&n(e,"cause",t.cause)}},5227:(e,t,r)=>{var A=r(5366),n=r(2608),i=r(2645),a=r(2674),o=r(9649),s=r(1601).f,c=r(3408),g=r(6442),u=r(8812),l=r(5936),h=r(568),I=!1,f=l("meta"),C=0,B=function(e){s(e,f,{value:{objectID:"O"+C++,weakData:{}}})},Q=e.exports={enable:function(){Q.enable=function(){},I=!0;var e=c.f,t=n([].splice),r={};r[f]=1,e(r).length&&(c.f=function(r){for(var A=e(r),n=0,i=A.length;n{var A,n,i,a=r(6206),o=r(4032),s=r(2674),c=r(139),g=r(9649),u=r(2205),l=r(2343),h=r(2645),I="Object already initialized",f=o.TypeError,C=o.WeakMap;if(a||u.state){var B=u.state||(u.state=new C);B.get=B.get,B.has=B.has,B.set=B.set,A=function(e,t){if(B.has(e))throw new f(I);return t.facade=e,B.set(e,t),t},n=function(e){return B.get(e)||{}},i=function(e){return B.has(e)}}else{var Q=l("state");h[Q]=!0,A=function(e,t){if(g(e,Q))throw new f(I);return t.facade=e,c(e,Q,t),t},n=function(e){return g(e,Q)?e[Q]:{}},i=function(e){return g(e,Q)}}e.exports={set:A,get:n,has:i,enforce:function(e){return i(e)?n(e):A(e,{})},getterFor:function(e){return function(t){var r;if(!s(t)||(r=n(t)).type!==e)throw new f("Incompatible receiver, "+e+" required");return r}}}},993:(e,t,r)=>{var A=r(5811),n=r(5597),i=A("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(n.Array===e||a[i]===e)}},5448:(e,t,r)=>{var A=r(9872);e.exports=Array.isArray||function(e){return"Array"===A(e)}},5415:(e,t,r)=>{var A=r(1179);e.exports=function(e){var t=A(e);return"BigInt64Array"===t||"BigUint64Array"===t}},3749:e=>{var t="object"==typeof document&&document.all;e.exports=void 0===t&&void 0!==t?function(e){return"function"==typeof e||e===t}:function(e){return"function"==typeof e}},8413:(e,t,r)=>{var A=r(2608),n=r(3455),i=r(3749),a=r(1179),o=r(8711),s=r(6906),c=function(){},g=o("Reflect","construct"),u=/^\\s*(?:class|function)\\b/,l=A(u.exec),h=!u.test(c),I=function(e){if(!i(e))return!1;try{return g(c,[],e),!0}catch(e){return!1}},f=function(e){if(!i(e))return!1;switch(a(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return h||!!l(u,s(e))}catch(e){return!0}};f.sham=!0,e.exports=!g||n((function(){var e;return I(I.call)||!I(Object)||!I((function(){e=!0}))||e}))?f:I},3007:(e,t,r)=>{var A=r(9649);e.exports=function(e){return void 0!==e&&(A(e,"value")||A(e,"writable"))}},5868:(e,t,r)=>{var A=r(3455),n=r(3749),i=/#|\\.prototype\\./,a=function(e,t){var r=s[o(e)];return r===g||r!==c&&(n(t)?A(t):!!t)},o=a.normalize=function(e){return String(e).replace(i,".").toLowerCase()},s=a.data={},c=a.NATIVE="N",g=a.POLYFILL="P";e.exports=a},2599:(e,t,r)=>{var A=r(2674),n=Math.floor;e.exports=Number.isInteger||function(e){return!A(e)&&isFinite(e)&&n(e)===e}},6021:e=>{e.exports=function(e){return null==e}},2674:(e,t,r)=>{var A=r(3749);e.exports=function(e){return"object"==typeof e?null!==e:A(e)}},4597:(e,t,r)=>{var A=r(2674);e.exports=function(e){return A(e)||null===e}},8507:e=>{e.exports=!1},6484:(e,t,r)=>{var A=r(2674),n=r(9872),i=r(5811)("match");e.exports=function(e){var t;return A(e)&&(void 0!==(t=e[i])?!!t:"RegExp"===n(e))}},2277:(e,t,r)=>{var A=r(8711),n=r(3749),i=r(6921),a=r(4752),o=Object;e.exports=a?function(e){return"symbol"==typeof e}:function(e){var t=A("Symbol");return n(t)&&i(t.prototype,o(e))}},2939:(e,t,r)=>{var A=r(3453);e.exports=function(e,t,r){for(var n,i,a=r?e:e.iterator,o=e.next;!(n=A(o,a)).done;)if(void 0!==(i=t(n.value)))return i}},1804:(e,t,r)=>{var A=r(4864),n=r(3453),i=r(7447),a=r(8055),o=r(993),s=r(7878),c=r(6921),g=r(6961),u=r(7507),l=r(5235),h=TypeError,I=function(e,t){this.stopped=e,this.result=t},f=I.prototype;e.exports=function(e,t,r){var C,B,Q,E,d,y,p,v=r&&r.that,m=!(!r||!r.AS_ENTRIES),w=!(!r||!r.IS_RECORD),b=!(!r||!r.IS_ITERATOR),k=!(!r||!r.INTERRUPTED),D=A(t,v),S=function(e){return C&&l(C,"normal",e),new I(!0,e)},F=function(e){return m?(i(e),k?D(e[0],e[1],S):D(e[0],e[1])):k?D(e,S):D(e)};if(w)C=e.iterator;else if(b)C=e;else{if(!(B=u(e)))throw new h(a(e)+" is not iterable");if(o(B)){for(Q=0,E=s(e);E>Q;Q++)if((d=F(e[Q]))&&c(f,d))return d;return new I(!1)}C=g(e,B)}for(y=w?e.next:C.next;!(p=n(y,C)).done;){try{d=F(p.value)}catch(e){l(C,"throw",e)}if("object"==typeof d&&d&&c(f,d))return d}return new I(!1)}},5235:(e,t,r)=>{var A=r(3453),n=r(7447),i=r(8622);e.exports=function(e,t,r){var a,o;n(e);try{if(!(a=i(e,"return"))){if("throw"===t)throw r;return r}a=A(a,e)}catch(e){o=!0,a=e}if("throw"===t)throw r;if(o)throw a;return n(a),r}},282:(e,t,r)=>{var A=r(2857).IteratorPrototype,n=r(5304),i=r(4004),a=r(6911),o=r(5597),s=function(){return this};e.exports=function(e,t,r,c){var g=t+" Iterator";return e.prototype=n(A,{next:i(+!c,r)}),a(e,g,!1,!0),o[g]=s,e}},2342:(e,t,r)=>{var A=r(3453),n=r(5304),i=r(139),a=r(4183),o=r(5811),s=r(8301),c=r(8622),g=r(2857).IteratorPrototype,u=r(9393),l=r(5235),h=o("toStringTag"),I="IteratorHelper",f="WrapForValidIterator",C=s.set,B=function(e){var t=s.getterFor(e?f:I);return a(n(g),{next:function(){var r=t(this);if(e)return r.nextHandler();try{var A=r.done?void 0:r.nextHandler();return u(A,r.done)}catch(e){throw r.done=!0,e}},return:function(){var r=t(this),n=r.iterator;if(r.done=!0,e){var i=c(n,"return");return i?A(i,n):u(void 0,!0)}if(r.inner)try{l(r.inner.iterator,"normal")}catch(e){return l(n,"throw",e)}return l(n,"normal"),u(void 0,!0)}})},Q=B(!0),E=B(!1);i(E,h,"Iterator Helper"),e.exports=function(e,t){var r=function(r,A){A?(A.iterator=r.iterator,A.next=r.next):A=r,A.type=t?f:I,A.nextHandler=e,A.counter=0,A.done=!1,C(this,A)};return r.prototype=t?Q:E,r}},656:(e,t,r)=>{var A=r(5366),n=r(3453),i=r(8507),a=r(2542),o=r(3749),s=r(282),c=r(2611),g=r(9415),u=r(6911),l=r(139),h=r(8552),I=r(5811),f=r(5597),C=r(2857),B=a.PROPER,Q=a.CONFIGURABLE,E=C.IteratorPrototype,d=C.BUGGY_SAFARI_ITERATORS,y=I("iterator"),p="keys",v="values",m="entries",w=function(){return this};e.exports=function(e,t,r,a,I,C,b){s(r,t,a);var k,D,S,F=function(e){if(e===I&&L)return L;if(!d&&e&&e in G)return G[e];switch(e){case p:case v:case m:return function(){return new r(this,e)}}return function(){return new r(this)}},x=t+" Iterator",R=!1,G=e.prototype,N=G[y]||G["@@iterator"]||I&&G[I],L=!d&&N||F(I),U="Array"===t&&G.entries||N;if(U&&(k=c(U.call(new e)))!==Object.prototype&&k.next&&(i||c(k)===E||(g?g(k,E):o(k[y])||h(k,y,w)),u(k,x,!0,!0),i&&(f[x]=w)),B&&I===v&&N&&N.name!==v&&(!i&&Q?l(G,"name",v):(R=!0,L=function(){return n(N,this)})),I)if(D={values:F(v),keys:C?L:F(p),entries:F(m)},b)for(S in D)(d||R||!(S in G))&&h(G,S,D[S]);else A({target:t,proto:!0,forced:d||R},D);return i&&!b||G[y]===L||h(G,y,L,{name:I}),f[t]=L,D}},4009:(e,t,r)=>{var A=r(3453),n=r(4186),i=r(7447),a=r(3447),o=r(2342),s=r(3535),c=o((function(){var e=this.iterator,t=i(A(this.next,e));if(!(this.done=!!t.done))return s(e,this.mapper,[t.value,this.counter++],!0)}));e.exports=function(e){return i(this),n(e),new c(a(this),{mapper:e})}},2857:(e,t,r)=>{var A,n,i,a=r(3455),o=r(3749),s=r(2674),c=r(5304),g=r(2611),u=r(8552),l=r(5811),h=r(8507),I=l("iterator"),f=!1;[].keys&&("next"in(i=[].keys())?(n=g(g(i)))!==Object.prototype&&(A=n):f=!0),!s(A)||a((function(){var e={};return A[I].call(e)!==e}))?A={}:h&&(A=c(A)),o(A[I])||u(A,I,(function(){return this})),e.exports={IteratorPrototype:A,BUGGY_SAFARI_ITERATORS:f}},5597:e=>{e.exports={}},7878:(e,t,r)=>{var A=r(5806);e.exports=function(e){return A(e.length)}},1147:(e,t,r)=>{var A=r(2608),n=r(3455),i=r(3749),a=r(9649),o=r(2444),s=r(2542).CONFIGURABLE,c=r(6906),g=r(8301),u=g.enforce,l=g.get,h=String,I=Object.defineProperty,f=A("".slice),C=A("".replace),B=A([].join),Q=o&&!n((function(){return 8!==I((function(){}),"length",{value:8}).length})),E=String(String).split("String"),d=e.exports=function(e,t,r){"Symbol("===f(h(t),0,7)&&(t="["+C(h(t),/^Symbol\\(([^)]*)\\).*$/,"$1")+"]"),r&&r.getter&&(t="get "+t),r&&r.setter&&(t="set "+t),(!a(e,"name")||s&&e.name!==t)&&(o?I(e,"name",{value:t,configurable:!0}):e.name=t),Q&&r&&a(r,"arity")&&e.length!==r.arity&&I(e,"length",{value:r.arity});try{r&&a(r,"constructor")&&r.constructor?o&&I(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(e){}var A=u(e);return a(A,"source")||(A.source=B(E,"string"==typeof t?t:"")),e};Function.prototype.toString=d((function(){return i(this)&&l(this).source||c(this)}),"toString")},9676:(e,t,r)=>{var A=r(550),n=Math.abs,i=2220446049250313e-31,a=1/i;e.exports=function(e,t,r,o){var s=+e,c=n(s),g=A(s);if(cr||l!=l?g*(1/0):g*l}},3505:(e,t,r)=>{var A=r(9676);e.exports=Math.fround||function(e){return A(e,1.1920928955078125e-7,34028234663852886e22,11754943508222875e-54)}},550:e=>{e.exports=Math.sign||function(e){var t=+e;return 0===t||t!=t?t:t<0?-1:1}},2789:e=>{var t=Math.ceil,r=Math.floor;e.exports=Math.trunc||function(e){var A=+e;return(A>0?r:t)(A)}},755:(e,t,r)=>{var A,n,i,a,o,s=r(4032),c=r(5725),g=r(4864),u=r(1369).set,l=r(3529),h=r(9352),I=r(9081),f=r(628),C=r(4529),B=s.MutationObserver||s.WebKitMutationObserver,Q=s.document,E=s.process,d=s.Promise,y=c("queueMicrotask");if(!y){var p=new l,v=function(){var e,t;for(C&&(e=E.domain)&&e.exit();t=p.get();)try{t()}catch(e){throw p.head&&A(),e}e&&e.enter()};h||C||f||!B||!Q?!I&&d&&d.resolve?((a=d.resolve(void 0)).constructor=d,o=g(a.then,a),A=function(){o(v)}):C?A=function(){E.nextTick(v)}:(u=g(u,s),A=function(){u(v)}):(n=!0,i=Q.createTextNode(""),new B(v).observe(i,{characterData:!0}),A=function(){i.data=n=!n}),y=function(e){p.head||A(),p.add(e)}}e.exports=y},9371:(e,t,r)=>{var A=r(4186),n=TypeError,i=function(e){var t,r;this.promise=new e((function(e,A){if(void 0!==t||void 0!==r)throw new n("Bad Promise constructor");t=e,r=A})),this.resolve=A(t),this.reject=A(r)};e.exports.f=function(e){return new i(e)}},8363:(e,t,r)=>{var A=r(687);e.exports=function(e,t){return void 0===e?arguments.length<2?"":t:A(e)}},3631:(e,t,r)=>{var A=r(6484),n=TypeError;e.exports=function(e){if(A(e))throw new n("The method doesn't accept regular expressions");return e}},8069:(e,t,r)=>{var A=r(2444),n=r(2608),i=r(3453),a=r(3455),o=r(496),s=r(6005),c=r(9221),g=r(4165),u=r(9455),l=Object.assign,h=Object.defineProperty,I=n([].concat);e.exports=!l||a((function(){if(A&&1!==l({b:1},l(h({},"a",{enumerable:!0,get:function(){h(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},r=Symbol("assign detection"),n="abcdefghijklmnopqrst";return e[r]=7,n.split("").forEach((function(e){t[e]=e})),7!==l({},e)[r]||o(l({},t)).join("")!==n}))?function(e,t){for(var r=g(e),n=arguments.length,a=1,l=s.f,h=c.f;n>a;)for(var f,C=u(arguments[a++]),B=l?I(o(C),l(C)):o(C),Q=B.length,E=0;Q>E;)f=B[E++],A&&!i(h,C,f)||(r[f]=C[f]);return r}:l},5304:(e,t,r)=>{var A,n=r(7447),i=r(9217),a=r(5175),o=r(2645),s=r(3085),c=r(5751),g=r(2343),u="prototype",l="script",h=g("IE_PROTO"),I=function(){},f=function(e){return"<"+l+">"+e+""},C=function(e){e.write(f("")),e.close();var t=e.parentWindow.Object;return e=null,t},B=function(){try{A=new ActiveXObject("htmlfile")}catch(e){}var e,t,r;B="undefined"!=typeof document?document.domain&&A?C(A):(t=c("iframe"),r="java"+l+":",t.style.display="none",s.appendChild(t),t.src=String(r),(e=t.contentWindow.document).open(),e.write(f("document.F=Object")),e.close(),e.F):C(A);for(var n=a.length;n--;)delete B[u][a[n]];return B()};o[h]=!0,e.exports=Object.create||function(e,t){var r;return null!==e?(I[u]=n(e),r=new I,I[u]=null,r[h]=e):r=B(),void 0===t?r:i.f(r,t)}},9217:(e,t,r)=>{var A=r(2444),n=r(782),i=r(1601),a=r(7447),o=r(3637),s=r(496);t.f=A&&!n?Object.defineProperties:function(e,t){a(e);for(var r,A=o(t),n=s(t),c=n.length,g=0;c>g;)i.f(e,r=n[g++],A[r]);return e}},1601:(e,t,r)=>{var A=r(2444),n=r(8829),i=r(782),a=r(7447),o=r(6201),s=TypeError,c=Object.defineProperty,g=Object.getOwnPropertyDescriptor,u="enumerable",l="configurable",h="writable";t.f=A?i?function(e,t,r){if(a(e),t=o(t),a(r),"function"==typeof e&&"prototype"===t&&"value"in r&&h in r&&!r[h]){var A=g(e,t);A&&A[h]&&(e[t]=r.value,r={configurable:l in r?r[l]:A[l],enumerable:u in r?r[u]:A[u],writable:!1})}return c(e,t,r)}:c:function(e,t,r){if(a(e),t=o(t),a(r),n)try{return c(e,t,r)}catch(e){}if("get"in r||"set"in r)throw new s("Accessors not supported");return"value"in r&&(e[t]=r.value),e}},1139:(e,t,r)=>{var A=r(2444),n=r(3453),i=r(9221),a=r(4004),o=r(3637),s=r(6201),c=r(9649),g=r(8829),u=Object.getOwnPropertyDescriptor;t.f=A?u:function(e,t){if(e=o(e),t=s(t),g)try{return u(e,t)}catch(e){}if(c(e,t))return a(!n(i.f,e,t),e[t])}},6442:(e,t,r)=>{var A=r(9872),n=r(3637),i=r(3408).f,a=r(4224),o="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return o&&"Window"===A(e)?function(e){try{return i(e)}catch(e){return a(o)}}(e):i(n(e))}},3408:(e,t,r)=>{var A=r(2468),n=r(5175).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return A(e,n)}},6005:(e,t)=>{t.f=Object.getOwnPropertySymbols},2611:(e,t,r)=>{var A=r(9649),n=r(3749),i=r(4165),a=r(2343),o=r(5139),s=a("IE_PROTO"),c=Object,g=c.prototype;e.exports=o?c.getPrototypeOf:function(e){var t=i(e);if(A(t,s))return t[s];var r=t.constructor;return n(r)&&t instanceof r?r.prototype:t instanceof c?g:null}},8812:(e,t,r)=>{var A=r(3455),n=r(2674),i=r(9872),a=r(7060),o=Object.isExtensible,s=A((function(){o(1)}));e.exports=s||a?function(e){return!!n(e)&&(!a||"ArrayBuffer"!==i(e))&&(!o||o(e))}:o},6921:(e,t,r)=>{var A=r(2608);e.exports=A({}.isPrototypeOf)},2468:(e,t,r)=>{var A=r(2608),n=r(9649),i=r(3637),a=r(7921).indexOf,o=r(2645),s=A([].push);e.exports=function(e,t){var r,A=i(e),c=0,g=[];for(r in A)!n(o,r)&&n(A,r)&&s(g,r);for(;t.length>c;)n(A,r=t[c++])&&(~a(g,r)||s(g,r));return g}},496:(e,t,r)=>{var A=r(2468),n=r(5175);e.exports=Object.keys||function(e){return A(e,n)}},9221:(e,t)=>{var r={}.propertyIsEnumerable,A=Object.getOwnPropertyDescriptor,n=A&&!r.call({1:2},1);t.f=n?function(e){var t=A(this,e);return!!t&&t.enumerable}:r},9415:(e,t,r)=>{var A=r(5026),n=r(2674),i=r(7222),a=r(7330);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,r={};try{(e=A(Object.prototype,"__proto__","set"))(r,[]),t=r instanceof Array}catch(e){}return function(r,A){return i(r),a(A),n(r)?(t?e(r,A):r.__proto__=A,r):r}}():void 0)},8885:(e,t,r)=>{var A=r(2444),n=r(3455),i=r(2608),a=r(2611),o=r(496),s=r(3637),c=i(r(9221).f),g=i([].push),u=A&&n((function(){var e=Object.create(null);return e[2]=2,!c(e,2)})),l=function(e){return function(t){for(var r,n=s(t),i=o(n),l=u&&null===a(n),h=i.length,I=0,f=[];h>I;)r=i[I++],A&&!(l?r in n:c(n,r))||g(f,e?[r,n[r]]:n[r]);return f}};e.exports={entries:l(!0),values:l(!1)}},3003:(e,t,r)=>{var A=r(3724),n=r(1179);e.exports=A?{}.toString:function(){return"[object "+n(this)+"]"}},3118:(e,t,r)=>{var A=r(3453),n=r(3749),i=r(2674),a=TypeError;e.exports=function(e,t){var r,o;if("string"===t&&n(r=e.toString)&&!i(o=A(r,e)))return o;if(n(r=e.valueOf)&&!i(o=A(r,e)))return o;if("string"!==t&&n(r=e.toString)&&!i(o=A(r,e)))return o;throw new a("Can't convert object to primitive value")}},2919:(e,t,r)=>{var A=r(8711),n=r(2608),i=r(3408),a=r(6005),o=r(7447),s=n([].concat);e.exports=A("Reflect","ownKeys")||function(e){var t=i.f(o(e)),r=a.f;return r?s(t,r(e)):t}},8799:(e,t,r)=>{var A=r(4032);e.exports=A},6703:e=>{e.exports=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}}},9492:(e,t,r)=>{var A=r(4032),n=r(5318),i=r(3749),a=r(5868),o=r(6906),s=r(5811),c=r(7351),g=r(8507),u=r(6415),l=n&&n.prototype,h=s("species"),I=!1,f=i(A.PromiseRejectionEvent),C=a("Promise",(function(){var e=o(n),t=e!==String(n);if(!t&&66===u)return!0;if(g&&(!l.catch||!l.finally))return!0;if(!u||u<51||!/native code/.test(e)){var r=new n((function(e){e(1)})),A=function(e){e((function(){}),(function(){}))};if((r.constructor={})[h]=A,!(I=r.then((function(){}))instanceof A))return!0}return!(t||"BROWSER"!==c&&"DENO"!==c||f)}));e.exports={CONSTRUCTOR:C,REJECTION_EVENT:f,SUBCLASSING:I}},5318:(e,t,r)=>{var A=r(4032);e.exports=A.Promise},1774:(e,t,r)=>{var A=r(7447),n=r(2674),i=r(9371);e.exports=function(e,t){if(A(e),n(t)&&t.constructor===e)return t;var r=i.f(e);return(0,r.resolve)(t),r.promise}},2041:(e,t,r)=>{var A=r(5318),n=r(4348),i=r(9492).CONSTRUCTOR;e.exports=i||!n((function(e){A.all(e).then(void 0,(function(){}))}))},2848:(e,t,r)=>{var A=r(1601).f;e.exports=function(e,t,r){r in e||A(e,r,{configurable:!0,get:function(){return t[r]},set:function(e){t[r]=e}})}},3529:e=>{var t=function(){this.head=null,this.tail=null};t.prototype={add:function(e){var t={item:e,next:null},r=this.tail;r?r.next=t:this.head=t,this.tail=t},get:function(){var e=this.head;if(e)return null===(this.head=e.next)&&(this.tail=null),e.item}},e.exports=t},4410:(e,t,r)=>{var A=r(3453),n=r(7447),i=r(3749),a=r(9872),o=r(9867),s=TypeError;e.exports=function(e,t){var r=e.exec;if(i(r)){var c=A(r,e,t);return null!==c&&n(c),c}if("RegExp"===a(e))return A(o,e,t);throw new s("RegExp#exec called on incompatible receiver")}},9867:(e,t,r)=>{var A,n,i=r(3453),a=r(2608),o=r(687),s=r(747),c=r(1837),g=r(4593),u=r(5304),l=r(8301).get,h=r(3651),I=r(9502),f=g("native-string-replace",String.prototype.replace),C=RegExp.prototype.exec,B=C,Q=a("".charAt),E=a("".indexOf),d=a("".replace),y=a("".slice),p=(n=/b*/g,i(C,A=/a/,"a"),i(C,n,"a"),0!==A.lastIndex||0!==n.lastIndex),v=c.BROKEN_CARET,m=void 0!==/()??/.exec("")[1];(p||m||v||h||I)&&(B=function(e){var t,r,A,n,a,c,g,h=this,I=l(h),w=o(e),b=I.raw;if(b)return b.lastIndex=h.lastIndex,t=i(B,b,w),h.lastIndex=b.lastIndex,t;var k=I.groups,D=v&&h.sticky,S=i(s,h),F=h.source,x=0,R=w;if(D&&(S=d(S,"y",""),-1===E(S,"g")&&(S+="g"),R=y(w,h.lastIndex),h.lastIndex>0&&(!h.multiline||h.multiline&&"\\n"!==Q(w,h.lastIndex-1))&&(F="(?: "+F+")",R=" "+R,x++),r=new RegExp("^(?:"+F+")",S)),m&&(r=new RegExp("^"+F+"$(?!\\\\s)",S)),p&&(A=h.lastIndex),n=i(C,D?r:h,R),D?n?(n.input=y(n.input,x),n[0]=y(n[0],x),n.index=h.lastIndex,h.lastIndex+=n[0].length):h.lastIndex=0:p&&n&&(h.lastIndex=h.global?n.index+n[0].length:A),m&&n&&n.length>1&&i(f,n[0],r,(function(){for(a=1;a{var A=r(7447);e.exports=function(){var e=A(this),t="";return e.hasIndices&&(t+="d"),e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.unicodeSets&&(t+="v"),e.sticky&&(t+="y"),t}},4554:(e,t,r)=>{var A=r(3453),n=r(9649),i=r(6921),a=r(747),o=RegExp.prototype;e.exports=function(e){var t=e.flags;return void 0!==t||"flags"in o||n(e,"flags")||!i(o,e)?t:A(a,e)}},1837:(e,t,r)=>{var A=r(3455),n=r(4032).RegExp,i=A((function(){var e=n("a","y");return e.lastIndex=2,null!==e.exec("abcd")})),a=i||A((function(){return!n("a","y").sticky})),o=i||A((function(){var e=n("^r","gy");return e.lastIndex=2,null!==e.exec("str")}));e.exports={BROKEN_CARET:o,MISSED_STICKY:a,UNSUPPORTED_Y:i}},3651:(e,t,r)=>{var A=r(3455),n=r(4032).RegExp;e.exports=A((function(){var e=n(".","s");return!(e.dotAll&&e.test("\\n")&&"s"===e.flags)}))},9502:(e,t,r)=>{var A=r(3455),n=r(4032).RegExp;e.exports=A((function(){var e=n("(?b)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$c")}))},7222:(e,t,r)=>{var A=r(6021),n=TypeError;e.exports=function(e){if(A(e))throw new n("Can't call method on "+e);return e}},5725:(e,t,r)=>{var A=r(4032),n=r(2444),i=Object.getOwnPropertyDescriptor;e.exports=function(e){if(!n)return A[e];var t=i(A,e);return t&&t.value}},8550:(e,t,r)=>{var A=r(418),n=r(5605),i=A.Set,a=A.add;e.exports=function(e){var t=new i;return n(e,(function(e){a(t,e)})),t}},4656:(e,t,r)=>{var A=r(4376),n=r(418),i=r(8550),a=r(82),o=r(3885),s=r(5605),c=r(2939),g=n.has,u=n.remove;e.exports=function(e){var t=A(this),r=o(e),n=i(t);return a(t)<=r.size?s(t,(function(e){r.includes(e)&&u(n,e)})):c(r.getIterator(),(function(e){g(t,e)&&u(n,e)})),n}},418:(e,t,r)=>{var A=r(2608),n=Set.prototype;e.exports={Set,add:A(n.add),has:A(n.has),remove:A(n.delete),proto:n}},2446:(e,t,r)=>{var A=r(4376),n=r(418),i=r(82),a=r(3885),o=r(5605),s=r(2939),c=n.Set,g=n.add,u=n.has;e.exports=function(e){var t=A(this),r=a(e),n=new c;return i(t)>r.size?s(r.getIterator(),(function(e){u(t,e)&&g(n,e)})):o(t,(function(e){r.includes(e)&&g(n,e)})),n}},4545:(e,t,r)=>{var A=r(4376),n=r(418).has,i=r(82),a=r(3885),o=r(5605),s=r(2939),c=r(5235);e.exports=function(e){var t=A(this),r=a(e);if(i(t)<=r.size)return!1!==o(t,(function(e){if(r.includes(e))return!1}),!0);var g=r.getIterator();return!1!==s(g,(function(e){if(n(t,e))return c(g,"normal",!1)}))}},7918:(e,t,r)=>{var A=r(4376),n=r(82),i=r(5605),a=r(3885);e.exports=function(e){var t=A(this),r=a(e);return!(n(t)>r.size)&&!1!==i(t,(function(e){if(!r.includes(e))return!1}),!0)}},6111:(e,t,r)=>{var A=r(4376),n=r(418).has,i=r(82),a=r(3885),o=r(2939),s=r(5235);e.exports=function(e){var t=A(this),r=a(e);if(i(t){var A=r(2608),n=r(2939),i=r(418),a=i.Set,o=i.proto,s=A(o.forEach),c=A(o.keys),g=c(new a).next;e.exports=function(e,t,r){return r?n({iterator:c(e),next:g},t):s(e,t)}},1716:(e,t,r)=>{var A=r(8711),n=function(e){return{size:e,has:function(){return!1},keys:function(){return{next:function(){return{done:!0}}}}}};e.exports=function(e){var t=A("Set");try{(new t)[e](n(0));try{return(new t)[e](n(-1)),!1}catch(e){return!0}}catch(e){return!1}}},82:(e,t,r)=>{var A=r(5026),n=r(418);e.exports=A(n.proto,"size","get")||function(e){return e.size}},5409:(e,t,r)=>{var A=r(8711),n=r(8986),i=r(5811),a=r(2444),o=i("species");e.exports=function(e){var t=A(e);a&&t&&!t[o]&&n(t,o,{configurable:!0,get:function(){return this}})}},4498:(e,t,r)=>{var A=r(4376),n=r(418),i=r(8550),a=r(3885),o=r(2939),s=n.add,c=n.has,g=n.remove;e.exports=function(e){var t=A(this),r=a(e).getIterator(),n=i(t);return o(r,(function(e){c(t,e)?g(n,e):s(n,e)})),n}},6911:(e,t,r)=>{var A=r(1601).f,n=r(9649),i=r(5811)("toStringTag");e.exports=function(e,t,r){e&&!r&&(e=e.prototype),e&&!n(e,i)&&A(e,i,{configurable:!0,value:t})}},9500:(e,t,r)=>{var A=r(4376),n=r(418).add,i=r(8550),a=r(3885),o=r(2939);e.exports=function(e){var t=A(this),r=a(e).getIterator(),s=i(t);return o(r,(function(e){n(s,e)})),s}},2343:(e,t,r)=>{var A=r(4593),n=r(5936),i=A("keys");e.exports=function(e){return i[e]||(i[e]=n(e))}},2205:(e,t,r)=>{var A=r(8507),n=r(4032),i=r(5801),a="__core-js_shared__",o=e.exports=n[a]||i(a,{});(o.versions||(o.versions=[])).push({version:"3.38.1",mode:A?"pure":"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE",source:"https://github.com/zloirock/core-js"})},4593:(e,t,r)=>{var A=r(2205);e.exports=function(e,t){return A[e]||(A[e]=t||{})}},1365:(e,t,r)=>{var A=r(7447),n=r(9052),i=r(6021),a=r(5811)("species");e.exports=function(e,t){var r,o=A(e).constructor;return void 0===o||i(r=A(o)[a])?t:n(r)}},6903:(e,t,r)=>{var A=r(2608),n=r(1211),i=r(687),a=r(7222),o=A("".charAt),s=A("".charCodeAt),c=A("".slice),g=function(e){return function(t,r){var A,g,u=i(a(t)),l=n(r),h=u.length;return l<0||l>=h?e?"":void 0:(A=s(u,l))<55296||A>56319||l+1===h||(g=s(u,l+1))<56320||g>57343?e?o(u,l):A:e?c(u,l,l+2):g-56320+(A-55296<<10)+65536}};e.exports={codeAt:g(!1),charAt:g(!0)}},4903:(e,t,r)=>{var A=r(7607);e.exports=/Version\\/10(?:\\.\\d+){1,2}(?: [\\w./]+)?(?: Mobile\\/\\w+)? Safari\\//.test(A)},6437:(e,t,r)=>{var A=r(2608),n=r(5806),i=r(687),a=r(6605),o=r(7222),s=A(a),c=A("".slice),g=Math.ceil,u=function(e){return function(t,r,A){var a,u,l=i(o(t)),h=n(r),I=l.length,f=void 0===A?" ":i(A);return h<=I||""===f?l:((u=s(f,g((a=h-I)/f.length))).length>a&&(u=c(u,0,a)),e?l+u:u+l)}};e.exports={start:u(!1),end:u(!0)}},5141:(e,t,r)=>{var A=r(2608),n=2147483647,i=/[^\\0-\\u007E]/,a=/[.\\u3002\\uFF0E\\uFF61]/g,o="Overflow: input needs wider integers to process",s=RangeError,c=A(a.exec),g=Math.floor,u=String.fromCharCode,l=A("".charCodeAt),h=A([].join),I=A([].push),f=A("".replace),C=A("".split),B=A("".toLowerCase),Q=function(e){return e+22+75*(e<26)},E=function(e,t,r){var A=0;for(e=r?g(e/700):e>>1,e+=g(e/t);e>455;)e=g(e/35),A+=36;return g(A+36*e/(e+38))},d=function(e){var t=[];e=function(e){for(var t=[],r=0,A=e.length;r=55296&&n<=56319&&r=a&&Ag((n-c)/y))throw new s(o);for(c+=(d-a)*y,a=d,r=0;rn)throw new s(o);if(A===a){for(var p=c,v=36;;){var m=v<=f?1:v>=f+26?26:v-f;if(p{var A=r(1211),n=r(687),i=r(7222),a=RangeError;e.exports=function(e){var t=n(i(this)),r="",o=A(e);if(o<0||o===1/0)throw new a("Wrong number of repetitions");for(;o>0;(o>>>=1)&&(t+=t))1&o&&(r+=t);return r}},2882:(e,t,r)=>{var A=r(9418).end,n=r(3794);e.exports=n("trimEnd")?function(){return A(this)}:"".trimEnd},3794:(e,t,r)=>{var A=r(2542).PROPER,n=r(3455),i=r(2284);e.exports=function(e){return n((function(){return!!i[e]()||"​…᠎"!=="​…᠎"[e]()||A&&i[e].name!==e}))}},9418:(e,t,r)=>{var A=r(2608),n=r(7222),i=r(687),a=r(2284),o=A("".replace),s=RegExp("^["+a+"]+"),c=RegExp("(^|[^"+a+"])["+a+"]+$"),g=function(e){return function(t){var r=i(n(t));return 1&e&&(r=o(r,s,"")),2&e&&(r=o(r,c,"$1")),r}};e.exports={start:g(1),end:g(2),trim:g(3)}},6572:(e,t,r)=>{var A=r(4032),n=r(3455),i=r(6415),a=r(7351),o=A.structuredClone;e.exports=!!o&&!n((function(){if("DENO"===a&&i>92||"NODE"===a&&i>94||"BROWSER"===a&&i>97)return!1;var e=new ArrayBuffer(8),t=o(e,{transfer:[e]});return 0!==e.byteLength||8!==t.byteLength}))},6943:(e,t,r)=>{var A=r(6415),n=r(3455),i=r(4032).String;e.exports=!!Object.getOwnPropertySymbols&&!n((function(){var e=Symbol("symbol detection");return!i(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&A&&A<41}))},3042:(e,t,r)=>{var A=r(3453),n=r(8711),i=r(5811),a=r(8552);e.exports=function(){var e=n("Symbol"),t=e&&e.prototype,r=t&&t.valueOf,o=i("toPrimitive");t&&!t[o]&&a(t,o,(function(e){return A(r,this)}),{arity:1})}},8592:(e,t,r)=>{var A=r(6943);e.exports=A&&!!Symbol.for&&!!Symbol.keyFor},1369:(e,t,r)=>{var A,n,i,a,o=r(4032),s=r(3881),c=r(4864),g=r(3749),u=r(9649),l=r(3455),h=r(3085),I=r(4224),f=r(5751),C=r(7900),B=r(9352),Q=r(4529),E=o.setImmediate,d=o.clearImmediate,y=o.process,p=o.Dispatch,v=o.Function,m=o.MessageChannel,w=o.String,b=0,k={},D="onreadystatechange";l((function(){A=o.location}));var S=function(e){if(u(k,e)){var t=k[e];delete k[e],t()}},F=function(e){return function(){S(e)}},x=function(e){S(e.data)},R=function(e){o.postMessage(w(e),A.protocol+"//"+A.host)};E&&d||(E=function(e){C(arguments.length,1);var t=g(e)?e:v(e),r=I(arguments,1);return k[++b]=function(){s(t,void 0,r)},n(b),b},d=function(e){delete k[e]},Q?n=function(e){y.nextTick(F(e))}:p&&p.now?n=function(e){p.now(F(e))}:m&&!B?(a=(i=new m).port2,i.port1.onmessage=x,n=c(a.postMessage,a)):o.addEventListener&&g(o.postMessage)&&!o.importScripts&&A&&"file:"!==A.protocol&&!l(R)?(n=R,o.addEventListener("message",x,!1)):n=D in f("script")?function(e){h.appendChild(f("script"))[D]=function(){h.removeChild(this),S(e)}}:function(e){setTimeout(F(e),0)}),e.exports={set:E,clear:d}},9002:(e,t,r)=>{var A=r(1211),n=Math.max,i=Math.min;e.exports=function(e,t){var r=A(e);return r<0?n(r+t,0):i(r,t)}},1198:(e,t,r)=>{var A=r(8921),n=TypeError;e.exports=function(e){var t=A(e,"number");if("number"==typeof t)throw new n("Can't convert number to bigint");return BigInt(t)}},9088:(e,t,r)=>{var A=r(1211),n=r(5806),i=RangeError;e.exports=function(e){if(void 0===e)return 0;var t=A(e),r=n(t);if(t!==r)throw new i("Wrong length or index");return r}},3637:(e,t,r)=>{var A=r(9455),n=r(7222);e.exports=function(e){return A(n(e))}},1211:(e,t,r)=>{var A=r(2789);e.exports=function(e){var t=+e;return t!=t||0===t?0:A(t)}},5806:(e,t,r)=>{var A=r(1211),n=Math.min;e.exports=function(e){var t=A(e);return t>0?n(t,9007199254740991):0}},4165:(e,t,r)=>{var A=r(7222),n=Object;e.exports=function(e){return n(A(e))}},8402:(e,t,r)=>{var A=r(5590),n=RangeError;e.exports=function(e,t){var r=A(e);if(r%t)throw new n("Wrong offset");return r}},5590:(e,t,r)=>{var A=r(1211),n=RangeError;e.exports=function(e){var t=A(e);if(t<0)throw new n("The argument can't be less than 0");return t}},8921:(e,t,r)=>{var A=r(3453),n=r(2674),i=r(2277),a=r(8622),o=r(3118),s=r(5811),c=TypeError,g=s("toPrimitive");e.exports=function(e,t){if(!n(e)||i(e))return e;var r,s=a(e,g);if(s){if(void 0===t&&(t="default"),r=A(s,e,t),!n(r)||i(r))return r;throw new c("Can't convert object to primitive value")}return void 0===t&&(t="number"),o(e,t)}},6201:(e,t,r)=>{var A=r(8921),n=r(2277);e.exports=function(e){var t=A(e,"string");return n(t)?t:t+""}},3724:(e,t,r)=>{var A={};A[r(5811)("toStringTag")]="z",e.exports="[object z]"===String(A)},687:(e,t,r)=>{var A=r(1179),n=String;e.exports=function(e){if("Symbol"===A(e))throw new TypeError("Cannot convert a Symbol value to a string");return n(e)}},5215:e=>{var t=Math.round;e.exports=function(e){var r=t(e);return r<0?0:r>255?255:255&r}},8055:e=>{var t=String;e.exports=function(e){try{return t(e)}catch(e){return"Object"}}},8975:(e,t,r)=>{var A=r(5366),n=r(4032),i=r(3453),a=r(2444),o=r(949),s=r(4356),c=r(7226),g=r(3399),u=r(4004),l=r(139),h=r(2599),I=r(5806),f=r(9088),C=r(8402),B=r(5215),Q=r(6201),E=r(9649),d=r(1179),y=r(2674),p=r(2277),v=r(5304),m=r(6921),w=r(9415),b=r(3408).f,k=r(2291),D=r(5645).forEach,S=r(5409),F=r(8986),x=r(1601),R=r(1139),G=r(7434),N=r(8301),L=r(3951),U=N.get,M=N.set,J=N.enforce,H=x.f,Y=R.f,P=n.RangeError,O=c.ArrayBuffer,K=O.prototype,T=c.DataView,q=s.NATIVE_ARRAY_BUFFER_VIEWS,j=s.TYPED_ARRAY_TAG,W=s.TypedArray,Z=s.TypedArrayPrototype,_=s.isTypedArray,X="BYTES_PER_ELEMENT",V="Wrong length",z=function(e,t){F(e,t,{configurable:!0,get:function(){return U(this)[t]}})},$=function(e){var t;return m(K,e)||"ArrayBuffer"===(t=d(e))||"SharedArrayBuffer"===t},ee=function(e,t){return _(e)&&!p(t)&&t in e&&h(+t)&&t>=0},te=function(e,t){return t=Q(t),ee(e,t)?u(2,e[t]):Y(e,t)},re=function(e,t,r){return t=Q(t),!(ee(e,t)&&y(r)&&E(r,"value"))||E(r,"get")||E(r,"set")||r.configurable||E(r,"writable")&&!r.writable||E(r,"enumerable")&&!r.enumerable?H(e,t,r):(e[t]=r.value,e)};a?(q||(R.f=te,x.f=re,z(Z,"buffer"),z(Z,"byteOffset"),z(Z,"byteLength"),z(Z,"length")),A({target:"Object",stat:!0,forced:!q},{getOwnPropertyDescriptor:te,defineProperty:re}),e.exports=function(e,t,r){var a=e.match(/\\d+/)[0]/8,s=e+(r?"Clamped":"")+"Array",c="get"+e,u="set"+e,h=n[s],Q=h,E=Q&&Q.prototype,d={},p=function(e,t){H(e,t,{get:function(){return function(e,t){var r=U(e);return r.view[c](t*a+r.byteOffset,!0)}(this,t)},set:function(e){return function(e,t,A){var n=U(e);n.view[u](t*a+n.byteOffset,r?B(A):A,!0)}(this,t,e)},enumerable:!0})};q?o&&(Q=t((function(e,t,r,A){return g(e,E),L(y(t)?$(t)?void 0!==A?new h(t,C(r,a),A):void 0!==r?new h(t,C(r,a)):new h(t):_(t)?G(Q,t):i(k,Q,t):new h(f(t)),e,Q)})),w&&w(Q,W),D(b(h),(function(e){e in Q||l(Q,e,h[e])})),Q.prototype=E):(Q=t((function(e,t,r,A){g(e,E);var n,o,s,c=0,u=0;if(y(t)){if(!$(t))return _(t)?G(Q,t):i(k,Q,t);n=t,u=C(r,a);var l=t.byteLength;if(void 0===A){if(l%a)throw new P(V);if((o=l-u)<0)throw new P(V)}else if((o=I(A)*a)+u>l)throw new P(V);s=o/a}else s=f(t),n=new O(o=s*a);for(M(e,{buffer:n,byteOffset:u,byteLength:o,length:s,view:new T(n)});c{var A=r(4032),n=r(3455),i=r(4348),a=r(4356).NATIVE_ARRAY_BUFFER_VIEWS,o=A.ArrayBuffer,s=A.Int8Array;e.exports=!a||!n((function(){s(1)}))||!n((function(){new s(-1)}))||!i((function(e){new s,new s(null),new s(1.5),new s(e)}),!0)||n((function(){return 1!==new s(new o(2),1,void 0).length}))},85:(e,t,r)=>{var A=r(7434),n=r(580);e.exports=function(e,t){return A(n(e),t)}},2291:(e,t,r)=>{var A=r(4864),n=r(3453),i=r(9052),a=r(4165),o=r(7878),s=r(6961),c=r(7507),g=r(993),u=r(5415),l=r(4356).aTypedArrayConstructor,h=r(1198);e.exports=function(e){var t,r,I,f,C,B,Q,E,d=i(this),y=a(e),p=arguments.length,v=p>1?arguments[1]:void 0,m=void 0!==v,w=c(y);if(w&&!g(w))for(E=(Q=s(y,w)).next,y=[];!(B=n(E,Q)).done;)y.push(B.value);for(m&&p>2&&(v=A(v,arguments[2])),r=o(y),I=new(l(d))(r),f=u(I),t=0;r>t;t++)C=m?v(y[t],t):y[t],I[t]=f?h(C):+C;return I}},580:(e,t,r)=>{var A=r(4356),n=r(1365),i=A.aTypedArrayConstructor,a=A.getTypedArrayConstructor;e.exports=function(e){return i(n(e,a(e)))}},5936:(e,t,r)=>{var A=r(2608),n=0,i=Math.random(),a=A(1..toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+a(++n+i,36)}},8200:(e,t,r)=>{var A=r(3455),n=r(5811),i=r(2444),a=r(8507),o=n("iterator");e.exports=!A((function(){var e=new URL("b?a=1&b=2&c=3","https://a"),t=e.searchParams,r=new URLSearchParams("a=1&a=2&b=3"),A="";return e.pathname="c%20d",t.forEach((function(e,r){t.delete("b"),A+=r+e})),r.delete("a",2),r.delete("b",void 0),a&&(!e.toJSON||!r.has("a",1)||r.has("a",2)||!r.has("a",void 0)||r.has("b"))||!t.size&&(a||!i)||!t.sort||"https://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[o]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("https://тест").host||"#%D0%B1"!==new URL("https://a#б").hash||"a1c3"!==A||"x"!==new URL("https://x",void 0).host}))},4752:(e,t,r)=>{var A=r(6943);e.exports=A&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},782:(e,t,r)=>{var A=r(2444),n=r(3455);e.exports=A&&n((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},7900:e=>{var t=TypeError;e.exports=function(e,r){if(e{var A=r(4032),n=r(3749),i=A.WeakMap;e.exports=n(i)&&/native code/.test(String(i))},5343:(e,t,r)=>{var A=r(8799),n=r(9649),i=r(4559),a=r(1601).f;e.exports=function(e){var t=A.Symbol||(A.Symbol={});n(t,e)||a(t,e,{value:i.f(e)})}},4559:(e,t,r)=>{var A=r(5811);t.f=A},5811:(e,t,r)=>{var A=r(4032),n=r(4593),i=r(9649),a=r(5936),o=r(6943),s=r(4752),c=A.Symbol,g=n("wks"),u=s?c.for||c:c&&c.withoutSetter||a;e.exports=function(e){return i(g,e)||(g[e]=o&&i(c,e)?c[e]:u("Symbol."+e)),g[e]}},2284:e=>{e.exports="\\t\\n\\v\\f\\r                 \\u2028\\u2029\\ufeff"},9257:(e,t,r)=>{var A=r(8711),n=r(9649),i=r(139),a=r(6921),o=r(9415),s=r(2924),c=r(2848),g=r(3951),u=r(8363),l=r(2483),h=r(4171),I=r(2444),f=r(8507);e.exports=function(e,t,r,C){var B="stackTraceLimit",Q=C?2:1,E=e.split("."),d=E[E.length-1],y=A.apply(null,E);if(y){var p=y.prototype;if(!f&&n(p,"cause")&&delete p.cause,!r)return y;var v=A("Error"),m=t((function(e,t){var r=u(C?t:e,void 0),A=C?new y(e):new y;return void 0!==r&&i(A,"message",r),h(A,m,A.stack,2),this&&a(p,this)&&g(A,this,m),arguments.length>Q&&l(A,arguments[Q]),A}));if(m.prototype=p,"Error"!==d?o?o(m,v):s(m,v,{name:!0}):I&&B in y&&(c(m,y,B),c(m,y,"prepareStackTrace")),s(m,y),!f)try{p.name!==d&&i(p,"name",d),p.constructor=m}catch(e){}return m}}},5015:(e,t,r)=>{var A=r(5366),n=r(4032),i=r(7226),a=r(5409),o="ArrayBuffer",s=i[o];A({global:!0,constructor:!0,forced:n[o]!==s},{ArrayBuffer:s}),a(o)},9261:(e,t,r)=>{var A=r(2444),n=r(8986),i=r(8102),a=ArrayBuffer.prototype;A&&!("detached"in a)&&n(a,"detached",{configurable:!0,get:function(){return i(this)}})},6209:(e,t,r)=>{var A=r(5366),n=r(2116),i=r(3455),a=r(7226),o=r(7447),s=r(9002),c=r(5806),g=r(1365),u=a.ArrayBuffer,l=a.DataView,h=l.prototype,I=n(u.prototype.slice),f=n(h.getUint8),C=n(h.setUint8);A({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:i((function(){return!new u(2).slice(1,void 0).byteLength}))},{slice:function(e,t){if(I&&void 0===t)return I(o(this),e);for(var r=o(this).byteLength,A=s(e,r),n=s(void 0===t?r:t,r),i=new(g(this,u))(c(n-A)),a=new l(this),h=new l(i),B=0;A{var A=r(5366),n=r(4676);n&&A({target:"ArrayBuffer",proto:!0},{transferToFixedLength:function(){return n(this,arguments.length?arguments[0]:void 0,!1)}})},3700:(e,t,r)=>{var A=r(5366),n=r(4676);n&&A({target:"ArrayBuffer",proto:!0},{transfer:function(){return n(this,arguments.length?arguments[0]:void 0,!0)}})},6347:(e,t,r)=>{var A=r(5366),n=r(4165),i=r(7878),a=r(1211),o=r(1458);A({target:"Array",proto:!0},{at:function(e){var t=n(this),r=i(t),A=a(e),o=A>=0?A:r+A;return o<0||o>=r?void 0:t[o]}}),o("at")},3234:(e,t,r)=>{var A=r(5366),n=r(3455),i=r(5448),a=r(2674),o=r(4165),s=r(7878),c=r(9573),g=r(3552),u=r(1453),l=r(9077),h=r(5811),I=r(6415),f=h("isConcatSpreadable"),C=I>=51||!n((function(){var e=[];return e[f]=!1,e.concat()[0]!==e})),B=function(e){if(!a(e))return!1;var t=e[f];return void 0!==t?!!t:i(e)};A({target:"Array",proto:!0,arity:1,forced:!C||!l("concat")},{concat:function(e){var t,r,A,n,i,a=o(this),l=u(a,0),h=0;for(t=-1,A=arguments.length;t{var A=r(5366),n=r(5645).filter;A({target:"Array",proto:!0,forced:!r(9077)("filter")},{filter:function(e){return n(this,e,arguments.length>1?arguments[1]:void 0)}})},6497:(e,t,r)=>{var A=r(5366),n=r(2851),i=r(4165),a=r(7878),o=r(1211),s=r(1453);A({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:void 0,t=i(this),r=a(t),A=s(t,0);return A.length=n(A,t,t,r,0,void 0===e?1:o(e)),A}})},6746:(e,t,r)=>{var A=r(5366),n=r(3948);A({target:"Array",stat:!0,forced:!r(4348)((function(e){Array.from(e)}))},{from:n})},932:(e,t,r)=>{var A=r(5366),n=r(7921).includes,i=r(3455),a=r(1458);A({target:"Array",proto:!0,forced:i((function(){return!Array(1).includes()}))},{includes:function(e){return n(this,e,arguments.length>1?arguments[1]:void 0)}}),a("includes")},3276:(e,t,r)=>{var A=r(5366),n=r(2116),i=r(7921).indexOf,a=r(1814),o=n([].indexOf),s=!!o&&1/o([1],1,-0)<0;A({target:"Array",proto:!0,forced:s||!a("indexOf")},{indexOf:function(e){var t=arguments.length>1?arguments[1]:void 0;return s?o(this,e,t)||0:i(this,e,t)}})},9024:(e,t,r)=>{var A=r(3637),n=r(1458),i=r(5597),a=r(8301),o=r(1601).f,s=r(656),c=r(9393),g=r(8507),u=r(2444),l="Array Iterator",h=a.set,I=a.getterFor(l);e.exports=s(Array,"Array",(function(e,t){h(this,{type:l,target:A(e),index:0,kind:t})}),(function(){var e=I(this),t=e.target,r=e.index++;if(!t||r>=t.length)return e.target=null,c(void 0,!0);switch(e.kind){case"keys":return c(r,!1);case"values":return c(t[r],!1)}return c([r,t[r]],!1)}),"values");var f=i.Arguments=i.Array;if(n("keys"),n("values"),n("entries"),!g&&u&&"values"!==f.name)try{o(f,"name",{value:"values"})}catch(e){}},3177:(e,t,r)=>{var A=r(5366),n=r(3499);A({target:"Array",proto:!0,forced:n!==[].lastIndexOf},{lastIndexOf:n})},5550:(e,t,r)=>{var A=r(5366),n=r(5645).map;A({target:"Array",proto:!0,forced:!r(9077)("map")},{map:function(e){return n(this,e,arguments.length>1?arguments[1]:void 0)}})},9138:(e,t,r)=>{var A=r(5366),n=r(4165),i=r(7878),a=r(7375),o=r(9573);A({target:"Array",proto:!0,arity:1,forced:r(3455)((function(){return 4294967297!==[].push.call({length:4294967296},1)}))||!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(e){return e instanceof TypeError}}()},{push:function(e){var t=n(this),r=i(t),A=arguments.length;o(r+A);for(var s=0;s{var A=r(5366),n=r(4734).left,i=r(1814),a=r(6415);A({target:"Array",proto:!0,forced:!r(4529)&&a>79&&a<83||!i("reduce")},{reduce:function(e){var t=arguments.length;return n(this,e,t,t>1?arguments[1]:void 0)}})},6794:(e,t,r)=>{var A=r(5366),n=r(2608),i=r(5448),a=n([].reverse),o=[1,2];A({target:"Array",proto:!0,forced:String(o)===String(o.reverse())},{reverse:function(){return i(this)&&(this.length=this.length),a(this)}})},750:(e,t,r)=>{var A=r(5366),n=r(5448),i=r(8413),a=r(2674),o=r(9002),s=r(7878),c=r(3637),g=r(3552),u=r(5811),l=r(9077),h=r(4224),I=l("slice"),f=u("species"),C=Array,B=Math.max;A({target:"Array",proto:!0,forced:!I},{slice:function(e,t){var r,A,u,l=c(this),I=s(l),Q=o(e,I),E=o(void 0===t?I:t,I);if(n(l)&&(r=l.constructor,(i(r)&&(r===C||n(r.prototype))||a(r)&&null===(r=r[f]))&&(r=void 0),r===C||void 0===r))return h(l,Q,E);for(A=new(void 0===r?C:r)(B(E-Q,0)),u=0;Q{var A=r(5366),n=r(2608),i=r(4186),a=r(4165),o=r(7878),s=r(1870),c=r(687),g=r(3455),u=r(5272),l=r(1814),h=r(7085),I=r(5123),f=r(6415),C=r(1911),B=[],Q=n(B.sort),E=n(B.push),d=g((function(){B.sort(void 0)})),y=g((function(){B.sort(null)})),p=l("sort"),v=!g((function(){if(f)return f<70;if(!(h&&h>3)){if(I)return!0;if(C)return C<603;var e,t,r,A,n="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:r=3;break;case 68:case 71:r=4;break;default:r=2}for(A=0;A<47;A++)B.push({k:t+A,v:r})}for(B.sort((function(e,t){return t.v-e.v})),A=0;Ac(r)?1:-1}}(e)),r=o(n),A=0;A{var A=r(5366),n=r(4165),i=r(9002),a=r(1211),o=r(7878),s=r(7375),c=r(9573),g=r(1453),u=r(3552),l=r(1870),h=r(9077)("splice"),I=Math.max,f=Math.min;A({target:"Array",proto:!0,forced:!h},{splice:function(e,t){var r,A,h,C,B,Q,E=n(this),d=o(E),y=i(e,d),p=arguments.length;for(0===p?r=A=0:1===p?(r=0,A=d-y):(r=p-2,A=f(I(a(t),0),d-y)),c(d+r-A),h=g(E,A),C=0;Cd-A+r;C--)l(E,C-1)}else if(r>A)for(C=d-A;C>y;C--)Q=C+r-1,(B=C+A-1)in E?E[Q]=E[B]:l(E,Q);for(C=0;C{r(1458)("flat")},8937:(e,t,r)=>{var A=r(5366),n=r(4165),i=r(7878),a=r(7375),o=r(1870),s=r(9573);A({target:"Array",proto:!0,arity:1,forced:1!==[].unshift(0)||!function(){try{Object.defineProperty([],"length",{writable:!1}).unshift()}catch(e){return e instanceof TypeError}}()},{unshift:function(e){var t=n(this),r=i(t),A=arguments.length;if(A){s(r+A);for(var c=r;c--;){var g=c+A;c in t?t[g]=t[c]:o(t,g)}for(var u=0;u{var A=r(5366),n=r(3455),i=r(4165),a=r(8921);A({target:"Date",proto:!0,arity:1,forced:n((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(e){var t=i(this),r=a(t,"number");return"number"!=typeof r||isFinite(r)?t.toISOString():null}})},7316:(e,t,r)=>{var A=r(9649),n=r(8552),i=r(952),a=r(5811)("toPrimitive"),o=Date.prototype;A(o,a)||n(o,a,i)},184:(e,t,r)=>{var A=r(5366),n=r(4032),i=r(3881),a=r(9257),o="WebAssembly",s=n[o],c=7!==new Error("e",{cause:7}).cause,g=function(e,t){var r={};r[e]=a(e,t,c),A({global:!0,constructor:!0,arity:1,forced:c},r)},u=function(e,t){if(s&&s[e]){var r={};r[e]=a(o+"."+e,t,c),A({target:o,stat:!0,constructor:!0,arity:1,forced:c},r)}};g("Error",(function(e){return function(t){return i(e,this,arguments)}})),g("EvalError",(function(e){return function(t){return i(e,this,arguments)}})),g("RangeError",(function(e){return function(t){return i(e,this,arguments)}})),g("ReferenceError",(function(e){return function(t){return i(e,this,arguments)}})),g("SyntaxError",(function(e){return function(t){return i(e,this,arguments)}})),g("TypeError",(function(e){return function(t){return i(e,this,arguments)}})),g("URIError",(function(e){return function(t){return i(e,this,arguments)}})),u("CompileError",(function(e){return function(t){return i(e,this,arguments)}})),u("LinkError",(function(e){return function(t){return i(e,this,arguments)}})),u("RuntimeError",(function(e){return function(t){return i(e,this,arguments)}}))},8169:(e,t,r)=>{var A=r(5366),n=r(4032);A({global:!0,forced:n.globalThis!==n},{globalThis:n})},9750:(e,t,r)=>{var A=r(5366),n=r(8711),i=r(3881),a=r(3453),o=r(2608),s=r(3455),c=r(3749),g=r(2277),u=r(4224),l=r(213),h=r(6943),I=String,f=n("JSON","stringify"),C=o(/./.exec),B=o("".charAt),Q=o("".charCodeAt),E=o("".replace),d=o(1..toString),y=/[\\uD800-\\uDFFF]/g,p=/^[\\uD800-\\uDBFF]$/,v=/^[\\uDC00-\\uDFFF]$/,m=!h||s((function(){var e=n("Symbol")("stringify detection");return"[null]"!==f([e])||"{}"!==f({a:e})||"{}"!==f(Object(e))})),w=s((function(){return'"\\\\udf06\\\\ud834"'!==f("\\udf06\\ud834")||'"\\\\udead"'!==f("\\udead")})),b=function(e,t){var r=u(arguments),A=l(t);if(c(A)||void 0!==e&&!g(e))return r[1]=function(e,t){if(c(A)&&(t=a(A,this,I(e),t)),!g(t))return t},i(f,null,r)},k=function(e,t,r){var A=B(r,t-1),n=B(r,t+1);return C(p,e)&&!C(v,n)||C(v,e)&&!C(p,A)?"\\\\u"+d(Q(e,0),16):e};f&&A({target:"JSON",stat:!0,arity:3,forced:m||w},{stringify:function(e,t,r){var A=u(arguments),n=i(m?b:f,null,A);return w&&"string"==typeof n?E(n,y,k):n}})},7531:(e,t,r)=>{var A=r(4032);r(6911)(A.JSON,"JSON",!0)},6539:(e,t,r)=>{r(9556)("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),r(2042))},1425:(e,t,r)=>{r(6539)},3821:(e,t,r)=>{var A=r(5366),n=Math.hypot,i=Math.abs,a=Math.sqrt;A({target:"Math",stat:!0,arity:2,forced:!!n&&n(1/0,NaN)!==1/0},{hypot:function(e,t){for(var r,A,n=0,o=0,s=arguments.length,c=0;o0?(A=r/c)*A:r;return c===1/0?1/0:c*a(n)}})},1999:(e,t,r)=>{r(6911)(Math,"Math",!0)},8674:(e,t,r)=>{var A=r(5366),n=r(8885).entries;A({target:"Object",stat:!0},{entries:function(e){return n(e)}})},1309:(e,t,r)=>{var A=r(5366),n=r(6943),i=r(3455),a=r(6005),o=r(4165);A({target:"Object",stat:!0,forced:!n||i((function(){a.f(1)}))},{getOwnPropertySymbols:function(e){var t=a.f;return t?t(o(e)):[]}})},3379:(e,t,r)=>{var A=r(3724),n=r(8552),i=r(3003);A||n(Object.prototype,"toString",i,{unsafe:!0})},482:(e,t,r)=>{var A=r(5366),n=r(8885).values;A({target:"Object",stat:!0},{values:function(e){return n(e)}})},5204:(e,t,r)=>{var A=r(5366),n=r(3453),i=r(4186),a=r(9371),o=r(6703),s=r(1804);A({target:"Promise",stat:!0,forced:r(2041)},{allSettled:function(e){var t=this,r=a.f(t),A=r.resolve,c=r.reject,g=o((function(){var r=i(t.resolve),a=[],o=0,c=1;s(e,(function(e){var i=o++,s=!1;c++,n(r,t,e).then((function(e){s||(s=!0,a[i]={status:"fulfilled",value:e},--c||A(a))}),(function(e){s||(s=!0,a[i]={status:"rejected",reason:e},--c||A(a))}))})),--c||A(a)}));return g.error&&c(g.value),r.promise}})},6195:(e,t,r)=>{var A=r(5366),n=r(3453),i=r(4186),a=r(9371),o=r(6703),s=r(1804);A({target:"Promise",stat:!0,forced:r(2041)},{all:function(e){var t=this,r=a.f(t),A=r.resolve,c=r.reject,g=o((function(){var r=i(t.resolve),a=[],o=0,g=1;s(e,(function(e){var i=o++,s=!1;g++,n(r,t,e).then((function(e){s||(s=!0,a[i]=e,--g||A(a))}),c)})),--g||A(a)}));return g.error&&c(g.value),r.promise}})},1459:(e,t,r)=>{var A=r(5366),n=r(8507),i=r(9492).CONSTRUCTOR,a=r(5318),o=r(8711),s=r(3749),c=r(8552),g=a&&a.prototype;if(A({target:"Promise",proto:!0,forced:i,real:!0},{catch:function(e){return this.then(void 0,e)}}),!n&&s(a)){var u=o("Promise").prototype.catch;g.catch!==u&&c(g,"catch",u,{unsafe:!0})}},9236:(e,t,r)=>{var A,n,i,a=r(5366),o=r(8507),s=r(4529),c=r(4032),g=r(3453),u=r(8552),l=r(9415),h=r(6911),I=r(5409),f=r(4186),C=r(3749),B=r(2674),Q=r(3399),E=r(1365),d=r(1369).set,y=r(755),p=r(4885),v=r(6703),m=r(3529),w=r(8301),b=r(5318),k=r(9492),D=r(9371),S="Promise",F=k.CONSTRUCTOR,x=k.REJECTION_EVENT,R=k.SUBCLASSING,G=w.getterFor(S),N=w.set,L=b&&b.prototype,U=b,M=L,J=c.TypeError,H=c.document,Y=c.process,P=D.f,O=P,K=!!(H&&H.createEvent&&c.dispatchEvent),T="unhandledrejection",q=function(e){var t;return!(!B(e)||!C(t=e.then))&&t},j=function(e,t){var r,A,n,i=t.value,a=1===t.state,o=a?e.ok:e.fail,s=e.resolve,c=e.reject,u=e.domain;try{o?(a||(2===t.rejection&&V(t),t.rejection=1),!0===o?r=i:(u&&u.enter(),r=o(i),u&&(u.exit(),n=!0)),r===e.promise?c(new J("Promise-chain cycle")):(A=q(r))?g(A,r,s,c):s(r)):c(i)}catch(e){u&&!n&&u.exit(),c(e)}},W=function(e,t){e.notified||(e.notified=!0,y((function(){for(var r,A=e.reactions;r=A.get();)j(r,e);e.notified=!1,t&&!e.rejection&&_(e)})))},Z=function(e,t,r){var A,n;K?((A=H.createEvent("Event")).promise=t,A.reason=r,A.initEvent(e,!1,!0),c.dispatchEvent(A)):A={promise:t,reason:r},!x&&(n=c["on"+e])?n(A):e===T&&p("Unhandled promise rejection",r)},_=function(e){g(d,c,(function(){var t,r=e.facade,A=e.value;if(X(e)&&(t=v((function(){s?Y.emit("unhandledRejection",A,r):Z(T,r,A)})),e.rejection=s||X(e)?2:1,t.error))throw t.value}))},X=function(e){return 1!==e.rejection&&!e.parent},V=function(e){g(d,c,(function(){var t=e.facade;s?Y.emit("rejectionHandled",t):Z("rejectionhandled",t,e.value)}))},z=function(e,t,r){return function(A){e(t,A,r)}},$=function(e,t,r){e.done||(e.done=!0,r&&(e=r),e.value=t,e.state=2,W(e,!0))},ee=function(e,t,r){if(!e.done){e.done=!0,r&&(e=r);try{if(e.facade===t)throw new J("Promise can't be resolved itself");var A=q(t);A?y((function(){var r={done:!1};try{g(A,t,z(ee,r,e),z($,r,e))}catch(t){$(r,t,e)}})):(e.value=t,e.state=1,W(e,!1))}catch(t){$({done:!1},t,e)}}};if(F&&(M=(U=function(e){Q(this,M),f(e),g(A,this);var t=G(this);try{e(z(ee,t),z($,t))}catch(e){$(t,e)}}).prototype,(A=function(e){N(this,{type:S,done:!1,notified:!1,parent:!1,reactions:new m,rejection:!1,state:0,value:null})}).prototype=u(M,"then",(function(e,t){var r=G(this),A=P(E(this,U));return r.parent=!0,A.ok=!C(e)||e,A.fail=C(t)&&t,A.domain=s?Y.domain:void 0,0===r.state?r.reactions.add(A):y((function(){j(A,r)})),A.promise})),n=function(){var e=new A,t=G(e);this.promise=e,this.resolve=z(ee,t),this.reject=z($,t)},D.f=P=function(e){return e===U||void 0===e?new n(e):O(e)},!o&&C(b)&&L!==Object.prototype)){i=L.then,R||u(L,"then",(function(e,t){var r=this;return new U((function(e,t){g(i,r,e,t)})).then(e,t)}),{unsafe:!0});try{delete L.constructor}catch(e){}l&&l(L,M)}a({global:!0,constructor:!0,wrap:!0,forced:F},{Promise:U}),h(U,S,!1,!0),I(S)},2431:(e,t,r)=>{var A=r(5366),n=r(8507),i=r(5318),a=r(3455),o=r(8711),s=r(3749),c=r(1365),g=r(1774),u=r(8552),l=i&&i.prototype;if(A({target:"Promise",proto:!0,real:!0,forced:!!i&&a((function(){l.finally.call({then:function(){}},(function(){}))}))},{finally:function(e){var t=c(this,o("Promise")),r=s(e);return this.then(r?function(r){return g(t,e()).then((function(){return r}))}:e,r?function(r){return g(t,e()).then((function(){throw r}))}:e)}}),!n&&s(i)){var h=o("Promise").prototype.finally;l.finally!==h&&u(l,"finally",h,{unsafe:!0})}},1234:(e,t,r)=>{r(9236),r(6195),r(1459),r(5167),r(5257),r(1128)},5167:(e,t,r)=>{var A=r(5366),n=r(3453),i=r(4186),a=r(9371),o=r(6703),s=r(1804);A({target:"Promise",stat:!0,forced:r(2041)},{race:function(e){var t=this,r=a.f(t),A=r.reject,c=o((function(){var a=i(t.resolve);s(e,(function(e){n(a,t,e).then(r.resolve,A)}))}));return c.error&&A(c.value),r.promise}})},5257:(e,t,r)=>{var A=r(5366),n=r(9371);A({target:"Promise",stat:!0,forced:r(9492).CONSTRUCTOR},{reject:function(e){var t=n.f(this);return(0,t.reject)(e),t.promise}})},1128:(e,t,r)=>{var A=r(5366),n=r(8711),i=r(8507),a=r(5318),o=r(9492).CONSTRUCTOR,s=r(1774),c=n("Promise"),g=i&&!o;A({target:"Promise",stat:!0,forced:i||o},{resolve:function(e){return s(g&&this===c?a:this,e)}})},9732:(e,t,r)=>{var A=r(5366),n=r(9371);A({target:"Promise",stat:!0},{withResolvers:function(){var e=n.f(this);return{promise:e.promise,resolve:e.resolve,reject:e.reject}}})},489:(e,t,r)=>{var A=r(5366),n=r(8711),i=r(3881),a=r(2230),o=r(9052),s=r(7447),c=r(2674),g=r(5304),u=r(3455),l=n("Reflect","construct"),h=Object.prototype,I=[].push,f=u((function(){function e(){}return!(l((function(){}),[],e)instanceof e)})),C=!u((function(){l((function(){}))})),B=f||C;A({target:"Reflect",stat:!0,forced:B,sham:B},{construct:function(e,t){o(e),s(t);var r=arguments.length<3?e:o(arguments[2]);if(C&&!f)return l(e,t,r);if(e===r){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var A=[null];return i(I,A,t),new(i(a,e,A))}var n=r.prototype,u=g(c(n)?n:h),B=i(e,u,t);return c(B)?B:u}})},7288:(e,t,r)=>{var A=r(5366),n=r(3453),i=r(2674),a=r(7447),o=r(3007),s=r(1139),c=r(2611);A({target:"Reflect",stat:!0},{get:function e(t,r){var A,g,u=arguments.length<3?t:arguments[2];return a(t)===u?t[r]:(A=s.f(t,r))?o(A)?A.value:void 0===A.get?void 0:n(A.get,u):i(g=c(t))?e(g,r,u):void 0}})},176:(e,t,r)=>{var A=r(5366),n=r(4032),i=r(6911);A({global:!0},{Reflect:{}}),i(n.Reflect,"Reflect",!0)},4592:(e,t,r)=>{var A=r(2444),n=r(4032),i=r(2608),a=r(5868),o=r(3951),s=r(139),c=r(5304),g=r(3408).f,u=r(6921),l=r(6484),h=r(687),I=r(4554),f=r(1837),C=r(2848),B=r(8552),Q=r(3455),E=r(9649),d=r(8301).enforce,y=r(5409),p=r(5811),v=r(3651),m=r(9502),w=p("match"),b=n.RegExp,k=b.prototype,D=n.SyntaxError,S=i(k.exec),F=i("".charAt),x=i("".replace),R=i("".indexOf),G=i("".slice),N=/^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/,L=/a/g,U=/a/g,M=new b(L)!==L,J=f.MISSED_STICKY,H=f.UNSUPPORTED_Y;if(a("RegExp",A&&(!M||J||v||m||Q((function(){return U[w]=!1,b(L)!==L||b(U)===U||"/a/i"!==String(b(L,"i"))}))))){for(var Y=function(e,t){var r,A,n,i,a,g,f=u(k,this),C=l(e),B=void 0===t,Q=[],y=e;if(!f&&C&&B&&e.constructor===Y)return e;if((C||u(k,e))&&(e=e.source,B&&(t=I(y))),e=void 0===e?"":h(e),t=void 0===t?"":h(t),y=e,v&&"dotAll"in L&&(A=!!t&&R(t,"s")>-1)&&(t=x(t,/s/g,"")),r=t,J&&"sticky"in L&&(n=!!t&&R(t,"y")>-1)&&H&&(t=x(t,/y/g,"")),m&&(i=function(e){for(var t,r=e.length,A=0,n="",i=[],a=c(null),o=!1,s=!1,g=0,u="";A<=r;A++){if("\\\\"===(t=F(e,A)))t+=F(e,++A);else if("]"===t)o=!1;else if(!o)switch(!0){case"["===t:o=!0;break;case"("===t:if(n+=t,"?:"===G(e,A+1,A+3))continue;S(N,G(e,A+1))&&(A+=2,s=!0),g++;continue;case">"===t&&s:if(""===u||E(a,u))throw new D("Invalid capture group name");a[u]=!0,i[i.length]=[u,g],s=!1,u="";continue}s?u+=t:n+=t}return[n,i]}(e),e=i[0],Q=i[1]),a=o(b(e,t),f?this:k,Y),(A||n||Q.length)&&(g=d(a),A&&(g.dotAll=!0,g.raw=Y(function(e){for(var t,r=e.length,A=0,n="",i=!1;A<=r;A++)"\\\\"!==(t=F(e,A))?i||"."!==t?("["===t?i=!0:"]"===t&&(i=!1),n+=t):n+="[\\\\s\\\\S]":n+=t+F(e,++A);return n}(e),r)),n&&(g.sticky=!0),Q.length&&(g.groups=Q)),e!==y)try{s(a,"source",""===y?"(?:)":y)}catch(e){}return a},P=g(b),O=0;P.length>O;)C(Y,b,P[O++]);k.constructor=Y,Y.prototype=k,B(n,"RegExp",Y,{constructor:!0})}y("RegExp")},8345:(e,t,r)=>{var A=r(2444),n=r(3651),i=r(9872),a=r(8986),o=r(8301).get,s=RegExp.prototype,c=TypeError;A&&n&&a(s,"dotAll",{configurable:!0,get:function(){if(this!==s){if("RegExp"===i(this))return!!o(this).dotAll;throw new c("Incompatible receiver, RegExp required")}}})},2823:(e,t,r)=>{var A=r(5366),n=r(9867);A({target:"RegExp",proto:!0,forced:/./.exec!==n},{exec:n})},7879:(e,t,r)=>{var A=r(4032),n=r(2444),i=r(8986),a=r(747),o=r(3455),s=A.RegExp,c=s.prototype;n&&o((function(){var e=!0;try{s(".","d")}catch(t){e=!1}var t={},r="",A=e?"dgimsy":"gimsy",n=function(e,A){Object.defineProperty(t,e,{get:function(){return r+=A,!0}})},i={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var a in e&&(i.hasIndices="d"),i)n(a,i[a]);return Object.getOwnPropertyDescriptor(c,"flags").get.call(t)!==A||r!==A}))&&i(c,"flags",{configurable:!0,get:a})},2865:(e,t,r)=>{var A=r(2444),n=r(1837).MISSED_STICKY,i=r(9872),a=r(8986),o=r(8301).get,s=RegExp.prototype,c=TypeError;A&&n&&a(s,"sticky",{configurable:!0,get:function(){if(this!==s){if("RegExp"===i(this))return!!o(this).sticky;throw new c("Incompatible receiver, RegExp required")}}})},5594:(e,t,r)=>{r(2823);var A,n,i=r(5366),a=r(3453),o=r(3749),s=r(7447),c=r(687),g=(A=!1,(n=/[ac]/).exec=function(){return A=!0,/./.exec.apply(this,arguments)},!0===n.test("abc")&&A),u=/./.test;i({target:"RegExp",proto:!0,forced:!g},{test:function(e){var t=s(this),r=c(e),A=t.exec;if(!o(A))return a(u,t,r);var n=a(A,t,r);return null!==n&&(s(n),!0)}})},8397:(e,t,r)=>{var A=r(2542).PROPER,n=r(8552),i=r(7447),a=r(687),o=r(3455),s=r(4554),c="toString",g=RegExp.prototype,u=g[c],l=o((function(){return"/a/b"!==u.call({source:"a",flags:"b"})})),h=A&&u.name!==c;(l||h)&&n(g,c,(function(){var e=i(this);return"/"+a(e.source)+"/"+a(s(e))}),{unsafe:!0})},4645:(e,t,r)=>{r(9556)("Set",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),r(2042))},5130:(e,t,r)=>{var A=r(5366),n=r(4656);A({target:"Set",proto:!0,real:!0,forced:!r(1716)("difference")},{difference:n})},5636:(e,t,r)=>{var A=r(5366),n=r(3455),i=r(2446);A({target:"Set",proto:!0,real:!0,forced:!r(1716)("intersection")||n((function(){return"3,2"!==String(Array.from(new Set([1,2,3]).intersection(new Set([3,2]))))}))},{intersection:i})},8509:(e,t,r)=>{var A=r(5366),n=r(4545);A({target:"Set",proto:!0,real:!0,forced:!r(1716)("isDisjointFrom")},{isDisjointFrom:n})},7332:(e,t,r)=>{var A=r(5366),n=r(7918);A({target:"Set",proto:!0,real:!0,forced:!r(1716)("isSubsetOf")},{isSubsetOf:n})},6555:(e,t,r)=>{var A=r(5366),n=r(6111);A({target:"Set",proto:!0,real:!0,forced:!r(1716)("isSupersetOf")},{isSupersetOf:n})},9255:(e,t,r)=>{r(4645)},3296:(e,t,r)=>{var A=r(5366),n=r(4498);A({target:"Set",proto:!0,real:!0,forced:!r(1716)("symmetricDifference")},{symmetricDifference:n})},4594:(e,t,r)=>{var A=r(5366),n=r(9500);A({target:"Set",proto:!0,real:!0,forced:!r(1716)("union")},{union:n})},8653:(e,t,r)=>{var A=r(5366),n=r(2608),i=r(7222),a=r(1211),o=r(687),s=r(3455),c=n("".charAt);A({target:"String",proto:!0,forced:s((function(){return"\\ud842"!=="𠮷".at(-2)}))},{at:function(e){var t=o(i(this)),r=t.length,A=a(e),n=A>=0?A:r+A;return n<0||n>=r?void 0:c(t,n)}})},9657:(e,t,r)=>{var A,n=r(5366),i=r(2116),a=r(1139).f,o=r(5806),s=r(687),c=r(3631),g=r(7222),u=r(860),l=r(8507),h=i("".slice),I=Math.min,f=u("endsWith");n({target:"String",proto:!0,forced:!(!l&&!f&&(A=a(String.prototype,"endsWith"),A&&!A.writable)||f)},{endsWith:function(e){var t=s(g(this));c(e);var r=arguments.length>1?arguments[1]:void 0,A=t.length,n=void 0===r?A:I(o(r),A),i=s(e);return h(t,n-i.length,n)===i}})},2217:(e,t,r)=>{var A=r(5366),n=r(2608),i=r(9002),a=RangeError,o=String.fromCharCode,s=String.fromCodePoint,c=n([].join);A({target:"String",stat:!0,arity:1,forced:!!s&&1!==s.length},{fromCodePoint:function(e){for(var t,r=[],A=arguments.length,n=0;A>n;){if(t=+arguments[n++],i(t,1114111)!==t)throw new a(t+" is not a valid code point");r[n]=t<65536?o(t):o(55296+((t-=65536)>>10),t%1024+56320)}return c(r,"")}})},2467:(e,t,r)=>{var A=r(5366),n=r(2608),i=r(3631),a=r(7222),o=r(687),s=r(860),c=n("".indexOf);A({target:"String",proto:!0,forced:!s("includes")},{includes:function(e){return!!~c(o(a(this)),o(i(e)),arguments.length>1?arguments[1]:void 0)}})},7460:(e,t,r)=>{var A=r(6903).charAt,n=r(687),i=r(8301),a=r(656),o=r(9393),s="String Iterator",c=i.set,g=i.getterFor(s);a(String,"String",(function(e){c(this,{type:s,string:n(e),index:0})}),(function(){var e,t=g(this),r=t.string,n=t.index;return n>=r.length?o(void 0,!0):(e=A(r,n),t.index+=e.length,o(e,!1))}))},1281:(e,t,r)=>{var A=r(3453),n=r(4364),i=r(7447),a=r(6021),o=r(5806),s=r(687),c=r(7222),g=r(8622),u=r(8149),l=r(4410);n("match",(function(e,t,r){return[function(t){var r=c(this),n=a(t)?void 0:g(t,e);return n?A(n,t,r):new RegExp(t)[e](s(r))},function(e){var A=i(this),n=s(e),a=r(t,A,n);if(a.done)return a.value;if(!A.global)return l(A,n);var c=A.unicode;A.lastIndex=0;for(var g,h=[],I=0;null!==(g=l(A,n));){var f=s(g[0]);h[I]=f,""===f&&(A.lastIndex=u(n,o(A.lastIndex),c)),I++}return 0===I?null:h}]}))},9484:(e,t,r)=>{var A=r(5366),n=r(6437).start;A({target:"String",proto:!0,forced:r(4903)},{padStart:function(e){return n(this,e,arguments.length>1?arguments[1]:void 0)}})},4413:(e,t,r)=>{var A=r(5366),n=r(3453),i=r(2608),a=r(7222),o=r(3749),s=r(6021),c=r(6484),g=r(687),u=r(8622),l=r(4554),h=r(3966),I=r(5811),f=r(8507),C=I("replace"),B=TypeError,Q=i("".indexOf),E=i("".replace),d=i("".slice),y=Math.max;A({target:"String",proto:!0},{replaceAll:function(e,t){var r,A,i,I,p,v,m,w,b,k,D=a(this),S=0,F="";if(!s(e)){if((r=c(e))&&(A=g(a(l(e))),!~Q(A,"g")))throw new B("\`.replaceAll\` does not allow non-global regexes");if(i=u(e,C))return n(i,e,D,t);if(f&&r)return E(g(D),e,t)}for(I=g(D),p=g(e),(v=o(t))||(t=g(t)),m=p.length,w=y(1,m),b=Q(I,p);-1!==b;)k=v?g(t(p,b,I)):h(p,I,b,[],void 0,t),F+=d(I,S,b)+k,S=b+m,b=b+w>I.length?-1:Q(I,p,b+w);return S{var A=r(3881),n=r(3453),i=r(2608),a=r(4364),o=r(3455),s=r(7447),c=r(3749),g=r(6021),u=r(1211),l=r(5806),h=r(687),I=r(7222),f=r(8149),C=r(8622),B=r(3966),Q=r(4410),E=r(5811)("replace"),d=Math.max,y=Math.min,p=i([].concat),v=i([].push),m=i("".indexOf),w=i("".slice),b="$0"==="a".replace(/./,"$0"),k=!!/./[E]&&""===/./[E]("a","$0");a("replace",(function(e,t,r){var i=k?"$":"$0";return[function(e,r){var A=I(this),i=g(e)?void 0:C(e,E);return i?n(i,e,A,r):n(t,h(A),e,r)},function(e,n){var a=s(this),o=h(e);if("string"==typeof n&&-1===m(n,i)&&-1===m(n,"$<")){var g=r(t,a,o,n);if(g.done)return g.value}var I=c(n);I||(n=h(n));var C,E=a.global;E&&(C=a.unicode,a.lastIndex=0);for(var b,k=[];null!==(b=Q(a,o))&&(v(k,b),E);)""===h(b[0])&&(a.lastIndex=f(o,l(a.lastIndex),C));for(var D,S="",F=0,x=0;x=F&&(S+=w(o,F,N)+R,F=N+G.length)}return S+w(o,F)}]}),!!o((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")}))||!b||k)},4072:(e,t,r)=>{var A=r(3453),n=r(2608),i=r(4364),a=r(7447),o=r(6021),s=r(7222),c=r(1365),g=r(8149),u=r(5806),l=r(687),h=r(8622),I=r(4410),f=r(1837),C=r(3455),B=f.UNSUPPORTED_Y,Q=Math.min,E=n([].push),d=n("".slice),y=!C((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var r="ab".split(e);return 2!==r.length||"a"!==r[0]||"b"!==r[1]})),p="c"==="abbc".split(/(b)*/)[1]||4!=="test".split(/(?:)/,-1).length||2!=="ab".split(/(?:ab)*/).length||4!==".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length;i("split",(function(e,t,r){var n="0".split(void 0,0).length?function(e,r){return void 0===e&&0===r?[]:A(t,this,e,r)}:t;return[function(t,r){var i=s(this),a=o(t)?void 0:h(t,e);return a?A(a,t,i,r):A(n,l(i),t,r)},function(e,A){var i=a(this),o=l(e);if(!p){var s=r(n,i,o,A,n!==t);if(s.done)return s.value}var h=c(i,RegExp),f=i.unicode,C=(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.unicode?"u":"")+(B?"g":"y"),y=new h(B?"^(?:"+i.source+")":i,C),v=void 0===A?4294967295:A>>>0;if(0===v)return[];if(0===o.length)return null===I(y,o)?[o]:[];for(var m=0,w=0,b=[];w{var A,n=r(5366),i=r(2116),a=r(1139).f,o=r(5806),s=r(687),c=r(3631),g=r(7222),u=r(860),l=r(8507),h=i("".slice),I=Math.min,f=u("startsWith");n({target:"String",proto:!0,forced:!(!l&&!f&&(A=a(String.prototype,"startsWith"),A&&!A.writable)||f)},{startsWith:function(e){var t=s(g(this));c(e);var r=o(I(arguments.length>1?arguments[1]:void 0,t.length)),A=s(e);return h(t,r,r+A.length)===A}})},98:(e,t,r)=>{r(3185);var A=r(5366),n=r(2882);A({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==n},{trimEnd:n})},3185:(e,t,r)=>{var A=r(5366),n=r(2882);A({target:"String",proto:!0,name:"trimEnd",forced:"".trimRight!==n},{trimRight:n})},9210:(e,t,r)=>{var A=r(5366),n=r(9418).trim;A({target:"String",proto:!0,forced:r(3794)("trim")},{trim:function(){return n(this)}})},4172:(e,t,r)=>{r(5343)("asyncIterator")},2873:(e,t,r)=>{var A=r(5366),n=r(4032),i=r(3453),a=r(2608),o=r(8507),s=r(2444),c=r(6943),g=r(3455),u=r(9649),l=r(6921),h=r(7447),I=r(3637),f=r(6201),C=r(687),B=r(4004),Q=r(5304),E=r(496),d=r(3408),y=r(6442),p=r(6005),v=r(1139),m=r(1601),w=r(9217),b=r(9221),k=r(8552),D=r(8986),S=r(4593),F=r(2343),x=r(2645),R=r(5936),G=r(5811),N=r(4559),L=r(5343),U=r(3042),M=r(6911),J=r(8301),H=r(5645).forEach,Y=F("hidden"),P="Symbol",O="prototype",K=J.set,T=J.getterFor(P),q=Object[O],j=n.Symbol,W=j&&j[O],Z=n.RangeError,_=n.TypeError,X=n.QObject,V=v.f,z=m.f,$=y.f,ee=b.f,te=a([].push),re=S("symbols"),Ae=S("op-symbols"),ne=S("wks"),ie=!X||!X[O]||!X[O].findChild,ae=function(e,t,r){var A=V(q,t);A&&delete q[t],z(e,t,r),A&&e!==q&&z(q,t,A)},oe=s&&g((function(){return 7!==Q(z({},"a",{get:function(){return z(this,"a",{value:7}).a}})).a}))?ae:z,se=function(e,t){var r=re[e]=Q(W);return K(r,{type:P,tag:e,description:t}),s||(r.description=t),r},ce=function(e,t,r){e===q&&ce(Ae,t,r),h(e);var A=f(t);return h(r),u(re,A)?(r.enumerable?(u(e,Y)&&e[Y][A]&&(e[Y][A]=!1),r=Q(r,{enumerable:B(0,!1)})):(u(e,Y)||z(e,Y,B(1,Q(null))),e[Y][A]=!0),oe(e,A,r)):z(e,A,r)},ge=function(e,t){h(e);var r=I(t),A=E(r).concat(Ie(r));return H(A,(function(t){s&&!i(ue,r,t)||ce(e,t,r[t])})),e},ue=function(e){var t=f(e),r=i(ee,this,t);return!(this===q&&u(re,t)&&!u(Ae,t))&&(!(r||!u(this,t)||!u(re,t)||u(this,Y)&&this[Y][t])||r)},le=function(e,t){var r=I(e),A=f(t);if(r!==q||!u(re,A)||u(Ae,A)){var n=V(r,A);return!n||!u(re,A)||u(r,Y)&&r[Y][A]||(n.enumerable=!0),n}},he=function(e){var t=$(I(e)),r=[];return H(t,(function(e){u(re,e)||u(x,e)||te(r,e)})),r},Ie=function(e){var t=e===q,r=$(t?Ae:I(e)),A=[];return H(r,(function(e){!u(re,e)||t&&!u(q,e)||te(A,re[e])})),A};c||(k(W=(j=function(){if(l(W,this))throw new _("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?C(arguments[0]):void 0,t=R(e),r=function(e){var A=void 0===this?n:this;A===q&&i(r,Ae,e),u(A,Y)&&u(A[Y],t)&&(A[Y][t]=!1);var a=B(1,e);try{oe(A,t,a)}catch(e){if(!(e instanceof Z))throw e;ae(A,t,a)}};return s&&ie&&oe(q,t,{configurable:!0,set:r}),se(t,e)})[O],"toString",(function(){return T(this).tag})),k(j,"withoutSetter",(function(e){return se(R(e),e)})),b.f=ue,m.f=ce,w.f=ge,v.f=le,d.f=y.f=he,p.f=Ie,N.f=function(e){return se(G(e),e)},s&&(D(W,"description",{configurable:!0,get:function(){return T(this).description}}),o||k(q,"propertyIsEnumerable",ue,{unsafe:!0}))),A({global:!0,constructor:!0,wrap:!0,forced:!c,sham:!c},{Symbol:j}),H(E(ne),(function(e){L(e)})),A({target:P,stat:!0,forced:!c},{useSetter:function(){ie=!0},useSimple:function(){ie=!1}}),A({target:"Object",stat:!0,forced:!c,sham:!s},{create:function(e,t){return void 0===t?Q(e):ge(Q(e),t)},defineProperty:ce,defineProperties:ge,getOwnPropertyDescriptor:le}),A({target:"Object",stat:!0,forced:!c},{getOwnPropertyNames:he}),U(),M(j,P),x[Y]=!0},4551:(e,t,r)=>{var A=r(5366),n=r(2444),i=r(4032),a=r(2608),o=r(9649),s=r(3749),c=r(6921),g=r(687),u=r(8986),l=r(2924),h=i.Symbol,I=h&&h.prototype;if(n&&s(h)&&(!("description"in I)||void 0!==h().description)){var f={},C=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:g(arguments[0]),t=c(I,this)?new h(e):void 0===e?h():h(e);return""===e&&(f[t]=!0),t};l(C,h),C.prototype=I,I.constructor=C;var B="Symbol(description detection)"===String(h("description detection")),Q=a(I.valueOf),E=a(I.toString),d=/^Symbol\\((.*)\\)[^)]+$/,y=a("".replace),p=a("".slice);u(I,"description",{configurable:!0,get:function(){var e=Q(this);if(o(f,e))return"";var t=E(e),r=B?p(t,7,-1):y(t,d,"$1");return""===r?void 0:r}}),A({global:!0,constructor:!0,forced:!0},{Symbol:C})}},4182:(e,t,r)=>{var A=r(5366),n=r(8711),i=r(9649),a=r(687),o=r(4593),s=r(8592),c=o("string-to-symbol-registry"),g=o("symbol-to-string-registry");A({target:"Symbol",stat:!0,forced:!s},{for:function(e){var t=a(e);if(i(c,t))return c[t];var r=n("Symbol")(t);return c[t]=r,g[r]=t,r}})},7651:(e,t,r)=>{r(2873),r(4182),r(7876),r(9750),r(1309)},7876:(e,t,r)=>{var A=r(5366),n=r(9649),i=r(2277),a=r(8055),o=r(4593),s=r(8592),c=o("symbol-to-string-registry");A({target:"Symbol",stat:!0,forced:!s},{keyFor:function(e){if(!i(e))throw new TypeError(a(e)+" is not a symbol");if(n(c,e))return c[e]}})},5268:(e,t,r)=>{var A=r(5343),n=r(3042);A("toPrimitive"),n()},5997:(e,t,r)=>{var A=r(8711),n=r(5343),i=r(6911);n("toStringTag"),i(A("Symbol"),"Symbol")},3740:(e,t,r)=>{var A=r(4356),n=r(7878),i=r(1211),a=A.aTypedArray;(0,A.exportTypedArrayMethod)("at",(function(e){var t=a(this),r=n(t),A=i(e),o=A>=0?A:r+A;return o<0||o>=r?void 0:t[o]}))},6542:(e,t,r)=>{var A=r(2608),n=r(4356),i=A(r(6677)),a=n.aTypedArray;(0,n.exportTypedArrayMethod)("copyWithin",(function(e,t){return i(a(this),e,t,arguments.length>2?arguments[2]:void 0)}))},5738:(e,t,r)=>{var A=r(4356),n=r(5645).every,i=A.aTypedArray;(0,A.exportTypedArrayMethod)("every",(function(e){return n(i(this),e,arguments.length>1?arguments[1]:void 0)}))},2900:(e,t,r)=>{var A=r(4356),n=r(9557),i=r(1198),a=r(1179),o=r(3453),s=r(2608),c=r(3455),g=A.aTypedArray,u=A.exportTypedArrayMethod,l=s("".slice);u("fill",(function(e){var t=arguments.length;g(this);var r="Big"===l(a(this),0,3)?i(e):+e;return o(n,this,r,t>1?arguments[1]:void 0,t>2?arguments[2]:void 0)}),c((function(){var e=0;return new Int8Array(2).fill({valueOf:function(){return e++}}),1!==e})))},2051:(e,t,r)=>{var A=r(4356),n=r(5645).filter,i=r(85),a=A.aTypedArray;(0,A.exportTypedArrayMethod)("filter",(function(e){var t=n(a(this),e,arguments.length>1?arguments[1]:void 0);return i(this,t)}))},4211:(e,t,r)=>{var A=r(4356),n=r(5645).findIndex,i=A.aTypedArray;(0,A.exportTypedArrayMethod)("findIndex",(function(e){return n(i(this),e,arguments.length>1?arguments[1]:void 0)}))},5294:(e,t,r)=>{var A=r(4356),n=r(767).findLastIndex,i=A.aTypedArray;(0,A.exportTypedArrayMethod)("findLastIndex",(function(e){return n(i(this),e,arguments.length>1?arguments[1]:void 0)}))},9791:(e,t,r)=>{var A=r(4356),n=r(767).findLast,i=A.aTypedArray;(0,A.exportTypedArrayMethod)("findLast",(function(e){return n(i(this),e,arguments.length>1?arguments[1]:void 0)}))},3198:(e,t,r)=>{var A=r(4356),n=r(5645).find,i=A.aTypedArray;(0,A.exportTypedArrayMethod)("find",(function(e){return n(i(this),e,arguments.length>1?arguments[1]:void 0)}))},4306:(e,t,r)=>{r(8975)("Float32",(function(e){return function(t,r,A){return e(this,t,r,A)}}))},6473:(e,t,r)=>{r(8975)("Float64",(function(e){return function(t,r,A){return e(this,t,r,A)}}))},1526:(e,t,r)=>{var A=r(4356),n=r(5645).forEach,i=A.aTypedArray;(0,A.exportTypedArrayMethod)("forEach",(function(e){n(i(this),e,arguments.length>1?arguments[1]:void 0)}))},2569:(e,t,r)=>{var A=r(949);(0,r(4356).exportTypedArrayStaticMethod)("from",r(2291),A)},6032:(e,t,r)=>{var A=r(4356),n=r(7921).includes,i=A.aTypedArray;(0,A.exportTypedArrayMethod)("includes",(function(e){return n(i(this),e,arguments.length>1?arguments[1]:void 0)}))},3659:(e,t,r)=>{var A=r(4356),n=r(7921).indexOf,i=A.aTypedArray;(0,A.exportTypedArrayMethod)("indexOf",(function(e){return n(i(this),e,arguments.length>1?arguments[1]:void 0)}))},3195:(e,t,r)=>{r(8975)("Int16",(function(e){return function(t,r,A){return e(this,t,r,A)}}))},1237:(e,t,r)=>{r(8975)("Int32",(function(e){return function(t,r,A){return e(this,t,r,A)}}))},4834:(e,t,r)=>{r(8975)("Int8",(function(e){return function(t,r,A){return e(this,t,r,A)}}))},8551:(e,t,r)=>{var A=r(4032),n=r(3455),i=r(2608),a=r(4356),o=r(9024),s=r(5811)("iterator"),c=A.Uint8Array,g=i(o.values),u=i(o.keys),l=i(o.entries),h=a.aTypedArray,I=a.exportTypedArrayMethod,f=c&&c.prototype,C=!n((function(){f[s].call([1])})),B=!!f&&f.values&&f[s]===f.values&&"values"===f.values.name,Q=function(){return g(h(this))};I("entries",(function(){return l(h(this))}),C),I("keys",(function(){return u(h(this))}),C),I("values",Q,C||!B,{name:"values"}),I(s,Q,C||!B,{name:"values"})},8553:(e,t,r)=>{var A=r(4356),n=r(2608),i=A.aTypedArray,a=A.exportTypedArrayMethod,o=n([].join);a("join",(function(e){return o(i(this),e)}))},7612:(e,t,r)=>{var A=r(4356),n=r(3881),i=r(3499),a=A.aTypedArray;(0,A.exportTypedArrayMethod)("lastIndexOf",(function(e){var t=arguments.length;return n(i,a(this),t>1?[e,arguments[1]]:[e])}))},8579:(e,t,r)=>{var A=r(4356),n=r(5645).map,i=r(580),a=A.aTypedArray;(0,A.exportTypedArrayMethod)("map",(function(e){return n(a(this),e,arguments.length>1?arguments[1]:void 0,(function(e,t){return new(i(e))(t)}))}))},7576:(e,t,r)=>{var A=r(4356),n=r(4734).right,i=A.aTypedArray;(0,A.exportTypedArrayMethod)("reduceRight",(function(e){var t=arguments.length;return n(i(this),e,t,t>1?arguments[1]:void 0)}))},7719:(e,t,r)=>{var A=r(4356),n=r(4734).left,i=A.aTypedArray;(0,A.exportTypedArrayMethod)("reduce",(function(e){var t=arguments.length;return n(i(this),e,t,t>1?arguments[1]:void 0)}))},2891:(e,t,r)=>{var A=r(4356),n=A.aTypedArray,i=A.exportTypedArrayMethod,a=Math.floor;i("reverse",(function(){for(var e,t=this,r=n(t).length,A=a(r/2),i=0;i{var A=r(4032),n=r(3453),i=r(4356),a=r(7878),o=r(8402),s=r(4165),c=r(3455),g=A.RangeError,u=A.Int8Array,l=u&&u.prototype,h=l&&l.set,I=i.aTypedArray,f=i.exportTypedArrayMethod,C=!c((function(){var e=new Uint8ClampedArray(2);return n(h,e,{length:1,0:3},1),3!==e[1]})),B=C&&i.NATIVE_ARRAY_BUFFER_VIEWS&&c((function(){var e=new u(2);return e.set(1),e.set("2",1),0!==e[0]||2!==e[1]}));f("set",(function(e){I(this);var t=o(arguments.length>1?arguments[1]:void 0,1),r=s(e);if(C)return n(h,this,r,t);var A=this.length,i=a(r),c=0;if(i+t>A)throw new g("Wrong length");for(;c{var A=r(4356),n=r(580),i=r(3455),a=r(4224),o=A.aTypedArray;(0,A.exportTypedArrayMethod)("slice",(function(e,t){for(var r=a(o(this),e,t),A=n(this),i=0,s=r.length,c=new A(s);s>i;)c[i]=r[i++];return c}),i((function(){new Int8Array(1).slice()})))},9637:(e,t,r)=>{var A=r(4356),n=r(5645).some,i=A.aTypedArray;(0,A.exportTypedArrayMethod)("some",(function(e){return n(i(this),e,arguments.length>1?arguments[1]:void 0)}))},2709:(e,t,r)=>{var A=r(4032),n=r(2116),i=r(3455),a=r(4186),o=r(5272),s=r(4356),c=r(7085),g=r(5123),u=r(6415),l=r(1911),h=s.aTypedArray,I=s.exportTypedArrayMethod,f=A.Uint16Array,C=f&&n(f.prototype.sort),B=!(!C||i((function(){C(new f(2),null)}))&&i((function(){C(new f(2),{})}))),Q=!!C&&!i((function(){if(u)return u<74;if(c)return c<67;if(g)return!0;if(l)return l<602;var e,t,r=new f(516),A=Array(516);for(e=0;e<516;e++)t=e%4,r[e]=515-e,A[e]=e-2*t+3;for(C(r,(function(e,t){return(e/4|0)-(t/4|0)})),e=0;e<516;e++)if(r[e]!==A[e])return!0}));I("sort",(function(e){return void 0!==e&&a(e),Q?C(this,e):o(h(this),function(e){return function(t,r){return void 0!==e?+e(t,r)||0:r!=r?-1:t!=t?1:0===t&&0===r?1/t>0&&1/r<0?1:-1:t>r}}(e))}),!Q||B)},8941:(e,t,r)=>{var A=r(4032),n=r(3881),i=r(4356),a=r(3455),o=r(4224),s=A.Int8Array,c=i.aTypedArray,g=i.exportTypedArrayMethod,u=[].toLocaleString,l=!!s&&a((function(){u.call(new s(1))}));g("toLocaleString",(function(){return n(u,l?o(c(this)):c(this),o(arguments))}),a((function(){return[1,2].toLocaleString()!==new s([1,2]).toLocaleString()}))||!a((function(){s.prototype.toLocaleString.call([1,2])})))},1579:(e,t,r)=>{var A=r(6444),n=r(4356),i=n.aTypedArray,a=n.exportTypedArrayMethod,o=n.getTypedArrayConstructor;a("toReversed",(function(){return A(i(this),o(this))}))},6236:(e,t,r)=>{var A=r(4356),n=r(2608),i=r(4186),a=r(7434),o=A.aTypedArray,s=A.getTypedArrayConstructor,c=A.exportTypedArrayMethod,g=n(A.TypedArrayPrototype.sort);c("toSorted",(function(e){void 0!==e&&i(e);var t=o(this),r=a(s(t),t);return g(r,e)}))},7716:(e,t,r)=>{var A=r(4356).exportTypedArrayMethod,n=r(3455),i=r(4032),a=r(2608),o=i.Uint8Array,s=o&&o.prototype||{},c=[].toString,g=a([].join);n((function(){c.call({})}))&&(c=function(){return g(this)});var u=s.toString!==c;A("toString",c,u)},3034:(e,t,r)=>{r(8975)("Uint16",(function(e){return function(t,r,A){return e(this,t,r,A)}}))},2044:(e,t,r)=>{r(8975)("Uint32",(function(e){return function(t,r,A){return e(this,t,r,A)}}))},7329:(e,t,r)=>{r(8975)("Uint8",(function(e){return function(t,r,A){return e(this,t,r,A)}}))},4262:(e,t,r)=>{r(8975)("Uint8",(function(e){return function(t,r,A){return e(this,t,r,A)}}),!0)},1913:(e,t,r)=>{var A=r(920),n=r(4356),i=r(5415),a=r(1211),o=r(1198),s=n.aTypedArray,c=n.getTypedArrayConstructor,g=n.exportTypedArrayMethod,u=!!function(){try{new Int8Array(1).with(2,{valueOf:function(){throw 8}})}catch(e){return 8===e}}();g("with",{with:function(e,t){var r=s(this),n=a(e),g=i(r)?o(t):+t;return A(r,c(r),n,g)}}.with,!u)},6722:(e,t,r)=>{var A,n=r(568),i=r(4032),a=r(2608),o=r(4183),s=r(5227),c=r(9556),g=r(8153),u=r(2674),l=r(8301).enforce,h=r(3455),I=r(6206),f=Object,C=Array.isArray,B=f.isExtensible,Q=f.isFrozen,E=f.isSealed,d=f.freeze,y=f.seal,p=!i.ActiveXObject&&"ActiveXObject"in i,v=function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}},m=c("WeakMap",v,g),w=m.prototype,b=a(w.set);if(I)if(p){A=g.getConstructor(v,"WeakMap",!0),s.enable();var k=a(w.delete),D=a(w.has),S=a(w.get);o(w,{delete:function(e){if(u(e)&&!B(e)){var t=l(this);return t.frozen||(t.frozen=new A),k(this,e)||t.frozen.delete(e)}return k(this,e)},has:function(e){if(u(e)&&!B(e)){var t=l(this);return t.frozen||(t.frozen=new A),D(this,e)||t.frozen.has(e)}return D(this,e)},get:function(e){if(u(e)&&!B(e)){var t=l(this);return t.frozen||(t.frozen=new A),D(this,e)?S(this,e):t.frozen.get(e)}return S(this,e)},set:function(e,t){if(u(e)&&!B(e)){var r=l(this);r.frozen||(r.frozen=new A),D(this,e)?b(this,e,t):r.frozen.set(e,t)}else b(this,e,t);return this}})}else n&&h((function(){var e=d([]);return b(new m,e,1),!Q(e)}))&&o(w,{set:function(e,t){var r;return C(e)&&(Q(e)?r=d:E(e)&&(r=y)),b(this,e,t),r&&r(e),this}})},8492:(e,t,r)=>{r(6722)},1176:(e,t,r)=>{r(9556)("WeakSet",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),r(8153))},7121:(e,t,r)=>{r(1176)},4192:(e,t,r)=>{var A=r(5366),n=r(4032),i=r(3399),a=r(7447),o=r(3749),s=r(2611),c=r(8986),g=r(3552),u=r(3455),l=r(9649),h=r(5811),I=r(2857).IteratorPrototype,f=r(2444),C=r(8507),B="constructor",Q="Iterator",E=h("toStringTag"),d=TypeError,y=n[Q],p=C||!o(y)||y.prototype!==I||!u((function(){y({})})),v=function(){if(i(this,I),s(this)===I)throw new d("Abstract class Iterator not directly constructable")},m=function(e,t){f?c(I,e,{configurable:!0,get:function(){return t},set:function(t){if(a(this),this===I)throw new d("You can't redefine this property");l(this,e)?this[e]=t:g(this,e,t)}}):I[e]=t};l(I,E)||m(E,Q),!p&&l(I,B)&&I[B]!==Object||m(B,v),v.prototype=I,A({global:!0,constructor:!0,forced:p},{Iterator:v})},463:(e,t,r)=>{var A=r(5366),n=r(1804),i=r(4186),a=r(7447),o=r(3447);A({target:"Iterator",proto:!0,real:!0},{every:function(e){a(this),i(e);var t=o(this),r=0;return!n(t,(function(t,A){if(!e(t,r++))return A()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})},8856:(e,t,r)=>{var A=r(5366),n=r(3453),i=r(4186),a=r(7447),o=r(3447),s=r(2342),c=r(3535),g=r(8507),u=s((function(){for(var e,t,r=this.iterator,A=this.predicate,i=this.next;;){if(e=a(n(i,r)),this.done=!!e.done)return;if(t=e.value,c(r,A,[t,this.counter++],!0))return t}}));A({target:"Iterator",proto:!0,real:!0,forced:g},{filter:function(e){return a(this),i(e),new u(o(this),{predicate:e})}})},4865:(e,t,r)=>{var A=r(5366),n=r(1804),i=r(4186),a=r(7447),o=r(3447);A({target:"Iterator",proto:!0,real:!0},{find:function(e){a(this),i(e);var t=o(this),r=0;return n(t,(function(t,A){if(e(t,r++))return A(t)}),{IS_RECORD:!0,INTERRUPTED:!0}).result}})},1565:(e,t,r)=>{var A=r(5366),n=r(1804),i=r(4186),a=r(7447),o=r(3447);A({target:"Iterator",proto:!0,real:!0},{forEach:function(e){a(this),i(e);var t=o(this),r=0;n(t,(function(t){e(t,r++)}),{IS_RECORD:!0})}})},5342:(e,t,r)=>{var A=r(5366),n=r(4009);A({target:"Iterator",proto:!0,real:!0,forced:r(8507)},{map:n})},8075:(e,t,r)=>{var A=r(5366),n=r(1804),i=r(4186),a=r(7447),o=r(3447),s=TypeError;A({target:"Iterator",proto:!0,real:!0},{reduce:function(e){a(this),i(e);var t=o(this),r=arguments.length<2,A=r?void 0:arguments[1],c=0;if(n(t,(function(t){r?(r=!1,A=t):A=e(A,t,c),c++}),{IS_RECORD:!0}),r)throw new s("Reduce of empty iterator with no initial value");return A}})},9582:(e,t,r)=>{var A=r(5366),n=r(1804),i=r(4186),a=r(7447),o=r(3447);A({target:"Iterator",proto:!0,real:!0},{some:function(e){a(this),i(e);var t=o(this),r=0;return n(t,(function(t,A){if(e(t,r++))return A()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})},7987:(e,t,r)=>{var A=r(5366),n=r(7447),i=r(1804),a=r(3447),o=[].push;A({target:"Iterator",proto:!0,real:!0},{toArray:function(){var e=[];return i(a(n(this)),o,{that:e,IS_RECORD:!0}),e}})},6625:(e,t,r)=>{var A=r(5366),n=r(4032),i=r(8711),a=r(2608),o=r(3453),s=r(3455),c=r(687),g=r(7900),u=r(2996).c2i,l=/[^\\d+/a-z]/i,h=/[\\t\\n\\f\\r ]+/g,I=/[=]{1,2}$/,f=i("atob"),C=String.fromCharCode,B=a("".charAt),Q=a("".replace),E=a(l.exec),d=!!f&&!s((function(){return"hi"!==f("aGk=")})),y=d&&s((function(){return""!==f(" ")})),p=d&&!s((function(){f("a")})),v=d&&!s((function(){f()})),m=d&&1!==f.length;A({global:!0,bind:!0,enumerable:!0,forced:!d||y||p||v||m},{atob:function(e){if(g(arguments.length,1),d&&!y&&!p)return o(f,n,e);var t,r,A,a=Q(c(e),h,""),s="",v=0,m=0;if(a.length%4==0&&(a=Q(a,I,"")),(t=a.length)%4==1||E(l,a))throw new(i("DOMException"))("The string is not correctly encoded","InvalidCharacterError");for(;v>(-2*m&6)));return s}})},8316:(e,t,r)=>{var A=r(4032),n=r(2760),i=r(4784),a=r(3147),o=r(139),s=function(e){if(e&&e.forEach!==a)try{o(e,"forEach",a)}catch(t){e.forEach=a}};for(var c in n)n[c]&&s(A[c]&&A[c].prototype);s(i)},3577:(e,t,r)=>{var A=r(4032),n=r(2760),i=r(4784),a=r(9024),o=r(139),s=r(6911),c=r(5811)("iterator"),g=a.values,u=function(e,t){if(e){if(e[c]!==g)try{o(e,c,g)}catch(t){e[c]=g}if(s(e,t,!0),n[t])for(var r in a)if(e[r]!==a[r])try{o(e,r,a[r])}catch(t){e[r]=a[r]}}};for(var l in n)u(A[l]&&A[l].prototype,l);u(i,"DOMTokenList")},4967:(e,t,r)=>{var A=r(5366),n=r(8711),i=r(9685),a=r(3455),o=r(5304),s=r(4004),c=r(1601).f,g=r(8552),u=r(8986),l=r(9649),h=r(3399),I=r(7447),f=r(2912),C=r(8363),B=r(4090),Q=r(3633),E=r(8301),d=r(2444),y=r(8507),p="DOMException",v="DATA_CLONE_ERR",m=n("Error"),w=n(p)||function(){try{(new(n("MessageChannel")||i("worker_threads").MessageChannel)).port1.postMessage(new WeakMap)}catch(e){if(e.name===v&&25===e.code)return e.constructor}}(),b=w&&w.prototype,k=m.prototype,D=E.set,S=E.getterFor(p),F="stack"in new m(p),x=function(e){return l(B,e)&&B[e].m?B[e].c:0},R=function(){h(this,G);var e=arguments.length,t=C(e<1?void 0:arguments[0]),r=C(e<2?void 0:arguments[1],"Error"),A=x(r);if(D(this,{type:p,name:r,message:t,code:A}),d||(this.name=r,this.message=t,this.code=A),F){var n=new m(t);n.name=p,c(this,"stack",s(1,Q(n.stack,1)))}},G=R.prototype=o(k),N=function(e){return{enumerable:!0,configurable:!0,get:e}},L=function(e){return N((function(){return S(this)[e]}))};d&&(u(G,"code",L("code")),u(G,"message",L("message")),u(G,"name",L("name"))),c(G,"constructor",s(1,R));var U=a((function(){return!(new w instanceof m)})),M=U||a((function(){return k.toString!==f||"2: 1"!==String(new w(1,2))})),J=U||a((function(){return 25!==new w(1,"DataCloneError").code})),H=U||25!==w[v]||25!==b[v],Y=y?M||J||H:U;A({global:!0,constructor:!0,forced:Y},{DOMException:Y?R:w});var P=n(p),O=P.prototype;for(var K in M&&(y||w===P)&&g(O,"toString",f),J&&d&&w===P&&u(O,"code",N((function(){return x(I(this).name)}))),B)if(l(B,K)){var T=B[K],q=T.s,j=s(6,T.c);l(P,q)||c(P,q,j),l(O,q)||c(O,q,j)}},6403:(e,t,r)=>{var A=r(5366),n=r(4032),i=r(8711),a=r(4004),o=r(1601).f,s=r(9649),c=r(3399),g=r(3951),u=r(8363),l=r(4090),h=r(3633),I=r(2444),f=r(8507),C="DOMException",B=i("Error"),Q=i(C),E=function(){c(this,d);var e=arguments.length,t=u(e<1?void 0:arguments[0]),r=u(e<2?void 0:arguments[1],"Error"),A=new Q(t,r),n=new B(t);return n.name=C,o(A,"stack",a(1,h(n.stack,1))),g(A,this,E),A},d=E.prototype=Q.prototype,y="stack"in new B(C),p="stack"in new Q(1,2),v=Q&&I&&Object.getOwnPropertyDescriptor(n,C),m=!(!v||v.writable&&v.configurable),w=y&&!m&&!p;A({global:!0,constructor:!0,forced:f||w},{DOMException:w?E:Q});var b=i(C),k=b.prototype;if(k.constructor!==b)for(var D in f||o(k,"constructor",a(1,b)),l)if(s(l,D)){var S=l[D],F=S.s;s(b,F)||o(b,F,a(6,S.c))}},3355:(e,t,r)=>{var A=r(8711),n="DOMException";r(6911)(A(n),n)},8043:(e,t,r)=>{var A=r(5366),n=r(4032),i=r(8986),a=r(2444),o=TypeError,s=Object.defineProperty,c=n.self!==n;try{if(a){var g=Object.getOwnPropertyDescriptor(n,"self");!c&&g&&g.get&&g.enumerable||i(n,"self",{get:function(){return n},set:function(e){if(this!==n)throw new o("Illegal invocation");s(n,"self",{value:e,writable:!0,configurable:!0,enumerable:!0})},configurable:!0,enumerable:!0})}else A({global:!0,simple:!0,forced:c},{self:n})}catch(e){}},9734:(e,t,r)=>{r(9024),r(2217);var A=r(5366),n=r(4032),i=r(5725),a=r(8711),o=r(3453),s=r(2608),c=r(2444),g=r(8200),u=r(8552),l=r(8986),h=r(4183),I=r(6911),f=r(282),C=r(8301),B=r(3399),Q=r(3749),E=r(9649),d=r(4864),y=r(1179),p=r(7447),v=r(2674),m=r(687),w=r(5304),b=r(4004),k=r(6961),D=r(7507),S=r(9393),F=r(7900),x=r(5811),R=r(5272),G=x("iterator"),N="URLSearchParams",L=N+"Iterator",U=C.set,M=C.getterFor(N),J=C.getterFor(L),H=i("fetch"),Y=i("Request"),P=i("Headers"),O=Y&&Y.prototype,K=P&&P.prototype,T=n.TypeError,q=n.encodeURIComponent,j=String.fromCharCode,W=a("String","fromCodePoint"),Z=parseInt,_=s("".charAt),X=s([].join),V=s([].push),z=s("".replace),$=s([].shift),ee=s([].splice),te=s("".split),re=s("".slice),Ae=s(/./.exec),ne=/\\+/g,ie=/^[0-9a-f]+$/i,ae=function(e,t){var r=re(e,t,t+2);return Ae(ie,r)?Z(r,16):NaN},oe=function(e){for(var t=0,r=128;r>0&&0!=(e&r);r>>=1)t++;return t},se=function(e){var t=null;switch(e.length){case 1:t=e[0];break;case 2:t=(31&e[0])<<6|63&e[1];break;case 3:t=(15&e[0])<<12|(63&e[1])<<6|63&e[2];break;case 4:t=(7&e[0])<<18|(63&e[1])<<12|(63&e[2])<<6|63&e[3]}return t>1114111?null:t},ce=function(e){for(var t=(e=z(e,ne," ")).length,r="",A=0;At){r+="%",A++;continue}var i=ae(e,A+1);if(i!=i){r+=n,A++;continue}A+=2;var a=oe(i);if(0===a)n=j(i);else{if(1===a||a>4){r+="�",A++;continue}for(var o=[i],s=1;st||"%"!==_(e,A));){var c=ae(e,A+1);if(c!=c){A+=3;break}if(c>191||c<128)break;V(o,c),A+=2,s++}if(o.length!==a){r+="�";continue}var g=se(o);null===g?r+="�":n=W(g)}}r+=n,A++}return r},ge=/[!'()~]|%20/g,ue={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},le=function(e){return ue[e]},he=function(e){return z(q(e),ge,le)},Ie=f((function(e,t){U(this,{type:L,target:M(e).entries,index:0,kind:t})}),N,(function(){var e=J(this),t=e.target,r=e.index++;if(!t||r>=t.length)return e.target=null,S(void 0,!0);var A=t[r];switch(e.kind){case"keys":return S(A.key,!1);case"values":return S(A.value,!1)}return S([A.key,A.value],!1)}),!0),fe=function(e){this.entries=[],this.url=null,void 0!==e&&(v(e)?this.parseObject(e):this.parseQuery("string"==typeof e?"?"===_(e,0)?re(e,1):e:m(e)))};fe.prototype={type:N,bindURL:function(e){this.url=e,this.update()},parseObject:function(e){var t,r,A,n,i,a,s,c=this.entries,g=D(e);if(g)for(r=(t=k(e,g)).next;!(A=o(r,t)).done;){if(i=(n=k(p(A.value))).next,(a=o(i,n)).done||(s=o(i,n)).done||!o(i,n).done)throw new T("Expected sequence with length 2");V(c,{key:m(a.value),value:m(s.value)})}else for(var u in e)E(e,u)&&V(c,{key:u,value:m(e[u])})},parseQuery:function(e){if(e)for(var t,r,A=this.entries,n=te(e,"&"),i=0;i0?arguments[0]:void 0));c||(this.size=e.entries.length)},Be=Ce.prototype;if(h(Be,{append:function(e,t){var r=M(this);F(arguments.length,2),V(r.entries,{key:m(e),value:m(t)}),c||this.length++,r.updateURL()},delete:function(e){for(var t=M(this),r=F(arguments.length,1),A=t.entries,n=m(e),i=r<2?void 0:arguments[1],a=void 0===i?i:m(i),o=0;ot.key?1:-1})),e.updateURL()},forEach:function(e){for(var t,r=M(this).entries,A=d(e,arguments.length>1?arguments[1]:void 0),n=0;n1?de(arguments[1]):{})}}),Q(Y)){var ye=function(e){return B(this,O),new Y(e,arguments.length>1?de(arguments[1]):{})};O.constructor=ye,ye.prototype=O,A({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:ye})}}e.exports={URLSearchParams:Ce,getState:M}},1531:(e,t,r)=>{var A=r(8552),n=r(2608),i=r(687),a=r(7900),o=URLSearchParams,s=o.prototype,c=n(s.append),g=n(s.delete),u=n(s.forEach),l=n([].push),h=new o("a=1&a=2&b=3");h.delete("a",1),h.delete("b",void 0),h+""!="a=2"&&A(s,"delete",(function(e){var t=arguments.length,r=t<2?void 0:arguments[1];if(t&&void 0===r)return g(this,e);var A=[];u(this,(function(e,t){l(A,{key:t,value:e})})),a(t,1);for(var n,o=i(e),s=i(r),h=0,I=0,f=!1,C=A.length;h{var A=r(8552),n=r(2608),i=r(687),a=r(7900),o=URLSearchParams,s=o.prototype,c=n(s.getAll),g=n(s.has),u=new o("a=1");!u.has("a",2)&&u.has("a",void 0)||A(s,"has",(function(e){var t=arguments.length,r=t<2?void 0:arguments[1];if(t&&void 0===r)return g(this,e);var A=c(this,e);a(t,1);for(var n=i(r),o=0;o{r(9734)},4145:(e,t,r)=>{var A=r(2444),n=r(2608),i=r(8986),a=URLSearchParams.prototype,o=n(a.forEach);A&&!("size"in a)&&i(a,"size",{get:function(){var e=0;return o(this,(function(){e++})),e},configurable:!0,enumerable:!0})},161:(e,t,r)=>{r(7460);var A,n=r(5366),i=r(2444),a=r(8200),o=r(4032),s=r(4864),c=r(2608),g=r(8552),u=r(8986),l=r(3399),h=r(9649),I=r(8069),f=r(3948),C=r(4224),B=r(6903).codeAt,Q=r(5141),E=r(687),d=r(6911),y=r(7900),p=r(9734),v=r(8301),m=v.set,w=v.getterFor("URL"),b=p.URLSearchParams,k=p.getState,D=o.URL,S=o.TypeError,F=o.parseInt,x=Math.floor,R=Math.pow,G=c("".charAt),N=c(/./.exec),L=c([].join),U=c(1..toString),M=c([].pop),J=c([].push),H=c("".replace),Y=c([].shift),P=c("".split),O=c("".slice),K=c("".toLowerCase),T=c([].unshift),q="Invalid scheme",j="Invalid host",W="Invalid port",Z=/[a-z]/i,_=/[\\d+-.a-z]/i,X=/\\d/,V=/^0x/i,z=/^[0-7]+$/,$=/^\\d+$/,ee=/^[\\da-f]+$/i,te=/[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/,re=/[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/,Ae=/^[\\u0000-\\u0020]+/,ne=/(^|[^\\u0000-\\u0020])[\\u0000-\\u0020]+$/,ie=/[\\t\\n\\r]/g,ae=function(e){var t,r,A,n;if("number"==typeof e){for(t=[],r=0;r<4;r++)T(t,e%256),e=x(e/256);return L(t,".")}if("object"==typeof e){for(t="",A=function(e){for(var t=null,r=1,A=null,n=0,i=0;i<8;i++)0!==e[i]?(n>r&&(t=A,r=n),A=null,n=0):(null===A&&(A=i),++n);return n>r?A:t}(e),r=0;r<8;r++)n&&0===e[r]||(n&&(n=!1),A===r?(t+=r?":":"::",n=!0):(t+=U(e[r],16),r<7&&(t+=":")));return"["+t+"]"}return e},oe={},se=I({},oe,{" ":1,'"':1,"<":1,">":1,"\`":1}),ce=I({},se,{"#":1,"?":1,"{":1,"}":1}),ge=I({},ce,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\\\":1,"]":1,"^":1,"|":1}),ue=function(e,t){var r=B(e,0);return r>32&&r<127&&!h(t,e)?e:encodeURIComponent(e)},le={ftp:21,file:null,http:80,https:443,ws:80,wss:443},he=function(e,t){var r;return 2===e.length&&N(Z,G(e,0))&&(":"===(r=G(e,1))||!t&&"|"===r)},Ie=function(e){var t;return e.length>1&&he(O(e,0,2))&&(2===e.length||"/"===(t=G(e,2))||"\\\\"===t||"?"===t||"#"===t)},fe=function(e){return"."===e||"%2e"===K(e)},Ce={},Be={},Qe={},Ee={},de={},ye={},pe={},ve={},me={},we={},be={},ke={},De={},Se={},Fe={},xe={},Re={},Ge={},Ne={},Le={},Ue={},Me=function(e,t,r){var A,n,i,a=E(e);if(t){if(n=this.parse(a))throw new S(n);this.searchParams=null}else{if(void 0!==r&&(A=new Me(r,!0)),n=this.parse(a,null,A))throw new S(n);(i=k(new b)).bindURL(this),this.searchParams=i}};Me.prototype={type:"URL",parse:function(e,t,r){var n,i,a,o,s,c=this,g=t||Ce,u=0,l="",I=!1,B=!1,Q=!1;for(e=E(e),t||(c.scheme="",c.username="",c.password="",c.host=null,c.port=null,c.path=[],c.query=null,c.fragment=null,c.cannotBeABaseURL=!1,e=H(e,Ae,""),e=H(e,ne,"$1")),e=H(e,ie,""),n=f(e);u<=n.length;){switch(i=n[u],g){case Ce:if(!i||!N(Z,i)){if(t)return q;g=Qe;continue}l+=K(i),g=Be;break;case Be:if(i&&(N(_,i)||"+"===i||"-"===i||"."===i))l+=K(i);else{if(":"!==i){if(t)return q;l="",g=Qe,u=0;continue}if(t&&(c.isSpecial()!==h(le,l)||"file"===l&&(c.includesCredentials()||null!==c.port)||"file"===c.scheme&&!c.host))return;if(c.scheme=l,t)return void(c.isSpecial()&&le[c.scheme]===c.port&&(c.port=null));l="","file"===c.scheme?g=Se:c.isSpecial()&&r&&r.scheme===c.scheme?g=Ee:c.isSpecial()?g=ve:"/"===n[u+1]?(g=de,u++):(c.cannotBeABaseURL=!0,J(c.path,""),g=Ne)}break;case Qe:if(!r||r.cannotBeABaseURL&&"#"!==i)return q;if(r.cannotBeABaseURL&&"#"===i){c.scheme=r.scheme,c.path=C(r.path),c.query=r.query,c.fragment="",c.cannotBeABaseURL=!0,g=Ue;break}g="file"===r.scheme?Se:ye;continue;case Ee:if("/"!==i||"/"!==n[u+1]){g=ye;continue}g=me,u++;break;case de:if("/"===i){g=we;break}g=Ge;continue;case ye:if(c.scheme=r.scheme,i===A)c.username=r.username,c.password=r.password,c.host=r.host,c.port=r.port,c.path=C(r.path),c.query=r.query;else if("/"===i||"\\\\"===i&&c.isSpecial())g=pe;else if("?"===i)c.username=r.username,c.password=r.password,c.host=r.host,c.port=r.port,c.path=C(r.path),c.query="",g=Le;else{if("#"!==i){c.username=r.username,c.password=r.password,c.host=r.host,c.port=r.port,c.path=C(r.path),c.path.length--,g=Ge;continue}c.username=r.username,c.password=r.password,c.host=r.host,c.port=r.port,c.path=C(r.path),c.query=r.query,c.fragment="",g=Ue}break;case pe:if(!c.isSpecial()||"/"!==i&&"\\\\"!==i){if("/"!==i){c.username=r.username,c.password=r.password,c.host=r.host,c.port=r.port,g=Ge;continue}g=we}else g=me;break;case ve:if(g=me,"/"!==i||"/"!==G(l,u+1))continue;u++;break;case me:if("/"!==i&&"\\\\"!==i){g=we;continue}break;case we:if("@"===i){I&&(l="%40"+l),I=!0,a=f(l);for(var d=0;d65535)return W;c.port=c.isSpecial()&&v===le[c.scheme]?null:v,l=""}if(t)return;g=Re;continue}return W}l+=i;break;case Se:if(c.scheme="file","/"===i||"\\\\"===i)g=Fe;else{if(!r||"file"!==r.scheme){g=Ge;continue}switch(i){case A:c.host=r.host,c.path=C(r.path),c.query=r.query;break;case"?":c.host=r.host,c.path=C(r.path),c.query="",g=Le;break;case"#":c.host=r.host,c.path=C(r.path),c.query=r.query,c.fragment="",g=Ue;break;default:Ie(L(C(n,u),""))||(c.host=r.host,c.path=C(r.path),c.shortenPath()),g=Ge;continue}}break;case Fe:if("/"===i||"\\\\"===i){g=xe;break}r&&"file"===r.scheme&&!Ie(L(C(n,u),""))&&(he(r.path[0],!0)?J(c.path,r.path[0]):c.host=r.host),g=Ge;continue;case xe:if(i===A||"/"===i||"\\\\"===i||"?"===i||"#"===i){if(!t&&he(l))g=Ge;else if(""===l){if(c.host="",t)return;g=Re}else{if(o=c.parseHost(l))return o;if("localhost"===c.host&&(c.host=""),t)return;l="",g=Re}continue}l+=i;break;case Re:if(c.isSpecial()){if(g=Ge,"/"!==i&&"\\\\"!==i)continue}else if(t||"?"!==i)if(t||"#"!==i){if(i!==A&&(g=Ge,"/"!==i))continue}else c.fragment="",g=Ue;else c.query="",g=Le;break;case Ge:if(i===A||"/"===i||"\\\\"===i&&c.isSpecial()||!t&&("?"===i||"#"===i)){if(".."===(s=K(s=l))||"%2e."===s||".%2e"===s||"%2e%2e"===s?(c.shortenPath(),"/"===i||"\\\\"===i&&c.isSpecial()||J(c.path,"")):fe(l)?"/"===i||"\\\\"===i&&c.isSpecial()||J(c.path,""):("file"===c.scheme&&!c.path.length&&he(l)&&(c.host&&(c.host=""),l=G(l,0)+":"),J(c.path,l)),l="","file"===c.scheme&&(i===A||"?"===i||"#"===i))for(;c.path.length>1&&""===c.path[0];)Y(c.path);"?"===i?(c.query="",g=Le):"#"===i&&(c.fragment="",g=Ue)}else l+=ue(i,ce);break;case Ne:"?"===i?(c.query="",g=Le):"#"===i?(c.fragment="",g=Ue):i!==A&&(c.path[0]+=ue(i,oe));break;case Le:t||"#"!==i?i!==A&&("'"===i&&c.isSpecial()?c.query+="%27":c.query+="#"===i?"%23":ue(i,oe)):(c.fragment="",g=Ue);break;case Ue:i!==A&&(c.fragment+=ue(i,se))}u++}},parseHost:function(e){var t,r,A;if("["===G(e,0)){if("]"!==G(e,e.length-1))return j;if(t=function(e){var t,r,A,n,i,a,o,s=[0,0,0,0,0,0,0,0],c=0,g=null,u=0,l=function(){return G(e,u)};if(":"===l()){if(":"!==G(e,1))return;u+=2,g=++c}for(;l();){if(8===c)return;if(":"!==l()){for(t=r=0;r<4&&N(ee,l());)t=16*t+F(l(),16),u++,r++;if("."===l()){if(0===r)return;if(u-=r,c>6)return;for(A=0;l();){if(n=null,A>0){if(!("."===l()&&A<4))return;u++}if(!N(X,l()))return;for(;N(X,l());){if(i=F(l(),10),null===n)n=i;else{if(0===n)return;n=10*n+i}if(n>255)return;u++}s[c]=256*s[c]+n,2!=++A&&4!==A||c++}if(4!==A)return;break}if(":"===l()){if(u++,!l())return}else if(l())return;s[c++]=t}else{if(null!==g)return;u++,g=++c}}if(null!==g)for(a=c-g,c=7;0!==c&&a>0;)o=s[c],s[c--]=s[g+a-1],s[g+--a]=o;else if(8!==c)return;return s}(O(e,1,-1)),!t)return j;this.host=t}else if(this.isSpecial()){if(e=Q(e),N(te,e))return j;if(t=function(e){var t,r,A,n,i,a,o,s=P(e,".");if(s.length&&""===s[s.length-1]&&s.length--,(t=s.length)>4)return e;for(r=[],A=0;A1&&"0"===G(n,0)&&(i=N(V,n)?16:8,n=O(n,8===i?1:2)),""===n)a=0;else{if(!N(10===i?$:8===i?z:ee,n))return e;a=F(n,i)}J(r,a)}for(A=0;A=R(256,5-t))return null}else if(a>255)return null;for(o=M(r),A=0;A1?arguments[1]:void 0,A=m(t,new Me(e,!1,r));i||(t.href=A.serialize(),t.origin=A.getOrigin(),t.protocol=A.getProtocol(),t.username=A.getUsername(),t.password=A.getPassword(),t.host=A.getHost(),t.hostname=A.getHostname(),t.port=A.getPort(),t.pathname=A.getPathname(),t.search=A.getSearch(),t.searchParams=A.getSearchParams(),t.hash=A.getHash())},He=Je.prototype,Ye=function(e,t){return{get:function(){return w(this)[e]()},set:t&&function(e){return w(this)[t](e)},configurable:!0,enumerable:!0}};if(i&&(u(He,"href",Ye("serialize","setHref")),u(He,"origin",Ye("getOrigin")),u(He,"protocol",Ye("getProtocol","setProtocol")),u(He,"username",Ye("getUsername","setUsername")),u(He,"password",Ye("getPassword","setPassword")),u(He,"host",Ye("getHost","setHost")),u(He,"hostname",Ye("getHostname","setHostname")),u(He,"port",Ye("getPort","setPort")),u(He,"pathname",Ye("getPathname","setPathname")),u(He,"search",Ye("getSearch","setSearch")),u(He,"searchParams",Ye("getSearchParams")),u(He,"hash",Ye("getHash","setHash"))),g(He,"toJSON",(function(){return w(this).serialize()}),{enumerable:!0}),g(He,"toString",(function(){return w(this).serialize()}),{enumerable:!0}),D){var Pe=D.createObjectURL,Oe=D.revokeObjectURL;Pe&&g(Je,"createObjectURL",s(Pe,D)),Oe&&g(Je,"revokeObjectURL",s(Oe,D))}d(Je,"URL"),n({global:!0,constructor:!0,forced:!a,sham:!i},{URL:Je})},5728:(e,t,r)=>{r(161)},4136:(e,t,r)=>{var A=r(5366),n=r(3453);A({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return n(URL.prototype.toString,this)}})}},t={};function r(A){var n=t[A];if(void 0!==n)return n.exports;var i=t[A]={exports:{}};return e[A].call(i.exports,i,i.exports,r),i.exports}r.d=(e,t)=>{for(var A in t)r.o(t,A)&&!r.o(e,A)&&Object.defineProperty(e,A,{enumerable:!0,get:t[A]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var A,n=globalThis.pdfjsWorker={};function i(e,t,r){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:r;throw new TypeError("Private element is not present on this object")}function a(e,t){for(var r=0;riL}),r(7651),r(4551),r(4172),r(5268),r(5997),r(184),r(3234),r(6497),r(6746),r(9024),r(5550),r(9138),r(6794),r(750),r(9722),r(5015),r(6209),r(9261),r(3700),r(3632),r(7316),r(7531),r(1999),r(3379),r(1234),r(2431),r(9732),r(2823),r(5594),r(8397),r(9255),r(5130),r(5636),r(8509),r(7332),r(6555),r(3296),r(4594),r(7329),r(3740),r(6542),r(5738),r(2900),r(2051),r(3198),r(4211),r(9791),r(5294),r(1526),r(6032),r(3659),r(8551),r(8553),r(7612),r(8579),r(7719),r(7576),r(2891),r(2605),r(4863),r(9637),r(2709),r(8941),r(1579),r(6236),r(7716),r(1913),r(4192),r(1565),r(5342),r(9582),r(8316),r(3577),r(8043),r(932),r(8169),r(1425),r(489),r(2467),r(1281),r(9484),r(4672),r(4413),r(9264),r(2044),r(5728),r(4136),r(4520),r(1531),r(3678),r(4145);var f=!("object"!=typeof process||process+""!="[object process]"||process.versions.nw||process.versions.electron&&process.type&&"browser"!==process.type),C=[1,0,0,1,0,0],B=[.001,0,0,.001,0,0],Q=1.35,E=.25925925925925924,d="pdfjs_internal_editor_",y={PRINT:4,MODIFY_CONTENTS:8,COPY:16,MODIFY_ANNOTATIONS:32,FILL_INTERACTIVE_FORMS:256,COPY_FOR_ACCESSIBILITY:512,ASSEMBLE:1024,PRINT_HIGH_QUALITY:2048},p="Group",v=32,m=8192,w=65536,b={E:"Mouse Enter",X:"Mouse Exit",D:"Mouse Down",U:"Mouse Up",Fo:"Focus",Bl:"Blur",PO:"PageOpen",PC:"PageClose",PV:"PageVisible",PI:"PageInvisible",K:"Keystroke",F:"Format",V:"Validate",C:"Calculate"},k={WC:"WillClose",WS:"WillSave",DS:"DidSave",WP:"WillPrint",DP:"DidPrint"},D={O:"PageOpen",C:"PageClose"},S={ERRORS:0,WARNINGS:1,INFOS:5},F={NONE:0,BINARY:1},x=10,R=11,G=12,N=37,L=44,U=58,M=59,J=70,H=71,Y=83,P=85,O=S.WARNINGS;function K(){return O}function T(e){O>=S.INFOS&&console.log("Info: ".concat(e))}function q(e){O>=S.WARNINGS&&console.log("Warning: ".concat(e))}function j(e){throw new Error(e)}function W(e,t){e||j(t)}function Z(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(!e)return null;try{if(r&&"string"==typeof e){if(r.addDefaultProtocol&&e.startsWith("www.")){var A=e.match(/\\./g);(null==A?void 0:A.length)>=2&&(e="http://".concat(e))}if(r.tryConvertEncoding)try{e=fe(e)}catch(e){}}var n=t?new URL(e,t):new URL(e);if(function(e){switch(null==e?void 0:e.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}(n))return n}catch(e){}return null}function _(e,t,r){var A=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return Object.defineProperty(e,t,{value:r,enumerable:!A,configurable:!0,writable:!1}),r}var X=function(){function e(e,t){this.message=e,this.name=t}return e.prototype=new Error,e.constructor=e,e}(),V=function(e){function t(e,r){var A;return c(this,t),(A=g(this,t,[e,"PasswordException"])).code=r,A}return h(t,X),o(t)}(),z=function(e){function t(e,r){var A;return c(this,t),(A=g(this,t,[e,"UnknownErrorException"])).details=r,A}return h(t,X),o(t)}(),$=function(e){function t(e){return c(this,t),g(this,t,[e,"InvalidPDFException"])}return h(t,X),o(t)}(),ee=function(e){function t(e){return c(this,t),g(this,t,[e,"MissingPDFException"])}return h(t,X),o(t)}(),te=function(e){function t(e,r){var A;return c(this,t),(A=g(this,t,[e,"UnexpectedResponseException"])).status=r,A}return h(t,X),o(t)}(),re=function(e){function t(e){return c(this,t),g(this,t,[e,"FormatError"])}return h(t,X),o(t)}(),Ae=function(e){function t(e){return c(this,t),g(this,t,[e,"AbortException"])}return h(t,X),o(t)}();function ne(e){"object"==typeof e&&void 0!==(null==e?void 0:e.length)||j("Invalid argument for bytesToString");var t=e.length,r=8192;if(t>24&255,e>>16&255,e>>8&255,255&e)}function oe(e){return Object.keys(e).length}var se=function(){return o((function e(){c(this,e)}),null,[{key:"isLittleEndian",get:function(){return _(this,"isLittleEndian",((e=new Uint8Array(4))[0]=1,1===new Uint32Array(e.buffer,0,1)[0]));var e}},{key:"isEvalSupported",get:function(){return _(this,"isEvalSupported",function(){try{return new Function(""),!0}catch(e){return!1}}())}},{key:"isOffscreenCanvasSupported",get:function(){return _(this,"isOffscreenCanvasSupported","undefined"!=typeof OffscreenCanvas)}},{key:"platform",get:function(){var e,t;return"undefined"!=typeof navigator&&"string"==typeof(null===(e=navigator)||void 0===e?void 0:e.platform)?_(this,"platform",{isMac:navigator.platform.includes("Mac"),isWindows:navigator.platform.includes("Win"),isFirefox:"string"==typeof(null===(t=navigator)||void 0===t?void 0:t.userAgent)&&navigator.userAgent.includes("Firefox")}):_(this,"platform",{isMac:!1,isWindows:!1,isFirefox:!1})}},{key:"isCSSRoundSupported",get:function(){var e,t;return _(this,"isCSSRoundSupported",null===(e=globalThis.CSS)||void 0===e||null===(t=e.supports)||void 0===t?void 0:t.call(e,"width: round(1.5px, 1px)"))}}])}(),ce=Array.from(Array(256).keys(),(function(e){return e.toString(16).padStart(2,"0")})),ge=function(){function e(){c(this,e)}return o(e,null,[{key:"makeHexColor",value:function(e,t,r){return"#".concat(ce[e]).concat(ce[t]).concat(ce[r])}},{key:"scaleMinMax",value:function(e,t){var r;e[0]?(e[0]<0&&(r=t[0],t[0]=t[2],t[2]=r),t[0]*=e[0],t[2]*=e[0],e[3]<0&&(r=t[1],t[1]=t[3],t[3]=r),t[1]*=e[3],t[3]*=e[3]):(r=t[0],t[0]=t[1],t[1]=r,r=t[2],t[2]=t[3],t[3]=r,e[1]<0&&(r=t[1],t[1]=t[3],t[3]=r),t[1]*=e[1],t[3]*=e[1],e[2]<0&&(r=t[0],t[0]=t[2],t[2]=r),t[0]*=e[2],t[2]*=e[2]),t[0]+=e[4],t[1]+=e[5],t[2]+=e[4],t[3]+=e[5]}},{key:"transform",value:function(e,t){return[e[0]*t[0]+e[2]*t[1],e[1]*t[0]+e[3]*t[1],e[0]*t[2]+e[2]*t[3],e[1]*t[2]+e[3]*t[3],e[0]*t[4]+e[2]*t[5]+e[4],e[1]*t[4]+e[3]*t[5]+e[5]]}},{key:"applyTransform",value:function(e,t){return[e[0]*t[0]+e[1]*t[2]+t[4],e[0]*t[1]+e[1]*t[3]+t[5]]}},{key:"applyInverseTransform",value:function(e,t){var r=t[0]*t[3]-t[1]*t[2];return[(e[0]*t[3]-e[1]*t[2]+t[2]*t[5]-t[4]*t[3])/r,(-e[0]*t[1]+e[1]*t[0]+t[4]*t[1]-t[5]*t[0])/r]}},{key:"getAxialAlignedBoundingBox",value:function(e,t){var r=this.applyTransform(e,t),A=this.applyTransform(e.slice(2,4),t),n=this.applyTransform([e[0],e[3]],t),i=this.applyTransform([e[2],e[1]],t);return[Math.min(r[0],A[0],n[0],i[0]),Math.min(r[1],A[1],n[1],i[1]),Math.max(r[0],A[0],n[0],i[0]),Math.max(r[1],A[1],n[1],i[1])]}},{key:"inverseTransform",value:function(e){var t=e[0]*e[3]-e[1]*e[2];return[e[3]/t,-e[1]/t,-e[2]/t,e[0]/t,(e[2]*e[5]-e[4]*e[3])/t,(e[4]*e[1]-e[5]*e[0])/t]}},{key:"singularValueDecompose2dScale",value:function(e){var t=[e[0],e[2],e[1],e[3]],r=e[0]*t[0]+e[1]*t[2],A=e[0]*t[1]+e[1]*t[3],n=e[2]*t[0]+e[3]*t[2],i=e[2]*t[1]+e[3]*t[3],a=(r+i)/2,o=Math.sqrt(Math.pow(r+i,2)-4*(r*i-n*A))/2,s=a+o||1,c=a-o||1;return[Math.sqrt(s),Math.sqrt(c)]}},{key:"normalizeRect",value:function(e){var t=e.slice(0);return e[0]>e[2]&&(t[0]=e[2],t[2]=e[0]),e[1]>e[3]&&(t[1]=e[3],t[3]=e[1]),t}},{key:"intersect",value:function(e,t){var r=Math.max(Math.min(e[0],e[2]),Math.min(t[0],t[2])),A=Math.min(Math.max(e[0],e[2]),Math.max(t[0],t[2]));if(r>A)return null;var n=Math.max(Math.min(e[1],e[3]),Math.min(t[1],t[3])),i=Math.min(Math.max(e[1],e[3]),Math.max(t[1],t[3]));return n>i?null:[r,n,A,i]}},{key:"bezierBoundingBox",value:function(t,r,A,n,a,o,s,c,g){return g?(g[0]=Math.min(g[0],t,s),g[1]=Math.min(g[1],r,c),g[2]=Math.max(g[2],t,s),g[3]=Math.max(g[3],r,c)):g=[Math.min(t,s),Math.min(r,c),Math.max(t,s),Math.max(r,c)],i(e,this,le).call(this,t,A,a,s,r,n,o,c,3*(3*(A-a)-t+s),6*(t-2*A+a),3*(A-t),g),i(e,this,le).call(this,t,A,a,s,r,n,o,c,3*(3*(n-o)-r+c),6*(r-2*n+o),3*(n-r),g),g}}])}();function ue(e,t,r,A,n,i,a,o,s,c){if(!(s<=0||s>=1)){var g=1-s,u=s*s,l=u*s,h=g*(g*(g*e+3*s*t)+3*u*r)+l*A,I=g*(g*(g*n+3*s*i)+3*u*a)+l*o;c[0]=Math.min(c[0],h),c[1]=Math.min(c[1],I),c[2]=Math.max(c[2],h),c[3]=Math.max(c[3],I)}}function le(e,t,r,n,a,o,s,c,g,u,l,h){if(Math.abs(g)<1e-12)Math.abs(u)>=1e-12&&i(A,this,ue).call(this,e,t,r,n,a,o,s,c,-l/u,h);else{var I=Math.pow(u,2)-4*l*g;if(!(I<0)){var f=Math.sqrt(I),C=2*g;i(A,this,ue).call(this,e,t,r,n,a,o,s,c,(-u+f)/C,h),i(A,this,ue).call(this,e,t,r,n,a,o,s,c,(-u-f)/C,h)}}}A=ge;var he=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,728,711,710,729,733,731,730,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8226,8224,8225,8230,8212,8211,402,8260,8249,8250,8722,8240,8222,8220,8221,8216,8217,8218,8482,64257,64258,321,338,352,376,381,305,322,339,353,382,0,8364];function Ie(e){var t;if(e[0]>="ï"&&("þ"===e[0]&&"ÿ"===e[1]?(t="utf-16be",e.length%2==1&&(e=e.slice(0,-1))):"ÿ"===e[0]&&"þ"===e[1]?(t="utf-16le",e.length%2==1&&(e=e.slice(0,-1))):"ï"===e[0]&&"»"===e[1]&&"¿"===e[2]&&(t="utf-8"),t))try{var r=new TextDecoder(t,{fatal:!0}),A=ie(e),n=r.decode(A);return n.includes("\x1B")?n.replaceAll(/\\x1b[^\\x1b]*(?:\\x1b|$)/g,""):n}catch(e){q('stringToPDFString: "'.concat(e,'".'))}for(var i=[],a=0,o=e.length;a0&&void 0!==arguments[0]?arguments[0]:new Date;return[e.getUTCFullYear().toString(),(e.getUTCMonth()+1).toString().padStart(2,"0"),e.getUTCDate().toString().padStart(2,"0"),e.getUTCHours().toString().padStart(2,"0"),e.getUTCMinutes().toString().padStart(2,"0"),e.getUTCSeconds().toString().padStart(2,"0")].join("")}var Ee=null,de=null;function ye(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var A,n,i,a,o=[],s=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(A=i.call(r)).done)&&(o.push(A.value),o.length!==t);s=!0);}catch(e){c=!0,n=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw n}}return o}}(e,t)||ve(e,t)||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.")}()}function pe(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=ve(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function ve(e,t){if(e){if("string"==typeof e)return me(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)?me(e,t):void 0}}function me(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}function be(e,t,r,A,n,i,a){try{var o=e[i](a),s=o.value}catch(e){return void r(e)}o.done?t(s):Promise.resolve(s).then(A,n)}function ke(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function De(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:null;ke(this,e),this._map=Object.create(null),this.xref=t,this.objId=null,this.suppressEncryption=!1,this.__nonSerializable__=Je}return Se(e,[{key:"assignXref",value:function(e){this.xref=e}},{key:"size",get:function(){return Object.keys(this._map).length}},{key:"get",value:function(e,t,r){var A=this._map[e];return void 0===A&&void 0!==t&&void 0===(A=this._map[t])&&void 0!==r&&(A=this._map[r]),A instanceof Ye&&this.xref?this.xref.fetch(A,this.suppressEncryption):A}},{key:"getAsync",value:(t=we().mark((function e(t,r,A){var n;return we().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===(n=this._map[t])&&void 0!==r&&void 0===(n=this._map[r])&&void 0!==A&&(n=this._map[A]),!(n instanceof Ye&&this.xref)){e.next=4;break}return e.abrupt("return",this.xref.fetchAsync(n,this.suppressEncryption));case 4:return e.abrupt("return",n);case 5:case"end":return e.stop()}}),e,this)})),r=function(){var e=this,r=arguments;return new Promise((function(A,n){var i=t.apply(e,r);function a(e){be(i,A,n,a,o,"next",e)}function o(e){be(i,A,n,a,o,"throw",e)}a(void 0)}))},function(e,t,A){return r.apply(this,arguments)})},{key:"getArray",value:function(e,t,r){var A=this._map[e];if(void 0===A&&void 0!==t&&void 0===(A=this._map[t])&&void 0!==r&&(A=this._map[r]),A instanceof Ye&&this.xref&&(A=this.xref.fetch(A,this.suppressEncryption)),Array.isArray(A))for(var n=0,i=(A=A.slice()).length;n0&&(o._map[d]=v)}else o._map[d]=y[0]}}catch(e){Q.e(e)}finally{Q.f()}return s.clear(),o.size>0?o:e.empty}}]);var t,r}(),Ye=function(){function e(t,r){ke(this,e),this.num=t,this.gen=r}return Se(e,[{key:"toString",value:function(){return 0===this.gen?"".concat(this.num,"R"):"".concat(this.num,"R").concat(this.gen)}}],[{key:"fromString",value:function(t){var r=Le[t];if(r)return r;var A=/^(\\d+)R(\\d*)$/.exec(t);return A&&"0"!==A[1]?Le[t]=new e(parseInt(A[1]),A[2]?parseInt(A[2]):0):null}},{key:"get",value:function(t,r){var A,n=0===r?"".concat(t,"R"):"".concat(t,"R").concat(r);return(A=Le)[n]||(A[n]=new e(t,r))}}])}(),Pe=function(){return Se((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;ke(this,e),this._set=new Set(null==t?void 0:t._set)}),[{key:"has",value:function(e){return this._set.has(e.toString())}},{key:"put",value:function(e){this._set.add(e.toString())}},{key:"remove",value:function(e){this._set.delete(e.toString())}},{key:Symbol.iterator,value:function(){return this._set.values()}},{key:"clear",value:function(){this._set.clear()}}])}(),Oe=function(){return Se((function e(){ke(this,e),this._map=new Map}),[{key:"size",get:function(){return this._map.size}},{key:"get",value:function(e){return this._map.get(e.toString())}},{key:"has",value:function(e){return this._map.has(e.toString())}},{key:"put",value:function(e,t){this._map.set(e.toString(),t)}},{key:"putAlias",value:function(e,t){this._map.set(e.toString(),this.get(t))}},{key:Symbol.iterator,value:function(){return this._map.values()}},{key:"clear",value:function(){this._map.clear()}},{key:"items",value:we().mark((function e(){var t,r,A,n,i;return we().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=pe(this._map),e.prev=1,t.s();case 3:if((r=t.n()).done){e.next=9;break}return A=ye(r.value,2),n=A[0],i=A[1],e.next=7,[Ye.fromString(n),i];case 7:e.next=3;break;case 9:e.next=14;break;case 11:e.prev=11,e.t0=e.catch(1),t.e(e.t0);case 14:return e.prev=14,t.f(),e.finish(14);case 17:case"end":return e.stop()}}),e,this,[[1,11,14,17]])}))}])}();function Ke(e,t){return e instanceof Ue&&(void 0===t||e.name===t)}function Te(e,t){return e instanceof Me&&(void 0===t||e.cmd===t)}function qe(e,t){return e instanceof He&&(void 0===t||Ke(e.get("Type"),t))}function je(e,t){return e.num===t.num&&e.gen===t.gen}function We(){We=function(){return t};var e,t={},r=Object.prototype,A=r.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,r){return e[t]=r}}function g(e,t,r,A){var i=t&&t.prototype instanceof B?t:B,a=Object.create(i.prototype),o=new F(A||[]);return n(a,"_invoke",{value:b(e,r,o)}),a}function u(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=g;var l="suspendedStart",h="suspendedYield",I="executing",f="completed",C={};function B(){}function Q(){}function E(){}var d={};c(d,a,(function(){return this}));var y=Object.getPrototypeOf,p=y&&y(y(x([])));p&&p!==r&&A.call(p,a)&&(d=p);var v=E.prototype=B.prototype=Object.create(d);function m(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function r(n,i,a,o){var s=u(e[n],e,i);if("throw"!==s.type){var c=s.arg,g=c.value;return g&&"object"==typeof g&&A.call(g,"__await")?t.resolve(g.__await).then((function(e){r("next",e,a,o)}),(function(e){r("throw",e,a,o)})):t.resolve(g).then((function(e){c.value=e,a(c)}),(function(e){return r("throw",e,a,o)}))}o(s.arg)}var i;n(this,"_invoke",{value:function(e,A){function n(){return new t((function(t,n){r(e,A,t,n)}))}return i=i?i.then(n,n):n()}})}function b(t,r,A){var n=l;return function(i,a){if(n===I)throw Error("Generator is already running");if(n===f){if("throw"===i)throw a;return{value:e,done:!0}}for(A.method=i,A.arg=a;;){var o=A.delegate;if(o){var s=k(o,A);if(s){if(s===C)continue;return s}}if("next"===A.method)A.sent=A._sent=A.arg;else if("throw"===A.method){if(n===l)throw n=f,A.arg;A.dispatchException(A.arg)}else"return"===A.method&&A.abrupt("return",A.arg);n=I;var c=u(t,r,A);if("normal"===c.type){if(n=A.done?f:h,c.arg===C)continue;return{value:c.arg,done:A.done}}"throw"===c.type&&(n=f,A.method="throw",A.arg=c.arg)}}}function k(t,r){var A=r.method,n=t.iterator[A];if(n===e)return r.delegate=null,"throw"===A&&t.iterator.return&&(r.method="return",r.arg=e,k(t,r),"throw"===r.method)||"return"!==A&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+A+"' method")),C;var i=u(n,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,C;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,C):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,C)}function D(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function F(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(D,this),this.reset(!0)}function x(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,i=function r(){for(;++n=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}function Ze(e,t,r,A,n,i,a){try{var o=e[i](a),s=o.value}catch(e){return void r(e)}o.done?t(s):Promise.resolve(s).then(A,n)}function _e(e){return function(){var t=this,r=arguments;return new Promise((function(A,n){var i=e.apply(t,r);function a(e){Ze(i,A,n,a,o,"next",e)}function o(e){Ze(i,A,n,a,o,"throw",e)}a(void 0)}))}}function Xe(e,t){for(var r=0;r=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}var tt=et().mark(Ht);function rt(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=At(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function At(e,t){if(e){if("string"==typeof e)return nt(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)?nt(e,t):void 0}}function nt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r1&&void 0!==arguments[1]&&arguments[1];W(Number.isInteger(e)&&e>0,"The number should be a positive integer.");for(var r,A=[];e>=1e3;)e-=1e3,A.push("M");r=e/100|0,e%=100,A.push(pt[r]),r=e/10|0,e%=10,A.push(pt[10+r]),A.push(pt[20+e]);var n=A.join("");return t?n.toLowerCase():n}function mt(e){return e<=0?0:Math.ceil(Math.log2(e))}function wt(e,t){return e[t]<<24>>24}function bt(e,t){return e[t]<<8|e[t+1]}function kt(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}function Dt(e){return 32===e||9===e||13===e||10===e}function St(e,t){return Array.isArray(e)?(null===t||e.length===t)&&e.every((function(e){return"number"==typeof e})):ArrayBuffer.isView(e)&&(0===e.length||"number"==typeof e[0])&&(null===t||e.length===t)}function Ft(e,t){return St(e,6)?e:t}function xt(e,t){return St(e,4)?e:t}function Rt(e,t){return St(e,4)?ge.normalizeRect(e):t}function Gt(e){var t=/(.+)\\[(\\d+)\\]$/;return e.split(".").map((function(e){var r=e.match(t);return r?{name:r[1],pos:parseInt(r[2],10)}:{name:e,pos:0}}))}function Nt(e){for(var t=[],r=0,A=0,n=e.length;A126||35===i||40===i||41===i||60===i||62===i||91===i||93===i||123===i||125===i||47===i||37===i)&&(r=0;i--){var a=n[i];if(a instanceof He){var o,s=rt(a.getKeys());try{for(s.s();!(o=s.n()).done;){var c=o.value,g=r[c];if(g){var u=a.getRaw(c),l=new Pe,h=[];Ut(u,e,h,l),h.length>0&&(A[g]=h)}}}catch(e){s.e(e)}finally{s.f()}}}if(t.has("A")){var I=[];Ut(t.get("A"),e,I,new Pe),I.length>0&&(A.Action=I)}return oe(A)>0?A:null}var Jt={60:"<",62:">",38:"&",34:""",39:"'"};function Ht(e){var t,r,A;return et().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:t=0,r=e.length;case 1:if(!(t55295&&(A<57344||A>65533)&&t++,n.next=6,A;case 6:t++,n.next=1;break;case 9:case"end":return n.stop()}}),tt)}function Yt(e){for(var t=[],r=0,A=0,n=e.length;A55295&&(i<57344||i>65533)&&A++,r=A+1}return 0===t.length?e:(r1&&void 0!==arguments[1]&&arguments[1],r=/^("|').*("|')$/.exec(e);if(r&&r[1]===r[2]){if(new RegExp("[^\\\\\\\\]".concat(r[1])).test(e.slice(1,-1)))return t&&q("FontFamily contains unescaped ".concat(r[1],": ").concat(e,".")),!1}else{var A,n=rt(e.split(/[ \\t]+/));try{for(n.s();!(A=n.n()).done;){var i=A.value;if(/^(\\d|(-(\\d|-)))/.test(i)||!/^[\\w-\\\\]+$/.test(i))return t&&q("FontFamily contains invalid : ".concat(e,".")),!1}}catch(e){n.e(e)}finally{n.f()}}return!0}function Ot(e){var t=new Set(["100","200","300","400","500","600","700","800","900","1000","normal","bold","bolder","lighter"]),r=e.fontFamily,A=e.fontWeight,n=e.italicAngle;if(!Pt(r,!0))return!1;var i=A?A.toString():"";e.fontWeight=t.has(i)?i:"400";var a=parseFloat(n);return e.italicAngle=isNaN(a)||a<-90||a>90?"14":n.toString(),!0}function Kt(e){var t=new RegExp("^\\\\s*("+["app.launchURL","window.open","xfa.host.gotoURL"].join("|").replaceAll(".","\\\\.")+")\\\\((?:'|\\")([^'\\"]*)(?:'|\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))","i").exec(e);if(null!=t&&t[2]){var r=t[2],A=!1;return"true"===t[3]&&"app.launchURL"===t[1]&&(A=!0),{url:r,newWindow:A}}return null}function Tt(e){if(Number.isInteger(e))return e.toString();var t=Math.round(100*e);return t%100==0?(t/100).toString():t%10==0?e.toFixed(1):e.toFixed(2)}function qt(e){if(!e)return null;var t,r=new Map,A=rt(e);try{for(A.s();!(t=A.n()).done;){var n=$e(t.value,2),i=n[0],a=n[1];if(i.startsWith(d)){var o=r.get(a.pageIndex);o||(o=[],r.set(a.pageIndex,o)),o.push(a)}}}catch(e){A.e(e)}finally{A.f()}return r.size>0?r:null}function jt(e){return function(e){return/^[\\x00-\\x7F]*$/.test(e)}(e)?e:Zt(e,!0)}function Wt(e){for(var t=[],r=0,A=e.length;r>8&255).toString(16).padStart(2,"0"),(255&n).toString(16).padStart(2,"0"))}return t.join("")}function Zt(e){var t=[];arguments.length>1&&void 0!==arguments[1]&&arguments[1]&&t.push("þÿ");for(var r=0,A=e.length;r>8&255),String.fromCharCode(255&n))}return t.join("")}function _t(e,t,r){switch(e){case 90:return[0,1,-1,0,t,0];case 180:return[-1,0,0,-1,t,r];case 270:return[0,-1,1,0,0,r];default:throw new Error("Invalid rotation")}}function Xt(e){return Math.ceil(Math.ceil(Math.log2(1+e))/8)}function Vt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function zt(e,t){for(var r=0;r=this.end?-1:this.bytes[this.pos++]}},{key:"getBytes",value:function(e){var t=this.bytes,r=this.pos,A=this.end;if(!e)return t.subarray(r,A);var n=r+e;return n>A&&(n=A),this.pos=n,t.subarray(r,n)}},{key:"getByteRange",value:function(e,t){return e<0&&(e=0),t>this.end&&(t=this.end),this.bytes.subarray(e,t)}},{key:"reset",value:function(){this.pos=this.start}},{key:"moveStart",value:function(){this.start=this.pos}},{key:"makeSubStream",value:function(e,r){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return new t(this.bytes.buffer,e,r,A)}}])}(),or=function(e){function t(e){return Vt(this,t),tr(this,t,[ie(e)])}return nr(t,ar),$t(t)}(),sr=function(e){function t(){return Vt(this,t),tr(this,t,[new Uint8Array(0)])}return nr(t,ar),$t(t)}();function cr(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return gr(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)?gr(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function gr(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r=this.end?this.numChunks:Math.floor(t/this.chunkSize),n=r;nthis.numChunks)&&t!==this.lastSuccessfulEnsureByteChunk){if(!this._loadedChunks.has(t))throw new Ct(e,e+1);this.lastSuccessfulEnsureByteChunk=t}}}},{key:"ensureRange",value:function(e,t){if(!(e>=t||t<=this.progressiveDataLength)){var r=Math.floor(e/this.chunkSize);if(!(r>this.numChunks))for(var A=Math.min(Math.floor((t-1)/this.chunkSize)+1,this.numChunks),n=r;n=this.end?-1:(e>=this.progressiveDataLength&&this.ensureByte(e),this.bytes[this.pos++])}},{key:"getBytes",value:function(e){var t=this.bytes,r=this.pos,A=this.end;if(!e)return A>this.progressiveDataLength&&this.ensureRange(r,A),t.subarray(r,A);var n=r+e;return n>A&&(n=A),n>this.progressiveDataLength&&this.ensureRange(r,n),this.pos=n,t.subarray(r,n)}},{key:"getByteRange",value:function(e,t){return e<0&&(e=0),t>this.end&&(t=this.end),t>this.progressiveDataLength&&this.ensureRange(e,t),this.bytes.subarray(e,t)}},{key:"makeSubStream",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;function A(){}t?e+t>this.progressiveDataLength&&this.ensureRange(e,e+t):e>=this.progressiveDataLength&&this.ensureByte(e),A.prototype=Object.create(this),A.prototype.getMissingChunks=function(){for(var e=this.chunkSize,t=Math.floor(this.start/e),r=Math.floor((this.end-1)/e)+1,A=[],n=t;n0&&void 0!==arguments[0]&&arguments[0])){var e=this.stream.getMissingChunks();this._requestChunks(e)}return this._loadedStreamCapability.promise}},{key:"_requestChunks",value:function(e){var t=this,r=this.currRequestId++,A=new Set;this._chunksNeededByRequest.set(r,A);var n,i=cr(e);try{for(i.s();!(n=i.n()).done;){var a=n.value;this.stream.hasChunk(a)||A.add(a)}}catch(e){i.e(e)}finally{i.f()}if(0===A.size)return Promise.resolve();var o=Promise.withResolvers();this._promisesByRequest.set(r,o);var s,c=[],g=cr(A);try{for(g.s();!(s=g.n()).done;){var u=s.value,l=this._requestsByChunk.get(u);l||(l=[],this._requestsByChunk.set(u,l),c.push(u)),l.push(r)}}catch(e){g.e(e)}finally{g.f()}if(c.length>0){var h,I=cr(this.groupChunks(c));try{for(I.s();!(h=I.n()).done;){var f=h.value,C=f.beginChunk*this.chunkSize,B=Math.min(f.endChunk*this.chunkSize,this.length);this.sendRequest(C,B).catch(o.reject)}}catch(e){I.e(e)}finally{I.f()}}return o.promise.catch((function(e){if(!t.aborted)throw e}))}},{key:"getStream",value:function(){return this.stream}},{key:"requestRange",value:function(e,t){t=Math.min(t,this.length);for(var r=this.getBeginChunk(e),A=this.getEndChunk(t),n=[],i=r;i0&&void 0!==arguments[0]?arguments[0]:[]);try{for(r.s();!(e=r.n()).done;)for(var A=e.value,n=this.getBeginChunk(A.begin),i=this.getEndChunk(A.end),a=n;a=0&&A+1!==a&&(t.push({beginChunk:r,endChunk:A+1}),r=a),n+1===e.length&&t.push({beginChunk:r,endChunk:a+1}),A=a}return t}},{key:"onProgress",value:function(e){this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize+e.loaded,total:this.length})}},{key:"onReceiveData",value:function(e){var t=e.chunk,r=void 0===e.begin,A=r?this.progressiveDataLength:e.begin,n=A+t.byteLength,i=Math.floor(A/this.chunkSize),a=n0||o.push(l)}}catch(e){u.e(e)}finally{u.f()}}}if(!this.disableAutoFetch&&0===this._requestsByChunk.size){var I;if(1===this.stream.numChunksLoaded){var f=this.stream.numChunks-1;this.stream.hasChunk(f)||(I=f)}else I=this.stream.nextEmptyChunk(a);Number.isInteger(I)&&this._requestChunks([I])}for(var C=0,B=o;Ce.length)&&(t=e.length);for(var r=0,A=Array(t);r=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}function xr(e,t,r,A,n,i,a){try{var o=e[i](a),s=o.value}catch(e){return void r(e)}o.done?t(s):Promise.resolve(s).then(A,n)}function Rr(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Gr(e,t){for(var r=0;ru&&"DeviceGray"!==this.name&&"DeviceRGB"!==this.name){for(var h=a<=8?new Uint8Array(u):new Uint16Array(u),I=0;I2&&void 0!==arguments[2]?arguments[2]:null,A=arguments.length>3?arguments[3]:void 0;if((e=t.fetchIfRef(e))instanceof Ue)switch(e.name){case"G":case"DeviceGray":return this.singletons.gray;case"RGB":case"DeviceRGB":return this.singletons.rgb;case"DeviceRGBA":return this.singletons.rgba;case"CMYK":case"DeviceCMYK":return this.singletons.cmyk;case"Pattern":return new Jr(null);default:if(r instanceof He){var n=r.get("ColorSpace");if(n instanceof He){var i=n.get(e.name);if(i){if(i instanceof Ue)return this._parse(i,t,r,A);e=i;break}}}return q("Unrecognized ColorSpace: ".concat(e.name)),this.singletons.gray}if(Array.isArray(e)){var a,o,s,c,g,u,l=t.fetchIfRef(e[0]).name;switch(l){case"G":case"DeviceGray":return this.singletons.gray;case"RGB":case"DeviceRGB":return this.singletons.rgb;case"CMYK":case"DeviceCMYK":return this.singletons.cmyk;case"CalGray":return c=(a=t.fetchIfRef(e[1])).getArray("WhitePoint"),g=a.getArray("BlackPoint"),u=a.get("Gamma"),new Wr(c,g,u);case"CalRGB":c=(a=t.fetchIfRef(e[1])).getArray("WhitePoint"),g=a.getArray("BlackPoint"),u=a.getArray("Gamma");var h=a.getArray("Matrix");return new Xr(c,g,u,h);case"ICCBased":var I=t.fetchIfRef(e[1]).dict;o=I.get("N");var f=I.get("Alternate");if(f){var C=this._parse(f,t,r,A);if(C.numComps===o)return C;q("ICCBased color space: Ignoring incorrect /Alternate entry.")}if(1===o)return this.singletons.gray;if(3===o)return this.singletons.rgb;if(4===o)return this.singletons.cmyk;break;case"Pattern":return(s=e[1]||null)&&(s=this._parse(s,t,r,A)),new Jr(s);case"I":case"Indexed":s=this._parse(e[1],t,r,A);var B=t.fetchIfRef(e[2])+1,Q=t.fetchIfRef(e[3]);return new Hr(s,B,Q);case"Separation":case"DeviceN":var E=t.fetchIfRef(e[1]);o=Array.isArray(E)?E.length:1,s=this._parse(e[2],t,r,A);var d=A.create(e[3]);return new Mr(o,s,d);case"Lab":c=(a=t.fetchIfRef(e[1])).getArray("WhitePoint"),g=a.getArray("BlackPoint");var y=a.getArray("Range");return new CA(c,g,y);default:return q("Unimplemented ColorSpace object: ".concat(l)),this.singletons.gray}}return q("Unrecognized ColorSpace object: ".concat(e)),this.singletons.gray}},{key:"isDefaultDecode",value:function(e,t){if(!Array.isArray(e))return!0;if(2*t!==e.length)return q("The decode map is not the correct length"),!0;for(var r=0,A=e.length;r=.99554525?1:mr(_r,this,tA).call(this,0,1,1.055*Math.pow(e,1/2.4)-.055)}function tA(e,t,r){return Math.max(e,Math.min(t,r))}function rA(e){return e<0?-mr(_r,this,rA).call(this,-e):e>8?Math.pow((e+16)/116,3):e*IA._}function AA(e,t,r){if(0===e[0]&&0===e[1]&&0===e[2])return r[0]=t[0],r[1]=t[1],void(r[2]=t[2]);var A=mr(_r,this,rA).call(this,0),n=(1-A)/(1-mr(_r,this,rA).call(this,e[0])),i=1-n,a=(1-A)/(1-mr(_r,this,rA).call(this,e[1])),o=1-a,s=(1-A)/(1-mr(_r,this,rA).call(this,e[2])),c=1-s;r[0]=t[0]*n+i,r[1]=t[1]*a+o,r[2]=t[2]*s+c}function nA(e,t,r){if(1===e[0]&&1===e[2])return r[0]=t[0],r[1]=t[1],void(r[2]=t[2]);var A=r;mr(_r,this,Vr).call(this,oA._,t,A);var n=uA._;mr(_r,this,zr).call(this,e,A,n),mr(_r,this,Vr).call(this,sA._,n,r)}function iA(e,t,r){var A=r;mr(_r,this,Vr).call(this,oA._,t,A);var n=uA._;mr(_r,this,$r).call(this,e,A,n),mr(_r,this,Vr).call(this,sA._,n,r)}function aA(e,t,r,A,n){var i=mr(_r,this,tA).call(this,0,1,e[t]*n),a=mr(_r,this,tA).call(this,0,1,e[t+1]*n),o=mr(_r,this,tA).call(this,0,1,e[t+2]*n),s=1===i?1:Math.pow(i,this.GR),c=1===a?1:Math.pow(a,this.GG),g=1===o?1:Math.pow(o,this.GB),u=this.MXA*s+this.MXB*c+this.MXC*g,l=this.MYA*s+this.MYB*c+this.MYC*g,h=this.MZA*s+this.MZB*c+this.MZC*g,I=lA._;I[0]=u,I[1]=l,I[2]=h;var f=hA._;mr(_r,this,nA).call(this,this.whitePoint,I,f);var C=lA._;mr(_r,this,AA).call(this,this.blackPoint,f,C);var B=hA._;mr(_r,this,iA).call(this,gA._,C,B);var Q=lA._;mr(_r,this,Vr).call(this,cA._,B,Q),r[A]=255*mr(_r,this,eA).call(this,Q[0]),r[A+1]=255*mr(_r,this,eA).call(this,Q[1]),r[A+2]=255*mr(_r,this,eA).call(this,Q[2])}var oA={_:new Float32Array([.8951,.2664,-.1614,-.7502,1.7135,.0367,.0389,-.0685,1.0296])},sA={_:new Float32Array([.9869929,-.1470543,.1599627,.4323053,.5183603,.0492912,-.0085287,.0400428,.9684867])},cA={_:new Float32Array([3.2404542,-1.5371385,-.4985314,-.969266,1.8760108,.041556,.0556434,-.2040259,1.0572252])},gA={_:new Float32Array([1,1,1])},uA={_:new Float32Array(3)},lA={_:new Float32Array(3)},hA={_:new Float32Array(3)},IA={_:Math.pow(24/116,3)/8},fA=new WeakSet,CA=function(e){function t(e,r,A){var n;if(Rr(this,t),vr(n=wr(this,t,["Lab",3]),fA),!e)throw new re("WhitePoint missing - required for color space Lab");var i=yr(e,3);n.XW=i[0],n.YW=i[1],n.ZW=i[2];var a=yr(A||[-100,100,-100,100],4);n.amin=a[0],n.amax=a[1],n.bmin=a[2],n.bmax=a[3];var o=yr(r||[0,0,0],3);if(n.XB=o[0],n.YB=o[1],n.ZB=o[2],n.XW<0||n.ZW<0||1!==n.YW)throw new re("Invalid WhitePoint components, no fallback available");return(n.XB<0||n.YB<0||n.ZB<0)&&(T("Invalid BlackPoint, falling back to default"),n.XB=n.YB=n.ZB=0),(n.amin>n.amax||n.bmin>n.bmax)&&(T("Invalid Range, falling back to defaults"),n.amin=-100,n.amax=100,n.bmin=-100,n.bmax=100),n}return Dr(t,Ur),Nr(t,[{key:"getRgbItem",value:function(e,t,r,A){mr(fA,this,EA).call(this,e,t,!1,r,A)}},{key:"getRgbBuffer",value:function(e,t,r,A,n,i,a){for(var o=(1<=6/29?Math.pow(e,3):108/841*(e-4/29)}function QA(e,t,r,A){return r+e*(A-r)/t}function EA(e,t,r,A,n){var i=e[t],a=e[t+1],o=e[t+2];!1!==r&&(i=mr(fA,this,QA).call(this,i,r,0,100),a=mr(fA,this,QA).call(this,a,r,this.amin,this.amax),o=mr(fA,this,QA).call(this,o,r,this.bmin,this.bmax)),a>this.amax?a=this.amax:athis.bmax?o=this.bmax:o=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}function yA(e,t,r,A,n,i,a){try{var o=e[i](a),s=o.value}catch(e){return void r(e)}o.done?t(s):Promise.resolve(s).then(A,n)}function pA(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function vA(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,A=Array(t);r>>0}function DA(e,t){return 1===t?String.fromCharCode(e[0],e[1]):3===t?String.fromCharCode(e[0],e[1],e[2],e[3]):String.fromCharCode.apply(String,function(e){return function(e){if(Array.isArray(e))return bA(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return bA(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)?bA(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(e.subarray(0,t+1)))}function SA(e,t,r){for(var A=0,n=r;n>=0;n--)A+=e[n]+t[n],e[n]=255&A,A>>=8}function FA(e,t){for(var r=1,A=t;A>=0&&r>0;A--)r+=e[A],e[A]=255&r,r>>=8}r(3276);var xA=16,RA=function(){return mA((function e(t){pA(this,e),this.buffer=t,this.pos=0,this.end=t.length,this.tmpBuf=new Uint8Array(19)}),[{key:"readByte",value:function(){return this.pos>=this.end?-1:this.buffer[this.pos++]}},{key:"readNumber",value:function(){var e,t=0;do{var r=this.readByte();if(r<0)throw new re("unexpected EOF in bcmap");e=!(128&r),t=t<<7|127&r}while(!e);return t}},{key:"readSigned",value:function(){var e=this.readNumber();return 1&e?~(e>>>1):e>>>1}},{key:"readHex",value:function(e,t){e.set(this.buffer.subarray(this.pos,this.pos+t+1)),this.pos+=t+1}},{key:"readHexNumber",value:function(e,t){var r,A=this.tmpBuf,n=0;do{var i=this.readByte();if(i<0)throw new re("unexpected EOF in bcmap");r=!(128&i),A[n++]=127&i}while(!r);for(var a=t,o=0,s=0;a>=0;){for(;s<8&&A.length>0;)o|=A[--n]<>=8,s-=8}}},{key:"readHexSigned",value:function(e,t){this.readHexNumber(e,t);for(var r=1&e[t]?255:0,A=0,n=0;n<=t;n++)A=(1&A)<<8|e[n],e[n]=A>>1^r}},{key:"readString",value:function(){for(var e=this.readNumber(),t=new Array(e),r=0;r=0)){e.next=68;break}if(7!=(I=h>>5)){e.next=20;break}e.t0=31&h,e.next=0===e.t0?15:1===e.t0?17:19;break;case 15:return n.readString(),e.abrupt("break",19);case 17:return a=n.readString(),e.abrupt("break",19);case 19:return e.abrupt("continue",9);case 20:if(f=!!(16&h),!(1+(C=15&h)>xA)){e.next=24;break}throw new Error("BinaryCMapReader.process: Invalid dataSize.");case 24:B=1,Q=n.readNumber(),e.t1=I,e.next=0===e.t1?29:1===e.t1?35:2===e.t1?41:3===e.t1?46:4===e.t1?53:5===e.t1?58:65;break;case 29:for(n.readHex(o,C),n.readHexNumber(s,C),SA(s,o,C),r.addCodespaceRange(C+1,kA(o,C),kA(s,C)),E=1;E=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function UA(e,t){if(e){if("string"==typeof e)return MA(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)?MA(e,t):void 0}}function MA(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}function HA(e,t,r,A,n,i,a){try{var o=e[i](a),s=o.value}catch(e){return void r(e)}o.done?t(s):Promise.resolve(s).then(A,n)}function YA(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function PA(e,t){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:null,A=this.pos;if(e){for(this.ensureBuffer(A+e),t=A+e;!this.eof&&this.bufferLengthn&&(t=n)}else{for(;!this.eof;)this.readBlock(r);t=this.bufferLength}return this.pos=t,this.buffer.subarray(A,t)}},{key:"getImageData",value:(r=JA().mark((function e(t){var r,A,n=arguments;return JA().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n.length>1&&void 0!==n[1]?n[1]:null,this.canAsyncDecodeImageFromBuffer){e.next=3;break}return e.abrupt("return",this.getBytes(t,r));case 3:return e.next=5,this.stream.asyncGetBytes();case 5:return A=e.sent,e.abrupt("return",this.decodeImage(A,r));case 7:case"end":return e.stop()}}),e,this)})),A=function(){var e=this,t=arguments;return new Promise((function(A,n){var i=r.apply(e,t);function a(e){HA(i,A,n,a,o,"next",e)}function o(e){HA(i,A,n,a,o,"throw",e)}a(void 0)}))},function(e){return A.apply(this,arguments)})},{key:"reset",value:function(){this.pos=0}},{key:"makeSubStream",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(void 0===t)for(;!this.eof;)this.readBlock();else for(var A=e+t;this.bufferLength<=A&&!this.eof;)this.readBlock();return new ar(this.buffer,e,t,r)}},{key:"getBaseStreams",value:function(){return this.str?this.str.getBaseStreams():null}}]);var r,A}(),VA=function(e){function t(e){var r,A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;YA(this,t);var n,i=0,a=LA(e);try{for(a.s();!(n=a.n()).done;){var o=n.value;i+=o instanceof XA?o._rawMinBufferLength:o.length}}catch(e){a.e(e)}finally{a.f()}return(r=TA(this,t,[i])).streams=e,r._onError=A,r}return WA(t,XA),OA(t,[{key:"readBlock",value:function(){var e=this.streams;if(0!==e.length){var t,r=e.shift();try{t=r.getBytes()}catch(e){var A;if(this._onError)return void this._onError(e,null===(A=r.dict)||void 0===A?void 0:A.objId);throw e}var n=this.bufferLength,i=n+t.length;this.ensureBuffer(i).set(t,n),this.bufferLength=i}else this.eof=!0}},{key:"getBaseStreams",value:function(){var e,t=[],r=LA(this.streams);try{for(r.s();!(e=r.n()).done;){var A=e.value.getBaseStreams();A&&t.push.apply(t,NA(A))}}catch(e){r.e(e)}finally{r.f()}return t.length>0?t:null}}])}();function zA(e,t){for(var r=0;r=0;--A)r[n+A]=255&a,a>>=8}}else this.eof=!0}}],A&&zA(r.prototype,A),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,A}();function an(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r>1,A=this.ensureBuffer(this.bufferLength+r),n=this.bufferLength,i=this.firstDigit,a=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return an(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)?an(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}(e);try{for(a.s();!(t=a.n()).done;){var o=t.value,s=void 0;if(o>=48&&o<=57)s=15&o;else{if(!(o>=65&&o<=70||o>=97&&o<=102)){if(62===o){this.eof=!0;break}continue}s=9+(15&o)}i<0?i=s:(A[n++]=i<<4|s,i=-1)}}catch(e){a.e(e)}finally{a.f()}i>=0&&this.eof&&(A[n++]=i<<4,i=-1),this.firstDigit=i,this.bufferLength=n}else this.eof=!0}}])&&on(r.prototype,A),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,A}();function In(e,t){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:{};if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),!t||"function"!=typeof t.next)throw new Error('CCITTFaxDecoder - invalid "source" parameter.');for(this.source=t,this.eof=!1,this.encoding=n.K||0,this.eoline=n.EndOfLine||!1,this.byteAlign=n.EncodedByteAlign||!1,this.columns=n.Columns||1728,this.rows=n.Rows||0,this.eoblock=null===(r=n.EndOfBlock)||void 0===r||r,this.black=n.BlackIs1||!1,this.codingLine=new Uint32Array(this.columns+1),this.refLine=new Uint32Array(this.columns+2),this.codingLine[0]=this.columns,this.codingPos=0,this.row=0,this.nextLine2D=this.encoding<0,this.inputBits=0,this.inputBuf=0,this.outputBits=0,this.rowsDone=!1;0===(A=this._lookBits(12));)this._eatBits(1);1===A&&this._eatBits(12),this.encoding>0&&(this.nextLine2D=!this._lookBits(1),this._eatBits(1))},(t=[{key:"readNextChar",value:function(){if(this.eof)return-1;var e,t,r,A,n,i=this.refLine,a=this.codingLine,o=this.columns;if(0===this.outputBits){if(this.rowsDone&&(this.eof=!0),this.eof)return-1;var s,c,g;if(this.err=!1,this.nextLine2D){for(A=0;a[A]=64);do{c+=g=this._getWhiteCode()}while(g>=64)}else{do{s+=g=this._getWhiteCode()}while(g>=64);do{c+=g=this._getBlackCode()}while(g>=64)}for(this._addPixels(a[this.codingPos]+s,t),a[this.codingPos]0?--e:++e;i[e]<=a[this.codingPos]&&i[e]0?--e:++e;i[e]<=a[this.codingPos]&&i[e]0?--e:++e;i[e]<=a[this.codingPos]&&i[e]=64);else do{s+=g=this._getWhiteCode()}while(g>=64);this._addPixels(a[this.codingPos]+s,t),t^=1}var u=!1;if(this.byteAlign&&(this.inputBits&=-8),this.eoblock||this.row!==this.rows-1){if(s=this._lookBits(12),this.eoline)for(;s!==Cn&&1!==s;)this._eatBits(1),s=this._lookBits(12);else for(;0===s;)this._eatBits(1),s=this._lookBits(12);1===s?(this._eatBits(12),u=!0):s===Cn&&(this.eof=!0)}else this.rowsDone=!0;if(!this.eof&&this.encoding>0&&!this.rowsDone&&(this.nextLine2D=!this._lookBits(1),this._eatBits(1)),this.eoblock&&u&&this.byteAlign){if(1===(s=this._lookBits(12))){if(this._eatBits(12),this.encoding>0&&(this._lookBits(1),this._eatBits(1)),this.encoding>=0)for(A=0;A<4;++A)1!==(s=this._lookBits(12))&&T("bad rtc code: "+s),this._eatBits(12),this.encoding>0&&(this._lookBits(1),this._eatBits(1));this.eof=!0}}else if(this.err&&this.eoline){for(;;){if((s=this._lookBits(13))===Cn)return this.eof=!0,-1;if(s>>1==1)break;this._eatBits(1)}this._eatBits(12),this.encoding>0&&(this._eatBits(1),this.nextLine2D=!(1&s))}this.outputBits=a[0]>0?a[this.codingPos=0]:a[this.codingPos=1],this.row++}if(this.outputBits>=8)n=1&this.codingPos?0:255,this.outputBits-=8,0===this.outputBits&&a[this.codingPos]r?(n<<=r,1&this.codingPos||(n|=255>>8-r),this.outputBits-=r,r=0):(n<<=this.outputBits,1&this.codingPos||(n|=255>>8-this.outputBits),r-=this.outputBits,this.outputBits=0,a[this.codingPos]0&&(n<<=r,r=0))}while(r)}return this.black&&(n^=255),n}},{key:"_addPixels",value:function(e,t){var r=this.codingLine,A=this.codingPos;e>r[A]&&(e>this.columns&&(T("row is wrong length"),this.err=!0,e=this.columns),1&A^t&&++A,r[A]=e),this.codingPos=A}},{key:"_addPixelsNeg",value:function(e,t){var r=this.codingLine,A=this.codingPos;if(e>r[A])e>this.columns&&(T("row is wrong length"),this.err=!0,e=this.columns),1&A^t&&++A,r[A]=e;else if(e0&&e=n){var o=r[a-n];if(o[0]===i)return this._eatBits(i),[!0,o[1],!0]}}return[!1,0,!1]}},{key:"_getTwoDimCode",value:function(){var e,t=0;if(this.eoblock){var r;if(t=this._lookBits(7),(null===(r=e=Bn[t])||void 0===r?void 0:r[0])>0)return this._eatBits(e[0]),e[1]}else{var A=this._findTableCode(1,7,Bn);if(A[0]&&A[2])return A[1]}return T("Bad two dim code"),Cn}},{key:"_getWhiteCode",value:function(){var e,t=0;if(this.eoblock){if((t=this._lookBits(12))===Cn)return 1;if((e=t>>5==0?Qn[t]:En[t>>3])[0]>0)return this._eatBits(e[0]),e[1]}else{var r=this._findTableCode(1,9,En);if(r[0])return r[1];if((r=this._findTableCode(11,12,Qn))[0])return r[1]}return T("bad white code"),this._eatBits(1),1}},{key:"_getBlackCode",value:function(){var e,t;if(this.eoblock){if((e=this._lookBits(13))===Cn)return 1;if((t=e>>7==0?dn[e]:e>>9==0&&e>>7!=0?yn[(e>>1)-64]:pn[e>>7])[0]>0)return this._eatBits(t[0]),t[1]}else{var r=this._findTableCode(2,6,pn);if(r[0])return r[1];if((r=this._findTableCode(7,12,yn,64))[0])return r[1];if((r=this._findTableCode(10,13,dn))[0])return r[1]}return T("bad black code"),this._eatBits(1),1}},{key:"_lookBits",value:function(e){for(var t;this.inputBits>16-e;this.inputBuf=this.inputBuf<<8|t,this.inputBits+=8}return this.inputBuf>>this.inputBits-e&65535>>16-e}},{key:"_eatBits",value:function(e){(this.inputBits-=e)<0&&(this.inputBits=0)}}])&&In(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();function mn(e,t){for(var r=0;re.getByte()};return n.ccittFaxDecoder=new vn(i,{K:A.get("K"),EndOfLine:A.get("EndOfLine"),EncodedByteAlign:A.get("EncodedByteAlign"),Columns:A.get("Columns"),Rows:A.get("Rows"),EndOfBlock:A.get("EndOfBlock"),BlackIs1:A.get("BlackIs1")}),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Sn(e,t)}(t,XA),r=t,(A=[{key:"readBlock",value:function(){for(;!this.eof;){var e=this.ccittFaxDecoder.readNextChar();if(-1===e)return void(this.eof=!0);this.ensureBuffer(this.bufferLength+1),this.buffer[this.bufferLength++]=e}}}])&&mn(r.prototype,A),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,A}();function xn(){xn=function(){return t};var e,t={},r=Object.prototype,A=r.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,r){return e[t]=r}}function g(e,t,r,A){var i=t&&t.prototype instanceof B?t:B,a=Object.create(i.prototype),o=new F(A||[]);return n(a,"_invoke",{value:b(e,r,o)}),a}function u(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=g;var l="suspendedStart",h="suspendedYield",I="executing",f="completed",C={};function B(){}function Q(){}function E(){}var d={};c(d,a,(function(){return this}));var y=Object.getPrototypeOf,p=y&&y(y(x([])));p&&p!==r&&A.call(p,a)&&(d=p);var v=E.prototype=B.prototype=Object.create(d);function m(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function r(n,i,a,o){var s=u(e[n],e,i);if("throw"!==s.type){var c=s.arg,g=c.value;return g&&"object"==typeof g&&A.call(g,"__await")?t.resolve(g.__await).then((function(e){r("next",e,a,o)}),(function(e){r("throw",e,a,o)})):t.resolve(g).then((function(e){c.value=e,a(c)}),(function(e){return r("throw",e,a,o)}))}o(s.arg)}var i;n(this,"_invoke",{value:function(e,A){function n(){return new t((function(t,n){r(e,A,t,n)}))}return i=i?i.then(n,n):n()}})}function b(t,r,A){var n=l;return function(i,a){if(n===I)throw Error("Generator is already running");if(n===f){if("throw"===i)throw a;return{value:e,done:!0}}for(A.method=i,A.arg=a;;){var o=A.delegate;if(o){var s=k(o,A);if(s){if(s===C)continue;return s}}if("next"===A.method)A.sent=A._sent=A.arg;else if("throw"===A.method){if(n===l)throw n=f,A.arg;A.dispatchException(A.arg)}else"return"===A.method&&A.abrupt("return",A.arg);n=I;var c=u(t,r,A);if("normal"===c.type){if(n=A.done?f:h,c.arg===C)continue;return{value:c.arg,done:A.done}}"throw"===c.type&&(n=f,A.method="throw",A.arg=c.arg)}}}function k(t,r){var A=r.method,n=t.iterator[A];if(n===e)return r.delegate=null,"throw"===A&&t.iterator.return&&(r.method="return",r.arg=e,k(t,r),"throw"===r.method)||"return"!==A&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+A+"' method")),C;var i=u(n,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,C;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,C):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,C)}function D(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function F(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(D,this),this.reset(!0)}function x(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,i=function r(){for(;++n=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}function Rn(e,t,r,A,n,i,a){try{var o=e[i](a),s=o.value}catch(e){return void r(e)}o.done?t(s):Promise.resolve(s).then(A,n)}function Gn(e){return function(){var t=this,r=arguments;return new Promise((function(A,n){var i=e.apply(t,r);function a(e){Rn(i,A,n,a,o,"next",e)}function o(e){Rn(i,A,n,a,o,"throw",e)}a(void 0)}))}}function Nn(e,t){for(var r=0;r>e,this.codeSize=A-=e,t}},{key:"getCode",value:function(e){for(var t,r=this.str,A=e[0],n=e[1],i=this.codeSize,a=this.codeBuf;i>16,c=65535&o;if(s<1||i>s,this.codeSize=i-s,c}},{key:"generateHuffmanTable",value:function(e){var t,r=e.length,A=0;for(t=0;tA&&(A=e[t]);for(var n=1<>=1;for(t=g;t>=1)){var n,i;if(1===t)n=jn,i=Wn;else{if(2!==t)throw new re("Unknown block type in flate stream");var a,o=this.getBits(5)+257,s=this.getBits(5)+1,c=this.getBits(4)+4,g=new Uint8Array(Kn.length);for(a=0;a0;)C[a++]=I}n=this.generateHuffmanTable(C.subarray(0,o)),i=this.generateHuffmanTable(C.subarray(o,f))}for(var E=(e=this.buffer)?e.length:0,d=this.bufferLength;;){var y=this.getCode(n);if(y<256)d+1>=E&&(E=(e=this.ensureBuffer(d+1)).length),e[d++]=y;else{if(256===y)return void(this.bufferLength=d);var p=(y=Tn[y-=257])>>16;p>0&&(p=this.getBits(p)),r=(65535&y)+p,y=this.getCode(i),(p=(y=qn[y])>>16)>0&&(p=this.getBits(p));var v=(65535&y)+p;d+r>=E&&(E=(e=this.ensureBuffer(d+r)).length);for(var m=0;m>9&127,this.clow=this.clow<<7&65535,this.ct-=7,this.a=32768},(t=[{key:"byteIn",value:function(){var e=this.data,t=this.bp;255===e[t]?e[t+1]>143?(this.clow+=65280,this.ct=8):(t++,this.clow+=e[t]<<9,this.ct=7,this.bp=t):(t++,this.clow+=t65535&&(this.chigh+=this.clow>>16,this.clow&=65535)}},{key:"readBit",value:function(e,t){var r,A=e[t]>>1,n=1&e[t],i=$n[A],a=i.qe,o=this.a-a;if(this.chigh>15&1,this.clow=this.clow<<1&65535,this.ct--}while(0==(32768&o));return this.a=o,e[t]=A<<1|n,r}}])&&Vn(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();function ti(e){return function(e){if(Array.isArray(e))return ni(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Ai(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ri(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Ai(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function Ai(e,t){if(e){if("string"==typeof e)return ni(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)?ni(e,t):void 0}}function ni(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r>>0}var a,o=i(1),s=i(1)?i(1)?i(1)?i(1)?i(1)?i(32)+4436:i(12)+340:i(8)+84:i(6)+20:i(4)+4:i(2);return 0===o?a=s:s>0&&(a=-s),a>=Bi&&a<=Ci?a:null}function Ei(e,t,r){for(var A=e.getContexts("IAID"),n=1,i=0;i=S&&m=F)for(J=J<<1&C,u=0;u=0&&b=0&&(k=N[w][b])&&(J|=k<=e?F<<=1:F=F<<1|y[D][S];for(g=0;g=E||S<0||S>=Q?F<<=1:F=F<<1|A[D][S];var x=p.readBit(v,F);b[k]=x}}return y}function ki(e,t,r,A,n,i,a,o,s,c,g,u,l,h,I,f,C,B,Q){if(e&&t)throw new hi("refinement with Huffman is not supported");var E,d,y=[];for(E=0;E1&&(D=e?Q.readBits(B):Qi(m,"IAIT",v));var S=a*w+D,F=e?h.symbolIDTable.decode(Q):Ei(m,v,s),x=t&&(e?Q.readBit():Qi(m,"IARI",v)),R=o[F],G=R[0].length,N=R.length;if(x){var L=Qi(m,"IARDW",v),U=Qi(m,"IARDH",v);R=bi(G+=L,N+=U,I,R,(L>>1)+Qi(m,"IARDX",v),(U>>1)+Qi(m,"IARDY",v),!1,f,C)}var M=0;c?1&u?M=N-1:k+=N-1:u>1?k+=G-1:M=G-1;var J=S-(1&u?0:N-1),H=k-(2&u?G-1:0),Y=void 0,P=void 0,O=void 0;if(c){for(Y=0;Y>5&7,s=[31&a],c=t+6;if(7===a){o=536870911&kt(e,c-1),c+=3;var g=o+7>>3;for(s[0]=e[c++];--g>0;)s.push(e[c++])}else if(5===a||6===a)throw new hi("invalid referred-to flags");r.retainBits=s;var u=4;r.number<=256?u=1:r.number<=65536&&(u=2);var l,h,I=[];for(l=0;l>>24&255,Q[3]=C.height>>16&255,Q[4]=C.height>>8&255,Q[5]=255&C.height,l=c,h=e.length;l>2&3,g.huffmanDWSelector=u>>4&3,g.bitmapSizeSelector=u>>6&1,g.aggregationInstancesSelector=u>>7&1,g.bitmapCodingContextUsed=!!(256&u),g.bitmapCodingContextRetained=!!(512&u),g.template=u>>10&3,g.refinementTemplate=u>>12&1,c+=2,!g.huffman){for(i=0===g.template?4:1,A=[],n=0;n>2&3,l.stripSize=1<>4&3,l.transposed=!!(64&h),l.combinationOperator=h>>7&3,l.defaultPixelValue=h>>9&1,l.dsOffset=h<<17>>27,l.refinementTemplate=h>>15&1,l.huffman){var I=bt(o,c);c+=2,l.huffmanFS=3&I,l.huffmanDS=I>>2&3,l.huffmanDT=I>>4&3,l.huffmanRefinementDW=I>>6&3,l.huffmanRefinementDH=I>>8&3,l.huffmanRefinementDX=I>>10&3,l.huffmanRefinementDY=I>>12&3,l.huffmanRefinementSizeSelector=!!(16384&I)}if(l.refinement&&!l.refinementTemplate){for(A=[],n=0;n<2;n++)A.push({x:wt(o,c),y:wt(o,c+1)}),c+=2;l.refinementAt=A}l.numberOfSymbolInstances=kt(o,c),c+=4,r=[l,a.referredTo,o,c,s];break;case 16:var f={},C=o[c++];f.mmr=!!(1&C),f.template=C>>1&3,f.patternWidth=o[c++],f.patternHeight=o[c++],f.maxPatternIndex=kt(o,c),c+=4,r=[f,a.number,o,c,s];break;case 22:case 23:var B={};B.info=Fi(o,c),c+=xi;var Q=o[c++];B.mmr=!!(1&Q),B.template=Q>>1&3,B.enableSkip=!!(8&Q),B.combinationOperator=Q>>4&7,B.defaultPixelValue=Q>>7&1,B.gridWidth=kt(o,c),c+=4,B.gridHeight=kt(o,c),c+=4,B.gridOffsetX=4294967295&kt(o,c),c+=4,B.gridOffsetY=4294967295&kt(o,c),c+=4,B.gridVectorX=bt(o,c),c+=2,B.gridVectorY=bt(o,c),c+=2,r=[B,a.referredTo,o,c,s];break;case 38:case 39:var E={};E.info=Fi(o,c),c+=xi;var d=o[c++];if(E.mmr=!!(1&d),E.template=d>>1&3,E.prediction=!!(8&d),!E.mmr){for(i=0===E.template?4:1,A=[],n=0;n>2&1,y.combinationOperator=p>>3&3,y.requiresBuffer=!!(32&p),y.combinationOperatorOverride=!!(64&p),r=[y];break;case 49:case 50:case 51:case 62:break;case 53:r=[a.number,o,c,s];break;default:throw new hi("segment type ".concat(a.typeName,"(").concat(a.type,") is not implemented"))}var v="on"+a.typeName;v in t&&t[v].apply(t,r)}function Gi(e,t){for(var r=0,A=e.length;r>3,r=new Uint8ClampedArray(t*e.height);e.defaultPixelValue&&r.fill(255),this.buffer=r}},{key:"drawBitmap",value:function(e,t){var r,A,n,i,a=this.currentPageInfo,o=e.width,s=e.height,c=a.width+7>>3,g=a.combinationOperatorOverride?e.combinationOperator:a.combinationOperator,u=this.buffer,l=128>>(7&e.x),h=e.y*c+(e.x>>3);switch(g){case 0:for(r=0;r>=1)||(n=128,i++);h+=c}break;case 2:for(r=0;r>=1)||(n=128,i++);h+=c}break;default:throw new hi("operator ".concat(g," is not supported"))}}},{key:"onImmediateGenericRegion",value:function(e,t,r,A){var n=e.info,i=new fi(t,r,A),a=wi(e.mmr,n.width,n.height,e.template,e.prediction,null,e.at,i);this.drawBitmap(n,a)}},{key:"onImmediateLosslessGenericRegion",value:function(){this.onImmediateGenericRegion.apply(this,arguments)}},{key:"onSymbolDictionary",value:function(e,t,r,A,n,i){var a,o;e.huffman&&(a=function(e,t,r){var A,n,i,a=0;switch(e.huffmanDHSelector){case 0:case 1:A=Hi(e.huffmanDHSelector+4);break;case 3:A=Pi(a,t,r),a++;break;default:throw new hi("invalid Huffman DH selector")}switch(e.huffmanDWSelector){case 0:case 1:n=Hi(e.huffmanDWSelector+2);break;case 3:n=Pi(a,t,r),a++;break;default:throw new hi("invalid Huffman DW selector")}return e.bitmapSizeSelector?(i=Pi(a,t,r),a++):i=Hi(1),{tableDeltaHeight:A,tableDeltaWidth:n,tableBitmapSize:i,tableAggregateInstances:e.aggregationInstancesSelector?Pi(a,t,r):Hi(1)}}(e,r,this.customTables),o=new Yi(A,n,i));var s=this.symbols;s||(this.symbols=s={});var c,g=[],u=ri(r);try{for(u.s();!(c=u.n()).done;){var l=s[c.value];l&&g.push.apply(g,ti(l))}}catch(e){u.e(e)}finally{u.f()}var h=new fi(A,n,i);s[t]=function(e,t,r,A,n,i,a,o,s,c,g,u){if(e&&t)throw new hi("symbol refinement with Huffman is not supported");var l,h,I=[],f=0,C=mt(r.length+A),B=g.decoder,Q=g.contextCache;for(e&&(l=Hi(1),h=[],C=Math.max(C,1));I.length1)v=ki(e,t,E,f,0,m,1,r.concat(I),C,0,0,1,0,i,s,c,g,0,u);else{var w=Ei(Q,B,C),b=Qi(Q,"IARDX",B),k=Qi(Q,"IARDY",B);v=bi(E,f,s,w=32){var u=void 0,l=void 0,h=void 0;switch(g){case 32:if(0===c)throw new hi("no previous value in symbol ID table");l=n.readBits(2)+3,u=i[c-1].prefixLength;break;case 33:l=n.readBits(3)+3,u=0;break;case 34:l=n.readBits(7)+11,u=0;break;default:throw new hi("invalid code length in symbol ID table")}for(h=0;h=0;f--)b=e?Ki(w,s,c,!0):wi(!1,s,c,r,!1,null,m,I),U[f]=b;for(k=0;k=0;C--)F|=(S^=U[C][k][D])<>8,(R=g+k*h+D*l>>8)>=0&&R+y<=A&&G>=0&&G+p<=n)for(f=0;f=n))for(L=Q[J],N=x[f],C=0;C=0&&M>1&7),g=1+(i>>4&7),u=[],l=a;do{A=s.readBits(c),n=s.readBits(g),u.push(new Li([l,A,n,0])),l+=1<>r&1;if(r<=0)this.children[A]=new e(t);else{var n=this.children[A];n||(this.children[A]=n=new e(null)),n.buildTree(t,r-1)}}},{key:"decodeNode",value:function(e){if(this.isLeaf){if(this.isOOB)return null;var t=e.readBits(this.rangeLength);return this.rangeLow+(this.isLowerRange?-t:t)}var r=this.children[e.readBit()];if(!r)throw new hi("invalid Huffman data");return r.decodeNode(e)}}])}(),Mi=function(){return ai((function e(t,r){si(this,e),r||this.assignPrefixCodes(t),this.rootNode=new Ui(null);for(var A=0,n=t.length;A0&&this.rootNode.buildTree(i,i.prefixLength-1)}}),[{key:"decode",value:function(e){return this.rootNode.decodeNode(e)}},{key:"assignPrefixCodes",value:function(e){for(var t=e.length,r=0,A=0;A=this.end)throw new hi("end of data while reading bit");this.currentByte=this.data[this.position++],this.shift=7}var e=this.currentByte>>this.shift&1;return this.shift--,e}},{key:"readBits",value:function(e){var t,r=0;for(t=e-1;t>=0;t--)r|=this.readBit()<=this.end?-1:this.data[this.position++]}}])}();function Pi(e,t,r){for(var A=0,n=0,i=t.length;n>g&1,g--}if(A&&!o)for(var l=0;l<5&&-1!==i.readNextChar();l++);return a}var Ti=function(){return ai((function e(){si(this,e)}),[{key:"parseChunks",value:function(e){return function(e){for(var t=new Ni,r=0,A=e.length;re.length)&&(t=e.length);for(var r=0,A=Array(t);r>3,C=7&i,B=t.length;n=new Uint32Array(n.buffer);for(var Q=0,E=0;E=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function ta(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r0&&!e[i-1];)i--;var a,o=[{children:[],index:0}],s=o[0];for(r=0;r0;)s=o.pop();for(s.index++,o.push(s);o.length<=r;)o.push(a={children:[],index:0}),s.children[s.index]=a.children,s=a;n++}r+19&&void 0!==arguments[9]&&arguments[9],g=r.mcusPerLine,u=r.progressive,l=t,h=0,I=0;function f(){if(I>0)return I--,h>>I&1;if(255===(h=e[t++])){var A=e[t++];if(A){if(220===A&&c){var n=bt(e,t+=2);if(t+=2,n>0&&n!==r.scanLines)throw new la("Found DNL marker (0xFFDC) while parsing scan data",n)}else if(217===A){if(c){var i=p*(8===r.precision?8:0);if(i>0&&Math.round(r.scanLines/i)>=5)throw new la("Found EOI marker (0xFFD9) while parsing scan data, possibly caused by incorrect \`scanLines\` parameter",i)}throw new ha("Found EOI marker (0xFFD9) while parsing scan data")}throw new ua("unexpected marker ".concat((h<<8|A).toString(16)))}}return I=7,h>>>7}function C(e){for(var t=e;;){switch(typeof(t=t[f()])){case"number":return t;case"object":continue}throw new ua("invalid huffman sequence")}}function B(e){for(var t=0;e>0;)t=t<<1|f(),e--;return t}function Q(e){if(1===e)return 1===f()?1:-1;var t=B(e);return t>=1<0)d--;else for(var r=i,A=a;r<=A;){var n=C(e.huffmanTableAC),o=15&n,c=n>>4;if(0!==o){var g=Ia[r+=c];e.blockData[t+g]=Q(o)*(1<>4,0==(r=15&A))c<15?(d=B(c)+(1<>4;if(0!==a){var s=Ia[n+=o];e.blockData[t+s]=Q(a),n++}else{if(o<15)break;n+=16}}};for(var R,G,N,L=0,U=1===x?A[0].blocksPerLine*A[0].blocksPerColumn:g*r.mcusPerColumn;L<=U;){var M=n?Math.min(U-L,n):U;if(M>0){for(b=0;b0?"unexpected":"excessive"," MCU data, current marker is: ").concat(R.invalid)),t=R.offset),!(R.marker>=65488&&R.marker<=65495))break;t+=2}return t-l}function ba(e,t,r){var A,n,i,a,o,s,c,g,u,l,h,I,f,C,B,Q,E,d=e.quantizationTable,y=e.blockData;if(!d)throw new ua("missing required Quantization Table.");for(var p=0;p<64;p+=8)u=y[t+p],l=y[t+p+1],h=y[t+p+2],I=y[t+p+3],f=y[t+p+4],C=y[t+p+5],B=y[t+p+6],Q=y[t+p+7],u*=d[p],0!=(l|h|I|f|C|B|Q)?(l*=d[p+1],h*=d[p+2],I*=d[p+3],f*=d[p+4],C*=d[p+5],B*=d[p+6],Q*=d[p+7],n=(A=(A=ya*u+128>>8)+(n=ya*f+128>>8)+1>>1)-n,E=(i=h)*da+(a=B)*Ea+128>>8,i=i*Ea-a*da+128>>8,c=(o=(o=pa*(l-Q)+128>>8)+(c=C<<4)+1>>1)-c,s=(g=(g=pa*(l+Q)+128>>8)+(s=I<<4)+1>>1)-s,a=(A=A+(a=E)+1>>1)-a,i=(n=n+i+1>>1)-i,E=o*Qa+g*Ba+2048>>12,o=o*Ba-g*Qa+2048>>12,g=E,E=s*Ca+c*fa+2048>>12,s=s*fa-c*Ca+2048>>12,c=E,r[p]=A+g,r[p+7]=A-g,r[p+1]=n+c,r[p+6]=n-c,r[p+2]=i+s,r[p+5]=i-s,r[p+3]=a+o,r[p+4]=a-o):(E=ya*u+512>>10,r[p]=E,r[p+1]=E,r[p+2]=E,r[p+3]=E,r[p+4]=E,r[p+5]=E,r[p+6]=E,r[p+7]=E);for(var v=0;v<8;++v)u=r[v],0!=((l=r[v+8])|(h=r[v+16])|(I=r[v+24])|(f=r[v+32])|(C=r[v+40])|(B=r[v+48])|(Q=r[v+56]))?(n=(A=4112+((A=ya*u+2048>>12)+(n=ya*f+2048>>12)+1>>1))-n,E=(i=h)*da+(a=B)*Ea+2048>>12,i=i*Ea-a*da+2048>>12,a=E,c=(o=(o=pa*(l-Q)+2048>>12)+(c=C)+1>>1)-c,s=(g=(g=pa*(l+Q)+2048>>12)+(s=I)+1>>1)-s,E=o*Qa+g*Ba+2048>>12,o=o*Ba-g*Qa+2048>>12,g=E,E=s*Ca+c*fa+2048>>12,s=s*fa-c*Ca+2048>>12,(u=(A=A+a+1>>1)+g)<16?u=0:u>=4080?u=255:u>>=4,(l=(n=n+i+1>>1)+(c=E))<16?l=0:l>=4080?l=255:l>>=4,(h=(i=n-i)+s)<16?h=0:h>=4080?h=255:h>>=4,(I=(a=A-a)+o)<16?I=0:I>=4080?I=255:I>>=4,(f=a-o)<16?f=0:f>=4080?f=255:f>>=4,(C=i-s)<16?C=0:C>=4080?C=255:C>>=4,(B=n-c)<16?B=0:B>=4080?B=255:B>>=4,(Q=A-g)<16?Q=0:Q>=4080?Q=255:Q>>=4,y[t+v]=u,y[t+v+8]=l,y[t+v+16]=h,y[t+v+24]=I,y[t+v+32]=f,y[t+v+40]=C,y[t+v+48]=B,y[t+v+56]=Q):(E=(E=ya*u+8192>>14)<-2040?0:E>=2024?255:E+2056>>4,y[t+v]=E,y[t+v+8]=E,y[t+v+16]=E,y[t+v+24]=E,y[t+v+32]=E,y[t+v+40]=E,y[t+v+48]=E,y[t+v+56]=E)}function ka(e,t){for(var r=t.blocksPerLine,A=t.blocksPerColumn,n=new Int16Array(64),i=0;i2&&void 0!==arguments[2]?arguments[2]:t,A=e.length-1,n=r=A)return null;var i=bt(e,t);if(i>=65472&&i<=65534)return{invalid:null,marker:i,offset:t};for(var a=bt(e,n);!(a>=65472&&a<=65534);){if(++n>=A)return null;a=bt(e,n)}return{invalid:i.toString(16),marker:a,offset:n}}var Sa=function(){return Aa((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.decodeTransform,A=void 0===r?null:r,n=t.colorTransform,i=void 0===n?-1:n;ia(this,e),this._decodeTransform=A,this._colorTransform=i}),[{key:"parse",value:function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).dnlScanLines,r=void 0===t?null:t;function A(){var t=bt(e,o),r=(o+=2)+t-2,A=Da(e,r,o);null!=A&&A.invalid&&(q("readDataBlock - incorrect length, current marker is: "+A.invalid),r=A.offset);var n=e.subarray(o,r);return o+=n.length,n}function n(e){var t,r=Math.ceil(e.samplesPerLine/8/e.maxH),A=Math.ceil(e.scanLines/8/e.maxV),n=ea(e.components);try{for(n.s();!(t=n.n()).done;){var i=t.value,a=Math.ceil(Math.ceil(e.samplesPerLine/8)*i.h/e.maxH),o=Math.ceil(Math.ceil(e.scanLines/8)*i.v/e.maxV),s=r*i.h,c=A*i.v*64*(s+1);i.blockData=new Int16Array(c),i.blocksPerLine=a,i.blocksPerColumn=o}}catch(e){n.e(e)}finally{n.f()}e.mcusPerLine=r,e.mcusPerColumn=A}var i,a,o=0,s=null,c=null,g=0,u=[],l=[],h=[],I=bt(e,o);if(o+=2,65496!==I)throw new ua("SOI not found");I=bt(e,o),o+=2;e:for(;65497!==I;){var f=void 0,C=void 0,B=void 0;switch(I){case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:var Q=A();65504===I&&74===Q[0]&&70===Q[1]&&73===Q[2]&&70===Q[3]&&0===Q[4]&&(s={version:{major:Q[5],minor:Q[6]},densityUnits:Q[7],xDensity:Q[8]<<8|Q[9],yDensity:Q[10]<<8|Q[11],thumbWidth:Q[12],thumbHeight:Q[13],thumbData:Q.subarray(14,14+3*Q[12]*Q[13])}),65518===I&&65===Q[0]&&100===Q[1]&&111===Q[2]&&98===Q[3]&&101===Q[4]&&(c={version:Q[5]<<8|Q[6],flags0:Q[7]<<8|Q[8],flags1:Q[9]<<8|Q[10],transformCode:Q[11]});break;case 65499:for(var E=bt(e,o)+(o+=2)-2;o>4==0)for(C=0;C<64;C++)y[Ia[C]]=e[o++];else{if(d>>4!=1)throw new ua("DQT - invalid table spec");for(C=0;C<64;C++)y[Ia[C]]=bt(e,o),o+=2}u[15&d]=y}break;case 65472:case 65473:case 65474:if(i)throw new ua("Only single frame JPEGs supported");o+=2,(i={}).extended=65473===I,i.progressive=65474===I,i.precision=e[o++];var p=bt(e,o);o+=2,i.scanLines=r||p,i.samplesPerLine=bt(e,o),o+=2,i.components=[],i.componentIds={};var v=e[o++],m=0,w=0;for(f=0;f>4,D=15&e[o+1];m>4==0?h:l)[15&x]=va(R,N)}break;case 65501:a=bt(e,o+=2),o+=2;break;case 65498:var L=1==++g&&!r;o+=2;var U=e[o++],M=[];for(f=0;f>4],Y.huffmanTableAC=l[15&P],M.push(Y)}var O=e[o++],K=e[o++],T=e[o++];try{var j=wa(e,o,i,M,a,O,K,T>>4,15&T,L);o+=j}catch(t){if(t instanceof la)return q("".concat(t.message," -- attempting to re-parse the JPEG image.")),this.parse(e,{dnlScanLines:t.scanLines});if(t instanceof ha){q("".concat(t.message," -- ignoring the rest of the image data."));break e}throw t}break;case 65500:o+=4;break;case 65535:255!==e[o]&&o--;break;default:var W=Da(e,o-2,o-3);if(null!=W&&W.invalid){q("JpegImage.parse - unexpected data, current marker is: "+W.invalid),o=W.offset;break}if(!W||o>=e.length-1){q("JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9).");break e}throw new ua("JpegImage.parse - unknown marker: "+I.toString(16))}I=bt(e,o),o+=2}if(!i)throw new ua("JpegImage.parse - no frame data found.");this.width=i.samplesPerLine,this.height=i.scanLines,this.jfif=s,this.adobe=c,this.components=[];var Z,_=ea(i.components);try{for(_.s();!(Z=_.n()).done;){var X=Z.value,V=u[X.quantizationId];V&&(X.quantizationTable=V),this.components.push({index:X.index,output:ka(0,X),scaleX:X.h/i.maxH,scaleY:X.v/i.maxV,blocksPerLine:X.blocksPerLine,blocksPerColumn:X.blocksPerColumn})}}catch(e){_.e(e)}finally{_.f()}this.numComponents=this.components.length}},{key:"_getLinearizedBlockData",value:function(e,t){var r,A,n,i,a,o,s,c,g,u,l,h,I=arguments.length>2&&void 0!==arguments[2]&&arguments[2],f=this.width/e,C=this.height/t,B=0,Q=this.components.length,E=e*t*Q,d=new Uint8ClampedArray(E),y=new Uint32Array(e),p=4294967288;for(s=0;s>8)+v[g+1];return d}},{key:"_isColorConversionNeeded",get:function(){return this.adobe?!!this.adobe.transformCode:3===this.numComponents?0!==this._colorTransform&&(82!==this.components[0].index||71!==this.components[1].index||66!==this.components[2].index):1===this._colorTransform}},{key:"_convertYccToRgb",value:function(e){for(var t,r,A,n=0,i=e.length;n4)throw new ua("Unsupported color mode");var c=this._getLinearizedBlockData(t,r,s);if(1===this.numComponents&&(n||a)){var g=c.length*(n?4:3),u=new Uint8ClampedArray(g),l=0;if(n)!function(e,t){if(se.isLittleEndian)for(var r=0,A=e.length;r0&&(e=e.subarray(t));break}var A={decodeTransform:void 0,colorTransform:void 0},n=this.dict.getArray("D","Decode");if((this.forceRGBA||this.forceRGB)&&Array.isArray(n)){for(var i=this.dict.get("BPC","BitsPerComponent")||8,a=n.length,o=new Int32Array(a),s=!1,c=(1<0&&void 0!==arguments[0]?arguments[0]:{};new Promise((function(r,A){e=r,t=A})),r.decode=function(e,t){var A=t.numComponents,n=void 0===A?4:A,i=t.isIndexedColormap,a=void 0!==i&&i,o=t.smaskInData,s=void 0!==o&&o,c=e.length,g=r._malloc(c);r.HEAPU8.set(e,g);var u=r._jp2_decode(g,c,n>0?n:0,!!a,!!s);if(r._free(g),u){var l=r.errorMessages;return l?(delete r.errorMessages,l):"Unknown error"}var h=r.imageData;return r.imageData=null,h};var A=Object.assign({},r),n="./this.program",i="";"undefined"!=typeof document&&document.currentScript&&(i=document.currentScript.src),Ma&&(i=Ma),i=i.startsWith("blob:")?"":i.substr(0,i.replace(/[?#].*/,"").lastIndexOf("/")+1);var a,o,s,c,g,u=r.print||console.log.bind(console),l=r.printErr||console.error.bind(console);function h(){var e=o.buffer;r.HEAP8=s=new Int8Array(e),r.HEAP16=new Int16Array(e),r.HEAPU8=c=new Uint8Array(e),r.HEAPU16=new Uint16Array(e),r.HEAP32=new Int32Array(e),r.HEAPU32=g=new Uint32Array(e),r.HEAPF32=new Float32Array(e),r.HEAPF64=new Float64Array(e)}Object.assign(r,A),A=null,r.arguments&&r.arguments,r.thisProgram&&(n=r.thisProgram),r.quit&&r.quit,r.wasmBinary&&(a=r.wasmBinary);var I,f=[],C=[],B=[],Q=0,E=null,d=null,y="data:application/octet-stream;base64,",p=function(e){return e.startsWith(y)};function v(e,t){var r,A=function(e){if(e==I&&a)return new Uint8Array(a);var t=function(e){if(p(e))return function(e){for(var t=atob(e),r=new Uint8Array(t.length),A=0;A0;)e.shift()(r)};r.noExitRuntime;var w,b=function(e){var t=(e-o.buffer.byteLength+65535)/65536;try{return o.grow(t),h(),1}catch(e){}},k={},D=function(){if(!D.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:n||"./this.program"};for(var t in k)void 0===k[t]?delete e[t]:e[t]=k[t];var r=[];for(var t in e)r.push("".concat(t,"=").concat(e[t]));D.strings=r}return D.strings},S=[null,[],[]],F="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,x=function(e,t,r){for(var A=t+r,n=t;e[n]&&!(n>=A);)++n;if(n-t>16&&e.buffer&&F)return F.decode(e.subarray(t,n));for(var i="";t>10,56320|1023&c)}}else i+=String.fromCharCode((31&a)<<6|o)}else i+=String.fromCharCode(a)}return i},R=function(e,t){return e?x(c,e,t):""},G={c:function(e,t,r){return c.copyWithin(e,t,t+r)},g:function(e,t){e>>=2;var A=r.imageData=new Uint8ClampedArray(t),n=r.HEAP32.subarray(e,e+t);A.set(n)},f:function(e,t,A,n){e>>=2,t>>=2,A>>=2;for(var i=r.imageData=new Uint8ClampedArray(3*n),a=r.HEAP32.subarray(e,e+n),o=r.HEAP32.subarray(t,t+n),s=r.HEAP32.subarray(A,A+n),c=0;c>=2,t>>=2,A>>=2,n>>=2;for(var a=r.imageData=new Uint8ClampedArray(4*i),o=r.HEAP32.subarray(e,e+i),s=r.HEAP32.subarray(t,t+i),c=r.HEAP32.subarray(A,A+i),g=r.HEAP32.subarray(n,n+i),u=0;u>>=0)>r)return!1;for(var A,n=1;n<=4;n*=2){var i=t*(1+.2/n);i=Math.min(i,e+100663296);var a=Math.min(r,(A=Math.max(e,i))+(65536-A%65536)%65536);if(b(a))return!0}return!1},l:function(e,t){var r=0;return D().forEach((function(A,n){var i=t+r;g[e+4*n>>2]=i,function(e,t){for(var r=0;r>2]=r.length;var A=0;return r.forEach((function(e){return A+=e.length+1})),g[t>>2]=A,0},n:function(e){return 52},j:function(e,t,r,A,n){return 70},b:function(e,t,r,A){for(var n,i,a,o=0,s=0;s>2],I=g[t+4>>2];t+=8;for(var f=0;f>2]=o,0},o:function(e,t){e>>=2;for(var A=r.imageData=new Uint8ClampedArray(4*t),n=r.HEAP32.subarray(e,e+t),i=0;i>=2,t>>=2;for(var n=r.imageData=new Uint8ClampedArray(4*A),i=r.HEAP32.subarray(e,e+A),a=r.HEAP32.subarray(t,t+A),o=0;o>=2,t>>=2,A>>=2;for(var i=r.imageData=new Uint8ClampedArray(4*n),a=r.HEAP32.subarray(e,e+n),o=r.HEAP32.subarray(t,t+n),s=r.HEAP32.subarray(A,A+n),c=0;c0||(function(){if(r.preRun)for("function"==typeof r.preRun&&(r.preRun=[r.preRun]);r.preRun.length;)e=r.preRun.shift(),f.unshift(e);var e;m(f)}(),Q>0||(r.setStatus?(r.setStatus("Running..."),setTimeout((function(){setTimeout((function(){r.setStatus("")}),1),t()}),1)):t()))}if(N.q,r._malloc=N.r,r._free=N.s,r._jp2_decode=N.u,d=function e(){w||L(),w||(d=e)},r.preInit)for("function"==typeof r.preInit&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return L(),r});const Ya=Ha;function Pa(e,t,r){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:r;throw new TypeError("Private element is not present on this object")}function Oa(e,t){for(var r=0;r=0;)if(65361==(t<<8|(t=e.getByte()))){e.skip(4);var r=e.getInt32()>>>0,A=e.getInt32()>>>0,n=e.getInt32()>>>0,i=e.getInt32()>>>0;return e.skip(16),{width:r-n,height:A-i,bitsPerComponent:8,componentsCount:e.getUint16()}}throw new Xa("No size marker found in JPX stream")}}])}(),za={_:null};function $a(e,t){for(var r=0;r>>t&(1<0;if(B<256)l[0]=B,h=1;else{if(!(B>=258)){if(256===B){g=9,a=258,h=0;continue}this.eof=!0,delete this.lzwState;break}if(B=0;t--)l[t]=o[r],r=c[r];else l[h++]=l[0]}if(Q&&(c[a]=u,s[a]=s[u]+1,o[a]=l[0],g=++a+i&a+i-1?g:0|Math.min(Math.log(a+i)/.6931471805599453+1,12)),u=B,A<(I+=h)){do{A+=512}while(A15))throw new re("Unsupported predictor: ".concat(i));n.readBlock=2===i?n.readBlockTiff:n.readBlockPng,n.str=e,n.dict=e.dict;var a=n.colors=A.get("Colors")||1,o=n.bits=A.get("BPC","BitsPerComponent")||8,s=n.columns=A.get("Columns")||1;return n.pixBytes=a*o+7>>3,n.rowBytes=s*a*o+7>>3,Co(n,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Eo(e,t)}(t,XA),r=t,(A=[{key:"readBlockTiff",value:function(){var e=this.rowBytes,t=this.bufferLength,r=this.ensureBuffer(t+e),A=this.bits,n=this.colors,i=this.str.getBytes(e);if(this.eof=!i.length,!this.eof){var a,o=0,s=0,c=0,g=0,u=t;if(1===A&&1===n)for(a=0;a>1,l^=l>>2,o=(1&(l^=l>>4))<<7,r[u++]=l}else if(8===A){for(a=0;a>8&255,r[u++]=255&I}}else{var f=new Uint8Array(n+1),C=(1<>c-A)&C,c-=A,s=s<=8&&(r[Q++]=s>>g-8&255,g-=8);g>0&&(r[Q++]=(s<<8-g)+(o&(1<<8-g)-1))}this.bufferLength+=e}}},{key:"readBlockPng",value:function(){var e=this.rowBytes,t=this.pixBytes,r=this.str.getByte(),A=this.str.getBytes(e);if(this.eof=!A.length,!this.eof){var n=this.bufferLength,i=this.ensureBuffer(n+e),a=i.subarray(n-e,n);0===a.length&&(a=new Uint8Array(e));var o,s,c,g=n;switch(r){case 0:for(o=0;o>1)+A[o];for(;o>1)+A[o]&255,g++;break;case 4:for(o=0;o0){var n=this.str.getBytes(A);t.set(n,r),r+=A}}else{A=257-A;var i=e[1];t=this.ensureBuffer(r+A+1);for(var a=0;a=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function xo(e,t){if(e){if("string"==typeof e)return Ro(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)?Ro(e,t):void 0}}function Ro(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r0&&void 0!==arguments[0]?arguments[0]:null,t=this.buf1;if(this.shift(),t instanceof Me)switch(t.cmd){case"BI":return this.makeInlineImage(e);case"[":for(var r=[];!Te(this.buf1,"]")&&this.buf1!==Re;)r.push(this.getObj(e));if(this.buf1===Re){if(this.recoveryMode)return r;throw new Bt("End of file inside array.")}return this.shift(),r;case"<<":for(var A=new He(this.xref);!Te(this.buf1,">>")&&this.buf1!==Re;)if(this.buf1 instanceof Ue){var n=this.buf1.name;if(this.shift(),this.buf1===Re)break;A.set(n,this.getObj(e))}else T("Malformed dictionary: key must be a name object"),this.shift();if(this.buf1===Re){if(this.recoveryMode)return A;throw new Bt("End of file inside dictionary.")}return Te(this.buf2,"stream")?this.allowStreams?this.makeStream(A,e):A:(this.shift(),A);default:return t}if(Number.isInteger(t)){if(Number.isInteger(this.buf1)&&Te(this.buf2,"R")){var i=Ye.get(t,this.buf1);return this.shift(),this.shift(),i}return t}return"string"==typeof t&&e?e.decryptString(t):t}},{key:"findDefaultInlineStreamEnd",value:function(e){for(var t,r,A=this.lexer.knownCommands,n=e.pos,i=0;-1!==(t=e.getByte());)if(0===i)i=69===t?1:0;else if(1===i)i=73===t?2:0;else if(32===t||10===t||13===t){r=e.pos;var a=e.peekBytes(15),o=a.length;if(0===o)break;for(var s=0;s127)){i=0;break}if(2!==i)continue;if(!A){q("findDefaultInlineStreamEnd - \`lexer.knownCommands\` is undefined.");continue}var c=new Oo(new ar(a.slice()),A);c._hexStringWarn=function(){};for(var g=0;;){var u=c.getObj();if(u===Re){i=0;break}if(u instanceof Me){var l=A[u.cmd];if(!l){i=0;break}if(l.variableArgs?g<=l.numArgs:g===l.numArgs)break;g=0}else g++}if(2===i)break}else i=0;-1===t&&(q("findDefaultInlineStreamEnd: Reached the end of the stream without finding a valid EI marker"),r&&(q('... trying to recover by using the last "EI" occurrence.'),e.skip(-(e.pos-r))));var h=4;return e.skip(-h),t=e.peekByte(),e.skip(h),Dt(t)||h--,e.pos-h-n}},{key:"findDCTDecodeInlineStreamEnd",value:function(e){for(var t,r,A=e.pos,n=!1;-1!==(t=e.getByte());)if(255===t){switch(e.getByte()){case 0:break;case 255:e.skip(-1);break;case 217:n=!0;break;case 192:case 193:case 194:case 195:case 197:case 198:case 199:case 201:case 202:case 203:case 205:case 206:case 207:case 196:case 204:case 218:case 219:case 220:case 221:case 222:case 223:case 224:case 225:case 226:case 227:case 228:case 229:case 230:case 231:case 232:case 233:case 234:case 235:case 236:case 237:case 238:case 239:case 254:(r=e.getUint16())>2?e.skip(r-2):e.skip(-2)}if(n)break}var i=e.pos-A;return-1===t?(q("Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead."),e.skip(-i),this.findDefaultInlineStreamEnd(e)):(this.inlineStreamSkipEI(e),i)}},{key:"findASCII85DecodeInlineStreamEnd",value:function(e){for(var t,r=e.pos;-1!==(t=e.getByte());)if(126===t){var A=e.pos;for(t=e.peekByte();Dt(t);)e.skip(),t=e.peekByte();if(62===t){e.skip();break}if(e.pos>A){var n=e.peekBytes(2);if(69===n[0]&&73===n[1])break}}var i=e.pos-r;return-1===t?(q("Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead."),e.skip(-i),this.findDefaultInlineStreamEnd(e)):(this.inlineStreamSkipEI(e),i)}},{key:"findASCIIHexDecodeInlineStreamEnd",value:function(e){for(var t,r=e.pos;-1!==(t=e.getByte())&&62!==t;);var A=e.pos-r;return-1===t?(q("Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead."),e.skip(-A),this.findDefaultInlineStreamEnd(e)):(this.inlineStreamSkipEI(e),A)}},{key:"inlineStreamSkipEI",value:function(e){for(var t,r=0;-1!==(t=e.getByte());)if(0===r)r=69===t?1:0;else if(1===r)r=73===t?2:0;else if(2===r)break}},{key:"makeInlineImage",value:function(e){for(var t,r=this.lexer,A=r.stream,n=Object.create(null);!Te(this.buf1,"ID")&&this.buf1!==Re;){if(!(this.buf1 instanceof Ue))throw new re("Dictionary key must be a name object");var i=this.buf1.name;if(this.shift(),this.buf1===Re)break;n[i]=this.getObj(e)}-1!==r.beginInlineImagePos&&(t=A.pos-r.beginInlineImagePos);var a,o=this.xref.fetchIfRef(n.F||n.Filter);if(o instanceof Ue)a=o.name;else if(Array.isArray(o)){var s=this.xref.fetchIfRef(o[0]);s instanceof Ue&&(a=s.name)}var c,g,u=A.pos;switch(a){case"DCT":case"DCTDecode":c=this.findDCTDecodeInlineStreamEnd(A);break;case"A85":case"ASCII85Decode":c=this.findASCII85DecodeInlineStreamEnd(A);break;case"AHx":case"ASCIIHexDecode":c=this.findASCIIHexDecodeInlineStreamEnd(A);break;default:c=this.findDefaultInlineStreamEnd(A)}if(c<1e3&&t>0){var l=A.pos;A.pos=r.beginInlineImagePos,g=function(e){for(var t=[],r=e.length,A=0;A=A){var g,u=!1,l=Fo(n);try{for(l.s();!(g=l.n()).done;){for(var h=g.value,I=h.length,f=0;f=i){u=!0;break}if(f>=I){Dt(a[s+c+f])&&(T('Found "'.concat(ne([].concat(So(r),So(h))),'" when ')+"searching for endstream command."),u=!0);break}}}catch(e){l.e(e)}finally{l.f()}if(u)return t.pos+=s,t.pos-e}s++}t.pos+=o}return-1}var Yo=[1,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2,0,0,2,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];function Po(e){return e>=48&&e<=57?15&e:e>=65&&e<=70||e>=97&&e<=102?9+(15&e):-1}var Oo=function(){return Lo((function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;Go(this,e),this.stream=t,this.nextChar(),this.strBuf=[],this.knownCommands=r,this._hexStringNumWarn=0,this.beginInlineImagePos=-1}),[{key:"nextChar",value:function(){return this.currentChar=this.stream.getByte()}},{key:"peekChar",value:function(){return this.stream.peekByte()}},{key:"getNumber",value:function(){var e=this.currentChar,t=!1,r=0,A=1;if(45===e?(A=-1,45===(e=this.nextChar())&&(e=this.nextChar())):43===e&&(e=this.nextChar()),10===e||13===e)do{e=this.nextChar()}while(10===e||13===e);if(46===e&&(r=10,e=this.nextChar()),e<48||e>57){var n="Invalid number: ".concat(String.fromCharCode(e)," (charCode ").concat(e,")");if(Dt(e)||-1===e)return T('Lexer.getNumber - "'.concat(n,'".')),0;throw new re(n)}for(var i=e-48,a=0,o=1;(e=this.nextChar())>=0;)if(e>=48&&e<=57){var s=e-48;t?a=10*a+s:(0!==r&&(r*=10),i=10*i+s)}else if(46===e){if(0!==r)break;r=1}else if(45===e)q("Badly formatted number: minus sign in the middle");else{if(69!==e&&101!==e)break;if(43===(e=this.peekChar())||45===e)o=45===e?-1:1,this.nextChar();else if(e<48||e>57)break;t=!0}return 0!==r&&(i/=r),t&&(i*=Math.pow(10,o*a)),A*i}},{key:"getString",value:function(){var e=1,t=!1,r=this.strBuf;r.length=0;for(var A=this.nextChar();;){var n=!1;switch(0|A){case-1:q("Unterminated string"),t=!0;break;case 40:++e,r.push("(");break;case 41:0==--e?(this.nextChar(),t=!0):r.push(")");break;case 92:switch(A=this.nextChar()){case-1:q("Unterminated string"),t=!0;break;case 110:r.push("\\n");break;case 114:r.push("\\r");break;case 116:r.push("\\t");break;case 98:r.push("\\b");break;case 102:r.push("\\f");break;case 92:case 40:case 41:r.push(String.fromCharCode(A));break;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:var i=15&A;n=!0,(A=this.nextChar())>=48&&A<=55&&(i=(i<<3)+(15&A),(A=this.nextChar())>=48&&A<=55&&(n=!1,i=(i<<3)+(15&A))),r.push(String.fromCharCode(i));break;case 13:10===this.peekChar()&&this.nextChar();break;case 10:break;default:r.push(String.fromCharCode(A))}break;default:r.push(String.fromCharCode(A))}if(t)break;n||(A=this.nextChar())}return r.join("")}},{key:"getName",value:function(){var e,t,r=this.strBuf;for(r.length=0;(e=this.nextChar())>=0&&!Yo[e];)if(35===e){if(e=this.nextChar(),Yo[e]){q("Lexer_getName: NUMBER SIGN (#) should be followed by a hexadecimal number."),r.push("#");break}var A=Po(e);if(-1!==A){t=e;var n=Po(e=this.nextChar());if(-1===n){if(q("Lexer_getName: Illegal digit (".concat(String.fromCharCode(e),") ")+"in hexadecimal number."),r.push("#",String.fromCharCode(t)),Yo[e])break;r.push(String.fromCharCode(e));continue}r.push(String.fromCharCode(A<<4|n))}else r.push("#",String.fromCharCode(e))}else r.push(String.fromCharCode(e));return r.length>127&&q("Name token is longer than allowed by the spec: ".concat(r.length)),Ue.get(r.join(""))}},{key:"_hexStringWarn",value:function(e){5!=this._hexStringNumWarn++?this._hexStringNumWarn>5||q("getHexString - ignoring invalid character: ".concat(e)):q("getHexString - ignoring additional invalid characters.")}},{key:"getHexString",value:function(){var e=this.strBuf;e.length=0;var t=this.currentChar,r=-1,A=-1;for(this._hexStringNumWarn=0;;){if(t<0){q("Unterminated hex string");break}if(62===t){this.nextChar();break}1!==Yo[t]?(-1===(A=Po(t))?this._hexStringWarn(t):-1===r?r=A:(e.push(String.fromCharCode(r<<4|A)),r=-1),t=this.nextChar()):t=this.nextChar()}return-1!==r&&e.push(String.fromCharCode(r<<4)),e.join("")}},{key:"getObj",value:function(){for(var e=!1,t=this.currentChar;;){if(t<0)return Re;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(1!==Yo[t])break;t=this.nextChar()}switch(0|t){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return this.getNumber();case 40:return this.getString();case 47:return this.getName();case 91:return this.nextChar(),Me.get("[");case 93:return this.nextChar(),Me.get("]");case 60:return 60===(t=this.nextChar())?(this.nextChar(),Me.get("<<")):this.getHexString();case 62:return 62===(t=this.nextChar())?(this.nextChar(),Me.get(">>")):Me.get(">");case 123:return this.nextChar(),Me.get("{");case 125:return this.nextChar(),Me.get("}");case 41:throw this.nextChar(),new re("Illegal character: ".concat(t))}var r=String.fromCharCode(t);if(t<32||t>127){var A=this.peekChar();if(A>=32&&A<=127)return this.nextChar(),Me.get(r)}for(var n=this.knownCommands,i=void 0!==(null==n?void 0:n[r]);(t=this.nextChar())>=0&&!Yo[t];){var a=r+String.fromCharCode(t);if(i&&void 0===n[a])break;if(128===r.length)throw new re("Command token too long: ".concat(r.length));r=a,i=void 0!==(null==n?void 0:n[r])}return"true"===r||"false"!==r&&("null"===r?null:("BI"===r&&(this.beginInlineImagePos=this.stream.pos),Me.get(r)))}},{key:"skipToNextLine",value:function(){for(var e=this.currentChar;e>=0;){if(13===e){10===(e=this.nextChar())&&this.nextChar();break}if(10===e){this.nextChar();break}e=this.nextChar()}}}])}(),Ko=function(){return Lo((function e(){Go(this,e)}),null,[{key:"create",value:function(e){function t(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],A=e.get(t);if(Number.isInteger(A)&&(r?A>=0:A>0))return A;throw new Error('The "'.concat(t,'" parameter in the linearization ')+"dictionary is invalid.")}var r,A,n=new Jo({lexer:new Oo(e),xref:null}),i=n.getObj(),a=n.getObj(),o=n.getObj(),s=n.getObj();if(!(Number.isInteger(i)&&Number.isInteger(a)&&Te(o,"obj")&&s instanceof He&&"number"==typeof(r=s.get("Linearized"))&&r>0))return null;if((A=t(s,"L"))!==e.length)throw new Error('The "L" parameter in the linearization dictionary does not equal the stream length.');return{length:A,hints:function(e){var t,r=e.get("H");if(Array.isArray(r)&&(2===(t=r.length)||4===t)){for(var A=0;A0))throw new Error("Hint (".concat(A,") in the linearization dictionary is invalid."))}return r}throw new Error("Hint array in the linearization dictionary is invalid.")}(s),objectNumberFirst:t(s,"O"),endFirst:t(s,"E"),numPages:t(s,"N"),mainXRefEntriesOffset:t(s,"T"),pageFirst:s.has("P")?t(s,"P",!0):0}}}])}();function To(){To=function(){return t};var e,t={},r=Object.prototype,A=r.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,r){return e[t]=r}}function g(e,t,r,A){var i=t&&t.prototype instanceof B?t:B,a=Object.create(i.prototype),o=new F(A||[]);return n(a,"_invoke",{value:b(e,r,o)}),a}function u(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=g;var l="suspendedStart",h="suspendedYield",I="executing",f="completed",C={};function B(){}function Q(){}function E(){}var d={};c(d,a,(function(){return this}));var y=Object.getPrototypeOf,p=y&&y(y(x([])));p&&p!==r&&A.call(p,a)&&(d=p);var v=E.prototype=B.prototype=Object.create(d);function m(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function r(n,i,a,o){var s=u(e[n],e,i);if("throw"!==s.type){var c=s.arg,g=c.value;return g&&"object"==typeof g&&A.call(g,"__await")?t.resolve(g.__await).then((function(e){r("next",e,a,o)}),(function(e){r("throw",e,a,o)})):t.resolve(g).then((function(e){c.value=e,a(c)}),(function(e){return r("throw",e,a,o)}))}o(s.arg)}var i;n(this,"_invoke",{value:function(e,A){function n(){return new t((function(t,n){r(e,A,t,n)}))}return i=i?i.then(n,n):n()}})}function b(t,r,A){var n=l;return function(i,a){if(n===I)throw Error("Generator is already running");if(n===f){if("throw"===i)throw a;return{value:e,done:!0}}for(A.method=i,A.arg=a;;){var o=A.delegate;if(o){var s=k(o,A);if(s){if(s===C)continue;return s}}if("next"===A.method)A.sent=A._sent=A.arg;else if("throw"===A.method){if(n===l)throw n=f,A.arg;A.dispatchException(A.arg)}else"return"===A.method&&A.abrupt("return",A.arg);n=I;var c=u(t,r,A);if("normal"===c.type){if(n=A.done?f:h,c.arg===C)continue;return{value:c.arg,done:A.done}}"throw"===c.type&&(n=f,A.method="throw",A.arg=c.arg)}}}function k(t,r){var A=r.method,n=t.iterator[A];if(n===e)return r.delegate=null,"throw"===A&&t.iterator.return&&(r.method="return",r.arg=e,k(t,r),"throw"===r.method)||"return"!==A&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+A+"' method")),C;var i=u(n,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,C;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,C):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,C)}function D(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function F(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(D,this),this.reset(!0)}function x(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,i=function r(){for(;++n=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}function qo(e,t,r,A,n,i,a){try{var o=e[i](a),s=o.value}catch(e){return void r(e)}o.done?t(s):Promise.resolve(s).then(A,n)}function jo(e){return function(){var t=this,r=arguments;return new Promise((function(A,n){var i=e.apply(t,r);function a(e){qo(i,A,n,a,o,"next",e)}function o(e){qo(i,A,n,a,o,"throw",e)}a(void 0)}))}}function Wo(e,t,r){return t=_o(t),function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Zo()?Reflect.construct(t,r||[],_o(e).constructor):t.apply(e,r))}function Zo(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Zo=function(){return!!e})()}function _o(e){return _o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},_o(e)}function Xo(e,t){return Xo=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Xo(e,t)}function Vo(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function zo(e,t){for(var r=0;r0&&void 0!==arguments[0]&&arguments[0];Vo(this,e),this.codespaceRanges=[[],[],[],[]],this.numCodespaceRanges=0,this._map=[],this.name="",this.vertical=!1,this.useCMap=null,this.builtInCMap=t}),[{key:"addCodespaceRange",value:function(e,t,r){this.codespaceRanges[e-1].push(t,r),this.numCodespaceRanges++}},{key:"mapCidRange",value:function(e,t,r){if(t-e>rs)throw new Error("mapCidRange - ignoring data above MAX_MAP_RANGE.");for(;e<=t;)this._map[e++]=r++}},{key:"mapBfRange",value:function(e,t,r){if(t-e>rs)throw new Error("mapBfRange - ignoring data above MAX_MAP_RANGE.");for(var A=r.length-1;e<=t;){this._map[e++]=r;var n=r.charCodeAt(A)+1;r=n>255?r.substring(0,A-1)+String.fromCharCode(r.charCodeAt(A-1)+1)+"\\0":r.substring(0,A)+String.fromCharCode(n)}}},{key:"mapBfRangeToArray",value:function(e,t,r){if(t-e>rs)throw new Error("mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.");for(var A=r.length,n=0;e<=t&&n>>0;for(var o=n[i],s=0,c=o.length;s=g&&A<=u)return r.charcode=A,void(r.length=i+1)}}r.charcode=0,r.length=1}},{key:"getCharCodeLength",value:function(e){for(var t=this.codespaceRanges,r=0,A=t.length;r=o&&e<=s)return r+1}return 1}},{key:"length",get:function(){return this._map.length}},{key:"isIdentityCMap",get:function(){if("Identity-H"!==this.name&&"Identity-V"!==this.name)return!1;if(65536!==this._map.length)return!1;for(var e=0;e<65536;e++)if(this._map[e]!==e)return!1;return!0}}])}(),ns=function(e){function t(e,r){var A;return Vo(this,t),(A=Wo(this,t)).vertical=e,A.addCodespaceRange(r,0,65535),A}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Xo(e,t)}(t,As),$o(t,[{key:"mapCidRange",value:function(e,t,r){j("should not call mapCidRange")}},{key:"mapBfRange",value:function(e,t,r){j("should not call mapBfRange")}},{key:"mapBfRangeToArray",value:function(e,t,r){j("should not call mapBfRangeToArray")}},{key:"mapOne",value:function(e,t){j("should not call mapCidOne")}},{key:"lookup",value:function(e){return Number.isInteger(e)&&e<=65535?e:void 0}},{key:"contains",value:function(e){return Number.isInteger(e)&&e<=65535}},{key:"forEach",value:function(e){for(var t=0;t<=65535;t++)e(t,t)}},{key:"charCodeOf",value:function(e){return Number.isInteger(e)&&e<=65535?e:-1}},{key:"getMap",value:function(){for(var e=new Array(65536),t=0;t<=65535;t++)e[t]=t;return e}},{key:"length",get:function(){return 65536}},{key:"isIdentityCMap",get:function(){j("should not access .isIdentityCMap")}}])}();function is(e){for(var t=0,r=0;r>>0}function as(e){if("string"!=typeof e)throw new re("Malformed CMap: expected string.")}function os(e){if(!Number.isInteger(e))throw new re("Malformed CMap: expected int.")}function ss(e,t){for(;;){var r=t.getObj();if(r===Re)break;if(Te(r,"endbfchar"))return;as(r);var A=is(r);as(r=t.getObj());var n=r;e.mapOne(A,n)}}function cs(e,t){for(;;){var r=t.getObj();if(r===Re)break;if(Te(r,"endbfrange"))return;as(r);var A=is(r);as(r=t.getObj());var n=is(r);if(r=t.getObj(),Number.isInteger(r)||"string"==typeof r){var i=Number.isInteger(r)?String.fromCharCode(r):r;e.mapBfRange(A,n,i)}else{if(!Te(r,"["))break;r=t.getObj();for(var a=[];!Te(r,"]")&&r!==Re;)a.push(r),r=t.getObj();e.mapBfRangeToArray(A,n,a)}}throw new re("Invalid bf range.")}function gs(e,t){for(;;){var r=t.getObj();if(r===Re)break;if(Te(r,"endcidchar"))return;as(r);var A=is(r);os(r=t.getObj());var n=r;e.mapOne(A,n)}}function us(e,t){for(;;){var r=t.getObj();if(r===Re)break;if(Te(r,"endcidrange"))return;as(r);var A=is(r);as(r=t.getObj());var n=is(r);os(r=t.getObj());var i=r;e.mapCidRange(A,n,i)}}function ls(e,t){for(;;){var r=t.getObj();if(r===Re)break;if(Te(r,"endcodespacerange"))return;if("string"!=typeof r)break;var A=is(r);if("string"!=typeof(r=t.getObj()))break;var n=is(r);e.addCodespaceRange(r.length,A,n)}throw new re("Invalid codespace range.")}function hs(e,t){var r=t.getObj();Number.isInteger(r)&&(e.vertical=!!r)}function Is(e,t){var r=t.getObj();r instanceof Ue&&(e.name=r.name)}function fs(e,t,r,A){return Cs.apply(this,arguments)}function Cs(){return(Cs=jo(To().mark((function e(t,r,A,n){var i,a,o;return To().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=1,(o=r.getObj())!==Re){e.next=7;break}return e.abrupt("break",39);case 7:if(!(o instanceof Ue)){e.next=12;break}"WMode"===o.name?hs(t,r):"CMapName"===o.name&&Is(t,r),i=o,e.next=29;break;case 12:if(!(o instanceof Me)){e.next=29;break}e.t0=o.cmd,e.next="endcmap"===e.t0?16:"usecmap"===e.t0?17:"begincodespacerange"===e.t0?19:"beginbfchar"===e.t0?21:"begincidchar"===e.t0?23:"beginbfrange"===e.t0?25:"begincidrange"===e.t0?27:29;break;case 16:return e.abrupt("break",39);case 17:return i instanceof Ue&&(a=i.name),e.abrupt("break",29);case 19:return ls(t,r),e.abrupt("break",29);case 21:return ss(t,r),e.abrupt("break",29);case 23:return gs(t,r),e.abrupt("break",29);case 25:return cs(t,r),e.abrupt("break",29);case 27:return us(t,r),e.abrupt("break",29);case 29:e.next=37;break;case 31:if(e.prev=31,e.t1=e.catch(1),!(e.t1 instanceof Ct)){e.next=35;break}throw e.t1;case 35:return q("Invalid cMap data: "+e.t1),e.abrupt("continue",0);case 37:e.next=0;break;case 39:if(!n&&a&&(n=a),!n){e.next=42;break}return e.abrupt("return",Bs(t,A,n));case 42:return e.abrupt("return",t);case 43:case"end":return e.stop()}}),e,null,[[1,31]])})))).apply(this,arguments)}function Bs(e,t,r){return Qs.apply(this,arguments)}function Qs(){return(Qs=jo(To().mark((function e(t,r,A){var n,i;return To().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Es(A,r);case 2:if(t.useCMap=e.sent,0===t.numCodespaceRanges){for(n=t.useCMap.codespaceRanges,i=0;i=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function Ps(e,t){if(e){if("string"==typeof e)return Os(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)?Os(e,t):void 0}}function Os(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r=t)throw new re("Invalid CFF header");0!==r&&(T("cff data is shifted"),e=e.subarray(r),this.bytes=e);var A=e[0],n=e[1],i=e[2],a=e[3];return{obj:new zs(A,n,i,a),endPos:i}}},{key:"parseDict",value:function(e){var t=0;var r,A=[],n=[];t=0;for(var i=e.length;t>4,o=15&i;if(15===a)break;if(r+=A[a],15===o)break;r+=A[o]}return parseFloat(r)}():28===r?r=((r=e[t++])<<24|e[t++]<<16)>>16:29===r?r=(r=(r=(r=e[t++])<<8|e[t++])<<8|e[t++])<<8|e[t++]:r>=32&&r<=246?r-139:r>=247&&r<=250?256*(r-247)+e[t++]+108:r>=251&&r<=254?-256*(r-251)-e[t++]-108:(q('CFFParser_parseDict: "'+r+'" is a reserved command.'),NaN)))}return n}},{key:"parseIndex",value:function(e){var t,r,A=new ec,n=this.bytes,i=n[e++]<<8|n[e++],a=[],o=e;if(0!==i){var s=n[e++],c=e+(i+1)*s-1;for(t=0,r=i+1;t10)return!1;for(var n=e.stackSize,i=e.stack,a=t.length,o=0;o>16,o+=2,n++;else if(14===s){if(n>=4&&(n-=4,this.seacAnalysisEnabled))return e.seac=i.slice(n,n+4),!1;c=Zs[s]}else if(s>=32&&s<=246)i[n]=s-139,n++;else if(s>=247&&s<=254)i[n]=s<251?(s-247<<8)+t[o]+108:-(s-251<<8)-t[o]-108,o++,n++;else if(255===s)i[n]=(t[o]<<24|t[o+1]<<16|t[o+2]<<8|t[o+3])/65536,o+=4,n++;else if(19===s||20===s){if(e.hints+=n>>1,0===e.hints){t.copyWithin(o-1,o,-1),o-=1,a-=1;continue}o+=e.hints+7>>3,n%=2,c=Zs[s]}else{if(10===s||29===s){var u=10===s?r:A;if(!u)return q("Missing subrsIndex for "+(c=Zs[s]).id),!1;var l=32768;u.count<1240?l=107:u.count<33900&&(l=1131);var h=i[--n]+l;if(h<0||h>=u.count||isNaN(h))return q("Out of bounds subrIndex for "+(c=Zs[s]).id),!1;if(e.stackSize=n,e.callDepth++,!this.parseCharString(e,u.get(h),r,A))return!1;e.callDepth--,n=e.stackSize;continue}if(11===s)return e.stackSize=n,!0;if(0===s&&o===t.length)t[o-1]=14,c=Zs[14];else{if(9===s){t.copyWithin(o-1,o,-1),o-=1,a-=1;continue}c=Zs[s]}}if(c){if(c.stem&&(e.hints+=n>>1,3===s||23===s?e.hasVStems=!0:!e.hasVStems||1!==s&&18!==s||(q("CFF stem hints are in wrong order"),t[o-1]=1===s?3:23)),"min"in c&&!e.undefStack&&n=2&&c.stem?n%=2:n>1&&q("Found too many parameters for stack-clearing command"),n>0&&(e.width=i[n-1])),"stackDelta"in c?("stackFn"in c&&c.stackFn(i,n),n+=c.stackDelta):c.stackClearing?n=0:c.resetStack?(n=0,e.undefStack=!1):c.undefStack&&(n=0,e.undefStack=!0,e.firstStackClearing=!1)}}return a=i.length&&(q("Invalid fd index for glyph index."),h=!1),h&&(I=(f=i[C].privateDict).subrsIndex)}else r&&(I=r);if(h&&(h=this.parseCharString(l,u,I,A)),null!==l.width){var B=f.getByName("nominalWidthX");s[g]=B+l.width}else{var Q=f.getByName("defaultWidthX");s[g]=Q}null!==l.seac&&(o[g]=l.seac),h||t.set(g,new Uint8Array([14]))}return{charStrings:t,seacs:o,widths:s}}},{key:"emptyPrivateDictionary",value:function(e){var t=this.createDict(ic,[],e.strings);e.setByKey(18,[0,0]),e.privateDict=t}},{key:"parsePrivateDict",value:function(e){if(e.hasName("Private")){var t=e.getByName("Private");if(Array.isArray(t)&&2===t.length){var r=t[0],A=t[1];if(0===r||A>=this.bytes.length)this.emptyPrivateDictionary(e);else{var n=A+r,i=this.bytes.subarray(A,n),a=this.parseDict(i),o=this.createDict(ic,a,e.strings);if(e.privateDict=o,0===o.getByName("ExpansionFactor")&&o.setByName("ExpansionFactor",.06),o.getByName("Subrs")){var s=o.getByName("Subrs"),c=A+s;if(0===s||c>=this.bytes.length)this.emptyPrivateDictionary(e);else{var g=this.parseIndex(c);o.subrsIndex=g.obj}}}}else e.removeByName("Private")}else this.emptyPrivateDictionary(e)}},{key:"parseCharsets",value:function(e,t,r,A){if(0===e)return new oc(!0,ac.ISO_ADOBE,ps);if(1===e)return new oc(!0,ac.EXPERT,vs);if(2===e)return new oc(!0,ac.EXPERT_SUBSET,ms);var n,i,a,o=this.bytes,s=e,c=o[e++],g=[A?0:".notdef"];switch(t-=1,c){case 0:for(a=0;a=65535)q("Not enough space in charstrings to duplicate first glyph.");else{var e=this.charStrings.get(0);this.charStrings.add(e),this.isCIDFont&&this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0])}}},{key:"hasGlyphId",value:function(e){return!(e<0||e>=this.charStrings.count)&&this.charStrings.get(e).length>0}}])}(),zs=qs((function e(t,r,A,n){Ks(this,e),this.major=t,this.minor=r,this.hdrSize=A,this.offSize=n})),$s=function(){return qs((function e(){Ks(this,e),this.strings=[]}),[{key:"get",value:function(e){return e>=0&&e<=390?Ws[e]:e-391<=this.strings.length?this.strings[e-391]:Ws[0]}},{key:"getSID",value:function(e){var t=Ws.indexOf(e);return-1!==t?t:-1!==(t=this.strings.indexOf(e))?t+391:-1}},{key:"add",value:function(e){this.strings.push(e)}},{key:"count",get:function(){return this.strings.length}}])}(),ec=function(){return qs((function e(){Ks(this,e),this.objects=[],this.length=0}),[{key:"add",value:function(e){this.length+=e.length,this.objects.push(e)}},{key:"set",value:function(e,t){this.length+=t.length-this.objects[e].length,this.objects[e]=t}},{key:"get",value:function(e){return this.objects[e]}},{key:"count",get:function(){return this.objects.length}}])}(),tc=function(){return qs((function e(t,r){Ks(this,e),this.keyToNameMap=t.keyToNameMap,this.nameToKeyMap=t.nameToKeyMap,this.defaults=t.defaults,this.types=t.types,this.opcodes=t.opcodes,this.order=t.order,this.strings=r,this.values=Object.create(null)}),[{key:"setByKey",value:function(e,t){if(!(e in this.keyToNameMap))return!1;if(0===t.length)return!0;var r,A=Ys(t);try{for(A.s();!(r=A.n()).done;){var n=r.value;if(isNaN(n))return q('Invalid CFFDict value: "'.concat(t,'" for key "').concat(e,'".')),!0}}catch(e){A.e(e)}finally{A.f()}var i=this.types[e];return"num"!==i&&"sid"!==i&&"offset"!==i||(t=t[0]),this.values[e]=t,!0}},{key:"setByName",value:function(e,t){if(!(e in this.nameToKeyMap))throw new re('Invalid dictionary name "'.concat(e,'"'));this.values[this.nameToKeyMap[e]]=t}},{key:"hasName",value:function(e){return this.nameToKeyMap[e]in this.values}},{key:"getByName",value:function(e){if(!(e in this.nameToKeyMap))throw new re("Invalid dictionary name ".concat(e,'"'));var t=this.nameToKeyMap[e];return t in this.values?this.values[t]:this.defaults[t]}},{key:"removeByName",value:function(e){delete this.values[this.nameToKeyMap[e]]}}],[{key:"createTables",value:function(e){var t,r={keyToNameMap:{},nameToKeyMap:{},defaults:{},types:{},opcodes:{},order:[]},A=Ys(e);try{for(A.s();!(t=A.n()).done;){var n=t.value,i=Array.isArray(n[0])?(n[0][0]<<8)+n[0][1]:n[0];r.keyToNameMap[i]=n[1],r.nameToKeyMap[n[1]]=i,r.types[i]=n[2],r.defaults[i]=n[3],r.opcodes[i]=Array.isArray(n[0])?n[0]:[n[0]],r.order.push(i)}}catch(e){A.e(e)}finally{A.f()}return r}}])}(),rc=[[[12,30],"ROS",["sid","sid","num"],null],[[12,20],"SyntheticBase","num",null],[0,"version","sid",null],[1,"Notice","sid",null],[[12,0],"Copyright","sid",null],[2,"FullName","sid",null],[3,"FamilyName","sid",null],[4,"Weight","sid",null],[[12,1],"isFixedPitch","num",0],[[12,2],"ItalicAngle","num",0],[[12,3],"UnderlinePosition","num",-100],[[12,4],"UnderlineThickness","num",50],[[12,5],"PaintType","num",0],[[12,6],"CharstringType","num",2],[[12,7],"FontMatrix",["num","num","num","num","num","num"],[.001,0,0,.001,0,0]],[13,"UniqueID","num",null],[5,"FontBBox",["num","num","num","num"],[0,0,0,0]],[[12,8],"StrokeWidth","num",0],[14,"XUID","array",null],[15,"charset","offset",0],[16,"Encoding","offset",0],[17,"CharStrings","offset",0],[18,"Private",["offset","offset"],null],[[12,21],"PostScript","sid",null],[[12,22],"BaseFontName","sid",null],[[12,23],"BaseFontBlend","delta",null],[[12,31],"CIDFontVersion","num",0],[[12,32],"CIDFontRevision","num",0],[[12,33],"CIDFontType","num",0],[[12,34],"CIDCount","num",8720],[[12,35],"UIDBase","num",null],[[12,37],"FDSelect","offset",null],[[12,36],"FDArray","offset",null],[[12,38],"FontName","sid",null]],Ac=function(e){function t(e){var r;return Ks(this,t),(r=Ns(this,t,[t.tables,e])).privateDict=null,r}return Ms(t,tc),qs(t,null,[{key:"tables",get:function(){return _(this,"tables",this.createTables(rc))}}])}(),nc=[[6,"BlueValues","delta",null],[7,"OtherBlues","delta",null],[8,"FamilyBlues","delta",null],[9,"FamilyOtherBlues","delta",null],[[12,9],"BlueScale","num",.039625],[[12,10],"BlueShift","num",7],[[12,11],"BlueFuzz","num",1],[10,"StdHW","num",null],[11,"StdVW","num",null],[[12,12],"StemSnapH","delta",null],[[12,13],"StemSnapV","delta",null],[[12,14],"ForceBold","num",0],[[12,17],"LanguageGroup","num",0],[[12,18],"ExpansionFactor","num",.06],[[12,19],"initialRandomSeed","num",0],[20,"defaultWidthX","num",0],[21,"nominalWidthX","num",0],[19,"Subrs","offset",null]],ic=function(e){function t(e){var r;return Ks(this,t),(r=Ns(this,t,[t.tables,e])).subrsIndex=null,r}return Ms(t,tc),qs(t,null,[{key:"tables",get:function(){return _(this,"tables",this.createTables(nc))}}])}(),ac={ISO_ADOBE:0,EXPERT:1,EXPERT_SUBSET:2},oc=qs((function e(t,r,A,n){Ks(this,e),this.predefined=t,this.format=r,this.charset=A,this.raw=n})),sc=qs((function e(t,r,A,n){Ks(this,e),this.predefined=t,this.format=r,this.encoding=A,this.raw=n})),cc=function(){return qs((function e(t,r){Ks(this,e),this.format=t,this.fdSelect=r}),[{key:"getFDIndex",value:function(e){return e<0||e>=this.fdSelect.length?-1:this.fdSelect[e]}}])}(),gc=function(){return qs((function e(){Ks(this,e),this.offsets=Object.create(null)}),[{key:"isTracking",value:function(e){return e in this.offsets}},{key:"track",value:function(e,t){if(e in this.offsets)throw new re("Already tracking location of ".concat(e));this.offsets[e]=t}},{key:"offset",value:function(e){for(var t in this.offsets)this.offsets[t]+=e}},{key:"setEntryLocation",value:function(e,t,r){if(!(e in this.offsets))throw new re("Not tracking location of ".concat(e));for(var A=r.data,n=this.offsets[e],i=0,a=t.length;i>24&255,A[c]=l>>16&255,A[g]=l>>8&255,A[u]=255&l}}}])}(),uc=function(){function e(t){Ks(this,e),this.cff=t}return qs(e,[{key:"compile",value:function(){var e=this.cff,t={data:[],length:0,add(e){try{var t;(t=this.data).push.apply(t,Gs(e))}catch(t){this.data=this.data.concat(e)}this.length=this.data.length}},r=this.compileHeader(e.header);t.add(r);var A=this.compileNameIndex(e.names);if(t.add(A),e.isCIDFont&&e.topDict.hasName("FontMatrix")){var n=e.topDict.getByName("FontMatrix");e.topDict.removeByName("FontMatrix");var i,a=Ys(e.fdArray);try{for(a.s();!(i=a.n()).done;){var o=i.value,s=n.slice(0);o.hasName("FontMatrix")&&(s=ge.transform(s,o.getByName("FontMatrix"))),o.setByName("FontMatrix",s)}}catch(e){a.e(e)}finally{a.f()}}var c=e.topDict.getByName("XUID");(null==c?void 0:c.length)>16&&e.topDict.removeByName("XUID"),e.topDict.setByName("charset",0);var g=this.compileTopDicts([e.topDict],t.length,e.isCIDFont);t.add(g.output);var u=g.trackers[0],l=this.compileStringIndex(e.strings.strings);t.add(l);var h=this.compileIndex(e.globalSubrIndex);if(t.add(h),e.encoding&&e.topDict.hasName("Encoding"))if(e.encoding.predefined)u.setEntryLocation("Encoding",[e.encoding.format],t);else{var I=this.compileEncoding(e.encoding);u.setEntryLocation("Encoding",[t.length],t),t.add(I)}var f=this.compileCharset(e.charset,e.charStrings.count,e.strings,e.isCIDFont);u.setEntryLocation("charset",[t.length],t),t.add(f);var C=this.compileCharStrings(e.charStrings);if(u.setEntryLocation("CharStrings",[t.length],t),t.add(C),e.isCIDFont){u.setEntryLocation("FDSelect",[t.length],t);var B=this.compileFDSelect(e.fdSelect);t.add(B),g=this.compileTopDicts(e.fdArray,t.length,!0),u.setEntryLocation("FDArray",[t.length],t),t.add(g.output);var Q=g.trackers;this.compilePrivateDicts(e.fdArray,Q,t)}return this.compilePrivateDicts([e.topDict],[u],t),t.add([0]),t.data}},{key:"encodeNumber",value:function(e){return Number.isInteger(e)?this.encodeInteger(e):this.encodeFloat(e)}},{key:"encodeFloat",value:function(t){var r=t.toString(),A=e.EncodeFloatRegExp.exec(r);if(A){var n=parseFloat("1e"+((A[2]?+A[2]:0)+A[1].length));r=(Math.round(t*n)/n).toString()}var i,a,o="";for(i=0,a=r.length;i=-107&&e<=107?[e+139]:e>=108&&e<=1131?[247+((e-=108)>>8),255&e]:e>=-1131&&e<=-108?[251+((e=-e-108)>>8),255&e]:e>=-32768&&e<=32767?[28,e>>8&255,255&e]:[29,e>>24&255,e>>16&255,e>>8&255,255&e]}},{key:"compileHeader",value:function(e){return[e.major,e.minor,4,e.offSize]}},{key:"compileNameIndex",value:function(e){var t,r=new ec,A=Ys(e);try{for(A.s();!(t=A.n()).done;){for(var n=t.value,i=Math.min(n.length,127),a=new Array(i),o=0;o"~"||"["===s||"]"===s||"("===s||")"===s||"{"===s||"}"===s||"<"===s||">"===s||"/"===s||"%"===s)&&(s="_"),a[o]=s}""===(a=a.join(""))&&(a="Bad_Font_Name"),r.add(ie(a))}}catch(e){A.e(e)}finally{A.f()}return this.compileIndex(r)}},{key:"compileTopDicts",value:function(e,t,r){var A,n=[],i=new ec,a=Ys(e);try{for(a.s();!(A=a.n()).done;){var o=A.value;r&&(o.removeByName("CIDFontVersion"),o.removeByName("CIDFontRevision"),o.removeByName("CIDFontType"),o.removeByName("CIDCount"),o.removeByName("UIDBase"));var s=new gc,c=this.compileDict(o,s);n.push(s),i.add(c),s.offset(t)}}catch(e){a.e(e)}finally{a.f()}return{trackers:n,output:i=this.compileIndex(i,n)}}},{key:"compilePrivateDicts",value:function(e,t,r){for(var A=0,n=e.length;A>8&255,255&i]);else{(n=new Uint8Array(1+2*i))[0]=0;for(var a=0,o=e.charset.length,s=!1,c=1;c>8&255,n[c+1]=255&g}}return this.compileTypedArray(n)}},{key:"compileEncoding",value:function(e){return this.compileTypedArray(e.raw)}},{key:"compileFDSelect",value:function(e){var t,r,A=e.format;switch(A){case 0:for((t=new Uint8Array(1+e.fdSelect.length))[0]=A,r=0;r>8&255,255&r,a),n=a)}var o=(i.length-3)/3;i[1]=o>>8&255,i[2]=255&o,i.push(r>>8&255,255&r),t=new Uint8Array(i)}return this.compileTypedArray(t)}},{key:"compileTypedArray",value:function(e){return Array.from(e)}},{key:"compileIndex",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=e.objects,A=r.length;if(0===A)return[0,0];var n,i,a=[A>>8&255,255&A],o=1;for(n=0;n>8&255,255&s):3===i?a.push(s>>16&255,s>>8&255,255&s):a.push(s>>>24&255,s>>16&255,s>>8&255,255&s),r[n]&&(s+=r[n].length);for(n=0;n=5&&n<=7))return-1;A=e.substring(1)}if(A===A.toUpperCase()&&(r=parseInt(A,16))>=0)return r}return-1}var Cc=[[0,127],[128,255],[256,383],[384,591],[592,687,7424,7551,7552,7615],[688,767,42752,42783],[768,879,7616,7679],[880,1023],[11392,11519],[1024,1279,1280,1327,11744,11775,42560,42655],[1328,1423],[1424,1535],[42240,42559],[1536,1791,1872,1919],[1984,2047],[2304,2431],[2432,2559],[2560,2687],[2688,2815],[2816,2943],[2944,3071],[3072,3199],[3200,3327],[3328,3455],[3584,3711],[3712,3839],[4256,4351,11520,11567],[6912,7039],[4352,4607],[7680,7935,11360,11391,42784,43007],[7936,8191],[8192,8303,11776,11903],[8304,8351],[8352,8399],[8400,8447],[8448,8527],[8528,8591],[8592,8703,10224,10239,10496,10623,11008,11263],[8704,8959,10752,11007,10176,10223,10624,10751],[8960,9215],[9216,9279],[9280,9311],[9312,9471],[9472,9599],[9600,9631],[9632,9727],[9728,9983],[9984,10175],[12288,12351],[12352,12447],[12448,12543,12784,12799],[12544,12591,12704,12735],[12592,12687],[43072,43135],[12800,13055],[13056,13311],[44032,55215],[55296,57343],[67840,67871],[19968,40959,11904,12031,12032,12255,12272,12287,13312,19903,131072,173791,12688,12703],[57344,63743],[12736,12783,63744,64255,194560,195103],[64256,64335],[64336,65023],[65056,65071],[65040,65055],[65104,65135],[65136,65279],[65280,65519],[65520,65535],[3840,4095],[1792,1871],[1920,1983],[3456,3583],[4096,4255],[4608,4991,4992,5023,11648,11743],[5024,5119],[5120,5759],[5760,5791],[5792,5887],[6016,6143],[6144,6319],[10240,10495],[40960,42127],[5888,5919,5920,5951,5952,5983,5984,6015],[66304,66351],[66352,66383],[66560,66639],[118784,119039,119040,119295,119296,119375],[119808,120831],[1044480,1048573],[65024,65039,917760,917999],[917504,917631],[6400,6479],[6480,6527],[6528,6623],[6656,6687],[11264,11359],[11568,11647],[19904,19967],[43008,43055],[65536,65663,65664,65791,65792,65855],[65856,65935],[66432,66463],[66464,66527],[66640,66687],[66688,66735],[67584,67647],[68096,68191],[119552,119647],[73728,74751,74752,74879],[119648,119679],[7040,7103],[7168,7247],[7248,7295],[43136,43231],[43264,43311],[43312,43359],[43520,43615],[65936,65999],[66e3,66047],[66208,66271,66176,66207,67872,67903],[127024,127135,126976,127023]];function Bc(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;if(-1!==t)for(var r=Cc[t],A=0,n=r.length;A=r[A]&&e<=r[A+1])return t;for(var i=0,a=Cc.length;i=o[s]&&e<=o[s+1])return i;return-1}var Qc=new RegExp("^(\\\\s)|(\\\\p{Mn})|(\\\\p{Cf})$","u"),Ec=new Map,dc=!0,yc=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"];function pc(e,t){if(void 0!==t[e])return e;var r=fc(e,t);if(-1!==r)for(var A in t)if(t[A]===r)return A;return T("Unable to recover a standard glyph name for: "+e),e}function vc(e,t,r){var A,n,i,a=Object.create(null),o=!!(4&e.flags);if(e.isInternalFont)for(i=t,n=0;n=0?A:0;else if(e.baseEncodingName)for(i=Rs(e.baseEncodingName),n=0;n=0?A:0;else if(o)for(n in t)a[n]=t[n];else for(i=Ds,n=0;n=0?A:0;var s,c=e.differences;if(c)for(n in c){var g=c[n];if(-1===(A=r.indexOf(g))){s||(s=lc());var u=pc(g,s);u!==g&&(A=r.indexOf(u))}a[n]=A>=0?A:0}return a}function mc(e){return e.replaceAll(/[,_]/g,"-").replaceAll(/\\s/g,"")}var wc=ft((function(e){e[8211]=65074,e[8212]=65073,e[8229]=65072,e[8230]=65049,e[12289]=65041,e[12290]=65042,e[12296]=65087,e[12297]=65088,e[12298]=65085,e[12299]=65086,e[12300]=65089,e[12301]=65090,e[12302]=65091,e[12303]=65092,e[12304]=65083,e[12305]=65084,e[12308]=65081,e[12309]=65082,e[12310]=65047,e[12311]=65048,e[65103]=65076,e[65281]=65045,e[65288]=65077,e[65289]=65078,e[65292]=65040,e[65306]=65043,e[65307]=65044,e[65311]=65046,e[65339]=65095,e[65341]=65096,e[65343]=65075,e[65371]=65079,e[65373]=65080})),bc=ft((function(e){e["Times-Roman"]="Times-Roman",e.Helvetica="Helvetica",e.Courier="Courier",e.Symbol="Symbol",e["Times-Bold"]="Times-Bold",e["Helvetica-Bold"]="Helvetica-Bold",e["Courier-Bold"]="Courier-Bold",e.ZapfDingbats="ZapfDingbats",e["Times-Italic"]="Times-Italic",e["Helvetica-Oblique"]="Helvetica-Oblique",e["Courier-Oblique"]="Courier-Oblique",e["Times-BoldItalic"]="Times-BoldItalic",e["Helvetica-BoldOblique"]="Helvetica-BoldOblique",e["Courier-BoldOblique"]="Courier-BoldOblique",e.ArialNarrow="Helvetica",e["ArialNarrow-Bold"]="Helvetica-Bold",e["ArialNarrow-BoldItalic"]="Helvetica-BoldOblique",e["ArialNarrow-Italic"]="Helvetica-Oblique",e.ArialBlack="Helvetica",e["ArialBlack-Bold"]="Helvetica-Bold",e["ArialBlack-BoldItalic"]="Helvetica-BoldOblique",e["ArialBlack-Italic"]="Helvetica-Oblique",e["Arial-Black"]="Helvetica",e["Arial-Black-Bold"]="Helvetica-Bold",e["Arial-Black-BoldItalic"]="Helvetica-BoldOblique",e["Arial-Black-Italic"]="Helvetica-Oblique",e.Arial="Helvetica",e["Arial-Bold"]="Helvetica-Bold",e["Arial-BoldItalic"]="Helvetica-BoldOblique",e["Arial-Italic"]="Helvetica-Oblique",e.ArialMT="Helvetica",e["Arial-BoldItalicMT"]="Helvetica-BoldOblique",e["Arial-BoldMT"]="Helvetica-Bold",e["Arial-ItalicMT"]="Helvetica-Oblique",e["Arial-BoldItalicMT-BoldItalic"]="Helvetica-BoldOblique",e["Arial-BoldMT-Bold"]="Helvetica-Bold",e["Arial-ItalicMT-Italic"]="Helvetica-Oblique",e.ArialUnicodeMS="Helvetica",e["ArialUnicodeMS-Bold"]="Helvetica-Bold",e["ArialUnicodeMS-BoldItalic"]="Helvetica-BoldOblique",e["ArialUnicodeMS-Italic"]="Helvetica-Oblique",e["Courier-BoldItalic"]="Courier-BoldOblique",e["Courier-Italic"]="Courier-Oblique",e.CourierNew="Courier",e["CourierNew-Bold"]="Courier-Bold",e["CourierNew-BoldItalic"]="Courier-BoldOblique",e["CourierNew-Italic"]="Courier-Oblique",e["CourierNewPS-BoldItalicMT"]="Courier-BoldOblique",e["CourierNewPS-BoldMT"]="Courier-Bold",e["CourierNewPS-ItalicMT"]="Courier-Oblique",e.CourierNewPSMT="Courier",e["Helvetica-BoldItalic"]="Helvetica-BoldOblique",e["Helvetica-Italic"]="Helvetica-Oblique",e["Symbol-Bold"]="Symbol",e["Symbol-BoldItalic"]="Symbol",e["Symbol-Italic"]="Symbol",e.TimesNewRoman="Times-Roman",e["TimesNewRoman-Bold"]="Times-Bold",e["TimesNewRoman-BoldItalic"]="Times-BoldItalic",e["TimesNewRoman-Italic"]="Times-Italic",e.TimesNewRomanPS="Times-Roman",e["TimesNewRomanPS-Bold"]="Times-Bold",e["TimesNewRomanPS-BoldItalic"]="Times-BoldItalic",e["TimesNewRomanPS-BoldItalicMT"]="Times-BoldItalic",e["TimesNewRomanPS-BoldMT"]="Times-Bold",e["TimesNewRomanPS-Italic"]="Times-Italic",e["TimesNewRomanPS-ItalicMT"]="Times-Italic",e.TimesNewRomanPSMT="Times-Roman",e["TimesNewRomanPSMT-Bold"]="Times-Bold",e["TimesNewRomanPSMT-BoldItalic"]="Times-BoldItalic",e["TimesNewRomanPSMT-Italic"]="Times-Italic"})),kc=ft((function(e){e.Courier="FoxitFixed.pfb",e["Courier-Bold"]="FoxitFixedBold.pfb",e["Courier-BoldOblique"]="FoxitFixedBoldItalic.pfb",e["Courier-Oblique"]="FoxitFixedItalic.pfb",e.Helvetica="LiberationSans-Regular.ttf",e["Helvetica-Bold"]="LiberationSans-Bold.ttf",e["Helvetica-BoldOblique"]="LiberationSans-BoldItalic.ttf",e["Helvetica-Oblique"]="LiberationSans-Italic.ttf",e["Times-Roman"]="FoxitSerif.pfb",e["Times-Bold"]="FoxitSerifBold.pfb",e["Times-BoldItalic"]="FoxitSerifBoldItalic.pfb",e["Times-Italic"]="FoxitSerifItalic.pfb",e.Symbol="FoxitSymbol.pfb",e.ZapfDingbats="FoxitDingbats.pfb",e["LiberationSans-Regular"]="LiberationSans-Regular.ttf",e["LiberationSans-Bold"]="LiberationSans-Bold.ttf",e["LiberationSans-Italic"]="LiberationSans-Italic.ttf",e["LiberationSans-BoldItalic"]="LiberationSans-BoldItalic.ttf"})),Dc=ft((function(e){e.Calibri="Helvetica",e["Calibri-Bold"]="Helvetica-Bold",e["Calibri-BoldItalic"]="Helvetica-BoldOblique",e["Calibri-Italic"]="Helvetica-Oblique",e.CenturyGothic="Helvetica",e["CenturyGothic-Bold"]="Helvetica-Bold",e["CenturyGothic-BoldItalic"]="Helvetica-BoldOblique",e["CenturyGothic-Italic"]="Helvetica-Oblique",e.ComicSansMS="Comic Sans MS",e["ComicSansMS-Bold"]="Comic Sans MS-Bold",e["ComicSansMS-BoldItalic"]="Comic Sans MS-BoldItalic",e["ComicSansMS-Italic"]="Comic Sans MS-Italic",e.GillSansMT="Helvetica",e["GillSansMT-Bold"]="Helvetica-Bold",e["GillSansMT-BoldItalic"]="Helvetica-BoldOblique",e["GillSansMT-Italic"]="Helvetica-Oblique",e.Impact="Helvetica",e["ItcSymbol-Bold"]="Helvetica-Bold",e["ItcSymbol-BoldItalic"]="Helvetica-BoldOblique",e["ItcSymbol-Book"]="Helvetica",e["ItcSymbol-BookItalic"]="Helvetica-Oblique",e["ItcSymbol-Medium"]="Helvetica",e["ItcSymbol-MediumItalic"]="Helvetica-Oblique",e.LucidaConsole="Courier",e["LucidaConsole-Bold"]="Courier-Bold",e["LucidaConsole-BoldItalic"]="Courier-BoldOblique",e["LucidaConsole-Italic"]="Courier-Oblique",e["LucidaSans-Demi"]="Helvetica-Bold",e["MS-Gothic"]="MS Gothic",e["MS-Gothic-Bold"]="MS Gothic-Bold",e["MS-Gothic-BoldItalic"]="MS Gothic-BoldItalic",e["MS-Gothic-Italic"]="MS Gothic-Italic",e["MS-Mincho"]="MS Mincho",e["MS-Mincho-Bold"]="MS Mincho-Bold",e["MS-Mincho-BoldItalic"]="MS Mincho-BoldItalic",e["MS-Mincho-Italic"]="MS Mincho-Italic",e["MS-PGothic"]="MS PGothic",e["MS-PGothic-Bold"]="MS PGothic-Bold",e["MS-PGothic-BoldItalic"]="MS PGothic-BoldItalic",e["MS-PGothic-Italic"]="MS PGothic-Italic",e["MS-PMincho"]="MS PMincho",e["MS-PMincho-Bold"]="MS PMincho-Bold",e["MS-PMincho-BoldItalic"]="MS PMincho-BoldItalic",e["MS-PMincho-Italic"]="MS PMincho-Italic",e.NuptialScript="Times-Italic",e.SegoeUISymbol="Helvetica"})),Sc=ft((function(e){e["Adobe Jenson"]=!0,e["Adobe Text"]=!0,e.Albertus=!0,e.Aldus=!0,e.Alexandria=!0,e.Algerian=!0,e["American Typewriter"]=!0,e.Antiqua=!0,e.Apex=!0,e.Arno=!0,e.Aster=!0,e.Aurora=!0,e.Baskerville=!0,e.Bell=!0,e.Bembo=!0,e["Bembo Schoolbook"]=!0,e.Benguiat=!0,e["Berkeley Old Style"]=!0,e["Bernhard Modern"]=!0,e["Berthold City"]=!0,e.Bodoni=!0,e["Bauer Bodoni"]=!0,e["Book Antiqua"]=!0,e.Bookman=!0,e["Bordeaux Roman"]=!0,e["Californian FB"]=!0,e.Calisto=!0,e.Calvert=!0,e.Capitals=!0,e.Cambria=!0,e.Cartier=!0,e.Caslon=!0,e.Catull=!0,e.Centaur=!0,e["Century Old Style"]=!0,e["Century Schoolbook"]=!0,e.Chaparral=!0,e["Charis SIL"]=!0,e.Cheltenham=!0,e["Cholla Slab"]=!0,e.Clarendon=!0,e.Clearface=!0,e.Cochin=!0,e.Colonna=!0,e["Computer Modern"]=!0,e["Concrete Roman"]=!0,e.Constantia=!0,e["Cooper Black"]=!0,e.Corona=!0,e.Ecotype=!0,e.Egyptienne=!0,e.Elephant=!0,e.Excelsior=!0,e.Fairfield=!0,e["FF Scala"]=!0,e.Folkard=!0,e.Footlight=!0,e.FreeSerif=!0,e["Friz Quadrata"]=!0,e.Garamond=!0,e.Gentium=!0,e.Georgia=!0,e.Gloucester=!0,e["Goudy Old Style"]=!0,e["Goudy Schoolbook"]=!0,e["Goudy Pro Font"]=!0,e.Granjon=!0,e["Guardian Egyptian"]=!0,e.Heather=!0,e.Hercules=!0,e["High Tower Text"]=!0,e.Hiroshige=!0,e["Hoefler Text"]=!0,e["Humana Serif"]=!0,e.Imprint=!0,e["Ionic No. 5"]=!0,e.Janson=!0,e.Joanna=!0,e.Korinna=!0,e.Lexicon=!0,e.LiberationSerif=!0,e["Liberation Serif"]=!0,e["Linux Libertine"]=!0,e.Literaturnaya=!0,e.Lucida=!0,e["Lucida Bright"]=!0,e.Melior=!0,e.Memphis=!0,e.Miller=!0,e.Minion=!0,e.Modern=!0,e["Mona Lisa"]=!0,e["Mrs Eaves"]=!0,e["MS Serif"]=!0,e["Museo Slab"]=!0,e["New York"]=!0,e["Nimbus Roman"]=!0,e["NPS Rawlinson Roadway"]=!0,e.NuptialScript=!0,e.Palatino=!0,e.Perpetua=!0,e.Plantin=!0,e["Plantin Schoolbook"]=!0,e.Playbill=!0,e["Poor Richard"]=!0,e["Rawlinson Roadway"]=!0,e.Renault=!0,e.Requiem=!0,e.Rockwell=!0,e.Roman=!0,e["Rotis Serif"]=!0,e.Sabon=!0,e.Scala=!0,e.Seagull=!0,e.Sistina=!0,e.Souvenir=!0,e.STIX=!0,e["Stone Informal"]=!0,e["Stone Serif"]=!0,e.Sylfaen=!0,e.Times=!0,e.Trajan=!0,e["Trinité"]=!0,e["Trump Mediaeval"]=!0,e.Utopia=!0,e["Vale Type"]=!0,e["Bitstream Vera"]=!0,e["Vera Serif"]=!0,e.Versailles=!0,e.Wanted=!0,e.Weiss=!0,e["Wide Latin"]=!0,e.Windsor=!0,e.XITS=!0})),Fc=ft((function(e){e.Dingbats=!0,e.Symbol=!0,e.ZapfDingbats=!0,e.Wingdings=!0,e["Wingdings-Bold"]=!0,e["Wingdings-Regular"]=!0})),xc=ft((function(e){e[2]=10,e[3]=32,e[4]=33,e[5]=34,e[6]=35,e[7]=36,e[8]=37,e[9]=38,e[10]=39,e[11]=40,e[12]=41,e[13]=42,e[14]=43,e[15]=44,e[16]=45,e[17]=46,e[18]=47,e[19]=48,e[20]=49,e[21]=50,e[22]=51,e[23]=52,e[24]=53,e[25]=54,e[26]=55,e[27]=56,e[28]=57,e[29]=58,e[30]=894,e[31]=60,e[32]=61,e[33]=62,e[34]=63,e[35]=64,e[36]=65,e[37]=66,e[38]=67,e[39]=68,e[40]=69,e[41]=70,e[42]=71,e[43]=72,e[44]=73,e[45]=74,e[46]=75,e[47]=76,e[48]=77,e[49]=78,e[50]=79,e[51]=80,e[52]=81,e[53]=82,e[54]=83,e[55]=84,e[56]=85,e[57]=86,e[58]=87,e[59]=88,e[60]=89,e[61]=90,e[62]=91,e[63]=92,e[64]=93,e[65]=94,e[66]=95,e[67]=96,e[68]=97,e[69]=98,e[70]=99,e[71]=100,e[72]=101,e[73]=102,e[74]=103,e[75]=104,e[76]=105,e[77]=106,e[78]=107,e[79]=108,e[80]=109,e[81]=110,e[82]=111,e[83]=112,e[84]=113,e[85]=114,e[86]=115,e[87]=116,e[88]=117,e[89]=118,e[90]=119,e[91]=120,e[92]=121,e[93]=122,e[94]=123,e[95]=124,e[96]=125,e[97]=126,e[98]=196,e[99]=197,e[100]=199,e[101]=201,e[102]=209,e[103]=214,e[104]=220,e[105]=225,e[106]=224,e[107]=226,e[108]=228,e[109]=227,e[110]=229,e[111]=231,e[112]=233,e[113]=232,e[114]=234,e[115]=235,e[116]=237,e[117]=236,e[118]=238,e[119]=239,e[120]=241,e[121]=243,e[122]=242,e[123]=244,e[124]=246,e[125]=245,e[126]=250,e[127]=249,e[128]=251,e[129]=252,e[130]=8224,e[131]=176,e[132]=162,e[133]=163,e[134]=167,e[135]=8226,e[136]=182,e[137]=223,e[138]=174,e[139]=169,e[140]=8482,e[141]=180,e[142]=168,e[143]=8800,e[144]=198,e[145]=216,e[146]=8734,e[147]=177,e[148]=8804,e[149]=8805,e[150]=165,e[151]=181,e[152]=8706,e[153]=8721,e[154]=8719,e[156]=8747,e[157]=170,e[158]=186,e[159]=8486,e[160]=230,e[161]=248,e[162]=191,e[163]=161,e[164]=172,e[165]=8730,e[166]=402,e[167]=8776,e[168]=8710,e[169]=171,e[170]=187,e[171]=8230,e[179]=8220,e[180]=8221,e[181]=8216,e[182]=8217,e[200]=193,e[203]=205,e[207]=211,e[210]=218,e[223]=711,e[224]=321,e[225]=322,e[226]=352,e[227]=353,e[228]=381,e[229]=382,e[233]=221,e[234]=253,e[252]=263,e[253]=268,e[254]=269,e[258]=258,e[260]=260,e[261]=261,e[265]=280,e[266]=281,e[267]=282,e[268]=283,e[269]=313,e[275]=323,e[276]=324,e[278]=328,e[283]=344,e[284]=345,e[285]=346,e[286]=347,e[292]=367,e[295]=377,e[296]=378,e[298]=380,e[305]=963,e[306]=964,e[307]=966,e[308]=8215,e[309]=8252,e[310]=8319,e[311]=8359,e[312]=8592,e[313]=8593,e[337]=9552,e[493]=1039,e[494]=1040,e[672]=1488,e[673]=1489,e[674]=1490,e[675]=1491,e[676]=1492,e[677]=1493,e[678]=1494,e[679]=1495,e[680]=1496,e[681]=1497,e[682]=1498,e[683]=1499,e[684]=1500,e[685]=1501,e[686]=1502,e[687]=1503,e[688]=1504,e[689]=1505,e[690]=1506,e[691]=1507,e[692]=1508,e[693]=1509,e[694]=1510,e[695]=1511,e[696]=1512,e[697]=1513,e[698]=1514,e[705]=1524,e[706]=8362,e[710]=64288,e[711]=64298,e[759]=1617,e[761]=1776,e[763]=1778,e[775]=1652,e[777]=1764,e[778]=1780,e[779]=1781,e[780]=1782,e[782]=771,e[783]=64726,e[786]=8363,e[788]=8532,e[790]=768,e[791]=769,e[792]=768,e[795]=803,e[797]=64336,e[798]=64337,e[799]=64342,e[800]=64343,e[801]=64344,e[802]=64345,e[803]=64362,e[804]=64363,e[805]=64364,e[2424]=7821,e[2425]=7822,e[2426]=7823,e[2427]=7824,e[2428]=7825,e[2429]=7826,e[2430]=7827,e[2433]=7682,e[2678]=8045,e[2679]=8046,e[2830]=1552,e[2838]=686,e[2840]=751,e[2842]=753,e[2843]=754,e[2844]=755,e[2846]=757,e[2856]=767,e[2857]=848,e[2858]=849,e[2862]=853,e[2863]=854,e[2864]=855,e[2865]=861,e[2866]=862,e[2906]=7460,e[2908]=7462,e[2909]=7463,e[2910]=7464,e[2912]=7466,e[2913]=7467,e[2914]=7468,e[2916]=7470,e[2917]=7471,e[2918]=7472,e[2920]=7474,e[2921]=7475,e[2922]=7476,e[2924]=7478,e[2925]=7479,e[2926]=7480,e[2928]=7482,e[2929]=7483,e[2930]=7484,e[2932]=7486,e[2933]=7487,e[2934]=7488,e[2936]=7490,e[2937]=7491,e[2938]=7492,e[2940]=7494,e[2941]=7495,e[2942]=7496,e[2944]=7498,e[2946]=7500,e[2948]=7502,e[2950]=7504,e[2951]=7505,e[2952]=7506,e[2954]=7508,e[2955]=7509,e[2956]=7510,e[2958]=7512,e[2959]=7513,e[2960]=7514,e[2962]=7516,e[2963]=7517,e[2964]=7518,e[2966]=7520,e[2967]=7521,e[2968]=7522,e[2970]=7524,e[2971]=7525,e[2972]=7526,e[2974]=7528,e[2975]=7529,e[2976]=7530,e[2978]=1537,e[2979]=1538,e[2980]=1539,e[2982]=1549,e[2983]=1551,e[2984]=1552,e[2986]=1554,e[2987]=1555,e[2988]=1556,e[2990]=1623,e[2991]=1624,e[2995]=1775,e[2999]=1791,e[3002]=64290,e[3003]=64291,e[3004]=64292,e[3006]=64294,e[3007]=64295,e[3008]=64296,e[3011]=1900,e[3014]=8223,e[3015]=8244,e[3017]=7532,e[3018]=7533,e[3019]=7534,e[3075]=7590,e[3076]=7591,e[3079]=7594,e[3080]=7595,e[3083]=7598,e[3084]=7599,e[3087]=7602,e[3088]=7603,e[3091]=7606,e[3092]=7607,e[3095]=7610,e[3096]=7611,e[3099]=7614,e[3100]=7615,e[3103]=7618,e[3104]=7619,e[3107]=8337,e[3108]=8338,e[3116]=1884,e[3119]=1885,e[3120]=1885,e[3123]=1886,e[3124]=1886,e[3127]=1887,e[3128]=1887,e[3131]=1888,e[3132]=1888,e[3135]=1889,e[3136]=1889,e[3139]=1890,e[3140]=1890,e[3143]=1891,e[3144]=1891,e[3147]=1892,e[3148]=1892,e[3153]=580,e[3154]=581,e[3157]=584,e[3158]=585,e[3161]=588,e[3162]=589,e[3165]=891,e[3166]=892,e[3169]=1274,e[3170]=1275,e[3173]=1278,e[3174]=1279,e[3181]=7622,e[3182]=7623,e[3282]=11799,e[3316]=578,e[3379]=42785,e[3393]=1159,e[3416]=8377})),Rc=ft((function(e){e[227]=322,e[264]=261,e[291]=346})),Gc=ft((function(e){e[1]=32,e[4]=65,e[5]=192,e[6]=193,e[9]=196,e[17]=66,e[18]=67,e[21]=268,e[24]=68,e[28]=69,e[29]=200,e[30]=201,e[32]=282,e[38]=70,e[39]=71,e[44]=72,e[47]=73,e[48]=204,e[49]=205,e[58]=74,e[60]=75,e[62]=76,e[68]=77,e[69]=78,e[75]=79,e[76]=210,e[80]=214,e[87]=80,e[89]=81,e[90]=82,e[92]=344,e[94]=83,e[97]=352,e[100]=84,e[104]=85,e[109]=220,e[115]=86,e[116]=87,e[121]=88,e[122]=89,e[124]=221,e[127]=90,e[129]=381,e[258]=97,e[259]=224,e[260]=225,e[263]=228,e[268]=261,e[271]=98,e[272]=99,e[273]=263,e[275]=269,e[282]=100,e[286]=101,e[287]=232,e[288]=233,e[290]=283,e[295]=281,e[296]=102,e[336]=103,e[346]=104,e[349]=105,e[350]=236,e[351]=237,e[361]=106,e[364]=107,e[367]=108,e[371]=322,e[373]=109,e[374]=110,e[381]=111,e[382]=242,e[383]=243,e[386]=246,e[393]=112,e[395]=113,e[396]=114,e[398]=345,e[400]=115,e[401]=347,e[403]=353,e[410]=116,e[437]=117,e[442]=252,e[448]=118,e[449]=119,e[454]=120,e[455]=121,e[457]=253,e[460]=122,e[462]=382,e[463]=380,e[853]=44,e[855]=58,e[856]=46,e[876]=47,e[878]=45,e[882]=45,e[894]=40,e[895]=41,e[896]=91,e[897]=93,e[923]=64,e[1004]=48,e[1005]=49,e[1006]=50,e[1007]=51,e[1008]=52,e[1009]=53,e[1010]=54,e[1011]=55,e[1012]=56,e[1013]=57,e[1081]=37,e[1085]=43,e[1086]=45}));function Nc(e){var t=mc(e);return bc()[t]}function Lc(e){var t=mc(e);return!!(bc()[t]||Dc()[t]||Sc()[t]||Fc()[t])}function Uc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Mc(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:[];Uc(this,e),this._map=t}),[{key:"length",get:function(){return this._map.length}},{key:"forEach",value:function(e){for(var t in this._map)e(t,this._map[t].charCodeAt(0))}},{key:"has",value:function(e){return void 0!==this._map[e]}},{key:"get",value:function(e){return this._map[e]}},{key:"charCodeOf",value:function(e){var t=this._map;if(t.length<=65536)return t.indexOf(e);for(var r in t)if(t[r]===e)return 0|r;return-1}},{key:"amend",value:function(e){for(var t in e)this._map[t]=e[t]}}])}(),Pc=function(){return Jc((function e(t,r){Uc(this,e),this.firstChar=t,this.lastChar=r}),[{key:"length",get:function(){return this.lastChar+1-this.firstChar}},{key:"forEach",value:function(e){for(var t=this.firstChar,r=this.lastChar;t<=r;t++)e(t,t)}},{key:"has",value:function(e){return this.firstChar<=e&&e<=this.lastChar}},{key:"get",value:function(e){if(this.firstChar<=e&&e<=this.lastChar)return String.fromCharCode(e)}},{key:"charCodeOf",value:function(e){return Number.isInteger(e)&&e>=this.firstChar&&e<=this.lastChar?e:-1}},{key:"amend",value:function(e){j("Should not call amend()")}}])}();function Oc(e,t){for(var r=0;r0){o=Object.create(null);for(var c=0,g=n.length;c=0){var s=A[o];s&&(i[a]=s)}}i.length>0&&(this.properties.builtInEncoding=i)}}}])&&Oc(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();function qc(e,t,r){return t=Wc(t),function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,jc()?Reflect.construct(t,r||[],Wc(e).constructor):t.apply(e,r))}function jc(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(jc=function(){return!!e})()}function Wc(e){return Wc=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Wc(e)}function Zc(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_c(e,t)}function _c(e,t){return _c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},_c(e,t)}function Xc(e){return function(e){if(Array.isArray(e))return Vc(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Vc(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)?Vc(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Vc(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r>>0}function Ag(e,t){return e[t]<<8|e[t+1]}function ng(e,t){return(e[t]<<24|e[t+1]<<16)>>16}function ig(e,t){return e[t]<<24>>24}function ag(e,t){return ng(e,t)/16384}function og(e){var t=e.length,r=32768;return t<1240?r=107:t<33900&&(r=1131),r}function sg(e,t,r){var A,n,i,a=1===Ag(e,t+2)?rg(e,t+8):rg(e,t+16),o=Ag(e,t+a);if(4===o){Ag(e,t+a+2);var s=Ag(e,t+a+6)>>1;for(n=t+a+14,A=[],i=0;i>1;r0;)v.push({flags:a})}for(E=0;E>1,h=!0;break;case 4:c+=o.pop(),n(s,c),h=!0;break;case 5:for(;o.length>0;)s+=o.shift(),c+=o.shift(),i(s,c);break;case 6:for(;o.length>0&&(i(s+=o.shift(),c),0!==o.length);)c+=o.shift(),i(s,c);break;case 7:for(;o.length>0&&(c+=o.shift(),i(s,c),0!==o.length);)i(s+=o.shift(),c);break;case 8:for(;o.length>0;)f=s+o.shift(),B=c+o.shift(),C=f+o.shift(),Q=B+o.shift(),s=C+o.shift(),c=Q+o.shift(),a(f,B,C,Q,s,c);break;case 10:if(y=o.pop(),p=null,r.isCFFCIDFont){var v=r.fdSelect.getFDIndex(A);if(v>=0&&vMath.abs(c-D)?s+=o.shift():c+=o.shift(),a(f,B,C,Q,s,c);break;default:throw new re("unknown operator: 12 ".concat(I))}break;case 14:if(o.length>=4){var S=o.pop(),F=o.pop();c=o.pop(),s=o.pop(),t.add(5),t.add(8,[s,c]);var x=gg(r.cmap,String.fromCharCode(r.glyphNameMap[Ds[S]]));lg(r.glyphs[x.glyphId],t,r,x.glyphId),t.add(4),x=gg(r.cmap,String.fromCharCode(r.glyphNameMap[Ds[F]])),lg(r.glyphs[x.glyphId],t,r,x.glyphId)}return;case 19:case 20:l+=(g+=o.length>>1)+7>>3,h=!0;break;case 21:c+=o.pop(),n(s+=o.pop(),c),h=!0;break;case 22:n(s+=o.pop(),c),h=!0;break;case 24:for(;o.length>2;)f=s+o.shift(),B=c+o.shift(),C=f+o.shift(),Q=B+o.shift(),s=C+o.shift(),c=Q+o.shift(),a(f,B,C,Q,s,c);s+=o.shift(),c+=o.shift(),i(s,c);break;case 25:for(;o.length>6;)s+=o.shift(),c+=o.shift(),i(s,c);f=s+o.shift(),B=c+o.shift(),C=f+o.shift(),Q=B+o.shift(),s=C+o.shift(),c=Q+o.shift(),a(f,B,C,Q,s,c);break;case 26:for(o.length%2&&(s+=o.shift());o.length>0;)f=s,B=c+o.shift(),C=f+o.shift(),Q=B+o.shift(),s=C,c=Q+o.shift(),a(f,B,C,Q,s,c);break;case 27:for(o.length%2&&(c+=o.shift());o.length>0;)a(f=s+o.shift(),B=c,C=f+o.shift(),Q=B+o.shift(),s=C+o.shift(),c=Q);break;case 28:o.push((u[l]<<24|u[l+1]<<16)>>16),l+=2;break;case 29:y=o.pop()+r.gsubrsBias,(p=r.gsubrs[y])&&e(p);break;case 30:for(;o.length>0&&(f=s,B=c+o.shift(),C=f+o.shift(),Q=B+o.shift(),s=C+o.shift(),c=Q+(1===o.length?o.shift():0),a(f,B,C,Q,s,c),0!==o.length);)f=s+o.shift(),B=c,C=f+o.shift(),Q=B+o.shift(),c=Q+o.shift(),a(f,B,C,Q,s=C+(1===o.length?o.shift():0),c);break;case 31:for(;o.length>0&&(f=s+o.shift(),B=c,C=f+o.shift(),Q=B+o.shift(),c=Q+o.shift(),a(f,B,C,Q,s=C+(1===o.length?o.shift():0),c),0!==o.length);)f=s,B=c+o.shift(),C=f+o.shift(),Q=B+o.shift(),s=C+o.shift(),c=Q+(1===o.length?o.shift():0),a(f,B,C,Q,s,c);break;default:if(I<32)throw new re("unknown operator: ".concat(I));I<247?o.push(I-139):I<251?o.push(256*(I-247)+u[l++]+108):I<255?o.push(256*-(I-251)-u[l++]-108):(o.push((u[l]<<24|u[l+1]<<16|u[l+2]<<8|u[l+3])/65536),l+=4)}h&&(o.length=0)}}(e)}var hg=[],Ig=function(){return eg((function e(){var t,r,A;zc(this,e),t=this,A=[],(r=tg(r="cmds"))in t?Object.defineProperty(t,r,{value:A,enumerable:!0,configurable:!0,writable:!0}):t[r]=A}),[{key:"add",value:function(e,t){if(t)if(St(t,null)){var r;(r=this.cmds).push.apply(r,[e].concat(Xc(t)))}else{var A;q('Commands.add - "'.concat(e,'" has at least one non-number arg: "').concat(t,'".'));var n=t.map((function(e){return"number"==typeof e?e:0}));(A=this.cmds).push.apply(A,[e].concat(Xc(n)))}else this.cmds.push(e)}}])}(),fg=function(){return eg((function e(t){zc(this,e),this.fontMatrix=t,this.compiledGlyphs=Object.create(null),this.compiledCharCodeToGlyphId=Object.create(null)}),[{key:"getPathJs",value:function(e){var t,r,A,n=gg(this.cmap,e),i=n.charCode,a=n.glyphId,o=this.compiledGlyphs[a];if(!o){try{o=this.compileGlyph(this.glyphs[a],a)}catch(e){o=hg,A=e}this.compiledGlyphs[a]=o}if(null!==(r=(t=this.compiledCharCodeToGlyphId)[i])&&void 0!==r||(t[i]=a),A)throw A;return o}},{key:"compileGlyph",value:function(e,t){if(!e||0===e.length||14===e[0])return hg;var r=this.fontMatrix;if(this.isCFFCIDFont){var A=this.fdSelect.getFDIndex(t);A>=0&&A=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function vg(e,t){if(e){if("string"==typeof e)return mg(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)?mg(e,t):void 0}}function mg(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r131070,A=r?4:2,n=new DataView(new ArrayBuffer((this.glyphs.length+1)*A));r?n.setUint32(0,0):n.setUint16(0,0);var i,a=0,o=0,s=pg(this.glyphs);try{for(s.s();!(i=s.n()).done;)a=(a+=i.value.write(a,t))+3&-4,o+=A,r?n.setUint32(o,a):n.setUint16(o,a>>1)}catch(e){s.e(e)}finally{s.f()}return{isLocationLong:r,loca:new Uint8Array(n.buffer),glyf:new Uint8Array(t.buffer)}}},{key:"scale",value:function(e){for(var t=0,r=this.glyphs.length;t255?t+=2:g>0&&(t+=1),r=s,(g=Math.abs(c-A))>255?t+=2:g>0&&(t+=1),A=c}}}catch(e){n.e(e)}finally{n.f()}return t}},{key:"write",value:function(e,t){var r,A=e,n=[],i=[],a=[],o=0,s=0,c=pg(this.contours);try{for(c.s();!(r=c.n()).done;){for(var g=r.value,u=0,l=g.xCoordinates.length;u=0?18:2,n.push(C)):n.push(f)}o=I;var B=g.yCoordinates[u];if(0==(f=B-s))h|=32,i.push(0);else{var Q=Math.abs(f);Q<=255?(h|=f>=0?36:4,i.push(Q)):i.push(f)}s=B,a.push(h)}t.setUint16(e,n.length-1),e+=2}}catch(e){c.e(e)}finally{c.f()}t.setUint16(e,this.instructions.length),e+=2,this.instructions.length&&(new Uint8Array(t.buffer,0,t.buffer.byteLength).set(this.instructions,e),e+=this.instructions.length);for(var E=0,d=a;E=-128&&this.argument1<=127&&this.argument2>=-128&&this.argument2<=127||(e+=2):this.argument1>=0&&this.argument1<=255&&this.argument2>=0&&this.argument2<=255||(e+=2),e}},{key:"write",value:function(e,t){var r=e;return 2&this.flags?this.argument1>=-128&&this.argument1<=127&&this.argument2>=-128&&this.argument2<=127||(this.flags|=1):this.argument1>=0&&this.argument1<=255&&this.argument2>=0&&this.argument2<=255||(this.flags|=1),t.setUint16(e,this.flags),t.setUint16(e+2,this.glyphIndex),e+=4,1&this.flags?(2&this.flags?(t.setInt16(e,this.argument1),t.setInt16(e+2,this.argument2)):(t.setUint16(e,this.argument1),t.setUint16(e+2,this.argument2)),e+=4):(t.setUint8(e,this.argument1),t.setUint8(e+1,this.argument2),e+=2),256&this.flags&&(t.setUint16(e,this.instructions.length),e+=2,this.instructions.length&&(new Uint8Array(t.buffer,0,t.buffer.byteLength).set(this.instructions,e),e+=this.instructions.length)),e-r}},{key:"scale",value:function(e,t){}}],[{key:"parse",value:function(t,r){var A,n,i=t,a=[],o=r.getUint16(t),s=r.getUint16(t+2);t+=4,1&o?(2&o?(A=r.getInt16(t),n=r.getInt16(t+2)):(A=r.getUint16(t),n=r.getUint16(t+2)),t+=4,o^=1):(2&o?(A=r.getInt8(t),n=r.getInt8(t+1)):(A=r.getUint8(t),n=r.getUint8(t+1)),t+=2),8&o?(a.push(r.getUint16(t)),t+=2):64&o?(a.push(r.getUint16(t),r.getUint16(t+2)),t+=4):128&o&&(a.push(r.getUint16(t),r.getUint16(t+2),r.getUint16(t+4),r.getUint16(t+6)),t+=8);var c=null;if(256&o){var g=r.getUint16(t);t+=2,c=new Uint8Array(r).slice(t,t+g),t+=g}return[t-i,new e({flags:o,glyphIndex:s,argument1:A,argument2:n,transf:a,instructions:c})]}}])}();function Lg(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,A=Array(t);r>8&255,e[t+1]=255&r}function Hg(e,t,r){e[t]=r>>24&255,e[t+1]=r>>16&255,e[t+2]=r>>8&255,e[t+3]=255&r}function Yg(e,t,r){if(r instanceof Uint8Array)e.set(r,t);else if("string"==typeof r)for(var A=0,n=r.length;A=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}(r);try{for(a.s();!(i=a.n()).done;){var o=i.value;e[t++]=255&o}}catch(e){a.e(e)}finally{a.f()}}}var Pg=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.sfnt=t,this.tables=Object.create(null)}return t=e,A=[{key:"getSearchParams",value:function(e,t){for(var r=1,A=0;(r^e)>r;)r<<=1,A++;var n=r*t;return{range:n,entry:A,rangeShift:t*e-n}}}],(r=[{key:"toArray",value:function(){var t=this.sfnt,r=this.tables,A=Object.keys(r);A.sort();var n,i,a,o,s,c=A.length,g=12+16*c,u=[g];for(n=0;n>>0,u.push(g);var l=new Uint8Array(g);for(n=0;n>>0;Hg(l,g+4,I),Hg(l,g+8,u[n]),Hg(l,g+12,r[s].length),g+=16}return l}},{key:"addTable",value:function(e,t){if(e in this.tables)throw new Error("Table "+e+" already exists");this.tables[e]=t}}])&&Lg(t.prototype,r),A&&Lg(t,A),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,A}();function Og(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);rn)return!0;for(var i=n-e,a=i;a>8&255,255&o):(o=65536*o|0,this.output.push(255,o>>24&255,o>>16&255,o>>8&255,255&o))}return(A=this.output).push.apply(A,function(e){return function(e){if(Array.isArray(e))return Og(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Og(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)?Og(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(t)),r?this.stack.splice(i,e):this.stack.length=0,!1}}])}();function iu(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function au(e,t,r){if(r>=e.length)return new Uint8Array(0);var A,n,i=0|t;for(A=0;A>8,i=52845*(s+i)+22719&65535}return o}function ou(e){return 47===e||91===e||93===e||123===e||125===e||40===e||41===e}var su=function(){return qg((function e(t,r,A){if(Kg(this,e),r){var n=t.getBytes(),i=!((iu(n[0])||Dt(n[0]))&&iu(n[1])&&iu(n[2])&&iu(n[3])&&iu(n[4])&&iu(n[5])&&iu(n[6])&&iu(n[7]));t=new ar(i?au(n,55665,4):function(e,t,r){var A,n,i=55665,a=e.length,o=new Uint8Array(a>>>1);for(A=0,n=0;A>8,i=52845*(g+i)+22719&65535}}}return o.slice(4,n)}(n))}this.seacAnalysisEnabled=!!A,this.stream=t,this.nextChar()}),[{key:"readNumberArray",value:function(){this.getToken();for(var e=[];;){var t=this.getToken();if(null===t||"]"===t||"}"===t)break;e.push(parseFloat(t||0))}return e}},{key:"readNumber",value:function(){var e=this.getToken();return parseFloat(e||0)}},{key:"readInt",value:function(){var e=this.getToken();return 0|parseInt(e||0,10)}},{key:"readBoolean",value:function(){return"true"===this.getToken()?1:0}},{key:"nextChar",value:function(){return this.currentChar=this.stream.getByte()}},{key:"prevChar",value:function(){return this.stream.skip(-2),this.currentChar=this.stream.getByte()}},{key:"getToken",value:function(){for(var e=!1,t=this.currentChar;;){if(-1===t)return null;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(!Dt(t))break;t=this.nextChar()}if(ou(t))return this.nextChar(),String.fromCharCode(t);var r="";do{r+=String.fromCharCode(t),t=this.nextChar()}while(t>=0&&!Dt(t)&&!ou(t));return r}},{key:"readCharStrings",value:function(e,t){return-1===t?e:au(e,4330,t)}},{key:"extractFontProgram",value:function(e){var t=this.stream,r=[],A=[],n=Object.create(null);n.lenIV=4;for(var i,a,o,s,c={subrs:[],charstrings:[],properties:{privateData:n}};null!==(i=this.getToken());)if("/"===i)switch(i=this.getToken()){case"CharStrings":for(this.getToken(),this.getToken(),this.getToken(),this.getToken();null!==(i=this.getToken())&&"end"!==i;)if("/"===i){var g=this.getToken();a=this.readInt(),this.getToken(),o=a>0?t.getBytes(a):new Uint8Array(0),s=c.properties.privateData.lenIV;var u=this.readCharStrings(o,s);this.nextChar(),"noaccess"===(i=this.getToken())?this.getToken():"/"===i&&this.prevChar(),A.push({glyph:g,encoded:u})}break;case"Subrs":for(this.readInt(),this.getToken();"dup"===this.getToken();){var l=this.readInt();a=this.readInt(),this.getToken(),o=a>0?t.getBytes(a):new Uint8Array(0),s=c.properties.privateData.lenIV;var h=this.readCharStrings(o,s);this.nextChar(),"noaccess"===(i=this.getToken())&&this.getToken(),r[l]=h}break;case"BlueValues":case"OtherBlues":case"FamilyBlues":case"FamilyOtherBlues":var I=this.readNumberArray();I.length>0&&I.length;break;case"StemSnapH":case"StemSnapV":c.properties.privateData[i]=this.readNumberArray();break;case"StdHW":case"StdVW":c.properties.privateData[i]=this.readNumberArray()[0];break;case"BlueShift":case"lenIV":case"BlueFuzz":case"BlueScale":case"LanguageGroup":c.properties.privateData[i]=this.readNumber();break;case"ExpansionFactor":c.properties.privateData[i]=this.readNumber()||.06;break;case"ForceBold":c.properties.privateData[i]=this.readBoolean()}for(var f=0,C=A;f-1&&void 0===e.widths[m]&&m>=e.firstChar&&m<=e.lastChar&&(e.widths[m]=d.width)}}return c}},{key:"extractFontHeader",value:function(e){for(var t;null!==(t=this.getToken());)if("/"===t)switch(t=this.getToken()){case"FontMatrix":var r=this.readNumberArray();e.fontMatrix=r;break;case"Encoding":var A=this.getToken(),n=void 0;if(/^\\d+$/.test(A)){n=[];var i=0|parseInt(A,10);this.getToken();for(var a=0;a=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function gu(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r=n){for(a+=s;a=0&&(i[c]=a);return vc(e,i,o)}},{key:"hasGlyphId",value:function(e){return!(e<0||e>=this.numGlyphs)&&(0===e||this.charstrings[e-1].charstring.length>0)}},{key:"getSeacs",value:function(e){for(var t=[],r=0,A=e.length;r0;Q--)B[Q]-=B[Q-1];I.setByName(C,B)}}i.topDict.privateDict=I;var E=new ec;for(s=0,c=A.length;s=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function pu(e,t){if(e){if("string"==typeof e)return vu(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)?vu(e,t):void 0}}function vu(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r0&&e.toUnicode.amend(t)}}var Fu=function(){return Eu((function e(t,r,A,n,i,a,o,s,c){Bu(this,e),this.originalCharCode=t,this.fontChar=r,this.unicode=A,this.accent=n,this.width=i,this.vmetric=a,this.operatorListId=o,this.isSpace=s,this.isInFont=c}),[{key:"category",get:function(){return _(this,"category",function(e){var t=Ec.get(e);if(t)return t;var r=e.match(Qc),A={isWhitespace:!(null==r||!r[1]),isZeroWidthDiacritic:!(null==r||!r[2]),isInvisibleFormatMark:!(null==r||!r[3])};return Ec.set(e,A),A}(this.unicode),!0)}}])}();function xu(e,t){return(e<<8)+t}function Ru(e,t,r){e[t+1]=r,e[t]=r>>>8}function Gu(e,t){var r=(e<<8)+t;return 32768&r?r-65536:r}function Nu(e){return String.fromCharCode(e>>8&255,255&e)}function Lu(e){return e>32767?e=32767:e<-32768&&(e=-32768),String.fromCharCode(e>>8&255,255&e)}function Uu(e){return"ttcf"===ne(e.peekBytes(4))}function Mu(e,t){for(var r in t)e[+r]=t[r]}function Ju(e,t,r){for(var A,n=[],i=0,a=e.length;i2&&void 0!==arguments[2]&&arguments[2];switch(t.length){case 1:return t.charCodeAt(0);case 2:return t.charCodeAt(0)<<8|t.charCodeAt(1)}var A="Unsupported CID string (charCode ".concat(e,'): "').concat(t,'".');if(r)throw new re(A);return q(A),t}function Ou(e,t,r,A){var n,i=Object.create(null),a=new Map,o=[],s=new Set,c=0,g=mu[c][0],u=mu[c][1];for(var l in e){var h=e[l];if(t(h)){if(g>u){if(++c>=mu.length){q("Ran out of space in font private use area.");break}g=mu[c][0],u=mu[c][1]}var I=g++;0===h&&(h=r);var f=A.get(l);"string"==typeof f&&(f=f.codePointAt(0)),!f||(n=f,mu[0][0]<=n&&n<=mu[0][1]||mu[1][0]<=n&&n<=mu[1][1])||s.has(h)||(a.set(f,h),s.add(h)),i[I]=h,o[l]=I}}return{toFontChar:o,charCodeToGlyphId:i,toUnicodeExtraMap:a,nextAvailableFontCharCode:g}}function Ku(e,t,r){var A,n,i,a,o=function(e,t,r){var A=[];for(var n in e)e[n]>=r||A.push({fontCharCode:0|n,glyphId:e[n]});if(t){var i,a=yu(t);try{for(a.s();!(i=a.n()).done;){var o=Cu(i.value,2),s=o[0],c=o[1];c>=r||A.push({fontCharCode:s,glyphId:c})}}catch(e){a.e(e)}finally{a.f()}}0===A.length&&A.push({fontCharCode:0,glyphId:0}),A.sort((function(e,t){return e.fontCharCode-t.fontCharCode}));for(var g=[],u=A.length,l=0;l65535?2:1,c="\\0\\0"+Nu(s)+"\\0\\0"+ae(4+8*s);for(A=o.length-1;A>=0&&!(o[A][0]<=65535);--A);var g=A+1;o[A][0]<65535&&65535===o[A][1]&&(o[A][1]=65534);var u,l,h,I,f=o[A][1]<65535?1:0,C=g+f,B=Pg.getSearchParams(C,2),Q="",E="",d="",y="",p="",v=0;for(A=0,n=g;A0&&(E+="ÿÿ",Q+="ÿÿ",d+="\\0",y+="\\0\\0");var b="\\0\\0"+Nu(2*C)+Nu(B.range)+Nu(B.entry)+Nu(B.rangeShift)+E+"\\0\\0"+Q+d+y+p,k="",D="";if(s>1){for(c+="\\0\\0\\n"+ae(4+8*s+4+b.length),k="",A=0,n=o.length;A(g|=0)||!o)&&(o=g),s 123 are reserved for internal usage");a|=1<65535&&(s=65535)}else o=0,s=255;var u=e.bbox||[0,0,0,0],l=r.unitsPerEm||(e.fontMatrix?1/Math.max.apply(Math,fu(e.fontMatrix.slice(0,4).map(Math.abs))):1e3),h=e.ascentScaled?1:l/wu,I=r.ascent||Math.round(h*(e.ascent||u[3])),f=r.descent||Math.round(h*(e.descent||u[1]));f>0&&e.descent>0&&u[1]<0&&(f=-f);var C=r.yMax||I,B=-r.yMin||-f;return"\\0$ô\\0\\0\\0Š»\\0\\0\\0ŒŠ»\\0\\0ß\\x001\\0\\0\\0\\0"+String.fromCharCode(e.fixedPitch?9:0)+"\\0\\0\\0\\0\\0\\0"+ae(A)+ae(n)+ae(i)+ae(a)+"*21*"+Nu(e.italicAngle?1:0)+Nu(o||e.firstChar)+Nu(s||e.lastChar)+Nu(I)+Nu(f)+"\\0d"+Nu(C)+Nu(B)+"\\0\\0\\0\\0\\0\\0\\0\\0"+Nu(e.xHeight)+Nu(e.capHeight)+Nu(0)+Nu(o||e.firstChar)+"\\0"}function qu(e){return"\\0\\0\\0"+ae(Math.floor(e.italicAngle*Math.pow(2,16)))+"\\0\\0\\0\\0"+ae(e.fixedPitch?1:0)+"\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0"}function ju(e){return e.replaceAll(/[^\\x21-\\x7E]|[[\\](){}<>/%]/g,"").slice(0,63)}function Wu(e,t){t||(t=[[],[]]);var r,A,n,i,a,o=[t[0][0]||"Original licence",t[0][1]||e,t[0][2]||"Unknown",t[0][3]||"uniqueID",t[0][4]||e,t[0][5]||"Version 0.11",t[0][6]||ju(e),t[0][7]||"Unknown",t[0][8]||"Unknown",t[0][9]||"Unknown"],s=[];for(r=0,A=o.length;r=1&&t[3]>=1&&t[3]<=4}(e)?a?(r="CIDFontType0",A="CIDFontType0C"):(r="MMType1"===n?"MMType1":"Type1",A="Type1C"):(q("getFontFileType: Unable to detect correct font file Type/Subtype."),r=n,A=i),[r,A]}(r,A),2);g=I[0],u=I[1],g===this.type&&u===this.subtype||T("Inconsistent font file Type/SubType, expected: "+"".concat(this.type,"/").concat(this.subtype," but found: ").concat(g,"/").concat(u,"."));try{switch(g){case"MMType1":T("MMType1 font ("+t+"), falling back to Type1.");case"Type1":case"CIDFontType0":this.mimetype="font/opentype";var f="Type1C"===u||"CIDFontType0C"===u?new Tc(r,A):new Iu(t,r,A);Du(A),h=this.convert(t,f,A);break;case"OpenType":case"TrueType":case"CIDFontType2":this.mimetype="font/opentype",h=this.checkAndRepair(t,r,A),this.isOpenType&&(Du(A),g="OpenType");break;default:throw new re("Font ".concat(g," is not supported"))}}catch(e){return q(e),void this.fallbackToSystemFont(A)}Su(A),this.data=h,this.type=g,this.subtype=u,this.fontMatrix=A.fontMatrix,this.widths=A.widths,this.defaultWidth=A.defaultWidth,this.toUnicode=A.toUnicode,this.seacMap=A.seacMap}else for(var C=0;C<256;C++)this.toFontChar[C]=this.differences[C]||A.defaultEncoding[C]}),[{key:"renderer",get:function(){return _(this,"renderer",Qg.create(this,dc))}},{key:"exportData",value:function(){var e,t,r,A=arguments.length>0&&void 0!==arguments[0]&&arguments[0]?[].concat(bu,ku):bu,n=Object.create(null),i=yu(A);try{for(i.s();!(r=i.n()).done;)void 0!==(t=this[e=r.value])&&(n[e]=t)}catch(e){i.e(e)}finally{i.f()}return n}},{key:"fallbackToSystemFont",value:function(e){var t=this;this.missingFile=!0;var r=this.name,A=this.type,n=mc(r),i=bc(),a=Dc(),o=!!i[n],s=!(!a[n]||!i[a[n]]);n=i[n]||a[n]||n;var c=dg()[n];c&&(isNaN(this.ascent)&&(this.ascent=c.ascent/wu),isNaN(this.descent)&&(this.descent=c.descent/wu),isNaN(this.capHeight)&&(this.capHeight=c.capHeight/wu)),this.bold=/bold/gi.test(n),this.italic=/oblique|italic/gi.test(n),this.black=/Black/g.test(r);var g=/Narrow/g.test(r);if(this.remeasure=(!o||g)&&Object.keys(this.widths).length>0,(o||s)&&"CIDFontType2"===A&&this.cidEncoding.startsWith("Identity-")){var u=e.cidToGidMap,l=[];if(Mu(l,xc()),/Arial-?Black/i.test(r)?Mu(l,Rc()):/Calibri/i.test(r)&&Mu(l,Gc()),u){for(var h in l){var I=l[h];void 0!==u[I]&&(l[+h]=u[I])}u.length!==this.toUnicode.length&&e.hasIncludedToUnicodeMap&&this.toUnicode instanceof Pc&&this.toUnicode.forEach((function(e,t){var r=l[e];void 0===u[r]&&(l[+e]=t)}))}this.toUnicode instanceof Pc||this.toUnicode.forEach((function(e,t){l[+e]=t})),this.toFontChar=l,this.toUnicode=new Yc(l)}else if(/Symbol/i.test(n))this.toFontChar=Ju(Fs,lc(),this.differences);else if(/Dingbats/i.test(n))this.toFontChar=Ju(xs,hc(),this.differences);else if(o||s){var f=Ju(this.defaultEncoding,lc(),this.differences);"CIDFontType2"!==A||this.cidEncoding.startsWith("Identity-")||this.toUnicode instanceof Pc||this.toUnicode.forEach((function(e,t){f[+e]=t})),this.toFontChar=f}else{var C=lc(),B=[];this.toUnicode.forEach((function(e,r){if(!t.composite){var A=fc(t.differences[e]||t.defaultEncoding[e],C);-1!==A&&(r=A)}B[+e]=r})),this.composite&&this.toUnicode instanceof Pc&&/Tahoma|Verdana/i.test(r)&&Mu(B,xc()),this.toFontChar=B}Su(e),this.loadedName=n.split("-",1)[0]}},{key:"checkAndRepair",value:function(e,t,r){var A,n,i=["OS/2","cmap","head","hhea","hmtx","maxp","name","post","loca","glyf","fpgm","prep","cvt ","CFF "];function a(e,t){var r=Object.create(null);r["OS/2"]=null,r.cmap=null,r.head=null,r.hhea=null,r.hmtx=null,r.maxp=null,r.name=null,r.post=null;for(var A=0;A>>0,A=e.getInt32()>>>0,n=e.getInt32()>>>0,i=e.pos;e.pos=e.start||0,e.skip(A);var a=e.getBytes(n);return e.pos=i,"head"===t&&(a[8]=a[9]=a[10]=a[11]=0,a[17]|=32),{tag:t,checksum:r,length:n,offset:A,data:a}}function s(e){return{version:e.getString(4),numTables:e.getUint16(),searchRange:e.getUint16(),entrySelector:e.getUint16(),rangeShift:e.getUint16()}}function c(e,t,r,A,n,i){var a={length:0,sizeOfInstructions:0};if(t<0||t>=e.length||r>e.length||r-t<=12)return a;var o=e.subarray(t,r),s=Gu(o[2],o[3]),c=Gu(o[4],o[5]),g=Gu(o[6],o[7]),u=Gu(o[8],o[9]);s>g&&(Ru(o,2,g),Ru(o,6,s)),c>u&&(Ru(o,4,u),Ru(o,8,c));var l=Gu(o[0],o[1]);if(l<0)return l<-1||(A.set(o,n),a.length=o.length),a;var h,I=10,f=0;for(h=0;ho.length?a:!i&&B>0?(A.set(o.subarray(0,C),n),A.set([0,0],n+C),A.set(o.subarray(Q,w),n+C+2),w-=B,o.length-w>3&&(w=w+3&-4),a.length=w,a):o.length-w>3?(w=w+3&-4,A.set(o.subarray(0,w),n),a.length=w,a):(A.set(o,n),a.length=o.length,a)}function g(e){var r=(t.start||0)+e.offset;t.pos=r;var A=[[],[]],n=[],i=e.length,a=r+i;if(0!==t.getUint16()||i<6)return[A,n];var o,s,c=t.getUint16(),g=t.getUint16();for(o=0;oa)){t.pos=h;var I=l.name;if(l.encoding){for(var f="",C=0,B=l.length;C0&&(s+=y-1)}}else(C||Q)&&(q("TT: nested FDEFs not allowed"),I=!0),C=!0,g=s,i=u.pop(),t.functionsDefined[i]={data:o,i:s};else if(!C&&!Q)if(i=u.at(-1),isNaN(i))T("TT: CALL empty stack (or invalid entry).");else if(t.functionsUsed[i]=!0,i in t.functionsStackDeltas){var p=u.length+t.functionsStackDeltas[i];if(p<0)return q("TT: CALL invalid functions stack delta."),void(t.hintsValid=!1);u.length=p}else if(i in t.functionsDefined&&!h.includes(i)){if(l.push({data:o,i:s,stackTop:u.length-1}),h.push(i),!(a=t.functionsDefined[i]))return q("TT: CALL non-existent function"),void(t.hintsValid=!1);o=a.data,s=a.i}if(!C&&!Q){var v=0;for(d<=142?v=f[d]:d>=192&&d<=223?v=-1:d>=224&&(v=-2),d>=113&&d<=117&&(A=u.pop(),isNaN(A)||(v=2*-A));v<0&&u.length>0;)u.pop(),v++;for(;v>0;)u.push(NaN),v--}}t.tooComplexToFollowFunctions=I;var m=[o];s>o.length&&m.push(new Uint8Array(s-o.length)),g>c&&(q("TT: complementing a missing function tail"),m.push(new Uint8Array([34,45]))),function(e,t){if(t.length>1){var r,A,n=0;for(r=0,A=t.length;r>>0,i=[],a=0;a>>0);var o={ttcTag:t,majorVersion:r,minorVersion:A,numFonts:n,offsetTable:i};switch(r){case 1:return o;case 2:return o.dsigTag=e.getInt32()>>>0,o.dsigLength=e.getInt32()>>>0,o.dsigOffset=e.getInt32()>>>0,o}throw new re("Invalid TrueType Collection majorVersion: ".concat(r,"."))}(e),n=A.numFonts,i=A.offsetTable,o=t.split("+"),c=0;c0||!(r.cMap instanceof ns));if("OTTO"===u.version&&!d||!l.head||!l.hhea||!l.maxp||!l.post)return I=new ar(l["CFF "].data),h=new Tc(I,r),Du(r),this.convert(e,h,r);delete l.glyf,delete l.loca,delete l.fpgm,delete l.prep,delete l["cvt "],this.isOpenType=!0}if(!l.maxp)throw new re('Required "maxp" table is not found');t.pos=(t.start||0)+l.maxp.offset;var y,p,v=t.getInt32(),m=t.getUint16();if(65536!==v&&20480!==v){if(6===l.maxp.length)v=20480;else{if(!(l.maxp.length>=32))throw new re('"maxp" table has a wrong version number');v=65536}p=v,(y=l.maxp.data)[3+0]=255&p,y[2]=p>>>8,y[1]=p>>>16,y[0]=p>>>24}if((null===(A=r.scaleFactors)||void 0===A?void 0:A.length)===m&&Q){var w=r.scaleFactors,b=xu(l.head.data[50],l.head.data[51]),k=new Sg({glyfTable:l.glyf.data,isGlyphLocationsLong:b,locaTable:l.loca.data,numGlyphs:m});k.scale(w);var D=k.write(),S=D.glyf,F=D.loca,x=D.isLocationLong;l.glyf.data=S,l.loca.data=F,x!==!!b&&(l.head.data[50]=0,l.head.data[51]=x?1:0);for(var R=l.hmtx.data,G=0;G>8&255,R[N+1]=255&L,Ru(R,N+2,Math.round(w[G]*Gu(R[N+2],R[N+3])))}}var U=m+1,M=!0;U>65535&&(M=!1,U=m,q("Not enough space in glyfs to duplicate first glyph."));var J=0,H=0;v>=65536&&l.maxp.length>=32&&(t.pos+=8,t.getUint16()>2&&(l.maxp.data[14]=0,l.maxp.data[15]=2),t.pos+=4,J=t.getUint16(),t.pos+=4,H=t.getUint16()),l.maxp.data[4]=U>>8,l.maxp.data[5]=255&U;var Y=function(e,t,r,A){var n={functionsDefined:[],functionsUsed:[],functionsStackDeltas:[],tooComplexToFollowFunctions:!1,hintsValid:!0};if(e&&C(e,n),t&&C(t,n),e&&function(e,t){if(!e.tooComplexToFollowFunctions){if(e.functionsDefined.length>t)return q("TT: more functions defined than expected"),void(e.hintsValid=!1);for(var r=0,A=e.functionsUsed.length;rt)return q("TT: invalid function id: "+r),void(e.hintsValid=!1);if(e.functionsUsed[r]&&!e.functionsDefined[r])return q("TT: undefined function: "+r),void(e.hintsValid=!1)}}}(n,A),r&&1&r.length){var i=new Uint8Array(r.length+1);i.set(r.data),r.data=i}return n.hintsValid}(l.fpgm,l.prep,l["cvt "],J);if(Y||(delete l.fpgm,delete l.prep,delete l["cvt "]),function(e,t,r,A,n,i){if(t){e.pos=(e.start||0)+t.offset,e.pos+=4,e.pos+=2,e.pos+=2,e.pos+=2,e.pos+=2,e.pos+=2,e.pos+=2,e.pos+=2,e.pos+=2,e.pos+=2;var a=e.getUint16();e.pos+=8,e.pos+=2;var o=e.getUint16();0!==a&&(2&xu(A.data[44],A.data[45])||(t.data[22]=0,t.data[23]=0)),o>n&&(T("The numOfMetrics (".concat(o,") should not be ")+"greater than the numGlyphs (".concat(n,").")),o=n,t.data[34]=(65280&o)>>8,t.data[35]=255&o);var s=n-o-(r.length-4*o>>1);if(s>0){var c=new Uint8Array(r.length+2*s);c.set(r.data),i&&(c[r.length]=r.data[2],c[r.length+1]=r.data[3]),r.data=c}}else r&&(r.data=null)}(t,l.hhea,l.hmtx,l.head,U,M),!l.head)throw new re('Required "head" table is not found');!function(e,t,r){var A=e.data,n=(A[0]<<24)+(A[1]<<16)+(A[2]<<8)+A[3];n>>16!=1&&(T("Attempting to fix invalid version in head table: "+n),A[0]=0,A[1]=1,A[2]=0,A[3]=0);var i=xu(A[50],A[51]);if(i<0||i>1){T("Attempting to fix invalid indexToLocFormat in head table: "+i);var a=t+1;if(r===a<<1)A[50]=0,A[51]=0;else{if(r!==a<<2)throw new re("Could not fix indexToLocFormat: "+i);A[50]=0,A[51]=1}}}(l.head,m,Q?l.loca.length:0);var P=Object.create(null);if(Q){var O=xu(l.head.data[50],l.head.data[51]),K=function(e,t,r,A,n,i,a){var o,s,g;A?(o=4,s=function(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]},g=function(e,t,r){e[t]=r>>>24&255,e[t+1]=r>>16&255,e[t+2]=r>>8&255,e[t+3]=255&r}):(o=2,s=function(e,t){return e[t]<<9|e[t+1]<<1},g=function(e,t,r){e[t]=r>>9&255,e[t+1]=r>>1&255});var u=i?r+1:r,l=o*(1+u),h=new Uint8Array(l);h.set(e.data.subarray(0,l)),e.data=h;var I,f,C=t.data,B=C.length,Q=new Uint8Array(B),E=[];for(I=0,f=0;IB&&(d=B),E.push({index:I,offset:d,endOffset:0})}for(E.sort((function(e,t){return e.offset-t.offset})),I=0;Ia&&(a=D.sizeOfInstructions),g(h,f,k+=S)}if(0===k){var F=new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,49,0]);for(I=0,f=o;Ix+k?t.data=Q.subarray(0,x+k):(t.data=new Uint8Array(x+k),t.data.set(Q.subarray(0,k))),t.data.set(Q.subarray(0,x),k),g(e.data,h.length-o,k+x)}else t.data=Q.subarray(0,k);return{missingGlyphs:b,maxSizeOfInstructions:a}}(l.loca,l.glyf,m,O,Y,M,H);P=K.missingGlyphs,v>=65536&&l.maxp.length>=32&&(l.maxp.data[26]=K.maxSizeOfInstructions>>8,l.maxp.data[27]=255&K.maxSizeOfInstructions)}if(!l.hhea)throw new re('Required "hhea" table is not found');0===l.hhea.data[10]&&0===l.hhea.data[11]&&(l.hhea.data[10]=255,l.hhea.data[11]=255);var j={unitsPerEm:xu(l.head.data[18],l.head.data[19]),yMax:Gu(l.head.data[42],l.head.data[43]),yMin:Gu(l.head.data[38],l.head.data[39]),ascent:Gu(l.hhea.data[4],l.hhea.data[5]),descent:Gu(l.hhea.data[6],l.hhea.data[7]),lineGap:Gu(l.hhea.data[8],l.hhea.data[9])};this.ascent=j.ascent/j.unitsPerEm,this.descent=j.descent/j.unitsPerEm,this.lineGap=j.lineGap/j.unitsPerEm,null!==(n=this.cssFontInfo)&&void 0!==n&&n.lineHeight?(this.lineHeight=this.cssFontInfo.metrics.lineHeight,this.lineGap=this.cssFontInfo.metrics.lineGap):this.lineHeight=this.ascent-this.descent+this.lineGap,l.post&&function(e,r,A){var n=(t.start||0)+e.offset;t.pos=n;var i,a=n+e.length,o=t.getInt32();t.skip(28);var s,c=!0;switch(o){case 65536:i=yc;break;case 131072:var g=t.getUint16();if(g!==A){c=!1;break}var u=[];for(s=0;s=32768){c=!1;break}u.push(l)}if(!c)break;for(var h=[],I=[];t.pos65535)throw new re("Max size of CID is 65,535");var r=-1;V?r=t:void 0!==X[t]&&(r=X[t]),r>=0&&r>>0,f=!1;if((null===(g=a)||void 0===g?void 0:g.platformId)!==l||(null===(u=a)||void 0===u?void 0:u.encodingId)!==h){if(0!==l||0!==h&&1!==h&&3!==h)if(1===l&&0===h)f=!0;else if(3!==l||1!==h||!A&&a){if(r&&3===l&&0===h){f=!0;var C=!0;if(c>3;m.push(k),w=Math.max(k,w)}for(var D=[],S=0;S<=w;S++)D.push({firstCode:t.getUint16(),entryCount:t.getUint16(),idDelta:Gu(t.getByte(),t.getByte()),idRangePos:t.pos+t.getUint16()});for(var F=0;F<256;F++)if(0===m[F])t.pos=D[0].idRangePos+2*F,E=t.getUint16(),p.push({charCode:F,glyphId:E});else{var x=D[m[F]];for(Q=0;Q>1;t.skip(6);var N,L=[];for(N=0;N>1)-(G-N),n.offsetIndex=U,M=Math.max(M,U+n.end-n.start+1)):n.offsetIndex=-1}var H=[];for(Q=0;Q>>0;for(Q=0;Q>>0,Z=t.getInt32()>>>0,_=t.getInt32()>>>0,X=W;X<=Z;X++)p.push({charCode:X,glyphId:_++})}p.sort((function(e,t){return e.charCode-t.charCode}));for(var V=1;V=61440&&de<=61695&&(de&=255),Z[de]=Ee.glyphId}}catch(e){Qe.e(e)}finally{Qe.f()}}else{var ye,pe=yu(te);try{for(pe.s();!(ye=pe.n()).done;){var ve=ye.value;Z[ve.charCode]=ve.glyphId}}catch(e){pe.e(e)}finally{pe.f()}}if(r.glyphNames&&(Ae.length||this.differences.length))for(var me=0;me<256;++me)if(ne||void 0===Z[me]){var we=this.differences[me]||Ae[me];if(we){var be=r.glyphNames.indexOf(we);be>0&&_(be)&&(Z[me]=be)}}}0===Z.length&&(Z[0]=0);var ke=U-1;if(M||(ke=0),!r.cssFontInfo){var De=Ou(Z,_,ke,this.toUnicode);this.toFontChar=De.toFontChar,l.cmap={tag:"cmap",data:Ku(De.charCodeToGlyphId,De.toUnicodeExtraMap,U)},l["OS/2"]&&function(e,t){t.pos=(t.start||0)+e.offset;var r=t.getUint16();t.skip(60);var A=t.getUint16();return!(r<4&&768&A||t.getUint16()>t.getUint16()||(t.skip(6),0===t.getUint16()||(e.data[8]=e.data[9]=0,0)))}(l["OS/2"],t)||(l["OS/2"]={tag:"OS/2",data:Tu(r,De.charCodeToGlyphId,j)})}if(!Q)try{I=new ar(l["CFF "].data),(h=new Xs(I,r,dc).parse()).duplicateFirstGlyph();var Se=new uc(h);l["CFF "].data=Se.compile()}catch(e){q("Failed to compile font "+r.loadedName)}if(l.name){var Fe=Cu(g(l.name),2),xe=Fe[0],Re=Fe[1];l.name.data=Wu(e,xe),this.psName=xe[0][6]||null,r.composite||function(e,t,r){if(!e.isInternalFont&&!e.hasIncludedToUnicodeMap&&!e.hasEncoding&&!(e.toUnicode instanceof Pc)&&t&&0!==r.length&&e.defaultEncoding!==Ss){var A,n=yu(r);try{for(n.s();!(A=n.n()).done;)if(!Yu(A.value))return}catch(e){n.e(e)}finally{n.f()}var i=Ss,a=[],o=lc();for(var s in i){var c=i[s];if(""!==c){var g=o[c];void 0!==g&&(a[s]=String.fromCharCode(g))}}a.length>0&&e.toUnicode.amend(a)}}(r,this.isSymbolicFont,Re)}else l.name={tag:"name",data:Wu(this.name)};var Ge=new Pg(u.version);for(var Ne in l)Ge.addTable(Ne,l[Ne].data);return Ge.toArray()}},{key:"convert",value:function(e,t,r){r.fixedPitch=!1,r.builtInEncoding&&function(e,t){if(!e.isInternalFont&&!(e.hasIncludedToUnicodeMap||t===e.defaultEncoding||e.toUnicode instanceof Pc)){var r=[],A=lc();for(var n in t)if(!e.hasEncoding||!e.baseEncodingName&&void 0===e.differences[n]){var i=fc(t[n],A);-1!==i&&(r[n]=String.fromCharCode(i))}r.length>0&&e.toUnicode.amend(r)}}(r,r.builtInEncoding);var A=1;t instanceof Tc&&(A=t.numGlyphs-1);var n=t.getGlyphMapping(r),i=null,a=n,o=null;r.cssFontInfo||(i=Ou(n,t.hasGlyphId.bind(t),A,this.toUnicode),this.toFontChar=i.toFontChar,a=i.charCodeToGlyphId,o=i.toUnicodeExtraMap);var s=t.numGlyphs;function c(e,t){var r=null;for(var A in e)t===e[A]&&(r||(r=[])).push(0|A);return r}function g(e,t){for(var r in e)if(t===e[r])return 0|r;return i.charCodeToGlyphId[i.nextAvailableFontCharCode]=t,i.nextAvailableFontCharCode++}var u=t.seacs;if(i&&null!=u&&u.length){var l=r.fontMatrix||B,h=t.getCharset(),I=Object.create(null);for(var f in u){var C=u[f|=0],Q=Ds[C[2]],E=Ds[C[3]],d=h.indexOf(Q),y=h.indexOf(E);if(!(d<0||y<0)){var p={x:C[0]*l[0]+C[1]*l[2]+l[4],y:C[0]*l[1]+C[1]*l[3]+l[5]},v=c(n,f);if(v){var m,w=yu(v);try{for(w.s();!(m=w.n()).done;){var b=m.value,k=i.charCodeToGlyphId,D=g(k,d),S=g(k,y);I[b]={baseFontCharCode:D,accentFontCharCode:S,accentOffset:p}}}catch(e){w.e(e)}finally{w.f()}}}}r.seacMap=I}var F=r.fontMatrix?1/Math.max.apply(Math,fu(r.fontMatrix.slice(0,4).map(Math.abs))):1e3,x=new Pg("OTTO");return x.addTable("CFF ",t.data),x.addTable("OS/2",Tu(r,a)),x.addTable("cmap",Ku(a,o,s)),x.addTable("head","\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0_<õ\\0\\0"+Lu(F)+"\\0\\0\\0\\0ž\\v~'\\0\\0\\0\\0ž\\v~'\\0\\0"+Lu(r.descent)+"ÿ"+Lu(r.ascent)+Nu(r.italicAngle?2:0)+"\\0\\0\\0\\0\\0\\0\\0"),x.addTable("hhea","\\0\\0\\0"+Lu(r.ascent)+Lu(r.descent)+"\\0\\0ÿÿ\\0\\0\\0\\0\\0\\0"+Lu(r.capHeight)+Lu(Math.tan(r.italicAngle)*r.xHeight)+"\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0"+Nu(s)),x.addTable("hmtx",function(){for(var e=t.charstrings,r=t.cff?t.cff.widths:null,A="\\0\\0\\0\\0",n=1,i=s;n1&&void 0!==arguments[1]&&arguments[1],c=this._glyphCache[e];if((null===(t=c)||void 0===t?void 0:t.isSpace)===s)return c;var g=e;null!==(r=this.cMap)&&void 0!==r&&r.contains(e)&&"string"==typeof(g=this.cMap.lookup(e))&&(g=Pu(e,g)),"number"!=typeof(a=this.widths[g])&&(a=this.defaultWidth);var u=null===(A=this.vmetrics)||void 0===A?void 0:A[g],l=this.toUnicode.get(e)||e;"number"==typeof l&&(l=String.fromCharCode(l));var h,I=void 0!==this.toFontChar[e];if(i=this.toFontChar[e]||e,this.missingFile){var f=this.differences[e]||this.defaultEncoding[e];".notdef"!==f&&""!==f||"Type1"!==this.type||(i=32,""===f&&(a||(a=this._spaceWidth),l=String.fromCharCode(i))),i=(h=i)>=65520&&h<=65535?0:h>=62976&&h<=63743?Ic()[h]||h:173===h?45:h}this.isType3Font&&(o=i);var C=null;if(null!==(n=this.seacMap)&&void 0!==n&&n[e]){I=!0;var B=this.seacMap[e];i=B.baseFontCharCode,C={fontChar:String.fromCodePoint(B.accentFontCharCode),offset:B.accentOffset}}var Q="";if("number"==typeof i&&(i<=1114111?Q=String.fromCodePoint(i):q("charToGlyph - invalid fontCharCode: ".concat(i))),this.missingFile&&this.vertical&&1===Q.length){var E=wc()[Q.charCodeAt(0)];E&&(Q=l=String.fromCharCode(E))}return c=new Fu(e,Q,l,C,a,u,o,s,I),this._glyphCache[e]=c}},{key:"charsToGlyphs",value:function(e){var t=this._charsCache[e];if(t)return t;if(t=[],this.cMap)for(var r=Object.create(null),A=e.length,n=0;n55295&&(s<57344||s>65533)&&a++,this.toUnicode){var c=i(s);if(-1!==c){n()&&(r.push(A.join("")),A.length=0);for(var g=(this.cMap?this.cMap.getCharCodeLength(c):1)-1;g>=0;g--)A.push(String.fromCharCode(c>>8*g&255));continue}}n()||(r.push(A.join("")),A.length=0),A.push(String.fromCodePoint(s))}return r.push(A.join("")),r}}])}(),_u=function(){return Eu((function e(t){Bu(this,e),this.error=t,this.loadedName="g_font_error",this.missingFile=!0}),[{key:"charsToGlyphs",value:function(){return[]}},{key:"encodeString",value:function(e){return[e]}},{key:"exportData",value:function(){return{error:this.error}}}])}();function Xu(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var A,n,i,a,o=[],s=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(A=i.call(r)).done)&&(o.push(A.value),o.length!==t);s=!0);}catch(e){c=!0,n=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw n}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Vu(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)?Vu(e,t):void 0}}(e,t)||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.")}()}function Vu(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r=g||D<=0)return T("Bad shading domain."),$u(a);var F,x=new Float32Array(s.numComps),R=new Float32Array(1),G=0;R[0]=c,k(R,0,x,0);var N=s.getRgb(x,0),L=ge.makeHexColor(N[0],N[1],N[2]);S.push([0,L]);var U=1;R[0]=c+D,k(R,0,x,0);for(var M=s.getRgb(x,0),J=M[0]-N[0]+1,H=M[1]-N[1]+1,Y=M[2]-N[2]+1,P=M[0]-N[0]-1,O=M[1]-N[1]-1,K=M[2]-N[2]-1,j=2;j<840;j++){R[0]=c+j*D,k(R,0,x,0),F=s.getRgb(x,0);var W=j-G;if(J=Math.min(J,(F[0]-N[0]+1)/W),H=Math.min(H,(F[1]-N[1]+1)/W),Y=Math.min(Y,(F[2]-N[2]+1)/W),P=Math.max(P,(F[0]-N[0]-1)/W),O=Math.max(O,(F[1]-N[1]-1)/W),K=Math.max(K,(F[2]-N[2]-1)/W),!(P<=J&&O<=H&&K<=Y)){var Z=ge.makeHexColor(M[0],M[1],M[2]);S.push([U/840,Z]),J=F[0]-M[0]+1,H=F[1]-M[1]+1,Y=F[2]-M[2]+1,P=F[0]-M[0]-1,O=F[1]-M[1]-1,K=F[2]-M[2]-1,G=U,N=M}U=j,M=F}var _=ge.makeHexColor(M[0],M[1],M[2]);S.push([1,_]);var X="transparent";return e.has("Background")&&(F=s.getRgb(e.get("Background"),0),X=ge.makeHexColor(F[0],F[1],F[2])),I||(S.unshift([0,X]),S[1][0]+=gl.SMALL_NUMBER),f||(S.at(-1)[0]-=gl.SMALL_NUMBER,S.push([1,X])),a.colorStops=S,a}return rl(t,gl),ol(t,[{key:"getIR",value:function(){var e,t,r,A,n,i=this.coordsArr,a=this.shadingType;return 2===a?(t=[i[0],i[1]],r=[i[2],i[3]],A=null,n=null,e="axial"):3===a?(t=[i[0],i[1]],r=[i[3],i[4]],A=i[2],n=i[5],e="radial"):j("getPattern type unknown: ".concat(a)),["RadialAxial",e,this.bbox,this.colorStops,t,r,A,n]}}])}(),ll=function(){return ol((function e(t,r){il(this,e),this.stream=t,this.context=r,this.buffer=0,this.bufferLength=0;var A=r.numComps;this.tmpCompsBuf=new Float32Array(A);var n=r.colorSpace.numComps;this.tmpCsCompsBuf=r.colorFn?new Float32Array(n):this.tmpCompsBuf}),[{key:"hasData",get:function(){if(this.stream.end)return this.stream.pos0)return!0;var e=this.stream.getByte();return!(e<0||(this.buffer=e,this.bufferLength=8,0))}},{key:"readBits",value:function(e){var t=this.buffer,r=this.bufferLength;if(32===e){if(0===r)return(this.stream.getByte()<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte())>>>0;t=t<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte();var A=this.stream.getByte();return this.buffer=A&(1<>r)>>>0}if(8===e&&0===r)return this.stream.getByte();for(;r>r}},{key:"align",value:function(){this.buffer=0,this.bufferLength=0}},{key:"readFlag",value:function(){return this.readBits(this.context.bitsPerFlag)}},{key:"readCoordinate",value:function(){var e=this.context.bitsPerCoordinate,t=this.readBits(e),r=this.readBits(e),A=this.context.decode,n=e<32?1/((1<a?a:e,t=t>o?o:t,r=re.length)&&(t=e.length);for(var r=0,A=Array(t);r=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}(i.map((function(e,t){return[e,t]})).sort((function(e,t){return nh(e,1)[0]-nh(t,1)[0]})));try{for(g.s();!(A=g.n()).done;){var u=nh(A.value,2),l=u[0],h=u[1];-1!==l&&(l===s+1?(r.push(o[h]),s+=1):(s=l,r=[o[h]],c.push(l,r)))}}catch(e){g.e(e)}finally{g.f()}return c}(e),r=new He(null);r.set("BaseFont",Ue.get(e)),r.set("Type",Ue.get("Font")),r.set("Subtype",Ue.get("CIDFontType2")),r.set("Encoding",Ue.get("Identity-H")),r.set("CIDToGIDMap",Ue.get("Identity")),r.set("W",t),r.set("FirstChar",t[0]),r.set("LastChar",t.at(-2)+t.at(-1).length-1);var A=new He(null);r.set("FontDescriptor",A);var n=new He(null);return n.set("Ordering","Identity"),n.set("Registry","Adobe"),n.set("Supplement",0),r.set("CIDSystemInfo",n),r}function gh(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function uh(e,t){for(var r=0;r=0&&(t>=65&&t<=90||t>=97&&t<=122);)r.push(String.fromCharCode(t));var A=r.join("");switch(A.toLowerCase()){case"if":return Bh.IF;case"ifelse":return Bh.IFELSE;default:return Bh.getOperator(A)}}},{key:"getNumber",value:function(){var e=this.currentChar,t=this.strBuf;for(t.length=0,t[0]=String.fromCharCode(e);(e=this.nextChar())>=0&&(e>=48&&e<=57||45===e||46===e);)t.push(String.fromCharCode(e));var r=parseFloat(t.join(""));if(isNaN(r))throw new re("Invalid floating point number: ".concat(r));return r}}])}();function Eh(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2?arguments[2]:void 0;if("string"!=typeof e)throw new Error('LocalImageCache.set - expected "name" argument.');if(t){if(this._imageCache.has(t))return;return this._nameRefMap.set(e,t),void this._imageCache.put(t,r)}this._imageMap.has(e)||this._imageMap.set(e,r)}}])}(),Uh=function(e){function t(){return Fh(this,t),wh(this,t,arguments)}return Dh(t,Nh),Rh(t,[{key:"set",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2?arguments[2]:void 0;if("string"!=typeof e&&!t)throw new Error('LocalColorSpaceCache.set - expected "name" and/or "ref" argument.');if(t){if(this._imageCache.has(t))return;return null!==e&&this._nameRefMap.set(e,t),void this._imageCache.put(t,r)}this._imageMap.has(e)||this._imageMap.set(e,r)}}])}(),Mh=function(e){function t(e){return Fh(this,t),wh(this,t,[{onlyRefs:!0}])}return Dh(t,Nh),Rh(t,[{key:"set",value:function(){var e=arguments.length>1?arguments[1]:void 0,t=arguments.length>2?arguments[2]:void 0;if(!e)throw new Error('LocalFunctionCache.set - expected "ref" argument.');this._imageCache.has(e)||this._imageCache.put(e,t)}}])}(),Jh=function(e){function t(){return Fh(this,t),wh(this,t,arguments)}return Dh(t,Nh),Rh(t,[{key:"set",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2?arguments[2]:void 0;if("string"!=typeof e)throw new Error('LocalGStateCache.set - expected "name" argument.');if(t){if(this._imageCache.has(t))return;return this._nameRefMap.set(e,t),void this._imageCache.put(t,r)}this._imageMap.has(e)||this._imageMap.set(e,r)}}])}(),Hh=function(e){function t(e){return Fh(this,t),wh(this,t,[{onlyRefs:!0}])}return Dh(t,Nh),Rh(t,[{key:"set",value:function(){var e=arguments.length>1?arguments[1]:void 0,t=arguments.length>2?arguments[2]:void 0;if(!e)throw new Error('LocalTilingPatternCache.set - expected "ref" argument.');this._imageCache.has(e)||this._imageCache.put(e,t)}}])}(),Yh=function(e){function t(e){return Fh(this,t),wh(this,t,[{onlyRefs:!0}])}return Dh(t,Nh),Rh(t,[{key:"set",value:function(){var e=arguments.length>1?arguments[1]:void 0,t=arguments.length>2?arguments[2]:void 0;if(!e)throw new Error('RegionalImageCache.set - expected "ref" argument.');this._imageCache.has(e)||this._imageCache.put(e,t)}}])}(),Ph=new WeakMap,Oh=new WeakSet,Kh=function(){function e(){var t;Fh(this,e),dh(this,t=Oh),t.add(this),function(e,t,r){dh(e,t),t.set(e,r)}(this,Ph,new Pe),this._refCache=new Oe,this._imageCache=new Oe}return Rh(e,[{key:"shouldCache",value:function(t,r){var A=this._refCache.get(t);return A||(A=new Set,this._refCache.put(t,A)),A.add(r),!(A.size0&&void 0!==arguments[0]&&arguments[0]||(ph(Ph,this).clear(),this._refCache.clear()),this._imageCache.clear()}}])}();function Th(e){var t,r=0,A=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return Eh(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)?Eh(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}(e._imageCache);try{for(A.s();!(t=A.n()).done;)r+=t.value.byteSize}catch(e){A.e(e)}finally{A.f()}return r}function qh(e){return!(e._imageCache.size=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function $h(e,t){if(e){if("string"==typeof e)return eI(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)?eI(e,t):void 0}}function eI(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r>s)*g,c&=(1<r?e=r:e0&&(l=c[i-1]);var h=n[1];i>1,g=n.length>>1,u=new lI(o),l=Object.create(null),h=8192,I=new Float32Array(g);return function(e,t,r,A){var n,a,o="",s=I;for(n=0;n(E=i[2*n+1]))&&(a=E),C[n]=a}h>0&&(h--,l[o]=C),r.set(C,A)}else r.set(f,A)}}}])}();function sI(e){var t;if(e instanceof He)t=e;else{if(!(e instanceof ze))return!1;t=e.dict}return t.has("FunctionType")}var cI,gI,uI=function(){function e(t){tI(this,e),this.stack=t?Array.from(t):[]}return AI(e,[{key:"push",value:function(t){if(this.stack.length>=e.MAX_STACK_SIZE)throw new Error("PostScript function stack overflow.");this.stack.push(t)}},{key:"pop",value:function(){if(this.stack.length<=0)throw new Error("PostScript function stack underflow.");return this.stack.pop()}},{key:"copy",value:function(t){if(this.stack.length+t>=e.MAX_STACK_SIZE)throw new Error("PostScript function stack overflow.");for(var r=this.stack,A=r.length-t,n=t-1;n>=0;n--,A++)r.push(r[A])}},{key:"index",value:function(e){this.push(this.stack[this.stack.length-e-1])}},{key:"roll",value:function(e,t){for(var r=this.stack,A=r.length-e,n=r.length-1,i=A+(t-Math.floor(t/e)*e),a=A,o=n;a0?n.push(r<>A);break;case"ceiling":r=n.pop(),n.push(Math.ceil(r));break;case"copy":r=n.pop(),n.copy(r);break;case"cos":r=n.pop(),n.push(Math.cos(r%360/180*Math.PI));break;case"cvi":r=0|n.pop(),n.push(r);break;case"cvr":break;case"div":A=n.pop(),r=n.pop(),n.push(r/A);break;case"dup":n.copy(1);break;case"eq":A=n.pop(),r=n.pop(),n.push(r===A);break;case"exch":n.roll(2,1);break;case"exp":A=n.pop(),r=n.pop(),n.push(Math.pow(r,A));break;case"false":n.push(!1);break;case"floor":r=n.pop(),n.push(Math.floor(r));break;case"ge":A=n.pop(),r=n.pop(),n.push(r>=A);break;case"gt":A=n.pop(),r=n.pop(),n.push(r>A);break;case"idiv":A=n.pop(),r=n.pop(),n.push(r/A|0);break;case"index":r=n.pop(),n.index(r);break;case"le":A=n.pop(),r=n.pop(),n.push(r<=A);break;case"ln":r=n.pop(),n.push(Math.log(r));break;case"log":r=n.pop(),n.push(Math.log10(r));break;case"lt":A=n.pop(),r=n.pop(),n.push(r=t?new fI(t):e.max<=t?e:new BI(e,t)}var wI=function(){return AI((function e(){tI(this,e)}),[{key:"compile",value:function(e,t,r){for(var A,n,i,a,o,s,c,g,u=[],l=[],h=t.length>>1,I=r.length>>1,f=0,C=0;Cb.min&&(F.unshift("Math.max(",D,", "),F.push(")")),S2&&void 0!==arguments[2]&&arguments[2]?r="ttb":t||(r="rtl"),{str:e,dir:r}}var NI=[],LI=[];function UI(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],A=!0,n=e.length;if(0===n||r)return GI(e,A,r);NI.length=n,LI.length=n;var i,a,o=0;for(i=0;i4?(A=!0,t=0):(A=!1,t=1));var g=[];for(i=0;i=0&&"ET"===LI[C];--C)LI[C]="EN";for(var B=i+1;B0&&(E=LI[i-1]);var d=I;Q+1y&&DI(y)&&(v=y);for(y=p;y>=v;--y){var m=-1;for(i=0,a=g.length;i=0&&(RI(NI,m,i),m=-1):m<0&&(m=i);m>=0&&RI(NI,m,g.length)}for(i=0,a=NI.length;i"!==w||(NI[i]="")}return GI(NI.join(""),A)}function MI(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var A,n,i,a,o=[],s=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(A=i.call(r)).done)&&(o.push(A.value),o.length!==t);s=!0);}catch(e){c=!0,n=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw n}}return o}}(e,t)||HI(e,t)||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.")}()}function JI(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=HI(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function HI(e,t){if(e){if("string"==typeof e)return YI(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)?YI(e,t):void 0}}function YI(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r3&&void 0!==arguments[3])||arguments[3],g=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],u=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"",l={style:null,ultimate:null};if(n){var h,I=u?" ".concat(u):"",f=JI(n);try{for(f.s();!(h=f.n()).done;){var C=h.value;t.push("local(".concat(C).concat(I,")"))}}catch(e){f.e(e)}finally{f.f()}}if(A){var B=qI.get(A),Q=u||function(e){switch(e){case OI:return"Bold";case KI:return"Italic";case TI:return"Bold Italic";default:if("bold"===(null==e?void 0:e.weight))return"Bold";if("italic"===(null==e?void 0:e.style))return"Italic"}return""}(o);Object.assign(l,ZI(B,t,r,c&&!a,g&&!i,Q))}if(o&&(l.style=o),s&&(l.ultimate=s),c&&a){var E=ZI(qI.get(a),t,r,c,g&&!i,u).ultimate;l.ultimate||(l.ultimate=E)}return g&&i&&r&&t.push("url(".concat(r).concat(i,")")),l}function _I(e,t,r,A,n,i){if(A.startsWith("InvalidPDFjsFont_"))return null;"TrueType"!==i&&"Type1"!==i||!/^[A-Z]{6}\\+/.test(A)||(A=A.slice(7));var a=A=mc(A),o=e.get(a);if(o)return o;var s=qI.get(A);if(!s){var c,g=JI(jI);try{for(g.s();!(c=g.n()).done;){var u=MI(c.value,2),l=u[0],h=u[1];if(A.startsWith(l)){A="".concat(h).concat(A.substring(l.length)),s=qI.get(A);break}}}catch(e){g.e(e)}finally{g.f()}}var I=!1;s||(s=qI.get(n),I=!0);var f="".concat(t.getDocId(),"_s").concat(t.createFontId());if(!s){if(!Pt(A))return q("Cannot substitute the font because of its name: ".concat(A)),e.set(a,null),null;var C=/bold/gi.test(A),B=/oblique|italic/gi.test(A),Q=C&&B&&TI||C&&OI||B&&KI||PI;return o={css:'"'.concat(WI(A),'",').concat(f),guessFallback:!0,loadedName:f,baseFontName:A,src:"local(".concat(A,")"),style:Q},e.set(a,o),o}var E=[];I&&Pt(A)&&E.push("local(".concat(A,")"));var d=ZI(s,E,r),y=d.style,p=d.ultimate,v=null===p,m=v?"":",".concat(p);return o={css:'"'.concat(WI(A),'",').concat(f).concat(m),guessFallback:v,loadedName:f,baseFontName:A,src:E.join(","),style:y},e.set(a,o),o}function XI(){XI=function(){return t};var e,t={},r=Object.prototype,A=r.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,r){return e[t]=r}}function g(e,t,r,A){var i=t&&t.prototype instanceof B?t:B,a=Object.create(i.prototype),o=new F(A||[]);return n(a,"_invoke",{value:b(e,r,o)}),a}function u(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=g;var l="suspendedStart",h="suspendedYield",I="executing",f="completed",C={};function B(){}function Q(){}function E(){}var d={};c(d,a,(function(){return this}));var y=Object.getPrototypeOf,p=y&&y(y(x([])));p&&p!==r&&A.call(p,a)&&(d=p);var v=E.prototype=B.prototype=Object.create(d);function m(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function r(n,i,a,o){var s=u(e[n],e,i);if("throw"!==s.type){var c=s.arg,g=c.value;return g&&"object"==typeof g&&A.call(g,"__await")?t.resolve(g.__await).then((function(e){r("next",e,a,o)}),(function(e){r("throw",e,a,o)})):t.resolve(g).then((function(e){c.value=e,a(c)}),(function(e){return r("throw",e,a,o)}))}o(s.arg)}var i;n(this,"_invoke",{value:function(e,A){function n(){return new t((function(t,n){r(e,A,t,n)}))}return i=i?i.then(n,n):n()}})}function b(t,r,A){var n=l;return function(i,a){if(n===I)throw Error("Generator is already running");if(n===f){if("throw"===i)throw a;return{value:e,done:!0}}for(A.method=i,A.arg=a;;){var o=A.delegate;if(o){var s=k(o,A);if(s){if(s===C)continue;return s}}if("next"===A.method)A.sent=A._sent=A.arg;else if("throw"===A.method){if(n===l)throw n=f,A.arg;A.dispatchException(A.arg)}else"return"===A.method&&A.abrupt("return",A.arg);n=I;var c=u(t,r,A);if("normal"===c.type){if(n=A.done?f:h,c.arg===C)continue;return{value:c.arg,done:A.done}}"throw"===c.type&&(n=f,A.method="throw",A.arg=c.arg)}}}function k(t,r){var A=r.method,n=t.iterator[A];if(n===e)return r.delegate=null,"throw"===A&&t.iterator.return&&(r.method="return",r.arg=e,k(t,r),"throw"===r.method)||"return"!==A&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+A+"' method")),C;var i=u(n,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,C;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,C):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,C)}function D(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function F(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(D,this),this.reset(!0)}function x(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,i=function r(){for(;++n=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}function VI(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return zI(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)?zI(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function zI(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r>3,g=c+3&-4;if(c!==g){for(var u=new Uint8Array(g*A),l=0,h=0,I=A*c;hr||t>r)return!0;var A=e*t;return this._hasMaxArea?A>this.MAX_AREA:!(A(this.MAX_AREA=Math.pow(this._goodSquareLength,2))))}},{key:"MAX_DIM",get:function(){return _(this,"MAX_DIM",this._guessMax(2048,65537,0,1))}},{key:"MAX_AREA",get:function(){return this._hasMaxArea=!0,_(this,"MAX_AREA",Math.pow(this._guessMax(e._goodSquareLength,this.MAX_DIM,128,0),2))},set:function(e){e>=0&&(this._hasMaxArea=!0,_(this,"MAX_AREA",e))}},{key:"setMaxArea",value:function(e){this._hasMaxArea||(this.MAX_AREA=e>>2)}},{key:"_areGoodDims",value:function(e,t){try{var r=new OffscreenCanvas(e,t),A=r.getContext("2d");A.fillRect(0,0,1,1);var n=A.getImageData(0,0,1,1).data[3];return r.width=r.height=1,0!==n}catch(e){return!1}}},{key:"_guessMax",value:function(e,t,r,A){for(;e+r+11&&void 0!==n[1]&&n[1],t.abrupt("return",new e(r,A)._createImage());case 2:case"end":return t.stop()}}),t)}))),function(e){return t.apply(this,arguments)})}]);var t,r}();function nf(e,t){for(var r=0;r>>8,t[r++]=255&i)}}else{if(!ArrayBuffer.isView(e))throw new Error("Invalid data format, must be a string or TypedArray.");r=(t=e.slice()).byteLength}for(var a=r>>2,o=r-4*a,s=new Uint32Array(t.buffer,0,a),c=0,g=0,u=this.h1,l=this.h2,h=3432918353,I=461845907,f=11601,C=13715,B=0;B>>17)*I&cf|c*C&gf)<<13|u>>>19)+3864292196:l=5*(l=(l^=g=(g=(g=(g=s[B])*h&cf|g*f&gf)<<15|g>>>17)*I&cf|g*C&gf)<<13|l>>>19)+3864292196;switch(c=0,o){case 3:c^=t[4*a+2]<<16;case 2:c^=t[4*a+1]<<8;case 1:c=(c=(c=(c^=t[4*a])*h&cf|c*f&gf)<<15|c>>>17)*I&cf|c*C&gf,1&a?u^=c:l^=c}this.h1=u,this.h2=l}},{key:"hexdigest",value:function(){var e=this.h1,t=this.h2;return e=3981806797*(e^=t>>>1)&cf|36045*e&gf,e=444984403*(e^=(t=4283543511*t&cf|(2950163797*(t<<16|e>>>16)&cf)>>>16)>>>1)&cf|60499*e&gf,((e^=(t=3301882366*t&cf|(3120437893*(t<<16|e>>>16)&cf)>>>16)>>>1)>>>0).toString(16).padStart(8,"0")+(t>>>0).toString(16).padStart(8,"0")}}])}();function lf(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return hf(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)?hf(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function hf(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r1e3&&(c=Math.max(c,l),h+=u+2,l=0,u=0),g.push({transform:f,x:l,y:h,w:C.width,h:C.height}),l+=C.width+2,u=Math.max(u,C.height)}for(var B=Math.max(c,l)+1,Q=h+u+1,E=new Uint8Array(B*Q*4),d=B<<2,y=0;y=0;)p[w-4]=p[w],p[w-3]=p[w+1],p[w-2]=p[w+2],p[w-1]=p[w+3],p[w+v]=p[w+v-4],p[w+v+1]=p[w+v-3],p[w+v+2]=p[w+v-2],p[w+v+3]=p[w+v-1],w-=d}var D={width:B,height:Q};if(e.isOffscreenCanvasSupported){var S=new OffscreenCanvas(B,Q);S.getContext("2d").putImageData(new ImageData(new Uint8ClampedArray(E.buffer),B,Q),0,0),D.bitmap=S.transferToImageBitmap(),D.data=null}else D.kind=3,D.data=E;return r.splice(i,4*s,87),A.splice(i,4*s,[D,g]),i+1})),vf(mf,[x,G,Y,R],null,(function(e,t){var r=e.fnArray,A=(t-(e.iCurr-3))%4;switch(A){case 0:return r[t]===x;case 1:return r[t]===G;case 2:return r[t]===Y;case 3:return r[t]===R}throw new Error("iterateImageMaskGroup - invalid pos: ".concat(A))}),(function(e,t){var r=e.fnArray,A=e.argsArray,n=e.iCurr,i=n-3,a=n-2,o=n-1,s=Math.floor((t-i)/4);if(s<10)return t-(t-i)%4;var c,g,u=!1,l=A[o][0],h=A[a][0],I=A[a][1],f=A[a][2],C=A[a][3];if(I===f){u=!0,c=a+4;for(var B=o+4,Q=1;Q=4&&r[i-4]===r[a]&&r[i-3]===r[o]&&r[i-2]===r[s]&&r[i-1]===r[c]&&A[i-4][0]===g&&A[i-4][1]===u&&(l++,h-=5);for(var I=h+4,f=1;f=(r=e.length))break}(A=(A||mf)[e[t]])&&!Array.isArray(A)?(i.iCurr=t,t++,!A.checkFn||(0,A.checkFn)(i)?(n=A,A=null):A=null):t++}this.state=A,this.match=n,this.lastProcessed=t}else this.lastProcessed=r}},{key:"flush",value:function(){for(;this.match;){var e=this.queue.fnArray.length;this.lastProcessed=(0,this.match.processFn)(this.context,e),this.match=null,this.state=null,this._optimize()}}},{key:"reset",value:function(){this.state=null,this.match=null,this.lastProcessed=0}}])}(),kf=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=arguments.length>1?arguments[1]:void 0;Ef(this,e),this._streamSink=r,this.fnArray=[],this.argsArray=[],this.optimizer=!r||256&t?new wf(this):new bf(this),this.dependencies=new Set,this._totalLength=0,this.weight=0,this._resolved=r?null:Promise.resolve()}return yf(e,[{key:"isOffscreenCanvasSupported",set:function(e){this.optimizer.isOffscreenCanvasSupported=e}},{key:"length",get:function(){return this.argsArray.length}},{key:"ready",get:function(){return this._resolved||this._streamSink.ready}},{key:"totalLength",get:function(){return this._totalLength+this.length}},{key:"addOp",value:function(t,r){this.optimizer.push(t,r),this.weight++,this._streamSink&&(this.weight>=e.CHUNK_SIZE||this.weight>=e.CHUNK_SIZE_ABOUT&&(t===R||32===t))&&this.flush()}},{key:"addImageOps",value:function(e,t,r){void 0!==r&&this.addOp(J,["OC",r]),this.addOp(e,t),void 0!==r&&this.addOp(H,[])}},{key:"addDependency",value:function(e){this.dependencies.has(e)||(this.dependencies.add(e),this.addOp(1,[e]))}},{key:"addDependencies",value:function(e){var t,r=lf(e);try{for(r.s();!(t=r.n()).done;){var A=t.value;this.addDependency(A)}}catch(e){r.e(e)}finally{r.f()}}},{key:"addOpList",value:function(t){if(t instanceof e){var r,A=lf(t.dependencies);try{for(A.s();!(r=A.n()).done;){var n=r.value;this.dependencies.add(n)}}catch(e){A.e(e)}finally{A.f()}for(var i=0,a=t.length;i0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.optimizer.flush();var r=this.length;this._totalLength+=r,this._streamSink.enqueue({fnArray:this.fnArray,argsArray:this.argsArray,lastChunk:e,separateAnnots:t,length:r},1,this._transfers),this.dependencies.clear(),this.fnArray.length=0,this.argsArray.length=0,this.weight=0,this.optimizer.reset()}}])}();function Df(){Df=function(){return t};var e,t={},r=Object.prototype,A=r.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,r){return e[t]=r}}function g(e,t,r,A){var i=t&&t.prototype instanceof B?t:B,a=Object.create(i.prototype),o=new F(A||[]);return n(a,"_invoke",{value:b(e,r,o)}),a}function u(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=g;var l="suspendedStart",h="suspendedYield",I="executing",f="completed",C={};function B(){}function Q(){}function E(){}var d={};c(d,a,(function(){return this}));var y=Object.getPrototypeOf,p=y&&y(y(x([])));p&&p!==r&&A.call(p,a)&&(d=p);var v=E.prototype=B.prototype=Object.create(d);function m(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function r(n,i,a,o){var s=u(e[n],e,i);if("throw"!==s.type){var c=s.arg,g=c.value;return g&&"object"==typeof g&&A.call(g,"__await")?t.resolve(g.__await).then((function(e){r("next",e,a,o)}),(function(e){r("throw",e,a,o)})):t.resolve(g).then((function(e){c.value=e,a(c)}),(function(e){return r("throw",e,a,o)}))}o(s.arg)}var i;n(this,"_invoke",{value:function(e,A){function n(){return new t((function(t,n){r(e,A,t,n)}))}return i=i?i.then(n,n):n()}})}function b(t,r,A){var n=l;return function(i,a){if(n===I)throw Error("Generator is already running");if(n===f){if("throw"===i)throw a;return{value:e,done:!0}}for(A.method=i,A.arg=a;;){var o=A.delegate;if(o){var s=k(o,A);if(s){if(s===C)continue;return s}}if("next"===A.method)A.sent=A._sent=A.arg;else if("throw"===A.method){if(n===l)throw n=f,A.arg;A.dispatchException(A.arg)}else"return"===A.method&&A.abrupt("return",A.arg);n=I;var c=u(t,r,A);if("normal"===c.type){if(n=A.done?f:h,c.arg===C)continue;return{value:c.arg,done:A.done}}"throw"===c.type&&(n=f,A.method="throw",A.arg=c.arg)}}}function k(t,r){var A=r.method,n=t.iterator[A];if(n===e)return r.delegate=null,"throw"===A&&t.iterator.return&&(r.method="return",r.arg=e,k(t,r),"throw"===r.method)||"return"!==A&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+A+"' method")),C;var i=u(n,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,C;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,C):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,C)}function D(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function F(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(D,this),this.reset(!0)}function x(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,i=function r(){for(;++n=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}function Sf(e,t,r,A,n,i,a){try{var o=e[i](a),s=o.value}catch(e){return void r(e)}o.done?t(s):Promise.resolve(s).then(A,n)}function Ff(e){return function(){var t=this,r=arguments;return new Promise((function(A,n){var i=e.apply(t,r);function a(e){Sf(i,A,n,a,o,"next",e)}function o(e){Sf(i,A,n,a,o,"throw",e)}a(void 0)}))}}function xf(e,t){for(var r=0;rA&&(e=A),e}function Nf(e,t,r,A,n,i){var a,o=n*i;a=t<=8?new Uint8Array(o):t<=16?new Uint16Array(o):new Uint32Array(o);var s,c,g,u,l=r/n,h=A/i,I=0,f=new Uint16Array(n),C=r;for(s=0;s0&&Number.isInteger(n.height)&&n.height>0&&(n.width!==d||n.height!==y)&&(q("PDFImage - using the Width/Height of the image data, rather than the image dictionary."),d=n.width,y=n.height),d<1||y<1)throw new re("Invalid image width: ".concat(d," or height: ").concat(y));this.width=d,this.height=y,this.interpolate=C.get("I","Interpolate"),this.imageMask=C.get("IM","ImageMask")||!1,this.matte=C.get("Matte")||!1;var p=n.bitsPerComponent;if(!p&&!(p=C.get("BPC","BitsPerComponent"))){if(!this.imageMask)throw new re("Bits per component missing in image: ".concat(this.imageMask));p=1}if(this.bpc=p,!this.imageMask){var v,m=C.getRaw("CS")||C.getRaw("ColorSpace"),w=!!m;if(w)null!==(v=this.jpxDecoderOptions)&&void 0!==v&&v.smaskInData&&(m=Ue.get("DeviceRGBA"));else if(this.jpxDecoderOptions)m=Ue.get("DeviceRGBA");else switch(n.numComps){case 1:m=Ue.get("DeviceGray");break;case 3:m=Ue.get("DeviceRGB");break;case 4:m=Ue.get("DeviceCMYK");break;default:throw new Error("Images with ".concat(n.numComps," color components not supported."))}this.colorSpace=Ur.parse({cs:m,xref:r,resources:a?A:null,pdfFunctionFactory:h,localColorSpaceCache:I}),this.numComps=this.colorSpace.numComps,this.jpxDecoderOptions&&(this.jpxDecoderOptions.numComponents=w?this.numComp:0,this.jpxDecoderOptions.isIndexedColormap="Indexed"===this.colorSpace.name)}if(this.decode=C.getArray("D","Decode"),this.needsDecode=!1,this.decode&&(this.colorSpace&&!this.colorSpace.isDefaultDecode(this.decode,p)||l&&!Ur.isDefaultDecode(this.decode,1))){var b;this.needsDecode=!0;var k=(1<>7&1,r[l+1]=c>>6&1,r[l+2]=c>>5&1,r[l+3]=c>>4&1,r[l+4]=c>>3&1,r[l+5]=c>>2&1,r[l+6]=c>>1&1,r[l+7]=1&c,l+=8;if(l>=1}else{var B=0;for(c=0,l=0,s=a;l>Q;E<0?E=0:E>u&&(E=u),r[l]=E,c&=(1<s[E+1])){t.next=37;break}return C=255,t.abrupt("break",40);case 37:++I,t.next=31;break;case 40:c[l]=C;case 41:++l,t.next=27;break;case 44:t.next=47;break;case 46:throw new re("Unknown mask format.");case 47:if(c)for(l=0,I=3,h=A*i;l0&&void 0!==x[0]&&x[0],r=x.length>1&&void 0!==x[1]&&x[1],A=this.drawWidth,n=this.drawHeight,i={width:A,height:n,interpolate:this.interpolate,kind:0,data:null},a=this.numComps,o=this.width,s=this.height,c=this.bpc,g=o*a*c+7>>3,u=r&&Af.needsToBeResized(A,n),"DeviceRGBA"!==this.colorSpace.name){e.next=21;break}return i.kind=3,e.next=15,this.getImageBytes(s*o*4,{});case 15:if(l=i.data=e.sent,!r){e.next=20;break}if(u){e.next=19;break}return e.abrupt("return",this.createBitmap(3,A,n,l));case 19:return e.abrupt("return",Af.createImage(i,!1));case 20:return e.abrupt("return",i);case 21:if(t){e.next=68;break}if("DeviceGray"===this.colorSpace.name&&1===c?h=1:"DeviceRGB"!==this.colorSpace.name||8!==c||this.needsDecode||(h=2),!h||this.smask||this.mask||A!==o||n!==s){e.next=35;break}return e.next=26,this.getImageBytes(s*g,{});case 26:if(I=e.sent,!r){e.next=31;break}if(!u){e.next=30;break}return e.abrupt("return",Af.createImage({data:I,kind:h,width:A,height:n,interpolate:this.interpolate},this.needsDecode));case 30:return e.abrupt("return",this.createBitmap(h,o,s,I));case 31:if(i.kind=h,i.data=I,this.needsDecode)for(W(1===h,"PDFImage.createImageData: The image must be grayscale."),f=i.data,C=0,B=f.length;C>3,e.next=9,this.getImageBytes(n*a,{internal:!0});case 9:if(o=e.sent,s=this.getComponents(o),1!==i){e.next=15;break}if(g=A*n,this.needsDecode)for(c=0;c>2,c=new Uint32Array(t.buffer,A,s);if(se.isLittleEndian){for(;o>>24|u<<8|4278190080,n[a+2]=u>>>16|l<<16|4278190080,n[a+3]=l>>>8|4278190080}for(var h=4*o,I=t.length;h>>8|255,n[a+2]=C<<16|B>>>16|255,n[a+3]=B<<8|255}for(var Q=4*o,E=t.length;Q>3)*i,g=A.byteLength;if(!a||o&&c!==g?o?((t=new Uint8Array(c)).set(A),t.fill(255,g)):t=new Uint8Array(A):t=A,o)for(r=0;r=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}function Hf(e,t,r,A,n,i,a){try{var o=e[i](a),s=o.value}catch(e){return void r(e)}o.done?t(s):Promise.resolve(s).then(A,n)}function Yf(e){return function(){var t=this,r=arguments;return new Promise((function(A,n){var i=e.apply(t,r);function a(e){Hf(i,A,n,a,o,"next",e)}function o(e){Hf(i,A,n,a,o,"throw",e)}a(void 0)}))}}function Pf(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Of(e,t){for(var r=0;r=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function Wf(e,t){if(e){if("string"==typeof e)return Zf(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)?Zf(e,t):void 0}}function Zf(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r1&&void 0!==arguments[1]&&arguments[1];if(Array.isArray(e)){var r,A=jf(e);try{for(A.s();!(r=A.n()).done;){var n=Vf(r.value,!0);if(n)return n}}catch(e){A.e(e)}finally{A.f()}return q("Unsupported blend mode Array: ".concat(e)),"source-over"}if(!(e instanceof Ue))return t?null:"source-over";switch(e.name){case"Normal":case"Compatible":return"source-over";case"Multiply":return"multiply";case"Screen":return"screen";case"Overlay":return"overlay";case"Darken":return"darken";case"Lighten":return"lighten";case"ColorDodge":return"color-dodge";case"ColorBurn":return"color-burn";case"HardLight":return"hard-light";case"SoftLight":return"soft-light";case"Difference":return"difference";case"Exclusion":return"exclusion";case"Hue":return"hue";case"Saturation":return"saturation";case"Color":return"color";case"Luminosity":return"luminosity"}return t?null:(q("Unsupported blend mode: ".concat(e.name)),"source-over")}function zf(e,t){var r;t.objId&&e.addDependency(t.objId),e.addImageOps(t.fn,t.args,t.optionalContent),t.fn===Y&&(null===(r=t.args[0])||void 0===r?void 0:r.count)>0&&t.args[0].count++}var $f=function(){function e(){Pf(this,e),this.reset()}return Kf(e,[{key:"check",value:function(){return!(++this.checked0&&void 0!==arguments[0]?arguments[0]:null,t=Object.create(this);return t.options=Object.assign(Object.create(null),this.options,e),t}},{key:"hasBlendModes",value:function(e,t){if(!(e instanceof He))return!1;if(e.objId&&t.has(e.objId))return!1;var r=new Pe(t);e.objId&&r.put(e.objId);for(var A=[e],n=this.xref;A.length;){var i=A.shift(),a=i.get("ExtGState");if(a instanceof He){var o,s=jf(a.getRawValues());try{for(s.s();!(o=s.n()).done;){var c=o.value;if(c instanceof Ye){if(r.has(c))continue;try{c=n.fetch(c)}catch(e){r.put(c),T('hasBlendModes - ignoring ExtGState: "'.concat(e,'".'));continue}}if(c instanceof He){c.objId&&r.put(c.objId);var g=c.get("BM");if(g instanceof Ue){if("Normal"!==g.name)return!0}else if(void 0!==g&&Array.isArray(g)){var u,l=jf(g);try{for(l.s();!(u=l.n()).done;){var h=u.value;if(h instanceof Ue&&"Normal"!==h.name)return!0}}catch(e){l.e(e)}finally{l.f()}}}}}catch(e){s.e(e)}finally{s.f()}}var I=i.get("XObject");if(I instanceof He){var f,C=jf(I.getRawValues());try{for(C.s();!(f=C.n()).done;){var B=f.value;if(B instanceof Ye){if(r.has(B))continue;try{B=n.fetch(B)}catch(e){r.put(B),T('hasBlendModes - ignoring XObject: "'.concat(e,'".'));continue}}if(B instanceof ze){B.dict.objId&&r.put(B.dict.objId);var Q=B.dict.get("Resources");Q instanceof He&&(Q.objId&&r.has(Q.objId)||(A.push(Q),Q.objId&&r.put(Q.objId)))}}}catch(e){C.e(e)}finally{C.f()}}}var E,d=jf(r);try{for(d.s();!(E=d.n()).done;){var y=E.value;t.put(y)}}catch(e){d.e(e)}finally{d.f()}return!1}},{key:"fetchBuiltInCMap",value:(u=Yf(Jf().mark((function e(t){var r,A,n,i;return Jf().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(r=this.builtInCMapCache.get(t))){e.next=3;break}return e.abrupt("return",r);case 3:if(null===this.options.cMapUrl){e.next=19;break}return n="".concat(this.options.cMapUrl).concat(t,".bcmap"),e.next=7,fetch(n);case 7:if((i=e.sent).ok){e.next=10;break}throw new Error('fetchBuiltInCMap: failed to fetch file "'.concat(n,'" with "').concat(i.statusText,'".'));case 10:return e.t0=Uint8Array,e.next=13,i.arrayBuffer();case 13:e.t1=e.sent,e.t2=new e.t0(e.t1),e.t3=F.BINARY,A={cMapData:e.t2,compressionType:e.t3},e.next=22;break;case 19:return e.next=21,this.handler.sendWithPromise("FetchBuiltInCMap",{name:t});case 21:A=e.sent;case 22:return A.compressionType!==F.NONE&&this.builtInCMapCache.set(t,A),e.abrupt("return",A);case 24:case"end":return e.stop()}}),e,this)}))),function(e){return u.apply(this,arguments)})},{key:"fetchStandardFontData",value:(g=Yf(Jf().mark((function e(t){var r,A,n,i,a,o;return Jf().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(r=this.standardFontDataCache.get(t))){e.next=3;break}return e.abrupt("return",new ar(r));case 3:if(!this.options.useSystemFonts||"Symbol"===t||"ZapfDingbats"===t){e.next=5;break}return e.abrupt("return",null);case 5:if(A=kc(),n=A[t],null===this.options.standardFontDataUrl){e.next=22;break}return a="".concat(this.options.standardFontDataUrl).concat(n),e.next=10,fetch(a);case 10:if((o=e.sent).ok){e.next=15;break}q('fetchStandardFontData: failed to fetch file "'.concat(a,'" with "').concat(o.statusText,'".')),e.next=20;break;case 15:return e.t0=Uint8Array,e.next=18,o.arrayBuffer();case 18:e.t1=e.sent,i=new e.t0(e.t1);case 20:e.next=31;break;case 22:return e.prev=22,e.next=25,this.handler.sendWithPromise("FetchStandardFontData",{filename:n});case 25:i=e.sent,e.next=31;break;case 28:e.prev=28,e.t2=e.catch(22),q('fetchStandardFontData: failed to fetch file "'.concat(n,'" with "').concat(e.t2,'".'));case 31:if(i){e.next=33;break}return e.abrupt("return",null);case 33:return this.standardFontDataCache.set(t,i),e.abrupt("return",new ar(i));case 35:case"end":return e.stop()}}),e,this,[[22,28]])}))),function(e){return g.apply(this,arguments)})},{key:"buildFormXObject",value:(c=Yf(Jf().mark((function e(t,r,A,n,i,a,o){var s,c,g,u,l,h,I,f,C,B,Q;return Jf().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s=r.dict,c=Ft(s.getArray("Matrix"),null),g=Rt(s.getArray("BBox"),null),!s.has("OC")){e.next=7;break}return e.next=6,this.parseMarkedContentProps(s.get("OC"),t);case 6:u=e.sent;case 7:if(void 0!==u&&n.addOp(J,["OC",u]),!(h=s.get("Group"))){e.next=28;break}if(l={matrix:c,bbox:g,smask:A,isolated:!1,knockout:!1},I=h.get("S"),f=null,!Ke(I,"Transparency")){e.next=26;break}if(l.isolated=h.get("I")||!1,l.knockout=h.get("K")||!1,!h.has("CS")){e.next=26;break}if(C=h.getRaw("CS"),!(B=Ur.getCached(C,this.xref,o))){e.next=23;break}f=B,e.next=26;break;case 23:return e.next=25,this.parseColorSpace({cs:C,resources:t,localColorSpaceCache:o});case 25:f=e.sent;case 26:null!=A&&A.backdrop&&(f||(f=Ur.singletons.rgb),A.backdrop=f.getRgb(A.backdrop,0)),n.addOp(76,[l]);case 28:return Q=h?[c,null]:[c,g],n.addOp(74,Q),e.next=32,this.getOperatorList({stream:r,task:i,resources:s.get("Resources")||t,operatorList:n,initialState:a});case 32:n.addOp(75,[]),h&&n.addOp(77,[l]),void 0!==u&&n.addOp(H,[]);case 35:case"end":return e.stop()}}),e,this)}))),function(e,t,r,A,n,i,a){return c.apply(this,arguments)})},{key:"_sendImgData",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],A=t?[t.bitmap||t.data.buffer]:null;return this.parsingType3Font||r?this.handler.send("commonobj",[e,"Image",t],A):this.handler.send("obj",[e,this.pageIndex,"Image",t],A)}},{key:"buildPaintImageXObject",value:(s=Yf(Jf().mark((function e(t){var r,A,n,i,a,o,s,c,g,u,l,h,I,f,C,B,Q,E,d,y,p,v,m,w,b,k,D,S,F,x,R,G=this;return Jf().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.resources,A=t.image,n=t.isInline,i=void 0!==n&&n,a=t.operatorList,o=t.cacheKey,s=t.localImageCache,c=t.localColorSpaceCache,g=A.dict,u=g.objId,l=g.get("W","Width"),h=g.get("H","Height"),l&&"number"==typeof l&&h&&"number"==typeof h){e.next=8;break}return q("Image dimensions are missing, or not numbers."),e.abrupt("return");case 8:if(!(-1!==(I=this.options.maxImageSize)&&l*h>I)){e.next=15;break}if(f="Image exceeded maximum allowed size and was removed.",!this.options.ignoreErrors){e.next=14;break}return q(f),e.abrupt("return");case 14:throw new Error(f);case 15:if(!g.has("OC")){e.next=19;break}return e.next=18,this.parseMarkedContentProps(g.get("OC"),r);case 18:C=e.sent;case 19:if(!g.get("IM","ImageMask")){e.next=47;break}if(E=g.get("I","Interpolate"),d=l+7>>3,y=A.getBytes(d*h),p=g.getArray("D","Decode"),!this.parsingType3Font){e.next=32;break}return(B=Lf.createRawMask({imgArray:y,width:l,height:h,imageIsFromDecodeStream:A instanceof XA,inverseDecode:(null==p?void 0:p[0])>0,interpolate:E})).cached=!!o,Q=[B],a.addImageOps(Y,Q,C),o&&(v={fn:Y,args:Q,optionalContent:C},s.set(o,u,v),u&&this._regionalImageCache.set(null,u,v)),e.abrupt("return");case 32:return e.next=34,Lf.createMask({imgArray:y,width:l,height:h,imageIsFromDecodeStream:A instanceof XA,inverseDecode:(null==p?void 0:p[0])>0,interpolate:E,isOffscreenCanvasSupported:this.options.isOffscreenCanvasSupported});case 34:if(!(B=e.sent).isSingleOpaquePixel){e.next=39;break}return a.addImageOps(90,[],C),o&&(m={fn:90,args:[],optionalContent:C},s.set(o,u,m),u&&this._regionalImageCache.set(null,u,m)),e.abrupt("return");case 39:return w="mask_".concat(this.idFactory.createObjId()),a.addDependency(w),B.dataLen=B.bitmap?B.width*B.height*4:B.data.length,this._sendImgData(w,B),Q=[{data:w,width:B.width,height:B.height,interpolate:B.interpolate,count:1}],a.addImageOps(Y,Q,C),o&&(b={objId:w,fn:Y,args:Q,optionalContent:C},s.set(o,u,b),u&&this._regionalImageCache.set(null,u,b)),e.abrupt("return");case 47:if(!(i&&l+h<200)||g.has("SMask")||g.has("Mask")){e.next=65;break}return e.prev=49,k=new Lf({xref:this.xref,res:r,image:A,isInline:i,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:c}),e.next=53,k.createImageData(!0,!1);case 53:B=e.sent,a.isOffscreenCanvasSupported=this.options.isOffscreenCanvasSupported,a.addImageOps(86,[B],C),e.next=64;break;case 58:if(e.prev=58,e.t0=e.catch(49),D='Unable to decode inline image: "'.concat(e.t0,'".'),this.options.ignoreErrors){e.next=63;break}throw new Error(D);case 63:q(D);case 64:return e.abrupt("return");case 65:if(S="img_".concat(this.idFactory.createObjId()),F=!1,this.parsingType3Font?S="".concat(this.idFactory.getDocId(),"_type3_").concat(S):o&&u&&(F=this.globalImageCache.shouldCache(u,this.pageIndex))&&(W(!i,"Cannot cache an inline image globally."),S="".concat(this.idFactory.getDocId(),"_").concat(S)),a.addDependency(S),Q=[S,l,h],a.addImageOps(P,Q,C),!F){e.next=83;break}if(!this.globalImageCache.hasDecodeFailed(u)){e.next=75;break}return this.globalImageCache.setData(u,{objId:S,fn:P,args:Q,optionalContent:C,byteSize:0}),this._sendImgData(S,null,F),e.abrupt("return");case 75:if(!(l*h>25e4||g.has("SMask")||g.has("Mask"))){e.next=83;break}return e.next=78,this.handler.sendWithPromise("commonobj",[S,"CopyLocalImage",{imageRef:u}]);case 78:if(!(x=e.sent)){e.next=83;break}return this.globalImageCache.setData(u,{objId:S,fn:P,args:Q,optionalContent:C,byteSize:0}),this.globalImageCache.addByteSize(u,x),e.abrupt("return");case 83:Lf.buildImage({xref:this.xref,res:r,image:A,isInline:i,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:c}).then(function(){var e=Yf(Jf().mark((function e(t){return Jf().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.createImageData(!1,G.options.isOffscreenCanvasSupported);case 2:return(B=e.sent).dataLen=B.bitmap?B.width*B.height*4:B.data.length,B.ref=u,F&&G.globalImageCache.addByteSize(u,B.dataLen),e.abrupt("return",G._sendImgData(S,B,F));case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()).catch((function(e){return q('Unable to decode image "'.concat(S,'": "').concat(e,'".')),u&&G.globalImageCache.addDecodeFailed(u),G._sendImgData(S,null,F)})),o&&(R={objId:S,fn:P,args:Q,optionalContent:C},s.set(o,u,R),u&&(this._regionalImageCache.set(null,u,R),F&&this.globalImageCache.setData(u,{objId:S,fn:P,args:Q,optionalContent:C,byteSize:0})));case 85:case"end":return e.stop()}}),e,this,[[49,58]])}))),function(e){return s.apply(this,arguments)})},{key:"handleSMask",value:function(e,t,r,A,n,i){var a=e.get("G"),o={subtype:e.get("S").name,backdrop:e.get("BC")},s=e.get("TR");if(sI(s)){for(var c=this._pdfFunctionFactory.create(s),g=new Uint8Array(256),u=new Float32Array(1),l=0;l<256;l++)u[0]=l/255,c(u,0,u,0),g[l]=255*u[0]|0;o.transferMap=g}return this.buildFormXObject(t,a,o,r,A,n.state.clone(),i)}},{key:"handleTransferFunction",value:function(e){var t;if(Array.isArray(e))t=e;else{if(!sI(e))return null;t=[e]}var r,A=[],n=0,i=0,a=jf(t);try{for(a.s();!(r=a.n()).done;){var o=r.value,s=this.xref.fetchIfRef(o);if(n++,Ke(s,"Identity"))A.push(null);else{if(!sI(s))return null;for(var c=this._pdfFunctionFactory.create(s),g=new Uint8Array(256),u=new Float32Array(1),l=0;l<256;l++)u[0]=l/255,c(u,0,u,0),g[l]=255*u[0]|0;A.push(g),i++}}}catch(e){a.e(e)}finally{a.f()}return 1!==n&&4!==n||0===i?null:A}},{key:"handleTilingType",value:function(e,t,r,A,n,i,a,o){var s=this,c=new kf,g=He.merge({xref:this.xref,dictArray:[n.get("Resources"),r]});return this.getOperatorList({stream:A,task:a,resources:g,operatorList:c}).then((function(){var r=c.getIR(),A=Bl(r,n,t);i.addDependencies(c.dependencies),i.addOp(e,A),n.objId&&o.set(null,n.objId,{operatorListIR:r,dict:n})})).catch((function(e){if(!(e instanceof Ae)){if(!s.options.ignoreErrors)throw e;q('handleTilingType - ignoring pattern: "'.concat(e,'".'))}}))}},{key:"handleSetFont",value:(o=Yf(Jf().mark((function e(t,r,A,n,i,a){var o,s,c,g,u=arguments;return Jf().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=u.length>6&&void 0!==u[6]?u[6]:null,s=u.length>7&&void 0!==u[7]?u[7]:null,c=(null==r?void 0:r[0])instanceof Ue?r[0].name:null,e.next=5,this.loadFont(c,A,t,o,s);case 5:if(!(g=e.sent).font.isType3Font){e.next=16;break}return e.prev=7,e.next=10,g.loadType3Data(this,t,i);case 10:n.addDependencies(g.type3Dependencies),e.next=16;break;case 13:e.prev=13,e.t0=e.catch(7),g=new tC({loadedName:"g_font_error",font:new _u("Type3 font load error: ".concat(e.t0)),dict:g.font,evaluatorOptions:this.options});case 16:return a.font=g.font,g.send(this.handler),e.abrupt("return",g.loadedName);case 19:case"end":return e.stop()}}),e,this,[[7,13]])}))),function(e,t,r,A,n,i){return o.apply(this,arguments)})},{key:"handleText",value:function(t,r){var A=r.font,n=A.charsToGlyphs(t);return A.data&&(4&r.textRenderingMode||"Pattern"===r.fillColorSpace.name||A.disableFontFace||this.options.disableFontFace)&&e.buildFontPaths(A,n,this.handler,this.options),n}},{key:"ensureStateFont",value:function(e){if(!e.font){var t=new re("Missing setFont (Tf) operator before text rendering operator.");if(!this.options.ignoreErrors)throw t;q('ensureStateFont: "'.concat(t,'".'))}}},{key:"setGState",value:(a=Yf(Jf().mark((function e(t){var r,A,n,i,a,o,s,c,g,u,l,h,I,f,C,B=this;return Jf().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=t.resources,A=t.gState,n=t.operatorList,i=t.cacheKey,a=t.task,o=t.stateManager,s=t.localGStateCache,c=t.localColorSpaceCache,g=A.objId,u=!0,l=[],h=Promise.resolve(),I=jf(A.getKeys()),e.prev=6,C=Jf().mark((function e(){var t,i,s;return Jf().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=f.value,i=A.get(t),e.t0=t,e.next="Type"===e.t0?5:"LW"===e.t0||"LC"===e.t0||"LJ"===e.t0||"ML"===e.t0||"D"===e.t0||"RI"===e.t0||"FL"===e.t0||"CA"===e.t0||"ca"===e.t0?6:"Font"===e.t0?8:"BM"===e.t0?11:"SMask"===e.t0?13:"TR"===e.t0?18:"OP"===e.t0||"op"===e.t0||"OPM"===e.t0||"BG"===e.t0||"BG2"===e.t0||"UCR"===e.t0||"UCR2"===e.t0||"TR2"===e.t0||"HT"===e.t0||"SM"===e.t0||"SA"===e.t0||"AIS"===e.t0||"TK"===e.t0?21:23;break;case 5:return e.abrupt("break",25);case 6:return l.push([t,i]),e.abrupt("break",25);case 8:return u=!1,h=h.then((function(){return B.handleSetFont(r,null,i[0],n,a,o.state).then((function(e){n.addDependency(e),l.push([t,[e,i[1]]])}))})),e.abrupt("break",25);case 11:return l.push([t,Vf(i)]),e.abrupt("break",25);case 13:if(!Ke(i,"None")){e.next=16;break}return l.push([t,!1]),e.abrupt("break",25);case 16:return i instanceof He?(u=!1,h=h.then((function(){return B.handleSMask(i,r,n,a,o,c)})),l.push([t,!0])):q("Unsupported SMask type"),e.abrupt("break",25);case 18:return s=B.handleTransferFunction(i),l.push([t,s]),e.abrupt("break",25);case 21:return T("graphic state operator "+t),e.abrupt("break",25);case 23:return T("Unknown graphic state operator "+t),e.abrupt("break",25);case 25:case"end":return e.stop()}}),e)})),I.s();case 9:if((f=I.n()).done){e.next=13;break}return e.delegateYield(C(),"t0",11);case 11:e.next=9;break;case 13:e.next=18;break;case 15:e.prev=15,e.t1=e.catch(6),I.e(e.t1);case 18:return e.prev=18,I.f(),e.finish(18);case 21:return e.next=23,h;case 23:l.length>0&&n.addOp(9,[l]),u&&s.set(i,g,l);case 25:case"end":return e.stop()}}),e,null,[[6,15,18,21]])}))),function(e){return a.apply(this,arguments)})},{key:"loadFont",value:function(t,r,A){var n,i,a=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,c=function(){var e=Yf(Jf().mark((function e(){return Jf().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new tC({loadedName:"g_font_error",font:new _u('Font "'.concat(t,'" is not available.')),dict:r,evaluatorOptions:a.options}));case 1:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();if(r)r instanceof Ye&&(i=r);else{var g=A.get("Font");g&&(i=g.getRaw(t))}if(i){var u;if(null!==(u=this.type3FontRefs)&&void 0!==u&&u.has(i))return c();if(this.fontCache.has(i))return this.fontCache.get(i);try{r=this.xref.fetchIfRef(i)}catch(e){q('loadFont - lookup failed: "'.concat(e,'".'))}}if(!(r instanceof He)){if(!this.options.ignoreErrors&&!this.parsingType3Font)return q('Font "'.concat(t,'" is not available.')),c();q('Font "'.concat(t,'" is not available -- attempting to fallback to a default font.')),r=o||e.fallbackFontDict}if(r.cacheKey&&this.fontCache.has(r.cacheKey))return this.fontCache.get(r.cacheKey);var l,h=Promise.withResolvers(),I=h.promise,f=h.resolve;try{(l=this.preEvaluateFont(r)).cssFontInfo=s}catch(e){return q('loadFont - preEvaluateFont failed: "'.concat(e,'".')),c()}var C,B=l,Q=B.descriptor,E=B.hash,d=i instanceof Ye;if(E&&Q instanceof He){var y=Q.fontAliases||(Q.fontAliases=Object.create(null));if(y[E]){var p=y[E].aliasRef;if(d&&p&&this.fontCache.has(p))return this.fontCache.putAlias(i,p),this.fontCache.get(i)}else y[E]={fontID:this.idFactory.createFontId()};d&&(y[E].aliasRef=i),C=y[E].fontID}else C=this.idFactory.createFontId();return W(null===(n=C)||void 0===n?void 0:n.startsWith("f"),'The "fontID" must be (correctly) defined.'),d?this.fontCache.put(i,I):(r.cacheKey="cacheKey_".concat(C),this.fontCache.put(r.cacheKey,I)),r.loadedName="".concat(this.idFactory.getDocId(),"_").concat(C),this.translateFont(l).then((function(e){f(new tC({loadedName:r.loadedName,font:e,dict:r,evaluatorOptions:a.options}))})).catch((function(e){q('loadFont - translateFont failed: "'.concat(e,'".')),f(new tC({loadedName:r.loadedName,font:new _u(e instanceof Error?e.message:e),dict:r,evaluatorOptions:a.options}))})),I}},{key:"buildPath",value:function(e,t,r){var A=arguments.length>3&&void 0!==arguments[3]&&arguments[3],n=e.length-1;if(r||(r=[]),n<0||91!==e.fnArray[n]){var i;switch(A&&(q('Encountered path operator "'.concat(t,'" inside of a text object.')),e.addOp(x,null)),t){case 19:var a=r[0]+r[2],o=r[1]+r[3];i=[Math.min(r[0],a),Math.min(r[1],o),Math.max(r[0],a),Math.max(r[1],o)];break;case 13:case 14:i=[r[0],r[1],r[0],r[1]];break;default:i=[1/0,1/0,-1/0,-1/0]}e.addOp(91,[[t],r,i]),A&&e.addOp(R,null)}else{var s,c=e.argsArray[n];c[0].push(t),(s=c[1]).push.apply(s,Mf(r));var g=c[2];switch(t){case 19:var u=r[0]+r[2],l=r[1]+r[3];g[0]=Math.min(g[0],r[0],u),g[1]=Math.min(g[1],r[1],l),g[2]=Math.max(g[2],r[0],u),g[3]=Math.max(g[3],r[1],l);break;case 13:case 14:g[0]=Math.min(g[0],r[0]),g[1]=Math.min(g[1],r[1]),g[2]=Math.max(g[2],r[0]),g[3]=Math.max(g[3],r[1])}}}},{key:"parseColorSpace",value:function(e){var t=this,r=e.cs,A=e.resources,n=e.localColorSpaceCache;return Ur.parseAsync({cs:r,xref:this.xref,resources:A,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:n}).catch((function(e){if(e instanceof Ae)return null;if(t.options.ignoreErrors)return q('parseColorSpace - ignoring ColorSpace: "'.concat(e,'".')),null;throw e}))}},{key:"parseShading",value:function(e){var t,r=e.shading,A=e.resources,n=e.localColorSpaceCache,i=e.localShadingPatternCache,a=i.get(r);if(a)return a;try{t=cl.parseShading(r,this.xref,A,this._pdfFunctionFactory,n).getIR()}catch(e){if(e instanceof Ae)return null;if(this.options.ignoreErrors)return q('parseShading - ignoring shading: "'.concat(e,'".')),i.set(r,null),null;throw e}return a="pattern_".concat(this.idFactory.createObjId()),this.parsingType3Font&&(a="".concat(this.idFactory.getDocId(),"_type3_").concat(a)),i.set(r,a),this.parsingType3Font?this.handler.send("commonobj",[a,"Pattern",t]):this.handler.send("obj",[a,this.pageIndex,"Pattern",t]),a}},{key:"handleColorN",value:function(e,t,r,A,n,i,a,o,s,c){var g=r.pop();if(g instanceof Ue){var u=n.getRaw(g.name),l=u instanceof Ye&&s.getByRef(u);if(l)try{var h=A.base?A.base.getRgb(r,0):null,I=Bl(l.operatorListIR,l.dict,h);return void e.addOp(t,I)}catch(e){}var f=this.xref.fetchIfRef(u);if(f){var C=f instanceof ze?f.dict:f,B=C.get("PatternType");if(1===B){var Q=A.base?A.base.getRgb(r,0):null;return this.handleTilingType(t,Q,i,f,C,e,a,s)}if(2===B){var E=C.get("Shading"),d=this.parseShading({shading:E,resources:i,localColorSpaceCache:o,localShadingPatternCache:c});if(d){var y=Ft(C.getArray("Matrix"),null);e.addOp(t,["Shading",d,y])}return}throw new re("Unknown PatternType: ".concat(B))}}throw new re("Unknown PatternName: ".concat(g))}},{key:"_parseVisibilityExpression",value:function(e,t,r){if(++t>10)q("Visibility expression is too deeply nested");else{var A=e.length,n=this.xref.fetchIfRef(e[0]);if(!(A<2)&&n instanceof Ue){switch(n.name){case"And":case"Or":case"Not":r.push(n.name);break;default:return void q("Invalid operator ".concat(n.name," in visibility expression"))}for(var i=1;i0)){e.next=22;break}return e.abrupt("return",{type:"OCMD",expression:s});case 22:if(c=n.get("OCGs"),!(Array.isArray(c)||c instanceof He)){e.next=29;break}if(g=[],Array.isArray(c)){u=jf(c);try{for(u.s();!(l=u.n()).done;)h=l.value,g.push(h.toString())}catch(e){u.e(e)}finally{u.f()}}else g.push(c.objId);return e.abrupt("return",{type:a,ids:g,policy:n.get("P")instanceof Ue?n.get("P").name:null,expression:null});case 29:if(!(c instanceof Ye)){e.next=31;break}return e.abrupt("return",{type:a,id:c.toString()});case 31:return e.abrupt("return",null);case 32:case"end":return e.stop()}}),e,this)}))),function(e,t){return i.apply(this,arguments)})},{key:"getOperatorList",value:function(e){var t=this,r=e.stream,A=e.task,n=e.resources,i=e.operatorList,a=e.initialState,o=void 0===a?null:a,s=e.fallbackFontDict,c=void 0===s?null:s;if(n||(n=He.empty),o||(o=new nC),!i)throw new Error('getOperatorList: missing "operatorList" parameter');var g=this,u=this.xref,l=!1,h=new Lh,I=new Uh,f=new Jh,C=new Hh,B=new Map,Q=n.get("XObject")||He.empty,E=n.get("Pattern")||He.empty,d=new rC(o),y=new iC(r,u,d),p=new $f;function v(e){for(var t=0,r=y.savedStatesDepth;t0&&i.addOp(9,[$]),S=null;continue}}return void a(new Promise((function(e,t){if(!k)throw new re("GState must be referred to by name.");var r=n.get("ExtGState");if(!(r instanceof He))throw new re("ExtGState should be a dictionary.");var a=r.get(b);if(!(a instanceof He))throw new re("GState should be a dictionary.");g.setGState({resources:n,gState:a,operatorList:i,cacheKey:b,task:A,stateManager:d,localGStateCache:f,localColorSpaceCache:I}).then(e,t)})).catch((function(e){if(!(e instanceof Ae)){if(!g.options.ignoreErrors)throw e;q('getOperatorList - ignoring ExtGState: "'.concat(e,'".'))}})));case 13:case 14:case 15:case 16:case 17:case 18:case 19:g.buildPath(i,F,S,l);continue;case 67:case 68:case 72:case 73:continue;case J:if(!(S[0]instanceof Ue)){q("Expected name for beginMarkedContentProps arg0=".concat(S[0])),i.addOp(J,["OC",null]);continue}if("OC"===S[0].name)return void a(g.parseMarkedContentProps(S[1],n).then((function(e){i.addOp(J,["OC",e])})).catch((function(e){if(!(e instanceof Ae)){if(g.options.ignoreErrors)return q('getOperatorList - ignoring beginMarkedContentProps: "'.concat(e,'".')),void i.addOp(J,["OC",null]);throw e}})));S=[S[0].name,S[1]instanceof He?S[1].get("MCID"):null];break;default:if(null!==S){for(s=0,m=S.length;s0&&(t[3]*=r*F.fontMatrix[3])}return ge.transform(F.ctm,ge.transform(F.textMatrix,t))}function z(){if(m.initialized)return m;var e=F,t=e.font,r=e.loadedName;if(!u.has(r)&&(u.add(r),v.styles[r]={fontFamily:t.fallbackName,ascent:t.ascent,descent:t.descent,vertical:t.vertical},O.options.fontExtraProperties&&t.systemFontInfo)){var A=v.styles[r];A.fontSubstitution=t.systemFontInfo.css,A.fontSubstitutionLoadedName=t.systemFontInfo.loadedName}m.fontName=r;var n=m.transform=V();t.vertical?(m.width=m.totalWidth=Math.hypot(n[0],n[1]),m.height=m.totalHeight=0,m.vertical=!0):(m.width=m.totalWidth=0,m.height=m.totalHeight=Math.hypot(n[2],n[3]),m.vertical=!1);var i=Math.hypot(F.textLineMatrix[0],F.textLineMatrix[1]),a=Math.hypot(F.ctm[0],F.ctm[1]);m.textAdvanceScale=a*i;var o=F.fontSize;return m.trackingSpaceMin=o*x,m.notASpace=o*G,m.negativeSpaceMax=o*U,m.spaceInFlowMin=o*M,m.spaceInFlowMax=o*Y,m.hasEOL=!1,m.initialized=!0,m}function $(){if(m.initialized){var e=Math.hypot(F.textLineMatrix[0],F.textLineMatrix[1]),t=Math.hypot(F.ctm[0],F.ctm[1])*e;t!==m.textAdvanceScale&&(m.vertical?(m.totalHeight+=m.height*m.textAdvanceScale,m.height=0):(m.totalWidth+=m.width*m.textAdvanceScale,m.width=0),m.textAdvanceScale=t)}}function ee(e,t){return te.apply(this,arguments)}function te(){return(te=Yf(Jf().mark((function e(t,r){var i;return Jf().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,O.loadFont(t,r,n);case 2:if(!(i=e.sent).font.isType3Font){e.next=11;break}return e.prev=4,e.next=7,i.loadType3Data(O,n,A);case 7:e.next=11;break;case 9:e.prev=9,e.t0=e.catch(4);case 11:F.loadedName=i.loadedName,F.font=i.font,F.fontMatrix=i.font.fontMatrix||B;case 14:case"end":return e.stop()}}),e,null,[[4,9]])})))).apply(this,arguments)}function ne(e,t,r){var A=Math.hypot(r[0],r[1]);return[(r[0]*e+r[1]*t)/A,(r[2]*e+r[3]*t)/A]}function ie(e){var t,r=V(),A=r[4],n=r[5];if(null!==(t=F.font)&&void 0!==t&&t.vertical){if(Al[2]||n+el[3])return!1}else if(A+el[2]||nl[3])return!1;if(!F.font||!m.prevTransform)return!0;var i=m.prevTransform[4],a=m.prevTransform[5];if(i===A&&a===n)return!0;var o=-1;switch(r[0]&&0===r[1]&&0===r[2]?o=r[0]>0?0:180:r[1]&&0===r[0]&&0===r[3]&&(o=r[1]>0?90:270),o){case 0:break;case 90:var s=[n,A];A=s[0],n=s[1];var c=[a,i];i=c[0],a=c[1];break;case 180:var g=[-A,-n,-i,-a];A=g[0],n=g[1],i=g[2],a=g[3];break;case 270:var u=[-n,-A];A=u[0],n=u[1];var h=[-a,-i];i=h[0],a=h[1];break;default:var I=Uf(ne(A,n,r),2);A=I[0],n=I[1];var f=Uf(ne(i,a,m.prevTransform),2);i=f[0],a=f[1]}if(F.font.vertical){var C=(a-n)/m.textAdvanceScale,B=A-i,Q=Math.sign(m.height);return C.5*m.width?(oe(),!0):(S(),ce(),!0):Math.abs(B)>m.width?(oe(),!0):(C<=Q*m.notASpace&&S(),C<=Q*m.trackingSpaceMin?D()?(S(),ce(),X({height:Math.abs(C)})):m.height+=C:se(C,m.prevTransform,Q)||(0===m.str.length?(S(),X({height:Math.abs(C)})):m.height+=C),Math.abs(B)>m.width*P&&ce(),!0)}var E=(A-i)/m.textAdvanceScale,d=n-a,y=Math.sign(m.width);return E.5*m.height?(oe(),!0):(S(),ce(),!0):Math.abs(d)>m.height?(oe(),!0):(E<=y*m.notASpace&&S(),E<=y*m.trackingSpaceMin?D()?(S(),ce(),X({width:Math.abs(E)})):m.width+=E:se(E,m.prevTransform,y)||(0===m.str.length?(S(),X({width:Math.abs(E)})):m.width+=E),Math.abs(d)>m.height*P&&ce(),!0)}function ae(e){var t=e.chars,r=e.extraSpacing,A=F.font;if(!t){var n=F.charSpacing+r;return n&&(A.vertical?F.translateTextMatrix(0,-n):F.translateTextMatrix(n*F.textHScale,0)),void(p&&ie(0))}for(var i=A.charsToGlyphs(t),a=F.fontMatrix[0]*F.fontSize,o=0,s=i.length;o0&&void 0!==arguments[0]&&arguments[0],t=v.items.length;0!==t&&(e&&t<10||(c.enqueue(v,t),v.items=[],v.styles=Object.create(null)))}var le=new $f;return new Promise((function e(t,r){var i=function(A){ue(!0),Promise.all([A,c.ready]).then((function(){try{e(t,r)}catch(e){r(e)}}),r)};A.ensureNotTerminated(),le.reset();for(var o,g={},h=[];!(o=le.check())&&(h.length=0,g.args=h,_.read(g));){var f=F;F=a.state;var B=g.fn;switch(h=g.args,0|B){case N:var E=h[0].name,y=h[1];if(F.font&&E===F.fontName&&y===F.fontSize)break;return ce(),F.fontName=E,F.fontSize=y,void i(ee(E,null));case 39:F.textRise=h[0];break;case 35:F.textHScale=h[0]/100;break;case 36:F.leading=h[0];break;case 40:F.translateTextLineMatrix(h[0],h[1]),F.textMatrix=F.textLineMatrix.slice();break;case 41:F.leading=-h[1],F.translateTextLineMatrix(h[0],h[1]),F.textMatrix=F.textLineMatrix.slice();break;case 43:F.carriageReturn();break;case 42:F.setTextMatrix(h[0],h[1],h[2],h[3],h[4],h[5]),F.setTextLineMatrix(h[0],h[1],h[2],h[3],h[4],h[5]),$();break;case 33:F.charSpacing=h[0];break;case 34:F.wordSpacing=h[0];break;case 31:F.textMatrix=C.slice(),F.textLineMatrix=C.slice();break;case 45:if(!a.state.font){O.ensureStateFont(a.state);continue}for(var m=(F.font.vertical?1:-1)*F.fontSize/1e3,w=h[0],b=0,k=w.length;b0){var x=T.join("");T.length=0,ae({chars:x,extraSpacing:0})}break;case L:if(!a.state.font){O.ensureStateFont(a.state);continue}ae({chars:h[0],extraSpacing:0});break;case 46:if(!a.state.font){O.ensureStateFont(a.state);continue}F.carriageReturn(),ae({chars:h[0],extraSpacing:0});break;case 47:if(!a.state.font){O.ensureStateFont(a.state);continue}F.wordSpacing=h[0],F.charSpacing=h[1],F.carriageReturn(),ae({chars:h[2],extraSpacing:0});break;case 66:ce(),j||(j=n.get("XObject")||He.empty);var G=h[0]instanceof Ue,U=h[0].name;if(G&&W.getByName(U))break;return void i(new Promise((function(e,t){if(!G)throw new re("XObject must be referred to by name.");var r=j.getRaw(U);if(r instanceof Ye){if(W.getByRef(r))return void e();if(O.globalImageCache.getData(r,O.pageIndex))return void e();r=K.fetch(r)}if(!(r instanceof ze))throw new re("XObject should be a stream");var i=r.dict.get("Subtype");if(!(i instanceof Ue))throw new re("XObject should have a Name subtype");if("Form"!==i.name)return W.set(U,r.dict.objId,!0),void e();var o=a.state.clone(),g=new rC(o),h=Ft(r.dict.getArray("Matrix"),null);h&&g.transform(h),ue();var f={enqueueInvoked:!1,enqueue(e,t){this.enqueueInvoked=!0,c.enqueue(e,t)},get desiredSize(){return c.desiredSize},get ready(){return c.ready}};O.getTextContent({stream:r,task:A,resources:r.dict.get("Resources")||n,stateManager:g,includeMarkedContent:s,sink:f,seenStyles:u,viewBox:l,lang:I,markedContentData:Q,disableNormalization:d,keepWhiteSpace:p}).then((function(){f.enqueueInvoked||W.set(U,r.dict.objId,!0),e()}),t)})).catch((function(e){if(!(e instanceof Ae)){if(!O.options.ignoreErrors)throw e;q('getTextContent - ignoring XObject: "'.concat(e,'".'))}})));case 9:if(G=h[0]instanceof Ue,U=h[0].name,G&&Z.getByName(U))break;return void i(new Promise((function(e,t){if(!G)throw new re("GState must be referred to by name.");var r=n.get("ExtGState");if(!(r instanceof He))throw new re("ExtGState should be a dictionary.");var A=r.get(U);if(!(A instanceof He))throw new re("GState should be a dictionary.");var i=A.get("Font");if(!i)return Z.set(U,A.objId,!0),void e();ce(),F.fontName=null,F.fontSize=i[1],ee(null,i[0]).then(e,t)})).catch((function(e){if(!(e instanceof Ae)){if(!O.options.ignoreErrors)throw e;q('getTextContent - ignoring ExtGState: "'.concat(e,'".'))}})));case 69:ce(),s&&(Q.level++,v.items.push({type:"beginMarkedContent",tag:h[0]instanceof Ue?h[0].name:null}));break;case J:if(ce(),s){Q.level++;var M=null;h[1]instanceof He&&(M=h[1].get("MCID")),v.items.push({type:"beginMarkedContentProps",id:Number.isInteger(M)?"".concat(O.idFactory.getPageObjId(),"_mc").concat(M):null,tag:h[0]instanceof Ue?h[0].name:null})}break;case H:if(ce(),s){if(0===Q.level)break;Q.level--,v.items.push({type:"endMarkedContent"})}break;case R:!f||f.font===F.font&&f.fontSize===F.fontSize&&f.fontName===F.fontName||ce()}if(v.items.length>=c.desiredSize){o=!0;break}}o?i(Xf):(ce(),ue(),t())})).catch((function(e){if(!(e instanceof Ae)){if(t.options.ignoreErrors)return q('getTextContent - ignoring errors during "'.concat(A.name,'" ')+'task: "'.concat(e,'".')),ce(),void ue();throw e}}))}},{key:"extractDataStructures",value:(n=Yf(Jf().mark((function e(t,r){var A,n,i,a,o,s,c,g,u,l,h,I,f,C,B,Q,E,d,y,p;return Jf().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A=this.xref,i=this.readToUnicode(r.toUnicode),!r.composite){e.next=15;break}(a=t.get("CIDSystemInfo"))instanceof He&&(r.cidSystemInfo={registry:Ie(a.get("Registry")),ordering:Ie(a.get("Ordering")),supplement:a.get("Supplement")}),e.prev=5,(o=t.get("CIDToGIDMap"))instanceof ze&&(n=o.getBytes()),e.next=15;break;case 10:if(e.prev=10,e.t0=e.catch(5),this.options.ignoreErrors){e.next=14;break}throw e.t0;case 14:q('extractDataStructures - ignoring CIDToGIDMap data: "'.concat(e.t0,'".'));case 15:if(s=[],c=null,!t.has("Encoding")){e.next=61;break}if(!((g=t.get("Encoding"))instanceof He)){e.next=52;break}if(c=(c=g.get("BaseEncoding"))instanceof Ue?c.name:null,!g.has("Differences")){e.next=50;break}u=g.get("Differences"),l=0,h=jf(u),e.prev=26,h.s();case 28:if((I=h.n()).done){e.next=42;break}if(f=I.value,"number"!=typeof(C=A.fetchIfRef(f))){e.next=35;break}l=C,e.next=40;break;case 35:if(!(C instanceof Ue)){e.next=39;break}s[l++]=C.name,e.next=40;break;case 39:throw new re("Invalid entry in 'Differences' array: ".concat(C));case 40:e.next=28;break;case 42:e.next=47;break;case 44:e.prev=44,e.t1=e.catch(26),h.e(e.t1);case 47:return e.prev=47,h.f(),e.finish(47);case 50:e.next=60;break;case 52:if(!(g instanceof Ue)){e.next=56;break}c=g.name,e.next=60;break;case 56:if(B="Encoding is not a Name nor a Dict",this.options.ignoreErrors){e.next=59;break}throw new re(B);case 59:q(B);case 60:"MacRomanEncoding"!==c&&"MacExpertEncoding"!==c&&"WinAnsiEncoding"!==c&&(c=null);case 61:return Q=!r.file||r.isInternalFont,E=Fc()[r.name],c&&Q&&E&&(c=null),c?r.defaultEncoding=Rs(c):(d=!!(4&r.flags),y=!!(32&r.flags),g=Ds,"TrueType"!==r.type||y||(g=Ss),(d||E)&&(g=ks,Q&&(/Symbol/i.test(r.name)?g=Fs:/Dingbats/i.test(r.name)?g=xs:/Wingdings/i.test(r.name)&&(g=Ss))),r.defaultEncoding=g),r.differences=s,r.baseEncodingName=c,r.hasEncoding=!!c||s.length>0,r.dict=t,e.next=70,i;case 70:return r.toUnicode=e.sent,e.next=73,this.buildToUnicode(r);case 73:return p=e.sent,r.toUnicode=p,n&&(r.cidToGidMap=this.readCidToGidMap(n,p)),e.abrupt("return",r);case 77:case"end":return e.stop()}}),e,this,[[5,10],[26,44,47,50]])}))),function(e,t){return n.apply(this,arguments)})},{key:"_simpleFontToUnicode",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];W(!e.composite,"Must be a simple font.");var r=[],A=e.defaultEncoding.slice(),n=e.baseEncodingName,i=e.differences;for(var a in i){var o=i[a];".notdef"!==o&&(A[a]=o)}var s=lc();for(var c in A){var g=A[c];if(""!==g){var u=s[g];if(void 0===u){var l=0;switch(g[0]){case"G":3===g.length&&(l=parseInt(g.substring(1),16));break;case"g":5===g.length&&(l=parseInt(g.substring(1),16));break;case"C":case"c":if(g.length>=3&&g.length<=4){var h=g.substring(1);if(t){l=parseInt(h,16);break}if(l=+h,Number.isNaN(l)&&Number.isInteger(parseInt(h,16)))return this._simpleFontToUnicode(e,!0)}break;case"u":-1!==(u=fc(g,s))&&(l=u);break;default:switch(g){case"f_h":case"f_t":case"T_h":r[c]=g.replaceAll("_","");continue}}if(l>0&&l<=1114111&&Number.isInteger(l)){if(n&&l===+c){var I=Rs(n);if(I&&(g=I[c])){r[c]=String.fromCharCode(s[g]);continue}}r[c]=String.fromCodePoint(l)}}else r[c]=String.fromCharCode(u)}}return r}},{key:"buildToUnicode",value:(A=Yf(Jf().mark((function e(t){var r,A,n,i,a,o,s,c,g;return Jf().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.hasIncludedToUnicodeMap=(null===(r=t.toUnicode)||void 0===r?void 0:r.length)>0,!t.hasIncludedToUnicodeMap){e.next=4;break}return!t.composite&&t.hasEncoding&&(t.fallbackToUnicode=this._simpleFontToUnicode(t)),e.abrupt("return",t.toUnicode);case 4:if(t.composite){e.next=6;break}return e.abrupt("return",new Yc(this._simpleFontToUnicode(t)));case 6:if(!t.composite||(!t.cMap.builtInCMap||t.cMap instanceof ns)&&("Adobe"!==(null===(A=t.cidSystemInfo)||void 0===A?void 0:A.registry)||"GB1"!==t.cidSystemInfo.ordering&&"CNS1"!==t.cidSystemInfo.ordering&&"Japan1"!==t.cidSystemInfo.ordering&&"Korea1"!==t.cidSystemInfo.ordering)){e.next=15;break}return n=t.cidSystemInfo,i=n.registry,a=n.ordering,o=Ue.get("".concat(i,"-").concat(a,"-UCS2")),e.next=11,ys.create({encoding:o,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null});case 11:return s=e.sent,c=[],g=[],t.cMap.forEach((function(e,t){if(t>65535)throw new re("Max size of CID is 65,535");var r=s.lookup(t);if(r){g.length=0;for(var A=0,n=r.length;A>1;(0!==i||t.has(a))&&(r[a]=i)}return r}},{key:"extractWidths",value:function(e,t,r){var A,n=this.xref,i=[],a=0,o=[];if(r.composite){var s=e.get("DW");a="number"==typeof s?Math.ceil(s):1e3;var c=e.get("W");if(Array.isArray(c))for(var g=0,u=c.length;g1&&void 0!==arguments[1]?arguments[1]:NaN,r=ge.normalizeRect(e.argsArray[0].slice(2)),A=r[2]-r[0],n=r[3]-r[1],i=Math.hypot(A,n);0===A||0===n?(e.fnArray.splice(0,1),e.argsArray.splice(0,1)):(0===t||Math.round(i/t)>=10)&&(this._bbox||(this._bbox=[1/0,1/0,-1/0,-1/0]),this._bbox[0]=Math.min(this._bbox[0],r[0]),this._bbox[1]=Math.min(this._bbox[1],r[1]),this._bbox[2]=Math.max(this._bbox[2],r[2]),this._bbox[3]=Math.max(this._bbox[3],r[3]));for(var a=0,o=e.length;a0&&void 0!==arguments[0]?arguments[0]:new nC;Pf(this,e),this.state=t,this.stateStack=[]}),[{key:"save",value:function(){var e=this.state;this.stateStack.push(this.state),this.state=e.clone()}},{key:"restore",value:function(){var e=this.stateStack.pop();e&&(this.state=e)}},{key:"transform",value:function(e){this.state.ctm=ge.transform(this.state.ctm,e)}}])}(),AC=function(){return Kf((function e(){Pf(this,e),this.ctm=new Float32Array(C),this.fontName=null,this.fontSize=0,this.loadedName=null,this.font=null,this.fontMatrix=B,this.textMatrix=C.slice(),this.textLineMatrix=C.slice(),this.charSpacing=0,this.wordSpacing=0,this.leading=0,this.textHScale=1,this.textRise=0}),[{key:"setTextMatrix",value:function(e,t,r,A,n,i){var a=this.textMatrix;a[0]=e,a[1]=t,a[2]=r,a[3]=A,a[4]=n,a[5]=i}},{key:"setTextLineMatrix",value:function(e,t,r,A,n,i){var a=this.textLineMatrix;a[0]=e,a[1]=t,a[2]=r,a[3]=A,a[4]=n,a[5]=i}},{key:"translateTextMatrix",value:function(e,t){var r=this.textMatrix;r[4]=r[0]*e+r[2]*t+r[4],r[5]=r[1]*e+r[3]*t+r[5]}},{key:"translateTextLineMatrix",value:function(e,t){var r=this.textLineMatrix;r[4]=r[0]*e+r[2]*t+r[4],r[5]=r[1]*e+r[3]*t+r[5]}},{key:"carriageReturn",value:function(){this.translateTextLineMatrix(0,-this.leading),this.textMatrix=this.textLineMatrix.slice()}},{key:"clone",value:function(){var e=Object.create(this);return e.textMatrix=this.textMatrix.slice(),e.textLineMatrix=this.textLineMatrix.slice(),e.fontMatrix=this.fontMatrix.slice(),e}}])}(),nC=function(){return Kf((function e(){Pf(this,e),this.ctm=new Float32Array(C),this.font=null,this.textRenderingMode=0,this._fillColorSpace=Ur.singletons.gray,this._strokeColorSpace=Ur.singletons.gray,this.patternFillColorSpace=null,this.patternStrokeColorSpace=null}),[{key:"fillColorSpace",get:function(){return this._fillColorSpace},set:function(e){this._fillColorSpace=this.patternFillColorSpace=e}},{key:"strokeColorSpace",get:function(){return this._strokeColorSpace},set:function(e){this._strokeColorSpace=this.patternStrokeColorSpace=e}},{key:"clone",value:function(){return Object.create(this)}}])}(),iC=function(){function e(t,r){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new rC;Pf(this,e),this.parser=new Jo({lexer:new Oo(t,e.opMap),xref:r}),this.stateManager=A,this.nonProcessedArgs=[],this._isPathOp=!1,this._numInvalidPathOPS=0}return Kf(e,[{key:"savedStatesDepth",get:function(){return this.stateManager.stateStack.length}},{key:"read",value:function(t){for(var r=t.args;;){var A=this.parser.getObj();if(A instanceof Me){var n=A.cmd,i=e.opMap[n];if(!i){q('Unknown command "'.concat(n,'".'));continue}var a=i.id,o=i.numArgs,s=null!==r?r.length:0;if(this._isPathOp||(this._numInvalidPathOPS=0),this._isPathOp=a>=13&&a<=28,i.variableArgs)s>o&&T("Command ".concat(n,": expected [0, ").concat(o,"] args, ")+"but received ".concat(s," args."));else{if(s!==o){for(var c=this.nonProcessedArgs;s>o;)c.push(r.shift()),s--;for(;se.MAX_INVALID_PATH_OPS)throw new re("Invalid ".concat(g));q("Skipping ".concat(g)),null!==r&&(r.length=0);continue}}return this.preprocessCommand(a,r),t.fn=a,t.args=r,!0}if(A===Re)return!1;if(null!==A&&(null===r&&(r=[]),r.push(A),r.length>33))throw new re("Too many arguments")}}},{key:"preprocessCommand",value:function(e,t){switch(0|e){case x:this.stateManager.save();break;case R:this.stateManager.restore();break;case G:this.stateManager.transform(t)}}}],[{key:"opMap",get:function(){return _(this,"opMap",Object.assign(Object.create(null),{w:{id:2,numArgs:1,variableArgs:!1},J:{id:3,numArgs:1,variableArgs:!1},j:{id:4,numArgs:1,variableArgs:!1},M:{id:5,numArgs:1,variableArgs:!1},d:{id:6,numArgs:2,variableArgs:!1},ri:{id:7,numArgs:1,variableArgs:!1},i:{id:8,numArgs:1,variableArgs:!1},gs:{id:9,numArgs:1,variableArgs:!1},q:{id:x,numArgs:0,variableArgs:!1},Q:{id:R,numArgs:0,variableArgs:!1},cm:{id:G,numArgs:6,variableArgs:!1},m:{id:13,numArgs:2,variableArgs:!1},l:{id:14,numArgs:2,variableArgs:!1},c:{id:15,numArgs:6,variableArgs:!1},v:{id:16,numArgs:4,variableArgs:!1},y:{id:17,numArgs:4,variableArgs:!1},h:{id:18,numArgs:0,variableArgs:!1},re:{id:19,numArgs:4,variableArgs:!1},S:{id:20,numArgs:0,variableArgs:!1},s:{id:21,numArgs:0,variableArgs:!1},f:{id:22,numArgs:0,variableArgs:!1},F:{id:22,numArgs:0,variableArgs:!1},"f*":{id:23,numArgs:0,variableArgs:!1},B:{id:24,numArgs:0,variableArgs:!1},"B*":{id:25,numArgs:0,variableArgs:!1},b:{id:26,numArgs:0,variableArgs:!1},"b*":{id:27,numArgs:0,variableArgs:!1},n:{id:28,numArgs:0,variableArgs:!1},W:{id:29,numArgs:0,variableArgs:!1},"W*":{id:30,numArgs:0,variableArgs:!1},BT:{id:31,numArgs:0,variableArgs:!1},ET:{id:32,numArgs:0,variableArgs:!1},Tc:{id:33,numArgs:1,variableArgs:!1},Tw:{id:34,numArgs:1,variableArgs:!1},Tz:{id:35,numArgs:1,variableArgs:!1},TL:{id:36,numArgs:1,variableArgs:!1},Tf:{id:N,numArgs:2,variableArgs:!1},Tr:{id:38,numArgs:1,variableArgs:!1},Ts:{id:39,numArgs:1,variableArgs:!1},Td:{id:40,numArgs:2,variableArgs:!1},TD:{id:41,numArgs:2,variableArgs:!1},Tm:{id:42,numArgs:6,variableArgs:!1},"T*":{id:43,numArgs:0,variableArgs:!1},Tj:{id:L,numArgs:1,variableArgs:!1},TJ:{id:45,numArgs:1,variableArgs:!1},"'":{id:46,numArgs:1,variableArgs:!1},'"':{id:47,numArgs:3,variableArgs:!1},d0:{id:48,numArgs:2,variableArgs:!1},d1:{id:49,numArgs:6,variableArgs:!1},CS:{id:50,numArgs:1,variableArgs:!1},cs:{id:51,numArgs:1,variableArgs:!1},SC:{id:52,numArgs:4,variableArgs:!0},SCN:{id:53,numArgs:33,variableArgs:!0},sc:{id:54,numArgs:4,variableArgs:!0},scn:{id:55,numArgs:33,variableArgs:!0},G:{id:56,numArgs:1,variableArgs:!1},g:{id:57,numArgs:1,variableArgs:!1},RG:{id:U,numArgs:3,variableArgs:!1},rg:{id:M,numArgs:3,variableArgs:!1},K:{id:60,numArgs:4,variableArgs:!1},k:{id:61,numArgs:4,variableArgs:!1},sh:{id:62,numArgs:1,variableArgs:!1},BI:{id:63,numArgs:0,variableArgs:!1},ID:{id:64,numArgs:0,variableArgs:!1},EI:{id:65,numArgs:1,variableArgs:!1},Do:{id:66,numArgs:1,variableArgs:!1},MP:{id:67,numArgs:1,variableArgs:!1},DP:{id:68,numArgs:2,variableArgs:!1},BMC:{id:69,numArgs:1,variableArgs:!1},BDC:{id:J,numArgs:2,variableArgs:!1},EMC:{id:H,numArgs:0,variableArgs:!1},BX:{id:72,numArgs:0,variableArgs:!1},EX:{id:73,numArgs:0,variableArgs:!1},BM:null,BD:null,true:null,fa:null,fal:null,fals:null,false:null,nu:null,nul:null,null:null}))}}])}();function aC(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=sC(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function oC(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var A,n,i,a,o=[],s=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(A=i.call(r)).done)&&(o.push(A.value),o.length!==t);s=!0);}catch(e){c=!0,n=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw n}}return o}}(e,t)||sC(e,t)||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.")}()}function sC(e,t){if(e){if("string"==typeof e)return cC(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)?cC(e,t):void 0}}function cC(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r0&&(t.fontSize=a);break;case M:Ur.singletons.rgb.getRgbItem(A,0,t.fontColor,0);break;case 57:Ur.singletons.gray.getRgbItem(A,0,t.fontColor,0);break;case 61:Ur.singletons.cmyk.getRgbItem(A,0,t.fontColor,0)}}}catch(e){q('parseDefaultAppearance - ignoring errors: "'.concat(e,'".'))}return t}}])}();function dC(e){return new EC(e).parse()}var yC=function(e){function t(e,r,A){var n,i;return gC(this,t),(i=IC(this,t,[e])).stream=e,i.evaluatorOptions=r,i.xref=A,i.resources=null===(n=e.dict)||void 0===n?void 0:n.get("Resources"),i}return BC(t,iC),lC(t,[{key:"parse",value:function(){var e={fn:0,args:[]},t={scaleFactor:1,fontSize:0,fontName:"",fontColor:new Uint8ClampedArray(3),fillColorSpace:Ur.singletons.gray},r=!1,A=[];try{for(;e.args.length=0,!r&&this.read(e);){var n=e.fn,i=e.args;switch(0|n){case x:A.push({scaleFactor:t.scaleFactor,fontSize:t.fontSize,fontName:t.fontName,fontColor:t.fontColor.slice(),fillColorSpace:t.fillColorSpace});break;case R:t=A.pop()||t;break;case 42:t.scaleFactor*=Math.hypot(i[0],i[1]);break;case N:var a=oC(i,2),o=a[0],s=a[1];o instanceof Ue&&(t.fontName=o.name),"number"==typeof s&&s>0&&(t.fontSize=s*t.scaleFactor);break;case 51:t.fillColorSpace=Ur.parse({cs:i[0],xref:this.xref,resources:this.resources,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:this._localColorSpaceCache});break;case 54:t.fillColorSpace.getRgbItem(i,0,t.fontColor,0);break;case M:Ur.singletons.rgb.getRgbItem(i,0,t.fontColor,0);break;case 57:Ur.singletons.gray.getRgbItem(i,0,t.fontColor,0);break;case 61:Ur.singletons.cmyk.getRgbItem(i,0,t.fontColor,0);break;case L:case 45:case 46:case 47:r=!0}}}catch(e){q('parseAppearanceStream - ignoring errors: "'.concat(e,'".'))}return this.stream.reset(),delete t.scaleFactor,delete t.fillColorSpace,t}},{key:"_localColorSpaceCache",get:function(){return _(this,"_localColorSpaceCache",new Uh)}},{key:"_pdfFunctionFactory",get:function(){return _(this,"_pdfFunctionFactory",new iI({xref:this.xref,isEvalSupported:this.evaluatorOptions.isEvalSupported}))}}])}();function pC(e,t){if(e[0]===e[1]&&e[1]===e[2]){var r=e[0]/255;return"".concat(Tt(r)," ").concat(t?"g":"G")}return Array.from(e,(function(e){return Tt(e/255)})).join(" ")+" ".concat(t?"rg":"RG")}var vC=function(){function e(t,r){gC(this,e),this.xref=t,this.widths=null,this.firstChar=1/0,this.lastChar=-1/0,this.fontFamily=r;var A=new OffscreenCanvas(1,1);this.ctxMeasure=A.getContext("2d",{willReadFrequently:!0}),e._fontNameId||(e._fontNameId=1),this.fontName=Ue.get("InvalidPDFjsFont_".concat(r,"_").concat(e._fontNameId++))}return lC(e,[{key:"fontDescriptorRef",get:function(){if(!e._fontDescriptorRef){var t=new He(this.xref);t.set("Type",Ue.get("FontDescriptor")),t.set("FontName",this.fontName),t.set("FontFamily","MyriadPro Regular"),t.set("FontBBox",[0,0,0,0]),t.set("FontStretch",Ue.get("Normal")),t.set("FontWeight",400),t.set("ItalicAngle",0),e._fontDescriptorRef=this.xref.getNewPersistentRef(t)}return e._fontDescriptorRef}},{key:"descendantFontRef",get:function(){var e=new He(this.xref);e.set("BaseFont",this.fontName),e.set("Type",Ue.get("Font")),e.set("Subtype",Ue.get("CIDFontType0")),e.set("CIDToGIDMap",Ue.get("Identity")),e.set("FirstChar",this.firstChar),e.set("LastChar",this.lastChar),e.set("FontDescriptor",this.fontDescriptorRef),e.set("DW",1e3);var t,r=[],A=null,n=null,i=aC(function(e){return function(e){if(Array.isArray(e))return cC(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||sC(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(this.widths.entries()).sort());try{for(i.s();!(t=i.n()).done;){var a=oC(t.value,2),o=a[0],s=a[1];A?o===A+n.length?n.push(s):(r.push(A,n),A=o,n=[s]):(A=o,n=[s])}}catch(e){i.e(e)}finally{i.f()}A&&r.push(A,n),e.set("W",r);var c=new He(this.xref);return c.set("Ordering","Identity"),c.set("Registry","Adobe"),c.set("Supplement",0),e.set("CIDSystemInfo",c),this.xref.getNewPersistentRef(e)}},{key:"baseFontRef",get:function(){var e=new He(this.xref);return e.set("BaseFont",this.fontName),e.set("Type",Ue.get("Font")),e.set("Subtype",Ue.get("Type0")),e.set("Encoding",Ue.get("Identity-H")),e.set("DescendantFonts",[this.descendantFontRef]),e.set("ToUnicode",Ue.get("Identity-H")),this.xref.getNewPersistentRef(e)}},{key:"resources",get:function(){var e=new He(this.xref),t=new He(this.xref);return t.set(this.fontName.name,this.baseFontRef),e.set("Font",t),e}},{key:"_createContext",value:function(){return this.widths=new Map,this.ctxMeasure.font="1000px ".concat(this.fontFamily),this.ctxMeasure}},{key:"createFontResources",value:function(e){var t,r=this._createContext(),A=aC(e.split(/\\r\\n?|\\n/));try{for(A.s();!(t=A.n()).done;){var n,i=aC(t.value.split(""));try{for(i.s();!(n=i.n()).done;){var a=n.value,o=a.charCodeAt(0);if(!this.widths.has(o)){var s=r.measureText(a),c=Math.ceil(s.width);this.widths.set(o,c),this.firstChar=Math.min(o,this.firstChar),this.lastChar=Math.max(o,this.lastChar)}}}catch(e){i.e(e)}finally{i.f()}}}catch(e){A.e(e)}finally{A.f()}return this.resources}},{key:"createAppearance",value:function(e,t,r,A,n,i){var a,o=this._createContext(),s=[],c=-1/0,g=aC(e.split(/\\r\\n?|\\n/));try{for(g.s();!(a=g.n()).done;){var u=a.value;s.push(u);var l=o.measureText(u).width;c=Math.max(c,l);var h,I=aC(Ht(u));try{for(I.s();!(h=I.n()).done;){var f=h.value,C=String.fromCodePoint(f),B=this.widths.get(f);if(void 0===B){var E=o.measureText(C);B=Math.ceil(E.width),this.widths.set(f,B),this.firstChar=Math.min(f,this.firstChar),this.lastChar=Math.max(f,this.lastChar)}}}catch(e){I.e(e)}finally{I.f()}}}catch(e){g.e(e)}finally{g.f()}c*=A/1e3;var d=oC(t,4),y=d[0],p=d[1],v=d[2]-y,m=d[3]-p;if(r%180!=0){var w=[m,v];v=w[0],m=w[1]}var b=1;c>v&&(b=v/c);var k=1,D=Q*A,S=.35*A,F=D*s.length;F>m&&(k=m/F);var x=A*Math.min(b,k),R=["q","0 0 ".concat(Tt(v)," ").concat(Tt(m)," re W n"),"BT","1 0 0 1 0 ".concat(Tt(m+S)," Tm 0 Tc ").concat(pC(n,!0)),"/".concat(this.fontName.name," ").concat(Tt(x)," Tf")],G=this.resources;if(1!==(i="number"==typeof i&&i>=0&&i<=1?i:1)){R.push("/R0 gs");var N=new He(this.xref),L=new He(this.xref);L.set("ca",i),L.set("CA",i),L.set("Type",Ue.get("ExtGState")),N.set("R0",L),G.set("ExtGState",N)}for(var U=Tt(D),M=0,J=s;M Tj"))}R.push("ET","Q");var Y=R.join("\\n"),P=new He(this.xref);if(P.set("Subtype",Ue.get("Form")),P.set("Type",Ue.get("XObject")),P.set("BBox",[0,0,v,m]),P.set("Length",Y.length),P.set("Resources",G),r){var O=_t(r,v,m);P.set("Matrix",O)}var K=new or(Y);return K.dict=P,K}}],[{key:"getFirstPositionInfo",value:function(e,t,r){var A=oC(e,4),n=A[0],i=A[1],a=A[2]-n,o=A[3]-i;if(t%180!=0){var s=[o,a];a=s[0],o=s[1]}var c=Q*r;return{coords:[0,o+.35*r-c],bbox:[0,0,a,o],matrix:0!==t?_t(t,o,c):void 0}}}])}();function mC(e,t,r){return t=bC(t),function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,wC()?Reflect.construct(t,r||[],bC(e).constructor):t.apply(e,r))}function wC(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(wC=function(){return!!e})()}function bC(e){return bC=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},bC(e)}function kC(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&DC(e,t)}function DC(e,t){return DC=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},DC(e,t)}function SC(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return FC(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)?FC(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function FC(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r0;){var n=t.fetchIfRef(A.shift());if(n instanceof He)if(n.has("Kids")){var i=n.get("Kids");if(!Array.isArray(i))continue;var a,o=SC(i);try{for(o.s();!(a=o.n()).done;){var s=a.value;if(r.has(s))throw new re('Duplicate entry in "'.concat(this._type,'" tree.'));A.push(s),r.put(s)}}catch(e){o.e(e)}finally{o.f()}}else{var c=n.get(this._type);if(Array.isArray(c))for(var g=0,u=c.length;g10)return q('Search depth limit reached for "'.concat(this._type,'" tree.')),null;var n=r.get("Kids");if(!Array.isArray(n))return null;for(var i=0,a=n.length-1;i<=a;){var o=i+a>>1,s=t.fetchIfRef(n[o]),c=s.get("Limits");if(et.fetchIfRef(c[1]))){r=s;break}i=o+1}}if(i>a)return null}var g=r.get(this._type);if(Array.isArray(g))for(var u=0,l=g.length-2;u<=l;){var h=u+l>>1,I=h+(1&h),f=t.fetchIfRef(g[I]);if(ef))return g[I+1];u=I+2}}return null}},{key:"get",value:function(e){return this.xref.fetchIfRef(this.getRaw(e))}}])}(),UC=function(e){function t(e,r){return xC(this,t),mC(this,t,[e,r,"Names"])}return kC(t,LC),GC(t)}(),MC=function(e){function t(e,r){return xC(this,t),mC(this,t,[e,r,"Nums"])}return kC(t,LC),GC(t)}();function JC(){hl=Object.create(null),Ge=Object.create(null),Ne=Object.create(null),Le=Object.create(null),Ec.clear(),Va.cleanup()}function HC(e,t){for(var r=0;r2&&void 0!==arguments[2]&&arguments[2];!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),function(e,t,r){(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e,t),t.set(e,r)}(this,KC,!1),t instanceof He&&(this.xref=r,this.root=t,t.has("FS")&&(this.fs=t.get("FS")),t.has("RF")&&q("Related file specifications are not supported"),i||(t.has("EF")?(n=this,(A=KC).set(PC(A,n),!0)):q("Non-embedded file specifications are not supported")))}),[{key:"filename",get:function(){var e="",t=OC(this.root);return t&&"string"==typeof t&&(e=Ie(t).replaceAll("\\\\\\\\","\\\\").replaceAll("\\\\/","/").replaceAll("\\\\","/")),_(this,"filename",e||"unnamed")}},{key:"content",get:function(){var e,t;if(this,!(t=KC).get(PC(t,this)))return null;this._contentRef||(this._contentRef=OC(null===(e=this.root)||void 0===e?void 0:e.get("EF")));var r=null;if(this._contentRef){var A=this.xref.fetchIfRef(this._contentRef);A instanceof ze?r=A.getBytes():q("Embedded file specification points to non-existing/invalid content")}else q("Embedded file specification does not have any content");return r}},{key:"description",get:function(){var e,t="",r=null===(e=this.root)||void 0===e?void 0:e.get("Desc");return r&&"string"==typeof r&&(t=Ie(r)),_(this,"description",t)}},{key:"serializable",get:function(){return{rawFilename:this.filename,filename:(e=this.filename,e.substring(e.lastIndexOf("/")+1)),content:this.content,description:this.description};var e}}])}();function qC(e,t,r){return t=WC(t),function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,jC()?Reflect.construct(t,r||[],WC(e).constructor):t.apply(e,r))}function jC(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(jC=function(){return!!e})()}function WC(e){return WC=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},WC(e)}function ZC(e,t){return ZC=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},ZC(e,t)}function _C(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=VC(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function XC(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var A,n,i,a,o=[],s=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(A=i.call(r)).done)&&(o.push(A.value),o.length!==t);s=!0);}catch(e){c=!0,n=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw n}}return o}}(e,t)||VC(e,t)||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.")}()}function VC(e,t){if(e){if("string"==typeof e)return zC(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)?zC(e,t):void 0}}function zC(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r";case"amp":return"&";case"quot":return'"';case"apos":return"'"}return t.onResolveEntity(r)}))}},{key:"_parseContent",value:function(e,t){var r=[],A=t;function n(){for(;A"!==e[A]&&"/"!==e[A];)++A;var i=e.substring(t,A);for(n();A"!==e[A]&&"/"!==e[A]&&"?"!==e[A];){n();for(var a,o="";A"!==e[r]&&"?"!==e[r]&&"/"!==e[r];)++r;var A=e.substring(t,r);!function(){for(;r"!==e[r+1]);)++r;return{name:A,value:e.substring(n,r),parsed:r-t}}},{key:"parseXml",value:function(e){for(var t=0;t",r))<0)return void this.onError(-9);this.onEndElement(e.substring(r,A)),r=A+1;break;case"?":++r;var n=this._parseProcessingInstruction(e,r);if("?>"!==e.substring(r+n.parsed,r+n.parsed+2))return void this.onError(-3);this.onPi(n.name,n.value),r+=n.parsed+2;break;case"!":if("--"===e.substring(r+1,r+3)){if((A=e.indexOf("--\\x3e",r+3))<0)return void this.onError(-5);this.onComment(e.substring(r+3,A)),r=A+3}else if("[CDATA["===e.substring(r+1,r+8)){if((A=e.indexOf("]]>",r+8))<0)return void this.onError(-2);this.onCdata(e.substring(r+8,A)),r=A+3}else{if("DOCTYPE"!==e.substring(r+1,r+8))return void this.onError(-6);var i=e.indexOf("[",r+8),a=!1;if((A=e.indexOf(">",r+8))<0)return void this.onError(-4);if(i>0&&A>i){if((A=e.indexOf("]>",r+8))<0)return void this.onError(-4);a=!0}var o=e.substring(r+8,A+(a?1:0));this.onDoctype(o),r=A+(a?2:1)}break;default:var s=this._parseContent(e,r);if(null===s)return void this.onError(-6);var c=!1;if("/>"===e.substring(r+s.parsed,r+s.parsed+2))c=!0;else if(">"!==e.substring(r+s.parsed,r+s.parsed+1))return void this.onError(-9);this.onBeginElement(s.name,s.attributes,c),r+=s.parsed+(c?2:1)}}else{for(;r0}},{key:"searchNode",value:function(e,t){if(t>=e.length)return this;var r=e[t];if(r.name.startsWith("#")&&t0)A.push([n,0]),n=n.childNodes[0];else{if(0===A.length)return null;for(;0!==A.length;){var u=XC(A.pop(),2),l=u[0],h=u[1]+1;if(h");var n,i=_C(this.childNodes);try{for(i.s();!(n=i.n()).done;)n.value.dump(e)}catch(e){i.e(e)}finally{i.f()}e.push(""))}else this.nodeValue?e.push(">".concat(Yt(this.nodeValue),"")):e.push("/>")}else e.push(Yt(this.nodeValue))}}])}(),aB=function(e){function t(e){var r,A=e.hasAttributes,n=void 0!==A&&A,i=e.lowerCaseName,a=void 0!==i&&i;return $C(this,t),(r=qC(this,t))._currentFragment=null,r._stack=null,r._errorCode=0,r._hasAttributes=n,r._lowerCaseName=a,r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&ZC(e,t)}(t,nB),tB(t,[{key:"parseFromString",value:function(e){if(this._currentFragment=[],this._stack=[],this._errorCode=0,this.parseXml(e),0===this._errorCode){var t=XC(this._currentFragment,1)[0];if(t)return{documentElement:t}}}},{key:"onText",value:function(e){if(!function(e){for(var t=0,r=e.length;t=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function sB(e,t){if(e){if("string"==typeof e)return cB(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)?cB(e,t):void 0}}function cB(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r\\\\376\\\\377([^<]+)/g,(function(e,t){for(var r=t.replaceAll(/\\\\([0-3])([0-7])([0-7])/g,(function(e,t,r,A){return String.fromCharCode(64*t+8*r+1*A)})).replaceAll(/&(amp|apos|gt|lt|quot);/g,(function(e,t){switch(t){case"amp":return"&";case"apos":return"'";case"gt":return">";case"lt":return"<";case"quot":return'"'}throw new Error("_repair: ".concat(t," isn't defined."))})),A=[">"],n=0,i=r.length;n=32&&a<127&&60!==a&&62!==a&&38!==a?A.push(String.fromCharCode(a)):A.push("&#x"+(65536+a).toString(16).substring(1)+";")}return A.join("")}))}},{key:"_getSequence",value:function(e){var t=e.nodeName;return"rdf:bag"!==t&&"rdf:seq"!==t&&"rdf:alt"!==t?null:e.childNodes.filter((function(e){return"rdf:li"===e.nodeName}))}},{key:"_parseArray",value:function(e){if(e.hasChildNodes()){var t=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var A,n,i,a,o=[],s=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(A=i.call(r)).done)&&(o.push(A.value),o.length!==t);s=!0);}catch(e){c=!0,n=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw n}}return o}}(e,t)||sB(e,t)||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.childNodes,1)[0],r=this._getSequence(t)||[];this._metadataMap.set(e.nodeName,r.map((function(e){return e.textContent.trim()})))}}},{key:"_parse",value:function(e){var t=e.documentElement;if("rdf:rdf"!==t.nodeName)for(t=t.firstChild;t&&"rdf:rdf"!==t.nodeName;)t=t.nextSibling;if(t&&"rdf:rdf"===t.nodeName&&t.hasChildNodes()){var r,A=oB(t.childNodes);try{for(A.s();!(r=A.n()).done;){var n=r.value;if("rdf:description"===n.nodeName){var i,a=oB(n.childNodes);try{for(a.s();!(i=a.n()).done;){var o=i.value,s=o.nodeName;switch(s){case"#text":continue;case"dc:creator":case"dc:subject":this._parseArray(o);continue}this._metadataMap.set(s,o.textContent.trim())}}catch(e){a.e(e)}finally{a.f()}}}}catch(e){A.e(e)}finally{A.f()}}}},{key:"serializable",get:function(){return{parsedData:this._metadataMap,rawData:this._data}}}])}();function hB(e,t){for(var r=0;r0;t=(0,this.decrypt)(t,!r);var A=this.bufferLength,n=A+t.length;this.ensureBuffer(n).set(t,A),this.bufferLength=n}else this.eof=!0}}])}();function dB(e,t,r){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:r;throw new TypeError("Private element is not present on this object")}function yB(e,t,r){return t=vB(t),function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,pB()?Reflect.construct(t,r||[],vB(e).constructor):t.apply(e,r))}function pB(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(pB=function(){return!!e})()}function vB(e){return vB=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},vB(e)}function mB(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&wB(e,t)}function wB(e,t){return wB=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},wB(e,t)}function bB(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function kB(e,t){for(var r=0;r>5&255,l[i++]=n>>13&255,l[i++]=n>>21&255,l[i++]=n>>>29&255,l[i++]=0,l[i++]=0,l[i++]=0;var I=new Int32Array(16);for(i=0;i>>32-v)|0,f=y}o=o+f|0,s=s+C|0,c=c+B|0,g=g+Q|0}return new Uint8Array([255&o,o>>8&255,o>>16&255,o>>>24&255,255&s,s>>8&255,s>>16&255,s>>>24&255,255&c,c>>8&255,c>>16&255,c>>>24&255,255&g,g>>8&255,g>>16&255,g>>>24&255])}}(),RB=function(){return DB((function e(t,r){bB(this,e),this.high=0|t,this.low=0|r}),[{key:"and",value:function(e){this.high&=e.high,this.low&=e.low}},{key:"xor",value:function(e){this.high^=e.high,this.low^=e.low}},{key:"or",value:function(e){this.high|=e.high,this.low|=e.low}},{key:"shiftRight",value:function(e){e>=32?(this.low=this.high>>>e-32|0,this.high=0):(this.low=this.low>>>e|this.high<<32-e,this.high=this.high>>>e|0)}},{key:"shiftLeft",value:function(e){e>=32?(this.high=this.low<>>32-e,this.low<<=e)}},{key:"rotateRight",value:function(e){var t,r;32&e?(r=this.low,t=this.high):(t=this.low,r=this.high),e&=31,this.low=t>>>e|r<<32-e,this.high=r>>>e|t<<32-e}},{key:"not",value:function(){this.high=~this.high,this.low=~this.low}},{key:"add",value:function(e){var t=(this.low>>>0)+(e.low>>>0),r=(this.high>>>0)+(e.high>>>0);t>4294967295&&(r+=1),this.low=0|t,this.high=0|r}},{key:"copyTo",value:function(e,t){e[t]=this.high>>>24&255,e[t+1]=this.high>>16&255,e[t+2]=this.high>>8&255,e[t+3]=255&this.high,e[t+4]=this.low>>>24&255,e[t+5]=this.low>>16&255,e[t+6]=this.low>>8&255,e[t+7]=255&this.low}},{key:"assign",value:function(e){this.high=e.high,this.low=e.low}}])}(),GB=function(){function e(e,t){return e>>>t|e<<32-t}function t(e,t,r){return e&t^~e&r}function r(e,t,r){return e&t^e&r^t&r}function A(t){return e(t,2)^e(t,13)^e(t,22)}function n(t){return e(t,6)^e(t,11)^e(t,25)}function i(t){return e(t,7)^e(t,18)^t>>>3}var a=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];return function(o,s,c){var g,u,l=1779033703,h=3144134277,I=1013904242,f=2773480762,C=1359893119,B=2600822924,Q=528734635,E=1541459225,d=64*Math.ceil((c+9)/64),y=new Uint8Array(d);for(g=0;g>>29&255,y[g++]=c>>21&255,y[g++]=c>>13&255,y[g++]=c>>5&255,y[g++]=c<<3&255;var v,m=new Uint32Array(64);for(g=0;g>>10)+m[u-7]+i(m[u-15])+m[u-16];var w=l,b=h,k=I,D=f,S=C,F=B,x=Q,R=E,G=void 0,N=void 0;for(u=0;u<64;++u)G=R+n(S)+t(S,F,x)+a[u]+m[u],N=A(w)+r(w,b,k),R=x,x=F,F=S,S=D+G|0,D=k,k=b,b=w,w=G+N|0;l=l+w|0,h=h+b|0,I=I+k|0,f=f+D|0,C=C+S|0,B=B+F|0,Q=Q+x|0,E=E+R|0}return new Uint8Array([l>>24&255,l>>16&255,l>>8&255,255&l,h>>24&255,h>>16&255,h>>8&255,255&h,I>>24&255,I>>16&255,I>>8&255,255&I,f>>24&255,f>>16&255,f>>8&255,255&f,C>>24&255,C>>16&255,C>>8&255,255&C,B>>24&255,B>>16&255,B>>8&255,255&B,Q>>24&255,Q>>16&255,Q>>8&255,255&Q,E>>24&255,E>>16&255,E>>8&255,255&E])}}(),NB=function(){function e(e,t,r,A,n){e.assign(t),e.and(r),n.assign(t),n.not(),n.and(A),e.xor(n)}function t(e,t,r,A,n){e.assign(t),e.and(r),n.assign(t),n.and(A),e.xor(n),n.assign(r),n.and(A),e.xor(n)}function r(e,t,r){e.assign(t),e.rotateRight(28),r.assign(t),r.rotateRight(34),e.xor(r),r.assign(t),r.rotateRight(39),e.xor(r)}function A(e,t,r){e.assign(t),e.rotateRight(14),r.assign(t),r.rotateRight(18),e.xor(r),r.assign(t),r.rotateRight(41),e.xor(r)}function n(e,t,r){e.assign(t),e.rotateRight(1),r.assign(t),r.rotateRight(8),e.xor(r),r.assign(t),r.shiftRight(7),e.xor(r)}function i(e,t,r){e.assign(t),e.rotateRight(19),r.assign(t),r.rotateRight(61),e.xor(r),r.assign(t),r.shiftRight(6),e.xor(r)}var a=[new RB(1116352408,3609767458),new RB(1899447441,602891725),new RB(3049323471,3964484399),new RB(3921009573,2173295548),new RB(961987163,4081628472),new RB(1508970993,3053834265),new RB(2453635748,2937671579),new RB(2870763221,3664609560),new RB(3624381080,2734883394),new RB(310598401,1164996542),new RB(607225278,1323610764),new RB(1426881987,3590304994),new RB(1925078388,4068182383),new RB(2162078206,991336113),new RB(2614888103,633803317),new RB(3248222580,3479774868),new RB(3835390401,2666613458),new RB(4022224774,944711139),new RB(264347078,2341262773),new RB(604807628,2007800933),new RB(770255983,1495990901),new RB(1249150122,1856431235),new RB(1555081692,3175218132),new RB(1996064986,2198950837),new RB(2554220882,3999719339),new RB(2821834349,766784016),new RB(2952996808,2566594879),new RB(3210313671,3203337956),new RB(3336571891,1034457026),new RB(3584528711,2466948901),new RB(113926993,3758326383),new RB(338241895,168717936),new RB(666307205,1188179964),new RB(773529912,1546045734),new RB(1294757372,1522805485),new RB(1396182291,2643833823),new RB(1695183700,2343527390),new RB(1986661051,1014477480),new RB(2177026350,1206759142),new RB(2456956037,344077627),new RB(2730485921,1290863460),new RB(2820302411,3158454273),new RB(3259730800,3505952657),new RB(3345764771,106217008),new RB(3516065817,3606008344),new RB(3600352804,1432725776),new RB(4094571909,1467031594),new RB(275423344,851169720),new RB(430227734,3100823752),new RB(506948616,1363258195),new RB(659060556,3750685593),new RB(883997877,3785050280),new RB(958139571,3318307427),new RB(1322822218,3812723403),new RB(1537002063,2003034995),new RB(1747873779,3602036899),new RB(1955562222,1575990012),new RB(2024104815,1125592928),new RB(2227730452,2716904306),new RB(2361852424,442776044),new RB(2428436474,593698344),new RB(2756734187,3733110249),new RB(3204031479,2999351573),new RB(3329325298,3815920427),new RB(3391569614,3928383900),new RB(3515267271,566280711),new RB(3940187606,3454069534),new RB(4118630271,4000239992),new RB(116418474,1914138554),new RB(174292421,2731055270),new RB(289380356,3203993006),new RB(460393269,320620315),new RB(685471733,587496836),new RB(852142971,1086792851),new RB(1017036298,365543100),new RB(1126000580,2618297676),new RB(1288033470,3409855158),new RB(1501505948,4234509866),new RB(1607167915,987167468),new RB(1816402316,1246189591)];return function(o,s,c){var g,u,l,h,I,f,C,B,Q=arguments.length>3&&void 0!==arguments[3]&&arguments[3];Q?(g=new RB(3418070365,3238371032),u=new RB(1654270250,914150663),l=new RB(2438529370,812702999),h=new RB(355462360,4144912697),I=new RB(1731405415,4290775857),f=new RB(2394180231,1750603025),C=new RB(3675008525,1694076839),B=new RB(1203062813,3204075428)):(g=new RB(1779033703,4089235720),u=new RB(3144134277,2227873595),l=new RB(1013904242,4271175723),h=new RB(2773480762,1595750129),I=new RB(1359893119,2917565137),f=new RB(2600822924,725511199),C=new RB(528734635,4215389547),B=new RB(1541459225,327033209));var E,d,y=128*Math.ceil((c+17)/128),p=new Uint8Array(y);for(E=0;E>>29&255,p[E++]=c>>21&255,p[E++]=c>>13&255,p[E++]=c>>5&255,p[E++]=c<<3&255;var m=new Array(80);for(E=0;E<80;E++)m[E]=new RB(0,0);var w,b,k=new RB(0,0),D=new RB(0,0),S=new RB(0,0),F=new RB(0,0),x=new RB(0,0),R=new RB(0,0),G=new RB(0,0),N=new RB(0,0),L=new RB(0,0),U=new RB(0,0),M=new RB(0,0),J=new RB(0,0);for(E=0;E=1;--s){r=i[13],i[13]=i[9],i[9]=i[5],i[5]=i[1],i[1]=r,r=i[14],A=i[10],i[14]=i[6],i[10]=i[2],i[6]=r,i[2]=A,r=i[15],A=i[11],n=i[7],i[15]=i[3],i[11]=r,i[7]=A,i[3]=n;for(var c=0;c<16;++c)i[c]=this._inv_s[i[c]];for(var g=0,u=16*s;g<16;++g,++u)i[g]^=t[u];for(var l=0;l<16;l+=4){var h=this._mix[i[l]],I=this._mix[i[l+1]],f=this._mix[i[l+2]],C=this._mix[i[l+3]];r=h^I>>>8^I<<24^f>>>16^f<<16^C>>>24^C<<8,i[l]=r>>>24&255,i[l+1]=r>>16&255,i[l+2]=r>>8&255,i[l+3]=255&r}}r=i[13],i[13]=i[9],i[9]=i[5],i[5]=i[1],i[1]=r,r=i[14],A=i[10],i[14]=i[6],i[10]=i[2],i[6]=r,i[2]=A,r=i[15],A=i[11],n=i[7],i[15]=i[3],i[11]=r,i[7]=A,i[3]=n;for(var B=0;B<16;++B)i[B]=this._inv_s[i[B]],i[B]^=t[B];return i}},{key:"_encrypt",value:function(e,t){var r,A,n,i=this._s,a=new Uint8Array(16);a.set(e);for(var o=0;o<16;++o)a[o]^=t[o];for(var s=1;s=I;--h)if(u[h]!==l){l=0;break}g-=l,i[i.length-1]=u.subarray(0,16-l)}}for(var f=new Uint8Array(g),C=0,B=0,Q=i.length;C2&&void 0!==arguments[2]?arguments[2]:null,A=e.length,n=this.buffer,i=this.bufferPosition;if(r)this.iv=r;else{for(var a=0;i<16&&a=256&&(o=255&(27^o)));for(var g=0;g<4;++g)r[s]=A^=r[s-32],r[++s]=n^=r[s-32],r[++s]=i^=r[s-32],r[++s]=a^=r[s-32],s++}return r}}])}(),HB=function(){return DB((function e(){bB(this,e)}),[{key:"checkOwnerPassword",value:function(e,t,r,A){var n=new Uint8Array(e.length+56);return n.set(e,0),n.set(t,e.length),n.set(r,e.length+t.length),Be(GB(n,0,n.length),A)}},{key:"checkUserPassword",value:function(e,t,r){var A=new Uint8Array(e.length+8);return A.set(e,0),A.set(t,e.length),Be(GB(A,0,A.length),r)}},{key:"getOwnerKey",value:function(e,t,r,A){var n=new Uint8Array(e.length+56);n.set(e,0),n.set(t,e.length),n.set(r,e.length+t.length);var i=GB(n,0,n.length);return new JB(i).decryptBlock(A,!1,new Uint8Array(16))}},{key:"getUserKey",value:function(e,t,r){var A=new Uint8Array(e.length+8);A.set(e,0),A.set(t,e.length);var n=GB(A,0,A.length);return new JB(n).decryptBlock(r,!1,new Uint8Array(16))}}])}(),YB=function(){return DB((function e(){bB(this,e)}),[{key:"_hash",value:function(e,t,r){for(var A,n,i=GB(t,0,t.length).subarray(0,32),a=[0],o=0;o<64||a.at(-1)>o-32;){var s=e.length+i.length+r.length,c=new Uint8Array(s),g=0;c.set(e,g),g+=e.length,c.set(i,g),g+=i.length,c.set(r,g);for(var u=new Uint8Array(64*s),l=0,h=0;l<64;l++,h+=s)u.set(c,h);var I=(a=new MB(i.subarray(0,16)).encrypt(u,i.subarray(16,32))).slice(0,16).reduce((function(e,t){return e+t}),0)%3;0===I?i=GB(a,0,a.length):1===I?(A=a,0,n=a.length,i=NB(A,0,n,!0)):2===I&&(i=NB(a,0,a.length)),o++}return i.subarray(0,32)}},{key:"checkOwnerPassword",value:function(e,t,r,A){var n=new Uint8Array(e.length+56);return n.set(e,0),n.set(t,e.length),n.set(r,e.length+t.length),Be(this._hash(e,n,r),A)}},{key:"checkUserPassword",value:function(e,t,r){var A=new Uint8Array(e.length+8);return A.set(e,0),A.set(t,e.length),Be(this._hash(e,A,[]),r)}},{key:"getOwnerKey",value:function(e,t,r,A){var n=new Uint8Array(e.length+56);n.set(e,0),n.set(t,e.length),n.set(r,e.length+t.length);var i=this._hash(e,n,r);return new JB(i).decryptBlock(A,!1,new Uint8Array(16))}},{key:"getUserKey",value:function(e,t,r){var A=new Uint8Array(e.length+8);A.set(e,0),A.set(t,e.length);var n=this._hash(e,A,[]);return new JB(n).decryptBlock(r,!1,new Uint8Array(16))}}])}(),PB=function(){return DB((function e(t,r){bB(this,e),this.StringCipherConstructor=t,this.StreamCipherConstructor=r}),[{key:"createStream",value:function(e,t){var r=new this.StreamCipherConstructor;return new EB(e,t,(function(e,t){return r.decryptBlock(e,t)}))}},{key:"decryptString",value:function(e){var t=new this.StringCipherConstructor,r=ie(e);return ne(r=t.decryptBlock(r,!0))}},{key:"encryptString",value:function(e){var t=new this.StringCipherConstructor;if(t instanceof UB){var r=16-e.length%16;e+=String.fromCharCode(r).repeat(r);var A=new Uint8Array(16);if("undefined"!=typeof crypto)crypto.getRandomValues(A);else for(var n=0;n<16;n++)A[n]=Math.floor(256*Math.random());var i=ie(e);i=t.encrypt(i,A);var a=new Uint8Array(16+i.length);return a.set(A),a.set(i,16),ne(a)}var o=ie(e);return ne(o=t.encrypt(o))}}])}(),OB=new WeakSet,KB=function(){return DB((function e(t,r,A){bB(this,e),function(e,t){(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e,t),t.add(e)}(this,OB);var n=t.get("Filter");if(!Ke(n,"Standard"))throw new re("unknown encryption method");this.filterName=n.name,this.dict=t;var i=t.get("V");if(!Number.isInteger(i)||1!==i&&2!==i&&4!==i&&5!==i)throw new re("unsupported encryption algorithm");this.algorithm=i;var a=t.get("Length");if(!a)if(i<=3)a=40;else{var o=t.get("CF"),s=t.get("StmF");if(o instanceof He&&s instanceof Ue){o.suppressEncryption=!0;var c=o.get(s.name);(a=(null==c?void 0:c.get("Length"))||128)<40&&(a<<=3)}}if(!Number.isInteger(a)||a<40||a%8!=0)throw new re("invalid key length");var g=ie(t.get("O")),u=ie(t.get("U")),l=g.subarray(0,32),h=u.subarray(0,32),I=t.get("P"),f=t.get("R"),C=(4===i||5===i)&&!1!==t.get("EncryptMetadata");this.encryptMetadata=C;var B,Q,E=ie(r);if(A){if(6===f)try{A=Ce(A)}catch(e){q("CipherTransformFactory: Unable to convert UTF8 encoded password.")}B=ie(A)}if(5!==i)Q=dB(OB,this,qB).call(this,E,B,l,h,I,f,a,C);else{var d=g.subarray(32,40),y=g.subarray(40,48),p=u.subarray(0,48),v=u.subarray(32,40),m=u.subarray(40,48),w=ie(t.get("OE")),b=ie(t.get("UE")),k=ie(t.get("Perms"));Q=dB(OB,this,TB).call(this,f,B,l,d,y,p,h,v,m,w,b,k)}if(!Q&&!A)throw new V("No password given",1);if(!Q&&A){var D=dB(OB,this,jB).call(this,B,l,f,a);Q=dB(OB,this,qB).call(this,E,D,l,h,I,f,a,C)}if(!Q)throw new V("Incorrect Password",2);if(this.encryptionKey=Q,i>=4){var S=t.get("CF");S instanceof He&&(S.suppressEncryption=!0),this.cf=S,this.stmf=t.get("StmF")||Ue.get("Identity"),this.strf=t.get("StrF")||Ue.get("Identity"),this.eff=t.get("EFF")||this.stmf}}),[{key:"createCipherTransform",value:function(e,t){if(4===this.algorithm||5===this.algorithm)return new PB(dB(OB,this,ZB).call(this,this.cf,this.strf,e,t,this.encryptionKey),dB(OB,this,ZB).call(this,this.cf,this.stmf,e,t,this.encryptionKey));var r=dB(OB,this,WB).call(this,e,t,this.encryptionKey,!1),A=function(){return new FB(r)};return new PB(A,A)}}])}();function TB(e,t,r,A,n,i,a,o,s,c,g,u){if(t){var l=Math.min(127,t.length);t=t.subarray(0,l)}else t=[];var h=6===e?new YB:new HB;return h.checkUserPassword(t,o,a)?h.getUserKey(t,s,g):t.length&&h.checkOwnerPassword(t,A,i,r)?h.getOwnerKey(t,n,i,c):null}function qB(e,t,r,A,n,i,a,o){var s,c,g=40+r.length+e.length,u=new Uint8Array(g),l=0;if(t)for(c=Math.min(32,t.length);l>8&255,u[l++]=n>>16&255,u[l++]=n>>>24&255,s=0,c=e.length;s=4&&!o&&(u[l++]=255,u[l++]=255,u[l++]=255,u[l++]=255);var h=xB(u,0,l),I=a>>3;if(i>=3)for(s=0;s<50;++s)h=xB(h,0,I);var f,C=h.subarray(0,I);if(i>=3){for(l=0;l<32;++l)u[l]=XB._[l];for(s=0,c=e.length;s>3;if(r>=3)for(o=0;o<50;++o)c=xB(c,0,c.length);if(r>=3){s=t;var u=new Uint8Array(g);for(o=19;o>=0;o--){for(var l=0;l3&&void 0!==arguments[3]&&arguments[3],i=new Uint8Array(r.length+9),a=r.length;for(A=0;A>8&255,i[A++]=e>>16&255,i[A++]=255&t,i[A++]=t>>8&255,n&&(i[A++]=115,i[A++]=65,i[A++]=108,i[A++]=84),xB(i,0,A).subarray(0,Math.min(r.length+5,16))}function ZB(e,t,r,A,n){if(!(t instanceof Ue))throw new re("Invalid crypt filter name.");var i=this,a=e.get(t.name),o=null==a?void 0:a.get("CFM");if(!o||"None"===o.name)return function(){return new LB};if("V2"===o.name)return function(){return new FB(dB(OB,i,WB).call(i,r,A,n,!1))};if("AESV2"===o.name)return function(){return new MB(dB(OB,i,WB).call(i,r,A,n,!0))};if("AESV3"===o.name)return function(){return new JB(n)};throw new re("Unknown crypto method")}var _B,XB={_:new Uint8Array([40,191,78,94,78,117,138,65,100,0,78,86,255,250,1,8,46,46,0,182,208,104,62,128,47,12,169,254,100,83,105,122])};function VB(e){return function(e){if(Array.isArray(e))return rQ(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||tQ(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function zB(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var A,n,i,a,o=[],s=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(A=i.call(r)).done)&&(o.push(A.value),o.length!==t);s=!0);}catch(e){c=!0,n=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw n}}return o}}(e,t)||tQ(e,t)||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.")}()}function $B(){$B=function(){return t};var e,t={},r=Object.prototype,A=r.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,r){return e[t]=r}}function g(e,t,r,A){var i=t&&t.prototype instanceof B?t:B,a=Object.create(i.prototype),o=new F(A||[]);return n(a,"_invoke",{value:b(e,r,o)}),a}function u(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=g;var l="suspendedStart",h="suspendedYield",I="executing",f="completed",C={};function B(){}function Q(){}function E(){}var d={};c(d,a,(function(){return this}));var y=Object.getPrototypeOf,p=y&&y(y(x([])));p&&p!==r&&A.call(p,a)&&(d=p);var v=E.prototype=B.prototype=Object.create(d);function m(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function r(n,i,a,o){var s=u(e[n],e,i);if("throw"!==s.type){var c=s.arg,g=c.value;return g&&"object"==typeof g&&A.call(g,"__await")?t.resolve(g.__await).then((function(e){r("next",e,a,o)}),(function(e){r("throw",e,a,o)})):t.resolve(g).then((function(e){c.value=e,a(c)}),(function(e){return r("throw",e,a,o)}))}o(s.arg)}var i;n(this,"_invoke",{value:function(e,A){function n(){return new t((function(t,n){r(e,A,t,n)}))}return i=i?i.then(n,n):n()}})}function b(t,r,A){var n=l;return function(i,a){if(n===I)throw Error("Generator is already running");if(n===f){if("throw"===i)throw a;return{value:e,done:!0}}for(A.method=i,A.arg=a;;){var o=A.delegate;if(o){var s=k(o,A);if(s){if(s===C)continue;return s}}if("next"===A.method)A.sent=A._sent=A.arg;else if("throw"===A.method){if(n===l)throw n=f,A.arg;A.dispatchException(A.arg)}else"return"===A.method&&A.abrupt("return",A.arg);n=I;var c=u(t,r,A);if("normal"===c.type){if(n=A.done?f:h,c.arg===C)continue;return{value:c.arg,done:A.done}}"throw"===c.type&&(n=f,A.method="throw",A.arg=c.arg)}}}function k(t,r){var A=r.method,n=t.iterator[A];if(n===e)return r.delegate=null,"throw"===A&&t.iterator.return&&(r.method="return",r.arg=e,k(t,r),"throw"===r.method)||"return"!==A&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+A+"' method")),C;var i=u(n,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,C;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,C):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,C)}function D(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function F(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(D,this),this.reset(!0)}function x(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,i=function r(){for(;++n=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}function eQ(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=tQ(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function tQ(e,t){if(e){if("string"==typeof e)return rQ(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)?rQ(e,t):void 0}}function rQ(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r>");case 20:case"end":return e.stop()}}),e,null,[[2,13,16,19]])})))).apply(this,arguments)}function cQ(e,t,r){return gQ.apply(this,arguments)}function gQ(){return(gQ=nQ($B().mark((function e(t,r,A){var n,i,a,o,s,c,g,u,l,h,I,f,C,B;return $B().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.getBytes(),i=t.dict,e.next=4,Promise.all([i.getAsync("Filter"),i.getAsync("DecodeParms")]);case 4:if(a=e.sent,o=zB(a,2),s=o[0],c=o[1],!Array.isArray(s)){e.next=14;break}return e.next=11,i.xref.fetchIfRefAsync(s[0]);case 11:e.t0=e.sent,e.next=15;break;case 14:e.t0=s;case 15:if(g=e.t0,u=Ke(g,"FlateDecode"),!(n.length>=256||u)){e.next=37;break}return e.prev=19,l=new CompressionStream("deflate"),h=l.writable.getWriter(),e.next=24,h.ready;case 24:return h.write(n).then(nQ($B().mark((function e(){return $B().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,h.ready;case 2:return e.next=4,h.close();case 4:case"end":return e.stop()}}),e)})))).catch((function(){})),e.next=27,new Response(l.readable).arrayBuffer();case 27:I=e.sent,n=new Uint8Array(I),s?u||(f=Array.isArray(s)?[Ue.get("FlateDecode")].concat(VB(s)):[Ue.get("FlateDecode"),s],c&&(C=Array.isArray(c)?[null].concat(VB(c)):[null,c])):f=Ue.get("FlateDecode"),f&&i.set("Filter",f),C&&i.set("DecodeParms",C),e.next=37;break;case 34:e.prev=34,e.t1=e.catch(19),T('writeStream - cannot compress data: "'.concat(e.t1,'".'));case 37:return B=ne(n),A&&(B=A.encryptString(B)),i.set("Length",B.length),e.next=42,oQ(i,r,A);case 42:r.push(" stream\\n",B,"\\nendstream");case 43:case"end":return e.stop()}}),e,null,[[19,34]])})))).apply(this,arguments)}function uQ(e,t,r){return lQ.apply(this,arguments)}function lQ(){return(lQ=nQ($B().mark((function e(t,r,A){var n,i,a,o;return $B().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r.push("["),n=!0,i=eQ(t),e.prev=3,i.s();case 5:if((a=i.n()).done){e.next=12;break}return o=a.value,n?n=!1:r.push(" "),e.next=10,hQ(o,r,A);case 10:e.next=5;break;case 12:e.next=17;break;case 14:e.prev=14,e.t0=e.catch(3),i.e(e.t0);case 17:return e.prev=17,i.f(),e.finish(17);case 20:r.push("]");case 21:case"end":return e.stop()}}),e,null,[[3,14,17,20]])})))).apply(this,arguments)}function hQ(e,t,r){return IQ.apply(this,arguments)}function IQ(){return(IQ=nQ($B().mark((function e(t,r,A){return $B().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t instanceof Ue)){e.next=4;break}r.push("/".concat(Nt(t.name))),e.next=37;break;case 4:if(!(t instanceof Ye)){e.next=8;break}r.push("".concat(t.num," ").concat(t.gen," R")),e.next=37;break;case 8:if(!Array.isArray(t)&&!ArrayBuffer.isView(t)){e.next=13;break}return e.next=11,uQ(t,r,A);case 11:e.next=37;break;case 13:if("string"!=typeof t){e.next=18;break}A&&(t=A.encryptString(t)),r.push("(".concat(Lt(t),")")),e.next=37;break;case 18:if("number"!=typeof t){e.next=22;break}r.push(Tt(t)),e.next=37;break;case 22:if("boolean"!=typeof t){e.next=26;break}r.push(t.toString()),e.next=37;break;case 26:if(!(t instanceof He)){e.next=31;break}return e.next=29,oQ(t,r,A);case 29:e.next=37;break;case 31:if(!(t instanceof ze)){e.next=36;break}return e.next=34,cQ(t,r,A);case 34:e.next=37;break;case 36:null===t?r.push("null"):q("Unhandled value in writer: ".concat(typeof t,", please file a bug."));case 37:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function fQ(e,t,r,A){for(var n=t+r-1;n>r-1;n--)A[n]=255&e,e>>=8;return r+t}function CQ(e,t,r){for(var A=0,n=e.length;A1&&(c=A.documentElement.searchNode([s.at(-1)],0)),c?c.childNodes=Array.isArray(o)?o.map((function(e){return new iB("value",e)})):[new iB("#text",o)]:q("Node not found for path: ".concat(a))}}}}catch(e){n.e(e)}finally{n.f()}var g=[];return A.documentElement.dump(g),g.join("")}(n.fetchIfRef(r).getString(),A));var i=n.encrypt;i&&(t=i.createCipherTransform(r.num,r.gen).encryptString(t));var a="".concat(r.num," ").concat(r.gen," obj\\n")+"<< /Type /EmbeddedFile /Length ".concat(t.length,">>\\nstream\\n")+t+"\\nendstream\\nendobj\\n";A.push({ref:r,data:a})}function dQ(e,t,r,A,n){return yQ.apply(this,arguments)}function yQ(){return(yQ=nQ($B().mark((function e(t,r,A,n,i){var a,o,s,c,g,u,l;return $B().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:i.push("xref\\n"),a=pQ(A),o=0,s=eQ(A);try{for(s.s();!(c=s.n()).done;)g=c.value,u=g.ref,l=g.data,u.num===a[o]&&(i.push("".concat(a[o]," ").concat(a[o+1],"\\n")),o+=2),null!==l?(i.push("".concat(r.toString().padStart(10,"0")," ").concat(Math.min(u.gen,65535).toString().padStart(5,"0")," n\\r\\n")),r+=l.length):i.push("0000000000 ".concat(Math.min(u.gen+1,65535).toString().padStart(5,"0")," f\\r\\n"))}catch(e){s.e(e)}finally{s.f()}return wQ(r,t,n),i.push("trailer\\n"),e.next=9,oQ(n,i);case 9:i.push("\\nstartxref\\n",r.toString(),"\\n%%EOF\\n");case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function pQ(e){var t,r=[],A=eQ(e);try{for(A.s();!(t=A.n()).done;){var n=t.value.ref;n.num===r.at(-2)+r.at(-1)?r[r.length-1]+=1:r.push(n.num,1)}}catch(e){A.e(e)}finally{A.f()}return r}function vQ(e,t,r,A,n){return mQ.apply(this,arguments)}function mQ(){return(mQ=nQ($B().mark((function e(t,r,A,n,i){var a,o,s,c,g,u,l,h,I,f,C,B,Q,E,d,y,p,v,m,w,b,k;return $B().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:a=[],o=0,s=0,c=eQ(A);try{for(c.s();!(g=c.n()).done;)u=g.value,l=u.ref,h=u.data,I=void 0,o=Math.max(o,r),null!==h?(I=Math.min(l.gen,65535),a.push([1,r,I]),r+=h.length):(I=Math.min(l.gen+1,65535),a.push([0,0,I])),s=Math.max(s,I)}catch(e){c.e(e)}finally{c.f()}for(n.set("Index",pQ(A)),f=Xt(o),C=Xt(s),B=[1,f,C],n.set("W",B),wQ(r,t,n),Q=B.reduce((function(e,t){return e+t}),0),E=new Uint8Array(Q*a.length),(d=new ar(E)).dict=n,y=0,p=0,v=a;p0){var A=function(e,t){for(var r=Math.floor(Date.now()/1e3),A=t.filename||"",n=[r.toString(),A,e.toString()],i=n.reduce((function(e,t){return e+t.length}),0),a=0,o=Object.values(t.info);a=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}function FQ(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var A,n,i,a,o=[],s=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(A=i.call(r)).done)&&(o.push(A.value),o.length!==t);s=!0);}catch(e){c=!0,n=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw n}}return o}}(e,t)||RQ(e,t)||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.")}()}function xQ(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=RQ(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function RQ(e,t){if(e){if("string"==typeof e)return GQ(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)?GQ(e,t):void 0}}function GQ(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r=0||(k.parentTreeId=a++),C=!1)}catch(e){m.e(e)}finally{m.f()}case 55:t.next=46;break;case 57:t.next=62;break;case 59:t.prev=59,t.t1=t.catch(44),B.e(t.t1);case 62:return t.prev=62,B.f(),t.finish(62);case 65:if(!C){t.next=69;break}D=xQ(i.values());try{for(D.s();!(S=D.n()).done;){F=S.value,x=xQ(F);try{for(x.s();!(R=x.n()).done;)delete(G=R.value).parentTreeId,delete G.structTreeParent}catch(e){x.e(e)}finally{x.f()}}}catch(e){D.e(e)}finally{D.f()}return t.abrupt("return",!1);case 69:return t.abrupt("return",!0);case 70:case"end":return t.stop()}}),t,this,[[18,36,39,42],[44,59,62,65]])}))),function(e){return n.apply(this,arguments)})},{key:"updateStructureTree",value:(A=LQ(SQ().mark((function t(r){var A,n,i,a,o,s,c,g,u,l,h,I,f,C,B,Q,E,d;return SQ().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return A=r.newAnnotationsByPage,n=r.pdfManager,i=r.newRefs,a=this.dict.xref,o=this.dict.clone(),s=this.ref,(c=new Oe).put(s,o),(g=o.getRaw("ParentTree"))instanceof Ye?u=a.fetch(g):(u=g,g=a.getNewTemporaryRef(),o.set("ParentTree",g)),u=u.clone(),c.put(g,u),l=u.getRaw("Nums"),h=null,l instanceof Ye&&(h=l,l=a.fetch(h)),l=l.slice(),h||u.set("Nums",l),t.next=17,TQ.call(e,{newAnnotationsByPage:A,structTreeRootRef:s,structTreeRoot:this,kids:null,nums:l,xref:a,pdfManager:n,newRefs:i,cache:c});case 17:if(-1!==(I=t.sent)){t.next=20;break}return t.abrupt("return");case 20:o.set("ParentTreeNextKey",I),h&&c.put(h,l),f=[],C=xQ(c.items()),t.prev=24,C.s();case 26:if((B=C.n()).done){t.next=34;break}return Q=FQ(B.value,2),E=Q[0],d=Q[1],f.length=0,t.next=31,iQ(E,d,f,a);case 31:i.push({ref:E,data:f.join("")});case 32:t.next=26;break;case 34:t.next=39;break;case 36:t.prev=36,t.t0=t.catch(24),C.e(t.t0);case 39:return t.prev=39,C.f(),t.finish(39);case 42:case"end":return t.stop()}}),t,this,[[24,36,39,42]])}))),function(e){return A.apply(this,arguments)})}],[{key:"canCreateStructureTree",value:(r=LQ(SQ().mark((function e(t){var r,A,n,i,a,o,s,c,g,u,l,h,I,f,C,B,Q,E,d;return SQ().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.catalogRef,A=t.pdfManager,n=t.newAnnotationsByPage,r instanceof Ye){e.next=4;break}return q("Cannot save the struct tree: no catalog reference."),e.abrupt("return",!1);case 4:i=0,a=!0,o=xQ(n),e.prev=7,o.s();case 9:if((s=o.n()).done){e.next=23;break}return c=FQ(s.value,2),g=c[0],u=c[1],e.next=13,A.getPage(g);case 13:if(e.sent.ref instanceof Ye){e.next=19;break}return q("Cannot save the struct tree: page ".concat(g," has no ref.")),a=!0,e.abrupt("break",23);case 19:l=xQ(u);try{for(l.s();!(h=l.n()).done;)f=h.value,null!==(I=f.accessibilityData)&&void 0!==I&&I.type&&(f.parentTreeId=i++,a=!1)}catch(e){l.e(e)}finally{l.f()}case 21:e.next=9;break;case 23:e.next=28;break;case 25:e.prev=25,e.t0=e.catch(7),o.e(e.t0);case 28:return e.prev=28,o.f(),e.finish(28);case 31:if(!a){e.next=35;break}C=xQ(n.values());try{for(C.s();!(B=C.n()).done;){Q=B.value,E=xQ(Q);try{for(E.s();!(d=E.n()).done;)delete d.value.parentTreeId}catch(e){E.e(e)}finally{E.f()}}}catch(e){C.e(e)}finally{C.f()}return e.abrupt("return",!1);case 35:return e.abrupt("return",!0);case 36:case"end":return e.stop()}}),e,null,[[7,25,28,31]])}))),function(e){return r.apply(this,arguments)})},{key:"createStructureTree",value:(t=LQ(SQ().mark((function t(r){var A,n,i,a,o,s,c,g,u,l,h,I,f,C,B,Q,E,d,y,p;return SQ().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return A=r.newAnnotationsByPage,n=r.xref,i=r.catalogRef,a=r.pdfManager,o=r.newRefs,s=a.catalog.cloneDict(),(c=new Oe).put(i,s),g=n.getNewTemporaryRef(),s.set("StructTreeRoot",g),(u=new He(n)).set("Type",Ue.get("StructTreeRoot")),l=n.getNewTemporaryRef(),u.set("ParentTree",l),h=[],u.set("K",h),c.put(g,u),I=new He(n),f=[],I.set("Nums",f),t.next=18,YQ(e,this,TQ).call(this,{newAnnotationsByPage:A,structTreeRootRef:g,structTreeRoot:null,kids:h,nums:f,xref:n,pdfManager:a,newRefs:o,cache:c});case 18:C=t.sent,u.set("ParentTreeNextKey",C),c.put(l,I),B=[],Q=xQ(c.items()),t.prev=23,Q.s();case 25:if((E=Q.n()).done){t.next=33;break}return d=FQ(E.value,2),y=d[0],p=d[1],B.length=0,t.next=30,iQ(y,p,B,n);case 30:o.push({ref:y,data:B.join("")});case 31:t.next=25;break;case 33:t.next=38;break;case 35:t.prev=35,t.t0=t.catch(23),Q.e(t.t0);case 38:return t.prev=38,Q.f(),t.finish(38);case 41:case"end":return t.stop()}}),t,this,[[23,35,38,41]])}))),function(e){return t.apply(this,arguments)})}]);var t,r,A,n}();function KQ(e,t,r){if(e instanceof Ye&&!(t<0)){this.structParentIds||(this.structParentIds=new Oe);var A=this.structParentIds.get(e);A||(A=[],this.structParentIds.put(e,A)),A.push([t,r])}}function TQ(e){return qQ.apply(this,arguments)}function qQ(){return(qQ=LQ(SQ().mark((function e(t){var r,A,n,i,a,o,s,c,g,u,l,h,I,f,C,B,Q,E,d,y,p,v,m,w,b,k,D,S,F,x,R,G,N,L,U,M,J;return SQ().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=t.newAnnotationsByPage,A=t.structTreeRootRef,n=t.structTreeRoot,i=t.kids,a=t.nums,o=t.xref,s=t.pdfManager,c=t.newRefs,g=t.cache,u=Ue.get("OBJR"),l=-1,I=[],f=xQ(r),e.prev=5,f.s();case 7:if((C=f.n()).done){e.next=59;break}return B=FQ(C.value,2),Q=B[0],E=B[1],e.next=11,s.getPage(Q);case 11:d=e.sent,y=d.ref,p=y instanceof Ye,v=xQ(E),e.prev=15,v.s();case 17:if((m=v.n()).done){e.next=49;break}if(w=m.value,b=w.accessibilityData,k=w.ref,D=w.parentTreeId,S=w.structTreeParent,null!=b&&b.type){e.next=21;break}return e.abrupt("continue",47);case 21:if(F=b.structParent,!(n&&Number.isInteger(F)&&F>=0)){e.next=34;break}if(void 0===(R=(h||(h=new Map)).get(Q))&&(G=new zQ(n,d.pageDict),R=G.collectObjects(y),h.set(Q,R)),!(N=null===(x=R)||void 0===x?void 0:x.get(F))){e.next=34;break}return L=o.fetch(N).clone(),jQ.call(_B,L,b),I.length=0,e.next=32,iQ(N,L,I,o);case 32:return c.push({ref:N,data:I.join("")}),e.abrupt("continue",47);case 34:return l=Math.max(l,D),U=o.getNewTemporaryRef(),M=new He(o),jQ.call(_B,M,b),e.next=40,YQ(_B,this,ZQ).call(this,{structTreeParent:S,tagDict:M,newTagRef:U,structTreeRootRef:A,fallbackKids:i,xref:o,cache:g});case 40:J=new He(o),M.set("K",J),J.set("Type",u),p&&J.set("Pg",y),J.set("Obj",k),g.put(U,M),a.push(D,U);case 47:e.next=17;break;case 49:e.next=54;break;case 51:e.prev=51,e.t0=e.catch(15),v.e(e.t0);case 54:return e.prev=54,v.f(),e.finish(54);case 57:e.next=7;break;case 59:e.next=64;break;case 61:e.prev=61,e.t1=e.catch(5),f.e(e.t1);case 64:return e.prev=64,f.f(),e.finish(64);case 67:return e.abrupt("return",l+1);case 68:case"end":return e.stop()}}),e,this,[[5,61,64,67],[15,51,54,57]])})))).apply(this,arguments)}function jQ(e,t){var r=t.type,A=t.title,n=t.lang,i=t.alt,a=t.expanded,o=t.actualText;e.set("S",Ue.get(r)),A&&e.set("T",jt(A)),n&&e.set("Lang",jt(n)),i&&e.set("Alt",jt(i)),a&&e.set("E",jt(a)),o&&e.set("ActualText",jt(o))}function WQ(e){var t,r=e.elements,A=e.xref,n=e.pageDict,i=e.numberTree,a=new Map,o=xQ(r);try{for(o.s();!(t=o.n()).done;){var s=t.value;if(s.structTreeParentId){var c=parseInt(s.structTreeParentId.split("_mc")[1],10),g=a.get(c);g||(g=[],a.set(c,g)),g.push(s)}}}catch(e){o.e(e)}finally{o.f()}var u=n.get("StructParents");if(Number.isInteger(u)){var l,h=function(e,t,r){var n=a.get(e);if(n){var i=t.getRaw("P"),o=A.fetchIfRef(i);if(i instanceof Ye&&o instanceof He){var s,c={ref:r,dict:t},g=xQ(n);try{for(g.s();!(s=g.n()).done;)s.value.structTreeParent=c}catch(e){g.e(e)}finally{g.f()}}return!0}return!1},I=xQ(i.get(u));try{for(I.s();!(l=I.n()).done;){var f=l.value;if(f instanceof Ye){var C=A.fetch(f),B=C.get("K");if(Number.isInteger(B))h(B,C,f);else if(Array.isArray(B)){var Q,E=xQ(B);try{for(E.s();!(Q=E.n()).done;){var d=Q.value;if(d=A.fetchIfRef(d),Number.isInteger(d)&&h(d,C,f))break;if(d instanceof He){if(!Ke(d.get("Type"),"MCR"))break;var y=d.get("MCID");if(Number.isInteger(y)&&h(y,C,f))break}}}catch(e){E.e(e)}finally{E.f()}}}}}catch(e){I.e(e)}finally{I.f()}}}function ZQ(e){return _Q.apply(this,arguments)}function _Q(){return(_Q=LQ(SQ().mark((function e(t){var r,A,n,i,a,o,s,c,g,u,l,h,I,f,C;return SQ().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.structTreeParent,A=t.tagDict,n=t.newTagRef,i=t.structTreeRootRef,a=t.fallbackKids,o=t.xref,s=t.cache,c=null,r?(c=r.ref,g=r.dict.getRaw("P")||i):g=i,A.set("P",g),u=o.fetchIfRef(g)){e.next=8;break}return a.push(n),e.abrupt("return");case 8:(l=s.get(g))||(l=u.clone(),s.put(g,l)),h=l.getRaw("K"),(I=h instanceof Ye?s.get(h):null)||(I=o.fetchIfRef(h),I=Array.isArray(I)?I.slice():[h],f=o.getNewTemporaryRef(),l.set("K",f),s.put(f,I)),C=I.indexOf(c),I.splice(C>=0?C+1:I.length,0,n);case 15:case"end":return e.stop()}}),e)})))).apply(this,arguments)}_B=OQ;var XQ=function(){return JQ((function e(t,r){UQ(this,e),this.tree=t,this.dict=r,this.kids=[],this.parseKids()}),[{key:"role",get:function(){var e=this.dict.get("S"),t=e instanceof Ue?e.name:"",r=this.tree.root;return r.roleMap.has(t)?r.roleMap.get(t):t}},{key:"parseKids",value:function(){var e=null,t=this.dict.getRaw("Pg");t instanceof Ye&&(e=t.toString());var r=this.dict.get("K");if(Array.isArray(r)){var A,n=xQ(r);try{for(n.s();!(A=n.n()).done;){var i=A.value,a=this.parseKid(e,i);a&&this.kids.push(a)}}catch(e){n.e(e)}finally{n.f()}}else{var o=this.parseKid(e,r);o&&this.kids.push(o)}}},{key:"parseKid",value:function(e,t){if(Number.isInteger(t))return this.tree.pageDict.objId!==e?null:new VQ({type:1,mcid:t,pageObjId:e});var r=null;if(t instanceof Ye?r=this.dict.xref.fetch(t):t instanceof He&&(r=t),!r)return null;var A=r.getRaw("Pg");A instanceof Ye&&(e=A.toString());var n=r.get("Type")instanceof Ue?r.get("Type").name:null;if("MCR"===n){if(this.tree.pageDict.objId!==e)return null;var i=r.getRaw("Stm");return new VQ({type:2,refObjId:i instanceof Ye?i.toString():null,pageObjId:e,mcid:r.get("MCID")})}if("OBJR"===n){if(this.tree.pageDict.objId!==e)return null;var a=r.getRaw("Obj");return new VQ({type:3,refObjId:a instanceof Ye?a.toString():null,pageObjId:e})}return new VQ({type:5,dict:r})}}])}(),VQ=JQ((function e(t){var r=t.type,A=t.dict,n=void 0===A?null:A,i=t.mcid,a=void 0===i?null:i,o=t.pageObjId,s=void 0===o?null:o,c=t.refObjId,g=void 0===c?null:c;UQ(this,e),this.type=r,this.dict=n,this.mcid=a,this.pageObjId=s,this.refObjId=g,this.parentNode=null})),zQ=function(){return JQ((function e(t,r){UQ(this,e),this.root=t,this.rootDict=t?t.dict:null,this.pageDict=r,this.nodes=[]}),[{key:"collectObjects",value:function(e){var t;if(!(this.root&&this.rootDict&&e instanceof Ye))return null;var r=this.rootDict.get("ParentTree");if(!r)return null;var A=null===(t=this.root.structParentIds)||void 0===t?void 0:t.get(e);if(!A)return null;var n,i=new Map,a=new MC(r,this.rootDict.xref),o=xQ(A);try{for(o.s();!(n=o.n()).done;){var s=FQ(n.value,1)[0],c=a.getRaw(s);c instanceof Ye&&i.set(s,c)}}catch(e){o.e(e)}finally{o.f()}return i}},{key:"parse",value:function(e){var t;if(this.root&&this.rootDict&&e instanceof Ye){var r=this.rootDict.get("ParentTree");if(r){var A=this.pageDict.get("StructParents"),n=null===(t=this.root.structParentIds)||void 0===t?void 0:t.get(e);if(Number.isInteger(A)||n){var i=new Map,a=new MC(r,this.rootDict.xref);if(Number.isInteger(A)){var o=a.get(A);if(Array.isArray(o)){var s,c=xQ(o);try{for(c.s();!(s=c.n()).done;){var g=s.value;g instanceof Ye&&this.addNode(this.rootDict.xref.fetch(g),i)}}catch(e){c.e(e)}finally{c.f()}}}if(n){var u,l=xQ(n);try{for(l.s();!(u=l.n()).done;){var h=FQ(u.value,2),I=h[0],f=h[1],C=a.get(I);if(C){var B,Q=this.addNode(this.rootDict.xref.fetchIfRef(C),i);1===(null==Q||null===(B=Q.kids)||void 0===B?void 0:B.length)&&3===Q.kids[0].type&&(Q.kids[0].type=f)}}}catch(e){l.e(e)}finally{l.f()}}}}}}},{key:"addNode",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(r>40)return q("StructTree MAX_DEPTH reached."),null;if(!(e instanceof He))return null;if(t.has(e))return t.get(e);var A=new XQ(this,e);t.set(e,A);var n=e.get("P");if(!n||Ke(n.get("Type"),"StructTreeRoot"))return this.addTopLevelNode(e,A)||t.delete(e),A;var i=this.addNode(n,t,r+1);if(!i)return A;var a,o=!1,s=xQ(i.kids);try{for(s.s();!(a=s.n()).done;){var c=a.value;5===c.type&&c.dict===e&&(c.parentNode=A,o=!0)}}catch(e){s.e(e)}finally{s.f()}return o||t.delete(e),A}},{key:"addTopLevelNode",value:function(e,t){var r=this.rootDict.get("K");if(!r)return!1;if(r instanceof He)return r.objId===e.objId&&(this.nodes[0]=t,!0);if(!Array.isArray(r))return!0;for(var A=!1,n=0;n2&&void 0!==arguments[2]?arguments[2]:0;if(A>40)q("StructTree too deep to be fully serialized.");else{var n=Object.create(null);n.role=t.role,n.children=[],r.children.push(n);var i=t.dict.get("Alt");"string"!=typeof i&&(i=t.dict.get("ActualText")),"string"==typeof i&&(n.alt=Ie(i));var a=t.dict.get("A");if(a instanceof He){var o=Rt(a.getArray("BBox"),null);if(o)n.bbox=o;else{var s=a.get("Width"),c=a.get("Height");"number"==typeof s&&s>0&&"number"==typeof c&&c>0&&(n.bbox=[0,0,s,c])}}var g=t.dict.get("Lang");"string"==typeof g&&(n.lang=Ie(g));var u,l=xQ(t.kids);try{for(l.s();!(u=l.n()).done;){var h=u.value,I=5===h.type?h.parentNode:null;I?e(I,n,A+1):1===h.type||2===h.type?n.children.push({type:"content",id:"p".concat(h.pageObjId,"_mc").concat(h.mcid)}):3===h.type?n.children.push({type:"object",id:h.refObjId}):4===h.type&&n.children.push({type:"annotation",id:"".concat("pdfjs_internal_id_").concat(h.refObjId)})}}catch(e){l.e(e)}finally{l.f()}}}var t=Object.create(null);t.children=[],t.role="Root";var r,A=xQ(this.nodes);try{for(A.s();!(r=A.n()).done;){var n=r.value;n&&e(n,t)}}catch(e){A.e(e)}finally{A.f()}return t}}])}();function $Q(){$Q=function(){return t};var e,t={},r=Object.prototype,A=r.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,r){return e[t]=r}}function g(e,t,r,A){var i=t&&t.prototype instanceof B?t:B,a=Object.create(i.prototype),o=new F(A||[]);return n(a,"_invoke",{value:b(e,r,o)}),a}function u(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=g;var l="suspendedStart",h="suspendedYield",I="executing",f="completed",C={};function B(){}function Q(){}function E(){}var d={};c(d,a,(function(){return this}));var y=Object.getPrototypeOf,p=y&&y(y(x([])));p&&p!==r&&A.call(p,a)&&(d=p);var v=E.prototype=B.prototype=Object.create(d);function m(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function r(n,i,a,o){var s=u(e[n],e,i);if("throw"!==s.type){var c=s.arg,g=c.value;return g&&"object"==typeof g&&A.call(g,"__await")?t.resolve(g.__await).then((function(e){r("next",e,a,o)}),(function(e){r("throw",e,a,o)})):t.resolve(g).then((function(e){c.value=e,a(c)}),(function(e){return r("throw",e,a,o)}))}o(s.arg)}var i;n(this,"_invoke",{value:function(e,A){function n(){return new t((function(t,n){r(e,A,t,n)}))}return i=i?i.then(n,n):n()}})}function b(t,r,A){var n=l;return function(i,a){if(n===I)throw Error("Generator is already running");if(n===f){if("throw"===i)throw a;return{value:e,done:!0}}for(A.method=i,A.arg=a;;){var o=A.delegate;if(o){var s=k(o,A);if(s){if(s===C)continue;return s}}if("next"===A.method)A.sent=A._sent=A.arg;else if("throw"===A.method){if(n===l)throw n=f,A.arg;A.dispatchException(A.arg)}else"return"===A.method&&A.abrupt("return",A.arg);n=I;var c=u(t,r,A);if("normal"===c.type){if(n=A.done?f:h,c.arg===C)continue;return{value:c.arg,done:A.done}}"throw"===c.type&&(n=f,A.method="throw",A.arg=c.arg)}}}function k(t,r){var A=r.method,n=t.iterator[A];if(n===e)return r.delegate=null,"throw"===A&&t.iterator.return&&(r.method="return",r.arg=e,k(t,r),"throw"===r.method)||"return"!==A&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+A+"' method")),C;var i=u(n,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,C;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,C):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,C)}function D(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function F(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(D,this),this.reset(!0)}function x(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,i=function r(){for(;++n=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}function eE(e,t,r,A,n,i,a){try{var o=e[i](a),s=o.value}catch(e){return void r(e)}o.done?t(s):Promise.resolve(s).then(A,n)}function tE(e){return function(){var t=this,r=arguments;return new Promise((function(A,n){var i=e.apply(t,r);function a(e){eE(i,A,n,a,o,"next",e)}function o(e){eE(i,A,n,a,o,"throw",e)}a(void 0)}))}}function rE(e,t){return gE(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var A,n,i,a,o=[],s=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(A=i.call(r)).done)&&(o.push(A.value),o.length!==t);s=!0);}catch(e){c=!0,n=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw n}}return o}}(e,t)||sE(e,t)||oE()}function AE(e,t){for(var r=0;r=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function oE(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function sE(e,t){if(e){if("string"==typeof e)return cE(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)?cE(e,t):void 0}}function cE(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r3)return!1;break;case"Fit":case"FitB":return 0===i;case"FitH":case"FitBH":case"FitV":case"FitBV":if(i>1)return!1;break;case"FitR":if(4!==i)return!1;a=!1;break;default:return!1}var o,s=aE(n);try{for(s.s();!(o=s.n()).done;){var c=o.value;if(!("number"==typeof c||a&&null===c))return!1}}catch(e){s.e(e)}finally{s.f()}return!0}function lE(e){return e instanceof He&&(e=e.get("D")),uE(e)?e:null}function hE(e){var t=e.get("D");if(t){if(t instanceof Ue&&(t=t.name),"string"==typeof t)return Ie(t);if(uE(t))return JSON.stringify(t)}return null}var IE=new WeakSet,fE=function(){function e(t,r){if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),function(e,t){(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e,t),t.add(e)}(this,IE),this.pdfManager=t,this.xref=r,this._catDict=r.getCatalogObj(),!(this._catDict instanceof He))throw new re("Catalog object is not a dictionary.");this.toplevelPagesDict,this._actualNumPages=null,this.fontCache=new Oe,this.builtInCMapCache=new Map,this.standardFontDataCache=new Map,this.globalImageCache=new Kh,this.pageKidsCountCache=new Oe,this.pageIndexCache=new Oe,this.pageDictCache=new Oe,this.nonBlendModesSet=new Pe,this.systemFontCache=new Map}return function(e,t,r){return t&&AE(e.prototype,t),r&&AE(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}(e,[{key:"cloneDict",value:function(){return this._catDict.clone()}},{key:"version",get:function(){var e=this._catDict.get("Version");if(e instanceof Ue){if(It.test(e.name))return _(this,"version",e.name);q("Invalid PDF catalog version: ".concat(e.name))}return _(this,"version",null)}},{key:"lang",get:function(){var e=this._catDict.get("Lang");return _(this,"lang",e&&"string"==typeof e?Ie(e):null)}},{key:"needsRendering",get:function(){var e=this._catDict.get("NeedsRendering");return _(this,"needsRendering","boolean"==typeof e&&e)}},{key:"collection",get:function(){var e=null;try{var t=this._catDict.get("Collection");t instanceof He&&t.size>0&&(e=t)}catch(e){if(e instanceof Ct)throw e;T("Cannot fetch Collection entry; assuming no collection is present.")}return _(this,"collection",e)}},{key:"acroForm",get:function(){var e=null;try{var t=this._catDict.get("AcroForm");t instanceof He&&t.size>0&&(e=t)}catch(e){if(e instanceof Ct)throw e;T("Cannot fetch AcroForm entry; assuming no forms are present.")}return _(this,"acroForm",e)}},{key:"acroFormRef",get:function(){var e=this._catDict.getRaw("AcroForm");return _(this,"acroFormRef",e instanceof Ye?e:null)}},{key:"metadata",get:function(){var e=this._catDict.getRaw("Metadata");if(!(e instanceof Ye))return _(this,"metadata",null);var t=null;try{var r,A=this.xref.fetch(e,!(null!==(r=this.xref.encrypt)&&void 0!==r&&r.encryptMetadata));if(A instanceof ze&&A.dict instanceof He){var n=A.dict.get("Type"),i=A.dict.get("Subtype");if(Ke(n,"Metadata")&&Ke(i,"XML")){var a=fe(A.getString());a&&(t=new lB(a).serializable)}}}catch(e){if(e instanceof Ct)throw e;T('Skipping invalid Metadata: "'.concat(e,'".'))}return _(this,"metadata",t)}},{key:"markInfo",get:function(){var e=null;try{e=this._readMarkInfo()}catch(e){if(e instanceof Ct)throw e;q("Unable to read mark info.")}return _(this,"markInfo",e)}},{key:"_readMarkInfo",value:function(){var e=this._catDict.get("MarkInfo");if(!(e instanceof He))return null;var t={Marked:!1,UserProperties:!1,Suspects:!1};for(var r in t){var A=e.get(r);"boolean"==typeof A&&(t[r]=A)}return t}},{key:"structTreeRoot",get:function(){var e=null;try{e=this._readStructTreeRoot()}catch(e){if(e instanceof Ct)throw e;q("Unable read to structTreeRoot info.")}return _(this,"structTreeRoot",e)}},{key:"_readStructTreeRoot",value:function(){var e=this._catDict.getRaw("StructTreeRoot"),t=this.xref.fetchIfRef(e);if(!(t instanceof He))return null;var r=new OQ(t,e);return r.init(),r}},{key:"toplevelPagesDict",get:function(){var e=this._catDict.get("Pages");if(!(e instanceof He))throw new re("Invalid top-level pages dictionary.");return _(this,"toplevelPagesDict",e)}},{key:"documentOutline",get:function(){var e=null;try{e=this._readDocumentOutline()}catch(e){if(e instanceof Ct)throw e;q("Unable to read document outline.")}return _(this,"documentOutline",e)}},{key:"_readDocumentOutline",value:function(){var t=this._catDict.get("Outlines");if(!(t instanceof He))return null;if(!((t=t.getRaw("First"))instanceof Ye))return null;var r={items:[]},A=[{obj:t,parent:r}],n=new Pe;n.put(t);for(var i=this.xref,a=new Uint8ClampedArray(3);A.length>0;){var o=A.shift(),s=i.fetchIfRef(o.obj);if(null!==s){s.has("Title")||q("Invalid outline item encountered.");var c={url:null,dest:null,action:null};e.parseDestDictionary({destDict:s,resultObj:c,docBaseUrl:this.baseUrl,docAttachments:this.attachments});var g=s.get("Title"),u=s.get("F")||0,l=s.getArray("C"),h=s.get("Count"),I=a;!St(l,3)||0===l[0]&&0===l[1]&&0===l[2]||(I=Ur.singletons.rgb.getRgb(l,0));var f={action:c.action,attachment:c.attachment,dest:c.dest,url:c.url,unsafeUrl:c.unsafeUrl,newWindow:c.newWindow,setOCGState:c.setOCGState,title:"string"==typeof g?Ie(g):"",color:I,count:Number.isInteger(h)?h:void 0,bold:!!(2&u),italic:!!(1&u),items:[]};o.parent.items.push(f),(t=s.getRaw("First"))instanceof Ye&&!n.has(t)&&(A.push({obj:t,parent:f}),n.put(t)),(t=s.getRaw("Next"))instanceof Ye&&!n.has(t)&&(A.push({obj:t,parent:o.parent}),n.put(t))}}return r.items.length>0?r.items:null}},{key:"permissions",get:function(){var e=null;try{e=this._readPermissions()}catch(e){if(e instanceof Ct)throw e;q("Unable to read permissions.")}return _(this,"permissions",e)}},{key:"_readPermissions",value:function(){var e=this.xref.trailer.get("Encrypt");if(!(e instanceof He))return null;var t=e.get("P");if("number"!=typeof t)return null;t+=Math.pow(2,32);var r=[];for(var A in y){var n=y[A];t&n&&r.push(n)}return r}},{key:"optionalContentConfig",get:function(){var e=null;try{var t=this._catDict.get("OCProperties");if(!t)return _(this,"optionalContentConfig",null);var r=t.get("D");if(!r)return _(this,"optionalContentConfig",null);var A=t.get("OCGs");if(!Array.isArray(A))return _(this,"optionalContentConfig",null);var n,i=[],a=new Pe,o=aE(A);try{for(o.s();!(n=o.n()).done;){var s=n.value;s instanceof Ye&&!a.has(s)&&(a.put(s),i.push(iE(IE,this,CE).call(this,s)))}}catch(e){o.e(e)}finally{o.f()}(e=iE(IE,this,BE).call(this,r,a)).groups=i}catch(e){if(e instanceof Ct)throw e;q("Unable to read optional content config: ".concat(e))}return _(this,"optionalContentConfig",e)}},{key:"setActualNumPages",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this._actualNumPages=e}},{key:"hasActualNumPages",get:function(){return null!==this._actualNumPages}},{key:"_pagesCount",get:function(){var e=this.toplevelPagesDict.get("Count");if(!Number.isInteger(e))throw new re("Page count in top-level pages dictionary is not an integer.");return _(this,"_pagesCount",e)}},{key:"numPages",get:function(){return this.hasActualNumPages?this._actualNumPages:this._pagesCount}},{key:"destinations",get:function(){var e=this._readDests(),t=Object.create(null);if(e instanceof UC){var r,A=aE(e.getAll());try{for(A.s();!(r=A.n()).done;){var n=rE(r.value,2),i=n[0],a=lE(n[1]);a&&(t[Ie(i)]=a)}}catch(e){A.e(e)}finally{A.f()}}else e instanceof He&&e.forEach((function(e,r){var A=lE(r);A&&(t[e]=A)}));return _(this,"destinations",t)}},{key:"getDestination",value:function(e){var t=this._readDests();if(t instanceof UC){var r=lE(t.get(e));if(r)return r;var A=this.destinations[e];if(A)return q('Found "'.concat(e,'" at an incorrect position in the NameTree.')),A}else if(t instanceof He){var n=lE(t.get(e));if(n)return n}return null}},{key:"_readDests",value:function(){var e=this._catDict.get("Names");return null!=e&&e.has("Dests")?new UC(e.getRaw("Dests"),this.xref):this._catDict.has("Dests")?this._catDict.get("Dests"):void 0}},{key:"pageLabels",get:function(){var e=null;try{e=this._readPageLabels()}catch(e){if(e instanceof Ct)throw e;q("Unable to read page labels.")}return _(this,"pageLabels",e)}},{key:"_readPageLabels",value:function(){var e=this._catDict.getRaw("PageLabels");if(!e)return null;for(var t=new Array(this.numPages),r=null,A="",n=new MC(e,this.xref).getAll(),i="",a=1,o=0,s=this.numPages;o=1))throw new re("Invalid start in PageLabel dictionary.");a=l}else a=1}switch(r){case"D":i=a;break;case"R":case"r":i=vt(a,"r"===r);break;case"A":case"a":var h="a"===r?97:65,I=a-1;i=String.fromCharCode(h+I%26).repeat(Math.floor(I/26)+1);break;default:if(r)throw new re('Invalid style "'.concat(r,'" in PageLabel dictionary.'));i=""}t[o]=A+i,a++}return t}},{key:"pageLayout",get:function(){var e=this._catDict.get("PageLayout"),t="";if(e instanceof Ue)switch(e.name){case"SinglePage":case"OneColumn":case"TwoColumnLeft":case"TwoColumnRight":case"TwoPageLeft":case"TwoPageRight":t=e.name}return _(this,"pageLayout",t)}},{key:"pageMode",get:function(){var e=this._catDict.get("PageMode"),t="UseNone";if(e instanceof Ue)switch(e.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"FullScreen":case"UseOC":case"UseAttachments":t=e.name}return _(this,"pageMode",t)}},{key:"viewerPreferences",get:function(){var e=this,t=this._catDict.get("ViewerPreferences");if(!(t instanceof He))return _(this,"viewerPreferences",null);var r,A=null,n=aE(t.getKeys());try{for(n.s();!(r=n.n()).done;){var i=r.value,a=t.get(i),o=void 0;switch(i){case"HideToolbar":case"HideMenubar":case"HideWindowUI":case"FitWindow":case"CenterWindow":case"DisplayDocTitle":case"PickTrayByPDFSize":"boolean"==typeof a&&(o=a);break;case"NonFullScreenPageMode":if(a instanceof Ue)switch(a.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"UseOC":o=a.name;break;default:o="UseNone"}break;case"Direction":if(a instanceof Ue)switch(a.name){case"L2R":case"R2L":o=a.name;break;default:o="L2R"}break;case"ViewArea":case"ViewClip":case"PrintArea":case"PrintClip":if(a instanceof Ue)switch(a.name){case"MediaBox":case"CropBox":case"BleedBox":case"TrimBox":case"ArtBox":o=a.name;break;default:o="CropBox"}break;case"PrintScaling":if(a instanceof Ue)switch(a.name){case"None":case"AppDefault":o=a.name;break;default:o="AppDefault"}break;case"Duplex":if(a instanceof Ue)switch(a.name){case"Simplex":case"DuplexFlipShortEdge":case"DuplexFlipLongEdge":o=a.name;break;default:o="None"}break;case"PrintPageRange":Array.isArray(a)&&a.length%2==0&&a.every((function(t,r,A){return Number.isInteger(t)&&t>0&&(0===r||t>=A[r-1])&&t<=e.numPages}))&&(o=a);break;case"NumCopies":Number.isInteger(a)&&a>0&&(o=a);break;default:q("Ignoring non-standard key in ViewerPreferences: ".concat(i,"."));continue}void 0!==o?(A||(A=Object.create(null)),A[i]=o):q('Bad value, for key "'.concat(i,'", in ViewerPreferences: ').concat(a,"."))}}catch(e){n.e(e)}finally{n.f()}return _(this,"viewerPreferences",A)}},{key:"openAction",get:function(){var t=this._catDict.get("OpenAction"),r=Object.create(null);if(t instanceof He){var A=new He(this.xref);A.set("A",t);var n={url:null,dest:null,action:null};e.parseDestDictionary({destDict:A,resultObj:n}),Array.isArray(n.dest)?r.dest=n.dest:n.action&&(r.action=n.action)}else Array.isArray(t)&&(r.dest=t);return _(this,"openAction",oe(r)>0?r:null)}},{key:"attachments",get:function(){var e=this._catDict.get("Names"),t=null;if(e instanceof He&&e.has("EmbeddedFiles")){var r,A=aE(new UC(e.getRaw("EmbeddedFiles"),this.xref).getAll());try{for(A.s();!(r=A.n()).done;){var n=rE(r.value,2),i=n[0],a=n[1],o=new TC(a,this.xref);t||(t=Object.create(null)),t[Ie(i)]=o.serializable}}catch(e){A.e(e)}finally{A.f()}}return _(this,"attachments",t)}},{key:"xfaImages",get:function(){var e=this._catDict.get("Names"),t=null;if(e instanceof He&&e.has("XFAImages")){var r,A=aE(new UC(e.getRaw("XFAImages"),this.xref).getAll());try{for(A.s();!(r=A.n()).done;){var n=rE(r.value,2),i=n[0],a=n[1];t||(t=new He(this.xref)),t.set(Ie(i),a)}}catch(e){A.e(e)}finally{A.f()}}return _(this,"xfaImages",t)}},{key:"_collectJavaScript",value:function(){var e=this._catDict.get("Names"),t=null;function r(e,r){if(r instanceof He&&Ke(r.get("S"),"JavaScript")){var A=r.get("JS");if(A instanceof ze)A=A.getString();else if("string"!=typeof A)return;(A=Ie(A).replaceAll("\\0",""))&&(t||(t=new Map)).set(e,A)}}if(e instanceof He&&e.has("JavaScript")){var A,n=aE(new UC(e.getRaw("JavaScript"),this.xref).getAll());try{for(n.s();!(A=n.n()).done;){var i=rE(A.value,2),a=i[0],o=i[1];r(Ie(a),o)}}catch(e){n.e(e)}finally{n.f()}}var s=this._catDict.get("OpenAction");return s&&r("OpenAction",s),t}},{key:"jsActions",get:function(){var e=this._collectJavaScript(),t=Mt(this.xref,this._catDict,k);if(e){t||(t=Object.create(null));var r,A=aE(e);try{for(A.s();!(r=A.n()).done;){var n=rE(r.value,2),i=n[0],a=n[1];i in t?t[i].push(a):t[i]=[a]}}catch(e){A.e(e)}finally{A.f()}}return _(this,"jsActions",t)}},{key:"fontFallback",value:(n=tE($Q().mark((function e(t,r){var A,n,i,a;return $Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.all(this.fontCache);case 2:A=e.sent,n=aE(A),e.prev=4,n.s();case 6:if((i=n.n()).done){e.next=13;break}if((a=i.value).loadedName!==t){e.next=11;break}return a.fallback(r),e.abrupt("return");case 11:e.next=6;break;case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(4),n.e(e.t0);case 18:return e.prev=18,n.f(),e.finish(18);case 21:case"end":return e.stop()}}),e,this,[[4,15,18,21]])}))),function(e,t){return n.apply(this,arguments)})},{key:"cleanup",value:(A=tE($Q().mark((function e(){var t,r,A,n,i=arguments;return $Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=i.length>0&&void 0!==i[0]&&i[0],JC(),this.globalImageCache.clear(t),this.pageKidsCountCache.clear(),this.pageIndexCache.clear(),this.pageDictCache.clear(),this.nonBlendModesSet.clear(),e.next=9,Promise.all(this.fontCache);case 9:r=e.sent,A=aE(r);try{for(A.s();!(n=A.n()).done;)delete n.value.dict.cacheKey}catch(e){A.e(e)}finally{A.f()}this.fontCache.clear(),this.builtInCMapCache.clear(),this.standardFontDataCache.clear(),this.systemFontCache.clear();case 16:case"end":return e.stop()}}),e,this)}))),function(){return A.apply(this,arguments)})},{key:"getPageDict",value:(r=tE($Q().mark((function e(t){var r,A,n,i,a,o,s,c,g,u,l,h,I,f,C,B,Q,E;return $Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=[this.toplevelPagesDict],A=new Pe,(n=this._catDict.getRaw("Pages"))instanceof Ye&&A.put(n),i=this.xref,a=this.pageKidsCountCache,o=this.pageIndexCache,s=this.pageDictCache,c=0;case 6:if(!r.length){e.next=67;break}if(!((g=r.pop())instanceof Ye)){e.next=34;break}if(!((u=a.get(g))>=0&&c+u<=t)){e.next=13;break}return c+=u,e.abrupt("continue",6);case 13:if(!A.has(g)){e.next=15;break}throw new re("Pages tree contains circular reference.");case 15:return A.put(g),e.next=18,s.get(g)||i.fetchAsync(g);case 18:if(!((l=e.sent)instanceof He)){e.next=32;break}if(!((h=l.getRaw("Type"))instanceof Ye)){e.next=25;break}return e.next=24,i.fetchAsync(h);case 24:h=e.sent;case 25:if(!Ke(h,"Page")&&l.has("Kids")){e.next=32;break}if(a.has(g)||a.put(g,1),o.has(g)||o.put(g,c),c!==t){e.next=30;break}return e.abrupt("return",[l,g]);case 30:return c++,e.abrupt("continue",6);case 32:return r.push(l),e.abrupt("continue",6);case 34:if(g instanceof He){e.next=36;break}throw new re("Page dictionary kid reference points to wrong type of object.");case 36:if(I=g.objId,!((f=g.getRaw("Count"))instanceof Ye)){e.next=42;break}return e.next=41,i.fetchAsync(f);case 41:f=e.sent;case 42:if(!(Number.isInteger(f)&&f>=0)){e.next=47;break}if(I&&!a.has(I)&&a.put(I,f),!(c+f<=t)){e.next=47;break}return c+=f,e.abrupt("continue",6);case 47:if(!((C=g.getRaw("Kids"))instanceof Ye)){e.next=52;break}return e.next=51,i.fetchAsync(C);case 51:C=e.sent;case 52:if(Array.isArray(C)){e.next=64;break}if(!((B=g.getRaw("Type"))instanceof Ye)){e.next=58;break}return e.next=57,i.fetchAsync(B);case 57:B=e.sent;case 58:if(!Ke(B,"Page")&&g.has("Kids")){e.next=63;break}if(c!==t){e.next=61;break}return e.abrupt("return",[g,null]);case 61:return c++,e.abrupt("continue",6);case 63:throw new re("Page dictionary kids object is not an array.");case 64:for(Q=C.length-1;Q>=0;Q--)E=C[Q],r.push(E),g===this.toplevelPagesDict&&E instanceof Ye&&!s.has(E)&&s.put(E,i.fetchAsync(E));e.next=6;break;case 67:throw new Error("Page index ".concat(t," not found."));case 68:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"getAllPageDicts",value:(t=tE($Q().mark((function e(){var t,r,A,n,i,a,o,s,c,g,u,l,h,I,f,C,B,Q,E=arguments;return $Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:u=function(e){if(e instanceof Qt&&!t)throw e;t&&r&&0===c&&(q('getAllPageDicts - Skipping invalid first page: "'.concat(e,'".')),e=He.empty),a.set(c++,[e,null])},g=function(e,t){t&&!s.has(t)&&s.put(t,c),a.set(c++,[e,t])},t=E.length>0&&void 0!==E[0]&&E[0],r=this.pdfManager.evaluatorOptions.ignoreErrors,A=[{currentNode:this.toplevelPagesDict,posInKids:0}],n=new Pe,(i=this._catDict.getRaw("Pages"))instanceof Ye&&n.put(i),a=new Map,o=this.xref,s=this.pageIndexCache,c=0;case 10:if(!(A.length>0)){e.next=70;break}if(l=A.at(-1),h=l.currentNode,I=l.posInKids,!((f=h.getRaw("Kids"))instanceof Ye)){e.next=25;break}return e.prev=15,e.next=18,o.fetchAsync(f);case 18:f=e.sent,e.next=25;break;case 21:return e.prev=21,e.t0=e.catch(15),u(e.t0),e.abrupt("break",70);case 25:if(Array.isArray(f)){e.next=28;break}return u(new re("Page dictionary kids object is not an array.")),e.abrupt("break",70);case 28:if(!(I>=f.length)){e.next=31;break}return A.pop(),e.abrupt("continue",10);case 31:if(C=f[I],B=void 0,!(C instanceof Ye)){e.next=50;break}if(!n.has(C)){e.next=37;break}return u(new re("Pages tree contains circular reference.")),e.abrupt("break",70);case 37:return n.put(C),e.prev=38,e.next=41,o.fetchAsync(C);case 41:B=e.sent,e.next=48;break;case 44:return e.prev=44,e.t1=e.catch(38),u(e.t1),e.abrupt("break",70);case 48:e.next=51;break;case 50:B=C;case 51:if(B instanceof He){e.next=54;break}return u(new re("Page dictionary kid reference points to wrong type of object.")),e.abrupt("break",70);case 54:if(!((Q=B.getRaw("Type"))instanceof Ye)){e.next=66;break}return e.prev=56,e.next=59,o.fetchAsync(Q);case 59:Q=e.sent,e.next=66;break;case 62:return e.prev=62,e.t2=e.catch(56),u(e.t2),e.abrupt("break",70);case 66:Ke(Q,"Page")||!B.has("Kids")?g(B,C instanceof Ye?C:null):A.push({currentNode:B,posInKids:0}),l.posInKids++,e.next=10;break;case 70:return e.abrupt("return",a);case 71:case"end":return e.stop()}}),e,this,[[15,21],[38,44],[56,62]])}))),function(){return t.apply(this,arguments)})},{key:"getPageIndex",value:function(e){var t=this,r=this.pageIndexCache.get(e);if(void 0!==r)return Promise.resolve(r);var A=this.xref,n=0,i=function(r){return function(t){var r,n=0;return A.fetchAsync(t).then((function(A){if(je(t,e)&&!qe(A,"Page")&&!(A instanceof He&&!A.has("Type")&&A.has("Contents")))throw new re("The reference does not point to a /Page dictionary.");if(!A)return null;if(!(A instanceof He))throw new re("Node must be a dictionary.");return r=A.getRaw("Parent"),A.getAsync("Parent")})).then((function(e){if(!e)return null;if(!(e instanceof He))throw new re("Parent must be a dictionary.");return e.getAsync("Kids")})).then((function(e){if(!e)return null;var i,a=[],o=!1,s=aE(e);try{for(s.s();!(i=s.n()).done;){var c=i.value;if(!(c instanceof Ye))throw new re("Kid must be a reference.");if(je(c,t)){o=!0;break}a.push(A.fetchAsync(c).then((function(e){if(!(e instanceof He))throw new re("Kid node must be a dictionary.");e.has("Count")?n+=e.get("Count"):n++})))}}catch(e){s.e(e)}finally{s.f()}if(!o)throw new re("Kid reference not found in parent's kids.");return Promise.all(a).then((function(){return[n,r]}))}))}(r).then((function(r){if(!r)return t.pageIndexCache.put(e,n),n;var A=rE(r,2),a=A[0],o=A[1];return n+=a,i(o)}))};return i(e)}},{key:"baseUrl",get:function(){var e=this._catDict.get("URI");if(e instanceof He){var t=e.get("Base");if("string"==typeof t){var r=Z(t,null,{tryConvertEncoding:!0});if(r)return _(this,"baseUrl",r.href)}}return _(this,"baseUrl",this.pdfManager.docBaseUrl)}}],[{key:"parseDestDictionary",value:function(e){var t=e.destDict,r=e.resultObj,A=e.docBaseUrl,n=void 0===A?null:A,i=e.docAttachments,a=void 0===i?null:i;if(t instanceof He){var o,s,c=t.get("A");if(c instanceof He||(t.has("Dest")?c=t.get("Dest"):(c=t.get("AA"))instanceof He&&(c.has("D")?c=c.get("D"):c.has("U")&&(c=c.get("U")))),c instanceof He){var g=c.get("S");if(!(g instanceof Ue))return void q("parseDestDictionary: Invalid type in Action dictionary.");var u=g.name;switch(u){case"ResetForm":var l,h=c.get("Flags"),I=0==(1&("number"==typeof h?h:0)),f=[],C=[],B=aE(c.get("Fields")||[]);try{for(B.s();!(l=B.n()).done;){var Q=l.value;Q instanceof Ye?C.push(Q.toString()):"string"==typeof Q&&f.push(Ie(Q))}}catch(e){B.e(e)}finally{B.f()}r.resetForm={fields:f,refs:C,include:I};break;case"URI":(o=c.get("URI"))instanceof Ue&&(o="/"+o.name);break;case"GoTo":s=c.get("D");break;case"Launch":case"GoToR":var E=c.get("F");E instanceof He?o=new TC(E,null,!0).serializable.rawFilename:"string"==typeof E&&(o=E);var d=hE(c);d&&"string"==typeof o&&(o=o.split("#",1)[0]+"#"+d);var y=c.get("NewWindow");"boolean"==typeof y&&(r.newWindow=y);break;case"GoToE":var p,v=c.get("T");if(a&&v instanceof He){var m=v.get("R"),w=v.get("N");Ke(m,"C")&&"string"==typeof w&&(p=a[Ie(w)])}if(p){r.attachment=p;var b=hE(c);b&&(r.attachmentDest=b)}else q('parseDestDictionary - unimplemented "GoToE" action.');break;case"Named":var k=c.get("N");k instanceof Ue&&(r.action=k.name);break;case"SetOCGState":var D=c.get("State"),S=c.get("PreserveRB");if(!Array.isArray(D)||0===D.length)break;var F,x=[],R=aE(D);try{for(R.s();!(F=R.n()).done;){var G=F.value;if(G instanceof Ue)switch(G.name){case"ON":case"OFF":case"Toggle":x.push(G.name)}else G instanceof Ye&&x.push(G.toString())}}catch(e){R.e(e)}finally{R.f()}if(x.length!==D.length)break;r.setOCGState={state:x,preserveRB:"boolean"!=typeof S||S};break;case"JavaScript":var N,L=c.get("JS");L instanceof ze?N=L.getString():"string"==typeof L&&(N=L);var U=N&&Kt(Ie(N));if(U){o=U.url,r.newWindow=U.newWindow;break}default:if("JavaScript"===u||"SubmitForm"===u)break;q('parseDestDictionary - unsupported action: "'.concat(u,'".'))}}else t.has("Dest")&&(s=t.get("Dest"));if("string"==typeof o){var M=Z(o,n,{addDefaultProtocol:!0,tryConvertEncoding:!0});M&&(r.url=M.href),r.unsafeUrl=o}s&&(s instanceof Ue&&(s=s.name),"string"==typeof s?r.dest=Ie(s):uE(s)&&(r.dest=s))}else q("parseDestDictionary: \`destDict\` must be a dictionary.")}}]);var t,r,A,n}();function CE(e){var t=this.xref.fetch(e),r={id:e.toString(),name:null,intent:null,usage:{print:null,view:null}},A=t.get("Name");"string"==typeof A&&(r.name=Ie(A));var n=t.getArray("Intent");Array.isArray(n)||(n=[n]),n.every((function(e){return e instanceof Ue}))&&(r.intent=n.map((function(e){return e.name})));var i=t.get("Usage");if(!(i instanceof He))return r;var a=r.usage,o=i.get("Print");if(o instanceof He){var s=o.get("PrintState");if(s instanceof Ue)switch(s.name){case"ON":case"OFF":a.print={printState:s.name}}}var c=i.get("View");if(c instanceof He){var g=c.get("ViewState");if(g instanceof Ue)switch(g.name){case"ON":case"OFF":a.view={viewState:g.name}}}return r}function BE(e,t){function r(e){var r=[];if(Array.isArray(e)){var A,n=aE(e);try{for(n.s();!(A=n.n()).done;){var i=A.value;i instanceof Ye&&t.has(i)&&r.push(i.toString())}}catch(e){n.e(e)}finally{n.f()}}return r}function A(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!Array.isArray(e))return null;var A,i=[],o=aE(e);try{for(o.s();!(A=o.n()).done;){var s=A.value;if(s instanceof Ye&&t.has(s))a.put(s),i.push(s.toString());else{var c=n(s,r);c&&i.push(c)}}}catch(e){o.e(e)}finally{o.f()}if(r>0)return i;var g,u=[],l=aE(t);try{for(l.s();!(g=l.n()).done;){var h=g.value;a.has(h)||u.push(h.toString())}}catch(e){l.e(e)}finally{l.f()}return u.length&&i.push({name:null,order:u}),i}function n(e,t){if(++t>o)return q("parseNestedOrder - reached MAX_NESTED_LEVELS."),null;var r=i.fetchIfRef(e);if(!Array.isArray(r))return null;var n=i.fetchIfRef(r[0]);if("string"!=typeof n)return null;var a=A(r.slice(1),t);return a&&a.length?{name:Ie(n),order:a}:null}var i=this.xref,a=new Pe,o=10;return{name:"string"==typeof e.get("Name")?Ie(e.get("Name")):null,creator:"string"==typeof e.get("Creator")?Ie(e.get("Creator")):null,baseState:e.get("BaseState")instanceof Ue?e.get("BaseState").name:null,on:r(e.get("ON")),off:r(e.get("OFF")),order:A(e.get("Order")),groups:null}}function QE(){QE=function(){return t};var e,t={},r=Object.prototype,A=r.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,r){return e[t]=r}}function g(e,t,r,A){var i=t&&t.prototype instanceof B?t:B,a=Object.create(i.prototype),o=new F(A||[]);return n(a,"_invoke",{value:b(e,r,o)}),a}function u(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=g;var l="suspendedStart",h="suspendedYield",I="executing",f="completed",C={};function B(){}function Q(){}function E(){}var d={};c(d,a,(function(){return this}));var y=Object.getPrototypeOf,p=y&&y(y(x([])));p&&p!==r&&A.call(p,a)&&(d=p);var v=E.prototype=B.prototype=Object.create(d);function m(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function r(n,i,a,o){var s=u(e[n],e,i);if("throw"!==s.type){var c=s.arg,g=c.value;return g&&"object"==typeof g&&A.call(g,"__await")?t.resolve(g.__await).then((function(e){r("next",e,a,o)}),(function(e){r("throw",e,a,o)})):t.resolve(g).then((function(e){c.value=e,a(c)}),(function(e){return r("throw",e,a,o)}))}o(s.arg)}var i;n(this,"_invoke",{value:function(e,A){function n(){return new t((function(t,n){r(e,A,t,n)}))}return i=i?i.then(n,n):n()}})}function b(t,r,A){var n=l;return function(i,a){if(n===I)throw Error("Generator is already running");if(n===f){if("throw"===i)throw a;return{value:e,done:!0}}for(A.method=i,A.arg=a;;){var o=A.delegate;if(o){var s=k(o,A);if(s){if(s===C)continue;return s}}if("next"===A.method)A.sent=A._sent=A.arg;else if("throw"===A.method){if(n===l)throw n=f,A.arg;A.dispatchException(A.arg)}else"return"===A.method&&A.abrupt("return",A.arg);n=I;var c=u(t,r,A);if("normal"===c.type){if(n=A.done?f:h,c.arg===C)continue;return{value:c.arg,done:A.done}}"throw"===c.type&&(n=f,A.method="throw",A.arg=c.arg)}}}function k(t,r){var A=r.method,n=t.iterator[A];if(n===e)return r.delegate=null,"throw"===A&&t.iterator.return&&(r.method="return",r.arg=e,k(t,r),"throw"===r.method)||"return"!==A&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+A+"' method")),C;var i=u(n,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,C;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,C):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,C)}function D(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function F(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(D,this),this.reset(!0)}function x(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,i=function r(){for(;++n=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}function EE(e,t,r,A,n,i,a){try{var o=e[i](a),s=o.value}catch(e){return void r(e)}o.done?t(s):Promise.resolve(s).then(A,n)}function dE(e){return function(){var t=this,r=arguments;return new Promise((function(A,n){var i=e.apply(t,r);function a(e){EE(i,A,n,a,o,"next",e)}function o(e){EE(i,A,n,a,o,"throw",e)}a(void 0)}))}}function yE(e,t){for(var r=0;r=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function mE(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);re.length)&&(t=e.length);for(var r=0,A=Array(t);r1&&void 0!==arguments[1]?arguments[1]:"0";if(t||(t="0"),!e)return ey(t);var r=e.trim().match(Zd);if(!r)return ey(t);var A=qd(r,3),n=A[1],i=A[2],a=parseFloat(n);if(isNaN(a))return ey(t);if(0===a)return 0;var o=Wd[i];return o?o(a):a}function ty(e){if(!e)return{num:1,den:1};var t=e.trim().split(/\\s*:\\s*/).map((function(e){return parseFloat(e)})).filter((function(e){return!isNaN(e)}));if(1===t.length&&t.push(1),0===t.length)return{num:1,den:1};var r=qd(t,2);return{num:r[0],den:r[1]}}function ry(e){return e?e.trim().split(/\\s+/).map((function(e){return{excluded:"-"===e[0],viewname:e.substring(1)}})):[]}var Ay=function(){function e(t,r,A,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.success=t,this.html=r,this.bbox=A,this.breakNode=n}return function(e,t,r){return t&&Kd(e.prototype,t),r&&Kd(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}(e,[{key:"isBreak",value:function(){return!!this.breakNode}}],[{key:"FAILURE",get:function(){return _(this,"FAILURE",new e(!1,null,null,null))}},{key:"EMPTY",get:function(){return _(this,"EMPTY",new e(!0,null,null,null))}},{key:"breakNode",value:function(t){return new e(!1,null,null,t)}},{key:"success",value:function(t){return new e(!0,t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,null)}}])}();function ny(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var A,n,i,a,o=[],s=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(A=i.call(r)).done)&&(o.push(A.value),o.length!==t);s=!0);}catch(e){c=!0,n=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw n}}return o}}(e,t)||ay(e,t)||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.")}()}function iy(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=ay(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function ay(e,t){if(e){if("string"==typeof e)return oy(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)?oy(e,t):void 0}}function oy(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r1&&void 0!==arguments[1]?arguments[1]:null,A=iy(e);try{for(A.s();!(t=A.n()).done;){var n=t.value;this.addPdfFont(n)}}catch(e){A.e(e)}finally{A.f()}var i,a=iy(this.fonts.values());try{for(a.s();!(i=a.n()).done;){var o=i.value;o.regular||(o.regular=o.italic||o.bold||o.bolditalic)}}catch(e){a.e(e)}finally{a.f()}if(r&&0!==r.size){var s,c=this.fonts.get("PdfJS-Fallback-PdfJS-XFA"),g=iy(r);try{for(g.s();!(s=g.n()).done;){var u=s.value;this.fonts.set(u,c)}}catch(e){g.e(e)}finally{g.f()}}}},{key:"addPdfFont",value:function(e){var t=e.cssFontInfo,r=t.fontFamily,A=this.fonts.get(r);A||(A=Object.create(null),this.fonts.set(r,A),this.defaultFont||(this.defaultFont=A));var n,i,a,o="",s=parseFloat(t.fontWeight);0!==parseFloat(t.italicAngle)?o=s>=700?"bolditalic":"italic":s>=700&&(o="bold"),o||((e.name.includes("Bold")||null!==(n=e.psName)&&void 0!==n&&n.includes("Bold"))&&(o="bold"),(e.name.includes("Italic")||e.name.endsWith("It")||null!==(i=e.psName)&&void 0!==i&&i.includes("Italic")||null!==(a=e.psName)&&void 0!==a&&a.endsWith("It"))&&(o+="italic")),o||(o="regular"),A[o]=e}},{key:"getDefault",value:function(){return this.defaultFont}},{key:"find",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=this.fonts.get(e)||this.cache.get(e);if(r)return r;var A=/,|-|_| |bolditalic|bold|italic|regular|it/gi,n=e.replaceAll(A,"");if(r=this.fonts.get(n))return this.cache.set(e,r),r;n=n.toLowerCase();var i,a=[],o=iy(this.fonts.entries());try{for(o.s();!(i=o.n()).done;){var s=ny(i.value,2),c=s[0],g=s[1];c.replaceAll(A,"").toLowerCase().startsWith(n)&&a.push(g)}}catch(e){o.e(e)}finally{o.f()}if(0===a.length){var u,l=iy(this.fonts.entries());try{for(l.s();!(u=l.n()).done;){var h,I=ny(u.value,2)[1];null!==(h=I.regular.name)&&void 0!==h&&h.replaceAll(A,"").toLowerCase().startsWith(n)&&a.push(I)}}catch(e){l.e(e)}finally{l.f()}}if(0===a.length){n=n.replaceAll(/psmt|mt/gi,"");var f,C=iy(this.fonts.entries());try{for(C.s();!(f=C.n()).done;){var B=ny(f.value,2),Q=B[0],E=B[1];Q.replaceAll(A,"").toLowerCase().startsWith(n)&&a.push(E)}}catch(e){C.e(e)}finally{C.f()}}if(0===a.length){var d,y=iy(this.fonts.values());try{for(y.s();!(d=y.n()).done;){var p,v=d.value;null!==(p=v.regular.name)&&void 0!==p&&p.replaceAll(A,"").toLowerCase().startsWith(n)&&a.push(v)}}catch(e){y.e(e)}finally{y.f()}}return a.length>=1?(1!==a.length&&t&&q("XFA - Too many choices to guess the correct font: ".concat(e)),this.cache.set(e,a[0]),a[0]):(t&&!this.warned.has(e)&&(this.warned.add(e),q("XFA - Cannot find the font: ".concat(e))),null)}}])}();function uy(e,t){return"italic"===e.posture?"bold"===e.weight?t.bolditalic:t.italic:"bold"===e.weight?t.bold:t.regular}function ly(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Iy(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function hy(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var A,n,i,a,o=[],s=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(A=i.call(r)).done)&&(o.push(A.value),o.length!==t);s=!0);}catch(e){c=!0,n=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw n}}return o}}(e,t)||Iy(e,t)||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.")}()}function Iy(e,t){if(e){if("string"==typeof e)return fy(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)?fy(e,t):void 0}}function fy(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);re?(A=Math.max(A,i),i=0,n+=a,a=C,t=-1,r=0,o=!0,s=!1):(a=Math.max(C,a),r=i,i+=l,t=c):i+l>e?(n+=a,a=C,-1!==t?(c=t,A=Math.max(A,r),i=0,t=-1,r=0):(A=Math.max(A,i),i=l),o=!0,s=!1):(i+=l,a=Math.max(C,a))}return{width:1.02*(A=Math.max(A,i)),height:n+=a+this.extraHeight,isBroken:o}}}])}();function vy(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var A,n,i,a,o=[],s=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(A=i.call(r)).done)&&(o.push(A.value),o.length!==t);s=!0);}catch(e){c=!0,n=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw n}}return o}}(e,t)||my(e,t)||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.")}()}function my(e,t){if(e){if("string"==typeof e)return wy(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)?wy(e,t):void 0}}function wy(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r2&&void 0!==arguments[2])||arguments[2],A=e.match(by);if(!A)return null;for(var n,i=vy(A,1)[0],a=[{name:i,cacheName:"."+i,index:0,js:null,formCalc:null,operator:Dy.dot}],o=i.length;o4&&void 0!==arguments[4])||arguments[4],n=xy(r,!(arguments.length>3&&void 0!==arguments[3])||arguments[3]);if(!n)return null;var i,a=Sy.get(n[0].name),o=0;a?(i=!0,e=[a(e,t)],o=1):(i=null===t,e=[t||e]);for(var s,c=function(){var r,a=n[o],s=a.name,c=a.cacheName,g=a.operator,u=a.index,l=[],h=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=my(e))){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}(e);try{for(h.s();!(r=h.n()).done;){var I=r.value;if(I.isXFAObject){var f=void 0,C=void 0;if(A&&((C=Fy.get(I))||(C=new Map,Fy.set(I,C)),f=C.get(c)),!f){switch(g){case Dy.dot:f=I[jE](s,!1);break;case Dy.dotDot:f=I[jE](s,!0);break;case Dy.dotHash:f=(f=I[qE](s)).isXFAObjectArray?f.children:[f]}A&&C.set(c,f)}f.length>0&&l.push(f)}}}catch(e){h.e(e)}finally{h.f()}if(0===l.length&&!i&&0===o){var B=t[td]();return(t=B)?(o=-1,e=[t],0):{v:null}}e=isFinite(u)?l.filter((function(e){return u=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}function Ky(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Ty(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function Ty(e,t){if(e){if("string"==typeof e)return qy(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)?qy(e,t):void 0}}function qy(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r2&&void 0!==arguments[2]&&arguments[2];jy(this,e),this[Qd]=t,this[Ed]=r,this[ap]=A,this[cp]=null,this[$y]=[],this[Yd]="".concat(r).concat(hp++),this[Ad]=null}return Zy(e,[{key:"isXFAObject",get:function(){return!0}},{key:"isXFAObjectArray",get:function(){return!1}},{key:"createNodes",value:function(e){var t,r=this,A=null,n=Ky(e);try{for(n.s();!(t=n.n()).done;){for(var i=t.value,a=i.name,o=i.index,s=0,c=isFinite(o)?o:0;s<=c;s++){var g=r[Qd]===Ip?-1:r[Qd];A=new Qp(g,a),r[SE](A)}r=A}}catch(e){n.e(e)}finally{n.f()}return A}},{key:yd,value:function(e){if(!this[ap]||!this[pd](e))return!1;var t=e[Ed],r=this[t];if(!(r instanceof Cp))return null!==r&&this[kd](r),this[t]=e,this[SE](e),!0;if(r.push(e))return this[SE](e),!0;var A="";return this.id?A=" (id: ".concat(this.id,")"):this.name&&(A=" (name: ".concat(this.name," ").concat(this.h.value,")")),q('XFA - node "'.concat(this[Ed],'"').concat(A,' has already enough "').concat(t,'"!')),!1}},{key:pd,value:function(e){return this.hasOwnProperty(e[Ed])&&e[Qd]===this[Qd]}},{key:ld,value:function(){return!1}},{key:kE,value:function(){return!1}},{key:sd,value:function(){return!1}},{key:cd,value:function(){return!1}},{key:wd,value:function(){this.para&&this[rd]()[HE].paraStack.pop()}},{key:bd,value:function(){this[rd]()[HE].paraStack.push(this.para)}},{key:xd,value:function(e){this.id&&this[Qd]===Od.template.id&&e.set(this.id,this)}},{key:rd,value:function(){return this[Ad].template}},{key:hd,value:function(){return!1}},{key:Id,value:function(){return!1}},{key:SE,value:function(e){e[cp]=this,this[$y].push(e),!e[Ad]&&this[Ad]&&(e[Ad]=this[Ad])}},{key:kd,value:function(e){var t=this[$y].indexOf(e);this[$y].splice(t,1)}},{key:nd,value:function(){return this.hasOwnProperty("value")}},{key:Gd,value:function(e){}},{key:vd,value:function(e){}},{key:YE,value:function(){}},{key:xE,value:function(e){delete this[ap],this[GE]&&(e.clean(this[GE]),delete this[GE])}},{key:ad,value:function(e){return this[$y].indexOf(e)}},{key:od,value:function(e,t){t[cp]=this,this[$y].splice(e,0,t),!t[Ad]&&this[Ad]&&(t[Ad]=this[Ad])}},{key:fd,value:function(){return!this.name}},{key:Bd,value:function(){return""}},{key:Ld,value:function(){return 0===this[$y].length?this[UE]:this[$y].map((function(e){return e[Ld]()})).join("")}},{key:zy,get:function(){var t=Object.getPrototypeOf(this);if(!t._attributes){var r,A=t._attributes=new Set,n=Ky(Object.getOwnPropertyNames(this));try{for(n.s();!(r=n.n()).done;){var i=r.value;if(null===this[i]||this[i]instanceof e||this[i]instanceof Cp)break;A.add(i)}}catch(e){n.e(e)}finally{n.f()}}return _(this,zy,t._attributes)}},{key:ud,value:function(e){for(var t=this;t;){if(t===e)return!0;t=t[td]()}return!1}},{key:td,value:function(){return this[cp]}},{key:ed,value:function(){return this[td]()}},{key:VE,value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return e?this[e]:this[$y]}},{key:JE,value:function(){var t=Object.create(null);this[UE]&&(t.$content=this[UE]);var r,A=Ky(Object.getOwnPropertyNames(this));try{for(A.s();!(r=A.n()).done;){var n=r.value,i=this[n];null!==i&&(i instanceof e?t[n]=i[JE]():i instanceof Cp?i.isEmpty()||(t[n]=i.dump()):t[n]=i)}}catch(e){A.e(e)}finally{A.f()}return t}},{key:Hd,value:function(){return null}},{key:Md,value:function(){return Ay.EMPTY}},{key:zE,value:Oy().mark((function e(){var t,r,A;return Oy().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=Ky(this[VE]()),e.prev=1,t.s();case 3:if((r=t.n()).done){e.next=9;break}return A=r.value,e.next=7,A;case 7:e.next=3;break;case 9:e.next=14;break;case 11:e.prev=11,e.t0=e.catch(1),t.e(e.t0);case 14:return e.prev=14,t.f(),e.finish(14);case 17:case"end":return e.stop()}}),e,this,[[1,11,14,17]])}))},{key:Ap,value:Oy().mark((function e(t,r){var A,n,i,a,o;return Oy().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:A=Ky(this[zE]()),e.prev=1,A.s();case 3:if((n=A.n()).done){e.next=13;break}if(i=n.value,t&&r!==t.has(i[Ed])){e.next=11;break}return a=this[TE](),(o=i[Md](a)).success||(this[HE].failingNode=i),e.next=11,o;case 11:e.next=3;break;case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(1),A.e(e.t0);case 18:return e.prev=18,A.f(),e.finish(18);case 21:case"end":return e.stop()}}),e,this,[[1,15,18,21]])}))},{key:PE,value:function(){return null}},{key:DE,value:function(e,t){this[HE].children.push(e)}},{key:TE,value:function(){}},{key:FE,value:function(e){var t=e.filter,r=void 0===t?null:t,A=e.include,n=void 0===A||A;if(this[HE].generator){var i=this[TE](),a=this[HE].failingNode[Md](i);if(!a.success)return a;a.html&&this[DE](a.html,a.bbox),delete this[HE].failingNode}else this[HE].generator=this[Ap](r,n);for(;;){var o=this[HE].generator.next();if(o.done)break;var s=o.value;if(!s.success)return s;s.html&&this[DE](s.html,s.bbox)}return this[HE].generator=null,Ay.EMPTY}},{key:Rd,value:function(e){this[up]=new Set(Object.keys(e))}},{key:ip,value:function(e){var t=this[zy],r=this[up];return function(e){return function(e){if(Array.isArray(e))return qy(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Ty(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(e).filter((function(e){return t.has(e)&&!r.has(e)}))}},{key:Sd,value:function(e){var t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Set,A=Ky(this[$y]);try{for(A.s();!(t=A.n()).done;)t.value[gp](e,r)}catch(e){A.e(e)}finally{A.f()}}},{key:gp,value:function(e,t){var r=this[np](e,t);r?this[Xy](r,e,t):this[Sd](e,t)}},{key:np,value:function(e,t){var r=this.use,A=this.usehref;if(!r&&!A)return null;var n=null,i=null,a=null,o=r;if(A?(o=A,A.startsWith("#som(")&&A.endsWith(")")?i=A.slice(5,-1):A.startsWith(".#som(")&&A.endsWith(")")?i=A.slice(6,-1):A.startsWith("#")?a=A.slice(1):A.startsWith(".#")&&(a=A.slice(2))):r.startsWith("#")?a=r.slice(1):i=r,this.use=this.usehref="",a?n=e.get(a):(n=Ry(e.get(Dd),this,i,!0,!1))&&(n=n[0]),!n)return q("XFA - Invalid prototype reference: ".concat(o,".")),null;if(n[Ed]!==this[Ed])return q("XFA - Incompatible prototype: ".concat(n[Ed]," !== ").concat(this[Ed],".")),null;if(t.has(n))return q("XFA - Cycle detected in prototypes use."),null;t.add(n);var s=n[np](e,t);return s&&n[Xy](s,e,t),n[Sd](e,t),t.delete(n),n}},{key:Xy,value:function(e,t,r){if(r.has(e))q("XFA - Cycle detected in prototypes use.");else{!this[UE]&&e[UE]&&(this[UE]=e[UE]),new Set(r).add(e);var A,n=Ky(this[ip](e[up]));try{for(n.s();!(A=n.n()).done;){var i=A.value;this[i]=e[i],this[up]&&this[up].add(i)}}catch(e){n.e(e)}finally{n.f()}var a,o=Ky(Object.getOwnPropertyNames(this));try{for(o.s();!(a=o.n()).done;){var s=a.value;if(!this[zy].has(s)){var c=this[s],g=e[s];if(c instanceof Cp){var u,l=Ky(c[$y]);try{for(l.s();!(u=l.n()).done;)u.value[gp](t,r)}catch(e){l.e(e)}finally{l.f()}for(var h=c[$y].length,I=g[$y].length;h0&&void 0!==arguments[0]?arguments[0]:null;return e?this[$y].filter((function(t){return t[Ed]===e})):this[$y]}},{key:qE,value:function(e){return this[e]}},{key:jE,value:function(e,t){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return Array.from(this[WE](e,t,r))}},{key:WE,value:function(e,t){var r=this,A=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return Oy().mark((function n(){var i,a,o;return Oy().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if("parent"!==e){n.next=4;break}return n.next=3,r[cp];case 3:return n.abrupt("return");case 4:i=Ky(r[$y]),n.prev=5,i.s();case 7:if((a=i.n()).done){n.next=19;break}if((o=a.value)[Ed]!==e){n.next=12;break}return n.next=12,o;case 12:if(o.name!==e){n.next=15;break}return n.next=15,o;case 15:if(!t&&!o[fd]()){n.next=17;break}return n.delegateYield(o[WE](e,t,!1),"t0",17);case 17:n.next=7;break;case 19:n.next=24;break;case 21:n.prev=21,n.t1=n.catch(5),i.e(n.t1);case 24:return n.prev=24,i.f(),n.finish(24);case 27:if(!A||!r[zy].has(e)){n.next=30;break}return n.next=30,new Bp(r,e,r[e]);case 30:case"end":return n.stop()}}),n,null,[[5,21,24,27]])}))()}}],[{key:ep,value:function(t){return Array.isArray(t)?t.map((function(t){return e[ep](t)})):"object"==typeof t&&null!==t?Object.assign({},t):t}}])}(),Cp=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1/0;jy(this,e),this[op]=t,this[$y]=[]}return Zy(e,[{key:"isXFAObject",get:function(){return!1}},{key:"isXFAObjectArray",get:function(){return!0}},{key:"push",value:function(e){return this[$y].length<=this[op]?(this[$y].push(e),!0):(q('XFA - node "'.concat(e[Ed],'" accepts no more than ').concat(this[op]," children")),!1)}},{key:"isEmpty",value:function(){return 0===this[$y].length}},{key:"dump",value:function(){return 1===this[$y].length?this[$y][0][JE]():this[$y].map((function(e){return e[JE]()}))}},{key:NE,value:function(){var t=new e(this[op]);return t[$y]=this[$y].map((function(e){return e[NE]()})),t}},{key:"children",get:function(){return this[$y]}},{key:"clear",value:function(){this[$y].length=0}}])}(),Bp=function(){return Zy((function e(t,r,A){jy(this,e),this[cp]=t,this[Ed]=r,this[UE]=A,this[LE]=!1,this[Yd]="attribute".concat(hp++)}),[{key:td,value:function(){return this[cp]}},{key:gd,value:function(){return!0}},{key:ZE,value:function(){return this[UE].trim()}},{key:Gd,value:function(e){e=e.value||"",this[UE]=e.toString()}},{key:Ld,value:function(){return this[UE]}},{key:ud,value:function(e){return this[cp]===e||this[cp][ud](e)}}])}(),Qp=function(e){function t(e,r){var A,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(jy(this,t),(A=My(this,t,[e,r]))[UE]="",A[tp]=null,"#text"!==r){var i=new Map;A[Vy]=i;for(var a=0,o=Object.entries(n);a"),this[UE])"string"==typeof this[UE]?e.push(Yt(this[UE])):this[UE][Jd](e);else{var g,u=Ky(this[$y]);try{for(u.s();!(g=u.n()).done;)g.value[Jd](e)}catch(e){u.e(e)}finally{u.f()}}e.push(""))}else e.push("/>")}else e.push(Yt(this[UE]))}},{key:yd,value:function(e){if(this[UE]){var r=new t(this[Qd],"#text");this[SE](r),r[UE]=this[UE],this[UE]=""}return this[SE](e),!0}},{key:vd,value:function(e){this[UE]+=e}},{key:YE,value:function(){if(this[UE]&&this[$y].length>0){var e=new t(this[Qd],"#text");this[SE](e),e[UE]=this[UE],delete this[UE]}}},{key:Md,value:function(){return"#text"===this[Ed]?Ay.success({name:"#text",value:this[UE]}):Ay.EMPTY}},{key:VE,value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return e?this[$y].filter((function(t){return t[Ed]===e})):this[$y]}},{key:KE,value:function(){return this[Vy]}},{key:qE,value:function(e){var t=this[Vy].get(e);return void 0!==t?t:this[VE](e)}},{key:WE,value:Oy().mark((function(e,t){var r,A,n,i;return Oy().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:if(!(r=this[Vy].get(e))){a.next=4;break}return a.next=4,r;case 4:A=Ky(this[$y]),a.prev=5,A.s();case 7:if((n=A.n()).done){a.next=16;break}if((i=n.value)[Ed]!==e){a.next=12;break}return a.next=12,i;case 12:if(!t){a.next=14;break}return a.delegateYield(i[WE](e,t),"t0",14);case 14:a.next=7;break;case 16:a.next=21;break;case 18:a.prev=18,a.t1=a.catch(5),A.e(a.t1);case 21:return a.prev=21,A.f(),a.finish(21);case 24:case"end":return a.stop()}}),r,this,[[5,18,21,24]])}))},{key:OE,value:Oy().mark((function(e,t){var r,A,n,i;return Oy().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:if(!(r=this[Vy].get(e))||t&&r[LE]){a.next=4;break}return a.next=4,r;case 4:A=Ky(this[$y]),a.prev=5,A.s();case 7:if((n=A.n()).done){a.next=12;break}return i=n.value,a.delegateYield(i[OE](e,t),"t0",10);case 10:a.next=7;break;case 12:a.next=17;break;case 14:a.prev=14,a.t1=a.catch(5),A.e(a.t1);case 17:return a.prev=17,A.f(),a.finish(17);case 20:case"end":return a.stop()}}),r,this,[[5,14,17,20]])}))},{key:XE,value:Oy().mark((function e(t,r,A){var n,i,a;return Oy().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=Ky(this[$y]),e.prev=1,n.s();case 3:if((i=n.n()).done){e.next=12;break}if((a=i.value)[Ed]!==t||A&&a[LE]){e.next=8;break}return e.next=8,a;case 8:if(!r){e.next=10;break}return e.delegateYield(a[XE](t,r,A),"t0",10);case 10:e.next=3;break;case 12:e.next=17;break;case 14:e.prev=14,e.t1=e.catch(1),n.e(e.t1);case 17:return e.prev=17,n.f(),e.finish(17);case 20:case"end":return e.stop()}}),e,this,[[1,14,17,20]])}))},{key:gd,value:function(){return null===this[tp]?0===this[$y].length||this[$y][0][Qd]===Od.xhtml.id:this[tp]}},{key:ZE,value:function(){return null===this[tp]?0===this[$y].length?this[UE].trim():this[$y][0][Qd]===Od.xhtml.id?this[$y][0][Ld]().trim():null:this[UE].trim()}},{key:Gd,value:function(e){e=e.value||"",this[UE]=e.toString()}},{key:JE,value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=Object.create(null);e&&(t.$ns=this[Qd]),this[UE]&&(t.$content=this[UE]),t.$name=this[Ed],t.children=[];var r,A=Ky(this[$y]);try{for(A.s();!(r=A.n()).done;){var n=r.value;t.children.push(n[JE](e))}}catch(e){A.e(e)}finally{A.f()}t.attributes=Object.create(null);var i,a=Ky(this[Vy]);try{for(a.s();!(i=a.n()).done;){var o=Uy(i.value,2),s=o[0],c=o[1];t.attributes[s]=c[UE]}}catch(e){a.e(e)}finally{a.f()}return t}}])}(),Ep=function(e){function t(e,r){var A;return jy(this,t),(A=My(this,t,[e,r]))[UE]="",A}return Yy(t,fp),Zy(t,[{key:vd,value:function(e){this[UE]+=e}},{key:YE,value:function(){}}])}(),dp=function(e){function t(e,r,A){var n;return jy(this,t),(n=My(this,t,[e,r]))[sp]=A,n}return Yy(t,Ep),Zy(t,[{key:YE,value:function(){var e=this;this[UE]=zd({data:this[UE],defaultValue:this[sp][0],validate:function(t){return e[sp].includes(t)}})}},{key:xE,value:function(e){Ny(t,xE,this,3)([e]),delete this[sp]}}])}(),yp=function(e){function t(){return jy(this,t),My(this,t,arguments)}return Yy(t,Ep),Zy(t,[{key:YE,value:function(){this[UE]=this[UE].trim()}}])}(),pp=function(e){function t(e,r,A,n){var i;return jy(this,t),(i=My(this,t,[e,r]))[rp]=A,i[lp]=n,i}return Yy(t,Ep),Zy(t,[{key:YE,value:function(){this[UE]=Xd({data:this[UE],defaultValue:this[rp],validate:this[lp]})}},{key:xE,value:function(e){Ny(t,xE,this,3)([e]),delete this[rp],delete this[lp]}}])}(),vp=function(e){function t(e,r){return jy(this,t),My(this,t,[e,r,0,function(e){return 1===e}])}return Yy(t,pp),Zy(t)}(),mp=function(e){function t(e,r){return jy(this,t),My(this,t,[e,r,1,function(e){return 0===e}])}return Yy(t,pp),Zy(t)}();function wp(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var A,n,i,a,o=[],s=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(A=i.call(r)).done)&&(o.push(A.value),o.length!==t);s=!0);}catch(e){c=!0,n=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw n}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return bp(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)?bp(e,t):void 0}}(e,t)||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.")}()}function bp(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r0&&(t.minWidth=kp(e.minW)),e.maxW>0&&(t.maxWidth=kp(e.maxW)),e.minH>0&&(t.minHeight=kp(e.minH)),e.maxH>0&&(t.maxHeight=kp(e.maxH)))}function Fp(e,t,r,A,n,i){var a=new py(t,r,A,n);return"string"==typeof e?a.addString(e):e[md](a),a.compute(i)}function xp(e,t){var r=null,A=null,n=!1;if((!e.w||!e.h)&&e.value){var i=0,a=0;e.margin&&(i=e.margin.leftInset+e.margin.rightInset,a=e.margin.topInset+e.margin.bottomInset);var o=null,s=null;e.para&&(s=Object.create(null),o=""===e.para.lineHeight?null:e.para.lineHeight,s.top=""===e.para.spaceAbove?0:e.para.spaceAbove,s.bottom=""===e.para.spaceBelow?0:e.para.spaceBelow,s.left=""===e.para.marginLeft?0:e.para.marginLeft,s.right=""===e.para.marginRight?0:e.para.marginRight);var c=e.font;if(!c)for(var g=e[rd](),u=e[td]();u&&u!==g;){if(u.font){c=u.font;break}u=u[td]()}var l=(e.w||t.width)-i,h=e[Ad].fontFinder;if(e.value.exData&&e.value.exData[UE]&&"text/html"===e.value.exData.contentType){var I=Fp(e.value.exData[UE],c,s,o,h,l);A=I.width,r=I.height,n=I.isBroken}else{var f=e.value[Ld]();if(f){var C=Fp(f,c,s,o,h,l);A=C.width,r=C.height,n=C.isBroken}}null===A||e.w||(A+=i),null===r||e.h||(r+=a)}return{w:A,h:r,isBroken:n}}function Rp(e,t,r){var A;if(""!==e.w&&""!==e.h)A=[e.x,e.y,e.w,e.h];else{if(!r)return null;var n=e.w;if(""===n){if(0===e.maxW){var i=e[ed]();n="position"===i.layout&&""!==i.w?0:e.minW}else n=Math.min(e.maxW,r.width);t.attributes.style.width=kp(n)}var a=e.h;if(""===a){if(0===e.maxH){var o=e[ed]();a="position"===o.layout&&""!==o.h?0:e.minH}else a=Math.min(e.maxH,r.height);t.attributes.style.height=kp(a)}A=[e.x,e.y,n,a]}return A}function Gp(e){var t,r=e[ed]();if(null!==(t=r.layout)&&void 0!==t&&t.includes("row")){var A,n=r[HE],i=e.colSpan;A=-1===i?n.columnWidths.slice(n.currentColumn).reduce((function(e,t){return e+t}),0):n.columnWidths.slice(n.currentColumn,n.currentColumn+i).reduce((function(e,t){return e+t}),0),isNaN(A)||(e.w=A)}r.layout&&"position"!==r.layout&&(e.x=e.y=0),"table"===e.layout&&""===e.w&&Array.isArray(e.columnWidths)&&(e.w=e.columnWidths.reduce((function(e,t){return e+t}),0))}function Np(e){switch(e.layout){case"position":default:return"xfaPosition";case"lr-tb":return"xfaLrTb";case"rl-row":return"xfaRlRow";case"rl-tb":return"xfaRlTb";case"row":return"xfaRow";case"table":return"xfaTable";case"tb":return"xfaTb"}}function Lp(e){for(var t=Object.create(null),r=arguments.length,A=new Array(r>1?r-1:0),n=1;n=0)){var r="padding"+("left"==("right"===e.textAlign?"right":"left")?"Left":"Right"),A=ey(e[r],"0px");e[r]="".concat(A-t,"px")}}function Jp(e,t){switch(e.access){case"nonInteractive":t.push("xfaNonInteractive");break;case"readOnly":t.push("xfaReadOnly");break;case"protected":t.push("xfaDisabled")}}function Hp(e){return e.relevant.length>0&&!e.relevant[0].excluded&&"print"===e.relevant[0].viewname}function Yp(e){var t=e[rd]()[HE].paraStack;return t.length?t.at(-1):null}function Pp(e,t,r){var A;if(null!==(A=r.attributes.class)&&void 0!==A&&A.includes("xfaRich")){t&&(""===e.h&&(t.height="auto"),""===e.w&&(t.width="auto"));var n=Yp(e);if(n){var i=r.attributes.style;switch(i.display="flex",i.flexDirection="column",n.vAlign){case"top":i.justifyContent="start";break;case"bottom":i.justifyContent="end";break;case"middle":i.justifyContent="center"}for(var a=n[Hd](),o=0,s=Object.entries(a);oe.length)&&(t=e.length);for(var r=0,A=Array(t);r=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}(A.children);try{for(l.s();!(g=l.n()).done;)g.value.attributes.style.height=u}catch(e){l.e(e)}finally{l.f()}break;case"table":case"tb":A.width=Math.min(n.width,Math.max(A.width,s)),A.height+=c,A.children.push(t)}}function Xp(e){var t=e[HE].availableSpace,r=e.margin?e.margin.topInset+e.margin.bottomInset:0,A=e.margin?e.margin.leftInset+e.margin.rightInset:0;switch(e.layout){case"lr-tb":case"rl-tb":return 0===e[HE].attempt?{width:t.width-A-e[HE].currentWidth,height:t.height-r-e[HE].prevHeight}:{width:t.width-A,height:t.height-r-e[HE].height};case"rl-row":case"row":return{width:e[HE].columnWidths.slice(e[HE].currentColumn).reduce((function(e,t){return e+t})),height:t.height-A};case"table":case"tb":return{width:t.width-A,height:t.height-r-e[HE].height};default:return t}}function Vp(e,t){var r;if(null===e[rd]()[HE].firstUnsplittable)return!0;if(0===e.w||0===e.h)return!0;var A=e[ed](),n=(null===(r=A[HE])||void 0===r?void 0:r.attempt)||0,i=function(e){var t,r,A=""===e.w?NaN:e.w,n=""===e.h?NaN:e.h,i=0,a=0;switch(e.anchorType||""){case"bottomCenter":i=A/2,a=n;break;case"bottomLeft":i=0,a=n;break;case"bottomRight":i=A,a=n;break;case"middleCenter":i=A/2,a=n/2;break;case"middleLeft":i=0,a=n/2;break;case"middleRight":i=A,a=n/2;break;case"topCenter":i=A/2,a=0;break;case"topRight":i=A,a=0}switch(e.rotate||0){case 0:t=-i,r=-a;break;case 90:t=-a,r=i;var o=[n,-A];A=o[0],n=o[1];break;case 180:t=i,r=a;var s=[-A,-n];A=s[0],n=s[1];break;case 270:t=a,r=-i;var c=[-n,A];A=c[0],n=c[1]}return[e.x+t+Math.min(0,A),e.y+r+Math.min(0,n),Math.abs(A),Math.abs(n)]}(e),a=Tp(i,4),o=a[1],s=a[2],c=a[3];switch(A.layout){case"lr-tb":case"rl-tb":return 0===n?e[rd]()[HE].noLayoutFailure?""!==e.w?Math.round(s-t.width)<=2:t.width>2:!(""!==e.h&&Math.round(c-t.height)>2)&&(""!==e.w?Math.round(s-t.width)<=2||0===A[HE].numberInLine&&t.height>2:t.width>2):!!e[rd]()[HE].noLayoutFailure||!(""!==e.h&&Math.round(c-t.height)>2)&&(""===e.w||Math.round(s-t.width)<=2||!A[Id]())&&t.height>2;case"table":case"tb":return!!e[rd]()[HE].noLayoutFailure||(""===e.h||e[hd]()?(""===e.w||Math.round(s-t.width)<=2||!A[Id]())&&t.height>2:Math.round(c-t.height)<=2);case"position":return!!e[rd]()[HE].noLayoutFailure||""===e.h||Math.round(c+o-t.height)<=2||c+o>e[rd]()[HE].currentContentArea.h;case"rl-row":case"row":return!!e[rd]()[HE].noLayoutFailure||""===e.h||Math.round(c-t.height)<=2;default:return!0}}function zp(e,t,r,A){var n=$p(ov(1&A?e.prototype:e),t,r);return 2&A&&"function"==typeof n?function(e){return n.apply(r,e)}:n}function $p(){return $p="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var A=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=ov(e)););return e}(e,t);if(A){var n=Object.getOwnPropertyDescriptor(A,t);return n.get?n.get.call(arguments.length<3?e:r):n.value}},$p.apply(null,arguments)}function ev(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var A,n,i,a,o=[],s=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(A=i.call(r)).done)&&(o.push(A.value),o.length!==t);s=!0);}catch(e){c=!0,n=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw n}}return o}}(e,t)||hv(e,t)||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.")}()}function tv(e,t){for(var r=0;r=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}var uv=gv().mark(vv);function lv(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=hv(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function hv(e,t){if(e){if("string"==typeof e)return Iv(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)?Iv(e,t):void 0}}function Iv(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r180?1:0,c=50*(1+Math.cos(a)),g=50*(1-Math.sin(a)),u=50*(1+Math.cos(a+o)),l=50*(1-Math.sin(a+o));t={name:"path",attributes:{xmlns:Cv,d:"M ".concat(c," ").concat(g," A 50 50 0 ").concat(s," 0 ").concat(u," ").concat(l),vectorEffect:"non-scaling-stroke",style:n}},Object.assign(i,{viewBox:"0 0 100 100",preserveAspectRatio:"none"})}var h={name:"svg",children:[t],attributes:i};return yv(this[td]()[td]())?Ay.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[h]}):(h.attributes.style.position="absolute",Ay.success(h))}}])}(),Lv=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"area",!0])).colSpan=Xd({data:e.colSpan,defaultValue:1,validate:function(e){return e>=1||-1===e}}),r.id=e.id||"",r.name=e.name||"",r.relevant=ry(e.relevant),r.use=e.use||"",r.usehref=e.usehref||"",r.x=ey(e.x,"0pt"),r.y=ey(e.y,"0pt"),r.desc=null,r.extras=null,r.area=new Cp,r.draw=new Cp,r.exObject=new Cp,r.exclGroup=new Cp,r.field=new Cp,r.subform=new Cp,r.subformSet=new Cp,r}return sv(t,fp),rv(t,[{key:zE,value:gv().mark((function e(){return gv().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.delegateYield(vv(this),"t0",1);case 1:case"end":return e.stop()}}),e,this)}))},{key:fd,value:function(){return!0}},{key:cd,value:function(){return!0}},{key:DE,value:function(e,t){var r=ev(t,4),A=r[0],n=r[1],i=r[2],a=r[3];this[HE].width=Math.max(this[HE].width,A+i),this[HE].height=Math.max(this[HE].height,n+a),this[HE].children.push(e)}},{key:TE,value:function(){return this[HE].availableSpace}},{key:Md,value:function(e){var t=Lp(this,"position"),r={style:t,id:this[Yd],class:["xfaArea"]};Hp(this)&&r.class.push("xfaPrintOnly"),this.name&&(r.xfaName=this.name);var A=[];this[HE]={children:A,width:0,height:0,availableSpace:e};var n=this[FE]({filter:new Set(["area","draw","field","exclGroup","subform","subformSet"]),include:!0});if(!n.success)return n.isBreak()?n:(delete this[HE],Ay.FAILURE);t.width=kp(this[HE].width),t.height=kp(this[HE].height);var i={name:"div",attributes:r,children:A},a=[this.x,this.y,this[HE].width,this[HE].height];return delete this[HE],Ay.success(i,a)}}])}(),Uv=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"assist",!0])).id=e.id||"",r.role=e.role||"",r.use=e.use||"",r.usehref=e.usehref||"",r.speak=null,r.toolTip=null,r}return sv(t,fp),rv(t,[{key:Md,value:function(){var e;return(null===(e=this.toolTip)||void 0===e?void 0:e[UE])||null}}])}(),Mv=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"barcode",!0])).charEncoding=zd({data:e.charEncoding?e.charEncoding.toLowerCase():"",defaultValue:"",validate:function(e){return["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(e)||e.match(/iso-8859-\\d{2}/)}}),r.checksum=$d(e.checksum,["none","1mod10","1mod10_1mod11","2mod10","auto"]),r.dataColumnCount=Xd({data:e.dataColumnCount,defaultValue:-1,validate:function(e){return e>=0}}),r.dataLength=Xd({data:e.dataLength,defaultValue:-1,validate:function(e){return e>=0}}),r.dataPrep=$d(e.dataPrep,["none","flateCompress"]),r.dataRowCount=Xd({data:e.dataRowCount,defaultValue:-1,validate:function(e){return e>=0}}),r.endChar=e.endChar||"",r.errorCorrectionLevel=Xd({data:e.errorCorrectionLevel,defaultValue:-1,validate:function(e){return e>=0&&e<=8}}),r.id=e.id||"",r.moduleHeight=ey(e.moduleHeight,"5mm"),r.moduleWidth=ey(e.moduleWidth,"0.25mm"),r.printCheckDigit=Xd({data:e.printCheckDigit,defaultValue:0,validate:function(e){return 1===e}}),r.rowColumnRatio=ty(e.rowColumnRatio),r.startChar=e.startChar||"",r.textLocation=$d(e.textLocation,["below","above","aboveEmbedded","belowEmbedded","none"]),r.truncate=Xd({data:e.truncate,defaultValue:0,validate:function(e){return 1===e}}),r.type=$d(e.type?e.type.toLowerCase():"",["aztec","codabar","code2of5industrial","code2of5interleaved","code2of5matrix","code2of5standard","code3of9","code3of9extended","code11","code49","code93","code128","code128a","code128b","code128c","code128sscc","datamatrix","ean8","ean8add2","ean8add5","ean13","ean13add2","ean13add5","ean13pwcd","fim","logmars","maxicode","msi","pdf417","pdf417macro","plessey","postauscust2","postauscust3","postausreplypaid","postausstandard","postukrm4scc","postusdpbc","postusimb","postusstandard","postus5zip","qrcode","rfid","rss14","rss14expanded","rss14limited","rss14stacked","rss14stackedomni","rss14truncated","telepen","ucc128","ucc128random","ucc128sscc","upca","upcaadd2","upcaadd5","upcapwcd","upce","upceadd2","upceadd5","upcean2","upcean5","upsmaxicode"]),r.upsMode=$d(e.upsMode,["usCarrier","internationalCarrier","secureSymbol","standardSymbol"]),r.use=e.use||"",r.usehref=e.usehref||"",r.wideNarrowRatio=ty(e.wideNarrowRatio),r.encrypt=null,r.extras=null,r}return sv(t,fp),rv(t)}(),Jv=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"bind",!0])).match=$d(e.match,["once","dataRef","global","none"]),r.ref=e.ref||"",r.picture=null,r}return sv(t,fp),rv(t)}(),Hv=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"bindItems"])).connection=e.connection||"",r.labelRef=e.labelRef||"",r.ref=e.ref||"",r.valueRef=e.valueRef||"",r}return sv(t,fp),rv(t)}(),Yv=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"bookend"])).id=e.id||"",r.leader=e.leader||"",r.trailer=e.trailer||"",r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,fp),rv(t)}(),Pv=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"boolean"])).id=e.id||"",r.name=e.name||"",r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,vp),rv(t,[{key:Md,value:function(e){return Dv(1===this[UE]?"1":"0")}}])}(),Ov=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"border",!0])).break=$d(e.break,["close","open"]),r.hand=$d(e.hand,["even","left","right"]),r.id=e.id||"",r.presence=$d(e.presence,["visible","hidden","inactive","invisible"]),r.relevant=ry(e.relevant),r.use=e.use||"",r.usehref=e.usehref||"",r.corner=new Cp(4),r.edge=new Cp(4),r.extras=null,r.fill=null,r.margin=null,r}return sv(t,fp),rv(t,[{key:_E,value:function(){if(!this[HE]){var e=this.edge.children.slice();if(e.length<4)for(var t=e.at(-1)||new hm({}),r=e.length;r<4;r++)e.push(t);var A=e.map((function(e){return e.thickness})),n=[0,0,0,0];this.margin&&(n[0]=this.margin.topInset,n[1]=this.margin.rightInset,n[2]=this.margin.bottomInset,n[3]=this.margin.leftInset),this[HE]={widths:A,insets:n,edges:e}}return this[HE]}},{key:Hd,value:function(){var e,t=this[_E]().edges.map((function(e){var t=e[Hd]();return t.color||(t.color="#000000"),t})),r=Object.create(null);if(this.margin&&Object.assign(r,this.margin[Hd]()),"visible"===(null===(e=this.fill)||void 0===e?void 0:e.presence)&&Object.assign(r,this.fill[Hd]()),this.corner.children.some((function(e){return 0!==e.radius}))){var A=this.corner.children.map((function(e){return e[Hd]()}));if(2===A.length||3===A.length)for(var n=A.at(-1),i=A.length;i<4;i++)A.push(n);r.borderRadius=A.map((function(e){return e.radius})).join(" ")}switch(this.presence){case"invisible":case"hidden":r.borderStyle="";break;case"inactive":r.borderStyle="none";break;default:r.borderStyle=t.map((function(e){return e.style})).join(" ")}return r.borderWidth=t.map((function(e){return e.width})).join(" "),r.borderColor=t.map((function(e){return e.color})).join(" "),r}}])}(),Kv=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"break",!0])).after=$d(e.after,["auto","contentArea","pageArea","pageEven","pageOdd"]),r.afterTarget=e.afterTarget||"",r.before=$d(e.before,["auto","contentArea","pageArea","pageEven","pageOdd"]),r.beforeTarget=e.beforeTarget||"",r.bookendLeader=e.bookendLeader||"",r.bookendTrailer=e.bookendTrailer||"",r.id=e.id||"",r.overflowLeader=e.overflowLeader||"",r.overflowTarget=e.overflowTarget||"",r.overflowTrailer=e.overflowTrailer||"",r.startNew=Xd({data:e.startNew,defaultValue:0,validate:function(e){return 1===e}}),r.use=e.use||"",r.usehref=e.usehref||"",r.extras=null,r}return sv(t,fp),rv(t)}(),Tv=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"breakAfter",!0])).id=e.id||"",r.leader=e.leader||"",r.startNew=Xd({data:e.startNew,defaultValue:0,validate:function(e){return 1===e}}),r.target=e.target||"",r.targetType=$d(e.targetType,["auto","contentArea","pageArea"]),r.trailer=e.trailer||"",r.use=e.use||"",r.usehref=e.usehref||"",r.script=null,r}return sv(t,fp),rv(t)}(),qv=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"breakBefore",!0])).id=e.id||"",r.leader=e.leader||"",r.startNew=Xd({data:e.startNew,defaultValue:0,validate:function(e){return 1===e}}),r.target=e.target||"",r.targetType=$d(e.targetType,["auto","contentArea","pageArea"]),r.trailer=e.trailer||"",r.use=e.use||"",r.usehref=e.usehref||"",r.script=null,r}return sv(t,fp),rv(t,[{key:Md,value:function(e){return this[HE]={},Ay.FAILURE}}])}(),jv=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"button",!0])).highlight=$d(e.highlight,["inverted","none","outline","push"]),r.id=e.id||"",r.use=e.use||"",r.usehref=e.usehref||"",r.extras=null,r}return sv(t,fp),rv(t,[{key:Md,value:function(e){var t,r=this[td]()[td](),A={name:"button",attributes:{id:this[Yd],class:["xfaButton"],style:{}},children:[]},n=lv(r.event.children);try{for(n.s();!(t=n.n()).done;){var i=t.value;if("click"===i.activity&&i.script){var a=Kt(i.script[UE]);if(a){var o=Kp(a.url);o&&A.children.push({name:"a",attributes:{id:"link"+this[Yd],href:o,newWindow:a.newWindow,class:["xfaLink"],style:{}},children:[]})}}}}catch(e){n.e(e)}finally{n.f()}return Ay.success(A)}}])}(),Wv=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"calculate",!0])).id=e.id||"",r.override=$d(e.override,["disabled","error","ignore","warning"]),r.use=e.use||"",r.usehref=e.usehref||"",r.extras=null,r.message=null,r.script=null,r}return sv(t,fp),rv(t)}(),Zv=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"caption",!0])).id=e.id||"",r.placement=$d(e.placement,["left","bottom","inline","right","top"]),r.presence=$d(e.presence,["visible","hidden","inactive","invisible"]),r.reserve=Math.ceil(ey(e.reserve)),r.use=e.use||"",r.usehref=e.usehref||"",r.extras=null,r.font=null,r.margin=null,r.para=null,r.value=null,r}return sv(t,fp),rv(t,[{key:Gd,value:function(e){pv(this,e)}},{key:_E,value:function(e){if(!this[HE]){var t=e.width,r=e.height;switch(this.placement){case"left":case"right":case"inline":t=this.reserve<=0?t:this.reserve;break;case"top":case"bottom":r=this.reserve<=0?r:this.reserve}this[HE]=xp(this,{width:t,height:r})}return this[HE]}},{key:Md,value:function(e){if(!this.value)return Ay.EMPTY;this[bd]();var t=this.value[Md](e).html;if(!t)return this[wd](),Ay.EMPTY;var r=this.reserve;if(this.reserve<=0){var A=this[_E](e),n=A.w,i=A.h;switch(this.placement){case"left":case"right":case"inline":this.reserve=n;break;case"top":case"bottom":this.reserve=i}}var a=[];"string"==typeof t?a.push({name:"#text",value:t}):a.push(t);var o=Lp(this,"font","margin","visibility");switch(this.placement){case"left":case"right":this.reserve>0&&(o.width=kp(this.reserve));break;case"top":case"bottom":this.reserve>0&&(o.height=kp(this.reserve))}return Pp(this,null,t),this[wd](),this.reserve=r,Ay.success({name:"div",attributes:{style:o,class:["xfaCaption"]},children:a})}}])}(),_v=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"certificate"])).id=e.id||"",r.name=e.name||"",r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,yp),rv(t)}(),Xv=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"certificates",!0])).credentialServerPolicy=$d(e.credentialServerPolicy,["optional","required"]),r.id=e.id||"",r.url=e.url||"",r.urlPolicy=e.urlPolicy||"",r.use=e.use||"",r.usehref=e.usehref||"",r.encryption=null,r.issuers=null,r.keyUsage=null,r.oids=null,r.signing=null,r.subjectDNs=null,r}return sv(t,fp),rv(t)}(),Vv=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"checkButton",!0])).id=e.id||"",r.mark=$d(e.mark,["default","check","circle","cross","diamond","square","star"]),r.shape=$d(e.shape,["square","round"]),r.size=ey(e.size,"10pt"),r.use=e.use||"",r.usehref=e.usehref||"",r.border=null,r.extras=null,r.margin=null,r}return sv(t,fp),rv(t,[{key:Md,value:function(e){var t,r,A,n,i=Lp("margin"),a=kp(this.size);i.width=i.height=a;var o,s,c,g=this[td]()[td](),u=g.items.children.length&&g.items.children[0][Md]().html||[],l={on:(void 0!==u[0]?u[0]:"on").toString(),off:(void 0!==u[1]?u[1]:"off").toString()},h=((null===(t=g.value)||void 0===t?void 0:t[Ld]())||"off")===l.on||void 0,I=g[ed](),f=g[Yd];I instanceof mm?(n=I[Yd],r="radio",A="xfaRadio",o=(null===(s=I[ME])||void 0===s?void 0:s[Yd])||I[Yd]):(r="checkbox",A="xfaCheckbox",o=(null===(c=g[ME])||void 0===c?void 0:c[Yd])||g[Yd]);var C={name:"input",attributes:{class:[A],style:i,fieldId:f,dataId:o,type:r,checked:h,xfaOn:l.on,xfaOff:l.off,"aria-label":kv(g),"aria-required":!1}};return n&&(C.attributes.name=n),mv(g)&&(C.attributes["aria-required"]=!0,C.attributes.required=!0),Ay.success({name:"label",attributes:{class:["xfaLabel"]},children:[C]})}}])}(),zv=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"choiceList",!0])).commitOn=$d(e.commitOn,["select","exit"]),r.id=e.id||"",r.open=$d(e.open,["userControl","always","multiSelect","onEntry"]),r.textEntry=Xd({data:e.textEntry,defaultValue:0,validate:function(e){return 1===e}}),r.use=e.use||"",r.usehref=e.usehref||"",r.border=null,r.extras=null,r.margin=null,r}return sv(t,fp),rv(t,[{key:Md,value:function(e){var t,r,A=Lp(this,"border","margin"),n=this[td]()[td](),i=(null===(t=n.font)||void 0===t?void 0:t.size)||10,a={fontSize:"calc(".concat(i,"px * var(--scale-factor))")},o=[];if(n.items.children.length>0){var s,c=n.items,g=0,u=0;2===c.children.length&&(u=1-(g=c.children[0].save));for(var l=c.children[g][Md]().html,h=c.children[u][Md]().html,I=!1,f=(null===(s=n.value)||void 0===s?void 0:s[Ld]())||"",C=0,B=l.length;C1&&void 0!==arguments[1]?arguments[1]:[0,0,0],3),r=t[0],A=t[1],n=t[2];if(!e)return{r,g:A,b:n};var i=e.trim().split(/\\s*,\\s*/).map((function(e){return Math.min(Math.max(0,parseInt(e.trim(),10)),255)})).map((function(e){return isNaN(e)?0:e}));if(i.length<3)return{r,g:A,b:n};var a=qd(i,3);return{r:r=a[0],g:A=a[1],b:n=a[2]}}(e.value):"",r.extras=null,r}return sv(t,fp),rv(t,[{key:nd,value:function(){return!1}},{key:Hd,value:function(){return this.value?ge.makeHexColor(this.value.r,this.value.g,this.value.b):null}}])}(),em=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"comb"])).id=e.id||"",r.numberOfCells=Xd({data:e.numberOfCells,defaultValue:0,validate:function(e){return e>=0}}),r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,fp),rv(t)}(),tm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"connect",!0])).connection=e.connection||"",r.id=e.id||"",r.ref=e.ref||"",r.usage=$d(e.usage,["exportAndImport","exportOnly","importOnly"]),r.use=e.use||"",r.usehref=e.usehref||"",r.picture=null,r}return sv(t,fp),rv(t)}(),rm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"contentArea",!0])).h=ey(e.h),r.id=e.id||"",r.name=e.name||"",r.relevant=ry(e.relevant),r.use=e.use||"",r.usehref=e.usehref||"",r.w=ey(e.w),r.x=ey(e.x,"0pt"),r.y=ey(e.y,"0pt"),r.desc=null,r.extras=null,r}return sv(t,fp),rv(t,[{key:Md,value:function(e){var t={left:kp(this.x),top:kp(this.y),width:kp(this.w),height:kp(this.h)},r=["xfaContentarea"];return Hp(this)&&r.push("xfaPrintOnly"),Ay.success({name:"div",children:[],attributes:{style:t,class:r,id:this[Yd]}})}}])}(),Am=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"corner",!0])).id=e.id||"",r.inverted=Xd({data:e.inverted,defaultValue:0,validate:function(e){return 1===e}}),r.join=$d(e.join,["square","round"]),r.presence=$d(e.presence,["visible","hidden","inactive","invisible"]),r.radius=ey(e.radius),r.stroke=$d(e.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]),r.thickness=ey(e.thickness,"0.5pt"),r.use=e.use||"",r.usehref=e.usehref||"",r.color=null,r.extras=null,r}return sv(t,fp),rv(t,[{key:Hd,value:function(){var e=Lp(this,"visibility");return e.radius=kp("square"===this.join?0:this.radius),e}}])}(),nm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"date"])).id=e.id||"",r.name=e.name||"",r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,Ep),rv(t,[{key:YE,value:function(){var e=this[UE].trim();this[UE]=e?new Date(e):null}},{key:Md,value:function(e){return Dv(this[UE]?this[UE].toString():"")}}])}(),im=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"dateTime"])).id=e.id||"",r.name=e.name||"",r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,Ep),rv(t,[{key:YE,value:function(){var e=this[UE].trim();this[UE]=e?new Date(e):null}},{key:Md,value:function(e){return Dv(this[UE]?this[UE].toString():"")}}])}(),am=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"dateTimeEdit",!0])).hScrollPolicy=$d(e.hScrollPolicy,["auto","off","on"]),r.id=e.id||"",r.picker=$d(e.picker,["host","none"]),r.use=e.use||"",r.usehref=e.usehref||"",r.border=null,r.comb=null,r.extras=null,r.margin=null,r}return sv(t,fp),rv(t,[{key:Md,value:function(e){var t,r=Lp(this,"border","font","margin"),A=this[td]()[td](),n={name:"input",attributes:{type:"text",fieldId:A[Yd],dataId:(null===(t=A[ME])||void 0===t?void 0:t[Yd])||A[Yd],class:["xfaTextfield"],style:r,"aria-label":kv(A),"aria-required":!1}};return mv(A)&&(n.attributes["aria-required"]=!0,n.attributes.required=!0),Ay.success({name:"label",attributes:{class:["xfaLabel"]},children:[n]})}}])}(),om=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"decimal"])).fracDigits=Xd({data:e.fracDigits,defaultValue:2,validate:function(e){return!0}}),r.id=e.id||"",r.leadDigits=Xd({data:e.leadDigits,defaultValue:-1,validate:function(e){return!0}}),r.name=e.name||"",r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,Ep),rv(t,[{key:YE,value:function(){var e=parseFloat(this[UE].trim());this[UE]=isNaN(e)?null:e}},{key:Md,value:function(e){return Dv(null!==this[UE]?this[UE].toString():"")}}])}(),sm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"defaultUi",!0])).id=e.id||"",r.use=e.use||"",r.usehref=e.usehref||"",r.extras=null,r}return sv(t,fp),rv(t)}(),cm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"desc",!0])).id=e.id||"",r.use=e.use||"",r.usehref=e.usehref||"",r.boolean=new Cp,r.date=new Cp,r.dateTime=new Cp,r.decimal=new Cp,r.exData=new Cp,r.float=new Cp,r.image=new Cp,r.integer=new Cp,r.text=new Cp,r.time=new Cp,r}return sv(t,fp),rv(t)}(),gm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"digestMethod",["","SHA1","SHA256","SHA512","RIPEMD160"]])).id=e.id||"",r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,dp),rv(t)}(),um=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"digestMethods",!0])).id=e.id||"",r.type=$d(e.type,["optional","required"]),r.use=e.use||"",r.usehref=e.usehref||"",r.digestMethod=new Cp,r}return sv(t,fp),rv(t)}(),lm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"draw",!0])).anchorType=$d(e.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]),r.colSpan=Xd({data:e.colSpan,defaultValue:1,validate:function(e){return e>=1||-1===e}}),r.h=e.h?ey(e.h):"",r.hAlign=$d(e.hAlign,["left","center","justify","justifyAll","radix","right"]),r.id=e.id||"",r.locale=e.locale||"",r.maxH=ey(e.maxH,"0pt"),r.maxW=ey(e.maxW,"0pt"),r.minH=ey(e.minH,"0pt"),r.minW=ey(e.minW,"0pt"),r.name=e.name||"",r.presence=$d(e.presence,["visible","hidden","inactive","invisible"]),r.relevant=ry(e.relevant),r.rotate=Xd({data:e.rotate,defaultValue:0,validate:function(e){return e%90==0}}),r.use=e.use||"",r.usehref=e.usehref||"",r.w=e.w?ey(e.w):"",r.x=ey(e.x,"0pt"),r.y=ey(e.y,"0pt"),r.assist=null,r.border=null,r.caption=null,r.desc=null,r.extras=null,r.font=null,r.keep=null,r.margin=null,r.para=null,r.traversal=null,r.ui=null,r.value=null,r.setProperty=new Cp,r}return sv(t,fp),rv(t,[{key:Gd,value:function(e){pv(this,e)}},{key:Md,value:function(e){if(wv(this),"hidden"===this.presence||"inactive"===this.presence)return Ay.EMPTY;Gp(this),this[bd]();var t=this.w,r=this.h,A=xp(this,e),n=A.w,i=A.h,a=A.isBroken;if(n&&""===this.w){if(a&&this[ed]()[Id]())return this[wd](),Ay.FAILURE;this.w=n}if(i&&""===this.h&&(this.h=i),Sv(this),!Vp(this,e))return this.w=t,this.h=r,this[wd](),Ay.FAILURE;Fv(this);var o=Lp(this,"font","hAlign","dimensions","position","presence","rotate","anchorType","border","margin");Sp(this,o),o.margin&&(o.padding=o.margin,delete o.margin);var s=["xfaDraw"];this.font&&s.push("xfaFont"),Hp(this)&&s.push("xfaPrintOnly");var c={style:o,id:this[Yd],class:s};this.name&&(c.xfaName=this.name);var g={name:"div",attributes:c,children:[]};bv(this,c);var u=Rp(this,g,e),l=this.value?this.value[Md](e).html:null;return null===l?(this.w=t,this.h=r,this[wd](),Ay.success(Up(this,g),u)):(g.children.push(l),Pp(this,o,l),this.w=t,this.h=r,this[wd](),Ay.success(Up(this,g),u))}}])}(),hm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"edge",!0])).cap=$d(e.cap,["square","butt","round"]),r.id=e.id||"",r.presence=$d(e.presence,["visible","hidden","inactive","invisible"]),r.stroke=$d(e.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]),r.thickness=ey(e.thickness,"0.5pt"),r.use=e.use||"",r.usehref=e.usehref||"",r.color=null,r.extras=null,r}return sv(t,fp),rv(t,[{key:Hd,value:function(){var e=Lp(this,"visibility");if(Object.assign(e,{linecap:this.cap,width:kp(this.thickness),color:this.color?this.color[Hd]():"#000000",style:""}),"visible"!==this.presence)e.style="none";else switch(this.stroke){case"solid":e.style="solid";break;case"dashDot":case"dashDotDot":case"dashed":e.style="dashed";break;case"dotted":e.style="dotted";break;case"embossed":e.style="ridge";break;case"etched":e.style="groove";break;case"lowered":e.style="inset";break;case"raised":e.style="outset"}return e}}])}(),Im=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"encoding",["adbe.x509.rsa_sha1","adbe.pkcs7.detached","adbe.pkcs7.sha1"]])).id=e.id||"",r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,dp),rv(t)}(),fm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"encodings",!0])).id=e.id||"",r.type=$d(e.type,["optional","required"]),r.use=e.use||"",r.usehref=e.usehref||"",r.encoding=new Cp,r}return sv(t,fp),rv(t)}(),Cm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"encrypt",!0])).id=e.id||"",r.use=e.use||"",r.usehref=e.usehref||"",r.certificate=null,r}return sv(t,fp),rv(t)}(),Bm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"encryptData",!0])).id=e.id||"",r.operation=$d(e.operation,["encrypt","decrypt"]),r.target=e.target||"",r.use=e.use||"",r.usehref=e.usehref||"",r.filter=null,r.manifest=null,r}return sv(t,fp),rv(t)}(),Qm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"encryption",!0])).id=e.id||"",r.type=$d(e.type,["optional","required"]),r.use=e.use||"",r.usehref=e.usehref||"",r.certificate=new Cp,r}return sv(t,fp),rv(t)}(),Em=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"encryptionMethod",["","AES256-CBC","TRIPLEDES-CBC","AES128-CBC","AES192-CBC"]])).id=e.id||"",r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,dp),rv(t)}(),dm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"encryptionMethods",!0])).id=e.id||"",r.type=$d(e.type,["optional","required"]),r.use=e.use||"",r.usehref=e.usehref||"",r.encryptionMethod=new Cp,r}return sv(t,fp),rv(t)}(),ym=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"event",!0])).activity=$d(e.activity,["click","change","docClose","docReady","enter","exit","full","indexChange","initialize","mouseDown","mouseEnter","mouseExit","mouseUp","postExecute","postOpen","postPrint","postSave","postSign","postSubmit","preExecute","preOpen","prePrint","preSave","preSign","preSubmit","ready","validationState"]),r.id=e.id||"",r.listen=$d(e.listen,["refOnly","refAndDescendents"]),r.name=e.name||"",r.ref=e.ref||"",r.use=e.use||"",r.usehref=e.usehref||"",r.extras=null,r.encryptData=null,r.execute=null,r.script=null,r.signData=null,r.submit=null,r}return sv(t,fp),rv(t)}(),pm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"exData"])).contentType=e.contentType||"",r.href=e.href||"",r.id=e.id||"",r.maxLength=Xd({data:e.maxLength,defaultValue:-1,validate:function(e){return e>=-1}}),r.name=e.name||"",r.rid=e.rid||"",r.transferEncoding=$d(e.transferEncoding,["none","base64","package"]),r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,Ep),rv(t,[{key:sd,value:function(){return"text/html"===this.contentType}},{key:yd,value:function(e){return("text/html"===this.contentType&&e[Qd]===Od.xhtml.id||"text/xml"===this.contentType)&&(this[UE]=e,!0)}},{key:Md,value:function(e){return"text/html"===this.contentType&&this[UE]?this[UE][Md](e):Ay.EMPTY}}])}(),vm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"exObject",!0])).archive=e.archive||"",r.classId=e.classId||"",r.codeBase=e.codeBase||"",r.codeType=e.codeType||"",r.id=e.id||"",r.name=e.name||"",r.use=e.use||"",r.usehref=e.usehref||"",r.extras=null,r.boolean=new Cp,r.date=new Cp,r.dateTime=new Cp,r.decimal=new Cp,r.exData=new Cp,r.exObject=new Cp,r.float=new Cp,r.image=new Cp,r.integer=new Cp,r.text=new Cp,r.time=new Cp,r}return sv(t,fp),rv(t)}(),mm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"exclGroup",!0])).access=$d(e.access,["open","nonInteractive","protected","readOnly"]),r.accessKey=e.accessKey||"",r.anchorType=$d(e.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]),r.colSpan=Xd({data:e.colSpan,defaultValue:1,validate:function(e){return e>=1||-1===e}}),r.h=e.h?ey(e.h):"",r.hAlign=$d(e.hAlign,["left","center","justify","justifyAll","radix","right"]),r.id=e.id||"",r.layout=$d(e.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]),r.maxH=ey(e.maxH,"0pt"),r.maxW=ey(e.maxW,"0pt"),r.minH=ey(e.minH,"0pt"),r.minW=ey(e.minW,"0pt"),r.name=e.name||"",r.presence=$d(e.presence,["visible","hidden","inactive","invisible"]),r.relevant=ry(e.relevant),r.use=e.use||"",r.usehref=e.usehref||"",r.w=e.w?ey(e.w):"",r.x=ey(e.x,"0pt"),r.y=ey(e.y,"0pt"),r.assist=null,r.bind=null,r.border=null,r.calculate=null,r.caption=null,r.desc=null,r.extras=null,r.margin=null,r.para=null,r.traversal=null,r.validate=null,r.connect=new Cp,r.event=new Cp,r.field=new Cp,r.setProperty=new Cp,r}return sv(t,fp),rv(t,[{key:cd,value:function(){return!0}},{key:nd,value:function(){return!0}},{key:Gd,value:function(e){var t,r=lv(this.field.children);try{for(r.s();!(t=r.n()).done;){var A=t.value;if(!A.value){var n=new Uw({});A[SE](n),A.value=n}A.value[Gd](e)}}catch(e){r.e(e)}finally{r.f()}}},{key:Id,value:function(){return this.layout.endsWith("-tb")&&0===this[HE].attempt&&this[HE].numberInLine>0||this[td]()[Id]()}},{key:hd,value:function(){var e,t=this[ed]();return!!t[hd]()&&(void 0!==this[HE]._isSplittable?this[HE]._isSplittable:"position"===this.layout||this.layout.includes("row")?(this[HE]._isSplittable=!1,!1):!(null!==(e=t.layout)&&void 0!==e&&e.endsWith("-tb")&&0!==t[HE].numberInLine||(this[HE]._isSplittable=!0,0)))}},{key:PE,value:function(){return Zp(this)}},{key:DE,value:function(e,t){_p(this,e,t)}},{key:TE,value:function(){return Xp(this)}},{key:Md,value:function(e){if(wv(this),"hidden"===this.presence||"inactive"===this.presence||0===this.h||0===this.w)return Ay.EMPTY;Gp(this);var t=[],r={id:this[Yd],class:[]};Jp(this,r.class),this[HE]||(this[HE]=Object.create(null)),Object.assign(this[HE],{children:t,attributes:r,attempt:0,line:null,numberInLine:0,availableSpace:{width:Math.min(this.w||1/0,e.width),height:Math.min(this.h||1/0,e.height)},width:0,height:0,prevHeight:0,currentWidth:0});var A=this[hd]();if(A||Sv(this),!Vp(this,e))return Ay.FAILURE;var n=new Set(["field"]);if(this.layout.includes("row")){var i=this[ed]().columnWidths;Array.isArray(i)&&i.length>0&&(this[HE].columnWidths=i,this[HE].currentColumn=0)}var a=Lp(this,"anchorType","dimensions","position","presence","border","margin","hAlign"),o=["xfaExclgroup"],s=Np(this);s&&o.push(s),Hp(this)&&o.push("xfaPrintOnly"),r.style=a,r.class=o,this.name&&(r.xfaName=this.name),this[bd]();for(var c="lr-tb"===this.layout||"rl-tb"===this.layout,g=c?2:1;this[HE].attempt=1||-1===e}}),r.h=e.h?ey(e.h):"",r.hAlign=$d(e.hAlign,["left","center","justify","justifyAll","radix","right"]),r.id=e.id||"",r.locale=e.locale||"",r.maxH=ey(e.maxH,"0pt"),r.maxW=ey(e.maxW,"0pt"),r.minH=ey(e.minH,"0pt"),r.minW=ey(e.minW,"0pt"),r.name=e.name||"",r.presence=$d(e.presence,["visible","hidden","inactive","invisible"]),r.relevant=ry(e.relevant),r.rotate=Xd({data:e.rotate,defaultValue:0,validate:function(e){return e%90==0}}),r.use=e.use||"",r.usehref=e.usehref||"",r.w=e.w?ey(e.w):"",r.x=ey(e.x,"0pt"),r.y=ey(e.y,"0pt"),r.assist=null,r.bind=null,r.border=null,r.calculate=null,r.caption=null,r.desc=null,r.extras=null,r.font=null,r.format=null,r.items=new Cp(2),r.keep=null,r.margin=null,r.para=null,r.traversal=null,r.ui=null,r.validate=null,r.value=null,r.bindItems=new Cp,r.connect=new Cp,r.event=new Cp,r.setProperty=new Cp,r}return sv(t,fp),rv(t,[{key:cd,value:function(){return!0}},{key:Gd,value:function(e){pv(this,e)}},{key:Md,value:function(e){var t;if(wv(this),!this.ui){var r;switch(this.ui=new Nw({}),this.ui[Ad]=this[Ad],this[SE](this.ui),this.items.children.length){case 0:r=new Dw({}),this.ui.textEdit=r;break;case 1:r=new Vv({}),this.ui.checkButton=r;break;case 2:r=new zv({}),this.ui.choiceList=r}this.ui[SE](r)}if(!this.ui||"hidden"===this.presence||"inactive"===this.presence||0===this.h||0===this.w)return Ay.EMPTY;this.caption&&delete this.caption[HE],this[bd]();var A=this.caption?this.caption[Md](e).html:null,n=this.w,i=this.h,a=0,o=0;this.margin&&(a=this.margin.leftInset+this.margin.rightInset,o=this.margin.topInset+this.margin.bottomInset);var s=null;if(""===this.w||""===this.h){var c=null,g=null,u=0,l=0;if(this.ui.checkButton)u=l=this.ui.checkButton.size;else{var h=xp(this,e),I=h.w,f=h.h;null!==I?(u=I,l=f):l=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=null;if(e){var A=_d(e.typeface),n=e[Ad].fontFinder.find(A);r=uy(e,n)}if(!r)return{lineHeight:12,lineGap:2,lineNoGap:10};var i=e.size||10,a=r.lineHeight?Math.max(t?0:1.2,r.lineHeight):1.2,o=void 0===r.lineGap?.2:r.lineGap;return{lineHeight:a*i,lineGap:o*i,lineNoGap:Math.max(1,a-o)*i}}(this.font,!0).lineNoGap}if(u+=(s=dv(this.ui[_E]())).w,l+=s.h,this.caption){var C=this.caption[_E](e),B=C.w,Q=C.h;if(C.isBroken&&this[ed]()[Id]())return this[wd](),Ay.FAILURE;switch(c=B,g=Q,this.caption.placement){case"left":case"right":case"inline":c+=u;break;case"top":case"bottom":g+=l}}else c=u,g=l;c&&""===this.w&&(c+=a,this.w=Math.min(this.maxW<=0?1/0:this.maxW,this.minW+1=1&&e<=5}}),r.appearanceFilter=null,r.certificates=null,r.digestMethods=null,r.encodings=null,r.encryptionMethods=null,r.handler=null,r.lockDocument=null,r.mdp=null,r.reasons=null,r.timeStamp=null,r}return sv(t,fp),rv(t)}(),Fm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"float"])).id=e.id||"",r.name=e.name||"",r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,Ep),rv(t,[{key:YE,value:function(){var e=parseFloat(this[UE].trim());this[UE]=isNaN(e)?null:e}},{key:Md,value:function(e){return Dv(null!==this[UE]?this[UE].toString():"")}}])}(),xm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"font",!0])).baselineShift=ey(e.baselineShift),r.fontHorizontalScale=Vd({data:e.fontHorizontalScale,defaultValue:100,validate:function(e){return e>=0}}),r.fontVerticalScale=Vd({data:e.fontVerticalScale,defaultValue:100,validate:function(e){return e>=0}}),r.id=e.id||"",r.kerningMode=$d(e.kerningMode,["none","pair"]),r.letterSpacing=ey(e.letterSpacing,"0"),r.lineThrough=Xd({data:e.lineThrough,defaultValue:0,validate:function(e){return 1===e||2===e}}),r.lineThroughPeriod=$d(e.lineThroughPeriod,["all","word"]),r.overline=Xd({data:e.overline,defaultValue:0,validate:function(e){return 1===e||2===e}}),r.overlinePeriod=$d(e.overlinePeriod,["all","word"]),r.posture=$d(e.posture,["normal","italic"]),r.size=ey(e.size,"10pt"),r.typeface=e.typeface||"Courier",r.underline=Xd({data:e.underline,defaultValue:0,validate:function(e){return 1===e||2===e}}),r.underlinePeriod=$d(e.underlinePeriod,["all","word"]),r.use=e.use||"",r.usehref=e.usehref||"",r.weight=$d(e.weight,["normal","bold"]),r.extras=null,r.fill=null,r}return sv(t,fp),rv(t,[{key:xE,value:function(e){zp(t,xE,this,3)([e]),this[Ad].usedTypefaces.add(this.typeface)}},{key:Hd,value:function(){var e=Lp(this,"fill"),t=e.color;return t&&("#000000"===t?delete e.color:t.startsWith("#")||(e.background=t,e.backgroundClip="text",e.color="transparent")),this.baselineShift&&(e.verticalAlign=kp(this.baselineShift)),e.fontKerning="none"===this.kerningMode?"none":"normal",e.letterSpacing=kp(this.letterSpacing),0!==this.lineThrough&&(e.textDecoration="line-through",2===this.lineThrough&&(e.textDecorationStyle="double")),0!==this.overline&&(e.textDecoration="overline",2===this.overline&&(e.textDecorationStyle="double")),e.fontStyle=this.posture,e.fontSize=kp(.99*this.size),Op(this,this,this[Ad].fontFinder,e),0!==this.underline&&(e.textDecoration="underline",2===this.underline&&(e.textDecorationStyle="double")),e.fontWeight=this.weight,e}}])}(),Rm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"format",!0])).id=e.id||"",r.use=e.use||"",r.usehref=e.usehref||"",r.extras=null,r.picture=null,r}return sv(t,fp),rv(t)}(),Gm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"handler"])).id=e.id||"",r.type=$d(e.type,["optional","required"]),r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,yp),rv(t)}(),Nm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"hyphenation"])).excludeAllCaps=Xd({data:e.excludeAllCaps,defaultValue:0,validate:function(e){return 1===e}}),r.excludeInitialCap=Xd({data:e.excludeInitialCap,defaultValue:0,validate:function(e){return 1===e}}),r.hyphenate=Xd({data:e.hyphenate,defaultValue:0,validate:function(e){return 1===e}}),r.id=e.id||"",r.pushCharacterCount=Xd({data:e.pushCharacterCount,defaultValue:3,validate:function(e){return e>=0}}),r.remainCharacterCount=Xd({data:e.remainCharacterCount,defaultValue:3,validate:function(e){return e>=0}}),r.use=e.use||"",r.usehref=e.usehref||"",r.wordCharacterCount=Xd({data:e.wordCharacterCount,defaultValue:7,validate:function(e){return e>=0}}),r}return sv(t,fp),rv(t)}(),Lm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"image"])).aspect=$d(e.aspect,["fit","actual","height","none","width"]),r.contentType=e.contentType||"",r.href=e.href||"",r.id=e.id||"",r.name=e.name||"",r.transferEncoding=$d(e.transferEncoding,["base64","none","package"]),r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,yp),rv(t,[{key:Md,value:function(){if(this.contentType&&!Qv.has(this.contentType.toLowerCase()))return Ay.EMPTY;var e=this[Ad].images&&this[Ad].images.get(this.href);if(!e&&(this.href||!this[UE]))return Ay.EMPTY;if(e||"base64"!==this.transferEncoding||(e=ie(atob(this[UE]))),!e)return Ay.EMPTY;if(!this.contentType){for(var t=0,r=Ev;tn.length&&n.every((function(t,r){return t===e[r]}))){this.contentType=i;break}}if(!this.contentType)return Ay.EMPTY}var a,o=new Blob([e],{type:this.contentType});switch(this.aspect){case"fit":case"actual":break;case"height":a={height:"100%",objectFit:"fill"};break;case"none":a={width:"100%",height:"100%",objectFit:"fill"};break;case"width":a={width:"100%",objectFit:"fill"}}var s=this[td]();return Ay.success({name:"img",attributes:{class:["xfaImage"],style:a,src:URL.createObjectURL(o),alt:s?kv(s[td]()):null}})}}])}(),Um=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"imageEdit",!0])).data=$d(e.data,["link","embed"]),r.id=e.id||"",r.use=e.use||"",r.usehref=e.usehref||"",r.border=null,r.extras=null,r.margin=null,r}return sv(t,fp),rv(t,[{key:Md,value:function(e){return"embed"===this.data?Ay.success({name:"div",children:[],attributes:{}}):Ay.EMPTY}}])}(),Mm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"integer"])).id=e.id||"",r.name=e.name||"",r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,Ep),rv(t,[{key:YE,value:function(){var e=parseInt(this[UE].trim(),10);this[UE]=isNaN(e)?null:e}},{key:Md,value:function(e){return Dv(null!==this[UE]?this[UE].toString():"")}}])}(),Jm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"issuers",!0])).id=e.id||"",r.type=$d(e.type,["optional","required"]),r.use=e.use||"",r.usehref=e.usehref||"",r.certificate=new Cp,r}return sv(t,fp),rv(t)}(),Hm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"items",!0])).id=e.id||"",r.name=e.name||"",r.presence=$d(e.presence,["visible","hidden","inactive","invisible"]),r.ref=e.ref||"",r.save=Xd({data:e.save,defaultValue:0,validate:function(e){return 1===e}}),r.use=e.use||"",r.usehref=e.usehref||"",r.boolean=new Cp,r.date=new Cp,r.dateTime=new Cp,r.decimal=new Cp,r.exData=new Cp,r.float=new Cp,r.image=new Cp,r.integer=new Cp,r.text=new Cp,r.time=new Cp,r}return sv(t,fp),rv(t,[{key:Md,value:function(){var e,t=[],r=lv(this[VE]());try{for(r.s();!(e=r.n()).done;){var A=e.value;t.push(A[Ld]())}}catch(e){r.e(e)}finally{r.f()}return Ay.success(t)}}])}(),Ym=function(e){function t(e){var r;nv(this,t),(r=iv(this,t,[fv,"keep",!0])).id=e.id||"";var A=["none","contentArea","pageArea"];return r.intact=$d(e.intact,A),r.next=$d(e.next,A),r.previous=$d(e.previous,A),r.use=e.use||"",r.usehref=e.usehref||"",r.extras=null,r}return sv(t,fp),rv(t)}(),Pm=function(e){function t(e){var r;nv(this,t);var A=["","yes","no"];return(r=iv(this,t,[fv,"keyUsage"])).crlSign=$d(e.crlSign,A),r.dataEncipherment=$d(e.dataEncipherment,A),r.decipherOnly=$d(e.decipherOnly,A),r.digitalSignature=$d(e.digitalSignature,A),r.encipherOnly=$d(e.encipherOnly,A),r.id=e.id||"",r.keyAgreement=$d(e.keyAgreement,A),r.keyCertSign=$d(e.keyCertSign,A),r.keyEncipherment=$d(e.keyEncipherment,A),r.nonRepudiation=$d(e.nonRepudiation,A),r.type=$d(e.type,["optional","required"]),r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,fp),rv(t)}(),Om=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"line",!0])).hand=$d(e.hand,["even","left","right"]),r.id=e.id||"",r.slope=$d(e.slope,["\\\\","/"]),r.use=e.use||"",r.usehref=e.usehref||"",r.edge=null,r}return sv(t,fp),rv(t,[{key:Md,value:function(){var e,t,r,A,n=this[td]()[td](),i=this.edge||new hm({}),a=i[Hd](),o=Object.create(null),s="visible"===i.presence?i.thickness:0;o.strokeWidth=kp(s),o.stroke=a.color;var c="100%",g="100%";n.w<=s?(e="50%",t=0,r="50%",A="100%",c=o.strokeWidth):n.h<=s?(e=0,t="50%",r="100%",A="50%",g=o.strokeWidth):"\\\\"===this.slope?(e=0,t=0,r="100%",A="100%"):(e=0,t="100%",r="100%",A=0);var u={name:"svg",children:[{name:"line",attributes:{xmlns:Cv,x1:e,y1:t,x2:r,y2:A,style:o}}],attributes:{xmlns:Cv,width:c,height:g,style:{overflow:"visible"}}};return yv(n)?Ay.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[u]}):(u.attributes.style.position="absolute",Ay.success(u))}}])}(),Km=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"linear",!0])).id=e.id||"",r.type=$d(e.type,["toRight","toBottom","toLeft","toTop"]),r.use=e.use||"",r.usehref=e.usehref||"",r.color=null,r.extras=null,r}return sv(t,fp),rv(t,[{key:Hd,value:function(e){e=e?e[Hd]():"#FFFFFF";var t=this.type.replace(/([RBLT])/," $1").toLowerCase(),r=this.color?this.color[Hd]():"#000000";return"linear-gradient(".concat(t,", ").concat(e,", ").concat(r,")")}}])}(),Tm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"lockDocument"])).id=e.id||"",r.type=$d(e.type,["optional","required"]),r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,Ep),rv(t,[{key:YE,value:function(){this[UE]=$d(this[UE],["auto","0","1"])}}])}(),qm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"manifest",!0])).action=$d(e.action,["include","all","exclude"]),r.id=e.id||"",r.name=e.name||"",r.use=e.use||"",r.usehref=e.usehref||"",r.extras=null,r.ref=new Cp,r}return sv(t,fp),rv(t)}(),jm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"margin",!0])).bottomInset=ey(e.bottomInset,"0"),r.id=e.id||"",r.leftInset=ey(e.leftInset,"0"),r.rightInset=ey(e.rightInset,"0"),r.topInset=ey(e.topInset,"0"),r.use=e.use||"",r.usehref=e.usehref||"",r.extras=null,r}return sv(t,fp),rv(t,[{key:Hd,value:function(){return{margin:kp(this.topInset)+" "+kp(this.rightInset)+" "+kp(this.bottomInset)+" "+kp(this.leftInset)}}}])}(),Wm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"mdp"])).id=e.id||"",r.permissions=Xd({data:e.permissions,defaultValue:2,validate:function(e){return 1===e||3===e}}),r.signatureType=$d(e.signatureType,["filler","author"]),r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,fp),rv(t)}(),Zm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"medium"])).id=e.id||"",r.imagingBBox=function(e){var t=-1;if(!e)return{x:t,y:t,width:t,height:t};var r=e.trim().split(/\\s*,\\s*/).map((function(e){return ey(e,"-1")}));if(r.length<4||r[2]<0||r[3]<0)return{x:t,y:t,width:t,height:t};var A=qd(r,4);return{x:A[0],y:A[1],width:A[2],height:A[3]}}(e.imagingBBox),r.long=ey(e.long),r.orientation=$d(e.orientation,["portrait","landscape"]),r.short=ey(e.short),r.stock=e.stock||"",r.trayIn=$d(e.trayIn,["auto","delegate","pageFront"]),r.trayOut=$d(e.trayOut,["auto","delegate"]),r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,fp),rv(t)}(),_m=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"message",!0])).id=e.id||"",r.use=e.use||"",r.usehref=e.usehref||"",r.text=new Cp,r}return sv(t,fp),rv(t)}(),Xm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"numericEdit",!0])).hScrollPolicy=$d(e.hScrollPolicy,["auto","off","on"]),r.id=e.id||"",r.use=e.use||"",r.usehref=e.usehref||"",r.border=null,r.comb=null,r.extras=null,r.margin=null,r}return sv(t,fp),rv(t,[{key:Md,value:function(e){var t,r=Lp(this,"border","font","margin"),A=this[td]()[td](),n={name:"input",attributes:{type:"text",fieldId:A[Yd],dataId:(null===(t=A[ME])||void 0===t?void 0:t[Yd])||A[Yd],class:["xfaTextfield"],style:r,"aria-label":kv(A),"aria-required":!1}};return mv(A)&&(n.attributes["aria-required"]=!0,n.attributes.required=!0),Ay.success({name:"label",attributes:{class:["xfaLabel"]},children:[n]})}}])}(),Vm=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"occur",!0])).id=e.id||"",r.initial=""!==e.initial?Xd({data:e.initial,defaultValue:"",validate:function(e){return!0}}):"",r.max=""!==e.max?Xd({data:e.max,defaultValue:1,validate:function(e){return!0}}):"",r.min=""!==e.min?Xd({data:e.min,defaultValue:1,validate:function(e){return!0}}):"",r.use=e.use||"",r.usehref=e.usehref||"",r.extras=null,r}return sv(t,fp),rv(t,[{key:xE,value:function(){var e=this[td](),t=this.min;""===this.min&&(this.min=e instanceof tw||e instanceof rw?0:1),""===this.max&&(this.max=""===t?e instanceof tw||e instanceof rw?-1:1:this.min),-1!==this.max&&this.max=0}}),r.preserve=e.preserve||"",r.radixOffset=e.radixOffset?ey(e.radixOffset,"0pt"):"",r.spaceAbove=e.spaceAbove?ey(e.spaceAbove,"0pt"):"",r.spaceBelow=e.spaceBelow?ey(e.spaceBelow,"0pt"):"",r.tabDefault=e.tabDefault?ey(r.tabDefault):"",r.tabStops=(e.tabStops||"").trim().split(/\\s+/).map((function(e,t){return t%2==1?ey(e):e})),r.textIndent=e.textIndent?ey(e.textIndent,"0pt"):"",r.use=e.use||"",r.usehref=e.usehref||"",r.vAlign=$d(e.vAlign,["top","bottom","middle"]),r.widows=Xd({data:e.widows,defaultValue:0,validate:function(e){return e>=0}}),r.hyphenation=null,r}return sv(t,fp),rv(t,[{key:Hd,value:function(){var e=Lp(this,"hAlign");return""!==this.marginLeft&&(e.paddingLeft=kp(this.marginLeft)),""!==this.marginRight&&(e.paddingight=kp(this.marginRight)),""!==this.spaceAbove&&(e.paddingTop=kp(this.spaceAbove)),""!==this.spaceBelow&&(e.paddingBottom=kp(this.spaceBelow)),""!==this.textIndent&&(e.textIndent=kp(this.textIndent),Mp(e)),this.lineHeight>0&&(e.lineHeight=kp(this.lineHeight)),""!==this.tabDefault&&(e.tabSize=kp(this.tabDefault)),this.tabStops.length,this.hyphenatation&&Object.assign(e,this.hyphenatation[Hd]()),e}}])}(),nw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"passwordEdit",!0])).hScrollPolicy=$d(e.hScrollPolicy,["auto","off","on"]),r.id=e.id||"",r.passwordChar=e.passwordChar||"*",r.use=e.use||"",r.usehref=e.usehref||"",r.border=null,r.extras=null,r.margin=null,r}return sv(t,fp),rv(t)}(),iw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"pattern",!0])).id=e.id||"",r.type=$d(e.type,["crossHatch","crossDiagonal","diagonalLeft","diagonalRight","horizontal","vertical"]),r.use=e.use||"",r.usehref=e.usehref||"",r.color=null,r.extras=null,r}return sv(t,fp),rv(t,[{key:Hd,value:function(e){e=e?e[Hd]():"#FFFFFF";var t=this.color?this.color[Hd]():"#000000",r="repeating-linear-gradient",A="".concat(e,",").concat(e," ").concat(5,"px,").concat(t," ").concat(5,"px,").concat(t," ").concat(10,"px");switch(this.type){case"crossHatch":return"".concat(r,"(to top,").concat(A,") ").concat(r,"(to right,").concat(A,")");case"crossDiagonal":return"".concat(r,"(45deg,").concat(A,") ").concat(r,"(-45deg,").concat(A,")");case"diagonalLeft":return"".concat(r,"(45deg,").concat(A,")");case"diagonalRight":return"".concat(r,"(-45deg,").concat(A,")");case"horizontal":return"".concat(r,"(to top,").concat(A,")");case"vertical":return"".concat(r,"(to right,").concat(A,")")}return""}}])}(),aw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"picture"])).id=e.id||"",r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,yp),rv(t)}(),ow=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"proto",!0])).appearanceFilter=new Cp,r.arc=new Cp,r.area=new Cp,r.assist=new Cp,r.barcode=new Cp,r.bindItems=new Cp,r.bookend=new Cp,r.boolean=new Cp,r.border=new Cp,r.break=new Cp,r.breakAfter=new Cp,r.breakBefore=new Cp,r.button=new Cp,r.calculate=new Cp,r.caption=new Cp,r.certificate=new Cp,r.certificates=new Cp,r.checkButton=new Cp,r.choiceList=new Cp,r.color=new Cp,r.comb=new Cp,r.connect=new Cp,r.contentArea=new Cp,r.corner=new Cp,r.date=new Cp,r.dateTime=new Cp,r.dateTimeEdit=new Cp,r.decimal=new Cp,r.defaultUi=new Cp,r.desc=new Cp,r.digestMethod=new Cp,r.digestMethods=new Cp,r.draw=new Cp,r.edge=new Cp,r.encoding=new Cp,r.encodings=new Cp,r.encrypt=new Cp,r.encryptData=new Cp,r.encryption=new Cp,r.encryptionMethod=new Cp,r.encryptionMethods=new Cp,r.event=new Cp,r.exData=new Cp,r.exObject=new Cp,r.exclGroup=new Cp,r.execute=new Cp,r.extras=new Cp,r.field=new Cp,r.fill=new Cp,r.filter=new Cp,r.float=new Cp,r.font=new Cp,r.format=new Cp,r.handler=new Cp,r.hyphenation=new Cp,r.image=new Cp,r.imageEdit=new Cp,r.integer=new Cp,r.issuers=new Cp,r.items=new Cp,r.keep=new Cp,r.keyUsage=new Cp,r.line=new Cp,r.linear=new Cp,r.lockDocument=new Cp,r.manifest=new Cp,r.margin=new Cp,r.mdp=new Cp,r.medium=new Cp,r.message=new Cp,r.numericEdit=new Cp,r.occur=new Cp,r.oid=new Cp,r.oids=new Cp,r.overflow=new Cp,r.pageArea=new Cp,r.pageSet=new Cp,r.para=new Cp,r.passwordEdit=new Cp,r.pattern=new Cp,r.picture=new Cp,r.radial=new Cp,r.reason=new Cp,r.reasons=new Cp,r.rectangle=new Cp,r.ref=new Cp,r.script=new Cp,r.setProperty=new Cp,r.signData=new Cp,r.signature=new Cp,r.signing=new Cp,r.solid=new Cp,r.speak=new Cp,r.stipple=new Cp,r.subform=new Cp,r.subformSet=new Cp,r.subjectDN=new Cp,r.subjectDNs=new Cp,r.submit=new Cp,r.text=new Cp,r.textEdit=new Cp,r.time=new Cp,r.timeStamp=new Cp,r.toolTip=new Cp,r.traversal=new Cp,r.traverse=new Cp,r.ui=new Cp,r.validate=new Cp,r.value=new Cp,r.variables=new Cp,r}return sv(t,fp),rv(t)}(),sw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"radial",!0])).id=e.id||"",r.type=$d(e.type,["toEdge","toCenter"]),r.use=e.use||"",r.usehref=e.usehref||"",r.color=null,r.extras=null,r}return sv(t,fp),rv(t,[{key:Hd,value:function(e){e=e?e[Hd]():"#FFFFFF";var t=this.color?this.color[Hd]():"#000000",r="toEdge"===this.type?"".concat(e,",").concat(t):"".concat(t,",").concat(e);return"radial-gradient(circle at center, ".concat(r,")")}}])}(),cw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"reason"])).id=e.id||"",r.name=e.name||"",r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,yp),rv(t)}(),gw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"reasons",!0])).id=e.id||"",r.type=$d(e.type,["optional","required"]),r.use=e.use||"",r.usehref=e.usehref||"",r.reason=new Cp,r}return sv(t,fp),rv(t)}(),uw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"rectangle",!0])).hand=$d(e.hand,["even","left","right"]),r.id=e.id||"",r.use=e.use||"",r.usehref=e.usehref||"",r.corner=new Cp(4),r.edge=new Cp(4),r.fill=null,r}return sv(t,fp),rv(t,[{key:Md,value:function(){var e,t=this.edge.children.length?this.edge.children[0]:new hm({}),r=t[Hd](),A=Object.create(null);"visible"===(null===(e=this.fill)||void 0===e?void 0:e.presence)?Object.assign(A,this.fill[Hd]()):A.fill="transparent",A.strokeWidth=kp("visible"===t.presence?t.thickness:0),A.stroke=r.color;var n=(this.corner.children.length?this.corner.children[0]:new Am({}))[Hd](),i={name:"svg",children:[{name:"rect",attributes:{xmlns:Cv,width:"100%",height:"100%",x:0,y:0,rx:n.radius,ry:n.radius,style:A}}],attributes:{xmlns:Cv,style:{overflow:"visible"},width:"100%",height:"100%"}};return yv(this[td]()[td]())?Ay.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[i]}):(i.attributes.style.position="absolute",Ay.success(i))}}])}(),lw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"ref"])).id=e.id||"",r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,yp),rv(t)}(),hw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"script"])).binding=e.binding||"",r.contentType=e.contentType||"",r.id=e.id||"",r.name=e.name||"",r.runAt=$d(e.runAt,["client","both","server"]),r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,yp),rv(t)}(),Iw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"setProperty"])).connection=e.connection||"",r.ref=e.ref||"",r.target=e.target||"",r}return sv(t,fp),rv(t)}(),fw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"signData",!0])).id=e.id||"",r.operation=$d(e.operation,["sign","clear","verify"]),r.ref=e.ref||"",r.target=e.target||"",r.use=e.use||"",r.usehref=e.usehref||"",r.filter=null,r.manifest=null,r}return sv(t,fp),rv(t)}(),Cw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"signature",!0])).id=e.id||"",r.type=$d(e.type,["PDF1.3","PDF1.6"]),r.use=e.use||"",r.usehref=e.usehref||"",r.border=null,r.extras=null,r.filter=null,r.manifest=null,r.margin=null,r}return sv(t,fp),rv(t)}(),Bw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"signing",!0])).id=e.id||"",r.type=$d(e.type,["optional","required"]),r.use=e.use||"",r.usehref=e.usehref||"",r.certificate=new Cp,r}return sv(t,fp),rv(t)}(),Qw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"solid",!0])).id=e.id||"",r.use=e.use||"",r.usehref=e.usehref||"",r.extras=null,r}return sv(t,fp),rv(t,[{key:Hd,value:function(e){return e?e[Hd]():"#FFFFFF"}}])}(),Ew=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"speak"])).disable=Xd({data:e.disable,defaultValue:0,validate:function(e){return 1===e}}),r.id=e.id||"",r.priority=$d(e.priority,["custom","caption","name","toolTip"]),r.rid=e.rid||"",r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,yp),rv(t)}(),dw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"stipple",!0])).id=e.id||"",r.rate=Xd({data:e.rate,defaultValue:50,validate:function(e){return e>=0&&e<=100}}),r.use=e.use||"",r.usehref=e.usehref||"",r.color=null,r.extras=null,r}return sv(t,fp),rv(t,[{key:Hd,value:function(e){var t=this.rate/100;return ge.makeHexColor(Math.round(e.value.r*(1-t)+this.value.r*t),Math.round(e.value.g*(1-t)+this.value.g*t),Math.round(e.value.b*(1-t)+this.value.b*t))}}])}(),yw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"subform",!0])).access=$d(e.access,["open","nonInteractive","protected","readOnly"]),r.allowMacro=Xd({data:e.allowMacro,defaultValue:0,validate:function(e){return 1===e}}),r.anchorType=$d(e.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]),r.colSpan=Xd({data:e.colSpan,defaultValue:1,validate:function(e){return e>=1||-1===e}}),r.columnWidths=(e.columnWidths||"").trim().split(/\\s+/).map((function(e){return"-1"===e?-1:ey(e)})),r.h=e.h?ey(e.h):"",r.hAlign=$d(e.hAlign,["left","center","justify","justifyAll","radix","right"]),r.id=e.id||"",r.layout=$d(e.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]),r.locale=e.locale||"",r.maxH=ey(e.maxH,"0pt"),r.maxW=ey(e.maxW,"0pt"),r.mergeMode=$d(e.mergeMode,["consumeData","matchTemplate"]),r.minH=ey(e.minH,"0pt"),r.minW=ey(e.minW,"0pt"),r.name=e.name||"",r.presence=$d(e.presence,["visible","hidden","inactive","invisible"]),r.relevant=ry(e.relevant),r.restoreState=$d(e.restoreState,["manual","auto"]),r.scope=$d(e.scope,["name","none"]),r.use=e.use||"",r.usehref=e.usehref||"",r.w=e.w?ey(e.w):"",r.x=ey(e.x,"0pt"),r.y=ey(e.y,"0pt"),r.assist=null,r.bind=null,r.bookend=null,r.border=null,r.break=null,r.calculate=null,r.desc=null,r.extras=null,r.keep=null,r.margin=null,r.occur=null,r.overflow=null,r.pageSet=null,r.para=null,r.traversal=null,r.validate=null,r.variables=null,r.area=new Cp,r.breakAfter=new Cp,r.breakBefore=new Cp,r.connect=new Cp,r.draw=new Cp,r.event=new Cp,r.exObject=new Cp,r.exclGroup=new Cp,r.field=new Cp,r.proto=new Cp,r.setProperty=new Cp,r.subform=new Cp,r.subformSet=new Cp,r}return sv(t,fp),rv(t,[{key:ed,value:function(){var e=this[td]();return e instanceof pw?e[ed]():e}},{key:cd,value:function(){return!0}},{key:Id,value:function(){return this.layout.endsWith("-tb")&&0===this[HE].attempt&&this[HE].numberInLine>0||this[td]()[Id]()}},{key:zE,value:gv().mark((function e(){return gv().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.delegateYield(vv(this),"t0",1);case 1:case"end":return e.stop()}}),e,this)}))},{key:PE,value:function(){return Zp(this)}},{key:DE,value:function(e,t){_p(this,e,t)}},{key:TE,value:function(){return Xp(this)}},{key:hd,value:function(){var e,t=this[ed]();return!!t[hd]()&&(void 0!==this[HE]._isSplittable?this[HE]._isSplittable:"position"===this.layout||this.layout.includes("row")||this.keep&&"none"!==this.keep.intact?(this[HE]._isSplittable=!1,!1):!(null!==(e=t.layout)&&void 0!==e&&e.endsWith("-tb")&&0!==t[HE].numberInLine||(this[HE]._isSplittable=!0,0)))}},{key:Md,value:function(e){var t;if(wv(this),this.break){if("auto"!==this.break.after||""!==this.break.afterTarget){var r=new Tv({targetType:this.break.after,target:this.break.afterTarget,startNew:this.break.startNew.toString()});r[Ad]=this[Ad],this[SE](r),this.breakAfter.push(r)}if("auto"!==this.break.before||""!==this.break.beforeTarget){var A=new qv({targetType:this.break.before,target:this.break.beforeTarget,startNew:this.break.startNew.toString()});A[Ad]=this[Ad],this[SE](A),this.breakBefore.push(A)}if(""!==this.break.overflowTarget){var n=new ew({target:this.break.overflowTarget,leader:this.break.overflowLeader,trailer:this.break.overflowTrailer});n[Ad]=this[Ad],this[SE](n),this.overflow.push(n)}this[kd](this.break),this.break=null}if("hidden"===this.presence||"inactive"===this.presence)return Ay.EMPTY;if((this.breakBefore.children.length>1||this.breakAfter.children.length>1)&&q("XFA - Several breakBefore or breakAfter in subforms: please file a bug."),this.breakBefore.children.length>=1){var i=this.breakBefore.children[0];if(xv(i))return Ay.breakNode(i)}if(null!==(t=this[HE])&&void 0!==t&&t.afterBreakAfter)return Ay.EMPTY;Gp(this);var a=[],o={id:this[Yd],class:[]};Jp(this,o.class),this[HE]||(this[HE]=Object.create(null)),Object.assign(this[HE],{children:a,line:null,attributes:o,attempt:0,numberInLine:0,availableSpace:{width:Math.min(this.w||1/0,e.width),height:Math.min(this.h||1/0,e.height)},width:0,height:0,prevHeight:0,currentWidth:0});var s=this[rd](),c=s[HE].noLayoutFailure,g=this[hd]();if(g||Sv(this),!Vp(this,e))return Ay.FAILURE;var u=new Set(["area","draw","exclGroup","field","subform","subformSet"]);if(this.layout.includes("row")){var l=this[ed]().columnWidths;Array.isArray(l)&&l.length>0&&(this[HE].columnWidths=l,this[HE].currentColumn=0)}var h=Lp(this,"anchorType","dimensions","position","presence","border","margin","hAlign"),I=["xfaSubform"],f=Np(this);if(f&&I.push(f),o.style=h,o.class=I,this.name&&(o.xfaName=this.name),this.overflow){var C=this.overflow[_E]();C.addLeader&&(C.addLeader=!1,Rv(this,C.leader,e))}this[bd]();for(var B="lr-tb"===this.layout||"rl-tb"===this.layout,Q=B?2:1;this[HE].attempt=1){var D=this.breakAfter.children[0];if(xv(D))return this[HE].afterBreakAfter=k,Ay.breakNode(D)}return delete this[HE],k}}])}(),pw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"subformSet",!0])).id=e.id||"",r.name=e.name||"",r.relation=$d(e.relation,["ordered","choice","unordered"]),r.relevant=ry(e.relevant),r.use=e.use||"",r.usehref=e.usehref||"",r.bookend=null,r.break=null,r.desc=null,r.extras=null,r.occur=null,r.overflow=null,r.breakAfter=new Cp,r.breakBefore=new Cp,r.subform=new Cp,r.subformSet=new Cp,r}return sv(t,fp),rv(t,[{key:zE,value:gv().mark((function e(){return gv().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.delegateYield(vv(this),"t0",1);case 1:case"end":return e.stop()}}),e,this)}))},{key:ed,value:function(){for(var e=this[td]();!(e instanceof yw);)e=e[td]();return e}},{key:cd,value:function(){return!0}}])}(),vw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"subjectDN"])).delimiter=e.delimiter||",",r.id=e.id||"",r.name=e.name||"",r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,Ep),rv(t,[{key:YE,value:function(){this[UE]=new Map(this[UE].split(this.delimiter).map((function(e){return(e=e.split("=",2))[0]=e[0].trim(),e})))}}])}(),mw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"subjectDNs",!0])).id=e.id||"",r.type=$d(e.type,["optional","required"]),r.use=e.use||"",r.usehref=e.usehref||"",r.subjectDN=new Cp,r}return sv(t,fp),rv(t)}(),ww=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"submit",!0])).embedPDF=Xd({data:e.embedPDF,defaultValue:0,validate:function(e){return 1===e}}),r.format=$d(e.format,["xdp","formdata","pdf","urlencoded","xfd","xml"]),r.id=e.id||"",r.target=e.target||"",r.textEncoding=zd({data:e.textEncoding?e.textEncoding.toLowerCase():"",defaultValue:"",validate:function(e){return["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(e)||e.match(/iso-8859-\\d{2}/)}}),r.use=e.use||"",r.usehref=e.usehref||"",r.xdpContent=e.xdpContent||"",r.encrypt=null,r.encryptData=new Cp,r.signData=new Cp,r}return sv(t,fp),rv(t)}(),bw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"template",!0])).baseProfile=$d(e.baseProfile,["full","interactiveForms"]),r.extras=null,r.subform=new Cp,r}return sv(t,fp),rv(t,[{key:YE,value:function(){0===this.subform.children.length&&q("XFA - No subforms in template node."),this.subform.children.length>=2&&q("XFA - Several subforms in template node: please file a bug."),this[Nd]=5e3}},{key:hd,value:function(){return!0}},{key:Fd,value:function(e,t){return e.startsWith("#")?[this[id].get(e.slice(1))]:Ry(this,t,e,!0,!0)}},{key:Ud,value:gv().mark((function e(){var t,r,A,n,i,a,o,s,c,g,u,l,h,I,f,C,B,Q,E=this;return gv().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.subform.children.length){e.next=2;break}return e.abrupt("return",Ay.success({name:"div",children:[]}));case 2:this[HE]={overflowNode:null,firstUnsplittable:null,currentContentArea:null,currentPageArea:null,noLayoutFailure:!1,pageNumber:1,pagePosition:"first",oddOrEven:"odd",blankOrNotBlank:"nonBlank",paraStack:[]},(A=this.subform.children[0]).pageSet[RE](),n=A.pageSet.pageArea.children,i={name:"div",children:[]},a=null,o=null,s=null,A.breakBefore.children.length>=1?(o=A.breakBefore.children[0],s=o.target):A.subform.children.length>=1&&A.subform.children[0].breakBefore.children.length>=1?(o=A.subform.children[0].breakBefore.children[0],s=o.target):null!==(t=A.break)&&void 0!==t&&t.beforeTarget?(o=A.break,s=o.beforeTarget):A.subform.children.length>=1&&null!==(r=A.subform.children[0].break)&&void 0!==r&&r.beforeTarget&&(o=A.subform.children[0].break,s=o.beforeTarget),o&&(c=this[Fd](s,o[td]()))instanceof tw&&(a=c,o[HE]={}),a||(a=n[0]),a[HE]={numberOfUse:1},(g=a[td]())[HE]={numberOfUse:1,pageIndex:g.pageArea.children.indexOf(a),pageSetIndex:0},l=null,h=null,I=!0,f=0,C=0,B=gv().mark((function e(){var t,r,n,o,s,c,g,B,Q,d,y,p,v,m,w,b;return gv().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(I){e.next=7;break}if(i.children.pop(),3!=++f){e.next=5;break}return q("XFA - Something goes wrong: please file a bug."),e.abrupt("return",{v:i});case 5:e.next=8;break;case 7:f=0;case 8:u=null,E[HE].currentPageArea=a,t=a[Md]().html,i.children.push(t),l&&(E[HE].noLayoutFailure=!0,t.children.push(l[Md](a[HE].space).html),l=null),h&&(E[HE].noLayoutFailure=!0,t.children.push(h[Md](a[HE].space).html),h=null),r=a.contentArea.children,n=t.children.filter((function(e){return e.attributes.class.includes("xfaContentarea")})),I=!1,E[HE].firstUnsplittable=null,E[HE].noLayoutFailure=!1,o=function(e){var t,r=A[PE]();r&&(I||(I=(null===(t=r.children)||void 0===t?void 0:t.length)>0),n[e].children.push(r))},s=C,c=r.length;case 21:if(!(s0),n[s].children.push(Q.html)):!I&&i.children.length>1&&i.children.pop(),e.abrupt("return",{v:i});case 31:if(!Q.isBreak()){e.next=40;break}if(y=Q.breakNode,o(s),"auto"!==y.targetType){e.next=36;break}return e.abrupt("continue",53);case 36:return y.leader&&(l=(l=E[Fd](y.leader,y[td]()))?l[0]:null),y.trailer&&(h=(h=E[Fd](y.trailer,y[td]()))?h[0]:null),"pageArea"===y.targetType?(u=y[HE].target,s=1/0):y[HE].target?(u=y[HE].target,C=y[HE].index+1,s=1/0):s=y[HE].index,e.abrupt("continue",53);case 40:if(!E[HE].overflowNode){e.next=52;break}return p=E[HE].overflowNode,E[HE].overflowNode=null,v=p[_E](),m=v.target,v.addLeader=null!==v.leader,v.addTrailer=null!==v.trailer,o(s),w=s,s=1/0,m instanceof tw?u=m:m instanceof rm&&(-1!==(b=r.indexOf(m))?b>w?s=b-1:C=b:(u=m[td](),C=u.contentArea.children.indexOf(m))),e.abrupt("continue",53);case 52:o(s);case 53:s++,e.next=21;break;case 56:return E[HE].pageNumber+=1,u&&(u[Cd]()?u[HE].numberOfUse+=1:u=null),a=u||a[$E](),e.next=61,null;case 61:case"end":return e.stop()}}),e)}));case 22:return e.delegateYield(B(),"t0",24);case 24:if(!(Q=e.t0)){e.next=27;break}return e.abrupt("return",Q.v);case 27:e.next=22;break;case 29:case"end":return e.stop()}}),e,this)}))}])}(),kw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"text"])).id=e.id||"",r.maxChars=Xd({data:e.maxChars,defaultValue:0,validate:function(e){return e>=0}}),r.name=e.name||"",r.rid=e.rid||"",r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,Ep),rv(t,[{key:kE,value:function(){return!0}},{key:yd,value:function(e){return e[Qd]===Od.xhtml.id?(this[UE]=e,!0):(q("XFA - Invalid content in Text: ".concat(e[Ed],".")),!1)}},{key:vd,value:function(e){this[UE]instanceof fp||zp(t,vd,this,3)([e])}},{key:YE,value:function(){"string"==typeof this[UE]&&(this[UE]=this[UE].replaceAll("\\r\\n","\\n"))}},{key:_E,value:function(){return"string"==typeof this[UE]?this[UE].split(/[\\u2029\\u2028\\n]/).reduce((function(e,t){return t&&e.push(t),e}),[]).join("\\n"):this[UE][Ld]()}},{key:Md,value:function(e){if("string"==typeof this[UE]){var t=Dv(this[UE]).html;return this[UE].includes("\\u2029")?(t.name="div",t.children=[],this[UE].split("\\u2029").map((function(e){return e.split(/[\\u2028\\n]/).reduce((function(e,t){return e.push({name:"span",value:t},{name:"br"}),e}),[])})).forEach((function(e){t.children.push({name:"p",children:e})}))):/[\\u2028\\n]/.test(this[UE])&&(t.name="div",t.children=[],this[UE].split(/[\\u2028\\n]/).forEach((function(e){t.children.push({name:"span",value:e},{name:"br"})}))),Ay.success(t)}return this[UE][Md](e)}}])}(),Dw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"textEdit",!0])).allowRichText=Xd({data:e.allowRichText,defaultValue:0,validate:function(e){return 1===e}}),r.hScrollPolicy=$d(e.hScrollPolicy,["auto","off","on"]),r.id=e.id||"",r.multiLine=Xd({data:e.multiLine,defaultValue:"",validate:function(e){return 0===e||1===e}}),r.use=e.use||"",r.usehref=e.usehref||"",r.vScrollPolicy=$d(e.vScrollPolicy,["auto","off","on"]),r.border=null,r.comb=null,r.extras=null,r.margin=null,r}return sv(t,fp),rv(t,[{key:Md,value:function(e){var t,r,A,n=Lp(this,"border","font","margin"),i=this[td]()[td]();return""===this.multiLine&&(this.multiLine=i instanceof lm?1:0),t=1===this.multiLine?{name:"textarea",attributes:{dataId:(null===(r=i[ME])||void 0===r?void 0:r[Yd])||i[Yd],fieldId:i[Yd],class:["xfaTextfield"],style:n,"aria-label":kv(i),"aria-required":!1}}:{name:"input",attributes:{type:"text",dataId:(null===(A=i[ME])||void 0===A?void 0:A[Yd])||i[Yd],fieldId:i[Yd],class:["xfaTextfield"],style:n,"aria-label":kv(i),"aria-required":!1}},mv(i)&&(t.attributes["aria-required"]=!0,t.attributes.required=!0),Ay.success({name:"label",attributes:{class:["xfaLabel"]},children:[t]})}}])}(),Sw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"time"])).id=e.id||"",r.name=e.name||"",r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,yp),rv(t,[{key:YE,value:function(){var e=this[UE].trim();this[UE]=e?new Date(e):null}},{key:Md,value:function(e){return Dv(this[UE]?this[UE].toString():"")}}])}(),Fw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"timeStamp"])).id=e.id||"",r.server=e.server||"",r.type=$d(e.type,["optional","required"]),r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,fp),rv(t)}(),xw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"toolTip"])).id=e.id||"",r.rid=e.rid||"",r.use=e.use||"",r.usehref=e.usehref||"",r}return sv(t,yp),rv(t)}(),Rw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"traversal",!0])).id=e.id||"",r.use=e.use||"",r.usehref=e.usehref||"",r.extras=null,r.traverse=new Cp,r}return sv(t,fp),rv(t)}(),Gw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"traverse",!0])).id=e.id||"",r.operation=$d(e.operation,["next","back","down","first","left","right","up"]),r.ref=e.ref||"",r.use=e.use||"",r.usehref=e.usehref||"",r.extras=null,r.script=null,r}return sv(t,fp),rv(t,[{key:"name",get:function(){return this.operation}},{key:fd,value:function(){return!1}}])}(),Nw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"ui",!0])).id=e.id||"",r.use=e.use||"",r.usehref=e.usehref||"",r.extras=null,r.picture=null,r.barcode=null,r.button=null,r.checkButton=null,r.choiceList=null,r.dateTimeEdit=null,r.defaultUi=null,r.imageEdit=null,r.numericEdit=null,r.passwordEdit=null,r.signature=null,r.textEdit=null,r}return sv(t,fp),rv(t,[{key:_E,value:function(){if(void 0===this[HE]){var e,t=lv(Object.getOwnPropertyNames(this));try{for(t.s();!(e=t.n()).done;){var r=e.value;if("extras"!==r&&"picture"!==r){var A=this[r];if(A instanceof fp)return this[HE]=A,A}}}catch(e){t.e(e)}finally{t.f()}this[HE]=null}return this[HE]}},{key:Md,value:function(e){var t=this[_E]();return t?t[Md](e):Ay.EMPTY}}])}(),Lw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"validate",!0])).formatTest=$d(e.formatTest,["warning","disabled","error"]),r.id=e.id||"",r.nullTest=$d(e.nullTest,["disabled","error","warning"]),r.scriptTest=$d(e.scriptTest,["error","disabled","warning"]),r.use=e.use||"",r.usehref=e.usehref||"",r.extras=null,r.message=null,r.picture=null,r.script=null,r}return sv(t,fp),rv(t)}(),Uw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"value",!0])).id=e.id||"",r.override=Xd({data:e.override,defaultValue:0,validate:function(e){return 1===e}}),r.relevant=ry(e.relevant),r.use=e.use||"",r.usehref=e.usehref||"",r.arc=null,r.boolean=null,r.date=null,r.dateTime=null,r.decimal=null,r.exData=null,r.float=null,r.image=null,r.integer=null,r.line=null,r.rectangle=null,r.text=null,r.time=null,r}return sv(t,fp),rv(t,[{key:Gd,value:function(e){var t,r=this[td]();if(r instanceof km&&null!==(t=r.ui)&&void 0!==t&&t.imageEdit)return this.image||(this.image=new Lm({}),this[SE](this.image)),void(this.image[UE]=e[UE]);var A=e[Ed];if(null===this[A]){var n,i=lv(Object.getOwnPropertyNames(this));try{for(i.s();!(n=i.n()).done;){var a=n.value,o=this[a];o instanceof fp&&(this[a]=null,this[kd](o))}}catch(e){i.e(e)}finally{i.f()}this[e[Ed]]=e,this[SE](e)}else this[A][UE]=e[UE]}},{key:Ld,value:function(){if(this.exData)return"string"==typeof this.exData[UE]?this.exData[UE].trim():this.exData[UE][Ld]().trim();var e,t=lv(Object.getOwnPropertyNames(this));try{for(t.s();!(e=t.n()).done;){var r=e.value;if("image"!==r){var A=this[r];if(A instanceof fp)return(A[UE]||"").toString().trim()}}}catch(e){t.e(e)}finally{t.f()}return null}},{key:Md,value:function(e){var t,r=lv(Object.getOwnPropertyNames(this));try{for(r.s();!(t=r.n()).done;){var A=this[t.value];if(A instanceof fp)return A[Md](e)}}catch(e){r.e(e)}finally{r.f()}return Ay.EMPTY}}])}(),Mw=function(e){function t(e){var r;return nv(this,t),(r=iv(this,t,[fv,"variables",!0])).id=e.id||"",r.use=e.use||"",r.usehref=e.usehref||"",r.boolean=new Cp,r.date=new Cp,r.dateTime=new Cp,r.decimal=new Cp,r.exData=new Cp,r.float=new Cp,r.image=new Cp,r.integer=new Cp,r.manifest=new Cp,r.script=new Cp,r.text=new Cp,r.time=new Cp,r}return sv(t,fp),rv(t,[{key:fd,value:function(){return!0}}])}(),Jw=function(){function e(){nv(this,e)}return rv(e,null,[{key:Pd,value:function(t,r){if(e.hasOwnProperty(t)){var A=e[t](r);return A[Rd](r),A}}},{key:"appearanceFilter",value:function(e){return new Gv(e)}},{key:"arc",value:function(e){return new Nv(e)}},{key:"area",value:function(e){return new Lv(e)}},{key:"assist",value:function(e){return new Uv(e)}},{key:"barcode",value:function(e){return new Mv(e)}},{key:"bind",value:function(e){return new Jv(e)}},{key:"bindItems",value:function(e){return new Hv(e)}},{key:"bookend",value:function(e){return new Yv(e)}},{key:"boolean",value:function(e){return new Pv(e)}},{key:"border",value:function(e){return new Ov(e)}},{key:"break",value:function(e){return new Kv(e)}},{key:"breakAfter",value:function(e){return new Tv(e)}},{key:"breakBefore",value:function(e){return new qv(e)}},{key:"button",value:function(e){return new jv(e)}},{key:"calculate",value:function(e){return new Wv(e)}},{key:"caption",value:function(e){return new Zv(e)}},{key:"certificate",value:function(e){return new _v(e)}},{key:"certificates",value:function(e){return new Xv(e)}},{key:"checkButton",value:function(e){return new Vv(e)}},{key:"choiceList",value:function(e){return new zv(e)}},{key:"color",value:function(e){return new $v(e)}},{key:"comb",value:function(e){return new em(e)}},{key:"connect",value:function(e){return new tm(e)}},{key:"contentArea",value:function(e){return new rm(e)}},{key:"corner",value:function(e){return new Am(e)}},{key:"date",value:function(e){return new nm(e)}},{key:"dateTime",value:function(e){return new im(e)}},{key:"dateTimeEdit",value:function(e){return new am(e)}},{key:"decimal",value:function(e){return new om(e)}},{key:"defaultUi",value:function(e){return new sm(e)}},{key:"desc",value:function(e){return new cm(e)}},{key:"digestMethod",value:function(e){return new gm(e)}},{key:"digestMethods",value:function(e){return new um(e)}},{key:"draw",value:function(e){return new lm(e)}},{key:"edge",value:function(e){return new hm(e)}},{key:"encoding",value:function(e){return new Im(e)}},{key:"encodings",value:function(e){return new fm(e)}},{key:"encrypt",value:function(e){return new Cm(e)}},{key:"encryptData",value:function(e){return new Bm(e)}},{key:"encryption",value:function(e){return new Qm(e)}},{key:"encryptionMethod",value:function(e){return new Em(e)}},{key:"encryptionMethods",value:function(e){return new dm(e)}},{key:"event",value:function(e){return new ym(e)}},{key:"exData",value:function(e){return new pm(e)}},{key:"exObject",value:function(e){return new vm(e)}},{key:"exclGroup",value:function(e){return new mm(e)}},{key:"execute",value:function(e){return new wm(e)}},{key:"extras",value:function(e){return new bm(e)}},{key:"field",value:function(e){return new km(e)}},{key:"fill",value:function(e){return new Dm(e)}},{key:"filter",value:function(e){return new Sm(e)}},{key:"float",value:function(e){return new Fm(e)}},{key:"font",value:function(e){return new xm(e)}},{key:"format",value:function(e){return new Rm(e)}},{key:"handler",value:function(e){return new Gm(e)}},{key:"hyphenation",value:function(e){return new Nm(e)}},{key:"image",value:function(e){return new Lm(e)}},{key:"imageEdit",value:function(e){return new Um(e)}},{key:"integer",value:function(e){return new Mm(e)}},{key:"issuers",value:function(e){return new Jm(e)}},{key:"items",value:function(e){return new Hm(e)}},{key:"keep",value:function(e){return new Ym(e)}},{key:"keyUsage",value:function(e){return new Pm(e)}},{key:"line",value:function(e){return new Om(e)}},{key:"linear",value:function(e){return new Km(e)}},{key:"lockDocument",value:function(e){return new Tm(e)}},{key:"manifest",value:function(e){return new qm(e)}},{key:"margin",value:function(e){return new jm(e)}},{key:"mdp",value:function(e){return new Wm(e)}},{key:"medium",value:function(e){return new Zm(e)}},{key:"message",value:function(e){return new _m(e)}},{key:"numericEdit",value:function(e){return new Xm(e)}},{key:"occur",value:function(e){return new Vm(e)}},{key:"oid",value:function(e){return new zm(e)}},{key:"oids",value:function(e){return new $m(e)}},{key:"overflow",value:function(e){return new ew(e)}},{key:"pageArea",value:function(e){return new tw(e)}},{key:"pageSet",value:function(e){return new rw(e)}},{key:"para",value:function(e){return new Aw(e)}},{key:"passwordEdit",value:function(e){return new nw(e)}},{key:"pattern",value:function(e){return new iw(e)}},{key:"picture",value:function(e){return new aw(e)}},{key:"proto",value:function(e){return new ow(e)}},{key:"radial",value:function(e){return new sw(e)}},{key:"reason",value:function(e){return new cw(e)}},{key:"reasons",value:function(e){return new gw(e)}},{key:"rectangle",value:function(e){return new uw(e)}},{key:"ref",value:function(e){return new lw(e)}},{key:"script",value:function(e){return new hw(e)}},{key:"setProperty",value:function(e){return new Iw(e)}},{key:"signData",value:function(e){return new fw(e)}},{key:"signature",value:function(e){return new Cw(e)}},{key:"signing",value:function(e){return new Bw(e)}},{key:"solid",value:function(e){return new Qw(e)}},{key:"speak",value:function(e){return new Ew(e)}},{key:"stipple",value:function(e){return new dw(e)}},{key:"subform",value:function(e){return new yw(e)}},{key:"subformSet",value:function(e){return new pw(e)}},{key:"subjectDN",value:function(e){return new vw(e)}},{key:"subjectDNs",value:function(e){return new mw(e)}},{key:"submit",value:function(e){return new ww(e)}},{key:"template",value:function(e){return new bw(e)}},{key:"text",value:function(e){return new kw(e)}},{key:"textEdit",value:function(e){return new Dw(e)}},{key:"time",value:function(e){return new Sw(e)}},{key:"timeStamp",value:function(e){return new Fw(e)}},{key:"toolTip",value:function(e){return new xw(e)}},{key:"traversal",value:function(e){return new Rw(e)}},{key:"traverse",value:function(e){return new Gw(e)}},{key:"ui",value:function(e){return new Nw(e)}},{key:"validate",value:function(e){return new Lw(e)}},{key:"value",value:function(e){return new Uw(e)}},{key:"variables",value:function(e){return new Mw(e)}}])}();function Hw(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var A,n,i,a,o=[],s=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(A=i.call(r)).done)&&(o.push(A.value),o.length!==t);s=!0);}catch(e){c=!0,n=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw n}}return o}}(e,t)||Pw(e,t)||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.")}()}function Yw(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Pw(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function Pw(e,t){if(e){if("string"==typeof e)return Ow(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)?Ow(e,t):void 0}}function Ow(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r1&&((A=e[NE]())[kd](A.occur),A.occur=null),this._bindValue(e,t[0],r),this._setProperties(e,t[0]),this._bindItems(e,t[0]),1!==t.length)for(var n=e[td](),i=e[Ed],a=n[ad](e),o=1,s=t.length;ol?c=c.slice(0,l):0===c.length&&(c=null),c&&this._isConsumeData()&&c.forEach((function(e){e[LE]=!0}))}else{if(!i.name){this._setAndBind(i,t);continue}if(this._isConsumeData()){for(var h=[];h.length0?h:null}else{if(!(c=t[XE](i.name,!1,this.emptyMerge).next().value)){if(0===u){r.push(i);continue}var f=t[Qd]===qw?-1:t[Qd];c=i[ME]=new Qp(f,i.name),this.emptyMerge&&(c[LE]=!0),t[SE](c),this._setAndBind(i,c);continue}this.emptyMerge&&(c[LE]=!0),c=[c]}}c?this._bindOccurrences(i,c,o):u>0?this._setAndBind(i,t):r.push(i)}}else{this._mergeMode="consumeData"===i.mergeMode;var C=t[VE]();if(C.length>0)this._bindOccurrences(i,[C[0]],null);else if(this.emptyMerge){var B=t[Qd]===qw?-1:t[Qd],Q=i[ME]=new Qp(B,i.name||"root");t[SE](Q),this._bindElement(i,Q)}}}}catch(e){n.e(e)}finally{n.f()}r.forEach((function(e){return e[td]()[kd](e)}))}}])}();function Zw(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Xw(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function _w(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var A,n,i,a,o=[],s=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(A=i.call(r)).done)&&(o.push(A.value),o.length!==t);s=!0);}catch(e){c=!0,n=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw n}}return o}}(e,t)||Xw(e,t)||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.")}()}function Xw(e,t){if(e){if("string"==typeof e)return Vw(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)?Vw(e,t):void 0}}function Vw(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r0;){var r=t.at(-1),A=_w(r,2),n=A[0],i=A[1];if(n+1!==i.length){var a=i[++r[0]],o=e.get(a[Yd]);if(o)a[Gd](o);else{var s,c=Zw(a[KE]().values());try{for(c.s();!(s=c.n()).done;){var g=s.value,u=e.get(g[Yd]);if(u){g[Gd](u);break}}}catch(e){c.e(e)}finally{c.f()}}var l=a[VE]();l.length>0&&t.push([-1,l])}else t.pop()}var h=[''];if(this.dataset){var I,f=Zw(this.dataset[VE]());try{for(f.s();!(I=f.n()).done;){var C=I.value;"data"!==C[Ed]&&C[Jd](h)}}catch(e){f.e(e)}finally{f.f()}}return this.data[Jd](h),h.push(""),h.join("")}}])}();function tb(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r=1&&e<=8}])}return cb(t,pp),Ab(t)}(),db=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"agent",!0])).name=e.name?e.name.trim():"",r.common=new Cp,r}return cb(t,fp),Ab(t)}(),yb=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"alwaysEmbed"])}return cb(t,Ep),Ab(t)}(),pb=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"amd"])}return cb(t,yp),Ab(t)}(),vb=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"area"])).level=Xd({data:e.level,defaultValue:0,validate:function(e){return e>=1&&e<=3}}),r.name=$d(e.name,["","barcode","coreinit","deviceDriver","font","general","layout","merge","script","signature","sourceSet","templateCache"]),r}return cb(t,fp),Ab(t)}(),mb=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"attributes",["preserve","delegate","ignore"]])}return cb(t,dp),Ab(t)}(),wb=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"autoSave",["disabled","enabled"]])}return cb(t,dp),Ab(t)}(),bb=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"base"])}return cb(t,yp),Ab(t)}(),kb=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"batchOutput"])).format=$d(e.format,["none","concat","zip","zipCompress"]),r}return cb(t,fp),Ab(t)}(),Db=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"behaviorOverride"])}return cb(t,Ep),Ab(t,[{key:YE,value:function(){this[UE]=new Map(this[UE].trim().split(/\\s+/).filter((function(e){return e.includes(":")})).map((function(e){return e.split(":",2)})))}}])}(),Sb=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"cache",!0])).templateCache=null,r}return cb(t,fp),Ab(t)}(),Fb=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"change"])}return cb(t,vp),Ab(t)}(),xb=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"common",!0])).data=null,r.locale=null,r.localeSet=null,r.messaging=null,r.suppressBanner=null,r.template=null,r.validationMessaging=null,r.versionControl=null,r.log=new Cp,r}return cb(t,fp),Ab(t)}(),Rb=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"compress"])).scope=$d(e.scope,["imageOnly","document"]),r}return cb(t,fp),Ab(t)}(),Gb=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"compressLogicalStructure"])}return cb(t,vp),Ab(t)}(),Nb=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"compressObjectStream"])}return cb(t,mp),Ab(t)}(),Lb=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"compression",!0])).compressLogicalStructure=null,r.compressObjectStream=null,r.level=null,r.type=null,r}return cb(t,fp),Ab(t)}(),Ub=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"config",!0])).acrobat=null,r.present=null,r.trace=null,r.agent=new Cp,r}return cb(t,fp),Ab(t)}(),Mb=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"conformance",["A","B"]])}return cb(t,dp),Ab(t)}(),Jb=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"contentCopy"])}return cb(t,vp),Ab(t)}(),Hb=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"copies",1,function(e){return e>=1}])}return cb(t,pp),Ab(t)}(),Yb=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"creator"])}return cb(t,yp),Ab(t)}(),Pb=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"currentPage",0,function(e){return e>=0}])}return cb(t,pp),Ab(t)}(),Ob=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"data",!0])).adjustData=null,r.attributes=null,r.incrementalLoad=null,r.outputXSL=null,r.range=null,r.record=null,r.startNode=null,r.uri=null,r.window=null,r.xsl=null,r.excludeNS=new Cp,r.transform=new Cp,r}return cb(t,fp),Ab(t)}(),Kb=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"debug",!0])).uri=null,r}return cb(t,fp),Ab(t)}(),Tb=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"defaultTypeface"])).writingScript=$d(e.writingScript,["*","Arabic","Cyrillic","EastEuropeanRoman","Greek","Hebrew","Japanese","Korean","Roman","SimplifiedChinese","Thai","TraditionalChinese","Vietnamese"]),r}return cb(t,Ep),Ab(t)}(),qb=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"destination",["pdf","pcl","ps","webClient","zpl"]])}return cb(t,dp),Ab(t)}(),jb=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"documentAssembly"])}return cb(t,vp),Ab(t)}(),Wb=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"driver",!0])).name=e.name?e.name.trim():"",r.fontInfo=null,r.xdc=null,r}return cb(t,fp),Ab(t)}(),Zb=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"duplexOption",["simplex","duplexFlipLongEdge","duplexFlipShortEdge"]])}return cb(t,dp),Ab(t)}(),_b=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"dynamicRender",["forbidden","required"]])}return cb(t,dp),Ab(t)}(),Xb=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"embed"])}return cb(t,vp),Ab(t)}(),Vb=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"encrypt"])}return cb(t,vp),Ab(t)}(),zb=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"encryption",!0])).encrypt=null,r.encryptionLevel=null,r.permissions=null,r}return cb(t,fp),Ab(t)}(),$b=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"encryptionLevel",["40bit","128bit"]])}return cb(t,dp),Ab(t)}(),ek=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"enforce"])}return cb(t,yp),Ab(t)}(),tk=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"equate"])).force=Xd({data:e.force,defaultValue:1,validate:function(e){return 0===e}}),r.from=e.from||"",r.to=e.to||"",r}return cb(t,fp),Ab(t)}(),rk=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"equateRange"])).from=e.from||"",r.to=e.to||"",r._unicodeRange=e.unicodeRange||"",r}return cb(t,fp),Ab(t,[{key:"unicodeRange",get:function(){var e,t=[],r=/U\\+([0-9a-fA-F]+)/,A=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return tb(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)?tb(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}(this._unicodeRange.split(",").map((function(e){return e.trim()})).filter((function(e){return!!e})));try{for(A.s();!(e=A.n()).done;){var n=e.value;1===(n=n.split("-",2).map((function(e){var t=e.match(r);return t?parseInt(t[1],16):0}))).length&&n.push(n[0]),t.push(n)}}catch(e){A.e(e)}finally{A.f()}return _(this,"unicodeRange",t)}}])}(),Ak=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"exclude"])}return cb(t,Ep),Ab(t,[{key:YE,value:function(){this[UE]=this[UE].trim().split(/\\s+/).filter((function(e){return e&&["calculate","close","enter","exit","initialize","ready","validate"].includes(e)}))}}])}(),nk=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"excludeNS"])}return cb(t,yp),Ab(t)}(),ik=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"flipLabel",["usePrinterSetting","on","off"]])}return cb(t,dp),Ab(t)}(),ak=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"fontInfo",!0])).embed=null,r.map=null,r.subsetBelow=null,r.alwaysEmbed=new Cp,r.defaultTypeface=new Cp,r.neverEmbed=new Cp,r}return cb(t,fp),Ab(t)}(),ok=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"formFieldFilling"])}return cb(t,vp),Ab(t)}(),sk=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"groupParent"])}return cb(t,yp),Ab(t)}(),ck=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"ifEmpty",["dataValue","dataGroup","ignore","remove"]])}return cb(t,dp),Ab(t)}(),gk=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"includeXDPContent"])}return cb(t,yp),Ab(t)}(),uk=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"incrementalLoad",["none","forwardOnly"]])}return cb(t,dp),Ab(t)}(),lk=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"incrementalMerge"])}return cb(t,vp),Ab(t)}(),hk=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"interactive"])}return cb(t,vp),Ab(t)}(),Ik=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"jog",["usePrinterSetting","none","pageSet"]])}return cb(t,dp),Ab(t)}(),fk=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"labelPrinter",!0])).name=$d(e.name,["zpl","dpl","ipl","tcpl"]),r.batchOutput=null,r.flipLabel=null,r.fontInfo=null,r.xdc=null,r}return cb(t,fp),Ab(t)}(),Ck=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"layout",["paginate","panel"]])}return cb(t,dp),Ab(t)}(),Bk=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"level",0,function(e){return e>0}])}return cb(t,pp),Ab(t)}(),Qk=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"linearized"])}return cb(t,vp),Ab(t)}(),Ek=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"locale"])}return cb(t,yp),Ab(t)}(),dk=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"localeSet"])}return cb(t,yp),Ab(t)}(),yk=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"log",!0])).mode=null,r.threshold=null,r.to=null,r.uri=null,r}return cb(t,fp),Ab(t)}(),pk=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"map",!0])).equate=new Cp,r.equateRange=new Cp,r}return cb(t,fp),Ab(t)}(),vk=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"mediumInfo",!0])).map=null,r}return cb(t,fp),Ab(t)}(),mk=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"message",!0])).msgId=null,r.severity=null,r}return cb(t,fp),Ab(t)}(),wk=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"messaging",!0])).message=new Cp,r}return cb(t,fp),Ab(t)}(),bk=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"mode",["append","overwrite"]])}return cb(t,dp),Ab(t)}(),kk=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"modifyAnnots"])}return cb(t,vp),Ab(t)}(),Dk=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"msgId",1,function(e){return e>=1}])}return cb(t,pp),Ab(t)}(),Sk=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"nameAttr"])}return cb(t,yp),Ab(t)}(),Fk=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"neverEmbed"])}return cb(t,Ep),Ab(t)}(),xk=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"numberOfCopies",null,function(e){return e>=2&&e<=5}])}return cb(t,pp),Ab(t)}(),Rk=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"openAction",!0])).destination=null,r}return cb(t,fp),Ab(t)}(),Gk=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"output",!0])).to=null,r.type=null,r.uri=null,r}return cb(t,fp),Ab(t)}(),Nk=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"outputBin"])}return cb(t,yp),Ab(t)}(),Lk=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"outputXSL",!0])).uri=null,r}return cb(t,fp),Ab(t)}(),Uk=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"overprint",["none","both","draw","field"]])}return cb(t,dp),Ab(t)}(),Mk=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"packets"])}return cb(t,yp),Ab(t,[{key:YE,value:function(){"*"!==this[UE]&&(this[UE]=this[UE].trim().split(/\\s+/).filter((function(e){return["config","datasets","template","xfdf","xslt"].includes(e)})))}}])}(),Jk=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"pageOffset"])).x=Xd({data:e.x,defaultValue:"useXDCSetting",validate:function(e){return!0}}),r.y=Xd({data:e.y,defaultValue:"useXDCSetting",validate:function(e){return!0}}),r}return cb(t,fp),Ab(t)}(),Hk=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"pageRange"])}return cb(t,yp),Ab(t,[{key:YE,value:function(){for(var e=this[UE].trim().split(/\\s+/).map((function(e){return parseInt(e,10)})),t=[],r=0,A=e.length;r=0&&(this[UE]=e)}}])}(),aD=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"relevant"])}return cb(t,Ep),Ab(t,[{key:YE,value:function(){this[UE]=this[UE].trim().split(/\\s+/)}}])}(),oD=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"rename"])}return cb(t,Ep),Ab(t,[{key:YE,value:function(){this[UE]=this[UE].trim(),(this[UE].toLowerCase().startsWith("xml")||new RegExp("[\\\\p{L}_][\\\\p{L}\\\\d._\\\\p{M}-]*","u").test(this[UE]))&&q("XFA - Rename: invalid XFA name")}}])}(),sD=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"renderPolicy",["server","client"]])}return cb(t,dp),Ab(t)}(),cD=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"runScripts",["both","client","none","server"]])}return cb(t,dp),Ab(t)}(),gD=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"script",!0])).currentPage=null,r.exclude=null,r.runScripts=null,r}return cb(t,fp),Ab(t)}(),uD=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"scriptModel",["XFA","none"]])}return cb(t,dp),Ab(t)}(),lD=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"severity",["ignore","error","information","trace","warning"]])}return cb(t,dp),Ab(t)}(),hD=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"silentPrint",!0])).addSilentPrint=null,r.printerName=null,r}return cb(t,fp),Ab(t)}(),ID=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"staple"])).mode=$d(e.mode,["usePrinterSetting","on","off"]),r}return cb(t,fp),Ab(t)}(),fD=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"startNode"])}return cb(t,yp),Ab(t)}(),CD=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"startPage",0,function(e){return!0}])}return cb(t,pp),Ab(t)}(),BD=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"submitFormat",["html","delegate","fdf","xml","pdf"]])}return cb(t,dp),Ab(t)}(),QD=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"submitUrl"])}return cb(t,yp),Ab(t)}(),ED=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"subsetBelow",100,function(e){return e>=0&&e<=100}])}return cb(t,pp),Ab(t)}(),dD=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"suppressBanner"])}return cb(t,vp),Ab(t)}(),yD=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"tagged"])}return cb(t,vp),Ab(t)}(),pD=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"template",!0])).base=null,r.relevant=null,r.startPage=null,r.uri=null,r.xsl=null,r}return cb(t,fp),Ab(t)}(),vD=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"threshold",["trace","error","information","warning"]])}return cb(t,dp),Ab(t)}(),mD=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"to",["null","memory","stderr","stdout","system","uri"]])}return cb(t,dp),Ab(t)}(),wD=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"templateCache"])).maxEntries=Xd({data:e.maxEntries,defaultValue:5,validate:function(e){return e>=0}}),r}return cb(t,fp),Ab(t)}(),bD=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"trace",!0])).area=new Cp,r}return cb(t,fp),Ab(t)}(),kD=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"transform",!0])).groupParent=null,r.ifEmpty=null,r.nameAttr=null,r.picture=null,r.presence=null,r.rename=null,r.whitespace=null,r}return cb(t,fp),Ab(t)}(),DD=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"type",["none","ascii85","asciiHex","ccittfax","flate","lzw","runLength","native","xdp","mergedXDP"]])}return cb(t,dp),Ab(t)}(),SD=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"uri"])}return cb(t,yp),Ab(t)}(),FD=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"validate",["preSubmit","prePrint","preExecute","preSave"]])}return cb(t,dp),Ab(t)}(),xD=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"validateApprovalSignatures"])}return cb(t,Ep),Ab(t,[{key:YE,value:function(){this[UE]=this[UE].trim().split(/\\s+/).filter((function(e){return["docReady","postSign"].includes(e)}))}}])}(),RD=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"validationMessaging",["allMessagesIndividually","allMessagesTogether","firstMessageOnly","noMessages"]])}return cb(t,dp),Ab(t)}(),GD=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"version",["1.7","1.6","1.5","1.4","1.3","1.2"]])}return cb(t,dp),Ab(t)}(),ND=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"VersionControl"])).outputBelow=$d(e.outputBelow,["warn","error","update"]),r.sourceAbove=$d(e.sourceAbove,["warn","error"]),r.sourceBelow=$d(e.sourceBelow,["update","maintain"]),r}return cb(t,fp),Ab(t)}(),LD=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"viewerPreferences",!0])).ADBE_JSConsole=null,r.ADBE_JSDebugger=null,r.addViewerPreferences=null,r.duplexOption=null,r.enforce=null,r.numberOfCopies=null,r.pageRange=null,r.pickTrayByPDFSize=null,r.printScaling=null,r}return cb(t,fp),Ab(t)}(),UD=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"webClient",!0])).name=e.name?e.name.trim():"",r.fontInfo=null,r.xdc=null,r}return cb(t,fp),Ab(t)}(),MD=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"whitespace",["preserve","ltrim","normalize","rtrim","trim"]])}return cb(t,dp),Ab(t)}(),JD=function(e){function t(e){return ib(this,t),ab(this,t,[ub,"window"])}return cb(t,Ep),Ab(t,[{key:YE,value:function(){var e=this[UE].trim().split(/\\s*,\\s*/,2).map((function(e){return parseInt(e,10)}));e.some((function(e){return isNaN(e)}))?this[UE]=[0,0]:(1===e.length&&e.push(e[0]),this[UE]=e)}}])}(),HD=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"xdc",!0])).uri=new Cp,r.xsl=new Cp,r}return cb(t,fp),Ab(t)}(),YD=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"xdp",!0])).packets=null,r}return cb(t,fp),Ab(t)}(),PD=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"xsl",!0])).debug=null,r.uri=null,r}return cb(t,fp),Ab(t)}(),OD=function(e){function t(e){var r;return ib(this,t),(r=ab(this,t,[ub,"zpl",!0])).name=e.name?e.name.trim():"",r.batchOutput=null,r.flipLabel=null,r.fontInfo=null,r.xdc=null,r}return cb(t,fp),Ab(t)}(),KD=function(){function e(){ib(this,e)}return Ab(e,null,[{key:Pd,value:function(t,r){if(e.hasOwnProperty(t))return e[t](r)}},{key:"acrobat",value:function(e){return new lb(e)}},{key:"acrobat7",value:function(e){return new hb(e)}},{key:"ADBE_JSConsole",value:function(e){return new Ib(e)}},{key:"ADBE_JSDebugger",value:function(e){return new fb(e)}},{key:"addSilentPrint",value:function(e){return new Cb(e)}},{key:"addViewerPreferences",value:function(e){return new Bb(e)}},{key:"adjustData",value:function(e){return new Qb(e)}},{key:"adobeExtensionLevel",value:function(e){return new Eb(e)}},{key:"agent",value:function(e){return new db(e)}},{key:"alwaysEmbed",value:function(e){return new yb(e)}},{key:"amd",value:function(e){return new pb(e)}},{key:"area",value:function(e){return new vb(e)}},{key:"attributes",value:function(e){return new mb(e)}},{key:"autoSave",value:function(e){return new wb(e)}},{key:"base",value:function(e){return new bb(e)}},{key:"batchOutput",value:function(e){return new kb(e)}},{key:"behaviorOverride",value:function(e){return new Db(e)}},{key:"cache",value:function(e){return new Sb(e)}},{key:"change",value:function(e){return new Fb(e)}},{key:"common",value:function(e){return new xb(e)}},{key:"compress",value:function(e){return new Rb(e)}},{key:"compressLogicalStructure",value:function(e){return new Gb(e)}},{key:"compressObjectStream",value:function(e){return new Nb(e)}},{key:"compression",value:function(e){return new Lb(e)}},{key:"config",value:function(e){return new Ub(e)}},{key:"conformance",value:function(e){return new Mb(e)}},{key:"contentCopy",value:function(e){return new Jb(e)}},{key:"copies",value:function(e){return new Hb(e)}},{key:"creator",value:function(e){return new Yb(e)}},{key:"currentPage",value:function(e){return new Pb(e)}},{key:"data",value:function(e){return new Ob(e)}},{key:"debug",value:function(e){return new Kb(e)}},{key:"defaultTypeface",value:function(e){return new Tb(e)}},{key:"destination",value:function(e){return new qb(e)}},{key:"documentAssembly",value:function(e){return new jb(e)}},{key:"driver",value:function(e){return new Wb(e)}},{key:"duplexOption",value:function(e){return new Zb(e)}},{key:"dynamicRender",value:function(e){return new _b(e)}},{key:"embed",value:function(e){return new Xb(e)}},{key:"encrypt",value:function(e){return new Vb(e)}},{key:"encryption",value:function(e){return new zb(e)}},{key:"encryptionLevel",value:function(e){return new $b(e)}},{key:"enforce",value:function(e){return new ek(e)}},{key:"equate",value:function(e){return new tk(e)}},{key:"equateRange",value:function(e){return new rk(e)}},{key:"exclude",value:function(e){return new Ak(e)}},{key:"excludeNS",value:function(e){return new nk(e)}},{key:"flipLabel",value:function(e){return new ik(e)}},{key:"fontInfo",value:function(e){return new ak(e)}},{key:"formFieldFilling",value:function(e){return new ok(e)}},{key:"groupParent",value:function(e){return new sk(e)}},{key:"ifEmpty",value:function(e){return new ck(e)}},{key:"includeXDPContent",value:function(e){return new gk(e)}},{key:"incrementalLoad",value:function(e){return new uk(e)}},{key:"incrementalMerge",value:function(e){return new lk(e)}},{key:"interactive",value:function(e){return new hk(e)}},{key:"jog",value:function(e){return new Ik(e)}},{key:"labelPrinter",value:function(e){return new fk(e)}},{key:"layout",value:function(e){return new Ck(e)}},{key:"level",value:function(e){return new Bk(e)}},{key:"linearized",value:function(e){return new Qk(e)}},{key:"locale",value:function(e){return new Ek(e)}},{key:"localeSet",value:function(e){return new dk(e)}},{key:"log",value:function(e){return new yk(e)}},{key:"map",value:function(e){return new pk(e)}},{key:"mediumInfo",value:function(e){return new vk(e)}},{key:"message",value:function(e){return new mk(e)}},{key:"messaging",value:function(e){return new wk(e)}},{key:"mode",value:function(e){return new bk(e)}},{key:"modifyAnnots",value:function(e){return new kk(e)}},{key:"msgId",value:function(e){return new Dk(e)}},{key:"nameAttr",value:function(e){return new Sk(e)}},{key:"neverEmbed",value:function(e){return new Fk(e)}},{key:"numberOfCopies",value:function(e){return new xk(e)}},{key:"openAction",value:function(e){return new Rk(e)}},{key:"output",value:function(e){return new Gk(e)}},{key:"outputBin",value:function(e){return new Nk(e)}},{key:"outputXSL",value:function(e){return new Lk(e)}},{key:"overprint",value:function(e){return new Uk(e)}},{key:"packets",value:function(e){return new Mk(e)}},{key:"pageOffset",value:function(e){return new Jk(e)}},{key:"pageRange",value:function(e){return new Hk(e)}},{key:"pagination",value:function(e){return new Yk(e)}},{key:"paginationOverride",value:function(e){return new Pk(e)}},{key:"part",value:function(e){return new Ok(e)}},{key:"pcl",value:function(e){return new Kk(e)}},{key:"pdf",value:function(e){return new Tk(e)}},{key:"pdfa",value:function(e){return new qk(e)}},{key:"permissions",value:function(e){return new jk(e)}},{key:"pickTrayByPDFSize",value:function(e){return new Wk(e)}},{key:"picture",value:function(e){return new Zk(e)}},{key:"plaintextMetadata",value:function(e){return new _k(e)}},{key:"presence",value:function(e){return new Xk(e)}},{key:"present",value:function(e){return new Vk(e)}},{key:"print",value:function(e){return new zk(e)}},{key:"printHighQuality",value:function(e){return new $k(e)}},{key:"printScaling",value:function(e){return new eD(e)}},{key:"printerName",value:function(e){return new tD(e)}},{key:"producer",value:function(e){return new rD(e)}},{key:"ps",value:function(e){return new AD(e)}},{key:"range",value:function(e){return new nD(e)}},{key:"record",value:function(e){return new iD(e)}},{key:"relevant",value:function(e){return new aD(e)}},{key:"rename",value:function(e){return new oD(e)}},{key:"renderPolicy",value:function(e){return new sD(e)}},{key:"runScripts",value:function(e){return new cD(e)}},{key:"script",value:function(e){return new gD(e)}},{key:"scriptModel",value:function(e){return new uD(e)}},{key:"severity",value:function(e){return new lD(e)}},{key:"silentPrint",value:function(e){return new hD(e)}},{key:"staple",value:function(e){return new ID(e)}},{key:"startNode",value:function(e){return new fD(e)}},{key:"startPage",value:function(e){return new CD(e)}},{key:"submitFormat",value:function(e){return new BD(e)}},{key:"submitUrl",value:function(e){return new QD(e)}},{key:"subsetBelow",value:function(e){return new ED(e)}},{key:"suppressBanner",value:function(e){return new dD(e)}},{key:"tagged",value:function(e){return new yD(e)}},{key:"template",value:function(e){return new pD(e)}},{key:"templateCache",value:function(e){return new wD(e)}},{key:"threshold",value:function(e){return new vD(e)}},{key:"to",value:function(e){return new mD(e)}},{key:"trace",value:function(e){return new bD(e)}},{key:"transform",value:function(e){return new kD(e)}},{key:"type",value:function(e){return new DD(e)}},{key:"uri",value:function(e){return new SD(e)}},{key:"validate",value:function(e){return new FD(e)}},{key:"validateApprovalSignatures",value:function(e){return new xD(e)}},{key:"validationMessaging",value:function(e){return new RD(e)}},{key:"version",value:function(e){return new GD(e)}},{key:"versionControl",value:function(e){return new ND(e)}},{key:"viewerPreferences",value:function(e){return new LD(e)}},{key:"webClient",value:function(e){return new UD(e)}},{key:"whitespace",value:function(e){return new MD(e)}},{key:"window",value:function(e){return new JD(e)}},{key:"xdc",value:function(e){return new HD(e)}},{key:"xdp",value:function(e){return new YD(e)}},{key:"xsl",value:function(e){return new PD(e)}},{key:"zpl",value:function(e){return new OD(e)}}])}();function TD(e,t){for(var r=0;r=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function $F(e,t){if(e){if("string"==typeof e)return ex(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)?ex(e,t):void 0}}function ex(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r1&&void 0!==arguments[1]&&arguments[1]?this[rx]=!0:(e=e.replaceAll(ax,""),this.style.includes("xfa-spacerun:yes")||(e=e.replaceAll(ix," "))),e&&(this[UE]+=e)}},{key:md,value:function(e){var t,r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],A=Object.create(null),n={top:NaN,bottom:NaN,left:NaN,right:NaN},i=null,a=zF(this.style.split(";").map((function(e){return e.split(":",2)})));try{for(a.s();!(t=a.n()).done;){var o=VF(t.value,2),s=o[0],c=o[1];switch(s){case"font-family":A.typeface=_d(c);break;case"font-size":A.size=ey(c);break;case"font-weight":A.weight=c;break;case"font-style":A.posture=c;break;case"letter-spacing":A.letterSpacing=ey(c);break;case"margin":var g=c.split(/ \\t/).map((function(e){return ey(e)}));switch(g.length){case 1:n.top=n.bottom=n.left=n.right=g[0];break;case 2:n.top=n.bottom=g[0],n.left=n.right=g[1];break;case 3:n.top=g[0],n.bottom=g[2],n.left=n.right=g[1];break;case 4:n.top=g[0],n.left=g[1],n.bottom=g[2],n.right=g[3]}break;case"margin-top":n.top=ey(c);break;case"margin-bottom":n.bottom=ey(c);break;case"margin-left":n.left=ey(c);break;case"margin-right":n.right=ey(c);break;case"line-height":i=ey(c)}}}catch(e){a.e(e)}finally{a.f()}if(e.pushData(A,n,i),this[UE])e.addString(this[UE]);else{var u,l=zF(this[VE]());try{for(l.s();!(u=l.n()).done;){var h=u.value;"#text"!==h[Ed]?h[md](e):e.addString(h[UE])}}catch(e){l.e(e)}finally{l.f()}}r&&e.popFont()}},{key:Md,value:function(e){var t,r=[];return this[HE]={children:r},this[FE]({}),0!==r.length||this[UE]?(t=this[rx]?this[UE]?this[UE].replaceAll(ox,"\\n"):void 0:this[UE]||void 0,Ay.success({name:this[Ed],attributes:{href:this.href,style:sx(this.style,this,this[rx])},children:r,value:t})):Ay.EMPTY}}])}(),ux=function(e){function t(e){var r;return YF(this,t),(r=TF(this,t,[e,"a"])).href=Kp(e.href)||"",r}return _F(t,gx),OF(t)}(),lx=function(e){function t(e){return YF(this,t),TF(this,t,[e,"b"])}return _F(t,gx),OF(t,[{key:md,value:function(e){e.pushFont({weight:"bold"}),jF(t,md,this,3)([e]),e.popFont()}}])}(),hx=function(e){function t(e){return YF(this,t),TF(this,t,[e,"body"])}return _F(t,gx),OF(t,[{key:Md,value:function(e){var r=jF(t,Md,this,3)([e]),A=r.html;return A?(A.name="div",A.attributes.class=["xfaRich"],r):Ay.EMPTY}}])}(),Ix=function(e){function t(e){return YF(this,t),TF(this,t,[e,"br"])}return _F(t,gx),OF(t,[{key:Ld,value:function(){return"\\n"}},{key:md,value:function(e){e.addString("\\n")}},{key:Md,value:function(e){return Ay.success({name:"br"})}}])}(),fx=function(e){function t(e){return YF(this,t),TF(this,t,[e,"html"])}return _F(t,gx),OF(t,[{key:Md,value:function(e){var t=[];if(this[HE]={children:t},this[FE]({}),0===t.length)return Ay.success({name:"div",attributes:{class:["xfaRich"],style:{}},value:this[UE]||""});if(1===t.length){var r,A=t[0];if(null!==(r=A.attributes)&&void 0!==r&&r.class.includes("xfaRich"))return Ay.success(A)}return Ay.success({name:"div",attributes:{class:["xfaRich"],style:{}},children:t})}}])}(),Cx=function(e){function t(e){return YF(this,t),TF(this,t,[e,"i"])}return _F(t,gx),OF(t,[{key:md,value:function(e){e.pushFont({posture:"italic"}),jF(t,md,this,3)([e]),e.popFont()}}])}(),Bx=function(e){function t(e){return YF(this,t),TF(this,t,[e,"li"])}return _F(t,gx),OF(t)}(),Qx=function(e){function t(e){return YF(this,t),TF(this,t,[e,"ol"])}return _F(t,gx),OF(t)}(),Ex=function(e){function t(e){return YF(this,t),TF(this,t,[e,"p"])}return _F(t,gx),OF(t,[{key:md,value:function(e){jF(t,md,this,3)([e,!1]),e.addString("\\n"),e.addPara(),e.popFont()}},{key:Ld,value:function(){return this[td]()[VE]().at(-1)===this?jF(t,Ld,this,3)([]):jF(t,Ld,this,3)([])+"\\n"}}])}(),dx=function(e){function t(e){return YF(this,t),TF(this,t,[e,"span"])}return _F(t,gx),OF(t)}(),yx=function(e){function t(e){return YF(this,t),TF(this,t,[e,"sub"])}return _F(t,gx),OF(t)}(),px=function(e){function t(e){return YF(this,t),TF(this,t,[e,"sup"])}return _F(t,gx),OF(t)}(),vx=function(e){function t(e){return YF(this,t),TF(this,t,[e,"ul"])}return _F(t,gx),OF(t)}(),mx=function(){function e(){YF(this,e)}return OF(e,null,[{key:Pd,value:function(t,r){if(e.hasOwnProperty(t))return e[t](r)}},{key:"a",value:function(e){return new ux(e)}},{key:"b",value:function(e){return new lx(e)}},{key:"body",value:function(e){return new hx(e)}},{key:"br",value:function(e){return new Ix(e)}},{key:"html",value:function(e){return new fx(e)}},{key:"i",value:function(e){return new Cx(e)}},{key:"li",value:function(e){return new Bx(e)}},{key:"ol",value:function(e){return new Qx(e)}},{key:"p",value:function(e){return new Ex(e)}},{key:"span",value:function(e){return new dx(e)}},{key:"sub",value:function(e){return new yx(e)}},{key:"sup",value:function(e){return new px(e)}},{key:"ul",value:function(e){return new vx(e)}}])}(),wx={config:KD,connection:lS,datasets:wS,localeSet:aF,signature:BF,stylesheet:DF,template:Jw,xdp:HF,xhtml:mx};function bx(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,A=Array(t);r0&&void 0!==arguments[0]?arguments[0]:null;Rx(this,e),this._namespaceStack=[],this._nsAgnosticLevel=0,this._namespacePrefixes=new Map,this._namespaces=new Map,this._nextNsId=Math.max.apply(Math,function(e){return function(e){if(Array.isArray(e))return xx(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Fx(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(Object.values(Od).map((function(e){return e.id})))),this._currentNamespace=t||new Dx(++this._nextNsId)}),[{key:"buildRoot",value:function(e){return new Ox(e)}},{key:"build",value:function(e){var t=e.nsPrefix,r=e.name,A=e.attributes,n=e.namespace,i=e.prefixes,a=null!==n;if(a&&(this._namespaceStack.push(this._currentNamespace),this._currentNamespace=this._searchNamespace(n)),i&&this._addNamespacePrefix(i),A.hasOwnProperty(dd)){for(var o=wx.datasets,s=A[dd],c=null,g=0,u=Object.entries(s);g0}},{key:"_searchNamespace",value:function(e){var t=this._namespaces.get(e);if(t)return t;for(var r=0,A=Object.entries(Od);r=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}(e);try{for(r.s();!(t=r.n()).done;){var A=t.value,n=A.prefix,i=A.value,a=this._searchNamespace(i),o=this._namespacePrefixes.get(n);o||(o=[],this._namespacePrefixes.set(n,o)),o.push(a)}}catch(e){r.e(e)}finally{r.f()}}},{key:"_getNamespaceToUse",value:function(e){if(!e)return this._currentNamespace;var t=this._namespacePrefixes.get(e);return(null==t?void 0:t.length)>0?t.at(-1):(q("Unknown namespace prefix: ".concat(e,".")),null)}},{key:"clean",value:function(e){var t=this,r=e.hasNamespace,A=e.prefixes,n=e.nsAgnostic;r&&(this._currentNamespace=this._namespaceStack.pop()),A&&A.forEach((function(e){var r=e.prefix;t._namespacePrefixes.get(r).pop()})),n&&this._nsAgnosticLevel--}}])}();function qx(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var A,n,i,a,o=[],s=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(A=i.call(r)).done)&&(o.push(A.value),o.length!==t);s=!0);}catch(e){c=!0,n=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw n}}return o}}(e,t)||jx(e,t)||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.")}()}function jx(e,t){if(e){if("string"==typeof e)return Wx(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)?Wx(e,t):void 0}}function Wx(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r0&&void 0!==arguments[0]?arguments[0]:null,A=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(e=Xx(this,t))._builder=new Tx(r),e._stack=[],e._globalData={usedTypefaces:new Set},e._ids=new Map,e._current=e._builder.buildRoot(e._ids),e._errorCode=0,e._whiteRegex=/^\\s+$/,e._nbsps=/\\xa0+/g,e._richText=A,e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&$x(e,t)}(t,nB),function(e,t,r){return t&&Zx(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}(t,[{key:"parse",value:function(e){if(this.parseXml(e),0===this._errorCode)return this._current[YE](),this._current.element}},{key:"onText",value:function(e){e=e.replace(this._nbsps,(function(e){return e.slice(1)+" "})),this._richText||this._current[kE]()?this._current[vd](e,this._richText):this._whiteRegex.test(e)||this._current[vd](e.trim())}},{key:"onCdata",value:function(e){this._current[vd](e)}},{key:"_mkAttributes",value:function(e,t){var r,A=null,n=null,i=Object.create({}),a=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=jx(e))){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}(e);try{for(a.s();!(r=a.n()).done;){var o=r.value,s=o.name,c=o.value;if("xmlns"===s)A?q("XFA - multiple namespace definition in <".concat(t,">")):A=c;else if(s.startsWith("xmlns:")){var g=s.substring(6);n||(n=[]),n.push({prefix:g,value:c})}else{var u=s.indexOf(":");if(-1===u)i[s]=c;else{var l,h=i[dd];h||(h=i[dd]=Object.create(null));var I=[s.slice(0,u),s.slice(u+1)],f=I[0],C=I[1];((l=h)[f]||(l[f]=Object.create(null)))[C]=c}}}}catch(e){a.e(e)}finally{a.f()}return[A,n,i]}},{key:"_getNameAndPrefix",value:function(e,t){var r=e.indexOf(":");return-1===r?[e,null]:[e.substring(r+1),t?"":e.substring(0,r)]}},{key:"onBeginElement",value:function(e,t,r){var A=qx(this._mkAttributes(t,e),3),n=A[0],i=A[1],a=A[2],o=qx(this._getNameAndPrefix(e,this._builder.isNsAgnostic()),2),s=o[0],c=o[1],g=this._builder.build({nsPrefix:c,name:s,attributes:a,namespace:n,prefixes:i});if(g[Ad]=this._globalData,r)return g[YE](),this._current[yd](g)&&g[xd](this._ids),void g[xE](this._builder);this._stack.push(this._current),this._current=g}},{key:"onEndElement",value:function(e){var r=this._current;if(r[sd]()&&"string"==typeof r[UE]){var A=new t;A._globalData=this._globalData;var n=A.parse(r[UE]);r[UE]=null,r[yd](n)}r[YE](),this._current=this._stack.pop(),this._current[yd](r)&&r[xd](this._ids),r[xE](this._builder)}},{key:"onError",value:function(e){this._errorCode=e}}])}();function tR(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}function AR(e,t,r,A,n,i,a){try{var o=e[i](a),s=o.value}catch(e){return void r(e)}o.done?t(s):Promise.resolve(s).then(A,n)}function nR(e){return function(){var t=this,r=arguments;return new Promise((function(A,n){var i=e.apply(t,r);function a(e){AR(i,A,n,a,o,"next",e)}function o(e){AR(i,A,n,a,o,"throw",e)}a(void 0)}))}}function iR(e,t){for(var r=0;r=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}(this.form[Ad].usedTypefaces);try{for(A.s();!(t=A.n()).done;){var n=t.value;n=_d(n),this.form[Ad].fontFinder.find(n)||r.push(n)}}catch(e){A.e(e)}finally{A.f()}return r.length>0?r:null}},{key:"appendFonts",value:function(e,t){this.form[Ad].fontFinder.add(e,t)}},{key:"getPages",value:(e=nR(rR().mark((function e(){var t;return rR().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.pages){e.next=3;break}return e.next=3,this._createPages();case 3:return t=this.pages,this.pages=null,e.abrupt("return",t);case 6:case"end":return e.stop()}}),e,this)}))),function(){return e.apply(this,arguments)})},{key:"serializeData",value:function(e){return this.dataHandler.serialize(e)}}],[{key:"_createDocument",value:function(e){return e["/xdp:xdp"]?Object.values(e).join(""):e["xdp:xdp"]}},{key:"getRichTextAsHtml",value:function(e){if(!e||"string"!=typeof e)return null;try{var t=new eR(mx,!0).parse(e);if(!["body","xhtml"].includes(t[Ed])){var r=mx.body({});r[SE](t),t=r}var A=t[Md]();if(!A.success)return null;var n=A.html,i=n.attributes;return i&&(i.class&&(i.class=i.class.filter((function(e){return!e.startsWith("xfa")}))),i.dir="auto"),{html:n,str:t[Ld]()}}catch(e){q("XFA - an error occurred during parsing of rich text: ".concat(e))}return null}}]);var e,t,r}();function sR(e,t,r){return e.set(cR(e,t),r),r}function cR(e,t,r){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:r;throw new TypeError("Private element is not present on this object")}function gR(e,t,r,A){var n=uR(fR(1&A?e.prototype:e),t,r);return 2&A&&"function"==typeof n?function(e){return n.apply(r,e)}:n}function uR(){return uR="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var A=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=fR(e)););return e}(e,t);if(A){var n=Object.getOwnPropertyDescriptor(A,t);return n.get?n.get.call(arguments.length<3?e:r):n.value}},uR.apply(null,arguments)}function lR(e,t,r){return t=fR(t),hR(e,IR()?Reflect.construct(t,r||[],fR(e).constructor):t.apply(e,r))}function hR(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function IR(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(IR=function(){return!!e})()}function fR(e){return fR=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},fR(e)}function CR(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&BR(e,t)}function BR(e,t){return BR=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},BR(e,t)}function QR(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=vR(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function ER(){ER=function(){return t};var e,t={},r=Object.prototype,A=r.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,r){return e[t]=r}}function g(e,t,r,A){var i=t&&t.prototype instanceof B?t:B,a=Object.create(i.prototype),o=new F(A||[]);return n(a,"_invoke",{value:b(e,r,o)}),a}function u(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=g;var l="suspendedStart",h="suspendedYield",I="executing",f="completed",C={};function B(){}function Q(){}function E(){}var d={};c(d,a,(function(){return this}));var y=Object.getPrototypeOf,p=y&&y(y(x([])));p&&p!==r&&A.call(p,a)&&(d=p);var v=E.prototype=B.prototype=Object.create(d);function m(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function r(n,i,a,o){var s=u(e[n],e,i);if("throw"!==s.type){var c=s.arg,g=c.value;return g&&"object"==typeof g&&A.call(g,"__await")?t.resolve(g.__await).then((function(e){r("next",e,a,o)}),(function(e){r("throw",e,a,o)})):t.resolve(g).then((function(e){c.value=e,a(c)}),(function(e){return r("throw",e,a,o)}))}o(s.arg)}var i;n(this,"_invoke",{value:function(e,A){function n(){return new t((function(t,n){r(e,A,t,n)}))}return i=i?i.then(n,n):n()}})}function b(t,r,A){var n=l;return function(i,a){if(n===I)throw Error("Generator is already running");if(n===f){if("throw"===i)throw a;return{value:e,done:!0}}for(A.method=i,A.arg=a;;){var o=A.delegate;if(o){var s=k(o,A);if(s){if(s===C)continue;return s}}if("next"===A.method)A.sent=A._sent=A.arg;else if("throw"===A.method){if(n===l)throw n=f,A.arg;A.dispatchException(A.arg)}else"return"===A.method&&A.abrupt("return",A.arg);n=I;var c=u(t,r,A);if("normal"===c.type){if(n=A.done?f:h,c.arg===C)continue;return{value:c.arg,done:A.done}}"throw"===c.type&&(n=f,A.method="throw",A.arg=c.arg)}}}function k(t,r){var A=r.method,n=t.iterator[A];if(n===e)return r.delegate=null,"throw"===A&&t.iterator.return&&(r.method="return",r.arg=e,k(t,r),"throw"===r.method)||"return"!==A&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+A+"' method")),C;var i=u(n,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,C;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,C):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,C)}function D(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function F(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(D,this),this.reset(!0)}function x(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,i=function r(){for(;++n=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}function dR(e,t,r,A,n,i,a){try{var o=e[i](a),s=o.value}catch(e){return void r(e)}o.done?t(s):Promise.resolve(s).then(A,n)}function yR(e){return function(){var t=this,r=arguments;return new Promise((function(A,n){var i=e.apply(t,r);function a(e){dR(i,A,n,a,o,"next",e)}function o(e){dR(i,A,n,a,o,"throw",e)}a(void 0)}))}}function pR(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var A,n,i,a,o=[],s=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(A=i.call(r)).done)&&(o.push(A.value),o.length!==t);s=!0);}catch(e){c=!0,n=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw n}}return o}}(e,t)||vR(e,t)||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.")}()}function vR(e,t){if(e){if("string"==typeof e)return mR(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)?mR(e,t):void 0}}function mR(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r4&&void 0!==arguments[4]&&arguments[4],i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,o=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,s=e.fetchIfRef(t);if(s instanceof He){var c=r.acroForm,g=r.pdfManager,u=t instanceof Ye?t.toString():"annot_".concat(A.createObjId()),l=s.get("Subtype"),h={xref:e,ref:t,dict:s,subtype:l=l instanceof Ue?l.name:null,id:u,annotationGlobals:r,collectFields:n,orphanFields:i,needAppearances:!n&&!0===c.get("NeedAppearances"),pageIndex:a,evaluatorOptions:g.evaluatorOptions,pageRef:o};switch(l){case"Link":return new KR(h);case"Text":return new OR(h);case"Widget":var I=yt({dict:s,key:"FT"});switch(I=I instanceof Ue?I.name:null){case"Tx":return new JR(h);case"Btn":return new HR(h);case"Ch":return new YR(h);case"Sig":return new PR(h)}return q('Unimplemented widget field type "'.concat(I,'", ')+"falling back to base field type."),new MR(h);case"Popup":return new TR(h);case"FreeText":return new qR(h);case"Line":return new jR(h);case"Square":return new WR(h);case"Circle":return new ZR(h);case"PolyLine":return new _R(h);case"Polygon":return new XR(h);case"Caret":return new VR(h);case"Ink":return new zR(h);case"Highlight":return new $R(h);case"Underline":return new eG(h);case"Squiggly":return new tG(h);case"StrikeOut":return new rG(h);case"Stamp":return new nG(h);case"FileAttachment":return new iG(h);default:return n||q(l?'Unimplemented annotation type "'.concat(l,'", ')+"falling back to base annotation.":"Annotation is missing the required /Subtype."),new NR(h)}}}},{key:"_getPageIndex",value:(r=yR(ER().mark((function e(t,r,A){var n,i,a,o,s,c,g,u,l,h;return ER().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,t.fetchIfRefAsync(r);case 3:if((n=e.sent)instanceof He){e.next=6;break}return e.abrupt("return",-1);case 6:if(!((i=n.getRaw("P"))instanceof Ye)){e.next=18;break}return e.prev=8,e.next=11,A.ensureCatalog("getPageIndex",[i]);case 11:return a=e.sent,e.abrupt("return",a);case 15:e.prev=15,e.t0=e.catch(8),T('_getPageIndex -- not a valid page reference: "'.concat(e.t0,'".'));case 18:if(!n.has("Kids")){e.next=20;break}return e.abrupt("return",-1);case 20:return e.next=22,A.ensureDoc("numPages");case 22:o=e.sent,s=0;case 24:if(!(s1&&void 0!==arguments[1]?arguments[1]:new Uint8ClampedArray(3);if(!Array.isArray(e))return t;var r=t||new Uint8ClampedArray(3);switch(e.length){case 0:return null;case 1:return Ur.singletons.gray.getRgbItem(e,0,r,0),r;case 3:return Ur.singletons.rgb.getRgbItem(e,0,r,0),r;case 4:return Ur.singletons.cmyk.getRgbItem(e,0,r,0),r;default:return t}}function xR(e){return Array.from(e,(function(e){return e/255}))}function RR(e,t){var r=e.getArray("QuadPoints");if(!St(r,null)||0===r.length||r.length%8>0)return null;for(var A=new Float32Array(r.length),n=0,i=r.length;nt[2]||Bt[3]))return null;A.set([f,Q,C,Q,f,B,C,B],n)}return A}function GR(e,t,r){var A=pR(ge.getAxialAlignedBoundingBox(t,r),4),n=A[0],i=A[1],a=A[2],o=A[3];if(n===a||i===o)return[1,0,0,1,e[0],e[1]];var s=(e[2]-e[0])/(a-n),c=(e[3]-e[1])/(o-i);return[s,0,0,c,e[0]-n*s,e[1]-i*c]}var NR=function(){return kR((function e(t){wR(this,e);var r=t.dict,A=t.xref,n=t.annotationGlobals,i=t.ref,a=t.orphanFields,o=null==a?void 0:a.get(i);o&&r.set("Parent",o),this.setTitle(r.get("T")),this.setContents(r.get("Contents")),this.setModificationDate(r.get("M")),this.setFlags(r.get("F")),this.setRectangle(r.getArray("Rect")),this.setColor(r.getArray("C")),this.setBorderStyle(r),this.setAppearance(r),this.setOptionalContent(r);var s=r.get("MK");this.setBorderAndBackgroundColors(s),this.setRotation(s,r),this.ref=t.ref instanceof Ye?t.ref:null,this._streams=[],this.appearance&&this._streams.push(this.appearance);var c=!!(128&this.flags),g=!!(512&this.flags);if(this.data={annotationFlags:this.flags,borderStyle:this.borderStyle,color:this.color,backgroundColor:this.backgroundColor,borderColor:this.borderColor,rotation:this.rotation,contentsObj:this._contents,hasAppearance:!!this.appearance,id:t.id,modificationDate:this.modificationDate,rect:this.rectangle,subtype:t.subtype,hasOwnCanvas:!1,noRotate:!!(16&this.flags),noHTML:c&&g,isEditable:!1,structParent:-1},n.structTreeRoot){var u=r.get("StructParent");this.data.structParent=u=Number.isInteger(u)&&u>=0?u:-1,n.structTreeRoot.addAnnotationIdToPage(t.pageRef,u)}if(t.collectFields){var l=r.get("Kids");if(Array.isArray(l)){var h,I=[],f=QR(l);try{for(f.s();!(h=f.n()).done;){var C=h.value;C instanceof Ye&&I.push(C.toString())}}catch(e){f.e(e)}finally{f.f()}0!==I.length&&(this.data.kidIds=I)}this.data.actions=Mt(A,r,b),this.data.fieldName=this._constructFieldName(r),this.data.pageIndex=t.pageIndex}var B=r.get("IT");B instanceof Ue&&(this.data.it=B.name),this._isOffscreenCanvasSupported=t.evaluatorOptions.isOffscreenCanvasSupported,this._fallbackFontDict=null,this._needAppearances=!1}),[{key:"_hasFlag",value:function(e,t){return!!(e&t)}},{key:"_buildFlags",value:function(e,t){var r=this.flags;if(void 0===e){if(void 0===t)return;return t?-5&r:-3&r|4}return e?(r|=4,t?-33&r|2:-3&r|v):(r&=-35,t?-5&r:4|r)}},{key:"_isViewable",value:function(e){return!this._hasFlag(e,1)&&!this._hasFlag(e,v)}},{key:"_isPrintable",value:function(e){return this._hasFlag(e,4)&&!this._hasFlag(e,2)&&!this._hasFlag(e,1)}},{key:"mustBeViewed",value:function(e,t){var r,A=null==e||null===(r=e.get(this.data.id))||void 0===r?void 0:r.noView;return void 0!==A?!A:this.viewable&&!this._hasFlag(this.flags,2)}},{key:"mustBePrinted",value:function(e){var t,r=null==e||null===(t=e.get(this.data.id))||void 0===t?void 0:t.noPrint;return void 0!==r?!r:this.printable}},{key:"mustBeViewedWhenEditing",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return e?!this.data.isEditable:!(null!=t&&t.has(this.data.id))}},{key:"viewable",get:function(){return null!==this.data.quadPoints&&(0===this.flags||this._isViewable(this.flags))}},{key:"printable",get:function(){return null!==this.data.quadPoints&&0!==this.flags&&this._isPrintable(this.flags)}},{key:"_parseStringHelper",value:function(e){var t="string"==typeof e?Ie(e):"";return{str:t,dir:t&&"rtl"===UI(t).dir?"rtl":"ltr"}}},{key:"setDefaultAppearance",value:function(e){var t=e.dict,r=e.annotationGlobals,A=yt({dict:t,key:"DA"})||r.acroForm.get("DA");this._defaultAppearance="string"==typeof A?A:"",this.data.defaultAppearanceData=dC(this._defaultAppearance)}},{key:"setTitle",value:function(e){this._title=this._parseStringHelper(e)}},{key:"setContents",value:function(e){this._contents=this._parseStringHelper(e)}},{key:"setModificationDate",value:function(e){this.modificationDate="string"==typeof e?e:null}},{key:"setFlags",value:function(e){this.flags=Number.isInteger(e)&&e>0?e:0,1&this.flags&&"Annotation"!==this.constructor.name&&(this.flags^=1)}},{key:"hasFlag",value:function(e){return this._hasFlag(this.flags,e)}},{key:"setRectangle",value:function(e){this.rectangle=Rt(e,[0,0,0,0])}},{key:"setColor",value:function(e){this.color=FR(e)}},{key:"setLineEndings",value:function(e){if(this.lineEndings=["None","None"],Array.isArray(e)&&2===e.length)for(var t=0;t<2;t++){var r=e[t];if(r instanceof Ue)switch(r.name){case"None":continue;case"Square":case"Circle":case"Diamond":case"OpenArrow":case"ClosedArrow":case"Butt":case"ROpenArrow":case"RClosedArrow":case"Slash":this.lineEndings[t]=r.name;continue}q("Ignoring invalid lineEnding: ".concat(r))}}},{key:"setRotation",value:function(e,t){this.rotation=0;var r=e instanceof He?e.get("R")||0:t.get("Rotate")||0;Number.isInteger(r)&&0!==r&&((r%=360)<0&&(r+=360),r%90==0&&(this.rotation=r))}},{key:"setBorderAndBackgroundColors",value:function(e){e instanceof He?(this.borderColor=FR(e.getArray("BC"),null),this.backgroundColor=FR(e.getArray("BG"),null)):this.borderColor=this.backgroundColor=null}},{key:"setBorderStyle",value:function(e){if(this.borderStyle=new LR,e instanceof He)if(e.has("BS")){var t=e.get("BS");if(t instanceof He){var r=t.get("Type");r&&!Ke(r,"Border")||(this.borderStyle.setWidth(t.get("W"),this.rectangle),this.borderStyle.setStyle(t.get("S")),this.borderStyle.setDashArray(t.getArray("D")))}}else if(e.has("Border")){var A=e.getArray("Border");Array.isArray(A)&&A.length>=3&&(this.borderStyle.setHorizontalCornerRadius(A[0]),this.borderStyle.setVerticalCornerRadius(A[1]),this.borderStyle.setWidth(A[2],this.rectangle),4===A.length&&this.borderStyle.setDashArray(A[3],!0))}else this.borderStyle.setWidth(0)}},{key:"setAppearance",value:function(e){this.appearance=null;var t=e.get("AP");if(t instanceof He){var r=t.get("N");if(r instanceof ze)this.appearance=r;else if(r instanceof He){var A=e.get("AS");if(A instanceof Ue&&r.has(A.name)){var n=r.get(A.name);n instanceof ze&&(this.appearance=n)}}}}},{key:"setOptionalContent",value:function(e){this.oc=null;var t=e.get("OC");t instanceof Ue?q("setOptionalContent: Support for /Name-entry is not implemented."):t instanceof He&&(this.oc=t)}},{key:"loadResources",value:function(e,t){return t.dict.getAsync("Resources").then((function(t){if(t)return new bE(t,e,t.xref).load().then((function(){return t}))}))}},{key:"getOperatorList",value:(r=yR(ER().mark((function e(t,r,A,n){var i,a,o,s,c,g,u,l,h,I,f,B,Q;return ER().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=this.data,a=i.hasOwnCanvas,o=i.id,s=i.rect,c=this.appearance,!(g=!!(a&&2&A))||s[0]!==s[2]&&s[1]!==s[3]){e.next=6;break}return this.data.hasOwnCanvas=!1,e.abrupt("return",{opList:new kf,separateForm:!1,separateCanvas:!1});case 6:if(c){e.next=11;break}if(g){e.next=9;break}return e.abrupt("return",{opList:new kf,separateForm:!1,separateCanvas:!1});case 9:(c=new or("")).dict=new He;case 11:return u=c.dict,e.next=14,this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"],c);case 14:if(l=e.sent,h=xt(u.getArray("BBox"),[0,0,1,1]),I=Ft(u.getArray("Matrix"),C),f=GR(s,h,I),B=new kf,!this.oc){e.next=23;break}return e.next=22,t.parseMarkedContentProps(this.oc,null);case 22:Q=e.sent;case 23:return void 0!==Q&&B.addOp(J,["OC",Q]),B.addOp(80,[o,s,f,I,g]),e.next=27,t.getOperatorList({stream:c,task:r,resources:l,operatorList:B,fallbackFontDict:this._fallbackFontDict});case 27:return B.addOp(81,[]),void 0!==Q&&B.addOp(H,[]),this.reset(),e.abrupt("return",{opList:B,separateForm:!1,separateCanvas:g});case 31:case"end":return e.stop()}}),e,this)}))),function(e,t,A,n){return r.apply(this,arguments)})},{key:"save",value:(t=yR(ER().mark((function e(t,r,A){return ER().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",null);case 1:case"end":return e.stop()}}),e)}))),function(e,r,A){return t.apply(this,arguments)})},{key:"hasTextContent",get:function(){return!1}},{key:"extractTextContent",value:(e=yR(ER().mark((function e(t,r,A){var n,i,a,o,s,c,g,u,l,h,I;return ER().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.appearance){e.next=2;break}return e.abrupt("return");case 2:return e.next=4,this.loadResources(["ExtGState","Font","Properties","XObject"],this.appearance);case 4:return n=e.sent,i=[],a=[],o=null,e.t0=Math.Infinity,u={desiredSize:e.t0,ready:!0,enqueue(e,t){s=QR(e.items);try{for(s.s();!(c=s.n()).done;)void 0!==(g=c.value).str&&(o||(o=g.transform.slice(-2)),a.push(g.str),g.hasEOL&&(i.push(a.join("").trimEnd()),a.length=0))}catch(e){s.e(e)}finally{s.f()}}},e.next=12,t.getTextContent({stream:this.appearance,task:r,resources:n,includeMarkedContent:!0,keepWhiteSpace:!0,sink:u,viewBox:A});case 12:this.reset(),a.length&&i.push(a.join("").trimEnd()),(i.length>1||i[0])&&(l=this.appearance.dict,h=xt(l.getArray("BBox"),null),I=Ft(l.getArray("Matrix"),null),this.data.textPosition=this._transformPoint(o,h,I),this.data.textContent=i);case 15:case"end":return e.stop()}}),e,this)}))),function(t,r,A){return e.apply(this,arguments)})},{key:"_transformPoint",value:function(e,t,r){var A=this.data.rect;t||(t=[0,0,1,1]),r||(r=[1,0,0,1,0,0]);var n=GR(A,t,r);return n[4]-=A[0],n[5]-=A[1],e=ge.applyTransform(e,n),ge.applyTransform(e,r)}},{key:"getFieldObject",value:function(){return this.data.kidIds?{id:this.data.id,actions:this.data.actions,name:this.data.fieldName,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,type:"",kidIds:this.data.kidIds,page:this.data.pageIndex,rotation:this.rotation}:null}},{key:"reset",value:function(){var e,t=QR(this._streams);try{for(t.s();!(e=t.n()).done;)e.value.reset()}catch(e){t.e(e)}finally{t.f()}}},{key:"_constructFieldName",value:function(e){if(!e.has("T")&&!e.has("Parent"))return q("Unknown field name, falling back to empty field name."),"";if(!e.has("Parent"))return Ie(e.get("T"));var t=[];e.has("T")&&t.unshift(Ie(e.get("T")));var r=e,A=new Pe;for(e.objId&&A.put(e.objId);r.has("Parent")&&(r=r.get("Parent"))instanceof He&&(!r.objId||!A.has(r.objId));)r.objId&&A.put(r.objId),r.has("T")&&t.unshift(Ie(r.get("T")));return t.join(".")}}]);var e,t,r}(),LR=function(){return kR((function e(){wR(this,e),this.width=1,this.rawWidth=1,this.style=1,this.dashArray=[3],this.horizontalCornerRadius=0,this.verticalCornerRadius=0}),[{key:"setWidth",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0,0,0,0];if(e instanceof Ue)this.width=0;else if("number"==typeof e){if(e>0){this.rawWidth=e;var r=(t[2]-t[0])/2,A=(t[3]-t[1])/2;r>0&&A>0&&(e>r||e>A)&&(q("AnnotationBorderStyle.setWidth - ignoring width: ".concat(e)),e=1)}this.width=e}}},{key:"setStyle",value:function(e){if(e instanceof Ue)switch(e.name){case"S":this.style=1;break;case"D":this.style=2;break;case"B":this.style=3;break;case"I":this.style=4;break;case"U":this.style=5}}},{key:"setDashArray",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(Array.isArray(e)){var r,A=!0,n=!0,i=QR(e);try{for(i.s();!(r=i.n()).done;){var a=r.value;if(!(+a>=0)){A=!1;break}a>0&&(n=!1)}}catch(e){i.e(e)}finally{i.f()}0===e.length||A&&!n?(this.dashArray=e,t&&this.setStyle(Ue.get("D"))):this.width=0}else e&&(this.width=0)}},{key:"setHorizontalCornerRadius",value:function(e){Number.isInteger(e)&&(this.horizontalCornerRadius=e)}},{key:"setVerticalCornerRadius",value:function(e){Number.isInteger(e)&&(this.verticalCornerRadius=e)}}])}(),UR=function(e){function t(e){var r;wR(this,t),r=lR(this,t,[e]);var A=e.dict;if(A.has("IRT")){var n=A.getRaw("IRT");r.data.inReplyTo=n instanceof Ye?n.toString():null;var i=A.get("RT");r.data.replyType=i instanceof Ue?i.name:"R"}var a=null;if(r.data.replyType===p){var o=A.get("IRT");r.setTitle(o.get("T")),r.data.titleObj=r._title,r.setContents(o.get("Contents")),r.data.contentsObj=r._contents,o.has("CreationDate")?(r.setCreationDate(o.get("CreationDate")),r.data.creationDate=r.creationDate):r.data.creationDate=null,o.has("M")?(r.setModificationDate(o.get("M")),r.data.modificationDate=r.modificationDate):r.data.modificationDate=null,a=o.getRaw("Popup"),o.has("C")?(r.setColor(o.getArray("C")),r.data.color=r.color):r.data.color=null}else r.data.titleObj=r._title,r.setCreationDate(A.get("CreationDate")),r.data.creationDate=r.creationDate,a=A.getRaw("Popup"),A.has("C")||(r.data.color=null);return r.data.popupRef=a instanceof Ye?a.toString():null,A.has("RC")&&(r.data.richText=oR.getRichTextAsHtml(A.get("RC"))),r}return CR(t,NR),kR(t,[{key:"setCreationDate",value:function(e){this.creationDate="string"==typeof e?e:null}},{key:"_setDefaultAppearance",value:function(e){var t=e.xref,r=e.extra,A=e.strokeColor,n=e.fillColor,i=e.blendMode,a=e.strokeAlpha,o=e.fillAlpha,s=e.pointsCallback,c=Number.MAX_VALUE,g=Number.MAX_VALUE,u=Number.MIN_VALUE,l=Number.MIN_VALUE,h=["q"];r&&h.push(r),A&&h.push("".concat(A[0]," ").concat(A[1]," ").concat(A[2]," RG")),n&&h.push("".concat(n[0]," ").concat(n[1]," ").concat(n[2]," rg"));var I=this.data.quadPoints;I||(I=Float32Array.from([this.rectangle[0],this.rectangle[3],this.rectangle[2],this.rectangle[3],this.rectangle[0],this.rectangle[1],this.rectangle[2],this.rectangle[1]]));for(var f=0,C=I.length;f0?t:null}},{key:"amendSavedDict",value:function(e,t){}},{key:"save",value:(n=yR(ER().mark((function e(t,r,A){var n,i,a,o,s,c,g,u,l,h,I,f,B,Q,E,d,y,p,v,m,w,b,k,D;return ER().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=null==A?void 0:A.get(this.data.id),a=this._buildFlags(null==i?void 0:i.noView,null==i?void 0:i.noPrint),o=null==i?void 0:i.value,s=null==i?void 0:i.rotation,o!==this.data.fieldValue&&void 0!==o){e.next=7;break}if(this._hasValueFromXFA||void 0!==s||void 0!==a){e.next=6;break}return e.abrupt("return",null);case 6:o||(o=this.data.fieldValue);case 7:if(void 0!==s||this._hasValueFromXFA||!Array.isArray(o)||!Array.isArray(this.data.fieldValue)||!Be(o,this.data.fieldValue)||void 0!==a){e.next=9;break}return e.abrupt("return",null);case 9:if(void 0===s&&(s=this.rotation),c=null,this._needAppearances){e.next=19;break}return e.next=14,this._getAppearance(t,r,8,A);case 14:if(null!==(c=e.sent)||void 0!==a){e.next=17;break}return e.abrupt("return",null);case 17:e.next=19;break;case 19:if(g=!1,null!==(n=c)&&void 0!==n&&n.needAppearances&&(g=!0,c=null),u=t.xref,(l=u.fetchIfRef(this.ref))instanceof He){e.next=25;break}return e.abrupt("return",null);case 25:h=new He(u),I=QR(l.getKeys());try{for(I.s();!(f=I.n()).done;)"AP"!==(B=f.value)&&h.set(B,l.getRaw(B))}catch(e){I.e(e)}finally{I.f()}if(void 0!==a&&(h.set("F",a),null!==c||g||(Q=l.getRaw("AP"))&&h.set("AP",Q)),E={path:this.data.fieldName,value:o},h.set("V",Array.isArray(o)?o.map(jt):jt(o)),this.amendSavedDict(A,h),(d=this._getMKDict(s))&&h.set("MK",d),y=[],p=[{ref:this.ref,data:"",xfa:E,needAppearances:g}],null===c){e.next=53;break}return v=u.getNewTemporaryRef(),m=new He(u),h.set("AP",m),m.set("N",v),w=this._getSaveFieldResources(u),b=new or(c),(k=b.dict=new He(u)).set("Subtype",Ue.get("Form")),k.set("Resources",w),k.set("BBox",[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]]),(D=this.getRotationMatrix(A))!==C&&k.set("Matrix",D),e.next=51,iQ(v,b,y,u);case 51:p.push({ref:v,data:y.join(""),xfa:null,needAppearances:!1}),y.length=0;case 53:return h.set("M","D:".concat(Qe())),e.next=56,iQ(this.ref,h,y,u);case 56:return p[0].data=y.join(""),e.abrupt("return",p);case 58:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return n.apply(this,arguments)})},{key:"_getAppearance",value:(A=yR(ER().mark((function e(r,A,n,i){var a,o,s,c,g,u,l,h,I,f,C,B,Q,d,y,p,v,w,b,k,D,S,F,x,R,G,N,L,U,M,J,H,Y,P,O,K,T,j,Z,_,X,V,z,$;return ER().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.hasFieldFlag(m)){e.next=3;break}return e.abrupt("return",null);case 3:if((a=null==i?void 0:i.get(this.data.id))&&(o=a.formattedValue||a.value,s=a.rotation),void 0!==s||void 0!==o||this._needAppearances){e.next=8;break}if(this._hasValueFromXFA&&!this.appearance){e.next=8;break}return e.abrupt("return",null);case 8:if(c=this.getBorderAndBackgroundAppearances(i),void 0!==o){e.next=13;break}if(o=this.data.fieldValue){e.next=13;break}return e.abrupt("return","/Tx BMC q ".concat(c,"Q EMC"));case 13:if(Array.isArray(o)&&1===o.length&&(o=o[0]),W("string"==typeof o,"Expected \`value\` to be a string."),o=o.trimEnd(),this.data.combo&&(g=this.data.options.find((function(e){var t=e.exportValue;return o===t})),o=(null==g?void 0:g.displayValue)||o),""!==o){e.next=19;break}return e.abrupt("return","/Tx BMC q ".concat(c,"Q EMC"));case 19:return void 0===s&&(s=this.rotation),u=-1,this.data.multiLine?(l=o.split(/\\r\\n?|\\n/).map((function(e){return e.normalize("NFC")})),u=l.length):l=[o.replace(/\\r\\n?|\\n/,"").normalize("NFC")],h=1,I=2,f=this.data.rect[3]-this.data.rect[1],C=this.data.rect[2]-this.data.rect[0],90!==s&&270!==s||(C=(B=[f,C])[0],f=B[1]),this._defaultAppearance||(this.data.defaultAppearanceData=dC(this._defaultAppearance="/Helvetica 0 Tf 0 g")),e.next=30,t._getFontData(r,A,this.data.defaultAppearanceData,this._fieldResources.mergedResources);case 30:Q=e.sent,v=[],w=!1,b=QR(l);try{for(b.s();!(k=b.n()).done;)D=k.value,(S=Q.encodeString(D)).length>1&&(w=!0),v.push(S.join(""))}catch(e){b.e(e)}finally{b.f()}if(!(w&&8&n)){e.next=37;break}return e.abrupt("return",{needAppearances:!0});case 37:if(!w||!this._isOffscreenCanvasSupported){e.next=59;break}if(F=this.data.comb?"monospace":"sans-serif",x=new vC(r.xref,F),R=x.createFontResources(l.join("")),G=R.getRaw("Font"),this._fieldResources.mergedResources.has("Font")){N=this._fieldResources.mergedResources.get("Font"),L=QR(G.getKeys());try{for(L.s();!(U=L.n()).done;)M=U.value,N.set(M,G.getRaw(M))}catch(e){L.e(e)}finally{L.f()}}else this._fieldResources.mergedResources.set("Font",G);return J=x.fontName.name,e.next=46,t._getFontData(r,A,{fontName:J,fontSize:0},R);case 46:for(Q=e.sent,H=0,Y=v.length;H2)){e.next=76;break}return e.abrupt("return","/Tx BMC q ".concat(c,"BT ")+d+" 1 0 0 1 ".concat(Tt(I)," ").concat(Tt(V)," Tm (").concat(Lt(v[0]),") Tj")+" ET Q EMC");case 76:return z={shift:0},$=this._renderText(v[0],Q,y,C,X,z,I,V),e.abrupt("return","/Tx BMC q ".concat(c,"BT ")+d+" 1 0 0 1 0 0 Tm ".concat($)+" ET Q EMC");case 79:case"end":return e.stop()}}),e,this)}))),function(e,t,r,n){return A.apply(this,arguments)})},{key:"_getTextWidth",value:function(e,t){return t.charsToGlyphs(e).reduce((function(e,t){return e+t.width}),0)/1e3}},{key:"_computeFontSize",value:function(e,t,r,A,n){var i=this,a=this.data.defaultAppearanceData.fontSize,o=(a||12)*Q,s=Math.round(e/o);if(!a){var c=function(e){return Math.floor(100*e)/100};if(-1===n){var g=this._getTextWidth(r,A);a=c(Math.min(e/Q,t/g)),s=1}else{var u,l=r.split(/\\r\\n?|\\n/),h=[],I=QR(l);try{for(I.s();!(u=I.n()).done;){var f=u.value,C=A.encodeString(f).join(""),B=A.charsToGlyphs(C),E=A.getCharPositions(C);h.push({line:C,glyphs:B,positions:E})}}catch(e){I.e(e)}finally{I.f()}var d=function(r){for(var n=0,a=0,o=h;ae)return!0}return!1};for(s=Math.max(s,n);d(a=c((o=e/s)/Q));)s++}var y=this.data.defaultAppearanceData,p=y.fontName,v=y.fontColor;this._defaultAppearance=function(e){var t=e.fontSize,r=e.fontColor;return"/".concat(Nt(e.fontName)," ").concat(t," Tf ").concat(pC(r,!0))}({fontSize:a,fontName:p,fontColor:v})}return[this._defaultAppearance,a,e/s]}},{key:"_renderText",value:function(e,t,r,A,n,i,a,o){var s,c=Tt((s=1===n?(A-this._getTextWidth(e,t)*r)/2:2===n?A-this._getTextWidth(e,t)*r-a:a)-i.shift);return i.shift=s,o=Tt(o),"".concat(c," ").concat(o," Td (").concat(Lt(e),") Tj")}},{key:"_getSaveFieldResources",value:function(e){var t,r=this._fieldResources,A=r.localResources,n=r.appearanceResources,i=r.acroFormResources,a=null===(t=this.data.defaultAppearanceData)||void 0===t?void 0:t.fontName;if(!a)return A||He.empty;for(var o=0,s=[A,n];o2)&&(n=null),r.data.textAlignment=n;var i=yt({dict:A,key:"MaxLen"});return(!Number.isInteger(i)||i<0)&&(i=0),r.data.maxLen=i,r.data.multiLine=r.hasFieldFlag(4096),r.data.comb=r.hasFieldFlag(16777216)&&!r.hasFieldFlag(4096)&&!r.hasFieldFlag(m)&&!r.hasFieldFlag(1048576)&&0!==r.data.maxLen,r.data.doNotScroll=r.hasFieldFlag(8388608),r}return CR(t,MR),kR(t,[{key:"hasTextContent",get:function(){return!!this.appearance&&!this._needAppearances}},{key:"_getCombAppearance",value:function(e,t,r,A,n,i,a,o,s,c,g){var u,l=n/this.data.maxLen,h=this.getBorderAndBackgroundAppearances(g),I=[],f=QR(t.getCharPositions(r));try{for(f.s();!(u=f.n()).done;){var C=pR(u.value,2),B=C[0],Q=C[1];I.push("(".concat(Lt(r.substring(B,Q)),") Tj"))}}catch(e){f.e(e)}finally{f.f()}var E=I.join(" ".concat(Tt(l)," 0 Td "));return"/Tx BMC q ".concat(h,"BT ")+e+" 1 0 0 1 ".concat(Tt(a)," ").concat(Tt(o+s)," Tm ").concat(E)+" ET Q EMC"}},{key:"_getMultilineAppearance",value:function(e,t,r,A,n,i,a,o,s,c,g,u){for(var l=[],h=n-2*o,I={shift:0},f=0,C=t.length;f4&&void 0!==arguments[4]?arguments[4]:{};e=n.line||e;var i=n.glyphs||t.charsToGlyphs(e);if(i.length<=1)return[e];for(var a=n.positions||t.getCharPositions(e),o=r/1e3,s=[],c=-1,g=-1,u=-1,l=0,h=0,I=0,f=i.length;IA?(s.push(e.substring(l,B)),l=B,h=d,c=-1,u=-1):(h+=d,c=B,g=Q,u=I):h+d>A?-1!==c?(s.push(e.substring(l,g)),l=g,I=u+1,c=-1,h=0):(s.push(e.substring(l,B)),l=B,h=d):h+=d}return l0,r.data.options=[];var i=yt({dict:A,key:"Opt"});if(Array.isArray(i))for(var a=0,o=i.length;a=0&&h0?this.data.fieldValue[0]:null;return{id:this.data.id,value:t,defaultValue:this.data.defaultFieldValue,editable:!this.data.readOnly,name:this.data.fieldName,rect:this.data.rect,numItems:this.data.fieldValue.length,multipleSelection:this.data.multiSelect,hidden:this.data.hidden,actions:this.data.actions,items:this.data.options,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,rotation:this.rotation,type:e}}},{key:"amendSavedDict",value:function(e,t){var r;if(this.hasIndices){var A=null==e||null===(r=e.get(this.data.id))||void 0===r?void 0:r.value;Array.isArray(A)||(A=[A]);for(var n=[],i=this.data.options,a=0,o=0,s=i.length;av&&(v=D,m=k)}catch(e){w.e(e)}finally{w.f()}S=this._computeFontSize(p,l-2*g,m,E,-1),F=pR(S,2),d=F[0],y=F[1]}if(R=((x=y*Q)-y)/2,G=Math.floor(u/x),N=0,f.length>0&&(L=Math.min.apply(Math,f),U=Math.max.apply(Math,f),(N=Math.max(0,U-G+1))>L&&(N=L)),M=Math.min(N+G+1,I),J=["/Tx BMC q","1 1 ".concat(l," ").concat(u," re W n")],f.length){J.push("0.600006 0.756866 0.854904 rg"),H=QR(f);try{for(H.s();!(Y=H.n()).done;)P=Y.value,N<=P&&P1)){e.next=25;break}return e.abrupt("return",null);case 25:x=R.join(""),D.push(x),G=0,N=f.charsToGlyphs(x),L=QR(N);try{for(L.s();!(U=L.n()).done;)M=U.value,G+=M.width*b}catch(e){L.e(e)}finally{L.f()}k=Math.max(k,G);case 32:e.next=20;break;case 34:e.next=39;break;case 36:e.prev=36,e.t0=e.catch(18),S.e(e.t0);case 39:return e.prev=39,S.f(),e.finish(39);case 42:J=1,k>p&&(J=p/k),H=1,P=1*s,(O=(Y=Q*s)*w.length)>v&&(H=v/O),K=Math.min(J,H),T=s*K,e.t1=g,e.next=0===e.t1?54:90===e.t1?58:180===e.t1?62:270===e.t1?66:70;break;case 54:return W=[1,0,0,1],j=[c[0],c[1],p,v],q=[c[0],c[3]-P],e.abrupt("break",70);case 58:return W=[0,1,-1,0],j=[c[1],-c[2],p,v],q=[c[1],-c[0]-P],e.abrupt("break",70);case 62:return W=[-1,0,0,-1],j=[-c[2],-c[3],p,v],q=[-c[2],-c[1]-P],e.abrupt("break",70);case 66:return W=[0,-1,1,0],j=[-c[3],c[0],p,v],q=[-c[3],c[2]-P],e.abrupt("break",70);case 70:for((Z=["q","".concat(W.join(" ")," 0 0 cm"),"".concat(j.join(" ")," re W n"),"BT","".concat(pC(o,!0)),"0 Tc /Helv ".concat(Tt(T)," Tf")]).push("".concat(q.join(" ")," Td (").concat(Lt(D[0]),") Tj")),_=Tt(Y),X=1,V=D.length;X1&&void 0!==arguments[1]?arguments[1]:null;return e?!!this.data.isEditable&&(sR(AG,this,this.data.hasOwnCanvas),this.data.hasOwnCanvas=!0,!0):(this.data.hasOwnCanvas=(this,(t=AG).get(cR(t,this))),!(null!=r&&r.has(this.data.id)))}}],[{key:"createImage",value:(A=yR(ER().mark((function e(t,r){var A,n,i,a,o,s,c,g,u,l,h,I,f,C,B,Q,E,d,y;return ER().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A=t.width,n=t.height,i=new OffscreenCanvas(A,n),(a=i.getContext("2d",{alpha:!0})).drawImage(t,0,0),o=a.getImageData(0,0,A,n).data,s=new Uint32Array(o.buffer),(c=s.some(se.isLittleEndian?function(e){return e>>>24!=255}:function(e){return 255!=(255&e)}))&&(a.fillStyle="white",a.fillRect(0,0,A,n),a.drawImage(t,0,0)),g=i.convertToBlob({type:"image/jpeg",quality:1}).then((function(e){return e.arrayBuffer()})),u=Ue.get("XObject"),l=Ue.get("Image"),(h=new He(r)).set("Type",u),h.set("Subtype",l),h.set("BitsPerComponent",8),h.set("ColorSpace",Ue.get("DeviceRGB")),h.set("Filter",Ue.get("DCTDecode")),h.set("BBox",[0,0,A,n]),h.set("Width",A),h.set("Height",n),I=null,c){if(f=new Uint8Array(s.length),se.isLittleEndian)for(C=0,B=s.length;C>>24;else for(Q=0,E=s.length;Q=0&&o<=1?o:null,r}return CR(t,UR),kR(t)}();function aG(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function oG(e,t){for(var r=0;r=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}function EG(e,t,r,A,n,i,a){try{var o=e[i](a),s=o.value}catch(e){return void r(e)}o.done?t(s):Promise.resolve(s).then(A,n)}function dG(e){return function(){var t=this,r=arguments;return new Promise((function(A,n){var i=e.apply(t,r);function a(e){EG(i,A,n,a,o,"next",e)}function o(e){EG(i,A,n,a,o,"throw",e)}a(void 0)}))}}function yG(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var A,n,i,a,o=[],s=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(A=i.call(r)).done)&&(o.push(A.value),o.length!==t);s=!0);}catch(e){c=!0,n=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw n}}return o}}(e,t)||pG(e,t)||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.")}()}function pG(e,t){if(e){if("string"==typeof e)return vG(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)?vG(e,t):void 0}}function vG(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}(this._persistentRefsCache);try{for(t.s();!(e=t.n()).done;){var r=yG(e.value,2),A=r[0],n=r[1];this._cacheMap.set(A,n)}}catch(e){t.e(e)}finally{t.f()}}this._persistentRefsCache=null}},{key:"setStartXRef",value:function(e){this.startXRefQueue=[e]}},{key:"parse",value:function(){var e,t,r,A=arguments.length>0&&void 0!==arguments[0]&&arguments[0];A?(q("Indexing all PDF objects"),e=this.indexObjects()):e=this.readXRef(),e.assignXref(this),this.trailer=e;try{t=e.get("Encrypt")}catch(e){if(e instanceof Ct)throw e;q('XRef.parse - Invalid "Encrypt" reference: "'.concat(e,'".'))}if(t instanceof He){var n=e.get("ID"),i=null!=n&&n.length?n[0]:"";t.suppressEncryption=!0,this.encrypt=new KB(t,i,this.pdfManager.password)}try{r=e.get("Root")}catch(e){if(e instanceof Ct)throw e;q('XRef.parse - Invalid "Root" reference: "'.concat(e,'".'))}if(r instanceof He)try{if(r.get("Pages")instanceof He)return void(this.root=r)}catch(e){if(e instanceof Ct)throw e;q('XRef.parse - Invalid "Pages" reference: "'.concat(e,'".'))}if(!A)throw new Et;throw new $("Invalid Root reference.")}},{key:"processXRefTable",value:function(e){if("tableState"in this||(this.tableState={entryNum:0,streamPos:e.lexer.stream.pos,parserBuf1:e.buf1,parserBuf2:e.buf2}),!Te(this.readXRefTable(e),"trailer"))throw new re("Invalid XRef table: could not find trailer dictionary");var t=e.getObj();if(t instanceof He||!t.dict||(t=t.dict),!(t instanceof He))throw new re("Invalid XRef table: could not parse trailer dictionary");return delete this.tableState,t}},{key:"readXRefTable",value:function(e){var t,r=e.lexer.stream,A=this.tableState;for(r.pos=A.streamPos,e.buf1=A.parserBuf1,e.buf2=A.parserBuf2;;){if(!("firstEntryNum"in A)||!("entryCount"in A)){if(Te(t=e.getObj(),"trailer"))break;A.firstEntryNum=t,A.entryCount=e.getObj()}var n=A.firstEntryNum,i=A.entryCount;if(!Number.isInteger(n)||!Number.isInteger(i))throw new re("Invalid XRef table: wrong types in subsection header");for(var a=A.entryNum;a0;){var o=yG(a,2),s=o[0],c=o[1];if(!Number.isInteger(s)||!Number.isInteger(c))throw new re("Invalid XRef range fields: ".concat(s,", ").concat(c));if(!Number.isInteger(A)||!Number.isInteger(n)||!Number.isInteger(i))throw new re("Invalid XRef entry fields length: ".concat(s,", ").concat(c));for(var g=t.entryNum;g=e.length);)r+=String.fromCharCode(A),A=e[t];return r}function t(e,t,r){for(var A=r.length,n=e.length,i=0;t=A)break;t++,i++}return i}var r=/\\b(endobj|\\d+\\s+\\d+\\s+obj|xref|trailer\\s*<<)\\b/g,A=/\\b(startxref|\\d+\\s+\\d+\\s+obj)\\b/g,n=/^(\\d+)\\s+(\\d+)\\s+obj\\b/,i=new Uint8Array([116,114,97,105,108,101,114]),a=new Uint8Array([115,116,97,114,116,120,114,101,102]),o=new Uint8Array([47,88,82,101,102]);this.entries.length=0,this._cacheMap.clear();var s=this.stream;s.pos=0;for(var c=s.getBytes(),g=ne(c),u=c.length,l=s.start,h=[],I=[];l=u)break;f=c[l]}while(10!==f&&13!==f);else++l}for(var S=0,F=I;S0&&void 0!==arguments[0]&&arguments[0],t=this.stream,r=new Set;this.startXRefQueue.length;){try{var A=this.startXRefQueue[0];if(r.has(A)){q("readXRef - skipping XRef table since it was already parsed."),this.startXRefQueue.shift();continue}r.add(A),t.pos=A+t.start;var n=new Jo({lexer:new Oo(t),xref:this,allowStreams:!0}),i=n.getObj(),a=void 0;if(Te(i,"xref")){var o;a=this.processXRefTable(n),this.topDict||(this.topDict=a),i=a.get("XRefStm"),Number.isInteger(i)&&!this._xrefStms.has(i)&&(this._xrefStms.add(i),this.startXRefQueue.push(i),null!==(o=kG(SG,this))&&void 0!==o||bG(SG,this,i))}else{if(!Number.isInteger(i))throw new re("Invalid XRef stream header");if(!(Number.isInteger(n.getObj())&&Te(n.getObj(),"obj")&&(i=n.getObj())instanceof ze))throw new re("Invalid XRef stream");if(a=this.processXRefStream(i),this.topDict||(this.topDict=a),!a)throw new re("Failed to read XRef stream")}i=a.get("Prev"),Number.isInteger(i)?this.startXRefQueue.push(i):i instanceof Ye&&this.startXRefQueue.push(i.num)}catch(e){if(e instanceof Ct)throw e;T("(while reading XRef): "+e)}this.startXRefQueue.shift()}if(this.topDict)return this.topDict;if(!e)throw new Et}},{key:"lastXRefStreamPos",get:function(){var e;return null!==(e=kG(SG,this))&&void 0!==e?e:this._xrefStms.size>0?Math.max.apply(Math,function(e){return function(e){if(Array.isArray(e))return vG(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||pG(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(this._xrefStms)):null}},{key:"getEntry",value:function(e){var t=this.entries[e];return t&&!t.free&&t.offset?t:null}},{key:"fetchIfRef",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e instanceof Ye?this.fetch(e,t):e}},{key:"fetch",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!(e instanceof Ye))throw new Error("ref object is not a reference");var r=e.num,A=this._cacheMap.get(r);if(void 0!==A)return A instanceof He&&!A.objId&&(A.objId=e.toString()),A;var n=this.getEntry(r);if(null===n)return this._cacheMap.set(r,n),n;if(this._pendingRefs.has(e))return this._pendingRefs.remove(e),q("Ignoring circular reference: ".concat(e,".")),xe;this._pendingRefs.put(e);try{n=n.uncompressed?this.fetchUncompressed(e,n,t):this.fetchCompressed(e,n,t),this._pendingRefs.remove(e)}catch(t){throw this._pendingRefs.remove(e),t}return n instanceof He?n.objId=e.toString():n instanceof ze&&(n.dict.objId=e.toString()),n}},{key:"fetchUncompressed",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],A=e.gen,n=e.num;if(t.gen!==A){var i="Inconsistent generation in XRef: ".concat(e);if(this._generationFallback&&t.gen=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}function GG(e){return function(e){if(Array.isArray(e))return UG(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||LG(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function NG(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=LG(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function LG(e,t){if(e){if("string"==typeof e)return UG(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)?UG(e,t):void 0}}function UG(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r1&&void 0!==arguments[1]&&arguments[1],r=yt({dict:this.pageDict,key:e,getArray:t,stopWhenFound:!1});return Array.isArray(r)?1!==r.length&&r[0]instanceof He?He.merge({xref:this.xref,dictArray:r}):r[0]:r}},{key:"content",get:function(){return this.pageDict.getArray("Contents")}},{key:"resources",get:function(){var e=this._getInheritableProperty("Resources");return _(this,"resources",e instanceof He?e:He.empty)}},{key:"_getBoundingBox",value:function(e){if(this.xfaData)return this.xfaData.bbox;var t=Rt(this._getInheritableProperty(e,!0),null);if(t){if(t[2]-t[0]>0&&t[3]-t[1]>0)return t;q("Empty, or invalid, /".concat(e," entry."))}return null}},{key:"mediaBox",get:function(){return _(this,"mediaBox",this._getBoundingBox("MediaBox")||_G)}},{key:"cropBox",get:function(){return _(this,"cropBox",this._getBoundingBox("CropBox")||this.mediaBox)}},{key:"userUnit",get:function(){var e=this.pageDict.get("UserUnit");return("number"!=typeof e||e<=0)&&(e=1),_(this,"userUnit",e)}},{key:"view",get:function(){var e=this.cropBox,t=this.mediaBox;if(e!==t&&!Be(e,t)){var r=ge.intersect(e,t);if(r&&r[2]-r[0]>0&&r[3]-r[1]>0)return _(this,"view",r);q("Empty /CropBox and /MediaBox intersection.")}return _(this,"view",t)}},{key:"rotate",get:function(){var e=this._getInheritableProperty("Rotate")||0;return e%90!=0?e=0:e>=360?e%=360:e<0&&(e=(e%360+360)%360),_(this,"rotate",e)}},{key:"_onSubStreamError",value:function(e,t){if(!this.evaluatorOptions.ignoreErrors)throw e;q("getContentStream - ignoring sub-stream (".concat(t,'): "').concat(e,'".'))}},{key:"getContentStream",value:function(){var e=this;return this.pdfManager.ensure(this,"content").then((function(t){return t instanceof ze?t:Array.isArray(t)?new VA(t,e._onSubStreamError.bind(e)):new sr}))}},{key:"xfaData",get:function(){return _(this,"xfaData",this.xfaFactory?{bbox:this.xfaFactory.getBoundingBox(this.pageIndex)}:null)}},{key:"saveNewAnnotations",value:(A=JG(RG().mark((function e(t,r,A,n){var i,a,o,s,c,g,u,l,h,I,f,C,B,Q,E;return RG().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.xfaFactory){e.next=2;break}throw new Error("XFA: Cannot save new annotations.");case 2:return i=new eC({xref:this.xref,handler:t,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,systemFontCache:this.systemFontCache,options:this.evaluatorOptions}),a=new Oe,o=new Pe,e.next=7,ZG(XG,this,zG).call(this,A,a,o);case 7:return s=this.pageDict,c=this.annotations.filter((function(e){return!(e instanceof Ye&&a.has(e))})),e.next=11,SR.saveNewAnnotations(i,r,A,n);case 11:g=e.sent,u=NG(g.annotations);try{for(u.s();!(l=u.n()).done;)(h=l.value.ref)instanceof Ye&&!o.has(h)&&c.push(h)}catch(e){u.e(e)}finally{u.f()}return I=s.get("Annots"),s.set("Annots",c),f=[],e.next=19,iQ(this.ref,s,f,this.xref);case 19:I&&s.set("Annots",I),(C=g.dependencies).push.apply(C,[{ref:this.ref,data:f.join("")}].concat(GG(g.annotations))),B=NG(a);try{for(B.s();!(Q=B.n()).done;)E=Q.value,C.push({ref:E,data:null})}catch(e){B.e(e)}finally{B.f()}return e.abrupt("return",C);case 25:case"end":return e.stop()}}),e,this)}))),function(e,t,r,n){return A.apply(this,arguments)})},{key:"save",value:function(e,t,r){var A=new eC({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,systemFontCache:this.systemFontCache,options:this.evaluatorOptions});return this._parsedAnnotations.then((function(e){var n,i=[],a=NG(e);try{for(a.s();!(n=a.n()).done;){var o=n.value;i.push(o.save(A,t,r).catch((function(e){return q("save - ignoring annotation data during "+'"'.concat(t.name,'" task: "').concat(e,'".')),null})))}}catch(e){a.e(e)}finally{a.f()}return Promise.all(i).then((function(e){return e.filter((function(e){return!!e}))}))}))}},{key:"loadResources",value:function(e){var t=this;return this.resourcesPromise||(this.resourcesPromise=this.pdfManager.ensure(this,"resources")),this.resourcesPromise.then((function(){return new bE(t.resources,e,t.xref).load()}))}},{key:"getOperatorList",value:function(e){var t=this,r=e.handler,A=e.sink,n=e.task,i=e.intent,a=e.cacheKey,o=e.annotationStorage,s=void 0===o?null:o,c=e.modifiedIds,g=void 0===c?null:c,u=this.getContentStream(),l=this.loadResources(["ColorSpace","ExtGState","Font","Pattern","Properties","Shading","XObject"]),h=new eC({xref:this.xref,handler:r,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,systemFontCache:this.systemFontCache,options:this.evaluatorOptions}),I=this.xfaFactory?null:qt(s),f=null==I?void 0:I.get(this.pageIndex),C=Promise.resolve(null),B=null;if(f){var Q,E,y=this.pdfManager.ensureDoc("annotationGlobals"),p=new Set,v=NG(f);try{for(v.s();!(E=v.n()).done;){var m=E.value,w=m.bitmapId,b=m.bitmap;!w||b||p.has(w)||p.add(w)}}catch(e){v.e(e)}finally{v.f()}var k=this.evaluatorOptions.isOffscreenCanvasSupported;if(p.size>0){var D,S=f.slice(),F=NG(s);try{for(F.s();!(D=F.n()).done;){var x=xG(D.value,2),R=x[0],G=x[1];R.startsWith(d)&&G.bitmap&&p.has(G.bitmapId)&&S.push(G)}}catch(e){F.e(e)}finally{F.f()}Q=SR.generateImages(S,this.xref,k)}else Q=SR.generateImages(f,this.xref,k);B=new Pe,C=Promise.all([y,ZG(XG,this,zG).call(this,f,B,null)]).then((function(e){var t=xG(e,1)[0];return t?SR.printNewAnnotations(t,h,n,f,Q):null}))}var N=Promise.all([u,l]).then((function(e){var o=xG(e,1)[0],s=new kf(i,A);return r.send("StartRenderPage",{transparency:h.hasBlendModes(t.resources,t.nonBlendModesSet),pageIndex:t.pageIndex,cacheKey:a}),h.getOperatorList({stream:o,task:n,resources:t.resources,operatorList:s}).then((function(){return s}))}));return Promise.all([N,this._parsedAnnotations,C]).then((function(e){var t=xG(e,3),r=t[0],A=t[1],a=t[2];if(a){A=A.filter((function(e){return!(e.ref&&B.has(e.ref))}));for(var o=function(e,t){var r=a[e];if(r.refToReplace){var n=A.findIndex((function(e){return e.ref&&je(e.ref,r.refToReplace)}));n>=0&&(A.splice(n,1,r),a.splice(e--,1),t--)}c=e,u=t},c=0,u=a.length;c2&&void 0!==arguments[2]?arguments[2]:1024,A=arguments.length>3&&void 0!==arguments[3]&&arguments[3],n=t.length,i=e.peekBytes(r),a=i.length-n;if(a<=0)return!1;if(A)for(var o=n-1,s=i.length-1;s>=o;){for(var c=0;c=n)return e.pos+=s-o,!0;s--}else for(var g=0;g<=a;){for(var u=0;u=n)return e.pos+=g,!0;g++}return!1}var nN=new WeakSet,iN=function(){return qG((function e(t,r){if(KG(this,e),WG(this,nN),r.length<=0)throw new $("The PDF file is empty, i.e. its size is zero bytes.");this.pdfManager=t,this.stream=r,this.xref=new FG(r,t),this._pagePromises=new Map,this._version=null;var A={font:0};this._globalIdFactory=function(){return qG((function e(){KG(this,e)}),null,[{key:"getDocId",value:function(){return"g_".concat(t.docId)}},{key:"createFontId",value:function(){return"f".concat(++A.font)}},{key:"createObjId",value:function(){j("Abstract method \`createObjId\` called.")}},{key:"getPageObjId",value:function(){j("Abstract method \`getPageObjId\` called.")}}])}()}),[{key:"parse",value:function(e){this.xref.parse(e),this.catalog=new fE(this.pdfManager,this.xref)}},{key:"linearization",get:function(){var e=null;try{e=Ko.create(this.stream)}catch(e){if(e instanceof Ct)throw e;T(e)}return _(this,"linearization",e)}},{key:"startXRef",get:function(){var e=this.stream,t=0;if(this.linearization){if(e.reset(),AN(e,rN)){e.skip(6);for(var r=e.peekByte();Dt(r);)e.pos++,r=e.peekByte();t=e.pos-e.start}}else{for(var A=tN.length,n=!1,i=e.end;!n&&i>0;)(i-=1024-A)<0&&(i=0),e.pos=i,n=AN(e,tN,1024,!0);if(n){var a;e.skip(9);do{a=e.getByte()}while(Dt(a));for(var o="";a>=32&&a<=57;)o+=String.fromCharCode(a),a=e.getByte();t=parseInt(o,10),isNaN(t)&&(t=0)}}return _(this,"startXRef",t)}},{key:"checkHeader",value:function(){var e=this.stream;if(e.reset(),AN(e,eN)){e.moveStart(),e.skip(eN.length);for(var t,r="";(t=e.getByte())>32&&r.length<7;)r+=String.fromCharCode(t);It.test(r)?this._version=r:q("Invalid PDF header version: ".concat(r))}}},{key:"parseStartXRef",value:function(){this.xref.setStartXRef(this.startXRef)}},{key:"numPages",get:function(){return _(this,"numPages",this.catalog.hasActualNumPages?this.catalog.numPages:this.xfaFactory?this.xfaFactory.getNumPages():this.linearization?this.linearization.numPages:this.catalog.numPages)}},{key:"_hasOnlyDocumentSignatures",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return!!Array.isArray(e)&&e.every((function(e){if(!((e=t.xref.fetchIfRef(e))instanceof He))return!1;if(e.has("Kids"))return++r>10?(q("_hasOnlyDocumentSignatures: maximum recursion depth reached"),!1):t._hasOnlyDocumentSignatures(e.get("Kids"),r);var A=Ke(e.get("FT"),"Sig"),n=e.get("Rect"),i=Array.isArray(n)&&n.every((function(e){return 0===e}));return A&&i}))}},{key:"_xfaStreams",get:function(){var e=this.catalog.acroForm;if(!e)return null;var t=e.get("XFA"),r={"xdp:xdp":"",template:"",datasets:"",config:"",connectionSet:"",localeSet:"",stylesheet:"","/xdp:xdp":""};if(t instanceof ze&&!t.isEmpty)return r["xdp:xdp"]=t,r;if(!Array.isArray(t)||0===t.length)return null;for(var A=0,n=t.length;A0;e.hasFields=A;var n=t.get("XFA");e.hasXfa=Array.isArray(n)&&n.length>0||n instanceof ze&&!n.isEmpty;var i=!!(1&t.get("SigFlags")),a=i&&this._hasOnlyDocumentSignatures(r);e.hasAcroForm=A&&!a,e.hasSignatures=i}catch(e){if(e instanceof Ct)throw e;q('Cannot fetch form information: "'.concat(e,'".'))}return _(this,"formInfo",e)}},{key:"documentInfo",get:function(){var e,t={PDFFormatVersion:this.version,Language:this.catalog.lang,EncryptFilterName:this.xref.encrypt?this.xref.encrypt.filterName:null,IsLinearized:!!this.linearization,IsAcroFormPresent:this.formInfo.hasAcroForm,IsXFAPresent:this.formInfo.hasXfa,IsCollectionPresent:!!this.catalog.collection,IsSignaturesPresent:this.formInfo.hasSignatures};try{e=this.xref.trailer.get("Info")}catch(e){if(e instanceof Ct)throw e;T("The document information dictionary is invalid.")}if(!(e instanceof He))return _(this,"documentInfo",t);var r,A=NG(e.getKeys());try{for(A.s();!(r=A.n()).done;){var n=r.value,i=e.get(n);switch(n){case"Title":case"Author":case"Subject":case"Keywords":case"Creator":case"Producer":case"CreationDate":case"ModDate":if("string"==typeof i){t[n]=Ie(i);continue}break;case"Trapped":if(i instanceof Ue){t[n]=i;continue}break;default:var a=void 0;switch(typeof i){case"string":a=Ie(i);break;case"number":case"boolean":a=i;break;default:i instanceof Ue&&(a=i)}if(void 0===a){q('Bad value, for custom key "'.concat(n,'", in Info: ').concat(i,"."));continue}t.Custom||(t.Custom=Object.create(null)),t.Custom[n]=a;continue}q('Bad value, for key "'.concat(n,'", in Info: ').concat(i,"."))}}catch(e){A.e(e)}finally{A.f()}return _(this,"documentInfo",t)}},{key:"fingerprints",get:function(){function e(e){return"string"==typeof e&&e.length>0&&"\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0"!==e}function t(e){var t,r=[],A=NG(e);try{for(A.s();!(t=A.n()).done;){var n=t.value.toString(16);r.push(n.padStart(2,"0"))}}catch(e){A.e(e)}finally{A.f()}return r.join("")}var r,A,n=this.xref.trailer.get("ID");return Array.isArray(n)&&e(n[0])?(r=ie(n[0]),n[1]!==n[0]&&e(n[1])&&(A=ie(n[1]))):r=xB(this.stream.getByteRange(0,1024),0,1024),_(this,"fingerprints",[t(r),A?t(A):null])}},{key:"_getLinearizationPage",value:(n=JG(RG().mark((function e(t){var r,A,n,i,a,o;return RG().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=this.catalog,A=this.linearization,n=this.xref,i=Ye.get(A.objectNumberFirst,0),e.prev=2,e.next=5,n.fetchAsync(i);case 5:if(!((a=e.sent)instanceof He)){e.next=16;break}if(!((o=a.getRaw("Type"))instanceof Ye)){e.next=12;break}return e.next=11,n.fetchAsync(o);case 11:o=e.sent;case 12:if(!Ke(o,"Page")&&(a.has("Type")||a.has("Kids")||!a.has("Contents"))){e.next=16;break}return r.pageKidsCountCache.has(i)||r.pageKidsCountCache.put(i,1),r.pageIndexCache.has(i)||r.pageIndexCache.put(i,0),e.abrupt("return",[a,i]);case 16:throw new re("The Linearization dictionary doesn't point to a valid Page dictionary.");case 19:return e.prev=19,e.t0=e.catch(2),q('_getLinearizationPage: "'.concat(e.t0.message,'".')),e.abrupt("return",r.getPageDict(t));case 23:case"end":return e.stop()}}),e,this,[[2,19]])}))),function(e){return n.apply(this,arguments)})},{key:"getPage",value:function(e){var t=this,r=this._pagePromises.get(e);if(r)return r;var A,n=this.catalog,i=this.linearization,a=this.xfaFactory;return A=(A=a?Promise.resolve([He.empty,null]):(null==i?void 0:i.pageFirst)===e?this._getLinearizationPage(e):n.getPageDict(e)).then((function(r){var A=xG(r,2),i=A[0],o=A[1];return new VG({pdfManager:t.pdfManager,xref:t.xref,pageIndex:e,pageDict:i,ref:o,globalIdFactory:t._globalIdFactory,fontCache:n.fontCache,builtInCMapCache:n.builtInCMapCache,standardFontDataCache:n.standardFontDataCache,globalImageCache:n.globalImageCache,systemFontCache:n.systemFontCache,nonBlendModesSet:n.nonBlendModesSet,xfaFactory:a})})),this._pagePromises.set(e,A),A}},{key:"checkFirstPage",value:(A=JG(RG().mark((function e(){var t=arguments;return RG().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t.length>0&&void 0!==t[0]&&t[0])){e.next=3;break}return e.abrupt("return");case 3:return e.prev=3,e.next=6,this.getPage(0);case 6:e.next=15;break;case 8:if(e.prev=8,e.t0=e.catch(3),!(e.t0 instanceof Qt)){e.next=15;break}return this._pagePromises.delete(0),e.next=14,this.cleanup();case 14:throw new Et;case 15:case"end":return e.stop()}}),e,this,[[3,8]])}))),function(){return A.apply(this,arguments)})},{key:"checkLastPage",value:(r=JG(RG().mark((function e(){var t,r,A,n,i,a,o,s,c,g,u,l,h,I=arguments;return RG().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=I.length>0&&void 0!==I[0]&&I[0],r=this.catalog,A=this.pdfManager,r.setActualNumPages(),e.prev=3,e.next=6,Promise.all([A.ensureDoc("xfaFactory"),A.ensureDoc("linearization"),A.ensureCatalog("numPages")]);case 6:if(!this.xfaFactory){e.next=10;break}return e.abrupt("return");case 10:n=this.linearization?this.linearization.numPages:r.numPages;case 11:if(Number.isInteger(n)){e.next=15;break}throw new re("Page count is not an integer.");case 15:if(!(n<=1)){e.next=17;break}return e.abrupt("return");case 17:return e.next=19,this.getPage(n-1);case 19:e.next=44;break;case 21:return e.prev=21,e.t0=e.catch(3),this._pagePromises.delete(n-1),e.next=26,this.cleanup();case 26:if(!(e.t0 instanceof Qt)||t){e.next=28;break}throw new Et;case 28:return q("checkLastPage - invalid /Pages tree /Count: ".concat(n,".")),e.prev=29,e.next=32,r.getAllPageDicts(t);case 32:i=e.sent,e.next=41;break;case 35:if(e.prev=35,e.t1=e.catch(29),!(e.t1 instanceof Qt)||t){e.next=39;break}throw new Et;case 39:return r.setActualNumPages(1),e.abrupt("return");case 41:a=NG(i);try{for(a.s();!(o=a.n()).done;)s=xG(o.value,2),c=s[0],g=xG(s[1],2),u=g[0],l=g[1],h=void 0,u instanceof Error?(h=Promise.reject(u)).catch((function(){})):h=Promise.resolve(new VG({pdfManager:A,xref:this.xref,pageIndex:c,pageDict:u,ref:l,globalIdFactory:this._globalIdFactory,fontCache:r.fontCache,builtInCMapCache:r.builtInCMapCache,standardFontDataCache:r.standardFontDataCache,globalImageCache:r.globalImageCache,systemFontCache:r.systemFontCache,nonBlendModesSet:r.nonBlendModesSet,xfaFactory:null})),this._pagePromises.set(c,h)}catch(e){a.e(e)}finally{a.f()}r.setActualNumPages(i.size);case 44:case"end":return e.stop()}}),e,this,[[3,21],[29,35]])}))),function(){return r.apply(this,arguments)})},{key:"fontFallback",value:function(e,t){return this.catalog.fontFallback(e,t)}},{key:"cleanup",value:(t=JG(RG().mark((function e(){var t,r=arguments;return RG().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=r.length>0&&void 0!==r[0]&&r[0],e.abrupt("return",this.catalog?this.catalog.cleanup(t):JC());case 2:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"fieldObjects",get:function(){var e=this,t=this.pdfManager.ensureDoc("formInfo").then(function(){var t=JG(RG().mark((function t(r){var A,n,i,a,o,s,c,g,u,l,h,I,f,C,B;return RG().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r.hasFields){t.next=2;break}return t.abrupt("return",null);case 2:return t.next=4,Promise.all([e.pdfManager.ensureDoc("annotationGlobals"),e.pdfManager.ensureCatalog("acroForm")]);case 4:if(A=t.sent,n=xG(A,2),i=n[0],a=n[1],i){t.next=10;break}return t.abrupt("return",null);case 10:return o=new Pe,s=Object.create(null),c=new Map,g=new Oe,t.t0=NG,t.next=17,a.getAsync("Fields");case 17:t.t1=t.sent,u=(0,t.t0)(t.t1),t.prev=19,u.s();case 21:if((l=u.n()).done){t.next=27;break}return h=l.value,t.next=25,ZG(nN,e,aN).call(e,"",null,h,c,i,o,g);case 25:t.next=21;break;case 27:t.next=32;break;case 29:t.prev=29,t.t2=t.catch(19),u.e(t.t2);case 32:return t.prev=32,u.f(),t.finish(32);case 35:I=[],f=NG(c),t.prev=37,B=RG().mark((function e(){var t,r,A;return RG().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=xG(C.value,2),r=t[0],A=t[1],I.push(Promise.all(A).then((function(e){(e=e.filter((function(e){return!!e}))).length>0&&(s[r]=e)})));case 2:case"end":return e.stop()}}),e)})),f.s();case 40:if((C=f.n()).done){t.next=44;break}return t.delegateYield(B(),"t3",42);case 42:t.next=40;break;case 44:t.next=49;break;case 46:t.prev=46,t.t4=t.catch(37),f.e(t.t4);case 49:return t.prev=49,f.f(),t.finish(49);case 52:return t.next=54,Promise.all(I);case 54:return t.abrupt("return",{allFields:s,orphanFields:g});case 55:case"end":return t.stop()}}),t,null,[[19,29,32,35],[37,46,49,52]])})));return function(e){return t.apply(this,arguments)}}());return _(this,"fieldObjects",t)}},{key:"hasJSActions",get:function(){return _(this,"hasJSActions",this.pdfManager.ensureDoc("_parseHasJSActions"))}},{key:"_parseHasJSActions",value:(e=JG(RG().mark((function e(){var t,r,A,n;return RG().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.all([this.pdfManager.ensureCatalog("jsActions"),this.pdfManager.ensureDoc("fieldObjects")]);case 2:if(t=e.sent,r=xG(t,2),A=r[0],n=r[1],!A){e.next=8;break}return e.abrupt("return",!0);case 8:if(!n){e.next=10;break}return e.abrupt("return",Object.values(n.allFields).some((function(e){return e.some((function(e){return null!==e.actions}))})));case 10:return e.abrupt("return",!1);case 11:case"end":return e.stop()}}),e,this)}))),function(){return e.apply(this,arguments)})},{key:"calculationOrderIds",get:function(){var e,t=null===(e=this.catalog.acroForm)||void 0===e?void 0:e.get("CO");if(!Array.isArray(t)||0===t.length)return _(this,"calculationOrderIds",null);var r,A=[],n=NG(t);try{for(n.s();!(r=n.n()).done;){var i=r.value;i instanceof Ye&&A.push(i.toString())}}catch(e){n.e(e)}finally{n.f()}return _(this,"calculationOrderIds",A.length?A:null)}},{key:"annotationGlobals",get:function(){return _(this,"annotationGlobals",SR.createGlobals(this.pdfManager))}}]);var e,t,r,A,n,i,a,o}();function aN(e,t,r,A,n,i,a){return oN.apply(this,arguments)}function oN(){return(oN=JG(RG().mark((function e(t,r,A,n,i,a,o){var s,c,g,u,l,h,I,f,C;return RG().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s=this.xref,A instanceof Ye&&!a.has(A)){e.next=3;break}return e.abrupt("return");case 3:return a.put(A),e.next=6,s.fetchAsync(A);case 6:if((c=e.sent)instanceof He){e.next=9;break}return e.abrupt("return");case 9:if(!c.has("T")){e.next=18;break}return e.t0=Ie,e.next=13,c.getAsync("T");case 13:e.t1=e.sent,g=(0,e.t0)(e.t1),t=""===t?g:"".concat(t,".").concat(g),e.next=39;break;case 18:u=c;case 19:if(!((u=u.getRaw("Parent")||r)instanceof Ye)){e.next=27;break}if(!a.has(u)){e.next=24;break}return e.abrupt("break",39);case 24:return e.next=26,s.fetchAsync(u);case 26:u=e.sent;case 27:if(u instanceof He){e.next=29;break}return e.abrupt("break",39);case 29:if(!u.has("T")){e.next=37;break}return e.t2=Ie,e.next=33,u.getAsync("T");case 33:return e.t3=e.sent,l=(0,e.t2)(e.t3),t=""===t?l:"".concat(t,".").concat(l),e.abrupt("break",39);case 37:e.next=19;break;case 39:if(r&&!c.has("Parent")&&Ke(c.get("Subtype"),"Widget")&&o.put(A,r),n.has(t)||n.set(t,[]),n.get(t).push(SR.create(s,A,i,null,!0,o,null).then((function(e){return null==e?void 0:e.getFieldObject()})).catch((function(e){return q('#collectFieldObjects: "'.concat(e,'".')),null}))),c.has("Kids")){e.next=44;break}return e.abrupt("return");case 44:return e.next=46,c.getAsync("Kids");case 46:if(h=e.sent,!Array.isArray(h)){e.next=65;break}I=NG(h),e.prev=49,I.s();case 51:if((f=I.n()).done){e.next=57;break}return C=f.value,e.next=55,ZG(nN,this,aN).call(this,t,A,C,n,i,a,o);case 55:e.next=51;break;case 57:e.next=62;break;case 59:e.prev=59,e.t4=e.catch(49),I.e(e.t4);case 62:return e.prev=62,I.f(),e.finish(62);case 65:case"end":return e.stop()}}),e,this,[[49,59,62,65]])})))).apply(this,arguments)}function sN(e,t,r){return t=gN(t),function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,cN()?Reflect.construct(t,r||[],gN(e).constructor):t.apply(e,r))}function cN(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(cN=function(){return!!e})()}function gN(e){return gN=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},gN(e)}function uN(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&lN(e,t)}function lN(e,t){return lN=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},lN(e,t)}function hN(){hN=function(){return t};var e,t={},r=Object.prototype,A=r.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,r){return e[t]=r}}function g(e,t,r,A){var i=t&&t.prototype instanceof B?t:B,a=Object.create(i.prototype),o=new F(A||[]);return n(a,"_invoke",{value:b(e,r,o)}),a}function u(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=g;var l="suspendedStart",h="suspendedYield",I="executing",f="completed",C={};function B(){}function Q(){}function E(){}var d={};c(d,a,(function(){return this}));var y=Object.getPrototypeOf,p=y&&y(y(x([])));p&&p!==r&&A.call(p,a)&&(d=p);var v=E.prototype=B.prototype=Object.create(d);function m(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function r(n,i,a,o){var s=u(e[n],e,i);if("throw"!==s.type){var c=s.arg,g=c.value;return g&&"object"==typeof g&&A.call(g,"__await")?t.resolve(g.__await).then((function(e){r("next",e,a,o)}),(function(e){r("throw",e,a,o)})):t.resolve(g).then((function(e){c.value=e,a(c)}),(function(e){return r("throw",e,a,o)}))}o(s.arg)}var i;n(this,"_invoke",{value:function(e,A){function n(){return new t((function(t,n){r(e,A,t,n)}))}return i=i?i.then(n,n):n()}})}function b(t,r,A){var n=l;return function(i,a){if(n===I)throw Error("Generator is already running");if(n===f){if("throw"===i)throw a;return{value:e,done:!0}}for(A.method=i,A.arg=a;;){var o=A.delegate;if(o){var s=k(o,A);if(s){if(s===C)continue;return s}}if("next"===A.method)A.sent=A._sent=A.arg;else if("throw"===A.method){if(n===l)throw n=f,A.arg;A.dispatchException(A.arg)}else"return"===A.method&&A.abrupt("return",A.arg);n=I;var c=u(t,r,A);if("normal"===c.type){if(n=A.done?f:h,c.arg===C)continue;return{value:c.arg,done:A.done}}"throw"===c.type&&(n=f,A.method="throw",A.arg=c.arg)}}}function k(t,r){var A=r.method,n=t.iterator[A];if(n===e)return r.delegate=null,"throw"===A&&t.iterator.return&&(r.method="return",r.arg=e,k(t,r),"throw"===r.method)||"return"!==A&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+A+"' method")),C;var i=u(n,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,C;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,C):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,C)}function D(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function F(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(D,this),this.reset(!0)}function x(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,i=function r(){for(;++n=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}function IN(e,t,r,A,n,i,a){try{var o=e[i](a),s=o.value}catch(e){return void r(e)}o.done?t(s):Promise.resolve(s).then(A,n)}function fN(e){return function(){var t=this,r=arguments;return new Promise((function(A,n){var i=e.apply(t,r);function a(e){IN(i,A,n,a,o,"next",e)}function o(e){IN(i,A,n,a,o,"throw",e)}a(void 0)}))}}function CN(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function BN(e,t){for(var r=0;r0&&void 0!==arguments[0]&&arguments[0];return this.pdfDocument.cleanup(e)}},{key:"ensure",value:(e=fN(hN().mark((function e(t,r,A){return hN().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:j("Abstract method \`ensure\` called");case 1:case"end":return e.stop()}}),e)}))),function(t,r,A){return e.apply(this,arguments)})},{key:"requestRange",value:function(e,t){j("Abstract method \`requestRange\` called")}},{key:"requestLoadedStream",value:function(){j("Abstract method \`requestLoadedStream\` called")}},{key:"sendProgressiveData",value:function(e){j("Abstract method \`sendProgressiveData\` called")}},{key:"updatePassword",value:function(e){this._password=e}},{key:"terminate",value:function(e){j("Abstract method \`terminate\` called")}}]);var e}(),yN=function(e){function t(e){var r;CN(this,t),r=sN(this,t,[e]);var A=new ar(e.source);return r.pdfDocument=new iN(r,A),r._loadedStreamPromise=Promise.resolve(A),r}return uN(t,dN),QN(t,[{key:"ensure",value:(r=fN(hN().mark((function e(t,r,A){var n;return hN().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("function"!=typeof(n=t[r])){e.next=3;break}return e.abrupt("return",n.apply(t,A));case 3:return e.abrupt("return",n);case 4:case"end":return e.stop()}}),e)}))),function(e,t,A){return r.apply(this,arguments)})},{key:"requestRange",value:function(e,t){return Promise.resolve()}},{key:"requestLoadedStream",value:function(){return this._loadedStreamPromise}},{key:"terminate",value:function(e){}}]);var r}(),pN=function(e){function t(e){var r;return CN(this,t),(r=sN(this,t,[e])).streamManager=new dr(e.source,{msgHandler:e.handler,length:e.length,disableAutoFetch:e.disableAutoFetch,rangeChunkSize:e.rangeChunkSize}),r.pdfDocument=new iN(r,r.streamManager.getStream()),r}return uN(t,dN),QN(t,[{key:"ensure",value:(r=fN(hN().mark((function e(t,r,A){var n;return hN().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,"function"!=typeof(n=t[r])){e.next=4;break}return e.abrupt("return",n.apply(t,A));case 4:return e.abrupt("return",n);case 7:if(e.prev=7,e.t0=e.catch(0),e.t0 instanceof Ct){e.next=11;break}throw e.t0;case 11:return e.next=13,this.requestRange(e.t0.begin,e.t0.end);case 13:return e.abrupt("return",this.ensure(t,r,A));case 14:case"end":return e.stop()}}),e,this,[[0,7]])}))),function(e,t,A){return r.apply(this,arguments)})},{key:"requestRange",value:function(e,t){return this.streamManager.requestRange(e,t)}},{key:"requestLoadedStream",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this.streamManager.requestAllChunks(e)}},{key:"sendProgressiveData",value:function(e){this.streamManager.onReceiveData({chunk:e})}},{key:"terminate",value:function(e){this.streamManager.abort(e)}}]);var r}();function vN(){vN=function(){return t};var e,t={},r=Object.prototype,A=r.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,r){return e[t]=r}}function g(e,t,r,A){var i=t&&t.prototype instanceof B?t:B,a=Object.create(i.prototype),o=new F(A||[]);return n(a,"_invoke",{value:b(e,r,o)}),a}function u(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=g;var l="suspendedStart",h="suspendedYield",I="executing",f="completed",C={};function B(){}function Q(){}function E(){}var d={};c(d,a,(function(){return this}));var y=Object.getPrototypeOf,p=y&&y(y(x([])));p&&p!==r&&A.call(p,a)&&(d=p);var v=E.prototype=B.prototype=Object.create(d);function m(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function r(n,i,a,o){var s=u(e[n],e,i);if("throw"!==s.type){var c=s.arg,g=c.value;return g&&"object"==typeof g&&A.call(g,"__await")?t.resolve(g.__await).then((function(e){r("next",e,a,o)}),(function(e){r("throw",e,a,o)})):t.resolve(g).then((function(e){c.value=e,a(c)}),(function(e){return r("throw",e,a,o)}))}o(s.arg)}var i;n(this,"_invoke",{value:function(e,A){function n(){return new t((function(t,n){r(e,A,t,n)}))}return i=i?i.then(n,n):n()}})}function b(t,r,A){var n=l;return function(i,a){if(n===I)throw Error("Generator is already running");if(n===f){if("throw"===i)throw a;return{value:e,done:!0}}for(A.method=i,A.arg=a;;){var o=A.delegate;if(o){var s=k(o,A);if(s){if(s===C)continue;return s}}if("next"===A.method)A.sent=A._sent=A.arg;else if("throw"===A.method){if(n===l)throw n=f,A.arg;A.dispatchException(A.arg)}else"return"===A.method&&A.abrupt("return",A.arg);n=I;var c=u(t,r,A);if("normal"===c.type){if(n=A.done?f:h,c.arg===C)continue;return{value:c.arg,done:A.done}}"throw"===c.type&&(n=f,A.method="throw",A.arg=c.arg)}}}function k(t,r){var A=r.method,n=t.iterator[A];if(n===e)return r.delegate=null,"throw"===A&&t.iterator.return&&(r.method="return",r.arg=e,k(t,r),"throw"===r.method)||"return"!==A&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+A+"' method")),C;var i=u(n,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,C;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,C):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,C)}function D(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function F(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(D,this),this.reset(!0)}function x(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,i=function r(){for(;++n=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}function mN(e,t,r,A,n,i,a){try{var o=e[i](a),s=o.value}catch(e){return void r(e)}o.done?t(s):Promise.resolve(s).then(A,n)}function wN(e,t){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:1,a=arguments.length>2?arguments[2]:void 0;if(!this.isCancelled){var o=this.desiredSize;this.desiredSize-=i,o>0&&this.desiredSize<=0&&(this.sinkCapability=Promise.withResolvers(),this.ready=this.sinkCapability.promise),n.postMessage({sourceName:r,targetName:A,stream:4,streamId:t,chunk:e},a)}},close(){this.isCancelled||(this.isCancelled=!0,n.postMessage({sourceName:r,targetName:A,stream:3,streamId:t}),delete i.streamSinks[t])},error(e){W(e instanceof Error,"error must have a valid reason"),this.isCancelled||(this.isCancelled=!0,n.postMessage({sourceName:r,targetName:A,stream:5,streamId:t,reason:DN(e)}))},sinkCapability:Promise.withResolvers(),onPull:null,onCancel:null,isCancelled:!1,desiredSize:e.desiredSize,ready:null};o.sinkCapability.resolve(),o.ready=o.sinkCapability.promise,this.streamSinks[t]=o,new Promise((function(t){t(a(e.data,o))})).then((function(){n.postMessage({sourceName:r,targetName:A,stream:8,streamId:t,success:!0})}),(function(e){n.postMessage({sourceName:r,targetName:A,stream:8,streamId:t,reason:DN(e)})}))}function RN(e){var t=e.streamId,r=this.sourceName,A=e.sourceName,n=this.comObj,i=this.streamControllers[t],a=this.streamSinks[t];switch(e.stream){case 8:e.success?i.startCall.resolve():i.startCall.reject(DN(e.reason));break;case 7:e.success?i.pullCall.resolve():i.pullCall.reject(DN(e.reason));break;case 6:if(!a){n.postMessage({sourceName:r,targetName:A,stream:7,streamId:t,success:!0});break}a.desiredSize<=0&&e.desiredSize>0&&a.sinkCapability.resolve(),a.desiredSize=e.desiredSize,new Promise((function(e){var t;e(null===(t=a.onPull)||void 0===t?void 0:t.call(a))})).then((function(){n.postMessage({sourceName:r,targetName:A,stream:7,streamId:t,success:!0})}),(function(e){n.postMessage({sourceName:r,targetName:A,stream:7,streamId:t,reason:DN(e)})}));break;case 4:if(W(i,"enqueue should have stream controller"),i.isClosed)break;i.controller.enqueue(e.chunk);break;case 3:if(W(i,"close should have stream controller"),i.isClosed)break;i.isClosed=!0,i.controller.close(),kN(SN,this,GN).call(this,i,t);break;case 5:W(i,"error should have stream controller"),i.controller.error(DN(e.reason)),kN(SN,this,GN).call(this,i,t);break;case 2:e.success?i.cancelCall.resolve():i.cancelCall.reject(DN(e.reason)),kN(SN,this,GN).call(this,i,t);break;case 1:if(!a)break;new Promise((function(t){var r;t(null===(r=a.onCancel)||void 0===r?void 0:r.call(a,DN(e.reason)))})).then((function(){n.postMessage({sourceName:r,targetName:A,stream:2,streamId:t,success:!0})}),(function(e){n.postMessage({sourceName:r,targetName:A,stream:2,streamId:t,reason:DN(e)})})),a.sinkCapability.reject(DN(e.reason)),a.isCancelled=!0,delete this.streamSinks[t];break;default:throw new Error("Unexpected stream case")}}function GN(e,t){return NN.apply(this,arguments)}function NN(){var e;return e=vN().mark((function e(t,r){var A,n,i;return vN().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.allSettled([null===(A=t.startCall)||void 0===A?void 0:A.promise,null===(n=t.pullCall)||void 0===n?void 0:n.promise,null===(i=t.cancelCall)||void 0===i?void 0:i.promise]);case 2:delete this.streamControllers[r];case 3:case"end":return e.stop()}}),e,this)})),NN=function(){var t=this,r=arguments;return new Promise((function(A,n){var i=e.apply(t,r);function a(e){mN(i,A,n,a,o,"next",e)}function o(e){mN(i,A,n,a,o,"throw",e)}a(void 0)}))},NN.apply(this,arguments)}function LN(){LN=function(){return t};var e,t={},r=Object.prototype,A=r.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,r){return e[t]=r}}function g(e,t,r,A){var i=t&&t.prototype instanceof B?t:B,a=Object.create(i.prototype),o=new F(A||[]);return n(a,"_invoke",{value:b(e,r,o)}),a}function u(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=g;var l="suspendedStart",h="suspendedYield",I="executing",f="completed",C={};function B(){}function Q(){}function E(){}var d={};c(d,a,(function(){return this}));var y=Object.getPrototypeOf,p=y&&y(y(x([])));p&&p!==r&&A.call(p,a)&&(d=p);var v=E.prototype=B.prototype=Object.create(d);function m(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function r(n,i,a,o){var s=u(e[n],e,i);if("throw"!==s.type){var c=s.arg,g=c.value;return g&&"object"==typeof g&&A.call(g,"__await")?t.resolve(g.__await).then((function(e){r("next",e,a,o)}),(function(e){r("throw",e,a,o)})):t.resolve(g).then((function(e){c.value=e,a(c)}),(function(e){return r("throw",e,a,o)}))}o(s.arg)}var i;n(this,"_invoke",{value:function(e,A){function n(){return new t((function(t,n){r(e,A,t,n)}))}return i=i?i.then(n,n):n()}})}function b(t,r,A){var n=l;return function(i,a){if(n===I)throw Error("Generator is already running");if(n===f){if("throw"===i)throw a;return{value:e,done:!0}}for(A.method=i,A.arg=a;;){var o=A.delegate;if(o){var s=k(o,A);if(s){if(s===C)continue;return s}}if("next"===A.method)A.sent=A._sent=A.arg;else if("throw"===A.method){if(n===l)throw n=f,A.arg;A.dispatchException(A.arg)}else"return"===A.method&&A.abrupt("return",A.arg);n=I;var c=u(t,r,A);if("normal"===c.type){if(n=A.done?f:h,c.arg===C)continue;return{value:c.arg,done:A.done}}"throw"===c.type&&(n=f,A.method="throw",A.arg=c.arg)}}}function k(t,r){var A=r.method,n=t.iterator[A];if(n===e)return r.delegate=null,"throw"===A&&t.iterator.return&&(r.method="return",r.arg=e,k(t,r),"throw"===r.method)||"return"!==A&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+A+"' method")),C;var i=u(n,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,C;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,C):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,C)}function D(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function F(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(D,this),this.reset(!0)}function x(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,i=function r(){for(;++n=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}function UN(e,t,r,A,n,i,a){try{var o=e[i](a),s=o.value}catch(e){return void r(e)}o.done?t(s):Promise.resolve(s).then(A,n)}function MN(e){return function(){var t=this,r=arguments;return new Promise((function(A,n){var i=e.apply(t,r);function a(e){UN(i,A,n,a,o,"next",e)}function o(e){UN(i,A,n,a,o,"throw",e)}a(void 0)}))}}function JN(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}(this._rangeRequestReaders.slice(0));try{for(A.s();!(r=A.n()).done;)r.value.cancel(e)}catch(e){A.e(e)}finally{A.f()}}}])}(),TN=function(){return PN((function e(t){var r=this;HN(this,e),this._msgHandler=t,this.onProgress=null,this._contentLength=null,this._isRangeSupported=!1,this._isStreamingSupported=!1;var A=this._msgHandler.sendWithStream("GetReader");this._reader=A.getReader(),this._headersReady=this._msgHandler.sendWithPromise("ReaderHeadersReady").then((function(e){r._isStreamingSupported=e.isStreamingSupported,r._isRangeSupported=e.isRangeSupported,r._contentLength=e.contentLength}))}),[{key:"headersReady",get:function(){return this._headersReady}},{key:"contentLength",get:function(){return this._contentLength}},{key:"isStreamingSupported",get:function(){return this._isStreamingSupported}},{key:"isRangeSupported",get:function(){return this._isRangeSupported}},{key:"read",value:(e=MN(LN().mark((function e(){var t,r;return LN().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._reader.read();case 2:if(t=e.sent,r=t.value,!t.done){e.next=7;break}return e.abrupt("return",{value:void 0,done:!0});case 7:return e.abrupt("return",{value:r.buffer,done:!1});case 8:case"end":return e.stop()}}),e,this)}))),function(){return e.apply(this,arguments)})},{key:"cancel",value:function(e){this._reader.cancel(e)}}]);var e}(),qN=function(){return PN((function e(t,r,A){HN(this,e),this._msgHandler=A,this.onProgress=null;var n=this._msgHandler.sendWithStream("GetRangeReader",{begin:t,end:r});this._reader=n.getReader()}),[{key:"isStreamingSupported",get:function(){return!1}},{key:"read",value:(e=MN(LN().mark((function e(){var t,r;return LN().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._reader.read();case 2:if(t=e.sent,r=t.value,!t.done){e.next=7;break}return e.abrupt("return",{value:void 0,done:!0});case 7:return e.abrupt("return",{value:r.buffer,done:!1});case 8:case"end":return e.stop()}}),e,this)}))),function(){return e.apply(this,arguments)})},{key:"cancel",value:function(e){this._reader.cancel(e)}}]);var e}();function jN(){jN=function(){return t};var e,t={},r=Object.prototype,A=r.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,r){return e[t]=r}}function g(e,t,r,A){var i=t&&t.prototype instanceof B?t:B,a=Object.create(i.prototype),o=new F(A||[]);return n(a,"_invoke",{value:b(e,r,o)}),a}function u(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=g;var l="suspendedStart",h="suspendedYield",I="executing",f="completed",C={};function B(){}function Q(){}function E(){}var d={};c(d,a,(function(){return this}));var y=Object.getPrototypeOf,p=y&&y(y(x([])));p&&p!==r&&A.call(p,a)&&(d=p);var v=E.prototype=B.prototype=Object.create(d);function m(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function r(n,i,a,o){var s=u(e[n],e,i);if("throw"!==s.type){var c=s.arg,g=c.value;return g&&"object"==typeof g&&A.call(g,"__await")?t.resolve(g.__await).then((function(e){r("next",e,a,o)}),(function(e){r("throw",e,a,o)})):t.resolve(g).then((function(e){c.value=e,a(c)}),(function(e){return r("throw",e,a,o)}))}o(s.arg)}var i;n(this,"_invoke",{value:function(e,A){function n(){return new t((function(t,n){r(e,A,t,n)}))}return i=i?i.then(n,n):n()}})}function b(t,r,A){var n=l;return function(i,a){if(n===I)throw Error("Generator is already running");if(n===f){if("throw"===i)throw a;return{value:e,done:!0}}for(A.method=i,A.arg=a;;){var o=A.delegate;if(o){var s=k(o,A);if(s){if(s===C)continue;return s}}if("next"===A.method)A.sent=A._sent=A.arg;else if("throw"===A.method){if(n===l)throw n=f,A.arg;A.dispatchException(A.arg)}else"return"===A.method&&A.abrupt("return",A.arg);n=I;var c=u(t,r,A);if("normal"===c.type){if(n=A.done?f:h,c.arg===C)continue;return{value:c.arg,done:A.done}}"throw"===c.type&&(n=f,A.method="throw",A.arg=c.arg)}}}function k(t,r){var A=r.method,n=t.iterator[A];if(n===e)return r.delegate=null,"throw"===A&&t.iterator.return&&(r.method="return",r.arg=e,k(t,r),"throw"===r.method)||"return"!==A&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+A+"' method")),C;var i=u(n,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,C;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,C):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,C)}function D(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function F(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(D,this),this.reset(!0)}function x(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,i=function r(){for(;++n=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=A.call(a,"catchLoc"),c=A.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&A.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var A=r.completion;if("throw"===A.type){var n=A.arg;S(r)}return n}}throw Error("illegal catch attempt")},delegateYield:function(t,r,A){return this.delegate={iterator:x(t),resultName:r,nextLoc:A},"next"===this.method&&(this.arg=e),C}},t}function WN(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=_N(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var A=0,n=function(){};return{s:n,n:function(){return A>=e.length?{done:!0}:{done:!1,value:e[A++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){o=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(o)throw i}}}}function ZN(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var A,n,i,a,o=[],s=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(A=i.call(r)).done)&&(o.push(A.value),o.length!==t);s=!0);}catch(e){c=!0,n=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw n}}return o}}(e,t)||_N(e,t)||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.")}()}function _N(e,t){if(e){if("string"==typeof e)return XN(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)?XN(e,t):void 0}}function XN(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,A=Array(t);r=S.INFOS?Date.now():0;r.getOperatorList({handler:I,sink:t,task:n,intent:e.intent,cacheKey:e.cacheKey,annotationStorage:e.annotationStorage,modifiedIds:e.modifiedIds}).then((function(e){B(n),i&&T("page=".concat(A+1," - getOperatorList: time=")+"".concat(Date.now()-i,"ms, len=").concat(e.length)),t.close()}),(function(e){B(n),n.terminated||t.error(e)}))}))})),I.on("GetTextContent",(function(e,t){var A=e.pageIndex,n=e.includeMarkedContent,i=e.disableNormalization;r.getPage(A).then((function(e){var r=new nL("GetTextContent: page "+A);C(r);var o=a>=S.INFOS?Date.now():0;e.extractTextContent({handler:I,task:r,sink:t,includeMarkedContent:n,disableNormalization:i}).then((function(){B(r),o&&T("page=".concat(A+1," - getTextContent: time=")+"".concat(Date.now()-o,"ms")),t.close()}),(function(e){B(r),r.terminated||t.error(e)}))}))})),I.on("GetStructTree",(function(e){return r.getPage(e.pageIndex).then((function(e){return r.ensure(e,"getStructTree")}))})),I.on("FontFallback",(function(e){return r.fontFallback(e.id,I)})),I.on("Cleanup",(function(e){return r.cleanup(!0)})),I.on("Terminate",(function(e){A=!0;var t=[];if(r){r.terminate(new Ae("Worker was terminated."));var a=r.cleanup();t.push(a),r=null}else JC();n&&n(new Ae("Worker was terminated."));var o,s=WN(i);try{for(s.s();!(o=s.n()).done;){var c=o.value;t.push(c.finished),c.terminate()}}catch(e){s.e(e)}finally{s.f()}return Promise.all(t).then((function(){I.destroy(),I=null}))})),I.on("Ready",(function(t){!function(e){function t(e){f(),I.send("GetDoc",{pdfInfo:e})}function i(e){if(f(),e instanceof V){var t=new nL("PasswordException: response ".concat(e.code));C(t),I.sendWithPromise("PasswordRequest",e).then((function(e){var A=e.password;B(t),r.updatePassword(A),a()})).catch((function(){B(t),I.send("DocException",e)}))}else e instanceof $||e instanceof ee||e instanceof te||e instanceof z?I.send("DocException",e):I.send("DocException",new z(e.message,e.toString()))}function a(){f(),Q(!1).then(t,(function(e){f(),e instanceof Et?r.requestLoadedStream().then((function(){f(),Q(!0).then(t,i)})):i(e)}))}f(),function(e){var t,r=e.data,A=e.password,i=e.disableAutoFetch,a=e.rangeChunkSize,o=e.length,c=e.docBaseUrl,g=e.enableXfa,u=e.evaluatorOptions,l={source:null,disableAutoFetch:i,docBaseUrl:c,docId:s,enableXfa:g,evaluatorOptions:u,handler:I,length:o,password:A,rangeChunkSize:a},h=Promise.withResolvers();if(r){try{l.source=r,t=new yN(l),h.resolve(t)}catch(e){h.reject(e)}return h.promise}var C,B=[];try{C=new KN(I)}catch(e){return h.reject(e),h.promise}var Q=C.getFullReader();Q.headersReady.then((function(){if(Q.isRangeSupported){l.source=C,l.length=Q.contentLength,l.disableAutoFetch||(l.disableAutoFetch=Q.isStreamingSupported),t=new pN(l);for(var e=0,r=B;e{var n=r(3749),i=r(8055),a=TypeError;t.exports=function(t){if(n(t))return t;throw new a(i(t)+" is not a function")}},9052:(t,e,r)=>{var n=r(8413),i=r(8055),a=TypeError;t.exports=function(t){if(n(t))return t;throw new a(i(t)+" is not a constructor")}},7330:(t,e,r)=>{var n=r(4597),i=String,a=TypeError;t.exports=function(t){if(n(t))return t;throw new a("Can't set "+i(t)+" as a prototype")}},4376:(t,e,r)=>{var n=r(418).has;t.exports=function(t){return n(t),t}},1458:(t,e,r)=>{var n=r(5811),i=r(5304),a=r(1601).f,o=n("unscopables"),s=Array.prototype;void 0===s[o]&&a(s,o,{configurable:!0,value:i(null)}),t.exports=function(t){s[o][t]=!0}},8149:(t,e,r)=>{var n=r(6903).charAt;t.exports=function(t,e,r){return e+(r?n(t,e).length:1)}},3399:(t,e,r)=>{var n=r(6921),i=TypeError;t.exports=function(t,e){if(n(e,t))return t;throw new i("Incorrect invocation")}},7447:(t,e,r)=>{var n=r(2674),i=String,a=TypeError;t.exports=function(t){if(n(t))return t;throw new a(i(t)+" is not an object")}},387:t=>{t.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},8242:(t,e,r)=>{var n=r(4032),i=r(5026),a=r(9872),o=n.ArrayBuffer,s=n.TypeError;t.exports=o&&i(o.prototype,"byteLength","get")||function(t){if("ArrayBuffer"!==a(t))throw new s("ArrayBuffer expected");return t.byteLength}},8102:(t,e,r)=>{var n=r(4032),i=r(2116),a=r(8242),o=n.ArrayBuffer,s=o&&o.prototype,u=s&&i(s.slice);t.exports=function(t){if(0!==a(t))return!1;if(!u)return!1;try{return u(t,0,0),!1}catch(t){return!0}}},7060:(t,e,r)=>{var n=r(3455);t.exports=n((function(){if("function"==typeof ArrayBuffer){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,"a",{value:8})}}))},6033:(t,e,r)=>{var n=r(8102),i=TypeError;t.exports=function(t){if(n(t))throw new i("ArrayBuffer is detached");return t}},4676:(t,e,r)=>{var n=r(4032),i=r(2608),a=r(5026),o=r(9088),s=r(6033),u=r(8242),c=r(7395),l=r(6572),h=n.structuredClone,f=n.ArrayBuffer,d=n.DataView,v=Math.min,p=f.prototype,y=d.prototype,g=i(p.slice),m=a(p,"resizable","get"),b=a(p,"maxByteLength","get"),w=i(y.getInt8),k=i(y.setInt8);t.exports=(l||c)&&function(t,e,r){var n,i=u(t),a=void 0===e?i:o(e),p=!m||!m(t);if(s(t),l&&(t=h(t,{transfer:[t]}),i===a&&(r||p)))return t;if(i>=a&&(!r||p))n=g(t,0,a);else{var y=r&&!p&&b?{maxByteLength:b(t)}:void 0;n=new f(a,y);for(var x=new d(t),A=new d(n),_=v(a,i),E=0;E<_;E++)k(A,E,w(x,E))}return l||c(t),n}},4356:(t,e,r)=>{var n,i,a,o=r(387),s=r(2444),u=r(4032),c=r(3749),l=r(2674),h=r(9649),f=r(1179),d=r(8055),v=r(139),p=r(8552),y=r(8986),g=r(6921),m=r(2611),b=r(9415),w=r(5811),k=r(5936),x=r(8301),A=x.enforce,_=x.get,E=u.Int8Array,S=E&&E.prototype,O=u.Uint8ClampedArray,T=O&&O.prototype,P=E&&m(E),L=S&&m(S),M=Object.prototype,C=u.TypeError,j=w("toStringTag"),I=k("TYPED_ARRAY_TAG"),R="TypedArrayConstructor",F=o&&!!b&&"Opera"!==f(u.opera),D=!1,N={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},W={BigInt64Array:8,BigUint64Array:8},B=function(t){var e=m(t);if(l(e)){var r=_(e);return r&&h(r,R)?r[R]:B(e)}},G=function(t){if(!l(t))return!1;var e=f(t);return h(N,e)||h(W,e)};for(n in N)(a=(i=u[n])&&i.prototype)?A(a)[R]=i:F=!1;for(n in W)(a=(i=u[n])&&i.prototype)&&(A(a)[R]=i);if((!F||!c(P)||P===Function.prototype)&&(P=function(){throw new C("Incorrect invocation")},F))for(n in N)u[n]&&b(u[n],P);if((!F||!L||L===M)&&(L=P.prototype,F))for(n in N)u[n]&&b(u[n].prototype,L);if(F&&m(T)!==L&&b(T,L),s&&!h(L,j))for(n in D=!0,y(L,j,{configurable:!0,get:function(){return l(this)?this[I]:void 0}}),N)u[n]&&v(u[n],I,n);t.exports={NATIVE_ARRAY_BUFFER_VIEWS:F,TYPED_ARRAY_TAG:D&&I,aTypedArray:function(t){if(G(t))return t;throw new C("Target is not a typed array")},aTypedArrayConstructor:function(t){if(c(t)&&(!b||g(P,t)))return t;throw new C(d(t)+" is not a typed array constructor")},exportTypedArrayMethod:function(t,e,r,n){if(s){if(r)for(var i in N){var a=u[i];if(a&&h(a.prototype,t))try{delete a.prototype[t]}catch(r){try{a.prototype[t]=e}catch(t){}}}L[t]&&!r||p(L,t,r?e:F&&S[t]||e,n)}},exportTypedArrayStaticMethod:function(t,e,r){var n,i;if(s){if(b){if(r)for(n in N)if((i=u[n])&&h(i,t))try{delete i[t]}catch(t){}if(P[t]&&!r)return;try{return p(P,t,r?e:F&&P[t]||e)}catch(t){}}for(n in N)!(i=u[n])||i[t]&&!r||p(i,t,e)}},getTypedArrayConstructor:B,isView:function(t){if(!l(t))return!1;var e=f(t);return"DataView"===e||h(N,e)||h(W,e)},isTypedArray:G,TypedArray:P,TypedArrayPrototype:L}},7226:(t,e,r)=>{var n=r(4032),i=r(2608),a=r(2444),o=r(387),s=r(2542),u=r(139),c=r(8986),l=r(4183),h=r(3455),f=r(3399),d=r(1211),v=r(5806),p=r(9088),y=r(3505),g=r(1306),m=r(2611),b=r(9415),w=r(9557),k=r(4224),x=r(3951),A=r(2924),_=r(6911),E=r(8301),S=s.PROPER,O=s.CONFIGURABLE,T="ArrayBuffer",P="DataView",L="prototype",M="Wrong index",C=E.getterFor(T),j=E.getterFor(P),I=E.set,R=n[T],F=R,D=F&&F[L],N=n[P],W=N&&N[L],B=Object.prototype,G=n.Array,H=n.RangeError,U=i(w),z=i([].reverse),V=g.pack,q=g.unpack,Y=function(t){return[255&t]},X=function(t){return[255&t,t>>8&255]},K=function(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]},Q=function(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]},J=function(t){return V(y(t),23,4)},$=function(t){return V(t,52,8)},Z=function(t,e,r){c(t[L],e,{configurable:!0,get:function(){return r(this)[e]}})},tt=function(t,e,r,n){var i=j(t),a=p(r),o=!!n;if(a+e>i.byteLength)throw new H(M);var s=i.bytes,u=a+i.byteOffset,c=k(s,u,u+e);return o?c:z(c)},et=function(t,e,r,n,i,a){var o=j(t),s=p(r),u=n(+i),c=!!a;if(s+e>o.byteLength)throw new H(M);for(var l=o.bytes,h=s+o.byteOffset,f=0;f>24)},setUint8:function(t,e){it(this,t,e<<24>>24)}},{unsafe:!0})}else D=(F=function(t){f(this,D);var e=p(t);I(this,{type:T,bytes:U(G(e),0),byteLength:e}),a||(this.byteLength=e,this.detached=!1)})[L],W=(N=function(t,e,r){f(this,W),f(t,D);var n=C(t),i=n.byteLength,o=d(e);if(o<0||o>i)throw new H("Wrong offset");if(o+(r=void 0===r?i-o:v(r))>i)throw new H("Wrong length");I(this,{type:P,buffer:t,byteLength:r,byteOffset:o,bytes:n.bytes}),a||(this.buffer=t,this.byteLength=r,this.byteOffset=o)})[L],a&&(Z(F,"byteLength",C),Z(N,"buffer",j),Z(N,"byteLength",j),Z(N,"byteOffset",j)),l(W,{getInt8:function(t){return tt(this,1,t)[0]<<24>>24},getUint8:function(t){return tt(this,1,t)[0]},getInt16:function(t){var e=tt(this,2,t,arguments.length>1&&arguments[1]);return(e[1]<<8|e[0])<<16>>16},getUint16:function(t){var e=tt(this,2,t,arguments.length>1&&arguments[1]);return e[1]<<8|e[0]},getInt32:function(t){return Q(tt(this,4,t,arguments.length>1&&arguments[1]))},getUint32:function(t){return Q(tt(this,4,t,arguments.length>1&&arguments[1]))>>>0},getFloat32:function(t){return q(tt(this,4,t,arguments.length>1&&arguments[1]),23)},getFloat64:function(t){return q(tt(this,8,t,arguments.length>1&&arguments[1]),52)},setInt8:function(t,e){et(this,1,t,Y,e)},setUint8:function(t,e){et(this,1,t,Y,e)},setInt16:function(t,e){et(this,2,t,X,e,arguments.length>2&&arguments[2])},setUint16:function(t,e){et(this,2,t,X,e,arguments.length>2&&arguments[2])},setInt32:function(t,e){et(this,4,t,K,e,arguments.length>2&&arguments[2])},setUint32:function(t,e){et(this,4,t,K,e,arguments.length>2&&arguments[2])},setFloat32:function(t,e){et(this,4,t,J,e,arguments.length>2&&arguments[2])},setFloat64:function(t,e){et(this,8,t,$,e,arguments.length>2&&arguments[2])}});_(F,T),_(N,P),t.exports={ArrayBuffer:F,DataView:N}},6677:(t,e,r)=>{var n=r(4165),i=r(9002),a=r(7878),o=r(1870),s=Math.min;t.exports=[].copyWithin||function(t,e){var r=n(this),u=a(r),c=i(t,u),l=i(e,u),h=arguments.length>2?arguments[2]:void 0,f=s((void 0===h?u:i(h,u))-l,u-c),d=1;for(l0;)l in r?r[c]=r[l]:o(r,c),c+=d,l+=d;return r}},9557:(t,e,r)=>{var n=r(4165),i=r(9002),a=r(7878);t.exports=function(t){for(var e=n(this),r=a(e),o=arguments.length,s=i(o>1?arguments[1]:void 0,r),u=o>2?arguments[2]:void 0,c=void 0===u?r:i(u,r);c>s;)e[s++]=t;return e}},3147:(t,e,r)=>{var n=r(5645).forEach,i=r(1814)("forEach");t.exports=i?[].forEach:function(t){return n(this,t,arguments.length>1?arguments[1]:void 0)}},7434:(t,e,r)=>{var n=r(7878);t.exports=function(t,e,r){for(var i=0,a=arguments.length>2?r:n(e),o=new t(a);a>i;)o[i]=e[i++];return o}},3948:(t,e,r)=>{var n=r(4864),i=r(3453),a=r(4165),o=r(3535),s=r(993),u=r(8413),c=r(7878),l=r(3552),h=r(6961),f=r(7507),d=Array;t.exports=function(t){var e=a(t),r=u(this),v=arguments.length,p=v>1?arguments[1]:void 0,y=void 0!==p;y&&(p=n(p,v>2?arguments[2]:void 0));var g,m,b,w,k,x,A=f(e),_=0;if(!A||this===d&&s(A))for(g=c(e),m=r?new this(g):d(g);g>_;_++)x=y?p(e[_],_):e[_],l(m,_,x);else for(m=r?new this:[],k=(w=h(e,A)).next;!(b=i(k,w)).done;_++)x=y?o(w,p,[b.value,_],!0):b.value,l(m,_,x);return m.length=_,m}},7921:(t,e,r)=>{var n=r(3637),i=r(9002),a=r(7878),o=function(t){return function(e,r,o){var s=n(e),u=a(s);if(0===u)return!t&&-1;var c,l=i(o,u);if(t&&r!=r){for(;u>l;)if((c=s[l++])!=c)return!0}else for(;u>l;l++)if((t||l in s)&&s[l]===r)return t||l||0;return!t&&-1}};t.exports={includes:o(!0),indexOf:o(!1)}},767:(t,e,r)=>{var n=r(4864),i=r(9455),a=r(4165),o=r(7878),s=function(t){var e=1===t;return function(r,s,u){for(var c,l=a(r),h=i(l),f=o(h),d=n(s,u);f-- >0;)if(d(c=h[f],f,l))switch(t){case 0:return c;case 1:return f}return e?-1:void 0}};t.exports={findLast:s(0),findLastIndex:s(1)}},5645:(t,e,r)=>{var n=r(4864),i=r(2608),a=r(9455),o=r(4165),s=r(7878),u=r(1453),c=i([].push),l=function(t){var e=1===t,r=2===t,i=3===t,l=4===t,h=6===t,f=7===t,d=5===t||h;return function(v,p,y,g){for(var m,b,w=o(v),k=a(w),x=s(k),A=n(p,y),_=0,E=g||u,S=e?E(v,x):r||f?E(v,0):void 0;x>_;_++)if((d||_ in k)&&(b=A(m=k[_],_,w),t))if(e)S[_]=b;else if(b)switch(t){case 3:return!0;case 5:return m;case 6:return _;case 2:c(S,m)}else switch(t){case 4:return!1;case 7:c(S,m)}return h?-1:i||l?l:S}};t.exports={forEach:l(0),map:l(1),filter:l(2),some:l(3),every:l(4),find:l(5),findIndex:l(6),filterReject:l(7)}},3499:(t,e,r)=>{var n=r(3881),i=r(3637),a=r(1211),o=r(7878),s=r(1814),u=Math.min,c=[].lastIndexOf,l=!!c&&1/[1].lastIndexOf(1,-0)<0,h=s("lastIndexOf"),f=l||!h;t.exports=f?function(t){if(l)return n(c,this,arguments)||0;var e=i(this),r=o(e);if(0===r)return-1;var s=r-1;for(arguments.length>1&&(s=u(s,a(arguments[1]))),s<0&&(s=r+s);s>=0;s--)if(s in e&&e[s]===t)return s||0;return-1}:c},9077:(t,e,r)=>{var n=r(3455),i=r(5811),a=r(6415),o=i("species");t.exports=function(t){return a>=51||!n((function(){var e=[];return(e.constructor={})[o]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},1814:(t,e,r)=>{var n=r(3455);t.exports=function(t,e){var r=[][t];return!!r&&n((function(){r.call(null,e||function(){return 1},1)}))}},4734:(t,e,r)=>{var n=r(4186),i=r(4165),a=r(9455),o=r(7878),s=TypeError,u="Reduce of empty array with no initial value",c=function(t){return function(e,r,c,l){var h=i(e),f=a(h),d=o(h);if(n(r),0===d&&c<2)throw new s(u);var v=t?d-1:0,p=t?-1:1;if(c<2)for(;;){if(v in f){l=f[v],v+=p;break}if(v+=p,t?v<0:d<=v)throw new s(u)}for(;t?v>=0:d>v;v+=p)v in f&&(l=r(l,f[v],v,h));return l}};t.exports={left:c(!1),right:c(!0)}},7375:(t,e,r)=>{var n=r(2444),i=r(5448),a=TypeError,o=Object.getOwnPropertyDescriptor,s=n&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}();t.exports=s?function(t,e){if(i(t)&&!o(t,"length").writable)throw new a("Cannot set read only .length");return t.length=e}:function(t,e){return t.length=e}},4224:(t,e,r)=>{var n=r(2608);t.exports=n([].slice)},5272:(t,e,r)=>{var n=r(4224),i=Math.floor,a=function(t,e){var r=t.length;if(r<8)for(var o,s,u=1;u0;)t[s]=t[--s];s!==u++&&(t[s]=o)}else for(var c=i(r/2),l=a(n(t,0,c),e),h=a(n(t,c),e),f=l.length,d=h.length,v=0,p=0;v{var n=r(5448),i=r(8413),a=r(2674),o=r(5811)("species"),s=Array;t.exports=function(t){var e;return n(t)&&(e=t.constructor,(i(e)&&(e===s||n(e.prototype))||a(e)&&null===(e=e[o]))&&(e=void 0)),void 0===e?s:e}},1453:(t,e,r)=>{var n=r(2329);t.exports=function(t,e){return new(n(t))(0===e?0:e)}},6444:(t,e,r)=>{var n=r(7878);t.exports=function(t,e){for(var r=n(t),i=new e(r),a=0;a{var n=r(7878),i=r(1211),a=RangeError;t.exports=function(t,e,r,o){var s=n(t),u=i(r),c=u<0?s+u:u;if(c>=s||c<0)throw new a("Incorrect index");for(var l=new e(s),h=0;h{var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r=e+"+/",n=e+"-_",i=function(t){for(var e={},r=0;r<64;r++)e[t.charAt(r)]=r;return e};t.exports={i2c:r,c2i:i(r),i2cUrl:n,c2iUrl:i(n)}},3535:(t,e,r)=>{var n=r(7447),i=r(5235);t.exports=function(t,e,r,a){try{return a?e(n(r)[0],r[1]):e(r)}catch(e){i(t,"throw",e)}}},4348:(t,e,r)=>{var n=r(5811)("iterator"),i=!1;try{var a=0,o={next:function(){return{done:!!a++}},return:function(){i=!0}};o[n]=function(){return this},Array.from(o,(function(){throw 2}))}catch(t){}t.exports=function(t,e){try{if(!e&&!i)return!1}catch(t){return!1}var r=!1;try{var a={};a[n]=function(){return{next:function(){return{done:r=!0}}}},t(a)}catch(t){}return r}},9872:(t,e,r)=>{var n=r(2608),i=n({}.toString),a=n("".slice);t.exports=function(t){return a(i(t),8,-1)}},1179:(t,e,r)=>{var n=r(3724),i=r(3749),a=r(9872),o=r(5811)("toStringTag"),s=Object,u="Arguments"===a(function(){return arguments}());t.exports=n?a:function(t){var e,r,n;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=s(t),o))?r:u?a(e):"Object"===(n=a(e))&&i(e.callee)?"Arguments":n}},2042:(t,e,r)=>{var n=r(5304),i=r(8986),a=r(4183),o=r(4864),s=r(3399),u=r(6021),c=r(1804),l=r(656),h=r(9393),f=r(5409),d=r(2444),v=r(5227).fastKey,p=r(8301),y=p.set,g=p.getterFor;t.exports={getConstructor:function(t,e,r,l){var h=t((function(t,i){s(t,f),y(t,{type:e,index:n(null),first:null,last:null,size:0}),d||(t.size=0),u(i)||c(i,t[l],{that:t,AS_ENTRIES:r})})),f=h.prototype,p=g(e),m=function(t,e,r){var n,i,a=p(t),o=b(t,e);return o?o.value=r:(a.last=o={index:i=v(e,!0),key:e,value:r,previous:n=a.last,next:null,removed:!1},a.first||(a.first=o),n&&(n.next=o),d?a.size++:t.size++,"F"!==i&&(a.index[i]=o)),t},b=function(t,e){var r,n=p(t),i=v(e);if("F"!==i)return n.index[i];for(r=n.first;r;r=r.next)if(r.key===e)return r};return a(f,{clear:function(){for(var t=p(this),e=t.first;e;)e.removed=!0,e.previous&&(e.previous=e.previous.next=null),e=e.next;t.first=t.last=null,t.index=n(null),d?t.size=0:this.size=0},delete:function(t){var e=this,r=p(e),n=b(e,t);if(n){var i=n.next,a=n.previous;delete r.index[n.index],n.removed=!0,a&&(a.next=i),i&&(i.previous=a),r.first===n&&(r.first=i),r.last===n&&(r.last=a),d?r.size--:e.size--}return!!n},forEach:function(t){for(var e,r=p(this),n=o(t,arguments.length>1?arguments[1]:void 0);e=e?e.next:r.first;)for(n(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!b(this,t)}}),a(f,r?{get:function(t){var e=b(this,t);return e&&e.value},set:function(t,e){return m(this,0===t?0:t,e)}}:{add:function(t){return m(this,t=0===t?0:t,t)}}),d&&i(f,"size",{configurable:!0,get:function(){return p(this).size}}),h},setStrong:function(t,e,r){var n=e+" Iterator",i=g(e),a=g(n);l(t,e,(function(t,e){y(this,{type:n,target:t,state:i(t),kind:e,last:null})}),(function(){for(var t=a(this),e=t.kind,r=t.last;r&&r.removed;)r=r.previous;return t.target&&(t.last=r=r?r.next:t.state.first)?h("keys"===e?r.key:"values"===e?r.value:[r.key,r.value],!1):(t.target=null,h(void 0,!0))}),r?"entries":"values",!r,!0),f(e)}}},8153:(t,e,r)=>{var n=r(2608),i=r(4183),a=r(5227).getWeakData,o=r(3399),s=r(7447),u=r(6021),c=r(2674),l=r(1804),h=r(5645),f=r(9649),d=r(8301),v=d.set,p=d.getterFor,y=h.find,g=h.findIndex,m=n([].splice),b=0,w=function(t){return t.frozen||(t.frozen=new k)},k=function(){this.entries=[]},x=function(t,e){return y(t.entries,(function(t){return t[0]===e}))};k.prototype={get:function(t){var e=x(this,t);if(e)return e[1]},has:function(t){return!!x(this,t)},set:function(t,e){var r=x(this,t);r?r[1]=e:this.entries.push([t,e])},delete:function(t){var e=g(this.entries,(function(e){return e[0]===t}));return~e&&m(this.entries,e,1),!!~e}},t.exports={getConstructor:function(t,e,r,n){var h=t((function(t,i){o(t,d),v(t,{type:e,id:b++,frozen:null}),u(i)||l(i,t[n],{that:t,AS_ENTRIES:r})})),d=h.prototype,y=p(e),g=function(t,e,r){var n=y(t),i=a(s(e),!0);return!0===i?w(n).set(e,r):i[n.id]=r,t};return i(d,{delete:function(t){var e=y(this);if(!c(t))return!1;var r=a(t);return!0===r?w(e).delete(t):r&&f(r,e.id)&&delete r[e.id]},has:function(t){var e=y(this);if(!c(t))return!1;var r=a(t);return!0===r?w(e).has(t):r&&f(r,e.id)}}),i(d,r?{get:function(t){var e=y(this);if(c(t)){var r=a(t);if(!0===r)return w(e).get(t);if(r)return r[e.id]}},set:function(t,e){return g(this,t,e)}}:{add:function(t){return g(this,t,!0)}}),h}}},9556:(t,e,r)=>{var n=r(5366),i=r(4032),a=r(2608),o=r(5868),s=r(8552),u=r(5227),c=r(1804),l=r(3399),h=r(3749),f=r(6021),d=r(2674),v=r(3455),p=r(4348),y=r(6911),g=r(3951);t.exports=function(t,e,r){var m=-1!==t.indexOf("Map"),b=-1!==t.indexOf("Weak"),w=m?"set":"add",k=i[t],x=k&&k.prototype,A=k,_={},E=function(t){var e=a(x[t]);s(x,t,"add"===t?function(t){return e(this,0===t?0:t),this}:"delete"===t?function(t){return!(b&&!d(t))&&e(this,0===t?0:t)}:"get"===t?function(t){return b&&!d(t)?void 0:e(this,0===t?0:t)}:"has"===t?function(t){return!(b&&!d(t))&&e(this,0===t?0:t)}:function(t,r){return e(this,0===t?0:t,r),this})};if(o(t,!h(k)||!(b||x.forEach&&!v((function(){(new k).entries().next()})))))A=r.getConstructor(e,t,m,w),u.enable();else if(o(t,!0)){var S=new A,O=S[w](b?{}:-0,1)!==S,T=v((function(){S.has(1)})),P=p((function(t){new k(t)})),L=!b&&v((function(){for(var t=new k,e=5;e--;)t[w](e,e);return!t.has(-0)}));P||((A=e((function(t,e){l(t,x);var r=g(new k,t,A);return f(e)||c(e,r[w],{that:r,AS_ENTRIES:m}),r}))).prototype=x,x.constructor=A),(T||L)&&(E("delete"),E("has"),m&&E("get")),(L||O)&&E(w),b&&x.clear&&delete x.clear}return _[t]=A,n({global:!0,constructor:!0,forced:A!==k},_),y(A,t),b||r.setStrong(A,t,m),A}},2924:(t,e,r)=>{var n=r(9649),i=r(2919),a=r(1139),o=r(1601);t.exports=function(t,e,r){for(var s=i(e),u=o.f,c=a.f,l=0;l{var n=r(5811)("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(r){try{return e[n]=!1,"/./"[t](e)}catch(t){}}return!1}},5139:(t,e,r)=>{var n=r(3455);t.exports=!n((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},9393:t=>{t.exports=function(t,e){return{value:t,done:e}}},139:(t,e,r)=>{var n=r(2444),i=r(1601),a=r(4004);t.exports=n?function(t,e,r){return i.f(t,e,a(1,r))}:function(t,e,r){return t[e]=r,t}},4004:t=>{t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},3552:(t,e,r)=>{var n=r(2444),i=r(1601),a=r(4004);t.exports=function(t,e,r){n?i.f(t,e,a(0,r)):t[e]=r}},952:(t,e,r)=>{var n=r(7447),i=r(3118),a=TypeError;t.exports=function(t){if(n(this),"string"===t||"default"===t)t="string";else if("number"!==t)throw new a("Incorrect hint");return i(this,t)}},8986:(t,e,r)=>{var n=r(1147),i=r(1601);t.exports=function(t,e,r){return r.get&&n(r.get,e,{getter:!0}),r.set&&n(r.set,e,{setter:!0}),i.f(t,e,r)}},8552:(t,e,r)=>{var n=r(3749),i=r(1601),a=r(1147),o=r(5801);t.exports=function(t,e,r,s){s||(s={});var u=s.enumerable,c=void 0!==s.name?s.name:e;if(n(r)&&a(r,c,s),s.global)u?t[e]=r:o(e,r);else{try{s.unsafe?t[e]&&(u=!0):delete t[e]}catch(t){}u?t[e]=r:i.f(t,e,{value:r,enumerable:!1,configurable:!s.nonConfigurable,writable:!s.nonWritable})}return t}},4183:(t,e,r)=>{var n=r(8552);t.exports=function(t,e,r){for(var i in e)n(t,i,e[i],r);return t}},5801:(t,e,r)=>{var n=r(4032),i=Object.defineProperty;t.exports=function(t,e){try{i(n,t,{value:e,configurable:!0,writable:!0})}catch(r){n[t]=e}return e}},1870:(t,e,r)=>{var n=r(8055),i=TypeError;t.exports=function(t,e){if(!delete t[e])throw new i("Cannot delete property "+n(e)+" of "+n(t))}},2444:(t,e,r)=>{var n=r(3455);t.exports=!n((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},7395:(t,e,r)=>{var n,i,a,o,s=r(4032),u=r(9685),c=r(6572),l=s.structuredClone,h=s.ArrayBuffer,f=s.MessageChannel,d=!1;if(c)d=function(t){l(t,{transfer:[t]})};else if(h)try{f||(n=u("worker_threads"))&&(f=n.MessageChannel),f&&(i=new f,a=new h(2),o=function(t){i.port1.postMessage(null,[t])},2===a.byteLength&&(o(a),0===a.byteLength&&(d=o)))}catch(t){}t.exports=d},5751:(t,e,r)=>{var n=r(4032),i=r(2674),a=n.document,o=i(a)&&i(a.createElement);t.exports=function(t){return o?a.createElement(t):{}}},9573:t=>{var e=TypeError;t.exports=function(t){if(t>9007199254740991)throw e("Maximum allowed index exceeded");return t}},4090:t=>{t.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}}},2760:t=>{t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},4784:(t,e,r)=>{var n=r(5751)("span").classList,i=n&&n.constructor&&n.constructor.prototype;t.exports=i===Object.prototype?void 0:i},5175:t=>{t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},7085:(t,e,r)=>{var n=r(7607).match(/firefox\\/(\\d+)/i);t.exports=!!n&&+n[1]},5123:(t,e,r)=>{var n=r(7607);t.exports=/MSIE|Trident/.test(n)},9081:(t,e,r)=>{var n=r(7607);t.exports=/ipad|iphone|ipod/i.test(n)&&"undefined"!=typeof Pebble},9352:(t,e,r)=>{var n=r(7607);t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(n)},4529:(t,e,r)=>{var n=r(7351);t.exports="NODE"===n},628:(t,e,r)=>{var n=r(7607);t.exports=/web0s(?!.*chrome)/i.test(n)},7607:(t,e,r)=>{var n=r(4032).navigator,i=n&&n.userAgent;t.exports=i?String(i):""},6415:(t,e,r)=>{var n,i,a=r(4032),o=r(7607),s=a.process,u=a.Deno,c=s&&s.versions||u&&u.version,l=c&&c.v8;l&&(i=(n=l.split("."))[0]>0&&n[0]<4?1:+(n[0]+n[1])),!i&&o&&(!(n=o.match(/Edge\\/(\\d+)/))||n[1]>=74)&&(n=o.match(/Chrome\\/(\\d+)/))&&(i=+n[1]),t.exports=i},1911:(t,e,r)=>{var n=r(7607).match(/AppleWebKit\\/(\\d+)\\./);t.exports=!!n&&+n[1]},7351:(t,e,r)=>{var n=r(4032),i=r(7607),a=r(9872),o=function(t){return i.slice(0,t.length)===t};t.exports=o("Bun/")?"BUN":o("Cloudflare-Workers")?"CLOUDFLARE":o("Deno/")?"DENO":o("Node.js/")?"NODE":n.Bun&&"string"==typeof Bun.version?"BUN":n.Deno&&"object"==typeof Deno.version?"DENO":"process"===a(n.process)?"NODE":n.window&&n.document?"BROWSER":"REST"},3633:(t,e,r)=>{var n=r(2608),i=Error,a=n("".replace),o=String(new i("zxcasd").stack),s=/\\n\\s*at [^:]*:[^\\n]*/,u=s.test(o);t.exports=function(t,e){if(u&&"string"==typeof t&&!i.prepareStackTrace)for(;e--;)t=a(t,s,"");return t}},4171:(t,e,r)=>{var n=r(139),i=r(3633),a=r(3427),o=Error.captureStackTrace;t.exports=function(t,e,r,s){a&&(o?o(t,e):n(t,"stack",i(r,s)))}},3427:(t,e,r)=>{var n=r(3455),i=r(4004);t.exports=!n((function(){var t=new Error("a");return!("stack"in t)||(Object.defineProperty(t,"stack",i(1,7)),7!==t.stack)}))},2912:(t,e,r)=>{var n=r(2444),i=r(3455),a=r(7447),o=r(8363),s=Error.prototype.toString,u=i((function(){if(n){var t=Object.create(Object.defineProperty({},"name",{get:function(){return this===t}}));if("true"!==s.call(t))return!0}return"2: 1"!==s.call({message:1,name:2})||"Error"!==s.call({})}));t.exports=u?function(){var t=a(this),e=o(t.name,"Error"),r=o(t.message);return e?r?e+": "+r:e:r}:s},5366:(t,e,r)=>{var n=r(4032),i=r(1139).f,a=r(139),o=r(8552),s=r(5801),u=r(2924),c=r(5868);t.exports=function(t,e){var r,l,h,f,d,v=t.target,p=t.global,y=t.stat;if(r=p?n:y?n[v]||s(v,{}):n[v]&&n[v].prototype)for(l in e){if(f=e[l],h=t.dontCallGetSet?(d=i(r,l))&&d.value:r[l],!c(p?l:v+(y?".":"#")+l,t.forced)&&void 0!==h){if(typeof f==typeof h)continue;u(f,h)}(t.sham||h&&h.sham)&&a(f,"sham",!0),o(r,l,f,t)}}},3455:t=>{t.exports=function(t){try{return!!t()}catch(t){return!0}}},4364:(t,e,r)=>{r(2823);var n=r(3453),i=r(8552),a=r(9867),o=r(3455),s=r(5811),u=r(139),c=s("species"),l=RegExp.prototype;t.exports=function(t,e,r,h){var f=s(t),d=!o((function(){var e={};return e[f]=function(){return 7},7!==""[t](e)})),v=d&&!o((function(){var e=!1,r=/a/;return"split"===t&&((r={}).constructor={},r.constructor[c]=function(){return r},r.flags="",r[f]=/./[f]),r.exec=function(){return e=!0,null},r[f](""),!e}));if(!d||!v||r){var p=/./[f],y=e(f,""[t],(function(t,e,r,i,o){var s=e.exec;return s===a||s===l.exec?d&&!o?{done:!0,value:n(p,e,r,i)}:{done:!0,value:n(t,r,e,i)}:{done:!1}}));i(String.prototype,t,y[0]),i(l,f,y[1])}h&&u(l[f],"sham",!0)}},2851:(t,e,r)=>{var n=r(5448),i=r(7878),a=r(9573),o=r(4864),s=function(t,e,r,u,c,l,h,f){for(var d,v,p=c,y=0,g=!!h&&o(h,f);y0&&n(d)?(v=i(d),p=s(t,e,d,v,p,l-1)-1):(a(p+1),t[p]=d),p++),y++;return p};t.exports=s},568:(t,e,r)=>{var n=r(3455);t.exports=!n((function(){return Object.isExtensible(Object.preventExtensions({}))}))},3881:(t,e,r)=>{var n=r(9128),i=Function.prototype,a=i.apply,o=i.call;t.exports="object"==typeof Reflect&&Reflect.apply||(n?o.bind(a):function(){return o.apply(a,arguments)})},4864:(t,e,r)=>{var n=r(2116),i=r(4186),a=r(9128),o=n(n.bind);t.exports=function(t,e){return i(t),void 0===e?t:a?o(t,e):function(){return t.apply(e,arguments)}}},9128:(t,e,r)=>{var n=r(3455);t.exports=!n((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},2230:(t,e,r)=>{var n=r(2608),i=r(4186),a=r(2674),o=r(9649),s=r(4224),u=r(9128),c=Function,l=n([].concat),h=n([].join),f={};t.exports=u?c.bind:function(t){var e=i(this),r=e.prototype,n=s(arguments,1),u=function(){var r=l(n,s(arguments));return this instanceof u?function(t,e,r){if(!o(f,e)){for(var n=[],i=0;i{var n=r(9128),i=Function.prototype.call;t.exports=n?i.bind(i):function(){return i.apply(i,arguments)}},2542:(t,e,r)=>{var n=r(2444),i=r(9649),a=Function.prototype,o=n&&Object.getOwnPropertyDescriptor,s=i(a,"name"),u=s&&"something"===function(){}.name,c=s&&(!n||n&&o(a,"name").configurable);t.exports={EXISTS:s,PROPER:u,CONFIGURABLE:c}},5026:(t,e,r)=>{var n=r(2608),i=r(4186);t.exports=function(t,e,r){try{return n(i(Object.getOwnPropertyDescriptor(t,e)[r]))}catch(t){}}},2116:(t,e,r)=>{var n=r(9872),i=r(2608);t.exports=function(t){if("Function"===n(t))return i(t)}},2608:(t,e,r)=>{var n=r(9128),i=Function.prototype,a=i.call,o=n&&i.bind.bind(a,a);t.exports=n?o:function(t){return function(){return a.apply(t,arguments)}}},9685:(t,e,r)=>{var n=r(4032),i=r(4529);t.exports=function(t){if(i){try{return n.process.getBuiltinModule(t)}catch(t){}try{return Function('return require("'+t+'")')()}catch(t){}}}},8711:(t,e,r)=>{var n=r(4032),i=r(3749);t.exports=function(t,e){return arguments.length<2?(r=n[t],i(r)?r:void 0):n[t]&&n[t][e];var r}},3447:t=>{t.exports=function(t){return{iterator:t,next:t.next,done:!1}}},1750:(t,e,r)=>{var n=r(3453),i=r(7447),a=r(3447),o=r(7507);t.exports=function(t,e){e&&"string"==typeof t||i(t);var r=o(t);return a(i(void 0!==r?n(r,t):t))}},7507:(t,e,r)=>{var n=r(1179),i=r(8622),a=r(6021),o=r(5597),s=r(5811)("iterator");t.exports=function(t){if(!a(t))return i(t,s)||i(t,"@@iterator")||o[n(t)]}},6961:(t,e,r)=>{var n=r(3453),i=r(4186),a=r(7447),o=r(8055),s=r(7507),u=TypeError;t.exports=function(t,e){var r=arguments.length<2?s(t):e;if(i(r))return a(n(r,t));throw new u(o(t)+" is not iterable")}},213:(t,e,r)=>{var n=r(2608),i=r(5448),a=r(3749),o=r(9872),s=r(687),u=n([].push);t.exports=function(t){if(a(t))return t;if(i(t)){for(var e=t.length,r=[],n=0;n{var n=r(4186),i=r(6021);t.exports=function(t,e){var r=t[e];return i(r)?void 0:n(r)}},3885:(t,e,r)=>{var n=r(4186),i=r(7447),a=r(3453),o=r(1211),s=r(3447),u="Invalid size",c=RangeError,l=TypeError,h=Math.max,f=function(t,e){this.set=t,this.size=h(e,0),this.has=n(t.has),this.keys=n(t.keys)};f.prototype={getIterator:function(){return s(i(a(this.keys,this.set)))},includes:function(t){return a(this.has,this.set,t)}},t.exports=function(t){i(t);var e=+t.size;if(e!=e)throw new l(u);var r=o(e);if(r<0)throw new c(u);return new f(t,r)}},3966:(t,e,r)=>{var n=r(2608),i=r(4165),a=Math.floor,o=n("".charAt),s=n("".replace),u=n("".slice),c=/\\$([$&'\`]|\\d{1,2}|<[^>]*>)/g,l=/\\$([$&'\`]|\\d{1,2})/g;t.exports=function(t,e,r,n,h,f){var d=r+t.length,v=n.length,p=l;return void 0!==h&&(h=i(h),p=c),s(f,p,(function(i,s){var c;switch(o(s,0)){case"$":return"$";case"&":return t;case"\`":return u(e,0,r);case"'":return u(e,d);case"<":c=h[u(s,1,-1)];break;default:var l=+s;if(0===l)return i;if(l>v){var f=a(l/10);return 0===f?i:f<=v?void 0===n[f-1]?o(s,1):n[f-1]+o(s,1):i}c=n[l-1]}return void 0===c?"":c}))}},4032:function(t){var e=function(t){return t&&t.Math===Math&&t};t.exports=e("object"==typeof globalThis&&globalThis)||e("object"==typeof window&&window)||e("object"==typeof self&&self)||e("object"==typeof global&&global)||e("object"==typeof this&&this)||function(){return this}()||Function("return this")()},9649:(t,e,r)=>{var n=r(2608),i=r(4165),a=n({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return a(i(t),e)}},2645:t=>{t.exports={}},4885:t=>{t.exports=function(t,e){try{1===arguments.length?console.error(t):console.error(t,e)}catch(t){}}},3085:(t,e,r)=>{var n=r(8711);t.exports=n("document","documentElement")},8829:(t,e,r)=>{var n=r(2444),i=r(3455),a=r(5751);t.exports=!n&&!i((function(){return 7!==Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a}))},1306:t=>{var e=Array,r=Math.abs,n=Math.pow,i=Math.floor,a=Math.log,o=Math.LN2;t.exports={pack:function(t,s,u){var c,l,h,f=e(u),d=8*u-s-1,v=(1<>1,y=23===s?n(2,-24)-n(2,-77):0,g=t<0||0===t&&1/t<0?1:0,m=0;for((t=r(t))!=t||t===1/0?(l=t!=t?1:0,c=v):(c=i(a(t)/o),t*(h=n(2,-c))<1&&(c--,h*=2),(t+=c+p>=1?y/h:y*n(2,1-p))*h>=2&&(c++,h/=2),c+p>=v?(l=0,c=v):c+p>=1?(l=(t*h-1)*n(2,s),c+=p):(l=t*n(2,p-1)*n(2,s),c=0));s>=8;)f[m++]=255&l,l/=256,s-=8;for(c=c<0;)f[m++]=255&c,c/=256,d-=8;return f[m-1]|=128*g,f},unpack:function(t,e){var r,i=t.length,a=8*i-e-1,o=(1<>1,u=a-7,c=i-1,l=t[c--],h=127&l;for(l>>=7;u>0;)h=256*h+t[c--],u-=8;for(r=h&(1<<-u)-1,h>>=-u,u+=e;u>0;)r=256*r+t[c--],u-=8;if(0===h)h=1-s;else{if(h===o)return r?NaN:l?-1/0:1/0;r+=n(2,e),h-=s}return(l?-1:1)*r*n(2,h-e)}}},9455:(t,e,r)=>{var n=r(2608),i=r(3455),a=r(9872),o=Object,s=n("".split);t.exports=i((function(){return!o("z").propertyIsEnumerable(0)}))?function(t){return"String"===a(t)?s(t,""):o(t)}:o},3951:(t,e,r)=>{var n=r(3749),i=r(2674),a=r(9415);t.exports=function(t,e,r){var o,s;return a&&n(o=e.constructor)&&o!==r&&i(s=o.prototype)&&s!==r.prototype&&a(t,s),t}},6906:(t,e,r)=>{var n=r(2608),i=r(3749),a=r(2205),o=n(Function.toString);i(a.inspectSource)||(a.inspectSource=function(t){return o(t)}),t.exports=a.inspectSource},2483:(t,e,r)=>{var n=r(2674),i=r(139);t.exports=function(t,e){n(e)&&"cause"in e&&i(t,"cause",e.cause)}},5227:(t,e,r)=>{var n=r(5366),i=r(2608),a=r(2645),o=r(2674),s=r(9649),u=r(1601).f,c=r(3408),l=r(6442),h=r(8812),f=r(5936),d=r(568),v=!1,p=f("meta"),y=0,g=function(t){u(t,p,{value:{objectID:"O"+y++,weakData:{}}})},m=t.exports={enable:function(){m.enable=function(){},v=!0;var t=c.f,e=i([].splice),r={};r[p]=1,t(r).length&&(c.f=function(r){for(var n=t(r),i=0,a=n.length;i{var n,i,a,o=r(6206),s=r(4032),u=r(2674),c=r(139),l=r(9649),h=r(2205),f=r(2343),d=r(2645),v="Object already initialized",p=s.TypeError,y=s.WeakMap;if(o||h.state){var g=h.state||(h.state=new y);g.get=g.get,g.has=g.has,g.set=g.set,n=function(t,e){if(g.has(t))throw new p(v);return e.facade=t,g.set(t,e),e},i=function(t){return g.get(t)||{}},a=function(t){return g.has(t)}}else{var m=f("state");d[m]=!0,n=function(t,e){if(l(t,m))throw new p(v);return e.facade=t,c(t,m,e),e},i=function(t){return l(t,m)?t[m]:{}},a=function(t){return l(t,m)}}t.exports={set:n,get:i,has:a,enforce:function(t){return a(t)?i(t):n(t,{})},getterFor:function(t){return function(e){var r;if(!u(e)||(r=i(e)).type!==t)throw new p("Incompatible receiver, "+t+" required");return r}}}},993:(t,e,r)=>{var n=r(5811),i=r(5597),a=n("iterator"),o=Array.prototype;t.exports=function(t){return void 0!==t&&(i.Array===t||o[a]===t)}},5448:(t,e,r)=>{var n=r(9872);t.exports=Array.isArray||function(t){return"Array"===n(t)}},5415:(t,e,r)=>{var n=r(1179);t.exports=function(t){var e=n(t);return"BigInt64Array"===e||"BigUint64Array"===e}},3749:t=>{var e="object"==typeof document&&document.all;t.exports=void 0===e&&void 0!==e?function(t){return"function"==typeof t||t===e}:function(t){return"function"==typeof t}},8413:(t,e,r)=>{var n=r(2608),i=r(3455),a=r(3749),o=r(1179),s=r(8711),u=r(6906),c=function(){},l=s("Reflect","construct"),h=/^\\s*(?:class|function)\\b/,f=n(h.exec),d=!h.test(c),v=function(t){if(!a(t))return!1;try{return l(c,[],t),!0}catch(t){return!1}},p=function(t){if(!a(t))return!1;switch(o(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return d||!!f(h,u(t))}catch(t){return!0}};p.sham=!0,t.exports=!l||i((function(){var t;return v(v.call)||!v(Object)||!v((function(){t=!0}))||t}))?p:v},3007:(t,e,r)=>{var n=r(9649);t.exports=function(t){return void 0!==t&&(n(t,"value")||n(t,"writable"))}},5868:(t,e,r)=>{var n=r(3455),i=r(3749),a=/#|\\.prototype\\./,o=function(t,e){var r=u[s(t)];return r===l||r!==c&&(i(e)?n(e):!!e)},s=o.normalize=function(t){return String(t).replace(a,".").toLowerCase()},u=o.data={},c=o.NATIVE="N",l=o.POLYFILL="P";t.exports=o},2599:(t,e,r)=>{var n=r(2674),i=Math.floor;t.exports=Number.isInteger||function(t){return!n(t)&&isFinite(t)&&i(t)===t}},6021:t=>{t.exports=function(t){return null==t}},2674:(t,e,r)=>{var n=r(3749);t.exports=function(t){return"object"==typeof t?null!==t:n(t)}},4597:(t,e,r)=>{var n=r(2674);t.exports=function(t){return n(t)||null===t}},8507:t=>{t.exports=!1},6484:(t,e,r)=>{var n=r(2674),i=r(9872),a=r(5811)("match");t.exports=function(t){var e;return n(t)&&(void 0!==(e=t[a])?!!e:"RegExp"===i(t))}},2277:(t,e,r)=>{var n=r(8711),i=r(3749),a=r(6921),o=r(4752),s=Object;t.exports=o?function(t){return"symbol"==typeof t}:function(t){var e=n("Symbol");return i(e)&&a(e.prototype,s(t))}},2939:(t,e,r)=>{var n=r(3453);t.exports=function(t,e,r){for(var i,a,o=r?t:t.iterator,s=t.next;!(i=n(s,o)).done;)if(void 0!==(a=e(i.value)))return a}},1804:(t,e,r)=>{var n=r(4864),i=r(3453),a=r(7447),o=r(8055),s=r(993),u=r(7878),c=r(6921),l=r(6961),h=r(7507),f=r(5235),d=TypeError,v=function(t,e){this.stopped=t,this.result=e},p=v.prototype;t.exports=function(t,e,r){var y,g,m,b,w,k,x,A=r&&r.that,_=!(!r||!r.AS_ENTRIES),E=!(!r||!r.IS_RECORD),S=!(!r||!r.IS_ITERATOR),O=!(!r||!r.INTERRUPTED),T=n(e,A),P=function(t){return y&&f(y,"normal",t),new v(!0,t)},L=function(t){return _?(a(t),O?T(t[0],t[1],P):T(t[0],t[1])):O?T(t,P):T(t)};if(E)y=t.iterator;else if(S)y=t;else{if(!(g=h(t)))throw new d(o(t)+" is not iterable");if(s(g)){for(m=0,b=u(t);b>m;m++)if((w=L(t[m]))&&c(p,w))return w;return new v(!1)}y=l(t,g)}for(k=E?t.next:y.next;!(x=i(k,y)).done;){try{w=L(x.value)}catch(t){f(y,"throw",t)}if("object"==typeof w&&w&&c(p,w))return w}return new v(!1)}},5235:(t,e,r)=>{var n=r(3453),i=r(7447),a=r(8622);t.exports=function(t,e,r){var o,s;i(t);try{if(!(o=a(t,"return"))){if("throw"===e)throw r;return r}o=n(o,t)}catch(t){s=!0,o=t}if("throw"===e)throw r;if(s)throw o;return i(o),r}},282:(t,e,r)=>{var n=r(2857).IteratorPrototype,i=r(5304),a=r(4004),o=r(6911),s=r(5597),u=function(){return this};t.exports=function(t,e,r,c){var l=e+" Iterator";return t.prototype=i(n,{next:a(+!c,r)}),o(t,l,!1,!0),s[l]=u,t}},2342:(t,e,r)=>{var n=r(3453),i=r(5304),a=r(139),o=r(4183),s=r(5811),u=r(8301),c=r(8622),l=r(2857).IteratorPrototype,h=r(9393),f=r(5235),d=s("toStringTag"),v="IteratorHelper",p="WrapForValidIterator",y=u.set,g=function(t){var e=u.getterFor(t?p:v);return o(i(l),{next:function(){var r=e(this);if(t)return r.nextHandler();try{var n=r.done?void 0:r.nextHandler();return h(n,r.done)}catch(t){throw r.done=!0,t}},return:function(){var r=e(this),i=r.iterator;if(r.done=!0,t){var a=c(i,"return");return a?n(a,i):h(void 0,!0)}if(r.inner)try{f(r.inner.iterator,"normal")}catch(t){return f(i,"throw",t)}return f(i,"normal"),h(void 0,!0)}})},m=g(!0),b=g(!1);a(b,d,"Iterator Helper"),t.exports=function(t,e){var r=function(r,n){n?(n.iterator=r.iterator,n.next=r.next):n=r,n.type=e?p:v,n.nextHandler=t,n.counter=0,n.done=!1,y(this,n)};return r.prototype=e?m:b,r}},656:(t,e,r)=>{var n=r(5366),i=r(3453),a=r(8507),o=r(2542),s=r(3749),u=r(282),c=r(2611),l=r(9415),h=r(6911),f=r(139),d=r(8552),v=r(5811),p=r(5597),y=r(2857),g=o.PROPER,m=o.CONFIGURABLE,b=y.IteratorPrototype,w=y.BUGGY_SAFARI_ITERATORS,k=v("iterator"),x="keys",A="values",_="entries",E=function(){return this};t.exports=function(t,e,r,o,v,y,S){u(r,e,o);var O,T,P,L=function(t){if(t===v&&R)return R;if(!w&&t&&t in j)return j[t];switch(t){case x:case A:case _:return function(){return new r(this,t)}}return function(){return new r(this)}},M=e+" Iterator",C=!1,j=t.prototype,I=j[k]||j["@@iterator"]||v&&j[v],R=!w&&I||L(v),F="Array"===e&&j.entries||I;if(F&&(O=c(F.call(new t)))!==Object.prototype&&O.next&&(a||c(O)===b||(l?l(O,b):s(O[k])||d(O,k,E)),h(O,M,!0,!0),a&&(p[M]=E)),g&&v===A&&I&&I.name!==A&&(!a&&m?f(j,"name",A):(C=!0,R=function(){return i(I,this)})),v)if(T={values:L(A),keys:y?R:L(x),entries:L(_)},S)for(P in T)(w||C||!(P in j))&&d(j,P,T[P]);else n({target:e,proto:!0,forced:w||C},T);return a&&!S||j[k]===R||d(j,k,R,{name:v}),p[e]=R,T}},4009:(t,e,r)=>{var n=r(3453),i=r(4186),a=r(7447),o=r(3447),s=r(2342),u=r(3535),c=s((function(){var t=this.iterator,e=a(n(this.next,t));if(!(this.done=!!e.done))return u(t,this.mapper,[e.value,this.counter++],!0)}));t.exports=function(t){return a(this),i(t),new c(o(this),{mapper:t})}},2857:(t,e,r)=>{var n,i,a,o=r(3455),s=r(3749),u=r(2674),c=r(5304),l=r(2611),h=r(8552),f=r(5811),d=r(8507),v=f("iterator"),p=!1;[].keys&&("next"in(a=[].keys())?(i=l(l(a)))!==Object.prototype&&(n=i):p=!0),!u(n)||o((function(){var t={};return n[v].call(t)!==t}))?n={}:d&&(n=c(n)),s(n[v])||h(n,v,(function(){return this})),t.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:p}},5597:t=>{t.exports={}},7878:(t,e,r)=>{var n=r(5806);t.exports=function(t){return n(t.length)}},1147:(t,e,r)=>{var n=r(2608),i=r(3455),a=r(3749),o=r(9649),s=r(2444),u=r(2542).CONFIGURABLE,c=r(6906),l=r(8301),h=l.enforce,f=l.get,d=String,v=Object.defineProperty,p=n("".slice),y=n("".replace),g=n([].join),m=s&&!i((function(){return 8!==v((function(){}),"length",{value:8}).length})),b=String(String).split("String"),w=t.exports=function(t,e,r){"Symbol("===p(d(e),0,7)&&(e="["+y(d(e),/^Symbol\\(([^)]*)\\).*$/,"$1")+"]"),r&&r.getter&&(e="get "+e),r&&r.setter&&(e="set "+e),(!o(t,"name")||u&&t.name!==e)&&(s?v(t,"name",{value:e,configurable:!0}):t.name=e),m&&r&&o(r,"arity")&&t.length!==r.arity&&v(t,"length",{value:r.arity});try{r&&o(r,"constructor")&&r.constructor?s&&v(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var n=h(t);return o(n,"source")||(n.source=g(b,"string"==typeof e?e:"")),t};Function.prototype.toString=w((function(){return a(this)&&f(this).source||c(this)}),"toString")},9676:(t,e,r)=>{var n=r(550),i=Math.abs,a=2220446049250313e-31,o=1/a;t.exports=function(t,e,r,s){var u=+t,c=i(u),l=n(u);if(cr||f!=f?l*(1/0):l*f}},3505:(t,e,r)=>{var n=r(9676);t.exports=Math.fround||function(t){return n(t,1.1920928955078125e-7,34028234663852886e22,11754943508222875e-54)}},550:t=>{t.exports=Math.sign||function(t){var e=+t;return 0===e||e!=e?e:e<0?-1:1}},2789:t=>{var e=Math.ceil,r=Math.floor;t.exports=Math.trunc||function(t){var n=+t;return(n>0?r:e)(n)}},755:(t,e,r)=>{var n,i,a,o,s,u=r(4032),c=r(5725),l=r(4864),h=r(1369).set,f=r(3529),d=r(9352),v=r(9081),p=r(628),y=r(4529),g=u.MutationObserver||u.WebKitMutationObserver,m=u.document,b=u.process,w=u.Promise,k=c("queueMicrotask");if(!k){var x=new f,A=function(){var t,e;for(y&&(t=b.domain)&&t.exit();e=x.get();)try{e()}catch(t){throw x.head&&n(),t}t&&t.enter()};d||y||p||!g||!m?!v&&w&&w.resolve?((o=w.resolve(void 0)).constructor=w,s=l(o.then,o),n=function(){s(A)}):y?n=function(){b.nextTick(A)}:(h=l(h,u),n=function(){h(A)}):(i=!0,a=m.createTextNode(""),new g(A).observe(a,{characterData:!0}),n=function(){a.data=i=!i}),k=function(t){x.head||n(),x.add(t)}}t.exports=k},9371:(t,e,r)=>{var n=r(4186),i=TypeError,a=function(t){var e,r;this.promise=new t((function(t,n){if(void 0!==e||void 0!==r)throw new i("Bad Promise constructor");e=t,r=n})),this.resolve=n(e),this.reject=n(r)};t.exports.f=function(t){return new a(t)}},8363:(t,e,r)=>{var n=r(687);t.exports=function(t,e){return void 0===t?arguments.length<2?"":e:n(t)}},821:t=>{var e=RangeError;t.exports=function(t){if(t==t)return t;throw new e("NaN is not allowed")}},3631:(t,e,r)=>{var n=r(6484),i=TypeError;t.exports=function(t){if(n(t))throw new i("The method doesn't accept regular expressions");return t}},8069:(t,e,r)=>{var n=r(2444),i=r(2608),a=r(3453),o=r(3455),s=r(496),u=r(6005),c=r(9221),l=r(4165),h=r(9455),f=Object.assign,d=Object.defineProperty,v=i([].concat);t.exports=!f||o((function(){if(n&&1!==f({b:1},f(d({},"a",{enumerable:!0,get:function(){d(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},r=Symbol("assign detection"),i="abcdefghijklmnopqrst";return t[r]=7,i.split("").forEach((function(t){e[t]=t})),7!==f({},t)[r]||s(f({},e)).join("")!==i}))?function(t,e){for(var r=l(t),i=arguments.length,o=1,f=u.f,d=c.f;i>o;)for(var p,y=h(arguments[o++]),g=f?v(s(y),f(y)):s(y),m=g.length,b=0;m>b;)p=g[b++],n&&!a(d,y,p)||(r[p]=y[p]);return r}:f},5304:(t,e,r)=>{var n,i=r(7447),a=r(9217),o=r(5175),s=r(2645),u=r(3085),c=r(5751),l=r(2343),h="prototype",f="script",d=l("IE_PROTO"),v=function(){},p=function(t){return"<"+f+">"+t+""},y=function(t){t.write(p("")),t.close();var e=t.parentWindow.Object;return t=null,e},g=function(){try{n=new ActiveXObject("htmlfile")}catch(t){}var t,e,r;g="undefined"!=typeof document?document.domain&&n?y(n):(e=c("iframe"),r="java"+f+":",e.style.display="none",u.appendChild(e),e.src=String(r),(t=e.contentWindow.document).open(),t.write(p("document.F=Object")),t.close(),t.F):y(n);for(var i=o.length;i--;)delete g[h][o[i]];return g()};s[d]=!0,t.exports=Object.create||function(t,e){var r;return null!==t?(v[h]=i(t),r=new v,v[h]=null,r[d]=t):r=g(),void 0===e?r:a.f(r,e)}},9217:(t,e,r)=>{var n=r(2444),i=r(782),a=r(1601),o=r(7447),s=r(3637),u=r(496);e.f=n&&!i?Object.defineProperties:function(t,e){o(t);for(var r,n=s(e),i=u(e),c=i.length,l=0;c>l;)a.f(t,r=i[l++],n[r]);return t}},1601:(t,e,r)=>{var n=r(2444),i=r(8829),a=r(782),o=r(7447),s=r(6201),u=TypeError,c=Object.defineProperty,l=Object.getOwnPropertyDescriptor,h="enumerable",f="configurable",d="writable";e.f=n?a?function(t,e,r){if(o(t),e=s(e),o(r),"function"==typeof t&&"prototype"===e&&"value"in r&&d in r&&!r[d]){var n=l(t,e);n&&n[d]&&(t[e]=r.value,r={configurable:f in r?r[f]:n[f],enumerable:h in r?r[h]:n[h],writable:!1})}return c(t,e,r)}:c:function(t,e,r){if(o(t),e=s(e),o(r),i)try{return c(t,e,r)}catch(t){}if("get"in r||"set"in r)throw new u("Accessors not supported");return"value"in r&&(t[e]=r.value),t}},1139:(t,e,r)=>{var n=r(2444),i=r(3453),a=r(9221),o=r(4004),s=r(3637),u=r(6201),c=r(9649),l=r(8829),h=Object.getOwnPropertyDescriptor;e.f=n?h:function(t,e){if(t=s(t),e=u(e),l)try{return h(t,e)}catch(t){}if(c(t,e))return o(!i(a.f,t,e),t[e])}},6442:(t,e,r)=>{var n=r(9872),i=r(3637),a=r(3408).f,o=r(4224),s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return s&&"Window"===n(t)?function(t){try{return a(t)}catch(t){return o(s)}}(t):a(i(t))}},3408:(t,e,r)=>{var n=r(2468),i=r(5175).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return n(t,i)}},6005:(t,e)=>{e.f=Object.getOwnPropertySymbols},2611:(t,e,r)=>{var n=r(9649),i=r(3749),a=r(4165),o=r(2343),s=r(5139),u=o("IE_PROTO"),c=Object,l=c.prototype;t.exports=s?c.getPrototypeOf:function(t){var e=a(t);if(n(e,u))return e[u];var r=e.constructor;return i(r)&&e instanceof r?r.prototype:e instanceof c?l:null}},8812:(t,e,r)=>{var n=r(3455),i=r(2674),a=r(9872),o=r(7060),s=Object.isExtensible,u=n((function(){s(1)}));t.exports=u||o?function(t){return!!i(t)&&(!o||"ArrayBuffer"!==a(t))&&(!s||s(t))}:s},6921:(t,e,r)=>{var n=r(2608);t.exports=n({}.isPrototypeOf)},2468:(t,e,r)=>{var n=r(2608),i=r(9649),a=r(3637),o=r(7921).indexOf,s=r(2645),u=n([].push);t.exports=function(t,e){var r,n=a(t),c=0,l=[];for(r in n)!i(s,r)&&i(n,r)&&u(l,r);for(;e.length>c;)i(n,r=e[c++])&&(~o(l,r)||u(l,r));return l}},496:(t,e,r)=>{var n=r(2468),i=r(5175);t.exports=Object.keys||function(t){return n(t,i)}},9221:(t,e)=>{var r={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,i=n&&!r.call({1:2},1);e.f=i?function(t){var e=n(this,t);return!!e&&e.enumerable}:r},9415:(t,e,r)=>{var n=r(5026),i=r(2674),a=r(7222),o=r(7330);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,r={};try{(t=n(Object.prototype,"__proto__","set"))(r,[]),e=r instanceof Array}catch(t){}return function(r,n){return a(r),o(n),i(r)?(e?t(r,n):r.__proto__=n,r):r}}():void 0)},8885:(t,e,r)=>{var n=r(2444),i=r(3455),a=r(2608),o=r(2611),s=r(496),u=r(3637),c=a(r(9221).f),l=a([].push),h=n&&i((function(){var t=Object.create(null);return t[2]=2,!c(t,2)})),f=function(t){return function(e){for(var r,i=u(e),a=s(i),f=h&&null===o(i),d=a.length,v=0,p=[];d>v;)r=a[v++],n&&!(f?r in i:c(i,r))||l(p,t?[r,i[r]]:i[r]);return p}};t.exports={entries:f(!0),values:f(!1)}},3003:(t,e,r)=>{var n=r(3724),i=r(1179);t.exports=n?{}.toString:function(){return"[object "+i(this)+"]"}},3118:(t,e,r)=>{var n=r(3453),i=r(3749),a=r(2674),o=TypeError;t.exports=function(t,e){var r,s;if("string"===e&&i(r=t.toString)&&!a(s=n(r,t)))return s;if(i(r=t.valueOf)&&!a(s=n(r,t)))return s;if("string"!==e&&i(r=t.toString)&&!a(s=n(r,t)))return s;throw new o("Can't convert object to primitive value")}},2919:(t,e,r)=>{var n=r(8711),i=r(2608),a=r(3408),o=r(6005),s=r(7447),u=i([].concat);t.exports=n("Reflect","ownKeys")||function(t){var e=a.f(s(t)),r=o.f;return r?u(e,r(t)):e}},1448:(t,e,r)=>{var n=r(2608),i=r(9649),a=SyntaxError,o=parseInt,s=String.fromCharCode,u=n("".charAt),c=n("".slice),l=n(/./.exec),h={'\\\\"':'"',"\\\\\\\\":"\\\\","\\\\/":"/","\\\\b":"\\b","\\\\f":"\\f","\\\\n":"\\n","\\\\r":"\\r","\\\\t":"\\t"},f=/^[\\da-f]{4}$/i,d=/^[\\u0000-\\u001F]$/;t.exports=function(t,e){for(var r=!0,n="";e{var n=r(4032);t.exports=n},6703:t=>{t.exports=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}}},9492:(t,e,r)=>{var n=r(4032),i=r(5318),a=r(3749),o=r(5868),s=r(6906),u=r(5811),c=r(7351),l=r(8507),h=r(6415),f=i&&i.prototype,d=u("species"),v=!1,p=a(n.PromiseRejectionEvent),y=o("Promise",(function(){var t=s(i),e=t!==String(i);if(!e&&66===h)return!0;if(l&&(!f.catch||!f.finally))return!0;if(!h||h<51||!/native code/.test(t)){var r=new i((function(t){t(1)})),n=function(t){t((function(){}),(function(){}))};if((r.constructor={})[d]=n,!(v=r.then((function(){}))instanceof n))return!0}return!(e||"BROWSER"!==c&&"DENO"!==c||p)}));t.exports={CONSTRUCTOR:y,REJECTION_EVENT:p,SUBCLASSING:v}},5318:(t,e,r)=>{var n=r(4032);t.exports=n.Promise},1774:(t,e,r)=>{var n=r(7447),i=r(2674),a=r(9371);t.exports=function(t,e){if(n(t),i(e)&&e.constructor===t)return e;var r=a.f(t);return(0,r.resolve)(e),r.promise}},2041:(t,e,r)=>{var n=r(5318),i=r(4348),a=r(9492).CONSTRUCTOR;t.exports=a||!i((function(t){n.all(t).then(void 0,(function(){}))}))},2848:(t,e,r)=>{var n=r(1601).f;t.exports=function(t,e,r){r in t||n(t,r,{configurable:!0,get:function(){return e[r]},set:function(t){e[r]=t}})}},3529:t=>{var e=function(){this.head=null,this.tail=null};e.prototype={add:function(t){var e={item:t,next:null},r=this.tail;r?r.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}},t.exports=e},4410:(t,e,r)=>{var n=r(3453),i=r(7447),a=r(3749),o=r(9872),s=r(9867),u=TypeError;t.exports=function(t,e){var r=t.exec;if(a(r)){var c=n(r,t,e);return null!==c&&i(c),c}if("RegExp"===o(t))return n(s,t,e);throw new u("RegExp#exec called on incompatible receiver")}},9867:(t,e,r)=>{var n,i,a=r(3453),o=r(2608),s=r(687),u=r(747),c=r(1837),l=r(4593),h=r(5304),f=r(8301).get,d=r(3651),v=r(9502),p=l("native-string-replace",String.prototype.replace),y=RegExp.prototype.exec,g=y,m=o("".charAt),b=o("".indexOf),w=o("".replace),k=o("".slice),x=(i=/b*/g,a(y,n=/a/,"a"),a(y,i,"a"),0!==n.lastIndex||0!==i.lastIndex),A=c.BROKEN_CARET,_=void 0!==/()??/.exec("")[1];(x||_||A||d||v)&&(g=function(t){var e,r,n,i,o,c,l,d=this,v=f(d),E=s(t),S=v.raw;if(S)return S.lastIndex=d.lastIndex,e=a(g,S,E),d.lastIndex=S.lastIndex,e;var O=v.groups,T=A&&d.sticky,P=a(u,d),L=d.source,M=0,C=E;if(T&&(P=w(P,"y",""),-1===b(P,"g")&&(P+="g"),C=k(E,d.lastIndex),d.lastIndex>0&&(!d.multiline||d.multiline&&"\\n"!==m(E,d.lastIndex-1))&&(L="(?: "+L+")",C=" "+C,M++),r=new RegExp("^(?:"+L+")",P)),_&&(r=new RegExp("^"+L+"$(?!\\\\s)",P)),x&&(n=d.lastIndex),i=a(y,T?r:d,C),T?i?(i.input=k(i.input,M),i[0]=k(i[0],M),i.index=d.lastIndex,d.lastIndex+=i[0].length):d.lastIndex=0:x&&i&&(d.lastIndex=d.global?i.index+i[0].length:n),_&&i&&i.length>1&&a(p,i[0],r,(function(){for(o=1;o{var n=r(7447);t.exports=function(){var t=n(this),e="";return t.hasIndices&&(e+="d"),t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.unicodeSets&&(e+="v"),t.sticky&&(e+="y"),e}},4554:(t,e,r)=>{var n=r(3453),i=r(9649),a=r(6921),o=r(747),s=RegExp.prototype;t.exports=function(t){var e=t.flags;return void 0!==e||"flags"in s||i(t,"flags")||!a(s,t)?e:n(o,t)}},1837:(t,e,r)=>{var n=r(3455),i=r(4032).RegExp,a=n((function(){var t=i("a","y");return t.lastIndex=2,null!==t.exec("abcd")})),o=a||n((function(){return!i("a","y").sticky})),s=a||n((function(){var t=i("^r","gy");return t.lastIndex=2,null!==t.exec("str")}));t.exports={BROKEN_CARET:s,MISSED_STICKY:o,UNSUPPORTED_Y:a}},3651:(t,e,r)=>{var n=r(3455),i=r(4032).RegExp;t.exports=n((function(){var t=i(".","s");return!(t.dotAll&&t.test("\\n")&&"s"===t.flags)}))},9502:(t,e,r)=>{var n=r(3455),i=r(4032).RegExp;t.exports=n((function(){var t=i("(?b)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$c")}))},7222:(t,e,r)=>{var n=r(6021),i=TypeError;t.exports=function(t){if(n(t))throw new i("Can't call method on "+t);return t}},5725:(t,e,r)=>{var n=r(4032),i=r(2444),a=Object.getOwnPropertyDescriptor;t.exports=function(t){if(!i)return n[t];var e=a(n,t);return e&&e.value}},8550:(t,e,r)=>{var n=r(418),i=r(5605),a=n.Set,o=n.add;t.exports=function(t){var e=new a;return i(t,(function(t){o(e,t)})),e}},4656:(t,e,r)=>{var n=r(4376),i=r(418),a=r(8550),o=r(82),s=r(3885),u=r(5605),c=r(2939),l=i.has,h=i.remove;t.exports=function(t){var e=n(this),r=s(t),i=a(e);return o(e)<=r.size?u(e,(function(t){r.includes(t)&&h(i,t)})):c(r.getIterator(),(function(t){l(e,t)&&h(i,t)})),i}},418:(t,e,r)=>{var n=r(2608),i=Set.prototype;t.exports={Set,add:n(i.add),has:n(i.has),remove:n(i.delete),proto:i}},2446:(t,e,r)=>{var n=r(4376),i=r(418),a=r(82),o=r(3885),s=r(5605),u=r(2939),c=i.Set,l=i.add,h=i.has;t.exports=function(t){var e=n(this),r=o(t),i=new c;return a(e)>r.size?u(r.getIterator(),(function(t){h(e,t)&&l(i,t)})):s(e,(function(t){r.includes(t)&&l(i,t)})),i}},4545:(t,e,r)=>{var n=r(4376),i=r(418).has,a=r(82),o=r(3885),s=r(5605),u=r(2939),c=r(5235);t.exports=function(t){var e=n(this),r=o(t);if(a(e)<=r.size)return!1!==s(e,(function(t){if(r.includes(t))return!1}),!0);var l=r.getIterator();return!1!==u(l,(function(t){if(i(e,t))return c(l,"normal",!1)}))}},7918:(t,e,r)=>{var n=r(4376),i=r(82),a=r(5605),o=r(3885);t.exports=function(t){var e=n(this),r=o(t);return!(i(e)>r.size)&&!1!==a(e,(function(t){if(!r.includes(t))return!1}),!0)}},6111:(t,e,r)=>{var n=r(4376),i=r(418).has,a=r(82),o=r(3885),s=r(2939),u=r(5235);t.exports=function(t){var e=n(this),r=o(t);if(a(e){var n=r(2608),i=r(2939),a=r(418),o=a.Set,s=a.proto,u=n(s.forEach),c=n(s.keys),l=c(new o).next;t.exports=function(t,e,r){return r?i({iterator:c(t),next:l},e):u(t,e)}},1716:(t,e,r)=>{var n=r(8711),i=function(t){return{size:t,has:function(){return!1},keys:function(){return{next:function(){return{done:!0}}}}}};t.exports=function(t){var e=n("Set");try{(new e)[t](i(0));try{return(new e)[t](i(-1)),!1}catch(t){return!0}}catch(t){return!1}}},82:(t,e,r)=>{var n=r(5026),i=r(418);t.exports=n(i.proto,"size","get")||function(t){return t.size}},5409:(t,e,r)=>{var n=r(8711),i=r(8986),a=r(5811),o=r(2444),s=a("species");t.exports=function(t){var e=n(t);o&&e&&!e[s]&&i(e,s,{configurable:!0,get:function(){return this}})}},4498:(t,e,r)=>{var n=r(4376),i=r(418),a=r(8550),o=r(3885),s=r(2939),u=i.add,c=i.has,l=i.remove;t.exports=function(t){var e=n(this),r=o(t).getIterator(),i=a(e);return s(r,(function(t){c(e,t)?l(i,t):u(i,t)})),i}},6911:(t,e,r)=>{var n=r(1601).f,i=r(9649),a=r(5811)("toStringTag");t.exports=function(t,e,r){t&&!r&&(t=t.prototype),t&&!i(t,a)&&n(t,a,{configurable:!0,value:e})}},9500:(t,e,r)=>{var n=r(4376),i=r(418).add,a=r(8550),o=r(3885),s=r(2939);t.exports=function(t){var e=n(this),r=o(t).getIterator(),u=a(e);return s(r,(function(t){i(u,t)})),u}},2343:(t,e,r)=>{var n=r(4593),i=r(5936),a=n("keys");t.exports=function(t){return a[t]||(a[t]=i(t))}},2205:(t,e,r)=>{var n=r(8507),i=r(4032),a=r(5801),o="__core-js_shared__",s=t.exports=i[o]||a(o,{});(s.versions||(s.versions=[])).push({version:"3.38.1",mode:n?"pure":"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE",source:"https://github.com/zloirock/core-js"})},4593:(t,e,r)=>{var n=r(2205);t.exports=function(t,e){return n[t]||(n[t]=e||{})}},1365:(t,e,r)=>{var n=r(7447),i=r(9052),a=r(6021),o=r(5811)("species");t.exports=function(t,e){var r,s=n(t).constructor;return void 0===s||a(r=n(s)[o])?e:i(r)}},6903:(t,e,r)=>{var n=r(2608),i=r(1211),a=r(687),o=r(7222),s=n("".charAt),u=n("".charCodeAt),c=n("".slice),l=function(t){return function(e,r){var n,l,h=a(o(e)),f=i(r),d=h.length;return f<0||f>=d?t?"":void 0:(n=u(h,f))<55296||n>56319||f+1===d||(l=u(h,f+1))<56320||l>57343?t?s(h,f):n:t?c(h,f,f+2):l-56320+(n-55296<<10)+65536}};t.exports={codeAt:l(!1),charAt:l(!0)}},4903:(t,e,r)=>{var n=r(7607);t.exports=/Version\\/10(?:\\.\\d+){1,2}(?: [\\w./]+)?(?: Mobile\\/\\w+)? Safari\\//.test(n)},6437:(t,e,r)=>{var n=r(2608),i=r(5806),a=r(687),o=r(6605),s=r(7222),u=n(o),c=n("".slice),l=Math.ceil,h=function(t){return function(e,r,n){var o,h,f=a(s(e)),d=i(r),v=f.length,p=void 0===n?" ":a(n);return d<=v||""===p?f:((h=u(p,l((o=d-v)/p.length))).length>o&&(h=c(h,0,o)),t?f+h:h+f)}};t.exports={start:h(!1),end:h(!0)}},5141:(t,e,r)=>{var n=r(2608),i=2147483647,a=/[^\\0-\\u007E]/,o=/[.\\u3002\\uFF0E\\uFF61]/g,s="Overflow: input needs wider integers to process",u=RangeError,c=n(o.exec),l=Math.floor,h=String.fromCharCode,f=n("".charCodeAt),d=n([].join),v=n([].push),p=n("".replace),y=n("".split),g=n("".toLowerCase),m=function(t){return t+22+75*(t<26)},b=function(t,e,r){var n=0;for(t=r?l(t/700):t>>1,t+=l(t/e);t>455;)t=l(t/35),n+=36;return l(n+36*t/(t+38))},w=function(t){var e=[];t=function(t){for(var e=[],r=0,n=t.length;r=55296&&i<=56319&&r=o&&nl((i-c)/k))throw new u(s);for(c+=(w-o)*k,o=w,r=0;ri)throw new u(s);if(n===o){for(var x=c,A=36;;){var _=A<=p?1:A>=p+26?26:A-p;if(x<_)break;var E=x-_,S=36-_;v(e,h(m(_+E%S))),x=l(E/S),A+=36}v(e,h(m(x))),p=b(c,k,g===y),c=0,g++}}c++,o++}return d(e,"")};t.exports=function(t){var e,r,n=[],i=y(p(g(t),o,"."),".");for(e=0;e{var n=r(1211),i=r(687),a=r(7222),o=RangeError;t.exports=function(t){var e=i(a(this)),r="",s=n(t);if(s<0||s===1/0)throw new o("Wrong number of repetitions");for(;s>0;(s>>>=1)&&(e+=e))1&s&&(r+=e);return r}},2882:(t,e,r)=>{var n=r(9418).end,i=r(3794);t.exports=i("trimEnd")?function(){return n(this)}:"".trimEnd},3794:(t,e,r)=>{var n=r(2542).PROPER,i=r(3455),a=r(2284);t.exports=function(t){return i((function(){return!!a[t]()||"​…᠎"!=="​…᠎"[t]()||n&&a[t].name!==t}))}},9418:(t,e,r)=>{var n=r(2608),i=r(7222),a=r(687),o=r(2284),s=n("".replace),u=RegExp("^["+o+"]+"),c=RegExp("(^|[^"+o+"])["+o+"]+$"),l=function(t){return function(e){var r=a(i(e));return 1&t&&(r=s(r,u,"")),2&t&&(r=s(r,c,"$1")),r}};t.exports={start:l(1),end:l(2),trim:l(3)}},6572:(t,e,r)=>{var n=r(4032),i=r(3455),a=r(6415),o=r(7351),s=n.structuredClone;t.exports=!!s&&!i((function(){if("DENO"===o&&a>92||"NODE"===o&&a>94||"BROWSER"===o&&a>97)return!1;var t=new ArrayBuffer(8),e=s(t,{transfer:[t]});return 0!==t.byteLength||8!==e.byteLength}))},6943:(t,e,r)=>{var n=r(6415),i=r(3455),a=r(4032).String;t.exports=!!Object.getOwnPropertySymbols&&!i((function(){var t=Symbol("symbol detection");return!a(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&n&&n<41}))},3042:(t,e,r)=>{var n=r(3453),i=r(8711),a=r(5811),o=r(8552);t.exports=function(){var t=i("Symbol"),e=t&&t.prototype,r=e&&e.valueOf,s=a("toPrimitive");e&&!e[s]&&o(e,s,(function(t){return n(r,this)}),{arity:1})}},8592:(t,e,r)=>{var n=r(6943);t.exports=n&&!!Symbol.for&&!!Symbol.keyFor},1369:(t,e,r)=>{var n,i,a,o,s=r(4032),u=r(3881),c=r(4864),l=r(3749),h=r(9649),f=r(3455),d=r(3085),v=r(4224),p=r(5751),y=r(7900),g=r(9352),m=r(4529),b=s.setImmediate,w=s.clearImmediate,k=s.process,x=s.Dispatch,A=s.Function,_=s.MessageChannel,E=s.String,S=0,O={},T="onreadystatechange";f((function(){n=s.location}));var P=function(t){if(h(O,t)){var e=O[t];delete O[t],e()}},L=function(t){return function(){P(t)}},M=function(t){P(t.data)},C=function(t){s.postMessage(E(t),n.protocol+"//"+n.host)};b&&w||(b=function(t){y(arguments.length,1);var e=l(t)?t:A(t),r=v(arguments,1);return O[++S]=function(){u(e,void 0,r)},i(S),S},w=function(t){delete O[t]},m?i=function(t){k.nextTick(L(t))}:x&&x.now?i=function(t){x.now(L(t))}:_&&!g?(o=(a=new _).port2,a.port1.onmessage=M,i=c(o.postMessage,o)):s.addEventListener&&l(s.postMessage)&&!s.importScripts&&n&&"file:"!==n.protocol&&!f(C)?(i=C,s.addEventListener("message",M,!1)):i=T in p("script")?function(t){d.appendChild(p("script"))[T]=function(){d.removeChild(this),P(t)}}:function(t){setTimeout(L(t),0)}),t.exports={set:b,clear:w}},9002:(t,e,r)=>{var n=r(1211),i=Math.max,a=Math.min;t.exports=function(t,e){var r=n(t);return r<0?i(r+e,0):a(r,e)}},1198:(t,e,r)=>{var n=r(8921),i=TypeError;t.exports=function(t){var e=n(t,"number");if("number"==typeof e)throw new i("Can't convert number to bigint");return BigInt(e)}},9088:(t,e,r)=>{var n=r(1211),i=r(5806),a=RangeError;t.exports=function(t){if(void 0===t)return 0;var e=n(t),r=i(e);if(e!==r)throw new a("Wrong length or index");return r}},3637:(t,e,r)=>{var n=r(9455),i=r(7222);t.exports=function(t){return n(i(t))}},1211:(t,e,r)=>{var n=r(2789);t.exports=function(t){var e=+t;return e!=e||0===e?0:n(e)}},5806:(t,e,r)=>{var n=r(1211),i=Math.min;t.exports=function(t){var e=n(t);return e>0?i(e,9007199254740991):0}},4165:(t,e,r)=>{var n=r(7222),i=Object;t.exports=function(t){return i(n(t))}},8402:(t,e,r)=>{var n=r(5590),i=RangeError;t.exports=function(t,e){var r=n(t);if(r%e)throw new i("Wrong offset");return r}},5590:(t,e,r)=>{var n=r(1211),i=RangeError;t.exports=function(t){var e=n(t);if(e<0)throw new i("The argument can't be less than 0");return e}},8921:(t,e,r)=>{var n=r(3453),i=r(2674),a=r(2277),o=r(8622),s=r(3118),u=r(5811),c=TypeError,l=u("toPrimitive");t.exports=function(t,e){if(!i(t)||a(t))return t;var r,u=o(t,l);if(u){if(void 0===e&&(e="default"),r=n(u,t,e),!i(r)||a(r))return r;throw new c("Can't convert object to primitive value")}return void 0===e&&(e="number"),s(t,e)}},6201:(t,e,r)=>{var n=r(8921),i=r(2277);t.exports=function(t){var e=n(t,"string");return i(e)?e:e+""}},3724:(t,e,r)=>{var n={};n[r(5811)("toStringTag")]="z",t.exports="[object z]"===String(n)},687:(t,e,r)=>{var n=r(1179),i=String;t.exports=function(t){if("Symbol"===n(t))throw new TypeError("Cannot convert a Symbol value to a string");return i(t)}},5215:t=>{var e=Math.round;t.exports=function(t){var r=e(t);return r<0?0:r>255?255:255&r}},8055:t=>{var e=String;t.exports=function(t){try{return e(t)}catch(t){return"Object"}}},8975:(t,e,r)=>{var n=r(5366),i=r(4032),a=r(3453),o=r(2444),s=r(949),u=r(4356),c=r(7226),l=r(3399),h=r(4004),f=r(139),d=r(2599),v=r(5806),p=r(9088),y=r(8402),g=r(5215),m=r(6201),b=r(9649),w=r(1179),k=r(2674),x=r(2277),A=r(5304),_=r(6921),E=r(9415),S=r(3408).f,O=r(2291),T=r(5645).forEach,P=r(5409),L=r(8986),M=r(1601),C=r(1139),j=r(7434),I=r(8301),R=r(3951),F=I.get,D=I.set,N=I.enforce,W=M.f,B=C.f,G=i.RangeError,H=c.ArrayBuffer,U=H.prototype,z=c.DataView,V=u.NATIVE_ARRAY_BUFFER_VIEWS,q=u.TYPED_ARRAY_TAG,Y=u.TypedArray,X=u.TypedArrayPrototype,K=u.isTypedArray,Q="BYTES_PER_ELEMENT",J="Wrong length",$=function(t,e){L(t,e,{configurable:!0,get:function(){return F(this)[e]}})},Z=function(t){var e;return _(U,t)||"ArrayBuffer"===(e=w(t))||"SharedArrayBuffer"===e},tt=function(t,e){return K(t)&&!x(e)&&e in t&&d(+e)&&e>=0},et=function(t,e){return e=m(e),tt(t,e)?h(2,t[e]):B(t,e)},rt=function(t,e,r){return e=m(e),!(tt(t,e)&&k(r)&&b(r,"value"))||b(r,"get")||b(r,"set")||r.configurable||b(r,"writable")&&!r.writable||b(r,"enumerable")&&!r.enumerable?W(t,e,r):(t[e]=r.value,t)};o?(V||(C.f=et,M.f=rt,$(X,"buffer"),$(X,"byteOffset"),$(X,"byteLength"),$(X,"length")),n({target:"Object",stat:!0,forced:!V},{getOwnPropertyDescriptor:et,defineProperty:rt}),t.exports=function(t,e,r){var o=t.match(/\\d+/)[0]/8,u=t+(r?"Clamped":"")+"Array",c="get"+t,h="set"+t,d=i[u],m=d,b=m&&m.prototype,w={},x=function(t,e){W(t,e,{get:function(){return function(t,e){var r=F(t);return r.view[c](e*o+r.byteOffset,!0)}(this,e)},set:function(t){return function(t,e,n){var i=F(t);i.view[h](e*o+i.byteOffset,r?g(n):n,!0)}(this,e,t)},enumerable:!0})};V?s&&(m=e((function(t,e,r,n){return l(t,b),R(k(e)?Z(e)?void 0!==n?new d(e,y(r,o),n):void 0!==r?new d(e,y(r,o)):new d(e):K(e)?j(m,e):a(O,m,e):new d(p(e)),t,m)})),E&&E(m,Y),T(S(d),(function(t){t in m||f(m,t,d[t])})),m.prototype=b):(m=e((function(t,e,r,n){l(t,b);var i,s,u,c=0,h=0;if(k(e)){if(!Z(e))return K(e)?j(m,e):a(O,m,e);i=e,h=y(r,o);var f=e.byteLength;if(void 0===n){if(f%o)throw new G(J);if((s=f-h)<0)throw new G(J)}else if((s=v(n)*o)+h>f)throw new G(J);u=s/o}else u=p(e),i=new H(s=u*o);for(D(t,{buffer:i,byteOffset:h,byteLength:s,length:u,view:new z(i)});c{var n=r(4032),i=r(3455),a=r(4348),o=r(4356).NATIVE_ARRAY_BUFFER_VIEWS,s=n.ArrayBuffer,u=n.Int8Array;t.exports=!o||!i((function(){u(1)}))||!i((function(){new u(-1)}))||!a((function(t){new u,new u(null),new u(1.5),new u(t)}),!0)||i((function(){return 1!==new u(new s(2),1,void 0).length}))},85:(t,e,r)=>{var n=r(7434),i=r(580);t.exports=function(t,e){return n(i(t),e)}},2291:(t,e,r)=>{var n=r(4864),i=r(3453),a=r(9052),o=r(4165),s=r(7878),u=r(6961),c=r(7507),l=r(993),h=r(5415),f=r(4356).aTypedArrayConstructor,d=r(1198);t.exports=function(t){var e,r,v,p,y,g,m,b,w=a(this),k=o(t),x=arguments.length,A=x>1?arguments[1]:void 0,_=void 0!==A,E=c(k);if(E&&!l(E))for(b=(m=u(k,E)).next,k=[];!(g=i(b,m)).done;)k.push(g.value);for(_&&x>2&&(A=n(A,arguments[2])),r=s(k),v=new(f(w))(r),p=h(v),e=0;r>e;e++)y=_?A(k[e],e):k[e],v[e]=p?d(y):+y;return v}},580:(t,e,r)=>{var n=r(4356),i=r(1365),a=n.aTypedArrayConstructor,o=n.getTypedArrayConstructor;t.exports=function(t){return a(i(t,o(t)))}},5936:(t,e,r)=>{var n=r(2608),i=0,a=Math.random(),o=n(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+o(++i+a,36)}},8200:(t,e,r)=>{var n=r(3455),i=r(5811),a=r(2444),o=r(8507),s=i("iterator");t.exports=!n((function(){var t=new URL("b?a=1&b=2&c=3","https://a"),e=t.searchParams,r=new URLSearchParams("a=1&a=2&b=3"),n="";return t.pathname="c%20d",e.forEach((function(t,r){e.delete("b"),n+=r+t})),r.delete("a",2),r.delete("b",void 0),o&&(!t.toJSON||!r.has("a",1)||r.has("a",2)||!r.has("a",void 0)||r.has("b"))||!e.size&&(o||!a)||!e.sort||"https://a/c%20d?a=1&c=3"!==t.href||"3"!==e.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!e[s]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("https://тест").host||"#%D0%B1"!==new URL("https://a#б").hash||"a1c3"!==n||"x"!==new URL("https://x",void 0).host}))},4752:(t,e,r)=>{var n=r(6943);t.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},782:(t,e,r)=>{var n=r(2444),i=r(3455);t.exports=n&&i((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},7900:t=>{var e=TypeError;t.exports=function(t,r){if(t{var n=r(4032),i=r(3749),a=n.WeakMap;t.exports=i(a)&&/native code/.test(String(a))},5343:(t,e,r)=>{var n=r(8799),i=r(9649),a=r(4559),o=r(1601).f;t.exports=function(t){var e=n.Symbol||(n.Symbol={});i(e,t)||o(e,t,{value:a.f(t)})}},4559:(t,e,r)=>{var n=r(5811);e.f=n},5811:(t,e,r)=>{var n=r(4032),i=r(4593),a=r(9649),o=r(5936),s=r(6943),u=r(4752),c=n.Symbol,l=i("wks"),h=u?c.for||c:c&&c.withoutSetter||o;t.exports=function(t){return a(l,t)||(l[t]=s&&a(c,t)?c[t]:h("Symbol."+t)),l[t]}},2284:t=>{t.exports="\\t\\n\\v\\f\\r                 \\u2028\\u2029\\ufeff"},9257:(t,e,r)=>{var n=r(8711),i=r(9649),a=r(139),o=r(6921),s=r(9415),u=r(2924),c=r(2848),l=r(3951),h=r(8363),f=r(2483),d=r(4171),v=r(2444),p=r(8507);t.exports=function(t,e,r,y){var g="stackTraceLimit",m=y?2:1,b=t.split("."),w=b[b.length-1],k=n.apply(null,b);if(k){var x=k.prototype;if(!p&&i(x,"cause")&&delete x.cause,!r)return k;var A=n("Error"),_=e((function(t,e){var r=h(y?e:t,void 0),n=y?new k(t):new k;return void 0!==r&&a(n,"message",r),d(n,_,n.stack,2),this&&o(x,this)&&l(n,this,_),arguments.length>m&&f(n,arguments[m]),n}));if(_.prototype=x,"Error"!==w?s?s(_,A):u(_,A,{name:!0}):v&&g in k&&(c(_,k,g),c(_,k,"prepareStackTrace")),u(_,k),!p)try{x.name!==w&&a(x,"name",w),x.constructor=_}catch(t){}return _}}},5015:(t,e,r)=>{var n=r(5366),i=r(4032),a=r(7226),o=r(5409),s="ArrayBuffer",u=a[s];n({global:!0,constructor:!0,forced:i[s]!==u},{ArrayBuffer:u}),o(s)},9261:(t,e,r)=>{var n=r(2444),i=r(8986),a=r(8102),o=ArrayBuffer.prototype;n&&!("detached"in o)&&i(o,"detached",{configurable:!0,get:function(){return a(this)}})},6209:(t,e,r)=>{var n=r(5366),i=r(2116),a=r(3455),o=r(7226),s=r(7447),u=r(9002),c=r(5806),l=r(1365),h=o.ArrayBuffer,f=o.DataView,d=f.prototype,v=i(h.prototype.slice),p=i(d.getUint8),y=i(d.setUint8);n({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:a((function(){return!new h(2).slice(1,void 0).byteLength}))},{slice:function(t,e){if(v&&void 0===e)return v(s(this),t);for(var r=s(this).byteLength,n=u(t,r),i=u(void 0===e?r:e,r),a=new(l(this,h))(c(i-n)),o=new f(this),d=new f(a),g=0;n{var n=r(5366),i=r(4676);i&&n({target:"ArrayBuffer",proto:!0},{transferToFixedLength:function(){return i(this,arguments.length?arguments[0]:void 0,!1)}})},3700:(t,e,r)=>{var n=r(5366),i=r(4676);i&&n({target:"ArrayBuffer",proto:!0},{transfer:function(){return i(this,arguments.length?arguments[0]:void 0,!0)}})},6347:(t,e,r)=>{var n=r(5366),i=r(4165),a=r(7878),o=r(1211),s=r(1458);n({target:"Array",proto:!0},{at:function(t){var e=i(this),r=a(e),n=o(t),s=n>=0?n:r+n;return s<0||s>=r?void 0:e[s]}}),s("at")},3234:(t,e,r)=>{var n=r(5366),i=r(3455),a=r(5448),o=r(2674),s=r(4165),u=r(7878),c=r(9573),l=r(3552),h=r(1453),f=r(9077),d=r(5811),v=r(6415),p=d("isConcatSpreadable"),y=v>=51||!i((function(){var t=[];return t[p]=!1,t.concat()[0]!==t})),g=function(t){if(!o(t))return!1;var e=t[p];return void 0!==e?!!e:a(t)};n({target:"Array",proto:!0,arity:1,forced:!y||!f("concat")},{concat:function(t){var e,r,n,i,a,o=s(this),f=h(o,0),d=0;for(e=-1,n=arguments.length;e{var n=r(5366),i=r(5645).filter;n({target:"Array",proto:!0,forced:!r(9077)("filter")},{filter:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},4302:(t,e,r)=>{var n=r(5366),i=r(2851),a=r(4186),o=r(4165),s=r(7878),u=r(1453);n({target:"Array",proto:!0},{flatMap:function(t){var e,r=o(this),n=s(r);return a(t),(e=u(r,0)).length=i(e,r,r,n,0,1,t,arguments.length>1?arguments[1]:void 0),e}})},6746:(t,e,r)=>{var n=r(5366),i=r(3948);n({target:"Array",stat:!0,forced:!r(4348)((function(t){Array.from(t)}))},{from:i})},8551:(t,e,r)=>{var n=r(5366),i=r(7921).includes,a=r(3455),o=r(1458);n({target:"Array",proto:!0,forced:a((function(){return!Array(1).includes()}))},{includes:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),o("includes")},3276:(t,e,r)=>{var n=r(5366),i=r(2116),a=r(7921).indexOf,o=r(1814),s=i([].indexOf),u=!!s&&1/s([1],1,-0)<0;n({target:"Array",proto:!0,forced:u||!o("indexOf")},{indexOf:function(t){var e=arguments.length>1?arguments[1]:void 0;return u?s(this,t,e)||0:a(this,t,e)}})},9024:(t,e,r)=>{var n=r(3637),i=r(1458),a=r(5597),o=r(8301),s=r(1601).f,u=r(656),c=r(9393),l=r(8507),h=r(2444),f="Array Iterator",d=o.set,v=o.getterFor(f);t.exports=u(Array,"Array",(function(t,e){d(this,{type:f,target:n(t),index:0,kind:e})}),(function(){var t=v(this),e=t.target,r=t.index++;if(!e||r>=e.length)return t.target=null,c(void 0,!0);switch(t.kind){case"keys":return c(r,!1);case"values":return c(e[r],!1)}return c([r,e[r]],!1)}),"values");var p=a.Arguments=a.Array;if(i("keys"),i("values"),i("entries"),!l&&h&&"values"!==p.name)try{s(p,"name",{value:"values"})}catch(t){}},3177:(t,e,r)=>{var n=r(5366),i=r(3499);n({target:"Array",proto:!0,forced:i!==[].lastIndexOf},{lastIndexOf:i})},5550:(t,e,r)=>{var n=r(5366),i=r(5645).map;n({target:"Array",proto:!0,forced:!r(9077)("map")},{map:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},9138:(t,e,r)=>{var n=r(5366),i=r(4165),a=r(7878),o=r(7375),s=r(9573);n({target:"Array",proto:!0,arity:1,forced:r(3455)((function(){return 4294967297!==[].push.call({length:4294967296},1)}))||!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(t){return t instanceof TypeError}}()},{push:function(t){var e=i(this),r=a(e),n=arguments.length;s(r+n);for(var u=0;u{var n=r(5366),i=r(4734).left,a=r(1814),o=r(6415);n({target:"Array",proto:!0,forced:!r(4529)&&o>79&&o<83||!a("reduce")},{reduce:function(t){var e=arguments.length;return i(this,t,e,e>1?arguments[1]:void 0)}})},4413:(t,e,r)=>{var n=r(5366),i=r(2608),a=r(5448),o=i([].reverse),s=[1,2];n({target:"Array",proto:!0,forced:String(s)===String(s.reverse())},{reverse:function(){return a(this)&&(this.length=this.length),o(this)}})},750:(t,e,r)=>{var n=r(5366),i=r(5448),a=r(8413),o=r(2674),s=r(9002),u=r(7878),c=r(3637),l=r(3552),h=r(5811),f=r(9077),d=r(4224),v=f("slice"),p=h("species"),y=Array,g=Math.max;n({target:"Array",proto:!0,forced:!v},{slice:function(t,e){var r,n,h,f=c(this),v=u(f),m=s(t,v),b=s(void 0===e?v:e,v);if(i(f)&&(r=f.constructor,(a(r)&&(r===y||i(r.prototype))||o(r)&&null===(r=r[p]))&&(r=void 0),r===y||void 0===r))return d(f,m,b);for(n=new(void 0===r?y:r)(g(b-m,0)),h=0;m{var n=r(5366),i=r(2608),a=r(4186),o=r(4165),s=r(7878),u=r(1870),c=r(687),l=r(3455),h=r(5272),f=r(1814),d=r(7085),v=r(5123),p=r(6415),y=r(1911),g=[],m=i(g.sort),b=i(g.push),w=l((function(){g.sort(void 0)})),k=l((function(){g.sort(null)})),x=f("sort"),A=!l((function(){if(p)return p<70;if(!(d&&d>3)){if(v)return!0;if(y)return y<603;var t,e,r,n,i="";for(t=65;t<76;t++){switch(e=String.fromCharCode(t),t){case 66:case 69:case 70:case 72:r=3;break;case 68:case 71:r=4;break;default:r=2}for(n=0;n<47;n++)g.push({k:e+n,v:r})}for(g.sort((function(t,e){return e.v-t.v})),n=0;nc(r)?1:-1}}(t)),r=s(i),n=0;n{var n=r(5366),i=r(4165),a=r(9002),o=r(1211),s=r(7878),u=r(7375),c=r(9573),l=r(1453),h=r(3552),f=r(1870),d=r(9077)("splice"),v=Math.max,p=Math.min;n({target:"Array",proto:!0,forced:!d},{splice:function(t,e){var r,n,d,y,g,m,b=i(this),w=s(b),k=a(t,w),x=arguments.length;for(0===x?r=n=0:1===x?(r=0,n=w-k):(r=x-2,n=p(v(o(e),0),w-k)),c(w+r-n),d=l(b,n),y=0;yw-n+r;y--)f(b,y-1)}else if(r>n)for(y=w-n;y>k;y--)m=y+r-1,(g=y+n-1)in b?b[m]=b[g]:f(b,m);for(y=0;y{r(1458)("flatMap")},6851:(t,e,r)=>{var n=r(5366),i=r(3455),a=r(4165),o=r(8921);n({target:"Date",proto:!0,arity:1,forced:i((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=a(this),r=o(e,"number");return"number"!=typeof r||isFinite(r)?e.toISOString():null}})},7316:(t,e,r)=>{var n=r(9649),i=r(8552),a=r(952),o=r(5811)("toPrimitive"),s=Date.prototype;n(s,o)||i(s,o,a)},184:(t,e,r)=>{var n=r(5366),i=r(4032),a=r(3881),o=r(9257),s="WebAssembly",u=i[s],c=7!==new Error("e",{cause:7}).cause,l=function(t,e){var r={};r[t]=o(t,e,c),n({global:!0,constructor:!0,arity:1,forced:c},r)},h=function(t,e){if(u&&u[t]){var r={};r[t]=o(s+"."+t,e,c),n({target:s,stat:!0,constructor:!0,arity:1,forced:c},r)}};l("Error",(function(t){return function(e){return a(t,this,arguments)}})),l("EvalError",(function(t){return function(e){return a(t,this,arguments)}})),l("RangeError",(function(t){return function(e){return a(t,this,arguments)}})),l("ReferenceError",(function(t){return function(e){return a(t,this,arguments)}})),l("SyntaxError",(function(t){return function(e){return a(t,this,arguments)}})),l("TypeError",(function(t){return function(e){return a(t,this,arguments)}})),l("URIError",(function(t){return function(e){return a(t,this,arguments)}})),h("CompileError",(function(t){return function(e){return a(t,this,arguments)}})),h("LinkError",(function(t){return function(e){return a(t,this,arguments)}})),h("RuntimeError",(function(t){return function(e){return a(t,this,arguments)}}))},8169:(t,e,r)=>{var n=r(5366),i=r(4032);n({global:!0,forced:i.globalThis!==i},{globalThis:i})},9750:(t,e,r)=>{var n=r(5366),i=r(8711),a=r(3881),o=r(3453),s=r(2608),u=r(3455),c=r(3749),l=r(2277),h=r(4224),f=r(213),d=r(6943),v=String,p=i("JSON","stringify"),y=s(/./.exec),g=s("".charAt),m=s("".charCodeAt),b=s("".replace),w=s(1..toString),k=/[\\uD800-\\uDFFF]/g,x=/^[\\uD800-\\uDBFF]$/,A=/^[\\uDC00-\\uDFFF]$/,_=!d||u((function(){var t=i("Symbol")("stringify detection");return"[null]"!==p([t])||"{}"!==p({a:t})||"{}"!==p(Object(t))})),E=u((function(){return'"\\\\udf06\\\\ud834"'!==p("\\udf06\\ud834")||'"\\\\udead"'!==p("\\udead")})),S=function(t,e){var r=h(arguments),n=f(e);if(c(n)||void 0!==t&&!l(t))return r[1]=function(t,e){if(c(n)&&(e=o(n,this,v(t),e)),!l(e))return e},a(p,null,r)},O=function(t,e,r){var n=g(r,e-1),i=g(r,e+1);return y(x,t)&&!y(A,i)||y(A,t)&&!y(x,n)?"\\\\u"+w(m(t,0),16):t};p&&n({target:"JSON",stat:!0,arity:3,forced:_||E},{stringify:function(t,e,r){var n=h(arguments),i=a(_?S:p,null,n);return E&&"string"==typeof i?b(i,k,O):i}})},7531:(t,e,r)=>{var n=r(4032);r(6911)(n.JSON,"JSON",!0)},6539:(t,e,r)=>{r(9556)("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r(2042))},1425:(t,e,r)=>{r(6539)},3821:(t,e,r)=>{var n=r(5366),i=Math.hypot,a=Math.abs,o=Math.sqrt;n({target:"Math",stat:!0,arity:2,forced:!!i&&i(1/0,NaN)!==1/0},{hypot:function(t,e){for(var r,n,i=0,s=0,u=arguments.length,c=0;s0?(n=r/c)*n:r;return c===1/0?1/0:c*o(i)}})},1999:(t,e,r)=>{r(6911)(Math,"Math",!0)},8674:(t,e,r)=>{var n=r(5366),i=r(8885).entries;n({target:"Object",stat:!0},{entries:function(t){return i(t)}})},4129:(t,e,r)=>{var n=r(5366),i=r(1804),a=r(3552);n({target:"Object",stat:!0},{fromEntries:function(t){var e={};return i(t,(function(t,r){a(e,t,r)}),{AS_ENTRIES:!0}),e}})},702:(t,e,r)=>{var n=r(5366),i=r(2444),a=r(2919),o=r(3637),s=r(1139),u=r(3552);n({target:"Object",stat:!0,sham:!i},{getOwnPropertyDescriptors:function(t){for(var e,r,n=o(t),i=s.f,c=a(n),l={},h=0;c.length>h;)void 0!==(r=i(n,e=c[h++]))&&u(l,e,r);return l}})},1309:(t,e,r)=>{var n=r(5366),i=r(6943),a=r(3455),o=r(6005),s=r(4165);n({target:"Object",stat:!0,forced:!i||a((function(){o.f(1)}))},{getOwnPropertySymbols:function(t){var e=o.f;return e?e(s(t)):[]}})},3379:(t,e,r)=>{var n=r(3724),i=r(8552),a=r(3003);n||i(Object.prototype,"toString",a,{unsafe:!0})},482:(t,e,r)=>{var n=r(5366),i=r(8885).values;n({target:"Object",stat:!0},{values:function(t){return i(t)}})},5204:(t,e,r)=>{var n=r(5366),i=r(3453),a=r(4186),o=r(9371),s=r(6703),u=r(1804);n({target:"Promise",stat:!0,forced:r(2041)},{allSettled:function(t){var e=this,r=o.f(e),n=r.resolve,c=r.reject,l=s((function(){var r=a(e.resolve),o=[],s=0,c=1;u(t,(function(t){var a=s++,u=!1;c++,i(r,e,t).then((function(t){u||(u=!0,o[a]={status:"fulfilled",value:t},--c||n(o))}),(function(t){u||(u=!0,o[a]={status:"rejected",reason:t},--c||n(o))}))})),--c||n(o)}));return l.error&&c(l.value),r.promise}})},6195:(t,e,r)=>{var n=r(5366),i=r(3453),a=r(4186),o=r(9371),s=r(6703),u=r(1804);n({target:"Promise",stat:!0,forced:r(2041)},{all:function(t){var e=this,r=o.f(e),n=r.resolve,c=r.reject,l=s((function(){var r=a(e.resolve),o=[],s=0,l=1;u(t,(function(t){var a=s++,u=!1;l++,i(r,e,t).then((function(t){u||(u=!0,o[a]=t,--l||n(o))}),c)})),--l||n(o)}));return l.error&&c(l.value),r.promise}})},1459:(t,e,r)=>{var n=r(5366),i=r(8507),a=r(9492).CONSTRUCTOR,o=r(5318),s=r(8711),u=r(3749),c=r(8552),l=o&&o.prototype;if(n({target:"Promise",proto:!0,forced:a,real:!0},{catch:function(t){return this.then(void 0,t)}}),!i&&u(o)){var h=s("Promise").prototype.catch;l.catch!==h&&c(l,"catch",h,{unsafe:!0})}},9236:(t,e,r)=>{var n,i,a,o=r(5366),s=r(8507),u=r(4529),c=r(4032),l=r(3453),h=r(8552),f=r(9415),d=r(6911),v=r(5409),p=r(4186),y=r(3749),g=r(2674),m=r(3399),b=r(1365),w=r(1369).set,k=r(755),x=r(4885),A=r(6703),_=r(3529),E=r(8301),S=r(5318),O=r(9492),T=r(9371),P="Promise",L=O.CONSTRUCTOR,M=O.REJECTION_EVENT,C=O.SUBCLASSING,j=E.getterFor(P),I=E.set,R=S&&S.prototype,F=S,D=R,N=c.TypeError,W=c.document,B=c.process,G=T.f,H=G,U=!!(W&&W.createEvent&&c.dispatchEvent),z="unhandledrejection",V=function(t){var e;return!(!g(t)||!y(e=t.then))&&e},q=function(t,e){var r,n,i,a=e.value,o=1===e.state,s=o?t.ok:t.fail,u=t.resolve,c=t.reject,h=t.domain;try{s?(o||(2===e.rejection&&J(e),e.rejection=1),!0===s?r=a:(h&&h.enter(),r=s(a),h&&(h.exit(),i=!0)),r===t.promise?c(new N("Promise-chain cycle")):(n=V(r))?l(n,r,u,c):u(r)):c(a)}catch(t){h&&!i&&h.exit(),c(t)}},Y=function(t,e){t.notified||(t.notified=!0,k((function(){for(var r,n=t.reactions;r=n.get();)q(r,t);t.notified=!1,e&&!t.rejection&&K(t)})))},X=function(t,e,r){var n,i;U?((n=W.createEvent("Event")).promise=e,n.reason=r,n.initEvent(t,!1,!0),c.dispatchEvent(n)):n={promise:e,reason:r},!M&&(i=c["on"+t])?i(n):t===z&&x("Unhandled promise rejection",r)},K=function(t){l(w,c,(function(){var e,r=t.facade,n=t.value;if(Q(t)&&(e=A((function(){u?B.emit("unhandledRejection",n,r):X(z,r,n)})),t.rejection=u||Q(t)?2:1,e.error))throw e.value}))},Q=function(t){return 1!==t.rejection&&!t.parent},J=function(t){l(w,c,(function(){var e=t.facade;u?B.emit("rejectionHandled",e):X("rejectionhandled",e,t.value)}))},$=function(t,e,r){return function(n){t(e,n,r)}},Z=function(t,e,r){t.done||(t.done=!0,r&&(t=r),t.value=e,t.state=2,Y(t,!0))},tt=function(t,e,r){if(!t.done){t.done=!0,r&&(t=r);try{if(t.facade===e)throw new N("Promise can't be resolved itself");var n=V(e);n?k((function(){var r={done:!1};try{l(n,e,$(tt,r,t),$(Z,r,t))}catch(e){Z(r,e,t)}})):(t.value=e,t.state=1,Y(t,!1))}catch(e){Z({done:!1},e,t)}}};if(L&&(D=(F=function(t){m(this,D),p(t),l(n,this);var e=j(this);try{t($(tt,e),$(Z,e))}catch(t){Z(e,t)}}).prototype,(n=function(t){I(this,{type:P,done:!1,notified:!1,parent:!1,reactions:new _,rejection:!1,state:0,value:null})}).prototype=h(D,"then",(function(t,e){var r=j(this),n=G(b(this,F));return r.parent=!0,n.ok=!y(t)||t,n.fail=y(e)&&e,n.domain=u?B.domain:void 0,0===r.state?r.reactions.add(n):k((function(){q(n,r)})),n.promise})),i=function(){var t=new n,e=j(t);this.promise=t,this.resolve=$(tt,e),this.reject=$(Z,e)},T.f=G=function(t){return t===F||void 0===t?new i(t):H(t)},!s&&y(S)&&R!==Object.prototype)){a=R.then,C||h(R,"then",(function(t,e){var r=this;return new F((function(t,e){l(a,r,t,e)})).then(t,e)}),{unsafe:!0});try{delete R.constructor}catch(t){}f&&f(R,D)}o({global:!0,constructor:!0,wrap:!0,forced:L},{Promise:F}),d(F,P,!1,!0),v(P)},2431:(t,e,r)=>{var n=r(5366),i=r(8507),a=r(5318),o=r(3455),s=r(8711),u=r(3749),c=r(1365),l=r(1774),h=r(8552),f=a&&a.prototype;if(n({target:"Promise",proto:!0,real:!0,forced:!!a&&o((function(){f.finally.call({then:function(){}},(function(){}))}))},{finally:function(t){var e=c(this,s("Promise")),r=u(t);return this.then(r?function(r){return l(e,t()).then((function(){return r}))}:t,r?function(r){return l(e,t()).then((function(){throw r}))}:t)}}),!i&&u(a)){var d=s("Promise").prototype.finally;f.finally!==d&&h(f,"finally",d,{unsafe:!0})}},1234:(t,e,r)=>{r(9236),r(6195),r(1459),r(5167),r(5257),r(1128)},5167:(t,e,r)=>{var n=r(5366),i=r(3453),a=r(4186),o=r(9371),s=r(6703),u=r(1804);n({target:"Promise",stat:!0,forced:r(2041)},{race:function(t){var e=this,r=o.f(e),n=r.reject,c=s((function(){var o=a(e.resolve);u(t,(function(t){i(o,e,t).then(r.resolve,n)}))}));return c.error&&n(c.value),r.promise}})},5257:(t,e,r)=>{var n=r(5366),i=r(9371);n({target:"Promise",stat:!0,forced:r(9492).CONSTRUCTOR},{reject:function(t){var e=i.f(this);return(0,e.reject)(t),e.promise}})},1128:(t,e,r)=>{var n=r(5366),i=r(8711),a=r(8507),o=r(5318),s=r(9492).CONSTRUCTOR,u=r(1774),c=i("Promise"),l=a&&!s;n({target:"Promise",stat:!0,forced:a||s},{resolve:function(t){return u(l&&this===c?o:this,t)}})},9732:(t,e,r)=>{var n=r(5366),i=r(9371);n({target:"Promise",stat:!0},{withResolvers:function(){var t=i.f(this);return{promise:t.promise,resolve:t.resolve,reject:t.reject}}})},489:(t,e,r)=>{var n=r(5366),i=r(8711),a=r(3881),o=r(2230),s=r(9052),u=r(7447),c=r(2674),l=r(5304),h=r(3455),f=i("Reflect","construct"),d=Object.prototype,v=[].push,p=h((function(){function t(){}return!(f((function(){}),[],t)instanceof t)})),y=!h((function(){f((function(){}))})),g=p||y;n({target:"Reflect",stat:!0,forced:g,sham:g},{construct:function(t,e){s(t),u(e);var r=arguments.length<3?t:s(arguments[2]);if(y&&!p)return f(t,e,r);if(t===r){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var n=[null];return a(v,n,e),new(a(o,t,n))}var i=r.prototype,h=l(c(i)?i:d),g=a(t,h,e);return c(g)?g:h}})},7288:(t,e,r)=>{var n=r(5366),i=r(3453),a=r(2674),o=r(7447),s=r(3007),u=r(1139),c=r(2611);n({target:"Reflect",stat:!0},{get:function t(e,r){var n,l,h=arguments.length<3?e:arguments[2];return o(e)===h?e[r]:(n=u.f(e,r))?s(n)?n.value:void 0===n.get?void 0:i(n.get,h):a(l=c(e))?t(l,r,h):void 0}})},176:(t,e,r)=>{var n=r(5366),i=r(4032),a=r(6911);n({global:!0},{Reflect:{}}),a(i.Reflect,"Reflect",!0)},4592:(t,e,r)=>{var n=r(2444),i=r(4032),a=r(2608),o=r(5868),s=r(3951),u=r(139),c=r(5304),l=r(3408).f,h=r(6921),f=r(6484),d=r(687),v=r(4554),p=r(1837),y=r(2848),g=r(8552),m=r(3455),b=r(9649),w=r(8301).enforce,k=r(5409),x=r(5811),A=r(3651),_=r(9502),E=x("match"),S=i.RegExp,O=S.prototype,T=i.SyntaxError,P=a(O.exec),L=a("".charAt),M=a("".replace),C=a("".indexOf),j=a("".slice),I=/^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/,R=/a/g,F=/a/g,D=new S(R)!==R,N=p.MISSED_STICKY,W=p.UNSUPPORTED_Y;if(o("RegExp",n&&(!D||N||A||_||m((function(){return F[E]=!1,S(R)!==R||S(F)===F||"/a/i"!==String(S(R,"i"))}))))){for(var B=function(t,e){var r,n,i,a,o,l,p=h(O,this),y=f(t),g=void 0===e,m=[],k=t;if(!p&&y&&g&&t.constructor===B)return t;if((y||h(O,t))&&(t=t.source,g&&(e=v(k))),t=void 0===t?"":d(t),e=void 0===e?"":d(e),k=t,A&&"dotAll"in R&&(n=!!e&&C(e,"s")>-1)&&(e=M(e,/s/g,"")),r=e,N&&"sticky"in R&&(i=!!e&&C(e,"y")>-1)&&W&&(e=M(e,/y/g,"")),_&&(a=function(t){for(var e,r=t.length,n=0,i="",a=[],o=c(null),s=!1,u=!1,l=0,h="";n<=r;n++){if("\\\\"===(e=L(t,n)))e+=L(t,++n);else if("]"===e)s=!1;else if(!s)switch(!0){case"["===e:s=!0;break;case"("===e:if(i+=e,"?:"===j(t,n+1,n+3))continue;P(I,j(t,n+1))&&(n+=2,u=!0),l++;continue;case">"===e&&u:if(""===h||b(o,h))throw new T("Invalid capture group name");o[h]=!0,a[a.length]=[h,l],u=!1,h="";continue}u?h+=e:i+=e}return[i,a]}(t),t=a[0],m=a[1]),o=s(S(t,e),p?this:O,B),(n||i||m.length)&&(l=w(o),n&&(l.dotAll=!0,l.raw=B(function(t){for(var e,r=t.length,n=0,i="",a=!1;n<=r;n++)"\\\\"!==(e=L(t,n))?a||"."!==e?("["===e?a=!0:"]"===e&&(a=!1),i+=e):i+="[\\\\s\\\\S]":i+=e+L(t,++n);return i}(t),r)),i&&(l.sticky=!0),m.length&&(l.groups=m)),t!==k)try{u(o,"source",""===k?"(?:)":k)}catch(t){}return o},G=l(S),H=0;G.length>H;)y(B,S,G[H++]);O.constructor=B,B.prototype=O,g(i,"RegExp",B,{constructor:!0})}k("RegExp")},8345:(t,e,r)=>{var n=r(2444),i=r(3651),a=r(9872),o=r(8986),s=r(8301).get,u=RegExp.prototype,c=TypeError;n&&i&&o(u,"dotAll",{configurable:!0,get:function(){if(this!==u){if("RegExp"===a(this))return!!s(this).dotAll;throw new c("Incompatible receiver, RegExp required")}}})},2823:(t,e,r)=>{var n=r(5366),i=r(9867);n({target:"RegExp",proto:!0,forced:/./.exec!==i},{exec:i})},2865:(t,e,r)=>{var n=r(2444),i=r(1837).MISSED_STICKY,a=r(9872),o=r(8986),s=r(8301).get,u=RegExp.prototype,c=TypeError;n&&i&&o(u,"sticky",{configurable:!0,get:function(){if(this!==u){if("RegExp"===a(this))return!!s(this).sticky;throw new c("Incompatible receiver, RegExp required")}}})},5594:(t,e,r)=>{r(2823);var n,i,a=r(5366),o=r(3453),s=r(3749),u=r(7447),c=r(687),l=(n=!1,(i=/[ac]/).exec=function(){return n=!0,/./.exec.apply(this,arguments)},!0===i.test("abc")&&n),h=/./.test;a({target:"RegExp",proto:!0,forced:!l},{test:function(t){var e=u(this),r=c(t),n=e.exec;if(!s(n))return o(h,e,r);var i=o(n,e,r);return null!==i&&(u(i),!0)}})},8397:(t,e,r)=>{var n=r(2542).PROPER,i=r(8552),a=r(7447),o=r(687),s=r(3455),u=r(4554),c="toString",l=RegExp.prototype,h=l[c],f=s((function(){return"/a/b"!==h.call({source:"a",flags:"b"})})),d=n&&h.name!==c;(f||d)&&i(l,c,(function(){var t=a(this);return"/"+o(t.source)+"/"+o(u(t))}),{unsafe:!0})},4645:(t,e,r)=>{r(9556)("Set",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r(2042))},5130:(t,e,r)=>{var n=r(5366),i=r(4656);n({target:"Set",proto:!0,real:!0,forced:!r(1716)("difference")},{difference:i})},5636:(t,e,r)=>{var n=r(5366),i=r(3455),a=r(2446);n({target:"Set",proto:!0,real:!0,forced:!r(1716)("intersection")||i((function(){return"3,2"!==String(Array.from(new Set([1,2,3]).intersection(new Set([3,2]))))}))},{intersection:a})},8509:(t,e,r)=>{var n=r(5366),i=r(4545);n({target:"Set",proto:!0,real:!0,forced:!r(1716)("isDisjointFrom")},{isDisjointFrom:i})},7332:(t,e,r)=>{var n=r(5366),i=r(7918);n({target:"Set",proto:!0,real:!0,forced:!r(1716)("isSubsetOf")},{isSubsetOf:i})},6555:(t,e,r)=>{var n=r(5366),i=r(6111);n({target:"Set",proto:!0,real:!0,forced:!r(1716)("isSupersetOf")},{isSupersetOf:i})},9255:(t,e,r)=>{r(4645)},3296:(t,e,r)=>{var n=r(5366),i=r(4498);n({target:"Set",proto:!0,real:!0,forced:!r(1716)("symmetricDifference")},{symmetricDifference:i})},4594:(t,e,r)=>{var n=r(5366),i=r(9500);n({target:"Set",proto:!0,real:!0,forced:!r(1716)("union")},{union:i})},8653:(t,e,r)=>{var n=r(5366),i=r(2608),a=r(7222),o=r(1211),s=r(687),u=r(3455),c=i("".charAt);n({target:"String",proto:!0,forced:u((function(){return"\\ud842"!=="𠮷".at(-2)}))},{at:function(t){var e=s(a(this)),r=e.length,n=o(t),i=n>=0?n:r+n;return i<0||i>=r?void 0:c(e,i)}})},9657:(t,e,r)=>{var n,i=r(5366),a=r(2116),o=r(1139).f,s=r(5806),u=r(687),c=r(3631),l=r(7222),h=r(860),f=r(8507),d=a("".slice),v=Math.min,p=h("endsWith");i({target:"String",proto:!0,forced:!(!f&&!p&&(n=o(String.prototype,"endsWith"),n&&!n.writable)||p)},{endsWith:function(t){var e=u(l(this));c(t);var r=arguments.length>1?arguments[1]:void 0,n=e.length,i=void 0===r?n:v(s(r),n),a=u(t);return d(e,i-a.length,i)===a}})},2217:(t,e,r)=>{var n=r(5366),i=r(2608),a=r(9002),o=RangeError,s=String.fromCharCode,u=String.fromCodePoint,c=i([].join);n({target:"String",stat:!0,arity:1,forced:!!u&&1!==u.length},{fromCodePoint:function(t){for(var e,r=[],n=arguments.length,i=0;n>i;){if(e=+arguments[i++],a(e,1114111)!==e)throw new o(e+" is not a valid code point");r[i]=e<65536?s(e):s(55296+((e-=65536)>>10),e%1024+56320)}return c(r,"")}})},2467:(t,e,r)=>{var n=r(5366),i=r(2608),a=r(3631),o=r(7222),s=r(687),u=r(860),c=i("".indexOf);n({target:"String",proto:!0,forced:!u("includes")},{includes:function(t){return!!~c(s(o(this)),s(a(t)),arguments.length>1?arguments[1]:void 0)}})},7460:(t,e,r)=>{var n=r(6903).charAt,i=r(687),a=r(8301),o=r(656),s=r(9393),u="String Iterator",c=a.set,l=a.getterFor(u);o(String,"String",(function(t){c(this,{type:u,string:i(t),index:0})}),(function(){var t,e=l(this),r=e.string,i=e.index;return i>=r.length?s(void 0,!0):(t=n(r,i),e.index+=t.length,s(t,!1))}))},1281:(t,e,r)=>{var n=r(3453),i=r(4364),a=r(7447),o=r(6021),s=r(5806),u=r(687),c=r(7222),l=r(8622),h=r(8149),f=r(4410);i("match",(function(t,e,r){return[function(e){var r=c(this),i=o(e)?void 0:l(e,t);return i?n(i,e,r):new RegExp(e)[t](u(r))},function(t){var n=a(this),i=u(t),o=r(e,n,i);if(o.done)return o.value;if(!n.global)return f(n,i);var c=n.unicode;n.lastIndex=0;for(var l,d=[],v=0;null!==(l=f(n,i));){var p=u(l[0]);d[v]=p,""===p&&(n.lastIndex=h(i,s(n.lastIndex),c)),v++}return 0===v?null:d}]}))},4853:(t,e,r)=>{var n=r(5366),i=r(6437).end;n({target:"String",proto:!0,forced:r(4903)},{padEnd:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},9484:(t,e,r)=>{var n=r(5366),i=r(6437).start;n({target:"String",proto:!0,forced:r(4903)},{padStart:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},6794:(t,e,r)=>{var n=r(5366),i=r(3453),a=r(2608),o=r(7222),s=r(3749),u=r(6021),c=r(6484),l=r(687),h=r(8622),f=r(4554),d=r(3966),v=r(5811),p=r(8507),y=v("replace"),g=TypeError,m=a("".indexOf),b=a("".replace),w=a("".slice),k=Math.max;n({target:"String",proto:!0},{replaceAll:function(t,e){var r,n,a,v,x,A,_,E,S,O,T=o(this),P=0,L="";if(!u(t)){if((r=c(t))&&(n=l(o(f(t))),!~m(n,"g")))throw new g("\`.replaceAll\` does not allow non-global regexes");if(a=h(t,y))return i(a,t,T,e);if(p&&r)return b(l(T),t,e)}for(v=l(T),x=l(t),(A=s(e))||(e=l(e)),_=x.length,E=k(1,_),S=m(v,x);-1!==S;)O=A?l(e(x,S,v)):d(x,v,S,[],void 0,e),L+=w(v,P,S)+O,P=S+_,S=S+E>v.length?-1:m(v,x,S+E);return P{var n=r(3881),i=r(3453),a=r(2608),o=r(4364),s=r(3455),u=r(7447),c=r(3749),l=r(6021),h=r(1211),f=r(5806),d=r(687),v=r(7222),p=r(8149),y=r(8622),g=r(3966),m=r(4410),b=r(5811)("replace"),w=Math.max,k=Math.min,x=a([].concat),A=a([].push),_=a("".indexOf),E=a("".slice),S="$0"==="a".replace(/./,"$0"),O=!!/./[b]&&""===/./[b]("a","$0");o("replace",(function(t,e,r){var a=O?"$":"$0";return[function(t,r){var n=v(this),a=l(t)?void 0:y(t,b);return a?i(a,t,n,r):i(e,d(n),t,r)},function(t,i){var o=u(this),s=d(t);if("string"==typeof i&&-1===_(i,a)&&-1===_(i,"$<")){var l=r(e,o,s,i);if(l.done)return l.value}var v=c(i);v||(i=d(i));var y,b=o.global;b&&(y=o.unicode,o.lastIndex=0);for(var S,O=[];null!==(S=m(o,s))&&(A(O,S),b);)""===d(S[0])&&(o.lastIndex=p(s,f(o.lastIndex),y));for(var T,P="",L=0,M=0;M=L&&(P+=E(s,L,I)+C,L=I+j.length)}return P+E(s,L)}]}),!!s((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")}))||!S||O)},4072:(t,e,r)=>{var n=r(3453),i=r(2608),a=r(4364),o=r(7447),s=r(6021),u=r(7222),c=r(1365),l=r(8149),h=r(5806),f=r(687),d=r(8622),v=r(4410),p=r(1837),y=r(3455),g=p.UNSUPPORTED_Y,m=Math.min,b=i([].push),w=i("".slice),k=!y((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var r="ab".split(t);return 2!==r.length||"a"!==r[0]||"b"!==r[1]})),x="c"==="abbc".split(/(b)*/)[1]||4!=="test".split(/(?:)/,-1).length||2!=="ab".split(/(?:ab)*/).length||4!==".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length;a("split",(function(t,e,r){var i="0".split(void 0,0).length?function(t,r){return void 0===t&&0===r?[]:n(e,this,t,r)}:e;return[function(e,r){var a=u(this),o=s(e)?void 0:d(e,t);return o?n(o,e,a,r):n(i,f(a),e,r)},function(t,n){var a=o(this),s=f(t);if(!x){var u=r(i,a,s,n,i!==e);if(u.done)return u.value}var d=c(a,RegExp),p=a.unicode,y=(a.ignoreCase?"i":"")+(a.multiline?"m":"")+(a.unicode?"u":"")+(g?"g":"y"),k=new d(g?"^(?:"+a.source+")":a,y),A=void 0===n?4294967295:n>>>0;if(0===A)return[];if(0===s.length)return null===v(k,s)?[s]:[];for(var _=0,E=0,S=[];E{var n,i=r(5366),a=r(2116),o=r(1139).f,s=r(5806),u=r(687),c=r(3631),l=r(7222),h=r(860),f=r(8507),d=a("".slice),v=Math.min,p=h("startsWith");i({target:"String",proto:!0,forced:!(!f&&!p&&(n=o(String.prototype,"startsWith"),n&&!n.writable)||p)},{startsWith:function(t){var e=u(l(this));c(t);var r=s(v(arguments.length>1?arguments[1]:void 0,e.length)),n=u(t);return d(e,r,r+n.length)===n}})},98:(t,e,r)=>{r(3185);var n=r(5366),i=r(2882);n({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==i},{trimEnd:i})},3185:(t,e,r)=>{var n=r(5366),i=r(2882);n({target:"String",proto:!0,name:"trimEnd",forced:"".trimRight!==i},{trimRight:i})},9210:(t,e,r)=>{var n=r(5366),i=r(9418).trim;n({target:"String",proto:!0,forced:r(3794)("trim")},{trim:function(){return i(this)}})},4172:(t,e,r)=>{r(5343)("asyncIterator")},2873:(t,e,r)=>{var n=r(5366),i=r(4032),a=r(3453),o=r(2608),s=r(8507),u=r(2444),c=r(6943),l=r(3455),h=r(9649),f=r(6921),d=r(7447),v=r(3637),p=r(6201),y=r(687),g=r(4004),m=r(5304),b=r(496),w=r(3408),k=r(6442),x=r(6005),A=r(1139),_=r(1601),E=r(9217),S=r(9221),O=r(8552),T=r(8986),P=r(4593),L=r(2343),M=r(2645),C=r(5936),j=r(5811),I=r(4559),R=r(5343),F=r(3042),D=r(6911),N=r(8301),W=r(5645).forEach,B=L("hidden"),G="Symbol",H="prototype",U=N.set,z=N.getterFor(G),V=Object[H],q=i.Symbol,Y=q&&q[H],X=i.RangeError,K=i.TypeError,Q=i.QObject,J=A.f,$=_.f,Z=k.f,tt=S.f,et=o([].push),rt=P("symbols"),nt=P("op-symbols"),it=P("wks"),at=!Q||!Q[H]||!Q[H].findChild,ot=function(t,e,r){var n=J(V,e);n&&delete V[e],$(t,e,r),n&&t!==V&&$(V,e,n)},st=u&&l((function(){return 7!==m($({},"a",{get:function(){return $(this,"a",{value:7}).a}})).a}))?ot:$,ut=function(t,e){var r=rt[t]=m(Y);return U(r,{type:G,tag:t,description:e}),u||(r.description=e),r},ct=function(t,e,r){t===V&&ct(nt,e,r),d(t);var n=p(e);return d(r),h(rt,n)?(r.enumerable?(h(t,B)&&t[B][n]&&(t[B][n]=!1),r=m(r,{enumerable:g(0,!1)})):(h(t,B)||$(t,B,g(1,m(null))),t[B][n]=!0),st(t,n,r)):$(t,n,r)},lt=function(t,e){d(t);var r=v(e),n=b(r).concat(vt(r));return W(n,(function(e){u&&!a(ht,r,e)||ct(t,e,r[e])})),t},ht=function(t){var e=p(t),r=a(tt,this,e);return!(this===V&&h(rt,e)&&!h(nt,e))&&(!(r||!h(this,e)||!h(rt,e)||h(this,B)&&this[B][e])||r)},ft=function(t,e){var r=v(t),n=p(e);if(r!==V||!h(rt,n)||h(nt,n)){var i=J(r,n);return!i||!h(rt,n)||h(r,B)&&r[B][n]||(i.enumerable=!0),i}},dt=function(t){var e=Z(v(t)),r=[];return W(e,(function(t){h(rt,t)||h(M,t)||et(r,t)})),r},vt=function(t){var e=t===V,r=Z(e?nt:v(t)),n=[];return W(r,(function(t){!h(rt,t)||e&&!h(V,t)||et(n,rt[t])})),n};c||(O(Y=(q=function(){if(f(Y,this))throw new K("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?y(arguments[0]):void 0,e=C(t),r=function(t){var n=void 0===this?i:this;n===V&&a(r,nt,t),h(n,B)&&h(n[B],e)&&(n[B][e]=!1);var o=g(1,t);try{st(n,e,o)}catch(t){if(!(t instanceof X))throw t;ot(n,e,o)}};return u&&at&&st(V,e,{configurable:!0,set:r}),ut(e,t)})[H],"toString",(function(){return z(this).tag})),O(q,"withoutSetter",(function(t){return ut(C(t),t)})),S.f=ht,_.f=ct,E.f=lt,A.f=ft,w.f=k.f=dt,x.f=vt,I.f=function(t){return ut(j(t),t)},u&&(T(Y,"description",{configurable:!0,get:function(){return z(this).description}}),s||O(V,"propertyIsEnumerable",ht,{unsafe:!0}))),n({global:!0,constructor:!0,wrap:!0,forced:!c,sham:!c},{Symbol:q}),W(b(it),(function(t){R(t)})),n({target:G,stat:!0,forced:!c},{useSetter:function(){at=!0},useSimple:function(){at=!1}}),n({target:"Object",stat:!0,forced:!c,sham:!u},{create:function(t,e){return void 0===e?m(t):lt(m(t),e)},defineProperty:ct,defineProperties:lt,getOwnPropertyDescriptor:ft}),n({target:"Object",stat:!0,forced:!c},{getOwnPropertyNames:dt}),F(),D(q,G),M[B]=!0},4551:(t,e,r)=>{var n=r(5366),i=r(2444),a=r(4032),o=r(2608),s=r(9649),u=r(3749),c=r(6921),l=r(687),h=r(8986),f=r(2924),d=a.Symbol,v=d&&d.prototype;if(i&&u(d)&&(!("description"in v)||void 0!==d().description)){var p={},y=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:l(arguments[0]),e=c(v,this)?new d(t):void 0===t?d():d(t);return""===t&&(p[e]=!0),e};f(y,d),y.prototype=v,v.constructor=y;var g="Symbol(description detection)"===String(d("description detection")),m=o(v.valueOf),b=o(v.toString),w=/^Symbol\\((.*)\\)[^)]+$/,k=o("".replace),x=o("".slice);h(v,"description",{configurable:!0,get:function(){var t=m(this);if(s(p,t))return"";var e=b(t),r=g?x(e,7,-1):k(e,w,"$1");return""===r?void 0:r}}),n({global:!0,constructor:!0,forced:!0},{Symbol:y})}},4182:(t,e,r)=>{var n=r(5366),i=r(8711),a=r(9649),o=r(687),s=r(4593),u=r(8592),c=s("string-to-symbol-registry"),l=s("symbol-to-string-registry");n({target:"Symbol",stat:!0,forced:!u},{for:function(t){var e=o(t);if(a(c,e))return c[e];var r=i("Symbol")(e);return c[e]=r,l[r]=e,r}})},7651:(t,e,r)=>{r(2873),r(4182),r(7876),r(9750),r(1309)},7876:(t,e,r)=>{var n=r(5366),i=r(9649),a=r(2277),o=r(8055),s=r(4593),u=r(8592),c=s("symbol-to-string-registry");n({target:"Symbol",stat:!0,forced:!u},{keyFor:function(t){if(!a(t))throw new TypeError(o(t)+" is not a symbol");if(i(c,t))return c[t]}})},5268:(t,e,r)=>{var n=r(5343),i=r(3042);n("toPrimitive"),i()},5997:(t,e,r)=>{var n=r(8711),i=r(5343),a=r(6911);i("toStringTag"),a(n("Symbol"),"Symbol")},3740:(t,e,r)=>{var n=r(4356),i=r(7878),a=r(1211),o=n.aTypedArray;(0,n.exportTypedArrayMethod)("at",(function(t){var e=o(this),r=i(e),n=a(t),s=n>=0?n:r+n;return s<0||s>=r?void 0:e[s]}))},6542:(t,e,r)=>{var n=r(2608),i=r(4356),a=n(r(6677)),o=i.aTypedArray;(0,i.exportTypedArrayMethod)("copyWithin",(function(t,e){return a(o(this),t,e,arguments.length>2?arguments[2]:void 0)}))},5738:(t,e,r)=>{var n=r(4356),i=r(5645).every,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("every",(function(t){return i(a(this),t,arguments.length>1?arguments[1]:void 0)}))},2900:(t,e,r)=>{var n=r(4356),i=r(9557),a=r(1198),o=r(1179),s=r(3453),u=r(2608),c=r(3455),l=n.aTypedArray,h=n.exportTypedArrayMethod,f=u("".slice);h("fill",(function(t){var e=arguments.length;l(this);var r="Big"===f(o(this),0,3)?a(t):+t;return s(i,this,r,e>1?arguments[1]:void 0,e>2?arguments[2]:void 0)}),c((function(){var t=0;return new Int8Array(2).fill({valueOf:function(){return t++}}),1!==t})))},2051:(t,e,r)=>{var n=r(4356),i=r(5645).filter,a=r(85),o=n.aTypedArray;(0,n.exportTypedArrayMethod)("filter",(function(t){var e=i(o(this),t,arguments.length>1?arguments[1]:void 0);return a(this,e)}))},4211:(t,e,r)=>{var n=r(4356),i=r(5645).findIndex,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("findIndex",(function(t){return i(a(this),t,arguments.length>1?arguments[1]:void 0)}))},5294:(t,e,r)=>{var n=r(4356),i=r(767).findLastIndex,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("findLastIndex",(function(t){return i(a(this),t,arguments.length>1?arguments[1]:void 0)}))},9791:(t,e,r)=>{var n=r(4356),i=r(767).findLast,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("findLast",(function(t){return i(a(this),t,arguments.length>1?arguments[1]:void 0)}))},3198:(t,e,r)=>{var n=r(4356),i=r(5645).find,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("find",(function(t){return i(a(this),t,arguments.length>1?arguments[1]:void 0)}))},4306:(t,e,r)=>{r(8975)("Float32",(function(t){return function(e,r,n){return t(this,e,r,n)}}))},6473:(t,e,r)=>{r(8975)("Float64",(function(t){return function(e,r,n){return t(this,e,r,n)}}))},1526:(t,e,r)=>{var n=r(4356),i=r(5645).forEach,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("forEach",(function(t){i(a(this),t,arguments.length>1?arguments[1]:void 0)}))},6032:(t,e,r)=>{var n=r(4356),i=r(7921).includes,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("includes",(function(t){return i(a(this),t,arguments.length>1?arguments[1]:void 0)}))},3659:(t,e,r)=>{var n=r(4356),i=r(7921).indexOf,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("indexOf",(function(t){return i(a(this),t,arguments.length>1?arguments[1]:void 0)}))},1237:(t,e,r)=>{r(8975)("Int32",(function(t){return function(e,r,n){return t(this,e,r,n)}}))},932:(t,e,r)=>{var n=r(4032),i=r(3455),a=r(2608),o=r(4356),s=r(9024),u=r(5811)("iterator"),c=n.Uint8Array,l=a(s.values),h=a(s.keys),f=a(s.entries),d=o.aTypedArray,v=o.exportTypedArrayMethod,p=c&&c.prototype,y=!i((function(){p[u].call([1])})),g=!!p&&p.values&&p[u]===p.values&&"values"===p.values.name,m=function(){return l(d(this))};v("entries",(function(){return f(d(this))}),y),v("keys",(function(){return h(d(this))}),y),v("values",m,y||!g,{name:"values"}),v(u,m,y||!g,{name:"values"})},8553:(t,e,r)=>{var n=r(4356),i=r(2608),a=n.aTypedArray,o=n.exportTypedArrayMethod,s=i([].join);o("join",(function(t){return s(a(this),t)}))},7612:(t,e,r)=>{var n=r(4356),i=r(3881),a=r(3499),o=n.aTypedArray;(0,n.exportTypedArrayMethod)("lastIndexOf",(function(t){var e=arguments.length;return i(a,o(this),e>1?[t,arguments[1]]:[t])}))},8579:(t,e,r)=>{var n=r(4356),i=r(5645).map,a=r(580),o=n.aTypedArray;(0,n.exportTypedArrayMethod)("map",(function(t){return i(o(this),t,arguments.length>1?arguments[1]:void 0,(function(t,e){return new(a(t))(e)}))}))},7576:(t,e,r)=>{var n=r(4356),i=r(4734).right,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("reduceRight",(function(t){var e=arguments.length;return i(a(this),t,e,e>1?arguments[1]:void 0)}))},7719:(t,e,r)=>{var n=r(4356),i=r(4734).left,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("reduce",(function(t){var e=arguments.length;return i(a(this),t,e,e>1?arguments[1]:void 0)}))},2891:(t,e,r)=>{var n=r(4356),i=n.aTypedArray,a=n.exportTypedArrayMethod,o=Math.floor;a("reverse",(function(){for(var t,e=this,r=i(e).length,n=o(r/2),a=0;a{var n=r(4032),i=r(3453),a=r(4356),o=r(7878),s=r(8402),u=r(4165),c=r(3455),l=n.RangeError,h=n.Int8Array,f=h&&h.prototype,d=f&&f.set,v=a.aTypedArray,p=a.exportTypedArrayMethod,y=!c((function(){var t=new Uint8ClampedArray(2);return i(d,t,{length:1,0:3},1),3!==t[1]})),g=y&&a.NATIVE_ARRAY_BUFFER_VIEWS&&c((function(){var t=new h(2);return t.set(1),t.set("2",1),0!==t[0]||2!==t[1]}));p("set",(function(t){v(this);var e=s(arguments.length>1?arguments[1]:void 0,1),r=u(t);if(y)return i(d,this,r,e);var n=this.length,a=o(r),c=0;if(a+e>n)throw new l("Wrong length");for(;c{var n=r(4356),i=r(580),a=r(3455),o=r(4224),s=n.aTypedArray;(0,n.exportTypedArrayMethod)("slice",(function(t,e){for(var r=o(s(this),t,e),n=i(this),a=0,u=r.length,c=new n(u);u>a;)c[a]=r[a++];return c}),a((function(){new Int8Array(1).slice()})))},9637:(t,e,r)=>{var n=r(4356),i=r(5645).some,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("some",(function(t){return i(a(this),t,arguments.length>1?arguments[1]:void 0)}))},2709:(t,e,r)=>{var n=r(4032),i=r(2116),a=r(3455),o=r(4186),s=r(5272),u=r(4356),c=r(7085),l=r(5123),h=r(6415),f=r(1911),d=u.aTypedArray,v=u.exportTypedArrayMethod,p=n.Uint16Array,y=p&&i(p.prototype.sort),g=!(!y||a((function(){y(new p(2),null)}))&&a((function(){y(new p(2),{})}))),m=!!y&&!a((function(){if(h)return h<74;if(c)return c<67;if(l)return!0;if(f)return f<602;var t,e,r=new p(516),n=Array(516);for(t=0;t<516;t++)e=t%4,r[t]=515-t,n[t]=t-2*e+3;for(y(r,(function(t,e){return(t/4|0)-(e/4|0)})),t=0;t<516;t++)if(r[t]!==n[t])return!0}));v("sort",(function(t){return void 0!==t&&o(t),m?y(this,t):s(d(this),function(t){return function(e,r){return void 0!==t?+t(e,r)||0:r!=r?-1:e!=e?1:0===e&&0===r?1/e>0&&1/r<0?1:-1:e>r}}(t))}),!m||g)},8941:(t,e,r)=>{var n=r(4032),i=r(3881),a=r(4356),o=r(3455),s=r(4224),u=n.Int8Array,c=a.aTypedArray,l=a.exportTypedArrayMethod,h=[].toLocaleString,f=!!u&&o((function(){h.call(new u(1))}));l("toLocaleString",(function(){return i(h,f?s(c(this)):c(this),s(arguments))}),o((function(){return[1,2].toLocaleString()!==new u([1,2]).toLocaleString()}))||!o((function(){u.prototype.toLocaleString.call([1,2])})))},1579:(t,e,r)=>{var n=r(6444),i=r(4356),a=i.aTypedArray,o=i.exportTypedArrayMethod,s=i.getTypedArrayConstructor;o("toReversed",(function(){return n(a(this),s(this))}))},6236:(t,e,r)=>{var n=r(4356),i=r(2608),a=r(4186),o=r(7434),s=n.aTypedArray,u=n.getTypedArrayConstructor,c=n.exportTypedArrayMethod,l=i(n.TypedArrayPrototype.sort);c("toSorted",(function(t){void 0!==t&&a(t);var e=s(this),r=o(u(e),e);return l(r,t)}))},7716:(t,e,r)=>{var n=r(4356).exportTypedArrayMethod,i=r(3455),a=r(4032),o=r(2608),s=a.Uint8Array,u=s&&s.prototype||{},c=[].toString,l=o([].join);i((function(){c.call({})}))&&(c=function(){return l(this)});var h=u.toString!==c;n("toString",c,h)},2044:(t,e,r)=>{r(8975)("Uint32",(function(t){return function(e,r,n){return t(this,e,r,n)}}))},7329:(t,e,r)=>{r(8975)("Uint8",(function(t){return function(e,r,n){return t(this,e,r,n)}}))},1913:(t,e,r)=>{var n=r(920),i=r(4356),a=r(5415),o=r(1211),s=r(1198),u=i.aTypedArray,c=i.getTypedArrayConstructor,l=i.exportTypedArrayMethod,h=!!function(){try{new Int8Array(1).with(2,{valueOf:function(){throw 8}})}catch(t){return 8===t}}();l("with",{with:function(t,e){var r=u(this),i=o(t),l=a(r)?s(e):+e;return n(r,c(r),i,l)}}.with,!h)},6722:(t,e,r)=>{var n,i=r(568),a=r(4032),o=r(2608),s=r(4183),u=r(5227),c=r(9556),l=r(8153),h=r(2674),f=r(8301).enforce,d=r(3455),v=r(6206),p=Object,y=Array.isArray,g=p.isExtensible,m=p.isFrozen,b=p.isSealed,w=p.freeze,k=p.seal,x=!a.ActiveXObject&&"ActiveXObject"in a,A=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},_=c("WeakMap",A,l),E=_.prototype,S=o(E.set);if(v)if(x){n=l.getConstructor(A,"WeakMap",!0),u.enable();var O=o(E.delete),T=o(E.has),P=o(E.get);s(E,{delete:function(t){if(h(t)&&!g(t)){var e=f(this);return e.frozen||(e.frozen=new n),O(this,t)||e.frozen.delete(t)}return O(this,t)},has:function(t){if(h(t)&&!g(t)){var e=f(this);return e.frozen||(e.frozen=new n),T(this,t)||e.frozen.has(t)}return T(this,t)},get:function(t){if(h(t)&&!g(t)){var e=f(this);return e.frozen||(e.frozen=new n),T(this,t)?P(this,t):e.frozen.get(t)}return P(this,t)},set:function(t,e){if(h(t)&&!g(t)){var r=f(this);r.frozen||(r.frozen=new n),T(this,t)?S(this,t,e):r.frozen.set(t,e)}else S(this,t,e);return this}})}else i&&d((function(){var t=w([]);return S(new _,t,1),!m(t)}))&&s(E,{set:function(t,e){var r;return y(t)&&(m(t)?r=w:b(t)&&(r=k)),S(this,t,e),r&&r(t),this}})},8492:(t,e,r)=>{r(6722)},1176:(t,e,r)=>{r(9556)("WeakSet",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r(8153))},7121:(t,e,r)=>{r(1176)},4192:(t,e,r)=>{var n=r(5366),i=r(4032),a=r(3399),o=r(7447),s=r(3749),u=r(2611),c=r(8986),l=r(3552),h=r(3455),f=r(9649),d=r(5811),v=r(2857).IteratorPrototype,p=r(2444),y=r(8507),g="constructor",m="Iterator",b=d("toStringTag"),w=TypeError,k=i[m],x=y||!s(k)||k.prototype!==v||!h((function(){k({})})),A=function(){if(a(this,v),u(this)===v)throw new w("Abstract class Iterator not directly constructable")},_=function(t,e){p?c(v,t,{configurable:!0,get:function(){return e},set:function(e){if(o(this),this===v)throw new w("You can't redefine this property");f(this,t)?this[t]=e:l(this,t,e)}}):v[t]=e};f(v,b)||_(b,m),!x&&f(v,g)&&v[g]!==Object||_(g,A),A.prototype=v,n({global:!0,constructor:!0,forced:x},{Iterator:A})},7895:(t,e,r)=>{var n=r(5366),i=r(3453),a=r(7447),o=r(3447),s=r(821),u=r(5590),c=r(2342),l=r(8507),h=c((function(){for(var t,e=this.iterator,r=this.next;this.remaining;)if(this.remaining--,t=a(i(r,e)),this.done=!!t.done)return;if(t=a(i(r,e)),!(this.done=!!t.done))return t.value}));n({target:"Iterator",proto:!0,real:!0,forced:l},{drop:function(t){a(this);var e=u(s(+t));return new h(o(this),{remaining:e})}})},463:(t,e,r)=>{var n=r(5366),i=r(1804),a=r(4186),o=r(7447),s=r(3447);n({target:"Iterator",proto:!0,real:!0},{every:function(t){o(this),a(t);var e=s(this),r=0;return!i(e,(function(e,n){if(!t(e,r++))return n()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})},8856:(t,e,r)=>{var n=r(5366),i=r(3453),a=r(4186),o=r(7447),s=r(3447),u=r(2342),c=r(3535),l=r(8507),h=u((function(){for(var t,e,r=this.iterator,n=this.predicate,a=this.next;;){if(t=o(i(a,r)),this.done=!!t.done)return;if(e=t.value,c(r,n,[e,this.counter++],!0))return e}}));n({target:"Iterator",proto:!0,real:!0,forced:l},{filter:function(t){return o(this),a(t),new h(s(this),{predicate:t})}})},9166:(t,e,r)=>{var n=r(5366),i=r(3453),a=r(4186),o=r(7447),s=r(3447),u=r(1750),c=r(2342),l=r(5235),h=r(8507),f=c((function(){for(var t,e,r=this.iterator,n=this.mapper;;){if(e=this.inner)try{if(!(t=o(i(e.next,e.iterator))).done)return t.value;this.inner=null}catch(t){l(r,"throw",t)}if(t=o(i(this.next,r)),this.done=!!t.done)return;try{this.inner=u(n(t.value,this.counter++),!1)}catch(t){l(r,"throw",t)}}}));n({target:"Iterator",proto:!0,real:!0,forced:h},{flatMap:function(t){return o(this),a(t),new f(s(this),{mapper:t,inner:null})}})},1565:(t,e,r)=>{var n=r(5366),i=r(1804),a=r(4186),o=r(7447),s=r(3447);n({target:"Iterator",proto:!0,real:!0},{forEach:function(t){o(this),a(t);var e=s(this),r=0;i(e,(function(e){t(e,r++)}),{IS_RECORD:!0})}})},5342:(t,e,r)=>{var n=r(5366),i=r(4009);n({target:"Iterator",proto:!0,real:!0,forced:r(8507)},{map:i})},9582:(t,e,r)=>{var n=r(5366),i=r(1804),a=r(4186),o=r(7447),s=r(3447);n({target:"Iterator",proto:!0,real:!0},{some:function(t){o(this),a(t);var e=s(this),r=0;return i(e,(function(e,n){if(t(e,r++))return n()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})},31:(t,e,r)=>{var n=r(5366),i=r(2444),a=r(4032),o=r(8711),s=r(2608),u=r(3453),c=r(3749),l=r(2674),h=r(5448),f=r(9649),d=r(687),v=r(7878),p=r(3552),y=r(3455),g=r(1448),m=r(6943),b=a.JSON,w=a.Number,k=a.SyntaxError,x=b&&b.parse,A=o("Object","keys"),_=Object.getOwnPropertyDescriptor,E=s("".charAt),S=s("".slice),O=s(/./.exec),T=s([].push),P=/^\\d$/,L=/^[1-9]$/,M=/^[\\d-]$/,C=/^[\\t\\n\\r ]$/,j=function(t,e,r,n){var i,a,o,s,c,d=t[e],p=n&&d===n.value,y=p&&"string"==typeof n.source?{source:n.source}:{};if(l(d)){var g=h(d),m=p?n.nodes:g?[]:{};if(g)for(i=m.length,o=v(d),s=0;s{var n=r(5366),i=r(4032),a=r(8711),o=r(2608),s=r(3453),u=r(3455),c=r(687),l=r(7900),h=r(2996).c2i,f=/[^\\d+/a-z]/i,d=/[\\t\\n\\f\\r ]+/g,v=/[=]{1,2}$/,p=a("atob"),y=String.fromCharCode,g=o("".charAt),m=o("".replace),b=o(f.exec),w=!!p&&!u((function(){return"hi"!==p("aGk=")})),k=w&&u((function(){return""!==p(" ")})),x=w&&!u((function(){p("a")})),A=w&&!u((function(){p()})),_=w&&1!==p.length;n({global:!0,bind:!0,enumerable:!0,forced:!w||k||x||A||_},{atob:function(t){if(l(arguments.length,1),w&&!k&&!x)return s(p,i,t);var e,r,n,o=m(c(t),d,""),u="",A=0,_=0;if(o.length%4==0&&(o=m(o,v,"")),(e=o.length)%4==1||b(f,o))throw new(a("DOMException"))("The string is not correctly encoded","InvalidCharacterError");for(;A>(-2*_&6)));return u}})},8316:(t,e,r)=>{var n=r(4032),i=r(2760),a=r(4784),o=r(3147),s=r(139),u=function(t){if(t&&t.forEach!==o)try{s(t,"forEach",o)}catch(e){t.forEach=o}};for(var c in i)i[c]&&u(n[c]&&n[c].prototype);u(a)},3577:(t,e,r)=>{var n=r(4032),i=r(2760),a=r(4784),o=r(9024),s=r(139),u=r(6911),c=r(5811)("iterator"),l=o.values,h=function(t,e){if(t){if(t[c]!==l)try{s(t,c,l)}catch(e){t[c]=l}if(u(t,e,!0),i[e])for(var r in o)if(t[r]!==o[r])try{s(t,r,o[r])}catch(e){t[r]=o[r]}}};for(var f in i)h(n[f]&&n[f].prototype,f);h(a,"DOMTokenList")},4967:(t,e,r)=>{var n=r(5366),i=r(8711),a=r(9685),o=r(3455),s=r(5304),u=r(4004),c=r(1601).f,l=r(8552),h=r(8986),f=r(9649),d=r(3399),v=r(7447),p=r(2912),y=r(8363),g=r(4090),m=r(3633),b=r(8301),w=r(2444),k=r(8507),x="DOMException",A="DATA_CLONE_ERR",_=i("Error"),E=i(x)||function(){try{(new(i("MessageChannel")||a("worker_threads").MessageChannel)).port1.postMessage(new WeakMap)}catch(t){if(t.name===A&&25===t.code)return t.constructor}}(),S=E&&E.prototype,O=_.prototype,T=b.set,P=b.getterFor(x),L="stack"in new _(x),M=function(t){return f(g,t)&&g[t].m?g[t].c:0},C=function(){d(this,j);var t=arguments.length,e=y(t<1?void 0:arguments[0]),r=y(t<2?void 0:arguments[1],"Error"),n=M(r);if(T(this,{type:x,name:r,message:e,code:n}),w||(this.name=r,this.message=e,this.code=n),L){var i=new _(e);i.name=x,c(this,"stack",u(1,m(i.stack,1)))}},j=C.prototype=s(O),I=function(t){return{enumerable:!0,configurable:!0,get:t}},R=function(t){return I((function(){return P(this)[t]}))};w&&(h(j,"code",R("code")),h(j,"message",R("message")),h(j,"name",R("name"))),c(j,"constructor",u(1,C));var F=o((function(){return!(new E instanceof _)})),D=F||o((function(){return O.toString!==p||"2: 1"!==String(new E(1,2))})),N=F||o((function(){return 25!==new E(1,"DataCloneError").code})),W=F||25!==E[A]||25!==S[A],B=k?D||N||W:F;n({global:!0,constructor:!0,forced:B},{DOMException:B?C:E});var G=i(x),H=G.prototype;for(var U in D&&(k||E===G)&&l(H,"toString",p),N&&w&&E===G&&h(H,"code",I((function(){return M(v(this).name)}))),g)if(f(g,U)){var z=g[U],V=z.s,q=u(6,z.c);f(G,V)||c(G,V,q),f(H,V)||c(H,V,q)}},6403:(t,e,r)=>{var n=r(5366),i=r(4032),a=r(8711),o=r(4004),s=r(1601).f,u=r(9649),c=r(3399),l=r(3951),h=r(8363),f=r(4090),d=r(3633),v=r(2444),p=r(8507),y="DOMException",g=a("Error"),m=a(y),b=function(){c(this,w);var t=arguments.length,e=h(t<1?void 0:arguments[0]),r=h(t<2?void 0:arguments[1],"Error"),n=new m(e,r),i=new g(e);return i.name=y,s(n,"stack",o(1,d(i.stack,1))),l(n,this,b),n},w=b.prototype=m.prototype,k="stack"in new g(y),x="stack"in new m(1,2),A=m&&v&&Object.getOwnPropertyDescriptor(i,y),_=!(!A||A.writable&&A.configurable),E=k&&!_&&!x;n({global:!0,constructor:!0,forced:p||E},{DOMException:E?b:m});var S=a(y),O=S.prototype;if(O.constructor!==S)for(var T in p||s(O,"constructor",o(1,S)),f)if(u(f,T)){var P=f[T],L=P.s;u(S,L)||s(S,L,o(6,P.c))}},3355:(t,e,r)=>{var n=r(8711),i="DOMException";r(6911)(n(i),i)},9734:(t,e,r)=>{r(9024),r(2217);var n=r(5366),i=r(4032),a=r(5725),o=r(8711),s=r(3453),u=r(2608),c=r(2444),l=r(8200),h=r(8552),f=r(8986),d=r(4183),v=r(6911),p=r(282),y=r(8301),g=r(3399),m=r(3749),b=r(9649),w=r(4864),k=r(1179),x=r(7447),A=r(2674),_=r(687),E=r(5304),S=r(4004),O=r(6961),T=r(7507),P=r(9393),L=r(7900),M=r(5811),C=r(5272),j=M("iterator"),I="URLSearchParams",R=I+"Iterator",F=y.set,D=y.getterFor(I),N=y.getterFor(R),W=a("fetch"),B=a("Request"),G=a("Headers"),H=B&&B.prototype,U=G&&G.prototype,z=i.TypeError,V=i.encodeURIComponent,q=String.fromCharCode,Y=o("String","fromCodePoint"),X=parseInt,K=u("".charAt),Q=u([].join),J=u([].push),$=u("".replace),Z=u([].shift),tt=u([].splice),et=u("".split),rt=u("".slice),nt=u(/./.exec),it=/\\+/g,at=/^[0-9a-f]+$/i,ot=function(t,e){var r=rt(t,e,e+2);return nt(at,r)?X(r,16):NaN},st=function(t){for(var e=0,r=128;r>0&&0!=(t&r);r>>=1)e++;return e},ut=function(t){var e=null;switch(t.length){case 1:e=t[0];break;case 2:e=(31&t[0])<<6|63&t[1];break;case 3:e=(15&t[0])<<12|(63&t[1])<<6|63&t[2];break;case 4:e=(7&t[0])<<18|(63&t[1])<<12|(63&t[2])<<6|63&t[3]}return e>1114111?null:e},ct=function(t){for(var e=(t=$(t,it," ")).length,r="",n=0;ne){r+="%",n++;continue}var a=ot(t,n+1);if(a!=a){r+=i,n++;continue}n+=2;var o=st(a);if(0===o)i=q(a);else{if(1===o||o>4){r+="�",n++;continue}for(var s=[a],u=1;ue||"%"!==K(t,n));){var c=ot(t,n+1);if(c!=c){n+=3;break}if(c>191||c<128)break;J(s,c),n+=2,u++}if(s.length!==o){r+="�";continue}var l=ut(s);null===l?r+="�":i=Y(l)}}r+=i,n++}return r},lt=/[!'()~]|%20/g,ht={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},ft=function(t){return ht[t]},dt=function(t){return $(V(t),lt,ft)},vt=p((function(t,e){F(this,{type:R,target:D(t).entries,index:0,kind:e})}),I,(function(){var t=N(this),e=t.target,r=t.index++;if(!e||r>=e.length)return t.target=null,P(void 0,!0);var n=e[r];switch(t.kind){case"keys":return P(n.key,!1);case"values":return P(n.value,!1)}return P([n.key,n.value],!1)}),!0),pt=function(t){this.entries=[],this.url=null,void 0!==t&&(A(t)?this.parseObject(t):this.parseQuery("string"==typeof t?"?"===K(t,0)?rt(t,1):t:_(t)))};pt.prototype={type:I,bindURL:function(t){this.url=t,this.update()},parseObject:function(t){var e,r,n,i,a,o,u,c=this.entries,l=T(t);if(l)for(r=(e=O(t,l)).next;!(n=s(r,e)).done;){if(a=(i=O(x(n.value))).next,(o=s(a,i)).done||(u=s(a,i)).done||!s(a,i).done)throw new z("Expected sequence with length 2");J(c,{key:_(o.value),value:_(u.value)})}else for(var h in t)b(t,h)&&J(c,{key:h,value:_(t[h])})},parseQuery:function(t){if(t)for(var e,r,n=this.entries,i=et(t,"&"),a=0;a0?arguments[0]:void 0));c||(this.size=t.entries.length)},gt=yt.prototype;if(d(gt,{append:function(t,e){var r=D(this);L(arguments.length,2),J(r.entries,{key:_(t),value:_(e)}),c||this.length++,r.updateURL()},delete:function(t){for(var e=D(this),r=L(arguments.length,1),n=e.entries,i=_(t),a=r<2?void 0:arguments[1],o=void 0===a?a:_(a),s=0;se.key?1:-1})),t.updateURL()},forEach:function(t){for(var e,r=D(this).entries,n=w(t,arguments.length>1?arguments[1]:void 0),i=0;i1?wt(arguments[1]):{})}}),m(B)){var kt=function(t){return g(this,H),new B(t,arguments.length>1?wt(arguments[1]):{})};H.constructor=kt,kt.prototype=H,n({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:kt})}}t.exports={URLSearchParams:yt,getState:D}},1531:(t,e,r)=>{var n=r(8552),i=r(2608),a=r(687),o=r(7900),s=URLSearchParams,u=s.prototype,c=i(u.append),l=i(u.delete),h=i(u.forEach),f=i([].push),d=new s("a=1&a=2&b=3");d.delete("a",1),d.delete("b",void 0),d+""!="a=2"&&n(u,"delete",(function(t){var e=arguments.length,r=e<2?void 0:arguments[1];if(e&&void 0===r)return l(this,t);var n=[];h(this,(function(t,e){f(n,{key:e,value:t})})),o(e,1);for(var i,s=a(t),u=a(r),d=0,v=0,p=!1,y=n.length;d{var n=r(8552),i=r(2608),a=r(687),o=r(7900),s=URLSearchParams,u=s.prototype,c=i(u.getAll),l=i(u.has),h=new s("a=1");!h.has("a",2)&&h.has("a",void 0)||n(u,"has",(function(t){var e=arguments.length,r=e<2?void 0:arguments[1];if(e&&void 0===r)return l(this,t);var n=c(this,t);o(e,1);for(var i=a(r),s=0;s{r(9734)},4145:(t,e,r)=>{var n=r(2444),i=r(2608),a=r(8986),o=URLSearchParams.prototype,s=i(o.forEach);n&&!("size"in o)&&a(o,"size",{get:function(){var t=0;return s(this,(function(){t++})),t},configurable:!0,enumerable:!0})},161:(t,e,r)=>{r(7460);var n,i=r(5366),a=r(2444),o=r(8200),s=r(4032),u=r(4864),c=r(2608),l=r(8552),h=r(8986),f=r(3399),d=r(9649),v=r(8069),p=r(3948),y=r(4224),g=r(6903).codeAt,m=r(5141),b=r(687),w=r(6911),k=r(7900),x=r(9734),A=r(8301),_=A.set,E=A.getterFor("URL"),S=x.URLSearchParams,O=x.getState,T=s.URL,P=s.TypeError,L=s.parseInt,M=Math.floor,C=Math.pow,j=c("".charAt),I=c(/./.exec),R=c([].join),F=c(1..toString),D=c([].pop),N=c([].push),W=c("".replace),B=c([].shift),G=c("".split),H=c("".slice),U=c("".toLowerCase),z=c([].unshift),V="Invalid scheme",q="Invalid host",Y="Invalid port",X=/[a-z]/i,K=/[\\d+-.a-z]/i,Q=/\\d/,J=/^0x/i,$=/^[0-7]+$/,Z=/^\\d+$/,tt=/^[\\da-f]+$/i,et=/[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/,rt=/[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/,nt=/^[\\u0000-\\u0020]+/,it=/(^|[^\\u0000-\\u0020])[\\u0000-\\u0020]+$/,at=/[\\t\\n\\r]/g,ot=function(t){var e,r,n,i;if("number"==typeof t){for(e=[],r=0;r<4;r++)z(e,t%256),t=M(t/256);return R(e,".")}if("object"==typeof t){for(e="",n=function(t){for(var e=null,r=1,n=null,i=0,a=0;a<8;a++)0!==t[a]?(i>r&&(e=n,r=i),n=null,i=0):(null===n&&(n=a),++i);return i>r?n:e}(t),r=0;r<8;r++)i&&0===t[r]||(i&&(i=!1),n===r?(e+=r?":":"::",i=!0):(e+=F(t[r],16),r<7&&(e+=":")));return"["+e+"]"}return t},st={},ut=v({},st,{" ":1,'"':1,"<":1,">":1,"\`":1}),ct=v({},ut,{"#":1,"?":1,"{":1,"}":1}),lt=v({},ct,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\\\":1,"]":1,"^":1,"|":1}),ht=function(t,e){var r=g(t,0);return r>32&&r<127&&!d(e,t)?t:encodeURIComponent(t)},ft={ftp:21,file:null,http:80,https:443,ws:80,wss:443},dt=function(t,e){var r;return 2===t.length&&I(X,j(t,0))&&(":"===(r=j(t,1))||!e&&"|"===r)},vt=function(t){var e;return t.length>1&&dt(H(t,0,2))&&(2===t.length||"/"===(e=j(t,2))||"\\\\"===e||"?"===e||"#"===e)},pt=function(t){return"."===t||"%2e"===U(t)},yt={},gt={},mt={},bt={},wt={},kt={},xt={},At={},_t={},Et={},St={},Ot={},Tt={},Pt={},Lt={},Mt={},Ct={},jt={},It={},Rt={},Ft={},Dt=function(t,e,r){var n,i,a,o=b(t);if(e){if(i=this.parse(o))throw new P(i);this.searchParams=null}else{if(void 0!==r&&(n=new Dt(r,!0)),i=this.parse(o,null,n))throw new P(i);(a=O(new S)).bindURL(this),this.searchParams=a}};Dt.prototype={type:"URL",parse:function(t,e,r){var i,a,o,s,u,c=this,l=e||yt,h=0,f="",v=!1,g=!1,m=!1;for(t=b(t),e||(c.scheme="",c.username="",c.password="",c.host=null,c.port=null,c.path=[],c.query=null,c.fragment=null,c.cannotBeABaseURL=!1,t=W(t,nt,""),t=W(t,it,"$1")),t=W(t,at,""),i=p(t);h<=i.length;){switch(a=i[h],l){case yt:if(!a||!I(X,a)){if(e)return V;l=mt;continue}f+=U(a),l=gt;break;case gt:if(a&&(I(K,a)||"+"===a||"-"===a||"."===a))f+=U(a);else{if(":"!==a){if(e)return V;f="",l=mt,h=0;continue}if(e&&(c.isSpecial()!==d(ft,f)||"file"===f&&(c.includesCredentials()||null!==c.port)||"file"===c.scheme&&!c.host))return;if(c.scheme=f,e)return void(c.isSpecial()&&ft[c.scheme]===c.port&&(c.port=null));f="","file"===c.scheme?l=Pt:c.isSpecial()&&r&&r.scheme===c.scheme?l=bt:c.isSpecial()?l=At:"/"===i[h+1]?(l=wt,h++):(c.cannotBeABaseURL=!0,N(c.path,""),l=It)}break;case mt:if(!r||r.cannotBeABaseURL&&"#"!==a)return V;if(r.cannotBeABaseURL&&"#"===a){c.scheme=r.scheme,c.path=y(r.path),c.query=r.query,c.fragment="",c.cannotBeABaseURL=!0,l=Ft;break}l="file"===r.scheme?Pt:kt;continue;case bt:if("/"!==a||"/"!==i[h+1]){l=kt;continue}l=_t,h++;break;case wt:if("/"===a){l=Et;break}l=jt;continue;case kt:if(c.scheme=r.scheme,a===n)c.username=r.username,c.password=r.password,c.host=r.host,c.port=r.port,c.path=y(r.path),c.query=r.query;else if("/"===a||"\\\\"===a&&c.isSpecial())l=xt;else if("?"===a)c.username=r.username,c.password=r.password,c.host=r.host,c.port=r.port,c.path=y(r.path),c.query="",l=Rt;else{if("#"!==a){c.username=r.username,c.password=r.password,c.host=r.host,c.port=r.port,c.path=y(r.path),c.path.length--,l=jt;continue}c.username=r.username,c.password=r.password,c.host=r.host,c.port=r.port,c.path=y(r.path),c.query=r.query,c.fragment="",l=Ft}break;case xt:if(!c.isSpecial()||"/"!==a&&"\\\\"!==a){if("/"!==a){c.username=r.username,c.password=r.password,c.host=r.host,c.port=r.port,l=jt;continue}l=Et}else l=_t;break;case At:if(l=_t,"/"!==a||"/"!==j(f,h+1))continue;h++;break;case _t:if("/"!==a&&"\\\\"!==a){l=Et;continue}break;case Et:if("@"===a){v&&(f="%40"+f),v=!0,o=p(f);for(var w=0;w65535)return Y;c.port=c.isSpecial()&&A===ft[c.scheme]?null:A,f=""}if(e)return;l=Ct;continue}return Y}f+=a;break;case Pt:if(c.scheme="file","/"===a||"\\\\"===a)l=Lt;else{if(!r||"file"!==r.scheme){l=jt;continue}switch(a){case n:c.host=r.host,c.path=y(r.path),c.query=r.query;break;case"?":c.host=r.host,c.path=y(r.path),c.query="",l=Rt;break;case"#":c.host=r.host,c.path=y(r.path),c.query=r.query,c.fragment="",l=Ft;break;default:vt(R(y(i,h),""))||(c.host=r.host,c.path=y(r.path),c.shortenPath()),l=jt;continue}}break;case Lt:if("/"===a||"\\\\"===a){l=Mt;break}r&&"file"===r.scheme&&!vt(R(y(i,h),""))&&(dt(r.path[0],!0)?N(c.path,r.path[0]):c.host=r.host),l=jt;continue;case Mt:if(a===n||"/"===a||"\\\\"===a||"?"===a||"#"===a){if(!e&&dt(f))l=jt;else if(""===f){if(c.host="",e)return;l=Ct}else{if(s=c.parseHost(f))return s;if("localhost"===c.host&&(c.host=""),e)return;f="",l=Ct}continue}f+=a;break;case Ct:if(c.isSpecial()){if(l=jt,"/"!==a&&"\\\\"!==a)continue}else if(e||"?"!==a)if(e||"#"!==a){if(a!==n&&(l=jt,"/"!==a))continue}else c.fragment="",l=Ft;else c.query="",l=Rt;break;case jt:if(a===n||"/"===a||"\\\\"===a&&c.isSpecial()||!e&&("?"===a||"#"===a)){if(".."===(u=U(u=f))||"%2e."===u||".%2e"===u||"%2e%2e"===u?(c.shortenPath(),"/"===a||"\\\\"===a&&c.isSpecial()||N(c.path,"")):pt(f)?"/"===a||"\\\\"===a&&c.isSpecial()||N(c.path,""):("file"===c.scheme&&!c.path.length&&dt(f)&&(c.host&&(c.host=""),f=j(f,0)+":"),N(c.path,f)),f="","file"===c.scheme&&(a===n||"?"===a||"#"===a))for(;c.path.length>1&&""===c.path[0];)B(c.path);"?"===a?(c.query="",l=Rt):"#"===a&&(c.fragment="",l=Ft)}else f+=ht(a,ct);break;case It:"?"===a?(c.query="",l=Rt):"#"===a?(c.fragment="",l=Ft):a!==n&&(c.path[0]+=ht(a,st));break;case Rt:e||"#"!==a?a!==n&&("'"===a&&c.isSpecial()?c.query+="%27":c.query+="#"===a?"%23":ht(a,st)):(c.fragment="",l=Ft);break;case Ft:a!==n&&(c.fragment+=ht(a,ut))}h++}},parseHost:function(t){var e,r,n;if("["===j(t,0)){if("]"!==j(t,t.length-1))return q;if(e=function(t){var e,r,n,i,a,o,s,u=[0,0,0,0,0,0,0,0],c=0,l=null,h=0,f=function(){return j(t,h)};if(":"===f()){if(":"!==j(t,1))return;h+=2,l=++c}for(;f();){if(8===c)return;if(":"!==f()){for(e=r=0;r<4&&I(tt,f());)e=16*e+L(f(),16),h++,r++;if("."===f()){if(0===r)return;if(h-=r,c>6)return;for(n=0;f();){if(i=null,n>0){if(!("."===f()&&n<4))return;h++}if(!I(Q,f()))return;for(;I(Q,f());){if(a=L(f(),10),null===i)i=a;else{if(0===i)return;i=10*i+a}if(i>255)return;h++}u[c]=256*u[c]+i,2!=++n&&4!==n||c++}if(4!==n)return;break}if(":"===f()){if(h++,!f())return}else if(f())return;u[c++]=e}else{if(null!==l)return;h++,l=++c}}if(null!==l)for(o=c-l,c=7;0!==c&&o>0;)s=u[c],u[c--]=u[l+o-1],u[l+--o]=s;else if(8!==c)return;return u}(H(t,1,-1)),!e)return q;this.host=e}else if(this.isSpecial()){if(t=m(t),I(et,t))return q;if(e=function(t){var e,r,n,i,a,o,s,u=G(t,".");if(u.length&&""===u[u.length-1]&&u.length--,(e=u.length)>4)return t;for(r=[],n=0;n1&&"0"===j(i,0)&&(a=I(J,i)?16:8,i=H(i,8===a?1:2)),""===i)o=0;else{if(!I(10===a?Z:8===a?$:tt,i))return t;o=L(i,a)}N(r,o)}for(n=0;n=C(256,5-e))return null}else if(o>255)return null;for(s=D(r),n=0;n1?arguments[1]:void 0,n=_(e,new Dt(t,!1,r));a||(e.href=n.serialize(),e.origin=n.getOrigin(),e.protocol=n.getProtocol(),e.username=n.getUsername(),e.password=n.getPassword(),e.host=n.getHost(),e.hostname=n.getHostname(),e.port=n.getPort(),e.pathname=n.getPathname(),e.search=n.getSearch(),e.searchParams=n.getSearchParams(),e.hash=n.getHash())},Wt=Nt.prototype,Bt=function(t,e){return{get:function(){return E(this)[t]()},set:e&&function(t){return E(this)[e](t)},configurable:!0,enumerable:!0}};if(a&&(h(Wt,"href",Bt("serialize","setHref")),h(Wt,"origin",Bt("getOrigin")),h(Wt,"protocol",Bt("getProtocol","setProtocol")),h(Wt,"username",Bt("getUsername","setUsername")),h(Wt,"password",Bt("getPassword","setPassword")),h(Wt,"host",Bt("getHost","setHost")),h(Wt,"hostname",Bt("getHostname","setHostname")),h(Wt,"port",Bt("getPort","setPort")),h(Wt,"pathname",Bt("getPathname","setPathname")),h(Wt,"search",Bt("getSearch","setSearch")),h(Wt,"searchParams",Bt("getSearchParams")),h(Wt,"hash",Bt("getHash","setHash"))),l(Wt,"toJSON",(function(){return E(this).serialize()}),{enumerable:!0}),l(Wt,"toString",(function(){return E(this).serialize()}),{enumerable:!0}),T){var Gt=T.createObjectURL,Ht=T.revokeObjectURL;Gt&&l(Nt,"createObjectURL",u(Gt,T)),Ht&&l(Nt,"revokeObjectURL",u(Ht,T))}w(Nt,"URL"),i({global:!0,constructor:!0,forced:!o,sham:!a},{URL:Nt})},5728:(t,e,r)=>{r(161)},4136:(t,e,r)=>{var n=r(5366),i=r(3453);n({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return i(URL.prototype.toString,this)}})}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var a=e[n]={exports:{}};return t[n].call(a.exports,a,a.exports,r),a.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n,i=globalThis.pdfjsLib={};function a(t,e,r){if("function"==typeof t?t===e:t.has(e))return arguments.length<3?e:r;throw new TypeError("Private element is not present on this object")}function o(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,i,a,o,s=[],u=!0,c=!1;try{if(a=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=a.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw i}}return s}}(t,e)||s(t,e)||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.")}()}function s(t,e){if(t){if("string"==typeof t)return u(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?u(t,e):void 0}}function u(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);rY,AnnotationEditorLayer:()=>Ak,AnnotationEditorParamsType:()=>_,AnnotationEditorType:()=>A,AnnotationEditorUIManager:()=>Kn,AnnotationLayer:()=>np,AnnotationMode:()=>x,CMapCompressionType:()=>T,ColorPicker:()=>Tg,DOMSVGFactory:()=>me,DrawLayer:()=>Vk,FeatureTest:()=>J,GlobalWorkerOptions:()=>mu,ImageKind:()=>S,InvalidPDFException:()=>U,MissingPDFException:()=>z,OPS:()=>P,OutputScale:()=>Fe,PDFDataRangeTransport:()=>rf,PDFDateString:()=>Le,PDFWorker:()=>pf,PasswordResponses:()=>L,PermissionFlag:()=>E,PixelsPerInch:()=>Vt,RenderingCancelledException:()=>we,TextLayer:()=>uh,UnexpectedResponseException:()=>V,Util:()=>Z,VerbosityLevel:()=>O,XfaLayer:()=>td,build:()=>Bf,createValidAbsoluteUrl:()=>N,fetchData:()=>ve,getDocument:()=>$h,getFilenameFromUrl:()=>Ae,getPdfFilenameFromUrl:()=>_e,getXfaPageViewport:()=>Me,isDataScheme:()=>ke,isPdfFile:()=>xe,noContextMenu:()=>Te,normalizeUnicode:()=>it,setLayerDimensions:()=>Re,shadow:()=>W,version:()=>Wf}),r(8169),r(7651),r(4551),r(5268),r(184),r(3234),r(6746),r(8551),r(9024),r(9138),r(750),r(5015),r(6209),r(9261),r(3700),r(3632),r(7316),r(1425),r(3379),r(489),r(2823),r(5594),r(8397),r(2467),r(1281),r(9484),r(4672),r(6794),r(9264),r(7329),r(2044),r(3740),r(6542),r(5738),r(2900),r(2051),r(3198),r(4211),r(9791),r(5294),r(1526),r(6032),r(3659),r(932),r(8553),r(7612),r(8579),r(7719),r(7576),r(2891),r(2605),r(4863),r(9637),r(2709),r(8941),r(1579),r(6236),r(7716),r(1913),r(3577),r(5728),r(4136),r(4520),r(1531),r(3678),r(4145);var m=!("object"!=typeof process||process+""!="[object process]"||process.versions.nw||process.versions.electron&&process.type&&"browser"!==process.type),b=[1,0,0,1,0,0],w=[.001,0,0,.001,0,0],k=1.35,x={DISABLE:0,ENABLE:1,ENABLE_FORMS:2,ENABLE_STORAGE:3},A={DISABLE:-1,NONE:0,FREETEXT:3,HIGHLIGHT:9,STAMP:13,INK:15},_={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},E={PRINT:4,MODIFY_CONTENTS:8,COPY:16,MODIFY_ANNOTATIONS:32,FILL_INTERACTIVE_FORMS:256,COPY_FOR_ACCESSIBILITY:512,ASSEMBLE:1024,PRINT_HIGH_QUALITY:2048},S={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3},O={ERRORS:0,WARNINGS:1,INFOS:5},T={NONE:0,BINARY:1},P={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},L={NEED_PASSWORD:1,INCORRECT_PASSWORD:2},M=O.WARNINGS;function C(t){Number.isInteger(t)&&(M=t)}function j(){return M}function I(t){M>=O.INFOS&&console.log("Info: ".concat(t))}function R(t){M>=O.WARNINGS&&console.log("Warning: ".concat(t))}function F(t){throw new Error(t)}function D(t,e){t||F(e)}function N(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(!t)return null;try{if(r&&"string"==typeof t){if(r.addDefaultProtocol&&t.startsWith("www.")){var n=t.match(/\\./g);(null==n?void 0:n.length)>=2&&(t="http://".concat(t))}if(r.tryConvertEncoding)try{t=decodeURIComponent(escape(t))}catch(t){}}var i=e?new URL(t,e):new URL(t);if(function(t){switch(null==t?void 0:t.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}(i))return i}catch(t){}return null}function W(t,e,r){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return Object.defineProperty(t,e,{value:r,enumerable:!n,configurable:!0,writable:!1}),r}var B=function(){function t(t,e){this.message=t,this.name=e}return t.prototype=new Error,t.constructor=t,t}(),G=function(t){function e(t,r){var n;return f(this,e),(n=d(this,e,[t,"PasswordException"])).code=r,n}return y(e,B),l(e)}(),H=function(t){function e(t,r){var n;return f(this,e),(n=d(this,e,[t,"UnknownErrorException"])).details=r,n}return y(e,B),l(e)}(),U=function(t){function e(t){return f(this,e),d(this,e,[t,"InvalidPDFException"])}return y(e,B),l(e)}(),z=function(t){function e(t){return f(this,e),d(this,e,[t,"MissingPDFException"])}return y(e,B),l(e)}(),V=function(t){function e(t,r){var n;return f(this,e),(n=d(this,e,[t,"UnexpectedResponseException"])).status=r,n}return y(e,B),l(e)}(),q=function(t){function e(t){return f(this,e),d(this,e,[t,"FormatError"])}return y(e,B),l(e)}(),Y=function(t){function e(t){return f(this,e),d(this,e,[t,"AbortException"])}return y(e,B),l(e)}();function X(t){"object"==typeof t&&void 0!==(null==t?void 0:t.length)||F("Invalid argument for bytesToString");var e=t.length,r=8192;if(e=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){u=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(u)throw a}}}}(t);try{for(n.s();!(e=n.n()).done;){var i=o(e.value,2),a=i[0],u=i[1];r[a]=u}}catch(t){n.e(t)}finally{n.f()}return r}var J=function(){return l((function t(){f(this,t)}),null,[{key:"isLittleEndian",get:function(){return W(this,"isLittleEndian",((t=new Uint8Array(4))[0]=1,1===new Uint32Array(t.buffer,0,1)[0]));var t}},{key:"isEvalSupported",get:function(){return W(this,"isEvalSupported",function(){try{return new Function(""),!0}catch(t){return!1}}())}},{key:"isOffscreenCanvasSupported",get:function(){return W(this,"isOffscreenCanvasSupported","undefined"!=typeof OffscreenCanvas)}},{key:"platform",get:function(){var t,e;return"undefined"!=typeof navigator&&"string"==typeof(null===(t=navigator)||void 0===t?void 0:t.platform)?W(this,"platform",{isMac:navigator.platform.includes("Mac"),isWindows:navigator.platform.includes("Win"),isFirefox:"string"==typeof(null===(e=navigator)||void 0===e?void 0:e.userAgent)&&navigator.userAgent.includes("Firefox")}):W(this,"platform",{isMac:!1,isWindows:!1,isFirefox:!1})}},{key:"isCSSRoundSupported",get:function(){var t,e;return W(this,"isCSSRoundSupported",null===(t=globalThis.CSS)||void 0===t||null===(e=t.supports)||void 0===e?void 0:e.call(t,"width: round(1.5px, 1px)"))}}])}(),$=Array.from(Array(256).keys(),(function(t){return t.toString(16).padStart(2,"0")})),Z=function(){function t(){f(this,t)}return l(t,null,[{key:"makeHexColor",value:function(t,e,r){return"#".concat($[t]).concat($[e]).concat($[r])}},{key:"scaleMinMax",value:function(t,e){var r;t[0]?(t[0]<0&&(r=e[0],e[0]=e[2],e[2]=r),e[0]*=t[0],e[2]*=t[0],t[3]<0&&(r=e[1],e[1]=e[3],e[3]=r),e[1]*=t[3],e[3]*=t[3]):(r=e[0],e[0]=e[1],e[1]=r,r=e[2],e[2]=e[3],e[3]=r,t[1]<0&&(r=e[1],e[1]=e[3],e[3]=r),e[1]*=t[1],e[3]*=t[1],t[2]<0&&(r=e[0],e[0]=e[2],e[2]=r),e[0]*=t[2],e[2]*=t[2]),e[0]+=t[4],e[1]+=t[5],e[2]+=t[4],e[3]+=t[5]}},{key:"transform",value:function(t,e){return[t[0]*e[0]+t[2]*e[1],t[1]*e[0]+t[3]*e[1],t[0]*e[2]+t[2]*e[3],t[1]*e[2]+t[3]*e[3],t[0]*e[4]+t[2]*e[5]+t[4],t[1]*e[4]+t[3]*e[5]+t[5]]}},{key:"applyTransform",value:function(t,e){return[t[0]*e[0]+t[1]*e[2]+e[4],t[0]*e[1]+t[1]*e[3]+e[5]]}},{key:"applyInverseTransform",value:function(t,e){var r=e[0]*e[3]-e[1]*e[2];return[(t[0]*e[3]-t[1]*e[2]+e[2]*e[5]-e[4]*e[3])/r,(-t[0]*e[1]+t[1]*e[0]+e[4]*e[1]-e[5]*e[0])/r]}},{key:"getAxialAlignedBoundingBox",value:function(t,e){var r=this.applyTransform(t,e),n=this.applyTransform(t.slice(2,4),e),i=this.applyTransform([t[0],t[3]],e),a=this.applyTransform([t[2],t[1]],e);return[Math.min(r[0],n[0],i[0],a[0]),Math.min(r[1],n[1],i[1],a[1]),Math.max(r[0],n[0],i[0],a[0]),Math.max(r[1],n[1],i[1],a[1])]}},{key:"inverseTransform",value:function(t){var e=t[0]*t[3]-t[1]*t[2];return[t[3]/e,-t[1]/e,-t[2]/e,t[0]/e,(t[2]*t[5]-t[4]*t[3])/e,(t[4]*t[1]-t[5]*t[0])/e]}},{key:"singularValueDecompose2dScale",value:function(t){var e=[t[0],t[2],t[1],t[3]],r=t[0]*e[0]+t[1]*e[2],n=t[0]*e[1]+t[1]*e[3],i=t[2]*e[0]+t[3]*e[2],a=t[2]*e[1]+t[3]*e[3],o=(r+a)/2,s=Math.sqrt(Math.pow(r+a,2)-4*(r*a-i*n))/2,u=o+s||1,c=o-s||1;return[Math.sqrt(u),Math.sqrt(c)]}},{key:"normalizeRect",value:function(t){var e=t.slice(0);return t[0]>t[2]&&(e[0]=t[2],e[2]=t[0]),t[1]>t[3]&&(e[1]=t[3],e[3]=t[1]),e}},{key:"intersect",value:function(t,e){var r=Math.max(Math.min(t[0],t[2]),Math.min(e[0],e[2])),n=Math.min(Math.max(t[0],t[2]),Math.max(e[0],e[2]));if(r>n)return null;var i=Math.max(Math.min(t[1],t[3]),Math.min(e[1],e[3])),a=Math.min(Math.max(t[1],t[3]),Math.max(e[1],e[3]));return i>a?null:[r,i,n,a]}},{key:"bezierBoundingBox",value:function(e,r,n,i,o,s,u,c,l){return l?(l[0]=Math.min(l[0],e,u),l[1]=Math.min(l[1],r,c),l[2]=Math.max(l[2],e,u),l[3]=Math.max(l[3],r,c)):l=[Math.min(e,u),Math.min(r,c),Math.max(e,u),Math.max(r,c)],a(t,this,et).call(this,e,n,o,u,r,i,s,c,3*(3*(n-o)-e+u),6*(e-2*n+o),3*(n-e),l),a(t,this,et).call(this,e,n,o,u,r,i,s,c,3*(3*(i-s)-r+c),6*(r-2*i+s),3*(i-r),l),l}}])}();function tt(t,e,r,n,i,a,o,s,u,c){if(!(u<=0||u>=1)){var l=1-u,h=u*u,f=h*u,d=l*(l*(l*t+3*u*e)+3*h*r)+f*n,v=l*(l*(l*i+3*u*a)+3*h*o)+f*s;c[0]=Math.min(c[0],d),c[1]=Math.min(c[1],v),c[2]=Math.max(c[2],d),c[3]=Math.max(c[3],v)}}function et(t,e,r,i,o,s,u,c,l,h,f,d){if(Math.abs(l)<1e-12)Math.abs(h)>=1e-12&&a(n,this,tt).call(this,t,e,r,i,o,s,u,c,-f/h,d);else{var v=Math.pow(h,2)-4*f*l;if(!(v<0)){var p=Math.sqrt(v),y=2*l;a(n,this,tt).call(this,t,e,r,i,o,s,u,c,(-h+p)/y,d),a(n,this,tt).call(this,t,e,r,i,o,s,u,c,(-h-p)/y,d)}}}n=Z;var rt=null,nt=null;function it(t){return rt||(rt=/([\\xA0\\xB5\\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+)/g,nt=new Map([["ſt","ſt"]])),t.replaceAll(rt,(function(t,e,r){return e?e.normalize("NFKC"):nt.get(r)}))}var at="pdfjs_internal_id_";function ot(){ot=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,i=Object.defineProperty||function(t,e,r){t[e]=r.value},a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",s=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function c(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch(t){c=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var a=e&&e.prototype instanceof g?e:g,o=Object.create(a.prototype),s=new L(n||[]);return i(o,"_invoke",{value:S(t,r,s)}),o}function h(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var f="suspendedStart",d="suspendedYield",v="executing",p="completed",y={};function g(){}function m(){}function b(){}var w={};c(w,o,(function(){return this}));var k=Object.getPrototypeOf,x=k&&k(k(M([])));x&&x!==r&&n.call(x,o)&&(w=x);var A=b.prototype=g.prototype=Object.create(w);function _(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function E(t,e){function r(i,a,o,s){var u=h(t[i],t,a);if("throw"!==u.type){var c=u.arg,l=c.value;return l&&"object"==typeof l&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,o,s)}),(function(t){r("throw",t,o,s)})):e.resolve(l).then((function(t){c.value=t,o(c)}),(function(t){return r("throw",t,o,s)}))}s(u.arg)}var a;i(this,"_invoke",{value:function(t,n){function i(){return new e((function(e,i){r(t,n,e,i)}))}return a=a?a.then(i,i):i()}})}function S(e,r,n){var i=f;return function(a,o){if(i===v)throw Error("Generator is already running");if(i===p){if("throw"===a)throw o;return{value:t,done:!0}}for(n.method=a,n.arg=o;;){var s=n.delegate;if(s){var u=O(s,n);if(u){if(u===y)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===f)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=v;var c=h(e,r,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===y)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function O(e,r){var n=r.method,i=e.iterator[n];if(i===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,O(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=h(i,e.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,y;var o=a.arg;return o?o.done?(r[e.resultName]=o.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):o:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function T(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function M(e){if(e||""===e){var r=e[o];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function r(){for(;++i=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;P(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:M(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function st(t,e,r,n,i,a,o){try{var s=t[a](o),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function ut(t){return function(){var e=this,r=arguments;return new Promise((function(n,i){var a=t.apply(e,r);function o(t){st(a,n,i,o,s,"next",t)}function s(t){st(a,n,i,o,s,"throw",t)}o(void 0)}))}}function ct(t,e,r){if("function"==typeof t?t===e:t.has(e))return arguments.length<3?e:r;throw new TypeError("Private element is not present on this object")}function lt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function ht(t,e){for(var r=0;r2&&void 0!==arguments[2]&&arguments[2];if(t<=0||e<=0)throw new Error("Invalid SVG dimensions");var n=this._createSVG("svg:svg");return n.setAttribute("version","1.1"),r||(n.setAttribute("width","".concat(t,"px")),n.setAttribute("height","".concat(e,"px"))),n.setAttribute("preserveAspectRatio","none"),n.setAttribute("viewBox","0 0 ".concat(t," ").concat(e)),n}},{key:"createElement",value:function(t){if("string"!=typeof t)throw new Error("Invalid SVG element type");return this._createSVG(t)}},{key:"_createSVG",value:function(t){F("Abstract method \`_createSVG\` called.")}}])}();function kt(){kt=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,i=Object.defineProperty||function(t,e,r){t[e]=r.value},a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",s=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function c(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch(t){c=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var a=e&&e.prototype instanceof g?e:g,o=Object.create(a.prototype),s=new L(n||[]);return i(o,"_invoke",{value:S(t,r,s)}),o}function h(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var f="suspendedStart",d="suspendedYield",v="executing",p="completed",y={};function g(){}function m(){}function b(){}var w={};c(w,o,(function(){return this}));var k=Object.getPrototypeOf,x=k&&k(k(M([])));x&&x!==r&&n.call(x,o)&&(w=x);var A=b.prototype=g.prototype=Object.create(w);function _(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function E(t,e){function r(i,a,o,s){var u=h(t[i],t,a);if("throw"!==u.type){var c=u.arg,l=c.value;return l&&"object"==typeof l&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,o,s)}),(function(t){r("throw",t,o,s)})):e.resolve(l).then((function(t){c.value=t,o(c)}),(function(t){return r("throw",t,o,s)}))}s(u.arg)}var a;i(this,"_invoke",{value:function(t,n){function i(){return new e((function(e,i){r(t,n,e,i)}))}return a=a?a.then(i,i):i()}})}function S(e,r,n){var i=f;return function(a,o){if(i===v)throw Error("Generator is already running");if(i===p){if("throw"===a)throw o;return{value:t,done:!0}}for(n.method=a,n.arg=o;;){var s=n.delegate;if(s){var u=O(s,n);if(u){if(u===y)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===f)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=v;var c=h(e,r,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===y)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function O(e,r){var n=r.method,i=e.iterator[n];if(i===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,O(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=h(i,e.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,y;var o=a.arg;return o?o.done?(r[e.resultName]=o.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):o:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function T(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function M(e){if(e||""===e){var r=e[o];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function r(){for(;++i=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;P(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:M(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function xt(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=St(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function At(t,e,r,n,i,a,o){try{var s=t[a](o),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function _t(t){return function(t){if(Array.isArray(t))return Ot(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||St(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Et(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,i,a,o,s=[],u=!0,c=!1;try{if(a=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=a.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw i}}return s}}(t,e)||St(t,e)||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.")}()}function St(t,e){if(t){if("string"==typeof t)return Ot(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ot(t,e):void 0}}function Ot(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r0&&void 0!==arguments[0]&&arguments[0]&&0!==Rt(Zt,this,re).size||(Ft(Xt,this)&&(Ft(Xt,this).parentNode.parentNode.remove(),Dt(Xt,this,null)),Ft(Yt,this)&&(Ft(Yt,this).clear(),Dt(Yt,this,null)),Dt($t,this,0))}}])}();function ee(t){return Ft(Yt,t)||Dt(Yt,t,new Map)}function re(t){return Ft(Jt,t)||Dt(Jt,t,new Map)}function ne(t){if(!Ft(Xt,t)){var e=Ft(Qt,t).createElement("div"),r=e.style;r.visibility="hidden",r.contain="strict",r.width=r.height=0,r.position="absolute",r.top=r.left=0,r.zIndex=-1;var n=Ft(Qt,t).createElementNS(zt,"svg");n.setAttribute("width",0),n.setAttribute("height",0),Dt(Xt,t,Ft(Qt,t).createElementNS(zt,"defs")),e.append(n),n.append(Ft(Xt,t)),Ft(Qt,t).body.append(e)}return Ft(Xt,t)}function ie(t){if(1===t.length){for(var e=t[0],r=new Array(256),n=0;n<256;n++)r[n]=e[n]/255;var i=r.join(",");return[i,i,i]}for(var a=Et(t,3),o=a[0],s=a[1],u=a[2],c=new Array(256),l=new Array(256),h=new Array(256),f=0;f<256;f++)c[f]=o[f]/255,l[f]=s[f]/255,h[f]=u[f]/255;return[c.join(","),l.join(","),h.join(",")]}function ae(t){if(void 0===Ft(qt,this)){Dt(qt,this,"");var e=Ft(Qt,this).URL;e!==Ft(Qt,this).baseURI&&(ke(e)?R('#createUrl: ignore "data:"-URL for performance reasons.'):Dt(qt,this,e.split("#",1)[0]))}return"url(".concat(Ft(qt,this),"#").concat(t,")")}function oe(t){var e=Ft(Qt,this).createElementNS(zt,"feColorMatrix");e.setAttribute("type","matrix"),e.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"),t.append(e)}function se(t){var e=Ft(Qt,this).createElementNS(zt,"feColorMatrix");e.setAttribute("type","matrix"),e.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"),t.append(e)}function ue(t){var e=Ft(Qt,this).createElementNS(zt,"filter");return e.setAttribute("color-interpolation-filters","sRGB"),e.setAttribute("id",t),Rt(Zt,this,ne).append(e),e}function ce(t,e,r){var n=Ft(Qt,this).createElementNS(zt,e);n.setAttribute("type","discrete"),n.setAttribute("tableValues",r),t.append(n)}function le(t,e,r,n){var i=Ft(Qt,this).createElementNS(zt,"feComponentTransfer");n.append(i),Nt(Zt,this,ce).call(this,i,"feFuncR",t),Nt(Zt,this,ce).call(this,i,"feFuncG",e),Nt(Zt,this,ce).call(this,i,"feFuncB",r)}function he(t,e){var r=Ft(Qt,this).createElementNS(zt,"feComponentTransfer");e.append(r),Nt(Zt,this,ce).call(this,r,"feFuncA",t)}function fe(t){return Rt(Zt,this,ne).style.color=t,Ce(getComputedStyle(Rt(Zt,this,ne)).getPropertyValue("color"))}var de=function(t){function e(t){var r,n=t.ownerDocument,i=void 0===n?globalThis.document:n,a=t.enableHWA,o=void 0!==a&&a;return Gt(this,e),(r=Tt(this,e,[{enableHWA:o}]))._document=i,r}return Mt(e,gt),Bt(e,[{key:"_createCanvas",value:function(t,e){var r=this._document.createElement("canvas");return r.width=t,r.height=e,r}}])}();function ve(t){return pe.apply(this,arguments)}function pe(){var t;return t=kt().mark((function t(e){var r,n,i=arguments;return kt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=i.length>1&&void 0!==i[1]?i[1]:"text",!Oe(e,document.baseURI)){t.next=14;break}return t.next=4,fetch(e);case 4:if((n=t.sent).ok){t.next=7;break}throw new Error(n.statusText);case 7:t.t0=r,t.next="arraybuffer"===t.t0?10:"blob"===t.t0?11:"json"===t.t0?12:13;break;case 10:return t.abrupt("return",n.arrayBuffer());case 11:return t.abrupt("return",n.blob());case 12:return t.abrupt("return",n.json());case 13:return t.abrupt("return",n.text());case 14:return t.abrupt("return",new Promise((function(t,n){var i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType=r,i.onreadystatechange=function(){if(i.readyState===XMLHttpRequest.DONE)if(200!==i.status&&0!==i.status)n(new Error(i.statusText));else{switch(r){case"arraybuffer":case"blob":case"json":return void t(i.response)}t(i.responseText)}},i.send(null)})));case 15:case"end":return t.stop()}}),t)})),pe=function(){var e=this,r=arguments;return new Promise((function(n,i){var a=t.apply(e,r);function o(t){At(a,n,i,o,s,"next",t)}function s(t){At(a,n,i,o,s,"throw",t)}o(void 0)}))},pe.apply(this,arguments)}var ye=function(t){function e(){return Gt(this,e),Tt(this,e,arguments)}return Mt(e,mt),Bt(e,[{key:"_fetchData",value:function(t,e){return ve(t,this.isCompressed?"arraybuffer":"text").then((function(t){return{cMapData:t instanceof ArrayBuffer?new Uint8Array(t):K(t),compressionType:e}}))}}])}(),ge=function(t){function e(){return Gt(this,e),Tt(this,e,arguments)}return Mt(e,bt),Bt(e,[{key:"_fetchData",value:function(t){return ve(t,"arraybuffer").then((function(t){return new Uint8Array(t)}))}}])}(),me=function(t){function e(){return Gt(this,e),Tt(this,e,arguments)}return Mt(e,wt),Bt(e,[{key:"_createSVG",value:function(t){return document.createElementNS(zt,t)}}])}(),be=function(){function t(e){var r=e.viewBox,n=e.scale,i=e.rotation,a=e.offsetX,o=void 0===a?0:a,s=e.offsetY,u=void 0===s?0:s,c=e.dontFlip,l=void 0!==c&&c;Gt(this,t),this.viewBox=r,this.scale=n,this.rotation=i,this.offsetX=o,this.offsetY=u;var h,f,d,v,p,y,g,m,b=(r[2]+r[0])/2,w=(r[3]+r[1])/2;switch((i%=360)<0&&(i+=360),i){case 180:h=-1,f=0,d=0,v=1;break;case 90:h=0,f=1,d=1,v=0;break;case 270:h=0,f=-1,d=-1,v=0;break;case 0:h=1,f=0,d=0,v=-1;break;default:throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees.")}l&&(d=-d,v=-v),0===h?(p=Math.abs(w-r[1])*n+o,y=Math.abs(b-r[0])*n+u,g=(r[3]-r[1])*n,m=(r[2]-r[0])*n):(p=Math.abs(b-r[0])*n+o,y=Math.abs(w-r[1])*n+u,g=(r[2]-r[0])*n,m=(r[3]-r[1])*n),this.transform=[h*n,f*n,d*n,v*n,p-h*n*b-d*n*w,y-f*n*b-v*n*w],this.width=g,this.height=m}return Bt(t,[{key:"rawDims",get:function(){var t=this.viewBox;return W(this,"rawDims",{pageWidth:t[2]-t[0],pageHeight:t[3]-t[1],pageX:t[0],pageY:t[1]})}},{key:"clone",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.scale,n=void 0===r?this.scale:r,i=e.rotation,a=void 0===i?this.rotation:i,o=e.offsetX,s=void 0===o?this.offsetX:o,u=e.offsetY,c=void 0===u?this.offsetY:u,l=e.dontFlip,h=void 0!==l&&l;return new t({viewBox:this.viewBox.slice(),scale:n,rotation:a,offsetX:s,offsetY:c,dontFlip:h})}},{key:"convertToViewportPoint",value:function(t,e){return Z.applyTransform([t,e],this.transform)}},{key:"convertToViewportRectangle",value:function(t){var e=Z.applyTransform([t[0],t[1]],this.transform),r=Z.applyTransform([t[2],t[3]],this.transform);return[e[0],e[1],r[0],r[1]]}},{key:"convertToPdfPoint",value:function(t,e){return Z.applyInverseTransform([t,e],this.transform)}}])}(),we=function(t){function e(t){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return Gt(this,e),(r=Tt(this,e,[t,"RenderingCancelledException"])).extraDelay=n,r}return Mt(e,B),Bt(e)}();function ke(t){for(var e=t.length,r=0;r1&&void 0!==arguments[1]?arguments[1]:"document.pdf";if("string"!=typeof t)return e;if(ke(t))return R('getPdfFilenameFromUrl: ignore "data:"-URL for performance reasons.'),e;var r=/[^/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i,n=/^(?:(?:[^:]+:)?\\/\\/[^/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/.exec(t),i=r.exec(n[1])||r.exec(n[2])||r.exec(n[3]);if(i&&(i=i[0]).includes("%"))try{i=r.exec(decodeURIComponent(i))[0]}catch(t){}return i||e}var Ee,Se=function(){return Bt((function t(){Gt(this,t),Ht(this,"started",Object.create(null)),Ht(this,"times",[])}),[{key:"time",value:function(t){t in this.started&&R("Timer is already running for ".concat(t)),this.started[t]=Date.now()}},{key:"timeEnd",value:function(t){t in this.started||R("Timer has not been started for ".concat(t)),this.times.push({name:t,start:this.started[t],end:Date.now()}),delete this.started[t]}},{key:"toString",value:function(){var t,e=[],r=0,n=xt(this.times);try{for(n.s();!(t=n.n()).done;){var i=t.value.name;r=Math.max(i.length,r)}}catch(t){n.e(t)}finally{n.f()}var a,o=xt(this.times);try{for(o.s();!(a=o.n()).done;){var s=a.value,u=s.name,c=s.start,l=s.end;e.push("".concat(u.padEnd(r)," ").concat(l-c,"ms\\n"))}}catch(t){o.e(t)}finally{o.f()}return e.join("")}}])}();function Oe(t,e){try{var r=(e?new URL(t,e):new URL(t)).protocol;return"http:"===r||"https:"===r}catch(t){return!1}}function Te(t){t.preventDefault()}function Pe(t){console.log("Deprecated API usage: "+t)}var Le=function(){return Bt((function t(){Gt(this,t)}),null,[{key:"toDateObject",value:function(t){if(!t||"string"!=typeof t)return null;Ee||(Ee=new RegExp("^D:(\\\\d{4})(\\\\d{2})?(\\\\d{2})?(\\\\d{2})?(\\\\d{2})?(\\\\d{2})?([Z|+|-])?(\\\\d{2})?'?(\\\\d{2})?'?"));var e=Ee.exec(t);if(!e)return null;var r=parseInt(e[1],10),n=parseInt(e[2],10);n=n>=1&&n<=12?n-1:0;var i=parseInt(e[3],10);i=i>=1&&i<=31?i:1;var a=parseInt(e[4],10);a=a>=0&&a<=23?a:0;var o=parseInt(e[5],10);o=o>=0&&o<=59?o:0;var s=parseInt(e[6],10);s=s>=0&&s<=59?s:0;var u=e[7]||"Z",c=parseInt(e[8],10);c=c>=0&&c<=23?c:0;var l=parseInt(e[9],10)||0;return l=l>=0&&l<=59?l:0,"-"===u?(a+=c,o+=l):"+"===u&&(a-=c,o-=l),new Date(Date.UTC(r,n,i,a,o,s))}}])}();function Me(t,e){var r=e.scale,n=void 0===r?1:r,i=e.rotation,a=void 0===i?0:i,o=t.attributes.style,s=o.width,u=o.height,c=[0,0,parseInt(s),parseInt(u)];return new be({viewBox:c,scale:n,rotation:a})}function Ce(t){if(t.startsWith("#")){var e=parseInt(t.slice(1),16);return[(16711680&e)>>16,(65280&e)>>8,255&e]}return t.startsWith("rgb(")?t.slice(4,-1).split(",").map((function(t){return parseInt(t)})):t.startsWith("rgba(")?t.slice(5,-1).split(",").map((function(t){return parseInt(t)})).slice(0,3):(R('Not a valid color format: "'.concat(t,'"')),[0,0,0])}function je(t){var e=t.getTransform();return[e.a,e.b,e.c,e.d,e.e,e.f]}function Ie(t){var e=t.getTransform().invertSelf();return[e.a,e.b,e.c,e.d,e.e,e.f]}function Re(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];if(e instanceof be){var i=e.rawDims,a=i.pageWidth,o=i.pageHeight,s=t.style,u=J.isCSSRoundSupported,c="var(--scale-factor) * ".concat(a,"px"),l="var(--scale-factor) * ".concat(o,"px"),h=u?"round(down, ".concat(c,", var(--scale-round-x, 1px))"):"calc(".concat(c,")"),f=u?"round(down, ".concat(l,", var(--scale-round-y, 1px))"):"calc(".concat(l,")");r&&e.rotation%180!=0?(s.width=f,s.height=h):(s.width=h,s.height=f)}n&&t.setAttribute("data-main-rotation",e.rotation)}var Fe=function(){return Bt((function t(){Gt(this,t);var e=window.devicePixelRatio||1;this.sx=e,this.sy=e}),[{key:"scaled",get:function(){return 1!==this.sx||1!==this.sy}},{key:"symmetric",get:function(){return this.sx===this.sy}}])}();function De(t,e){if(t){if("string"==typeof t)return Ne(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ne(t,e):void 0}}function Ne(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;P(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:M(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function Be(t,e,r,n,i,a,o){try{var s=t[a](o),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function Ge(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function He(t,e){for(var r=0;r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}(t);try{for(a.s();!(r=a.n()).done;){var o=r.value,s=o.y+o.height;if(!(sn?(i=u,n=s):e?u>i&&(i=u):u=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;P(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:M(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function Er(t,e,r,n,i,a,o){try{var s=t[a](o),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function Sr(t){return function(){var e=this,r=arguments;return new Promise((function(n,i){var a=t.apply(e,r);function o(t){Er(a,n,i,o,s,"next",t)}function s(t){Er(a,n,i,o,s,"throw",t)}o(void 0)}))}}function Or(t,e){jr(t,e),e.add(t)}function Tr(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Pr(t,e){for(var r=0;r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Nr(t,e){if(t){if("string"==typeof t)return Wr(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Wr(t,e):void 0}}function Wr(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r0&&void 0!==arguments[0]?arguments[0]:128;Tr(this,t),Cr(this,Qr,[]),Cr(this,Jr,!1),Cr(this,$r,void 0),Cr(this,Zr,-1),Rr($r,this,e)}),[{key:"add",value:function(t){var e=t.cmd,r=t.undo,n=t.post,i=t.mustExec,a=t.type,o=void 0===a?NaN:a,s=t.overwriteIfSameType,u=void 0!==s&&s,c=t.keepUndo,l=void 0!==c&&c;if(i&&e(),!Ir(Jr,this)){var h={cmd:e,undo:r,post:n,type:o};if(-1===Ir(Zr,this))return Ir(Qr,this).length>0&&(Ir(Qr,this).length=0),Rr(Zr,this,0),void Ir(Qr,this).push(h);if(u&&Ir(Qr,this)[Ir(Zr,this)].type===o)return l&&(h.undo=Ir(Qr,this)[Ir(Zr,this)].undo),void(Ir(Qr,this)[Ir(Zr,this)]=h);var f=Ir(Zr,this)+1;f===Ir($r,this)?Ir(Qr,this).splice(0,1):(Rr(Zr,this,f),f1&&void 0!==arguments[1]&&arguments[1];null===(e=Ir(hn,this))||void 0===e||e.editAltText(this,t,r)}},{key:"switchToMode",value:function(t,e){this._eventBus.on("annotationeditormodechanged",e,{once:!0,signal:this._signal}),this._eventBus.dispatch("showannotationeditorui",{source:this,mode:t})}},{key:"setPreference",value:function(t,e){this._eventBus.dispatch("setpreference",{source:this,name:t,value:e})}},{key:"onSetPreference",value:function(t){var e=t.name,r=t.value;"enableNewAltTextWhenAddingImage"===e&&Rr(An,this,r)}},{key:"onPageChanging",value:function(t){var e=t.pageNumber;Rr(yn,this,e-1)}},{key:"focusMainContainer",value:function(){Ir(Vn,this).focus()}},{key:"findParent",value:function(t,e){var r,n=Dr(Ir(ln,this).values());try{for(n.s();!(r=n.n()).done;){var i=r.value,a=i.div.getBoundingClientRect(),o=a.x,s=a.y,u=a.width,c=a.height;if(t>=o&&t<=o+u&&e>=s&&e<=s+c)return i}}catch(t){n.e(t)}finally{n.f()}return null}},{key:"disableUserSelect",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];Ir(qn,this).classList.toggle("noUserSelect",t)}},{key:"addShouldRescale",value:function(t){Ir(wn,this).add(t)}},{key:"removeShouldRescale",value:function(t){Ir(wn,this).delete(t)}},{key:"onScaleChanging",value:function(t){var e=t.scale;this.commitOrRemove(),this.viewParameters.realScale=e*Vt.PDF_TO_CSS_UNITS;var r,n=Dr(Ir(wn,this));try{for(n.s();!(r=n.n()).done;)r.value.onScaleChanging()}catch(t){n.e(t)}finally{n.f()}}},{key:"onRotationChanging",value:function(t){var e=t.pagesRotation;this.commitOrRemove(),this.viewParameters.rotation=e}},{key:"highlightSelection",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",r=document.getSelection();if(r&&!r.isCollapsed){var n=r.anchorNode,i=r.anchorOffset,a=r.focusNode,o=r.focusOffset,s=r.toString(),u=Fr(Xn,this,Qn).call(this,r).closest(".textLayer"),c=this.getSelectionBoxes(u);if(c){r.empty();var l=Fr(Xn,this,Jn).call(this,u),h=Ir(Dn,this)===A.NONE,f=function(){null==l||l.createAndAddNewEditor({x:0,y:0},!1,{methodOfCreation:e,boxes:c,anchorNode:n,anchorOffset:i,focusNode:a,focusOffset:o,text:s}),h&&t.showAllEditors("highlight",!0,!0)};h?this.switchToMode(A.HIGHLIGHT,f):f()}}}},{key:"addToAnnotationStorage",value:function(t){t.isEmpty()||!Ir(fn,this)||Ir(fn,this).has(t.id)||Ir(fn,this).setValue(t.id,t)}},{key:"blur",value:function(){if(this.isShiftKeyDown=!1,Ir(Tn,this)&&(Rr(Tn,this,!1),Fr(Xn,this,ti).call(this,"main_toolbar")),this.hasSelection){var t,e=document.activeElement,r=Dr(Ir(Nn,this));try{for(r.s();!(t=r.n()).done;){var n=t.value;if(n.div.contains(e)){Rr(In,this,[n,e]),n._focusEventsAllowed=!1;break}}}catch(t){r.e(t)}finally{r.f()}}}},{key:"focus",value:function(){if(Ir(In,this)){var t=Ar(Ir(In,this),2),e=t[0],r=t[1];Rr(In,this,null),r.addEventListener("focusin",(function(){e._focusEventsAllowed=!0}),{once:!0,signal:this._signal}),r.focus()}}},{key:"addEditListeners",value:function(){Fr(Xn,this,ii).call(this),Fr(Xn,this,oi).call(this)}},{key:"removeEditListeners",value:function(){Fr(Xn,this,ai).call(this),Fr(Xn,this,si).call(this)}},{key:"dragOver",value:function(t){var e,r=Dr(t.dataTransfer.items);try{for(r.s();!(e=r.n()).done;){var n,i=e.value.type,a=Dr(Ir(bn,this));try{for(a.s();!(n=a.n()).done;)if(n.value.isHandlingMimeForPasting(i))return t.dataTransfer.dropEffect="copy",void t.preventDefault()}catch(t){a.e(t)}finally{a.f()}}}catch(t){r.e(t)}finally{r.f()}}},{key:"drop",value:function(t){var e,r=Dr(t.dataTransfer.items);try{for(r.s();!(e=r.n()).done;){var n,i=e.value,a=Dr(Ir(bn,this));try{for(a.s();!(n=a.n()).done;){var o=n.value;if(o.isHandlingMimeForPasting(i.type))return o.paste(i,this.currentLayer),void t.preventDefault()}}catch(t){a.e(t)}finally{a.f()}}}catch(t){r.e(t)}finally{r.f()}}},{key:"copy",value:function(t){var e;if(t.preventDefault(),null===(e=Ir(un,this))||void 0===e||e.commitOrRemove(),this.hasSelection){var r,n=[],i=Dr(Ir(Nn,this));try{for(i.s();!(r=i.n()).done;){var a=r.value.serialize(!0);a&&n.push(a)}}catch(t){i.e(t)}finally{i.f()}0!==n.length&&t.clipboardData.setData("application/pdfjs",JSON.stringify(n))}}},{key:"cut",value:function(t){this.copy(t),this.delete()}},{key:"paste",value:(r=Sr(_r().mark((function t(e){var r,n,i,a,o,s,u,c,l,h,f,d,v,p,y,g,m=this;return _r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e.preventDefault(),r=e.clipboardData,n=Dr(r.items),t.prev=3,n.s();case 5:if((i=n.n()).done){t.next=27;break}a=i.value,o=Dr(Ir(bn,this)),t.prev=8,o.s();case 10:if((s=o.n()).done){t.next=17;break}if(!(u=s.value).isHandlingMimeForPasting(a.type)){t.next=15;break}return u.paste(a,this.currentLayer),t.abrupt("return");case 15:t.next=10;break;case 17:t.next=22;break;case 19:t.prev=19,t.t0=t.catch(8),o.e(t.t0);case 22:return t.prev=22,o.f(),t.finish(22);case 25:t.next=5;break;case 27:t.next=32;break;case 29:t.prev=29,t.t1=t.catch(3),n.e(t.t1);case 32:return t.prev=32,n.f(),t.finish(32);case 35:if(c=r.getData("application/pdfjs")){t.next=38;break}return t.abrupt("return");case 38:t.prev=38,c=JSON.parse(c),t.next=46;break;case 42:return t.prev=42,t.t2=t.catch(38),R('paste: "'.concat(t.t2.message,'".')),t.abrupt("return");case 46:if(Array.isArray(c)){t.next=48;break}return t.abrupt("return");case 48:this.unselectAll(),l=this.currentLayer,t.prev=50,h=[],f=Dr(c),t.prev=53,f.s();case 55:if((d=f.n()).done){t.next=65;break}return v=d.value,t.next=59,l.deserialize(v);case 59:if(p=t.sent){t.next=62;break}return t.abrupt("return");case 62:h.push(p);case 63:t.next=55;break;case 65:t.next=70;break;case 67:t.prev=67,t.t3=t.catch(53),f.e(t.t3);case 70:return t.prev=70,f.f(),t.finish(70);case 73:y=function(){for(var t=0,e=h;t1&&void 0!==c[1]?c[1]:null,n=c.length>2&&void 0!==c[2]&&c[2],Ir(Dn,this)!==e){t.next=4;break}return t.abrupt("return");case 4:if(!Ir(Yn,this)){t.next=9;break}return t.next=7,Ir(Yn,this).promise;case 7:if(Ir(Yn,this)){t.next=9;break}return t.abrupt("return");case 9:if(Rr(Yn,this,Promise.withResolvers()),Rr(Dn,this,e),e!==A.NONE){t.next=16;break}return this.setEditingState(!1),Fr(Xn,this,di).call(this),Ir(Yn,this).resolve(),t.abrupt("return");case 16:return this.setEditingState(!0),t.next=19,Fr(Xn,this,hi).call(this);case 19:this.unselectAll(),i=Dr(Ir(ln,this).values());try{for(i.s();!(a=i.n()).done;)a.value.updateMode(e)}catch(t){i.e(t)}finally{i.f()}if(r){t.next=26;break}return n&&this.addNewEditorFromKeyboard(),Ir(Yn,this).resolve(),t.abrupt("return");case 26:o=Dr(Ir(cn,this).values());try{for(o.s();!(s=o.n()).done;)(u=s.value).annotationElementId===r?(this.setSelected(u),u.enterInEditMode()):u.unselect()}catch(t){o.e(t)}finally{o.f()}Ir(Yn,this).resolve();case 29:case"end":return t.stop()}}),t,this)}))),function(t){return e.apply(this,arguments)})},{key:"addNewEditorFromKeyboard",value:function(){this.currentLayer.canCreateNewEmptyEditor()&&this.currentLayer.addNewEditor()}},{key:"updateToolbar",value:function(t){t!==Ir(Dn,this)&&this._eventBus.dispatch("switchannotationeditormode",{source:this,mode:t})}},{key:"updateParams",value:function(t,e){var r;if(Ir(bn,this)){switch(t){case _.CREATE:return void this.currentLayer.addNewEditor();case _.HIGHLIGHT_DEFAULT_COLOR:null===(r=Ir(Rn,this))||void 0===r||r.updateColor(e);break;case _.HIGHLIGHT_SHOW_ALL:this._eventBus.dispatch("reporttelemetry",{source:this,details:{type:"editing",data:{type:"highlight",action:"toggle_visibility"}}}),(Ir(Gn,this)||Rr(Gn,this,new Map)).set(t,e),this.showAllEditors("highlight",e)}var n,i=Dr(Ir(Nn,this));try{for(i.s();!(n=i.n()).done;)n.value.updateParams(t,e)}catch(t){i.e(t)}finally{i.f()}var a,o=Dr(Ir(bn,this));try{for(o.s();!(a=o.n()).done;)a.value.updateDefaultParams(t,e)}catch(t){o.e(t)}finally{o.f()}}}},{key:"showAllEditors",value:function(t,e){var r,n,i,a=Dr(Ir(cn,this).values());try{for(a.s();!(i=a.n()).done;){var o=i.value;o.editorType===t&&o.show(e)}}catch(t){a.e(t)}finally{a.f()}(null===(r=null===(n=Ir(Gn,this))||void 0===n?void 0:n.get(_.HIGHLIGHT_SHOW_ALL))||void 0===r||r)!==e&&Fr(Xn,this,li).call(this,[[_.HIGHLIGHT_SHOW_ALL,e]])}},{key:"enableWaiting",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(Ir(Cn,this)!==t){Rr(Cn,this,t);var e,r=Dr(Ir(ln,this).values());try{for(r.s();!(e=r.n()).done;){var n=e.value;t?n.disableClick():n.enableClick(),n.div.classList.toggle("waiting",t)}}catch(t){r.e(t)}finally{r.f()}}}},{key:"getEditors",value:function(t){var e,r=[],n=Dr(Ir(cn,this).values());try{for(n.s();!(e=n.n()).done;){var i=e.value;i.pageIndex===t&&r.push(i)}}catch(t){n.e(t)}finally{n.f()}return r}},{key:"getEditor",value:function(t){return Ir(cn,this).get(t)}},{key:"addEditor",value:function(t){Ir(cn,this).set(t.id,t)}},{key:"removeEditor",value:function(t){var e,r=this;t.div.contains(document.activeElement)&&(Ir(En,this)&&clearTimeout(Ir(En,this)),Rr(En,this,setTimeout((function(){r.focusMainContainer(),Rr(En,r,null)}),0))),Ir(cn,this).delete(t.id),this.unselect(t),t.annotationElementId&&Ir(gn,this).has(t.annotationElementId)||null===(e=Ir(fn,this))||void 0===e||e.remove(t.id)}},{key:"addDeletedAnnotationElement",value:function(t){Ir(gn,this).add(t.annotationElementId),this.addChangedExistingAnnotation(t),t.deleted=!0}},{key:"isDeletedAnnotationElement",value:function(t){return Ir(gn,this).has(t)}},{key:"removeDeletedAnnotationElement",value:function(t){Ir(gn,this).delete(t.annotationElementId),this.removeChangedExistingAnnotation(t),t.deleted=!1}},{key:"setActiveEditor",value:function(t){Ir(un,this)!==t&&(Rr(un,this,t),t&&Fr(Xn,this,li).call(this,t.propertiesToUpdate))}},{key:"updateUI",value:function(t){(function(t){var e,r=null,n=Dr(Ir(Nn,t));try{for(n.s();!(e=n.n()).done;)r=e.value}catch(t){n.e(t)}finally{n.f()}return r})(Fr(Xn,this))===t&&Fr(Xn,this,li).call(this,t.propertiesToUpdate)}},{key:"toggleSelected",value:function(t){if(Ir(Nn,this).has(t))return Ir(Nn,this).delete(t),t.unselect(),void Fr(Xn,this,ci).call(this,{hasSelectedEditor:this.hasSelection});Ir(Nn,this).add(t),t.select(),Fr(Xn,this,li).call(this,t.propertiesToUpdate),Fr(Xn,this,ci).call(this,{hasSelectedEditor:!0})}},{key:"setSelected",value:function(t){var e,r=Dr(Ir(Nn,this));try{for(r.s();!(e=r.n()).done;){var n=e.value;n!==t&&n.unselect()}}catch(t){r.e(t)}finally{r.f()}Ir(Nn,this).clear(),Ir(Nn,this).add(t),t.select(),Fr(Xn,this,li).call(this,t.propertiesToUpdate),Fr(Xn,this,ci).call(this,{hasSelectedEditor:!0})}},{key:"isSelected",value:function(t){return Ir(Nn,this).has(t)}},{key:"firstSelectedEditor",get:function(){return Ir(Nn,this).values().next().value}},{key:"unselect",value:function(t){t.unselect(),Ir(Nn,this).delete(t),Fr(Xn,this,ci).call(this,{hasSelectedEditor:this.hasSelection})}},{key:"hasSelection",get:function(){return 0!==Ir(Nn,this).size}},{key:"isEnterHandled",get:function(){return 1===Ir(Nn,this).size&&this.firstSelectedEditor.isEnterHandled}},{key:"undo",value:function(){Ir(vn,this).undo(),Fr(Xn,this,ci).call(this,{hasSomethingToUndo:Ir(vn,this).hasSomethingToUndo(),hasSomethingToRedo:!0,isEmpty:Fr(Xn,this,pi).call(this)})}},{key:"redo",value:function(){Ir(vn,this).redo(),Fr(Xn,this,ci).call(this,{hasSomethingToUndo:!0,hasSomethingToRedo:Ir(vn,this).hasSomethingToRedo(),isEmpty:Fr(Xn,this,pi).call(this)})}},{key:"addCommands",value:function(t){Ir(vn,this).add(t),Fr(Xn,this,ci).call(this,{hasSomethingToUndo:!0,hasSomethingToRedo:!1,isEmpty:Fr(Xn,this,pi).call(this)})}},{key:"delete",value:function(){var t=this;if(this.commitOrRemove(),this.hasSelection){var e=xr(Ir(Nn,this));this.addCommands({cmd:function(){var t,r=Dr(e);try{for(r.s();!(t=r.n()).done;)t.value.remove()}catch(t){r.e(t)}finally{r.f()}},undo:function(){var r,n=Dr(e);try{for(n.s();!(r=n.n()).done;){var i=r.value;Fr(Xn,t,vi).call(t,i)}}catch(t){n.e(t)}finally{n.f()}},mustExec:!0})}}},{key:"commitOrRemove",value:function(){var t;null===(t=Ir(un,this))||void 0===t||t.commitOrRemove()}},{key:"hasSomethingToControl",value:function(){return Ir(un,this)||this.hasSelection}},{key:"selectAll",value:function(){var t,e=Dr(Ir(Nn,this));try{for(e.s();!(t=e.n()).done;)t.value.commit()}catch(t){e.e(t)}finally{e.f()}Fr(Xn,this,yi).call(this,Ir(cn,this).values())}},{key:"unselectAll",value:function(){if((!Ir(un,this)||(Ir(un,this).commitOrRemove(),Ir(Dn,this)===A.NONE))&&this.hasSelection){var t,e=Dr(Ir(Nn,this));try{for(e.s();!(t=e.n()).done;)t.value.unselect()}catch(t){e.e(t)}finally{e.f()}Ir(Nn,this).clear(),Fr(Xn,this,ci).call(this,{hasSelectedEditor:!1})}}},{key:"translateSelectedEditors",value:function(t,e){var r=this;if(arguments.length>2&&void 0!==arguments[2]&&arguments[2]||this.commitOrRemove(),this.hasSelection){Ir(Un,this)[0]+=t,Ir(Un,this)[1]+=e;var n=Ar(Ir(Un,this),2),i=n[0],a=n[1],o=xr(Ir(Nn,this));Ir(zn,this)&&clearTimeout(Ir(zn,this)),Rr(zn,this,setTimeout((function(){Rr(zn,r,null),Ir(Un,r)[0]=Ir(Un,r)[1]=0,r.addCommands({cmd:function(){var t,e=Dr(o);try{for(e.s();!(t=e.n()).done;){var n=t.value;Ir(cn,r).has(n.id)&&n.translateInPage(i,a)}}catch(t){e.e(t)}finally{e.f()}},undo:function(){var t,e=Dr(o);try{for(e.s();!(t=e.n()).done;){var n=t.value;Ir(cn,r).has(n.id)&&n.translateInPage(-i,-a)}}catch(t){e.e(t)}finally{e.f()}},mustExec:!1})}),1e3));var s,u=Dr(o);try{for(u.s();!(s=u.n()).done;)s.value.translateInPage(t,e)}catch(t){u.e(t)}finally{u.f()}}}},{key:"setUpDragSession",value:function(){if(this.hasSelection){this.disableUserSelect(!0),Rr(mn,this,new Map);var t,e=Dr(Ir(Nn,this));try{for(e.s();!(t=e.n()).done;){var r=t.value;Ir(mn,this).set(r,{savedX:r.x,savedY:r.y,savedPageIndex:r.pageIndex,newX:0,newY:0,newPageIndex:-1})}}catch(t){e.e(t)}finally{e.f()}}}},{key:"endDragSession",value:function(){var t=this;if(!Ir(mn,this))return!1;this.disableUserSelect(!1);var e=Ir(mn,this);Rr(mn,this,null);var r,n=!1,i=Dr(e);try{for(i.s();!(r=i.n()).done;){var a=Ar(r.value,2),o=a[0],s=o.x,u=o.y,c=o.pageIndex,l=a[1];l.newX=s,l.newY=u,l.newPageIndex=c,n||(n=s!==l.savedX||u!==l.savedY||c!==l.savedPageIndex)}}catch(t){i.e(t)}finally{i.f()}if(!n)return!1;var h=function(e,r,n,i){if(Ir(cn,t).has(e.id)){var a=Ir(ln,t).get(i);a?e._setParentAndPosition(a,r,n):(e.pageIndex=i,e.x=r,e.y=n)}};return this.addCommands({cmd:function(){var t,r=Dr(e);try{for(r.s();!(t=r.n()).done;){var n=Ar(t.value,2),i=n[0],a=n[1],o=a.newX,s=a.newY,u=a.newPageIndex;h(i,o,s,u)}}catch(t){r.e(t)}finally{r.f()}},undo:function(){var t,r=Dr(e);try{for(r.s();!(t=r.n()).done;){var n=Ar(t.value,2),i=n[0],a=n[1],o=a.savedX,s=a.savedY,u=a.savedPageIndex;h(i,o,s,u)}}catch(t){r.e(t)}finally{r.f()}},mustExec:!0}),!0}},{key:"dragSelectedEditors",value:function(t,e){if(Ir(mn,this)){var r,n=Dr(Ir(mn,this).keys());try{for(n.s();!(r=n.n()).done;)r.value.drag(t,e)}catch(t){n.e(t)}finally{n.f()}}}},{key:"rebuild",value:function(t){if(null===t.parent){var e=this.getLayer(t.pageIndex);e?(e.changeParent(t),e.addOrRebuild(t)):(this.addEditor(t),this.addToAnnotationStorage(t),t.rebuild())}else t.parent.addOrRebuild(t)}},{key:"isEditorHandlingKeyboard",get:function(){var t;return(null===(t=this.getActive())||void 0===t?void 0:t.shouldGetKeyboardEvents())||1===Ir(Nn,this).size&&this.firstSelectedEditor.shouldGetKeyboardEvents()}},{key:"isActive",value:function(t){return Ir(un,this)===t}},{key:"getActive",value:function(){return Ir(un,this)}},{key:"getMode",value:function(){return Ir(Dn,this)}},{key:"imageManager",get:function(){return W(this,"imageManager",new Yr)}},{key:"getSelectionBoxes",value:function(t){if(!t)return null;for(var e=document.getSelection(),r=0,n=e.rangeCount;r0&&void 0!==arguments[0]?arguments[0]:"";Ir(Dn,this)===A.HIGHLIGHT?this.highlightSelection(t):Ir(kn,this)&&Fr(Xn,this,$n).call(this)}function ei(){document.addEventListener("selectionchange",Fr(Xn,this,Zn).bind(this),{signal:this._signal})}function ri(){if(!Ir(Sn,this)){Rr(Sn,this,new AbortController);var t=this.combinedSignal(Ir(Sn,this));window.addEventListener("focus",this.focus.bind(this),{signal:t}),window.addEventListener("blur",this.blur.bind(this),{signal:t})}}function ni(){var t;null===(t=Ir(Sn,this))||void 0===t||t.abort(),Rr(Sn,this,null)}function ii(){if(!Ir(jn,this)){Rr(jn,this,new AbortController);var t=this.combinedSignal(Ir(jn,this));window.addEventListener("keydown",this.keydown.bind(this),{signal:t}),window.addEventListener("keyup",this.keyup.bind(this),{signal:t})}}function ai(){var t;null===(t=Ir(jn,this))||void 0===t||t.abort(),Rr(jn,this,null)}function oi(){if(!Ir(pn,this)){Rr(pn,this,new AbortController);var t=this.combinedSignal(Ir(pn,this));document.addEventListener("copy",this.copy.bind(this),{signal:t}),document.addEventListener("cut",this.cut.bind(this),{signal:t}),document.addEventListener("paste",this.paste.bind(this),{signal:t})}}function si(){var t;null===(t=Ir(pn,this))||void 0===t||t.abort(),Rr(pn,this,null)}function ui(){var t=this._signal;document.addEventListener("dragover",this.dragOver.bind(this),{signal:t}),document.addEventListener("drop",this.drop.bind(this),{signal:t})}function ci(t){var e=this;Object.entries(t).some((function(t){var r=Ar(t,2),n=r[0],i=r[1];return Ir(Hn,e)[n]!==i}))&&(this._eventBus.dispatch("annotationeditorstateschanged",{source:this,details:Object.assign(Ir(Hn,this),t)}),Ir(Dn,this)===A.HIGHLIGHT&&!1===t.hasSelectedEditor&&Fr(Xn,this,li).call(this,[[_.HIGHLIGHT_FREE,!0]]))}function li(t){this._eventBus.dispatch("annotationeditorparamschanged",{source:this,details:t})}function hi(){return fi.apply(this,arguments)}function fi(){return(fi=Sr(_r().mark((function t(){var e,r,n,i,a,o;return _r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(Ir(Mn,this)){t.next=9;break}Rr(Mn,this,!0),e=[],r=Dr(Ir(ln,this).values());try{for(r.s();!(n=r.n()).done;)i=n.value,e.push(i.enable())}catch(t){r.e(t)}finally{r.f()}return t.next=7,Promise.all(e);case 7:a=Dr(Ir(cn,this).values());try{for(a.s();!(o=a.n()).done;)o.value.enable()}catch(t){a.e(t)}finally{a.f()}case 9:case"end":return t.stop()}}),t,this)})))).apply(this,arguments)}function di(){if(this.unselectAll(),Ir(Mn,this)){Rr(Mn,this,!1);var t,e=Dr(Ir(ln,this).values());try{for(e.s();!(t=e.n()).done;)t.value.disable()}catch(t){e.e(t)}finally{e.f()}var r,n=Dr(Ir(cn,this).values());try{for(n.s();!(r=n.n()).done;)r.value.disable()}catch(t){n.e(t)}finally{n.f()}}}function vi(t){var e=Ir(ln,this).get(t.pageIndex);e?e.addOrRebuild(t):(this.addEditor(t),this.addToAnnotationStorage(t))}function pi(){if(0===Ir(cn,this).size)return!0;if(1===Ir(cn,this).size){var t,e=Dr(Ir(cn,this).values());try{for(e.s();!(t=e.n()).done;)return t.value.isEmpty()}catch(t){e.e(t)}finally{e.f()}}return!1}function yi(t){var e,r=Dr(Ir(Nn,this));try{for(r.s();!(e=r.n()).done;)e.value.unselect()}catch(t){r.e(t)}finally{r.f()}Ir(Nn,this).clear();var n,i=Dr(t);try{for(i.s();!(n=i.n()).done;){var a=n.value;a.isEmpty()||(Ir(Nn,this).add(a),a.select())}}catch(t){i.e(t)}finally{i.f()}Fr(Xn,this,ci).call(this,{hasSelectedEditor:this.hasSelection})}function gi(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return mi(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?mi(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function mi(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;P(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:M(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function wi(t,e,r,n,i,a,o){try{var s=t[a](o),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function ki(t){return function(){var e=this,r=arguments;return new Promise((function(n,i){var a=t.apply(e,r);function o(t){wi(a,n,i,o,s,"next",t)}function s(t){wi(a,n,i,o,s,"throw",t)}o(void 0)}))}}function xi(t,e){for(var r=0;r0&&void 0!==arguments[0]&&arguments[0];if(!Oi(Bi,this)||Oi(Li,this))return null===(t=Oi(Fi,this))||void 0===t||t.remove(),void Ti(Fi,this,null);if(!Oi(Fi,this)){var r=Ti(Fi,this,document.createElement("div"));r.className="noAltTextBadge",Oi(Di,this).div.append(r)}Oi(Fi,this).classList.toggle("hidden",!e)}},{key:"serialize",value:function(t){var e=Oi(Li,this);return t||Oi(Ni,this)!==e||(e=Oi(Wi,this)),{altText:e,decorative:Oi(Mi,this),guessedText:Oi(Ni,this),textWithDisclaimer:Oi(Wi,this)}}},{key:"data",get:function(){return{altText:Oi(Li,this),decorative:Oi(Mi,this)}},set:function(t){var e=t.altText,r=t.decorative,n=t.guessedText,i=t.textWithDisclaimer,a=t.cancel,o=void 0!==a&&a;n&&(Ti(Ni,this,n),Ti(Wi,this,i)),Oi(Li,this)===e&&Oi(Mi,this)===r||(o||(Ti(Li,this,e),Ti(Mi,this,r)),Pi(Gi,this,zi).call(this))}},{key:"toggle",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];Oi(Ci,this)&&(!t&&Oi(Ii,this)&&(clearTimeout(Oi(Ii,this)),Ti(Ii,this,null)),Oi(Ci,this).disabled=!t)}},{key:"shown",value:function(){Oi(Di,this)._reportTelemetry({action:"pdfjs.image.alt_text.image_status_label_displayed",data:{label:Si(Gi,this,Ui)}})}},{key:"destroy",value:function(){var t,e;null===(t=Oi(Ci,this))||void 0===t||t.remove(),Ti(Ci,this,null),Ti(ji,this,null),null===(e=Oi(Fi,this))||void 0===e||e.remove(),Ti(Fi,this,null)}}],n=[{key:"initialize",value:function(e){t._l10nPromise||(t._l10nPromise=e)}}],r&&xi(e.prototype,r),n&&xi(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,r,n,i}();function Ui(t){return(Oi(Li,t)?"added":null===Oi(Li,t)&&t.guessedText&&"review")||"missing"}function zi(){return Vi.apply(this,arguments)}function Vi(){return(Vi=ki(bi().mark((function t(){var e,r,n,i,a,o,s=this;return bi().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=Oi(Ci,this)){t.next=3;break}return t.abrupt("return");case 3:if(!Oi(Bi,this)){t.next=11;break}if(e.classList.toggle("done",!!Oi(Li,this)),on._l10nPromise.get(Ki._[Si(Gi,this,Ui)]).then((function(t){e.setAttribute("aria-label",t);var r,n=gi(e.childNodes);try{for(n.s();!(r=n.n()).done;){var i=r.value;if(i.nodeType===Node.TEXT_NODE){i.textContent=t;break}}}catch(t){n.e(t)}finally{n.f()}})),Oi(Li,this)){t.next=9;break}return null===(r=Oi(ji,this))||void 0===r||r.remove(),t.abrupt("return");case 9:t.next=17;break;case 11:if(Oi(Li,this)||Oi(Mi,this)){t.next=15;break}return e.classList.remove("done"),null===(n=Oi(ji,this))||void 0===n||n.remove(),t.abrupt("return");case 15:e.classList.add("done"),on._l10nPromise.get("pdfjs-editor-alt-text-edit-button-label").then((function(t){e.setAttribute("aria-label",t)}));case 17:if((i=Oi(ji,this))||(Ti(ji,this,i=document.createElement("span")),i.className="tooltip",i.setAttribute("role","tooltip"),i.id="alt-text-tooltip-".concat(Oi(Di,this).id),(a=Oi(Di,this)._uiManager._signal).addEventListener("abort",(function(){clearTimeout(Oi(Ii,s)),Ti(Ii,s,null)}),{once:!0}),e.addEventListener("mouseenter",(function(){Ti(Ii,s,setTimeout((function(){Ti(Ii,s,null),Oi(ji,s).classList.add("show"),Oi(Di,s)._reportTelemetry({action:"alt_text_tooltip"})}),100))}),{signal:a}),e.addEventListener("mouseleave",(function(){var t;Oi(Ii,s)&&(clearTimeout(Oi(Ii,s)),Ti(Ii,s,null)),null===(t=Oi(ji,s))||void 0===t||t.classList.remove("show")}),{signal:a})),!Oi(Mi,this)){t.next=25;break}return t.next=22,on._l10nPromise.get("pdfjs-editor-alt-text-decorative-tooltip");case 22:t.t0=t.sent,t.next=26;break;case 25:t.t0=Oi(Li,this);case 26:i.innerText=t.t0,i.parentNode||e.append(i),null==(o=Oi(Di,this).getImageForAltText())||o.setAttribute("aria-describedby",i.id);case 30:case"end":return t.stop()}}),t,this)})))).apply(this,arguments)}on=Hi;var qi,Yi,Xi,Ki={_:null};function Qi(t,e,r){return e=$i(e),function(t,e){if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,Ji()?Reflect.construct(e,r||[],$i(t).constructor):e.apply(t,r))}function Ji(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Ji=function(){return!!t})()}function $i(t){return $i=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},$i(t)}function Zi(t,e){return Zi=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},Zi(t,e)}function ta(t){return function(t){if(Array.isArray(t))return sa(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||oa(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ea(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=oa(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function ra(){ra=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,i=Object.defineProperty||function(t,e,r){t[e]=r.value},a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",s=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function c(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch(t){c=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var a=e&&e.prototype instanceof g?e:g,o=Object.create(a.prototype),s=new L(n||[]);return i(o,"_invoke",{value:S(t,r,s)}),o}function h(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var f="suspendedStart",d="suspendedYield",v="executing",p="completed",y={};function g(){}function m(){}function b(){}var w={};c(w,o,(function(){return this}));var k=Object.getPrototypeOf,x=k&&k(k(M([])));x&&x!==r&&n.call(x,o)&&(w=x);var A=b.prototype=g.prototype=Object.create(w);function _(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function E(t,e){function r(i,a,o,s){var u=h(t[i],t,a);if("throw"!==u.type){var c=u.arg,l=c.value;return l&&"object"==typeof l&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,o,s)}),(function(t){r("throw",t,o,s)})):e.resolve(l).then((function(t){c.value=t,o(c)}),(function(t){return r("throw",t,o,s)}))}s(u.arg)}var a;i(this,"_invoke",{value:function(t,n){function i(){return new e((function(e,i){r(t,n,e,i)}))}return a=a?a.then(i,i):i()}})}function S(e,r,n){var i=f;return function(a,o){if(i===v)throw Error("Generator is already running");if(i===p){if("throw"===a)throw o;return{value:t,done:!0}}for(n.method=a,n.arg=o;;){var s=n.delegate;if(s){var u=O(s,n);if(u){if(u===y)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===f)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=v;var c=h(e,r,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===y)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function O(e,r){var n=r.method,i=e.iterator[n];if(i===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,O(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=h(i,e.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,y;var o=a.arg;return o?o.done?(r[e.resultName]=o.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):o:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function T(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function M(e){if(e||""===e){var r=e[o];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function r(){for(;++i=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;P(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:M(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function na(t,e,r,n,i,a,o){try{var s=t[a](o),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function ia(t){return function(){var e=this,r=arguments;return new Promise((function(n,i){var a=t.apply(e,r);function o(t){na(a,n,i,o,s,"next",t)}function s(t){na(a,n,i,o,s,"throw",t)}o(void 0)}))}}function aa(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,i,a,o,s=[],u=!0,c=!1;try{if(a=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=a.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw i}}return s}}(t,e)||oa(t,e)||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.")}()}function oa(t,e){if(t){if("string"==typeof t)return sa(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?sa(t,e):void 0}}function sa(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1||this.y<0||this.y>1)){var a=this.div.getBoundingClientRect(),o=a.x,s=a.y;this.parent.findNewParent(this,o,s)&&(this.x-=Math.floor(this.x),this.y-=Math.floor(this.y))}var u=this.x,c=this.y,l=aa(this.getBaseTranslation(),2);u+=l[0],c+=l[1],this.div.style.left="".concat((100*u).toFixed(2),"%"),this.div.style.top="".concat((100*c).toFixed(2),"%"),this.div.scrollIntoView({block:"nearest"})}},{key:"_hasBeenMoved",get:function(){return!!ya(Ta,this)&&(ya(Ta,this)[0]!==this.x||ya(Ta,this)[1]!==this.y)}},{key:"getBaseTranslation",value:function(){var e=aa(this.parentDimensions,2),r=e[0],n=e[1],i=t._borderLineWidth,a=i/r,o=i/n;switch(this.rotation){case 90:return[-a,o];case 180:return[a,o];case 270:return[a,-o];default:return[-a,-o]}}},{key:"_mustFixPosition",get:function(){return!0}},{key:"fixAndSetPosition",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.rotation,e=aa(this.pageDimensions,2),r=e[0],n=e[1],i=this.x,a=this.y,o=this.width,s=this.height;if(o*=r,s*=n,i*=r,a*=n,this._mustFixPosition)switch(t){case 0:i=Math.max(0,Math.min(r-o,i)),a=Math.max(0,Math.min(n-s,a));break;case 90:i=Math.max(0,Math.min(r-s,i)),a=Math.min(n,Math.max(o,a));break;case 180:i=Math.min(r,Math.max(o,i)),a=Math.min(n,Math.max(s,a));break;case 270:i=Math.min(r,Math.max(s,i)),a=Math.max(0,Math.min(n-o,a))}this.x=i/=r,this.y=a/=n;var u=aa(this.getBaseTranslation(),2);i+=u[0],a+=u[1];var c=this.div.style;c.left="".concat((100*i).toFixed(2),"%"),c.top="".concat((100*a).toFixed(2),"%"),this.moveInDOM()}},{key:"screenToPageTranslation",value:function(e,r){return Ga.call(t,e,r,this.parentRotation)}},{key:"pageTranslationToScreen",value:function(e,r){return Ga.call(t,e,r,360-this.parentRotation)}},{key:"parentScale",get:function(){return this._uiManager.viewParameters.realScale}},{key:"parentRotation",get:function(){return(this._uiManager.viewParameters.rotation+this.pageRotation)%360}},{key:"parentDimensions",get:function(){var t=this.parentScale,e=aa(this.pageDimensions,2);return[e[0]*t,e[1]*t]}},{key:"setDims",value:function(t,e){var r=aa(this.parentDimensions,2),n=r[0],i=r[1];this.div.style.width="".concat((100*t/n).toFixed(2),"%"),ya(xa,this)||(this.div.style.height="".concat((100*e/i).toFixed(2),"%"))}},{key:"fixDims",value:function(){var t=this.div.style,e=t.height,r=t.width,n=r.endsWith("%"),i=!ya(xa,this)&&e.endsWith("%");if(!n||!i){var a=aa(this.parentDimensions,2),o=a[0],s=a[1];n||(t.width="".concat((100*parseFloat(r)/o).toFixed(2),"%")),ya(xa,this)||i||(t.height="".concat((100*parseFloat(e)/s).toFixed(2),"%"))}}},{key:"getInitialTranslation",value:function(){return[0,0]}},{key:"altTextFinish",value:function(){var t;null===(t=ya(wa,this))||void 0===t||t.finish()}},{key:"addEditToolbar",value:(i=ia(ra().mark((function t(){return ra().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this._editToolbar&&!ya(La,this)){t.next=2;break}return t.abrupt("return",this._editToolbar);case 2:if(this._editToolbar=new ir(this),this.div.append(this._editToolbar.render()),!ya(wa,this)){t.next=7;break}return t.next=7,this._editToolbar.addAltText(ya(wa,this));case 7:return t.abrupt("return",this._editToolbar);case 8:case"end":return t.stop()}}),t,this)}))),function(){return i.apply(this,arguments)})},{key:"removeEditToolbar",value:function(){var t;this._editToolbar&&(this._editToolbar.remove(),this._editToolbar=null,null===(t=ya(wa,this))||void 0===t||t.destroy())}},{key:"addContainer",value:function(t){var e,r=null===(e=this._editToolbar)||void 0===e?void 0:e.div;r?r.before(t):this.div.append(t)}},{key:"getClientDimensions",value:function(){return this.div.getBoundingClientRect()}},{key:"addAltTextButton",value:(n=ia(ra().mark((function e(){return ra().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!ya(wa,this)){e.next=2;break}return e.abrupt("return");case 2:return Hi.initialize(t._l10nPromise),pa(wa,this,new Hi(this)),ya(ma,this)&&(ya(wa,this).data=ya(ma,this),pa(ma,this,null)),e.next=7,this.addEditToolbar();case 7:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"altTextData",get:function(){var t;return null===(t=ya(wa,this))||void 0===t?void 0:t.data},set:function(t){ya(wa,this)&&(ya(wa,this).data=t)}},{key:"guessedAltText",get:function(){var t;return null===(t=ya(wa,this))||void 0===t?void 0:t.guessedText}},{key:"setGuessedAltText",value:(r=ia(ra().mark((function t(e){var r;return ra().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,null===(r=ya(wa,this))||void 0===r?void 0:r.setGuessedText(e);case 2:case"end":return t.stop()}}),t,this)}))),function(t){return r.apply(this,arguments)})},{key:"serializeAltText",value:function(t){var e;return null===(e=ya(wa,this))||void 0===e?void 0:e.serialize(t)}},{key:"hasAltText",value:function(){return!!ya(wa,this)&&!ya(wa,this).isEmpty()}},{key:"hasAltTextData",value:function(){var t,e;return null!==(t=null===(e=ya(wa,this))||void 0===e?void 0:e.hasData())&&void 0!==t&&t}},{key:"render",value:function(){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=ya(ka,this)?-1:0,this._isVisible||this.div.classList.add("hidden"),this.setInForeground(),ga(Na,this,Ka).call(this);var t=aa(this.parentDimensions,2),e=t[0],r=t[1];this.parentRotation%180!=0&&(this.div.style.maxWidth="".concat((100*r/e).toFixed(2),"%"),this.div.style.maxHeight="".concat((100*e/r).toFixed(2),"%"));var n=aa(this.getInitialTranslation(),2),i=n[0],a=n[1];return this.translate(i,a),Br(this,this.div,["pointerdown"]),this.div}},{key:"pointerdown",value:function(t){var e=J.platform.isMac;0!==t.button||t.ctrlKey&&e?t.preventDefault():(pa(Oa,this,!0),this._isDraggable?ga(Na,this,Xa).call(this,t):ga(Na,this,Ya).call(this,t))}},{key:"isSelected",get:function(){return this._uiManager.isSelected(this)}},{key:"moveInDOM",value:function(){var t=this;ya(Ca,this)&&clearTimeout(ya(Ca,this)),pa(Ca,this,setTimeout((function(){var e;pa(Ca,t,null),null===(e=t.parent)||void 0===e||e.moveEditorInDOM(t)}),0))}},{key:"_setParentAndPosition",value:function(t,e,r){t.changeParent(this),this.x=e,this.y=r,this.fixAndSetPosition()}},{key:"getRect",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.rotation,n=this.parentScale,i=aa(this.pageDimensions,2),a=i[0],o=i[1],s=aa(this.pageTranslation,2),u=s[0],c=s[1],l=t/n,h=e/n,f=this.x*a,d=this.y*o,v=this.width*a,p=this.height*o;switch(r){case 0:return[f+l+u,o-d-h-p+c,f+l+v+u,o-d-h+c];case 90:return[f+h+u,o-d+l+c,f+h+p+u,o-d+l+v+c];case 180:return[f-l-v+u,o-d+h+c,f-l+u,o-d+h+p+c];case 270:return[f-h-p+u,o-d-l-v+c,f-h+u,o-d-l+c];default:throw new Error("Invalid rotation")}}},{key:"getRectInCurrentCoords",value:function(t,e){var r=aa(t,4),n=r[0],i=r[1],a=r[2],o=r[3],s=a-n,u=o-i;switch(this.rotation){case 0:return[n,e-o,s,u];case 90:return[n,e-i,u,s];case 180:return[a,e-i,s,u];case 270:return[a,e-o,u,s];default:throw new Error("Invalid rotation")}}},{key:"onceAdded",value:function(){}},{key:"isEmpty",value:function(){return!1}},{key:"enableEditMode",value:function(){pa(La,this,!0)}},{key:"disableEditMode",value:function(){pa(La,this,!1)}},{key:"isInEditMode",value:function(){return ya(La,this)}},{key:"shouldGetKeyboardEvents",value:function(){return ya(Ma,this)}},{key:"needsToBeRebuilt",value:function(){return this.div&&!this.isAttachedToDOM}},{key:"rebuild",value:function(){ga(Na,this,Ka).call(this)}},{key:"rotate",value:function(t){}},{key:"serializeDeleted",value:function(){var t;return{id:this.annotationElementId,deleted:!0,pageIndex:this.pageIndex,popupRef:(null===(t=this._initialData)||void 0===t?void 0:t.popupRef)||""}}},{key:"serialize",value:function(){F("An editor must be serializable")}},{key:"hasBeenModified",get:function(){return!!this.annotationElementId&&(this.deleted||null!==this.serialize())}},{key:"remove",value:function(){var t;if(null===(t=ya(Ea,this))||void 0===t||t.abort(),pa(Ea,this,null),this.isEmpty()||this.commit(),this.parent?this.parent.remove(this):this._uiManager.removeEditor(this),ya(Ca,this)&&(clearTimeout(ya(Ca,this)),pa(Ca,this,null)),ga(Na,this,to).call(this),this.removeEditToolbar(),ya(Ra,this)){var e,r=ea(ya(Ra,this).values());try{for(r.s();!(e=r.n()).done;){var n=e.value;clearTimeout(n)}}catch(t){r.e(t)}finally{r.f()}pa(Ra,this,null)}this.parent=null}},{key:"isResizable",get:function(){return!1}},{key:"makeResizable",value:function(){this.isResizable&&(ga(Na,this,Ua).call(this),ya(Aa,this).classList.remove("hidden"),Br(this,this.div,["keydown"]))}},{key:"toolbarPosition",get:function(){return null}},{key:"keydown",value:function(e){if(this.isResizable&&e.target===this.div&&"Enter"===e.key){this._uiManager.setSelected(this),pa(_a,this,{savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height});var r=ya(Aa,this).children;if(!ya(ba,this)){pa(ba,this,Array.from(r));var n,i=ga(Na,this,Qa).bind(this),a=ga(Na,this,Ja).bind(this),o=this._uiManager._signal,s=ea(ya(ba,this));try{for(s.s();!(n=s.n()).done;){var u=n.value,c=u.getAttribute("data-resizer-name");u.setAttribute("role","spinbutton"),u.addEventListener("keydown",i,{signal:o}),u.addEventListener("blur",a,{signal:o}),u.addEventListener("focus",ga(Na,this,$a).bind(this,c),{signal:o}),u.setAttribute("data-l10n-id",t._l10nResizer[c])}}catch(t){s.e(t)}finally{s.f()}}var l,h=ya(ba,this)[0],f=0,d=ea(r);try{for(d.s();!(l=d.n()).done&&l.value!==h;)f++}catch(t){d.e(t)}finally{d.f()}var v=(360-this.rotation+this.parentRotation)%360/90*(ya(ba,this).length/4);if(v!==f){if(vf)for(var y=0;y1&&void 0!==arguments[1]&&arguments[1]){ya(Ra,this)||pa(Ra,this,new Map);var n=e.action,i=ya(Ra,this).get(n);return i&&clearTimeout(i),i=setTimeout((function(){r._reportTelemetry(e),ya(Ra,r).delete(n),0===ya(Ra,r).size&&pa(Ra,r,null)}),t._telemetryTimeout),void ya(Ra,this).set(n,i)}e.type||(e.type=this.editorType),this._uiManager._eventBus.dispatch("reporttelemetry",{source:this,details:{type:"editing",data:e}})}},{key:"show",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._isVisible;this.div.classList.toggle("hidden",!t),this._isVisible=t}},{key:"enable",value:function(){this.div&&(this.div.tabIndex=0),pa(ka,this,!1)}},{key:"disable",value:function(){this.div&&(this.div.tabIndex=-1),pa(ka,this,!0)}},{key:"renderAnnotationElement",value:function(t){var e=t.container.querySelector(".annotationContent");if(e){if("CANVAS"===e.nodeName){var r=e;(e=document.createElement("div")).classList.add("annotationContent",this.editorType),r.before(e)}}else(e=document.createElement("div")).classList.add("annotationContent",this.editorType),t.container.prepend(e);return e}},{key:"resetAnnotationElement",value:function(t){var e=t.container.firstChild;"DIV"===(null==e?void 0:e.nodeName)&&e.classList.contains("annotationContent")&&e.remove()}}],[{key:"_resizerKeyboardManager",get:function(){var e=t.prototype._resizeWithKeyboard,r=Kn.TRANSLATE_SMALL,n=Kn.TRANSLATE_BIG;return W(this,"_resizerKeyboardManager",new rn([[["ArrowLeft","mac+ArrowLeft"],e,{args:[-r,0]}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],e,{args:[-n,0]}],[["ArrowRight","mac+ArrowRight"],e,{args:[r,0]}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],e,{args:[n,0]}],[["ArrowUp","mac+ArrowUp"],e,{args:[0,-r]}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],e,{args:[0,-n]}],[["ArrowDown","mac+ArrowDown"],e,{args:[0,r]}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],e,{args:[0,n]}],[["Escape","mac+Escape"],t.prototype._stopResizingWithKeyboard]]))}},{key:"_defaultLineColor",get:function(){return W(this,"_defaultLineColor",this._colorManager.getHexCode("CanvasText"))}},{key:"deleteAnnotationElement",value:function(t){var e=new eo({id:t.parent.getNextId(),parent:t.parent,uiManager:t._uiManager});e.annotationElementId=t.annotationElementId,e.deleted=!0,e._uiManager.addToAnnotationStorage(e)}},{key:"initialize",value:function(e,r,n){if(t._l10nResizer||(t._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"})),t._l10nPromise||(t._l10nPromise=new Map([].concat(ta(["pdfjs-editor-alt-text-button-label","pdfjs-editor-alt-text-edit-button-label","pdfjs-editor-alt-text-decorative-tooltip","pdfjs-editor-new-alt-text-added-button-label","pdfjs-editor-new-alt-text-missing-button-label","pdfjs-editor-new-alt-text-to-review-button-label"].map((function(t){return[t,e.get(t)]}))),ta(["pdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer"].map((function(t){return[t,e.get.bind(e,t)]})))))),null!=n&&n.strings){var i,a=ea(n.strings);try{for(a.s();!(i=a.n()).done;){var o=i.value;t._l10nPromise.set(o,e.get(o))}}catch(t){a.e(t)}finally{a.f()}}if(-1===t._borderLineWidth){var s=getComputedStyle(document.documentElement);t._borderLineWidth=parseFloat(s.getPropertyValue("--outline-width"))||0}}},{key:"updateDefaultParams",value:function(t,e){}},{key:"defaultPropertiesToUpdate",get:function(){return[]}},{key:"isHandlingMimeForPasting",value:function(t){return!1}},{key:"paste",value:function(t,e){F("Not implemented")}},{key:"deserialize",value:(e=ia(ra().mark((function t(e,r,n){var i,a,o,s,u,c,l,h,f,d;return ra().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return(i=new this.prototype.constructor({parent:r,id:r.getNextId(),uiManager:n})).rotation=e.rotation,pa(ma,i,e.accessibilityData),a=aa(i.pageDimensions,2),o=a[0],s=a[1],u=i.getRectInCurrentCoords(e.rect,s),c=aa(u,4),l=c[0],h=c[1],f=c[2],d=c[3],i.x=l/o,i.y=h/s,i.width=f/o,i.height=d/s,t.abrupt("return",i);case 10:case"end":return t.stop()}}),t,this)}))),function(t,r,n){return e.apply(this,arguments)})},{key:"MIN_SIZE",get:function(){return 16}},{key:"canCreateNewEmptyEditor",value:function(){return!0}}]);var e,r,n,i}();function Ba(t,e,r){var n=aa(t,2),i=n[0],a=n[1],o=aa(this.screenToPageTranslation(e,r),2);e=o[0],r=o[1],this.x+=e/i,this.y+=r/a,this.fixAndSetPosition()}function Ga(t,e,r){switch(r){case 90:return[e,-t];case 180:return[-t,-e];case 270:return[-e,t];default:return[t,e]}}function Ha(t){switch(t){case 90:var e=aa(this.pageDimensions,2),r=e[0],n=e[1];return[0,-r/n,n/r,0];case 180:return[-1,0,0,-1];case 270:var i=aa(this.pageDimensions,2),a=i[0],o=i[1];return[0,a/o,-o/a,0];default:return[1,0,0,1]}}function Ua(){if(!ya(Aa,this)){pa(Aa,this,document.createElement("div")),ya(Aa,this).classList.add("resizers");for(var t=this._willKeepAspectRatio?["topLeft","topRight","bottomRight","bottomLeft"]:["topLeft","topMiddle","topRight","middleRight","bottomRight","bottomMiddle","bottomLeft","middleLeft"],e=this._uiManager._signal,r=0,n=t;r>>8,e[r++]=255&a)}}else{if(!ArrayBuffer.isView(t))throw new Error("Invalid data format, must be a string or TypedArray.");r=(e=t.slice()).byteLength}for(var o=r>>2,s=r-4*o,u=new Uint32Array(e.buffer,0,o),c=0,l=0,h=this.h1,f=this.h2,d=3432918353,v=461845907,p=11601,y=13715,g=0;g>>17)*v&ao|c*y&oo)<<13|h>>>19)+3864292196:f=5*(f=(f^=l=(l=(l=(l=u[g])*d&ao|l*p&oo)<<15|l>>>17)*v&ao|l*y&oo)<<13|f>>>19)+3864292196;switch(c=0,s){case 3:c^=e[4*o+2]<<16;case 2:c^=e[4*o+1]<<8;case 1:c=(c=(c=(c^=e[4*o])*d&ao|c*p&oo)<<15|c>>>17)*v&ao|c*y&oo,1&o?h^=c:f^=c}this.h1=h,this.h2=f}},{key:"hexdigest",value:function(){var t=this.h1,e=this.h2;return t=3981806797*(t^=e>>>1)&ao|36045*t&oo,t=444984403*(t^=(e=4283543511*e&ao|(2950163797*(e<<16|t>>>16)&ao)>>>16)>>>1)&ao|60499*t&oo,((t^=(e=3301882366*e&ao|(3120437893*(e<<16|t>>>16)&ao)>>>16)>>>1)>>>0).toString(16).padStart(8,"0")+(e>>>0).toString(16).padStart(8,"0")}}])}();function uo(t,e,r){return e=lo(e),function(t,e){if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,co()?Reflect.construct(e,r||[],lo(t).constructor):e.apply(t,r))}function co(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(co=function(){return!!t})()}function lo(t){return lo=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},lo(t)}function ho(t,e){return ho=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},ho(t,e)}function fo(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,i,a,o,s=[],u=!0,c=!1;try{if(a=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=a.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw i}}return s}}(t,e)||po(t,e)||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.")}()}function vo(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=po(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function po(t,e){if(t){if("string"==typeof t)return yo(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?yo(t,e):void 0}}function yo(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r0?Q(_o(Po,this)):null}},{key:"setAll",value:function(t){for(var e=0,r=Object.entries(t);e0?{map:e,hash:r.hexdigest(),transfer:n}:So}},{key:"editorStats",get:function(){var t,e=null,r=new Map,n=vo(_o(Po,this).values());try{for(n.s();!(t=n.n()).done;){var i,a=t.value;if(a instanceof Wa){var o=a.telemetryFinalData;if(o){var s=o.type;r.has(s)||r.set(s,Object.getPrototypeOf(a).constructor),e||(e=Object.create(null));for(var u=(i=e)[s]||(i[s]=new Map),c=0,l=Object.entries(o);c=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;P(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:M(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function Do(t,e,r,n,i,a,o){try{var s=t[a](o),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function No(t){return function(){var e=this,r=arguments;return new Promise((function(n,i){var a=t.apply(e,r);function o(t){Do(a,n,i,o,s,"next",t)}function s(t){Do(a,n,i,o,s,"throw",t)}o(void 0)}))}}function Wo(t,e){if(t){if("string"==typeof t)return Bo(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Bo(t,e):void 0}}function Bo(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}(this.nativeFontFaces);try{for(e.s();!(t=e.n()).done;){var r=t.value;this._document.fonts.delete(r)}}catch(t){e.e(t)}finally{e.f()}this.nativeFontFaces.clear(),Vo(qo,this).clear(),this.styleElement&&(this.styleElement.remove(),this.styleElement=null)}},{key:"loadSystemFont",value:(e=No(Fo().mark((function t(e){var r,n,i,a,o,s;return Fo().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.systemFontInfo,n=e._inspectFont,r&&!Vo(qo,this).has(r.loadedName)){t.next=3;break}return t.abrupt("return");case 3:if(D(!this.disableFontFace,"loadSystemFont shouldn't be called when \`disableFontFace\` is set."),!this.isFontLoadingAPISupported){t.next=20;break}return i=r.loadedName,a=r.src,o=r.style,s=new FontFace(i,a,o),this.addNativeFontFace(s),t.prev=8,t.next=11,s.load();case 11:Vo(qo,this).add(i),null==n||n(r),t.next=19;break;case 15:t.prev=15,t.t0=t.catch(8),R("Cannot load system font: ".concat(r.baseFontName,", installing it could help to improve PDF rendering.")),this.removeNativeFontFace(s);case 19:return t.abrupt("return");case 20:F("Not implemented: loadSystemFont without the Font Loading API.");case 21:case"end":return t.stop()}}),t,this,[[8,15]])}))),function(t){return e.apply(this,arguments)})},{key:"bind",value:(t=No(Fo().mark((function t(e){var r,n,i=this;return Fo().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!(e.attached||e.missingFile&&!e.systemFontInfo)){t.next=2;break}return t.abrupt("return");case 2:if(e.attached=!0,!e.systemFontInfo){t.next=7;break}return t.next=6,this.loadSystemFont(e);case 6:case 21:return t.abrupt("return");case 7:if(!this.isFontLoadingAPISupported){t.next=22;break}if(!(r=e.createNativeFontFace())){t.next=21;break}return this.addNativeFontFace(r),t.prev=11,t.next=14,r.loaded;case 14:t.next=21;break;case 16:throw t.prev=16,t.t0=t.catch(11),R("Failed to load font '".concat(r.family,"': '").concat(t.t0,"'.")),e.disableFontFace=!0,t.t0;case 22:if(!(n=e.createFontFaceRule())){t.next=29;break}if(this.insertRule(n),!this.isSyncFontLoadingSupported){t.next=27;break}return t.abrupt("return");case 27:return t.next=29,new Promise((function(t){var r=i._queueLoadingCallback(t);i._prepareFontLoadEvent(e,r)}));case 29:case"end":return t.stop()}}),t,this,[[11,16]])}))),function(e){return t.apply(this,arguments)})},{key:"isFontLoadingAPISupported",get:function(){var t;return W(this,"isFontLoadingAPISupported",!(null===(t=this._document)||void 0===t||!t.fonts))}},{key:"isSyncFontLoadingSupported",get:function(){var t,e=!1;return(m||"undefined"!=typeof navigator&&"string"==typeof(null===(t=navigator)||void 0===t?void 0:t.userAgent)&&/Mozilla\\/5.0.*?rv:\\d+.*? Gecko/.test(navigator.userAgent))&&(e=!0),W(this,"isSyncFontLoadingSupported",e)}},{key:"_queueLoadingCallback",value:function(t){var e=this.loadingRequests,r={done:!1,complete:function(){for(D(!r.done,"completeRequest() cannot be called twice."),r.done=!0;e.length>0&&e[0].done;){var t=e.shift();setTimeout(t.callback,0)}},callback:t};return e.push(r),r}},{key:"_loadTestFont",get:function(){return W(this,"_loadTestFont",atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA=="))}},{key:"_prepareFontLoadEvent",value:function(t,e){function r(t,e){return t.charCodeAt(e)<<24|t.charCodeAt(e+1)<<16|t.charCodeAt(e+2)<<8|255&t.charCodeAt(e+3)}function n(t,e,r,n){return t.substring(0,e)+n+t.substring(e+r)}var i,a,o=this._document.createElement("canvas");o.width=1,o.height=1;var s,u=o.getContext("2d"),c=0,l="lt".concat(Date.now()).concat(this.loadTestFontId++),h=this._loadTestFont,f=1482184792,d=r(h=n(h,976,l.length,l),16);for(i=0,a=l.length-3;i>24&255,s>>16&255,s>>8&255,255&s)));var v="url(data:font/opentype;base64,".concat(btoa(h),");"),p='@font-face {font-family:"'.concat(l,'";src:').concat(v,"}");this.insertRule(p);var y=this._document.createElement("div");y.style.visibility="hidden",y.style.width=y.style.height="10px",y.style.position="absolute",y.style.top=y.style.left="0px";for(var g=0,m=[t.loadedName,l];g30)return R("Load test font never loaded."),void r();u.font="30px "+e,u.fillText(".",0,20),u.getImageData(0,0,1,1).data[3]>0?r():setTimeout(t.bind(null,e,r))}(l,(function(){y.remove(),e.complete()}))}}]);var t,e}(),Xo=function(){return Uo((function t(e,r){var n=r.disableFontFace,i=void 0!==n&&n,a=r.inspectFont,o=void 0===a?null:a;for(var s in Go(this,t),this.compiledGlyphs=Object.create(null),e)this[s]=e[s];this.disableFontFace=!0===i,this._inspectFont=o}),[{key:"createNativeFontFace",value:function(){var t,e;if(!this.data||this.disableFontFace)return null;if(this.cssFontInfo){var r={weight:this.cssFontInfo.fontWeight};this.cssFontInfo.italicAngle&&(r.style="oblique ".concat(this.cssFontInfo.italicAngle,"deg")),e=new FontFace(this.cssFontInfo.fontFamily,this.data,r)}else e=new FontFace(this.loadedName,this.data,{});return null===(t=this._inspectFont)||void 0===t||t.call(this,this),e}},{key:"createFontFaceRule",value:function(){var t;if(!this.data||this.disableFontFace)return null;var e,r=X(this.data),n="url(data:".concat(this.mimetype,";base64,").concat(btoa(r),");");if(this.cssFontInfo){var i="font-weight: ".concat(this.cssFontInfo.fontWeight,";");this.cssFontInfo.italicAngle&&(i+="font-style: oblique ".concat(this.cssFontInfo.italicAngle,"deg;")),e='@font-face {font-family:"'.concat(this.cssFontInfo.fontFamily,'";').concat(i,"src:").concat(n,"}")}else e='@font-face {font-family:"'.concat(this.loadedName,'";src:').concat(n,"}");return null===(t=this._inspectFont)||void 0===t||t.call(this,this,n),e}},{key:"getPathGenerator",value:function(t,e){if(void 0!==this.compiledGlyphs[e])return this.compiledGlyphs[e];var r;try{r=t.get(this.loadedName+"_path_"+e)}catch(t){R('getPathGenerator - ignoring character: "'.concat(t,'".'))}if(!Array.isArray(r)||0===r.length)return this.compiledGlyphs[e]=function(t,e){};for(var n=[],i=function(t){switch(r[t++]){case 0:var e=Ro(r.slice(t,t+6),6),i=e[0],o=e[1],s=e[2],u=e[3],c=e[4],l=e[5];n.push((function(t){return t.bezierCurveTo(i,o,s,u,c,l)})),t+=6;break;case 1:var h=Ro(r.slice(t,t+2),2),f=h[0],d=h[1];n.push((function(t){return t.moveTo(f,d)})),t+=2;break;case 2:var v=Ro(r.slice(t,t+2),2),p=v[0],y=v[1];n.push((function(t){return t.lineTo(p,y)})),t+=2;break;case 3:var g=Ro(r.slice(t,t+4),4),m=g[0],b=g[1],w=g[2],k=g[3];n.push((function(t){return t.quadraticCurveTo(m,b,w,k)})),t+=4;break;case 4:n.push((function(t){return t.restore()}));break;case 5:n.push((function(t){return t.save()}));break;case 6:D(2===n.length,"Scale command is only valid at the third position.");break;case 7:var x=Ro(r.slice(t,t+6),6),A=x[0],_=x[1],E=x[2],S=x[3],O=x[4],T=x[5];n.push((function(t){return t.transform(A,_,E,S,O,T)})),t+=6;break;case 8:var P=Ro(r.slice(t,t+2),2),L=P[0],M=P[1];n.push((function(t){return t.translate(L,M)})),t+=2}a=t},a=0,o=r.length;a=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;P(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:M(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function as(t,e,r,n,i,a,o){try{var s=t[a](o),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}if(m){var os=Promise.withResolvers(),ss=null,us=function(){var t,e=(t=is().mark((function t(){var e,r,n,i,a,o;return is().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,import("fs");case 2:return e=t.sent,t.next=5,import("http");case 5:return r=t.sent,t.next=8,import("https");case 8:return n=t.sent,t.next=11,import("url");case 11:return i=t.sent,t.prev=12,t.next=15,import("canvas");case 15:a=t.sent,t.next=20;break;case 18:t.prev=18,t.t0=t.catch(12);case 20:return t.prev=20,t.next=23,import("path2d");case 23:o=t.sent,t.next=28;break;case 26:t.prev=26,t.t1=t.catch(20);case 28:return t.abrupt("return",new Map(Object.entries({fs:e,http:r,https:n,url:i,canvas:a,path2d:o})));case 29:case"end":return t.stop()}}),t,null,[[12,18],[20,26]])})),function(){var e=this,r=arguments;return new Promise((function(n,i){var a=t.apply(e,r);function o(t){as(a,n,i,o,s,"next",t)}function s(t){as(a,n,i,o,s,"throw",t)}o(void 0)}))});return function(){return e.apply(this,arguments)}}();us().then((function(t){if(ss=t,os.resolve(),!globalThis.DOMMatrix){var e,r=null===(e=t.get("canvas"))||void 0===e?void 0:e.DOMMatrix;r?globalThis.DOMMatrix=r:R("Cannot polyfill \`DOMMatrix\`, rendering may be broken.")}if(!globalThis.Path2D){var n,i,a,o=null===(n=t.get("canvas"))||void 0===n?void 0:n.CanvasRenderingContext2D,s=null===(i=t.get("path2d"))||void 0===i?void 0:i.applyPath2DToCanvasRenderingContext,u=null===(a=t.get("path2d"))||void 0===a?void 0:a.Path2D;o&&s&&u?(s(o),globalThis.Path2D=u):R("Cannot polyfill \`Path2D\`, rendering may be broken.")}}),(function(t){R("loadPackages: ".concat(t)),ss=new Map,os.resolve()}))}var cs=function(){return rs((function t(){ts(this,t)}),null,[{key:"promise",get:function(){return os.promise}},{key:"get",value:function(t){var e;return null===(e=ss)||void 0===e?void 0:e.get(t)}}])}(),ls=function(t){return cs.get("fs").promises.readFile(t).then((function(t){return new Uint8Array(t)}))},hs=function(t){function e(){return ts(this,e),Ko(this,e,arguments)}return $o(e,pt),rs(e)}(),fs=function(t){function e(){return ts(this,e),Ko(this,e,arguments)}return $o(e,gt),rs(e,[{key:"_createCanvas",value:function(t,e){return cs.get("canvas").createCanvas(t,e)}}])}(),ds=function(t){function e(){return ts(this,e),Ko(this,e,arguments)}return $o(e,mt),rs(e,[{key:"_fetchData",value:function(t,e){return ls(t).then((function(t){return{cMapData:t,compressionType:e}}))}}])}(),vs=function(t){function e(){return ts(this,e),Ko(this,e,arguments)}return $o(e,bt),rs(e,[{key:"_fetchData",value:function(t){return ls(t)}}])}();function ps(t){return function(t){if(Array.isArray(t))return ms(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||gs(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ys(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=gs(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function gs(t,e){if(t){if("string"==typeof t)return ms(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ms(t,e):void 0}}function ms(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);rc[n+1]&&(u=r,r=n,n=u,u=a,a=o,o=u),c[n+1]>c[i+1]&&(u=n,n=i,i=u,u=o,o=s,s=u),c[r+1]>c[n+1]&&(u=r,r=n,n=u,u=a,a=o,o=u);var d=(c[r]+e.offsetX)*e.scaleX,v=(c[r+1]+e.offsetY)*e.scaleY,p=(c[n]+e.offsetX)*e.scaleX,y=(c[n+1]+e.offsetY)*e.scaleY,g=(c[i]+e.offsetX)*e.scaleX,m=(c[i+1]+e.offsetY)*e.scaleY;if(!(v>=m))for(var b,w,k,x,A,_,E,S,O=l[a],T=l[a+1],P=l[a+2],L=l[o],M=l[o+1],C=l[o+2],j=l[s],I=l[s+1],R=l[s+2],F=Math.round(v),D=Math.round(m),N=F;N<=D;N++){if(Nm?1:y===m?0:(y-N)/(y-m)),w=L-(L-j)*B,k=M-(M-I)*B,x=C-(C-R)*B}var G=void 0;A=d-(d-g)*(G=Nm?1:(v-N)/(v-m)),_=O-(O-j)*G,E=T-(T-I)*G,S=P-(P-R)*G;for(var H=Math.round(Math.min(b,A)),U=Math.round(Math.max(b,A)),z=f*N+4*H,V=H;V<=U;V++)(G=(b-V)/(b-A))<0?G=0:G>1&&(G=1),h[z++]=w-(w-_)*G|0,h[z++]=k-(k-E)*G|0,h[z++]=x-(x-S)*G|0,h[z++]=255}}function Rs(t,e,r){var n,i,a=e.coords,o=e.colors;switch(e.type){case"lattice":var s=e.verticesPerRow,u=Math.floor(a.length/s)-1,c=s-1;for(n=0;n=Math.ceil(d*g)?b=s:k=!0,_>=Math.ceil(v*m)?w=u:x=!0;var E=this.getSizeAndScale(b,this.ctx.canvas.width,g),S=this.getSizeAndScale(w,this.ctx.canvas.height,m),O=t.cachedCanvases.getCanvas("pattern",E.size,S.size),T=O.context,P=o.createCanvasGraphics(T);if(P.groupLevel=t.groupLevel,this.setFillAndStrokeStyleToContext(P,n,a),T.translate(-E.scale*c,-S.scale*l),P.transform(E.scale,0,0,S.scale,0,0),T.save(),this.clipBbox(P,c,l,h,f),P.baseTransform=je(P.ctx),P.executeOperatorList(r),P.endDrawing(),T.restore(),k||x){var L=O.canvas;k&&(b=s),x&&(w=u);for(var M=this.getSizeAndScale(b,this.ctx.canvas.width,g),C=this.getSizeAndScale(w,this.ctx.canvas.height,m),j=M.size,R=C.size,F=t.cachedCanvases.getCanvas("pattern-workaround",j,R),D=F.context,N=k?Math.floor(d/s):0,W=x?Math.floor(v/u):0,B=0;B<=N;B++)for(var G=0;G<=W;G++)D.drawImage(L,j*B,R*G,j,R,0,0,j,R);return{canvas:F.canvas,scaleX:M.scale,scaleY:C.scale,offsetX:c,offsetY:l}}return{canvas:O.canvas,scaleX:E.scale,scaleY:S.scale,offsetX:c,offsetY:l}}},{key:"getSizeAndScale",value:function(e,r,n){var i=Math.max(t.MAX_PATTERN_SIZE,r),a=Math.ceil(e*n);return a>=i?a=i:n=a/e,{scale:n,size:a}}},{key:"clipBbox",value:function(t,e,r,n,i){var a=n-e,o=i-r;t.ctx.rect(e,r,a,o),t.current.updateRectMinMax(je(t.ctx),[e,r,n,i]),t.clip(),t.endPath()}},{key:"setFillAndStrokeStyleToContext",value:function(t,e,r){var n=t.ctx,i=t.current;switch(e){case 1:var a=this.ctx;n.fillStyle=a.fillStyle,n.strokeStyle=a.strokeStyle,i.fillColor=a.fillStyle,i.strokeColor=a.strokeStyle;break;case 2:var o=Z.makeHexColor(r[0],r[1],r[2]);n.fillStyle=o,n.strokeStyle=o,i.fillColor=o,i.strokeColor=o;break;default:throw new q("Unsupported paint type: ".concat(e))}}},{key:"getPattern",value:function(t,e,r,n){var i=r;n!==Ls&&(i=Z.transform(i,e.baseTransform),this.matrix&&(i=Z.transform(i,this.matrix)));var a=this.createPatternCanvas(e),o=new DOMMatrix(i);o=(o=o.translate(a.offsetX,a.offsetY)).scale(1/a.scaleX,1/a.scaleY);var s=t.createPattern(a.canvas,"repeat");return s.setTransform(o),s}}])}();function Ws(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r>3,y=7&a,g=e.length;i=new Uint32Array(i.buffer);for(var m=0,b=0;b=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function zs(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,i,a,o,s=[],u=!0,c=!1;try{if(a=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=a.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw i}}return s}}(t,e)||Vs(t,e)||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.")}()}function Vs(t,e){if(t){if("string"==typeof t)return qs(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?qs(t,e):void 0}}function qs(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r0&&void 0!==arguments[0]?arguments[0]:Ts,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=[this.minX,this.minY,this.maxX,this.maxY];if(t===Ps){e||F("Stroke bounding box must include transform.");var n=Z.singularValueDecompose2dScale(e),i=n[0]*this.lineWidth/2,a=n[1]*this.lineWidth/2;r[0]-=i,r[1]-=a,r[2]+=i,r[3]+=a}return r}},{key:"updateClipFromPath",value:function(){var t=Z.intersect(this.clipBox,this.getPathBoundingBox());this.startNewPathAndClipBox(t||[0,0,0,0])}},{key:"isEmptyClip",value:function(){return this.minX===1/0}},{key:"startNewPathAndClipBox",value:function(t){this.clipBox=t,this.minX=1/0,this.minY=1/0,this.maxX=0,this.maxY=0}},{key:"getClippedPathBoundingBox",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ts,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return Z.intersect(this.clipBox,this.getPathBoundingBox(t,e))}}])}();function eu(t,e){if("undefined"!=typeof ImageData&&e instanceof ImageData)t.putImageData(e,0,0);else{var r,n,i,a,o,s=e.height,u=e.width,c=s%Js,l=(s-c)/Js,h=0===c?l:l+1,f=t.createImageData(u,Js),d=0,v=e.data,p=f.data;if(e.kind===S.GRAYSCALE_1BPP){var y=v.byteLength,g=new Uint32Array(p.buffer,0,p.byteLength>>2),m=g.length,b=u+7>>3,w=4294967295,k=J.isLittleEndian?4278190080:255;for(n=0;nb?u:8*x-7,E=-8&_,O=0,T=0;A>=1}for(;r=l&&(o=u*(a=c)),r=0,i=o;i--;)p[r++]=v[d++],p[r++]=v[d++],p[r++]=v[d++],p[r++]=255;t.putImageData(f,0,n*Js)}}}}function ru(t,e){if(e.bitmap)t.drawImage(e.bitmap,0,0);else for(var r=e.height,n=e.width,i=r%Js,a=(r-i)/Js,o=0===i?a:a+1,s=t.createImageData(n,Js),u=0,c=e.data,l=s.data,h=0;h1&&void 0!==arguments[1]?arguments[1]:null;return"string"==typeof t?t.startsWith("g_")?this.commonObjs.get(t):this.objs.get(t):e}},{key:"beginDrawing",value:function(t){var e,r,n=t.transform,i=t.viewport,a=t.transparency,o=void 0!==a&&a,s=t.background,u=void 0===s?null:s,c=this.ctx.canvas.width,l=this.ctx.canvas.height,h=this.ctx.fillStyle;if(this.ctx.fillStyle=u||"#ffffff",this.ctx.fillRect(0,0,c,l),this.ctx.fillStyle=h,o){var f,d=this.cachedCanvases.getCanvas("transparent",c,l);this.compositeCtx=this.ctx,this.transparentCanvas=d.canvas,this.ctx=d.context,this.ctx.save(),(f=this.ctx).transform.apply(f,Gs(je(this.compositeCtx)))}this.ctx.save(),iu(this.ctx),n&&((r=this.ctx).transform.apply(r,Gs(n)),this.outputScaleX=n[0],this.outputScaleY=n[0]),(e=this.ctx).transform.apply(e,Gs(i.transform)),this.viewportScale=i.scale,this.baseTransform=je(this.ctx)}},{key:"executeOperatorList",value:function(t,e,r,n){var i=t.argsArray,a=t.fnArray,o=e||0,s=i.length;if(s===o)return o;for(var u,c=s-o>10&&"function"==typeof r,l=c?Date.now()+15:0,h=0,f=this.commonObjs,d=this.objs;;){if(void 0!==n&&o===n.nextBreakPoint)return n.breakIt(o,r),o;if((u=a[o])!==P.dependency)this[u].apply(this,i[o]);else{var v,p=Us(i[o]);try{for(p.s();!(v=p.n()).done;){var y=v.value,g=y.startsWith("g_")?f:d;if(!g.has(y))return g.get(y,r),o}}catch(t){p.e(t)}finally{p.f()}}if(++o===s)return o;if(c&&++h>10){if(Date.now()>l)return r(),o;h=0}}}},{key:"endDrawing",value:function(){Hs(lu,this,fu).call(this),this.cachedCanvases.clear(),this.cachedPatterns.clear();var t,e=Us(this._cachedBitmapsMap.values());try{for(e.s();!(t=e.n()).done;){var r,n=t.value,i=Us(n.values());try{for(i.s();!(r=i.n()).done;){var a=r.value;"undefined"!=typeof HTMLCanvasElement&&a instanceof HTMLCanvasElement&&(a.width=a.height=0)}}catch(t){i.e(t)}finally{i.f()}n.clear()}}catch(t){e.e(t)}finally{e.f()}this._cachedBitmapsMap.clear(),Hs(lu,this,du).call(this)}},{key:"_scaleImage",value:function(t,e){for(var r,n,i=t.width,a=t.height,o=Math.max(Math.hypot(e[0],e[1]),1),s=Math.max(Math.hypot(e[2],e[3]),1),u=i,c=a,l="prescale1";o>2&&u>1||s>2&&c>1;){var h=u,f=c;o>2&&u>1&&(o/=u/(h=u>=16384?Math.floor(u/2)-1||1:Math.ceil(u/2))),s>2&&c>1&&(s/=c/(f=c>=16384?Math.floor(c/2)-1||1:Math.ceil(c)/2)),(n=(r=this.cachedCanvases.getCanvas(l,h,f)).context).clearRect(0,0,h,f),n.drawImage(t,0,0,u,c,0,0,h,f),t=r.canvas,u=h,c=f,l="prescale1"===l?"prescale2":"prescale1"}return{img:t,paintWidth:u,paintHeight:c}}},{key:"_createMaskCanvas",value:function(t){var e,r,n,i,a=this.ctx,o=t.width,s=t.height,u=this.current.fillColor,c=this.current.patternFill,l=je(a);if((t.bitmap||t.data)&&t.count>1){var h=t.bitmap||t.data.buffer;r=JSON.stringify(c?l:[l.slice(0,4),u]),(e=this._cachedBitmapsMap.get(h))||(e=new Map,this._cachedBitmapsMap.set(h,e));var f=e.get(r);if(f&&!c)return{canvas:f,offsetX:Math.round(Math.min(l[0],l[2])+l[4]),offsetY:Math.round(Math.min(l[1],l[3])+l[5])};n=f}n||ru((i=this.cachedCanvases.getCanvas("maskCanvas",o,s)).context,t);var d=Z.transform(l,[1/o,0,0,-1/s,0,0]);d=Z.transform(d,[1,0,0,1,0,-s]);var v=zs(Z.getAxialAlignedBoundingBox([0,0,o,s],d),4),p=v[0],y=v[1],g=v[2],m=v[3],b=Math.round(g-p)||1,w=Math.round(m-y)||1,k=this.cachedCanvases.getCanvas("fillCanvas",b,w),x=k.context,A=p,_=y;x.translate(-A,-_),x.transform.apply(x,Gs(d)),n||(n=(n=this._scaleImage(i.canvas,Ie(x))).img,e&&c&&e.set(r,n)),x.imageSmoothingEnabled=au(je(x),t.interpolate),Zs(x,n,0,0,n.width,n.height,0,0,o,s),x.globalCompositeOperation="source-in";var E=Z.transform(Ie(x),[1,0,0,1,-A,-_]);return x.fillStyle=c?u.getPattern(a,this,E,Ts):u,x.fillRect(0,0,o,s),e&&!c&&(this.cachedCanvases.delete("fillCanvas"),e.set(r,k.canvas)),{canvas:k.canvas,offsetX:Math.round(A),offsetY:Math.round(_)}}},{key:"setLineWidth",value:function(t){t!==this.current.lineWidth&&(this._cachedScaleForStroking[0]=-1),this.current.lineWidth=t,this.ctx.lineWidth=t}},{key:"setLineCap",value:function(t){this.ctx.lineCap=ou[t]}},{key:"setLineJoin",value:function(t){this.ctx.lineJoin=su[t]}},{key:"setMiterLimit",value:function(t){this.ctx.miterLimit=t}},{key:"setDash",value:function(t,e){var r=this.ctx;void 0!==r.setLineDash&&(r.setLineDash(t),r.lineDashOffset=e)}},{key:"setRenderingIntent",value:function(t){}},{key:"setFlatness",value:function(t){}},{key:"setGState",value:function(t){var e,r=Us(t);try{for(r.s();!(e=r.n()).done;){var n=zs(e.value,2),i=n[0],a=n[1];switch(i){case"LW":this.setLineWidth(a);break;case"LC":this.setLineCap(a);break;case"LJ":this.setLineJoin(a);break;case"ML":this.setMiterLimit(a);break;case"D":this.setDash(a[0],a[1]);break;case"RI":this.setRenderingIntent(a);break;case"FL":this.setFlatness(a);break;case"Font":this.setFont(a[0],a[1]);break;case"CA":this.current.strokeAlpha=a;break;case"ca":this.current.fillAlpha=a,this.ctx.globalAlpha=a;break;case"BM":this.ctx.globalCompositeOperation=a;break;case"SMask":this.current.activeSMask=a?this.tempSMask:null,this.tempSMask=null,this.checkSMaskState();break;case"TR":this.ctx.filter=this.current.transferMaps=this.filterFactory.addFilter(a)}}}catch(t){r.e(t)}finally{r.f()}}},{key:"inSMaskMode",get:function(){return!!this.suspendedCtx}},{key:"checkSMaskState",value:function(){var t=this.inSMaskMode;this.current.activeSMask&&!t?this.beginSMaskMode():!this.current.activeSMask&&t&&this.endSMaskMode()}},{key:"beginSMaskMode",value:function(){if(this.inSMaskMode)throw new Error("beginSMaskMode called while already in smask mode");var t=this.ctx.canvas.width,e=this.ctx.canvas.height,r="smaskGroupAt"+this.groupLevel,n=this.cachedCanvases.getCanvas(r,t,e);this.suspendedCtx=this.ctx,this.ctx=n.context;var i=this.ctx;i.setTransform.apply(i,Gs(je(this.suspendedCtx))),nu(this.suspendedCtx,i),function(t,e){if(t._removeMirroring)throw new Error("Context is already forwarding operations.");t.__originalSave=t.save,t.__originalRestore=t.restore,t.__originalRotate=t.rotate,t.__originalScale=t.scale,t.__originalTranslate=t.translate,t.__originalTransform=t.transform,t.__originalSetTransform=t.setTransform,t.__originalResetTransform=t.resetTransform,t.__originalClip=t.clip,t.__originalMoveTo=t.moveTo,t.__originalLineTo=t.lineTo,t.__originalBezierCurveTo=t.bezierCurveTo,t.__originalRect=t.rect,t.__originalClosePath=t.closePath,t.__originalBeginPath=t.beginPath,t._removeMirroring=function(){t.save=t.__originalSave,t.restore=t.__originalRestore,t.rotate=t.__originalRotate,t.scale=t.__originalScale,t.translate=t.__originalTranslate,t.transform=t.__originalTransform,t.setTransform=t.__originalSetTransform,t.resetTransform=t.__originalResetTransform,t.clip=t.__originalClip,t.moveTo=t.__originalMoveTo,t.lineTo=t.__originalLineTo,t.bezierCurveTo=t.__originalBezierCurveTo,t.rect=t.__originalRect,t.closePath=t.__originalClosePath,t.beginPath=t.__originalBeginPath,delete t._removeMirroring},t.save=function(){e.save(),this.__originalSave()},t.restore=function(){e.restore(),this.__originalRestore()},t.translate=function(t,r){e.translate(t,r),this.__originalTranslate(t,r)},t.scale=function(t,r){e.scale(t,r),this.__originalScale(t,r)},t.transform=function(t,r,n,i,a,o){e.transform(t,r,n,i,a,o),this.__originalTransform(t,r,n,i,a,o)},t.setTransform=function(t,r,n,i,a,o){e.setTransform(t,r,n,i,a,o),this.__originalSetTransform(t,r,n,i,a,o)},t.resetTransform=function(){e.resetTransform(),this.__originalResetTransform()},t.rotate=function(t){e.rotate(t),this.__originalRotate(t)},t.clip=function(t){e.clip(t),this.__originalClip(t)},t.moveTo=function(t,r){e.moveTo(t,r),this.__originalMoveTo(t,r)},t.lineTo=function(t,r){e.lineTo(t,r),this.__originalLineTo(t,r)},t.bezierCurveTo=function(t,r,n,i,a,o){e.bezierCurveTo(t,r,n,i,a,o),this.__originalBezierCurveTo(t,r,n,i,a,o)},t.rect=function(t,r,n,i){e.rect(t,r,n,i),this.__originalRect(t,r,n,i)},t.closePath=function(){e.closePath(),this.__originalClosePath()},t.beginPath=function(){e.beginPath(),this.__originalBeginPath()}}(i,this.suspendedCtx),this.setGState([["BM","source-over"],["ca",1],["CA",1]])}},{key:"endSMaskMode",value:function(){if(!this.inSMaskMode)throw new Error("endSMaskMode called while not in smask mode");this.ctx._removeMirroring(),nu(this.ctx,this.suspendedCtx),this.ctx=this.suspendedCtx,this.suspendedCtx=null}},{key:"compose",value:function(t){if(this.current.activeSMask){t?(t[0]=Math.floor(t[0]),t[1]=Math.floor(t[1]),t[2]=Math.ceil(t[2]),t[3]=Math.ceil(t[3])):t=[0,0,this.ctx.canvas.width,this.ctx.canvas.height];var e=this.current.activeSMask,r=this.suspendedCtx;this.composeSMask(r,e,this.ctx,t),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()}}},{key:"composeSMask",value:function(t,e,r,n){var i=n[0],a=n[1],o=n[2]-i,s=n[3]-a;0!==o&&0!==s&&(this.genericComposeSMask(e.context,r,o,s,e.subtype,e.backdrop,e.transferMap,i,a,e.offsetX,e.offsetY),t.save(),t.globalAlpha=1,t.globalCompositeOperation="source-over",t.setTransform(1,0,0,1,0,0),t.drawImage(r.canvas,0,0),t.restore())}},{key:"genericComposeSMask",value:function(t,e,r,n,i,a,o,s,u,c,l){var h=t.canvas,f=s-c,d=u-l;if(a)if(f<0||d<0||f+r>h.width||d+n>h.height){var v=this.cachedCanvases.getCanvas("maskExtension",r,n),p=v.context;p.drawImage(h,-f,-d),a.some((function(t){return 0!==t}))&&(p.globalCompositeOperation="destination-atop",p.fillStyle=Z.makeHexColor.apply(Z,Gs(a)),p.fillRect(0,0,r,n),p.globalCompositeOperation="source-over"),h=v.canvas,f=d=0}else if(a.some((function(t){return 0!==t}))){t.save(),t.globalAlpha=1,t.setTransform(1,0,0,1,0,0);var y=new Path2D;y.rect(f,d,r,n),t.clip(y),t.globalCompositeOperation="destination-atop",t.fillStyle=Z.makeHexColor.apply(Z,Gs(a)),t.fillRect(f,d,r,n),t.restore()}e.save(),e.globalAlpha=1,e.setTransform(1,0,0,1,0,0),"Alpha"===i&&o?e.filter=this.filterFactory.addAlphaFilter(o):"Luminosity"===i&&(e.filter=this.filterFactory.addLuminosityFilter(o));var g=new Path2D;g.rect(s,u,r,n),e.clip(g),e.globalCompositeOperation="destination-in",e.drawImage(h,f,d,r,n,s,u,r,n),e.restore()}},{key:"save",value:function(){this.inSMaskMode?(nu(this.ctx,this.suspendedCtx),this.suspendedCtx.save()):this.ctx.save();var t=this.current;this.stateStack.push(t),this.current=t.clone()}},{key:"restore",value:function(){0===this.stateStack.length&&this.inSMaskMode&&this.endSMaskMode(),0!==this.stateStack.length&&(this.current=this.stateStack.pop(),this.inSMaskMode?(this.suspendedCtx.restore(),nu(this.suspendedCtx,this.ctx)):this.ctx.restore(),this.checkSMaskState(),this.pendingClip=null,this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null)}},{key:"transform",value:function(t,e,r,n,i,a){this.ctx.transform(t,e,r,n,i,a),this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null}},{key:"constructPath",value:function(t,e,r){for(var n,i,a=this.ctx,o=this.current,s=o.x,u=o.y,c=je(a),l=0===c[0]&&0===c[3]||0===c[1]&&0===c[2],h=l?r.slice(0):null,f=0,d=0,v=t.length;f0&&void 0!==arguments[0])||arguments[0],e=this.ctx,r=this.current.strokeColor;e.globalAlpha=this.current.strokeAlpha,this.contentVisible&&("object"==typeof r&&null!=r&&r.getPattern?(e.save(),e.strokeStyle=r.getPattern(e,this,Ie(e),Ps),this.rescaleAndStroke(!1),e.restore()):this.rescaleAndStroke(!0)),t&&this.consumePath(this.current.getClippedPathBoundingBox()),e.globalAlpha=this.current.fillAlpha}},{key:"closeStroke",value:function(){this.closePath(),this.stroke()}},{key:"fill",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],e=this.ctx,r=this.current.fillColor,n=!1;this.current.patternFill&&(e.save(),e.fillStyle=r.getPattern(e,this,Ie(e),Ts),n=!0);var i=this.current.getClippedPathBoundingBox();this.contentVisible&&null!==i&&(this.pendingEOFill?(e.fill("evenodd"),this.pendingEOFill=!1):e.fill()),n&&e.restore(),t&&this.consumePath(i)}},{key:"eoFill",value:function(){this.pendingEOFill=!0,this.fill()}},{key:"fillStroke",value:function(){this.fill(!1),this.stroke(!1),this.consumePath()}},{key:"eoFillStroke",value:function(){this.pendingEOFill=!0,this.fillStroke()}},{key:"closeFillStroke",value:function(){this.closePath(),this.fillStroke()}},{key:"closeEOFillStroke",value:function(){this.pendingEOFill=!0,this.closePath(),this.fillStroke()}},{key:"endPath",value:function(){this.consumePath()}},{key:"clip",value:function(){this.pendingClip=uu}},{key:"eoClip",value:function(){this.pendingClip=cu}},{key:"beginText",value:function(){this.current.textMatrix=b,this.current.textMatrixScale=1,this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0}},{key:"endText",value:function(){var t=this.pendingTextPaths,e=this.ctx;if(void 0!==t){e.save(),e.beginPath();var r,n=Us(t);try{for(n.s();!(r=n.n()).done;){var i=r.value;e.setTransform.apply(e,Gs(i.transform)),e.translate(i.x,i.y),i.addToPath(e,i.fontSize)}}catch(t){n.e(t)}finally{n.f()}e.restore(),e.clip(),e.beginPath(),delete this.pendingTextPaths}else e.beginPath()}},{key:"setCharSpacing",value:function(t){this.current.charSpacing=t}},{key:"setWordSpacing",value:function(t){this.current.wordSpacing=t}},{key:"setHScale",value:function(t){this.current.textHScale=t/100}},{key:"setLeading",value:function(t){this.current.leading=-t}},{key:"setFont",value:function(t,e){var r,n=this.commonObjs.get(t),i=this.current;if(!n)throw new Error("Can't find font for ".concat(t));if(i.fontMatrix=n.fontMatrix||w,0!==i.fontMatrix[0]&&0!==i.fontMatrix[3]||R("Invalid font matrix for font "+t),e<0?(e=-e,i.fontDirection=-1):i.fontDirection=1,this.current.font=n,this.current.fontSize=e,!n.isType3Font){var a=n.loadedName||"sans-serif",o=(null===(r=n.systemFontInfo)||void 0===r?void 0:r.css)||'"'.concat(a,'", ').concat(n.fallbackName),s="normal";n.black?s="900":n.bold&&(s="bold");var u=n.italic?"italic":"normal",c=e;e<16?c=16:e>100&&(c=100),this.current.fontSizeScale=e/c,this.ctx.font="".concat(u," ").concat(s," ").concat(c,"px ").concat(o)}}},{key:"setTextRenderingMode",value:function(t){this.current.textRenderingMode=t}},{key:"setTextRise",value:function(t){this.current.textRise=t}},{key:"moveText",value:function(t,e){this.current.x=this.current.lineX+=t,this.current.y=this.current.lineY+=e}},{key:"setLeadingMoveText",value:function(t,e){this.setLeading(-e),this.moveText(t,e)}},{key:"setTextMatrix",value:function(t,e,r,n,i,a){this.current.textMatrix=[t,e,r,n,i,a],this.current.textMatrixScale=Math.hypot(t,e),this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0}},{key:"nextLine",value:function(){this.moveText(0,this.current.leading)}},{key:"paintChar",value:function(t,e,r,n){var i,a=this.ctx,o=this.current,s=o.font,u=o.textRenderingMode,c=o.fontSize/o.fontSizeScale,l=3&u,h=!!(4&u),f=o.patternFill&&!s.missingFile;(s.disableFontFace||h||f)&&(i=s.getPathGenerator(this.commonObjs,t)),s.disableFontFace||f?(a.save(),a.translate(e,r),a.beginPath(),i(a,c),n&&a.setTransform.apply(a,Gs(n)),0!==l&&2!==l||a.fill(),1!==l&&2!==l||a.stroke(),a.restore()):(0!==l&&2!==l||a.fillText(t,e,r),1!==l&&2!==l||a.strokeText(t,e,r)),h&&(this.pendingTextPaths||(this.pendingTextPaths=[])).push({transform:je(a),x:e,y:r,fontSize:c,addToPath:i})}},{key:"isFontSubpixelAAEnabled",get:function(){var t=this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled",10,10).context;t.scale(1.5,1),t.fillText("I",0,10);for(var e=t.getImageData(0,0,10,10).data,r=!1,n=3;n0&&e[n]<255){r=!0;break}return W(this,"isFontSubpixelAAEnabled",r)}},{key:"showText",value:function(t){var e=this.current,r=e.font;if(r.isType3Font)return this.showType3Text(t);var n=e.fontSize;if(0!==n){var i,a=this.ctx,o=e.fontSizeScale,s=e.charSpacing,u=e.wordSpacing,c=e.fontDirection,l=e.textHScale*c,h=t.length,f=r.vertical,d=f?1:-1,v=r.defaultVMetrics,p=n*e.fontMatrix[0],y=0===e.textRenderingMode&&!r.disableFontFace&&!e.patternFill;if(a.save(),a.transform.apply(a,Gs(e.textMatrix)),a.translate(e.x,e.y+e.textRise),c>0?a.scale(l,-1):a.scale(l,1),e.patternFill){a.save();var g=e.fillColor.getPattern(a,this,Ie(a),Ts);i=je(a),a.restore(),a.fillStyle=g}var m=e.lineWidth,b=e.textMatrixScale;if(0===b||0===m){var w=3&e.textRenderingMode;1!==w&&2!==w||(m=this.getSinglePixelWidth())}else m/=b;if(1!==o&&(a.scale(o,o),m/=o),a.lineWidth=m,r.isInvalidPDFjsFont){var k,x=[],A=0,_=Us(t);try{for(_.s();!(k=_.n()).done;){var E=k.value;x.push(E.unicode),A+=E.width}}catch(t){_.e(t)}finally{_.f()}return a.fillText(x.join(""),0,0),e.x+=A*p*l,a.restore(),void this.compose()}var S,O=0;for(S=0;S0){var W=1e3*a.measureText(M).width/n*o;if(R1&&void 0!==arguments[1]?arguments[1]:null;return this.cachedPatterns.has(t)?e=this.cachedPatterns.get(t):(e=function(t){switch(t[0]){case"RadialAxial":return new js(t);case"Mesh":return new Fs(t);case"Dummy":return new Ds}throw new Error("Unknown IR type: ".concat(t[0]))}(this.getObject(t)),this.cachedPatterns.set(t,e)),r&&(e.matrix=r),e}},{key:"shadingFill",value:function(t){if(this.contentVisible){var e=this.ctx;this.save();var r=this._getPattern(t);e.fillStyle=r.getPattern(e,this,Ie(e),Ls);var n=Ie(e);if(n){var i=e.canvas,a=i.width,o=i.height,s=zs(Z.getAxialAlignedBoundingBox([0,0,a,o],n),4),u=s[0],c=s[1],l=s[2],h=s[3];this.ctx.fillRect(u,c,l-u,h-c)}else this.ctx.fillRect(-1e10,-1e10,2e10,2e10);this.compose(this.current.getClippedPathBoundingBox()),this.restore()}}},{key:"beginInlineImage",value:function(){F("Should not call beginInlineImage")}},{key:"beginImageData",value:function(){F("Should not call beginImageData")}},{key:"paintFormXObjectBegin",value:function(t,e){if(this.contentVisible&&(this.save(),this.baseTransformStack.push(this.baseTransform),t&&this.transform.apply(this,Gs(t)),this.baseTransform=je(this.ctx),e)){var r=e[2]-e[0],n=e[3]-e[1];this.ctx.rect(e[0],e[1],r,n),this.current.updateRectMinMax(je(this.ctx),e),this.clip(),this.endPath()}}},{key:"paintFormXObjectEnd",value:function(){this.contentVisible&&(this.restore(),this.baseTransform=this.baseTransformStack.pop())}},{key:"beginGroup",value:function(t){if(this.contentVisible){this.save(),this.inSMaskMode&&(this.endSMaskMode(),this.current.activeSMask=null);var e=this.ctx;t.isolated||I("TODO: Support non-isolated groups."),t.knockout&&R("Knockout groups not supported.");var r=je(e);if(t.matrix&&e.transform.apply(e,Gs(t.matrix)),!t.bbox)throw new Error("Bounding box is required.");var n=Z.getAxialAlignedBoundingBox(t.bbox,je(e)),i=[0,0,e.canvas.width,e.canvas.height];n=Z.intersect(n,i)||[0,0,0,0];var a=Math.floor(n[0]),o=Math.floor(n[1]),s=Math.max(Math.ceil(n[2])-a,1),u=Math.max(Math.ceil(n[3])-o,1);this.current.startNewPathAndClipBox([0,0,s,u]);var c="groupAt"+this.groupLevel;t.smask&&(c+="_smask_"+this.smaskCounter++%2);var l=this.cachedCanvases.getCanvas(c,s,u),h=l.context;h.translate(-a,-o),h.transform.apply(h,Gs(r)),t.smask?this.smaskStack.push({canvas:l.canvas,context:h,offsetX:a,offsetY:o,subtype:t.smask.subtype,backdrop:t.smask.backdrop,transferMap:t.smask.transferMap||null,startTransformInverse:null}):(e.setTransform(1,0,0,1,0,0),e.translate(a,o),e.save()),nu(e,h),this.ctx=h,this.setGState([["BM","source-over"],["ca",1],["CA",1]]),this.groupStack.push(e),this.groupLevel++}}},{key:"endGroup",value:function(t){if(this.contentVisible){this.groupLevel--;var e=this.ctx,r=this.groupStack.pop();if(this.ctx=r,this.ctx.imageSmoothingEnabled=!1,t.smask)this.tempSMask=this.smaskStack.pop(),this.restore();else{var n;this.ctx.restore();var i=je(this.ctx);this.restore(),this.ctx.save(),(n=this.ctx).setTransform.apply(n,Gs(i));var a=Z.getAxialAlignedBoundingBox([0,0,e.canvas.width,e.canvas.height],i);this.ctx.drawImage(e.canvas,0,0),this.ctx.restore(),this.compose(a)}}}},{key:"beginAnnotation",value:function(t,e,r,n,i){var a;if(Hs(lu,this,fu).call(this),iu(this.ctx),this.ctx.save(),this.save(),this.baseTransform&&(a=this.ctx).setTransform.apply(a,Gs(this.baseTransform)),e){var o=e[2]-e[0],s=e[3]-e[1];if(i&&this.annotationCanvasMap){(r=r.slice())[4]-=e[0],r[5]-=e[1],(e=e.slice())[0]=e[1]=0,e[2]=o,e[3]=s;var u=zs(Z.singularValueDecompose2dScale(je(this.ctx)),2),c=u[0],l=u[1],h=this.viewportScale,f=Math.ceil(o*this.outputScaleX*h),d=Math.ceil(s*this.outputScaleY*h);this.annotationCanvas=this.canvasFactory.create(f,d);var v=this.annotationCanvas,p=v.canvas,y=v.context;this.annotationCanvasMap.set(t,p),this.annotationCanvas.savedCtx=this.ctx,this.ctx=y,this.ctx.save(),this.ctx.setTransform(c,0,0,-l,0,s*l),iu(this.ctx)}else iu(this.ctx),this.endPath(),this.ctx.rect(e[0],e[1],o,s),this.ctx.clip(),this.ctx.beginPath()}this.current=new tu(this.ctx.canvas.width,this.ctx.canvas.height),this.transform.apply(this,Gs(r)),this.transform.apply(this,Gs(n))}},{key:"endAnnotation",value:function(){this.annotationCanvas&&(this.ctx.restore(),Hs(lu,this,du).call(this),this.ctx=this.annotationCanvas.savedCtx,delete this.annotationCanvas.savedCtx,delete this.annotationCanvas)}},{key:"paintImageMaskXObject",value:function(t){if(this.contentVisible){var e=t.count;(t=this.getObject(t.data,t)).count=e;var r=this.ctx,n=this.processingType3;if(n&&(void 0===n.compiled&&(n.compiled=function(t){var e=t.width,r=t.height;if(e>1e3||r>1e3)return null;var n,i,a,o,s=new Uint8Array([0,2,4,0,1,0,5,4,8,10,0,8,0,2,1,0]),u=e+1,c=new Uint8Array(u*(r+1)),l=e+7&-8,h=new Uint8Array(l*r),f=0,d=Us(t.data);try{for(d.s();!(o=d.n()).done;)for(var v=o.value,p=128;p>0;)h[f++]=v&p?0:255,p>>=1}catch(t){d.e(t)}finally{d.f()}var y=0;for(0!==h[f=0]&&(c[0]=1,++y),i=1;i>2)+(h[f+1]?4:0)+(h[f-l+1]?8:0)]&&(c[a+i]=s[g],++y),f++;if(h[f-l]!==h[f]&&(c[a+i]=h[f]?2:4,++y),y>1e3)return null}for(a=n*u,0!==h[f=l*(r-1)]&&(c[a]=8,++y),i=1;i1e3)return null;var m=new Int32Array([0,u,-1,0,-u,0,0,0,1]),b=new Path2D;for(n=0;y&&n<=r;n++){for(var w=n*u,k=w+e;w>4,c[w]&=A>>2|A<<2),b.lineTo(w%u,w/u|0),c[w]||--y}while(x!==w);--n}}return h=null,c=null,function(t){t.save(),t.scale(1/e,-1/r),t.translate(0,-r),t.fill(b),t.beginPath(),t.restore()}}(t)),n.compiled))n.compiled(r);else{var i=this._createMaskCanvas(t),a=i.canvas;r.save(),r.setTransform(1,0,0,1,0,0),r.drawImage(a,i.offsetX,i.offsetY),r.restore(),this.compose()}}}},{key:"paintImageMaskXObjectRepeat",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=arguments.length>4?arguments[4]:void 0,a=arguments.length>5?arguments[5]:void 0;if(this.contentVisible){t=this.getObject(t.data,t);var o=this.ctx;o.save();var s=je(o);o.transform(e,r,n,i,0,0);var u=this._createMaskCanvas(t);o.setTransform(1,0,0,1,u.offsetX-s[4],u.offsetY-s[5]);for(var c=0,l=a.length;cy?p/y:1,e=v>y?v/y:1}}this._cachedScaleForStroking[0]=t,this._cachedScaleForStroking[1]=e}return this._cachedScaleForStroking}},{key:"rescaleAndStroke",value:function(t){var e=this.ctx,r=this.current.lineWidth,n=zs(this.getScaleForStroking(),2),i=n[0],a=n[1];if(e.lineWidth=r||1,1!==i||1!==a){var o=e.getLineDash();if(t&&e.save(),e.scale(i,a),o.length>0){var s=Math.max(i,a);e.setLineDash(o.map((function(t){return t/s}))),e.lineDashOffset/=s}e.stroke(),t&&e.restore()}else e.stroke()}},{key:"isContentVisible",value:function(){for(var t=this.markedContentStack.length-1;t>=0;t--)if(!this.markedContentStack[t].visible)return!1;return!0}}])}();function fu(){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)}function du(){if(this.pageColors){var t=this.filterFactory.addHCMFilter(this.pageColors.foreground,this.pageColors.background);if("none"!==t){var e=this.ctx.filter;this.ctx.filter=t,this.ctx.drawImage(this.ctx.canvas,0,0),this.ctx.filter=e}}}for(var vu in P)void 0!==hu.prototype[vu]&&(hu.prototype[P[vu]]=hu.prototype[vu]);function pu(t,e){for(var r=0;r=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;P(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:M(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function xu(t,e,r,n,i,a,o){try{var s=t[a](o),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function Au(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:1,o=arguments.length>2?arguments[2]:void 0;if(!this.isCancelled){var s=this.desiredSize;this.desiredSize-=a,s>0&&this.desiredSize<=0&&(this.sinkCapability=Promise.withResolvers(),this.ready=this.sinkCapability.promise),i.postMessage({sourceName:r,targetName:n,stream:4,streamId:e,chunk:t},o)}},close(){this.isCancelled||(this.isCancelled=!0,i.postMessage({sourceName:r,targetName:n,stream:3,streamId:e}),delete a.streamSinks[e])},error(t){D(t instanceof Error,"error must have a valid reason"),this.isCancelled||(this.isCancelled=!0,i.postMessage({sourceName:r,targetName:n,stream:5,streamId:e,reason:Su(t)}))},sinkCapability:Promise.withResolvers(),onPull:null,onCancel:null,isCancelled:!1,desiredSize:t.desiredSize,ready:null};s.sinkCapability.resolve(),s.ready=s.sinkCapability.promise,this.streamSinks[e]=s,new Promise((function(e){e(o(t.data,s))})).then((function(){i.postMessage({sourceName:r,targetName:n,stream:8,streamId:e,success:!0})}),(function(t){i.postMessage({sourceName:r,targetName:n,stream:8,streamId:e,reason:Su(t)})}))}function Lu(t){var e=t.streamId,r=this.sourceName,n=t.sourceName,i=this.comObj,a=this.streamControllers[e],o=this.streamSinks[e];switch(t.stream){case 8:t.success?a.startCall.resolve():a.startCall.reject(Su(t.reason));break;case 7:t.success?a.pullCall.resolve():a.pullCall.reject(Su(t.reason));break;case 6:if(!o){i.postMessage({sourceName:r,targetName:n,stream:7,streamId:e,success:!0});break}o.desiredSize<=0&&t.desiredSize>0&&o.sinkCapability.resolve(),o.desiredSize=t.desiredSize,new Promise((function(t){var e;t(null===(e=o.onPull)||void 0===e?void 0:e.call(o))})).then((function(){i.postMessage({sourceName:r,targetName:n,stream:7,streamId:e,success:!0})}),(function(t){i.postMessage({sourceName:r,targetName:n,stream:7,streamId:e,reason:Su(t)})}));break;case 4:if(D(a,"enqueue should have stream controller"),a.isClosed)break;a.controller.enqueue(t.chunk);break;case 3:if(D(a,"close should have stream controller"),a.isClosed)break;a.isClosed=!0,a.controller.close(),Eu(Ou,this,Mu).call(this,a,e);break;case 5:D(a,"error should have stream controller"),a.controller.error(Su(t.reason)),Eu(Ou,this,Mu).call(this,a,e);break;case 2:t.success?a.cancelCall.resolve():a.cancelCall.reject(Su(t.reason)),Eu(Ou,this,Mu).call(this,a,e);break;case 1:if(!o)break;new Promise((function(e){var r;e(null===(r=o.onCancel)||void 0===r?void 0:r.call(o,Su(t.reason)))})).then((function(){i.postMessage({sourceName:r,targetName:n,stream:2,streamId:e,success:!0})}),(function(t){i.postMessage({sourceName:r,targetName:n,stream:2,streamId:e,reason:Su(t)})})),o.sinkCapability.reject(Su(t.reason)),o.isCancelled=!0,delete this.streamSinks[e];break;default:throw new Error("Unexpected stream case")}}function Mu(t,e){return Cu.apply(this,arguments)}function Cu(){var t;return t=ku().mark((function t(e,r){var n,i,a;return ku().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,Promise.allSettled([null===(n=e.startCall)||void 0===n?void 0:n.promise,null===(i=e.pullCall)||void 0===i?void 0:i.promise,null===(a=e.cancelCall)||void 0===a?void 0:a.promise]);case 2:delete this.streamControllers[r];case 3:case"end":return t.stop()}}),t,this)})),Cu=function(){var e=this,r=arguments;return new Promise((function(n,i){var a=t.apply(e,r);function o(t){xu(a,n,i,o,s,"next",t)}function s(t){xu(a,n,i,o,s,"throw",t)}o(void 0)}))},Cu.apply(this,arguments)}function ju(t,e){for(var r=0;r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function zu(t,e){if(t){if("string"==typeof t)return Vu(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Vu(t,e):void 0}}function Vu(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r2&&void 0!==arguments[2]&&arguments[2];t!==ec&&F("Internal method \`_setVisible\` called."),Zu(ic,this,r),Zu(ac,this,e)}}])}(),sc=new WeakMap,uc=new WeakMap,cc=new WeakMap,lc=new WeakMap,hc=new WeakSet,fc=function(){return Xu((function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;if(qu(this,t),function(t,e){Ju(t,e),e.add(t)}(this,hc),Qu(this,sc,null),Qu(this,uc,new Map),Qu(this,cc,null),Qu(this,lc,null),this.renderingIntent=r,this.name=null,this.creator=null,null!==e){this.name=e.name,this.creator=e.creator,Zu(lc,this,e.order);var n,i=Uu(e.groups);try{for(i.s();!(n=i.n()).done;){var a=n.value;$u(uc,this).set(a.id,new oc(r,a))}}catch(t){i.e(t)}finally{i.f()}if("OFF"===e.baseState){var o,s=Uu($u(uc,this).values());try{for(s.s();!(o=s.n()).done;)o.value._setVisible(ec,!1)}catch(t){s.e(t)}finally{s.f()}}var u,c=Uu(e.on);try{for(c.s();!(u=c.n()).done;){var l=u.value;$u(uc,this).get(l)._setVisible(ec,!0)}}catch(t){c.e(t)}finally{c.f()}var h,f=Uu(e.off);try{for(f.s();!(h=f.n()).done;){var d=h.value;$u(uc,this).get(d)._setVisible(ec,!1)}}catch(t){f.e(t)}finally{f.f()}Zu(cc,this,this.getHash())}}),[{key:"isVisible",value:function(t){if(0===$u(uc,this).size)return!0;if(!t)return I("Optional content group not defined."),!0;if("OCG"===t.type)return $u(uc,this).has(t.id)?$u(uc,this).get(t.id).visible:(R("Optional content group not found: ".concat(t.id)),!0);if("OCMD"===t.type){if(t.expression)return tc(hc,this,dc).call(this,t.expression);if(!t.policy||"AnyOn"===t.policy){var e,r=Uu(t.ids);try{for(r.s();!(e=r.n()).done;){var n=e.value;if(!$u(uc,this).has(n))return R("Optional content group not found: ".concat(n)),!0;if($u(uc,this).get(n).visible)return!0}}catch(t){r.e(t)}finally{r.f()}return!1}if("AllOn"===t.policy){var i,a=Uu(t.ids);try{for(a.s();!(i=a.n()).done;){var o=i.value;if(!$u(uc,this).has(o))return R("Optional content group not found: ".concat(o)),!0;if(!$u(uc,this).get(o).visible)return!1}}catch(t){a.e(t)}finally{a.f()}return!0}if("AnyOff"===t.policy){var s,u=Uu(t.ids);try{for(u.s();!(s=u.n()).done;){var c=s.value;if(!$u(uc,this).has(c))return R("Optional content group not found: ".concat(c)),!0;if(!$u(uc,this).get(c).visible)return!0}}catch(t){u.e(t)}finally{u.f()}return!1}if("AllOff"===t.policy){var l,h=Uu(t.ids);try{for(h.s();!(l=h.n()).done;){var f=l.value;if(!$u(uc,this).has(f))return R("Optional content group not found: ".concat(f)),!0;if($u(uc,this).get(f).visible)return!1}}catch(t){h.e(t)}finally{h.f()}return!0}return R("Unknown optional content policy ".concat(t.policy,".")),!0}return R("Unknown group type ".concat(t.type,".")),!0}},{key:"setVisibility",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=$u(uc,this).get(t);r?(r._setVisible(ec,!!e,!0),Zu(sc,this,null)):R("Optional content group not found: ".concat(t))}},{key:"setOCGState",value:function(t){var e,r,n=t.state,i=(t.preserveRB,Uu(n));try{for(i.s();!(r=i.n()).done;){var a=r.value;switch(a){case"ON":case"OFF":case"Toggle":e=a;continue}var o=$u(uc,this).get(a);if(o)switch(e){case"ON":o._setVisible(ec,!0);break;case"OFF":o._setVisible(ec,!1);break;case"Toggle":o._setVisible(ec,!o.visible)}}}catch(t){i.e(t)}finally{i.f()}Zu(sc,this,null)}},{key:"hasInitialVisibility",get:function(){return null===$u(cc,this)||this.getHash()===$u(cc,this)}},{key:"getOrder",value:function(){return $u(uc,this).size?$u(lc,this)?$u(lc,this).slice():function(t){return function(t){if(Array.isArray(t))return Vu(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||zu(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}($u(uc,this).keys()):null}},{key:"getGroups",value:function(){return $u(uc,this).size>0?Q($u(uc,this)):null}},{key:"getGroup",value:function(t){return $u(uc,this).get(t)||null}},{key:"getHash",value:function(){if(null!==$u(sc,this))return $u(sc,this);var t,e=new so,r=Uu($u(uc,this));try{for(r.s();!(t=r.n()).done;){var n=Hu(t.value,2),i=n[0],a=n[1];e.update("".concat(i,":").concat(a.visible))}}catch(t){r.e(t)}finally{r.f()}return Zu(sc,this,e.hexdigest())}}])}();function dc(t){var e=t.length;if(e<2)return!0;for(var r=t[0],n=1;n=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;P(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:M(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function pc(t,e,r,n,i,a,o){try{var s=t[a](o),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function yc(t){return function(){var e=this,r=arguments;return new Promise((function(n,i){var a=t.apply(e,r);function o(t){pc(a,n,i,o,s,"next",t)}function s(t){pc(a,n,i,o,s,"throw",t)}o(void 0)}))}}function gc(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return mc(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?mc(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function mc(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r0){var f=c instanceof Uint8Array&&c.byteLength===c.buffer.byteLength?c.buffer:new Uint8Array(c).buffer;this._queuedChunks.push(f)}this._pdfDataRangeTransport=e,this._isStreamingSupported=!s,this._isRangeSupported=!a,this._contentLength=u,this._fullRequestReader=null,this._rangeReaders=[],e.addRangeListener((function(t,e){n._onReceiveData({begin:t,chunk:e})})),e.addProgressListener((function(t,e){n._onProgress({loaded:t,total:e})})),e.addProgressiveReadListener((function(t){n._onReceiveData({chunk:t})})),e.addProgressiveDoneListener((function(){n._onProgressiveDone()})),e.transportReady()}),[{key:"_onReceiveData",value:function(t){var e=t.begin,r=t.chunk,n=r instanceof Uint8Array&&r.byteLength===r.buffer.byteLength?r.buffer:new Uint8Array(r).buffer;void 0===e?this._fullRequestReader?this._fullRequestReader._enqueue(n):this._queuedChunks.push(n):D(this._rangeReaders.some((function(t){return t._begin===e&&(t._enqueue(n),!0)})),"_onReceiveData - no \`PDFDataTransportStreamRangeReader\` instance found.")}},{key:"_progressiveDataLength",get:function(){var t,e;return null!==(t=null===(e=this._fullRequestReader)||void 0===e?void 0:e._loaded)&&void 0!==t?t:0}},{key:"_onProgress",value:function(t){var e,r,n,i;void 0===t.total?null===(e=this._rangeReaders[0])||void 0===e||null===(r=e.onProgress)||void 0===r||r.call(e,{loaded:t.loaded}):null===(n=this._fullRequestReader)||void 0===n||null===(i=n.onProgress)||void 0===i||i.call(n,{loaded:t.loaded,total:t.total})}},{key:"_onProgressiveDone",value:function(){var t;null===(t=this._fullRequestReader)||void 0===t||t.progressiveDone(),this._progressiveDone=!0}},{key:"_removeRangeReader",value:function(t){var e=this._rangeReaders.indexOf(t);e>=0&&this._rangeReaders.splice(e,1)}},{key:"getFullReader",value:function(){D(!this._fullRequestReader,"PDFDataTransportStream.getFullReader can only be called once.");var t=this._queuedChunks;return this._queuedChunks=null,new _c(this,t,this._progressiveDone,this._contentDispositionFilename)}},{key:"getRangeReader",value:function(t,e){if(e<=this._progressiveDataLength)return null;var r=new Ec(this,t,e);return this._pdfDataRangeTransport.requestDataRange(t,e),this._rangeReaders.push(r),r}},{key:"cancelAllRequests",value:function(t){var e;null===(e=this._fullRequestReader)||void 0===e||e.cancel(t);var r,n=gc(this._rangeReaders.slice(0));try{for(n.s();!(r=n.n()).done;)r.value.cancel(t)}catch(t){n.e(t)}finally{n.f()}this._pdfDataRangeTransport.abort()}}])}(),_c=function(){return kc((function t(e,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;bc(this,t),this._stream=e,this._done=n||!1,this._filename=xe(i)?i:null,this._queuedChunks=r||[],this._loaded=0;var a,o=gc(this._queuedChunks);try{for(o.s();!(a=o.n()).done;){var s=a.value;this._loaded+=s.byteLength}}catch(t){o.e(t)}finally{o.f()}this._requests=[],this._headersReady=Promise.resolve(),e._fullRequestReader=this,this.onProgress=null}),[{key:"_enqueue",value:function(t){this._done||(this._requests.length>0?this._requests.shift().resolve({value:t,done:!1}):this._queuedChunks.push(t),this._loaded+=t.byteLength)}},{key:"headersReady",get:function(){return this._headersReady}},{key:"filename",get:function(){return this._filename}},{key:"isRangeSupported",get:function(){return this._stream._isRangeSupported}},{key:"isStreamingSupported",get:function(){return this._stream._isStreamingSupported}},{key:"contentLength",get:function(){return this._stream._contentLength}},{key:"read",value:(t=yc(vc().mark((function t(){var e,r;return vc().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!(this._queuedChunks.length>0)){t.next=3;break}return e=this._queuedChunks.shift(),t.abrupt("return",{value:e,done:!1});case 3:if(!this._done){t.next=5;break}return t.abrupt("return",{value:void 0,done:!0});case 5:return r=Promise.withResolvers(),this._requests.push(r),t.abrupt("return",r.promise);case 8:case"end":return t.stop()}}),t,this)}))),function(){return t.apply(this,arguments)})},{key:"cancel",value:function(t){this._done=!0;var e,r=gc(this._requests);try{for(r.s();!(e=r.n()).done;)e.value.resolve({value:void 0,done:!0})}catch(t){r.e(t)}finally{r.f()}this._requests.length=0}},{key:"progressiveDone",value:function(){this._done||(this._done=!0)}}]);var t}(),Ec=function(){return kc((function t(e,r,n){bc(this,t),this._stream=e,this._begin=r,this._end=n,this._queuedChunk=null,this._requests=[],this._done=!1,this.onProgress=null}),[{key:"_enqueue",value:function(t){if(!this._done){if(0===this._requests.length)this._queuedChunk=t;else{this._requests.shift().resolve({value:t,done:!1});var e,r=gc(this._requests);try{for(r.s();!(e=r.n()).done;)e.value.resolve({value:void 0,done:!0})}catch(t){r.e(t)}finally{r.f()}this._requests.length=0}this._done=!0,this._stream._removeRangeReader(this)}}},{key:"isStreamingSupported",get:function(){return!1}},{key:"read",value:(t=yc(vc().mark((function t(){var e,r;return vc().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this._queuedChunk){t.next=4;break}return e=this._queuedChunk,this._queuedChunk=null,t.abrupt("return",{value:e,done:!1});case 4:if(!this._done){t.next=6;break}return t.abrupt("return",{value:void 0,done:!0});case 6:return r=Promise.withResolvers(),this._requests.push(r),t.abrupt("return",r.promise);case 9:case"end":return t.stop()}}),t,this)}))),function(){return t.apply(this,arguments)})},{key:"cancel",value:function(t){this._done=!0;var e,r=gc(this._requests);try{for(r.s();!(e=r.n()).done;)e.value.resolve({value:void 0,done:!0})}catch(t){r.e(t)}finally{r.f()}this._requests.length=0,this._stream._removeRangeReader(this)}}]);var t}();function Sc(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,i,a,o,s=[],u=!0,c=!1;try{if(a=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=a.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw i}}return s}}(t,e)||function(t,e){if(t){if("string"==typeof t)return Oc(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Oc(t,e):void 0}}(t,e)||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.")}()}function Oc(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;P(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:M(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function Ic(t,e,r,n,i,a,o){try{var s=t[a](o),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function Rc(t){return function(){var e=this,r=arguments;return new Promise((function(n,i){var a=t.apply(e,r);function o(t){Ic(a,n,i,o,s,"next",t)}function s(t){Ic(a,n,i,o,s,"throw",t)}o(void 0)}))}}function Fc(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}(this._rangeRequestReaders.slice(0));try{for(n.s();!(r=n.n()).done;)r.value.cancel(t)}catch(t){n.e(t)}finally{n.f()}}}])}(),zc=function(){return Wc((function t(e){var r=this;Dc(this,t),this._stream=e,this._reader=null,this._loaded=0,this._filename=null;var n=e.source;this._withCredentials=n.withCredentials||!1,this._contentLength=n.length,this._headersCapability=Promise.withResolvers(),this._disableRange=n.disableRange||!1,this._rangeChunkSize=n.rangeChunkSize,this._rangeChunkSize||this._disableRange||(this._disableRange=!0),this._abortController=new AbortController,this._isStreamingSupported=!n.disableStream,this._isRangeSupported=!n.disableRange;var i=new Headers(e.headers),a=n.url;fetch(a,Gc(i,this._withCredentials,this._abortController)).then((function(t){if(!Cc(t.status))throw Mc(t.status,a);r._reader=t.body.getReader(),r._headersCapability.resolve();var n=t.headers,i=Pc({responseHeaders:n,isHttp:e.isHttp,rangeChunkSize:r._rangeChunkSize,disableRange:r._disableRange}),o=i.allowRangeRequests,s=i.suggestedLength;r._isRangeSupported=o,r._contentLength=s||r._contentLength,r._filename=Lc(n),!r._isStreamingSupported&&r._isRangeSupported&&r.cancel(new Y("Streaming is disabled."))})).catch(this._headersCapability.reject),this.onProgress=null}),[{key:"headersReady",get:function(){return this._headersCapability.promise}},{key:"filename",get:function(){return this._filename}},{key:"contentLength",get:function(){return this._contentLength}},{key:"isRangeSupported",get:function(){return this._isRangeSupported}},{key:"isStreamingSupported",get:function(){return this._isStreamingSupported}},{key:"read",value:(t=Rc(jc().mark((function t(){var e,r,n,i;return jc().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this._headersCapability.promise;case 2:return t.next=4,this._reader.read();case 4:if(r=t.sent,n=r.value,!(i=r.done)){t.next=9;break}return t.abrupt("return",{value:n,done:i});case 9:return this._loaded+=n.byteLength,null===(e=this.onProgress)||void 0===e||e.call(this,{loaded:this._loaded,total:this._contentLength}),t.abrupt("return",{value:Hc(n),done:!1});case 12:case"end":return t.stop()}}),t,this)}))),function(){return t.apply(this,arguments)})},{key:"cancel",value:function(t){var e;null===(e=this._reader)||void 0===e||e.cancel(t),this._abortController.abort()}}]);var t}(),Vc=function(){return Wc((function t(e,r,n){var i=this;Dc(this,t),this._stream=e,this._reader=null,this._loaded=0;var a=e.source;this._withCredentials=a.withCredentials||!1,this._readCapability=Promise.withResolvers(),this._isStreamingSupported=!a.disableStream,this._abortController=new AbortController;var o=new Headers(e.headers);o.append("Range","bytes=".concat(r,"-").concat(n-1));var s=a.url;fetch(s,Gc(o,this._withCredentials,this._abortController)).then((function(t){if(!Cc(t.status))throw Mc(t.status,s);i._readCapability.resolve(),i._reader=t.body.getReader()})).catch(this._readCapability.reject),this.onProgress=null}),[{key:"isStreamingSupported",get:function(){return this._isStreamingSupported}},{key:"read",value:(t=Rc(jc().mark((function t(){var e,r,n,i;return jc().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this._readCapability.promise;case 2:return t.next=4,this._reader.read();case 4:if(r=t.sent,n=r.value,!(i=r.done)){t.next=9;break}return t.abrupt("return",{value:n,done:i});case 9:return this._loaded+=n.byteLength,null===(e=this.onProgress)||void 0===e||e.call(this,{loaded:this._loaded}),t.abrupt("return",{value:Hc(n),done:!1});case 12:case"end":return t.stop()}}),t,this)}))),function(){return t.apply(this,arguments)})},{key:"cancel",value:function(t){var e;null===(e=this._reader)||void 0===e||e.cancel(t),this._abortController.abort()}}]);var t}();function qc(){qc=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,i=Object.defineProperty||function(t,e,r){t[e]=r.value},a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",s=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function c(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch(t){c=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var a=e&&e.prototype instanceof g?e:g,o=Object.create(a.prototype),s=new L(n||[]);return i(o,"_invoke",{value:S(t,r,s)}),o}function h(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var f="suspendedStart",d="suspendedYield",v="executing",p="completed",y={};function g(){}function m(){}function b(){}var w={};c(w,o,(function(){return this}));var k=Object.getPrototypeOf,x=k&&k(k(M([])));x&&x!==r&&n.call(x,o)&&(w=x);var A=b.prototype=g.prototype=Object.create(w);function _(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function E(t,e){function r(i,a,o,s){var u=h(t[i],t,a);if("throw"!==u.type){var c=u.arg,l=c.value;return l&&"object"==typeof l&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,o,s)}),(function(t){r("throw",t,o,s)})):e.resolve(l).then((function(t){c.value=t,o(c)}),(function(t){return r("throw",t,o,s)}))}s(u.arg)}var a;i(this,"_invoke",{value:function(t,n){function i(){return new e((function(e,i){r(t,n,e,i)}))}return a=a?a.then(i,i):i()}})}function S(e,r,n){var i=f;return function(a,o){if(i===v)throw Error("Generator is already running");if(i===p){if("throw"===a)throw o;return{value:t,done:!0}}for(n.method=a,n.arg=o;;){var s=n.delegate;if(s){var u=O(s,n);if(u){if(u===y)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===f)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=v;var c=h(e,r,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===y)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function O(e,r){var n=r.method,i=e.iterator[n];if(i===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,O(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=h(i,e.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,y;var o=a.arg;return o?o.done?(r[e.resultName]=o.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):o:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function T(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function M(e){if(e||""===e){var r=e[o];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function r(){for(;++i=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;P(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:M(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function Yc(t,e,r,n,i,a,o){try{var s=t[a](o),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function Xc(t){return function(){var e=this,r=arguments;return new Promise((function(n,i){var a=t.apply(e,r);function o(t){Yc(a,n,i,o,s,"next",t)}function s(t){Yc(a,n,i,o,s,"throw",t)}o(void 0)}))}}function Kc(t,e){return Jc(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,i,a,o,s=[],u=!0,c=!1;try{if(a=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=a.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw i}}return s}}(t,e)||Zc(t,e)||Qc()}function Qc(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function Jc(t){if(Array.isArray(t))return t}function $c(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=Zc(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Zc(t,e){if(t){if("string"==typeof t)return tl(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?tl(t,e):void 0}}function tl(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=2&&r.onHeadersReceived&&(r.onHeadersReceived(),delete r.onHeadersReceived),4===n.readyState&&t in this.pendingRequests)if(delete this.pendingRequests[t],0===n.status&&this.isHttp){var i;null===(i=r.onError)||void 0===i||i.call(r,n.status)}else{var a=n.status||200;if(200===a&&206===r.expectedStatus||a===r.expectedStatus){var o=function(t){var e=t.response;return"string"!=typeof e?e:K(e).buffer}(n);if(206===a){var s=n.getResponseHeader("Content-Range"),u=/bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(s);r.onDone({begin:parseInt(u[1],10),chunk:o})}else if(o)r.onDone({begin:0,chunk:o});else{var c;null===(c=r.onError)||void 0===c||c.call(r,n.status)}}else{var l;null===(l=r.onError)||void 0===l||l.call(r,n.status)}}}}},{key:"getRequestXhr",value:function(t){return this.pendingRequests[t].xhr}},{key:"isPendingRequest",value:function(t){return t in this.pendingRequests}},{key:"abortRequest",value:function(t){var e=this.pendingRequests[t].xhr;delete this.pendingRequests[t],e.abort()}}])}(),ol=function(){return nl((function t(e){el(this,t),this._source=e,this._manager=new al(e),this._rangeChunkSize=e.rangeChunkSize,this._fullRequestReader=null,this._rangeRequestReaders=[]}),[{key:"_onRangeRequestReaderClosed",value:function(t){var e=this._rangeRequestReaders.indexOf(t);e>=0&&this._rangeRequestReaders.splice(e,1)}},{key:"getFullReader",value:function(){return D(!this._fullRequestReader,"PDFNetworkStream.getFullReader can only be called once."),this._fullRequestReader=new sl(this._manager,this._source),this._fullRequestReader}},{key:"getRangeReader",value:function(t,e){var r=new ul(this._manager,t,e);return r.onClosed=this._onRangeRequestReaderClosed.bind(this),this._rangeRequestReaders.push(r),r}},{key:"cancelAllRequests",value:function(t){var e;null===(e=this._fullRequestReader)||void 0===e||e.cancel(t);var r,n=$c(this._rangeRequestReaders.slice(0));try{for(n.s();!(r=n.n()).done;)r.value.cancel(t)}catch(t){n.e(t)}finally{n.f()}}}])}(),sl=function(){return nl((function t(e,r){el(this,t),this._manager=e;var n={onHeadersReceived:this._onHeadersReceived.bind(this),onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)};this._url=r.url,this._fullRequestId=e.requestFull(n),this._headersCapability=Promise.withResolvers(),this._disableRange=r.disableRange||!1,this._contentLength=r.length,this._rangeChunkSize=r.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}),[{key:"_onHeadersReceived",value:function(){var t=this._fullRequestId,e=this._manager.getRequestXhr(t),r=new Headers(e.getAllResponseHeaders().trim().split(/[\\r\\n]+/).map((function(t){var e=function(t){return Jc(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||Zc(t)||Qc()}(t.split(": "));return[e[0],e.slice(1).join(": ")]}))),n=Pc({responseHeaders:r,isHttp:this._manager.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange}),i=n.allowRangeRequests,a=n.suggestedLength;i&&(this._isRangeSupported=!0),this._contentLength=a||this._contentLength,this._filename=Lc(r),this._isRangeSupported&&this._manager.abortRequest(t),this._headersCapability.resolve()}},{key:"_onDone",value:function(t){if(t&&(this._requests.length>0?this._requests.shift().resolve({value:t.chunk,done:!1}):this._cachedChunks.push(t.chunk)),this._done=!0,!(this._cachedChunks.length>0)){var e,r=$c(this._requests);try{for(r.s();!(e=r.n()).done;)e.value.resolve({value:void 0,done:!0})}catch(t){r.e(t)}finally{r.f()}this._requests.length=0}}},{key:"_onError",value:function(t){this._storedError=Mc(t,this._url),this._headersCapability.reject(this._storedError);var e,r=$c(this._requests);try{for(r.s();!(e=r.n()).done;)e.value.reject(this._storedError)}catch(t){r.e(t)}finally{r.f()}this._requests.length=0,this._cachedChunks.length=0}},{key:"_onProgress",value:function(t){var e;null===(e=this.onProgress)||void 0===e||e.call(this,{loaded:t.loaded,total:t.lengthComputable?t.total:this._contentLength})}},{key:"filename",get:function(){return this._filename}},{key:"isRangeSupported",get:function(){return this._isRangeSupported}},{key:"isStreamingSupported",get:function(){return this._isStreamingSupported}},{key:"contentLength",get:function(){return this._contentLength}},{key:"headersReady",get:function(){return this._headersCapability.promise}},{key:"read",value:(t=Xc(qc().mark((function t(){var e,r;return qc().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this._storedError){t.next=2;break}throw this._storedError;case 2:if(!(this._cachedChunks.length>0)){t.next=5;break}return e=this._cachedChunks.shift(),t.abrupt("return",{value:e,done:!1});case 5:if(!this._done){t.next=7;break}return t.abrupt("return",{value:void 0,done:!0});case 7:return r=Promise.withResolvers(),this._requests.push(r),t.abrupt("return",r.promise);case 10:case"end":return t.stop()}}),t,this)}))),function(){return t.apply(this,arguments)})},{key:"cancel",value:function(t){this._done=!0,this._headersCapability.reject(t);var e,r=$c(this._requests);try{for(r.s();!(e=r.n()).done;)e.value.resolve({value:void 0,done:!0})}catch(t){r.e(t)}finally{r.f()}this._requests.length=0,this._manager.isPendingRequest(this._fullRequestId)&&this._manager.abortRequest(this._fullRequestId),this._fullRequestReader=null}}]);var t}(),ul=function(){return nl((function t(e,r,n){el(this,t),this._manager=e;var i={onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)};this._url=e.url,this._requestId=e.requestRange(r,n,i),this._requests=[],this._queuedChunk=null,this._done=!1,this._storedError=void 0,this.onProgress=null,this.onClosed=null}),[{key:"_close",value:function(){var t;null===(t=this.onClosed)||void 0===t||t.call(this,this)}},{key:"_onDone",value:function(t){var e=t.chunk;this._requests.length>0?this._requests.shift().resolve({value:e,done:!1}):this._queuedChunk=e,this._done=!0;var r,n=$c(this._requests);try{for(n.s();!(r=n.n()).done;)r.value.resolve({value:void 0,done:!0})}catch(t){n.e(t)}finally{n.f()}this._requests.length=0,this._close()}},{key:"_onError",value:function(t){this._storedError=Mc(t,this._url);var e,r=$c(this._requests);try{for(r.s();!(e=r.n()).done;)e.value.reject(this._storedError)}catch(t){r.e(t)}finally{r.f()}this._requests.length=0,this._queuedChunk=null}},{key:"_onProgress",value:function(t){var e;this.isStreamingSupported||null===(e=this.onProgress)||void 0===e||e.call(this,{loaded:t.loaded})}},{key:"isStreamingSupported",get:function(){return!1}},{key:"read",value:(t=Xc(qc().mark((function t(){var e,r;return qc().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this._storedError){t.next=2;break}throw this._storedError;case 2:if(null===this._queuedChunk){t.next=6;break}return e=this._queuedChunk,this._queuedChunk=null,t.abrupt("return",{value:e,done:!1});case 6:if(!this._done){t.next=8;break}return t.abrupt("return",{value:void 0,done:!0});case 8:return r=Promise.withResolvers(),this._requests.push(r),t.abrupt("return",r.promise);case 11:case"end":return t.stop()}}),t,this)}))),function(){return t.apply(this,arguments)})},{key:"cancel",value:function(t){this._done=!0;var e,r=$c(this._requests);try{for(r.s();!(e=r.n()).done;)e.value.resolve({value:void 0,done:!0})}catch(t){r.e(t)}finally{r.f()}this._requests.length=0,this._manager.isPendingRequest(this._requestId)&&this._manager.abortRequest(this._requestId),this._close()}}]);var t}();function cl(t,e,r){return e=hl(e),function(t,e){if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,ll()?Reflect.construct(e,r||[],hl(t).constructor):e.apply(t,r))}function ll(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(ll=function(){return!!t})()}function hl(t){return hl=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},hl(t)}function fl(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&dl(t,e)}function dl(t,e){return dl=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},dl(t,e)}function vl(){vl=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,i=Object.defineProperty||function(t,e,r){t[e]=r.value},a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",s=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function c(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch(t){c=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var a=e&&e.prototype instanceof g?e:g,o=Object.create(a.prototype),s=new L(n||[]);return i(o,"_invoke",{value:S(t,r,s)}),o}function h(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var f="suspendedStart",d="suspendedYield",v="executing",p="completed",y={};function g(){}function m(){}function b(){}var w={};c(w,o,(function(){return this}));var k=Object.getPrototypeOf,x=k&&k(k(M([])));x&&x!==r&&n.call(x,o)&&(w=x);var A=b.prototype=g.prototype=Object.create(w);function _(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function E(t,e){function r(i,a,o,s){var u=h(t[i],t,a);if("throw"!==u.type){var c=u.arg,l=c.value;return l&&"object"==typeof l&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,o,s)}),(function(t){r("throw",t,o,s)})):e.resolve(l).then((function(t){c.value=t,o(c)}),(function(t){return r("throw",t,o,s)}))}s(u.arg)}var a;i(this,"_invoke",{value:function(t,n){function i(){return new e((function(e,i){r(t,n,e,i)}))}return a=a?a.then(i,i):i()}})}function S(e,r,n){var i=f;return function(a,o){if(i===v)throw Error("Generator is already running");if(i===p){if("throw"===a)throw o;return{value:t,done:!0}}for(n.method=a,n.arg=o;;){var s=n.delegate;if(s){var u=O(s,n);if(u){if(u===y)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===f)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=v;var c=h(e,r,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===y)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function O(e,r){var n=r.method,i=e.iterator[n];if(i===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,O(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=h(i,e.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,y;var o=a.arg;return o?o.done?(r[e.resultName]=o.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):o:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function T(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function M(e){if(e||""===e){var r=e[o];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function r(){for(;++i=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;P(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:M(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function pl(t,e,r,n,i,a,o){try{var s=t[a](o),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function yl(t){return function(){var e=this,r=arguments;return new Promise((function(n,i){var a=t.apply(e,r);function o(t){pl(a,n,i,o,s,"next",t)}function s(t){pl(a,n,i,o,s,"throw",t)}o(void 0)}))}}function gl(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}(this._rangeRequestReaders.slice(0));try{for(n.s();!(r=n.n()).done;)r.value.cancel(t)}catch(t){n.e(t)}finally{n.f()}}}])}(),Sl=function(){return wl((function t(e){ml(this,t),this._url=e.url,this._done=!1,this._storedError=null,this.onProgress=null;var r=e.source;this._contentLength=r.length,this._loaded=0,this._filename=null,this._disableRange=r.disableRange||!1,this._rangeChunkSize=r.rangeChunkSize,this._rangeChunkSize||this._disableRange||(this._disableRange=!0),this._isStreamingSupported=!r.disableStream,this._isRangeSupported=!r.disableRange,this._readableStream=null,this._readCapability=Promise.withResolvers(),this._headersCapability=Promise.withResolvers()}),[{key:"headersReady",get:function(){return this._headersCapability.promise}},{key:"filename",get:function(){return this._filename}},{key:"contentLength",get:function(){return this._contentLength}},{key:"isRangeSupported",get:function(){return this._isRangeSupported}},{key:"isStreamingSupported",get:function(){return this._isStreamingSupported}},{key:"read",value:(t=yl(vl().mark((function t(){var e,r,n;return vl().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this._readCapability.promise;case 2:if(!this._done){t.next=4;break}return t.abrupt("return",{value:void 0,done:!0});case 4:if(!this._storedError){t.next=6;break}throw this._storedError;case 6:if(null!==(r=this._readableStream.read())){t.next=10;break}return this._readCapability=Promise.withResolvers(),t.abrupt("return",this.read());case 10:return this._loaded+=r.length,null===(e=this.onProgress)||void 0===e||e.call(this,{loaded:this._loaded,total:this._contentLength}),n=new Uint8Array(r).buffer,t.abrupt("return",{value:n,done:!1});case 14:case"end":return t.stop()}}),t,this)}))),function(){return t.apply(this,arguments)})},{key:"cancel",value:function(t){this._readableStream?this._readableStream.destroy(t):this._error(t)}},{key:"_error",value:function(t){this._storedError=t,this._readCapability.resolve()}},{key:"_setReadableStream",value:function(t){var e=this;this._readableStream=t,t.on("readable",(function(){e._readCapability.resolve()})),t.on("end",(function(){t.destroy(),e._done=!0,e._readCapability.resolve()})),t.on("error",(function(t){e._error(t)})),!this._isStreamingSupported&&this._isRangeSupported&&this._error(new Y("streaming is disabled")),this._storedError&&this._readableStream.destroy(this._storedError)}}]);var t}(),Ol=function(){return wl((function t(e){ml(this,t),this._url=e.url,this._done=!1,this._storedError=null,this.onProgress=null,this._loaded=0,this._readableStream=null,this._readCapability=Promise.withResolvers();var r=e.source;this._isStreamingSupported=!r.disableStream}),[{key:"isStreamingSupported",get:function(){return this._isStreamingSupported}},{key:"read",value:(t=yl(vl().mark((function t(){var e,r,n;return vl().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this._readCapability.promise;case 2:if(!this._done){t.next=4;break}return t.abrupt("return",{value:void 0,done:!0});case 4:if(!this._storedError){t.next=6;break}throw this._storedError;case 6:if(null!==(r=this._readableStream.read())){t.next=10;break}return this._readCapability=Promise.withResolvers(),t.abrupt("return",this.read());case 10:return this._loaded+=r.length,null===(e=this.onProgress)||void 0===e||e.call(this,{loaded:this._loaded}),n=new Uint8Array(r).buffer,t.abrupt("return",{value:n,done:!1});case 14:case"end":return t.stop()}}),t,this)}))),function(){return t.apply(this,arguments)})},{key:"cancel",value:function(t){this._readableStream?this._readableStream.destroy(t):this._error(t)}},{key:"_error",value:function(t){this._storedError=t,this._readCapability.resolve()}},{key:"_setReadableStream",value:function(t){var e=this;this._readableStream=t,t.on("readable",(function(){e._readCapability.resolve()})),t.on("end",(function(){t.destroy(),e._done=!0,e._readCapability.resolve()})),t.on("error",(function(t){e._error(t)})),this._storedError&&this._readableStream.destroy(this._storedError)}}]);var t}(),Tl=function(t){function e(t){var r;ml(this,e),r=cl(this,e,[t]);var n=Object.fromEntries(t.headers);return r._request=Al(r._url,n,(function(e){if(404===e.statusCode){var n=new z('Missing PDF "'.concat(r._url,'".'));return r._storedError=n,void r._headersCapability.reject(n)}r._headersCapability.resolve(),r._setReadableStream(e);var i=new Headers(r._readableStream.headers),a=Pc({responseHeaders:i,isHttp:t.isHttp,rangeChunkSize:r._rangeChunkSize,disableRange:r._disableRange}),o=a.allowRangeRequests,s=a.suggestedLength;r._isRangeSupported=o,r._contentLength=s||r._contentLength,r._filename=Lc(i)})),r._request.on("error",(function(t){r._storedError=t,r._headersCapability.reject(t)})),r._request.end(),r}return fl(e,Sl),wl(e)}(),Pl=function(t){function e(t,r,n){var i;ml(this,e),i=cl(this,e,[t]);var a=Object.fromEntries(t.headers);return a.Range="bytes=".concat(r,"-").concat(n-1),i._request=Al(i._url,a,(function(t){if(404!==t.statusCode)i._setReadableStream(t);else{var e=new z('Missing PDF "'.concat(i._url,'".'));i._storedError=e}})),i._request.on("error",(function(t){i._storedError=t})),i._request.end(),i}return fl(e,Ol),wl(e)}(),Ll=function(t){function e(t){var r;ml(this,e),r=cl(this,e,[t]);var n=cs.get("fs");return n.promises.lstat(r._url).then((function(t){r._contentLength=t.size,r._setReadableStream(n.createReadStream(r._url)),r._headersCapability.resolve()}),(function(t){"ENOENT"===t.code&&(t=new z('Missing PDF "'.concat(r._url,'".'))),r._storedError=t,r._headersCapability.reject(t)})),r}return fl(e,Sl),wl(e)}(),Ml=function(t){function e(t,r,n){var i;ml(this,e),i=cl(this,e,[t]);var a=cs.get("fs");return i._setReadableStream(a.createReadStream(i._url,{start:r,end:n-1})),i}return fl(e,Ol),wl(e)}();function Cl(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return jl(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?jl(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function jl(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r0)){Bl(t,this,yh)._.clear();var e,r=Cl(Bl(t,this,gh)._.values());try{for(r.s();!(e=r.n()).done;)e.value.canvas.remove()}catch(t){r.e(t)}finally{r.f()}Bl(t,this,gh)._.clear()}}}])}();function ch(t){var e,r;if(!Nl(Vl,this)){null!==(r=(e=Nl(Xl,this)).ctx)&&void 0!==r||(e.ctx=fh.call(_l,Nl(Yl,this)));var n,i=Nl(ih,this),a=Nl(rh,this),o=Cl(t);try{for(o.s();!(n=o.n()).done;){var s=n.value;if(i.length>1e5)return R("Ignoring additional textDivs for performance reasons."),void Wl(Vl,this,!0);if(void 0!==s.str)a.push(s.str),Bl(sh,this,lh).call(this,s);else if("beginMarkedContentProps"===s.type||"beginMarkedContent"===s.type){var u=Nl(zl,this);Wl(zl,this,document.createElement("span")),Nl(zl,this).classList.add("markedContent"),null!==s.id&&Nl(zl,this).setAttribute("id","".concat(s.id)),u.append(Nl(zl,this))}else"endMarkedContent"===s.type&&Wl(zl,this,Nl(zl,this).parentNode)}}catch(t){o.e(t)}finally{o.f()}}}function lh(t){var e=document.createElement("span"),r={angle:0,canvasWidth:0,hasText:""!==t.str,hasEOL:t.hasEOL,fontSize:0};Nl(ih,this).push(e);var n=Z.transform(Nl(oh,this),t.transform),i=Math.atan2(n[1],n[0]),a=Nl(eh,this)[t.fontName];a.vertical&&(i+=Math.PI/2);var o=Nl(ql,this)&&a.fontSubstitution||a.fontFamily;o=_l.fontFamilyMap.get(o)||o;var s,u,c=Math.hypot(n[2],n[3]),l=c*ph.call(_l,o,Nl(Yl,this));0===i?(s=n[4],u=n[5]-l):(s=n[4]+l*Math.sin(i),u=n[5]-l*Math.cos(i));var h="calc(var(--scale-factor)*",f=e.style;Nl(zl,this)===Nl($l,this)?(f.left="".concat((100*s/Nl(Ql,this)).toFixed(2),"%"),f.top="".concat((100*u/Nl(Kl,this)).toFixed(2),"%")):(f.left="".concat(h).concat(s.toFixed(2),"px)"),f.top="".concat(h).concat(u.toFixed(2),"px)")),f.fontSize="".concat(h).concat((bh._*c).toFixed(2),"px)"),f.fontFamily=o,r.fontSize=c,e.setAttribute("role","presentation"),e.textContent=t.str,e.dir=t.dir,Nl(ql,this)&&(e.dataset.fontName=a.fontSubstitutionLoadedName||t.fontName),0!==i&&(r.angle=i*(180/Math.PI));var d=!1;if(t.str.length>1)d=!0;else if(" "!==t.str&&t.transform[0]!==t.transform[3]){var v=Math.abs(t.transform[0]),p=Math.abs(t.transform[3]);v!==p&&Math.max(v,p)/Math.min(v,p)>1.5&&(d=!0)}if(d&&(r.canvasWidth=a.vertical?t.height:t.width),Nl(ah,this).set(e,r),Nl(Xl,this).div=e,Nl(Xl,this).properties=r,Bl(sh,this,hh).call(this,Nl(Xl,this)),r.hasText&&Nl(zl,this).append(e),r.hasEOL){var y=document.createElement("br");y.setAttribute("role","presentation"),Nl(zl,this).append(y)}}function hh(t){var e=t.div,r=t.properties,n=t.ctx,i=e.style,a="";if(bh._>1&&(a="scale(".concat(1/bh._,")")),0!==r.canvasWidth&&r.hasText){var o=i.fontFamily,s=r.canvasWidth,u=r.fontSize;dh.call(_l,n,u*Nl(th,this),o);var c=n.measureText(e.textContent).width;c>0&&(a="scaleX(".concat(s*Nl(th,this)/c,") ").concat(a))}0!==r.angle&&(a="rotate(".concat(r.angle,"deg) ").concat(a)),a.length>0&&(i.transform=a)}function fh(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=Bl(_l,this,gh)._.get(t||(t=""));if(!e){var r=document.createElement("canvas");r.className="hiddenCanvasElement",r.lang=t,document.body.append(r),e=r.getContext("2d",{alpha:!1,willReadFrequently:!0}),Bl(_l,this,gh)._.set(t,e),Bl(_l,this,mh)._.set(e,{size:0,family:""})}return e}function dh(t,e,r){var n=Bl(_l,this,mh)._.get(t);e===n.size&&r===n.family||(t.font="".concat(e,"px ").concat(r),n.size=e,n.family=r)}function vh(){if(null===Bl(_l,this,bh)._){var t=document.createElement("div");t.style.opacity=0,t.style.lineHeight=1,t.style.fontSize="1px",t.style.position="absolute",t.textContent="X",document.body.append(t),bh._=Bl(_l,this,t.getBoundingClientRect().height),t.remove()}}function ph(t,e){var r=Bl(_l,this,yh)._.get(t);if(r)return r;var n=Bl(_l,this,fh).call(this,e);n.canvas.width=n.canvas.height=Gl,Bl(_l,this,dh).call(this,n,Gl,t);var i=n.measureText(""),a=i.fontBoundingBoxAscent,o=Math.abs(i.fontBoundingBoxDescent);if(a){var s=a/(a+o);return Bl(_l,this,yh)._.set(t,s),n.canvas.width=n.canvas.height=0,s}n.strokeStyle="red",n.clearRect(0,0,Gl,Gl),n.strokeText("g",0,0);var u=n.getImageData(0,0,Gl,Gl).data;o=0;for(var c=u.length-1-3;c>=0;c-=4)if(u[c]>0){o=Math.ceil(c/4/Gl);break}n.clearRect(0,0,Gl,Gl),n.strokeText("A",0,Gl),a=0;for(var l=0,h=(u=n.getImageData(0,0,Gl,Gl).data).length;l0){a=Gl-Math.floor(l/4/Gl);break}n.canvas.width=n.canvas.height=0;var f=a?a/(a+o):Hl;return Bl(_l,this,yh)._.set(t,f),f}_l=uh;var yh={_:new Map},gh={_:new Map},mh={_:new WeakMap},bh={_:null},wh={_:new Set};function kh(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}(n.children);try{for(u.s();!(s=u.n()).done;)e(s.value)}catch(t){u.e(t)}finally{u.f()}}}}(e),n}},{key:"shouldBuildText",value:function(t){return!("textarea"===t||"input"===t||"option"===t||"select"===t)}}])}();function Sh(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Oh(t){for(var e=1;e=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Nh(t,e){if(t){if("string"==typeof t)return Wh(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Wh(t,e):void 0}}function Wh(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;P(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:M(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function Gh(t,e,r,n,i,a,o){try{var s=t[a](o),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function Hh(t){return function(){var e=this,r=arguments;return new Promise((function(n,i){var a=t.apply(e,r);function o(t){Gh(a,n,i,o,s,"next",t)}function s(t){Gh(a,n,i,o,s,"throw",t)}o(void 0)}))}}function Uh(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function zh(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{};"string"==typeof r||r instanceof URL?r={url:r}:(r instanceof ArrayBuffer||ArrayBuffer.isView(r))&&(r={data:r});var n=new tf,i=n.docId,a=r.url?function(t){if(t instanceof URL)return t.href;try{return new URL(t,window.location).href}catch(e){if(m&&"string"==typeof t)return t}throw new Error("Invalid PDF url data: either string or URL-object is expected in the url property.")}(r.url):null,o=r.data?function(t){if(m&&"undefined"!=typeof Buffer&&t instanceof Buffer)throw new Error("Please provide binary data as \`Uint8Array\`, rather than \`Buffer\`.");if(t instanceof Uint8Array&&t.byteLength===t.buffer.byteLength)return t;if("string"==typeof t)return K(t);if(t instanceof ArrayBuffer||ArrayBuffer.isView(t)||"object"==typeof t&&!isNaN(null==t?void 0:t.length))return new Uint8Array(t);throw new Error("Invalid PDF binary data: either TypedArray, string, or array-like object is expected in the data property.")}(r.data):null,s=r.httpHeaders||null,u=!0===r.withCredentials,c=null!==(t=r.password)&&void 0!==t?t:null,l=r.range instanceof rf?r.range:null,h=Number.isInteger(r.rangeChunkSize)&&r.rangeChunkSize>0?r.rangeChunkSize:Yh,f=r.worker instanceof pf?r.worker:null,d=r.verbosity,v="string"!=typeof r.docBaseUrl||ke(r.docBaseUrl)?null:r.docBaseUrl,p="string"==typeof r.cMapUrl?r.cMapUrl:null,y=!1!==r.cMapPacked,g=r.CMapReaderFactory||Kh,b="string"==typeof r.standardFontDataUrl?r.standardFontDataUrl:null,w=r.StandardFontDataFactory||Jh,k=!0!==r.stopAtErrors,x=Number.isInteger(r.maxImageSize)&&r.maxImageSize>-1?r.maxImageSize:-1,A=!1!==r.isEvalSupported,_="boolean"==typeof r.isOffscreenCanvasSupported?r.isOffscreenCanvasSupported:!m,E=Number.isInteger(r.canvasMaxAreaInBytes)?r.canvasMaxAreaInBytes:-1,S="boolean"==typeof r.disableFontFace?r.disableFontFace:m,O=!0===r.fontExtraProperties,T=!0===r.enableXfa,P=r.ownerDocument||globalThis.document,L=!0===r.disableRange,M=!0===r.disableStream,j=!0===r.disableAutoFetch,I=!0===r.pdfBug,R=r.CanvasFactory||Xh,F=r.FilterFactory||Qh,D=!0===r.enableHWA,N=l?l.length:null!==(e=r.length)&&void 0!==e?e:NaN,W="boolean"==typeof r.useSystemFonts?r.useSystemFonts:!m&&!S,B="boolean"==typeof r.useWorkerFetch?r.useWorkerFetch:g===ye&&w===ge&&p&&b&&Oe(p,document.baseURI)&&Oe(b,document.baseURI);r.canvasFactory&&Pe("\`canvasFactory\`-instance option, please use \`CanvasFactory\` instead."),r.filterFactory&&Pe("\`filterFactory\`-instance option, please use \`FilterFactory\` instead."),C(d);var G={canvasFactory:new R({ownerDocument:P,enableHWA:D}),filterFactory:new F({docId:i,ownerDocument:P}),cMapReaderFactory:B?null:new g({baseUrl:p,isCompressed:y}),standardFontDataFactory:B?null:new w({baseUrl:b})};if(!f){var H={verbosity:d,port:mu.workerPort};f=H.port?pf.fromPort(H):new pf(H),n._worker=f}var U={docId:i,apiVersion:"4.7.0",data:o,password:c,disableAutoFetch:j,rangeChunkSize:h,length:N,docBaseUrl:v,enableXfa:T,evaluatorOptions:{maxImageSize:x,disableFontFace:S,ignoreErrors:k,isEvalSupported:A,isOffscreenCanvasSupported:_,canvasMaxAreaInBytes:E,fontExtraProperties:O,useSystemFonts:W,cMapUrl:B?p:null,standardFontDataUrl:B?b:null}},z={disableFontFace:S,fontExtraProperties:O,ownerDocument:P,pdfBug:I,styleElement:null,loadingParams:{disableAutoFetch:j,enableXfa:T}};return f.promise.then((function(){if(n.destroyed)throw new Error("Loading aborted");if(f.destroyed)throw new Error("Worker was destroyed");var t,e=f.messageHandler.sendWithPromise("GetDocRequest",U,o?[o.buffer]:null);if(l)t=new Ac(l,{disableRange:L,disableStream:M});else if(!o){if(!a)throw new Error("getDocument - no \`url\` parameter provided.");var r;r=m?"undefined"!=typeof fetch&&"undefined"!=typeof Response&&"body"in Response.prototype&&Oe(a)?Uc:El:Oe(a)?Uc:ol,t=new r({url:a,length:N,httpHeaders:s,withCredentials:u,rangeChunkSize:h,disableRange:L,disableStream:M})}return e.then((function(e){if(n.destroyed)throw new Error("Loading aborted");if(f.destroyed)throw new Error("Worker was destroyed");var r=new Tu(i,e,f.port),a=new Of(r,n,t,z,G);n._transport=a,r.send("Ready",null)}))})).catch(n._capability.reject),n}function Zh(t){return"object"==typeof t&&Number.isInteger(null==t?void 0:t.num)&&t.num>=0&&Number.isInteger(null==t?void 0:t.gen)&&t.gen>=0}var tf=function(){return Vh((function t(){var e,r;Uh(this,t),this._capability=Promise.withResolvers(),this._transport=null,this._worker=null,this.docId="d".concat((ef._=(e=ef._,r=e++,e),r)),this.destroyed=!1,this.onPassword=null,this.onProgress=null}),[{key:"promise",get:function(){return this._capability.promise}},{key:"destroy",value:(t=Hh(Bh().mark((function t(){var e,r,n;return Bh().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this.destroyed=!0,t.prev=1,null!==(e=this._worker)&&void 0!==e&&e.port&&(this._worker._pendingDestroy=!0),t.next=5,null===(r=this._transport)||void 0===r?void 0:r.destroy();case 5:t.next=11;break;case 7:throw t.prev=7,t.t0=t.catch(1),null!==(n=this._worker)&&void 0!==n&&n.port&&delete this._worker._pendingDestroy,t.t0;case 11:this._transport=null,this._worker&&(this._worker.destroy(),this._worker=null);case 13:case"end":return t.stop()}}),t,this,[[1,7]])}))),function(){return t.apply(this,arguments)})}]);var t}(),ef={_:0},rf=function(){return Vh((function t(e,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;Uh(this,t),this.length=e,this.initialData=r,this.progressiveDone=n,this.contentDispositionFilename=i,this._rangeListeners=[],this._progressListeners=[],this._progressiveReadListeners=[],this._progressiveDoneListeners=[],this._readyCapability=Promise.withResolvers()}),[{key:"addRangeListener",value:function(t){this._rangeListeners.push(t)}},{key:"addProgressListener",value:function(t){this._progressListeners.push(t)}},{key:"addProgressiveReadListener",value:function(t){this._progressiveReadListeners.push(t)}},{key:"addProgressiveDoneListener",value:function(t){this._progressiveDoneListeners.push(t)}},{key:"onDataRange",value:function(t,e){var r,n=Dh(this._rangeListeners);try{for(n.s();!(r=n.n()).done;)(0,r.value)(t,e)}catch(t){n.e(t)}finally{n.f()}}},{key:"onDataProgress",value:function(t,e){var r=this;this._readyCapability.promise.then((function(){var n,i=Dh(r._progressListeners);try{for(i.s();!(n=i.n()).done;)(0,n.value)(t,e)}catch(t){i.e(t)}finally{i.f()}}))}},{key:"onDataProgressiveRead",value:function(t){var e=this;this._readyCapability.promise.then((function(){var r,n=Dh(e._progressiveReadListeners);try{for(n.s();!(r=n.n()).done;)(0,r.value)(t)}catch(t){n.e(t)}finally{n.f()}}))}},{key:"onDataProgressiveDone",value:function(){var t=this;this._readyCapability.promise.then((function(){var e,r=Dh(t._progressiveDoneListeners);try{for(r.s();!(e=r.n()).done;)(0,e.value)()}catch(t){r.e(t)}finally{r.f()}}))}},{key:"transportReady",value:function(){this._readyCapability.resolve()}},{key:"requestDataRange",value:function(t,e){F("Abstract method PDFDataRangeTransport.requestDataRange")}},{key:"abort",value:function(){}}])}(),nf=function(){return Vh((function t(e,r){Uh(this,t),this._pdfInfo=e,this._transport=r}),[{key:"annotationStorage",get:function(){return this._transport.annotationStorage}},{key:"canvasFactory",get:function(){return this._transport.canvasFactory}},{key:"filterFactory",get:function(){return this._transport.filterFactory}},{key:"numPages",get:function(){return this._pdfInfo.numPages}},{key:"fingerprints",get:function(){return this._pdfInfo.fingerprints}},{key:"isPureXfa",get:function(){return W(this,"isPureXfa",!!this._transport._htmlForXfa)}},{key:"allXfaHtml",get:function(){return this._transport._htmlForXfa}},{key:"getPage",value:function(t){return this._transport.getPage(t)}},{key:"getPageIndex",value:function(t){return this._transport.getPageIndex(t)}},{key:"getDestinations",value:function(){return this._transport.getDestinations()}},{key:"getDestination",value:function(t){return this._transport.getDestination(t)}},{key:"getPageLabels",value:function(){return this._transport.getPageLabels()}},{key:"getPageLayout",value:function(){return this._transport.getPageLayout()}},{key:"getPageMode",value:function(){return this._transport.getPageMode()}},{key:"getViewerPreferences",value:function(){return this._transport.getViewerPreferences()}},{key:"getOpenAction",value:function(){return this._transport.getOpenAction()}},{key:"getAttachments",value:function(){return this._transport.getAttachments()}},{key:"getJSActions",value:function(){return this._transport.getDocJSActions()}},{key:"getOutline",value:function(){return this._transport.getOutline()}},{key:"getOptionalContentConfig",value:function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).intent,e=void 0===t?"display":t,r=this._transport.getRenderingIntent(e).renderingIntent;return this._transport.getOptionalContentConfig(r)}},{key:"getPermissions",value:function(){return this._transport.getPermissions()}},{key:"getMetadata",value:function(){return this._transport.getMetadata()}},{key:"getMarkInfo",value:function(){return this._transport.getMarkInfo()}},{key:"getData",value:function(){return this._transport.getData()}},{key:"saveDocument",value:function(){return this._transport.saveDocument()}},{key:"getDownloadInfo",value:function(){return this._transport.downloadInfoCapability.promise}},{key:"cleanup",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this._transport.startCleanup(t||this.isPureXfa)}},{key:"destroy",value:function(){return this.loadingTask.destroy()}},{key:"cachedPageNumber",value:function(t){return this._transport.cachedPageNumber(t)}},{key:"loadingParams",get:function(){return this._transport.loadingParams}},{key:"loadingTask",get:function(){return this._transport.loadingTask}},{key:"getFieldObjects",value:function(){return this._transport.getFieldObjects()}},{key:"hasJSActions",value:function(){return this._transport.hasJSActions()}},{key:"getCalculationOrderIds",value:function(){return this._transport.getCalculationOrderIds()}}])}(),af=new WeakMap,of=new WeakMap,sf=new WeakSet,uf=function(){return Vh((function t(e,r,n){var i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];Uh(this,t),Mh(this,sf),Ch(this,af,null),Ch(this,of,!1),this._pageIndex=e,this._pageInfo=r,this._transport=n,this._stats=i?new Se:null,this._pdfBug=i,this.commonObjs=n.commonObjs,this.objs=new Cf,this._maybeCleanupAfterRender=!1,this._intentStates=new Map,this.destroyed=!1}),[{key:"pageNumber",get:function(){return this._pageIndex+1}},{key:"rotate",get:function(){return this._pageInfo.rotate}},{key:"ref",get:function(){return this._pageInfo.ref}},{key:"userUnit",get:function(){return this._pageInfo.userUnit}},{key:"view",get:function(){return this._pageInfo.view}},{key:"getViewport",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.scale,r=t.rotation,n=void 0===r?this.rotate:r,i=t.offsetX,a=void 0===i?0:i,o=t.offsetY,s=void 0===o?0:o,u=t.dontFlip,c=void 0!==u&&u;return new be({viewBox:this.view,scale:e,rotation:n,offsetX:a,offsetY:s,dontFlip:c})}},{key:"getAnnotations",value:function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).intent,e=void 0===t?"display":t,r=this._transport.getRenderingIntent(e).renderingIntent;return this._transport.getAnnotations(this._pageIndex,r)}},{key:"getJSActions",value:function(){return this._transport.getPageJSActions(this._pageIndex)}},{key:"filterFactory",get:function(){return this._transport.filterFactory}},{key:"isPureXfa",get:function(){return W(this,"isPureXfa",!!this._transport._htmlForXfa)}},{key:"getXfa",value:(t=Hh(Bh().mark((function t(){var e;return Bh().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",(null===(e=this._transport._htmlForXfa)||void 0===e?void 0:e.children[this._pageIndex])||null);case 1:case"end":return t.stop()}}),t,this)}))),function(){return t.apply(this,arguments)})},{key:"render",value:function(t){var e,r,n=this,i=t.canvasContext,a=t.viewport,o=t.intent,s=void 0===o?"display":o,u=t.annotationMode,c=void 0===u?x.ENABLE:u,l=t.transform,h=void 0===l?null:l,f=t.background,d=void 0===f?null:f,v=t.optionalContentConfigPromise,p=void 0===v?null:v,y=t.annotationCanvasMap,g=void 0===y?null:y,m=t.pageColors,b=void 0===m?null:m,w=t.printAnnotationStorage,k=void 0===w?null:w,A=t.isEditing,_=void 0!==A&&A;null===(e=this._stats)||void 0===e||e.time("Overall");var E=this._transport.getRenderingIntent(s,c,k,_),S=E.renderingIntent,O=E.cacheKey;Rh(of,this,!1),Fh(sf,this,lf).call(this),p||(p=this._transport.getOptionalContentConfig(S));var T=this._intentStates.get(O);T||(T=Object.create(null),this._intentStates.set(O,T)),T.streamReaderCancelTimeout&&(clearTimeout(T.streamReaderCancelTimeout),T.streamReaderCancelTimeout=null);var P,L=!!(4&S);T.displayReadyCapability||(T.displayReadyCapability=Promise.withResolvers(),T.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null},null===(P=this._stats)||void 0===P||P.time("Page Request"),this._pumpOperatorList(E));var M=function(t){var e;T.renderTasks.delete(C),(n._maybeCleanupAfterRender||L)&&Rh(of,n,!0),Fh(sf,n,cf).call(n,!L),t?(C.capability.reject(t),n._abortOperatorList({intentState:T,reason:t instanceof Error?t:new Error(t)})):C.capability.resolve(),n._stats&&(n._stats.timeEnd("Rendering"),n._stats.timeEnd("Overall"),null!==(e=globalThis.Stats)&&void 0!==e&&e.enabled&&globalThis.Stats.add(n.pageNumber,n._stats))},C=new Df({callback:M,params:{canvasContext:i,viewport:a,transform:h,background:d},objs:this.objs,commonObjs:this.commonObjs,annotationCanvasMap:g,operatorList:T.operatorList,pageIndex:this._pageIndex,canvasFactory:this._transport.canvasFactory,filterFactory:this._transport.filterFactory,useRequestAnimationFrame:!L,pdfBug:this._pdfBug,pageColors:b});((r=T).renderTasks||(r.renderTasks=new Set)).add(C);var j=C.task;return Promise.all([T.displayReadyCapability.promise,p]).then((function(t){var e,r=Lh(t,2),i=r[0],a=r[1];if(n.destroyed)M();else{if(null===(e=n._stats)||void 0===e||e.time("Rendering"),!(a.renderingIntent&S))throw new Error("Must use the same \`intent\`-argument when calling the \`PDFPageProxy.render\` and \`PDFDocumentProxy.getOptionalContentConfig\` methods.");C.initializeGraphics({transparency:i,optionalContentConfig:a}),C.operatorListChanged()}})).catch(M),j}},{key:"getOperatorList",value:function(){var t,e,r,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=n.intent,a=void 0===i?"display":i,o=n.annotationMode,s=void 0===o?x.ENABLE:o,u=n.printAnnotationStorage,c=void 0===u?null:u,l=n.isEditing,h=void 0!==l&&l,f=this._transport.getRenderingIntent(a,s,c,h,!0),d=this._intentStates.get(f.cacheKey);return d||(d=Object.create(null),this._intentStates.set(f.cacheKey,d)),d.opListReadCapability||((t=Object.create(null)).operatorListChanged=function(){d.operatorList.lastChunk&&(d.opListReadCapability.resolve(d.operatorList),d.renderTasks.delete(t))},d.opListReadCapability=Promise.withResolvers(),((e=d).renderTasks||(e.renderTasks=new Set)).add(t),d.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null},null===(r=this._stats)||void 0===r||r.time("Page Request"),this._pumpOperatorList(f)),d.opListReadCapability.promise}},{key:"streamTextContent",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.includeMarkedContent,r=void 0!==e&&e,n=t.disableNormalization,i=void 0!==n&&n;return this._transport.messageHandler.sendWithStream("GetTextContent",{pageIndex:this._pageIndex,includeMarkedContent:!0===r,disableNormalization:!0===i},{highWaterMark:100,size:t=>t.items.length})}},{key:"getTextContent",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this._transport._htmlForXfa)return this.getXfa().then((function(t){return Eh.textContent(t)}));var e=this.streamTextContent(t);return new Promise((function(t,r){var n=e.getReader(),i={items:[],styles:Object.create(null),lang:null};!function e(){n.read().then((function(r){var n,a,o=r.value;r.done?t(i):(null!==(n=i.lang)&&void 0!==n||(i.lang=o.lang),Object.assign(i.styles,o.styles),(a=i.items).push.apply(a,function(t){return function(t){if(Array.isArray(t))return Wh(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||Nh(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(o.items)),e())}),r)}()}))}},{key:"getStructTree",value:function(){return this._transport.getStructTree(this._pageIndex)}},{key:"_destroy",value:function(){this.destroyed=!0;var t,e=[],r=Dh(this._intentStates.values());try{for(r.s();!(t=r.n()).done;){var n=t.value;if(this._abortOperatorList({intentState:n,reason:new Error("Page was destroyed."),force:!0}),!n.opListReadCapability){var i,a=Dh(n.renderTasks);try{for(a.s();!(i=a.n()).done;){var o=i.value;e.push(o.completed),o.cancel()}}catch(t){a.e(t)}finally{a.f()}}}}catch(t){r.e(t)}finally{r.f()}return this.objs.clear(),Rh(of,this,!1),Fh(sf,this,lf).call(this),Promise.all(e)}},{key:"cleanup",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];Rh(of,this,!0);var e=Fh(sf,this,cf).call(this,!1);return t&&e&&this._stats&&(this._stats=new Se),e}},{key:"_startRenderPage",value:function(t,e){var r,n,i=this._intentStates.get(e);i&&(null===(r=this._stats)||void 0===r||r.timeEnd("Page Request"),null===(n=i.displayReadyCapability)||void 0===n||n.resolve(t))}},{key:"_renderPageChunk",value:function(t,e){for(var r=0,n=t.length;r0)return;if(n instanceof we){var o=100;return n.extraDelay>0&&n.extraDelay<1e3&&(o+=n.extraDelay),void(r.streamReaderCancelTimeout=setTimeout((function(){r.streamReaderCancelTimeout=null,e._abortOperatorList({intentState:r,reason:n,force:!0})}),o))}}if(r.streamReader.cancel(new Y(n.message)).catch((function(){})),r.streamReader=null,!this._transport.destroyed){var s,u=Dh(this._intentStates);try{for(u.s();!(s=u.n()).done;){var c=Lh(s.value,2),l=c[0];if(c[1]===r){this._intentStates.delete(l);break}}}catch(t){u.e(t)}finally{u.f()}this.cleanup()}}}},{key:"stats",get:function(){return this._stats}}]);var t}();function cf(){var t=this,e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(Fh(sf,this,lf).call(this),!Ih(of,this)||this.destroyed)return!1;if(e)return Rh(af,this,setTimeout((function(){Rh(af,t,null),Fh(sf,t,cf).call(t,!1)}),5e3)),!1;var r,n=Dh(this._intentStates.values());try{for(n.s();!(r=n.n()).done;){var i=r.value,a=i.renderTasks,o=i.operatorList;if(a.size>0||!o.lastChunk)return!1}}catch(t){n.e(t)}finally{n.f()}return this._intentStates.clear(),this.objs.clear(),Rh(of,this,!1),!0}function lf(){Ih(af,this)&&(clearTimeout(Ih(af,this)),Rh(af,this,null))}var hf=new WeakMap,ff=new WeakMap,df=function(){return Vh((function t(){Uh(this,t),Ch(this,hf,new Set),Ch(this,ff,Promise.resolve())}),[{key:"postMessage",value:function(t,e){var r=this,n={data:structuredClone(t,e?{transfer:e}:null)};Ih(ff,this).then((function(){var t,e=Dh(Ih(hf,r));try{for(e.s();!(t=e.n()).done;)t.value.call(r,n)}catch(t){e.e(t)}finally{e.f()}}))}},{key:"addEventListener",value:function(t,e){Ih(hf,this).add(e)}},{key:"removeEventListener",value:function(t,e){Ih(hf,this).delete(e)}},{key:"terminate",value:function(){Ih(hf,this).clear()}}])}(),vf=new WeakSet,pf=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.name,n=void 0===r?null:r,i=e.port,a=void 0===i?null:i,o=e.verbosity,s=void 0===o?j():o;if(Uh(this,t),Mh(this,vf),this.name=n,this.destroyed=!1,this.verbosity=s,this._readyCapability=Promise.withResolvers(),this._port=null,this._webWorker=null,this._messageHandler=null,a){var u;if(null!==(u=wf._)&&void 0!==u&&u.has(a))throw new Error("Cannot use more than one PDFWorker per port.");return(wf._||(wf._=new WeakMap)).set(a,this),void this._initializeFromPort(a)}this._initialize()}return Vh(t,[{key:"promise",get:function(){return m?Promise.all([cs.promise,this._readyCapability.promise]):this._readyCapability.promise}},{key:"port",get:function(){return this._port}},{key:"messageHandler",get:function(){return this._messageHandler}},{key:"_initializeFromPort",value:function(t){this._port=t,this._messageHandler=new Tu("main","worker",t),this._messageHandler.on("ready",(function(){})),Fh(vf,this,yf).call(this)}},{key:"_initialize",value:function(){var e=this;if(bf._||gf())this._setupFakeWorker();else{var r=t.workerSrc;try{t._isSameOrigin(window.location.href,r)||(r=t._createCDNWrapper(new URL(r,window.location).href));var n=new Worker(r,{type:"module"}),i=new Tu("main","worker",n),a=function(){o.abort(),i.destroy(),n.terminate(),e.destroyed?e._readyCapability.reject(new Error("Worker was destroyed")):e._setupFakeWorker()},o=new AbortController;n.addEventListener("error",(function(){e._webWorker||a()}),{signal:o.signal}),i.on("test",(function(t){o.abort(),!e.destroyed&&t?(e._messageHandler=i,e._port=n,e._webWorker=n,Fh(vf,e,yf).call(e)):a()})),i.on("ready",(function(t){if(o.abort(),e.destroyed)a();else try{s()}catch(t){e._setupFakeWorker()}}));var s=function(){var t=new Uint8Array;i.send("test",t,[t.buffer])};return void s()}catch(t){I("The worker has been disabled.")}this._setupFakeWorker()}}},{key:"_setupFakeWorker",value:function(){var e=this;bf._||(R("Setting up fake worker."),bf._=!0),t._setupFakeWorkerGlobal.then((function(t){var r,n;if(e.destroyed)e._readyCapability.reject(new Error("Worker was destroyed"));else{var i=new df;e._port=i;var a="fake".concat((mf._=(r=mf._,n=r++,r),n)),o=new Tu(a+"_worker",a,i);t.setup(o,i),e._messageHandler=new Tu(a,a+"_worker",i),Fh(vf,e,yf).call(e)}})).catch((function(t){e._readyCapability.reject(new Error('Setting up fake worker failed: "'.concat(t.message,'".')))}))}},{key:"destroy",value:function(){var t;this.destroyed=!0,this._webWorker&&(this._webWorker.terminate(),this._webWorker=null),null===(t=wf._)||void 0===t||t.delete(this._port),this._port=null,this._messageHandler&&(this._messageHandler.destroy(),this._messageHandler=null)}}],[{key:"fromPort",value:function(e){var r;if(null==e||!e.port)throw new Error("PDFWorker.fromPort - invalid method signature.");var n=null===(r=Fh(t,this,wf)._)||void 0===r?void 0:r.get(e.port);if(n){if(n._pendingDestroy)throw new Error("PDFWorker.fromPort - the worker is being destroyed.\\nPlease remember to await \`PDFDocumentLoadingTask.destroy()\`-calls.");return n}return new t(e)}},{key:"workerSrc",get:function(){if(mu.workerSrc)return mu.workerSrc;throw new Error('No "GlobalWorkerOptions.workerSrc" specified.')}},{key:"_setupFakeWorkerGlobal",get:function(){var e=this,r=function(){var r=Hh(Bh().mark((function r(){var n;return Bh().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(!Ph(t,e,gf)){r.next=2;break}return r.abrupt("return",Ph(t,e,gf));case 2:return r.next=4,import(e.workerSrc);case 4:return n=r.sent,r.abrupt("return",n.WorkerMessageHandler);case 6:case"end":return r.stop()}}),r)})));return function(){return r.apply(this,arguments)}}();return W(this,"_setupFakeWorkerGlobal",r())}}])}();function yf(){this._readyCapability.resolve(),this._messageHandler.send("configure",{verbosity:this.verbosity})}function gf(t){try{var e;return(null===(e=globalThis.pdfjsWorker)||void 0===e?void 0:e.WorkerMessageHandler)||null}catch(t){return null}}_h=pf;var mf={_:0},bf={_:!1},wf={_:void 0};m&&(bf._=Fh(_h,_h,!0),mu.workerSrc||(mu.workerSrc="./pdf.worker.mjs")),_h._isSameOrigin=function(t,e){var r;try{if(!(r=new URL(t)).origin||"null"===r.origin)return!1}catch(t){return!1}var n=new URL(e,r);return r.origin===n.origin},_h._createCDNWrapper=function(t){var e='await import("'.concat(t,'");');return URL.createObjectURL(new Blob([e],{type:"text/javascript"}))};var kf=new WeakMap,xf=new WeakMap,Af=new WeakMap,_f=new WeakMap,Ef=new WeakMap,Sf=new WeakSet,Of=function(){return Vh((function t(e,r,n,i,a){Uh(this,t),Mh(this,Sf),Ch(this,kf,new Map),Ch(this,xf,new Map),Ch(this,Af,new Map),Ch(this,_f,new Map),Ch(this,Ef,null),this.messageHandler=e,this.loadingTask=r,this.commonObjs=new Cf,this.fontLoader=new Yo({ownerDocument:i.ownerDocument,styleElement:i.styleElement}),this.loadingParams=i.loadingParams,this._params=i,this.canvasFactory=a.canvasFactory,this.filterFactory=a.filterFactory,this.cMapReaderFactory=a.cMapReaderFactory,this.standardFontDataFactory=a.standardFontDataFactory,this.destroyed=!1,this.destroyCapability=null,this._networkStream=n,this._fullReader=null,this._lastProgress=null,this.downloadInfoCapability=Promise.withResolvers(),this.setupMessageHandler()}),[{key:"annotationStorage",get:function(){return W(this,"annotationStorage",new Mo)}},{key:"getRenderingIntent",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:x.ENABLE,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],a=2,o=So;switch(t){case"any":a=1;break;case"display":break;case"print":a=4;break;default:R("getRenderingIntent - invalid intent: ".concat(t))}var s=4&a&&r instanceof Io?r:this.annotationStorage;switch(e){case x.DISABLE:a+=64;break;case x.ENABLE:break;case x.ENABLE_FORMS:a+=16;break;case x.ENABLE_STORAGE:a+=32,o=s.serializable;break;default:R("getRenderingIntent - invalid annotationMode: ".concat(e))}n&&(a+=128),i&&(a+=256);var u=s.modifiedIds,c=u.ids,l=u.hash;return{renderingIntent:a,cacheKey:[a,o.hash,l].join("_"),annotationStorageSerializable:o,modifiedIds:c}}},{key:"destroy",value:function(){var t,e=this;if(this.destroyCapability)return this.destroyCapability.promise;this.destroyed=!0,this.destroyCapability=Promise.withResolvers(),null===(t=Ih(Ef,this))||void 0===t||t.reject(new Error("Worker was destroyed during onPassword callback"));var r,n=[],i=Dh(Ih(xf,this).values());try{for(i.s();!(r=i.n()).done;){var a=r.value;n.push(a._destroy())}}catch(t){i.e(t)}finally{i.f()}Ih(xf,this).clear(),Ih(Af,this).clear(),Ih(_f,this).clear(),this.hasOwnProperty("annotationStorage")&&this.annotationStorage.resetModified();var o=this.messageHandler.sendWithPromise("Terminate",null);return n.push(o),Promise.all(n).then((function(){var t;e.commonObjs.clear(),e.fontLoader.clear(),Ih(kf,e).clear(),e.filterFactory.destroy(),uh.cleanup(),null===(t=e._networkStream)||void 0===t||t.cancelAllRequests(new Y("Worker was terminated.")),e.messageHandler&&(e.messageHandler.destroy(),e.messageHandler=null),e.destroyCapability.resolve()}),this.destroyCapability.reject),this.destroyCapability.promise}},{key:"setupMessageHandler",value:function(){var t=this,e=this.messageHandler,r=this.loadingTask;e.on("GetReader",(function(e,r){D(t._networkStream,"GetReader - no \`IPDFStream\` instance available."),t._fullReader=t._networkStream.getFullReader(),t._fullReader.onProgress=function(e){t._lastProgress={loaded:e.loaded,total:e.total}},r.onPull=function(){t._fullReader.read().then((function(t){var e=t.value;t.done?r.close():(D(e instanceof ArrayBuffer,"GetReader - expected an ArrayBuffer."),r.enqueue(new Uint8Array(e),1,[e]))})).catch((function(t){r.error(t)}))},r.onCancel=function(e){t._fullReader.cancel(e),r.ready.catch((function(e){if(!t.destroyed)throw e}))}})),e.on("ReaderHeadersReady",(function(e){var n=Promise.withResolvers(),i=t._fullReader;return i.headersReady.then((function(){var e;i.isStreamingSupported&&i.isRangeSupported||(t._lastProgress&&(null===(e=r.onProgress)||void 0===e||e.call(r,t._lastProgress)),i.onProgress=function(t){var e;null===(e=r.onProgress)||void 0===e||e.call(r,{loaded:t.loaded,total:t.total})});n.resolve({isStreamingSupported:i.isStreamingSupported,isRangeSupported:i.isRangeSupported,contentLength:i.contentLength})}),n.reject),n.promise})),e.on("GetRangeReader",(function(e,r){D(t._networkStream,"GetRangeReader - no \`IPDFStream\` instance available.");var n=t._networkStream.getRangeReader(e.begin,e.end);n?(r.onPull=function(){n.read().then((function(t){var e=t.value;t.done?r.close():(D(e instanceof ArrayBuffer,"GetRangeReader - expected an ArrayBuffer."),r.enqueue(new Uint8Array(e),1,[e]))})).catch((function(t){r.error(t)}))},r.onCancel=function(e){n.cancel(e),r.ready.catch((function(e){if(!t.destroyed)throw e}))}):r.close()})),e.on("GetDoc",(function(e){var n=e.pdfInfo;t._numPages=n.numPages,t._htmlForXfa=n.htmlForXfa,delete n.htmlForXfa,r._capability.resolve(new nf(n,t))})),e.on("DocException",(function(t){var e;switch(t.name){case"PasswordException":e=new G(t.message,t.code);break;case"InvalidPDFException":e=new U(t.message);break;case"MissingPDFException":e=new z(t.message);break;case"UnexpectedResponseException":e=new V(t.message,t.status);break;case"UnknownErrorException":e=new H(t.message,t.details);break;default:F("DocException - expected a valid Error.")}r._capability.reject(e)})),e.on("PasswordRequest",(function(e){if(Rh(Ef,t,Promise.withResolvers()),r.onPassword)try{r.onPassword((function(e){e instanceof Error?Ih(Ef,t).reject(e):Ih(Ef,t).resolve({password:e})}),e.code)}catch(e){Ih(Ef,t).reject(e)}else Ih(Ef,t).reject(new G(e.message,e.code));return Ih(Ef,t).promise})),e.on("DataLoaded",(function(e){var n;null===(n=r.onProgress)||void 0===n||n.call(r,{loaded:e.length,total:e.length}),t.downloadInfoCapability.resolve(e)})),e.on("StartRenderPage",(function(e){t.destroyed||Ih(xf,t).get(e.pageIndex)._startRenderPage(e.transparency,e.cacheKey)})),e.on("commonobj",(function(r){var n,i=Lh(r,3),a=i[0],o=i[1],s=i[2];if(t.destroyed)return null;if(t.commonObjs.has(a))return null;switch(o){case"Font":var u=t._params,c=u.disableFontFace,l=u.fontExtraProperties,h=u.pdfBug;if("error"in s){var f=s.error;R("Error during font loading: ".concat(f)),t.commonObjs.resolve(a,f);break}var d=h&&null!==(n=globalThis.FontInspector)&&void 0!==n&&n.enabled?function(t,e){return globalThis.FontInspector.fontAdded(t,e)}:null,v=new Xo(s,{disableFontFace:c,inspectFont:d});t.fontLoader.bind(v).catch((function(){return e.sendWithPromise("FontFallback",{id:a})})).finally((function(){!l&&v.data&&(v.data=null),t.commonObjs.resolve(a,v)}));break;case"CopyLocalImage":var p=s.imageRef;D(p,"The imageRef must be defined.");var y,g=Dh(Ih(xf,t).values());try{for(g.s();!(y=g.n()).done;){var m,b=Dh(y.value.objs);try{for(b.s();!(m=b.n()).done;){var w=Lh(m.value,2)[1];if((null==w?void 0:w.ref)===p)return w.dataLen?(t.commonObjs.resolve(a,structuredClone(w)),w.dataLen):null}}catch(t){b.e(t)}finally{b.f()}}}catch(t){g.e(t)}finally{g.f()}break;case"FontPath":case"Image":case"Pattern":t.commonObjs.resolve(a,s);break;default:throw new Error("Got unknown common object type ".concat(o))}return null})),e.on("obj",(function(e){var r=Lh(e,4),n=r[0],i=r[1],a=r[2],o=r[3];if(!t.destroyed){var s,u=Ih(xf,t).get(i);if(!u.objs.has(n))if(0!==u._intentStates.size)switch(a){case"Image":u.objs.resolve(n,o),(null==o?void 0:o.dataLen)>1e7&&(u._maybeCleanupAfterRender=!0);break;case"Pattern":u.objs.resolve(n,o);break;default:throw new Error("Got unknown object type ".concat(a))}else null==o||null===(s=o.bitmap)||void 0===s||s.close()}})),e.on("DocProgress",(function(e){var n;t.destroyed||null===(n=r.onProgress)||void 0===n||n.call(r,{loaded:e.loaded,total:e.total})})),e.on("FetchBuiltInCMap",(function(e){return t.destroyed?Promise.reject(new Error("Worker was destroyed.")):t.cMapReaderFactory?t.cMapReaderFactory.fetch(e):Promise.reject(new Error("CMapReaderFactory not initialized, see the \`useWorkerFetch\` parameter."))})),e.on("FetchStandardFontData",(function(e){return t.destroyed?Promise.reject(new Error("Worker was destroyed.")):t.standardFontDataFactory?t.standardFontDataFactory.fetch(e):Promise.reject(new Error("StandardFontDataFactory not initialized, see the \`useWorkerFetch\` parameter."))}))}},{key:"getData",value:function(){return this.messageHandler.sendWithPromise("GetData",null)}},{key:"saveDocument",value:function(){var t,e,r=this;this.annotationStorage.size<=0&&R("saveDocument called while \`annotationStorage\` is empty, please use the getData-method instead.");var n=this.annotationStorage.serializable,i=n.map,a=n.transfer;return this.messageHandler.sendWithPromise("SaveDocument",{isPureXfa:!!this._htmlForXfa,numPages:this._numPages,annotationStorage:i,filename:null!==(t=null===(e=this._fullReader)||void 0===e?void 0:e.filename)&&void 0!==t?t:null},a).finally((function(){r.annotationStorage.resetModified()}))}},{key:"getPage",value:function(t){var e=this;if(!Number.isInteger(t)||t<=0||t>this._numPages)return Promise.reject(new Error("Invalid page request."));var r=t-1,n=Ih(Af,this).get(r);if(n)return n;var i=this.messageHandler.sendWithPromise("GetPage",{pageIndex:r}).then((function(n){if(e.destroyed)throw new Error("Transport destroyed");n.refStr&&Ih(_f,e).set(n.refStr,t);var i=new uf(r,n,e,e._params.pdfBug);return Ih(xf,e).set(r,i),i}));return Ih(Af,this).set(r,i),i}},{key:"getPageIndex",value:function(t){return Zh(t)?this.messageHandler.sendWithPromise("GetPageIndex",{num:t.num,gen:t.gen}):Promise.reject(new Error("Invalid pageIndex request."))}},{key:"getAnnotations",value:function(t,e){return this.messageHandler.sendWithPromise("GetAnnotations",{pageIndex:t,intent:e})}},{key:"getFieldObjects",value:function(){return Fh(Sf,this,Tf).call(this,"GetFieldObjects")}},{key:"hasJSActions",value:function(){return Fh(Sf,this,Tf).call(this,"HasJSActions")}},{key:"getCalculationOrderIds",value:function(){return this.messageHandler.sendWithPromise("GetCalculationOrderIds",null)}},{key:"getDestinations",value:function(){return this.messageHandler.sendWithPromise("GetDestinations",null)}},{key:"getDestination",value:function(t){return"string"!=typeof t?Promise.reject(new Error("Invalid destination request.")):this.messageHandler.sendWithPromise("GetDestination",{id:t})}},{key:"getPageLabels",value:function(){return this.messageHandler.sendWithPromise("GetPageLabels",null)}},{key:"getPageLayout",value:function(){return this.messageHandler.sendWithPromise("GetPageLayout",null)}},{key:"getPageMode",value:function(){return this.messageHandler.sendWithPromise("GetPageMode",null)}},{key:"getViewerPreferences",value:function(){return this.messageHandler.sendWithPromise("GetViewerPreferences",null)}},{key:"getOpenAction",value:function(){return this.messageHandler.sendWithPromise("GetOpenAction",null)}},{key:"getAttachments",value:function(){return this.messageHandler.sendWithPromise("GetAttachments",null)}},{key:"getDocJSActions",value:function(){return Fh(Sf,this,Tf).call(this,"GetDocJSActions")}},{key:"getPageJSActions",value:function(t){return this.messageHandler.sendWithPromise("GetPageJSActions",{pageIndex:t})}},{key:"getStructTree",value:function(t){return this.messageHandler.sendWithPromise("GetStructTree",{pageIndex:t})}},{key:"getOutline",value:function(){return this.messageHandler.sendWithPromise("GetOutline",null)}},{key:"getOptionalContentConfig",value:function(t){return Fh(Sf,this,Tf).call(this,"GetOptionalContentConfig").then((function(e){return new fc(e,t)}))}},{key:"getPermissions",value:function(){return this.messageHandler.sendWithPromise("GetPermissions",null)}},{key:"getMetadata",value:function(){var t=this,e="GetMetadata",r=Ih(kf,this).get(e);if(r)return r;var n=this.messageHandler.sendWithPromise(e,null).then((function(e){var r,n,i,a;return{info:e[0],metadata:e[1]?new Gu(e[1]):null,contentDispositionFilename:null!==(r=null===(n=t._fullReader)||void 0===n?void 0:n.filename)&&void 0!==r?r:null,contentLength:null!==(i=null===(a=t._fullReader)||void 0===a?void 0:a.contentLength)&&void 0!==i?i:null}}));return Ih(kf,this).set(e,n),n}},{key:"getMarkInfo",value:function(){return this.messageHandler.sendWithPromise("GetMarkInfo",null)}},{key:"startCleanup",value:(t=Hh(Bh().mark((function t(){var e,r,n,i,a=arguments;return Bh().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=a.length>0&&void 0!==a[0]&&a[0],!this.destroyed){t.next=3;break}return t.abrupt("return");case 3:return t.next=5,this.messageHandler.sendWithPromise("Cleanup",null);case 5:r=Dh(Ih(xf,this).values()),t.prev=6,r.s();case 8:if((n=r.n()).done){t.next=15;break}if((i=n.value).cleanup()){t.next=13;break}throw new Error("startCleanup: Page ".concat(i.pageNumber," is currently rendering."));case 13:t.next=8;break;case 15:t.next=20;break;case 17:t.prev=17,t.t0=t.catch(6),r.e(t.t0);case 20:return t.prev=20,r.f(),t.finish(20);case 23:this.commonObjs.clear(),e||this.fontLoader.clear(),Ih(kf,this).clear(),this.filterFactory.destroy(!0),uh.cleanup();case 28:case"end":return t.stop()}}),t,this,[[6,17,20,23]])}))),function(){return t.apply(this,arguments)})},{key:"cachedPageNumber",value:function(t){var e;if(!Zh(t))return null;var r=0===t.gen?"".concat(t.num,"R"):"".concat(t.num,"R").concat(t.gen);return null!==(e=Ih(_f,this).get(r))&&void 0!==e?e:null}}]);var t}();function Tf(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=Ih(kf,this).get(t);if(r)return r;var n=this.messageHandler.sendWithPromise(t,e);return Ih(kf,this).set(t,n),n}var Pf=Symbol("INITIAL_DATA"),Lf=new WeakMap,Mf=new WeakSet,Cf=function(){return Vh((function t(){Uh(this,t),Mh(this,Mf),Ch(this,Lf,Object.create(null))}),[{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(e){var r=Fh(Mf,this,jf).call(this,t);return r.promise.then((function(){return e(r.data)})),null}var n=Ih(Lf,this)[t];if(!n||n.data===Pf)throw new Error("Requesting object that isn't resolved yet ".concat(t,"."));return n.data}},{key:"has",value:function(t){var e=Ih(Lf,this)[t];return!!e&&e.data!==Pf}},{key:"resolve",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=Fh(Mf,this,jf).call(this,t);r.data=e,r.resolve()}},{key:"clear",value:function(){for(var t in Ih(Lf,this)){var e,r=Ih(Lf,this)[t].data;null==r||null===(e=r.bitmap)||void 0===e||e.close()}Rh(Lf,this,Object.create(null))}},{key:Symbol.iterator,value:Bh().mark((function t(){var e,r;return Bh().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:t.t0=Bh().keys(Ih(Lf,this));case 1:if((t.t1=t.t0()).done){t.next=10;break}if(e=t.t1.value,(r=Ih(Lf,this)[e].data)!==Pf){t.next=6;break}return t.abrupt("continue",1);case 6:return t.next=8,[e,r];case 8:t.next=1;break;case 10:case"end":return t.stop()}}),t,this)}))}])}();function jf(t){var e;return(e=Ih(Lf,this))[t]||(e[t]=Oh(Oh({},Promise.withResolvers()),{},{data:Pf}))}var If=new WeakMap,Rf=function(){return Vh((function t(e){Uh(this,t),Ch(this,If,null),Rh(If,this,e),this.onContinue=null}),[{key:"promise",get:function(){return Ih(If,this).capability.promise}},{key:"cancel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;Ih(If,this).cancel(null,t)}},{key:"separateAnnots",get:function(){var t=Ih(If,this).operatorList.separateAnnots;if(!t)return!1;var e=Ih(If,this).annotationCanvasMap;return t.form||t.canvas&&(null==e?void 0:e.size)>0}}])}(),Ff=new WeakMap,Df=function(){return Vh((function t(e){var r=e.callback,n=e.params,i=e.objs,a=e.commonObjs,o=e.annotationCanvasMap,s=e.operatorList,u=e.pageIndex,c=e.canvasFactory,l=e.filterFactory,h=e.useRequestAnimationFrame,f=void 0!==h&&h,d=e.pdfBug,v=void 0!==d&&d,p=e.pageColors,y=void 0===p?null:p;Uh(this,t),Ch(this,Ff,null),this.callback=r,this.params=n,this.objs=i,this.commonObjs=a,this.annotationCanvasMap=o,this.operatorListIdx=null,this.operatorList=s,this._pageIndex=u,this.canvasFactory=c,this.filterFactory=l,this._pdfBug=v,this.pageColors=y,this.running=!1,this.graphicsReadyCallback=null,this.graphicsReady=!1,this._useRequestAnimationFrame=!0===f&&"undefined"!=typeof window,this.cancelled=!1,this.capability=Promise.withResolvers(),this.task=new Rf(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=n.canvasContext.canvas}),[{key:"completed",get:function(){return this.capability.promise.catch((function(){}))}},{key:"initializeGraphics",value:function(t){var e,r,n=t.transparency,i=void 0!==n&&n,a=t.optionalContentConfig;if(!this.cancelled){if(this._canvas){if(Nf._.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.");Nf._.add(this._canvas)}this._pdfBug&&null!==(e=globalThis.StepperManager)&&void 0!==e&&e.enabled&&(this.stepper=globalThis.StepperManager.create(this._pageIndex),this.stepper.init(this.operatorList),this.stepper.nextBreakPoint=this.stepper.getNextBreakPoint());var o=this.params,s=o.canvasContext,u=o.viewport,c=o.transform,l=o.background;this.gfx=new hu(s,this.commonObjs,this.objs,this.canvasFactory,this.filterFactory,{optionalContentConfig:a},this.annotationCanvasMap,this.pageColors),this.gfx.beginDrawing({transform:c,viewport:u,transparency:i,background:l}),this.operatorListIdx=0,this.graphicsReady=!0,null===(r=this.graphicsReadyCallback)||void 0===r||r.call(this)}}},{key:"cancel",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.running=!1,this.cancelled=!0,null===(t=this.gfx)||void 0===t||t.endDrawing(),Ih(Ff,this)&&(window.cancelAnimationFrame(Ih(Ff,this)),Rh(Ff,this,null)),Nf._.delete(this._canvas),this.callback(e||new we("Rendering cancelled, page ".concat(this._pageIndex+1),r))}},{key:"operatorListChanged",value:function(){var t;this.graphicsReady?(null===(t=this.stepper)||void 0===t||t.updateOperatorList(this.operatorList),this.running||this._continue()):this.graphicsReadyCallback||(this.graphicsReadyCallback=this._continueBound)}},{key:"_continue",value:function(){this.running=!0,this.cancelled||(this.task.onContinue?this.task.onContinue(this._scheduleNextBound):this._scheduleNext())}},{key:"_scheduleNext",value:function(){var t=this;this._useRequestAnimationFrame?Rh(Ff,this,window.requestAnimationFrame((function(){Rh(Ff,t,null),t._nextBound().catch(t._cancelBound)}))):Promise.resolve().then(this._nextBound).catch(this._cancelBound)}},{key:"_next",value:(t=Hh(Bh().mark((function t(){return Bh().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this.cancelled){t.next=2;break}return t.abrupt("return");case 2: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(),Nf._.delete(this._canvas),this.callback()));case 4:case"end":return t.stop()}}),t,this)}))),function(){return t.apply(this,arguments)})}]);var t}(),Nf={_:new WeakSet},Wf="4.7.0",Bf="";function Gf(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,i,a,o,s=[],u=!0,c=!1;try{if(a=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=a.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw i}}return s}}(t,e)||function(t,e){if(t){if("string"==typeof t)return Hf(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Hf(t,e):void 0}}(t,e)||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.")}()}function Hf(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Qf(t,e){if(t){if("string"==typeof t)return Jf(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Jf(t,e):void 0}}function Jf(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r0;){var f,d,v=Xf(h.at(-1),3),p=v[0],y=v[1],g=v[2];if(y+1!==p.children.length){var m=p.children[++h.at(-1)[1]];if(null!==m){var b=m.name;if("#text"!==b){var w=null!=m&&null!==(f=m.attributes)&&void 0!==f&&f.xmlns?document.createElementNS(m.attributes.xmlns,b):document.createElement(b);if(g.append(w),m.attributes&&this.setAttributes({html:w,element:m,storage:e,intent:i,linkService:r}),(null===(d=m.children)||void 0===d?void 0:d.length)>0)h.push([m,-1,w]);else if(m.value){var k=document.createTextNode(m.value);o&&Eh.shouldBuildText(b)&&c.push(k),w.append(k)}}else{var x=document.createTextNode(m.value);c.push(x),g.append(x)}}}else h.pop()}var A,_=Kf(s.querySelectorAll(".xfaNonInteractive input, .xfaNonInteractive textarea"));try{for(_.s();!(A=_.n()).done;)A.value.setAttribute("readOnly",!0)}catch(t){_.e(t)}finally{_.f()}return{textDivs:c}}},{key:"update",value:function(t){var e="matrix(".concat(t.viewport.transform.join(","),")");t.div.style.transform=e,t.div.hidden=!1}}])}();function ed(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function rd(t,e,r){return(e=Td(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function nd(){nd=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,i=Object.defineProperty||function(t,e,r){t[e]=r.value},a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",s=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function c(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch(t){c=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var a=e&&e.prototype instanceof g?e:g,o=Object.create(a.prototype),s=new L(n||[]);return i(o,"_invoke",{value:S(t,r,s)}),o}function h(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var f="suspendedStart",d="suspendedYield",v="executing",p="completed",y={};function g(){}function m(){}function b(){}var w={};c(w,o,(function(){return this}));var k=Object.getPrototypeOf,x=k&&k(k(M([])));x&&x!==r&&n.call(x,o)&&(w=x);var A=b.prototype=g.prototype=Object.create(w);function _(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function E(t,e){function r(i,a,o,s){var u=h(t[i],t,a);if("throw"!==u.type){var c=u.arg,l=c.value;return l&&"object"==typeof l&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,o,s)}),(function(t){r("throw",t,o,s)})):e.resolve(l).then((function(t){c.value=t,o(c)}),(function(t){return r("throw",t,o,s)}))}s(u.arg)}var a;i(this,"_invoke",{value:function(t,n){function i(){return new e((function(e,i){r(t,n,e,i)}))}return a=a?a.then(i,i):i()}})}function S(e,r,n){var i=f;return function(a,o){if(i===v)throw Error("Generator is already running");if(i===p){if("throw"===a)throw o;return{value:t,done:!0}}for(n.method=a,n.arg=o;;){var s=n.delegate;if(s){var u=O(s,n);if(u){if(u===y)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===f)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=v;var c=h(e,r,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===y)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function O(e,r){var n=r.method,i=e.iterator[n];if(i===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,O(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=h(i,e.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,y;var o=a.arg;return o?o.done?(r[e.resultName]=o.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):o:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function T(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function M(e){if(e||""===e){var r=e[o];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function r(){for(;++i=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;P(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:M(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function id(t,e,r,n,i,a,o){try{var s=t[a](o),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function ad(t){return function(){var e=this,r=arguments;return new Promise((function(n,i){var a=t.apply(e,r);function o(t){id(a,n,i,o,s,"next",t)}function s(t){id(a,n,i,o,s,"throw",t)}o(void 0)}))}}function od(t,e,r){e||(e=[]);var n=e.length++;return Object.defineProperty({},"_",{set:function(i){e[n]=i,t.apply(r,e)}})}function sd(t,e,r){return r(_d(t,e))}function ud(){return ud="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,e,r){var n=function(t,e){for(;!{}.hasOwnProperty.call(t,e)&&null!==(t=fd(t)););return t}(t,e);if(n){var i=Object.getOwnPropertyDescriptor(n,e);return i.get?i.get.call(arguments.length<3?t:r):i.value}},ud.apply(null,arguments)}function cd(t){return function(t){if(Array.isArray(t))return md(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||gd(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ld(t,e,r){return e=fd(e),function(t,e){if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,hd()?Reflect.construct(e,r||[],fd(t).constructor):e.apply(t,r))}function hd(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(hd=function(){return!!t})()}function fd(t){return fd=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},fd(t)}function dd(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&vd(t,e)}function vd(t,e){return vd=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},vd(t,e)}function pd(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=gd(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function yd(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,i,a,o,s=[],u=!0,c=!1;try{if(a=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=a.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw i}}return s}}(t,e)||gd(t,e)||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.")}()}function gd(t,e){if(t){if("string"==typeof t)return md(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?md(t,e):void 0}}function md(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:{},n=r.isRenderable,i=void 0!==n&&n,a=r.ignoreBorder,o=void 0!==a&&a,s=r.createQuadrilaterals,u=void 0!==s&&s;Ed(this,t),bd(this,Fd),wd(this,jd,null),wd(this,Id,!1),wd(this,Rd,null),this.isRenderable=i,this.data=e.data,this.layer=e.layer,this.linkService=e.linkService,this.downloadManager=e.downloadManager,this.imageResourcesPath=e.imageResourcesPath,this.renderForms=e.renderForms,this.svgFactory=e.svgFactory,this.annotationStorage=e.annotationStorage,this.enableScripting=e.enableScripting,this.hasJSActions=e.hasJSActions,this._fieldObjects=e.fieldObjects,this.parent=e.parent,i&&(this.container=this._createContainer(o)),u&&this._createQuadrilaterals()}return Od(t,[{key:"_isEditable",get:function(){return this.data.isEditable}},{key:"hasPopupData",get:function(){return t._hasPopupData(this.data)}},{key:"updateEdited",value:function(t){var e;if(this.container){Ad(jd,this)||xd(jd,this,{rect:this.data.rect.slice(0)});var r=t.rect;r&&_d(Fd,this,Nd).call(this,r),null===(e=Ad(Rd,this))||void 0===e||e.popup.updateEdited(t)}}},{key:"resetEdited",value:function(){var t;Ad(jd,this)&&(_d(Fd,this,Nd).call(this,Ad(jd,this).rect),null===(t=Ad(Rd,this))||void 0===t||t.popup.resetEdited(),xd(jd,this,null))}},{key:"_createContainer",value:function(t){var e=this.data,r=this.parent,n=r.page,i=r.viewport,a=document.createElement("section");a.setAttribute("data-annotation-id",e.id),this instanceof Vd||(a.tabIndex=Pd);var o=a.style;if(o.zIndex=this.parent.zIndex++,e.popupRef&&a.setAttribute("aria-haspopup","dialog"),e.alternativeText&&(a.title=e.alternativeText),e.noRotate&&a.classList.add("norotate"),!e.rect||this instanceof $d){var s=e.rotation;return e.hasOwnCanvas||0===s||this.setRotation(s,a),a}var u=Md(e.rect),c=u.width,l=u.height;if(!t&&e.borderStyle.width>0){o.borderWidth="".concat(e.borderStyle.width,"px");var h=e.borderStyle.horizontalCornerRadius,f=e.borderStyle.verticalCornerRadius;if(h>0||f>0){var d="calc(".concat(h,"px * var(--scale-factor)) / calc(").concat(f,"px * var(--scale-factor))");o.borderRadius=d}else if(this instanceof Kd){var v="calc(".concat(c,"px * var(--scale-factor)) / calc(").concat(l,"px * var(--scale-factor))");o.borderRadius=v}switch(e.borderStyle.style){case 1:o.borderStyle="solid";break;case 2:o.borderStyle="dashed";break;case 3:R("Unimplemented border style: beveled");break;case 4:R("Unimplemented border style: inset");break;case 5:o.borderBottomStyle="solid"}var p=e.borderColor||null;p?(xd(Id,this,!0),o.borderColor=Z.makeHexColor(0|p[0],0|p[1],0|p[2])):o.borderWidth=0}var y=Z.normalizeRect([e.rect[0],n.view[3]-e.rect[1]+n.view[1],e.rect[2],n.view[3]-e.rect[3]+n.view[1]]),g=i.rawDims,m=g.pageWidth,b=g.pageHeight,w=g.pageX,k=g.pageY;o.left="".concat(100*(y[0]-w)/m,"%"),o.top="".concat(100*(y[1]-k)/b,"%");var x=e.rotation;return e.hasOwnCanvas||0===x?(o.width="".concat(100*c/m,"%"),o.height="".concat(100*l/b,"%")):this.setRotation(x,a),a}},{key:"setRotation",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.container;if(this.data.rect){var r,n,i=this.parent.viewport.rawDims,a=i.pageWidth,o=i.pageHeight,s=Md(this.data.rect),u=s.width,c=s.height;t%180==0?(r=100*u/a,n=100*c/o):(r=100*c/a,n=100*u/o),e.style.width="".concat(r,"%"),e.style.height="".concat(n,"%"),e.setAttribute("data-main-rotation",(360-t)%360)}}},{key:"_commonActions",get:function(){var t=this,e=function(e,r,n){var i=n.detail[e],a=i[0],o=i.slice(1);n.target.style[r]=Yf["".concat(a,"_HTML")](o),t.annotationStorage.setValue(t.data.id,{[r]:Yf["".concat(a,"_rgb")](o)})};return W(this,"_commonActions",{display:function(e){var r=e.detail.display,n=r%2==1;t.container.style.visibility=n?"hidden":"visible",t.annotationStorage.setValue(t.data.id,{noView:n,noPrint:1===r||2===r})},print:function(e){t.annotationStorage.setValue(t.data.id,{noPrint:!e.detail.print})},hidden:function(e){var r=e.detail.hidden;t.container.style.visibility=r?"hidden":"visible",t.annotationStorage.setValue(t.data.id,{noPrint:r,noView:r})},focus:function(t){setTimeout((function(){return t.target.focus({preventScroll:!1})}),0)},userName:function(t){t.target.title=t.detail.userName},readonly:function(t){t.target.disabled=t.detail.readonly},required:function(e){t._setRequired(e.target,e.detail.required)},bgColor:function(t){e("bgColor","backgroundColor",t)},fillColor:function(t){e("fillColor","backgroundColor",t)},fgColor:function(t){e("fgColor","color",t)},textColor:function(t){e("textColor","color",t)},borderColor:function(t){e("borderColor","borderColor",t)},strokeColor:function(t){e("strokeColor","borderColor",t)},rotation:function(e){var r=e.detail.rotation;t.setRotation(r),t.annotationStorage.setValue(t.data.id,{rotation:r})}})}},{key:"_dispatchEventFromSandbox",value:function(t,e){for(var r=this._commonActions,n=0,i=Object.keys(e.detail);n','')],this.container.classList.add("hasBorder")}var y=a-n,g=o-i,m=this.svgFactory,b=m.createElement("svg");b.classList.add("quadrilateralsContainer"),b.setAttribute("width",0),b.setAttribute("height",0);var w=m.createElement("defs");b.append(w);var k=m.createElement("clipPath"),x="clippath_".concat(this.data.id);k.setAttribute("id",x),k.setAttribute("clipPathUnits","objectBoundingBox"),w.append(k);for(var A=2,_=t.length;A<_;A+=8){var E,S=t[A],O=t[A+1],T=t[A+2],P=t[A+3],L=m.createElement("rect"),M=(T-n)/y,C=(o-O)/g,j=(S-T)/y,I=(O-P)/g;L.setAttribute("x",M),L.setAttribute("y",C),L.setAttribute("width",j),L.setAttribute("height",I),k.append(L),null===(E=f)||void 0===E||E.push(''))}Ad(Id,this)&&(f.push("')"),d.backgroundImage=f.join("")),this.container.append(b),this.container.style.clipPath="url(#".concat(x,")")}}}},{key:"_createPopup",value:function(){var t=this.container,e=this.data;t.setAttribute("aria-haspopup","dialog");var r=xd(Rd,this,new $d({data:{color:e.color,titleObj:e.titleObj,modificationDate:e.modificationDate,contentsObj:e.contentsObj,richText:e.richText,parentRect:e.rect,borderStyle:0,id:"popup_".concat(e.id),rotation:e.rotation},parent:this.parent,elements:[this]}));this.parent.div.append(r.render())}},{key:"render",value:function(){F("Abstract method \`AnnotationElement.render\` called")}},{key:"_getElementsByName",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=[];if(this._fieldObjects){var n=this._fieldObjects[t];if(n){var i,a=pd(n);try{for(a.s();!(i=a.n()).done;){var o=i.value,s=o.page,u=o.id,c=o.exportValues;if(-1!==s&&u!==e){var l="string"==typeof c?c:null,h=document.querySelector('[data-element-id="'.concat(u,'"]'));!h||Ld.has(h)?r.push({id:u,exportValue:l,domElement:h}):R("_getElementsByName - element not allowed: ".concat(u))}}}catch(t){a.e(t)}finally{a.f()}}return r}var f,d=pd(document.getElementsByName(t));try{for(d.s();!(f=d.n()).done;){var v=f.value,p=v.exportValue,y=v.getAttribute("data-element-id");y!==e&&Ld.has(v)&&r.push({id:y,exportValue:p,domElement:v})}}catch(t){d.e(t)}finally{d.f()}return r}},{key:"show",value:function(){var t;this.container&&(this.container.hidden=!1),null===(t=this.popup)||void 0===t||t.maybeShow()}},{key:"hide",value:function(){var t;this.container&&(this.container.hidden=!0),null===(t=this.popup)||void 0===t||t.forceHide()}},{key:"getElementsToTriggerPopup",value:function(){return this.container}},{key:"addHighlightArea",value:function(){var t=this.getElementsToTriggerPopup();if(Array.isArray(t)){var e,r=pd(t);try{for(r.s();!(e=r.n()).done;)e.value.classList.add("highlightArea")}catch(t){r.e(t)}finally{r.f()}}else t.classList.add("highlightArea")}},{key:"_editOnDoubleClick",value:function(){var t=this;if(this._isEditable){var e=this.annotationEditorType,r=this.data.id;this.container.addEventListener("dblclick",(function(){var n;null===(n=t.linkService.eventBus)||void 0===n||n.dispatch("switchannotationeditormode",{source:t,mode:e,editId:r})}))}}}],[{key:"_hasPopupData",value:function(t){var e=t.titleObj,r=t.contentsObj,n=t.richText;return!!(null!=e&&e.str||null!=r&&r.str||null!=n&&n.str)}}])}();function Nd(t){var e=this.container.style,r=this.data,n=r.rect,i=r.rotation,a=this.parent.viewport.rawDims,o=a.pageWidth,s=a.pageHeight,u=a.pageX,c=a.pageY;null==n||n.splice.apply(n,[0,4].concat(cd(t)));var l=Md(t),h=l.width,f=l.height;e.left="".concat(100*(t[0]-u)/o,"%"),e.top="".concat(100*(s-t[3]+c)/s,"%"),0===i?(e.width="".concat(100*h/o,"%"),e.height="".concat(100*f/s,"%")):this.setRotation(i)}var Wd=new WeakSet,Bd=function(t){function e(t){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return Ed(this,e),bd(r=ld(this,e,[t,{isRenderable:!0,ignoreBorder:!(null==n||!n.ignoreBorder),createQuadrilaterals:!0}]),Wd),r.isTooltipOnly=t.data.isTooltipOnly,r}return dd(e,Dd),Od(e,[{key:"render",value:function(){var t=this.data,e=this.linkService,r=document.createElement("a");r.setAttribute("data-element-id",t.id);var n=!1;return t.url?(e.addLinkAttributes(r,t.url,t.newWindow),n=!0):t.action?(this._bindNamedAction(r,t.action),n=!0):t.attachment?(_d(Wd,this,Hd).call(this,r,t.attachment,t.attachmentDest),n=!0):t.setOCGState?(_d(Wd,this,Ud).call(this,r,t.setOCGState),n=!0):t.dest?(this._bindLink(r,t.dest),n=!0):(t.actions&&(t.actions.Action||t.actions["Mouse Up"]||t.actions["Mouse Down"])&&this.enableScripting&&this.hasJSActions&&(this._bindJSAction(r,t),n=!0),t.resetForm?(this._bindResetFormAction(r,t.resetForm),n=!0):this.isTooltipOnly&&!n&&(this._bindLink(r,""),n=!0)),this.container.classList.add("linkAnnotation"),n&&this.container.append(r),this.container}},{key:"_bindLink",value:function(t,e){var r=this;t.href=this.linkService.getDestinationHash(e),t.onclick=function(){return e&&r.linkService.goToDestination(e),!1},(e||""===e)&&_d(Wd,this,Gd).call(this)}},{key:"_bindNamedAction",value:function(t,e){var r=this;t.href=this.linkService.getAnchorUrl(""),t.onclick=function(){return r.linkService.executeNamedAction(e),!1},_d(Wd,this,Gd).call(this)}},{key:"_bindJSAction",value:function(t,e){var r=this;t.href=this.linkService.getAnchorUrl("");for(var n=new Map([["Action","onclick"],["Mouse Up","onmouseup"],["Mouse Down","onmousedown"]]),i=function(){var i=o[a],s=n.get(i);if(!s)return 1;t[s]=function(){var t;return null===(t=r.linkService.eventBus)||void 0===t||t.dispatch("dispatcheventinsandbox",{source:r,detail:{id:e.id,name:i}}),!1}},a=0,o=Object.keys(e.actions);a2&&void 0!==arguments[2]?arguments[2]:null;t.href=this.linkService.getAnchorUrl(""),e.description&&(t.title=e.description),t.onclick=function(){var t;return null===(t=r.downloadManager)||void 0===t||t.openOrDownloadData(e.content,e.filename,n),!1},_d(Wd,this,Gd).call(this)}function Ud(t,e){var r=this;t.href=this.linkService.getAnchorUrl(""),t.onclick=function(){return r.linkService.executeSetOCGState(e),!1},_d(Wd,this,Gd).call(this)}var zd=function(t){function e(t){return Ed(this,e),ld(this,e,[t,{isRenderable:!0}])}return dd(e,Dd),Od(e,[{key:"render",value:function(){this.container.classList.add("textAnnotation");var t=document.createElement("img");return t.src=this.imageResourcesPath+"annotation-"+this.data.name.toLowerCase()+".svg",t.setAttribute("data-l10n-id","pdfjs-text-annotation-type"),t.setAttribute("data-l10n-args",JSON.stringify({type:this.data.name})),!this.data.popupRef&&this.hasPopupData&&this._createPopup(),this.container.append(t),this.container}}])}(),Vd=function(t){function e(){return Ed(this,e),ld(this,e,arguments)}return dd(e,Dd),Od(e,[{key:"render",value:function(){return this.container}},{key:"showElementAndHideCanvas",value:function(t){var e;this.data.hasOwnCanvas&&("CANVAS"===(null===(e=t.previousSibling)||void 0===e?void 0:e.nodeName)&&(t.previousSibling.hidden=!0),t.hidden=!1)}},{key:"_getKeyModifier",value:function(t){return J.platform.isMac?t.metaKey:t.ctrlKey}},{key:"_setEventListener",value:function(t,e,r,n,i){var a=this;r.includes("mouse")?t.addEventListener(r,(function(t){var e;null===(e=a.linkService.eventBus)||void 0===e||e.dispatch("dispatcheventinsandbox",{source:a,detail:{id:a.data.id,name:n,value:i(t),shift:t.shiftKey,modifier:a._getKeyModifier(t)}})})):t.addEventListener(r,(function(t){var o;if("blur"===r){if(!e.focused||!t.relatedTarget)return;e.focused=!1}else if("focus"===r){if(e.focused)return;e.focused=!0}i&&(null===(o=a.linkService.eventBus)||void 0===o||o.dispatch("dispatcheventinsandbox",{source:a,detail:{id:a.data.id,name:n,value:i(t)}}))}))}},{key:"_setEventListeners",value:function(t,e,r,n){var i,a=pd(r);try{for(a.s();!(i=a.n()).done;){var o,s,u,c=yd(i.value,2),l=c[0],h=c[1];("Action"===h||null!==(o=this.data.actions)&&void 0!==o&&o[h])&&("Focus"!==h&&"Blur"!==h||e||(e={focused:!1}),this._setEventListener(t,e,l,h,n),"Focus"!==h||null!==(s=this.data.actions)&&void 0!==s&&s.Blur?"Blur"!==h||null!==(u=this.data.actions)&&void 0!==u&&u.Focus||this._setEventListener(t,e,"focus","Focus",null):this._setEventListener(t,e,"blur","Blur",null))}}catch(t){a.e(t)}finally{a.f()}}},{key:"_setBackgroundColor",value:function(t){var e=this.data.backgroundColor||null;t.style.backgroundColor=null===e?"transparent":Z.makeHexColor(e[0],e[1],e[2])}},{key:"_setTextStyle",value:function(t){var e,r=this.data.defaultAppearanceData.fontColor,n=this.data.defaultAppearanceData.fontSize||9,i=t.style,a=function(t){return Math.round(10*t)/10};if(this.data.multiLine){var o=Math.abs(this.data.rect[3]-this.data.rect[1]-2),s=o/(Math.round(o/(k*n))||1);e=Math.min(n,a(s/k))}else{var u=Math.abs(this.data.rect[3]-this.data.rect[1]-2);e=Math.min(n,a(u/k))}i.fontSize="calc(".concat(e,"px * var(--scale-factor))"),i.color=Z.makeHexColor(r[0],r[1],r[2]),null!==this.data.textAlignment&&(i.textAlign=["left","center","right"][this.data.textAlignment])}},{key:"_setRequired",value:function(t,e){e?t.setAttribute("required",!0):t.removeAttribute("required"),t.setAttribute("aria-required",e)}}])}(),qd=function(t){function e(t){return Ed(this,e),ld(this,e,[t,{isRenderable:t.renderForms||t.data.hasOwnCanvas||!t.data.hasAppearance&&!!t.data.fieldValue}])}return dd(e,Vd),Od(e,[{key:"setPropertyOnSiblings",value:function(t,e,r,n){var i,a=this.annotationStorage,o=pd(this._getElementsByName(t.name,t.id));try{for(o.s();!(i=o.n()).done;){var s=i.value;s.domElement&&(s.domElement[e]=r),a.setValue(s.id,{[n]:r})}}catch(t){o.e(t)}finally{o.f()}}},{key:"render",value:function(){var t=this,e=this.annotationStorage,r=this.data.id;this.container.classList.add("textWidgetAnnotation");var n=null;if(this.renderForms){var i,a=e.getValue(r,{value:this.data.fieldValue}),o=a.value||"",s=e.getValue(r,{charLimit:this.data.maxLen}).charLimit;s&&o.length>s&&(o=o.slice(0,s));var u=a.formattedValue||(null===(i=this.data.textContent)||void 0===i?void 0:i.join("\\n"))||null;u&&this.data.comb&&(u=u.replaceAll(/\\s+/g,""));var c,l,h={userValue:o,formattedValue:u,lastCommittedValue:null,commitKey:1,focused:!1};this.data.multiLine?((n=document.createElement("textarea")).textContent=null!==(c=u)&&void 0!==c?c:o,this.data.doNotScroll&&(n.style.overflowY="hidden")):((n=document.createElement("input")).type="text",n.setAttribute("value",null!==(l=u)&&void 0!==l?l:o),this.data.doNotScroll&&(n.style.overflowX="hidden")),this.data.hasOwnCanvas&&(n.hidden=!0),Ld.add(n),n.setAttribute("data-element-id",r),n.disabled=this.data.readOnly,n.name=this.data.fieldName,n.tabIndex=Pd,this._setRequired(n,this.data.required),s&&(n.maxLength=s),n.addEventListener("input",(function(i){e.setValue(r,{value:i.target.value}),t.setPropertyOnSiblings(n,"value",i.target.value,"value"),h.formattedValue=null})),n.addEventListener("resetform",(function(e){var r,i=null!==(r=t.data.defaultFieldValue)&&void 0!==r?r:"";n.value=h.userValue=i,h.formattedValue=null}));var f=function(t){var e=h.formattedValue;null!=e&&(t.target.value=e),t.target.scrollLeft=0};if(this.enableScripting&&this.hasJSActions){var d;n.addEventListener("focus",(function(e){var r;if(!h.focused){var n=e.target;h.userValue&&(n.value=h.userValue),h.lastCommittedValue=n.value,h.commitKey=1,null!==(r=t.data.actions)&&void 0!==r&&r.Focus||(h.focused=!0)}})),n.addEventListener("updatefromsandbox",(function(n){t.showElementAndHideCanvas(n.target);var i={value(t){var n;h.userValue=null!==(n=t.detail.value)&&void 0!==n?n:"",e.setValue(r,{value:h.userValue.toString()}),t.target.value=h.userValue},formattedValue(t){var n=t.detail.formattedValue;h.formattedValue=n,null!=n&&t.target!==document.activeElement&&(t.target.value=n),e.setValue(r,{formattedValue:n})},selRange(t){var e;(e=t.target).setSelectionRange.apply(e,cd(t.detail.selRange))},charLimit:function(n){var i,a=n.detail.charLimit,o=n.target;if(0!==a){o.setAttribute("maxLength",a);var s=h.userValue;!s||s.length<=a||(s=s.slice(0,a),o.value=h.userValue=s,e.setValue(r,{value:s}),null===(i=t.linkService.eventBus)||void 0===i||i.dispatch("dispatcheventinsandbox",{source:t,detail:{id:r,name:"Keystroke",value:s,willCommit:!0,commitKey:1,selStart:o.selectionStart,selEnd:o.selectionEnd}}))}else o.removeAttribute("maxLength")}};t._dispatchEventFromSandbox(i,n)})),n.addEventListener("keydown",(function(e){var n;h.commitKey=1;var i=-1;if("Escape"===e.key?i=0:"Enter"!==e.key||t.data.multiLine?"Tab"===e.key&&(h.commitKey=3):i=2,-1!==i){var a=e.target.value;h.lastCommittedValue!==a&&(h.lastCommittedValue=a,h.userValue=a,null===(n=t.linkService.eventBus)||void 0===n||n.dispatch("dispatcheventinsandbox",{source:t,detail:{id:r,name:"Keystroke",value:a,willCommit:!0,commitKey:i,selStart:e.target.selectionStart,selEnd:e.target.selectionEnd}}))}}));var v=f;f=null,n.addEventListener("blur",(function(e){var n;if(h.focused&&e.relatedTarget){null!==(n=t.data.actions)&&void 0!==n&&n.Blur||(h.focused=!1);var i,a=e.target.value;h.userValue=a,h.lastCommittedValue!==a&&(null===(i=t.linkService.eventBus)||void 0===i||i.dispatch("dispatcheventinsandbox",{source:t,detail:{id:r,name:"Keystroke",value:a,willCommit:!0,commitKey:h.commitKey,selStart:e.target.selectionStart,selEnd:e.target.selectionEnd}})),v(e)}})),null!==(d=this.data.actions)&&void 0!==d&&d.Keystroke&&n.addEventListener("beforeinput",(function(e){var n;h.lastCommittedValue=null;var i=e.data,a=e.target,o=a.value,s=a.selectionStart,u=a.selectionEnd,c=s,l=u;switch(e.inputType){case"deleteWordBackward":var f=o.substring(0,s).match(/\\w*[^\\w]*$/);f&&(c-=f[0].length);break;case"deleteWordForward":var d=o.substring(s).match(/^[^\\w]*\\w*/);d&&(l+=d[0].length);break;case"deleteContentBackward":s===u&&(c-=1);break;case"deleteContentForward":s===u&&(l+=1)}e.preventDefault(),null===(n=t.linkService.eventBus)||void 0===n||n.dispatch("dispatcheventinsandbox",{source:t,detail:{id:r,name:"Keystroke",value:o,change:i||"",willCommit:!1,selStart:c,selEnd:l}})})),this._setEventListeners(n,h,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],(function(t){return t.target.value}))}if(f&&n.addEventListener("blur",f),this.data.comb){var p=(this.data.rect[2]-this.data.rect[0])/s;n.classList.add("comb"),n.style.letterSpacing="calc(".concat(p,"px * var(--scale-factor) - 1ch)")}}else(n=document.createElement("div")).textContent=this.data.fieldValue,n.style.verticalAlign="middle",n.style.display="table-cell",this.data.hasOwnCanvas&&(n.hidden=!0);return this._setTextStyle(n),this._setBackgroundColor(n),this._setDefaultPropertiesFromJS(n),this.container.append(n),this.container}}])}(),Yd=function(t){function e(t){return Ed(this,e),ld(this,e,[t,{isRenderable:!!t.data.hasOwnCanvas}])}return dd(e,Vd),Od(e)}(),Xd=function(t){function e(t){return Ed(this,e),ld(this,e,[t,{isRenderable:t.renderForms}])}return dd(e,Vd),Od(e,[{key:"render",value:function(){var t=this,e=this.annotationStorage,r=this.data,n=r.id,i=e.getValue(n,{value:r.exportValue===r.fieldValue}).value;"string"==typeof i&&(i="Off"!==i,e.setValue(n,{value:i})),this.container.classList.add("buttonWidgetAnnotation","checkBox");var a=document.createElement("input");return Ld.add(a),a.setAttribute("data-element-id",n),a.disabled=r.readOnly,this._setRequired(a,this.data.required),a.type="checkbox",a.name=r.fieldName,i&&a.setAttribute("checked",!0),a.setAttribute("exportValue",r.exportValue),a.tabIndex=Pd,a.addEventListener("change",(function(i){var a,o=i.target,s=o.name,u=o.checked,c=pd(t._getElementsByName(s,n));try{for(c.s();!(a=c.n()).done;){var l=a.value,h=u&&l.exportValue===r.exportValue;l.domElement&&(l.domElement.checked=h),e.setValue(l.id,{value:h})}}catch(t){c.e(t)}finally{c.f()}e.setValue(n,{value:u})})),a.addEventListener("resetform",(function(t){var e=r.defaultFieldValue||"Off";t.target.checked=e===r.exportValue})),this.enableScripting&&this.hasJSActions&&(a.addEventListener("updatefromsandbox",(function(r){var i={value(t){t.target.checked="Off"!==t.detail.value,e.setValue(n,{value:t.target.checked})}};t._dispatchEventFromSandbox(i,r)})),this._setEventListeners(a,null,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],(function(t){return t.target.checked}))),this._setBackgroundColor(a),this._setDefaultPropertiesFromJS(a),this.container.append(a),this.container}}])}(),Kd=function(t){function e(t){return Ed(this,e),ld(this,e,[t,{isRenderable:t.renderForms}])}return dd(e,Vd),Od(e,[{key:"render",value:function(){var t=this;this.container.classList.add("buttonWidgetAnnotation","radioButton");var e=this.annotationStorage,r=this.data,n=r.id,i=e.getValue(n,{value:r.fieldValue===r.buttonValue}).value;if("string"==typeof i&&(i=i!==r.buttonValue,e.setValue(n,{value:i})),i){var a,o=pd(this._getElementsByName(r.fieldName,n));try{for(o.s();!(a=o.n()).done;){var s=a.value;e.setValue(s.id,{value:!1})}}catch(t){o.e(t)}finally{o.f()}}var u=document.createElement("input");if(Ld.add(u),u.setAttribute("data-element-id",n),u.disabled=r.readOnly,this._setRequired(u,this.data.required),u.type="radio",u.name=r.fieldName,i&&u.setAttribute("checked",!0),u.tabIndex=Pd,u.addEventListener("change",(function(r){var i,a=r.target,o=a.name,s=a.checked,u=pd(t._getElementsByName(o,n));try{for(u.s();!(i=u.n()).done;){var c=i.value;e.setValue(c.id,{value:!1})}}catch(t){u.e(t)}finally{u.f()}e.setValue(n,{value:s})})),u.addEventListener("resetform",(function(t){var e=r.defaultFieldValue;t.target.checked=null!=e&&e===r.buttonValue})),this.enableScripting&&this.hasJSActions){var c=r.buttonValue;u.addEventListener("updatefromsandbox",(function(r){var i={value:function(r){var i,a=c===r.detail.value,o=pd(t._getElementsByName(r.target.name));try{for(o.s();!(i=o.n()).done;){var s=i.value,u=a&&s.id===n;s.domElement&&(s.domElement.checked=u),e.setValue(s.id,{value:u})}}catch(t){o.e(t)}finally{o.f()}}};t._dispatchEventFromSandbox(i,r)})),this._setEventListeners(u,null,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],(function(t){return t.target.checked}))}return this._setBackgroundColor(u),this._setDefaultPropertiesFromJS(u),this.container.append(u),this.container}}])}(),Qd=function(t){function e(t){return Ed(this,e),ld(this,e,[t,{ignoreBorder:t.data.hasAppearance}])}return dd(e,Bd),Od(e,[{key:"render",value:function(){var t=this,r=function(t,e,r,n){var i=ud(fd(t.prototype),"render",r);return"function"==typeof i?function(t){return i.apply(r,t)}:i}(e,0,this)([]);r.classList.add("buttonWidgetAnnotation","pushButton");var n=r.lastChild;return this.enableScripting&&this.hasJSActions&&n&&(this._setDefaultPropertiesFromJS(n),n.addEventListener("updatefromsandbox",(function(e){t._dispatchEventFromSandbox({},e)}))),r}}])}(),Jd=function(t){function e(t){return Ed(this,e),ld(this,e,[t,{isRenderable:t.renderForms}])}return dd(e,Vd),Od(e,[{key:"render",value:function(){var t=this;this.container.classList.add("choiceWidgetAnnotation");var e=this.annotationStorage,r=this.data.id,n=e.getValue(r,{value:this.data.fieldValue}),i=document.createElement("select");Ld.add(i),i.setAttribute("data-element-id",r),i.disabled=this.data.readOnly,this._setRequired(i,this.data.required),i.name=this.data.fieldName,i.tabIndex=Pd;var a=this.data.combo&&this.data.options.length>0;this.data.combo||(i.size=this.data.options.length,this.data.multiSelect&&(i.multiple=!0)),i.addEventListener("resetform",(function(e){var r,n=t.data.defaultFieldValue,a=pd(i.options);try{for(a.s();!(r=a.n()).done;){var o=r.value;o.selected=o.value===n}}catch(t){a.e(t)}finally{a.f()}}));var o,s=pd(this.data.options);try{for(s.s();!(o=s.n()).done;){var u=o.value,c=document.createElement("option");c.textContent=u.displayValue,c.value=u.exportValue,n.value.includes(u.exportValue)&&(c.setAttribute("selected",!0),a=!1),i.append(c)}}catch(t){s.e(t)}finally{s.f()}var l=null;if(a){var h=document.createElement("option");h.value=" ",h.setAttribute("hidden",!0),h.setAttribute("selected",!0),i.prepend(h),l=function(){h.remove(),i.removeEventListener("input",l),l=null},i.addEventListener("input",l)}var f=function(t){var e=t?"value":"textContent",r=i.options;return i.multiple?Array.prototype.filter.call(r,(function(t){return t.selected})).map((function(t){return t[e]})):-1===r.selectedIndex?null:r[r.selectedIndex][e]},d=f(!1),v=function(t){var e=t.target.options;return Array.prototype.map.call(e,(function(t){return{displayValue:t.textContent,exportValue:t.value}}))};return this.enableScripting&&this.hasJSActions?(i.addEventListener("updatefromsandbox",(function(n){var a={value(t){var n;null===(n=l)||void 0===n||n();var a,o=t.detail.value,s=new Set(Array.isArray(o)?o:[o]),u=pd(i.options);try{for(u.s();!(a=u.n()).done;){var c=a.value;c.selected=s.has(c.value)}}catch(t){u.e(t)}finally{u.f()}e.setValue(r,{value:f(!0)}),d=f(!1)},multipleSelection(t){i.multiple=!0},remove(t){var n=i.options,a=t.detail.remove;if(n[a].selected=!1,i.remove(a),n.length>0){var o=Array.prototype.findIndex.call(n,(function(t){return t.selected}));-1===o&&(n[0].selected=!0)}e.setValue(r,{value:f(!0),items:v(t)}),d=f(!1)},clear(t){for(;0!==i.length;)i.remove(0);e.setValue(r,{value:null,items:[]}),d=f(!1)},insert(t){var n=t.detail.insert,a=n.index,o=n.displayValue,s=n.exportValue,u=i.children[a],c=document.createElement("option");c.textContent=o,c.value=s,u?u.before(c):i.append(c),e.setValue(r,{value:f(!0),items:v(t)}),d=f(!1)},items(t){for(var n=t.detail.items;0!==i.length;)i.remove(0);var a,o=pd(n);try{for(o.s();!(a=o.n()).done;){var s=a.value,u=s.displayValue,c=s.exportValue,l=document.createElement("option");l.textContent=u,l.value=c,i.append(l)}}catch(t){o.e(t)}finally{o.f()}i.options.length>0&&(i.options[0].selected=!0),e.setValue(r,{value:f(!0),items:v(t)}),d=f(!1)},indices(t){var n,i=new Set(t.detail.indices),a=pd(t.target.options);try{for(a.s();!(n=a.n()).done;){var o=n.value;o.selected=i.has(o.index)}}catch(t){a.e(t)}finally{a.f()}e.setValue(r,{value:f(!0)}),d=f(!1)},editable(t){t.target.disabled=!t.detail.editable}};t._dispatchEventFromSandbox(a,n)})),i.addEventListener("input",(function(n){var i,a=f(!0),o=f(!1);e.setValue(r,{value:a}),n.preventDefault(),null===(i=t.linkService.eventBus)||void 0===i||i.dispatch("dispatcheventinsandbox",{source:t,detail:{id:r,name:"Keystroke",value:d,change:o,changeEx:a,willCommit:!1,commitKey:1,keyDown:!1}})})),this._setEventListeners(i,null,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"],["input","Action"],["input","Validate"]],(function(t){return t.target.value}))):i.addEventListener("input",(function(t){e.setValue(r,{value:f(!0)})})),this.data.combo&&this._setTextStyle(i),this._setBackgroundColor(i),this._setDefaultPropertiesFromJS(i),this.container.append(i),this.container}}])}(),$d=function(t){function e(t){var r;Ed(this,e);var n=t.data,i=t.elements;return(r=ld(this,e,[t,{isRenderable:Dd._hasPopupData(n)}])).elements=i,r.popup=null,r}return dd(e,Dd),Od(e,[{key:"render",value:function(){this.container.classList.add("popupAnnotation");var t,e=this.popup=new bv({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}),r=[],n=pd(this.elements);try{for(n.s();!(t=n.n()).done;){var i=t.value;i.popup=e,r.push(i.data.id),i.addHighlightArea()}}catch(t){n.e(t)}finally{n.f()}return this.container.setAttribute("aria-controls",r.map((function(t){return"".concat(at).concat(t)})).join(",")),this.container}}])}(),Zd=new WeakMap,tv=new WeakMap,ev=new WeakMap,rv=new WeakMap,nv=new WeakMap,iv=new WeakMap,av=new WeakMap,ov=new WeakMap,sv=new WeakMap,uv=new WeakMap,cv=new WeakMap,lv=new WeakMap,hv=new WeakMap,fv=new WeakMap,dv=new WeakMap,vv=new WeakMap,pv=new WeakMap,yv=new WeakMap,gv=new WeakMap,mv=new WeakSet,bv=function(){return Od((function t(e){var r=e.container,n=e.color,i=e.elements,a=e.titleObj,o=e.modificationDate,s=e.contentsObj,u=e.richText,c=e.parent,l=e.rect,h=e.parentRect,f=e.open;Ed(this,t),bd(this,mv),wd(this,Zd,_d(mv,this,_v).bind(this)),wd(this,tv,_d(mv,this,Tv).bind(this)),wd(this,ev,_d(mv,this,Ov).bind(this)),wd(this,rv,_d(mv,this,Sv).bind(this)),wd(this,nv,null),wd(this,iv,null),wd(this,av,null),wd(this,ov,null),wd(this,sv,null),wd(this,uv,null),wd(this,cv,null),wd(this,lv,!1),wd(this,hv,null),wd(this,fv,null),wd(this,dv,null),wd(this,vv,null),wd(this,pv,null),wd(this,yv,null),wd(this,gv,!1),xd(iv,this,r),xd(pv,this,a),xd(av,this,s),xd(vv,this,u),xd(uv,this,c),xd(nv,this,n),xd(dv,this,l),xd(cv,this,h),xd(sv,this,i),xd(ov,this,Le.toDateObject(o)),this.trigger=i.flatMap((function(t){return t.getElementsToTriggerPopup()}));var d,v=pd(this.trigger);try{for(v.s();!(d=v.n()).done;){var p=d.value;p.addEventListener("click",Ad(rv,this)),p.addEventListener("mouseenter",Ad(ev,this)),p.addEventListener("mouseleave",Ad(tv,this)),p.classList.add("popupTriggerArea")}}catch(t){v.e(t)}finally{v.f()}var y,g=pd(i);try{for(g.s();!(y=g.n()).done;){var m;null===(m=y.value.container)||void 0===m||m.addEventListener("keydown",Ad(Zd,this))}}catch(t){g.e(t)}finally{g.f()}Ad(iv,this).hidden=!0,f&&_d(mv,this,Sv).call(this)}),[{key:"render",value:function(){if(!Ad(hv,this)){var t=xd(hv,this,document.createElement("div"));if(t.className="popup",Ad(nv,this)){var e=t.style.outlineColor=Z.makeHexColor.apply(Z,cd(Ad(nv,this)));CSS.supports("background-color","color-mix(in srgb, red 30%, white)")?t.style.backgroundColor="color-mix(in srgb, ".concat(e," 30%, white)"):t.style.backgroundColor=Z.makeHexColor.apply(Z,cd(Ad(nv,this).map((function(t){return Math.floor(.7*(255-t)+t)}))))}var r=document.createElement("span");r.className="header";var n=document.createElement("h1");r.append(n);var i=Ad(pv,this);if(n.dir=i.dir,n.textContent=i.str,t.append(r),Ad(ov,this)){var a=document.createElement("span");a.classList.add("popupDate"),a.setAttribute("data-l10n-id","pdfjs-annotation-date-time-string"),a.setAttribute("data-l10n-args",JSON.stringify({dateObj:Ad(ov,this).valueOf()})),r.append(a)}var o=sd(mv,this,wv);if(o)td.render({xfaHtml:o,intent:"richText",div:t}),t.lastChild.classList.add("richText","popupContent");else{var s=this._formatContents(Ad(av,this));t.append(s)}Ad(iv,this).append(t)}}},{key:"_formatContents",value:function(t){var e=t.str,r=t.dir,n=document.createElement("p");n.classList.add("popupContent"),n.dir=r;for(var i=e.split(/(?:\\r\\n?|\\n)/),a=0,o=i.length;a0}},{key:"render",value:function(){var t=ad(nd().mark((function t(e){var r,n,i,a,o,s,u,c,l,h,f,d,v,p,y,g;return nd().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:r=e.annotations,Re(n=this.div,this.viewport),i=new Map,a={data:null,layer:n,linkService:e.linkService,downloadManager:e.downloadManager,imageResourcesPath:e.imageResourcesPath||"",renderForms:!1!==e.renderForms,svgFactory:new me,annotationStorage:e.annotationStorage||new Mo,enableScripting:!0===e.enableScripting,hasJSActions:e.hasJSActions,fieldObjects:e.fieldObjects,parent:this,elements:null},o=pd(r),t.prev=6,o.s();case 8:if((s=o.n()).done){t.next=35;break}if(!(u=s.value).noHTML){t.next=12;break}return t.abrupt("continue",33);case 12:if(c=16===u.annotationType){t.next=19;break}if(l=Md(u.rect),h=l.width,f=l.height,!(h<=0||f<=0)){t.next=17;break}return t.abrupt("continue",33);case 17:t.next=23;break;case 19:if(d=i.get(u.id)){t.next=22;break}return t.abrupt("continue",33);case 22:a.elements=d;case 23:if(a.data=u,(v=Cd.create(a)).isRenderable){t.next=27;break}return t.abrupt("continue",33);case 27:return!c&&u.popupRef&&((p=i.get(u.popupRef))?p.push(v):i.set(u.popupRef,[v])),y=v.render(),u.hidden&&(y.style.visibility="hidden"),t.next=32,_d(rp,this,ip).call(this,y,u.id);case 32:v._isEditable&&(Ad(tp,this).set(v.data.id,v),null===(g=this._annotationEditorUIManager)||void 0===g||g.renderAnnotationElement(v));case 33:t.next=8;break;case 35:t.next=40;break;case 37:t.prev=37,t.t0=t.catch(6),o.e(t.t0);case 40:return t.prev=40,o.f(),t.finish(40);case 43:_d(rp,this,op).call(this);case 44:case"end":return t.stop()}}),t,this,[[6,37,40,43]])})));return function(e){return t.apply(this,arguments)}}()},{key:"update",value:function(t){var e=t.viewport,r=this.div;this.viewport=e,Re(r,{rotation:e.rotation}),_d(rp,this,op).call(this),r.hidden=!1}},{key:"getEditableAnnotations",value:function(){return Array.from(Ad(tp,this).values())}},{key:"getEditableAnnotation",value:function(t){return Ad(tp,this).get(t)}}])}();function ip(t,e){return ap.apply(this,arguments)}function ap(){return(ap=ad(nd().mark((function t(e,r){var n,i,a,o,s,u,c,l,h,f;return nd().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=e.firstChild||e,o=a.id="".concat(at).concat(r),t.next=4,null===(n=Ad(ep,this))||void 0===n?void 0:n.getAriaAttributes(o);case 4:if(s=t.sent){u=pd(s);try{for(u.s();!(c=u.n()).done;)l=yd(c.value,2),h=l[0],f=l[1],a.setAttribute(h,f)}catch(t){u.e(t)}finally{u.f()}}this.div.append(e),null===(i=Ad($v,this))||void 0===i||i.moveElementInDOM(this.div,e,a,!1);case 8:case"end":return t.stop()}}),t,this)})))).apply(this,arguments)}function op(){if(Ad(Zv,this)){var t,e=this.div,r=pd(Ad(Zv,this));try{for(r.s();!(t=r.n()).done;){var n=yd(t.value,2),i=n[0],a=n[1],o=e.querySelector('[data-annotation-id="'.concat(i,'"]'));if(o){a.className="annotationContent";var s=o.firstChild;s?"CANVAS"===s.nodeName?s.replaceWith(a):s.classList.contains("annotationContent")?s.after(a):s.before(a):o.append(a)}}}catch(t){r.e(t)}finally{r.f()}Ad(Zv,this).clear()}}function sp(){sp=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,i=Object.defineProperty||function(t,e,r){t[e]=r.value},a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",s=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function c(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch(t){c=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var a=e&&e.prototype instanceof g?e:g,o=Object.create(a.prototype),s=new L(n||[]);return i(o,"_invoke",{value:S(t,r,s)}),o}function h(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var f="suspendedStart",d="suspendedYield",v="executing",p="completed",y={};function g(){}function m(){}function b(){}var w={};c(w,o,(function(){return this}));var k=Object.getPrototypeOf,x=k&&k(k(M([])));x&&x!==r&&n.call(x,o)&&(w=x);var A=b.prototype=g.prototype=Object.create(w);function _(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function E(t,e){function r(i,a,o,s){var u=h(t[i],t,a);if("throw"!==u.type){var c=u.arg,l=c.value;return l&&"object"==typeof l&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,o,s)}),(function(t){r("throw",t,o,s)})):e.resolve(l).then((function(t){c.value=t,o(c)}),(function(t){return r("throw",t,o,s)}))}s(u.arg)}var a;i(this,"_invoke",{value:function(t,n){function i(){return new e((function(e,i){r(t,n,e,i)}))}return a=a?a.then(i,i):i()}})}function S(e,r,n){var i=f;return function(a,o){if(i===v)throw Error("Generator is already running");if(i===p){if("throw"===a)throw o;return{value:t,done:!0}}for(n.method=a,n.arg=o;;){var s=n.delegate;if(s){var u=O(s,n);if(u){if(u===y)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===f)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=v;var c=h(e,r,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===y)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function O(e,r){var n=r.method,i=e.iterator[n];if(i===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,O(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=h(i,e.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,y;var o=a.arg;return o?o.done?(r[e.resultName]=o.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):o:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function T(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function M(e){if(e||""===e){var r=e[o];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function r(){for(;++i=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;P(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:M(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function up(t){return function(t){if(Array.isArray(t))return dp(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||fp(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function cp(t,e,r,n,i,a,o){try{var s=t[a](o),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function lp(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=fp(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function hp(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,i,a,o,s=[],u=!0,c=!1;try{if(a=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=a.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw i}}return s}}(t,e)||fp(t,e)||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.")}()}function fp(t,e){if(t){if("string"==typeof t)return dp(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?dp(t,e):void 0}}function dp(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r0&&void 0!==arguments[0]&&arguments[0];if(this.isEmpty())return null;if(this.deleted)return this.serializeDeleted();var r=e._internalPadding*this.parentScale,n=this.getRect(r,r),i=Wa._colorManager.convert(this.isAttachedToDOM?getComputedStyle(this.editorDiv).color:Op(Mp,this)),a={annotationType:A.FREETEXT,color:i,fontSize:Op(Rp,this),value:Pp(Fp,this,zp).call(this),pageIndex:this.pageIndex,rect:n,rotation:this.rotation,structTreeParentId:this._structTreeParentId};return t?a:this.annotationElementId&&!Pp(Fp,this,qp).call(this,a)?null:(a.id=this.annotationElementId,a)}},{key:"renderAnnotationElement",value:function(t){var r=bp(e,"renderAnnotationElement",this,3)([t]);if(this.deleted)return r;var n=r.style;n.fontSize="calc(".concat(Op(Rp,this),"px * var(--scale-factor))"),n.color=Op(Mp,this),r.replaceChildren();var i,a=lp(Op(Cp,this).split("\\n"));try{for(a.s();!(i=a.n()).done;){var o=i.value,s=document.createElement("div");s.append(o?document.createTextNode(o):document.createElement("br")),r.append(s)}}catch(t){a.e(t)}finally{a.f()}var u=e._internalPadding*this.parentScale;return t.updateEdited({rect:this.getRect(u,u),popupContent:Op(Cp,this)}),r}},{key:"resetAnnotationElement",value:function(t){bp(e,"resetAnnotationElement",this,3)([t]),t.resetEdited()}}],[{key:"_keyboardManager",get:function(){var t=e.prototype,r=function(t){return t.isEmpty()},n=Kn.TRANSLATE_SMALL,i=Kn.TRANSLATE_BIG;return W(this,"_keyboardManager",new rn([[["ctrl+s","mac+meta+s","ctrl+p","mac+meta+p"],t.commitOrRemove,{bubbles:!0}],[["ctrl+Enter","mac+meta+Enter","Escape","mac+Escape"],t.commitOrRemove],[["ArrowLeft","mac+ArrowLeft"],t._translateEmpty,{args:[-n,0],checker:r}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],t._translateEmpty,{args:[-i,0],checker:r}],[["ArrowRight","mac+ArrowRight"],t._translateEmpty,{args:[n,0],checker:r}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],t._translateEmpty,{args:[i,0],checker:r}],[["ArrowUp","mac+ArrowUp"],t._translateEmpty,{args:[0,-n],checker:r}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],t._translateEmpty,{args:[0,-i],checker:r}],[["ArrowDown","mac+ArrowDown"],t._translateEmpty,{args:[0,n],checker:r}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],t._translateEmpty,{args:[0,i],checker:r}]]))}},{key:"initialize",value:function(t,e){Wa.initialize(t,e,{strings:["pdfjs-free-text-default-content"]});var r=getComputedStyle(document.documentElement);this._internalPadding=parseFloat(r.getPropertyValue("--freetext-padding"))}},{key:"updateDefaultParams",value:function(t,r){switch(t){case _.FREETEXT_SIZE:e._defaultFontSize=r;break;case _.FREETEXT_COLOR:e._defaultColor=r}}},{key:"defaultPropertiesToUpdate",get:function(){return[[_.FREETEXT_SIZE,e._defaultFontSize],[_.FREETEXT_COLOR,e._defaultColor||Wa._defaultLineColor]]}},{key:"deserialize",value:(r=sp().mark((function t(r,n,i){var a,o,s,u,c,l,h,f,d,v,p,y,g,m;return sp().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=null,!(r instanceof Pv)){t.next=6;break}if(s=(o=r).data,u=s.defaultAppearanceData,c=u.fontSize,l=u.fontColor,h=s.rect,f=s.rotation,d=s.id,v=s.popupRef,p=o.textContent,y=o.textPosition,g=o.parent.page.pageNumber,p&&0!==p.length){t.next=5;break}return t.abrupt("return",null);case 5:a=r={annotationType:A.FREETEXT,color:Array.from(l),fontSize:c,value:p.join("\\n"),position:y,pageIndex:g-1,rect:h.slice(0),rotation:f,id:d,deleted:!1,popupRef:v};case 6:return t.next=8,bp(e,"deserialize",this,2)([r,n,i]);case 8:return m=t.sent,Tp(Rp,m,r.fontSize),Tp(Mp,m,Z.makeHexColor.apply(Z,up(r.color))),Tp(Cp,m,Vp.call(e,r.value)),m.annotationElementId=r.id||null,m._initialData=a,t.abrupt("return",m);case 15:case"end":return t.stop()}}),t,this)})),n=function(){var t=this,e=arguments;return new Promise((function(n,i){var a=r.apply(t,e);function o(t){cp(a,n,i,o,s,"next",t)}function s(t){cp(a,n,i,o,s,"throw",t)}o(void 0)}))},function(t,e,r){return n.apply(this,arguments)})}]);var r,n}();function Np(t){var e=this,r=function(t){e.editorDiv.style.fontSize="calc(".concat(t,"px * var(--scale-factor))"),e.translate(0,-(t-Op(Rp,e))*e.parentScale),Tp(Rp,e,t),Pp(Fp,e,Gp).call(e)},n=Op(Rp,this);this.addCommands({cmd:r.bind(this,t),undo:r.bind(this,n),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:_.FREETEXT_SIZE,overwriteIfSameType:!0,keepUndo:!0})}function Wp(t){var e=this,r=function(t){Tp(Mp,e,e.editorDiv.style.color=t)},n=Op(Mp,this);this.addCommands({cmd:r.bind(this,t),undo:r.bind(this,n),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:_.FREETEXT_COLOR,overwriteIfSameType:!0,keepUndo:!0})}function Bp(){var t=[];this.editorDiv.normalize();var e,r=null,n=lp(this.editorDiv.childNodes);try{for(n.s();!(e=n.n()).done;){var i,a=e.value;(null===(i=r)||void 0===i?void 0:i.nodeType)===Node.TEXT_NODE&&"BR"===a.nodeName||(t.push(Hp.call(Jv,a)),r=a)}}catch(t){n.e(t)}finally{n.f()}return t.join("\\n")}function Gp(){var t,e=hp(this.parentDimensions,2),r=e[0],n=e[1];if(this.isAttachedToDOM)t=this.div.getBoundingClientRect();else{var i=this.currentLayer,a=this.div,o=a.style.display,s=a.classList.contains("hidden");a.classList.remove("hidden"),a.style.display="hidden",i.div.append(this.div),t=a.getBoundingClientRect(),a.remove(),a.style.display=o,a.classList.toggle("hidden",s)}this.rotation%180==this.parentRotation%180?(this.width=t.width/r,this.height=t.height/n):(this.width=t.height/r,this.height=t.width/n),this.fixAndSetPosition()}function Hp(t){return(t.nodeType===Node.TEXT_NODE?t.nodeValue:t.innerText).replaceAll(Lp,"")}function Up(){if(this.editorDiv.replaceChildren(),Op(Cp,this)){var t,e=lp(Op(Cp,this).split("\\n"));try{for(e.s();!(t=e.n()).done;){var r=t.value,n=document.createElement("div");n.append(r?document.createTextNode(r):document.createElement("br")),this.editorDiv.append(n)}}catch(t){e.e(t)}finally{e.f()}}}function zp(){return Op(Cp,this).replaceAll(" "," ")}function Vp(t){return t.replaceAll(" "," ")}function qp(t){var e=this._initialData,r=e.value,n=e.fontSize,i=e.color,a=e.pageIndex;return this._hasBeenMoved||t.value!==r||t.fontSize!==n||t.color.some((function(t,e){return t!==i[e]}))||t.pageIndex!==a}function Yp(t,e,r){return e=Kp(e),function(t,e){if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,Xp()?Reflect.construct(e,r||[],Kp(t).constructor):e.apply(t,r))}function Xp(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Xp=function(){return!!t})()}function Kp(t){return Kp=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},Kp(t)}function Qp(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Jp(t,e)}function Jp(t,e){return Jp=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},Jp(t,e)}function $p(t){return function(t){if(Array.isArray(t))return ry(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||ey(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Zp(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,i,a,o,s=[],u=!0,c=!1;try{if(a=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=a.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw i}}return s}}(t,e)||ey(t,e)||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.")}()}function ty(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=ey(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function ey(t,e){if(t){if("string"==typeof t)return ry(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ry(t,e):void 0}}function ry(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];ny(this,t),sy(this,yy),uy(this,dy,void 0),uy(this,vy,[]),uy(this,py,[]);var a,o=1/0,s=-1/0,u=1/0,c=-1/0,l=Math.pow(10,-4),h=ty(e);try{for(h.s();!(a=h.n()).done;){var f=a.value,d=f.x,v=f.y,p=f.width,y=f.height,g=Math.floor((d-r)/l)*l,m=Math.ceil((d+p+r)/l)*l,b=Math.floor((v-r)/l)*l,w=Math.ceil((v+y+r)/l)*l,k=[g,b,w,!0],x=[m,b,w,!1];hy(vy,this).push(k,x),o=Math.min(o,g),s=Math.max(s,m),u=Math.min(u,b),c=Math.max(c,w)}}catch(t){h.e(t)}finally{h.f()}var A,_=s-o+2*n,E=c-u+2*n,S=o-n,O=u-n,T=hy(vy,this).at(i?-1:-2),P=[T[0],T[2]],L=ty(hy(vy,this));try{for(L.s();!(A=L.n()).done;){var M=A.value,C=Zp(M,3),j=C[0],I=C[1],R=C[2];M[0]=(j-S)/_,M[1]=(I-O)/E,M[2]=(R-O)/E}}catch(t){L.e(t)}finally{L.f()}ly(dy,this,{x:S,y:O,width:_,height:E,lastPoint:P})}),[{key:"getOutlines",value:function(){hy(vy,this).sort((function(t,e){return t[0]-e[0]||t[1]-e[1]||t[2]-e[2]}));var t,e=[],r=ty(hy(vy,this));try{for(r.s();!(t=r.n()).done;){var n=t.value;n[3]?(e.push.apply(e,$p(fy(yy,this,xy).call(this,n))),fy(yy,this,wy).call(this,n)):(fy(yy,this,ky).call(this,n),e.push.apply(e,$p(fy(yy,this,xy).call(this,n))))}}catch(t){r.e(t)}finally{r.f()}return fy(yy,this,my).call(this,e)}}])}();function my(t){var e,r=[],n=new Set,i=ty(t);try{for(i.s();!(e=i.n()).done;){var a=e.value,o=Zp(a,3),s=o[0],u=o[1],c=o[2];r.push([s,u,a],[s,c,a])}}catch(t){i.e(t)}finally{i.f()}r.sort((function(t,e){return t[1]-e[1]||t[0]-e[0]}));for(var l=0,h=r.length;l0;){var y=n.values().next().value,g=Zp(y,5),m=g[0],b=g[1],w=g[2],k=g[3],x=g[4];n.delete(y);var A=m,_=b;for(v=[m,w],p.push(v);;){var E=void 0;if(n.has(k))E=k;else{if(!n.has(x))break;E=x}n.delete(E);var S=Zp(E,5);m=S[0],b=S[1],w=S[2],k=S[3],x=S[4],A!==m&&(v.push(A,_,m,_===b?b:w),A=m),_=_===b?w:b}v.push(A,_)}return new Sy(p,hy(dy,this))}function by(t){for(var e=hy(py,this),r=0,n=e.length-1;r<=n;){var i=r+n>>1,a=e[i][0];if(a===t)return i;a=0;c--){var l=Zp(hy(py,this)[c],2),h=l[0],f=l[1];if(h!==r)break;if(h===r&&f===n)return void hy(py,this).splice(c,1)}}function xy(t){for(var e=Zp(t,3),r=e[0],n=e[1],i=e[2],a=[[r,n,i]],o=fy(yy,this,by).call(this,i),s=0;s=c)if(p>l)a[h][1]=l;else{if(1===f)return[];a.splice(h,1),h--,f--}else a[h][2]=c,p>l&&a.push([r,l,p])}return a}var Ay=function(){return ay((function t(){ny(this,t)}),[{key:"toSVGPath",value:function(){throw new Error("Abstract method \`toSVGPath\` must be implemented.")}},{key:"box",get:function(){throw new Error("Abstract getter \`box\` must be implemented.")}},{key:"serialize",value:function(t,e){throw new Error("Abstract method \`serialize\` must be implemented.")}},{key:"free",get:function(){return this instanceof tg}}])}(),_y=new WeakMap,Ey=new WeakMap,Sy=function(t){function e(t,r){var n;return ny(this,e),uy(n=Yp(this,e),_y,void 0),uy(n,Ey,void 0),ly(Ey,n,t),ly(_y,n,r),n}return Qp(e,Ay),ay(e,[{key:"toSVGPath",value:function(){var t,e=[],r=ty(hy(Ey,this));try{for(r.s();!(t=r.n()).done;){var n=t.value,i=Zp(n,2),a=i[0],o=i[1];e.push("M".concat(a," ").concat(o));for(var s=2;s5&&void 0!==arguments[5]?arguments[5]:0;ny(this,t),sy(this,By),uy(this,Oy,void 0),uy(this,Ty,[]),uy(this,Py,void 0),uy(this,Ly,void 0),uy(this,My,[]),uy(this,Cy,new Float64Array(18)),uy(this,jy,void 0),uy(this,Iy,void 0),uy(this,Ry,void 0),uy(this,Fy,void 0),uy(this,Dy,void 0),uy(this,Ny,void 0),uy(this,Wy,[]),ly(Oy,this,r),ly(Ny,this,i*n),ly(Ly,this,a),hy(Cy,this).set([NaN,NaN,NaN,NaN,o,s],6),ly(Py,this,u),ly(Fy,this,zy._*n),ly(Ry,this,Vy._*n),ly(Dy,this,n),hy(Wy,this).push(o,s)}),[{key:"free",get:function(){return!0}},{key:"isEmpty",value:function(){return isNaN(hy(Cy,this)[8])}},{key:"add",value:function(t){var e,r=t.x,n=t.y;ly(jy,this,r),ly(Iy,this,n);var i=Zp(hy(Oy,this),4),a=i[0],o=i[1],s=i[2],u=i[3],c=Zp(hy(Cy,this).subarray(8,12),4),l=c[0],h=c[1],f=c[2],d=c[3],v=r-f,p=n-d,y=Math.hypot(v,p);if(y=6;y-=6)isNaN(e[y])?v.push("L".concat(e[y+4]," ").concat(e[y+5])):v.push("C".concat(e[y]," ").concat(e[y+1]," ").concat(e[y+2]," ").concat(e[y+3]," ").concat(e[y+4]," ").concat(e[y+5]));return v.push("L".concat(e[4]," ").concat(e[5]," Z")),v.join(" ")}},{key:"getOutlines",value:function(){for(var t,e,r=hy(My,this),n=hy(Ty,this),i=hy(Cy,this),a=i.subarray(4,6),o=i.subarray(16,18),s=Zp(hy(Oy,this),4),u=s[0],c=s[1],l=s[2],h=s[3],f=new Float64Array((null!==(t=null===(e=hy(Wy,this))||void 0===e?void 0:e.length)&&void 0!==t?t:0)+2),d=0,v=f.length-2;d=6;_-=6)for(var E=0;E<6;E+=2)isNaN(n[_+E])?(k[x]=k[x+1]=NaN,x+=2):(k[x]=n[_+E],k[x+1]=n[_+E+1],x+=2);return k.set([NaN,NaN,NaN,NaN,n[4],n[5]],x),new tg(k,f,hy(Oy,this),hy(Dy,this),hy(Py,this),hy(Ly,this))}}])}();function Hy(){var t=hy(Cy,this).subarray(4,6),e=hy(Cy,this).subarray(16,18),r=Zp(hy(Oy,this),4),n=r[0],i=r[1],a=r[2],o=r[3];return[(hy(jy,this)+(t[0]-e[0])/2-n)/a,(hy(Iy,this)+(t[1]-e[1])/2-i)/o,(hy(jy,this)+(e[0]-t[0])/2-n)/a,(hy(Iy,this)+(e[1]-t[1])/2-i)/o]}var Uy,zy={_:8},Vy={_:zy._+2},qy=new WeakMap,Yy=new WeakMap,Xy=new WeakMap,Ky=new WeakMap,Qy=new WeakMap,Jy=new WeakMap,$y=new WeakMap,Zy=new WeakSet,tg=function(t){function e(t,r,n,i,a,o){var s;ny(this,e),sy(s=Yp(this,e),Zy),uy(s,qy,void 0),uy(s,Yy,null),uy(s,Xy,void 0),uy(s,Ky,void 0),uy(s,Qy,void 0),uy(s,Jy,void 0),uy(s,$y,void 0),ly($y,s,t),ly(Qy,s,r),ly(qy,s,n),ly(Jy,s,i),ly(Xy,s,a),ly(Ky,s,o),fy(Zy,s,ng).call(s,o);for(var u=hy(Yy,s),c=u.x,l=u.y,h=u.width,f=u.height,d=0,v=t.length;d=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function og(t,e){if(t){if("string"==typeof t)return sg(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?sg(t,e):void 0}}function sg(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);rt.length)&&(e=t.length);for(var r=0,n=Array(e);r=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;P(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:M(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function Hg(t,e,r,n,i,a,o){try{var s=t[a](o),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function Ug(t){return function(){var e=this,r=arguments;return new Promise((function(n,i){var a=t.apply(e,r);function o(t){Hg(a,n,i,o,s,"next",t)}function s(t){Hg(a,n,i,o,s,"throw",t)}o(void 0)}))}}function zg(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Vg(t){for(var e=1;e-1?(am(bm,r,!0),om(Sm,r,Pm).call(r,t),om(Sm,r,Im).call(r)):im(lm,r)&&(am(um,r,t.anchorNode),am(cm,r,t.anchorOffset),am(vm,r,t.focusNode),am(pm,r,t.focusOffset),om(Sm,r,Tm).call(r),om(Sm,r,Im).call(r),r.rotate(r.rotation)),r}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&$g(t,e)}(e,Wa),function(t,e,r){return e&&qg(t.prototype,e),r&&qg(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}(e,[{key:"telemetryInitialData",get:function(){return{action:"added",type:im(bm,this)?"free_highlight":"highlight",color:this._uiManager.highlightColorNames.get(this.color),thickness:im(_m,this),methodOfCreation:im(Em,this)}}},{key:"telemetryFinalData",get:function(){return{type:"highlight",color:this._uiManager.highlightColorNames.get(this.color)}}},{key:"translateInPage",value:function(t,e){}},{key:"toolbarPosition",get:function(){return im(wm,this)}},{key:"updateParams",value:function(t,e){switch(t){case _.HIGHLIGHT_COLOR:om(Sm,this,Lm).call(this,e);break;case _.HIGHLIGHT_THICKNESS:om(Sm,this,Mm).call(this,e)}}},{key:"propertiesToUpdate",get:function(){return[[_.HIGHLIGHT_COLOR,this.color||e._defaultColor],[_.HIGHLIGHT_THICKNESS,im(_m,this)||e._defaultThickness],[_.HIGHLIGHT_FREE,im(bm,this)]]}},{key:"addEditToolbar",value:(n=Ug(Gg().mark((function t(){var r;return Gg().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,Kg(e,"addEditToolbar",this,3)([]);case 2:if(r=t.sent){t.next=5;break}return t.abrupt("return",null);case 5:return this._uiManager.highlightColors&&(am(fm,this,new Tg({editor:this})),r.addColorPicker(im(fm,this))),t.abrupt("return",r);case 7:case"end":return t.stop()}}),t,this)}))),function(){return n.apply(this,arguments)})},{key:"disableEditing",value:function(){Kg(e,"disableEditing",this,3)([]),this.div.classList.toggle("disabled",!0)}},{key:"enableEditing",value:function(){Kg(e,"enableEditing",this,3)([]),this.div.classList.toggle("disabled",!1)}},{key:"fixAndSetPosition",value:function(){return Kg(e,"fixAndSetPosition",this,3)([om(Sm,this,Nm).call(this)])}},{key:"getBaseTranslation",value:function(){return[0,0]}},{key:"getRect",value:function(t,r){return Kg(e,"getRect",this,3)([t,r,om(Sm,this,Nm).call(this)])}},{key:"onceAdded",value:function(){this.annotationElementId||this.parent.addUndoableEditor(this),this.div.focus()}},{key:"remove",value:function(){om(Sm,this,jm).call(this),this._reportTelemetry({action:"deleted"}),Kg(e,"remove",this,3)([])}},{key:"rebuild",value:function(){this.parent&&(Kg(e,"rebuild",this,3)([]),null!==this.div&&(om(Sm,this,Im).call(this),this.isAttachedToDOM||this.parent.add(this)))}},{key:"setParent",value:function(t){var r=!1;if(this.parent&&!t)om(Sm,this,jm).call(this);else if(t){var n;om(Sm,this,Im).call(this,t),r=!this.parent&&(null===(n=this.div)||void 0===n?void 0:n.classList.contains("selectedEditor"))}Kg(e,"setParent",this,3)([t]),this.show(this._isVisible),r&&this.select()}},{key:"rotate",value:function(t){var r,n=this.parent.drawLayer;im(bm,this)?(t=(t-this.rotation+360)%360,r=Rm.call(e,im(gm,this).box,t)):r=Rm.call(e,this,t),n.rotate(im(mm,this),t),n.rotate(im(xm,this),t),n.updateBox(im(mm,this),r),n.updateBox(im(xm,this),Rm.call(e,im(dm,this).box,t))}},{key:"render",value:function(){if(this.div)return this.div;var t=Kg(e,"render",this,3)([]);im(Am,this)&&(t.setAttribute("aria-label",im(Am,this)),t.setAttribute("role","mark")),im(bm,this)?t.classList.add("free"):this.div.addEventListener("keydown",om(Sm,this,Fm).bind(this),{signal:this._uiManager._signal});var r=am(ym,this,document.createElement("div"));t.append(r),r.setAttribute("aria-hidden","true"),r.className="internal",r.style.clipPath=im(hm,this);var n=Ng(this.parentDimensions,2),i=n[0],a=n[1];return this.setDims(this.width*i,this.height*a),Br(this,im(ym,this),["pointerover","pointerleave"]),this.enableEditing(),t}},{key:"pointerover",value:function(){this.isSelected||this.parent.drawLayer.addClass(im(xm,this),"hovered")}},{key:"pointerleave",value:function(){this.isSelected||this.parent.drawLayer.removeClass(im(xm,this),"hovered")}},{key:"_moveCaret",value:function(t){switch(this.parent.unselect(this),t){case 0:case 2:om(Sm,this,Dm).call(this,!0);break;case 1:case 3:om(Sm,this,Dm).call(this,!1)}}},{key:"select",value:function(){var t,r;Kg(e,"select",this,3)([]),im(xm,this)&&(null===(t=this.parent)||void 0===t||t.drawLayer.removeClass(im(xm,this),"hovered"),null===(r=this.parent)||void 0===r||r.drawLayer.addClass(im(xm,this),"selected"))}},{key:"unselect",value:function(){var t;Kg(e,"unselect",this,3)([]),im(xm,this)&&(null===(t=this.parent)||void 0===t||t.drawLayer.removeClass(im(xm,this),"selected"),im(bm,this)||om(Sm,this,Dm).call(this,!1))}},{key:"_mustFixPosition",get:function(){return!im(bm,this)}},{key:"show",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._isVisible;Kg(e,"show",this,3)([t]),this.parent&&(this.parent.drawLayer.show(im(mm,this),t),this.parent.drawLayer.show(im(xm,this),t))}},{key:"serialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this.isEmpty()||t)return null;if(this.deleted)return this.serializeDeleted();var e=this.getRect(0,0),r=Wa._colorManager.convert(this.color),n={annotationType:A.HIGHLIGHT,color:r,opacity:im(km,this),thickness:im(_m,this),quadPoints:om(Sm,this,Wm).call(this),outlines:om(Sm,this,Bm).call(this,e),pageIndex:this.pageIndex,rect:e,rotation:om(Sm,this,Nm).call(this),structTreeParentId:this._structTreeParentId};return this.annotationElementId&&!om(Sm,this,Um).call(this,n)?null:(n.id=this.annotationElementId,n)}},{key:"renderAnnotationElement",value:function(t){return t.updateEdited({rect:this.getRect(0,0)}),null}}],[{key:"_keyboardManager",get:function(){var t=e.prototype;return W(this,"_keyboardManager",new rn([[["ArrowLeft","mac+ArrowLeft"],t._moveCaret,{args:[0]}],[["ArrowRight","mac+ArrowRight"],t._moveCaret,{args:[1]}],[["ArrowUp","mac+ArrowUp"],t._moveCaret,{args:[2]}],[["ArrowDown","mac+ArrowDown"],t._moveCaret,{args:[3]}]]))}},{key:"computeTelemetryFinalData",value:function(t){return{numberOfColors:t.get("color").size}}},{key:"initialize",value:function(t,r){var n;Wa.initialize(t,r),e._defaultColor||(e._defaultColor=(null===(n=r.highlightColors)||void 0===n?void 0:n.values().next().value)||"#fff066")}},{key:"updateDefaultParams",value:function(t,r){switch(t){case _.HIGHLIGHT_DEFAULT_COLOR:e._defaultColor=r;break;case _.HIGHLIGHT_THICKNESS:e._defaultThickness=r}}},{key:"defaultPropertiesToUpdate",get:function(){return[[_.HIGHLIGHT_DEFAULT_COLOR,e._defaultColor],[_.HIGHLIGHT_THICKNESS,e._defaultThickness]]}},{key:"startHighlighting",value:function(t,r,n){var i=this,a=n.target,o=n.x,s=n.y,u=a.getBoundingClientRect(),c=u.x,l=u.y,h=u.width,f=u.height,d=new AbortController,v=t.combinedSignal(d),p=function(r){d.abort(),om(e,i,Hm).call(i,t,r)};window.addEventListener("blur",p,{signal:v}),window.addEventListener("pointerup",p,{signal:v}),window.addEventListener("pointerdown",(function(t){t.preventDefault(),t.stopPropagation()}),{capture:!0,passive:!1,signal:v}),window.addEventListener("contextmenu",Te,{signal:v}),a.addEventListener("pointermove",om(e,this,Gm).bind(this,t),{signal:v}),this._freeHighlight=new Gy({x:o,y:s},[c,l,h,f],t.scale,this._defaultThickness/2,r,.001);var y=t.drawLayer.highlight(this._freeHighlight,this._defaultColor,this._defaultOpacity,!0);this._freeHighlightId=y.id,this._freeHighlightClipId=y.clipPathId}},{key:"deserialize",value:(r=Ug(Gg().mark((function t(r,n,i){var a,o,s,u,c,l,h,f,d,v,p,y,g,m,b,w,k,x,_,E,S,O,T,P,L,M,C,j,I,R,F,D,N,W,B,G,H,U,z,V,q,Y,X;return Gg().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=null,r instanceof Hv?(s=(o=r).data,u=s.quadPoints,c=s.rect,l=s.rotation,h=s.id,f=s.color,d=s.opacity,v=s.popupRef,p=o.parent.page.pageNumber,a=r={annotationType:A.HIGHLIGHT,color:Array.from(f),opacity:d,quadPoints:u,boxes:null,pageIndex:p-1,rect:c.slice(0),rotation:l,id:h,deleted:!1,popupRef:v}):r instanceof Gv&&(g=(y=r).data,m=g.inkLists,b=g.rect,w=g.rotation,k=g.id,x=g.color,_=g.borderStyle.rawWidth,E=g.popupRef,S=y.parent.page.pageNumber,a=r={annotationType:A.HIGHLIGHT,color:Array.from(x),thickness:_,inkLists:m,boxes:null,pageIndex:S-1,rect:b.slice(0),rotation:w,id:k,deleted:!1,popupRef:E}),T=(O=r).color,P=O.quadPoints,L=O.inkLists,M=O.opacity,t.next=5,Kg(e,"deserialize",this,2)([r,n,i]);case 5:if((C=t.sent).color=Z.makeHexColor.apply(Z,Dg(T)),am(km,C,M||1),L&&am(_m,C,r.thickness),C.annotationElementId=r.id||null,C._initialData=a,j=Ng(C.pageDimensions,2),I=j[0],R=j[1],F=Ng(C.pageTranslation,2),D=F[0],N=F[1],P){for(W=am(lm,C,[]),B=0;B=0)am(mm,this,r),am(hm,this,n),this.parent.drawLayer.finalizeLine(r,e),am(xm,this,this.parent.drawLayer.highlightOutline(im(dm,this)));else if(this.parent){var i=this.parent.viewport.rotation;this.parent.drawLayer.updateLine(im(mm,this),e),this.parent.drawLayer.updateBox(im(mm,this),Rm.call(Rg,im(gm,this).box,(i-this.rotation+360)%360)),this.parent.drawLayer.updateLine(im(xm,this),im(dm,this)),this.parent.drawLayer.updateBox(im(xm,this),Rm.call(Rg,im(dm,this).box,i))}var a=e.box,o=a.x,s=a.y,u=a.width,c=a.height;switch(this.rotation){case 0:this.x=o,this.y=s,this.width=u,this.height=c;break;case 90:var l=Ng(this.parentDimensions,2),h=l[0],f=l[1];this.x=s,this.y=1-o,this.width=u*f/h,this.height=c*h/f;break;case 180:this.x=1-o,this.y=1-s,this.width=u,this.height=c;break;case 270:var d=Ng(this.parentDimensions,2),v=d[0],p=d[1];this.x=1-s,this.y=o,this.width=u*p/v,this.height=c*v/p}var y=im(dm,this).box.lastPoint;am(wm,this,[(y[0]-o)/u,(y[1]-s)/c])}function Lm(t){var e=this,r=function(t,r){var n,i,a;e.color=t,null===(n=e.parent)||void 0===n||n.drawLayer.changeColor(im(mm,e),t),null===(i=im(fm,e))||void 0===i||i.updateColor(t),am(km,e,r),null===(a=e.parent)||void 0===a||a.drawLayer.changeOpacity(im(mm,e),r)},n=this.color,i=im(km,this);this.addCommands({cmd:r.bind(this,t,Rg._defaultOpacity),undo:r.bind(this,n,i),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:_.HIGHLIGHT_COLOR,overwriteIfSameType:!0,keepUndo:!0}),this._reportTelemetry({action:"color_changed",color:this._uiManager.highlightColorNames.get(t)},!0)}function Mm(t){var e=this,r=im(_m,this),n=function(t){am(_m,e,t),om(Sm,e,Cm).call(e,t)};this.addCommands({cmd:n.bind(this,t),undo:n.bind(this,r),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:_.INK_THICKNESS,overwriteIfSameType:!0,keepUndo:!0}),this._reportTelemetry({action:"thickness_changed",thickness:t},!0)}function Cm(t){if(im(bm,this)){om(Sm,this,Pm).call(this,{highlightOutlines:im(gm,this).getNewOutline(t/2)}),this.fixAndSetPosition();var e=Ng(this.parentDimensions,2),r=e[0],n=e[1];this.setDims(this.width*r,this.height*n)}}function jm(){null!==im(mm,this)&&this.parent&&(this.parent.drawLayer.remove(im(mm,this)),am(mm,this,null),this.parent.drawLayer.remove(im(xm,this)),am(xm,this,null))}function Im(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.parent;if(null===im(mm,this)){var e=t.drawLayer.highlight(im(gm,this),this.color,im(km,this));nm(am,[mm,this])._=e.id,nm(am,[hm,this])._=e.clipPathId,am(xm,this,t.drawLayer.highlightOutline(im(dm,this))),im(ym,this)&&(im(ym,this).style.clipPath=im(hm,this))}}function Rm(t,e){var r=t.x,n=t.y,i=t.width,a=t.height;switch(e){case 90:return{x:1-n-a,y:r,width:a,height:i};case 180:return{x:1-r-i,y:1-n-a,width:i,height:a};case 270:return{x:n,y:1-r-i,width:a,height:i}}return{x:r,y:n,width:i,height:a}}function Fm(t){Rg._keyboardManager.exec(this,t)}function Dm(t){if(im(um,this)){var e=window.getSelection();t?e.setPosition(im(um,this),im(cm,this)):e.setPosition(im(vm,this),im(pm,this))}}function Nm(){return im(bm,this)?this.rotation:0}function Wm(){if(im(bm,this))return null;var t,e=Ng(this.pageDimensions,2),r=e[0],n=e[1],i=Ng(this.pageTranslation,2),a=i[0],o=i[1],s=im(lm,this),u=new Float32Array(8*s.length),c=0,l=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=Wg(t))){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}(s);try{for(l.s();!(t=l.n()).done;){var h=t.value,f=h.x,d=h.y,v=h.width,p=h.height,y=f*r+a,g=(1-d-p)*n+o;u[c]=u[c+4]=y,u[c+1]=u[c+3]=g,u[c+2]=u[c+6]=y+v*r,u[c+5]=u[c+7]=g+p*n,c+=8}}catch(t){l.e(t)}finally{l.f()}return u}function Bm(t){return im(gm,this).serialize(t,om(Sm,this,Nm).call(this))}function Gm(t,e){this._freeHighlight.add(e)&&t.drawLayer.updatePath(this._freeHighlightId,this._freeHighlight)}function Hm(t,e){this._freeHighlight.isEmpty()?t.drawLayer.removeFreeHighlight(this._freeHighlightId):t.createAndAddNewEditor(e,!1,{highlightId:this._freeHighlightId,highlightOutlines:this._freeHighlight.getOutlines(),clipPathId:this._freeHighlightClipId,methodOfCreation:"main_toolbar"}),this._freeHighlightId=-1,this._freeHighlight=null,this._freeHighlightClipId=""}function Um(t){var e=this._initialData.color;return t.color.some((function(t,r){return t!==e[r]}))}function zm(){zm=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,i=Object.defineProperty||function(t,e,r){t[e]=r.value},a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",s=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function c(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch(t){c=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var a=e&&e.prototype instanceof g?e:g,o=Object.create(a.prototype),s=new L(n||[]);return i(o,"_invoke",{value:S(t,r,s)}),o}function h(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var f="suspendedStart",d="suspendedYield",v="executing",p="completed",y={};function g(){}function m(){}function b(){}var w={};c(w,o,(function(){return this}));var k=Object.getPrototypeOf,x=k&&k(k(M([])));x&&x!==r&&n.call(x,o)&&(w=x);var A=b.prototype=g.prototype=Object.create(w);function _(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function E(t,e){function r(i,a,o,s){var u=h(t[i],t,a);if("throw"!==u.type){var c=u.arg,l=c.value;return l&&"object"==typeof l&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,o,s)}),(function(t){r("throw",t,o,s)})):e.resolve(l).then((function(t){c.value=t,o(c)}),(function(t){return r("throw",t,o,s)}))}s(u.arg)}var a;i(this,"_invoke",{value:function(t,n){function i(){return new e((function(e,i){r(t,n,e,i)}))}return a=a?a.then(i,i):i()}})}function S(e,r,n){var i=f;return function(a,o){if(i===v)throw Error("Generator is already running");if(i===p){if("throw"===a)throw o;return{value:t,done:!0}}for(n.method=a,n.arg=o;;){var s=n.delegate;if(s){var u=O(s,n);if(u){if(u===y)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===f)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=v;var c=h(e,r,n);if("normal"===c.type){if(i=n.done?p:d,c.arg===y)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=p,n.method="throw",n.arg=c.arg)}}}function O(e,r){var n=r.method,i=e.iterator[n];if(i===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,O(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=h(i,e.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,y;var o=a.arg;return o?o.done?(r[e.resultName]=o.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):o:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function T(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function M(e){if(e||""===e){var r=e[o];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function r(){for(;++i=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;P(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:M(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function Vm(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=Km(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function qm(t){return function(t){if(Array.isArray(t))return Qm(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||Km(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ym(t,e,r,n,i,a,o){try{var s=t[a](o),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function Xm(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,i,a,o,s=[],u=!0,c=!1;try{if(a=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=a.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw i}}return s}}(t,e)||Km(t,e)||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.")}()}function Km(t,e){if(t){if("string"==typeof t)return Qm(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Qm(t,e):void 0}}function Qm(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&t===i&&e===a)){var o,s,u=this.currentPath,c=hb(gb,this);if(u.push([t,e]),lb(wb,this,!0),u.length<=2)return(o=c).moveTo.apply(o,qm(u[0])),void c.lineTo(t,e);3===u.length&&(lb(gb,this,c=new Path2D),(s=c).moveTo.apply(s,qm(u[0]))),(r=fb(Ob,this,Wb)).call.apply(r,[this,c].concat(qm(u.at(-3)),qm(u.at(-2)),[t,e]))}}function Fb(){var t;if(0!==this.currentPath.length){var e=this.currentPath.at(-1);(t=hb(gb,this)).lineTo.apply(t,qm(e))}}function Db(t,e){var r,n=this;if(lb(Sb,this,null),t=Math.min(Math.max(t,0),this.canvas.width),e=Math.min(Math.max(e,0),this.canvas.height),fb(Ob,this,Rb).call(this,t,e),fb(Ob,this,Fb).call(this),1!==this.currentPath.length)r=fb(Ob,this,Bb).call(this);else{var i=[t,e];r=[[i,i.slice(),i.slice(),i]]}var a=hb(gb,this),o=this.currentPath;this.currentPath=[],lb(gb,this,new Path2D),this.addCommands({cmd:function(){n.allRawPaths.push(o),n.paths.push(r),n.bezierPath2D.push(a),n._uiManager.rebuild(n)},undo:function(){n.allRawPaths.pop(),n.paths.pop(),n.bezierPath2D.pop(),0===n.paths.length?n.remove():(n.canvas||(fb(Ob,n,Vb).call(n),fb(Ob,n,qb).call(n)),fb(Ob,n,rw).call(n))},mustExec:!0})}function Nb(){if(hb(wb,this)){lb(wb,this,!1);Math.ceil(this.thickness*this.parentScale);var t=this.currentPath.slice(-3),e=t.map((function(t){return t[0]})),r=t.map((function(t){return t[1]})),n=(Math.min.apply(Math,qm(e)),Math.max.apply(Math,qm(e)),Math.min.apply(Math,qm(r)),Math.max.apply(Math,qm(r)),this.ctx);n.save(),n.clearRect(0,0,this.canvas.width,this.canvas.height);var i,a=Vm(this.bezierPath2D);try{for(a.s();!(i=a.n()).done;){var o=i.value;n.stroke(o)}}catch(t){a.e(t)}finally{a.f()}n.stroke(hb(gb,this)),n.restore()}}function Wb(t,e,r,n,i,a,o){var s=(e+n)/2,u=(r+i)/2,c=(n+a)/2,l=(i+o)/2;t.bezierCurveTo(s+2*(n-s)/3,u+2*(i-u)/3,c+2*(n-c)/3,l+2*(i-l)/3,c,l)}function Bb(){var t=this.currentPath;if(t.length<=2)return[[t[0],t[0],t.at(-1),t.at(-1)]];var e,r=[],n=Xm(t[0],2),i=n[0],a=n[1];for(e=1;e0&&void 0!==arguments[0]&&arguments[0];if(!this.isEmpty())if(hb(mb,this)){var e=fb(Ob,this,tw).call(this),r=fb(Ob,this,ew).call(this);lb(pb,this,Math.max(Wa.MIN_SIZE,e[2]-e[0])),lb(vb,this,Math.max(Wa.MIN_SIZE,e[3]-e[1]));var n=Math.ceil(r+hb(pb,this)*this.scaleFactor),i=Math.ceil(r+hb(vb,this)*this.scaleFactor),a=Xm(this.parentDimensions,2),o=a[0],s=a[1];this.width=n/o,this.height=i/s,this.setAspectRatio(n,i);var u=this.translationX,c=this.translationY;this.translationX=-e[0],this.translationY=-e[1],fb(Ob,this,Yb).call(this),fb(Ob,this,Gb).call(this),lb(_b,this,n),lb(Eb,this,i),this.setDims(n,i);var l=t?r/this.scaleFactor/2:0;this.translate(u-this.translationX-l,c-this.translationY-l)}else fb(Ob,this,Gb).call(this)}function nw(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,i,a,o,s=[],u=!0,c=!1;try{if(a=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=a.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw i}}return s}}(t,e)||function(t,e){if(t){if("string"==typeof t)return iw(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?iw(t,e):void 0}}(t,e)||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.")}()}function iw(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;P(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:M(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function ow(t,e,r,n,i,a,o){try{var s=t[a](o),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function sw(t){return function(){var e=this,r=arguments;return new Promise((function(n,i){var a=t.apply(e,r);function o(t){ow(a,n,i,o,s,"next",t)}function s(t){ow(a,n,i,o,s,"throw",t)}o(void 0)}))}}function uw(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function cw(t){for(var e=1;e0&&void 0!==l[0]?l[0]:null,r=!(l.length>1&&void 0!==l[1])||l[1],!this.hasAltTextData()){t.next=4;break}return t.abrupt("return",null);case 4:if(n=this._uiManager.mlManager){t.next=7;break}throw new Error("No ML.");case 7:return t.next=9,n.isEnabledFor("altText");case 9:if(t.sent){t.next=11;break}throw new Error("ML isn't enabled for alt text.");case 11:return i=e||this.copyCanvas(null,null,!0).imageData,a=i.data,o=i.width,s=i.height,t.next=14,n.guess({name:"altText",request:{data:a,width:o,height:s,channels:a.length/(o*s)}});case 14:if(u=t.sent){t.next=17;break}throw new Error("No response from the AI service.");case 17:if(!u.error){t.next=19;break}throw new Error("Error from the AI service.");case 19:if(!u.cancel){t.next=21;break}return t.abrupt("return",null);case 21:if(u.output){t.next=23;break}throw new Error("No valid response from the AI service.");case 23:return c=u.output,t.next=26,this.setGuessedAltText(c);case 26:return r&&!this.hasAltTextData()&&(this.altTextData={alt:c,decorative:!1}),t.abrupt("return",c);case 28:case"end":return t.stop()}}),t,this)}))),function(){return n.apply(this,arguments)})},{key:"remove",value:function(){var t,r;kw(Ew,this)&&(xw(_w,this,null),this._uiManager.imageManager.deleteId(kw(Ew,this)),null===(t=kw(Lw,this))||void 0===t||t.remove(),xw(Lw,this,null),null===(r=kw(Mw,this))||void 0===r||r.disconnect(),xw(Mw,this,null),kw(Cw,this)&&(clearTimeout(kw(Cw,this)),xw(Cw,this,null))),dw(e,"remove",this,3)([])}},{key:"rebuild",value:function(){this.parent?(dw(e,"rebuild",this,3)([]),null!==this.div&&(kw(Ew,this)&&null===kw(Lw,this)&&Aw(Rw,this,Ww).call(this),this.isAttachedToDOM||this.parent.add(this))):kw(Ew,this)&&Aw(Rw,this,Ww).call(this)}},{key:"onceAdded",value:function(){this._isDraggable=!0,this.div.focus()}},{key:"isEmpty",value:function(){return!(kw(Sw,this)||kw(_w,this)||kw(Ow,this)||kw(Tw,this)||kw(Ew,this))}},{key:"isResizable",get:function(){return!0}},{key:"render",value:function(){if(this.div)return this.div;var t,r;if(this.width&&(t=this.x,r=this.y),dw(e,"render",this,3)([]),this.div.hidden=!0,this.div.setAttribute("role","figure"),this.addAltTextButton(),kw(_w,this)?Aw(Rw,this,Bw).call(this):Aw(Rw,this,Ww).call(this),this.width&&!this.annotationElementId){var n=nw(this.parentDimensions,2),i=n[0],a=n[1];this.setAt(t*i,r*a,this.width*i,this.height*a)}return this.div}},{key:"copyCanvas",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];t||(t=224);var n=kw(_w,this),i=n.width,a=n.height,o=new Fe,s=kw(_w,this),u=i,c=a,l=null;if(e){var h,f;if(i>e||a>e){var d=Math.min(e/i,e/a);u=Math.floor(i*d),c=Math.floor(a*d)}var v=(l=document.createElement("canvas")).width=Math.ceil(u*o.sx),p=l.height=Math.ceil(c*o.sy);kw(jw,this)||(s=Aw(Rw,this,Hw).call(this,v,p));var y=l.getContext("2d");y.filter=this._uiManager.hcmFilter;var g="white",m="#cfcfd8";"none"!==this._uiManager.hcmFilter?m="black":null!==(h=(f=window).matchMedia)&&void 0!==h&&h.call(f,"(prefers-color-scheme: dark)").matches&&(g="#8f8f9d",m="#42414d");var b=15*o.sx,w=15*o.sy,k=new OffscreenCanvas(2*b,2*w),x=k.getContext("2d");x.fillStyle=g,x.fillRect(0,0,2*b,2*w),x.fillStyle=m,x.fillRect(0,0,b,w),x.fillRect(b,w,b,w),y.fillStyle=y.createPattern(k,"repeat"),y.fillRect(0,0,v,p),y.drawImage(s,0,0,s.width,s.height,0,0,v,p)}var A=null;if(r){var _,E;if(o.symmetric&&s.widtht||a>t){var S=Math.min(t/i,t/a);_=Math.floor(i*S),E=Math.floor(a*S),kw(jw,this)||(s=Aw(Rw,this,Hw).call(this,_,E))}var O=new OffscreenCanvas(_,E).getContext("2d",{willReadFrequently:!0});O.drawImage(s,0,0,s.width,s.height,0,0,_,E),A={width:_,height:E,data:O.getImageData(0,0,_,E).data}}return{canvas:l,width:u,height:c,imageData:A}}},{key:"getImageForAltText",value:function(){return kw(Lw,this)}},{key:"serialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(this.isEmpty())return null;if(this.deleted)return this.serializeDeleted();var r={annotationType:A.STAMP,bitmapId:kw(Ew,this),pageIndex:this.pageIndex,rect:this.getRect(0,0),rotation:this.rotation,isSvg:kw(jw,this),structTreeParentId:this._structTreeParentId};if(t)return r.bitmapUrl=Aw(Rw,this,zw).call(this,!0),r.accessibilityData=this.serializeAltText(!0),r;var n=this.serializeAltText(!1),i=n.decorative,a=n.altText;if(!i&&a&&(r.accessibilityData={type:"Figure",alt:a}),this.annotationElementId){var o,s=Aw(Rw,this,qw).call(this,r);if(s.isSame)return null;s.isSameAltText?delete r.accessibilityData:r.accessibilityData.structParent=null!==(o=this._initialData.structParent)&&void 0!==o?o:-1}if(r.id=this.annotationElementId,null===e)return r;e.stamps||(e.stamps=new Map);var u=kw(jw,this)?(r.rect[2]-r.rect[0])*(r.rect[3]-r.rect[1]):null;if(e.stamps.has(kw(Ew,this))){if(kw(jw,this)){var c=e.stamps.get(kw(Ew,this));u>c.area&&(c.area=u,c.serialized.bitmap.close(),c.serialized.bitmap=Aw(Rw,this,zw).call(this,!1))}}else e.stamps.set(kw(Ew,this),{area:u,serialized:r}),r.bitmap=Aw(Rw,this,zw).call(this,!1);return r}},{key:"renderAnnotationElement",value:function(t){return t.updateEdited({rect:this.getRect(0,0)}),null}}],[{key:"initialize",value:function(t,e){Wa.initialize(t,e)}},{key:"supportedTypes",get:function(){return W(this,"supportedTypes",["apng","avif","bmp","gif","jpeg","png","svg+xml","webp","x-icon"].map((function(t){return"image/".concat(t)})))}},{key:"supportedTypesStr",get:function(){return W(this,"supportedTypesStr",this.supportedTypes.join(","))}},{key:"isHandlingMimeForPasting",value:function(t){return this.supportedTypes.includes(t)}},{key:"paste",value:function(t,e){e.pasteEditor(A.STAMP,{bitmapFile:t.getAsFile()})}},{key:"computeTelemetryFinalData",value:function(t){var e,r,n=t.get("hasAltText");return{hasAltText:null!==(e=n.get(!0))&&void 0!==e?e:0,hasNoAltText:null!==(r=n.get(!1))&&void 0!==r?r:0}}},{key:"deserialize",value:(r=sw(aw().mark((function t(r,n,i){var a,o,s,u,c,l,h,f,d,v,p,y,g,m,b,w,k,x,_,E,S,O,T,P,L;return aw().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=null,!(r instanceof qv)){t.next=22;break}return u=(s=r).data,c=u.rect,l=u.rotation,h=u.id,f=u.structParent,d=u.popupRef,v=s.container,p=s.parent.page.pageNumber,y=v.querySelector("canvas"),g=i.imageManager.getFromCanvas(v.id,y),y.remove(),t.next=8,n._structTree.getAriaAttributes("".concat(at).concat(h));case 8:if(t.t2=o=t.sent,t.t1=null===t.t2,t.t1){t.next=12;break}t.t1=void 0===o;case 12:if(!t.t1){t.next=16;break}t.t3=void 0,t.next=17;break;case 16:t.t3=o.get("aria-label");case 17:if(t.t0=t.t3,t.t0){t.next=20;break}t.t0="";case 20:m=t.t0,a=r={annotationType:A.STAMP,bitmapId:g.id,bitmap:g.bitmap,pageIndex:p-1,rect:c.slice(0),rotation:l,id:h,deleted:!1,accessibilityData:{decorative:!1,altText:m},isSvg:!1,structParent:f,popupRef:d};case 22:return t.next=24,dw(e,"deserialize",this,2)([r,n,i]);case 24:return b=t.sent,k=(w=r).rect,x=w.bitmap,_=w.bitmapUrl,E=w.bitmapId,S=w.isSvg,O=w.accessibilityData,E&&i.imageManager.isValidId(E)?(xw(Ew,b,E),x&&xw(_w,b,x)):xw(Ow,b,_),xw(jw,b,S),T=nw(b.pageDimensions,2),P=T[0],L=T[1],b.width=(k[2]-k[0])/P,b.height=(k[3]-k[1])/L,b.annotationElementId=r.id||null,O&&(b.altTextData=O),b._initialData=a,xw(Iw,b,!!a),t.abrupt("return",b);case 36:case"end":return t.stop()}}),t,this)}))),function(t,e,n){return r.apply(this,arguments)})}]);var r,n}();function Dw(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t?(xw(_w,this,t.bitmap),e||(xw(Ew,this,t.id),xw(jw,this,t.isSvg)),t.file&&xw(Pw,this,t.file.name),Aw(Rw,this,Bw).call(this)):this.remove()}function Nw(){if(xw(Sw,this,null),this._uiManager.enableWaiting(!1),kw(Lw,this)){if(this._uiManager.useNewAltTextWhenAddingImage&&this._uiManager.useNewAltTextFlow&&kw(_w,this))return this._editToolbar.hide(),void this._uiManager.editAltText(this,!0);if(!this._uiManager.useNewAltTextWhenAddingImage&&this._uiManager.useNewAltTextFlow&&kw(_w,this)){this._reportTelemetry({action:"pdfjs.image.image_added",data:{alt_text_modal:!1,alt_text_type:"empty"}});try{this.mlGuessAltText()}catch(t){}}this.div.focus()}}function Ww(){var t=this;if(kw(Ew,this))return this._uiManager.enableWaiting(!0),void this._uiManager.imageManager.getFromId(kw(Ew,this)).then((function(e){return Aw(Rw,t,Dw).call(t,e,!0)})).finally((function(){return Aw(Rw,t,Nw).call(t)}));if(kw(Ow,this)){var e=kw(Ow,this);return xw(Ow,this,null),this._uiManager.enableWaiting(!0),void xw(Sw,this,this._uiManager.imageManager.getFromUrl(e).then((function(e){return Aw(Rw,t,Dw).call(t,e)})).finally((function(){return Aw(Rw,t,Nw).call(t)})))}if(kw(Tw,this)){var r=kw(Tw,this);return xw(Tw,this,null),this._uiManager.enableWaiting(!0),void xw(Sw,this,this._uiManager.imageManager.getFromFile(r).then((function(e){return Aw(Rw,t,Dw).call(t,e)})).finally((function(){return Aw(Rw,t,Nw).call(t)})))}var n=document.createElement("input");n.type="file",n.accept=db.supportedTypesStr;var i=this._uiManager._signal;xw(Sw,this,new Promise((function(e){n.addEventListener("change",sw(aw().mark((function r(){var i;return aw().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(n.files&&0!==n.files.length){r.next=4;break}t.remove(),r.next=10;break;case 4:return t._uiManager.enableWaiting(!0),r.next=7,t._uiManager.imageManager.getFromFile(n.files[0]);case 7:i=r.sent,t._reportTelemetry({action:"pdfjs.image.image_selected",data:{alt_text_modal:t._uiManager.useNewAltTextFlow}}),Aw(Rw,t,Dw).call(t,i);case 10:e();case 11:case"end":return r.stop()}}),r)}))),{signal:i}),n.addEventListener("cancel",(function(){t.remove(),e()}),{signal:i})})).finally((function(){return Aw(Rw,t,Nw).call(t)}))),n.click()}function Bw(){var t=this.div,e=kw(_w,this),r=e.width,n=e.height,i=nw(this.pageDimensions,2),a=i[0],o=i[1],s=.75;if(this.width)r=this.width*a,n=this.height*o;else if(r>s*a||n>s*o){var u=Math.min(s*a/r,s*o/n);r*=u,n*=u}var c=nw(this.parentDimensions,2),l=c[0],h=c[1];this.setDims(r*l/a,n*h/o),this._uiManager.enableWaiting(!1);var f=xw(Lw,this,document.createElement("canvas"));f.setAttribute("role","img"),this.addContainer(f),this._uiManager.useNewAltTextWhenAddingImage&&this._uiManager.useNewAltTextFlow&&!this.annotationElementId||(t.hidden=!1),Aw(Rw,this,Uw).call(this,r,n),Aw(Rw,this,Vw).call(this),kw(Iw,this)||(this.parent.addUndoableEditor(this),xw(Iw,this,!0)),this._reportTelemetry({action:"inserted_image"}),kw(Pw,this)&&f.setAttribute("aria-label",kw(Pw,this))}function Gw(t,e){var r,n=this,i=nw(this.parentDimensions,2),a=i[0],o=i[1];this.width=t/a,this.height=e/o,null!==(r=this._initialOptions)&&void 0!==r&&r.isCentered?this.center():this.fixAndSetPosition(),this._initialOptions=null,null!==kw(Cw,this)&&clearTimeout(kw(Cw,this)),xw(Cw,this,setTimeout((function(){xw(Cw,n,null),Aw(Rw,n,Uw).call(n,t,e)}),200))}function Hw(t,e){for(var r=kw(_w,this),n=r.width,i=r.height,a=kw(_w,this);n>2*t||i>2*e;){var o=n,s=i;n>2*t&&(n=n>=16384?Math.floor(n/2)-1:Math.ceil(n/2)),i>2*e&&(i=i>=16384?Math.floor(i/2)-1:Math.ceil(i/2));var u=new OffscreenCanvas(n,i);u.getContext("2d").drawImage(a,0,0,o,s,0,0,n,i),a=u.transferToImageBitmap()}return a}function Uw(t,e){var r=new Fe,n=Math.ceil(t*r.sx),i=Math.ceil(e*r.sy),a=kw(Lw,this);if(a&&(a.width!==n||a.height!==i)){a.width=n,a.height=i;var o=kw(jw,this)?kw(_w,this):Aw(Rw,this,Hw).call(this,n,i),s=a.getContext("2d");s.filter=this._uiManager.hcmFilter,s.drawImage(o,0,0,o.width,o.height,0,0,n,i)}}function zw(t){if(t){if(kw(jw,this)){var e=this._uiManager.imageManager.getSvgUrl(kw(Ew,this));if(e)return e}var r=document.createElement("canvas"),n=kw(_w,this);return r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(kw(_w,this),0,0),r.toDataURL()}if(kw(jw,this)){var i=nw(this.pageDimensions,2),a=i[0],o=i[1],s=Math.round(this.width*a*Vt.PDF_TO_CSS_UNITS),u=Math.round(this.height*o*Vt.PDF_TO_CSS_UNITS),c=new OffscreenCanvas(s,u);return c.getContext("2d").drawImage(kw(_w,this),0,0,kw(_w,this).width,kw(_w,this).height,0,0,s,u),c.transferToImageBitmap()}return structuredClone(kw(_w,this))}function Vw(){var t=this;this._uiManager._signal&&(xw(Mw,this,new ResizeObserver((function(e){var r=e[0].contentRect;r.width&&r.height&&Aw(Rw,t,Gw).call(t,r.width,r.height)}))),kw(Mw,this).observe(this.div),this._uiManager._signal.addEventListener("abort",(function(){var e;null===(e=kw(Mw,t))||void 0===e||e.disconnect(),xw(Mw,t,null)}),{once:!0}))}function qw(t){var e,r=this._initialData,n=r.rect,i=r.pageIndex,a=r.accessibilityData.altText,o=t.rect.every((function(t,e){return Math.abs(t-n[e])<1})),s=t.pageIndex===i,u=((null===(e=t.accessibilityData)||void 0===e?void 0:e.alt)||"")===a;return{isSame:o&&s&&u,isSameAltText:u}}function Yw(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Xw(t){for(var e=1;e=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;P(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:M(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function Qw(t,e,r,n,i,a,o){try{var s=t[a](o),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,i)}function Jw(t){return function(){var e=this,r=arguments;return new Promise((function(n,i){var a=t.apply(e,r);function o(t){Qw(a,n,i,o,s,"next",t)}function s(t){Qw(a,n,i,o,s,"throw",t)}o(void 0)}))}}function $w(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=Zw(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Zw(t,e){if(t){if("string"==typeof t)return tk(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?tk(t,e):void 0}}function tk(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r0&&void 0!==arguments[0]?arguments[0]:sk(kk,this).getMode();switch(ck(xk,this,Tk).call(this),t){case A.NONE:return this.disableTextSelection(),this.togglePointerEvents(!1),this.toggleAnnotationLayerPointerEvents(!0),void this.disableClick();case A.INK:this.addInkEditorIfNeeded(!1),this.disableTextSelection(),this.togglePointerEvents(!0),this.disableClick();break;case A.HIGHLIGHT:this.enableTextSelection(),this.togglePointerEvents(!1),this.disableClick();break;default:this.disableTextSelection(),this.togglePointerEvents(!0),this.enableClick()}this.toggleAnnotationLayerPointerEvents(!1);var e,r=this.div.classList,n=$w(Lk._.values());try{for(n.s();!(e=n.n()).done;){var i=e.value;r.toggle("".concat(i._type,"Editing"),t===i._editorType)}}catch(t){n.e(t)}finally{n.f()}this.div.hidden=!1}},{key:"hasTextLayer",value:function(t){var e;return t===(null===(e=sk(bk,this))||void 0===e?void 0:e.div)}},{key:"addInkEditorIfNeeded",value:function(t){if(sk(kk,this).getMode()===A.INK){if(!t){var e,r=$w(sk(pk,this).values());try{for(r.s();!(e=r.n()).done;){var n=e.value;if(n.isEmpty())return void n.setInBackground()}}catch(t){r.e(t)}finally{r.f()}}this.createAndAddNewEditor({offsetX:0,offsetY:0},!1).setInBackground()}}},{key:"setEditingState",value:function(t){sk(kk,this).setEditingState(t)}},{key:"addCommands",value:function(t){sk(kk,this).addCommands(t)}},{key:"toggleDrawing",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.div.classList.toggle("drawing",!t)}},{key:"togglePointerEvents",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.div.classList.toggle("disabled",!t)}},{key:"toggleAnnotationLayerPointerEvents",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];null===(t=sk(fk,this))||void 0===t||t.div.classList.toggle("disabled",!e)}},{key:"enable",value:(e=Jw(Kw().mark((function t(){var e,r,n,i,a,o,s,u,c;return Kw().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:this.div.tabIndex=0,this.togglePointerEvents(!0),e=new Set,r=$w(sk(pk,this).values());try{for(r.s();!(n=r.n()).done;)(i=n.value).enableEditing(),i.show(!0),i.annotationElementId&&(sk(kk,this).removeChangedExistingAnnotation(i),e.add(i.annotationElementId))}catch(t){r.e(t)}finally{r.f()}if(sk(fk,this)){t.next=7;break}return t.abrupt("return");case 7:a=sk(fk,this).getEditableAnnotations(),o=$w(a),t.prev=9,o.s();case 11:if((s=o.n()).done){t.next=27;break}if((u=s.value).hide(),!sk(kk,this).isDeletedAnnotationElement(u.data.id)){t.next=16;break}return t.abrupt("continue",25);case 16:if(!e.has(u.data.id)){t.next=18;break}return t.abrupt("continue",25);case 18:return t.next=20,this.deserialize(u);case 20:if(c=t.sent){t.next=23;break}return t.abrupt("continue",25);case 23:this.addOrRebuild(c),c.enableEditing();case 25:t.next=11;break;case 27:t.next=32;break;case 29:t.prev=29,t.t0=t.catch(9),o.e(t.t0);case 32:return t.prev=32,o.f(),t.finish(32);case 35:case"end":return t.stop()}}),t,this,[[9,29,32,35]])}))),function(){return e.apply(this,arguments)})},{key:"disable",value:function(){uk(mk,this,!0),this.div.tabIndex=-1,this.togglePointerEvents(!1);var t,e=new Map,r=new Map,n=$w(sk(pk,this).values());try{for(n.s();!(t=n.n()).done;){var i,a=t.value;a.disableEditing(),a.annotationElementId&&(null===a.serialize()?(r.set(a.annotationElementId,a),null===(i=this.getEditableAnnotation(a.annotationElementId))||void 0===i||i.show(),a.remove()):e.set(a.annotationElementId,a))}}catch(t){n.e(t)}finally{n.f()}if(sk(fk,this)){var o,s=$w(sk(fk,this).getEditableAnnotations());try{for(s.s();!(o=s.n()).done;){var u=o.value,c=u.data.id;if(!sk(kk,this).isDeletedAnnotationElement(c)){var l=r.get(c);l?(l.resetAnnotationElement(u),l.show(!1),u.show()):((l=e.get(c))&&(sk(kk,this).addChangedExistingAnnotation(l),l.renderAnnotationElement(u)&&l.show(!1)),u.show())}}}catch(t){s.e(t)}finally{s.f()}}ck(xk,this,Tk).call(this),this.isEmpty&&(this.div.hidden=!0);var h,f=this.div.classList,d=$w(Lk._.values());try{for(d.s();!(h=d.n()).done;){var v=h.value;f.remove("".concat(v._type,"Editing"))}}catch(t){d.e(t)}finally{d.f()}this.disableTextSelection(),this.toggleAnnotationLayerPointerEvents(!0),uk(mk,this,!1)}},{key:"getEditableAnnotation",value:function(t){var e;return(null===(e=sk(fk,this))||void 0===e?void 0:e.getEditableAnnotation(t))||null}},{key:"setActiveEditor",value:function(t){sk(kk,this).getActive()!==t&&sk(kk,this).setActiveEditor(t)}},{key:"enableTextSelection",value:function(){var t;if(this.div.tabIndex=-1,null!==(t=sk(bk,this))&&void 0!==t&&t.div&&!sk(wk,this)){uk(wk,this,new AbortController);var e=sk(kk,this).combinedSignal(sk(wk,this));sk(bk,this).div.addEventListener("pointerdown",ck(xk,this,_k).bind(this),{signal:e}),sk(bk,this).div.classList.add("highlighting")}}},{key:"disableTextSelection",value:function(){var t;this.div.tabIndex=0,null!==(t=sk(bk,this))&&void 0!==t&&t.div&&sk(wk,this)&&(sk(wk,this).abort(),uk(wk,this,null),sk(bk,this).div.classList.remove("highlighting"))}},{key:"enableClick",value:function(){if(!sk(dk,this)){uk(dk,this,new AbortController);var t=sk(kk,this).combinedSignal(sk(dk,this));this.div.addEventListener("pointerdown",this.pointerdown.bind(this),{signal:t}),this.div.addEventListener("pointerup",this.pointerup.bind(this),{signal:t})}}},{key:"disableClick",value:function(){var t;null===(t=sk(dk,this))||void 0===t||t.abort(),uk(dk,this,null)}},{key:"attach",value:function(t){sk(pk,this).set(t.id,t);var e=t.annotationElementId;e&&sk(kk,this).isDeletedAnnotationElement(e)&&sk(kk,this).removeDeletedAnnotationElement(t)}},{key:"detach",value:function(t){var e;sk(pk,this).delete(t.id),null===(e=sk(lk,this))||void 0===e||e.removePointerInTextLayer(t.contentDiv),!sk(mk,this)&&t.annotationElementId&&sk(kk,this).addDeletedAnnotationElement(t)}},{key:"remove",value:function(t){this.detach(t),sk(kk,this).removeEditor(t),t.div.remove(),t.isAttachedToDOM=!1,sk(gk,this)||this.addInkEditorIfNeeded(!1)}},{key:"changeParent",value:function(t){var e;t.parent!==this&&(t.parent&&t.annotationElementId&&(sk(kk,this).addDeletedAnnotationElement(t.annotationElementId),Wa.deleteAnnotationElement(t),t.annotationElementId=null),this.attach(t),null===(e=t.parent)||void 0===e||e.detach(t),t.setParent(this),t.div&&t.isAttachedToDOM&&(t.div.remove(),this.div.append(t.div)))}},{key:"add",value:function(t){if(t.parent!==this||!t.isAttachedToDOM){if(this.changeParent(t),sk(kk,this).addEditor(t),this.attach(t),!t.isAttachedToDOM){var e=t.render();this.div.append(e),t.isAttachedToDOM=!0}t.fixAndSetPosition(),t.onceAdded(),sk(kk,this).addToAnnotationStorage(t),t._reportTelemetry(t.telemetryInitialData)}}},{key:"moveEditorInDOM",value:function(t){var e,r=this;if(t.isAttachedToDOM){var n=document.activeElement;t.div.contains(n)&&!sk(vk,this)&&(t._focusEventsAllowed=!1,uk(vk,this,setTimeout((function(){uk(vk,r,null),t.div.contains(document.activeElement)?t._focusEventsAllowed=!0:(t.div.addEventListener("focusin",(function(){t._focusEventsAllowed=!0}),{once:!0,signal:sk(kk,r)._signal}),n.focus())}),0))),t._structTreeParentId=null===(e=sk(lk,this))||void 0===e?void 0:e.moveElementInDOM(this.div,t.div,t.contentDiv,!0)}}},{key:"addOrRebuild",value:function(t){t.needsToBeRebuilt()?(t.parent||(t.parent=this),t.rebuild(),t.show()):this.add(t)}},{key:"addUndoableEditor",value:function(t){this.addCommands({cmd:function(){return t._uiManager.rebuild(t)},undo:function(){t.remove()},mustExec:!1})}},{key:"getNextId",value:function(){return sk(kk,this).getId()}},{key:"combinedSignal",value:function(t){return sk(kk,this).combinedSignal(t)}},{key:"canCreateNewEmptyEditor",value:function(){var t;return null===(t=ok(xk,this,Ek))||void 0===t?void 0:t.canCreateNewEmptyEditor()}},{key:"pasteEditor",value:function(t,e){sk(kk,this).updateToolbar(t),sk(kk,this).updateMode(t);var r=ck(xk,this,Ok).call(this),n=r.offsetX,i=r.offsetY,a=this.getNextId(),o=ck(xk,this,Sk).call(this,Xw({parent:this,id:a,x:n,y:i,uiManager:sk(kk,this),isCentered:!0},e));o&&this.add(o)}},{key:"deserialize",value:(t=Jw(Kw().mark((function t(e){var r,n;return Kw().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,null===(r=Lk._.get(null!==(n=e.annotationType)&&void 0!==n?n:e.annotationEditorType))||void 0===r?void 0:r.deserialize(e,this,sk(kk,this));case 2:if(t.t0=t.sent,t.t0){t.next=5;break}t.t0=null;case 5:return t.abrupt("return",t.t0);case 6:case"end":return t.stop()}}),t,this)}))),function(e){return t.apply(this,arguments)})},{key:"createAndAddNewEditor",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=this.getNextId(),i=ck(xk,this,Sk).call(this,Xw({parent:this,id:n,x:t.offsetX,y:t.offsetY,uiManager:sk(kk,this),isCentered:e},r));return i&&this.add(i),i}},{key:"addNewEditor",value:function(){this.createAndAddNewEditor(ck(xk,this,Ok).call(this),!0)}},{key:"setSelected",value:function(t){sk(kk,this).setSelected(t)}},{key:"toggleSelected",value:function(t){sk(kk,this).toggleSelected(t)}},{key:"unselect",value:function(t){sk(kk,this).unselect(t)}},{key:"pointerup",value:function(t){var e=J.platform.isMac;0!==t.button||t.ctrlKey&&e||t.target===this.div&&sk(yk,this)&&(uk(yk,this,!1),sk(hk,this)?sk(kk,this).getMode()!==A.STAMP?this.createAndAddNewEditor(t,!1):sk(kk,this).unselectAll():uk(hk,this,!0))}},{key:"pointerdown",value:function(t){if(sk(kk,this).getMode()===A.HIGHLIGHT&&this.enableTextSelection(),sk(yk,this))uk(yk,this,!1);else{var e=J.platform.isMac;if(!(0!==t.button||t.ctrlKey&&e)&&t.target===this.div){uk(yk,this,!0);var r=sk(kk,this).getActive();uk(hk,this,!r||r.isEmpty())}}}},{key:"findNewParent",value:function(t,e,r){var n=sk(kk,this).findParent(e,r);return null!==n&&n!==this&&(n.changeParent(t),!0)}},{key:"destroy",value:function(){var t;(null===(t=sk(kk,this).getActive())||void 0===t?void 0:t.parent)===this&&(sk(kk,this).commitOrRemove(),sk(kk,this).setActiveEditor(null)),sk(vk,this)&&(clearTimeout(sk(vk,this)),uk(vk,this,null));var e,r=$w(sk(pk,this).values());try{for(r.s();!(e=r.n()).done;){var n,i=e.value;null===(n=sk(lk,this))||void 0===n||n.removePointerInTextLayer(i.contentDiv),i.setParent(null),i.isAttachedToDOM=!1,i.div.remove()}}catch(t){r.e(t)}finally{r.f()}this.div=null,sk(pk,this).clear(),sk(kk,this).removeLayer(this)}},{key:"render",value:function(t){var e=t.viewport;this.viewport=e,Re(this.div,e);var r,n=$w(sk(kk,this).getEditors(this.pageIndex));try{for(n.s();!(r=n.n()).done;){var i=r.value;this.add(i),i.rebuild()}}catch(t){n.e(t)}finally{n.f()}this.updateMode()}},{key:"update",value:function(t){var e=t.viewport;sk(kk,this).commitOrRemove(),ck(xk,this,Tk).call(this);var r=this.viewport.rotation,n=e.rotation;if(this.viewport=e,Re(this.div,{rotation:n}),r!==n){var i,a=$w(sk(pk,this).values());try{for(a.s();!(i=a.n()).done;)i.value.rotate(n)}catch(t){a.e(t)}finally{a.f()}}this.addInkEditorIfNeeded(!1)}},{key:"pageDimensions",get:function(){var t=this.viewport.rawDims;return[t.pageWidth,t.pageHeight]}},{key:"scale",get:function(){return sk(kk,this).viewParameters.realScale}}]);var t,e}();function _k(t){var e=this;sk(kk,this).unselectAll();var r=t.target;if(r===sk(bk,this).div||("img"===r.getAttribute("role")||r.classList.contains("endOfContent"))&&sk(bk,this).div.contains(r)){var n=J.platform.isMac;if(0!==t.button||t.ctrlKey&&n)return;sk(kk,this).showAllEditors("highlight",!0,!0),sk(bk,this).div.classList.add("free"),this.toggleDrawing(),Om.startHighlighting(this,"ltr"===sk(kk,this).direction,{target:sk(bk,this).div,x:t.x,y:t.y}),sk(bk,this).div.addEventListener("pointerup",(function(){sk(bk,e).div.classList.remove("free"),e.toggleDrawing(!0)}),{once:!0,signal:sk(kk,this)._signal}),t.preventDefault()}}function Ek(t){return Lk._.get(sk(kk,t).getMode())}function Sk(t){var e=ok(xk,this,Ek);return e?new e.prototype.constructor(t):null}function Ok(){var t=this.div.getBoundingClientRect(),e=t.x,r=t.y,n=t.width,i=t.height,a=Math.max(0,e),o=Math.max(0,r),s=(a+Math.min(window.innerWidth,e+n))/2-e,u=(o+Math.min(window.innerHeight,r+i))/2-r,c=function(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,i,a,o,s=[],u=!0,c=!1;try{if(a=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=a.call(r)).done)&&(s.push(n.value),s.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw i}}return s}}(t,e)||Zw(t,e)||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.")}()}(this.viewport.rotation%180==0?[s,u]:[u,s],2);return{offsetX:c[0],offsetY:c[1]}}function Tk(){uk(gk,this,!0);var t,e=$w(sk(pk,this).values());try{for(e.s();!(t=e.n()).done;){var r=t.value;r.isEmpty()&&r.remove()}}catch(t){e.e(t)}finally{e.f()}uk(gk,this,!1)}rk(Ak,"_initialized",!1);var Pk,Lk={_:new Map([Dp,Tb,Fw,Om].map((function(t){return[t._editorType,t]})))};function Mk(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return Ck(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ck(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){s=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Ck(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r0){var e,r=Mk(Nk(Hk,this).values());try{for(r.s();!(e=r.n()).done;){var n=e.value;n.remove(),t.append(n)}}catch(t){r.e(t)}finally{r.f()}}Dk(Bk,this,t)}}else Dk(Bk,this,t)}},{key:"highlight",value:function(e,r,n){var i,a,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3],s=(Dk(Gk,this,(i=Nk(Gk,this),a=i++,i)),a),u=Wk(zk,this,Yk).call(this,e.box);u.classList.add("highlight"),e.free&&u.classList.add("free");var c=t._svgFactory.createElement("defs");u.append(c);var l=t._svgFactory.createElement("path");c.append(l);var h="path_p".concat(this.pageIndex,"_").concat(s);l.setAttribute("id",h),l.setAttribute("d",e.toSVGPath()),o&&Nk(Uk,this).set(s,l);var f=Wk(zk,this,Xk).call(this,c,h),d=t._svgFactory.createElement("use");return u.append(d),u.setAttribute("fill",r),u.setAttribute("fill-opacity",n),d.setAttribute("href","#".concat(h)),Nk(Hk,this).set(s,u),{id:s,clipPathId:"url(#".concat(f,")")}}},{key:"highlightOutline",value:function(e){var r,n,i=(Dk(Gk,this,(r=Nk(Gk,this),n=r++,r)),n),a=Wk(zk,this,Yk).call(this,e.box);a.classList.add("highlightOutline");var o=t._svgFactory.createElement("defs");a.append(o);var s=t._svgFactory.createElement("path");o.append(s);var u,c="path_p".concat(this.pageIndex,"_").concat(i);if(s.setAttribute("id",c),s.setAttribute("d",e.toSVGPath()),s.setAttribute("vector-effect","non-scaling-stroke"),e.free){a.classList.add("free");var l=t._svgFactory.createElement("mask");o.append(l),u="mask_p".concat(this.pageIndex,"_").concat(i),l.setAttribute("id",u),l.setAttribute("maskUnits","objectBoundingBox");var h=t._svgFactory.createElement("rect");l.append(h),h.setAttribute("width","1"),h.setAttribute("height","1"),h.setAttribute("fill","white");var f=t._svgFactory.createElement("use");l.append(f),f.setAttribute("href","#".concat(c)),f.setAttribute("stroke","none"),f.setAttribute("fill","black"),f.setAttribute("fill-rule","nonzero"),f.classList.add("mask")}var d=t._svgFactory.createElement("use");a.append(d),d.setAttribute("href","#".concat(c)),u&&d.setAttribute("mask","url(#".concat(u,")"));var v=d.cloneNode();return a.append(v),d.classList.add("mainOutline"),v.classList.add("secondaryOutline"),Nk(Hk,this).set(i,a),i}},{key:"finalizeLine",value:function(t,e){var r=Nk(Uk,this).get(t);Nk(Uk,this).delete(t),this.updateBox(t,e.box),r.setAttribute("d",e.toSVGPath())}},{key:"updateLine",value:function(t,e){Nk(Hk,this).get(t).firstChild.firstChild.setAttribute("d",e.toSVGPath())}},{key:"removeFreeHighlight",value:function(t){this.remove(t),Nk(Uk,this).delete(t)}},{key:"updatePath",value:function(t,e){Nk(Uk,this).get(t).setAttribute("d",e.toSVGPath())}},{key:"updateBox",value:function(e,r){qk.call(t,Nk(Hk,this).get(e),r)}},{key:"show",value:function(t,e){Nk(Hk,this).get(t).classList.toggle("hidden",!e)}},{key:"rotate",value:function(t,e){Nk(Hk,this).get(t).setAttribute("data-main-rotation",e)}},{key:"changeColor",value:function(t,e){Nk(Hk,this).get(t).setAttribute("fill",e)}},{key:"changeOpacity",value:function(t,e){Nk(Hk,this).get(t).setAttribute("fill-opacity",e)}},{key:"addClass",value:function(t,e){Nk(Hk,this).get(t).classList.add(e)}},{key:"removeClass",value:function(t,e){Nk(Hk,this).get(t).classList.remove(e)}},{key:"getSVGRoot",value:function(t){return Nk(Hk,this).get(t)}},{key:"remove",value:function(t){null!==Nk(Bk,this)&&(Nk(Hk,this).get(t).remove(),Nk(Hk,this).delete(t))}},{key:"destroy",value:function(){Dk(Bk,this,null);var t,e=Mk(Nk(Hk,this).values());try{for(e.s();!(t=e.n()).done;)t.value.remove()}catch(t){e.e(t)}finally{e.f()}Nk(Hk,this).clear()}}],[{key:"_svgFactory",get:function(){return W(this,"_svgFactory",new me)}}])}();function qk(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.x,n=void 0===r?0:r,i=e.y,a=void 0===i?0:i,o=e.width,s=void 0===o?1:o,u=e.height,c=void 0===u?1:u,l=t.style;l.top="".concat(100*a,"%"),l.left="".concat(100*n,"%"),l.width="".concat(100*s,"%"),l.height="".concat(100*c,"%")}function Yk(t){var e=Pk._svgFactory.create(1,1,!0);return Nk(Bk,this).append(e),e.setAttribute("aria-hidden",!0),qk.call(Pk,e,t),e}function Xk(t,e){var r=Pk._svgFactory.createElement("clipPath");t.append(r);var n="clip_".concat(e);r.setAttribute("id",n),r.setAttribute("clipPathUnits","objectBoundingBox");var i=Pk._svgFactory.createElement("use");return r.append(i),i.setAttribute("href","#".concat(e)),i.classList.add("clip"),n}Pk=Vk;`;function ye(e){var r,a,h,s,o;for(r="",h=e.length,a=0;a=1&&s<=127?r+=e.charAt(a):s>2047?(o=224|s>>12&15,r+=String.fromCharCode(o),o=128|s>>6&63,r+=String.fromCharCode(o),o=128|s>>0&63,r+=String.fromCharCode(o)):(o=192|s>>6&31,r+=String.fromCharCode(o),o=128|s>>0&63,r+=String.fromCharCode(o));return r}var p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function Ce(e){var r,a,h,s,o,d;for(h=e.length,a=0,r="";a>2),r+=p.charAt((s&3)<<4),r+="==";break}if(o=e.charCodeAt(a++),a==h){r+=p.charAt(s>>2),r+=p.charAt((s&3)<<4|(o&240)>>4),r+=p.charAt((o&15)<<2),r+="=";break}d=e.charCodeAt(a++),r+=p.charAt(s>>2),r+=p.charAt((s&3)<<4|(o&240)>>4),r+=p.charAt((o&15)<<2|(d&192)>>6),r+=p.charAt(d&63)}return r}function _(e){return Ce(ye(e))}const ve=`data:text/javascript;base64,${_(pe)}`,Be=`data:text/javascript;base64,${_(Ie)}`;let P=!1,H=!1;const Ee=re({name:"VueOfficePdf",props:{src:[String,ArrayBuffer,Blob],requestOptions:{type:Object,default:()=>({})},staticFileUrl:{type:String,default:"https://unpkg.com/pdfjs-dist@3.1.81/"},options:{type:Object,default:()=>({})},defaultScale:{type:Number,default:1}},emits:["rendered","error"],setup(e,{emit:r}){let a=null,h=null;const s=E(null),o=E(null),d=E([]),N=E(0);let y=0,L=0,B=0,G=0,m=6,x=0,b=0,D=null,Q=2,C=E(e.options.defaultScale||1);ie(()=>{a!==null&&(a.destroy(),a=null,h=null,D&&clearTimeout(D))});function J(){return C}function j(i){C.value=i,F()}function Y(){return $(ve).then(()=>{if(window.pdfjsLib&&!H)H=!0,window.pdfjsLib.GlobalWorkerOptions.workerSrc=Be;else return Promise.reject("window.pdfjsLib未找到")})}function q(){return new Promise(i=>{const n=()=>{window.pdfjsLib?i():D=setTimeout(n,10)};n()})}function M(){return window.pdfjsLib?Promise.resolve():P?q():(P=!0,Y())}function U(){o.value.innerHTML=""}function F(){if(!e.src){U(),r("error",new Error("src不能为空"));return}h=window.pdfjsLib.getDocument({url:X(e.src,{type:"application/pdf"}),withCredentials:e.requestOptions&&e.requestOptions.withCredentials,cMapUrl:`${e.staticFileUrl.endsWith("/")?e.staticFileUrl:e.staticFileUrl+"/"}cmaps/`,cMapPacked:!0,enableXfa:!0,...te(e.options,["width"])}),h.promise.then(i=>{a&&a.destroy(),a=i,K(a).then(n=>{y=a.numPages,G=s.value.getBoundingClientRect().height,L=n.width,B=n.height,x=n.canvasWidth,b=n.canvasHeight;let c=e.options.gap||10;m=Math.ceil(G/(B+c))+4;let t=(B+c)*y-c;o.value.style.height=t+"px",U(),R(1,Math.min(y,m))})}).catch(i=>{r("error",i)})}function K(i){return i.getPage(1).then(n=>{let c=e.options.width||o.value.getBoundingClientRect().width-20,t=n.getViewport({scale:1});t.width>c*1.5?Q=.5:t.width>c?Q=1:Q=2,t=n.getViewport({scale:Q*(C.value<1?C.value:1)});const l=window.devicePixelRatio>2?1.5:2;let g=Math.floor(t.width*l),f=Math.floor(t.height*l),A=Math.floor(t.width),u=Math.floor(t.height);if(e.options.width){let v=e.options.width/A;A=Math.floor(e.options.width),u=Math.floor(u*v)}let I=o.value.getBoundingClientRect().width-20;if(A>I){let v=I/A;A=Math.floor(I),u=Math.floor(u*v)}return{width:A,height:u,canvasWidth:g,canvasHeight:f}}).catch(n=>{r("error",n)})}const W=ee.debounce(function(i){const{scrollTop:n}=i.target;let c=parseInt(getComputedStyle(o.value).paddingTop)||0;const t=e.options.gap||10,l=Math.max(Math.floor(Math.max(n-c,0)/(B+t))-1,1),g=Math.min(l+m-1,y);R(l,g)},60);function w(i){let n=parseInt(getComputedStyle(o.value).paddingTop)||0,c=e.options.gap||10;const t=document.createElement("canvas");return t.style.position="absolute",t.style.top=(i-1)*(B+c)+n+"px",t.style.left="50%",t.style.transform="translate(-50%)",t.style.backgroundColor="#fff",t.setAttribute("data-id",i),t.width=x,t.height=b,t.style.width=`${L}px`,t.style.height=`${B}px`,t}function R(i,n){let c=o.value,t=[...c.childNodes],l=[];if(c.childNodes.length===0)for(let g=i;g<=n;g++){let f=w(g);c.appendChild(f),l.push(k(g,f))}else{let g=+t[0].getAttribute("data-id"),f=+t[t.length-1].getAttribute("data-id");if(nf)for(let A=i;A<=n;A++){let u=w(A);c.appendChild(u),l.push(k(A,u))}if(i=g){let A=t[0];for(let u=g-1;u>=i;u--){let I=w(u);c.insertBefore(I,A),A=I,l.push(k(u,I))}}for(let A=0;A<=f-g;A++){let u=+t[A].getAttribute("data-id");(un)&&c.removeChild(t[A])}if(n>f&&i<=f)for(let A=f+1;A<=n;A++){let u=w(A);c.appendChild(u),l.push(k(A,u))}}Promise.all(l).then(g=>{r("rendered")}).catch(g=>{r("error",g)})}function k(i,n){return a.getPage(i).then(c=>{const t=c.getViewport({scale:Q*(C.value<1?C.value:1)});let l=window.devicePixelRatio>2?1.5:2;if(x*t.height!==b*t.width){let u=Math.floor(t.width*l),I=Math.floor(t.height*l),v=b/I;l=l*v,n.width=u*v,n.style.width=parseInt(n.style.width)*v+"px"}const g=n.getContext("2d"),f=l!==1?[l,0,0,l,0,0]:null;return c.render({canvasContext:g,transform:f,viewport:t}).promise})}function Z(){R(1,Math.min(y,m))}ae(()=>{e.src&&M().then(F).catch(i=>{console.warn(i)})}),oe(()=>e.src,()=>{M().then(F).catch(i=>{console.warn(i)})});function V(i){a&&a._transport&&a._transport.getData().then(n=>{z(i||`vue-office-pdf-${new Date().getTime()}.pdf`,n.buffer)})}return{containerRef:s,wrapperRef:o,rootRef:d,numPages:N,save:V,onScrollPdf:W,rerender:Z,userScale:C,getScale:J,setScale:j}}});function Qe(e,r,a,h,s,o){return T(),Ae("div",{class:"vue-office-pdf",ref:"containerRef",style:{"text-align":"center","overflow-y":"auto",position:"relative"},onScroll:r[0]||(r[0]=(...d)=>e.onScrollPdf&&e.onScrollPdf(...d))},[se("div",{ref:"wrapperRef",class:"vue-office-pdf-wrapper",style:ce([{background:"gray",padding:"30px 0",position:"relative","box-sizing":"content-box"},{width:`${100*(e.userScale<1?1:e.userScale)}%`}])},null,4),ue(e.$slots,"default")],544)}const S=ne(Ee,[["render",Qe]]);S.install=function(e){e.component(S.name,S)};const Se={__name:"PdfDemo",setup(e){function r(){O.hideLoading()}function a(d){console.log("出差",d),O.hideLoading()}const h=location.origin+(location.pathname+"/").replace("//","/")+"static/test-files/test.pdf",s=E();window.docxRef=s;const o={headers:{"component-name":"VueOfficePdf"}};return(d,N)=>(T(),le(de,{accept:".pdf",placeholder:"请输入pdf文件地址","default-src":h},{default:ge(y=>[he(fe(S),{ref_key:"docxRef",ref:s,src:y.src,style:{flex:"1",height:"0"},"request-options":o,onRendered:r,onError:a},null,8,["src"])]),_:1}))}};export{Se as default}; diff --git a/examples/dist/assets/PptxDemo-d435d522.js b/examples/dist/assets/PptxDemo-d435d522.js new file mode 100644 index 0000000..75facb0 --- /dev/null +++ b/examples/dist/assets/PptxDemo-d435d522.js @@ -0,0 +1,2 @@ +import{o as Te}from"./jszip.min-e66ecff9.js";import{l as f}from"./lodash-1ce1e4ec.js";import{d as Be,_ as Oe,r as je,o as Ee,w as Ne,a as ke,c as Fe,b as Pe,e as Ze,f as De,g as ze,u as He}from"./index-b9f20394.js";import{P as Ue,u as ue}from"./PreviewWrapper-b82be9e1.js";import"./_commonjs-dynamic-modules-302442b1.js";var he=function(o,n){return he=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var s in a)Object.prototype.hasOwnProperty.call(a,s)&&(i[s]=a[s])},he(o,n)};function Mt(o,n){if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");he(o,n);function i(){this.constructor=o}o.prototype=n===null?Object.create(n):(i.prototype=n.prototype,new i)}var S=function(){return S=Object.assign||function(n){for(var i,a=1,s=arguments.length;a0&&h[h.length-1])&&(b[0]===6||b[0]===2)){i=0;continue}if(b[0]===3&&(!h||b[1]>h[0]&&b[1]/= `,y=0;return gt=1,Se(function g(){for(var P=[];o[y];){if(o.charCodeAt(y)==n){if(o.charCodeAt(y+1)===s)return y=o.indexOf(">",y),P;if(o.charCodeAt(y+1)===h){if(o.charCodeAt(y+2)==a){for(;o.charCodeAt(y)!==i||o.charCodeAt(y-1)!=a||o.charCodeAt(y-2)!=a||y==-1;)y=o.indexOf(">",y+1);y===-1&&(y=o.length)}else for(y+=2;o.charCodeAt(y)!==i;y++);y++;continue}if(o.charCodeAt(y+1)===w){y=o.indexOf(">",y),y++;continue}for(var L=++y;b.indexOf(o[y])===-1;y++);for(var C=o.slice(L,y),R=!1,j={};o.charCodeAt(y)!==i;y++){var c=o.charCodeAt(y);if(c>64&&c<91||c>96&&c<123){for(L=y;b.indexOf(o[y])===-1;y++);for(var t=o.slice(L,y),r=o.charCodeAt(y);r!==d&&r!==u;)y++,r=o.charCodeAt(y);var e=o[y],l=++y;y=o.indexOf(e,l);var p=o.slice(l,y);R||(j={},R=!0),j[t]=p}}var v=[];o.charCodeAt(y-1)!==s&&(y++,v=g()),P.push({children:v,tagName:C,attrs:j})}else{var x=y;(y=o.indexOf("<",y)-1)===-2&&(y=o.length);var m=o.slice(x,y+1);m.length>0&&P.push(m)}y++}return P}())}function Se(o){var n={};if(o===void 0)return{};if(o.length===1&&typeof o[0]=="string")return o[0];for(var i in o.forEach(function(a){if(n[a.tagName]||(n[a.tagName]=[]),typeof a=="object"){var s=Se(a.children);typeof s=="object"&&(a.attrs&&(s.attrs=a.attrs),s.attrs===void 0?s.attrs={order:gt}:s.attrs.order=gt),gt++,n[a.tagName].push(s)}}),n)n[i].length==1&&(n[i]=n[i][0]);return n}function E(o){return o/12700}function mt(o){return o/100}function At(o){return o/6e4}function rt(o){return o/1e5}function re(o){var n=Math.ceil(o/26),i=(o%26||26)-1+65;return String.fromCharCode(i).repeat(n)}function G(o,n,i){var a={type:"solidFill"};if(o["a:srgbClr"])a.color="#"+o["a:srgbClr"].attrs.val;else if(o["a:schemeClr"]){var s=o["a:schemeClr"].attrs.val;i&&(s=i.getColorThemeName(s)),a.color=n.getColor(s)}else o["a:sysClr"]&&(a.color="#"+o["a:sysClr"].attrs.lastClr);var h=o["a:srgbClr"]||o["a:schemeClr"]||o["a:sysClr"],d=f.get(h,["a:alpha","attrs","val"],1e5);a.alpha=d/1e5;var u=f.get(h,["a:shade","attrs","val"]);u&&(a.shade=u/1e5);var w=f.get(h,["a:lumMod","attrs","val"]);w&&(a.lumMod=w/1e5);var b=f.get(h,["a:lumOff","attrs","val"]);b&&(a.lumOff=b/1e5);var y=f.get(h,["a:tint","attrs","val"]);return y&&(a.tint=y/1e5),a}function ut(o,n,i){var a,s={type:"blipFill"},h=f.get(o,["a:blip","attrs","r:embed"]);if(h){var d=(a=i.rels[h])===null||a===void 0?void 0:a.target;d&&(s.base64=n.getMedia(d))}var u=f.get(o,["a:blip","a:alphaModFix","attrs","amt"]);u&&(s.alpha=u/1e5);var w=f.get(o,["a:stretch","a:fillRect","attrs"]);return w&&(s.fillRect={},w.b&&(s.fillRect.b=w.b/1e5),w.t&&(s.fillRect.t=w.t/1e5),w.r&&(s.fillRect.r=w.r/1e5),w.l&&(s.fillRect.l=w.l/1e5)),s}function ft(o,n,i){var a={type:"gradFill",tileRect:{},lin:{},gsList:[]};a.flip=o.attrs.flip,a.path=f.get(o,["a:path","attrs","path"])||"linear",a.rotWithShape=o.attrs.rotWithShape==="1",f.get(o,["a:lin","attrs","ang"])&&(a.lin.ang=At(o["a:lin"].attrs.ang)),f.get(o,["a:lin","attrs","scaled"])&&(a.lin.scaled=o["a:lin"].attrs.scaled==="1");var s=f.get(o,["a:gsLst","a:gs"])||[];return a.gsList=s.map(function(h){return{color:G(h,n,i),pos:rt(h.attrs.pos)}}),f.get(o,["a:tileRect","attrs","l"])&&(a.tileRect.l=rt(o["a:tileRect"].attrs.l)),f.get(o,["a:tileRect","attrs","t"])&&(a.tileRect.t=rt(o["a:tileRect"].attrs.t)),f.get(o,["a:tileRect","attrs","r"])&&(a.tileRect.r=rt(o["a:tileRect"].attrs.r)),f.get(o,["a:tileRect","attrs","b"])&&(a.tileRect.b=rt(o["a:tileRect"].attrs.b)),a}function oe(o){return o<=.04045?o/12.92:Math.pow((o+.055)/1.055,2.4)}function ce(o){return o<.0031308?12.92*o:1.055*Math.pow(o,1/2.4)-.055}function we(o,n){var i=o[0],a=o[1],s=o[2],h=oe(i/255)*n,d=oe(a/255)*n,u=oe(s/255)*n;return[Math.round(255*ce(h)),Math.round(255*ce(d)),Math.round(255*ce(u))]}function ie(o,n,i){var a=o/255,s=n/255,h=i/255,d=Math.max(a,s,h),u=Math.min(a,s,h),w=d-u,b=0,y=(d+u)/2;return w===0?b=0:d===a?b=(s-h)/w%6:d===s?b=(h-a)/w+2:d===h&&(b=(a-s)/w+4),(b=Math.round(60*b))<0&&(b+=360),{h:b,s:w===0||y===0||y===1?0:w/(1-Math.abs(2*y-1)),l:y}}function se(o,n,i){var a,s,h,d=(1-Math.abs(2*i-1))*n,u=d*(1-Math.abs(o/60%2-1)),w=i-d/2;return o<60?(a=d,s=u,h=0):o<120?(a=u,s=d,h=0):o<180?(a=0,s=d,h=u):o<240?(a=0,s=u,h=d):o<300?(a=u,s=0,h=d):(a=d,s=0,h=u),[a=Math.round(255*(a+w)),s=Math.round(255*(s+w)),h=Math.round(255*(h+w))]}function z(o,n){if(!o||o.type==="none")return"";if(o.type==="solidFill"&&/^#[\da-fA-F]{3,6}$/.test(o.color)){var i=parseInt(o.color.substr(1,2),16),a=parseInt(o.color.substr(3,2),16),s=parseInt(o.color.substr(5,2),16);if(o.shade){var h=we([i,a,s],o.shade);i=h[0],a=h[1],s=h[2]}if(o.lumMod){var d=function(y,g,P,L){var C=ie(y,g,P),R=C.h,j=C.l*L;return j>=1&&(j=1),se(R,C.s,j)}(i,a,s,o.lumMod);i=d[0],a=d[1],s=d[2]}if(o.lumOff&&(d=function(y,g,P,L){var C=ie(y,g,P),R=C.h,j=L+C.l;return j>1&&(j=1),se(R,C.s,j)}(i,a,s,o.lumOff),i=d[0],a=d[1],s=d[2]),o.tint||n!=null&&n.light){var u=function(y,g,P,L){var C=ie(y,g,P),R=C.h,j=C.l;return L>=1&&(L=1),se(R,C.s,j*L+(1-L))}(i,a,s,o.tint||(n==null?void 0:n.light));i=u[0],a=u[1],s=u[2]}if(n!=null&&n.dark){var w=we([i,a,s],n==null?void 0:n.dark);i=w[0],a=w[1],s=w[2]}var b=o.alpha;return"rgba(".concat(i,",").concat(a,",").concat(s,",").concat(b,")")}}var jt=function(){function o(n,i,a){this.uuid=Xe(),this.offset={x:0,y:0},this.extend={w:0,h:0},this.rotate=0,this.order=0,this.flipV=!1,this.flipH=!1,this.source=n,this.ctx=i,this.group=a;var s=f.get(n,["p:nvSpPr","p:nvPr"]);if(s){var h=f.get(s,"p:ph");h&&h.attrs&&(this.idx=h.attrs.idx,this.type=h.attrs.type),f.get(s,["attrs","userDrawn"])&&(this.userDrawn=f.get(s,["attrs","userDrawn"])==="1")}if(this.order=f.get(n,"attrs.order",0),this.source["p:spPr"])(d=this.getXfrm())&&(this.offset={x:Math.round(E(parseInt(d["a:off"].attrs.x))),y:Math.round(E(parseInt(d["a:off"].attrs.y)))},this.extend={w:Math.round(E(parseInt(d["a:ext"].attrs.cx))),h:Math.round(E(parseInt(d["a:ext"].attrs.cy)))},this.rotate=At(parseInt(f.get(d,"attrs.rot",0))),this.flipV=f.get(d,"attrs.flipV")==="1",this.flipH=f.get(d,"attrs.flipH")==="1");else if(this.source["p:xfrm"]){var d=this.source["p:xfrm"];this.offset={x:Math.round(E(parseInt(d["a:off"].attrs.x))),y:Math.round(E(parseInt(d["a:off"].attrs.y)))},this.extend={w:Math.round(E(parseInt(d["a:ext"].attrs.cx))),h:Math.round(E(parseInt(d["a:ext"].attrs.cy)))}}if(a){var u=a.extend,w=a.chExtend,b=a.chOffset,y=u.w/w.w,g=u.h/w.h;this.extend.w=this.extend.w*y,this.extend.h=this.extend.h*g,this.offset.x=(this.offset.x-b.x)*y,this.offset.y=(this.offset.y-b.y)*g}}return Object.defineProperty(o.prototype,"theme",{get:function(){return(this.ctx.sliderMaster||this.ctx).theme},enumerable:!1,configurable:!0}),o.prototype.getColorThemeName=function(n){return this.ctx.getColorThemeName(n)},o.prototype.getXfrm=function(){var n=this.source["p:spPr"]["a:xfrm"];return n||(this.idx?n=this.ctx.getNodeInheritAttrsByIdx(this.idx,["p:spPr","a:xfrm"]):this.type&&(n=this.ctx.getNodeInheritAttrsByType(this.type,["p:spPr","a:xfrm"]))),n},o}(),qe=function(){function o(n,i){this.props={},this.inheritProps={},this.source=n,this.node=i,this._getInheritBodyProps(),this._parseBodyProps(),this._parseLstStyle(),this._parseText()}return o.prototype._getInheritBodyProps=function(){var n,i=this.node.ctx,a=this.node.type,s=this.node.idx;if(a||s)switch(i.slideType){case"slideMaster":break;case"slideLayout":(n=a?i.slideMaster.getNodeByType(a):i.slideMaster.getNodeByIdx(s))&&(this.inheritProps=f.get(n,["textBody","props"])||{});break;case"slide":(n=a?i.slideLayout.slideMaster.getNodeByType(a):i.slideLayout.slideMaster.getNodeByIdx(s))&&Object.assign(this.inheritProps,f.get(n,["textBody","props"])||{}),(n=a?i.slideLayout.getNodeByType(a):i.slideLayout.getNodeByIdx(s))&&Object.assign(this.inheritProps,f.get(n,["textBody","props"])||{})}},o.prototype._parseBodyProps=function(){var n=this,i=f.get(this.source,["a:bodyPr","attrs"])||{};Object.keys(i).forEach(function(d){switch(d){case"anchor":n.props.anchor=i[d];break;case"rtlCol":n.props.rtlCol=i[d]==="1";break;case"lIns":case"rIns":case"tIns":case"bIns":n.props[d]=E(parseInt(i[d]));break;case"order":break;default:n.props[d]=i[d]}});var a=f.get(this.source,["a:bodyPr","a:normAutofit","attrs"]);if(a){this.props.normAutofit={};var s=a.fontScale;s&&(this.props.normAutofit.fontScale=rt(parseInt(s)));var h=a.lnSpcReduction;h&&(this.props.normAutofit.lnSpcReduction=rt(parseInt(h)))}},o.prototype._parseLstStyle=function(){var n=this,i={},a=f.get(this.source,"a:lstStyle")||{};Object.keys(a).forEach(function(s){if(s.startsWith("a:")&&s.endsWith("pPr")){var h=s.substr(2,s.length-5);i[h]={props:n._formatPPr(a[s])};var d=f.get(a[s],["a:defRPr"]);i[h].defRPr=n._formatRPr(d)}}),this.lstStyle=i},o.prototype._parseText=function(){var n=this,i=f.get(this.source,["a:p"])||[];Array.isArray(i)||(i=[i]),this.paragraphs=i.map(function(a){return n._parseParagraph(a)})},o.prototype._parseParagraph=function(n){var i=this,a={props:{},inheritProps:{},inheritRProps:{},endParaRProps:{},rows:[]},s=f.get(n,["a:pPr"])||{};a.props=this._formatPPr(s);var h=f.get(n,["a:endParaRPr"]);a.endParaRProps=this._formatRPr(h);var d=f.get(n,["a:r"])||[];Array.isArray(d)||(d=[d]);var u=f.get(n,["a:br"])||[];return Array.isArray(u)||(u=[u]),(d=d.concat(u.map(function(w){return S({isBr:!0},w)}))).sort(function(w,b){return f.get(w,["attrs","order"])-f.get(b,["attrs","order"])}),a.rows=d.map(function(w){return i._parseRow(w)}),a.inheritProps=this._getInheritPProps(a.props.level),a.inheritRProps=this._getInheritRProps(a.props.level),a},o.prototype._getInheritPProps=function(n){n===void 0&&(n="0");var i,a={},s=this.node.ctx,h=this.node.type,d=this.node.idx;switch(s.slideType){case"slideMaster":this.node.isTextBox?Object.assign(a,f.get(s.defaultTextStyle,["lvl".concat(n?+n+1:1),"props"])||{}):Object.assign(a,f.get(s,["textStyles","otherStyle","lvl".concat(n?+n+1:1),"props"])||{});break;case"slideLayout":this.node.isTextBox?Object.assign(a,f.get(s.slideMaster.defaultTextStyle,["lvl".concat(n?+n+1:1),"props"])||{}):Object.assign(a,f.get(s.slideMaster,["textStyles","otherStyle","lvl".concat(n?+n+1:1),"props"])||{}),(h||d)&&(i=h?s.slideMaster.getNodeByType(h):s.slideMaster.getNodeByIdx(d))&&Object.assign(a,f.get(i,["textBody","lstStyle","lvl".concat(n?+n+1:1),"props"])||{});break;case"slide":this.node.isTextBox?Object.assign(a,f.get(s.slideLayout.slideMaster.defaultTextStyle,["lvl".concat(n?+n+1:1),"props"])||{}):Object.assign(a,f.get(s.slideLayout.slideMaster,["textStyles","otherStyle","lvl".concat(n?+n+1:1),"props"])||{}),(h||d)&&(["subTitle","ctrTitle","title"].includes(h)&&Object.assign(a,f.get(s.slideLayout.slideMaster,["textStyles","titleStyle","lvl".concat(n?+n+1:1),"props"])||{}),(i=h?s.slideLayout.slideMaster.getNodeByType(h):s.slideLayout.slideMaster.getNodeByIdx(d))&&Object.assign(a,f.get(i,["textBody","lstStyle","lvl".concat(n?+n+1:1),"props"])||{}),(i=h?s.slideLayout.getNodeByType(h):s.slideLayout.getNodeByIdx(d))&&Object.assign(a,f.get(i,["textBody","lstStyle","lvl".concat(n?+n+1:1),"props"])||{}))}return a},o.prototype._getInheritRProps=function(n){n===void 0&&(n="0");var i,a={},s=this.node.ctx,h=this.node.type,d=this.node.idx;switch(s.slideType){case"slideMaster":this.node.isTextBox?Object.assign(a,f.get(s.defaultTextStyle,["lvl".concat(n?+n+1:1),"defRPr"])||{}):Object.assign(a,f.get(s,["textStyles","otherStyle","lvl".concat(n?+n+1:1),"defRPr"])||{});break;case"slideLayout":this.node.isTextBox?Object.assign(a,f.get(s.slideMaster.defaultTextStyle,["lvl".concat(n?+n+1:1),"defRPr"])||{}):Object.assign(a,f.get(s.slideMaster,["textStyles","otherStyle","lvl".concat(n?+n+1:1),"defRPr"])||{}),(h||d)&&(i=h?s.slideMaster.getNodeByType(h):s.slideMaster.getNodeByIdx(d))&&(a=f.get(i,["textBody","lstStyle","lvl".concat(n?+n+1:1),"defRPr"])||{});break;case"slide":this.node.isTextBox?Object.assign(a,f.get(s.slideLayout.slideMaster.defaultTextStyle,["lvl".concat(n?+n+1:1),"defRPr"])||{}):Object.assign(a,f.get(s.slideLayout.slideMaster,["textStyles","otherStyle","lvl".concat(n?+n+1:1),"defRPr"])||{}),(h||d)&&(["subTitle","ctrTitle","title"].includes(h)&&Object.assign(a,f.get(s.slideLayout.slideMaster,["textStyles","titleStyle","lvl".concat(n?+n+1:1),"defRPr"])||{}),(i=h?s.slideLayout.slideMaster.getNodeByType(h):s.slideLayout.slideMaster.getNodeByIdx(d))&&Object.assign(a,f.get(i,["textBody","lstStyle","lvl".concat(n?+n+1:1),"defRPr"])||{}),(i=h?s.slideLayout.getNodeByType(h):s.slideLayout.getNodeByIdx(d))&&Object.assign(a,f.get(i,["textBody","lstStyle","lvl".concat(n?+n+1:1),"defRPr"])||{}))}var u=f.get(this.node.source,["p:style","a:fontRef"]);return f.get(u,"a:schemeClr")&&(a.color=G(u,this.node.theme,this.node)),f.get(this.lstStyle,["lvl".concat(n?+n+1:1),"defRPr"])&&Object.assign(a,f.get(this.lstStyle,["lvl".concat(n?+n+1:1),"defRPr"])),a},o.prototype._formatPPr=function(n){var i={},a=f.get(n,"attrs")||{};return Object.keys(a).forEach(function(s){switch(s){case"algn":i.align=a[s];break;case"marL":i.marginLeft=E(parseInt(a[s]));break;case"indent":i.indent=E(parseInt(a[s]));break;case"lvl":i.level=a[s]}}),f.get(n,["a:lnSpc","a:spcPct","attrs","val"])&&(i.lineHeight=parseInt(n["a:lnSpc"]["a:spcPct"].attrs.val)/1e5),f.get(n,["a:buAutoNum","attrs","type"])&&(i.buAutoNum=n["a:buAutoNum"].attrs.type),f.get(n,["a:buChar","attrs","char"])&&(i.buChar=n["a:buChar"].attrs.char),f.get(n,["a:spcBef","a:spcPts","attrs","val"])&&(i.spaceBefore=mt(parseInt(n["a:spcBef"]["a:spcPts"].attrs.val))),f.get(n,["a:spcAft","a:spcPts","attrs","val"])&&(i.spaceAfter=mt(parseInt(n["a:spcAft"]["a:spcPts"].attrs.val))),i},o.prototype._parseRow=function(n){if(n.isBr)return{isBr:!0};var i={props:{},text:""},a=f.get(n,["a:rPr"])||{};return i.props=this._formatRPr(a),i.text=f.get(n,"a:t")||"",i},o.prototype._formatRPr=function(n){var i={},a=f.get(n,"attrs")||{};Object.keys(a).forEach(function(d){switch(d){case"sz":i.size=parseInt(a[d])/100;break;case"b":i.bold=a[d]==="1";break;case"i":i.italic=a[d]==="1";break;case"u":i.underline=a[d];break;case"strike":i.strike=a[d];break;case"order":case"dirty":break;default:i[d]=a[d]}});var s=f.get(n,"a:solidFill");s&&(i.color=G(s,this.node.theme,this.node));var h=f.get(n,"a:highlight");return h&&(i.background=G(h,this.node.theme,this.node)),i.typeface=f.get(n,["a:ea","attrs","typeface"]),i},o}();function it(o,n,i){var a={};if(!f.get(o,"a:noFill")){f.get(o,"attrs.w")&&(a.width=E(parseInt(f.get(o,"attrs.w"))));var s=f.get(o,"a:solidFill");s&&(a.color=G(s,n,i));var h=f.get(o,"a:prstDash");if(h&&(a.type=h.attrs.val),f.get(o,["a:miter"])&&(a.lineJoin="miter"),f.get(o,["a:bevel"])&&(a.lineJoin="bevel"),f.get(o,["a:round"])&&(a.lineJoin="round"),f.get(o,["a:miter","attrs","lim"])&&(a.miterLim=E(parseInt(f.get(o,["a:miter","attrs","lim"])))),f.get(o,["a:headEnd"])){var d=f.get(o,["a:headEnd","attrs"]);a.headEnd={type:d.type,len:d.len,w:d.w}}if(f.get(o,["a:tailEnd"])){var u=f.get(o,["a:tailEnd","attrs"]);a.tailEnd={type:u.type,len:u.len,w:u.w}}return a}}var pt=function(o){function n(i,a,s,h){var d=o.call(this,i,s,h)||this;return d.border={},d.prstGeom={},d.isTextBox=!1,d.pptx=a,d._parseShape(),d._parIsTextBox(),d._parsePrstGeom(),d._parseBackground(),d._parseBorder(),d._parseTxt(),d}return Mt(n,o),n.prototype._parseShape=function(){if(this.shape=f.get(this.source,["p:spPr","a:prstGeom","attrs","prst"]),!this.shape&&f.get(this.source,["p:spPr","a:custGeom"])){this.shape="customGeom";var i=f.get(this.source,["p:spPr","a:custGeom","a:pathLst","a:path"]),a=[],s=[],h=function(u){switch(u){case"a:moveTo":case"a:cubicBezTo":case"a:lnTo":s=Array.isArray(i[u])?i[u]:[i[u]],a=a.concat(s.map(function(w){return{order:w.attrs.order,type:u.split(":")[1],points:(Array.isArray(w["a:pt"])?w["a:pt"]:[w["a:pt"]]).map(function(b){return[E(parseInt(f.get(b,["attrs","x"]))),E(parseInt(f.get(b,["attrs","y"])))]})}}));break;case"a:close":s=Array.isArray(i[u])?i[u]:[i[u]],a=a.concat(s.map(function(w){return{order:w.attrs.order,type:u.split(":")[1]}}))}};for(var d in i)h(d);a.sort(function(u,w){return u.order-w.order}),this.prstGeom.pathList=a,f.get(i,["attrs","w"])&&(this.prstGeom.w=E(parseInt(f.get(i,["attrs","w"])))),f.get(i,["attrs","h"])&&(this.prstGeom.h=E(parseInt(f.get(i,["attrs","h"]))))}},n.prototype._parIsTextBox=function(){this.isTextBox=f.get(this.source,["p:nvSpPr","p:cNvSpPr","attrs","txBox"])==="1"},n.prototype._parsePrstGeom=function(){var i=this,a=f.get(this.source,["p:spPr","a:prstGeom"]),s=f.get(a,["a:avLst","a:gd"]);s&&(Array.isArray(s)||(s=[s]),this.prstGeom.gd=s.map(function(h){var d=["pie","chord","arc"].includes(i.shape)||["blockArc"].includes(i.shape)&&["adj1","adj2"].includes(h.attrs.name)?At(parseInt(h.attrs.fmla.split(" ")[1])):rt(parseInt(h.attrs.fmla.split(" ")[1]));return{name:h.attrs.name,fmla:d}}))},n.prototype._parseBackground=function(){if(!f.get(this.source,["p:spPr","a:noFill"]))if(f.get(this.source,["p:spPr","a:grpFill"])&&this.group)this.background=this.group.getBackground();else{var i=f.get(this.source,["p:spPr","a:solidFill"]);if(i)this.background=G(i,this.theme,this);else{var a=f.get(this.source,["p:spPr","a:gradFill"]);if(a)this.background=ft(a,this.theme,this);else{var s=f.get(this.source,["p:spPr","a:blipFill"]);if(s)this.background=ut(s,this.pptx,this.ctx);else{var h=f.get(this.source,["p:style","a:fillRef"]);h&&(this.background=G(h,this.theme,this))}}}}},n.prototype._parseBorder=function(){var i=f.get(this.source,["p:style","a:lnRef"]);if(i){var a=parseInt(i.attrs.idx),s=this.theme.getLineStyle(a);this.border=S(S({},s),this.border),this.border.color&&this.border.color.color||(this.border.color=G(i,this.theme,this))}var h=f.get(this.source,["p:spPr","a:ln"]);h&&Object.assign(this.border,it(h,this.theme,this)),this.border.color&&this.border.color.color&&!this.border.width&&(this.border.width=n.defaultBorderWidth)},n.prototype._parseTxt=function(){this.textBody=new qe(f.get(this.source,["p:txBody"]),this)},n.defaultBorderWidth=.75,n}(jt),xt=function(o){function n(i,a,s,h,d){var u,w,b=o.call(this,a,h,d)||this;b.userDrawn=!0,b.pptx=s,b.path=i;var y=f.get(b.source,["p:blipFill","a:srcRect"]);y&&(b.clip={},y.attrs.b&&(b.clip.b=parseInt(y.attrs.b)/1e5),y.attrs.t&&(b.clip.t=parseInt(y.attrs.t)/1e5),y.attrs.l&&(b.clip.l=parseInt(y.attrs.l)/1e5),y.attrs.r&&(b.clip.r=parseInt(y.attrs.r)/1e5));var g=f.get(a,["p:nvPicPr","p:nvPr","a:audioFile","attrs","r:link"]);if(g){var P=(u=b.ctx.rels[g])===null||u===void 0?void 0:u.target;b.audioFile=b.pptx.getMedia(P)}var L=f.get(a,["p:nvPicPr","p:nvPr","a:videoFile","attrs","r:link"]);if(L){var C=(w=b.ctx.rels[L])===null||w===void 0?void 0:w.target;b.videoFile=b.pptx.getMedia(C)}return b}return Mt(n,o),Object.defineProperty(n.prototype,"base64",{get:function(){return this.pptx.getMedia(this.path)},enumerable:!1,configurable:!0}),n}(jt),Ce=function(o){function n(i,a,s,h){var d=o.call(this,i,s,h)||this;return d.userDrawn=!0,d.props={tableStyleId:""},d.tableGrid={gridCol:[]},d.tr=[],d.tableStyles={},d.pptx=a,d._parseTableProps(),d._parseTableGrid(),d._parseTr(),d._parseInheritStyles(),d}return Mt(n,o),Object.defineProperty(n.prototype,"slideMaster",{get:function(){return this.ctx.slideMaster||this.ctx},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"theme",{get:function(){return this.slideMaster.theme},enumerable:!1,configurable:!0}),n.prototype._parseTableProps=function(){var i=f.get(this.source,["a:graphic","a:graphicData","a:tbl","a:tblPr"]);this.props.tableStyleId=f.get(i,"a:tableStyleId"),this.tableStyles=f.get(this.slideMaster.tableStyles,this.props.tableStyleId)||{},f.get(i,["attrs","bandCol"])==="1"&&(this.props.bandCol=!0),f.get(i,["attrs","bandRow"])==="1"&&(this.props.bandRow=!0),f.get(i,["attrs","firstCol"])==="1"&&(this.props.firstCol=!0),f.get(i,["attrs","firstRow"])==="1"&&(this.props.firstRow=!0),f.get(i,["attrs","lastCol"])==="1"&&(this.props.lastCol=!0),f.get(i,["attrs","lastRow"])==="1"&&(this.props.lastRow=!0)},n.prototype._parseTableGrid=function(){var i=f.get(this.source,["a:graphic","a:graphicData","a:tbl","a:tblGrid","a:gridCol"]);if(i)for(var a=0;a>>0))),[4,s.async("base64")]):[3,4];case 2:d=L.sent(),this.medias[s.name]="data:".concat(h,";base64,").concat(d),L.label=3;case 3:return i++,[3,1];case 4:u=Object.keys(this._zipContents.files).filter(function(R){return R.startsWith("ppt/media/media")&&["mp3","wav","ogg","mp4","webm"].includes(R.split(".").pop().toLowerCase())}).map(function(R){return P._zipContents.files[R]}),w=0,b=u,L.label=5;case 5:return w3999)throw new Error("Input must be a number between 1 and 3999.");for(var u="",w=0;w=d[w].value;)u+=d[w].numeral,h-=d[w].value;return u}(i)+".";break;case"alphaUcPeriod":a.textContent=re(i)+".";break;case"alphaLcPeriod":a.textContent=re(i).toLowerCase()+".";break;case"alphaLcParenR":a.textContent=re(i).toLowerCase()+")";break;case"ea1JpnChsDbPeriod":a.textContent=function(h){var d=["〇","一","二","三","四","五","六","七","八","九"];if(!Number.isInteger(h)||h<0)return"";for(var u="",w=h.toString(),b=0;b0&&h3*Math.PI/2&&h<2*Math.PI?n+Math.sqrt(1/(1/Math.pow(a,2)+Math.pow(Math.tan(h),2)/Math.pow(s,2))):n-Math.sqrt(1/(1/Math.pow(a,2)+Math.pow(Math.tan(h),2)/Math.pow(s,2))),h===0||h===2*Math.PI||h===Math.PI?i:h===Math.PI/2?i+s:h===3*Math.PI/2?i-s:h>Math.PI&&h<2*Math.PI?i-Math.sqrt(1/(1/Math.pow(s,2)+Math.pow(1/Math.tan(h),2)/Math.pow(a,2))):i+Math.sqrt(1/(1/Math.pow(s,2)+Math.pow(1/Math.tan(h),2)/Math.pow(a,2)))]}function yt(o,n){var i=0;return(n>o&&n-o>180||n2*e&&(r=2*e);var v=["M0,".concat(t.h-e),"L".concat(l,",").concat(t.h-2*e),"L".concat(l,",").concat(t.h-e-r/2),"L".concat(t.w/2-r/2,",").concat(t.h-e-r/2),"L".concat(t.w/2-r/2,",").concat(l),"L".concat(t.w/2-e,",").concat(l),"L".concat(t.w/2,",0"),"L".concat(t.w/2+e,",").concat(l),"L".concat(t.w/2+r/2,",").concat(l),"L".concat(t.w/2+r/2,",").concat(t.h-e-r/2),"L".concat(t.w-l,",").concat(t.h-e-r/2),"L".concat(t.w-l,",").concat(t.h-2*e),"L".concat(t.w,",").concat(t.h-e),"L".concat(t.w-l,",").concat(t.h),"L".concat(t.w-l,",").concat(t.h-e+r/2),"L".concat(l,",").concat(t.h-e+r/2),"L".concat(l,",").concat(t.h),"Z"].join(" ");return p.setAttribute("d",v),p}(o),L=function(c){var t=c.extend,r=M("adj1",c,.225*Math.min(t.w,t.h)),e=M("adj2",c,.225*Math.min(t.w,t.h)),l=M("adj3",c,.225*Math.min(t.w,t.h)),p=e===0?0:r*l/e/2;return{top:t.h-e-r/2,bottom:e-r/2,left:p,right:p,w:t.w-2*p,h:r}}(o);break;case"bentArrow":g=function(c){var t=c.extend,r=M("adj1",c,.25*Math.min(t.w,t.h)),e=M("adj2",c,.25*Math.min(t.w,t.h)),l=M("adj3",c,.25*Math.min(t.w,t.h)),p=M("adj4",c,.4375*Math.min(t.w,t.h)),v=A("path");r>2*e&&(r=2*e);var x=p-r;x<0&&(x=0);var m=["M0,".concat(t.h),"L0,".concat(e-r/2+p),"A".concat(p," ").concat(p," 0 0 1 ").concat(p," ").concat(e-r/2),"L".concat(t.w-l,",").concat(e-r/2),"L".concat(t.w-l,",0"),"L".concat(t.w,",").concat(e),"L".concat(t.w-l,",").concat(2*e),"L".concat(t.w-l,",").concat(e+r/2),"L".concat(r+x,",").concat(e+r/2),"A".concat(x," ").concat(x," 0 0 0 ").concat(r," ").concat(e+r/2+x),"L".concat(r,",").concat(t.h),"Z"].join(" ");return v.setAttribute("d",m),v}(o);break;case"uturnArrow":g=function(c){var t=c.extend,r=M("adj1",c,.25*Math.min(t.w,t.h)),e=M("adj2",c,.25*Math.min(t.w,t.h)),l=M("adj3",c,.25*Math.min(t.w,t.h)),p=M("adj4",c,.4375*Math.min(t.w,t.h)),v=M("adj5",c,.75*Math.min(t.w,t.h)),x=A("path");r>2*e&&(r=2*e),vv-l&&(p=v-l);var m=p-r;m>v-l-r&&(m=v-l-r),m<0&&(m=0);var _=e-r/2,k=["M0,".concat(t.h),"L0,".concat(p),"A".concat(p," ").concat(p," 0 0 1 ").concat(p," 0"),"L".concat(t.w-p-_,",0"),"A".concat(p," ").concat(p," 0 0 1 ").concat(t.w-_," ").concat(p),"L".concat(t.w-_,",").concat(v-l),"L".concat(t.w,",").concat(v-l),"L".concat(t.w-e,",").concat(v),"L".concat(t.w-2*e,",").concat(v-l),"L".concat(t.w-e-r/2,",").concat(v-l),"L".concat(t.w-e-r/2,",").concat(r+m),"A".concat(m," ").concat(m," 0 0 0 ").concat(t.w-m-e-r/2," ").concat(r),"L".concat(r+m,",").concat(r),"A".concat(m," ").concat(m," 0 0 0 ").concat(r," ").concat(r+m),"L".concat(r,",").concat(t.h),"Z"].join(" ");return x.setAttribute("d",k),x}(o);break;case"leftUpArrow":g=function(c){var t=c.extend,r=M("adj1",c,.25*Math.min(t.w,t.h)),e=M("adj2",c,.25*Math.min(t.w,t.h)),l=M("adj3",c,.25*Math.min(t.w,t.h));r>2*e&&(r=2*e);var p=Math.min(t.w,t.h)-2*e;l>p&&(l=p),l<0&&(l=0);var v=e-r/2,x=A("path"),m=["M0,".concat(t.h-e),"L".concat(l,",").concat(t.h-2*e),"L".concat(l,",").concat(t.h-e-r/2),"L".concat(t.w-e-r/2,",").concat(t.h-e-r/2),"L".concat(t.w-e-r/2,",").concat(l),"L".concat(t.w-2*e,",").concat(l),"L".concat(t.w-e,",0"),"L".concat(t.w,",").concat(l),"L".concat(t.w-v,",").concat(l),"L".concat(t.w-v,",").concat(t.h-v),"L".concat(l,",").concat(t.h-v),"L".concat(l,",").concat(t.h),"Z"].join(" ");return x.setAttribute("d",m),x}(o),L=function(c){var t=c.extend,r=M("adj1",c,.25*Math.min(t.w,t.h)),e=M("adj2",c,.25*Math.min(t.w,t.h)),l=M("adj3",c,.25*Math.min(t.w,t.h));r>2*e&&(r=2*e);var p=Math.min(t.w,t.h)-2*e;l>p&&(l=p),l<0&&(l=0);var v=e===0?0:r*l/e/2;return{top:t.h-e-r/2,bottom:e-r/2,left:v,right:e,w:t.w-v-e,h:r}}(o);break;case"bentUpArrow":g=function(c){var t=c.extend,r=M("adj1",c,.25*Math.min(t.w,t.h)),e=M("adj2",c,.25*Math.min(t.w,t.h)),l=M("adj3",c,.25*Math.min(t.w,t.h));r>2*e&&(r=2*e);var p=Math.min(t.w,t.h)-2*e;l>p&&(l=p),l<0&&(l=0);var v=e-r/2,x=A("path"),m=["M0,".concat(t.h),"L0,".concat(t.h-r),"L".concat(t.w-e-r/2,",").concat(t.h-r),"L".concat(t.w-e-r/2,",").concat(l),"L".concat(t.w-2*e,",").concat(l),"L".concat(t.w-e,",0"),"L".concat(t.w,",").concat(l),"L".concat(t.w-v,",").concat(l),"L".concat(t.w-v,",").concat(t.h),"Z"].join(" ");return x.setAttribute("d",m),x}(o),L=function(c){var t=c.extend,r=M("adj1",c,.25*Math.min(t.w,t.h));return{top:t.h-r,bottom:0,left:0,right:0,w:t.w,h:r}}(o);break;case"curvedRightArrow":g=function(c){var t=c.extend,r=c.background,e=M("adj1",c,.25*Math.min(t.w,t.h)),l=M("adj2",c,.5*Math.min(t.w,t.h)),p=M("adj3",c,.25*Math.min(t.w,t.h));e>l&&(e=l);var v=l/2-e/2,x=(t.h-l/2-e/2)/2,m=(t.h-v-e)/2,_=A("g"),k=A("path"),I=["M".concat(t.w,",0"),"A ".concat(t.w," ").concat(x," 0 0 0 ").concat(0," ").concat(x),"L0,".concat(m+e),"A ".concat(t.w," ").concat(m," 0 0 1 ").concat(t.w," ").concat(e),"Z"].join(" ");k.setAttribute("d",I),(r==null?void 0:r.type)==="solidFill"&&k.setAttribute("fill",z(r,{dark:.6})||"transparent");var B=A("path"),O=["M0,".concat(x),"A ".concat(t.w," ").concat(x," 0 0 0 ").concat(t.w-p," ").concat(t.h-l/2-e/2),"L".concat(t.w-p,",").concat(t.h-l),"L".concat(t.w,",").concat(t.h-l/2),"L".concat(t.w-p,",").concat(t.h),"L".concat(t.w-p,",").concat(t.h-v),"A ".concat(t.w," ").concat(m," 0 0 1 0 ").concat(e+m),"Z"].join(" ");return B.setAttribute("d",O),_.appendChild(k),_.appendChild(B),_}(o);break;case"curvedLeftArrow":g=function(c){var t=c.extend,r=c.background,e=M("adj1",c,.25*Math.min(t.w,t.h)),l=M("adj2",c,.5*Math.min(t.w,t.h)),p=M("adj3",c,.25*Math.min(t.w,t.h));e>l&&(e=l);var v=l/2-e/2,x=(t.h-l/2-e/2)/2,m=(t.h-v-e)/2,_=A("g"),k=A("path"),I=["M0,".concat(t.h-l/2),"L".concat(p,",").concat(t.h-l),"L".concat(p,",").concat(t.h-l/2-e/2),"A".concat(t.w," ").concat(x," 0 0 0 ").concat(t.w," ").concat(x),"L".concat(t.w,",").concat(m+e),"A ".concat(t.w," ").concat(m," 0 0 1 ").concat(p," ").concat(t.h-v),"L".concat(p,",").concat(t.h),"Z"].join(" ");k.setAttribute("d",I);var B=A("path"),O=["M0,0","A ".concat(t.w," ").concat(x," 0 0 1 ").concat(t.w," ").concat(x),"L".concat(t.w,",").concat(m+e),"A ".concat(t.w," ").concat(m," 0 0 0 ").concat(0," ").concat(e),"Z"].join(" ");return B.setAttribute("d",O),(r==null?void 0:r.type)==="solidFill"&&B.setAttribute("fill",z(r,{dark:.6})||"transparent"),_.appendChild(k),_.appendChild(B),_}(o);break;case"curvedUpArrow":g=function(c){var t=c.extend,r=c.background,e=M("adj1",c,.25*Math.min(t.w,t.h)),l=M("adj2",c,.5*Math.min(t.w,t.h)),p=M("adj3",c,.25*Math.min(t.w,t.h));e>l&&(e=l);var v=l/2-e/2,x=(t.w-l/2-e/2)/2,m=(t.w-v-e)/2,_=A("g"),k=A("path"),I=["M".concat(t.w-l/2,",").concat(0),"L".concat(t.w-l,",").concat(p),"L".concat(t.w-l/2-e/2,",").concat(p),"A".concat(x," ").concat(t.h," 0 0 1 ").concat(x," ").concat(t.h),"L".concat(x+e,",").concat(t.h),"A".concat(m," ").concat(t.h," 0 0 0 ").concat(t.w-v," ").concat(p),"L".concat(t.w,",").concat(p),"Z"].join(" ");k.setAttribute("d",I);var B=A("path"),O=["M".concat(e,",0"),"L".concat(0,",").concat(0),"A ".concat(x," ").concat(t.h," 0 0 0 ").concat(x," ").concat(t.h),"L".concat(x+e,",").concat(t.h),"A ".concat(m," ").concat(t.h," 0 0 1 ").concat(e," ").concat(0),"Z"].join(" ");return B.setAttribute("d",O),(r==null?void 0:r.type)==="solidFill"&&B.setAttribute("fill",z(r,{dark:.6})||"transparent"),_.appendChild(k),_.appendChild(B),_}(o);break;case"curvedDownArrow":g=function(c){var t=c.extend,r=c.background,e=M("adj1",c,.25*Math.min(t.w,t.h)),l=M("adj2",c,.5*Math.min(t.w,t.h)),p=M("adj3",c,.25*Math.min(t.w,t.h));e>l&&(e=l);var v=l/2-e/2,x=(t.w-l/2-e/2)/2,m=(t.w-v-e)/2,_=A("g"),k=A("path"),I=["M".concat(0,",").concat(t.h),"L".concat(e,",").concat(t.h),"A".concat(m," ").concat(t.h," 0 0 1 ").concat(m+e," ").concat(0),"L".concat(x,",").concat(0),"A".concat(x," ").concat(t.h," 0 0 0 ").concat(0," ").concat(t.h),"Z"].join(" ");k.setAttribute("d",I),(r==null?void 0:r.type)==="solidFill"&&k.setAttribute("fill",z(r,{dark:.6})||"transparent");var B=A("path"),O=["M".concat(t.w-l/2,",").concat(t.h),"L".concat(t.w-l,",").concat(t.h-p),"L".concat(t.w-l/2-e/2,",").concat(t.h-p),"A ".concat(x," ").concat(t.h," 0 0 0 ").concat(x," ").concat(0),"L".concat(x+e,",").concat(0),"A ".concat(m," ").concat(t.h," 0 0 1 ").concat(t.w-v," ").concat(t.h-p),"L".concat(t.w,",").concat(t.h-p),"Z"].join(" ");return B.setAttribute("d",O),_.appendChild(k),_.appendChild(B),_}(o);break;case"stripedRightArrow":g=function(c){var t=c.extend,r=A("g"),e=Math.min(t.w,t.h),l=T("adj1",c,.5)*t.h,p=T("adj2",c,.5)*e,v=e/8,x=e/16,m=e/32,_=5*e/32,k=t.h/2-l/2,I=t.h/2+l/2,B=A("path");B.setAttribute("d",["M".concat(0,",").concat(k),"L".concat(m,",").concat(k),"L".concat(m,",").concat(I),"L".concat(0,",").concat(I),"Z"].join(" "));var O=A("path");O.setAttribute("d",["M".concat(x,",").concat(k),"L".concat(v,",").concat(k),"L".concat(v,",").concat(I),"L".concat(x,",").concat(I),"Z"].join(" "));var D=A("path"),N=["M".concat(_,",").concat(k),"L".concat(t.w-p,",").concat(k),"L".concat(t.w-p,",").concat(0),"L".concat(t.w,",").concat(t.h/2),"L".concat(t.w-p,",").concat(t.h),"L".concat(t.w-p,",").concat(I),"L".concat(_,",").concat(I),"Z"].join(" ");return D.setAttribute("d",N),r.appendChild(D),r.appendChild(B),r.appendChild(O),r}(o),L=function(c){var t=c.extend,r=Math.min(t.w,t.h),e=T("adj1",c,.5)*t.h,l=e*(T("adj2",c,.5)*r)/t.h;return{top:t.h/2-e/2,bottom:t.h/2-e/2,left:0,right:l,w:t.w-l,h:e}}(o);break;case"notchedRightArrow":g=function(c){var t=c.extend,r=Math.min(t.w,t.h),e=T("adj1",c,.5)*t.h,l=T("adj2",c,.5)*r,p=e*l/t.h,v=t.h/2-e/2,x=t.h/2+e/2,m=A("path"),_=["M".concat(0,",").concat(v),"L".concat(t.w-l,",").concat(v),"L".concat(t.w-l,",").concat(0),"L".concat(t.w,",").concat(t.h/2),"L".concat(t.w-l,",").concat(t.h),"L".concat(t.w-l,",").concat(x),"L".concat(0,",").concat(x),"L".concat(p,",").concat(t.h/2),"Z"].join(" ");return m.setAttribute("d",_),m}(o),L=function(c){var t=c.extend,r=Math.min(t.w,t.h),e=T("adj1",c,.5)*t.h,l=T("adj2",c,.5)*r,p=e*l/t.h,v=e*l/t.h;return{top:t.h/2-e/2,bottom:t.h/2-e/2,left:p,right:v,w:t.w-p-v,h:e}}(o);break;case"homePlate":g=function(c){var t=c.extend,r=Math.min(t.w,t.h),e=T("adj",c,.5)*r,l=A("path"),p=["M".concat(0,",").concat(0),"L".concat(t.w-e,",").concat(0),"L".concat(t.w,",").concat(t.h/2),"L".concat(t.w-e,",").concat(t.h),"L".concat(0,",").concat(t.h),"Z"].join(" ");return l.setAttribute("d",p),l}(o),L=function(c){var t=c.extend,r=Math.min(t.w,t.h),e=T("adj",c,.5)*r;return{top:0,bottom:0,left:0,right:e/2,w:t.w-e/2,h:t.h}}(o);break;case"chevron":g=function(c){var t=c.extend,r=Math.min(t.w,t.h),e=T("adj",c,.5)*r,l=A("path"),p=["M".concat(0,",").concat(0),"L".concat(t.w-e,",").concat(0),"L".concat(t.w,",").concat(t.h/2),"L".concat(t.w-e,",").concat(t.h),"L".concat(0,",").concat(t.h),"L".concat(e,",").concat(t.h/2),"Z"].join(" ");return l.setAttribute("d",p),l}(o),L=function(c){var t=c.extend,r=Math.min(t.w,t.h),e=T("adj",c,.5)*r;return{top:0,bottom:0,left:e,right:e,w:t.w-2*e,h:t.h}}(o);break;case"rightArrowCallout":g=function(c){var t=c.extend,r=Math.min(t.w,t.h),e=T("adj1",c,.25)*r,l=T("adj2",c,.25)*r,p=T("adj3",c,.25)*r,v=T("adj4",c,.64977)*t.w,x=A("path"),m=["M".concat(0,",").concat(0),"L".concat(v,",").concat(0),"L".concat(v,",").concat(t.h/2-e/2),"L".concat(t.w-p,",").concat(t.h/2-e/2),"L".concat(t.w-p,",").concat(t.h/2-l),"L".concat(t.w,",").concat(t.h/2),"L".concat(t.w-p,",").concat(t.h/2+l),"L".concat(t.w-p,",").concat(t.h/2+e/2),"L".concat(v,",").concat(t.h/2+e/2),"L".concat(v,",").concat(t.h),"L".concat(0,",").concat(t.h),"Z"].join(" ");return x.setAttribute("d",m),x}(o),L=function(c){var t=c.extend,r=T("adj4",c,.64977)*t.w;return{top:0,bottom:0,left:0,right:t.w-r,w:r,h:t.h}}(o);break;case"leftArrowCallout":g=function(c){var t=c.extend,r=Math.min(t.w,t.h),e=T("adj1",c,.25)*r,l=T("adj2",c,.25)*r,p=T("adj3",c,.25)*r,v=T("adj4",c,.64977)*t.w,x=A("path"),m=["M".concat(0,",").concat(t.h/2),"L".concat(p,",").concat(t.h/2-l),"L".concat(p,",").concat(t.h/2-e/2),"L".concat(t.w-v,",").concat(t.h/2-e/2),"L".concat(t.w-v,",").concat(0),"L".concat(t.w,",").concat(0),"L".concat(t.w,",").concat(t.h),"L".concat(t.w-v,",").concat(t.h),"L".concat(t.w-v,",").concat(t.h/2+e/2),"L".concat(p,",").concat(t.h/2+e/2),"L".concat(p,",").concat(t.h/2+l),"Z"].join(" ");return x.setAttribute("d",m),x}(o),L=function(c){var t=c.extend,r=T("adj4",c,.64977)*t.w;return{top:0,bottom:0,left:t.w-r,right:0,w:r,h:t.h}}(o);break;case"upArrowCallout":g=function(c){var t=c.extend,r=Math.min(t.w,t.h),e=T("adj1",c,.25)*r,l=T("adj2",c,.25)*r,p=T("adj3",c,.25)*r,v=T("adj4",c,.64977)*t.h,x=A("path"),m=["M".concat(0,",").concat(t.h-v),"L".concat(t.w/2-e/2,",").concat(t.h-v),"L".concat(t.w/2-e/2,",").concat(p),"L".concat(t.w/2-l,",").concat(p),"L".concat(t.w/2,",").concat(0),"L".concat(t.w/2+l,",").concat(p),"L".concat(t.w/2+e/2,",").concat(p),"L".concat(t.w/2+e/2,",").concat(t.h-v),"L".concat(t.w,",").concat(t.h-v),"L".concat(t.w,",").concat(t.h),"L".concat(0,",").concat(t.h),"Z"].join(" ");return x.setAttribute("d",m),x}(o),L=function(c){var t=c.extend,r=T("adj4",c,.64977)*t.h;return{top:t.h-r,bottom:0,left:0,right:0,w:t.w,h:r}}(o);break;case"downArrowCallout":g=function(c){var t=c.extend,r=Math.min(t.w,t.h),e=T("adj1",c,.25)*r,l=T("adj2",c,.25)*r,p=T("adj3",c,.25)*r,v=T("adj4",c,.64977)*t.h,x=A("path"),m=["M".concat(0,",").concat(0),"L".concat(t.w,",").concat(0),"L".concat(t.w,",").concat(v),"L".concat(t.w/2+e/2,",").concat(v),"L".concat(t.w/2+e/2,",").concat(t.h-p),"L".concat(t.w/2+l,",").concat(t.h-p),"L".concat(t.w/2,",").concat(t.h),"L".concat(t.w/2-l,",").concat(t.h-p),"L".concat(t.w/2-e/2,",").concat(t.h-p),"L".concat(t.w/2-e/2,",").concat(v),"L".concat(0,",").concat(v),"Z"].join(" ");return x.setAttribute("d",m),x}(o),L=function(c){var t=c.extend,r=T("adj4",c,.64977)*t.h;return{top:0,bottom:t.h-r,left:0,right:0,w:t.w,h:r}}(o);break;case"leftRightArrowCallout":g=function(c){var t=c.extend,r=Math.min(t.w,t.h),e=T("adj1",c,.25)*r,l=T("adj2",c,.25)*r,p=T("adj3",c,.25)*r,v=T("adj4",c,.48123)*t.w,x=A("path"),m=["M".concat(0,",").concat(t.h/2),"L".concat(p,",").concat(t.h/2-l),"L".concat(p,",").concat(t.h/2-e/2),"L".concat(t.w/2-v/2,",").concat(t.h/2-e/2),"L".concat(t.w/2-v/2,",").concat(0),"L".concat(t.w/2+v/2,",").concat(0),"L".concat(t.w/2+v/2,",").concat(t.h/2-e/2),"L".concat(t.w-p,",").concat(t.h/2-e/2),"L".concat(t.w-p,",").concat(t.h/2-l),"L".concat(t.w,",").concat(t.h/2),"L".concat(t.w-p,",").concat(t.h/2+l),"L".concat(t.w-p,",").concat(t.h/2+e/2),"L".concat(t.w/2+v/2,",").concat(t.h/2+e/2),"L".concat(t.w/2+v/2,",").concat(t.h),"L".concat(t.w/2-v/2,",").concat(t.h),"L".concat(t.w/2-v/2,",").concat(t.h/2+e/2),"L".concat(p,",").concat(t.h/2+e/2),"L".concat(p,",").concat(t.h/2+l),"Z"].join(" ");return x.setAttribute("d",m),x}(o),L=function(c){var t=c.extend,r=T("adj4",c,.48123)*t.w;return{top:0,bottom:0,left:t.w/2-r/2,right:t.w/2-r/2,w:r,h:t.h}}(o);break;case"quadArrowCallout":g=function(c){var t=c.extend,r=Math.min(t.w,t.h),e=T("adj1",c,.18515)*r,l=T("adj2",c,.18515)*r,p=T("adj3",c,.18515)*r,v=T("adj4",c,.48123)*t.w,x=T("adj4",c,.48123)*t.h,m=A("path"),_=["M".concat(0,",").concat(t.h/2),"L".concat(p,",").concat(t.h/2-l),"L".concat(p,",").concat(t.h/2-e/2),"L".concat(t.w/2-v/2,",").concat(t.h/2-e/2),"L".concat(t.w/2-v/2,",").concat(t.h/2-x/2),"L".concat(t.w/2-e/2,",").concat(t.h/2-x/2),"L".concat(t.w/2-e/2,",").concat(p),"L".concat(t.w/2-l,",").concat(p),"L".concat(t.w/2,",").concat(0),"L".concat(t.w/2+l,",").concat(p),"L".concat(t.w/2+e/2,",").concat(p),"L".concat(t.w/2+e/2,",").concat(t.h/2-x/2),"L".concat(t.w/2+v/2,",").concat(t.h/2-x/2),"L".concat(t.w/2+v/2,",").concat(t.h/2-e/2),"L".concat(t.w-p,",").concat(t.h/2-e/2),"L".concat(t.w-p,",").concat(t.h/2-l),"L".concat(t.w,",").concat(t.h/2),"L".concat(t.w-p,",").concat(t.h/2+l),"L".concat(t.w-p,",").concat(t.h/2+e/2),"L".concat(t.w/2+v/2,",").concat(t.h/2+e/2),"L".concat(t.w/2+v/2,",").concat(t.h/2+x/2),"L".concat(t.w/2+e/2,",").concat(t.h/2+x/2),"L".concat(t.w/2+e/2,",").concat(t.h-p),"L".concat(t.w/2+l,",").concat(t.h-p),"L".concat(t.w/2,",").concat(t.h),"L".concat(t.w/2-l,",").concat(t.h-p),"L".concat(t.w/2-e/2,",").concat(t.h-p),"L".concat(t.w/2-e/2,",").concat(t.h/2+x/2),"L".concat(t.w/2-v/2,",").concat(t.h/2+x/2),"L".concat(t.w/2-v/2,",").concat(t.h/2+e/2),"L".concat(p,",").concat(t.h/2+e/2),"L".concat(p,",").concat(t.h/2+l),"Z"].join(" ");return m.setAttribute("d",_),m}(o),L=function(c){var t=c.extend,r=T("adj4",c,.48123)*t.w,e=T("adj4",c,.48123)*t.h;return{top:t.h/2-e/2,bottom:t.h/2-e/2,left:t.w/2-r/2,right:t.w/2-r/2,w:r,h:e}}(o)}g&&(C?(s==null?void 0:s.type)==="blipFill"?function(c,t,r){var e=c.background,l=e===void 0?{}:e,p=c.extend,v=l.base64,x=l.alpha,m=l.fillRect,_=m===void 0?{}:m,k=_.b,I=k===void 0?0:k,B=_.t,O=B===void 0?0:B,D=_.l,N=D===void 0?0:D,U=_.r,F=U===void 0?0:U,H=A("defs"),Q=A("pattern");Q.setAttribute("id","background_"+c.uuid),Q.setAttribute("patternUnits","userSpaceOnUse"),Q.setAttribute("width",p.w+""),Q.setAttribute("height",p.h+"");var V=A("image");V.setAttribute("href",v),V.setAttribute("preserveAspectRatio","none");var J=p.w*N,et=p.h*O,at=p.w*(1-N-F),ot=p.h*(1-O-I);V.setAttribute("width",at+""),V.setAttribute("height",ot+""),V.setAttribute("x",J+""),V.setAttribute("y",et+""),typeof x=="number"&&V.setAttribute("opacity",x+""),Q.appendChild(V),H.appendChild(Q),t.appendChild(H),r.setAttribute("fill","url(#background_".concat(c.uuid,")"))}(o,P,g):(s==null?void 0:s.type)==="gradFill"?function(c,t,r){var e=c.background,l=e===void 0?{}:e;c.extend;var p=l.gsList,v=l.lin,x=l.path,m=l.tileRect,_=m===void 0?{}:m,k=A("defs"),I=A(x==="circle"?"radialGradient":"linearGradient");I.setAttribute("id","background_grad_fill_"+c.uuid);var B=p||[];if(B.sort(function(F,H){return F.pos-H.pos}),B.forEach(function(F){var H=A("stop");H.setAttribute("offset","".concat(100*F.pos,"%")),H.setAttribute("stop-color",z(F.color)),I.appendChild(H)}),x==="circle"){var O=_.r,D=_.l,N=_.t,U=_.b;O===-1?I.setAttribute("cx","100%"):D===-1&&I.setAttribute("cx","0%"),N===-1?I.setAttribute("cy","0%"):U===-1&&I.setAttribute("cy","100%")}else v!=null&&v.ang&&I.setAttribute("gradientTransform","rotate(".concat(v.ang,")"));k.appendChild(I),t.appendChild(k),r.setAttribute("fill","url(#background_grad_fill_".concat(c.uuid,")"))}(o,P,g):g.setAttribute("fill",z(s)||"transparent"):g.setAttribute("fill","transparent"),a.width?(g.setAttribute("stroke-width",a.width+"px"),g.setAttribute("stroke",z(a.color)||"transparent")):g.setAttribute("stroke-width","0"),g.setAttribute("stroke-dasharray",function(c){return c&&c.type!=="solid"?({sysDot:[1,1],sysDash:[3,1],dash:[4,3],dashDot:[4,3,1,3],lgDash:[8,3],lgDashDot:[8,3,1,3],lgDashDotDot:[8,3,1,3,1,3]}[c.type]||[]).map(function(t){return t*c.width}).join(","):""}(a)),g.setAttribute("stroke-linecap",a.cap&&{sq:"square",rnd:"round",flat:"butt"}[a.cap]||"square"),g.setAttribute("stroke-linejoin",a.lineJoin||"round"),a.lineJoin==="miter"&&g.setAttribute("stroke-miterlimit",a.miterLim+""),P.appendChild(g));var R=[];d&&R.push("scaleX(-1)"),u&&R.push("scaleY(-1)"),P.style.setProperty("transform",R.join(" ")),w.appendChild(P);var j=function(c,t,r){var e;r===void 0&&(r=!1);var l=c.inheritProps,p=c.props,v=c.paragraphs;if(!v||v.length===0)return null;var x=S(S({},l),p),m=document.createElement("div");switch(m.className="text-wrapper",m.style.boxSizing="border-box",m.style.position="absolute",m.style.left=t.left+"px",x.vert==="eaVert"?(m.style.writingMode="vertical-rl",m.style.height=t.h+"px"):m.style.width=t.w+"px",x.anchor){case"b":m.style.bottom=t.bottom+"px";break;case"t":m.style.top=t.top+"px";break;case"ctr":m.style.top=t.top+t.h/2+"px",m.style.transform="translateY(-50%)";break;default:r?m.style.top=t.top+"px":(m.style.top=t.top+t.h/2+"px",m.style.transform="translateY(-50%)")}var _=[x.hasOwnProperty("tIns")?Math.floor(x.tIns)+"px":"3px",x.hasOwnProperty("rIns")?Math.floor(x.rIns)+"px":"5px",x.hasOwnProperty("bIns")?Math.floor(x.bIns)+"px":"3px",x.hasOwnProperty("lIns")?Math.floor(x.lIns)+"px":"5px"];m.style.padding=_.join(" ");for(var k={},I=0,B=function(N){var U=S(S({},N.inheritProps),N.props),F=void 0;if(U.buAutoNum){var H=U.level?+U.level:0;k[H]||(k[H]=0),!((e=N.rows)===null||e===void 0)&&e.length&&k[H]++,Object.keys(k).forEach(function(Q){+Q>H&&(k[Q]=0)}),F=Lt(N,k[H],{isFirst:I===0,isLast:v.length-1===I,bodyProps:x})}else F=Lt(N,0,{isFirst:I===0,isLast:v.length-1===I,bodyProps:x});m.appendChild(F),I++},O=0,D=v;Ow.order?1:-1});for(var h=0;hw.order?1:-1});for(var h=0;hw.order?1:-1});for(var h=0;hV&&(I[J]=0)}),Q=Lt(F,I[V],{isFirst:O===0,isLast:e.length-1===O,bodyProps:k})}else Q=Lt(F,0,{isFirst:O===0,isLast:e.length-1===O,bodyProps:k});m.appendChild(Q),O++},N=0,U=B;N({})},options:{type:Object,default:()=>({})}},emits:["rendered","error"],setup(o,{emit:n}){let i=null;const a=je(null);function s(){let u=a.value,w=o.options.width||u.getBoundingClientRect().width||960,b=o.options.height||u.getBoundingClientRect().height||540;i=oa(u,{width:w,height:b})}function h(u){if(typeof u=="string")return fetch(u,o.requestOptions).then(w=>w.arrayBuffer());if(u instanceof ArrayBuffer)return Promise.resolve(u)}function d(){o.src&&h(o.src).then(u=>{i.preview(u).then(w=>{n("rendered",w)}).catch(w=>{n("error",w)})}).catch(u=>{n("error",u)})}return Ee(()=>{s(),d()}),Ne(()=>o.src,()=>{d()}),{rootRef:a}}}),ia={class:"vue-office-pptx"},sa={class:"vue-office-pptx-main",ref:"rootRef",style:{width:"100%",height:"100%"}};function ha(o,n,i,a,s,h){return ke(),Fe("div",ia,[Pe("div",sa,null,512)])}const bt=Oe(ca,[["render",ha]]);bt.install=function(o){o.component(bt.name,bt)};const la={style:{flex:"1",height:"0",background:"black"}},va={__name:"PptxDemo",setup(o){function n(){ue.hideLoading()}function i(d){console.log("出差",d),ue.hideLoading()}const a=location.origin+(location.pathname+"/").replace("//","/")+"static/test-files/test.pptx",s=je(),h={headers:{}};return(d,u)=>(ke(),Ze(Ue,{accept:".pptx",placeholder:"请输入pptx文件地址","default-src":a},{default:De(w=>[Pe("div",la,[ze(He(bt),{ref_key:"docxRef",ref:s,src:w.src,"request-options":h,style:{height:"calc(100vh - 100px)"},options:{width:960},onRendered:n,onError:i},null,8,["src"])])]),_:1}))}};export{va as default}; diff --git a/examples/dist/assets/PreviewWrapper-b82be9e1.js b/examples/dist/assets/PreviewWrapper-b82be9e1.js new file mode 100644 index 0000000..da53cbb --- /dev/null +++ b/examples/dist/assets/PreviewWrapper-b82be9e1.js @@ -0,0 +1 @@ +import{r as u,m as C,_ as I,w as N,p as n,a as d,c as k,u as t,g as i,f as r,q as g,s as S,e as x,t as y,l as V,v as A,x as R,b as T}from"./index-b9f20394.js";function $(e){const p=u("url"),a=u(e),o=u(e),l=u(typeof e=="string"?e.endsWith(".xls"):!1),c=u([]);function h(_){l.value=_.name.endsWith("xls");let f=new FileReader;return f.onload=s=>{let v=s.target.result;o.value=v},f.readAsArrayBuffer(_),!1}return{type:p,inputSrc:a,src:o,xls:l,fileList:c,beforeUpload:h}}let w=u(!1),B;function q(e){B=C.loading(e,0),w.value=!0}function E(){w.value===!0&&(B(),w.value=!1)}const F={loading:w,showLoading:q,hideLoading:E};function j(){return location.href.includes("test")}const z=e=>(A("data-v-0bd825a5"),e=e(),R(),e),D={class:"preview-wrapper"},G={key:0,class:"operate-area"},H=z(()=>T("div",{class:"preview-wrapper-main"},null,-1)),J={__name:"PreviewWrapper",props:{accept:String,placeholder:String,defaultSrc:String},setup(e){const p=e,{type:a,inputSrc:o,src:l,xls:c,fileList:h,beforeUpload:_}=$(p.defaultSrc);return N(l,()=>{F.showLoading()},{immediate:!0}),(f,s)=>{const v=n("a-radio-button"),L=n("a-radio-group"),U=n("a-input"),b=n("a-button"),W=n("upload-outlined"),P=n("a-upload");return d(),k("div",D,[t(j)()?y("",!0):(d(),k("div",G,[i(L,{value:t(a),"onUpdate:value":s[0]||(s[0]=m=>S(a)?a.value=m:null),"button-style":"solid"},{default:r(()=>[i(v,{value:"url"},{default:r(()=>[g("远程文件地址")]),_:1}),i(v,{value:"upload"},{default:r(()=>[g("上传本地文件")]),_:1})]),_:1},8,["value"]),t(a)==="url"?(d(),x(U,{key:0,value:t(o),"onUpdate:value":s[1]||(s[1]=m=>S(o)?o.value=m:null),placeholder:p.placeholder,style:{width:"600px","margin-left":"10px"}},null,8,["value","placeholder"])):y("",!0),t(a)==="url"?(d(),x(b,{key:1,type:"primary",style:{"margin-left":"10px"},onClick:s[2]||(s[2]=m=>{l.value=t(o),c.value=t(o).endsWith("xls")})},{default:r(()=>[g(" 预览 ")]),_:1})):y("",!0),t(a)!=="url"?(d(),x(P,{key:2,accept:p.accept,action:"",beforeUpload:t(_),"file-list":[]},{default:r(()=>[i(b,{style:{"margin-left":"10px"}},{default:r(()=>[i(W),g(" 选择文件 ")]),_:1})]),_:1},8,["accept","beforeUpload"])):y("",!0)])),V(f.$slots,"default",{src:t(l),xls:t(c)},void 0,!0),H])}}},M=I(J,[["__scopeId","data-v-0bd825a5"]]);export{M as P,F as u}; diff --git a/examples/dist/assets/docx-7f17a379.js b/examples/dist/assets/docx-7f17a379.js new file mode 100644 index 0000000..78365ee --- /dev/null +++ b/examples/dist/assets/docx-7f17a379.js @@ -0,0 +1,22 @@ +import{o as ve}from"./jszip.min-e66ecff9.js";var k;(function(a){a.OfficeDocument="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",a.FontTable="http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable",a.Image="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",a.Numbering="http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering",a.Styles="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles",a.StylesWithEffects="http://schemas.microsoft.com/office/2007/relationships/stylesWithEffects",a.Theme="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme",a.Settings="http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings",a.WebSettings="http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings",a.Hyperlink="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",a.Footnotes="http://schemas.openxmlformats.org/officeDocument/2006/relationships/footnotes",a.Endnotes="http://schemas.openxmlformats.org/officeDocument/2006/relationships/endnotes",a.Footer="http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer",a.Header="http://schemas.openxmlformats.org/officeDocument/2006/relationships/header",a.ExtendedProperties="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties",a.CoreProperties="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties",a.CustomProperties="http://schemas.openxmlformats.org/package/2006/relationships/metadata/custom-properties",a.Comments="http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments",a.CommentsExtended="http://schemas.microsoft.com/office/2011/relationships/commentsExtended"})(k||(k={}));function ye(a,e){return e.elements(a).map(t=>({id:e.attr(t,"Id"),type:e.attr(t,"Type"),target:e.attr(t,"Target"),targetMode:e.attr(t,"TargetMode")}))}const se={wordml:"http://schemas.openxmlformats.org/wordprocessingml/2006/main",drawingml:"http://schemas.openxmlformats.org/drawingml/2006/main",picture:"http://schemas.openxmlformats.org/drawingml/2006/picture",compatibility:"http://schemas.openxmlformats.org/markup-compatibility/2006",math:"http://schemas.openxmlformats.org/officeDocument/2006/math"},v={Dxa:{mul:.05,unit:"pt"},Emu:{mul:1/12700,unit:"pt"},FontSize:{mul:.5,unit:"pt"},Border:{mul:.125,unit:"pt"},Point:{mul:1,unit:"pt"},Percent:{mul:.02,unit:"%"},LineHeight:{mul:1/240,unit:""},VmlEmu:{mul:1/12700,unit:""}};function ne(a,e=v.Dxa){return a==null||/.+(p[xt]|[%])$/.test(a)?a:`${(parseInt(a)*e.mul).toFixed(2)}${e.unit}`}function Pe(a,e=!1){switch(a){case"1":return!0;case"0":return!1;case"on":return!0;case"off":return!1;case"true":return!0;case"false":return!1;default:return e}}function ie(a,e,t){if(a.namespaceURI!=se.wordml)return!1;switch(a.localName){case"color":e.color=t.attr(a,"val");break;case"sz":e.fontSize=t.lengthAttr(a,"val",v.FontSize);break;default:return!1}return!0}function Se(a,e=!1){e&&(a=a.replace(/<[?].*[?]>/,"")),a=Ce(a);const t=new DOMParser().parseFromString(a,"application/xml"),r=we(t);if(r)throw new Error(r);return t}function we(a){var e;return(e=a.getElementsByTagName("parsererror")[0])==null?void 0:e.textContent}function Ce(a){return a.charCodeAt(0)===65279?a.substring(1):a}function Me(a){return new XMLSerializer().serializeToString(a)}class le{elements(e,t=null){const r=[];for(let s=0,n=e.childNodes.length;sEe(t,e))}function Ee(a,e){let t={name:e.attr(a,"name"),embedFontRefs:[]};for(let r of e.elements(a))switch(r.localName){case"family":t.family=e.attr(r,"val");break;case"altName":t.altName=e.attr(r,"val");break;case"embedRegular":case"embedBold":case"embedItalic":case"embedBoldItalic":t.embedFontRefs.push(xe(r,e));break}return t}function xe(a,e){return{id:e.attr(a,"id"),key:e.attr(a,"fontKey"),type:Ne[a.localName]}}class Re extends P{parseXml(e){this.fonts=Ae(e,this._package.xmlParser)}}function Be(a){return a==null?void 0:a.replace(/[ .]+/g,"-").replace(/[&]+/g,"and").toLowerCase()}function O(a){let e=a.lastIndexOf("/")+1,t=e==0?"":a.substring(0,e),r=e==0?a:a.substring(e);return[t,r]}function z(a,e){try{const t="http://docx/";return new URL(a,t+e).toString().substring(t.length)}catch{return`${e}${a}`}}function A(a,e){return a.reduce((t,r)=>(t[e(r)]=r,t),{})}function Fe(a){return new Promise((e,t)=>{const r=new FileReader;r.onloadend=()=>e(r.result),r.onerror=()=>t(),r.readAsDataURL(a)})}function V(a){return a&&typeof a=="object"&&!Array.isArray(a)}function Le(a){return typeof a=="string"||a instanceof String}function _(a,...e){if(!e.length)return a;const t=e.shift();if(V(a)&&V(t))for(const r in t)if(V(t[r])){const s=a[r]??(a[r]={});_(s,t[r])}else a[r]=t[r];return _(a,...e)}function F(a){return Array.isArray(a)?a:[a]}class W{constructor(e,t){this._zip=e,this.options=t,this.xmlParser=new le}get(e){const t=Te(e);return this._zip.files[t]??this._zip.files[t.replace(/\//g,"\\")]}update(e,t){this._zip.file(e,t)}static async load(e,t){const r=await ve.loadAsync(e);return new W(r,t)}save(e="blob"){return this._zip.generateAsync({type:e})}load(e,t="string"){var r;return((r=this.get(e))==null?void 0:r.async(t))??Promise.resolve(null)}async loadRelationships(e=null){let t="_rels/.rels";if(e!=null){const[s,n]=O(e);t=`${s}_rels/${n}.rels`}const r=await this.load(t);return r?ye(this.parseXmlDocument(r).firstElementChild,this.xmlParser):null}parseXmlDocument(e){return Se(e,this.options.trimXmlDeclaration)}}function Te(a){return a.startsWith("/")?a.substr(1):a}class $e extends P{constructor(e,t,r){super(e,t),this._documentParser=r}parseXml(e){this.body=this._documentParser.parseDocumentFile(e)}}function H(a,e){return{type:e.attr(a,"val"),color:e.attr(a,"color"),size:e.lengthAttr(a,"sz",v.Border),offset:e.lengthAttr(a,"space",v.Point),frame:e.boolAttr(a,"frame"),shadow:e.boolAttr(a,"shadow")}}function De(a,e){var t={};for(let r of e.elements(a))switch(r.localName){case"left":t.left=H(r,e);break;case"top":t.top=H(r,e);break;case"right":t.right=H(r,e);break;case"bottom":t.bottom=H(r,e);break}return t}var q;(function(a){a.Continuous="continuous",a.NextPage="nextPage",a.NextColumn="nextColumn",a.EvenPage="evenPage",a.OddPage="oddPage"})(q||(q={}));function oe(a,e=i){var t={};for(let r of e.elements(a))switch(r.localName){case"pgSz":t.pageSize={width:e.lengthAttr(r,"w"),height:e.lengthAttr(r,"h"),orientation:e.attr(r,"orient")};break;case"type":t.type=e.attr(r,"val");break;case"pgMar":t.pageMargins={left:e.lengthAttr(r,"left"),right:e.lengthAttr(r,"right"),top:e.lengthAttr(r,"top"),bottom:e.lengthAttr(r,"bottom"),header:e.lengthAttr(r,"header"),footer:e.lengthAttr(r,"footer"),gutter:e.lengthAttr(r,"gutter")};break;case"cols":t.columns=He(r,e);break;case"headerReference":(t.headerRefs??(t.headerRefs=[])).push(J(r,e));break;case"footerReference":(t.footerRefs??(t.footerRefs=[])).push(J(r,e));break;case"titlePg":t.titlePage=e.boolAttr(r,"val",!0);break;case"pgBorders":t.pageBorders=De(r,e);break;case"pgNumType":t.pageNumber=Oe(r,e);break}return t}function He(a,e){return{numberOfColumns:e.intAttr(a,"num"),space:e.lengthAttr(a,"space"),separator:e.boolAttr(a,"sep"),equalWidth:e.boolAttr(a,"equalWidth",!0),columns:e.elements(a,"col").map(t=>({width:e.lengthAttr(t,"w"),space:e.lengthAttr(t,"space")}))}}function Oe(a,e){return{chapSep:e.attr(a,"chapSep"),chapStyle:e.attr(a,"chapStyle"),format:e.attr(a,"fmt"),start:e.intAttr(a,"start")}}function J(a,e){return{id:e.attr(a,"id"),type:e.attr(a,"type")}}function Ie(a,e){return{before:e.lengthAttr(a,"before"),after:e.lengthAttr(a,"after"),line:e.intAttr(a,"line"),lineRule:e.attr(a,"lineRule")}}function X(a,e){let t={};for(let r of e.elements(a))_e(r,t,e);return t}function _e(a,e,t){return!!ie(a,e,t)}function ce(a,e){let t={};for(let r of e.elements(a))ue(r,t,e);return t}function ue(a,e,t){if(a.namespaceURI!=se.wordml)return!1;if(ie(a,e,t))return!0;switch(a.localName){case"tabs":e.tabs=ze(a,t);break;case"sectPr":e.sectionProps=oe(a,t);break;case"numPr":e.numbering=Ve(a,t);break;case"spacing":return e.lineSpacing=Ie(a,t),!1;case"textAlignment":return e.textAlignment=t.attr(a,"val"),!1;case"keepLines":e.keepLines=t.boolAttr(a,"val",!0);break;case"keepNext":e.keepNext=t.boolAttr(a,"val",!0);break;case"pageBreakBefore":e.pageBreakBefore=t.boolAttr(a,"val",!0);break;case"outlineLvl":e.outlineLevel=t.intAttr(a,"val");break;case"pStyle":e.styleName=t.attr(a,"val");break;case"rPr":e.runProps=X(a,t);break;default:return!1}return!0}function ze(a,e){return e.elements(a,"tab").map(t=>({position:e.lengthAttr(t,"pos"),leader:e.attr(t,"leader"),style:e.attr(t,"val")}))}function Ve(a,e){var t={};for(let r of e.elements(a))switch(r.localName){case"numId":t.id=e.attr(r,"val");break;case"ilvl":t.level=e.intAttr(r,"val");break}return t}function je(a,e){let t={numberings:[],abstractNumberings:[],bulletPictures:[]};for(let r of e.elements(a))switch(r.localName){case"num":t.numberings.push(We(r,e));break;case"abstractNum":t.abstractNumberings.push(Xe(r,e));break;case"numPicBullet":t.bulletPictures.push(Ge(r,e));break}return t}function We(a,e){let t={id:e.attr(a,"numId"),overrides:[]};for(let r of e.elements(a))switch(r.localName){case"abstractNumId":t.abstractId=e.attr(r,"val");break;case"lvlOverride":t.overrides.push(Ue(r,e));break}return t}function Xe(a,e){let t={id:e.attr(a,"abstractNumId"),levels:[]};for(let r of e.elements(a))switch(r.localName){case"name":t.name=e.attr(r,"val");break;case"multiLevelType":t.multiLevelType=e.attr(r,"val");break;case"numStyleLink":t.numberingStyleLink=e.attr(r,"val");break;case"styleLink":t.styleLink=e.attr(r,"val");break;case"lvl":t.levels.push(he(r,e));break}return t}function he(a,e){let t={level:e.intAttr(a,"ilvl")};for(let r of e.elements(a))switch(r.localName){case"start":t.start=e.attr(r,"val");break;case"lvlRestart":t.restart=e.intAttr(r,"val");break;case"numFmt":t.format=e.attr(r,"val");break;case"lvlText":t.text=e.attr(r,"val");break;case"lvlJc":t.justification=e.attr(r,"val");break;case"lvlPicBulletId":t.bulletPictureId=e.attr(r,"val");break;case"pStyle":t.paragraphStyle=e.attr(r,"val");break;case"pPr":t.paragraphProps=ce(r,e);break;case"rPr":t.runProps=X(r,e);break}return t}function Ue(a,e){let t={level:e.intAttr(a,"ilvl")};for(let r of e.elements(a))switch(r.localName){case"startOverride":t.start=e.intAttr(r,"val");break;case"lvl":t.numberingLevel=he(r,e);break}return t}function Ge(a,e){var t=e.element(a,"pict"),r=t&&e.element(t,"shape"),s=r&&e.element(r,"imagedata");return s?{id:e.attr(a,"numPicBulletId"),referenceId:e.attr(s,"id"),style:e.attr(r,"style")}:null}class qe extends P{constructor(e,t,r){super(e,t),this._documentParser=r}parseXml(e){Object.assign(this,je(e,this._package.xmlParser)),this.domNumberings=this._documentParser.parseNumberingFile(e)}}class Je extends P{constructor(e,t,r){super(e,t),this._documentParser=r}parseXml(e){this.styles=this._documentParser.parseStylesFile(e)}}var l;(function(a){a.Document="document",a.Paragraph="paragraph",a.Run="run",a.Break="break",a.NoBreakHyphen="noBreakHyphen",a.Table="table",a.Row="row",a.Cell="cell",a.Hyperlink="hyperlink",a.SmartTag="smartTag",a.Drawing="drawing",a.Image="image",a.Text="text",a.Tab="tab",a.Symbol="symbol",a.BookmarkStart="bookmarkStart",a.BookmarkEnd="bookmarkEnd",a.Footer="footer",a.Header="header",a.FootnoteReference="footnoteReference",a.EndnoteReference="endnoteReference",a.Footnote="footnote",a.Endnote="endnote",a.SimpleField="simpleField",a.ComplexField="complexField",a.Instruction="instruction",a.VmlPicture="vmlPicture",a.MmlMath="mmlMath",a.MmlMathParagraph="mmlMathParagraph",a.MmlFraction="mmlFraction",a.MmlFunction="mmlFunction",a.MmlFunctionName="mmlFunctionName",a.MmlNumerator="mmlNumerator",a.MmlDenominator="mmlDenominator",a.MmlRadical="mmlRadical",a.MmlBase="mmlBase",a.MmlDegree="mmlDegree",a.MmlSuperscript="mmlSuperscript",a.MmlSubscript="mmlSubscript",a.MmlPreSubSuper="mmlPreSubSuper",a.MmlSubArgument="mmlSubArgument",a.MmlSuperArgument="mmlSuperArgument",a.MmlNary="mmlNary",a.MmlDelimiter="mmlDelimiter",a.MmlRun="mmlRun",a.MmlEquationArray="mmlEquationArray",a.MmlLimit="mmlLimit",a.MmlLimitLower="mmlLimitLower",a.MmlMatrix="mmlMatrix",a.MmlMatrixRow="mmlMatrixRow",a.MmlBox="mmlBox",a.MmlBar="mmlBar",a.MmlGroupChar="mmlGroupChar",a.VmlElement="vmlElement",a.Inserted="inserted",a.Deleted="deleted",a.DeletedText="deletedText",a.Comment="comment",a.CommentReference="commentReference",a.CommentRangeStart="commentRangeStart",a.CommentRangeEnd="commentRangeEnd"})(l||(l={}));class x{constructor(){this.children=[],this.cssStyle={}}}class Ye extends x{constructor(){super(...arguments),this.type=l.Header}}class Ze extends x{constructor(){super(...arguments),this.type=l.Footer}}class de extends P{constructor(e,t,r){super(e,t),this._documentParser=r}parseXml(e){this.rootElement=this.createRootElement(),this.rootElement.children=this._documentParser.parseBodyElements(e)}}class Ke extends de{createRootElement(){return new Ye}}class Qe extends de{createRootElement(){return new Ze}}function et(a,e){const t={};for(let r of e.elements(a))switch(r.localName){case"Template":t.template=r.textContent;break;case"Pages":t.pages=L(r.textContent);break;case"Words":t.words=L(r.textContent);break;case"Characters":t.characters=L(r.textContent);break;case"Application":t.application=r.textContent;break;case"Lines":t.lines=L(r.textContent);break;case"Paragraphs":t.paragraphs=L(r.textContent);break;case"Company":t.company=r.textContent;break;case"AppVersion":t.appVersion=r.textContent;break}return t}function L(a){if(!(typeof a>"u"))return parseInt(a)}class tt extends P{parseXml(e){this.props=et(e,this._package.xmlParser)}}function rt(a,e){const t={};for(let r of e.elements(a))switch(r.localName){case"title":t.title=r.textContent;break;case"description":t.description=r.textContent;break;case"subject":t.subject=r.textContent;break;case"creator":t.creator=r.textContent;break;case"keywords":t.keywords=r.textContent;break;case"language":t.language=r.textContent;break;case"lastModifiedBy":t.lastModifiedBy=r.textContent;break;case"revision":r.textContent&&(t.revision=parseInt(r.textContent));break}return t}class at extends P{parseXml(e){this.props=rt(e,this._package.xmlParser)}}class st{}function nt(a,e){var t=new st,r=e.element(a,"themeElements");for(let s of e.elements(r))switch(s.localName){case"clrScheme":t.colorScheme=it(s,e);break;case"fontScheme":t.fontScheme=lt(s,e);break}return t}function it(a,e){var t={name:e.attr(a,"name"),colors:{}};for(let n of e.elements(a)){var r=e.element(n,"srgbClr"),s=e.element(n,"sysClr");r?t.colors[n.localName]=e.attr(r,"val"):s&&(t.colors[n.localName]=e.attr(s,"lastClr"))}return t}function lt(a,e){var t={name:e.attr(a,"name")};for(let r of e.elements(a))switch(r.localName){case"majorFont":t.majorFont=Y(r,e);break;case"minorFont":t.minorFont=Y(r,e);break}return t}function Y(a,e){return{latinTypeface:e.elementAttr(a,"latin","typeface"),eaTypeface:e.elementAttr(a,"ea","typeface"),csTypeface:e.elementAttr(a,"cs","typeface")}}class ot extends P{constructor(e,t){super(e,t)}parseXml(e){this.theme=nt(e,this._package.xmlParser)}}class pe{}class ct extends pe{constructor(){super(...arguments),this.type=l.Footnote}}class ut extends pe{constructor(){super(...arguments),this.type=l.Endnote}}class me extends P{constructor(e,t,r){super(e,t),this._documentParser=r}}class ht extends me{constructor(e,t,r){super(e,t,r)}parseXml(e){this.notes=this._documentParser.parseNotes(e,"footnote",ct)}}class dt extends me{constructor(e,t,r){super(e,t,r)}parseXml(e){this.notes=this._documentParser.parseNotes(e,"endnote",ut)}}function pt(a,e){var t={};for(let r of e.elements(a))switch(r.localName){case"defaultTabStop":t.defaultTabStop=e.lengthAttr(r,"val");break;case"footnotePr":t.footnoteProps=Z(r,e);break;case"endnotePr":t.endnoteProps=Z(r,e);break;case"autoHyphenation":t.autoHyphenation=e.boolAttr(r,"val");break}return t}function Z(a,e){var t={defaultNoteIds:[]};for(let r of e.elements(a))switch(r.localName){case"numFmt":t.nummeringFormat=e.attr(r,"val");break;case"footnote":case"endnote":t.defaultNoteIds.push(e.attr(r,"id"));break}return t}class mt extends P{constructor(e,t){super(e,t)}parseXml(e){this.settings=pt(e,this._package.xmlParser)}}function ft(a,e){return e.elements(a,"property").map(t=>{const r=t.firstChild;return{formatId:e.attr(t,"fmtid"),name:e.attr(t,"name"),type:r.nodeName,value:r.textContent}})}class gt extends P{parseXml(e){this.props=ft(e,this._package.xmlParser)}}class bt extends P{constructor(e,t,r){super(e,t),this._documentParser=r}parseXml(e){this.comments=this._documentParser.parseComments(e),this.commentMap=A(this.comments,t=>t.id)}}class kt extends P{constructor(e,t){super(e,t),this.comments=[]}parseXml(e){const t=this._package.xmlParser;for(let r of t.elements(e,"commentEx"))this.comments.push({paraId:t.attr(r,"paraId"),paraIdParent:t.attr(r,"paraIdParent"),done:t.boolAttr(r,"done")});this.commentMap=A(this.comments,r=>r.paraId)}}const vt=[{type:k.OfficeDocument,target:"word/document.xml"},{type:k.ExtendedProperties,target:"docProps/app.xml"},{type:k.CoreProperties,target:"docProps/core.xml"},{type:k.CustomProperties,target:"docProps/custom.xml"}];class U{constructor(){this.parts=[],this.partsMap={}}static async load(e,t,r){var s=new U;return s._options=r,s._parser=t,s._package=await W.load(e,r),s.rels=await s._package.loadRelationships(),await Promise.all(vt.map(n=>{const o=s.rels.find(c=>c.type===n.type)??n;return s.loadRelationshipPart(o.target,o.type)})),s}save(e="blob"){return this._package.save(e)}async loadRelationshipPart(e,t){var s;if(this.partsMap[e])return this.partsMap[e];if(!this._package.get(e))return null;let r=null;switch(t){case k.OfficeDocument:this.documentPart=r=new $e(this._package,e,this._parser);break;case k.FontTable:this.fontTablePart=r=new Re(this._package,e);break;case k.Numbering:this.numberingPart=r=new qe(this._package,e,this._parser);break;case k.Styles:this.stylesPart=r=new Je(this._package,e,this._parser);break;case k.Theme:this.themePart=r=new ot(this._package,e);break;case k.Footnotes:this.footnotesPart=r=new ht(this._package,e,this._parser);break;case k.Endnotes:this.endnotesPart=r=new dt(this._package,e,this._parser);break;case k.Footer:r=new Qe(this._package,e,this._parser);break;case k.Header:r=new Ke(this._package,e,this._parser);break;case k.CoreProperties:this.corePropsPart=r=new at(this._package,e);break;case k.ExtendedProperties:this.extendedPropsPart=r=new tt(this._package,e);break;case k.CustomProperties:r=new gt(this._package,e);break;case k.Settings:this.settingsPart=r=new mt(this._package,e);break;case k.Comments:this.commentsPart=r=new bt(this._package,e,this._parser);break;case k.CommentsExtended:this.commentsExtendedPart=r=new kt(this._package,e);break}if(r==null)return Promise.resolve(null);if(this.partsMap[e]=r,this.parts.push(r),await r.load(),((s=r.rels)==null?void 0:s.length)>0){const[n]=O(r.path);await Promise.all(r.rels.map(o=>this.loadRelationshipPart(z(o.target,n),o.type)))}return r}async loadDocumentImage(e,t){const r=await this.loadResource(t??this.documentPart,e,"blob");return this.blobToURL(r)}async loadNumberingImage(e){const t=await this.loadResource(this.numberingPart,e,"blob");return this.blobToURL(t)}async loadFont(e,t){const r=await this.loadResource(this.fontTablePart,e,"uint8array");return r&&this.blobToURL(new Blob([yt(r,t)]))}blobToURL(e){return e?this._options.useBase64URL?Fe(e):URL.createObjectURL(e):null}findPartByRelId(e,t=null){var r=(t.rels??this.rels).find(n=>n.id==e);const s=t?O(t.path)[0]:"";return r?this.partsMap[z(r.target,s)]:null}getPathById(e,t){const r=e.rels.find(n=>n.id==t),[s]=O(e.path);return r?z(r.target,s):null}loadResource(e,t,r){const s=this.getPathById(e,t);return s?this._package.load(s,r):Promise.resolve(null)}}function yt(a,e){const r=e.replace(/{|}|-/g,""),s=new Array(16);for(let n=0;n<16;n++)s[16-n-1]=parseInt(r.substr(n*2,2),16);for(let n=0;n<32;n++)a[n]=a[n]^s[n%16];return a}function Pt(a,e){return{type:l.BookmarkStart,id:e.attr(a,"id"),name:e.attr(a,"name"),colFirst:e.intAttr(a,"colFirst"),colLast:e.intAttr(a,"colLast")}}function St(a,e){return{type:l.BookmarkEnd,id:e.attr(a,"id")}}class wt extends x{constructor(){super(...arguments),this.type=l.VmlElement,this.attrs={}}}function fe(a,e){var t=new wt;switch(a.localName){case"rect":t.tagName="rect",Object.assign(t.attrs,{width:"100%",height:"100%"});break;case"oval":t.tagName="ellipse",Object.assign(t.attrs,{cx:"50%",cy:"50%",rx:"50%",ry:"50%"});break;case"line":t.tagName="line";break;case"shape":t.tagName="g";break;case"textbox":t.tagName="foreignObject",Object.assign(t.attrs,{width:"100%",height:"100%"});break;default:return null}for(const r of i.attrs(a))switch(r.localName){case"style":t.cssStyleText=r.value;break;case"fillcolor":t.attrs.fill=r.value;break;case"from":const[s,n]=K(r.value);Object.assign(t.attrs,{x1:s,y1:n});break;case"to":const[o,c]=K(r.value);Object.assign(t.attrs,{x2:o,y2:c});break}for(const r of i.elements(a))switch(r.localName){case"stroke":Object.assign(t.attrs,Ct(r));break;case"fill":Object.assign(t.attrs,Mt());break;case"imagedata":t.tagName="image",Object.assign(t.attrs,{width:"100%",height:"100%"}),t.imageHref={id:i.attr(r,"id"),title:i.attr(r,"title")};break;case"txbxContent":t.children.push(...e.parseBodyElements(r));break;default:const s=fe(r,e);s&&t.children.push(s);break}return t}function Ct(a){return{stroke:i.attr(a,"color"),"stroke-width":i.lengthAttr(a,"weight",v.Emu)??"1px"}}function Mt(a){return{}}function K(a){return a.split(",")}class Nt extends x{constructor(){super(...arguments),this.type=l.Comment}}class At extends x{constructor(e){super(),this.id=e,this.type=l.CommentReference}}class Et extends x{constructor(e){super(),this.id=e,this.type=l.CommentRangeStart}}class xt extends x{constructor(e){super(),this.id=e,this.type=l.CommentRangeEnd}}var I={shd:"inherit",color:"black",borderColor:"black",highlight:"transparent"};const Rt=[],Q={oMath:l.MmlMath,oMathPara:l.MmlMathParagraph,f:l.MmlFraction,func:l.MmlFunction,fName:l.MmlFunctionName,num:l.MmlNumerator,den:l.MmlDenominator,rad:l.MmlRadical,deg:l.MmlDegree,e:l.MmlBase,sSup:l.MmlSuperscript,sSub:l.MmlSubscript,sPre:l.MmlPreSubSuper,sup:l.MmlSuperArgument,sub:l.MmlSubArgument,d:l.MmlDelimiter,nary:l.MmlNary,eqArr:l.MmlEquationArray,lim:l.MmlLimit,limLow:l.MmlLimitLower,m:l.MmlMatrix,mr:l.MmlMatrixRow,box:l.MmlBox,bar:l.MmlBar,groupChr:l.MmlGroupChar};class Bt{constructor(e){this.options={ignoreWidth:!1,debug:!1,...e}}parseNotes(e,t,r){var s=[];for(let n of i.elements(e,t)){const o=new r;o.id=i.attr(n,"id"),o.noteType=i.attr(n,"type"),o.children=this.parseBodyElements(n),s.push(o)}return s}parseComments(e){var t=[];for(let r of i.elements(e,"comment")){const s=new Nt;s.id=i.attr(r,"id"),s.author=i.attr(r,"author"),s.initials=i.attr(r,"initials"),s.date=i.attr(r,"date"),s.children=this.parseBodyElements(r),t.push(s)}return t}parseDocumentFile(e){var t=i.element(e,"body"),r=i.element(e,"background"),s=i.element(t,"sectPr");return{type:l.Document,children:this.parseBodyElements(t),props:s?oe(s,i):{},cssStyle:r?this.parseBackground(r):{}}}parseBackground(e){var t={},r=g.colorAttr(e,"color");return r&&(t["background-color"]=r),t}parseBodyElements(e){var t=[];for(let r of i.elements(e))switch(r.localName){case"p":t.push(this.parseParagraph(r));break;case"tbl":t.push(this.parseTable(r));break;case"sdt":t.push(...this.parseSdt(r,s=>this.parseBodyElements(s)));break}return t}parseStylesFile(e){var t=[];return g.foreach(e,r=>{switch(r.localName){case"style":t.push(this.parseStyle(r));break;case"docDefaults":t.push(this.parseDefaultStyles(r));break}}),t}parseDefaultStyles(e){var t={id:null,name:null,target:null,basedOn:null,styles:[]};return g.foreach(e,r=>{switch(r.localName){case"rPrDefault":var s=i.element(r,"rPr");s&&t.styles.push({target:"span",values:this.parseDefaultProperties(s,{})});break;case"pPrDefault":var n=i.element(r,"pPr");n&&t.styles.push({target:"p",values:this.parseDefaultProperties(n,{})});break}}),t}parseStyle(e){var t={id:i.attr(e,"styleId"),isDefault:i.boolAttr(e,"default"),name:null,target:null,basedOn:null,styles:[],linked:null};switch(i.attr(e,"type")){case"paragraph":t.target="p";break;case"table":t.target="table";break;case"character":t.target="span";break}return g.foreach(e,r=>{switch(r.localName){case"basedOn":t.basedOn=i.attr(r,"val");break;case"name":t.name=i.attr(r,"val");break;case"link":t.linked=i.attr(r,"val");break;case"next":t.next=i.attr(r,"val");break;case"aliases":t.aliases=i.attr(r,"val").split(",");break;case"pPr":t.styles.push({target:"p",values:this.parseDefaultProperties(r,{})}),t.paragraphProps=ce(r,i);break;case"rPr":t.styles.push({target:"span",values:this.parseDefaultProperties(r,{})}),t.runProps=X(r,i);break;case"tblPr":case"tcPr":t.styles.push({target:"td",values:this.parseDefaultProperties(r,{})});break;case"tblStylePr":for(let s of this.parseTableStyle(r))t.styles.push(s);break;case"rsid":case"qFormat":case"hidden":case"semiHidden":case"unhideWhenUsed":case"autoRedefine":case"uiPriority":break;default:this.options.debug&&console.warn(`DOCX: Unknown style element: ${r.localName}`)}}),t}parseTableStyle(e){var t=[],r=i.attr(e,"type"),s="",n="";switch(r){case"firstRow":n=".first-row",s="tr.first-row td";break;case"lastRow":n=".last-row",s="tr.last-row td";break;case"firstCol":n=".first-col",s="td.first-col";break;case"lastCol":n=".last-col",s="td.last-col";break;case"band1Vert":n=":not(.no-vband)",s="td.odd-col";break;case"band2Vert":n=":not(.no-vband)",s="td.even-col";break;case"band1Horz":n=":not(.no-hband)",s="tr.odd-row";break;case"band2Horz":n=":not(.no-hband)",s="tr.even-row";break;default:return[]}return g.foreach(e,o=>{switch(o.localName){case"pPr":t.push({target:`${s} p`,mod:n,values:this.parseDefaultProperties(o,{})});break;case"rPr":t.push({target:`${s} span`,mod:n,values:this.parseDefaultProperties(o,{})});break;case"tblPr":case"tcPr":t.push({target:s,mod:n,values:this.parseDefaultProperties(o,{})});break}}),t}parseNumberingFile(e){var t=[],r={},s=[];return g.foreach(e,n=>{switch(n.localName){case"abstractNum":this.parseAbstractNumbering(n,s).forEach(u=>t.push(u));break;case"numPicBullet":s.push(this.parseNumberingPicBullet(n));break;case"num":var o=i.attr(n,"numId"),c=i.elementAttr(n,"abstractNumId","val");r[c]=o;break}}),t.forEach(n=>n.id=r[n.id]),t}parseNumberingPicBullet(e){var t=i.element(e,"pict"),r=t&&i.element(t,"shape"),s=r&&i.element(r,"imagedata");return s?{id:i.intAttr(e,"numPicBulletId"),src:i.attr(s,"id"),style:i.attr(r,"style")}:null}parseAbstractNumbering(e,t){var r=[],s=i.attr(e,"abstractNumId");return g.foreach(e,n=>{switch(n.localName){case"lvl":r.push(this.parseNumberingLevel(s,n,t));break}}),r}parseNumberingLevel(e,t,r){var s={id:e,level:i.intAttr(t,"ilvl"),start:1,pStyleName:void 0,pStyle:{},rStyle:{},suff:"tab"};return g.foreach(t,n=>{switch(n.localName){case"start":s.start=i.intAttr(n,"val");break;case"pPr":this.parseDefaultProperties(n,s.pStyle);break;case"rPr":this.parseDefaultProperties(n,s.rStyle);break;case"lvlPicBulletId":var o=i.intAttr(n,"val");s.bullet=r.find(c=>(c==null?void 0:c.id)==o);break;case"lvlText":s.levelText=i.attr(n,"val");break;case"pStyle":s.pStyleName=i.attr(n,"val");break;case"numFmt":s.format=i.attr(n,"val");break;case"suff":s.suff=i.attr(n,"val");break}}),s}parseSdt(e,t){const r=i.element(e,"sdtContent");return r?t(r):[]}parseInserted(e,t){var r;return{type:l.Inserted,children:((r=t(e))==null?void 0:r.children)??[]}}parseDeleted(e,t){var r;return{type:l.Deleted,children:((r=t(e))==null?void 0:r.children)??[]}}parseParagraph(e){var t={type:l.Paragraph,children:[]};for(let r of i.elements(e))switch(r.localName){case"pPr":this.parseParagraphProperties(r,t);break;case"r":t.children.push(this.parseRun(r,t));break;case"hyperlink":t.children.push(this.parseHyperlink(r,t));break;case"smartTag":t.children.push(this.parseSmartTag(r,t));break;case"bookmarkStart":t.children.push(Pt(r,i));break;case"bookmarkEnd":t.children.push(St(r,i));break;case"commentRangeStart":t.children.push(new Et(i.attr(r,"id")));break;case"commentRangeEnd":t.children.push(new xt(i.attr(r,"id")));break;case"oMath":case"oMathPara":t.children.push(this.parseMathElement(r));break;case"sdt":t.children.push(...this.parseSdt(r,s=>this.parseParagraph(s).children));break;case"ins":t.children.push(this.parseInserted(r,s=>this.parseParagraph(s)));break;case"del":t.children.push(this.parseDeleted(r,s=>this.parseParagraph(s)));break}return t}parseParagraphProperties(e,t){this.parseDefaultProperties(e,t.cssStyle={},null,r=>{if(ue(r,t,i))return!0;switch(r.localName){case"pStyle":t.styleName=i.attr(r,"val");break;case"cnfStyle":t.className=p.classNameOfCnfStyle(r);break;case"framePr":this.parseFrame(r,t);break;case"rPr":break;default:return!1}return!0})}parseFrame(e,t){var r=i.attr(e,"dropCap");r=="drop"&&(t.cssStyle.float="left")}parseHyperlink(e,t){var r={type:l.Hyperlink,parent:t,children:[]},s=i.attr(e,"anchor"),n=i.attr(e,"id");return s&&(r.href="#"+s),n&&(r.id=n),g.foreach(e,o=>{switch(o.localName){case"r":r.children.push(this.parseRun(o,r));break}}),r}parseSmartTag(e,t){var r={type:l.SmartTag,parent:t,children:[]},s=i.attr(e,"uri"),n=i.attr(e,"element");return s&&(r.uri=s),n&&(r.element=n),g.foreach(e,o=>{switch(o.localName){case"r":r.children.push(this.parseRun(o,r));break}}),r}parseRun(e,t){var r={type:l.Run,parent:t,children:[]};return g.foreach(e,s=>{switch(s=this.checkAlternateContent(s),s.localName){case"t":r.children.push({type:l.Text,text:s.textContent});break;case"delText":r.children.push({type:l.DeletedText,text:s.textContent});break;case"commentReference":r.children.push(new At(i.attr(s,"id")));break;case"fldSimple":r.children.push({type:l.SimpleField,instruction:i.attr(s,"instr"),lock:i.boolAttr(s,"lock",!1),dirty:i.boolAttr(s,"dirty",!1)});break;case"instrText":r.fieldRun=!0,r.children.push({type:l.Instruction,text:s.textContent});break;case"fldChar":r.fieldRun=!0,r.children.push({type:l.ComplexField,charType:i.attr(s,"fldCharType"),lock:i.boolAttr(s,"lock",!1),dirty:i.boolAttr(s,"dirty",!1)});break;case"noBreakHyphen":r.children.push({type:l.NoBreakHyphen});break;case"br":r.children.push({type:l.Break,break:i.attr(s,"type")||"textWrapping"});break;case"lastRenderedPageBreak":r.children.push({type:l.Break,break:"lastRenderedPageBreak"});break;case"sym":r.children.push({type:l.Symbol,font:i.attr(s,"font"),char:i.attr(s,"char")});break;case"tab":r.children.push({type:l.Tab});break;case"footnoteReference":r.children.push({type:l.FootnoteReference,id:i.attr(s,"id")});break;case"endnoteReference":r.children.push({type:l.EndnoteReference,id:i.attr(s,"id")});break;case"drawing":let n=this.parseDrawing(s);n&&(r.children=[n]);break;case"pict":r.children.push(this.parseVmlPicture(s));break;case"rPr":this.parseRunProperties(s,r);break}}),r}parseMathElement(e){const t=`${e.localName}Pr`,r={type:Q[e.localName],children:[]};for(const n of i.elements(e))if(Q[n.localName])r.children.push(this.parseMathElement(n));else if(n.localName=="r"){var s=this.parseRun(n);s.type=l.MmlRun,r.children.push(s)}else n.localName==t&&(r.props=this.parseMathProperies(n));return r}parseMathProperies(e){const t={};for(const r of i.elements(e))switch(r.localName){case"chr":t.char=i.attr(r,"val");break;case"vertJc":t.verticalJustification=i.attr(r,"val");break;case"pos":t.position=i.attr(r,"val");break;case"degHide":t.hideDegree=i.boolAttr(r,"val");break;case"begChr":t.beginChar=i.attr(r,"val");break;case"endChr":t.endChar=i.attr(r,"val");break}return t}parseRunProperties(e,t){this.parseDefaultProperties(e,t.cssStyle={},null,r=>{switch(r.localName){case"rStyle":t.styleName=i.attr(r,"val");break;case"vertAlign":t.verticalAlign=p.valueOfVertAlign(r,!0);break;default:return!1}return!0})}parseVmlPicture(e){const t={type:l.VmlPicture,children:[]};for(const r of i.elements(e)){const s=fe(r,this);s&&t.children.push(s)}return t}checkAlternateContent(e){var n;if(e.localName!="AlternateContent")return e;var t=i.element(e,"Choice");if(t){var r=i.attr(t,"Requires"),s=e.lookupNamespaceURI(r);if(Rt.includes(s))return t.firstElementChild}return(n=i.element(e,"Fallback"))==null?void 0:n.firstElementChild}parseDrawing(e){for(var t of i.elements(e))switch(t.localName){case"inline":case"anchor":return this.parseDrawingWrapper(t)}}parseDrawingWrapper(e){var t={type:l.Drawing,children:[],cssStyle:{}},r=e.localName=="anchor";let s=null,n=i.boolAttr(e,"simplePos");i.boolAttr(e,"behindDoc");let o={relative:"page",align:"left",offset:"0"},c={relative:"page",align:"top",offset:"0"};for(var u of i.elements(e))switch(u.localName){case"simplePos":n&&(o.offset=i.lengthAttr(u,"x",v.Emu),c.offset=i.lengthAttr(u,"y",v.Emu));break;case"extent":t.cssStyle.width=i.lengthAttr(u,"cx",v.Emu),t.cssStyle.height=i.lengthAttr(u,"cy",v.Emu);break;case"positionH":case"positionV":if(!n){let d=u.localName=="positionH"?o:c;var b=i.element(u,"align"),f=i.element(u,"posOffset");d.relative=i.attr(u,"relativeFrom")??d.relative,b&&(d.align=b.textContent),f&&(d.offset=g.sizeValue(f,v.Emu))}break;case"wrapTopAndBottom":s="wrapTopAndBottom";break;case"wrapNone":s="wrapNone";break;case"graphic":var y=this.parseGraphic(u);y&&t.children.push(y);break}return s=="wrapTopAndBottom"?(t.cssStyle.display="block",o.align&&(t.cssStyle["text-align"]=o.align,t.cssStyle.width="100%")):s=="wrapNone"?(t.cssStyle.display="block",t.cssStyle.position="relative",t.cssStyle.width="0px",t.cssStyle.height="0px",o.offset&&(t.cssStyle.left=o.offset),c.offset&&(t.cssStyle.top=c.offset)):r&&(o.align=="left"||o.align=="right")&&(t.cssStyle.float=o.align),t}parseGraphic(e){var t=i.element(e,"graphicData");for(let r of i.elements(t))switch(r.localName){case"pic":return this.parsePicture(r)}return null}parsePicture(e){var t={type:l.Image,src:"",cssStyle:{}},r=i.element(e,"blipFill"),s=i.element(r,"blip");t.src=i.attr(s,"embed");var n=i.element(e,"spPr"),o=i.element(n,"xfrm");t.cssStyle.position="relative";for(var c of i.elements(o))switch(c.localName){case"ext":t.cssStyle.width=i.lengthAttr(c,"cx",v.Emu),t.cssStyle.height=i.lengthAttr(c,"cy",v.Emu);break;case"off":t.cssStyle.left=i.lengthAttr(c,"x",v.Emu),t.cssStyle.top=i.lengthAttr(c,"y",v.Emu);break}return t}parseTable(e){var t={type:l.Table,children:[]};return g.foreach(e,r=>{switch(r.localName){case"tr":t.children.push(this.parseTableRow(r));break;case"tblGrid":t.columns=this.parseTableColumns(r);break;case"tblPr":this.parseTableProperties(r,t);break}}),t}parseTableColumns(e){var t=[];return g.foreach(e,r=>{switch(r.localName){case"gridCol":t.push({width:i.lengthAttr(r,"w")});break}}),t}parseTableProperties(e,t){switch(t.cssStyle={},t.cellStyle={},this.parseDefaultProperties(e,t.cssStyle,t.cellStyle,r=>{switch(r.localName){case"tblStyle":t.styleName=i.attr(r,"val");break;case"tblLook":t.className=p.classNameOftblLook(r);break;case"tblpPr":this.parseTablePosition(r,t);break;case"tblStyleColBandSize":t.colBandSize=i.intAttr(r,"val");break;case"tblStyleRowBandSize":t.rowBandSize=i.intAttr(r,"val");break;default:return!1}return!0}),t.cssStyle["text-align"]){case"center":delete t.cssStyle["text-align"],t.cssStyle["margin-left"]="auto",t.cssStyle["margin-right"]="auto";break;case"right":delete t.cssStyle["text-align"],t.cssStyle["margin-left"]="auto";break}}parseTablePosition(e,t){var r=i.lengthAttr(e,"topFromText"),s=i.lengthAttr(e,"bottomFromText"),n=i.lengthAttr(e,"rightFromText"),o=i.lengthAttr(e,"leftFromText");t.cssStyle.float="left",t.cssStyle["margin-bottom"]=p.addSize(t.cssStyle["margin-bottom"],s),t.cssStyle["margin-left"]=p.addSize(t.cssStyle["margin-left"],o),t.cssStyle["margin-right"]=p.addSize(t.cssStyle["margin-right"],n),t.cssStyle["margin-top"]=p.addSize(t.cssStyle["margin-top"],r)}parseTableRow(e){var t={type:l.Row,children:[]};return g.foreach(e,r=>{switch(r.localName){case"tc":t.children.push(this.parseTableCell(r));break;case"trPr":this.parseTableRowProperties(r,t);break}}),t}parseTableRowProperties(e,t){t.cssStyle=this.parseDefaultProperties(e,{},null,r=>{switch(r.localName){case"cnfStyle":t.className=p.classNameOfCnfStyle(r);break;case"tblHeader":t.isHeader=i.boolAttr(r,"val");break;default:return!1}return!0})}parseTableCell(e){var t={type:l.Cell,children:[]};return g.foreach(e,r=>{switch(r.localName){case"tbl":t.children.push(this.parseTable(r));break;case"p":t.children.push(this.parseParagraph(r));break;case"tcPr":this.parseTableCellProperties(r,t);break}}),t}parseTableCellProperties(e,t){t.cssStyle=this.parseDefaultProperties(e,{},null,r=>{switch(r.localName){case"gridSpan":t.span=i.intAttr(r,"val",null);break;case"vMerge":t.verticalMerge=i.attr(r,"val")??"continue";break;case"cnfStyle":t.className=p.classNameOfCnfStyle(r);break;default:return!1}return!0})}parseDefaultProperties(e,t=null,r=null,s=null){return t=t||{},g.foreach(e,n=>{if(!(s!=null&&s(n)))switch(n.localName){case"jc":t["text-align"]=p.valueOfJc(n);break;case"textAlignment":t["vertical-align"]=p.valueOfTextAlignment(n);break;case"color":t.color=g.colorAttr(n,"val",null,I.color);break;case"sz":t["font-size"]=t["min-height"]=i.lengthAttr(n,"val",v.FontSize);break;case"shd":t["background-color"]=g.colorAttr(n,"fill",null,I.shd);break;case"highlight":t["background-color"]=g.colorAttr(n,"val",null,I.highlight);break;case"vertAlign":break;case"position":t.verticalAlign=i.lengthAttr(n,"val",v.FontSize);break;case"tcW":if(this.options.ignoreWidth)break;case"tblW":t.width=p.valueOfSize(n,"w");break;case"trHeight":this.parseTrHeight(n,t);break;case"strike":t["text-decoration"]=i.boolAttr(n,"val",!0)?"line-through":"none";break;case"b":t["font-weight"]=i.boolAttr(n,"val",!0)?"bold":"normal";break;case"i":t["font-style"]=i.boolAttr(n,"val",!0)?"italic":"normal";break;case"caps":t["text-transform"]=i.boolAttr(n,"val",!0)?"uppercase":"none";break;case"smallCaps":t["font-variant"]=i.boolAttr(n,"val",!0)?"small-caps":"none";break;case"u":this.parseUnderline(n,t);break;case"ind":case"tblInd":this.parseIndentation(n,t);break;case"rFonts":this.parseFont(n,t);break;case"tblBorders":this.parseBorderProperties(n,r||t);break;case"tblCellSpacing":t["border-spacing"]=p.valueOfMargin(n),t["border-collapse"]="separate";break;case"pBdr":this.parseBorderProperties(n,t);break;case"bdr":t.border=p.valueOfBorder(n);break;case"tcBorders":this.parseBorderProperties(n,t);break;case"vanish":i.boolAttr(n,"val",!0)&&(t.display="none");break;case"kern":break;case"noWrap":break;case"tblCellMar":case"tcMar":this.parseMarginProperties(n,r||t);break;case"tblLayout":t["table-layout"]=p.valueOfTblLayout(n);break;case"vAlign":t["vertical-align"]=p.valueOfTextAlignment(n);break;case"spacing":e.localName=="pPr"&&this.parseSpacing(n,t);break;case"wordWrap":i.boolAttr(n,"val")&&(t["overflow-wrap"]="break-word");break;case"suppressAutoHyphens":t.hyphens=i.boolAttr(n,"val",!0)?"none":"auto";break;case"lang":t.$lang=i.attr(n,"val");break;case"bCs":case"iCs":case"szCs":case"tabs":case"outlineLvl":case"contextualSpacing":case"tblStyleColBandSize":case"tblStyleRowBandSize":case"webHidden":case"pageBreakBefore":case"suppressLineNumbers":case"keepLines":case"keepNext":case"widowControl":case"bidi":case"rtl":case"noProof":break;default:this.options.debug&&console.warn(`DOCX: Unknown document element: ${e.localName}.${n.localName}`);break}}),t}parseUnderline(e,t){var r=i.attr(e,"val");if(r!=null){switch(r){case"dash":case"dashDotDotHeavy":case"dashDotHeavy":case"dashedHeavy":case"dashLong":case"dashLongHeavy":case"dotDash":case"dotDotDash":t["text-decoration"]="underline dashed";break;case"dotted":case"dottedHeavy":t["text-decoration"]="underline dotted";break;case"double":t["text-decoration"]="underline double";break;case"single":case"thick":t["text-decoration"]="underline";break;case"wave":case"wavyDouble":case"wavyHeavy":t["text-decoration"]="underline wavy";break;case"words":t["text-decoration"]="underline";break;case"none":t["text-decoration"]="none";break}var s=g.colorAttr(e,"color");s&&(t["text-decoration-color"]=s)}}parseFont(e,t){var r=i.attr(e,"ascii"),s=p.themeValue(e,"asciiTheme"),n=[r,s].filter(o=>o).join(", ");n.length>0&&(t["font-family"]=n)}parseIndentation(e,t){var r=i.lengthAttr(e,"firstLine"),s=i.lengthAttr(e,"hanging"),n=i.lengthAttr(e,"left"),o=i.lengthAttr(e,"start"),c=i.lengthAttr(e,"right"),u=i.lengthAttr(e,"end");r&&(t["text-indent"]=r),s&&(t["text-indent"]=`-${s}`),(n||o)&&(t["margin-left"]=n||o),(c||u)&&(t["margin-right"]=c||u)}parseSpacing(e,t){var r=i.lengthAttr(e,"before"),s=i.lengthAttr(e,"after"),n=i.intAttr(e,"line",null),o=i.attr(e,"lineRule");if(r&&(t["margin-top"]=r),s&&(t["margin-bottom"]=s),n!==null)switch(o){case"auto":t["line-height"]=`${(n/240).toFixed(2)}`;break;case"atLeast":t["line-height"]=`calc(100% + ${n/20}pt)`;break;default:t["line-height"]=t["min-height"]=`${n/20}pt`;break}}parseMarginProperties(e,t){g.foreach(e,r=>{switch(r.localName){case"left":t["padding-left"]=p.valueOfMargin(r);break;case"right":t["padding-right"]=p.valueOfMargin(r);break;case"top":t["padding-top"]=p.valueOfMargin(r);break;case"bottom":t["padding-bottom"]=p.valueOfMargin(r);break}})}parseTrHeight(e,t){switch(i.attr(e,"hRule")){case"exact":t.height=i.lengthAttr(e,"val");break;case"atLeast":default:t.height=i.lengthAttr(e,"val");break}}parseBorderProperties(e,t){g.foreach(e,r=>{switch(r.localName){case"start":case"left":t["border-left"]=p.valueOfBorder(r);break;case"end":case"right":t["border-right"]=p.valueOfBorder(r);break;case"top":t["border-top"]=p.valueOfBorder(r);break;case"bottom":t["border-bottom"]=p.valueOfBorder(r);break}})}}const Ft=["black","blue","cyan","darkBlue","darkCyan","darkGray","darkGreen","darkMagenta","darkRed","darkYellow","green","lightGray","magenta","none","red","white","yellow"];class g{static foreach(e,t){for(var r=0;rt[n]=="1").join(" ")}static valueOfJc(e){var t=i.attr(e,"val");switch(t){case"start":case"left":return"left";case"center":return"center";case"end":case"right":return"right";case"both":return"justify"}return t}static valueOfVertAlign(e,t=!1){var r=i.attr(e,"val");switch(r){case"subscript":return"sub";case"superscript":return t?"sup":"super"}return t?null:r}static valueOfTextAlignment(e){var t=i.attr(e,"val");switch(t){case"auto":case"baseline":return"baseline";case"top":return"top";case"center":return"middle";case"bottom":return"bottom"}return t}static addSize(e,t){return e==null?t:t==null?e:`calc(${e} + ${t})`}static classNameOftblLook(e){const t=i.hexAttr(e,"val",0);let r="";return(i.boolAttr(e,"firstRow")||t&32)&&(r+=" first-row"),(i.boolAttr(e,"lastRow")||t&64)&&(r+=" last-row"),(i.boolAttr(e,"firstColumn")||t&128)&&(r+=" first-col"),(i.boolAttr(e,"lastColumn")||t&256)&&(r+=" last-col"),(i.boolAttr(e,"noHBand")||t&512)&&(r+=" no-hband"),(i.boolAttr(e,"noVBand")||t&1024)&&(r+=" no-vband"),r.trim()}}const ee={pos:0,leader:"none",style:"left"},Lt=50;function Tt(a=document.body){const e=document.createElement("div");e.style.width="100pt",a.appendChild(e);const t=100/e.offsetWidth;return a.removeChild(e),t}function $t(a,e,t,r=72/96){const s=a.closest("p"),n=a.getBoundingClientRect(),o=s.getBoundingClientRect(),c=getComputedStyle(s),u=(e==null?void 0:e.length)>0?e.map(w=>({pos:te(w.position),leader:w.leader,style:w.style})).sort((w,$)=>w.pos-$.pos):[ee],b=u[u.length-1],f=o.width*r,y=te(t);let d=b.pos+y;if(dw.style!="clear"&&w.pos>N);if(C==null)return;let B=1;if(C.style=="right"||C.style=="center"){const w=Array.from(s.querySelectorAll(`.${a.className}`)),$=w.indexOf(a)+1,D=document.createRange();D.setStart(a,1),$c.id)),e.endnotesPart&&(this.endnoteMap=A(e.endnotesPart.notes,c=>c.id)),e.settingsPart&&(this.defaultTabSize=(o=e.settingsPart.settings)==null?void 0:o.defaultTabStop),!s.ignoreFonts&&e.fontTablePart&&this.renderFontTable(e.fontTablePart,r);var n=this.renderSections(e.documentPart.body);this.options.inWrapper?t.appendChild(this.renderWrapper(n)):j(t,n),this.commentHighlight&&s.renderComments&&CSS.highlights.set(`${this.className}-comments`,this.commentHighlight),this.refreshTabStops(),this.postRenderTasks.forEach(c=>c())}renderTheme(e,t){var c,u;const r={},s=(c=e.theme)==null?void 0:c.fontScheme;s&&(s.majorFont&&(r["--docx-majorHAnsi-font"]=s.majorFont.latinTypeface),s.minorFont&&(r["--docx-minorHAnsi-font"]=s.minorFont.latinTypeface));const n=(u=e.theme)==null?void 0:u.colorScheme;if(n)for(let[b,f]of Object.entries(n.colors))r[`--docx-${b}-color`]=`#${f}`;const o=this.styleToString(`.${this.className}`,r);t.appendChild(R(o))}renderFontTable(e,t){for(let r of e.fonts)for(let s of r.embedFontRefs)this.tasks.push(this.document.loadFont(s.id,s.key).then(n=>{const o={"font-family":r.name,src:`url(${n})`};(s.type=="bold"||s.type=="boldItalic")&&(o["font-weight"]="bold"),(s.type=="italic"||s.type=="boldItalic")&&(o["font-style"]="italic"),T(t,`docxjs ${r.name} font`);const c=this.styleToString("@font-face",o);t.appendChild(R(c)),this.refreshTabStops()}))}processStyleName(e){return e?`${this.className}_${Be(e)}`:this.className}processStyles(e){const t=A(e.filter(s=>s.id!=null),s=>s.id);for(const s of e.filter(n=>n.basedOn)){var r=t[s.basedOn];if(r){s.paragraphProps=_(s.paragraphProps,r.paragraphProps),s.runProps=_(s.runProps,r.runProps);for(const n of r.styles){const o=s.styles.find(c=>c.target==n.target);o?this.copyStyleProperties(n.values,o.values):s.styles.push({...n,values:{...n.values}})}}else this.options.debug&&console.warn(`Can't find base style ${s.basedOn}`)}for(let s of e)s.cssName=this.processStyleName(s.id);return t}prodessNumberings(e){var t;for(let r of e.filter(s=>s.pStyleName)){const s=this.findStyle(r.pStyleName);(t=s==null?void 0:s.paragraphProps)!=null&&t.numbering&&(s.paragraphProps.numbering.level=r.level)}}processElement(e){if(e.children)for(var t of e.children)t.parent=e,t.type==l.Table?this.processTable(t):this.processElement(t)}processTable(e){for(var t of e.children)for(var r of t.children)r.cssStyle=this.copyStyleProperties(e.cellStyle,r.cssStyle,["border-left","border-right","border-top","border-bottom","padding-left","padding-right","padding-top","padding-bottom"]),this.processElement(r)}copyStyleProperties(e,t,r=null){if(!e)return t;t==null&&(t={}),r==null&&(r=Object.getOwnPropertyNames(e));for(var s of r)e.hasOwnProperty(s)&&!t.hasOwnProperty(s)&&(t[s]=e[s]);return t}createPageElement(e,t){var r=this.createElement("section",{className:e});return t&&(t.pageMargins&&(r.style.paddingLeft=t.pageMargins.left,r.style.paddingRight=t.pageMargins.right,r.style.paddingTop=t.pageMargins.top,r.style.paddingBottom=t.pageMargins.bottom),t.pageSize&&(this.options.ignoreWidth||(r.style.width=t.pageSize.width),this.options.ignoreHeight||(r.style.minHeight=t.pageSize.height))),r}createSectionContent(e){var t=this.createElement("article");return e.columns&&e.columns.numberOfColumns&&(t.style.columnCount=`${e.columns.numberOfColumns}`,t.style.columnGap=e.columns.space,e.columns.separator&&(t.style.columnRule="1px solid black")),t}renderSections(e){const t=[];this.processElement(e);const r=this.splitBySection(e.children,e.props),s=this.groupByPageBreaks(r);let n=null;for(let c=0,u=s.length;cu.type=="first"):null)??(r%2==1?e.find(u=>u.type=="even"):null)??e.find(u=>u.type=="default"),c=o&&this.document.findPartByRelId(o.id,this.document.documentPart);if(c){this.currentPart=c,this.usedHederFooterParts.includes(c.path)||(this.processElement(c.rootElement),this.usedHederFooterParts.push(c.path));const[u]=this.renderElements([c.rootElement],n);t!=null&&t.pageMargins&&(c.rootElement.type===l.Header?(u.style.marginTop=`calc(${t.pageMargins.header} - ${t.pageMargins.top})`,u.style.minHeight=`calc(${t.pageMargins.top} - ${t.pageMargins.header})`):c.rootElement.type===l.Footer&&(u.style.marginBottom=`calc(${t.pageMargins.footer} - ${t.pageMargins.bottom})`,u.style.minHeight=`calc(${t.pageMargins.bottom} - ${t.pageMargins.footer})`)),this.currentPart=null}}}isPageBreakElement(e){return e.type!=l.Break?!1:e.break=="lastRenderedPageBreak"?!this.options.ignoreLastRenderedPageBreak:e.break=="page"}isPageBreakSection(e,t){var r,s,n,o,c,u;return!e||!t?!1:((r=e.pageSize)==null?void 0:r.orientation)!=((s=t.pageSize)==null?void 0:s.orientation)||((n=e.pageSize)==null?void 0:n.width)!=((o=t.pageSize)==null?void 0:o.width)||((c=e.pageSize)==null?void 0:c.height)!=((u=t.pageSize)==null?void 0:u.height)}splitBySection(e,t){var y;var r={sectProps:null,elements:[],pageBreak:!1},s=[r];for(let d of e){if(d.type==l.Paragraph){const S=this.findStyle(d.styleName);(y=S==null?void 0:S.paragraphProps)!=null&&y.pageBreakBefore&&(r.sectProps=n,r.pageBreak=!0,r={sectProps:null,elements:[],pageBreak:!1},s.push(r))}if(r.elements.push(d),d.type==l.Paragraph){const S=d;var n=S.sectionProps,o=-1,c=-1;if(this.options.breakPages&&S.children&&(o=S.children.findIndex(M=>{var N;return c=((N=M.children)==null?void 0:N.findIndex(this.isPageBreakElement.bind(this)))??-1,c!=-1})),(n||o!=-1)&&(r.sectProps=n,r.pageBreak=o!=-1,r={sectProps:null,elements:[],pageBreak:!1},s.push(r)),o!=-1){let M=S.children[o],N=c=0;d--)s[d].sectProps==null?s[d].sectProps=f??t:f=s[d].sectProps;return s}groupByPageBreaks(e){let t=[],r;const s=[t];for(let n of e)t.push(n),(this.options.ignoreLastRenderedPageBreak||n.pageBreak||this.isPageBreakSection(r,n.sectProps))&&s.push(t=[]),r=n.sectProps;return s.filter(n=>n.length>0)}renderWrapper(e){return this.createElement("div",{className:`${this.className}-wrapper`},e)}renderDefaultStyle(){var e=this.className,t=` +.${e}-wrapper { background: gray; padding: 30px; padding-bottom: 0px; display: flex; flex-flow: column; align-items: center; } +.${e}-wrapper>section.${e} { background: white; box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); margin-bottom: 30px; } +.${e} { color: black; hyphens: auto; text-underline-position: from-font; } +section.${e} { box-sizing: border-box; display: flex; flex-flow: column nowrap; position: relative; overflow: hidden; } +section.${e}>article { margin-bottom: auto; z-index: 1; } +section.${e}>footer { z-index: 1; } +.${e} table { border-collapse: collapse; } +.${e} table td, .${e} table th { vertical-align: top; } +.${e} p { margin: 0pt; min-height: 1em; } +.${e} span { white-space: pre-wrap; overflow-wrap: break-word; } +.${e} a { color: inherit; text-decoration: inherit; } +.${e} svg { fill: transparent; } +`;return this.options.renderComments&&(t+=` +.${e}-comment-ref { cursor: default; } +.${e}-comment-popover { display: none; z-index: 1000; padding: 0.5rem; background: white; position: absolute; box-shadow: 0 0 0.25rem rgba(0, 0, 0, 0.25); width: 30ch; } +.${e}-comment-ref:hover~.${e}-comment-popover { display: block; } +.${e}-comment-author,.${e}-comment-date { font-size: 0.875rem; color: #888; } +`),R(t)}renderNumbering(e,t){var r="",s=[];for(var n of e){var o=`p.${this.numberingClass(n.id,n.level)}`,c="none";if(n.bullet){let u=`--${this.className}-${n.bullet.src}`.toLowerCase();r+=this.styleToString(`${o}:before`,{content:"' '",display:"inline-block",background:`var(${u})`},n.bullet.style),this.tasks.push(this.document.loadNumberingImage(n.bullet.src).then(b=>{var f=`${this.rootSelector} { ${u}: url(${b}) }`;t.appendChild(R(f))}))}else if(n.levelText){let u=this.numberingCounter(n.id,n.level);const b=u+" "+(n.start-1);n.level>0&&(r+=this.styleToString(`p.${this.numberingClass(n.id,n.level-1)}`,{"counter-reset":b})),s.push(b),r+=this.styleToString(`${o}:before`,{content:this.levelTextToContent(n.levelText,n.suff,n.id,this.numFormatToCssValue(n.format)),"counter-increment":u,...n.rStyle})}else c=this.numFormatToCssValue(n.format);r+=this.styleToString(o,{display:"list-item","list-style-position":"inside","list-style-type":c,...n.pStyle})}return s.length>0&&(r+=this.styleToString(this.rootSelector,{"counter-reset":s.join(" ")})),R(r)}renderStyles(e){var t="";const r=this.styleMap,s=A(e.filter(u=>u.isDefault),u=>u.target);for(const u of e){var n=u.styles;if(u.linked){var o=u.linked&&r[u.linked];o?n=n.concat(o.styles):this.options.debug&&console.warn(`Can't find linked style ${u.linked}`)}for(const b of n){var c=`${u.target??""}.${u.cssName}`;u.target!=b.target&&(c+=` ${b.target}`),s[u.target]==u&&(c=`.${this.className} ${u.target}, `+c),t+=this.styleToString(c,b.values)}}return R(t)}renderNotes(e,t,r){var s=e.map(o=>t[o]).filter(o=>o);if(s.length>0){var n=this.createElement("ol",null,this.renderElements(s));r.appendChild(n)}}renderElement(e){switch(e.type){case l.Paragraph:return this.renderParagraph(e);case l.BookmarkStart:return this.renderBookmarkStart(e);case l.BookmarkEnd:return null;case l.Run:return this.renderRun(e);case l.Table:return this.renderTable(e);case l.Row:return this.renderTableRow(e);case l.Cell:return this.renderTableCell(e);case l.Hyperlink:return this.renderHyperlink(e);case l.SmartTag:return this.renderSmartTag(e);case l.Drawing:return this.renderDrawing(e);case l.Image:return this.renderImage(e);case l.Text:return this.renderText(e);case l.Text:return this.renderText(e);case l.DeletedText:return this.renderDeletedText(e);case l.Tab:return this.renderTab(e);case l.Symbol:return this.renderSymbol(e);case l.Break:return this.renderBreak(e);case l.Footer:return this.renderContainer(e,"footer");case l.Header:return this.renderContainer(e,"header");case l.Footnote:case l.Endnote:return this.renderContainer(e,"li");case l.FootnoteReference:return this.renderFootnoteReference(e);case l.EndnoteReference:return this.renderEndnoteReference(e);case l.NoBreakHyphen:return this.createElement("wbr");case l.VmlPicture:return this.renderVmlPicture(e);case l.VmlElement:return this.renderVmlElement(e);case l.MmlMath:return this.renderContainerNS(e,h.mathML,"math",{xmlns:h.mathML});case l.MmlMathParagraph:return this.renderContainer(e,"span");case l.MmlFraction:return this.renderContainerNS(e,h.mathML,"mfrac");case l.MmlBase:return this.renderContainerNS(e,h.mathML,e.parent.type==l.MmlMatrixRow?"mtd":"mrow");case l.MmlNumerator:case l.MmlDenominator:case l.MmlFunction:case l.MmlLimit:case l.MmlBox:return this.renderContainerNS(e,h.mathML,"mrow");case l.MmlGroupChar:return this.renderMmlGroupChar(e);case l.MmlLimitLower:return this.renderContainerNS(e,h.mathML,"munder");case l.MmlMatrix:return this.renderContainerNS(e,h.mathML,"mtable");case l.MmlMatrixRow:return this.renderContainerNS(e,h.mathML,"mtr");case l.MmlRadical:return this.renderMmlRadical(e);case l.MmlSuperscript:return this.renderContainerNS(e,h.mathML,"msup");case l.MmlSubscript:return this.renderContainerNS(e,h.mathML,"msub");case l.MmlDegree:case l.MmlSuperArgument:case l.MmlSubArgument:return this.renderContainerNS(e,h.mathML,"mn");case l.MmlFunctionName:return this.renderContainerNS(e,h.mathML,"ms");case l.MmlDelimiter:return this.renderMmlDelimiter(e);case l.MmlRun:return this.renderMmlRun(e);case l.MmlNary:return this.renderMmlNary(e);case l.MmlPreSubSuper:return this.renderMmlPreSubSuper(e);case l.MmlBar:return this.renderMmlBar(e);case l.MmlEquationArray:return this.renderMllList(e);case l.Inserted:return this.renderInserted(e);case l.Deleted:return this.renderDeleted(e);case l.CommentRangeStart:return this.renderCommentRangeStart(e);case l.CommentRangeEnd:return this.renderCommentRangeEnd(e);case l.CommentReference:return this.renderCommentReference(e)}return null}renderChildren(e,t){return this.renderElements(e.children,t)}renderElements(e,t){if(e==null)return null;var r=e.flatMap(s=>this.renderElement(s)).filter(s=>s!=null);return t&&j(t,r),r}renderContainer(e,t,r){return this.createElement(t,r,this.renderChildren(e))}renderContainerNS(e,t,r,s){return m(t,r,s,this.renderChildren(e))}renderParagraph(e){var n,o;var t=this.createElement("p");const r=this.findStyle(e.styleName);e.tabs??(e.tabs=(n=r==null?void 0:r.paragraphProps)==null?void 0:n.tabs),this.renderClass(e,t),this.renderChildren(e,t),this.renderStyleValues(e.cssStyle,t),this.renderCommonProperties(t.style,e);const s=e.numbering??((o=r==null?void 0:r.paragraphProps)==null?void 0:o.numbering);return s&&t.classList.add(this.numberingClass(s.id,s.level)),t}renderRunProperties(e,t){this.renderCommonProperties(e,t)}renderCommonProperties(e,t){t!=null&&(t.color&&(e.color=t.color),t.fontSize&&(e["font-size"]=t.fontSize))}renderHyperlink(e){var t=this.createElement("a");if(this.renderChildren(e,t),this.renderStyleValues(e.cssStyle,t),e.href)t.href=e.href;else if(e.id){const r=this.document.documentPart.rels.find(s=>s.id==e.id&&s.targetMode==="External");t.href=r==null?void 0:r.target}return t}renderSmartTag(e){var t=this.createElement("span");return this.renderChildren(e,t),t}renderCommentRangeStart(e){var s;if(!this.options.renderComments)return null;const t=new Range;(s=this.commentHighlight)==null||s.add(t);const r=this.htmlDocument.createComment(`start of comment #${e.id}`);return this.later(()=>t.setStart(r,0)),this.commentMap[e.id]=t,r}renderCommentRangeEnd(e){if(!this.options.renderComments)return null;const t=this.commentMap[e.id],r=this.htmlDocument.createComment(`end of comment #${e.id}`);return this.later(()=>t==null?void 0:t.setEnd(r,0)),r}renderCommentReference(e){var o;if(!this.options.renderComments)return null;var t=(o=this.document.commentsPart)==null?void 0:o.commentMap[e.id];if(!t)return null;const r=new DocumentFragment,s=E("span",{className:`${this.className}-comment-ref`},["💬"]),n=E("div",{className:`${this.className}-comment-popover`});return this.renderCommentContent(t,n),r.appendChild(this.htmlDocument.createComment(`comment #${t.id} by ${t.author} on ${t.date}`)),r.appendChild(s),r.appendChild(n),r}renderCommentContent(e,t){t.appendChild(E("div",{className:`${this.className}-comment-author`},[e.author])),t.appendChild(E("div",{className:`${this.className}-comment-date`},[new Date(e.date).toLocaleString()])),this.renderChildren(e,t)}renderDrawing(e){var t=this.createElement("div");return t.style.display="inline-block",t.style.position="relative",t.style.textIndent="0px",this.renderChildren(e,t),this.renderStyleValues(e.cssStyle,t),t}renderImage(e){let t=this.createElement("img");return this.renderStyleValues(e.cssStyle,t),this.document&&this.tasks.push(this.document.loadDocumentImage(e.src,this.currentPart).then(r=>{t.src=r})),t}renderText(e){return this.htmlDocument.createTextNode(e.text)}renderDeletedText(e){return this.options.renderEndnotes?this.htmlDocument.createTextNode(e.text):null}renderBreak(e){return e.break=="textWrapping"?this.createElement("br"):null}renderInserted(e){return this.options.renderChanges?this.renderContainer(e,"ins"):this.renderChildren(e)}renderDeleted(e){return this.options.renderChanges?this.renderContainer(e,"del"):null}renderSymbol(e){var t=this.createElement("span");return t.style.fontFamily=e.font,t.innerHTML=`&#x${e.char};`,t}renderFootnoteReference(e){var t=this.createElement("sup");return this.currentFootnoteIds.push(e.id),t.textContent=`${this.currentFootnoteIds.length}`,t}renderEndnoteReference(e){var t=this.createElement("sup");return this.currentEndnoteIds.push(e.id),t.textContent=`${this.currentEndnoteIds.length}`,t}renderTab(e){var s;var t=this.createElement("span");if(t.innerHTML=" ",this.options.experimental){t.className=this.tabStopClass();var r=(s=Ht(e,l.Paragraph))==null?void 0:s.tabs;this.currentTabs.push({stops:r,span:t})}return t}renderBookmarkStart(e){var t=this.createElement("span");return t.id=e.name,t}renderRun(e){if(e.fieldRun)return null;const t=this.createElement("span");if(e.id&&(t.id=e.id),this.renderClass(e,t),this.renderStyleValues(e.cssStyle,t),e.verticalAlign){const r=this.createElement(e.verticalAlign);this.renderChildren(e,r),t.appendChild(r)}else this.renderChildren(e,t);return t}renderTable(e){let t=this.createElement("table");return this.tableCellPositions.push(this.currentCellPosition),this.tableVerticalMerges.push(this.currentVerticalMerge),this.currentVerticalMerge={},this.currentCellPosition={col:0,row:0},e.columns&&t.appendChild(this.renderTableColumns(e.columns)),this.renderClass(e,t),this.renderChildren(e,t),this.renderStyleValues(e.cssStyle,t),this.currentVerticalMerge=this.tableVerticalMerges.pop(),this.currentCellPosition=this.tableCellPositions.pop(),t}renderTableColumns(e){let t=this.createElement("colgroup");for(let r of e){let s=this.createElement("col");r.width&&(s.style.width=r.width),t.appendChild(s)}return t}renderTableRow(e){let t=this.createElement("tr");return this.currentCellPosition.col=0,this.renderClass(e,t),this.renderChildren(e,t),this.renderStyleValues(e.cssStyle,t),this.currentCellPosition.row++,t}renderTableCell(e){let t=this.createElement("td");const r=this.currentCellPosition.col;return e.verticalMerge?e.verticalMerge=="restart"?(this.currentVerticalMerge[r]=t,t.rowSpan=1):this.currentVerticalMerge[r]&&(this.currentVerticalMerge[r].rowSpan+=1,t.style.display="none"):this.currentVerticalMerge[r]=null,this.renderClass(e,t),this.renderChildren(e,t),this.renderStyleValues(e.cssStyle,t),e.span&&(t.colSpan=e.span),this.currentCellPosition.col+=t.colSpan,t}renderVmlPicture(e){var t=E("div");return this.renderChildren(e,t),t}renderVmlElement(e){var s,n;var t=re("svg");t.setAttribute("style",e.cssStyleText);const r=this.renderVmlChildElement(e);return(s=e.imageHref)!=null&&s.id&&this.tasks.push((n=this.document)==null?void 0:n.loadDocumentImage(e.imageHref.id,this.currentPart).then(o=>r.setAttribute("href",o))),t.appendChild(r),requestAnimationFrame(()=>{const o=t.firstElementChild.getBBox();t.setAttribute("width",`${Math.ceil(o.x+o.width)}`),t.setAttribute("height",`${Math.ceil(o.y+o.height)}`)}),t}renderVmlChildElement(e){const t=re(e.tagName);Object.entries(e.attrs).forEach(([r,s])=>t.setAttribute(r,s));for(let r of e.children)r.type==l.VmlElement?t.appendChild(this.renderVmlChildElement(r)):t.appendChild(...F(this.renderElement(r)));return t}renderMmlRadical(e){var s;const t=e.children.find(n=>n.type==l.MmlBase);if((s=e.props)!=null&&s.hideDegree)return m(h.mathML,"msqrt",null,this.renderElements([t]));const r=e.children.find(n=>n.type==l.MmlDegree);return m(h.mathML,"mroot",null,this.renderElements([t,r]))}renderMmlDelimiter(e){const t=[];return t.push(m(h.mathML,"mo",null,[e.props.beginChar??"("])),t.push(...this.renderElements(e.children)),t.push(m(h.mathML,"mo",null,[e.props.endChar??")"])),m(h.mathML,"mrow",null,t)}renderMmlNary(e){var b;const t=[],r=A(e.children,f=>f.type),s=r[l.MmlSuperArgument],n=r[l.MmlSubArgument],o=s?m(h.mathML,"mo",null,F(this.renderElement(s))):null,c=n?m(h.mathML,"mo",null,F(this.renderElement(n))):null,u=m(h.mathML,"mo",null,[((b=e.props)==null?void 0:b.char)??"∫"]);return o||c?t.push(m(h.mathML,"munderover",null,[u,c,o])):o?t.push(m(h.mathML,"mover",null,[u,o])):c?t.push(m(h.mathML,"munder",null,[u,c])):t.push(u),t.push(...this.renderElements(r[l.MmlBase].children)),m(h.mathML,"mrow",null,t)}renderMmlPreSubSuper(e){const t=[],r=A(e.children,b=>b.type),s=r[l.MmlSuperArgument],n=r[l.MmlSubArgument],o=s?m(h.mathML,"mo",null,F(this.renderElement(s))):null,c=n?m(h.mathML,"mo",null,F(this.renderElement(n))):null,u=m(h.mathML,"mo",null);return t.push(m(h.mathML,"msubsup",null,[u,c,o])),t.push(...this.renderElements(r[l.MmlBase].children)),m(h.mathML,"mrow",null,t)}renderMmlGroupChar(e){const t=e.props.verticalJustification==="bot"?"mover":"munder",r=this.renderContainerNS(e,h.mathML,t);return e.props.char&&r.appendChild(m(h.mathML,"mo",null,[e.props.char])),r}renderMmlBar(e){const t=this.renderContainerNS(e,h.mathML,"mrow");switch(e.props.position){case"top":t.style.textDecoration="overline";break;case"bottom":t.style.textDecoration="underline";break}return t}renderMmlRun(e){const t=m(h.mathML,"ms");return this.renderClass(e,t),this.renderStyleValues(e.cssStyle,t),this.renderChildren(e,t),t}renderMllList(e){const t=m(h.mathML,"mtable");this.renderClass(e,t),this.renderStyleValues(e.cssStyle,t),this.renderChildren(e);for(let r of this.renderChildren(e))t.appendChild(m(h.mathML,"mtr",null,[m(h.mathML,"mtd",null,[r])]));return t}renderStyleValues(e,t){for(let r in e)r.startsWith("$")?t.setAttribute(r.slice(1),e[r]):t.style[r]=e[r]}renderClass(e,t){e.className&&(t.className=e.className),e.styleName&&t.classList.add(this.processStyleName(e.styleName))}findStyle(e){var t;return e&&((t=this.styleMap)==null?void 0:t[e])}numberingClass(e,t){return`${this.className}-num-${e}-${t}`}tabStopClass(){return`${this.className}-tab-stop`}styleToString(e,t,r=null){let s=`${e} {\r +`;for(const n in t)n.startsWith("$")||(s+=` ${n}: ${t[n]};\r +`);return r&&(s+=r),s+`}\r +`}numberingCounter(e,t){return`${this.className}-num-${e}-${t}`}levelTextToContent(e,t,r,s){const n={tab:"\\9",space:"\\a0"};var o=e.replace(/%\d*/g,c=>{let u=parseInt(c.substring(1),10)-1;return`"counter(${this.numberingCounter(r,u)}, ${s})"`});return`"${o}${n[t]??""}"`}numFormatToCssValue(e){var t={none:"none",bullet:"disc",decimal:"decimal",lowerLetter:"lower-alpha",upperLetter:"upper-alpha",lowerRoman:"lower-roman",upperRoman:"upper-roman",decimalZero:"decimal-leading-zero",aiueo:"katakana",aiueoFullWidth:"katakana",chineseCounting:"simp-chinese-informal",chineseCountingThousand:"simp-chinese-informal",chineseLegalSimplified:"simp-chinese-formal",chosung:"hangul-consonant",ideographDigital:"cjk-ideographic",ideographTraditional:"cjk-heavenly-stem",ideographLegalTraditional:"trad-chinese-formal",ideographZodiac:"cjk-earthly-branch",iroha:"katakana-iroha",irohaFullWidth:"katakana-iroha",japaneseCounting:"japanese-informal",japaneseDigitalTenThousand:"cjk-decimal",japaneseLegal:"japanese-formal",thaiNumbers:"thai",koreanCounting:"korean-hangul-formal",koreanDigital:"korean-hangul-formal",koreanDigital2:"korean-hanja-informal",hebrew1:"hebrew",hebrew2:"hebrew",hindiNumbers:"devanagari",ganada:"hangul",taiwaneseCounting:"cjk-ideographic",taiwaneseCountingThousand:"cjk-ideographic",taiwaneseDigital:"cjk-decimal"};return t[e]??e}refreshTabStops(){this.options.experimental&&(clearTimeout(this.tabsTimeout),this.tabsTimeout=setTimeout(()=>{const e=Tt();for(let t of this.currentTabs)$t(t.span,t.stops,this.defaultTabSize,e)},500))}later(e){this.postRenderTasks.push(e)}}function E(a,e,t){return m(void 0,a,e,t)}function re(a,e,t){return m(h.svg,a,e,t)}function m(a,e,t,r){var s=a?document.createElementNS(a,e):document.createElement(e);return Object.assign(s,t),r&&j(s,r),s}function ae(a){a.innerHTML=""}function j(a,e){e.forEach(t=>a.appendChild(Le(t)?document.createTextNode(t):t))}function R(a){return E("style",{innerHTML:a})}function T(a,e){a.appendChild(document.createComment(e))}function Ht(a,e){for(var t=a.parent;t!=null&&t.type!=e;)t=t.parent;return t}const ge={ignoreHeight:!1,ignoreWidth:!1,ignoreFonts:!1,breakPages:!0,debug:!1,experimental:!1,className:"docx",inWrapper:!0,trimXmlDeclaration:!0,ignoreLastRenderedPageBreak:!0,renderHeaders:!0,renderFooters:!0,renderFootnotes:!0,renderEndnotes:!0,useBase64URL:!1,renderChanges:!1,renderComments:!1};function Ot(a,e){const t={...ge,...e};return U.load(a,new Bt(t),t)}async function It(a,e,t,r){const s={...ge,...r},n=new Dt(window.document);return n.render(a,e,t,s),Promise.allSettled(n.tasks)}async function _t(a,e,t,r){const s=await Ot(a,r);return await It(s,e,t,r),s}const zt={ignoreLastRenderedPageBreak:!1};function Vt(a,e={}){return typeof a=="string"?jt(a,e):Promise.resolve(a)}function jt(a,e){return fetch(a,e).then(t=>t.status!==200?Promise.reject(t):t)}async function Wt(a){let e;return a instanceof Blob?e=a:a instanceof Response?e=await a.blob():a instanceof ArrayBuffer&&(e=new Blob([a])),e}function Xt(a,e,t={}){if(!a)return e.innerHTML="",Promise.resolve();let r;return a instanceof Blob?r=a:a instanceof Response?r=a.blob():a instanceof ArrayBuffer&&(r=new Blob([a])),_t(r,e,e,{...zt,...t})}const Gt={getData:Vt,render:Xt,getBlob:Wt};export{Gt as d}; diff --git a/examples/dist/assets/function-e46b3664.js b/examples/dist/assets/function-e46b3664.js new file mode 100644 index 0000000..5acee9e --- /dev/null +++ b/examples/dist/assets/function-e46b3664.js @@ -0,0 +1,3 @@ +import{y as V,z as Rn}from"./index-b9f20394.js";function mn(e,r){for(var t=-1,n=e==null?0:e.length,a=Array(n);++t-1}var Wn=Nn,Bn=se;function Hn(e,r){var t=this.__data__,n=Bn(t,e);return n<0?(++this.size,t.push([e,r])):t[n][1]=r,this}var Un=Hn,Kn=In,Yn=Fn,zn=jn,qn=Wn,Xn=Un;function G(e){var r=-1,t=e==null?0:e.length;for(this.clear();++r-1&&e%1==0&&e-1&&e%1==0&&e<=qo}var We=Xo,Jo=M,Zo=We,Vo=C,Qo="[object Arguments]",ko="[object Array]",es="[object Boolean]",rs="[object Date]",ts="[object Error]",ns="[object Function]",as="[object Map]",is="[object Number]",os="[object Object]",ss="[object RegExp]",us="[object Set]",cs="[object String]",fs="[object WeakMap]",ls="[object ArrayBuffer]",vs="[object DataView]",_s="[object Float32Array]",$s="[object Float64Array]",ps="[object Int8Array]",gs="[object Int16Array]",hs="[object Int32Array]",ds="[object Uint8Array]",ys="[object Uint8ClampedArray]",bs="[object Uint16Array]",As="[object Uint32Array]",y={};y[_s]=y[$s]=y[ps]=y[gs]=y[hs]=y[ds]=y[ys]=y[bs]=y[As]=!0;y[Qo]=y[ko]=y[ls]=y[es]=y[vs]=y[rs]=y[ts]=y[ns]=y[as]=y[is]=y[os]=y[ss]=y[us]=y[cs]=y[fs]=!1;function Ts(e){return Vo(e)&&Zo(e.length)&&!!y[Jo(e)]}var Rs=Ts;function ms(e){return function(r){return e(r)}}var le=ms,re={exports:{}};re.exports;(function(e,r){var t=At,n=r&&!r.nodeType&&r,a=n&&!0&&e&&!e.nodeType&&e,i=a&&a.exports===n,s=i&&t.process,o=function(){try{var u=a&&a.require&&a.require("util").types;return u||s&&s.binding&&s.binding("util")}catch{}}();e.exports=o})(re,re.exports);var Be=re.exports,Ps=Rs,Is=le,gr=Be,hr=gr&&gr.isTypedArray,ws=hr?Is(hr):Ps,Ct=ws,Os=Co,Ss=je,Cs=R,Ls=Me,Es=Ne,xs=Ct,Fs=Object.prototype,Ds=Fs.hasOwnProperty;function Gs(e,r){var t=Cs(e),n=!t&&Ss(e),a=!t&&!n&&Ls(e),i=!t&&!n&&!a&&xs(e),s=t||n||a||i,o=s?Os(e.length,String):[],u=o.length;for(var c in e)(r||Ds.call(e,c))&&!(s&&(c=="length"||a&&(c=="offset"||c=="parent")||i&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||Es(c,u)))&&o.push(c);return o}var Lt=Gs,js=Object.prototype;function Ms(e){var r=e&&e.constructor,t=typeof r=="function"&&r.prototype||js;return e===t}var He=Ms;function Ns(e,r){return function(t){return e(r(t))}}var Et=Ns,Ws=Et,Bs=Ws(Object.keys,Object),Hs=Bs,Us=He,Ks=Hs,Ys=Object.prototype,zs=Ys.hasOwnProperty;function qs(e){if(!Us(e))return Ks(e);var r=[];for(var t in Object(e))zs.call(e,t)&&t!="constructor"&&r.push(t);return r}var Xs=qs,Js=Rt,Zs=We;function Vs(e){return e!=null&&Zs(e.length)&&!Js(e)}var xt=Vs,Qs=Lt,ks=Xs,eu=xt;function ru(e){return eu(e)?Qs(e):ks(e)}var ve=ru,tu=z,nu=ve;function au(e,r){return e&&tu(r,nu(r),e)}var iu=au;function ou(e){var r=[];if(e!=null)for(var t in Object(e))r.push(t);return r}var su=ou,uu=I,cu=He,fu=su,lu=Object.prototype,vu=lu.hasOwnProperty;function _u(e){if(!uu(e))return fu(e);var r=cu(e),t=[];for(var n in e)n=="constructor"&&(r||!vu.call(e,n))||t.push(n);return t}var $u=_u,pu=Lt,gu=$u,hu=xt;function du(e){return hu(e)?pu(e,!0):gu(e)}var Ue=du,yu=z,bu=Ue;function Au(e,r){return e&&yu(r,bu(r),e)}var Tu=Au,te={exports:{}};te.exports;(function(e,r){var t=T,n=r&&!r.nodeType&&r,a=n&&!0&&e&&!e.nodeType&&e,i=a&&a.exports===n,s=i?t.Buffer:void 0,o=s?s.allocUnsafe:void 0;function u(c,l){if(l)return c.slice();var f=c.length,v=o?o(f):new c.constructor(f);return c.copy(v),v}e.exports=u})(te,te.exports);var Ru=te.exports;function mu(e,r){var t=-1,n=e.length;for(r||(r=Array(n));++ta?0:a+r),t=t>a?a:t,t<0&&(t+=a),a=r>t?0:t-r>>>0,r>>>=0;for(var i=Array(a);++n0&&t(o)?r>1?Zt(o,r-1,t,n,a):kv(a,o):n||(a[a.length]=o)}return a}var Vt=Zt,r_=Vt;function t_(e){var r=e==null?0:e.length;return r?r_(e,1):[]}var n_=t_;function a_(e,r,t){switch(t.length){case 0:return e.call(r);case 1:return e.call(r,t[0]);case 2:return e.call(r,t[0],t[1]);case 3:return e.call(r,t[0],t[1],t[2])}return e.apply(r,t)}var X=a_,i_=X,Mr=Math.max;function o_(e,r,t){return r=Mr(r===void 0?e.length-1:r,0),function(){for(var n=arguments,a=-1,i=Mr(n.length-r,0),s=Array(i);++a0){if(++r>=$_)return arguments[0]}else r=0;return e.apply(void 0,arguments)}}var kt=h_,d_=__,y_=kt,b_=y_(d_),Ve=b_,A_=n_,T_=Qt,R_=Ve;function m_(e){return R_(T_(e,void 0,A_),e+"")}var en=m_,P_=Ee,I_=Ml,w_=Dv,O_=he,S_=z,C_=Xv,L_=en,E_=Mt,x_=1,F_=2,D_=4,G_=L_(function(e,r){var t={};if(e==null)return t;var n=!1;r=P_(r,function(i){return i=O_(i,e),n||(n=i.length>1),i}),S_(e,E_(e),t),n&&(t=I_(t,x_|F_|D_,C_));for(var a=r.length;a--;)w_(t,r[a]);return t}),j_=G_;const Ob=Rn(j_);var M_=/\s/;function N_(e){for(var r=e.length;r--&&M_.test(e.charAt(r)););return r}var W_=N_,B_=W_,H_=/^\s+/;function U_(e){return e&&e.slice(0,B_(e)+1).replace(H_,"")}var K_=U_,Y_=K_,Wr=I,z_=ge,Br=0/0,q_=/^[-+]0x[0-9a-f]+$/i,X_=/^0b[01]+$/i,J_=/^0o[0-7]+$/i,Z_=parseInt;function V_(e){if(typeof e=="number")return e;if(z_(e))return Br;if(Wr(e)){var r=typeof e.valueOf=="function"?e.valueOf():e;e=Wr(r)?r+"":r}if(typeof e!="string")return e===0?e:+e;e=Y_(e);var t=X_.test(e);return t||J_.test(e)?Z_(e.slice(2),t?2:8):q_.test(e)?Br:+e}var Qe=V_,Q_=Qe,Hr=1/0,k_=17976931348623157e292;function e$(e){if(!e)return e===0?e:0;if(e=Q_(e),e===Hr||e===-Hr){var r=e<0?-1:1;return r*k_}return e===e?e:0}var r$=e$,t$=r$;function n$(e){var r=t$(e),t=r%1;return r===r?t?r-t:r:0}var Z=n$,a$=Z,i$="Expected a function";function o$(e,r){if(typeof r!="function")throw new TypeError(i$);return e=a$(e),function(){if(--e<1)return r.apply(this,arguments)}}var s$=o$,Ur=Nt,u$=Ur&&new Ur,rn=u$,c$=J,Kr=rn,f$=Kr?function(e,r){return Kr.set(e,r),e}:c$,tn=f$,l$=pe,v$=I;function _$(e){return function(){var r=arguments;switch(r.length){case 0:return new e;case 1:return new e(r[0]);case 2:return new e(r[0],r[1]);case 3:return new e(r[0],r[1],r[2]);case 4:return new e(r[0],r[1],r[2],r[3]);case 5:return new e(r[0],r[1],r[2],r[3],r[4]);case 6:return new e(r[0],r[1],r[2],r[3],r[4],r[5]);case 7:return new e(r[0],r[1],r[2],r[3],r[4],r[5],r[6])}var t=l$(e.prototype),n=e.apply(t,r);return v$(n)?n:t}}var de=_$,$$=de,p$=T,g$=1;function h$(e,r,t){var n=r&g$,a=$$(e);function i(){var s=this&&this!==p$&&this instanceof i?a:e;return s.apply(n?t:this,arguments)}return i}var d$=h$,y$=Math.max;function b$(e,r,t,n){for(var a=-1,i=e.length,s=t.length,o=-1,u=r.length,c=y$(i-s,0),l=Array(u+c),f=!n;++o1?"& ":"")+r[n],r=r.join(t>2?", ":" "),e.replace(_p,`{ +/* [wrapped with `+r+`] */ +`)}var pp=$p;function gp(e,r,t,n){for(var a=e.length,i=t+(n?1:-1);n?i--:++i-1}var Sp=Op,Cp=Pt,Lp=Sp,Ep=1,xp=2,Fp=8,Dp=16,Gp=32,jp=64,Mp=128,Np=256,Wp=512,Bp=[["ary",Mp],["bind",Ep],["bindKey",xp],["curry",Fp],["curryRight",Dp],["flip",Wp],["partial",Gp],["partialRight",jp],["rearg",Np]];function Hp(e,r){return Cp(Bp,function(t){var n="_."+t[0];r&t[1]&&!Lp(e,n)&&e.push(n)}),e.sort()}var Up=Hp,Kp=vp,Yp=pp,zp=Ve,qp=Up;function Xp(e,r,t){var n=r+"";return zp(e,Yp(n,qp(Kp(n),t)))}var cn=Xp,Jp=ip,Zp=un,Vp=cn,Qp=1,kp=2,eg=4,rg=8,Xr=32,Jr=64;function tg(e,r,t,n,a,i,s,o,u,c){var l=r&rg,f=l?s:void 0,v=l?void 0:s,_=l?i:void 0,h=l?void 0:i;r|=l?Xr:Jr,r&=~(l?Jr:Xr),r&eg||(r&=~(Qp|kp));var b=[e,r,a,_,f,h,v,o,u,c],$=t.apply(void 0,b);return Jp(e)&&Zp($,b),$.placeholder=n,Vp($,e,r)}var fn=tg;function ng(e){var r=e;return r.placeholder}var U=ng,ag=Ke,ig=Ne,og=Math.min;function sg(e,r){for(var t=e.length,n=og(r.length,t),a=ag(e);n--;){var i=r[n];e[n]=ig(i,t)?a[i]:void 0}return e}var ug=sg,Zr="__lodash_placeholder__";function cg(e,r){for(var t=-1,n=e.length,a=0,i=[];++t1&&d.reverse(),l&&u0&&(t=r.apply(this,arguments)),e<=1&&(r=void 0),t}}var $n=ch,fh=J,lh=Qt,vh=Ve;function _h(e,r){return vh(lh(e,r,fh),e+"")}var w=_h,$h=w,ph=L,gh=U,hh=D,dh=1,yh=32,rr=$h(function(e,r,t){var n=dh;if(t.length){var a=hh(t,gh(rr));n|=yh}return ph(e,n,r,t,a)});rr.placeholder={};var bh=rr,Ah=w,Th=L,Rh=U,mh=D,Ph=1,Ih=2,wh=32,tr=Ah(function(e,r,t){var n=Ph|Ih;if(t.length){var a=mh(t,Rh(tr));n|=wh}return Th(r,n,e,t,a)});tr.placeholder={};var Oh=tr,Sh=L,Ch=8;function nr(e,r,t){r=t?void 0:r;var n=Sh(e,Ch,void 0,void 0,void 0,void 0,void 0,r);return n.placeholder=nr.placeholder,n}nr.placeholder={};var Lh=nr,Eh=L,xh=16;function ar(e,r,t){r=t?void 0:r;var n=Eh(e,xh,void 0,void 0,void 0,void 0,void 0,r);return n.placeholder=ar.placeholder,n}ar.placeholder={};var Fh=ar,Dh=T,Gh=function(){return Dh.Date.now()},jh=Gh,Mh=I,me=jh,ot=Qe,Nh="Expected a function",Wh=Math.max,Bh=Math.min;function Hh(e,r,t){var n,a,i,s,o,u,c=0,l=!1,f=!1,v=!0;if(typeof e!="function")throw new TypeError(Nh);r=ot(r)||0,Mh(t)&&(l=!!t.leading,f="maxWait"in t,i=f?Wh(ot(t.maxWait)||0,r):i,v="trailing"in t?!!t.trailing:v);function _(A){var m=n,S=a;return n=a=void 0,c=A,s=e.apply(S,m),s}function h(A){return c=A,o=setTimeout(p,r),l?_(A):s}function b(A){var m=A-u,S=A-c,sr=r-m;return f?Bh(sr,i-S):sr}function $(A){var m=A-u,S=A-c;return u===void 0||m>=r||m<0||f&&S>=i}function p(){var A=me();if($(A))return d(A);o=setTimeout(p,b(A))}function d(A){return o=void 0,v&&n?_(A):(n=a=void 0,s)}function E(){o!==void 0&&clearTimeout(o),c=0,n=u=a=o=void 0}function O(){return o===void 0?s:d(me())}function P(){var A=me(),m=$(A);if(n=arguments,a=this,u=A,m){if(o===void 0)return h(u);if(f)return clearTimeout(o),o=setTimeout(p,r),_(u)}return o===void 0&&(o=setTimeout(p,r)),s}return P.cancel=E,P.flush=O,P}var pn=Hh,Uh="Expected a function";function Kh(e,r,t){if(typeof e!="function")throw new TypeError(Uh);return setTimeout(function(){e.apply(void 0,t)},r)}var gn=Kh,Yh=gn,zh=w,qh=zh(function(e,r){return Yh(e,1,r)}),Xh=qh,Jh=gn,Zh=w,Vh=Qe,Qh=Zh(function(e,r,t){return Jh(e,Vh(r)||0,t)}),kh=Qh,ed=L,rd=512;function td(e){return ed(e,rd)}var nd=td,ad="Expected a function";function id(e){if(typeof e!="function")throw new TypeError(ad);return function(){var r=arguments;switch(r.length){case 0:return!e.call(this);case 1:return!e.call(this,r[0]);case 2:return!e.call(this,r[0],r[1]);case 3:return!e.call(this,r[0],r[1],r[2])}return!e.apply(this,r)}}var od=id,sd=$n;function ud(e){return sd(2,e)}var cd=ud,fd="__lodash_hash_undefined__";function ld(e){return this.__data__.set(e,fd),this}var vd=ld;function _d(e){return this.__data__.has(e)}var $d=_d,pd=De,gd=vd,hd=$d;function oe(e){var r=-1,t=e==null?0:e.length;for(this.__data__=new pd;++ro))return!1;var c=i.get(e),l=i.get(r);if(c&&l)return c==r&&l==e;var f=-1,v=!0,_=t&wd?new Rd:void 0;for(i.set(e,r),i.set(r,e);++f=n?e:eb(e,r,t)}var tb=rb,nb=X,ab=_e,ib=w,ob=tb,sb=Z,ub="Expected a function",cb=Math.max;function fb(e,r){if(typeof e!="function")throw new TypeError(ub);return r=r==null?0:cb(sb(r),0),ib(function(t){var n=t[r],a=ob(t,0,r);return n&&ab(a,n),nb(e,this,a)})}var lb=fb,vb=pn,_b=I,$b="Expected a function";function pb(e,r,t){var n=!0,a=!0;if(typeof e!="function")throw new TypeError($b);return _b(t)&&(n="leading"in t?!!t.leading:n,a="trailing"in t?!!t.trailing:a),vb(e,r,{leading:n,maxWait:r,trailing:a})}var gb=pb,hb=_n;function db(e){return hb(e,1)}var yb=db,bb=J;function Ab(e){return typeof e=="function"?e:bb}var Tb=Ab,Rb=Tb,mb=Tn;function Pb(e,r){return mb(Rb(r),e)}var Ib=Pb,Sb={after:s$,ary:_n,before:$n,bind:bh,bindKey:Oh,curry:Lh,curryRight:Fh,debounce:pn,defer:Xh,delay:kh,flip:nd,memoize:zt,negate:od,once:cd,overArgs:Ey,partial:Tn,partialRight:Uy,rearg:Xy,rest:ky,spread:lb,throttle:gb,unary:yb,wrap:Ib};export{Sb as _,Ob as o}; diff --git a/examples/dist/assets/hack-bf966667.js b/examples/dist/assets/hack-bf966667.js new file mode 100644 index 0000000..bc1872a --- /dev/null +++ b/examples/dist/assets/hack-bf966667.js @@ -0,0 +1,173 @@ +import{y as It,A as Ci}from"./index-b9f20394.js";import{c as Ea}from"./_commonjs-dynamic-modules-302442b1.js";import{g as V0}from"./url-065d6777.js";import{l as Mf}from"./lodash-1ce1e4ec.js";class Bi{constructor(r,e=""){typeof r=="string"?(this.el=document.createElement(r),this.el.className=e):this.el=r,this.data={}}data(r,e){return e!==void 0?(this.data[r]=e,this):this.data[r]}on(r,e){const[n,...i]=r.split(".");let s=n;return s==="mousewheel"&&/Firefox/i.test(window.navigator.userAgent)&&(s="DOMMouseScroll"),this.el.addEventListener(s,o=>{e(o);for(let h=0;h{this.css(o,`${r[o]}px`)}),this;const{offsetTop:e,offsetLeft:n,offsetHeight:i,offsetWidth:s}=this.el;return{top:e,left:n,height:i,width:s}}scroll(r){const{el:e}=this;return r!==void 0&&(r.left!==void 0&&(e.scrollLeft=r.left),r.top!==void 0&&(e.scrollTop=r.top)),{left:e.scrollLeft,top:e.scrollTop}}box(){return this.el.getBoundingClientRect()}parent(){return new Bi(this.el.parentNode)}children(...r){return arguments.length===0?this.el.childNodes:(r.forEach(e=>this.child(e)),this)}removeChild(r){this.el.removeChild(r)}child(r){let e=r;return typeof r=="string"?e=document.createTextNode(r):r instanceof Bi&&(e=r.el),this.el.appendChild(e),this}contains(r){return this.el.contains(r)}className(r){return r!==void 0?(this.el.className=r,this):this.el.className}addClass(r){return this.el.classList.add(r),this}hasClass(r){return this.el.classList.contains(r)}removeClass(r){return this.el.classList.remove(r),this}toggle(r="active"){return this.toggleClass(r)}toggleClass(r){return this.el.classList.toggle(r)}active(r=!0,e="active"){return r?this.addClass(e):this.removeClass(e),this}checked(r=!0){return this.active(r,"checked"),this}disabled(r=!0){return r?this.addClass("disabled"):this.removeClass("disabled"),this}attr(r,e){if(e!==void 0)this.el.setAttribute(r,e);else{if(typeof r=="string")return this.el.getAttribute(r);Object.keys(r).forEach(n=>{this.el.setAttribute(n,r[n])})}return this}removeAttr(r){return this.el.removeAttribute(r),this}html(r){return r!==void 0?(this.el.innerHTML=r,this):this.el.innerHTML}val(r){return r!==void 0?(this.el.value=r,this):this.el.value}focus(){this.el.focus()}cssRemoveKeys(...r){return r.forEach(e=>this.el.style.removeProperty(e)),this}css(r,e){return e===void 0&&typeof r!="string"?(Object.keys(r).forEach(n=>{this.el.style[n]=r[n]}),this):e!==void 0?(this.el.style[r]=e,this):this.el.style[r]}computedStyle(){return window.getComputedStyle(this.el,null)}show(){return this.css("display","block"),this}hide(){return this.css("display","none"),this}}const He=(t,r="")=>new Bi(t,r),li=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];function uh(t){let r="",e=t;for(;e>=li.length;)e/=li.length,e-=1,r+=li[parseInt(e,10)%li.length];const n=t%li.length;return r+=li[n],r}function G0(t){let r=0;for(let e=0;e="0"&&t.charAt(n)<="9"?e+=t.charAt(n):r+=t.charAt(n);return[G0(r),parseInt(e,10)-1]}function Yn(t,r){return`${uh(t)}${r+1}`}function ys(t,r,e,n=()=>!0){if(r===0&&e===0)return t;const[i,s]=di(t);return n(i,s)?Yn(i+r,s+e):t}class ar{constructor(r,e,n,i,s=0,o=0){this.sri=r,this.sci=e,this.eri=n,this.eci=i,this.w=s,this.h=o}set(r,e,n,i){this.sri=r,this.sci=e,this.eri=n,this.eci=i}multiple(){return this.eri-this.sri>0||this.eci-this.sci>0}includes(...r){let[e,n]=[0,0];r.length===1?[n,e]=di(r[0]):r.length===2&&([e,n]=r);const{sri:i,sci:s,eri:o,eci:h}=this;return i<=e&&e<=o&&s<=n&&n<=h}each(r,e=()=>!0){const{sri:n,sci:i,eri:s,eci:o}=this;for(let h=n;h<=s;h+=1)if(e(h))for(let c=i;c<=o;c+=1)r(h,c)}contains(r){return this.sri<=r.sri&&this.sci<=r.sci&&this.eri>=r.eri&&this.eci>=r.eci}within(r){return this.sri>=r.sri&&this.sci>=r.sci&&this.eri<=r.eri&&this.eci<=r.eci}disjoint(r){return this.sri>r.eri||this.sci>r.eci||r.sri>this.eri||r.sci>this.eci}intersects(r){return this.sri<=r.eri&&this.sci<=r.eci&&r.sri<=this.eri&&r.sci<=this.eci}union(r){const{sri:e,sci:n,eri:i,eci:s}=this;return new ar(r.srii?r.eri:i,r.eci>s?r.eci:s)}difference(r){const e=[],n=(u,p,m,d)=>{e.push(new ar(u,p,m,d))},{sri:i,sci:s,eri:o,eci:h}=this,c=r.sri-i,a=r.sci-s,f=o-r.eri,l=h-r.eci;return c>0?(n(i,s,r.sri-1,h),f>0?(n(r.eri+1,s,o,h),a>0&&n(r.sri,s,r.eri,r.sci-1),l>0&&n(r.sri,r.eci+1,r.eri,h)):(a>0&&n(r.sri,s,o,r.sci-1),l>0&&n(r.sri,r.eci+1,o,h))):f>0&&(n(r.eri+1,s,o,h),a>0&&n(i,s,r.eri,r.sci-1),l>0&&n(i,r.eci+1,r.eri,h)),a>0?(n(i,s,o,r.sci-1),l>0?(n(i,r.eri+1,o,h),c>0&&n(i,r.sci,r.sri-1,r.eci),f>0&&n(r.sri+1,r.sci,o,r.eci)):(c>0&&n(i,r.sci,r.sri-1,h),f>0&&n(r.sri+1,r.sci,o,h))):l>0&&(n(o,r.eci+1,o,h),c>0&&n(i,s,r.sri-1,r.eci),f>0&&n(r.eri+1,s,o,r.eci)),e}size(){return[this.eri-this.sri+1,this.eci-this.sci+1]}toString(){const{sri:r,sci:e,eri:n,eci:i}=this;let s=Yn(e,r);return this.multiple()&&(s=`${s}:${Yn(i,n)}`),s}clone(){const{sri:r,sci:e,eri:n,eci:i,w:s,h:o}=this;return new ar(r,e,n,i,s,o)}equals(r){return this.eri===r.eri&&this.eci===r.eci&&this.sri===r.sri&&this.sci===r.sci}static valueOf(r){const e=r.split(":"),[n,i]=di(e[0]);let[s,o]=[i,n];return e.length>1&&([o,s]=di(e[1])),new ar(i,n,s,o)}}let K0=class{constructor(){this.range=new ar(0,0,0,0),this.ri=0,this.ci=0}multiple(){return this.range.multiple()}setIndexes(r,e){this.ri=r,this.ci=e}size(){return this.range.size()}};class Y0{constructor(){this.x=0,this.y=0,this.ri=0,this.ci=0}}class Z0{constructor(){this.undoItems=[],this.redoItems=[]}add(r){this.undoItems.push(JSON.stringify(r)),this.redoItems=[]}canUndo(){return this.undoItems.length>0}canRedo(){return this.redoItems.length>0}undo(r,e){const{undoItems:n,redoItems:i}=this;this.canUndo()&&(i.push(JSON.stringify(r)),e(JSON.parse(n.pop())))}redo(r,e){const{undoItems:n,redoItems:i}=this;this.canRedo()&&(n.push(JSON.stringify(r)),e(JSON.parse(i.pop())))}}class J0{constructor(){this.range=null,this.state="clear"}copy(r){return this.range=r,this.state="copy",this}cut(r){return this.range=r,this.state="cut",this}isCopy(){return this.state==="copy"}isCut(){return this.state==="cut"}isClear(){return this.state==="clear"}clear(){this.range=null,this.state="clear"}}class Sl{constructor(r,e,n){this.ci=r,this.operator=e,this.value=n}set(r,e){this.operator=r,this.value=e}includes(r){const{operator:e,value:n}=this;return e==="all"?!0:e==="in"?n.includes(r):!1}vlength(){const{operator:r,value:e}=this;return r==="in"?e.length:0}getData(){const{ci:r,operator:e,value:n}=this;return{ci:r,operator:e,value:n}}}class kl{constructor(r,e){this.ci=r,this.order=e}asc(){return this.order==="asc"}desc(){return this.order==="desc"}}class Q0{constructor(){this.ref=null,this.filters=[],this.sort=null}setData({ref:r,filters:e,sort:n}){r!=null&&(this.ref=r,this.filters=e.map(i=>new Sl(i.ci,i.operator,i.value)),n&&(this.sort=new kl(n.ci,n.order)))}getData(){if(this.active()){const{ref:r,filters:e,sort:n}=this;return{ref:r,filters:e.map(i=>i.getData()),sort:n}}return{}}addFilter(r,e,n){const i=this.getFilter(r);i==null?this.filters.push(new Sl(r,e,n)):i.set(e,n)}setSort(r,e){this.sort=e?new kl(r,e):null}includes(r,e){return this.active()?this.hrange().includes(r,e):!1}getSort(r){const{sort:e}=this;return e&&e.ci===r?e:null}getFilter(r){const{filters:e}=this;for(let n=0;n!e.within(r))}getFirstIncludes(r,e){for(let n=0;ne.intersects(r)))}intersects(r){for(let e=0;e{n.intersects(e)&&(e=n.union(e))}),e}add(r){this.deleteWithin(r),this._.push(r)}shift(r,e,n,i){this._.forEach(s=>{const{sri:o,sci:h,eri:c,eci:a}=s,f=s;r==="row"?o>=e?(f.sri+=n,f.eri+=n):o=e?(f.sci+=n,f.eci+=n):h{const s=i;s.within(r)&&(s.eri+=e,s.sri+=e,s.sci+=n,s.eci+=n)})}setData(r){return this._=r.map(e=>ar.valueOf(e)),this}getData(){return this._.map(r=>r.toString())}}function q0(t){return JSON.parse(JSON.stringify(t))}const dh=(t={},...r)=>(r.forEach(e=>{Object.keys(e).forEach(n=>{const i=e[n];typeof i=="string"||typeof i=="number"||typeof i=="boolean"?t[n]=i:typeof i!="function"&&!Array.isArray(i)&&i instanceof Object?(t[n]=t[n]||{},dh(t[n],i)):t[n]=i})}),t);function cf(t,r){const e=Object.keys(t);if(e.length!==Object.keys(r).length)return!1;for(let n=0;ne)=>{let e=0,n=0;return Object.keys(t).forEach(i=>{e+=r(t[i],i),n+=1}),[e,n]};function td(t,r){const e=t[`${r}`];return delete t[`${r}`],e}function rd(t,r,e,n,i,s){let o=e,h=n,c=t;for(;ci);c+=1)h=s(c),o+=h;return[c,o-h,h]}function nd(t,r,e){let n=0;for(let i=t;i5?h.toFixed(2):h;return h.toFixed(Math.max(n,i))}const Kr={cloneDeep:q0,merge:(...t)=>dh({},...t),equals:cf,arrayEquals:sd,sum:ed,rangeEach:id,rangeSum:nd,rangeReduceIf:rd,deleteProperty:td,numberCalc:Ai};class ad{constructor({len:r,height:e}){this._={},this.len=r,this.height=e}getHeight(r){if(this.isHide(r))return 0;const e=this.get(r);return e&&e.height?e.height:this.height}setHeight(r,e){const n=this.getOrNew(r);n.height=e}unhide(r){let e=r;for(;e>0&&(e-=1,this.isHide(e));)this.setHide(e,!1)}isHide(r){const e=this.get(r);return e&&e.hide}setHide(r,e){const n=this.getOrNew(r);e===!0?n.hide=!0:delete n.hide}setStyle(r,e){const n=this.getOrNew(r);n.style=e}sumHeight(r,e,n){return Kr.rangeSum(r,e,i=>n&&n.has(i)?0:this.getHeight(i))}totalHeight(){return this.sumHeight(0,this.len)}get(r){return this._[r]}getOrNew(r){return this._[r]=this._[r]||{cells:{}},this._[r]}getCell(r,e){const n=this.get(r);return n!==void 0&&n.cells!==void 0&&n.cells[e]!==void 0?n.cells[e]:null}getCellMerge(r,e){const n=this.getCell(r,e);return n&&n.merge?n.merge:[0,0]}getCellOrNew(r,e){const n=this.getOrNew(r);return n.cells[e]=n.cells[e]||{},n.cells[e]}setCell(r,e,n,i="all"){const s=this.getOrNew(r);i==="all"?s.cells[e]=n:i==="text"?(s.cells[e]=s.cells[e]||{},s.cells[e].text=n.text):i==="format"&&(s.cells[e]=s.cells[e]||{},s.cells[e].style=n.style,n.merge&&(s.cells[e].merge=n.merge))}setCellText(r,e,n){const i=this.getCellOrNew(r,e);i.editable!==!1&&(i.text=n)}copyPaste(r,e,n,i=!1,s=()=>{}){const{sri:o,sci:h,eri:c,eci:a}=r,f=e.sri,l=e.sci,u=e.eri,p=e.eci,[m,d]=r.size(),[v,x]=e.size();let g=!0,b=0;(u0){const{text:U}=B;let j=C-l+(T-f)+2;if(g||(j-=b+1),U[0]==="=")B.text=U.replace(/[a-zA-Z]{1,3}\d+/g,H=>{let[G,L]=[0,0];return o===f?G=j-1:L=j-1,/^\d+$/.test(H)?H:ys(H,G,L)});else if(m<=1&&d>1&&(f>c||u1&&(l>a||p{this.eachCells(i,s=>{let o=parseInt(i,10),h=parseInt(s,10);r.includes(i,s)&&(o=e.sri+(o-r.sri),h=e.sci+(h-r.sci)),n[o]=n[o]||{cells:{}},n[o].cells[h]=this._[i].cells[s]})}),this._=n}paste(r,e){if(r.length<=0)return;const{sri:n,sci:i}=e;r.forEach((s,o)=>{const h=n+o;s.forEach((c,a)=>{const f=i+a;this.setCellText(h,f,c)})})}insert(r,e=1){const n={};this.each((i,s)=>{let o=parseInt(i,10);o>=r&&(o+=e,this.eachCells(i,(h,c)=>{c.text&&c.text[0]==="="&&(c.text=c.text.replace(/[a-zA-Z]{1,3}\d+/g,a=>ys(a,0,e,(f,l)=>l>=r)))})),n[o]=s}),this._=n,this.len+=e}delete(r,e){const n=e-r+1,i={};this.each((s,o)=>{const h=parseInt(s,10);he&&(i[h-n]=o,this.eachCells(s,(c,a)=>{a.text&&a.text[0]==="="&&(a.text=a.text.replace(/[a-zA-Z]{1,3}\d+/g,f=>ys(f,0,-n,(l,u)=>u>e)))}))}),this._=i,this.len-=n}insertColumn(r,e=1){this.each((n,i)=>{const s={};this.eachCells(n,(o,h)=>{let c=parseInt(o,10);c>=r&&(c+=e,h.text&&h.text[0]==="="&&(h.text=h.text.replace(/[a-zA-Z]{1,3}\d+/g,a=>ys(a,e,0,f=>f>=r)))),s[c]=h}),i.cells=s})}deleteColumn(r,e){const n=e-r+1;this.each((i,s)=>{const o={};this.eachCells(i,(h,c)=>{const a=parseInt(h,10);ae&&(o[a-n]=c,c.text&&c.text[0]==="="&&(c.text=c.text.replace(/[a-zA-Z]{1,3}\d+/g,f=>ys(f,-n,0,l=>l>e))))}),s.cells=o})}deleteCells(r,e="all"){r.each((n,i)=>{this.deleteCell(n,i,e)})}deleteCell(r,e,n="all"){const i=this.get(r);if(i!==null){const s=this.getCell(r,e);s!==null&&s.editable!==!1&&(n==="all"?delete i.cells[e]:n==="text"?(s.text&&delete s.text,s.value&&delete s.value):n==="format"?(s.style!==void 0&&delete s.style,s.merge&&delete s.merge):n==="merge"&&s.merge&&delete s.merge)}}maxCell(){const r=Object.keys(this._),e=r[r.length-1],n=this._[e];if(n){const{cells:i}=n,s=Object.keys(i),o=s[s.length-1];return[parseInt(e,10),parseInt(o,10)]}return[0,0]}each(r){Object.entries(this._).forEach(([e,n])=>{r(e,n)})}eachCells(r,e){this._[r]&&this._[r].cells&&Object.entries(this._[r].cells).forEach(([n,i])=>{e(n,i)})}setData(r){r.len&&(this.len=r.len,delete r.len),this._=r}getData(){const{len:r}=this;return Object.assign({len:r},this._)}}class od{constructor({len:r,width:e,indexWidth:n,minWidth:i}){this._={},this.len=r,this.width=e,this.indexWidth=n,this.minWidth=i}setData(r){r.len&&(this.len=r.len,delete r.len),this._=r}getData(){const{len:r}=this;return Object.assign({len:r},this._)}getWidth(r){if(this.isHide(r))return 0;const e=this._[r];return e&&e.width?e.width:this.width}getOrNew(r){return this._[r]=this._[r]||{},this._[r]}setWidth(r,e){const n=this.getOrNew(r);n.width=e}unhide(r){let e=r;for(;e>0&&(e-=1,this.isHide(e));)this.setHide(e,!1)}isHide(r){const e=this._[r];return e&&e.hide}setHide(r,e){const n=this.getOrNew(r);e===!0?n.hide=!0:delete n.hide}setStyle(r,e){const n=this.getOrNew(r);n.style=e}sumWidth(r,e){return Kr.rangeSum(r,e,n=>this.getWidth(n))}totalWidth(){return this.sumWidth(0,this.len)}}const fd={toolbar:{undo:"Undo",redo:"Redo",print:"Print",paintformat:"Paint format",clearformat:"Clear format",format:"Format",fontName:"Font",fontSize:"Font size",fontBold:"Font bold",fontItalic:"Font italic",underline:"Underline",strike:"Strike",color:"Text color",bgcolor:"Fill color",border:"Borders",merge:"Merge cells",align:"Horizontal align",valign:"Vertical align",textwrap:"Text wrapping",freeze:"Freeze cell",autofilter:"Filter",formula:"Functions",more:"More"},contextmenu:{copy:"Copy",cut:"Cut",paste:"Paste",pasteValue:"Paste values only",pasteFormat:"Paste format only",hide:"Hide",insertRow:"Insert row",insertColumn:"Insert column",deleteSheet:"Delete",deleteRow:"Delete row",deleteColumn:"Delete column",deleteCell:"Delete cell",deleteCellText:"Delete cell text",validation:"Data validations",cellprintable:"Enable export",cellnonprintable:"Disable export",celleditable:"Enable editing",cellnoneditable:"Disable editing"},print:{size:"Paper size",orientation:"Page orientation",orientations:["Landscape","Portrait"]},format:{normal:"Normal",text:"Plain Text",number:"Number",percent:"Percent",rmb:"RMB",usd:"USD",eur:"EUR",date:"Date",time:"Time",datetime:"Date time",duration:"Duration"},formula:{sum:"Sum",average:"Average",max:"Max",min:"Min",_if:"IF",and:"AND",or:"OR",concat:"Concat"},validation:{required:"it must be required",notMatch:"it not match its validation rule",between:"it is between {} and {}",notBetween:"it is not between {} and {}",notIn:"it is not in list",equal:"it equal to {}",notEqual:"it not equal to {}",lessThan:"it less than {}",lessThanEqual:"it less than or equal to {}",greaterThan:"it greater than {}",greaterThanEqual:"it greater than or equal to {}"},error:{pasteForMergedCell:"Unable to do this for merged cells"},calendar:{weeks:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"]},button:{next:"Next",cancel:"Cancel",remove:"Remove",save:"Save",ok:"OK"},sort:{desc:"Sort Z -> A",asc:"Sort A -> Z"},filter:{empty:"empty"},dataValidation:{mode:"Mode",range:"Cell Range",criteria:"Criteria",modeType:{cell:"Cell",column:"Colun",row:"Row"},type:{list:"List",number:"Number",date:"Date",phone:"Phone",email:"Email"},operator:{be:"between",nbe:"not betwwen",lt:"less than",lte:"less than or equal to",gt:"greater than",gte:"greater than or equal to",eq:"equal to",neq:"not equal to"}}};let hf=["en"];const ph={en:fd};function Cl(t,r){if(r)for(const e of hf){if(!r[e])break;let n=r[e];const i=t.match(/(?:\\.|[^.])+/g);for(let s=0;sur(t)}function mh(t,r,e=!1){e?hf=[t]:hf.unshift(t),r&&(ph[t]=r)}const Al={phone:/^[1-9]\d{10}$/,email:/w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*/};function yn(t,r,...e){let n="";return t||(n=ur(`validation.${r}`,...e)),[t,n]}class gh{constructor(r,e,n,i){this.required=e,this.value=n,this.type=r,this.operator=i,this.message=""}parseValue(r){const{type:e}=this;return e==="date"?new Date(r):e==="number"?Number(r):r}equals(r){let e=this.type===r.type&&this.required===r.required&&this.operator===r.operator;return e&&(Array.isArray(this.value)?e=Kr.arrayEquals(this.value,r.value):e=this.value===r.value),e}values(){return this.value.split(",")}validate(r){const{required:e,operator:n,value:i,type:s}=this;if(e&&/^\s*$/.test(r))return yn(!1,"required");if(/^\s*$/.test(r))return[!0];if(Al[s]&&!Al[s].test(r))return yn(!1,"notMatch");if(s==="list")return yn(this.values().includes(r),"notIn");if(n){const o=this.parseValue(r);if(n==="be"){const[h,c]=i;return yn(o>=this.parseValue(h)&&o<=this.parseValue(c),"between",h,c)}if(n==="nbe"){const[h,c]=i;return yn(othis.parseValue(c),"notBetween",h,c)}if(n==="eq")return yn(o===this.parseValue(i),"equal",i);if(n==="neq")return yn(o!==this.parseValue(i),"notEqual",i);if(n==="lt")return yn(othis.parseValue(i),"greaterThan",i);if(n==="gte")return yn(o>=this.parseValue(i),"greaterThanEqual",i)}return[!0]}}class Va{constructor(r,e,n){this.refs=e,this.mode=r,this.validator=n}includes(r,e){const{refs:n}=this;for(let i=0;i{const i=ar.valueOf(n);i.intersects(r)?i.difference(r).forEach(o=>e.push(o.toString())):e.push(n)}),this.refs=e}getData(){const{refs:r,mode:e,validator:n}=this,{type:i,required:s,operator:o,value:h}=n;return{refs:r,mode:e,type:i,required:s,operator:o,value:h}}static valueOf({refs:r,mode:e,type:n,required:i,operator:s,value:o}){return new Va(e,r,new gh(n,i,o,s))}}class ld{constructor(){this._=[],this.errors=new Map}getError(r,e){return this.errors.get(`${r}_${e}`)}validate(r,e,n){const i=this.get(r,e),s=`${r}_${e}`,{errors:o}=this;if(i!==null){const[h,c]=i.validator.validate(n);h?o.delete(s):o.set(s,c)}else o.delete(s);return!0}add(r,e,{type:n,required:i,value:s,operator:o}){const h=new gh(n,i,s,o),c=this.getByValidator(h);c!==null?c.addRef(e):this._.push(new Va(r,[e],h))}getByValidator(r){for(let e=0;e{e.remove(r)})}each(r){this._.forEach(e=>r(e))}getData(){return this._.filter(r=>r.refs.length>0).map(r=>r.getData())}setData(r){this._=r.map(e=>Va.valueOf(e))}}const cd={mode:"edit",view:{height:()=>document.documentElement.clientHeight,width:()=>document.documentElement.clientWidth},showGrid:!0,showToolbar:!0,showContextmenu:!0,showBottomBar:!0,row:{len:100,height:25},col:{len:26,width:100,indexWidth:60,minWidth:60},style:{bgcolor:"#ffffff",align:"left",valign:"middle",textwrap:!1,strike:!1,underline:!1,color:"#0a0a0a",font:{name:"Arial",size:10,bold:!1,italic:!1},format:"normal"}},hd=41,ud=41,Fl=(t,r)=>Object.prototype.hasOwnProperty.call(t,r);function Rl(t,r,e=()=>{}){const{merges:n}=this,i=r.clone(),[s,o]=t.size(),[h,c]=r.size();return s>h&&(i.eri=r.sri+s-1),o>c&&(i.eci=r.sci+o-1),n.intersects(i)?(e(ur("error.pasteForMergedCell")),!1):!0}function Ml(t,r,e,n=!1){const{rows:i,merges:s}=this;(e==="all"||e==="format")&&(i.deleteCells(r,e),s.deleteWithin(r)),i.copyPaste(t,r,e,n,(o,h,c)=>{if(c&&c.merge){const[a,f]=c.merge;if(a<=0&&f<=0)return;s.add(new ar(o,h,o+a,h+f))}})}function dd(t,r){const{clipboard:e,rows:n,merges:i}=this;n.cutPaste(t,r),i.move(t,r.sri-t.sri,r.sci-t.sci),e.clear()}function qi(t,r,e){const{styles:n,rows:i}=this,s=i.getCellOrNew(t,r);let o={};s.style!==void 0&&(o=Kr.cloneDeep(n[s.style])),o=Kr.merge(o,{border:e}),s.style=this.addStyle(o)}function pd({mode:t,style:r,color:e}){const{styles:n,selector:i,rows:s}=this,{sri:o,sci:h,eri:c,eci:a}=i.range,f=!this.isSignleSelected();if(!(!f&&(t==="inside"||t==="horizontal"||t==="vertical"))){if(t==="outside"&&!f)qi.call(this,o,h,{top:[r,e],bottom:[r,e],left:[r,e],right:[r,e]});else if(t==="none")i.range.each((l,u)=>{const p=s.getCell(l,u);if(p&&p.style!==void 0){const m=Kr.cloneDeep(n[p.style]);delete m.border,p.style=this.addStyle(m)}});else if(t==="all"||t==="inside"||t==="outside"||t==="horizontal"||t==="vertical"){const l=[];for(let u=o;u<=c;u+=1)for(let p=h;p<=a;p+=1){const m=[];for(let y=0;yl.splice(y,1)),p>a)break;const d=s.getCell(u,p);let[v,x]=[0,0];d&&d.merge&&([v,x]=d.merge,l.push([u,p,v,x]));const g=v>0&&u+v===c,b=x>0&&p+x===a;let w={};t==="all"?w={bottom:[r,e],top:[r,e],left:[r,e],right:[r,e]}:t==="inside"?(!b&&p0&&qi.call(this,u,p,w),p+=x}}else if(t==="top"||t==="bottom")for(let l=h;l<=a;l+=1)t==="top"&&(qi.call(this,o,l,{top:[r,e]}),l+=s.getCellMerge(o,l)[1]),t==="bottom"&&(qi.call(this,c,l,{bottom:[r,e]}),l+=s.getCellMerge(c,l)[1]);else if(t==="left"||t==="right")for(let l=o;l<=c;l+=1)t==="left"&&(qi.call(this,l,h,{left:[r,e]}),l+=s.getCellMerge(l,h)[0]),t==="right"&&(qi.call(this,l,a,{right:[r,e]}),l+=s.getCellMerge(l,a)[0])}}function md(t,r){const{rows:e}=this,n=this.freezeTotalHeight();let i=e.height;n+e.heightt);o+=1)s.has(o)||(c=e.getHeight(o),h+=c);return h-=c,h<=0?{ri:-1,top:0,height:c}:{ri:o-1,top:h,height:c}}function gd(t,r){const{cols:e}=this,n=this.freezeTotalWidth();let i=e.indexWidth;n+e.indexWidthe.getWidth(c));return o<=0?{ci:-1,left:0,width:e.indexWidth}:{ci:s-1,left:o,width:h}}class vd{constructor(r,e){this.settings=Kr.merge(cd,e||{}),this.name=r||"sheet",this.freeze=[0,0],this.styles=[],this.merges=new Of,this.rows=new ad(this.settings.row),this.cols=new od(this.settings.col),this.validations=new ld,this.hyperlinks={},this.comments={},this.selector=new K0,this.scroll=new Y0,this.history=new Z0,this.clipboard=new J0,this.autoFilter=new Q0,this.change=()=>{},this.exceptRowSet=new Set,this.sortedRowMap=new Map,this.unsortedRowMap=new Map}addValidation(r,e,n){this.changeData(()=>{this.validations.add(r,e,n)})}removeValidation(){const{range:r}=this.selector;this.changeData(()=>{this.validations.remove(r)})}getSelectedValidator(){const{ri:r,ci:e}=this.selector,n=this.validations.get(r,e);return n?n.validator:null}getSelectedValidation(){const{ri:r,ci:e,range:n}=this.selector,i=this.validations.get(r,e),s={ref:n.toString()};return i!==null&&(s.mode=i.mode,s.validator=i.validator),s}canUndo(){return this.history.canUndo()}canRedo(){return this.history.canRedo()}undo(){this.history.undo(this.getData(),r=>{this.setData(r)})}redo(){this.history.redo(this.getData(),r=>{this.setData(r)})}copy(){this.clipboard.copy(this.selector.range)}copyToSystemClipboard(){if(navigator.clipboard===void 0)return;let r="";const e=this.rows.getData();for(let n=this.selector.range.sri;n<=this.selector.range.eri;n+=1){if(Fl(e,n)){for(let i=this.selector.range.sci;i<=this.selector.range.eci;i+=1)if(i>this.selector.range.sci&&(r+=" "),Fl(e[n].cells,i)){const s=String(e[n].cells[i].text);s.indexOf(` +`)===-1&&s.indexOf(" ")===-1&&s.indexOf('"')===-1?r+=s:r+=`"${s}"`}}else for(let i=this.selector.range.sci;i<=this.selector.range.eci;i+=1)r+=" ";r+=` +`}navigator.clipboard.writeText(r).then(()=>{},n=>{console.log("text copy to the system clipboard error ",r,n)})}cut(){this.clipboard.cut(this.selector.range)}paste(r="all",e=()=>{}){const{clipboard:n,selector:i}=this;return n.isClear()||!Rl.call(this,n.range,i.range,e)?!1:(this.changeData(()=>{n.isCopy()?Ml.call(this,n.range,i.range,r):n.isCut()&&dd.call(this,n.range,i.range)}),!0)}pasteFromText(r){const e=r.split(`\r +`).map(s=>s.replace(/"/g,"").split(" "));e.length>0&&(e.length-=1);const{rows:n,selector:i}=this;this.changeData(()=>{n.paste(e,i.range)})}autofill(r,e,n=()=>{}){const i=this.selector.range;return Rl.call(this,i,r,n)?(this.changeData(()=>{Ml.call(this,i,r,e,!0)}),!0):!1}clearClipboard(){this.clipboard.clear()}calSelectedRangeByEnd(r,e){const{selector:n,rows:i,cols:s,merges:o}=this;let{sri:h,sci:c,eri:a,eci:f}=n.range;const l=n.ri,u=n.ci;let[p,m]=[r,e];return r<0&&(p=i.len-1),e<0&&(m=s.len-1),p>l?[h,a]=[l,p]:[h,a]=[p,l],m>u?[c,f]=[u,m]:[c,f]=[m,u],n.range=o.union(new ar(h,c,a,f)),n.range=o.union(n.range),n.range}calSelectedRangeByStart(r,e){const{selector:n,rows:i,cols:s,merges:o}=this;let h=o.getFirstIncludes(r,e);return h===null&&(h=new ar(r,e,r,e),r===-1&&(h.sri=0,h.eri=i.len-1),e===-1&&(h.sci=0,h.eci=s.len-1)),n.range=h,h}setSelectedCellAttr(r,e){this.changeData(()=>{const{selector:n,styles:i,rows:s}=this;if(r==="merge")e?this.merge():this.unmerge();else if(r==="border")pd.call(this,e);else if(r==="formula"){const{ri:o,ci:h,range:c}=n;if(n.multiple()){const[a,f]=n.size(),{sri:l,sci:u,eri:p,eci:m}=c;if(a>1)for(let d=u;d<=m;d+=1){const v=s.getCellOrNew(p+1,d);v.text=`=${e}(${Yn(d,l)}:${Yn(d,p)})`}else if(f>1){const d=s.getCellOrNew(o,m+1);d.text=`=${e}(${Yn(u,o)}:${Yn(m,o)})`}}else{const a=s.getCellOrNew(o,h);a.text=`=${e}()`}}else n.range.each((o,h)=>{const c=s.getCellOrNew(o,h);let a={};if(c.style!==void 0&&(a=Kr.cloneDeep(i[c.style])),r==="format")a.format=e,c.style=this.addStyle(a);else if(r==="font-bold"||r==="font-italic"||r==="font-name"||r==="font-size"){const f={};f[r.split("-")[1]]=e,a.font=Object.assign(a.font||{},f),c.style=this.addStyle(a)}else r==="strike"||r==="textwrap"||r==="underline"||r==="align"||r==="valign"||r==="color"||r==="bgcolor"?(a[r]=e,c.style=this.addStyle(a)):c[r]=e})})}setSelectedCellText(r,e="input"){const{autoFilter:n,selector:i,rows:s}=this,{ri:o,ci:h}=i;let c=o;this.unsortedRowMap.has(o)&&(c=this.unsortedRowMap.get(o));const a=s.getCell(c,h),f=a?a.text:"";if(this.setCellText(c,h,r,e),n.active()){const l=n.getFilter(h);if(l){const u=l.value.findIndex(p=>p===f);u>=0&&l.value.splice(u,1,r)}}}getSelectedCell(){const{ri:r,ci:e}=this.selector;let n=r;return this.unsortedRowMap.has(r)&&(n=this.unsortedRowMap.get(r)),this.rows.getCell(n,e)}xyInSelectedRect(r,e){const{left:n,top:i,width:s,height:o}=this.getSelectedRect(),h=r-this.cols.indexWidth,c=e-this.rows.height;return h>n&&hi&&c0&&x>f&&(m=f),v>0&&v>l&&(d=l),{l:f,t:l,left:m,top:d,height:u,width:p,scroll:e}}getCellRectByXY(r,e){const{scroll:n,merges:i,rows:s,cols:o}=this;let{ri:h,top:c,height:a}=md.call(this,e,n.y),{ci:f,left:l,width:u}=gd.call(this,r,n.x);if(f===-1&&(u=o.totalWidth()),h===-1&&(a=s.totalHeight()),h>=0||f>=0){const p=i.getFirstIncludes(h,f);p&&(h=p.sri,f=p.sci,{left:l,top:c,width:u,height:a}=this.cellRect(h,f))}return{ri:h,ci:f,left:l,top:c,width:u,height:a}}isSignleSelected(){const{sri:r,sci:e,eri:n,eci:i}=this.selector.range,s=this.getCell(r,e);if(s&&s.merge){const[o,h]=s.merge;if(r+o===n&&e+h===i)return!0}return!this.selector.multiple()}canUnmerge(){const{sri:r,sci:e,eri:n,eci:i}=this.selector.range,s=this.getCell(r,e);if(s&&s.merge){const[o,h]=s.merge;if(r+o===n&&e+h===i)return!0}return!1}merge(){const{selector:r,rows:e}=this;if(this.isSignleSelected())return;const[n,i]=r.size();if(n>1||i>1){const{sri:s,sci:o}=r.range;this.changeData(()=>{const h=e.getCellOrNew(s,o);h.merge=[n-1,i-1],this.merges.add(r.range),this.rows.deleteCells(r.range),this.rows.setCell(s,o,h)})}}unmerge(){const{selector:r}=this;if(!this.isSignleSelected())return;const{sri:e,sci:n}=r.range;this.changeData(()=>{this.rows.deleteCell(e,n,"merge"),this.merges.deleteWithin(r.range)})}canAutofilter(){return!this.autoFilter.active()}autofilter(){const{autoFilter:r,selector:e}=this;this.changeData(()=>{r.active()?(r.clear(),this.exceptRowSet=new Set,this.sortedRowMap=new Map,this.unsortedRowMap=new Map):r.ref=e.range.toString()})}setAutoFilter(r,e,n,i){const{autoFilter:s}=this;s.addFilter(r,n,i),s.setSort(r,e),this.resetAutoFilter()}resetAutoFilter(){const{autoFilter:r,rows:e}=this;if(!r.active())return;const{sort:n}=r,{rset:i,fset:s}=r.filteredRows((c,a)=>e.getCell(c,a)),o=Array.from(s),h=Array.from(s);n&&o.sort((c,a)=>n.order==="asc"?c-a:n.order==="desc"?a-c:0),this.exceptRowSet=i,this.sortedRowMap=new Map,this.unsortedRowMap=new Map,o.forEach((c,a)=>{this.sortedRowMap.set(h[a],c),this.unsortedRowMap.set(c,h[a])})}deleteCell(r="all"){const{selector:e}=this;this.changeData(()=>{this.rows.deleteCells(e.range,r),(r==="all"||r==="format")&&this.merges.deleteWithin(e.range)})}insert(r,e=1){this.changeData(()=>{const{sri:n,sci:i}=this.selector.range,{rows:s,merges:o,cols:h}=this;let c=n;r==="row"?s.insert(n,e):r==="column"&&(s.insertColumn(i,e),c=i,h.len+=1),o.shift(r,c,e,(a,f,l,u)=>{const p=s.getCell(a,f);p.merge[0]+=l,p.merge[1]+=u})})}delete(r){this.changeData(()=>{const{rows:e,merges:n,selector:i,cols:s}=this,{range:o}=i,{sri:h,sci:c,eri:a,eci:f}=i.range,[l,u]=i.range.size();let p=h,m=l;r==="row"?e.delete(h,a):r==="column"&&(e.deleteColumn(c,f),p=o.sci,m=u,s.len-=1),n.shift(r,p,-m,(d,v,x,g)=>{const b=e.getCell(d,v);b.merge[0]+=x,b.merge[1]+=g,b.merge[0]===0&&b.merge[1]===0&&delete b.merge})})}scrollx(r,e){const{scroll:n,freeze:i,cols:s}=this,[,o]=i,[h,c,a]=Kr.rangeReduceIf(o,s.len,0,0,r,l=>s.getWidth(l));let f=c;r>0&&(f+=a),n.x!==f&&(n.ci=r>0?h:0,n.x=f,e())}scrolly(r,e){const{scroll:n,freeze:i,rows:s}=this,[o]=i,[h,c,a]=Kr.rangeReduceIf(o,s.len,0,0,r,l=>s.getHeight(l));let f=c;r>0&&(f+=a),n.y!==f&&(n.ri=r>0?h:0,n.y=f,e())}cellRect(r,e){const{rows:n,cols:i}=this,s=i.sumWidth(0,e),o=n.sumHeight(0,r),h=n.getCell(r,e);let c=i.getWidth(e),a=n.getHeight(r);if(h!==null&&h.merge){const[f,l]=h.merge;if(f>0)for(let u=1;u<=f;u+=1)a+=n.getHeight(r+u);if(l>0)for(let u=1;u<=l;u+=1)c+=i.getWidth(e+u)}return{left:s,top:o,width:c,height:a,cell:h}}getCell(r,e){return this.rows.getCell(r,e)}getCellTextOrDefault(r,e){const n=this.getCell(r,e);return n&&n.text?n.text:""}getCellStyle(r,e){const n=this.getCell(r,e);return n&&n.style!==void 0?this.styles[n.style]:null}getCellStyleOrDefault(r,e){const{styles:n,rows:i}=this,s=i.getCell(r,e),o=s&&s.style!==void 0?n[s.style]:{};return Kr.merge(this.defaultStyle(),o)}getSelectedCellStyle(){const{ri:r,ci:e}=this.selector;return this.getCellStyleOrDefault(r,e)}setCellText(r,e,n,i){const{rows:s,history:o,validations:h}=this;i==="finished"?(s.setCellText(r,e,""),o.add(this.getData()),s.setCellText(r,e,n)):(s.setCellText(r,e,n),this.change(this.getData())),h.validate(r,e,n)}freezeIsActive(){const[r,e]=this.freeze;return r>0||e>0}setFreeze(r,e){this.changeData(()=>{this.freeze=[r,e]})}freezeTotalWidth(){return this.cols.sumWidth(0,this.freeze[1])}freezeTotalHeight(){return this.rows.sumHeight(0,this.freeze[0])}setRowHeight(r,e){this.changeData(()=>{this.rows.setHeight(r,e)})}setColWidth(r,e){this.changeData(()=>{this.cols.setWidth(r,e)})}viewHeight(){const{view:r,showToolbar:e,showBottomBar:n}=this.settings;let i=r.height();return n&&(i-=ud),e&&(i-=hd),i}viewWidth(){return this.settings.view.width()}freezeViewRange(){const[r,e]=this.freeze;return new ar(0,0,r-1,e-1,this.freezeTotalWidth(),this.freezeTotalHeight())}contentRange(){const{rows:r,cols:e}=this,[n,i]=r.maxCell(),s=r.sumHeight(0,n+1),o=e.sumWidth(0,i+1);return new ar(0,0,n,i,o,s)}exceptRowTotalHeight(r,e){const{exceptRowSet:n,rows:i}=this,s=Array.from(n);let o=0;return s.forEach(h=>{if(he){const c=i.getHeight(h);o+=c}}),o}viewRange(){const{scroll:r,rows:e,cols:n,freeze:i,exceptRowSet:s}=this;let{ri:o,ci:h}=r;o<=0&&([o]=i),h<=0&&([,h]=i);let[c,a]=[0,0],[f,l]=[e.len,n.len];for(let u=o;uthis.viewHeight()));u+=1);for(let u=h;uthis.viewWidth()));u+=1);return new ar(o,h,f,l,c,a)}eachMergesInView(r,e){this.merges.filterIntersects(r).forEach(n=>e(n))}hideRowsOrCols(){const{rows:r,cols:e,selector:n}=this,[i,s]=n.size(),{sri:o,sci:h,eri:c,eci:a}=n.range;if(i===r.len)for(let f=h;f<=a;f+=1)e.setHide(f,!0);else if(s===e.len)for(let f=o;f<=c;f+=1)r.setHide(f,!0)}unhideRowsOrCols(r,e){this[`${r}s`].unhide(e)}rowEach(r,e,n){let i=0;const{rows:s}=this,o=this.exceptRowSet,h=[...o];let c=0;for(let a=0;a0&&(n(a,i,f),i+=f,i>this.viewHeight()))break}}colEach(r,e,n){let i=0;const{cols:s}=this;for(let o=r;o<=e;o+=1){const h=s.getWidth(o);if(h>0&&(n(o,i,h),i+=h,i>this.viewWidth()))break}}defaultStyle(){return this.settings.style}addStyle(r){const{styles:e}=this;for(let n=0;n{if(e==="merges"||e==="rows"||e==="cols"||e==="validations")this[e].setData(r[e]);else if(e==="freeze"){const[n,i]=di(r[e]);this.freeze=[i,n]}else e==="autofilter"?this.autoFilter.setData(r[e]):r[e]!==void 0&&(this[e]=r[e])}),this}getData(){const{name:r,freeze:e,styles:n,merges:i,rows:s,cols:o,validations:h,autoFilter:c}=this;return{name:r,freeze:Yn(e[1],e[0]),styles:n,merges:i.getData(),rows:s.getData(),cols:o.getData(),validations:h.getData(),autofilter:c.getData()}}}function Zr(t,r,e){t.addEventListener(r,e)}function Ga(t,r,e){t.removeEventListener(r,e)}function ms(t){t.xclickoutside&&(Ga(window.document.body,"click",t.xclickoutside),delete t.xclickoutside)}function Js(t,r){t.xclickoutside=e=>{e.detail===2||t.contains(e.target)||(r?r(t):(t.hide(),ms(t)))},Zr(window.document.body,"click",t.xclickoutside)}function vh(t,r,e){Zr(t,"mousemove",r);const n=t;n.xEvtUp=i=>{Ga(t,"mousemove",r),Ga(t,"mouseup",t.xEvtUp),e(i)},Zr(t,"mouseup",t.xEvtUp)}function Ol(t,r,e,n){let i="";Math.abs(t)>Math.abs(r)?(i=t>0?"right":"left",n(i,t,e)):(i=r>0?"down":"up",n(i,r,e))}function xd(t,{move:r,end:e}){let n=0,i=0;Zr(t,"touchstart",s=>{const{pageX:o,pageY:h}=s.touches[0];n=o,i=h}),Zr(t,"touchmove",s=>{if(!r)return;const{pageX:o,pageY:h}=s.changedTouches[0],c=o-n,a=h-i;(Math.abs(c)>10||Math.abs(a)>10)&&(Ol(c,a,s,r),n=o,i=h),s.preventDefault()}),Zr(t,"touchend",s=>{if(!e)return;const{pageX:o,pageY:h}=s.changedTouches[0],c=o-n,a=h-i;Ol(c,a,s,e)})}function bd(){const t=new Map;function r(o,h){const c=()=>{const f=t.get(o);return Array.isArray(f)&&f.push(h)||!1},a=()=>t.set(o,[].concat(h));return t.has(o)&&c()||a()}function e(o,h){const c=()=>{const a=t.get(o);for(const f of a)f.call(null,...h)};return t.has(o)&&c()}function n(o,h){const c=()=>{const a=t.get(o),f=a.indexOf(h);return f>=0&&a.splice(f,1)&&t.get(o).length===0&&t.delete(o)};return t.has(o)&&c()}function i(o,h){const c=(...a)=>{h.call(null,...a),n(o,c)};return r(o,c)}function s(){t.clear()}return{get current(){return t},on:r,once:i,fire:e,removeListener:n,removeAllListeners:s}}const Je="x-spreadsheet";class Il{constructor(r=!1,e){this.moving=!1,this.vertical=r,this.el=He("div",`${Je}-resizer ${r?"vertical":"horizontal"}`).children(this.unhideHoverEl=He("div",`${Je}-resizer-hover`).on("dblclick.stop",n=>this.mousedblclickHandler(n)).css("position","absolute").hide(),this.hoverEl=He("div",`${Je}-resizer-hover`).on("mousedown.stop",n=>this.mousedownHandler(n)),this.lineEl=He("div",`${Je}-resizer-line`).hide()).hide(),this.cRect=null,this.finishedFn=null,this.minDistance=e,this.unhideFn=()=>{}}showUnhide(r){this.unhideIndex=r,this.unhideHoverEl.show()}hideUnhide(){this.unhideHoverEl.hide()}show(r,e){const{moving:n,vertical:i,hoverEl:s,lineEl:o,el:h,unhideHoverEl:c}=this;if(n)return;this.cRect=r;const{left:a,top:f,width:l,height:u}=r;h.offset({left:i?a+l-5:a,top:i?f:f+u-5}).show(),s.offset({width:i?5:l,height:i?u:5}),o.offset({width:i?0:e.width,height:i?e.height:0}),c.offset({left:i?5-l:a,top:i?f:5-u,width:i?5:l,height:i?u:5})}hide(){this.el.offset({left:0,top:0}).hide(),this.hideUnhide()}mousedblclickHandler(){this.unhideIndex&&this.unhideFn(this.unhideIndex)}mousedownHandler(r){let e=r;const{el:n,lineEl:i,cRect:s,vertical:o,minDistance:h}=this;let c=o?s.width:s.height;i.show(),vh(window,a=>{this.moving=!0,e!==null&&a.buttons===1&&(o?(c+=a.movementX,c>h&&n.css("left",`${s.left+c}px`)):(c+=a.movementY,c>h&&n.css("top",`${s.top+c}px`)),e=a)},()=>{e=null,i.hide(),this.moving=!1,this.hide(),this.finishedFn&&(c{}).on("scroll.stop",e=>{const{scrollTop:n,scrollLeft:i}=e.target;this.moveFn&&this.moveFn(this.vertical?n:i,e)})}move(r){return this.el.scroll(r),this}scroll(){return this.el.scroll()}set(r,e){const n=r-1;if(e>n){const i=this.vertical?"height":"width";this.el.css(i,`${n-15}px`).show(),this.contentEl.css(this.vertical?"width":"height","1px").css(i,`${e}px`)}else this.el.hide();return this}}const Ta=2*2-1;let uf=10;class Sa{constructor(r=!1){this.useHideInput=r,this.inputChange=()=>{},this.cornerEl=He("div",`${Je}-selector-corner`),this.areaEl=He("div",`${Je}-selector-area`).child(this.cornerEl).hide(),this.clipboardEl=He("div",`${Je}-selector-clipboard`).hide(),this.autofillEl=He("div",`${Je}-selector-autofill`).hide(),this.el=He("div",`${Je}-selector`).css("z-index",`${uf}`).children(this.areaEl,this.clipboardEl,this.autofillEl).hide(),r&&(this.hideInput=He("input","").on("compositionend",e=>{this.inputChange(e.target.value)}),this.el.child(this.hideInputDiv=He("div","hide-input").child(this.hideInput)),this.el.child(this.hideInputDiv=He("div","hide-input").child(this.hideInput))),uf+=1}setOffset(r){return this.el.offset(r).show(),this}hide(){return this.el.hide(),this}setAreaOffset(r){const{left:e,top:n,width:i,height:s}=r,o={width:i-Ta+.8,height:s-Ta+.8,left:e-.8,top:n-.8};this.areaEl.offset(o).show(),this.useHideInput&&(this.hideInputDiv.offset(o),this.hideInput.val("").focus())}setClipboardOffset(r){const{left:e,top:n,width:i,height:s}=r;this.clipboardEl.offset({left:e,top:n,width:i-5,height:s-5})}showAutofill(r){const{left:e,top:n,width:i,height:s}=r;this.autofillEl.offset({width:i-Ta,height:s-Ta,left:e,top:n}).show()}hideAutofill(){this.autofillEl.hide()}showClipboard(){this.clipboardEl.show()}hideClipboard(){this.clipboardEl.hide()}}function If(t){const{data:r}=this,{left:e,top:n,width:i,height:s,scroll:o,l:h,t:c}=t,a=r.freezeTotalWidth(),f=r.freezeTotalHeight();let l=e-a;a>h&&(l-=o.x);let u=n-f;return f>c&&(u-=o.y),{left:l,top:u,width:i,height:s}}function Df(t){const{data:r}=this,{left:e,width:n,height:i,l:s,t:o,scroll:h}=t,c=r.freezeTotalWidth();let a=e-c;return c>s&&(a-=h.x),{left:a,top:o,width:n,height:i}}function Nf(t){const{data:r}=this,{top:e,width:n,height:i,l:s,t:o,scroll:h}=t,c=r.freezeTotalHeight();let a=e-c;return c>o&&(a-=h.y),{left:s,top:a,width:n,height:i}}function df(t){const{br:r}=this;r.setAreaOffset(If.call(this,t))}function wd(t){const{tl:r}=this;r.setAreaOffset(t)}function xh(t){const{t:r}=this;r.setAreaOffset(Df.call(this,t))}function bh(t){const{l:r}=this;r.setAreaOffset(Nf.call(this,t))}function wh(t){const{l:r}=this;r.setClipboardOffset(Nf.call(this,t))}function pf(t){const{br:r}=this;r.setClipboardOffset(If.call(this,t))}function yd(t){const{tl:r}=this;r.setClipboardOffset(t)}function yh(t){const{t:r}=this;r.setClipboardOffset(Df.call(this,t))}function Nl(t){df.call(this,t),wd.call(this,t),xh.call(this,t),bh.call(this,t)}function Pl(t){pf.call(this,t),yd.call(this,t),yh.call(this,t),wh.call(this,t)}class _d{constructor(r){this.inputChange=()=>{},this.data=r,this.br=new Sa(!0),this.t=new Sa,this.l=new Sa,this.tl=new Sa,this.br.inputChange=e=>{this.inputChange(e)},this.br.el.show(),this.offset=null,this.areaOffset=null,this.indexes=null,this.range=null,this.arange=null,this.el=He("div",`${Je}-selectors`).children(this.tl.el,this.t.el,this.l.el,this.br.el).hide(),this.lastri=-1,this.lastci=-1,uf+=1}resetData(r){this.data=r,this.range=r.selector.range,this.resetAreaOffset()}hide(){this.el.hide()}resetOffset(){const{data:r,tl:e,t:n,l:i,br:s}=this,o=r.freezeTotalHeight(),h=r.freezeTotalWidth();o>0||h>0?(e.setOffset({width:h,height:o}),n.setOffset({left:h,height:o}),i.setOffset({top:o,width:h}),s.setOffset({left:h,top:o})):(e.hide(),n.hide(),i.hide(),s.setOffset({left:0,top:0}))}resetAreaOffset(){const r=this.data.getSelectedRect(),e=this.data.getClipboardRect();Nl.call(this,r),Pl.call(this,e),this.resetOffset()}resetBRTAreaOffset(){const r=this.data.getSelectedRect(),e=this.data.getClipboardRect();df.call(this,r),xh.call(this,r),pf.call(this,e),yh.call(this,e),this.resetOffset()}resetBRLAreaOffset(){const r=this.data.getSelectedRect(),e=this.data.getClipboardRect();df.call(this,r),bh.call(this,r),pf.call(this,e),wh.call(this,e),this.resetOffset()}set(r,e,n=!0){const{data:i}=this,s=i.calSelectedRangeByStart(r,e),{sri:o,sci:h}=s;if(n){let[c,a]=[r,e];r<0&&(c=0),e<0&&(a=0),i.selector.setIndexes(c,a),this.indexes=[c,a]}this.moveIndexes=[o,h],this.range=s,this.resetAreaOffset(),this.el.show()}setEnd(r,e,n=!0){const{data:i,lastri:s,lastci:o}=this;if(n){if(r===s&&e===o)return;this.lastri=r,this.lastci=e}this.range=i.calSelectedRangeByEnd(r,e),Nl.call(this,this.data.getSelectedRect())}reset(){const{eri:r,eci:e}=this.data.selector.range;this.setEnd(r,e)}showAutofill(r,e){if(r===-1&&e===-1)return;const{sri:n,sci:i,eri:s,eci:o}=this.range,[h,c]=[r,e],a=n-r,f=i-e,l=s-r,u=o-e;if(f>0)this.arange=new ar(n,c,s,i-1);else if(a>0)this.arange=new ar(h,i,n-1,o);else if(u<0)this.arange=new ar(n,o+1,s,c);else if(l<0)this.arange=new ar(s+1,i,h,o);else{this.arange=null;return}if(this.arange!==null){const p=this.data.getRect(this.arange);p.width+=2,p.height+=2;const{br:m,l:d,t:v,tl:x}=this;m.showAutofill(If.call(this,p)),d.showAutofill(Nf.call(this,p)),v.showAutofill(Df.call(this,p)),x.showAutofill(p)}}hideAutofill(){["br","l","t","tl"].forEach(r=>{this[r].hideAutofill()})}showClipboard(){const r=this.data.getClipboardRect();Pl.call(this,r),["br","l","t","tl"].forEach(e=>{this[e].showClipboard()})}hideClipboard(){["br","l","t","tl"].forEach(r=>{this[r].hideClipboard()})}}function Ed(t){t.preventDefault(),t.stopPropagation();const{filterItems:r}=this;r.length<=0||(this.itemIndex>=0&&r[this.itemIndex].toggle(),this.itemIndex-=1,this.itemIndex<0&&(this.itemIndex=r.length-1),r[this.itemIndex].toggle())}function Td(t){t.stopPropagation();const{filterItems:r}=this;r.length<=0||(this.itemIndex>=0&&r[this.itemIndex].toggle(),this.itemIndex+=1,this.itemIndex>r.length-1&&(this.itemIndex=0),r[this.itemIndex].toggle())}function Bl(t){t.preventDefault();const{filterItems:r}=this;r.length<=0||(t.stopPropagation(),this.itemIndex<0&&(this.itemIndex=0),r[this.itemIndex].el.click(),this.hide())}function Sd(t){const{keyCode:r}=t;switch(t.ctrlKey&&t.stopPropagation(),r){case 37:t.stopPropagation();break;case 38:Ed.call(this,t);break;case 39:t.stopPropagation();break;case 40:Td.call(this,t);break;case 13:Bl.call(this,t);break;case 9:Bl.call(this,t);break;default:t.stopPropagation();break}}class _h{constructor(r,e,n="200px"){this.filterItems=[],this.items=r,this.el=He("div",`${Je}-suggest`).css("width",n).hide(),this.itemClick=e,this.itemIndex=-1}setOffset(r){this.el.cssRemoveKeys("top","bottom").offset(r)}hide(){const{el:r}=this;this.filterItems=[],this.itemIndex=-1,r.hide(),ms(this.el.parent())}setItems(r){this.items=r}search(r){let{items:e}=this;if(/^\s*$/.test(r)||(e=e.filter(i=>(i.key||i).startsWith(r.toUpperCase()))),e=e.map(i=>{let{title:s}=i;s?typeof s=="function"&&(s=s()):s=i;const o=He("div",`${Je}-item`).child(s).on("click.stop",()=>{this.itemClick(i),this.hide()});return i.label&&o.child(He("div","label").html(i.label)),o}),this.filterItems=e,e.length<=0)return;const{el:n}=this;n.html("").children(...e).show(),Js(n.parent(),()=>{this.hide()})}bindInputEvents(r){r.on("keydown",e=>Sd.call(this,e))}}class Br extends Bi{constructor(r){super("div",`${Je}-icon`),this.iconNameEl=He("div",`${Je}-icon-img ${r}`),this.child(this.iconNameEl)}setName(r){this.iconNameEl.className(`${Je}-icon-img ${r}`)}}function Ll(t,r){t.setMonth(t.getMonth()+r)}function kd(t,r){const e=new Date(t);return e.setDate(r-t.getDay()+1),e}function Cd(t,r,e){const n=new Date(t,r,1,23,59,59),i=[[],[],[],[],[],[]];for(let s=0;s<6;s+=1)for(let o=0;o<7;o+=1){const h=s*7+o,c=kd(n,h),a=c.getMonth()!==r,f=c.getMonth()===e.getMonth()&&c.getDate()===e.getDate();i[s][o]={d:c,disabled:a,active:f}}return i}class Ad{constructor(r){this.value=r,this.cvalue=new Date(r),this.headerLeftEl=He("div","calendar-header-left"),this.bodyEl=He("tbody",""),this.buildAll(),this.el=He("div","x-spreadsheet-calendar").children(He("div","calendar-header").children(this.headerLeftEl,He("div","calendar-header-right").children(He("a","calendar-prev").on("click.stop",()=>this.prev()).child(new Br("chevron-left")),He("a","calendar-next").on("click.stop",()=>this.next()).child(new Br("chevron-right")))),He("table","calendar-body").children(He("thead","").child(He("tr","").children(...ur("calendar.weeks").map(e=>He("th","cell").child(e)))),this.bodyEl)),this.selectChange=()=>{}}setValue(r){this.value=r,this.cvalue=new Date(r),this.buildAll()}prev(){const{value:r}=this;Ll(r,-1),this.buildAll()}next(){const{value:r}=this;Ll(r,1),this.buildAll()}buildAll(){this.buildHeaderLeft(),this.buildBody()}buildHeaderLeft(){const{value:r}=this;this.headerLeftEl.html(`${ur("calendar.months")[r.getMonth()]} ${r.getFullYear()}`)}buildBody(){const{value:r,cvalue:e,bodyEl:n}=this,s=Cd(r.getFullYear(),r.getMonth(),e).map(o=>{const h=o.map(c=>{let a="cell";return c.disabled&&(a+=" disabled"),c.active&&(a+=" active"),He("td","").child(He("div",a).on("click.stop",()=>{this.selectChange(c.d)}).child(c.d.getDate().toString()))});return He("tr","").children(...h)});n.html("").children(...s)}}class Fd{constructor(){this.calendar=new Ad(new Date),this.el=He("div",`${Je}-datepicker`).child(this.calendar.el).hide()}setValue(r){const{calendar:e}=this;return typeof r=="string"?/^\d{4}-\d{1,2}-\d{1,2}$/.test(r)&&e.setValue(new Date(r.replace(new RegExp("-","g"),"/"))):r instanceof Date&&e.setValue(r),this}change(r){this.calendar.selectChange=e=>{r(e),this.hide()}}show(){this.el.show()}hide(){this.el.hide()}}function Ka(){const{inputText:t}=this;if(!/^\s*$/.test(t)){const{textlineEl:r,textEl:e,areaOffset:n}=this,i=t.split(` +`),s=Math.max(...i.map(l=>l.length)),h=r.offset().width/t.length,c=(s+1)*h+5,a=this.viewFn().width-n.left-h;let f=i.length;if(c>n.width){let l=c;c>a&&(l=a,f+=parseInt(c/a,10),f+=c%a>0?1:0),e.css("width",`${l}px`)}f*=this.rowHeight,f>n.height&&e.css("height",`${f}px`)}}function Rd({target:t},r){const{value:e,selectionEnd:n}=t,i=`${e.slice(0,n)}${r}${e.slice(n)}`;t.value=i,t.setSelectionRange(n+1,n+1),this.inputText=i,this.textlineEl.html(i),Ka.call(this)}function Md(t){const{keyCode:r,altKey:e}=t;r!==13&&r!==9&&t.stopPropagation(),r===13&&e&&(Rd.call(this,t,` +`),t.stopPropagation()),r===13&&!e&&t.preventDefault()}function Od(t){const r=t.target.value,{suggest:e,textlineEl:n,validator:i}=this,{cell:s}=this;if(s!==null)if("editable"in s&&s.editable===!0||s.editable===void 0){if(this.inputText=r,i)i.type==="list"?e.search(r):e.hide();else{const o=r.lastIndexOf("=");o!==-1?e.search(r.substring(o+1)):e.hide()}n.html(r),Ka.call(this),this.change("input",r)}else t.target.value=s.text;else{if(this.inputText=r,i)i.type==="list"?e.search(r):e.hide();else{const o=r.lastIndexOf("=");o!==-1?e.search(r.substring(o+1)):e.hide()}n.html(r),Ka.call(this),this.change("input",r)}}function Id(t){const{el:r}=this.textEl;setTimeout(()=>{r.focus(),r.setSelectionRange(t,t)},0)}function Eh(t,r){const{textEl:e,textlineEl:n}=this;e.el.blur(),e.val(t),n.html(t),Id.call(this,r)}function Dd(t){const{inputText:r,validator:e}=this;let n=0;if(e&&e.type==="list")this.inputText=t,n=this.inputText.length;else{const i=r.lastIndexOf("="),s=r.substring(0,i+1);let o=r.substring(i+1);o.indexOf(")")!==-1?o=o.substring(o.indexOf(")")):o="",this.inputText=`${s+t.key}(`,n=this.inputText.length,this.inputText+=`)${o}`}Eh.call(this,this.inputText,n)}function Nd(){this.suggest.setItems(this.formulas)}function Pd(t){let r=t.getMonth()+1,e=t.getDate();return r<10&&(r=`0${r}`),e<10&&(e=`0${e}`),`${t.getFullYear()}-${r}-${e}`}class Bd{constructor(r,e,n){this.viewFn=e,this.rowHeight=n,this.formulas=r,this.suggest=new _h(r,i=>{Dd.call(this,i)}),this.datepicker=new Fd,this.datepicker.change(i=>{this.setText(Pd(i)),this.clear()}),this.areaEl=He("div",`${Je}-editor-area`).children(this.textEl=He("textarea","").on("input",i=>Od.call(this,i)).on("paste.stop",()=>{}).on("keydown",i=>Md.call(this,i)),this.textlineEl=He("div","textline"),this.suggest.el,this.datepicker.el).on("mousemove.stop",()=>{}).on("mousedown.stop",()=>{}),this.el=He("div",`${Je}-editor`).child(this.areaEl).hide(),this.suggest.bindInputEvents(this.textEl),this.areaOffset=null,this.freeze={w:0,h:0},this.cell=null,this.inputText="",this.change=()=>{}}setFreezeLengths(r,e){this.freeze.w=r,this.freeze.h=e}clear(){this.inputText!==""&&this.change("finished",this.inputText),this.cell=null,this.areaOffset=null,this.inputText="",this.el.hide(),this.textEl.val(""),this.textlineEl.html(""),Nd.call(this),this.datepicker.hide()}setOffset(r,e="top"){const{textEl:n,areaEl:i,suggest:s,freeze:o,el:h}=this;if(r){this.areaOffset=r;const{left:c,top:a,width:f,height:l,l:u,t:p}=r,m={left:0,top:0};o.w>u&&o.h>p||(o.wu?m.top=o.h:o.h>p&&(m.left=o.w)),h.offset(m),i.offset({left:c-m.left-.8,top:a-m.top-.8}),n.offset({width:f-9+.8,height:l-3+.8});const d={left:0};d[e]=l,s.setOffset(d),s.hide()}}setCell(r,e){const{el:n,datepicker:i,suggest:s}=this;n.show(),this.cell=r;const o=r&&r.text||"";if(this.setText(o),this.validator=e,e){const{type:h}=e;h==="date"&&(i.show(),/^\s*$/.test(o)||i.setValue(o)),h==="list"&&(s.setItems(e.values()),s.search(""))}}setText(r){this.inputText=r,Eh.call(this,r,r.length),Ka.call(this)}}class Mi extends Bi{constructor(r,e=""){super("div",`${Je}-button ${e}`),this.child(ur(`button.${r}`))}}function Ya(){return window.devicePixelRatio||1}function Pf(){return Ya()-.5}function _t(t){return parseInt(t*Ya(),10)}function es(t){const r=_t(t);return r>0?r-.5:.5}class Ld{constructor(r,e,n,i,s=0){this.x=r,this.y=e,this.width=n,this.height=i,this.padding=s,this.bgcolor="#ffffff",this.borderTop=null,this.borderRight=null,this.borderBottom=null,this.borderLeft=null}setBorders({top:r,bottom:e,left:n,right:i}){r&&(this.borderTop=r),i&&(this.borderRight=i),e&&(this.borderBottom=e),n&&(this.borderLeft=n)}innerWidth(){return this.width-this.padding*2-2}innerHeight(){return this.height-this.padding*2-2}textx(r){const{width:e,padding:n}=this;let{x:i}=this;return r==="left"?i+=n:r==="center"?i+=e/2:r==="right"&&(i+=e-n),i}texty(r,e){const{height:n,padding:i}=this;let{y:s}=this;return r==="top"?s+=i:r==="middle"?s+=n/2-e/2:r==="bottom"&&(s+=n-i-e),s}topxys(){const{x:r,y:e,width:n}=this;return[[r,e],[r+n,e]]}rightxys(){const{x:r,y:e,width:n,height:i}=this;return[[r+n,e],[r+n,e+i]]}bottomxys(){const{x:r,y:e,width:n,height:i}=this;return[[r,e+i],[r+n,e+i]]}leftxys(){const{x:r,y:e,height:n}=this;return[[r,e],[r,e+n]]}}function jl(t,r,e,n,i,s,o){const h={x:0,y:0};t==="underline"?i==="bottom"?h.y=0:i==="top"?h.y=-(s+2):h.y=-s/2:t==="strike"&&(i==="bottom"?h.y=s/2:i==="top"&&(h.y=-(s/2+2))),n==="center"?h.x=o/2:n==="right"&&(h.x=o),this.line([r-h.x,e-h.y],[r-h.x+o,e-h.y])}class Th{constructor(r,e,n){this.el=r,this.ctx=r.getContext("2d"),this.resize(e,n),this.ctx.scale(Ya(),Ya())}resize(r,e){this.el.style.width=`${r}px`,this.el.style.height=`${e}px`,this.el.width=_t(r),this.el.height=_t(e)}clear(){const{width:r,height:e}=this.el;return this.ctx.clearRect(0,0,r,e),this}attr(r){return Object.assign(this.ctx,r),this}save(){return this.ctx.save(),this.ctx.beginPath(),this}restore(){return this.ctx.restore(),this}beginPath(){return this.ctx.beginPath(),this}translate(r,e){return this.ctx.translate(_t(r),_t(e)),this}scale(r,e){return this.ctx.scale(r,e),this}clearRect(r,e,n,i){return this.ctx.clearRect(r,e,n,i),this}fillRect(r,e,n,i){return this.ctx.fillRect(_t(r)-.5,_t(e)-.5,_t(n),_t(i)),this}fillText(r,e,n){return this.ctx.fillText(r,_t(e),_t(n)),this}text(r,e,n={},i=!0){const{ctx:s}=this,{align:o,valign:h,font:c,color:a,strike:f,underline:l}=n,u=e.textx(o);s.save(),s.beginPath(),this.attr({textAlign:o,textBaseline:h,font:`${c.italic?"italic":""} ${c.bold?"bold":""} ${_t(c.size)}px ${c.name}`,fillStyle:a,strokeStyle:a});const p=`${r}`.split(` +`),m=e.innerWidth(),d=[];p.forEach(g=>{const b=s.measureText(g).width;if(i&&b>_t(m)){let w={w:0,len:0,start:0};for(let y=0;y=_t(m)&&(d.push(g.substr(w.start,w.len)),w={w:0,len:0,start:y}),w.len+=1,w.w+=s.measureText(g[y]).width+1;w.len>0&&d.push(g.substr(w.start,w.len))}else d.push(g)});const v=(d.length-1)*(c.size+2);let x=e.texty(h,v);return d.forEach(g=>{const b=s.measureText(g).width;this.fillText(g,u,x),f&&jl.call(this,"strike",u,x,o,h,c.size,b),l&&jl.call(this,"underline",u,x,o,h,c.size,b),x+=c.size+2}),s.restore(),this}border(r,e){const{ctx:n}=this;return n.lineWidth=Pf,n.strokeStyle=e,r==="medium"?n.lineWidth=_t(2)-.5:r==="thick"?n.lineWidth=_t(3):r==="dashed"?n.setLineDash([_t(3),_t(2)]):r==="dotted"?n.setLineDash([_t(1),_t(1)]):r==="double"&&n.setLineDash([_t(2),0]),this}line(...r){const{ctx:e}=this;if(r.length>1){e.beginPath();const[n,i]=r[0];e.moveTo(es(n),es(i));for(let s=1;s{const r=[],e=[];let n=[],i=0,s="",o=1,h="";for(let c=0;c="a"&&a<="z")n.push(a.toUpperCase());else if(a>="0"&&a<="9"||a>="A"&&a<="Z"||a===".")n.push(a);else if(a==='"'){for(c+=1;t.charAt(c)!=='"';)n.push(t.charAt(c)),c+=1;e.push(`"${n.join("")}`),n=[]}else if(a==="-"&&/[+\-*/,(]/.test(h))n.push(a);else{if(a!=="("&&n.length>0&&e.push(n.join("")),a===")"){let f=r.pop();if(i===2)try{const[l,u]=di(e.pop()),[p,m]=di(e.pop());let d=0;for(let v=p;v<=l;v+=1)for(let x=m;x<=u;x+=1)e.push(Yn(v,x)),d+=1;e.push([f,d])}catch{}else if(i===1||i===3)i===3&&e.push(s),e.push([f,o]),o=1;else for(;f!=="("&&(e.push(f),!(r.length<=0));)f=r.pop();i=0}else if(a==="="||a===">"||a==="<"){const f=t.charAt(c+1);s=a,(f==="="||f==="-")&&(s+=f,c+=1),i=3}else if(a===":")i=2;else if(a===",")i===3&&e.push(s),i=1,o+=1;else if(a==="("&&n.length>0)r.push(n.join(""));else{if(r.length>0&&(a==="+"||a==="-")){let f=r[r.length-1];if(f!=="("&&e.push(r.pop()),f==="*"||f==="/")for(;r.length>0&&(f=r[r.length-1],f!=="(");)e.push(r.pop())}else if(r.length>0){const f=r[r.length-1];(f==="*"||f==="/")&&e.push(r.pop())}r.push(a)}n=[]}h=a}}for(n.length>0&&e.push(n.join(""));r.length>0;)e.push(r.pop());return e},Hd=(t,r)=>{const[e]=t;let n=t;if(e==='"')return t.substring(1);let i=1;if(e==="-"&&(n=t.substring(1),i=-1),n[0]>="0"&&n[0]<="9")return i*Number(n);const[s,o]=di(n);return i*r(s,o)},zd=(t,r,e,n)=>{const i=[];for(let s=0;s"||h==="<"){let c=i.pop();Number.isNaN(c)||(c=Number(c));let a=i.pop();Number.isNaN(a)||(a=Number(a));let f=!1;h==="="?f=a===c:o===">"?f=a>c:o===">="?f=a>=c:o==="<"?f=a="a"&&h<="z"||h>="A"&&h<="Z")&&n.push(o),i.push(Hd(o,e)),n.pop()}}return i[0]},Sh=(t,r,e,n=[])=>{if(t[0]==="="){const i=Ud(t.substring(1));return i.length<=0?t:zd(i,r,(s,o)=>Sh(e(s,o),r,e,n),n)}return t},$d={render:Sh},Bf=[{key:"SUM",title:Dt("formula.sum"),render:t=>t.reduce((r,e)=>Ai("+",r,e),0)},{key:"AVERAGE",title:Dt("formula.average"),render:t=>t.reduce((r,e)=>Number(r)+Number(e),0)/t.length},{key:"MAX",title:Dt("formula.max"),render:t=>Math.max(...t.map(r=>Number(r)))},{key:"MIN",title:Dt("formula.min"),render:t=>Math.min(...t.map(r=>Number(r)))},{key:"IF",title:Dt("formula._if"),render:([t,r,e])=>t?r:e},{key:"AND",title:Dt("formula.and"),render:t=>t.every(r=>r)},{key:"OR",title:Dt("formula.or"),render:t=>t.some(r=>r)},{key:"CONCAT",title:Dt("formula.concat"),render:t=>t.join("")}],Wd=Bf,kh={};Bf.forEach(t=>{kh[t.key]=t});const ts=t=>t,ka=t=>{if(/^(-?\d*.?\d*)$/.test(t)){const r=Number(t).toFixed(2).toString(),[e,...n]=r.split("\\.");return[e.replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,"),...n]}return t},Es=[{key:"normal",title:Dt("format.normal"),type:"string",render:ts},{key:"text",title:Dt("format.text"),type:"string",render:ts},{key:"number",title:Dt("format.number"),type:"number",label:"1,000.12",render:ka},{key:"percent",title:Dt("format.percent"),type:"number",label:"10.12%",render:t=>`${t}%`},{key:"rmb",title:Dt("format.rmb"),type:"number",label:"¥10.00",render:t=>`¥${ka(t)}`},{key:"usd",title:Dt("format.usd"),type:"number",label:"$10.00",render:t=>`$${ka(t)}`},{key:"eur",title:Dt("format.eur"),type:"number",label:"€10.00",render:t=>`€${ka(t)}`},{key:"date",title:Dt("format.date"),type:"date",label:"26/09/2008",render:ts},{key:"time",title:Dt("format.time"),type:"date",label:"15:59:00",render:ts},{key:"datetime",title:Dt("format.datetime"),type:"date",label:"26/09/2008 15:59:00",render:ts},{key:"duration",title:Dt("format.duration"),type:"date",label:"24:01:00",render:ts}],Ch={};Es.forEach(t=>{Ch[t.key]=t});const Xd=5,Vd={fillStyle:"#f4f5f8"},Gd={fillStyle:"#fff",lineWidth:Pf,strokeStyle:"#e6e6e6"};function Kd(){return{textAlign:"center",textBaseline:"middle",font:`500 ${_t(12)}px Source Sans Pro`,fillStyle:"#585757",lineWidth:Pf(),strokeStyle:"#e6e6e6"}}function Ah(t,r,e,n=0){const{left:i,top:s,width:o,height:h}=t.cellRect(r,e);return new Ld(i,s+n,o,h,Xd)}function Za(t,r,e,n,i=0){const{sortedRowMap:s,rows:o,cols:h}=r;if(o.isHide(e)||h.isHide(n))return;let c=e;s.has(e)&&(c=s.get(e));const a=r.getCell(c,n);if(a===null)return;let f=!1;"editable"in a&&a.editable===!1&&(f=!0);const l=r.getCellStyleOrDefault(c,n),u=Ah(r,e,n,i);u.bgcolor=l.bgcolor,l.border!==void 0&&(u.setBorders(l.border),t.strokeBorders(u)),t.rect(u,()=>{let p="";r.settings.evalPaused?p=a.text||"":p=$d.render(a.text||"",kh,(v,x)=>r.getCellTextOrDefault(x,v)),l.format&&(p=Ch[l.format].render(p));const m=Object.assign({},l.font);m.size=jd(m.size),t.text(p,u,{align:l.align,valign:l.valign,font:m,color:l.color,strike:l.strike,underline:l.underline},l.textwrap),r.validations.getError(e,n)&&t.error(u),f&&t.frozen(u)})}function Yd(t){const{data:r,draw:e}=this;if(t){const{autoFilter:n}=r;if(!n.active())return;const i=n.hrange();t.intersects(i)&&i.each((s,o)=>{const h=Ah(r,s,o);e.dropdown(h)})}}function Ca(t,r,e,n,i){const{draw:s,data:o}=this;s.save(),s.translate(r,e).translate(n,i);const{exceptRowSet:h}=o,c=l=>{const u=h.has(l);if(u){const p=o.rows.getHeight(l);s.translate(0,-p)}return!u},a=o.exceptRowTotalHeight(t.sri,t.eri);s.save(),s.translate(0,-a),t.each((l,u)=>{Za(s,o,l,u)},l=>c(l)),s.restore();const f=new Set;s.save(),s.translate(0,-a),o.eachMergesInView(t,({sri:l,sci:u,eri:p})=>{if(!h.has(l))Za(s,o,l,u);else if(!f.has(l)){f.add(l);const m=o.rows.sumHeight(l,p+1);s.translate(0,-m)}}),s.restore(),Yd.call(this,t),s.restore()}function Hl(t,r,e,n){const{draw:i}=this;i.save(),i.attr({fillStyle:"rgba(75, 137, 255, 0.08)"}).fillRect(t,r,e,n),i.restore()}function Aa(t,r,e,n,i,s){const{draw:o,data:h}=this,c=r.h,a=r.w,f=s+n,l=i+e;o.save(),o.attr(Vd),(t==="all"||t==="left")&&o.fillRect(0,f,e,c),(t==="all"||t==="top")&&o.fillRect(l,0,a,n);const{sri:u,sci:p,eri:m,eci:d}=h.selector.range;o.attr(Kd()),(t==="all"||t==="left")&&(h.rowEach(r.sri,r.eri,(v,x,g)=>{const b=f+x,w=v;o.line([0,b],[e,b]),u<=w&&w0&&h.rows.isHide(v-1)&&(o.save(),o.attr({strokeStyle:"#c6c6c6"}),o.line([5,b+5],[e-5,b+5]),o.restore())}),o.line([0,c+f],[e,c+f]),o.line([e,f],[e,c+f])),(t==="all"||t==="top")&&(h.colEach(r.sci,r.eci,(v,x,g)=>{const b=l+x,w=v;o.line([b,0],[b,n]),p<=w&&w0&&h.cols.isHide(v-1)&&(o.save(),o.attr({strokeStyle:"#c6c6c6"}),o.line([b+5,5],[b+5,n-5]),o.restore())}),o.line([a+l,0],[a+l,n]),o.line([0,n],[a+l,n])),o.restore()}function Zd(t,r){const{draw:e}=this;e.save(),e.attr({fillStyle:"#f4f5f8"}).fillRect(0,0,t,r),e.restore()}function Fa({sri:t,sci:r,eri:e,eci:n,w:i,h:s},o,h,c,a){const{draw:f,data:l}=this,{settings:u}=l;if(f.save(),f.attr(Gd).translate(o+c,h+a),!u.showGrid){f.restore();return}l.rowEach(t,e,(p,m,d)=>{p!==t&&f.line([0,m],[i,m]),p===e&&f.line([0,m+d],[i,m+d])}),l.colEach(r,n,(p,m,d)=>{p!==r&&f.line([m,0],[m,s]),p===n&&f.line([m+d,0],[m+d,s])}),f.restore()}function Jd(t,r,e,n){const{draw:i,data:s}=this,o=s.viewWidth()-t,h=s.viewHeight()-r;i.save().translate(t,r).attr({strokeStyle:"rgba(75, 137, 255, .6)"}),i.line([0,n],[o,n]),i.line([e,0],[e,h]),i.restore()}class Qd{constructor(r,e){this.el=r,this.draw=new Th(r,e.viewWidth(),e.viewHeight()),this.data=e}resetData(r){this.data=r,this.render()}render(){const{data:r}=this,{rows:e,cols:n}=r,i=n.indexWidth,s=e.height;this.draw.resize(r.viewWidth(),r.viewHeight()),this.clear();const o=r.viewRange(),h=r.freezeTotalWidth(),c=r.freezeTotalHeight(),{x:a,y:f}=r.scroll;Fa.call(this,o,i,s,h,c),Ca.call(this,o,i,s,-a,-f),Aa.call(this,"all",o,i,s,h,c),Zd.call(this,i,s);const[l,u]=r.freeze;if(l>0||u>0){if(l>0){const m=o.clone();m.sri=0,m.eri=l-1,m.h=c,Fa.call(this,m,i,s,h,0),Ca.call(this,m,i,s,-a,0),Aa.call(this,"top",m,i,s,h,0)}if(u>0){const m=o.clone();m.sci=0,m.eci=u-1,m.w=h,Fa.call(this,m,i,s,0,c),Aa.call(this,"left",m,i,s,0,c),Ca.call(this,m,i,s,0,-f)}const p=r.freezeViewRange();Fa.call(this,p,i,s,0,0),Aa.call(this,"all",p,i,s,0,0),Ca.call(this,p,i,s,0,0),Jd.call(this,i,s,h,c)}}clear(){this.draw.clear()}}const Ha=[["A3",11.69,16.54],["A4",8.27,11.69],["A5",5.83,8.27],["B4",9.84,13.9],["B5",6.93,9.84]],gf=["landscape","portrait"];function Ja(t){return parseInt(96*t,10)}function zl(t){t==="cancel"?this.el.hide():this.toPrint()}function qd(t){const{paper:r}=this,{value:e}=t.target,n=Ha[e];r.w=Ja(n[1]),r.h=Ja(n[2]),this.preview()}function ep(t){const{paper:r}=this,{value:e}=t.target,n=gf[e];r.orientation=n,this.preview()}let tp=class{constructor(r){this.paper={w:Ja(Ha[0][1]),h:Ja(Ha[0][2]),padding:50,orientation:gf[0],get width(){return this.orientation==="landscape"?this.h:this.w},get height(){return this.orientation==="landscape"?this.w:this.h}},this.data=r,this.el=He("div",`${Je}-print`).children(He("div",`${Je}-print-bar`).children(He("div","-title").child("Print settings"),He("div","-right").children(He("div",`${Je}-buttons`).children(new Mi("cancel").on("click",zl.bind(this,"cancel")),new Mi("next","primary").on("click",zl.bind(this,"next"))))),He("div",`${Je}-print-content`).children(this.contentEl=He("div","-content"),He("div","-sider").child(He("form","").children(He("fieldset","").children(He("label","").child(`${ur("print.size")}`),He("select","").children(...Ha.map((e,n)=>He("option","").attr("value",n).child(`${e[0]} ( ${e[1]}''x${e[2]}'' )`))).on("change",qd.bind(this))),He("fieldset","").children(He("label","").child(`${ur("print.orientation")}`),He("select","").children(...gf.map((e,n)=>He("option","").attr("value",n).child(`${ur("print.orientations")[n]}`))).on("change",ep.bind(this))))))).hide()}resetData(r){this.data=r}preview(){const{data:r,paper:e}=this,{width:n,height:i,padding:s}=e,o=n-s*2,h=i-s*2,c=r.contentRange(),a=parseInt(c.h/h,10)+1,f=o/c.w;let l=s;const u=s;f>1&&(l+=(o-c.w)/2);let p=0,m=0;this.contentEl.html(""),this.canvases=[];const d={sri:0,sci:0,eri:0,eci:0};for(let v=0;v{Za(y,r,C,M,T)}),y.restore(),d.sri=d.eri,d.sci=d.eci,m+=g,this.contentEl.child(He("div",`${Je}-canvas-card-wraper`).child(b.child(w)))}this.el.show()}toPrint(){this.el.hide();const{paper:r}=this,e=He("iframe","").hide(),{el:n}=e;window.document.body.appendChild(n);const{contentWindow:i}=n,s=i.document,o=document.createElement("style");o.innerHTML=` + @page { size: ${r.width}px ${r.height}px; }; + canvas { + page-break-before: auto; + page-break-after: always; + image-rendering: pixelated; + }; + `,s.head.appendChild(o),this.canvases.forEach(h=>{const c=h.cloneNode(!1);c.getContext("2d").drawImage(h,0,0),s.body.appendChild(c)}),i.print()}};const rp=[{key:"copy",title:Dt("contextmenu.copy"),label:"Ctrl+C"},{key:"cut",title:Dt("contextmenu.cut"),label:"Ctrl+X"},{key:"paste",title:Dt("contextmenu.paste"),label:"Ctrl+V"},{key:"paste-value",title:Dt("contextmenu.pasteValue"),label:"Ctrl+Shift+V"},{key:"paste-format",title:Dt("contextmenu.pasteFormat"),label:"Ctrl+Alt+V"},{key:"divider"},{key:"insert-row",title:Dt("contextmenu.insertRow")},{key:"insert-column",title:Dt("contextmenu.insertColumn")},{key:"divider"},{key:"delete-row",title:Dt("contextmenu.deleteRow")},{key:"delete-column",title:Dt("contextmenu.deleteColumn")},{key:"delete-cell-text",title:Dt("contextmenu.deleteCellText")},{key:"hide",title:Dt("contextmenu.hide")},{key:"divider"},{key:"validation",title:Dt("contextmenu.validation")},{key:"divider"},{key:"cell-printable",title:Dt("contextmenu.cellprintable")},{key:"cell-non-printable",title:Dt("contextmenu.cellnonprintable")},{key:"divider"},{key:"cell-editable",title:Dt("contextmenu.celleditable")},{key:"cell-non-editable",title:Dt("contextmenu.cellnoneditable")}];function np(t){return t.key==="divider"?He("div",`${Je}-item divider`):He("div",`${Je}-item`).on("click",()=>{this.itemClick(t.key),this.hide()}).children(t.title(),He("div","label").child(t.label||""))}function ip(){return rp.map(t=>np.call(this,t))}let sp=class{constructor(r,e=!1){this.menuItems=ip.call(this),this.el=He("div",`${Je}-contextmenu`).children(...this.menuItems).hide(),this.viewFn=r,this.itemClick=()=>{},this.isHide=e,this.setMode("range")}setMode(r){const e=this.menuItems[12];r==="row-col"?e.show():e.hide()}hide(){const{el:r}=this;r.hide(),ms(r)}setPosition(r,e){if(this.isHide)return;const{el:n}=this,{width:i}=n.show().offset(),s=this.viewFn(),o=s.height/2;let h=r;s.width-r<=i&&(h-=i),n.css("left",`${h}px`),e>o?n.css("bottom",`${s.height-e}px`).css("max-height",`${e}px`).css("top","auto"):n.css("top",`${e}px`).css("max-height",`${s.height-e}px`).css("bottom","auto"),Js(n)}};function ap(t,r){if(r.classList.contains("active"))return;const{left:e,top:n,width:i,height:s}=r.getBoundingClientRect(),o=He("div",`${Je}-tooltip`).html(t).show();document.body.appendChild(o.el);const h=o.box();o.css("left",`${e+i/2-h.width/2}px`).css("top",`${n+s+2}px`),Zr(r,"mouseleave",()=>{document.body.contains(o.el)&&document.body.removeChild(o.el)}),Zr(r,"click",()=>{document.body.contains(o.el)&&document.body.removeChild(o.el)})}class Lf{constructor(r,e,n){this.tip=ur(`toolbar.${r.replace(/-[a-z]/g,i=>i[1].toUpperCase())}`),e&&(this.tip+=` (${e})`),this.tag=r,this.shortcut=e,this.value=n,this.el=this.element(),this.change=()=>{}}element(){const{tip:r}=this;return He("div",`${Je}-toolbar-btn`).on("mouseenter",e=>{ap(r,e.target)}).attr("data-tooltip",r)}setState(){}}class jn extends Lf{dropdown(){}getValue(r){return r}element(){const{tag:r}=this;return this.dd=this.dropdown(),this.dd.change=e=>this.change(r,this.getValue(e)),super.element().child(this.dd)}setState(r){r&&(this.value=r,this.dd.setTitle(r))}}class Un extends Bi{constructor(r,e,n,i,...s){super("div",`${Je}-dropdown ${i}`),this.title=r,this.change=()=>{},this.headerClick=()=>{},typeof r=="string"?this.title=He("div",`${Je}-dropdown-title`).child(r):n&&this.title.addClass("arrow-left"),this.contentEl=He("div",`${Je}-dropdown-content`).css("width",e).hide(),this.setContentChildren(...s),this.headerEl=He("div",`${Je}-dropdown-header`),this.headerEl.on("click",()=>{this.contentEl.css("display")!=="block"?this.show():this.hide()}).children(this.title,n?He("div",`${Je}-icon arrow-right`).child(He("div",`${Je}-icon-img arrow-down`)):""),this.children(this.headerEl,this.contentEl)}setContentChildren(...r){this.contentEl.html(""),r.length>0&&this.contentEl.children(...r)}setTitle(r){this.title.html(r),this.hide()}show(){const{contentEl:r}=this;r.show(),this.parent().active(),Js(this.parent(),()=>{this.hide()})}hide(){this.parent().active(!1),this.contentEl.hide(),ms(this.parent())}}function op(t){return He("div",`${Je}-item`).child(new Br(t))}class Fh extends Un{constructor(r,e){const n=new Br(`align-${e}`),i=r.map(s=>op(`align-${s}`).on("click",()=>{this.setTitle(s),this.change(s)}));super(n,"auto",!0,"bottom-left",...i)}setTitle(r){this.title.setName(`align-${r}`),this.hide()}}class fp extends jn{constructor(r){super("align","",r)}dropdown(){const{value:r}=this;return new Fh(["left","center","right"],r)}}class lp extends jn{constructor(r){super("valign","",r)}dropdown(){const{value:r}=this;return new Fh(["top","middle","bottom"],r)}}class ti extends Lf{element(){const{tag:r}=this;return super.element().child(new Br(r)).on("click",()=>this.click())}click(){this.change(this.tag,this.toggle())}setState(r){this.el.active(r)}toggle(){return this.el.toggle()}active(){return this.el.hasClass("active")}}class cp extends ti{constructor(){super("autofilter")}setState(){}}class hp extends ti{constructor(){super("font-bold","Ctrl+B")}}class up extends ti{constructor(){super("font-italic","Ctrl+I")}}class dp extends ti{constructor(){super("strike","Ctrl+U")}}class pp extends ti{constructor(){super("underline","Ctrl+U")}}const mp=["#ffffff","#000100","#e7e5e6","#445569","#5b9cd6","#ed7d31","#a5a5a5","#ffc001","#4371c6","#71ae47"],gp=[["#f2f2f2","#7f7f7f","#d0cecf","#d5dce4","#deeaf6","#fce5d5","#ededed","#fff2cd","#d9e2f3","#e3efd9"],["#d8d8d8","#595959","#afabac","#adb8ca","#bdd7ee","#f7ccac","#dbdbdb","#ffe59a","#b3c6e7","#c5e0b3"],["#bfbfbf","#3f3f3f","#756f6f","#8596b0","#9cc2e6","#f4b184","#c9c9c9","#fed964","#8eaada","#a7d08c"],["#a5a5a5","#262626","#3a3839","#333f4f","#2e75b5","#c45a10","#7b7b7b","#bf8e01","#2f5596","#538136"],["#7f7f7f","#0c0c0c","#171516","#222a35","#1f4e7a","#843c0a","#525252","#7e6000","#203864","#365624"]],vp=["#c00000","#fe0000","#fdc101","#ffff01","#93d051","#00b04e","#01b0f1","#0170c1","#012060","#7030a0"];function jo(t){return He("td","").child(He("div",`${Je}-color-palette-cell`).on("click.stop",()=>this.change(t)).css("background-color",t))}class xp{constructor(){this.el=He("div",`${Je}-color-palette`),this.change=()=>{};const r=He("table","").children(He("tbody","").children(He("tr",`${Je}-theme-color-placeholders`).children(...mp.map(e=>jo.call(this,e))),...gp.map(e=>He("tr",`${Je}-theme-colors`).children(...e.map(n=>jo.call(this,n)))),He("tr",`${Je}-standard-colors`).children(...vp.map(e=>jo.call(this,e)))));this.el.child(r)}}class jf extends Un{constructor(r,e){const n=new Br(r).css("height","16px").css("border-bottom",`3px solid ${e}`),i=new xp;i.change=s=>{this.setTitle(s),this.change(s)},super(n,"auto",!1,"bottom-left",i.el)}setTitle(r){this.title.css("border-color",r),this.hide()}}const bp=[["thin",''],["medium",''],["thick",''],["dashed",''],["dotted",'']];class wp extends Un{constructor(r){const e=new Br("line-type");let n=0;const i=bp.map((s,o)=>He("div",`${Je}-item state ${r===s[0]?"checked":""}`).on("click",()=>{i[n].toggle("checked"),i[o].toggle("checked"),n=o,this.hide(),this.change(s)}).child(He("div",`${Je}-line-type`).html(s[1])));super(e,"auto",!1,"bottom-left",...i)}}function $l(...t){return He("table","").child(He("tbody","").children(...t))}function Wl(t){return He("td","").child(He("div",`${Je}-border-palette-cell`).child(new Br(`border-${t}`)).on("click",()=>{this.mode=t;const{mode:r,style:e,color:n}=this;this.change({mode:r,style:e,color:n})}))}class yp{constructor(){this.color="#000",this.style="thin",this.mode="all",this.change=()=>{},this.ddColor=new jf("line-color",this.color),this.ddColor.change=e=>{this.color=e},this.ddType=new wp(this.style),this.ddType.change=([e])=>{this.style=e},this.el=He("div",`${Je}-border-palette`);const r=$l(He("tr","").children(He("td",`${Je}-border-palette-left`).child($l(He("tr","").children(...["all","inside","horizontal","vertical","outside"].map(e=>Wl.call(this,e))),He("tr","").children(...["left","top","right","bottom","none"].map(e=>Wl.call(this,e))))),He("td",`${Je}-border-palette-right`).children(He("div",`${Je}-toolbar-btn`).child(this.ddColor.el),He("div",`${Je}-toolbar-btn`).child(this.ddType.el))));this.el.child(r)}}class _p extends Un{constructor(){const r=new Br("border-all"),e=new yp;e.change=n=>{this.change(n),this.hide()},super(r,"auto",!1,"bottom-left",e.el)}}class Ep extends jn{constructor(){super("border")}dropdown(){return new _p}}class ho extends Lf{element(){return super.element().child(new Br(this.tag)).on("click",()=>this.change(this.tag))}setState(r){this.el.disabled(r)}}class Tp extends ho{constructor(){super("clearformat")}}class Sp extends ti{constructor(){super("paintformat")}setState(){}}class kp extends jn{constructor(r){super("color",void 0,r)}dropdown(){const{tag:r,value:e}=this;return new jf(r,e)}}class Cp extends jn{constructor(r){super("bgcolor",void 0,r)}dropdown(){const{tag:r,value:e}=this;return new jf(r,e)}}class Ap extends Un{constructor(){const r=mf.map(e=>He("div",`${Je}-item`).on("click",()=>{this.setTitle(`${e.pt}`),this.change(e)}).child(`${e.pt}`));super("10","60px",!0,"bottom-left",...r)}}let Fp=class extends jn{constructor(){super("font-size")}getValue(r){return r.pt}dropdown(){return new Ap}};class Rp extends Un{constructor(){const r=Ul.map(e=>He("div",`${Je}-item`).on("click",()=>{this.setTitle(e.title),this.change(e)}).child(e.title));super(Ul[0].title,"160px",!0,"bottom-left",...r)}}class Mp extends jn{constructor(){super("font-name")}getValue(r){return r.key}dropdown(){return new Rp}}class Op extends Un{constructor(){let r=Es.slice(0);r.splice(2,0,{key:"divider"}),r.splice(8,0,{key:"divider"}),r=r.map(e=>{const n=He("div",`${Je}-item`);return e.key==="divider"?n.addClass("divider"):(n.child(e.title()).on("click",()=>{this.setTitle(e.title()),this.change(e)}),e.label&&n.child(He("div","label").html(e.label))),n}),super("Normal","220px",!0,"bottom-left",...r)}setTitle(r){for(let e=0;eHe("div",`${Je}-item`).on("click",()=>{this.hide(),this.change(e)}).child(e.key));super(new Br("formula"),"180px",!0,"bottom-left",...r)}}class Np extends jn{constructor(){super("formula")}getValue(r){return r.key}dropdown(){return new Dp}}class Pp extends ti{constructor(){super("freeze")}}class Bp extends ti{constructor(){super("merge")}setState(r,e){this.el.active(r).disabled(e)}}class Lp extends ho{constructor(){super("redo","Ctrl+Y")}}class jp extends ho{constructor(){super("undo","Ctrl+Z")}}class Up extends ho{constructor(){super("print","Ctrl+P")}}class Hp extends ti{constructor(){super("textwrap")}}let zp=class extends Un{constructor(){const r=new Br("ellipsis"),e=He("div",`${Je}-toolbar-more`);super(r,"auto",!1,"bottom-right",e),this.moreBtns=e,this.contentEl.css("max-width","420px")}};class $p extends jn{constructor(){super("more"),this.el.hide()}dropdown(){return new zp}show(){this.el.show()}hide(){this.el.hide()}}function rs(){return He("div",`${Je}-toolbar-divider`)}function Wp(){this.btns2=[],this.items.forEach(t=>{if(Array.isArray(t))t.forEach(({el:r})=>{const e=r.box(),{marginLeft:n,marginRight:i}=r.computedStyle();this.btns2.push([r,e.width+parseInt(n,10)+parseInt(i,10)])});else{const r=t.box(),{marginLeft:e,marginRight:n}=t.computedStyle();this.btns2.push([t,r.width+parseInt(e,10)+parseInt(n,10)])}})}function Xl(){const{el:t,btns:r,moreEl:e,btns2:n}=this,{moreBtns:i,contentEl:s}=e.dd;t.css("width",`${this.widthFn()-60}px`);const o=t.box();let h=160,c=12;const a=[],f=[];n.forEach(([l,u],p)=>{h+=u,p===n.length-1||h0?e.show():e.hide()}class Xp{constructor(r,e,n=!1){this.data=r,this.change=()=>{},this.widthFn=e,this.isHide=n;const i=r.defaultStyle();this.items=[[this.undoEl=new jp,this.redoEl=new Lp,new Up,this.paintformatEl=new Sp,this.clearformatEl=new Tp],rs(),[this.formatEl=new Ip],rs(),[this.fontEl=new Mp,this.fontSizeEl=new Fp],rs(),[this.boldEl=new hp,this.italicEl=new up,this.underlineEl=new pp,this.strikeEl=new dp,this.textColorEl=new kp(i.color)],rs(),[this.fillColorEl=new Cp(i.bgcolor),this.borderEl=new Ep,this.mergeEl=new Bp],rs(),[this.alignEl=new fp(i.align),this.valignEl=new lp(i.valign),this.textwrapEl=new Hp],rs(),[this.freezeEl=new Pp,this.autofilterEl=new cp,this.formulaEl=new Np,this.moreEl=new $p]],this.el=He("div",`${Je}-toolbar`),this.btns=He("div",`${Je}-toolbar-btns`),this.items.forEach(s=>{Array.isArray(s)?s.forEach(o=>{this.btns.child(o.el),o.change=(...h)=>{this.change(...h)}}):this.btns.child(s.el)}),this.el.child(this.btns),n?this.el.hide():(this.reset(),setTimeout(()=>{Wp.call(this),Xl.call(this)},0),Zr(window,"resize",()=>{Xl.call(this)}))}paintformatActive(){return this.paintformatEl.active()}paintformatToggle(){this.paintformatEl.toggle()}trigger(r){this[`${r}El`].click()}resetData(r){this.data=r,this.reset()}reset(){if(this.isHide)return;const{data:r}=this,e=r.getSelectedCellStyle();this.undoEl.setState(!r.canUndo()),this.redoEl.setState(!r.canRedo()),this.mergeEl.setState(r.canUnmerge(),!r.selector.multiple()),this.autofilterEl.setState(!r.canAutofilter());const{font:n,format:i}=e;this.formatEl.setState(i),this.fontEl.setState(n.name),this.fontSizeEl.setState(n.size),this.boldEl.setState(n.bold),this.italicEl.setState(n.italic),this.underlineEl.setState(e.underline),this.strikeEl.setState(e.strike),this.textColorEl.setState(e.color),this.fillColorEl.setState(e.bgcolor),this.alignEl.setState(e.align),this.valignEl.setState(e.valign),this.textwrapEl.setState(e.textwrap),this.freezeEl.setState(r.freezeIsActive())}}class Vp{constructor(r,e,n="600px"){this.title=r,this.el=He("div",`${Je}-modal`).css("width",n).children(He("div",`${Je}-modal-header`).children(new Br("close").on("click.stop",()=>this.hide()),this.title),He("div",`${Je}-modal-content`).children(...e)).hide()}show(){this.dimmer=He("div",`${Je}-dimmer active`),document.body.appendChild(this.dimmer.el);const{width:r,height:e}=this.el.show().box(),{clientHeight:n,clientWidth:i}=document.documentElement;this.el.offset({left:(i-r)/2,top:(n-e)/3}),window.xkeydownEsc=s=>{s.keyCode===27&&this.hide()},Zr(window,"keydown",window.xkeydownEsc)}hide(){this.el.hide(),document.body.removeChild(this.dimmer.el),Ga(window,"keydown",window.xkeydownEsc),delete window.xkeydownEsc}}class as{constructor(r,e){this.vchange=()=>{},this.el=He("div",`${Je}-form-input`),this.input=He("input","").css("width",r).on("input",n=>this.vchange(n)).attr("placeholder",e),this.el.child(this.input)}focus(){setTimeout(()=>{this.input.el.focus()},10)}hint(r){this.input.attr("placeholder",r)}val(r){return this.input.val(r)}}class Uo{constructor(r,e,n,i=o=>o,s=()=>{}){this.key=r,this.getTitle=i,this.vchange=()=>{},this.el=He("div",`${Je}-form-select`),this.suggest=new _h(e.map(o=>({key:o,title:this.getTitle(o)})),o=>{this.itemClick(o.key),s(o.key),this.vchange(o.key)},n,this.el),this.el.children(this.itemEl=He("div","input-text").html(this.getTitle(r)),this.suggest.el).on("click",()=>this.show())}show(){this.suggest.search("")}itemClick(r){this.key=r,this.itemEl.html(this.getTitle(r))}val(r){return r!==void 0?(this.key=r,this.itemEl.html(this.getTitle(r)),this):this.key}}const Gp={number:/(^\d+$)|(^\d+(\.\d{0,4})?$)/,date:/^\d{4}-\d{1,2}-\d{1,2}$/};class oi{constructor(r,e,n,i){this.label="",this.rule=e,n&&(this.label=He("label","label").css("width",`${i}px`).html(n)),this.tip=He("div","tip").child("tip").hide(),this.input=r,this.input.vchange=()=>this.validate(),this.el=He("div",`${Je}-form-field`).children(this.label,r.el,this.tip)}isShow(){return this.el.css("display")!=="none"}show(){this.el.show()}hide(){return this.el.hide(),this}val(r){return this.input.val(r)}hint(r){this.input.hint(r)}validate(){const{input:r,rule:e,tip:n,el:i}=this,s=r.val();return e.required&&/^\s*$/.test(s)?(n.html(ur("validation.required")),i.addClass("error"),!1):(e.type||e.pattern)&&!(e.pattern||Gp[e.type]).test(s)?(n.html(ur("validation.notMatch")),i.addClass("error"),!1):(i.removeClass("error"),!0)}}const Vl=100;class Kp extends Vp{constructor(){const r=new oi(new Uo("cell",["cell"],"100%",a=>ur(`dataValidation.modeType.${a}`)),{required:!0},`${ur("dataValidation.range")}:`,Vl),e=new oi(new as("120px","E3 or E3:F12"),{required:!0,pattern:/^([A-Z]{1,2}[1-9]\d*)(:[A-Z]{1,2}[1-9]\d*)?$/}),n=new oi(new Uo("list",["list","number","date","phone","email"],"100%",a=>ur(`dataValidation.type.${a}`),a=>this.criteriaSelected(a)),{required:!0},`${ur("dataValidation.criteria")}:`,Vl),i=new oi(new Uo("be",["be","nbe","eq","neq","lt","lte","gt","gte"],"160px",a=>ur(`dataValidation.operator.${a}`),a=>this.criteriaOperatorSelected(a)),{required:!0}).hide(),s=new oi(new as("70px","10"),{required:!0}).hide(),o=new oi(new as("70px","100"),{required:!0,type:"number"}).hide(),h=new oi(new as("120px","a,b,c"),{required:!0}),c=new oi(new as("70px","10"),{required:!0,type:"number"}).hide();super(ur("contextmenu.validation"),[He("div",`${Je}-form-fields`).children(r.el,e.el),He("div",`${Je}-form-fields`).children(n.el,i.el,s.el,o.el,c.el,h.el),He("div",`${Je}-buttons`).children(new Mi("cancel").on("click",()=>this.btnClick("cancel")),new Mi("remove").on("click",()=>this.btnClick("remove")),new Mi("save","primary").on("click",()=>this.btnClick("save")))]),this.mf=r,this.rf=e,this.cf=n,this.of=i,this.minvf=s,this.maxvf=o,this.vf=c,this.svf=h,this.change=()=>{}}showVf(r){const e=r==="date"?"2018-11-12":"10",{vf:n}=this;n.input.hint(e),n.show()}criteriaSelected(r){const{of:e,minvf:n,maxvf:i,vf:s,svf:o}=this;r==="date"||r==="number"?(e.show(),n.rule.type=r,i.rule.type=r,r==="date"?(n.hint("2018-11-12"),i.hint("2019-11-12")):(n.hint("10"),i.hint("100")),n.show(),i.show(),s.hide(),o.hide()):(r==="list"?o.show():o.hide(),s.hide(),e.hide(),n.hide(),i.hide())}criteriaOperatorSelected(r){if(!r)return;const{minvf:e,maxvf:n,vf:i}=this;if(r==="be"||r==="nbe")e.show(),n.show(),i.hide();else{const s=this.cf.val();i.rule.type=s,s==="date"?i.hint("2018-11-12"):i.hint("10"),i.show(),e.hide(),n.hide()}}btnClick(r){if(r==="cancel")this.hide();else if(r==="remove")this.change("remove"),this.hide();else if(r==="save"){const e=["mf","rf","cf","of","svf","vf","minvf","maxvf"];for(let c=0;cthis.itemClick(t))}function Yp(t){const{filterbEl:r,filterValues:e}=this;r.html(""),Object.keys(t).forEach((i,s)=>{const o=t[i],h=e.includes(i)?"checked":"";r.child(He("div",`${Je}-item state ${h}`).on("click.stop",()=>this.filterClick(s,i)).children(i===""?ur("filter.empty"):i,He("div","label").html(`(${o})`)))})}function Kl(){const{filterhEl:t,filterValues:r,values:e}=this;t.html(`${r.length} / ${e.length}`),t.checked(r.length===e.length)}class Zp{constructor(){this.filterbEl=He("div",`${Je}-body`),this.filterhEl=He("div",`${Je}-header state`).on("click.stop",()=>this.filterClick(0,"all")),this.el=He("div",`${Je}-sort-filter`).children(this.sortAscEl=Gl.call(this,"asc"),this.sortDescEl=Gl.call(this,"desc"),Rh("divider"),He("div",`${Je}-filter`).children(this.filterhEl,this.filterbEl),He("div",`${Je}-buttons`).children(new Mi("cancel").on("click",()=>this.btnClick("cancel")),new Mi("ok","primary").on("click",()=>this.btnClick("ok")))).hide(),this.ci=null,this.sortDesc=null,this.values=null,this.filterValues=[]}btnClick(r){if(r==="ok"){const{ci:e,sort:n,filterValues:i}=this;this.ok&&this.ok(e,n,"in",i)}this.hide()}itemClick(r){this.sort=r;const{sortAscEl:e,sortDescEl:n}=this;e.checked(r==="asc"),n.checked(r==="desc")}filterClick(r,e){const{filterbEl:n,filterValues:i,values:s}=this,o=n.children();e==="all"?o.length===i.length?(this.filterValues=[],o.forEach(h=>He(h).checked(!1))):(this.filterValues=Array.from(s),o.forEach(h=>He(h).checked(!0))):He(o[r]).toggle("checked")?i.push(e):i.splice(i.findIndex(c=>c===e),1),Kl.call(this)}set(r,e,n,i){this.ci=r;const{sortAscEl:s,sortDescEl:o}=this;i!==null?(this.sort=i.order,s.checked(i.asc()),o.checked(i.desc())):(this.sortDesc=null,s.checked(!1),o.checked(!1)),this.values=Object.keys(e),this.filterValues=n?Array.from(n.value):Object.keys(e),Yp.call(this,e,n),Kl.call(this)}setOffset(r){this.el.offset(r).show();let e=1;Js(this.el,()=>{e<=0&&this.hide(),e-=1})}show(){this.el.show()}hide(){this.el.hide(),ms(this.el)}}function Mh(t,r){const e=He("div",`${Je}-toast`),n=He("div",`${Je}-dimmer active`),i=()=>{document.body.removeChild(e.el),document.body.removeChild(n.el)};e.children(He("div",`${Je}-toast-header`).children(new Br("close").on("click.stop",()=>i()),t),He("div",`${Je}-toast-content`).html(r)),document.body.appendChild(e.el),document.body.appendChild(n.el);const{width:s,height:o}=e.box(),{clientHeight:h,clientWidth:c}=document.documentElement;e.offset({left:(c-s)/2,top:(h-o)/3})}function Ho(t,r){let e;return(...n)=>{const i=this,s=n;e||(e=setTimeout(()=>{e=null,t.apply(i,s)},r))}}function Jp(){const{data:t,verticalScrollbar:r,horizontalScrollbar:e}=this,{l:n,t:i,left:s,top:o,width:h,height:c}=t.getSelectedRect(),a=this.getTableOffset();if(Math.abs(s)+h>a.width)e.move({left:n+h-a.width});else{const f=t.freezeTotalWidth();sa.height)r.move({top:i+c-a.height-1});else{const f=t.freezeTotalHeight();o0&&(h-=1):r==="right"?(a!==h&&(h=a),h0&&(o-=1):r==="down"?(c!==o&&(o=c),oc.indexWidth&&e>h.height){n.hide(),i.hide();return}const a=s.box(),f=o.getCellRectByXY(t.offsetX,t.offsetY);f.ri>=0&&f.ci===-1?(f.width=c.indexWidth,n.show(f,{width:a.width}),h.isHide(f.ri-1)?n.showUnhide(f.ri):n.hideUnhide()):n.hide(),f.ri===-1&&f.ci>=0?(f.height=h.height,i.show(f,{height:a.height}),c.isHide(f.ci-1)?i.showUnhide(f.ci):i.hideUnhide()):i.hide()}function qp(t){const{verticalScrollbar:r,horizontalScrollbar:e,data:n}=this,{top:i}=r.scroll(),{left:s}=e.scroll(),{rows:o,cols:h}=n,{deltaY:c,deltaX:a}=t,f=(v,x)=>{let g=v,b=0;do b=x(g),g+=1;while(b<=0);return b},l=v=>{if(v>0){const x=n.scroll.ri+1;if(xo.getHeight(b));r.move({top:i+g-1})}}else{const x=n.scroll.ri-1;if(x>=0){const g=f(x,b=>o.getHeight(b));r.move({top:x===0?0:i-g})}}},u=v=>{if(v>0){const x=n.scroll.ci+1;if(xh.getWidth(b));e.move({left:s+g-1})}}else{const x=n.scroll.ci-1;if(x>=0){const g=f(x,b=>h.getWidth(b));e.move({left:x===0?0:s-g})}}},p=Math.abs(c),m=Math.abs(a),d=Math.max(p,m);/Firefox/i.test(window.navigator.userAgent)&&Ho(l(t.detail),50),d===m&&Ho(u(a),50),d===p&&Ho(l(c),50)}function e1(t,r){const{verticalScrollbar:e,horizontalScrollbar:n}=this,{top:i}=e.scroll(),{left:s}=n.scroll();t==="left"||t==="right"?n.move({left:s-r}):(t==="up"||t==="down")&&e.move({top:i-r})}function Uf(){const{data:t,verticalScrollbar:r}=this,{height:e}=this.getTableOffset(),n=t.exceptRowTotalHeight(0,-1);r.set(e,t.rows.totalHeight()-n)}function Hf(){const{data:t,horizontalScrollbar:r}=this,{width:e}=this.getTableOffset();t&&r.set(e,t.cols.totalWidth())}function t1(){const{selector:t,data:r,editor:e}=this,[n,i]=r.freeze;if(n>0||i>0){const s=r.freezeTotalWidth(),o=r.freezeTotalHeight();e.setFreezeLengths(s,o)}t.resetAreaOffset()}function Yr(){const{tableEl:t,overlayerEl:r,overlayerCEl:e,table:n,toolbar:i,selector:s,el:o}=this,h=this.getTableOffset(),c=this.getRect();t.attr(c),r.offset(c),e.offset(h),o.css("width",`${c.width}px`),Uf.call(this),Hf.call(this),t1.call(this),n.render(),i.reset(),s.reset()}function Qs(){const{data:t,selector:r}=this;t.clearClipboard(),r.hideClipboard()}function vf(){const{data:t,selector:r}=this;t.copy(),t.copyToSystemClipboard(),r.showClipboard()}function Yl(){const{data:t,selector:r}=this;t.cut(),r.showClipboard()}function Ts(t,r){const{data:e}=this;if(e.settings.mode!=="read"){if(e.paste(t,n=>Mh("Tip",n)))Yr.call(this);else if(r){const n=r.clipboardData.getData("text/plain");this.data.pasteFromText(n),Yr.call(this)}}}function r1(){this.data.hideRowsOrCols(),Yr.call(this)}function Zl(t,r){this.data.unhideRowsOrCols(t,r),Yr.call(this)}function n1(){const{data:t}=this;t.autofilter(),Yr.call(this)}function i1(){const{toolbar:t}=this;t.paintformatActive()&&(Ts.call(this,"format"),Qs.call(this),t.paintformatToggle())}function Jl(t){const{selector:r,data:e,table:n,sortFilter:i}=this,{offsetX:s,offsetY:o}=t,h=t.target.className===`${Je}-selector-corner`,c=e.getCellRectByXY(s,o),{left:a,top:f,width:l,height:u}=c;let{ri:p,ci:m}=c;const{autoFilter:d}=e;if(d.includes(p,m)&&a+l-20e.rows.getCell(x,g));i.hide(),i.set(m,v,d.getFilter(m),d.getSort(m)),i.setOffset({left:a,top:f+u+2});return}t.shiftKey||(h?r.showAutofill(p,m):Oi.call(this,!1,p,m),vh(window,v=>{({ri:p,ci:m}=e.getCellRectByXY(v.offsetX,v.offsetY)),h?r.showAutofill(p,m):v.buttons===1&&!v.shiftKey&&Oi.call(this,!0,p,m,!0,!0)},()=>{h&&r.arange&&e.settings.mode!=="read"&&e.autofill(r.arange,"all",v=>Mh("Tip",v))&&n.render(),r.hideAutofill(),i1.call(this)})),!h&&t.buttons===1&&t.shiftKey&&Oi.call(this,!0,p,m)}function qs(){const{editor:t,data:r}=this,e=r.getSelectedRect(),n=this.getTableOffset();let i="top";e.top>n.height/2&&(i="bottom"),t.setOffset(e,i)}function Ss(){const{editor:t,data:r}=this;r.settings.mode!=="read"&&(qs.call(this),t.setCell(r.getSelectedCell(),r.getSelectedValidator()),Qs.call(this))}function s1(t){const{data:r,table:e,selector:n}=this;r.scrolly(t,()=>{n.resetBRLAreaOffset(),qs.call(this),e.render()})}function a1(t){const{data:r,table:e,selector:n}=this;r.scrollx(t,()=>{n.resetBRTAreaOffset(),qs.call(this),e.render()})}function o1(t,r){const{ri:e}=t,{table:n,selector:i,data:s}=this;s.rows.setHeight(e,r),n.render(),i.resetAreaOffset(),Uf.call(this),qs.call(this)}function f1(t,r){const{ci:e}=t,{table:n,selector:i,data:s}=this;s.cols.setWidth(e,r),n.render(),i.resetAreaOffset(),Hf.call(this),qs.call(this)}function zo(t,r="finished"){const{data:e,table:n}=this;if(e.settings.mode==="read")return;e.setSelectedCellText(t,r);const{ri:i,ci:s}=e.selector;r==="finished"?n.render():this.trigger("cell-edited",t,i,s)}function za(t){const{data:r}=this;r.settings.mode!=="read"&&(t==="insert-row"?r.insert("row"):t==="delete-row"?r.delete("row"):t==="insert-column"?r.insert("column"):t==="delete-column"?r.delete("column"):t==="delete-cell"?r.deleteCell():t==="delete-cell-format"?r.deleteCell("format"):t==="delete-cell-text"?r.deleteCell("text"):t==="cell-printable"?r.setSelectedCellAttr("printable",!0):t==="cell-non-printable"?r.setSelectedCellAttr("printable",!1):t==="cell-editable"?r.setSelectedCellAttr("editable",!0):t==="cell-non-editable"&&r.setSelectedCellAttr("editable",!1),Qs.call(this),Yr.call(this))}function l1(t,r){const{data:e}=this;if(t==="undo")this.undo();else if(t==="redo")this.redo();else if(t==="print")this.print.preview();else if(t==="paintformat")r===!0?vf.call(this):Qs.call(this);else if(t==="clearformat")za.call(this,"delete-cell-format");else if(t!=="link"){if(t!=="chart")if(t==="autofilter")n1.call(this);else if(t==="freeze")if(r){const{ri:n,ci:i}=e.selector;this.freeze(n,i)}else this.freeze(0,0);else e.setSelectedCellAttr(t,r),t==="formula"&&!e.selector.multiple()&&Ss.call(this),Yr.call(this)}}function c1(t,r,e,n){this.data.setAutoFilter(t,r,e,n),Yr.call(this)}function h1(){const{selector:t,overlayerEl:r,rowResizer:e,colResizer:n,verticalScrollbar:i,horizontalScrollbar:s,editor:o,contextMenu:h,toolbar:c,modalValidation:a,sortFilter:f}=this;r.on("mousemove",l=>{Qp.call(this,l)}).on("mousedown",l=>{o.clear(),h.hide(),l.buttons===2?(this.data.xyInSelectedRect(l.offsetX,l.offsetY)||Jl.call(this,l),h.setPosition(l.offsetX,l.offsetY),l.stopPropagation()):l.detail===2?Ss.call(this):Jl.call(this,l)}).on("mousewheel.stop",l=>{qp.call(this,l)}).on("mouseout",l=>{const{offsetX:u,offsetY:p}=l;p<=0&&n.hide(),u<=0&&e.hide()}),t.inputChange=l=>{zo.call(this,l,"input"),Ss.call(this)},xd(r.el,{move:(l,u)=>{e1.call(this,l,u)}}),c.change=(l,u)=>l1.call(this,l,u),f.ok=(l,u,p,m)=>c1.call(this,l,u,p,m),e.finishedFn=(l,u)=>{o1.call(this,l,u)},n.finishedFn=(l,u)=>{f1.call(this,l,u)},e.unhideFn=l=>{Zl.call(this,"row",l)},n.unhideFn=l=>{Zl.call(this,"col",l)},i.moveFn=(l,u)=>{s1.call(this,l,u)},s.moveFn=(l,u)=>{a1.call(this,l,u)},o.change=(l,u)=>{zo.call(this,u,l)},a.change=(l,...u)=>{l==="save"?this.data.addValidation(...u):this.data.removeValidation()},h.itemClick=l=>{l==="validation"?a.setValue(this.data.getSelectedValidation()):l==="copy"?vf.call(this):l==="cut"?Yl.call(this):l==="paste"?Ts.call(this,"all"):l==="paste-value"?Ts.call(this,"text"):l==="paste-format"?Ts.call(this,"format"):l==="hide"?r1.call(this):za.call(this,l)},Zr(window,"resize",()=>{this.reload()}),Zr(window,"click",l=>{this.focusing=r.contains(l.target)}),Zr(window,"paste",l=>{this.focusing&&(Ts.call(this,"all",l),l.preventDefault())}),Zr(window,"keydown",l=>{if(!this.focusing)return;const u=l.keyCode||l.which,{key:p,ctrlKey:m,shiftKey:d,metaKey:v}=l;if(m||v)switch(u){case 90:this.undo(),l.preventDefault();break;case 89:this.redo(),l.preventDefault();break;case 67:vf.call(this),l.preventDefault();break;case 88:Yl.call(this),l.preventDefault();break;case 85:c.trigger("underline"),l.preventDefault();break;case 86:break;case 37:In.call(this,d,"row-first"),l.preventDefault();break;case 38:In.call(this,d,"col-first"),l.preventDefault();break;case 39:In.call(this,d,"row-last"),l.preventDefault();break;case 40:In.call(this,d,"col-last"),l.preventDefault();break;case 32:Oi.call(this,!1,-1,this.data.selector.ci,!1),l.preventDefault();break;case 66:c.trigger("bold");break;case 73:c.trigger("italic");break}else{switch(u){case 32:d&&Oi.call(this,!1,this.data.selector.ri,-1,!1);break;case 27:h.hide(),Qs.call(this);break;case 37:In.call(this,d,"left"),l.preventDefault();break;case 38:In.call(this,d,"up"),l.preventDefault();break;case 39:In.call(this,d,"right"),l.preventDefault();break;case 40:In.call(this,d,"down"),l.preventDefault();break;case 9:o.clear(),In.call(this,!1,d?"left":"right"),l.preventDefault();break;case 13:o.clear(),In.call(this,!1,d?"up":"down"),l.preventDefault();break;case 8:za.call(this,"delete-cell-text"),l.preventDefault();break}p==="Delete"?(za.call(this,"delete-cell-text"),l.preventDefault()):u>=65&&u<=90||u>=48&&u<=57||u>=96&&u<=105||l.key==="="?(zo.call(this,l.key,"input"),Ss.call(this)):u===113&&Ss.call(this)}})}class u1{constructor(r,e){this.eventMap=bd();const{view:n,showToolbar:i,showContextmenu:s}=e.settings;this.el=He("div",`${Je}-sheet`),this.toolbar=new Xp(e,n.width,!i),this.print=new tp(e),r.children(this.toolbar.el,this.el,this.print.el),this.data=e,this.tableEl=He("canvas",`${Je}-table`),this.rowResizer=new Il(!1,e.rows.height),this.colResizer=new Il(!0,e.cols.minWidth),this.verticalScrollbar=new Dl(!0),this.horizontalScrollbar=new Dl(!1),this.editor=new Bd(Wd,()=>this.getTableOffset(),e.rows.height),this.modalValidation=new Kp,this.contextMenu=new sp(()=>this.getRect(),!s),this.selector=new _d(e),this.overlayerCEl=He("div",`${Je}-overlayer-content`).children(this.editor.el,this.selector.el),this.overlayerEl=He("div",`${Je}-overlayer`).child(this.overlayerCEl),this.sortFilter=new Zp,this.el.children(this.tableEl,this.overlayerEl.el,this.rowResizer.el,this.colResizer.el,this.verticalScrollbar.el,this.horizontalScrollbar.el,this.contextMenu.el,this.modalValidation.el,this.sortFilter.el),this.table=new Qd(this.tableEl.el,e),h1.call(this),Yr.call(this),Oi.call(this,!1,0,0)}on(r,e){return this.eventMap.on(r,e),this}trigger(r,...e){const{eventMap:n}=this;n.fire(r,e)}resetData(r){this.editor.clear(),this.data=r,Uf.call(this),Hf.call(this),this.toolbar.resetData(r),this.print.resetData(r),this.selector.resetData(r),this.table.resetData(r)}loadData(r){return this.data.setData(r),Yr.call(this),this}freeze(r,e){const{data:n}=this;return n.setFreeze(r,e),Yr.call(this),this}undo(){this.data.undo(),Yr.call(this)}redo(){this.data.redo(),Yr.call(this)}reload(){return Yr.call(this),this}getRect(){const{data:r}=this;return{width:r.viewWidth(),height:r.viewHeight()}}getTableOffset(){const{rows:r,cols:e}=this.data,{width:n,height:i}=this.getRect();return{width:n-e.indexWidth,height:i-r.height,left:e.indexWidth,top:r.height}}}class d1 extends Un{constructor(r){const e=new Br("ellipsis");super(e,"auto",!1,"top-left"),this.contentClick=r}reset(r){const e=r.map((n,i)=>He("div",`${Je}-item`).css("width","150px").css("font-weight","normal").on("click",()=>{this.contentClick(i),this.hide()}).child(n));this.setContentChildren(...e)}setTitle(){}}const p1=[{key:"delete",title:Dt("contextmenu.deleteSheet")}];function m1(t){return He("div",`${Je}-item`).child(t.title()).on("click",()=>{this.itemClick(t.key),this.hide()})}function g1(){return p1.map(t=>m1.call(this,t))}class v1{constructor(){this.el=He("div",`${Je}-contextmenu`).css("width","160px").children(...g1.call(this)).hide(),this.itemClick=()=>{}}hide(){const{el:r}=this;r.hide(),ms(r)}setOffset(r){const{el:e}=this;e.offset(r),e.show(),Js(e)}}class x1{constructor(r=()=>{},e=()=>{},n=()=>{},i=()=>{}){this.swapFunc=e,this.updateFunc=i,this.dataNames=[],this.activeEl=null,this.deleteEl=null,this.items=[],this.moreEl=new d1(s=>{this.clickSwap2(this.items[s])}),this.contextMenu=new v1,this.contextMenu.itemClick=n,this.el=He("div",`${Je}-bottombar`).children(this.contextMenu.el,this.menuEl=He("ul",`${Je}-menu`).child(He("li","").children(new Br("add").on("click",()=>{r()}),He("span","").child(this.moreEl))))}addItem(r,e){this.dataNames.push(r);const n=He("li",e?"active":"").child(r);n.on("click",()=>{this.clickSwap2(n)}).on("contextmenu",i=>{const{offsetLeft:s,offsetHeight:o}=i.target;this.contextMenu.setOffset({left:s,bottom:o+1}),this.deleteEl=n}).on("dblclick",()=>{const i=n.html(),s=new as("auto","");s.val(i),s.input.on("blur",({target:o})=>{const{value:h}=o,c=this.dataNames.findIndex(a=>a===i);this.renameItem(c,h)}),n.html("").child(s.el),s.focus()}),e&&this.clickSwap(n),this.items.push(n),this.menuEl.child(n),this.moreEl.reset(this.dataNames)}renameItem(r,e){this.dataNames.splice(r,1,e),this.moreEl.reset(this.dataNames),this.items[r].html("").child(e),this.updateFunc(r,e)}clear(){this.items.forEach(r=>{this.menuEl.removeChild(r.el)}),this.items=[],this.dataNames=[],this.moreEl.reset(this.dataNames)}deleteItem(){const{activeEl:r,deleteEl:e}=this;if(this.items.length>1){const n=this.items.findIndex(i=>i===e);if(this.items.splice(n,1),this.dataNames.splice(n,1),this.menuEl.removeChild(e.el),this.moreEl.reset(this.dataNames),r===e){const[i]=this.items;return this.activeEl=i,this.activeEl.toggle(),[n,0]}return[n,-1]}return[-1]}clickSwap2(r){const e=this.items.findIndex(n=>n===r);this.clickSwap(r),this.activeEl.toggle(),this.swapFunc(e)}clickSwap(r){this.activeEl!==null&&this.activeEl.toggle(),this.activeEl=r}}class b1{constructor(r,e={}){let n=r;this.options={showBottomBar:!0,...e},this.sheetIndex=1,this.datas=[],typeof r=="string"&&(n=document.querySelector(r)),this.bottombar=this.options.showBottomBar?new x1(()=>{const s=this.addSheet();this.sheet.resetData(s)},s=>{const o=this.datas[s];this.sheet.resetData(o)},()=>{this.deleteSheet()},(s,o)=>{this.datas[s].name=o}):null,this.data=this.addSheet();const i=He("div",`${Je}`).on("contextmenu",s=>s.preventDefault());n.appendChild(i.el),this.sheet=new u1(i,this.data),this.bottombar!==null&&i.child(this.bottombar.el)}addSheet(r,e=!0){const n=r||`sheet${this.sheetIndex}`,i=new vd(n,this.options);return i.change=(...s)=>{this.sheet.trigger("change",...s)},this.datas.push(i),this.bottombar!==null&&this.bottombar.addItem(n,e),this.sheetIndex+=1,i}deleteSheet(){if(this.bottombar===null)return;const[r,e]=this.bottombar.deleteItem();r>=0&&(this.datas.splice(r,1),e>=0&&this.sheet.resetData(this.datas[e]))}loadData(r){const e=Array.isArray(r)?r:[r];if(this.bottombar!==null&&this.bottombar.clear(),this.datas=[],e.length>0)for(let n=0;nr.getData())}cellText(r,e,n,i=0){return this.datas[i].setCellText(r,e,n,"finished"),this}cell(r,e,n=0){return this.datas[n].getCell(r,e)}cellStyle(r,e,n=0){return this.datas[n].getCellStyle(r,e)}reRender(){return this.sheet.table.render(),this}on(r,e){return this.sheet.on(r,e),this}validate(){const{validations:r}=this.data;return r.errors.size<=0}change(r){return this.sheet.on("change",r),this}static locale(r,e){mh(r,e)}}const w1=(t,r={})=>new b1(t,r);window&&(window.x_spreadsheet=w1,window.x_spreadsheet.locale=(t,r)=>mh(t,r));var Oh={exports:{}};(function(t,r){(function(e){t.exports=e()})(function(){return function(){function e(n,i,s){function o(a,f){if(!i[a]){if(!n[a]){var l=typeof Ea=="function"&&Ea;if(!f&&l)return l(a,!0);if(h)return h(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var p=i[a]={exports:{}};n[a][0].call(p.exports,function(m){var d=n[a][1][m];return o(d||m)},p,p.exports,e,n,i,s)}return i[a].exports}for(var h=typeof Ea=="function"&&Ea,c=0;c{const b=this.workbook.addWorksheet(v.sheetName),w=v.dateFormats||["YYYY-MM-DD[T]HH:mm:ssZ","YYYY-MM-DD[T]HH:mm:ss","MM-DD-YYYY","YYYY-MM-DD"],y=v.map||function(C){if(C==="")return null;const M=Number(C);if(!Number.isNaN(M)&&M!==1/0)return M;const I=w.reduce((U,j)=>{if(U)return U;const H=a(C,j,!0);return H.isValid()?H:null},null);if(I)return new Date(I.valueOf());const B=u[C];return B!==void 0?B:C},T=o.parse(v.parserOptions).on("data",C=>{b.addRow(C.map(y))}).on("end",()=>{T.emit("worksheet",b)});T.on("worksheet",x).on("error",g),d.pipe(T)})}createInputStream(){throw new Error("`CSV#createInputStream` is deprecated. You should use `CSV#read` instead. This method will be removed in version 5.0. Please follow upgrade instruction: https://github.com/exceljs/exceljs/blob/master/UPGRADE-4.0.md")}write(d,v){return new Promise((x,g)=>{v=v||{};const b=this.workbook.getWorksheet(v.sheetName||v.sheetId),w=o.format(v.formatterOptions);d.on("finish",()=>{x()}),w.on("error",g),w.pipe(d);const{dateFormat:y,dateUTC:T}=v,C=v.map||(B=>{if(B){if(B.text||B.hyperlink)return B.hyperlink||B.text||"";if(B.formula||B.result)return B.result||"";if(B instanceof Date)return y?T?a.utc(B).format(y):a(B).format(y):T?a.utc(B).format():a(B).format();if(B.error)return B.error;if(typeof B=="object")return JSON.stringify(B)}return B}),M=v.includeEmptyRows===void 0||v.includeEmptyRows;let I=1;b&&b.eachRow((B,U)=>{if(M)for(;I++2&&arguments[2]!==void 0?arguments[2]:0;if(this.worksheet=c,!a)this.nativeCol=0,this.nativeColOff=0,this.nativeRow=0,this.nativeRowOff=0;else if(typeof a=="string"){const l=s.decodeAddress(a);this.nativeCol=l.col+f,this.nativeColOff=0,this.nativeRow=l.row+f,this.nativeRowOff=0}else a.nativeCol!==void 0?(this.nativeCol=a.nativeCol||0,this.nativeColOff=a.nativeColOff||0,this.nativeRow=a.nativeRow||0,this.nativeRowOff=a.nativeRowOff||0):a.col!==void 0?(this.col=a.col+f,this.row=a.row+f):(this.nativeCol=0,this.nativeColOff=0,this.nativeRow=0,this.nativeRowOff=0)}static asInstance(c){return c instanceof o||c==null?c:new o(c)}get col(){return this.nativeCol+Math.min(this.colWidth-1,this.nativeColOff)/this.colWidth}set col(c){this.nativeCol=Math.floor(c),this.nativeColOff=Math.floor((c-this.nativeCol)*this.colWidth)}get row(){return this.nativeRow+Math.min(this.rowHeight-1,this.nativeRowOff)/this.rowHeight}set row(c){this.nativeRow=Math.floor(c),this.nativeRowOff=Math.floor((c-this.nativeRow)*this.rowHeight)}get colWidth(){return this.worksheet&&this.worksheet.getColumn(this.nativeCol+1)&&this.worksheet.getColumn(this.nativeCol+1).isCustomWidth?Math.floor(this.worksheet.getColumn(this.nativeCol+1).width*1e4):64e4}get rowHeight(){return this.worksheet&&this.worksheet.getRow(this.nativeRow+1)&&this.worksheet.getRow(this.nativeRow+1).height?Math.floor(this.worksheet.getRow(this.nativeRow+1).height*1e4):18e4}get model(){return{nativeCol:this.nativeCol,nativeColOff:this.nativeColOff,nativeRow:this.nativeRow,nativeRowOff:this.nativeRowOff}}set model(c){this.nativeCol=c.nativeCol,this.nativeColOff=c.nativeColOff,this.nativeRow=c.nativeRow,this.nativeRowOff=c.nativeRowOff}}n.exports=o},{"../utils/col-cache":19}],3:[function(e,n,i){const s=e("../utils/col-cache"),o=e("../utils/under-dash"),h=e("./enums"),{slideFormula:c}=e("../utils/shared-formula"),a=e("./note");class f{constructor(I,B,U){if(!I||!B)throw new Error("A Cell needs a Row");this._row=I,this._column=B,s.validateAddress(U),this._address=U,this._value=C.create(f.Types.Null,this),this.style=this._mergeStyle(I.style,B.style,{}),this._mergeCount=0}get worksheet(){return this._row.worksheet}get workbook(){return this._row.worksheet.workbook}destroy(){delete this.style,delete this._value,delete this._row,delete this._column,delete this._address}get numFmt(){return this.style.numFmt}set numFmt(I){this.style.numFmt=I}get font(){return this.style.font}set font(I){this.style.font=I}get alignment(){return this.style.alignment}set alignment(I){this.style.alignment=I}get border(){return this.style.border}set border(I){this.style.border=I}get fill(){return this.style.fill}set fill(I){this.style.fill=I}get protection(){return this.style.protection}set protection(I){this.style.protection=I}_mergeStyle(I,B,U){const j=I&&I.numFmt||B&&B.numFmt;j&&(U.numFmt=j);const H=I&&I.font||B&&B.font;H&&(U.font=H);const G=I&&I.alignment||B&&B.alignment;G&&(U.alignment=G);const L=I&&I.border||B&&B.border;L&&(U.border=L);const R=I&&I.fill||B&&B.fill;R&&(U.fill=R);const F=I&&I.protection||B&&B.protection;return F&&(U.protection=F),U}get address(){return this._address}get row(){return this._row.number}get col(){return this._column.number}get $col$row(){return`$${this._column.letter}$${this.row}`}get type(){return this._value.type}get effectiveType(){return this._value.effectiveType}toCsvString(){return this._value.toCsvString()}addMergeRef(){this._mergeCount++}releaseMergeRef(){this._mergeCount--}get isMerged(){return this._mergeCount>0||this.type===f.Types.Merge}merge(I,B){this._value.release(),this._value=C.create(f.Types.Merge,this,I),B||(this.style=I.style)}unmerge(){this.type===f.Types.Merge&&(this._value.release(),this._value=C.create(f.Types.Null,this),this.style=this._mergeStyle(this._row.style,this._column.style,{}))}isMergedTo(I){return this._value.type!==f.Types.Merge?!1:this._value.isMergedTo(I)}get master(){return this.type===f.Types.Merge?this._value.master:this}get isHyperlink(){return this._value.type===f.Types.Hyperlink}get hyperlink(){return this._value.hyperlink}get value(){return this._value.value}set value(I){if(this.type===f.Types.Merge){this._value.master.value=I;return}this._value.release(),this._value=C.create(C.getType(I),this,I)}get note(){return this._comment&&this._comment.note}set note(I){this._comment=new a(I)}get text(){return this._value.toString()}get html(){return o.escapeHtml(this.text)}toString(){return this.text}_upgradeToHyperlink(I){this.type===f.Types.String&&(this._value=C.create(f.Types.Hyperlink,this,{text:this._value.value,hyperlink:I}))}get formula(){return this._value.formula}get result(){return this._value.result}get formulaType(){return this._value.formulaType}get fullAddress(){const{worksheet:I}=this._row;return{sheetName:I.name,address:this.address,row:this.row,col:this.col}}get name(){return this.names[0]}set name(I){this.names=[I]}get names(){return this.workbook.definedNames.getNamesEx(this.fullAddress)}set names(I){const{definedNames:B}=this.workbook;B.removeAllNames(this.fullAddress),I.forEach(U=>{B.addEx(this.fullAddress,U)})}addName(I){this.workbook.definedNames.addEx(this.fullAddress,I)}removeName(I){this.workbook.definedNames.removeEx(this.fullAddress,I)}removeAllNames(){this.workbook.definedNames.removeAllNames(this.fullAddress)}get _dataValidations(){return this.worksheet.dataValidations}get dataValidation(){return this._dataValidations.find(this.address)}set dataValidation(I){this._dataValidations.add(this.address,I)}get model(){const{model:I}=this._value;return I.style=this.style,this._comment&&(I.comment=this._comment.model),I}set model(I){if(this._value.release(),this._value=C.create(I.type,this),this._value.model=I,I.comment)switch(I.comment.type){case"note":this._comment=a.fromModel(I.comment);break}I.style?this.style=I.style:this.style={}}}f.Types=h.ValueType;class l{constructor(I){this.model={address:I.address,type:f.Types.Null}}get value(){return null}set value(I){}get type(){return f.Types.Null}get effectiveType(){return f.Types.Null}get address(){return this.model.address}set address(I){this.model.address=I}toCsvString(){return""}release(){}toString(){return""}}class u{constructor(I,B){this.model={address:I.address,type:f.Types.Number,value:B}}get value(){return this.model.value}set value(I){this.model.value=I}get type(){return f.Types.Number}get effectiveType(){return f.Types.Number}get address(){return this.model.address}set address(I){this.model.address=I}toCsvString(){return this.model.value.toString()}release(){}toString(){return this.model.value.toString()}}class p{constructor(I,B){this.model={address:I.address,type:f.Types.String,value:B}}get value(){return this.model.value}set value(I){this.model.value=I}get type(){return f.Types.String}get effectiveType(){return f.Types.String}get address(){return this.model.address}set address(I){this.model.address=I}toCsvString(){return`"${this.model.value.replace(/"/g,'""')}"`}release(){}toString(){return this.model.value}}class m{constructor(I,B){this.model={address:I.address,type:f.Types.String,value:B}}get value(){return this.model.value}set value(I){this.model.value=I}toString(){return this.model.value.richText.map(I=>I.text).join("")}get type(){return f.Types.RichText}get effectiveType(){return f.Types.RichText}get address(){return this.model.address}set address(I){this.model.address=I}toCsvString(){return`"${this.text.replace(/"/g,'""')}"`}release(){}}class d{constructor(I,B){this.model={address:I.address,type:f.Types.Date,value:B}}get value(){return this.model.value}set value(I){this.model.value=I}get type(){return f.Types.Date}get effectiveType(){return f.Types.Date}get address(){return this.model.address}set address(I){this.model.address=I}toCsvString(){return this.model.value.toISOString()}release(){}toString(){return this.model.value.toString()}}class v{constructor(I,B){this.model={address:I.address,type:f.Types.Hyperlink,text:B?B.text:void 0,hyperlink:B?B.hyperlink:void 0},B&&B.tooltip&&(this.model.tooltip=B.tooltip)}get value(){const I={text:this.model.text,hyperlink:this.model.hyperlink};return this.model.tooltip&&(I.tooltip=this.model.tooltip),I}set value(I){this.model={text:I.text,hyperlink:I.hyperlink},I.tooltip&&(this.model.tooltip=I.tooltip)}get text(){return this.model.text}set text(I){this.model.text=I}get hyperlink(){return this.model.hyperlink}set hyperlink(I){this.model.hyperlink=I}get type(){return f.Types.Hyperlink}get effectiveType(){return f.Types.Hyperlink}get address(){return this.model.address}set address(I){this.model.address=I}toCsvString(){return this.model.hyperlink}release(){}toString(){return this.model.text}}class x{constructor(I,B){this.model={address:I.address,type:f.Types.Merge,master:B?B.address:void 0},this._master=B,B&&B.addMergeRef()}get value(){return this._master.value}set value(I){I instanceof f?(this._master&&this._master.releaseMergeRef(),I.addMergeRef(),this._master=I):this._master.value=I}isMergedTo(I){return I===this._master}get master(){return this._master}get type(){return f.Types.Merge}get effectiveType(){return this._master.effectiveType}get address(){return this.model.address}set address(I){this.model.address=I}toCsvString(){return""}release(){this._master.releaseMergeRef()}toString(){return this.value.toString()}}class g{constructor(I,B){this.cell=I,this.model={address:I.address,type:f.Types.Formula,shareType:B?B.shareType:void 0,ref:B?B.ref:void 0,formula:B?B.formula:void 0,sharedFormula:B?B.sharedFormula:void 0,result:B?B.result:void 0}}_copyModel(I){const B={},U=j=>{const H=I[j];H&&(B[j]=H)};return U("formula"),U("result"),U("ref"),U("shareType"),U("sharedFormula"),B}get value(){return this._copyModel(this.model)}set value(I){this.model=this._copyModel(I)}validate(I){switch(C.getType(I)){case f.Types.Null:case f.Types.String:case f.Types.Number:case f.Types.Date:break;case f.Types.Hyperlink:case f.Types.Formula:default:throw new Error("Cannot process that type of result value")}}get dependencies(){const I=this.formula.match(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\d{1,4}:[A-Z]{1,3}\d{1,4}/g),B=this.formula.replace(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\d{1,4}:[A-Z]{1,3}\d{1,4}/g,"").match(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\d{1,4}/g);return{ranges:I,cells:B}}get formula(){return this.model.formula||this._getTranslatedFormula()}set formula(I){this.model.formula=I}get formulaType(){return this.model.formula?h.FormulaType.Master:this.model.sharedFormula?h.FormulaType.Shared:h.FormulaType.None}get result(){return this.model.result}set result(I){this.model.result=I}get type(){return f.Types.Formula}get effectiveType(){const I=this.model.result;return I==null?h.ValueType.Null:I instanceof String||typeof I=="string"?h.ValueType.String:typeof I=="number"?h.ValueType.Number:I instanceof Date?h.ValueType.Date:I.text&&I.hyperlink?h.ValueType.Hyperlink:I.formula?h.ValueType.Formula:h.ValueType.Null}get address(){return this.model.address}set address(I){this.model.address=I}_getTranslatedFormula(){if(!this._translatedFormula&&this.model.sharedFormula){const{worksheet:I}=this.cell,B=I.findCell(this.model.sharedFormula);this._translatedFormula=B&&c(B.formula,B.address,this.model.address)}return this._translatedFormula}toCsvString(){return`${this.model.result||""}`}release(){}toString(){return this.model.result?this.model.result.toString():""}}class b{constructor(I,B){this.model={address:I.address,type:f.Types.SharedString,value:B}}get value(){return this.model.value}set value(I){this.model.value=I}get type(){return f.Types.SharedString}get effectiveType(){return f.Types.SharedString}get address(){return this.model.address}set address(I){this.model.address=I}toCsvString(){return this.model.value.toString()}release(){}toString(){return this.model.value.toString()}}class w{constructor(I,B){this.model={address:I.address,type:f.Types.Boolean,value:B}}get value(){return this.model.value}set value(I){this.model.value=I}get type(){return f.Types.Boolean}get effectiveType(){return f.Types.Boolean}get address(){return this.model.address}set address(I){this.model.address=I}toCsvString(){return this.model.value?1:0}release(){}toString(){return this.model.value.toString()}}class y{constructor(I,B){this.model={address:I.address,type:f.Types.Error,value:B}}get value(){return this.model.value}set value(I){this.model.value=I}get type(){return f.Types.Error}get effectiveType(){return f.Types.Error}get address(){return this.model.address}set address(I){this.model.address=I}toCsvString(){return this.toString()}release(){}toString(){return this.model.value.error.toString()}}class T{constructor(I,B){this.model={address:I.address,type:f.Types.String,value:JSON.stringify(B),rawValue:B}}get value(){return this.model.rawValue}set value(I){this.model.rawValue=I,this.model.value=JSON.stringify(I)}get type(){return f.Types.String}get effectiveType(){return f.Types.String}get address(){return this.model.address}set address(I){this.model.address=I}toCsvString(){return this.model.value}release(){}toString(){return this.model.value}}const C={getType(M){return M==null?f.Types.Null:M instanceof String||typeof M=="string"?f.Types.String:typeof M=="number"?f.Types.Number:typeof M=="boolean"?f.Types.Boolean:M instanceof Date?f.Types.Date:M.text&&M.hyperlink?f.Types.Hyperlink:M.formula||M.sharedFormula?f.Types.Formula:M.richText?f.Types.RichText:M.sharedString?f.Types.SharedString:M.error?f.Types.Error:f.Types.JSON},types:[{t:f.Types.Null,f:l},{t:f.Types.Number,f:u},{t:f.Types.String,f:p},{t:f.Types.Date,f:d},{t:f.Types.Hyperlink,f:v},{t:f.Types.Formula,f:g},{t:f.Types.Merge,f:x},{t:f.Types.JSON,f:T},{t:f.Types.SharedString,f:b},{t:f.Types.RichText,f:m},{t:f.Types.Boolean,f:w},{t:f.Types.Error,f:y}].reduce((M,I)=>(M[I.t]=I.f,M),[]),create(M,I,B){const U=this.types[M];if(!U)throw new Error(`Could not create Value of type ${M}`);return new U(I,B)}};n.exports=f},{"../utils/col-cache":19,"../utils/shared-formula":23,"../utils/under-dash":26,"./enums":7,"./note":9}],4:[function(e,n,i){const s=e("../utils/under-dash"),o=e("./enums"),h=e("../utils/col-cache"),c=9;class a{constructor(l,u,p){this._worksheet=l,this._number=u,p!==!1&&(this.defn=p)}get number(){return this._number}get worksheet(){return this._worksheet}get letter(){return h.n2l(this._number)}get isCustomWidth(){return this.width!==void 0&&this.width!==c}get defn(){return{header:this._header,key:this.key,width:this.width,style:this.style,hidden:this.hidden,outlineLevel:this.outlineLevel}}set defn(l){l?(this.key=l.key,this.width=l.width!==void 0?l.width:c,this.outlineLevel=l.outlineLevel,l.style?this.style=l.style:this.style={},this.header=l.header,this._hidden=!!l.hidden):(delete this._header,delete this._key,delete this.width,this.style={},this.outlineLevel=0)}get headers(){return this._header&&this._header instanceof Array?this._header:[this._header]}get header(){return this._header}set header(l){l!==void 0?(this._header=l,this.headers.forEach((u,p)=>{this._worksheet.getCell(p+1,this.number).value=u})):this._header=void 0}get key(){return this._key}set key(l){(this._key&&this._worksheet.getColumnKey(this._key))===this&&this._worksheet.deleteColumnKey(this._key),this._key=l,l&&this._worksheet.setColumnKey(this._key,this)}get hidden(){return!!this._hidden}set hidden(l){this._hidden=l}get outlineLevel(){return this._outlineLevel||0}set outlineLevel(l){this._outlineLevel=l}get collapsed(){return!!(this._outlineLevel&&this._outlineLevel>=this._worksheet.properties.outlineLevelCol)}toString(){return JSON.stringify({key:this.key,width:this.width,headers:this.headers.length?this.headers:void 0})}equivalentTo(l){return this.width===l.width&&this.hidden===l.hidden&&this.outlineLevel===l.outlineLevel&&s.isEqual(this.style,l.style)}get isDefault(){if(this.isCustomWidth||this.hidden||this.outlineLevel)return!1;const l=this.style;return!(l&&(l.font||l.numFmt||l.alignment||l.border||l.fill||l.protection))}get headerCount(){return this.headers.length}eachCell(l,u){const p=this.number;u||(u=l,l=null),this._worksheet.eachRow(l,(m,d)=>{u(m.getCell(p),d)})}get values(){const l=[];return this.eachCell((u,p)=>{u&&u.type!==o.ValueType.Null&&(l[p]=u.value)}),l}set values(l){if(!l)return;const u=this.number;let p=0;l.hasOwnProperty("0")&&(p=1),l.forEach((m,d)=>{this._worksheet.getCell(d+p,u).value=m})}_applyStyle(l,u){return this.style[l]=u,this.eachCell(p=>{p[l]=u}),u}get numFmt(){return this.style.numFmt}set numFmt(l){this._applyStyle("numFmt",l)}get font(){return this.style.font}set font(l){this._applyStyle("font",l)}get alignment(){return this.style.alignment}set alignment(l){this._applyStyle("alignment",l)}get protection(){return this.style.protection}set protection(l){this._applyStyle("protection",l)}get border(){return this.style.border}set border(l){this._applyStyle("border",l)}get fill(){return this.style.fill}set fill(l){this._applyStyle("fill",l)}static toModel(l){const u=[];let p=null;return l&&l.forEach((m,d)=>{m.isDefault?p&&(p=null):!p||!m.equivalentTo(p)?(p={min:d+1,max:d+1,width:m.width!==void 0?m.width:c,style:m.style,isCustomWidth:m.isCustomWidth,hidden:m.hidden,outlineLevel:m.outlineLevel,collapsed:m.collapsed},u.push(p)):p.max=d+1}),u.length?u:void 0}static fromModel(l,u){u=u||[];const p=[];let m=1,d=0;for(u=u.sort(function(v,x){return v.min-x.min});d{p.removeCellEx(u)})}forEach(u){s.each(this.matrixMap,(p,m)=>{p.forEach(d=>{u(m,d)})})}getNames(u){return this.getNamesEx(o.decodeEx(u))}getNamesEx(u){return s.map(this.matrixMap,(p,m)=>p.findCellEx(u)&&m).filter(Boolean)}_explore(u,p){p.mark=!1;const{sheetName:m}=p,d=new c(p.row,p.col,p.row,p.col,m);let v,x;function g(w,y){const T=u.findCellAt(m,w,p.col);return!T||!T.mark?!1:(d[y]=w,T.mark=!1,!0)}for(x=p.row-1;g(x,"top");x--);for(x=p.row+1;g(x,"bottom");x++);function b(w,y){const T=[];for(x=d.top;x<=d.bottom;x++){const C=u.findCellAt(m,x,w);if(C&&C.mark)T.push(C);else return!1}d[y]=w;for(let C=0;C{d.mark=!0});const m=p.map(d=>d.mark&&this._explore(p,d)).filter(Boolean).map(d=>d.$shortRange);return{name:u,ranges:m}}normaliseMatrix(u,p){u.forEachInSheet(p,(m,d,v)=>{m&&(m.row!==d||m.col!==v)&&(m.row=d,m.col=v,m.address=o.n2l(v)+d)})}spliceRows(u,p,m,d){s.each(this.matrixMap,v=>{v.spliceRows(u,p,m,d),this.normaliseMatrix(v,u)})}spliceColumns(u,p,m,d){s.each(this.matrixMap,v=>{v.spliceColumns(u,p,m,d),this.normaliseMatrix(v,u)})}get model(){return s.map(this.matrixMap,(u,p)=>this.getRanges(p,u)).filter(u=>u.ranges.length)}set model(u){const p=this.matrixMap={};u.forEach(m=>{const d=p[m.name]=new h;m.ranges.forEach(v=>{a.test(v.split("!").pop()||"")&&d.addCell(v)})})}}n.exports=f},{"../utils/cell-matrix":18,"../utils/col-cache":19,"../utils/under-dash":26,"./range":10}],7:[function(e,n,i){n.exports={ValueType:{Null:0,Merge:1,Number:2,String:3,Date:4,Hyperlink:5,Formula:6,SharedString:7,RichText:8,Boolean:9,Error:10},FormulaType:{None:0,Master:1,Shared:2},RelationshipType:{None:0,OfficeDocument:1,Worksheet:2,CalcChain:3,SharedStrings:4,Styles:5,Theme:6,Hyperlink:7},DocumentType:{Xlsx:1},ReadingOrder:{LeftToRight:1,RightToLeft:2},ErrorValue:{NotApplicable:"#N/A",Ref:"#REF!",Name:"#NAME?",DivZero:"#DIV/0!",Null:"#NULL!",Value:"#VALUE!",Num:"#NUM!"}}},{}],8:[function(e,n,i){const s=e("../utils/col-cache"),o=e("./anchor");class h{constructor(a,f){this.worksheet=a,this.model=f}get model(){switch(this.type){case"background":return{type:this.type,imageId:this.imageId};case"image":return{type:this.type,imageId:this.imageId,hyperlinks:this.range.hyperlinks,range:{tl:this.range.tl.model,br:this.range.br&&this.range.br.model,ext:this.range.ext,editAs:this.range.editAs}};default:throw new Error("Invalid Image Type")}}set model(a){let{type:f,imageId:l,range:u,hyperlinks:p}=a;if(this.type=f,this.imageId=l,f==="image")if(typeof u=="string"){const m=s.decode(u);this.range={tl:new o(this.worksheet,{col:m.left,row:m.top},-1),br:new o(this.worksheet,{col:m.right,row:m.bottom},0),editAs:"oneCell"}}else this.range={tl:new o(this.worksheet,u.tl,0),br:u.br&&new o(this.worksheet,u.br,0),ext:u.ext,editAs:u.editAs,hyperlinks:p||u.hyperlinks}}}n.exports=h},{"../utils/col-cache":19,"./anchor":2}],9:[function(e,n,i){const s=e("../utils/under-dash");class o{constructor(c){this.note=c}get model(){let c=null;switch(typeof this.note){case"string":c={type:"note",note:{texts:[{text:this.note}]}};break;default:c={type:"note",note:this.note};break}return s.deepMerge({},o.DEFAULT_CONFIGS,c)}set model(c){const{note:a}=c,{texts:f}=a;f.length===1&&Object.keys(f[0]).length===1?this.note=f[0].text:this.note=a}static fromModel(c){const a=new o;return a.model=c,a}}o.DEFAULT_CONFIGS={note:{margins:{insetmode:"auto",inset:[.13,.13,.25,.25]},protection:{locked:"True",lockText:"True"},editAs:"absolute"}},n.exports=o},{"../utils/under-dash":26}],10:[function(e,n,i){const s=e("../utils/col-cache");class o{constructor(){this.decode(arguments)}setTLBR(c,a,f,l,u){if(arguments.length<4){const p=s.decodeAddress(c),m=s.decodeAddress(a);this.model={top:Math.min(p.row,m.row),left:Math.min(p.col,m.col),bottom:Math.max(p.row,m.row),right:Math.max(p.col,m.col),sheetName:f},this.setTLBR(p.row,p.col,m.row,m.col,u)}else this.model={top:Math.min(c,f),left:Math.min(a,l),bottom:Math.max(c,f),right:Math.max(a,l),sheetName:u}}decode(c){switch(c.length){case 5:this.setTLBR(c[0],c[1],c[2],c[3],c[4]);break;case 4:this.setTLBR(c[0],c[1],c[2],c[3]);break;case 3:this.setTLBR(c[0],c[1],c[2]);break;case 2:this.setTLBR(c[0],c[1]);break;case 1:{const a=c[0];if(a instanceof o)this.model={top:a.model.top,left:a.model.left,bottom:a.model.bottom,right:a.model.right,sheetName:a.sheetName};else if(a instanceof Array)this.decode(a);else if(a.top&&a.left&&a.bottom&&a.right)this.model={top:a.top,left:a.left,bottom:a.bottom,right:a.right,sheetName:a.sheetName};else{const f=s.decodeEx(a);f.top?this.model={top:f.top,left:f.left,bottom:f.bottom,right:f.right,sheetName:f.sheetName}:this.model={top:f.row,left:f.col,bottom:f.row,right:f.col,sheetName:f.sheetName}}break}case 0:this.model={top:0,left:0,bottom:0,right:0};break;default:throw new Error(`Invalid number of arguments to _getDimensions() - ${c.length}`)}}get top(){return this.model.top||1}set top(c){this.model.top=c}get left(){return this.model.left||1}set left(c){this.model.left=c}get bottom(){return this.model.bottom||1}set bottom(c){this.model.bottom=c}get right(){return this.model.right||1}set right(c){this.model.right=c}get sheetName(){return this.model.sheetName}set sheetName(c){this.model.sheetName=c}get _serialisedSheetName(){const{sheetName:c}=this.model;return c?/^[a-zA-Z0-9]*$/.test(c)?`${c}!`:`'${c}'!`:""}expand(c,a,f,l){(!this.model.top||cthis.bottom)&&(this.bottom=f),(!this.model.right||l>this.right)&&(this.right=l)}expandRow(c){if(c){const{dimensions:a,number:f}=c;a&&this.expand(f,a.min,f,a.max)}}expandToAddress(c){const a=s.decodeEx(c);this.expand(a.row,a.col,a.row,a.col)}get tl(){return s.n2l(this.left)+this.top}get $t$l(){return`$${s.n2l(this.left)}$${this.top}`}get br(){return s.n2l(this.right)+this.bottom}get $b$r(){return`$${s.n2l(this.right)}$${this.bottom}`}get range(){return`${this._serialisedSheetName+this.tl}:${this.br}`}get $range(){return`${this._serialisedSheetName+this.$t$l}:${this.$b$r}`}get shortRange(){return this.count>1?this.range:this._serialisedSheetName+this.tl}get $shortRange(){return this.count>1?this.$range:this._serialisedSheetName+this.$t$l}get count(){return(1+this.bottom-this.top)*(1+this.right-this.left)}toString(){return this.range}intersects(c){return!(c.sheetName&&this.sheetName&&c.sheetName!==this.sheetName||c.bottomthis.bottom||c.rightthis.right)}contains(c){const a=s.decodeEx(c);return this.containsEx(a)}containsEx(c){return c.sheetName&&this.sheetName&&c.sheetName!==this.sheetName?!1:c.row>=this.top&&c.row<=this.bottom&&c.col>=this.left&&c.col<=this.right}forEachAddress(c){for(let a=this.left;a<=this.right;a++)for(let f=this.top;f<=this.bottom;f++)c(s.encodeAddress(f,a),f,a)}}n.exports=o},{"../utils/col-cache":19}],11:[function(e,n,i){const s=e("../utils/under-dash"),o=e("./enums"),h=e("../utils/col-cache"),c=e("./cell");class a{constructor(l,u){this._worksheet=l,this._number=u,this._cells=[],this.style={},this.outlineLevel=0}get number(){return this._number}get worksheet(){return this._worksheet}commit(){this._worksheet._commitRow(this)}destroy(){delete this._worksheet,delete this._cells,delete this.style}findCell(l){return this._cells[l-1]}getCellEx(l){let u=this._cells[l.col-1];if(!u){const p=this._worksheet.getColumn(l.col);u=new c(this,p,l.address),this._cells[l.col-1]=u}return u}getCell(l){if(typeof l=="string"){const u=this._worksheet.getColumnKey(l);u?l=u.number:l=h.l2n(l)}return this._cells[l-1]||this.getCellEx({address:h.encodeAddress(this._number,l),row:this._number,col:l})}splice(l,u){const p=l+u;for(var m=arguments.length,d=new Array(m>2?m-2:0),v=2;v0)for(b=g;b>=p;b--)w=this._cells[b-1],w?(y=this.getCell(b+x),y.value=w.value,y.style=w.style,y._comment=w._comment):this._cells[b+x-1]=void 0;for(b=0;b{p&&p.type!==o.ValueType.Null&&u(p,m+1)})}addPageBreak(l,u){const p=this._worksheet,m=Math.max(0,l-1)||0,d=Math.max(0,u-1)||16838,v={id:this._number,max:d,man:1};m&&(v.min=m),p.rowBreaks.push(v)}get values(){const l=[];return this._cells.forEach(u=>{u&&u.type!==o.ValueType.Null&&(l[u.col]=u.value)}),l}set values(l){if(this._cells=[],l)if(l instanceof Array){let u=0;l.hasOwnProperty("0")&&(u=1),l.forEach((p,m)=>{p!==void 0&&(this.getCellEx({address:h.encodeAddress(this._number,m+u),row:this._number,col:m+u}).value=p)})}else this._worksheet.eachColumnKey((u,p)=>{l[p]!==void 0&&(this.getCellEx({address:h.encodeAddress(this._number,u.number),row:this._number,col:u.number}).value=l[p])})}get hasValues(){return s.some(this._cells,l=>l&&l.type!==o.ValueType.Null)}get cellCount(){return this._cells.length}get actualCellCount(){let l=0;return this.eachCell(()=>{l++}),l}get dimensions(){let l=0,u=0;return this._cells.forEach(p=>{p&&p.type!==o.ValueType.Null&&((!l||l>p.col)&&(l=p.col),u0?{min:l,max:u}:null}_applyStyle(l,u){return this.style[l]=u,this._cells.forEach(p=>{p&&(p[l]=u)}),u}get numFmt(){return this.style.numFmt}set numFmt(l){this._applyStyle("numFmt",l)}get font(){return this.style.font}set font(l){this._applyStyle("font",l)}get alignment(){return this.style.alignment}set alignment(l){this._applyStyle("alignment",l)}get protection(){return this.style.protection}set protection(l){this._applyStyle("protection",l)}get border(){return this.style.border}set border(l){this._applyStyle("border",l)}get fill(){return this.style.fill}set fill(l){this._applyStyle("fill",l)}get hidden(){return!!this._hidden}set hidden(l){this._hidden=l}get outlineLevel(){return this._outlineLevel||0}set outlineLevel(l){this._outlineLevel=l}get collapsed(){return!!(this._outlineLevel&&this._outlineLevel>=this._worksheet.properties.outlineLevelRow)}get model(){const l=[];let u=0,p=0;return this._cells.forEach(m=>{if(m){const d=m.model;d&&((!u||u>m.col)&&(u=m.col),p{switch(p.type){case c.Types.Merge:break;default:{let m;if(p.address)m=h.decodeAddress(p.address);else if(u){const{row:v}=u,x=u.col+1;m={row:v,col:x,address:h.encodeAddress(v,x),$col$row:`$${h.n2l(x)}$${v}`}}u=m;const d=this.getCellEx(m);d.model=p;break}}}),l.height?this.height=l.height:delete this.height,this.hidden=l.hidden,this.outlineLevel=l.outlineLevel||0,this.style=l.style&&JSON.parse(JSON.stringify(l.style))||{}}}n.exports=a},{"../utils/col-cache":19,"../utils/under-dash":26,"./cell":3,"./enums":7}],12:[function(e,n,i){const s=e("../utils/col-cache");class o{constructor(a,f,l){this.table=a,this.column=f,this.index=l}_set(a,f){this.table.cacheState(),this.column[a]=f}get name(){return this.column.name}set name(a){this._set("name",a)}get filterButton(){return this.column.filterButton}set filterButton(a){this.column.filterButton=a}get style(){return this.column.style}set style(a){this.column.style=a}get totalsRowLabel(){return this.column.totalsRowLabel}set totalsRowLabel(a){this._set("totalsRowLabel",a)}get totalsRowFunction(){return this.column.totalsRowFunction}set totalsRowFunction(a){this._set("totalsRowFunction",a)}get totalsRowResult(){return this.column.totalsRowResult}set totalsRowResult(a){this._set("totalsRowResult",a)}get totalsRowFormula(){return this.column.totalsRowFormula}set totalsRowFormula(a){this._set("totalsRowFormula",a)}}class h{constructor(a,f){this.worksheet=a,f&&(this.table=f,this.validate(),this.store())}getFormula(a){switch(a.totalsRowFunction){case"none":return null;case"average":return`SUBTOTAL(101,${this.table.name}[${a.name}])`;case"countNums":return`SUBTOTAL(102,${this.table.name}[${a.name}])`;case"count":return`SUBTOTAL(103,${this.table.name}[${a.name}])`;case"max":return`SUBTOTAL(104,${this.table.name}[${a.name}])`;case"min":return`SUBTOTAL(105,${this.table.name}[${a.name}])`;case"stdDev":return`SUBTOTAL(106,${this.table.name}[${a.name}])`;case"var":return`SUBTOTAL(107,${this.table.name}[${a.name}])`;case"sum":return`SUBTOTAL(109,${this.table.name}[${a.name}])`;case"custom":return a.totalsRowFormula;default:throw new Error(`Invalid Totals Row Function: ${a.totalsRowFunction}`)}}get width(){return this.table.columns.length}get height(){return this.table.rows.length}get filterHeight(){return this.height+(this.table.headerRow?1:0)}get tableHeight(){return this.filterHeight+(this.table.totalsRow?1:0)}validate(){const{table:a}=this,f=(x,g,b)=>{x[g]===void 0&&(x[g]=b)};f(a,"headerRow",!0),f(a,"totalsRow",!1),f(a,"style",{}),f(a.style,"theme","TableStyleMedium2"),f(a.style,"showFirstColumn",!1),f(a.style,"showLastColumn",!1),f(a.style,"showRowStripes",!1),f(a.style,"showColumnStripes",!1);const l=(x,g)=>{if(!x)throw new Error(g)};l(a.ref,"Table must have ref"),l(a.columns,"Table must have column definitions"),l(a.rows,"Table must have row definitions"),a.tl=s.decodeAddress(a.ref);const{row:u,col:p}=a.tl;l(u>0,"Table must be on valid row"),l(p>0,"Table must be on valid col");const{width:m,filterHeight:d,tableHeight:v}=this;a.autoFilterRef=s.encode(u,p,u+d-1,p+m-1),a.tableRef=s.encode(u,p,u+v-1,p+m-1),a.columns.forEach((x,g)=>{l(x.name,`Column ${g} must have a name`),g===0?f(x,"totalsRowLabel","Total"):(f(x,"totalsRowFunction","none"),x.totalsRowFormula=this.getFormula(x))})}store(){const a=(d,v)=>{v&&Object.keys(v).forEach(x=>{d[x]=v[x]})},{worksheet:f,table:l}=this,{row:u,col:p}=l.tl;let m=0;if(l.headerRow){const d=f.getRow(u+m++);l.columns.forEach((v,x)=>{const{style:g,name:b}=v,w=d.getCell(p+x);w.value=b,a(w,g)})}if(l.rows.forEach(d=>{const v=f.getRow(u+m++);d.forEach((x,g)=>{const b=v.getCell(p+g);b.value=x,a(b,l.columns[g].style)})}),l.totalsRow){const d=f.getRow(u+m++);l.columns.forEach((v,x)=>{const g=d.getCell(p+x);x===0?g.value=v.totalsRowLabel:this.getFormula(v)?g.value={formula:v.totalsRowFormula,result:v.totalsRowResult}:g.value=null,a(g,v.style)})}}load(a){const{table:f}=this,{row:l,col:u}=f.tl;let p=0;if(f.headerRow){const m=a.getRow(l+p++);f.columns.forEach((d,v)=>{const x=m.getCell(u+v);x.value=d.name})}if(f.rows.forEach(m=>{const d=a.getRow(l+p++);m.forEach((v,x)=>{const g=d.getCell(u+x);g.value=v})}),f.totalsRow){const m=a.getRow(l+p++);f.columns.forEach((d,v)=>{const x=m.getCell(u+v);v===0?x.value=d.totalsRowLabel:this.getFormula(d)&&(x.value={formula:d.totalsRowFormula,result:d.totalsRowResult})})}}get model(){return this.table}set model(a){this.table=a}cacheState(){this._cache||(this._cache={ref:this.ref,width:this.width,tableHeight:this.tableHeight})}commit(){if(!this._cache)return;this.validate();const a=s.decodeAddress(this._cache.ref);if(this.ref!==this._cache.ref)for(let f=0;f1&&arguments[1]!==void 0?arguments[1]:1;this.cacheState(),this.table.rows.splice(a,f)}getColumn(a){const f=this.table.columns[a];return new o(this,f,a)}addColumn(a,f,l){this.cacheState(),l===void 0?(this.table.columns.push(a),this.table.rows.forEach((u,p)=>{u.push(f[p])})):(this.table.columns.splice(l,0,a),this.table.rows.forEach((u,p)=>{u.splice(l,0,f[p])}))}removeColumns(a){let f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;this.cacheState(),this.table.columns.splice(a,f),this.table.rows.forEach(l=>{l.splice(a,f)})}_assign(a,f,l){this.cacheState(),a[f]=l}get ref(){return this.table.ref}set ref(a){this._assign(this.table,"ref",a)}get name(){return this.table.name}set name(a){this.table.name=a}get displayName(){return this.table.displyName||this.table.name}set displayNamename(a){this.table.displayName=a}get headerRow(){return this.table.headerRow}set headerRow(a){this._assign(this.table,"headerRow",a)}get totalsRow(){return this.table.totalsRow}set totalsRow(a){this._assign(this.table,"totalsRow",a)}get theme(){return this.table.style.name}set theme(a){this.table.style.name=a}get showFirstColumn(){return this.table.style.showFirstColumn}set showFirstColumn(a){this.table.style.showFirstColumn=a}get showLastColumn(){return this.table.style.showLastColumn}set showLastColumn(a){this.table.style.showLastColumn=a}get showRowStripes(){return this.table.style.showRowStripes}set showRowStripes(a){this.table.style.showRowStripes=a}get showColumnStripes(){return this.table.style.showColumnStripes}set showColumnStripes(a){this.table.style.showColumnStripes=a}}n.exports=h},{"../utils/col-cache":19}],13:[function(e,n,i){const s=e("./worksheet"),o=e("./defined-names"),h=e("../xlsx/xlsx"),c=e("../csv/csv");class a{constructor(){this.category="",this.company="",this.created=new Date,this.description="",this.keywords="",this.manager="",this.modified=this.created,this.properties={},this.calcProperties={},this._worksheets=[],this.subject="",this.title="",this.views=[],this.media=[],this._definedNames=new o}get xlsx(){return this._xlsx||(this._xlsx=new h(this)),this._xlsx}get csv(){return this._csv||(this._csv=new c(this)),this._csv}get nextId(){for(let l=1;l(g&&g.orderNo)>x?g.orderNo:x,0),d=Object.assign({},u,{id:p,name:l,orderNo:m+1,workbook:this}),v=new s(d);return this._worksheets[p]=v,v}removeWorksheetEx(l){delete this._worksheets[l.id]}removeWorksheet(l){const u=this.getWorksheet(l);u&&u.destroy()}getWorksheet(l){if(l===void 0)return this._worksheets.find(Boolean);if(typeof l=="number")return this._worksheets[l];if(typeof l=="string")return this._worksheets.find(u=>u&&u.name===l)}get worksheets(){return this._worksheets.slice(1).sort((l,u)=>l.orderNo-u.orderNo).filter(Boolean)}eachSheet(l){this.worksheets.forEach(u=>{l(u,u.id)})}get definedNames(){return this._definedNames}clearThemes(){this._themes=void 0}addImage(l){const u=this.media.length;return this.media.push(Object.assign({},l,{type:"image"})),u}getImage(l){return this.media[l]}get model(){return{creator:this.creator||"Unknown",lastModifiedBy:this.lastModifiedBy||"Unknown",lastPrinted:this.lastPrinted,created:this.created,modified:this.modified,properties:this.properties,worksheets:this.worksheets.map(l=>l.model),sheets:this.worksheets.map(l=>l.model).filter(Boolean),definedNames:this._definedNames.model,views:this.views,company:this.company,manager:this.manager,title:this.title,subject:this.subject,keywords:this.keywords,category:this.category,description:this.description,language:this.language,revision:this.revision,contentStatus:this.contentStatus,themes:this._themes,media:this.media,calcProperties:this.calcProperties}}set model(l){this.creator=l.creator,this.lastModifiedBy=l.lastModifiedBy,this.lastPrinted=l.lastPrinted,this.created=l.created,this.modified=l.modified,this.company=l.company,this.manager=l.manager,this.title=l.title,this.subject=l.subject,this.keywords=l.keywords,this.category=l.category,this.description=l.description,this.language=l.language,this.revision=l.revision,this.contentStatus=l.contentStatus,this.properties=l.properties,this.calcProperties=l.calcProperties,this._worksheets=[],l.worksheets.forEach(u=>{const{id:p,name:m,state:d}=u,v=l.sheets&&l.sheets.findIndex(g=>g.id===p),x=this._worksheets[p]=new s({id:p,name:m,orderNo:v,state:d,workbook:this});x.model=u}),this._definedNames.model=l.definedNames,this.views=l.views,this._themes=l.themes,this.media=l.media||[]}}n.exports=a},{"../csv/csv":1,"../xlsx/xlsx":144,"./defined-names":6,"./worksheet":14}],14:[function(e,n,i){const s=e("../utils/under-dash"),o=e("../utils/col-cache"),h=e("./range"),c=e("./row"),a=e("./column"),f=e("./enums"),l=e("./image"),u=e("./table"),p=e("./data-validations"),m=e("../utils/encryptor"),{copyStyle:d}=e("../utils/copy-style");class v{constructor(g){g=g||{},this._workbook=g.workbook,this.id=g.id,this.orderNo=g.orderNo,this.name=g.name,this.state=g.state||"visible",this._rows=[],this._columns=null,this._keys={},this._merges={},this.rowBreaks=[],this.properties=Object.assign({},{defaultRowHeight:15,dyDescent:55,outlineLevelCol:0,outlineLevelRow:0},g.properties),this.pageSetup=Object.assign({},{margins:{left:.7,right:.7,top:.75,bottom:.75,header:.3,footer:.3},orientation:"portrait",horizontalDpi:4294967295,verticalDpi:4294967295,fitToPage:!!(g.pageSetup&&(g.pageSetup.fitToWidth||g.pageSetup.fitToHeight)&&!g.pageSetup.scale),pageOrder:"downThenOver",blackAndWhite:!1,draft:!1,cellComments:"None",errors:"displayed",scale:100,fitToWidth:1,fitToHeight:1,paperSize:void 0,showRowColHeaders:!1,showGridLines:!1,firstPageNumber:void 0,horizontalCentered:!1,verticalCentered:!1,rowBreaks:null,colBreaks:null},g.pageSetup),this.headerFooter=Object.assign({},{differentFirst:!1,differentOddEven:!1,oddHeader:null,oddFooter:null,evenHeader:null,evenFooter:null,firstHeader:null,firstFooter:null},g.headerFooter),this.dataValidations=new p,this.views=g.views||[],this.autoFilter=g.autoFilter||null,this._media=[],this.sheetProtection=null,this.tables={},this.conditionalFormattings=[]}get name(){return this._name}set name(g){if(g===void 0&&(g=`sheet${this.id}`),this._name!==g){if(typeof g!="string")throw new Error("The name has to be a string.");if(g==="")throw new Error("The name can't be empty.");if(g==="History")throw new Error('The name "History" is protected. Please use a different name.');if(/[*?:/\\[\]]/.test(g))throw new Error(`Worksheet name ${g} cannot include any of the following characters: * ? : \\ / [ ]`);if(/(^')|('$)/.test(g))throw new Error(`The first or last character of worksheet name cannot be a single quotation mark: ${g}`);if(g&&g.length>31&&(console.warn(`Worksheet name ${g} exceeds 31 chars. This will be truncated`),g=g.substring(0,31)),this._workbook._worksheets.find(b=>b&&b.name.toLowerCase()===g.toLowerCase()))throw new Error(`Worksheet name already exists: ${g}`);this._name=g}}get workbook(){return this._workbook}destroy(){this._workbook.removeWorksheetEx(this)}get dimensions(){const g=new h;return this._rows.forEach(b=>{if(b){const w=b.dimensions;w&&g.expand(b.number,w.min,b.number,w.max)}}),g}get columns(){return this._columns}set columns(g){this._headerRowCount=g.reduce((y,T)=>{const C=T.header&&1||T.headers&&T.headers.length||0;return Math.max(y,C)},0);let b=1;const w=this._columns=[];g.forEach(y=>{const T=new a(this,b++,!1);w.push(T),T.defn=y})}getColumnKey(g){return this._keys[g]}setColumnKey(g,b){this._keys[g]=b}deleteColumnKey(g){delete this._keys[g]}eachColumnKey(g){s.each(this._keys,g)}getColumn(g){if(typeof g=="string"){const b=this._keys[g];if(b)return b;g=o.l2n(g)}if(this._columns||(this._columns=[]),g>this._columns.length){let b=this._columns.length+1;for(;b<=g;)this._columns.push(new a(this,b++))}return this._columns[g-1]}spliceColumns(g,b){const y=this._rows.length;for(var T=arguments.length,C=new Array(T>2?T-2:0),M=2;M0)for(let j=0;j{H.push(L[j]||null)});const G=this.getRow(j+1);G.splice.apply(G,H)}else this._rows.forEach(j=>{j&&j.splice(g,b)});const I=C.length-b,B=g+b,U=this._columns.length;if(I<0)for(let j=g+C.length;j<=U;j++)this.getColumn(j).defn=this.getColumn(j-I).defn;else if(I>0)for(let j=U;j>=B;j--)this.getColumn(j+I).defn=this.getColumn(j).defn;for(let j=g;j{g=Math.max(g,b.cellCount)}),g}get actualColumnCount(){const g=[];let b=0;return this.eachRow(w=>{w.eachCell(y=>{let{col:T}=y;g[T]||(g[T]=!0,b++)})}),b}_commitRow(){}get _lastRowNumber(){const g=this._rows;let b=g.length;for(;b>0&&g[b-1]===void 0;)b--;return b}get _nextRow(){return this._lastRowNumber+1}get lastRow(){if(this._rows.length)return this._rows[this._rows.length-1]}findRow(g){return this._rows[g-1]}findRows(g,b){return this._rows.slice(g-1,g-1+b)}get rowCount(){return this._lastRowNumber}get actualRowCount(){let g=0;return this.eachRow(()=>{g++}),g}getRow(g){let b=this._rows[g-1];return b||(b=this._rows[g-1]=new c(this,g)),b}getRows(g,b){if(b<1)return;const w=[];for(let y=g;y1&&arguments[1]!==void 0?arguments[1]:"n";const w=this._nextRow,y=this.getRow(w);return y.values=g,this._setStyleOption(w,b[0]==="i"?b:"n"),y}addRows(g){let b=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"n";const w=[];return g.forEach(y=>{w.push(this.addRow(y,b))}),w}insertRow(g,b){let w=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"n";return this.spliceRows(g,0,b),this._setStyleOption(g,w),this.getRow(g)}insertRows(g,b){let w=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"n";if(this.spliceRows(g,0,...b),w!=="n")for(let y=0;y1&&arguments[1]!==void 0?arguments[1]:"n";b[0]==="o"&&this.findRow(g+1)!==void 0?this._copyStyle(g+1,g,b[1]==="+"):b[0]==="i"&&this.findRow(g-1)!==void 0&&this._copyStyle(g-1,g,b[1]==="+")}_copyStyle(g,b){let w=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const y=this.getRow(g),T=this.getRow(b);T.style=d(y.style),y.eachCell({includeEmpty:w},(C,M)=>{T.getCell(M).style=d(C.style)}),T.height=y.height}duplicateRow(g,b){let w=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const y=this._rows[g-1],T=new Array(b).fill(y.values);this.spliceRows(g+1,w?0:b,...T);for(let C=0;C{M.getCell(B).style=I.style})}}spliceRows(g,b){const w=g+b;for(var y=arguments.length,T=new Array(y>2?y-2:0),C=2;C{H.getCell(L).style=G.style}),this._rows[U-1]=void 0}else this._rows[U+I-1]=void 0;else if(I>0)for(U=B;U>=w;U--)if(j=this._rows[U-1],j){const H=this.getRow(U+I);H.values=j.values,H.style=j.style,H.height=j.height,j.eachCell({includeEmpty:!0},(G,L)=>{if(H.getCell(L).style=G.style,G._value.constructor.name==="MergeValue"){const R=this.getRow(G._row._number+M).getCell(L),F=G._value._master,_=this.getRow(F._row._number+M).getCell(F._column._number);R.merge(_)}})}else this._rows[U+I-1]=void 0;for(U=0;U{w&&w.hasValues&&b(w,w.number)})}getSheetValues(){const g=[];return this._rows.forEach(b=>{b&&(g[b.number]=b.values)}),g}findCell(g,b){const w=o.getAddress(g,b),y=this._rows[w.row-1];return y?y.findCell(w.col):void 0}getCell(g,b){const w=o.getAddress(g,b);return this.getRow(w.row).getCellEx(w)}mergeCells(){for(var g=arguments.length,b=new Array(g),w=0;w{if(y.intersects(g))throw new Error("Cannot merge already merged cells")});const w=this.getCell(g.top,g.left);for(let y=g.top;y<=g.bottom;y++)for(let T=g.left;T<=g.right;T++)(y>g.top||T>g.left)&&this.getCell(y,T).merge(w,b);this._merges[w.address]=g}_unMergeMaster(g){const b=this._merges[g.address];if(b){for(let w=b.top;w<=b.bottom;w++)for(let y=b.left;y<=b.right;y++)this.getCell(w,y).unmerge();delete this._merges[g.address]}}get hasMerges(){return s.some(this._merges,Boolean)}unMergeCells(){for(var g=arguments.length,b=new Array(g),w=0;w3&&arguments[3]!==void 0?arguments[3]:"shared";const T=o.decode(g),{top:C,left:M,bottom:I,right:B}=T,U=B-M+1,j=o.encodeAddress(C,M),H=y==="shared";let G;typeof w=="function"?G=w:Array.isArray(w)?Array.isArray(w[0])?G=(R,F)=>w[R-C][F-M]:G=(R,F)=>w[(R-C)*U+(F-M)]:G=()=>{};let L=!0;for(let R=C;R<=I;R++)for(let F=M;F<=B;F++)L?(this.getCell(R,F).value={shareType:y,formula:b,ref:g,result:G(R,F)},L=!1):this.getCell(R,F).value=H?{sharedFormula:j,result:G(R,F)}:G(R,F)}addImage(g,b){const w={type:"image",imageId:g,range:b};this._media.push(new l(this,w))}getImages(){return this._media.filter(g=>g.type==="image")}addBackgroundImage(g){const b={type:"background",imageId:g};this._media.push(new l(this,b))}getBackgroundImageId(){const g=this._media.find(b=>b.type==="background");return g&&g.imageId}protect(g,b){return new Promise(w=>{this.sheetProtection={sheet:!0},b&&"spinCount"in b&&(b.spinCount=Number.isFinite(b.spinCount)?Math.round(Math.max(0,b.spinCount)):1e5),g&&(this.sheetProtection.algorithmName="SHA-512",this.sheetProtection.saltValue=m.randomBytes(16).toString("base64"),this.sheetProtection.spinCount=b&&"spinCount"in b?b.spinCount:1e5,this.sheetProtection.hashValue=m.convertPasswordToHash(g,"SHA512",this.sheetProtection.saltValue,this.sheetProtection.spinCount)),b&&(this.sheetProtection=Object.assign(this.sheetProtection,b),!g&&"spinCount"in b&&delete this.sheetProtection.spinCount),w()})}unprotect(){this.sheetProtection=null}addTable(g){const b=new u(this,g);return this.tables[g.name]=b,b}getTable(g){return this.tables[g]}removeTable(g){delete this.tables[g]}getTables(){return Object.values(this.tables)}addConditionalFormatting(g){this.conditionalFormattings.push(g)}removeConditionalFormatting(g){typeof g=="number"?this.conditionalFormattings.splice(g,1):g instanceof Function?this.conditionalFormattings=this.conditionalFormattings.filter(g):this.conditionalFormattings=[]}get tabColor(){return console.trace("worksheet.tabColor property is now deprecated. Please use worksheet.properties.tabColor"),this.properties.tabColor}set tabColor(g){console.trace("worksheet.tabColor property is now deprecated. Please use worksheet.properties.tabColor"),this.properties.tabColor=g}get model(){const g={id:this.id,name:this.name,dataValidations:this.dataValidations.model,properties:this.properties,state:this.state,pageSetup:this.pageSetup,headerFooter:this.headerFooter,rowBreaks:this.rowBreaks,views:this.views,autoFilter:this.autoFilter,media:this._media.map(y=>y.model),sheetProtection:this.sheetProtection,tables:Object.values(this.tables).map(y=>y.model),conditionalFormattings:this.conditionalFormattings};g.cols=a.toModel(this.columns);const b=g.rows=[],w=g.dimensions=new h;return this._rows.forEach(y=>{const T=y&&y.model;T&&(w.expand(T.number,T.min,T.number,T.max),b.push(T))}),g.merges=[],s.each(this._merges,y=>{g.merges.push(y.range)}),g}_parseRows(g){this._rows=[],g.rows.forEach(b=>{const w=new c(this,b.number);this._rows[w.number-1]=w,w.model=b})}_parseMergeCells(g){s.each(g.mergeCells,b=>{this.mergeCellsWithoutStyle(b)})}set model(g){this.name=g.name,this._columns=a.fromModel(this,g.cols),this._parseRows(g),this._parseMergeCells(g),this.dataValidations=new p(g.dataValidations),this.properties=g.properties,this.pageSetup=g.pageSetup,this.headerFooter=g.headerFooter,this.views=g.views,this.autoFilter=g.autoFilter,this._media=g.media.map(b=>new l(this,b)),this.sheetProtection=g.sheetProtection,this.tables=g.tables.reduce((b,w)=>{const y=new u;return y.model=w,b[w.name]=y,b},{}),this.conditionalFormattings=g.conditionalFormattings}}n.exports=v},{"../utils/col-cache":19,"../utils/copy-style":20,"../utils/encryptor":21,"../utils/under-dash":26,"./column":4,"./data-validations":5,"./enums":7,"./image":8,"./range":10,"./row":11,"./table":12}],15:[function(e,n,i){e("core-js/modules/es.promise"),e("core-js/modules/es.promise.finally"),e("core-js/modules/es.object.assign"),e("core-js/modules/es.object.keys"),e("core-js/modules/es.object.values"),e("core-js/modules/es.symbol"),e("core-js/modules/es.symbol.async-iterator"),e("core-js/modules/es.array.iterator"),e("core-js/modules/es.array.includes"),e("core-js/modules/es.array.find-index"),e("core-js/modules/es.array.find"),e("core-js/modules/es.string.from-code-point"),e("core-js/modules/es.string.includes"),e("core-js/modules/es.number.is-nan"),e("regenerator-runtime/runtime");const s={Workbook:e("./doc/workbook")},o=e("./doc/enums");Object.keys(o).forEach(h=>{s[h]=o[h]}),n.exports=s},{"./doc/enums":7,"./doc/workbook":13,"core-js/modules/es.array.find":359,"core-js/modules/es.array.find-index":358,"core-js/modules/es.array.includes":360,"core-js/modules/es.array.iterator":361,"core-js/modules/es.number.is-nan":363,"core-js/modules/es.object.assign":364,"core-js/modules/es.object.keys":366,"core-js/modules/es.object.values":367,"core-js/modules/es.promise":372,"core-js/modules/es.promise.finally":371,"core-js/modules/es.string.from-code-point":376,"core-js/modules/es.string.includes":377,"core-js/modules/es.symbol":381,"core-js/modules/es.symbol.async-iterator":378,"regenerator-runtime/runtime":492}],16:[function(e,n,i){const s=typeof TextDecoder>"u"?null:new TextDecoder("utf-8");function o(h){return typeof h=="string"?h:s?s.decode(h):h.toString()}i.bufferToString=o},{}],17:[function(e,n,i){const s=typeof TextEncoder>"u"?null:new TextEncoder("utf-8"),{Buffer:o}=e("buffer");function h(c){return typeof c!="string"?c:s?o.from(s.encode(c).buffer):o.from(c)}i.stringToBuffer=h},{buffer:220}],18:[function(e,n,i){const s=e("./under-dash"),o=e("./col-cache");class h{constructor(a){this.template=a,this.sheets={}}addCell(a){this.addCellEx(o.decodeEx(a))}getCell(a){return this.findCellEx(o.decodeEx(a),!0)}findCell(a){return this.findCellEx(o.decodeEx(a),!1)}findCellAt(a,f,l){const u=this.sheets[a],p=u&&u[f];return p&&p[l]}addCellEx(a){if(a.top)for(let f=a.top;f<=a.bottom;f++)for(let l=a.left;l<=a.right;l++)this.getCellAt(a.sheetName,f,l);else this.findCellEx(a,!0)}getCellEx(a){return this.findCellEx(a,!0)}findCellEx(a,f){const l=this.findSheet(a,f),u=this.findSheetRow(l,a,f);return this.findRowCell(u,a,f)}getCellAt(a,f,l){const u=this.sheets[a]||(this.sheets[a]=[]),p=u[f]||(u[f]=[]);return p[l]||(p[l]={sheetName:a,address:o.n2l(l)+f,row:f,col:l})}removeCellEx(a){const f=this.findSheet(a);if(!f)return;const l=this.findSheetRow(f,a);l&&delete l[a.col]}forEachInSheet(a,f){const l=this.sheets[a];l&&l.forEach((u,p)=>{u&&u.forEach((m,d)=>{m&&f(m,p,d)})})}forEach(a){s.each(this.sheets,(f,l)=>{this.forEachInSheet(l,a)})}map(a){const f=[];return this.forEach(l=>{f.push(a(l))}),f}findSheet(a,f){const l=a.sheetName;if(this.sheets[l])return this.sheets[l];if(f)return this.sheets[l]=[]}findSheetRow(a,f,l){const{row:u}=f;if(a&&a[u])return a[u];if(l)return a[u]=[]}findRowCell(a,f,l){const{col:u}=f;if(a&&a[u])return a[u];if(l)return a[u]=this.template?Object.assign(f,JSON.parse(JSON.stringify(this.template))):f}spliceRows(a,f,l,u){const p=this.sheets[a];if(p){const m=[];for(let d=0;d{d.splice(f,l,...m)})}}}n.exports=h},{"./col-cache":19,"./under-dash":26}],19:[function(e,n,i){const s=/^[A-Z]+\d+$/,o={_dictionary:["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"],_l2nFill:0,_l2n:{},_n2l:[],_level(h){return h<=26?1:h<=676?2:3},_fill(h){let c,a,f,l,u,p=1;if(h>=4)throw new Error("Out of bounds. Excel supports columns from 1 to 16384");if(this._l2nFill<1&&h>=1){for(;p<=26;)c=this._dictionary[p-1],this._n2l[p]=c,this._l2n[c]=p,p++;this._l2nFill=1}if(this._l2nFill<2&&h>=2){for(p=27;p<=702;)a=p-27,f=a%26,l=Math.floor(a/26),c=this._dictionary[l]+this._dictionary[f],this._n2l[p]=c,this._l2n[c]=p,p++;this._l2nFill=2}if(this._l2nFill<3&&h>=3){for(p=703;p<=16384;)a=p-703,f=a%26,l=Math.floor(a/26)%26,u=Math.floor(a/676),c=this._dictionary[u]+this._dictionary[l]+this._dictionary[f],this._n2l[p]=c,this._l2n[c]=p,p++;this._l2nFill=3}},l2n(h){if(this._l2n[h]||this._fill(h.length),!this._l2n[h])throw new Error(`Out of bounds. Invalid column letter: ${h}`);return this._l2n[h]},n2l(h){if(h<1||h>16384)throw new Error(`${h} is out of bounds. Excel supports columns from 1 to 16384`);return this._n2l[h]||this._fill(this._level(h)),this._n2l[h]},_hash:{},validateAddress(h){if(!s.test(h))throw new Error(`Invalid Address: ${h}`);return!0},decodeAddress(h){const c=h.length<5&&this._hash[h];if(c)return c;let a=!1,f="",l=0,u=!1,p="",m=0;for(let v=0,x;v=65&&x<=90)a=!0,f+=h[v],l=l*26+x-64;else if(x>=48&&x<=57)u=!0,p+=h[v],m=m*10+x-48;else if(u&&a&&x!==36)break;if(!a)l=void 0;else if(l>16384)throw new Error(`Out of bounds. Invalid column letter: ${f}`);u||(m=void 0),h=f+p;const d={address:h,col:l,row:m,$col$row:`$${f}$${p}`};return l<=100&&m<=100&&(this._hash[h]=d,this._hash[d.$col$row]=d),d},getAddress(h,c){if(c){const a=this.n2l(c)+h;return this.decodeAddress(a)}return this.decodeAddress(h)},decode(h){const c=h.split(":");if(c.length===2){const a=this.decodeAddress(c[0]),f=this.decodeAddress(c[1]),l={top:Math.min(a.row,f.row),left:Math.min(a.col,f.col),bottom:Math.max(a.row,f.row),right:Math.max(a.col,f.col)};return l.tl=this.n2l(l.left)+l.top,l.br=this.n2l(l.right)+l.bottom,l.dimensions=`${l.tl}:${l.br}`,l}return this.decodeAddress(h)},decodeEx(h){const c=h.match(/(?:(?:(?:'((?:[^']|'')*)')|([^'^ !]*))!)?(.*)/),a=c[1]||c[2],f=c[3],l=f.split(":");if(l.length>1){let p=this.decodeAddress(l[0]),m=this.decodeAddress(l[1]);const d=Math.min(p.row,m.row),v=Math.min(p.col,m.col),x=Math.max(p.row,m.row),g=Math.max(p.col,m.col);return p=this.n2l(v)+d,m=this.n2l(g)+x,{top:d,left:v,bottom:x,right:g,sheetName:a,tl:{address:p,col:v,row:d,$col$row:`$${this.n2l(v)}$${d}`,sheetName:a},br:{address:m,col:g,row:x,$col$row:`$${this.n2l(g)}$${x}`,sheetName:a},dimensions:`${p}:${m}`}}if(f.startsWith("#"))return a?{sheetName:a,error:f}:{error:f};const u=this.decodeAddress(f);return a?{sheetName:a,...u}:u},encodeAddress(h,c){return o.n2l(c)+h},encode(){switch(arguments.length){case 2:return o.encodeAddress(arguments[0],arguments[1]);case 4:return`${o.encodeAddress(arguments[0],arguments[1])}:${o.encodeAddress(arguments[2],arguments[3])}`;default:throw new Error("Can only encode with 2 or 4 arguments")}},inRange(h,c){const[a,f,,l,u]=h,[p,m]=c;return p>=a&&p<=l&&m>=f&&m<=u}};n.exports=o},{}],20:[function(e,n,i){const s=(a,f)=>({...a,...f.reduce((l,u)=>(a[u]&&(l[u]={...a[u]}),l),{})}),o=function(a,f,l){let u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:[];a[l]&&(f[l]=s(a[l],u))},h=a=>Object.keys(a).length===0,c=a=>{if(!a)return a;if(h(a))return{};const f={...a};return o(a,f,"font",["color"]),o(a,f,"alignment"),o(a,f,"protection"),a.border&&(o(a,f,"border"),o(a.border,f.border,"top",["color"]),o(a.border,f.border,"left",["color"]),o(a.border,f.border,"bottom",["color"]),o(a.border,f.border,"right",["color"]),o(a.border,f.border,"diagonal",["color"])),a.fill&&(o(a,f,"fill",["fgColor","bgColor","center"]),a.fill.stops&&(f.fill.stops=a.fill.stops.map(l=>s(l,["color"])))),f};i.copyStyle=c},{}],21:[function(e,n,i){(function(s){(function(){const o=e("crypto"),h={hash(c){const a=o.createHash(c);for(var f=arguments.length,l=new Array(f>1?f-1:0),u=1;u{f=u});let l=[];a.on("opentag",u=>l.push({eventType:"opentag",value:u})),a.on("text",u=>l.push({eventType:"text",value:u})),a.on("closetag",u=>l.push({eventType:"closetag",value:u}));for await(const u of c){if(a.write(h(u)),f)throw f;yield l,l=[]}}},{"./browser-buffer-decode":16,"readable-stream":491,saxes:496}],23:[function(e,n,i){const s=e("./col-cache"),o=/(([a-z_\-0-9]*)!)?([a-z0-9_$]{2,})([(])?/gi,h=/^([$])?([a-z]+)([$])?([1-9][0-9]*)$/i;function c(a,f,l){const u=s.decode(f),p=s.decode(l);return a.replace(o,(m,d,v,x,g)=>{if(g)return m;const b=h.exec(x);if(b){const w=b[1],y=b[2].toUpperCase(),T=b[3],C=b[4];if(y.length>3||y.length===3&&y>"XFD")return m;let M=s.l2n(y),I=parseInt(C,10);return w||(M+=p.col-u.col),T||(I+=p.row-u.row),(d||"")+(w||"")+s.n2l(M)+(T||"")+I}return m})}n.exports={slideFormula:c}},{"./col-cache":19}],24:[function(e,n,i){(function(s,o){(function(){const h=e("readable-stream"),c=e("./utils"),a=e("./string-buf");class f{constructor(v,x){this._data=v,this._encoding=x}get length(){return this.toBuffer().length}copy(v,x,g,b){return this.toBuffer().copy(v,x,g,b)}toBuffer(){return this._buffer||(this._buffer=o.from(this._data,this._encoding)),this._buffer}}class l{constructor(v){this._data=v}get length(){return this._data.length}copy(v,x,g,b){return this._data._buf.copy(v,x,g,b)}toBuffer(){return this._data.toBuffer()}}class u{constructor(v){this._data=v}get length(){return this._data.length}copy(v,x,g,b){this._data.copy(v,x,g,b)}toBuffer(){return this._data}}class p{constructor(v){this.size=v,this.buffer=o.alloc(v),this.iRead=0,this.iWrite=0}toBuffer(){if(this.iRead===0&&this.iWrite===this.size)return this.buffer;const v=o.alloc(this.iWrite-this.iRead);return this.buffer.copy(v,0,this.iRead,this.iWrite),v}get length(){return this.iWrite-this.iRead}get eod(){return this.iRead===this.iWrite}get full(){return this.iWrite===this.size}read(v){let x;return v===0?null:v===void 0||v>=this.length?(x=this.toBuffer(),this.iRead=this.iWrite,x):(x=o.alloc(v),this.buffer.copy(x,0,this.iRead,v),this.iRead+=v,x)}write(v,x,g){const b=Math.min(g,this.size-this.iWrite);return v.copy(this.buffer,this.iWrite,x,x+b),this.iWrite+=b,b}}const m=function(d){d=d||{},this.bufSize=d.bufSize||1024*1024,this.buffers=[],this.batch=d.batch||!1,this.corked=!1,this.inPos=0,this.outPos=0,this.pipes=[],this.paused=!1,this.encoding=null};c.inherits(m,h.Duplex,{toBuffer(){switch(this.buffers.length){case 0:return null;case 1:return this.buffers[0].toBuffer();default:return o.concat(this.buffers.map(d=>d.toBuffer()))}},_getWritableBuffer(){if(this.buffers.length){const v=this.buffers[this.buffers.length-1];if(!v.full)return v}const d=new p(this.bufSize);return this.buffers.push(d),d},async _pipe(d){const v=function(x){return new Promise(g=>{x.write(d.toBuffer(),()=>{g()})})};await Promise.all(this.pipes.map(v))},_writeToBuffers(d){let v=0;const x=d.length;for(;v1;)this._pipe(this.buffers.shift());else this.corked?(this._writeToBuffers(g),s.nextTick(x)):(await this._pipe(g),x());else this.paused||this.emit("data",g.toBuffer()),this._writeToBuffers(g),this.emit("readable");return!0},cork(){this.corked=!0},_flush(){if(this.pipes.length)for(;this.buffers.length;)this._pipe(this.buffers.shift())},uncork(){this.corked=!1,this._flush()},end(d,v,x){const g=b=>{b?x(b):(this._flush(),this.pipes.forEach(w=>{w.end()}),this.emit("finish"))};d?this.write(d,v,g):g()},read(d){let v;if(d){for(v=[];d&&this.buffers.length&&!this.buffers[0].eod;){const x=this.buffers[0],g=x.read(d);d-=g.length,v.push(g),x.eod&&x.full&&this.buffers.shift()}return o.concat(v)}return v=this.buffers.map(x=>x.toBuffer()).filter(Boolean),this.buffers=[],o.concat(v)},setEncoding(d){this.encoding=d},pause(){this.paused=!0},resume(){this.paused=!1},isPaused(){return!!this.paused},pipe(d){this.pipes.push(d),!this.paused&&this.buffers.length&&this.end()},unpipe(d){this.pipes=this.pipes.filter(v=>v!==d)},unshift(){throw new Error("Not Implemented")},wrap(){throw new Error("Not Implemented")}}),n.exports=m}).call(this)}).call(this,e("_process"),e("buffer").Buffer)},{"./string-buf":25,"./utils":27,_process:467,buffer:220,"readable-stream":491}],25:[function(e,n,i){(function(s){(function(){class o{constructor(c){this._buf=s.alloc(c&&c.size||16384),this._encoding=c&&c.encoding||"utf8",this._inPos=0,this._buffer=void 0}get length(){return this._inPos}get capacity(){return this._buf.length}get buffer(){return this._buf}toBuffer(){return this._buffer||(this._buffer=s.alloc(this.length),this._buf.copy(this._buffer,0,0,this.length)),this._buffer}reset(c){c=c||0,this._buffer=void 0,this._inPos=c}_grow(c){let a=this._buf.length*2;for(;a=this._buf.length-4;)this._grow(this._inPos+c.length),a=this._inPos+this._buf.write(c,this._inPos,this._encoding);this._inPos=a}addStringBuf(c){c.length&&(this._buffer=void 0,this.length+c.length>this.capacity&&this._grow(this.length+c.length),c._buf.copy(this._buf,this._inPos,0,c.length),this._inPos+=c.length)}}n.exports=o}).call(this)}).call(this,e("buffer").Buffer)},{buffer:220}],26:[function(e,n,i){const{toString:s}=Object.prototype,o=/["&<>]/,h={each:function(a,f){a&&(Array.isArray(a)?a.forEach(f):Object.keys(a).forEach(l=>{f(a[l],l)}))},some:function(a,f){return a?Array.isArray(a)?a.some(f):Object.keys(a).some(l=>f(a[l],l)):!1},every:function(a,f){return a?Array.isArray(a)?a.every(f):Object.keys(a).every(l=>f(a[l],l)):!0},map:function(a,f){return a?Array.isArray(a)?a.map(f):Object.keys(a).map(l=>f(a[l],l)):[]},keyBy(c,a){return c.reduce((f,l)=>(f[l[a]]=l,f),{})},isEqual:function(a,f){const l=typeof a,u=typeof f,p=Array.isArray(a),m=Array.isArray(f);let d;if(l!==u)return!1;switch(typeof a){case"object":if(p||m)return p&&m?a.length===f.length&&a.every((v,x)=>{const g=f[x];return h.isEqual(v,g)}):!1;if(a===null||f===null)return a===f;if(d=Object.keys(a),Object.keys(f).length!==d.length)return!1;for(const v of d)if(!f.hasOwnProperty(v))return!1;return h.every(a,(v,x)=>{const g=f[x];return h.isEqual(v,g)});default:return a===f}},escapeHtml(c){const a=o.exec(c);if(!a)return c;let f="",l="",u=0,p=a.index;for(;p":l=">";break;default:continue}u!==p&&(f+=c.substring(u,p)),u=p+1,f+=l}return u!==p?f+c.substring(u,p):f},strcmp(c,a){return ca?1:0},isUndefined(c){return s.call(c)==="[object Undefined]"},isObject(c){return s.call(c)==="[object Object]"},deepMerge(){const c=arguments[0]||{},{length:a}=arguments;let f,l,u;function p(m,d){f=c[d],u=Array.isArray(m),h.isObject(m)||u?(u?(u=!1,l=f&&Array.isArray(f)?f:[]):l=f&&h.isObject(f)?f:{},c[d]=h.deepMerge(l,m)):h.isUndefined(m)||(c[d]=m)}for(let m=0;m{Object.defineProperty(l,v,Object.getOwnPropertyDescriptor(p,v))});const d={constructor:{value:l,enumerable:!1,writable:!1,configurable:!0}};m&&Object.keys(m).forEach(v=>{d[v]=Object.getOwnPropertyDescriptor(m,v)}),l.prototype=Object.create(u.prototype,d)},a=/[<>&'"\x7F\x00-\x08\x0B-\x0C\x0E-\x1F]/,f={nop(){},promiseImmediate(l){return new Promise(u=>{s.setImmediate?o(()=>{u(l)}):setTimeout(()=>{u(l)},1)})},inherits:c,dateToExcel(l,u){return 25569+l.getTime()/(24*3600*1e3)-(u?1462:0)},excelToDate(l,u){const p=Math.round((l-25569+(u?1462:0))*24*3600*1e3);return new Date(p)},parsePath(l){const u=l.lastIndexOf("/");return{path:l.substring(0,u),name:l.substring(u+1)}},getRelsPath(l){const u=f.parsePath(l);return`${u.path}/_rels/${u.name}.rels`},xmlEncode(l){const u=a.exec(l);if(!u)return l;let p="",m="",d=0,v=u.index;for(;v=11&&x!==13)){m="";break}continue}}d!==v&&(p+=l.substring(d,v)),d=v+1,m&&(p+=m)}return d!==v?p+l.substring(d,v):p},xmlDecode(l){return l.replace(/&([a-z]*);/g,u=>{switch(u){case"<":return"<";case">":return">";case"&":return"&";case"'":return"'";case""":return'"';default:return u}})},validInt(l){const u=parseInt(l,10);return Number.isNaN(u)?0:u},isDateFmt(l){return l?(l=l.replace(/\[[^\]]*]/g,""),l=l.replace(/"[^"]*"/g,""),l.match(/[ymdhMsb]+/)!==null):!1},fs:{exists(l){return new Promise(u=>{h.access(l,h.constants.F_OK,p=>{u(!p)})})}},toIsoDateString(l){return l.toIsoString().subsstr(0,10)},parseBoolean(l){return l===!0||l==="true"||l===1||l==="1"}};n.exports=f}).call(this)}).call(this,typeof It<"u"?It:typeof self<"u"?self:typeof window<"u"?window:{},e("timers").setImmediate)},{fs:216,timers:523}],28:[function(e,n,i){const s=e("./under-dash"),o=e("./utils"),h="<",c=">",a="";function l(m,d,v){m.push(` ${d}="${o.xmlEncode(v.toString())}"`)}function u(m,d){if(d){const v=[];s.each(d,(x,g)=>{x!==void 0&&l(v,g,x)}),m.push(v.join(""))}}class p{constructor(){this._xml=[],this._stack=[],this._rollbacks=[]}get tos(){return this._stack.length?this._stack[this._stack.length-1]:void 0}get cursor(){return this._xml.length}openXml(d){const v=this._xml;v.push(" +`)}openNode(d,v){const x=this.tos,g=this._xml;x&&this.open&&g.push(c),this._stack.push(d),g.push(h),g.push(d),u(g,v),this.leaf=!0,this.open=!0}addAttribute(d,v){if(!this.open)throw new Error("Cannot write attributes to node if it is not open");v!==void 0&&l(this._xml,d,v)}addAttributes(d){if(!this.open)throw new Error("Cannot write attributes to node if it is not open");u(this._xml,d)}writeText(d){const v=this._xml;this.open&&(v.push(c),this.open=!1),this.leaf=!1,v.push(o.xmlEncode(d.toString()))}writeXml(d){this.open&&(this._xml.push(c),this.open=!1),this.leaf=!1,this._xml.push(d)}closeNode(){const d=this._stack.pop(),v=this._xml;this.leaf?v.push(f):(v.push(a),v.push(d),v.push(c)),this.open=!1,this.leaf=!1}leafNode(d,v,x){this.openNode(d,v),x!==void 0&&this.writeText(x),this.closeNode()}closeAll(){for(;this._stack.length;)this.closeNode()}addRollback(){return this._rollbacks.push({xml:this._xml.length,stack:this._stack.length,leaf:this.leaf,open:this.open}),this.cursor}commit(){this._rollbacks.pop()}rollback(){const d=this._rollbacks.pop();this._xml.length>d.xml&&this._xml.splice(d.xml,this._xml.length-d.xml),this._stack.length>d.stack&&this._stack.splice(d.stack,this._stack.length-d.stack),this.leaf=d.leaf,this.open=d.open}get xml(){return this.closeAll(),this._xml.join("")}}p.StdDocAttributes={version:"1.0",encoding:"UTF-8",standalone:"yes"},n.exports=p},{"./under-dash":26,"./utils":27}],29:[function(e,n,i){(function(s){(function(){const o=e("events"),h=e("jszip"),c=e("./stream-buf"),{stringToBuffer:a}=e("./browser-buffer-encode");class f extends o.EventEmitter{constructor(u){super(),this.options=Object.assign({type:"nodebuffer",compression:"DEFLATE"},u),this.zip=new h,this.stream=new c}append(u,p){p.hasOwnProperty("base64")&&p.base64?this.zip.file(p.name,u,{base64:!0}):(s.browser&&typeof u=="string"&&(u=a(u)),this.zip.file(p.name,u))}async finalize(){const u=await this.zip.generateAsync(this.options);this.stream.end(u),this.emit("finish")}read(u){return this.stream.read(u)}setEncoding(u){return this.stream.setEncoding(u)}pause(){return this.stream.pause()}resume(){return this.stream.resume()}isPaused(){return this.stream.isPaused()}pipe(u,p){return this.stream.pipe(u,p)}unpipe(u){return this.stream.unpipe(u)}unshift(u){return this.stream.unshift(u)}wrap(u){return this.stream.wrap(u)}}n.exports={ZipWriter:f}}).call(this)}).call(this,e("_process"))},{"./browser-buffer-encode":17,"./stream-buf":24,_process:467,events:422,jszip:441}],30:[function(e,n,i){n.exports={0:{f:"General"},1:{f:"0"},2:{f:"0.00"},3:{f:"#,##0"},4:{f:"#,##0.00"},9:{f:"0%"},10:{f:"0.00%"},11:{f:"0.00E+00"},12:{f:"# ?/?"},13:{f:"# ??/??"},14:{f:"mm-dd-yy"},15:{f:"d-mmm-yy"},16:{f:"d-mmm"},17:{f:"mmm-yy"},18:{f:"h:mm AM/PM"},19:{f:"h:mm:ss AM/PM"},20:{f:"h:mm"},21:{f:"h:mm:ss"},22:{f:'m/d/yy "h":mm'},27:{"zh-tw":"[$-404]e/m/d","zh-cn":'yyyy"年"m"月"',"ja-jp":"[$-411]ge.m.d","ko-kr":'yyyy"年" mm"月" dd"日"'},28:{"zh-tw":'[$-404]e"年"m"月"d"日"',"zh-cn":'m"月"d"日"',"ja-jp":'[$-411]ggge"年"m"月"d"日"',"ko-kr":"mm-dd"},29:{"zh-tw":'[$-404]e"年"m"月"d"日"',"zh-cn":'m"月"d"日"',"ja-jp":'[$-411]ggge"年"m"月"d"日"',"ko-kr":"mm-dd"},30:{"zh-tw":"m/d/yy ","zh-cn":"m-d-yy","ja-jp":"m/d/yy","ko-kr":"mm-dd-yy"},31:{"zh-tw":'yyyy"年"m"月"d"日"',"zh-cn":'yyyy"年"m"月"d"日"',"ja-jp":'yyyy"年"m"月"d"日"',"ko-kr":'yyyy"년" mm"월" dd"일"'},32:{"zh-tw":'hh"時"mm"分"',"zh-cn":'h"时"mm"分"',"ja-jp":'h"時"mm"分"',"ko-kr":'h"시" mm"분"'},33:{"zh-tw":'hh"時"mm"分"ss"秒"',"zh-cn":'h"时"mm"分"ss"秒"',"ja-jp":'h"時"mm"分"ss"秒"',"ko-kr":'h"시" mm"분" ss"초"'},34:{"zh-tw":'上午/下午 hh"時"mm"分"',"zh-cn":'上午/下午 h"时"mm"分"',"ja-jp":'yyyy"年"m"月"',"ko-kr":"yyyy-mm-dd"},35:{"zh-tw":'上午/下午 hh"時"mm"分"ss"秒"',"zh-cn":'上午/下午 h"时"mm"分"ss"秒"',"ja-jp":'m"月"d"日"',"ko-kr":"yyyy-mm-dd"},36:{"zh-tw":"[$-404]e/m/d","zh-cn":'yyyy"年"m"月"',"ja-jp":"[$-411]ge.m.d","ko-kr":'yyyy"年" mm"月" dd"日"'},37:{f:"#,##0 ;(#,##0)"},38:{f:"#,##0 ;[Red](#,##0)"},39:{f:"#,##0.00 ;(#,##0.00)"},40:{f:"#,##0.00 ;[Red](#,##0.00)"},45:{f:"mm:ss"},46:{f:"[h]:mm:ss"},47:{f:"mmss.0"},48:{f:"##0.0E+0"},49:{f:"@"},50:{"zh-tw":"[$-404]e/m/d","zh-cn":'yyyy"年"m"月"',"ja-jp":"[$-411]ge.m.d","ko-kr":'yyyy"年" mm"月" dd"日"'},51:{"zh-tw":'[$-404]e"年"m"月"d"日"',"zh-cn":'m"月"d"日"',"ja-jp":'[$-411]ggge"年"m"月"d"日"',"ko-kr":"mm-dd"},52:{"zh-tw":'上午/下午 hh"時"mm"分"',"zh-cn":'yyyy"年"m"月"',"ja-jp":'yyyy"年"m"月"',"ko-kr":"yyyy-mm-dd"},53:{"zh-tw":'上午/下午 hh"時"mm"分"ss"秒"',"zh-cn":'m"月"d"日"',"ja-jp":'m"月"d"日"',"ko-kr":"yyyy-mm-dd"},54:{"zh-tw":'[$-404]e"年"m"月"d"日"',"zh-cn":'m"月"d"日"',"ja-jp":'[$-411]ggge"年"m"月"d"日"',"ko-kr":"mm-dd"},55:{"zh-tw":'上午/下午 hh"時"mm"分"',"zh-cn":'上午/下午 h"时"mm"分"',"ja-jp":'yyyy"年"m"月"',"ko-kr":"yyyy-mm-dd"},56:{"zh-tw":'上午/下午 hh"時"mm"分"ss"秒"',"zh-cn":'上午/下午 h"时"mm"分"ss"秒"',"ja-jp":'m"月"d"日"',"ko-kr":"yyyy-mm-dd"},57:{"zh-tw":"[$-404]e/m/d","zh-cn":'yyyy"年"m"月"',"ja-jp":"[$-411]ge.m.d","ko-kr":'yyyy"年" mm"月" dd"日"'},58:{"zh-tw":'[$-404]e"年"m"月"d"日"',"zh-cn":'m"月"d"日"',"ja-jp":'[$-411]ggge"年"m"月"d"日"',"ko-kr":"mm-dd"},59:{"th-th":"t0"},60:{"th-th":"t0.00"},61:{"th-th":"t#,##0"},62:{"th-th":"t#,##0.00"},67:{"th-th":"t0%"},68:{"th-th":"t0.00%"},69:{"th-th":"t# ?/?"},70:{"th-th":"t# ??/??"},81:{"th-th":"d/m/bb"}}},{}],31:[function(e,n,i){n.exports={OfficeDocument:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",Worksheet:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet",CalcChain:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/calcChain",SharedStrings:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings",Styles:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles",Theme:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme",Hyperlink:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",Image:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",CoreProperties:"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties",ExtenderProperties:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties",Comments:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments",VmlDrawing:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing",Table:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/table"}},{}],32:[function(e,n,i){const s=e("../../utils/parse-sax"),o=e("../../utils/xml-stream");class h{prepare(){}render(){}parseOpen(a){}parseText(a){}parseClose(a){}reconcile(a,f){}reset(){this.model=null,this.map&&Object.values(this.map).forEach(a=>{a instanceof h?a.reset():a.xform&&a.xform.reset()})}mergeModel(a){this.model=Object.assign(this.model||{},a)}async parse(a){for await(const f of a)for(const{eventType:l,value:u}of f)if(l==="opentag")this.parseOpen(u);else if(l==="text")this.parseText(u);else if(l==="closetag"&&!this.parseClose(u.name))return this.model;return this.model}async parseStream(a){return this.parse(s(a))}get xml(){return this.toXml(this.model)}toXml(a){const f=new o;return this.render(f,a),f.xml}static toAttribute(a,f){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;if(a===void 0){if(l)return f}else if(l||a!==f)return a.toString()}static toStringAttribute(a,f){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return h.toAttribute(a,f,l)}static toStringValue(a,f){return a===void 0?f:a}static toBoolAttribute(a,f){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;if(a===void 0){if(l)return f}else if(l||a!==f)return a?"1":"0"}static toBoolValue(a,f){return a===void 0?f:a==="1"}static toIntAttribute(a,f){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return h.toAttribute(a,f,l)}static toIntValue(a,f){return a===void 0?f:parseInt(a,10)}static toFloatAttribute(a,f){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return h.toAttribute(a,f,l)}static toFloatValue(a,f){return a===void 0?f:parseFloat(a)}}n.exports=h},{"../../utils/parse-sax":22,"../../utils/xml-stream":28}],33:[function(e,n,i){const s=e("../base-xform"),o=e("../../../utils/col-cache");class h extends s{render(l,u){l.openNode("definedName",{name:u.name,localSheetId:u.localSheetId}),l.writeText(u.ranges.join(",")),l.closeNode()}parseOpen(l){switch(l.name){case"definedName":return this._parsedName=l.attributes.name,this._parsedLocalSheetId=l.attributes.localSheetId,this._parsedText=[],!0;default:return!1}}parseText(l){this._parsedText.push(l)}parseClose(){return this.model={name:this._parsedName,ranges:a(this._parsedText.join(""))},this._parsedLocalSheetId!==void 0&&(this.model.localSheetId=parseInt(this._parsedLocalSheetId,10)),!1}}function c(f){try{return o.decodeEx(f),!0}catch{return!1}}function a(f){const l=[];let u=!1,p="";return f.split(",").forEach(m=>{if(!m)return;const d=(m.match(/'/g)||[]).length;if(!d){u?p+=`${m},`:c(m)&&l.push(m);return}const v=d%2===0;!u&&v&&c(m)?l.push(m):u&&!v?(u=!1,c(p+m)&&l.push(p+m),p=""):(u=!0,p+=`${m},`)}),l}n.exports=h},{"../../../utils/col-cache":19,"../base-xform":32}],34:[function(e,n,i){const s=e("../../../utils/utils"),o=e("../base-xform");class h extends o{render(a,f){a.leafNode("sheet",{sheetId:f.id,name:f.name,state:f.state,"r:id":f.rId})}parseOpen(a){return a.name==="sheet"?(this.model={name:s.xmlDecode(a.attributes.name),id:parseInt(a.attributes.sheetId,10),state:a.attributes.state,rId:a.attributes["r:id"]},!0):!1}parseText(){}parseClose(){return!1}}n.exports=h},{"../../../utils/utils":27,"../base-xform":32}],35:[function(e,n,i){const s=e("../base-xform");class o extends s{render(c,a){c.leafNode("calcPr",{calcId:171027,fullCalcOnLoad:a.fullCalcOnLoad?1:void 0})}parseOpen(c){return c.name==="calcPr"?(this.model={},!0):!1}parseText(){}parseClose(){return!1}}n.exports=o},{"../base-xform":32}],36:[function(e,n,i){const s=e("../base-xform");class o extends s{render(c,a){c.leafNode("workbookPr",{date1904:a.date1904?1:void 0,defaultThemeVersion:164011,filterPrivacy:1})}parseOpen(c){return c.name==="workbookPr"?(this.model={date1904:c.attributes.date1904==="1"},!0):!1}parseText(){}parseClose(){return!1}}n.exports=o},{"../base-xform":32}],37:[function(e,n,i){const s=e("../base-xform");class o extends s{render(c,a){const f={xWindow:a.x||0,yWindow:a.y||0,windowWidth:a.width||12e3,windowHeight:a.height||24e3,firstSheet:a.firstSheet,activeTab:a.activeTab};a.visibility&&a.visibility!=="visible"&&(f.visibility=a.visibility),c.leafNode("workbookView",f)}parseOpen(c){if(c.name==="workbookView"){const a=this.model={},f=function(u,p,m){const d=p!==void 0?a[u]=p:m;d!==void 0&&(a[u]=d)},l=function(u,p,m){const d=p!==void 0?a[u]=parseInt(p,10):m;d!==void 0&&(a[u]=d)};return l("x",c.attributes.xWindow,0),l("y",c.attributes.yWindow,0),l("width",c.attributes.windowWidth,25e3),l("height",c.attributes.windowHeight,1e4),f("visibility",c.attributes.visibility,"visible"),l("activeTab",c.attributes.activeTab,void 0),l("firstSheet",c.attributes.firstSheet,void 0),!0}return!1}parseText(){}parseClose(){return!1}}n.exports=o},{"../base-xform":32}],38:[function(e,n,i){const s=e("../../../utils/under-dash"),o=e("../../../utils/col-cache"),h=e("../../../utils/xml-stream"),c=e("../base-xform"),a=e("../static-xform"),f=e("../list-xform"),l=e("./defined-name-xform"),u=e("./sheet-xform"),p=e("./workbook-view-xform"),m=e("./workbook-properties-xform"),d=e("./workbook-calc-properties-xform");class v extends c{constructor(){super(),this.map={fileVersion:v.STATIC_XFORMS.fileVersion,workbookPr:new m,bookViews:new f({tag:"bookViews",count:!1,childXform:new p}),sheets:new f({tag:"sheets",count:!1,childXform:new u}),definedNames:new f({tag:"definedNames",count:!1,childXform:new l}),calcPr:new d}}prepare(g){g.sheets=g.worksheets;const b=[];let w=0;g.sheets.forEach(y=>{if(y.pageSetup&&y.pageSetup.printArea&&y.pageSetup.printArea.split("&&").forEach(T=>{const C=T.split(":"),M={name:"_xlnm.Print_Area",ranges:[`'${y.name}'!$${C[0]}:$${C[1]}`],localSheetId:w};b.push(M)}),y.pageSetup&&(y.pageSetup.printTitlesRow||y.pageSetup.printTitlesColumn)){const T=[];if(y.pageSetup.printTitlesColumn){const M=y.pageSetup.printTitlesColumn.split(":");T.push(`'${y.name}'!$${M[0]}:$${M[1]}`)}if(y.pageSetup.printTitlesRow){const M=y.pageSetup.printTitlesRow.split(":");T.push(`'${y.name}'!$${M[0]}:$${M[1]}`)}const C={name:"_xlnm.Print_Titles",ranges:T,localSheetId:w};b.push(C)}w++}),b.length&&(g.definedNames=g.definedNames.concat(b)),(g.media||[]).forEach((y,T)=>{y.name=y.type+(T+1)})}render(g,b){g.openXml(h.StdDocAttributes),g.openNode("workbook",v.WORKBOOK_ATTRIBUTES),this.map.fileVersion.render(g),this.map.workbookPr.render(g,b.properties),this.map.bookViews.render(g,b.views),this.map.sheets.render(g,b.sheets),this.map.definedNames.render(g,b.definedNames),this.map.calcPr.render(g,b.calcProperties),g.closeNode()}parseOpen(g){if(this.parser)return this.parser.parseOpen(g),!0;switch(g.name){case"workbook":return!0;default:return this.parser=this.map[g.name],this.parser&&this.parser.parseOpen(g),!0}}parseText(g){this.parser&&this.parser.parseText(g)}parseClose(g){if(this.parser)return this.parser.parseClose(g)||(this.parser=void 0),!0;switch(g){case"workbook":return this.model={sheets:this.map.sheets.model,properties:this.map.workbookPr.model||{},views:this.map.bookViews.model,calcProperties:{}},this.map.definedNames.model&&(this.model.definedNames=this.map.definedNames.model),!1;default:return!0}}reconcile(g){const b=(g.workbookRels||[]).reduce((M,I)=>(M[I.Id]=I,M),{}),w=[];let y,T=0;(g.sheets||[]).forEach(M=>{const I=b[M.rId];I&&(y=g.worksheetHash[`xl/${I.Target.replace(/^(\s|\/xl\/)+/,"")}`],y&&(y.name=M.name,y.id=M.id,y.state=M.state,w[T++]=y))});const C=[];s.each(g.definedNames,M=>{if(M.name==="_xlnm.Print_Area"){if(y=w[M.localSheetId],y){y.pageSetup||(y.pageSetup={});const I=o.decodeEx(M.ranges[0]);y.pageSetup.printArea=y.pageSetup.printArea?`${y.pageSetup.printArea}&&${I.dimensions}`:I.dimensions}}else if(M.name==="_xlnm.Print_Titles"){if(y=w[M.localSheetId],y){y.pageSetup||(y.pageSetup={});const I=M.ranges.join(","),B=/\$/g,U=/\$\d+:\$\d+/,j=I.match(U);if(j&&j.length){const L=j[0];y.pageSetup.printTitlesRow=L.replace(B,"")}const H=/\$[A-Z]+:\$[A-Z]+/,G=I.match(H);if(G&&G.length){const L=G[0];y.pageSetup.printTitlesColumn=L.replace(B,"")}}}else C.push(M)}),g.definedNames=C,g.media.forEach((M,I)=>{M.index=I})}}v.WORKBOOK_ATTRIBUTES={xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main","xmlns:r":"http://schemas.openxmlformats.org/officeDocument/2006/relationships","xmlns:mc":"http://schemas.openxmlformats.org/markup-compatibility/2006","mc:Ignorable":"x15","xmlns:x15":"http://schemas.microsoft.com/office/spreadsheetml/2010/11/main"},v.STATIC_XFORMS={fileVersion:new a({tag:"fileVersion",$:{appName:"xl",lastEdited:5,lowestEdited:5,rupBuild:9303}})},n.exports=v},{"../../../utils/col-cache":19,"../../../utils/under-dash":26,"../../../utils/xml-stream":28,"../base-xform":32,"../list-xform":71,"../static-xform":120,"./defined-name-xform":33,"./sheet-xform":34,"./workbook-calc-properties-xform":35,"./workbook-properties-xform":36,"./workbook-view-xform":37}],39:[function(e,n,i){const s=e("../strings/rich-text-xform"),o=e("../../../utils/utils"),h=e("../base-xform"),c=n.exports=function(a){this.model=a};o.inherits(c,h,{get tag(){return"r"},get richTextXform(){return this._richTextXform||(this._richTextXform=new s),this._richTextXform},render(a,f){f=f||this.model,a.openNode("comment",{ref:f.ref,authorId:0}),a.openNode("text"),f&&f.note&&f.note.texts&&f.note.texts.forEach(l=>{this.richTextXform.render(a,l)}),a.closeNode(),a.closeNode()},parseOpen(a){if(this.parser)return this.parser.parseOpen(a),!0;switch(a.name){case"comment":return this.model={type:"note",note:{texts:[]},...a.attributes},!0;case"r":return this.parser=this.richTextXform,this.parser.parseOpen(a),!0;default:return!1}},parseText(a){this.parser&&this.parser.parseText(a)},parseClose(a){switch(a){case"comment":return!1;case"r":return this.model.note.texts.push(this.parser.model),this.parser=void 0,!0;default:return this.parser&&this.parser.parseClose(a),!0}}})},{"../../../utils/utils":27,"../base-xform":32,"../strings/rich-text-xform":122}],40:[function(e,n,i){const s=e("../../../utils/xml-stream"),o=e("../../../utils/utils"),h=e("../base-xform"),c=e("./comment-xform"),a=n.exports=function(){this.map={comment:new c}};o.inherits(a,h,{COMMENTS_ATTRIBUTES:{xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main"}},{render(f,l){l=l||this.model,f.openXml(s.StdDocAttributes),f.openNode("comments",a.COMMENTS_ATTRIBUTES),f.openNode("authors"),f.leafNode("author",null,"Author"),f.closeNode(),f.openNode("commentList"),l.comments.forEach(u=>{this.map.comment.render(f,u)}),f.closeNode(),f.closeNode()},parseOpen(f){if(this.parser)return this.parser.parseOpen(f),!0;switch(f.name){case"commentList":return this.model={comments:[]},!0;case"comment":return this.parser=this.map.comment,this.parser.parseOpen(f),!0;default:return!1}},parseText(f){this.parser&&this.parser.parseText(f)},parseClose(f){switch(f){case"commentList":return!1;case"comment":return this.model.comments.push(this.parser.model),this.parser=void 0,!0;default:return this.parser&&this.parser.parseClose(f),!0}}})},{"../../../utils/utils":27,"../../../utils/xml-stream":28,"../base-xform":32,"./comment-xform":39}],41:[function(e,n,i){const s=e("../../base-xform");class o extends s{constructor(c){super(),this._model=c}get tag(){return this._model&&this._model.tag}render(c,a,f){a===f[2]?c.leafNode(this.tag):this.tag==="x:SizeWithCells"&&a===f[1]&&c.leafNode(this.tag)}parseOpen(c){switch(c.name){case this.tag:return this.model={},this.model[this.tag]=!0,!0;default:return!1}}parseText(){}parseClose(){return!1}}n.exports=o},{"../../base-xform":32}],42:[function(e,n,i){const s=e("../../base-xform");class o extends s{constructor(c){super(),this._model=c}get tag(){return this._model&&this._model.tag}render(c,a){c.leafNode(this.tag,null,a)}parseOpen(c){switch(c.name){case this.tag:return this.text="",!0;default:return!1}}parseText(c){this.text=c}parseClose(){return!1}}n.exports=o},{"../../base-xform":32}],43:[function(e,n,i){const s=e("../base-xform");class o extends s{get tag(){return"x:Anchor"}getAnchorRect(c){const a=Math.floor(c.left),f=Math.floor((c.left-a)*68),l=Math.floor(c.top),u=Math.floor((c.top-l)*18),p=Math.floor(c.right),m=Math.floor((c.right-p)*68),d=Math.floor(c.bottom),v=Math.floor((c.bottom-d)*18);return[a,f,l,u,p,m,d,v]}getDefaultRect(c){const a=c.col,f=6,l=Math.max(c.row-2,0),u=14,p=a+2,m=2,d=l+4;return[a,f,l,u,p,m,d,16]}render(c,a){const f=a.anchor?this.getAnchorRect(a.anchor):this.getDefaultRect(a.refAddress);c.leafNode("x:Anchor",null,f.join(", "))}parseOpen(c){switch(c.name){case this.tag:return this.text="",!0;default:return!1}}parseText(c){this.text=c}parseClose(){return!1}}n.exports=o},{"../base-xform":32}],44:[function(e,n,i){const s=e("../base-xform"),o=e("./vml-anchor-xform"),h=e("./style/vml-protection-xform"),c=e("./style/vml-position-xform"),a=["twoCells","oneCells","absolute"];class f extends s{constructor(){super(),this.map={"x:Anchor":new o,"x:Locked":new h({tag:"x:Locked"}),"x:LockText":new h({tag:"x:LockText"}),"x:SizeWithCells":new c({tag:"x:SizeWithCells"}),"x:MoveWithCells":new c({tag:"x:MoveWithCells"})}}get tag(){return"x:ClientData"}render(u,p){const{protection:m,editAs:d}=p.note;u.openNode(this.tag,{ObjectType:"Note"}),this.map["x:MoveWithCells"].render(u,d,a),this.map["x:SizeWithCells"].render(u,d,a),this.map["x:Anchor"].render(u,p),this.map["x:Locked"].render(u,m.locked),u.leafNode("x:AutoFill",null,"False"),this.map["x:LockText"].render(u,m.lockText),u.leafNode("x:Row",null,p.refAddress.row-1),u.leafNode("x:Column",null,p.refAddress.col-1),u.closeNode()}parseOpen(u){switch(u.name){case this.tag:this.reset(),this.model={anchor:[],protection:{},editAs:""};break;default:this.parser=this.map[u.name],this.parser&&this.parser.parseOpen(u);break}return!0}parseText(u){this.parser&&this.parser.parseText(u)}parseClose(u){if(this.parser)return this.parser.parseClose(u)||(this.parser=void 0),!0;switch(u){case this.tag:return this.normalizeModel(),!1;default:return!0}}normalizeModel(){const u=Object.assign({},this.map["x:MoveWithCells"].model,this.map["x:SizeWithCells"].model),p=Object.keys(u).length;this.model.editAs=a[p],this.model.anchor=this.map["x:Anchor"].text,this.model.protection.locked=this.map["x:Locked"].text,this.model.protection.lockText=this.map["x:LockText"].text}}n.exports=f},{"../base-xform":32,"./style/vml-position-xform":41,"./style/vml-protection-xform":42,"./vml-anchor-xform":43}],45:[function(e,n,i){const s=e("../../../utils/xml-stream"),o=e("../base-xform"),h=e("./vml-shape-xform");class c extends o{constructor(){super(),this.map={"v:shape":new h}}get tag(){return"xml"}render(f,l){f.openXml(s.StdDocAttributes),f.openNode(this.tag,c.DRAWING_ATTRIBUTES),f.openNode("o:shapelayout",{"v:ext":"edit"}),f.leafNode("o:idmap",{"v:ext":"edit",data:1}),f.closeNode(),f.openNode("v:shapetype",{id:"_x0000_t202",coordsize:"21600,21600","o:spt":202,path:"m,l,21600r21600,l21600,xe"}),f.leafNode("v:stroke",{joinstyle:"miter"}),f.leafNode("v:path",{gradientshapeok:"t","o:connecttype":"rect"}),f.closeNode(),l.comments.forEach((u,p)=>{this.map["v:shape"].render(f,u,p)}),f.closeNode()}parseOpen(f){if(this.parser)return this.parser.parseOpen(f),!0;switch(f.name){case this.tag:this.reset(),this.model={comments:[]};break;default:this.parser=this.map[f.name],this.parser&&this.parser.parseOpen(f);break}return!0}parseText(f){this.parser&&this.parser.parseText(f)}parseClose(f){if(this.parser)return this.parser.parseClose(f)||(this.model.comments.push(this.parser.model),this.parser=void 0),!0;switch(f){case this.tag:return!1;default:return!0}}reconcile(f,l){f.anchors.forEach(u=>{u.br?this.map["xdr:twoCellAnchor"].reconcile(u,l):this.map["xdr:oneCellAnchor"].reconcile(u,l)})}}c.DRAWING_ATTRIBUTES={"xmlns:v":"urn:schemas-microsoft-com:vml","xmlns:o":"urn:schemas-microsoft-com:office:office","xmlns:x":"urn:schemas-microsoft-com:office:excel"},n.exports=c},{"../../../utils/xml-stream":28,"../base-xform":32,"./vml-shape-xform":46}],46:[function(e,n,i){const s=e("../base-xform"),o=e("./vml-textbox-xform"),h=e("./vml-client-data-xform");class c extends s{constructor(){super(),this.map={"v:textbox":new o,"x:ClientData":new h}}get tag(){return"v:shape"}render(f,l,u){f.openNode("v:shape",c.V_SHAPE_ATTRIBUTES(l,u)),f.leafNode("v:fill",{color2:"infoBackground [80]"}),f.leafNode("v:shadow",{color:"none [81]",obscured:"t"}),f.leafNode("v:path",{"o:connecttype":"none"}),this.map["v:textbox"].render(f,l),this.map["x:ClientData"].render(f,l),f.closeNode()}parseOpen(f){if(this.parser)return this.parser.parseOpen(f),!0;switch(f.name){case this.tag:this.reset(),this.model={margins:{insetmode:f.attributes["o:insetmode"]},anchor:"",editAs:"",protection:{}};break;default:this.parser=this.map[f.name],this.parser&&this.parser.parseOpen(f);break}return!0}parseText(f){this.parser&&this.parser.parseText(f)}parseClose(f){if(this.parser)return this.parser.parseClose(f)||(this.parser=void 0),!0;switch(f){case this.tag:return this.model.margins.inset=this.map["v:textbox"].model&&this.map["v:textbox"].model.inset,this.model.protection=this.map["x:ClientData"].model&&this.map["x:ClientData"].model.protection,this.model.anchor=this.map["x:ClientData"].model&&this.map["x:ClientData"].model.anchor,this.model.editAs=this.map["x:ClientData"].model&&this.map["x:ClientData"].model.editAs,!1;default:return!0}}}c.V_SHAPE_ATTRIBUTES=(a,f)=>({id:`_x0000_s${1025+f}`,type:"#_x0000_t202",style:"position:absolute; margin-left:105.3pt;margin-top:10.5pt;width:97.8pt;height:59.1pt;z-index:1;visibility:hidden",fillcolor:"infoBackground [80]",strokecolor:"none [81]","o:insetmode":a.note.margins&&a.note.margins.insetmode}),n.exports=c},{"../base-xform":32,"./vml-client-data-xform":44,"./vml-textbox-xform":47}],47:[function(e,n,i){const s=e("../base-xform");class o extends s{get tag(){return"v:textbox"}conversionUnit(c,a,f){return`${parseFloat(c)*a.toFixed(2)}${f}`}reverseConversionUnit(c){return(c||"").split(",").map(a=>Number(parseFloat(this.conversionUnit(parseFloat(a),.1,"")).toFixed(2)))}render(c,a){const f={style:"mso-direction-alt:auto"};if(a&&a.note){let{inset:l}=a.note&&a.note.margins;Array.isArray(l)&&(l=l.map(u=>this.conversionUnit(u,10,"mm")).join(",")),l&&(f.inset=l)}c.openNode("v:textbox",f),c.leafNode("div",{style:"text-align:left"}),c.closeNode()}parseOpen(c){switch(c.name){case this.tag:return this.model={inset:this.reverseConversionUnit(c.attributes.inset)},!0;default:return!0}}parseText(){}parseClose(c){switch(c){case this.tag:return!1;default:return!0}}}n.exports=o},{"../base-xform":32}],48:[function(e,n,i){const s=e("./base-xform");class o extends s{createNewModel(c){return{}}parseOpen(c){return this.parser=this.parser||this.map[c.name],this.parser?(this.parser.parseOpen(c),!0):c.name===this.tag?(this.model=this.createNewModel(c),!0):!1}parseText(c){this.parser&&this.parser.parseText(c)}onParserClose(c,a){this.model[c]=a.model}parseClose(c){return this.parser?(this.parser.parseClose(c)||(this.onParserClose(c,this.parser),this.parser=void 0),!0):c!==this.tag}}n.exports=o},{"./base-xform":32}],49:[function(e,n,i){const s=e("../base-xform");class o extends s{render(c,a){c.openNode("HeadingPairs"),c.openNode("vt:vector",{size:2,baseType:"variant"}),c.openNode("vt:variant"),c.leafNode("vt:lpstr",void 0,"Worksheets"),c.closeNode(),c.openNode("vt:variant"),c.leafNode("vt:i4",void 0,a.length),c.closeNode(),c.closeNode(),c.closeNode()}parseOpen(c){return c.name==="HeadingPairs"}parseText(){}parseClose(c){return c!=="HeadingPairs"}}n.exports=o},{"../base-xform":32}],50:[function(e,n,i){const s=e("../base-xform");class o extends s{render(c,a){c.openNode("TitlesOfParts"),c.openNode("vt:vector",{size:a.length,baseType:"lpstr"}),a.forEach(f=>{c.leafNode("vt:lpstr",void 0,f.name)}),c.closeNode(),c.closeNode()}parseOpen(c){return c.name==="TitlesOfParts"}parseText(){}parseClose(c){return c!=="TitlesOfParts"}}n.exports=o},{"../base-xform":32}],51:[function(e,n,i){const s=e("../../../utils/xml-stream"),o=e("../base-xform"),h=e("../simple/string-xform"),c=e("./app-heading-pairs-xform"),a=e("./app-titles-of-parts-xform");class f extends o{constructor(){super(),this.map={Company:new h({tag:"Company"}),Manager:new h({tag:"Manager"}),HeadingPairs:new c,TitleOfParts:new a}}render(u,p){u.openXml(s.StdDocAttributes),u.openNode("Properties",f.PROPERTY_ATTRIBUTES),u.leafNode("Application",void 0,"Microsoft Excel"),u.leafNode("DocSecurity",void 0,"0"),u.leafNode("ScaleCrop",void 0,"false"),this.map.HeadingPairs.render(u,p.worksheets),this.map.TitleOfParts.render(u,p.worksheets),this.map.Company.render(u,p.company||""),this.map.Manager.render(u,p.manager),u.leafNode("LinksUpToDate",void 0,"false"),u.leafNode("SharedDoc",void 0,"false"),u.leafNode("HyperlinksChanged",void 0,"false"),u.leafNode("AppVersion",void 0,"16.0300"),u.closeNode()}parseOpen(u){if(this.parser)return this.parser.parseOpen(u),!0;switch(u.name){case"Properties":return!0;default:return this.parser=this.map[u.name],this.parser?(this.parser.parseOpen(u),!0):!1}}parseText(u){this.parser&&this.parser.parseText(u)}parseClose(u){if(this.parser)return this.parser.parseClose(u)||(this.parser=void 0),!0;switch(u){case"Properties":return this.model={worksheets:this.map.TitleOfParts.model,company:this.map.Company.model,manager:this.map.Manager.model},!1;default:return!0}}}f.DateFormat=function(l){return l.toISOString().replace(/[.]\d{3,6}/,"")},f.DateAttrs={"xsi:type":"dcterms:W3CDTF"},f.PROPERTY_ATTRIBUTES={xmlns:"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties","xmlns:vt":"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"},n.exports=f},{"../../../utils/xml-stream":28,"../base-xform":32,"../simple/string-xform":119,"./app-heading-pairs-xform":49,"./app-titles-of-parts-xform":50}],52:[function(e,n,i){const s=e("../../../utils/xml-stream"),o=e("../base-xform");class h extends o{render(a,f){a.openXml(s.StdDocAttributes),a.openNode("Types",h.PROPERTY_ATTRIBUTES);const l={};(f.media||[]).forEach(p=>{if(p.type==="image"){const m=p.extension;l[m]||(l[m]=!0,a.leafNode("Default",{Extension:m,ContentType:`image/${m}`}))}}),a.leafNode("Default",{Extension:"rels",ContentType:"application/vnd.openxmlformats-package.relationships+xml"}),a.leafNode("Default",{Extension:"xml",ContentType:"application/xml"}),a.leafNode("Override",{PartName:"/xl/workbook.xml",ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"}),f.worksheets.forEach(p=>{const m=`/xl/worksheets/sheet${p.id}.xml`;a.leafNode("Override",{PartName:m,ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"})}),a.leafNode("Override",{PartName:"/xl/theme/theme1.xml",ContentType:"application/vnd.openxmlformats-officedocument.theme+xml"}),a.leafNode("Override",{PartName:"/xl/styles.xml",ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"}),f.sharedStrings&&f.sharedStrings.count&&a.leafNode("Override",{PartName:"/xl/sharedStrings.xml",ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"}),f.tables&&f.tables.forEach(p=>{a.leafNode("Override",{PartName:`/xl/tables/${p.target}`,ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml"})}),f.drawings&&f.drawings.forEach(p=>{a.leafNode("Override",{PartName:`/xl/drawings/${p.name}.xml`,ContentType:"application/vnd.openxmlformats-officedocument.drawing+xml"})}),f.commentRefs&&(a.leafNode("Default",{Extension:"vml",ContentType:"application/vnd.openxmlformats-officedocument.vmlDrawing"}),f.commentRefs.forEach(p=>{let{commentName:m}=p;a.leafNode("Override",{PartName:`/xl/${m}.xml`,ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml"})})),a.leafNode("Override",{PartName:"/docProps/core.xml",ContentType:"application/vnd.openxmlformats-package.core-properties+xml"}),a.leafNode("Override",{PartName:"/docProps/app.xml",ContentType:"application/vnd.openxmlformats-officedocument.extended-properties+xml"}),a.closeNode()}parseOpen(){return!1}parseText(){}parseClose(){return!1}}h.PROPERTY_ATTRIBUTES={xmlns:"http://schemas.openxmlformats.org/package/2006/content-types"},n.exports=h},{"../../../utils/xml-stream":28,"../base-xform":32}],53:[function(e,n,i){const s=e("../../../utils/xml-stream"),o=e("../base-xform"),h=e("../simple/date-xform"),c=e("../simple/string-xform"),a=e("../simple/integer-xform");class f extends o{constructor(){super(),this.map={"dc:creator":new c({tag:"dc:creator"}),"dc:title":new c({tag:"dc:title"}),"dc:subject":new c({tag:"dc:subject"}),"dc:description":new c({tag:"dc:description"}),"dc:identifier":new c({tag:"dc:identifier"}),"dc:language":new c({tag:"dc:language"}),"cp:keywords":new c({tag:"cp:keywords"}),"cp:category":new c({tag:"cp:category"}),"cp:lastModifiedBy":new c({tag:"cp:lastModifiedBy"}),"cp:lastPrinted":new h({tag:"cp:lastPrinted",format:f.DateFormat}),"cp:revision":new a({tag:"cp:revision"}),"cp:version":new c({tag:"cp:version"}),"cp:contentStatus":new c({tag:"cp:contentStatus"}),"cp:contentType":new c({tag:"cp:contentType"}),"dcterms:created":new h({tag:"dcterms:created",attrs:f.DateAttrs,format:f.DateFormat}),"dcterms:modified":new h({tag:"dcterms:modified",attrs:f.DateAttrs,format:f.DateFormat})}}render(u,p){u.openXml(s.StdDocAttributes),u.openNode("cp:coreProperties",f.CORE_PROPERTY_ATTRIBUTES),this.map["dc:creator"].render(u,p.creator),this.map["dc:title"].render(u,p.title),this.map["dc:subject"].render(u,p.subject),this.map["dc:description"].render(u,p.description),this.map["dc:identifier"].render(u,p.identifier),this.map["dc:language"].render(u,p.language),this.map["cp:keywords"].render(u,p.keywords),this.map["cp:category"].render(u,p.category),this.map["cp:lastModifiedBy"].render(u,p.lastModifiedBy),this.map["cp:lastPrinted"].render(u,p.lastPrinted),this.map["cp:revision"].render(u,p.revision),this.map["cp:version"].render(u,p.version),this.map["cp:contentStatus"].render(u,p.contentStatus),this.map["cp:contentType"].render(u,p.contentType),this.map["dcterms:created"].render(u,p.created),this.map["dcterms:modified"].render(u,p.modified),u.closeNode()}parseOpen(u){if(this.parser)return this.parser.parseOpen(u),!0;switch(u.name){case"cp:coreProperties":case"coreProperties":return!0;default:if(this.parser=this.map[u.name],this.parser)return this.parser.parseOpen(u),!0;throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(u)}`)}}parseText(u){this.parser&&this.parser.parseText(u)}parseClose(u){if(this.parser)return this.parser.parseClose(u)||(this.parser=void 0),!0;switch(u){case"cp:coreProperties":case"coreProperties":return this.model={creator:this.map["dc:creator"].model,title:this.map["dc:title"].model,subject:this.map["dc:subject"].model,description:this.map["dc:description"].model,identifier:this.map["dc:identifier"].model,language:this.map["dc:language"].model,keywords:this.map["cp:keywords"].model,category:this.map["cp:category"].model,lastModifiedBy:this.map["cp:lastModifiedBy"].model,lastPrinted:this.map["cp:lastPrinted"].model,revision:this.map["cp:revision"].model,contentStatus:this.map["cp:contentStatus"].model,contentType:this.map["cp:contentType"].model,created:this.map["dcterms:created"].model,modified:this.map["dcterms:modified"].model},!1;default:throw new Error(`Unexpected xml node in parseClose: ${u}`)}}}f.DateFormat=function(l){return l.toISOString().replace(/[.]\d{3}/,"")},f.DateAttrs={"xsi:type":"dcterms:W3CDTF"},f.CORE_PROPERTY_ATTRIBUTES={"xmlns:cp":"http://schemas.openxmlformats.org/package/2006/metadata/core-properties","xmlns:dc":"http://purl.org/dc/elements/1.1/","xmlns:dcterms":"http://purl.org/dc/terms/","xmlns:dcmitype":"http://purl.org/dc/dcmitype/","xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance"},n.exports=f},{"../../../utils/xml-stream":28,"../base-xform":32,"../simple/date-xform":117,"../simple/integer-xform":118,"../simple/string-xform":119}],54:[function(e,n,i){const s=e("../base-xform");class o extends s{render(c,a){c.leafNode("Relationship",a)}parseOpen(c){switch(c.name){case"Relationship":return this.model=c.attributes,!0;default:return!1}}parseText(){}parseClose(){return!1}}n.exports=o},{"../base-xform":32}],55:[function(e,n,i){const s=e("../../../utils/xml-stream"),o=e("../base-xform"),h=e("./relationship-xform");class c extends o{constructor(){super(),this.map={Relationship:new h}}render(f,l){l=l||this._values,f.openXml(s.StdDocAttributes),f.openNode("Relationships",c.RELATIONSHIPS_ATTRIBUTES),l.forEach(u=>{this.map.Relationship.render(f,u)}),f.closeNode()}parseOpen(f){if(this.parser)return this.parser.parseOpen(f),!0;switch(f.name){case"Relationships":return this.model=[],!0;default:if(this.parser=this.map[f.name],this.parser)return this.parser.parseOpen(f),!0;throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(f)}`)}}parseText(f){this.parser&&this.parser.parseText(f)}parseClose(f){if(this.parser)return this.parser.parseClose(f)||(this.model.push(this.parser.model),this.parser=void 0),!0;switch(f){case"Relationships":return!1;default:throw new Error(`Unexpected xml node in parseClose: ${f}`)}}}c.RELATIONSHIPS_ATTRIBUTES={xmlns:"http://schemas.openxmlformats.org/package/2006/relationships"},n.exports=c},{"../../../utils/xml-stream":28,"../base-xform":32,"./relationship-xform":54}],56:[function(e,n,i){const s=e("../base-xform");class o extends s{parseOpen(c){if(this.parser)return this.parser.parseOpen(c),!0;switch(c.name){case this.tag:this.reset(),this.model={range:{editAs:c.attributes.editAs||"oneCell"}};break;default:this.parser=this.map[c.name],this.parser&&this.parser.parseOpen(c);break}return!0}parseText(c){this.parser&&this.parser.parseText(c)}reconcilePicture(c,a){if(c&&c.rId){const l=a.rels[c.rId].Target.match(/.*\/media\/(.+[.][a-zA-Z]{3,4})/);if(l){const u=l[1],p=a.mediaIndex[u];return a.media[p]}}}}n.exports=o},{"../base-xform":32}],57:[function(e,n,i){const s=e("../base-xform"),o=e("./blip-xform");class h extends s{constructor(){super(),this.map={"a:blip":new o}}get tag(){return"xdr:blipFill"}render(a,f){a.openNode(this.tag),this.map["a:blip"].render(a,f),a.openNode("a:stretch"),a.leafNode("a:fillRect"),a.closeNode(),a.closeNode()}parseOpen(a){if(this.parser)return this.parser.parseOpen(a),!0;switch(a.name){case this.tag:this.reset();break;default:this.parser=this.map[a.name],this.parser&&this.parser.parseOpen(a);break}return!0}parseText(){}parseClose(a){if(this.parser)return this.parser.parseClose(a)||(this.parser=void 0),!0;switch(a){case this.tag:return this.model=this.map["a:blip"].model,!1;default:return!0}}}n.exports=h},{"../base-xform":32,"./blip-xform":58}],58:[function(e,n,i){const s=e("../base-xform");class o extends s{get tag(){return"a:blip"}render(c,a){c.leafNode(this.tag,{"xmlns:r":"http://schemas.openxmlformats.org/officeDocument/2006/relationships","r:embed":a.rId,cstate:"print"})}parseOpen(c){switch(c.name){case this.tag:return this.model={rId:c.attributes["r:embed"]},!0;default:return!0}}parseText(){}parseClose(c){switch(c){case this.tag:return!1;default:return!0}}}n.exports=o},{"../base-xform":32}],59:[function(e,n,i){const s=e("../base-xform");class o extends s{get tag(){return"xdr:cNvPicPr"}render(c){c.openNode(this.tag),c.leafNode("a:picLocks",{noChangeAspect:"1"}),c.closeNode()}parseOpen(c){switch(c.name){case this.tag:return!0;default:return!0}}parseText(){}parseClose(c){switch(c){case this.tag:return!1;default:return!0}}}n.exports=o},{"../base-xform":32}],60:[function(e,n,i){const s=e("../base-xform"),o=e("./hlink-click-xform"),h=e("./ext-lst-xform");class c extends s{constructor(){super(),this.map={"a:hlinkClick":new o,"a:extLst":new h}}get tag(){return"xdr:cNvPr"}render(f,l){f.openNode(this.tag,{id:l.index,name:`Picture ${l.index}`}),this.map["a:hlinkClick"].render(f,l),this.map["a:extLst"].render(f,l),f.closeNode()}parseOpen(f){if(this.parser)return this.parser.parseOpen(f),!0;switch(f.name){case this.tag:this.reset();break;default:this.parser=this.map[f.name],this.parser&&this.parser.parseOpen(f);break}return!0}parseText(){}parseClose(f){if(this.parser)return this.parser.parseClose(f)||(this.parser=void 0),!0;switch(f){case this.tag:return this.model=this.map["a:hlinkClick"].model,!1;default:return!0}}}n.exports=c},{"../base-xform":32,"./ext-lst-xform":63,"./hlink-click-xform":65}],61:[function(e,n,i){const s=e("../base-xform"),o=e("../simple/integer-xform");class h extends s{constructor(a){super(),this.tag=a.tag,this.map={"xdr:col":new o({tag:"xdr:col",zero:!0}),"xdr:colOff":new o({tag:"xdr:colOff",zero:!0}),"xdr:row":new o({tag:"xdr:row",zero:!0}),"xdr:rowOff":new o({tag:"xdr:rowOff",zero:!0})}}render(a,f){a.openNode(this.tag),this.map["xdr:col"].render(a,f.nativeCol),this.map["xdr:colOff"].render(a,f.nativeColOff),this.map["xdr:row"].render(a,f.nativeRow),this.map["xdr:rowOff"].render(a,f.nativeRowOff),a.closeNode()}parseOpen(a){if(this.parser)return this.parser.parseOpen(a),!0;switch(a.name){case this.tag:this.reset();break;default:this.parser=this.map[a.name],this.parser&&this.parser.parseOpen(a);break}return!0}parseText(a){this.parser&&this.parser.parseText(a)}parseClose(a){if(this.parser)return this.parser.parseClose(a)||(this.parser=void 0),!0;switch(a){case this.tag:return this.model={nativeCol:this.map["xdr:col"].model,nativeColOff:this.map["xdr:colOff"].model,nativeRow:this.map["xdr:row"].model,nativeRowOff:this.map["xdr:rowOff"].model},!1;default:return!0}}}n.exports=h},{"../base-xform":32,"../simple/integer-xform":118}],62:[function(e,n,i){const s=e("../../../utils/col-cache"),o=e("../../../utils/xml-stream"),h=e("../base-xform"),c=e("./two-cell-anchor-xform"),a=e("./one-cell-anchor-xform");function f(u){return(typeof u.range=="string"?s.decode(u.range):u.range).br?"xdr:twoCellAnchor":"xdr:oneCellAnchor"}class l extends h{constructor(){super(),this.map={"xdr:twoCellAnchor":new c,"xdr:oneCellAnchor":new a}}prepare(p){p.anchors.forEach((m,d)=>{m.anchorType=f(m),this.map[m.anchorType].prepare(m,{index:d})})}get tag(){return"xdr:wsDr"}render(p,m){p.openXml(o.StdDocAttributes),p.openNode(this.tag,l.DRAWING_ATTRIBUTES),m.anchors.forEach(d=>{this.map[d.anchorType].render(p,d)}),p.closeNode()}parseOpen(p){if(this.parser)return this.parser.parseOpen(p),!0;switch(p.name){case this.tag:this.reset(),this.model={anchors:[]};break;default:this.parser=this.map[p.name],this.parser&&this.parser.parseOpen(p);break}return!0}parseText(p){this.parser&&this.parser.parseText(p)}parseClose(p){if(this.parser)return this.parser.parseClose(p)||(this.model.anchors.push(this.parser.model),this.parser=void 0),!0;switch(p){case this.tag:return!1;default:return!0}}reconcile(p,m){p.anchors.forEach(d=>{d.br?this.map["xdr:twoCellAnchor"].reconcile(d,m):this.map["xdr:oneCellAnchor"].reconcile(d,m)})}}l.DRAWING_ATTRIBUTES={"xmlns:xdr":"http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing","xmlns:a":"http://schemas.openxmlformats.org/drawingml/2006/main"},n.exports=l},{"../../../utils/col-cache":19,"../../../utils/xml-stream":28,"../base-xform":32,"./one-cell-anchor-xform":67,"./two-cell-anchor-xform":70}],63:[function(e,n,i){const s=e("../base-xform");class o extends s{get tag(){return"a:extLst"}render(c){c.openNode(this.tag),c.openNode("a:ext",{uri:"{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}"}),c.leafNode("a16:creationId",{"xmlns:a16":"http://schemas.microsoft.com/office/drawing/2014/main",id:"{00000000-0008-0000-0000-000002000000}"}),c.closeNode(),c.closeNode()}parseOpen(c){switch(c.name){case this.tag:return!0;default:return!0}}parseText(){}parseClose(c){switch(c){case this.tag:return!1;default:return!0}}}n.exports=o},{"../base-xform":32}],64:[function(e,n,i){const s=e("../base-xform"),o=9525;class h extends s{constructor(a){super(),this.tag=a.tag,this.map={}}render(a,f){a.openNode(this.tag);const l=Math.floor(f.width*o),u=Math.floor(f.height*o);a.addAttribute("cx",l),a.addAttribute("cy",u),a.closeNode()}parseOpen(a){return a.name===this.tag?(this.model={width:parseInt(a.attributes.cx||"0",10)/o,height:parseInt(a.attributes.cy||"0",10)/o},!0):!1}parseText(){}parseClose(){return!1}}n.exports=h},{"../base-xform":32}],65:[function(e,n,i){const s=e("../base-xform");class o extends s{get tag(){return"a:hlinkClick"}render(c,a){a.hyperlinks&&a.hyperlinks.rId&&c.leafNode(this.tag,{"xmlns:r":"http://schemas.openxmlformats.org/officeDocument/2006/relationships","r:id":a.hyperlinks.rId,tooltip:a.hyperlinks.tooltip})}parseOpen(c){switch(c.name){case this.tag:return this.model={hyperlinks:{rId:c.attributes["r:id"],tooltip:c.attributes.tooltip}},!0;default:return!0}}parseText(){}parseClose(){return!1}}n.exports=o},{"../base-xform":32}],66:[function(e,n,i){const s=e("../base-xform"),o=e("./c-nv-pr-xform"),h=e("./c-nv-pic-pr-xform");class c extends s{constructor(){super(),this.map={"xdr:cNvPr":new o,"xdr:cNvPicPr":new h}}get tag(){return"xdr:nvPicPr"}render(f,l){f.openNode(this.tag),this.map["xdr:cNvPr"].render(f,l),this.map["xdr:cNvPicPr"].render(f,l),f.closeNode()}parseOpen(f){if(this.parser)return this.parser.parseOpen(f),!0;switch(f.name){case this.tag:this.reset();break;default:this.parser=this.map[f.name],this.parser&&this.parser.parseOpen(f);break}return!0}parseText(){}parseClose(f){if(this.parser)return this.parser.parseClose(f)||(this.parser=void 0),!0;switch(f){case this.tag:return this.model=this.map["xdr:cNvPr"].model,!1;default:return!0}}}n.exports=c},{"../base-xform":32,"./c-nv-pic-pr-xform":59,"./c-nv-pr-xform":60}],67:[function(e,n,i){const s=e("./base-cell-anchor-xform"),o=e("../static-xform"),h=e("./cell-position-xform"),c=e("./ext-xform"),a=e("./pic-xform");class f extends s{constructor(){super(),this.map={"xdr:from":new h({tag:"xdr:from"}),"xdr:ext":new c({tag:"xdr:ext"}),"xdr:pic":new a,"xdr:clientData":new o({tag:"xdr:clientData"})}}get tag(){return"xdr:oneCellAnchor"}prepare(u,p){this.map["xdr:pic"].prepare(u.picture,p)}render(u,p){u.openNode(this.tag,{editAs:p.range.editAs||"oneCell"}),this.map["xdr:from"].render(u,p.range.tl),this.map["xdr:ext"].render(u,p.range.ext),this.map["xdr:pic"].render(u,p.picture),this.map["xdr:clientData"].render(u,{}),u.closeNode()}parseClose(u){if(this.parser)return this.parser.parseClose(u)||(this.parser=void 0),!0;switch(u){case this.tag:return this.model.range.tl=this.map["xdr:from"].model,this.model.range.ext=this.map["xdr:ext"].model,this.model.picture=this.map["xdr:pic"].model,!1;default:return!0}}reconcile(u,p){u.medium=this.reconcilePicture(u.picture,p)}}n.exports=f},{"../static-xform":120,"./base-cell-anchor-xform":56,"./cell-position-xform":61,"./ext-xform":64,"./pic-xform":68}],68:[function(e,n,i){const s=e("../base-xform"),o=e("../static-xform"),h=e("./blip-fill-xform"),c=e("./nv-pic-pr-xform"),a=e("./sp-pr");class f extends s{constructor(){super(),this.map={"xdr:nvPicPr":new c,"xdr:blipFill":new h,"xdr:spPr":new o(a)}}get tag(){return"xdr:pic"}prepare(u,p){u.index=p.index+1}render(u,p){u.openNode(this.tag),this.map["xdr:nvPicPr"].render(u,p),this.map["xdr:blipFill"].render(u,p),this.map["xdr:spPr"].render(u,p),u.closeNode()}parseOpen(u){if(this.parser)return this.parser.parseOpen(u),!0;switch(u.name){case this.tag:this.reset();break;default:this.parser=this.map[u.name],this.parser&&this.parser.parseOpen(u);break}return!0}parseText(){}parseClose(u){if(this.parser)return this.parser.parseClose(u)||(this.mergeModel(this.parser.model),this.parser=void 0),!0;switch(u){case this.tag:return!1;default:return!0}}}n.exports=f},{"../base-xform":32,"../static-xform":120,"./blip-fill-xform":57,"./nv-pic-pr-xform":66,"./sp-pr":69}],69:[function(e,n,i){n.exports={tag:"xdr:spPr",c:[{tag:"a:xfrm",c:[{tag:"a:off",$:{x:"0",y:"0"}},{tag:"a:ext",$:{cx:"0",cy:"0"}}]},{tag:"a:prstGeom",$:{prst:"rect"},c:[{tag:"a:avLst"}]}]}},{}],70:[function(e,n,i){const s=e("./base-cell-anchor-xform"),o=e("../static-xform"),h=e("./cell-position-xform"),c=e("./pic-xform");class a extends s{constructor(){super(),this.map={"xdr:from":new h({tag:"xdr:from"}),"xdr:to":new h({tag:"xdr:to"}),"xdr:pic":new c,"xdr:clientData":new o({tag:"xdr:clientData"})}}get tag(){return"xdr:twoCellAnchor"}prepare(l,u){this.map["xdr:pic"].prepare(l.picture,u)}render(l,u){l.openNode(this.tag,{editAs:u.range.editAs||"oneCell"}),this.map["xdr:from"].render(l,u.range.tl),this.map["xdr:to"].render(l,u.range.br),this.map["xdr:pic"].render(l,u.picture),this.map["xdr:clientData"].render(l,{}),l.closeNode()}parseClose(l){if(this.parser)return this.parser.parseClose(l)||(this.parser=void 0),!0;switch(l){case this.tag:return this.model.range.tl=this.map["xdr:from"].model,this.model.range.br=this.map["xdr:to"].model,this.model.picture=this.map["xdr:pic"].model,!1;default:return!0}}reconcile(l,u){l.medium=this.reconcilePicture(l.picture,u)}}n.exports=a},{"../static-xform":120,"./base-cell-anchor-xform":56,"./cell-position-xform":61,"./pic-xform":68}],71:[function(e,n,i){const s=e("./base-xform");class o extends s{constructor(c){super(),this.tag=c.tag,this.always=!!c.always,this.count=c.count,this.empty=c.empty,this.$count=c.$count||"count",this.$=c.$,this.childXform=c.childXform,this.maxItems=c.maxItems}prepare(c,a){const{childXform:f}=this;c&&c.forEach((l,u)=>{a.index=u,f.prepare(l,a)})}render(c,a){if(this.always||a&&a.length){c.openNode(this.tag,this.$),this.count&&c.addAttribute(this.$count,a&&a.length||0);const{childXform:f}=this;(a||[]).forEach((l,u)=>{f.render(c,l,u)}),c.closeNode()}else this.empty&&c.leafNode(this.tag)}parseOpen(c){if(this.parser)return this.parser.parseOpen(c),!0;switch(c.name){case this.tag:return this.model=[],!0;default:return this.childXform.parseOpen(c)?(this.parser=this.childXform,!0):!1}}parseText(c){this.parser&&this.parser.parseText(c)}parseClose(c){if(this.parser){if(!this.parser.parseClose(c)&&(this.model.push(this.parser.model),this.parser=void 0,this.maxItems&&this.model.length>this.maxItems))throw new Error(`Max ${this.childXform.tag} count (${this.maxItems}) exceeded`);return!0}return!1}reconcile(c,a){if(c){const{childXform:f}=this;c.forEach(l=>{f.reconcile(l,a)})}}}n.exports=o},{"./base-xform":32}],72:[function(e,n,i){const s=e("../../../utils/col-cache"),o=e("../base-xform");class h extends o{get tag(){return"autoFilter"}render(a,f){if(f)if(typeof f=="string")a.leafNode("autoFilter",{ref:f});else{const l=function(m){return typeof m=="string"?m:s.getAddress(m.row,m.column).address},u=l(f.from),p=l(f.to);u&&p&&a.leafNode("autoFilter",{ref:`${u}:${p}`})}}parseOpen(a){a.name==="autoFilter"&&(this.model=a.attributes.ref)}}n.exports=h},{"../../../utils/col-cache":19,"../base-xform":32}],73:[function(e,n,i){const s=e("../../../utils/utils"),o=e("../base-xform"),h=e("../../../doc/range"),c=e("../../../doc/enums"),a=e("../strings/rich-text-xform");function f(p){if(p==null)return c.ValueType.Null;if(p instanceof String||typeof p=="string")return c.ValueType.String;if(typeof p=="number")return c.ValueType.Number;if(typeof p=="boolean")return c.ValueType.Boolean;if(p instanceof Date)return c.ValueType.Date;if(p.text&&p.hyperlink)return c.ValueType.Hyperlink;if(p.formula)return c.ValueType.Formula;if(p.error)return c.ValueType.Error;throw new Error("I could not understand type of value")}function l(p){switch(p.type){case c.ValueType.Formula:return f(p.result);default:return p.type}}class u extends o{constructor(){super(),this.richTextXForm=new a}get tag(){return"c"}prepare(m,d){const v=d.styles.addStyleModel(m.style||{},l(m));switch(v&&(m.styleId=v),m.comment&&d.comments.push({...m.comment,ref:m.address}),m.type){case c.ValueType.String:case c.ValueType.RichText:d.sharedStrings&&(m.ssId=d.sharedStrings.add(m.value));break;case c.ValueType.Date:d.date1904&&(m.date1904=!0);break;case c.ValueType.Hyperlink:d.sharedStrings&&m.text!==void 0&&m.text!==null&&(m.ssId=d.sharedStrings.add(m.text)),d.hyperlinks.push({address:m.address,target:m.hyperlink,tooltip:m.tooltip});break;case c.ValueType.Merge:d.merges.add(m);break;case c.ValueType.Formula:if(d.date1904&&(m.date1904=!0),m.shareType==="shared"&&(m.si=d.siFormulae++),m.formula)d.formulae[m.address]=m;else if(m.sharedFormula){const x=d.formulae[m.sharedFormula];if(!x)throw new Error(`Shared Formula master must exist above and or left of clone for cell ${m.address}`);x.si===void 0?(x.shareType="shared",x.si=d.siFormulae++,x.range=new h(x.address,m.address)):x.range&&x.range.expandToAddress(m.address),m.si=x.si}break}}renderFormula(m,d){let v=null;switch(d.shareType){case"shared":v={t:"shared",ref:d.ref||d.range.range,si:d.si};break;case"array":v={t:"array",ref:d.ref};break;default:d.si!==void 0&&(v={t:"shared",si:d.si});break}switch(f(d.result)){case c.ValueType.Null:m.leafNode("f",v,d.formula);break;case c.ValueType.String:m.addAttribute("t","str"),m.leafNode("f",v,d.formula),m.leafNode("v",null,d.result);break;case c.ValueType.Number:m.leafNode("f",v,d.formula),m.leafNode("v",null,d.result);break;case c.ValueType.Boolean:m.addAttribute("t","b"),m.leafNode("f",v,d.formula),m.leafNode("v",null,d.result?1:0);break;case c.ValueType.Error:m.addAttribute("t","e"),m.leafNode("f",v,d.formula),m.leafNode("v",null,d.result.error);break;case c.ValueType.Date:m.leafNode("f",v,d.formula),m.leafNode("v",null,s.dateToExcel(d.result,d.date1904));break;default:throw new Error("I could not understand type of value")}}render(m,d){if(!(d.type===c.ValueType.Null&&!d.styleId)){switch(m.openNode("c"),m.addAttribute("r",d.address),d.styleId&&m.addAttribute("s",d.styleId),d.type){case c.ValueType.Null:break;case c.ValueType.Number:m.leafNode("v",null,d.value);break;case c.ValueType.Boolean:m.addAttribute("t","b"),m.leafNode("v",null,d.value?"1":"0");break;case c.ValueType.Error:m.addAttribute("t","e"),m.leafNode("v",null,d.value.error);break;case c.ValueType.String:case c.ValueType.RichText:d.ssId!==void 0?(m.addAttribute("t","s"),m.leafNode("v",null,d.ssId)):d.value&&d.value.richText?(m.addAttribute("t","inlineStr"),m.openNode("is"),d.value.richText.forEach(v=>{this.richTextXForm.render(m,v)}),m.closeNode("is")):(m.addAttribute("t","str"),m.leafNode("v",null,d.value));break;case c.ValueType.Date:m.leafNode("v",null,s.dateToExcel(d.value,d.date1904));break;case c.ValueType.Hyperlink:d.ssId!==void 0?(m.addAttribute("t","s"),m.leafNode("v",null,d.ssId)):(m.addAttribute("t","str"),m.leafNode("v",null,d.text));break;case c.ValueType.Formula:this.renderFormula(m,d);break;case c.ValueType.Merge:break}m.closeNode()}}parseOpen(m){if(this.parser)return this.parser.parseOpen(m),!0;switch(m.name){case"c":return this.model={address:m.attributes.r},this.t=m.attributes.t,m.attributes.s&&(this.model.styleId=parseInt(m.attributes.s,10)),!0;case"f":return this.currentNode="f",this.model.si=m.attributes.si,this.model.shareType=m.attributes.t,this.model.ref=m.attributes.ref,!0;case"v":return this.currentNode="v",!0;case"t":return this.currentNode="t",!0;case"r":return this.parser=this.richTextXForm,this.parser.parseOpen(m),!0;default:return!1}}parseText(m){if(this.parser){this.parser.parseText(m);return}switch(this.currentNode){case"f":this.model.formula=this.model.formula?this.model.formula+m:m;break;case"v":case"t":this.model.value&&this.model.value.richText?this.model.value.richText.text=this.model.value.richText.text?this.model.value.richText.text+m:m:this.model.value=this.model.value?this.model.value+m:m;break}}parseClose(m){switch(m){case"c":{const{model:d}=this;if(d.formula||d.shareType)d.type=c.ValueType.Formula,d.value&&(this.t==="str"?d.result=s.xmlDecode(d.value):this.t==="b"?d.result=parseInt(d.value,10)!==0:this.t==="e"?d.result={error:d.value}:d.result=parseFloat(d.value),d.value=void 0);else if(d.value!==void 0)switch(this.t){case"s":d.type=c.ValueType.String,d.value=parseInt(d.value,10);break;case"str":d.type=c.ValueType.String,d.value=s.xmlDecode(d.value);break;case"inlineStr":d.type=c.ValueType.String;break;case"b":d.type=c.ValueType.Boolean,d.value=parseInt(d.value,10)!==0;break;case"e":d.type=c.ValueType.Error,d.value={error:d.value};break;default:d.type=c.ValueType.Number,d.value=parseFloat(d.value);break}else d.styleId?d.type=c.ValueType.Null:d.type=c.ValueType.Merge;return!1}case"f":case"v":case"is":return this.currentNode=void 0,!0;case"t":return this.parser?(this.parser.parseClose(m),!0):(this.currentNode=void 0,!0);case"r":return this.model.value=this.model.value||{},this.model.value.richText=this.model.value.richText||[],this.model.value.richText.push(this.parser.model),this.parser=void 0,this.currentNode=void 0,!0;default:return this.parser?(this.parser.parseClose(m),!0):!1}}reconcile(m,d){const v=m.styleId&&d.styles&&d.styles.getStyleModel(m.styleId);switch(v&&(m.style=v),m.styleId!==void 0&&(m.styleId=void 0),m.type){case c.ValueType.String:typeof m.value=="number"&&d.sharedStrings&&(m.value=d.sharedStrings.getString(m.value)),m.value.richText&&(m.type=c.ValueType.RichText);break;case c.ValueType.Number:v&&s.isDateFmt(v.numFmt)&&(m.type=c.ValueType.Date,m.value=s.excelToDate(m.value,d.date1904));break;case c.ValueType.Formula:m.result!==void 0&&v&&s.isDateFmt(v.numFmt)&&(m.result=s.excelToDate(m.result,d.date1904)),m.shareType==="shared"&&(m.ref?d.formulae[m.si]=m.address:(m.sharedFormula=d.formulae[m.si],delete m.shareType),delete m.si);break}const x=d.hyperlinkMap[m.address];x&&(m.type===c.ValueType.Formula?(m.text=m.result,m.result=void 0):(m.text=m.value,m.value=void 0),m.type=c.ValueType.Hyperlink,m.hyperlink=x);const g=d.commentsMap&&d.commentsMap[m.address];g&&(m.comment=g)}}n.exports=u},{"../../../doc/enums":7,"../../../doc/range":10,"../../../utils/utils":27,"../base-xform":32,"../strings/rich-text-xform":122}],74:[function(e,n,i){const s=e("../../base-xform");class o extends s{get tag(){return"x14:cfIcon"}render(c,a){c.leafNode(this.tag,{iconSet:a.iconSet,iconId:a.iconId})}parseOpen(c){let{attributes:a}=c;this.model={iconSet:a.iconSet,iconId:s.toIntValue(a.iconId)}}parseClose(c){return c!==this.tag}}n.exports=o},{"../../base-xform":32}],75:[function(e,n,i){const{v4:s}=e("uuid"),o=e("../../base-xform"),h=e("../../composite-xform"),c=e("./databar-ext-xform"),a=e("./icon-set-ext-xform"),f={"3Triangles":!0,"3Stars":!0,"5Boxes":!0};class l extends h{constructor(){super(),this.map={"x14:dataBar":this.databarXform=new c,"x14:iconSet":this.iconSetXform=new a}}get tag(){return"x14:cfRule"}static isExt(p){return p.type==="dataBar"?c.isExt(p):!!(p.type==="iconSet"&&(p.custom||f[p.iconSet]))}prepare(p){l.isExt(p)&&(p.x14Id=`{${s()}}`.toUpperCase())}render(p,m){if(l.isExt(m))switch(m.type){case"dataBar":this.renderDataBar(p,m);break;case"iconSet":this.renderIconSet(p,m);break}}renderDataBar(p,m){p.openNode(this.tag,{type:"dataBar",id:m.x14Id}),this.databarXform.render(p,m),p.closeNode()}renderIconSet(p,m){p.openNode(this.tag,{type:"iconSet",priority:m.priority,id:m.x14Id||`{${s()}}`}),this.iconSetXform.render(p,m),p.closeNode()}createNewModel(p){let{attributes:m}=p;return{type:m.type,x14Id:m.id,priority:o.toIntValue(m.priority)}}onParserClose(p,m){Object.assign(this.model,m.model)}}n.exports=l},{"../../base-xform":32,"../../composite-xform":48,"./databar-ext-xform":79,"./icon-set-ext-xform":81,uuid:528}],76:[function(e,n,i){const s=e("../../composite-xform"),o=e("./f-ext-xform");class h extends s{constructor(){super(),this.map={"xm:f":this.fExtXform=new o}}get tag(){return"x14:cfvo"}render(a,f){a.openNode(this.tag,{type:f.type}),f.value!==void 0&&this.fExtXform.render(a,f.value),a.closeNode()}createNewModel(a){return{type:a.attributes.type}}onParserClose(a,f){switch(a){case"xm:f":this.model.value=f.model?parseFloat(f.model):0;break}}}n.exports=h},{"../../composite-xform":48,"./f-ext-xform":80}],77:[function(e,n,i){const s=e("../../composite-xform"),o=e("./sqref-ext-xform"),h=e("./cf-rule-ext-xform");class c extends s{constructor(){super(),this.map={"xm:sqref":this.sqRef=new o,"x14:cfRule":this.cfRule=new h}}get tag(){return"x14:conditionalFormatting"}prepare(f,l){f.rules.forEach(u=>{this.cfRule.prepare(u,l)})}render(f,l){l.rules.some(h.isExt)&&(f.openNode(this.tag,{"xmlns:xm":"http://schemas.microsoft.com/office/excel/2006/main"}),l.rules.filter(h.isExt).forEach(u=>this.cfRule.render(f,u)),this.sqRef.render(f,l.ref),f.closeNode())}createNewModel(){return{rules:[]}}onParserClose(f,l){switch(f){case"xm:sqref":this.model.ref=l.model;break;case"x14:cfRule":this.model.rules.push(l.model);break}}}n.exports=c},{"../../composite-xform":48,"./cf-rule-ext-xform":75,"./sqref-ext-xform":82}],78:[function(e,n,i){const s=e("../../composite-xform"),o=e("./cf-rule-ext-xform"),h=e("./conditional-formatting-ext-xform");class c extends s{constructor(){super(),this.map={"x14:conditionalFormatting":this.cfXform=new h}}get tag(){return"x14:conditionalFormattings"}hasContent(f){return f.hasExtContent===void 0&&(f.hasExtContent=f.some(l=>l.rules.some(o.isExt))),f.hasExtContent}prepare(f,l){f.forEach(u=>{this.cfXform.prepare(u,l)})}render(f,l){this.hasContent(l)&&(f.openNode(this.tag),l.forEach(u=>this.cfXform.render(f,u)),f.closeNode())}createNewModel(){return[]}onParserClose(f,l){this.model.push(l.model)}}n.exports=c},{"../../composite-xform":48,"./cf-rule-ext-xform":75,"./conditional-formatting-ext-xform":77}],79:[function(e,n,i){const s=e("../../base-xform"),o=e("../../composite-xform"),h=e("../../style/color-xform"),c=e("./cfvo-ext-xform");class a extends o{constructor(){super(),this.map={"x14:cfvo":this.cfvoXform=new c,"x14:borderColor":this.borderColorXform=new h("x14:borderColor"),"x14:negativeBorderColor":this.negativeBorderColorXform=new h("x14:negativeBorderColor"),"x14:negativeFillColor":this.negativeFillColorXform=new h("x14:negativeFillColor"),"x14:axisColor":this.axisColorXform=new h("x14:axisColor")}}static isExt(l){return!l.gradient}get tag(){return"x14:dataBar"}render(l,u){l.openNode(this.tag,{minLength:s.toIntAttribute(u.minLength,0,!0),maxLength:s.toIntAttribute(u.maxLength,100,!0),border:s.toBoolAttribute(u.border,!1),gradient:s.toBoolAttribute(u.gradient,!0),negativeBarColorSameAsPositive:s.toBoolAttribute(u.negativeBarColorSameAsPositive,!0),negativeBarBorderColorSameAsPositive:s.toBoolAttribute(u.negativeBarBorderColorSameAsPositive,!0),axisPosition:s.toAttribute(u.axisPosition,"auto"),direction:s.toAttribute(u.direction,"leftToRight")}),u.cfvo.forEach(p=>{this.cfvoXform.render(l,p)}),this.borderColorXform.render(l,u.borderColor),this.negativeBorderColorXform.render(l,u.negativeBorderColor),this.negativeFillColorXform.render(l,u.negativeFillColor),this.axisColorXform.render(l,u.axisColor),l.closeNode()}createNewModel(l){let{attributes:u}=l;return{cfvo:[],minLength:s.toIntValue(u.minLength,0),maxLength:s.toIntValue(u.maxLength,100),border:s.toBoolValue(u.border,!1),gradient:s.toBoolValue(u.gradient,!0),negativeBarColorSameAsPositive:s.toBoolValue(u.negativeBarColorSameAsPositive,!0),negativeBarBorderColorSameAsPositive:s.toBoolValue(u.negativeBarBorderColorSameAsPositive,!0),axisPosition:s.toStringValue(u.axisPosition,"auto"),direction:s.toStringValue(u.direction,"leftToRight")}}onParserClose(l,u){const[,p]=l.split(":");switch(p){case"cfvo":this.model.cfvo.push(u.model);break;default:this.model[p]=u.model;break}}}n.exports=a},{"../../base-xform":32,"../../composite-xform":48,"../../style/color-xform":128,"./cfvo-ext-xform":76}],80:[function(e,n,i){const s=e("../../base-xform");class o extends s{get tag(){return"xm:f"}render(c,a){c.leafNode(this.tag,null,a)}parseOpen(){this.model=""}parseText(c){this.model+=c}parseClose(c){return c!==this.tag}}n.exports=o},{"../../base-xform":32}],81:[function(e,n,i){const s=e("../../base-xform"),o=e("../../composite-xform"),h=e("./cfvo-ext-xform"),c=e("./cf-icon-ext-xform");class a extends o{constructor(){super(),this.map={"x14:cfvo":this.cfvoXform=new h,"x14:cfIcon":this.cfIconXform=new c}}get tag(){return"x14:iconSet"}render(l,u){l.openNode(this.tag,{iconSet:s.toStringAttribute(u.iconSet),reverse:s.toBoolAttribute(u.reverse,!1),showValue:s.toBoolAttribute(u.showValue,!0),custom:s.toBoolAttribute(u.icons,!1)}),u.cfvo.forEach(p=>{this.cfvoXform.render(l,p)}),u.icons&&u.icons.forEach((p,m)=>{p.iconId=m,this.cfIconXform.render(l,p)}),l.closeNode()}createNewModel(l){let{attributes:u}=l;return{cfvo:[],iconSet:s.toStringValue(u.iconSet,"3TrafficLights"),reverse:s.toBoolValue(u.reverse,!1),showValue:s.toBoolValue(u.showValue,!0)}}onParserClose(l,u){const[,p]=l.split(":");switch(p){case"cfvo":this.model.cfvo.push(u.model);break;case"cfIcon":this.model.icons||(this.model.icons=[]),this.model.icons.push(u.model);break;default:this.model[p]=u.model;break}}}n.exports=a},{"../../base-xform":32,"../../composite-xform":48,"./cf-icon-ext-xform":74,"./cfvo-ext-xform":76}],82:[function(e,n,i){const s=e("../../base-xform");class o extends s{get tag(){return"xm:sqref"}render(c,a){c.leafNode(this.tag,null,a)}parseOpen(){this.model=""}parseText(c){this.model+=c}parseClose(c){return c!==this.tag}}n.exports=o},{"../../base-xform":32}],83:[function(e,n,i){const s=e("../../base-xform"),o=e("../../composite-xform"),h=e("../../../../doc/range"),c=e("./databar-xform"),a=e("./ext-lst-ref-xform"),f=e("./formula-xform"),l=e("./color-scale-xform"),u=e("./icon-set-xform"),p={"3Triangles":!0,"3Stars":!0,"5Boxes":!0},m=g=>{if(g.formulae&&g.formulae[0])return g.formulae[0];const b=new h(g.ref),{tl:w}=b;switch(g.operator){case"containsText":return`NOT(ISERROR(SEARCH("${g.text}",${w})))`;case"containsBlanks":return`LEN(TRIM(${w}))=0`;case"notContainsBlanks":return`LEN(TRIM(${w}))>0`;case"containsErrors":return`ISERROR(${w})`;case"notContainsErrors":return`NOT(ISERROR(${w}))`;default:return}},d=g=>{if(g.formulae&&g.formulae[0])return g.formulae[0];const b=new h(g.ref),{tl:w}=b;switch(g.timePeriod){case"thisWeek":return`AND(TODAY()-ROUNDDOWN(${w},0)<=WEEKDAY(TODAY())-1,ROUNDDOWN(${w},0)-TODAY()<=7-WEEKDAY(TODAY()))`;case"lastWeek":return`AND(TODAY()-ROUNDDOWN(${w},0)>=(WEEKDAY(TODAY())),TODAY()-ROUNDDOWN(${w},0)<(WEEKDAY(TODAY())+7))`;case"nextWeek":return`AND(ROUNDDOWN(${w},0)-TODAY()>(7-WEEKDAY(TODAY())),ROUNDDOWN(${w},0)-TODAY()<(15-WEEKDAY(TODAY())))`;case"yesterday":return`FLOOR(${w},1)=TODAY()-1`;case"today":return`FLOOR(${w},1)=TODAY()`;case"tomorrow":return`FLOOR(${w},1)=TODAY()+1`;case"last7Days":return`AND(TODAY()-FLOOR(${w},1)<=6,FLOOR(${w},1)<=TODAY())`;case"lastMonth":return`AND(MONTH(${w})=MONTH(EDATE(TODAY(),0-1)),YEAR(${w})=YEAR(EDATE(TODAY(),0-1)))`;case"thisMonth":return`AND(MONTH(${w})=MONTH(TODAY()),YEAR(${w})=YEAR(TODAY()))`;case"nextMonth":return`AND(MONTH(${w})=MONTH(EDATE(TODAY(),0+1)),YEAR(${w})=YEAR(EDATE(TODAY(),0+1)))`;default:return}},v=g=>{const{type:b,operator:w}=g;switch(b){case"containsText":case"containsBlanks":case"notContainsBlanks":case"containsErrors":case"notContainsErrors":return{type:"containsText",operator:b};default:return{type:b,operator:w}}};class x extends o{constructor(){super(),this.map={dataBar:this.databarXform=new c,extLst:this.extLstRefXform=new a,formula:this.formulaXform=new f,colorScale:this.colorScaleXform=new l,iconSet:this.iconSetXform=new u}}get tag(){return"cfRule"}static isPrimitive(b){return!(b.type==="iconSet"&&(b.custom||p[b.iconSet]))}render(b,w){switch(w.type){case"expression":this.renderExpression(b,w);break;case"cellIs":this.renderCellIs(b,w);break;case"top10":this.renderTop10(b,w);break;case"aboveAverage":this.renderAboveAverage(b,w);break;case"dataBar":this.renderDataBar(b,w);break;case"colorScale":this.renderColorScale(b,w);break;case"iconSet":this.renderIconSet(b,w);break;case"containsText":this.renderText(b,w);break;case"timePeriod":this.renderTimePeriod(b,w);break}}renderExpression(b,w){b.openNode(this.tag,{type:"expression",dxfId:w.dxfId,priority:w.priority}),this.formulaXform.render(b,w.formulae[0]),b.closeNode()}renderCellIs(b,w){b.openNode(this.tag,{type:"cellIs",dxfId:w.dxfId,priority:w.priority,operator:w.operator}),w.formulae.forEach(y=>{this.formulaXform.render(b,y)}),b.closeNode()}renderTop10(b,w){b.leafNode(this.tag,{type:"top10",dxfId:w.dxfId,priority:w.priority,percent:s.toBoolAttribute(w.percent,!1),bottom:s.toBoolAttribute(w.bottom,!1),rank:s.toIntValue(w.rank,10,!0)})}renderAboveAverage(b,w){b.leafNode(this.tag,{type:"aboveAverage",dxfId:w.dxfId,priority:w.priority,aboveAverage:s.toBoolAttribute(w.aboveAverage,!0)})}renderDataBar(b,w){b.openNode(this.tag,{type:"dataBar",priority:w.priority}),this.databarXform.render(b,w),this.extLstRefXform.render(b,w),b.closeNode()}renderColorScale(b,w){b.openNode(this.tag,{type:"colorScale",priority:w.priority}),this.colorScaleXform.render(b,w),b.closeNode()}renderIconSet(b,w){x.isPrimitive(w)&&(b.openNode(this.tag,{type:"iconSet",priority:w.priority}),this.iconSetXform.render(b,w),b.closeNode())}renderText(b,w){b.openNode(this.tag,{type:w.operator,dxfId:w.dxfId,priority:w.priority,operator:s.toStringAttribute(w.operator,"containsText")});const y=m(w);y&&this.formulaXform.render(b,y),b.closeNode()}renderTimePeriod(b,w){b.openNode(this.tag,{type:"timePeriod",dxfId:w.dxfId,priority:w.priority,timePeriod:w.timePeriod});const y=d(w);y&&this.formulaXform.render(b,y),b.closeNode()}createNewModel(b){let{attributes:w}=b;return{...v(w),dxfId:s.toIntValue(w.dxfId),priority:s.toIntValue(w.priority),timePeriod:w.timePeriod,percent:s.toBoolValue(w.percent),bottom:s.toBoolValue(w.bottom),rank:s.toIntValue(w.rank),aboveAverage:s.toBoolValue(w.aboveAverage)}}onParserClose(b,w){switch(b){case"dataBar":case"extLst":case"colorScale":case"iconSet":Object.assign(this.model,w.model);break;case"formula":this.model.formulae=this.model.formulae||[],this.model.formulae.push(w.model);break}}}n.exports=x},{"../../../../doc/range":10,"../../base-xform":32,"../../composite-xform":48,"./color-scale-xform":85,"./databar-xform":88,"./ext-lst-ref-xform":89,"./formula-xform":90,"./icon-set-xform":91}],84:[function(e,n,i){const s=e("../../base-xform");class o extends s{get tag(){return"cfvo"}render(c,a){c.leafNode(this.tag,{type:a.type,val:a.value})}parseOpen(c){this.model={type:c.attributes.type,value:s.toFloatValue(c.attributes.val)}}parseClose(c){return c!==this.tag}}n.exports=o},{"../../base-xform":32}],85:[function(e,n,i){const s=e("../../composite-xform"),o=e("../../style/color-xform"),h=e("./cfvo-xform");class c extends s{constructor(){super(),this.map={cfvo:this.cfvoXform=new h,color:this.colorXform=new o}}get tag(){return"colorScale"}render(f,l){f.openNode(this.tag),l.cfvo.forEach(u=>{this.cfvoXform.render(f,u)}),l.color.forEach(u=>{this.colorXform.render(f,u)}),f.closeNode()}createNewModel(f){return{cfvo:[],color:[]}}onParserClose(f,l){this.model[f].push(l.model)}}n.exports=c},{"../../composite-xform":48,"../../style/color-xform":128,"./cfvo-xform":84}],86:[function(e,n,i){const s=e("../../composite-xform"),o=e("./cf-rule-xform");class h extends s{constructor(){super(),this.map={cfRule:new o}}get tag(){return"conditionalFormatting"}render(a,f){f.rules.some(o.isPrimitive)&&(a.openNode(this.tag,{sqref:f.ref}),f.rules.forEach(l=>{o.isPrimitive(l)&&(l.ref=f.ref,this.map.cfRule.render(a,l))}),a.closeNode())}createNewModel(a){let{attributes:f}=a;return{ref:f.sqref,rules:[]}}onParserClose(a,f){this.model.rules.push(f.model)}}n.exports=h},{"../../composite-xform":48,"./cf-rule-xform":83}],87:[function(e,n,i){const s=e("../../base-xform"),o=e("./conditional-formatting-xform");class h extends s{constructor(){super(),this.cfXform=new o}get tag(){return"conditionalFormatting"}reset(){this.model=[]}prepare(a,f){let l=a.reduce((u,p)=>Math.max(u,...p.rules.map(m=>m.priority||0)),1);a.forEach(u=>{u.rules.forEach(p=>{p.priority||(p.priority=l++),p.style&&(p.dxfId=f.styles.addDxfStyle(p.style))})})}render(a,f){f.forEach(l=>{this.cfXform.render(a,l)})}parseOpen(a){if(this.parser)return this.parser.parseOpen(a),!0;switch(a.name){case"conditionalFormatting":return this.parser=this.cfXform,this.parser.parseOpen(a),!0;default:return!1}}parseText(a){this.parser&&this.parser.parseText(a)}parseClose(a){return this.parser?this.parser.parseClose(a)?!0:(this.model.push(this.parser.model),this.parser=void 0,!1):!1}reconcile(a,f){a.forEach(l=>{l.rules.forEach(u=>{u.dxfId!==void 0&&(u.style=f.styles.getDxfStyle(u.dxfId),delete u.dxfId)})})}}n.exports=h},{"../../base-xform":32,"./conditional-formatting-xform":86}],88:[function(e,n,i){const s=e("../../composite-xform"),o=e("../../style/color-xform"),h=e("./cfvo-xform");class c extends s{constructor(){super(),this.map={cfvo:this.cfvoXform=new h,color:this.colorXform=new o}}get tag(){return"dataBar"}render(f,l){f.openNode(this.tag),l.cfvo.forEach(u=>{this.cfvoXform.render(f,u)}),this.colorXform.render(f,l.color),f.closeNode()}createNewModel(){return{cfvo:[]}}onParserClose(f,l){switch(f){case"cfvo":this.model.cfvo.push(l.model);break;case"color":this.model.color=l.model;break}}}n.exports=c},{"../../composite-xform":48,"../../style/color-xform":128,"./cfvo-xform":84}],89:[function(e,n,i){const s=e("../../base-xform"),o=e("../../composite-xform");class h extends s{get tag(){return"x14:id"}render(l,u){l.leafNode(this.tag,null,u)}parseOpen(){this.model=""}parseText(l){this.model+=l}parseClose(l){return l!==this.tag}}class c extends o{constructor(){super(),this.map={"x14:id":this.idXform=new h}}get tag(){return"ext"}render(l,u){l.openNode(this.tag,{uri:"{B025F937-C7B1-47D3-B67F-A62EFF666E3E}","xmlns:x14":"http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"}),this.idXform.render(l,u.x14Id),l.closeNode()}createNewModel(){return{}}onParserClose(l,u){this.model.x14Id=u.model}}class a extends o{constructor(){super(),this.map={ext:new c}}get tag(){return"extLst"}render(l,u){l.openNode(this.tag),this.map.ext.render(l,u),l.closeNode()}createNewModel(){return{}}onParserClose(l,u){Object.assign(this.model,u.model)}}n.exports=a},{"../../base-xform":32,"../../composite-xform":48}],90:[function(e,n,i){const s=e("../../base-xform");class o extends s{get tag(){return"formula"}render(c,a){c.leafNode(this.tag,null,a)}parseOpen(){this.model=""}parseText(c){this.model+=c}parseClose(c){return c!==this.tag}}n.exports=o},{"../../base-xform":32}],91:[function(e,n,i){const s=e("../../base-xform"),o=e("../../composite-xform"),h=e("./cfvo-xform");class c extends o{constructor(){super(),this.map={cfvo:this.cfvoXform=new h}}get tag(){return"iconSet"}render(f,l){f.openNode(this.tag,{iconSet:s.toStringAttribute(l.iconSet,"3TrafficLights"),reverse:s.toBoolAttribute(l.reverse,!1),showValue:s.toBoolAttribute(l.showValue,!0)}),l.cfvo.forEach(u=>{this.cfvoXform.render(f,u)}),f.closeNode()}createNewModel(f){let{attributes:l}=f;return{iconSet:s.toStringValue(l.iconSet,"3TrafficLights"),reverse:s.toBoolValue(l.reverse),showValue:s.toBoolValue(l.showValue),cfvo:[]}}onParserClose(f,l){this.model[f].push(l.model)}}n.exports=c},{"../../base-xform":32,"../../composite-xform":48,"./cfvo-xform":84}],92:[function(e,n,i){const s=e("../../../utils/utils"),o=e("../base-xform");class h extends o{get tag(){return"col"}prepare(a,f){const l=f.styles.addStyleModel(a.style||{});l&&(a.styleId=l)}render(a,f){a.openNode("col"),a.addAttribute("min",f.min),a.addAttribute("max",f.max),f.width&&a.addAttribute("width",f.width),f.styleId&&a.addAttribute("style",f.styleId),f.hidden&&a.addAttribute("hidden","1"),f.bestFit&&a.addAttribute("bestFit","1"),f.outlineLevel&&a.addAttribute("outlineLevel",f.outlineLevel),f.collapsed&&a.addAttribute("collapsed","1"),a.addAttribute("customWidth","1"),a.closeNode()}parseOpen(a){if(a.name==="col"){const f=this.model={min:parseInt(a.attributes.min||"0",10),max:parseInt(a.attributes.max||"0",10),width:a.attributes.width===void 0?void 0:parseFloat(a.attributes.width||"0")};return a.attributes.style&&(f.styleId=parseInt(a.attributes.style,10)),s.parseBoolean(a.attributes.hidden)&&(f.hidden=!0),s.parseBoolean(a.attributes.bestFit)&&(f.bestFit=!0),a.attributes.outlineLevel&&(f.outlineLevel=parseInt(a.attributes.outlineLevel,10)),s.parseBoolean(a.attributes.collapsed)&&(f.collapsed=!0),!0}return!1}parseText(){}parseClose(){return!1}reconcile(a,f){a.styleId&&(a.style=f.styles.getStyleModel(a.styleId))}}n.exports=h},{"../../../utils/utils":27,"../base-xform":32}],93:[function(e,n,i){const s=e("../../../utils/under-dash"),o=e("../../../utils/utils"),h=e("../../../utils/col-cache"),c=e("../base-xform"),a=e("../../../doc/range");function f(m,d,v,x){const g=d[v];g!==void 0?m[v]=g:x!==void 0&&(m[v]=x)}function l(m,d,v,x){const g=d[v];g!==void 0?m[v]=o.parseBoolean(g):x!==void 0&&(m[v]=x)}function u(m){const d=s.map(m,(g,b)=>({address:b,dataValidation:g,marked:!1})).sort((g,b)=>s.strcmp(g.address,b.address)),v=s.keyBy(d,"address"),x=(g,b,w)=>{for(let y=0;y{if(!g.marked){const b=h.decodeEx(g.address);if(b.dimensions)return v[b.dimensions].marked=!0,{...g.dataValidation,sqref:g.address};let w=1,y=h.encodeAddress(b.row+w,b.col);for(;m[y]&&s.isEqual(g.dataValidation,m[y]);)w++,y=h.encodeAddress(b.row+w,b.col);let T=1;for(;x(b,w,b.col+T);)T++;for(let C=0;C1||T>1){const C=b.row+(w-1),M=b.col+(T-1);return{...g.dataValidation,sqref:`${g.address}:${h.encodeAddress(C,M)}`}}return{...g.dataValidation,sqref:g.address}}return null}).filter(Boolean)}class p extends c{get tag(){return"dataValidations"}render(d,v){const x=u(v);x.length&&(d.openNode("dataValidations",{count:x.length}),x.forEach(g=>{d.openNode("dataValidation"),g.type!=="any"&&(d.addAttribute("type",g.type),g.operator&&g.type!=="list"&&g.operator!=="between"&&d.addAttribute("operator",g.operator),g.allowBlank&&d.addAttribute("allowBlank","1")),g.showInputMessage&&d.addAttribute("showInputMessage","1"),g.promptTitle&&d.addAttribute("promptTitle",g.promptTitle),g.prompt&&d.addAttribute("prompt",g.prompt),g.showErrorMessage&&d.addAttribute("showErrorMessage","1"),g.errorStyle&&d.addAttribute("errorStyle",g.errorStyle),g.errorTitle&&d.addAttribute("errorTitle",g.errorTitle),g.error&&d.addAttribute("error",g.error),d.addAttribute("sqref",g.sqref),(g.formulae||[]).forEach((b,w)=>{d.openNode(`formula${w+1}`),g.type==="date"?d.writeText(o.dateToExcel(new Date(b))):d.writeText(b),d.closeNode()}),d.closeNode()}),d.closeNode())}parseOpen(d){switch(d.name){case"dataValidations":return this.model={},!0;case"dataValidation":{this._address=d.attributes.sqref;const v={type:d.attributes.type||"any",formulae:[]};switch(d.attributes.type&&l(v,d.attributes,"allowBlank"),l(v,d.attributes,"showInputMessage"),l(v,d.attributes,"showErrorMessage"),v.type){case"any":case"list":case"custom":break;default:f(v,d.attributes,"operator","between");break}return f(v,d.attributes,"promptTitle"),f(v,d.attributes,"prompt"),f(v,d.attributes,"errorStyle"),f(v,d.attributes,"errorTitle"),f(v,d.attributes,"error"),this._dataValidation=v,!0}case"formula1":case"formula2":return this._formula=[],!0;default:return!1}}parseText(d){this._formula&&this._formula.push(d)}parseClose(d){switch(d){case"dataValidations":return!1;case"dataValidation":return(!this._dataValidation.formulae||!this._dataValidation.formulae.length)&&(delete this._dataValidation.formulae,delete this._dataValidation.operator),(this._address.split(/\s+/g)||[]).forEach(x=>{x.includes(":")?new a(x).forEachAddress(b=>{this.model[b]=this._dataValidation}):this.model[x]=this._dataValidation}),!0;case"formula1":case"formula2":{let v=this._formula.join("");switch(this._dataValidation.type){case"whole":case"textLength":v=parseInt(v,10);break;case"decimal":v=parseFloat(v);break;case"date":v=o.excelToDate(parseFloat(v));break}return this._dataValidation.formulae.push(v),this._formula=void 0,!0}default:return!0}}}n.exports=p},{"../../../doc/range":10,"../../../utils/col-cache":19,"../../../utils/under-dash":26,"../../../utils/utils":27,"../base-xform":32}],94:[function(e,n,i){const s=e("../base-xform");class o extends s{get tag(){return"dimension"}render(c,a){a&&c.leafNode("dimension",{ref:a})}parseOpen(c){return c.name==="dimension"?(this.model=c.attributes.ref,!0):!1}parseText(){}parseClose(){return!1}}n.exports=o},{"../base-xform":32}],95:[function(e,n,i){const s=e("../base-xform");class o extends s{get tag(){return"drawing"}render(c,a){a&&c.leafNode(this.tag,{"r:id":a.rId})}parseOpen(c){switch(c.name){case this.tag:return this.model={rId:c.attributes["r:id"]},!0;default:return!1}}parseText(){}parseClose(){return!1}}n.exports=o},{"../base-xform":32}],96:[function(e,n,i){const s=e("../composite-xform"),o=e("./cf-ext/conditional-formattings-ext-xform");class h extends s{constructor(){super(),this.map={"x14:conditionalFormattings":this.conditionalFormattings=new o}}get tag(){return"ext"}hasContent(f){return this.conditionalFormattings.hasContent(f.conditionalFormattings)}prepare(f,l){this.conditionalFormattings.prepare(f.conditionalFormattings,l)}render(f,l){f.openNode("ext",{uri:"{78C0D931-6437-407d-A8EE-F0AAD7539E65}","xmlns:x14":"http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"}),this.conditionalFormattings.render(f,l.conditionalFormattings),f.closeNode()}createNewModel(){return{}}onParserClose(f,l){this.model[f]=l.model}}class c extends s{constructor(){super(),this.map={ext:this.ext=new h}}get tag(){return"extLst"}prepare(f,l){this.ext.prepare(f,l)}hasContent(f){return this.ext.hasContent(f)}render(f,l){this.hasContent(l)&&(f.openNode("extLst"),this.ext.render(f,l),f.closeNode())}createNewModel(){return{}}onParserClose(f,l){Object.assign(this.model,l.model)}}n.exports=c},{"../composite-xform":48,"./cf-ext/conditional-formattings-ext-xform":78}],97:[function(e,n,i){const s=e("../base-xform");class o extends s{get tag(){return"headerFooter"}render(c,a){if(a){c.addRollback();let f=!1;c.openNode("headerFooter"),a.differentFirst&&(c.addAttribute("differentFirst","1"),f=!0),a.differentOddEven&&(c.addAttribute("differentOddEven","1"),f=!0),a.oddHeader&&typeof a.oddHeader=="string"&&(c.leafNode("oddHeader",null,a.oddHeader),f=!0),a.oddFooter&&typeof a.oddFooter=="string"&&(c.leafNode("oddFooter",null,a.oddFooter),f=!0),a.evenHeader&&typeof a.evenHeader=="string"&&(c.leafNode("evenHeader",null,a.evenHeader),f=!0),a.evenFooter&&typeof a.evenFooter=="string"&&(c.leafNode("evenFooter",null,a.evenFooter),f=!0),a.firstHeader&&typeof a.firstHeader=="string"&&(c.leafNode("firstHeader",null,a.firstHeader),f=!0),a.firstFooter&&typeof a.firstFooter=="string"&&(c.leafNode("firstFooter",null,a.firstFooter),f=!0),f?(c.closeNode(),c.commit()):c.rollback()}}parseOpen(c){switch(c.name){case"headerFooter":return this.model={},c.attributes.differentFirst&&(this.model.differentFirst=parseInt(c.attributes.differentFirst,0)===1),c.attributes.differentOddEven&&(this.model.differentOddEven=parseInt(c.attributes.differentOddEven,0)===1),!0;case"oddHeader":return this.currentNode="oddHeader",!0;case"oddFooter":return this.currentNode="oddFooter",!0;case"evenHeader":return this.currentNode="evenHeader",!0;case"evenFooter":return this.currentNode="evenFooter",!0;case"firstHeader":return this.currentNode="firstHeader",!0;case"firstFooter":return this.currentNode="firstFooter",!0;default:return!1}}parseText(c){switch(this.currentNode){case"oddHeader":this.model.oddHeader=c;break;case"oddFooter":this.model.oddFooter=c;break;case"evenHeader":this.model.evenHeader=c;break;case"evenFooter":this.model.evenFooter=c;break;case"firstHeader":this.model.firstHeader=c;break;case"firstFooter":this.model.firstFooter=c;break}}parseClose(){switch(this.currentNode){case"oddHeader":case"oddFooter":case"evenHeader":case"evenFooter":case"firstHeader":case"firstFooter":return this.currentNode=void 0,!0;default:return!1}}}n.exports=o},{"../base-xform":32}],98:[function(e,n,i){const s=e("../base-xform");class o extends s{get tag(){return"hyperlink"}render(c,a){this.isInternalLink(a)?c.leafNode("hyperlink",{ref:a.address,"r:id":a.rId,tooltip:a.tooltip,location:a.target}):c.leafNode("hyperlink",{ref:a.address,"r:id":a.rId,tooltip:a.tooltip})}parseOpen(c){return c.name==="hyperlink"?(this.model={address:c.attributes.ref,rId:c.attributes["r:id"],tooltip:c.attributes.tooltip},c.attributes.location&&(this.model.target=c.attributes.location),!0):!1}parseText(){}parseClose(){return!1}isInternalLink(c){return c.target&&/^[^!]+![a-zA-Z]+[\d]+$/.test(c.target)}}n.exports=o},{"../base-xform":32}],99:[function(e,n,i){const s=e("../base-xform");class o extends s{get tag(){return"mergeCell"}render(c,a){c.leafNode("mergeCell",{ref:a})}parseOpen(c){return c.name==="mergeCell"?(this.model=c.attributes.ref,!0):!1}parseText(){}parseClose(){return!1}}n.exports=o},{"../base-xform":32}],100:[function(e,n,i){const s=e("../../../utils/under-dash"),o=e("../../../doc/range"),h=e("../../../utils/col-cache"),c=e("../../../doc/enums");class a{constructor(){this.merges={}}add(l){if(this.merges[l.master])this.merges[l.master].expandToAddress(l.address);else{const u=`${l.master}:${l.address}`;this.merges[l.master]=new o(u)}}get mergeCells(){return s.map(this.merges,l=>l.range)}reconcile(l,u){s.each(l,p=>{const m=h.decode(p);for(let d=m.top;d<=m.bottom;d++){const v=u[d-1];for(let x=m.left;x<=m.right;x++){const g=v.cells[x-1];g?g.type===c.ValueType.Merge&&(g.master=m.tl):v.cells[x]={type:c.ValueType.Null,address:h.encodeAddress(d,x)}}}})}getMasterAddress(l){const u=this.hash[l];return u&&u.tl}}n.exports=a},{"../../../doc/enums":7,"../../../doc/range":10,"../../../utils/col-cache":19,"../../../utils/under-dash":26}],101:[function(e,n,i){const s=e("../base-xform"),o=c=>typeof c<"u";class h extends s{get tag(){return"outlinePr"}render(a,f){return f&&(o(f.summaryBelow)||o(f.summaryRight))?(a.leafNode(this.tag,{summaryBelow:o(f.summaryBelow)?Number(f.summaryBelow):void 0,summaryRight:o(f.summaryRight)?Number(f.summaryRight):void 0}),!0):!1}parseOpen(a){return a.name===this.tag?(this.model={summaryBelow:o(a.attributes.summaryBelow)?!!Number(a.attributes.summaryBelow):void 0,summaryRight:o(a.attributes.summaryRight)?!!Number(a.attributes.summaryRight):void 0},!0):!1}parseText(){}parseClose(){return!1}}n.exports=h},{"../base-xform":32}],102:[function(e,n,i){const s=e("../base-xform");class o extends s{get tag(){return"brk"}render(c,a){c.leafNode("brk",a)}parseOpen(c){return c.name==="brk"?(this.model=c.attributes.ref,!0):!1}parseText(){}parseClose(){return!1}}n.exports=o},{"../base-xform":32}],103:[function(e,n,i){const s=e("../../../utils/under-dash"),o=e("../base-xform");class h extends o{get tag(){return"pageMargins"}render(a,f){if(f){const l={left:f.left,right:f.right,top:f.top,bottom:f.bottom,header:f.header,footer:f.footer};s.some(l,u=>u!==void 0)&&a.leafNode(this.tag,l)}}parseOpen(a){switch(a.name){case this.tag:return this.model={left:parseFloat(a.attributes.left||.7),right:parseFloat(a.attributes.right||.7),top:parseFloat(a.attributes.top||.75),bottom:parseFloat(a.attributes.bottom||.75),header:parseFloat(a.attributes.header||.3),footer:parseFloat(a.attributes.footer||.3)},!0;default:return!1}}parseText(){}parseClose(){return!1}}n.exports=h},{"../../../utils/under-dash":26,"../base-xform":32}],104:[function(e,n,i){const s=e("../base-xform");class o extends s{get tag(){return"pageSetUpPr"}render(c,a){return a&&a.fitToPage?(c.leafNode(this.tag,{fitToPage:a.fitToPage?"1":void 0}),!0):!1}parseOpen(c){return c.name===this.tag?(this.model={fitToPage:c.attributes.fitToPage==="1"},!0):!1}parseText(){}parseClose(){return!1}}n.exports=o},{"../base-xform":32}],105:[function(e,n,i){const s=e("../../../utils/under-dash"),o=e("../base-xform");function h(p){return p?"1":void 0}function c(p){switch(p){case"overThenDown":return p;default:return}}function a(p){switch(p){case"atEnd":case"asDisplyed":return p;default:return}}function f(p){switch(p){case"dash":case"blank":case"NA":return p;default:return}}function l(p){return p!==void 0?parseInt(p,10):void 0}class u extends o{get tag(){return"pageSetup"}render(m,d){if(d){const v={paperSize:d.paperSize,orientation:d.orientation,horizontalDpi:d.horizontalDpi,verticalDpi:d.verticalDpi,pageOrder:c(d.pageOrder),blackAndWhite:h(d.blackAndWhite),draft:h(d.draft),cellComments:a(d.cellComments),errors:f(d.errors),scale:d.scale,fitToWidth:d.fitToWidth,fitToHeight:d.fitToHeight,firstPageNumber:d.firstPageNumber,useFirstPageNumber:h(d.firstPageNumber),usePrinterDefaults:h(d.usePrinterDefaults),copies:d.copies};s.some(v,x=>x!==void 0)&&m.leafNode(this.tag,v)}}parseOpen(m){switch(m.name){case this.tag:return this.model={paperSize:l(m.attributes.paperSize),orientation:m.attributes.orientation||"portrait",horizontalDpi:parseInt(m.attributes.horizontalDpi||"4294967295",10),verticalDpi:parseInt(m.attributes.verticalDpi||"4294967295",10),pageOrder:m.attributes.pageOrder||"downThenOver",blackAndWhite:m.attributes.blackAndWhite==="1",draft:m.attributes.draft==="1",cellComments:m.attributes.cellComments||"None",errors:m.attributes.errors||"displayed",scale:parseInt(m.attributes.scale||"100",10),fitToWidth:parseInt(m.attributes.fitToWidth||"1",10),fitToHeight:parseInt(m.attributes.fitToHeight||"1",10),firstPageNumber:parseInt(m.attributes.firstPageNumber||"1",10),useFirstPageNumber:m.attributes.useFirstPageNumber==="1",usePrinterDefaults:m.attributes.usePrinterDefaults==="1",copies:parseInt(m.attributes.copies||"1",10)},!0;default:return!1}}parseText(){}parseClose(){return!1}}n.exports=u},{"../../../utils/under-dash":26,"../base-xform":32}],106:[function(e,n,i){const s=e("../base-xform");class o extends s{get tag(){return"picture"}render(c,a){a&&c.leafNode(this.tag,{"r:id":a.rId})}parseOpen(c){switch(c.name){case this.tag:return this.model={rId:c.attributes["r:id"]},!0;default:return!1}}parseText(){}parseClose(){return!1}}n.exports=o},{"../base-xform":32}],107:[function(e,n,i){const s=e("../../../utils/under-dash"),o=e("../base-xform");function h(a){return a?"1":void 0}class c extends o{get tag(){return"printOptions"}render(f,l){if(l){const u={headings:h(l.showRowColHeaders),gridLines:h(l.showGridLines),horizontalCentered:h(l.horizontalCentered),verticalCentered:h(l.verticalCentered)};s.some(u,p=>p!==void 0)&&f.leafNode(this.tag,u)}}parseOpen(f){switch(f.name){case this.tag:return this.model={showRowColHeaders:f.attributes.headings==="1",showGridLines:f.attributes.gridLines==="1",horizontalCentered:f.attributes.horizontalCentered==="1",verticalCentered:f.attributes.verticalCentered==="1"},!0;default:return!1}}parseText(){}parseClose(){return!1}}n.exports=c},{"../../../utils/under-dash":26,"../base-xform":32}],108:[function(e,n,i){const s=e("./page-breaks-xform"),o=e("../list-xform");class h extends o{constructor(){const a={tag:"rowBreaks",count:!0,childXform:new s};super(a)}render(a,f){if(f&&f.length){a.openNode(this.tag,this.$),this.count&&(a.addAttribute(this.$count,f.length),a.addAttribute("manualBreakCount",f.length));const{childXform:l}=this;f.forEach(u=>{l.render(a,u)}),a.closeNode()}else this.empty&&a.leafNode(this.tag)}}n.exports=h},{"../list-xform":71,"./page-breaks-xform":102}],109:[function(e,n,i){const s=e("../base-xform"),o=e("../../../utils/utils"),h=e("./cell-xform");class c extends s{constructor(f){super(),this.maxItems=f&&f.maxItems,this.map={c:new h}}get tag(){return"row"}prepare(f,l){const u=l.styles.addStyleModel(f.style);u&&(f.styleId=u);const p=this.map.c;f.cells.forEach(m=>{p.prepare(m,l)})}render(f,l,u){f.openNode("row"),f.addAttribute("r",l.number),l.height&&(f.addAttribute("ht",l.height),f.addAttribute("customHeight","1")),l.hidden&&f.addAttribute("hidden","1"),l.min>0&&l.max>0&&l.min<=l.max&&f.addAttribute("spans",`${l.min}:${l.max}`),l.styleId&&(f.addAttribute("s",l.styleId),f.addAttribute("customFormat","1")),f.addAttribute("x14ac:dyDescent","0.25"),l.outlineLevel&&f.addAttribute("outlineLevel",l.outlineLevel),l.collapsed&&f.addAttribute("collapsed","1");const p=this.map.c;l.cells.forEach(m=>{p.render(f,m,u)}),f.closeNode()}parseOpen(f){if(this.parser)return this.parser.parseOpen(f),!0;if(f.name==="row"){this.numRowsSeen+=1;const l=f.attributes.spans?f.attributes.spans.split(":").map(p=>parseInt(p,10)):[void 0,void 0],u=this.model={number:parseInt(f.attributes.r,10),min:l[0],max:l[1],cells:[]};return f.attributes.s&&(u.styleId=parseInt(f.attributes.s,10)),o.parseBoolean(f.attributes.hidden)&&(u.hidden=!0),o.parseBoolean(f.attributes.bestFit)&&(u.bestFit=!0),f.attributes.ht&&(u.height=parseFloat(f.attributes.ht)),f.attributes.outlineLevel&&(u.outlineLevel=parseInt(f.attributes.outlineLevel,10)),o.parseBoolean(f.attributes.collapsed)&&(u.collapsed=!0),!0}return this.parser=this.map[f.name],this.parser?(this.parser.parseOpen(f),!0):!1}parseText(f){this.parser&&this.parser.parseText(f)}parseClose(f){if(this.parser){if(!this.parser.parseClose(f)){if(this.model.cells.push(this.parser.model),this.maxItems&&this.model.cells.length>this.maxItems)throw new Error(`Max column count (${this.maxItems}) exceeded`);this.parser=void 0}return!0}return!1}reconcile(f,l){f.style=f.styleId?l.styles.getStyleModel(f.styleId):{},f.styleId!==void 0&&(f.styleId=void 0);const u=this.map.c;f.cells.forEach(p=>{u.reconcile(p,l)})}}n.exports=c},{"../../../utils/utils":27,"../base-xform":32,"./cell-xform":73}],110:[function(e,n,i){const s=e("../../../utils/under-dash"),o=e("../base-xform");class h extends o{get tag(){return"sheetFormatPr"}render(a,f){if(f){const l={defaultRowHeight:f.defaultRowHeight,outlineLevelRow:f.outlineLevelRow,outlineLevelCol:f.outlineLevelCol,"x14ac:dyDescent":f.dyDescent};f.defaultColWidth&&(l.defaultColWidth=f.defaultColWidth),(!f.defaultRowHeight||f.defaultRowHeight!==15)&&(l.customHeight="1"),s.some(l,u=>u!==void 0)&&a.leafNode("sheetFormatPr",l)}}parseOpen(a){return a.name==="sheetFormatPr"?(this.model={defaultRowHeight:parseFloat(a.attributes.defaultRowHeight||"0"),dyDescent:parseFloat(a.attributes["x14ac:dyDescent"]||"0"),outlineLevelRow:parseInt(a.attributes.outlineLevelRow||"0",10),outlineLevelCol:parseInt(a.attributes.outlineLevelCol||"0",10)},a.attributes.defaultColWidth&&(this.model.defaultColWidth=parseFloat(a.attributes.defaultColWidth)),!0):!1}parseText(){}parseClose(){return!1}}n.exports=h},{"../../../utils/under-dash":26,"../base-xform":32}],111:[function(e,n,i){const s=e("../base-xform"),o=e("../style/color-xform"),h=e("./page-setup-properties-xform"),c=e("./outline-properties-xform");class a extends s{constructor(){super(),this.map={tabColor:new o("tabColor"),pageSetUpPr:new h,outlinePr:new c}}get tag(){return"sheetPr"}render(l,u){if(u){l.addRollback(),l.openNode("sheetPr");let p=!1;p=this.map.tabColor.render(l,u.tabColor)||p,p=this.map.pageSetUpPr.render(l,u.pageSetup)||p,p=this.map.outlinePr.render(l,u.outlineProperties)||p,p?(l.closeNode(),l.commit()):l.rollback()}}parseOpen(l){return this.parser?(this.parser.parseOpen(l),!0):l.name===this.tag?(this.reset(),!0):this.map[l.name]?(this.parser=this.map[l.name],this.parser.parseOpen(l),!0):!1}parseText(l){return this.parser?(this.parser.parseText(l),!0):!1}parseClose(l){return this.parser?(this.parser.parseClose(l)||(this.parser=void 0),!0):(this.map.tabColor.model||this.map.pageSetUpPr.model||this.map.outlinePr.model?(this.model={},this.map.tabColor.model&&(this.model.tabColor=this.map.tabColor.model),this.map.pageSetUpPr.model&&(this.model.pageSetup=this.map.pageSetUpPr.model),this.map.outlinePr.model&&(this.model.outlineProperties=this.map.outlinePr.model)):this.model=null,!1)}}n.exports=a},{"../base-xform":32,"../style/color-xform":128,"./outline-properties-xform":101,"./page-setup-properties-xform":104}],112:[function(e,n,i){const s=e("../../../utils/under-dash"),o=e("../base-xform");function h(f,l){return f?l:void 0}function c(f,l){return f===l?!0:void 0}class a extends o{get tag(){return"sheetProtection"}render(l,u){if(u){const p={sheet:h(u.sheet,"1"),selectLockedCells:u.selectLockedCells===!1?"1":void 0,selectUnlockedCells:u.selectUnlockedCells===!1?"1":void 0,formatCells:h(u.formatCells,"0"),formatColumns:h(u.formatColumns,"0"),formatRows:h(u.formatRows,"0"),insertColumns:h(u.insertColumns,"0"),insertRows:h(u.insertRows,"0"),insertHyperlinks:h(u.insertHyperlinks,"0"),deleteColumns:h(u.deleteColumns,"0"),deleteRows:h(u.deleteRows,"0"),sort:h(u.sort,"0"),autoFilter:h(u.autoFilter,"0"),pivotTables:h(u.pivotTables,"0")};u.sheet&&(p.algorithmName=u.algorithmName,p.hashValue=u.hashValue,p.saltValue=u.saltValue,p.spinCount=u.spinCount,p.objects=h(u.objects===!1,"1"),p.scenarios=h(u.scenarios===!1,"1")),s.some(p,m=>m!==void 0)&&l.leafNode(this.tag,p)}}parseOpen(l){switch(l.name){case this.tag:return this.model={sheet:c(l.attributes.sheet,"1"),objects:l.attributes.objects==="1"?!1:void 0,scenarios:l.attributes.scenarios==="1"?!1:void 0,selectLockedCells:l.attributes.selectLockedCells==="1"?!1:void 0,selectUnlockedCells:l.attributes.selectUnlockedCells==="1"?!1:void 0,formatCells:c(l.attributes.formatCells,"0"),formatColumns:c(l.attributes.formatColumns,"0"),formatRows:c(l.attributes.formatRows,"0"),insertColumns:c(l.attributes.insertColumns,"0"),insertRows:c(l.attributes.insertRows,"0"),insertHyperlinks:c(l.attributes.insertHyperlinks,"0"),deleteColumns:c(l.attributes.deleteColumns,"0"),deleteRows:c(l.attributes.deleteRows,"0"),sort:c(l.attributes.sort,"0"),autoFilter:c(l.attributes.autoFilter,"0"),pivotTables:c(l.attributes.pivotTables,"0")},l.attributes.algorithmName&&(this.model.algorithmName=l.attributes.algorithmName,this.model.hashValue=l.attributes.hashValue,this.model.saltValue=l.attributes.saltValue,this.model.spinCount=parseInt(l.attributes.spinCount,10)),!0;default:return!1}}parseText(){}parseClose(){return!1}}n.exports=a},{"../../../utils/under-dash":26,"../base-xform":32}],113:[function(e,n,i){const s=e("../../../utils/col-cache"),o=e("../base-xform"),h={frozen:"frozen",frozenSplit:"frozen",split:"split"};class c extends o{get tag(){return"sheetView"}prepare(f){switch(f.state){case"frozen":case"split":break;default:f.state="normal";break}}render(f,l){f.openNode("sheetView",{workbookViewId:l.workbookViewId||0});const u=function(x,g,b){b&&f.addAttribute(x,g)};u("rightToLeft","1",l.rightToLeft===!0),u("tabSelected","1",l.tabSelected),u("showRuler","0",l.showRuler===!1),u("showRowColHeaders","0",l.showRowColHeaders===!1),u("showGridLines","0",l.showGridLines===!1),u("zoomScale",l.zoomScale,l.zoomScale),u("zoomScaleNormal",l.zoomScaleNormal,l.zoomScaleNormal),u("view",l.style,l.style);let p,m,d,v;switch(l.state){case"frozen":m=l.xSplit||0,d=l.ySplit||0,p=l.topLeftCell||s.getAddress(d+1,m+1).address,v=l.xSplit&&l.ySplit&&"bottomRight"||l.xSplit&&"topRight"||"bottomLeft",f.leafNode("pane",{xSplit:l.xSplit||void 0,ySplit:l.ySplit||void 0,topLeftCell:p,activePane:v,state:"frozen"}),f.leafNode("selection",{pane:v,activeCell:l.activeCell,sqref:l.activeCell});break;case"split":l.activePane==="topLeft"&&(l.activePane=void 0),f.leafNode("pane",{xSplit:l.xSplit||void 0,ySplit:l.ySplit||void 0,topLeftCell:l.topLeftCell,activePane:l.activePane}),f.leafNode("selection",{pane:l.activePane,activeCell:l.activeCell,sqref:l.activeCell});break;case"normal":l.activeCell&&f.leafNode("selection",{activeCell:l.activeCell,sqref:l.activeCell});break}f.closeNode()}parseOpen(f){switch(f.name){case"sheetView":return this.sheetView={workbookViewId:parseInt(f.attributes.workbookViewId,10),rightToLeft:f.attributes.rightToLeft==="1",tabSelected:f.attributes.tabSelected==="1",showRuler:f.attributes.showRuler!=="0",showRowColHeaders:f.attributes.showRowColHeaders!=="0",showGridLines:f.attributes.showGridLines!=="0",zoomScale:parseInt(f.attributes.zoomScale||"100",10),zoomScaleNormal:parseInt(f.attributes.zoomScaleNormal||"100",10),style:f.attributes.view},this.pane=void 0,this.selections={},!0;case"pane":return this.pane={xSplit:parseInt(f.attributes.xSplit||"0",10),ySplit:parseInt(f.attributes.ySplit||"0",10),topLeftCell:f.attributes.topLeftCell,activePane:f.attributes.activePane||"topLeft",state:f.attributes.state},!0;case"selection":{const l=f.attributes.pane||"topLeft";return this.selections[l]={pane:l,activeCell:f.attributes.activeCell},!0}default:return!1}}parseText(){}parseClose(f){let l,u;switch(f){case"sheetView":return this.sheetView&&this.pane?(l=this.model={workbookViewId:this.sheetView.workbookViewId,rightToLeft:this.sheetView.rightToLeft,state:h[this.pane.state]||"split",xSplit:this.pane.xSplit,ySplit:this.pane.ySplit,topLeftCell:this.pane.topLeftCell,showRuler:this.sheetView.showRuler,showRowColHeaders:this.sheetView.showRowColHeaders,showGridLines:this.sheetView.showGridLines,zoomScale:this.sheetView.zoomScale,zoomScaleNormal:this.sheetView.zoomScaleNormal},this.model.state==="split"&&(l.activePane=this.pane.activePane),u=this.selections[this.pane.activePane],u&&u.activeCell&&(l.activeCell=u.activeCell),this.sheetView.style&&(l.style=this.sheetView.style)):(l=this.model={workbookViewId:this.sheetView.workbookViewId,rightToLeft:this.sheetView.rightToLeft,state:"normal",showRuler:this.sheetView.showRuler,showRowColHeaders:this.sheetView.showRowColHeaders,showGridLines:this.sheetView.showGridLines,zoomScale:this.sheetView.zoomScale,zoomScaleNormal:this.sheetView.zoomScaleNormal},u=this.selections.topLeft,u&&u.activeCell&&(l.activeCell=u.activeCell),this.sheetView.style&&(l.style=this.sheetView.style)),!1;default:return!0}}reconcile(){}}n.exports=c},{"../../../utils/col-cache":19,"../base-xform":32}],114:[function(e,n,i){const s=e("../base-xform");class o extends s{get tag(){return"tablePart"}render(c,a){a&&c.leafNode(this.tag,{"r:id":a.rId})}parseOpen(c){switch(c.name){case this.tag:return this.model={rId:c.attributes["r:id"]},!0;default:return!1}}parseText(){}parseClose(){return!1}}n.exports=o},{"../base-xform":32}],115:[function(e,n,i){const s=e("../../../utils/under-dash"),o=e("../../../utils/col-cache"),h=e("../../../utils/xml-stream"),c=e("../../rel-type"),a=e("./merges"),f=e("../base-xform"),l=e("../list-xform"),u=e("./row-xform"),p=e("./col-xform"),m=e("./dimension-xform"),d=e("./hyperlink-xform"),v=e("./merge-cell-xform"),x=e("./data-validations-xform"),g=e("./sheet-properties-xform"),b=e("./sheet-format-properties-xform"),w=e("./sheet-view-xform"),y=e("./sheet-protection-xform"),T=e("./page-margins-xform"),C=e("./page-setup-xform"),M=e("./print-options-xform"),I=e("./auto-filter-xform"),B=e("./picture-xform"),U=e("./drawing-xform"),j=e("./table-part-xform"),H=e("./row-breaks-xform"),G=e("./header-footer-xform"),L=e("./cf/conditional-formattings-xform"),R=e("./ext-lst-xform"),F=(N,P)=>{Object.keys(P).forEach(D=>{const A=N[D],S=P[D];A===void 0&&S!==void 0&&(N[D]=S)})},_=(N,P)=>{if(!P||!P.length)return N;if(!N||!N.length)return P;const D={},A={};return N.forEach(S=>{D[S.ref]=S,S.rules.forEach(E=>{const{x14Id:O}=E;O&&(A[O]=E)})}),P.forEach(S=>{S.rules.forEach(E=>{const O=A[E.x14Id];O?F(O,E):D[S.ref]?D[S.ref].rules.push(E):N.push({ref:S.ref,rules:[E]})})}),N};class k extends f{constructor(P){super();const{maxRows:D,maxCols:A,ignoreNodes:S}=P||{};this.ignoreNodes=S||[],this.map={sheetPr:new g,dimension:new m,sheetViews:new l({tag:"sheetViews",count:!1,childXform:new w}),sheetFormatPr:new b,cols:new l({tag:"cols",count:!1,childXform:new p}),sheetData:new l({tag:"sheetData",count:!1,empty:!0,childXform:new u({maxItems:A}),maxItems:D}),autoFilter:new I,mergeCells:new l({tag:"mergeCells",count:!0,childXform:new v}),rowBreaks:new H,hyperlinks:new l({tag:"hyperlinks",count:!1,childXform:new d}),pageMargins:new T,dataValidations:new x,pageSetup:new C,headerFooter:new G,printOptions:new M,picture:new B,drawing:new U,sheetProtection:new y,tableParts:new l({tag:"tableParts",count:!0,childXform:new j}),conditionalFormatting:new L,extLst:new R}}prepare(P,D){D.merges=new a,P.hyperlinks=D.hyperlinks=[],P.comments=D.comments=[],D.formulae={},D.siFormulae=0,this.map.cols.prepare(P.cols,D),this.map.sheetData.prepare(P.rows,D),this.map.conditionalFormatting.prepare(P.conditionalFormattings,D),P.mergeCells=D.merges.mergeCells;const A=P.rels=[];function S(z){return`rId${z.length+1}`}if(P.hyperlinks.forEach(z=>{const J=S(A);z.rId=J,A.push({Id:J,Type:c.Hyperlink,Target:z.target,TargetMode:"External"})}),P.comments.length>0){const z={Id:S(A),Type:c.Comments,Target:`../comments${P.id}.xml`};A.push(z);const J={Id:S(A),Type:c.VmlDrawing,Target:`../drawings/vmlDrawing${P.id}.vml`};A.push(J),P.comments.forEach(re=>{re.refAddress=o.decodeAddress(re.ref)}),D.commentRefs.push({commentName:`comments${P.id}`,vmlDrawing:`vmlDrawing${P.id}`})}const E=[];let O;P.media.forEach(z=>{if(z.type==="background"){const J=S(A);O=D.media[z.imageId],A.push({Id:J,Type:c.Image,Target:`../media/${O.name}.${O.extension}`}),P.background={rId:J},P.image=D.media[z.imageId]}else if(z.type==="image"){let{drawing:J}=P;O=D.media[z.imageId],J||(J=P.drawing={rId:S(A),name:`drawing${++D.drawingsCount}`,anchors:[],rels:[]},D.drawings.push(J),A.push({Id:J.rId,Type:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing",Target:`../drawings/${J.name}.xml`}));let re=this.preImageId===z.imageId?E[z.imageId]:E[J.rels.length];re||(re=S(J.rels),E[J.rels.length]=re,J.rels.push({Id:re,Type:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",Target:`../media/${O.name}.${O.extension}`}));const se={picture:{rId:re},range:z.range};if(z.hyperlinks&&z.hyperlinks.hyperlink){const Ce=S(J.rels);E[J.rels.length]=Ce,se.picture.hyperlinks={tooltip:z.hyperlinks.tooltip,rId:Ce},J.rels.push({Id:Ce,Type:c.Hyperlink,Target:z.hyperlinks.hyperlink,TargetMode:"External"})}this.preImageId=z.imageId,J.anchors.push(se)}}),P.tables.forEach(z=>{const J=S(A);z.rId=J,A.push({Id:J,Type:c.Table,Target:`../tables/${z.target}`}),z.columns.forEach(re=>{const{style:se}=re;se&&(re.dxfId=D.styles.addDxfStyle(se))})}),this.map.extLst.prepare(P,D)}render(P,D){P.openXml(h.StdDocAttributes),P.openNode("worksheet",k.WORKSHEET_ATTRIBUTES);const A=D.properties?{defaultRowHeight:D.properties.defaultRowHeight,dyDescent:D.properties.dyDescent,outlineLevelCol:D.properties.outlineLevelCol,outlineLevelRow:D.properties.outlineLevelRow}:void 0;D.properties&&D.properties.defaultColWidth&&(A.defaultColWidth=D.properties.defaultColWidth);const S={outlineProperties:D.properties&&D.properties.outlineProperties,tabColor:D.properties&&D.properties.tabColor,pageSetup:D.pageSetup&&D.pageSetup.fitToPage?{fitToPage:D.pageSetup.fitToPage}:void 0},E=D.pageSetup&&D.pageSetup.margins,O={showRowColHeaders:D.pageSetup&&D.pageSetup.showRowColHeaders,showGridLines:D.pageSetup&&D.pageSetup.showGridLines,horizontalCentered:D.pageSetup&&D.pageSetup.horizontalCentered,verticalCentered:D.pageSetup&&D.pageSetup.verticalCentered},z=D.sheetProtection;this.map.sheetPr.render(P,S),this.map.dimension.render(P,D.dimensions),this.map.sheetViews.render(P,D.views),this.map.sheetFormatPr.render(P,A),this.map.cols.render(P,D.cols),this.map.sheetData.render(P,D.rows),this.map.sheetProtection.render(P,z),this.map.autoFilter.render(P,D.autoFilter),this.map.mergeCells.render(P,D.mergeCells),this.map.conditionalFormatting.render(P,D.conditionalFormattings),this.map.dataValidations.render(P,D.dataValidations),this.map.hyperlinks.render(P,D.hyperlinks),this.map.printOptions.render(P,O),this.map.pageMargins.render(P,E),this.map.pageSetup.render(P,D.pageSetup),this.map.headerFooter.render(P,D.headerFooter),this.map.rowBreaks.render(P,D.rowBreaks),this.map.drawing.render(P,D.drawing),this.map.picture.render(P,D.background),this.map.tableParts.render(P,D.tables),this.map.extLst.render(P,D),D.rels&&D.rels.forEach(J=>{J.Type===c.VmlDrawing&&P.leafNode("legacyDrawing",{"r:id":J.Id})}),P.closeNode()}parseOpen(P){return this.parser?(this.parser.parseOpen(P),!0):P.name==="worksheet"?(s.each(this.map,D=>{D.reset()}),!0):(this.map[P.name]&&!this.ignoreNodes.includes(P.name)&&(this.parser=this.map[P.name],this.parser.parseOpen(P)),!0)}parseText(P){this.parser&&this.parser.parseText(P)}parseClose(P){if(this.parser)return this.parser.parseClose(P)||(this.parser=void 0),!0;switch(P){case"worksheet":{const D=this.map.sheetFormatPr.model||{};this.map.sheetPr.model&&this.map.sheetPr.model.tabColor&&(D.tabColor=this.map.sheetPr.model.tabColor),this.map.sheetPr.model&&this.map.sheetPr.model.outlineProperties&&(D.outlineProperties=this.map.sheetPr.model.outlineProperties);const A={fitToPage:this.map.sheetPr.model&&this.map.sheetPr.model.pageSetup&&this.map.sheetPr.model.pageSetup.fitToPage||!1,margins:this.map.pageMargins.model},S=Object.assign(A,this.map.pageSetup.model,this.map.printOptions.model),E=_(this.map.conditionalFormatting.model,this.map.extLst.model&&this.map.extLst.model["x14:conditionalFormattings"]);return this.model={dimensions:this.map.dimension.model,cols:this.map.cols.model,rows:this.map.sheetData.model,mergeCells:this.map.mergeCells.model,hyperlinks:this.map.hyperlinks.model,dataValidations:this.map.dataValidations.model,properties:D,views:this.map.sheetViews.model,pageSetup:S,headerFooter:this.map.headerFooter.model,background:this.map.picture.model,drawing:this.map.drawing.model,tables:this.map.tableParts.model,conditionalFormattings:E},this.map.autoFilter.model&&(this.model.autoFilter=this.map.autoFilter.model),this.map.sheetProtection.model&&(this.model.sheetProtection=this.map.sheetProtection.model),!1}default:return!0}}reconcile(P,D){const A=(P.relationships||[]).reduce((E,O)=>{if(E[O.Id]=O,O.Type===c.Comments&&(P.comments=D.comments[O.Target].comments),O.Type===c.VmlDrawing&&P.comments&&P.comments.length){const z=D.vmlDrawings[O.Target].comments;P.comments.forEach((J,re)=>{J.note=Object.assign({},J.note,z[re])})}return E},{});if(D.commentsMap=(P.comments||[]).reduce((E,O)=>(O.ref&&(E[O.ref]=O),E),{}),D.hyperlinkMap=(P.hyperlinks||[]).reduce((E,O)=>(O.rId&&(E[O.address]=A[O.rId].Target),E),{}),D.formulae={},P.rows=P.rows&&P.rows.filter(Boolean)||[],P.rows.forEach(E=>{E.cells=E.cells&&E.cells.filter(Boolean)||[]}),this.map.cols.reconcile(P.cols,D),this.map.sheetData.reconcile(P.rows,D),this.map.conditionalFormatting.reconcile(P.conditionalFormattings,D),P.media=[],P.drawing){const O=A[P.drawing.rId].Target.match(/\/drawings\/([a-zA-Z0-9]+)[.][a-zA-Z]{3,4}$/);if(O){const z=O[1];D.drawings[z].anchors.forEach(re=>{if(re.medium){const se={type:"image",imageId:re.medium.index,range:re.range,hyperlinks:re.picture.hyperlinks};P.media.push(se)}})}}const S=P.background&&A[P.background.rId];if(S){const E=S.Target.split("/media/")[1],O=D.mediaIndex&&D.mediaIndex[E];O!==void 0&&P.media.push({type:"background",imageId:O})}P.tables=(P.tables||[]).map(E=>{const O=A[E.rId];return D.tables[O.Target]}),delete P.relationships,delete P.hyperlinks,delete P.comments}}k.WORKSHEET_ATTRIBUTES={xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main","xmlns:r":"http://schemas.openxmlformats.org/officeDocument/2006/relationships","xmlns:mc":"http://schemas.openxmlformats.org/markup-compatibility/2006","mc:Ignorable":"x14ac","xmlns:x14ac":"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac"},n.exports=k},{"../../../utils/col-cache":19,"../../../utils/under-dash":26,"../../../utils/xml-stream":28,"../../rel-type":31,"../base-xform":32,"../list-xform":71,"./auto-filter-xform":72,"./cf/conditional-formattings-xform":87,"./col-xform":92,"./data-validations-xform":93,"./dimension-xform":94,"./drawing-xform":95,"./ext-lst-xform":96,"./header-footer-xform":97,"./hyperlink-xform":98,"./merge-cell-xform":99,"./merges":100,"./page-margins-xform":103,"./page-setup-xform":105,"./picture-xform":106,"./print-options-xform":107,"./row-breaks-xform":108,"./row-xform":109,"./sheet-format-properties-xform":110,"./sheet-properties-xform":111,"./sheet-protection-xform":112,"./sheet-view-xform":113,"./table-part-xform":114}],116:[function(e,n,i){const s=e("../base-xform");class o extends s{constructor(c){super(),this.tag=c.tag,this.attr=c.attr}render(c,a){a&&(c.openNode(this.tag),c.closeNode())}parseOpen(c){c.name===this.tag&&(this.model=!0)}parseText(){}parseClose(){return!1}}n.exports=o},{"../base-xform":32}],117:[function(e,n,i){const s=e("../base-xform");class o extends s{constructor(c){super(),this.tag=c.tag,this.attr=c.attr,this.attrs=c.attrs,this._format=c.format||function(a){try{return Number.isNaN(a.getTime())?"":a.toISOString()}catch{return""}},this._parse=c.parse||function(a){return new Date(a)}}render(c,a){a&&(c.openNode(this.tag),this.attrs&&c.addAttributes(this.attrs),this.attr?c.addAttribute(this.attr,this._format(a)):c.writeText(this._format(a)),c.closeNode())}parseOpen(c){c.name===this.tag&&(this.attr?this.model=this._parse(c.attributes[this.attr]):this.text=[])}parseText(c){this.attr||this.text.push(c)}parseClose(){return this.attr||(this.model=this._parse(this.text.join(""))),!1}}n.exports=o},{"../base-xform":32}],118:[function(e,n,i){const s=e("../base-xform");class o extends s{constructor(c){super(),this.tag=c.tag,this.attr=c.attr,this.attrs=c.attrs,this.zero=c.zero}render(c,a){(a||this.zero)&&(c.openNode(this.tag),this.attrs&&c.addAttributes(this.attrs),this.attr?c.addAttribute(this.attr,a):c.writeText(a),c.closeNode())}parseOpen(c){return c.name===this.tag?(this.attr?this.model=parseInt(c.attributes[this.attr],10):this.text=[],!0):!1}parseText(c){this.attr||this.text.push(c)}parseClose(){return this.attr||(this.model=parseInt(this.text.join("")||0,10)),!1}}n.exports=o},{"../base-xform":32}],119:[function(e,n,i){const s=e("../base-xform");class o extends s{constructor(c){super(),this.tag=c.tag,this.attr=c.attr,this.attrs=c.attrs}render(c,a){a!==void 0&&(c.openNode(this.tag),this.attrs&&c.addAttributes(this.attrs),this.attr?c.addAttribute(this.attr,a):c.writeText(a),c.closeNode())}parseOpen(c){c.name===this.tag&&(this.attr?this.model=c.attributes[this.attr]:this.text=[])}parseText(c){this.attr||this.text.push(c)}parseClose(){return this.attr||(this.model=this.text.join("")),!1}}n.exports=o},{"../base-xform":32}],120:[function(e,n,i){const s=e("./base-xform"),o=e("../../utils/xml-stream");function h(a,f){a.openNode(f.tag,f.$),f.c&&f.c.forEach(l=>{h(a,l)}),f.t&&a.writeText(f.t),a.closeNode()}class c extends s{constructor(f){super(),this._model=f}render(f){if(!this._xml){const l=new o;h(l,this._model),this._xml=l.xml}f.writeXml(this._xml)}parseOpen(){return!0}parseText(){}parseClose(f){switch(f){case this._model.tag:return!1;default:return!0}}}n.exports=c},{"../../utils/xml-stream":28,"./base-xform":32}],121:[function(e,n,i){const s=e("./text-xform"),o=e("./rich-text-xform"),h=e("../base-xform");class c extends h{constructor(){super(),this.map={r:new o,t:new s}}get tag(){return"rPh"}render(f,l){if(f.openNode(this.tag,{sb:l.sb||0,eb:l.eb||0}),l&&l.hasOwnProperty("richText")&&l.richText){const{r:u}=this.map;l.richText.forEach(p=>{u.render(f,p)})}else l&&this.map.t.render(f,l.text);f.closeNode()}parseOpen(f){const{name:l}=f;return this.parser?(this.parser.parseOpen(f),!0):l===this.tag?(this.model={sb:parseInt(f.attributes.sb,10),eb:parseInt(f.attributes.eb,10)},!0):(this.parser=this.map[l],this.parser?(this.parser.parseOpen(f),!0):!1)}parseText(f){this.parser&&this.parser.parseText(f)}parseClose(f){if(this.parser){if(!this.parser.parseClose(f)){switch(f){case"r":{let l=this.model.richText;l||(l=this.model.richText=[]),l.push(this.parser.model);break}case"t":this.model.text=this.parser.model;break}this.parser=void 0}return!0}switch(f){case this.tag:return!1;default:return!0}}}n.exports=c},{"../base-xform":32,"./rich-text-xform":122,"./text-xform":125}],122:[function(e,n,i){const s=e("./text-xform"),o=e("../style/font-xform"),h=e("../base-xform");class c extends h{constructor(f){super(),this.model=f}get tag(){return"r"}get textXform(){return this._textXform||(this._textXform=new s)}get fontXform(){return this._fontXform||(this._fontXform=new o(c.FONT_OPTIONS))}render(f,l){l=l||this.model,f.openNode("r"),l.font&&this.fontXform.render(f,l.font),this.textXform.render(f,l.text),f.closeNode()}parseOpen(f){if(this.parser)return this.parser.parseOpen(f),!0;switch(f.name){case"r":return this.model={},!0;case"t":return this.parser=this.textXform,this.parser.parseOpen(f),!0;case"rPr":return this.parser=this.fontXform,this.parser.parseOpen(f),!0;default:return!1}}parseText(f){this.parser&&this.parser.parseText(f)}parseClose(f){switch(f){case"r":return!1;case"t":return this.model.text=this.parser.model,this.parser=void 0,!0;case"rPr":return this.model.font=this.parser.model,this.parser=void 0,!0;default:return this.parser&&this.parser.parseClose(f),!0}}}c.FONT_OPTIONS={tagName:"rPr",fontNameTag:"rFont"},n.exports=c},{"../base-xform":32,"../style/font-xform":131,"./text-xform":125}],123:[function(e,n,i){const s=e("./text-xform"),o=e("./rich-text-xform"),h=e("./phonetic-text-xform"),c=e("../base-xform");class a extends c{constructor(l){super(),this.model=l,this.map={r:new o,t:new s,rPh:new h}}get tag(){return"si"}render(l,u){l.openNode(this.tag),u&&u.hasOwnProperty("richText")&&u.richText?u.richText.length?u.richText.forEach(p=>{this.map.r.render(l,p)}):this.map.t.render(l,""):u!=null&&this.map.t.render(l,u),l.closeNode()}parseOpen(l){const{name:u}=l;return this.parser?(this.parser.parseOpen(l),!0):u===this.tag?(this.model={},!0):(this.parser=this.map[u],this.parser?(this.parser.parseOpen(l),!0):!1)}parseText(l){this.parser&&this.parser.parseText(l)}parseClose(l){if(this.parser){if(!this.parser.parseClose(l)){switch(l){case"r":{let u=this.model.richText;u||(u=this.model.richText=[]),u.push(this.parser.model);break}case"t":this.model=this.parser.model;break}this.parser=void 0}return!0}switch(l){case this.tag:return!1;default:return!0}}}n.exports=a},{"../base-xform":32,"./phonetic-text-xform":121,"./rich-text-xform":122,"./text-xform":125}],124:[function(e,n,i){const s=e("../../../utils/xml-stream"),o=e("../base-xform"),h=e("./shared-string-xform");class c extends o{constructor(f){super(),this.model=f||{values:[],count:0},this.hash=Object.create(null),this.rich=Object.create(null)}get sharedStringXform(){return this._sharedStringXform||(this._sharedStringXform=new h)}get values(){return this.model.values}get uniqueCount(){return this.model.values.length}get count(){return this.model.count}getString(f){return this.model.values[f]}add(f){return f.richText?this.addRichText(f):this.addText(f)}addText(f){let l=this.hash[f];return l===void 0&&(l=this.hash[f]=this.model.values.length,this.model.values.push(f)),this.model.count++,l}addRichText(f){const l=this.sharedStringXform.toXml(f);let u=this.rich[l];return u===void 0&&(u=this.rich[l]=this.model.values.length,this.model.values.push(f)),this.model.count++,u}render(f,l){l=l||this._values,f.openXml(s.StdDocAttributes),f.openNode("sst",{xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main",count:l.count,uniqueCount:l.values.length});const u=this.sharedStringXform;l.values.forEach(p=>{u.render(f,p)}),f.closeNode()}parseOpen(f){if(this.parser)return this.parser.parseOpen(f),!0;switch(f.name){case"sst":return!0;case"si":return this.parser=this.sharedStringXform,this.parser.parseOpen(f),!0;default:throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(f)}`)}}parseText(f){this.parser&&this.parser.parseText(f)}parseClose(f){if(this.parser)return this.parser.parseClose(f)||(this.model.values.push(this.parser.model),this.model.count++,this.parser=void 0),!0;switch(f){case"sst":return!1;default:throw new Error(`Unexpected xml node in parseClose: ${f}`)}}}n.exports=c},{"../../../utils/xml-stream":28,"../base-xform":32,"./shared-string-xform":123}],125:[function(e,n,i){const s=e("../base-xform");class o extends s{get tag(){return"t"}render(c,a){c.openNode("t"),/^\s|\n|\s$/.test(a)&&c.addAttribute("xml:space","preserve"),c.writeText(a),c.closeNode()}get model(){return this._text.join("").replace(/_x([0-9A-F]{4})_/g,(c,a)=>String.fromCharCode(parseInt(a,16)))}parseOpen(c){switch(c.name){case"t":return this._text=[],!0;default:return!1}}parseText(c){this._text.push(c)}parseClose(){return!1}}n.exports=o},{"../base-xform":32}],126:[function(e,n,i){const s=e("../../../doc/enums"),o=e("../../../utils/utils"),h=e("../base-xform"),c={horizontalValues:["left","center","right","fill","centerContinuous","distributed","justify"].reduce((l,u)=>(l[u]=!0,l),{}),horizontal(l){return this.horizontalValues[l]?l:void 0},verticalValues:["top","middle","bottom","distributed","justify"].reduce((l,u)=>(l[u]=!0,l),{}),vertical(l){return l==="middle"?"center":this.verticalValues[l]?l:void 0},wrapText(l){return l?!0:void 0},shrinkToFit(l){return l?!0:void 0},textRotation(l){switch(l){case"vertical":return l;default:return l=o.validInt(l),l>=-90&&l<=90?l:void 0}},indent(l){return l=o.validInt(l),Math.max(0,l)},readingOrder(l){switch(l){case"ltr":return s.ReadingOrder.LeftToRight;case"rtl":return s.ReadingOrder.RightToLeft;default:return}}},a={toXml(l){if(l=c.textRotation(l),l){if(l==="vertical")return 255;const u=Math.round(l);if(u>=0&&u<=90)return u;if(u<0&&u>=-90)return 90-u}},toModel(l){const u=o.validInt(l);if(u!==void 0){if(u===255)return"vertical";if(u>=0&&u<=90)return u;if(u>90&&u<=180)return 90-u}}};class f extends h{get tag(){return"alignment"}render(u,p){u.addRollback(),u.openNode("alignment");let m=!1;function d(v,x){x&&(u.addAttribute(v,x),m=!0)}d("horizontal",c.horizontal(p.horizontal)),d("vertical",c.vertical(p.vertical)),d("wrapText",c.wrapText(p.wrapText)?"1":!1),d("shrinkToFit",c.shrinkToFit(p.shrinkToFit)?"1":!1),d("indent",c.indent(p.indent)),d("textRotation",a.toXml(p.textRotation)),d("readingOrder",c.readingOrder(p.readingOrder)),u.closeNode(),m?u.commit():u.rollback()}parseOpen(u){const p={};let m=!1;function d(v,x,g){v&&(p[x]=g,m=!0)}d(u.attributes.horizontal,"horizontal",u.attributes.horizontal),d(u.attributes.vertical,"vertical",u.attributes.vertical==="center"?"middle":u.attributes.vertical),d(u.attributes.wrapText,"wrapText",o.parseBoolean(u.attributes.wrapText)),d(u.attributes.shrinkToFit,"shrinkToFit",o.parseBoolean(u.attributes.shrinkToFit)),d(u.attributes.indent,"indent",parseInt(u.attributes.indent,10)),d(u.attributes.textRotation,"textRotation",a.toModel(u.attributes.textRotation)),d(u.attributes.readingOrder,"readingOrder",u.attributes.readingOrder==="2"?"rtl":"ltr"),this.model=m?p:null}parseText(){}parseClose(){return!1}}n.exports=f},{"../../../doc/enums":7,"../../../utils/utils":27,"../base-xform":32}],127:[function(e,n,i){const s=e("../base-xform"),o=e("../../../utils/utils"),h=e("./color-xform");class c extends s{constructor(l){super(),this.name=l,this.map={color:new h}}get tag(){return this.name}render(l,u,p){const m=u&&u.color||p||this.defaultColor;l.openNode(this.name),u&&u.style&&(l.addAttribute("style",u.style),m&&this.map.color.render(l,m)),l.closeNode()}parseOpen(l){if(this.parser)return this.parser.parseOpen(l),!0;switch(l.name){case this.name:{const{style:u}=l.attributes;return u?this.model={style:u}:this.model=void 0,!0}case"color":return this.parser=this.map.color,this.parser.parseOpen(l),!0;default:return!1}}parseText(l){this.parser&&this.parser.parseText(l)}parseClose(l){return this.parser?(this.parser.parseClose(l)||(this.parser=void 0),!0):(l===this.name&&this.map.color.model&&(this.model||(this.model={}),this.model.color=this.map.color.model),!1)}validStyle(l){return c.validStyleValues[l]}}c.validStyleValues=["thin","dashed","dotted","dashDot","hair","dashDotDot","slantDashDot","mediumDashed","mediumDashDotDot","mediumDashDot","medium","double","thick"].reduce((f,l)=>(f[l]=!0,f),{});class a extends s{constructor(){super(),this.map={top:new c("top"),left:new c("left"),bottom:new c("bottom"),right:new c("right"),diagonal:new c("diagonal")}}render(l,u){const{color:p}=u;l.openNode("border"),u.diagonal&&u.diagonal.style&&(u.diagonal.up&&l.addAttribute("diagonalUp","1"),u.diagonal.down&&l.addAttribute("diagonalDown","1"));function m(d,v){d&&!d.color&&u.color&&(d={...d,color:u.color}),v.render(l,d,p)}m(u.left,this.map.left),m(u.right,this.map.right),m(u.top,this.map.top),m(u.bottom,this.map.bottom),m(u.diagonal,this.map.diagonal),l.closeNode()}parseOpen(l){if(this.parser)return this.parser.parseOpen(l),!0;switch(l.name){case"border":return this.reset(),this.diagonalUp=o.parseBoolean(l.attributes.diagonalUp),this.diagonalDown=o.parseBoolean(l.attributes.diagonalDown),!0;default:return this.parser=this.map[l.name],this.parser?(this.parser.parseOpen(l),!0):!1}}parseText(l){this.parser&&this.parser.parseText(l)}parseClose(l){if(this.parser)return this.parser.parseClose(l)||(this.parser=void 0),!0;if(l==="border"){const u=this.model={},p=function(m,d,v){d&&(v&&Object.assign(d,v),u[m]=d)};p("left",this.map.left.model),p("right",this.map.right.model),p("top",this.map.top.model),p("bottom",this.map.bottom.model),p("diagonal",this.map.diagonal.model,{up:this.diagonalUp,down:this.diagonalDown})}return!1}}n.exports=a},{"../../../utils/utils":27,"../base-xform":32,"./color-xform":128}],128:[function(e,n,i){const s=e("../base-xform");class o extends s{constructor(c){super(),this.name=c||"color"}get tag(){return this.name}render(c,a){return a?(c.openNode(this.name),a.argb?c.addAttribute("rgb",a.argb):a.theme!==void 0?(c.addAttribute("theme",a.theme),a.tint!==void 0&&c.addAttribute("tint",a.tint)):a.indexed!==void 0?c.addAttribute("indexed",a.indexed):c.addAttribute("auto","1"),c.closeNode(),!0):!1}parseOpen(c){return c.name===this.name?(c.attributes.rgb?this.model={argb:c.attributes.rgb}:c.attributes.theme?(this.model={theme:parseInt(c.attributes.theme,10)},c.attributes.tint&&(this.model.tint=parseFloat(c.attributes.tint))):c.attributes.indexed?this.model={indexed:parseInt(c.attributes.indexed,10)}:this.model=void 0,!0):!1}parseText(){}parseClose(){return!1}}n.exports=o},{"../base-xform":32}],129:[function(e,n,i){const s=e("../base-xform"),o=e("./alignment-xform"),h=e("./border-xform"),c=e("./fill-xform"),a=e("./font-xform"),f=e("./numfmt-xform"),l=e("./protection-xform");class u extends s{constructor(){super(),this.map={alignment:new o,border:new h,fill:new c,font:new a,numFmt:new f,protection:new l}}get tag(){return"dxf"}render(m,d){if(m.openNode(this.tag),d.font&&this.map.font.render(m,d.font),d.numFmt&&d.numFmtId){const v={id:d.numFmtId,formatCode:d.numFmt};this.map.numFmt.render(m,v)}d.fill&&this.map.fill.render(m,d.fill),d.alignment&&this.map.alignment.render(m,d.alignment),d.border&&this.map.border.render(m,d.border),d.protection&&this.map.protection.render(m,d.protection),m.closeNode()}parseOpen(m){if(this.parser)return this.parser.parseOpen(m),!0;switch(m.name){case this.tag:return this.reset(),!0;default:return this.parser=this.map[m.name],this.parser&&this.parser.parseOpen(m),!0}}parseText(m){this.parser&&this.parser.parseText(m)}parseClose(m){return this.parser?(this.parser.parseClose(m)||(this.parser=void 0),!0):m===this.tag?(this.model={alignment:this.map.alignment.model,border:this.map.border.model,fill:this.map.fill.model,font:this.map.font.model,numFmt:this.map.numFmt.model,protection:this.map.protection.model},!1):!0}}n.exports=u},{"../base-xform":32,"./alignment-xform":126,"./border-xform":127,"./fill-xform":130,"./font-xform":131,"./numfmt-xform":132,"./protection-xform":133}],130:[function(e,n,i){const s=e("../base-xform"),o=e("./color-xform");class h extends s{constructor(){super(),this.map={color:new o}}get tag(){return"stop"}render(u,p){u.openNode("stop"),u.addAttribute("position",p.position),this.map.color.render(u,p.color),u.closeNode()}parseOpen(u){if(this.parser)return this.parser.parseOpen(u),!0;switch(u.name){case"stop":return this.model={position:parseFloat(u.attributes.position)},!0;case"color":return this.parser=this.map.color,this.parser.parseOpen(u),!0;default:return!1}}parseText(){}parseClose(u){return this.parser?(this.parser.parseClose(u)||(this.model.color=this.parser.model,this.parser=void 0),!0):!1}}class c extends s{constructor(){super(),this.map={fgColor:new o("fgColor"),bgColor:new o("bgColor")}}get name(){return"pattern"}get tag(){return"patternFill"}render(u,p){u.openNode("patternFill"),u.addAttribute("patternType",p.pattern),p.fgColor&&this.map.fgColor.render(u,p.fgColor),p.bgColor&&this.map.bgColor.render(u,p.bgColor),u.closeNode()}parseOpen(u){if(this.parser)return this.parser.parseOpen(u),!0;switch(u.name){case"patternFill":return this.model={type:"pattern",pattern:u.attributes.patternType},!0;default:return this.parser=this.map[u.name],this.parser?(this.parser.parseOpen(u),!0):!1}}parseText(u){this.parser&&this.parser.parseText(u)}parseClose(u){return this.parser?(this.parser.parseClose(u)||(this.parser.model&&(this.model[u]=this.parser.model),this.parser=void 0),!0):!1}}class a extends s{constructor(){super(),this.map={stop:new h}}get name(){return"gradient"}get tag(){return"gradientFill"}render(u,p){switch(u.openNode("gradientFill"),p.gradient){case"angle":u.addAttribute("degree",p.degree);break;case"path":u.addAttribute("type","path"),p.center.left&&(u.addAttribute("left",p.center.left),p.center.right===void 0&&u.addAttribute("right",p.center.left)),p.center.right&&u.addAttribute("right",p.center.right),p.center.top&&(u.addAttribute("top",p.center.top),p.center.bottom===void 0&&u.addAttribute("bottom",p.center.top)),p.center.bottom&&u.addAttribute("bottom",p.center.bottom);break}const m=this.map.stop;p.stops.forEach(d=>{m.render(u,d)}),u.closeNode()}parseOpen(u){if(this.parser)return this.parser.parseOpen(u),!0;switch(u.name){case"gradientFill":{const p=this.model={stops:[]};return u.attributes.degree?(p.gradient="angle",p.degree=parseInt(u.attributes.degree,10)):u.attributes.type==="path"&&(p.gradient="path",p.center={left:u.attributes.left?parseFloat(u.attributes.left):0,top:u.attributes.top?parseFloat(u.attributes.top):0},u.attributes.right!==u.attributes.left&&(p.center.right=u.attributes.right?parseFloat(u.attributes.right):0),u.attributes.bottom!==u.attributes.top&&(p.center.bottom=u.attributes.bottom?parseFloat(u.attributes.bottom):0)),!0}case"stop":return this.parser=this.map.stop,this.parser.parseOpen(u),!0;default:return!1}}parseText(u){this.parser&&this.parser.parseText(u)}parseClose(u){return this.parser?(this.parser.parseClose(u)||(this.model.stops.push(this.parser.model),this.parser=void 0),!0):!1}}class f extends s{constructor(){super(),this.map={patternFill:new c,gradientFill:new a}}get tag(){return"fill"}render(u,p){switch(u.addRollback(),u.openNode("fill"),p.type){case"pattern":this.map.patternFill.render(u,p);break;case"gradient":this.map.gradientFill.render(u,p);break;default:u.rollback();return}u.closeNode(),u.commit()}parseOpen(u){if(this.parser)return this.parser.parseOpen(u),!0;switch(u.name){case"fill":return this.model={},!0;default:return this.parser=this.map[u.name],this.parser?(this.parser.parseOpen(u),!0):!1}}parseText(u){this.parser&&this.parser.parseText(u)}parseClose(u){return this.parser?(this.parser.parseClose(u)||(this.model=this.parser.model,this.model.type=this.parser.name,this.parser=void 0),!0):!1}validStyle(u){return f.validPatternValues[u]}}f.validPatternValues=["none","solid","darkVertical","darkGray","mediumGray","lightGray","gray125","gray0625","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","lightGrid"].reduce((l,u)=>(l[u]=!0,l),{}),f.StopXform=h,f.PatternFillXform=c,f.GradientFillXform=a,n.exports=f},{"../base-xform":32,"./color-xform":128}],131:[function(e,n,i){const s=e("./color-xform"),o=e("../simple/boolean-xform"),h=e("../simple/integer-xform"),c=e("../simple/string-xform"),a=e("./underline-xform"),f=e("../../../utils/under-dash"),l=e("../base-xform");class u extends l{constructor(m){super(),this.options=m||u.OPTIONS,this.map={b:{prop:"bold",xform:new o({tag:"b",attr:"val"})},i:{prop:"italic",xform:new o({tag:"i",attr:"val"})},u:{prop:"underline",xform:new a},charset:{prop:"charset",xform:new h({tag:"charset",attr:"val"})},color:{prop:"color",xform:new s},condense:{prop:"condense",xform:new o({tag:"condense",attr:"val"})},extend:{prop:"extend",xform:new o({tag:"extend",attr:"val"})},family:{prop:"family",xform:new h({tag:"family",attr:"val"})},outline:{prop:"outline",xform:new o({tag:"outline",attr:"val"})},vertAlign:{prop:"vertAlign",xform:new c({tag:"vertAlign",attr:"val"})},scheme:{prop:"scheme",xform:new c({tag:"scheme",attr:"val"})},shadow:{prop:"shadow",xform:new o({tag:"shadow",attr:"val"})},strike:{prop:"strike",xform:new o({tag:"strike",attr:"val"})},sz:{prop:"size",xform:new h({tag:"sz",attr:"val"})}},this.map[this.options.fontNameTag]={prop:"name",xform:new c({tag:this.options.fontNameTag,attr:"val"})}}get tag(){return this.options.tagName}render(m,d){const{map:v}=this;m.openNode(this.options.tagName),f.each(this.map,(x,g)=>{v[g].xform.render(m,d[x.prop])}),m.closeNode()}parseOpen(m){if(this.parser)return this.parser.parseOpen(m),!0;if(this.map[m.name])return this.parser=this.map[m.name].xform,this.parser.parseOpen(m);switch(m.name){case this.options.tagName:return this.model={},!0;default:return!1}}parseText(m){this.parser&&this.parser.parseText(m)}parseClose(m){if(this.parser&&!this.parser.parseClose(m)){const d=this.map[m];return this.parser.model&&(this.model[d.prop]=this.parser.model),this.parser=void 0,!0}switch(m){case this.options.tagName:return!1;default:return!0}}}u.OPTIONS={tagName:"font",fontNameTag:"name"},n.exports=u},{"../../../utils/under-dash":26,"../base-xform":32,"../simple/boolean-xform":116,"../simple/integer-xform":118,"../simple/string-xform":119,"./color-xform":128,"./underline-xform":136}],132:[function(e,n,i){const s=e("../../../utils/under-dash"),o=e("../../defaultnumformats"),h=e("../base-xform");function c(){const l={};return s.each(o,(u,p)=>{u.f&&(l[u.f]=parseInt(p,10))}),l}const a=c();class f extends h{constructor(u,p){super(),this.id=u,this.formatCode=p}get tag(){return"numFmt"}render(u,p){u.leafNode("numFmt",{numFmtId:p.id,formatCode:p.formatCode})}parseOpen(u){switch(u.name){case"numFmt":return this.model={id:parseInt(u.attributes.numFmtId,10),formatCode:u.attributes.formatCode.replace(/[\\](.)/g,"$1")},!0;default:return!1}}parseText(){}parseClose(){return!1}}f.getDefaultFmtId=function(u){return a[u]},f.getDefaultFmtCode=function(u){return o[u]&&o[u].f},n.exports=f},{"../../../utils/under-dash":26,"../../defaultnumformats":30,"../base-xform":32}],133:[function(e,n,i){const s=e("../base-xform"),o={boolean(c,a){return c===void 0?a:c}};class h extends s{get tag(){return"protection"}render(a,f){a.addRollback(),a.openNode("protection");let l=!1;function u(p,m){m!==void 0&&(a.addAttribute(p,m),l=!0)}u("locked",o.boolean(f.locked,!0)?void 0:"0"),u("hidden",o.boolean(f.hidden,!1)?"1":void 0),a.closeNode(),l?a.commit():a.rollback()}parseOpen(a){const f={locked:a.attributes.locked!=="0",hidden:a.attributes.hidden==="1"},l=!f.locked||f.hidden;this.model=l?f:null}parseText(){}parseClose(){return!1}}n.exports=h},{"../base-xform":32}],134:[function(e,n,i){const s=e("../base-xform"),o=e("./alignment-xform"),h=e("./protection-xform");class c extends s{constructor(f){super(),this.xfId=!!(f&&f.xfId),this.map={alignment:new o,protection:new h}}get tag(){return"xf"}render(f,l){f.openNode("xf",{numFmtId:l.numFmtId||0,fontId:l.fontId||0,fillId:l.fillId||0,borderId:l.borderId||0}),this.xfId&&f.addAttribute("xfId",l.xfId||0),l.numFmtId&&f.addAttribute("applyNumberFormat","1"),l.fontId&&f.addAttribute("applyFont","1"),l.fillId&&f.addAttribute("applyFill","1"),l.borderId&&f.addAttribute("applyBorder","1"),l.alignment&&f.addAttribute("applyAlignment","1"),l.protection&&f.addAttribute("applyProtection","1"),l.alignment&&this.map.alignment.render(f,l.alignment),l.protection&&this.map.protection.render(f,l.protection),f.closeNode()}parseOpen(f){if(this.parser)return this.parser.parseOpen(f),!0;switch(f.name){case"xf":return this.model={numFmtId:parseInt(f.attributes.numFmtId,10),fontId:parseInt(f.attributes.fontId,10),fillId:parseInt(f.attributes.fillId,10),borderId:parseInt(f.attributes.borderId,10)},this.xfId&&(this.model.xfId=parseInt(f.attributes.xfId,10)),!0;case"alignment":return this.parser=this.map.alignment,this.parser.parseOpen(f),!0;case"protection":return this.parser=this.map.protection,this.parser.parseOpen(f),!0;default:return!1}}parseText(f){this.parser&&this.parser.parseText(f)}parseClose(f){return this.parser?(this.parser.parseClose(f)||(this.map.protection===this.parser?this.model.protection=this.parser.model:this.model.alignment=this.parser.model,this.parser=void 0),!0):f!=="xf"}}n.exports=c},{"../base-xform":32,"./alignment-xform":126,"./protection-xform":133}],135:[function(e,n,i){const s=e("../../../doc/enums"),o=e("../../../utils/xml-stream"),h=e("../base-xform"),c=e("../static-xform"),a=e("../list-xform"),f=e("./font-xform"),l=e("./fill-xform"),u=e("./border-xform"),p=e("./numfmt-xform"),m=e("./style-xform"),d=e("./dxf-xform"),v=164;class x extends h{constructor(w){super(),this.map={numFmts:new a({tag:"numFmts",count:!0,childXform:new p}),fonts:new a({tag:"fonts",count:!0,childXform:new f,$:{"x14ac:knownFonts":1}}),fills:new a({tag:"fills",count:!0,childXform:new l}),borders:new a({tag:"borders",count:!0,childXform:new u}),cellStyleXfs:new a({tag:"cellStyleXfs",count:!0,childXform:new m}),cellXfs:new a({tag:"cellXfs",count:!0,childXform:new m({xfId:!0})}),dxfs:new a({tag:"dxfs",always:!0,count:!0,childXform:new d}),numFmt:new p,font:new f,fill:new l,border:new u,style:new m({xfId:!0}),cellStyles:x.STATIC_XFORMS.cellStyles,tableStyles:x.STATIC_XFORMS.tableStyles,extLst:x.STATIC_XFORMS.extLst},w&&this.init()}initIndex(){this.index={style:{},numFmt:{},numFmtNextId:164,font:{},border:{},fill:{}}}init(){this.model={styles:[],numFmts:[],fonts:[],borders:[],fills:[],dxfs:[]},this.initIndex(),this._addBorder({}),this._addStyle({numFmtId:0,fontId:0,fillId:0,borderId:0,xfId:0}),this._addFill({type:"pattern",pattern:"none"}),this._addFill({type:"pattern",pattern:"gray125"}),this.weakMap=new WeakMap}render(w,y){y=y||this.model,w.openXml(o.StdDocAttributes),w.openNode("styleSheet",x.STYLESHEET_ATTRIBUTES),this.index?(y.numFmts&&y.numFmts.length&&(w.openNode("numFmts",{count:y.numFmts.length}),y.numFmts.forEach(T=>{w.writeXml(T)}),w.closeNode()),y.fonts.length||this._addFont({size:11,color:{theme:1},name:"Calibri",family:2,scheme:"minor"}),w.openNode("fonts",{count:y.fonts.length,"x14ac:knownFonts":1}),y.fonts.forEach(T=>{w.writeXml(T)}),w.closeNode(),w.openNode("fills",{count:y.fills.length}),y.fills.forEach(T=>{w.writeXml(T)}),w.closeNode(),w.openNode("borders",{count:y.borders.length}),y.borders.forEach(T=>{w.writeXml(T)}),w.closeNode(),this.map.cellStyleXfs.render(w,[{numFmtId:0,fontId:0,fillId:0,borderId:0,xfId:0}]),w.openNode("cellXfs",{count:y.styles.length}),y.styles.forEach(T=>{w.writeXml(T)}),w.closeNode()):(this.map.numFmts.render(w,y.numFmts),this.map.fonts.render(w,y.fonts),this.map.fills.render(w,y.fills),this.map.borders.render(w,y.borders),this.map.cellStyleXfs.render(w,[{numFmtId:0,fontId:0,fillId:0,borderId:0,xfId:0}]),this.map.cellXfs.render(w,y.styles)),x.STATIC_XFORMS.cellStyles.render(w),this.map.dxfs.render(w,y.dxfs),x.STATIC_XFORMS.tableStyles.render(w),x.STATIC_XFORMS.extLst.render(w),w.closeNode()}parseOpen(w){if(this.parser)return this.parser.parseOpen(w),!0;switch(w.name){case"styleSheet":return this.initIndex(),!0;default:return this.parser=this.map[w.name],this.parser&&this.parser.parseOpen(w),!0}}parseText(w){this.parser&&this.parser.parseText(w)}parseClose(w){if(this.parser)return this.parser.parseClose(w)||(this.parser=void 0),!0;switch(w){case"styleSheet":{this.model={};const y=(T,C)=>{C.model&&C.model.length&&(this.model[T]=C.model)};if(y("numFmts",this.map.numFmts),y("fonts",this.map.fonts),y("fills",this.map.fills),y("borders",this.map.borders),y("styles",this.map.cellXfs),y("dxfs",this.map.dxfs),this.index={model:[],numFmt:[]},this.model.numFmts){const T=this.index.numFmt;this.model.numFmts.forEach(C=>{T[C.id]=C.formatCode})}return!1}default:return!0}}addStyleModel(w,y){if(!w)return 0;if(this.model.fonts.length||this._addFont({size:11,color:{theme:1},name:"Calibri",family:2,scheme:"minor"}),this.weakMap&&this.weakMap.has(w))return this.weakMap.get(w);const T={};if(y=y||s.ValueType.Number,w.numFmt)T.numFmtId=this._addNumFmtStr(w.numFmt);else switch(y){case s.ValueType.Number:T.numFmtId=this._addNumFmtStr("General");break;case s.ValueType.Date:T.numFmtId=this._addNumFmtStr("mm-dd-yy");break}w.font&&(T.fontId=this._addFont(w.font)),w.border&&(T.borderId=this._addBorder(w.border)),w.fill&&(T.fillId=this._addFill(w.fill)),w.alignment&&(T.alignment=w.alignment),w.protection&&(T.protection=w.protection);const C=this._addStyle(T);return this.weakMap&&this.weakMap.set(w,C),C}getStyleModel(w){const y=this.model.styles[w];if(!y)return null;let T=this.index.model[w];if(T)return T;if(T=this.index.model[w]={},y.numFmtId){const M=this.index.numFmt[y.numFmtId]||p.getDefaultFmtCode(y.numFmtId);M&&(T.numFmt=M)}function C(M,I,B){if(B||B===0){const U=I[B];U&&(T[M]=U)}}return C("font",this.model.fonts,y.fontId),C("border",this.model.borders,y.borderId),C("fill",this.model.fills,y.fillId),y.alignment&&(T.alignment=y.alignment),y.protection&&(T.protection=y.protection),T}addDxfStyle(w){return w.numFmt&&(w.numFmtId=this._addNumFmtStr(w.numFmt)),this.model.dxfs.push(w),this.model.dxfs.length-1}getDxfStyle(w){return this.model.dxfs[w]}_addStyle(w){const y=this.map.style.toXml(w);let T=this.index.style[y];return T===void 0&&(T=this.index.style[y]=this.model.styles.length,this.model.styles.push(y)),T}_addNumFmtStr(w){let y=p.getDefaultFmtId(w);if(y!==void 0||(y=this.index.numFmt[w],y!==void 0))return y;y=this.index.numFmt[w]=v+this.model.numFmts.length;const T=this.map.numFmt.toXml({id:y,formatCode:w});return this.model.numFmts.push(T),y}_addFont(w){const y=this.map.font.toXml(w);let T=this.index.font[y];return T===void 0&&(T=this.index.font[y]=this.model.fonts.length,this.model.fonts.push(y)),T}_addBorder(w){const y=this.map.border.toXml(w);let T=this.index.border[y];return T===void 0&&(T=this.index.border[y]=this.model.borders.length,this.model.borders.push(y)),T}_addFill(w){const y=this.map.fill.toXml(w);let T=this.index.fill[y];return T===void 0&&(T=this.index.fill[y]=this.model.fills.length,this.model.fills.push(y)),T}}x.STYLESHEET_ATTRIBUTES={xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main","xmlns:mc":"http://schemas.openxmlformats.org/markup-compatibility/2006","mc:Ignorable":"x14ac x16r2","xmlns:x14ac":"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac","xmlns:x16r2":"http://schemas.microsoft.com/office/spreadsheetml/2015/02/main"},x.STATIC_XFORMS={cellStyles:new c({tag:"cellStyles",$:{count:1},c:[{tag:"cellStyle",$:{name:"Normal",xfId:0,builtinId:0}}]}),dxfs:new c({tag:"dxfs",$:{count:0}}),tableStyles:new c({tag:"tableStyles",$:{count:0,defaultTableStyle:"TableStyleMedium2",defaultPivotStyle:"PivotStyleLight16"}}),extLst:new c({tag:"extLst",c:[{tag:"ext",$:{uri:"{EB79DEF2-80B8-43e5-95BD-54CBDDF9020C}","xmlns:x14":"http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"},c:[{tag:"x14:slicerStyles",$:{defaultSlicerStyle:"SlicerStyleLight1"}}]},{tag:"ext",$:{uri:"{9260A510-F301-46a8-8635-F512D64BE5F5}","xmlns:x15":"http://schemas.microsoft.com/office/spreadsheetml/2010/11/main"},c:[{tag:"x15:timelineStyles",$:{defaultTimelineStyle:"TimeSlicerStyleLight1"}}]}]})};class g extends x{constructor(){super(),this.model={styles:[{numFmtId:0,fontId:0,fillId:0,borderId:0,xfId:0}],numFmts:[],fonts:[{size:11,color:{theme:1},name:"Calibri",family:2,scheme:"minor"}],borders:[{}],fills:[{type:"pattern",pattern:"none"},{type:"pattern",pattern:"gray125"}]}}parseStream(w){return w.autodrain(),Promise.resolve()}addStyleModel(w,y){switch(y){case s.ValueType.Date:return this.dateStyleId;default:return 0}}get dateStyleId(){if(!this._dateStyleId){const w={numFmtId:p.getDefaultFmtId("mm-dd-yy")};this._dateStyleId=this.model.styles.length,this.model.styles.push(w)}return this._dateStyleId}getStyleModel(){return{}}}x.Mock=g,n.exports=x},{"../../../doc/enums":7,"../../../utils/xml-stream":28,"../base-xform":32,"../list-xform":71,"../static-xform":120,"./border-xform":127,"./dxf-xform":129,"./fill-xform":130,"./font-xform":131,"./numfmt-xform":132,"./style-xform":134}],136:[function(e,n,i){const s=e("../base-xform");class o extends s{constructor(c){super(),this.model=c}get tag(){return"u"}render(c,a){if(a=a||this.model,a===!0)c.leafNode("u");else{const f=o.Attributes[a];f&&c.leafNode("u",f)}}parseOpen(c){c.name==="u"&&(this.model=c.attributes.val||!0)}parseText(){}parseClose(){return!1}}o.Attributes={single:{},double:{val:"double"},singleAccounting:{val:"singleAccounting"},doubleAccounting:{val:"doubleAccounting"}},n.exports=o},{"../base-xform":32}],137:[function(e,n,i){const s=e("../base-xform"),o=e("./filter-column-xform");class h extends s{constructor(){super(),this.map={filterColumn:new o}}get tag(){return"autoFilter"}prepare(a){a.columns.forEach((f,l)=>{this.map.filterColumn.prepare(f,{index:l})})}render(a,f){return a.openNode(this.tag,{ref:f.autoFilterRef}),f.columns.forEach(l=>{this.map.filterColumn.render(a,l)}),a.closeNode(),!0}parseOpen(a){if(this.parser)return this.parser.parseOpen(a),!0;switch(a.name){case this.tag:return this.model={autoFilterRef:a.attributes.ref,columns:[]},!0;default:if(this.parser=this.map[a.name],this.parser)return this.parseOpen(a),!0;throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(a)}`)}}parseText(a){this.parser&&this.parser.parseText(a)}parseClose(a){if(this.parser)return this.parser.parseClose(a)||(this.model.columns.push(this.parser.model),this.parser=void 0),!0;switch(a){case this.tag:return!1;default:throw new Error(`Unexpected xml node in parseClose: ${a}`)}}}n.exports=h},{"../base-xform":32,"./filter-column-xform":139}],138:[function(e,n,i){const s=e("../base-xform");class o extends s{get tag(){return"customFilter"}render(c,a){c.leafNode(this.tag,{val:a.val,operator:a.operator})}parseOpen(c){return c.name===this.tag?(this.model={val:c.attributes.val,operator:c.attributes.operator},!0):!1}parseText(){}parseClose(){return!1}}n.exports=o},{"../base-xform":32}],139:[function(e,n,i){const s=e("../base-xform"),o=e("../list-xform"),h=e("./custom-filter-xform"),c=e("./filter-xform");class a extends s{constructor(){super(),this.map={customFilters:new o({tag:"customFilters",count:!1,empty:!0,childXform:new h}),filters:new o({tag:"filters",count:!1,empty:!0,childXform:new c})}}get tag(){return"filterColumn"}prepare(l,u){l.colId=u.index.toString()}render(l,u){return u.customFilters?(l.openNode(this.tag,{colId:u.colId,hiddenButton:u.filterButton?"0":"1"}),this.map.customFilters.render(l,u.customFilters),l.closeNode(),!0):(l.leafNode(this.tag,{colId:u.colId,hiddenButton:u.filterButton?"0":"1"}),!0)}parseOpen(l){if(this.parser)return this.parser.parseOpen(l),!0;const{attributes:u}=l;switch(l.name){case this.tag:return this.model={filterButton:u.hiddenButton==="0"},!0;default:if(this.parser=this.map[l.name],this.parser)return this.parseOpen(l),!0;throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(l)}`)}}parseText(){}parseClose(l){if(this.parser)return this.parser.parseClose(l)||(this.parser=void 0),!0;switch(l){case this.tag:return this.model.customFilters=this.map.customFilters.model,!1;default:return!0}}}n.exports=a},{"../base-xform":32,"../list-xform":71,"./custom-filter-xform":138,"./filter-xform":140}],140:[function(e,n,i){const s=e("../base-xform");class o extends s{get tag(){return"filter"}render(c,a){c.leafNode(this.tag,{val:a.val})}parseOpen(c){return c.name===this.tag?(this.model={val:c.attributes.val},!0):!1}parseText(){}parseClose(){return!1}}n.exports=o},{"../base-xform":32}],141:[function(e,n,i){const s=e("../base-xform");class o extends s{get tag(){return"tableColumn"}prepare(c,a){c.id=a.index+1}render(c,a){return c.leafNode(this.tag,{id:a.id.toString(),name:a.name,totalsRowLabel:a.totalsRowLabel,totalsRowFunction:a.totalsRowFunction,dxfId:a.dxfId}),!0}parseOpen(c){if(c.name===this.tag){const{attributes:a}=c;return this.model={name:a.name,totalsRowLabel:a.totalsRowLabel,totalsRowFunction:a.totalsRowFunction,dxfId:a.dxfId},!0}return!1}parseText(){}parseClose(){return!1}}n.exports=o},{"../base-xform":32}],142:[function(e,n,i){const s=e("../base-xform");class o extends s{get tag(){return"tableStyleInfo"}render(c,a){return c.leafNode(this.tag,{name:a.theme?a.theme:void 0,showFirstColumn:a.showFirstColumn?"1":"0",showLastColumn:a.showLastColumn?"1":"0",showRowStripes:a.showRowStripes?"1":"0",showColumnStripes:a.showColumnStripes?"1":"0"}),!0}parseOpen(c){if(c.name===this.tag){const{attributes:a}=c;return this.model={theme:a.name?a.name:null,showFirstColumn:a.showFirstColumn==="1",showLastColumn:a.showLastColumn==="1",showRowStripes:a.showRowStripes==="1",showColumnStripes:a.showColumnStripes==="1"},!0}return!1}parseText(){}parseClose(){return!1}}n.exports=o},{"../base-xform":32}],143:[function(e,n,i){const s=e("../../../utils/xml-stream"),o=e("../base-xform"),h=e("../list-xform"),c=e("./auto-filter-xform"),a=e("./table-column-xform"),f=e("./table-style-info-xform");class l extends o{constructor(){super(),this.map={autoFilter:new c,tableColumns:new h({tag:"tableColumns",count:!0,empty:!0,childXform:new a}),tableStyleInfo:new f}}prepare(p,m){this.map.autoFilter.prepare(p),this.map.tableColumns.prepare(p.columns,m)}get tag(){return"table"}render(p,m){p.openXml(s.StdDocAttributes),p.openNode(this.tag,{...l.TABLE_ATTRIBUTES,id:m.id,name:m.name,displayName:m.displayName||m.name,ref:m.tableRef,totalsRowCount:m.totalsRow?"1":void 0,totalsRowShown:m.totalsRow?void 0:"1",headerRowCount:m.headerRow?"1":"0"}),this.map.autoFilter.render(p,m),this.map.tableColumns.render(p,m.columns),this.map.tableStyleInfo.render(p,m.style),p.closeNode()}parseOpen(p){if(this.parser)return this.parser.parseOpen(p),!0;const{name:m,attributes:d}=p;switch(m){case this.tag:this.reset(),this.model={name:d.name,displayName:d.displayName||d.name,tableRef:d.ref,totalsRow:d.totalsRowCount==="1",headerRow:d.headerRowCount==="1"};break;default:this.parser=this.map[p.name],this.parser&&this.parser.parseOpen(p);break}return!0}parseText(p){this.parser&&this.parser.parseText(p)}parseClose(p){if(this.parser)return this.parser.parseClose(p)||(this.parser=void 0),!0;switch(p){case this.tag:return this.model.columns=this.map.tableColumns.model,this.map.autoFilter.model&&(this.model.autoFilterRef=this.map.autoFilter.model.autoFilterRef,this.map.autoFilter.model.columns.forEach((m,d)=>{this.model.columns[d].filterButton=m.filterButton})),this.model.style=this.map.tableStyleInfo.model,!1;default:return!0}}reconcile(p,m){p.columns.forEach(d=>{d.dxfId!==void 0&&(d.style=m.styles.getDxfStyle(d.dxfId))})}}l.TABLE_ATTRIBUTES={xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main","xmlns:mc":"http://schemas.openxmlformats.org/markup-compatibility/2006","mc:Ignorable":"xr xr3","xmlns:xr":"http://schemas.microsoft.com/office/spreadsheetml/2014/revision","xmlns:xr3":"http://schemas.microsoft.com/office/spreadsheetml/2016/revision3"},n.exports=l},{"../../../utils/xml-stream":28,"../base-xform":32,"../list-xform":71,"./auto-filter-xform":137,"./table-column-xform":141,"./table-style-info-xform":142}],144:[function(e,n,i){(function(s,o){(function(){const h=e("fs"),c=e("jszip"),{PassThrough:a}=e("readable-stream"),f=e("../utils/zip-stream"),l=e("../utils/stream-buf"),u=e("../utils/utils"),p=e("../utils/xml-stream"),{bufferToString:m}=e("../utils/browser-buffer-decode"),d=e("./xform/style/styles-xform"),v=e("./xform/core/core-xform"),x=e("./xform/strings/shared-strings-xform"),g=e("./xform/core/relationships-xform"),b=e("./xform/core/content-types-xform"),w=e("./xform/core/app-xform"),y=e("./xform/book/workbook-xform"),T=e("./xform/sheet/worksheet-xform"),C=e("./xform/drawing/drawing-xform"),M=e("./xform/table/table-xform"),I=e("./xform/comment/comments-xform"),B=e("./xform/comment/vml-notes-xform"),U=e("./xml/theme1");function j(G,L){return new Promise((R,F)=>{h.readFile(G,L,(_,k)=>{_?F(_):R(k)})})}class H{constructor(L){this.workbook=L}async readFile(L,R){if(!await u.fs.exists(L))throw new Error(`File not found: ${L}`);const F=h.createReadStream(L);try{const _=await this.read(F,R);return F.close(),_}catch(_){throw F.close(),_}}parseRels(L){return new g().parseStream(L)}parseWorkbook(L){return new y().parseStream(L)}parseSharedStrings(L){return new x().parseStream(L)}reconcile(L,R){const F=new y,_=new T(R),k=new C,N=new M;F.reconcile(L);const P={media:L.media,mediaIndex:L.mediaIndex};Object.keys(L.drawings).forEach(S=>{const E=L.drawings[S],O=L.drawingRels[S];O&&(P.rels=O.reduce((z,J)=>(z[J.Id]=J,z),{}),(E.anchors||[]).forEach(z=>{const J=z.picture&&z.picture.hyperlinks;J&&P.rels[J.rId]&&(J.hyperlink=P.rels[J.rId].Target,delete J.rId)}),k.reconcile(E,P))});const D={styles:L.styles};Object.values(L.tables).forEach(S=>{N.reconcile(S,D)});const A={styles:L.styles,sharedStrings:L.sharedStrings,media:L.media,mediaIndex:L.mediaIndex,date1904:L.properties&&L.properties.date1904,drawings:L.drawings,comments:L.comments,tables:L.tables,vmlDrawings:L.vmlDrawings};L.worksheets.forEach(S=>{S.relationships=L.worksheetRels[S.sheetNo],_.reconcile(S,A)}),delete L.worksheetHash,delete L.worksheetRels,delete L.globalRels,delete L.sharedStrings,delete L.workbookRels,delete L.sheetDefs,delete L.styles,delete L.mediaIndex,delete L.drawings,delete L.drawingRels,delete L.vmlDrawings}async _processWorksheetEntry(L,R,F,_,k){const P=await new T(_).parseStream(L);P.sheetNo=F,R.worksheetHash[k]=P,R.worksheets.push(P)}async _processCommentEntry(L,R,F){const k=await new I().parseStream(L);R.comments[`../${F}.xml`]=k}async _processTableEntry(L,R,F){const k=await new M().parseStream(L);R.tables[`../tables/${F}.xml`]=k}async _processWorksheetRelsEntry(L,R,F){const k=await new g().parseStream(L);R.worksheetRels[F]=k}async _processMediaEntry(L,R,F){const _=F.lastIndexOf(".");if(_>=1){const k=F.substr(_+1),N=F.substr(0,_);await new Promise((P,D)=>{const A=new l;A.on("finish",()=>{R.mediaIndex[F]=R.media.length,R.mediaIndex[N]=R.media.length;const S={type:"image",name:N,extension:k,buffer:A.toBuffer()};R.media.push(S),P()}),L.on("error",S=>{D(S)}),L.pipe(A)})}}async _processDrawingEntry(L,R,F){const k=await new C().parseStream(L);R.drawings[F]=k}async _processDrawingRelsEntry(L,R,F){const k=await new g().parseStream(L);R.drawingRels[F]=k}async _processVmlDrawingEntry(L,R,F){const k=await new B().parseStream(L);R.vmlDrawings[`../drawings/${F}.vml`]=k}async _processThemeEntry(L,R,F){await new Promise((_,k)=>{const N=new l;L.on("error",k),N.on("error",k),N.on("finish",()=>{R.themes[F]=N.read().toString(),_()}),L.pipe(N)})}createInputStream(){throw new Error("`XLSX#createInputStream` is deprecated. You should use `XLSX#read` instead. This method will be removed in version 5.0. Please follow upgrade instruction: https://github.com/exceljs/exceljs/blob/master/UPGRADE-4.0.md")}async read(L,R){!L[Symbol.asyncIterator]&&L.pipe&&(L=L.pipe(new a));const F=[];for await(const _ of L)F.push(_);return this.load(o.concat(F),R)}async load(L,R){let F;R&&R.base64?F=o.from(L.toString(),"base64"):F=L;const _={worksheets:[],worksheetHash:{},worksheetRels:[],themes:{},media:[],mediaIndex:{},drawings:{},drawingRels:{},comments:{},tables:{},vmlDrawings:{}},k=await c.loadAsync(F);for(const N of Object.values(k.files))if(!N.dir){let P=N.name;P[0]==="/"&&(P=P.substr(1));let D;if(P.match(/xl\/media\//)||P.match(/xl\/theme\/([a-zA-Z0-9]+)[.]xml/))D=new a,D.write(await N.async("nodebuffer"));else{D=new a({writableObjectMode:!0,readableObjectMode:!0});let A;s.browser?A=m(await N.async("nodebuffer")):A=await N.async("string");const S=16*1024;for(let E=0;E{if(F.type==="image"){const _=`xl/media/${F.name}.${F.extension}`;if(F.filename){const k=await j(F.filename);return L.append(k,{name:_})}if(F.buffer)return L.append(F.buffer,{name:_});if(F.base64){const k=F.base64,N=k.substring(k.indexOf(",")+1);return L.append(N,{name:_,base64:!0})}}throw new Error("Unsupported media")}))}addDrawings(L,R){const F=new C,_=new g;R.worksheets.forEach(k=>{const{drawing:N}=k;if(N){F.prepare(N,{});let P=F.toXml(N);L.append(P,{name:`xl/drawings/${N.name}.xml`}),P=_.toXml(N.rels),L.append(P,{name:`xl/drawings/_rels/${N.name}.xml.rels`})}})}addTables(L,R){const F=new M;R.worksheets.forEach(_=>{const{tables:k}=_;k.forEach(N=>{F.prepare(N,{});const P=F.toXml(N);L.append(P,{name:`xl/tables/${N.target}`})})})}async addContentTypes(L,R){const _=new b().toXml(R);L.append(_,{name:"[Content_Types].xml"})}async addApp(L,R){const _=new w().toXml(R);L.append(_,{name:"docProps/app.xml"})}async addCore(L,R){const F=new v;L.append(F.toXml(R),{name:"docProps/core.xml"})}async addThemes(L,R){const F=R.themes||{theme1:U};Object.keys(F).forEach(_=>{const k=F[_],N=`xl/theme/${_}.xml`;L.append(k,{name:N})})}async addOfficeRels(L){const F=new g().toXml([{Id:"rId1",Type:H.RelType.OfficeDocument,Target:"xl/workbook.xml"},{Id:"rId2",Type:H.RelType.CoreProperties,Target:"docProps/core.xml"},{Id:"rId3",Type:H.RelType.ExtenderProperties,Target:"docProps/app.xml"}]);L.append(F,{name:"_rels/.rels"})}async addWorkbookRels(L,R){let F=1;const _=[{Id:`rId${F++}`,Type:H.RelType.Styles,Target:"styles.xml"},{Id:`rId${F++}`,Type:H.RelType.Theme,Target:"theme/theme1.xml"}];R.sharedStrings.count&&_.push({Id:`rId${F++}`,Type:H.RelType.SharedStrings,Target:"sharedStrings.xml"}),R.worksheets.forEach(P=>{P.rId=`rId${F++}`,_.push({Id:P.rId,Type:H.RelType.Worksheet,Target:`worksheets/sheet${P.id}.xml`})});const N=new g().toXml(_);L.append(N,{name:"xl/_rels/workbook.xml.rels"})}async addSharedStrings(L,R){R.sharedStrings&&R.sharedStrings.count&&L.append(R.sharedStrings.xml,{name:"xl/sharedStrings.xml"})}async addStyles(L,R){const{xml:F}=R.styles;F&&L.append(F,{name:"xl/styles.xml"})}async addWorkbook(L,R){const F=new y;L.append(F.toXml(R),{name:"xl/workbook.xml"})}async addWorksheets(L,R){const F=new T,_=new g,k=new I,N=new B;R.worksheets.forEach(P=>{let D=new p;F.render(D,P),L.append(D.xml,{name:`xl/worksheets/sheet${P.id}.xml`}),P.rels&&P.rels.length&&(D=new p,_.render(D,P.rels),L.append(D.xml,{name:`xl/worksheets/_rels/sheet${P.id}.xml.rels`})),P.comments.length>0&&(D=new p,k.render(D,P),L.append(D.xml,{name:`xl/comments${P.id}.xml`}),D=new p,N.render(D,P),L.append(D.xml,{name:`xl/drawings/vmlDrawing${P.id}.vml`}))})}_finalize(L){return new Promise((R,F)=>{L.on("finish",()=>{R(this)}),L.on("error",F),L.finalize()})}prepareModel(L,R){L.creator=L.creator||"ExcelJS",L.lastModifiedBy=L.lastModifiedBy||"ExcelJS",L.created=L.created||new Date,L.modified=L.modified||new Date,L.useSharedStrings=R.useSharedStrings!==void 0?R.useSharedStrings:!0,L.useStyles=R.useStyles!==void 0?R.useStyles:!0,L.sharedStrings=new x,L.styles=L.useStyles?new d(!0):new d.Mock;const F=new y,_=new T;F.prepare(L);const k={sharedStrings:L.sharedStrings,styles:L.styles,date1904:L.properties.date1904,drawingsCount:0,media:L.media};k.drawings=L.drawings=[],k.commentRefs=L.commentRefs=[];let N=0;L.tables=[],L.worksheets.forEach(P=>{P.tables.forEach(D=>{N++,D.target=`table${N}.xml`,D.id=N,L.tables.push(D)}),_.prepare(P,k)})}async write(L,R){R=R||{};const{model:F}=this.workbook,_=new f.ZipWriter(R.zip);return _.pipe(L),this.prepareModel(F,R),await this.addContentTypes(_,F),await this.addOfficeRels(_,F),await this.addWorkbookRels(_,F),await this.addWorksheets(_,F),await this.addSharedStrings(_,F),await this.addDrawings(_,F),await this.addTables(_,F),await Promise.all([this.addThemes(_,F),this.addStyles(_,F)]),await this.addMedia(_,F),await Promise.all([this.addApp(_,F),this.addCore(_,F)]),await this.addWorkbook(_,F),this._finalize(_)}writeFile(L,R){const F=h.createWriteStream(L);return new Promise((_,k)=>{F.on("finish",()=>{_()}),F.on("error",N=>{k(N)}),this.write(F,R).then(()=>{F.end()}).catch(N=>{k(N)})})}async writeBuffer(L){const R=new l;return await this.write(R,L),R.read()}}H.RelType=e("./rel-type"),n.exports=H}).call(this)}).call(this,e("_process"),e("buffer").Buffer)},{"../utils/browser-buffer-decode":16,"../utils/stream-buf":24,"../utils/utils":27,"../utils/xml-stream":28,"../utils/zip-stream":29,"./rel-type":31,"./xform/book/workbook-xform":38,"./xform/comment/comments-xform":40,"./xform/comment/vml-notes-xform":45,"./xform/core/app-xform":51,"./xform/core/content-types-xform":52,"./xform/core/core-xform":53,"./xform/core/relationships-xform":55,"./xform/drawing/drawing-xform":62,"./xform/sheet/worksheet-xform":115,"./xform/strings/shared-strings-xform":124,"./xform/style/styles-xform":135,"./xform/table/table-xform":143,"./xml/theme1":145,_process:467,buffer:220,fs:216,jszip:441,"readable-stream":491}],145:[function(e,n,i){n.exports=` + `},{}],146:[function(e,n,i){(function(s){(function(){Object.defineProperty(i,"__esModule",{value:!0}),i.CsvFormatterStream=void 0;const o=e("stream"),h=e("./formatter");class c extends o.Transform{constructor(f){super({writableObjectMode:f.objectMode}),this.hasWrittenBOM=!1,this.formatterOptions=f,this.rowFormatter=new h.RowFormatter(f),this.hasWrittenBOM=!f.writeBOM}transform(f){return this.rowFormatter.rowTransform=f,this}_transform(f,l,u){let p=!1;try{this.hasWrittenBOM||(this.push(this.formatterOptions.BOM),this.hasWrittenBOM=!0),this.rowFormatter.format(f,(m,d)=>m?(p=!0,u(m)):(d&&d.forEach(v=>{this.push(s.from(v,"utf8"))}),p=!0,u()))}catch(m){if(p)throw m;u(m)}}_flush(f){this.rowFormatter.finish((l,u)=>l?f(l):(u&&u.forEach(p=>{this.push(s.from(p,"utf8"))}),f()))}}i.CsvFormatterStream=c}).call(this)}).call(this,e("buffer").Buffer)},{"./formatter":150,buffer:220,stream:505}],147:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.FormatterOptions=void 0;class s{constructor(){let h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};var c;this.objectMode=!0,this.delimiter=",",this.rowDelimiter=` +`,this.quote='"',this.escape=this.quote,this.quoteColumns=!1,this.quoteHeaders=this.quoteColumns,this.headers=null,this.includeEndRowDelimiter=!1,this.writeBOM=!1,this.BOM="\uFEFF",this.alwaysWriteHeaders=!1,Object.assign(this,h||{}),typeof(h==null?void 0:h.quoteHeaders)>"u"&&(this.quoteHeaders=this.quoteColumns),(h==null?void 0:h.quote)===!0?this.quote='"':(h==null?void 0:h.quote)===!1&&(this.quote=""),typeof(h==null?void 0:h.escape)!="string"&&(this.escape=this.quote),this.shouldWriteHeaders=!!this.headers&&((c=h.writeHeaders)!==null&&c!==void 0?c:!0),this.headers=Array.isArray(this.headers)?this.headers:null,this.escapedQuote=`${this.escape}${this.quote}`}}i.FormatterOptions=s},{}],148:[function(e,n,i){var s=function(f){return f&&f.__esModule?f:{default:f}};Object.defineProperty(i,"__esModule",{value:!0}),i.FieldFormatter=void 0;const o=s(e("lodash.isboolean")),h=s(e("lodash.isnil")),c=s(e("lodash.escaperegexp"));class a{constructor(l){this._headers=null,this.formatterOptions=l,l.headers!==null&&(this.headers=l.headers),this.REPLACE_REGEXP=new RegExp(l.quote,"g");const u=`[${l.delimiter}${c.default(l.rowDelimiter)}|\r| +]`;this.ESCAPE_REGEXP=new RegExp(u)}set headers(l){this._headers=l}shouldQuote(l,u){const p=u?this.formatterOptions.quoteHeaders:this.formatterOptions.quoteColumns;return o.default(p)?p:Array.isArray(p)?p[l]:this._headers!==null?p[this._headers[l]]:!1}format(l,u,p){const m=`${h.default(l)?"":l}`.replace(/\0/g,""),{formatterOptions:d}=this;return d.quote!==""&&m.indexOf(d.quote)!==-1?this.quoteField(m.replace(this.REPLACE_REGEXP,d.escapedQuote)):m.search(this.ESCAPE_REGEXP)!==-1||this.shouldQuote(u,p)?this.quoteField(m):m}quoteField(l){const{quote:u}=this.formatterOptions;return`${u}${l}${u}`}}i.FieldFormatter=a},{"lodash.escaperegexp":442,"lodash.isboolean":444,"lodash.isnil":447}],149:[function(e,n,i){var s=function(l){return l&&l.__esModule?l:{default:l}};Object.defineProperty(i,"__esModule",{value:!0}),i.RowFormatter=void 0;const o=s(e("lodash.isfunction")),h=s(e("lodash.isequal")),c=e("./FieldFormatter"),a=e("../types");class f{constructor(u){this.rowCount=0,this.formatterOptions=u,this.fieldFormatter=new c.FieldFormatter(u),this.headers=u.headers,this.shouldWriteHeaders=u.shouldWriteHeaders,this.hasWrittenHeaders=!1,this.headers!==null&&(this.fieldFormatter.headers=this.headers),u.transform&&(this.rowTransform=u.transform)}static isRowHashArray(u){return Array.isArray(u)?Array.isArray(u[0])&&u[0].length===2:!1}static isRowArray(u){return Array.isArray(u)&&!this.isRowHashArray(u)}static gatherHeaders(u){return f.isRowHashArray(u)?u.map(p=>p[0]):Array.isArray(u)?u:Object.keys(u)}static createTransform(u){return a.isSyncTransform(u)?(p,m)=>{let d=null;try{d=u(p)}catch(v){return m(v)}return m(null,d)}:(p,m)=>{u(p,m)}}set rowTransform(u){if(!o.default(u))throw new TypeError("The transform should be a function");this._rowTransform=f.createTransform(u)}format(u,p){this.callTransformer(u,(m,d)=>{if(m)return p(m);if(!u)return p(null);const v=[];if(d){const{shouldFormatColumns:x,headers:g}=this.checkHeaders(d);if(this.shouldWriteHeaders&&g&&!this.hasWrittenHeaders&&(v.push(this.formatColumns(g,!0)),this.hasWrittenHeaders=!0),x){const b=this.gatherColumns(d);v.push(this.formatColumns(b,!1))}}return p(null,v)})}finish(u){const p=[];if(this.formatterOptions.alwaysWriteHeaders&&this.rowCount===0){if(!this.headers)return u(new Error("`alwaysWriteHeaders` option is set to true but `headers` option not provided."));p.push(this.formatColumns(this.headers,!0))}return this.formatterOptions.includeEndRowDelimiter&&p.push(this.formatterOptions.rowDelimiter),u(null,p)}checkHeaders(u){if(this.headers)return{shouldFormatColumns:!0,headers:this.headers};const p=f.gatherHeaders(u);return this.headers=p,this.fieldFormatter.headers=p,this.shouldWriteHeaders?{shouldFormatColumns:!h.default(p,u),headers:p}:{shouldFormatColumns:!0,headers:null}}gatherColumns(u){if(this.headers===null)throw new Error("Headers is currently null");return Array.isArray(u)?f.isRowHashArray(u)?this.headers.map((p,m)=>{const d=u[m];return d?d[1]:""}):f.isRowArray(u)&&!this.shouldWriteHeaders?u:this.headers.map((p,m)=>u[m]):this.headers.map(p=>u[p])}callTransformer(u,p){return this._rowTransform?this._rowTransform(u,p):p(null,u)}formatColumns(u,p){const m=u.map((v,x)=>this.fieldFormatter.format(v,x,p)).join(this.formatterOptions.delimiter),{rowCount:d}=this;return this.rowCount+=1,d?[this.formatterOptions.rowDelimiter,m].join(""):m}}i.RowFormatter=f},{"../types":152,"./FieldFormatter":148,"lodash.isequal":445,"lodash.isfunction":446}],150:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.FieldFormatter=i.RowFormatter=void 0;var s=e("./RowFormatter");Object.defineProperty(i,"RowFormatter",{enumerable:!0,get:function(){return s.RowFormatter}});var o=e("./FieldFormatter");Object.defineProperty(i,"FieldFormatter",{enumerable:!0,get:function(){return o.FieldFormatter}})},{"./FieldFormatter":148,"./RowFormatter":149}],151:[function(e,n,i){(function(s){(function(){var o=Object.create?function(x,g,b,w){w===void 0&&(w=b),Object.defineProperty(x,w,{enumerable:!0,get:function(){return g[b]}})}:function(x,g,b,w){w===void 0&&(w=b),x[w]=g[b]},h=Object.create?function(x,g){Object.defineProperty(x,"default",{enumerable:!0,value:g})}:function(x,g){x.default=g},c=function(x){if(x&&x.__esModule)return x;var g={};if(x!=null)for(var b in x)b!=="default"&&Object.prototype.hasOwnProperty.call(x,b)&&o(g,x,b);return h(g,x),g},a=function(x,g){for(var b in x)b!=="default"&&!Object.prototype.hasOwnProperty.call(g,b)&&o(g,x,b)};Object.defineProperty(i,"__esModule",{value:!0}),i.writeToPath=i.writeToString=i.writeToBuffer=i.writeToStream=i.write=i.format=i.FormatterOptions=i.CsvFormatterStream=void 0;const f=e("util"),l=e("stream"),u=c(e("fs")),p=e("./FormatterOptions"),m=e("./CsvFormatterStream");a(e("./types"),i);var d=e("./CsvFormatterStream");Object.defineProperty(i,"CsvFormatterStream",{enumerable:!0,get:function(){return d.CsvFormatterStream}});var v=e("./FormatterOptions");Object.defineProperty(i,"FormatterOptions",{enumerable:!0,get:function(){return v.FormatterOptions}}),i.format=x=>new m.CsvFormatterStream(new p.FormatterOptions(x)),i.write=(x,g)=>{const b=i.format(g),w=f.promisify((y,T)=>{b.write(y,void 0,T)});return x.reduce((y,T)=>y.then(()=>w(T)),Promise.resolve()).then(()=>b.end()).catch(y=>{b.emit("error",y)}),b},i.writeToStream=(x,g,b)=>i.write(g,b).pipe(x),i.writeToBuffer=function(x){let g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const b=[],w=new l.Writable({write(y,T,C){b.push(y),C()}});return new Promise((y,T)=>{w.on("error",T).on("finish",()=>y(s.concat(b))),i.write(x,g).pipe(w)})},i.writeToString=(x,g)=>i.writeToBuffer(x,g).then(b=>b.toString()),i.writeToPath=(x,g,b)=>{const w=u.createWriteStream(x,{encoding:"utf8"});return i.write(g,b).pipe(w)}}).call(this)}).call(this,e("buffer").Buffer)},{"./CsvFormatterStream":146,"./FormatterOptions":147,"./types":152,buffer:220,fs:216,stream:505,util:527}],152:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.isSyncTransform=void 0,i.isSyncTransform=s=>s.length===1},{}],153:[function(e,n,i){(function(s){(function(){Object.defineProperty(i,"__esModule",{value:!0}),i.CsvParserStream=void 0;const o=e("string_decoder"),h=e("stream"),c=e("./transforms"),a=e("./parser");class f extends h.Transform{constructor(u){super({objectMode:u.objectMode}),this.lines="",this.rowCount=0,this.parsedRowCount=0,this.parsedLineCount=0,this.endEmitted=!1,this.headersEmitted=!1,this.parserOptions=u,this.parser=new a.Parser(u),this.headerTransformer=new c.HeaderTransformer(u),this.decoder=new o.StringDecoder(u.encoding),this.rowTransformerValidator=new c.RowTransformerValidator}get hasHitRowLimit(){return this.parserOptions.limitRows&&this.rowCount>=this.parserOptions.maxRows}get shouldEmitRows(){return this.parsedRowCount>this.parserOptions.skipRows}get shouldSkipLine(){return this.parsedLineCount<=this.parserOptions.skipLines}transform(u){return this.rowTransformerValidator.rowTransform=u,this}validate(u){return this.rowTransformerValidator.rowValidator=u,this}emit(u){if(u==="end")return this.endEmitted||(this.endEmitted=!0,super.emit("end",this.rowCount)),!1;for(var p=arguments.length,m=new Array(p>1?p-1:0),d=1;d{const x=w=>{if(w)return p(w);if(v%100===0){s(()=>d(v+1));return}return d(v+1)};if(this.checkAndEmitHeaders(),v>=m||this.hasHitRowLimit)return p();if(this.parsedLineCount+=1,this.shouldSkipLine)return x();const g=u[v];this.rowCount+=1,this.parsedRowCount+=1;const b=this.rowCount;return this.transformRow(g,(w,y)=>{if(w)return this.rowCount-=1,x(w);if(!y)return x(new Error("expected transform result"));if(!y.isValid)this.emit("data-invalid",y.row,b,y.reason);else if(y.row)return this.pushRow(y.row,x);return x()})};d(0)}transformRow(u,p){try{this.headerTransformer.transform(u,(m,d)=>m?p(m):d?d.isValid?d.row?this.shouldEmitRows?this.rowTransformerValidator.transformAndValidate(d.row,p):this.skipRow(p):(this.rowCount-=1,this.parsedRowCount-=1,p(null,{row:null,isValid:!0})):this.shouldEmitRows?p(null,{isValid:!1,row:u}):this.skipRow(p):p(new Error("Expected result from header transform")))}catch(m){p(m)}}checkAndEmitHeaders(){!this.headersEmitted&&this.headerTransformer.headers&&(this.headersEmitted=!0,this.emit("headers",this.headerTransformer.headers))}skipRow(u){return this.rowCount-=1,u(null,{row:null,isValid:!0})}pushRow(u,p){try{this.parserOptions.objectMode?this.push(u):this.push(JSON.stringify(u)),p()}catch(m){p(m)}}static wrapDoneCallback(u){let p=!1;return function(m){if(m){if(p)throw m;p=!0,u(m);return}for(var d=arguments.length,v=new Array(d>1?d-1:0),x=1;x1)throw new Error("delimiter option must be one character long");this.escapedDelimiter=o.default(this.delimiter),this.escapeChar=(l=this.escape)!==null&&l!==void 0?l:this.quote,this.supportsComments=!h.default(this.comment),this.NEXT_TOKEN_REGEXP=new RegExp(`([^\\s]|\\r\\n|\\n|\\r|${this.escapedDelimiter})`),this.maxRows>0&&(this.limitRows=!0)}}i.ParserOptions=c},{"lodash.escaperegexp":442,"lodash.isnil":447}],155:[function(e,n,i){var s=Object.create?function(d,v,x,g){g===void 0&&(g=x),Object.defineProperty(d,g,{enumerable:!0,get:function(){return v[x]}})}:function(d,v,x,g){g===void 0&&(g=x),d[g]=v[x]},o=Object.create?function(d,v){Object.defineProperty(d,"default",{enumerable:!0,value:v})}:function(d,v){d.default=v},h=function(d){if(d&&d.__esModule)return d;var v={};if(d!=null)for(var x in d)x!=="default"&&Object.prototype.hasOwnProperty.call(d,x)&&s(v,d,x);return o(v,d),v},c=function(d,v){for(var x in d)x!=="default"&&!Object.prototype.hasOwnProperty.call(v,x)&&s(v,d,x)};Object.defineProperty(i,"__esModule",{value:!0}),i.parseString=i.parseFile=i.parseStream=i.parse=i.ParserOptions=i.CsvParserStream=void 0;const a=h(e("fs")),f=e("stream"),l=e("./ParserOptions"),u=e("./CsvParserStream");c(e("./types"),i);var p=e("./CsvParserStream");Object.defineProperty(i,"CsvParserStream",{enumerable:!0,get:function(){return p.CsvParserStream}});var m=e("./ParserOptions");Object.defineProperty(i,"ParserOptions",{enumerable:!0,get:function(){return m.ParserOptions}}),i.parse=d=>new u.CsvParserStream(new l.ParserOptions(d)),i.parseStream=(d,v)=>d.pipe(new u.CsvParserStream(new l.ParserOptions(v))),i.parseFile=function(d){let v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return a.createReadStream(d).pipe(new u.CsvParserStream(new l.ParserOptions(v)))},i.parseString=(d,v)=>{const x=new f.Readable;return x.push(d),x.push(null),x.pipe(new u.CsvParserStream(new l.ParserOptions(v)))}},{"./CsvParserStream":153,"./ParserOptions":154,"./types":169,fs:216,stream:505}],156:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.Parser=void 0;const s=e("./Scanner"),o=e("./RowParser"),h=e("./Token");class c{constructor(f){this.parserOptions=f,this.rowParser=new o.RowParser(this.parserOptions)}static removeBOM(f){return f&&f.charCodeAt(0)===65279?f.slice(1):f}parse(f,l){const u=new s.Scanner({line:c.removeBOM(f),parserOptions:this.parserOptions,hasMoreData:l});return this.parserOptions.supportsComments?this.parseWithComments(u):this.parseWithoutComments(u)}parseWithoutComments(f){const l=[];let u=!0;for(;u;)u=this.parseRow(f,l);return{line:f.line,rows:l}}parseWithComments(f){const{parserOptions:l}=this,u=[];for(let p=f.nextCharacterToken;p!==null;p=f.nextCharacterToken)if(h.Token.isTokenComment(p,l)){if(f.advancePastLine()===null)return{line:f.lineFromCursor,rows:u};if(!f.hasMoreCharacters)return{line:f.lineFromCursor,rows:u};f.truncateToCursor()}else if(!this.parseRow(f,u))break;return{line:f.line,rows:u}}parseRow(f,l){if(!f.nextNonSpaceToken)return!1;const p=this.rowParser.parse(f);return p===null?!1:(this.parserOptions.ignoreEmpty&&o.RowParser.isEmptyRow(p)||l.push(p),!0)}}i.Parser=c},{"./RowParser":157,"./Scanner":158,"./Token":159}],157:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.RowParser=void 0;const s=e("./column"),o=e("./Token"),h="";class c{constructor(f){this.parserOptions=f,this.columnParser=new s.ColumnParser(f)}static isEmptyRow(f){return f.join(h).replace(/\s+/g,h)===h}parse(f){const{parserOptions:l}=this,{hasMoreData:u}=f,p=f,m=[];let d=this.getStartToken(p,m);for(;d;){if(o.Token.isTokenRowDelimiter(d))return p.advancePastToken(d),!p.hasMoreCharacters&&o.Token.isTokenCarriageReturn(d,l)&&u?null:(p.truncateToCursor(),m);if(!this.shouldSkipColumnParse(p,d,m)){const v=this.columnParser.parse(p);if(v===null)return null;m.push(v)}d=p.nextNonSpaceToken}return u?null:(p.truncateToCursor(),m)}getStartToken(f,l){const u=f.nextNonSpaceToken;return u!==null&&o.Token.isTokenDelimiter(u,this.parserOptions)?(l.push(""),f.nextNonSpaceToken):u}shouldSkipColumnParse(f,l,u){const{parserOptions:p}=this;if(o.Token.isTokenDelimiter(l,p)){f.advancePastToken(l);const m=f.nextCharacterToken;if(!f.hasMoreCharacters||m!==null&&o.Token.isTokenRowDelimiter(m)||m!==null&&o.Token.isTokenDelimiter(m,p))return u.push(""),!0}return!1}}i.RowParser=c},{"./Token":159,"./column":164}],158:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.Scanner=void 0;const s=e("./Token"),o=/((?:\r\n)|\n|\r)/;class h{constructor(a){this.cursor=0,this.line=a.line,this.lineLength=this.line.length,this.parserOptions=a.parserOptions,this.hasMoreData=a.hasMoreData,this.cursor=a.cursor||0}get hasMoreCharacters(){return this.lineLength>this.cursor}get nextNonSpaceToken(){const{lineFromCursor:a}=this,f=this.parserOptions.NEXT_TOKEN_REGEXP;if(a.search(f)===-1)return null;const l=f.exec(a);if(l==null)return null;const u=l[1],p=this.cursor+(l.index||0);return new s.Token({token:u,startCursor:p,endCursor:p+u.length-1})}get nextCharacterToken(){const{cursor:a,lineLength:f}=this;return f<=a?null:new s.Token({token:this.line[a],startCursor:a,endCursor:a})}get lineFromCursor(){return this.line.substr(this.cursor)}advancePastLine(){const a=o.exec(this.lineFromCursor);return a?(this.cursor+=(a.index||0)+a[0].length,this):this.hasMoreData?null:(this.cursor=this.lineLength,this)}advanceTo(a){return this.cursor=a,this}advanceToToken(a){return this.cursor=a.startCursor,this}advancePastToken(a){return this.cursor=a.endCursor+1,this}truncateToCursor(){return this.line=this.lineFromCursor,this.lineLength=this.line.length,this.cursor=0,this}}i.Scanner=h},{"./Token":159}],159:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.Token=void 0;class s{constructor(h){this.token=h.token,this.startCursor=h.startCursor,this.endCursor=h.endCursor}static isTokenRowDelimiter(h){const c=h.token;return c==="\r"||c===` +`||c===`\r +`}static isTokenCarriageReturn(h,c){return h.token===c.carriageReturn}static isTokenComment(h,c){return c.supportsComments&&!!h&&h.token===c.comment}static isTokenEscapeCharacter(h,c){return h.token===c.escapeChar}static isTokenQuote(h,c){return h.token===c.quote}static isTokenDelimiter(h,c){return h.token===c.delimiter}}i.Token=s},{}],160:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.ColumnFormatter=void 0;class s{constructor(h){h.trim?this.format=c=>c.trim():h.ltrim?this.format=c=>c.trimLeft():h.rtrim?this.format=c=>c.trimRight():this.format=c=>c}}i.ColumnFormatter=s},{}],161:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.ColumnParser=void 0;const s=e("./NonQuotedColumnParser"),o=e("./QuotedColumnParser"),h=e("../Token");class c{constructor(f){this.parserOptions=f,this.quotedColumnParser=new o.QuotedColumnParser(f),this.nonQuotedColumnParser=new s.NonQuotedColumnParser(f)}parse(f){const{nextNonSpaceToken:l}=f;return l!==null&&h.Token.isTokenQuote(l,this.parserOptions)?(f.advanceToToken(l),this.quotedColumnParser.parse(f)):this.nonQuotedColumnParser.parse(f)}}i.ColumnParser=c},{"../Token":159,"./NonQuotedColumnParser":162,"./QuotedColumnParser":163}],162:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.NonQuotedColumnParser=void 0;const s=e("./ColumnFormatter"),o=e("../Token");class h{constructor(a){this.parserOptions=a,this.columnFormatter=new s.ColumnFormatter(a)}parse(a){if(!a.hasMoreCharacters)return null;const{parserOptions:f}=this,l=[];let u=a.nextCharacterToken;for(;u&&!(o.Token.isTokenDelimiter(u,f)||o.Token.isTokenRowDelimiter(u));u=a.nextCharacterToken)l.push(u.token),a.advancePastToken(u);return this.columnFormatter.format(l.join(""))}}i.NonQuotedColumnParser=h},{"../Token":159,"./ColumnFormatter":160}],163:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.QuotedColumnParser=void 0;const s=e("./ColumnFormatter"),o=e("../Token");class h{constructor(a){this.parserOptions=a,this.columnFormatter=new s.ColumnFormatter(a)}parse(a){if(!a.hasMoreCharacters)return null;const f=a.cursor,{foundClosingQuote:l,col:u}=this.gatherDataBetweenQuotes(a);if(!l){if(a.advanceTo(f),!a.hasMoreData)throw new Error(`Parse Error: missing closing: '${this.parserOptions.quote||""}' in line: at '${a.lineFromCursor.replace(/[\r\n]/g,"\\n'")}'`);return null}return this.checkForMalformedColumn(a),u}gatherDataBetweenQuotes(a){const{parserOptions:f}=this;let l=!1,u=!1;const p=[];let m=a.nextCharacterToken;for(;!u&&m!==null;m=a.nextCharacterToken){const d=o.Token.isTokenQuote(m,f);if(!l&&d)l=!0;else if(l)if(o.Token.isTokenEscapeCharacter(m,f)){a.advancePastToken(m);const v=a.nextCharacterToken;v!==null&&(o.Token.isTokenQuote(v,f)||o.Token.isTokenEscapeCharacter(v,f))?(p.push(v.token),m=v):d?u=!0:p.push(m.token)}else d?u=!0:p.push(m.token);a.advancePastToken(m)}return{col:this.columnFormatter.format(p.join("")),foundClosingQuote:u}}checkForMalformedColumn(a){const{parserOptions:f}=this,{nextNonSpaceToken:l}=a;if(l){const u=o.Token.isTokenDelimiter(l,f),p=o.Token.isTokenRowDelimiter(l);if(!(u||p)){const m=a.lineFromCursor.substr(0,10).replace(/[\r\n]/g,"\\n'");throw new Error(`Parse Error: expected: '${f.escapedDelimiter}' OR new line got: '${l.token}'. at '${m}`)}a.advanceToToken(l)}else a.hasMoreData||a.advancePastLine()}}i.QuotedColumnParser=h},{"../Token":159,"./ColumnFormatter":160}],164:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.ColumnFormatter=i.QuotedColumnParser=i.NonQuotedColumnParser=i.ColumnParser=void 0;var s=e("./ColumnParser");Object.defineProperty(i,"ColumnParser",{enumerable:!0,get:function(){return s.ColumnParser}});var o=e("./NonQuotedColumnParser");Object.defineProperty(i,"NonQuotedColumnParser",{enumerable:!0,get:function(){return o.NonQuotedColumnParser}});var h=e("./QuotedColumnParser");Object.defineProperty(i,"QuotedColumnParser",{enumerable:!0,get:function(){return h.QuotedColumnParser}});var c=e("./ColumnFormatter");Object.defineProperty(i,"ColumnFormatter",{enumerable:!0,get:function(){return c.ColumnFormatter}})},{"./ColumnFormatter":160,"./ColumnParser":161,"./NonQuotedColumnParser":162,"./QuotedColumnParser":163}],165:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.QuotedColumnParser=i.NonQuotedColumnParser=i.ColumnParser=i.Token=i.Scanner=i.RowParser=i.Parser=void 0;var s=e("./Parser");Object.defineProperty(i,"Parser",{enumerable:!0,get:function(){return s.Parser}});var o=e("./RowParser");Object.defineProperty(i,"RowParser",{enumerable:!0,get:function(){return o.RowParser}});var h=e("./Scanner");Object.defineProperty(i,"Scanner",{enumerable:!0,get:function(){return h.Scanner}});var c=e("./Token");Object.defineProperty(i,"Token",{enumerable:!0,get:function(){return c.Token}});var a=e("./column");Object.defineProperty(i,"ColumnParser",{enumerable:!0,get:function(){return a.ColumnParser}}),Object.defineProperty(i,"NonQuotedColumnParser",{enumerable:!0,get:function(){return a.NonQuotedColumnParser}}),Object.defineProperty(i,"QuotedColumnParser",{enumerable:!0,get:function(){return a.QuotedColumnParser}})},{"./Parser":156,"./RowParser":157,"./Scanner":158,"./Token":159,"./column":164}],166:[function(e,n,i){var s=function(l){return l&&l.__esModule?l:{default:l}};Object.defineProperty(i,"__esModule",{value:!0}),i.HeaderTransformer=void 0;const o=s(e("lodash.isundefined")),h=s(e("lodash.isfunction")),c=s(e("lodash.uniq")),a=s(e("lodash.groupby"));class f{constructor(u){this.headers=null,this.receivedHeaders=!1,this.shouldUseFirstRow=!1,this.processedFirstRow=!1,this.headersLength=0,this.parserOptions=u,u.headers===!0?this.shouldUseFirstRow=!0:Array.isArray(u.headers)?this.setHeaders(u.headers):h.default(u.headers)&&(this.headersTransform=u.headers)}transform(u,p){return this.shouldMapRow(u)?p(null,this.processRow(u)):p(null,{row:null,isValid:!0})}shouldMapRow(u){const{parserOptions:p}=this;if(!this.headersTransform&&p.renameHeaders&&!this.processedFirstRow){if(!this.receivedHeaders)throw new Error("Error renaming headers: new headers must be provided in an array");return this.processedFirstRow=!0,!1}if(!this.receivedHeaders&&Array.isArray(u)){if(this.headersTransform)this.setHeaders(this.headersTransform(u));else if(this.shouldUseFirstRow)this.setHeaders(u);else return!0;return!1}return!0}processRow(u){if(!this.headers)return{row:u,isValid:!0};const{parserOptions:p}=this;if(!p.discardUnmappedColumns&&u.length>this.headersLength){if(!p.strictColumnHandling)throw new Error(`Unexpected Error: column header mismatch expected: ${this.headersLength} columns got: ${u.length}`);return{row:u,isValid:!1,reason:`Column header mismatch expected: ${this.headersLength} columns got: ${u.length}`}}return p.strictColumnHandling&&u.length!!d);if(c.default(m).length!==m.length){const d=a.default(m),v=Object.keys(d).filter(x=>d[x].length>1);throw new Error(`Duplicate headers found ${JSON.stringify(v)}`)}this.headers=u,this.receivedHeaders=!0,this.headersLength=((p=this.headers)===null||p===void 0?void 0:p.length)||0}}i.HeaderTransformer=f},{"lodash.groupby":443,"lodash.isfunction":446,"lodash.isundefined":448,"lodash.uniq":449}],167:[function(e,n,i){var s=function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(i,"__esModule",{value:!0}),i.RowTransformerValidator=void 0;const o=s(e("lodash.isfunction")),h=e("../types");class c{constructor(){this._rowTransform=null,this._rowValidator=null}static createTransform(f){return h.isSyncTransform(f)?(l,u)=>{let p=null;try{p=f(l)}catch(m){return u(m)}return u(null,p)}:f}static createValidator(f){return h.isSyncValidate(f)?(l,u)=>{u(null,{row:l,isValid:f(l)})}:(l,u)=>{f(l,(p,m,d)=>p?u(p):m?u(null,{row:l,isValid:m,reason:d}):u(null,{row:l,isValid:!1,reason:d}))}}set rowTransform(f){if(!o.default(f))throw new TypeError("The transform should be a function");this._rowTransform=c.createTransform(f)}set rowValidator(f){if(!o.default(f))throw new TypeError("The validate should be a function");this._rowValidator=c.createValidator(f)}transformAndValidate(f,l){return this.callTransformer(f,(u,p)=>u?l(u):p?this.callValidator(p,(m,d)=>m?l(m):d&&!d.isValid?l(null,{row:p,isValid:!1,reason:d.reason}):l(null,{row:p,isValid:!0})):l(null,{row:null,isValid:!0}))}callTransformer(f,l){return this._rowTransform?this._rowTransform(f,l):l(null,f)}callValidator(f,l){return this._rowValidator?this._rowValidator(f,l):l(null,{row:f,isValid:!0})}}i.RowTransformerValidator=c},{"../types":169,"lodash.isfunction":446}],168:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.HeaderTransformer=i.RowTransformerValidator=void 0;var s=e("./RowTransformerValidator");Object.defineProperty(i,"RowTransformerValidator",{enumerable:!0,get:function(){return s.RowTransformerValidator}});var o=e("./HeaderTransformer");Object.defineProperty(i,"HeaderTransformer",{enumerable:!0,get:function(){return o.HeaderTransformer}})},{"./HeaderTransformer":166,"./RowTransformerValidator":167}],169:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.isSyncValidate=i.isSyncTransform=void 0,i.isSyncTransform=s=>s.length===1,i.isSyncValidate=s=>s.length===1},{}],170:[function(e,n,i){const s=i;s.bignum=e("bn.js"),s.define=e("./asn1/api").define,s.base=e("./asn1/base"),s.constants=e("./asn1/constants"),s.decoders=e("./asn1/decoders"),s.encoders=e("./asn1/encoders")},{"./asn1/api":171,"./asn1/base":173,"./asn1/constants":177,"./asn1/decoders":179,"./asn1/encoders":182,"bn.js":184}],171:[function(e,n,i){const s=e("./encoders"),o=e("./decoders"),h=e("inherits"),c=i;c.define=function(l,u){return new a(l,u)};function a(f,l){this.name=f,this.body=l,this.decoders={},this.encoders={}}a.prototype._createNamed=function(l){const u=this.name;function p(m){this._initNamed(m,u)}return h(p,l),p.prototype._initNamed=function(d,v){l.call(this,d,v)},new p(this)},a.prototype._getDecoder=function(l){return l=l||"der",this.decoders.hasOwnProperty(l)||(this.decoders[l]=this._createNamed(o[l])),this.decoders[l]},a.prototype.decode=function(l,u,p){return this._getDecoder(u).decode(l,p)},a.prototype._getEncoder=function(l){return l=l||"der",this.encoders.hasOwnProperty(l)||(this.encoders[l]=this._createNamed(s[l])),this.encoders[l]},a.prototype.encode=function(l,u,p){return this._getEncoder(u).encode(l,p)}},{"./decoders":179,"./encoders":182,inherits:440}],172:[function(e,n,i){const s=e("inherits"),o=e("../base/reporter").Reporter,h=e("safer-buffer").Buffer;function c(f,l){if(o.call(this,l),!h.isBuffer(f)){this.error("Input not Buffer");return}this.base=f,this.offset=0,this.length=f.length}s(c,o),i.DecoderBuffer=c,c.isDecoderBuffer=function(l){return l instanceof c?!0:typeof l=="object"&&h.isBuffer(l.base)&&l.constructor.name==="DecoderBuffer"&&typeof l.offset=="number"&&typeof l.length=="number"&&typeof l.save=="function"&&typeof l.restore=="function"&&typeof l.isEmpty=="function"&&typeof l.readUInt8=="function"&&typeof l.skip=="function"&&typeof l.raw=="function"},c.prototype.save=function(){return{offset:this.offset,reporter:o.prototype.save.call(this)}},c.prototype.restore=function(l){const u=new c(this.base);return u.offset=l.offset,u.length=this.offset,this.offset=l.offset,o.prototype.restore.call(this,l.reporter),u},c.prototype.isEmpty=function(){return this.offset===this.length},c.prototype.readUInt8=function(l){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(l||"DecoderBuffer overrun")},c.prototype.skip=function(l,u){if(!(this.offset+l<=this.length))return this.error(u||"DecoderBuffer overrun");const p=new c(this.base);return p._reporterState=this._reporterState,p.offset=this.offset,p.length=this.offset+l,this.offset+=l,p},c.prototype.raw=function(l){return this.base.slice(l?l.offset:this.offset,this.length)};function a(f,l){if(Array.isArray(f))this.length=0,this.value=f.map(function(u){return a.isEncoderBuffer(u)||(u=new a(u,l)),this.length+=u.length,u},this);else if(typeof f=="number"){if(!(0<=f&&f<=255))return l.error("non-byte EncoderBuffer value");this.value=f,this.length=1}else if(typeof f=="string")this.value=f,this.length=h.byteLength(f);else if(h.isBuffer(f))this.value=f,this.length=f.length;else return l.error("Unsupported type: "+typeof f)}i.EncoderBuffer=a,a.isEncoderBuffer=function(l){return l instanceof a?!0:typeof l=="object"&&l.constructor.name==="EncoderBuffer"&&typeof l.length=="number"&&typeof l.join=="function"},a.prototype.join=function(l,u){return l||(l=h.alloc(this.length)),u||(u=0),this.length===0||(Array.isArray(this.value)?this.value.forEach(function(p){p.join(l,u),u+=p.length}):(typeof this.value=="number"?l[u]=this.value:typeof this.value=="string"?l.write(this.value,u):h.isBuffer(this.value)&&this.value.copy(l,u),u+=this.length)),l}},{"../base/reporter":175,inherits:440,"safer-buffer":495}],173:[function(e,n,i){const s=i;s.Reporter=e("./reporter").Reporter,s.DecoderBuffer=e("./buffer").DecoderBuffer,s.EncoderBuffer=e("./buffer").EncoderBuffer,s.Node=e("./node")},{"./buffer":172,"./node":174,"./reporter":175}],174:[function(e,n,i){const s=e("../base/reporter").Reporter,o=e("../base/buffer").EncoderBuffer,h=e("../base/buffer").DecoderBuffer,c=e("minimalistic-assert"),a=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],f=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(a),l=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function u(m,d,v){const x={};this._baseState=x,x.name=v,x.enc=m,x.parent=d||null,x.children=null,x.tag=null,x.args=null,x.reverseArgs=null,x.choice=null,x.optional=!1,x.any=!1,x.obj=!1,x.use=null,x.useDecoder=null,x.key=null,x.default=null,x.explicit=null,x.implicit=null,x.contains=null,x.parent||(x.children=[],this._wrap())}n.exports=u;const p=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];u.prototype.clone=function(){const d=this._baseState,v={};p.forEach(function(g){v[g]=d[g]});const x=new this.constructor(v.parent);return x._baseState=v,x},u.prototype._wrap=function(){const d=this._baseState;f.forEach(function(v){this[v]=function(){const g=new this.constructor(this);return d.children.push(g),g[v].apply(g,arguments)}},this)},u.prototype._init=function(d){const v=this._baseState;c(v.parent===null),d.call(this),v.children=v.children.filter(function(x){return x._baseState.parent===this},this),c.equal(v.children.length,1,"Root node can have only one child")},u.prototype._useArgs=function(d){const v=this._baseState,x=d.filter(function(g){return g instanceof this.constructor},this);d=d.filter(function(g){return!(g instanceof this.constructor)},this),x.length!==0&&(c(v.children===null),v.children=x,x.forEach(function(g){g._baseState.parent=this},this)),d.length!==0&&(c(v.args===null),v.args=d,v.reverseArgs=d.map(function(g){if(typeof g!="object"||g.constructor!==Object)return g;const b={};return Object.keys(g).forEach(function(w){w==(w|0)&&(w|=0);const y=g[w];b[y]=w}),b}))},l.forEach(function(m){u.prototype[m]=function(){const v=this._baseState;throw new Error(m+" not implemented for encoding: "+v.enc)}}),a.forEach(function(m){u.prototype[m]=function(){const v=this._baseState,x=Array.prototype.slice.call(arguments);return c(v.tag===null),v.tag=m,this._useArgs(x),this}}),u.prototype.use=function(d){c(d);const v=this._baseState;return c(v.use===null),v.use=d,this},u.prototype.optional=function(){const d=this._baseState;return d.optional=!0,this},u.prototype.def=function(d){const v=this._baseState;return c(v.default===null),v.default=d,v.optional=!0,this},u.prototype.explicit=function(d){const v=this._baseState;return c(v.explicit===null&&v.implicit===null),v.explicit=d,this},u.prototype.implicit=function(d){const v=this._baseState;return c(v.explicit===null&&v.implicit===null),v.implicit=d,this},u.prototype.obj=function(){const d=this._baseState,v=Array.prototype.slice.call(arguments);return d.obj=!0,v.length!==0&&this._useArgs(v),this},u.prototype.key=function(d){const v=this._baseState;return c(v.key===null),v.key=d,this},u.prototype.any=function(){const d=this._baseState;return d.any=!0,this},u.prototype.choice=function(d){const v=this._baseState;return c(v.choice===null),v.choice=d,this._useArgs(Object.keys(d).map(function(x){return d[x]})),this},u.prototype.contains=function(d){const v=this._baseState;return c(v.use===null),v.contains=d,this},u.prototype._decode=function(d,v){const x=this._baseState;if(x.parent===null)return d.wrapResult(x.children[0]._decode(d,v));let g=x.default,b=!0,w=null;if(x.key!==null&&(w=d.enterKey(x.key)),x.optional){let T=null;if(x.explicit!==null?T=x.explicit:x.implicit!==null?T=x.implicit:x.tag!==null&&(T=x.tag),T===null&&!x.any){const C=d.save();try{x.choice===null?this._decodeGeneric(x.tag,d,v):this._decodeChoice(d,v),b=!0}catch{b=!1}d.restore(C)}else if(b=this._peekTag(d,T,x.any),d.isError(b))return b}let y;if(x.obj&&b&&(y=d.enterObject()),b){if(x.explicit!==null){const C=this._decodeTag(d,x.explicit);if(d.isError(C))return C;d=C}const T=d.offset;if(x.use===null&&x.choice===null){let C;x.any&&(C=d.save());const M=this._decodeTag(d,x.implicit!==null?x.implicit:x.tag,x.any);if(d.isError(M))return M;x.any?g=d.raw(C):d=M}if(v&&v.track&&x.tag!==null&&v.track(d.path(),T,d.length,"tagged"),v&&v.track&&x.tag!==null&&v.track(d.path(),d.offset,d.length,"content"),x.any||(x.choice===null?g=this._decodeGeneric(x.tag,d,v):g=this._decodeChoice(d,v)),d.isError(g))return g;if(!x.any&&x.choice===null&&x.children!==null&&x.children.forEach(function(M){M._decode(d,v)}),x.contains&&(x.tag==="octstr"||x.tag==="bitstr")){const C=new h(g);g=this._getUse(x.contains,d._reporterState.obj)._decode(C,v)}}return x.obj&&b&&(g=d.leaveObject(y)),x.key!==null&&(g!==null||b===!0)?d.leaveKey(w,x.key,g):w!==null&&d.exitKey(w),g},u.prototype._decodeGeneric=function(d,v,x){const g=this._baseState;return d==="seq"||d==="set"?null:d==="seqof"||d==="setof"?this._decodeList(v,d,g.args[0],x):/str$/.test(d)?this._decodeStr(v,d,x):d==="objid"&&g.args?this._decodeObjid(v,g.args[0],g.args[1],x):d==="objid"?this._decodeObjid(v,null,null,x):d==="gentime"||d==="utctime"?this._decodeTime(v,d,x):d==="null_"?this._decodeNull(v,x):d==="bool"?this._decodeBool(v,x):d==="objDesc"?this._decodeStr(v,d,x):d==="int"||d==="enum"?this._decodeInt(v,g.args&&g.args[0],x):g.use!==null?this._getUse(g.use,v._reporterState.obj)._decode(v,x):v.error("unknown tag: "+d)},u.prototype._getUse=function(d,v){const x=this._baseState;return x.useDecoder=this._use(d,v),c(x.useDecoder._baseState.parent===null),x.useDecoder=x.useDecoder._baseState.children[0],x.implicit!==x.useDecoder._baseState.implicit&&(x.useDecoder=x.useDecoder.clone(),x.useDecoder._baseState.implicit=x.implicit),x.useDecoder},u.prototype._decodeChoice=function(d,v){const x=this._baseState;let g=null,b=!1;return Object.keys(x.choice).some(function(w){const y=d.save(),T=x.choice[w];try{const C=T._decode(d,v);if(d.isError(C))return!1;g={type:w,value:C},b=!0}catch{return d.restore(y),!1}return!0},this),b?g:d.error("Choice not matched")},u.prototype._createEncoderBuffer=function(d){return new o(d,this.reporter)},u.prototype._encode=function(d,v,x){const g=this._baseState;if(g.default!==null&&g.default===d)return;const b=this._encodeValue(d,v,x);if(b!==void 0&&!this._skipDefault(b,v,x))return b},u.prototype._encodeValue=function(d,v,x){const g=this._baseState;if(g.parent===null)return g.children[0]._encode(d,v||new s);let b=null;if(this.reporter=v,g.optional&&d===void 0)if(g.default!==null)d=g.default;else return;let w=null,y=!1;if(g.any)b=this._createEncoderBuffer(d);else if(g.choice)b=this._encodeChoice(d,v);else if(g.contains)w=this._getUse(g.contains,x)._encode(d,v),y=!0;else if(g.children)w=g.children.map(function(T){if(T._baseState.tag==="null_")return T._encode(null,v,d);if(T._baseState.key===null)return v.error("Child should have a key");const C=v.enterKey(T._baseState.key);if(typeof d!="object")return v.error("Child expected, but input is not object");const M=T._encode(d[T._baseState.key],v,d);return v.leaveKey(C),M},this).filter(function(T){return T}),w=this._createEncoderBuffer(w);else if(g.tag==="seqof"||g.tag==="setof"){if(!(g.args&&g.args.length===1))return v.error("Too many args for : "+g.tag);if(!Array.isArray(d))return v.error("seqof/setof, but data is not Array");const T=this.clone();T._baseState.implicit=null,w=this._createEncoderBuffer(d.map(function(C){const M=this._baseState;return this._getUse(M.args[0],d)._encode(C,v)},T))}else g.use!==null?b=this._getUse(g.use,x)._encode(d,v):(w=this._encodePrimitive(g.tag,d),y=!0);if(!g.any&&g.choice===null){const T=g.implicit!==null?g.implicit:g.tag,C=g.implicit===null?"universal":"context";T===null?g.use===null&&v.error("Tag could be omitted only for .use()"):g.use===null&&(b=this._encodeComposite(T,y,C,w))}return g.explicit!==null&&(b=this._encodeComposite(g.explicit,!1,"context",b)),b},u.prototype._encodeChoice=function(d,v){const x=this._baseState,g=x.choice[d.type];return g||c(!1,d.type+" not found in "+JSON.stringify(Object.keys(x.choice))),g._encode(d.value,v)},u.prototype._encodePrimitive=function(d,v){const x=this._baseState;if(/str$/.test(d))return this._encodeStr(v,d);if(d==="objid"&&x.args)return this._encodeObjid(v,x.reverseArgs[0],x.args[1]);if(d==="objid")return this._encodeObjid(v,null,null);if(d==="gentime"||d==="utctime")return this._encodeTime(v,d);if(d==="null_")return this._encodeNull();if(d==="int"||d==="enum")return this._encodeInt(v,x.args&&x.reverseArgs[0]);if(d==="bool")return this._encodeBool(v);if(d==="objDesc")return this._encodeStr(v,d);throw new Error("Unsupported tag: "+d)},u.prototype._isNumstr=function(d){return/^[0-9 ]*$/.test(d)},u.prototype._isPrintstr=function(d){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(d)}},{"../base/buffer":172,"../base/reporter":175,"minimalistic-assert":453}],175:[function(e,n,i){const s=e("inherits");function o(c){this._reporterState={obj:null,path:[],options:c||{},errors:[]}}i.Reporter=o,o.prototype.isError=function(a){return a instanceof h},o.prototype.save=function(){const a=this._reporterState;return{obj:a.obj,pathLen:a.path.length}},o.prototype.restore=function(a){const f=this._reporterState;f.obj=a.obj,f.path=f.path.slice(0,a.pathLen)},o.prototype.enterKey=function(a){return this._reporterState.path.push(a)},o.prototype.exitKey=function(a){const f=this._reporterState;f.path=f.path.slice(0,a-1)},o.prototype.leaveKey=function(a,f,l){const u=this._reporterState;this.exitKey(a),u.obj!==null&&(u.obj[f]=l)},o.prototype.path=function(){return this._reporterState.path.join("/")},o.prototype.enterObject=function(){const a=this._reporterState,f=a.obj;return a.obj={},f},o.prototype.leaveObject=function(a){const f=this._reporterState,l=f.obj;return f.obj=a,l},o.prototype.error=function(a){let f;const l=this._reporterState,u=a instanceof h;if(u?f=a:f=new h(l.path.map(function(p){return"["+JSON.stringify(p)+"]"}).join(""),a.message||a,a.stack),!l.options.partial)throw f;return u||l.errors.push(f),f},o.prototype.wrapResult=function(a){const f=this._reporterState;return f.options.partial?{result:this.isError(a)?null:a,errors:f.errors}:a};function h(c,a){this.path=c,this.rethrow(a)}s(h,Error),h.prototype.rethrow=function(a){if(this.message=a+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,h),!this.stack)try{throw new Error(this.message)}catch(f){this.stack=f.stack}return this}},{inherits:440}],176:[function(e,n,i){function s(o){const h={};return Object.keys(o).forEach(function(c){(c|0)==c&&(c=c|0);const a=o[c];h[a]=c}),h}i.tagClass={0:"universal",1:"application",2:"context",3:"private"},i.tagClassByName=s(i.tagClass),i.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},i.tagByName=s(i.tag)},{}],177:[function(e,n,i){const s=i;s._reverse=function(h){const c={};return Object.keys(h).forEach(function(a){(a|0)==a&&(a=a|0);const f=h[a];c[f]=a}),c},s.der=e("./der")},{"./der":176}],178:[function(e,n,i){const s=e("inherits"),o=e("bn.js"),h=e("../base/buffer").DecoderBuffer,c=e("../base/node"),a=e("../constants/der");function f(m){this.enc="der",this.name=m.name,this.entity=m,this.tree=new l,this.tree._init(m.body)}n.exports=f,f.prototype.decode=function(d,v){return h.isDecoderBuffer(d)||(d=new h(d,v)),this.tree._decode(d,v)};function l(m){c.call(this,"der",m)}s(l,c),l.prototype._peekTag=function(d,v,x){if(d.isEmpty())return!1;const g=d.save(),b=u(d,'Failed to peek tag: "'+v+'"');return d.isError(b)?b:(d.restore(g),b.tag===v||b.tagStr===v||b.tagStr+"of"===v||x)},l.prototype._decodeTag=function(d,v,x){const g=u(d,'Failed to decode tag of "'+v+'"');if(d.isError(g))return g;let b=p(d,g.primitive,'Failed to get length of "'+v+'"');if(d.isError(b))return b;if(!x&&g.tag!==v&&g.tagStr!==v&&g.tagStr+"of"!==v)return d.error('Failed to match tag: "'+v+'"');if(g.primitive||b!==null)return d.skip(b,'Failed to match body of: "'+v+'"');const w=d.save(),y=this._skipUntilEnd(d,'Failed to skip indefinite length body: "'+this.tag+'"');return d.isError(y)?y:(b=d.offset-w.offset,d.restore(w),d.skip(b,'Failed to match body of: "'+v+'"'))},l.prototype._skipUntilEnd=function(d,v){for(;;){const x=u(d,v);if(d.isError(x))return x;const g=p(d,x.primitive,v);if(d.isError(g))return g;let b;if(x.primitive||g!==null?b=d.skip(g):b=this._skipUntilEnd(d,v),d.isError(b))return b;if(x.tagStr==="end")break}},l.prototype._decodeList=function(d,v,x,g){const b=[];for(;!d.isEmpty();){const w=this._peekTag(d,"end");if(d.isError(w))return w;const y=x.decode(d,"der",g);if(d.isError(y)&&w)break;b.push(y)}return b},l.prototype._decodeStr=function(d,v){if(v==="bitstr"){const x=d.readUInt8();return d.isError(x)?x:{unused:x,data:d.raw()}}else if(v==="bmpstr"){const x=d.raw();if(x.length%2===1)return d.error("Decoding of string type: bmpstr length mismatch");let g="";for(let b=0;b>6],g=(v&32)===0;if((v&31)===31){let w=v;for(v=0;(w&128)===128;){if(w=m.readUInt8(d),m.isError(w))return w;v<<=7,v|=w&127}}else v&=31;const b=a.tag[v];return{cls:x,primitive:g,tag:v,tagStr:b}}function p(m,d,v){let x=m.readUInt8(v);if(m.isError(x))return x;if(!d&&x===128)return null;if(!(x&128))return x;const g=x&127;if(g>4)return m.error("length octect is too long");x=0;for(let b=0;b=256;y>>=8)b++;const w=o.alloc(1+1+b);w[0]=g,w[1]=128|b;for(let y=1+b,T=x.length;T>0;y--,T>>=8)w[y]=T&255;return this._createEncoderBuffer([w,x])},f.prototype._encodeStr=function(m,d){if(d==="bitstr")return this._createEncoderBuffer([m.unused|0,m.data]);if(d==="bmpstr"){const v=o.alloc(m.length*2);for(let x=0;x=40)return this.reporter.error("Second objid identifier OOB");m.splice(0,2,m[0]*40+m[1])}let x=0;for(let w=0;w=128;y>>=7)x++}const g=o.alloc(x);let b=g.length-1;for(let w=m.length-1;w>=0;w--){let y=m[w];for(g[b--]=y&127;(y>>=7)>0;)g[b--]=128|y&127}return this._createEncoderBuffer(g)};function l(p){return p<10?"0"+p:p}f.prototype._encodeTime=function(m,d){let v;const x=new Date(m);return d==="gentime"?v=[l(x.getUTCFullYear()),l(x.getUTCMonth()+1),l(x.getUTCDate()),l(x.getUTCHours()),l(x.getUTCMinutes()),l(x.getUTCSeconds()),"Z"].join(""):d==="utctime"?v=[l(x.getUTCFullYear()%100),l(x.getUTCMonth()+1),l(x.getUTCDate()),l(x.getUTCHours()),l(x.getUTCMinutes()),l(x.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+d+" time is not supported yet"),this._encodeStr(v,"octstr")},f.prototype._encodeNull=function(){return this._createEncoderBuffer("")},f.prototype._encodeInt=function(m,d){if(typeof m=="string"){if(!d)return this.reporter.error("String int or enum given, but no values map");if(!d.hasOwnProperty(m))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(m));m=d[m]}if(typeof m!="number"&&!o.isBuffer(m)){const g=m.toArray();!m.sign&&g[0]&128&&g.unshift(0),m=o.from(g)}if(o.isBuffer(m)){let g=m.length;m.length===0&&g++;const b=o.alloc(g);return m.copy(b),m.length===0&&(b[0]=0),this._createEncoderBuffer(b)}if(m<128)return this._createEncoderBuffer(m);if(m<256)return this._createEncoderBuffer([0,m]);let v=1;for(let g=m;g>=256;g>>=8)v++;const x=new Array(v);for(let g=x.length-1;g>=0;g--)x[g]=m&255,m>>=8;return x[0]&128&&x.unshift(0),this._createEncoderBuffer(o.from(x))},f.prototype._encodeBool=function(m){return this._createEncoderBuffer(m?255:0)},f.prototype._use=function(m,d){return typeof m=="function"&&(m=m(d)),m._getEncoder("der").tree},f.prototype._skipDefault=function(m,d,v){const x=this._baseState;let g;if(x.default===null)return!1;const b=m.join();if(x.defaultBuffer===void 0&&(x.defaultBuffer=this._encodeValue(x.default,d,v).join()),b.length!==x.defaultBuffer.length)return!1;for(g=0;g=31?v.error("Multi-octet tag encoding unsupported"):(m||(x|=32),x|=c.tagClassByName[d||"universal"]<<6,x)}},{"../base/node":174,"../constants/der":176,inherits:440,"safer-buffer":495}],182:[function(e,n,i){const s=i;s.der=e("./der"),s.pem=e("./pem")},{"./der":181,"./pem":183}],183:[function(e,n,i){const s=e("inherits"),o=e("./der");function h(c){o.call(this,c),this.enc="pem"}s(h,o),n.exports=h,h.prototype.encode=function(a,f){const u=o.prototype.encode.call(this,a).toString("base64"),p=["-----BEGIN "+f.label+"-----"];for(let m=0;m0?R:F},a.min=function(R,F){return R.cmp(F)<0?R:F},a.prototype._init=function(R,F,_){if(typeof R=="number")return this._initNumber(R,F,_);if(typeof R=="object")return this._initArray(R,F,_);F==="hex"&&(F=16),h(F===(F|0)&&F>=2&&F<=36),R=R.toString().replace(/\s+/g,"");var k=0;R[0]==="-"&&(k++,this.negative=1),k=0;k-=3)P=R[k]|R[k-1]<<8|R[k-2]<<16,this.words[N]|=P<>>26-D&67108863,D+=24,D>=26&&(D-=26,N++);else if(_==="le")for(k=0,N=0;k>>26-D&67108863,D+=24,D>=26&&(D-=26,N++);return this.strip()};function l(L,R){var F=L.charCodeAt(R);return F>=65&&F<=70?F-55:F>=97&&F<=102?F-87:F-48&15}function u(L,R,F){var _=l(L,F);return F-1>=R&&(_|=l(L,F-1)<<4),_}a.prototype._parseHex=function(R,F,_){this.length=Math.ceil((R.length-F)/6),this.words=new Array(this.length);for(var k=0;k=F;k-=2)D=u(R,F,k)<=18?(N-=18,P+=1,this.words[P]|=D>>>26):N+=8;else{var A=R.length-F;for(k=A%2===0?F+1:F;k=18?(N-=18,P+=1,this.words[P]|=D>>>26):N+=8}this.strip()};function p(L,R,F,_){for(var k=0,N=Math.min(L.length,F),P=R;P=49?k+=D-49+10:D>=17?k+=D-17+10:k+=D}return k}a.prototype._parseBase=function(R,F,_){this.words=[0],this.length=1;for(var k=0,N=1;N<=67108863;N*=F)k++;k--,N=N/F|0;for(var P=R.length-_,D=P%k,A=Math.min(P,P-D)+_,S=0,E=_;E1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},a.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?""};var m=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],d=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];a.prototype.toString=function(R,F){R=R||10,F=F|0||1;var _;if(R===16||R==="hex"){_="";for(var k=0,N=0,P=0;P>>24-k&16777215,N!==0||P!==this.length-1?_=m[6-A.length]+A+_:_=A+_,k+=2,k>=26&&(k-=26,P--)}for(N!==0&&(_=N.toString(16)+_);_.length%F!==0;)_="0"+_;return this.negative!==0&&(_="-"+_),_}if(R===(R|0)&&R>=2&&R<=36){var S=d[R],E=v[R];_="";var O=this.clone();for(O.negative=0;!O.isZero();){var z=O.modn(E).toString(R);O=O.idivn(E),O.isZero()?_=z+_:_=m[S-z.length]+z+_}for(this.isZero()&&(_="0"+_);_.length%F!==0;)_="0"+_;return this.negative!==0&&(_="-"+_),_}h(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var R=this.words[0];return this.length===2?R+=this.words[1]*67108864:this.length===3&&this.words[2]===1?R+=4503599627370496+this.words[1]*67108864:this.length>2&&h(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-R:R},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(R,F){return h(typeof f<"u"),this.toArrayLike(f,R,F)},a.prototype.toArray=function(R,F){return this.toArrayLike(Array,R,F)},a.prototype.toArrayLike=function(R,F,_){var k=this.byteLength(),N=_||Math.max(1,k);h(k<=N,"byte array longer than desired length"),h(N>0,"Requested array length <= 0"),this.strip();var P=F==="le",D=new R(N),A,S,E=this.clone();if(P){for(S=0;!E.isZero();S++)A=E.andln(255),E.iushrn(8),D[S]=A;for(;S=4096&&(_+=13,F>>>=13),F>=64&&(_+=7,F>>>=7),F>=8&&(_+=4,F>>>=4),F>=2&&(_+=2,F>>>=2),_+F},a.prototype._zeroBits=function(R){if(R===0)return 26;var F=R,_=0;return F&8191||(_+=13,F>>>=13),F&127||(_+=7,F>>>=7),F&15||(_+=4,F>>>=4),F&3||(_+=2,F>>>=2),F&1||_++,_},a.prototype.bitLength=function(){var R=this.words[this.length-1],F=this._countBits(R);return(this.length-1)*26+F};function x(L){for(var R=new Array(L.bitLength()),F=0;F>>k}return R}a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var R=0,F=0;FR.length?this.clone().ior(R):R.clone().ior(this)},a.prototype.uor=function(R){return this.length>R.length?this.clone().iuor(R):R.clone().iuor(this)},a.prototype.iuand=function(R){var F;this.length>R.length?F=R:F=this;for(var _=0;_R.length?this.clone().iand(R):R.clone().iand(this)},a.prototype.uand=function(R){return this.length>R.length?this.clone().iuand(R):R.clone().iuand(this)},a.prototype.iuxor=function(R){var F,_;this.length>R.length?(F=this,_=R):(F=R,_=this);for(var k=0;k<_.length;k++)this.words[k]=F.words[k]^_.words[k];if(this!==F)for(;kR.length?this.clone().ixor(R):R.clone().ixor(this)},a.prototype.uxor=function(R){return this.length>R.length?this.clone().iuxor(R):R.clone().iuxor(this)},a.prototype.inotn=function(R){h(typeof R=="number"&&R>=0);var F=Math.ceil(R/26)|0,_=R%26;this._expand(F),_>0&&F--;for(var k=0;k0&&(this.words[k]=~this.words[k]&67108863>>26-_),this.strip()},a.prototype.notn=function(R){return this.clone().inotn(R)},a.prototype.setn=function(R,F){h(typeof R=="number"&&R>=0);var _=R/26|0,k=R%26;return this._expand(_+1),F?this.words[_]=this.words[_]|1<R.length?(_=this,k=R):(_=R,k=this);for(var N=0,P=0;P>>26;for(;N!==0&&P<_.length;P++)F=(_.words[P]|0)+N,this.words[P]=F&67108863,N=F>>>26;if(this.length=_.length,N!==0)this.words[this.length]=N,this.length++;else if(_!==this)for(;P<_.length;P++)this.words[P]=_.words[P];return this},a.prototype.add=function(R){var F;return R.negative!==0&&this.negative===0?(R.negative=0,F=this.sub(R),R.negative^=1,F):R.negative===0&&this.negative!==0?(this.negative=0,F=R.sub(this),this.negative=1,F):this.length>R.length?this.clone().iadd(R):R.clone().iadd(this)},a.prototype.isub=function(R){if(R.negative!==0){R.negative=0;var F=this.iadd(R);return R.negative=1,F._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(R),this.negative=1,this._normSign();var _=this.cmp(R);if(_===0)return this.negative=0,this.length=1,this.words[0]=0,this;var k,N;_>0?(k=this,N=R):(k=R,N=this);for(var P=0,D=0;D>26,this.words[D]=F&67108863;for(;P!==0&&D>26,this.words[D]=F&67108863;if(P===0&&D>>26,O=A&67108863,z=Math.min(S,R.length-1),J=Math.max(0,S-L.length+1);J<=z;J++){var re=S-J|0;k=L.words[re]|0,N=R.words[J]|0,P=k*N+O,E+=P/67108864|0,O=P&67108863}F.words[S]=O|0,A=E|0}return A!==0?F.words[S]=A|0:F.length--,F.strip()}var b=function(R,F,_){var k=R.words,N=F.words,P=_.words,D=0,A,S,E,O=k[0]|0,z=O&8191,J=O>>>13,re=k[1]|0,se=re&8191,Ce=re>>>13,Y=k[2]|0,q=Y&8191,K=Y>>>13,Q=k[3]|0,he=Q&8191,we=Q>>>13,ae=k[4]|0,te=ae&8191,Z=ae>>>13,W=k[5]|0,V=W&8191,fe=W>>>13,ye=k[6]|0,X=ye&8191,ve=ye>>>13,ke=k[7]|0,ee=ke&8191,ne=ke>>>13,de=k[8]|0,_e=de&8191,Re=de>>>13,Ae=k[9]|0,Ne=Ae&8191,Xe=Ae>>>13,Le=N[0]|0,xe=Le&8191,Me=Le>>>13,Be=N[1]|0,Ve=Be&8191,ot=Be>>>13,ct=N[2]|0,rt=ct&8191,nt=ct>>>13,mt=N[3]|0,et=mt&8191,tt=mt>>>13,vt=N[4]|0,ft=vt&8191,kt=vt>>>13,Tt=N[5]|0,lt=Tt&8191,Ct=Tt>>>13,Mt=N[6]|0,gt=Mt&8191,ie=Mt>>>13,ge=N[7]|0,le=ge&8191,ue=ge>>>13,pe=N[8]|0,me=pe&8191,Ie=pe>>>13,je=N[9]|0,Fe=je&8191,Pe=je>>>13;_.negative=R.negative^F.negative,_.length=19,A=Math.imul(z,xe),S=Math.imul(z,Me),S=S+Math.imul(J,xe)|0,E=Math.imul(J,Me);var Oe=(D+A|0)+((S&8191)<<13)|0;D=(E+(S>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,A=Math.imul(se,xe),S=Math.imul(se,Me),S=S+Math.imul(Ce,xe)|0,E=Math.imul(Ce,Me),A=A+Math.imul(z,Ve)|0,S=S+Math.imul(z,ot)|0,S=S+Math.imul(J,Ve)|0,E=E+Math.imul(J,ot)|0;var $e=(D+A|0)+((S&8191)<<13)|0;D=(E+(S>>>13)|0)+($e>>>26)|0,$e&=67108863,A=Math.imul(q,xe),S=Math.imul(q,Me),S=S+Math.imul(K,xe)|0,E=Math.imul(K,Me),A=A+Math.imul(se,Ve)|0,S=S+Math.imul(se,ot)|0,S=S+Math.imul(Ce,Ve)|0,E=E+Math.imul(Ce,ot)|0,A=A+Math.imul(z,rt)|0,S=S+Math.imul(z,nt)|0,S=S+Math.imul(J,rt)|0,E=E+Math.imul(J,nt)|0;var ce=(D+A|0)+((S&8191)<<13)|0;D=(E+(S>>>13)|0)+(ce>>>26)|0,ce&=67108863,A=Math.imul(he,xe),S=Math.imul(he,Me),S=S+Math.imul(we,xe)|0,E=Math.imul(we,Me),A=A+Math.imul(q,Ve)|0,S=S+Math.imul(q,ot)|0,S=S+Math.imul(K,Ve)|0,E=E+Math.imul(K,ot)|0,A=A+Math.imul(se,rt)|0,S=S+Math.imul(se,nt)|0,S=S+Math.imul(Ce,rt)|0,E=E+Math.imul(Ce,nt)|0,A=A+Math.imul(z,et)|0,S=S+Math.imul(z,tt)|0,S=S+Math.imul(J,et)|0,E=E+Math.imul(J,tt)|0;var Te=(D+A|0)+((S&8191)<<13)|0;D=(E+(S>>>13)|0)+(Te>>>26)|0,Te&=67108863,A=Math.imul(te,xe),S=Math.imul(te,Me),S=S+Math.imul(Z,xe)|0,E=Math.imul(Z,Me),A=A+Math.imul(he,Ve)|0,S=S+Math.imul(he,ot)|0,S=S+Math.imul(we,Ve)|0,E=E+Math.imul(we,ot)|0,A=A+Math.imul(q,rt)|0,S=S+Math.imul(q,nt)|0,S=S+Math.imul(K,rt)|0,E=E+Math.imul(K,nt)|0,A=A+Math.imul(se,et)|0,S=S+Math.imul(se,tt)|0,S=S+Math.imul(Ce,et)|0,E=E+Math.imul(Ce,tt)|0,A=A+Math.imul(z,ft)|0,S=S+Math.imul(z,kt)|0,S=S+Math.imul(J,ft)|0,E=E+Math.imul(J,kt)|0;var Ee=(D+A|0)+((S&8191)<<13)|0;D=(E+(S>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,A=Math.imul(V,xe),S=Math.imul(V,Me),S=S+Math.imul(fe,xe)|0,E=Math.imul(fe,Me),A=A+Math.imul(te,Ve)|0,S=S+Math.imul(te,ot)|0,S=S+Math.imul(Z,Ve)|0,E=E+Math.imul(Z,ot)|0,A=A+Math.imul(he,rt)|0,S=S+Math.imul(he,nt)|0,S=S+Math.imul(we,rt)|0,E=E+Math.imul(we,nt)|0,A=A+Math.imul(q,et)|0,S=S+Math.imul(q,tt)|0,S=S+Math.imul(K,et)|0,E=E+Math.imul(K,tt)|0,A=A+Math.imul(se,ft)|0,S=S+Math.imul(se,kt)|0,S=S+Math.imul(Ce,ft)|0,E=E+Math.imul(Ce,kt)|0,A=A+Math.imul(z,lt)|0,S=S+Math.imul(z,Ct)|0,S=S+Math.imul(J,lt)|0,E=E+Math.imul(J,Ct)|0;var Ue=(D+A|0)+((S&8191)<<13)|0;D=(E+(S>>>13)|0)+(Ue>>>26)|0,Ue&=67108863,A=Math.imul(X,xe),S=Math.imul(X,Me),S=S+Math.imul(ve,xe)|0,E=Math.imul(ve,Me),A=A+Math.imul(V,Ve)|0,S=S+Math.imul(V,ot)|0,S=S+Math.imul(fe,Ve)|0,E=E+Math.imul(fe,ot)|0,A=A+Math.imul(te,rt)|0,S=S+Math.imul(te,nt)|0,S=S+Math.imul(Z,rt)|0,E=E+Math.imul(Z,nt)|0,A=A+Math.imul(he,et)|0,S=S+Math.imul(he,tt)|0,S=S+Math.imul(we,et)|0,E=E+Math.imul(we,tt)|0,A=A+Math.imul(q,ft)|0,S=S+Math.imul(q,kt)|0,S=S+Math.imul(K,ft)|0,E=E+Math.imul(K,kt)|0,A=A+Math.imul(se,lt)|0,S=S+Math.imul(se,Ct)|0,S=S+Math.imul(Ce,lt)|0,E=E+Math.imul(Ce,Ct)|0,A=A+Math.imul(z,gt)|0,S=S+Math.imul(z,ie)|0,S=S+Math.imul(J,gt)|0,E=E+Math.imul(J,ie)|0;var Ke=(D+A|0)+((S&8191)<<13)|0;D=(E+(S>>>13)|0)+(Ke>>>26)|0,Ke&=67108863,A=Math.imul(ee,xe),S=Math.imul(ee,Me),S=S+Math.imul(ne,xe)|0,E=Math.imul(ne,Me),A=A+Math.imul(X,Ve)|0,S=S+Math.imul(X,ot)|0,S=S+Math.imul(ve,Ve)|0,E=E+Math.imul(ve,ot)|0,A=A+Math.imul(V,rt)|0,S=S+Math.imul(V,nt)|0,S=S+Math.imul(fe,rt)|0,E=E+Math.imul(fe,nt)|0,A=A+Math.imul(te,et)|0,S=S+Math.imul(te,tt)|0,S=S+Math.imul(Z,et)|0,E=E+Math.imul(Z,tt)|0,A=A+Math.imul(he,ft)|0,S=S+Math.imul(he,kt)|0,S=S+Math.imul(we,ft)|0,E=E+Math.imul(we,kt)|0,A=A+Math.imul(q,lt)|0,S=S+Math.imul(q,Ct)|0,S=S+Math.imul(K,lt)|0,E=E+Math.imul(K,Ct)|0,A=A+Math.imul(se,gt)|0,S=S+Math.imul(se,ie)|0,S=S+Math.imul(Ce,gt)|0,E=E+Math.imul(Ce,ie)|0,A=A+Math.imul(z,le)|0,S=S+Math.imul(z,ue)|0,S=S+Math.imul(J,le)|0,E=E+Math.imul(J,ue)|0;var at=(D+A|0)+((S&8191)<<13)|0;D=(E+(S>>>13)|0)+(at>>>26)|0,at&=67108863,A=Math.imul(_e,xe),S=Math.imul(_e,Me),S=S+Math.imul(Re,xe)|0,E=Math.imul(Re,Me),A=A+Math.imul(ee,Ve)|0,S=S+Math.imul(ee,ot)|0,S=S+Math.imul(ne,Ve)|0,E=E+Math.imul(ne,ot)|0,A=A+Math.imul(X,rt)|0,S=S+Math.imul(X,nt)|0,S=S+Math.imul(ve,rt)|0,E=E+Math.imul(ve,nt)|0,A=A+Math.imul(V,et)|0,S=S+Math.imul(V,tt)|0,S=S+Math.imul(fe,et)|0,E=E+Math.imul(fe,tt)|0,A=A+Math.imul(te,ft)|0,S=S+Math.imul(te,kt)|0,S=S+Math.imul(Z,ft)|0,E=E+Math.imul(Z,kt)|0,A=A+Math.imul(he,lt)|0,S=S+Math.imul(he,Ct)|0,S=S+Math.imul(we,lt)|0,E=E+Math.imul(we,Ct)|0,A=A+Math.imul(q,gt)|0,S=S+Math.imul(q,ie)|0,S=S+Math.imul(K,gt)|0,E=E+Math.imul(K,ie)|0,A=A+Math.imul(se,le)|0,S=S+Math.imul(se,ue)|0,S=S+Math.imul(Ce,le)|0,E=E+Math.imul(Ce,ue)|0,A=A+Math.imul(z,me)|0,S=S+Math.imul(z,Ie)|0,S=S+Math.imul(J,me)|0,E=E+Math.imul(J,Ie)|0;var dt=(D+A|0)+((S&8191)<<13)|0;D=(E+(S>>>13)|0)+(dt>>>26)|0,dt&=67108863,A=Math.imul(Ne,xe),S=Math.imul(Ne,Me),S=S+Math.imul(Xe,xe)|0,E=Math.imul(Xe,Me),A=A+Math.imul(_e,Ve)|0,S=S+Math.imul(_e,ot)|0,S=S+Math.imul(Re,Ve)|0,E=E+Math.imul(Re,ot)|0,A=A+Math.imul(ee,rt)|0,S=S+Math.imul(ee,nt)|0,S=S+Math.imul(ne,rt)|0,E=E+Math.imul(ne,nt)|0,A=A+Math.imul(X,et)|0,S=S+Math.imul(X,tt)|0,S=S+Math.imul(ve,et)|0,E=E+Math.imul(ve,tt)|0,A=A+Math.imul(V,ft)|0,S=S+Math.imul(V,kt)|0,S=S+Math.imul(fe,ft)|0,E=E+Math.imul(fe,kt)|0,A=A+Math.imul(te,lt)|0,S=S+Math.imul(te,Ct)|0,S=S+Math.imul(Z,lt)|0,E=E+Math.imul(Z,Ct)|0,A=A+Math.imul(he,gt)|0,S=S+Math.imul(he,ie)|0,S=S+Math.imul(we,gt)|0,E=E+Math.imul(we,ie)|0,A=A+Math.imul(q,le)|0,S=S+Math.imul(q,ue)|0,S=S+Math.imul(K,le)|0,E=E+Math.imul(K,ue)|0,A=A+Math.imul(se,me)|0,S=S+Math.imul(se,Ie)|0,S=S+Math.imul(Ce,me)|0,E=E+Math.imul(Ce,Ie)|0,A=A+Math.imul(z,Fe)|0,S=S+Math.imul(z,Pe)|0,S=S+Math.imul(J,Fe)|0,E=E+Math.imul(J,Pe)|0;var Nt=(D+A|0)+((S&8191)<<13)|0;D=(E+(S>>>13)|0)+(Nt>>>26)|0,Nt&=67108863,A=Math.imul(Ne,Ve),S=Math.imul(Ne,ot),S=S+Math.imul(Xe,Ve)|0,E=Math.imul(Xe,ot),A=A+Math.imul(_e,rt)|0,S=S+Math.imul(_e,nt)|0,S=S+Math.imul(Re,rt)|0,E=E+Math.imul(Re,nt)|0,A=A+Math.imul(ee,et)|0,S=S+Math.imul(ee,tt)|0,S=S+Math.imul(ne,et)|0,E=E+Math.imul(ne,tt)|0,A=A+Math.imul(X,ft)|0,S=S+Math.imul(X,kt)|0,S=S+Math.imul(ve,ft)|0,E=E+Math.imul(ve,kt)|0,A=A+Math.imul(V,lt)|0,S=S+Math.imul(V,Ct)|0,S=S+Math.imul(fe,lt)|0,E=E+Math.imul(fe,Ct)|0,A=A+Math.imul(te,gt)|0,S=S+Math.imul(te,ie)|0,S=S+Math.imul(Z,gt)|0,E=E+Math.imul(Z,ie)|0,A=A+Math.imul(he,le)|0,S=S+Math.imul(he,ue)|0,S=S+Math.imul(we,le)|0,E=E+Math.imul(we,ue)|0,A=A+Math.imul(q,me)|0,S=S+Math.imul(q,Ie)|0,S=S+Math.imul(K,me)|0,E=E+Math.imul(K,Ie)|0,A=A+Math.imul(se,Fe)|0,S=S+Math.imul(se,Pe)|0,S=S+Math.imul(Ce,Fe)|0,E=E+Math.imul(Ce,Pe)|0;var pr=(D+A|0)+((S&8191)<<13)|0;D=(E+(S>>>13)|0)+(pr>>>26)|0,pr&=67108863,A=Math.imul(Ne,rt),S=Math.imul(Ne,nt),S=S+Math.imul(Xe,rt)|0,E=Math.imul(Xe,nt),A=A+Math.imul(_e,et)|0,S=S+Math.imul(_e,tt)|0,S=S+Math.imul(Re,et)|0,E=E+Math.imul(Re,tt)|0,A=A+Math.imul(ee,ft)|0,S=S+Math.imul(ee,kt)|0,S=S+Math.imul(ne,ft)|0,E=E+Math.imul(ne,kt)|0,A=A+Math.imul(X,lt)|0,S=S+Math.imul(X,Ct)|0,S=S+Math.imul(ve,lt)|0,E=E+Math.imul(ve,Ct)|0,A=A+Math.imul(V,gt)|0,S=S+Math.imul(V,ie)|0,S=S+Math.imul(fe,gt)|0,E=E+Math.imul(fe,ie)|0,A=A+Math.imul(te,le)|0,S=S+Math.imul(te,ue)|0,S=S+Math.imul(Z,le)|0,E=E+Math.imul(Z,ue)|0,A=A+Math.imul(he,me)|0,S=S+Math.imul(he,Ie)|0,S=S+Math.imul(we,me)|0,E=E+Math.imul(we,Ie)|0,A=A+Math.imul(q,Fe)|0,S=S+Math.imul(q,Pe)|0,S=S+Math.imul(K,Fe)|0,E=E+Math.imul(K,Pe)|0;var Jt=(D+A|0)+((S&8191)<<13)|0;D=(E+(S>>>13)|0)+(Jt>>>26)|0,Jt&=67108863,A=Math.imul(Ne,et),S=Math.imul(Ne,tt),S=S+Math.imul(Xe,et)|0,E=Math.imul(Xe,tt),A=A+Math.imul(_e,ft)|0,S=S+Math.imul(_e,kt)|0,S=S+Math.imul(Re,ft)|0,E=E+Math.imul(Re,kt)|0,A=A+Math.imul(ee,lt)|0,S=S+Math.imul(ee,Ct)|0,S=S+Math.imul(ne,lt)|0,E=E+Math.imul(ne,Ct)|0,A=A+Math.imul(X,gt)|0,S=S+Math.imul(X,ie)|0,S=S+Math.imul(ve,gt)|0,E=E+Math.imul(ve,ie)|0,A=A+Math.imul(V,le)|0,S=S+Math.imul(V,ue)|0,S=S+Math.imul(fe,le)|0,E=E+Math.imul(fe,ue)|0,A=A+Math.imul(te,me)|0,S=S+Math.imul(te,Ie)|0,S=S+Math.imul(Z,me)|0,E=E+Math.imul(Z,Ie)|0,A=A+Math.imul(he,Fe)|0,S=S+Math.imul(he,Pe)|0,S=S+Math.imul(we,Fe)|0,E=E+Math.imul(we,Pe)|0;var jt=(D+A|0)+((S&8191)<<13)|0;D=(E+(S>>>13)|0)+(jt>>>26)|0,jt&=67108863,A=Math.imul(Ne,ft),S=Math.imul(Ne,kt),S=S+Math.imul(Xe,ft)|0,E=Math.imul(Xe,kt),A=A+Math.imul(_e,lt)|0,S=S+Math.imul(_e,Ct)|0,S=S+Math.imul(Re,lt)|0,E=E+Math.imul(Re,Ct)|0,A=A+Math.imul(ee,gt)|0,S=S+Math.imul(ee,ie)|0,S=S+Math.imul(ne,gt)|0,E=E+Math.imul(ne,ie)|0,A=A+Math.imul(X,le)|0,S=S+Math.imul(X,ue)|0,S=S+Math.imul(ve,le)|0,E=E+Math.imul(ve,ue)|0,A=A+Math.imul(V,me)|0,S=S+Math.imul(V,Ie)|0,S=S+Math.imul(fe,me)|0,E=E+Math.imul(fe,Ie)|0,A=A+Math.imul(te,Fe)|0,S=S+Math.imul(te,Pe)|0,S=S+Math.imul(Z,Fe)|0,E=E+Math.imul(Z,Pe)|0;var mr=(D+A|0)+((S&8191)<<13)|0;D=(E+(S>>>13)|0)+(mr>>>26)|0,mr&=67108863,A=Math.imul(Ne,lt),S=Math.imul(Ne,Ct),S=S+Math.imul(Xe,lt)|0,E=Math.imul(Xe,Ct),A=A+Math.imul(_e,gt)|0,S=S+Math.imul(_e,ie)|0,S=S+Math.imul(Re,gt)|0,E=E+Math.imul(Re,ie)|0,A=A+Math.imul(ee,le)|0,S=S+Math.imul(ee,ue)|0,S=S+Math.imul(ne,le)|0,E=E+Math.imul(ne,ue)|0,A=A+Math.imul(X,me)|0,S=S+Math.imul(X,Ie)|0,S=S+Math.imul(ve,me)|0,E=E+Math.imul(ve,Ie)|0,A=A+Math.imul(V,Fe)|0,S=S+Math.imul(V,Pe)|0,S=S+Math.imul(fe,Fe)|0,E=E+Math.imul(fe,Pe)|0;var Ur=(D+A|0)+((S&8191)<<13)|0;D=(E+(S>>>13)|0)+(Ur>>>26)|0,Ur&=67108863,A=Math.imul(Ne,gt),S=Math.imul(Ne,ie),S=S+Math.imul(Xe,gt)|0,E=Math.imul(Xe,ie),A=A+Math.imul(_e,le)|0,S=S+Math.imul(_e,ue)|0,S=S+Math.imul(Re,le)|0,E=E+Math.imul(Re,ue)|0,A=A+Math.imul(ee,me)|0,S=S+Math.imul(ee,Ie)|0,S=S+Math.imul(ne,me)|0,E=E+Math.imul(ne,Ie)|0,A=A+Math.imul(X,Fe)|0,S=S+Math.imul(X,Pe)|0,S=S+Math.imul(ve,Fe)|0,E=E+Math.imul(ve,Pe)|0;var Ot=(D+A|0)+((S&8191)<<13)|0;D=(E+(S>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,A=Math.imul(Ne,le),S=Math.imul(Ne,ue),S=S+Math.imul(Xe,le)|0,E=Math.imul(Xe,ue),A=A+Math.imul(_e,me)|0,S=S+Math.imul(_e,Ie)|0,S=S+Math.imul(Re,me)|0,E=E+Math.imul(Re,Ie)|0,A=A+Math.imul(ee,Fe)|0,S=S+Math.imul(ee,Pe)|0,S=S+Math.imul(ne,Fe)|0,E=E+Math.imul(ne,Pe)|0;var vn=(D+A|0)+((S&8191)<<13)|0;D=(E+(S>>>13)|0)+(vn>>>26)|0,vn&=67108863,A=Math.imul(Ne,me),S=Math.imul(Ne,Ie),S=S+Math.imul(Xe,me)|0,E=Math.imul(Xe,Ie),A=A+Math.imul(_e,Fe)|0,S=S+Math.imul(_e,Pe)|0,S=S+Math.imul(Re,Fe)|0,E=E+Math.imul(Re,Pe)|0;var xn=(D+A|0)+((S&8191)<<13)|0;D=(E+(S>>>13)|0)+(xn>>>26)|0,xn&=67108863,A=Math.imul(Ne,Fe),S=Math.imul(Ne,Pe),S=S+Math.imul(Xe,Fe)|0,E=Math.imul(Xe,Pe);var bn=(D+A|0)+((S&8191)<<13)|0;return D=(E+(S>>>13)|0)+(bn>>>26)|0,bn&=67108863,P[0]=Oe,P[1]=$e,P[2]=ce,P[3]=Te,P[4]=Ee,P[5]=Ue,P[6]=Ke,P[7]=at,P[8]=dt,P[9]=Nt,P[10]=pr,P[11]=Jt,P[12]=jt,P[13]=mr,P[14]=Ur,P[15]=Ot,P[16]=vn,P[17]=xn,P[18]=bn,D!==0&&(P[19]=D,_.length++),_};Math.imul||(b=g);function w(L,R,F){F.negative=R.negative^L.negative,F.length=L.length+R.length;for(var _=0,k=0,N=0;N>>26)|0,k+=P>>>26,P&=67108863}F.words[N]=D,_=P,P=k}return _!==0?F.words[N]=_:F.length--,F.strip()}function y(L,R,F){var _=new T;return _.mulp(L,R,F)}a.prototype.mulTo=function(R,F){var _,k=this.length+R.length;return this.length===10&&R.length===10?_=b(this,R,F):k<63?_=g(this,R,F):k<1024?_=w(this,R,F):_=y(this,R,F),_};function T(L,R){this.x=L,this.y=R}T.prototype.makeRBT=function(R){for(var F=new Array(R),_=a.prototype._countBits(R)-1,k=0;k>=1;return k},T.prototype.permute=function(R,F,_,k,N,P){for(var D=0;D>>1)N++;return 1<>>13,_[2*P+1]=N&8191,N=N>>>13;for(P=2*F;P>=26,F+=k/67108864|0,F+=N>>>26,this.words[_]=N&67108863}return F!==0&&(this.words[_]=F,this.length++),this},a.prototype.muln=function(R){return this.clone().imuln(R)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(R){var F=x(R);if(F.length===0)return new a(1);for(var _=this,k=0;k=0);var F=R%26,_=(R-F)/26,k=67108863>>>26-F<<26-F,N;if(F!==0){var P=0;for(N=0;N>>26-F}P&&(this.words[N]=P,this.length++)}if(_!==0){for(N=this.length-1;N>=0;N--)this.words[N+_]=this.words[N];for(N=0;N<_;N++)this.words[N]=0;this.length+=_}return this.strip()},a.prototype.ishln=function(R){return h(this.negative===0),this.iushln(R)},a.prototype.iushrn=function(R,F,_){h(typeof R=="number"&&R>=0);var k;F?k=(F-F%26)/26:k=0;var N=R%26,P=Math.min((R-N)/26,this.length),D=67108863^67108863>>>N<P)for(this.length-=P,S=0;S=0&&(E!==0||S>=k);S--){var O=this.words[S]|0;this.words[S]=E<<26-N|O>>>N,E=O&D}return A&&E!==0&&(A.words[A.length++]=E),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(R,F,_){return h(this.negative===0),this.iushrn(R,F,_)},a.prototype.shln=function(R){return this.clone().ishln(R)},a.prototype.ushln=function(R){return this.clone().iushln(R)},a.prototype.shrn=function(R){return this.clone().ishrn(R)},a.prototype.ushrn=function(R){return this.clone().iushrn(R)},a.prototype.testn=function(R){h(typeof R=="number"&&R>=0);var F=R%26,_=(R-F)/26,k=1<=0);var F=R%26,_=(R-F)/26;if(h(this.negative===0,"imaskn works only with positive numbers"),this.length<=_)return this;if(F!==0&&_++,this.length=Math.min(_,this.length),F!==0){var k=67108863^67108863>>>F<=67108864;F++)this.words[F]-=67108864,F===this.length-1?this.words[F+1]=1:this.words[F+1]++;return this.length=Math.max(this.length,F+1),this},a.prototype.isubn=function(R){if(h(typeof R=="number"),h(R<67108864),R<0)return this.iaddn(-R);if(this.negative!==0)return this.negative=0,this.iaddn(R),this.negative=1,this;if(this.words[0]-=R,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var F=0;F>26)-(A/67108864|0),this.words[N+_]=P&67108863}for(;N>26,this.words[N+_]=P&67108863;if(D===0)return this.strip();for(h(D===-1),D=0,N=0;N>26,this.words[N]=P&67108863;return this.negative=1,this.strip()},a.prototype._wordDiv=function(R,F){var _=this.length-R.length,k=this.clone(),N=R,P=N.words[N.length-1]|0,D=this._countBits(P);_=26-D,_!==0&&(N=N.ushln(_),k.iushln(_),P=N.words[N.length-1]|0);var A=k.length-N.length,S;if(F!=="mod"){S=new a(null),S.length=A+1,S.words=new Array(S.length);for(var E=0;E=0;z--){var J=(k.words[N.length+z]|0)*67108864+(k.words[N.length+z-1]|0);for(J=Math.min(J/P|0,67108863),k._ishlnsubmul(N,J,z);k.negative!==0;)J--,k.negative=0,k._ishlnsubmul(N,1,z),k.isZero()||(k.negative^=1);S&&(S.words[z]=J)}return S&&S.strip(),k.strip(),F!=="div"&&_!==0&&k.iushrn(_),{div:S||null,mod:k}},a.prototype.divmod=function(R,F,_){if(h(!R.isZero()),this.isZero())return{div:new a(0),mod:new a(0)};var k,N,P;return this.negative!==0&&R.negative===0?(P=this.neg().divmod(R,F),F!=="mod"&&(k=P.div.neg()),F!=="div"&&(N=P.mod.neg(),_&&N.negative!==0&&N.iadd(R)),{div:k,mod:N}):this.negative===0&&R.negative!==0?(P=this.divmod(R.neg(),F),F!=="mod"&&(k=P.div.neg()),{div:k,mod:P.mod}):this.negative&R.negative?(P=this.neg().divmod(R.neg(),F),F!=="div"&&(N=P.mod.neg(),_&&N.negative!==0&&N.isub(R)),{div:P.div,mod:N}):R.length>this.length||this.cmp(R)<0?{div:new a(0),mod:this}:R.length===1?F==="div"?{div:this.divn(R.words[0]),mod:null}:F==="mod"?{div:null,mod:new a(this.modn(R.words[0]))}:{div:this.divn(R.words[0]),mod:new a(this.modn(R.words[0]))}:this._wordDiv(R,F)},a.prototype.div=function(R){return this.divmod(R,"div",!1).div},a.prototype.mod=function(R){return this.divmod(R,"mod",!1).mod},a.prototype.umod=function(R){return this.divmod(R,"mod",!0).mod},a.prototype.divRound=function(R){var F=this.divmod(R);if(F.mod.isZero())return F.div;var _=F.div.negative!==0?F.mod.isub(R):F.mod,k=R.ushrn(1),N=R.andln(1),P=_.cmp(k);return P<0||N===1&&P===0?F.div:F.div.negative!==0?F.div.isubn(1):F.div.iaddn(1)},a.prototype.modn=function(R){h(R<=67108863);for(var F=(1<<26)%R,_=0,k=this.length-1;k>=0;k--)_=(F*_+(this.words[k]|0))%R;return _},a.prototype.idivn=function(R){h(R<=67108863);for(var F=0,_=this.length-1;_>=0;_--){var k=(this.words[_]|0)+F*67108864;this.words[_]=k/R|0,F=k%R}return this.strip()},a.prototype.divn=function(R){return this.clone().idivn(R)},a.prototype.egcd=function(R){h(R.negative===0),h(!R.isZero());var F=this,_=R.clone();F.negative!==0?F=F.umod(R):F=F.clone();for(var k=new a(1),N=new a(0),P=new a(0),D=new a(1),A=0;F.isEven()&&_.isEven();)F.iushrn(1),_.iushrn(1),++A;for(var S=_.clone(),E=F.clone();!F.isZero();){for(var O=0,z=1;!(F.words[0]&z)&&O<26;++O,z<<=1);if(O>0)for(F.iushrn(O);O-- >0;)(k.isOdd()||N.isOdd())&&(k.iadd(S),N.isub(E)),k.iushrn(1),N.iushrn(1);for(var J=0,re=1;!(_.words[0]&re)&&J<26;++J,re<<=1);if(J>0)for(_.iushrn(J);J-- >0;)(P.isOdd()||D.isOdd())&&(P.iadd(S),D.isub(E)),P.iushrn(1),D.iushrn(1);F.cmp(_)>=0?(F.isub(_),k.isub(P),N.isub(D)):(_.isub(F),P.isub(k),D.isub(N))}return{a:P,b:D,gcd:_.iushln(A)}},a.prototype._invmp=function(R){h(R.negative===0),h(!R.isZero());var F=this,_=R.clone();F.negative!==0?F=F.umod(R):F=F.clone();for(var k=new a(1),N=new a(0),P=_.clone();F.cmpn(1)>0&&_.cmpn(1)>0;){for(var D=0,A=1;!(F.words[0]&A)&&D<26;++D,A<<=1);if(D>0)for(F.iushrn(D);D-- >0;)k.isOdd()&&k.iadd(P),k.iushrn(1);for(var S=0,E=1;!(_.words[0]&E)&&S<26;++S,E<<=1);if(S>0)for(_.iushrn(S);S-- >0;)N.isOdd()&&N.iadd(P),N.iushrn(1);F.cmp(_)>=0?(F.isub(_),k.isub(N)):(_.isub(F),N.isub(k))}var O;return F.cmpn(1)===0?O=k:O=N,O.cmpn(0)<0&&O.iadd(R),O},a.prototype.gcd=function(R){if(this.isZero())return R.abs();if(R.isZero())return this.abs();var F=this.clone(),_=R.clone();F.negative=0,_.negative=0;for(var k=0;F.isEven()&&_.isEven();k++)F.iushrn(1),_.iushrn(1);do{for(;F.isEven();)F.iushrn(1);for(;_.isEven();)_.iushrn(1);var N=F.cmp(_);if(N<0){var P=F;F=_,_=P}else if(N===0||_.cmpn(1)===0)break;F.isub(_)}while(!0);return _.iushln(k)},a.prototype.invm=function(R){return this.egcd(R).a.umod(R)},a.prototype.isEven=function(){return(this.words[0]&1)===0},a.prototype.isOdd=function(){return(this.words[0]&1)===1},a.prototype.andln=function(R){return this.words[0]&R},a.prototype.bincn=function(R){h(typeof R=="number");var F=R%26,_=(R-F)/26,k=1<>>26,D&=67108863,this.words[P]=D}return N!==0&&(this.words[P]=N,this.length++),this},a.prototype.isZero=function(){return this.length===1&&this.words[0]===0},a.prototype.cmpn=function(R){var F=R<0;if(this.negative!==0&&!F)return-1;if(this.negative===0&&F)return 1;this.strip();var _;if(this.length>1)_=1;else{F&&(R=-R),h(R<=67108863,"Number is too big");var k=this.words[0]|0;_=k===R?0:kR.length)return 1;if(this.length=0;_--){var k=this.words[_]|0,N=R.words[_]|0;if(k!==N){kN&&(F=1);break}}return F},a.prototype.gtn=function(R){return this.cmpn(R)===1},a.prototype.gt=function(R){return this.cmp(R)===1},a.prototype.gten=function(R){return this.cmpn(R)>=0},a.prototype.gte=function(R){return this.cmp(R)>=0},a.prototype.ltn=function(R){return this.cmpn(R)===-1},a.prototype.lt=function(R){return this.cmp(R)===-1},a.prototype.lten=function(R){return this.cmpn(R)<=0},a.prototype.lte=function(R){return this.cmp(R)<=0},a.prototype.eqn=function(R){return this.cmpn(R)===0},a.prototype.eq=function(R){return this.cmp(R)===0},a.red=function(R){return new H(R)},a.prototype.toRed=function(R){return h(!this.red,"Already a number in reduction context"),h(this.negative===0,"red works only with positives"),R.convertTo(this)._forceRed(R)},a.prototype.fromRed=function(){return h(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(R){return this.red=R,this},a.prototype.forceRed=function(R){return h(!this.red,"Already a number in reduction context"),this._forceRed(R)},a.prototype.redAdd=function(R){return h(this.red,"redAdd works only with red numbers"),this.red.add(this,R)},a.prototype.redIAdd=function(R){return h(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,R)},a.prototype.redSub=function(R){return h(this.red,"redSub works only with red numbers"),this.red.sub(this,R)},a.prototype.redISub=function(R){return h(this.red,"redISub works only with red numbers"),this.red.isub(this,R)},a.prototype.redShl=function(R){return h(this.red,"redShl works only with red numbers"),this.red.shl(this,R)},a.prototype.redMul=function(R){return h(this.red,"redMul works only with red numbers"),this.red._verify2(this,R),this.red.mul(this,R)},a.prototype.redIMul=function(R){return h(this.red,"redMul works only with red numbers"),this.red._verify2(this,R),this.red.imul(this,R)},a.prototype.redSqr=function(){return h(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return h(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return h(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return h(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return h(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(R){return h(this.red&&!R.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,R)};var C={k256:null,p224:null,p192:null,p25519:null};function M(L,R){this.name=L,this.p=new a(R,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}M.prototype._tmp=function(){var R=new a(null);return R.words=new Array(Math.ceil(this.n/13)),R},M.prototype.ireduce=function(R){var F=R,_;do this.split(F,this.tmp),F=this.imulK(F),F=F.iadd(this.tmp),_=F.bitLength();while(_>this.n);var k=_0?F.isub(this.p):F.strip!==void 0?F.strip():F._strip(),F},M.prototype.split=function(R,F){R.iushrn(this.n,0,F)},M.prototype.imulK=function(R){return R.imul(this.k)};function I(){M.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}c(I,M),I.prototype.split=function(R,F){for(var _=4194303,k=Math.min(R.length,9),N=0;N>>22,P=D}P>>>=22,R.words[N-10]=P,P===0&&R.length>10?R.length-=10:R.length-=9},I.prototype.imulK=function(R){R.words[R.length]=0,R.words[R.length+1]=0,R.length+=2;for(var F=0,_=0;_>>=26,R.words[_]=N,F=k}return F!==0&&(R.words[R.length++]=F),R},a._prime=function(R){if(C[R])return C[R];var F;if(R==="k256")F=new I;else if(R==="p224")F=new B;else if(R==="p192")F=new U;else if(R==="p25519")F=new j;else throw new Error("Unknown prime "+R);return C[R]=F,F};function H(L){if(typeof L=="string"){var R=a._prime(L);this.m=R.p,this.prime=R}else h(L.gtn(1),"modulus must be greater than 1"),this.m=L,this.prime=null}H.prototype._verify1=function(R){h(R.negative===0,"red works only with positives"),h(R.red,"red works only with red numbers")},H.prototype._verify2=function(R,F){h((R.negative|F.negative)===0,"red works only with positives"),h(R.red&&R.red===F.red,"red works only with red numbers")},H.prototype.imod=function(R){return this.prime?this.prime.ireduce(R)._forceRed(this):R.umod(this.m)._forceRed(this)},H.prototype.neg=function(R){return R.isZero()?R.clone():this.m.sub(R)._forceRed(this)},H.prototype.add=function(R,F){this._verify2(R,F);var _=R.add(F);return _.cmp(this.m)>=0&&_.isub(this.m),_._forceRed(this)},H.prototype.iadd=function(R,F){this._verify2(R,F);var _=R.iadd(F);return _.cmp(this.m)>=0&&_.isub(this.m),_},H.prototype.sub=function(R,F){this._verify2(R,F);var _=R.sub(F);return _.cmpn(0)<0&&_.iadd(this.m),_._forceRed(this)},H.prototype.isub=function(R,F){this._verify2(R,F);var _=R.isub(F);return _.cmpn(0)<0&&_.iadd(this.m),_},H.prototype.shl=function(R,F){return this._verify1(R),this.imod(R.ushln(F))},H.prototype.imul=function(R,F){return this._verify2(R,F),this.imod(R.imul(F))},H.prototype.mul=function(R,F){return this._verify2(R,F),this.imod(R.mul(F))},H.prototype.isqr=function(R){return this.imul(R,R.clone())},H.prototype.sqr=function(R){return this.mul(R,R)},H.prototype.sqrt=function(R){if(R.isZero())return R.clone();var F=this.m.andln(3);if(h(F%2===1),F===3){var _=this.m.add(new a(1)).iushrn(2);return this.pow(R,_)}for(var k=this.m.subn(1),N=0;!k.isZero()&&k.andln(1)===0;)N++,k.iushrn(1);h(!k.isZero());var P=new a(1).toRed(this),D=P.redNeg(),A=this.m.subn(1).iushrn(1),S=this.m.bitLength();for(S=new a(2*S*S).toRed(this);this.pow(S,A).cmp(D)!==0;)S.redIAdd(D);for(var E=this.pow(S,k),O=this.pow(R,k.addn(1).iushrn(1)),z=this.pow(R,k),J=N;z.cmp(P)!==0;){for(var re=z,se=0;re.cmp(P)!==0;se++)re=re.redSqr();h(se=0;N--){for(var E=F.words[N],O=S-1;O>=0;O--){var z=E>>O&1;if(P!==k[0]&&(P=this.sqr(P)),z===0&&D===0){A=0;continue}D<<=1,D|=z,A++,!(A!==_&&(N!==0||O!==0))&&(P=this.mul(P,k[D]),A=0,D=0)}S=26}return P},H.prototype.convertTo=function(R){var F=R.umod(this.m);return F===R?F.clone():F},H.prototype.convertFrom=function(R){var F=R.clone();return F.red=null,F},a.mont=function(R){return new G(R)};function G(L){H.call(this,L),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}c(G,H),G.prototype.convertTo=function(R){return this.imod(R.ushln(this.shift))},G.prototype.convertFrom=function(R){var F=this.imod(R.mul(this.rinv));return F.red=null,F},G.prototype.imul=function(R,F){if(R.isZero()||F.isZero())return R.words[0]=0,R.length=1,R;var _=R.imul(F),k=_.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=_.isub(k).iushrn(this.shift),P=N;return N.cmp(this.m)>=0?P=N.isub(this.m):N.cmpn(0)<0&&(P=N.iadd(this.m)),P._forceRed(this)},G.prototype.mul=function(R,F){if(R.isZero()||F.isZero())return new a(0)._forceRed(this);var _=R.mul(F),k=_.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=_.isub(k).iushrn(this.shift),P=N;return N.cmp(this.m)>=0?P=N.isub(this.m):N.cmpn(0)<0&&(P=N.iadd(this.m)),P._forceRed(this)},G.prototype.invm=function(R){var F=this.imod(R._invmp(this.m).mul(this.r2));return F._forceRed(this)}})(typeof n>"u"||n,void 0)},{buffer:188}],185:[function(e,n,i){i.byteLength=u,i.toByteArray=m,i.fromByteArray=x;for(var s=[],o=[],h=typeof Uint8Array<"u"?Uint8Array:Array,c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,f=c.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var w=g.indexOf("=");w===-1&&(w=b);var y=w===b?0:4-w%4;return[w,y]}function u(g){var b=l(g),w=b[0],y=b[1];return(w+y)*3/4-y}function p(g,b,w){return(b+w)*3/4-w}function m(g){var b,w=l(g),y=w[0],T=w[1],C=new h(p(g,y,T)),M=0,I=T>0?y-4:y,B;for(B=0;B>16&255,C[M++]=b>>8&255,C[M++]=b&255;return T===2&&(b=o[g.charCodeAt(B)]<<2|o[g.charCodeAt(B+1)]>>4,C[M++]=b&255),T===1&&(b=o[g.charCodeAt(B)]<<10|o[g.charCodeAt(B+1)]<<4|o[g.charCodeAt(B+2)]>>2,C[M++]=b>>8&255,C[M++]=b&255),C}function d(g){return s[g>>18&63]+s[g>>12&63]+s[g>>6&63]+s[g&63]}function v(g,b,w){for(var y,T=[],C=b;CI?I:M+C));return y===1?(b=g[w-1],T.push(s[b>>2]+s[b<<4&63]+"==")):y===2&&(b=(g[w-2]<<8)+g[w-1],T.push(s[b>>10]+s[b>>4&63]+s[b<<2&63]+"=")),T.join("")}},{}],186:[function(e,n,i){(function(s,o){function h(F,_){if(!F)throw new Error(_||"Assertion failed")}function c(F,_){F.super_=_;var k=function(){};k.prototype=_.prototype,F.prototype=new k,F.prototype.constructor=F}function a(F,_,k){if(a.isBN(F))return F;this.negative=0,this.words=null,this.length=0,this.red=null,F!==null&&((_==="le"||_==="be")&&(k=_,_=10),this._init(F||0,_||10,k||"be"))}typeof s=="object"?s.exports=a:o.BN=a,a.BN=a,a.wordSize=26;var f;try{typeof window<"u"&&typeof window.Buffer<"u"?f=window.Buffer:f=e("buffer").Buffer}catch{}a.isBN=function(_){return _ instanceof a?!0:_!==null&&typeof _=="object"&&_.constructor.wordSize===a.wordSize&&Array.isArray(_.words)},a.max=function(_,k){return _.cmp(k)>0?_:k},a.min=function(_,k){return _.cmp(k)<0?_:k},a.prototype._init=function(_,k,N){if(typeof _=="number")return this._initNumber(_,k,N);if(typeof _=="object")return this._initArray(_,k,N);k==="hex"&&(k=16),h(k===(k|0)&&k>=2&&k<=36),_=_.toString().replace(/\s+/g,"");var P=0;_[0]==="-"&&(P++,this.negative=1),P<_.length&&(k===16?this._parseHex(_,P,N):(this._parseBase(_,k,P),N==="le"&&this._initArray(this.toArray(),k,N)))},a.prototype._initNumber=function(_,k,N){_<0&&(this.negative=1,_=-_),_<67108864?(this.words=[_&67108863],this.length=1):_<4503599627370496?(this.words=[_&67108863,_/67108864&67108863],this.length=2):(h(_<9007199254740992),this.words=[_&67108863,_/67108864&67108863,1],this.length=3),N==="le"&&this._initArray(this.toArray(),k,N)},a.prototype._initArray=function(_,k,N){if(h(typeof _.length=="number"),_.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(_.length/3),this.words=new Array(this.length);for(var P=0;P=0;P-=3)A=_[P]|_[P-1]<<8|_[P-2]<<16,this.words[D]|=A<>>26-S&67108863,S+=24,S>=26&&(S-=26,D++);else if(N==="le")for(P=0,D=0;P<_.length;P+=3)A=_[P]|_[P+1]<<8|_[P+2]<<16,this.words[D]|=A<>>26-S&67108863,S+=24,S>=26&&(S-=26,D++);return this._strip()};function l(F,_){var k=F.charCodeAt(_);if(k>=48&&k<=57)return k-48;if(k>=65&&k<=70)return k-55;if(k>=97&&k<=102)return k-87;h(!1,"Invalid character in "+F)}function u(F,_,k){var N=l(F,k);return k-1>=_&&(N|=l(F,k-1)<<4),N}a.prototype._parseHex=function(_,k,N){this.length=Math.ceil((_.length-k)/6),this.words=new Array(this.length);for(var P=0;P=k;P-=2)S=u(_,k,P)<=18?(D-=18,A+=1,this.words[A]|=S>>>26):D+=8;else{var E=_.length-k;for(P=E%2===0?k+1:k;P<_.length;P+=2)S=u(_,k,P)<=18?(D-=18,A+=1,this.words[A]|=S>>>26):D+=8}this._strip()};function p(F,_,k,N){for(var P=0,D=0,A=Math.min(F.length,k),S=_;S=49?D=E-49+10:E>=17?D=E-17+10:D=E,h(E>=0&&D1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},a.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{a.prototype[Symbol.for("nodejs.util.inspect.custom")]=d}catch{a.prototype.inspect=d}else a.prototype.inspect=d;function d(){return(this.red?""}var v=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],x=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],g=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];a.prototype.toString=function(_,k){_=_||10,k=k|0||1;var N;if(_===16||_==="hex"){N="";for(var P=0,D=0,A=0;A>>24-P&16777215,P+=2,P>=26&&(P-=26,A--),D!==0||A!==this.length-1?N=v[6-E.length]+E+N:N=E+N}for(D!==0&&(N=D.toString(16)+N);N.length%k!==0;)N="0"+N;return this.negative!==0&&(N="-"+N),N}if(_===(_|0)&&_>=2&&_<=36){var O=x[_],z=g[_];N="";var J=this.clone();for(J.negative=0;!J.isZero();){var re=J.modrn(z).toString(_);J=J.idivn(z),J.isZero()?N=re+N:N=v[O-re.length]+re+N}for(this.isZero()&&(N="0"+N);N.length%k!==0;)N="0"+N;return this.negative!==0&&(N="-"+N),N}h(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var _=this.words[0];return this.length===2?_+=this.words[1]*67108864:this.length===3&&this.words[2]===1?_+=4503599627370496+this.words[1]*67108864:this.length>2&&h(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-_:_},a.prototype.toJSON=function(){return this.toString(16,2)},f&&(a.prototype.toBuffer=function(_,k){return this.toArrayLike(f,_,k)}),a.prototype.toArray=function(_,k){return this.toArrayLike(Array,_,k)};var b=function(_,k){return _.allocUnsafe?_.allocUnsafe(k):new _(k)};a.prototype.toArrayLike=function(_,k,N){this._strip();var P=this.byteLength(),D=N||Math.max(1,P);h(P<=D,"byte array longer than desired length"),h(D>0,"Requested array length <= 0");var A=b(_,D),S=k==="le"?"LE":"BE";return this["_toArrayLike"+S](A,P),A},a.prototype._toArrayLikeLE=function(_,k){for(var N=0,P=0,D=0,A=0;D>8&255),N<_.length&&(_[N++]=S>>16&255),A===6?(N<_.length&&(_[N++]=S>>24&255),P=0,A=0):(P=S>>>24,A+=2)}if(N<_.length)for(_[N++]=P;N<_.length;)_[N++]=0},a.prototype._toArrayLikeBE=function(_,k){for(var N=_.length-1,P=0,D=0,A=0;D=0&&(_[N--]=S>>8&255),N>=0&&(_[N--]=S>>16&255),A===6?(N>=0&&(_[N--]=S>>24&255),P=0,A=0):(P=S>>>24,A+=2)}if(N>=0)for(_[N--]=P;N>=0;)_[N--]=0},Math.clz32?a.prototype._countBits=function(_){return 32-Math.clz32(_)}:a.prototype._countBits=function(_){var k=_,N=0;return k>=4096&&(N+=13,k>>>=13),k>=64&&(N+=7,k>>>=7),k>=8&&(N+=4,k>>>=4),k>=2&&(N+=2,k>>>=2),N+k},a.prototype._zeroBits=function(_){if(_===0)return 26;var k=_,N=0;return k&8191||(N+=13,k>>>=13),k&127||(N+=7,k>>>=7),k&15||(N+=4,k>>>=4),k&3||(N+=2,k>>>=2),k&1||N++,N},a.prototype.bitLength=function(){var _=this.words[this.length-1],k=this._countBits(_);return(this.length-1)*26+k};function w(F){for(var _=new Array(F.bitLength()),k=0;k<_.length;k++){var N=k/26|0,P=k%26;_[k]=F.words[N]>>>P&1}return _}a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var _=0,k=0;k_.length?this.clone().ior(_):_.clone().ior(this)},a.prototype.uor=function(_){return this.length>_.length?this.clone().iuor(_):_.clone().iuor(this)},a.prototype.iuand=function(_){var k;this.length>_.length?k=_:k=this;for(var N=0;N_.length?this.clone().iand(_):_.clone().iand(this)},a.prototype.uand=function(_){return this.length>_.length?this.clone().iuand(_):_.clone().iuand(this)},a.prototype.iuxor=function(_){var k,N;this.length>_.length?(k=this,N=_):(k=_,N=this);for(var P=0;P_.length?this.clone().ixor(_):_.clone().ixor(this)},a.prototype.uxor=function(_){return this.length>_.length?this.clone().iuxor(_):_.clone().iuxor(this)},a.prototype.inotn=function(_){h(typeof _=="number"&&_>=0);var k=Math.ceil(_/26)|0,N=_%26;this._expand(k),N>0&&k--;for(var P=0;P0&&(this.words[P]=~this.words[P]&67108863>>26-N),this._strip()},a.prototype.notn=function(_){return this.clone().inotn(_)},a.prototype.setn=function(_,k){h(typeof _=="number"&&_>=0);var N=_/26|0,P=_%26;return this._expand(N+1),k?this.words[N]=this.words[N]|1<_.length?(N=this,P=_):(N=_,P=this);for(var D=0,A=0;A>>26;for(;D!==0&&A>>26;if(this.length=N.length,D!==0)this.words[this.length]=D,this.length++;else if(N!==this)for(;A_.length?this.clone().iadd(_):_.clone().iadd(this)},a.prototype.isub=function(_){if(_.negative!==0){_.negative=0;var k=this.iadd(_);return _.negative=1,k._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(_),this.negative=1,this._normSign();var N=this.cmp(_);if(N===0)return this.negative=0,this.length=1,this.words[0]=0,this;var P,D;N>0?(P=this,D=_):(P=_,D=this);for(var A=0,S=0;S>26,this.words[S]=k&67108863;for(;A!==0&&S>26,this.words[S]=k&67108863;if(A===0&&S>>26,J=E&67108863,re=Math.min(O,_.length-1),se=Math.max(0,O-F.length+1);se<=re;se++){var Ce=O-se|0;P=F.words[Ce]|0,D=_.words[se]|0,A=P*D+J,z+=A/67108864|0,J=A&67108863}k.words[O]=J|0,E=z|0}return E!==0?k.words[O]=E|0:k.length--,k._strip()}var T=function(_,k,N){var P=_.words,D=k.words,A=N.words,S=0,E,O,z,J=P[0]|0,re=J&8191,se=J>>>13,Ce=P[1]|0,Y=Ce&8191,q=Ce>>>13,K=P[2]|0,Q=K&8191,he=K>>>13,we=P[3]|0,ae=we&8191,te=we>>>13,Z=P[4]|0,W=Z&8191,V=Z>>>13,fe=P[5]|0,ye=fe&8191,X=fe>>>13,ve=P[6]|0,ke=ve&8191,ee=ve>>>13,ne=P[7]|0,de=ne&8191,_e=ne>>>13,Re=P[8]|0,Ae=Re&8191,Ne=Re>>>13,Xe=P[9]|0,Le=Xe&8191,xe=Xe>>>13,Me=D[0]|0,Be=Me&8191,Ve=Me>>>13,ot=D[1]|0,ct=ot&8191,rt=ot>>>13,nt=D[2]|0,mt=nt&8191,et=nt>>>13,tt=D[3]|0,vt=tt&8191,ft=tt>>>13,kt=D[4]|0,Tt=kt&8191,lt=kt>>>13,Ct=D[5]|0,Mt=Ct&8191,gt=Ct>>>13,ie=D[6]|0,ge=ie&8191,le=ie>>>13,ue=D[7]|0,pe=ue&8191,me=ue>>>13,Ie=D[8]|0,je=Ie&8191,Fe=Ie>>>13,Pe=D[9]|0,Oe=Pe&8191,$e=Pe>>>13;N.negative=_.negative^k.negative,N.length=19,E=Math.imul(re,Be),O=Math.imul(re,Ve),O=O+Math.imul(se,Be)|0,z=Math.imul(se,Ve);var ce=(S+E|0)+((O&8191)<<13)|0;S=(z+(O>>>13)|0)+(ce>>>26)|0,ce&=67108863,E=Math.imul(Y,Be),O=Math.imul(Y,Ve),O=O+Math.imul(q,Be)|0,z=Math.imul(q,Ve),E=E+Math.imul(re,ct)|0,O=O+Math.imul(re,rt)|0,O=O+Math.imul(se,ct)|0,z=z+Math.imul(se,rt)|0;var Te=(S+E|0)+((O&8191)<<13)|0;S=(z+(O>>>13)|0)+(Te>>>26)|0,Te&=67108863,E=Math.imul(Q,Be),O=Math.imul(Q,Ve),O=O+Math.imul(he,Be)|0,z=Math.imul(he,Ve),E=E+Math.imul(Y,ct)|0,O=O+Math.imul(Y,rt)|0,O=O+Math.imul(q,ct)|0,z=z+Math.imul(q,rt)|0,E=E+Math.imul(re,mt)|0,O=O+Math.imul(re,et)|0,O=O+Math.imul(se,mt)|0,z=z+Math.imul(se,et)|0;var Ee=(S+E|0)+((O&8191)<<13)|0;S=(z+(O>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,E=Math.imul(ae,Be),O=Math.imul(ae,Ve),O=O+Math.imul(te,Be)|0,z=Math.imul(te,Ve),E=E+Math.imul(Q,ct)|0,O=O+Math.imul(Q,rt)|0,O=O+Math.imul(he,ct)|0,z=z+Math.imul(he,rt)|0,E=E+Math.imul(Y,mt)|0,O=O+Math.imul(Y,et)|0,O=O+Math.imul(q,mt)|0,z=z+Math.imul(q,et)|0,E=E+Math.imul(re,vt)|0,O=O+Math.imul(re,ft)|0,O=O+Math.imul(se,vt)|0,z=z+Math.imul(se,ft)|0;var Ue=(S+E|0)+((O&8191)<<13)|0;S=(z+(O>>>13)|0)+(Ue>>>26)|0,Ue&=67108863,E=Math.imul(W,Be),O=Math.imul(W,Ve),O=O+Math.imul(V,Be)|0,z=Math.imul(V,Ve),E=E+Math.imul(ae,ct)|0,O=O+Math.imul(ae,rt)|0,O=O+Math.imul(te,ct)|0,z=z+Math.imul(te,rt)|0,E=E+Math.imul(Q,mt)|0,O=O+Math.imul(Q,et)|0,O=O+Math.imul(he,mt)|0,z=z+Math.imul(he,et)|0,E=E+Math.imul(Y,vt)|0,O=O+Math.imul(Y,ft)|0,O=O+Math.imul(q,vt)|0,z=z+Math.imul(q,ft)|0,E=E+Math.imul(re,Tt)|0,O=O+Math.imul(re,lt)|0,O=O+Math.imul(se,Tt)|0,z=z+Math.imul(se,lt)|0;var Ke=(S+E|0)+((O&8191)<<13)|0;S=(z+(O>>>13)|0)+(Ke>>>26)|0,Ke&=67108863,E=Math.imul(ye,Be),O=Math.imul(ye,Ve),O=O+Math.imul(X,Be)|0,z=Math.imul(X,Ve),E=E+Math.imul(W,ct)|0,O=O+Math.imul(W,rt)|0,O=O+Math.imul(V,ct)|0,z=z+Math.imul(V,rt)|0,E=E+Math.imul(ae,mt)|0,O=O+Math.imul(ae,et)|0,O=O+Math.imul(te,mt)|0,z=z+Math.imul(te,et)|0,E=E+Math.imul(Q,vt)|0,O=O+Math.imul(Q,ft)|0,O=O+Math.imul(he,vt)|0,z=z+Math.imul(he,ft)|0,E=E+Math.imul(Y,Tt)|0,O=O+Math.imul(Y,lt)|0,O=O+Math.imul(q,Tt)|0,z=z+Math.imul(q,lt)|0,E=E+Math.imul(re,Mt)|0,O=O+Math.imul(re,gt)|0,O=O+Math.imul(se,Mt)|0,z=z+Math.imul(se,gt)|0;var at=(S+E|0)+((O&8191)<<13)|0;S=(z+(O>>>13)|0)+(at>>>26)|0,at&=67108863,E=Math.imul(ke,Be),O=Math.imul(ke,Ve),O=O+Math.imul(ee,Be)|0,z=Math.imul(ee,Ve),E=E+Math.imul(ye,ct)|0,O=O+Math.imul(ye,rt)|0,O=O+Math.imul(X,ct)|0,z=z+Math.imul(X,rt)|0,E=E+Math.imul(W,mt)|0,O=O+Math.imul(W,et)|0,O=O+Math.imul(V,mt)|0,z=z+Math.imul(V,et)|0,E=E+Math.imul(ae,vt)|0,O=O+Math.imul(ae,ft)|0,O=O+Math.imul(te,vt)|0,z=z+Math.imul(te,ft)|0,E=E+Math.imul(Q,Tt)|0,O=O+Math.imul(Q,lt)|0,O=O+Math.imul(he,Tt)|0,z=z+Math.imul(he,lt)|0,E=E+Math.imul(Y,Mt)|0,O=O+Math.imul(Y,gt)|0,O=O+Math.imul(q,Mt)|0,z=z+Math.imul(q,gt)|0,E=E+Math.imul(re,ge)|0,O=O+Math.imul(re,le)|0,O=O+Math.imul(se,ge)|0,z=z+Math.imul(se,le)|0;var dt=(S+E|0)+((O&8191)<<13)|0;S=(z+(O>>>13)|0)+(dt>>>26)|0,dt&=67108863,E=Math.imul(de,Be),O=Math.imul(de,Ve),O=O+Math.imul(_e,Be)|0,z=Math.imul(_e,Ve),E=E+Math.imul(ke,ct)|0,O=O+Math.imul(ke,rt)|0,O=O+Math.imul(ee,ct)|0,z=z+Math.imul(ee,rt)|0,E=E+Math.imul(ye,mt)|0,O=O+Math.imul(ye,et)|0,O=O+Math.imul(X,mt)|0,z=z+Math.imul(X,et)|0,E=E+Math.imul(W,vt)|0,O=O+Math.imul(W,ft)|0,O=O+Math.imul(V,vt)|0,z=z+Math.imul(V,ft)|0,E=E+Math.imul(ae,Tt)|0,O=O+Math.imul(ae,lt)|0,O=O+Math.imul(te,Tt)|0,z=z+Math.imul(te,lt)|0,E=E+Math.imul(Q,Mt)|0,O=O+Math.imul(Q,gt)|0,O=O+Math.imul(he,Mt)|0,z=z+Math.imul(he,gt)|0,E=E+Math.imul(Y,ge)|0,O=O+Math.imul(Y,le)|0,O=O+Math.imul(q,ge)|0,z=z+Math.imul(q,le)|0,E=E+Math.imul(re,pe)|0,O=O+Math.imul(re,me)|0,O=O+Math.imul(se,pe)|0,z=z+Math.imul(se,me)|0;var Nt=(S+E|0)+((O&8191)<<13)|0;S=(z+(O>>>13)|0)+(Nt>>>26)|0,Nt&=67108863,E=Math.imul(Ae,Be),O=Math.imul(Ae,Ve),O=O+Math.imul(Ne,Be)|0,z=Math.imul(Ne,Ve),E=E+Math.imul(de,ct)|0,O=O+Math.imul(de,rt)|0,O=O+Math.imul(_e,ct)|0,z=z+Math.imul(_e,rt)|0,E=E+Math.imul(ke,mt)|0,O=O+Math.imul(ke,et)|0,O=O+Math.imul(ee,mt)|0,z=z+Math.imul(ee,et)|0,E=E+Math.imul(ye,vt)|0,O=O+Math.imul(ye,ft)|0,O=O+Math.imul(X,vt)|0,z=z+Math.imul(X,ft)|0,E=E+Math.imul(W,Tt)|0,O=O+Math.imul(W,lt)|0,O=O+Math.imul(V,Tt)|0,z=z+Math.imul(V,lt)|0,E=E+Math.imul(ae,Mt)|0,O=O+Math.imul(ae,gt)|0,O=O+Math.imul(te,Mt)|0,z=z+Math.imul(te,gt)|0,E=E+Math.imul(Q,ge)|0,O=O+Math.imul(Q,le)|0,O=O+Math.imul(he,ge)|0,z=z+Math.imul(he,le)|0,E=E+Math.imul(Y,pe)|0,O=O+Math.imul(Y,me)|0,O=O+Math.imul(q,pe)|0,z=z+Math.imul(q,me)|0,E=E+Math.imul(re,je)|0,O=O+Math.imul(re,Fe)|0,O=O+Math.imul(se,je)|0,z=z+Math.imul(se,Fe)|0;var pr=(S+E|0)+((O&8191)<<13)|0;S=(z+(O>>>13)|0)+(pr>>>26)|0,pr&=67108863,E=Math.imul(Le,Be),O=Math.imul(Le,Ve),O=O+Math.imul(xe,Be)|0,z=Math.imul(xe,Ve),E=E+Math.imul(Ae,ct)|0,O=O+Math.imul(Ae,rt)|0,O=O+Math.imul(Ne,ct)|0,z=z+Math.imul(Ne,rt)|0,E=E+Math.imul(de,mt)|0,O=O+Math.imul(de,et)|0,O=O+Math.imul(_e,mt)|0,z=z+Math.imul(_e,et)|0,E=E+Math.imul(ke,vt)|0,O=O+Math.imul(ke,ft)|0,O=O+Math.imul(ee,vt)|0,z=z+Math.imul(ee,ft)|0,E=E+Math.imul(ye,Tt)|0,O=O+Math.imul(ye,lt)|0,O=O+Math.imul(X,Tt)|0,z=z+Math.imul(X,lt)|0,E=E+Math.imul(W,Mt)|0,O=O+Math.imul(W,gt)|0,O=O+Math.imul(V,Mt)|0,z=z+Math.imul(V,gt)|0,E=E+Math.imul(ae,ge)|0,O=O+Math.imul(ae,le)|0,O=O+Math.imul(te,ge)|0,z=z+Math.imul(te,le)|0,E=E+Math.imul(Q,pe)|0,O=O+Math.imul(Q,me)|0,O=O+Math.imul(he,pe)|0,z=z+Math.imul(he,me)|0,E=E+Math.imul(Y,je)|0,O=O+Math.imul(Y,Fe)|0,O=O+Math.imul(q,je)|0,z=z+Math.imul(q,Fe)|0,E=E+Math.imul(re,Oe)|0,O=O+Math.imul(re,$e)|0,O=O+Math.imul(se,Oe)|0,z=z+Math.imul(se,$e)|0;var Jt=(S+E|0)+((O&8191)<<13)|0;S=(z+(O>>>13)|0)+(Jt>>>26)|0,Jt&=67108863,E=Math.imul(Le,ct),O=Math.imul(Le,rt),O=O+Math.imul(xe,ct)|0,z=Math.imul(xe,rt),E=E+Math.imul(Ae,mt)|0,O=O+Math.imul(Ae,et)|0,O=O+Math.imul(Ne,mt)|0,z=z+Math.imul(Ne,et)|0,E=E+Math.imul(de,vt)|0,O=O+Math.imul(de,ft)|0,O=O+Math.imul(_e,vt)|0,z=z+Math.imul(_e,ft)|0,E=E+Math.imul(ke,Tt)|0,O=O+Math.imul(ke,lt)|0,O=O+Math.imul(ee,Tt)|0,z=z+Math.imul(ee,lt)|0,E=E+Math.imul(ye,Mt)|0,O=O+Math.imul(ye,gt)|0,O=O+Math.imul(X,Mt)|0,z=z+Math.imul(X,gt)|0,E=E+Math.imul(W,ge)|0,O=O+Math.imul(W,le)|0,O=O+Math.imul(V,ge)|0,z=z+Math.imul(V,le)|0,E=E+Math.imul(ae,pe)|0,O=O+Math.imul(ae,me)|0,O=O+Math.imul(te,pe)|0,z=z+Math.imul(te,me)|0,E=E+Math.imul(Q,je)|0,O=O+Math.imul(Q,Fe)|0,O=O+Math.imul(he,je)|0,z=z+Math.imul(he,Fe)|0,E=E+Math.imul(Y,Oe)|0,O=O+Math.imul(Y,$e)|0,O=O+Math.imul(q,Oe)|0,z=z+Math.imul(q,$e)|0;var jt=(S+E|0)+((O&8191)<<13)|0;S=(z+(O>>>13)|0)+(jt>>>26)|0,jt&=67108863,E=Math.imul(Le,mt),O=Math.imul(Le,et),O=O+Math.imul(xe,mt)|0,z=Math.imul(xe,et),E=E+Math.imul(Ae,vt)|0,O=O+Math.imul(Ae,ft)|0,O=O+Math.imul(Ne,vt)|0,z=z+Math.imul(Ne,ft)|0,E=E+Math.imul(de,Tt)|0,O=O+Math.imul(de,lt)|0,O=O+Math.imul(_e,Tt)|0,z=z+Math.imul(_e,lt)|0,E=E+Math.imul(ke,Mt)|0,O=O+Math.imul(ke,gt)|0,O=O+Math.imul(ee,Mt)|0,z=z+Math.imul(ee,gt)|0,E=E+Math.imul(ye,ge)|0,O=O+Math.imul(ye,le)|0,O=O+Math.imul(X,ge)|0,z=z+Math.imul(X,le)|0,E=E+Math.imul(W,pe)|0,O=O+Math.imul(W,me)|0,O=O+Math.imul(V,pe)|0,z=z+Math.imul(V,me)|0,E=E+Math.imul(ae,je)|0,O=O+Math.imul(ae,Fe)|0,O=O+Math.imul(te,je)|0,z=z+Math.imul(te,Fe)|0,E=E+Math.imul(Q,Oe)|0,O=O+Math.imul(Q,$e)|0,O=O+Math.imul(he,Oe)|0,z=z+Math.imul(he,$e)|0;var mr=(S+E|0)+((O&8191)<<13)|0;S=(z+(O>>>13)|0)+(mr>>>26)|0,mr&=67108863,E=Math.imul(Le,vt),O=Math.imul(Le,ft),O=O+Math.imul(xe,vt)|0,z=Math.imul(xe,ft),E=E+Math.imul(Ae,Tt)|0,O=O+Math.imul(Ae,lt)|0,O=O+Math.imul(Ne,Tt)|0,z=z+Math.imul(Ne,lt)|0,E=E+Math.imul(de,Mt)|0,O=O+Math.imul(de,gt)|0,O=O+Math.imul(_e,Mt)|0,z=z+Math.imul(_e,gt)|0,E=E+Math.imul(ke,ge)|0,O=O+Math.imul(ke,le)|0,O=O+Math.imul(ee,ge)|0,z=z+Math.imul(ee,le)|0,E=E+Math.imul(ye,pe)|0,O=O+Math.imul(ye,me)|0,O=O+Math.imul(X,pe)|0,z=z+Math.imul(X,me)|0,E=E+Math.imul(W,je)|0,O=O+Math.imul(W,Fe)|0,O=O+Math.imul(V,je)|0,z=z+Math.imul(V,Fe)|0,E=E+Math.imul(ae,Oe)|0,O=O+Math.imul(ae,$e)|0,O=O+Math.imul(te,Oe)|0,z=z+Math.imul(te,$e)|0;var Ur=(S+E|0)+((O&8191)<<13)|0;S=(z+(O>>>13)|0)+(Ur>>>26)|0,Ur&=67108863,E=Math.imul(Le,Tt),O=Math.imul(Le,lt),O=O+Math.imul(xe,Tt)|0,z=Math.imul(xe,lt),E=E+Math.imul(Ae,Mt)|0,O=O+Math.imul(Ae,gt)|0,O=O+Math.imul(Ne,Mt)|0,z=z+Math.imul(Ne,gt)|0,E=E+Math.imul(de,ge)|0,O=O+Math.imul(de,le)|0,O=O+Math.imul(_e,ge)|0,z=z+Math.imul(_e,le)|0,E=E+Math.imul(ke,pe)|0,O=O+Math.imul(ke,me)|0,O=O+Math.imul(ee,pe)|0,z=z+Math.imul(ee,me)|0,E=E+Math.imul(ye,je)|0,O=O+Math.imul(ye,Fe)|0,O=O+Math.imul(X,je)|0,z=z+Math.imul(X,Fe)|0,E=E+Math.imul(W,Oe)|0,O=O+Math.imul(W,$e)|0,O=O+Math.imul(V,Oe)|0,z=z+Math.imul(V,$e)|0;var Ot=(S+E|0)+((O&8191)<<13)|0;S=(z+(O>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,E=Math.imul(Le,Mt),O=Math.imul(Le,gt),O=O+Math.imul(xe,Mt)|0,z=Math.imul(xe,gt),E=E+Math.imul(Ae,ge)|0,O=O+Math.imul(Ae,le)|0,O=O+Math.imul(Ne,ge)|0,z=z+Math.imul(Ne,le)|0,E=E+Math.imul(de,pe)|0,O=O+Math.imul(de,me)|0,O=O+Math.imul(_e,pe)|0,z=z+Math.imul(_e,me)|0,E=E+Math.imul(ke,je)|0,O=O+Math.imul(ke,Fe)|0,O=O+Math.imul(ee,je)|0,z=z+Math.imul(ee,Fe)|0,E=E+Math.imul(ye,Oe)|0,O=O+Math.imul(ye,$e)|0,O=O+Math.imul(X,Oe)|0,z=z+Math.imul(X,$e)|0;var vn=(S+E|0)+((O&8191)<<13)|0;S=(z+(O>>>13)|0)+(vn>>>26)|0,vn&=67108863,E=Math.imul(Le,ge),O=Math.imul(Le,le),O=O+Math.imul(xe,ge)|0,z=Math.imul(xe,le),E=E+Math.imul(Ae,pe)|0,O=O+Math.imul(Ae,me)|0,O=O+Math.imul(Ne,pe)|0,z=z+Math.imul(Ne,me)|0,E=E+Math.imul(de,je)|0,O=O+Math.imul(de,Fe)|0,O=O+Math.imul(_e,je)|0,z=z+Math.imul(_e,Fe)|0,E=E+Math.imul(ke,Oe)|0,O=O+Math.imul(ke,$e)|0,O=O+Math.imul(ee,Oe)|0,z=z+Math.imul(ee,$e)|0;var xn=(S+E|0)+((O&8191)<<13)|0;S=(z+(O>>>13)|0)+(xn>>>26)|0,xn&=67108863,E=Math.imul(Le,pe),O=Math.imul(Le,me),O=O+Math.imul(xe,pe)|0,z=Math.imul(xe,me),E=E+Math.imul(Ae,je)|0,O=O+Math.imul(Ae,Fe)|0,O=O+Math.imul(Ne,je)|0,z=z+Math.imul(Ne,Fe)|0,E=E+Math.imul(de,Oe)|0,O=O+Math.imul(de,$e)|0,O=O+Math.imul(_e,Oe)|0,z=z+Math.imul(_e,$e)|0;var bn=(S+E|0)+((O&8191)<<13)|0;S=(z+(O>>>13)|0)+(bn>>>26)|0,bn&=67108863,E=Math.imul(Le,je),O=Math.imul(Le,Fe),O=O+Math.imul(xe,je)|0,z=Math.imul(xe,Fe),E=E+Math.imul(Ae,Oe)|0,O=O+Math.imul(Ae,$e)|0,O=O+Math.imul(Ne,Oe)|0,z=z+Math.imul(Ne,$e)|0;var yi=(S+E|0)+((O&8191)<<13)|0;S=(z+(O>>>13)|0)+(yi>>>26)|0,yi&=67108863,E=Math.imul(Le,Oe),O=Math.imul(Le,$e),O=O+Math.imul(xe,Oe)|0,z=Math.imul(xe,$e);var _i=(S+E|0)+((O&8191)<<13)|0;return S=(z+(O>>>13)|0)+(_i>>>26)|0,_i&=67108863,A[0]=ce,A[1]=Te,A[2]=Ee,A[3]=Ue,A[4]=Ke,A[5]=at,A[6]=dt,A[7]=Nt,A[8]=pr,A[9]=Jt,A[10]=jt,A[11]=mr,A[12]=Ur,A[13]=Ot,A[14]=vn,A[15]=xn,A[16]=bn,A[17]=yi,A[18]=_i,S!==0&&(A[19]=S,N.length++),N};Math.imul||(T=y);function C(F,_,k){k.negative=_.negative^F.negative,k.length=F.length+_.length;for(var N=0,P=0,D=0;D>>26)|0,P+=A>>>26,A&=67108863}k.words[D]=S,N=A,A=P}return N!==0?k.words[D]=N:k.length--,k._strip()}function M(F,_,k){return C(F,_,k)}a.prototype.mulTo=function(_,k){var N,P=this.length+_.length;return this.length===10&&_.length===10?N=T(this,_,k):P<63?N=y(this,_,k):P<1024?N=C(this,_,k):N=M(this,_,k),N},a.prototype.mul=function(_){var k=new a(null);return k.words=new Array(this.length+_.length),this.mulTo(_,k)},a.prototype.mulf=function(_){var k=new a(null);return k.words=new Array(this.length+_.length),M(this,_,k)},a.prototype.imul=function(_){return this.clone().mulTo(_,this)},a.prototype.imuln=function(_){var k=_<0;k&&(_=-_),h(typeof _=="number"),h(_<67108864);for(var N=0,P=0;P>=26,N+=D/67108864|0,N+=A>>>26,this.words[P]=A&67108863}return N!==0&&(this.words[P]=N,this.length++),k?this.ineg():this},a.prototype.muln=function(_){return this.clone().imuln(_)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(_){var k=w(_);if(k.length===0)return new a(1);for(var N=this,P=0;P=0);var k=_%26,N=(_-k)/26,P=67108863>>>26-k<<26-k,D;if(k!==0){var A=0;for(D=0;D>>26-k}A&&(this.words[D]=A,this.length++)}if(N!==0){for(D=this.length-1;D>=0;D--)this.words[D+N]=this.words[D];for(D=0;D=0);var P;k?P=(k-k%26)/26:P=0;var D=_%26,A=Math.min((_-D)/26,this.length),S=67108863^67108863>>>D<A)for(this.length-=A,O=0;O=0&&(z!==0||O>=P);O--){var J=this.words[O]|0;this.words[O]=z<<26-D|J>>>D,z=J&S}return E&&z!==0&&(E.words[E.length++]=z),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},a.prototype.ishrn=function(_,k,N){return h(this.negative===0),this.iushrn(_,k,N)},a.prototype.shln=function(_){return this.clone().ishln(_)},a.prototype.ushln=function(_){return this.clone().iushln(_)},a.prototype.shrn=function(_){return this.clone().ishrn(_)},a.prototype.ushrn=function(_){return this.clone().iushrn(_)},a.prototype.testn=function(_){h(typeof _=="number"&&_>=0);var k=_%26,N=(_-k)/26,P=1<=0);var k=_%26,N=(_-k)/26;if(h(this.negative===0,"imaskn works only with positive numbers"),this.length<=N)return this;if(k!==0&&N++,this.length=Math.min(N,this.length),k!==0){var P=67108863^67108863>>>k<=67108864;k++)this.words[k]-=67108864,k===this.length-1?this.words[k+1]=1:this.words[k+1]++;return this.length=Math.max(this.length,k+1),this},a.prototype.isubn=function(_){if(h(typeof _=="number"),h(_<67108864),_<0)return this.iaddn(-_);if(this.negative!==0)return this.negative=0,this.iaddn(_),this.negative=1,this;if(this.words[0]-=_,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var k=0;k>26)-(E/67108864|0),this.words[D+N]=A&67108863}for(;D>26,this.words[D+N]=A&67108863;if(S===0)return this._strip();for(h(S===-1),S=0,D=0;D>26,this.words[D]=A&67108863;return this.negative=1,this._strip()},a.prototype._wordDiv=function(_,k){var N=this.length-_.length,P=this.clone(),D=_,A=D.words[D.length-1]|0,S=this._countBits(A);N=26-S,N!==0&&(D=D.ushln(N),P.iushln(N),A=D.words[D.length-1]|0);var E=P.length-D.length,O;if(k!=="mod"){O=new a(null),O.length=E+1,O.words=new Array(O.length);for(var z=0;z=0;re--){var se=(P.words[D.length+re]|0)*67108864+(P.words[D.length+re-1]|0);for(se=Math.min(se/A|0,67108863),P._ishlnsubmul(D,se,re);P.negative!==0;)se--,P.negative=0,P._ishlnsubmul(D,1,re),P.isZero()||(P.negative^=1);O&&(O.words[re]=se)}return O&&O._strip(),P._strip(),k!=="div"&&N!==0&&P.iushrn(N),{div:O||null,mod:P}},a.prototype.divmod=function(_,k,N){if(h(!_.isZero()),this.isZero())return{div:new a(0),mod:new a(0)};var P,D,A;return this.negative!==0&&_.negative===0?(A=this.neg().divmod(_,k),k!=="mod"&&(P=A.div.neg()),k!=="div"&&(D=A.mod.neg(),N&&D.negative!==0&&D.iadd(_)),{div:P,mod:D}):this.negative===0&&_.negative!==0?(A=this.divmod(_.neg(),k),k!=="mod"&&(P=A.div.neg()),{div:P,mod:A.mod}):this.negative&_.negative?(A=this.neg().divmod(_.neg(),k),k!=="div"&&(D=A.mod.neg(),N&&D.negative!==0&&D.isub(_)),{div:A.div,mod:D}):_.length>this.length||this.cmp(_)<0?{div:new a(0),mod:this}:_.length===1?k==="div"?{div:this.divn(_.words[0]),mod:null}:k==="mod"?{div:null,mod:new a(this.modrn(_.words[0]))}:{div:this.divn(_.words[0]),mod:new a(this.modrn(_.words[0]))}:this._wordDiv(_,k)},a.prototype.div=function(_){return this.divmod(_,"div",!1).div},a.prototype.mod=function(_){return this.divmod(_,"mod",!1).mod},a.prototype.umod=function(_){return this.divmod(_,"mod",!0).mod},a.prototype.divRound=function(_){var k=this.divmod(_);if(k.mod.isZero())return k.div;var N=k.div.negative!==0?k.mod.isub(_):k.mod,P=_.ushrn(1),D=_.andln(1),A=N.cmp(P);return A<0||D===1&&A===0?k.div:k.div.negative!==0?k.div.isubn(1):k.div.iaddn(1)},a.prototype.modrn=function(_){var k=_<0;k&&(_=-_),h(_<=67108863);for(var N=(1<<26)%_,P=0,D=this.length-1;D>=0;D--)P=(N*P+(this.words[D]|0))%_;return k?-P:P},a.prototype.modn=function(_){return this.modrn(_)},a.prototype.idivn=function(_){var k=_<0;k&&(_=-_),h(_<=67108863);for(var N=0,P=this.length-1;P>=0;P--){var D=(this.words[P]|0)+N*67108864;this.words[P]=D/_|0,N=D%_}return this._strip(),k?this.ineg():this},a.prototype.divn=function(_){return this.clone().idivn(_)},a.prototype.egcd=function(_){h(_.negative===0),h(!_.isZero());var k=this,N=_.clone();k.negative!==0?k=k.umod(_):k=k.clone();for(var P=new a(1),D=new a(0),A=new a(0),S=new a(1),E=0;k.isEven()&&N.isEven();)k.iushrn(1),N.iushrn(1),++E;for(var O=N.clone(),z=k.clone();!k.isZero();){for(var J=0,re=1;!(k.words[0]&re)&&J<26;++J,re<<=1);if(J>0)for(k.iushrn(J);J-- >0;)(P.isOdd()||D.isOdd())&&(P.iadd(O),D.isub(z)),P.iushrn(1),D.iushrn(1);for(var se=0,Ce=1;!(N.words[0]&Ce)&&se<26;++se,Ce<<=1);if(se>0)for(N.iushrn(se);se-- >0;)(A.isOdd()||S.isOdd())&&(A.iadd(O),S.isub(z)),A.iushrn(1),S.iushrn(1);k.cmp(N)>=0?(k.isub(N),P.isub(A),D.isub(S)):(N.isub(k),A.isub(P),S.isub(D))}return{a:A,b:S,gcd:N.iushln(E)}},a.prototype._invmp=function(_){h(_.negative===0),h(!_.isZero());var k=this,N=_.clone();k.negative!==0?k=k.umod(_):k=k.clone();for(var P=new a(1),D=new a(0),A=N.clone();k.cmpn(1)>0&&N.cmpn(1)>0;){for(var S=0,E=1;!(k.words[0]&E)&&S<26;++S,E<<=1);if(S>0)for(k.iushrn(S);S-- >0;)P.isOdd()&&P.iadd(A),P.iushrn(1);for(var O=0,z=1;!(N.words[0]&z)&&O<26;++O,z<<=1);if(O>0)for(N.iushrn(O);O-- >0;)D.isOdd()&&D.iadd(A),D.iushrn(1);k.cmp(N)>=0?(k.isub(N),P.isub(D)):(N.isub(k),D.isub(P))}var J;return k.cmpn(1)===0?J=P:J=D,J.cmpn(0)<0&&J.iadd(_),J},a.prototype.gcd=function(_){if(this.isZero())return _.abs();if(_.isZero())return this.abs();var k=this.clone(),N=_.clone();k.negative=0,N.negative=0;for(var P=0;k.isEven()&&N.isEven();P++)k.iushrn(1),N.iushrn(1);do{for(;k.isEven();)k.iushrn(1);for(;N.isEven();)N.iushrn(1);var D=k.cmp(N);if(D<0){var A=k;k=N,N=A}else if(D===0||N.cmpn(1)===0)break;k.isub(N)}while(!0);return N.iushln(P)},a.prototype.invm=function(_){return this.egcd(_).a.umod(_)},a.prototype.isEven=function(){return(this.words[0]&1)===0},a.prototype.isOdd=function(){return(this.words[0]&1)===1},a.prototype.andln=function(_){return this.words[0]&_},a.prototype.bincn=function(_){h(typeof _=="number");var k=_%26,N=(_-k)/26,P=1<>>26,S&=67108863,this.words[A]=S}return D!==0&&(this.words[A]=D,this.length++),this},a.prototype.isZero=function(){return this.length===1&&this.words[0]===0},a.prototype.cmpn=function(_){var k=_<0;if(this.negative!==0&&!k)return-1;if(this.negative===0&&k)return 1;this._strip();var N;if(this.length>1)N=1;else{k&&(_=-_),h(_<=67108863,"Number is too big");var P=this.words[0]|0;N=P===_?0:P<_?-1:1}return this.negative!==0?-N|0:N},a.prototype.cmp=function(_){if(this.negative!==0&&_.negative===0)return-1;if(this.negative===0&&_.negative!==0)return 1;var k=this.ucmp(_);return this.negative!==0?-k|0:k},a.prototype.ucmp=function(_){if(this.length>_.length)return 1;if(this.length<_.length)return-1;for(var k=0,N=this.length-1;N>=0;N--){var P=this.words[N]|0,D=_.words[N]|0;if(P!==D){PD&&(k=1);break}}return k},a.prototype.gtn=function(_){return this.cmpn(_)===1},a.prototype.gt=function(_){return this.cmp(_)===1},a.prototype.gten=function(_){return this.cmpn(_)>=0},a.prototype.gte=function(_){return this.cmp(_)>=0},a.prototype.ltn=function(_){return this.cmpn(_)===-1},a.prototype.lt=function(_){return this.cmp(_)===-1},a.prototype.lten=function(_){return this.cmpn(_)<=0},a.prototype.lte=function(_){return this.cmp(_)<=0},a.prototype.eqn=function(_){return this.cmpn(_)===0},a.prototype.eq=function(_){return this.cmp(_)===0},a.red=function(_){return new L(_)},a.prototype.toRed=function(_){return h(!this.red,"Already a number in reduction context"),h(this.negative===0,"red works only with positives"),_.convertTo(this)._forceRed(_)},a.prototype.fromRed=function(){return h(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(_){return this.red=_,this},a.prototype.forceRed=function(_){return h(!this.red,"Already a number in reduction context"),this._forceRed(_)},a.prototype.redAdd=function(_){return h(this.red,"redAdd works only with red numbers"),this.red.add(this,_)},a.prototype.redIAdd=function(_){return h(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,_)},a.prototype.redSub=function(_){return h(this.red,"redSub works only with red numbers"),this.red.sub(this,_)},a.prototype.redISub=function(_){return h(this.red,"redISub works only with red numbers"),this.red.isub(this,_)},a.prototype.redShl=function(_){return h(this.red,"redShl works only with red numbers"),this.red.shl(this,_)},a.prototype.redMul=function(_){return h(this.red,"redMul works only with red numbers"),this.red._verify2(this,_),this.red.mul(this,_)},a.prototype.redIMul=function(_){return h(this.red,"redMul works only with red numbers"),this.red._verify2(this,_),this.red.imul(this,_)},a.prototype.redSqr=function(){return h(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return h(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return h(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return h(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return h(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(_){return h(this.red&&!_.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,_)};var I={k256:null,p224:null,p192:null,p25519:null};function B(F,_){this.name=F,this.p=new a(_,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}B.prototype._tmp=function(){var _=new a(null);return _.words=new Array(Math.ceil(this.n/13)),_},B.prototype.ireduce=function(_){var k=_,N;do this.split(k,this.tmp),k=this.imulK(k),k=k.iadd(this.tmp),N=k.bitLength();while(N>this.n);var P=N0?k.isub(this.p):k.strip!==void 0?k.strip():k._strip(),k},B.prototype.split=function(_,k){_.iushrn(this.n,0,k)},B.prototype.imulK=function(_){return _.imul(this.k)};function U(){B.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}c(U,B),U.prototype.split=function(_,k){for(var N=4194303,P=Math.min(_.length,9),D=0;D>>22,A=S}A>>>=22,_.words[D-10]=A,A===0&&_.length>10?_.length-=10:_.length-=9},U.prototype.imulK=function(_){_.words[_.length]=0,_.words[_.length+1]=0,_.length+=2;for(var k=0,N=0;N<_.length;N++){var P=_.words[N]|0;k+=P*977,_.words[N]=k&67108863,k=P*64+(k/67108864|0)}return _.words[_.length-1]===0&&(_.length--,_.words[_.length-1]===0&&_.length--),_};function j(){B.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}c(j,B);function H(){B.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}c(H,B);function G(){B.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}c(G,B),G.prototype.imulK=function(_){for(var k=0,N=0;N<_.length;N++){var P=(_.words[N]|0)*19+k,D=P&67108863;P>>>=26,_.words[N]=D,k=P}return k!==0&&(_.words[_.length++]=k),_},a._prime=function(_){if(I[_])return I[_];var k;if(_==="k256")k=new U;else if(_==="p224")k=new j;else if(_==="p192")k=new H;else if(_==="p25519")k=new G;else throw new Error("Unknown prime "+_);return I[_]=k,k};function L(F){if(typeof F=="string"){var _=a._prime(F);this.m=_.p,this.prime=_}else h(F.gtn(1),"modulus must be greater than 1"),this.m=F,this.prime=null}L.prototype._verify1=function(_){h(_.negative===0,"red works only with positives"),h(_.red,"red works only with red numbers")},L.prototype._verify2=function(_,k){h((_.negative|k.negative)===0,"red works only with positives"),h(_.red&&_.red===k.red,"red works only with red numbers")},L.prototype.imod=function(_){return this.prime?this.prime.ireduce(_)._forceRed(this):(m(_,_.umod(this.m)._forceRed(this)),_)},L.prototype.neg=function(_){return _.isZero()?_.clone():this.m.sub(_)._forceRed(this)},L.prototype.add=function(_,k){this._verify2(_,k);var N=_.add(k);return N.cmp(this.m)>=0&&N.isub(this.m),N._forceRed(this)},L.prototype.iadd=function(_,k){this._verify2(_,k);var N=_.iadd(k);return N.cmp(this.m)>=0&&N.isub(this.m),N},L.prototype.sub=function(_,k){this._verify2(_,k);var N=_.sub(k);return N.cmpn(0)<0&&N.iadd(this.m),N._forceRed(this)},L.prototype.isub=function(_,k){this._verify2(_,k);var N=_.isub(k);return N.cmpn(0)<0&&N.iadd(this.m),N},L.prototype.shl=function(_,k){return this._verify1(_),this.imod(_.ushln(k))},L.prototype.imul=function(_,k){return this._verify2(_,k),this.imod(_.imul(k))},L.prototype.mul=function(_,k){return this._verify2(_,k),this.imod(_.mul(k))},L.prototype.isqr=function(_){return this.imul(_,_.clone())},L.prototype.sqr=function(_){return this.mul(_,_)},L.prototype.sqrt=function(_){if(_.isZero())return _.clone();var k=this.m.andln(3);if(h(k%2===1),k===3){var N=this.m.add(new a(1)).iushrn(2);return this.pow(_,N)}for(var P=this.m.subn(1),D=0;!P.isZero()&&P.andln(1)===0;)D++,P.iushrn(1);h(!P.isZero());var A=new a(1).toRed(this),S=A.redNeg(),E=this.m.subn(1).iushrn(1),O=this.m.bitLength();for(O=new a(2*O*O).toRed(this);this.pow(O,E).cmp(S)!==0;)O.redIAdd(S);for(var z=this.pow(O,P),J=this.pow(_,P.addn(1).iushrn(1)),re=this.pow(_,P),se=D;re.cmp(A)!==0;){for(var Ce=re,Y=0;Ce.cmp(A)!==0;Y++)Ce=Ce.redSqr();h(Y=0;D--){for(var z=k.words[D],J=O-1;J>=0;J--){var re=z>>J&1;if(A!==P[0]&&(A=this.sqr(A)),re===0&&S===0){E=0;continue}S<<=1,S|=re,E++,!(E!==N&&(D!==0||J!==0))&&(A=this.mul(A,P[S]),E=0,S=0)}O=26}return A},L.prototype.convertTo=function(_){var k=_.umod(this.m);return k===_?k.clone():k},L.prototype.convertFrom=function(_){var k=_.clone();return k.red=null,k},a.mont=function(_){return new R(_)};function R(F){L.call(this,F),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}c(R,L),R.prototype.convertTo=function(_){return this.imod(_.ushln(this.shift))},R.prototype.convertFrom=function(_){var k=this.imod(_.mul(this.rinv));return k.red=null,k},R.prototype.imul=function(_,k){if(_.isZero()||k.isZero())return _.words[0]=0,_.length=1,_;var N=_.imul(k),P=N.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),D=N.isub(P).iushrn(this.shift),A=D;return D.cmp(this.m)>=0?A=D.isub(this.m):D.cmpn(0)<0&&(A=D.iadd(this.m)),A._forceRed(this)},R.prototype.mul=function(_,k){if(_.isZero()||k.isZero())return new a(0)._forceRed(this);var N=_.mul(k),P=N.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),D=N.isub(P).iushrn(this.shift),A=D;return D.cmp(this.m)>=0?A=D.isub(this.m):D.cmpn(0)<0&&(A=D.iadd(this.m)),A._forceRed(this)},R.prototype.invm=function(_){var k=this.imod(_._invmp(this.m).mul(this.r2));return k._forceRed(this)}})(typeof n>"u"||n,void 0)},{buffer:188}],187:[function(e,n,i){var s;n.exports=function(a){return s||(s=new o(null)),s.generate(a)};function o(c){this.rand=c}if(n.exports.Rand=o,o.prototype.generate=function(a){return this._rand(a)},o.prototype._rand=function(a){if(this.rand.getBytes)return this.rand.getBytes(a);for(var f=new Uint8Array(a),l=0;l>>24]^g[T>>>16&255]^b[C>>>8&255]^w[M&255]^p[H++],B=x[T>>>24]^g[C>>>16&255]^b[M>>>8&255]^w[y&255]^p[H++],U=x[C>>>24]^g[M>>>16&255]^b[y>>>8&255]^w[T&255]^p[H++],j=x[M>>>24]^g[y>>>16&255]^b[T>>>8&255]^w[C&255]^p[H++],y=I,T=B,C=U,M=j;return I=(d[y>>>24]<<24|d[T>>>16&255]<<16|d[C>>>8&255]<<8|d[M&255])^p[H++],B=(d[T>>>24]<<24|d[C>>>16&255]<<16|d[M>>>8&255]<<8|d[y&255])^p[H++],U=(d[C>>>24]<<24|d[M>>>16&255]<<16|d[y>>>8&255]<<8|d[T&255])^p[H++],j=(d[M>>>24]<<24|d[y>>>16&255]<<16|d[T>>>8&255]<<8|d[C&255])^p[H++],I=I>>>0,B=B>>>0,U=U>>>0,j=j>>>0,[I,B,U,j]}var a=[0,1,2,4,8,16,32,64,128,27,54],f=function(){for(var u=new Array(256),p=0;p<256;p++)p<128?u[p]=p<<1:u[p]=p<<1^283;for(var m=[],d=[],v=[[],[],[],[]],x=[[],[],[],[]],g=0,b=0,w=0;w<256;++w){var y=b^b<<1^b<<2^b<<3^b<<4;y=y>>>8^y&255^99,m[g]=y,d[y]=g;var T=u[g],C=u[T],M=u[C],I=u[y]*257^y*16843008;v[0][g]=I<<24|I>>>8,v[1][g]=I<<16|I>>>16,v[2][g]=I<<8|I>>>24,v[3][g]=I,I=M*16843009^C*65537^T*257^g*16843008,x[0][y]=I<<24|I>>>8,x[1][y]=I<<16|I>>>16,x[2][y]=I<<8|I>>>24,x[3][y]=I,g===0?g=b=1:(g=T^u[u[u[M^T]]],b^=u[u[b]])}return{SBOX:m,INV_SBOX:d,SUB_MIX:v,INV_SUB_MIX:x}}();function l(u){this._key=o(u),this._reset()}l.blockSize=4*4,l.keySize=256/8,l.prototype.blockSize=l.blockSize,l.prototype.keySize=l.keySize,l.prototype._reset=function(){for(var u=this._key,p=u.length,m=p+6,d=(m+1)*4,v=[],x=0;x>>24,g=f.SBOX[g>>>24]<<24|f.SBOX[g>>>16&255]<<16|f.SBOX[g>>>8&255]<<8|f.SBOX[g&255],g^=a[x/p|0]<<24):p>6&&x%p===4&&(g=f.SBOX[g>>>24]<<24|f.SBOX[g>>>16&255]<<16|f.SBOX[g>>>8&255]<<8|f.SBOX[g&255]),v[x]=v[x-p]^g}for(var b=[],w=0;w>>24]]^f.INV_SUB_MIX[1][f.SBOX[T>>>16&255]]^f.INV_SUB_MIX[2][f.SBOX[T>>>8&255]]^f.INV_SUB_MIX[3][f.SBOX[T&255]]}this._nRounds=m,this._keySchedule=v,this._invKeySchedule=b},l.prototype.encryptBlockRaw=function(u){return u=o(u),c(u,this._keySchedule,f.SUB_MIX,f.SBOX,this._nRounds)},l.prototype.encryptBlock=function(u){var p=this.encryptBlockRaw(u),m=s.allocUnsafe(16);return m.writeUInt32BE(p[0],0),m.writeUInt32BE(p[1],4),m.writeUInt32BE(p[2],8),m.writeUInt32BE(p[3],12),m},l.prototype.decryptBlock=function(u){u=o(u);var p=u[1];u[1]=u[3],u[3]=p;var m=c(u,this._invKeySchedule,f.INV_SUB_MIX,f.INV_SBOX,this._nRounds),d=s.allocUnsafe(16);return d.writeUInt32BE(m[0],0),d.writeUInt32BE(m[3],4),d.writeUInt32BE(m[2],8),d.writeUInt32BE(m[1],12),d},l.prototype.scrub=function(){h(this._keySchedule),h(this._invKeySchedule),h(this._key)},n.exports.AES=l},{"safe-buffer":494}],190:[function(e,n,i){var s=e("./aes"),o=e("safe-buffer").Buffer,h=e("cipher-base"),c=e("inherits"),a=e("./ghash"),f=e("buffer-xor"),l=e("./incr32");function u(d,v){var x=0;d.length!==v.length&&x++;for(var g=Math.min(d.length,v.length),b=0;b16)return b=this.cache.slice(0,16),this.cache=this.cache.slice(16),b}else if(this.cache.length>=16)return b=this.cache.slice(0,16),this.cache=this.cache.slice(16),b;return null},m.prototype.flush=function(){if(this.cache.length)return this.cache};function d(g){var b=g[15];if(b<1||b>16)throw new Error("unable to decrypt data");for(var w=-1;++w15){var g=this.cache.slice(0,16);return this.cache=this.cache.slice(16),g}return null},d.prototype.flush=function(){for(var g=16-this.cache.length,b=h.allocUnsafe(g),w=-1;++w>>0,0),l.writeUInt32BE(f[1]>>>0,4),l.writeUInt32BE(f[2]>>>0,8),l.writeUInt32BE(f[3]>>>0,12),l}function a(f){this.h=f,this.state=s.alloc(16,0),this.cache=s.allocUnsafe(0)}a.prototype.ghash=function(f){for(var l=-1;++l0;u--)f[u]=f[u]>>>1|(f[u-1]&1)<<31;f[0]=f[0]>>>1,m&&(f[0]=f[0]^225<<24)}this.state=c(l)},a.prototype.update=function(f){this.cache=s.concat([this.cache,f]);for(var l;this.cache.length>=16;)l=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(l)},a.prototype.final=function(f,l){return this.cache.length&&this.ghash(s.concat([this.cache,o],16)),this.ghash(c([0,f,0,l])),this.state},n.exports=a},{"safe-buffer":494}],195:[function(e,n,i){function s(o){for(var h=o.length,c;h--;)if(c=o.readUInt8(h),c===255)o.writeUInt8(0,h);else{c++,o.writeUInt8(c,h);break}}n.exports=s},{}],196:[function(e,n,i){var s=e("buffer-xor");i.encrypt=function(o,h){var c=s(h,o._prev);return o._prev=o._cipher.encryptBlock(c),o._prev},i.decrypt=function(o,h){var c=o._prev;o._prev=h;var a=o._cipher.decryptBlock(h);return s(a,c)}},{"buffer-xor":219}],197:[function(e,n,i){var s=e("safe-buffer").Buffer,o=e("buffer-xor");function h(c,a,f){var l=a.length,u=o(a,c._cache);return c._cache=c._cache.slice(l),c._prev=s.concat([c._prev,f?a:u]),u}i.encrypt=function(c,a,f){for(var l=s.allocUnsafe(0),u;a.length;)if(c._cache.length===0&&(c._cache=c._cipher.encryptBlock(c._prev),c._prev=s.allocUnsafe(0)),c._cache.length<=a.length)u=c._cache.length,l=s.concat([l,h(c,a.slice(0,u),f)]),a=a.slice(u);else{l=s.concat([l,h(c,a,f)]);break}return l}},{"buffer-xor":219,"safe-buffer":494}],198:[function(e,n,i){var s=e("safe-buffer").Buffer;function o(c,a,f){for(var l,u=-1,p=8,m=0,d,v;++u>u%8,c._prev=h(c._prev,f?d:v);return m}function h(c,a){var f=c.length,l=-1,u=s.allocUnsafe(c.length);for(c=s.concat([c,s.from([a])]);++l>7;return u}i.encrypt=function(c,a,f){for(var l=a.length,u=s.allocUnsafe(l),p=-1;++p=0||!p.umod(l.prime1)||!p.umod(l.prime2));return p}function f(l,u){var p=c(u),m=u.modulus.byteLength(),d=new o(l).mul(p.blinder).umod(u.modulus),v=d.toRed(o.mont(u.prime1)),x=d.toRed(o.mont(u.prime2)),g=u.coefficient,b=u.prime1,w=u.prime2,y=v.redPow(u.exponent1).fromRed(),T=x.redPow(u.exponent2).fromRed(),C=y.isub(T).imul(g).umod(b).imul(w);return T.iadd(C).imul(p.unblinder).umod(u.modulus).toArrayLike(s,"be",m)}f.getr=a,n.exports=f}).call(this)}).call(this,e("buffer").Buffer)},{"bn.js":186,buffer:220,randombytes:475}],210:[function(e,n,i){n.exports=e("./browser/algorithms.json")},{"./browser/algorithms.json":211}],211:[function(e,n,i){n.exports={sha224WithRSAEncryption:{sign:"rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},"RSA-SHA224":{sign:"ecdsa/rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},sha256WithRSAEncryption:{sign:"rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},"RSA-SHA256":{sign:"ecdsa/rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},sha384WithRSAEncryption:{sign:"rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},"RSA-SHA384":{sign:"ecdsa/rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},sha512WithRSAEncryption:{sign:"rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},"RSA-SHA512":{sign:"ecdsa/rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},"RSA-SHA1":{sign:"rsa",hash:"sha1",id:"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{sign:"ecdsa",hash:"sha1",id:""},sha256:{sign:"ecdsa",hash:"sha256",id:""},sha224:{sign:"ecdsa",hash:"sha224",id:""},sha384:{sign:"ecdsa",hash:"sha384",id:""},sha512:{sign:"ecdsa",hash:"sha512",id:""},"DSA-SHA":{sign:"dsa",hash:"sha1",id:""},"DSA-SHA1":{sign:"dsa",hash:"sha1",id:""},DSA:{sign:"dsa",hash:"sha1",id:""},"DSA-WITH-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-WITH-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-WITH-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-WITH-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-RIPEMD160":{sign:"dsa",hash:"rmd160",id:""},ripemd160WithRSA:{sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},"RSA-RIPEMD160":{sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},md5WithRSAEncryption:{sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"},"RSA-MD5":{sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"}}},{}],212:[function(e,n,i){n.exports={"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}},{}],213:[function(e,n,i){var s=e("safe-buffer").Buffer,o=e("create-hash"),h=e("readable-stream"),c=e("inherits"),a=e("./sign"),f=e("./verify"),l=e("./algorithms.json");Object.keys(l).forEach(function(v){l[v].id=s.from(l[v].id,"hex"),l[v.toLowerCase()]=l[v]});function u(v){h.Writable.call(this);var x=l[v];if(!x)throw new Error("Unknown message digest");this._hashType=x.hash,this._hash=o(x.hash),this._tag=x.id,this._signType=x.sign}c(u,h.Writable),u.prototype._write=function(x,g,b){this._hash.update(x),b()},u.prototype.update=function(x,g){return typeof x=="string"&&(x=s.from(x,g)),this._hash.update(x),this},u.prototype.sign=function(x,g){this.end();var b=this._hash.digest(),w=a(b,x,this._hashType,this._signType,this._tag);return g?w.toString(g):w};function p(v){h.Writable.call(this);var x=l[v];if(!x)throw new Error("Unknown message digest");this._hash=o(x.hash),this._tag=x.id,this._signType=x.sign}c(p,h.Writable),p.prototype._write=function(x,g,b){this._hash.update(x),b()},p.prototype.update=function(x,g){return typeof x=="string"&&(x=s.from(x,g)),this._hash.update(x),this},p.prototype.verify=function(x,g,b){typeof g=="string"&&(g=s.from(g,b)),this.end();var w=this._hash.digest();return f(g,w,x,this._signType,this._tag)};function m(v){return new u(v)}function d(v){return new p(v)}n.exports={Sign:m,Verify:d,createSign:m,createVerify:d}},{"./algorithms.json":211,"./sign":214,"./verify":215,"create-hash":386,inherits:440,"readable-stream":491,"safe-buffer":494}],214:[function(e,n,i){var s=e("safe-buffer").Buffer,o=e("create-hmac"),h=e("browserify-rsa"),c=e("elliptic").ec,a=e("bn.js"),f=e("parse-asn1"),l=e("./curves.json");function u(y,T,C,M,I){var B=f(T);if(B.curve){if(M!=="ecdsa"&&M!=="ecdsa/rsa")throw new Error("wrong private key type");return p(y,B)}else if(B.type==="dsa"){if(M!=="dsa")throw new Error("wrong private key type");return m(y,B,C)}else if(M!=="rsa"&&M!=="ecdsa/rsa")throw new Error("wrong private key type");y=s.concat([I,y]);for(var U=B.modulus.byteLength(),j=[0,1];y.length+j.length+10&&C.ishrn(M),C}function g(y,T){y=x(y,T),y=y.mod(T);var C=s.from(y.toArray());if(C.length=d)throw new Error("invalid sig")}n.exports=f},{"./curves.json":212,"bn.js":186,elliptic:405,"parse-asn1":459,"safe-buffer":494}],216:[function(e,n,i){},{}],217:[function(e,n,i){var s=e("buffer"),o=s.Buffer;function h(a,f){for(var l in a)f[l]=a[l]}o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow?n.exports=s:(h(s,i),i.Buffer=c);function c(a,f,l){return o(a,f,l)}h(o,c),c.from=function(a,f,l){if(typeof a=="number")throw new TypeError("Argument must not be a number");return o(a,f,l)},c.alloc=function(a,f,l){if(typeof a!="number")throw new TypeError("Argument must be a number");var u=o(a);return f!==void 0?typeof l=="string"?u.fill(f,l):u.fill(f):u.fill(0),u},c.allocUnsafe=function(a){if(typeof a!="number")throw new TypeError("Argument must be a number");return o(a)},c.allocUnsafeSlow=function(a){if(typeof a!="number")throw new TypeError("Argument must be a number");return s.SlowBuffer(a)}},{buffer:220}],218:[function(e,n,i){var s=e("safe-buffer").Buffer,o=s.isEncoding||function(T){switch(T=""+T,T&&T.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 h(T){if(!T)return"utf8";for(var C;;)switch(T){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 T;default:if(C)return;T=(""+T).toLowerCase(),C=!0}}function c(T){var C=h(T);if(typeof C!="string"&&(s.isEncoding===o||!o(T)))throw new Error("Unknown encoding: "+T);return C||T}i.StringDecoder=a;function a(T){this.encoding=c(T);var C;switch(this.encoding){case"utf16le":this.text=v,this.end=x,C=4;break;case"utf8":this.fillLast=p,C=4;break;case"base64":this.text=g,this.end=b,C=3;break;default:this.write=w,this.end=y;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=s.allocUnsafe(C)}a.prototype.write=function(T){if(T.length===0)return"";var C,M;if(this.lastNeed){if(C=this.fillLast(T),C===void 0)return"";M=this.lastNeed,this.lastNeed=0}else M=0;return M>5===6?2:T>>4===14?3:T>>3===30?4:T>>6===2?-1:-2}function l(T,C,M){var I=C.length-1;if(I=0?(B>0&&(T.lastNeed=B-1),B):--I=0?(B>0&&(T.lastNeed=B-2),B):--I=0?(B>0&&(B===2?B=0:T.lastNeed=B-3),B):0))}function u(T,C,M){if((C[0]&192)!==128)return T.lastNeed=0,"�";if(T.lastNeed>1&&C.length>1){if((C[1]&192)!==128)return T.lastNeed=1,"�";if(T.lastNeed>2&&C.length>2&&(C[2]&192)!==128)return T.lastNeed=2,"�"}}function p(T){var C=this.lastTotal-this.lastNeed,M=u(this,T);if(M!==void 0)return M;if(this.lastNeed<=T.length)return T.copy(this.lastChar,C,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);T.copy(this.lastChar,C,0,T.length),this.lastNeed-=T.length}function m(T,C){var M=l(this,T,C);if(!this.lastNeed)return T.toString("utf8",C);this.lastTotal=M;var I=T.length-(M-this.lastNeed);return T.copy(this.lastChar,0,I),T.toString("utf8",C,I)}function d(T){var C=T&&T.length?this.write(T):"";return this.lastNeed?C+"�":C}function v(T,C){if((T.length-C)%2===0){var M=T.toString("utf16le",C);if(M){var I=M.charCodeAt(M.length-1);if(I>=55296&&I<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=T[T.length-2],this.lastChar[1]=T[T.length-1],M.slice(0,-1)}return M}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=T[T.length-1],T.toString("utf16le",C,T.length-1)}function x(T){var C=T&&T.length?this.write(T):"";if(this.lastNeed){var M=this.lastTotal-this.lastNeed;return C+this.lastChar.toString("utf16le",0,M)}return C}function g(T,C){var M=(T.length-C)%3;return M===0?T.toString("base64",C):(this.lastNeed=3-M,this.lastTotal=3,M===1?this.lastChar[0]=T[T.length-1]:(this.lastChar[0]=T[T.length-2],this.lastChar[1]=T[T.length-1]),T.toString("base64",C,T.length-M))}function b(T){var C=T&&T.length?this.write(T):"";return this.lastNeed?C+this.lastChar.toString("base64",0,3-this.lastNeed):C}function w(T){return T.toString(this.encoding)}function y(T){return T&&T.length?this.write(T):""}},{"safe-buffer":217}],219:[function(e,n,i){(function(s){(function(){n.exports=function(h,c){for(var a=Math.min(h.length,c.length),f=new s(a),l=0;lc)throw new RangeError('The value "'+Z+'" is invalid for option "size"');var W=new Uint8Array(Z);return W.__proto__=l.prototype,W}function l(Z,W,V){if(typeof Z=="number"){if(typeof W=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return d(Z)}return u(Z,W,V)}typeof Symbol<"u"&&Symbol.species!=null&&l[Symbol.species]===l&&Object.defineProperty(l,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),l.poolSize=8192;function u(Z,W,V){if(typeof Z=="string")return v(Z,W);if(ArrayBuffer.isView(Z))return x(Z);if(Z==null)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof Z);if(ae(Z,ArrayBuffer)||Z&&ae(Z.buffer,ArrayBuffer))return g(Z,W,V);if(typeof Z=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');var fe=Z.valueOf&&Z.valueOf();if(fe!=null&&fe!==Z)return l.from(fe,W,V);var ye=b(Z);if(ye)return ye;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof Z[Symbol.toPrimitive]=="function")return l.from(Z[Symbol.toPrimitive]("string"),W,V);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof Z)}l.from=function(Z,W,V){return u(Z,W,V)},l.prototype.__proto__=Uint8Array.prototype,l.__proto__=Uint8Array;function p(Z){if(typeof Z!="number")throw new TypeError('"size" argument must be of type number');if(Z<0)throw new RangeError('The value "'+Z+'" is invalid for option "size"')}function m(Z,W,V){return p(Z),Z<=0?f(Z):W!==void 0?typeof V=="string"?f(Z).fill(W,V):f(Z).fill(W):f(Z)}l.alloc=function(Z,W,V){return m(Z,W,V)};function d(Z){return p(Z),f(Z<0?0:w(Z)|0)}l.allocUnsafe=function(Z){return d(Z)},l.allocUnsafeSlow=function(Z){return d(Z)};function v(Z,W){if((typeof W!="string"||W==="")&&(W="utf8"),!l.isEncoding(W))throw new TypeError("Unknown encoding: "+W);var V=T(Z,W)|0,fe=f(V),ye=fe.write(Z,W);return ye!==V&&(fe=fe.slice(0,ye)),fe}function x(Z){for(var W=Z.length<0?0:w(Z.length)|0,V=f(W),fe=0;fe=c)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+c.toString(16)+" bytes");return Z|0}function y(Z){return+Z!=Z&&(Z=0),l.alloc(+Z)}l.isBuffer=function(W){return W!=null&&W._isBuffer===!0&&W!==l.prototype},l.compare=function(W,V){if(ae(W,Uint8Array)&&(W=l.from(W,W.offset,W.byteLength)),ae(V,Uint8Array)&&(V=l.from(V,V.offset,V.byteLength)),!l.isBuffer(W)||!l.isBuffer(V))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(W===V)return 0;for(var fe=W.length,ye=V.length,X=0,ve=Math.min(fe,ye);X2&&arguments[2]===!0;if(!fe&&V===0)return 0;for(var ye=!1;;)switch(W){case"ascii":case"latin1":case"binary":return V;case"utf8":case"utf-8":return q(Z).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return V*2;case"hex":return V>>>1;case"base64":return he(Z).length;default:if(ye)return fe?-1:q(Z).length;W=(""+W).toLowerCase(),ye=!0}}l.byteLength=T;function C(Z,W,V){var fe=!1;if((W===void 0||W<0)&&(W=0),W>this.length||((V===void 0||V>this.length)&&(V=this.length),V<=0)||(V>>>=0,W>>>=0,V<=W))return"";for(Z||(Z="utf8");;)switch(Z){case"hex":return A(this,W,V);case"utf8":case"utf-8":return _(this,W,V);case"ascii":return P(this,W,V);case"latin1":case"binary":return D(this,W,V);case"base64":return F(this,W,V);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,W,V);default:if(fe)throw new TypeError("Unknown encoding: "+Z);Z=(Z+"").toLowerCase(),fe=!0}}l.prototype._isBuffer=!0;function M(Z,W,V){var fe=Z[W];Z[W]=Z[V],Z[V]=fe}l.prototype.swap16=function(){var W=this.length;if(W%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var V=0;VV&&(W+=" ... "),""},l.prototype.compare=function(W,V,fe,ye,X){if(ae(W,Uint8Array)&&(W=l.from(W,W.offset,W.byteLength)),!l.isBuffer(W))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof W);if(V===void 0&&(V=0),fe===void 0&&(fe=W?W.length:0),ye===void 0&&(ye=0),X===void 0&&(X=this.length),V<0||fe>W.length||ye<0||X>this.length)throw new RangeError("out of range index");if(ye>=X&&V>=fe)return 0;if(ye>=X)return-1;if(V>=fe)return 1;if(V>>>=0,fe>>>=0,ye>>>=0,X>>>=0,this===W)return 0;for(var ve=X-ye,ke=fe-V,ee=Math.min(ve,ke),ne=this.slice(ye,X),de=W.slice(V,fe),_e=0;_e2147483647?V=2147483647:V<-2147483648&&(V=-2147483648),V=+V,te(V)&&(V=ye?0:Z.length-1),V<0&&(V=Z.length+V),V>=Z.length){if(ye)return-1;V=Z.length-1}else if(V<0)if(ye)V=0;else return-1;if(typeof W=="string"&&(W=l.from(W,fe)),l.isBuffer(W))return W.length===0?-1:B(Z,W,V,fe,ye);if(typeof W=="number")return W=W&255,typeof Uint8Array.prototype.indexOf=="function"?ye?Uint8Array.prototype.indexOf.call(Z,W,V):Uint8Array.prototype.lastIndexOf.call(Z,W,V):B(Z,[W],V,fe,ye);throw new TypeError("val must be string, number or Buffer")}function B(Z,W,V,fe,ye){var X=1,ve=Z.length,ke=W.length;if(fe!==void 0&&(fe=String(fe).toLowerCase(),fe==="ucs2"||fe==="ucs-2"||fe==="utf16le"||fe==="utf-16le")){if(Z.length<2||W.length<2)return-1;X=2,ve/=2,ke/=2,V/=2}function ee(Ae,Ne){return X===1?Ae[Ne]:Ae.readUInt16BE(Ne*X)}var ne;if(ye){var de=-1;for(ne=V;neve&&(V=ve-ke),ne=V;ne>=0;ne--){for(var _e=!0,Re=0;Reye&&(fe=ye)):fe=ye;var X=W.length;fe>X/2&&(fe=X/2);for(var ve=0;ve>>0,isFinite(fe)?(fe=fe>>>0,ye===void 0&&(ye="utf8")):(ye=fe,fe=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var X=this.length-V;if((fe===void 0||fe>X)&&(fe=X),W.length>0&&(fe<0||V<0)||V>this.length)throw new RangeError("Attempt to write outside buffer bounds");ye||(ye="utf8");for(var ve=!1;;)switch(ye){case"hex":return U(this,W,V,fe);case"utf8":case"utf-8":return j(this,W,V,fe);case"ascii":return H(this,W,V,fe);case"latin1":case"binary":return G(this,W,V,fe);case"base64":return L(this,W,V,fe);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,W,V,fe);default:if(ve)throw new TypeError("Unknown encoding: "+ye);ye=(""+ye).toLowerCase(),ve=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function F(Z,W,V){return W===0&&V===Z.length?o.fromByteArray(Z):o.fromByteArray(Z.slice(W,V))}function _(Z,W,V){V=Math.min(Z.length,V);for(var fe=[],ye=W;ye239?4:X>223?3:X>191?2:1;if(ye+ke<=V){var ee,ne,de,_e;switch(ke){case 1:X<128&&(ve=X);break;case 2:ee=Z[ye+1],(ee&192)===128&&(_e=(X&31)<<6|ee&63,_e>127&&(ve=_e));break;case 3:ee=Z[ye+1],ne=Z[ye+2],(ee&192)===128&&(ne&192)===128&&(_e=(X&15)<<12|(ee&63)<<6|ne&63,_e>2047&&(_e<55296||_e>57343)&&(ve=_e));break;case 4:ee=Z[ye+1],ne=Z[ye+2],de=Z[ye+3],(ee&192)===128&&(ne&192)===128&&(de&192)===128&&(_e=(X&15)<<18|(ee&63)<<12|(ne&63)<<6|de&63,_e>65535&&_e<1114112&&(ve=_e))}}ve===null?(ve=65533,ke=1):ve>65535&&(ve-=65536,fe.push(ve>>>10&1023|55296),ve=56320|ve&1023),fe.push(ve),ye+=ke}return N(fe)}var k=4096;function N(Z){var W=Z.length;if(W<=k)return String.fromCharCode.apply(String,Z);for(var V="",fe=0;fefe)&&(V=fe);for(var ye="",X=W;Xfe&&(W=fe),V<0?(V+=fe,V<0&&(V=0)):V>fe&&(V=fe),VV)throw new RangeError("Trying to access beyond buffer length")}l.prototype.readUIntLE=function(W,V,fe){W=W>>>0,V=V>>>0,fe||E(W,V,this.length);for(var ye=this[W],X=1,ve=0;++ve>>0,V=V>>>0,fe||E(W,V,this.length);for(var ye=this[W+--V],X=1;V>0&&(X*=256);)ye+=this[W+--V]*X;return ye},l.prototype.readUInt8=function(W,V){return W=W>>>0,V||E(W,1,this.length),this[W]},l.prototype.readUInt16LE=function(W,V){return W=W>>>0,V||E(W,2,this.length),this[W]|this[W+1]<<8},l.prototype.readUInt16BE=function(W,V){return W=W>>>0,V||E(W,2,this.length),this[W]<<8|this[W+1]},l.prototype.readUInt32LE=function(W,V){return W=W>>>0,V||E(W,4,this.length),(this[W]|this[W+1]<<8|this[W+2]<<16)+this[W+3]*16777216},l.prototype.readUInt32BE=function(W,V){return W=W>>>0,V||E(W,4,this.length),this[W]*16777216+(this[W+1]<<16|this[W+2]<<8|this[W+3])},l.prototype.readIntLE=function(W,V,fe){W=W>>>0,V=V>>>0,fe||E(W,V,this.length);for(var ye=this[W],X=1,ve=0;++ve=X&&(ye-=Math.pow(2,8*V)),ye},l.prototype.readIntBE=function(W,V,fe){W=W>>>0,V=V>>>0,fe||E(W,V,this.length);for(var ye=V,X=1,ve=this[W+--ye];ye>0&&(X*=256);)ve+=this[W+--ye]*X;return X*=128,ve>=X&&(ve-=Math.pow(2,8*V)),ve},l.prototype.readInt8=function(W,V){return W=W>>>0,V||E(W,1,this.length),this[W]&128?(255-this[W]+1)*-1:this[W]},l.prototype.readInt16LE=function(W,V){W=W>>>0,V||E(W,2,this.length);var fe=this[W]|this[W+1]<<8;return fe&32768?fe|4294901760:fe},l.prototype.readInt16BE=function(W,V){W=W>>>0,V||E(W,2,this.length);var fe=this[W+1]|this[W]<<8;return fe&32768?fe|4294901760:fe},l.prototype.readInt32LE=function(W,V){return W=W>>>0,V||E(W,4,this.length),this[W]|this[W+1]<<8|this[W+2]<<16|this[W+3]<<24},l.prototype.readInt32BE=function(W,V){return W=W>>>0,V||E(W,4,this.length),this[W]<<24|this[W+1]<<16|this[W+2]<<8|this[W+3]},l.prototype.readFloatLE=function(W,V){return W=W>>>0,V||E(W,4,this.length),h.read(this,W,!0,23,4)},l.prototype.readFloatBE=function(W,V){return W=W>>>0,V||E(W,4,this.length),h.read(this,W,!1,23,4)},l.prototype.readDoubleLE=function(W,V){return W=W>>>0,V||E(W,8,this.length),h.read(this,W,!0,52,8)},l.prototype.readDoubleBE=function(W,V){return W=W>>>0,V||E(W,8,this.length),h.read(this,W,!1,52,8)};function O(Z,W,V,fe,ye,X){if(!l.isBuffer(Z))throw new TypeError('"buffer" argument must be a Buffer instance');if(W>ye||WZ.length)throw new RangeError("Index out of range")}l.prototype.writeUIntLE=function(W,V,fe,ye){if(W=+W,V=V>>>0,fe=fe>>>0,!ye){var X=Math.pow(2,8*fe)-1;O(this,W,V,fe,X,0)}var ve=1,ke=0;for(this[V]=W&255;++ke>>0,fe=fe>>>0,!ye){var X=Math.pow(2,8*fe)-1;O(this,W,V,fe,X,0)}var ve=fe-1,ke=1;for(this[V+ve]=W&255;--ve>=0&&(ke*=256);)this[V+ve]=W/ke&255;return V+fe},l.prototype.writeUInt8=function(W,V,fe){return W=+W,V=V>>>0,fe||O(this,W,V,1,255,0),this[V]=W&255,V+1},l.prototype.writeUInt16LE=function(W,V,fe){return W=+W,V=V>>>0,fe||O(this,W,V,2,65535,0),this[V]=W&255,this[V+1]=W>>>8,V+2},l.prototype.writeUInt16BE=function(W,V,fe){return W=+W,V=V>>>0,fe||O(this,W,V,2,65535,0),this[V]=W>>>8,this[V+1]=W&255,V+2},l.prototype.writeUInt32LE=function(W,V,fe){return W=+W,V=V>>>0,fe||O(this,W,V,4,4294967295,0),this[V+3]=W>>>24,this[V+2]=W>>>16,this[V+1]=W>>>8,this[V]=W&255,V+4},l.prototype.writeUInt32BE=function(W,V,fe){return W=+W,V=V>>>0,fe||O(this,W,V,4,4294967295,0),this[V]=W>>>24,this[V+1]=W>>>16,this[V+2]=W>>>8,this[V+3]=W&255,V+4},l.prototype.writeIntLE=function(W,V,fe,ye){if(W=+W,V=V>>>0,!ye){var X=Math.pow(2,8*fe-1);O(this,W,V,fe,X-1,-X)}var ve=0,ke=1,ee=0;for(this[V]=W&255;++ve>0)-ee&255;return V+fe},l.prototype.writeIntBE=function(W,V,fe,ye){if(W=+W,V=V>>>0,!ye){var X=Math.pow(2,8*fe-1);O(this,W,V,fe,X-1,-X)}var ve=fe-1,ke=1,ee=0;for(this[V+ve]=W&255;--ve>=0&&(ke*=256);)W<0&&ee===0&&this[V+ve+1]!==0&&(ee=1),this[V+ve]=(W/ke>>0)-ee&255;return V+fe},l.prototype.writeInt8=function(W,V,fe){return W=+W,V=V>>>0,fe||O(this,W,V,1,127,-128),W<0&&(W=255+W+1),this[V]=W&255,V+1},l.prototype.writeInt16LE=function(W,V,fe){return W=+W,V=V>>>0,fe||O(this,W,V,2,32767,-32768),this[V]=W&255,this[V+1]=W>>>8,V+2},l.prototype.writeInt16BE=function(W,V,fe){return W=+W,V=V>>>0,fe||O(this,W,V,2,32767,-32768),this[V]=W>>>8,this[V+1]=W&255,V+2},l.prototype.writeInt32LE=function(W,V,fe){return W=+W,V=V>>>0,fe||O(this,W,V,4,2147483647,-2147483648),this[V]=W&255,this[V+1]=W>>>8,this[V+2]=W>>>16,this[V+3]=W>>>24,V+4},l.prototype.writeInt32BE=function(W,V,fe){return W=+W,V=V>>>0,fe||O(this,W,V,4,2147483647,-2147483648),W<0&&(W=4294967295+W+1),this[V]=W>>>24,this[V+1]=W>>>16,this[V+2]=W>>>8,this[V+3]=W&255,V+4};function z(Z,W,V,fe,ye,X){if(V+fe>Z.length)throw new RangeError("Index out of range");if(V<0)throw new RangeError("Index out of range")}function J(Z,W,V,fe,ye){return W=+W,V=V>>>0,ye||z(Z,W,V,4),h.write(Z,W,V,fe,23,4),V+4}l.prototype.writeFloatLE=function(W,V,fe){return J(this,W,V,!0,fe)},l.prototype.writeFloatBE=function(W,V,fe){return J(this,W,V,!1,fe)};function re(Z,W,V,fe,ye){return W=+W,V=V>>>0,ye||z(Z,W,V,8),h.write(Z,W,V,fe,52,8),V+8}l.prototype.writeDoubleLE=function(W,V,fe){return re(this,W,V,!0,fe)},l.prototype.writeDoubleBE=function(W,V,fe){return re(this,W,V,!1,fe)},l.prototype.copy=function(W,V,fe,ye){if(!l.isBuffer(W))throw new TypeError("argument should be a Buffer");if(fe||(fe=0),!ye&&ye!==0&&(ye=this.length),V>=W.length&&(V=W.length),V||(V=0),ye>0&&ye=this.length)throw new RangeError("Index out of range");if(ye<0)throw new RangeError("sourceEnd out of bounds");ye>this.length&&(ye=this.length),W.length-V=0;--ve)W[ve+V]=this[ve+fe];else Uint8Array.prototype.set.call(W,this.subarray(fe,ye),V);return X},l.prototype.fill=function(W,V,fe,ye){if(typeof W=="string"){if(typeof V=="string"?(ye=V,V=0,fe=this.length):typeof fe=="string"&&(ye=fe,fe=this.length),ye!==void 0&&typeof ye!="string")throw new TypeError("encoding must be a string");if(typeof ye=="string"&&!l.isEncoding(ye))throw new TypeError("Unknown encoding: "+ye);if(W.length===1){var X=W.charCodeAt(0);(ye==="utf8"&&X<128||ye==="latin1")&&(W=X)}}else typeof W=="number"&&(W=W&255);if(V<0||this.length>>0,fe=fe===void 0?this.length:fe>>>0,W||(W=0);var ve;if(typeof W=="number")for(ve=V;ve55295&&V<57344){if(!ye){if(V>56319){(W-=3)>-1&&X.push(239,191,189);continue}else if(ve+1===fe){(W-=3)>-1&&X.push(239,191,189);continue}ye=V;continue}if(V<56320){(W-=3)>-1&&X.push(239,191,189),ye=V;continue}V=(ye-55296<<10|V-56320)+65536}else ye&&(W-=3)>-1&&X.push(239,191,189);if(ye=null,V<128){if((W-=1)<0)break;X.push(V)}else if(V<2048){if((W-=2)<0)break;X.push(V>>6|192,V&63|128)}else if(V<65536){if((W-=3)<0)break;X.push(V>>12|224,V>>6&63|128,V&63|128)}else if(V<1114112){if((W-=4)<0)break;X.push(V>>18|240,V>>12&63|128,V>>6&63|128,V&63|128)}else throw new Error("Invalid code point")}return X}function K(Z){for(var W=[],V=0;V>8,ye=V%256,X.push(ye),X.push(fe);return X}function he(Z){return o.toByteArray(Ce(Z))}function we(Z,W,V,fe){for(var ye=0;ye=W.length||ye>=Z.length);++ye)W[ye+V]=Z[ye];return ye}function ae(Z,W){return Z instanceof W||Z!=null&&Z.constructor!=null&&Z.constructor.name!=null&&Z.constructor.name===W.name}function te(Z){return Z!==Z}}).call(this)}).call(this,e("buffer").Buffer)},{"base64-js":185,buffer:220,ieee754:439}],221:[function(e,n,i){var s=e("safe-buffer").Buffer,o=e("stream").Transform,h=e("string_decoder").StringDecoder,c=e("inherits");function a(f){o.call(this),this.hashMode=typeof f=="string",this.hashMode?this[f]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}c(a,o),a.prototype.update=function(f,l,u){typeof f=="string"&&(f=s.from(f,l));var p=this._update(f);return this.hashMode?this:(u&&(p=this._toString(p,u)),p)},a.prototype.setAutoPadding=function(){},a.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},a.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},a.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},a.prototype._transform=function(f,l,u){var p;try{this.hashMode?this._update(f):this.push(this._update(f))}catch(m){p=m}finally{u(p)}},a.prototype._flush=function(f){var l;try{this.push(this.__final())}catch(u){l=u}f(l)},a.prototype._finalOrDigest=function(f){var l=this.__final()||s.alloc(0);return f&&(l=this._toString(l,f,!0)),l},a.prototype._toString=function(f,l,u){if(this._decoder||(this._decoder=new h(l),this._encoding=l),this._encoding!==l)throw new Error("can't switch encodings");var p=this._decoder.write(f);return u&&(p+=this._decoder.end()),p},n.exports=a},{inherits:440,"safe-buffer":494,stream:505,string_decoder:218}],222:[function(e,n,i){var s=e("../internals/is-callable"),o=e("../internals/try-to-string"),h=TypeError;n.exports=function(c){if(s(c))return c;throw new h(o(c)+" is not a function")}},{"../internals/is-callable":285,"../internals/try-to-string":349}],223:[function(e,n,i){var s=e("../internals/is-constructor"),o=e("../internals/try-to-string"),h=TypeError;n.exports=function(c){if(s(c))return c;throw new h(o(c)+" is not a constructor")}},{"../internals/is-constructor":286,"../internals/try-to-string":349}],224:[function(e,n,i){var s=e("../internals/is-callable"),o=String,h=TypeError;n.exports=function(c){if(typeof c=="object"||s(c))return c;throw new h("Can't set "+o(c)+" as a prototype")}},{"../internals/is-callable":285}],225:[function(e,n,i){var s=e("../internals/well-known-symbol"),o=e("../internals/object-create"),h=e("../internals/object-define-property").f,c=s("unscopables"),a=Array.prototype;a[c]===void 0&&h(a,c,{configurable:!0,value:o(null)}),n.exports=function(f){a[c][f]=!0}},{"../internals/object-create":306,"../internals/object-define-property":308,"../internals/well-known-symbol":357}],226:[function(e,n,i){var s=e("../internals/object-is-prototype-of"),o=TypeError;n.exports=function(h,c){if(s(c,h))return h;throw new o("Incorrect invocation")}},{"../internals/object-is-prototype-of":314}],227:[function(e,n,i){var s=e("../internals/is-object"),o=String,h=TypeError;n.exports=function(c){if(s(c))return c;throw new h(o(c)+" is not an object")}},{"../internals/is-object":289}],228:[function(e,n,i){var s=e("../internals/to-indexed-object"),o=e("../internals/to-absolute-index"),h=e("../internals/length-of-array-like"),c=function(a){return function(f,l,u){var p=s(f),m=h(p),d=o(u,m),v;if(a&&l!==l){for(;m>d;)if(v=p[d++],v!==v)return!0}else for(;m>d;d++)if((a||d in p)&&p[d]===l)return a||d||0;return!a&&-1}};n.exports={includes:c(!0),indexOf:c(!1)}},{"../internals/length-of-array-like":299,"../internals/to-absolute-index":340,"../internals/to-indexed-object":341}],229:[function(e,n,i){var s=e("../internals/function-bind-context"),o=e("../internals/function-uncurry-this"),h=e("../internals/indexed-object"),c=e("../internals/to-object"),a=e("../internals/length-of-array-like"),f=e("../internals/array-species-create"),l=o([].push),u=function(p){var m=p===1,d=p===2,v=p===3,x=p===4,g=p===6,b=p===7,w=p===5||g;return function(y,T,C,M){for(var I=c(y),B=h(I),U=s(T,C),j=a(B),H=0,G=M||f,L=m?G(y,j):d||b?G(y,0):void 0,R,F;j>H;H++)if((w||H in B)&&(R=B[H],F=U(R,H,I),p))if(m)L[H]=F;else if(F)switch(p){case 3:return!0;case 5:return R;case 6:return H;case 2:l(L,R)}else switch(p){case 4:return!1;case 7:l(L,R)}return g?-1:v||x?x:L}};n.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterReject:u(7)}},{"../internals/array-species-create":233,"../internals/function-bind-context":262,"../internals/function-uncurry-this":268,"../internals/indexed-object":280,"../internals/length-of-array-like":299,"../internals/to-object":344}],230:[function(e,n,i){var s=e("../internals/to-absolute-index"),o=e("../internals/length-of-array-like"),h=e("../internals/create-property"),c=Array,a=Math.max;n.exports=function(f,l,u){for(var p=o(f),m=s(l,p),d=s(u===void 0?p:u,p),v=c(a(d-m,0)),x=0;m"u"&&s!==void 0;n.exports={all:s,IS_HTMLDDA:o}},{}],249:[function(e,n,i){var s=e("../internals/global"),o=e("../internals/is-object"),h=s.document,c=o(h)&&o(h.createElement);n.exports=function(a){return c?h.createElement(a):{}}},{"../internals/global":274,"../internals/is-object":289}],250:[function(e,n,i){var s=e("../internals/engine-is-deno"),o=e("../internals/engine-is-node");n.exports=!s&&!o&&typeof window=="object"&&typeof document=="object"},{"../internals/engine-is-deno":251,"../internals/engine-is-node":254}],251:[function(e,n,i){n.exports=typeof Deno=="object"&&Deno&&typeof Deno.version=="object"},{}],252:[function(e,n,i){var s=e("../internals/engine-user-agent");n.exports=/ipad|iphone|ipod/i.test(s)&&typeof Pebble<"u"},{"../internals/engine-user-agent":256}],253:[function(e,n,i){var s=e("../internals/engine-user-agent");n.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(s)},{"../internals/engine-user-agent":256}],254:[function(e,n,i){var s=e("../internals/global"),o=e("../internals/classof-raw");n.exports=o(s.process)==="process"},{"../internals/classof-raw":235,"../internals/global":274}],255:[function(e,n,i){var s=e("../internals/engine-user-agent");n.exports=/web0s(?!.*chrome)/i.test(s)},{"../internals/engine-user-agent":256}],256:[function(e,n,i){n.exports=typeof navigator<"u"&&String(navigator.userAgent)||""},{}],257:[function(e,n,i){var s=e("../internals/global"),o=e("../internals/engine-user-agent"),h=s.process,c=s.Deno,a=h&&h.versions||c&&c.version,f=a&&a.v8,l,u;f&&(l=f.split("."),u=l[0]>0&&l[0]<4?1:+(l[0]+l[1])),!u&&o&&(l=o.match(/Edge\/(\d+)/),(!l||l[1]>=74)&&(l=o.match(/Chrome\/(\d+)/),l&&(u=+l[1]))),n.exports=u},{"../internals/engine-user-agent":256,"../internals/global":274}],258:[function(e,n,i){n.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},{}],259:[function(e,n,i){var s=e("../internals/global"),o=e("../internals/object-get-own-property-descriptor").f,h=e("../internals/create-non-enumerable-property"),c=e("../internals/define-built-in"),a=e("../internals/define-global-property"),f=e("../internals/copy-constructor-properties"),l=e("../internals/is-forced");n.exports=function(u,p){var m=u.target,d=u.global,v=u.stat,x,g,b,w,y,T;if(d?g=s:v?g=s[m]||a(m,{}):g=(s[m]||{}).prototype,g)for(b in p){if(y=p[b],u.dontCallGetSet?(T=o(g,b),w=T&&T.value):w=g[b],x=l(d?b:m+(v?".":"#")+b,u.forced),!x&&w!==void 0){if(typeof y==typeof w)continue;f(y,w)}(u.sham||w&&w.sham)&&h(y,"sham",!0),c(g,b,y,u)}}},{"../internals/copy-constructor-properties":237,"../internals/create-non-enumerable-property":241,"../internals/define-built-in":245,"../internals/define-global-property":246,"../internals/global":274,"../internals/is-forced":287,"../internals/object-get-own-property-descriptor":309}],260:[function(e,n,i){n.exports=function(s){try{return!!s()}catch{return!0}}},{}],261:[function(e,n,i){var s=e("../internals/function-bind-native"),o=Function.prototype,h=o.apply,c=o.call;n.exports=typeof Reflect=="object"&&Reflect.apply||(s?c.bind(h):function(){return c.apply(h,arguments)})},{"../internals/function-bind-native":263}],262:[function(e,n,i){var s=e("../internals/function-uncurry-this-clause"),o=e("../internals/a-callable"),h=e("../internals/function-bind-native"),c=s(s.bind);n.exports=function(a,f){return o(a),f===void 0?a:h?c(a,f):function(){return a.apply(f,arguments)}}},{"../internals/a-callable":222,"../internals/function-bind-native":263,"../internals/function-uncurry-this-clause":267}],263:[function(e,n,i){var s=e("../internals/fails");n.exports=!s(function(){var o=(function(){}).bind();return typeof o!="function"||o.hasOwnProperty("prototype")})},{"../internals/fails":260}],264:[function(e,n,i){var s=e("../internals/function-bind-native"),o=Function.prototype.call;n.exports=s?o.bind(o):function(){return o.apply(o,arguments)}},{"../internals/function-bind-native":263}],265:[function(e,n,i){var s=e("../internals/descriptors"),o=e("../internals/has-own-property"),h=Function.prototype,c=s&&Object.getOwnPropertyDescriptor,a=o(h,"name"),f=a&&(function(){}).name==="something",l=a&&(!s||s&&c(h,"name").configurable);n.exports={EXISTS:a,PROPER:f,CONFIGURABLE:l}},{"../internals/descriptors":247,"../internals/has-own-property":275}],266:[function(e,n,i){var s=e("../internals/function-uncurry-this"),o=e("../internals/a-callable");n.exports=function(h,c,a){try{return s(o(Object.getOwnPropertyDescriptor(h,c)[a]))}catch{}}},{"../internals/a-callable":222,"../internals/function-uncurry-this":268}],267:[function(e,n,i){var s=e("../internals/classof-raw"),o=e("../internals/function-uncurry-this");n.exports=function(h){if(s(h)==="Function")return o(h)}},{"../internals/classof-raw":235,"../internals/function-uncurry-this":268}],268:[function(e,n,i){var s=e("../internals/function-bind-native"),o=Function.prototype,h=o.call,c=s&&o.bind.bind(h,h);n.exports=s?c:function(a){return function(){return h.apply(a,arguments)}}},{"../internals/function-bind-native":263}],269:[function(e,n,i){var s=e("../internals/global"),o=e("../internals/is-callable"),h=function(c){return o(c)?c:void 0};n.exports=function(c,a){return arguments.length<2?h(s[c]):s[c]&&s[c][a]}},{"../internals/global":274,"../internals/is-callable":285}],270:[function(e,n,i){var s=e("../internals/classof"),o=e("../internals/get-method"),h=e("../internals/is-null-or-undefined"),c=e("../internals/iterators"),a=e("../internals/well-known-symbol"),f=a("iterator");n.exports=function(l){if(!h(l))return o(l,f)||o(l,"@@iterator")||c[s(l)]}},{"../internals/classof":236,"../internals/get-method":273,"../internals/is-null-or-undefined":288,"../internals/iterators":298,"../internals/well-known-symbol":357}],271:[function(e,n,i){var s=e("../internals/function-call"),o=e("../internals/a-callable"),h=e("../internals/an-object"),c=e("../internals/try-to-string"),a=e("../internals/get-iterator-method"),f=TypeError;n.exports=function(l,u){var p=arguments.length<2?a(l):u;if(o(p))return h(s(p,l));throw new f(c(l)+" is not iterable")}},{"../internals/a-callable":222,"../internals/an-object":227,"../internals/function-call":264,"../internals/get-iterator-method":270,"../internals/try-to-string":349}],272:[function(e,n,i){var s=e("../internals/function-uncurry-this"),o=e("../internals/is-array"),h=e("../internals/is-callable"),c=e("../internals/classof-raw"),a=e("../internals/to-string"),f=s([].push);n.exports=function(l){if(h(l))return l;if(o(l)){for(var u=l.length,p=[],m=0;mH;H++)if(L=k(g[H]),L&&l(x,L))return L;return new v(!1)}U=u(g,j)}for(R=C?g.next:U.next;!(F=o(R,U)).done;){try{L=k(F.value)}catch(N){m(U,"throw",N)}if(typeof L=="object"&&L&&l(x,L))return L}return new v(!1)}},{"../internals/an-object":227,"../internals/function-bind-context":262,"../internals/function-call":264,"../internals/get-iterator":271,"../internals/get-iterator-method":270,"../internals/is-array-iterator-method":283,"../internals/iterator-close":294,"../internals/length-of-array-like":299,"../internals/object-is-prototype-of":314,"../internals/try-to-string":349}],294:[function(e,n,i){var s=e("../internals/function-call"),o=e("../internals/an-object"),h=e("../internals/get-method");n.exports=function(c,a,f){var l,u;o(c);try{if(l=h(c,"return"),!l){if(a==="throw")throw f;return f}l=s(l,c)}catch(p){u=!0,l=p}if(a==="throw")throw f;if(u)throw l;return o(l),f}},{"../internals/an-object":227,"../internals/function-call":264,"../internals/get-method":273}],295:[function(e,n,i){var s=e("../internals/iterators-core").IteratorPrototype,o=e("../internals/object-create"),h=e("../internals/create-property-descriptor"),c=e("../internals/set-to-string-tag"),a=e("../internals/iterators"),f=function(){return this};n.exports=function(l,u,p,m){var d=u+" Iterator";return l.prototype=o(s,{next:h(+!m,p)}),c(l,d,!1,!0),a[d]=f,l}},{"../internals/create-property-descriptor":242,"../internals/iterators":298,"../internals/iterators-core":297,"../internals/object-create":306,"../internals/set-to-string-tag":331}],296:[function(e,n,i){var s=e("../internals/export"),o=e("../internals/function-call"),h=e("../internals/is-pure"),c=e("../internals/function-name"),a=e("../internals/is-callable"),f=e("../internals/iterator-create-constructor"),l=e("../internals/object-get-prototype-of"),u=e("../internals/object-set-prototype-of"),p=e("../internals/set-to-string-tag"),m=e("../internals/create-non-enumerable-property"),d=e("../internals/define-built-in"),v=e("../internals/well-known-symbol"),x=e("../internals/iterators"),g=e("../internals/iterators-core"),b=c.PROPER,w=c.CONFIGURABLE,y=g.IteratorPrototype,T=g.BUGGY_SAFARI_ITERATORS,C=v("iterator"),M="keys",I="values",B="entries",U=function(){return this};n.exports=function(j,H,G,L,R,F,_){f(G,H,L);var k=function(re){if(re===R&&S)return S;if(!T&&re&&re in D)return D[re];switch(re){case M:return function(){return new G(this,re)};case I:return function(){return new G(this,re)};case B:return function(){return new G(this,re)}}return function(){return new G(this)}},N=H+" Iterator",P=!1,D=j.prototype,A=D[C]||D["@@iterator"]||R&&D[R],S=!T&&A||k(R),E=H==="Array"&&D.entries||A,O,z,J;if(E&&(O=l(E.call(new j)),O!==Object.prototype&&O.next&&(!h&&l(O)!==y&&(u?u(O,y):a(O[C])||d(O,C,U)),p(O,N,!0,!0),h&&(x[N]=U))),b&&R===I&&A&&A.name!==I&&(!h&&w?m(D,"name",I):(P=!0,S=function(){return o(A,this)})),R)if(z={values:k(I),keys:F?S:k(M),entries:k(B)},_)for(J in z)(T||P||!(J in D))&&d(D,J,z[J]);else s({target:H,proto:!0,forced:T||P},z);return(!h||_)&&D[C]!==S&&d(D,C,S,{name:R}),x[H]=S,z}},{"../internals/create-non-enumerable-property":241,"../internals/define-built-in":245,"../internals/export":259,"../internals/function-call":264,"../internals/function-name":265,"../internals/is-callable":285,"../internals/is-pure":290,"../internals/iterator-create-constructor":295,"../internals/iterators":298,"../internals/iterators-core":297,"../internals/object-get-prototype-of":313,"../internals/object-set-prototype-of":318,"../internals/set-to-string-tag":331,"../internals/well-known-symbol":357}],297:[function(e,n,i){var s=e("../internals/fails"),o=e("../internals/is-callable"),h=e("../internals/is-object"),c=e("../internals/object-create"),a=e("../internals/object-get-prototype-of"),f=e("../internals/define-built-in"),l=e("../internals/well-known-symbol"),u=e("../internals/is-pure"),p=l("iterator"),m=!1,d,v,x;[].keys&&(x=[].keys(),"next"in x?(v=a(a(x)),v!==Object.prototype&&(d=v)):m=!0);var g=!h(d)||s(function(){var b={};return d[p].call(b)!==b});g?d={}:u&&(d=c(d)),o(d[p])||f(d,p,function(){return this}),n.exports={IteratorPrototype:d,BUGGY_SAFARI_ITERATORS:m}},{"../internals/define-built-in":245,"../internals/fails":260,"../internals/is-callable":285,"../internals/is-object":289,"../internals/is-pure":290,"../internals/object-create":306,"../internals/object-get-prototype-of":313,"../internals/well-known-symbol":357}],298:[function(e,n,i){arguments[4][276][0].apply(i,arguments)},{dup:276}],299:[function(e,n,i){var s=e("../internals/to-length");n.exports=function(o){return s(o.length)}},{"../internals/to-length":343}],300:[function(e,n,i){var s=e("../internals/function-uncurry-this"),o=e("../internals/fails"),h=e("../internals/is-callable"),c=e("../internals/has-own-property"),a=e("../internals/descriptors"),f=e("../internals/function-name").CONFIGURABLE,l=e("../internals/inspect-source"),u=e("../internals/internal-state"),p=u.enforce,m=u.get,d=String,v=Object.defineProperty,x=s("".slice),g=s("".replace),b=s([].join),w=a&&!o(function(){return v(function(){},"length",{value:8}).length!==8}),y=String(String).split("String"),T=n.exports=function(C,M,I){x(d(M),0,7)==="Symbol("&&(M="["+g(d(M),/^Symbol\(([^)]*)\)/,"$1")+"]"),I&&I.getter&&(M="get "+M),I&&I.setter&&(M="set "+M),(!c(C,"name")||f&&C.name!==M)&&(a?v(C,"name",{value:M,configurable:!0}):C.name=M),w&&I&&c(I,"arity")&&C.length!==I.arity&&v(C,"length",{value:I.arity});try{I&&c(I,"constructor")&&I.constructor?a&&v(C,"prototype",{writable:!1}):C.prototype&&(C.prototype=void 0)}catch{}var B=p(C);return c(B,"source")||(B.source=b(y,typeof M=="string"?M:"")),C};Function.prototype.toString=T(function(){return h(this)&&m(this).source||l(this)},"toString")},{"../internals/descriptors":247,"../internals/fails":260,"../internals/function-name":265,"../internals/function-uncurry-this":268,"../internals/has-own-property":275,"../internals/inspect-source":281,"../internals/internal-state":282,"../internals/is-callable":285}],301:[function(e,n,i){var s=Math.ceil,o=Math.floor;n.exports=Math.trunc||function(c){var a=+c;return(a>0?o:s)(a)}},{}],302:[function(e,n,i){var s=e("../internals/global"),o=e("../internals/function-bind-context"),h=e("../internals/object-get-own-property-descriptor").f,c=e("../internals/task").set,a=e("../internals/queue"),f=e("../internals/engine-is-ios"),l=e("../internals/engine-is-ios-pebble"),u=e("../internals/engine-is-webos-webkit"),p=e("../internals/engine-is-node"),m=s.MutationObserver||s.WebKitMutationObserver,d=s.document,v=s.process,x=s.Promise,g=h(s,"queueMicrotask"),b=g&&g.value,w,y,T,C,M;if(!b){var I=new a,B=function(){var U,j;for(p&&(U=v.domain)&&U.exit();j=I.get();)try{j()}catch(H){throw I.head&&w(),H}U&&U.enter()};!f&&!p&&!u&&m&&d?(y=!0,T=d.createTextNode(""),new m(B).observe(T,{characterData:!0}),w=function(){T.data=y=!y}):!l&&x&&x.resolve?(C=x.resolve(void 0),C.constructor=x,M=o(C.then,C),w=function(){M(B)}):p?w=function(){v.nextTick(B)}:(c=o(c,s),w=function(){c(B)}),b=function(U){I.head||w(),I.add(U)}}n.exports=b},{"../internals/engine-is-ios":253,"../internals/engine-is-ios-pebble":252,"../internals/engine-is-node":254,"../internals/engine-is-webos-webkit":255,"../internals/function-bind-context":262,"../internals/global":274,"../internals/object-get-own-property-descriptor":309,"../internals/queue":328,"../internals/task":339}],303:[function(e,n,i){var s=e("../internals/a-callable"),o=TypeError,h=function(c){var a,f;this.promise=new c(function(l,u){if(a!==void 0||f!==void 0)throw new o("Bad Promise constructor");a=l,f=u}),this.resolve=s(a),this.reject=s(f)};n.exports.f=function(c){return new h(c)}},{"../internals/a-callable":222}],304:[function(e,n,i){var s=e("../internals/is-regexp"),o=TypeError;n.exports=function(h){if(s(h))throw new o("The method doesn't accept regular expressions");return h}},{"../internals/is-regexp":291}],305:[function(e,n,i){var s=e("../internals/descriptors"),o=e("../internals/function-uncurry-this"),h=e("../internals/function-call"),c=e("../internals/fails"),a=e("../internals/object-keys"),f=e("../internals/object-get-own-property-symbols"),l=e("../internals/object-property-is-enumerable"),u=e("../internals/to-object"),p=e("../internals/indexed-object"),m=Object.assign,d=Object.defineProperty,v=o([].concat);n.exports=!m||c(function(){if(s&&m({b:1},m(d({},"a",{enumerable:!0,get:function(){d(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var x={},g={},b=Symbol("assign detection"),w="abcdefghijklmnopqrst";return x[b]=7,w.split("").forEach(function(y){g[y]=y}),m({},x)[b]!==7||a(m({},g)).join("")!==w})?function(g,b){for(var w=u(g),y=arguments.length,T=1,C=f.f,M=l.f;y>T;)for(var I=p(arguments[T++]),B=C?v(a(I),C(I)):a(I),U=B.length,j=0,H;U>j;)H=B[j++],(!s||h(M,I,H))&&(w[H]=I[H]);return w}:m},{"../internals/descriptors":247,"../internals/fails":260,"../internals/function-call":264,"../internals/function-uncurry-this":268,"../internals/indexed-object":280,"../internals/object-get-own-property-symbols":312,"../internals/object-keys":316,"../internals/object-property-is-enumerable":317,"../internals/to-object":344}],306:[function(e,n,i){var s=e("../internals/an-object"),o=e("../internals/object-define-properties"),h=e("../internals/enum-bug-keys"),c=e("../internals/hidden-keys"),a=e("../internals/html"),f=e("../internals/document-create-element"),l=e("../internals/shared-key"),u=">",p="<",m="prototype",d="script",v=l("IE_PROTO"),x=function(){},g=function(C){return p+d+u+C+p+"/"+d+u},b=function(C){C.write(g("")),C.close();var M=C.parentWindow.Object;return C=null,M},w=function(){var C=f("iframe"),M="java"+d+":",I;return C.style.display="none",a.appendChild(C),C.src=String(M),I=C.contentWindow.document,I.open(),I.write(g("document.F=Object")),I.close(),I.F},y,T=function(){try{y=new ActiveXObject("htmlfile")}catch{}T=typeof document<"u"?document.domain&&y?b(y):w():b(y);for(var C=h.length;C--;)delete T[m][h[C]];return T()};c[v]=!0,n.exports=Object.create||function(M,I){var B;return M!==null?(x[m]=s(M),B=new x,x[m]=null,B[v]=M):B=T(),I===void 0?B:o.f(B,I)}},{"../internals/an-object":227,"../internals/document-create-element":249,"../internals/enum-bug-keys":258,"../internals/hidden-keys":276,"../internals/html":278,"../internals/object-define-properties":307,"../internals/shared-key":332}],307:[function(e,n,i){var s=e("../internals/descriptors"),o=e("../internals/v8-prototype-define-bug"),h=e("../internals/object-define-property"),c=e("../internals/an-object"),a=e("../internals/to-indexed-object"),f=e("../internals/object-keys");i.f=s&&!o?Object.defineProperties:function(u,p){c(u);for(var m=a(p),d=f(p),v=d.length,x=0,g;v>x;)h.f(u,g=d[x++],m[g]);return u}},{"../internals/an-object":227,"../internals/descriptors":247,"../internals/object-define-property":308,"../internals/object-keys":316,"../internals/to-indexed-object":341,"../internals/v8-prototype-define-bug":352}],308:[function(e,n,i){var s=e("../internals/descriptors"),o=e("../internals/ie8-dom-define"),h=e("../internals/v8-prototype-define-bug"),c=e("../internals/an-object"),a=e("../internals/to-property-key"),f=TypeError,l=Object.defineProperty,u=Object.getOwnPropertyDescriptor,p="enumerable",m="configurable",d="writable";i.f=s?h?function(x,g,b){if(c(x),g=a(g),c(b),typeof x=="function"&&g==="prototype"&&"value"in b&&d in b&&!b[d]){var w=u(x,g);w&&w[d]&&(x[g]=b.value,b={configurable:m in b?b[m]:w[m],enumerable:p in b?b[p]:w[p],writable:!1})}return l(x,g,b)}:l:function(x,g,b){if(c(x),g=a(g),c(b),o)try{return l(x,g,b)}catch{}if("get"in b||"set"in b)throw new f("Accessors not supported");return"value"in b&&(x[g]=b.value),x}},{"../internals/an-object":227,"../internals/descriptors":247,"../internals/ie8-dom-define":279,"../internals/to-property-key":346,"../internals/v8-prototype-define-bug":352}],309:[function(e,n,i){var s=e("../internals/descriptors"),o=e("../internals/function-call"),h=e("../internals/object-property-is-enumerable"),c=e("../internals/create-property-descriptor"),a=e("../internals/to-indexed-object"),f=e("../internals/to-property-key"),l=e("../internals/has-own-property"),u=e("../internals/ie8-dom-define"),p=Object.getOwnPropertyDescriptor;i.f=s?p:function(d,v){if(d=a(d),v=f(v),u)try{return p(d,v)}catch{}if(l(d,v))return c(!o(h.f,d,v),d[v])}},{"../internals/create-property-descriptor":242,"../internals/descriptors":247,"../internals/function-call":264,"../internals/has-own-property":275,"../internals/ie8-dom-define":279,"../internals/object-property-is-enumerable":317,"../internals/to-indexed-object":341,"../internals/to-property-key":346}],310:[function(e,n,i){var s=e("../internals/classof-raw"),o=e("../internals/to-indexed-object"),h=e("../internals/object-get-own-property-names").f,c=e("../internals/array-slice-simple"),a=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],f=function(l){try{return h(l)}catch{return c(a)}};n.exports.f=function(u){return a&&s(u)==="Window"?f(u):h(o(u))}},{"../internals/array-slice-simple":230,"../internals/classof-raw":235,"../internals/object-get-own-property-names":311,"../internals/to-indexed-object":341}],311:[function(e,n,i){var s=e("../internals/object-keys-internal"),o=e("../internals/enum-bug-keys"),h=o.concat("length","prototype");i.f=Object.getOwnPropertyNames||function(a){return s(a,h)}},{"../internals/enum-bug-keys":258,"../internals/object-keys-internal":315}],312:[function(e,n,i){i.f=Object.getOwnPropertySymbols},{}],313:[function(e,n,i){var s=e("../internals/has-own-property"),o=e("../internals/is-callable"),h=e("../internals/to-object"),c=e("../internals/shared-key"),a=e("../internals/correct-prototype-getter"),f=c("IE_PROTO"),l=Object,u=l.prototype;n.exports=a?l.getPrototypeOf:function(p){var m=h(p);if(s(m,f))return m[f];var d=m.constructor;return o(d)&&m instanceof d?d.prototype:m instanceof l?u:null}},{"../internals/correct-prototype-getter":239,"../internals/has-own-property":275,"../internals/is-callable":285,"../internals/shared-key":332,"../internals/to-object":344}],314:[function(e,n,i){var s=e("../internals/function-uncurry-this");n.exports=s({}.isPrototypeOf)},{"../internals/function-uncurry-this":268}],315:[function(e,n,i){var s=e("../internals/function-uncurry-this"),o=e("../internals/has-own-property"),h=e("../internals/to-indexed-object"),c=e("../internals/array-includes").indexOf,a=e("../internals/hidden-keys"),f=s([].push);n.exports=function(l,u){var p=h(l),m=0,d=[],v;for(v in p)!o(a,v)&&o(p,v)&&f(d,v);for(;u.length>m;)o(p,v=u[m++])&&(~c(d,v)||f(d,v));return d}},{"../internals/array-includes":228,"../internals/function-uncurry-this":268,"../internals/has-own-property":275,"../internals/hidden-keys":276,"../internals/to-indexed-object":341}],316:[function(e,n,i){var s=e("../internals/object-keys-internal"),o=e("../internals/enum-bug-keys");n.exports=Object.keys||function(c){return s(c,o)}},{"../internals/enum-bug-keys":258,"../internals/object-keys-internal":315}],317:[function(e,n,i){var s={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,h=o&&!s.call({1:2},1);i.f=h?function(a){var f=o(this,a);return!!f&&f.enumerable}:s},{}],318:[function(e,n,i){var s=e("../internals/function-uncurry-this-accessor"),o=e("../internals/an-object"),h=e("../internals/a-possible-prototype");n.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var c=!1,a={},f;try{f=s(Object.prototype,"__proto__","set"),f(a,[]),c=a instanceof Array}catch{}return function(u,p){return o(u),h(p),c?f(u,p):u.__proto__=p,u}}():void 0)},{"../internals/a-possible-prototype":224,"../internals/an-object":227,"../internals/function-uncurry-this-accessor":266}],319:[function(e,n,i){var s=e("../internals/descriptors"),o=e("../internals/fails"),h=e("../internals/function-uncurry-this"),c=e("../internals/object-get-prototype-of"),a=e("../internals/object-keys"),f=e("../internals/to-indexed-object"),l=e("../internals/object-property-is-enumerable").f,u=h(l),p=h([].push),m=s&&o(function(){var v=Object.create(null);return v[2]=2,!u(v,2)}),d=function(v){return function(x){for(var g=f(x),b=a(g),w=m&&c(g)===null,y=b.length,T=0,C=[],M;y>T;)M=b[T++],(!s||(w?M in g:u(g,M)))&&p(C,v?[M,g[M]]:g[M]);return C}};n.exports={entries:d(!0),values:d(!1)}},{"../internals/descriptors":247,"../internals/fails":260,"../internals/function-uncurry-this":268,"../internals/object-get-prototype-of":313,"../internals/object-keys":316,"../internals/object-property-is-enumerable":317,"../internals/to-indexed-object":341}],320:[function(e,n,i){var s=e("../internals/function-call"),o=e("../internals/is-callable"),h=e("../internals/is-object"),c=TypeError;n.exports=function(a,f){var l,u;if(f==="string"&&o(l=a.toString)&&!h(u=s(l,a))||o(l=a.valueOf)&&!h(u=s(l,a))||f!=="string"&&o(l=a.toString)&&!h(u=s(l,a)))return u;throw new c("Can't convert object to primitive value")}},{"../internals/function-call":264,"../internals/is-callable":285,"../internals/is-object":289}],321:[function(e,n,i){var s=e("../internals/get-built-in"),o=e("../internals/function-uncurry-this"),h=e("../internals/object-get-own-property-names"),c=e("../internals/object-get-own-property-symbols"),a=e("../internals/an-object"),f=o([].concat);n.exports=s("Reflect","ownKeys")||function(u){var p=h.f(a(u)),m=c.f;return m?f(p,m(u)):p}},{"../internals/an-object":227,"../internals/function-uncurry-this":268,"../internals/get-built-in":269,"../internals/object-get-own-property-names":311,"../internals/object-get-own-property-symbols":312}],322:[function(e,n,i){var s=e("../internals/global");n.exports=s},{"../internals/global":274}],323:[function(e,n,i){n.exports=function(s){try{return{error:!1,value:s()}}catch(o){return{error:!0,value:o}}}},{}],324:[function(e,n,i){var s=e("../internals/global"),o=e("../internals/promise-native-constructor"),h=e("../internals/is-callable"),c=e("../internals/is-forced"),a=e("../internals/inspect-source"),f=e("../internals/well-known-symbol"),l=e("../internals/engine-is-browser"),u=e("../internals/engine-is-deno"),p=e("../internals/is-pure"),m=e("../internals/engine-v8-version"),d=o&&o.prototype,v=f("species"),x=!1,g=h(s.PromiseRejectionEvent),b=c("Promise",function(){var w=a(o),y=w!==String(o);if(!y&&m===66||p&&!(d.catch&&d.finally))return!0;if(!m||m<51||!/native code/.test(w)){var T=new o(function(I){I(1)}),C=function(I){I(function(){},function(){})},M=T.constructor={};if(M[v]=C,x=T.then(function(){})instanceof C,!x)return!0}return!y&&(l||u)&&!g});n.exports={CONSTRUCTOR:b,REJECTION_EVENT:g,SUBCLASSING:x}},{"../internals/engine-is-browser":250,"../internals/engine-is-deno":251,"../internals/engine-v8-version":257,"../internals/global":274,"../internals/inspect-source":281,"../internals/is-callable":285,"../internals/is-forced":287,"../internals/is-pure":290,"../internals/promise-native-constructor":325,"../internals/well-known-symbol":357}],325:[function(e,n,i){var s=e("../internals/global");n.exports=s.Promise},{"../internals/global":274}],326:[function(e,n,i){var s=e("../internals/an-object"),o=e("../internals/is-object"),h=e("../internals/new-promise-capability");n.exports=function(c,a){if(s(c),o(a)&&a.constructor===c)return a;var f=h.f(c),l=f.resolve;return l(a),f.promise}},{"../internals/an-object":227,"../internals/is-object":289,"../internals/new-promise-capability":303}],327:[function(e,n,i){var s=e("../internals/promise-native-constructor"),o=e("../internals/check-correctness-of-iteration"),h=e("../internals/promise-constructor-detection").CONSTRUCTOR;n.exports=h||!o(function(c){s.all(c).then(void 0,function(){})})},{"../internals/check-correctness-of-iteration":234,"../internals/promise-constructor-detection":324,"../internals/promise-native-constructor":325}],328:[function(e,n,i){var s=function(){this.head=null,this.tail=null};s.prototype={add:function(o){var h={item:o,next:null},c=this.tail;c?c.next=h:this.head=h,this.tail=h},get:function(){var o=this.head;if(o){var h=this.head=o.next;return h===null&&(this.tail=null),o.item}}},n.exports=s},{}],329:[function(e,n,i){var s=e("../internals/is-null-or-undefined"),o=TypeError;n.exports=function(h){if(s(h))throw new o("Can't call method on "+h);return h}},{"../internals/is-null-or-undefined":288}],330:[function(e,n,i){var s=e("../internals/get-built-in"),o=e("../internals/define-built-in-accessor"),h=e("../internals/well-known-symbol"),c=e("../internals/descriptors"),a=h("species");n.exports=function(f){var l=s(f);c&&l&&!l[a]&&o(l,a,{configurable:!0,get:function(){return this}})}},{"../internals/define-built-in-accessor":244,"../internals/descriptors":247,"../internals/get-built-in":269,"../internals/well-known-symbol":357}],331:[function(e,n,i){var s=e("../internals/object-define-property").f,o=e("../internals/has-own-property"),h=e("../internals/well-known-symbol"),c=h("toStringTag");n.exports=function(a,f,l){a&&!l&&(a=a.prototype),a&&!o(a,c)&&s(a,c,{configurable:!0,value:f})}},{"../internals/has-own-property":275,"../internals/object-define-property":308,"../internals/well-known-symbol":357}],332:[function(e,n,i){var s=e("../internals/shared"),o=e("../internals/uid"),h=s("keys");n.exports=function(c){return h[c]||(h[c]=o(c))}},{"../internals/shared":334,"../internals/uid":350}],333:[function(e,n,i){var s=e("../internals/global"),o=e("../internals/define-global-property"),h="__core-js_shared__",c=s[h]||o(h,{});n.exports=c},{"../internals/define-global-property":246,"../internals/global":274}],334:[function(e,n,i){var s=e("../internals/is-pure"),o=e("../internals/shared-store");(n.exports=function(h,c){return o[h]||(o[h]=c!==void 0?c:{})})("versions",[]).push({version:"3.33.0",mode:s?"pure":"global",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.33.0/LICENSE",source:"https://github.com/zloirock/core-js"})},{"../internals/is-pure":290,"../internals/shared-store":333}],335:[function(e,n,i){var s=e("../internals/an-object"),o=e("../internals/a-constructor"),h=e("../internals/is-null-or-undefined"),c=e("../internals/well-known-symbol"),a=c("species");n.exports=function(f,l){var u=s(f).constructor,p;return u===void 0||h(p=s(u)[a])?l:o(p)}},{"../internals/a-constructor":223,"../internals/an-object":227,"../internals/is-null-or-undefined":288,"../internals/well-known-symbol":357}],336:[function(e,n,i){var s=e("../internals/engine-v8-version"),o=e("../internals/fails"),h=e("../internals/global"),c=h.String;n.exports=!!Object.getOwnPropertySymbols&&!o(function(){var a=Symbol("symbol detection");return!c(a)||!(Object(a)instanceof Symbol)||!Symbol.sham&&s&&s<41})},{"../internals/engine-v8-version":257,"../internals/fails":260,"../internals/global":274}],337:[function(e,n,i){var s=e("../internals/function-call"),o=e("../internals/get-built-in"),h=e("../internals/well-known-symbol"),c=e("../internals/define-built-in");n.exports=function(){var a=o("Symbol"),f=a&&a.prototype,l=f&&f.valueOf,u=h("toPrimitive");f&&!f[u]&&c(f,u,function(p){return s(l,this)},{arity:1})}},{"../internals/define-built-in":245,"../internals/function-call":264,"../internals/get-built-in":269,"../internals/well-known-symbol":357}],338:[function(e,n,i){var s=e("../internals/symbol-constructor-detection");n.exports=s&&!!Symbol.for&&!!Symbol.keyFor},{"../internals/symbol-constructor-detection":336}],339:[function(e,n,i){var s=e("../internals/global"),o=e("../internals/function-apply"),h=e("../internals/function-bind-context"),c=e("../internals/is-callable"),a=e("../internals/has-own-property"),f=e("../internals/fails"),l=e("../internals/html"),u=e("../internals/array-slice"),p=e("../internals/document-create-element"),m=e("../internals/validate-arguments-length"),d=e("../internals/engine-is-ios"),v=e("../internals/engine-is-node"),x=s.setImmediate,g=s.clearImmediate,b=s.process,w=s.Dispatch,y=s.Function,T=s.MessageChannel,C=s.String,M=0,I={},B="onreadystatechange",U,j,H,G;f(function(){U=s.location});var L=function(k){if(a(I,k)){var N=I[k];delete I[k],N()}},R=function(k){return function(){L(k)}},F=function(k){L(k.data)},_=function(k){s.postMessage(C(k),U.protocol+"//"+U.host)};(!x||!g)&&(x=function(N){m(arguments.length,1);var P=c(N)?N:y(N),D=u(arguments,1);return I[++M]=function(){o(P,void 0,D)},j(M),M},g=function(N){delete I[N]},v?j=function(k){b.nextTick(R(k))}:w&&w.now?j=function(k){w.now(R(k))}:T&&!d?(H=new T,G=H.port2,H.port1.onmessage=F,j=h(G.postMessage,G)):s.addEventListener&&c(s.postMessage)&&!s.importScripts&&U&&U.protocol!=="file:"&&!f(_)?(j=_,s.addEventListener("message",F,!1)):B in p("script")?j=function(k){l.appendChild(p("script"))[B]=function(){l.removeChild(this),L(k)}}:j=function(k){setTimeout(R(k),0)}),n.exports={set:x,clear:g}},{"../internals/array-slice":231,"../internals/document-create-element":249,"../internals/engine-is-ios":253,"../internals/engine-is-node":254,"../internals/fails":260,"../internals/function-apply":261,"../internals/function-bind-context":262,"../internals/global":274,"../internals/has-own-property":275,"../internals/html":278,"../internals/is-callable":285,"../internals/validate-arguments-length":353}],340:[function(e,n,i){var s=e("../internals/to-integer-or-infinity"),o=Math.max,h=Math.min;n.exports=function(c,a){var f=s(c);return f<0?o(f+a,0):h(f,a)}},{"../internals/to-integer-or-infinity":342}],341:[function(e,n,i){var s=e("../internals/indexed-object"),o=e("../internals/require-object-coercible");n.exports=function(h){return s(o(h))}},{"../internals/indexed-object":280,"../internals/require-object-coercible":329}],342:[function(e,n,i){var s=e("../internals/math-trunc");n.exports=function(o){var h=+o;return h!==h||h===0?0:s(h)}},{"../internals/math-trunc":301}],343:[function(e,n,i){var s=e("../internals/to-integer-or-infinity"),o=Math.min;n.exports=function(h){return h>0?o(s(h),9007199254740991):0}},{"../internals/to-integer-or-infinity":342}],344:[function(e,n,i){var s=e("../internals/require-object-coercible"),o=Object;n.exports=function(h){return o(s(h))}},{"../internals/require-object-coercible":329}],345:[function(e,n,i){var s=e("../internals/function-call"),o=e("../internals/is-object"),h=e("../internals/is-symbol"),c=e("../internals/get-method"),a=e("../internals/ordinary-to-primitive"),f=e("../internals/well-known-symbol"),l=TypeError,u=f("toPrimitive");n.exports=function(p,m){if(!o(p)||h(p))return p;var d=c(p,u),v;if(d){if(m===void 0&&(m="default"),v=s(d,p,m),!o(v)||h(v))return v;throw new l("Can't convert object to primitive value")}return m===void 0&&(m="number"),a(p,m)}},{"../internals/function-call":264,"../internals/get-method":273,"../internals/is-object":289,"../internals/is-symbol":292,"../internals/ordinary-to-primitive":320,"../internals/well-known-symbol":357}],346:[function(e,n,i){var s=e("../internals/to-primitive"),o=e("../internals/is-symbol");n.exports=function(h){var c=s(h,"string");return o(c)?c:c+""}},{"../internals/is-symbol":292,"../internals/to-primitive":345}],347:[function(e,n,i){var s=e("../internals/well-known-symbol"),o=s("toStringTag"),h={};h[o]="z",n.exports=String(h)==="[object z]"},{"../internals/well-known-symbol":357}],348:[function(e,n,i){var s=e("../internals/classof"),o=String;n.exports=function(h){if(s(h)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return o(h)}},{"../internals/classof":236}],349:[function(e,n,i){var s=String;n.exports=function(o){try{return s(o)}catch{return"Object"}}},{}],350:[function(e,n,i){var s=e("../internals/function-uncurry-this"),o=0,h=Math.random(),c=s(1 .toString);n.exports=function(a){return"Symbol("+(a===void 0?"":a)+")_"+c(++o+h,36)}},{"../internals/function-uncurry-this":268}],351:[function(e,n,i){var s=e("../internals/symbol-constructor-detection");n.exports=s&&!Symbol.sham&&typeof Symbol.iterator=="symbol"},{"../internals/symbol-constructor-detection":336}],352:[function(e,n,i){var s=e("../internals/descriptors"),o=e("../internals/fails");n.exports=s&&o(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})},{"../internals/descriptors":247,"../internals/fails":260}],353:[function(e,n,i){var s=TypeError;n.exports=function(o,h){if(o1?arguments[1]:void 0)}}),h(c)},{"../internals/add-to-unscopables":225,"../internals/array-iteration":229,"../internals/export":259}],359:[function(e,n,i){var s=e("../internals/export"),o=e("../internals/array-iteration").find,h=e("../internals/add-to-unscopables"),c="find",a=!0;c in[]&&Array(1)[c](function(){a=!1}),s({target:"Array",proto:!0,forced:a},{find:function(l){return o(this,l,arguments.length>1?arguments[1]:void 0)}}),h(c)},{"../internals/add-to-unscopables":225,"../internals/array-iteration":229,"../internals/export":259}],360:[function(e,n,i){var s=e("../internals/export"),o=e("../internals/array-includes").includes,h=e("../internals/fails"),c=e("../internals/add-to-unscopables"),a=h(function(){return!Array(1).includes()});s({target:"Array",proto:!0,forced:a},{includes:function(l){return o(this,l,arguments.length>1?arguments[1]:void 0)}}),c("includes")},{"../internals/add-to-unscopables":225,"../internals/array-includes":228,"../internals/export":259,"../internals/fails":260}],361:[function(e,n,i){var s=e("../internals/to-indexed-object"),o=e("../internals/add-to-unscopables"),h=e("../internals/iterators"),c=e("../internals/internal-state"),a=e("../internals/object-define-property").f,f=e("../internals/iterator-define"),l=e("../internals/create-iter-result-object"),u=e("../internals/is-pure"),p=e("../internals/descriptors"),m="Array Iterator",d=c.set,v=c.getterFor(m);n.exports=f(Array,"Array",function(g,b){d(this,{type:m,target:s(g),index:0,kind:b})},function(){var g=v(this),b=g.target,w=g.kind,y=g.index++;if(!b||y>=b.length)return g.target=void 0,l(void 0,!0);switch(w){case"keys":return l(y,!1);case"values":return l(b[y],!1)}return l([y,b[y]],!1)},"values");var x=h.Arguments=h.Array;if(o("keys"),o("values"),o("entries"),!u&&p&&x.name!=="values")try{a(x,"name",{value:"values"})}catch{}},{"../internals/add-to-unscopables":225,"../internals/create-iter-result-object":240,"../internals/descriptors":247,"../internals/internal-state":282,"../internals/is-pure":290,"../internals/iterator-define":296,"../internals/iterators":298,"../internals/object-define-property":308,"../internals/to-indexed-object":341}],362:[function(e,n,i){var s=e("../internals/export"),o=e("../internals/get-built-in"),h=e("../internals/function-apply"),c=e("../internals/function-call"),a=e("../internals/function-uncurry-this"),f=e("../internals/fails"),l=e("../internals/is-callable"),u=e("../internals/is-symbol"),p=e("../internals/array-slice"),m=e("../internals/get-json-replacer-function"),d=e("../internals/symbol-constructor-detection"),v=String,x=o("JSON","stringify"),g=a(/./.exec),b=a("".charAt),w=a("".charCodeAt),y=a("".replace),T=a(1 .toString),C=/[\uD800-\uDFFF]/g,M=/^[\uD800-\uDBFF]$/,I=/^[\uDC00-\uDFFF]$/,B=!d||f(function(){var G=o("Symbol")("stringify detection");return x([G])!=="[null]"||x({a:G})!=="{}"||x(Object(G))!=="{}"}),U=f(function(){return x("\uDF06\uD834")!=='"\\udf06\\ud834"'||x("\uDEAD")!=='"\\udead"'}),j=function(G,L){var R=p(arguments),F=m(L);if(!(!l(F)&&(G===void 0||u(G))))return R[1]=function(_,k){if(l(F)&&(k=c(F,this,v(_),k)),!u(k))return k},h(x,null,R)},H=function(G,L,R){var F=b(R,L-1),_=b(R,L+1);return g(M,G)&&!g(I,_)||g(I,G)&&!g(M,F)?"\\u"+T(w(G,0),16):G};x&&s({target:"JSON",stat:!0,arity:3,forced:B||U},{stringify:function(L,R,F){var _=p(arguments),k=h(B?j:x,null,_);return U&&typeof k=="string"?y(k,C,H):k}})},{"../internals/array-slice":231,"../internals/export":259,"../internals/fails":260,"../internals/function-apply":261,"../internals/function-call":264,"../internals/function-uncurry-this":268,"../internals/get-built-in":269,"../internals/get-json-replacer-function":272,"../internals/is-callable":285,"../internals/is-symbol":292,"../internals/symbol-constructor-detection":336}],363:[function(e,n,i){var s=e("../internals/export");s({target:"Number",stat:!0},{isNaN:function(h){return h!==h}})},{"../internals/export":259}],364:[function(e,n,i){var s=e("../internals/export"),o=e("../internals/object-assign");s({target:"Object",stat:!0,arity:2,forced:Object.assign!==o},{assign:o})},{"../internals/export":259,"../internals/object-assign":305}],365:[function(e,n,i){var s=e("../internals/export"),o=e("../internals/symbol-constructor-detection"),h=e("../internals/fails"),c=e("../internals/object-get-own-property-symbols"),a=e("../internals/to-object"),f=!o||h(function(){c.f(1)});s({target:"Object",stat:!0,forced:f},{getOwnPropertySymbols:function(u){var p=c.f;return p?p(a(u)):[]}})},{"../internals/export":259,"../internals/fails":260,"../internals/object-get-own-property-symbols":312,"../internals/symbol-constructor-detection":336,"../internals/to-object":344}],366:[function(e,n,i){var s=e("../internals/export"),o=e("../internals/to-object"),h=e("../internals/object-keys"),c=e("../internals/fails"),a=c(function(){h(1)});s({target:"Object",stat:!0,forced:a},{keys:function(l){return h(o(l))}})},{"../internals/export":259,"../internals/fails":260,"../internals/object-keys":316,"../internals/to-object":344}],367:[function(e,n,i){var s=e("../internals/export"),o=e("../internals/object-to-array").values;s({target:"Object",stat:!0},{values:function(c){return o(c)}})},{"../internals/export":259,"../internals/object-to-array":319}],368:[function(e,n,i){var s=e("../internals/export"),o=e("../internals/function-call"),h=e("../internals/a-callable"),c=e("../internals/new-promise-capability"),a=e("../internals/perform"),f=e("../internals/iterate"),l=e("../internals/promise-statics-incorrect-iteration");s({target:"Promise",stat:!0,forced:l},{all:function(p){var m=this,d=c.f(m),v=d.resolve,x=d.reject,g=a(function(){var b=h(m.resolve),w=[],y=0,T=1;f(p,function(C){var M=y++,I=!1;T++,o(b,m,C).then(function(B){I||(I=!0,w[M]=B,--T||v(w))},x)}),--T||v(w)});return g.error&&x(g.value),d.promise}})},{"../internals/a-callable":222,"../internals/export":259,"../internals/function-call":264,"../internals/iterate":293,"../internals/new-promise-capability":303,"../internals/perform":323,"../internals/promise-statics-incorrect-iteration":327}],369:[function(e,n,i){var s=e("../internals/export"),o=e("../internals/is-pure"),h=e("../internals/promise-constructor-detection").CONSTRUCTOR,c=e("../internals/promise-native-constructor"),a=e("../internals/get-built-in"),f=e("../internals/is-callable"),l=e("../internals/define-built-in"),u=c&&c.prototype;if(s({target:"Promise",proto:!0,forced:h,real:!0},{catch:function(m){return this.then(void 0,m)}}),!o&&f(c)){var p=a("Promise").prototype.catch;u.catch!==p&&l(u,"catch",p,{unsafe:!0})}},{"../internals/define-built-in":245,"../internals/export":259,"../internals/get-built-in":269,"../internals/is-callable":285,"../internals/is-pure":290,"../internals/promise-constructor-detection":324,"../internals/promise-native-constructor":325}],370:[function(e,n,i){var s=e("../internals/export"),o=e("../internals/is-pure"),h=e("../internals/engine-is-node"),c=e("../internals/global"),a=e("../internals/function-call"),f=e("../internals/define-built-in"),l=e("../internals/object-set-prototype-of"),u=e("../internals/set-to-string-tag"),p=e("../internals/set-species"),m=e("../internals/a-callable"),d=e("../internals/is-callable"),v=e("../internals/is-object"),x=e("../internals/an-instance"),g=e("../internals/species-constructor"),b=e("../internals/task").set,w=e("../internals/microtask"),y=e("../internals/host-report-errors"),T=e("../internals/perform"),C=e("../internals/queue"),M=e("../internals/internal-state"),I=e("../internals/promise-native-constructor"),B=e("../internals/promise-constructor-detection"),U=e("../internals/new-promise-capability"),j="Promise",H=B.CONSTRUCTOR,G=B.REJECTION_EVENT,L=B.SUBCLASSING,R=M.getterFor(j),F=M.set,_=I&&I.prototype,k=I,N=_,P=c.TypeError,D=c.document,A=c.process,S=U.f,E=S,O=!!(D&&D.createEvent&&c.dispatchEvent),z="unhandledrejection",J="rejectionhandled",re=0,se=1,Ce=2,Y=1,q=2,K,Q,he,we,ae=function(ee){var ne;return v(ee)&&d(ne=ee.then)?ne:!1},te=function(ee,ne){var de=ne.value,_e=ne.state===se,Re=_e?ee.ok:ee.fail,Ae=ee.resolve,Ne=ee.reject,Xe=ee.domain,Le,xe,Me;try{Re?(_e||(ne.rejection===q&&ye(ne),ne.rejection=Y),Re===!0?Le=de:(Xe&&Xe.enter(),Le=Re(de),Xe&&(Xe.exit(),Me=!0)),Le===ee.promise?Ne(new P("Promise-chain cycle")):(xe=ae(Le))?a(xe,Le,Ae,Ne):Ae(Le)):Ne(de)}catch(Be){Xe&&!Me&&Xe.exit(),Ne(Be)}},Z=function(ee,ne){ee.notified||(ee.notified=!0,w(function(){for(var de=ee.reactions,_e;_e=de.get();)te(_e,ee);ee.notified=!1,ne&&!ee.rejection&&V(ee)}))},W=function(ee,ne,de){var _e,Re;O?(_e=D.createEvent("Event"),_e.promise=ne,_e.reason=de,_e.initEvent(ee,!1,!0),c.dispatchEvent(_e)):_e={promise:ne,reason:de},!G&&(Re=c["on"+ee])?Re(_e):ee===z&&y("Unhandled promise rejection",de)},V=function(ee){a(b,c,function(){var ne=ee.facade,de=ee.value,_e=fe(ee),Re;if(_e&&(Re=T(function(){h?A.emit("unhandledRejection",de,ne):W(z,ne,de)}),ee.rejection=h||fe(ee)?q:Y,Re.error))throw Re.value})},fe=function(ee){return ee.rejection!==Y&&!ee.parent},ye=function(ee){a(b,c,function(){var ne=ee.facade;h?A.emit("rejectionHandled",ne):W(J,ne,ee.value)})},X=function(ee,ne,de){return function(_e){ee(ne,_e,de)}},ve=function(ee,ne,de){ee.done||(ee.done=!0,de&&(ee=de),ee.value=ne,ee.state=Ce,Z(ee,!0))},ke=function(ee,ne,de){if(!ee.done){ee.done=!0,de&&(ee=de);try{if(ee.facade===ne)throw new P("Promise can't be resolved itself");var _e=ae(ne);_e?w(function(){var Re={done:!1};try{a(_e,ne,X(ke,Re,ee),X(ve,Re,ee))}catch(Ae){ve(Re,Ae,ee)}}):(ee.value=ne,ee.state=se,Z(ee,!1))}catch(Re){ve({done:!1},Re,ee)}}};if(H&&(k=function(ne){x(this,N),m(ne),a(K,this);var de=R(this);try{ne(X(ke,de),X(ve,de))}catch(_e){ve(de,_e)}},N=k.prototype,K=function(ne){F(this,{type:j,done:!1,notified:!1,parent:!1,reactions:new C,rejection:!1,state:re,value:void 0})},K.prototype=f(N,"then",function(ne,de){var _e=R(this),Re=S(g(this,k));return _e.parent=!0,Re.ok=d(ne)?ne:!0,Re.fail=d(de)&&de,Re.domain=h?A.domain:void 0,_e.state===re?_e.reactions.add(Re):w(function(){te(Re,_e)}),Re.promise}),Q=function(){var ee=new K,ne=R(ee);this.promise=ee,this.resolve=X(ke,ne),this.reject=X(ve,ne)},U.f=S=function(ee){return ee===k||ee===he?new Q(ee):E(ee)},!o&&d(I)&&_!==Object.prototype)){we=_.then,L||f(_,"then",function(ne,de){var _e=this;return new k(function(Re,Ae){a(we,_e,Re,Ae)}).then(ne,de)},{unsafe:!0});try{delete _.constructor}catch{}l&&l(_,N)}s({global:!0,constructor:!0,wrap:!0,forced:H},{Promise:k}),u(k,j,!1,!0),p(j)},{"../internals/a-callable":222,"../internals/an-instance":226,"../internals/define-built-in":245,"../internals/engine-is-node":254,"../internals/export":259,"../internals/function-call":264,"../internals/global":274,"../internals/host-report-errors":277,"../internals/internal-state":282,"../internals/is-callable":285,"../internals/is-object":289,"../internals/is-pure":290,"../internals/microtask":302,"../internals/new-promise-capability":303,"../internals/object-set-prototype-of":318,"../internals/perform":323,"../internals/promise-constructor-detection":324,"../internals/promise-native-constructor":325,"../internals/queue":328,"../internals/set-species":330,"../internals/set-to-string-tag":331,"../internals/species-constructor":335,"../internals/task":339}],371:[function(e,n,i){var s=e("../internals/export"),o=e("../internals/is-pure"),h=e("../internals/promise-native-constructor"),c=e("../internals/fails"),a=e("../internals/get-built-in"),f=e("../internals/is-callable"),l=e("../internals/species-constructor"),u=e("../internals/promise-resolve"),p=e("../internals/define-built-in"),m=h&&h.prototype,d=!!h&&c(function(){m.finally.call({then:function(){}},function(){})});if(s({target:"Promise",proto:!0,real:!0,forced:d},{finally:function(x){var g=l(this,a("Promise")),b=f(x);return this.then(b?function(w){return u(g,x()).then(function(){return w})}:x,b?function(w){return u(g,x()).then(function(){throw w})}:x)}}),!o&&f(h)){var v=a("Promise").prototype.finally;m.finally!==v&&p(m,"finally",v,{unsafe:!0})}},{"../internals/define-built-in":245,"../internals/export":259,"../internals/fails":260,"../internals/get-built-in":269,"../internals/is-callable":285,"../internals/is-pure":290,"../internals/promise-native-constructor":325,"../internals/promise-resolve":326,"../internals/species-constructor":335}],372:[function(e,n,i){e("../modules/es.promise.constructor"),e("../modules/es.promise.all"),e("../modules/es.promise.catch"),e("../modules/es.promise.race"),e("../modules/es.promise.reject"),e("../modules/es.promise.resolve")},{"../modules/es.promise.all":368,"../modules/es.promise.catch":369,"../modules/es.promise.constructor":370,"../modules/es.promise.race":373,"../modules/es.promise.reject":374,"../modules/es.promise.resolve":375}],373:[function(e,n,i){var s=e("../internals/export"),o=e("../internals/function-call"),h=e("../internals/a-callable"),c=e("../internals/new-promise-capability"),a=e("../internals/perform"),f=e("../internals/iterate"),l=e("../internals/promise-statics-incorrect-iteration");s({target:"Promise",stat:!0,forced:l},{race:function(p){var m=this,d=c.f(m),v=d.reject,x=a(function(){var g=h(m.resolve);f(p,function(b){o(g,m,b).then(d.resolve,v)})});return x.error&&v(x.value),d.promise}})},{"../internals/a-callable":222,"../internals/export":259,"../internals/function-call":264,"../internals/iterate":293,"../internals/new-promise-capability":303,"../internals/perform":323,"../internals/promise-statics-incorrect-iteration":327}],374:[function(e,n,i){var s=e("../internals/export"),o=e("../internals/function-call"),h=e("../internals/new-promise-capability"),c=e("../internals/promise-constructor-detection").CONSTRUCTOR;s({target:"Promise",stat:!0,forced:c},{reject:function(f){var l=h.f(this);return o(l.reject,void 0,f),l.promise}})},{"../internals/export":259,"../internals/function-call":264,"../internals/new-promise-capability":303,"../internals/promise-constructor-detection":324}],375:[function(e,n,i){var s=e("../internals/export"),o=e("../internals/get-built-in"),h=e("../internals/is-pure"),c=e("../internals/promise-native-constructor"),a=e("../internals/promise-constructor-detection").CONSTRUCTOR,f=e("../internals/promise-resolve"),l=o("Promise"),u=h&&!a;s({target:"Promise",stat:!0,forced:h||a},{resolve:function(m){return f(u&&this===l?c:this,m)}})},{"../internals/export":259,"../internals/get-built-in":269,"../internals/is-pure":290,"../internals/promise-constructor-detection":324,"../internals/promise-native-constructor":325,"../internals/promise-resolve":326}],376:[function(e,n,i){var s=e("../internals/export"),o=e("../internals/function-uncurry-this"),h=e("../internals/to-absolute-index"),c=RangeError,a=String.fromCharCode,f=String.fromCodePoint,l=o([].join),u=!!f&&f.length!==1;s({target:"String",stat:!0,arity:1,forced:u},{fromCodePoint:function(m){for(var d=[],v=arguments.length,x=0,g;v>x;){if(g=+arguments[x++],h(g,1114111)!==g)throw new c(g+" is not a valid code point");d[x]=g<65536?a(g):a(((g-=65536)>>10)+55296,g%1024+56320)}return l(d,"")}})},{"../internals/export":259,"../internals/function-uncurry-this":268,"../internals/to-absolute-index":340}],377:[function(e,n,i){var s=e("../internals/export"),o=e("../internals/function-uncurry-this"),h=e("../internals/not-a-regexp"),c=e("../internals/require-object-coercible"),a=e("../internals/to-string"),f=e("../internals/correct-is-regexp-logic"),l=o("".indexOf);s({target:"String",proto:!0,forced:!f("includes")},{includes:function(p){return!!~l(a(c(this)),a(h(p)),arguments.length>1?arguments[1]:void 0)}})},{"../internals/correct-is-regexp-logic":238,"../internals/export":259,"../internals/function-uncurry-this":268,"../internals/not-a-regexp":304,"../internals/require-object-coercible":329,"../internals/to-string":348}],378:[function(e,n,i){var s=e("../internals/well-known-symbol-define");s("asyncIterator")},{"../internals/well-known-symbol-define":355}],379:[function(e,n,i){var s=e("../internals/export"),o=e("../internals/global"),h=e("../internals/function-call"),c=e("../internals/function-uncurry-this"),a=e("../internals/is-pure"),f=e("../internals/descriptors"),l=e("../internals/symbol-constructor-detection"),u=e("../internals/fails"),p=e("../internals/has-own-property"),m=e("../internals/object-is-prototype-of"),d=e("../internals/an-object"),v=e("../internals/to-indexed-object"),x=e("../internals/to-property-key"),g=e("../internals/to-string"),b=e("../internals/create-property-descriptor"),w=e("../internals/object-create"),y=e("../internals/object-keys"),T=e("../internals/object-get-own-property-names"),C=e("../internals/object-get-own-property-names-external"),M=e("../internals/object-get-own-property-symbols"),I=e("../internals/object-get-own-property-descriptor"),B=e("../internals/object-define-property"),U=e("../internals/object-define-properties"),j=e("../internals/object-property-is-enumerable"),H=e("../internals/define-built-in"),G=e("../internals/define-built-in-accessor"),L=e("../internals/shared"),R=e("../internals/shared-key"),F=e("../internals/hidden-keys"),_=e("../internals/uid"),k=e("../internals/well-known-symbol"),N=e("../internals/well-known-symbol-wrapped"),P=e("../internals/well-known-symbol-define"),D=e("../internals/symbol-define-to-primitive"),A=e("../internals/set-to-string-tag"),S=e("../internals/internal-state"),E=e("../internals/array-iteration").forEach,O=R("hidden"),z="Symbol",J="prototype",re=S.set,se=S.getterFor(z),Ce=Object[J],Y=o.Symbol,q=Y&&Y[J],K=o.RangeError,Q=o.TypeError,he=o.QObject,we=I.f,ae=B.f,te=C.f,Z=j.f,W=c([].push),V=L("symbols"),fe=L("op-symbols"),ye=L("wks"),X=!he||!he[J]||!he[J].findChild,ve=function(Le,xe,Me){var Be=we(Ce,xe);Be&&delete Ce[xe],ae(Le,xe,Me),Be&&Le!==Ce&&ae(Ce,xe,Be)},ke=f&&u(function(){return w(ae({},"a",{get:function(){return ae(this,"a",{value:7}).a}})).a!==7})?ve:ae,ee=function(Le,xe){var Me=V[Le]=w(q);return re(Me,{type:z,tag:Le,description:xe}),f||(Me.description=xe),Me},ne=function(xe,Me,Be){xe===Ce&&ne(fe,Me,Be),d(xe);var Ve=x(Me);return d(Be),p(V,Ve)?(Be.enumerable?(p(xe,O)&&xe[O][Ve]&&(xe[O][Ve]=!1),Be=w(Be,{enumerable:b(0,!1)})):(p(xe,O)||ae(xe,O,b(1,{})),xe[O][Ve]=!0),ke(xe,Ve,Be)):ae(xe,Ve,Be)},de=function(xe,Me){d(xe);var Be=v(Me),Ve=y(Be).concat(Xe(Be));return E(Ve,function(ot){(!f||h(Re,Be,ot))&&ne(xe,ot,Be[ot])}),xe},_e=function(xe,Me){return Me===void 0?w(xe):de(w(xe),Me)},Re=function(xe){var Me=x(xe),Be=h(Z,this,Me);return this===Ce&&p(V,Me)&&!p(fe,Me)?!1:Be||!p(this,Me)||!p(V,Me)||p(this,O)&&this[O][Me]?Be:!0},Ae=function(xe,Me){var Be=v(xe),Ve=x(Me);if(!(Be===Ce&&p(V,Ve)&&!p(fe,Ve))){var ot=we(Be,Ve);return ot&&p(V,Ve)&&!(p(Be,O)&&Be[O][Ve])&&(ot.enumerable=!0),ot}},Ne=function(xe){var Me=te(v(xe)),Be=[];return E(Me,function(Ve){!p(V,Ve)&&!p(F,Ve)&&W(Be,Ve)}),Be},Xe=function(Le){var xe=Le===Ce,Me=te(xe?fe:v(Le)),Be=[];return E(Me,function(Ve){p(V,Ve)&&(!xe||p(Ce,Ve))&&W(Be,V[Ve])}),Be};l||(Y=function(){if(m(q,this))throw new Q("Symbol is not a constructor");var xe=!arguments.length||arguments[0]===void 0?void 0:g(arguments[0]),Me=_(xe),Be=function(Ve){this===Ce&&h(Be,fe,Ve),p(this,O)&&p(this[O],Me)&&(this[O][Me]=!1);var ot=b(1,Ve);try{ke(this,Me,ot)}catch(ct){if(!(ct instanceof K))throw ct;ve(this,Me,ot)}};return f&&X&&ke(Ce,Me,{configurable:!0,set:Be}),ee(Me,xe)},q=Y[J],H(q,"toString",function(){return se(this).tag}),H(Y,"withoutSetter",function(Le){return ee(_(Le),Le)}),j.f=Re,B.f=ne,U.f=de,I.f=Ae,T.f=C.f=Ne,M.f=Xe,N.f=function(Le){return ee(k(Le),Le)},f&&(G(q,"description",{configurable:!0,get:function(){return se(this).description}}),a||H(Ce,"propertyIsEnumerable",Re,{unsafe:!0}))),s({global:!0,constructor:!0,wrap:!0,forced:!l,sham:!l},{Symbol:Y}),E(y(ye),function(Le){P(Le)}),s({target:z,stat:!0,forced:!l},{useSetter:function(){X=!0},useSimple:function(){X=!1}}),s({target:"Object",stat:!0,forced:!l,sham:!f},{create:_e,defineProperty:ne,defineProperties:de,getOwnPropertyDescriptor:Ae}),s({target:"Object",stat:!0,forced:!l},{getOwnPropertyNames:Ne}),D(),A(Y,z),F[O]=!0},{"../internals/an-object":227,"../internals/array-iteration":229,"../internals/create-property-descriptor":242,"../internals/define-built-in":245,"../internals/define-built-in-accessor":244,"../internals/descriptors":247,"../internals/export":259,"../internals/fails":260,"../internals/function-call":264,"../internals/function-uncurry-this":268,"../internals/global":274,"../internals/has-own-property":275,"../internals/hidden-keys":276,"../internals/internal-state":282,"../internals/is-pure":290,"../internals/object-create":306,"../internals/object-define-properties":307,"../internals/object-define-property":308,"../internals/object-get-own-property-descriptor":309,"../internals/object-get-own-property-names":311,"../internals/object-get-own-property-names-external":310,"../internals/object-get-own-property-symbols":312,"../internals/object-is-prototype-of":314,"../internals/object-keys":316,"../internals/object-property-is-enumerable":317,"../internals/set-to-string-tag":331,"../internals/shared":334,"../internals/shared-key":332,"../internals/symbol-constructor-detection":336,"../internals/symbol-define-to-primitive":337,"../internals/to-indexed-object":341,"../internals/to-property-key":346,"../internals/to-string":348,"../internals/uid":350,"../internals/well-known-symbol":357,"../internals/well-known-symbol-define":355,"../internals/well-known-symbol-wrapped":356}],380:[function(e,n,i){var s=e("../internals/export"),o=e("../internals/get-built-in"),h=e("../internals/has-own-property"),c=e("../internals/to-string"),a=e("../internals/shared"),f=e("../internals/symbol-registry-detection"),l=a("string-to-symbol-registry"),u=a("symbol-to-string-registry");s({target:"Symbol",stat:!0,forced:!f},{for:function(p){var m=c(p);if(h(l,m))return l[m];var d=o("Symbol")(m);return l[m]=d,u[d]=m,d}})},{"../internals/export":259,"../internals/get-built-in":269,"../internals/has-own-property":275,"../internals/shared":334,"../internals/symbol-registry-detection":338,"../internals/to-string":348}],381:[function(e,n,i){e("../modules/es.symbol.constructor"),e("../modules/es.symbol.for"),e("../modules/es.symbol.key-for"),e("../modules/es.json.stringify"),e("../modules/es.object.get-own-property-symbols")},{"../modules/es.json.stringify":362,"../modules/es.object.get-own-property-symbols":365,"../modules/es.symbol.constructor":379,"../modules/es.symbol.for":380,"../modules/es.symbol.key-for":382}],382:[function(e,n,i){var s=e("../internals/export"),o=e("../internals/has-own-property"),h=e("../internals/is-symbol"),c=e("../internals/try-to-string"),a=e("../internals/shared"),f=e("../internals/symbol-registry-detection"),l=a("symbol-to-string-registry");s({target:"Symbol",stat:!0,forced:!f},{keyFor:function(p){if(!h(p))throw new TypeError(c(p)+" is not a symbol");if(o(l,p))return l[p]}})},{"../internals/export":259,"../internals/has-own-property":275,"../internals/is-symbol":292,"../internals/shared":334,"../internals/symbol-registry-detection":338,"../internals/try-to-string":349}],383:[function(e,n,i){function s(w){return Array.isArray?Array.isArray(w):b(w)==="[object Array]"}i.isArray=s;function o(w){return typeof w=="boolean"}i.isBoolean=o;function h(w){return w===null}i.isNull=h;function c(w){return w==null}i.isNullOrUndefined=c;function a(w){return typeof w=="number"}i.isNumber=a;function f(w){return typeof w=="string"}i.isString=f;function l(w){return typeof w=="symbol"}i.isSymbol=l;function u(w){return w===void 0}i.isUndefined=u;function p(w){return b(w)==="[object RegExp]"}i.isRegExp=p;function m(w){return typeof w=="object"&&w!==null}i.isObject=m;function d(w){return b(w)==="[object Date]"}i.isDate=d;function v(w){return b(w)==="[object Error]"||w instanceof Error}i.isError=v;function x(w){return typeof w=="function"}i.isFunction=x;function g(w){return w===null||typeof w=="boolean"||typeof w=="number"||typeof w=="string"||typeof w=="symbol"||typeof w>"u"}i.isPrimitive=g,i.isBuffer=e("buffer").Buffer.isBuffer;function b(w){return Object.prototype.toString.call(w)}},{buffer:220}],384:[function(e,n,i){(function(s){(function(){var o=e("elliptic"),h=e("bn.js");n.exports=function(u){return new a(u)};var c={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};c.p224=c.secp224r1,c.p256=c.secp256r1=c.prime256v1,c.p192=c.secp192r1=c.prime192v1,c.p384=c.secp384r1,c.p521=c.secp521r1;function a(l){this.curveType=c[l],this.curveType||(this.curveType={name:l}),this.curve=new o.ec(this.curveType.name),this.keys=void 0}a.prototype.generateKeys=function(l,u){return this.keys=this.curve.genKeyPair(),this.getPublicKey(l,u)},a.prototype.computeSecret=function(l,u,p){u=u||"utf8",s.isBuffer(l)||(l=new s(l,u));var m=this.curve.keyFromPublic(l).getPublic(),d=m.mul(this.keys.getPrivate()).getX();return f(d,p,this.curveType.byteLength)},a.prototype.getPublicKey=function(l,u){var p=this.keys.getPublic(u==="compressed",!0);return u==="hybrid"&&(p[p.length-1]%2?p[0]=7:p[0]=6),f(p,l)},a.prototype.getPrivateKey=function(l){return f(this.keys.getPrivate(),l)},a.prototype.setPublicKey=function(l,u){return u=u||"utf8",s.isBuffer(l)||(l=new s(l,u)),this.keys._importPublic(l),this},a.prototype.setPrivateKey=function(l,u){u=u||"utf8",s.isBuffer(l)||(l=new s(l,u));var p=new h(l);return p=p.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(p),this};function f(l,u,p){Array.isArray(l)||(l=l.toArray());var m=new s(l);if(p&&m.lengthv){var x=m==="rmd160"?new f:l(m);d=x.update(d).digest()}else d.lengtha?u=l(u):u.length=_?F:""+Array(_+1-N.length).join(k)+F},C={s:T,z:function(F){var _=-F.utcOffset(),k=Math.abs(_),N=Math.floor(k/60),P=k%60;return(_<=0?"+":"-")+T(N,2,"0")+":"+T(P,2,"0")},m:function F(_,k){if(_.date()1)return F(A[0])}else{var S=_.name;I[S]=_,P=S}return!N&&P&&(M=P),P||!N&&M},H=function(F,_){if(U(F))return F.clone();var k=typeof _=="object"?_:{};return k.date=F,k.args=arguments,new L(k)},G=C;G.l=j,G.i=U,G.w=function(F,_){return H(F,{locale:_.$L,utc:_.$u,x:_.$x,$offset:_.$offset})};var L=function(){function F(k){this.$L=j(k.locale,null,!0),this.parse(k),this.$x=this.$x||k.x||{},this[B]=!0}var _=F.prototype;return _.parse=function(k){this.$d=function(N){var P=N.date,D=N.utc;if(P===null)return new Date(NaN);if(G.u(P))return new Date;if(P instanceof Date)return new Date(P);if(typeof P=="string"&&!/Z$/i.test(P)){var A=P.match(b);if(A){var S=A[2]-1||0,E=(A[7]||"0").substring(0,3);return D?new Date(Date.UTC(A[1],S,A[3]||1,A[4]||0,A[5]||0,A[6]||0,E)):new Date(A[1],S,A[3]||1,A[4]||0,A[5]||0,A[6]||0,E)}}return new Date(P)}(k),this.init()},_.init=function(){var k=this.$d;this.$y=k.getFullYear(),this.$M=k.getMonth(),this.$D=k.getDate(),this.$W=k.getDay(),this.$H=k.getHours(),this.$m=k.getMinutes(),this.$s=k.getSeconds(),this.$ms=k.getMilliseconds()},_.$utils=function(){return G},_.isValid=function(){return this.$d.toString()!==g},_.isSame=function(k,N){var P=H(k);return this.startOf(N)<=P&&P<=this.endOf(N)},_.isAfter=function(k,N){return H(k)68?1900:2e3)},u=function(g){return function(b){this[g]=+b}},p=[/[+-]\d\d:?(\d\d)?|Z/,function(g){(this.zone||(this.zone={})).offset=function(b){if(!b||b==="Z")return 0;var w=b.match(/([+-]|\d\d)/g),y=60*w[1]+(+w[2]||0);return y===0?0:w[0]==="+"?-y:y}(g)}],m=function(g){var b=f[g];return b&&(b.indexOf?b:b.s.concat(b.f))},d=function(g,b){var w,y=f.meridiem;if(y){for(var T=1;T<=24;T+=1)if(g.indexOf(y(T,0,b))>-1){w=T>12;break}}else w=g===(b?"pm":"PM");return w},v={A:[a,function(g){this.afternoon=d(g,!1)}],a:[a,function(g){this.afternoon=d(g,!0)}],S:[/\d/,function(g){this.milliseconds=100*+g}],SS:[h,function(g){this.milliseconds=10*+g}],SSS:[/\d{3}/,function(g){this.milliseconds=+g}],s:[c,u("seconds")],ss:[c,u("seconds")],m:[c,u("minutes")],mm:[c,u("minutes")],H:[c,u("hours")],h:[c,u("hours")],HH:[c,u("hours")],hh:[c,u("hours")],D:[c,u("day")],DD:[h,u("day")],Do:[a,function(g){var b=f.ordinal,w=g.match(/\d+/);if(this.day=w[0],b)for(var y=1;y<=31;y+=1)b(y).replace(/\[|\]/g,"")===g&&(this.day=y)}],M:[c,u("month")],MM:[h,u("month")],MMM:[a,function(g){var b=m("months"),w=(m("monthsShort")||b.map(function(y){return y.slice(0,3)})).indexOf(g)+1;if(w<1)throw new Error;this.month=w%12||w}],MMMM:[a,function(g){var b=m("months").indexOf(g)+1;if(b<1)throw new Error;this.month=b%12||b}],Y:[/[+-]?\d+/,u("year")],YY:[h,function(g){this.year=l(g)}],YYYY:[/\d{4}/,u("year")],Z:p,ZZ:p};function x(g){var b,w;b=g,w=f&&f.formats;for(var y=(g=b.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(j,H,G){var L=G&&G.toUpperCase();return H||w[G]||s[G]||w[L].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(R,F,_){return F||_.slice(1)})})).match(o),T=y.length,C=0;C-1)return new Date((N==="X"?1e3:1)*k);var D=x(N)(k),A=D.year,S=D.month,E=D.day,O=D.hours,z=D.minutes,J=D.seconds,re=D.milliseconds,se=D.zone,Ce=new Date,Y=E||(A||S?1:Ce.getDate()),q=A||Ce.getFullYear(),K=0;A&&!S||(K=S>0?S-1:Ce.getMonth());var Q=O||0,he=z||0,we=J||0,ae=re||0;return se?new Date(Date.UTC(q,K,Y,Q,he,we,ae+60*se.offset*1e3)):P?new Date(Date.UTC(q,K,Y,Q,he,we,ae)):new Date(q,K,Y,Q,he,we,ae)}catch{return new Date("")}}(M,U,I),this.init(),L&&L!==!0&&(this.$L=this.locale(L).$L),G&&M!=this.format(U)&&(this.$d=new Date("")),f={}}else if(U instanceof Array)for(var R=U.length,F=1;F<=R;F+=1){B[1]=U[F-1];var _=w.apply(this,B);if(_.isValid()){this.$d=_.$d,this.$L=_.$L,this.init();break}F===R&&(this.$d=new Date(""))}else T.call(this,C)}}})},{}],393:[function(e,n,i){(function(s,o){typeof i=="object"&&typeof n<"u"?n.exports=o():(s=typeof globalThis<"u"?globalThis:s||self).dayjs_plugin_utc=o()})(void 0,function(){var s="minute",o=/[+-]\d\d(?::?\d\d)?/g,h=/([+-]|\d\d)/g;return function(c,a,f){var l=a.prototype;f.utc=function(g){var b={date:g,utc:!0,args:arguments};return new a(b)},l.utc=function(g){var b=f(this.toDate(),{locale:this.$L,utc:!0});return g?b.add(this.utcOffset(),s):b},l.local=function(){return f(this.toDate(),{locale:this.$L,utc:!1})};var u=l.parse;l.parse=function(g){g.utc&&(this.$u=!0),this.$utils().u(g.$offset)||(this.$offset=g.$offset),u.call(this,g)};var p=l.init;l.init=function(){if(this.$u){var g=this.$d;this.$y=g.getUTCFullYear(),this.$M=g.getUTCMonth(),this.$D=g.getUTCDate(),this.$W=g.getUTCDay(),this.$H=g.getUTCHours(),this.$m=g.getUTCMinutes(),this.$s=g.getUTCSeconds(),this.$ms=g.getUTCMilliseconds()}else p.call(this)};var m=l.utcOffset;l.utcOffset=function(g,b){var w=this.$utils().u;if(w(g))return this.$u?0:w(this.$offset)?m.call(this):this.$offset;if(typeof g=="string"&&(g=function(M){M===void 0&&(M="");var I=M.match(o);if(!I)return null;var B=(""+I[0]).match(h)||["-",0,0],U=B[0],j=60*+B[1]+ +B[2];return j===0?0:U==="+"?j:-j}(g),g===null))return this;var y=Math.abs(g)<=16?60*g:g,T=this;if(b)return T.$offset=y,T.$u=g===0,T;if(g!==0){var C=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(T=this.local().add(y+C,s)).$offset=y,T.$x.$localOffset=C}else T=this.utc();return T};var d=l.format;l.format=function(g){var b=g||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return d.call(this,b)},l.valueOf=function(){var g=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*g},l.isUTC=function(){return!!this.$u},l.toISOString=function(){return this.toDate().toISOString()},l.toString=function(){return this.toDate().toUTCString()};var v=l.toDate;l.toDate=function(g){return g==="s"&&this.$offset?f(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():v.call(this)};var x=l.diff;l.diff=function(g,b,w){if(g&&this.$u===g.$u)return x.call(this,g,b,w);var y=this.local(),T=f(g).local();return x.call(y,T,b,w)}}})},{}],394:[function(e,n,i){i.utils=e("./des/utils"),i.Cipher=e("./des/cipher"),i.DES=e("./des/des"),i.CBC=e("./des/cbc"),i.EDE=e("./des/ede")},{"./des/cbc":395,"./des/cipher":396,"./des/des":397,"./des/ede":398,"./des/utils":399}],395:[function(e,n,i){var s=e("minimalistic-assert"),o=e("inherits"),h={};function c(f){s.equal(f.length,8,"Invalid IV length"),this.iv=new Array(8);for(var l=0;l0;l--)a+=this._buffer(c,a),f+=this._flushBuffer(u,f);return a+=this._buffer(c,a),u},o.prototype.final=function(c){var a;c&&(a=this.update(c));var f;return this.type==="encrypt"?f=this._finalEncrypt():f=this._finalDecrypt(),a?a.concat(f):f},o.prototype._pad=function(c,a){if(a===0)return!1;for(;a>>1];d=h.r28shl(d,g),v=h.r28shl(v,g),h.pc2(d,v,p.keys,x)}},f.prototype._update=function(p,m,d,v){var x=this._desState,g=h.readUInt32BE(p,m),b=h.readUInt32BE(p,m+4);h.ip(g,b,x.tmp,0),g=x.tmp[0],b=x.tmp[1],this.type==="encrypt"?this._encrypt(x,g,b,x.tmp,0):this._decrypt(x,g,b,x.tmp,0),g=x.tmp[0],b=x.tmp[1],h.writeUInt32BE(d,g,v),h.writeUInt32BE(d,b,v+4)},f.prototype._pad=function(p,m){if(this.padding===!1)return!1;for(var d=p.length-m,v=m;v>>0,g=I}h.rip(b,g,v,x)},f.prototype._decrypt=function(p,m,d,v,x){for(var g=d,b=m,w=p.keys.length-2;w>=0;w-=2){var y=p.keys[w],T=p.keys[w+1];h.expand(g,p.tmp,0),y^=p.tmp[0],T^=p.tmp[1];var C=h.substitute(y,T),M=h.permute(C),I=g;g=(b^M)>>>0,b=I}h.rip(g,b,v,x)}},{"./cipher":396,"./utils":399,inherits:440,"minimalistic-assert":453}],398:[function(e,n,i){var s=e("minimalistic-assert"),o=e("inherits"),h=e("./cipher"),c=e("./des");function a(l,u){s.equal(u.length,24,"Invalid key length");var p=u.slice(0,8),m=u.slice(8,16),d=u.slice(16,24);l==="encrypt"?this.ciphers=[c.create({type:"encrypt",key:p}),c.create({type:"decrypt",key:m}),c.create({type:"encrypt",key:d})]:this.ciphers=[c.create({type:"decrypt",key:d}),c.create({type:"encrypt",key:m}),c.create({type:"decrypt",key:p})]}function f(l){h.call(this,l);var u=new a(this.type,this.options.key);this._edeState=u}o(f,h),n.exports=f,f.create=function(u){return new f(u)},f.prototype._update=function(u,p,m,d){var v=this._edeState;v.ciphers[0]._update(u,p,m,d),v.ciphers[1]._update(m,d,m,d),v.ciphers[2]._update(m,d,m,d)},f.prototype._pad=c.prototype._pad,f.prototype._unpad=c.prototype._unpad},{"./cipher":396,"./des":397,inherits:440,"minimalistic-assert":453}],399:[function(e,n,i){i.readUInt32BE=function(a,f){var l=a[0+f]<<24|a[1+f]<<16|a[2+f]<<8|a[3+f];return l>>>0},i.writeUInt32BE=function(a,f,l){a[0+l]=f>>>24,a[1+l]=f>>>16&255,a[2+l]=f>>>8&255,a[3+l]=f&255},i.ip=function(a,f,l,u){for(var p=0,m=0,d=6;d>=0;d-=2){for(var v=0;v<=24;v+=8)p<<=1,p|=f>>>v+d&1;for(var v=0;v<=24;v+=8)p<<=1,p|=a>>>v+d&1}for(var d=6;d>=0;d-=2){for(var v=1;v<=25;v+=8)m<<=1,m|=f>>>v+d&1;for(var v=1;v<=25;v+=8)m<<=1,m|=a>>>v+d&1}l[u+0]=p>>>0,l[u+1]=m>>>0},i.rip=function(a,f,l,u){for(var p=0,m=0,d=0;d<4;d++)for(var v=24;v>=0;v-=8)p<<=1,p|=f>>>v+d&1,p<<=1,p|=a>>>v+d&1;for(var d=4;d<8;d++)for(var v=24;v>=0;v-=8)m<<=1,m|=f>>>v+d&1,m<<=1,m|=a>>>v+d&1;l[u+0]=p>>>0,l[u+1]=m>>>0},i.pc1=function(a,f,l,u){for(var p=0,m=0,d=7;d>=5;d--){for(var v=0;v<=24;v+=8)p<<=1,p|=f>>v+d&1;for(var v=0;v<=24;v+=8)p<<=1,p|=a>>v+d&1}for(var v=0;v<=24;v+=8)p<<=1,p|=f>>v+d&1;for(var d=1;d<=3;d++){for(var v=0;v<=24;v+=8)m<<=1,m|=f>>v+d&1;for(var v=0;v<=24;v+=8)m<<=1,m|=a>>v+d&1}for(var v=0;v<=24;v+=8)m<<=1,m|=a>>v+d&1;l[u+0]=p>>>0,l[u+1]=m>>>0},i.r28shl=function(a,f){return a<>>28-f};var s=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];i.pc2=function(a,f,l,u){for(var p=0,m=0,d=s.length>>>1,v=0;v>>s[v]&1;for(var v=d;v>>s[v]&1;l[u+0]=p>>>0,l[u+1]=m>>>0},i.expand=function(a,f,l){var u=0,p=0;u=(a&1)<<5|a>>>27;for(var m=23;m>=15;m-=4)u<<=6,u|=a>>>m&63;for(var m=11;m>=3;m-=4)p|=a>>>m&63,p<<=6;p|=(a&31)<<1|a>>>31,f[l+0]=u>>>0,f[l+1]=p>>>0};var o=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];i.substitute=function(a,f){for(var l=0,u=0;u<4;u++){var p=a>>>18-u*6&63,m=o[u*64+p];l<<=4,l|=m}for(var u=0;u<4;u++){var p=f>>>18-u*6&63,m=o[4*64+u*64+p];l<<=4,l|=m}return l>>>0};var h=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];i.permute=function(a){for(var f=0,l=0;l>>h[l]&1;return f>>>0},i.padSplit=function(a,f,l){for(var u=a.toString(2);u.lengthT;)M.ishrn(1);if(M.isEven()&&M.iadd(f),M.testn(1)||M.iadd(l),C.cmp(l)){if(!C.cmp(u))for(;M.mod(p).cmp(m);)M.iadd(v)}else for(;M.mod(h).cmp(d);)M.iadd(v);if(I=M.shrn(1),b(I)&&b(M)&&w(I)&&w(M)&&a.test(I)&&a.test(M))return M}}},{"bn.js":404,"miller-rabin":451,randombytes:475}],403:[function(e,n,i){n.exports={modp1:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}},{}],404:[function(e,n,i){arguments[4][184][0].apply(i,arguments)},{buffer:188,dup:184}],405:[function(e,n,i){var s=i;s.version=e("../package.json").version,s.utils=e("./elliptic/utils"),s.rand=e("brorand"),s.curve=e("./elliptic/curve"),s.curves=e("./elliptic/curves"),s.ec=e("./elliptic/ec"),s.eddsa=e("./elliptic/eddsa")},{"../package.json":421,"./elliptic/curve":408,"./elliptic/curves":411,"./elliptic/ec":412,"./elliptic/eddsa":415,"./elliptic/utils":419,brorand:187}],406:[function(e,n,i){var s=e("bn.js"),o=e("../utils"),h=o.getNAF,c=o.getJSF,a=o.assert;function f(u,p){this.type=u,this.p=new s(p.p,16),this.red=p.prime?s.red(p.prime):s.mont(this.p),this.zero=new s(0).toRed(this.red),this.one=new s(1).toRed(this.red),this.two=new s(2).toRed(this.red),this.n=p.n&&new s(p.n,16),this.g=p.g&&this.pointFromJSON(p.g,p.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var m=this.n&&this.p.div(this.n);!m||m.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}n.exports=f,f.prototype.point=function(){throw new Error("Not implemented")},f.prototype.validate=function(){throw new Error("Not implemented")},f.prototype._fixedNafMul=function(p,m){a(p.precomputed);var d=p._getDoubles(),v=h(m,1,this._bitLength),x=(1<=b;y--)w=(w<<1)+v[y];g.push(w)}for(var T=this.jpoint(null,null,null),C=this.jpoint(null,null,null),M=x;M>0;M--){for(b=0;b=0;w--){for(var y=0;w>=0&&g[w]===0;w--)y++;if(w>=0&&y++,b=b.dblp(y),w<0)break;var T=g[w];a(T!==0),p.type==="affine"?T>0?b=b.mixedAdd(x[T-1>>1]):b=b.mixedAdd(x[-T-1>>1].neg()):T>0?b=b.add(x[T-1>>1]):b=b.add(x[-T-1>>1].neg())}return p.type==="affine"?b.toP():b},f.prototype._wnafMulAdd=function(p,m,d,v,x){var g=this._wnafT1,b=this._wnafT2,w=this._wnafT3,y=0,T,C,M;for(T=0;T=1;T-=2){var B=T-1,U=T;if(g[B]!==1||g[U]!==1){w[B]=h(d[B],g[B],this._bitLength),w[U]=h(d[U],g[U],this._bitLength),y=Math.max(w[B].length,y),y=Math.max(w[U].length,y);continue}var j=[m[B],null,null,m[U]];m[B].y.cmp(m[U].y)===0?(j[1]=m[B].add(m[U]),j[2]=m[B].toJ().mixedAdd(m[U].neg())):m[B].y.cmp(m[U].y.redNeg())===0?(j[1]=m[B].toJ().mixedAdd(m[U]),j[2]=m[B].add(m[U].neg())):(j[1]=m[B].toJ().mixedAdd(m[U]),j[2]=m[B].toJ().mixedAdd(m[U].neg()));var H=[-3,-1,-5,-7,0,7,5,1,3],G=c(d[B],d[U]);for(y=Math.max(G[0].length,y),w[B]=new Array(y),w[U]=new Array(y),C=0;C=0;T--){for(var k=0;T>=0;){var N=!0;for(C=0;C=0&&k++,F=F.dblp(k),T<0)break;for(C=0;C0?M=b[C][P-1>>1]:P<0&&(M=b[C][-P-1>>1].neg()),M.type==="affine"?F=F.mixedAdd(M):F=F.add(M))}}for(T=0;T=Math.ceil((p.bitLength()+1)/m.step):!1},l.prototype._getDoubles=function(p,m){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var d=[this],v=this,x=0;x":""},l.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)},l.prototype._extDbl=function(){var p=this.x.redSqr(),m=this.y.redSqr(),d=this.z.redSqr();d=d.redIAdd(d);var v=this.curve._mulA(p),x=this.x.redAdd(this.y).redSqr().redISub(p).redISub(m),g=v.redAdd(m),b=g.redSub(d),w=v.redSub(m),y=x.redMul(b),T=g.redMul(w),C=x.redMul(w),M=b.redMul(g);return this.curve.point(y,T,M,C)},l.prototype._projDbl=function(){var p=this.x.redAdd(this.y).redSqr(),m=this.x.redSqr(),d=this.y.redSqr(),v,x,g,b,w,y;if(this.curve.twisted){b=this.curve._mulA(m);var T=b.redAdd(d);this.zOne?(v=p.redSub(m).redSub(d).redMul(T.redSub(this.curve.two)),x=T.redMul(b.redSub(d)),g=T.redSqr().redSub(T).redSub(T)):(w=this.z.redSqr(),y=T.redSub(w).redISub(w),v=p.redSub(m).redISub(d).redMul(y),x=T.redMul(b.redSub(d)),g=T.redMul(y))}else b=m.redAdd(d),w=this.curve._mulC(this.z).redSqr(),y=b.redSub(w).redSub(w),v=this.curve._mulC(p.redISub(b)).redMul(y),x=this.curve._mulC(b).redMul(m.redISub(d)),g=b.redMul(y);return this.curve.point(v,x,g)},l.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},l.prototype._extAdd=function(p){var m=this.y.redSub(this.x).redMul(p.y.redSub(p.x)),d=this.y.redAdd(this.x).redMul(p.y.redAdd(p.x)),v=this.t.redMul(this.curve.dd).redMul(p.t),x=this.z.redMul(p.z.redAdd(p.z)),g=d.redSub(m),b=x.redSub(v),w=x.redAdd(v),y=d.redAdd(m),T=g.redMul(b),C=w.redMul(y),M=g.redMul(y),I=b.redMul(w);return this.curve.point(T,C,I,M)},l.prototype._projAdd=function(p){var m=this.z.redMul(p.z),d=m.redSqr(),v=this.x.redMul(p.x),x=this.y.redMul(p.y),g=this.curve.d.redMul(v).redMul(x),b=d.redSub(g),w=d.redAdd(g),y=this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(v).redISub(x),T=m.redMul(b).redMul(y),C,M;return this.curve.twisted?(C=m.redMul(w).redMul(x.redSub(this.curve._mulA(v))),M=b.redMul(w)):(C=m.redMul(w).redMul(x.redSub(v)),M=this.curve._mulC(b).redMul(w)),this.curve.point(T,C,M)},l.prototype.add=function(p){return this.isInfinity()?p:p.isInfinity()?this:this.curve.extended?this._extAdd(p):this._projAdd(p)},l.prototype.mul=function(p){return this._hasDoubles(p)?this.curve._fixedNafMul(this,p):this.curve._wnafMul(this,p)},l.prototype.mulAdd=function(p,m,d){return this.curve._wnafMulAdd(1,[this,m],[p,d],2,!1)},l.prototype.jmulAdd=function(p,m,d){return this.curve._wnafMulAdd(1,[this,m],[p,d],2,!0)},l.prototype.normalize=function(){if(this.zOne)return this;var p=this.z.redInvm();return this.x=this.x.redMul(p),this.y=this.y.redMul(p),this.t&&(this.t=this.t.redMul(p)),this.z=this.curve.one,this.zOne=!0,this},l.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},l.prototype.getX=function(){return this.normalize(),this.x.fromRed()},l.prototype.getY=function(){return this.normalize(),this.y.fromRed()},l.prototype.eq=function(p){return this===p||this.getX().cmp(p.getX())===0&&this.getY().cmp(p.getY())===0},l.prototype.eqXToP=function(p){var m=p.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(m)===0)return!0;for(var d=p.clone(),v=this.curve.redN.redMul(this.z);;){if(d.iadd(this.curve.n),d.cmp(this.curve.p)>=0)return!1;if(m.redIAdd(v),this.x.cmp(m)===0)return!0}},l.prototype.toP=l.prototype.normalize,l.prototype.mixedAdd=l.prototype.add},{"../utils":419,"./base":406,"bn.js":420,inherits:440}],408:[function(e,n,i){var s=i;s.base=e("./base"),s.short=e("./short"),s.mont=e("./mont"),s.edwards=e("./edwards")},{"./base":406,"./edwards":407,"./mont":409,"./short":410}],409:[function(e,n,i){var s=e("bn.js"),o=e("inherits"),h=e("./base"),c=e("../utils");function a(l){h.call(this,"mont",l),this.a=new s(l.a,16).toRed(this.red),this.b=new s(l.b,16).toRed(this.red),this.i4=new s(4).toRed(this.red).redInvm(),this.two=new s(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}o(a,h),n.exports=a,a.prototype.validate=function(u){var p=u.normalize().x,m=p.redSqr(),d=m.redMul(p).redAdd(m.redMul(this.a)).redAdd(p),v=d.redSqrt();return v.redSqr().cmp(d)===0};function f(l,u,p){h.BasePoint.call(this,l,"projective"),u===null&&p===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new s(u,16),this.z=new s(p,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}o(f,h.BasePoint),a.prototype.decodePoint=function(u,p){return this.point(c.toArray(u,p),1)},a.prototype.point=function(u,p){return new f(this,u,p)},a.prototype.pointFromJSON=function(u){return f.fromJSON(this,u)},f.prototype.precompute=function(){},f.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},f.fromJSON=function(u,p){return new f(u,p[0],p[1]||u.one)},f.prototype.inspect=function(){return this.isInfinity()?"":""},f.prototype.isInfinity=function(){return this.z.cmpn(0)===0},f.prototype.dbl=function(){var u=this.x.redAdd(this.z),p=u.redSqr(),m=this.x.redSub(this.z),d=m.redSqr(),v=p.redSub(d),x=p.redMul(d),g=v.redMul(d.redAdd(this.curve.a24.redMul(v)));return this.curve.point(x,g)},f.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},f.prototype.diffAdd=function(u,p){var m=this.x.redAdd(this.z),d=this.x.redSub(this.z),v=u.x.redAdd(u.z),x=u.x.redSub(u.z),g=x.redMul(m),b=v.redMul(d),w=p.z.redMul(g.redAdd(b).redSqr()),y=p.x.redMul(g.redISub(b).redSqr());return this.curve.point(w,y)},f.prototype.mul=function(u){for(var p=u.clone(),m=this,d=this.curve.point(null,null),v=this,x=[];p.cmpn(0)!==0;p.iushrn(1))x.push(p.andln(1));for(var g=x.length-1;g>=0;g--)x[g]===0?(m=m.diffAdd(d,v),d=d.dbl()):(d=m.diffAdd(d,v),m=m.dbl());return d},f.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},f.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},f.prototype.eq=function(u){return this.getX().cmp(u.getX())===0},f.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},f.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},{"../utils":419,"./base":406,"bn.js":420,inherits:440}],410:[function(e,n,i){var s=e("../utils"),o=e("bn.js"),h=e("inherits"),c=e("./base"),a=s.assert;function f(p){c.call(this,"short",p),this.a=new o(p.a,16).toRed(this.red),this.b=new o(p.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=this.a.fromRed().cmpn(0)===0,this.threeA=this.a.fromRed().sub(this.p).cmpn(-3)===0,this.endo=this._getEndomorphism(p),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}h(f,c),n.exports=f,f.prototype._getEndomorphism=function(m){if(!(!this.zeroA||!this.g||!this.n||this.p.modn(3)!==1)){var d,v;if(m.beta)d=new o(m.beta,16).toRed(this.red);else{var x=this._getEndoRoots(this.p);d=x[0].cmp(x[1])<0?x[0]:x[1],d=d.toRed(this.red)}if(m.lambda)v=new o(m.lambda,16);else{var g=this._getEndoRoots(this.n);this.g.mul(g[0]).x.cmp(this.g.x.redMul(d))===0?v=g[0]:(v=g[1],a(this.g.mul(v).x.cmp(this.g.x.redMul(d))===0))}var b;return m.basis?b=m.basis.map(function(w){return{a:new o(w.a,16),b:new o(w.b,16)}}):b=this._getEndoBasis(v),{beta:d,lambda:v,basis:b}}},f.prototype._getEndoRoots=function(m){var d=m===this.p?this.red:o.mont(m),v=new o(2).toRed(d).redInvm(),x=v.redNeg(),g=new o(3).toRed(d).redNeg().redSqrt().redMul(v),b=x.redAdd(g).fromRed(),w=x.redSub(g).fromRed();return[b,w]},f.prototype._getEndoBasis=function(m){for(var d=this.n.ushrn(Math.floor(this.n.bitLength()/2)),v=m,x=this.n.clone(),g=new o(1),b=new o(0),w=new o(0),y=new o(1),T,C,M,I,B,U,j,H=0,G,L;v.cmpn(0)!==0;){var R=x.div(v);G=x.sub(R.mul(v)),L=w.sub(R.mul(g));var F=y.sub(R.mul(b));if(!M&&G.cmp(d)<0)T=j.neg(),C=g,M=G.neg(),I=L;else if(M&&++H===2)break;j=G,x=v,v=G,w=g,g=L,y=b,b=F}B=G.neg(),U=L;var _=M.sqr().add(I.sqr()),k=B.sqr().add(U.sqr());return k.cmp(_)>=0&&(B=T,U=C),M.negative&&(M=M.neg(),I=I.neg()),B.negative&&(B=B.neg(),U=U.neg()),[{a:M,b:I},{a:B,b:U}]},f.prototype._endoSplit=function(m){var d=this.endo.basis,v=d[0],x=d[1],g=x.b.mul(m).divRound(this.n),b=v.b.neg().mul(m).divRound(this.n),w=g.mul(v.a),y=b.mul(x.a),T=g.mul(v.b),C=b.mul(x.b),M=m.sub(w).sub(y),I=T.add(C).neg();return{k1:M,k2:I}},f.prototype.pointFromX=function(m,d){m=new o(m,16),m.red||(m=m.toRed(this.red));var v=m.redSqr().redMul(m).redIAdd(m.redMul(this.a)).redIAdd(this.b),x=v.redSqrt();if(x.redSqr().redSub(v).cmp(this.zero)!==0)throw new Error("invalid point");var g=x.fromRed().isOdd();return(d&&!g||!d&&g)&&(x=x.redNeg()),this.point(m,x)},f.prototype.validate=function(m){if(m.inf)return!0;var d=m.x,v=m.y,x=this.a.redMul(d),g=d.redSqr().redMul(d).redIAdd(x).redIAdd(this.b);return v.redSqr().redISub(g).cmpn(0)===0},f.prototype._endoWnafMulAdd=function(m,d,v){for(var x=this._endoWnafT1,g=this._endoWnafT2,b=0;b":""},l.prototype.isInfinity=function(){return this.inf},l.prototype.add=function(m){if(this.inf)return m;if(m.inf)return this;if(this.eq(m))return this.dbl();if(this.neg().eq(m))return this.curve.point(null,null);if(this.x.cmp(m.x)===0)return this.curve.point(null,null);var d=this.y.redSub(m.y);d.cmpn(0)!==0&&(d=d.redMul(this.x.redSub(m.x).redInvm()));var v=d.redSqr().redISub(this.x).redISub(m.x),x=d.redMul(this.x.redSub(v)).redISub(this.y);return this.curve.point(v,x)},l.prototype.dbl=function(){if(this.inf)return this;var m=this.y.redAdd(this.y);if(m.cmpn(0)===0)return this.curve.point(null,null);var d=this.curve.a,v=this.x.redSqr(),x=m.redInvm(),g=v.redAdd(v).redIAdd(v).redIAdd(d).redMul(x),b=g.redSqr().redISub(this.x.redAdd(this.x)),w=g.redMul(this.x.redSub(b)).redISub(this.y);return this.curve.point(b,w)},l.prototype.getX=function(){return this.x.fromRed()},l.prototype.getY=function(){return this.y.fromRed()},l.prototype.mul=function(m){return m=new o(m,16),this.isInfinity()?this:this._hasDoubles(m)?this.curve._fixedNafMul(this,m):this.curve.endo?this.curve._endoWnafMulAdd([this],[m]):this.curve._wnafMul(this,m)},l.prototype.mulAdd=function(m,d,v){var x=[this,d],g=[m,v];return this.curve.endo?this.curve._endoWnafMulAdd(x,g):this.curve._wnafMulAdd(1,x,g,2)},l.prototype.jmulAdd=function(m,d,v){var x=[this,d],g=[m,v];return this.curve.endo?this.curve._endoWnafMulAdd(x,g,!0):this.curve._wnafMulAdd(1,x,g,2,!0)},l.prototype.eq=function(m){return this===m||this.inf===m.inf&&(this.inf||this.x.cmp(m.x)===0&&this.y.cmp(m.y)===0)},l.prototype.neg=function(m){if(this.inf)return this;var d=this.curve.point(this.x,this.y.redNeg());if(m&&this.precomputed){var v=this.precomputed,x=function(g){return g.neg()};d.precomputed={naf:v.naf&&{wnd:v.naf.wnd,points:v.naf.points.map(x)},doubles:v.doubles&&{step:v.doubles.step,points:v.doubles.points.map(x)}}}return d},l.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var m=this.curve.jpoint(this.x,this.y,this.curve.one);return m};function u(p,m,d,v){c.BasePoint.call(this,p,"jacobian"),m===null&&d===null&&v===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new o(0)):(this.x=new o(m,16),this.y=new o(d,16),this.z=new o(v,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}h(u,c.BasePoint),f.prototype.jpoint=function(m,d,v){return new u(this,m,d,v)},u.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var m=this.z.redInvm(),d=m.redSqr(),v=this.x.redMul(d),x=this.y.redMul(d).redMul(m);return this.curve.point(v,x)},u.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},u.prototype.add=function(m){if(this.isInfinity())return m;if(m.isInfinity())return this;var d=m.z.redSqr(),v=this.z.redSqr(),x=this.x.redMul(d),g=m.x.redMul(v),b=this.y.redMul(d.redMul(m.z)),w=m.y.redMul(v.redMul(this.z)),y=x.redSub(g),T=b.redSub(w);if(y.cmpn(0)===0)return T.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var C=y.redSqr(),M=C.redMul(y),I=x.redMul(C),B=T.redSqr().redIAdd(M).redISub(I).redISub(I),U=T.redMul(I.redISub(B)).redISub(b.redMul(M)),j=this.z.redMul(m.z).redMul(y);return this.curve.jpoint(B,U,j)},u.prototype.mixedAdd=function(m){if(this.isInfinity())return m.toJ();if(m.isInfinity())return this;var d=this.z.redSqr(),v=this.x,x=m.x.redMul(d),g=this.y,b=m.y.redMul(d).redMul(this.z),w=v.redSub(x),y=g.redSub(b);if(w.cmpn(0)===0)return y.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var T=w.redSqr(),C=T.redMul(w),M=v.redMul(T),I=y.redSqr().redIAdd(C).redISub(M).redISub(M),B=y.redMul(M.redISub(I)).redISub(g.redMul(C)),U=this.z.redMul(w);return this.curve.jpoint(I,B,U)},u.prototype.dblp=function(m){if(m===0)return this;if(this.isInfinity())return this;if(!m)return this.dbl();var d;if(this.curve.zeroA||this.curve.threeA){var v=this;for(d=0;d=0)return!1;if(v.redIAdd(g),this.x.cmp(v)===0)return!0}},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return this.z.cmpn(0)===0}},{"../utils":419,"./base":406,"bn.js":420,inherits:440}],411:[function(e,n,i){var s=i,o=e("hash.js"),h=e("./curve"),c=e("./utils"),a=c.assert;function f(p){p.type==="short"?this.curve=new h.short(p):p.type==="edwards"?this.curve=new h.edwards(p):this.curve=new h.mont(p),this.g=this.curve.g,this.n=this.curve.n,this.hash=p.hash,a(this.g.validate(),"Invalid curve"),a(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}s.PresetCurve=f;function l(p,m){Object.defineProperty(s,p,{configurable:!0,enumerable:!0,get:function(){var d=new f(m);return Object.defineProperty(s,p,{configurable:!0,enumerable:!0,value:d}),d}})}l("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:o.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),l("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:o.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),l("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:o.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),l("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:o.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),l("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:o.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),l("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["9"]}),l("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});var u;try{u=e("./precomputed/secp256k1")}catch{u=void 0}l("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:o.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",u]})},{"./curve":408,"./precomputed/secp256k1":418,"./utils":419,"hash.js":426}],412:[function(e,n,i){var s=e("bn.js"),o=e("hmac-drbg"),h=e("../utils"),c=e("../curves"),a=e("brorand"),f=h.assert,l=e("./key"),u=e("./signature");function p(m){if(!(this instanceof p))return new p(m);typeof m=="string"&&(f(Object.prototype.hasOwnProperty.call(c,m),"Unknown curve "+m),m=c[m]),m instanceof c.PresetCurve&&(m={curve:m}),this.curve=m.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=m.curve.g,this.g.precompute(m.curve.n.bitLength()+1),this.hash=m.hash||m.curve.hash}n.exports=p,p.prototype.keyPair=function(d){return new l(this,d)},p.prototype.keyFromPrivate=function(d,v){return l.fromPrivate(this,d,v)},p.prototype.keyFromPublic=function(d,v){return l.fromPublic(this,d,v)},p.prototype.genKeyPair=function(d){d||(d={});for(var v=new o({hash:this.hash,pers:d.pers,persEnc:d.persEnc||"utf8",entropy:d.entropy||a(this.hash.hmacStrength),entropyEnc:d.entropy&&d.entropyEnc||"utf8",nonce:this.n.toArray()}),x=this.n.byteLength(),g=this.n.sub(new s(2));;){var b=new s(v.generate(x));if(!(b.cmp(g)>0))return b.iaddn(1),this.keyFromPrivate(b)}},p.prototype._truncateToN=function(d,v){var x=d.byteLength()*8-this.n.bitLength();return x>0&&(d=d.ushrn(x)),!v&&d.cmp(this.n)>=0?d.sub(this.n):d},p.prototype.sign=function(d,v,x,g){typeof x=="object"&&(g=x,x=null),g||(g={}),v=this.keyFromPrivate(v,x),d=this._truncateToN(new s(d,16));for(var b=this.n.byteLength(),w=v.getPrivate().toArray("be",b),y=d.toArray("be",b),T=new o({hash:this.hash,entropy:w,nonce:y,pers:g.pers,persEnc:g.persEnc||"utf8"}),C=this.n.sub(new s(1)),M=0;;M++){var I=g.k?g.k(M):new s(T.generate(this.n.byteLength()));if(I=this._truncateToN(I,!0),!(I.cmpn(1)<=0||I.cmp(C)>=0)){var B=this.g.mul(I);if(!B.isInfinity()){var U=B.getX(),j=U.umod(this.n);if(j.cmpn(0)!==0){var H=I.invm(this.n).mul(j.mul(v.getPrivate()).iadd(d));if(H=H.umod(this.n),H.cmpn(0)!==0){var G=(B.getY().isOdd()?1:0)|(U.cmp(j)!==0?2:0);return g.canonical&&H.cmp(this.nh)>0&&(H=this.n.sub(H),G^=1),new u({r:j,s:H,recoveryParam:G})}}}}}},p.prototype.verify=function(d,v,x,g){d=this._truncateToN(new s(d,16)),x=this.keyFromPublic(x,g),v=new u(v,"hex");var b=v.r,w=v.s;if(b.cmpn(1)<0||b.cmp(this.n)>=0||w.cmpn(1)<0||w.cmp(this.n)>=0)return!1;var y=w.invm(this.n),T=y.mul(d).umod(this.n),C=y.mul(b).umod(this.n),M;return this.curve._maxwellTrick?(M=this.g.jmulAdd(T,x.getPublic(),C),M.isInfinity()?!1:M.eqXToP(b)):(M=this.g.mulAdd(T,x.getPublic(),C),M.isInfinity()?!1:M.getX().umod(this.n).cmp(b)===0)},p.prototype.recoverPubKey=function(m,d,v,x){f((3&v)===v,"The recovery param is more than two bits"),d=new u(d,x);var g=this.n,b=new s(m),w=d.r,y=d.s,T=v&1,C=v>>1;if(w.cmp(this.curve.p.umod(this.curve.n))>=0&&C)throw new Error("Unable to find sencond key candinate");C?w=this.curve.pointFromX(w.add(this.curve.n),T):w=this.curve.pointFromX(w,T);var M=d.r.invm(g),I=g.sub(b).mul(M).umod(g),B=y.mul(M).umod(g);return this.g.mulAdd(I,w,B)},p.prototype.getKeyRecoveryParam=function(m,d,v,x){if(d=new u(d,x),d.recoveryParam!==null)return d.recoveryParam;for(var g=0;g<4;g++){var b;try{b=this.recoverPubKey(m,d,g)}catch{continue}if(b.eq(v))return g}throw new Error("Unable to find valid recovery factor")}},{"../curves":411,"../utils":419,"./key":413,"./signature":414,"bn.js":420,brorand:187,"hmac-drbg":438}],413:[function(e,n,i){var s=e("bn.js"),o=e("../utils"),h=o.assert;function c(a,f){this.ec=a,this.priv=null,this.pub=null,f.priv&&this._importPrivate(f.priv,f.privEnc),f.pub&&this._importPublic(f.pub,f.pubEnc)}n.exports=c,c.fromPublic=function(f,l,u){return l instanceof c?l:new c(f,{pub:l,pubEnc:u})},c.fromPrivate=function(f,l,u){return l instanceof c?l:new c(f,{priv:l,privEnc:u})},c.prototype.validate=function(){var f=this.getPublic();return f.isInfinity()?{result:!1,reason:"Invalid public key"}:f.validate()?f.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},c.prototype.getPublic=function(f,l){return typeof f=="string"&&(l=f,f=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),l?this.pub.encode(l,f):this.pub},c.prototype.getPrivate=function(f){return f==="hex"?this.priv.toString(16,2):this.priv},c.prototype._importPrivate=function(f,l){this.priv=new s(f,l||16),this.priv=this.priv.umod(this.ec.curve.n)},c.prototype._importPublic=function(f,l){if(f.x||f.y){this.ec.curve.type==="mont"?h(f.x,"Need x coordinate"):(this.ec.curve.type==="short"||this.ec.curve.type==="edwards")&&h(f.x&&f.y,"Need both x and y coordinate"),this.pub=this.ec.curve.point(f.x,f.y);return}this.pub=this.ec.curve.decodePoint(f,l)},c.prototype.derive=function(f){return f.validate()||h(f.validate(),"public point not validated"),f.mul(this.priv).getX()},c.prototype.sign=function(f,l,u){return this.ec.sign(f,this,l,u)},c.prototype.verify=function(f,l){return this.ec.verify(f,l,this)},c.prototype.inspect=function(){return""}},{"../utils":419,"bn.js":420}],414:[function(e,n,i){var s=e("bn.js"),o=e("../utils"),h=o.assert;function c(p,m){if(p instanceof c)return p;this._importDER(p,m)||(h(p.r&&p.s,"Signature without r or s"),this.r=new s(p.r,16),this.s=new s(p.s,16),p.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=p.recoveryParam)}n.exports=c;function a(){this.place=0}function f(p,m){var d=p[m.place++];if(!(d&128))return d;var v=d&15;if(v===0||v>4)return!1;for(var x=0,g=0,b=m.place;g>>=0;return x<=127?!1:(m.place=b,x)}function l(p){for(var m=0,d=p.length-1;!p[m]&&!(p[m+1]&128)&&m>>3);for(p.push(d|128);--d;)p.push(m>>>(d<<3)&255);p.push(m)}c.prototype.toDER=function(m){var d=this.r.toArray(),v=this.s.toArray();for(d[0]&128&&(d=[0].concat(d)),v[0]&128&&(v=[0].concat(v)),d=l(d),v=l(v);!v[0]&&!(v[1]&128);)v=v.slice(1);var x=[2];u(x,d.length),x=x.concat(d),x.push(2),u(x,v.length);var g=x.concat(v),b=[48];return u(b,g.length),b=b.concat(g),o.encode(b,m)}},{"../utils":419,"bn.js":420}],415:[function(e,n,i){var s=e("hash.js"),o=e("../curves"),h=e("../utils"),c=h.assert,a=h.parseBytes,f=e("./key"),l=e("./signature");function u(p){if(c(p==="ed25519","only tested with ed25519 so far"),!(this instanceof u))return new u(p);p=o[p].curve,this.curve=p,this.g=p.g,this.g.precompute(p.n.bitLength()+1),this.pointClass=p.point().constructor,this.encodingLength=Math.ceil(p.n.bitLength()/8),this.hash=s.sha512}n.exports=u,u.prototype.sign=function(m,d){m=a(m);var v=this.keyFromSecret(d),x=this.hashInt(v.messagePrefix(),m),g=this.g.mul(x),b=this.encodePoint(g),w=this.hashInt(b,v.pubBytes(),m).mul(v.priv()),y=x.add(w).umod(this.curve.n);return this.makeSignature({R:g,S:y,Rencoded:b})},u.prototype.verify=function(m,d,v){m=a(m),d=this.makeSignature(d);var x=this.keyFromPublic(v),g=this.hashInt(d.Rencoded(),x.pubBytes(),m),b=this.g.mul(d.S()),w=d.R().add(x.pub().mul(g));return w.eq(b)},u.prototype.hashInt=function(){for(var m=this.hash(),d=0;d(g>>1)-1?y=(g>>1)-T:y=T,b.isubn(y)):y=0,x[w]=y,b.iushrn(1)}return x}s.getNAF=a;function f(m,d){var v=[[],[]];m=m.clone(),d=d.clone();for(var x=0,g=0,b;m.cmpn(-x)>0||d.cmpn(-g)>0;){var w=m.andln(3)+x&3,y=d.andln(3)+g&3;w===3&&(w=-1),y===3&&(y=-1);var T;w&1?(b=m.andln(7)+x&7,(b===3||b===5)&&y===2?T=-w:T=w):T=0,v[0].push(T);var C;y&1?(b=d.andln(7)+g&7,(b===3||b===5)&&w===2?C=-y:C=y):C=0,v[1].push(C),2*x===T+1&&(x=1-x),2*g===C+1&&(g=1-g),m.iushrn(1),d.iushrn(1)}return v}s.getJSF=f;function l(m,d,v){var x="_"+d;m.prototype[d]=function(){return this[x]!==void 0?this[x]:this[x]=v.call(this)}}s.cachedProperty=l;function u(m){return typeof m=="string"?s.toArray(m,"hex"):m}s.parseBytes=u;function p(m){return new o(m,"hex","le")}s.intFromLE=p},{"bn.js":420,"minimalistic-assert":453,"minimalistic-crypto-utils":454}],420:[function(e,n,i){arguments[4][184][0].apply(i,arguments)},{buffer:188,dup:184}],421:[function(e,n,i){n.exports={name:"elliptic",version:"6.5.4",description:"EC cryptography",main:"lib/elliptic.js",files:["lib"],scripts:{lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository:{type:"git",url:"git@github.com:indutny/elliptic"},keywords:["EC","Elliptic","curve","Cryptography"],author:"Fedor Indutny ",license:"MIT",bugs:{url:"https://github.com/indutny/elliptic/issues"},homepage:"https://github.com/indutny/elliptic",devDependencies:{brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies:{"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"}}},{}],422:[function(e,n,i){var s=Object.create||B,o=Object.keys||U,h=Function.prototype.bind||j;function c(){(!this._events||!Object.prototype.hasOwnProperty.call(this,"_events"))&&(this._events=s(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0}n.exports=c,c.EventEmitter=c,c.prototype._events=void 0,c.prototype._maxListeners=void 0;var a=10,f;try{var l={};Object.defineProperty&&Object.defineProperty(l,"x",{value:0}),f=l.x===0}catch{f=!1}f?Object.defineProperty(c,"defaultMaxListeners",{enumerable:!0,get:function(){return a},set:function(H){if(typeof H!="number"||H<0||H!==H)throw new TypeError('"defaultMaxListeners" must be a positive number');a=H}}):c.defaultMaxListeners=a,c.prototype.setMaxListeners=function(G){if(typeof G!="number"||G<0||isNaN(G))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=G,this};function u(H){return H._maxListeners===void 0?c.defaultMaxListeners:H._maxListeners}c.prototype.getMaxListeners=function(){return u(this)};function p(H,G,L){if(G)H.call(L);else for(var R=H.length,F=M(H,R),_=0;_1&&(L=arguments[1]),L instanceof Error)throw L;var D=new Error('Unhandled "error" event. ('+L+")");throw D.context=L,D}if(R=N[G],!R)return!1;var A=typeof R=="function";switch(F=arguments.length,F){case 1:p(R,A,this);break;case 2:m(R,A,this,arguments[1]);break;case 3:d(R,A,this,arguments[1],arguments[2]);break;case 4:v(R,A,this,arguments[1],arguments[2],arguments[3]);break;default:for(_=new Array(F-1),k=1;k0&&k.length>F)){k.warned=!0;var N=new Error("Possible EventEmitter memory leak detected. "+k.length+' "'+String(G)+'" listeners added. Use emitter.setMaxListeners() to increase limit.');N.name="MaxListenersExceededWarning",N.emitter=H,N.type=G,N.count=k.length,typeof console=="object"&&console.warn&&console.warn("%s: %s",N.name,N.message)}return H}c.prototype.addListener=function(G,L){return g(this,G,L,!1)},c.prototype.on=c.prototype.addListener,c.prototype.prependListener=function(G,L){return g(this,G,L,!0)};function b(){if(!this.fired)switch(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length){case 0:return this.listener.call(this.target);case 1:return this.listener.call(this.target,arguments[0]);case 2:return this.listener.call(this.target,arguments[0],arguments[1]);case 3:return this.listener.call(this.target,arguments[0],arguments[1],arguments[2]);default:for(var H=new Array(arguments.length),G=0;G=0;k--)if(R[k]===L||R[k].listener===L){N=R[k].listener,_=k;break}if(_<0)return this;_===0?R.shift():C(R,_),R.length===1&&(F[G]=R[0]),F.removeListener&&this.emit("removeListener",G,N||L)}return this},c.prototype.removeAllListeners=function(G){var L,R,F;if(R=this._events,!R)return this;if(!R.removeListener)return arguments.length===0?(this._events=s(null),this._eventsCount=0):R[G]&&(--this._eventsCount===0?this._events=s(null):delete R[G]),this;if(arguments.length===0){var _=o(R),k;for(F=0;F<_.length;++F)k=_[F],k!=="removeListener"&&this.removeAllListeners(k);return this.removeAllListeners("removeListener"),this._events=s(null),this._eventsCount=0,this}if(L=R[G],typeof L=="function")this.removeListener(G,L);else if(L)for(F=L.length-1;F>=0;F--)this.removeListener(G,L[F]);return this};function y(H,G,L){var R=H._events;if(!R)return[];var F=R[G];return F?typeof F=="function"?L?[F.listener||F]:[F]:L?I(F):M(F,F.length):[]}c.prototype.listeners=function(G){return y(this,G,!0)},c.prototype.rawListeners=function(G){return y(this,G,!1)},c.listenerCount=function(H,G){return typeof H.listenerCount=="function"?H.listenerCount(G):T.call(H,G)},c.prototype.listenerCount=T;function T(H){var G=this._events;if(G){var L=G[H];if(typeof L=="function")return 1;if(L)return L.length}return 0}c.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};function C(H,G){for(var L=G,R=L+1,F=H.length;R0||l>0;){var v=new o;v.update(d),v.update(c),a&&v.update(a),d=v.digest();var x=0;if(u>0){var g=p.length-u;x=Math.min(u,d.length),d.copy(p,g,0,x),u-=x}if(x0){var b=m.length-l,w=Math.min(l,d.length-x);d.copy(m,b,x,x+w),l-=w}}return d.fill(0),{key:p,iv:m}}n.exports=h},{"md5.js":450,"safe-buffer":494}],424:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.CsvParserStream=i.ParserOptions=i.parseFile=i.parseStream=i.parseString=i.parse=i.FormatterOptions=i.CsvFormatterStream=i.writeToPath=i.writeToString=i.writeToBuffer=i.writeToStream=i.write=i.format=void 0;var s=e("@fast-csv/format");Object.defineProperty(i,"format",{enumerable:!0,get:function(){return s.format}}),Object.defineProperty(i,"write",{enumerable:!0,get:function(){return s.write}}),Object.defineProperty(i,"writeToStream",{enumerable:!0,get:function(){return s.writeToStream}}),Object.defineProperty(i,"writeToBuffer",{enumerable:!0,get:function(){return s.writeToBuffer}}),Object.defineProperty(i,"writeToString",{enumerable:!0,get:function(){return s.writeToString}}),Object.defineProperty(i,"writeToPath",{enumerable:!0,get:function(){return s.writeToPath}}),Object.defineProperty(i,"CsvFormatterStream",{enumerable:!0,get:function(){return s.CsvFormatterStream}}),Object.defineProperty(i,"FormatterOptions",{enumerable:!0,get:function(){return s.FormatterOptions}});var o=e("@fast-csv/parse");Object.defineProperty(i,"parse",{enumerable:!0,get:function(){return o.parse}}),Object.defineProperty(i,"parseString",{enumerable:!0,get:function(){return o.parseString}}),Object.defineProperty(i,"parseStream",{enumerable:!0,get:function(){return o.parseStream}}),Object.defineProperty(i,"parseFile",{enumerable:!0,get:function(){return o.parseFile}}),Object.defineProperty(i,"ParserOptions",{enumerable:!0,get:function(){return o.ParserOptions}}),Object.defineProperty(i,"CsvParserStream",{enumerable:!0,get:function(){return o.CsvParserStream}})},{"@fast-csv/format":151,"@fast-csv/parse":155}],425:[function(e,n,i){var s=e("safe-buffer").Buffer,o=e("readable-stream").Transform,h=e("inherits");function c(f,l){if(!s.isBuffer(f)&&typeof f!="string")throw new TypeError(l+" must be a string or a buffer")}function a(f){o.call(this),this._block=s.allocUnsafe(f),this._blockSize=f,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}h(a,o),a.prototype._transform=function(f,l,u){var p=null;try{this.update(f,l)}catch(m){p=m}u(p)},a.prototype._flush=function(f){var l=null;try{this.push(this.digest())}catch(u){l=u}f(l)},a.prototype.update=function(f,l){if(c(f,"Data"),this._finalized)throw new Error("Digest already called");s.isBuffer(f)||(f=s.from(f,l));for(var u=this._block,p=0;this._blockOffset+f.length-p>=this._blockSize;){for(var m=this._blockOffset;m0;++d)this._length[d]+=v,v=this._length[d]/4294967296|0,v>0&&(this._length[d]-=4294967296*v);return this},a.prototype._update=function(){throw new Error("_update is not implemented")},a.prototype.digest=function(f){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var l=this._digest();f!==void 0&&(l=l.toString(f)),this._block.fill(0),this._blockOffset=0;for(var u=0;u<4;++u)this._length[u]=0;return l},a.prototype._digest=function(){throw new Error("_digest is not implemented")},n.exports=a},{inherits:440,"readable-stream":491,"safe-buffer":494}],426:[function(e,n,i){var s=i;s.utils=e("./hash/utils"),s.common=e("./hash/common"),s.sha=e("./hash/sha"),s.ripemd=e("./hash/ripemd"),s.hmac=e("./hash/hmac"),s.sha1=s.sha.sha1,s.sha256=s.sha.sha256,s.sha224=s.sha.sha224,s.sha384=s.sha.sha384,s.sha512=s.sha.sha512,s.ripemd160=s.ripemd.ripemd160},{"./hash/common":427,"./hash/hmac":428,"./hash/ripemd":429,"./hash/sha":430,"./hash/utils":437}],427:[function(e,n,i){var s=e("./utils"),o=e("minimalistic-assert");function h(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}i.BlockHash=h,h.prototype.update=function(a,f){if(a=s.toArray(a,f),this.pending?this.pending=this.pending.concat(a):this.pending=a,this.pendingTotal+=a.length,this.pending.length>=this._delta8){a=this.pending;var l=a.length%this._delta8;this.pending=a.slice(a.length-l,a.length),this.pending.length===0&&(this.pending=null),a=s.join32(a,0,a.length-l,this.endian);for(var u=0;u>>24&255,u[p++]=a>>>16&255,u[p++]=a>>>8&255,u[p++]=a&255}else for(u[p++]=a&255,u[p++]=a>>>8&255,u[p++]=a>>>16&255,u[p++]=a>>>24&255,u[p++]=0,u[p++]=0,u[p++]=0,u[p++]=0,m=8;mthis.blockSize&&(a=new this.Hash().update(a).digest()),o(a.length<=this.blockSize);for(var f=a.length;f>>3}i.g0_256=p;function m(d){return o(d,17)^o(d,19)^d>>>10}i.g1_256=m},{"../utils":437}],437:[function(e,n,i){var s=e("minimalistic-assert"),o=e("inherits");i.inherits=o;function h(F,_){return(F.charCodeAt(_)&64512)!==55296||_<0||_+1>=F.length?!1:(F.charCodeAt(_+1)&64512)===56320}function c(F,_){if(Array.isArray(F))return F.slice();if(!F)return[];var k=[];if(typeof F=="string")if(_){if(_==="hex")for(F=F.replace(/[^a-z0-9]+/ig,""),F.length%2!==0&&(F="0"+F),P=0;P>6|192,k[N++]=D&63|128):h(F,P)?(D=65536+((D&1023)<<10)+(F.charCodeAt(++P)&1023),k[N++]=D>>18|240,k[N++]=D>>12&63|128,k[N++]=D>>6&63|128,k[N++]=D&63|128):(k[N++]=D>>12|224,k[N++]=D>>6&63|128,k[N++]=D&63|128)}else for(P=0;P>>24|F>>>8&65280|F<<8&16711680|(F&255)<<24;return _>>>0}i.htonl=f;function l(F,_){for(var k="",N=0;N>>0}return D}i.join32=m;function d(F,_){for(var k=new Array(F.length*4),N=0,P=0;N>>24,k[P+1]=D>>>16&255,k[P+2]=D>>>8&255,k[P+3]=D&255):(k[P+3]=D>>>24,k[P+2]=D>>>16&255,k[P+1]=D>>>8&255,k[P]=D&255)}return k}i.split32=d;function v(F,_){return F>>>_|F<<32-_}i.rotr32=v;function x(F,_){return F<<_|F>>>32-_}i.rotl32=x;function g(F,_){return F+_>>>0}i.sum32=g;function b(F,_,k){return F+_+k>>>0}i.sum32_3=b;function w(F,_,k,N){return F+_+k+N>>>0}i.sum32_4=w;function y(F,_,k,N,P){return F+_+k+N+P>>>0}i.sum32_5=y;function T(F,_,k,N){var P=F[_],D=F[_+1],A=N+D>>>0,S=(A>>0,F[_+1]=A}i.sum64=T;function C(F,_,k,N){var P=_+N>>>0,D=(P<_?1:0)+F+k;return D>>>0}i.sum64_hi=C;function M(F,_,k,N){var P=_+N;return P>>>0}i.sum64_lo=M;function I(F,_,k,N,P,D,A,S){var E=0,O=_;O=O+N>>>0,E+=O<_?1:0,O=O+D>>>0,E+=O>>0,E+=O>>0}i.sum64_4_hi=I;function B(F,_,k,N,P,D,A,S){var E=_+N+D+S;return E>>>0}i.sum64_4_lo=B;function U(F,_,k,N,P,D,A,S,E,O){var z=0,J=_;J=J+N>>>0,z+=J<_?1:0,J=J+D>>>0,z+=J>>0,z+=J>>0,z+=J>>0}i.sum64_5_hi=U;function j(F,_,k,N,P,D,A,S,E,O){var z=_+N+D+S+O;return z>>>0}i.sum64_5_lo=j;function H(F,_,k){var N=_<<32-k|F>>>k;return N>>>0}i.rotr64_hi=H;function G(F,_,k){var N=F<<32-k|_>>>k;return N>>>0}i.rotr64_lo=G;function L(F,_,k){return F>>>k}i.shr64_hi=L;function R(F,_,k){var N=F<<32-k|_>>>k;return N>>>0}i.shr64_lo=R},{inherits:440,"minimalistic-assert":453}],438:[function(e,n,i){var s=e("hash.js"),o=e("minimalistic-crypto-utils"),h=e("minimalistic-assert");function c(a){if(!(this instanceof c))return new c(a);this.hash=a.hash,this.predResist=!!a.predResist,this.outLen=this.hash.outSize,this.minEntropy=a.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var f=o.toArray(a.entropy,a.entropyEnc||"hex"),l=o.toArray(a.nonce,a.nonceEnc||"hex"),u=o.toArray(a.pers,a.persEnc||"hex");h(f.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(f,l,u)}n.exports=c,c.prototype._init=function(f,l,u){var p=f.concat(l).concat(u);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var m=0;m=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(f.concat(u||[])),this._reseed=1},c.prototype.generate=function(f,l,u,p){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof l!="string"&&(p=u,u=l,l=null),u&&(u=o.toArray(u,p||"hex"),this._update(u));for(var m=[];m.length */i.read=function(s,o,h,c,a){var f,l,u=a*8-c-1,p=(1<>1,d=-7,v=h?a-1:0,x=h?-1:1,g=s[o+v];for(v+=x,f=g&(1<<-d)-1,g>>=-d,d+=u;d>0;f=f*256+s[o+v],v+=x,d-=8);for(l=f&(1<<-d)-1,f>>=-d,d+=c;d>0;l=l*256+s[o+v],v+=x,d-=8);if(f===0)f=1-m;else{if(f===p)return l?NaN:(g?-1:1)*(1/0);l=l+Math.pow(2,c),f=f-m}return(g?-1:1)*l*Math.pow(2,f-c)},i.write=function(s,o,h,c,a,f){var l,u,p,m=f*8-a-1,d=(1<>1,x=a===23?Math.pow(2,-24)-Math.pow(2,-77):0,g=c?0:f-1,b=c?1:-1,w=o<0||o===0&&1/o<0?1:0;for(o=Math.abs(o),isNaN(o)||o===1/0?(u=isNaN(o)?1:0,l=d):(l=Math.floor(Math.log(o)/Math.LN2),o*(p=Math.pow(2,-l))<1&&(l--,p*=2),l+v>=1?o+=x/p:o+=x*Math.pow(2,1-v),o*p>=2&&(l++,p/=2),l+v>=d?(u=0,l=d):l+v>=1?(u=(o*p-1)*Math.pow(2,a),l=l+v):(u=o*Math.pow(2,v-1)*Math.pow(2,a),l=0));a>=8;s[h+g]=u&255,g+=b,u/=256,a-=8);for(l=l<0;s[h+g]=l&255,g+=b,l/=256,m-=8);s[h+g-b]|=w*128}},{}],440:[function(e,n,i){typeof Object.create=="function"?n.exports=function(o,h){h&&(o.super_=h,o.prototype=Object.create(h.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}))}:n.exports=function(o,h){if(h){o.super_=h;var c=function(){};c.prototype=h.prototype,o.prototype=new c,o.prototype.constructor=o}}},{}],441:[function(e,n,i){(function(s,o,h,c,a,f,l,u){(function(){/*! + + JSZip v3.10.1 - A JavaScript class for generating and reading zip files + + + (c) 2009-2016 Stuart Knightley + Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown. + + JSZip uses the library pako released under the MIT license : + https://github.com/nodeca/pako/blob/main/LICENSE + */(function(p){typeof i=="object"&&typeof n<"u"?n.exports=p():(typeof window<"u"?window:typeof o<"u"?o:typeof self<"u"?self:this).JSZip=p()})(function(){return function p(m,d,v){function x(w,y){if(!d[w]){if(!m[w]){var T=typeof e=="function"&&e;if(!y&&T)return T(w,!0);if(g)return g(w,!0);var C=new Error("Cannot find module '"+w+"'");throw C.code="MODULE_NOT_FOUND",C}var M=d[w]={exports:{}};m[w][0].call(M.exports,function(I){var B=m[w][1][I];return x(B||I)},M,M.exports,p,m,d,v)}return d[w].exports}for(var g=typeof e=="function"&&e,b=0;b>2,M=(3&w)<<4|y>>4,I=1>6:64,B=2>4,y=(15&C)<<4|(M=g.indexOf(b.charAt(B++)))>>2,T=(3&M)<<6|(I=g.indexOf(b.charAt(B++))),H[U++]=w,M!==64&&(H[U++]=y),I!==64&&(H[U++]=T);return H}},{"./support":30,"./utils":32}],2:[function(p,m,d){var v=p("./external"),x=p("./stream/DataWorker"),g=p("./stream/Crc32Probe"),b=p("./stream/DataLengthProbe");function w(y,T,C,M,I){this.compressedSize=y,this.uncompressedSize=T,this.crc32=C,this.compression=M,this.compressedContent=I}w.prototype={getContentWorker:function(){var y=new x(v.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new b("data_length")),T=this;return y.on("end",function(){if(this.streamInfo.data_length!==T.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),y},getCompressedWorker:function(){return new x(v.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},w.createWorkerFrom=function(y,T,C){return y.pipe(new g).pipe(new b("uncompressedSize")).pipe(T.compressWorker(C)).pipe(new b("compressedSize")).withStreamInfo("compression",T)},m.exports=w},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(p,m,d){var v=p("./stream/GenericWorker");d.STORE={magic:"\0\0",compressWorker:function(){return new v("STORE compression")},uncompressWorker:function(){return new v("STORE decompression")}},d.DEFLATE=p("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(p,m,d){var v=p("./utils"),x=function(){for(var g,b=[],w=0;w<256;w++){g=w;for(var y=0;y<8;y++)g=1&g?3988292384^g>>>1:g>>>1;b[w]=g}return b}();m.exports=function(g,b){return g!==void 0&&g.length?v.getTypeOf(g)!=="string"?function(w,y,T,C){var M=x,I=C+T;w^=-1;for(var B=C;B>>8^M[255&(w^y[B])];return-1^w}(0|b,g,g.length,0):function(w,y,T,C){var M=x,I=C+T;w^=-1;for(var B=C;B>>8^M[255&(w^y.charCodeAt(B))];return-1^w}(0|b,g,g.length,0):0}},{"./utils":32}],5:[function(p,m,d){d.base64=!1,d.binary=!1,d.dir=!1,d.createFolders=!0,d.date=null,d.compression=null,d.compressionOptions=null,d.comment=null,d.unixPermissions=null,d.dosPermissions=null},{}],6:[function(p,m,d){var v=null;v=typeof Promise<"u"?Promise:p("lie"),m.exports={Promise:v}},{lie:37}],7:[function(p,m,d){var v=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",x=p("pako"),g=p("./utils"),b=p("./stream/GenericWorker"),w=v?"uint8array":"array";function y(T,C){b.call(this,"FlateWorker/"+T),this._pako=null,this._pakoAction=T,this._pakoOptions=C,this.meta={}}d.magic="\b\0",g.inherits(y,b),y.prototype.processChunk=function(T){this.meta=T.meta,this._pako===null&&this._createPako(),this._pako.push(g.transformTo(w,T.data),!1)},y.prototype.flush=function(){b.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},y.prototype.cleanUp=function(){b.prototype.cleanUp.call(this),this._pako=null},y.prototype._createPako=function(){this._pako=new x[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var T=this;this._pako.onData=function(C){T.push({data:C,meta:T.meta})}},d.compressWorker=function(T){return new y("Deflate",T)},d.uncompressWorker=function(){return new y("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(p,m,d){function v(M,I){var B,U="";for(B=0;B>>=8;return U}function x(M,I,B,U,j,H){var G,L,R=M.file,F=M.compression,_=H!==w.utf8encode,k=g.transformTo("string",H(R.name)),N=g.transformTo("string",w.utf8encode(R.name)),P=R.comment,D=g.transformTo("string",H(P)),A=g.transformTo("string",w.utf8encode(P)),S=N.length!==R.name.length,E=A.length!==P.length,O="",z="",J="",re=R.dir,se=R.date,Ce={crc32:0,compressedSize:0,uncompressedSize:0};I&&!B||(Ce.crc32=M.crc32,Ce.compressedSize=M.compressedSize,Ce.uncompressedSize=M.uncompressedSize);var Y=0;I&&(Y|=8),_||!S&&!E||(Y|=2048);var q=0,K=0;re&&(q|=16),j==="UNIX"?(K=798,q|=function(he,we){var ae=he;return he||(ae=we?16893:33204),(65535&ae)<<16}(R.unixPermissions,re)):(K=20,q|=function(he){return 63&(he||0)}(R.dosPermissions)),G=se.getUTCHours(),G<<=6,G|=se.getUTCMinutes(),G<<=5,G|=se.getUTCSeconds()/2,L=se.getUTCFullYear()-1980,L<<=4,L|=se.getUTCMonth()+1,L<<=5,L|=se.getUTCDate(),S&&(z=v(1,1)+v(y(k),4)+N,O+="up"+v(z.length,2)+z),E&&(J=v(1,1)+v(y(D),4)+A,O+="uc"+v(J.length,2)+J);var Q="";return Q+=` +\0`,Q+=v(Y,2),Q+=F.magic,Q+=v(G,2),Q+=v(L,2),Q+=v(Ce.crc32,4),Q+=v(Ce.compressedSize,4),Q+=v(Ce.uncompressedSize,4),Q+=v(k.length,2),Q+=v(O.length,2),{fileRecord:T.LOCAL_FILE_HEADER+Q+k+O,dirRecord:T.CENTRAL_FILE_HEADER+v(K,2)+Q+v(D.length,2)+"\0\0\0\0"+v(q,4)+v(U,4)+k+O+D}}var g=p("../utils"),b=p("../stream/GenericWorker"),w=p("../utf8"),y=p("../crc32"),T=p("../signature");function C(M,I,B,U){b.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=I,this.zipPlatform=B,this.encodeFileName=U,this.streamFiles=M,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}g.inherits(C,b),C.prototype.push=function(M){var I=M.meta.percent||0,B=this.entriesCount,U=this._sources.length;this.accumulate?this.contentBuffer.push(M):(this.bytesWritten+=M.data.length,b.prototype.push.call(this,{data:M.data,meta:{currentFile:this.currentFile,percent:B?(I+100*(B-U-1))/B:100}}))},C.prototype.openedSource=function(M){this.currentSourceOffset=this.bytesWritten,this.currentFile=M.file.name;var I=this.streamFiles&&!M.file.dir;if(I){var B=x(M,I,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:B.fileRecord,meta:{percent:0}})}else this.accumulate=!0},C.prototype.closedSource=function(M){this.accumulate=!1;var I=this.streamFiles&&!M.file.dir,B=x(M,I,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(B.dirRecord),I)this.push({data:function(U){return T.DATA_DESCRIPTOR+v(U.crc32,4)+v(U.compressedSize,4)+v(U.uncompressedSize,4)}(M),meta:{percent:100}});else for(this.push({data:B.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},C.prototype.flush=function(){for(var M=this.bytesWritten,I=0;I=this.index;b--)w=(w<<8)+this.byteAt(b);return this.index+=g,w},readString:function(g){return v.transformTo("string",this.readData(g))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var g=this.readInt(4);return new Date(Date.UTC(1980+(g>>25&127),(g>>21&15)-1,g>>16&31,g>>11&31,g>>5&63,(31&g)<<1))}},m.exports=x},{"../utils":32}],19:[function(p,m,d){var v=p("./Uint8ArrayReader");function x(g){v.call(this,g)}p("../utils").inherits(x,v),x.prototype.readData=function(g){this.checkOffset(g);var b=this.data.slice(this.zero+this.index,this.zero+this.index+g);return this.index+=g,b},m.exports=x},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(p,m,d){var v=p("./DataReader");function x(g){v.call(this,g)}p("../utils").inherits(x,v),x.prototype.byteAt=function(g){return this.data.charCodeAt(this.zero+g)},x.prototype.lastIndexOfSignature=function(g){return this.data.lastIndexOf(g)-this.zero},x.prototype.readAndCheckSignature=function(g){return g===this.readData(4)},x.prototype.readData=function(g){this.checkOffset(g);var b=this.data.slice(this.zero+this.index,this.zero+this.index+g);return this.index+=g,b},m.exports=x},{"../utils":32,"./DataReader":18}],21:[function(p,m,d){var v=p("./ArrayReader");function x(g){v.call(this,g)}p("../utils").inherits(x,v),x.prototype.readData=function(g){if(this.checkOffset(g),g===0)return new Uint8Array(0);var b=this.data.subarray(this.zero+this.index,this.zero+this.index+g);return this.index+=g,b},m.exports=x},{"../utils":32,"./ArrayReader":17}],22:[function(p,m,d){var v=p("../utils"),x=p("../support"),g=p("./ArrayReader"),b=p("./StringReader"),w=p("./NodeBufferReader"),y=p("./Uint8ArrayReader");m.exports=function(T){var C=v.getTypeOf(T);return v.checkSupport(C),C!=="string"||x.uint8array?C==="nodebuffer"?new w(T):x.uint8array?new y(v.transformTo("uint8array",T)):new g(v.transformTo("array",T)):new b(T)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(p,m,d){d.LOCAL_FILE_HEADER="PK",d.CENTRAL_FILE_HEADER="PK",d.CENTRAL_DIRECTORY_END="PK",d.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",d.ZIP64_CENTRAL_DIRECTORY_END="PK",d.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(p,m,d){var v=p("./GenericWorker"),x=p("../utils");function g(b){v.call(this,"ConvertWorker to "+b),this.destType=b}x.inherits(g,v),g.prototype.processChunk=function(b){this.push({data:x.transformTo(this.destType,b.data),meta:b.meta})},m.exports=g},{"../utils":32,"./GenericWorker":28}],25:[function(p,m,d){var v=p("./GenericWorker"),x=p("../crc32");function g(){v.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}p("../utils").inherits(g,v),g.prototype.processChunk=function(b){this.streamInfo.crc32=x(b.data,this.streamInfo.crc32||0),this.push(b)},m.exports=g},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(p,m,d){var v=p("../utils"),x=p("./GenericWorker");function g(b){x.call(this,"DataLengthProbe for "+b),this.propName=b,this.withStreamInfo(b,0)}v.inherits(g,x),g.prototype.processChunk=function(b){if(b){var w=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=w+b.data.length}x.prototype.processChunk.call(this,b)},m.exports=g},{"../utils":32,"./GenericWorker":28}],27:[function(p,m,d){var v=p("../utils"),x=p("./GenericWorker");function g(b){x.call(this,"DataWorker");var w=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,b.then(function(y){w.dataIsReady=!0,w.data=y,w.max=y&&y.length||0,w.type=v.getTypeOf(y),w.isPaused||w._tickAndRepeat()},function(y){w.error(y)})}v.inherits(g,x),g.prototype.cleanUp=function(){x.prototype.cleanUp.call(this),this.data=null},g.prototype.resume=function(){return!!x.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,v.delay(this._tickAndRepeat,[],this)),!0)},g.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(v.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},g.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var b=null,w=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":b=this.data.substring(this.index,w);break;case"uint8array":b=this.data.subarray(this.index,w);break;case"array":case"nodebuffer":b=this.data.slice(this.index,w)}return this.index=w,this.push({data:b,meta:{percent:this.max?this.index/this.max*100:0}})},m.exports=g},{"../utils":32,"./GenericWorker":28}],28:[function(p,m,d){function v(x){this.name=x||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}v.prototype={push:function(x){this.emit("data",x)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(x){this.emit("error",x)}return!0},error:function(x){return!this.isFinished&&(this.isPaused?this.generatedError=x:(this.isFinished=!0,this.emit("error",x),this.previous&&this.previous.error(x),this.cleanUp()),!0)},on:function(x,g){return this._listeners[x].push(g),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(x,g){if(this._listeners[x])for(var b=0;b "+x:x}},m.exports=v},{}],29:[function(p,m,d){var v=p("../utils"),x=p("./ConvertWorker"),g=p("./GenericWorker"),b=p("../base64"),w=p("../support"),y=p("../external"),T=null;if(w.nodestream)try{T=p("../nodejs/NodejsStreamOutputAdapter")}catch{}function C(I,B){return new y.Promise(function(U,j){var H=[],G=I._internalType,L=I._outputType,R=I._mimeType;I.on("data",function(F,_){H.push(F),B&&B(_)}).on("error",function(F){H=[],j(F)}).on("end",function(){try{var F=function(_,k,N){switch(_){case"blob":return v.newBlob(v.transformTo("arraybuffer",k),N);case"base64":return b.encode(k);default:return v.transformTo(_,k)}}(L,function(_,k){var N,P=0,D=null,A=0;for(N=0;N"u")d.blob=!1;else{var v=new ArrayBuffer(0);try{d.blob=new Blob([v],{type:"application/zip"}).size===0}catch{try{var x=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);x.append(v),d.blob=x.getBlob("application/zip").size===0}catch{d.blob=!1}}}try{d.nodestream=!!p("readable-stream").Readable}catch{d.nodestream=!1}},{"readable-stream":16}],31:[function(p,m,d){for(var v=p("./utils"),x=p("./support"),g=p("./nodejsUtils"),b=p("./stream/GenericWorker"),w=new Array(256),y=0;y<256;y++)w[y]=252<=y?6:248<=y?5:240<=y?4:224<=y?3:192<=y?2:1;w[254]=w[254]=1;function T(){b.call(this,"utf-8 decode"),this.leftOver=null}function C(){b.call(this,"utf-8 encode")}d.utf8encode=function(M){return x.nodebuffer?g.newBufferFrom(M,"utf-8"):function(I){var B,U,j,H,G,L=I.length,R=0;for(H=0;H>>6:(U<65536?B[G++]=224|U>>>12:(B[G++]=240|U>>>18,B[G++]=128|U>>>12&63),B[G++]=128|U>>>6&63),B[G++]=128|63&U);return B}(M)},d.utf8decode=function(M){return x.nodebuffer?v.transformTo("nodebuffer",M).toString("utf-8"):function(I){var B,U,j,H,G=I.length,L=new Array(2*G);for(B=U=0;B>10&1023,L[U++]=56320|1023&j)}return L.length!==U&&(L.subarray?L=L.subarray(0,U):L.length=U),v.applyFromCharCode(L)}(M=v.transformTo(x.uint8array?"uint8array":"array",M))},v.inherits(T,b),T.prototype.processChunk=function(M){var I=v.transformTo(x.uint8array?"uint8array":"array",M.data);if(this.leftOver&&this.leftOver.length){if(x.uint8array){var B=I;(I=new Uint8Array(B.length+this.leftOver.length)).set(this.leftOver,0),I.set(B,this.leftOver.length)}else I=this.leftOver.concat(I);this.leftOver=null}var U=function(H,G){var L;for((G=G||H.length)>H.length&&(G=H.length),L=G-1;0<=L&&(192&H[L])==128;)L--;return L<0||L===0?G:L+w[H[L]]>G?L:G}(I),j=I;U!==I.length&&(x.uint8array?(j=I.subarray(0,U),this.leftOver=I.subarray(U,I.length)):(j=I.slice(0,U),this.leftOver=I.slice(U,I.length))),this.push({data:d.utf8decode(j),meta:M.meta})},T.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:d.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},d.Utf8DecodeWorker=T,v.inherits(C,b),C.prototype.processChunk=function(M){this.push({data:d.utf8encode(M.data),meta:M.meta})},d.Utf8EncodeWorker=C},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(p,m,d){var v=p("./support"),x=p("./base64"),g=p("./nodejsUtils"),b=p("./external");function w(B){return B}function y(B,U){for(var j=0;j>8;this.dir=!!(16&this.externalFileAttributes),M==0&&(this.dosPermissions=63&this.externalFileAttributes),M==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var M=v(this.extraFields[1].value);this.uncompressedSize===x.MAX_VALUE_32BITS&&(this.uncompressedSize=M.readInt(8)),this.compressedSize===x.MAX_VALUE_32BITS&&(this.compressedSize=M.readInt(8)),this.localHeaderOffset===x.MAX_VALUE_32BITS&&(this.localHeaderOffset=M.readInt(8)),this.diskNumberStart===x.MAX_VALUE_32BITS&&(this.diskNumberStart=M.readInt(4))}},readExtraFields:function(M){var I,B,U,j=M.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});M.index+4>>6:(M<65536?C[U++]=224|M>>>12:(C[U++]=240|M>>>18,C[U++]=128|M>>>12&63),C[U++]=128|M>>>6&63),C[U++]=128|63&M);return C},d.buf2binstring=function(T){return y(T,T.length)},d.binstring2buf=function(T){for(var C=new v.Buf8(T.length),M=0,I=C.length;M>10&1023,H[I++]=56320|1023&B)}return y(H,I)},d.utf8border=function(T,C){var M;for((C=C||T.length)>T.length&&(C=T.length),M=C-1;0<=M&&(192&T[M])==128;)M--;return M<0||M===0?C:M+b[T[M]]>C?M:C}},{"./common":41}],43:[function(p,m,d){m.exports=function(v,x,g,b){for(var w=65535&v|0,y=v>>>16&65535|0,T=0;g!==0;){for(g-=T=2e3>>1:x>>>1;g[b]=x}return g}();m.exports=function(x,g,b,w){var y=v,T=w+b;x^=-1;for(var C=w;C>>8^y[255&(x^g[C])];return-1^x}},{}],46:[function(p,m,d){var v,x=p("../utils/common"),g=p("./trees"),b=p("./adler32"),w=p("./crc32"),y=p("./messages"),T=0,C=4,M=0,I=-2,B=-1,U=4,j=2,H=8,G=9,L=286,R=30,F=19,_=2*L+1,k=15,N=3,P=258,D=P+N+1,A=42,S=113,E=1,O=2,z=3,J=4;function re(X,ve){return X.msg=y[ve],ve}function se(X){return(X<<1)-(4X.avail_out&&(ke=X.avail_out),ke!==0&&(x.arraySet(X.output,ve.pending_buf,ve.pending_out,ke,X.next_out),X.next_out+=ke,ve.pending_out+=ke,X.total_out+=ke,X.avail_out-=ke,ve.pending-=ke,ve.pending===0&&(ve.pending_out=0))}function q(X,ve){g._tr_flush_block(X,0<=X.block_start?X.block_start:-1,X.strstart-X.block_start,ve),X.block_start=X.strstart,Y(X.strm)}function K(X,ve){X.pending_buf[X.pending++]=ve}function Q(X,ve){X.pending_buf[X.pending++]=ve>>>8&255,X.pending_buf[X.pending++]=255&ve}function he(X,ve){var ke,ee,ne=X.max_chain_length,de=X.strstart,_e=X.prev_length,Re=X.nice_match,Ae=X.strstart>X.w_size-D?X.strstart-(X.w_size-D):0,Ne=X.window,Xe=X.w_mask,Le=X.prev,xe=X.strstart+P,Me=Ne[de+_e-1],Be=Ne[de+_e];X.prev_length>=X.good_match&&(ne>>=2),Re>X.lookahead&&(Re=X.lookahead);do if(Ne[(ke=ve)+_e]===Be&&Ne[ke+_e-1]===Me&&Ne[ke]===Ne[de]&&Ne[++ke]===Ne[de+1]){de+=2,ke++;do;while(Ne[++de]===Ne[++ke]&&Ne[++de]===Ne[++ke]&&Ne[++de]===Ne[++ke]&&Ne[++de]===Ne[++ke]&&Ne[++de]===Ne[++ke]&&Ne[++de]===Ne[++ke]&&Ne[++de]===Ne[++ke]&&Ne[++de]===Ne[++ke]&&deAe&&--ne!=0);return _e<=X.lookahead?_e:X.lookahead}function we(X){var ve,ke,ee,ne,de,_e,Re,Ae,Ne,Xe,Le=X.w_size;do{if(ne=X.window_size-X.lookahead-X.strstart,X.strstart>=Le+(Le-D)){for(x.arraySet(X.window,X.window,Le,Le,0),X.match_start-=Le,X.strstart-=Le,X.block_start-=Le,ve=ke=X.hash_size;ee=X.head[--ve],X.head[ve]=Le<=ee?ee-Le:0,--ke;);for(ve=ke=Le;ee=X.prev[--ve],X.prev[ve]=Le<=ee?ee-Le:0,--ke;);ne+=Le}if(X.strm.avail_in===0)break;if(_e=X.strm,Re=X.window,Ae=X.strstart+X.lookahead,Ne=ne,Xe=void 0,Xe=_e.avail_in,Ne=N)for(de=X.strstart-X.insert,X.ins_h=X.window[de],X.ins_h=(X.ins_h<=N&&(X.ins_h=(X.ins_h<=N)if(ee=g._tr_tally(X,X.strstart-X.match_start,X.match_length-N),X.lookahead-=X.match_length,X.match_length<=X.max_lazy_match&&X.lookahead>=N){for(X.match_length--;X.strstart++,X.ins_h=(X.ins_h<=N&&(X.ins_h=(X.ins_h<=N&&X.match_length<=X.prev_length){for(ne=X.strstart+X.lookahead-N,ee=g._tr_tally(X,X.strstart-1-X.prev_match,X.prev_length-N),X.lookahead-=X.prev_length-1,X.prev_length-=2;++X.strstart<=ne&&(X.ins_h=(X.ins_h<X.pending_buf_size-5&&(ke=X.pending_buf_size-5);;){if(X.lookahead<=1){if(we(X),X.lookahead===0&&ve===T)return E;if(X.lookahead===0)break}X.strstart+=X.lookahead,X.lookahead=0;var ee=X.block_start+ke;if((X.strstart===0||X.strstart>=ee)&&(X.lookahead=X.strstart-ee,X.strstart=ee,q(X,!1),X.strm.avail_out===0)||X.strstart-X.block_start>=X.w_size-D&&(q(X,!1),X.strm.avail_out===0))return E}return X.insert=0,ve===C?(q(X,!0),X.strm.avail_out===0?z:J):(X.strstart>X.block_start&&(q(X,!1),X.strm.avail_out),E)}),new Z(4,4,8,4,ae),new Z(4,5,16,8,ae),new Z(4,6,32,32,ae),new Z(4,4,16,16,te),new Z(8,16,32,32,te),new Z(8,16,128,128,te),new Z(8,32,128,256,te),new Z(32,128,258,1024,te),new Z(32,258,258,4096,te)],d.deflateInit=function(X,ve){return ye(X,ve,H,15,8,0)},d.deflateInit2=ye,d.deflateReset=fe,d.deflateResetKeep=V,d.deflateSetHeader=function(X,ve){return X&&X.state?X.state.wrap!==2?I:(X.state.gzhead=ve,M):I},d.deflate=function(X,ve){var ke,ee,ne,de;if(!X||!X.state||5>8&255),K(ee,ee.gzhead.time>>16&255),K(ee,ee.gzhead.time>>24&255),K(ee,ee.level===9?2:2<=ee.strategy||ee.level<2?4:0),K(ee,255&ee.gzhead.os),ee.gzhead.extra&&ee.gzhead.extra.length&&(K(ee,255&ee.gzhead.extra.length),K(ee,ee.gzhead.extra.length>>8&255)),ee.gzhead.hcrc&&(X.adler=w(X.adler,ee.pending_buf,ee.pending,0)),ee.gzindex=0,ee.status=69):(K(ee,0),K(ee,0),K(ee,0),K(ee,0),K(ee,0),K(ee,ee.level===9?2:2<=ee.strategy||ee.level<2?4:0),K(ee,3),ee.status=S);else{var _e=H+(ee.w_bits-8<<4)<<8;_e|=(2<=ee.strategy||ee.level<2?0:ee.level<6?1:ee.level===6?2:3)<<6,ee.strstart!==0&&(_e|=32),_e+=31-_e%31,ee.status=S,Q(ee,_e),ee.strstart!==0&&(Q(ee,X.adler>>>16),Q(ee,65535&X.adler)),X.adler=1}if(ee.status===69)if(ee.gzhead.extra){for(ne=ee.pending;ee.gzindex<(65535&ee.gzhead.extra.length)&&(ee.pending!==ee.pending_buf_size||(ee.gzhead.hcrc&&ee.pending>ne&&(X.adler=w(X.adler,ee.pending_buf,ee.pending-ne,ne)),Y(X),ne=ee.pending,ee.pending!==ee.pending_buf_size));)K(ee,255&ee.gzhead.extra[ee.gzindex]),ee.gzindex++;ee.gzhead.hcrc&&ee.pending>ne&&(X.adler=w(X.adler,ee.pending_buf,ee.pending-ne,ne)),ee.gzindex===ee.gzhead.extra.length&&(ee.gzindex=0,ee.status=73)}else ee.status=73;if(ee.status===73)if(ee.gzhead.name){ne=ee.pending;do{if(ee.pending===ee.pending_buf_size&&(ee.gzhead.hcrc&&ee.pending>ne&&(X.adler=w(X.adler,ee.pending_buf,ee.pending-ne,ne)),Y(X),ne=ee.pending,ee.pending===ee.pending_buf_size)){de=1;break}de=ee.gzindexne&&(X.adler=w(X.adler,ee.pending_buf,ee.pending-ne,ne)),de===0&&(ee.gzindex=0,ee.status=91)}else ee.status=91;if(ee.status===91)if(ee.gzhead.comment){ne=ee.pending;do{if(ee.pending===ee.pending_buf_size&&(ee.gzhead.hcrc&&ee.pending>ne&&(X.adler=w(X.adler,ee.pending_buf,ee.pending-ne,ne)),Y(X),ne=ee.pending,ee.pending===ee.pending_buf_size)){de=1;break}de=ee.gzindexne&&(X.adler=w(X.adler,ee.pending_buf,ee.pending-ne,ne)),de===0&&(ee.status=103)}else ee.status=103;if(ee.status===103&&(ee.gzhead.hcrc?(ee.pending+2>ee.pending_buf_size&&Y(X),ee.pending+2<=ee.pending_buf_size&&(K(ee,255&X.adler),K(ee,X.adler>>8&255),X.adler=0,ee.status=S)):ee.status=S),ee.pending!==0){if(Y(X),X.avail_out===0)return ee.last_flush=-1,M}else if(X.avail_in===0&&se(ve)<=se(ke)&&ve!==C)return re(X,-5);if(ee.status===666&&X.avail_in!==0)return re(X,-5);if(X.avail_in!==0||ee.lookahead!==0||ve!==T&&ee.status!==666){var Re=ee.strategy===2?function(Ae,Ne){for(var Xe;;){if(Ae.lookahead===0&&(we(Ae),Ae.lookahead===0)){if(Ne===T)return E;break}if(Ae.match_length=0,Xe=g._tr_tally(Ae,0,Ae.window[Ae.strstart]),Ae.lookahead--,Ae.strstart++,Xe&&(q(Ae,!1),Ae.strm.avail_out===0))return E}return Ae.insert=0,Ne===C?(q(Ae,!0),Ae.strm.avail_out===0?z:J):Ae.last_lit&&(q(Ae,!1),Ae.strm.avail_out===0)?E:O}(ee,ve):ee.strategy===3?function(Ae,Ne){for(var Xe,Le,xe,Me,Be=Ae.window;;){if(Ae.lookahead<=P){if(we(Ae),Ae.lookahead<=P&&Ne===T)return E;if(Ae.lookahead===0)break}if(Ae.match_length=0,Ae.lookahead>=N&&0Ae.lookahead&&(Ae.match_length=Ae.lookahead)}if(Ae.match_length>=N?(Xe=g._tr_tally(Ae,1,Ae.match_length-N),Ae.lookahead-=Ae.match_length,Ae.strstart+=Ae.match_length,Ae.match_length=0):(Xe=g._tr_tally(Ae,0,Ae.window[Ae.strstart]),Ae.lookahead--,Ae.strstart++),Xe&&(q(Ae,!1),Ae.strm.avail_out===0))return E}return Ae.insert=0,Ne===C?(q(Ae,!0),Ae.strm.avail_out===0?z:J):Ae.last_lit&&(q(Ae,!1),Ae.strm.avail_out===0)?E:O}(ee,ve):v[ee.level].func(ee,ve);if(Re!==z&&Re!==J||(ee.status=666),Re===E||Re===z)return X.avail_out===0&&(ee.last_flush=-1),M;if(Re===O&&(ve===1?g._tr_align(ee):ve!==5&&(g._tr_stored_block(ee,0,0,!1),ve===3&&(Ce(ee.head),ee.lookahead===0&&(ee.strstart=0,ee.block_start=0,ee.insert=0))),Y(X),X.avail_out===0))return ee.last_flush=-1,M}return ve!==C?M:ee.wrap<=0?1:(ee.wrap===2?(K(ee,255&X.adler),K(ee,X.adler>>8&255),K(ee,X.adler>>16&255),K(ee,X.adler>>24&255),K(ee,255&X.total_in),K(ee,X.total_in>>8&255),K(ee,X.total_in>>16&255),K(ee,X.total_in>>24&255)):(Q(ee,X.adler>>>16),Q(ee,65535&X.adler)),Y(X),0=ke.w_size&&(de===0&&(Ce(ke.head),ke.strstart=0,ke.block_start=0,ke.insert=0),Ne=new x.Buf8(ke.w_size),x.arraySet(Ne,ve,Xe-ke.w_size,ke.w_size,0),ve=Ne,Xe=ke.w_size),_e=X.avail_in,Re=X.next_in,Ae=X.input,X.avail_in=Xe,X.next_in=0,X.input=ve,we(ke);ke.lookahead>=N;){for(ee=ke.strstart,ne=ke.lookahead-(N-1);ke.ins_h=(ke.ins_h<>>=N=k>>>24,G-=N,(N=k>>>16&255)===0)O[y++]=65535&k;else{if(!(16&N)){if(!(64&N)){k=L[(65535&k)+(H&(1<>>=N,G-=N),G<15&&(H+=E[b++]<>>=N=k>>>24,G-=N,!(16&(N=k>>>16&255))){if(!(64&N)){k=R[(65535&k)+(H&(1<>>=N,G-=N,(N=y-T)>3,H&=(1<<(G-=P<<3))-1,v.next_in=b,v.next_out=y,v.avail_in=b>>24&255)+(A>>>8&65280)+((65280&A)<<8)+((255&A)<<24)}function H(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new v.Buf16(320),this.work=new v.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function G(A){var S;return A&&A.state?(S=A.state,A.total_in=A.total_out=S.total=0,A.msg="",S.wrap&&(A.adler=1&S.wrap),S.mode=I,S.last=0,S.havedict=0,S.dmax=32768,S.head=null,S.hold=0,S.bits=0,S.lencode=S.lendyn=new v.Buf32(B),S.distcode=S.distdyn=new v.Buf32(U),S.sane=1,S.back=-1,C):M}function L(A){var S;return A&&A.state?((S=A.state).wsize=0,S.whave=0,S.wnext=0,G(A)):M}function R(A,S){var E,O;return A&&A.state?(O=A.state,S<0?(E=0,S=-S):(E=1+(S>>4),S<48&&(S&=15)),S&&(S<8||15=J.wsize?(v.arraySet(J.window,S,E-J.wsize,J.wsize,0),J.wnext=0,J.whave=J.wsize):(O<(z=J.wsize-J.wnext)&&(z=O),v.arraySet(J.window,S,E-O,z,J.wnext),(O-=z)?(v.arraySet(J.window,S,E-O,O,0),J.wnext=O,J.whave=J.wsize):(J.wnext+=z,J.wnext===J.wsize&&(J.wnext=0),J.whave>>8&255,E.check=g(E.check,de,2,0),q=Y=0,E.mode=2;break}if(E.flags=0,E.head&&(E.head.done=!1),!(1&E.wrap)||(((255&Y)<<8)+(Y>>8))%31){A.msg="incorrect header check",E.mode=30;break}if((15&Y)!=8){A.msg="unknown compression method",E.mode=30;break}if(q-=4,X=8+(15&(Y>>>=4)),E.wbits===0)E.wbits=X;else if(X>E.wbits){A.msg="invalid window size",E.mode=30;break}E.dmax=1<>8&1),512&E.flags&&(de[0]=255&Y,de[1]=Y>>>8&255,E.check=g(E.check,de,2,0)),q=Y=0,E.mode=3;case 3:for(;q<32;){if(se===0)break e;se--,Y+=O[J++]<>>8&255,de[2]=Y>>>16&255,de[3]=Y>>>24&255,E.check=g(E.check,de,4,0)),q=Y=0,E.mode=4;case 4:for(;q<16;){if(se===0)break e;se--,Y+=O[J++]<>8),512&E.flags&&(de[0]=255&Y,de[1]=Y>>>8&255,E.check=g(E.check,de,2,0)),q=Y=0,E.mode=5;case 5:if(1024&E.flags){for(;q<16;){if(se===0)break e;se--,Y+=O[J++]<>>8&255,E.check=g(E.check,de,2,0)),q=Y=0}else E.head&&(E.head.extra=null);E.mode=6;case 6:if(1024&E.flags&&(se<(he=E.length)&&(he=se),he&&(E.head&&(X=E.head.extra_len-E.length,E.head.extra||(E.head.extra=new Array(E.head.extra_len)),v.arraySet(E.head.extra,O,J,he,X)),512&E.flags&&(E.check=g(E.check,O,he,J)),se-=he,J+=he,E.length-=he),E.length))break e;E.length=0,E.mode=7;case 7:if(2048&E.flags){if(se===0)break e;for(he=0;X=O[J+he++],E.head&&X&&E.length<65536&&(E.head.name+=String.fromCharCode(X)),X&&he>9&1,E.head.done=!0),A.adler=E.check=0,E.mode=12;break;case 10:for(;q<32;){if(se===0)break e;se--,Y+=O[J++]<>>=7&q,q-=7&q,E.mode=27;break}for(;q<3;){if(se===0)break e;se--,Y+=O[J++]<>>=1)){case 0:E.mode=14;break;case 1:if(P(E),E.mode=20,S!==6)break;Y>>>=2,q-=2;break e;case 2:E.mode=17;break;case 3:A.msg="invalid block type",E.mode=30}Y>>>=2,q-=2;break;case 14:for(Y>>>=7&q,q-=7&q;q<32;){if(se===0)break e;se--,Y+=O[J++]<>>16^65535)){A.msg="invalid stored block lengths",E.mode=30;break}if(E.length=65535&Y,q=Y=0,E.mode=15,S===6)break e;case 15:E.mode=16;case 16:if(he=E.length){if(se>>=5,q-=5,E.ndist=1+(31&Y),Y>>>=5,q-=5,E.ncode=4+(15&Y),Y>>>=4,q-=4,286>>=3,q-=3}for(;E.have<19;)E.lens[_e[E.have++]]=0;if(E.lencode=E.lendyn,E.lenbits=7,ke={bits:E.lenbits},ve=w(0,E.lens,0,19,E.lencode,0,E.work,ke),E.lenbits=ke.bits,ve){A.msg="invalid code lengths set",E.mode=30;break}E.have=0,E.mode=19;case 19:for(;E.have>>16&255,W=65535&ne,!((te=ne>>>24)<=q);){if(se===0)break e;se--,Y+=O[J++]<>>=te,q-=te,E.lens[E.have++]=W;else{if(W===16){for(ee=te+2;q>>=te,q-=te,E.have===0){A.msg="invalid bit length repeat",E.mode=30;break}X=E.lens[E.have-1],he=3+(3&Y),Y>>>=2,q-=2}else if(W===17){for(ee=te+3;q>>=te)),Y>>>=3,q-=3}else{for(ee=te+7;q>>=te)),Y>>>=7,q-=7}if(E.have+he>E.nlen+E.ndist){A.msg="invalid bit length repeat",E.mode=30;break}for(;he--;)E.lens[E.have++]=X}}if(E.mode===30)break;if(E.lens[256]===0){A.msg="invalid code -- missing end-of-block",E.mode=30;break}if(E.lenbits=9,ke={bits:E.lenbits},ve=w(y,E.lens,0,E.nlen,E.lencode,0,E.work,ke),E.lenbits=ke.bits,ve){A.msg="invalid literal/lengths set",E.mode=30;break}if(E.distbits=6,E.distcode=E.distdyn,ke={bits:E.distbits},ve=w(T,E.lens,E.nlen,E.ndist,E.distcode,0,E.work,ke),E.distbits=ke.bits,ve){A.msg="invalid distances set",E.mode=30;break}if(E.mode=20,S===6)break e;case 20:E.mode=21;case 21:if(6<=se&&258<=Ce){A.next_out=re,A.avail_out=Ce,A.next_in=J,A.avail_in=se,E.hold=Y,E.bits=q,b(A,Q),re=A.next_out,z=A.output,Ce=A.avail_out,J=A.next_in,O=A.input,se=A.avail_in,Y=E.hold,q=E.bits,E.mode===12&&(E.back=-1);break}for(E.back=0;Z=(ne=E.lencode[Y&(1<>>16&255,W=65535&ne,!((te=ne>>>24)<=q);){if(se===0)break e;se--,Y+=O[J++]<>V)])>>>16&255,W=65535&ne,!(V+(te=ne>>>24)<=q);){if(se===0)break e;se--,Y+=O[J++]<>>=V,q-=V,E.back+=V}if(Y>>>=te,q-=te,E.back+=te,E.length=W,Z===0){E.mode=26;break}if(32&Z){E.back=-1,E.mode=12;break}if(64&Z){A.msg="invalid literal/length code",E.mode=30;break}E.extra=15&Z,E.mode=22;case 22:if(E.extra){for(ee=E.extra;q>>=E.extra,q-=E.extra,E.back+=E.extra}E.was=E.length,E.mode=23;case 23:for(;Z=(ne=E.distcode[Y&(1<>>16&255,W=65535&ne,!((te=ne>>>24)<=q);){if(se===0)break e;se--,Y+=O[J++]<>V)])>>>16&255,W=65535&ne,!(V+(te=ne>>>24)<=q);){if(se===0)break e;se--,Y+=O[J++]<>>=V,q-=V,E.back+=V}if(Y>>>=te,q-=te,E.back+=te,64&Z){A.msg="invalid distance code",E.mode=30;break}E.offset=W,E.extra=15&Z,E.mode=24;case 24:if(E.extra){for(ee=E.extra;q>>=E.extra,q-=E.extra,E.back+=E.extra}if(E.offset>E.dmax){A.msg="invalid distance too far back",E.mode=30;break}E.mode=25;case 25:if(Ce===0)break e;if(he=Q-Ce,E.offset>he){if((he=E.offset-he)>E.whave&&E.sane){A.msg="invalid distance too far back",E.mode=30;break}we=he>E.wnext?(he-=E.wnext,E.wsize-he):E.wnext-he,he>E.length&&(he=E.length),ae=E.window}else ae=z,we=re-E.offset,he=E.length;for(Ce_?(N=we[ae+U[S]],q[K+U[S]]):(N=96,0),H=1<>re)+(G-=H)]=k<<24|N<<16|P|0,G!==0;);for(H=1<>=1;if(H!==0?(Y&=H-1,Y+=H):Y=0,S++,--Q[A]==0){if(A===O)break;A=T[C+U[S]]}if(z>>7)]}function K(ne,de){ne.pending_buf[ne.pending++]=255&de,ne.pending_buf[ne.pending++]=de>>>8&255}function Q(ne,de,_e){ne.bi_valid>j-_e?(ne.bi_buf|=de<>j-ne.bi_valid,ne.bi_valid+=_e-j):(ne.bi_buf|=de<>>=1,_e<<=1,0<--de;);return _e>>>1}function ae(ne,de,_e){var Re,Ae,Ne=new Array(U+1),Xe=0;for(Re=1;Re<=U;Re++)Ne[Re]=Xe=Xe+_e[Re-1]<<1;for(Ae=0;Ae<=de;Ae++){var Le=ne[2*Ae+1];Le!==0&&(ne[2*Ae]=we(Ne[Le]++,Le))}}function te(ne){var de;for(de=0;de>1;1<=_e;_e--)V(ne,Ne,_e);for(Ae=xe;_e=ne.heap[1],ne.heap[1]=ne.heap[ne.heap_len--],V(ne,Ne,1),Re=ne.heap[1],ne.heap[--ne.heap_max]=_e,ne.heap[--ne.heap_max]=Re,Ne[2*Ae]=Ne[2*_e]+Ne[2*Re],ne.depth[Ae]=(ne.depth[_e]>=ne.depth[Re]?ne.depth[_e]:ne.depth[Re])+1,Ne[2*_e+1]=Ne[2*Re+1]=Ae,ne.heap[1]=Ae++,V(ne,Ne,1),2<=ne.heap_len;);ne.heap[--ne.heap_max]=ne.heap[1],function(Be,Ve){var ot,ct,rt,nt,mt,et,tt=Ve.dyn_tree,vt=Ve.max_code,ft=Ve.stat_desc.static_tree,kt=Ve.stat_desc.has_stree,Tt=Ve.stat_desc.extra_bits,lt=Ve.stat_desc.extra_base,Ct=Ve.stat_desc.max_length,Mt=0;for(nt=0;nt<=U;nt++)Be.bl_count[nt]=0;for(tt[2*Be.heap[Be.heap_max]+1]=0,ot=Be.heap_max+1;ot>=7;Ae>>=1)if(1&Me&&Le.dyn_ltree[2*xe]!==0)return x;if(Le.dyn_ltree[18]!==0||Le.dyn_ltree[20]!==0||Le.dyn_ltree[26]!==0)return g;for(xe=32;xe>>3,(Ne=ne.static_len+3+7>>>3)<=Ae&&(Ae=Ne)):Ae=Ne=_e+5,_e+4<=Ae&&de!==-1?ee(ne,de,_e,Re):ne.strategy===4||Ne===Ae?(Q(ne,2+(Re?1:0),3),fe(ne,D,A)):(Q(ne,4+(Re?1:0),3),function(Le,xe,Me,Be){var Ve;for(Q(Le,xe-257,5),Q(Le,Me-1,5),Q(Le,Be-4,4),Ve=0;Ve>>8&255,ne.pending_buf[ne.d_buf+2*ne.last_lit+1]=255&de,ne.pending_buf[ne.l_buf+ne.last_lit]=255&_e,ne.last_lit++,de===0?ne.dyn_ltree[2*_e]++:(ne.matches++,de--,ne.dyn_ltree[2*(E[_e]+T+1)]++,ne.dyn_dtree[2*q(de)]++),ne.last_lit===ne.lit_bufsize-1},d._tr_align=function(ne){Q(ne,2,3),he(ne,G,D),function(de){de.bi_valid===16?(K(de,de.bi_buf),de.bi_buf=0,de.bi_valid=0):8<=de.bi_valid&&(de.pending_buf[de.pending++]=255&de.bi_buf,de.bi_buf>>=8,de.bi_valid-=8)}(ne)}},{"../utils/common":41}],53:[function(p,m,d){m.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(p,m,d){(function(v){(function(x,g){if(!x.setImmediate){var b,w,y,T,C=1,M={},I=!1,B=x.document,U=Object.getPrototypeOf&&Object.getPrototypeOf(x);U=U&&U.setTimeout?U:x,b={}.toString.call(x.process)==="[object process]"?function(L){s.nextTick(function(){H(L)})}:function(){if(x.postMessage&&!x.importScripts){var L=!0,R=x.onmessage;return x.onmessage=function(){L=!1},x.postMessage("","*"),x.onmessage=R,L}}()?(T="setImmediate$"+Math.random()+"$",x.addEventListener?x.addEventListener("message",G,!1):x.attachEvent("onmessage",G),function(L){x.postMessage(T+L,"*")}):x.MessageChannel?((y=new MessageChannel).port1.onmessage=function(L){H(L.data)},function(L){y.port2.postMessage(L)}):B&&"onreadystatechange"in B.createElement("script")?(w=B.documentElement,function(L){var R=B.createElement("script");R.onreadystatechange=function(){H(L),R.onreadystatechange=null,w.removeChild(R),R=null},w.appendChild(R)}):function(L){setTimeout(H,0,L)},U.setImmediate=function(L){typeof L!="function"&&(L=new Function(""+L));for(var R=new Array(arguments.length-1),F=0;F"u"?v===void 0?this:v:self)}).call(this,typeof o<"u"?o:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})}).call(this)}).call(this,e("_process"),typeof It<"u"?It:typeof self<"u"?self:typeof window<"u"?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],e("timers").setImmediate)},{_process:467,buffer:220,timers:523}],442:[function(e,n,i){(function(s){(function(){var o=1/0,h="[object Symbol]",c=/[\\^$.*+?()[\]{}|]/g,a=RegExp(c.source),f=typeof s=="object"&&s&&s.Object===Object&&s,l=typeof self=="object"&&self&&self.Object===Object&&self,u=f||l||Function("return this")(),p=Object.prototype,m=p.toString,d=u.Symbol,v=d?d.prototype:void 0,x=v?v.toString:void 0;function g(C){if(typeof C=="string")return C;if(w(C))return x?x.call(C):"";var M=C+"";return M=="0"&&1/C==-o?"-0":M}function b(C){return!!C&&typeof C=="object"}function w(C){return typeof C=="symbol"||b(C)&&m.call(C)==h}function y(C){return C==null?"":g(C)}function T(C){return C=y(C),C&&a.test(C)?C.replace(c,"\\$&"):C}n.exports=T}).call(this)}).call(this,typeof It<"u"?It:typeof self<"u"?self:typeof window<"u"?window:{})},{}],443:[function(e,n,i){(function(s){(function(){var o=200,h="Expected a function",c="__lodash_hash_undefined__",a=1,f=2,l=1/0,u=9007199254740991,p="[object Arguments]",m="[object Array]",d="[object Boolean]",v="[object Date]",x="[object Error]",g="[object Function]",b="[object GeneratorFunction]",w="[object Map]",y="[object Number]",T="[object Object]",C="[object Promise]",M="[object RegExp]",I="[object Set]",B="[object String]",U="[object Symbol]",j="[object WeakMap]",H="[object ArrayBuffer]",G="[object DataView]",L="[object Float32Array]",R="[object Float64Array]",F="[object Int8Array]",_="[object Int16Array]",k="[object Int32Array]",N="[object Uint8Array]",P="[object Uint8ClampedArray]",D="[object Uint16Array]",A="[object Uint32Array]",S=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,E=/^\w*$/,O=/^\./,z=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,J=/[\\^$.*+?()[\]{}|]/g,re=/\\(\\)?/g,se=/^\[object .+?Constructor\]$/,Ce=/^(?:0|[1-9]\d*)$/,Y={};Y[L]=Y[R]=Y[F]=Y[_]=Y[k]=Y[N]=Y[P]=Y[D]=Y[A]=!0,Y[p]=Y[m]=Y[H]=Y[d]=Y[G]=Y[v]=Y[x]=Y[g]=Y[w]=Y[y]=Y[T]=Y[M]=Y[I]=Y[B]=Y[j]=!1;var q=typeof s=="object"&&s&&s.Object===Object&&s,K=typeof self=="object"&&self&&self.Object===Object&&self,Q=q||K||Function("return this")(),he=typeof i=="object"&&i&&!i.nodeType&&i,we=he&&typeof n=="object"&&n&&!n.nodeType&&n,ae=we&&we.exports===he,te=ae&&q.process,Z=function(){try{return te&&te.binding("util")}catch{}}(),W=Z&&Z.isTypedArray;function V(oe,Se,ze,Ze){for(var pt=-1,st=oe?oe.length:0;++pt-1}function Ue(oe,Se){var ze=this.__data__,Ze=$n(ze,oe);return Ze<0?ze.push([oe,Se]):ze[Ze][1]=Se,this}Oe.prototype.clear=$e,Oe.prototype.delete=ce,Oe.prototype.get=Te,Oe.prototype.has=Ee,Oe.prototype.set=Ue;function Ke(oe){var Se=-1,ze=oe?oe.length:0;for(this.clear();++SeVt))return!1;var xr=st.get(oe);if(xr&&st.get(Se))return xr==Se;var zr=-1,Vr=!0,br=pt&a?new jt:void 0;for(st.set(oe,Se),st.set(Se,oe);++zr-1&&oe%1==0&&oe-1&&oe%1==0&&oe<=u}function ir(oe){var Se=typeof oe;return!!oe&&(Se=="object"||Se=="function")}function Tr(oe){return!!oe&&typeof oe=="object"}function Rr(oe){return typeof oe=="symbol"||Tr(oe)&&Be.call(oe)==U}var On=W?ve(W):da;function wn(oe){return oe==null?"":Mo(oe)}function Xn(oe,Se,ze){var Ze=oe==null?void 0:ha(oe,Se);return Ze===void 0?ze:Ze}function wa(oe,Se){return oe!=null&&ga(oe,Se,ko)}function Vn(oe){return nr(oe)?Eo(oe):si(oe)}function Qi(oe){return oe}function X0(oe){return Ti(oe)?ye(De(oe)):An(oe)}n.exports=it}).call(this)}).call(this,typeof It<"u"?It:typeof self<"u"?self:typeof window<"u"?window:{})},{}],444:[function(e,n,i){var s="[object Boolean]",o=Object.prototype,h=o.toString;function c(f){return f===!0||f===!1||a(f)&&h.call(f)==s}function a(f){return!!f&&typeof f=="object"}n.exports=c},{}],445:[function(e,n,i){(function(s){(function(){var o=200,h="__lodash_hash_undefined__",c=1,a=2,f=9007199254740991,l="[object Arguments]",u="[object Array]",p="[object AsyncFunction]",m="[object Boolean]",d="[object Date]",v="[object Error]",x="[object Function]",g="[object GeneratorFunction]",b="[object Map]",w="[object Number]",y="[object Null]",T="[object Object]",C="[object Promise]",M="[object Proxy]",I="[object RegExp]",B="[object Set]",U="[object String]",j="[object Symbol]",H="[object Undefined]",G="[object WeakMap]",L="[object ArrayBuffer]",R="[object DataView]",F="[object Float32Array]",_="[object Float64Array]",k="[object Int8Array]",N="[object Int16Array]",P="[object Int32Array]",D="[object Uint8Array]",A="[object Uint8ClampedArray]",S="[object Uint16Array]",E="[object Uint32Array]",O=/[\\^$.*+?()[\]{}|]/g,z=/^\[object .+?Constructor\]$/,J=/^(?:0|[1-9]\d*)$/,re={};re[F]=re[_]=re[k]=re[N]=re[P]=re[D]=re[A]=re[S]=re[E]=!0,re[l]=re[u]=re[L]=re[m]=re[R]=re[d]=re[v]=re[x]=re[b]=re[w]=re[T]=re[I]=re[B]=re[U]=re[G]=!1;var se=typeof s=="object"&&s&&s.Object===Object&&s,Ce=typeof self=="object"&&self&&self.Object===Object&&self,Y=se||Ce||Function("return this")(),q=typeof i=="object"&&i&&!i.nodeType&&i,K=q&&typeof n=="object"&&n&&!n.nodeType&&n,Q=K&&K.exports===q,he=Q&&se.process,we=function(){try{return he&&he.binding&&he.binding("util")}catch{}}(),ae=we&&we.isTypedArray;function te(be,De){for(var Ge=-1,it=be==null?0:be.length,Ut=0,wt=[];++Ge-1}function Ue(be,De){var Ge=this.__data__,it=$n(Ge,be);return it<0?(++this.size,Ge.push([be,De])):Ge[it][1]=De,this}Oe.prototype.clear=$e,Oe.prototype.delete=ce,Oe.prototype.get=Te,Oe.prototype.has=Ee,Oe.prototype.set=Ue;function Ke(be){var De=-1,Ge=be==null?0:be.length;for(this.clear();++DeXt))return!1;var Kt=wt.get(be);if(Kt&&wt.get(De))return Kt==De;var Fr=-1,Hr=!0,ir=Ge&a?new jt:void 0;for(wt.set(be,De),wt.set(De,be);++Fr-1&&be%1==0&&be-1&&be%1==0&&be<=f}function Ti(be){var De=typeof be;return be!=null&&(De=="object"||De=="function")}function Si(be){return be!=null&&typeof be=="object"}var va=ae?fe(ae):ko;function Bo(be){return Po(be)?Eo(be):bs(be)}function xa(){return[]}function ba(){return!1}n.exports=Mn}).call(this)}).call(this,typeof It<"u"?It:typeof self<"u"?self:typeof window<"u"?window:{})},{}],446:[function(e,n,i){(function(s){(function(){var o="[object AsyncFunction]",h="[object Function]",c="[object GeneratorFunction]",a="[object Null]",f="[object Proxy]",l="[object Undefined]",u=typeof s=="object"&&s&&s.Object===Object&&s,p=typeof self=="object"&&self&&self.Object===Object&&self,m=u||p||Function("return this")(),d=Object.prototype,v=d.hasOwnProperty,x=d.toString,g=m.Symbol,b=g?g.toStringTag:void 0;function w(I){return I==null?I===void 0?l:a:b&&b in Object(I)?y(I):T(I)}function y(I){var B=v.call(I,b),U=I[b];try{I[b]=void 0;var j=!0}catch{}var H=x.call(I);return j&&(B?I[b]=U:delete I[b]),H}function T(I){return x.call(I)}function C(I){if(!M(I))return!1;var B=w(I);return B==h||B==c||B==o||B==f}function M(I){var B=typeof I;return I!=null&&(B=="object"||B=="function")}n.exports=C}).call(this)}).call(this,typeof It<"u"?It:typeof self<"u"?self:typeof window<"u"?window:{})},{}],447:[function(e,n,i){function s(o){return o==null}n.exports=s},{}],448:[function(e,n,i){function s(o){return o===void 0}n.exports=s},{}],449:[function(e,n,i){(function(s){(function(){var o=200,h="__lodash_hash_undefined__",c=1/0,a="[object Function]",f="[object GeneratorFunction]",l=/[\\^$.*+?()[\]{}|]/g,u=/^\[object .+?Constructor\]$/,p=typeof s=="object"&&s&&s.Object===Object&&s,m=typeof self=="object"&&self&&self.Object===Object&&self,d=p||m||Function("return this")();function v(xe,Me){var Be=xe?xe.length:0;return!!Be&&b(xe,Me,0)>-1}function x(xe,Me,Be){for(var Ve=-1,ot=xe?xe.length:0;++Ve-1}function q(xe,Me){var Be=this.__data__,Ve=fe(Be,xe);return Ve<0?Be.push([xe,Me]):Be[Ve][1]=Me,this}J.prototype.clear=re,J.prototype.delete=se,J.prototype.get=Ce,J.prototype.has=Y,J.prototype.set=q;function K(xe){var Me=-1,Be=xe?xe.length:0;for(this.clear();++Me=o){var et=Me?null:ve(xe);if(et)return M(et);rt=!1,ot=y,mt=new Z}else mt=Me?[]:nt;e:for(;++Ve56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var d=h.allocUnsafe(16);return d.writeInt32LE(this._a,0),d.writeInt32LE(this._b,4),d.writeInt32LE(this._c,8),d.writeInt32LE(this._d,12),d};function f(d,v){return d<>>32-v}function l(d,v,x,g,b,w,y){return f(d+(v&x|~v&g)+b+w|0,y)+v|0}function u(d,v,x,g,b,w,y){return f(d+(v&g|x&~g)+b+w|0,y)+v|0}function p(d,v,x,g,b,w,y){return f(d+(v^x^g)+b+w|0,y)+v|0}function m(d,v,x,g,b,w,y){return f(d+(x^(v|~g))+b+w|0,y)+v|0}n.exports=a},{"hash-base":425,inherits:440,"safe-buffer":494}],451:[function(e,n,i){var s=e("bn.js"),o=e("brorand");function h(c){this.rand=c||new o.Rand}n.exports=h,h.create=function(a){return new h(a)},h.prototype._randbelow=function(a){var f=a.bitLength(),l=Math.ceil(f/8);do var u=new s(this.rand.generate(l));while(u.cmp(a)>=0);return u},h.prototype._randrange=function(a,f){var l=f.sub(a);return a.add(this._randbelow(l))},h.prototype.test=function(a,f,l){var u=a.bitLength(),p=s.mont(a),m=new s(1).toRed(p);f||(f=Math.max(1,u/48|0));for(var d=a.subn(1),v=0;!d.testn(v);v++);for(var x=a.shrn(v),g=d.toRed(p),b=!0;f>0;f--){var w=this._randrange(new s(2),d);l&&l(w);var y=w.toRed(p).redPow(x);if(!(y.cmp(m)===0||y.cmp(g)===0)){for(var T=1;T0;f--){var g=this._randrange(new s(2),m),b=a.gcd(g);if(b.cmpn(1)!==0)return b;var w=g.toRed(u).redPow(v);if(!(w.cmp(p)===0||w.cmp(x)===0)){for(var y=1;y>8,d=p&255;m?l.push(m,d):l.push(d)}return l}s.toArray=o;function h(a){return a.length===1?"0"+a:a}s.zero2=h;function c(a){for(var f="",l=0;l=6?"utf-8":"binary"}else h="utf-8";n.exports=h}).call(this)}).call(this,e("_process"),typeof It<"u"?It:typeof self<"u"?self:typeof window<"u"?window:{})},{_process:467}],463:[function(e,n,i){var s=Math.pow(2,30)-1;n.exports=function(o,h){if(typeof o!="number")throw new TypeError("Iterations not a number");if(o<0)throw new TypeError("Bad iterations");if(typeof h!="number")throw new TypeError("Key length not a number");if(h<0||h>s||h!==h)throw new TypeError("Bad key length")}},{}],464:[function(e,n,i){var s=e("create-hash/md5"),o=e("ripemd160"),h=e("sha.js"),c=e("safe-buffer").Buffer,a=e("./precondition"),f=e("./default-encoding"),l=e("./to-buffer"),u=c.alloc(128),p={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function m(x,g,b){var w=d(x),y=x==="sha512"||x==="sha384"?128:64;g.length>y?g=w(g):g.length"u"||!s.version||s.version.indexOf("v0.")===0||s.version.indexOf("v1.")===0&&s.version.indexOf("v1.8.")!==0?n.exports={nextTick:o}:n.exports=s;function o(h,c,a,f){if(typeof h!="function")throw new TypeError('"callback" argument must be a function');var l=arguments.length,u,p;switch(l){case 0:case 1:return s.nextTick(h);case 2:return s.nextTick(function(){h.call(null,c)});case 3:return s.nextTick(function(){h.call(null,c,a)});case 4:return s.nextTick(function(){h.call(null,c,a,f)});default:for(u=new Array(l-1),p=0;p1)for(var T=1;TT||new c(g).cmp(y.modulus)>=0)throw new Error("decryption error");var C;b?C=l(new c(g),y):C=a(g,y);var M=u.alloc(T-C.length);if(C=u.concat([M,C],T),w===4)return p(y,C);if(w===1)return m(y,C,b);if(w===3)return C;throw new Error("unknown padding")};function p(v,x){var g=v.modulus.byteLength(),b=f("sha1").update(u.alloc(0)).digest(),w=b.length;if(x[0]!==0)throw new Error("decryption error");var y=x.slice(1,w+1),T=x.slice(w+1),C=h(y,o(T,w)),M=h(T,o(C,g-w-1));if(d(b,M.slice(0,w)))throw new Error("decryption error");for(var I=w;M[I]===0;)I++;if(M[I++]!==1)throw new Error("decryption error");return M.slice(I)}function m(v,x,g){for(var b=x.slice(0,2),w=2,y=0;x[w++]!==0;)if(w>=x.length){y++;break}var T=x.slice(2,w-1);if((b.toString("hex")!=="0002"&&!g||b.toString("hex")!=="0001"&&g)&&y++,T.length<8&&y++,y)throw new Error("decryption error");return x.slice(w)}function d(v,x){v=u.from(v),x=u.from(x);var g=0,b=v.length;v.length!==x.length&&(g++,b=Math.min(v.length,x.length));for(var w=-1;++w=0)throw new Error("data too long for modulus")}else throw new Error("unknown padding");return w?u(C,T):l(C,T)};function m(x,g){var b=x.modulus.byteLength(),w=g.length,y=h("sha1").update(p.alloc(0)).digest(),T=y.length,C=2*T;if(w>b-C-2)throw new Error("message too long");var M=p.alloc(b-w-C-2),I=b-T-1,B=o(T),U=a(p.concat([y,M,p.alloc(1,1),g],I),c(B,I)),j=a(B,c(U,T));return new f(p.concat([p.alloc(1),j,U],b))}function d(x,g,b){var w=g.length,y=x.modulus.byteLength();if(w>y-11)throw new Error("message too long");var T;return b?T=p.alloc(y-w-3,255):T=v(y-w-3),new f(p.concat([p.from([0,b?1:2]),T,p.alloc(1),g],y))}function v(x){for(var g=p.allocUnsafe(x),b=0,w=o(x*2),y=0,T;bc)throw new RangeError("requested too many random bytes");var d=f.allocUnsafe(p);if(p>0)if(p>h)for(var v=0;vp||b<0)throw new TypeError("offset must be a uint32");if(b>l||b>w)throw new RangeError("offset out of range")}function d(b,w,y){if(typeof b!="number"||b!==b)throw new TypeError("size must be a number");if(b>p||b<0)throw new TypeError("size must be a uint32");if(b+w>y||b>l)throw new RangeError("buffer too small")}u&&u.getRandomValues||!s.browser?(i.randomFill=v,i.randomFillSync=g):(i.randomFill=h,i.randomFillSync=h);function v(b,w,y,T){if(!f.isBuffer(b)&&!(b instanceof o.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if(typeof w=="function")T=w,w=0,y=b.length;else if(typeof y=="function")T=y,y=b.length-w;else if(typeof T!="function")throw new TypeError('"cb" argument must be a function');return m(w,b.length),d(y,w,b.length),x(b,w,y,T)}function x(b,w,y,T){if(s.browser){var C=b.buffer,M=new Uint8Array(C,w,y);if(u.getRandomValues(M),T){s.nextTick(function(){T(null,b)});return}return b}if(T){a(y,function(B,U){if(B)return T(B);U.copy(b,w),T(null,b)});return}var I=a(y);return I.copy(b,w),b}function g(b,w,y){if(typeof w>"u"&&(w=0),!f.isBuffer(b)&&!(b instanceof o.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return m(w,b.length),y===void 0&&(y=b.length-w),d(y,w,b.length),x(b,w,y)}}).call(this)}).call(this,e("_process"),typeof It<"u"?It:typeof self<"u"?self:typeof window<"u"?window:{})},{_process:467,randombytes:475,"safe-buffer":494}],477:[function(e,n,i){function s(u,p){u.prototype=Object.create(p.prototype),u.prototype.constructor=u,u.__proto__=p}var o={};function h(u,p,m){m||(m=Error);function d(x,g,b){return typeof p=="string"?p:p(x,g,b)}var v=function(x){s(g,x);function g(b,w,y){return x.call(this,d(b,w,y))||this}return g}(m);v.prototype.name=m.name,v.prototype.code=u,o[u]=v}function c(u,p){if(Array.isArray(u)){var m=u.length;return u=u.map(function(d){return String(d)}),m>2?"one of ".concat(p," ").concat(u.slice(0,m-1).join(", "),", or ")+u[m-1]:m===2?"one of ".concat(p," ").concat(u[0]," or ").concat(u[1]):"of ".concat(p," ").concat(u[0])}else return"of ".concat(p," ").concat(String(u))}function a(u,p,m){return u.substr(!m||m<0?0:+m,p.length)===p}function f(u,p,m){return(m===void 0||m>u.length)&&(m=u.length),u.substring(m-p.length,m)===p}function l(u,p,m){return typeof m!="number"&&(m=0),m+p.length>u.length?!1:u.indexOf(p,m)!==-1}h("ERR_INVALID_OPT_VALUE",function(u,p){return'The value "'+p+'" is invalid for option "'+u+'"'},TypeError),h("ERR_INVALID_ARG_TYPE",function(u,p,m){var d;typeof p=="string"&&a(p,"not ")?(d="must not be",p=p.replace(/^not /,"")):d="must be";var v;if(f(u," argument"))v="The ".concat(u," ").concat(d," ").concat(c(p,"type"));else{var x=l(u,".")?"property":"argument";v='The "'.concat(u,'" ').concat(x," ").concat(d," ").concat(c(p,"type"))}return v+=". Received type ".concat(typeof m),v},TypeError),h("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),h("ERR_METHOD_NOT_IMPLEMENTED",function(u){return"The "+u+" method is not implemented"}),h("ERR_STREAM_PREMATURE_CLOSE","Premature close"),h("ERR_STREAM_DESTROYED",function(u){return"Cannot call "+u+" after a stream was destroyed"}),h("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),h("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),h("ERR_STREAM_WRITE_AFTER_END","write after end"),h("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),h("ERR_UNKNOWN_ENCODING",function(u){return"Unknown encoding: "+u},TypeError),h("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),n.exports.codes=o},{}],478:[function(e,n,i){(function(s){(function(){var o=Object.keys||function(d){var v=[];for(var x in d)v.push(x);return v};n.exports=u;var h=e("./_stream_readable"),c=e("./_stream_writable");e("inherits")(u,h);for(var a=o(c.prototype),f=0;f0)if(typeof te!="string"&&!fe.objectMode&&Object.getPrototypeOf(te)!==f.prototype&&(te=u(te)),W)fe.endEmitted?j(ae,new M):_(ae,fe,te,!0);else if(fe.ended)j(ae,new T);else{if(fe.destroyed)return!1;fe.reading=!1,fe.decoder&&!Z?(te=fe.decoder.write(te),fe.objectMode||te.length!==0?_(ae,fe,te,!1):O(ae,fe)):_(ae,fe,te,!1)}else W||(fe.reading=!1,O(ae,fe))}return!fe.ended&&(fe.length=N?ae=N:(ae--,ae|=ae>>>1,ae|=ae>>>2,ae|=ae>>>4,ae|=ae>>>8,ae|=ae>>>16,ae++),ae}function D(ae,te){return ae<=0||te.length===0&&te.ended?0:te.objectMode?1:ae!==ae?te.flowing&&te.length?te.buffer.head.data.length:te.length:(ae>te.highWaterMark&&(te.highWaterMark=P(ae)),ae<=te.length?ae:te.ended?te.length:(te.needReadable=!0,0))}R.prototype.read=function(ae){d("read",ae),ae=parseInt(ae,10);var te=this._readableState,Z=ae;if(ae!==0&&(te.emittedReadable=!1),ae===0&&te.needReadable&&((te.highWaterMark!==0?te.length>=te.highWaterMark:te.length>0)||te.ended))return d("read: emitReadable",te.length,te.ended),te.length===0&&te.ended?Q(this):S(this),null;if(ae=D(ae,te),ae===0&&te.ended)return te.length===0&&Q(this),null;var W=te.needReadable;d("need readable",W),(te.length===0||te.length-ae0?V=K(ae,te):V=null,V===null?(te.needReadable=te.length<=te.highWaterMark,ae=0):(te.length-=ae,te.awaitDrain=0),te.length===0&&(te.ended||(te.needReadable=!0),Z!==ae&&te.ended&&Q(this)),V!==null&&this.emit("data",V),V};function A(ae,te){if(d("onEofChunk"),!te.ended){if(te.decoder){var Z=te.decoder.end();Z&&Z.length&&(te.buffer.push(Z),te.length+=te.objectMode?1:Z.length)}te.ended=!0,te.sync?S(ae):(te.needReadable=!1,te.emittedReadable||(te.emittedReadable=!0,E(ae)))}}function S(ae){var te=ae._readableState;d("emitReadable",te.needReadable,te.emittedReadable),te.needReadable=!1,te.emittedReadable||(d("emitReadable",te.flowing),te.emittedReadable=!0,s.nextTick(E,ae))}function E(ae){var te=ae._readableState;d("emitReadable_",te.destroyed,te.length,te.ended),!te.destroyed&&(te.length||te.ended)&&(ae.emit("readable"),te.emittedReadable=!1),te.needReadable=!te.flowing&&!te.ended&&te.length<=te.highWaterMark,q(ae)}function O(ae,te){te.readingMore||(te.readingMore=!0,s.nextTick(z,ae,te))}function z(ae,te){for(;!te.reading&&!te.ended&&(te.length1&&we(W.pipes,ae)!==-1)&&!ke&&(d("false write response, pause",W.awaitDrain),W.awaitDrain++),Z.pause())}function de(Ne){d("onerror",Ne),Ae(),ae.removeListener("error",de),c(ae,"error")===0&&j(ae,Ne)}G(ae,"error",de);function _e(){ae.removeListener("finish",Re),Ae()}ae.once("close",_e);function Re(){d("onfinish"),ae.removeListener("close",_e),Ae()}ae.once("finish",Re);function Ae(){d("unpipe"),Z.unpipe(ae)}return ae.emit("pipe",Z),W.flowing||(d("pipe resume"),Z.resume()),ae};function J(ae){return function(){var Z=ae._readableState;d("pipeOnDrain",Z.awaitDrain),Z.awaitDrain&&Z.awaitDrain--,Z.awaitDrain===0&&c(ae,"data")&&(Z.flowing=!0,q(ae))}}R.prototype.unpipe=function(ae){var te=this._readableState,Z={hasUnpiped:!1};if(te.pipesCount===0)return this;if(te.pipesCount===1)return ae&&ae!==te.pipes?this:(ae||(ae=te.pipes),te.pipes=null,te.pipesCount=0,te.flowing=!1,ae&&ae.emit("unpipe",this,Z),this);if(!ae){var W=te.pipes,V=te.pipesCount;te.pipes=null,te.pipesCount=0,te.flowing=!1;for(var fe=0;fe0,W.flowing!==!1&&this.resume()):ae==="readable"&&!W.endEmitted&&!W.readableListening&&(W.readableListening=W.needReadable=!0,W.flowing=!1,W.emittedReadable=!1,d("on readable",W.length,W.reading),W.length?S(this):W.reading||s.nextTick(se,this)),Z},R.prototype.addListener=R.prototype.on,R.prototype.removeListener=function(ae,te){var Z=a.prototype.removeListener.call(this,ae,te);return ae==="readable"&&s.nextTick(re,this),Z},R.prototype.removeAllListeners=function(ae){var te=a.prototype.removeAllListeners.apply(this,arguments);return(ae==="readable"||ae===void 0)&&s.nextTick(re,this),te};function re(ae){var te=ae._readableState;te.readableListening=ae.listenerCount("readable")>0,te.resumeScheduled&&!te.paused?te.flowing=!0:ae.listenerCount("data")>0&&ae.resume()}function se(ae){d("readable nexttick read 0"),ae.read(0)}R.prototype.resume=function(){var ae=this._readableState;return ae.flowing||(d("resume"),ae.flowing=!ae.readableListening,Ce(this,ae)),ae.paused=!1,this};function Ce(ae,te){te.resumeScheduled||(te.resumeScheduled=!0,s.nextTick(Y,ae,te))}function Y(ae,te){d("resume",te.reading),te.reading||ae.read(0),te.resumeScheduled=!1,ae.emit("resume"),q(ae),te.flowing&&!te.reading&&ae.read(0)}R.prototype.pause=function(){return d("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(d("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function q(ae){var te=ae._readableState;for(d("flow",te.flowing);te.flowing&&ae.read()!==null;);}R.prototype.wrap=function(ae){var te=this,Z=this._readableState,W=!1;ae.on("end",function(){if(d("wrapped end"),Z.decoder&&!Z.ended){var ye=Z.decoder.end();ye&&ye.length&&te.push(ye)}te.push(null)}),ae.on("data",function(ye){if(d("wrapped data"),Z.decoder&&(ye=Z.decoder.write(ye)),!(Z.objectMode&&ye==null)&&!(!Z.objectMode&&(!ye||!ye.length))){var X=te.push(ye);X||(W=!0,ae.pause())}});for(var V in ae)this[V]===void 0&&typeof ae[V]=="function"&&(this[V]=function(X){return function(){return ae[X].apply(ae,arguments)}}(V));for(var fe=0;fe=te.length?(te.decoder?Z=te.buffer.join(""):te.buffer.length===1?Z=te.buffer.first():Z=te.buffer.concat(te.length),te.buffer.clear()):Z=te.buffer.consume(ae,te.decoder),Z}function Q(ae){var te=ae._readableState;d("endReadable",te.endEmitted),te.endEmitted||(te.ended=!0,s.nextTick(he,te,ae))}function he(ae,te){if(d("endReadableNT",ae.endEmitted,ae.length),!ae.endEmitted&&ae.length===0&&(ae.endEmitted=!0,te.readable=!1,te.emit("end"),ae.autoDestroy)){var Z=te._writableState;(!Z||Z.autoDestroy&&Z.finished)&&te.destroy()}}typeof Symbol=="function"&&(R.from=function(ae,te){return U===void 0&&(U=e("./internal/streams/from")),U(R,ae,te)});function we(ae,te){for(var Z=0,W=ae.length;Z-1))throw new B(K);return this._writableState.defaultEncoding=K,this},Object.defineProperty(L.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function _(q,K,Q){return!q.objectMode&&q.decodeStrings!==!1&&typeof K=="string"&&(K=l.from(K,Q)),K}Object.defineProperty(L.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function k(q,K,Q,he,we,ae){if(!Q){var te=_(K,he,we);he!==te&&(Q=!0,we="buffer",he=te)}var Z=K.objectMode?1:he.length;K.length+=Z;var W=K.length0?this.tail.next=T:this.head=T,this.tail=T,++this.length}},{key:"unshift",value:function(y){var T={data:y,next:this.head};this.length===0&&(this.tail=T),this.head=T,++this.length}},{key:"shift",value:function(){if(this.length!==0){var y=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,y}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(y){if(this.length===0)return"";for(var T=this.head,C=""+T.data;T=T.next;)C+=y+T.data;return C}},{key:"concat",value:function(y){if(this.length===0)return m.alloc(0);for(var T=m.allocUnsafe(y>>>0),C=this.head,M=0;C;)g(C.data,T,M),M+=C.data.length,C=C.next;return T}},{key:"consume",value:function(y,T){var C;return yI.length?I.length:y;if(B===I.length?M+=I:M+=I.slice(0,y),y-=B,y===0){B===I.length?(++C,T.next?this.head=T.next:this.head=this.tail=null):(this.head=T,T.data=I.slice(B));break}++C}return this.length-=C,M}},{key:"_getBuffer",value:function(y){var T=m.allocUnsafe(y),C=this.head,M=1;for(C.data.copy(T),y-=C.data.length;C=C.next;){var I=C.data,B=y>I.length?I.length:y;if(I.copy(T,T.length-y,0,B),y-=B,y===0){B===I.length?(++M,C.next?this.head=C.next:this.head=this.tail=null):(this.head=C,C.data=I.slice(B));break}++M}return this.length-=M,T}},{key:x,value:function(y,T){return v(this,o(o({},T),{},{depth:0,customInspect:!1}))}}]),b}()},{buffer:220,util:188}],485:[function(e,n,i){(function(s){(function(){function o(u,p){var m=this,d=this._readableState&&this._readableState.destroyed,v=this._writableState&&this._writableState.destroyed;return d||v?(p?p(u):u&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,s.nextTick(f,this,u)):s.nextTick(f,this,u)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(u||null,function(x){!p&&x?m._writableState?m._writableState.errorEmitted?s.nextTick(c,m):(m._writableState.errorEmitted=!0,s.nextTick(h,m,x)):s.nextTick(h,m,x):p?(s.nextTick(c,m),p(x)):s.nextTick(c,m)}),this)}function h(u,p){f(u,p),c(u)}function c(u){u._writableState&&!u._writableState.emitClose||u._readableState&&!u._readableState.emitClose||u.emit("close")}function a(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function f(u,p){u.emit("error",p)}function l(u,p){var m=u._readableState,d=u._writableState;m&&m.autoDestroy||d&&d.autoDestroy?u.destroy(p):u.emit("error",p)}n.exports={destroy:o,undestroy:a,errorOrDestroy:l}}).call(this)}).call(this,e("_process"))},{_process:467}],486:[function(e,n,i){var s=e("../../../errors").codes.ERR_STREAM_PREMATURE_CLOSE;function o(f){var l=!1;return function(){if(!l){l=!0;for(var u=arguments.length,p=new Array(u),m=0;m0;return u(C,I,B,function(U){y||(y=U),U&&T.forEach(p),!I&&(T.forEach(p),w(y))})});return g.reduce(m)}n.exports=v},{"../../../errors":477,"./end-of-stream":486}],489:[function(e,n,i){var s=e("../../../errors").codes.ERR_INVALID_OPT_VALUE;function o(c,a,f){return c.highWaterMark!=null?c.highWaterMark:a?c[f]:null}function h(c,a,f,l){var u=o(a,l,f);if(u!=null){if(!(isFinite(u)&&Math.floor(u)===u)||u<0){var p=l?f:"highWaterMark";throw new s(p,u)}return Math.floor(u)}return c.objectMode?16:16*1024}n.exports={getHighWaterMark:h}},{"../../../errors":477}],490:[function(e,n,i){n.exports=e("events").EventEmitter},{events:422}],491:[function(e,n,i){i=n.exports=e("./lib/_stream_readable.js"),i.Stream=i,i.Readable=i,i.Writable=e("./lib/_stream_writable.js"),i.Duplex=e("./lib/_stream_duplex.js"),i.Transform=e("./lib/_stream_transform.js"),i.PassThrough=e("./lib/_stream_passthrough.js"),i.finished=e("./lib/internal/streams/end-of-stream.js"),i.pipeline=e("./lib/internal/streams/pipeline.js")},{"./lib/_stream_duplex.js":478,"./lib/_stream_passthrough.js":479,"./lib/_stream_readable.js":480,"./lib/_stream_transform.js":481,"./lib/_stream_writable.js":482,"./lib/internal/streams/end-of-stream.js":486,"./lib/internal/streams/pipeline.js":488}],492:[function(e,n,i){var s=function(o){var h=Object.prototype,c=h.hasOwnProperty,a=Object.defineProperty||function(A,S,E){A[S]=E.value},f,l=typeof Symbol=="function"?Symbol:{},u=l.iterator||"@@iterator",p=l.asyncIterator||"@@asyncIterator",m=l.toStringTag||"@@toStringTag";function d(A,S,E){return Object.defineProperty(A,S,{value:E,enumerable:!0,configurable:!0,writable:!0}),A[S]}try{d({},"")}catch{d=function(S,E,O){return S[E]=O}}function v(A,S,E,O){var z=S&&S.prototype instanceof C?S:C,J=Object.create(z.prototype),re=new N(O||[]);return a(J,"_invoke",{value:R(A,E,re)}),J}o.wrap=v;function x(A,S,E){try{return{type:"normal",arg:A.call(S,E)}}catch(O){return{type:"throw",arg:O}}}var g="suspendedStart",b="suspendedYield",w="executing",y="completed",T={};function C(){}function M(){}function I(){}var B={};d(B,u,function(){return this});var U=Object.getPrototypeOf,j=U&&U(U(P([])));j&&j!==h&&c.call(j,u)&&(B=j);var H=I.prototype=C.prototype=Object.create(B);M.prototype=I,a(H,"constructor",{value:I,configurable:!0}),a(I,"constructor",{value:M,configurable:!0}),M.displayName=d(I,m,"GeneratorFunction");function G(A){["next","throw","return"].forEach(function(S){d(A,S,function(E){return this._invoke(S,E)})})}o.isGeneratorFunction=function(A){var S=typeof A=="function"&&A.constructor;return S?S===M||(S.displayName||S.name)==="GeneratorFunction":!1},o.mark=function(A){return Object.setPrototypeOf?Object.setPrototypeOf(A,I):(A.__proto__=I,d(A,m,"GeneratorFunction")),A.prototype=Object.create(H),A},o.awrap=function(A){return{__await:A}};function L(A,S){function E(J,re,se,Ce){var Y=x(A[J],A,re);if(Y.type==="throw")Ce(Y.arg);else{var q=Y.arg,K=q.value;return K&&typeof K=="object"&&c.call(K,"__await")?S.resolve(K.__await).then(function(Q){E("next",Q,se,Ce)},function(Q){E("throw",Q,se,Ce)}):S.resolve(K).then(function(Q){q.value=Q,se(q)},function(Q){return E("throw",Q,se,Ce)})}}var O;function z(J,re){function se(){return new S(function(Ce,Y){E(J,re,Ce,Y)})}return O=O?O.then(se,se):se()}a(this,"_invoke",{value:z})}G(L.prototype),d(L.prototype,p,function(){return this}),o.AsyncIterator=L,o.async=function(A,S,E,O,z){z===void 0&&(z=Promise);var J=new L(v(A,S,E,O),z);return o.isGeneratorFunction(S)?J:J.next().then(function(re){return re.done?re.value:J.next()})};function R(A,S,E){var O=g;return function(J,re){if(O===w)throw new Error("Generator is already running");if(O===y){if(J==="throw")throw re;return D()}for(E.method=J,E.arg=re;;){var se=E.delegate;if(se){var Ce=F(se,E);if(Ce){if(Ce===T)continue;return Ce}}if(E.method==="next")E.sent=E._sent=E.arg;else if(E.method==="throw"){if(O===g)throw O=y,E.arg;E.dispatchException(E.arg)}else E.method==="return"&&E.abrupt("return",E.arg);O=w;var Y=x(A,S,E);if(Y.type==="normal"){if(O=E.done?y:b,Y.arg===T)continue;return{value:Y.arg,done:E.done}}else Y.type==="throw"&&(O=y,E.method="throw",E.arg=Y.arg)}}}function F(A,S){var E=S.method,O=A.iterator[E];if(O===f)return S.delegate=null,E==="throw"&&A.iterator.return&&(S.method="return",S.arg=f,F(A,S),S.method==="throw")||E!=="return"&&(S.method="throw",S.arg=new TypeError("The iterator does not provide a '"+E+"' method")),T;var z=x(O,A.iterator,S.arg);if(z.type==="throw")return S.method="throw",S.arg=z.arg,S.delegate=null,T;var J=z.arg;if(!J)return S.method="throw",S.arg=new TypeError("iterator result is not an object"),S.delegate=null,T;if(J.done)S[A.resultName]=J.value,S.next=A.nextLoc,S.method!=="return"&&(S.method="next",S.arg=f);else return J;return S.delegate=null,T}G(H),d(H,m,"Generator"),d(H,u,function(){return this}),d(H,"toString",function(){return"[object Generator]"});function _(A){var S={tryLoc:A[0]};1 in A&&(S.catchLoc=A[1]),2 in A&&(S.finallyLoc=A[2],S.afterLoc=A[3]),this.tryEntries.push(S)}function k(A){var S=A.completion||{};S.type="normal",delete S.arg,A.completion=S}function N(A){this.tryEntries=[{tryLoc:"root"}],A.forEach(_,this),this.reset(!0)}o.keys=function(A){var S=Object(A),E=[];for(var O in S)E.push(O);return E.reverse(),function z(){for(;E.length;){var J=E.pop();if(J in S)return z.value=J,z.done=!1,z}return z.done=!0,z}};function P(A){if(A){var S=A[u];if(S)return S.call(A);if(typeof A.next=="function")return A;if(!isNaN(A.length)){var E=-1,O=function z(){for(;++E=0;--O){var z=this.tryEntries[O],J=z.completion;if(z.tryLoc==="root")return E("end");if(z.tryLoc<=this.prev){var re=c.call(z,"catchLoc"),se=c.call(z,"finallyLoc");if(re&&se){if(this.prev=0;--E){var O=this.tryEntries[E];if(O.tryLoc<=this.prev&&c.call(O,"finallyLoc")&&this.prev=0;--S){var E=this.tryEntries[S];if(E.finallyLoc===A)return this.complete(E.completion,E.afterLoc),k(E),T}},catch:function(A){for(var S=this.tryEntries.length-1;S>=0;--S){var E=this.tryEntries[S];if(E.tryLoc===A){var O=E.completion;if(O.type==="throw"){var z=O.arg;k(E)}return z}}throw new Error("illegal catch attempt")},delegateYield:function(A,S,E){return this.delegate={iterator:P(A),resultName:S,nextLoc:E},this.method==="next"&&(this.arg=f),T}},o}(typeof n=="object"?n.exports:{});try{regeneratorRuntime=s}catch{typeof globalThis=="object"?globalThis.regeneratorRuntime=s:Function("r","regeneratorRuntime = r")(s)}},{}],493:[function(e,n,i){var s=e("buffer").Buffer,o=e("inherits"),h=e("hash-base"),c=new Array(16),a=[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],f=[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],l=[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],u=[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],p=[0,1518500249,1859775393,2400959708,2840853838],m=[1352829926,1548603684,1836072691,2053994217,0];function d(){h.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}o(d,h),d.prototype._update=function(){for(var T=c,C=0;C<16;++C)T[C]=this._block.readInt32LE(C*4);for(var M=this._a|0,I=this._b|0,B=this._c|0,U=this._d|0,j=this._e|0,H=this._a|0,G=this._b|0,L=this._c|0,R=this._d|0,F=this._e|0,_=0;_<80;_+=1){var k,N;_<16?(k=x(M,I,B,U,j,T[a[_]],p[0],l[_]),N=y(H,G,L,R,F,T[f[_]],m[0],u[_])):_<32?(k=g(M,I,B,U,j,T[a[_]],p[1],l[_]),N=w(H,G,L,R,F,T[f[_]],m[1],u[_])):_<48?(k=b(M,I,B,U,j,T[a[_]],p[2],l[_]),N=b(H,G,L,R,F,T[f[_]],m[2],u[_])):_<64?(k=w(M,I,B,U,j,T[a[_]],p[3],l[_]),N=g(H,G,L,R,F,T[f[_]],m[3],u[_])):(k=y(M,I,B,U,j,T[a[_]],p[4],l[_]),N=x(H,G,L,R,F,T[f[_]],m[4],u[_])),M=j,j=U,U=v(B,10),B=I,I=k,H=F,F=R,R=v(L,10),L=G,G=N}var P=this._b+B+R|0;this._b=this._c+U+F|0,this._c=this._d+j+H|0,this._d=this._e+M+G|0,this._e=this._a+I+L|0,this._a=P},d.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var T=s.alloc?s.alloc(20):new s(20);return T.writeInt32LE(this._a,0),T.writeInt32LE(this._b,4),T.writeInt32LE(this._c,8),T.writeInt32LE(this._d,12),T.writeInt32LE(this._e,16),T};function v(T,C){return T<>>32-C}function x(T,C,M,I,B,U,j,H){return v(T+(C^M^I)+U+j|0,H)+B|0}function g(T,C,M,I,B,U,j,H){return v(T+(C&M|~C&I)+U+j|0,H)+B|0}function b(T,C,M,I,B,U,j,H){return v(T+((C|~M)^I)+U+j|0,H)+B|0}function w(T,C,M,I,B,U,j,H){return v(T+(C&I|M&~I)+U+j|0,H)+B|0}function y(T,C,M,I,B,U,j,H){return v(T+(C^(M|~I))+U+j|0,H)+B|0}n.exports=d},{buffer:220,"hash-base":425,inherits:440}],494:[function(e,n,i){/*! safe-buffer. MIT License. Feross Aboukhadijeh */var s=e("buffer"),o=s.Buffer;function h(a,f){for(var l in a)f[l]=a[l]}o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow?n.exports=s:(h(s,i),i.Buffer=c);function c(a,f,l){return o(a,f,l)}c.prototype=Object.create(o.prototype),h(o,c),c.from=function(a,f,l){if(typeof a=="number")throw new TypeError("Argument must not be a number");return o(a,f,l)},c.alloc=function(a,f,l){if(typeof a!="number")throw new TypeError("Argument must be a number");var u=o(a);return f!==void 0?typeof l=="string"?u.fill(f,l):u.fill(f):u.fill(0),u},c.allocUnsafe=function(a){if(typeof a!="number")throw new TypeError("Argument must be a number");return o(a)},c.allocUnsafeSlow=function(a){if(typeof a!="number")throw new TypeError("Argument must be a number");return s.SlowBuffer(a)}},{buffer:220}],495:[function(e,n,i){(function(s){(function(){var o=e("buffer"),h=o.Buffer,c={},a;for(a in o)o.hasOwnProperty(a)&&(a==="SlowBuffer"||a==="Buffer"||(c[a]=o[a]));var f=c.Buffer={};for(a in h)h.hasOwnProperty(a)&&(a==="allocUnsafe"||a==="allocUnsafeSlow"||(f[a]=h[a]));if(c.Buffer.prototype=h.prototype,(!f.from||f.from===Uint8Array.from)&&(f.from=function(l,u,p){if(typeof l=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof l);if(l&&typeof l.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof l);return h(l,u,p)}),f.alloc||(f.alloc=function(l,u,p){if(typeof l!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof l);if(l<0||l>=2*(1<<30))throw new RangeError('The value "'+l+'" is invalid for option "size"');var m=h(l);return!u||u.length===0?m.fill(0):typeof p=="string"?m.fill(u,p):m.fill(u),m}),!c.kStringMaxLength)try{c.kStringMaxLength=s.binding("buffer").kStringMaxLength}catch{}c.constants||(c.constants={MAX_LENGTH:c.kMaxLength},c.kStringMaxLength&&(c.constants.MAX_STRING_LENGTH=c.kStringMaxLength)),n.exports=c}).call(this)}).call(this,e("_process"))},{_process:467,buffer:220}],496:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0});const s=e("xmlchars/xml/1.0/ed5"),o=e("xmlchars/xml/1.1/ed2"),h=e("xmlchars/xmlns/1.0/ed3");var c=s.isS,a=s.isChar,f=s.isNameStartChar,l=s.isNameChar,u=s.S_LIST,p=s.NAME_RE,m=o.isChar,d=h.isNCNameStartChar,v=h.isNCNameChar,x=h.NC_NAME_RE;const g="http://www.w3.org/XML/1998/namespace",b="http://www.w3.org/2000/xmlns/",w={__proto__:null,xml:g,xmlns:b},y={__proto__:null,amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},T=-1,C=-2,M=0,I=1,B=2,U=3,j=4,H=5,G=6,L=7,R=8,F=9,_=10,k=11,N=12,P=13,D=14,A=15,S=16,E=17,O=18,z=19,J=20,re=21,se=22,Ce=23,Y=24,q=25,K=26,Q=27,he=28,we=29,ae=30,te=31,Z=32,W=33,V=34,fe=35,ye=36,X=37,ve=38,ke=39,ee=40,ne=41,de=42,_e=43,Re=44,Ae=9,Ne=10,Xe=13,Le=32,xe=33,Me=34,Be=38,Ve=39,ot=45,ct=47,rt=59,nt=60,mt=61,et=62,tt=63,vt=91,ft=93,kt=133,Tt=8232,lt=$e=>$e===Me||$e===Ve,Ct=[Me,Ve],Mt=[...Ct,vt,et],gt=[...Ct,nt,ft],ie=[mt,tt,...u],ge=[...u,et,Be,nt];function le($e,ce,Te){switch(ce){case"xml":Te!==g&&$e.fail(`xml prefix must be bound to ${g}.`);break;case"xmlns":Te!==b&&$e.fail(`xmlns prefix must be bound to ${b}.`);break}switch(Te){case b:$e.fail(ce===""?`the default namespace may not be set to ${Te}.`:`may not assign a prefix (even "xmlns") to the URI ${b}.`);break;case g:switch(ce){case"xml":break;case"":$e.fail(`the default namespace may not be set to ${Te}.`);break;default:$e.fail("may not assign the xml namespace to another prefix.")}break}}function ue($e,ce){for(const Te of Object.keys(ce))le($e,Te,ce[Te])}const pe=$e=>x.test($e),me=$e=>p.test($e),Ie=0,je=1,Fe=2;i.EVENTS=["xmldecl","text","processinginstruction","doctype","comment","opentagstart","attribute","opentag","closetag","cdata","error","end","ready"];const Pe={xmldecl:"xmldeclHandler",text:"textHandler",processinginstruction:"piHandler",doctype:"doctypeHandler",comment:"commentHandler",opentagstart:"openTagStartHandler",attribute:"attributeHandler",opentag:"openTagHandler",closetag:"closeTagHandler",cdata:"cdataHandler",error:"errorHandler",end:"endHandler",ready:"readyHandler"};class Oe{constructor(ce){this.opt=ce??{},this.fragmentOpt=!!this.opt.fragment;const Te=this.xmlnsOpt=!!this.opt.xmlns;if(this.trackPosition=this.opt.position!==!1,this.fileName=this.opt.fileName,Te){this.nameStartCheck=d,this.nameCheck=v,this.isName=pe,this.processAttribs=this.processAttribsNS,this.pushAttrib=this.pushAttribNS,this.ns=Object.assign({__proto__:null},w);const Ee=this.opt.additionalNamespaces;Ee!=null&&(ue(this,Ee),Object.assign(this.ns,Ee))}else this.nameStartCheck=f,this.nameCheck=l,this.isName=me,this.processAttribs=this.processAttribsPlain,this.pushAttrib=this.pushAttribPlain;this.stateTable=[this.sBegin,this.sBeginWhitespace,this.sDoctype,this.sDoctypeQuote,this.sDTD,this.sDTDQuoted,this.sDTDOpenWaka,this.sDTDOpenWakaBang,this.sDTDComment,this.sDTDCommentEnding,this.sDTDCommentEnded,this.sDTDPI,this.sDTDPIEnding,this.sText,this.sEntity,this.sOpenWaka,this.sOpenWakaBang,this.sComment,this.sCommentEnding,this.sCommentEnded,this.sCData,this.sCDataEnding,this.sCDataEnding2,this.sPIFirstChar,this.sPIRest,this.sPIBody,this.sPIEnding,this.sXMLDeclNameStart,this.sXMLDeclName,this.sXMLDeclEq,this.sXMLDeclValueStart,this.sXMLDeclValue,this.sXMLDeclSeparator,this.sXMLDeclEnding,this.sOpenTag,this.sOpenTagSlash,this.sAttrib,this.sAttribName,this.sAttribNameSawWhite,this.sAttribValue,this.sAttribValueQuoted,this.sAttribValueClosed,this.sAttribValueUnquoted,this.sCloseTag,this.sCloseTagSawWhite],this._init()}get closed(){return this._closed}_init(){var ce;this.openWakaBang="",this.text="",this.name="",this.piTarget="",this.entity="",this.q=null,this.tags=[],this.tag=null,this.topNS=null,this.chunk="",this.chunkPosition=0,this.i=0,this.prevI=0,this.carriedFromPrevious=void 0,this.forbiddenState=Ie,this.attribList=[];const{fragmentOpt:Te}=this;this.state=Te?P:M,this.reportedTextBeforeRoot=this.reportedTextAfterRoot=this.closedRoot=this.sawRoot=Te,this.xmlDeclPossible=!Te,this.xmlDeclExpects=["version"],this.entityReturnState=void 0;let{defaultXMLVersion:Ee}=this.opt;if(Ee===void 0){if(this.opt.forceXMLVersion===!0)throw new Error("forceXMLVersion set but defaultXMLVersion is not set");Ee="1.0"}this.setXMLVersion(Ee),this.positionAtNewLine=0,this.doctype=!1,this._closed=!1,this.xmlDecl={version:void 0,encoding:void 0,standalone:void 0},this.line=1,this.column=0,this.ENTITIES=Object.create(y),(ce=this.readyHandler)===null||ce===void 0||ce.call(this)}get position(){return this.chunkPosition+this.i}get columnIndex(){return this.position-this.positionAtNewLine}on(ce,Te){this[Pe[ce]]=Te}off(ce){this[Pe[ce]]=void 0}makeError(ce){var Te;let Ee=(Te=this.fileName)!==null&&Te!==void 0?Te:"";return this.trackPosition&&(Ee.length>0&&(Ee+=":"),Ee+=`${this.line}:${this.column}`),Ee.length>0&&(Ee+=": "),new Error(Ee+ce)}fail(ce){const Te=this.makeError(ce),Ee=this.errorHandler;if(Ee===void 0)throw Te;return Ee(Te),this}write(ce){if(this.closed)return this.fail("cannot write after close; assign an onready handler.");let Te=!1;ce===null?(Te=!0,ce=""):typeof ce=="object"&&(ce=ce.toString()),this.carriedFromPrevious!==void 0&&(ce=`${this.carriedFromPrevious}${ce}`,this.carriedFromPrevious=void 0);let Ee=ce.length;const Ue=ce.charCodeAt(Ee-1);!Te&&(Ue===Xe||Ue>=55296&&Ue<=56319)&&(this.carriedFromPrevious=ce[Ee-1],Ee--,ce=ce.slice(0,Ee));const{stateTable:Ke}=this;for(this.chunk=ce,this.i=0;this.i=ce.length)return T;const Ee=ce.charCodeAt(Te);if(this.column++,Ee<55296){if(Ee>=Le||Ee===Ae)return Ee;switch(Ee){case Ne:return this.line++,this.column=0,this.positionAtNewLine=this.position,Ne;case Xe:return ce.charCodeAt(Te+1)===Ne&&(this.i=Te+2),this.line++,this.column=0,this.positionAtNewLine=this.position,C;default:return this.fail("disallowed character."),Ee}}if(Ee>56319)return Ee>=57344&&Ee<=65533||this.fail("disallowed character."),Ee;const Ue=65536+(Ee-55296)*1024+(ce.charCodeAt(Te+1)-56320);return this.i=Te+2,Ue>1114111&&this.fail("disallowed character."),Ue}getCode11(){const{chunk:ce,i:Te}=this;if(this.prevI=Te,this.i=Te+1,Te>=ce.length)return T;const Ee=ce.charCodeAt(Te);if(this.column++,Ee<55296){if(Ee>31&&Ee<127||Ee>159&&Ee!==Tt||Ee===Ae)return Ee;switch(Ee){case Ne:return this.line++,this.column=0,this.positionAtNewLine=this.position,Ne;case Xe:{const Ke=ce.charCodeAt(Te+1);(Ke===Ne||Ke===kt)&&(this.i=Te+2)}case kt:case Tt:return this.line++,this.column=0,this.positionAtNewLine=this.position,C;default:return this.fail("disallowed character."),Ee}}if(Ee>56319)return Ee>=57344&&Ee<=65533||this.fail("disallowed character."),Ee;const Ue=65536+(Ee-55296)*1024+(ce.charCodeAt(Te+1)-56320);return this.i=Te+2,Ue>1114111&&this.fail("disallowed character."),Ue}getCodeNorm(){const ce=this.getCode();return ce===C?Ne:ce}unget(){this.i=this.prevI,this.column--}captureTo(ce){let{i:Te}=this;const{chunk:Ee}=this;for(;;){const Ue=this.getCode(),Ke=Ue===C,at=Ke?Ne:Ue;if(at===T||ce.includes(at))return this.text+=Ee.slice(Te,this.prevI),at;Ke&&(this.text+=`${Ee.slice(Te,this.prevI)} +`,Te=this.i)}}captureToChar(ce){let{i:Te}=this;const{chunk:Ee}=this;for(;;){let Ue=this.getCode();switch(Ue){case C:this.text+=`${Ee.slice(Te,this.prevI)} +`,Te=this.i,Ue=Ne;break;case T:return this.text+=Ee.slice(Te),!1}if(Ue===ce)return this.text+=Ee.slice(Te,this.prevI),!0}}captureNameChars(){const{chunk:ce,i:Te}=this;for(;;){const Ee=this.getCode();if(Ee===T)return this.name+=ce.slice(Te),T;if(!l(Ee))return this.name+=ce.slice(Te,this.prevI),Ee===C?Ne:Ee}}skipSpaces(){for(;;){const ce=this.getCodeNorm();if(ce===T||!c(ce))return ce}}setXMLVersion(ce){this.currentXMLVersion=ce,ce==="1.0"?(this.isChar=a,this.getCode=this.getCode10):(this.isChar=m,this.getCode=this.getCode11)}sBegin(){this.chunk.charCodeAt(0)===65279&&(this.i++,this.column++),this.state=I}sBeginWhitespace(){const ce=this.i,Te=this.skipSpaces();switch(this.prevI!==ce&&(this.xmlDeclPossible=!1),Te){case nt:if(this.state=A,this.text.length!==0)throw new Error("no-empty text at start");break;case T:break;default:this.unget(),this.state=P,this.xmlDeclPossible=!1}}sDoctype(){var ce;const Te=this.captureTo(Mt);switch(Te){case et:{(ce=this.doctypeHandler)===null||ce===void 0||ce.call(this,this.text),this.text="",this.state=P,this.doctype=!0;break}case T:break;default:this.text+=String.fromCodePoint(Te),Te===vt?this.state=j:lt(Te)&&(this.state=U,this.q=Te)}}sDoctypeQuote(){const ce=this.q;this.captureToChar(ce)&&(this.text+=String.fromCodePoint(ce),this.q=null,this.state=B)}sDTD(){const ce=this.captureTo(gt);ce!==T&&(this.text+=String.fromCodePoint(ce),ce===ft?this.state=B:ce===nt?this.state=G:lt(ce)&&(this.state=H,this.q=ce))}sDTDQuoted(){const ce=this.q;this.captureToChar(ce)&&(this.text+=String.fromCodePoint(ce),this.state=j,this.q=null)}sDTDOpenWaka(){const ce=this.getCodeNorm();switch(this.text+=String.fromCodePoint(ce),ce){case xe:this.state=L,this.openWakaBang="";break;case tt:this.state=k;break;default:this.state=j}}sDTDOpenWakaBang(){const ce=String.fromCodePoint(this.getCodeNorm()),Te=this.openWakaBang+=ce;this.text+=ce,Te!=="-"&&(this.state=Te==="--"?R:j,this.openWakaBang="")}sDTDComment(){this.captureToChar(ot)&&(this.text+="-",this.state=F)}sDTDCommentEnding(){const ce=this.getCodeNorm();this.text+=String.fromCodePoint(ce),this.state=ce===ot?_:R}sDTDCommentEnded(){const ce=this.getCodeNorm();this.text+=String.fromCodePoint(ce),ce===et?this.state=j:(this.fail("malformed comment."),this.state=R)}sDTDPI(){this.captureToChar(tt)&&(this.text+="?",this.state=N)}sDTDPIEnding(){const ce=this.getCodeNorm();this.text+=String.fromCodePoint(ce),ce===et&&(this.state=j)}sText(){this.tags.length!==0?this.handleTextInRoot():this.handleTextOutsideRoot()}sEntity(){let{i:ce}=this;const{chunk:Te}=this;e:for(;;)switch(this.getCode()){case C:this.entity+=`${Te.slice(ce,this.prevI)} +`,ce=this.i;break;case rt:{const{entityReturnState:Ee}=this,Ue=this.entity+Te.slice(ce,this.prevI);this.state=Ee;let Ke;Ue===""?(this.fail("empty entity name."),Ke="&;"):(Ke=this.parseEntity(Ue),this.entity=""),(Ee!==P||this.textHandler!==void 0)&&(this.text+=Ke);break e}case T:this.entity+=Te.slice(ce);break e}}sOpenWaka(){const ce=this.getCode();if(f(ce))this.state=V,this.unget(),this.xmlDeclPossible=!1;else switch(ce){case ct:this.state=_e,this.xmlDeclPossible=!1;break;case xe:this.state=S,this.openWakaBang="",this.xmlDeclPossible=!1;break;case tt:this.state=Ce;break;default:this.fail("disallowed character in tag name"),this.state=P,this.xmlDeclPossible=!1}}sOpenWakaBang(){switch(this.openWakaBang+=String.fromCodePoint(this.getCodeNorm()),this.openWakaBang){case"[CDATA[":!this.sawRoot&&!this.reportedTextBeforeRoot&&(this.fail("text data outside of root node."),this.reportedTextBeforeRoot=!0),this.closedRoot&&!this.reportedTextAfterRoot&&(this.fail("text data outside of root node."),this.reportedTextAfterRoot=!0),this.state=J,this.openWakaBang="";break;case"--":this.state=E,this.openWakaBang="";break;case"DOCTYPE":this.state=B,(this.doctype||this.sawRoot)&&this.fail("inappropriately located doctype declaration."),this.openWakaBang="";break;default:this.openWakaBang.length>=7&&this.fail("incorrect syntax.")}}sComment(){this.captureToChar(ot)&&(this.state=O)}sCommentEnding(){var ce;const Te=this.getCodeNorm();Te===ot?(this.state=z,(ce=this.commentHandler)===null||ce===void 0||ce.call(this,this.text),this.text=""):(this.text+=`-${String.fromCodePoint(Te)}`,this.state=E)}sCommentEnded(){const ce=this.getCodeNorm();ce!==et?(this.fail("malformed comment."),this.text+=`--${String.fromCodePoint(ce)}`,this.state=E):this.state=P}sCData(){this.captureToChar(ft)&&(this.state=re)}sCDataEnding(){const ce=this.getCodeNorm();ce===ft?this.state=se:(this.text+=`]${String.fromCodePoint(ce)}`,this.state=J)}sCDataEnding2(){var ce;const Te=this.getCodeNorm();switch(Te){case et:{(ce=this.cdataHandler)===null||ce===void 0||ce.call(this,this.text),this.text="",this.state=P;break}case ft:this.text+="]";break;default:this.text+=`]]${String.fromCodePoint(Te)}`,this.state=J}}sPIFirstChar(){const ce=this.getCodeNorm();this.nameStartCheck(ce)?(this.piTarget+=String.fromCodePoint(ce),this.state=Y):ce===tt||c(ce)?(this.fail("processing instruction without a target."),this.state=ce===tt?K:q):(this.fail("disallowed character in processing instruction name."),this.piTarget+=String.fromCodePoint(ce),this.state=Y)}sPIRest(){const{chunk:ce,i:Te}=this;for(;;){const Ee=this.getCodeNorm();if(Ee===T){this.piTarget+=ce.slice(Te);return}if(!this.nameCheck(Ee)){this.piTarget+=ce.slice(Te,this.prevI);const Ue=Ee===tt;Ue||c(Ee)?this.piTarget==="xml"?(this.xmlDeclPossible||this.fail("an XML declaration must be at the start of the document."),this.state=Ue?W:Q):this.state=Ue?K:q:(this.fail("disallowed character in processing instruction name."),this.piTarget+=String.fromCodePoint(Ee));break}}}sPIBody(){if(this.text.length===0){const ce=this.getCodeNorm();ce===tt?this.state=K:c(ce)||(this.text=String.fromCodePoint(ce))}else this.captureToChar(tt)&&(this.state=K)}sPIEnding(){var ce;const Te=this.getCodeNorm();if(Te===et){const{piTarget:Ee}=this;Ee.toLowerCase()==="xml"&&this.fail("the XML declaration must appear at the start of the document."),(ce=this.piHandler)===null||ce===void 0||ce.call(this,{target:Ee,body:this.text}),this.piTarget=this.text="",this.state=P}else Te===tt?this.text+="?":(this.text+=`?${String.fromCodePoint(Te)}`,this.state=q);this.xmlDeclPossible=!1}sXMLDeclNameStart(){const ce=this.skipSpaces();if(ce===tt){this.state=W;return}ce!==T&&(this.state=he,this.name=String.fromCodePoint(ce))}sXMLDeclName(){const ce=this.captureTo(ie);if(ce===tt){this.state=W,this.name+=this.text,this.text="",this.fail("XML declaration is incomplete.");return}if(c(ce)||ce===mt){if(this.name+=this.text,this.text="",!this.xmlDeclExpects.includes(this.name))switch(this.name.length){case 0:this.fail("did not expect any more name/value pairs.");break;case 1:this.fail(`expected the name ${this.xmlDeclExpects[0]}.`);break;default:this.fail(`expected one of ${this.xmlDeclExpects.join(", ")}`)}this.state=ce===mt?ae:we}}sXMLDeclEq(){const ce=this.getCodeNorm();if(ce===tt){this.state=W,this.fail("XML declaration is incomplete.");return}c(ce)||(ce!==mt&&this.fail("value required."),this.state=ae)}sXMLDeclValueStart(){const ce=this.getCodeNorm();if(ce===tt){this.state=W,this.fail("XML declaration is incomplete.");return}c(ce)||(lt(ce)?this.q=ce:(this.fail("value must be quoted."),this.q=Le),this.state=te)}sXMLDeclValue(){const ce=this.captureTo([this.q,tt]);if(ce===tt){this.state=W,this.text="",this.fail("XML declaration is incomplete.");return}if(ce===T)return;const Te=this.text;switch(this.text="",this.name){case"version":{this.xmlDeclExpects=["encoding","standalone"];const Ee=Te;this.xmlDecl.version=Ee,/^1\.[0-9]+$/.test(Ee)?this.opt.forceXMLVersion||this.setXMLVersion(Ee):this.fail("version number must match /^1\\.[0-9]+$/.");break}case"encoding":/^[A-Za-z][A-Za-z0-9._-]*$/.test(Te)||this.fail("encoding value must match /^[A-Za-z0-9][A-Za-z0-9._-]*$/."),this.xmlDeclExpects=["standalone"],this.xmlDecl.encoding=Te;break;case"standalone":Te!=="yes"&&Te!=="no"&&this.fail('standalone value must match "yes" or "no".'),this.xmlDeclExpects=[],this.xmlDecl.standalone=Te;break}this.name="",this.state=Z}sXMLDeclSeparator(){const ce=this.getCodeNorm();if(ce===tt){this.state=W;return}c(ce)||(this.fail("whitespace required."),this.unget()),this.state=Q}sXMLDeclEnding(){var ce;this.getCodeNorm()===et?(this.piTarget!=="xml"?this.fail("processing instructions are not allowed before root."):this.name!=="version"&&this.xmlDeclExpects.includes("version")&&this.fail("XML declaration must contain a version."),(ce=this.xmldeclHandler)===null||ce===void 0||ce.call(this,this.xmlDecl),this.name="",this.piTarget=this.text="",this.state=P):this.fail("The character ? is disallowed anywhere in XML declarations."),this.xmlDeclPossible=!1}sOpenTag(){var ce;const Te=this.captureNameChars();if(Te===T)return;const Ee=this.tag={name:this.name,attributes:Object.create(null)};switch(this.name="",this.xmlnsOpt&&(this.topNS=Ee.ns=Object.create(null)),(ce=this.openTagStartHandler)===null||ce===void 0||ce.call(this,Ee),this.sawRoot=!0,!this.fragmentOpt&&this.closedRoot&&this.fail("documents may contain only one root."),Te){case et:this.openTag();break;case ct:this.state=fe;break;default:c(Te)||this.fail("disallowed character in tag name."),this.state=ye}}sOpenTagSlash(){this.getCode()===et?this.openSelfClosingTag():(this.fail("forward-slash in opening tag not followed by >."),this.state=ye)}sAttrib(){const ce=this.skipSpaces();ce!==T&&(f(ce)?(this.unget(),this.state=X):ce===et?this.openTag():ce===ct?this.state=fe:this.fail("disallowed character in attribute name."))}sAttribName(){const ce=this.captureNameChars();ce===mt?this.state=ke:c(ce)?this.state=ve:ce===et?(this.fail("attribute without value."),this.pushAttrib(this.name,this.name),this.name=this.text="",this.openTag()):ce!==T&&this.fail("disallowed character in attribute name.")}sAttribNameSawWhite(){const ce=this.skipSpaces();switch(ce){case T:return;case mt:this.state=ke;break;default:this.fail("attribute without value."),this.text="",this.name="",ce===et?this.openTag():f(ce)?(this.unget(),this.state=X):(this.fail("disallowed character in attribute name."),this.state=ye)}}sAttribValue(){const ce=this.getCodeNorm();lt(ce)?(this.q=ce,this.state=ee):c(ce)||(this.fail("unquoted attribute value."),this.state=de,this.unget())}sAttribValueQuoted(){const{q:ce,chunk:Te}=this;let{i:Ee}=this;for(;;)switch(this.getCode()){case ce:this.pushAttrib(this.name,this.text+Te.slice(Ee,this.prevI)),this.name=this.text="",this.q=null,this.state=ne;return;case Be:this.text+=Te.slice(Ee,this.prevI),this.state=D,this.entityReturnState=ee;return;case Ne:case C:case Ae:this.text+=`${Te.slice(Ee,this.prevI)} `,Ee=this.i;break;case nt:this.text+=Te.slice(Ee,this.prevI),this.fail("disallowed character.");return;case T:this.text+=Te.slice(Ee);return}}sAttribValueClosed(){const ce=this.getCodeNorm();c(ce)?this.state=ye:ce===et?this.openTag():ce===ct?this.state=fe:f(ce)?(this.fail("no whitespace between attributes."),this.unget(),this.state=X):this.fail("disallowed character in attribute name.")}sAttribValueUnquoted(){const ce=this.captureTo(ge);switch(ce){case Be:this.state=D,this.entityReturnState=de;break;case nt:this.fail("disallowed character.");break;case T:break;default:this.text.includes("]]>")&&this.fail('the string "]]>" is disallowed in char data.'),this.pushAttrib(this.name,this.text),this.name=this.text="",ce===et?this.openTag():this.state=ye}}sCloseTag(){const ce=this.captureNameChars();ce===et?this.closeTag():c(ce)?this.state=Re:ce!==T&&this.fail("disallowed character in closing tag.")}sCloseTagSawWhite(){switch(this.skipSpaces()){case et:this.closeTag();break;case T:break;default:this.fail("disallowed character in closing tag.")}}handleTextInRoot(){let{i:ce,forbiddenState:Te}=this;const{chunk:Ee,textHandler:Ue}=this;e:for(;;)switch(this.getCode()){case nt:{if(this.state=A,Ue!==void 0){const{text:Ke}=this,at=Ee.slice(ce,this.prevI);Ke.length!==0?(Ue(Ke+at),this.text=""):at.length!==0&&Ue(at)}Te=Ie;break e}case Be:this.state=D,this.entityReturnState=P,Ue!==void 0&&(this.text+=Ee.slice(ce,this.prevI)),Te=Ie;break e;case ft:switch(Te){case Ie:Te=je;break;case je:Te=Fe;break;case Fe:break;default:throw new Error("impossible state")}break;case et:Te===Fe&&this.fail('the string "]]>" is disallowed in char data.'),Te=Ie;break;case C:Ue!==void 0&&(this.text+=`${Ee.slice(ce,this.prevI)} +`),ce=this.i,Te=Ie;break;case T:Ue!==void 0&&(this.text+=Ee.slice(ce));break e;default:Te=Ie}this.forbiddenState=Te}handleTextOutsideRoot(){let{i:ce}=this;const{chunk:Te,textHandler:Ee}=this;let Ue=!1;e:for(;;){const Ke=this.getCode();switch(Ke){case nt:{if(this.state=A,Ee!==void 0){const{text:at}=this,dt=Te.slice(ce,this.prevI);at.length!==0?(Ee(at+dt),this.text=""):dt.length!==0&&Ee(dt)}break e}case Be:this.state=D,this.entityReturnState=P,Ee!==void 0&&(this.text+=Te.slice(ce,this.prevI)),Ue=!0;break e;case C:Ee!==void 0&&(this.text+=`${Te.slice(ce,this.prevI)} +`),ce=this.i;break;case T:Ee!==void 0&&(this.text+=Te.slice(ce));break e;default:c(Ke)||(Ue=!0)}}Ue&&(!this.sawRoot&&!this.reportedTextBeforeRoot&&(this.fail("text data outside of root node."),this.reportedTextBeforeRoot=!0),this.closedRoot&&!this.reportedTextAfterRoot&&(this.fail("text data outside of root node."),this.reportedTextAfterRoot=!0))}pushAttribNS(ce,Te){var Ee;const{prefix:Ue,local:Ke}=this.qname(ce),at={name:ce,prefix:Ue,local:Ke,value:Te};if(this.attribList.push(at),(Ee=this.attributeHandler)===null||Ee===void 0||Ee.call(this,at),Ue==="xmlns"){const dt=Te.trim();this.currentXMLVersion==="1.0"&&dt===""&&this.fail("invalid attempt to undefine prefix in XML 1.0"),this.topNS[Ke]=dt,le(this,Ke,dt)}else if(ce==="xmlns"){const dt=Te.trim();this.topNS[""]=dt,le(this,"",dt)}}pushAttribPlain(ce,Te){var Ee;const Ue={name:ce,value:Te};this.attribList.push(Ue),(Ee=this.attributeHandler)===null||Ee===void 0||Ee.call(this,Ue)}end(){var ce,Te;this.sawRoot||this.fail("document must contain a root element.");const{tags:Ee}=this;for(;Ee.length>0;){const Ke=Ee.pop();this.fail(`unclosed tag: ${Ke.name}`)}this.state!==M&&this.state!==P&&this.fail("unexpected end.");const{text:Ue}=this;return Ue.length!==0&&((ce=this.textHandler)===null||ce===void 0||ce.call(this,Ue),this.text=""),this._closed=!0,(Te=this.endHandler)===null||Te===void 0||Te.call(this),this._init(),this}resolve(ce){var Te,Ee;let Ue=this.topNS[ce];if(Ue!==void 0)return Ue;const{tags:Ke}=this;for(let at=Ke.length-1;at>=0;at--)if(Ue=Ke[at].ns[ce],Ue!==void 0)return Ue;return Ue=this.ns[ce],Ue!==void 0?Ue:(Ee=(Te=this.opt).resolvePrefix)===null||Ee===void 0?void 0:Ee.call(Te,ce)}qname(ce){const Te=ce.indexOf(":");if(Te===-1)return{prefix:"",local:ce};const Ee=ce.slice(Te+1),Ue=ce.slice(0,Te);return(Ue===""||Ee===""||Ee.includes(":"))&&this.fail(`malformed name: ${ce}.`),{prefix:Ue,local:Ee}}processAttribsNS(){var ce;const{attribList:Te}=this,Ee=this.tag;{const{prefix:at,local:dt}=this.qname(Ee.name);Ee.prefix=at,Ee.local=dt;const Nt=Ee.uri=(ce=this.resolve(at))!==null&&ce!==void 0?ce:"";at!==""&&(at==="xmlns"&&this.fail('tags may not have "xmlns" as prefix.'),Nt===""&&(this.fail(`unbound namespace prefix: ${JSON.stringify(at)}.`),Ee.uri=at))}if(Te.length===0)return;const{attributes:Ue}=Ee,Ke=new Set;for(const at of Te){const{name:dt,prefix:Nt,local:pr}=at;let Jt,jt;Nt===""?(Jt=dt==="xmlns"?b:"",jt=dt):(Jt=this.resolve(Nt),Jt===void 0&&(this.fail(`unbound namespace prefix: ${JSON.stringify(Nt)}.`),Jt=Nt),jt=`{${Jt}}${pr}`),Ke.has(jt)&&this.fail(`duplicate attribute: ${jt}.`),Ke.add(jt),at.uri=Jt,Ue[dt]=at}this.attribList=[]}processAttribsPlain(){const{attribList:ce}=this,Te=this.tag.attributes;for(const{name:Ee,value:Ue}of ce)Te[Ee]!==void 0&&this.fail(`duplicate attribute: ${Ee}.`),Te[Ee]=Ue;this.attribList=[]}openTag(){var ce;this.processAttribs();const{tags:Te}=this,Ee=this.tag;Ee.isSelfClosing=!1,(ce=this.openTagHandler)===null||ce===void 0||ce.call(this,Ee),Te.push(Ee),this.state=P,this.name=""}openSelfClosingTag(){var ce,Te,Ee;this.processAttribs();const{tags:Ue}=this,Ke=this.tag;Ke.isSelfClosing=!0,(ce=this.openTagHandler)===null||ce===void 0||ce.call(this,Ke),(Te=this.closeTagHandler)===null||Te===void 0||Te.call(this,Ke),(this.tag=(Ee=Ue[Ue.length-1])!==null&&Ee!==void 0?Ee:null)===null&&(this.closedRoot=!0),this.state=P,this.name=""}closeTag(){const{tags:ce,name:Te}=this;if(this.state=P,this.name="",Te===""){this.fail("weird empty close tag."),this.text+="";return}const Ee=this.closeTagHandler;let Ue=ce.length;for(;Ue-- >0;){const Ke=this.tag=ce.pop();if(this.topNS=Ke.ns,Ee==null||Ee(Ke),Ke.name===Te)break;this.fail("unexpected close tag.")}Ue===0?this.closedRoot=!0:Ue<0&&(this.fail(`unmatched closing tag: ${Te}.`),this.text+=``)}parseEntity(ce){if(ce[0]!=="#"){const Ee=this.ENTITIES[ce];return Ee!==void 0?Ee:(this.fail(this.isName(ce)?"undefined entity.":"disallowed character in entity name."),`&${ce};`)}let Te=NaN;return ce[1]==="x"&&/^#x[0-9a-f]+$/i.test(ce)?Te=parseInt(ce.slice(2),16):/^#[0-9]+$/.test(ce)&&(Te=parseInt(ce.slice(1),10)),this.isChar(Te)?String.fromCodePoint(Te):(this.fail("malformed character entity."),`&${ce};`)}}i.SaxesParser=Oe},{"xmlchars/xml/1.0/ed5":543,"xmlchars/xml/1.1/ed2":544,"xmlchars/xmlns/1.0/ed3":545}],497:[function(e,n,i){var s=e("safe-buffer").Buffer;function o(h,c){this._block=s.alloc(h),this._finalSize=c,this._blockSize=h,this._len=0}o.prototype.update=function(h,c){typeof h=="string"&&(c=c||"utf8",h=s.from(h,c));for(var a=this._block,f=this._blockSize,l=h.length,u=this._len,p=0;p=this._finalSize&&(this._update(this._block),this._block.fill(0));var a=this._len*8;if(a<=4294967295)this._block.writeUInt32BE(a,this._blockSize-4);else{var f=(a&4294967295)>>>0,l=(a-f)/4294967296;this._block.writeUInt32BE(l,this._blockSize-8),this._block.writeUInt32BE(f,this._blockSize-4)}this._update(this._block);var u=this._hash();return h?u.toString(h):u},o.prototype._update=function(){throw new Error("_update must be implemented by subclass")},n.exports=o},{"safe-buffer":494}],498:[function(e,n,i){var s=n.exports=function(h){h=h.toLowerCase();var c=s[h];if(!c)throw new Error(h+" is not supported (we accept pull requests)");return new c};s.sha=e("./sha"),s.sha1=e("./sha1"),s.sha224=e("./sha224"),s.sha256=e("./sha256"),s.sha384=e("./sha384"),s.sha512=e("./sha512")},{"./sha":499,"./sha1":500,"./sha224":501,"./sha256":502,"./sha384":503,"./sha512":504}],499:[function(e,n,i){var s=e("inherits"),o=e("./hash"),h=e("safe-buffer").Buffer,c=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function f(){this.init(),this._w=a,o.call(this,64,56)}s(f,o),f.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function l(m){return m<<5|m>>>27}function u(m){return m<<30|m>>>2}function p(m,d,v,x){return m===0?d&v|~d&x:m===2?d&v|d&x|v&x:d^v^x}f.prototype._update=function(m){for(var d=this._w,v=this._a|0,x=this._b|0,g=this._c|0,b=this._d|0,w=this._e|0,y=0;y<16;++y)d[y]=m.readInt32BE(y*4);for(;y<80;++y)d[y]=d[y-3]^d[y-8]^d[y-14]^d[y-16];for(var T=0;T<80;++T){var C=~~(T/20),M=l(v)+p(C,x,g,b)+w+d[T]+c[C]|0;w=b,b=g,g=u(x),x=v,v=M}this._a=v+this._a|0,this._b=x+this._b|0,this._c=g+this._c|0,this._d=b+this._d|0,this._e=w+this._e|0},f.prototype._hash=function(){var m=h.allocUnsafe(20);return m.writeInt32BE(this._a|0,0),m.writeInt32BE(this._b|0,4),m.writeInt32BE(this._c|0,8),m.writeInt32BE(this._d|0,12),m.writeInt32BE(this._e|0,16),m},n.exports=f},{"./hash":497,inherits:440,"safe-buffer":494}],500:[function(e,n,i){var s=e("inherits"),o=e("./hash"),h=e("safe-buffer").Buffer,c=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function f(){this.init(),this._w=a,o.call(this,64,56)}s(f,o),f.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function l(d){return d<<1|d>>>31}function u(d){return d<<5|d>>>27}function p(d){return d<<30|d>>>2}function m(d,v,x,g){return d===0?v&x|~v&g:d===2?v&x|v&g|x&g:v^x^g}f.prototype._update=function(d){for(var v=this._w,x=this._a|0,g=this._b|0,b=this._c|0,w=this._d|0,y=this._e|0,T=0;T<16;++T)v[T]=d.readInt32BE(T*4);for(;T<80;++T)v[T]=l(v[T-3]^v[T-8]^v[T-14]^v[T-16]);for(var C=0;C<80;++C){var M=~~(C/20),I=u(x)+m(M,g,b,w)+y+v[C]+c[M]|0;y=w,w=b,b=p(g),g=x,x=I}this._a=x+this._a|0,this._b=g+this._b|0,this._c=b+this._c|0,this._d=w+this._d|0,this._e=y+this._e|0},f.prototype._hash=function(){var d=h.allocUnsafe(20);return d.writeInt32BE(this._a|0,0),d.writeInt32BE(this._b|0,4),d.writeInt32BE(this._c|0,8),d.writeInt32BE(this._d|0,12),d.writeInt32BE(this._e|0,16),d},n.exports=f},{"./hash":497,inherits:440,"safe-buffer":494}],501:[function(e,n,i){var s=e("inherits"),o=e("./sha256"),h=e("./hash"),c=e("safe-buffer").Buffer,a=new Array(64);function f(){this.init(),this._w=a,h.call(this,64,56)}s(f,o),f.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},f.prototype._hash=function(){var l=c.allocUnsafe(28);return l.writeInt32BE(this._a,0),l.writeInt32BE(this._b,4),l.writeInt32BE(this._c,8),l.writeInt32BE(this._d,12),l.writeInt32BE(this._e,16),l.writeInt32BE(this._f,20),l.writeInt32BE(this._g,24),l},n.exports=f},{"./hash":497,"./sha256":502,inherits:440,"safe-buffer":494}],502:[function(e,n,i){var s=e("inherits"),o=e("./hash"),h=e("safe-buffer").Buffer,c=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],a=new Array(64);function f(){this.init(),this._w=a,o.call(this,64,56)}s(f,o),f.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function l(x,g,b){return b^x&(g^b)}function u(x,g,b){return x&g|b&(x|g)}function p(x){return(x>>>2|x<<30)^(x>>>13|x<<19)^(x>>>22|x<<10)}function m(x){return(x>>>6|x<<26)^(x>>>11|x<<21)^(x>>>25|x<<7)}function d(x){return(x>>>7|x<<25)^(x>>>18|x<<14)^x>>>3}function v(x){return(x>>>17|x<<15)^(x>>>19|x<<13)^x>>>10}f.prototype._update=function(x){for(var g=this._w,b=this._a|0,w=this._b|0,y=this._c|0,T=this._d|0,C=this._e|0,M=this._f|0,I=this._g|0,B=this._h|0,U=0;U<16;++U)g[U]=x.readInt32BE(U*4);for(;U<64;++U)g[U]=v(g[U-2])+g[U-7]+d(g[U-15])+g[U-16]|0;for(var j=0;j<64;++j){var H=B+m(C)+l(C,M,I)+c[j]+g[j]|0,G=p(b)+u(b,w,y)|0;B=I,I=M,M=C,C=T+H|0,T=y,y=w,w=b,b=H+G|0}this._a=b+this._a|0,this._b=w+this._b|0,this._c=y+this._c|0,this._d=T+this._d|0,this._e=C+this._e|0,this._f=M+this._f|0,this._g=I+this._g|0,this._h=B+this._h|0},f.prototype._hash=function(){var x=h.allocUnsafe(32);return x.writeInt32BE(this._a,0),x.writeInt32BE(this._b,4),x.writeInt32BE(this._c,8),x.writeInt32BE(this._d,12),x.writeInt32BE(this._e,16),x.writeInt32BE(this._f,20),x.writeInt32BE(this._g,24),x.writeInt32BE(this._h,28),x},n.exports=f},{"./hash":497,inherits:440,"safe-buffer":494}],503:[function(e,n,i){var s=e("inherits"),o=e("./sha512"),h=e("./hash"),c=e("safe-buffer").Buffer,a=new Array(160);function f(){this.init(),this._w=a,h.call(this,128,112)}s(f,o),f.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},f.prototype._hash=function(){var l=c.allocUnsafe(48);function u(p,m,d){l.writeInt32BE(p,d),l.writeInt32BE(m,d+4)}return u(this._ah,this._al,0),u(this._bh,this._bl,8),u(this._ch,this._cl,16),u(this._dh,this._dl,24),u(this._eh,this._el,32),u(this._fh,this._fl,40),l},n.exports=f},{"./hash":497,"./sha512":504,inherits:440,"safe-buffer":494}],504:[function(e,n,i){var s=e("inherits"),o=e("./hash"),h=e("safe-buffer").Buffer,c=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],a=new Array(160);function f(){this.init(),this._w=a,o.call(this,128,112)}s(f,o),f.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function l(w,y,T){return T^w&(y^T)}function u(w,y,T){return w&y|T&(w|y)}function p(w,y){return(w>>>28|y<<4)^(y>>>2|w<<30)^(y>>>7|w<<25)}function m(w,y){return(w>>>14|y<<18)^(w>>>18|y<<14)^(y>>>9|w<<23)}function d(w,y){return(w>>>1|y<<31)^(w>>>8|y<<24)^w>>>7}function v(w,y){return(w>>>1|y<<31)^(w>>>8|y<<24)^(w>>>7|y<<25)}function x(w,y){return(w>>>19|y<<13)^(y>>>29|w<<3)^w>>>6}function g(w,y){return(w>>>19|y<<13)^(y>>>29|w<<3)^(w>>>6|y<<26)}function b(w,y){return w>>>0>>0?1:0}f.prototype._update=function(w){for(var y=this._w,T=this._ah|0,C=this._bh|0,M=this._ch|0,I=this._dh|0,B=this._eh|0,U=this._fh|0,j=this._gh|0,H=this._hh|0,G=this._al|0,L=this._bl|0,R=this._cl|0,F=this._dl|0,_=this._el|0,k=this._fl|0,N=this._gl|0,P=this._hl|0,D=0;D<32;D+=2)y[D]=w.readInt32BE(D*4),y[D+1]=w.readInt32BE(D*4+4);for(;D<160;D+=2){var A=y[D-30],S=y[D-15*2+1],E=d(A,S),O=v(S,A);A=y[D-2*2],S=y[D-2*2+1];var z=x(A,S),J=g(S,A),re=y[D-7*2],se=y[D-7*2+1],Ce=y[D-16*2],Y=y[D-16*2+1],q=O+se|0,K=E+re+b(q,O)|0;q=q+J|0,K=K+z+b(q,J)|0,q=q+Y|0,K=K+Ce+b(q,Y)|0,y[D]=K,y[D+1]=q}for(var Q=0;Q<160;Q+=2){K=y[Q],q=y[Q+1];var he=u(T,C,M),we=u(G,L,R),ae=p(T,G),te=p(G,T),Z=m(B,_),W=m(_,B),V=c[Q],fe=c[Q+1],ye=l(B,U,j),X=l(_,k,N),ve=P+W|0,ke=H+Z+b(ve,P)|0;ve=ve+X|0,ke=ke+ye+b(ve,X)|0,ve=ve+fe|0,ke=ke+V+b(ve,fe)|0,ve=ve+q|0,ke=ke+K+b(ve,q)|0;var ee=te+we|0,ne=ae+he+b(ee,te)|0;H=j,P=N,j=U,N=k,U=B,k=_,_=F+ve|0,B=I+ke+b(_,F)|0,I=M,F=R,M=C,R=L,C=T,L=G,G=ve+ee|0,T=ke+ne+b(G,ve)|0}this._al=this._al+G|0,this._bl=this._bl+L|0,this._cl=this._cl+R|0,this._dl=this._dl+F|0,this._el=this._el+_|0,this._fl=this._fl+k|0,this._gl=this._gl+N|0,this._hl=this._hl+P|0,this._ah=this._ah+T+b(this._al,G)|0,this._bh=this._bh+C+b(this._bl,L)|0,this._ch=this._ch+M+b(this._cl,R)|0,this._dh=this._dh+I+b(this._dl,F)|0,this._eh=this._eh+B+b(this._el,_)|0,this._fh=this._fh+U+b(this._fl,k)|0,this._gh=this._gh+j+b(this._gl,N)|0,this._hh=this._hh+H+b(this._hl,P)|0},f.prototype._hash=function(){var w=h.allocUnsafe(64);function y(T,C,M){w.writeInt32BE(T,M),w.writeInt32BE(C,M+4)}return y(this._ah,this._al,0),y(this._bh,this._bl,8),y(this._ch,this._cl,16),y(this._dh,this._dl,24),y(this._eh,this._el,32),y(this._fh,this._fl,40),y(this._gh,this._gl,48),y(this._hh,this._hl,56),w},n.exports=f},{"./hash":497,inherits:440,"safe-buffer":494}],505:[function(e,n,i){n.exports=h;var s=e("events").EventEmitter,o=e("inherits");o(h,s),h.Readable=e("readable-stream/readable.js"),h.Writable=e("readable-stream/writable.js"),h.Duplex=e("readable-stream/duplex.js"),h.Transform=e("readable-stream/transform.js"),h.PassThrough=e("readable-stream/passthrough.js"),h.Stream=h;function h(){s.call(this)}h.prototype.pipe=function(c,a){var f=this;function l(g){c.writable&&c.write(g)===!1&&f.pause&&f.pause()}f.on("data",l);function u(){f.readable&&f.resume&&f.resume()}c.on("drain",u),!c._isStdio&&(!a||a.end!==!1)&&(f.on("end",m),f.on("close",d));var p=!1;function m(){p||(p=!0,c.end())}function d(){p||(p=!0,typeof c.destroy=="function"&&c.destroy())}function v(g){if(x(),s.listenerCount(this,"error")===0)throw g}f.on("error",v),c.on("error",v);function x(){f.removeListener("data",l),c.removeListener("drain",u),f.removeListener("end",m),f.removeListener("close",d),f.removeListener("error",v),c.removeListener("error",v),f.removeListener("end",x),f.removeListener("close",x),c.removeListener("close",x)}return f.on("end",x),f.on("close",x),c.on("close",x),c.emit("pipe",f),c}},{events:422,inherits:440,"readable-stream/duplex.js":507,"readable-stream/passthrough.js":516,"readable-stream/readable.js":517,"readable-stream/transform.js":518,"readable-stream/writable.js":519}],506:[function(e,n,i){var s={}.toString;n.exports=Array.isArray||function(o){return s.call(o)=="[object Array]"}},{}],507:[function(e,n,i){n.exports=e("./lib/_stream_duplex.js")},{"./lib/_stream_duplex.js":508}],508:[function(e,n,i){var s=e("process-nextick-args"),o=Object.keys||function(v){var x=[];for(var g in v)x.push(g);return x};n.exports=p;var h=Object.create(e("core-util-is"));h.inherits=e("inherits");var c=e("./_stream_readable"),a=e("./_stream_writable");h.inherits(p,c);for(var f=o(a.prototype),l=0;l0?(typeof Q!="string"&&!te.objectMode&&Object.getPrototypeOf(Q)!==u.prototype&&(Q=m(Q)),we?te.endEmitted?K.emit("error",new Error("stream.unshift() after end event")):U(K,te,Q,!0):te.ended?K.emit("error",new Error("stream.push() after EOF")):(te.reading=!1,te.decoder&&!he?(Q=te.decoder.write(Q),te.objectMode||Q.length!==0?U(K,te,Q,!1):N(K,te)):U(K,te,Q,!1))):we||(te.reading=!1)}return H(te)}function U(K,Q,he,we){Q.flowing&&Q.length===0&&!Q.sync?(K.emit("data",he),K.read(0)):(Q.length+=Q.objectMode?1:he.length,we?Q.buffer.unshift(he):Q.buffer.push(he),Q.needReadable&&_(K)),N(K,Q)}function j(K,Q){var he;return!d(Q)&&typeof Q!="string"&&Q!==void 0&&!K.objectMode&&(he=new TypeError("Invalid non-string/buffer chunk")),he}function H(K){return!K.ended&&(K.needReadable||K.length=G?K=G:(K--,K|=K>>>1,K|=K>>>2,K|=K>>>4,K|=K>>>8,K|=K>>>16,K++),K}function R(K,Q){return K<=0||Q.length===0&&Q.ended?0:Q.objectMode?1:K!==K?Q.flowing&&Q.length?Q.buffer.head.data.length:Q.length:(K>Q.highWaterMark&&(Q.highWaterMark=L(K)),K<=Q.length?K:Q.ended?Q.length:(Q.needReadable=!0,0))}I.prototype.read=function(K){g("read",K),K=parseInt(K,10);var Q=this._readableState,he=K;if(K!==0&&(Q.emittedReadable=!1),K===0&&Q.needReadable&&(Q.length>=Q.highWaterMark||Q.ended))return g("read: emitReadable",Q.length,Q.ended),Q.length===0&&Q.ended?Ce(this):_(this),null;if(K=R(K,Q),K===0&&Q.ended)return Q.length===0&&Ce(this),null;var we=Q.needReadable;g("need readable",we),(Q.length===0||Q.length-K0?ae=z(K,Q):ae=null,ae===null?(Q.needReadable=!0,K=0):Q.length-=K,Q.length===0&&(Q.ended||(Q.needReadable=!0),he!==K&&Q.ended&&Ce(this)),ae!==null&&this.emit("data",ae),ae};function F(K,Q){if(!Q.ended){if(Q.decoder){var he=Q.decoder.end();he&&he.length&&(Q.buffer.push(he),Q.length+=Q.objectMode?1:he.length)}Q.ended=!0,_(K)}}function _(K){var Q=K._readableState;Q.needReadable=!1,Q.emittedReadable||(g("emitReadable",Q.flowing),Q.emittedReadable=!0,Q.sync?h.nextTick(k,K):k(K))}function k(K){g("emit readable"),K.emit("readable"),O(K)}function N(K,Q){Q.readingMore||(Q.readingMore=!0,h.nextTick(P,K,Q))}function P(K,Q){for(var he=Q.length;!Q.reading&&!Q.flowing&&!Q.ended&&Q.length1&&q(we.pipes,K)!==-1)&&!fe&&(g("false write response, pause",we.awaitDrain),we.awaitDrain++,X=!0),he.pause())}function ke(_e){g("onerror",_e),de(),K.removeListener("error",ke),f(K,"error")===0&&K.emit("error",_e)}C(K,"error",ke);function ee(){K.removeListener("finish",ne),de()}K.once("close",ee);function ne(){g("onfinish"),K.removeListener("close",ee),de()}K.once("finish",ne);function de(){g("unpipe"),he.unpipe(K)}return K.emit("pipe",he),we.flowing||(g("pipe resume"),he.resume()),K};function D(K){return function(){var Q=K._readableState;g("pipeOnDrain",Q.awaitDrain),Q.awaitDrain&&Q.awaitDrain--,Q.awaitDrain===0&&f(K,"data")&&(Q.flowing=!0,O(K))}}I.prototype.unpipe=function(K){var Q=this._readableState,he={hasUnpiped:!1};if(Q.pipesCount===0)return this;if(Q.pipesCount===1)return K&&K!==Q.pipes?this:(K||(K=Q.pipes),Q.pipes=null,Q.pipesCount=0,Q.flowing=!1,K&&K.emit("unpipe",this,he),this);if(!K){var we=Q.pipes,ae=Q.pipesCount;Q.pipes=null,Q.pipesCount=0,Q.flowing=!1;for(var te=0;te=Q.length?(Q.decoder?he=Q.buffer.join(""):Q.buffer.length===1?he=Q.buffer.head.data:he=Q.buffer.concat(Q.length),Q.buffer.clear()):he=J(K,Q.buffer,Q.decoder),he}function J(K,Q,he){var we;return Kte.length?te.length:K;if(Z===te.length?ae+=te:ae+=te.slice(0,K),K-=Z,K===0){Z===te.length?(++we,he.next?Q.head=he.next:Q.head=Q.tail=null):(Q.head=he,he.data=te.slice(Z));break}++we}return Q.length-=we,ae}function se(K,Q){var he=u.allocUnsafe(K),we=Q.head,ae=1;for(we.data.copy(he),K-=we.data.length;we=we.next;){var te=we.data,Z=K>te.length?te.length:K;if(te.copy(he,he.length-K,0,Z),K-=Z,K===0){Z===te.length?(++ae,we.next?Q.head=we.next:Q.head=Q.tail=null):(Q.head=we,we.data=te.slice(Z));break}++ae}return Q.length-=ae,he}function Ce(K){var Q=K._readableState;if(Q.length>0)throw new Error('"endReadable()" called on non-empty stream');Q.endEmitted||(Q.ended=!0,h.nextTick(Y,Q,K))}function Y(K,Q){!K.endEmitted&&K.length===0&&(K.endEmitted=!0,Q.readable=!1,Q.emit("end"))}function q(K,Q){for(var he=0,we=K.length;he-1?h:c.nextTick,l;C.WritableState=y;var u=Object.create(e("core-util-is"));u.inherits=e("inherits");var p={deprecate:e("util-deprecate")},m=e("./internal/streams/stream"),d=e("safe-buffer").Buffer,v=(typeof o<"u"?o:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function x(E){return d.from(E)}function g(E){return d.isBuffer(E)||E instanceof v}var b=e("./internal/streams/destroy");u.inherits(C,m);function w(){}function y(E,O){l=l||e("./_stream_duplex"),E=E||{};var z=O instanceof l;this.objectMode=!!E.objectMode,z&&(this.objectMode=this.objectMode||!!E.writableObjectMode);var J=E.highWaterMark,re=E.writableHighWaterMark,se=this.objectMode?16:16*1024;J||J===0?this.highWaterMark=J:z&&(re||re===0)?this.highWaterMark=re:this.highWaterMark=se,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var Ce=E.decodeStrings===!1;this.decodeStrings=!Ce,this.defaultEncoding=E.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Y){L(O,Y)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}y.prototype.getBuffer=function(){for(var O=this.bufferedRequest,z=[];O;)z.push(O),O=O.next;return z},function(){try{Object.defineProperty(y.prototype,"buffer",{get:p.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var T;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(T=Function.prototype[Symbol.hasInstance],Object.defineProperty(C,Symbol.hasInstance,{value:function(E){return T.call(this,E)?!0:this!==C?!1:E&&E._writableState instanceof y}})):T=function(E){return E instanceof this};function C(E){if(l=l||e("./_stream_duplex"),!T.call(C,this)&&!(this instanceof l))return new C(E);this._writableState=new y(E,this),this.writable=!0,E&&(typeof E.write=="function"&&(this._write=E.write),typeof E.writev=="function"&&(this._writev=E.writev),typeof E.destroy=="function"&&(this._destroy=E.destroy),typeof E.final=="function"&&(this._final=E.final)),m.call(this)}C.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function M(E,O){var z=new Error("write after end");E.emit("error",z),c.nextTick(O,z)}function I(E,O,z,J){var re=!0,se=!1;return z===null?se=new TypeError("May not write null values to stream"):typeof z!="string"&&z!==void 0&&!O.objectMode&&(se=new TypeError("Invalid non-string/buffer chunk")),se&&(E.emit("error",se),c.nextTick(J,se),re=!1),re}C.prototype.write=function(E,O,z){var J=this._writableState,re=!1,se=!J.objectMode&&g(E);return se&&!d.isBuffer(E)&&(E=x(E)),typeof O=="function"&&(z=O,O=null),se?O="buffer":O||(O=J.defaultEncoding),typeof z!="function"&&(z=w),J.ended?M(this,z):(se||I(this,J,E,z))&&(J.pendingcb++,re=U(this,J,se,E,O,z)),re},C.prototype.cork=function(){var E=this._writableState;E.corked++},C.prototype.uncork=function(){var E=this._writableState;E.corked&&(E.corked--,!E.writing&&!E.corked&&!E.bufferProcessing&&E.bufferedRequest&&_(this,E))},C.prototype.setDefaultEncoding=function(O){if(typeof O=="string"&&(O=O.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((O+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+O);return this._writableState.defaultEncoding=O,this};function B(E,O,z){return!E.objectMode&&E.decodeStrings!==!1&&typeof O=="string"&&(O=d.from(O,z)),O}Object.defineProperty(C.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function U(E,O,z,J,re,se){if(!z){var Ce=B(O,J,re);J!==Ce&&(z=!0,re="buffer",J=Ce)}var Y=O.objectMode?1:J.length;O.length+=Y;var q=O.length0?this.tail.next=u:this.head=u,this.tail=u,++this.length},a.prototype.unshift=function(l){var u={data:l,next:this.head};this.length===0&&(this.tail=u),this.head=u,++this.length},a.prototype.shift=function(){if(this.length!==0){var l=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,l}},a.prototype.clear=function(){this.head=this.tail=null,this.length=0},a.prototype.join=function(l){if(this.length===0)return"";for(var u=this.head,p=""+u.data;u=u.next;)p+=l+u.data;return p},a.prototype.concat=function(l){if(this.length===0)return o.alloc(0);for(var u=o.allocUnsafe(l>>>0),p=this.head,m=0;p;)c(p.data,u,m),m+=p.data.length,p=p.next;return u},a}(),h&&h.inspect&&h.inspect.custom&&(n.exports.prototype[h.inspect.custom]=function(){var a=h.inspect({length:this.length});return this.constructor.name+" "+a})},{"safe-buffer":520,util:188}],514:[function(e,n,i){var s=e("process-nextick-args");function o(a,f){var l=this,u=this._readableState&&this._readableState.destroyed,p=this._writableState&&this._writableState.destroyed;return u||p?(f?f(a):a&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,s.nextTick(c,this,a)):s.nextTick(c,this,a)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(a||null,function(m){!f&&m?l._writableState?l._writableState.errorEmitted||(l._writableState.errorEmitted=!0,s.nextTick(c,l,m)):s.nextTick(c,l,m):f&&f(m)}),this)}function h(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function c(a,f){a.emit("error",f)}n.exports={destroy:o,undestroy:h}},{"process-nextick-args":466}],515:[function(e,n,i){arguments[4][490][0].apply(i,arguments)},{dup:490,events:422}],516:[function(e,n,i){n.exports=e("./readable").PassThrough},{"./readable":517}],517:[function(e,n,i){i=n.exports=e("./lib/_stream_readable.js"),i.Stream=i,i.Readable=i,i.Writable=e("./lib/_stream_writable.js"),i.Duplex=e("./lib/_stream_duplex.js"),i.Transform=e("./lib/_stream_transform.js"),i.PassThrough=e("./lib/_stream_passthrough.js")},{"./lib/_stream_duplex.js":508,"./lib/_stream_passthrough.js":509,"./lib/_stream_readable.js":510,"./lib/_stream_transform.js":511,"./lib/_stream_writable.js":512}],518:[function(e,n,i){n.exports=e("./readable").Transform},{"./readable":517}],519:[function(e,n,i){n.exports=e("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":512}],520:[function(e,n,i){arguments[4][217][0].apply(i,arguments)},{buffer:220,dup:217}],521:[function(e,n,i){arguments[4][218][0].apply(i,arguments)},{dup:218,"safe-buffer":520}],522:[function(e,n,i){arguments[4][218][0].apply(i,arguments)},{dup:218,"safe-buffer":494}],523:[function(e,n,i){(function(s,o){(function(){var h=e("process/browser.js").nextTick,c=Function.prototype.apply,a=Array.prototype.slice,f={},l=0;i.setTimeout=function(){return new u(c.call(setTimeout,window,arguments),clearTimeout)},i.setInterval=function(){return new u(c.call(setInterval,window,arguments),clearInterval)},i.clearTimeout=i.clearInterval=function(p){p.close()};function u(p,m){this._id=p,this._clearFn=m}u.prototype.unref=u.prototype.ref=function(){},u.prototype.close=function(){this._clearFn.call(window,this._id)},i.enroll=function(p,m){clearTimeout(p._idleTimeoutId),p._idleTimeout=m},i.unenroll=function(p){clearTimeout(p._idleTimeoutId),p._idleTimeout=-1},i._unrefActive=i.active=function(p){clearTimeout(p._idleTimeoutId);var m=p._idleTimeout;m>=0&&(p._idleTimeoutId=setTimeout(function(){p._onTimeout&&p._onTimeout()},m))},i.setImmediate=typeof s=="function"?s:function(p){var m=l++,d=arguments.length<2?!1:a.call(arguments,1);return f[m]=!0,h(function(){f[m]&&(d?p.apply(null,d):p.call(null),i.clearImmediate(m))}),m},i.clearImmediate=typeof o=="function"?o:function(p){delete f[p]}}).call(this)}).call(this,e("timers").setImmediate,e("timers").clearImmediate)},{"process/browser.js":467,timers:523}],524:[function(e,n,i){(function(s){(function(){n.exports=o;function o(c,a){if(h("noDeprecation"))return c;var f=!1;function l(){if(!f){if(h("throwDeprecation"))throw new Error(a);h("traceDeprecation")?console.trace(a):console.warn(a),f=!0}return c.apply(this,arguments)}return l}function h(c){try{if(!s.localStorage)return!1}catch{return!1}var a=s.localStorage[c];return a==null?!1:String(a).toLowerCase()==="true"}}).call(this)}).call(this,typeof It<"u"?It:typeof self<"u"?self:typeof window<"u"?window:{})},{}],525:[function(e,n,i){typeof Object.create=="function"?n.exports=function(o,h){o.super_=h,o.prototype=Object.create(h.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}})}:n.exports=function(o,h){o.super_=h;var c=function(){};c.prototype=h.prototype,o.prototype=new c,o.prototype.constructor=o}},{}],526:[function(e,n,i){n.exports=function(o){return o&&typeof o=="object"&&typeof o.copy=="function"&&typeof o.fill=="function"&&typeof o.readUInt8=="function"}},{}],527:[function(e,n,i){(function(s,o){(function(){var h=/%[sdj%]/g;i.format=function(A){if(!I(A)){for(var S=[],E=0;E=z)return se;switch(se){case"%s":return String(O[E++]);case"%d":return Number(O[E++]);case"%j":try{return JSON.stringify(O[E++])}catch{return"[Circular]"}default:return se}}),re=O[E];E=3&&(E.depth=arguments[2]),arguments.length>=4&&(E.colors=arguments[3]),y(S)?E.showHidden=S:S&&i._extend(E,S),U(E.showHidden)&&(E.showHidden=!1),U(E.depth)&&(E.depth=2),U(E.colors)&&(E.colors=!1),U(E.customInspect)&&(E.customInspect=!0),E.colors&&(E.stylize=l),m(E,A,E.depth)}i.inspect=f,f.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},f.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function l(A,S){var E=f.styles[S];return E?"\x1B["+f.colors[E][0]+"m"+A+"\x1B["+f.colors[E][1]+"m":A}function u(A,S){return A}function p(A){var S={};return A.forEach(function(E,O){S[E]=!0}),S}function m(A,S,E){if(A.customInspect&&S&&R(S.inspect)&&S.inspect!==i.inspect&&!(S.constructor&&S.constructor.prototype===S)){var O=S.inspect(E,A);return I(O)||(O=m(A,O,E)),O}var z=d(A,S);if(z)return z;var J=Object.keys(S),re=p(J);if(A.showHidden&&(J=Object.getOwnPropertyNames(S)),L(S)&&(J.indexOf("message")>=0||J.indexOf("description")>=0))return v(S);if(J.length===0){if(R(S)){var se=S.name?": "+S.name:"";return A.stylize("[Function"+se+"]","special")}if(j(S))return A.stylize(RegExp.prototype.toString.call(S),"regexp");if(G(S))return A.stylize(Date.prototype.toString.call(S),"date");if(L(S))return v(S)}var Ce="",Y=!1,q=["{","}"];if(w(S)&&(Y=!0,q=["[","]"]),R(S)){var K=S.name?": "+S.name:"";Ce=" [Function"+K+"]"}if(j(S)&&(Ce=" "+RegExp.prototype.toString.call(S)),G(S)&&(Ce=" "+Date.prototype.toUTCString.call(S)),L(S)&&(Ce=" "+v(S)),J.length===0&&(!Y||S.length==0))return q[0]+Ce+q[1];if(E<0)return j(S)?A.stylize(RegExp.prototype.toString.call(S),"regexp"):A.stylize("[Object]","special");A.seen.push(S);var Q;return Y?Q=x(A,S,E,re,J):Q=J.map(function(he){return g(A,S,E,re,he,Y)}),A.seen.pop(),b(Q,Ce,q)}function d(A,S){if(U(S))return A.stylize("undefined","undefined");if(I(S)){var E="'"+JSON.stringify(S).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return A.stylize(E,"string")}if(M(S))return A.stylize(""+S,"number");if(y(S))return A.stylize(""+S,"boolean");if(T(S))return A.stylize("null","null")}function v(A){return"["+Error.prototype.toString.call(A)+"]"}function x(A,S,E,O,z){for(var J=[],re=0,se=S.length;re-1&&(J?se=se.split(` +`).map(function(Y){return" "+Y}).join(` +`).substr(2):se=` +`+se.split(` +`).map(function(Y){return" "+Y}).join(` +`))):se=A.stylize("[Circular]","special")),U(re)){if(J&&z.match(/^\d+$/))return se;re=JSON.stringify(""+z),re.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(re=re.substr(1,re.length-2),re=A.stylize(re,"name")):(re=re.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),re=A.stylize(re,"string"))}return re+": "+se}function b(A,S,E){var O=A.reduce(function(z,J){return J.indexOf(` +`)>=0,z+J.replace(/\u001b\[\d\d?m/g,"").length+1},0);return O>60?E[0]+(S===""?"":S+` + `)+" "+A.join(`, + `)+" "+E[1]:E[0]+S+" "+A.join(", ")+" "+E[1]}function w(A){return Array.isArray(A)}i.isArray=w;function y(A){return typeof A=="boolean"}i.isBoolean=y;function T(A){return A===null}i.isNull=T;function C(A){return A==null}i.isNullOrUndefined=C;function M(A){return typeof A=="number"}i.isNumber=M;function I(A){return typeof A=="string"}i.isString=I;function B(A){return typeof A=="symbol"}i.isSymbol=B;function U(A){return A===void 0}i.isUndefined=U;function j(A){return H(A)&&_(A)==="[object RegExp]"}i.isRegExp=j;function H(A){return typeof A=="object"&&A!==null}i.isObject=H;function G(A){return H(A)&&_(A)==="[object Date]"}i.isDate=G;function L(A){return H(A)&&(_(A)==="[object Error]"||A instanceof Error)}i.isError=L;function R(A){return typeof A=="function"}i.isFunction=R;function F(A){return A===null||typeof A=="boolean"||typeof A=="number"||typeof A=="string"||typeof A=="symbol"||typeof A>"u"}i.isPrimitive=F,i.isBuffer=e("./support/isBuffer");function _(A){return Object.prototype.toString.call(A)}function k(A){return A<10?"0"+A.toString(10):A.toString(10)}var N=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function P(){var A=new Date,S=[k(A.getHours()),k(A.getMinutes()),k(A.getSeconds())].join(":");return[A.getDate(),N[A.getMonth()],S].join(" ")}i.log=function(){console.log("%s - %s",P(),i.format.apply(i,arguments))},i.inherits=e("inherits"),i._extend=function(A,S){if(!S||!H(S))return A;for(var E=Object.keys(S),O=E.length;O--;)A[E[O]]=S[E[O]];return A};function D(A,S){return Object.prototype.hasOwnProperty.call(A,S)}}).call(this)}).call(this,e("_process"),typeof It<"u"?It:typeof self<"u"?self:typeof window<"u"?window:{})},{"./support/isBuffer":526,_process:467,inherits:525}],528:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),Object.defineProperty(i,"v1",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(i,"v3",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(i,"v4",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(i,"v5",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(i,"NIL",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(i,"version",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(i,"validate",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(i,"stringify",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(i,"parse",{enumerable:!0,get:function(){return p.default}});var s=m(e("./v1.js")),o=m(e("./v3.js")),h=m(e("./v4.js")),c=m(e("./v5.js")),a=m(e("./nil.js")),f=m(e("./version.js")),l=m(e("./validate.js")),u=m(e("./stringify.js")),p=m(e("./parse.js"));function m(d){return d&&d.__esModule?d:{default:d}}},{"./nil.js":530,"./parse.js":531,"./stringify.js":535,"./v1.js":536,"./v3.js":537,"./v4.js":539,"./v5.js":540,"./validate.js":541,"./version.js":542}],529:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.default=void 0;function s(g){if(typeof g=="string"){const b=unescape(encodeURIComponent(g));g=new Uint8Array(b.length);for(let w=0;w>5]>>>T%32&255,M=parseInt(y.charAt(C>>>4&15)+y.charAt(C&15),16);b.push(M)}return b}function h(g){return(g+64>>>9<<4)+14+1}function c(g,b){g[b>>5]|=128<>5]|=(g[y/8]&255)<>16)+(b>>16)+(w>>16)<<16|w&65535}function l(g,b){return g<>>32-b}function u(g,b,w,y,T,C){return f(l(f(f(b,g),f(y,C)),T),w)}function p(g,b,w,y,T,C,M){return u(b&w|~b&y,g,b,T,C,M)}function m(g,b,w,y,T,C,M){return u(b&y|w&~y,g,b,T,C,M)}function d(g,b,w,y,T,C,M){return u(b^w^y,g,b,T,C,M)}function v(g,b,w,y,T,C,M){return u(w^(b|~y),g,b,T,C,M)}var x=s;i.default=x},{}],530:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.default=void 0;var s="00000000-0000-0000-0000-000000000000";i.default=s},{}],531:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.default=void 0;var s=o(e("./validate.js"));function o(a){return a&&a.__esModule?a:{default:a}}function h(a){if(!(0,s.default)(a))throw TypeError("Invalid UUID");let f;const l=new Uint8Array(16);return l[0]=(f=parseInt(a.slice(0,8),16))>>>24,l[1]=f>>>16&255,l[2]=f>>>8&255,l[3]=f&255,l[4]=(f=parseInt(a.slice(9,13),16))>>>8,l[5]=f&255,l[6]=(f=parseInt(a.slice(14,18),16))>>>8,l[7]=f&255,l[8]=(f=parseInt(a.slice(19,23),16))>>>8,l[9]=f&255,l[10]=(f=parseInt(a.slice(24,36),16))/1099511627776&255,l[11]=f/4294967296&255,l[12]=f>>>24&255,l[13]=f>>>16&255,l[14]=f>>>8&255,l[15]=f&255,l}var c=h;i.default=c},{"./validate.js":541}],532:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.default=void 0;var s=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;i.default=s},{}],533:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.default=h;let s;const o=new Uint8Array(16);function h(){if(!s&&(s=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!s))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return s(o)}},{}],534:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.default=void 0;function s(a,f,l,u){switch(a){case 0:return f&l^~f&u;case 1:return f^l^u;case 2:return f&l^f&u^l&u;case 3:return f^l^u}}function o(a,f){return a<>>32-f}function h(a){const f=[1518500249,1859775393,2400959708,3395469782],l=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof a=="string"){const d=unescape(encodeURIComponent(a));a=[];for(let v=0;v>>0;y=w,w=b,b=o(g,30)>>>0,g=x,x=M}l[0]=l[0]+x>>>0,l[1]=l[1]+g>>>0,l[2]=l[2]+b>>>0,l[3]=l[3]+w>>>0,l[4]=l[4]+y>>>0}return[l[0]>>24&255,l[0]>>16&255,l[0]>>8&255,l[0]&255,l[1]>>24&255,l[1]>>16&255,l[1]>>8&255,l[1]&255,l[2]>>24&255,l[2]>>16&255,l[2]>>8&255,l[2]&255,l[3]>>24&255,l[3]>>16&255,l[3]>>8&255,l[3]&255,l[4]>>24&255,l[4]>>16&255,l[4]>>8&255,l[4]&255]}var c=h;i.default=c},{}],535:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.default=void 0;var s=o(e("./validate.js"));function o(f){return f&&f.__esModule?f:{default:f}}const h=[];for(let f=0;f<256;++f)h.push((f+256).toString(16).substr(1));function c(f){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;const u=(h[f[l+0]]+h[f[l+1]]+h[f[l+2]]+h[f[l+3]]+"-"+h[f[l+4]]+h[f[l+5]]+"-"+h[f[l+6]]+h[f[l+7]]+"-"+h[f[l+8]]+h[f[l+9]]+"-"+h[f[l+10]]+h[f[l+11]]+h[f[l+12]]+h[f[l+13]]+h[f[l+14]]+h[f[l+15]]).toLowerCase();if(!(0,s.default)(u))throw TypeError("Stringified UUID is invalid");return u}var a=c;i.default=a},{"./validate.js":541}],536:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.default=void 0;var s=h(e("./rng.js")),o=h(e("./stringify.js"));function h(m){return m&&m.__esModule?m:{default:m}}let c,a,f=0,l=0;function u(m,d,v){let x=d&&v||0;const g=d||new Array(16);m=m||{};let b=m.node||c,w=m.clockseq!==void 0?m.clockseq:a;if(b==null||w==null){const B=m.random||(m.rng||s.default)();b==null&&(b=c=[B[0]|1,B[1],B[2],B[3],B[4],B[5]]),w==null&&(w=a=(B[6]<<8|B[7])&16383)}let y=m.msecs!==void 0?m.msecs:Date.now(),T=m.nsecs!==void 0?m.nsecs:l+1;const C=y-f+(T-l)/1e4;if(C<0&&m.clockseq===void 0&&(w=w+1&16383),(C<0||y>f)&&m.nsecs===void 0&&(T=0),T>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");f=y,l=T,a=w,y+=122192928e5;const M=((y&268435455)*1e4+T)%4294967296;g[x++]=M>>>24&255,g[x++]=M>>>16&255,g[x++]=M>>>8&255,g[x++]=M&255;const I=y/4294967296*1e4&268435455;g[x++]=I>>>8&255,g[x++]=I&255,g[x++]=I>>>24&15|16,g[x++]=I>>>16&255,g[x++]=w>>>8|128,g[x++]=w&255;for(let B=0;B<6;++B)g[x+B]=b[B];return d||(0,o.default)(g)}var p=u;i.default=p},{"./rng.js":533,"./stringify.js":535}],537:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.default=void 0;var s=h(e("./v35.js")),o=h(e("./md5.js"));function h(f){return f&&f.__esModule?f:{default:f}}var a=(0,s.default)("v3",48,o.default);i.default=a},{"./md5.js":529,"./v35.js":538}],538:[function(e,n,i){Object.defineProperty(i,"__esModule",{value:!0}),i.default=l,i.URL=i.DNS=void 0;var s=h(e("./stringify.js")),o=h(e("./parse.js"));function h(u){return u&&u.__esModule?u:{default:u}}function c(u){u=unescape(encodeURIComponent(u));const p=[];for(let m=0;m=c&&p<=55295||p===o||p===h||p===s||p>=57344&&p<=65533||p>=65536&&p<=1114111}i.isChar=a;function f(p){return p===c||p===o||p===h||p===s}i.isS=f;function l(p){return p>=65&&p<=90||p>=97&&p<=122||p===58||p===95||p===8204||p===8205||p>=192&&p<=214||p>=216&&p<=246||p>=248&&p<=767||p>=880&&p<=893||p>=895&&p<=8191||p>=8304&&p<=8591||p>=11264&&p<=12271||p>=12289&&p<=55295||p>=63744&&p<=64975||p>=65008&&p<=65533||p>=65536&&p<=983039}i.isNameStartChar=l;function u(p){return l(p)||p>=48&&p<=57||p===45||p===46||p===183||p>=768&&p<=879||p>=8255&&p<=8256}i.isNameChar=u},{}],544:[function(e,n,i){/** + * Character classes and associated utilities for the 2nd edition of XML 1.1. + * + * @author Louis-Dominique Dubeau + * @license MIT + * @copyright Louis-Dominique Dubeau + */Object.defineProperty(i,"__esModule",{value:!0}),i.CHAR="-퟿-�𐀀-􏿿",i.RESTRICTED_CHAR="-\b\v\f--„†-Ÿ",i.S=` \r +`,i.NAME_START_CHAR=":A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿",i.NAME_CHAR="-"+i.NAME_START_CHAR+".0-9·̀-ͯ‿-⁀",i.CHAR_RE=new RegExp("^["+i.CHAR+"]$","u"),i.RESTRICTED_CHAR_RE=new RegExp("^["+i.RESTRICTED_CHAR+"]$","u"),i.S_RE=new RegExp("^["+i.S+"]+$","u"),i.NAME_START_CHAR_RE=new RegExp("^["+i.NAME_START_CHAR+"]$","u"),i.NAME_CHAR_RE=new RegExp("^["+i.NAME_CHAR+"]$","u"),i.NAME_RE=new RegExp("^["+i.NAME_START_CHAR+"]["+i.NAME_CHAR+"]*$","u"),i.NMTOKEN_RE=new RegExp("^["+i.NAME_CHAR+"]+$","u");var s=9,o=10,h=13,c=32;i.S_LIST=[c,o,h,s];function a(d){return d>=1&&d<=55295||d>=57344&&d<=65533||d>=65536&&d<=1114111}i.isChar=a;function f(d){return d>=1&&d<=8||d===11||d===12||d>=14&&d<=31||d>=127&&d<=132||d>=134&&d<=159}i.isRestrictedChar=f;function l(d){return d===9||d===10||d===13||d>31&&d<127||d===133||d>159&&d<=55295||d>=57344&&d<=65533||d>=65536&&d<=1114111}i.isCharAndNotRestricted=l;function u(d){return d===c||d===o||d===h||d===s}i.isS=u;function p(d){return d>=65&&d<=90||d>=97&&d<=122||d===58||d===95||d===8204||d===8205||d>=192&&d<=214||d>=216&&d<=246||d>=248&&d<=767||d>=880&&d<=893||d>=895&&d<=8191||d>=8304&&d<=8591||d>=11264&&d<=12271||d>=12289&&d<=55295||d>=63744&&d<=64975||d>=65008&&d<=65533||d>=65536&&d<=983039}i.isNameStartChar=p;function m(d){return p(d)||d>=48&&d<=57||d===45||d===46||d===183||d>=768&&d<=879||d>=8255&&d<=8256}i.isNameChar=m},{}],545:[function(e,n,i){/** + * Character class utilities for XML NS 1.0 edition 3. + * + * @author Louis-Dominique Dubeau + * @license MIT + * @copyright Louis-Dominique Dubeau + */Object.defineProperty(i,"__esModule",{value:!0}),i.NC_NAME_START_CHAR="A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿",i.NC_NAME_CHAR="-"+i.NC_NAME_START_CHAR+".0-9·̀-ͯ‿-⁀",i.NC_NAME_START_CHAR_RE=new RegExp("^["+i.NC_NAME_START_CHAR+"]$","u"),i.NC_NAME_CHAR_RE=new RegExp("^["+i.NC_NAME_CHAR+"]$","u"),i.NC_NAME_RE=new RegExp("^["+i.NC_NAME_START_CHAR+"]["+i.NC_NAME_CHAR+"]*$","u");function s(h){return h>=65&&h<=90||h===95||h>=97&&h<=122||h>=192&&h<=214||h>=216&&h<=246||h>=248&&h<=767||h>=880&&h<=893||h>=895&&h<=8191||h>=8204&&h<=8205||h>=8304&&h<=8591||h>=11264&&h<=12271||h>=12289&&h<=55295||h>=63744&&h<=64975||h>=65008&&h<=65533||h>=65536&&h<=983039}i.isNCNameStartChar=s;function o(h){return s(h)||h===45||h===46||h>=48&&h<=57||h===183||h>=768&&h<=879||h>=8255&&h<=8256}i.isNCNameChar=o},{}]},{},[15])(15)})})(Oh);var y1=Oh.exports;function Qa(t){"@babel/helpers - typeof";return Qa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Qa(t)}var _1=/^\s+/,E1=/\s+$/;function ht(t,r){if(t=t||"",r=r||{},t instanceof ht)return t;if(!(this instanceof ht))return new ht(t,r);var e=T1(t);this._originalInput=t,this._r=e.r,this._g=e.g,this._b=e.b,this._a=e.a,this._roundA=Math.round(100*this._a)/100,this._format=r.format||e.format,this._gradientType=r.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._ok=e.ok}ht.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var r=this.toRgb();return(r.r*299+r.g*587+r.b*114)/1e3},getLuminance:function(){var r=this.toRgb(),e,n,i,s,o,h;return e=r.r/255,n=r.g/255,i=r.b/255,e<=.03928?s=e/12.92:s=Math.pow((e+.055)/1.055,2.4),n<=.03928?o=n/12.92:o=Math.pow((n+.055)/1.055,2.4),i<=.03928?h=i/12.92:h=Math.pow((i+.055)/1.055,2.4),.2126*s+.7152*o+.0722*h},setAlpha:function(r){return this._a=Ih(r),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var r=ql(this._r,this._g,this._b);return{h:r.h*360,s:r.s,v:r.v,a:this._a}},toHsvString:function(){var r=ql(this._r,this._g,this._b),e=Math.round(r.h*360),n=Math.round(r.s*100),i=Math.round(r.v*100);return this._a==1?"hsv("+e+", "+n+"%, "+i+"%)":"hsva("+e+", "+n+"%, "+i+"%, "+this._roundA+")"},toHsl:function(){var r=Ql(this._r,this._g,this._b);return{h:r.h*360,s:r.s,l:r.l,a:this._a}},toHslString:function(){var r=Ql(this._r,this._g,this._b),e=Math.round(r.h*360),n=Math.round(r.s*100),i=Math.round(r.l*100);return this._a==1?"hsl("+e+", "+n+"%, "+i+"%)":"hsla("+e+", "+n+"%, "+i+"%, "+this._roundA+")"},toHex:function(r){return ec(this._r,this._g,this._b,r)},toHexString:function(r){return"#"+this.toHex(r)},toHex8:function(r){return A1(this._r,this._g,this._b,this._a,r)},toHex8String:function(r){return"#"+this.toHex8(r)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return this._a==1?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(Qt(this._r,255)*100)+"%",g:Math.round(Qt(this._g,255)*100)+"%",b:Math.round(Qt(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function(){return this._a==1?"rgb("+Math.round(Qt(this._r,255)*100)+"%, "+Math.round(Qt(this._g,255)*100)+"%, "+Math.round(Qt(this._b,255)*100)+"%)":"rgba("+Math.round(Qt(this._r,255)*100)+"%, "+Math.round(Qt(this._g,255)*100)+"%, "+Math.round(Qt(this._b,255)*100)+"%, "+this._roundA+")"},toName:function(){return this._a===0?"transparent":this._a<1?!1:U1[ec(this._r,this._g,this._b,!0)]||!1},toFilter:function(r){var e="#"+tc(this._r,this._g,this._b,this._a),n=e,i=this._gradientType?"GradientType = 1, ":"";if(r){var s=ht(r);n="#"+tc(s._r,s._g,s._b,s._a)}return"progid:DXImageTransform.Microsoft.gradient("+i+"startColorstr="+e+",endColorstr="+n+")"},toString:function(r){var e=!!r;r=r||this._format;var n=!1,i=this._a<1&&this._a>=0,s=!e&&i&&(r==="hex"||r==="hex6"||r==="hex3"||r==="hex4"||r==="hex8"||r==="name");return s?r==="name"&&this._a===0?this.toName():this.toRgbString():(r==="rgb"&&(n=this.toRgbString()),r==="prgb"&&(n=this.toPercentageRgbString()),(r==="hex"||r==="hex6")&&(n=this.toHexString()),r==="hex3"&&(n=this.toHexString(!0)),r==="hex4"&&(n=this.toHex8String(!0)),r==="hex8"&&(n=this.toHex8String()),r==="name"&&(n=this.toName()),r==="hsl"&&(n=this.toHslString()),r==="hsv"&&(n=this.toHsvString()),n||this.toHexString())},clone:function(){return ht(this.toString())},_applyModification:function(r,e){var n=r.apply(null,[this].concat([].slice.call(e)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(O1,arguments)},brighten:function(){return this._applyModification(I1,arguments)},darken:function(){return this._applyModification(D1,arguments)},desaturate:function(){return this._applyModification(F1,arguments)},saturate:function(){return this._applyModification(R1,arguments)},greyscale:function(){return this._applyModification(M1,arguments)},spin:function(){return this._applyModification(N1,arguments)},_applyCombination:function(r,e){return r.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(L1,arguments)},complement:function(){return this._applyCombination(P1,arguments)},monochromatic:function(){return this._applyCombination(j1,arguments)},splitcomplement:function(){return this._applyCombination(B1,arguments)},triad:function(){return this._applyCombination(rc,[3])},tetrad:function(){return this._applyCombination(rc,[4])}};ht.fromRatio=function(t,r){if(Qa(t)=="object"){var e={};for(var n in t)t.hasOwnProperty(n)&&(n==="a"?e[n]=t[n]:e[n]=ks(t[n]));t=e}return ht(t,r)};function T1(t){var r={r:0,g:0,b:0},e=1,n=null,i=null,s=null,o=!1,h=!1;return typeof t=="string"&&(t=W1(t)),Qa(t)=="object"&&(Kn(t.r)&&Kn(t.g)&&Kn(t.b)?(r=S1(t.r,t.g,t.b),o=!0,h=String(t.r).substr(-1)==="%"?"prgb":"rgb"):Kn(t.h)&&Kn(t.s)&&Kn(t.v)?(n=ks(t.s),i=ks(t.v),r=C1(t.h,n,i),o=!0,h="hsv"):Kn(t.h)&&Kn(t.s)&&Kn(t.l)&&(n=ks(t.s),s=ks(t.l),r=k1(t.h,n,s),o=!0,h="hsl"),t.hasOwnProperty("a")&&(e=t.a)),e=Ih(e),{ok:o,format:t.format||h,r:Math.min(255,Math.max(r.r,0)),g:Math.min(255,Math.max(r.g,0)),b:Math.min(255,Math.max(r.b,0)),a:e}}function S1(t,r,e){return{r:Qt(t,255)*255,g:Qt(r,255)*255,b:Qt(e,255)*255}}function Ql(t,r,e){t=Qt(t,255),r=Qt(r,255),e=Qt(e,255);var n=Math.max(t,r,e),i=Math.min(t,r,e),s,o,h=(n+i)/2;if(n==i)s=o=0;else{var c=n-i;switch(o=h>.5?c/(2-n-i):c/(n+i),n){case t:s=(r-e)/c+(r1&&(l-=1),l<1/6?a+(f-a)*6*l:l<1/2?f:l<2/3?a+(f-a)*(2/3-l)*6:a}if(r===0)n=i=s=e;else{var h=e<.5?e*(1+r):e+r-e*r,c=2*e-h;n=o(c,h,t+1/3),i=o(c,h,t),s=o(c,h,t-1/3)}return{r:n*255,g:i*255,b:s*255}}function ql(t,r,e){t=Qt(t,255),r=Qt(r,255),e=Qt(e,255);var n=Math.max(t,r,e),i=Math.min(t,r,e),s,o,h=n,c=n-i;if(o=n===0?0:c/n,n==i)s=0;else{switch(n){case t:s=(r-e)/c+(r>1)+720)%360;--r;)n.h=(n.h+i)%360,s.push(ht(n));return s}function j1(t,r){r=r||6;for(var e=ht(t).toHsv(),n=e.h,i=e.s,s=e.v,o=[],h=1/r;r--;)o.push(ht({h:n,s:i,v:s})),s=(s+h)%1;return o}ht.mix=function(t,r,e){e=e===0?0:e||50;var n=ht(t).toRgb(),i=ht(r).toRgb(),s=e/100,o={r:(i.r-n.r)*s+n.r,g:(i.g-n.g)*s+n.g,b:(i.b-n.b)*s+n.b,a:(i.a-n.a)*s+n.a};return ht(o)};ht.readability=function(t,r){var e=ht(t),n=ht(r);return(Math.max(e.getLuminance(),n.getLuminance())+.05)/(Math.min(e.getLuminance(),n.getLuminance())+.05)};ht.isReadable=function(t,r,e){var n=ht.readability(t,r),i,s;switch(s=!1,i=X1(e),i.level+i.size){case"AAsmall":case"AAAlarge":s=n>=4.5;break;case"AAlarge":s=n>=3;break;case"AAAsmall":s=n>=7;break}return s};ht.mostReadable=function(t,r,e){var n=null,i=0,s,o,h,c;e=e||{},o=e.includeFallbackColors,h=e.level,c=e.size;for(var a=0;ai&&(i=s,n=ht(r[a]));return ht.isReadable(t,n,{level:h,size:c})||!o?n:(e.includeFallbackColors=!1,ht.mostReadable(t,["#fff","#000"],e))};var xf=ht.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",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:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",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:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",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:"f00",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:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},U1=ht.hexNames=H1(xf);function H1(t){var r={};for(var e in t)t.hasOwnProperty(e)&&(r[t[e]]=e);return r}function Ih(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function Qt(t,r){z1(t)&&(t="100%");var e=$1(t);return t=Math.min(r,Math.max(0,parseFloat(t))),e&&(t=parseInt(t*r,10)/100),Math.abs(t-r)<1e-6?1:t%r/parseFloat(r)}function uo(t){return Math.min(1,Math.max(0,t))}function Qr(t){return parseInt(t,16)}function z1(t){return typeof t=="string"&&t.indexOf(".")!=-1&&parseFloat(t)===1}function $1(t){return typeof t=="string"&&t.indexOf("%")!=-1}function Tn(t){return t.length==1?"0"+t:""+t}function ks(t){return t<=1&&(t=t*100+"%"),t}function Dh(t){return Math.round(parseFloat(t)*255).toString(16)}function nc(t){return Qr(t)/255}var En=function(){var t="[-\\+]?\\d+%?",r="[-\\+]?\\d*\\.\\d+%?",e="(?:"+r+")|(?:"+t+")",n="[\\s|\\(]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")\\s*\\)?",i="[\\s|\\(]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")\\s*\\)?";return{CSS_UNIT:new RegExp(e),rgb:new RegExp("rgb"+n),rgba:new RegExp("rgba"+i),hsl:new RegExp("hsl"+n),hsla:new RegExp("hsla"+i),hsv:new RegExp("hsv"+n),hsva:new RegExp("hsva"+i),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 Kn(t){return!!En.CSS_UNIT.exec(t)}function W1(t){t=t.replace(_1,"").replace(E1,"").toLowerCase();var r=!1;if(xf[t])t=xf[t],r=!0;else if(t=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var e;return(e=En.rgb.exec(t))?{r:e[1],g:e[2],b:e[3]}:(e=En.rgba.exec(t))?{r:e[1],g:e[2],b:e[3],a:e[4]}:(e=En.hsl.exec(t))?{h:e[1],s:e[2],l:e[3]}:(e=En.hsla.exec(t))?{h:e[1],s:e[2],l:e[3],a:e[4]}:(e=En.hsv.exec(t))?{h:e[1],s:e[2],v:e[3]}:(e=En.hsva.exec(t))?{h:e[1],s:e[2],v:e[3],a:e[4]}:(e=En.hex8.exec(t))?{r:Qr(e[1]),g:Qr(e[2]),b:Qr(e[3]),a:nc(e[4]),format:r?"name":"hex8"}:(e=En.hex6.exec(t))?{r:Qr(e[1]),g:Qr(e[2]),b:Qr(e[3]),format:r?"name":"hex"}:(e=En.hex4.exec(t))?{r:Qr(e[1]+""+e[1]),g:Qr(e[2]+""+e[2]),b:Qr(e[3]+""+e[3]),a:nc(e[4]+""+e[4]),format:r?"name":"hex8"}:(e=En.hex3.exec(t))?{r:Qr(e[1]+""+e[1]),g:Qr(e[2]+""+e[2]),b:Qr(e[3]+""+e[3]),format:r?"name":"hex"}:!1}function X1(t){var r,e;return t=t||{level:"AA",size:"small"},r=(t.level||"AA").toUpperCase(),e=(t.size||"small").toLowerCase(),r!=="AA"&&r!=="AAA"&&(r="AA"),e!=="small"&&e!=="large"&&(e="small"),{level:r,size:e}}function Nh(t){t=t.replace("#","");for(var r=t.match(/../g),e=0;e<3;e++)r[e]=parseInt(r[e],16);return r}function Ph(t,r,e){for(var n=[t.toString(16),r.toString(16),e.toString(16)],i=0;i<3;i++)n[i].length==1&&(n[i]="0"+n[i]);return"#"+n.join("")}function V1(t,r){for(var e=Nh(t),n=0;n<3;n++)e[n]=Math.floor(e[n]*(1-r));return Ph(e[0],e[1],e[2])}function G1(t,r){for(var e=Nh(t),n=0;n<3;n++)e[n]=Math.floor((255-e[n])*r+e[n]);return Ph(e[0],e[1],e[2])}/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */var qa={};qa.version="0.18.5";var Bh=1252,K1=[874,932,936,949,950,1250,1251,1252,1253,1254,1255,1256,1257,1258,1e4],zf={0:1252,1:65001,2:65001,77:1e4,128:932,129:949,130:1361,134:936,136:950,161:1253,162:1254,163:1258,177:1255,178:1256,186:1257,204:1251,222:874,238:1250,255:1252,69:6969},$f=function(t){K1.indexOf(t)!=-1&&(Bh=zf[0]=t)};function Y1(){$f(1252)}var Sn=function(t){$f(t)};function Wf(){Sn(1200),Y1()}function ic(t){for(var r=[],e=0,n=t.length;e>1;++e)r[e]=String.fromCharCode(t.charCodeAt(2*e)+(t.charCodeAt(2*e+1)<<8));return r.join("")}function Lh(t){for(var r=[],e=0;e>1;++e)r[e]=String.fromCharCode(t.charCodeAt(2*e+1)+(t.charCodeAt(2*e)<<8));return r.join("")}var Cs=function(t){var r=t.charCodeAt(0),e=t.charCodeAt(1);return r==255&&e==254?Z1(t.slice(2)):r==254&&e==255?Lh(t.slice(2)):r==65279?t.slice(1):t},Ra=function(r){return String.fromCharCode(r)},sc=function(r){return String.fromCharCode(r)},ci,hi="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function Ls(t){for(var r="",e=0,n=0,i=0,s=0,o=0,h=0,c=0,a=0;a>2,n=t.charCodeAt(a++),o=(e&3)<<4|n>>4,i=t.charCodeAt(a++),h=(n&15)<<2|i>>6,c=i&63,isNaN(n)?h=c=64:isNaN(i)&&(c=64),r+=hi.charAt(s)+hi.charAt(o)+hi.charAt(h)+hi.charAt(c);return r}function nn(t){var r="",e=0,n=0,i=0,s=0,o=0,h=0,c=0;t=t.replace(/[^\w\+\/\=]/g,"");for(var a=0;a>4,r+=String.fromCharCode(e),h=hi.indexOf(t.charAt(a++)),n=(o&15)<<4|h>>2,h!==64&&(r+=String.fromCharCode(n)),c=hi.indexOf(t.charAt(a++)),i=(h&3)<<6|c,c!==64&&(r+=String.fromCharCode(i));return r}var St=function(){return typeof Buffer<"u"&&typeof process<"u"&&typeof process.versions<"u"&&!!process.versions.node}(),ri=function(){if(typeof Buffer<"u"){var t=!Buffer.from;if(!t)try{Buffer.from("foo","utf8")}catch{t=!0}return t?function(r,e){return e?new Buffer(r,e):new Buffer(r)}:Buffer.from.bind(Buffer)}return function(){}}();function pi(t){return St?Buffer.alloc?Buffer.alloc(t):new Buffer(t):typeof Uint8Array<"u"?new Uint8Array(t):new Array(t)}function ac(t){return St?Buffer.allocUnsafe?Buffer.allocUnsafe(t):new Buffer(t):typeof Uint8Array<"u"?new Uint8Array(t):new Array(t)}var tn=function(r){return St?ri(r,"binary"):r.split("").map(function(e){return e.charCodeAt(0)&255})};function po(t){if(typeof ArrayBuffer>"u")return tn(t);for(var r=new ArrayBuffer(t.length),e=new Uint8Array(r),n=0;n!=t.length;++n)e[n]=t.charCodeAt(n)&255;return r}function bi(t){if(Array.isArray(t))return t.map(function(n){return String.fromCharCode(n)}).join("");for(var r=[],e=0;e"u")throw new Error("Unsupported");return new Uint8Array(t)}function Xf(t){if(typeof ArrayBuffer>"u")throw new Error("Unsupported");if(t instanceof ArrayBuffer)return Xf(new Uint8Array(t));for(var r=new Array(t.length),e=0;e>6&31,i[e++]=128|o&63;else if(o>=55296&&o<57344){o=(o&1023)+64;var h=t.charCodeAt(++s)&1023;i[e++]=240|o>>8&7,i[e++]=128|o>>2&63,i[e++]=128|h>>6&15|(o&3)<<4,i[e++]=128|h&63}else i[e++]=224|o>>12&15,i[e++]=128|o>>6&63,i[e++]=128|o&63;e>n&&(r.push(i.slice(0,e)),e=0,i=pi(65535),n=65530)}return r.push(i.slice(0,e)),yr(r)}var Xr=/\u0000/g,As=/[\u0001-\u0006]/g;function ls(t){for(var r="",e=t.length-1;e>=0;)r+=t.charAt(e--);return r}function kn(t,r){var e=""+t;return e.length>=r?e:tr("0",r-e.length)+e}function Vf(t,r){var e=""+t;return e.length>=r?e:tr(" ",r-e.length)+e}function eo(t,r){var e=""+t;return e.length>=r?e:e+tr(" ",r-e.length)}function q1(t,r){var e=""+Math.round(t);return e.length>=r?e:tr("0",r-e.length)+e}function em(t,r){var e=""+t;return e.length>=r?e:tr("0",r-e.length)+e}var oc=Math.pow(2,32);function ns(t,r){if(t>oc||t<-oc)return q1(t,r);var e=Math.round(t);return em(e,r)}function to(t,r){return r=r||0,t.length>=7+r&&(t.charCodeAt(r)|32)===103&&(t.charCodeAt(r+1)|32)===101&&(t.charCodeAt(r+2)|32)===110&&(t.charCodeAt(r+3)|32)===101&&(t.charCodeAt(r+4)|32)===114&&(t.charCodeAt(r+5)|32)===97&&(t.charCodeAt(r+6)|32)===108}var fc=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]],$o=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function tm(t){return t||(t={}),t[0]="General",t[1]="0",t[2]="0.00",t[3]="#,##0",t[4]="#,##0.00",t[9]="0%",t[10]="0.00%",t[11]="0.00E+00",t[12]="# ?/?",t[13]="# ??/??",t[14]="m/d/yy",t[15]="d-mmm-yy",t[16]="d-mmm",t[17]="mmm-yy",t[18]="h:mm AM/PM",t[19]="h:mm:ss AM/PM",t[20]="h:mm",t[21]="h:mm:ss",t[22]="m/d/yy h:mm",t[37]="#,##0 ;(#,##0)",t[38]="#,##0 ;[Red](#,##0)",t[39]="#,##0.00;(#,##0.00)",t[40]="#,##0.00;[Red](#,##0.00)",t[45]="mm:ss",t[46]="[h]:mm:ss",t[47]="mmss.0",t[48]="##0.0E+0",t[49]="@",t[56]='"上午/下午 "hh"時"mm"分"ss"秒 "',t}var xt={0:"General",1:"0",2:"0.00",3:"#,##0",4:"#,##0.00",9:"0%",10:"0.00%",11:"0.00E+00",12:"# ?/?",13:"# ??/??",14:"m/d/yy",15:"d-mmm-yy",16:"d-mmm",17:"mmm-yy",18:"h:mm AM/PM",19:"h:mm:ss AM/PM",20:"h:mm",21:"h:mm:ss",22:"m/d/yy h:mm",37:"#,##0 ;(#,##0)",38:"#,##0 ;[Red](#,##0)",39:"#,##0.00;(#,##0.00)",40:"#,##0.00;[Red](#,##0.00)",45:"mm:ss",46:"[h]:mm:ss",47:"mmss.0",48:"##0.0E+0",49:"@",56:'"上午/下午 "hh"時"mm"分"ss"秒 "'},lc={5:37,6:38,7:39,8:40,23:0,24:0,25:0,26:0,27:14,28:14,29:14,30:14,31:14,50:14,51:14,52:14,53:14,54:14,55:14,56:14,57:14,58:14,59:1,60:2,61:3,62:4,67:9,68:10,69:12,70:13,71:14,72:14,73:15,74:16,75:17,76:20,77:21,78:22,79:45,80:46,81:47,82:0},rm={5:'"$"#,##0_);\\("$"#,##0\\)',63:'"$"#,##0_);\\("$"#,##0\\)',6:'"$"#,##0_);[Red]\\("$"#,##0\\)',64:'"$"#,##0_);[Red]\\("$"#,##0\\)',7:'"$"#,##0.00_);\\("$"#,##0.00\\)',65:'"$"#,##0.00_);\\("$"#,##0.00\\)',8:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',66:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',41:'_(* #,##0_);_(* \\(#,##0\\);_(* "-"_);_(@_)',42:'_("$"* #,##0_);_("$"* \\(#,##0\\);_("$"* "-"_);_(@_)',43:'_(* #,##0.00_);_(* \\(#,##0.00\\);_(* "-"??_);_(@_)',44:'_("$"* #,##0.00_);_("$"* \\(#,##0.00\\);_("$"* "-"??_);_(@_)'};function ro(t,r,e){for(var n=t<0?-1:1,i=t*n,s=0,o=1,h=0,c=1,a=0,f=0,l=Math.floor(i);ar&&(a>r?(f=c,h=s):(f=a,h=o)),!e)return[0,n*h,f];var u=Math.floor(n*h/f);return[u,n*h-u*f,f]}function Ri(t,r,e){if(t>2958465||t<0)return null;var n=t|0,i=Math.floor(86400*(t-n)),s=0,o=[],h={D:n,T:i,u:86400*(t-n)-i,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(h.u)<1e-6&&(h.u=0),r&&r.date1904&&(n+=1462),h.u>.9999&&(h.u=0,++i==86400&&(h.T=i=0,++n,++h.D)),n===60)o=e?[1317,10,29]:[1900,2,29],s=3;else if(n===0)o=e?[1317,8,29]:[1900,1,0],s=6;else{n>60&&--n;var c=new Date(1900,0,1);c.setDate(c.getDate()+n-1),o=[c.getFullYear(),c.getMonth()+1,c.getDate()],s=c.getDay(),n<60&&(s=(s+6)%7),e&&(s=fm(c,o))}return h.y=o[0],h.m=o[1],h.d=o[2],h.S=i%60,i=Math.floor(i/60),h.M=i%60,i=Math.floor(i/60),h.H=i,h.q=s,h}var jh=new Date(1899,11,31,0,0,0),nm=jh.getTime(),im=new Date(1900,2,1,0,0,0);function Uh(t,r){var e=t.getTime();return r?e-=1461*24*60*60*1e3:t>=im&&(e+=24*60*60*1e3),(e-(nm+(t.getTimezoneOffset()-jh.getTimezoneOffset())*6e4))/(24*60*60*1e3)}function Gf(t){return t.indexOf(".")==-1?t:t.replace(/(?:\.0*|(\.\d*[1-9])0+)$/,"$1")}function sm(t){return t.indexOf("E")==-1?t:t.replace(/(?:\.0*|(\.\d*[1-9])0+)[Ee]/,"$1E").replace(/(E[+-])(\d)$/,"$10$2")}function am(t){var r=t<0?12:11,e=Gf(t.toFixed(12));return e.length<=r||(e=t.toPrecision(10),e.length<=r)?e:t.toExponential(5)}function om(t){var r=Gf(t.toFixed(11));return r.length>(t<0?12:11)||r==="0"||r==="-0"?t.toPrecision(6):r}function js(t){var r=Math.floor(Math.log(Math.abs(t))*Math.LOG10E),e;return r>=-4&&r<=-1?e=t.toPrecision(10+r):Math.abs(r)<=9?e=am(t):r===10?e=t.toFixed(10).substr(0,12):e=om(t),Gf(sm(e.toUpperCase()))}function Li(t,r){switch(typeof t){case"string":return t;case"boolean":return t?"TRUE":"FALSE";case"number":return(t|0)===t?t.toString(10):js(t);case"undefined":return"";case"object":if(t==null)return"";if(t instanceof Date)return pn(14,Uh(t,r&&r.date1904),r)}throw new Error("unsupported value in General format: "+t)}function fm(t,r){r[0]-=581;var e=t.getDay();return t<60&&(e=(e+6)%7),e}function lm(t,r,e,n){var i="",s=0,o=0,h=e.y,c,a=0;switch(t){case 98:h=e.y+543;case 121:switch(r.length){case 1:case 2:c=h%100,a=2;break;default:c=h%1e4,a=4;break}break;case 109:switch(r.length){case 1:case 2:c=e.m,a=r.length;break;case 3:return $o[e.m-1][1];case 5:return $o[e.m-1][0];default:return $o[e.m-1][2]}break;case 100:switch(r.length){case 1:case 2:c=e.d,a=r.length;break;case 3:return fc[e.q][0];default:return fc[e.q][1]}break;case 104:switch(r.length){case 1:case 2:c=1+(e.H+11)%12,a=r.length;break;default:throw"bad hour format: "+r}break;case 72:switch(r.length){case 1:case 2:c=e.H,a=r.length;break;default:throw"bad hour format: "+r}break;case 77:switch(r.length){case 1:case 2:c=e.M,a=r.length;break;default:throw"bad minute format: "+r}break;case 115:if(r!="s"&&r!="ss"&&r!=".0"&&r!=".00"&&r!=".000")throw"bad second format: "+r;return e.u===0&&(r=="s"||r=="ss")?kn(e.S,r.length):(n>=2?o=n===3?1e3:100:o=n===1?10:1,s=Math.round(o*(e.S+e.u)),s>=60*o&&(s=0),r==="s"?s===0?"0":""+s/o:(i=kn(s,2+n),r==="ss"?i.substr(0,2):"."+i.substr(2,r.length-1)));case 90:switch(r){case"[h]":case"[hh]":c=e.D*24+e.H;break;case"[m]":case"[mm]":c=(e.D*24+e.H)*60+e.M;break;case"[s]":case"[ss]":c=((e.D*24+e.H)*60+e.M)*60+Math.round(e.S+e.u);break;default:throw"bad abstime format: "+r}a=r.length===3?1:2;break;case 101:c=h,a=1;break}var f=a>0?kn(c,a):"";return f}function ui(t){var r=3;if(t.length<=r)return t;for(var e=t.length%r,n=t.substr(0,e);e!=t.length;e+=r)n+=(n.length>0?",":"")+t.substr(e,r);return n}var Hh=/%/g;function cm(t,r,e){var n=r.replace(Hh,""),i=r.length-n.length;return Jn(t,n,e*Math.pow(10,2*i))+tr("%",i)}function hm(t,r,e){for(var n=r.length-1;r.charCodeAt(n-1)===44;)--n;return Jn(t,r.substr(0,n),e/Math.pow(10,3*(r.length-n)))}function zh(t,r){var e,n=t.indexOf("E")-t.indexOf(".")-1;if(t.match(/^#+0.0E\+0$/)){if(r==0)return"0.0E+0";if(r<0)return"-"+zh(t,-r);var i=t.indexOf(".");i===-1&&(i=t.indexOf("E"));var s=Math.floor(Math.log(r)*Math.LOG10E)%i;if(s<0&&(s+=i),e=(r/Math.pow(10,s)).toPrecision(n+1+(i+s)%i),e.indexOf("e")===-1){var o=Math.floor(Math.log(r)*Math.LOG10E);for(e.indexOf(".")===-1?e=e.charAt(0)+"."+e.substr(1)+"E+"+(o-e.length+s):e+="E+"+(o-s);e.substr(0,2)==="0.";)e=e.charAt(0)+e.substr(2,i)+"."+e.substr(2+i),e=e.replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.");e=e.replace(/\+-/,"-")}e=e.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(h,c,a,f){return c+a+f.substr(0,(i+s)%i)+"."+f.substr(s)+"E"})}else e=r.toExponential(n);return t.match(/E\+00$/)&&e.match(/e[+-]\d$/)&&(e=e.substr(0,e.length-1)+"0"+e.charAt(e.length-1)),t.match(/E\-/)&&e.match(/e\+/)&&(e=e.replace(/e\+/,"e")),e.replace("e","E")}var $h=/# (\?+)( ?)\/( ?)(\d+)/;function um(t,r,e){var n=parseInt(t[4],10),i=Math.round(r*n),s=Math.floor(i/n),o=i-s*n,h=n;return e+(s===0?"":""+s)+" "+(o===0?tr(" ",t[1].length+1+t[4].length):Vf(o,t[1].length)+t[2]+"/"+t[3]+kn(h,t[4].length))}function dm(t,r,e){return e+(r===0?"":""+r)+tr(" ",t[1].length+2+t[4].length)}var Wh=/^#*0*\.([0#]+)/,Xh=/\).*[0#]/,Vh=/\(###\) ###\\?-####/;function $r(t){for(var r="",e,n=0;n!=t.length;++n)switch(e=t.charCodeAt(n)){case 35:break;case 63:r+=" ";break;case 48:r+="0";break;default:r+=String.fromCharCode(e)}return r}function cc(t,r){var e=Math.pow(10,r);return""+Math.round(t*e)/e}function hc(t,r){var e=t-Math.floor(t),n=Math.pow(10,r);return r<(""+Math.round(e*n)).length?0:Math.round(e*n)}function pm(t,r){return r<(""+Math.round((t-Math.floor(t))*Math.pow(10,r))).length?1:0}function mm(t){return t<2147483647&&t>-2147483648?""+(t>=0?t|0:t-1|0):""+Math.floor(t)}function fn(t,r,e){if(t.charCodeAt(0)===40&&!r.match(Xh)){var n=r.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return e>=0?fn("n",n,e):"("+fn("n",n,-e)+")"}if(r.charCodeAt(r.length-1)===44)return hm(t,r,e);if(r.indexOf("%")!==-1)return cm(t,r,e);if(r.indexOf("E")!==-1)return zh(r,e);if(r.charCodeAt(0)===36)return"$"+fn(t,r.substr(r.charAt(1)==" "?2:1),e);var i,s,o,h,c=Math.abs(e),a=e<0?"-":"";if(r.match(/^00+$/))return a+ns(c,r.length);if(r.match(/^[#?]+$/))return i=ns(e,0),i==="0"&&(i=""),i.length>r.length?i:$r(r.substr(0,r.length-i.length))+i;if(s=r.match($h))return um(s,c,a);if(r.match(/^#+0+$/))return a+ns(c,r.length-r.indexOf("0"));if(s=r.match(Wh))return i=cc(e,s[1].length).replace(/^([^\.]+)$/,"$1."+$r(s[1])).replace(/\.$/,"."+$r(s[1])).replace(/\.(\d*)$/,function(m,d){return"."+d+tr("0",$r(s[1]).length-d.length)}),r.indexOf("0.")!==-1?i:i.replace(/^0\./,".");if(r=r.replace(/^#+([0.])/,"$1"),s=r.match(/^(0*)\.(#*)$/))return a+cc(c,s[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,s[1].length?"0.":".");if(s=r.match(/^#{1,3},##0(\.?)$/))return a+ui(ns(c,0));if(s=r.match(/^#,##0\.([#0]*0)$/))return e<0?"-"+fn(t,r,-e):ui(""+(Math.floor(e)+pm(e,s[1].length)))+"."+kn(hc(e,s[1].length),s[1].length);if(s=r.match(/^#,#*,#0/))return fn(t,r.replace(/^#,#*,/,""),e);if(s=r.match(/^([0#]+)(\\?-([0#]+))+$/))return i=ls(fn(t,r.replace(/[\\-]/g,""),e)),o=0,ls(ls(r.replace(/\\/g,"")).replace(/[0#]/g,function(m){return o=0?Nn("n",n,e):"("+Nn("n",n,-e)+")"}if(r.charCodeAt(r.length-1)===44)return gm(t,r,e);if(r.indexOf("%")!==-1)return vm(t,r,e);if(r.indexOf("E")!==-1)return Gh(r,e);if(r.charCodeAt(0)===36)return"$"+Nn(t,r.substr(r.charAt(1)==" "?2:1),e);var i,s,o,h,c=Math.abs(e),a=e<0?"-":"";if(r.match(/^00+$/))return a+kn(c,r.length);if(r.match(/^[#?]+$/))return i=""+e,e===0&&(i=""),i.length>r.length?i:$r(r.substr(0,r.length-i.length))+i;if(s=r.match($h))return dm(s,c,a);if(r.match(/^#+0+$/))return a+kn(c,r.length-r.indexOf("0"));if(s=r.match(Wh))return i=(""+e).replace(/^([^\.]+)$/,"$1."+$r(s[1])).replace(/\.$/,"."+$r(s[1])),i=i.replace(/\.(\d*)$/,function(m,d){return"."+d+tr("0",$r(s[1]).length-d.length)}),r.indexOf("0.")!==-1?i:i.replace(/^0\./,".");if(r=r.replace(/^#+([0.])/,"$1"),s=r.match(/^(0*)\.(#*)$/))return a+(""+c).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,s[1].length?"0.":".");if(s=r.match(/^#{1,3},##0(\.?)$/))return a+ui(""+c);if(s=r.match(/^#,##0\.([#0]*0)$/))return e<0?"-"+Nn(t,r,-e):ui(""+e)+"."+tr("0",s[1].length);if(s=r.match(/^#,#*,#0/))return Nn(t,r.replace(/^#,#*,/,""),e);if(s=r.match(/^([0#]+)(\\?-([0#]+))+$/))return i=ls(Nn(t,r.replace(/[\\-]/g,""),e)),o=0,ls(ls(r.replace(/\\/g,"")).replace(/[0#]/g,function(m){return o-1||e=="\\"&&t.charAt(r+1)=="-"&&"0#".indexOf(t.charAt(r+2))>-1););break;case"?":for(;t.charAt(++r)===e;);break;case"*":++r,(t.charAt(r)==" "||t.charAt(r)=="*")&&++r;break;case"(":case")":++r;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(;r-1;);break;case" ":++r;break;default:++r;break}return!1}function bm(t,r,e,n){for(var i=[],s="",o=0,h="",c="t",a,f,l,u="H";o=12?"P":"A"),d.t="T",u="h",o+=3):t.substr(o,5).toUpperCase()==="AM/PM"?(a!=null&&(d.v=a.H>=12?"PM":"AM"),d.t="T",o+=5,u="h"):t.substr(o,5).toUpperCase()==="上午/下午"?(a!=null&&(d.v=a.H>=12?"下午":"上午"),d.t="T",o+=5,u="h"):(d.t="t",++o),a==null&&d.t==="T")return"";i[i.length]=d,c=h;break;case"[":for(s=h;t.charAt(o++)!=="]"&&o-1&&(s=(s.match(/\$([^-\[\]]*)/)||[])[1]||"$",gs(t)||(i[i.length]={t:"t",v:s}));break;case".":if(a!=null){for(s=h;++o-1;)s+=h;i[i.length]={t:"n",v:s};break;case"?":for(s=h;t.charAt(++o)===h;)s+=h;i[i.length]={t:h,v:s},c=h;break;case"*":++o,(t.charAt(o)==" "||t.charAt(o)=="*")&&++o;break;case"(":case")":i[i.length]={t:n===1?"t":h,v:h},++o;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(s=h;o-1;)s+=t.charAt(o);i[i.length]={t:"D",v:s};break;case" ":i[i.length]={t:h,v:h},++o;break;case"$":i[i.length]={t:"t",v:"$"},++o;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(h)===-1)throw new Error("unrecognized character "+h+" in "+t);i[i.length]={t:"t",v:h},++o;break}var v=0,x=0,g;for(o=i.length-1,c="t";o>=0;--o)switch(i[o].t){case"h":case"H":i[o].t=u,c="h",v<1&&(v=1);break;case"s":(g=i[o].v.match(/\.0+$/))&&(x=Math.max(x,g[0].length-1)),v<3&&(v=3);case"d":case"y":case"M":case"e":c=i[o].t;break;case"m":c==="s"&&(i[o].t="M",v<2&&(v=2));break;case"X":break;case"Z":v<1&&i[o].v.match(/[Hh]/)&&(v=1),v<2&&i[o].v.match(/[Mm]/)&&(v=2),v<3&&i[o].v.match(/[Ss]/)&&(v=3)}switch(v){case 0:break;case 1:a.u>=.5&&(a.u=0,++a.S),a.S>=60&&(a.S=0,++a.M),a.M>=60&&(a.M=0,++a.H);break;case 2:a.u>=.5&&(a.u=0,++a.S),a.S>=60&&(a.S=0,++a.M);break}var b="",w;for(o=0;o0){b.charCodeAt(0)==40?(T=r<0&&b.charCodeAt(0)===45?-r:r,C=Jn("n",b,T)):(T=r<0&&n>1?-r:r,C=Jn("n",b,T),T<0&&i[0]&&i[0].t=="t"&&(C=C.substr(1),i[0].v="-"+i[0].v)),w=C.length-1;var M=i.length;for(o=0;o-1){M=o;break}var I=i.length;if(M===i.length&&C.indexOf("E")===-1){for(o=i.length-1;o>=0;--o)i[o]==null||"n?".indexOf(i[o].t)===-1||(w>=i[o].v.length-1?(w-=i[o].v.length,i[o].v=C.substr(w+1,i[o].v.length)):w<0?i[o].v="":(i[o].v=C.substr(0,w+1),w=-1),i[o].t="t",I=o);w>=0&&I=0;--o)if(!(i[o]==null||"n?".indexOf(i[o].t)===-1)){for(f=i[o].v.indexOf(".")>-1&&o===M?i[o].v.indexOf(".")-1:i[o].v.length-1,y=i[o].v.substr(f+1);f>=0;--f)w>=0&&(i[o].v.charAt(f)==="0"||i[o].v.charAt(f)==="#")&&(y=C.charAt(w--)+y);i[o].v=y,i[o].t="t",I=o}for(w>=0&&I-1&&o===M?i[o].v.indexOf(".")+1:0,y=i[o].v.substr(0,f);f-1&&(T=n>1&&r<0&&o>0&&i[o-1].v==="-"?-r:r,i[o].v=Jn(i[o].t,i[o].v,T),i[o].t="t");var B="";for(o=0;o!==i.length;++o)i[o]!=null&&(B+=i[o].v);return B}var uc=/\[(=|>[=]?|<[>=]?)(-?\d+(?:\.\d*)?)\]/;function dc(t,r){if(r==null)return!1;var e=parseFloat(r[2]);switch(r[1]){case"=":if(t==e)return!0;break;case">":if(t>e)return!0;break;case"<":if(t":if(t!=e)return!0;break;case">=":if(t>=e)return!0;break;case"<=":if(t<=e)return!0;break}return!1}function wm(t,r){var e=xm(t),n=e.length,i=e[n-1].indexOf("@");if(n<4&&i>-1&&--n,e.length>4)throw new Error("cannot find right format for |"+e.join("|")+"|");if(typeof r!="number")return[4,e.length===4||i>-1?e[e.length-1]:"@"];switch(e.length){case 1:e=i>-1?["General","General","General",e[0]]:[e[0],e[0],e[0],"@"];break;case 2:e=i>-1?[e[0],e[0],e[0],e[1]]:[e[0],e[1],e[0],"@"];break;case 3:e=i>-1?[e[0],e[1],e[0],e[2]]:[e[0],e[1],e[2],"@"];break}var s=r>0?e[0]:r<0?e[1]:e[2];if(e[0].indexOf("[")===-1&&e[1].indexOf("[")===-1)return[n,s];if(e[0].match(/\[[=<>]/)!=null||e[1].match(/\[[=<>]/)!=null){var o=e[0].match(uc),h=e[1].match(uc);return dc(r,o)?[n,e[0]]:dc(r,h)?[n,e[1]]:[n,e[o!=null&&h!=null?2:1]]}return[n,s]}function pn(t,r,e){e==null&&(e={});var n="";switch(typeof t){case"string":t=="m/d/yy"&&e.dateNF?n=e.dateNF:n=t;break;case"number":t==14&&e.dateNF?n=e.dateNF:n=(e.table!=null?e.table:xt)[t],n==null&&(n=e.table&&e.table[lc[t]]||xt[lc[t]]),n==null&&(n=rm[t]||"General");break}if(to(n,0))return Li(r,e);r instanceof Date&&(r=Uh(r,e.date1904));var i=wm(n,r);if(to(i[1]))return Li(r,e);if(r===!0)r="TRUE";else if(r===!1)r="FALSE";else if(r===""||r==null)return"";return bm(i[1],r,e,i[0])}function Qn(t,r){if(typeof r!="number"){r=+r||-1;for(var e=0;e<392;++e){if(xt[e]==null){r<0&&(r=e);continue}if(xt[e]==t){r=e;break}}r<0&&(r=391)}return xt[r]=t,r}function mo(t){for(var r=0;r!=392;++r)t[r]!==void 0&&Qn(t[r],r)}function vs(){xt=tm()}var ym={5:'"$"#,##0_);\\("$"#,##0\\)',6:'"$"#,##0_);[Red]\\("$"#,##0\\)',7:'"$"#,##0.00_);\\("$"#,##0.00\\)',8:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',23:"General",24:"General",25:"General",26:"General",27:"m/d/yy",28:"m/d/yy",29:"m/d/yy",30:"m/d/yy",31:"m/d/yy",32:"h:mm:ss",33:"h:mm:ss",34:"h:mm:ss",35:"h:mm:ss",36:"m/d/yy",41:'_(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)',42:'_("$"* #,##0_);_("$"* (#,##0);_("$"* "-"_);_(@_)',43:'_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)',44:'_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)',50:"m/d/yy",51:"m/d/yy",52:"m/d/yy",53:"m/d/yy",54:"m/d/yy",55:"m/d/yy",56:"m/d/yy",57:"m/d/yy",58:"m/d/yy",59:"0",60:"0.00",61:"#,##0",62:"#,##0.00",63:'"$"#,##0_);\\("$"#,##0\\)',64:'"$"#,##0_);[Red]\\("$"#,##0\\)',65:'"$"#,##0.00_);\\("$"#,##0.00\\)',66:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',67:"0%",68:"0.00%",69:"# ?/?",70:"# ??/??",71:"m/d/yy",72:"m/d/yy",73:"d-mmm-yy",74:"d-mmm",75:"mmm-yy",76:"h:mm",77:"h:mm:ss",78:"m/d/yy h:mm",79:"mm:ss",80:"[h]:mm:ss",81:"mmss.0"},Yh=/[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;function _m(t){var r=typeof t=="number"?xt[t]:t;return r=r.replace(Yh,"(\\d+)"),new RegExp("^"+r+"$")}function Em(t,r,e){var n=-1,i=-1,s=-1,o=-1,h=-1,c=-1;(r.match(Yh)||[]).forEach(function(l,u){var p=parseInt(e[u+1],10);switch(l.toLowerCase().charAt(0)){case"y":n=p;break;case"d":s=p;break;case"h":o=p;break;case"s":c=p;break;case"m":o>=0?h=p:i=p;break}}),c>=0&&h==-1&&i>=0&&(h=i,i=-1);var a=(""+(n>=0?n:new Date().getFullYear())).slice(-4)+"-"+("00"+(i>=1?i:1)).slice(-2)+"-"+("00"+(s>=1?s:1)).slice(-2);a.length==7&&(a="0"+a),a.length==8&&(a="20"+a);var f=("00"+(o>=0?o:0)).slice(-2)+":"+("00"+(h>=0?h:0)).slice(-2)+":"+("00"+(c>=0?c:0)).slice(-2);return o==-1&&h==-1&&c==-1?a:n==-1&&i==-1&&s==-1?f:a+"T"+f}var Tm=function(){var t={};t.version="1.2.0";function r(){for(var C=0,M=new Array(256),I=0;I!=256;++I)C=I,C=C&1?-306674912^C>>>1:C>>>1,C=C&1?-306674912^C>>>1:C>>>1,C=C&1?-306674912^C>>>1:C>>>1,C=C&1?-306674912^C>>>1:C>>>1,C=C&1?-306674912^C>>>1:C>>>1,C=C&1?-306674912^C>>>1:C>>>1,C=C&1?-306674912^C>>>1:C>>>1,C=C&1?-306674912^C>>>1:C>>>1,M[I]=C;return typeof Int32Array<"u"?new Int32Array(M):M}var e=r();function n(C){var M=0,I=0,B=0,U=typeof Int32Array<"u"?new Int32Array(4096):new Array(4096);for(B=0;B!=256;++B)U[B]=C[B];for(B=0;B!=256;++B)for(I=C[B],M=256+B;M<4096;M+=256)I=U[M]=I>>>8^C[I&255];var j=[];for(B=1;B!=16;++B)j[B-1]=typeof Int32Array<"u"?U.subarray(B*256,B*256+256):U.slice(B*256,B*256+256);return j}var i=n(e),s=i[0],o=i[1],h=i[2],c=i[3],a=i[4],f=i[5],l=i[6],u=i[7],p=i[8],m=i[9],d=i[10],v=i[11],x=i[12],g=i[13],b=i[14];function w(C,M){for(var I=M^-1,B=0,U=C.length;B>>8^e[(I^C.charCodeAt(B++))&255];return~I}function y(C,M){for(var I=M^-1,B=C.length-15,U=0;U>8&255]^x[C[U++]^I>>16&255]^v[C[U++]^I>>>24]^d[C[U++]]^m[C[U++]]^p[C[U++]]^u[C[U++]]^l[C[U++]]^f[C[U++]]^a[C[U++]]^c[C[U++]]^h[C[U++]]^o[C[U++]]^s[C[U++]]^e[C[U++]];for(B+=15;U>>8^e[(I^C[U++])&255];return~I}function T(C,M){for(var I=M^-1,B=0,U=C.length,j=0,H=0;B>>8^e[(I^j)&255]:j<2048?(I=I>>>8^e[(I^(192|j>>6&31))&255],I=I>>>8^e[(I^(128|j&63))&255]):j>=55296&&j<57344?(j=(j&1023)+64,H=C.charCodeAt(B++)&1023,I=I>>>8^e[(I^(240|j>>8&7))&255],I=I>>>8^e[(I^(128|j>>2&63))&255],I=I>>>8^e[(I^(128|H>>6&15|(j&3)<<4))&255],I=I>>>8^e[(I^(128|H&63))&255]):(I=I>>>8^e[(I^(224|j>>12&15))&255],I=I>>>8^e[(I^(128|j>>6&63))&255],I=I>>>8^e[(I^(128|j&63))&255]);return~I}return t.table=e,t.bstr=w,t.buf=y,t.str=T,t}(),ut=function(){var r={};r.version="1.2.1";function e(ie,ge){for(var le=ie.split("/"),ue=ge.split("/"),pe=0,me=0,Ie=Math.min(le.length,ue.length);pe>>1,ie.write_shift(2,le);var ue=ge.getFullYear()-1980;ue=ue<<4|ge.getMonth()+1,ue=ue<<5|ge.getDate(),ie.write_shift(2,ue)}function o(ie){var ge=ie.read_shift(2)&65535,le=ie.read_shift(2)&65535,ue=new Date,pe=le&31;le>>>=5;var me=le&15;le>>>=4,ue.setMilliseconds(0),ue.setFullYear(le+1980),ue.setMonth(me-1),ue.setDate(pe);var Ie=ge&31;ge>>>=5;var je=ge&63;return ge>>>=6,ue.setHours(ge),ue.setMinutes(je),ue.setSeconds(Ie<<1),ue}function h(ie){kr(ie,0);for(var ge={},le=0;ie.l<=ie.length-4;){var ue=ie.read_shift(2),pe=ie.read_shift(2),me=ie.l+pe,Ie={};switch(ue){case 21589:le=ie.read_shift(1),le&1&&(Ie.mtime=ie.read_shift(4)),pe>5&&(le&2&&(Ie.atime=ie.read_shift(4)),le&4&&(Ie.ctime=ie.read_shift(4))),Ie.mtime&&(Ie.mt=new Date(Ie.mtime*1e3));break}ie.l=me,ge[ue]=Ie}return ge}var c;function a(){return c||(c={})}function f(ie,ge){if(ie[0]==80&&ie[1]==75)return Ve(ie,ge);if((ie[0]|32)==109&&(ie[1]|32)==105)return ft(ie,ge);if(ie.length<512)throw new Error("CFB file size "+ie.length+" < 512");var le=3,ue=512,pe=0,me=0,Ie=0,je=0,Fe=0,Pe=[],Oe=ie.slice(0,512);kr(Oe,0);var $e=l(Oe);switch(le=$e[0],le){case 3:ue=512;break;case 4:ue=4096;break;case 0:if($e[1]==0)return Ve(ie,ge);default:throw new Error("Major Version: Expected 3 or 4 saw "+le)}ue!==512&&(Oe=ie.slice(0,ue),kr(Oe,28));var ce=ie.slice(0,ue);u(Oe,le);var Te=Oe.read_shift(4,"i");if(le===3&&Te!==0)throw new Error("# Directory Sectors: Expected 0 saw "+Te);Oe.l+=4,Ie=Oe.read_shift(4,"i"),Oe.l+=4,Oe.chk("00100000","Mini Stream Cutoff Size: "),je=Oe.read_shift(4,"i"),pe=Oe.read_shift(4,"i"),Fe=Oe.read_shift(4,"i"),me=Oe.read_shift(4,"i");for(var Ee=-1,Ue=0;Ue<109&&(Ee=Oe.read_shift(4,"i"),!(Ee<0));++Ue)Pe[Ue]=Ee;var Ke=p(ie,ue);v(Fe,me,Ke,ue,Pe);var at=g(Ke,Ie,Pe,ue);at[Ie].name="!Directory",pe>0&&je!==H&&(at[je].name="!MiniFAT"),at[Pe[0]].name="!FAT",at.fat_addrs=Pe,at.ssz=ue;var dt={},Nt=[],pr=[],Jt=[];b(Ie,at,Ke,Nt,pe,dt,pr,je),m(pr,Jt,Nt),Nt.shift();var jt={FileIndex:pr,FullPaths:Jt};return ge&&ge.raw&&(jt.raw={header:ce,sectors:Ke}),jt}function l(ie){if(ie[ie.l]==80&&ie[ie.l+1]==75)return[0,0];ie.chk(G,"Header Signature: "),ie.l+=16;var ge=ie.read_shift(2,"u");return[ie.read_shift(2,"u"),ge]}function u(ie,ge){var le=9;switch(ie.l+=2,le=ie.read_shift(2)){case 9:if(ge!=3)throw new Error("Sector Shift: Expected 9 saw "+le);break;case 12:if(ge!=4)throw new Error("Sector Shift: Expected 12 saw "+le);break;default:throw new Error("Sector Shift: Expected 9 or 12 saw "+le)}ie.chk("0600","Mini Sector Shift: "),ie.chk("000000000000","Reserved: ")}function p(ie,ge){for(var le=Math.ceil(ie.length/ge)-1,ue=[],pe=1;pe0&&Ie>=0;)me.push(ge.slice(Ie*j,Ie*j+j)),pe-=j,Ie=Fi(le,Ie*4);return me.length===0?We(0):yr(me).slice(0,ie.size)}function v(ie,ge,le,ue,pe){var me=H;if(ie===H){if(ge!==0)throw new Error("DIFAT chain shorter than expected")}else if(ie!==-1){var Ie=le[ie],je=(ue>>>2)-1;if(!Ie)return;for(var Fe=0;Fe=0;){pe[Fe]=!0,me[me.length]=Fe,Ie.push(ie[Fe]);var Oe=le[Math.floor(Fe*4/ue)];if(Pe=Fe*4&je,ue<4+Pe)throw new Error("FAT boundary crossed: "+Fe+" 4 "+ue);if(!ie[Oe])break;Fe=Fi(ie[Oe],Pe)}return{nodes:me,data:Sc([Ie])}}function g(ie,ge,le,ue){var pe=ie.length,me=[],Ie=[],je=[],Fe=[],Pe=ue-1,Oe=0,$e=0,ce=0,Te=0;for(Oe=0;Oe=pe&&(ce-=pe),!Ie[ce]){Fe=[];var Ee=[];for($e=ce;$e>=0;){Ee[$e]=!0,Ie[$e]=!0,je[je.length]=$e,Fe.push(ie[$e]);var Ue=le[Math.floor($e*4/ue)];if(Te=$e*4&Pe,ue<4+Te)throw new Error("FAT boundary crossed: "+$e+" 4 "+ue);if(!ie[Ue]||($e=Fi(ie[Ue],Te),Ee[$e]))break}me[ce]={nodes:je,data:Sc([Fe])}}return me}function b(ie,ge,le,ue,pe,me,Ie,je){for(var Fe=0,Pe=ue.length?2:0,Oe=ge[ie].data,$e=0,ce=0,Te;$e0&&Fe!==H&&(ge[Fe].name="!StreamData")):Ue.size>=4096?(Ue.storage="fat",ge[Ue.start]===void 0&&(ge[Ue.start]=x(le,Ue.start,ge.fat_addrs,ge.ssz)),ge[Ue.start].name=Ue.name,Ue.content=ge[Ue.start].data.slice(0,Ue.size)):(Ue.storage="minifat",Ue.size<0?Ue.size=0:Fe!==H&&Ue.start!==H&&ge[Fe]&&(Ue.content=d(Ue,ge[Fe].data,(ge[je]||{}).data))),Ue.content&&kr(Ue.content,0),me[Te]=Ue,Ie.push(Ue)}}function w(ie,ge){return new Date((en(ie,ge+4)/1e7*Math.pow(2,32)+en(ie,ge)/1e7-11644473600)*1e3)}function y(ie,ge){return a(),f(c.readFileSync(ie),ge)}function T(ie,ge){var le=ge&&ge.type;switch(le||St&&Buffer.isBuffer(ie)&&(le="buffer"),le||"base64"){case"file":return y(ie,ge);case"base64":return f(tn(nn(ie)),ge);case"binary":return f(tn(ie),ge)}return f(ie,ge)}function C(ie,ge){var le=ge||{},ue=le.root||"Root Entry";if(ie.FullPaths||(ie.FullPaths=[]),ie.FileIndex||(ie.FileIndex=[]),ie.FullPaths.length!==ie.FileIndex.length)throw new Error("inconsistent CFB structure");ie.FullPaths.length===0&&(ie.FullPaths[0]=ue+"/",ie.FileIndex[0]={name:ue,type:5}),le.CLSID&&(ie.FileIndex[0].clsid=le.CLSID),M(ie)}function M(ie){var ge="Sh33tJ5";if(!ut.find(ie,"/"+ge)){var le=We(4);le[0]=55,le[1]=le[3]=50,le[2]=54,ie.FileIndex.push({name:ge,type:2,content:le,size:4,L:69,R:69,C:69}),ie.FullPaths.push(ie.FullPaths[0]+ge),I(ie)}}function I(ie,ge){C(ie);for(var le=!1,ue=!1,pe=ie.FullPaths.length-1;pe>=0;--pe){var me=ie.FileIndex[pe];switch(me.type){case 0:ue?le=!0:(ie.FileIndex.pop(),ie.FullPaths.pop());break;case 1:case 2:case 5:ue=!0,isNaN(me.R*me.L*me.C)&&(le=!0),me.R>-1&&me.L>-1&&me.R==me.L&&(le=!0);break;default:le=!0;break}}if(!(!le&&!ge)){var Ie=new Date(1987,1,19),je=0,Fe=Object.create?Object.create(null):{},Pe=[];for(pe=0;pe1?1:-1,$e.size=0,$e.type=5;else if(ce.slice(-1)=="/"){for(je=pe+1;je=Pe.length?-1:je,je=pe+1;je=Pe.length?-1:je,$e.type=1}else n(ie.FullPaths[pe+1]||"")==n(ce)&&($e.R=pe+1),$e.type=2}}}function B(ie,ge){var le=ge||{};if(le.fileType=="mad")return kt(ie,le);switch(I(ie),le.fileType){case"zip":return ct(ie,le)}var ue=function(Te){for(var Ee=0,Ue=0,Ke=0;Ke0&&(dt<4096?Ee+=dt+63>>6:Ue+=dt+511>>9)}}for(var Nt=Te.FullPaths.length+3>>2,pr=Ee+7>>3,Jt=Ee+127>>7,jt=pr+Ue+Nt+Jt,mr=jt+127>>7,Ur=mr<=109?0:Math.ceil((mr-109)/127);jt+mr+Ur+127>>7>mr;)Ur=++mr<=109?0:Math.ceil((mr-109)/127);var Ot=[1,Ur,mr,Jt,Nt,Ue,Ee,0];return Te.FileIndex[0].size=Ee<<6,Ot[7]=(Te.FileIndex[0].start=Ot[0]+Ot[1]+Ot[2]+Ot[3]+Ot[4]+Ot[5])+(Ot[6]+7>>3),Ot}(ie),pe=We(ue[7]<<9),me=0,Ie=0;{for(me=0;me<8;++me)pe.write_shift(1,L[me]);for(me=0;me<8;++me)pe.write_shift(2,0);for(pe.write_shift(2,62),pe.write_shift(2,3),pe.write_shift(2,65534),pe.write_shift(2,9),pe.write_shift(2,6),me=0;me<3;++me)pe.write_shift(2,0);for(pe.write_shift(4,0),pe.write_shift(4,ue[2]),pe.write_shift(4,ue[0]+ue[1]+ue[2]+ue[3]-1),pe.write_shift(4,0),pe.write_shift(4,4096),pe.write_shift(4,ue[3]?ue[0]+ue[1]+ue[2]-1:H),pe.write_shift(4,ue[3]),pe.write_shift(-4,ue[1]?ue[0]-1:H),pe.write_shift(4,ue[1]),me=0;me<109;++me)pe.write_shift(-4,me>9)));for(je(ue[6]+7>>3);pe.l&511;)pe.write_shift(-4,F.ENDOFCHAIN);for(Ie=me=0,Fe=0;Fe=4096)&&(Oe.start=Ie,je(Pe+63>>6)));for(;pe.l&511;)pe.write_shift(-4,F.ENDOFCHAIN);for(me=0;me=4096)if(pe.l=Oe.start+1<<9,St&&Buffer.isBuffer(Oe.content))Oe.content.copy(pe,pe.l,0,Oe.size),pe.l+=Oe.size+511&-512;else{for(Fe=0;Fe0&&Oe.size<4096)if(St&&Buffer.isBuffer(Oe.content))Oe.content.copy(pe,pe.l,0,Oe.size),pe.l+=Oe.size+63&-64;else{for(Fe=0;Fe>16|ge>>8|ge)&255}for(var re=typeof Uint8Array<"u",se=re?new Uint8Array(256):[],Ce=0;Ce<256;++Ce)se[Ce]=J(Ce);function Y(ie,ge){var le=se[ie&255];return ge<=8?le>>>8-ge:(le=le<<8|se[ie>>8&255],ge<=16?le>>>16-ge:(le=le<<8|se[ie>>16&255],le>>>24-ge))}function q(ie,ge){var le=ge&7,ue=ge>>>3;return(ie[ue]|(le<=6?0:ie[ue+1]<<8))>>>le&3}function K(ie,ge){var le=ge&7,ue=ge>>>3;return(ie[ue]|(le<=5?0:ie[ue+1]<<8))>>>le&7}function Q(ie,ge){var le=ge&7,ue=ge>>>3;return(ie[ue]|(le<=4?0:ie[ue+1]<<8))>>>le&15}function he(ie,ge){var le=ge&7,ue=ge>>>3;return(ie[ue]|(le<=3?0:ie[ue+1]<<8))>>>le&31}function we(ie,ge){var le=ge&7,ue=ge>>>3;return(ie[ue]|(le<=1?0:ie[ue+1]<<8))>>>le&127}function ae(ie,ge,le){var ue=ge&7,pe=ge>>>3,me=(1<>>ue;return le<8-ue||(Ie|=ie[pe+1]<<8-ue,le<16-ue)||(Ie|=ie[pe+2]<<16-ue,le<24-ue)||(Ie|=ie[pe+3]<<24-ue),Ie&me}function te(ie,ge,le){var ue=ge&7,pe=ge>>>3;return ue<=5?ie[pe]|=(le&7)<>8-ue),ge+3}function Z(ie,ge,le){var ue=ge&7,pe=ge>>>3;return le=(le&1)<>>3;return le<<=ue,ie[pe]|=le&255,le>>>=8,ie[pe+1]=le,ge+8}function V(ie,ge,le){var ue=ge&7,pe=ge>>>3;return le<<=ue,ie[pe]|=le&255,le>>>=8,ie[pe+1]=le&255,ie[pe+2]=le>>>8,ge+16}function fe(ie,ge){var le=ie.length,ue=2*le>ge?2*le:ge+5,pe=0;if(le>=ge)return ie;if(St){var me=ac(ue);if(ie.copy)ie.copy(me);else for(;pe>ue-$e,Ie=(1<=0;--Ie)ge[je|Ie<<$e]=$e&15|me<<4;return ue}var ve=re?new Uint16Array(512):ye(512),ke=re?new Uint16Array(32):ye(32);if(!re){for(var ee=0;ee<512;++ee)ve[ee]=0;for(ee=0;ee<32;++ee)ke[ee]=0}(function(){for(var ie=[],ge=0;ge<32;ge++)ie.push(5);X(ie,ke,32);var le=[];for(ge=0;ge<=143;ge++)le.push(8);for(;ge<=255;ge++)le.push(9);for(;ge<=279;ge++)le.push(7);for(;ge<=287;ge++)le.push(8);X(le,ve,288)})();var ne=function(){for(var ge=re?new Uint8Array(32768):[],le=0,ue=0;le0;)Fe[Fe.l++]=je[Pe++]}return Fe.l}function Ie(je,Fe){for(var Pe=0,Oe=0,$e=re?new Uint16Array(32768):[];Oe0;)Fe[Fe.l++]=je[Oe++];Pe=Fe.l*8;continue}Pe=te(Fe,Pe,+(Oe+ce==je.length)+2);for(var Te=0;ce-- >0;){var Ee=je[Oe];Te=(Te<<5^Ee)&32767;var Ue=-1,Ke=0;if((Ue=$e[Te])&&(Ue|=Oe&-32768,Ue>Oe&&(Ue-=32768),Ue2){Ee=pe[Ke],Ee<=22?Pe=W(Fe,Pe,se[Ee+1]>>1)-1:(W(Fe,Pe,3),Pe+=5,W(Fe,Pe,se[Ee-23]>>5),Pe+=3);var at=Ee<8?0:Ee-4>>2;at>0&&(V(Fe,Pe,Ke-O[Ee]),Pe+=at),Ee=ge[Oe-Ue],Pe=W(Fe,Pe,se[Ee]>>3),Pe-=3;var dt=Ee<4?0:Ee-2>>1;dt>0&&(V(Fe,Pe,Oe-Ue-z[Ee]),Pe+=dt);for(var Nt=0;Nt>8-Ee;for(var Ue=(1<<7-Ee)-1;Ue>=0;--Ue)Ae[Te|Ue<>>=3){case 16:for(me=3+q(ie,ge),ge+=2,Te=Ke[Ke.length-1];me-- >0;)Ke.push(Te);break;case 17:for(me=3+K(ie,ge),ge+=3;me-- >0;)Ke.push(0);break;case 18:for(me=11+we(ie,ge),ge+=7;me-- >0;)Ke.push(0);break;default:Ke.push(Te),Fe>>0,je=0,Fe=0;!(ue&1);){if(ue=K(ie,le),le+=3,ue>>>1)ue>>1==1?(je=9,Fe=5):(le=Le(ie,le),je=Ne,Fe=Xe);else{le&7&&(le+=8-(le&7));var Pe=ie[le>>>3]|ie[(le>>>3)+1]<<8;if(le+=32,Pe>0)for(!ge&&Ie0;)pe[me++]=ie[le>>>3],le+=8;continue}for(;;){!ge&&Ie>>1==1?ve[Oe]:_e[Oe];if(le+=$e&15,$e>>>=4,!($e>>>8&255))pe[me++]=$e;else{if($e==256)break;$e-=257;var ce=$e<8?0:$e-4>>2;ce>5&&(ce=0);var Te=me+O[$e];ce>0&&(Te+=ae(ie,le,ce),le+=ce),Oe=ae(ie,le,Fe),$e=ue>>>1==1?ke[Oe]:Re[Oe],le+=$e&15,$e>>>=4;var Ee=$e<4?0:$e-2>>1,Ue=z[$e];for(Ee>0&&(Ue+=ae(ie,le,Ee),le+=Ee),!ge&&Ie>>3]:[pe.slice(0,me),le+7>>>3]}function Me(ie,ge){var le=ie.slice(ie.l||0),ue=xe(le,ge);return ie.l+=ue[1],ue[0]}function Be(ie,ge){if(ie)typeof console<"u"&&console.error(ge);else throw new Error(ge)}function Ve(ie,ge){var le=ie;kr(le,0);var ue=[],pe=[],me={FileIndex:ue,FullPaths:pe};C(me,{root:ge.root});for(var Ie=le.length-4;(le[Ie]!=80||le[Ie+1]!=75||le[Ie+2]!=5||le[Ie+3]!=6)&&Ie>=0;)--Ie;le.l=Ie+4,le.l+=4;var je=le.read_shift(2);le.l+=6;var Fe=le.read_shift(4);for(le.l=Fe,Ie=0;Ie0&&(le=le.slice(0,le.length-1),le=le.slice(0,le.lastIndexOf("/")+1),me.slice(0,le.length)!=le););var Ie=(ue[1]||"").match(/boundary="(.*?)"/);if(!Ie)throw new Error("MAD cannot find boundary");var je="--"+(Ie[1]||""),Fe=[],Pe=[],Oe={FileIndex:Fe,FullPaths:Pe};C(Oe);var $e,ce=0;for(pe=0;pe=32&&Te<128&&++$e;var Ue=$e>=ce*4/5;pe.push(ue),pe.push("Content-Location: "+(le.root||"file:///C:/SheetJS/")+Ie),pe.push("Content-Transfer-Encoding: "+(Ue?"quoted-printable":"base64")),pe.push("Content-Type: "+nt(je,Ie)),pe.push(""),pe.push(Ue?et(Oe):mt(Oe))}return pe.push(ue+`--\r +`),pe.join(`\r +`)}function Tt(ie){var ge={};return C(ge,ie),ge}function lt(ie,ge,le,ue){var pe=ue&&ue.unsafe;pe||C(ie);var me=!pe&&ut.find(ie,ge);if(!me){var Ie=ie.FullPaths[0];ge.slice(0,Ie.length)==Ie?Ie=ge:(Ie.slice(-1)!="/"&&(Ie+="/"),Ie=(Ie+ge).replace("//","/")),me={name:i(ge),type:2},ie.FileIndex.push(me),ie.FullPaths.push(Ie),pe||ut.utils.cfb_gc(ie)}return me.content=le,me.size=le?le.length:0,ue&&(ue.CLSID&&(me.clsid=ue.CLSID),ue.mt&&(me.mt=ue.mt),ue.ct&&(me.ct=ue.ct)),me}function Ct(ie,ge){C(ie);var le=ut.find(ie,ge);if(le){for(var ue=0;ue3&&(n=!0),i[s].slice(i[s].length-1)){case"Y":throw new Error("Unsupported ISO Duration Field: "+i[s].slice(i[s].length-1));case"D":e*=24;case"H":e*=60;case"M":if(n)e*=60;else throw new Error("Unsupported ISO Duration Field: M")}r+=e*parseInt(i[s],10)}return r}var gc=new Date("2017-02-19T19:06:09.000Z"),Jh=isNaN(gc.getFullYear())?new Date("2/19/17"):gc,Rm=Jh.getFullYear()==2017;function qt(t,r){var e=new Date(t);if(Rm)return r>0?e.setTime(e.getTime()+e.getTimezoneOffset()*60*1e3):r<0&&e.setTime(e.getTime()-e.getTimezoneOffset()*60*1e3),e;if(t instanceof Date)return t;if(Jh.getFullYear()==1917&&!isNaN(e.getFullYear())){var n=e.getFullYear();return t.indexOf(""+n)>-1||e.setFullYear(e.getFullYear()+100),e}var i=t.match(/\d+/g)||["2017","2","19","0","0","0"],s=new Date(+i[0],+i[1]-1,+i[2],+i[3]||0,+i[4]||0,+i[5]||0);return t.indexOf("Z")>-1&&(s=new Date(s.getTime()-s.getTimezoneOffset()*60*1e3)),s}function ji(t,r){if(St&&Buffer.isBuffer(t)){if(r){if(t[0]==255&&t[1]==254)return Ln(t.slice(2).toString("utf16le"));if(t[1]==254&&t[2]==255)return Ln(Lh(t.slice(2).toString("binary")))}return t.toString("binary")}if(typeof TextDecoder<"u")try{if(r){if(t[0]==255&&t[1]==254)return Ln(new TextDecoder("utf-16le").decode(t.slice(2)));if(t[0]==254&&t[1]==255)return Ln(new TextDecoder("utf-16be").decode(t.slice(2)))}var e={"€":"€","‚":"‚",ƒ:"ƒ","„":"„","…":"…","†":"†","‡":"‡","ˆ":"ˆ","‰":"‰",Š:"Š","‹":"‹",Œ:"Œ",Ž:"Ž","‘":"‘","’":"’","“":"“","”":"”","•":"•","–":"–","—":"—","˜":"˜","™":"™",š:"š","›":"›",œ:"œ",ž:"ž",Ÿ:"Ÿ"};return Array.isArray(t)&&(t=new Uint8Array(t)),new TextDecoder("latin1").decode(t).replace(/[€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ]/g,function(s){return e[s]||s})}catch{}for(var n=[],i=0;i!=t.length;++i)n.push(String.fromCharCode(t[i]));return n.join("")}function Zt(t){if(typeof JSON<"u"&&!Array.isArray(t))return JSON.parse(JSON.stringify(t));if(typeof t!="object"||t==null)return t;if(t instanceof Date)return new Date(t.getTime());var r={};for(var e in t)Object.prototype.hasOwnProperty.call(t,e)&&(r[e]=Zt(t[e]));return r}function tr(t,r){for(var e="";e.length3&&Mm.indexOf(o)==-1)return e}else if(o.match(/[a-z]/))return e;return n<0||n>8099?e:(i>0||s>1)&&n!=101?r:t.match(/[^-0-9:,\/\\]/)?e:r}var Om=function(){var t="abacaba".split(/(:?b)/i).length==5;return function(e,n,i){if(t||typeof n=="string")return e.split(n);for(var s=e.split(n),o=[s[0]],h=1;h\r +`,Dm=/([^"\s?>\/]+)\s*=\s*((?:")([^"]*)(?:")|(?:')([^']*)(?:')|([^'">\s]+))/g,xc=/<[\/\?]?[a-zA-Z0-9:_-]+(?:\s+[^"\s?>\/]+\s*=\s*(?:"[^"]*"|'[^']*'|[^'">\s=]+))*\s*[\/\?]?>/mg,Nm=/<[^>]*>/g,jr=fr.match(xc)?xc:Nm,Pm=/<\w*:/,Bm=/<(\/?)\w+:/;function bt(t,r,e){for(var n={},i=0,s=0;i!==t.length&&!((s=t.charCodeAt(i))===32||s===10||s===13);++i);if(r||(n[0]=t.slice(0,i)),i===t.length)return n;var o=t.match(Dm),h=0,c="",a=0,f="",l="",u=1;if(o)for(a=0;a!=o.length;++a){for(l=o[a],s=0;s!=l.length&&l.charCodeAt(s)!==61;++s);for(f=l.slice(0,s).trim();l.charCodeAt(s+1)==32;)++s;for(u=(i=l.charCodeAt(s+1))==34||i==39?1:0,c=l.slice(s+1+u,l.length-u),h=0;h!=f.length&&f.charCodeAt(h)!==58;++h);if(h===f.length)f.indexOf("_")>0&&(f=f.slice(0,f.indexOf("_"))),n[f]=c,e||(n[f.toLowerCase()]=c);else{var p=(h===5&&f.slice(0,5)==="xmlns"?"xmlns":"")+f.slice(h+1);if(n[p]&&f.slice(h-3,h)=="ext")continue;n[p]=c,e||(n[p.toLowerCase()]=c)}}return n}function Hn(t){return t.replace(Bm,"<$1")}var ru={""":'"',"'":"'",">":">","<":"<","&":"&"},Zf=go(ru),Pt=function(){var t=/&(?:quot|apos|gt|lt|amp|#x?([\da-fA-F]+));/ig,r=/_x([\da-fA-F]{4})_/ig;return function e(n){var i=n+"",s=i.indexOf("-1?16:10))||h}).replace(r,function(h,c){return String.fromCharCode(parseInt(c,16))});var o=i.indexOf("]]>");return e(i.slice(0,s))+i.slice(s+9,o)+e(i.slice(o+3))}}(),Jf=/[&<>'"]/g,Lm=/[\u0000-\u0008\u000b-\u001f]/g;function $t(t){var r=t+"";return r.replace(Jf,function(e){return Zf[e]}).replace(Lm,function(e){return"_x"+("000"+e.charCodeAt(0).toString(16)).slice(-4)+"_"})}function bc(t){return $t(t).replace(/ /g,"_x0020_")}var nu=/[\u0000-\u001f]/g;function Qf(t){var r=t+"";return r.replace(Jf,function(e){return Zf[e]}).replace(/\n/g,"
").replace(nu,function(e){return"&#x"+("000"+e.charCodeAt(0).toString(16)).slice(-4)+";"})}function jm(t){var r=t+"";return r.replace(Jf,function(e){return Zf[e]}).replace(nu,function(e){return"&#x"+e.charCodeAt(0).toString(16).toUpperCase()+";"})}var wc=function(){var t=/&#(\d+);/g;function r(e,n){return String.fromCharCode(parseInt(n,10))}return function(n){return n.replace(t,r)}}();function Um(t){return t.replace(/(\r\n|[\r\n])/g," ")}function Yt(t){switch(t){case 1:case!0:case"1":case"true":case"TRUE":return!0;default:return!1}}function Wo(t){for(var r="",e=0,n=0,i=0,s=0,o=0,h=0;e191&&n<224){o=(n&31)<<6,o|=i&63,r+=String.fromCharCode(o);continue}if(s=t.charCodeAt(e++),n<240){r+=String.fromCharCode((n&15)<<12|(i&63)<<6|s&63);continue}o=t.charCodeAt(e++),h=((n&7)<<18|(i&63)<<12|(s&63)<<6|o&63)-65536,r+=String.fromCharCode(55296+(h>>>10&1023)),r+=String.fromCharCode(56320+(h&1023))}return r}function yc(t){var r=pi(2*t.length),e,n,i=1,s=0,o=0,h;for(n=0;n>>10&1023),e=56320+(e&1023)),o!==0&&(r[s++]=o&255,r[s++]=o>>>8,o=0),r[s++]=e%256,r[s++]=e>>>8;return r.slice(0,s).toString("ucs2")}function _c(t){return ri(t,"binary").toString("utf8")}var Ma="foo bar baz☃🍣",Wt=St&&(_c(Ma)==Wo(Ma)&&_c||yc(Ma)==Wo(Ma)&&yc)||Wo,Ln=St?function(t){return ri(t,"utf8").toString("binary")}:function(t){for(var r=[],e=0,n=0,i=0;e>6))),r.push(String.fromCharCode(128+(n&63)));break;case(n>=55296&&n<57344):n-=55296,i=t.charCodeAt(e++)-56320+(n<<10),r.push(String.fromCharCode(240+(i>>18&7))),r.push(String.fromCharCode(144+(i>>12&63))),r.push(String.fromCharCode(128+(i>>6&63))),r.push(String.fromCharCode(128+(i&63)));break;default:r.push(String.fromCharCode(224+(n>>12))),r.push(String.fromCharCode(128+(n>>6&63))),r.push(String.fromCharCode(128+(n&63)))}return r.join("")},Hs=function(){var t={};return function(e,n){var i=e+"|"+(n||"");return t[i]?t[i]:t[i]=new RegExp("<(?:\\w+:)?"+e+'(?: xml:space="preserve")?(?:[^>]*)>([\\s\\S]*?)",n||"")}}(),Hm=function(){var t=[["nbsp"," "],["middot","·"],["quot",'"'],["apos","'"],["gt",">"],["lt","<"],["amp","&"]].map(function(r){return[new RegExp("&"+r[0]+";","ig"),r[1]]});return function(e){for(var n=e.replace(/^[\t\n\r ]+/,"").replace(/[\t\n\r ]+$/,"").replace(/>\s+/g,">").replace(/\s+/g,` +`).replace(/<[^>]*>/g,""),i=0;i([\\s\\S]*?)","g")}}(),$m=/<\/?(?:vt:)?variant>/g,Wm=/<(?:vt:)([^>]*)>([\s\S]*)"+r+""}function zs(t){return or(t).map(function(r){return" "+r+'="'+t[r]+'"'}).join("")}function Qe(t,r,e){return"<"+t+(e!=null?zs(e):"")+(r!=null?(r.match(iu)?' xml:space="preserve"':"")+">"+r+""}function bf(t,r){try{return t.toISOString().replace(/\.\d*/,"")}catch(e){if(r)throw e}return""}function Xm(t,r){switch(typeof t){case"string":var e=Qe("vt:lpwstr",$t(t));return r&&(e=e.replace(/"/g,"_x0022_")),e;case"number":return Qe((t|0)==t?"vt:i4":"vt:r8",$t(String(t)));case"boolean":return Qe("vt:bool",t?"true":"false")}if(t instanceof Date)return Qe("vt:filetime",bf(t));throw new Error("Unable to serialize "+t)}function qf(t){if(St&&Buffer.isBuffer(t))return t.toString("utf8");if(typeof t=="string")return t;if(typeof Uint8Array<"u"&&t instanceof Uint8Array)return Wt(bi(Xf(t)));throw new Error("Bad input format: expected Buffer or string")}var $s=/<(\/?)([^\s?>:\/]+)(?:[\s?:\/][^>]*)?>/mg,gr={CORE_PROPS:"http://schemas.openxmlformats.org/package/2006/metadata/core-properties",CUST_PROPS:"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties",EXT_PROPS:"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties",CT:"http://schemas.openxmlformats.org/package/2006/content-types",RELS:"http://schemas.openxmlformats.org/package/2006/relationships",TCMNT:"http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments",dc:"http://purl.org/dc/elements/1.1/",dcterms:"http://purl.org/dc/terms/",dcmitype:"http://purl.org/dc/dcmitype/",mx:"http://schemas.microsoft.com/office/mac/excel/2008/main",r:"http://schemas.openxmlformats.org/officeDocument/2006/relationships",sjs:"http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties",vt:"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",xsi:"http://www.w3.org/2001/XMLSchema-instance",xsd:"http://www.w3.org/2001/XMLSchema"},Wi=["http://schemas.openxmlformats.org/spreadsheetml/2006/main","http://purl.oclc.org/ooxml/spreadsheetml/main","http://schemas.microsoft.com/office/excel/2006/main","http://schemas.microsoft.com/office/excel/2006/2"],qr={o:"urn:schemas-microsoft-com:office:office",x:"urn:schemas-microsoft-com:office:excel",ss:"urn:schemas-microsoft-com:office:spreadsheet",dt:"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882",mv:"http://macVmlSchemaUri",v:"urn:schemas-microsoft-com:vml",html:"http://www.w3.org/TR/REC-html40"};function Vm(t,r){for(var e=1-2*(t[r+7]>>>7),n=((t[r+7]&127)<<4)+(t[r+6]>>>4&15),i=t[r+6]&15,s=5;s>=0;--s)i=i*256+t[r+s];return n==2047?i==0?e*(1/0):NaN:(n==0?n=-1022:(n-=1023,i+=Math.pow(2,52)),e*Math.pow(2,n-52)*i)}function Gm(t,r,e){var n=(r<0||1/r==-1/0?1:0)<<7,i=0,s=0,o=n?-r:r;isFinite(o)?o==0?i=s=0:(i=Math.floor(Math.log(o)/Math.LN2),s=o*Math.pow(2,52-i),i<=-1023&&(!isFinite(s)||s>4|n}var Tc=function(t){for(var r=[],e=10240,n=0;n0&&Buffer.isBuffer(t[0][0])?Buffer.concat(t[0].map(function(r){return Buffer.isBuffer(r)?r:ri(r)})):Tc(t)}:Tc,kc=function(t,r,e){for(var n=[],i=r;i0?ta(t,r+4,r+4+e-1):""},ou=au,fu=function(t,r){var e=en(t,r);return e>0?ta(t,r+4,r+4+e-1):""},lu=fu,cu=function(t,r){var e=2*en(t,r);return e>0?ta(t,r+4,r+4+e-1):""},hu=cu,uu=function(r,e){var n=en(r,e);return n>0?el(r,e+4,e+4+n):""},du=uu,pu=function(t,r){var e=en(t,r);return e>0?ta(t,r+4,r+4+e):""},mu=pu,gu=function(t,r){return Vm(t,r)},io=gu,tl=function(r){return Array.isArray(r)||typeof Uint8Array<"u"&&r instanceof Uint8Array};St&&(ou=function(r,e){if(!Buffer.isBuffer(r))return au(r,e);var n=r.readUInt32LE(e);return n>0?r.toString("utf8",e+4,e+4+n-1):""},lu=function(r,e){if(!Buffer.isBuffer(r))return fu(r,e);var n=r.readUInt32LE(e);return n>0?r.toString("utf8",e+4,e+4+n-1):""},hu=function(r,e){if(!Buffer.isBuffer(r))return cu(r,e);var n=2*r.readUInt32LE(e);return r.toString("utf16le",e+4,e+4+n-1)},du=function(r,e){if(!Buffer.isBuffer(r))return uu(r,e);var n=r.readUInt32LE(e);return r.toString("utf16le",e+4,e+4+n)},mu=function(r,e){if(!Buffer.isBuffer(r))return pu(r,e);var n=r.readUInt32LE(e);return r.toString("utf8",e+4,e+4+n)},io=function(r,e){return Buffer.isBuffer(r)?r.readDoubleLE(e):gu(r,e)},tl=function(r){return Buffer.isBuffer(r)||Array.isArray(r)||typeof Uint8Array<"u"&&r instanceof Uint8Array});var os=function(t,r){return t[r]},Zn=function(t,r){return t[r+1]*256+t[r]},Km=function(t,r){var e=t[r+1]*256+t[r];return e<32768?e:(65535-e+1)*-1},en=function(t,r){return t[r+3]*(1<<24)+(t[r+2]<<16)+(t[r+1]<<8)+t[r]},Fi=function(t,r){return t[r+3]<<24|t[r+2]<<16|t[r+1]<<8|t[r]},Ym=function(t,r){return t[r]<<24|t[r+1]<<16|t[r+2]<<8|t[r+3]};function Rs(t,r){var e="",n,i,s=[],o,h,c,a;switch(r){case"dbcs":if(a=this.l,St&&Buffer.isBuffer(this))e=this.slice(this.l,this.l+2*t).toString("utf16le");else for(c=0;c0?Fi:Ym)(this,this.l),this.l+=4,n):(i=en(this,this.l),this.l+=4,i);case 8:case-8:if(r==="f")return t==8?i=io(this,this.l):i=io([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]],0),this.l+=8,i;t=8;case 16:e=su(this,this.l,t);break}}return this.l+=t,e}var Zm=function(t,r,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24&255},Jm=function(t,r,e){t[e]=r&255,t[e+1]=r>>8&255,t[e+2]=r>>16&255,t[e+3]=r>>24&255},Qm=function(t,r,e){t[e]=r&255,t[e+1]=r>>>8&255};function qm(t,r,e){var n=0,i=0;if(e==="dbcs"){for(i=0;i!=r.length;++i)Qm(this,r.charCodeAt(i),this.l+2*i);n=2*r.length}else if(e==="sbcs"){for(r=r.replace(/[^\x00-\x7F]/g,"_"),i=0;i!=r.length;++i)this[this.l+i]=r.charCodeAt(i)&255;n=r.length}else if(e==="hex"){for(;i>8}for(;this.l>>=8,this[this.l+1]=r&255;break;case 3:n=3,this[this.l]=r&255,r>>>=8,this[this.l+1]=r&255,r>>>=8,this[this.l+2]=r&255;break;case 4:n=4,Zm(this,r,this.l);break;case 8:if(n=8,e==="f"){Gm(this,r,this.l);break}case 16:break;case-4:n=4,Jm(this,r,this.l);break}return this.l+=n,this}function vu(t,r){var e=su(this,this.l,t.length>>1);if(e!==t)throw new Error(r+"Expected "+t+" saw "+e);this.l+=t.length>>1}function kr(t,r){t.l=r,t.read_shift=Rs,t.chk=vu,t.write_shift=qm}function Lr(t,r){t.l+=r}function We(t){var r=pi(t);return kr(r,0),r}function ni(t,r,e){if(t){var n,i,s;kr(t,t.l||0);for(var o=t.length,h=0,c=0;t.ln.l&&(n=n.slice(0,n.l),n.l=n.length),n.length>0&&t.push(n),n=null)},s=function(a){return n&&a=128?1:0)+1,n>=128&&++s,n>=16384&&++s,n>=2097152&&++s;var o=t.next(s);i<=127?o.write_shift(1,i):(o.write_shift(1,(i&127)+128),o.write_shift(1,i>>7));for(var h=0;h!=4;++h)if(n>=128)o.write_shift(1,(n&127)+128),n>>=7;else{o.write_shift(1,n);break}n>0&&tl(e)&&t.push(e)}}function Ms(t,r,e){var n=Zt(t);if(r.s?(n.cRel&&(n.c+=r.s.c),n.rRel&&(n.r+=r.s.r)):(n.cRel&&(n.c+=r.c),n.rRel&&(n.r+=r.r)),!e||e.biff<12){for(;n.c>=256;)n.c-=256;for(;n.r>=65536;)n.r-=65536}return n}function Fc(t,r,e){var n=Zt(t);return n.s=Ms(n.s,r.s,e),n.e=Ms(n.e,r.s,e),n}function Os(t,r){if(t.cRel&&t.c<0)for(t=Zt(t);t.c<0;)t.c+=r>8?16384:256;if(t.rRel&&t.r<0)for(t=Zt(t);t.r<0;)t.r+=r>8?1048576:r>5?65536:16384;var e=yt(t);return!t.cRel&&t.cRel!=null&&(e=rg(e)),!t.rRel&&t.rRel!=null&&(e=eg(e)),e}function Xo(t,r){return t.s.r==0&&!t.s.rRel&&t.e.r==(r.biff>=12?1048575:r.biff>=8?65536:16384)&&!t.e.rRel?(t.s.cRel?"":"$")+dr(t.s.c)+":"+(t.e.cRel?"":"$")+dr(t.e.c):t.s.c==0&&!t.s.cRel&&t.e.c==(r.biff>=12?16383:255)&&!t.e.cRel?(t.s.rRel?"":"$")+Er(t.s.r)+":"+(t.e.rRel?"":"$")+Er(t.e.r):Os(t.s,r.biff)+":"+Os(t.e,r.biff)}function xu(t){return parseInt(tg(t),10)-1}function Er(t){return""+(t+1)}function eg(t){return t.replace(/([A-Z]|^)(\d+)$/,"$1$$$2")}function tg(t){return t.replace(/\$(\d+)$/,"$1")}function bu(t){for(var r=ng(t),e=0,n=0;n!==r.length;++n)e=26*e+r.charCodeAt(n)-64;return e-1}function dr(t){if(t<0)throw new Error("invalid column "+t);var r="";for(++t;t;t=Math.floor((t-1)/26))r=String.fromCharCode((t-1)%26+65)+r;return r}function rg(t){return t.replace(/^([A-Z])/,"$$$1")}function ng(t){return t.replace(/^\$([A-Z])/,"$1")}function vr(t){for(var r=0,e=0,n=0;n=48&&i<=57?r=10*r+(i-48):i>=65&&i<=90&&(e=26*e+(i-64))}return{c:e-1,r:r-1}}function yt(t){for(var r=t.c+1,e="";r;r=(r-1)/26|0)e=String.fromCharCode((r-1)%26+65)+e;return e+(t.r+1)}function mn(t){var r=t.indexOf(":");return r==-1?{s:vr(t),e:vr(t)}:{s:vr(t.slice(0,r)),e:vr(t.slice(r+1))}}function Rt(t,r){return typeof r>"u"||typeof r=="number"?Rt(t.s,t.e):(typeof t!="string"&&(t=yt(t)),typeof r!="string"&&(r=yt(r)),t==r?t:t+":"+r)}function Lt(t){var r={s:{c:0,r:0},e:{c:0,r:0}},e=0,n=0,i=0,s=t.length;for(e=0;n26);++n)e=26*e+i;for(r.s.c=--e,e=0;n9);++n)e=10*e+i;if(r.s.r=--e,n===s||i!=10)return r.e.c=r.s.c,r.e.r=r.s.r,r;for(++n,e=0;n!=s&&!((i=t.charCodeAt(n)-64)<1||i>26);++n)e=26*e+i;for(r.e.c=--e,e=0;n!=s&&!((i=t.charCodeAt(n)-48)<0||i>9);++n)e=10*e+i;return r.e.r=--e,r}function Rc(t,r){var e=t.t=="d"&&r instanceof Date;if(t.z!=null)try{return t.w=pn(t.z,e?Ar(r):r)}catch{}try{return t.w=pn((t.XF||{}).numFmtId||(e?14:0),e?Ar(r):r)}catch{return""+r}}function mi(t,r,e){return t==null||t.t==null||t.t=="z"?"":t.w!==void 0?t.w:(t.t=="d"&&!t.z&&e&&e.dateNF&&(t.z=e.dateNF),t.t=="e"?ii[t.v]||t.v:r==null?Rc(t,t.v):Rc(t,r))}function Xi(t,r){var e=r&&r.sheet?r.sheet:"Sheet1",n={};return n[e]=t,{SheetNames:[e],Sheets:n}}function ig(t,r,e){var n=e||{},i=t?Array.isArray(t):n.dense,s=t||(i?[]:{}),o=0,h=0;if(s&&n.origin!=null){if(typeof n.origin=="number")o=n.origin;else{var c=typeof n.origin=="string"?vr(n.origin):n.origin;o=c.r,h=c.c}s["!ref"]||(s["!ref"]="A1:A1")}var a={s:{c:1e7,r:1e7},e:{c:0,r:0}};if(s["!ref"]){var f=Lt(s["!ref"]);a.s.c=f.s.c,a.s.r=f.s.r,a.e.c=Math.max(a.e.c,f.e.c),a.e.r=Math.max(a.e.r,f.e.r),o==-1&&(a.e.r=o=f.e.r+1)}for(var l=0;l!=r.length;++l)if(r[l]){if(!Array.isArray(r[l]))throw new Error("aoa_to_sheet expects an array of arrays");for(var u=0;u!=r[l].length;++u)if(!(typeof r[l][u]>"u")){var p={v:r[l][u]},m=o+l,d=h+u;if(a.s.r>m&&(a.s.r=m),a.s.c>d&&(a.s.c=d),a.e.r0&&r.write_shift(0,t,"dbcs"),e?r.slice(0,r.l):r}function ag(t){return{ich:t.read_shift(2),ifnt:t.read_shift(2)}}function og(t,r){return r||(r=We(4)),r.write_shift(2,t.ich||0),r.write_shift(2,t.ifnt||0),r}function rl(t,r){var e=t.l,n=t.read_shift(1),i=Pr(t),s=[],o={t:i,h:i};if(n&1){for(var h=t.read_shift(4),c=0;c!=h;++c)s.push(ag(t));o.r=s}else o.r=[{ich:0,ifnt:0}];return t.l=e+r,o}function fg(t,r){var e=!1;return r==null&&(e=!0,r=We(15+4*t.t.length)),r.write_shift(1,0),_r(t.t,r),e?r.slice(0,r.l):r}var lg=rl;function cg(t,r){var e=!1;return r==null&&(e=!0,r=We(23+4*t.t.length)),r.write_shift(1,1),_r(t.t,r),r.write_shift(4,1),og({ich:0,ifnt:0},r),e?r.slice(0,r.l):r}function gn(t){var r=t.read_shift(4),e=t.read_shift(2);return e+=t.read_shift(1)<<16,t.l++,{c:r,iStyleRef:e}}function Vi(t,r){return r==null&&(r=We(8)),r.write_shift(-4,t.c),r.write_shift(3,t.iStyleRef||t.s),r.write_shift(1,0),r}function Gi(t){var r=t.read_shift(2);return r+=t.read_shift(1)<<16,t.l++,{c:-1,iStyleRef:r}}function Ki(t,r){return r==null&&(r=We(4)),r.write_shift(3,t.iStyleRef||t.s),r.write_shift(1,0),r}var hg=Pr,wu=_r;function nl(t){var r=t.read_shift(4);return r===0||r===4294967295?"":t.read_shift(r,"dbcs")}function so(t,r){var e=!1;return r==null&&(e=!0,r=We(127)),r.write_shift(4,t.length>0?t.length:4294967295),t.length>0&&r.write_shift(0,t,"dbcs"),e?r.slice(0,r.l):r}var ug=Pr,wf=nl,il=so;function sl(t){var r=t.slice(t.l,t.l+4),e=r[0]&1,n=r[0]&2;t.l+=4;var i=n===0?io([0,0,0,0,r[0]&252,r[1],r[2],r[3]],0):Fi(r,0)>>2;return e?i/100:i}function yu(t,r){r==null&&(r=We(4));var e=0,n=0,i=t*100;if(t==(t|0)&&t>=-(1<<29)&&t<1<<29?n=1:i==(i|0)&&i>=-(1<<29)&&i<1<<29&&(n=1,e=1),n)r.write_shift(-4,((e?i:t)<<2)+(e+2));else throw new Error("unsupported RkNumber "+t)}function _u(t){var r={s:{},e:{}};return r.s.r=t.read_shift(4),r.e.r=t.read_shift(4),r.s.c=t.read_shift(4),r.e.c=t.read_shift(4),r}function dg(t,r){return r||(r=We(16)),r.write_shift(4,t.s.r),r.write_shift(4,t.e.r),r.write_shift(4,t.s.c),r.write_shift(4,t.e.c),r}var Yi=_u,xs=dg;function Nr(t){if(t.length-t.l<8)throw"XLS Xnum Buffer underflow";return t.read_shift(8,"f")}function Ui(t,r){return(r||We(8)).write_shift(8,t,"f")}function pg(t){var r={},e=t.read_shift(1),n=e>>>1,i=t.read_shift(1),s=t.read_shift(2,"i"),o=t.read_shift(1),h=t.read_shift(1),c=t.read_shift(1);switch(t.l++,n){case 0:r.auto=1;break;case 1:r.index=i;var a=Ii[i];a&&(r.rgb=Xs(a));break;case 2:r.rgb=Xs([o,h,c]);break;case 3:r.theme=i;break}return s!=0&&(r.tint=s>0?s/32767:s/32768),r}function ao(t,r){if(r||(r=We(8)),!t||t.auto)return r.write_shift(4,0),r.write_shift(4,0),r;t.index!=null?(r.write_shift(1,2),r.write_shift(1,t.index)):t.theme!=null?(r.write_shift(1,6),r.write_shift(1,t.theme)):(r.write_shift(1,5),r.write_shift(1,0));var e=t.tint||0;if(e>0?e*=32767:e<0&&(e*=32768),r.write_shift(2,e),!t.rgb||t.theme!=null)r.write_shift(2,0),r.write_shift(1,0),r.write_shift(1,0);else{var n=t.rgb||"FFFFFF";typeof n=="number"&&(n=("000000"+n.toString(16)).slice(-6)),r.write_shift(1,parseInt(n.slice(0,2),16)),r.write_shift(1,parseInt(n.slice(2,4),16)),r.write_shift(1,parseInt(n.slice(4,6),16)),r.write_shift(1,255)}return r}function mg(t){var r=t.read_shift(1);t.l++;var e={fBold:r&1,fItalic:r&2,fUnderline:r&4,fStrikeout:r&8,fOutline:r&16,fShadow:r&32,fCondense:r&64,fExtend:r&128};return e}function gg(t,r){r||(r=We(2));var e=(t.italic?2:0)|(t.strike?8:0)|(t.outline?16:0)|(t.shadow?32:0)|(t.condense?64:0)|(t.extend?128:0);return r.write_shift(1,e),r.write_shift(1,0),r}function Eu(t,r){var e={2:"BITMAP",3:"METAFILEPICT",8:"DIB",14:"ENHMETAFILE"},n=t.read_shift(4);switch(n){case 0:return"";case 4294967295:case 4294967294:return e[t.read_shift(4)]||""}if(n>400)throw new Error("Unsupported Clipboard: "+n.toString(16));return t.l-=4,t.read_shift(0,r==1?"lpstr":"lpwstr")}function vg(t){return Eu(t,1)}function xg(t){return Eu(t,2)}var al=2,Gr=3,Oa=11,Mc=12,oo=19,Ia=64,bg=65,wg=71,yg=4108,_g=4126,wr=80,Tu=81,Eg=[wr,Tu],yf={1:{n:"CodePage",t:al},2:{n:"Category",t:wr},3:{n:"PresentationFormat",t:wr},4:{n:"ByteCount",t:Gr},5:{n:"LineCount",t:Gr},6:{n:"ParagraphCount",t:Gr},7:{n:"SlideCount",t:Gr},8:{n:"NoteCount",t:Gr},9:{n:"HiddenCount",t:Gr},10:{n:"MultimediaClipCount",t:Gr},11:{n:"ScaleCrop",t:Oa},12:{n:"HeadingPairs",t:yg},13:{n:"TitlesOfParts",t:_g},14:{n:"Manager",t:wr},15:{n:"Company",t:wr},16:{n:"LinksUpToDate",t:Oa},17:{n:"CharacterCount",t:Gr},19:{n:"SharedDoc",t:Oa},22:{n:"HyperlinksChanged",t:Oa},23:{n:"AppVersion",t:Gr,p:"version"},24:{n:"DigSig",t:bg},26:{n:"ContentType",t:wr},27:{n:"ContentStatus",t:wr},28:{n:"Language",t:wr},29:{n:"Version",t:wr},255:{},2147483648:{n:"Locale",t:oo},2147483651:{n:"Behavior",t:oo},1919054434:{}},_f={1:{n:"CodePage",t:al},2:{n:"Title",t:wr},3:{n:"Subject",t:wr},4:{n:"Author",t:wr},5:{n:"Keywords",t:wr},6:{n:"Comments",t:wr},7:{n:"Template",t:wr},8:{n:"LastAuthor",t:wr},9:{n:"RevNumber",t:wr},10:{n:"EditTime",t:Ia},11:{n:"LastPrinted",t:Ia},12:{n:"CreatedDate",t:Ia},13:{n:"ModifiedDate",t:Ia},14:{n:"PageCount",t:Gr},15:{n:"WordCount",t:Gr},16:{n:"CharCount",t:Gr},17:{n:"Thumbnail",t:wg},18:{n:"Application",t:wr},19:{n:"DocSecurity",t:Gr},255:{},2147483648:{n:"Locale",t:oo},2147483651:{n:"Behavior",t:oo},1919054434:{}},Oc={1:"US",2:"CA",3:"",7:"RU",20:"EG",30:"GR",31:"NL",32:"BE",33:"FR",34:"ES",36:"HU",39:"IT",41:"CH",43:"AT",44:"GB",45:"DK",46:"SE",47:"NO",48:"PL",49:"DE",52:"MX",55:"BR",61:"AU",64:"NZ",66:"TH",81:"JP",82:"KR",84:"VN",86:"CN",90:"TR",105:"JS",213:"DZ",216:"MA",218:"LY",351:"PT",354:"IS",358:"FI",420:"CZ",886:"TW",961:"LB",962:"JO",963:"SY",964:"IQ",965:"KW",966:"SA",971:"AE",972:"IL",974:"QA",981:"IR",65535:"US"},Tg=[null,"solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"];function Sg(t){return t.map(function(r){return[r>>16&255,r>>8&255,r&255]})}var kg=Sg([0,16777215,16711680,65280,255,16776960,16711935,65535,0,16777215,16711680,65280,255,16776960,16711935,65535,8388608,32768,128,8421376,8388736,32896,12632256,8421504,10066431,10040166,16777164,13434879,6684774,16744576,26316,13421823,128,16711935,16776960,65535,8388736,8388608,32896,255,52479,13434879,13434828,16777113,10079487,16751052,13408767,16764057,3368703,3394764,10079232,16763904,16750848,16737792,6710937,9868950,13158,3381606,13056,3355392,10040064,10040166,3355545,3355443,16777215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Ii=Zt(kg),ii={0:"#NULL!",7:"#DIV/0!",15:"#VALUE!",23:"#REF!",29:"#NAME?",36:"#NUM!",42:"#N/A",43:"#GETTING_DATA",255:"#WTF?"},Su={"#NULL!":0,"#DIV/0!":7,"#VALUE!":15,"#REF!":23,"#NAME?":29,"#NUM!":36,"#N/A":42,"#GETTING_DATA":43,"#WTF?":255},Ef={"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":"workbooks","application/vnd.ms-excel.sheet.macroEnabled.main+xml":"workbooks","application/vnd.ms-excel.sheet.binary.macroEnabled.main":"workbooks","application/vnd.ms-excel.addin.macroEnabled.main+xml":"workbooks","application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":"workbooks","application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":"sheets","application/vnd.ms-excel.worksheet":"sheets","application/vnd.ms-excel.binIndexWs":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":"charts","application/vnd.ms-excel.chartsheet":"charts","application/vnd.ms-excel.macrosheet+xml":"macros","application/vnd.ms-excel.macrosheet":"macros","application/vnd.ms-excel.intlmacrosheet":"TODO","application/vnd.ms-excel.binIndexMs":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":"dialogs","application/vnd.ms-excel.dialogsheet":"dialogs","application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml":"strs","application/vnd.ms-excel.sharedStrings":"strs","application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":"styles","application/vnd.ms-excel.styles":"styles","application/vnd.openxmlformats-package.core-properties+xml":"coreprops","application/vnd.openxmlformats-officedocument.custom-properties+xml":"custprops","application/vnd.openxmlformats-officedocument.extended-properties+xml":"extprops","application/vnd.openxmlformats-officedocument.customXmlProperties+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":"comments","application/vnd.ms-excel.comments":"comments","application/vnd.ms-excel.threadedcomments+xml":"threadedcomments","application/vnd.ms-excel.person+xml":"people","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml":"metadata","application/vnd.ms-excel.sheetMetadata":"metadata","application/vnd.ms-excel.pivotTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chart+xml":"TODO","application/vnd.ms-office.chartcolorstyle+xml":"TODO","application/vnd.ms-office.chartstyle+xml":"TODO","application/vnd.ms-office.chartex+xml":"TODO","application/vnd.ms-excel.calcChain":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings":"TODO","application/vnd.ms-office.activeX":"TODO","application/vnd.ms-office.activeX+xml":"TODO","application/vnd.ms-excel.attachedToolbars":"TODO","application/vnd.ms-excel.connections":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":"TODO","application/vnd.ms-excel.externalLink":"links","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml":"links","application/vnd.ms-excel.pivotCacheDefinition":"TODO","application/vnd.ms-excel.pivotCacheRecords":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml":"TODO","application/vnd.ms-excel.queryTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml":"TODO","application/vnd.ms-excel.userNames":"TODO","application/vnd.ms-excel.revisionHeaders":"TODO","application/vnd.ms-excel.revisionLog":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml":"TODO","application/vnd.ms-excel.tableSingleCells":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml":"TODO","application/vnd.ms-excel.slicer":"TODO","application/vnd.ms-excel.slicerCache":"TODO","application/vnd.ms-excel.slicer+xml":"TODO","application/vnd.ms-excel.slicerCache+xml":"TODO","application/vnd.ms-excel.wsSortMap":"TODO","application/vnd.ms-excel.table":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":"TODO","application/vnd.openxmlformats-officedocument.theme+xml":"themes","application/vnd.openxmlformats-officedocument.themeOverride+xml":"TODO","application/vnd.ms-excel.Timeline+xml":"TODO","application/vnd.ms-excel.TimelineCache+xml":"TODO","application/vnd.ms-office.vbaProject":"vba","application/vnd.ms-office.vbaProjectSignature":"TODO","application/vnd.ms-office.volatileDependencies":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml":"TODO","application/vnd.ms-excel.controlproperties+xml":"TODO","application/vnd.openxmlformats-officedocument.model+data":"TODO","application/vnd.ms-excel.Survey+xml":"TODO","application/vnd.openxmlformats-officedocument.drawing+xml":"drawings","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml":"TODO","application/vnd.openxmlformats-officedocument.vmlDrawing":"TODO","application/vnd.openxmlformats-package.relationships+xml":"rels","application/vnd.openxmlformats-officedocument.oleObject":"TODO","image/png":"TODO",sheet:"js"},Da={workbooks:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",xlsm:"application/vnd.ms-excel.sheet.macroEnabled.main+xml",xlsb:"application/vnd.ms-excel.sheet.binary.macroEnabled.main",xlam:"application/vnd.ms-excel.addin.macroEnabled.main+xml",xltx:"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"},strs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",xlsb:"application/vnd.ms-excel.sharedStrings"},comments:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml",xlsb:"application/vnd.ms-excel.comments"},sheets:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",xlsb:"application/vnd.ms-excel.worksheet"},charts:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml",xlsb:"application/vnd.ms-excel.chartsheet"},dialogs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml",xlsb:"application/vnd.ms-excel.dialogsheet"},macros:{xlsx:"application/vnd.ms-excel.macrosheet+xml",xlsb:"application/vnd.ms-excel.macrosheet"},metadata:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml",xlsb:"application/vnd.ms-excel.sheetMetadata"},styles:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",xlsb:"application/vnd.ms-excel.styles"}};function ol(){return{workbooks:[],sheets:[],charts:[],dialogs:[],macros:[],rels:[],strs:[],comments:[],threadedcomments:[],links:[],coreprops:[],extprops:[],custprops:[],themes:[],styles:[],calcchains:[],vba:[],drawings:[],metadata:[],people:[],TODO:[],xmlns:""}}function Cg(t){var r=ol();if(!t||!t.match)return r;var e={};if((t.match(jr)||[]).forEach(function(n){var i=bt(n);switch(i[0].replace(Pm,"<")){case"0?r.calcchains[0]:"",r.sst=r.strs.length>0?r.strs[0]:"",r.style=r.styles.length>0?r.styles[0]:"",r.defaults=e,delete r.calcchains,r}function ku(t,r){var e=Cm(Ef),n=[],i;n[n.length]=fr,n[n.length]=Qe("Types",null,{xmlns:gr.CT,"xmlns:xsd":gr.xsd,"xmlns:xsi":gr.xsi}),n=n.concat([["xml","application/xml"],["bin","application/vnd.ms-excel.sheet.binary.macroEnabled.main"],["vml","application/vnd.openxmlformats-officedocument.vmlDrawing"],["data","application/vnd.openxmlformats-officedocument.model+data"],["bmp","image/bmp"],["png","image/png"],["gif","image/gif"],["emf","image/x-emf"],["wmf","image/x-wmf"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["tif","image/tiff"],["tiff","image/tiff"],["pdf","application/pdf"],["rels","application/vnd.openxmlformats-package.relationships+xml"]].map(function(c){return Qe("Default",null,{Extension:c[0],ContentType:c[1]})}));var s=function(c){t[c]&&t[c].length>0&&(i=t[c][0],n[n.length]=Qe("Override",null,{PartName:(i[0]=="/"?"":"/")+i,ContentType:Da[c][r.bookType]||Da[c].xlsx}))},o=function(c){(t[c]||[]).forEach(function(a){n[n.length]=Qe("Override",null,{PartName:(a[0]=="/"?"":"/")+a,ContentType:Da[c][r.bookType]||Da[c].xlsx})})},h=function(c){(t[c]||[]).forEach(function(a){n[n.length]=Qe("Override",null,{PartName:(a[0]=="/"?"":"/")+a,ContentType:e[c][0]})})};return s("workbooks"),o("sheets"),o("charts"),h("themes"),["strs","styles"].forEach(s),["coreprops","extprops","custprops"].forEach(h),h("vba"),h("comments"),h("threadedcomments"),h("drawings"),o("metadata"),h("people"),n.length>2&&(n[n.length]="",n[1]=n[1].replace("/>",">")),n.join("")}var Ft={WB:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",SHEET:"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument",HLINK:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",VML:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing",XPATH:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath",XMISS:"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing",XLINK:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink",CXML:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml",CXMLP:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps",CMNT:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments",CORE_PROPS:"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties",EXT_PROPS:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties",CUST_PROPS:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties",SST:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings",STY:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles",THEME:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme",CHART:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart",CHARTEX:"http://schemas.microsoft.com/office/2014/relationships/chartEx",CS:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet",WS:["http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet","http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet"],DS:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet",MS:"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet",IMG:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",DRAW:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing",XLMETA:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata",TCMNT:"http://schemas.microsoft.com/office/2017/10/relationships/threadedComment",PEOPLE:"http://schemas.microsoft.com/office/2017/10/relationships/person",VBA:"http://schemas.microsoft.com/office/2006/relationships/vbaProject"};function Ws(t){var r=t.lastIndexOf("/");return t.slice(0,r+1)+"_rels/"+t.slice(r+1)+".rels"}function Is(t,r){var e={"!id":{}};if(!t)return e;r.charAt(0)!=="/"&&(r="/"+r);var n={};return(t.match(jr)||[]).forEach(function(i){var s=bt(i);if(s[0]==="2&&(r[r.length]="",r[1]=r[1].replace("/>",">")),r.join("")}function zt(t,r,e,n,i,s){if(i||(i={}),t["!id"]||(t["!id"]={}),t["!idx"]||(t["!idx"]=1),r<0)for(r=t["!idx"];t["!id"]["rId"+r];++r);if(t["!idx"]=r+1,i.Id="rId"+r,i.Type=n,i.Target=e,s?i.TargetMode=s:[Ft.HLINK,Ft.XPATH,Ft.XMISS].indexOf(i.Type)>-1&&(i.TargetMode="External"),t["!id"][i.Id])throw new Error("Cannot rewrite rId "+r);return t["!id"][i.Id]=i,t[("/"+i.Target).replace("//","/")]=i,r}var Ag="application/vnd.oasis.opendocument.spreadsheet";function Fg(t,r){for(var e=qf(t),n,i;n=$s.exec(e);)switch(n[3]){case"manifest":break;case"file-entry":if(i=bt(n[0],!1),i.path=="/"&&i.type!==Ag)throw new Error("This OpenDocument is not a spreadsheet");break;case"encryption-data":case"algorithm":case"start-key-generation":case"key-derivation":throw new Error("Unsupported ODS Encryption");default:if(r&&r.WTF)throw n}}function Rg(t){var r=[fr];r.push(` +`),r.push(` +`);for(var e=0;e +`);return r.push(""),r.join("")}function Ic(t,r,e){return[' +`,' +`,` +`].join("")}function Mg(t,r){return[' +`,' +`,` +`].join("")}function Og(t){var r=[fr];r.push(` +`);for(var e=0;e!=t.length;++e)r.push(Ic(t[e][0],t[e][1])),r.push(Mg("",t[e][0]));return r.push(Ic("","Document","pkg")),r.push(""),r.join("")}function Cu(){return'SheetJS '+qa.version+""}var dn=[["cp:category","Category"],["cp:contentStatus","ContentStatus"],["cp:keywords","Keywords"],["cp:lastModifiedBy","LastAuthor"],["cp:lastPrinted","LastPrinted"],["cp:revision","RevNumber"],["cp:version","Version"],["dc:creator","Author"],["dc:description","Comments"],["dc:identifier","Identifier"],["dc:language","Language"],["dc:subject","Subject"],["dc:title","Title"],["dcterms:created","CreatedDate","date"],["dcterms:modified","ModifiedDate","date"]],Ig=function(){for(var t=new Array(dn.length),r=0;r]*>([\\s\\S]*?)")}return t}();function Au(t){var r={};t=Wt(t);for(var e=0;e0&&(r[n[1]]=Pt(i[1])),n[2]==="date"&&r[n[1]]&&(r[n[1]]=qt(r[n[1]]))}return r}function Vo(t,r,e,n,i){i[t]!=null||r==null||r===""||(i[t]=r,r=$t(r),n[n.length]=e?Qe(t,r,e):Cr(t,r))}function Fu(t,r){var e=r||{},n=[fr,Qe("cp:coreProperties",null,{"xmlns:cp":gr.CORE_PROPS,"xmlns:dc":gr.dc,"xmlns:dcterms":gr.dcterms,"xmlns:dcmitype":gr.dcmitype,"xmlns:xsi":gr.xsi})],i={};if(!t&&!e.Props)return n.join("");t&&(t.CreatedDate!=null&&Vo("dcterms:created",typeof t.CreatedDate=="string"?t.CreatedDate:bf(t.CreatedDate,e.WTF),{"xsi:type":"dcterms:W3CDTF"},n,i),t.ModifiedDate!=null&&Vo("dcterms:modified",typeof t.ModifiedDate=="string"?t.ModifiedDate:bf(t.ModifiedDate,e.WTF),{"xsi:type":"dcterms:W3CDTF"},n,i));for(var s=0;s!=dn.length;++s){var o=dn[s],h=e.Props&&e.Props[o[1]]!=null?e.Props[o[1]]:t?t[o[1]]:null;h===!0?h="1":h===!1?h="0":typeof h=="number"&&(h=String(h)),h!=null&&Vo(o[0],h,null,n,i)}return n.length>2&&(n[n.length]="",n[1]=n[1].replace("/>",">")),n.join("")}var Di=[["Application","Application","string"],["AppVersion","AppVersion","string"],["Company","Company","string"],["DocSecurity","DocSecurity","string"],["Manager","Manager","string"],["HyperlinksChanged","HyperlinksChanged","bool"],["SharedDoc","SharedDoc","bool"],["LinksUpToDate","LinksUpToDate","bool"],["ScaleCrop","ScaleCrop","bool"],["HeadingPairs","HeadingPairs","raw"],["TitlesOfParts","TitlesOfParts","raw"]],Ru=["Worksheets","SheetNames","NamedRanges","DefinedNames","Chartsheets","ChartNames"];function Mu(t,r,e,n){var i=[];if(typeof t=="string")i=Ec(t,n);else for(var s=0;s0)for(var a=0;a!==i.length;a+=2){switch(c=+i[a+1].v,i[a].v){case"Worksheets":case"工作表":case"Листы":case"أوراق العمل":case"ワークシート":case"גליונות עבודה":case"Arbeitsblätter":case"Çalışma Sayfaları":case"Feuilles de calcul":case"Fogli di lavoro":case"Folhas de cálculo":case"Planilhas":case"Regneark":case"Hojas de cálculo":case"Werkbladen":e.Worksheets=c,e.SheetNames=o.slice(h,h+c);break;case"Named Ranges":case"Rangos con nombre":case"名前付き一覧":case"Benannte Bereiche":case"Navngivne områder":e.NamedRanges=c,e.DefinedNames=o.slice(h,h+c);break;case"Charts":case"Diagramme":e.Chartsheets=c,e.ChartNames=o.slice(h,h+c);break}h+=c}}function Dg(t,r,e){var n={};return r||(r={}),t=Wt(t),Di.forEach(function(i){var s=(t.match(Hs(i[0]))||[])[1];switch(i[2]){case"string":s&&(r[i[1]]=Pt(s));break;case"bool":r[i[1]]=s==="true";break;case"raw":var o=t.match(new RegExp("<"+i[0]+"[^>]*>([\\s\\S]*?)"));o&&o.length>0&&(n[i[1]]=o[1]);break}}),n.HeadingPairs&&n.TitlesOfParts&&Mu(n.HeadingPairs,n.TitlesOfParts,r,e),r}function Ou(t){var r=[],e=Qe;return t||(t={}),t.Application="SheetJS",r[r.length]=fr,r[r.length]=Qe("Properties",null,{xmlns:gr.EXT_PROPS,"xmlns:vt":gr.vt}),Di.forEach(function(n){if(t[n[1]]!==void 0){var i;switch(n[2]){case"string":i=$t(String(t[n[1]]));break;case"bool":i=t[n[1]]?"true":"false";break}i!==void 0&&(r[r.length]=e(n[0],i))}}),r[r.length]=e("HeadingPairs",e("vt:vector",e("vt:variant","Worksheets")+e("vt:variant",e("vt:i4",String(t.Worksheets))),{size:2,baseType:"variant"})),r[r.length]=e("TitlesOfParts",e("vt:vector",t.SheetNames.map(function(n){return""+$t(n)+""}).join(""),{size:t.Worksheets,baseType:"lpstr"})),r.length>2&&(r[r.length]="",r[1]=r[1].replace("/>",">")),r.join("")}var Ng=/<[^>]+>[^<]*/g;function Pg(t,r){var e={},n="",i=t.match(Ng);if(i)for(var s=0;s!=i.length;++s){var o=i[s],h=bt(o);switch(h[0]){case"":n=null;break;default:if(o.indexOf(""),a=c[0].slice(4),f=c[1];switch(a){case"lpstr":case"bstr":case"lpwstr":e[n]=Pt(f);break;case"bool":e[n]=Yt(f);break;case"i1":case"i2":case"i4":case"i8":case"int":case"uint":e[n]=parseInt(f,10);break;case"r4":case"r8":case"decimal":e[n]=parseFloat(f);break;case"filetime":case"date":e[n]=qt(f);break;case"cy":case"error":e[n]=Pt(f);break;default:if(a.slice(-1)=="/")break;r.WTF&&typeof console<"u"&&console.warn("Unexpected",o,a,c)}}else if(o.slice(0,2)!=="2&&(r[r.length]="",r[1]=r[1].replace("/>",">")),r.join("")}var Tf={Title:"Title",Subject:"Subject",Author:"Author",Keywords:"Keywords",Comments:"Description",LastAuthor:"LastAuthor",RevNumber:"Revision",Application:"AppName",LastPrinted:"LastPrinted",CreatedDate:"Created",ModifiedDate:"LastSaved",Category:"Category",Manager:"Manager",Company:"Company",AppVersion:"Version",ContentStatus:"ContentStatus",Identifier:"Identifier",Language:"Language"},Go;function Bg(t,r,e){Go||(Go=go(Tf)),r=Go[r]||r,t[r]=e}function Lg(t,r){var e=[];return or(Tf).map(function(n){for(var i=0;i'+i.join("")+""}function fl(t){var r=t.read_shift(4),e=t.read_shift(4);return new Date((e/1e7*Math.pow(2,32)+r/1e7-11644473600)*1e3).toISOString().replace(/\.000/,"")}function Ug(t){var r=typeof t=="string"?new Date(Date.parse(t)):t,e=r.getTime()/1e3+11644473600,n=e%Math.pow(2,32),i=(e-n)/Math.pow(2,32);n*=1e7,i*=1e7;var s=n/Math.pow(2,32)|0;s>0&&(n=n%Math.pow(2,32),i+=s);var o=We(8);return o.write_shift(4,n),o.write_shift(4,i),o}function Du(t,r,e){var n=t.l,i=t.read_shift(0,"lpstr-cp");if(e)for(;t.l-n&3;)++t.l;return i}function Nu(t,r,e){var n=t.read_shift(0,"lpwstr");return e&&(t.l+=4-(n.length+1&3)&3),n}function Pu(t,r,e){return r===31?Nu(t):Du(t,r,e)}function Sf(t,r,e){return Pu(t,r,e===!1?0:4)}function Hg(t,r){if(!r)throw new Error("VtUnalignedString must have positive length");return Pu(t,r,0)}function zg(t){for(var r=t.read_shift(4),e=[],n=0;n!=r;++n){var i=t.l;e[n]=t.read_shift(0,"lpwstr").replace(Xr,""),t.l-i&2&&(t.l+=2)}return e}function $g(t){for(var r=t.read_shift(4),e=[],n=0;n!=r;++n)e[n]=t.read_shift(0,"lpstr-cp").replace(Xr,"");return e}function Wg(t){var r=t.l,e=fo(t,Tu);t[t.l]==0&&t[t.l+1]==0&&t.l-r&2&&(t.l+=2);var n=fo(t,Gr);return[e,n]}function Xg(t){for(var r=t.read_shift(4),e=[],n=0;n>2+1<<2),n}function Bu(t){var r=t.read_shift(4),e=t.slice(t.l,t.l+r);return t.l+=r,(r&3)>0&&(t.l+=4-(r&3)&3),e}function Vg(t){var r={};return r.Size=t.read_shift(4),t.l+=r.Size+3-(r.Size-1)%4,r}function fo(t,r,e){var n=t.read_shift(2),i,s=e||{};if(t.l+=2,r!==Mc&&n!==r&&Eg.indexOf(r)===-1&&!((r&65534)==4126&&(n&65534)==4126))throw new Error("Expected type "+r+" saw "+n);switch(r===Mc?n:r){case 2:return i=t.read_shift(2,"i"),s.raw||(t.l+=2),i;case 3:return i=t.read_shift(4,"i"),i;case 11:return t.read_shift(4)!==0;case 19:return i=t.read_shift(4),i;case 30:return Du(t,n,4).replace(Xr,"");case 31:return Nu(t);case 64:return fl(t);case 65:return Bu(t);case 71:return Vg(t);case 80:return Sf(t,n,!s.raw).replace(Xr,"");case 81:return Hg(t,n).replace(Xr,"");case 4108:return Xg(t);case 4126:case 4127:return n==4127?zg(t):$g(t);default:throw new Error("TypedPropertyValue unrecognized type "+r+" "+n)}}function Nc(t,r){var e=We(4),n=We(4);switch(e.write_shift(4,t==80?31:t),t){case 3:n.write_shift(-4,r);break;case 5:n=We(8),n.write_shift(8,r,"f");break;case 11:n.write_shift(4,r?1:0);break;case 64:n=Ug(r);break;case 31:case 80:for(n=We(4+2*(r.length+1)+(r.length%2?0:2)),n.write_shift(4,r.length+1),n.write_shift(0,r,"dbcs");n.l!=n.length;)n.write_shift(1,0);break;default:throw new Error("TypedPropertyValue unrecognized type "+t+" "+r)}return yr([e,n])}function Pc(t,r){var e=t.l,n=t.read_shift(4),i=t.read_shift(4),s=[],o=0,h=0,c=-1,a={};for(o=0;o!=i;++o){var f=t.read_shift(4),l=t.read_shift(4);s[o]=[f,l+e]}s.sort(function(g,b){return g[1]-b[1]});var u={};for(o=0;o!=i;++o){if(t.l!==s[o][1]){var p=!0;if(o>0&&r)switch(r[s[o-1][0]].t){case 2:t.l+2===s[o][1]&&(t.l+=2,p=!1);break;case 80:t.l<=s[o][1]&&(t.l=s[o][1],p=!1);break;case 4108:t.l<=s[o][1]&&(t.l=s[o][1],p=!1);break}if((!r||o==0)&&t.l<=s[o][1]&&(p=!1,t.l=s[o][1]),p)throw new Error("Read Error: Expected address "+s[o][1]+" at "+t.l+" :"+o)}if(r){var m=r[s[o][0]];if(u[m.n]=fo(t,m.t,{raw:!0}),m.p==="version"&&(u[m.n]=String(u[m.n]>>16)+"."+("0000"+String(u[m.n]&65535)).slice(-4)),m.n=="CodePage")switch(u[m.n]){case 0:u[m.n]=1252;case 874:case 932:case 936:case 949:case 950:case 1250:case 1251:case 1253:case 1254:case 1255:case 1256:case 1257:case 1258:case 1e4:case 1200:case 1201:case 1252:case 65e3:case-536:case 65001:case-535:Sn(h=u[m.n]>>>0&65535);break;default:throw new Error("Unsupported CodePage: "+u[m.n])}}else if(s[o][0]===1){if(h=u.CodePage=fo(t,al),Sn(h),c!==-1){var d=t.l;t.l=s[c][1],a=Dc(t,h),t.l=d}}else if(s[o][0]===0){if(h===0){c=o,t.l=s[o+1][1];continue}a=Dc(t,h)}else{var v=a[s[o][0]],x;switch(t[t.l]){case 65:t.l+=4,x=Bu(t);break;case 30:t.l+=4,x=Sf(t,t[t.l-4]).replace(/\u0000+$/,"");break;case 31:t.l+=4,x=Sf(t,t[t.l-4]).replace(/\u0000+$/,"");break;case 3:t.l+=4,x=t.read_shift(4,"i");break;case 19:t.l+=4,x=t.read_shift(4);break;case 5:t.l+=4,x=t.read_shift(8,"f");break;case 11:t.l+=4,x=sr(t,4);break;case 64:t.l+=4,x=qt(fl(t));break;default:throw new Error("unparsed value: "+t[t.l])}u[v]=x}}return t.l=e+n,u}var Lu=["CodePage","Thumbnail","_PID_LINKBASE","_PID_HLINKS","SystemIdentifier","FMTID"];function Gg(t){switch(typeof t){case"boolean":return 11;case"number":return(t|0)==t?3:5;case"string":return 31;case"object":if(t instanceof Date)return 64;break}return-1}function Bc(t,r,e){var n=We(8),i=[],s=[],o=8,h=0,c=We(8),a=We(8);if(c.write_shift(4,2),c.write_shift(4,1200),a.write_shift(4,1),s.push(c),i.push(a),o+=8+c.length,!r){a=We(8),a.write_shift(4,0),i.unshift(a);var f=[We(4)];for(f[0].write_shift(4,t.length),h=0;h-1||Ru.indexOf(t[h][0])>-1)&&t[h][1]!=null){var u=t[h][1],p=0;if(r){p=+r[t[h][0]];var m=e[p];if(m.p=="version"&&typeof u=="string"){var d=u.split(".");u=(+d[0]<<16)+(+d[1]||0)}c=Nc(m.t,u)}else{var v=Gg(u);v==-1&&(v=31,u=String(u)),c=Nc(v,u)}s.push(c),a=We(8),a.write_shift(4,r?p:2+h),i.push(a),o+=8+c.length}var x=8*(s.length+1);for(h=0;h=12?2:1),i="sbcs-cont";if(e&&e.biff>=8,!e||e.biff==8){var s=t.read_shift(1);s&&(i="dbcs-cont")}else e.biff==12&&(i="wstr");e.biff>=2&&e.biff<=5&&(i="cpstr");var o=n?t.read_shift(n,i):"";return o}function Jg(t){var r=t.read_shift(2),e=t.read_shift(1),n=e&4,i=e&8,s=1+(e&1),o=0,h,c={};i&&(o=t.read_shift(2)),n&&(h=t.read_shift(4));var a=s==2?"dbcs-cont":"sbcs-cont",f=r===0?"":t.read_shift(r,a);return i&&(t.l+=4*o),n&&(t.l+=h),c.t=f,i||(c.raw=""+c.t+"",c.r=c.t),c}function Qg(t){var r=t.t||"",e=We(3+0);e.write_shift(2,r.length),e.write_shift(1,1);var n=We(2*r.length);n.write_shift(2*r.length,r,"utf16le");var i=[e,n];return yr(i)}function Hi(t,r,e){var n;if(e){if(e.biff>=2&&e.biff<=5)return t.read_shift(r,"cpstr");if(e.biff>=12)return t.read_shift(r,"dbcs-cont")}var i=t.read_shift(1);return i===0?n=t.read_shift(r,"sbcs-cont"):n=t.read_shift(r,"dbcs-cont"),n}function ia(t,r,e){var n=t.read_shift(e&&e.biff==2?1:2);return n===0?(t.l++,""):Hi(t,n,e)}function Zi(t,r,e){if(e.biff>5)return ia(t,r,e);var n=t.read_shift(1);return n===0?(t.l++,""):t.read_shift(n,e.biff<=4||!t.lens?"cpstr":"sbcs-cont")}function Hu(t,r,e){return e||(e=We(3+2*t.length)),e.write_shift(2,t.length),e.write_shift(1,1),e.write_shift(31,t,"utf16le"),e}function qg(t){var r=t.read_shift(1);t.l++;var e=t.read_shift(2);return t.l+=2,[r,e]}function ev(t){var r=t.read_shift(4),e=t.l,n=!1;r>24&&(t.l+=r-24,t.read_shift(16)==="795881f43b1d7f48af2c825dc4852763"&&(n=!0),t.l=e);var i=t.read_shift((n?r-24:r)>>1,"utf16le").replace(Xr,"");return n&&(t.l+=24),i}function tv(t){for(var r=t.read_shift(2),e="";r-- >0;)e+="../";var n=t.read_shift(0,"lpstr-ansi");if(t.l+=2,t.read_shift(2)!=57005)throw new Error("Bad FileMoniker");var i=t.read_shift(4);if(i===0)return e+n.replace(/\\/g,"/");var s=t.read_shift(4);if(t.read_shift(2)!=3)throw new Error("Bad FileMoniker");var o=t.read_shift(s>>1,"utf16le").replace(Xr,"");return e+o}function rv(t,r){var e=t.read_shift(16);switch(e){case"e0c9ea79f9bace118c8200aa004ba90b":return ev(t);case"0303000000000000c000000000000046":return tv(t);default:throw new Error("Unsupported Moniker "+e)}}function Na(t){var r=t.read_shift(4),e=r>0?t.read_shift(r,"utf16le").replace(Xr,""):"";return e}function Uc(t,r){r||(r=We(6+t.length*2)),r.write_shift(4,1+t.length);for(var e=0;e-1?31:23;switch(n.charAt(0)){case"#":s=28;break;case".":s&=-3;break}r.write_shift(4,2),r.write_shift(4,s);var o=[8,6815827,6619237,4849780,83];for(e=0;e-1?n.slice(0,i):n;for(r.write_shift(4,2*(h.length+1)),e=0;e-1?n.slice(i+1):"",r)}else{for(o="03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46".split(" "),e=0;e8?4:2,i=t.read_shift(n),s=t.read_shift(n,"i"),o=t.read_shift(n,"i");return[i,s,o]}function Wu(t){var r=t.read_shift(2),e=sl(t);return[r,e]}function fv(t,r,e){t.l+=4,r-=4;var n=t.l+r,i=na(t,r,e),s=t.read_shift(2);if(n-=t.l,s!==n)throw new Error("Malformed AddinUdf: padding = "+n+" != "+s);return t.l+=s,i}function bo(t){var r=t.read_shift(2),e=t.read_shift(2),n=t.read_shift(2),i=t.read_shift(2);return{s:{c:n,r},e:{c:i,r:e}}}function Xu(t,r){return r||(r=We(8)),r.write_shift(2,t.s.r),r.write_shift(2,t.e.r),r.write_shift(2,t.s.c),r.write_shift(2,t.e.c),r}function Vu(t){var r=t.read_shift(2),e=t.read_shift(2),n=t.read_shift(1),i=t.read_shift(1);return{s:{c:n,r},e:{c:i,r:e}}}var lv=Vu;function Gu(t){t.l+=4;var r=t.read_shift(2),e=t.read_shift(2),n=t.read_shift(2);return t.l+=12,[e,r,n]}function cv(t){var r={};return t.l+=4,t.l+=16,r.fSharedNote=t.read_shift(2),t.l+=4,r}function hv(t){var r={};return t.l+=4,t.cf=t.read_shift(2),r}function Mr(t){t.l+=2,t.l+=t.read_shift(2)}var uv={0:Mr,4:Mr,5:Mr,6:Mr,7:hv,8:Mr,9:Mr,10:Mr,11:Mr,12:Mr,13:cv,14:Mr,15:Mr,16:Mr,17:Mr,18:Mr,19:Mr,20:Mr,21:Gu};function dv(t,r){for(var e=t.l+r,n=[];t.l=2&&(e.dt=t.read_shift(2),t.l-=2),e.BIFFVer){case 1536:case 1280:case 1024:case 768:case 512:case 2:case 7:break;default:if(r>6)throw new Error("Unexpected BIFF Ver "+e.BIFFVer)}return t.read_shift(r),e}function ll(t,r,e){var n=1536,i=16;switch(e.bookType){case"biff8":break;case"biff5":n=1280,i=8;break;case"biff4":n=4,i=6;break;case"biff3":n=3,i=6;break;case"biff2":n=2,i=4;break;case"xla":break;default:throw new Error("unsupported BIFF version")}var s=We(i);return s.write_shift(2,n),s.write_shift(2,r),i>4&&s.write_shift(2,29282),i>6&&s.write_shift(2,1997),i>8&&(s.write_shift(2,49161),s.write_shift(2,1),s.write_shift(2,1798),s.write_shift(2,0)),s}function pv(t,r){return r===0||t.read_shift(2),1200}function mv(t,r,e){if(e.enc)return t.l+=r,"";var n=t.l,i=Zi(t,0,e);return t.read_shift(r+n-t.l),i}function gv(t,r){var e=!r||r.biff==8,n=We(e?112:54);for(n.write_shift(r.biff==8?2:1,7),e&&n.write_shift(1,0),n.write_shift(4,859007059),n.write_shift(4,5458548|(e?0:536870912));n.l=8?2:1,n=We(8+e*t.name.length);n.write_shift(4,t.pos),n.write_shift(1,t.hs||0),n.write_shift(1,t.dt),n.write_shift(1,t.name.length),r.biff>=8&&n.write_shift(1,1),n.write_shift(e*t.name.length,t.name,r.biff<8?"sbcs":"utf16le");var i=n.slice(0,n.l);return i.l=n.l,i}function wv(t,r){for(var e=t.l+r,n=t.read_shift(4),i=t.read_shift(4),s=[],o=0;o!=i&&t.l>15),i&=32767);var s={Unsynced:n&1,DyZero:(n&2)>>1,ExAsc:(n&4)>>2,ExDsc:(n&8)>>3};return[s,i]}function kv(t){var r=t.read_shift(2),e=t.read_shift(2),n=t.read_shift(2),i=t.read_shift(2),s=t.read_shift(2),o=t.read_shift(2),h=t.read_shift(2),c=t.read_shift(2),a=t.read_shift(2);return{Pos:[r,e],Dim:[n,i],Flags:s,CurTab:o,FirstTab:h,Selected:c,TabRatio:a}}function Cv(){var t=We(18);return t.write_shift(2,0),t.write_shift(2,0),t.write_shift(2,29280),t.write_shift(2,17600),t.write_shift(2,56),t.write_shift(2,0),t.write_shift(2,0),t.write_shift(2,1),t.write_shift(2,500),t}function Av(t,r,e){if(e&&e.biff>=2&&e.biff<5)return{};var n=t.read_shift(2);return{RTL:n&64}}function Fv(t){var r=We(18),e=1718;return t&&t.RTL&&(e|=64),r.write_shift(2,e),r.write_shift(4,0),r.write_shift(4,64),r.write_shift(4,0),r.write_shift(4,0),r}function Rv(){}function Mv(t,r,e){var n={dyHeight:t.read_shift(2),fl:t.read_shift(2)};switch(e&&e.biff||8){case 2:break;case 3:case 4:t.l+=2;break;default:t.l+=10;break}return n.name=na(t,0,e),n}function Ov(t,r){var e=t.name||"Arial",n=r&&r.biff==5,i=n?15+e.length:16+2*e.length,s=We(i);return s.write_shift(2,(t.sz||12)*20),s.write_shift(4,0),s.write_shift(2,400),s.write_shift(4,0),s.write_shift(2,0),s.write_shift(1,e.length),n||s.write_shift(1,1),s.write_shift((n?1:2)*e.length,e,n?"sbcs":"utf16le"),s}function Iv(t){var r=zn(t);return r.isst=t.read_shift(4),r}function Dv(t,r,e,n){var i=We(10);return zi(t,r,n,i),i.write_shift(4,e),i}function Nv(t,r,e){e.biffguess&&e.biff==2&&(e.biff=5);var n=t.l+r,i=zn(t);e.biff==2&&t.l++;var s=ia(t,n-t.l,e);return i.val=s,i}function Pv(t,r,e,n,i){var s=!i||i.biff==8,o=We(6+2+ +s+(1+s)*e.length);return zi(t,r,n,o),o.write_shift(2,e.length),s&&o.write_shift(1,1),o.write_shift((1+s)*e.length,e,s?"utf16le":"sbcs"),o}function Bv(t,r,e){var n=t.read_shift(2),i=Zi(t,0,e);return[n,i]}function Lv(t,r,e,n){var i=e&&e.biff==5;n||(n=We(i?3+r.length:5+2*r.length)),n.write_shift(2,t),n.write_shift(i?1:2,r.length),i||n.write_shift(1,1),n.write_shift((i?1:2)*r.length,r,i?"sbcs":"utf16le");var s=n.length>n.l?n.slice(0,n.l):n;return s.l==null&&(s.l=s.length),s}var jv=Zi;function zc(t,r,e){var n=t.l+r,i=e.biff==8||!e.biff?4:2,s=t.read_shift(i),o=t.read_shift(i),h=t.read_shift(2),c=t.read_shift(2);return t.l=n,{s:{r:s,c:h},e:{r:o,c}}}function Uv(t,r){var e=r.biff==8||!r.biff?4:2,n=We(2*e+6);return n.write_shift(e,t.s.r),n.write_shift(e,t.e.r+1),n.write_shift(2,t.s.c),n.write_shift(2,t.e.c+1),n.write_shift(2,0),n}function Hv(t){var r=t.read_shift(2),e=t.read_shift(2),n=Wu(t);return{r,c:e,ixfe:n[0],rknum:n[1]}}function zv(t,r){for(var e=t.l+r-2,n=t.read_shift(2),i=t.read_shift(2),s=[];t.l>26],n.cellStyles&&(i.alc=s&7,i.fWrap=s>>3&1,i.alcV=s>>4&7,i.fJustLast=s>>7&1,i.trot=s>>8&255,i.cIndent=s>>16&15,i.fShrinkToFit=s>>20&1,i.iReadOrder=s>>22&2,i.fAtrNum=s>>26&1,i.fAtrFnt=s>>27&1,i.fAtrAlc=s>>28&1,i.fAtrBdr=s>>29&1,i.fAtrPat=s>>30&1,i.fAtrProt=s>>31&1,i.dgLeft=o&15,i.dgRight=o>>4&15,i.dgTop=o>>8&15,i.dgBottom=o>>12&15,i.icvLeft=o>>16&127,i.icvRight=o>>23&127,i.grbitDiag=o>>30&3,i.icvTop=h&127,i.icvBottom=h>>7&127,i.icvDiag=h>>14&127,i.dgDiag=h>>21&15,i.icvFore=c&127,i.icvBack=c>>7&127,i.fsxButton=c>>14&1),i}function Xv(t,r,e){var n={};return n.ifnt=t.read_shift(2),n.numFmtId=t.read_shift(2),n.flags=t.read_shift(2),n.fStyle=n.flags>>2&1,r-=6,n.data=Wv(t,r,n.fStyle,e),n}function $c(t,r,e,n){var i=e&&e.biff==5;n||(n=We(i?16:20)),n.write_shift(2,0),t.style?(n.write_shift(2,t.numFmtId||0),n.write_shift(2,65524)):(n.write_shift(2,t.numFmtId||0),n.write_shift(2,r<<4));var s=0;return t.numFmtId>0&&i&&(s|=1024),n.write_shift(4,s),n.write_shift(4,0),i||n.write_shift(4,0),n.write_shift(2,0),n}function Vv(t){t.l+=4;var r=[t.read_shift(2),t.read_shift(2)];if(r[0]!==0&&r[0]--,r[1]!==0&&r[1]--,r[0]>7||r[1]>7)throw new Error("Bad Gutters: "+r.join("|"));return r}function Gv(t){var r=We(8);return r.write_shift(4,0),r.write_shift(2,t[0]?t[0]+1:0),r.write_shift(2,t[1]?t[1]+1:0),r}function Wc(t,r,e){var n=zn(t);(e.biff==2||r==9)&&++t.l;var i=Zg(t);return n.val=i,n.t=i===!0||i===!1?"b":"e",n}function Kv(t,r,e,n,i,s){var o=We(8);return zi(t,r,n,o),Uu(e,s,o),o}function Yv(t,r,e){e.biffguess&&e.biff==2&&(e.biff=5);var n=zn(t),i=Nr(t);return n.val=i,n}function Zv(t,r,e,n){var i=We(14);return zi(t,r,n,i),Ui(e,i),i}var Xc=av;function Jv(t,r,e){var n=t.l+r,i=t.read_shift(2),s=t.read_shift(2);if(e.sbcch=s,s==1025||s==14849)return[s,i];if(s<1||s>255)throw new Error("Unexpected SupBook type: "+s);for(var o=Hi(t,s),h=[];n>t.l;)h.push(ia(t));return[s,i,o,h]}function Vc(t,r,e){var n=t.read_shift(2),i,s={fBuiltIn:n&1,fWantAdvise:n>>>1&1,fWantPict:n>>>2&1,fOle:n>>>3&1,fOleLink:n>>>4&1,cf:n>>>5&1023,fIcon:n>>>15&1};return e.sbcch===14849&&(i=fv(t,r-2,e)),s.body=i||t.read_shift(r-2),typeof i=="string"&&(s.Name=i),s}var Qv=["_xlnm.Consolidate_Area","_xlnm.Auto_Open","_xlnm.Auto_Close","_xlnm.Extract","_xlnm.Database","_xlnm.Criteria","_xlnm.Print_Area","_xlnm.Print_Titles","_xlnm.Recorder","_xlnm.Data_Form","_xlnm.Auto_Activate","_xlnm.Auto_Deactivate","_xlnm.Sheet_Title","_xlnm._FilterDatabase"];function Gc(t,r,e){var n=t.l+r,i=t.read_shift(2),s=t.read_shift(1),o=t.read_shift(1),h=t.read_shift(e&&e.biff==2?1:2),c=0;(!e||e.biff>=5)&&(e.biff!=5&&(t.l+=2),c=t.read_shift(2),e.biff==5&&(t.l+=2),t.l+=4);var a=Hi(t,o,e);i&32&&(a=Qv[a.charCodeAt(0)]);var f=n-t.l;e&&e.biff==2&&--f;var l=n==t.l||h===0||!(f>0)?[]:dy(t,f,e,h);return{chKey:s,Name:a,itab:c,rgce:l}}function Ku(t,r,e){if(e.biff<8)return qv(t,r,e);for(var n=[],i=t.l+r,s=t.read_shift(e.biff>8?4:2);s--!==0;)n.push(ov(t,e.biff>8?12:6,e));if(t.l!=i)throw new Error("Bad ExternSheet: "+t.l+" != "+i);return n}function qv(t,r,e){t[t.l+1]==3&&t[t.l]++;var n=na(t,r,e);return n.charCodeAt(0)==3?n.slice(1):n}function ex(t,r,e){if(e.biff<8){t.l+=r;return}var n=t.read_shift(2),i=t.read_shift(2),s=Hi(t,n,e),o=Hi(t,i,e);return[s,o]}function tx(t,r,e){var n=Vu(t);t.l++;var i=t.read_shift(1);return r-=8,[py(t,r,e),i,n]}function Kc(t,r,e){var n=lv(t);switch(e.biff){case 2:t.l++,r-=7;break;case 3:case 4:t.l+=2,r-=8;break;default:t.l+=6,r-=12}return[n,hy(t,r,e)]}function rx(t){var r=t.read_shift(4)!==0,e=t.read_shift(4)!==0,n=t.read_shift(4);return[r,e,n]}function nx(t,r,e){if(!(e.biff<8)){var n=t.read_shift(2),i=t.read_shift(2),s=t.read_shift(2),o=t.read_shift(2),h=Zi(t,0,e);return e.biff<8&&t.read_shift(1),[{r:n,c:i},h,o,s]}}function ix(t,r,e){return nx(t,r,e)}function sx(t,r){for(var e=[],n=t.read_shift(2);n--;)e.push(bo(t));return e}function ax(t){var r=We(2+t.length*8);r.write_shift(2,t.length);for(var e=0;e=(f?h:2*h))break}if(i.length!==h&&i.length!==h*2)throw new Error("cchText: "+h+" != "+i.length);return t.l=n+r,{t:i}}catch{return t.l=n+r,{t:i}}}function hx(t,r){var e=bo(t);t.l+=16;var n=nv(t,r-24);return[e,n]}function ux(t){var r=We(24),e=vr(t[0]);r.write_shift(2,e.r),r.write_shift(2,e.r),r.write_shift(2,e.c),r.write_shift(2,e.c);for(var n="d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b".split(" "),i=0;i<16;++i)r.write_shift(1,parseInt(n[i],16));return yr([r,iv(t[1])])}function dx(t,r){t.read_shift(2);var e=bo(t),n=t.read_shift((r-10)/2,"dbcs-cont");return n=n.replace(Xr,""),[e,n]}function px(t){var r=t[1].Tooltip,e=We(10+2*(r.length+1));e.write_shift(2,2048);var n=vr(t[0]);e.write_shift(2,n.r),e.write_shift(2,n.r),e.write_shift(2,n.c),e.write_shift(2,n.c);for(var i=0;i0;)e.push($u(t));return e}function xx(t){for(var r=t.read_shift(2),e=[];r-- >0;)e.push($u(t));return e}function bx(t){t.l+=2;var r={cxfs:0,crc:0};return r.cxfs=t.read_shift(2),r.crc=t.read_shift(4),r}function Yu(t,r,e){if(!e.cellStyles)return Lr(t,r);var n=e&&e.biff>=12?4:2,i=t.read_shift(n),s=t.read_shift(n),o=t.read_shift(n),h=t.read_shift(n),c=t.read_shift(2);n==2&&(t.l+=2);var a={s:i,e:s,w:o,ixfe:h,flags:c};return(e.biff>=5||!e.biff)&&(a.level=c>>8&7),a}function wx(t,r){var e=We(12);e.write_shift(2,r),e.write_shift(2,r),e.write_shift(2,t.width*256),e.write_shift(2,0);var n=0;return t.hidden&&(n|=1),e.write_shift(1,n),n=t.level||0,e.write_shift(1,n),e.write_shift(2,0),e}function yx(t,r){var e={};return r<32||(t.l+=16,e.header=Nr(t),e.footer=Nr(t),t.l+=2),e}function _x(t,r,e){var n={area:!1};if(e.biff!=5)return t.l+=r,n;var i=t.read_shift(1);return t.l+=3,i&16&&(n.area=!0),n}function Ex(t){for(var r=We(2*t),e=0;e1048576&&(d=1e6),l!=2&&(v=f.read_shift(2));var x=f.read_shift(2),g=c.codepage||1252;l!=2&&(f.l+=16,f.read_shift(1),f[f.l]!==0&&(g=t[f[f.l]]),f.l+=1,f.l+=2),m&&(f.l+=36);for(var b=[],w={},y=Math.min(f.length,l==2?521:v-10-(p?264:0)),T=m?32:11;f.l0;){if(f[f.l]===42){f.l+=x;continue}for(++f.l,a[++C]=[],M=0,M=0;M!=b.length;++M){var I=f.slice(f.l,f.l+b[M].len);f.l+=b[M].len,kr(I,0);var B=ci.utils.decode(g,I);switch(b[M].type){case"C":B.trim().length&&(a[C][M]=B.replace(/\s+$/,""));break;case"D":B.length===8?a[C][M]=new Date(+B.slice(0,4),+B.slice(4,6)-1,+B.slice(6,8)):a[C][M]=B;break;case"F":a[C][M]=parseFloat(B.trim());break;case"+":case"I":a[C][M]=m?I.read_shift(-4,"i")^2147483648:I.read_shift(4,"i");break;case"L":switch(B.trim().toUpperCase()){case"Y":case"T":a[C][M]=!0;break;case"N":case"F":a[C][M]=!1;break;case"":case"?":break;default:throw new Error("DBF Unrecognized L:|"+B+"|")}break;case"M":if(!u)throw new Error("DBF Unexpected MEMO for type "+l.toString(16));a[C][M]="##MEMO##"+(m?parseInt(B.trim(),10):I.read_shift(4));break;case"N":B=B.replace(/\u0000/g,"").trim(),B&&B!="."&&(a[C][M]=+B||0);break;case"@":a[C][M]=new Date(I.read_shift(-8,"f")-621356832e5);break;case"T":a[C][M]=new Date((I.read_shift(4)-2440588)*864e5+I.read_shift(4));break;case"Y":a[C][M]=I.read_shift(4,"i")/1e4+I.read_shift(4,"i")/1e4*Math.pow(2,32);break;case"O":a[C][M]=-I.read_shift(-8,"f");break;case"B":if(p&&b[M].len==8){a[C][M]=I.read_shift(8,"f");break}case"G":case"P":I.l+=b[M].len;break;case"0":if(b[M].name==="_NullFlags")break;default:throw new Error("DBF Unsupported data type "+b[M].type)}}}if(l!=2&&f.l=0&&Sn(+a.codepage),a.type=="string")throw new Error("Cannot write DBF to JS string");var f=Jr(),l=H0(h,{header:1,raw:!0,cellDates:!0}),u=l[0],p=l.slice(1),m=h["!cols"]||[],d=0,v=0,x=0,g=1;for(d=0;d250&&(I=250),M=((m[d]||{}).DBF||{}).type,M=="C"&&m[d].DBF.len>I&&(I=m[d].DBF.len),C=="B"&&M=="N"&&(C="N",T[d]=m[d].DBF.dec,I=m[d].DBF.len),y[d]=C=="C"||M=="N"?I:s[C]||0,g+=y[d],w[d]=C}var U=f.next(32);for(U.write_shift(4,318902576),U.write_shift(4,p.length),U.write_shift(2,296+32*x),U.write_shift(2,g),d=0;d<4;++d)U.write_shift(4,0);for(U.write_shift(4,0|(+r[Bh]||3)<<8),d=0,v=0;d":190,"?":191,"{":223},r=new RegExp("\x1BN("+or(t).join("|").replace(/\|\|\|/,"|\\||").replace(/([?()+])/g,"\\$1")+"|\\|)","gm"),e=function(u,p){var m=t[p];return typeof m=="number"?sc(m):m},n=function(u,p,m){var d=p.charCodeAt(0)-32<<4|m.charCodeAt(0)-48;return d==59?u:sc(d)};t["|"]=254;function i(u,p){switch(p.type){case"base64":return s(nn(u),p);case"binary":return s(u,p);case"buffer":return s(St&&Buffer.isBuffer(u)?u.toString("binary"):bi(u),p);case"array":return s(ji(u),p)}throw new Error("Unrecognized type "+p.type)}function s(u,p){var m=u.split(/[\n\r]+/),d=-1,v=-1,x=0,g=0,b=[],w=[],y=null,T={},C=[],M=[],I=[],B=0,U;for(+p.codepage>=0&&Sn(+p.codepage);x!==m.length;++x){B=0;var j=m[x].trim().replace(/\x1B([\x20-\x2F])([\x30-\x3F])/g,n).replace(r,e),H=j.replace(/;;/g,"\0").split(";").map(function(E){return E.replace(/\u0000/g,";")}),G=H[0],L;if(j.length>0)switch(G){case"ID":break;case"E":break;case"B":break;case"O":break;case"W":break;case"P":H[1].charAt(0)=="P"&&w.push(j.slice(3).replace(/;;/g,";"));break;case"C":var R=!1,F=!1,_=!1,k=!1,N=-1,P=-1;for(g=1;g-1&&b[N][P];if(!A||!A[1])throw new Error("SYLK shared formula cannot find base");b[d][v][1]=p0(A[1],{r:d-N,c:v-P})}break;case"F":var S=0;for(g=1;g0?(C[d].hpt=B,C[d].hpx=ps(B)):B===0&&(C[d].hidden=!0);break;default:if(p&&p.WTF)throw new Error("SYLK bad record "+j)}S<1&&(y=null);break;default:if(p&&p.WTF)throw new Error("SYLK bad record "+j)}}return C.length>0&&(T["!rows"]=C),M.length>0&&(T["!cols"]=M),p&&p.sheetRows&&(b=b.slice(0,p.sheetRows)),[b,T]}function o(u,p){var m=i(u,p),d=m[0],v=m[1],x=ra(d,p);return or(v).forEach(function(g){x[g]=v[g]}),x}function h(u,p){return Xi(o(u,p),p)}function c(u,p,m,d){var v="C;Y"+(m+1)+";X"+(d+1)+";K";switch(u.t){case"n":v+=u.v||0,u.f&&!u.F&&(v+=";E"+ml(u.f,{r:m,c:d}));break;case"b":v+=u.v?"TRUE":"FALSE";break;case"e":v+=u.w||u.v;break;case"d":v+='"'+(u.w||u.v)+'"';break;case"s":v+='"'+u.v.replace(/"/g,"").replace(/;/g,";;")+'"';break}return v}function a(u,p){p.forEach(function(m,d){var v="F;W"+(d+1)+" "+(d+1)+" ";m.hidden?v+="0":(typeof m.width=="number"&&!m.wpx&&(m.wpx=Vs(m.width)),typeof m.wpx=="number"&&!m.wch&&(m.wch=Gs(m.wpx)),typeof m.wch=="number"&&(v+=Math.round(m.wch))),v.charAt(v.length-1)!=" "&&u.push(v)})}function f(u,p){p.forEach(function(m,d){var v="F;";m.hidden?v+="M0;":m.hpt?v+="M"+20*m.hpt+";":m.hpx&&(v+="M"+20*Ks(m.hpx)+";"),v.length>2&&u.push(v+"R"+(d+1))})}function l(u,p){var m=["ID;PWXL;N;E"],d=[],v=Lt(u["!ref"]),x,g=Array.isArray(u),b=`\r +`;m.push("P;PGeneral"),m.push("F;P0;DG0G8;M255"),u["!cols"]&&a(m,u["!cols"]),u["!rows"]&&f(m,u["!rows"]),m.push("B;Y"+(v.e.r-v.s.r+1)+";X"+(v.e.c-v.s.c+1)+";D"+[v.s.c,v.s.r,v.e.c,v.e.r].join(" "));for(var w=v.s.r;w<=v.e.r;++w)for(var y=v.s.c;y<=v.e.c;++y){var T=yt({r:w,c:y});x=g?(u[w]||[])[y]:u[T],!(!x||x.v==null&&(!x.f||x.F))&&d.push(c(x,u,w,y))}return m.join(b)+b+d.join(b)+b+"E"+b}return{to_workbook:h,to_sheet:o,from_sheet:l}}(),Ju=function(){function t(s,o){switch(o.type){case"base64":return r(nn(s),o);case"binary":return r(s,o);case"buffer":return r(St&&Buffer.isBuffer(s)?s.toString("binary"):bi(s),o);case"array":return r(ji(s),o)}throw new Error("Unrecognized type "+o.type)}function r(s,o){for(var h=s.split(` +`),c=-1,a=-1,f=0,l=[];f!==h.length;++f){if(h[f].trim()==="BOT"){l[++c]=[],a=0;continue}if(!(c<0)){var u=h[f].trim().split(","),p=u[0],m=u[1];++f;for(var d=h[f]||"";(d.match(/["]/g)||[]).length&1&&f=0&&m[d].length===0;)--d;for(var v=10,x=0,g=0;g<=d;++g)x=m[g].indexOf(" "),x==-1?x=m[g].length:x++,v=Math.max(v,x);for(g=0;g<=d;++g){p[g]=[];var b=0;for(t(m[g].slice(0,v).trim(),p,g,b,u),b=1;b<=(m[g].length-v)/10+1;++b)t(m[g].slice(v+(b-1)*10,v+b*10).trim(),p,g,b,u)}return u.sheetRows&&(p=p.slice(0,u.sheetRows)),p}var e={44:",",9:" ",59:";",124:"|"},n={44:3,9:2,59:1,124:0};function i(f){for(var l={},u=!1,p=0,m=0;p0&&B(),m["!ref"]=Rt(d),m}function o(f,l){return!(l&&l.PRN)||l.FS||f.slice(0,4)=="sep="||f.indexOf(" ")>=0||f.indexOf(",")>=0||f.indexOf(";")>=0?s(f,l):ra(r(f,l),l)}function h(f,l){var u="",p=l.type=="string"?[0,0,0,0]:El(f,l);switch(l.type){case"base64":u=nn(f);break;case"binary":u=f;break;case"buffer":l.codepage==65001?u=f.toString("utf8"):l.codepage&&typeof ci<"u"?u=ci.utils.decode(l.codepage,f):u=St&&Buffer.isBuffer(f)?f.toString("binary"):bi(f);break;case"array":u=ji(f);break;case"string":u=f;break;default:throw new Error("Unrecognized type "+l.type)}return p[0]==239&&p[1]==187&&p[2]==191?u=Wt(u.slice(3)):l.type!="string"&&l.type!="buffer"&&l.codepage==65001?u=Wt(u):l.type=="binary"&&typeof ci<"u"&&l.codepage&&(u=ci.utils.decode(l.codepage,ci.utils.encode(28591,u))),u.slice(0,19)=="socialcalc:version:"?Qu.to_sheet(l.type=="string"?u:Wt(u),l):o(u,l)}function c(f,l){return Xi(h(f,l),l)}function a(f){for(var l=[],u=Lt(f["!ref"]),p,m=Array.isArray(f),d=u.s.r;d<=u.e.r;++d){for(var v=[],x=u.s.c;x<=u.e.c;++x){var g=yt({r:d,c:x});if(p=m?(f[d]||[])[x]:f[g],!p||p.v==null){v.push(" ");continue}for(var b=(p.w||(mi(p),p.w)||"").slice(0,10);b.length<10;)b+=" ";v.push(b+(x===0?" ":""))}l.push(v.join(""))}return l.join(` +`)}return{to_workbook:c,to_sheet:h,from_sheet:a}}();function Bx(t,r){var e=r||{},n=!!e.WTF;e.WTF=!0;try{var i=Zu.to_workbook(t,e);return e.WTF=n,i}catch(s){if(e.WTF=n,!s.message.match(/SYLK bad record ID/)&&n)throw s;return ds.to_workbook(t,r)}}var Ni=function(){function t(D,A,S){if(D){kr(D,D.l||0);for(var E=S.Enum||N;D.l=16&&D[14]==5&&D[15]===108)throw new Error("Unsupported Works 3 for Mac file");if(D[2]==2)S.Enum=N,t(D,function(we,ae,te){switch(te){case 0:S.vers=we,we>=4096&&(S.qpro=!0);break;case 6:Y=we;break;case 204:we&&(z=we);break;case 222:z=we;break;case 15:case 51:S.qpro||(we[1].v=we[1].v.slice(1));case 13:case 14:case 16:te==14&&(we[2]&112)==112&&(we[2]&15)>1&&(we[2]&15)<15&&(we[1].z=S.dateNF||xt[14],S.cellDates&&(we[1].t="d",we[1].v=xo(we[1].v))),S.qpro&&we[3]>J&&(E["!ref"]=Rt(Y),re[O]=E,se.push(O),E=S.dense?[]:{},Y={s:{r:0,c:0},e:{r:0,c:0}},J=we[3],O=z||"Sheet"+(J+1),z="");var Z=S.dense?(E[we[0].r]||[])[we[0].c]:E[yt(we[0])];if(Z){Z.t=we[1].t,Z.v=we[1].v,we[1].z!=null&&(Z.z=we[1].z),we[1].f!=null&&(Z.f=we[1].f);break}S.dense?(E[we[0].r]||(E[we[0].r]=[]),E[we[0].r][we[0].c]=we[1]):E[yt(we[0])]=we[1];break}},S);else if(D[2]==26||D[2]==14)S.Enum=P,D[2]==14&&(S.qpro=!0,D.l=0),t(D,function(we,ae,te){switch(te){case 204:O=we;break;case 22:we[1].v=we[1].v.slice(1);case 23:case 24:case 25:case 37:case 39:case 40:if(we[3]>J&&(E["!ref"]=Rt(Y),re[O]=E,se.push(O),E=S.dense?[]:{},Y={s:{r:0,c:0},e:{r:0,c:0}},J=we[3],O="Sheet"+(J+1)),q>0&&we[0].r>=q)break;S.dense?(E[we[0].r]||(E[we[0].r]=[]),E[we[0].r][we[0].c]=we[1]):E[yt(we[0])]=we[1],Y.e.c=0&&Sn(+S.codepage),S.type=="string")throw new Error("Cannot write WK1 to JS string");var E=Jr(),O=Lt(D["!ref"]),z=Array.isArray(D),J=[];qe(E,0,s(1030)),qe(E,6,c(O));for(var re=Math.min(O.e.r,8191),se=O.s.r;se<=re;++se)for(var Ce=Er(se),Y=O.s.c;Y<=O.e.c;++Y){se===O.s.r&&(J[Y]=dr(Y));var q=J[Y]+Ce,K=z?(D[se]||[])[Y]:D[q];if(!(!K||K.t=="z"))if(K.t=="n")(K.v|0)==K.v&&K.v>=-32768&&K.v<=32767?qe(E,13,p(se,Y,K.v)):qe(E,14,d(se,Y,K.v));else{var Q=mi(K);qe(E,15,l(se,Y,Q.slice(0,239)))}}return qe(E,1),E.end()}function i(D,A){var S=A||{};if(+S.codepage>=0&&Sn(+S.codepage),S.type=="string")throw new Error("Cannot write WK3 to JS string");var E=Jr();qe(E,0,o(D));for(var O=0,z=0;O8191&&(S=8191),A.write_shift(2,S),A.write_shift(1,O),A.write_shift(1,E),A.write_shift(2,0),A.write_shift(2,0),A.write_shift(1,1),A.write_shift(1,2),A.write_shift(4,0),A.write_shift(4,0),A}function h(D,A,S){var E={s:{c:0,r:0},e:{c:0,r:0}};return A==8&&S.qpro?(E.s.c=D.read_shift(1),D.l++,E.s.r=D.read_shift(2),E.e.c=D.read_shift(1),D.l++,E.e.r=D.read_shift(2),E):(E.s.c=D.read_shift(2),E.s.r=D.read_shift(2),A==12&&S.qpro&&(D.l+=2),E.e.c=D.read_shift(2),E.e.r=D.read_shift(2),A==12&&S.qpro&&(D.l+=2),E.s.c==65535&&(E.s.c=E.e.c=E.s.r=E.e.r=0),E)}function c(D){var A=We(8);return A.write_shift(2,D.s.c),A.write_shift(2,D.s.r),A.write_shift(2,D.e.c),A.write_shift(2,D.e.r),A}function a(D,A,S){var E=[{c:0,r:0},{t:"n",v:0},0,0];return S.qpro&&S.vers!=20768?(E[0].c=D.read_shift(1),E[3]=D.read_shift(1),E[0].r=D.read_shift(2),D.l+=2):(E[2]=D.read_shift(1),E[0].c=D.read_shift(2),E[0].r=D.read_shift(2)),E}function f(D,A,S){var E=D.l+A,O=a(D,A,S);if(O[1].t="s",S.vers==20768){D.l++;var z=D.read_shift(1);return O[1].v=D.read_shift(z,"utf8"),O}return S.qpro&&D.l++,O[1].v=D.read_shift(E-D.l,"cstr"),O}function l(D,A,S){var E=We(7+S.length);E.write_shift(1,255),E.write_shift(2,A),E.write_shift(2,D),E.write_shift(1,39);for(var O=0;O=128?95:z)}return E.write_shift(1,0),E}function u(D,A,S){var E=a(D,A,S);return E[1].v=D.read_shift(2,"i"),E}function p(D,A,S){var E=We(7);return E.write_shift(1,255),E.write_shift(2,A),E.write_shift(2,D),E.write_shift(2,S,"i"),E}function m(D,A,S){var E=a(D,A,S);return E[1].v=D.read_shift(8,"f"),E}function d(D,A,S){var E=We(13);return E.write_shift(1,255),E.write_shift(2,A),E.write_shift(2,D),E.write_shift(8,S,"f"),E}function v(D,A,S){var E=D.l+A,O=a(D,A,S);if(O[1].v=D.read_shift(8,"f"),S.qpro)D.l=E;else{var z=D.read_shift(2);w(D.slice(D.l,D.l+z),O),D.l+=z}return O}function x(D,A,S){var E=A&32768;return A&=-32769,A=(E?D:0)+(A>=8192?A-16384:A),(E?"":"$")+(S?dr(A):Er(A))}var g={51:["FALSE",0],52:["TRUE",0],70:["LEN",1],80:["SUM",69],81:["AVERAGEA",69],82:["COUNTA",69],83:["MINA",69],84:["MAXA",69],111:["T",1]},b=["","","","","","","","","","+","-","*","/","^","=","<>","<=",">=","<",">","","","","","&","","","","","","",""];function w(D,A){kr(D,0);for(var S=[],E=0,O="",z="",J="",re="";D.lS.length){console.error("WK1 bad formula parse 0x"+se.toString(16)+":|"+S.join("|")+"|");return}var K=S.slice(-E);S.length-=E,S.push(g[se][0]+"("+K.join(",")+")")}else return se<=7?console.error("WK1 invalid opcode "+se.toString(16)):se<=24?console.error("WK1 unsupported op "+se.toString(16)):se<=30?console.error("WK1 invalid opcode "+se.toString(16)):se<=115?console.error("WK1 unsupported function opcode "+se.toString(16)):console.error("WK1 unrecognized opcode "+se.toString(16))}}S.length==1?A[1].f=""+S[0]:console.error("WK1 bad formula parse |"+S.join("|")+"|")}function y(D){var A=[{c:0,r:0},{t:"n",v:0},0];return A[0].r=D.read_shift(2),A[3]=D[D.l++],A[0].c=D[D.l++],A}function T(D,A){var S=y(D);return S[1].t="s",S[1].v=D.read_shift(A-4,"cstr"),S}function C(D,A,S,E){var O=We(6+E.length);O.write_shift(2,D),O.write_shift(1,S),O.write_shift(1,A),O.write_shift(1,39);for(var z=0;z=128?95:J)}return O.write_shift(1,0),O}function M(D,A){var S=y(D);S[1].v=D.read_shift(2);var E=S[1].v>>1;if(S[1].v&1)switch(E&7){case 0:E=(E>>3)*5e3;break;case 1:E=(E>>3)*500;break;case 2:E=(E>>3)/20;break;case 3:E=(E>>3)/200;break;case 4:E=(E>>3)/2e3;break;case 5:E=(E>>3)/2e4;break;case 6:E=(E>>3)/16;break;case 7:E=(E>>3)/64;break}return S[1].v=E,S}function I(D,A){var S=y(D),E=D.read_shift(4),O=D.read_shift(4),z=D.read_shift(2);if(z==65535)return E===0&&O===3221225472?(S[1].t="e",S[1].v=15):E===0&&O===3489660928?(S[1].t="e",S[1].v=42):S[1].v=0,S;var J=z&32768;return z=(z&32767)-16446,S[1].v=(1-J*2)*(O*Math.pow(2,z+32)+E*Math.pow(2,z)),S}function B(D,A,S,E){var O=We(14);if(O.write_shift(2,D),O.write_shift(1,S),O.write_shift(1,A),E==0)return O.write_shift(4,0),O.write_shift(4,0),O.write_shift(2,65535),O;var z=0,J=0,re=0,se=0;return E<0&&(z=1,E=-E),J=Math.log2(E)|0,E/=Math.pow(2,J-31),se=E>>>0,se&2147483648||(E/=2,++J,se=E>>>0),E-=se,se|=2147483648,se>>>=0,E*=Math.pow(2,32),re=E>>>0,O.write_shift(4,re),O.write_shift(4,se),J+=16383+(z?32768:0),O.write_shift(2,J),O}function U(D,A){var S=I(D);return D.l+=A-14,S}function j(D,A){var S=y(D),E=D.read_shift(4);return S[1].v=E>>6,S}function H(D,A){var S=y(D),E=D.read_shift(8,"f");return S[1].v=E,S}function G(D,A){var S=H(D);return D.l+=A-10,S}function L(D,A){return D[D.l+A-1]==0?D.read_shift(A,"cstr"):""}function R(D,A){var S=D[D.l++];S>A-1&&(S=A-1);for(var E="";E.length127?95:O}return S[S.l++]=0,S}var N={0:{n:"BOF",f:hr},1:{n:"EOF"},2:{n:"CALCMODE"},3:{n:"CALCORDER"},4:{n:"SPLIT"},5:{n:"SYNC"},6:{n:"RANGE",f:h},7:{n:"WINDOW1"},8:{n:"COLW1"},9:{n:"WINTWO"},10:{n:"COLW2"},11:{n:"NAME"},12:{n:"BLANK"},13:{n:"INTEGER",f:u},14:{n:"NUMBER",f:m},15:{n:"LABEL",f},16:{n:"FORMULA",f:v},24:{n:"TABLE"},25:{n:"ORANGE"},26:{n:"PRANGE"},27:{n:"SRANGE"},28:{n:"FRANGE"},29:{n:"KRANGE1"},32:{n:"HRANGE"},35:{n:"KRANGE2"},36:{n:"PROTEC"},37:{n:"FOOTER"},38:{n:"HEADER"},39:{n:"SETUP"},40:{n:"MARGINS"},41:{n:"LABELFMT"},42:{n:"TITLES"},43:{n:"SHEETJS"},45:{n:"GRAPH"},46:{n:"NGRAPH"},47:{n:"CALCCOUNT"},48:{n:"UNFORMATTED"},49:{n:"CURSORW12"},50:{n:"WINDOW"},51:{n:"STRING",f},55:{n:"PASSWORD"},56:{n:"LOCKED"},60:{n:"QUERY"},61:{n:"QUERYNAME"},62:{n:"PRINT"},63:{n:"PRINTNAME"},64:{n:"GRAPH2"},65:{n:"GRAPHNAME"},66:{n:"ZOOM"},67:{n:"SYMSPLIT"},68:{n:"NSROWS"},69:{n:"NSCOLS"},70:{n:"RULER"},71:{n:"NNAME"},72:{n:"ACOMM"},73:{n:"AMACRO"},74:{n:"PARSE"},102:{n:"PRANGES??"},103:{n:"RRANGES??"},104:{n:"FNAME??"},105:{n:"MRANGES??"},204:{n:"SHEETNAMECS",f:L},222:{n:"SHEETNAMELP",f:R},65535:{n:""}},P={0:{n:"BOF"},1:{n:"EOF"},2:{n:"PASSWORD"},3:{n:"CALCSET"},4:{n:"WINDOWSET"},5:{n:"SHEETCELLPTR"},6:{n:"SHEETLAYOUT"},7:{n:"COLUMNWIDTH"},8:{n:"HIDDENCOLUMN"},9:{n:"USERRANGE"},10:{n:"SYSTEMRANGE"},11:{n:"ZEROFORCE"},12:{n:"SORTKEYDIR"},13:{n:"FILESEAL"},14:{n:"DATAFILLNUMS"},15:{n:"PRINTMAIN"},16:{n:"PRINTSTRING"},17:{n:"GRAPHMAIN"},18:{n:"GRAPHSTRING"},19:{n:"??"},20:{n:"ERRCELL"},21:{n:"NACELL"},22:{n:"LABEL16",f:T},23:{n:"NUMBER17",f:I},24:{n:"NUMBER18",f:M},25:{n:"FORMULA19",f:U},26:{n:"FORMULA1A"},27:{n:"XFORMAT",f:_},28:{n:"DTLABELMISC"},29:{n:"DTLABELCELL"},30:{n:"GRAPHWINDOW"},31:{n:"CPA"},32:{n:"LPLAUTO"},33:{n:"QUERY"},34:{n:"HIDDENSHEET"},35:{n:"??"},37:{n:"NUMBER25",f:j},38:{n:"??"},39:{n:"NUMBER27",f:H},40:{n:"FORMULA28",f:G},142:{n:"??"},147:{n:"??"},150:{n:"??"},151:{n:"??"},152:{n:"??"},153:{n:"??"},154:{n:"??"},155:{n:"??"},156:{n:"??"},163:{n:"??"},174:{n:"??"},175:{n:"??"},176:{n:"??"},177:{n:"??"},184:{n:"??"},185:{n:"??"},186:{n:"??"},187:{n:"??"},188:{n:"??"},195:{n:"??"},201:{n:"??"},204:{n:"SHEETNAMECS",f:L},205:{n:"??"},206:{n:"??"},207:{n:"??"},208:{n:"??"},256:{n:"??"},259:{n:"??"},260:{n:"??"},261:{n:"??"},262:{n:"??"},263:{n:"??"},265:{n:"??"},266:{n:"??"},267:{n:"??"},268:{n:"??"},270:{n:"??"},271:{n:"??"},384:{n:"??"},389:{n:"??"},390:{n:"??"},393:{n:"??"},396:{n:"??"},512:{n:"??"},514:{n:"??"},513:{n:"??"},516:{n:"??"},517:{n:"??"},640:{n:"??"},641:{n:"??"},642:{n:"??"},643:{n:"??"},644:{n:"??"},645:{n:"??"},646:{n:"??"},647:{n:"??"},648:{n:"??"},658:{n:"??"},659:{n:"??"},660:{n:"??"},661:{n:"??"},662:{n:"??"},665:{n:"??"},666:{n:"??"},768:{n:"??"},772:{n:"??"},1537:{n:"SHEETINFOQP",f:F},1600:{n:"??"},1602:{n:"??"},1793:{n:"??"},1794:{n:"??"},1795:{n:"??"},1796:{n:"??"},1920:{n:"??"},2048:{n:"??"},2049:{n:"??"},2052:{n:"??"},2688:{n:"??"},10998:{n:"??"},12849:{n:"??"},28233:{n:"??"},28484:{n:"??"},65535:{n:""}};return{sheet_to_wk1:n,book_to_wk3:i,to_workbook:r}}();function Lx(t){var r={},e=t.match(jr),n=0,i=!1;if(e)for(;n!=e.length;++n){var s=bt(e[n]);switch(s[0].replace(/\w*:/g,"")){case"":case"":r.shadow=1;break;case"":break;case"":case"":r.outline=1;break;case"":break;case"":case"":r.strike=1;break;case"":break;case"":case"":r.u=1;break;case"":break;case"":case"":r.b=1;break;case"":break;case"":case"":r.i=1;break;case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":break;case"":i=!1;break;default:if(s[0].charCodeAt(1)!==47&&!i)throw new Error("Unrecognized rich format "+s[0])}}return r}var jx=function(){var t=Hs("t"),r=Hs("rPr");function e(s){var o=s.match(t);if(!o)return{t:"s",v:""};var h={t:"s",v:Pt(o[1])},c=s.match(r);return c&&(h.s=Lx(c[1])),h}var n=/<(?:\w+:)?r>/g,i=/<\/(?:\w+:)?r>/;return function(o){return o.replace(n,"").split(i).map(e).filter(function(h){return h.v})}}(),Ux=function(){var r=/(\r\n|\n)/g;function e(i,s,o){var h=[];i.u&&h.push("text-decoration: underline;"),i.uval&&h.push("text-underline-style:"+i.uval+";"),i.sz&&h.push("font-size:"+i.sz+"pt;"),i.outline&&h.push("text-effect: outline;"),i.shadow&&h.push("text-shadow: auto;"),s.push(''),i.b&&(s.push(""),o.push("")),i.i&&(s.push(""),o.push("")),i.strike&&(s.push(""),o.push(""));var c=i.valign||"";return c=="superscript"||c=="super"?c="sup":c=="subscript"&&(c="sub"),c!=""&&(s.push("<"+c+">"),o.push("")),o.push(""),i}function n(i){var s=[[],i.v,[]];return i.v?(i.s&&e(i.s,s[0],s[2]),s[0].join("")+s[1].replace(r,"
")+s[2].join("")):""}return function(s){return s.map(n).join("")}}(),Hx=/<(?:\w+:)?t[^>]*>([^<]*)<\/(?:\w+:)?t>/g,zx=/<(?:\w+:)?r>/,$x=/<(?:\w+:)?rPh.*?>([\s\S]*?)<\/(?:\w+:)?rPh>/g;function cl(t,r){var e=r?r.cellHTML:!0,n={};return t?(t.match(/^\s*<(?:\w+:)?t[^>]*>/)?(n.t=Pt(Wt(t.slice(t.indexOf(">")+1).split(/<\/(?:\w+:)?t>/)[0]||"")),n.r=Wt(t),e&&(n.h=Qf(n.t))):t.match(zx)&&(n.r=Wt(t),n.t=Pt(Wt((t.replace($x,"").match(Hx)||[]).join("").replace(jr,""))),e&&(n.h=Ux(jx(n.r)))),n):{t:""}}var Wx=/<(?:\w+:)?sst([^>]*)>([\s\S]*)<\/(?:\w+:)?sst>/,Xx=/<(?:\w+:)?(?:si|sstItem)>/g,Vx=/<\/(?:\w+:)?(?:si|sstItem)>/;function Gx(t,r){var e=[],n="";if(!t)return e;var i=t.match(Wx);if(i){n=i[2].replace(Xx,"").split(Vx);for(var s=0;s!=n.length;++s){var o=cl(n[s].trim(),r);o!=null&&(e[e.length]=o)}i=bt(i[1]),e.Count=i.count,e.Unique=i.uniqueCount}return e}var Kx=/^\s|\s$|[\t\n\r]/;function qu(t,r){if(!r.bookSST)return"";var e=[fr];e[e.length]=Qe("sst",null,{xmlns:Wi[0],count:t.Count,uniqueCount:t.Unique});for(var n=0;n!=t.length;++n)if(t[n]!=null){var i=t[n],s="";i.r?s+=i.r:(s+=""),s+="",e[e.length]=s}return e.length>2&&(e[e.length]="",e[1]=e[1].replace("/>",">")),e.join("")}function Yx(t){return[t.read_shift(4),t.read_shift(4)]}function Zx(t,r){var e=[],n=!1;return ni(t,function(s,o,h){switch(h){case 159:e.Count=s[0],e.Unique=s[1];break;case 19:e.push(s);break;case 160:return!0;case 35:n=!0;break;case 36:n=!1;break;default:if(o.T,!n||r.WTF)throw new Error("Unexpected record 0x"+h.toString(16))}}),e}function Jx(t,r){return r||(r=We(8)),r.write_shift(4,t.Count),r.write_shift(4,t.Unique),r}var Qx=fg;function qx(t){var r=Jr();Ye(r,159,Jx(t));for(var e=0;e=4&&(t.l+=r-4),e}function e2(t){var r={};return r.id=t.read_shift(0,"lpp4"),r.R=ei(t,4),r.U=ei(t,4),r.W=ei(t,4),r}function t2(t){for(var r=t.read_shift(4),e=t.l+r-4,n={},i=t.read_shift(4),s=[];i-- >0;)s.push({t:t.read_shift(4),v:t.read_shift(0,"lpp4")});if(n.name=t.read_shift(0,"lpp4"),n.comps=s,t.l!=e)throw new Error("Bad DataSpaceMapEntry: "+t.l+" != "+e);return n}function r2(t){var r=[];t.l+=4;for(var e=t.read_shift(4);e-- >0;)r.push(t2(t));return r}function n2(t){var r=[];t.l+=4;for(var e=t.read_shift(4);e-- >0;)r.push(t.read_shift(0,"lpp4"));return r}function i2(t){var r={};return t.read_shift(4),t.l+=4,r.id=t.read_shift(0,"lpp4"),r.name=t.read_shift(0,"lpp4"),r.R=ei(t,4),r.U=ei(t,4),r.W=ei(t,4),r}function s2(t){var r=i2(t);if(r.ename=t.read_shift(0,"8lpp4"),r.blksz=t.read_shift(4),r.cmode=t.read_shift(4),t.read_shift(4)!=4)throw new Error("Bad !Primary record");return r}function t0(t,r){var e=t.l+r,n={};n.Flags=t.read_shift(4)&63,t.l+=4,n.AlgID=t.read_shift(4);var i=!1;switch(n.AlgID){case 26126:case 26127:case 26128:i=n.Flags==36;break;case 26625:i=n.Flags==4;break;case 0:i=n.Flags==16||n.Flags==4||n.Flags==36;break;default:throw"Unrecognized encryption algorithm: "+n.AlgID}if(!i)throw new Error("Encryption Flags/AlgID mismatch");return n.AlgIDHash=t.read_shift(4),n.KeySize=t.read_shift(4),n.ProviderType=t.read_shift(4),t.l+=8,n.CSPName=t.read_shift(e-t.l>>1,"utf16le"),t.l=e,n}function r0(t,r){var e={},n=t.l+r;return t.l+=4,e.Salt=t.slice(t.l,t.l+16),t.l+=16,e.Verifier=t.slice(t.l,t.l+16),t.l+=16,t.read_shift(4),e.VerifierHash=t.slice(t.l,n),t.l=n,e}function a2(t){var r=ei(t);switch(r.Minor){case 2:return[r.Minor,o2(t)];case 3:return[r.Minor,f2()];case 4:return[r.Minor,l2(t)]}throw new Error("ECMA-376 Encrypted file unrecognized Version: "+r.Minor)}function o2(t){var r=t.read_shift(4);if((r&63)!=36)throw new Error("EncryptionInfo mismatch");var e=t.read_shift(4),n=t0(t,e),i=r0(t,t.length-t.l);return{t:"Std",h:n,v:i}}function f2(){throw new Error("File is password-protected: ECMA-376 Extensible")}function l2(t){var r=["saltSize","blockSize","keyBits","hashSize","cipherAlgorithm","cipherChaining","hashAlgorithm","saltValue"];t.l+=4;var e=t.read_shift(t.length-t.l,"utf8"),n={};return e.replace(jr,function(s){var o=bt(s);switch(Hn(o[0])){case"":break;case"":case"":break;case"":break;case"4||n.Major<2)throw new Error("unrecognized major version code: "+n.Major);e.Flags=t.read_shift(4),r-=4;var i=t.read_shift(4);return r-=4,e.EncryptionHeader=t0(t,i),r-=i,e.EncryptionVerifier=r0(t,r),e}function h2(t){var r={},e=r.EncryptionVersionInfo=ei(t,4);if(e.Major!=1||e.Minor!=1)throw"unrecognized version code "+e.Major+" : "+e.Minor;return r.Salt=t.read_shift(16),r.EncryptedVerifier=t.read_shift(16),r.EncryptedVerifierHash=t.read_shift(16),r}function hl(t){var r=0,e,n=e0(t),i=n.length+1,s,o,h,c,a;for(e=pi(i),e[0]=n.length,s=1;s!=i;++s)e[s]=n[s-1];for(s=i-1;s>=0;--s)o=e[s],h=r&16384?1:0,c=r<<1&32767,a=h|c,r=a^o;return r^52811}var n0=function(){var t=[187,255,255,186,255,255,185,128,0,190,15,0,191,15,0],r=[57840,7439,52380,33984,4364,3600,61902,12606,6258,57657,54287,34041,10252,43370,20163],e=[44796,19929,39858,10053,20106,40212,10761,31585,63170,64933,60267,50935,40399,11199,17763,35526,1453,2906,5812,11624,23248,885,1770,3540,7080,14160,28320,56640,55369,41139,20807,41614,21821,43642,17621,28485,56970,44341,19019,38038,14605,29210,60195,50791,40175,10751,21502,43004,24537,18387,36774,3949,7898,15796,31592,63184,47201,24803,49606,37805,14203,28406,56812,17824,35648,1697,3394,6788,13576,27152,43601,17539,35078,557,1114,2228,4456,30388,60776,51953,34243,7079,14158,28316,14128,28256,56512,43425,17251,34502,7597,13105,26210,52420,35241,883,1766,3532,4129,8258,16516,33032,4657,9314,18628],n=function(o){return(o/2|o*128)&255},i=function(o,h){return n(o^h)},s=function(o){for(var h=r[o.length-1],c=104,a=o.length-1;a>=0;--a)for(var f=o[a],l=0;l!=7;++l)f&64&&(h^=e[c]),f*=2,--c;return h};return function(o){for(var h=e0(o),c=s(h),a=h.length,f=pi(16),l=0;l!=16;++l)f[l]=0;var u,p,m;for((a&1)===1&&(u=c>>8,f[a]=i(t[0],u),--a,u=c&255,p=h[h.length-1],f[a]=i(p,u));a>0;)--a,u=c>>8,f[a]=i(h[a],u),--a,u=c&255,f[a]=i(h[a],u);for(a=15,m=15-h.length;m>0;)u=c>>8,f[a]=i(t[m],u),--a,--m,u=c&255,f[a]=i(h[a],u),--a,--m;return f}}(),u2=function(t,r,e,n,i){i||(i=r),n||(n=n0(t));var s,o;for(s=0;s!=r.length;++s)o=r[s],o^=n[e],o=(o>>5|o<<3)&255,i[s]=o,++e;return[i,e,n]},d2=function(t){var r=0,e=n0(t);return function(n){var i=u2("",n,r,e);return r=i[1],i[0]}};function p2(t,r,e,n){var i={key:hr(t),verificationBytes:hr(t)};return e.password&&(i.verifier=hl(e.password)),n.valid=i.verificationBytes===i.verifier,n.valid&&(n.insitu=d2(e.password)),i}function m2(t,r,e){var n=e||{};return n.Info=t.read_shift(2),t.l-=2,n.Info===1?n.Data=h2(t):n.Data=c2(t,r),n}function g2(t,r,e){var n={Type:e.biff>=8?t.read_shift(2):0};return n.Type?m2(t,r-2,n):p2(t,e.biff>=8?r:r-2,e,n),n}var i0=function(){function t(i,s){switch(s.type){case"base64":return r(nn(i),s);case"binary":return r(i,s);case"buffer":return r(St&&Buffer.isBuffer(i)?i.toString("binary"):bi(i),s);case"array":return r(ji(i),s)}throw new Error("Unrecognized type "+s.type)}function r(i,s){var o=s||{},h=o.dense?[]:{},c=i.match(/\\trowd.*?\\row\b/g);if(!c.length)throw new Error("RTF missing table");var a={s:{c:0,r:0},e:{c:0,r:c.length-1}};return c.forEach(function(f,l){Array.isArray(h)&&(h[l]=[]);for(var u=/\\\w+\b/g,p=0,m,d=-1;m=u.exec(f);){switch(m[0]){case"\\cell":var v=f.slice(p,u.lastIndex-m[0].length);if(v[0]==" "&&(v=v.slice(1)),++d,v.length){var x={v,t:"s"};Array.isArray(h)?h[l][d]=x:h[yt({r:l,c:d})]=x}break}p=u.lastIndex}d>a.e.c&&(a.e.c=d)}),h["!ref"]=Rt(a),h}function e(i,s){return Xi(t(i,s),s)}function n(i){for(var s=["{\\rtf1\\ansi"],o=Lt(i["!ref"]),h,c=Array.isArray(i),a=o.s.r;a<=o.e.r;++a){s.push("\\trowd\\trautofit1");for(var f=o.s.c;f<=o.e.c;++f)s.push("\\cellx"+(f+1));for(s.push("\\pard\\intbl"),f=o.s.c;f<=o.e.c;++f){var l=yt({r:a,c:f});h=c?(i[a]||[])[f]:i[l],!(!h||h.v==null&&(!h.f||h.F))&&(s.push(" "+(h.w||(mi(h),h.w))),s.push("\\cell"))}s.push("\\pard\\intbl\\row")}return s.join("")+"}"}return{to_workbook:e,to_sheet:t,from_sheet:n}}();function v2(t){var r=t.slice(t[0]==="#"?1:0).slice(0,6);return[parseInt(r.slice(0,2),16),parseInt(r.slice(2,4),16),parseInt(r.slice(4,6),16)]}function Xs(t){for(var r=0,e=1;r!=3;++r)e=e*256+(t[r]>255?255:t[r]<0?0:t[r]);return e.toString(16).toUpperCase().slice(1)}function x2(t){var r=t[0]/255,e=t[1]/255,n=t[2]/255,i=Math.max(r,e,n),s=Math.min(r,e,n),o=i-s;if(o===0)return[0,0,r];var h=0,c=0,a=i+s;switch(c=o/(a>1?2-a:a),i){case r:h=((e-n)/o+6)%6;break;case e:h=(n-r)/o+2;break;case n:h=(r-e)/o+4;break}return[h/6,c,a/2]}function b2(t){var r=t[0],e=t[1],n=t[2],i=e*2*(n<.5?n:1-n),s=n-i/2,o=[s,s,s],h=6*r,c;if(e!==0)switch(h|0){case 0:case 6:c=i*h,o[0]+=i,o[1]+=c;break;case 1:c=i*(2-h),o[0]+=c,o[1]+=i;break;case 2:c=i*(h-2),o[1]+=i,o[2]+=c;break;case 3:c=i*(4-h),o[1]+=c,o[2]+=i;break;case 4:c=i*(h-4),o[2]+=i,o[0]+=c;break;case 5:c=i*(6-h),o[2]+=c,o[0]+=i;break}for(var a=0;a!=3;++a)o[a]=Math.round(o[a]*255);return o}function lo(t,r){if(r===0)return t;var e=x2(v2(t));return r<0?e[2]=e[2]*(1+r):e[2]=1-(1-e[2])*(1-r),Xs(b2(e))}var s0=6,w2=15,y2=1,Dr=s0;function Vs(t){return Math.floor((t+Math.round(128/Dr)/256)*Dr)}function Gs(t){return Math.floor((t-5)/Dr*100+.5)/100}function co(t){return Math.round((t*Dr+5)/Dr*256)/256}function Ko(t){return co(Gs(Vs(t)))}function ul(t){var r=Math.abs(t-Ko(t)),e=Dr;if(r>.005)for(Dr=y2;Dr":case"":break;case"":case"":i={},h.diagonalUp&&(i.diagonalUp=Yt(h.diagonalUp)),h.diagonalDown&&(i.diagonalDown=Yt(h.diagonalDown)),r.Borders.push(i);break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":case"":break;case"":break;case"":case"":break;case"":break;case"":case"":break;case"":break;case"":case"":break;case"":break;case"":case"":break;case"":break;case"":break;case"":case"":break;case"":case"":break;case"":s=!1;break;default:if(n&&n.WTF&&!s)throw new Error("unrecognized "+h[0]+" in borders")}})}function S2(t,r,e,n){r.Fills=[];var i={},s=!1;(t[0].match(jr)||[]).forEach(function(o){var h=bt(o);switch(Hn(h[0])){case"":case"":break;case"":case"":i={},r.Fills.push(i);break;case"":break;case"":break;case"":r.Fills.push(i),i={};break;case"":h.patternType&&(i.patternType=h.patternType);break;case"":case"":break;case"":case"":break;case"":case"":break;case"":break;case"":break;case"":break;case"":break;case"":case"":break;case"":s=!1;break;default:if(n&&n.WTF&&!s)throw new Error("unrecognized "+h[0]+" in fills")}})}function k2(t,r,e,n){r.Fonts=[];var i={},s=!1;(t[0].match(jr)||[]).forEach(function(o){var h=bt(o);switch(Hn(h[0])){case"":case"":break;case"":break;case"":case"":r.Fonts.push(i),i={};break;case"":case"":break;case"":i.bold=1;break;case"":i.italic=1;break;case"":i.underline=1;break;case"":i.strike=1;break;case"":i.outline=1;break;case"":i.shadow=1;break;case"":i.condense=1;break;case"":i.extend=1;break;case"":case"":break;case"":case"":break;case"":case"":break;case"":case"":break;case"":case"":break;case"":s=!1;break;case"":case"":break;case"":s=!1;break;default:if(n&&n.WTF&&!s)throw new Error("unrecognized "+h[0]+" in fonts")}})}function C2(t,r,e){r.NumberFmt=[];for(var n=or(xt),i=0;i":case"":case"":break;case"0){if(c>392){for(c=392;c>60&&r.NumberFmt[c]!=null;--c);r.NumberFmt[c]=h}Qn(h,c)}}break;case"":break;default:if(e.WTF)throw new Error("unrecognized "+o[0]+" in numFmts")}}}function A2(t){var r=[""];return[[5,8],[23,26],[41,44],[50,392]].forEach(function(e){for(var n=e[0];n<=e[1];++n)t[n]!=null&&(r[r.length]=Qe("numFmt",null,{numFmtId:n,formatCode:$t(t[n])}))}),r.length===1?"":(r[r.length]="",r[0]=Qe("numFmts",null,{count:r.length-2}).replace("/>",">"),r.join(""))}var Ba=["numFmtId","fillId","fontId","borderId","xfId"],La=["applyAlignment","applyBorder","applyFill","applyFont","applyNumberFormat","applyProtection","pivotButton","quotePrefix"];function F2(t,r,e){r.CellXf=[];var n,i=!1;(t[0].match(jr)||[]).forEach(function(s){var o=bt(s),h=0;switch(Hn(o[0])){case"":case"":case"":break;case"":for(n=o,delete n[0],h=0;h392){for(h=392;h>60;--h)if(r.NumberFmt[n.numFmtId]==r.NumberFmt[h]){n.numFmtId=h;break}}r.CellXf.push(n);break;case"":break;case"":var c={};o.vertical&&(c.vertical=o.vertical),o.horizontal&&(c.horizontal=o.horizontal),o.textRotation!=null&&(c.textRotation=o.textRotation),o.indent&&(c.indent=o.indent),o.wrapText&&(c.wrapText=Yt(o.wrapText)),n.alignment=c;break;case"":break;case"":case"":break;case"":i=!1;break;case"":case"":break;case"":i=!1;break;default:if(e&&e.WTF&&!i)throw new Error("unrecognized "+o[0]+" in cellXfs")}})}function R2(t){var r=[];return r[r.length]=Qe("cellXfs",null),t.forEach(function(e){r[r.length]=Qe("xf",null,e)}),r[r.length]="",r.length===2?"":(r[0]=Qe("cellXfs",null,{count:r.length-2}).replace("/>",">"),r.join(""))}var M2=function(){var r=/<(?:\w+:)?numFmts([^>]*)>[\S\s]*?<\/(?:\w+:)?numFmts>/,e=/<(?:\w+:)?cellXfs([^>]*)>[\S\s]*?<\/(?:\w+:)?cellXfs>/,n=/<(?:\w+:)?fills([^>]*)>[\S\s]*?<\/(?:\w+:)?fills>/,i=/<(?:\w+:)?fonts([^>]*)>[\S\s]*?<\/(?:\w+:)?fonts>/,s=/<(?:\w+:)?borders([^>]*)>[\S\s]*?<\/(?:\w+:)?borders>/;return function(h,c,a){var f={};if(!h)return f;h=h.replace(//mg,"").replace(//gm,"");var l;return(l=h.match(r))&&C2(l,f,a),(l=h.match(i))&&k2(l,f,c,a),(l=h.match(n))&&S2(l,f,c,a),(l=h.match(s))&&T2(l,f,c,a),(l=h.match(e))&&F2(l,f,a),f}}();function o0(t,r){var e=[fr,Qe("styleSheet",null,{xmlns:Wi[0],"xmlns:vt":gr.vt})],n;return t.SSF&&(n=A2(t.SSF))!=null&&(e[e.length]=n),e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',(n=R2(r.cellXfs))&&(e[e.length]=n),e[e.length]='',e[e.length]='',e[e.length]='',e.length>2&&(e[e.length]="",e[1]=e[1].replace("/>",">")),e.join("")}function O2(t,r){var e=t.read_shift(2),n=Pr(t);return[e,n]}function I2(t,r,e){e||(e=We(6+4*r.length)),e.write_shift(2,t),_r(r,e);var n=e.length>e.l?e.slice(0,e.l):e;return e.l==null&&(e.l=e.length),n}function D2(t,r,e){var n={};n.sz=t.read_shift(2)/20;var i=mg(t);i.fItalic&&(n.italic=1),i.fCondense&&(n.condense=1),i.fExtend&&(n.extend=1),i.fShadow&&(n.shadow=1),i.fOutline&&(n.outline=1),i.fStrikeout&&(n.strike=1);var s=t.read_shift(2);switch(s===700&&(n.bold=1),t.read_shift(2)){case 1:n.vertAlign="superscript";break;case 2:n.vertAlign="subscript";break}var o=t.read_shift(1);o!=0&&(n.underline=o);var h=t.read_shift(1);h>0&&(n.family=h);var c=t.read_shift(1);switch(c>0&&(n.charset=c),t.l++,n.color=pg(t),t.read_shift(1)){case 1:n.scheme="major";break;case 2:n.scheme="minor";break}return n.name=Pr(t),n}function N2(t,r){r||(r=We(25+4*32)),r.write_shift(2,t.sz*20),gg(t,r),r.write_shift(2,t.bold?700:400);var e=0;t.vertAlign=="superscript"?e=1:t.vertAlign=="subscript"&&(e=2),r.write_shift(2,e),r.write_shift(1,t.underline||0),r.write_shift(1,t.family||0),r.write_shift(1,t.charset||0),r.write_shift(1,0),ao(t.color,r);var n=0;return t.scheme=="major"&&(n=1),t.scheme=="minor"&&(n=2),r.write_shift(1,n),_r(t.name,r),r.length>r.l?r.slice(0,r.l):r}var P2=["none","solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"],Yo,B2=Lr;function Yc(t,r){r||(r=We(4*3+8*7+16*1)),Yo||(Yo=go(P2));var e=Yo[t.patternType];e==null&&(e=40),r.write_shift(4,e);var n=0;if(e!=40)for(ao({auto:1},r),ao({auto:1},r);n<12;++n)r.write_shift(4,0);else{for(;n<4;++n)r.write_shift(4,0);for(;n<12;++n)r.write_shift(4,0)}return r.length>r.l?r.slice(0,r.l):r}function L2(t,r){var e=t.l+r,n=t.read_shift(2),i=t.read_shift(2);return t.l=e,{ixfe:n,numFmtId:i}}function f0(t,r,e){e||(e=We(16)),e.write_shift(2,r||0),e.write_shift(2,t.numFmtId||0),e.write_shift(2,0),e.write_shift(2,0),e.write_shift(2,0),e.write_shift(1,0),e.write_shift(1,0);var n=0;return e.write_shift(1,n),e.write_shift(1,0),e.write_shift(1,0),e.write_shift(1,0),e}function _s(t,r){return r||(r=We(10)),r.write_shift(1,0),r.write_shift(1,0),r.write_shift(4,0),r.write_shift(4,0),r}var j2=Lr;function U2(t,r){return r||(r=We(51)),r.write_shift(1,0),_s(null,r),_s(null,r),_s(null,r),_s(null,r),_s(null,r),r.length>r.l?r.slice(0,r.l):r}function H2(t,r){return r||(r=We(12+4*10)),r.write_shift(4,t.xfId),r.write_shift(2,1),r.write_shift(1,+t.builtinId),r.write_shift(1,0),so(t.name||"",r),r.length>r.l?r.slice(0,r.l):r}function z2(t,r,e){var n=We(2052);return n.write_shift(4,t),so(r,n),so(e,n),n.length>n.l?n.slice(0,n.l):n}function $2(t,r,e){var n={};n.NumberFmt=[];for(var i in xt)n.NumberFmt[i]=xt[i];n.CellXf=[],n.Fonts=[];var s=[],o=!1;return ni(t,function(c,a,f){switch(f){case 44:n.NumberFmt[c[0]]=c[1],Qn(c[1],c[0]);break;case 43:n.Fonts.push(c),c.color.theme!=null&&r&&r.themeElements&&r.themeElements.clrScheme&&(c.color.rgb=lo(r.themeElements.clrScheme[c.color.theme].rgb,c.color.tint||0));break;case 1025:break;case 45:break;case 46:break;case 47:s[s.length-1]==617&&n.CellXf.push(c);break;case 48:case 507:case 572:case 475:break;case 1171:case 2102:case 1130:case 512:case 2095:case 3072:break;case 35:o=!0;break;case 36:o=!1;break;case 37:s.push(f),o=!0;break;case 38:s.pop(),o=!1;break;default:if(a.T>0)s.push(f);else if(a.T<0)s.pop();else if(!o||e.WTF&&s[s.length-1]!=37)throw new Error("Unexpected record 0x"+f.toString(16))}}),n}function W2(t,r){if(r){var e=0;[[5,8],[23,26],[41,44],[50,392]].forEach(function(n){for(var i=n[0];i<=n[1];++i)r[i]!=null&&++e}),e!=0&&(Ye(t,615,Cn(e)),[[5,8],[23,26],[41,44],[50,392]].forEach(function(n){for(var i=n[0];i<=n[1];++i)r[i]!=null&&Ye(t,44,I2(i,r[i]))}),Ye(t,616))}}function X2(t){var r=1;Ye(t,611,Cn(r)),Ye(t,43,N2({sz:12,color:{theme:1},name:"Calibri",family:2,scheme:"minor"})),Ye(t,612)}function V2(t){var r=2;Ye(t,603,Cn(r)),Ye(t,45,Yc({patternType:"none"})),Ye(t,45,Yc({patternType:"gray125"})),Ye(t,604)}function G2(t){var r=1;Ye(t,613,Cn(r)),Ye(t,46,U2()),Ye(t,614)}function K2(t){var r=1;Ye(t,626,Cn(r)),Ye(t,47,f0({numFmtId:0,fontId:0,fillId:0,borderId:0},65535)),Ye(t,627)}function Y2(t,r){Ye(t,617,Cn(r.length)),r.forEach(function(e){Ye(t,47,f0(e,0))}),Ye(t,618)}function Z2(t){var r=1;Ye(t,619,Cn(r)),Ye(t,48,H2({xfId:0,builtinId:0,name:"Normal"})),Ye(t,620)}function J2(t){var r=0;Ye(t,505,Cn(r)),Ye(t,506)}function Q2(t){var r=0;Ye(t,508,z2(r,"TableStyleMedium9","PivotStyleMedium4")),Ye(t,509)}function q2(t,r){var e=Jr();return Ye(e,278),W2(e,t.SSF),X2(e),V2(e),G2(e),K2(e),Y2(e,r.cellXfs),Z2(e),J2(e),Q2(e),Ye(e,279),e.end()}var eb=["","","","","","","","","","","",""];function tb(t,r,e){r.themeElements.clrScheme=[];var n={};(t[0].match(jr)||[]).forEach(function(i){var s=bt(i);switch(s[0]){case"":break;case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":s[0].charAt(1)==="/"?(r.themeElements.clrScheme[eb.indexOf(s[0])]=n,n={}):n.name=s[0].slice(3,s[0].length-1);break;default:if(e&&e.WTF)throw new Error("Unrecognized "+s[0]+" in clrScheme")}})}function rb(){}function nb(){}var ib=/]*)>[\s\S]*<\/a:clrScheme>/,sb=/]*)>[\s\S]*<\/a:fontScheme>/,ab=/]*)>[\s\S]*<\/a:fmtScheme>/;function ob(t,r,e){r.themeElements={};var n;[["clrScheme",ib,tb],["fontScheme",sb,rb],["fmtScheme",ab,nb]].forEach(function(i){if(!(n=t.match(i[1])))throw new Error(i[0]+" not found in themeElements");i[2](n,r,e)})}var fb=/]*)>[\s\S]*<\/a:themeElements>/;function l0(t,r){(!t||t.length===0)&&(t=dl());var e,n={};if(!(e=t.match(fb)))throw new Error("themeElements not found in theme");return ob(e[0],n,r),n.raw=t,n}function dl(t,r){if(r&&r.themeXLSX)return r.themeXLSX;if(t&&typeof t.raw=="string")return t.raw;var e=[fr];return e[e.length]='',e[e.length]="",e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]="",e[e.length]='',e[e.length]="",e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]="",e[e.length]="",e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]="",e[e.length]="",e[e.length]='',e[e.length]="",e[e.length]='',e[e.length]='',e[e.length]="",e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]="",e[e.length]='',e[e.length]="",e[e.length]='',e[e.length]="",e[e.length]='',e[e.length]='',e[e.length]="",e[e.length]='',e[e.length]="",e[e.length]="",e[e.length]="",e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]="",e[e.length]="",e[e.length]="",e[e.length]="",e[e.length]='',e[e.length]="",e[e.length]="",e[e.length]="",e[e.length]="",e[e.length]='',e[e.length]="",e[e.length]="",e[e.length]="",e[e.length]="",e[e.length]='',e[e.length]="",e[e.length]='',e[e.length]='',e[e.length]="",e[e.length]="",e[e.length]="",e[e.length]='',e[e.length]='',e[e.length]="",e[e.length]='',e[e.length]='',e[e.length]='',e[e.length]="",e[e.length]='',e[e.length]="",e[e.length]='',e[e.length]="",e[e.length]='',e[e.length]='',e[e.length]="",e[e.length]='',e[e.length]="",e[e.length]="",e[e.length]="",e[e.length]="",e[e.length]="",e[e.length]="",e[e.length]='',e[e.length]="",e[e.length]="",e[e.length]='',e[e.length]="",e[e.length]="",e[e.length]="",e[e.length]="",e.join("")}function lb(t,r,e){var n=t.l+r,i=t.read_shift(4);if(i!==124226){if(!e.cellStyles){t.l=n;return}var s=t.slice(t.l);t.l=n;var o;try{o=tu(s,{type:"array"})}catch{return}var h=rn(o,"theme/theme/theme1.xml",!0);if(h)return l0(h,e)}}function cb(t){return t.read_shift(4)}function hb(t){var r={};switch(r.xclrType=t.read_shift(2),r.nTintShade=t.read_shift(2),r.xclrType){case 0:t.l+=4;break;case 1:r.xclrValue=ub(t,4);break;case 2:r.xclrValue=zu(t);break;case 3:r.xclrValue=cb(t);break;case 4:t.l+=4;break}return t.l+=8,r}function ub(t,r){return Lr(t,r)}function db(t,r){return Lr(t,r)}function pb(t){var r=t.read_shift(2),e=t.read_shift(2)-4,n=[r];switch(r){case 4:case 5:case 7:case 8:case 9:case 10:case 11:case 13:n[1]=hb(t);break;case 6:n[1]=db(t,e);break;case 14:case 15:n[1]=t.read_shift(e===1?1:2);break;default:throw new Error("Unrecognized ExtProp type: "+r+" "+e)}return n}function mb(t,r){var e=t.l+r;t.l+=2;var n=t.read_shift(2);t.l+=2;for(var i=t.read_shift(2),s=[];i-- >0;)s.push(pb(t,e-t.l));return{ixfe:n,ext:s}}function gb(t,r){r.forEach(function(e){switch(e[0]){}})}function vb(t,r){return{flags:t.read_shift(4),version:t.read_shift(4),name:Pr(t)}}function xb(t){var r=We(12+2*t.name.length);return r.write_shift(4,t.flags),r.write_shift(4,t.version),_r(t.name,r),r.slice(0,r.l)}function bb(t){for(var r=[],e=t.read_shift(4);e-- >0;)r.push([t.read_shift(4),t.read_shift(4)]);return r}function wb(t){var r=We(4+8*t.length);r.write_shift(4,t.length);for(var e=0;e":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":s=2;break;case"":s=2;break;case"":case"":case"":break;case"":i=!1;break;case" + + + + + + + + + + + + + + + + + +`),t.join("")}function Cb(t){var r=[];if(!t)return r;var e=1;return(t.match(jr)||[]).forEach(function(n){var i=bt(n);switch(i[0]){case"":case"":break;case"]*r:id="([^"]*)"/)||["",""])[1];return r["!id"][e].Target}var fs=1024;function h0(t,r){for(var e=[21600,21600],n=["m0,0l0",e[1],e[0],e[1],e[0],"0xe"].join(","),i=[Qe("xml",null,{"xmlns:v":qr.v,"xmlns:o":qr.o,"xmlns:x":qr.x,"xmlns:mv":qr.mv}).replace(/\/>/,">"),Qe("o:shapelayout",Qe("o:idmap",null,{"v:ext":"edit",data:t}),{"v:ext":"edit"}),Qe("v:shapetype",[Qe("v:stroke",null,{joinstyle:"miter"}),Qe("v:path",null,{gradientshapeok:"t","o:connecttype":"rect"})].join(""),{id:"_x0000_t202","o:spt":202,coordsize:e.join(","),path:n})];fs",a,Qe("v:shadow",null,f),Qe("v:path",null,{"o:connecttype":"none"}),'
','',"","",Cr("x:Anchor",[o.c+1,0,o.r+1,0,o.c+3,20,o.r+5,20].join(",")),Cr("x:AutoFill","False"),Cr("x:Row",String(o.r)),Cr("x:Column",String(o.c)),s[1].hidden?"":"","",""])}),i.push(""),i.join("")}function Zc(t,r,e,n){var i=Array.isArray(t),s;r.forEach(function(o){var h=vr(o.ref);if(i?(t[h.r]||(t[h.r]=[]),s=t[h.r][h.c]):s=t[o.ref],!s){s={t:"z"},i?t[h.r][h.c]=s:t[o.ref]=s;var c=Lt(t["!ref"]||"BDWGO1000001:A1");c.s.r>h.r&&(c.s.r=h.r),c.e.rh.c&&(c.s.c=h.c),c.e.c=0;--l){if(!e&&s.c[l].T)return;e&&!s.c[l].T&&s.c.splice(l,1)}if(e&&n){for(l=0;l/))return[];var e=[],n=[],i=t.match(/<(?:\w+:)?authors>([\s\S]*)<\/(?:\w+:)?authors>/);i&&i[1]&&i[1].split(/<\/\w*:?author>/).forEach(function(o){if(!(o===""||o.trim()==="")){var h=o.match(/<(?:\w+:)?author[^>]*>(.*)/);h&&e.push(h[1])}});var s=t.match(/<(?:\w+:)?commentList>([\s\S]*)<\/(?:\w+:)?commentList>/);return s&&s[1]&&s[1].split(/<\/\w*:?comment>/).forEach(function(o){if(!(o===""||o.trim()==="")){var h=o.match(/<(?:\w+:)?comment[^>]*>/);if(h){var c=bt(h[0]),a={author:c.authorId&&e[c.authorId]||"sheetjsghost",ref:c.ref,guid:c.guid},f=vr(c.ref);if(!(r.sheetRows&&r.sheetRows<=f.r)){var l=o.match(/<(?:\w+:)?text>([\s\S]*)<\/(?:\w+:)?text>/),u=!!l&&!!l[1]&&cl(l[1])||{r:"",t:"",h:""};a.r=u.r,u.r==""&&(u.t=u.h=""),a.t=(u.t||"").replace(/\r\n/g,` +`).replace(/\r/g,` +`),r.cellHTML&&(a.h=u.h),n.push(a)}}}}),n}function u0(t){var r=[fr,Qe("comments",null,{xmlns:Wi[0]})],e=[];return r.push(""),t.forEach(function(n){n[1].forEach(function(i){var s=$t(i.a);e.indexOf(s)==-1&&(e.push(s),r.push(""+s+"")),i.T&&i.ID&&e.indexOf("tc="+i.ID)==-1&&(e.push("tc="+i.ID),r.push("tc="+i.ID+""))})}),e.length==0&&(e.push("SheetJ5"),r.push("SheetJ5")),r.push(""),r.push(""),t.forEach(function(n){var i=0,s=[];if(n[1][0]&&n[1][0].T&&n[1][0].ID?i=e.indexOf("tc="+n[1][0].ID):n[1].forEach(function(c){c.a&&(i=e.indexOf($t(c.a))),s.push(c.t||"")}),r.push(''),s.length<=1)r.push(Cr("t",$t(s[0]||"")));else{for(var o=`Comment: + `+s[0]+` +`,h=1;h")}),r.push(""),r.length>2&&(r[r.length]="",r[1]=r[1].replace("/>",">")),r.join("")}function Ib(t,r){var e=[],n=!1,i={},s=0;return t.replace(jr,function(h,c){var a=bt(h);switch(Hn(a[0])){case"":break;case"":i.t!=null&&e.push(i);break;case"":case"":i.t=t.slice(s,c).replace(/\r\n/g,` +`).replace(/\r/g,` +`);break;case"":n=!0;break;case"":n=!1;break;case"":case"
":case"":break;case"":n=!1;break;default:if(!n&&r.WTF)throw new Error("unrecognized "+a[0]+" in threaded comments")}return h}),e}function Db(t,r,e){var n=[fr,Qe("ThreadedComments",null,{xmlns:gr.TCMNT}).replace(/[\/]>/,">")];return t.forEach(function(i){var s="";(i[1]||[]).forEach(function(o,h){if(!o.T){delete o.ID;return}o.a&&r.indexOf(o.a)==-1&&r.push(o.a);var c={ref:i[0],id:"{54EE7951-7262-4200-6969-"+("000000000000"+e.tcid++).slice(-12)+"}"};h==0?s=c.id:c.parentId=s,o.ID=c.id,o.a&&(c.personId="{54EE7950-7262-4200-6969-"+("000000000000"+r.indexOf(o.a)).slice(-12)+"}"),n.push(Qe("threadedComment",Cr("text",o.t||""),c))})}),n.push(""),n.join("")}function Nb(t,r){var e=[],n=!1;return t.replace(jr,function(s){var o=bt(s);switch(Hn(o[0])){case"":break;case"":break;case"":case"":case"":break;case"":n=!1;break;default:if(!n&&r.WTF)throw new Error("unrecognized "+o[0]+" in threaded comments")}return s}),e}function Pb(t){var r=[fr,Qe("personList",null,{xmlns:gr.TCMNT,"xmlns:x":Wi[0]}).replace(/[\/]>/,">")];return t.forEach(function(e,n){r.push(Qe("person",null,{displayName:e,id:"{54EE7950-7262-4200-6969-"+("000000000000"+n).slice(-12)+"}",userId:e,providerId:"None"}))}),r.push(""),r.join("")}function Bb(t){var r={};r.iauthor=t.read_shift(4);var e=Yi(t);return r.rfx=e.s,r.ref=yt(e.s),t.l+=16,r}function Lb(t,r){return r==null&&(r=We(36)),r.write_shift(4,t[1].iauthor),xs(t[0],r),r.write_shift(4,0),r.write_shift(4,0),r.write_shift(4,0),r.write_shift(4,0),r}var jb=Pr;function Ub(t){return _r(t.slice(0,54))}function Hb(t,r){var e=[],n=[],i={},s=!1;return ni(t,function(h,c,a){switch(a){case 632:n.push(h);break;case 635:i=h;break;case 637:i.t=h.t,i.h=h.h,i.r=h.r;break;case 636:if(i.author=n[i.iauthor],delete i.iauthor,r.sheetRows&&i.rfx&&r.sheetRows<=i.rfx.r)break;i.t||(i.t=""),delete i.rfx,e.push(i);break;case 3072:break;case 35:s=!0;break;case 36:s=!1;break;case 37:break;case 38:break;default:if(!c.T){if(!s||r.WTF)throw new Error("Unexpected record 0x"+a.toString(16))}}}),e}function zb(t){var r=Jr(),e=[];return Ye(r,628),Ye(r,630),t.forEach(function(n){n[1].forEach(function(i){e.indexOf(i.a)>-1||(e.push(i.a.slice(0,54)),Ye(r,632,Ub(i.a)))})}),Ye(r,631),Ye(r,633),t.forEach(function(n){n[1].forEach(function(i){i.iauthor=e.indexOf(i.a);var s={s:vr(n[0]),e:vr(n[0])};Ye(r,635,Lb([s,i])),i.t&&i.t.length>0&&Ye(r,637,cg(i)),Ye(r,636),delete i.iauthor})}),Ye(r,634),Ye(r,629),r.end()}var $b="application/vnd.ms-office.vbaProject";function Wb(t){var r=ut.utils.cfb_new({root:"R"});return t.FullPaths.forEach(function(e,n){if(!(e.slice(-1)==="/"||!e.match(/_VBA_PROJECT_CUR/))){var i=e.replace(/^[^\/]*/,"R").replace(/\/_VBA_PROJECT_CUR\u0000*/,"");ut.utils.cfb_add(r,i,t.FileIndex[n].content)}}),ut.write(r)}function Xb(t,r){r.FullPaths.forEach(function(e,n){if(n!=0){var i=e.replace(/[^\/]*[\/]/,"/_VBA_PROJECT_CUR/");i.slice(-1)!=="/"&&ut.utils.cfb_add(t,i,r.FileIndex[n].content)}})}var d0=["xlsb","xlsm","xlam","biff8","xla"];function Vb(){return{"!type":"dialog"}}function Gb(){return{"!type":"dialog"}}function Kb(){return{"!type":"macro"}}function Yb(){return{"!type":"macro"}}var hs=function(){var t=/(^|[^A-Za-z_])R(\[?-?\d+\]|[1-9]\d*|)C(\[?-?\d+\]|[1-9]\d*|)(?![A-Za-z0-9_])/g,r={r:0,c:0};function e(n,i,s,o){var h=!1,c=!1;s.length==0?c=!0:s.charAt(0)=="["&&(c=!0,s=s.slice(1,-1)),o.length==0?h=!0:o.charAt(0)=="["&&(h=!0,o=o.slice(1,-1));var a=s.length>0?parseInt(s,10)|0:0,f=o.length>0?parseInt(o,10)|0:0;return h?f+=r.c:--f,c?a+=r.r:--a,i+(h?"":"$")+dr(f)+(c?"":"$")+Er(a)}return function(i,s){return r=s,i.replace(t,e)}}(),pl=/(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6]|[1-9]\d{0,5})(?![_.\(A-Za-z0-9])/g,ml=function(){return function(r,e){return r.replace(pl,function(n,i,s,o,h,c){var a=bu(o)-(s?0:e.c),f=xu(c)-(h?0:e.r),l=f==0?"":h?f+1:"["+f+"]",u=a==0?"":s?a+1:"["+a+"]";return i+"R"+l+"C"+u})}}();function p0(t,r){return t.replace(pl,function(e,n,i,s,o,h){return n+(i=="$"?i+s:dr(bu(s)+r.c))+(o=="$"?o+h:Er(xu(h)+r.r))})}function Zb(t,r,e){var n=mn(r),i=n.s,s=vr(e),o={r:s.r-i.r,c:s.c-i.c};return p0(t,o)}function Jb(t){return t.length!=1}function Jc(t){return t.replace(/_xlfn\./g,"")}function lr(t){t.l+=1}function vi(t,r){var e=t.read_shift(r==1?1:2);return[e&16383,e>>14&1,e>>15&1]}function m0(t,r,e){var n=2;if(e){if(e.biff>=2&&e.biff<=5)return g0(t);e.biff==12&&(n=4)}var i=t.read_shift(n),s=t.read_shift(n),o=vi(t,2),h=vi(t,2);return{s:{r:i,c:o[0],cRel:o[1],rRel:o[2]},e:{r:s,c:h[0],cRel:h[1],rRel:h[2]}}}function g0(t){var r=vi(t,2),e=vi(t,2),n=t.read_shift(1),i=t.read_shift(1);return{s:{r:r[0],c:n,cRel:r[1],rRel:r[2]},e:{r:e[0],c:i,cRel:e[1],rRel:e[2]}}}function Qb(t,r,e){if(e.biff<8)return g0(t);var n=t.read_shift(e.biff==12?4:2),i=t.read_shift(e.biff==12?4:2),s=vi(t,2),o=vi(t,2);return{s:{r:n,c:s[0],cRel:s[1],rRel:s[2]},e:{r:i,c:o[0],cRel:o[1],rRel:o[2]}}}function v0(t,r,e){if(e&&e.biff>=2&&e.biff<=5)return qb(t);var n=t.read_shift(e&&e.biff==12?4:2),i=vi(t,2);return{r:n,c:i[0],cRel:i[1],rRel:i[2]}}function qb(t){var r=vi(t,2),e=t.read_shift(1);return{r:r[0],c:e,cRel:r[1],rRel:r[2]}}function ew(t){var r=t.read_shift(2),e=t.read_shift(2);return{r,c:e&255,fQuoted:!!(e&16384),cRel:e>>15,rRel:e>>15}}function tw(t,r,e){var n=e&&e.biff?e.biff:8;if(n>=2&&n<=5)return rw(t);var i=t.read_shift(n>=12?4:2),s=t.read_shift(2),o=(s&16384)>>14,h=(s&32768)>>15;if(s&=16383,h==1)for(;i>524287;)i-=1048576;if(o==1)for(;s>8191;)s=s-16384;return{r:i,c:s,cRel:o,rRel:h}}function rw(t){var r=t.read_shift(2),e=t.read_shift(1),n=(r&32768)>>15,i=(r&16384)>>14;return r&=16383,n==1&&r>=8192&&(r=r-16384),i==1&&e>=128&&(e=e-256),{r,c:e,cRel:i,rRel:n}}function nw(t,r,e){var n=(t[t.l++]&96)>>5,i=m0(t,e.biff>=2&&e.biff<=5?6:8,e);return[n,i]}function iw(t,r,e){var n=(t[t.l++]&96)>>5,i=t.read_shift(2,"i"),s=8;if(e)switch(e.biff){case 5:t.l+=12,s=6;break;case 12:s=12;break}var o=m0(t,s,e);return[n,i,o]}function sw(t,r,e){var n=(t[t.l++]&96)>>5;return t.l+=e&&e.biff>8?12:e.biff<8?6:8,[n]}function aw(t,r,e){var n=(t[t.l++]&96)>>5,i=t.read_shift(2),s=8;if(e)switch(e.biff){case 5:t.l+=12,s=6;break;case 12:s=12;break}return t.l+=s,[n,i]}function ow(t,r,e){var n=(t[t.l++]&96)>>5,i=Qb(t,r-1,e);return[n,i]}function fw(t,r,e){var n=(t[t.l++]&96)>>5;return t.l+=e.biff==2?6:e.biff==12?14:7,[n]}function Qc(t){var r=t[t.l+1]&1,e=1;return t.l+=4,[r,e]}function lw(t,r,e){t.l+=2;for(var n=t.read_shift(e&&e.biff==2?1:2),i=[],s=0;s<=n;++s)i.push(t.read_shift(e&&e.biff==2?1:2));return i}function cw(t,r,e){var n=t[t.l+1]&255?1:0;return t.l+=2,[n,t.read_shift(e&&e.biff==2?1:2)]}function hw(t,r,e){var n=t[t.l+1]&255?1:0;return t.l+=2,[n,t.read_shift(e&&e.biff==2?1:2)]}function uw(t){var r=t[t.l+1]&255?1:0;return t.l+=2,[r,t.read_shift(2)]}function dw(t,r,e){var n=t[t.l+1]&255?1:0;return t.l+=e&&e.biff==2?3:4,[n]}function x0(t){var r=t.read_shift(1),e=t.read_shift(1);return[r,e]}function pw(t){return t.read_shift(2),x0(t)}function mw(t){return t.read_shift(2),x0(t)}function gw(t,r,e){var n=(t[t.l]&96)>>5;t.l+=1;var i=v0(t,0,e);return[n,i]}function vw(t,r,e){var n=(t[t.l]&96)>>5;t.l+=1;var i=tw(t,0,e);return[n,i]}function xw(t,r,e){var n=(t[t.l]&96)>>5;t.l+=1;var i=t.read_shift(2);e&&e.biff==5&&(t.l+=12);var s=v0(t,0,e);return[n,i,s]}function bw(t,r,e){var n=(t[t.l]&96)>>5;t.l+=1;var i=t.read_shift(e&&e.biff<=3?1:2);return[_y[i],y0[i],n]}function ww(t,r,e){var n=t[t.l++],i=t.read_shift(1),s=e&&e.biff<=3?[n==88?-1:0,t.read_shift(1)]:yw(t);return[i,(s[0]===0?y0:yy)[s[1]]]}function yw(t){return[t[t.l+1]>>7,t.read_shift(2)&32767]}function _w(t,r,e){t.l+=e&&e.biff==2?3:4}function Ew(t,r,e){if(t.l++,e&&e.biff==12)return[t.read_shift(4,"i"),0];var n=t.read_shift(2),i=t.read_shift(e&&e.biff==2?1:2);return[n,i]}function Tw(t){return t.l++,ii[t.read_shift(1)]}function Sw(t){return t.l++,t.read_shift(2)}function kw(t){return t.l++,t.read_shift(1)!==0}function Cw(t){return t.l++,Nr(t)}function Aw(t,r,e){return t.l++,na(t,r-1,e)}function Fw(t,r){var e=[t.read_shift(1)];if(r==12)switch(e[0]){case 2:e[0]=4;break;case 4:e[0]=16;break;case 0:e[0]=1;break;case 1:e[0]=2;break}switch(e[0]){case 4:e[1]=sr(t,1)?"TRUE":"FALSE",r!=12&&(t.l+=7);break;case 37:case 16:e[1]=ii[t[t.l]],t.l+=r==12?4:8;break;case 0:t.l+=8;break;case 1:e[1]=Nr(t);break;case 2:e[1]=Zi(t,0,{biff:r>0&&r<8?2:r});break;default:throw new Error("Bad SerAr: "+e[0])}return e}function Rw(t,r,e){for(var n=t.read_shift(e.biff==12?4:2),i=[],s=0;s!=n;++s)i.push((e.biff==12?Yi:bo)(t));return i}function Mw(t,r,e){var n=0,i=0;e.biff==12?(n=t.read_shift(4),i=t.read_shift(4)):(i=1+t.read_shift(1),n=1+t.read_shift(2)),e.biff>=2&&e.biff<8&&(--n,--i==0&&(i=256));for(var s=0,o=[];s!=n&&(o[s]=[]);++s)for(var h=0;h!=i;++h)o[s][h]=Fw(t,e.biff);return o}function Ow(t,r,e){var n=t.read_shift(1)>>>5&3,i=!e||e.biff>=8?4:2,s=t.read_shift(i);switch(e.biff){case 2:t.l+=5;break;case 3:case 4:t.l+=8;break;case 5:t.l+=12;break}return[n,0,s]}function Iw(t,r,e){if(e.biff==5)return Dw(t);var n=t.read_shift(1)>>>5&3,i=t.read_shift(2),s=t.read_shift(4);return[n,i,s]}function Dw(t){var r=t.read_shift(1)>>>5&3,e=t.read_shift(2,"i");t.l+=8;var n=t.read_shift(2);return t.l+=12,[r,e,n]}function Nw(t,r,e){var n=t.read_shift(1)>>>5&3;t.l+=e&&e.biff==2?3:4;var i=t.read_shift(e&&e.biff==2?1:2);return[n,i]}function Pw(t,r,e){var n=t.read_shift(1)>>>5&3,i=t.read_shift(e&&e.biff==2?1:2);return[n,i]}function Bw(t,r,e){var n=t.read_shift(1)>>>5&3;return t.l+=4,e.biff<8&&t.l--,e.biff==12&&(t.l+=2),[n]}function Lw(t,r,e){var n=(t[t.l++]&96)>>5,i=t.read_shift(2),s=4;if(e)switch(e.biff){case 5:s=15;break;case 12:s=6;break}return t.l+=s,[n,i]}var jw=Lr,Uw=Lr,Hw=Lr;function sa(t,r,e){return t.l+=2,[ew(t)]}function gl(t){return t.l+=6,[]}var zw=sa,$w=gl,Ww=gl,Xw=sa;function b0(t){return t.l+=2,[hr(t),t.read_shift(2)&1]}var Vw=sa,Gw=b0,Kw=gl,Yw=sa,Zw=sa,Jw=["Data","All","Headers","??","?Data2","??","?DataHeaders","??","Totals","??","??","??","?DataTotals","??","??","??","?Current"];function Qw(t){t.l+=2;var r=t.read_shift(2),e=t.read_shift(2),n=t.read_shift(4),i=t.read_shift(2),s=t.read_shift(2),o=Jw[e>>2&31];return{ixti:r,coltype:e&3,rt:o,idx:n,c:i,C:s}}function qw(t){return t.l+=2,[t.read_shift(4)]}function ey(t,r,e){return t.l+=5,t.l+=2,t.l+=e.biff==2?1:4,["PTGSHEET"]}function ty(t,r,e){return t.l+=e.biff==2?4:5,["PTGENDSHEET"]}function ry(t){var r=t.read_shift(1)>>>5&3,e=t.read_shift(2);return[r,e]}function ny(t){var r=t.read_shift(1)>>>5&3,e=t.read_shift(2);return[r,e]}function iy(t){return t.l+=4,[0,0]}var qc={1:{n:"PtgExp",f:Ew},2:{n:"PtgTbl",f:Hw},3:{n:"PtgAdd",f:lr},4:{n:"PtgSub",f:lr},5:{n:"PtgMul",f:lr},6:{n:"PtgDiv",f:lr},7:{n:"PtgPower",f:lr},8:{n:"PtgConcat",f:lr},9:{n:"PtgLt",f:lr},10:{n:"PtgLe",f:lr},11:{n:"PtgEq",f:lr},12:{n:"PtgGe",f:lr},13:{n:"PtgGt",f:lr},14:{n:"PtgNe",f:lr},15:{n:"PtgIsect",f:lr},16:{n:"PtgUnion",f:lr},17:{n:"PtgRange",f:lr},18:{n:"PtgUplus",f:lr},19:{n:"PtgUminus",f:lr},20:{n:"PtgPercent",f:lr},21:{n:"PtgParen",f:lr},22:{n:"PtgMissArg",f:lr},23:{n:"PtgStr",f:Aw},26:{n:"PtgSheet",f:ey},27:{n:"PtgEndSheet",f:ty},28:{n:"PtgErr",f:Tw},29:{n:"PtgBool",f:kw},30:{n:"PtgInt",f:Sw},31:{n:"PtgNum",f:Cw},32:{n:"PtgArray",f:fw},33:{n:"PtgFunc",f:bw},34:{n:"PtgFuncVar",f:ww},35:{n:"PtgName",f:Ow},36:{n:"PtgRef",f:gw},37:{n:"PtgArea",f:nw},38:{n:"PtgMemArea",f:Nw},39:{n:"PtgMemErr",f:jw},40:{n:"PtgMemNoMem",f:Uw},41:{n:"PtgMemFunc",f:Pw},42:{n:"PtgRefErr",f:Bw},43:{n:"PtgAreaErr",f:sw},44:{n:"PtgRefN",f:vw},45:{n:"PtgAreaN",f:ow},46:{n:"PtgMemAreaN",f:ry},47:{n:"PtgMemNoMemN",f:ny},57:{n:"PtgNameX",f:Iw},58:{n:"PtgRef3d",f:xw},59:{n:"PtgArea3d",f:iw},60:{n:"PtgRefErr3d",f:Lw},61:{n:"PtgAreaErr3d",f:aw},255:{}},sy={64:32,96:32,65:33,97:33,66:34,98:34,67:35,99:35,68:36,100:36,69:37,101:37,70:38,102:38,71:39,103:39,72:40,104:40,73:41,105:41,74:42,106:42,75:43,107:43,76:44,108:44,77:45,109:45,78:46,110:46,79:47,111:47,88:34,120:34,89:57,121:57,90:58,122:58,91:59,123:59,92:60,124:60,93:61,125:61},ay={1:{n:"PtgElfLel",f:b0},2:{n:"PtgElfRw",f:Yw},3:{n:"PtgElfCol",f:zw},6:{n:"PtgElfRwV",f:Zw},7:{n:"PtgElfColV",f:Xw},10:{n:"PtgElfRadical",f:Vw},11:{n:"PtgElfRadicalS",f:Kw},13:{n:"PtgElfColS",f:$w},15:{n:"PtgElfColSV",f:Ww},16:{n:"PtgElfRadicalLel",f:Gw},25:{n:"PtgList",f:Qw},29:{n:"PtgSxName",f:qw},255:{}},oy={0:{n:"PtgAttrNoop",f:iy},1:{n:"PtgAttrSemi",f:dw},2:{n:"PtgAttrIf",f:hw},4:{n:"PtgAttrChoose",f:lw},8:{n:"PtgAttrGoto",f:cw},16:{n:"PtgAttrSum",f:_w},32:{n:"PtgAttrBaxcel",f:Qc},33:{n:"PtgAttrBaxcel",f:Qc},64:{n:"PtgAttrSpace",f:pw},65:{n:"PtgAttrSpaceSemi",f:mw},128:{n:"PtgAttrIfError",f:uw},255:{}};function aa(t,r,e,n){if(n.biff<8)return Lr(t,r);for(var i=t.l+r,s=[],o=0;o!==e.length;++o)switch(e[o][0]){case"PtgArray":e[o][1]=Mw(t,0,n),s.push(e[o][1]);break;case"PtgMemArea":e[o][2]=Rw(t,e[o][1],n),s.push(e[o][2]);break;case"PtgExp":n&&n.biff==12&&(e[o][1][1]=t.read_shift(4),s.push(e[o][1]));break;case"PtgList":case"PtgElfRadicalS":case"PtgElfColS":case"PtgElfColSV":throw"Unsupported "+e[o][0]}return r=i-t.l,r!==0&&s.push(Lr(t,r)),s}function oa(t,r,e){for(var n=t.l+r,i,s,o=[];n!=t.l;)r=n-t.l,s=t[t.l],i=qc[s]||qc[sy[s]],(s===24||s===25)&&(i=(s===24?ay:oy)[t[t.l+1]]),!i||!i.f?Lr(t,r):o.push([i.n,i.f(t,r,e)]);return o}function fy(t){for(var r=[],e=0;e=",PtgGt:">",PtgLe:"<=",PtgLt:"<",PtgMul:"*",PtgNe:"<>",PtgPower:"^",PtgSub:"-"};function cy(t,r){if(!t&&!(r&&r.biff<=5&&r.biff>=2))throw new Error("empty sheet name");return/[^\w\u4E00-\u9FFF\u3040-\u30FF]/.test(t)?"'"+t+"'":t}function w0(t,r,e){if(!t)return"SH33TJSERR0";if(e.biff>8&&(!t.XTI||!t.XTI[r]))return t.SheetNames[r];if(!t.XTI)return"SH33TJSERR6";var n=t.XTI[r];if(e.biff<8)return r>1e4&&(r-=65536),r<0&&(r=-r),r==0?"":t.XTI[r-1];if(!n)return"SH33TJSERR1";var i="";if(e.biff>8)switch(t[n[0]][0]){case 357:return i=n[1]==-1?"#REF":t.SheetNames[n[1]],n[1]==n[2]?i:i+":"+t.SheetNames[n[2]];case 358:return e.SID!=null?t.SheetNames[e.SID]:"SH33TJSSAME"+t[n[0]][0];case 355:default:return"SH33TJSSRC"+t[n[0]][0]}switch(t[n[0]][0][0]){case 1025:return i=n[1]==-1?"#REF":t.SheetNames[n[1]]||"SH33TJSERR3",n[1]==n[2]?i:i+":"+t.SheetNames[n[2]];case 14849:return t[n[0]].slice(1).map(function(s){return s.Name}).join(";;");default:return t[n[0]][0][3]?(i=n[1]==-1?"#REF":t[n[0]][0][3][n[1]]||"SH33TJSERR4",n[1]==n[2]?i:i+":"+t[n[0]][0][3][n[2]]):"SH33TJSERR2"}}function eh(t,r,e){var n=w0(t,r,e);return n=="#REF"?n:cy(n,e)}function Ir(t,r,e,n,i){var s=i&&i.biff||8,o={s:{c:0,r:0},e:{c:0,r:0}},h=[],c,a,f,l=0,u=0,p,m="";if(!t[0]||!t[0][0])return"";for(var d=-1,v="",x=0,g=t[0].length;x=0){switch(t[0][d][1][0]){case 0:v=tr(" ",t[0][d][1][1]);break;case 1:v=tr("\r",t[0][d][1][1]);break;default:if(v="",i.WTF)throw new Error("Unexpected PtgAttrSpaceType "+t[0][d][1][0])}a=a+v,d=-1}h.push(a+ly[b[0]]+c);break;case"PtgIsect":c=h.pop(),a=h.pop(),h.push(a+" "+c);break;case"PtgUnion":c=h.pop(),a=h.pop(),h.push(a+","+c);break;case"PtgRange":c=h.pop(),a=h.pop(),h.push(a+":"+c);break;case"PtgAttrChoose":break;case"PtgAttrGoto":break;case"PtgAttrIf":break;case"PtgAttrIfError":break;case"PtgRef":f=Ms(b[1][1],o,i),h.push(Os(f,s));break;case"PtgRefN":f=e?Ms(b[1][1],e,i):b[1][1],h.push(Os(f,s));break;case"PtgRef3d":l=b[1][1],f=Ms(b[1][2],o,i),m=eh(n,l,i),h.push(m+"!"+Os(f,s));break;case"PtgFunc":case"PtgFuncVar":var w=b[1][0],y=b[1][1];w||(w=0),w&=127;var T=w==0?[]:h.slice(-w);h.length-=w,y==="User"&&(y=T.shift()),h.push(y+"("+T.join(",")+")");break;case"PtgBool":h.push(b[1]?"TRUE":"FALSE");break;case"PtgInt":h.push(b[1]);break;case"PtgNum":h.push(String(b[1]));break;case"PtgStr":h.push('"'+b[1].replace(/"/g,'""')+'"');break;case"PtgErr":h.push(b[1]);break;case"PtgAreaN":p=Fc(b[1][1],e?{s:e}:o,i),h.push(Xo(p,i));break;case"PtgArea":p=Fc(b[1][1],o,i),h.push(Xo(p,i));break;case"PtgArea3d":l=b[1][1],p=b[1][2],m=eh(n,l,i),h.push(m+"!"+Xo(p,i));break;case"PtgAttrSum":h.push("SUM("+h.pop()+")");break;case"PtgAttrBaxcel":case"PtgAttrSemi":break;case"PtgName":u=b[1][2];var C=(n.names||[])[u-1]||(n[0]||[])[u],M=C?C.Name:"SH33TJSNAME"+String(u);M&&M.slice(0,6)=="_xlfn."&&!i.xlfn&&(M=M.slice(6)),h.push(M);break;case"PtgNameX":var I=b[1][1];u=b[1][2];var B;if(i.biff<=5)I<0&&(I=-I),n[I]&&(B=n[I][u]);else{var U="";if(((n[I]||[])[0]||[])[0]==14849||(((n[I]||[])[0]||[])[0]==1025?n[I][u]&&n[I][u].itab>0&&(U=n.SheetNames[n[I][u].itab-1]+"!"):U=n.SheetNames[u-1]+"!"),n[I]&&n[I][u])U+=n[I][u].Name;else if(n[0]&&n[0][u])U+=n[0][u].Name;else{var j=(w0(n,I,i)||"").split(";;");j[u-1]?U=j[u-1]:U+="SH33TJSERRX"}h.push(U);break}B||(B={Name:"SH33TJSERRY"}),h.push(B.Name);break;case"PtgParen":var H="(",G=")";if(d>=0){switch(v="",t[0][d][1][0]){case 2:H=tr(" ",t[0][d][1][1])+H;break;case 3:H=tr("\r",t[0][d][1][1])+H;break;case 4:G=tr(" ",t[0][d][1][1])+G;break;case 5:G=tr("\r",t[0][d][1][1])+G;break;default:if(i.WTF)throw new Error("Unexpected PtgAttrSpaceType "+t[0][d][1][0])}d=-1}h.push(H+h.pop()+G);break;case"PtgRefErr":h.push("#REF!");break;case"PtgRefErr3d":h.push("#REF!");break;case"PtgExp":f={c:b[1][1],r:b[1][0]};var L={c:e.c,r:e.r};if(n.sharedf[yt(f)]){var R=n.sharedf[yt(f)];h.push(Ir(R,o,L,n,i))}else{var F=!1;for(c=0;c!=n.arrayf.length;++c)if(a=n.arrayf[c],!(f.ca[0].e.c)&&!(f.ra[0].e.r)){h.push(Ir(a[1],o,L,n,i)),F=!0;break}F||h.push(b[1])}break;case"PtgArray":h.push("{"+fy(b[1])+"}");break;case"PtgMemArea":break;case"PtgAttrSpace":case"PtgAttrSpaceSemi":d=x;break;case"PtgTbl":break;case"PtgMemErr":break;case"PtgMissArg":h.push("");break;case"PtgAreaErr":h.push("#REF!");break;case"PtgAreaErr3d":h.push("#REF!");break;case"PtgList":h.push("Table"+b[1].idx+"[#"+b[1].rt+"]");break;case"PtgMemAreaN":case"PtgMemNoMemN":case"PtgAttrNoop":case"PtgSheet":case"PtgEndSheet":break;case"PtgMemFunc":break;case"PtgMemNoMem":break;case"PtgElfCol":case"PtgElfColS":case"PtgElfColSV":case"PtgElfColV":case"PtgElfLel":case"PtgElfRadical":case"PtgElfRadicalLel":case"PtgElfRadicalS":case"PtgElfRw":case"PtgElfRwV":throw new Error("Unsupported ELFs");case"PtgSxName":throw new Error("Unrecognized Formula Token: "+String(b));default:throw new Error("Unrecognized Formula Token: "+String(b))}var _=["PtgAttrSpace","PtgAttrSpaceSemi","PtgAttrGoto"];if(i.biff!=3&&d>=0&&_.indexOf(t[0][x][0])==-1){b=t[0][d];var k=!0;switch(b[1][0]){case 4:k=!1;case 0:v=tr(" ",b[1][1]);break;case 5:k=!1;case 1:v=tr("\r",b[1][1]);break;default:if(v="",i.WTF)throw new Error("Unexpected PtgAttrSpaceType "+b[1][0])}h.push((k?v:"")+h.pop()+(k?"":v)),d=-1}}if(h.length>1&&i.WTF)throw new Error("bad formula stack");return h[0]}function hy(t,r,e){var n=t.l+r,i=e.biff==2?1:2,s,o=t.read_shift(i);if(o==65535)return[[],Lr(t,r-2)];var h=oa(t,o,e);return r!==o+i&&(s=aa(t,r-o-i,h,e)),t.l=n,[h,s]}function uy(t,r,e){var n=t.l+r,i=e.biff==2?1:2,s,o=t.read_shift(i);if(o==65535)return[[],Lr(t,r-2)];var h=oa(t,o,e);return r!==o+i&&(s=aa(t,r-o-i,h,e)),t.l=n,[h,s]}function dy(t,r,e,n){var i=t.l+r,s=oa(t,n,e),o;return i!==t.l&&(o=aa(t,i-t.l,s,e)),[s,o]}function py(t,r,e){var n=t.l+r,i,s=t.read_shift(2),o=oa(t,s,e);return s==65535?[[],Lr(t,r-2)]:(r!==s+2&&(i=aa(t,n-s-2,o,e)),[o,i])}function my(t){var r;if(Zn(t,t.l+6)!==65535)return[Nr(t),"n"];switch(t[t.l]){case 0:return t.l+=8,["String","s"];case 1:return r=t[t.l+2]===1,t.l+=8,[r,"b"];case 2:return r=t[t.l+2],t.l+=8,[r,"e"];case 3:return t.l+=8,["","s"]}return[]}function gy(t){if(t==null){var r=We(8);return r.write_shift(1,3),r.write_shift(1,0),r.write_shift(2,0),r.write_shift(2,0),r.write_shift(2,65535),r}else if(typeof t=="number")return Ui(t);return Ui(0)}function Zo(t,r,e){var n=t.l+r,i=zn(t);e.biff==2&&++t.l;var s=my(t),o=t.read_shift(1);e.biff!=2&&(t.read_shift(1),e.biff>=5&&t.read_shift(4));var h=uy(t,n-t.l,e);return{cell:i,val:s[0],formula:h,shared:o>>3&1,tt:s[1]}}function vy(t,r,e,n,i){var s=zi(r,e,i),o=gy(t.v),h=We(6),c=33;h.write_shift(2,c),h.write_shift(4,0);for(var a=We(t.bf.length),f=0;f0?aa(t,s,i,e):null;return[i,o]}var xy=wo,yo=wo,by=wo,wy=wo,yy={0:"BEEP",1:"OPEN",2:"OPEN.LINKS",3:"CLOSE.ALL",4:"SAVE",5:"SAVE.AS",6:"FILE.DELETE",7:"PAGE.SETUP",8:"PRINT",9:"PRINTER.SETUP",10:"QUIT",11:"NEW.WINDOW",12:"ARRANGE.ALL",13:"WINDOW.SIZE",14:"WINDOW.MOVE",15:"FULL",16:"CLOSE",17:"RUN",22:"SET.PRINT.AREA",23:"SET.PRINT.TITLES",24:"SET.PAGE.BREAK",25:"REMOVE.PAGE.BREAK",26:"FONT",27:"DISPLAY",28:"PROTECT.DOCUMENT",29:"PRECISION",30:"A1.R1C1",31:"CALCULATE.NOW",32:"CALCULATION",34:"DATA.FIND",35:"EXTRACT",36:"DATA.DELETE",37:"SET.DATABASE",38:"SET.CRITERIA",39:"SORT",40:"DATA.SERIES",41:"TABLE",42:"FORMAT.NUMBER",43:"ALIGNMENT",44:"STYLE",45:"BORDER",46:"CELL.PROTECTION",47:"COLUMN.WIDTH",48:"UNDO",49:"CUT",50:"COPY",51:"PASTE",52:"CLEAR",53:"PASTE.SPECIAL",54:"EDIT.DELETE",55:"INSERT",56:"FILL.RIGHT",57:"FILL.DOWN",61:"DEFINE.NAME",62:"CREATE.NAMES",63:"FORMULA.GOTO",64:"FORMULA.FIND",65:"SELECT.LAST.CELL",66:"SHOW.ACTIVE.CELL",67:"GALLERY.AREA",68:"GALLERY.BAR",69:"GALLERY.COLUMN",70:"GALLERY.LINE",71:"GALLERY.PIE",72:"GALLERY.SCATTER",73:"COMBINATION",74:"PREFERRED",75:"ADD.OVERLAY",76:"GRIDLINES",77:"SET.PREFERRED",78:"AXES",79:"LEGEND",80:"ATTACH.TEXT",81:"ADD.ARROW",82:"SELECT.CHART",83:"SELECT.PLOT.AREA",84:"PATTERNS",85:"MAIN.CHART",86:"OVERLAY",87:"SCALE",88:"FORMAT.LEGEND",89:"FORMAT.TEXT",90:"EDIT.REPEAT",91:"PARSE",92:"JUSTIFY",93:"HIDE",94:"UNHIDE",95:"WORKSPACE",96:"FORMULA",97:"FORMULA.FILL",98:"FORMULA.ARRAY",99:"DATA.FIND.NEXT",100:"DATA.FIND.PREV",101:"FORMULA.FIND.NEXT",102:"FORMULA.FIND.PREV",103:"ACTIVATE",104:"ACTIVATE.NEXT",105:"ACTIVATE.PREV",106:"UNLOCKED.NEXT",107:"UNLOCKED.PREV",108:"COPY.PICTURE",109:"SELECT",110:"DELETE.NAME",111:"DELETE.FORMAT",112:"VLINE",113:"HLINE",114:"VPAGE",115:"HPAGE",116:"VSCROLL",117:"HSCROLL",118:"ALERT",119:"NEW",120:"CANCEL.COPY",121:"SHOW.CLIPBOARD",122:"MESSAGE",124:"PASTE.LINK",125:"APP.ACTIVATE",126:"DELETE.ARROW",127:"ROW.HEIGHT",128:"FORMAT.MOVE",129:"FORMAT.SIZE",130:"FORMULA.REPLACE",131:"SEND.KEYS",132:"SELECT.SPECIAL",133:"APPLY.NAMES",134:"REPLACE.FONT",135:"FREEZE.PANES",136:"SHOW.INFO",137:"SPLIT",138:"ON.WINDOW",139:"ON.DATA",140:"DISABLE.INPUT",142:"OUTLINE",143:"LIST.NAMES",144:"FILE.CLOSE",145:"SAVE.WORKBOOK",146:"DATA.FORM",147:"COPY.CHART",148:"ON.TIME",149:"WAIT",150:"FORMAT.FONT",151:"FILL.UP",152:"FILL.LEFT",153:"DELETE.OVERLAY",155:"SHORT.MENUS",159:"SET.UPDATE.STATUS",161:"COLOR.PALETTE",162:"DELETE.STYLE",163:"WINDOW.RESTORE",164:"WINDOW.MAXIMIZE",166:"CHANGE.LINK",167:"CALCULATE.DOCUMENT",168:"ON.KEY",169:"APP.RESTORE",170:"APP.MOVE",171:"APP.SIZE",172:"APP.MINIMIZE",173:"APP.MAXIMIZE",174:"BRING.TO.FRONT",175:"SEND.TO.BACK",185:"MAIN.CHART.TYPE",186:"OVERLAY.CHART.TYPE",187:"SELECT.END",188:"OPEN.MAIL",189:"SEND.MAIL",190:"STANDARD.FONT",191:"CONSOLIDATE",192:"SORT.SPECIAL",193:"GALLERY.3D.AREA",194:"GALLERY.3D.COLUMN",195:"GALLERY.3D.LINE",196:"GALLERY.3D.PIE",197:"VIEW.3D",198:"GOAL.SEEK",199:"WORKGROUP",200:"FILL.GROUP",201:"UPDATE.LINK",202:"PROMOTE",203:"DEMOTE",204:"SHOW.DETAIL",206:"UNGROUP",207:"OBJECT.PROPERTIES",208:"SAVE.NEW.OBJECT",209:"SHARE",210:"SHARE.NAME",211:"DUPLICATE",212:"APPLY.STYLE",213:"ASSIGN.TO.OBJECT",214:"OBJECT.PROTECTION",215:"HIDE.OBJECT",216:"SET.EXTRACT",217:"CREATE.PUBLISHER",218:"SUBSCRIBE.TO",219:"ATTRIBUTES",220:"SHOW.TOOLBAR",222:"PRINT.PREVIEW",223:"EDIT.COLOR",224:"SHOW.LEVELS",225:"FORMAT.MAIN",226:"FORMAT.OVERLAY",227:"ON.RECALC",228:"EDIT.SERIES",229:"DEFINE.STYLE",240:"LINE.PRINT",243:"ENTER.DATA",249:"GALLERY.RADAR",250:"MERGE.STYLES",251:"EDITION.OPTIONS",252:"PASTE.PICTURE",253:"PASTE.PICTURE.LINK",254:"SPELLING",256:"ZOOM",259:"INSERT.OBJECT",260:"WINDOW.MINIMIZE",265:"SOUND.NOTE",266:"SOUND.PLAY",267:"FORMAT.SHAPE",268:"EXTEND.POLYGON",269:"FORMAT.AUTO",272:"GALLERY.3D.BAR",273:"GALLERY.3D.SURFACE",274:"FILL.AUTO",276:"CUSTOMIZE.TOOLBAR",277:"ADD.TOOL",278:"EDIT.OBJECT",279:"ON.DOUBLECLICK",280:"ON.ENTRY",281:"WORKBOOK.ADD",282:"WORKBOOK.MOVE",283:"WORKBOOK.COPY",284:"WORKBOOK.OPTIONS",285:"SAVE.WORKSPACE",288:"CHART.WIZARD",289:"DELETE.TOOL",290:"MOVE.TOOL",291:"WORKBOOK.SELECT",292:"WORKBOOK.ACTIVATE",293:"ASSIGN.TO.TOOL",295:"COPY.TOOL",296:"RESET.TOOL",297:"CONSTRAIN.NUMERIC",298:"PASTE.TOOL",302:"WORKBOOK.NEW",305:"SCENARIO.CELLS",306:"SCENARIO.DELETE",307:"SCENARIO.ADD",308:"SCENARIO.EDIT",309:"SCENARIO.SHOW",310:"SCENARIO.SHOW.NEXT",311:"SCENARIO.SUMMARY",312:"PIVOT.TABLE.WIZARD",313:"PIVOT.FIELD.PROPERTIES",314:"PIVOT.FIELD",315:"PIVOT.ITEM",316:"PIVOT.ADD.FIELDS",318:"OPTIONS.CALCULATION",319:"OPTIONS.EDIT",320:"OPTIONS.VIEW",321:"ADDIN.MANAGER",322:"MENU.EDITOR",323:"ATTACH.TOOLBARS",324:"VBAActivate",325:"OPTIONS.CHART",328:"VBA.INSERT.FILE",330:"VBA.PROCEDURE.DEFINITION",336:"ROUTING.SLIP",338:"ROUTE.DOCUMENT",339:"MAIL.LOGON",342:"INSERT.PICTURE",343:"EDIT.TOOL",344:"GALLERY.DOUGHNUT",350:"CHART.TREND",352:"PIVOT.ITEM.PROPERTIES",354:"WORKBOOK.INSERT",355:"OPTIONS.TRANSITION",356:"OPTIONS.GENERAL",370:"FILTER.ADVANCED",373:"MAIL.ADD.MAILER",374:"MAIL.DELETE.MAILER",375:"MAIL.REPLY",376:"MAIL.REPLY.ALL",377:"MAIL.FORWARD",378:"MAIL.NEXT.LETTER",379:"DATA.LABEL",380:"INSERT.TITLE",381:"FONT.PROPERTIES",382:"MACRO.OPTIONS",383:"WORKBOOK.HIDE",384:"WORKBOOK.UNHIDE",385:"WORKBOOK.DELETE",386:"WORKBOOK.NAME",388:"GALLERY.CUSTOM",390:"ADD.CHART.AUTOFORMAT",391:"DELETE.CHART.AUTOFORMAT",392:"CHART.ADD.DATA",393:"AUTO.OUTLINE",394:"TAB.ORDER",395:"SHOW.DIALOG",396:"SELECT.ALL",397:"UNGROUP.SHEETS",398:"SUBTOTAL.CREATE",399:"SUBTOTAL.REMOVE",400:"RENAME.OBJECT",412:"WORKBOOK.SCROLL",413:"WORKBOOK.NEXT",414:"WORKBOOK.PREV",415:"WORKBOOK.TAB.SPLIT",416:"FULL.SCREEN",417:"WORKBOOK.PROTECT",420:"SCROLLBAR.PROPERTIES",421:"PIVOT.SHOW.PAGES",422:"TEXT.TO.COLUMNS",423:"FORMAT.CHARTTYPE",424:"LINK.FORMAT",425:"TRACER.DISPLAY",430:"TRACER.NAVIGATE",431:"TRACER.CLEAR",432:"TRACER.ERROR",433:"PIVOT.FIELD.GROUP",434:"PIVOT.FIELD.UNGROUP",435:"CHECKBOX.PROPERTIES",436:"LABEL.PROPERTIES",437:"LISTBOX.PROPERTIES",438:"EDITBOX.PROPERTIES",439:"PIVOT.REFRESH",440:"LINK.COMBO",441:"OPEN.TEXT",442:"HIDE.DIALOG",443:"SET.DIALOG.FOCUS",444:"ENABLE.OBJECT",445:"PUSHBUTTON.PROPERTIES",446:"SET.DIALOG.DEFAULT",447:"FILTER",448:"FILTER.SHOW.ALL",449:"CLEAR.OUTLINE",450:"FUNCTION.WIZARD",451:"ADD.LIST.ITEM",452:"SET.LIST.ITEM",453:"REMOVE.LIST.ITEM",454:"SELECT.LIST.ITEM",455:"SET.CONTROL.VALUE",456:"SAVE.COPY.AS",458:"OPTIONS.LISTS.ADD",459:"OPTIONS.LISTS.DELETE",460:"SERIES.AXES",461:"SERIES.X",462:"SERIES.Y",463:"ERRORBAR.X",464:"ERRORBAR.Y",465:"FORMAT.CHART",466:"SERIES.ORDER",467:"MAIL.LOGOFF",468:"CLEAR.ROUTING.SLIP",469:"APP.ACTIVATE.MICROSOFT",470:"MAIL.EDIT.MAILER",471:"ON.SHEET",472:"STANDARD.WIDTH",473:"SCENARIO.MERGE",474:"SUMMARY.INFO",475:"FIND.FILE",476:"ACTIVE.CELL.FONT",477:"ENABLE.TIPWIZARD",478:"VBA.MAKE.ADDIN",480:"INSERTDATATABLE",481:"WORKGROUP.OPTIONS",482:"MAIL.SEND.MAILER",485:"AUTOCORRECT",489:"POST.DOCUMENT",491:"PICKLIST",493:"VIEW.SHOW",494:"VIEW.DEFINE",495:"VIEW.DELETE",509:"SHEET.BACKGROUND",510:"INSERT.MAP.OBJECT",511:"OPTIONS.MENONO",517:"MSOCHECKS",518:"NORMAL",519:"LAYOUT",520:"RM.PRINT.AREA",521:"CLEAR.PRINT.AREA",522:"ADD.PRINT.AREA",523:"MOVE.BRK",545:"HIDECURR.NOTE",546:"HIDEALL.NOTES",547:"DELETE.NOTE",548:"TRAVERSE.NOTES",549:"ACTIVATE.NOTES",620:"PROTECT.REVISIONS",621:"UNPROTECT.REVISIONS",647:"OPTIONS.ME",653:"WEB.PUBLISH",667:"NEWWEBQUERY",673:"PIVOT.TABLE.CHART",753:"OPTIONS.SAVE",755:"OPTIONS.SPELL",808:"HIDEALL.INKANNOTS"},y0={0:"COUNT",1:"IF",2:"ISNA",3:"ISERROR",4:"SUM",5:"AVERAGE",6:"MIN",7:"MAX",8:"ROW",9:"COLUMN",10:"NA",11:"NPV",12:"STDEV",13:"DOLLAR",14:"FIXED",15:"SIN",16:"COS",17:"TAN",18:"ATAN",19:"PI",20:"SQRT",21:"EXP",22:"LN",23:"LOG10",24:"ABS",25:"INT",26:"SIGN",27:"ROUND",28:"LOOKUP",29:"INDEX",30:"REPT",31:"MID",32:"LEN",33:"VALUE",34:"TRUE",35:"FALSE",36:"AND",37:"OR",38:"NOT",39:"MOD",40:"DCOUNT",41:"DSUM",42:"DAVERAGE",43:"DMIN",44:"DMAX",45:"DSTDEV",46:"VAR",47:"DVAR",48:"TEXT",49:"LINEST",50:"TREND",51:"LOGEST",52:"GROWTH",53:"GOTO",54:"HALT",55:"RETURN",56:"PV",57:"FV",58:"NPER",59:"PMT",60:"RATE",61:"MIRR",62:"IRR",63:"RAND",64:"MATCH",65:"DATE",66:"TIME",67:"DAY",68:"MONTH",69:"YEAR",70:"WEEKDAY",71:"HOUR",72:"MINUTE",73:"SECOND",74:"NOW",75:"AREAS",76:"ROWS",77:"COLUMNS",78:"OFFSET",79:"ABSREF",80:"RELREF",81:"ARGUMENT",82:"SEARCH",83:"TRANSPOSE",84:"ERROR",85:"STEP",86:"TYPE",87:"ECHO",88:"SET.NAME",89:"CALLER",90:"DEREF",91:"WINDOWS",92:"SERIES",93:"DOCUMENTS",94:"ACTIVE.CELL",95:"SELECTION",96:"RESULT",97:"ATAN2",98:"ASIN",99:"ACOS",100:"CHOOSE",101:"HLOOKUP",102:"VLOOKUP",103:"LINKS",104:"INPUT",105:"ISREF",106:"GET.FORMULA",107:"GET.NAME",108:"SET.VALUE",109:"LOG",110:"EXEC",111:"CHAR",112:"LOWER",113:"UPPER",114:"PROPER",115:"LEFT",116:"RIGHT",117:"EXACT",118:"TRIM",119:"REPLACE",120:"SUBSTITUTE",121:"CODE",122:"NAMES",123:"DIRECTORY",124:"FIND",125:"CELL",126:"ISERR",127:"ISTEXT",128:"ISNUMBER",129:"ISBLANK",130:"T",131:"N",132:"FOPEN",133:"FCLOSE",134:"FSIZE",135:"FREADLN",136:"FREAD",137:"FWRITELN",138:"FWRITE",139:"FPOS",140:"DATEVALUE",141:"TIMEVALUE",142:"SLN",143:"SYD",144:"DDB",145:"GET.DEF",146:"REFTEXT",147:"TEXTREF",148:"INDIRECT",149:"REGISTER",150:"CALL",151:"ADD.BAR",152:"ADD.MENU",153:"ADD.COMMAND",154:"ENABLE.COMMAND",155:"CHECK.COMMAND",156:"RENAME.COMMAND",157:"SHOW.BAR",158:"DELETE.MENU",159:"DELETE.COMMAND",160:"GET.CHART.ITEM",161:"DIALOG.BOX",162:"CLEAN",163:"MDETERM",164:"MINVERSE",165:"MMULT",166:"FILES",167:"IPMT",168:"PPMT",169:"COUNTA",170:"CANCEL.KEY",171:"FOR",172:"WHILE",173:"BREAK",174:"NEXT",175:"INITIATE",176:"REQUEST",177:"POKE",178:"EXECUTE",179:"TERMINATE",180:"RESTART",181:"HELP",182:"GET.BAR",183:"PRODUCT",184:"FACT",185:"GET.CELL",186:"GET.WORKSPACE",187:"GET.WINDOW",188:"GET.DOCUMENT",189:"DPRODUCT",190:"ISNONTEXT",191:"GET.NOTE",192:"NOTE",193:"STDEVP",194:"VARP",195:"DSTDEVP",196:"DVARP",197:"TRUNC",198:"ISLOGICAL",199:"DCOUNTA",200:"DELETE.BAR",201:"UNREGISTER",204:"USDOLLAR",205:"FINDB",206:"SEARCHB",207:"REPLACEB",208:"LEFTB",209:"RIGHTB",210:"MIDB",211:"LENB",212:"ROUNDUP",213:"ROUNDDOWN",214:"ASC",215:"DBCS",216:"RANK",219:"ADDRESS",220:"DAYS360",221:"TODAY",222:"VDB",223:"ELSE",224:"ELSE.IF",225:"END.IF",226:"FOR.CELL",227:"MEDIAN",228:"SUMPRODUCT",229:"SINH",230:"COSH",231:"TANH",232:"ASINH",233:"ACOSH",234:"ATANH",235:"DGET",236:"CREATE.OBJECT",237:"VOLATILE",238:"LAST.ERROR",239:"CUSTOM.UNDO",240:"CUSTOM.REPEAT",241:"FORMULA.CONVERT",242:"GET.LINK.INFO",243:"TEXT.BOX",244:"INFO",245:"GROUP",246:"GET.OBJECT",247:"DB",248:"PAUSE",251:"RESUME",252:"FREQUENCY",253:"ADD.TOOLBAR",254:"DELETE.TOOLBAR",255:"User",256:"RESET.TOOLBAR",257:"EVALUATE",258:"GET.TOOLBAR",259:"GET.TOOL",260:"SPELLING.CHECK",261:"ERROR.TYPE",262:"APP.TITLE",263:"WINDOW.TITLE",264:"SAVE.TOOLBAR",265:"ENABLE.TOOL",266:"PRESS.TOOL",267:"REGISTER.ID",268:"GET.WORKBOOK",269:"AVEDEV",270:"BETADIST",271:"GAMMALN",272:"BETAINV",273:"BINOMDIST",274:"CHIDIST",275:"CHIINV",276:"COMBIN",277:"CONFIDENCE",278:"CRITBINOM",279:"EVEN",280:"EXPONDIST",281:"FDIST",282:"FINV",283:"FISHER",284:"FISHERINV",285:"FLOOR",286:"GAMMADIST",287:"GAMMAINV",288:"CEILING",289:"HYPGEOMDIST",290:"LOGNORMDIST",291:"LOGINV",292:"NEGBINOMDIST",293:"NORMDIST",294:"NORMSDIST",295:"NORMINV",296:"NORMSINV",297:"STANDARDIZE",298:"ODD",299:"PERMUT",300:"POISSON",301:"TDIST",302:"WEIBULL",303:"SUMXMY2",304:"SUMX2MY2",305:"SUMX2PY2",306:"CHITEST",307:"CORREL",308:"COVAR",309:"FORECAST",310:"FTEST",311:"INTERCEPT",312:"PEARSON",313:"RSQ",314:"STEYX",315:"SLOPE",316:"TTEST",317:"PROB",318:"DEVSQ",319:"GEOMEAN",320:"HARMEAN",321:"SUMSQ",322:"KURT",323:"SKEW",324:"ZTEST",325:"LARGE",326:"SMALL",327:"QUARTILE",328:"PERCENTILE",329:"PERCENTRANK",330:"MODE",331:"TRIMMEAN",332:"TINV",334:"MOVIE.COMMAND",335:"GET.MOVIE",336:"CONCATENATE",337:"POWER",338:"PIVOT.ADD.DATA",339:"GET.PIVOT.TABLE",340:"GET.PIVOT.FIELD",341:"GET.PIVOT.ITEM",342:"RADIANS",343:"DEGREES",344:"SUBTOTAL",345:"SUMIF",346:"COUNTIF",347:"COUNTBLANK",348:"SCENARIO.GET",349:"OPTIONS.LISTS.GET",350:"ISPMT",351:"DATEDIF",352:"DATESTRING",353:"NUMBERSTRING",354:"ROMAN",355:"OPEN.DIALOG",356:"SAVE.DIALOG",357:"VIEW.GET",358:"GETPIVOTDATA",359:"HYPERLINK",360:"PHONETIC",361:"AVERAGEA",362:"MAXA",363:"MINA",364:"STDEVPA",365:"VARPA",366:"STDEVA",367:"VARA",368:"BAHTTEXT",369:"THAIDAYOFWEEK",370:"THAIDIGIT",371:"THAIMONTHOFYEAR",372:"THAINUMSOUND",373:"THAINUMSTRING",374:"THAISTRINGLENGTH",375:"ISTHAIDIGIT",376:"ROUNDBAHTDOWN",377:"ROUNDBAHTUP",378:"THAIYEAR",379:"RTD",380:"CUBEVALUE",381:"CUBEMEMBER",382:"CUBEMEMBERPROPERTY",383:"CUBERANKEDMEMBER",384:"HEX2BIN",385:"HEX2DEC",386:"HEX2OCT",387:"DEC2BIN",388:"DEC2HEX",389:"DEC2OCT",390:"OCT2BIN",391:"OCT2HEX",392:"OCT2DEC",393:"BIN2DEC",394:"BIN2OCT",395:"BIN2HEX",396:"IMSUB",397:"IMDIV",398:"IMPOWER",399:"IMABS",400:"IMSQRT",401:"IMLN",402:"IMLOG2",403:"IMLOG10",404:"IMSIN",405:"IMCOS",406:"IMEXP",407:"IMARGUMENT",408:"IMCONJUGATE",409:"IMAGINARY",410:"IMREAL",411:"COMPLEX",412:"IMSUM",413:"IMPRODUCT",414:"SERIESSUM",415:"FACTDOUBLE",416:"SQRTPI",417:"QUOTIENT",418:"DELTA",419:"GESTEP",420:"ISEVEN",421:"ISODD",422:"MROUND",423:"ERF",424:"ERFC",425:"BESSELJ",426:"BESSELK",427:"BESSELY",428:"BESSELI",429:"XIRR",430:"XNPV",431:"PRICEMAT",432:"YIELDMAT",433:"INTRATE",434:"RECEIVED",435:"DISC",436:"PRICEDISC",437:"YIELDDISC",438:"TBILLEQ",439:"TBILLPRICE",440:"TBILLYIELD",441:"PRICE",442:"YIELD",443:"DOLLARDE",444:"DOLLARFR",445:"NOMINAL",446:"EFFECT",447:"CUMPRINC",448:"CUMIPMT",449:"EDATE",450:"EOMONTH",451:"YEARFRAC",452:"COUPDAYBS",453:"COUPDAYS",454:"COUPDAYSNC",455:"COUPNCD",456:"COUPNUM",457:"COUPPCD",458:"DURATION",459:"MDURATION",460:"ODDLPRICE",461:"ODDLYIELD",462:"ODDFPRICE",463:"ODDFYIELD",464:"RANDBETWEEN",465:"WEEKNUM",466:"AMORDEGRC",467:"AMORLINC",468:"CONVERT",724:"SHEETJS",469:"ACCRINT",470:"ACCRINTM",471:"WORKDAY",472:"NETWORKDAYS",473:"GCD",474:"MULTINOMIAL",475:"LCM",476:"FVSCHEDULE",477:"CUBEKPIMEMBER",478:"CUBESET",479:"CUBESETCOUNT",480:"IFERROR",481:"COUNTIFS",482:"SUMIFS",483:"AVERAGEIF",484:"AVERAGEIFS"},_y={2:1,3:1,10:0,15:1,16:1,17:1,18:1,19:0,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:2,30:2,31:3,32:1,33:1,34:0,35:0,38:1,39:2,40:3,41:3,42:3,43:3,44:3,45:3,47:3,48:2,53:1,61:3,63:0,65:3,66:3,67:1,68:1,69:1,70:1,71:1,72:1,73:1,74:0,75:1,76:1,77:1,79:2,80:2,83:1,85:0,86:1,89:0,90:1,94:0,95:0,97:2,98:1,99:1,101:3,102:3,105:1,106:1,108:2,111:1,112:1,113:1,114:1,117:2,118:1,119:4,121:1,126:1,127:1,128:1,129:1,130:1,131:1,133:1,134:1,135:1,136:2,137:2,138:2,140:1,141:1,142:3,143:4,144:4,161:1,162:1,163:1,164:1,165:2,172:1,175:2,176:2,177:3,178:2,179:1,184:1,186:1,189:3,190:1,195:3,196:3,197:1,198:1,199:3,201:1,207:4,210:3,211:1,212:2,213:2,214:1,215:1,225:0,229:1,230:1,231:1,232:1,233:1,234:1,235:3,244:1,247:4,252:2,257:1,261:1,271:1,273:4,274:2,275:2,276:2,277:3,278:3,279:1,280:3,281:3,282:3,283:1,284:1,285:2,286:4,287:3,288:2,289:4,290:3,291:3,292:3,293:4,294:1,295:3,296:1,297:3,298:1,299:2,300:3,301:3,302:4,303:2,304:2,305:2,306:2,307:2,308:2,309:3,310:2,311:2,312:2,313:2,314:2,315:2,316:4,325:2,326:2,327:2,328:2,331:2,332:2,337:2,342:1,343:1,346:2,347:1,350:4,351:3,352:1,353:2,360:1,368:1,369:1,370:1,371:1,372:1,373:1,374:1,375:1,376:1,377:1,378:1,382:3,385:1,392:1,393:1,396:2,397:2,398:2,399:1,400:1,401:1,402:1,403:1,404:1,405:1,406:1,407:1,408:1,409:1,410:1,414:4,415:1,416:1,417:2,420:1,421:1,422:2,424:1,425:2,426:2,427:2,428:2,430:3,438:3,439:3,440:3,443:2,444:2,445:2,446:2,447:6,448:6,449:2,450:2,464:2,468:3,476:2,479:1,480:2,65535:0};function th(t){return t.slice(0,3)=="of:"&&(t=t.slice(3)),t.charCodeAt(0)==61&&(t=t.slice(1),t.charCodeAt(0)==61&&(t=t.slice(1))),t=t.replace(/COM\.MICROSOFT\./g,""),t=t.replace(/\[((?:\.[A-Z]+[0-9]+)(?::\.[A-Z]+[0-9]+)?)\]/g,function(r,e){return e.replace(/\./g,"")}),t=t.replace(/\[.(#[A-Z]*[?!])\]/g,"$1"),t.replace(/[;~]/g,",").replace(/\|/g,";")}function Ey(t){var r="of:="+t.replace(pl,"$1[.$2$3$4$5]").replace(/\]:\[/g,":");return r.replace(/;/g,"|").replace(/,/g,";")}function Jo(t){var r=t.split(":"),e=r[0].split(".")[0];return[e,r[0].split(".")[1]+(r.length>1?":"+(r[1].split(".")[1]||r[1].split(".")[0]):"")]}function Ty(t){return t.replace(/\./,"!")}var Ds={},us={},Ns=typeof Map<"u";function vl(t,r,e){var n=0,i=t.length;if(e){if(Ns?e.has(r):Object.prototype.hasOwnProperty.call(e,r)){for(var s=Ns?e.get(r):e[r];n-1?(e.width=co(n),e.customWidth=1):r.width!=null&&(e.width=r.width),r.hidden&&(e.hidden=!0),r.level!=null&&(e.outlineLevel=e.level=r.level),e}function Pi(t,r){if(t){var e=[.7,.7,.75,.75,.3,.3];r=="xlml"&&(e=[1,1,1,1,.5,.5]),t.left==null&&(t.left=e[0]),t.right==null&&(t.right=e[1]),t.top==null&&(t.top=e[2]),t.bottom==null&&(t.bottom=e[3]),t.header==null&&(t.header=e[4]),t.footer==null&&(t.footer=e[5])}}function wi(t,r,e){var n=e.revssf[r.z!=null?r.z:"General"],i=60,s=t.length;if(n==null&&e.ssf){for(;i<392;++i)if(e.ssf[i]==null){Qn(r.z,i),e.ssf[i]=r.z,e.revssf[r.z]=n=i;break}}for(i=0;i!=s;++i)if(t[i].numFmtId===n)return i;return t[s]={numFmtId:n,fontId:0,fillId:0,borderId:0,xfId:0,applyNumberFormat:1},s}function _0(t,r,e,n,i,s){try{n.cellNF&&(t.z=xt[r])}catch(h){if(n.WTF)throw h}if(!(t.t==="z"&&!n.cellStyles)){if(t.t==="d"&&typeof t.v=="string"&&(t.v=qt(t.v)),(!n||n.cellText!==!1)&&t.t!=="z")try{if(xt[r]==null&&Qn(ym[r]||"General",r),t.t==="e")t.w=t.w||ii[t.v];else if(r===0)if(t.t==="n")(t.v|0)===t.v?t.w=t.v.toString(10):t.w=js(t.v);else if(t.t==="d"){var o=Ar(t.v);(o|0)===o?t.w=o.toString(10):t.w=js(o)}else{if(t.v===void 0)return"";t.w=Li(t.v,us)}else t.t==="d"?t.w=pn(r,Ar(t.v),us):t.w=pn(r,t.v,us)}catch(h){if(n.WTF)throw h}if(n.cellStyles&&e!=null)try{t.s=s.Fills[e],t.s.fgColor&&t.s.fgColor.theme&&!t.s.fgColor.rgb&&(t.s.fgColor.rgb=lo(i.themeElements.clrScheme[t.s.fgColor.theme].rgb,t.s.fgColor.tint||0),n.WTF&&(t.s.fgColor.raw_rgb=i.themeElements.clrScheme[t.s.fgColor.theme].rgb)),t.s.bgColor&&t.s.bgColor.theme&&(t.s.bgColor.rgb=lo(i.themeElements.clrScheme[t.s.bgColor.theme].rgb,t.s.bgColor.tint||0),n.WTF&&(t.s.bgColor.raw_rgb=i.themeElements.clrScheme[t.s.bgColor.theme].rgb))}catch(h){if(n.WTF&&s.Fills)throw h}}}function Sy(t,r,e){if(t&&t["!ref"]){var n=Lt(t["!ref"]);if(n.e.c=0&&e.s.c>=0&&(t["!ref"]=Rt(e))}var Cy=/<(?:\w:)?mergeCell ref="[A-Z0-9:]+"\s*[\/]?>/g,Ay=/<(?:\w+:)?sheetData[^>]*>([\s\S]*)<\/(?:\w+:)?sheetData>/,Fy=/<(?:\w:)?hyperlink [^>]*>/mg,Ry=/"(\w*:\w*)"/,My=/<(?:\w:)?col\b[^>]*[\/]?>/g,Oy=/<(?:\w:)?autoFilter[^>]*([\/]|>([\s\S]*)<\/(?:\w:)?autoFilter)>/g,Iy=/<(?:\w:)?pageMargins[^>]*\/>/g,E0=/<(?:\w:)?sheetPr\b(?:[^>a-z][^>]*)?\/>/,Dy=/<(?:\w:)?sheetPr[^>]*(?:[\/]|>([\s\S]*)<\/(?:\w:)?sheetPr)>/,Ny=/<(?:\w:)?sheetViews[^>]*(?:[\/]|>([\s\S]*)<\/(?:\w:)?sheetViews)>/;function Py(t,r,e,n,i,s,o){if(!t)return t;n||(n={"!id":{}});var h=r.dense?[]:{},c={s:{r:2e6,c:2e6},e:{r:0,c:0}},a="",f="",l=t.match(Ay);l?(a=t.slice(0,l.index),f=t.slice(l.index+l[0].length)):a=f=t;var u=a.match(E0);u?xl(u[0],h,i,e):(u=a.match(Dy))&&Ly(u[0],u[1]||"",h,i,e);var p=(a.match(/<(?:\w*:)?dimension/)||{index:-1}).index;if(p>0){var m=a.slice(p,p+50).match(Ry);m&&ky(h,m[1])}var d=a.match(Ny);d&&d[1]&&Jy(d[1],i);var v=[];if(r.cellStyles){var x=a.match(My);x&&Vy(v,x)}l&&e_(l[1],h,r,c,s,o);var g=f.match(Oy);g&&(h["!autofilter"]=Ky(g[0]));var b=[],w=f.match(Cy);if(w)for(p=0;p!=w.length;++p)b[p]=Lt(w[p].slice(w[p].indexOf('"')+1));var y=f.match(Fy);y&&$y(h,y,n);var T=f.match(Iy);if(T&&(h["!margins"]=Wy(bt(T[0]))),!h["!ref"]&&c.e.c>=c.s.c&&c.e.r>=c.s.r&&(h["!ref"]=Rt(c)),r.sheetRows>0&&h["!ref"]){var C=Lt(h["!ref"]);r.sheetRows<=+C.e.r&&(C.e.r=r.sheetRows-1,C.e.r>c.e.r&&(C.e.r=c.e.r),C.e.rc.e.c&&(C.e.c=c.e.c),C.e.c0&&(h["!cols"]=v),b.length>0&&(h["!merges"]=b),h}function By(t){if(t.length===0)return"";for(var r='',e=0;e!=t.length;++e)r+='';return r+""}function xl(t,r,e,n){var i=bt(t);e.Sheets[n]||(e.Sheets[n]={}),i.codeName&&(e.Sheets[n].CodeName=Pt(Wt(i.codeName)))}function Ly(t,r,e,n,i){xl(t.slice(0,t.indexOf(">")),e,n,i)}function jy(t,r,e,n,i){var s=!1,o={},h=null;if(n.bookType!=="xlsx"&&r.vbaraw){var c=r.SheetNames[e];try{r.Workbook&&(c=r.Workbook.Sheets[e].CodeName||c)}catch{}s=!0,o.codeName=Ln($t(c))}if(t&&t["!outline"]){var a={summaryBelow:1,summaryRight:1};t["!outline"].above&&(a.summaryBelow=0),t["!outline"].left&&(a.summaryRight=0),h=(h||"")+Qe("outlinePr",null,a)}!s&&!h||(i[i.length]=Qe("sheetPr",h,o))}var Uy=["objects","scenarios","selectLockedCells","selectUnlockedCells"],Hy=["formatColumns","formatRows","formatCells","insertColumns","insertRows","insertHyperlinks","deleteColumns","deleteRows","sort","autoFilter","pivotTables"];function zy(t){var r={sheet:1};return Uy.forEach(function(e){t[e]!=null&&t[e]&&(r[e]="1")}),Hy.forEach(function(e){t[e]!=null&&!t[e]&&(r[e]="0")}),t.password&&(r.password=hl(t.password).toString(16).toUpperCase()),Qe("sheetProtection",null,r)}function $y(t,r,e){for(var n=Array.isArray(t),i=0;i!=r.length;++i){var s=bt(Wt(r[i]),!0);if(!s.ref)return;var o=((e||{})["!id"]||[])[s.id];o?(s.Target=o.Target,s.location&&(s.Target+="#"+Pt(s.location))):(s.Target="#"+Pt(s.location),o={Target:s.Target,TargetMode:"Internal"}),s.Rel=o,s.tooltip&&(s.Tooltip=s.tooltip,delete s.tooltip);for(var h=Lt(s.ref),c=h.s.r;c<=h.e.r;++c)for(var a=h.s.c;a<=h.e.c;++a){var f=yt({c:a,r:c});n?(t[c]||(t[c]=[]),t[c][a]||(t[c][a]={t:"z",v:void 0}),t[c][a].l=s):(t[f]||(t[f]={t:"z",v:void 0}),t[f].l=s)}}}function Wy(t){var r={};return["left","right","top","bottom","header","footer"].forEach(function(e){t[e]&&(r[e]=parseFloat(t[e]))}),r}function Xy(t){return Pi(t),Qe("pageMargins",null,t)}function Vy(t,r){for(var e=!1,n=0;n!=r.length;++n){var i=bt(r[n],!0);i.hidden&&(i.hidden=Yt(i.hidden));var s=parseInt(i.min,10)-1,o=parseInt(i.max,10)-1;for(i.outlineLevel&&(i.level=+i.outlineLevel||0),delete i.min,delete i.max,i.width=+i.width,!e&&i.width&&(e=!0,ul(i.width)),gi(i);s<=o;)t[s++]=Zt(i)}}function Gy(t,r){for(var e=[""],n,i=0;i!=r.length;++i)(n=r[i])&&(e[e.length]=Qe("col",null,_o(i,n)));return e[e.length]="",e.join("")}function Ky(t){var r={ref:(t.match(/ref="([^"]*)"/)||[])[1]};return r}function Yy(t,r,e,n){var i=typeof t.ref=="string"?t.ref:Rt(t.ref);e.Workbook||(e.Workbook={Sheets:[]}),e.Workbook.Names||(e.Workbook.Names=[]);var s=e.Workbook.Names,o=mn(i);o.s.r==o.e.r&&(o.e.r=mn(r["!ref"]).e.r,i=Rt(o));for(var h=0;ha-z][^>]*)?\/?>/;function Jy(t,r){r.Views||(r.Views=[{}]),(t.match(Zy)||[]).forEach(function(e,n){var i=bt(e);r.Views[n]||(r.Views[n]={}),+i.zoomScale&&(r.Views[n].zoom=+i.zoomScale),Yt(i.rightToLeft)&&(r.Views[n].RTL=!0)})}function Qy(t,r,e,n){var i={workbookViewId:"0"};return(((n||{}).Workbook||{}).Views||[])[0]&&(i.rightToLeft=n.Workbook.Views[0].RTL?"1":"0"),Qe("sheetViews",Qe("sheetView",null,i),{})}function qy(t,r,e,n){if(t.c&&e["!comments"].push([r,t.c]),t.v===void 0&&typeof t.f!="string"||t.t==="z"&&!t.f)return"";var i="",s=t.t,o=t.v;if(t.t!=="z")switch(t.t){case"b":i=t.v?"1":"0";break;case"n":i=""+t.v;break;case"e":i=ii[t.v];break;case"d":n&&n.cellDates?i=qt(t.v,-1).toISOString():(t=Zt(t),t.t="n",i=""+(t.v=Ar(qt(t.v)))),typeof t.z>"u"&&(t.z=xt[14]);break;default:i=t.v;break}var h=Cr("v",$t(i)),c={r},a=wi(n.cellXfs,t,n);switch(a!==0&&(c.s=a),t.t){case"n":break;case"d":c.t="d";break;case"b":c.t="b";break;case"e":c.t="e";break;case"z":break;default:if(t.v==null){delete t.t;break}if(t.v.length>32767)throw new Error("Text length must not exceed 32767 characters");if(n&&n.bookSST){h=Cr("v",""+vl(n.Strings,t.v,n.revStrings)),c.t="s";break}c.t="str";break}if(t.t!=s&&(t.t=s,t.v=o),typeof t.f=="string"&&t.f){var f=t.F&&t.F.slice(0,r.length)==r?{t:"array",ref:t.F}:null;h=Qe("f",$t(t.f),f)+(t.v!=null?h:"")}return t.l&&e["!links"].push([r,t.l]),t.D&&(c.cm=1),Qe("c",h,c)}var e_=function(){var t=/<(?:\w+:)?c[ \/>]/,r=/<\/(?:\w+:)?row>/,e=/r=["']([^"']*)["']/,n=/<(?:\w+:)?is>([\S\s]*?)<\/(?:\w+:)?is>/,i=/ref=["']([^"']*)["']/,s=Hs("v"),o=Hs("f");return function(c,a,f,l,u,p){for(var m=0,d="",v=[],x=[],g=0,b=0,w=0,y="",T,C,M=0,I=0,B,U,j=0,H=0,G=Array.isArray(p.CellXf),L,R=[],F=[],_=Array.isArray(a),k=[],N={},P=!1,D=!!f.sheetStubs,A=c.split(r),S=0,E=A.length;S!=E;++S){d=A[S].trim();var O=d.length;if(O!==0){var z=0;e:for(m=0;m":if(d[m-1]!="/"){++m;break e}if(f&&f.cellStyles){if(C=bt(d.slice(z,m),!0),M=C.r!=null?parseInt(C.r,10):M+1,I=-1,f.sheetRows&&f.sheetRows=m)break;if(C=bt(d.slice(z,m),!0),M=C.r!=null?parseInt(C.r,10):M+1,I=-1,!(f.sheetRows&&f.sheetRowsM-1&&(l.s.r=M-1),l.e.r":"")+d,x!=null&&x.length===2){for(g=0,y=x[1],b=0;b!=y.length&&!((w=y.charCodeAt(b)-64)<1||w>26);++b)g=26*g+w;--g,I=g}else++I;for(b=0;b!=d.length&&d.charCodeAt(b)!==62;++b);if(++b,C=bt(d.slice(0,b),!0),C.r||(C.r=yt({r:M-1,c:I})),y=d.slice(b),T={t:""},(x=y.match(s))!=null&&x[1]!==""&&(T.v=Pt(x[1])),f.cellFormula){if((x=y.match(o))!=null&&x[1]!==""){if(T.f=Pt(Wt(x[1])).replace(/\r\n/g,` +`),f.xlfn||(T.f=Jc(T.f)),x[0].indexOf('t="array"')>-1)T.F=(y.match(i)||[])[1],T.F.indexOf(":")>-1&&R.push([Lt(T.F),T.F]);else if(x[0].indexOf('t="shared"')>-1){U=bt(x[0]);var re=Pt(Wt(x[1]));f.xlfn||(re=Jc(re)),F[parseInt(U.si,10)]=[U,re,C.r]}}else(x=y.match(/]*\/>/))&&(U=bt(x[0]),F[U.si]&&(T.f=Zb(F[U.si][1],F[U.si][2],C.r)));var se=vr(C.r);for(b=0;b=R[b][0].s.r&&se.r<=R[b][0].e.r&&se.c>=R[b][0].s.c&&se.c<=R[b][0].e.c&&(T.F=R[b][1])}if(C.t==null&&T.v===void 0)if(T.f||T.F)T.v=0,T.t="n";else if(D)T.t="z";else continue;else T.t=C.t||"n";switch(l.s.c>I&&(l.s.c=I),l.e.c"u"){if(!D)continue;T.t="z"}else B=Ds[parseInt(T.v,10)],T.v=B.t,T.r=B.r,f.cellHTML&&(T.h=B.h);break;case"str":T.t="s",T.v=T.v!=null?Wt(T.v):"",f.cellHTML&&(T.h=Qf(T.v));break;case"inlineStr":x=y.match(n),T.t="s",x!=null&&(B=cl(x[1]))?(T.v=B.t,f.cellHTML&&(T.h=B.h)):T.v="";break;case"b":T.v=Yt(T.v);break;case"d":f.cellDates?T.v=qt(T.v,1):(T.v=Ar(qt(T.v,1)),T.t="n");break;case"e":(!f||f.cellText!==!1)&&(T.w=T.v),T.v=Su[T.v];break}if(j=H=0,L=null,G&&C.s!==void 0&&(L=p.CellXf[C.s],L!=null&&(L.numFmtId!=null&&(j=L.numFmtId),f.cellStyles&&L.fillId!=null&&(H=L.fillId))),_0(T,j,H,f,u,p),f.cellDates&&G&&T.t=="n"&&gs(xt[j])&&(T.t="d",T.v=xo(T.v)),C.cm&&f.xlmeta){var Ce=(f.xlmeta.Cell||[])[+C.cm-1];Ce&&Ce.type=="XLDAPR"&&(T.D=!0)}if(_){var Y=vr(C.r);a[Y.r]||(a[Y.r]=[]),a[Y.r][Y.c]=T}else a[C.r]=T}}}}k.length>0&&(a["!rows"]=k)}}();function t_(t,r,e,n){var i=[],s=[],o=Lt(t["!ref"]),h="",c,a="",f=[],l=0,u=0,p=t["!rows"],m=Array.isArray(t),d={r:a},v,x=-1;for(u=o.s.c;u<=o.e.c;++u)f[u]=dr(u);for(l=o.s.r;l<=o.e.r;++l){for(s=[],a=Er(l),u=o.s.c;u<=o.e.c;++u){c=f[u]+a;var g=m?(t[l]||[])[u]:t[c];g!==void 0&&(h=qy(g,c,t,r))!=null&&s.push(h)}(s.length>0||p&&p[l])&&(d={r:a},p&&p[l]&&(v=p[l],v.hidden&&(d.hidden=1),x=-1,v.hpx?x=Ks(v.hpx):v.hpt&&(x=v.hpt),x>-1&&(d.ht=x,d.customHeight=1),v.level&&(d.outlineLevel=v.level)),i[i.length]=Qe("row",s.join(""),d))}if(p)for(;l-1&&(d.ht=x,d.customHeight=1),v.level&&(d.outlineLevel=v.level),i[i.length]=Qe("row","",d));return i.join("")}function T0(t,r,e,n){var i=[fr,Qe("worksheet",null,{xmlns:Wi[0],"xmlns:r":gr.r})],s=e.SheetNames[t],o=0,h="",c=e.Sheets[s];c==null&&(c={});var a=c["!ref"]||"A1",f=Lt(a);if(f.e.c>16383||f.e.r>1048575){if(r.WTF)throw new Error("Range "+a+" exceeds format limit A1:XFD1048576");f.e.c=Math.min(f.e.c,16383),f.e.r=Math.min(f.e.c,1048575),a=Rt(f)}n||(n={}),c["!comments"]=[];var l=[];jy(c,e,t,r,i),i[i.length]=Qe("dimension",null,{ref:a}),i[i.length]=Qy(c,r,t,e),r.sheetFormat&&(i[i.length]=Qe("sheetFormatPr",null,{defaultRowHeight:r.sheetFormat.defaultRowHeight||"16",baseColWidth:r.sheetFormat.baseColWidth||"10",outlineLevelRow:r.sheetFormat.outlineLevelRow||"7"})),c["!cols"]!=null&&c["!cols"].length>0&&(i[i.length]=Gy(c,c["!cols"])),i[o=i.length]="",c["!links"]=[],c["!ref"]!=null&&(h=t_(c,r),h.length>0&&(i[i.length]=h)),i.length>o+1&&(i[i.length]="",i[o]=i[o].replace("/>",">")),c["!protect"]&&(i[i.length]=zy(c["!protect"])),c["!autofilter"]!=null&&(i[i.length]=Yy(c["!autofilter"],c,e,t)),c["!merges"]!=null&&c["!merges"].length>0&&(i[i.length]=By(c["!merges"]));var u=-1,p,m=-1;return c["!links"].length>0&&(i[i.length]="",c["!links"].forEach(function(d){d[1].Target&&(p={ref:d[0]},d[1].Target.charAt(0)!="#"&&(m=zt(n,-1,$t(d[1].Target).replace(/#.*$/,""),Ft.HLINK),p["r:id"]="rId"+m),(u=d[1].Target.indexOf("#"))>-1&&(p.location=$t(d[1].Target.slice(u+1))),d[1].Tooltip&&(p.tooltip=$t(d[1].Tooltip)),i[i.length]=Qe("hyperlink",null,p))}),i[i.length]=""),delete c["!links"],c["!margins"]!=null&&(i[i.length]=Xy(c["!margins"])),(!r||r.ignoreEC||r.ignoreEC==null)&&(i[i.length]=Cr("ignoredErrors",Qe("ignoredError",null,{numberStoredAsText:1,sqref:a}))),l.length>0&&(m=zt(n,-1,"../drawings/drawing"+(t+1)+".xml",Ft.DRAW),i[i.length]=Qe("drawing",null,{"r:id":"rId"+m}),c["!drawing"]=l),c["!comments"].length>0&&(m=zt(n,-1,"../drawings/vmlDrawing"+(t+1)+".vml",Ft.VML),i[i.length]=Qe("legacyDrawing",null,{"r:id":"rId"+m}),c["!legacy"]=m),i.length>1&&(i[i.length]="",i[1]=i[1].replace("/>",">")),i.join("")}function r_(t,r){var e={},n=t.l+r;e.r=t.read_shift(4),t.l+=4;var i=t.read_shift(2);t.l+=1;var s=t.read_shift(1);return t.l=n,s&7&&(e.level=s&7),s&16&&(e.hidden=!0),s&32&&(e.hpt=i/20),e}function n_(t,r,e){var n=We(145),i=(e["!rows"]||[])[t]||{};n.write_shift(4,t),n.write_shift(4,0);var s=320;i.hpx?s=Ks(i.hpx)*20:i.hpt&&(s=i.hpt*20),n.write_shift(2,s),n.write_shift(1,0);var o=0;i.level&&(o|=i.level),i.hidden&&(o|=16),(i.hpx||i.hpt)&&(o|=32),n.write_shift(1,o),n.write_shift(1,0);var h=0,c=n.l;n.l+=4;for(var a={r:t,c:0},f=0;f<16;++f)if(!(r.s.c>f+1<<10||r.e.cn.l?n.slice(0,n.l):n}function i_(t,r,e,n){var i=n_(n,e,r);(i.length>17||(r["!rows"]||[])[n])&&Ye(t,0,i)}var s_=Yi,a_=xs;function o_(){}function f_(t,r){var e={},n=t[t.l];return++t.l,e.above=!(n&64),e.left=!(n&128),t.l+=18,e.name=hg(t),e}function l_(t,r,e){e==null&&(e=We(84+4*t.length));var n=192;r&&(r.above&&(n&=-65),r.left&&(n&=-129)),e.write_shift(1,n);for(var i=1;i<3;++i)e.write_shift(1,0);return ao({auto:1},e),e.write_shift(-4,-1),e.write_shift(-4,-1),wu(t,e),e.slice(0,e.l)}function c_(t){var r=gn(t);return[r]}function h_(t,r,e){return e==null&&(e=We(8)),Vi(r,e)}function u_(t){var r=Gi(t);return[r]}function d_(t,r,e){return e==null&&(e=We(4)),Ki(r,e)}function p_(t){var r=gn(t),e=t.read_shift(1);return[r,e,"b"]}function m_(t,r,e){return e==null&&(e=We(9)),Vi(r,e),e.write_shift(1,t.v?1:0),e}function g_(t){var r=Gi(t),e=t.read_shift(1);return[r,e,"b"]}function v_(t,r,e){return e==null&&(e=We(5)),Ki(r,e),e.write_shift(1,t.v?1:0),e}function x_(t){var r=gn(t),e=t.read_shift(1);return[r,e,"e"]}function b_(t,r,e){return e==null&&(e=We(9)),Vi(r,e),e.write_shift(1,t.v),e}function w_(t){var r=Gi(t),e=t.read_shift(1);return[r,e,"e"]}function y_(t,r,e){return e==null&&(e=We(8)),Ki(r,e),e.write_shift(1,t.v),e.write_shift(2,0),e.write_shift(1,0),e}function __(t){var r=gn(t),e=t.read_shift(4);return[r,e,"s"]}function E_(t,r,e){return e==null&&(e=We(12)),Vi(r,e),e.write_shift(4,r.v),e}function T_(t){var r=Gi(t),e=t.read_shift(4);return[r,e,"s"]}function S_(t,r,e){return e==null&&(e=We(8)),Ki(r,e),e.write_shift(4,r.v),e}function k_(t){var r=gn(t),e=Nr(t);return[r,e,"n"]}function C_(t,r,e){return e==null&&(e=We(16)),Vi(r,e),Ui(t.v,e),e}function S0(t){var r=Gi(t),e=Nr(t);return[r,e,"n"]}function A_(t,r,e){return e==null&&(e=We(12)),Ki(r,e),Ui(t.v,e),e}function F_(t){var r=gn(t),e=sl(t);return[r,e,"n"]}function R_(t,r,e){return e==null&&(e=We(12)),Vi(r,e),yu(t.v,e),e}function M_(t){var r=Gi(t),e=sl(t);return[r,e,"n"]}function O_(t,r,e){return e==null&&(e=We(8)),Ki(r,e),yu(t.v,e),e}function I_(t){var r=gn(t),e=rl(t);return[r,e,"is"]}function D_(t){var r=gn(t),e=Pr(t);return[r,e,"str"]}function N_(t,r,e){return e==null&&(e=We(12+4*t.v.length)),Vi(r,e),_r(t.v,e),e.length>e.l?e.slice(0,e.l):e}function P_(t){var r=Gi(t),e=Pr(t);return[r,e,"str"]}function B_(t,r,e){return e==null&&(e=We(8+4*t.v.length)),Ki(r,e),_r(t.v,e),e.length>e.l?e.slice(0,e.l):e}function L_(t,r,e){var n=t.l+r,i=gn(t);i.r=e["!row"];var s=t.read_shift(1),o=[i,s,"b"];if(e.cellFormula){t.l+=2;var h=yo(t,n-t.l,e);o[3]=Ir(h,null,i,e.supbooks,e)}else t.l=n;return o}function j_(t,r,e){var n=t.l+r,i=gn(t);i.r=e["!row"];var s=t.read_shift(1),o=[i,s,"e"];if(e.cellFormula){t.l+=2;var h=yo(t,n-t.l,e);o[3]=Ir(h,null,i,e.supbooks,e)}else t.l=n;return o}function U_(t,r,e){var n=t.l+r,i=gn(t);i.r=e["!row"];var s=Nr(t),o=[i,s,"n"];if(e.cellFormula){t.l+=2;var h=yo(t,n-t.l,e);o[3]=Ir(h,null,i,e.supbooks,e)}else t.l=n;return o}function H_(t,r,e){var n=t.l+r,i=gn(t);i.r=e["!row"];var s=Pr(t),o=[i,s,"str"];if(e.cellFormula){t.l+=2;var h=yo(t,n-t.l,e);o[3]=Ir(h,null,i,e.supbooks,e)}else t.l=n;return o}var z_=Yi,$_=xs;function W_(t,r){return r==null&&(r=We(4)),r.write_shift(4,t),r}function X_(t,r){var e=t.l+r,n=Yi(t),i=nl(t),s=Pr(t),o=Pr(t),h=Pr(t);t.l=e;var c={rfx:n,relId:i,loc:s,display:h};return o&&(c.Tooltip=o),c}function V_(t,r){var e=We(50+4*(t[1].Target.length+(t[1].Tooltip||"").length));xs({s:vr(t[0]),e:vr(t[0])},e),il("rId"+r,e);var n=t[1].Target.indexOf("#"),i=n==-1?"":t[1].Target.slice(n+1);return _r(i||"",e),_r(t[1].Tooltip||"",e),_r("",e),e.slice(0,e.l)}function G_(){}function K_(t,r,e){var n=t.l+r,i=_u(t),s=t.read_shift(1),o=[i];if(o[2]=s,e.cellFormula){var h=xy(t,n-t.l,e);o[1]=h}else t.l=n;return o}function Y_(t,r,e){var n=t.l+r,i=Yi(t),s=[i];if(e.cellFormula){var o=wy(t,n-t.l,e);s[1]=o,t.l=n}else t.l=n;return s}function Z_(t,r,e){e==null&&(e=We(18));var n=_o(t,r);e.write_shift(-4,t),e.write_shift(-4,t),e.write_shift(4,(n.width||10)*256),e.write_shift(4,0);var i=0;return r.hidden&&(i|=1),typeof n.width=="number"&&(i|=2),r.level&&(i|=r.level<<8),e.write_shift(2,i),e}var k0=["left","right","top","bottom","header","footer"];function J_(t){var r={};return k0.forEach(function(e){r[e]=Nr(t)}),r}function Q_(t,r){return r==null&&(r=We(6*8)),Pi(t),k0.forEach(function(e){Ui(t[e],r)}),r}function q_(t){var r=t.read_shift(2);return t.l+=28,{RTL:r&32}}function e4(t,r,e){e==null&&(e=We(30));var n=924;return(((r||{}).Views||[])[0]||{}).RTL&&(n|=32),e.write_shift(2,n),e.write_shift(4,0),e.write_shift(4,0),e.write_shift(4,0),e.write_shift(1,0),e.write_shift(1,0),e.write_shift(2,0),e.write_shift(2,100),e.write_shift(2,0),e.write_shift(2,0),e.write_shift(2,0),e.write_shift(4,0),e}function t4(t){var r=We(24);return r.write_shift(4,4),r.write_shift(4,1),xs(t,r),r}function r4(t,r){return r==null&&(r=We(16*4+2)),r.write_shift(2,t.password?hl(t.password):0),r.write_shift(4,1),[["objects",!1],["scenarios",!1],["formatCells",!0],["formatColumns",!0],["formatRows",!0],["insertColumns",!0],["insertRows",!0],["insertHyperlinks",!0],["deleteColumns",!0],["deleteRows",!0],["selectLockedCells",!1],["sort",!0],["autoFilter",!0],["pivotTables",!0],["selectUnlockedCells",!1]].forEach(function(e){e[1]?r.write_shift(4,t[e[0]]!=null&&!t[e[0]]?1:0):r.write_shift(4,t[e[0]]!=null&&t[e[0]]?0:1)}),r}function n4(){}function i4(){}function s4(t,r,e,n,i,s,o){if(!t)return t;var h=r||{};n||(n={"!id":{}});var c=h.dense?[]:{},a,f={s:{r:2e6,c:2e6},e:{r:0,c:0}},l=!1,u=!1,p,m,d,v,x,g,b,w,y,T=[];h.biff=12,h["!row"]=0;var C=0,M=!1,I=[],B={},U=h.supbooks||i.supbooks||[[]];if(U.sharedf=B,U.arrayf=I,U.SheetNames=i.SheetNames||i.Sheets.map(function(_){return _.name}),!h.supbooks&&(h.supbooks=U,i.Names))for(var j=0;j=D[0].s.r&&p.r<=D[0].e.r&&x>=D[0].s.c&&x<=D[0].e.c&&(m.F=Rt(D[0]),M=!0)}!M&&k.length>3&&(m.f=k[3])}if(f.s.r>p.r&&(f.s.r=p.r),f.s.c>x&&(f.s.c=x),f.e.rp.r&&(f.s.r=p.r),f.s.c>x&&(f.s.c=x),f.e.r=k.s;)H[k.e--]={width:k.w/256,hidden:!!(k.flags&1),level:k.level},L||(L=!0,ul(k.w/256)),gi(H[k.e+1]);break;case 161:c["!autofilter"]={ref:Rt(k)};break;case 476:c["!margins"]=k;break;case 147:i.Sheets[e]||(i.Sheets[e]={}),k.name&&(i.Sheets[e].CodeName=k.name),(k.above||k.left)&&(c["!outline"]={above:k.above,left:k.left});break;case 137:i.Views||(i.Views=[{}]),i.Views[0]||(i.Views[0]={}),k.RTL&&(i.Views[0].RTL=!0);break;case 485:break;case 64:case 1053:break;case 151:break;case 152:case 175:case 644:case 625:case 562:case 396:case 1112:case 1146:case 471:case 1050:case 649:case 1105:case 589:case 607:case 564:case 1055:case 168:case 174:case 1180:case 499:case 507:case 550:case 171:case 167:case 1177:case 169:case 1181:case 551:case 552:case 661:case 639:case 478:case 537:case 477:case 536:case 1103:case 680:case 1104:case 1024:case 663:case 535:case 678:case 504:case 1043:case 428:case 170:case 3072:case 50:case 2070:case 1045:break;case 35:l=!0;break;case 36:l=!1;break;case 37:l=!0;break;case 38:l=!1;break;default:if(!N.T){if(!l||h.WTF)throw new Error("Unexpected record 0x"+P.toString(16))}}},h),delete h.supbooks,delete h["!row"],!c["!ref"]&&(f.s.r<2e6||a&&(a.e.r>0||a.e.c>0||a.s.r>0||a.s.c>0))&&(c["!ref"]=Rt(a||f)),h.sheetRows&&c["!ref"]){var F=Lt(c["!ref"]);h.sheetRows<=+F.e.r&&(F.e.r=h.sheetRows-1,F.e.r>f.e.r&&(F.e.r=f.e.r),F.e.rf.e.c&&(F.e.c=f.e.c),F.e.c0&&(c["!merges"]=T),H.length>0&&(c["!cols"]=H),G.length>0&&(c["!rows"]=G),c}function a4(t,r,e,n,i,s,o){if(r.v===void 0)return!1;var h="";switch(r.t){case"b":h=r.v?"1":"0";break;case"d":r=Zt(r),r.z=r.z||xt[14],r.v=Ar(qt(r.v)),r.t="n";break;case"n":case"e":h=""+r.v;break;default:h=r.v;break}var c={r:e,c:n};switch(c.s=wi(i.cellXfs,r,i),r.l&&s["!links"].push([yt(c),r.l]),r.c&&s["!comments"].push([yt(c),r.c]),r.t){case"s":case"str":return i.bookSST?(h=vl(i.Strings,r.v,i.revStrings),c.t="s",c.v=h,o?Ye(t,18,S_(r,c)):Ye(t,7,E_(r,c))):(c.t="str",o?Ye(t,17,B_(r,c)):Ye(t,6,N_(r,c))),!0;case"n":return r.v==(r.v|0)&&r.v>-1e3&&r.v<1e3?o?Ye(t,13,O_(r,c)):Ye(t,2,R_(r,c)):o?Ye(t,16,A_(r,c)):Ye(t,5,C_(r,c)),!0;case"b":return c.t="b",o?Ye(t,15,v_(r,c)):Ye(t,4,m_(r,c)),!0;case"e":return c.t="e",o?Ye(t,14,y_(r,c)):Ye(t,3,b_(r,c)),!0}return o?Ye(t,12,d_(r,c)):Ye(t,1,h_(r,c)),!0}function o4(t,r,e,n){var i=Lt(r["!ref"]||"A1"),s,o="",h=[];Ye(t,145);var c=Array.isArray(r),a=i.e.r;r["!rows"]&&(a=Math.max(i.e.r,r["!rows"].length-1));for(var f=i.s.r;f<=a;++f){o=Er(f),i_(t,r,i,f);var l=!1;if(f<=i.e.r)for(var u=i.s.c;u<=i.e.c;++u){f===i.s.r&&(h[u]=dr(u)),s=h[u]+o;var p=c?(r[f]||[])[u]:r[s];if(!p){l=!1;continue}l=a4(t,p,f,u,n,r,l)}}Ye(t,146)}function f4(t,r){!r||!r["!merges"]||(Ye(t,177,W_(r["!merges"].length)),r["!merges"].forEach(function(e){Ye(t,176,$_(e))}),Ye(t,178))}function l4(t,r){!r||!r["!cols"]||(Ye(t,390),r["!cols"].forEach(function(e,n){e&&Ye(t,60,Z_(n,e))}),Ye(t,391))}function c4(t,r){!r||!r["!ref"]||(Ye(t,648),Ye(t,649,t4(Lt(r["!ref"]))),Ye(t,650))}function h4(t,r,e){r["!links"].forEach(function(n){if(n[1].Target){var i=zt(e,-1,n[1].Target.replace(/#.*$/,""),Ft.HLINK);Ye(t,494,V_(n,i))}}),delete r["!links"]}function u4(t,r,e,n){if(r["!comments"].length>0){var i=zt(n,-1,"../drawings/vmlDrawing"+(e+1)+".vml",Ft.VML);Ye(t,551,il("rId"+i)),r["!legacy"]=i}}function d4(t,r,e,n){if(r["!autofilter"]){var i=r["!autofilter"],s=typeof i.ref=="string"?i.ref:Rt(i.ref);e.Workbook||(e.Workbook={Sheets:[]}),e.Workbook.Names||(e.Workbook.Names=[]);var o=e.Workbook.Names,h=mn(s);h.s.r==h.e.r&&(h.e.r=mn(r["!ref"]).e.r,s=Rt(h));for(var c=0;c16383||c.e.r>1048575){if(r.WTF)throw new Error("Range "+(o["!ref"]||"A1")+" exceeds format limit A1:XFD1048576");c.e.c=Math.min(c.e.c,16383),c.e.r=Math.min(c.e.c,1048575)}return o["!links"]=[],o["!comments"]=[],Ye(i,129),(e.vbaraw||o["!outline"])&&Ye(i,147,l_(h,o["!outline"])),Ye(i,148,a_(c)),p4(i,o,e.Workbook),l4(i,o),o4(i,o,t,r),m4(i,o),d4(i,o,e,t),f4(i,o),h4(i,o,n),o["!margins"]&&Ye(i,476,Q_(o["!margins"])),(!r||r.ignoreEC||r.ignoreEC==null)&&c4(i,o),u4(i,o,t,n),Ye(i,130),i.end()}function v4(t){var r=[],e=t.match(/^/),n;(t.match(/(.*?)<\/c:pt>/mg)||[]).forEach(function(s){var o=s.match(/(.*)<\/c:v><\/c:pt>/);o&&(r[+o[1]]=e?+o[2]:o[2])});var i=Pt((t.match(/([\s\S]*?)<\/c:formatCode>/)||["","General"])[1]);return(t.match(/(.*?)<\/c:f>/mg)||[]).forEach(function(s){n=s.replace(/<.*?>/g,"")}),[r,i,n]}function x4(t,r,e,n,i,s){var o=s||{"!type":"chart"};if(!t)return s;var h=0,c=0,a="A",f={s:{r:2e6,c:2e6},e:{r:0,c:0}};return(t.match(/[\s\S]*?<\/c:numCache>/gm)||[]).forEach(function(l){var u=v4(l);f.s.r=f.s.c=0,f.e.c=h,a=dr(h),u[0].forEach(function(p,m){o[a+Er(m)]={t:"n",v:p,z:u[1]},c=m}),f.e.r0&&(o["!ref"]=Rt(f)),o}function b4(t,r,e,n,i){if(!t)return t;n||(n={"!id":{}});var s={"!type":"chart","!drawel":null,"!rel":""},o,h=t.match(E0);return h&&xl(h[0],s,i,e),(o=t.match(/drawing r:id="(.*?)"/))&&(s["!rel"]=o[1]),n["!id"][s["!rel"]]&&(s["!drawel"]=n["!id"][s["!rel"]]),s}function w4(t,r){t.l+=10;var e=Pr(t);return{name:e}}function y4(t,r,e,n,i){if(!t)return t;n||(n={"!id":{}});var s={"!type":"chart","!drawel":null,"!rel":""},o=!1;return ni(t,function(c,a,f){switch(f){case 550:s["!rel"]=c;break;case 651:i.Sheets[e]||(i.Sheets[e]={}),c.name&&(i.Sheets[e].CodeName=c.name);break;case 562:case 652:case 669:case 679:case 551:case 552:case 476:case 3072:break;case 35:o=!0;break;case 36:o=!1;break;case 37:break;case 38:break;default:if(!(a.T>0)){if(!(a.T<0)){if(!o||r.WTF)throw new Error("Unexpected record 0x"+f.toString(16))}}}},r),n["!id"][s["!rel"]]&&(s["!drawel"]=n["!id"][s["!rel"]]),s}var bl=[["allowRefreshQuery",!1,"bool"],["autoCompressPictures",!0,"bool"],["backupFile",!1,"bool"],["checkCompatibility",!1,"bool"],["CodeName",""],["date1904",!1,"bool"],["defaultThemeVersion",0,"int"],["filterPrivacy",!1,"bool"],["hidePivotFieldList",!1,"bool"],["promptedSolutions",!1,"bool"],["publishItems",!1,"bool"],["refreshAllConnections",!1,"bool"],["saveExternalLinkValues",!0,"bool"],["showBorderUnselectedTables",!0,"bool"],["showInkAnnotation",!0,"bool"],["showObjects","all"],["showPivotChartFilter",!1,"bool"],["updateLinks","userSet"]],_4=[["activeTab",0,"int"],["autoFilterDateGrouping",!0,"bool"],["firstSheet",0,"int"],["minimized",!1,"bool"],["showHorizontalScroll",!0,"bool"],["showSheetTabs",!0,"bool"],["showVerticalScroll",!0,"bool"],["tabRatio",600,"int"],["visibility","visible"]],E4=[],T4=[["calcCompleted","true"],["calcMode","auto"],["calcOnSave","true"],["concurrentCalc","true"],["fullCalcOnLoad","false"],["fullPrecision","true"],["iterate","false"],["iterateCount","100"],["iterateDelta","0.001"],["refMode","A1"]];function rh(t,r){for(var e=0;e!=t.length;++e)for(var n=t[e],i=0;i!=r.length;++i){var s=r[i];if(n[s[0]]==null)n[s[0]]=s[1];else switch(s[2]){case"bool":typeof n[s[0]]=="string"&&(n[s[0]]=Yt(n[s[0]]));break;case"int":typeof n[s[0]]=="string"&&(n[s[0]]=parseInt(n[s[0]],10));break}}}function nh(t,r){for(var e=0;e!=r.length;++e){var n=r[e];if(t[n[0]]==null)t[n[0]]=n[1];else switch(n[2]){case"bool":typeof t[n[0]]=="string"&&(t[n[0]]=Yt(t[n[0]]));break;case"int":typeof t[n[0]]=="string"&&(t[n[0]]=parseInt(t[n[0]],10));break}}}function C0(t){nh(t.WBProps,bl),nh(t.CalcPr,T4),rh(t.WBView,_4),rh(t.Sheets,E4),us.date1904=Yt(t.WBProps.date1904)}function S4(t){return!t.Workbook||!t.Workbook.WBProps?"false":Yt(t.Workbook.WBProps.date1904)?"true":"false"}var k4="][*?/\\".split("");function A0(t,r){if(t.length>31){if(r)return!1;throw new Error("Sheet names cannot exceed 31 chars")}var e=!0;return k4.forEach(function(n){if(t.indexOf(n)!=-1){if(!r)throw new Error("Sheet name cannot contain : \\ / ? * [ ]");e=!1}}),e}function C4(t,r,e){t.forEach(function(n,i){A0(n);for(var s=0;s22)throw new Error("Bad Code Name: Worksheet"+o)}})}function A4(t){if(!t||!t.SheetNames||!t.Sheets)throw new Error("Invalid Workbook");if(!t.SheetNames.length)throw new Error("Workbook is empty");var r=t.Workbook&&t.Workbook.Sheets||[];C4(t.SheetNames,r,!!t.vbaraw);for(var e=0;e":break;case"":case"":break;case"":break;case"":bl.forEach(function(l){if(f[l[0]]!=null)switch(l[2]){case"bool":e.WBProps[l[0]]=Yt(f[l[0]]);break;case"int":e.WBProps[l[0]]=parseInt(f[l[0]],10);break;default:e.WBProps[l[0]]=f[l[0]]}}),f.codeName&&(e.WBProps.CodeName=Wt(f.codeName));break;case"":break;case"":break;case"":case"":break;case"":delete f[0],e.WBView.push(f);break;case"":break;case"":case"":break;case"":break;case"":break;case"":case"":break;case"":break;case"":case"":n=!1;break;case"":s.Ref=Pt(Wt(t.slice(o,a))),e.Names.push(s);break;case"":break;case"":delete f[0],e.CalcPr=f;break;case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":break;case"":break;case"":break;case"":case"":break;case"":case"":case"":break;case"":n=!1;break;case"":n=!0;break;case"":n=!1;break;case"0,n={codeName:"ThisWorkbook"};t.Workbook&&t.Workbook.WBProps&&(bl.forEach(function(h){t.Workbook.WBProps[h[0]]!=null&&t.Workbook.WBProps[h[0]]!=h[1]&&(n[h[0]]=t.Workbook.WBProps[h[0]])}),t.Workbook.WBProps.CodeName&&(n.codeName=t.Workbook.WBProps.CodeName,delete n.CodeName)),r[r.length]=Qe("workbookPr",null,n);var i=t.Workbook&&t.Workbook.Sheets||[],s=0;if(i&&i[0]&&i[0].Hidden){for(r[r.length]="",s=0;s!=t.SheetNames.length&&!(!i[s]||!i[s].Hidden);++s);s==t.SheetNames.length&&(s=0),r[r.length]='',r[r.length]=""}for(r[r.length]="",s=0;s!=t.SheetNames.length;++s){var o={name:$t(t.SheetNames[s].slice(0,31))};if(o.sheetId=""+(s+1),o["r:id"]="rId"+(s+1),i[s])switch(i[s].Hidden){case 1:o.state="hidden";break;case 2:o.state="veryHidden";break}r[r.length]=Qe("sheet",null,o)}return r[r.length]="",e&&(r[r.length]="",t.Workbook&&t.Workbook.Names&&t.Workbook.Names.forEach(function(h){var c={name:h.Name};h.Comment&&(c.comment=h.Comment),h.Sheet!=null&&(c.localSheetId=""+h.Sheet),h.Hidden&&(c.hidden="1"),h.Ref&&(r[r.length]=Qe("definedName",$t(h.Ref),c))}),r[r.length]=""),r.length>2&&(r[r.length]="",r[1]=r[1].replace("/>",">")),r.join("")}function M4(t,r){var e={};return e.Hidden=t.read_shift(4),e.iTabID=t.read_shift(4),e.strRelID=wf(t),e.name=Pr(t),e}function O4(t,r){return r||(r=We(127)),r.write_shift(4,t.Hidden),r.write_shift(4,t.iTabID),il(t.strRelID,r),_r(t.name.slice(0,31),r),r.length>r.l?r.slice(0,r.l):r}function I4(t,r){var e={},n=t.read_shift(4);e.defaultThemeVersion=t.read_shift(4);var i=r>8?Pr(t):"";return i.length>0&&(e.CodeName=i),e.autoCompressPictures=!!(n&65536),e.backupFile=!!(n&64),e.checkCompatibility=!!(n&4096),e.date1904=!!(n&1),e.filterPrivacy=!!(n&8),e.hidePivotFieldList=!!(n&1024),e.promptedSolutions=!!(n&16),e.publishItems=!!(n&2048),e.refreshAllConnections=!!(n&262144),e.saveExternalLinkValues=!!(n&128),e.showBorderUnselectedTables=!!(n&4),e.showInkAnnotation=!!(n&32),e.showObjects=["all","placeholders","none"][n>>13&3],e.showPivotChartFilter=!!(n&32768),e.updateLinks=["userSet","never","always"][n>>8&3],e}function D4(t,r){r||(r=We(72));var e=0;return t&&t.filterPrivacy&&(e|=8),r.write_shift(4,e),r.write_shift(4,0),wu(t&&t.CodeName||"ThisWorkbook",r),r.slice(0,r.l)}function N4(t,r){var e={};return t.read_shift(4),e.ArchID=t.read_shift(4),t.l+=r-8,e}function P4(t,r,e){var n=t.l+r;t.l+=4,t.l+=1;var i=t.read_shift(4),s=ug(t),o=by(t,0,e),h=nl(t);t.l=n;var c={Name:s,Ptg:o};return i<268435455&&(c.Sheet=i),h&&(c.Comment=h),c}function B4(t,r){var e={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},xmlns:""},n=[],i=!1;r||(r={}),r.biff=12;var s=[],o=[[]];return o.SheetNames=[],o.XTI=[],Ys[16]={n:"BrtFRTArchID$",f:N4},ni(t,function(c,a,f){switch(f){case 156:o.SheetNames.push(c.name),e.Sheets.push(c);break;case 153:e.WBProps=c;break;case 39:c.Sheet!=null&&(r.SID=c.Sheet),c.Ref=Ir(c.Ptg,null,null,o,r),delete r.SID,delete c.Ptg,s.push(c);break;case 1036:break;case 357:case 358:case 355:case 667:o[0].length?o.push([f,c]):o[0]=[f,c],o[o.length-1].XTI=[];break;case 362:o.length===0&&(o[0]=[],o[0].XTI=[]),o[o.length-1].XTI=o[o.length-1].XTI.concat(c),o.XTI=o.XTI.concat(c);break;case 361:break;case 2071:case 158:case 143:case 664:case 353:break;case 3072:case 3073:case 534:case 677:case 157:case 610:case 2050:case 155:case 548:case 676:case 128:case 665:case 2128:case 2125:case 549:case 2053:case 596:case 2076:case 2075:case 2082:case 397:case 154:case 1117:case 553:case 2091:break;case 35:n.push(f),i=!0;break;case 36:n.pop(),i=!1;break;case 37:n.push(f),i=!0;break;case 38:n.pop(),i=!1;break;case 16:break;default:if(!a.T){if(!i||r.WTF&&n[n.length-1]!=37&&n[n.length-1]!=35)throw new Error("Unexpected record 0x"+f.toString(16))}}},r),C0(e),e.Names=s,e.supbooks=o,e}function L4(t,r){Ye(t,143);for(var e=0;e!=r.SheetNames.length;++e){var n=r.Workbook&&r.Workbook.Sheets&&r.Workbook.Sheets[e]&&r.Workbook.Sheets[e].Hidden||0,i={Hidden:n,iTabID:e+1,strRelID:"rId"+(e+1),name:r.SheetNames[e]};Ye(t,156,O4(i))}Ye(t,144)}function j4(t,r){r||(r=We(127));for(var e=0;e!=4;++e)r.write_shift(4,0);return _r("SheetJS",r),_r(qa.version,r),_r(qa.version,r),_r("7262",r),r.length>r.l?r.slice(0,r.l):r}function U4(t,r){r||(r=We(29)),r.write_shift(-4,0),r.write_shift(-4,460),r.write_shift(4,28800),r.write_shift(4,17600),r.write_shift(4,500),r.write_shift(4,t),r.write_shift(4,t);var e=120;return r.write_shift(1,e),r.length>r.l?r.slice(0,r.l):r}function H4(t,r){if(!(!r.Workbook||!r.Workbook.Sheets)){for(var e=r.Workbook.Sheets,n=0,i=-1,s=-1;ni||(Ye(t,135),Ye(t,158,U4(i)),Ye(t,136))}}function z4(t,r){var e=Jr();return Ye(e,131),Ye(e,128,j4()),Ye(e,153,D4(t.Workbook&&t.Workbook.WBProps||null)),H4(e,t),L4(e,t),Ye(e,132),e.end()}function $4(t,r,e){return r.slice(-4)===".bin"?B4(t,e):R4(t,e)}function W4(t,r,e,n,i,s,o,h){return r.slice(-4)===".bin"?s4(t,n,e,i,s,o,h):Py(t,n,e,i,s,o,h)}function X4(t,r,e,n,i,s,o,h){return r.slice(-4)===".bin"?y4(t,n,e,i,s):b4(t,n,e,i,s)}function V4(t,r,e,n,i,s,o,h){return r.slice(-4)===".bin"?Kb():Yb()}function G4(t,r,e,n,i,s,o,h){return r.slice(-4)===".bin"?Vb():Gb()}function K4(t,r,e,n){return r.slice(-4)===".bin"?$2(t,e,n):M2(t,e,n)}function Y4(t,r,e){return l0(t,e)}function Z4(t,r,e){return r.slice(-4)===".bin"?Zx(t,e):Gx(t,e)}function J4(t,r,e){return r.slice(-4)===".bin"?Hb(t,e):Ob(t,e)}function Q4(t,r,e){return r.slice(-4)===".bin"?Fb(t):Cb(t)}function q4(t,r,e,n){return e.slice(-4)===".bin"?Rb(t,r,e,n):void 0}function e3(t,r,e){return r.slice(-4)===".bin"?Tb(t,r,e):kb(t,r,e)}function t3(t,r,e){return(r.slice(-4)===".bin"?z4:F0)(t)}function r3(t,r,e,n,i){return(r.slice(-4)===".bin"?g4:T0)(t,e,n,i)}function n3(t,r,e){return(r.slice(-4)===".bin"?q2:o0)(t,e)}function i3(t,r,e){return(r.slice(-4)===".bin"?qx:qu)(t,e)}function s3(t,r,e){return(r.slice(-4)===".bin"?zb:u0)(t)}function a3(t){return(t.slice(-4)===".bin"?Sb:c0)()}var R0=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g,M0=/([\w:]+)=((?:")(?:[^"]*)(?:")|(?:')(?:[^']*)(?:'))/;function _n(t,r){var e=t.split(/\s+/),n=[];if(r||(n[0]=e[0]),e.length===1)return n;var i=t.match(R0),s,o,h,c;if(i)for(c=0;c!=i.length;++c)s=i[c].match(M0),(o=s[1].indexOf(":"))===-1?n[s[1]]=s[2].slice(1,s[2].length-1):(s[1].slice(0,6)==="xmlns:"?h="xmlns"+s[1].slice(6):h=s[1].slice(o+1),n[h]=s[2].slice(1,s[2].length-1));return n}function o3(t){var r=t.split(/\s+/),e={};if(r.length===1)return e;var n=t.match(R0),i,s,o,h;if(n)for(h=0;h!=n.length;++h)i=n[h].match(M0),(s=i[1].indexOf(":"))===-1?e[i[1]]=i[2].slice(1,i[2].length-1):(i[1].slice(0,6)==="xmlns:"?o="xmlns"+i[1].slice(6):o=i[1].slice(s+1),e[o]=i[2].slice(1,i[2].length-1));return e}var Ps;function f3(t,r){var e=Ps[t]||Pt(t);return e==="General"?Li(r):pn(e,r)}function l3(t,r,e,n){var i=n;switch((e[0].match(/dt:dt="([\w.]+)"/)||["",""])[1]){case"boolean":i=Yt(n);break;case"i2":case"int":i=parseInt(n,10);break;case"r4":case"float":i=parseFloat(n);break;case"date":case"dateTime.tz":i=qt(n);break;case"i8":case"string":case"fixed":case"uuid":case"bin.base64":break;default:throw new Error("bad custprop:"+e[0])}t[Pt(r)]=i}function c3(t,r,e){if(t.t!=="z"){if(!e||e.cellText!==!1)try{t.t==="e"?t.w=t.w||ii[t.v]:r==="General"?t.t==="n"?(t.v|0)===t.v?t.w=t.v.toString(10):t.w=js(t.v):t.w=Li(t.v):t.w=f3(r||"General",t.v)}catch(s){if(e.WTF)throw s}try{var n=Ps[r]||r||"General";if(e.cellNF&&(t.z=n),e.cellDates&&t.t=="n"&&gs(n)){var i=Ri(t.v);i&&(t.t="d",t.v=new Date(i.y,i.m-1,i.d,i.H,i.M,i.S,i.u))}}catch(s){if(e.WTF)throw s}}}function h3(t,r,e){if(e.cellStyles&&r.Interior){var n=r.Interior;n.Pattern&&(n.patternType=E2[n.Pattern]||n.Pattern)}t[r.ID]=r}function u3(t,r,e,n,i,s,o,h,c,a){var f="General",l=n.StyleID,u={};a=a||{};var p=[],m=0;for(l===void 0&&h&&(l=h.StyleID),l===void 0&&o&&(l=o.StyleID);s[l]!==void 0&&(s[l].nf&&(f=s[l].nf),s[l].Interior&&p.push(s[l].Interior),!!s[l].Parent);)l=s[l].Parent;switch(e.Type){case"Boolean":n.t="b",n.v=Yt(t);break;case"String":n.t="s",n.r=wc(Pt(t)),n.v=t.indexOf("<")>-1?Pt(r||t).replace(/<.*?>/g,""):n.r;break;case"DateTime":t.slice(-1)!="Z"&&(t+="Z"),n.v=(qt(t)-new Date(Date.UTC(1899,11,30)))/(24*60*60*1e3),n.v!==n.v?n.v=Pt(t):n.v<60&&(n.v=n.v-1),(!f||f=="General")&&(f="yyyy-mm-dd");case"Number":n.v===void 0&&(n.v=+t),n.t||(n.t="n");break;case"Error":n.t="e",n.v=Su[t],a.cellText!==!1&&(n.w=t);break;default:t==""&&r==""?n.t="z":(n.t="s",n.v=wc(r||t));break}if(c3(n,f,a),a.cellFormula!==!1)if(n.Formula){var d=Pt(n.Formula);d.charCodeAt(0)==61&&(d=d.slice(1)),n.f=hs(d,i),delete n.Formula,n.ArrayRange=="RC"?n.F=hs("RC:RC",i):n.ArrayRange&&(n.F=hs(n.ArrayRange,i),c.push([Lt(n.F),n.F]))}else for(m=0;m=c[m][0].s.r&&i.r<=c[m][0].e.r&&i.c>=c[m][0].s.c&&i.c<=c[m][0].e.c&&(n.F=c[m][1]);a.cellStyles&&(p.forEach(function(v){!u.patternType&&v.patternType&&(u.patternType=v.patternType)}),n.s=u),n.StyleID!==void 0&&(n.ixfe=n.StyleID)}function d3(t){t.t=t.v||"",t.t=t.t.replace(/\r\n/g,` +`).replace(/\r/g,` +`),t.v=t.w=t.ixfe=void 0}function Qo(t,r){var e=r||{};vs();var n=Cs(qf(t));(e.type=="binary"||e.type=="array"||e.type=="base64")&&(n=Wt(n));var i=n.slice(0,1024).toLowerCase(),s=!1;if(i=i.replace(/".*?"/g,""),(i.indexOf(">")&1023)>Math.min(i.indexOf(",")&1023,i.indexOf(";")&1023)){var o=Zt(e);return o.type="string",ds.to_workbook(n,o)}if(i.indexOf("=0&&(s=!0)}),s)return Q3(n,e);Ps={"General Number":"General","General Date":xt[22],"Long Date":"dddd, mmmm dd, yyyy","Medium Date":xt[15],"Short Date":xt[14],"Long Time":xt[19],"Medium Time":xt[18],"Short Time":xt[20],Currency:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',Fixed:xt[2],Standard:xt[4],Percent:xt[10],Scientific:xt[11],"Yes/No":'"Yes";"Yes";"No";@',"True/False":'"True";"True";"False";@',"On/Off":'"Yes";"Yes";"No";@'};var h,c=[],a,f={},l=[],u=e.dense?[]:{},p="",m={},d={},v=_n(''),x=0,g=0,b=0,w={s:{r:2e6,c:2e6},e:{r:0,c:0}},y={},T={},C="",M=0,I=[],B={},U={},j=0,H=[],G=[],L={},R=[],F,_=!1,k=[],N=[],P={},D=0,A=0,S={Sheets:[],WBProps:{date1904:!1}},E={};$s.lastIndex=0,n=n.replace(//mg,"");for(var O="";h=$s.exec(n);)switch(h[3]=(O=h[3]).toLowerCase()){case"data":if(O=="data"){if(h[1]==="/"){if((a=c.pop())[0]!==h[3])throw new Error("Bad state: "+a.join("|"))}else h[0].charAt(h[0].length-2)!=="/"&&c.push([h[3],!0]);break}if(c[c.length-1][1])break;h[1]==="/"?u3(n.slice(x,h.index),C,v,c[c.length-1][0]=="comment"?L:m,{c:g,r:b},y,R[g],d,k,e):(C="",v=_n(h[0]),x=h.index+h[0].length);break;case"cell":if(h[1]==="/")if(G.length>0&&(m.c=G),(!e.sheetRows||e.sheetRows>b)&&m.v!==void 0&&(e.dense?(u[b]||(u[b]=[]),u[b][g]=m):u[dr(g)+Er(b)]=m),m.HRef&&(m.l={Target:Pt(m.HRef)},m.HRefScreenTip&&(m.l.Tooltip=m.HRefScreenTip),delete m.HRef,delete m.HRefScreenTip),(m.MergeAcross||m.MergeDown)&&(D=g+(parseInt(m.MergeAcross,10)|0),A=b+(parseInt(m.MergeDown,10)|0),I.push({s:{c:g,r:b},e:{c:D,r:A}})),!e.sheetStubs)m.MergeAcross?g=D+1:++g;else if(m.MergeAcross||m.MergeDown){for(var z=g;z<=D;++z)for(var J=b;J<=A;++J)(z>g||J>b)&&(e.dense?(u[J]||(u[J]=[]),u[J][z]={t:"z"}):u[dr(z)+Er(J)]={t:"z"});g=D+1}else++g;else m=o3(h[0]),m.Index&&(g=+m.Index-1),gw.e.c&&(w.e.c=g),h[0].slice(-2)==="/>"&&++g,G=[];break;case"row":h[1]==="/"||h[0].slice(-2)==="/>"?(bw.e.r&&(w.e.r=b),h[0].slice(-2)==="/>"&&(d=_n(h[0]),d.Index&&(b=+d.Index-1)),g=0,++b):(d=_n(h[0]),d.Index&&(b=+d.Index-1),P={},(d.AutoFitHeight=="0"||d.Height)&&(P.hpx=parseInt(d.Height,10),P.hpt=Ks(P.hpx),N[b]=P),d.Hidden=="1"&&(P.hidden=!0,N[b]=P));break;case"worksheet":if(h[1]==="/"){if((a=c.pop())[0]!==h[3])throw new Error("Bad state: "+a.join("|"));l.push(p),w.s.r<=w.e.r&&w.s.c<=w.e.c&&(u["!ref"]=Rt(w),e.sheetRows&&e.sheetRows<=w.e.r&&(u["!fullref"]=u["!ref"],w.e.r=e.sheetRows-1,u["!ref"]=Rt(w))),I.length&&(u["!merges"]=I),R.length>0&&(u["!cols"]=R),N.length>0&&(u["!rows"]=N),f[p]=u}else w={s:{r:2e6,c:2e6},e:{r:0,c:0}},b=g=0,c.push([h[3],!1]),a=_n(h[0]),p=Pt(a.Name),u=e.dense?[]:{},I=[],k=[],N=[],E={name:p,Hidden:0},S.Sheets.push(E);break;case"table":if(h[1]==="/"){if((a=c.pop())[0]!==h[3])throw new Error("Bad state: "+a.join("|"))}else{if(h[0].slice(-2)=="/>")break;c.push([h[3],!1]),R=[],_=!1}break;case"style":h[1]==="/"?h3(y,T,e):T=_n(h[0]);break;case"numberformat":T.nf=Pt(_n(h[0]).Format||"General"),Ps[T.nf]&&(T.nf=Ps[T.nf]);for(var re=0;re!=392&&xt[re]!=T.nf;++re);if(re==392){for(re=57;re!=392;++re)if(xt[re]==null){Qn(T.nf,re);break}}break;case"column":if(c[c.length-1][0]!=="table")break;if(F=_n(h[0]),F.Hidden&&(F.hidden=!0,delete F.Hidden),F.Width&&(F.wpx=parseInt(F.Width,10)),!_&&F.wpx>10){_=!0,Dr=s0;for(var se=0;se0&&(q.Sheet=S.Sheets.length-1),S.Names.push(q);break;case"namedcell":break;case"b":break;case"i":break;case"u":break;case"s":break;case"em":break;case"h2":break;case"h3":break;case"sub":break;case"sup":break;case"span":break;case"alignment":break;case"borders":break;case"border":break;case"font":if(h[0].slice(-2)==="/>")break;h[1]==="/"?C+=n.slice(M,h.index):M=h.index+h[0].length;break;case"interior":if(!e.cellStyles)break;T.Interior=_n(h[0]);break;case"protection":break;case"author":case"title":case"description":case"created":case"keywords":case"subject":case"category":case"company":case"lastauthor":case"lastsaved":case"lastprinted":case"version":case"revision":case"totaltime":case"hyperlinkbase":case"manager":case"contentstatus":case"identifier":case"language":case"appname":if(h[0].slice(-2)==="/>")break;h[1]==="/"?Bg(B,O,n.slice(j,h.index)):j=h.index+h[0].length;break;case"paragraphs":break;case"styles":case"workbook":if(h[1]==="/"){if((a=c.pop())[0]!==h[3])throw new Error("Bad state: "+a.join("|"))}else c.push([h[3],!1]);break;case"comment":if(h[1]==="/"){if((a=c.pop())[0]!==h[3])throw new Error("Bad state: "+a.join("|"));d3(L),G.push(L)}else c.push([h[3],!1]),a=_n(h[0]),L={a:a.Author};break;case"autofilter":if(h[1]==="/"){if((a=c.pop())[0]!==h[3])throw new Error("Bad state: "+a.join("|"))}else if(h[0].charAt(h[0].length-2)!=="/"){var K=_n(h[0]);u["!autofilter"]={ref:hs(K.Range).replace(/\$/g,"")},c.push([h[3],!0])}break;case"name":break;case"datavalidation":if(h[1]==="/"){if((a=c.pop())[0]!==h[3])throw new Error("Bad state: "+a.join("|"))}else h[0].charAt(h[0].length-2)!=="/"&&c.push([h[3],!0]);break;case"pixelsperinch":break;case"componentoptions":case"documentproperties":case"customdocumentproperties":case"officedocumentsettings":case"pivottable":case"pivotcache":case"names":case"mapinfo":case"pagebreaks":case"querytable":case"sorting":case"schema":case"conditionalformatting":case"smarttagtype":case"smarttags":case"excelworkbook":case"workbookoptions":case"worksheetoptions":if(h[1]==="/"){if((a=c.pop())[0]!==h[3])throw new Error("Bad state: "+a.join("|"))}else h[0].charAt(h[0].length-2)!=="/"&&c.push([h[3],!0]);break;case"null":break;default:if(c.length==0&&h[3]=="document"||c.length==0&&h[3]=="uof")return oh(n,e);var Q=!0;switch(c[c.length-1][0]){case"officedocumentsettings":switch(h[3]){case"allowpng":break;case"removepersonalinformation":break;case"downloadcomponents":break;case"locationofcomponents":break;case"colors":break;case"color":break;case"index":break;case"rgb":break;case"targetscreensize":break;case"readonlyrecommended":break;default:Q=!1}break;case"componentoptions":switch(h[3]){case"toolbar":break;case"hideofficelogo":break;case"spreadsheetautofit":break;case"label":break;case"caption":break;case"maxheight":break;case"maxwidth":break;case"nextsheetnumber":break;default:Q=!1}break;case"excelworkbook":switch(h[3]){case"date1904":S.WBProps.date1904=!0;break;case"windowheight":break;case"windowwidth":break;case"windowtopx":break;case"windowtopy":break;case"tabratio":break;case"protectstructure":break;case"protectwindow":break;case"protectwindows":break;case"activesheet":break;case"displayinknotes":break;case"firstvisiblesheet":break;case"supbook":break;case"sheetname":break;case"sheetindex":break;case"sheetindexfirst":break;case"sheetindexlast":break;case"dll":break;case"acceptlabelsinformulas":break;case"donotsavelinkvalues":break;case"iteration":break;case"maxiterations":break;case"maxchange":break;case"path":break;case"xct":break;case"count":break;case"selectedsheets":break;case"calculation":break;case"uncalced":break;case"startupprompt":break;case"crn":break;case"externname":break;case"formula":break;case"colfirst":break;case"collast":break;case"wantadvise":break;case"boolean":break;case"error":break;case"text":break;case"ole":break;case"noautorecover":break;case"publishobjects":break;case"donotcalculatebeforesave":break;case"number":break;case"refmoder1c1":break;case"embedsavesmarttags":break;default:Q=!1}break;case"workbookoptions":switch(h[3]){case"owcversion":break;case"height":break;case"width":break;default:Q=!1}break;case"worksheetoptions":switch(h[3]){case"visible":if(h[0].slice(-2)!=="/>")if(h[1]==="/")switch(n.slice(j,h.index)){case"SheetHidden":E.Hidden=1;break;case"SheetVeryHidden":E.Hidden=2;break}else j=h.index+h[0].length;break;case"header":u["!margins"]||Pi(u["!margins"]={},"xlml"),isNaN(+bt(h[0]).Margin)||(u["!margins"].header=+bt(h[0]).Margin);break;case"footer":u["!margins"]||Pi(u["!margins"]={},"xlml"),isNaN(+bt(h[0]).Margin)||(u["!margins"].footer=+bt(h[0]).Margin);break;case"pagemargins":var he=bt(h[0]);u["!margins"]||Pi(u["!margins"]={},"xlml"),isNaN(+he.Top)||(u["!margins"].top=+he.Top),isNaN(+he.Left)||(u["!margins"].left=+he.Left),isNaN(+he.Right)||(u["!margins"].right=+he.Right),isNaN(+he.Bottom)||(u["!margins"].bottom=+he.Bottom);break;case"displayrighttoleft":S.Views||(S.Views=[]),S.Views[0]||(S.Views[0]={}),S.Views[0].RTL=!0;break;case"freezepanes":break;case"frozennosplit":break;case"splithorizontal":case"splitvertical":break;case"donotdisplaygridlines":break;case"activerow":break;case"activecol":break;case"toprowbottompane":break;case"leftcolumnrightpane":break;case"unsynced":break;case"print":break;case"printerrors":break;case"panes":break;case"scale":break;case"pane":break;case"number":break;case"layout":break;case"pagesetup":break;case"selected":break;case"protectobjects":break;case"enableselection":break;case"protectscenarios":break;case"validprinterinfo":break;case"horizontalresolution":break;case"verticalresolution":break;case"numberofcopies":break;case"activepane":break;case"toprowvisible":break;case"leftcolumnvisible":break;case"fittopage":break;case"rangeselection":break;case"papersizeindex":break;case"pagelayoutzoom":break;case"pagebreakzoom":break;case"filteron":break;case"fitwidth":break;case"fitheight":break;case"commentslayout":break;case"zoom":break;case"lefttoright":break;case"gridlines":break;case"allowsort":break;case"allowfilter":break;case"allowinsertrows":break;case"allowdeleterows":break;case"allowinsertcols":break;case"allowdeletecols":break;case"allowinserthyperlinks":break;case"allowformatcells":break;case"allowsizecols":break;case"allowsizerows":break;case"nosummaryrowsbelowdetail":u["!outline"]||(u["!outline"]={}),u["!outline"].above=!0;break;case"tabcolorindex":break;case"donotdisplayheadings":break;case"showpagelayoutzoom":break;case"nosummarycolumnsrightdetail":u["!outline"]||(u["!outline"]={}),u["!outline"].left=!0;break;case"blackandwhite":break;case"donotdisplayzeros":break;case"displaypagebreak":break;case"rowcolheadings":break;case"donotdisplayoutline":break;case"noorientation":break;case"allowusepivottables":break;case"zeroheight":break;case"viewablerange":break;case"selection":break;case"protectcontents":break;default:Q=!1}break;case"pivottable":case"pivotcache":switch(h[3]){case"immediateitemsondrop":break;case"showpagemultipleitemlabel":break;case"compactrowindent":break;case"location":break;case"pivotfield":break;case"orientation":break;case"layoutform":break;case"layoutsubtotallocation":break;case"layoutcompactrow":break;case"position":break;case"pivotitem":break;case"datatype":break;case"datafield":break;case"sourcename":break;case"parentfield":break;case"ptlineitems":break;case"ptlineitem":break;case"countofsameitems":break;case"item":break;case"itemtype":break;case"ptsource":break;case"cacheindex":break;case"consolidationreference":break;case"filename":break;case"reference":break;case"nocolumngrand":break;case"norowgrand":break;case"blanklineafteritems":break;case"hidden":break;case"subtotal":break;case"basefield":break;case"mapchilditems":break;case"function":break;case"refreshonfileopen":break;case"printsettitles":break;case"mergelabels":break;case"defaultversion":break;case"refreshname":break;case"refreshdate":break;case"refreshdatecopy":break;case"versionlastrefresh":break;case"versionlastupdate":break;case"versionupdateablemin":break;case"versionrefreshablemin":break;case"calculation":break;default:Q=!1}break;case"pagebreaks":switch(h[3]){case"colbreaks":break;case"colbreak":break;case"rowbreaks":break;case"rowbreak":break;case"colstart":break;case"colend":break;case"rowend":break;default:Q=!1}break;case"autofilter":switch(h[3]){case"autofiltercolumn":break;case"autofiltercondition":break;case"autofilterand":break;case"autofilteror":break;default:Q=!1}break;case"querytable":switch(h[3]){case"id":break;case"autoformatfont":break;case"autoformatpattern":break;case"querysource":break;case"querytype":break;case"enableredirections":break;case"refreshedinxl9":break;case"urlstring":break;case"htmltables":break;case"connection":break;case"commandtext":break;case"refreshinfo":break;case"notitles":break;case"nextid":break;case"columninfo":break;case"overwritecells":break;case"donotpromptforfile":break;case"textwizardsettings":break;case"source":break;case"number":break;case"decimal":break;case"thousandseparator":break;case"trailingminusnumbers":break;case"formatsettings":break;case"fieldtype":break;case"delimiters":break;case"tab":break;case"comma":break;case"autoformatname":break;case"versionlastedit":break;case"versionlastrefresh":break;default:Q=!1}break;case"datavalidation":switch(h[3]){case"range":break;case"type":break;case"min":break;case"max":break;case"sort":break;case"descending":break;case"order":break;case"casesensitive":break;case"value":break;case"errorstyle":break;case"errormessage":break;case"errortitle":break;case"inputmessage":break;case"inputtitle":break;case"combohide":break;case"inputhide":break;case"condition":break;case"qualifier":break;case"useblank":break;case"value1":break;case"value2":break;case"format":break;case"cellrangelist":break;default:Q=!1}break;case"sorting":case"conditionalformatting":switch(h[3]){case"range":break;case"type":break;case"min":break;case"max":break;case"sort":break;case"descending":break;case"order":break;case"casesensitive":break;case"value":break;case"errorstyle":break;case"errormessage":break;case"errortitle":break;case"cellrangelist":break;case"inputmessage":break;case"inputtitle":break;case"combohide":break;case"inputhide":break;case"condition":break;case"qualifier":break;case"useblank":break;case"value1":break;case"value2":break;case"format":break;default:Q=!1}break;case"mapinfo":case"schema":case"data":switch(h[3]){case"map":break;case"entry":break;case"range":break;case"xpath":break;case"field":break;case"xsdtype":break;case"filteron":break;case"aggregate":break;case"elementtype":break;case"attributetype":break;case"schema":case"element":case"complextype":case"datatype":case"all":case"attribute":case"extends":break;case"row":break;default:Q=!1}break;case"smarttags":break;default:Q=!1;break}if(Q||h[3].match(/!\[CDATA/))break;if(!c[c.length-1][1])throw"Unrecognized tag: "+h[3]+"|"+c.join("|");if(c[c.length-1][0]==="customdocumentproperties"){if(h[0].slice(-2)==="/>")break;h[1]==="/"?l3(U,O,H,n.slice(j,h.index)):(H=h,j=h.index+h[0].length);break}if(e.WTF)throw"Unrecognized tag: "+h[3]+"|"+c.join("|")}var we={};return!e.bookSheets&&!e.bookProps&&(we.Sheets=f),we.SheetNames=l,we.Workbook=S,we.SSF=Zt(xt),we.Props=B,we.Custprops=U,we}function Cf(t,r){switch(yl(r=r||{}),r.type||"base64"){case"base64":return Qo(nn(t),r);case"binary":case"buffer":case"file":return Qo(t,r);case"array":return Qo(bi(t),r)}}function p3(t,r){var e=[];return t.Props&&e.push(Lg(t.Props,r)),t.Custprops&&e.push(jg(t.Props,t.Custprops)),e.join("")}function m3(){return""}function g3(t,r){var e=[''];return r.cellXfs.forEach(function(n,i){var s=[];s.push(Qe("NumberFormat",null,{"ss:Format":$t(xt[n.numFmtId])}));var o={"ss:ID":"s"+(21+i)};e.push(Qe("Style",s.join(""),o))}),Qe("Styles",e.join(""))}function O0(t){return Qe("NamedRange",null,{"ss:Name":t.Name,"ss:RefersTo":"="+ml(t.Ref,{r:0,c:0})})}function v3(t){if(!((t||{}).Workbook||{}).Names)return"";for(var r=t.Workbook.Names,e=[],n=0;n"),t["!margins"].header&&i.push(Qe("Header",null,{"x:Margin":t["!margins"].header})),t["!margins"].footer&&i.push(Qe("Footer",null,{"x:Margin":t["!margins"].footer})),i.push(Qe("PageMargins",null,{"x:Bottom":t["!margins"].bottom||"0.75","x:Left":t["!margins"].left||"0.7","x:Right":t["!margins"].right||"0.7","x:Top":t["!margins"].top||"0.75"})),i.push("")),n&&n.Workbook&&n.Workbook.Sheets&&n.Workbook.Sheets[e])if(n.Workbook.Sheets[e].Hidden)i.push(Qe("Visible",n.Workbook.Sheets[e].Hidden==1?"SheetHidden":"SheetVeryHidden",{}));else{for(var s=0;s")}return((((n||{}).Workbook||{}).Views||[])[0]||{}).RTL&&i.push(""),t["!protect"]&&(i.push(Cr("ProtectContents","True")),t["!protect"].objects&&i.push(Cr("ProtectObjects","True")),t["!protect"].scenarios&&i.push(Cr("ProtectScenarios","True")),t["!protect"].selectLockedCells!=null&&!t["!protect"].selectLockedCells?i.push(Cr("EnableSelection","NoSelection")):t["!protect"].selectUnlockedCells!=null&&!t["!protect"].selectUnlockedCells&&i.push(Cr("EnableSelection","UnlockedCells")),[["formatCells","AllowFormatCells"],["formatColumns","AllowSizeCols"],["formatRows","AllowSizeRows"],["insertColumns","AllowInsertCols"],["insertRows","AllowInsertRows"],["insertHyperlinks","AllowInsertHyperlinks"],["deleteColumns","AllowDeleteCols"],["deleteRows","AllowDeleteRows"],["sort","AllowSort"],["autoFilter","AllowFilter"],["pivotTables","AllowUsePivotTables"]].forEach(function(o){t["!protect"][o[0]]&&i.push("<"+o[1]+"/>")})),i.length==0?"":Qe("WorksheetOptions",i.join(""),{xmlns:qr.x})}function w3(t){return t.map(function(r){var e=Um(r.t||""),n=Qe("ss:Data",e,{xmlns:"http://www.w3.org/TR/REC-html40"});return Qe("Comment",n,{"ss:Author":r.a})}).join("")}function y3(t,r,e,n,i,s,o){if(!t||t.v==null&&t.f==null)return"";var h={};if(t.f&&(h["ss:Formula"]="="+$t(ml(t.f,o))),t.F&&t.F.slice(0,r.length)==r){var c=vr(t.F.slice(r.length+1));h["ss:ArrayRange"]="RC:R"+(c.r==o.r?"":"["+(c.r-o.r)+"]")+"C"+(c.c==o.c?"":"["+(c.c-o.c)+"]")}if(t.l&&t.l.Target&&(h["ss:HRef"]=$t(t.l.Target),t.l.Tooltip&&(h["x:HRefScreenTip"]=$t(t.l.Tooltip))),e["!merges"])for(var a=e["!merges"],f=0;f!=a.length;++f)a[f].s.c!=o.c||a[f].s.r!=o.r||(a[f].e.c>a[f].s.c&&(h["ss:MergeAcross"]=a[f].e.c-a[f].s.c),a[f].e.r>a[f].s.r&&(h["ss:MergeDown"]=a[f].e.r-a[f].s.r));var l="",u="";switch(t.t){case"z":if(!n.sheetStubs)return"";break;case"n":l="Number",u=String(t.v);break;case"b":l="Boolean",u=t.v?"1":"0";break;case"e":l="Error",u=ii[t.v];break;case"d":l="DateTime",u=new Date(t.v).toISOString(),t.z==null&&(t.z=t.z||xt[14]);break;case"s":l="String",u=jm(t.v||"");break}var p=wi(n.cellXfs,t,n);h["ss:StyleID"]="s"+(21+p),h["ss:Index"]=o.c+1;var m=t.v!=null?u:"",d=t.t=="z"?"":''+m+"";return(t.c||[]).length>0&&(d+=w3(t.c)),Qe("Cell",d,h)}function _3(t,r){var e='"}function E3(t,r,e,n){if(!t["!ref"])return"";var i=Lt(t["!ref"]),s=t["!merges"]||[],o=0,h=[];t["!cols"]&&t["!cols"].forEach(function(v,x){gi(v);var g=!!v.width,b=_o(x,v),w={"ss:Index":x+1};g&&(w["ss:Width"]=Vs(b.width)),v.hidden&&(w["ss:Hidden"]="1"),h.push(Qe("Column",null,w))});for(var c=Array.isArray(t),a=i.s.r;a<=i.e.r;++a){for(var f=[_3(a,(t["!rows"]||[])[a])],l=i.s.c;l<=i.e.c;++l){var u=!1;for(o=0;o!=s.length;++o)if(!(s[o].s.c>l)&&!(s[o].s.r>a)&&!(s[o].e.c"),f.length>2&&h.push(f.join(""))}return h.join("")}function T3(t,r,e){var n=[],i=e.SheetNames[t],s=e.Sheets[i],o=s?x3(s,r,t,e):"";return o.length>0&&n.push(""+o+""),o=s?E3(s,r,t,e):"",o.length>0&&n.push(""+o+"
"),n.push(b3(s,r,t,e)),n.join("")}function S3(t,r){r||(r={}),t.SSF||(t.SSF=Zt(xt)),t.SSF&&(vs(),mo(t.SSF),r.revssf=vo(t.SSF),r.revssf[t.SSF[65535]]=0,r.ssf=t.SSF,r.cellXfs=[],wi(r.cellXfs,{},{revssf:{General:0}}));var e=[];e.push(p3(t,r)),e.push(m3()),e.push(""),e.push("");for(var n=0;n40||(e.l-=4,r.Reserved1=e.read_shift(0,"lpstr-ansi"),e.length-e.l<=4)||(n=e.read_shift(4),n!==1907505652)||(r.UnicodeClipboardFormat=xg(e),n=e.read_shift(4),n==0||n>40))return r;e.l-=4,r.Reserved2=e.read_shift(0,"lpwstr")}var C3=[60,1084,2066,2165,2175];function A3(t,r,e,n,i){var s=n,o=[],h=e.slice(e.l,e.l+s);if(i&&i.enc&&i.enc.insitu&&h.length>0)switch(t){case 9:case 521:case 1033:case 2057:case 47:case 405:case 225:case 406:case 312:case 404:case 10:break;case 133:break;default:i.enc.insitu(h)}o.push(h),e.l+=s;for(var c=Zn(e,e.l),a=Af[c],f=0;a!=null&&C3.indexOf(c)>-1;)s=Zn(e,e.l+2),f=e.l+4,c==2066?f+=4:(c==2165||c==2175)&&(f+=12),h=e.slice(f,e.l+4+s),o.push(h),e.l+=4+s,a=Af[c=Zn(e,e.l)];var l=yr(o);kr(l,0);var u=0;l.lens=[];for(var p=0;p1)&&!(Re.sheetRows&&de.r>=Re.sheetRows)){if(Re.cellStyles&&_e.XF&&_e.XF.data&&B(de,_e,Re),delete _e.ixfe,delete _e.XF,l=de,u=yt(de),(!o||!o.s||!o.e)&&(o={s:{r:0,c:0},e:{r:0,c:0}}),de.ro.e.r&&(o.e.r=de.r+1),de.c+1>o.e.c&&(o.e.c=de.c+1),Re.cellFormula&&_e.f){for(var Ae=0;Aede.c||g[Ae][0].s.r>de.r)&&!(g[Ae][0].e.c>8)!==J)throw new Error("rt mismatch: "+Ce+"!="+J);se.r==12&&(t.l+=10,re-=10)}var Y={};if(J===10?Y=se.f(t,re,j):Y=A3(J,se,t,re,j),P==0&&[9,521,1033,2057].indexOf(N)===-1)continue;switch(J){case 34:e.opts.Date1904=C.WBProps.date1904=Y;break;case 134:e.opts.WriteProtect=!0;break;case 47:if(j.enc||(t.l=0),j.enc=Y,!r.password)throw new Error("File is password-protected");if(Y.valid==null)throw new Error("Encryption scheme unsupported");if(!Y.valid)throw new Error("Password is incorrect");break;case 92:j.lastuser=Y;break;case 66:var q=Number(Y);switch(q){case 21010:q=1200;break;case 32768:q=1e4;break;case 32769:q=1252;break}Sn(j.codepage=q),O=!0;break;case 317:j.rrtabid=Y;break;case 25:j.winlocked=Y;break;case 439:e.opts.RefreshAll=Y;break;case 12:e.opts.CalcCount=Y;break;case 16:e.opts.CalcDelta=Y;break;case 17:e.opts.CalcIter=Y;break;case 13:e.opts.CalcMode=Y;break;case 14:e.opts.CalcPrecision=Y;break;case 95:e.opts.CalcSaveRecalc=Y;break;case 15:j.CalcRefMode=Y;break;case 2211:e.opts.FullCalc=Y;break;case 129:Y.fDialog&&(i["!type"]="dialog"),Y.fBelow||((i["!outline"]||(i["!outline"]={})).above=!0),Y.fRight||((i["!outline"]||(i["!outline"]={})).left=!0);break;case 224:y.push(Y);break;case 430:k.push([Y]),k[k.length-1].XTI=[];break;case 35:case 547:k[k.length-1].push(Y);break;case 24:case 536:E={Name:Y.Name,Ref:Ir(Y.rgce,o,null,k,j)},Y.itab>0&&(E.Sheet=Y.itab-1),k.names.push(E),k[0]||(k[0]=[],k[0].XTI=[]),k[k.length-1].push(Y),Y.Name=="_xlnm._FilterDatabase"&&Y.itab>0&&Y.rgce&&Y.rgce[0]&&Y.rgce[0][0]&&Y.rgce[0][0][0]=="PtgArea3d"&&(S[Y.itab-1]={ref:Rt(Y.rgce[0][0][1][2])});break;case 22:j.ExternCount=Y;break;case 23:k.length==0&&(k[0]=[],k[0].XTI=[]),k[k.length-1].XTI=k[k.length-1].XTI.concat(Y),k.XTI=k.XTI.concat(Y);break;case 2196:if(j.biff<8)break;E!=null&&(E.Comment=Y[1]);break;case 18:i["!protect"]=Y;break;case 19:Y!==0&&j.WTF&&console.error("Password verifier: "+Y);break;case 133:s[Y.pos]=Y,j.snames.push(Y.name);break;case 10:{if(--P)break;if(o.e){if(o.e.r>0&&o.e.c>0){if(o.e.r--,o.e.c--,i["!ref"]=Rt(o),r.sheetRows&&r.sheetRows<=o.e.r){var K=o.e.r;o.e.r=r.sheetRows-1,i["!fullref"]=i["!ref"],i["!ref"]=Rt(o),o.e.r=K}o.e.r++,o.e.c++}G.length>0&&(i["!merges"]=G),L.length>0&&(i["!objects"]=L),R.length>0&&(i["!cols"]=R),F.length>0&&(i["!rows"]=F),C.Sheets.push(M)}a===""?f=i:n[a]=i,i=r.dense?[]:{}}break;case 9:case 521:case 1033:case 2057:{if(j.biff===8&&(j.biff={9:2,521:3,1033:4}[J]||{512:2,768:3,1024:4,1280:5,1536:8,2:2,7:2}[Y.BIFFVer]||8),j.biffguess=Y.BIFFVer==0,Y.BIFFVer==0&&Y.dt==4096&&(j.biff=5,O=!0,Sn(j.codepage=28591)),j.biff==8&&Y.BIFFVer==0&&Y.dt==16&&(j.biff=2),P++)break;if(i=r.dense?[]:{},j.biff<8&&!O&&(O=!0,Sn(j.codepage=r.codepage||1252)),j.biff<5||Y.BIFFVer==0&&Y.dt==4096){a===""&&(a="Sheet1"),o={s:{r:0,c:0},e:{r:0,c:0}};var Q={pos:t.l-re,name:a};s[Q.pos]=Q,j.snames.push(a)}else a=(s[z]||{name:""}).name;Y.dt==32&&(i["!type"]="chart"),Y.dt==64&&(i["!type"]="macro"),G=[],L=[],j.arrayf=g=[],R=[],F=[],_=!1,M={Hidden:(s[z]||{hs:0}).hs,name:a}}break;case 515:case 3:case 2:i["!type"]=="chart"&&(r.dense?(i[Y.r]||[])[Y.c]:i[yt({c:Y.c,r:Y.r})])&&++Y.c,b={ixfe:Y.ixfe,XF:y[Y.ixfe]||{},v:Y.val,t:"n"},D>0&&(b.z=A[b.ixfe>>8&63]),Dn(b,r,e.opts.Date1904),U({c:Y.c,r:Y.r},b,r);break;case 5:case 517:b={ixfe:Y.ixfe,XF:y[Y.ixfe],v:Y.val,t:Y.t},D>0&&(b.z=A[b.ixfe>>8&63]),Dn(b,r,e.opts.Date1904),U({c:Y.c,r:Y.r},b,r);break;case 638:b={ixfe:Y.ixfe,XF:y[Y.ixfe],v:Y.rknum,t:"n"},D>0&&(b.z=A[b.ixfe>>8&63]),Dn(b,r,e.opts.Date1904),U({c:Y.c,r:Y.r},b,r);break;case 189:for(var he=Y.c;he<=Y.C;++he){var we=Y.rkrec[he-Y.c][0];b={ixfe:we,XF:y[we],v:Y.rkrec[he-Y.c][1],t:"n"},D>0&&(b.z=A[b.ixfe>>8&63]),Dn(b,r,e.opts.Date1904),U({c:he,r:Y.r},b,r)}break;case 6:case 518:case 1030:{if(Y.val=="String"){h=Y;break}if(b=ja(Y.val,Y.cell.ixfe,Y.tt),b.XF=y[b.ixfe],r.cellFormula){var ae=Y.formula;if(ae&&ae[0]&&ae[0][0]&&ae[0][0][0]=="PtgExp"){var te=ae[0][0][1][0],Z=ae[0][0][1][1],W=yt({r:te,c:Z});x[W]?b.f=""+Ir(Y.formula,o,Y.cell,k,j):b.F=((r.dense?(i[te]||[])[Z]:i[W])||{}).F}else b.f=""+Ir(Y.formula,o,Y.cell,k,j)}D>0&&(b.z=A[b.ixfe>>8&63]),Dn(b,r,e.opts.Date1904),U(Y.cell,b,r),h=Y}break;case 7:case 519:if(h)h.val=Y,b=ja(Y,h.cell.ixfe,"s"),b.XF=y[b.ixfe],r.cellFormula&&(b.f=""+Ir(h.formula,o,h.cell,k,j)),D>0&&(b.z=A[b.ixfe>>8&63]),Dn(b,r,e.opts.Date1904),U(h.cell,b,r),h=null;else throw new Error("String record expects Formula");break;case 33:case 545:{g.push(Y);var V=yt(Y[0].s);if(p=r.dense?(i[Y[0].s.r]||[])[Y[0].s.c]:i[V],r.cellFormula&&p){if(!h||!V||!p)break;p.f=""+Ir(Y[1],o,Y[0],k,j),p.F=Rt(Y[0])}}break;case 1212:{if(!r.cellFormula)break;if(u){if(!h)break;x[yt(h.cell)]=Y[0],p=r.dense?(i[h.cell.r]||[])[h.cell.c]:i[yt(h.cell)],(p||{}).f=""+Ir(Y[0],o,l,k,j)}}break;case 253:b=ja(c[Y.isst].t,Y.ixfe,"s"),c[Y.isst].h&&(b.h=c[Y.isst].h),b.XF=y[b.ixfe],D>0&&(b.z=A[b.ixfe>>8&63]),Dn(b,r,e.opts.Date1904),U({c:Y.c,r:Y.r},b,r);break;case 513:r.sheetStubs&&(b={ixfe:Y.ixfe,XF:y[Y.ixfe],t:"z"},D>0&&(b.z=A[b.ixfe>>8&63]),Dn(b,r,e.opts.Date1904),U({c:Y.c,r:Y.r},b,r));break;case 190:if(r.sheetStubs)for(var fe=Y.c;fe<=Y.C;++fe){var ye=Y.ixfe[fe-Y.c];b={ixfe:ye,XF:y[ye],t:"z"},D>0&&(b.z=A[b.ixfe>>8&63]),Dn(b,r,e.opts.Date1904),U({c:fe,r:Y.r},b,r)}break;case 214:case 516:case 4:b=ja(Y.val,Y.ixfe,"s"),b.XF=y[b.ixfe],D>0&&(b.z=A[b.ixfe>>8&63]),Dn(b,r,e.opts.Date1904),U({c:Y.c,r:Y.r},b,r);break;case 0:case 512:P===1&&(o=Y);break;case 252:c=Y;break;case 1054:if(j.biff==4){A[D++]=Y[1];for(var X=0;X=163&&Qn(Y[1],D+163)}else Qn(Y[1],Y[0]);break;case 30:{A[D++]=Y;for(var ve=0;ve=163&&Qn(Y,D+163)}break;case 229:G=G.concat(Y);break;case 93:L[Y.cmo[0]]=j.lastobj=Y;break;case 438:j.lastobj.TxO=Y;break;case 127:j.lastobj.ImData=Y;break;case 440:for(v=Y[0].s.r;v<=Y[0].e.r;++v)for(d=Y[0].s.c;d<=Y[0].e.c;++d)p=r.dense?(i[v]||[])[d]:i[yt({c:d,r:v})],p&&(p.l=Y[1]);break;case 2048:for(v=Y[0].s.r;v<=Y[0].e.r;++v)for(d=Y[0].s.c;d<=Y[0].e.c;++d)p=r.dense?(i[v]||[])[d]:i[yt({c:d,r:v})],p&&p.l&&(p.l.Tooltip=Y[1]);break;case 28:{if(j.biff<=5&&j.biff>=2)break;p=r.dense?(i[Y[0].r]||[])[Y[0].c]:i[yt(Y[0])];var ke=L[Y[2]];p||(r.dense?(i[Y[0].r]||(i[Y[0].r]=[]),p=i[Y[0].r][Y[0].c]={t:"z"}):p=i[yt(Y[0])]={t:"z"},o.e.r=Math.max(o.e.r,Y[0].r),o.s.r=Math.min(o.s.r,Y[0].r),o.e.c=Math.max(o.e.c,Y[0].c),o.s.c=Math.min(o.s.c,Y[0].c)),p.c||(p.c=[]),m={a:Y[1],t:ke.TxO.t},p.c.push(m)}break;case 2173:gb(y[Y.ixfe],Y.ext);break;case 125:{if(!j.cellStyles)break;for(;Y.e>=Y.s;)R[Y.e--]={width:Y.w/256,level:Y.level||0,hidden:!!(Y.flags&1)},_||(_=!0,ul(Y.w/256)),gi(R[Y.e+1])}break;case 520:{var ee={};Y.level!=null&&(F[Y.r]=ee,ee.level=Y.level),Y.hidden&&(F[Y.r]=ee,ee.hidden=!0),Y.hpt&&(F[Y.r]=ee,ee.hpt=Y.hpt,ee.hpx=ps(Y.hpt))}break;case 38:case 39:case 40:case 41:i["!margins"]||Pi(i["!margins"]={}),i["!margins"][{38:"left",39:"right",40:"top",41:"bottom"}[J]]=Y;break;case 161:i["!margins"]||Pi(i["!margins"]={}),i["!margins"].header=Y.header,i["!margins"].footer=Y.footer;break;case 574:Y.RTL&&(C.Views[0].RTL=!0);break;case 146:T=Y;break;case 2198:H=Y;break;case 140:w=Y;break;case 442:a?M.CodeName=Y||M.name:C.WBProps.CodeName=Y||"ThisWorkbook";break}}else se||console.error("Missing Info for XLS Record 0x"+J.toString(16)),t.l+=re}return e.SheetNames=or(s).sort(function(ne,de){return Number(ne)-Number(de)}).map(function(ne){return s[ne].name}),r.bookSheets||(e.Sheets=n),!e.SheetNames.length&&f["!ref"]?(e.SheetNames.push("Sheet1"),e.Sheets&&(e.Sheets.Sheet1=f)):e.Preamble=f,e.Sheets&&S.forEach(function(ne,de){e.Sheets[e.SheetNames[de]]["!autofilter"]=ne}),e.Strings=c,e.SSF=Zt(xt),j.enc&&(e.Encryption=j.enc),H&&(e.Themes=H),e.Metadata={},w!==void 0&&(e.Metadata.Country=w),k.names.length>0&&(C.Names=k.names),e.Workbook=C,e}var Bs={SI:"e0859ff2f94f6810ab9108002b27b3d9",DSI:"02d5cdd59c2e1b10939708002b2cf9ae",UDI:"05d5cdd59c2e1b10939708002b2cf9ae"};function R3(t,r,e){var n=ut.find(t,"/!DocumentSummaryInformation");if(n&&n.size>0)try{var i=Lc(n,yf,Bs.DSI);for(var s in i)r[s]=i[s]}catch(a){if(e.WTF)throw a}var o=ut.find(t,"/!SummaryInformation");if(o&&o.size>0)try{var h=Lc(o,_f,Bs.SI);for(var c in h)r[c]==null&&(r[c]=h[c])}catch(a){if(e.WTF)throw a}r.HeadingPairs&&r.TitlesOfParts&&(Mu(r.HeadingPairs,r.TitlesOfParts,r,e),delete r.HeadingPairs,delete r.TitlesOfParts)}function M3(t,r){var e=[],n=[],i=[],s=0,o,h=pc(yf,"n"),c=pc(_f,"n");if(t.Props)for(o=or(t.Props),s=0;s-1||Ru.indexOf(i[s][0])>-1||i[s][1]!=null&&a.push(i[s]);n.length&&ut.utils.cfb_add(r,"/SummaryInformation",jc(n,Bs.SI,c,_f)),(e.length||a.length)&&ut.utils.cfb_add(r,"/DocumentSummaryInformation",jc(e,Bs.DSI,h,yf,a.length?a:null,Bs.UDI))}function I0(t,r){r||(r={}),yl(r),Wf(),r.codepage&&$f(r.codepage);var e,n;if(t.FullPaths){if(ut.find(t,"/encryption"))throw new Error("File is password-protected");e=ut.find(t,"!CompObj"),n=ut.find(t,"/Workbook")||ut.find(t,"/Book")}else{switch(r.type){case"base64":t=tn(nn(t));break;case"binary":t=tn(t);break;case"buffer":break;case"array":Array.isArray(t)||(t=Array.prototype.slice.call(t));break}kr(t,0),n={content:t}}var i,s;if(e&&k3(e),r.bookProps&&!r.bookSheets)i={};else{var o=St?"buffer":"array";if(n&&n.content)i=F3(n.content,r);else if((s=ut.find(t,"PerfectOffice_MAIN"))&&s.content)i=Ni.to_workbook(s.content,(r.type=o,r));else if((s=ut.find(t,"NativeContent_MAIN"))&&s.content)i=Ni.to_workbook(s.content,(r.type=o,r));else throw(s=ut.find(t,"MN0"))&&s.content?new Error("Unsupported Works 4 for Mac file"):new Error("Cannot find Workbook stream");r.bookVBA&&t.FullPaths&&ut.find(t,"/_VBA_PROJECT_CUR/VBA/dir")&&(i.vbaraw=Wb(t))}var h={};return t.FullPaths&&R3(t,h,r),i.Props=i.Custprops=h,r.bookFiles&&(i.cfb=t),i}function O3(t,r){var e=r||{},n=ut.utils.cfb_new({root:"R"}),i="/Workbook";switch(e.bookType||"xls"){case"xls":e.bookType="biff8";case"xla":e.bookType||(e.bookType="xla");case"biff8":i="/Workbook",e.biff=8;break;case"biff5":i="/Book",e.biff=5;break;default:throw new Error("invalid type "+e.bookType+" for XLS CFB")}return ut.utils.cfb_add(n,i,D0(t,e)),e.biff==8&&(t.Props||t.Custprops)&&M3(t,n),e.biff==8&&t.vbaraw&&Xb(n,ut.read(t.vbaraw,{type:typeof t.vbaraw=="string"?"binary":"buffer"})),n}var Ys={0:{f:r_},1:{f:c_},2:{f:F_},3:{f:x_},4:{f:p_},5:{f:k_},6:{f:D_},7:{f:__},8:{f:H_},9:{f:U_},10:{f:L_},11:{f:j_},12:{f:u_},13:{f:M_},14:{f:w_},15:{f:g_},16:{f:S0},17:{f:P_},18:{f:T_},19:{f:rl},20:{},21:{},22:{},23:{},24:{},25:{},26:{},27:{},28:{},29:{},30:{},31:{},32:{},33:{},34:{},35:{T:1},36:{T:-1},37:{T:1},38:{T:-1},39:{f:P4},40:{},42:{},43:{f:D2},44:{f:O2},45:{f:B2},46:{f:j2},47:{f:L2},48:{},49:{f:sg},50:{},51:{f:bb},52:{T:1},53:{T:-1},54:{T:1},55:{T:-1},56:{T:1},57:{T:-1},58:{},59:{},60:{f:Yu},62:{f:I_},63:{f:Ab},64:{f:n4},65:{},66:{},67:{},68:{},69:{},70:{},128:{},129:{T:1},130:{T:-1},131:{T:1,f:Lr,p:0},132:{T:-1},133:{T:1},134:{T:-1},135:{T:1},136:{T:-1},137:{T:1,f:q_},138:{T:-1},139:{T:1},140:{T:-1},141:{T:1},142:{T:-1},143:{T:1},144:{T:-1},145:{T:1},146:{T:-1},147:{f:f_},148:{f:s_,p:16},151:{f:G_},152:{},153:{f:I4},154:{},155:{},156:{f:M4},157:{},158:{},159:{T:1,f:Yx},160:{T:-1},161:{T:1,f:Yi},162:{T:-1},163:{T:1},164:{T:-1},165:{T:1},166:{T:-1},167:{},168:{},169:{},170:{},171:{},172:{T:1},173:{T:-1},174:{},175:{},176:{f:z_},177:{T:1},178:{T:-1},179:{T:1},180:{T:-1},181:{T:1},182:{T:-1},183:{T:1},184:{T:-1},185:{T:1},186:{T:-1},187:{T:1},188:{T:-1},189:{T:1},190:{T:-1},191:{T:1},192:{T:-1},193:{T:1},194:{T:-1},195:{T:1},196:{T:-1},197:{T:1},198:{T:-1},199:{T:1},200:{T:-1},201:{T:1},202:{T:-1},203:{T:1},204:{T:-1},205:{T:1},206:{T:-1},207:{T:1},208:{T:-1},209:{T:1},210:{T:-1},211:{T:1},212:{T:-1},213:{T:1},214:{T:-1},215:{T:1},216:{T:-1},217:{T:1},218:{T:-1},219:{T:1},220:{T:-1},221:{T:1},222:{T:-1},223:{T:1},224:{T:-1},225:{T:1},226:{T:-1},227:{T:1},228:{T:-1},229:{T:1},230:{T:-1},231:{T:1},232:{T:-1},233:{T:1},234:{T:-1},235:{T:1},236:{T:-1},237:{T:1},238:{T:-1},239:{T:1},240:{T:-1},241:{T:1},242:{T:-1},243:{T:1},244:{T:-1},245:{T:1},246:{T:-1},247:{T:1},248:{T:-1},249:{T:1},250:{T:-1},251:{T:1},252:{T:-1},253:{T:1},254:{T:-1},255:{T:1},256:{T:-1},257:{T:1},258:{T:-1},259:{T:1},260:{T:-1},261:{T:1},262:{T:-1},263:{T:1},264:{T:-1},265:{T:1},266:{T:-1},267:{T:1},268:{T:-1},269:{T:1},270:{T:-1},271:{T:1},272:{T:-1},273:{T:1},274:{T:-1},275:{T:1},276:{T:-1},277:{},278:{T:1},279:{T:-1},280:{T:1},281:{T:-1},282:{T:1},283:{T:1},284:{T:-1},285:{T:1},286:{T:-1},287:{T:1},288:{T:-1},289:{T:1},290:{T:-1},291:{T:1},292:{T:-1},293:{T:1},294:{T:-1},295:{T:1},296:{T:-1},297:{T:1},298:{T:-1},299:{T:1},300:{T:-1},301:{T:1},302:{T:-1},303:{T:1},304:{T:-1},305:{T:1},306:{T:-1},307:{T:1},308:{T:-1},309:{T:1},310:{T:-1},311:{T:1},312:{T:-1},313:{T:-1},314:{T:1},315:{T:-1},316:{T:1},317:{T:-1},318:{T:1},319:{T:-1},320:{T:1},321:{T:-1},322:{T:1},323:{T:-1},324:{T:1},325:{T:-1},326:{T:1},327:{T:-1},328:{T:1},329:{T:-1},330:{T:1},331:{T:-1},332:{T:1},333:{T:-1},334:{T:1},335:{f:vb},336:{T:-1},337:{f:_b,T:1},338:{T:-1},339:{T:1},340:{T:-1},341:{T:1},342:{T:-1},343:{T:1},344:{T:-1},345:{T:1},346:{T:-1},347:{T:1},348:{T:-1},349:{T:1},350:{T:-1},351:{},352:{},353:{T:1},354:{T:-1},355:{f:wf},357:{},358:{},359:{},360:{T:1},361:{},362:{f:Ku},363:{},364:{},366:{},367:{},368:{},369:{},370:{},371:{},372:{T:1},373:{T:-1},374:{T:1},375:{T:-1},376:{T:1},377:{T:-1},378:{T:1},379:{T:-1},380:{T:1},381:{T:-1},382:{T:1},383:{T:-1},384:{T:1},385:{T:-1},386:{T:1},387:{T:-1},388:{T:1},389:{T:-1},390:{T:1},391:{T:-1},392:{T:1},393:{T:-1},394:{T:1},395:{T:-1},396:{},397:{},398:{},399:{},400:{},401:{T:1},403:{},404:{},405:{},406:{},407:{},408:{},409:{},410:{},411:{},412:{},413:{},414:{},415:{},416:{},417:{},418:{},419:{},420:{},421:{},422:{T:1},423:{T:1},424:{T:-1},425:{T:-1},426:{f:K_},427:{f:Y_},428:{},429:{T:1},430:{T:-1},431:{T:1},432:{T:-1},433:{T:1},434:{T:-1},435:{T:1},436:{T:-1},437:{T:1},438:{T:-1},439:{T:1},440:{T:-1},441:{T:1},442:{T:-1},443:{T:1},444:{T:-1},445:{T:1},446:{T:-1},447:{T:1},448:{T:-1},449:{T:1},450:{T:-1},451:{T:1},452:{T:-1},453:{T:1},454:{T:-1},455:{T:1},456:{T:-1},457:{T:1},458:{T:-1},459:{T:1},460:{T:-1},461:{T:1},462:{T:-1},463:{T:1},464:{T:-1},465:{T:1},466:{T:-1},467:{T:1},468:{T:-1},469:{T:1},470:{T:-1},471:{},472:{},473:{T:1},474:{T:-1},475:{},476:{f:J_},477:{},478:{},479:{T:1},480:{T:-1},481:{T:1},482:{T:-1},483:{T:1},484:{T:-1},485:{f:o_},486:{T:1},487:{T:-1},488:{T:1},489:{T:-1},490:{T:1},491:{T:-1},492:{T:1},493:{T:-1},494:{f:X_},495:{T:1},496:{T:-1},497:{T:1},498:{T:-1},499:{},500:{T:1},501:{T:-1},502:{T:1},503:{T:-1},504:{},505:{T:1},506:{T:-1},507:{},508:{T:1},509:{T:-1},510:{T:1},511:{T:-1},512:{},513:{},514:{T:1},515:{T:-1},516:{T:1},517:{T:-1},518:{T:1},519:{T:-1},520:{T:1},521:{T:-1},522:{},523:{},524:{},525:{},526:{},527:{},528:{T:1},529:{T:-1},530:{T:1},531:{T:-1},532:{T:1},533:{T:-1},534:{},535:{},536:{},537:{},538:{T:1},539:{T:-1},540:{T:1},541:{T:-1},542:{T:1},548:{},549:{},550:{f:wf},551:{},552:{},553:{},554:{T:1},555:{T:-1},556:{T:1},557:{T:-1},558:{T:1},559:{T:-1},560:{T:1},561:{T:-1},562:{},564:{},565:{T:1},566:{T:-1},569:{T:1},570:{T:-1},572:{},573:{T:1},574:{T:-1},577:{},578:{},579:{},580:{},581:{},582:{},583:{},584:{},585:{},586:{},587:{},588:{T:-1},589:{},590:{T:1},591:{T:-1},592:{T:1},593:{T:-1},594:{T:1},595:{T:-1},596:{},597:{T:1},598:{T:-1},599:{T:1},600:{T:-1},601:{T:1},602:{T:-1},603:{T:1},604:{T:-1},605:{T:1},606:{T:-1},607:{},608:{T:1},609:{T:-1},610:{},611:{T:1},612:{T:-1},613:{T:1},614:{T:-1},615:{T:1},616:{T:-1},617:{T:1},618:{T:-1},619:{T:1},620:{T:-1},625:{},626:{T:1},627:{T:-1},628:{T:1},629:{T:-1},630:{T:1},631:{T:-1},632:{f:jb},633:{T:1},634:{T:-1},635:{T:1,f:Bb},636:{T:-1},637:{f:lg},638:{T:1},639:{},640:{T:-1},641:{T:1},642:{T:-1},643:{T:1},644:{},645:{T:-1},646:{T:1},648:{T:1},649:{},650:{T:-1},651:{f:w4},652:{},653:{T:1},654:{T:-1},655:{T:1},656:{T:-1},657:{T:1},658:{T:-1},659:{},660:{T:1},661:{},662:{T:-1},663:{},664:{T:1},665:{},666:{T:-1},667:{},668:{},669:{},671:{T:1},672:{T:-1},673:{T:1},674:{T:-1},675:{},676:{},677:{},678:{},679:{},680:{},681:{},1024:{},1025:{},1026:{T:1},1027:{T:-1},1028:{T:1},1029:{T:-1},1030:{},1031:{T:1},1032:{T:-1},1033:{T:1},1034:{T:-1},1035:{},1036:{},1037:{},1038:{T:1},1039:{T:-1},1040:{},1041:{T:1},1042:{T:-1},1043:{},1044:{},1045:{},1046:{T:1},1047:{T:-1},1048:{T:1},1049:{T:-1},1050:{},1051:{T:1},1052:{T:1},1053:{f:i4},1054:{T:1},1055:{},1056:{T:1},1057:{T:-1},1058:{T:1},1059:{T:-1},1061:{},1062:{T:1},1063:{T:-1},1064:{T:1},1065:{T:-1},1066:{T:1},1067:{T:-1},1068:{T:1},1069:{T:-1},1070:{T:1},1071:{T:-1},1072:{T:1},1073:{T:-1},1075:{T:1},1076:{T:-1},1077:{T:1},1078:{T:-1},1079:{T:1},1080:{T:-1},1081:{T:1},1082:{T:-1},1083:{T:1},1084:{T:-1},1085:{},1086:{T:1},1087:{T:-1},1088:{T:1},1089:{T:-1},1090:{T:1},1091:{T:-1},1092:{T:1},1093:{T:-1},1094:{T:1},1095:{T:-1},1096:{},1097:{T:1},1098:{},1099:{T:-1},1100:{T:1},1101:{T:-1},1102:{},1103:{},1104:{},1105:{},1111:{},1112:{},1113:{T:1},1114:{T:-1},1115:{T:1},1116:{T:-1},1117:{},1118:{T:1},1119:{T:-1},1120:{T:1},1121:{T:-1},1122:{T:1},1123:{T:-1},1124:{T:1},1125:{T:-1},1126:{},1128:{T:1},1129:{T:-1},1130:{},1131:{T:1},1132:{T:-1},1133:{T:1},1134:{T:-1},1135:{T:1},1136:{T:-1},1137:{T:1},1138:{T:-1},1139:{T:1},1140:{T:-1},1141:{},1142:{T:1},1143:{T:-1},1144:{T:1},1145:{T:-1},1146:{},1147:{T:1},1148:{T:-1},1149:{T:1},1150:{T:-1},1152:{T:1},1153:{T:-1},1154:{T:-1},1155:{T:-1},1156:{T:-1},1157:{T:1},1158:{T:-1},1159:{T:1},1160:{T:-1},1161:{T:1},1162:{T:-1},1163:{T:1},1164:{T:-1},1165:{T:1},1166:{T:-1},1167:{T:1},1168:{T:-1},1169:{T:1},1170:{T:-1},1171:{},1172:{T:1},1173:{T:-1},1177:{},1178:{T:1},1180:{},1181:{},1182:{},2048:{T:1},2049:{T:-1},2050:{},2051:{T:1},2052:{T:-1},2053:{},2054:{},2055:{T:1},2056:{T:-1},2057:{T:1},2058:{T:-1},2060:{},2067:{},2068:{T:1},2069:{T:-1},2070:{},2071:{},2072:{T:1},2073:{T:-1},2075:{},2076:{},2077:{T:1},2078:{T:-1},2079:{},2080:{T:1},2081:{T:-1},2082:{},2083:{T:1},2084:{T:-1},2085:{T:1},2086:{T:-1},2087:{T:1},2088:{T:-1},2089:{T:1},2090:{T:-1},2091:{},2092:{},2093:{T:1},2094:{T:-1},2095:{},2096:{T:1},2097:{T:-1},2098:{T:1},2099:{T:-1},2100:{T:1},2101:{T:-1},2102:{},2103:{T:1},2104:{T:-1},2105:{},2106:{T:1},2107:{T:-1},2108:{},2109:{T:1},2110:{T:-1},2111:{T:1},2112:{T:-1},2113:{T:1},2114:{T:-1},2115:{},2116:{},2117:{},2118:{T:1},2119:{T:-1},2120:{},2121:{T:1},2122:{T:-1},2123:{T:1},2124:{T:-1},2125:{},2126:{T:1},2127:{T:-1},2128:{},2129:{T:1},2130:{T:-1},2131:{T:1},2132:{T:-1},2133:{T:1},2134:{},2135:{},2136:{},2137:{T:1},2138:{T:-1},2139:{T:1},2140:{T:-1},2141:{},3072:{},3073:{},4096:{T:1},4097:{T:-1},5002:{T:1},5003:{T:-1},5081:{T:1},5082:{T:-1},5083:{},5084:{T:1},5085:{T:-1},5086:{T:1},5087:{T:-1},5088:{},5089:{},5090:{},5092:{T:1},5093:{T:-1},5094:{},5095:{T:1},5096:{T:-1},5097:{},5099:{},65535:{n:""}},Af={6:{f:Zo},10:{f:fi},12:{f:hr},13:{f:hr},14:{f:sr},15:{f:sr},16:{f:Nr},17:{f:sr},18:{f:sr},19:{f:hr},20:{f:Xc},21:{f:Xc},23:{f:Ku},24:{f:Gc},25:{f:sr},26:{},27:{},28:{f:ix},29:{},34:{f:sr},35:{f:Vc},38:{f:Nr},39:{f:Nr},40:{f:Nr},41:{f:Nr},42:{f:sr},43:{f:sr},47:{f:g2},49:{f:Mv},51:{f:hr},60:{},61:{f:kv},64:{f:sr},65:{f:Rv},66:{f:hr},77:{},80:{},81:{},82:{},85:{f:hr},89:{},90:{},91:{},92:{f:mv},93:{f:ox},94:{},95:{f:sr},96:{},97:{},99:{f:sr},125:{f:Yu},128:{f:Vv},129:{f:vv},130:{f:hr},131:{f:sr},132:{f:sr},133:{f:xv},134:{},140:{f:mx},141:{f:hr},144:{},146:{f:xx},151:{},152:{},153:{},154:{},155:{},156:{f:hr},157:{},158:{},160:{f:Sx},161:{f:yx},174:{},175:{},176:{},177:{},178:{},180:{},181:{},182:{},184:{},185:{},189:{f:zv},190:{f:$v},193:{f:fi},197:{},198:{},199:{},200:{},201:{},202:{f:sr},203:{},204:{},205:{},206:{},207:{},208:{},209:{},210:{},211:{},213:{},215:{},216:{},217:{},218:{f:hr},220:{},221:{f:sr},222:{},224:{f:Xv},225:{f:pv},226:{f:fi},227:{},229:{f:sx},233:{},235:{},236:{},237:{},239:{},240:{},241:{},242:{},244:{},245:{},246:{},247:{},248:{},249:{},251:{},252:{f:wv},253:{f:Iv},255:{f:_v},256:{},259:{},290:{},311:{},312:{},315:{},317:{f:ju},318:{},319:{},320:{},330:{},331:{},333:{},334:{},335:{},336:{},337:{},338:{},339:{},340:{},351:{},352:{f:sr},353:{f:fi},401:{},402:{},403:{},404:{},405:{},406:{},407:{},408:{},425:{},426:{},427:{},428:{},429:{},430:{f:Jv},431:{f:sr},432:{},433:{},434:{},437:{},438:{f:cx},439:{f:sr},440:{f:hx},441:{},442:{f:ia},443:{},444:{f:hr},445:{},446:{},448:{f:fi},449:{f:Sv,r:2},450:{f:fi},512:{f:zc},513:{f:Tx},515:{f:Yv},516:{f:Nv},517:{f:Wc},519:{f:kx},520:{f:Ev},523:{},545:{f:Kc},549:{f:Hc},566:{},574:{f:Av},638:{f:Hv},659:{},1048:{},1054:{f:Bv},1084:{},1212:{f:tx},2048:{f:dx},2049:{},2050:{},2051:{},2052:{},2053:{},2054:{},2055:{},2056:{},2057:{f:Pa},2058:{},2059:{},2060:{},2061:{},2062:{},2063:{},2064:{},2066:{},2067:{},2128:{},2129:{},2130:{},2131:{},2132:{},2133:{},2134:{},2135:{},2136:{},2137:{},2138:{},2146:{},2147:{r:12},2148:{},2149:{},2150:{},2151:{f:fi},2152:{},2154:{},2155:{},2156:{},2161:{},2162:{},2164:{},2165:{},2166:{},2167:{},2168:{},2169:{},2170:{},2171:{},2172:{f:bx,r:12},2173:{f:mb,r:12},2174:{},2175:{},2180:{},2181:{},2182:{},2183:{},2184:{},2185:{},2186:{},2187:{},2188:{f:sr,r:12},2189:{},2190:{r:12},2191:{},2192:{},2194:{},2195:{},2196:{f:ex,r:12},2197:{},2198:{f:lb,r:12},2199:{},2200:{},2201:{},2202:{f:rx,r:12},2203:{f:fi},2204:{},2205:{},2206:{},2207:{},2211:{f:Tv},2212:{},2213:{},2214:{},2215:{},4097:{},4098:{},4099:{},4102:{},4103:{},4105:{},4106:{},4107:{},4108:{},4109:{},4116:{},4117:{},4118:{},4119:{},4120:{},4121:{},4122:{},4123:{},4124:{},4125:{},4126:{},4127:{},4128:{},4129:{},4130:{},4132:{},4133:{},4134:{f:hr},4135:{},4146:{},4147:{},4148:{},4149:{},4154:{},4156:{},4157:{},4158:{},4159:{},4160:{},4161:{},4163:{},4164:{f:_x},4165:{},4166:{},4168:{},4170:{},4171:{},4174:{},4175:{},4176:{},4177:{},4187:{},4188:{f:vx},4189:{},4191:{},4192:{},4193:{},4194:{},4195:{},4196:{},4197:{},4198:{},4199:{},4200:{},0:{f:zc},1:{},2:{f:Mx},3:{f:Fx},4:{f:Ax},5:{f:Wc},7:{f:Ix},8:{},9:{f:Pa},11:{},22:{f:hr},30:{f:jv},31:{},32:{},33:{f:Kc},36:{},37:{f:Hc},50:{f:Dx},62:{},52:{},67:{},68:{f:hr},69:{},86:{},126:{},127:{f:Cx},135:{},136:{},137:{},145:{},148:{},149:{},150:{},169:{},171:{},188:{},191:{},192:{},194:{},195:{},214:{f:Nx},223:{},234:{},354:{},421:{},518:{f:Zo},521:{f:Pa},536:{f:Gc},547:{f:Vc},561:{},579:{},1030:{f:Zo},1033:{f:Pa},1091:{},2157:{},2163:{},2177:{},2240:{},2241:{},2242:{},2243:{},2244:{},2245:{},2246:{},2247:{},2248:{},2249:{},2250:{},2251:{},2262:{r:12},29282:{}};function qe(t,r,e,n){var i=r;if(!isNaN(i)){var s=n||(e||[]).length||0,o=t.next(4);o.write_shift(2,i),o.write_shift(2,s),s>0&&tl(e)&&t.push(e)}}function I3(t,r,e,n){var i=n||(e||[]).length||0;if(i<=8224)return qe(t,r,e,i);var s=r;if(!isNaN(s)){for(var o=e.parts||[],h=0,c=0,a=0;a+(o[h]||8224)<=8224;)a+=o[h]||8224,h++;var f=t.next(4);for(f.write_shift(2,s),f.write_shift(2,a),t.push(e.slice(c,c+a)),c+=a;c=0&&i<65536?qe(t,2,Ox(e,n,i)):qe(t,3,Rx(e,n,i));return;case"b":case"e":qe(t,5,D3(e,n,r.v,r.t));return;case"s":case"str":qe(t,4,N3(e,n,(r.v||"").slice(0,255)));return}qe(t,1,fa(null,e,n))}function B3(t,r,e,n){var i=Array.isArray(r),s=Lt(r["!ref"]||"A1"),o,h="",c=[];if(s.e.c>255||s.e.r>16383){if(n.WTF)throw new Error("Range "+(r["!ref"]||"A1")+" exceeds format limit A1:IV16384");s.e.c=Math.min(s.e.c,255),s.e.r=Math.min(s.e.c,16383),o=Rt(s)}for(var a=s.s.r;a<=s.e.r;++a){h=Er(a);for(var f=s.s.c;f<=s.e.c;++f){a===s.s.r&&(c[f]=dr(f)),o=c[f]+h;var l=i?(r[a]||[])[f]:r[o];l&&P3(t,l,a,f)}}}function L3(t,r){for(var e=r||{},n=Jr(),i=0,s=0;s255||p.e.r>=m){if(r.WTF)throw new Error("Range "+(s["!ref"]||"A1")+" exceeds format limit A1:IV16384");p.e.c=Math.min(p.e.c,255),p.e.r=Math.min(p.e.c,m-1)}qe(n,2057,ll(e,16,r)),qe(n,13,un(1)),qe(n,12,un(100)),qe(n,15,Wr(!0)),qe(n,17,Wr(!1)),qe(n,16,Ui(.001)),qe(n,95,Wr(!0)),qe(n,42,Wr(!1)),qe(n,43,Wr(!1)),qe(n,130,un(1)),qe(n,128,Gv([0,0])),qe(n,131,Wr(!1)),qe(n,132,Wr(!1)),a&&W3(n,s["!cols"]),qe(n,512,Uv(p,r)),a&&(s["!links"]=[]);for(var d=p.s.r;d<=p.e.r;++d){l=Er(d);for(var v=p.s.c;v<=p.e.c;++v){d===p.s.r&&(u[v]=dr(v)),f=u[v]+l;var x=c?(s[d]||[])[v]:s[f];x&&(X3(n,x,d,v,r),a&&x.l&&s["!links"].push([f,x.l]))}}var g=h.CodeName||h.name||i;return a&&qe(n,574,Fv((o.Views||[])[0])),a&&(s["!merges"]||[]).length&&qe(n,229,ax(s["!merges"])),a&&$3(n,s),qe(n,442,Hu(g)),a&&H3(n,s),qe(n,10),n.end()}function G3(t,r,e){var n=Jr(),i=(t||{}).Workbook||{},s=i.Sheets||[],o=i.WBProps||{},h=e.biff==8,c=e.biff==5;if(qe(n,2057,ll(t,5,e)),e.bookType=="xla"&&qe(n,135),qe(n,225,h?un(1200):null),qe(n,193,Kg(2)),c&&qe(n,191),c&&qe(n,192),qe(n,226),qe(n,92,gv("SheetJS",e)),qe(n,66,un(h?1200:1252)),h&&qe(n,353,un(0)),h&&qe(n,448),qe(n,317,Ex(t.SheetNames.length)),h&&t.vbaraw&&qe(n,211),h&&t.vbaraw){var a=o.CodeName||"ThisWorkbook";qe(n,442,Hu(a))}qe(n,156,un(17)),qe(n,25,Wr(!1)),qe(n,18,Wr(!1)),qe(n,19,un(0)),h&&qe(n,431,Wr(!1)),h&&qe(n,444,un(0)),qe(n,61,Cv()),qe(n,64,Wr(!1)),qe(n,141,un(0)),qe(n,34,Wr(S4(t)=="true")),qe(n,14,Wr(!0)),h&&qe(n,439,Wr(!1)),qe(n,218,un(0)),j3(n,t,e),U3(n,t.SSF,e),z3(n,e),h&&qe(n,352,Wr(!1));var f=n.end(),l=Jr();h&&qe(l,140,gx()),h&&e.Strings&&I3(l,252,yv(e.Strings)),qe(l,10);var u=l.end(),p=Jr(),m=0,d=0;for(d=0;d255&&typeof console<"u"&&console.error&&console.error("Worksheet '"+t.SheetNames[e]+"' extends beyond column IV (255). Data may be lost.")}}var s=r||{};switch(s.biff||2){case 8:case 5:return K3(t,r);case 4:case 3:case 2:return L3(t,r)}throw new Error("invalid type "+s.bookType+" for BIFF")}function ih(t,r){var e=r||{},n=e.dense?[]:{};t=t.replace(//g,"");var i=t.match(/");var s=t.match(/<\/table/i),o=i.index,h=s&&s.index||t.length,c=Om(t.slice(o,h),/(:?]*>)/i,""),a=-1,f=0,l=0,u=0,p={s:{r:1e7,c:1e7},e:{r:0,c:0}},m=[];for(o=0;o/i);for(h=0;h"))>-1;)b=b.slice(w+1);for(var y=0;y")));u=C.colspan?+C.colspan:1,((l=+C.rowspan)>1||u>1)&&m.push({s:{r:a,c:f},e:{r:a+(l||1)-1,c:f+u-1}});var M=C.t||C["data-t"]||"";if(!b.length){f+=u;continue}if(b=Hm(b),p.s.r>a&&(p.s.r=a),p.e.rf&&(p.s.c=f),p.e.ce||i[a].s.c>o)&&!(i[a].e.r1&&(p.rowspan=h),c>1&&(p.colspan=c),n.editable?u=''+u+"":l&&(p["data-t"]=l&&l.t||"z",l.v!=null&&(p["data-v"]=l.v),l.z!=null&&(p["data-z"]=l.z),l.l&&(l.l.Target||"#").charAt(0)!="#"&&(u=''+u+"")),p.id=(n.id||"sjs")+"-"+f,s.push(Qe("td",u,p))}}var m="";return m+s.join("")+""}var Z3='SheetJS Table Export',J3="";function Q3(t,r){var e=t.match(/[\s\S]*?<\/table>/gi);if(!e||e.length==0)throw new Error("Invalid HTML: could not find
");if(e.length==1)return Xi(ih(e[0],r),r);var n=$0();return e.forEach(function(i,s){W0(n,ih(i,r),"Sheet"+(s+1))}),n}function q3(t,r,e){var n=[];return n.join("")+""}function e6(t,r){var e=r||{},n=e.header!=null?e.header:Z3,i=e.footer!=null?e.footer:J3,s=[n],o=mn(t["!ref"]);e.dense=Array.isArray(t),s.push(q3(t,o,e));for(var h=o.s.r;h<=o.e.r;++h)s.push(Y3(t,o,h,e));return s.push("
"+i),s.join("")}function t6(t){var r=t.replace(/[\t\r\n]/g," ").trim().replace(/ +/g," ").replace(//g," ").replace(//g,function(n,i){return Array(parseInt(i,10)+1).join(" ")}).replace(/]*\/>/g," ").replace(//g,` +`),e=Pt(r.replace(/<[^>]*>/g,""));return[e]}var sh={day:["d","dd"],month:["m","mm"],year:["y","yy"],hours:["h","hh"],minutes:["m","mm"],seconds:["s","ss"],"am-pm":["A/P","AM/PM"],"day-of-week":["ddd","dddd"],era:["e","ee"],quarter:["\\Qm",'m\\"th quarter"']};function N0(t,r){var e=r||{},n=qf(t),i=[],s,o,h={name:""},c="",a=0,f,l,u={},p=[],m=e.dense?[]:{},d,v,x={value:""},g="",b=0,w=[],y=-1,T=-1,C={s:{r:1e6,c:1e7},e:{r:0,c:0}},M=0,I={},B=[],U={},j=0,H=0,G=[],L=1,R=1,F=[],_={Names:[]},k={},N=["",""],P=[],D={},A="",S=0,E=!1,O=!1,z=0;for($s.lastIndex=0,n=n.replace(//mg,"").replace(//gm,"");d=$s.exec(n);)switch(d[3]=d[3].replace(/_.*$/,"")){case"table":case"工作表":d[1]==="/"?(C.e.c>=C.s.c&&C.e.r>=C.s.r?m["!ref"]=Rt(C):m["!ref"]="A1:A1",e.sheetRows>0&&e.sheetRows<=C.e.r&&(m["!fullref"]=m["!ref"],C.e.r=e.sheetRows-1,m["!ref"]=Rt(C)),B.length&&(m["!merges"]=B),G.length&&(m["!rows"]=G),f.name=f.名称||f.name,typeof JSON<"u"&&JSON.stringify(f),p.push(f.name),u[f.name]=m,O=!1):d[0].charAt(d[0].length-2)!=="/"&&(f=bt(d[0],!1),y=T=-1,C.s.r=C.s.c=1e7,C.e.r=C.e.c=0,m=e.dense?[]:{},B=[],G=[],O=!0);break;case"table-row-group":d[1]==="/"?--M:++M;break;case"table-row":case"行":if(d[1]==="/"){y+=L,L=1;break}if(l=bt(d[0],!1),l.行号?y=l.行号-1:y==-1&&(y=0),L=+l["number-rows-repeated"]||1,L<10)for(z=0;z0&&(G[y+z]={level:M});T=-1;break;case"covered-table-cell":d[1]!=="/"&&++T,e.sheetStubs&&(e.dense?(m[y]||(m[y]=[]),m[y][T]={t:"z"}):m[yt({r:y,c:T})]={t:"z"}),g="",w=[];break;case"table-cell":case"数据":if(d[0].charAt(d[0].length-2)==="/")++T,x=bt(d[0],!1),R=parseInt(x["number-columns-repeated"]||"1",10),v={t:"z",v:null},x.formula&&e.cellFormula!=!1&&(v.f=th(Pt(x.formula))),(x.数据类型||x["value-type"])=="string"&&(v.t="s",v.v=Pt(x["string-value"]||""),e.dense?(m[y]||(m[y]=[]),m[y][T]=v):m[yt({r:y,c:T})]=v),T+=R-1;else if(d[1]!=="/"){++T,g="",b=0,w=[],R=1;var J=L?y+L-1:y;if(T>C.e.c&&(C.e.c=T),TC.e.r&&(C.e.r=J),x=bt(d[0],!1),P=[],D={},v={t:x.数据类型||x["value-type"],v:null},e.cellFormula)if(x.formula&&(x.formula=Pt(x.formula)),x["number-matrix-columns-spanned"]&&x["number-matrix-rows-spanned"]&&(j=parseInt(x["number-matrix-rows-spanned"],10)||0,H=parseInt(x["number-matrix-columns-spanned"],10)||0,U={s:{r:y,c:T},e:{r:y+j-1,c:T+H-1}},v.F=Rt(U),F.push([U,v.F])),x.formula)v.f=th(x.formula);else for(z=0;z=F[z][0].s.r&&y<=F[z][0].e.r&&T>=F[z][0].s.c&&T<=F[z][0].e.c&&(v.F=F[z][1]);switch((x["number-columns-spanned"]||x["number-rows-spanned"])&&(j=parseInt(x["number-rows-spanned"],10)||0,H=parseInt(x["number-columns-spanned"],10)||0,U={s:{r:y,c:T},e:{r:y+j-1,c:T+H-1}},B.push(U)),x["number-columns-repeated"]&&(R=parseInt(x["number-columns-repeated"],10)),v.t){case"boolean":v.t="b",v.v=Yt(x["boolean-value"]);break;case"float":v.t="n",v.v=parseFloat(x.value);break;case"percentage":v.t="n",v.v=parseFloat(x.value);break;case"currency":v.t="n",v.v=parseFloat(x.value);break;case"date":v.t="d",v.v=qt(x["date-value"]),e.cellDates||(v.t="n",v.v=Ar(v.v)),v.z="m/d/yy";break;case"time":v.t="n",v.v=Fm(x["time-value"])/86400,e.cellDates&&(v.t="d",v.v=xo(v.v)),v.z="HH:MM:SS";break;case"number":v.t="n",v.v=parseFloat(x.数据数值);break;default:if(v.t==="string"||v.t==="text"||!v.t)v.t="s",x["string-value"]!=null&&(g=Pt(x["string-value"]),w=[]);else throw new Error("Unsupported value type "+v.t)}}else{if(E=!1,v.t==="s"&&(v.v=g||"",w.length&&(v.R=w),E=b==0),k.Target&&(v.l=k),P.length>0&&(v.c=P,P=[]),g&&e.cellText!==!1&&(v.w=g),E&&(v.t="z",delete v.v),(!E||e.sheetStubs)&&!(e.sheetRows&&e.sheetRows<=y))for(var re=0;re0;)m[y+re][T+R]=Zt(v);else for(m[yt({r:y+re,c:T})]=v;--R>0;)m[yt({r:y+re,c:T+R})]=Zt(v);C.e.c<=T&&(C.e.c=T)}R=parseInt(x["number-columns-repeated"]||"1",10),T+=R-1,R=0,v={},g="",w=[]}k={};break;case"document":case"document-content":case"电子表格文档":case"spreadsheet":case"主体":case"scripts":case"styles":case"font-face-decls":case"master-styles":if(d[1]==="/"){if((s=i.pop())[0]!==d[3])throw"Bad state: "+s}else d[0].charAt(d[0].length-2)!=="/"&&i.push([d[3],!0]);break;case"annotation":if(d[1]==="/"){if((s=i.pop())[0]!==d[3])throw"Bad state: "+s;D.t=g,w.length&&(D.R=w),D.a=A,P.push(D)}else d[0].charAt(d[0].length-2)!=="/"&&i.push([d[3],!1]);A="",S=0,g="",b=0,w=[];break;case"creator":d[1]==="/"?A=n.slice(S,d.index):S=d.index+d[0].length;break;case"meta":case"元数据":case"settings":case"config-item-set":case"config-item-map-indexed":case"config-item-map-entry":case"config-item-map-named":case"shapes":case"frame":case"text-box":case"image":case"data-pilot-tables":case"list-style":case"form":case"dde-links":case"event-listeners":case"chart":if(d[1]==="/"){if((s=i.pop())[0]!==d[3])throw"Bad state: "+s}else d[0].charAt(d[0].length-2)!=="/"&&i.push([d[3],!1]);g="",b=0,w=[];break;case"scientific-number":break;case"currency-symbol":break;case"currency-style":break;case"number-style":case"percentage-style":case"date-style":case"time-style":if(d[1]==="/"){if(I[h.name]=c,(s=i.pop())[0]!==d[3])throw"Bad state: "+s}else d[0].charAt(d[0].length-2)!=="/"&&(c="",h=bt(d[0],!1),i.push([d[3],!0]));break;case"script":break;case"libraries":break;case"automatic-styles":break;case"default-style":case"page-layout":break;case"style":break;case"map":break;case"font-face":break;case"paragraph-properties":break;case"table-properties":break;case"table-column-properties":break;case"table-row-properties":break;case"table-cell-properties":break;case"number":switch(i[i.length-1][0]){case"time-style":case"date-style":o=bt(d[0],!1),c+=sh[d[3]][o.style==="long"?1:0];break}break;case"fraction":break;case"day":case"month":case"year":case"era":case"day-of-week":case"week-of-year":case"quarter":case"hours":case"minutes":case"seconds":case"am-pm":switch(i[i.length-1][0]){case"time-style":case"date-style":o=bt(d[0],!1),c+=sh[d[3]][o.style==="long"?1:0];break}break;case"boolean-style":break;case"boolean":break;case"text-style":break;case"text":if(d[0].slice(-2)==="/>")break;if(d[1]==="/")switch(i[i.length-1][0]){case"number-style":case"date-style":case"time-style":c+=n.slice(a,d.index);break}else a=d.index+d[0].length;break;case"named-range":o=bt(d[0],!1),N=Jo(o["cell-range-address"]);var se={Name:o.name,Ref:N[0]+"!"+N[1]};O&&(se.Sheet=p.length),_.Names.push(se);break;case"text-content":break;case"text-properties":break;case"embedded-text":break;case"body":case"电子表格":break;case"forms":break;case"table-column":break;case"table-header-rows":break;case"table-rows":break;case"table-column-group":break;case"table-header-columns":break;case"table-columns":break;case"null-date":break;case"graphic-properties":break;case"calculation-settings":break;case"named-expressions":break;case"label-range":break;case"label-ranges":break;case"named-expression":break;case"sort":break;case"sort-by":break;case"sort-groups":break;case"tab":break;case"line-break":break;case"span":break;case"p":case"文本串":if(["master-styles"].indexOf(i[i.length-1][0])>-1)break;if(d[1]==="/"&&(!x||!x["string-value"])){var Ce=t6(n.slice(b,d.index));g=(g.length>0?g+` +`:"")+Ce[0]}else bt(d[0],!1),b=d.index+d[0].length;break;case"s":break;case"database-range":if(d[1]==="/")break;try{N=Jo(bt(d[0])["target-range-address"]),u[N[0]]["!autofilter"]={ref:N[1]}}catch{}break;case"date":break;case"object":break;case"title":case"标题":break;case"desc":break;case"binary-data":break;case"table-source":break;case"scenario":break;case"iteration":break;case"content-validations":break;case"content-validation":break;case"help-message":break;case"error-message":break;case"database-ranges":break;case"filter":break;case"filter-and":break;case"filter-or":break;case"filter-condition":break;case"list-level-style-bullet":break;case"list-level-style-number":break;case"list-level-properties":break;case"sender-firstname":case"sender-lastname":case"sender-initials":case"sender-title":case"sender-position":case"sender-email":case"sender-phone-private":case"sender-fax":case"sender-company":case"sender-phone-work":case"sender-street":case"sender-city":case"sender-postal-code":case"sender-country":case"sender-state-or-province":case"author-name":case"author-initials":case"chapter":case"file-name":case"template-name":case"sheet-name":break;case"event-listener":break;case"initial-creator":case"creation-date":case"print-date":case"generator":case"document-statistic":case"user-defined":case"editing-duration":case"editing-cycles":break;case"config-item":break;case"page-number":break;case"page-count":break;case"time":break;case"cell-range-source":break;case"detective":break;case"operation":break;case"highlighted-range":break;case"data-pilot-table":case"source-cell-range":case"source-service":case"data-pilot-field":case"data-pilot-level":case"data-pilot-subtotals":case"data-pilot-subtotal":case"data-pilot-members":case"data-pilot-member":case"data-pilot-display-info":case"data-pilot-sort-info":case"data-pilot-layout-info":case"data-pilot-field-reference":case"data-pilot-groups":case"data-pilot-group":case"data-pilot-group-member":break;case"rect":break;case"dde-connection-decls":case"dde-connection-decl":case"dde-link":case"dde-source":break;case"properties":break;case"property":break;case"a":if(d[1]!=="/"){if(k=bt(d[0],!1),!k.href)break;k.Target=Pt(k.href),delete k.href,k.Target.charAt(0)=="#"&&k.Target.indexOf(".")>-1?(N=Jo(k.Target.slice(1)),k.Target="#"+N[0]+"!"+N[1]):k.Target.match(/^\.\.[\\\/]/)&&(k.Target=k.Target.slice(3))}break;case"table-protection":break;case"data-pilot-grand-total":break;case"office-document-common-attrs":break;default:switch(d[2]){case"dc:":case"calcext:":case"loext:":case"ooo:":case"chartooo:":case"draw:":case"style:":case"chart:":case"form:":case"uof:":case"表:":case"字:":break;default:if(e.WTF)throw new Error(d)}}var Y={Sheets:u,SheetNames:p,Workbook:_};return e.bookSheets&&delete Y.Sheets,Y}function ah(t,r){r=r||{},hn(t,"META-INF/manifest.xml")&&Fg(cr(t,"META-INF/manifest.xml"),r);var e=rn(t,"content.xml");if(!e)throw new Error("Missing content.xml in ODS / UOF file");var n=N0(Wt(e),r);return hn(t,"meta.xml")&&(n.Props=Au(cr(t,"meta.xml"))),n}function oh(t,r){return N0(t,r)}var r6=function(){var t=["",'',"",'',"",'',"",""].join(""),r=""+t+"";return function(){return fr+r}}(),fh=function(){var t=function(s){return $t(s).replace(/ +/g,function(o){return''}).replace(/\t/g,"").replace(/\n/g,"").replace(/^ /,"").replace(/ $/,"")},r=` +`,e=` +`,n=function(s,o,h){var c=[];c.push(' +`);var a=0,f=0,l=mn(s["!ref"]||"A1"),u=s["!merges"]||[],p=0,m=Array.isArray(s);if(s["!cols"])for(f=0;f<=l.e.c;++f)c.push(" +`);var d="",v=s["!rows"]||[];for(a=0;a +`);for(;a<=l.e.r;++a){for(d=v[a]?' table:style-name="ro'+v[a].ods+'"':"",c.push(" +`),f=0;ff)&&!(u[p].s.r>a)&&!(u[p].e.c +`)}return c.push(` +`),c.join("")},i=function(s,o){s.push(` +`),s.push(` +`),s.push(` +`),s.push(` / +`),s.push(` +`),s.push(` / +`),s.push(` +`),s.push(` +`);var h=0;o.SheetNames.map(function(a){return o.Sheets[a]}).forEach(function(a){if(a&&a["!cols"]){for(var f=0;f +`),s.push(' +`),s.push(` +`),++h}}});var c=0;o.SheetNames.map(function(a){return o.Sheets[a]}).forEach(function(a){if(a&&a["!rows"]){for(var f=0;f +`),s.push(' +`),s.push(` +`),++c}}}),s.push(` +`),s.push(` +`),s.push(` +`),s.push(` +`),s.push(` +`)};return function(o,h){var c=[fr],a=zs({"xmlns:office":"urn:oasis:names:tc:opendocument:xmlns:office:1.0","xmlns:table":"urn:oasis:names:tc:opendocument:xmlns:table:1.0","xmlns:style":"urn:oasis:names:tc:opendocument:xmlns:style:1.0","xmlns:text":"urn:oasis:names:tc:opendocument:xmlns:text:1.0","xmlns:draw":"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0","xmlns:fo":"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","xmlns:xlink":"http://www.w3.org/1999/xlink","xmlns:dc":"http://purl.org/dc/elements/1.1/","xmlns:meta":"urn:oasis:names:tc:opendocument:xmlns:meta:1.0","xmlns:number":"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0","xmlns:presentation":"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0","xmlns:svg":"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0","xmlns:chart":"urn:oasis:names:tc:opendocument:xmlns:chart:1.0","xmlns:dr3d":"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0","xmlns:math":"http://www.w3.org/1998/Math/MathML","xmlns:form":"urn:oasis:names:tc:opendocument:xmlns:form:1.0","xmlns:script":"urn:oasis:names:tc:opendocument:xmlns:script:1.0","xmlns:ooo":"http://openoffice.org/2004/office","xmlns:ooow":"http://openoffice.org/2004/writer","xmlns:oooc":"http://openoffice.org/2004/calc","xmlns:dom":"http://www.w3.org/2001/xml-events","xmlns:xforms":"http://www.w3.org/2002/xforms","xmlns:xsd":"http://www.w3.org/2001/XMLSchema","xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","xmlns:sheet":"urn:oasis:names:tc:opendocument:sh33tjs:1.0","xmlns:rpt":"http://openoffice.org/2005/report","xmlns:of":"urn:oasis:names:tc:opendocument:xmlns:of:1.2","xmlns:xhtml":"http://www.w3.org/1999/xhtml","xmlns:grddl":"http://www.w3.org/2003/g/data-view#","xmlns:tableooo":"http://openoffice.org/2009/table","xmlns:drawooo":"http://openoffice.org/2010/draw","xmlns:calcext":"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0","xmlns:loext":"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0","xmlns:field":"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0","xmlns:formx":"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0","xmlns:css3t":"http://www.w3.org/TR/css3-text/","office:version":"1.2"}),f=zs({"xmlns:config":"urn:oasis:names:tc:opendocument:xmlns:config:1.0","office:mimetype":"application/vnd.oasis.opendocument.spreadsheet"});h.bookType=="fods"?(c.push(" +`),c.push(Cu().replace(/office:document-meta/g,"office:meta"))):c.push(" +`),i(c,o),c.push(` +`),c.push(` +`);for(var l=0;l!=o.SheetNames.length;++l)c.push(n(o.Sheets[o.SheetNames[l]],o,l));return c.push(` +`),c.push(` +`),h.bookType=="fods"?c.push(""):c.push(""),c.join("")}}();function P0(t,r){if(r.bookType=="fods")return fh(t,r);var e=Yf(),n="",i=[],s=[];return n="mimetype",Et(e,n,"application/vnd.oasis.opendocument.spreadsheet"),n="content.xml",Et(e,n,fh(t,r)),i.push([n,"text/xml"]),s.push([n,"ContentFile"]),n="styles.xml",Et(e,n,r6(t,r)),i.push([n,"text/xml"]),s.push([n,"StylesFile"]),n="meta.xml",Et(e,n,fr+Cu()),i.push([n,"text/xml"]),s.push([n,"MetadataFile"]),n="manifest.rdf",Et(e,n,Og(s)),i.push([n,"application/rdf+xml"]),n="META-INF/manifest.xml",Et(e,n,Rg(i)),e}/*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com */function $i(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function Ff(t){return typeof TextDecoder<"u"?new TextDecoder().decode(t):Wt(bi(t))}function n6(t){return typeof TextEncoder<"u"?new TextEncoder().encode(t):tn(Ln(t))}function i6(t,r){e:for(var e=0;e<=t.length-r.length;++e){for(var n=0;n>1&1431655765,t=(t&858993459)+(t>>2&858993459),(t+(t>>4)&252645135)*16843009>>>24}function s6(t,r){for(var e=(t[r+15]&127)<<7|t[r+14]>>1,n=t[r+14]&1,i=r+13;i>=r;--i)n=n*256+t[i];return(t[r+15]&128?-n:n)*Math.pow(10,e-6176)}function a6(t,r,e){var n=Math.floor(e==0?0:Math.LOG10E*Math.log(Math.abs(e)))+6176-20,i=e/Math.pow(10,n-6176);t[r+15]|=n>>7,t[r+14]|=(n&127)<<1;for(var s=0;i>=1;++s,i/=256)t[r+s]=i&255;t[r+15]|=e>=0?0:128}function Zs(t,r){var e=r?r[0]:0,n=t[e]&127;e:if(t[e++]>=128&&(n|=(t[e]&127)<<7,t[e++]<128||(n|=(t[e]&127)<<14,t[e++]<128)||(n|=(t[e]&127)<<21,t[e++]<128)||(n+=(t[e]&127)*Math.pow(2,28),++e,t[e++]<128)||(n+=(t[e]&127)*Math.pow(2,35),++e,t[e++]<128)||(n+=(t[e]&127)*Math.pow(2,42),++e,t[e++]<128)))break e;return r&&(r[0]=e),n}function Ht(t){var r=new Uint8Array(7);r[0]=t&127;var e=1;e:if(t>127){if(r[e-1]|=128,r[e]=t>>7&127,++e,t<=16383||(r[e-1]|=128,r[e]=t>>14&127,++e,t<=2097151)||(r[e-1]|=128,r[e]=t>>21&127,++e,t<=268435455)||(r[e-1]|=128,r[e]=t/256>>>21&127,++e,t<=34359738367)||(r[e-1]|=128,r[e]=t/65536>>>21&127,++e,t<=4398046511103))break e;r[e-1]|=128,r[e]=t/16777216>>>21&127,++e}return r.slice(0,e)}function rr(t){var r=0,e=t[r]&127;e:if(t[r++]>=128){if(e|=(t[r]&127)<<7,t[r++]<128||(e|=(t[r]&127)<<14,t[r++]<128)||(e|=(t[r]&127)<<21,t[r++]<128))break e;e|=(t[r]&127)<<28}return e}function Bt(t){for(var r=[],e=[0];e[0]=128;);h=t.slice(c,e[0])}break;case 5:o=4,h=t.slice(e[0],e[0]+o),e[0]+=o;break;case 1:o=8,h=t.slice(e[0],e[0]+o),e[0]+=o;break;case 2:o=Zs(t,e),h=t.slice(e[0],e[0]+o),e[0]+=o;break;case 3:case 4:default:throw new Error("PB Type ".concat(s," for Field ").concat(i," at offset ").concat(n))}var a={data:h,type:s};r[i]==null?r[i]=[a]:r[i].push(a)}return r}function Sr(t){var r=[];return t.forEach(function(e,n){e.forEach(function(i){i.data&&(r.push(Ht(n*8+i.type)),i.type==2&&r.push(Ht(i.data.length)),r.push(i.data))})}),xi(r)}function wl(t,r){return(t==null?void 0:t.map(function(e){return r(e.data)}))||[]}function ln(t){for(var r,e=[],n=[0];n[0]>>0>0),e.push(o)}return e}function is(t){var r=[];return t.forEach(function(e){var n=[];n[1]=[{data:Ht(e.id),type:0}],n[2]=[],e.merge!=null&&(n[3]=[{data:Ht(+!!e.merge),type:0}]);var i=[];e.messages.forEach(function(o){i.push(o.data),o.meta[3]=[{type:0,data:Ht(o.data.length)}],n[2].push({data:Sr(o.meta),type:2})});var s=Sr(n);r.push(Ht(s.length)),r.push(s),i.forEach(function(o){return r.push(o)})}),xi(r)}function o6(t,r){if(t!=0)throw new Error("Unexpected Snappy chunk type ".concat(t));for(var e=[0],n=Zs(r,e),i=[];e[0]>2;if(o<60)++o;else{var h=o-59;o=r[e[0]],h>1&&(o|=r[e[0]+1]<<8),h>2&&(o|=r[e[0]+2]<<16),h>3&&(o|=r[e[0]+3]<<24),o>>>=0,o++,e[0]+=h}i.push(r.slice(e[0],e[0]+o)),e[0]+=o;continue}else{var c=0,a=0;if(s==1?(a=(r[e[0]]>>2&7)+4,c=(r[e[0]++]&224)<<3,c|=r[e[0]++]):(a=(r[e[0]++]>>2)+1,s==2?(c=r[e[0]]|r[e[0]+1]<<8,e[0]+=2):(c=(r[e[0]]|r[e[0]+1]<<8|r[e[0]+2]<<16|r[e[0]+3]<<24)>>>0,e[0]+=4)),i=[xi(i)],c==0)throw new Error("Invalid offset 0");if(c>i[0].length)throw new Error("Invalid offset beyond length");if(a>=c)for(i.push(i[0].slice(-c)),a-=c;a>=i[i.length-1].length;)i.push(i[i.length-1]),a-=i[i.length-1].length;i.push(i[0].slice(-c,-c+a))}}var f=xi(i);if(f.length!=n)throw new Error("Unexpected length: ".concat(f.length," != ").concat(n));return f}function cn(t){for(var r=[],e=0;e>8&255]))):n<=16777216?(o+=4,r.push(new Uint8Array([248,n-1&255,n-1>>8&255,n-1>>16&255]))):n<=4294967296&&(o+=5,r.push(new Uint8Array([252,n-1&255,n-1>>8&255,n-1>>16&255,n-1>>>24&255]))),r.push(t.slice(e,e+n)),o+=n,i[0]=0,i[1]=o&255,i[2]=o>>8&255,i[3]=o>>16&255,e+=n}return xi(r)}function f6(t,r,e,n){var i=$i(t),s=i.getUint32(4,!0),o=(n>1?12:8)+lh(s&(n>1?3470:398))*4,h=-1,c=-1,a=NaN,f=new Date(2001,0,1);s&512&&(h=i.getUint32(o,!0),o+=4),o+=lh(s&(n>1?12288:4096))*4,s&16&&(c=i.getUint32(o,!0),o+=4),s&32&&(a=i.getFloat64(o,!0),o+=8),s&64&&(f.setTime(f.getTime()+i.getFloat64(o,!0)*1e3),o+=8);var l;switch(t[2]){case 0:break;case 2:l={t:"n",v:a};break;case 3:l={t:"s",v:r[c]};break;case 5:l={t:"d",v:f};break;case 6:l={t:"b",v:a>0};break;case 7:l={t:"n",v:a/86400};break;case 8:l={t:"e",v:0};break;case 9:if(h>-1)l={t:"s",v:e[h]};else if(c>-1)l={t:"s",v:r[c]};else if(!isNaN(a))l={t:"n",v:a};else throw new Error("Unsupported cell type ".concat(t.slice(0,4)));break;default:throw new Error("Unsupported cell type ".concat(t.slice(0,4)))}return l}function l6(t,r,e){var n=$i(t),i=n.getUint32(8,!0),s=12,o=-1,h=-1,c=NaN,a=NaN,f=new Date(2001,0,1);i&1&&(c=s6(t,s),s+=16),i&2&&(a=n.getFloat64(s,!0),s+=8),i&4&&(f.setTime(f.getTime()+n.getFloat64(s,!0)*1e3),s+=8),i&8&&(h=n.getUint32(s,!0),s+=4),i&16&&(o=n.getUint32(s,!0),s+=4);var l;switch(t[1]){case 0:break;case 2:l={t:"n",v:c};break;case 3:l={t:"s",v:r[h]};break;case 5:l={t:"d",v:f};break;case 6:l={t:"b",v:a>0};break;case 7:l={t:"n",v:a/86400};break;case 8:l={t:"e",v:0};break;case 9:if(o>-1)l={t:"s",v:e[o]};else throw new Error("Unsupported cell type ".concat(t[1]," : ").concat(i&31," : ").concat(t.slice(0,4)));break;case 10:l={t:"n",v:c};break;default:throw new Error("Unsupported cell type ".concat(t[1]," : ").concat(i&31," : ").concat(t.slice(0,4)))}return l}function qo(t,r){var e=new Uint8Array(32),n=$i(e),i=12,s=0;switch(e[0]=5,t.t){case"n":e[1]=2,a6(e,i,t.v),s|=1,i+=16;break;case"b":e[1]=6,n.setFloat64(i,t.v?1:0,!0),s|=2,i+=8;break;case"s":if(r.indexOf(t.v)==-1)throw new Error("Value ".concat(t.v," missing from SST!"));e[1]=3,n.setUint32(i,r.indexOf(t.v),!0),s|=8,i+=4;break;default:throw"unsupported cell type "+t.t}return n.setUint32(8,s,!0),e.slice(0,i)}function ef(t,r){var e=new Uint8Array(32),n=$i(e),i=12,s=0;switch(e[0]=3,t.t){case"n":e[2]=2,n.setFloat64(i,t.v,!0),s|=32,i+=8;break;case"b":e[2]=6,n.setFloat64(i,t.v?1:0,!0),s|=32,i+=8;break;case"s":if(r.indexOf(t.v)==-1)throw new Error("Value ".concat(t.v," missing from SST!"));e[2]=3,n.setUint32(i,r.indexOf(t.v),!0),s|=16,i+=4;break;default:throw"unsupported cell type "+t.t}return n.setUint32(4,s,!0),e.slice(0,i)}function c6(t,r,e){switch(t[0]){case 0:case 1:case 2:case 3:return f6(t,r,e,t[0]);case 5:return l6(t,r,e);default:throw new Error("Unsupported payload version ".concat(t[0]))}}function Or(t){var r=Bt(t);return Zs(r[1][0].data)}function ch(t,r){var e=Bt(r.data),n=rr(e[1][0].data),i=e[3],s=[];return(i||[]).forEach(function(o){var h=Bt(o.data),c=rr(h[1][0].data)>>>0;switch(n){case 1:s[c]=Ff(h[3][0].data);break;case 8:{var a=t[Or(h[9][0].data)][0],f=Bt(a.data),l=t[Or(f[1][0].data)][0],u=rr(l.meta[1][0].data);if(u!=2001)throw new Error("2000 unexpected reference to ".concat(u));var p=Bt(l.data);s[c]=p[3].map(function(m){return Ff(m.data)}).join("")}break}}),s}function h6(t,r){var e,n,i,s,o,h,c,a,f,l,u,p,m,d,v=Bt(t),x=rr(v[1][0].data)>>>0,g=rr(v[2][0].data)>>>0,b=((n=(e=v[8])==null?void 0:e[0])==null?void 0:n.data)&&rr(v[8][0].data)>0||!1,w,y;if((s=(i=v[7])==null?void 0:i[0])!=null&&s.data&&r!=0)w=(h=(o=v[7])==null?void 0:o[0])==null?void 0:h.data,y=(a=(c=v[6])==null?void 0:c[0])==null?void 0:a.data;else if((l=(f=v[4])==null?void 0:f[0])!=null&&l.data&&r!=1)w=(p=(u=v[4])==null?void 0:u[0])==null?void 0:p.data,y=(d=(m=v[3])==null?void 0:m[0])==null?void 0:d.data;else throw"NUMBERS Tile missing ".concat(r," cell storage");for(var T=b?4:1,C=$i(w),M=[],I=0;I=1&&(U[M[M.length-1][0]]=y.subarray(M[M.length-1][1]*T)),{R:x,cells:U}}function u6(t,r){var e,n=Bt(r.data),i=(e=n==null?void 0:n[7])!=null&&e[0]?rr(n[7][0].data)>>>0>0?1:0:-1,s=wl(n[5],function(o){return h6(o,i)});return{nrows:rr(n[4][0].data)>>>0,data:s.reduce(function(o,h){return o[h.R]||(o[h.R]=[]),h.cells.forEach(function(c,a){if(o[h.R][a])throw new Error("Duplicate cell r=".concat(h.R," c=").concat(a));o[h.R][a]=c}),o},[])}}function d6(t,r,e){var n,i=Bt(r.data),s={s:{r:0,c:0},e:{r:0,c:0}};if(s.e.r=(rr(i[6][0].data)>>>0)-1,s.e.r<0)throw new Error("Invalid row varint ".concat(i[6][0].data));if(s.e.c=(rr(i[7][0].data)>>>0)-1,s.e.c<0)throw new Error("Invalid col varint ".concat(i[7][0].data));e["!ref"]=Rt(s);var o=Bt(i[4][0].data),h=ch(t,t[Or(o[4][0].data)][0]),c=(n=o[17])!=null&&n[0]?ch(t,t[Or(o[17][0].data)][0]):[],a=Bt(o[3][0].data),f=0;a[1].forEach(function(l){var u=Bt(l.data),p=t[Or(u[2][0].data)][0],m=rr(p.meta[1][0].data);if(m!=6002)throw new Error("6001 unexpected reference to ".concat(m));var d=u6(t,p);d.data.forEach(function(v,x){v.forEach(function(g,b){var w=yt({r:f+x,c:b}),y=c6(g,h,c);y&&(e[w]=y)})}),f+=d.nrows})}function p6(t,r){var e=Bt(r.data),n={"!ref":"A1"},i=t[Or(e[2][0].data)],s=rr(i[0].meta[1][0].data);if(s!=6001)throw new Error("6000 unexpected reference to ".concat(s));return d6(t,i[0],n),n}function m6(t,r){var e,n=Bt(r.data),i={name:(e=n[1])!=null&&e[0]?Ff(n[1][0].data):"",sheets:[]},s=wl(n[2],Or);return s.forEach(function(o){t[o].forEach(function(h){var c=rr(h.meta[1][0].data);c==6e3&&i.sheets.push(p6(t,h))})}),i}function g6(t,r){var e=$0(),n=Bt(r.data),i=wl(n[1],Or);if(i.forEach(function(s){t[s].forEach(function(o){var h=rr(o.meta[1][0].data);if(h==2){var c=m6(t,o);c.sheets.forEach(function(a,f){W0(e,a,f==0?c.name:c.name+"_"+f,!0)})}})}),e.SheetNames.length==0)throw new Error("Empty NUMBERS file");return e}function tf(t){var r,e,n,i,s={},o=[];if(t.FullPaths.forEach(function(c){if(c.match(/\.iwpv2/))throw new Error("Unsupported password protection")}),t.FileIndex.forEach(function(c){if(c.name.match(/\.iwa$/)){var a;try{a=cn(c.content)}catch(l){return console.log("?? "+c.content.length+" "+(l.message||l))}var f;try{f=ln(a)}catch(l){return console.log("## "+(l.message||l))}f.forEach(function(l){s[l.id]=l.messages,o.push(l.id)})}}),!o.length)throw new Error("File has no messages");var h=((i=(n=(e=(r=s==null?void 0:s[1])==null?void 0:r[0])==null?void 0:e.meta)==null?void 0:n[1])==null?void 0:i[0].data)&&rr(s[1][0].meta[1][0].data)==1&&s[1][0];if(h||o.forEach(function(c){s[c].forEach(function(a){var f=rr(a.meta[1][0].data)>>>0;if(f==1)if(!h)h=a;else throw new Error("Document has multiple roots")})}),!h)throw new Error("Cannot find Document root");return g6(s,h)}function v6(t,r,e){var n,i,s,o;if(!((n=t[6])!=null&&n[0])||!((i=t[7])!=null&&i[0]))throw"Mutation only works on post-BNC storages!";var h=((o=(s=t[8])==null?void 0:s[0])==null?void 0:o.data)&&rr(t[8][0].data)>0||!1;if(h)throw"Math only works with normal offsets";for(var c=0,a=$i(t[7][0].data),f=0,l=[],u=$i(t[4][0].data),p=0,m=[],d=0;d1&&console.error("The Numbers writer currently writes only the first table");var n=mn(e["!ref"]);n.s.r=n.s.c=0;var i=!1;n.e.c>9&&(i=!0,n.e.c=9),n.e.r>49&&(i=!0,n.e.r=49),i&&console.error("The Numbers writer is currently limited to ".concat(Rt(n)));var s=H0(e,{range:n,header:1}),o=["~Sh33tJ5~"];s.forEach(function(A){return A.forEach(function(S){typeof S=="string"&&o.push(S)})});var h={},c=[],a=ut.read(r.numbers,{type:"base64"});a.FileIndex.map(function(A,S){return[A,a.FullPaths[S]]}).forEach(function(A){var S=A[0],E=A[1];if(S.type==2&&S.name.match(/\.iwa/)){var O=S.content,z=cn(O),J=ln(z);J.forEach(function(re){c.push(re.id),h[re.id]={deps:[],location:E,type:rr(re.messages[0].meta[1][0].data)}})}}),c.sort(function(A,S){return A-S});var f=c.filter(function(A){return A>1}).map(function(A){return[A,Ht(A)]});a.FileIndex.map(function(A,S){return[A,a.FullPaths[S]]}).forEach(function(A){var S=A[0];if(A[1],!!S.name.match(/\.iwa/)){var E=ln(cn(S.content));E.forEach(function(O){O.messages.forEach(function(z){f.forEach(function(J){O.messages.some(function(re){return rr(re.meta[1][0].data)!=11006&&i6(re.data,J[1])})&&h[J[0]].deps.push(O.id)})})})}});for(var l=ut.find(a,h[1].location),u=ln(cn(l.content)),p,m=0;m-1?"sheet":t==Ft.CS?"chart":t==Ft.DS?"dialog":t==Ft.MS?"macro":t&&t.length?t:"sheet"}function w6(t,r){if(!t)return 0;try{t=r.map(function(n){return n.id||(n.id=n.strRelID),[n.name,t["!id"][n.id].Target,b6(t["!id"][n.id].Type)]})}catch{return null}return!t||t.length===0?null:t}function y6(t,r,e,n,i,s,o,h,c,a,f,l){try{s[n]=Is(rn(t,e,!0),r);var u=cr(t,r),p;switch(h){case"sheet":p=W4(u,r,i,c,s[n],a,f,l);break;case"chart":if(p=X4(u,r,i,c,s[n],a,f,l),!p||!p["!drawel"])break;var m=Fs(p["!drawel"].Target,r),d=Ws(m),v=Mb(rn(t,m,!0),Is(rn(t,d,!0),m)),x=Fs(v,m),g=Ws(x);p=x4(rn(t,x,!0),x,c,Is(rn(t,g,!0),x),a,p);break;case"macro":p=V4(u,r,i,c,s[n],a,f,l);break;case"dialog":p=G4(u,r,i,c,s[n],a,f,l);break;default:throw new Error("Unrecognized sheet type "+h)}o[n]=p;var b=[];s&&s[n]&&or(s[n]).forEach(function(w){var y="";if(s[n][w].Type==Ft.CMNT){y=Fs(s[n][w].Target,r);var T=J4(cr(t,y,!0),y,c);if(!T||!T.length)return;Zc(p,T,!1)}s[n][w].Type==Ft.TCMNT&&(y=Fs(s[n][w].Target,r),b=b.concat(Ib(cr(t,y,!0),c)))}),b&&b.length&&Zc(p,b,!0,c.people||[])}catch(w){if(c.WTF)throw w}}function on(t){return t.charAt(0)=="/"?t.slice(1):t}function _6(t,r){if(vs(),r=r||{},yl(r),hn(t,"META-INF/manifest.xml")||hn(t,"objectdata.xml"))return ah(t,r);if(hn(t,"Index/Document.iwa")){if(typeof Uint8Array>"u")throw new Error("NUMBERS file parsing requires Uint8Array support");if(typeof tf<"u"){if(t.FileIndex)return tf(t);var e=ut.utils.cfb_new();return vc(t).forEach(function(G){Et(e,G,eu(t,G))}),tf(e)}throw new Error("Unsupported NUMBERS file")}if(!hn(t,"[Content_Types].xml"))throw hn(t,"index.xml.gz")?new Error("Unsupported NUMBERS 08 file"):hn(t,"index.xml")?new Error("Unsupported NUMBERS 09 file"):new Error("Unsupported ZIP file");var n=vc(t),i=Cg(rn(t,"[Content_Types].xml")),s=!1,o,h;if(i.workbooks.length===0&&(h="xl/workbook.xml",cr(t,h,!0)&&i.workbooks.push(h)),i.workbooks.length===0){if(h="xl/workbook.bin",!cr(t,h,!0))throw new Error("Could not find workbook");i.workbooks.push(h),s=!0}i.workbooks[0].slice(-3)=="bin"&&(s=!0);var c={},a={};if(!r.bookSheets&&!r.bookProps){if(Ds=[],i.sst)try{Ds=Z4(cr(t,on(i.sst)),i.sst,r)}catch(G){if(r.WTF)throw G}r.cellStyles&&i.themes.length&&(c=Y4(rn(t,i.themes[0].replace(/^\//,""),!0)||"",i.themes[0],r)),i.style&&(a=K4(cr(t,on(i.style)),i.style,c,r))}i.links.map(function(G){try{var L=Is(rn(t,Ws(on(G))),G);return q4(cr(t,on(G)),L,G,r)}catch{}});var f=$4(cr(t,on(i.workbooks[0])),i.workbooks[0],r),l={},u="";i.coreprops.length&&(u=cr(t,on(i.coreprops[0]),!0),u&&(l=Au(u)),i.extprops.length!==0&&(u=cr(t,on(i.extprops[0]),!0),u&&Dg(u,l,r)));var p={};(!r.bookSheets||r.bookProps)&&i.custprops.length!==0&&(u=rn(t,on(i.custprops[0]),!0),u&&(p=Pg(u,r)));var m={};if((r.bookSheets||r.bookProps)&&(f.Sheets?o=f.Sheets.map(function(L){return L.name}):l.Worksheets&&l.SheetNames.length>0&&(o=l.SheetNames),r.bookProps&&(m.Props=l,m.Custprops=p),r.bookSheets&&typeof o<"u"&&(m.SheetNames=o),r.bookSheets?m.SheetNames:r.bookProps))return m;o={};var d={};r.bookDeps&&i.calcchain&&(d=Q4(cr(t,on(i.calcchain)),i.calcchain));var v=0,x={},g,b;{var w=f.Sheets;l.Worksheets=w.length,l.SheetNames=[];for(var y=0;y!=w.length;++y)l.SheetNames[y]=w[y].name}var T=s?"bin":"xml",C=i.workbooks[0].lastIndexOf("/"),M=(i.workbooks[0].slice(0,C+1)+"_rels/"+i.workbooks[0].slice(C+1)+".rels").replace(/^\//,"");hn(t,M)||(M="xl/_rels/workbook."+T+".rels");var I=Is(rn(t,M,!0),M.replace(/_rels.*/,"s5s"));(i.metadata||[]).length>=1&&(r.xlmeta=e3(cr(t,on(i.metadata[0])),i.metadata[0],r)),(i.people||[]).length>=1&&(r.people=Nb(cr(t,on(i.people[0])),r)),I&&(I=w6(I,f.Sheets));var B=cr(t,"xl/worksheets/sheet.xml",!0)?1:0;e:for(v=0;v!=l.Worksheets;++v){var U="sheet";if(I&&I[v]?(g="xl/"+I[v][1].replace(/[\/]?xl\//,""),hn(t,g)||(g=I[v][1]),hn(t,g)||(g=M.replace(/_rels\/.*$/,"")+I[v][1]),U=I[v][2]):(g="xl/worksheets/sheet"+(v+1-B)+"."+T,g=g.replace(/sheet0\./,"sheet.")),b=g.replace(/^(.*)(\/)([^\/]*)$/,"$1/_rels/$3.rels"),r&&r.sheets!=null)switch(typeof r.sheets){case"number":if(v!=r.sheets)continue e;break;case"string":if(l.SheetNames[v].toLowerCase()!=r.sheets.toLowerCase())continue e;break;default:if(Array.isArray&&Array.isArray(r.sheets)){for(var j=!1,H=0;H!=r.sheets.length;++H)typeof r.sheets[H]=="number"&&r.sheets[H]==v&&(j=1),typeof r.sheets[H]=="string"&&r.sheets[H].toLowerCase()==l.SheetNames[v].toLowerCase()&&(j=1);if(!j)continue e}}y6(t,g,b,l.SheetNames[v],v,x,o,U,r,f,c,a)}return m={Directory:i,Workbook:f,Props:l,Custprops:p,Deps:d,Sheets:o,SheetNames:l.SheetNames,Strings:Ds,Styles:a,Themes:c,SSF:Zt(xt)},r&&r.bookFiles&&(t.files?(m.keys=n,m.files=t.files):(m.keys=[],m.files={},t.FullPaths.forEach(function(G,L){G=G.replace(/^Root Entry[\/]/,""),m.keys.push(G),m.files[G]=t.FileIndex[L]}))),r&&r.bookVBA&&(i.vba.length>0?m.vbaraw=cr(t,on(i.vba[0]),!0):i.defaults&&i.defaults.bin===$b&&(m.vbaraw=cr(t,"xl/vbaProject.bin",!0))),m}function E6(t,r){var e=r||{},n="Workbook",i=ut.find(t,n);try{if(n="/!DataSpaces/Version",i=ut.find(t,n),!i||!i.content)throw new Error("ECMA-376 Encrypted file missing "+n);if(e2(i.content),n="/!DataSpaces/DataSpaceMap",i=ut.find(t,n),!i||!i.content)throw new Error("ECMA-376 Encrypted file missing "+n);var s=r2(i.content);if(s.length!==1||s[0].comps.length!==1||s[0].comps[0].t!==0||s[0].name!=="StrongEncryptionDataSpace"||s[0].comps[0].v!=="EncryptedPackage")throw new Error("ECMA-376 Encrypted file bad "+n);if(n="/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace",i=ut.find(t,n),!i||!i.content)throw new Error("ECMA-376 Encrypted file missing "+n);var o=n2(i.content);if(o.length!=1||o[0]!="StrongEncryptionTransform")throw new Error("ECMA-376 Encrypted file bad "+n);if(n="/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary",i=ut.find(t,n),!i||!i.content)throw new Error("ECMA-376 Encrypted file missing "+n);s2(i.content)}catch{}if(n="/EncryptionInfo",i=ut.find(t,n),!i||!i.content)throw new Error("ECMA-376 Encrypted file missing "+n);var h=a2(i.content);if(n="/EncryptedPackage",i=ut.find(t,n),!i||!i.content)throw new Error("ECMA-376 Encrypted file missing "+n);if(h[0]==4&&typeof decrypt_agile<"u")return decrypt_agile(h[1],i.content,e.password||"",e);if(h[0]==2&&typeof decrypt_std76<"u")return decrypt_std76(h[1],i.content,e.password||"",e);throw new Error("File is password-protected")}function T6(t,r){return r.bookType=="ods"?P0(t,r):r.bookType=="numbers"?x6(t,r):r.bookType=="xlsb"?S6(t,r):k6(t,r)}function S6(t,r){fs=1024,t&&!t.SSF&&(t.SSF=Zt(xt)),t&&t.SSF&&(vs(),mo(t.SSF),r.revssf=vo(t.SSF),r.revssf[t.SSF[65535]]=0,r.ssf=t.SSF),r.rels={},r.wbrels={},r.Strings=[],r.Strings.Count=0,r.Strings.Unique=0,Ns?r.revStrings=new Map:(r.revStrings={},r.revStrings.foo=[],delete r.revStrings.foo);var e=r.bookType=="xlsb"?"bin":"xml",n=d0.indexOf(r.bookType)>-1,i=ol();_l(r=r||{});var s=Yf(),o="",h=0;if(r.cellXfs=[],wi(r.cellXfs,{},{revssf:{General:0}}),t.Props||(t.Props={}),o="docProps/core.xml",Et(s,o,Fu(t.Props,r)),i.coreprops.push(o),zt(r.rels,2,o,Ft.CORE_PROPS),o="docProps/app.xml",!(t.Props&&t.Props.SheetNames))if(!t.Workbook||!t.Workbook.Sheets)t.Props.SheetNames=t.SheetNames;else{for(var c=[],a=0;a0&&(o="docProps/custom.xml",Et(s,o,Iu(t.Custprops)),i.custprops.push(o),zt(r.rels,4,o,Ft.CUST_PROPS)),h=1;h<=t.SheetNames.length;++h){var f={"!id":{}},l=t.Sheets[t.SheetNames[h-1]],u=(l||{})["!type"]||"sheet";switch(u){case"chart":default:o="xl/worksheets/sheet"+h+"."+e,Et(s,o,r3(h-1,o,r,t,f)),i.sheets.push(o),zt(r.wbrels,-1,"worksheets/sheet"+h+"."+e,Ft.WS[0])}if(l){var p=l["!comments"],m=!1,d="";p&&p.length>0&&(d="xl/comments"+h+"."+e,Et(s,d,s3(p,d)),i.comments.push(d),zt(f,-1,"../comments"+h+"."+e,Ft.CMNT),m=!0),l["!legacy"]&&m&&Et(s,"xl/drawings/vmlDrawing"+h+".vml",h0(h,l["!comments"])),delete l["!comments"],delete l["!legacy"]}f["!id"].rId1&&Et(s,Ws(o),cs(f))}return r.Strings!=null&&r.Strings.length>0&&(o="xl/sharedStrings."+e,Et(s,o,i3(r.Strings,o,r)),i.strs.push(o),zt(r.wbrels,-1,"sharedStrings."+e,Ft.SST)),o="xl/workbook."+e,Et(s,o,t3(t,o)),i.workbooks.push(o),zt(r.rels,1,o,Ft.WB),o="xl/theme/theme1.xml",Et(s,o,dl(t.Themes,r)),i.themes.push(o),zt(r.wbrels,-1,"theme/theme1.xml",Ft.THEME),o="xl/styles."+e,Et(s,o,n3(t,o,r)),i.styles.push(o),zt(r.wbrels,-1,"styles."+e,Ft.STY),t.vbaraw&&n&&(o="xl/vbaProject.bin",Et(s,o,t.vbaraw),i.vba.push(o),zt(r.wbrels,-1,"vbaProject.bin",Ft.VBA)),o="xl/metadata."+e,Et(s,o,a3(o)),i.metadata.push(o),zt(r.wbrels,-1,"metadata."+e,Ft.XLMETA),Et(s,"[Content_Types].xml",ku(i,r)),Et(s,"_rels/.rels",cs(r.rels)),Et(s,"xl/_rels/workbook."+e+".rels",cs(r.wbrels)),delete r.revssf,delete r.ssf,s}function k6(t,r){fs=1024,t&&!t.SSF&&(t.SSF=Zt(xt)),t&&t.SSF&&(vs(),mo(t.SSF),r.revssf=vo(t.SSF),r.revssf[t.SSF[65535]]=0,r.ssf=t.SSF),r.rels={},r.wbrels={},r.Strings=[],r.Strings.Count=0,r.Strings.Unique=0,Ns?r.revStrings=new Map:(r.revStrings={},r.revStrings.foo=[],delete r.revStrings.foo);var e="xml",n=d0.indexOf(r.bookType)>-1,i=ol();_l(r=r||{});var s=Yf(),o="",h=0;if(r.cellXfs=[],wi(r.cellXfs,{},{revssf:{General:0}}),t.Props||(t.Props={}),o="docProps/core.xml",Et(s,o,Fu(t.Props,r)),i.coreprops.push(o),zt(r.rels,2,o,Ft.CORE_PROPS),o="docProps/app.xml",!(t.Props&&t.Props.SheetNames))if(!t.Workbook||!t.Workbook.Sheets)t.Props.SheetNames=t.SheetNames;else{for(var c=[],a=0;a0&&(o="docProps/custom.xml",Et(s,o,Iu(t.Custprops)),i.custprops.push(o),zt(r.rels,4,o,Ft.CUST_PROPS));var f=["SheetJ5"];for(r.tcid=0,h=1;h<=t.SheetNames.length;++h){var l={"!id":{}},u=t.Sheets[t.SheetNames[h-1]],p=(u||{})["!type"]||"sheet";switch(p){case"chart":default:o="xl/worksheets/sheet"+h+"."+e,Et(s,o,T0(h-1,r,t,l)),i.sheets.push(o),zt(r.wbrels,-1,"worksheets/sheet"+h+"."+e,Ft.WS[0])}if(u){var m=u["!comments"],d=!1,v="";if(m&&m.length>0){var x=!1;m.forEach(function(g){g[1].forEach(function(b){b.T==!0&&(x=!0)})}),x&&(v="xl/threadedComments/threadedComment"+h+"."+e,Et(s,v,Db(m,f,r)),i.threadedcomments.push(v),zt(l,-1,"../threadedComments/threadedComment"+h+"."+e,Ft.TCMNT)),v="xl/comments"+h+"."+e,Et(s,v,u0(m)),i.comments.push(v),zt(l,-1,"../comments"+h+"."+e,Ft.CMNT),d=!0}u["!legacy"]&&d&&Et(s,"xl/drawings/vmlDrawing"+h+".vml",h0(h,u["!comments"])),delete u["!comments"],delete u["!legacy"]}l["!id"].rId1&&Et(s,Ws(o),cs(l))}return r.Strings!=null&&r.Strings.length>0&&(o="xl/sharedStrings."+e,Et(s,o,qu(r.Strings,r)),i.strs.push(o),zt(r.wbrels,-1,"sharedStrings."+e,Ft.SST)),o="xl/workbook."+e,Et(s,o,F0(t)),i.workbooks.push(o),zt(r.rels,1,o,Ft.WB),o="xl/theme/theme1.xml",Et(s,o,dl(t.Themes,r)),i.themes.push(o),zt(r.wbrels,-1,"theme/theme1.xml",Ft.THEME),o="xl/styles."+e,Et(s,o,o0(t,r)),i.styles.push(o),zt(r.wbrels,-1,"styles."+e,Ft.STY),t.vbaraw&&n&&(o="xl/vbaProject.bin",Et(s,o,t.vbaraw),i.vba.push(o),zt(r.wbrels,-1,"vbaProject.bin",Ft.VBA)),o="xl/metadata."+e,Et(s,o,c0()),i.metadata.push(o),zt(r.wbrels,-1,"metadata."+e,Ft.XLMETA),f.length>1&&(o="xl/persons/person.xml",Et(s,o,Pb(f)),i.people.push(o),zt(r.wbrels,-1,"persons/person.xml",Ft.PEOPLE)),Et(s,"[Content_Types].xml",ku(i,r)),Et(s,"_rels/.rels",cs(r.rels)),Et(s,"xl/_rels/workbook."+e+".rels",cs(r.wbrels)),delete r.revssf,delete r.ssf,s}function El(t,r){var e="";switch((r||{}).type||"base64"){case"buffer":return[t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]];case"base64":e=nn(t.slice(0,12));break;case"binary":e=t;break;case"array":return[t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]];default:throw new Error("Unrecognized type "+(r&&r.type||"undefined"))}return[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3),e.charCodeAt(4),e.charCodeAt(5),e.charCodeAt(6),e.charCodeAt(7)]}function C6(t,r){return ut.find(t,"EncryptedPackage")?E6(t,r):I0(t,r)}function A6(t,r){var e,n=t,i=r||{};return i.type||(i.type=St&&Buffer.isBuffer(t)?"buffer":"base64"),e=tu(n,i),_6(e,i)}function L0(t,r){var e=0;e:for(;e=2&&i[3]===0||i[2]===0&&(i[3]===8||i[3]===9)))return Ni.to_workbook(n,e);break;case 3:case 131:case 139:case 140:return kf.to_workbook(n,e);case 123:if(i[1]===92&&i[2]===114&&i[3]===116)return i0.to_workbook(n,e);break;case 10:case 13:case 32:return F6(n,e);case 137:if(i[1]===80&&i[2]===78&&i[3]===71)throw new Error("PNG Image File is not a spreadsheet");break}return Px.indexOf(i[0])>-1&&i[2]<=12&&i[3]<=31?kf.to_workbook(n,e):rf(t,n,e,s)}function j0(t,r){switch(r.type){case"base64":case"binary":break;case"buffer":case"array":r.type="";break;case"file":return ea(r.file,ut.write(t,{type:St?"buffer":""}));case"string":throw new Error("'string' output type invalid for '"+r.bookType+"' files");default:throw new Error("Unrecognized type "+r.type)}return ut.write(t,r)}function O6(t,r){var e=Zt(r||{}),n=T6(t,e);return I6(n,e)}function I6(t,r){var e={},n=St?"nodebuffer":typeof Uint8Array<"u"?"array":"string";if(r.compression&&(e.compression="DEFLATE"),r.password)e.type=n;else switch(r.type){case"base64":e.type="base64";break;case"binary":e.type="string";break;case"string":throw new Error("'string' output type invalid for '"+r.bookType+"' files");case"buffer":case"file":e.type=n;break;default:throw new Error("Unrecognized type "+r.type)}var i=t.FullPaths?ut.write(t,{fileType:"zip",type:{nodebuffer:"buffer",string:"binary"}[e.type]||e.type,compression:!!r.compression}):t.generate(e);if(typeof Deno<"u"&&typeof i=="string"){if(r.type=="binary"||r.type=="base64")return i;i=new Uint8Array(po(i))}return r.password&&typeof encrypt_agile<"u"?j0(encrypt_agile(i,r.password),r):r.type==="file"?ea(r.file,i):r.type=="string"?Wt(i):i}function D6(t,r){var e=r||{},n=O3(t,e);return j0(n,e)}function Pn(t,r,e){e||(e="");var n=e+t;switch(r.type){case"base64":return Ls(Ln(n));case"binary":return Ln(n);case"string":return t;case"file":return ea(r.file,n,"utf8");case"buffer":return St?ri(n,"utf8"):typeof TextEncoder<"u"?new TextEncoder().encode(n):Pn(n,{type:"binary"}).split("").map(function(i){return i.charCodeAt(0)})}throw new Error("Unrecognized type "+r.type)}function N6(t,r){switch(r.type){case"base64":return Ls(t);case"binary":return t;case"string":return t;case"file":return ea(r.file,t,"binary");case"buffer":return St?ri(t,"binary"):t.split("").map(function(e){return e.charCodeAt(0)})}throw new Error("Unrecognized type "+r.type)}function Ua(t,r){switch(r.type){case"string":case"base64":case"binary":for(var e="",n=0;n0&&(i=0);var l=Er(c.s.r),u=[],p=[],m=0,d=0,v=Array.isArray(t),x=c.s.r,g=0,b={};v&&!t[x]&&(t[x]=[]);var w=a.skipHidden&&t["!cols"]||[],y=a.skipHidden&&t["!rows"]||[];for(g=c.s.c;g<=c.e.c;++g)if(!(w[g]||{}).hidden)switch(u[g]=dr(g),e=v?t[x][g]:t[u[g]+l],n){case 1:s[g]=g-c.s.c;break;case 2:s[g]=u[g];break;case 3:s[g]=a.header[g-c.s.c];break;default:if(e==null&&(e={w:"__EMPTY",t:"s"}),h=o=mi(e,null,a),d=b[o]||0,!d)b[o]=1;else{do h=o+"_"+d++;while(b[h]);b[o]=d,b[h]=1}s[g]=h}for(x=c.s.r+i;x<=c.e.r;++x)if(!(y[x]||{}).hidden){var T=P6(t,c,x,u,n,s,v,a);(T.isempty===!1||(n===1?a.blankrows!==!1:a.blankrows))&&(p[m++]=T.row)}return p.length=m,p}var hh=/"/g;function B6(t,r,e,n,i,s,o,h){for(var c=!0,a=[],f="",l=Er(e),u=r.s.c;u<=r.e.c;++u)if(n[u]){var p=h.dense?(t[e]||[])[u]:t[n[u]+l];if(p==null)f="";else if(p.v!=null){c=!1,f=""+(h.rawNumbers&&p.t=="n"?p.v:mi(p,null,h));for(var m=0,d=0;m!==f.length;++m)if((d=f.charCodeAt(m))===i||d===s||d===34||h.forceQuotes){f='"'+f.replace(hh,'""')+'"';break}f=="ID"&&(f='"ID"')}else p.f!=null&&!p.F?(c=!1,f="="+p.f,f.indexOf(",")>=0&&(f='"'+f.replace(hh,'""')+'"')):f="";a.push(f)}return h.blankrows===!1&&c?null:a.join(o)}function z0(t,r){var e=[],n=r??{};if(t==null||t["!ref"]==null)return"";var i=Lt(t["!ref"]),s=n.FS!==void 0?n.FS:",",o=s.charCodeAt(0),h=n.RS!==void 0?n.RS:` +`,c=h.charCodeAt(0),a=new RegExp((s=="|"?"\\|":s)+"+$"),f="",l=[];n.dense=Array.isArray(t);for(var u=n.skipHidden&&t["!cols"]||[],p=n.skipHidden&&t["!rows"]||[],m=i.s.c;m<=i.e.c;++m)(u[m]||{}).hidden||(l[m]=dr(m));for(var d=0,v=i.s.r;v<=i.e.r;++v)(p[v]||{}).hidden||(f=B6(t,i,v,l,o,c,s,n),f!=null&&(n.strip&&(f=f.replace(a,"")),(f||n.blankrows!==!1)&&e.push((d++?h:"")+f)));return delete n.dense,e.join("")}function L6(t,r){r||(r={}),r.FS=" ",r.RS=` +`;var e=z0(t,r);return e}function $0(){return{SheetNames:[],Sheets:{}}}function W0(t,r,e,n){var i=1;if(!e)for(;i<=65535&&t.SheetNames.indexOf(e="Sheet"+i)!=-1;++i,e=void 0);if(!e||t.SheetNames.length>=65535)throw new Error("Too many worksheets");if(n&&t.SheetNames.indexOf(e)>=0){var s=e.match(/(^.*?)(\d+)$/);i=s&&+s[2]||0;var o=s&&s[1]||e;for(++i;i<=65535&&t.SheetNames.indexOf(e=o+i)!=-1;++i);}if(A0(e),t.SheetNames.indexOf(e)>=0)throw new Error("Worksheet with name |"+e+"| already exists!");return t.SheetNames.push(e),t.Sheets[e]=r,e}const nf=["#FFFFFF","#000000","#BFBFBF","#323232","#4472C4","#ED7D31","#A5A5A5","#FFC000","#5B9BD5","#71AD47"],sf=["#000000","#FFFFFF","#FF0000","#00FF00","#0000FF","#FFFF00","#FF00FF","#00FFFF","#000000","#FFFFFF","#FF0000","#00FF00","#0000FF","#FFFF00","#FF00FF","#00FFFF","#800000","#008000","#000080","#808000","#800080","#008080","#C0C0C0","#808080","#9999FF","#993366","#FFFFCC","#CCFFFF","#660066","#FF8080","#0066CC","#CCCCFF","#000080","#FF00FF","#FFFF00","#00FFFF","#800080","#800000","#008080","#0000FF","#00CCFF","#CCFFFF","#CCFFCC","#FFFF99","#99CCFF","#FF99CC","#CC99FF","#FFCC99","#3366FF","#33CCCC","#99CC00","#FFCC00","#FF9900","#FF6600","#666699","#969696","#003366","#339966","#003300","#333300","#993300","#993366","#333399","#333333","#000000"];let j6=80,U6=24;function i8(t,r={}){return H6(V0(t),r)}function H6(t,r){return new Promise(function(e,n){const i=new XMLHttpRequest;i.open(r.method||"GET",t,!0),i.responseType=r.responseType||"arraybuffer",i.onload=function(){i.status===200?e(i.response):n(i.status)},i.onerror=function(){n(i.status)},i.withCredentials=r.withCredentials||!1,r.headers&&Object.keys(r.headers).forEach(function(s){i.setRequestHeader(s,r.headers[s])}),i.send(r.body)})}function s8(t,r){try{if(r){const n=Rf(t,{type:"array"});t=U0(n,{bookType:"xlsx",type:"array"})}return new y1.Workbook().xlsx.load(t)}catch(e){return console.warn(e),Promise.reject(e)}}function z6(t,r,e){for(let n=0;n<(t.columns||[]).length;n++)r.cols[n.toString()]={},t.columns[n]._hidden?r.cols[n.toString()].width=.1:t.columns[n].width?r.cols[n.toString()].width=t.columns[n].width*6+(e.widthOffset||0):r.cols[n.toString()].width=j6+(e.widthOffset||0);r.cols.len=Math.max(Object.keys(r.cols).length,e.minColLength||0)}function $6(t){let{numFmt:r,value:e,type:n}=t;switch(n){case 2:try{if(t.style.numFmt){if(t.style.numFmt.endsWith("%")){let i=t.style.numFmt.match(/\.(\d+)%/);return i?(e*100).toFixed(i[1].length)+"%":e*100+"%"}else if(/0(\.0+)?/.test(t.style.numFmt)){let i="";if(t.style.numFmt.startsWith("$")?i="$":t.style.numFmt.startsWith('"¥')&&(i="¥"),e===0&&t.style.numFmt.startsWith("_"))return"-";let s=t.style.numFmt.match(/0\.(0+)(_|;|$)/);s?s=s[1].length:s=0;let o=e.toFixed(s)+"";if(t.style.numFmt.includes("#,##")){o=o.split(".");let h=o[0].split("").reverse(),c=[];for(let a=0;a9?"#C7C9CC":typeof r>"u"?nf[t]:r>0?G1(nf[t],r):V1(nf[t],Math.abs(r))}function W6(t){t.style=Mf.cloneDeep(t.style);let r=null;t.style.fill&&t.style.fill.fgColor&&(t.style.fill.fgColor.argb?r=af(t.style.fill.fgColor.argb):t.style.fill.fgColor.hasOwnProperty("theme")?r=of(t.style.fill.fgColor.theme,t.style.fill.fgColor.tint):t.style.fill.fgColor.indexed?r=sf[t.style.fill.fgColor.indexed]||"#C7C9CC":r="#C7C9CC"),r&&(t.style.bgcolor=r);let e=null;if(t.style.font&&t.style.font.color&&(t.style.font.color.argb?e=af(t.style.font.color.argb):t.style.font.color.hasOwnProperty("theme")?e=of(t.style.font.color.theme,t.style.font.color.tint):t.style.font.color.indexed?e=sf[t.style.font.color.indexed]||"#000000":e="#000000"),e&&(t.style.color=e),t.style.alignment&&(t.style.alignment.horizontal&&(t.style.align=t.style.alignment.horizontal),t.style.alignment.vertical&&(t.style.valign=t.style.alignment.vertical)),t.style.alignment&&t.style.alignment.wrapText&&(t.style.textwrap=!0),t.style.border){let n={};Object.keys(t.style.border).forEach(i=>{let s=t.style.border[i],o="#000000";typeof s.color=="string"?o=s.color:s.color&&(s.color.argb?o=af(s.color.argb):s.color.hasOwnProperty("theme")?o=of(s.color.theme,s.color.tint):s.color.indexed&&(o=sf[s.color.indexed])),n[i]=[s.style||"thin",o]}),t.style.border2={...t.style.border},t.style.border=n}return t.style.font&&t.style.font.size&&typeof t.style.font.size=="number"&&(t.style.font.size=Math.round(t.style.font.size/1.333333)),t.style}function a8(t,r){let e=[],n=[];return t.eachSheet(i=>{n.push(i);let s={name:i.name,styles:[],rows:{},cols:{},merges:[],media:[]},o=[];for(let a in i._merges){s.merges.push(i._merges[a].shortRange);let f={};f.startAddress=i._merges[a].tl,f.endAddress=i._merges[a].br,f.YRange=i._merges[a].model.bottom-i._merges[a].model.top,f.XRange=i._merges[a].model.right-i._merges[a].model.left,o.push(f)}let h=0;(i._rows||[]).forEach((a,f)=>{s.rows[f]={cells:{}},a._hidden?(s.rows[f].height=.1,a._cells=[]):a.height?s.rows[f].height=a.height+(r.heightOffset||0):s.rows[f].height=U6+(r.heightOffset||0),(a._cells||[]).forEach((l,u)=>{s.rows[f].cells[u]={},h=Math.max(h,u);let p=Mf.find(o,function(m){return m.startAddress==l._address});p&&l.master.address!=p.startAddress||(p&&(s.rows[f].cells[u].merge=[p.YRange,p.XRange]),s.rows[f].cells[u].text=$6(l),s.styles.push(W6(l)),s.rows[f].cells[u].style=s.styles.length-1)})}),s._media&&(s.media=s._media);let c=Object.keys(s.rows);s.rows.len=Math.max(+c[c.length-1]+1,r.hasOwnProperty("minRowLength")?r.minRowLength:100),i._columns&&i._columns.length>h+1&&(i._columns=i._columns.slice(0,h+1)),z6(i,s,r),e.push(s)}),t._worksheets=n,{workbookData:e,workbookSource:t,medias:t.media||[]}}let $a=[];function o8(t,r,e,n,i={}){e&&e._media.length&&e._media.forEach(s=>{let{imageId:o,range:h,type:c}=s;if(c==="image"){let a=X6(e,h,n,i);V6(t,o,r[o],a)}})}let Wa=60,Xa=25,ff=80,lf=24,Bn=window.devicePixelRatio;function X6(t,r,e,n){var C,M,I,B,U,j,H,G,L,R,F,_,k,N;let{widthOffset:i,heightOffset:s}=n,{tl:o,br:h,ext:c}=r,{nativeCol:a=0,nativeColOff:f=0,nativeRow:l=0,nativeRowOff:u=0}=o||{},p=Wa,m=Xa;for(let P=0;P{let s=0,o=0,h=i.width,c=i.height,a=n.x,f=n.y,l=n.width,u=n.height,p=l/h,m=u/c;if(a{console.error(i)})}function G6(t,r){return new Promise((e,n)=>{if($a[t])return e($a[t]);const{buffer:i}=r.buffer;let s=new Blob([i],{type:"image/"+r.extension}),o=URL.createObjectURL(s),h=new Image;h.src=o,h.onload=function(){e(h),$a[t]=h},h.onerror=function(c){n(c)}})}function l8(t){if(t){let r=t.querySelectorAll("input");for(let e of r)e&&!e.readOnly&&(e.readOnly=!0);document.activeElement&&document.activeElement.blur()}}export{b1 as S,o8 as a,s8 as b,f8 as c,i8 as g,l8 as r,a8 as t}; diff --git a/examples/dist/assets/index-b9f20394.js b/examples/dist/assets/index-b9f20394.js new file mode 100644 index 0000000..0cb657a --- /dev/null +++ b/examples/dist/assets/index-b9f20394.js @@ -0,0 +1,121 @@ +(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const o of a)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(a){const o={};return a.integrity&&(o.integrity=a.integrity),a.referrerPolicy&&(o.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?o.credentials="include":a.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(a){if(a.ep)return;a.ep=!0;const o=n(a);fetch(a.href,o)}})();function Ip(t,e){const n=Object.create(null),r=t.split(",");for(let a=0;a!!n[a.toLowerCase()]:a=>!!n[a]}function _p(t){if(bt(t)){const e={};for(let n=0;n{if(n){const r=n.split(l5);r.length>1&&(e[r[0].trim()]=r[1].trim())}}),e}function Np(t){let e="";if(pn(t))e=t;else if(bt(t))for(let n=0;n{},f5=()=>!1,v5=/^on[^a-z]/,Xc=t=>v5.test(t),$p=t=>t.startsWith("onUpdate:"),hn=Object.assign,Ap=(t,e)=>{const n=t.indexOf(e);n>-1&&t.splice(n,1)},h5=Object.prototype.hasOwnProperty,Tt=(t,e)=>h5.call(t,e),bt=Array.isArray,Sl=t=>Qc(t)==="[object Map]",p5=t=>Qc(t)==="[object Set]",St=t=>typeof t=="function",pn=t=>typeof t=="string",Rp=t=>typeof t=="symbol",Zt=t=>t!==null&&typeof t=="object",Jw=t=>Zt(t)&&St(t.then)&&St(t.catch),g5=Object.prototype.toString,Qc=t=>g5.call(t),m5=t=>Qc(t).slice(8,-1),y5=t=>Qc(t)==="[object Object]",Dp=t=>pn(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,Ps=Ip(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Zc=t=>{const e=Object.create(null);return n=>e[n]||(e[n]=t(n))},b5=/-(\w)/g,Ln=Zc(t=>t.replace(b5,(e,n)=>n?n.toUpperCase():"")),C5=/\B([A-Z])/g,Bi=Zc(t=>t.replace(C5,"-$1").toLowerCase()),Jc=Zc(t=>t.charAt(0).toUpperCase()+t.slice(1)),yf=Zc(t=>t?`on${Jc(t)}`:""),Wl=(t,e)=>!Object.is(t,e),bf=(t,e)=>{for(let n=0;n{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:n})},Fp=t=>{const e=parseFloat(t);return isNaN(e)?t:e};let K0;const x5=()=>K0||(K0=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let Yn;class w5{constructor(e=!1){this.detached=e,this.active=!0,this.effects=[],this.cleanups=[],this.parent=Yn,!e&&Yn&&(this.index=(Yn.scopes||(Yn.scopes=[])).push(this)-1)}run(e){if(this.active){const n=Yn;try{return Yn=this,e()}finally{Yn=n}}}on(){Yn=this}off(){Yn=this.parent}stop(e){if(this.active){let n,r;for(n=0,r=this.effects.length;n{const e=new Set(t);return e.w=0,e.n=0,e},eS=t=>(t.w&za)>0,tS=t=>(t.n&za)>0,O5=({deps:t})=>{if(t.length)for(let e=0;e{const{deps:e}=t;if(e.length){let n=0;for(let r=0;r{(d==="length"||d>=u)&&l.push(s)})}else switch(n!==void 0&&l.push(i.get(n)),e){case"add":bt(t)?Dp(n)&&l.push(i.get("length")):(l.push(i.get(ko)),Sl(t)&&l.push(i.get(zv)));break;case"delete":bt(t)||(l.push(i.get(ko)),Sl(t)&&l.push(i.get(zv)));break;case"set":Sl(t)&&l.push(i.get(ko));break}if(l.length===1)l[0]&&Wv(l[0]);else{const u=[];for(const s of l)s&&u.push(...s);Wv(Lp(u))}}function Wv(t,e){const n=bt(t)?t:[...t];for(const r of n)r.computed&&z0(r);for(const r of n)r.computed||z0(r)}function z0(t,e){(t!==gr||t.allowRecurse)&&(t.scheduler?t.scheduler():t.run())}const E5=Ip("__proto__,__v_isRef,__isVue"),aS=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(Rp)),M5=jp(),I5=jp(!1,!0),_5=jp(!0),W0=N5();function N5(){const t={};return["includes","indexOf","lastIndexOf"].forEach(e=>{t[e]=function(...n){const r=rt(this);for(let o=0,i=this.length;o{t[e]=function(...n){ji();const r=rt(this)[e].apply(this,n);return Vi(),r}}),t}function jp(t=!1,e=!1){return function(r,a,o){if(a==="__v_isReactive")return!t;if(a==="__v_isReadonly")return t;if(a==="__v_isShallow")return e;if(a==="__v_raw"&&o===(t?e?G5:sS:e?uS:lS).get(r))return r;const i=bt(r);if(!t&&i&&Tt(W0,a))return Reflect.get(W0,a,o);const l=Reflect.get(r,a,o);return(Rp(a)?aS.has(a):E5(a))||(t||Xn(r,"get",a),e)?l:fn(l)?i&&Dp(a)?l:l.value:Zt(l)?t?dS(l):xt(l):l}}const $5=oS(),A5=oS(!0);function oS(t=!1){return function(n,r,a,o){let i=n[r];if(Pi(i)&&fn(i)&&!fn(a))return!1;if(!t&&(!lc(a)&&!Pi(a)&&(i=rt(i),a=rt(a)),!bt(n)&&fn(i)&&!fn(a)))return i.value=a,!0;const l=bt(n)&&Dp(r)?Number(r)t,ed=t=>Reflect.getPrototypeOf(t);function Bu(t,e,n=!1,r=!1){t=t.__v_raw;const a=rt(t),o=rt(e);n||(e!==o&&Xn(a,"get",e),Xn(a,"get",o));const{has:i}=ed(a),l=r?Vp:n?zp:Ul;if(i.call(a,e))return l(t.get(e));if(i.call(a,o))return l(t.get(o));t!==a&&t.get(e)}function ju(t,e=!1){const n=this.__v_raw,r=rt(n),a=rt(t);return e||(t!==a&&Xn(r,"has",t),Xn(r,"has",a)),t===a?n.has(t):n.has(t)||n.has(a)}function Vu(t,e=!1){return t=t.__v_raw,!e&&Xn(rt(t),"iterate",ko),Reflect.get(t,"size",t)}function U0(t){t=rt(t);const e=rt(this);return ed(e).has.call(e,t)||(e.add(t),va(e,"add",t,t)),this}function Y0(t,e){e=rt(e);const n=rt(this),{has:r,get:a}=ed(n);let o=r.call(n,t);o||(t=rt(t),o=r.call(n,t));const i=a.call(n,t);return n.set(t,e),o?Wl(e,i)&&va(n,"set",t,e):va(n,"add",t,e),this}function G0(t){const e=rt(this),{has:n,get:r}=ed(e);let a=n.call(e,t);a||(t=rt(t),a=n.call(e,t)),r&&r.call(e,t);const o=e.delete(t);return a&&va(e,"delete",t,void 0),o}function q0(){const t=rt(this),e=t.size!==0,n=t.clear();return e&&va(t,"clear",void 0,void 0),n}function Ku(t,e){return function(r,a){const o=this,i=o.__v_raw,l=rt(i),u=e?Vp:t?zp:Ul;return!t&&Xn(l,"iterate",ko),i.forEach((s,d)=>r.call(a,u(s),u(d),o))}}function Hu(t,e,n){return function(...r){const a=this.__v_raw,o=rt(a),i=Sl(o),l=t==="entries"||t===Symbol.iterator&&i,u=t==="keys"&&i,s=a[t](...r),d=n?Vp:e?zp:Ul;return!e&&Xn(o,"iterate",u?zv:ko),{next(){const{value:c,done:f}=s.next();return f?{value:c,done:f}:{value:l?[d(c[0]),d(c[1])]:d(c),done:f}},[Symbol.iterator](){return this}}}}function wa(t){return function(...e){return t==="delete"?!1:this}}function j5(){const t={get(o){return Bu(this,o)},get size(){return Vu(this)},has:ju,add:U0,set:Y0,delete:G0,clear:q0,forEach:Ku(!1,!1)},e={get(o){return Bu(this,o,!1,!0)},get size(){return Vu(this)},has:ju,add:U0,set:Y0,delete:G0,clear:q0,forEach:Ku(!1,!0)},n={get(o){return Bu(this,o,!0)},get size(){return Vu(this,!0)},has(o){return ju.call(this,o,!0)},add:wa("add"),set:wa("set"),delete:wa("delete"),clear:wa("clear"),forEach:Ku(!0,!1)},r={get(o){return Bu(this,o,!0,!0)},get size(){return Vu(this,!0)},has(o){return ju.call(this,o,!0)},add:wa("add"),set:wa("set"),delete:wa("delete"),clear:wa("clear"),forEach:Ku(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{t[o]=Hu(o,!1,!1),n[o]=Hu(o,!0,!1),e[o]=Hu(o,!1,!0),r[o]=Hu(o,!0,!0)}),[t,n,e,r]}const[V5,K5,H5,z5]=j5();function Kp(t,e){const n=e?t?z5:H5:t?K5:V5;return(r,a,o)=>a==="__v_isReactive"?!t:a==="__v_isReadonly"?t:a==="__v_raw"?r:Reflect.get(Tt(n,a)&&a in r?n:r,a,o)}const W5={get:Kp(!1,!1)},U5={get:Kp(!1,!0)},Y5={get:Kp(!0,!1)},lS=new WeakMap,uS=new WeakMap,sS=new WeakMap,G5=new WeakMap;function q5(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function X5(t){return t.__v_skip||!Object.isExtensible(t)?0:q5(m5(t))}function xt(t){return Pi(t)?t:Hp(t,!1,iS,W5,lS)}function cS(t){return Hp(t,!1,B5,U5,uS)}function dS(t){return Hp(t,!0,L5,Y5,sS)}function Hp(t,e,n,r,a){if(!Zt(t)||t.__v_raw&&!(e&&t.__v_isReactive))return t;const o=a.get(t);if(o)return o;const i=X5(t);if(i===0)return t;const l=new Proxy(t,i===2?r:n);return a.set(t,l),l}function fi(t){return Pi(t)?fi(t.__v_raw):!!(t&&t.__v_isReactive)}function Pi(t){return!!(t&&t.__v_isReadonly)}function lc(t){return!!(t&&t.__v_isShallow)}function fS(t){return fi(t)||Pi(t)}function rt(t){const e=t&&t.__v_raw;return e?rt(e):t}function vS(t){return ic(t,"__v_skip",!0),t}const Ul=t=>Zt(t)?xt(t):t,zp=t=>Zt(t)?dS(t):t;function hS(t){Ba&&gr&&(t=rt(t),rS(t.dep||(t.dep=Lp())))}function pS(t,e){t=rt(t),t.dep&&Wv(t.dep)}function fn(t){return!!(t&&t.__v_isRef===!0)}function Q(t){return gS(t,!1)}function dt(t){return gS(t,!0)}function gS(t,e){return fn(t)?t:new Q5(t,e)}class Q5{constructor(e,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?e:rt(e),this._value=n?e:Ul(e)}get value(){return hS(this),this._value}set value(e){const n=this.__v_isShallow||lc(e)||Pi(e);e=n?e:rt(e),Wl(e,this._rawValue)&&(this._rawValue=e,this._value=n?e:Ul(e),pS(this))}}function tn(t){return fn(t)?t.value:t}const Z5={get:(t,e,n)=>tn(Reflect.get(t,e,n)),set:(t,e,n,r)=>{const a=t[e];return fn(a)&&!fn(n)?(a.value=n,!0):Reflect.set(t,e,n,r)}};function mS(t){return fi(t)?t:new Proxy(t,Z5)}function Oo(t){const e=bt(t)?new Array(t.length):{};for(const n in t)e[n]=Ke(t,n);return e}class J5{constructor(e,n,r){this._object=e,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const e=this._object[this._key];return e===void 0?this._defaultValue:e}set value(e){this._object[this._key]=e}}function Ke(t,e,n){const r=t[e];return fn(r)?r:new J5(t,e,n)}var yS;class eT{constructor(e,n,r,a){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this[yS]=!1,this._dirty=!0,this.effect=new Bp(e,()=>{this._dirty||(this._dirty=!0,pS(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!a,this.__v_isReadonly=r}get value(){const e=rt(this);return hS(e),(e._dirty||!e._cacheable)&&(e._dirty=!1,e._value=e.effect.run()),e._value}set value(e){this._setter(e)}}yS="__v_isReadonly";function tT(t,e,n=!1){let r,a;const o=St(t);return o?(r=t,a=br):(r=t.get,a=t.set),new eT(r,a,o||!a,n)}function ja(t,e,n,r){let a;try{a=r?t(...r):t()}catch(o){td(o,e,n)}return a}function lr(t,e,n,r){if(St(t)){const o=ja(t,e,n,r);return o&&Jw(o)&&o.catch(i=>{td(i,e,n)}),o}const a=[];for(let o=0;o>>1;Gl(xn[r])Br&&xn.splice(e,1)}function oT(t){bt(t)?vi.push(...t):(!aa||!aa.includes(t,t.allowRecurse?ho+1:ho))&&vi.push(t),CS()}function X0(t,e=Yl?Br+1:0){for(;eGl(n)-Gl(r)),ho=0;hot.id==null?1/0:t.id,iT=(t,e)=>{const n=Gl(t)-Gl(e);if(n===0){if(t.pre&&!e.pre)return-1;if(e.pre&&!t.pre)return 1}return n};function wS(t){Uv=!1,Yl=!0,xn.sort(iT);const e=br;try{for(Br=0;Brpn(v)?v.trim():v)),c&&(a=n.map(Fp))}let l,u=r[l=yf(e)]||r[l=yf(Ln(e))];!u&&o&&(u=r[l=yf(Bi(e))]),u&&lr(u,t,6,a);const s=r[l+"Once"];if(s){if(!t.emitted)t.emitted={};else if(t.emitted[l])return;t.emitted[l]=!0,lr(s,t,6,a)}}function SS(t,e,n=!1){const r=e.emitsCache,a=r.get(t);if(a!==void 0)return a;const o=t.emits;let i={},l=!1;if(!St(t)){const u=s=>{const d=SS(s,e,!0);d&&(l=!0,hn(i,d))};!n&&e.mixins.length&&e.mixins.forEach(u),t.extends&&u(t.extends),t.mixins&&t.mixins.forEach(u)}return!o&&!l?(Zt(t)&&r.set(t,null),null):(bt(o)?o.forEach(u=>i[u]=null):hn(i,o),Zt(t)&&r.set(t,i),i)}function nd(t,e){return!t||!Xc(e)?!1:(e=e.slice(2).replace(/Once$/,""),Tt(t,e[0].toLowerCase()+e.slice(1))||Tt(t,Bi(e))||Tt(t,e))}let mn=null,rd=null;function uc(t){const e=mn;return mn=t,rd=t&&t.type.__scopeId||null,e}function zre(t){rd=t}function Wre(){rd=null}function ei(t,e=mn,n){if(!e||t._n)return t;const r=(...a)=>{r._d&&l1(-1);const o=uc(e);let i;try{i=t(...a)}finally{uc(o),r._d&&l1(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Cf(t){const{type:e,vnode:n,proxy:r,withProxy:a,props:o,propsOptions:[i],slots:l,attrs:u,emit:s,render:d,renderCache:c,data:f,setupState:v,ctx:p,inheritAttrs:g}=t;let m,b;const x=uc(t);try{if(n.shapeFlag&4){const w=a||r;m=Lr(d.call(w,w,c,o,v,f,p)),b=u}else{const w=e;m=Lr(w.length>1?w(o,{attrs:u,slots:l,emit:s}):w(o,null)),b=e.props?u:uT(u)}}catch(w){Tl.length=0,td(w,t,1),m=h(qn)}let C=m;if(b&&g!==!1){const w=Object.keys(b),{shapeFlag:P}=C;w.length&&P&7&&(i&&w.some($p)&&(b=sT(b,i)),C=Cn(C,b))}return n.dirs&&(C=Cn(C),C.dirs=C.dirs?C.dirs.concat(n.dirs):n.dirs),n.transition&&(C.transition=n.transition),m=C,uc(x),m}const uT=t=>{let e;for(const n in t)(n==="class"||n==="style"||Xc(n))&&((e||(e={}))[n]=t[n]);return e},sT=(t,e)=>{const n={};for(const r in t)(!$p(r)||!(r.slice(9)in e))&&(n[r]=t[r]);return n};function cT(t,e,n){const{props:r,children:a,component:o}=t,{props:i,children:l,patchFlag:u}=e,s=o.emitsOptions;if(e.dirs||e.transition)return!0;if(n&&u>=0){if(u&1024)return!0;if(u&16)return r?Q0(r,i,s):!!i;if(u&8){const d=e.dynamicProps;for(let c=0;ct.__isSuspense;function vT(t,e){e&&e.pendingBranch?bt(t)?e.effects.push(...t):e.effects.push(t):oT(t)}function at(t,e){if(dn){let n=dn.provides;const r=dn.parent&&dn.parent.provides;r===n&&(n=dn.provides=Object.create(r)),n[t]=e}}function Ze(t,e,n=!1){const r=dn||mn;if(r){const a=r.parent==null?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides;if(a&&t in a)return a[t];if(arguments.length>1)return n&&St(e)?e.call(r.proxy):e}}function Je(t,e){return Yp(t,null,e)}const zu={};function Se(t,e,n){return Yp(t,e,n)}function Yp(t,e,{immediate:n,deep:r,flush:a,onTrack:o,onTrigger:i}=Ht){const l=dn;let u,s=!1,d=!1;if(fn(t)?(u=()=>t.value,s=lc(t)):fi(t)?(u=()=>t,r=!0):bt(t)?(d=!0,s=t.some(C=>fi(C)||lc(C)),u=()=>t.map(C=>{if(fn(C))return C.value;if(fi(C))return wo(C);if(St(C))return ja(C,l,2)})):St(t)?e?u=()=>ja(t,l,2):u=()=>{if(!(l&&l.isUnmounted))return c&&c(),lr(t,l,3,[f])}:u=br,e&&r){const C=u;u=()=>wo(C())}let c,f=C=>{c=b.onStop=()=>{ja(C,l,4)}},v;if(Zl)if(f=br,e?n&&lr(e,l,3,[u(),d?[]:void 0,f]):u(),a==="sync"){const C=o7();v=C.__watcherHandles||(C.__watcherHandles=[])}else return br;let p=d?new Array(t.length).fill(zu):zu;const g=()=>{if(b.active)if(e){const C=b.run();(r||s||(d?C.some((w,P)=>Wl(w,p[P])):Wl(C,p)))&&(c&&c(),lr(e,l,3,[C,p===zu?void 0:d&&p[0]===zu?[]:p,f]),p=C)}else b.run()};g.allowRecurse=!!e;let m;a==="sync"?m=g:a==="post"?m=()=>Rn(g,l&&l.suspense):(g.pre=!0,l&&(g.id=l.uid),m=()=>Up(g));const b=new Bp(u,m);e?n?g():p=b.run():a==="post"?Rn(b.run.bind(b),l&&l.suspense):b.run();const x=()=>{b.stop(),l&&l.scope&&Ap(l.scope.effects,b)};return v&&v.push(x),x}function hT(t,e,n){const r=this.proxy,a=pn(t)?t.includes(".")?PS(r,t):()=>r[t]:t.bind(r,r);let o;St(e)?o=e:(o=e.handler,n=e);const i=dn;ki(this);const l=Yp(a,o.bind(r),n);return i?ki(i):To(),l}function PS(t,e){const n=e.split(".");return()=>{let r=t;for(let a=0;a{wo(n,e)});else if(y5(t))for(const n in t)wo(t[n],e);return t}function kS(){const t={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Ge(()=>{t.isMounted=!0}),ut(()=>{t.isUnmounting=!0}),t}const tr=[Function,Array],pT={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:tr,onEnter:tr,onAfterEnter:tr,onEnterCancelled:tr,onBeforeLeave:tr,onLeave:tr,onAfterLeave:tr,onLeaveCancelled:tr,onBeforeAppear:tr,onAppear:tr,onAfterAppear:tr,onAppearCancelled:tr},setup(t,{slots:e}){const n=sn(),r=kS();let a;return()=>{const o=e.default&&Gp(e.default(),!0);if(!o||!o.length)return;let i=o[0];if(o.length>1){for(const g of o)if(g.type!==qn){i=g;break}}const l=rt(t),{mode:u}=l;if(r.isLeaving)return xf(i);const s=Z0(i);if(!s)return xf(i);const d=ql(s,l,r,n);Xl(s,d);const c=n.subTree,f=c&&Z0(c);let v=!1;const{getTransitionKey:p}=s.type;if(p){const g=p();a===void 0?a=g:g!==a&&(a=g,v=!0)}if(f&&f.type!==qn&&(!po(s,f)||v)){const g=ql(f,l,r,n);if(Xl(f,g),u==="out-in")return r.isLeaving=!0,g.afterLeave=()=>{r.isLeaving=!1,n.update.active!==!1&&n.update()},xf(i);u==="in-out"&&s.type!==qn&&(g.delayLeave=(m,b,x)=>{const C=TS(r,f);C[String(f.key)]=f,m._leaveCb=()=>{b(),m._leaveCb=void 0,delete d.delayedLeave},d.delayedLeave=x})}return i}}},OS=pT;function TS(t,e){const{leavingVNodes:n}=t;let r=n.get(e.type);return r||(r=Object.create(null),n.set(e.type,r)),r}function ql(t,e,n,r){const{appear:a,mode:o,persisted:i=!1,onBeforeEnter:l,onEnter:u,onAfterEnter:s,onEnterCancelled:d,onBeforeLeave:c,onLeave:f,onAfterLeave:v,onLeaveCancelled:p,onBeforeAppear:g,onAppear:m,onAfterAppear:b,onAppearCancelled:x}=e,C=String(t.key),w=TS(n,t),P=(T,O)=>{T&&lr(T,r,9,O)},S=(T,O)=>{const N=O[1];P(T,O),bt(T)?T.every($=>$.length<=1)&&N():T.length<=1&&N()},k={mode:o,persisted:i,beforeEnter(T){let O=l;if(!n.isMounted)if(a)O=g||l;else return;T._leaveCb&&T._leaveCb(!0);const N=w[C];N&&po(t,N)&&N.el._leaveCb&&N.el._leaveCb(),P(O,[T])},enter(T){let O=u,N=s,$=d;if(!n.isMounted)if(a)O=m||u,N=b||s,$=x||d;else return;let I=!1;const E=T._enterCb=F=>{I||(I=!0,F?P($,[T]):P(N,[T]),k.delayedLeave&&k.delayedLeave(),T._enterCb=void 0)};O?S(O,[T,E]):E()},leave(T,O){const N=String(t.key);if(T._enterCb&&T._enterCb(!0),n.isUnmounting)return O();P(c,[T]);let $=!1;const I=T._leaveCb=E=>{$||($=!0,O(),E?P(p,[T]):P(v,[T]),T._leaveCb=void 0,w[N]===t&&delete w[N])};w[N]=t,f?S(f,[T,I]):I()},clone(T){return ql(T,e,n,r)}};return k}function xf(t){if(ad(t))return t=Cn(t),t.children=null,t}function Z0(t){return ad(t)?t.children?t.children[0]:void 0:t}function Xl(t,e){t.shapeFlag&6&&t.component?Xl(t.component.subTree,e):t.shapeFlag&128?(t.ssContent.transition=e.clone(t.ssContent),t.ssFallback.transition=e.clone(t.ssFallback)):t.transition=e}function Gp(t,e=!1,n){let r=[],a=0;for(let o=0;o1)for(let o=0;o!!t.type.__asyncLoader,ad=t=>t.type.__isKeepAlive;function od(t,e){MS(t,"a",e)}function ES(t,e){MS(t,"da",e)}function MS(t,e,n=dn){const r=t.__wdc||(t.__wdc=()=>{let a=n;for(;a;){if(a.isDeactivated)return;a=a.parent}return t()});if(id(e,r,n),n){let a=n.parent;for(;a&&a.parent;)ad(a.parent.vnode)&&gT(r,e,n,a),a=a.parent}}function gT(t,e,n,r){const a=id(e,t,r,!0);Pn(()=>{Ap(r[e],a)},n)}function id(t,e,n=dn,r=!1){if(n){const a=n[t]||(n[t]=[]),o=e.__weh||(e.__weh=(...i)=>{if(n.isUnmounted)return;ji(),ki(n);const l=lr(e,n,t,i);return To(),Vi(),l});return r?a.unshift(o):a.push(o),o}}const pa=t=>(e,n=dn)=>(!Zl||t==="sp")&&id(t,(...r)=>e(...r),n),ld=pa("bm"),Ge=pa("m"),qp=pa("bu"),Sn=pa("u"),ut=pa("bum"),Pn=pa("um"),mT=pa("sp"),yT=pa("rtg"),bT=pa("rtc");function CT(t,e=dn){id("ec",t,e)}function gn(t,e){const n=mn;if(n===null)return t;const r=sd(n)||n.proxy,a=t.dirs||(t.dirs=[]);for(let o=0;ovn(e)?!(e.type===qn||e.type===et&&!NS(e.children)):!0)?t:null}const Yv=t=>t?WS(t)?sd(t)||t.proxy:Yv(t.parent):null,kl=hn(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>Yv(t.parent),$root:t=>Yv(t.root),$emit:t=>t.emit,$options:t=>Qp(t),$forceUpdate:t=>t.f||(t.f=()=>Up(t.update)),$nextTick:t=>t.n||(t.n=nt.bind(t.proxy)),$watch:t=>hT.bind(t)}),Sf=(t,e)=>t!==Ht&&!t.__isScriptSetup&&Tt(t,e),PT={get({_:t},e){const{ctx:n,setupState:r,data:a,props:o,accessCache:i,type:l,appContext:u}=t;let s;if(e[0]!=="$"){const v=i[e];if(v!==void 0)switch(v){case 1:return r[e];case 2:return a[e];case 4:return n[e];case 3:return o[e]}else{if(Sf(r,e))return i[e]=1,r[e];if(a!==Ht&&Tt(a,e))return i[e]=2,a[e];if((s=t.propsOptions[0])&&Tt(s,e))return i[e]=3,o[e];if(n!==Ht&&Tt(n,e))return i[e]=4,n[e];Gv&&(i[e]=0)}}const d=kl[e];let c,f;if(d)return e==="$attrs"&&Xn(t,"get",e),d(t);if((c=l.__cssModules)&&(c=c[e]))return c;if(n!==Ht&&Tt(n,e))return i[e]=4,n[e];if(f=u.config.globalProperties,Tt(f,e))return f[e]},set({_:t},e,n){const{data:r,setupState:a,ctx:o}=t;return Sf(a,e)?(a[e]=n,!0):r!==Ht&&Tt(r,e)?(r[e]=n,!0):Tt(t.props,e)||e[0]==="$"&&e.slice(1)in t?!1:(o[e]=n,!0)},has({_:{data:t,setupState:e,accessCache:n,ctx:r,appContext:a,propsOptions:o}},i){let l;return!!n[i]||t!==Ht&&Tt(t,i)||Sf(e,i)||(l=o[0])&&Tt(l,i)||Tt(r,i)||Tt(kl,i)||Tt(a.config.globalProperties,i)},defineProperty(t,e,n){return n.get!=null?t._.accessCache[e]=0:Tt(n,"value")&&this.set(t,e,n.value,null),Reflect.defineProperty(t,e,n)}};let Gv=!0;function kT(t){const e=Qp(t),n=t.proxy,r=t.ctx;Gv=!1,e.beforeCreate&&e1(e.beforeCreate,t,"bc");const{data:a,computed:o,methods:i,watch:l,provide:u,inject:s,created:d,beforeMount:c,mounted:f,beforeUpdate:v,updated:p,activated:g,deactivated:m,beforeDestroy:b,beforeUnmount:x,destroyed:C,unmounted:w,render:P,renderTracked:S,renderTriggered:k,errorCaptured:T,serverPrefetch:O,expose:N,inheritAttrs:$,components:I,directives:E,filters:F}=e;if(s&&OT(s,r,null,t.appContext.config.unwrapInjectedRef),i)for(const D in i){const _=i[D];St(_)&&(r[D]=_.bind(n))}if(a){const D=a.call(n,n);Zt(D)&&(t.data=xt(D))}if(Gv=!0,o)for(const D in o){const _=o[D],M=St(_)?_.bind(n,n):St(_.get)?_.get.bind(n,n):br,V=!St(_)&&St(_.set)?_.set.bind(n):br,L=B({get:M,set:V});Object.defineProperty(r,D,{enumerable:!0,configurable:!0,get:()=>L.value,set:U=>L.value=U})}if(l)for(const D in l)$S(l[D],r,n,D);if(u){const D=St(u)?u.call(n):u;Reflect.ownKeys(D).forEach(_=>{at(_,D[_])})}d&&e1(d,t,"c");function R(D,_){bt(_)?_.forEach(M=>D(M.bind(n))):_&&D(_.bind(n))}if(R(ld,c),R(Ge,f),R(qp,v),R(Sn,p),R(od,g),R(ES,m),R(CT,T),R(bT,S),R(yT,k),R(ut,x),R(Pn,w),R(mT,O),bt(N))if(N.length){const D=t.exposed||(t.exposed={});N.forEach(_=>{Object.defineProperty(D,_,{get:()=>n[_],set:M=>n[_]=M})})}else t.exposed||(t.exposed={});P&&t.render===br&&(t.render=P),$!=null&&(t.inheritAttrs=$),I&&(t.components=I),E&&(t.directives=E)}function OT(t,e,n=br,r=!1){bt(t)&&(t=qv(t));for(const a in t){const o=t[a];let i;Zt(o)?"default"in o?i=Ze(o.from||a,o.default,!0):i=Ze(o.from||a):i=Ze(o),fn(i)&&r?Object.defineProperty(e,a,{enumerable:!0,configurable:!0,get:()=>i.value,set:l=>i.value=l}):e[a]=i}}function e1(t,e,n){lr(bt(t)?t.map(r=>r.bind(e.proxy)):t.bind(e.proxy),e,n)}function $S(t,e,n,r){const a=r.includes(".")?PS(n,r):()=>n[r];if(pn(t)){const o=e[t];St(o)&&Se(a,o)}else if(St(t))Se(a,t.bind(n));else if(Zt(t))if(bt(t))t.forEach(o=>$S(o,e,n,r));else{const o=St(t.handler)?t.handler.bind(n):e[t.handler];St(o)&&Se(a,o,t)}}function Qp(t){const e=t.type,{mixins:n,extends:r}=e,{mixins:a,optionsCache:o,config:{optionMergeStrategies:i}}=t.appContext,l=o.get(e);let u;return l?u=l:!a.length&&!n&&!r?u=e:(u={},a.length&&a.forEach(s=>sc(u,s,i,!0)),sc(u,e,i)),Zt(e)&&o.set(e,u),u}function sc(t,e,n,r=!1){const{mixins:a,extends:o}=e;o&&sc(t,o,n,!0),a&&a.forEach(i=>sc(t,i,n,!0));for(const i in e)if(!(r&&i==="expose")){const l=TT[i]||n&&n[i];t[i]=l?l(t[i],e[i]):e[i]}return t}const TT={data:t1,props:co,emits:co,methods:co,computed:co,beforeCreate:Tn,created:Tn,beforeMount:Tn,mounted:Tn,beforeUpdate:Tn,updated:Tn,beforeDestroy:Tn,beforeUnmount:Tn,destroyed:Tn,unmounted:Tn,activated:Tn,deactivated:Tn,errorCaptured:Tn,serverPrefetch:Tn,components:co,directives:co,watch:MT,provide:t1,inject:ET};function t1(t,e){return e?t?function(){return hn(St(t)?t.call(this,this):t,St(e)?e.call(this,this):e)}:e:t}function ET(t,e){return co(qv(t),qv(e))}function qv(t){if(bt(t)){const e={};for(let n=0;n0)&&!(i&16)){if(i&8){const d=t.vnode.dynamicProps;for(let c=0;c{u=!0;const[f,v]=RS(c,e,!0);hn(i,f),v&&l.push(...v)};!n&&e.mixins.length&&e.mixins.forEach(d),t.extends&&d(t.extends),t.mixins&&t.mixins.forEach(d)}if(!o&&!u)return Zt(t)&&r.set(t,di),di;if(bt(o))for(let d=0;d-1,v[1]=g<0||p-1||Tt(v,"default"))&&l.push(c)}}}const s=[i,l];return Zt(t)&&r.set(t,s),s}function n1(t){return t[0]!=="$"}function r1(t){const e=t&&t.toString().match(/^\s*function (\w+)/);return e?e[1]:t===null?"null":""}function a1(t,e){return r1(t)===r1(e)}function o1(t,e){return bt(e)?e.findIndex(n=>a1(n,t)):St(e)&&a1(e,t)?0:-1}const DS=t=>t[0]==="_"||t==="$stable",Zp=t=>bt(t)?t.map(Lr):[Lr(t)],NT=(t,e,n)=>{if(e._n)return e;const r=ei((...a)=>Zp(e(...a)),n);return r._c=!1,r},FS=(t,e,n)=>{const r=t._ctx;for(const a in t){if(DS(a))continue;const o=t[a];if(St(o))e[a]=NT(a,o,r);else if(o!=null){const i=Zp(o);e[a]=()=>i}}},LS=(t,e)=>{const n=Zp(e);t.slots.default=()=>n},$T=(t,e)=>{if(t.vnode.shapeFlag&32){const n=e._;n?(t.slots=rt(e),ic(e,"_",n)):FS(e,t.slots={})}else t.slots={},e&&LS(t,e);ic(t.slots,ud,1)},AT=(t,e,n)=>{const{vnode:r,slots:a}=t;let o=!0,i=Ht;if(r.shapeFlag&32){const l=e._;l?n&&l===1?o=!1:(hn(a,e),!n&&l===1&&delete a._):(o=!e.$stable,FS(e,a)),i=e}else e&&(LS(t,e),i={default:1});if(o)for(const l in a)!DS(l)&&!(l in i)&&delete a[l]};function BS(){return{app:null,config:{isNativeTag:f5,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let RT=0;function DT(t,e){return function(r,a=null){St(r)||(r=Object.assign({},r)),a!=null&&!Zt(a)&&(a=null);const o=BS(),i=new Set;let l=!1;const u=o.app={_uid:RT++,_component:r,_props:a,_container:null,_context:o,_instance:null,version:i7,get config(){return o.config},set config(s){},use(s,...d){return i.has(s)||(s&&St(s.install)?(i.add(s),s.install(u,...d)):St(s)&&(i.add(s),s(u,...d))),u},mixin(s){return o.mixins.includes(s)||o.mixins.push(s),u},component(s,d){return d?(o.components[s]=d,u):o.components[s]},directive(s,d){return d?(o.directives[s]=d,u):o.directives[s]},mount(s,d,c){if(!l){const f=h(r,a);return f.appContext=o,d&&e?e(f,s):t(f,s,c),l=!0,u._container=s,s.__vue_app__=u,sd(f.component)||f.component.proxy}},unmount(){l&&(t(null,u._container),delete u._container.__vue_app__)},provide(s,d){return o.provides[s]=d,u}};return u}}function Qv(t,e,n,r,a=!1){if(bt(t)){t.forEach((f,v)=>Qv(f,e&&(bt(e)?e[v]:e),n,r,a));return}if(Pl(r)&&!a)return;const o=r.shapeFlag&4?sd(r.component)||r.component.proxy:r.el,i=a?null:o,{i:l,r:u}=t,s=e&&e.r,d=l.refs===Ht?l.refs={}:l.refs,c=l.setupState;if(s!=null&&s!==u&&(pn(s)?(d[s]=null,Tt(c,s)&&(c[s]=null)):fn(s)&&(s.value=null)),St(u))ja(u,l,12,[i,d]);else{const f=pn(u),v=fn(u);if(f||v){const p=()=>{if(t.f){const g=f?Tt(c,u)?c[u]:d[u]:u.value;a?bt(g)&&Ap(g,o):bt(g)?g.includes(o)||g.push(o):f?(d[u]=[o],Tt(c,u)&&(c[u]=d[u])):(u.value=[o],t.k&&(d[t.k]=u.value))}else f?(d[u]=i,Tt(c,u)&&(c[u]=i)):v&&(u.value=i,t.k&&(d[t.k]=i))};i?(p.id=-1,Rn(p,n)):p()}}}const Rn=vT;function FT(t){return LT(t)}function LT(t,e){const n=x5();n.__VUE__=!0;const{insert:r,remove:a,patchProp:o,createElement:i,createText:l,createComment:u,setText:s,setElementText:d,parentNode:c,nextSibling:f,setScopeId:v=br,insertStaticContent:p}=t,g=(q,H,Z,re=null,oe=null,le=null,me=!1,se=null,ie=!!H.dynamicChildren)=>{if(q===H)return;q&&!po(q,H)&&(re=W(q),U(q,oe,le,!0),q=null),H.patchFlag===-2&&(ie=!1,H.dynamicChildren=null);const{type:ne,ref:de,shapeFlag:ve}=H;switch(ne){case Ua:m(q,H,Z,re);break;case qn:b(q,H,Z,re);break;case Pf:q==null&&x(H,Z,re,me);break;case et:I(q,H,Z,re,oe,le,me,se,ie);break;default:ve&1?P(q,H,Z,re,oe,le,me,se,ie):ve&6?E(q,H,Z,re,oe,le,me,se,ie):(ve&64||ve&128)&&ne.process(q,H,Z,re,oe,le,me,se,ie,J)}de!=null&&oe&&Qv(de,q&&q.ref,le,H||q,!H)},m=(q,H,Z,re)=>{if(q==null)r(H.el=l(H.children),Z,re);else{const oe=H.el=q.el;H.children!==q.children&&s(oe,H.children)}},b=(q,H,Z,re)=>{q==null?r(H.el=u(H.children||""),Z,re):H.el=q.el},x=(q,H,Z,re)=>{[q.el,q.anchor]=p(q.children,H,Z,re,q.el,q.anchor)},C=({el:q,anchor:H},Z,re)=>{let oe;for(;q&&q!==H;)oe=f(q),r(q,Z,re),q=oe;r(H,Z,re)},w=({el:q,anchor:H})=>{let Z;for(;q&&q!==H;)Z=f(q),a(q),q=Z;a(H)},P=(q,H,Z,re,oe,le,me,se,ie)=>{me=me||H.type==="svg",q==null?S(H,Z,re,oe,le,me,se,ie):O(q,H,oe,le,me,se,ie)},S=(q,H,Z,re,oe,le,me,se)=>{let ie,ne;const{type:de,props:ve,shapeFlag:be,transition:Pe,dirs:$e}=q;if(ie=q.el=i(q.type,le,ve&&ve.is,ve),be&8?d(ie,q.children):be&16&&T(q.children,ie,null,re,oe,le&&de!=="foreignObject",me,se),$e&&eo(q,null,re,"created"),ve){for(const we in ve)we!=="value"&&!Ps(we)&&o(ie,we,null,ve[we],le,q.children,re,oe,X);"value"in ve&&o(ie,"value",null,ve.value),(ne=ve.onVnodeBeforeMount)&&Ar(ne,re,q)}k(ie,q,q.scopeId,me,re),$e&&eo(q,null,re,"beforeMount");const De=(!oe||oe&&!oe.pendingBranch)&&Pe&&!Pe.persisted;De&&Pe.beforeEnter(ie),r(ie,H,Z),((ne=ve&&ve.onVnodeMounted)||De||$e)&&Rn(()=>{ne&&Ar(ne,re,q),De&&Pe.enter(ie),$e&&eo(q,null,re,"mounted")},oe)},k=(q,H,Z,re,oe)=>{if(Z&&v(q,Z),re)for(let le=0;le{for(let ne=ie;ne{const se=H.el=q.el;let{patchFlag:ie,dynamicChildren:ne,dirs:de}=H;ie|=q.patchFlag&16;const ve=q.props||Ht,be=H.props||Ht;let Pe;Z&&to(Z,!1),(Pe=be.onVnodeBeforeUpdate)&&Ar(Pe,Z,H,q),de&&eo(H,q,Z,"beforeUpdate"),Z&&to(Z,!0);const $e=oe&&H.type!=="foreignObject";if(ne?N(q.dynamicChildren,ne,se,Z,re,$e,le):me||_(q,H,se,null,Z,re,$e,le,!1),ie>0){if(ie&16)$(se,H,ve,be,Z,re,oe);else if(ie&2&&ve.class!==be.class&&o(se,"class",null,be.class,oe),ie&4&&o(se,"style",ve.style,be.style,oe),ie&8){const De=H.dynamicProps;for(let we=0;we{Pe&&Ar(Pe,Z,H,q),de&&eo(H,q,Z,"updated")},re)},N=(q,H,Z,re,oe,le,me)=>{for(let se=0;se{if(Z!==re){if(Z!==Ht)for(const se in Z)!Ps(se)&&!(se in re)&&o(q,se,Z[se],null,me,H.children,oe,le,X);for(const se in re){if(Ps(se))continue;const ie=re[se],ne=Z[se];ie!==ne&&se!=="value"&&o(q,se,ne,ie,me,H.children,oe,le,X)}"value"in re&&o(q,"value",Z.value,re.value)}},I=(q,H,Z,re,oe,le,me,se,ie)=>{const ne=H.el=q?q.el:l(""),de=H.anchor=q?q.anchor:l("");let{patchFlag:ve,dynamicChildren:be,slotScopeIds:Pe}=H;Pe&&(se=se?se.concat(Pe):Pe),q==null?(r(ne,Z,re),r(de,Z,re),T(H.children,Z,de,oe,le,me,se,ie)):ve>0&&ve&64&&be&&q.dynamicChildren?(N(q.dynamicChildren,be,Z,oe,le,me,se),(H.key!=null||oe&&H===oe.subTree)&&Jp(q,H,!0)):_(q,H,Z,de,oe,le,me,se,ie)},E=(q,H,Z,re,oe,le,me,se,ie)=>{H.slotScopeIds=se,q==null?H.shapeFlag&512?oe.ctx.activate(H,Z,re,me,ie):F(H,Z,re,oe,le,me,ie):j(q,H,ie)},F=(q,H,Z,re,oe,le,me)=>{const se=q.component=XT(q,re,oe);if(ad(q)&&(se.ctx.renderer=J),QT(se),se.asyncDep){if(oe&&oe.registerDep(se,R),!q.el){const ie=se.subTree=h(qn);b(null,ie,H,Z)}return}R(se,q,H,Z,oe,le,me)},j=(q,H,Z)=>{const re=H.component=q.component;if(cT(q,H,Z))if(re.asyncDep&&!re.asyncResolved){D(re,H,Z);return}else re.next=H,aT(re.update),re.update();else H.el=q.el,re.vnode=H},R=(q,H,Z,re,oe,le,me)=>{const se=()=>{if(q.isMounted){let{next:de,bu:ve,u:be,parent:Pe,vnode:$e}=q,De=de,we;to(q,!1),de?(de.el=$e.el,D(q,de,me)):de=$e,ve&&bf(ve),(we=de.props&&de.props.onVnodeBeforeUpdate)&&Ar(we,Pe,de,$e),to(q,!0);const he=Cf(q),Oe=q.subTree;q.subTree=he,g(Oe,he,c(Oe.el),W(Oe),q,oe,le),de.el=he.el,De===null&&dT(q,he.el),be&&Rn(be,oe),(we=de.props&&de.props.onVnodeUpdated)&&Rn(()=>Ar(we,Pe,de,$e),oe)}else{let de;const{el:ve,props:be}=H,{bm:Pe,m:$e,parent:De}=q,we=Pl(H);if(to(q,!1),Pe&&bf(Pe),!we&&(de=be&&be.onVnodeBeforeMount)&&Ar(de,De,H),to(q,!0),ve&&ae){const he=()=>{q.subTree=Cf(q),ae(ve,q.subTree,q,oe,null)};we?H.type.__asyncLoader().then(()=>!q.isUnmounted&&he()):he()}else{const he=q.subTree=Cf(q);g(null,he,Z,re,q,oe,le),H.el=he.el}if($e&&Rn($e,oe),!we&&(de=be&&be.onVnodeMounted)){const he=H;Rn(()=>Ar(de,De,he),oe)}(H.shapeFlag&256||De&&Pl(De.vnode)&&De.vnode.shapeFlag&256)&&q.a&&Rn(q.a,oe),q.isMounted=!0,H=Z=re=null}},ie=q.effect=new Bp(se,()=>Up(ne),q.scope),ne=q.update=()=>ie.run();ne.id=q.uid,to(q,!0),ne()},D=(q,H,Z)=>{H.component=q;const re=q.vnode.props;q.vnode=H,q.next=null,_T(q,H.props,re,Z),AT(q,H.children,Z),ji(),X0(),Vi()},_=(q,H,Z,re,oe,le,me,se,ie=!1)=>{const ne=q&&q.children,de=q?q.shapeFlag:0,ve=H.children,{patchFlag:be,shapeFlag:Pe}=H;if(be>0){if(be&128){V(ne,ve,Z,re,oe,le,me,se,ie);return}else if(be&256){M(ne,ve,Z,re,oe,le,me,se,ie);return}}Pe&8?(de&16&&X(ne,oe,le),ve!==ne&&d(Z,ve)):de&16?Pe&16?V(ne,ve,Z,re,oe,le,me,se,ie):X(ne,oe,le,!0):(de&8&&d(Z,""),Pe&16&&T(ve,Z,re,oe,le,me,se,ie))},M=(q,H,Z,re,oe,le,me,se,ie)=>{q=q||di,H=H||di;const ne=q.length,de=H.length,ve=Math.min(ne,de);let be;for(be=0;bede?X(q,oe,le,!0,!1,ve):T(H,Z,re,oe,le,me,se,ie,ve)},V=(q,H,Z,re,oe,le,me,se,ie)=>{let ne=0;const de=H.length;let ve=q.length-1,be=de-1;for(;ne<=ve&&ne<=be;){const Pe=q[ne],$e=H[ne]=ie?Ia(H[ne]):Lr(H[ne]);if(po(Pe,$e))g(Pe,$e,Z,null,oe,le,me,se,ie);else break;ne++}for(;ne<=ve&&ne<=be;){const Pe=q[ve],$e=H[be]=ie?Ia(H[be]):Lr(H[be]);if(po(Pe,$e))g(Pe,$e,Z,null,oe,le,me,se,ie);else break;ve--,be--}if(ne>ve){if(ne<=be){const Pe=be+1,$e=Pebe)for(;ne<=ve;)U(q[ne],oe,le,!0),ne++;else{const Pe=ne,$e=ne,De=new Map;for(ne=$e;ne<=be;ne++){const ge=H[ne]=ie?Ia(H[ne]):Lr(H[ne]);ge.key!=null&&De.set(ge.key,ne)}let we,he=0;const Oe=be-$e+1;let Me=!1,Ce=0;const fe=new Array(Oe);for(ne=0;ne=Oe){U(ge,oe,le,!0);continue}let ke;if(ge.key!=null)ke=De.get(ge.key);else for(we=$e;we<=be;we++)if(fe[we-$e]===0&&po(ge,H[we])){ke=we;break}ke===void 0?U(ge,oe,le,!0):(fe[ke-$e]=ne+1,ke>=Ce?Ce=ke:Me=!0,g(ge,H[ke],Z,null,oe,le,me,se,ie),he++)}const pe=Me?BT(fe):di;for(we=pe.length-1,ne=Oe-1;ne>=0;ne--){const ge=$e+ne,ke=H[ge],_e=ge+1{const{el:le,type:me,transition:se,children:ie,shapeFlag:ne}=q;if(ne&6){L(q.component.subTree,H,Z,re);return}if(ne&128){q.suspense.move(H,Z,re);return}if(ne&64){me.move(q,H,Z,J);return}if(me===et){r(le,H,Z);for(let ve=0;vese.enter(le),oe);else{const{leave:ve,delayLeave:be,afterLeave:Pe}=se,$e=()=>r(le,H,Z),De=()=>{ve(le,()=>{$e(),Pe&&Pe()})};be?be(le,$e,De):De()}else r(le,H,Z)},U=(q,H,Z,re=!1,oe=!1)=>{const{type:le,props:me,ref:se,children:ie,dynamicChildren:ne,shapeFlag:de,patchFlag:ve,dirs:be}=q;if(se!=null&&Qv(se,null,Z,q,!0),de&256){H.ctx.deactivate(q);return}const Pe=de&1&&be,$e=!Pl(q);let De;if($e&&(De=me&&me.onVnodeBeforeUnmount)&&Ar(De,H,q),de&6)z(q.component,Z,re);else{if(de&128){q.suspense.unmount(Z,re);return}Pe&&eo(q,null,H,"beforeUnmount"),de&64?q.type.remove(q,H,Z,oe,J,re):ne&&(le!==et||ve>0&&ve&64)?X(ne,H,Z,!1,!0):(le===et&&ve&384||!oe&&de&16)&&X(ie,H,Z),re&&Y(q)}($e&&(De=me&&me.onVnodeUnmounted)||Pe)&&Rn(()=>{De&&Ar(De,H,q),Pe&&eo(q,null,H,"unmounted")},Z)},Y=q=>{const{type:H,el:Z,anchor:re,transition:oe}=q;if(H===et){K(Z,re);return}if(H===Pf){w(q);return}const le=()=>{a(Z),oe&&!oe.persisted&&oe.afterLeave&&oe.afterLeave()};if(q.shapeFlag&1&&oe&&!oe.persisted){const{leave:me,delayLeave:se}=oe,ie=()=>me(Z,le);se?se(q.el,le,ie):ie()}else le()},K=(q,H)=>{let Z;for(;q!==H;)Z=f(q),a(q),q=Z;a(H)},z=(q,H,Z)=>{const{bum:re,scope:oe,update:le,subTree:me,um:se}=q;re&&bf(re),oe.stop(),le&&(le.active=!1,U(me,q,H,Z)),se&&Rn(se,H),Rn(()=>{q.isUnmounted=!0},H),H&&H.pendingBranch&&!H.isUnmounted&&q.asyncDep&&!q.asyncResolved&&q.suspenseId===H.pendingId&&(H.deps--,H.deps===0&&H.resolve())},X=(q,H,Z,re=!1,oe=!1,le=0)=>{for(let me=le;meq.shapeFlag&6?W(q.component.subTree):q.shapeFlag&128?q.suspense.next():f(q.anchor||q.el),ee=(q,H,Z)=>{q==null?H._vnode&&U(H._vnode,null,null,!0):g(H._vnode||null,q,H,null,null,null,Z),X0(),xS(),H._vnode=q},J={p:g,um:U,m:L,r:Y,mt:F,mc:T,pc:_,pbc:N,n:W,o:t};let te,ae;return e&&([te,ae]=e(J)),{render:ee,hydrate:te,createApp:DT(ee,te)}}function to({effect:t,update:e},n){t.allowRecurse=e.allowRecurse=n}function Jp(t,e,n=!1){const r=t.children,a=e.children;if(bt(r)&&bt(a))for(let o=0;o>1,t[n[l]]0&&(e[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=e[i];return n}const jT=t=>t.__isTeleport,Ol=t=>t&&(t.disabled||t.disabled===""),i1=t=>typeof SVGElement<"u"&&t instanceof SVGElement,Zv=(t,e)=>{const n=t&&t.to;return pn(n)?e?e(n):null:n},VT={__isTeleport:!0,process(t,e,n,r,a,o,i,l,u,s){const{mc:d,pc:c,pbc:f,o:{insert:v,querySelector:p,createText:g,createComment:m}}=s,b=Ol(e.props);let{shapeFlag:x,children:C,dynamicChildren:w}=e;if(t==null){const P=e.el=g(""),S=e.anchor=g("");v(P,n,r),v(S,n,r);const k=e.target=Zv(e.props,p),T=e.targetAnchor=g("");k&&(v(T,k),i=i||i1(k));const O=(N,$)=>{x&16&&d(C,N,$,a,o,i,l,u)};b?O(n,S):k&&O(k,T)}else{e.el=t.el;const P=e.anchor=t.anchor,S=e.target=t.target,k=e.targetAnchor=t.targetAnchor,T=Ol(t.props),O=T?n:S,N=T?P:k;if(i=i||i1(S),w?(f(t.dynamicChildren,w,O,a,o,i,l),Jp(t,e,!0)):u||c(t,e,O,N,a,o,i,l,!1),b)T||Wu(e,n,P,s,1);else if((e.props&&e.props.to)!==(t.props&&t.props.to)){const $=e.target=Zv(e.props,p);$&&Wu(e,$,null,s,0)}else T&&Wu(e,S,k,s,1)}jS(e)},remove(t,e,n,r,{um:a,o:{remove:o}},i){const{shapeFlag:l,children:u,anchor:s,targetAnchor:d,target:c,props:f}=t;if(c&&o(d),(i||!Ol(f))&&(o(s),l&16))for(let v=0;v0?yr||di:null,HT(),Ql>0&&yr&&yr.push(t),t}function zT(t,e,n,r,a,o){return VS(zS(t,e,n,r,a,o,!0))}function KS(t,e,n,r,a){return VS(h(t,e,n,r,a,!0))}function vn(t){return t?t.__v_isVNode===!0:!1}function po(t,e){return t.type===e.type&&t.key===e.key}const ud="__vInternal",HS=({key:t})=>t??null,ks=({ref:t,ref_key:e,ref_for:n})=>t!=null?pn(t)||fn(t)||St(t)?{i:mn,r:t,k:e,f:!!n}:t:null;function zS(t,e=null,n=null,r=0,a=null,o=t===et?0:1,i=!1,l=!1){const u={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&HS(e),ref:e&&ks(e),scopeId:rd,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:r,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:mn};return l?(ng(u,n),o&128&&t.normalize(u)):n&&(u.shapeFlag|=pn(n)?8:16),Ql>0&&!i&&yr&&(u.patchFlag>0||o&6)&&u.patchFlag!==32&&yr.push(u),u}const h=WT;function WT(t,e=null,n=null,r=0,a=null,o=!1){if((!t||t===wT)&&(t=qn),vn(t)){const l=Cn(t,e,!0);return n&&ng(l,n),Ql>0&&!o&&yr&&(l.shapeFlag&6?yr[yr.indexOf(t)]=l:yr.push(l)),l.patchFlag|=-2,l}if(t7(t)&&(t=t.__vccOpts),e){e=UT(e);let{class:l,style:u}=e;l&&!pn(l)&&(e.class=Np(l)),Zt(u)&&(fS(u)&&!bt(u)&&(u=hn({},u)),e.style=_p(u))}const i=pn(t)?1:fT(t)?128:jT(t)?64:Zt(t)?4:St(t)?2:0;return zS(t,e,n,r,a,i,o,!0)}function UT(t){return t?fS(t)||ud in t?hn({},t):t:null}function Cn(t,e,n=!1){const{props:r,ref:a,patchFlag:o,children:i}=t,l=e?YT(r||{},e):r;return{__v_isVNode:!0,__v_skip:!0,type:t.type,props:l,key:l&&HS(l),ref:e&&e.ref?n&&a?bt(a)?a.concat(ks(e)):[a,ks(e)]:ks(e):a,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:i,target:t.target,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==et?o===-1?16:o|16:o,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:t.transition,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&Cn(t.ssContent),ssFallback:t.ssFallback&&Cn(t.ssFallback),el:t.el,anchor:t.anchor,ctx:t.ctx}}function wn(t=" ",e=0){return h(Ua,null,t,e)}function Ure(t="",e=!1){return e?(tg(),KS(qn,null,t)):h(qn,null,t)}function Lr(t){return t==null||typeof t=="boolean"?h(qn):bt(t)?h(et,null,t.slice()):typeof t=="object"?Ia(t):h(Ua,null,String(t))}function Ia(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:Cn(t)}function ng(t,e){let n=0;const{shapeFlag:r}=t;if(e==null)e=null;else if(bt(e))n=16;else if(typeof e=="object")if(r&65){const a=e.default;a&&(a._c&&(a._d=!1),ng(t,a()),a._c&&(a._d=!0));return}else{n=32;const a=e._;!a&&!(ud in e)?e._ctx=mn:a===3&&mn&&(mn.slots._===1?e._=1:(e._=2,t.patchFlag|=1024))}else St(e)?(e={default:e,_ctx:mn},n=32):(e=String(e),r&64?(n=16,e=[wn(e)]):n=8);t.children=e,t.shapeFlag|=n}function YT(...t){const e={};for(let n=0;ndn||mn,ki=t=>{dn=t,t.scope.on()},To=()=>{dn&&dn.scope.off(),dn=null};function WS(t){return t.vnode.shapeFlag&4}let Zl=!1;function QT(t,e=!1){Zl=e;const{props:n,children:r}=t.vnode,a=WS(t);IT(t,n,a,e),$T(t,r);const o=a?ZT(t,e):void 0;return Zl=!1,o}function ZT(t,e){const n=t.type;t.accessCache=Object.create(null),t.proxy=vS(new Proxy(t.ctx,PT));const{setup:r}=n;if(r){const a=t.setupContext=r.length>1?YS(t):null;ki(t),ji();const o=ja(r,t,0,[t.props,a]);if(Vi(),To(),Jw(o)){if(o.then(To,To),e)return o.then(i=>{u1(t,i,e)}).catch(i=>{td(i,t,0)});t.asyncDep=o}else u1(t,o,e)}else US(t,e)}function u1(t,e,n){St(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:Zt(e)&&(t.setupState=mS(e)),US(t,n)}let s1;function US(t,e,n){const r=t.type;if(!t.render){if(!e&&s1&&!r.render){const a=r.template||Qp(t).template;if(a){const{isCustomElement:o,compilerOptions:i}=t.appContext.config,{delimiters:l,compilerOptions:u}=r,s=hn(hn({isCustomElement:o,delimiters:l},i),u);r.render=s1(a,s)}}t.render=r.render||br}ki(t),ji(),kT(t),Vi(),To()}function JT(t){return new Proxy(t.attrs,{get(e,n){return Xn(t,"get","$attrs"),e[n]}})}function YS(t){const e=r=>{t.exposed=r||{}};let n;return{get attrs(){return n||(n=JT(t))},slots:t.slots,emit:t.emit,expose:e}}function sd(t){if(t.exposed)return t.exposeProxy||(t.exposeProxy=new Proxy(mS(vS(t.exposed)),{get(e,n){if(n in e)return e[n];if(n in kl)return kl[n](t)},has(e,n){return n in e||n in kl}}))}function e7(t,e=!0){return St(t)?t.displayName||t.name:t.name||e&&t.__name}function t7(t){return St(t)&&"__vccOpts"in t}const B=(t,e)=>tT(t,e,Zl);function n7(){return r7().attrs}function r7(){const t=sn();return t.setupContext||(t.setupContext=YS(t))}function Jl(t,e,n){const r=arguments.length;return r===2?Zt(e)&&!bt(e)?vn(e)?h(t,null,[e]):h(t,e):h(t,null,e):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&vn(n)&&(n=[n]),h(t,e,n))}const a7=Symbol(""),o7=()=>Ze(a7),i7="3.2.45",l7="http://www.w3.org/2000/svg",go=typeof document<"u"?document:null,c1=go&&go.createElement("template"),u7={insert:(t,e,n)=>{e.insertBefore(t,n||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,n,r)=>{const a=e?go.createElementNS(l7,t):go.createElement(t,n?{is:n}:void 0);return t==="select"&&r&&r.multiple!=null&&a.setAttribute("multiple",r.multiple),a},createText:t=>go.createTextNode(t),createComment:t=>go.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>go.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,n,r,a,o){const i=n?n.previousSibling:e.lastChild;if(a&&(a===o||a.nextSibling))for(;e.insertBefore(a.cloneNode(!0),n),!(a===o||!(a=a.nextSibling)););else{c1.innerHTML=r?`${t}`:t;const l=c1.content;if(r){const u=l.firstChild;for(;u.firstChild;)l.appendChild(u.firstChild);l.removeChild(u)}e.insertBefore(l,n)}return[i?i.nextSibling:e.firstChild,n?n.previousSibling:e.lastChild]}};function s7(t,e,n){const r=t._vtc;r&&(e=(e?[e,...r]:[...r]).join(" ")),e==null?t.removeAttribute("class"):n?t.setAttribute("class",e):t.className=e}function c7(t,e,n){const r=t.style,a=pn(n);if(n&&!a){for(const o in n)Jv(r,o,n[o]);if(e&&!pn(e))for(const o in e)n[o]==null&&Jv(r,o,"")}else{const o=r.display;a?e!==n&&(r.cssText=n):e&&t.removeAttribute("style"),"_vod"in t&&(r.display=o)}}const d1=/\s*!important$/;function Jv(t,e,n){if(bt(n))n.forEach(r=>Jv(t,e,r));else if(n==null&&(n=""),e.startsWith("--"))t.setProperty(e,n);else{const r=d7(t,e);d1.test(n)?t.setProperty(Bi(r),n.replace(d1,""),"important"):t[r]=n}}const f1=["Webkit","Moz","ms"],kf={};function d7(t,e){const n=kf[e];if(n)return n;let r=Ln(e);if(r!=="filter"&&r in t)return kf[e]=r;r=Jc(r);for(let a=0;aOf||(y7.then(()=>Of=0),Of=Date.now());function C7(t,e){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;lr(x7(r,n.value),e,5,[r])};return n.value=t,n.attached=b7(),n}function x7(t,e){if(bt(e)){const n=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{n.call(t),t._stopped=!0},e.map(r=>a=>!a._stopped&&r&&r(a))}else return e}const p1=/^on[a-z]/,w7=(t,e,n,r,a=!1,o,i,l,u)=>{e==="class"?s7(t,r,a):e==="style"?c7(t,n,r):Xc(e)?$p(e)||g7(t,e,n,r,i):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):S7(t,e,r,a))?v7(t,e,r,o,i,l,u):(e==="true-value"?t._trueValue=r:e==="false-value"&&(t._falseValue=r),f7(t,e,r,a))};function S7(t,e,n,r){return r?!!(e==="innerHTML"||e==="textContent"||e in t&&p1.test(e)&&St(n)):e==="spellcheck"||e==="draggable"||e==="translate"||e==="form"||e==="list"&&t.tagName==="INPUT"||e==="type"&&t.tagName==="TEXTAREA"||p1.test(e)&&pn(n)?!1:e in t}const Sa="transition",rl="animation",Nn=(t,{slots:e})=>Jl(OS,qS(t),e);Nn.displayName="Transition";const GS={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},P7=Nn.props=hn({},OS.props,GS),no=(t,e=[])=>{bt(t)?t.forEach(n=>n(...e)):t&&t(...e)},g1=t=>t?bt(t)?t.some(e=>e.length>1):t.length>1:!1;function qS(t){const e={};for(const I in t)I in GS||(e[I]=t[I]);if(t.css===!1)return e;const{name:n="v",type:r,duration:a,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:u=o,appearActiveClass:s=i,appearToClass:d=l,leaveFromClass:c=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=t,p=k7(a),g=p&&p[0],m=p&&p[1],{onBeforeEnter:b,onEnter:x,onEnterCancelled:C,onLeave:w,onLeaveCancelled:P,onBeforeAppear:S=b,onAppear:k=x,onAppearCancelled:T=C}=e,O=(I,E,F)=>{Ta(I,E?d:l),Ta(I,E?s:i),F&&F()},N=(I,E)=>{I._isLeaving=!1,Ta(I,c),Ta(I,v),Ta(I,f),E&&E()},$=I=>(E,F)=>{const j=I?k:x,R=()=>O(E,I,F);no(j,[E,R]),m1(()=>{Ta(E,I?u:o),na(E,I?d:l),g1(j)||y1(E,r,g,R)})};return hn(e,{onBeforeEnter(I){no(b,[I]),na(I,o),na(I,i)},onBeforeAppear(I){no(S,[I]),na(I,u),na(I,s)},onEnter:$(!1),onAppear:$(!0),onLeave(I,E){I._isLeaving=!0;const F=()=>N(I,E);na(I,c),QS(),na(I,f),m1(()=>{I._isLeaving&&(Ta(I,c),na(I,v),g1(w)||y1(I,r,m,F))}),no(w,[I,F])},onEnterCancelled(I){O(I,!1),no(C,[I])},onAppearCancelled(I){O(I,!0),no(T,[I])},onLeaveCancelled(I){N(I),no(P,[I])}})}function k7(t){if(t==null)return null;if(Zt(t))return[Tf(t.enter),Tf(t.leave)];{const e=Tf(t);return[e,e]}}function Tf(t){return Fp(t)}function na(t,e){e.split(/\s+/).forEach(n=>n&&t.classList.add(n)),(t._vtc||(t._vtc=new Set)).add(e)}function Ta(t,e){e.split(/\s+/).forEach(r=>r&&t.classList.remove(r));const{_vtc:n}=t;n&&(n.delete(e),n.size||(t._vtc=void 0))}function m1(t){requestAnimationFrame(()=>{requestAnimationFrame(t)})}let O7=0;function y1(t,e,n,r){const a=t._endId=++O7,o=()=>{a===t._endId&&r()};if(n)return setTimeout(o,n);const{type:i,timeout:l,propCount:u}=XS(t,e);if(!i)return r();const s=i+"end";let d=0;const c=()=>{t.removeEventListener(s,f),o()},f=v=>{v.target===t&&++d>=u&&c()};setTimeout(()=>{d(n[p]||"").split(", "),a=r(`${Sa}Delay`),o=r(`${Sa}Duration`),i=b1(a,o),l=r(`${rl}Delay`),u=r(`${rl}Duration`),s=b1(l,u);let d=null,c=0,f=0;e===Sa?i>0&&(d=Sa,c=i,f=o.length):e===rl?s>0&&(d=rl,c=s,f=u.length):(c=Math.max(i,s),d=c>0?i>s?Sa:rl:null,f=d?d===Sa?o.length:u.length:0);const v=d===Sa&&/\b(transform|all)(,|$)/.test(r(`${Sa}Property`).toString());return{type:d,timeout:c,propCount:f,hasTransform:v}}function b1(t,e){for(;t.lengthC1(n)+C1(t[r])))}function C1(t){return Number(t.slice(0,-1).replace(",","."))*1e3}function QS(){return document.body.offsetHeight}const ZS=new WeakMap,JS=new WeakMap,T7={name:"TransitionGroup",props:hn({},P7,{tag:String,moveClass:String}),setup(t,{slots:e}){const n=sn(),r=kS();let a,o;return Sn(()=>{if(!a.length)return;const i=t.moveClass||`${t.name||"v"}-move`;if(!_7(a[0].el,n.vnode.el,i))return;a.forEach(E7),a.forEach(M7);const l=a.filter(I7);QS(),l.forEach(u=>{const s=u.el,d=s.style;na(s,i),d.transform=d.webkitTransform=d.transitionDuration="";const c=s._moveCb=f=>{f&&f.target!==s||(!f||/transform$/.test(f.propertyName))&&(s.removeEventListener("transitionend",c),s._moveCb=null,Ta(s,i))};s.addEventListener("transitionend",c)})}),()=>{const i=rt(t),l=qS(i);let u=i.tag||et;a=o,o=e.default?Gp(e.default()):[];for(let s=0;s{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 a=e.nodeType===1?e:e.parentNode;a.appendChild(r);const{hasTransform:o}=XS(r);return a.removeChild(r),o}const N7=["ctrl","shift","alt","meta"],$7={stop:t=>t.stopPropagation(),prevent:t=>t.preventDefault(),self:t=>t.target!==t.currentTarget,ctrl:t=>!t.ctrlKey,shift:t=>!t.shiftKey,alt:t=>!t.altKey,meta:t=>!t.metaKey,left:t=>"button"in t&&t.button!==0,middle:t=>"button"in t&&t.button!==1,right:t=>"button"in t&&t.button!==2,exact:(t,e)=>N7.some(n=>t[`${n}Key`]&&!e.includes(n))},x1=(t,e)=>(n,...r)=>{for(let a=0;a{al(t,!1)}):al(t,e))},beforeUnmount(t,{value:e}){al(t,e)}};function al(t,e){t.style.display=e?t._vod:"none"}const A7=hn({patchProp:w7},u7);let w1;function e4(){return w1||(w1=FT(A7))}const cc=(...t)=>{e4().render(...t)},t4=(...t)=>{const e=e4().createApp(...t),{mount:n}=e;return e.mount=r=>{const a=R7(r);if(!a)return;const o=e._component;!St(o)&&!o.render&&!o.template&&(o.template=a.innerHTML),a.innerHTML="";const i=n(a,!1,a instanceof SVGElement);return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),i},e};function R7(t){return pn(t)?document.querySelector(t):t}function Fe(t){"@babel/helpers - typeof";return Fe=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Fe(t)}function D7(t,e){if(Fe(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(Fe(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function n4(t){var e=D7(t,"string");return Fe(e)=="symbol"?e:e+""}function A(t,e,n){return(e=n4(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function S1(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function y(t){for(var e=1;e1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;return typeof t=="function"?t(e):t??n}function ce(){for(var t=[],e=0;e0},t.prototype.connect_=function(){!eh||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),eE?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},t.prototype.disconnect_=function(){!eh||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},t.prototype.onTransitionEnd_=function(e){var n=e.propertyName,r=n===void 0?"":n,a=J7.some(function(o){return!!~r.indexOf(o)});a&&this.refresh()},t.getInstance=function(){return this.instance_||(this.instance_=new t),this.instance_},t.instance_=null,t}(),o4=function(t,e){for(var n=0,r=Object.keys(e);n"u"||!(Element instanceof Object))){if(!(e instanceof Oi(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var n=this.observations_;n.has(e)||(n.set(e,new sE(e)),this.controller_.addObserver(this),this.controller_.refresh())}},t.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(e instanceof Oi(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var n=this.observations_;n.has(e)&&(n.delete(e),n.size||this.controller_.removeObserver(this))}},t.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},t.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach(function(n){n.isActive()&&e.activeObservations_.push(n)})},t.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,n=this.activeObservations_.map(function(r){return new cE(r.target,r.broadcastRect())});this.callback_.call(e,n,e),this.clearActive()}},t.prototype.clearActive=function(){this.activeObservations_.splice(0)},t.prototype.hasActive=function(){return this.activeObservations_.length>0},t}(),l4=typeof WeakMap<"u"?new WeakMap:new a4,u4=function(){function t(e){if(!(this instanceof t))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=tE.getInstance(),r=new dE(e,n,this);l4.set(this,r)}return t}();["observe","unobserve","disconnect"].forEach(function(t){u4.prototype[t]=function(){var e;return(e=l4.get(this))[t].apply(e,arguments)}});var fE=function(){return typeof dc.ResizeObserver<"u"?dc.ResizeObserver:u4}();const og=fE;function s4(t){if(Array.isArray(t))return t}function vE(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var r,a,o,i,l=[],u=!0,s=!1;try{if(o=(n=n.call(t)).next,e===0){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=o.call(n)).done)&&(l.push(r.value),l.length!==e);u=!0);}catch(d){s=!0,a=d}finally{try{if(!u&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}function th(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n0&&arguments[0]!==void 0?arguments[0]:"",n=arguments.length>1?arguments[1]:void 0,r={},a=/;(?![^(]*\))/g,o=/:(.+)/;return Fe(e)==="object"?e:(e.split(a).forEach(function(i){if(i){var l=i.split(o);if(l.length>1){var u=n?ag(l[0].trim()):l[0].trim();r[u]=l[1].trim()}}}),r)},la=function(e,n){return e[n]!==void 0},Et=function t(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=Array.isArray(e)?e:[e],a=[];return r.forEach(function(o){Array.isArray(o)?a.push.apply(a,Ie(t(o,n))):o&&o.type===et?a.push.apply(a,Ie(t(o.children,n))):o&&vn(o)?n&&!Cu(o)?a.push(o):n||a.push(o):nh(o)&&a.push(o)}),a},bu=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"default",r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(vn(e))return e.type===et?n==="default"?Et(e.children):[]:e.children&&e.children[n]?Et(e.children[n](r)):[];var a=e.$slots[n]&&e.$slots[n](r);return Et(a)},Ra=function(e){for(var n,r=(e==null||(n=e.vnode)===null||n===void 0?void 0:n.el)||e&&(e.$el||e);r&&!r.tagName;)r=r.nextSibling;return r},g4=function(e){var n={};if(e.$&&e.$.vnode){var r=e.$.vnode.props||{};Object.keys(e.$props).forEach(function(l){var u=e.$props[l],s=W7(l);(u!==void 0||s in r)&&(n[l]=u)})}else if(vn(e)&&Fe(e.type)==="object"){var a=e.props||{},o={};Object.keys(a).forEach(function(l){o[ag(l)]=a[l]});var i=e.type.props||{};Object.keys(i).forEach(function(l){var u=Y7(i,o,l,o[l]);(u!==void 0||l in o)&&(n[l]=u)})}return n},cg=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"default",r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,o=void 0;if(e.$){var i=e[n];if(i!==void 0)return typeof i=="function"&&a?i(r):i;o=e.$slots[n],o=a&&o?o(r):o}else if(vn(e)){var l=e.props&&e.props[n];if(l!==void 0&&e.props!==null)return typeof l=="function"&&a?l(r):l;e.type===et?o=e.children:e.children&&e.children[n]&&(o=e.children[n],o=a&&o?o(r):o)}return Array.isArray(o)&&(o=Et(o),o=o.length===1?o[0]:o,o=o.length===0?void 0:o),o};function T1(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,n={};return t.$?n=y(y({},n),t.$attrs):n=y(y({},n),t.props),ug(n)[e?"onEvents":"events"]}function DE(t){var e=(vn(t)?t.props:t.$attrs)||{},n=e.class||{},r={};return typeof n=="string"?n.split(" ").forEach(function(a){r[a.trim()]=!0}):Array.isArray(n)?ce(n).split(" ").forEach(function(a){r[a.trim()]=!0}):r=y(y({},r),n),r}function m4(t,e){var n=(vn(t)?t.props:t.$attrs)||{},r=n.style||{};if(typeof r=="string")r=sg(r,e);else if(e&&r){var a={};return Object.keys(r).forEach(function(o){return a[ag(o)]=r[o]}),a}return r}function FE(t){return t==null||t===""||Array.isArray(t)&&t.length===0}function Cu(t){return t&&(t.type===qn||t.type===et&&t.children.length===0||t.type===Ua&&t.children.trim()==="")}function LE(t){return t&&t.type===Ua}function Gt(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],e=[];return t.forEach(function(n){Array.isArray(n)?e.push.apply(e,Ie(n)):(n==null?void 0:n.type)===et?e.push.apply(e,Ie(Gt(n.children))):e.push(n)}),e.filter(function(n){return!Cu(n)})}function il(t){if(t){var e=Gt(t);return e.length?e:void 0}else return t}function Jt(t){return Array.isArray(t)&&t.length===1&&(t=t[0]),t&&t.__v_isVNode&&Fe(t.type)!=="symbol"}function $t(t,e){var n,r,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"default";return(n=e[a])!==null&&n!==void 0?n:(r=t[a])===null||r===void 0?void 0:r.call(t)}const dr=ue({compatConfig:{MODE:3},name:"ResizeObserver",props:{disabled:Boolean,onResize:Function},emits:["resize"],setup:function(e,n){var r=n.slots,a=xt({width:0,height:0,offsetHeight:0,offsetWidth:0}),o=null,i=null,l=function(){i&&(i.disconnect(),i=null)},u=function(f){var v=e.onResize,p=f[0].target,g=p.getBoundingClientRect(),m=g.width,b=g.height,x=p.offsetWidth,C=p.offsetHeight,w=Math.floor(m),P=Math.floor(b);if(a.width!==w||a.height!==P||a.offsetWidth!==x||a.offsetHeight!==C){var S={width:w,height:P,offsetWidth:x,offsetHeight:C};pt(a,S),v&&Promise.resolve().then(function(){v(y(y({},S),{},{offsetWidth:x,offsetHeight:C}),p)})}},s=sn(),d=function(){var f=e.disabled;if(f){l();return}var v=Ra(s),p=v!==o;p&&(l(),o=v),!i&&v&&(i=new og(u),i.observe(v))};return Ge(function(){d()}),Sn(function(){d()}),Pn(function(){l()}),Se(function(){return e.disabled},function(){d()},{flush:"post"}),function(){var c;return(c=r.default)===null||c===void 0?void 0:c.call(r)[0]}}});var y4=function(e){return setTimeout(e,16)},b4=function(e){return clearTimeout(e)};typeof window<"u"&&"requestAnimationFrame"in window&&(y4=function(e){return window.requestAnimationFrame(e)},b4=function(e){return window.cancelAnimationFrame(e)});var E1=0,dg=new Map;function C4(t){dg.delete(t)}function qe(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;E1+=1;var n=E1;function r(a){if(a===0)C4(n),t();else{var o=y4(function(){r(a-1)});dg.set(n,o)}}return r(e),n}qe.cancel=function(t){var e=dg.get(t);return C4(e),b4(e)};function rh(t){var e,n=function(o){return function(){e=null,t.apply(void 0,Ie(o))}},r=function(){if(e==null){for(var o=arguments.length,i=new Array(o),l=0;lt.top-n)return"".concat(n+e.top,"px")}function _1(t,e,n){if(n!==void 0&&e.bottom=0||(a[n]=t[n]);return a}function R1(t){return((e=t)!=null&&typeof e=="object"&&Array.isArray(e)===!1)==1&&Object.prototype.toString.call(t)==="[object Object]";var e}var I4=Object.prototype,_4=I4.toString,GE=I4.hasOwnProperty,N4=/^\s*function (\w+)/;function D1(t){var e,n=(e=t==null?void 0:t.type)!==null&&e!==void 0?e:t;if(n){var r=n.toString().match(N4);return r?r[1]:""}return""}var $o=function(t){var e,n;return R1(t)!==!1&&typeof(e=t.constructor)=="function"&&R1(n=e.prototype)!==!1&&n.hasOwnProperty("isPrototypeOf")!==!1},qE=function(t){return t},In=qE,tu=function(t,e){return GE.call(t,e)},XE=Number.isInteger||function(t){return typeof t=="number"&&isFinite(t)&&Math.floor(t)===t},Ti=Array.isArray||function(t){return _4.call(t)==="[object Array]"},Ei=function(t){return _4.call(t)==="[object Function]"},vc=function(t){return $o(t)&&tu(t,"_vueTypes_name")},$4=function(t){return $o(t)&&(tu(t,"type")||["_vueTypes_name","validator","default","required"].some(function(e){return tu(t,e)}))};function fg(t,e){return Object.defineProperty(t.bind(e),"__original",{value:t})}function Lo(t,e,n){var r;n===void 0&&(n=!1);var a=!0,o="";r=$o(t)?t:{type:t};var i=vc(r)?r._vueTypes_name+" - ":"";if($4(r)&&r.type!==null){if(r.type===void 0||r.type===!0||!r.required&&e===void 0)return a;Ti(r.type)?(a=r.type.some(function(c){return Lo(c,e,!0)===!0}),o=r.type.map(function(c){return D1(c)}).join(" or ")):a=(o=D1(r))==="Array"?Ti(e):o==="Object"?$o(e):o==="String"||o==="Number"||o==="Boolean"||o==="Function"?function(c){if(c==null)return"";var f=c.constructor.toString().match(N4);return f?f[1]:""}(e)===o:e instanceof r.type}if(!a){var l=i+'value "'+e+'" should be of type "'+o+'"';return n===!1?(In(l),!1):l}if(tu(r,"validator")&&Ei(r.validator)){var u=In,s=[];if(In=function(c){s.push(c)},a=r.validator(e),In=u,!a){var d=(s.length>1?"* ":"")+s.join(` +* `);return s.length=0,n===!1?(In(d),a):d}}return a}function Qn(t,e){var n=Object.defineProperties(e,{_vueTypes_name:{value:t,writable:!0},isRequired:{get:function(){return this.required=!0,this}},def:{value:function(a){return a!==void 0||this.default?Ei(a)||Lo(this,a,!0)===!0?(this.default=Ti(a)?function(){return[].concat(a)}:$o(a)?function(){return Object.assign({},a)}:a,this):(In(this._vueTypes_name+' - invalid default value: "'+a+'"'),this):this}}}),r=n.validator;return Ei(r)&&(n.validator=fg(r,n)),n}function Hr(t,e){var n=Qn(t,e);return Object.defineProperty(n,"validate",{value:function(r){return Ei(this.validator)&&In(this._vueTypes_name+` - calling .validate() will overwrite the current custom validator function. Validator info: +`+JSON.stringify(this)),this.validator=fg(r,this),this}})}function F1(t,e,n){var r,a,o=(r=e,a={},Object.getOwnPropertyNames(r).forEach(function(c){a[c]=Object.getOwnPropertyDescriptor(r,c)}),Object.defineProperties({},a));if(o._vueTypes_name=t,!$o(n))return o;var i,l,u=n.validator,s=M4(n,["validator"]);if(Ei(u)){var d=o.validator;d&&(d=(l=(i=d).__original)!==null&&l!==void 0?l:i),o.validator=fg(d?function(c){return d.call(this,c)&&u.call(this,c)}:u,o)}return Object.assign(o,s)}function fd(t){return t.replace(/^(?!\s*$)/gm," ")}var QE=function(){return Hr("any",{})},ZE=function(){return Hr("function",{type:Function})},JE=function(){return Hr("boolean",{type:Boolean})},eM=function(){return Hr("string",{type:String})},tM=function(){return Hr("number",{type:Number})},nM=function(){return Hr("array",{type:Array})},rM=function(){return Hr("object",{type:Object})},aM=function(){return Qn("integer",{type:Number,validator:function(t){return XE(t)}})},oM=function(){return Qn("symbol",{validator:function(t){return typeof t=="symbol"}})};function iM(t,e){if(e===void 0&&(e="custom validation failed"),typeof t!="function")throw new TypeError("[VueTypes error]: You must provide a function as argument");return Qn(t.name||"<>",{validator:function(n){var r=t(n);return r||In(this._vueTypes_name+" - "+e),r}})}function lM(t){if(!Ti(t))throw new TypeError("[VueTypes error]: You must provide an array as argument.");var e='oneOf - value should be one of "'+t.join('", "')+'".',n=t.reduce(function(r,a){if(a!=null){var o=a.constructor;r.indexOf(o)===-1&&r.push(o)}return r},[]);return Qn("oneOf",{type:n.length>0?n:void 0,validator:function(r){var a=t.indexOf(r)!==-1;return a||In(e),a}})}function uM(t){if(!Ti(t))throw new TypeError("[VueTypes error]: You must provide an array as argument");for(var e=!1,n=[],r=0;r0&&n.some(function(u){return i.indexOf(u)===-1})){var l=n.filter(function(u){return i.indexOf(u)===-1});return In(l.length===1?'shape - required property "'+l[0]+'" is not defined.':'shape - required properties "'+l.join('", "')+'" are not defined.'),!1}return i.every(function(u){if(e.indexOf(u)===-1)return o._vueTypes_isLoose===!0||(In('shape - shape definition does not include a "'+u+'" property. Allowed keys: "'+e.join('", "')+'".'),!1);var s=Lo(t[u],a[u],!0);return typeof s=="string"&&In('shape - "'+u+`" property validation error: + `+fd(s)),s===!0})}});return Object.defineProperty(r,"_vueTypes_isLoose",{writable:!0,value:!1}),Object.defineProperty(r,"loose",{get:function(){return this._vueTypes_isLoose=!0,this}}),r}var Rr=function(){function t(){}return t.extend=function(e){var n=this;if(Ti(e))return e.forEach(function(c){return n.extend(c)}),this;var r=e.name,a=e.validate,o=a!==void 0&&a,i=e.getter,l=i!==void 0&&i,u=M4(e,["name","validate","getter"]);if(tu(this,r))throw new TypeError('[VueTypes error]: Type "'+r+'" already defined');var s,d=u.type;return vc(d)?(delete u.type,Object.defineProperty(this,r,l?{get:function(){return F1(r,d,u)}}:{value:function(){var c,f=F1(r,d,u);return f.validator&&(f.validator=(c=f.validator).bind.apply(c,[f].concat([].slice.call(arguments)))),f}})):(s=l?{get:function(){var c=Object.assign({},u);return o?Hr(r,c):Qn(r,c)},enumerable:!0}:{value:function(){var c,f,v=Object.assign({},u);return c=o?Hr(r,v):Qn(r,v),v.validator&&(c.validator=(f=v.validator).bind.apply(f,[c].concat([].slice.call(arguments)))),c},enumerable:!0},Object.defineProperty(this,r,s))},T4(t,null,[{key:"any",get:function(){return QE()}},{key:"func",get:function(){return ZE().def(this.defaults.func)}},{key:"bool",get:function(){return JE().def(this.defaults.bool)}},{key:"string",get:function(){return eM().def(this.defaults.string)}},{key:"number",get:function(){return tM().def(this.defaults.number)}},{key:"array",get:function(){return nM().def(this.defaults.array)}},{key:"object",get:function(){return rM().def(this.defaults.object)}},{key:"integer",get:function(){return aM().def(this.defaults.integer)}},{key:"symbol",get:function(){return oM()}}]),t}();function A4(t){var e;return t===void 0&&(t={func:function(){},bool:!0,string:"",number:0,array:function(){return[]},object:function(){return{}},integer:0}),(e=function(n){function r(){return n.apply(this,arguments)||this}return E4(r,n),T4(r,null,[{key:"sensibleDefaults",get:function(){return Os({},this.defaults)},set:function(a){this.defaults=a!==!1?Os({},a!==!0?a:t):{}}}]),r}(Rr)).defaults=Os({},t),e}Rr.defaults={},Rr.custom=iM,Rr.oneOf=lM,Rr.instanceOf=cM,Rr.oneOfType=uM,Rr.arrayOf=sM,Rr.objectOf=dM,Rr.shape=fM,Rr.utils={validate:function(t,e){return Lo(e,t,!0)===!0},toType:function(t,e,n){return n===void 0&&(n=!1),n?Hr(t,e):Qn(t,e)}};(function(t){function e(){return t.apply(this,arguments)||this}return E4(e,t),e})(A4());var R4=A4({func:void 0,bool:void 0,string:void 0,number:void 0,array:void 0,object:void 0,integer:void 0});R4.extend([{name:"looseBool",getter:!0,type:Boolean,default:void 0},{name:"style",getter:!0,type:[String,Object],default:void 0},{name:"VueNode",getter:!0,type:null}]);function D4(t){return t.default=void 0,t}const G=R4;var vM=["image","description","imageStyle","class"],F4=h(UE,null,null),L4=h(YE,null,null),Hi=function(e,n){var r,a=n.slots,o=a===void 0?{}:a,i=n.attrs,l=Re("empty",e),u=l.direction,s=l.prefixCls,d=s.value,c=y(y({},e),i),f=c.image,v=f===void 0?F4:f,p=c.description,g=p===void 0?((r=o.description)===null||r===void 0?void 0:r.call(o))||void 0:p,m=c.imageStyle,b=c.class,x=b===void 0?"":b,C=He(c,vM);return h(Ki,{componentName:"Empty",children:function(P){var S,k=typeof g<"u"?g:P.description,T=typeof k=="string"?k:"empty",O=null;return typeof v=="string"?O=h("img",{alt:T,src:v},null):O=v,h("div",y({class:ce(d,x,(S={},A(S,"".concat(d,"-normal"),v===L4),A(S,"".concat(d,"-rtl"),u.value==="rtl"),S))},C),[h("div",{class:"".concat(d,"-image"),style:m},[O]),k&&h("p",{class:"".concat(d,"-description")},[k]),o.default&&h("div",{class:"".concat(d,"-footer")},[Gt(o.default())])])}},null)};Hi.displayName="AEmpty";Hi.PRESENTED_IMAGE_DEFAULT=F4;Hi.PRESENTED_IMAGE_SIMPLE=L4;Hi.inheritAttrs=!1;Hi.props={prefixCls:String,image:G.any,description:G.any,imageStyle:{type:Object,default:void 0}};const $a=Wt(Hi);var hM=function(e){var n=Re("empty",e),r=n.prefixCls,a=function(i){switch(i){case"Table":case"List":return h($a,{image:$a.PRESENTED_IMAGE_SIMPLE},null);case"Select":case"TreeSelect":case"Cascader":case"Transfer":case"Mentions":return h($a,{image:$a.PRESENTED_IMAGE_SIMPLE,class:"".concat(r.value,"-small")},null);default:return h($a,null,null)}};return a(e.componentName)};function B4(t){return h(hM,{componentName:t},null)}var L1={};function pM(t,e){}function gM(t,e){}function j4(t,e,n){!e&&!L1[n]&&(t(!1,n),L1[n]=!0)}function V4(t,e){j4(pM,t,e)}function mM(t,e){j4(gM,t,e)}const Qt=function(t,e){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"";V4(t,"[antdv: ".concat(e,"] ").concat(n))};var ah="internalMark",Ts=ue({compatConfig:{MODE:3},name:"ALocaleProvider",props:{locale:{type:Object},ANT_MARK__:String},setup:function(e,n){var r=n.slots;Qt(e.ANT_MARK__===ah,"LocaleProvider","`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead");var a=xt({antLocale:y(y({},e.locale),{},{exist:!0}),ANT_MARK__:ah});return at("localeData",a),Se(function(){return e.locale},function(){a.antLocale=y(y({},e.locale),{},{exist:!0})},{immediate:!0}),function(){var o;return(o=r.default)===null||o===void 0?void 0:o.call(r)}}});Ts.install=function(t){return t.component(Ts.name,Ts),t};const K4=Wt(Ts);Vt("bottomLeft","bottomRight","topLeft","topRight");var yM=function(e){return e!==void 0&&(e==="topLeft"||e==="topRight")?"slide-down":"slide-up"},Ga=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=y(e?{name:e,appear:!0,enterFromClass:"".concat(e,"-enter ").concat(e,"-enter-prepare"),enterActiveClass:"".concat(e,"-enter ").concat(e,"-enter-prepare"),enterToClass:"".concat(e,"-enter ").concat(e,"-enter-active"),leaveFromClass:" ".concat(e,"-leave"),leaveActiveClass:"".concat(e,"-leave ").concat(e,"-leave-active"),leaveToClass:"".concat(e,"-leave ").concat(e,"-leave-active")}:{css:!1},n);return r},vg=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=y(e?{name:e,appear:!0,appearActiveClass:"".concat(e),appearToClass:"".concat(e,"-appear ").concat(e,"-appear-active"),enterFromClass:"".concat(e,"-appear ").concat(e,"-enter ").concat(e,"-appear-prepare ").concat(e,"-enter-prepare"),enterActiveClass:"".concat(e),enterToClass:"".concat(e,"-enter ").concat(e,"-appear ").concat(e,"-appear-active ").concat(e,"-enter-active"),leaveActiveClass:"".concat(e," ").concat(e,"-leave"),leaveToClass:"".concat(e,"-leave-active")}:{css:!1},n);return r},Sr=function(e,n,r){return r!==void 0?r:"".concat(e,"-").concat(n)};const bM=ue({name:"Notice",inheritAttrs:!1,props:["prefixCls","duration","updateMark","noticeKey","closeIcon","closable","props","onClick","onClose","holder","visible"],setup:function(e,n){var r=n.attrs,a=n.slots,o,i=!1,l=B(function(){return e.duration===void 0?4.5:e.duration}),u=function(){l.value&&!i&&(o=setTimeout(function(){d()},l.value*1e3))},s=function(){o&&(clearTimeout(o),o=null)},d=function(v){v&&v.stopPropagation(),s();var p=e.onClose,g=e.noticeKey;p&&p(g)},c=function(){s(),u()};return Ge(function(){u()}),Pn(function(){i=!0,s()}),Se([l,function(){return e.updateMark},function(){return e.visible}],function(f,v){var p=Te(f,3),g=p[0],m=p[1],b=p[2],x=Te(v,3),C=x[0],w=x[1],P=x[2];(g!==C||m!==w||b!==P&&P)&&c()},{flush:"post"}),function(){var f,v,p=e.prefixCls,g=e.closable,m=e.closeIcon,b=m===void 0?(f=a.closeIcon)===null||f===void 0?void 0:f.call(a):m,x=e.onClick,C=e.holder,w=r.class,P=r.style,S="".concat(p,"-notice"),k=Object.keys(r).reduce(function(O,N){return(N.substr(0,5)==="data-"||N.substr(0,5)==="aria-"||N==="role")&&(O[N]=r[N]),O},{}),T=h("div",y({class:ce(S,w,A({},"".concat(S,"-closable"),g)),style:P,onMouseenter:s,onMouseleave:u,onClick:x},k),[h("div",{class:"".concat(S,"-content")},[(v=a.default)===null||v===void 0?void 0:v.call(a)]),g?h("a",{tabindex:0,onClick:d,class:"".concat(S,"-close")},[b||h("span",{class:"".concat(S,"-close-x")},null)]):null]);return C?h(eg,{to:C},{default:function(){return T}}):T}}});var CM=["name","getContainer","appContext","prefixCls","rootPrefixCls","transitionName","hasTransitionName"],B1=0,xM=Date.now();function j1(){var t=B1;return B1+=1,"rcNotification_".concat(xM,"_").concat(t)}var oh=ue({name:"Notification",inheritAttrs:!1,props:["prefixCls","transitionName","animation","maxCount","closeIcon"],setup:function(e,n){var r=n.attrs,a=n.expose,o=n.slots,i=new Map,l=Q([]),u=B(function(){var c=e.prefixCls,f=e.animation,v=f===void 0?"fade":f,p=e.transitionName;return!p&&v&&(p="".concat(c,"-").concat(v)),vg(p)}),s=function(f,v){var p=f.key||j1(),g=y(y({},f),{},{key:p}),m=e.maxCount,b=l.value.map(function(C){return C.notice.key}).indexOf(p),x=l.value.concat();b!==-1?x.splice(b,1,{notice:g,holderCallback:v}):(m&&l.value.length>=m&&(g.key=x[0].notice.key,g.updateMark=j1(),g.userPassKey=p,x.shift()),x.push({notice:g,holderCallback:v})),l.value=x},d=function(f){l.value=l.value.filter(function(v){var p=v.notice,g=p.key,m=p.userPassKey,b=m||g;return b!==f})};return a({add:s,remove:d,notices:l}),function(){var c,f,v=e.prefixCls,p=e.closeIcon,g=p===void 0?(c=o.closeIcon)===null||c===void 0?void 0:c.call(o,{prefixCls:v}):p,m=l.value.map(function(x,C){var w=x.notice,P=x.holderCallback,S=C===l.value.length-1?w.updateMark:void 0,k=w.key,T=w.userPassKey,O=w.content,N=y(y(y({prefixCls:v,closeIcon:typeof g=="function"?g({prefixCls:v}):g},w),w.props),{},{key:k,noticeKey:T||k,updateMark:S,onClose:function(I){var E;d(I),(E=w.onClose)===null||E===void 0||E.call(w)},onClick:w.onClick});return P?h("div",{key:k,class:"".concat(v,"-hook-holder"),ref:function(I){typeof k>"u"||(I?(i.set(k,I),P(I,N)):i.delete(k))}},null):h(bM,N,{default:function(){return[typeof O=="function"?O({prefixCls:v}):O]}})}),b=(f={},A(f,v,1),A(f,r.class,!!r.class),f);return h("div",{class:b,style:r.style||{top:"65px",left:"50%"}},[h(rg,y({tag:"div"},u.value),{default:function(){return[m]}})])}}});oh.newInstance=function(e,n){var r=e||{},a=r.name,o=a===void 0?"notification":a,i=r.getContainer,l=r.appContext,u=r.prefixCls,s=r.rootPrefixCls,d=r.transitionName,c=r.hasTransitionName,f=He(r,CM),v=document.createElement("div");if(i){var p=i();p.appendChild(v)}else document.body.appendChild(v);var g=ue({compatConfig:{MODE:3},name:"NotificationWrapper",setup:function(x,C){var w=C.attrs,P=Q();return Ge(function(){n({notice:function(k){var T;(T=P.value)===null||T===void 0||T.add(k)},removeNotice:function(k){var T;(T=P.value)===null||T===void 0||T.remove(k)},destroy:function(){cc(null,v),v.parentNode&&v.parentNode.removeChild(v)},component:P})}),function(){var S=Dn,k=S.getPrefixCls(o,u),T=S.getRootPrefixCls(s,k),O=c?d:"".concat(T,"-").concat(d);return h(Ng,y(y({},S),{},{notUpdateGlobalConfig:!0,prefixCls:T}),{default:function(){return[h(oh,y(y({ref:P},w),{},{prefixCls:k,transitionName:O}),null)]}})}}}),m=h(g,f);m.appContext=l||m.appContext,cc(m,v)};const H4=oh;var wM={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z"}}]},name:"loading",theme:"outlined"};const SM=wM;function bn(t,e){PM(t)&&(t="100%");var n=kM(t);return t=e===360?t:Math.min(e,Math.max(0,parseFloat(t))),n&&(t=parseInt(String(t*e),10)/100),Math.abs(t-e)<1e-6?1:(e===360?t=(t<0?t%e+e:t%e)/parseFloat(String(e)):t=t%e/parseFloat(String(e)),t)}function Yu(t){return Math.min(1,Math.max(0,t))}function PM(t){return typeof t=="string"&&t.indexOf(".")!==-1&&parseFloat(t)===1}function kM(t){return typeof t=="string"&&t.indexOf("%")!==-1}function z4(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function Gu(t){return t<=1?"".concat(Number(t)*100,"%"):t}function So(t){return t.length===1?"0"+t:String(t)}function OM(t,e,n){return{r:bn(t,255)*255,g:bn(e,255)*255,b:bn(n,255)*255}}function V1(t,e,n){t=bn(t,255),e=bn(e,255),n=bn(n,255);var r=Math.max(t,e,n),a=Math.min(t,e,n),o=0,i=0,l=(r+a)/2;if(r===a)i=0,o=0;else{var u=r-a;switch(i=l>.5?u/(2-r-a):u/(r+a),r){case t:o=(e-n)/u+(e1&&(n-=1),n<1/6?t+(e-t)*(6*n):n<1/2?e:n<2/3?t+(e-t)*(2/3-n)*6:t}function TM(t,e,n){var r,a,o;if(t=bn(t,360),e=bn(e,100),n=bn(n,100),e===0)a=n,o=n,r=n;else{var i=n<.5?n*(1+e):n+e-n*e,l=2*n-i;r=Ef(l,i,t+1/3),a=Ef(l,i,t),o=Ef(l,i,t-1/3)}return{r:r*255,g:a*255,b:o*255}}function ih(t,e,n){t=bn(t,255),e=bn(e,255),n=bn(n,255);var r=Math.max(t,e,n),a=Math.min(t,e,n),o=0,i=r,l=r-a,u=r===0?0:l/r;if(r===a)o=0;else{switch(r){case t:o=(e-n)/l+(e>16,g:(t&65280)>>8,b:t&255}}var uh={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 ti(t){var e={r:0,g:0,b:0},n=1,r=null,a=null,o=null,i=!1,l=!1;return typeof t=="string"&&(t=AM(t)),typeof t=="object"&&(Qr(t.r)&&Qr(t.g)&&Qr(t.b)?(e=OM(t.r,t.g,t.b),i=!0,l=String(t.r).substr(-1)==="%"?"prgb":"rgb"):Qr(t.h)&&Qr(t.s)&&Qr(t.v)?(r=Gu(t.s),a=Gu(t.v),e=EM(t.h,r,a),i=!0,l="hsv"):Qr(t.h)&&Qr(t.s)&&Qr(t.l)&&(r=Gu(t.s),o=Gu(t.l),e=TM(t.h,r,o),i=!0,l="hsl"),Object.prototype.hasOwnProperty.call(t,"a")&&(n=t.a)),n=z4(n),{ok:i,format:t.format||l,r:Math.min(255,Math.max(e.r,0)),g:Math.min(255,Math.max(e.g,0)),b:Math.min(255,Math.max(e.b,0)),a:n}}var NM="[-\\+]?\\d+%?",$M="[-\\+]?\\d*\\.\\d+%?",Da="(?:".concat($M,")|(?:").concat(NM,")"),Mf="[\\s|\\(]+(".concat(Da,")[,|\\s]+(").concat(Da,")[,|\\s]+(").concat(Da,")\\s*\\)?"),If="[\\s|\\(]+(".concat(Da,")[,|\\s]+(").concat(Da,")[,|\\s]+(").concat(Da,")[,|\\s]+(").concat(Da,")\\s*\\)?"),hr={CSS_UNIT:new RegExp(Da),rgb:new RegExp("rgb"+Mf),rgba:new RegExp("rgba"+If),hsl:new RegExp("hsl"+Mf),hsla:new RegExp("hsla"+If),hsv:new RegExp("hsv"+Mf),hsva:new RegExp("hsva"+If),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 AM(t){if(t=t.trim().toLowerCase(),t.length===0)return!1;var e=!1;if(uh[t])t=uh[t],e=!0;else if(t==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var n=hr.rgb.exec(t);return n?{r:n[1],g:n[2],b:n[3]}:(n=hr.rgba.exec(t),n?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=hr.hsl.exec(t),n?{h:n[1],s:n[2],l:n[3]}:(n=hr.hsla.exec(t),n?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=hr.hsv.exec(t),n?{h:n[1],s:n[2],v:n[3]}:(n=hr.hsva.exec(t),n?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=hr.hex8.exec(t),n?{r:Wn(n[1]),g:Wn(n[2]),b:Wn(n[3]),a:K1(n[4]),format:e?"name":"hex8"}:(n=hr.hex6.exec(t),n?{r:Wn(n[1]),g:Wn(n[2]),b:Wn(n[3]),format:e?"name":"hex"}:(n=hr.hex4.exec(t),n?{r:Wn(n[1]+n[1]),g:Wn(n[2]+n[2]),b:Wn(n[3]+n[3]),a:K1(n[4]+n[4]),format:e?"name":"hex8"}:(n=hr.hex3.exec(t),n?{r:Wn(n[1]+n[1]),g:Wn(n[2]+n[2]),b:Wn(n[3]+n[3]),format:e?"name":"hex"}:!1)))))))))}function Qr(t){return!!hr.CSS_UNIT.exec(String(t))}var _f=function(){function t(e,n){e===void 0&&(e=""),n===void 0&&(n={});var r;if(e instanceof t)return e;typeof e=="number"&&(e=_M(e)),this.originalInput=e;var a=ti(e);this.originalInput=e,this.r=a.r,this.g=a.g,this.b=a.b,this.a=a.a,this.roundA=Math.round(100*this.a)/100,this.format=(r=n.format)!==null&&r!==void 0?r:a.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=a.ok}return t.prototype.isDark=function(){return this.getBrightness()<128},t.prototype.isLight=function(){return!this.isDark()},t.prototype.getBrightness=function(){var e=this.toRgb();return(e.r*299+e.g*587+e.b*114)/1e3},t.prototype.getLuminance=function(){var e=this.toRgb(),n,r,a,o=e.r/255,i=e.g/255,l=e.b/255;return o<=.03928?n=o/12.92:n=Math.pow((o+.055)/1.055,2.4),i<=.03928?r=i/12.92:r=Math.pow((i+.055)/1.055,2.4),l<=.03928?a=l/12.92:a=Math.pow((l+.055)/1.055,2.4),.2126*n+.7152*r+.0722*a},t.prototype.getAlpha=function(){return this.a},t.prototype.setAlpha=function(e){return this.a=z4(e),this.roundA=Math.round(100*this.a)/100,this},t.prototype.isMonochrome=function(){var e=this.toHsl().s;return e===0},t.prototype.toHsv=function(){var e=ih(this.r,this.g,this.b);return{h:e.h*360,s:e.s,v:e.v,a:this.a}},t.prototype.toHsvString=function(){var e=ih(this.r,this.g,this.b),n=Math.round(e.h*360),r=Math.round(e.s*100),a=Math.round(e.v*100);return this.a===1?"hsv(".concat(n,", ").concat(r,"%, ").concat(a,"%)"):"hsva(".concat(n,", ").concat(r,"%, ").concat(a,"%, ").concat(this.roundA,")")},t.prototype.toHsl=function(){var e=V1(this.r,this.g,this.b);return{h:e.h*360,s:e.s,l:e.l,a:this.a}},t.prototype.toHslString=function(){var e=V1(this.r,this.g,this.b),n=Math.round(e.h*360),r=Math.round(e.s*100),a=Math.round(e.l*100);return this.a===1?"hsl(".concat(n,", ").concat(r,"%, ").concat(a,"%)"):"hsla(".concat(n,", ").concat(r,"%, ").concat(a,"%, ").concat(this.roundA,")")},t.prototype.toHex=function(e){return e===void 0&&(e=!1),lh(this.r,this.g,this.b,e)},t.prototype.toHexString=function(e){return e===void 0&&(e=!1),"#"+this.toHex(e)},t.prototype.toHex8=function(e){return e===void 0&&(e=!1),MM(this.r,this.g,this.b,this.a,e)},t.prototype.toHex8String=function(e){return e===void 0&&(e=!1),"#"+this.toHex8(e)},t.prototype.toHexShortString=function(e){return e===void 0&&(e=!1),this.a===1?this.toHexString(e):this.toHex8String(e)},t.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},t.prototype.toRgbString=function(){var e=Math.round(this.r),n=Math.round(this.g),r=Math.round(this.b);return this.a===1?"rgb(".concat(e,", ").concat(n,", ").concat(r,")"):"rgba(".concat(e,", ").concat(n,", ").concat(r,", ").concat(this.roundA,")")},t.prototype.toPercentageRgb=function(){var e=function(n){return"".concat(Math.round(bn(n,255)*100),"%")};return{r:e(this.r),g:e(this.g),b:e(this.b),a:this.a}},t.prototype.toPercentageRgbString=function(){var e=function(n){return Math.round(bn(n,255)*100)};return this.a===1?"rgb(".concat(e(this.r),"%, ").concat(e(this.g),"%, ").concat(e(this.b),"%)"):"rgba(".concat(e(this.r),"%, ").concat(e(this.g),"%, ").concat(e(this.b),"%, ").concat(this.roundA,")")},t.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var e="#"+lh(this.r,this.g,this.b,!1),n=0,r=Object.entries(uh);n=0,o=!n&&a&&(e.startsWith("hex")||e==="name");return o?e==="name"&&this.a===0?this.toName():this.toRgbString():(e==="rgb"&&(r=this.toRgbString()),e==="prgb"&&(r=this.toPercentageRgbString()),(e==="hex"||e==="hex6")&&(r=this.toHexString()),e==="hex3"&&(r=this.toHexString(!0)),e==="hex4"&&(r=this.toHex8String(!0)),e==="hex8"&&(r=this.toHex8String()),e==="name"&&(r=this.toName()),e==="hsl"&&(r=this.toHslString()),e==="hsv"&&(r=this.toHsvString()),r||this.toHexString())},t.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},t.prototype.clone=function(){return new t(this.toString())},t.prototype.lighten=function(e){e===void 0&&(e=10);var n=this.toHsl();return n.l+=e/100,n.l=Yu(n.l),new t(n)},t.prototype.brighten=function(e){e===void 0&&(e=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(e/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(e/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(e/100)))),new t(n)},t.prototype.darken=function(e){e===void 0&&(e=10);var n=this.toHsl();return n.l-=e/100,n.l=Yu(n.l),new t(n)},t.prototype.tint=function(e){return e===void 0&&(e=10),this.mix("white",e)},t.prototype.shade=function(e){return e===void 0&&(e=10),this.mix("black",e)},t.prototype.desaturate=function(e){e===void 0&&(e=10);var n=this.toHsl();return n.s-=e/100,n.s=Yu(n.s),new t(n)},t.prototype.saturate=function(e){e===void 0&&(e=10);var n=this.toHsl();return n.s+=e/100,n.s=Yu(n.s),new t(n)},t.prototype.greyscale=function(){return this.desaturate(100)},t.prototype.spin=function(e){var n=this.toHsl(),r=(n.h+e)%360;return n.h=r<0?360+r:r,new t(n)},t.prototype.mix=function(e,n){n===void 0&&(n=50);var r=this.toRgb(),a=new t(e).toRgb(),o=n/100,i={r:(a.r-r.r)*o+r.r,g:(a.g-r.g)*o+r.g,b:(a.b-r.b)*o+r.b,a:(a.a-r.a)*o+r.a};return new t(i)},t.prototype.analogous=function(e,n){e===void 0&&(e=6),n===void 0&&(n=30);var r=this.toHsl(),a=360/n,o=[this];for(r.h=(r.h-(a*e>>1)+720)%360;--e;)r.h=(r.h+a)%360,o.push(new t(r));return o},t.prototype.complement=function(){var e=this.toHsl();return e.h=(e.h+180)%360,new t(e)},t.prototype.monochromatic=function(e){e===void 0&&(e=6);for(var n=this.toHsv(),r=n.h,a=n.s,o=n.v,i=[],l=1/e;e--;)i.push(new t({h:r,s:a,v:o})),o=(o+l)%1;return i},t.prototype.splitcomplement=function(){var e=this.toHsl(),n=e.h;return[this,new t({h:(n+72)%360,s:e.s,l:e.l}),new t({h:(n+216)%360,s:e.s,l:e.l})]},t.prototype.onBackground=function(e){var n=this.toRgb(),r=new t(e).toRgb(),a=n.a+r.a*(1-n.a);return new t({r:(n.r*n.a+r.r*r.a*(1-n.a))/a,g:(n.g*n.a+r.g*r.a*(1-n.a))/a,b:(n.b*n.a+r.b*r.a*(1-n.a))/a,a})},t.prototype.triad=function(){return this.polyad(3)},t.prototype.tetrad=function(){return this.polyad(4)},t.prototype.polyad=function(e){for(var n=this.toHsl(),r=n.h,a=[this],o=360/e,i=1;i=60&&Math.round(t.h)<=240?r=n?Math.round(t.h)-qu*e:Math.round(t.h)+qu*e:r=n?Math.round(t.h)+qu*e:Math.round(t.h)-qu*e,r<0?r+=360:r>=360&&(r-=360),r}function U1(t,e,n){if(t.h===0&&t.s===0)return t.s;var r;return n?r=t.s-H1*e:e===U4?r=t.s+H1:r=t.s+RM*e,r>1&&(r=1),n&&e===W4&&r>.1&&(r=.1),r<.06&&(r=.06),Number(r.toFixed(2))}function Y1(t,e,n){var r;return n?r=t.v+DM*e:r=t.v-FM*e,r>1&&(r=1),Number(r.toFixed(2))}function nu(t){for(var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=[],r=ti(t),a=W4;a>0;a-=1){var o=z1(r),i=Xu(ti({h:W1(o,a,!0),s:U1(o,a,!0),v:Y1(o,a,!0)}));n.push(i)}n.push(Xu(r));for(var l=1;l<=U4;l+=1){var u=z1(r),s=Xu(ti({h:W1(u,l),s:U1(u,l),v:Y1(u,l)}));n.push(s)}return e.theme==="dark"?LM.map(function(d){var c=d.index,f=d.opacity,v=Xu(BM(ti(e.backgroundColor||"#141414"),ti(n[c]),f*100));return v}):n}var hi={red:"#F5222D",volcano:"#FA541C",orange:"#FA8C16",gold:"#FAAD14",yellow:"#FADB14",lime:"#A0D911",green:"#52C41A",cyan:"#13C2C2",blue:"#1890FF",geekblue:"#2F54EB",purple:"#722ED1",magenta:"#EB2F96",grey:"#666666"},Nf={},$f={};Object.keys(hi).forEach(function(t){Nf[t]=nu(hi[t]),Nf[t].primary=Nf[t][5],$f[t]=nu(hi[t],{theme:"dark",backgroundColor:"#141414"}),$f[t].primary=$f[t][5]});var G1=[],ll=[],jM="insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options]).";function VM(){var t=document.createElement("style");return t.setAttribute("type","text/css"),t}function KM(t,e){if(e=e||{},t===void 0)throw new Error(jM);var n=e.prepend===!0?"prepend":"append",r=e.container!==void 0?e.container:document.querySelector("head"),a=G1.indexOf(r);a===-1&&(a=G1.push(r)-1,ll[a]={});var o;return ll[a]!==void 0&&ll[a][n]!==void 0?o=ll[a][n]:(o=ll[a][n]=VM(),n==="prepend"?r.insertBefore(o,r.childNodes[0]):r.appendChild(o)),t.charCodeAt(0)===65279&&(t=t.substr(1,t.length)),o.styleSheet?o.styleSheet.cssText+=t:o.textContent+=t,o}function q1(t){for(var e=1;e * { + line-height: 1; +} + +.anticon svg { + display: inline-block; +} + +.anticon::before { + display: none; +} + +.anticon .anticon-icon { + display: block; +} + +.anticon[tabindex] { + cursor: pointer; +} + +.anticon-spin::before, +.anticon-spin { + display: inline-block; + -webkit-animation: loadingCircle 1s infinite linear; + animation: loadingCircle 1s infinite linear; +} + +@-webkit-keyframes loadingCircle { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes loadingCircle { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +`,Q1=!1,WM=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:zM;nt(function(){Q1||(typeof window<"u"&&window.document&&window.document.documentElement&&KM(e,{prepend:!0}),Q1=!0)})},UM=["icon","primaryColor","secondaryColor"];function YM(t,e){if(t==null)return{};var n=GM(t,e),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function GM(t,e){if(t==null)return{};var n={},r=Object.keys(t),a,o;for(o=0;o=0)&&(n[a]=t[a]);return n}function Es(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function dI(t,e){if(t==null)return{};var n={},r=Object.keys(t),a,o;for(o=0;o=0)&&(n[a]=t[a]);return n}q4("#1890ff");var Wi=function(e,n){var r,a=eb({},e,n.attrs),o=a.class,i=a.icon,l=a.spin,u=a.rotate,s=a.tabindex,d=a.twoToneColor,c=a.onClick,f=cI(a,aI),v=(r={anticon:!0},ch(r,"anticon-".concat(i.name),!!i.name),ch(r,o,o),r),p=l===""||l||i.name==="loading"?"anticon-spin":"",g=s;g===void 0&&c&&(g=-1,f.tabindex=g);var m=u?{msTransform:"rotate(".concat(u,"deg)"),transform:"rotate(".concat(u,"deg)")}:void 0,b=G4(d),x=oI(b,2),C=x[0],w=x[1];return h("span",eb({role:"img","aria-label":i.name},f,{onClick:c,class:v}),[h(hg,{class:p,icon:i,primaryColor:C,secondaryColor:w,style:m},null)])};Wi.props={spin:Boolean,rotate:Number,icon:Object,twoToneColor:String};Wi.displayName="AntdIcon";Wi.inheritAttrs=!1;Wi.getTwoToneColor=rI;Wi.setTwoToneColor=q4;const st=Wi;function tb(t){for(var e=1;e=0;--Y){var K=this.tryEntries[Y],z=K.completion;if(K.tryLoc==="root")return U("end");if(K.tryLoc<=this.prev){var X=i.call(K,"catchLoc"),W=i.call(K,"finallyLoc");if(X&&W){if(this.prev=0;--U){var Y=this.tryEntries[U];if(Y.tryLoc<=this.prev&&i.call(Y,"finallyLoc")&&this.prev=0;--L){var U=this.tryEntries[L];if(U.finallyLoc===V)return this.complete(U.completion,U.afterLoc),R(U),C}},catch:function(V){for(var L=this.tryEntries.length-1;L>=0;--L){var U=this.tryEntries[L];if(U.tryLoc===V){var Y=U.completion;if(Y.type==="throw"){var K=Y.arg;R(U)}return K}}throw Error("illegal catch attempt")},delegateYield:function(V,L,U){return this.delegate={iterator:_(V),resultName:L,nextLoc:U},this.method==="next"&&(this.arg=r),C}},a}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports})(o3);var AI=o3.exports,Ms=AI(),RI=Ms;try{regeneratorRuntime=Ms}catch{typeof globalThis=="object"?globalThis.regeneratorRuntime=Ms:Function("r","regeneratorRuntime = r")(Ms)}const Bn=ma(RI);var DI={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"check-circle",theme:"outlined"};const FI=DI;function lb(t){for(var e=1;e1&&arguments[1]!==void 0?arguments[1]:u3,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:s3,r;switch(t){case"topLeft":r={left:"0px",top:e,bottom:"auto"};break;case"topRight":r={right:"0px",top:e,bottom:"auto"};break;case"bottomLeft":r={left:"0px",top:"auto",bottom:n};break;default:r={right:"0px",top:"auto",bottom:n};break}return r}function JI(t,e){var n=t.prefixCls,r=t.placement,a=r===void 0?c3:r,o=t.getContainer,i=o===void 0?d3:o,l=t.top,u=t.bottom,s=t.closeIcon,d=s===void 0?f3:s,c=t.appContext,f=v_(),v=f.getPrefixCls,p=v("notification",n||dh),g="".concat(p,"-").concat(a,"-").concat(fh),m=yo[g];if(m){Promise.resolve(m).then(function(x){e(x)});return}var b=ce("".concat(p,"-").concat(a),A({},"".concat(p,"-rtl"),fh===!0));H4.newInstance({name:"notification",prefixCls:n||dh,class:b,style:ZI(a,l,u),appContext:c,getContainer:i,closeIcon:function(C){var w=C.prefixCls,P=h("span",{class:"".concat(w,"-close-x")},[gl(d,{},h(Wr,{class:"".concat(w,"-close-icon")},null))]);return P},maxCount:v3,hasTransitionName:!0},function(x){yo[g]=x,e(x)})}var e_={success:wg,info:Pg,error:Og,warning:vd};function t_(t){var e=t.icon,n=t.type,r=t.description,a=t.message,o=t.btn,i=t.duration===void 0?l3:t.duration;JI(t,function(l){l.notice({content:function(s){var d=s.prefixCls,c="".concat(d,"-notice"),f=null;if(e)f=function(){return h("span",{class:"".concat(c,"-icon")},[gl(e)])};else if(n){var v=e_[n];f=function(){return h(v,{class:"".concat(c,"-icon ").concat(c,"-icon-").concat(n)},null)}}return h("div",{class:f?"".concat(c,"-with-icon"):""},[f&&f(),h("div",{class:"".concat(c,"-message")},[!r&&f?h("span",{class:"".concat(c,"-message-single-line-auto-margin")},null):null,gl(a)]),h("div",{class:"".concat(c,"-description")},[gl(r)]),o?h("span",{class:"".concat(c,"-btn")},[gl(o)]):null])},duration:i,closable:!0,onClose:t.onClose,onClick:t.onClick,key:t.key,style:t.style||{},class:t.class})})}var ru={open:t_,close:function(e){Object.keys(yo).forEach(function(n){return Promise.resolve(yo[n]).then(function(r){r.removeNotice(e)})})},config:QI,destroy:function(){Object.keys(yo).forEach(function(e){Promise.resolve(yo[e]).then(function(n){n.destroy()}),delete yo[e]})}},n_=["success","info","warning","error"];n_.forEach(function(t){ru[t]=function(e){return ru.open(y(y({},e),{},{type:t}))}});ru.warn=ru.warning;const Mg=ru;function jo(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}var r_="vc-util-key";function h3(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=t.mark;return e?e.startsWith("data-")?e:"data-".concat(e):r_}function Ig(t){if(t.attachTo)return t.attachTo;var e=document.querySelector("head");return e||document.body}function fb(t){var e,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!jo())return null;var r=document.createElement("style");if((e=n.csp)!==null&&e!==void 0&&e.nonce){var a;r.nonce=(a=n.csp)===null||a===void 0?void 0:a.nonce}r.innerHTML=t;var o=Ig(n),i=o.firstChild;return n.prepend&&o.prepend?o.prepend(r):n.prepend&&i?o.insertBefore(r,i):o.appendChild(r),r}var vh=new Map;function a_(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=Ig(e);return Array.from(vh.get(n).children).find(function(r){return r.tagName==="STYLE"&&r.getAttribute(h3(e))===t})}function o_(t,e){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=Ig(n);if(!vh.has(r)){var a=fb("",n),o=a.parentNode;vh.set(r,o),o.removeChild(a)}var i=a_(e,n);if(i){var l,u;if((l=n.csp)!==null&&l!==void 0&&l.nonce&&i.nonce!==((u=n.csp)===null||u===void 0?void 0:u.nonce)){var s;i.nonce=(s=n.csp)===null||s===void 0?void 0:s.nonce}return i.innerHTML!==t&&(i.innerHTML=t),i}var d=fb(t,n);return d.setAttribute(h3(n),e),d}const Pt=function(t,e,n){V4(t,"[ant-design-vue: ".concat(e,"] ").concat(n))};var i_="-ant-".concat(Date.now(),"-").concat(Math.random());function l_(t,e){var n={},r=function(d,c){var f=d.clone();return f=(c==null?void 0:c(f))||f,f.toRgbString()},a=function(d,c){var f=new _f(d),v=nu(f.toRgbString());n["".concat(c,"-color")]=r(f),n["".concat(c,"-color-disabled")]=v[1],n["".concat(c,"-color-hover")]=v[4],n["".concat(c,"-color-active")]=v[6],n["".concat(c,"-color-outline")]=f.clone().setAlpha(.2).toRgbString(),n["".concat(c,"-color-deprecated-bg")]=v[1],n["".concat(c,"-color-deprecated-border")]=v[3]};if(e.primaryColor){a(e.primaryColor,"primary");var o=new _f(e.primaryColor),i=nu(o.toRgbString());i.forEach(function(s,d){n["primary-".concat(d+1)]=s}),n["primary-color-deprecated-l-35"]=r(o,function(s){return s.lighten(35)}),n["primary-color-deprecated-l-20"]=r(o,function(s){return s.lighten(20)}),n["primary-color-deprecated-t-20"]=r(o,function(s){return s.tint(20)}),n["primary-color-deprecated-t-50"]=r(o,function(s){return s.tint(50)}),n["primary-color-deprecated-f-12"]=r(o,function(s){return s.setAlpha(s.getAlpha()*.12)});var l=new _f(i[0]);n["primary-color-active-deprecated-f-30"]=r(l,function(s){return s.setAlpha(s.getAlpha()*.3)}),n["primary-color-active-deprecated-d-02"]=r(l,function(s){return s.darken(2)})}e.successColor&&a(e.successColor,"success"),e.warningColor&&a(e.warningColor,"warning"),e.errorColor&&a(e.errorColor,"error"),e.infoColor&&a(e.infoColor,"info");var u=Object.keys(n).map(function(s){return"--".concat(t,"-").concat(s,": ").concat(n[s],";")});jo()?o_(` + :root { + `.concat(u.join(` +`),` + } + `),"".concat(i_,"-dynamic-theme")):Pt(!1,"ConfigProvider","SSR do not support dynamic theme with css variables.")}var p3=Symbol("GlobalFormContextKey"),u_=function(e){at(p3,e)},s_=function(){return Ze(p3,{validateMessages:B(function(){})})},c_=function(){return{getTargetContainer:{type:Function},getPopupContainer:{type:Function},prefixCls:String,getPrefixCls:{type:Function},renderEmpty:{type:Function},transformCellText:{type:Function},csp:{type:Object,default:void 0},input:{type:Object},autoInsertSpaceInButton:{type:Boolean,default:void 0},locale:{type:Object,default:void 0},pageHeader:{type:Object},componentSize:{type:String},direction:{type:String},space:{type:Object},virtual:{type:Boolean,default:void 0},dropdownMatchSelectWidth:{type:[Number,Boolean],default:!0},form:{type:Object,default:void 0},notUpdateGlobalConfig:Boolean}},d_="ant";function pi(){return Dn.prefixCls||d_}var hh=xt({}),g3=xt({}),Dn=xt({});Je(function(){pt(Dn,hh,g3),Dn.prefixCls=pi(),Dn.getPrefixCls=function(t,e){return e||(t?"".concat(Dn.prefixCls,"-").concat(t):Dn.prefixCls)},Dn.getRootPrefixCls=function(t,e){return t||(Dn.prefixCls?Dn.prefixCls:e&&e.includes("-")?e.replace(/^(.*)-[^-]*$/,"$1"):pi())}});var Af,f_=function(e){Af&&Af(),Af=Je(function(){pt(g3,xt(e)),pt(Dn,xt(e))}),e.theme&&l_(pi(),e.theme)},v_=function(){return{getPrefixCls:function(n,r){return r||(n?"".concat(pi(),"-").concat(n):pi())},getRootPrefixCls:function(n,r){return n||(Dn.prefixCls?Dn.prefixCls:r&&r.includes("-")?r.replace(/^(.*)-[^-]*$/,"$1"):pi())}}},Il=ue({compatConfig:{MODE:3},name:"AConfigProvider",inheritAttrs:!1,props:c_(),setup:function(e,n){var r=n.slots,a=function(c,f){var v=e.prefixCls,p=v===void 0?"ant":v;return f||(c?"".concat(p,"-").concat(c):p)},o=function(c){var f=e.renderEmpty||r.renderEmpty||B4;return f(c)},i=function(c,f){var v=e.prefixCls;if(f)return f;var p=v||a("");return c?"".concat(p,"-").concat(c):p},l=xt(y(y({},e),{},{getPrefixCls:i,renderEmpty:o}));Object.keys(e).forEach(function(d){Se(function(){return e[d]},function(){l[d]=e[d]})}),e.notUpdateGlobalConfig||(pt(hh,l),Se(l,function(){pt(hh,l)}));var u=B(function(){var d={};if(e.locale){var c,f;d=((c=e.locale.Form)===null||c===void 0?void 0:c.defaultValidateMessages)||((f=wr.Form)===null||f===void 0?void 0:f.defaultValidateMessages)||{}}return e.form&&e.form.validateMessages&&(d=y(y({},d),e.form.validateMessages)),d});u_({validateMessages:u}),at("configProvider",l);var s=function(c){var f;return h(K4,{locale:e.locale||c,ANT_MARK__:ah},{default:function(){return[(f=r.default)===null||f===void 0?void 0:f.call(r)]}})};return Je(function(){e.direction&&(Cg.config({rtl:e.direction==="rtl"}),Mg.config({rtl:e.direction==="rtl"}))}),function(){return h(Ki,{children:function(c,f,v){return s(v)}},null)}}}),_g=xt({getPrefixCls:function(e,n){return n||(e?"ant-".concat(e):"ant")},renderEmpty:B4,direction:"ltr"});Il.config=f_;Il.install=function(t){t.component(Il.name,Il)};const Ng=Il,Re=function(t,e){var n=Ze("configProvider",_g),r=B(function(){return n.getPrefixCls(t,e.prefixCls)}),a=B(function(){var x;return(x=e.direction)!==null&&x!==void 0?x:n.direction}),o=B(function(){return n.getPrefixCls()}),i=B(function(){return n.autoInsertSpaceInButton}),l=B(function(){return n.renderEmpty}),u=B(function(){return n.space}),s=B(function(){return n.pageHeader}),d=B(function(){return n.form}),c=B(function(){return e.getTargetContainer||n.getTargetContainer}),f=B(function(){return e.getPopupContainer||n.getPopupContainer}),v=B(function(){var x;return(x=e.dropdownMatchSelectWidth)!==null&&x!==void 0?x:n.dropdownMatchSelectWidth}),p=B(function(){return(e.virtual===void 0?n.virtual!==!1:e.virtual!==!1)&&v.value!==!1}),g=B(function(){return e.size||n.componentSize}),m=B(function(){var x;return e.autocomplete||((x=n.input)===null||x===void 0?void 0:x.autocomplete)}),b=B(function(){return n.csp});return{configProvider:n,prefixCls:r,direction:a,size:g,getTargetContainer:c,getPopupContainer:f,space:u,pageHeader:s,form:d,autoInsertSpaceInButton:i,renderEmpty:l,virtual:p,dropdownMatchSelectWidth:v,rootPrefixCls:o,getPrefixCls:n.getPrefixCls,autocomplete:m,csp:b}};function it(t,e){for(var n=pt({},t),r=0;r"u")return 0;var n=e?"scrollTop":"scrollLeft",r=0;if(ph(t)?r=t[e?"pageYOffset":"pageXOffset"]:t instanceof Document?r=t.documentElement[n]:t&&(r=t[n]),t&&!ph(t)&&typeof r!="number"){var a;r=(a=(t.ownerDocument||t).documentElement)===null||a===void 0?void 0:a[n]}return r}function m_(t,e,n,r){var a=n-e;return t/=r/2,t<1?a/2*t*t*t+e:a/2*((t-=2)*t*t+2)+e}function Ag(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=e.getContainer,r=n===void 0?function(){return window}:n,a=e.callback,o=e.duration,i=o===void 0?450:o,l=r(),u=$g(l,!0),s=Date.now(),d=function c(){var f=Date.now(),v=f-s,p=m_(v>i?i:v,u,t,i);ph(l)?l.scrollTo(window.pageXOffset,p):l instanceof HTMLDocument||l.constructor.name==="HTMLDocument"?l.documentElement.scrollTop=p:l.scrollTop=p,v0&&arguments[0]!==void 0?arguments[0]:0,k=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5,T=[],O=g.value();if(v.links.forEach(function($){var I=hb.exec($.toString());if(I){var E=document.getElementById(I[1]);if(E){var F=vb(E,O);F$.top?I:$});return N.link}return""},b=function(S){var k=e.getCurrentAnchor;p.value!==S&&(p.value=typeof k=="function"?k():S,r("change",S))},x=function(S){var k=e.offsetTop,T=e.targetOffset;b(S);var O=g.value(),N=$g(O,!0),$=hb.exec(S);if($){var I=document.getElementById($[1]);if(I){var E=vb(I,O),F=N+E;F-=T!==void 0?T:k||0,v.animating=!0,Ag(F,{callback:function(){v.animating=!1},getContainer:g.value})}}};i({scrollTo:x});var C=function(){if(!v.animating){var S=e.offsetTop,k=e.bounds,T=e.targetOffset,O=m(T!==void 0?T:S||0,k);b(O)}},w=function(){var S=f.value.getElementsByClassName("".concat(u.value,"-link-title-active"))[0];S&&(c.value.style.top="".concat(S.offsetTop+S.clientHeight/2-4.5,"px"))};return C_({registerLink:function(S){v.links.includes(S)||v.links.push(S)},unregisterLink:function(S){var k=v.links.indexOf(S);k!==-1&&v.links.splice(k,1)},activeLink:p,scrollTo:x,handleClick:function(S,k){r("click",S,k)}}),Ge(function(){nt(function(){var P=g.value();v.scrollContainer=P,v.scrollEvent=Dt(v.scrollContainer,"scroll",C),C()})}),ut(function(){v.scrollEvent&&v.scrollEvent.remove()}),Sn(function(){if(v.scrollEvent){var P=g.value();v.scrollContainer!==P&&(v.scrollContainer=P,v.scrollEvent.remove(),v.scrollEvent=Dt(v.scrollContainer,"scroll",C),C())}w()}),function(){var P,S=e.offsetTop,k=e.affix,T=e.showInkInFixed,O=u.value,N=ce("".concat(O,"-ink-ball"),{visible:p.value}),$=ce(e.wrapperClass,"".concat(O,"-wrapper"),A({},"".concat(O,"-rtl"),d.value==="rtl")),I=ce(O,A({},"".concat(O,"-fixed"),!k&&!T)),E=y({maxHeight:S?"calc(100vh - ".concat(S,"px)"):"100vh"},e.wrapperStyle),F=h("div",{class:$,style:E,ref:f},[h("div",{class:I},[h("div",{class:"".concat(O,"-ink")},[h("span",{class:N,ref:c},null)]),(P=o.default)===null||P===void 0?void 0:P.call(o)])]);return k?h(m3,y(y({},a),{},{offsetTop:S,target:g.value}),{default:function(){return[F]}}):F}}});var S_=function(){return{prefixCls:String,href:String,title:G.any,target:String}};const b3=ue({compatConfig:{MODE:3},name:"AAnchorLink",props:ct(S_(),{href:"#"}),slots:["title"],setup:function(e,n){var r=n.slots,a=null,o=b_(),i=o.handleClick,l=o.scrollTo,u=o.unregisterLink,s=o.registerLink,d=o.activeLink,c=Re("anchor",e),f=c.prefixCls,v=function(g){var m=e.href;i(g,{title:a,href:m}),l(m)};return Se(function(){return e.href},function(p,g){nt(function(){u(g),s(p)})}),Ge(function(){s(e.href)}),ut(function(){u(e.href)}),function(){var p,g=e.href,m=e.target,b=f.value,x=$t(r,e,"title");a=x;var C=d.value===g,w=ce("".concat(b,"-link"),A({},"".concat(b,"-link-active"),C)),P=ce("".concat(b,"-link-title"),A({},"".concat(b,"-link-title-active"),C));return h("div",{class:w},[h("a",{class:P,href:g,title:typeof x=="string"?x:"",target:m,onClick:v},[x]),(p=r.default)===null||p===void 0?void 0:p.call(r)])}}});bo.Link=b3;bo.install=function(t){return t.component(bo.name,bo),t.component(bo.Link.name,bo.Link),t};function Rg(t){return s4(t)||d4(t)||dd(t)||c4()}function pb(t,e){var n=t.key,r;return"value"in t&&(r=t.value),n??(r!==void 0?r:"rc-index-key-".concat(e))}function C3(t,e){var n=t||{},r=n.label,a=n.value,o=n.options;return{label:r||(e?"children":"label"),value:a||"value",options:o||"options"}}function P_(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=e.fieldNames,r=e.childrenAsData,a=[],o=C3(n,!1),i=o.label,l=o.value,u=o.options;function s(d,c){d.forEach(function(f){var v=f[i];if(c||!(u in f)){var p=f[l];a.push({key:pb(f,a.length),groupOption:c,data:f,label:v,value:p})}else{var g=v;g===void 0&&r&&(g=f.label),a.push({key:pb(f,a.length),group:!0,data:f,label:g}),s(f[u],!0)}})}return s(t,!1),a}function gh(t){var e=y({},t);return"props"in e||Object.defineProperty(e,"props",{get:function(){return e}}),e}function k_(t,e){if(!e||!e.length)return null;var n=!1;function r(o,i){var l=Rg(i),u=l[0],s=l.slice(1);if(!u)return[o];var d=o.split(u);return n=n||d.length>1,d.reduce(function(c,f){return[].concat(Ie(c),Ie(r(f,s)))},[]).filter(function(c){return c})}var a=r(t,e);return n?a:null}function Co(t,e){return t?t.contains(e):!1}var x3=["moz","ms","webkit"];function O_(){var t=0;return function(e){var n=new Date().getTime(),r=Math.max(0,16-(n-t)),a=window.setTimeout(function(){e(n+r)},r);return t=n+r,a}}function T_(){if(typeof window>"u")return function(){};if(window.requestAnimationFrame)return window.requestAnimationFrame.bind(window);var t=x3.filter(function(e){return"".concat(e,"RequestAnimationFrame")in window})[0];return t?window["".concat(t,"RequestAnimationFrame")]:O_()}function E_(t){if(typeof window>"u")return null;if(window.cancelAnimationFrame)return window.cancelAnimationFrame(t);var e=x3.filter(function(n){return"".concat(n,"CancelAnimationFrame")in window||"".concat(n,"CancelRequestAnimationFrame")in window})[0];return e?(window["".concat(e,"CancelAnimationFrame")]||window["".concat(e,"CancelRequestAnimationFrame")]).call(this,t):clearTimeout(t)}var gb=T_(),M_=function(e){return E_(e.id)},I_=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=Date.now();function a(){Date.now()-r>=n?e.call():o.id=gb(a)}var o={id:gb(a)};return o},Dg={visible:Boolean,prefixCls:String,zIndex:Number,destroyPopupOnHide:Boolean,forceRender:Boolean,animation:[String,Object],transitionName:String,stretch:{type:String},align:{type:Object},point:{type:Object},getRootDomNode:{type:Function},getClassNameFromAlign:{type:Function},onMouseenter:{type:Function},onMouseleave:{type:Function},onMousedown:{type:Function},onTouchstart:{type:Function}},__=y(y({},Dg),{},{mobile:{type:Object}}),N_=y(y({},Dg),{},{mask:Boolean,mobile:{type:Object},maskAnimation:String,maskTransitionName:String});function w3(t){var e=t.prefixCls,n=t.animation,r=t.transitionName;return n?{name:"".concat(e,"-").concat(n)}:r?{name:r}:{}}function S3(t){var e=t.prefixCls,n=t.visible,r=t.zIndex,a=t.mask,o=t.maskAnimation,i=t.maskTransitionName;if(!a)return null;var l={};return(i||o)&&(l=w3({prefixCls:e,transitionName:i,animation:o})),h(Nn,y({appear:!0},l),{default:function(){return[gn(h("div",{style:{zIndex:r},class:"".concat(e,"-mask")},null),[[ST("if"),n]])]}})}S3.displayName="Mask";const $_=ue({compatConfig:{MODE:3},name:"MobilePopupInner",inheritAttrs:!1,props:__,emits:["mouseenter","mouseleave","mousedown","touchstart","align"],setup:function(e,n){var r=n.expose,a=n.slots,o=Q();return r({forceAlign:function(){},getElement:function(){return o.value}}),function(){var i,l=e.zIndex,u=e.visible,s=e.prefixCls,d=e.mobile,c=d===void 0?{}:d,f=c.popupClassName,v=c.popupStyle,p=c.popupMotion,g=p===void 0?{}:p,m=c.popupRender,b=y({zIndex:l},v),x=Et((i=a.default)===null||i===void 0?void 0:i.call(a));x.length>1&&(x=h("div",{class:"".concat(s,"-content")},[x])),m&&(x=m(x));var C=ce(s,f);return h(Nn,y({ref:o},g),{default:function(){return[u?h("div",{class:C,style:b},[x]):null]}})}}});var mb=["measure","align",null,"motion"];const A_=function(t,e){var n=Q(null),r=Q(),a=Q(!1);function o(u){a.value||(n.value=u)}function i(){qe.cancel(r.value)}function l(u){i(),r.value=qe(function(){var s=n.value;switch(n.value){case"align":s="motion";break;case"motion":s="stable";break}o(s),u==null||u()})}return Se(t,function(){o("measure")},{immediate:!0,flush:"post"}),Ge(function(){Se(n,function(){switch(n.value){case"measure":e();break}n.value&&(r.value=qe(Bo(Bn.mark(function u(){var s,d;return Bn.wrap(function(f){for(;;)switch(f.prev=f.next){case 0:s=mb.indexOf(n.value),d=mb[s+1],d&&s!==-1&&o(d);case 3:case"end":return f.stop()}},u)}))))},{immediate:!0,flush:"post"})}),ut(function(){a.value=!0,i()}),[n,l]},R_=function(t){var e=Q({width:0,height:0});function n(a){e.value={width:a.offsetWidth,height:a.offsetHeight}}var r=B(function(){var a={};if(t.value){var o=e.value,i=o.width,l=o.height;t.value.indexOf("height")!==-1&&l?a.height="".concat(l,"px"):t.value.indexOf("minHeight")!==-1&&l&&(a.minHeight="".concat(l,"px")),t.value.indexOf("width")!==-1&&i?a.width="".concat(i,"px"):t.value.indexOf("minWidth")!==-1&&i&&(a.minWidth="".concat(i,"px"))}return a});return[r,n]};function yb(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,r)}return n}function bb(t){for(var e=1;e=0&&n.left>=0&&n.bottom>n.top&&n.right>n.left?n:null}function aN(t,e,n,r){var a=yt.clone(t),o={width:e.width,height:e.height};return r.adjustX&&a.left=n.left&&a.left+o.width>n.right&&(o.width-=a.left+o.width-n.right),r.adjustX&&a.left+o.width>n.right&&(a.left=Math.max(n.right-o.width,n.left)),r.adjustY&&a.top=n.top&&a.top+o.height>n.bottom&&(o.height-=a.top+o.height-n.bottom),r.adjustY&&a.top+o.height>n.bottom&&(a.top=Math.max(n.bottom-o.height,n.top)),yt.mix(a,o)}function jg(t){var e,n,r;if(!yt.isWindow(t)&&t.nodeType!==9)e=yt.offset(t),n=yt.outerWidth(t),r=yt.outerHeight(t);else{var a=yt.getWindow(t);e={left:yt.getWindowScrollLeft(a),top:yt.getWindowScrollTop(a)},n=yt.viewportWidth(a),r=yt.viewportHeight(a)}return e.width=n,e.height=r,e}function Tb(t,e){var n=e.charAt(0),r=e.charAt(1),a=t.width,o=t.height,i=t.left,l=t.top;return n==="c"?l+=o/2:n==="b"&&(l+=o),r==="c"?i+=a/2:r==="r"&&(i+=a),{left:i,top:l}}function Ju(t,e,n,r,a){var o=Tb(e,n[1]),i=Tb(t,n[0]),l=[i.left-o.left,i.top-o.top];return{left:Math.round(t.left-l[0]+r[0]-a[0]),top:Math.round(t.top-l[1]+r[1]-a[1])}}function Eb(t,e,n){return t.leftn.right}function Mb(t,e,n){return t.topn.bottom}function oN(t,e,n){return t.left>n.right||t.left+e.widthn.bottom||t.top+e.height=n.right||r.top>=n.bottom}function Vg(t,e,n){var r=n.target||e,a=jg(r),o=!lN(r,n.overflow&&n.overflow.alwaysByViewport);return _3(t,a,n,o)}Vg.__getOffsetParent=Ch;Vg.__getVisibleRectForElement=Bg;function uN(t,e,n){var r,a,o=yt.getDocument(t),i=o.defaultView||o.parentWindow,l=yt.getWindowScrollLeft(i),u=yt.getWindowScrollTop(i),s=yt.viewportWidth(i),d=yt.viewportHeight(i);"pageX"in e?r=e.pageX:r=l+e.clientX,"pageY"in e?a=e.pageY:a=u+e.clientY;var c={left:r,top:a,width:0,height:0},f=r>=0&&r<=l+s&&a>=0&&a<=u+d,v=[n.points[0],"cc"];return _3(t,c,bb(bb({},n),{},{points:v}),f)}function Ct(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,a=t;if(Array.isArray(t)&&(a=Gt(t)[0]),!a)return null;var o=Cn(a,e,r);return o.props=n?y(y({},o.props),e):o.props,Qt(Fe(o.props.class)!=="object","class must be string"),o}function sN(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return t.map(function(r){return Ct(r,e,n)})}function _l(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(Array.isArray(t))return t.map(function(o){return _l(o,e,n,r)});var a=Ct(t,e,n,r);return Array.isArray(a.children)&&(a.children=_l(a.children)),a}const Kg=function(t){if(!t)return!1;if(t.offsetParent)return!0;if(t.getBBox){var e=t.getBBox();if(e.width||e.height)return!0}if(t.getBoundingClientRect){var n=t.getBoundingClientRect();if(n.width||n.height)return!0}return!1};function cN(t,e){return t===e?!0:!t||!e?!1:"pageX"in e&&"pageY"in e?t.pageX===e.pageX&&t.pageY===e.pageY:"clientX"in e&&"clientY"in e?t.clientX===e.clientX&&t.clientY===e.clientY:!1}function dN(t,e){t!==document.activeElement&&Co(e,t)&&typeof t.focus=="function"&&t.focus()}function Nb(t,e){var n=null,r=null;function a(i){var l=Te(i,1),u=l[0].target;if(document.documentElement.contains(u)){var s=u.getBoundingClientRect(),d=s.width,c=s.height,f=Math.floor(d),v=Math.floor(c);(n!==f||r!==v)&&Promise.resolve().then(function(){e({width:f,height:v})}),n=f,r=v}}var o=new og(a);return t&&o.observe(t),function(){o.disconnect()}}const fN=function(t,e){var n=!1,r=null;function a(){clearTimeout(r)}function o(i){if(!n||i===!0){if(t()===!1)return;n=!0,a(),r=setTimeout(function(){n=!1},e.value)}else a(),r=setTimeout(function(){n=!1,o()},e.value)}return[o,function(){n=!1,a()}]};function vN(){this.__data__=[],this.size=0}function Hg(t,e){return t===e||t!==t&&e!==e}function pd(t,e){for(var n=t.length;n--;)if(Hg(t[n][0],e))return n;return-1}var hN=Array.prototype,pN=hN.splice;function gN(t){var e=this.__data__,n=pd(e,t);if(n<0)return!1;var r=e.length-1;return n==r?e.pop():pN.call(e,n,1),--this.size,!0}function mN(t){var e=this.__data__,n=pd(e,t);return n<0?void 0:e[n][1]}function yN(t){return pd(this.__data__,t)>-1}function bN(t,e){var n=this.__data__,r=pd(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this}function ya(t){var e=-1,n=t==null?0:t.length;for(this.clear();++el))return!1;var s=o.get(t),d=o.get(e);if(s&&d)return s==e&&d==t;var c=-1,f=!0,v=n&v$?new Mi:void 0;for(o.set(t,e),o.set(e,t);++c-1&&t%1==0&&t-1&&t%1==0&&t<=U$}var Y$="[object Arguments]",G$="[object Array]",q$="[object Boolean]",X$="[object Date]",Q$="[object Error]",Z$="[object Function]",J$="[object Map]",eA="[object Number]",tA="[object Object]",nA="[object RegExp]",rA="[object Set]",aA="[object String]",oA="[object WeakMap]",iA="[object ArrayBuffer]",lA="[object DataView]",uA="[object Float32Array]",sA="[object Float64Array]",cA="[object Int8Array]",dA="[object Int16Array]",fA="[object Int32Array]",vA="[object Uint8Array]",hA="[object Uint8ClampedArray]",pA="[object Uint16Array]",gA="[object Uint32Array]",Kt={};Kt[uA]=Kt[sA]=Kt[cA]=Kt[dA]=Kt[fA]=Kt[vA]=Kt[hA]=Kt[pA]=Kt[gA]=!0;Kt[Y$]=Kt[G$]=Kt[iA]=Kt[q$]=Kt[lA]=Kt[X$]=Kt[Q$]=Kt[Z$]=Kt[J$]=Kt[eA]=Kt[tA]=Kt[nA]=Kt[rA]=Kt[aA]=Kt[oA]=!1;function mA(t){return xr(t)&&qg(t.length)&&!!Kt[Ya(t)]}function md(t){return function(e){return t(e)}}var L3=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Nl=L3&&typeof module=="object"&&module&&!module.nodeType&&module,yA=Nl&&Nl.exports===L3,Vf=yA&&f4.process,bA=function(){try{var t=Nl&&Nl.require&&Nl.require("util").types;return t||Vf&&Vf.binding&&Vf.binding("util")}catch{}}();const Ii=bA;var Bb=Ii&&Ii.isTypedArray,CA=Bb?md(Bb):mA;const B3=CA;var xA=Object.prototype,wA=xA.hasOwnProperty;function j3(t,e){var n=fr(t),r=!n&&Yg(t),a=!n&&!r&&yc(t),o=!n&&!r&&!a&&B3(t),i=n||r||a||o,l=i?R$(t.length,String):[],u=l.length;for(var s in t)(e||wA.call(t,s))&&!(i&&(s=="length"||a&&(s=="offset"||s=="parent")||o&&(s=="buffer"||s=="byteLength"||s=="byteOffset")||Gg(s,u)))&&l.push(s);return l}var SA=Object.prototype;function Xg(t){var e=t&&t.constructor,n=typeof e=="function"&&e.prototype||SA;return t===n}var PA=h4(Object.keys,Object);const kA=PA;var OA=Object.prototype,TA=OA.hasOwnProperty;function EA(t){if(!Xg(t))return kA(t);var e=[];for(var n in Object(t))TA.call(t,n)&&n!="constructor"&&e.push(n);return e}function Pu(t){return t!=null&&qg(t.length)&&!N3(t)}function Ui(t){return Pu(t)?j3(t):EA(t)}function xh(t){return A3(t,Ui,Ug)}var MA=1,IA=Object.prototype,_A=IA.hasOwnProperty;function NA(t,e,n,r,a,o){var i=n&MA,l=xh(t),u=l.length,s=xh(e),d=s.length;if(u!=d&&!i)return!1;for(var c=u;c--;){var f=l[c];if(!(i?f in e:_A.call(e,f)))return!1}var v=o.get(t),p=o.get(e);if(v&&p)return v==e&&p==t;var g=!0;o.set(t,e),o.set(e,t);for(var m=i;++c1&&(Y=h("div",{class:"".concat(F,"-content")},[Y]));var K=ce(F,a.class,u.value),z=p.value||!e.visible,X=z?Ga(T.value.name,T.value):{};return h(Nn,y(y({ref:l},X),{},{onBeforeEnter:O}),{default:function(){return!j||e.visible?gn(h(YA,{target:P(),key:"popup",ref:i,monitorWindowResize:!0,disabled:N.value,align:E,onAlign:k},{default:function(){return h("div",y(y({class:K,onMouseenter:R,onMouseleave:D,onMousedown:x1(V,["capture"])},A({},nn?"onTouchstartPassive":"onTouchstart",x1(M,["capture"]))),{},{style:U}),[Y])}}),[[Tr,p.value]]):null}})}}}),qA=ue({compatConfig:{MODE:3},name:"Popup",inheritAttrs:!1,props:N_,setup:function(e,n){var r=n.attrs,a=n.slots,o=n.expose,i=Q(!1),l=Q(!1),u=Q();return Se([function(){return e.visible},function(){return e.mobile}],function(){i.value=e.visible,e.visible&&e.mobile&&(l.value=!0)},{immediate:!0,flush:"post"}),o({forceAlign:function(){var d;(d=u.value)===null||d===void 0||d.forceAlign()},getElement:function(){var d;return(d=u.value)===null||d===void 0?void 0:d.getElement()}}),function(){var s=y(y(y({},e),r),{},{visible:i.value}),d=l.value?h($_,y(y({},s),{},{mobile:e.mobile,ref:u}),{default:a.default}):h(GA,y(y({},s),{},{ref:u}),{default:a.default});return h("div",null,[h(S3,s,null),d])}}});function XA(t,e,n){return n?t[0]===e[0]:t[0]===e[0]&&t[1]===e[1]}function Xb(t,e,n){var r=t[e]||{};return y(y({},r),n)}function QA(t,e,n,r){for(var a=n.points,o=Object.keys(t),i=0;i0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=typeof e=="function"?e(this.$data,this.$props):e;if(this.getDerivedStateFromProps){var a=this.getDerivedStateFromProps(g4(this),y(y({},this.$data),r));if(a===null)return;r=y(y({},r),a||{})}pt(this.$data,r),this._.isMounted&&this.$forceUpdate(),nt(function(){n&&n()})},__emit:function(){var e=[].slice.call(arguments,0),n=e[0];n="on".concat(n[0].toUpperCase()).concat(n.substring(1));var r=this.$props[n]||this.$attrs[n];if(e.length&&r)if(Array.isArray(r))for(var a=0,o=r.length;a1&&arguments[1]!==void 0?arguments[1]:{inTriggerContext:!0};at(H3,{inTriggerContext:n.inTriggerContext,shouldRender:B(function(){var r=e||{},a=r.sPopupVisible,o=r.popupRef,i=r.forceRender,l=r.autoDestroy,u=!1;return(a||o||i)&&(u=!0),!a&&l&&(u=!1),u})})},JA=function(){Qg({},{inTriggerContext:!1});var e=Ze(H3,{shouldRender:B(function(){return!1}),inTriggerContext:!1});return{shouldRender:B(function(){return e.shouldRender.value||e.inTriggerContext===!1})}};const kh=ue({compatConfig:{MODE:3},name:"Portal",inheritAttrs:!1,props:{getContainer:G.func.isRequired,didUpdate:Function},setup:function(e,n){var r=n.slots,a=!0,o,i=JA(),l=i.shouldRender;ld(function(){a=!1,l.value&&(o=e.getContainer())});var u=Se(l,function(){l.value&&!o&&(o=e.getContainer()),o&&u()});return Sn(function(){nt(function(){if(l.value){var s;(s=e.didUpdate)===null||s===void 0||s.call(e,e)}})}),ut(function(){o&&o.parentNode&&o.parentNode.removeChild(o)}),function(){if(!l.value)return null;if(a){var s;return(s=r.default)===null||s===void 0?void 0:s.call(r)}return o?h(eg,{to:o},r):null}}});function Qb(){}function e9(){return""}function t9(t){return t?t.ownerDocument:window.document}var n9=["onClick","onMousedown","onTouchstart","onMouseenter","onMouseleave","onFocus","onBlur","onContextmenu"];const Yi=ue({compatConfig:{MODE:3},name:"Trigger",mixins:[Ho],inheritAttrs:!1,props:{action:G.oneOfType([G.string,G.arrayOf(G.string)]).def([]),showAction:G.any.def([]),hideAction:G.any.def([]),getPopupClassNameFromAlign:G.any.def(e9),onPopupVisibleChange:Function,afterPopupVisibleChange:G.func.def(Qb),popup:G.any,popupStyle:{type:Object,default:void 0},prefixCls:G.string.def("rc-trigger-popup"),popupClassName:G.string.def(""),popupPlacement:String,builtinPlacements:G.object,popupTransitionName:String,popupAnimation:G.any,mouseEnterDelay:G.number.def(0),mouseLeaveDelay:G.number.def(.1),zIndex:Number,focusDelay:G.number.def(0),blurDelay:G.number.def(.15),getPopupContainer:Function,getDocument:G.func.def(t9),forceRender:{type:Boolean,default:void 0},destroyPopupOnHide:{type:Boolean,default:!1},mask:{type:Boolean,default:!1},maskClosable:{type:Boolean,default:!0},popupAlign:G.object.def(function(){return{}}),popupVisible:{type:Boolean,default:void 0},defaultPopupVisible:{type:Boolean,default:!1},maskTransitionName:String,maskAnimation:String,stretch:String,alignPoint:{type:Boolean,default:void 0},autoDestroy:{type:Boolean,default:!1},mobile:Object,getTriggerDOMNode:Function,tryPopPortal:Boolean},setup:function(e){var n=B(function(){var u=e.popupPlacement,s=e.popupAlign,d=e.builtinPlacements;return u&&d?Xb(d,u,s):s}),r=ZA(e.tryPopPortal),a=r.setPortal,o=r.popPortal,i=Q(null),l=function(s){i.value=s};return{popPortal:o,setPortal:a,vcTriggerContext:Ze("vcTriggerContext",{}),popupRef:i,setPopupRef:l,triggerRef:Q(null),align:n,focusTime:null,clickOutsideHandler:null,contextmenuOutsideHandler1:null,contextmenuOutsideHandler2:null,touchOutsideHandler:null,attachId:null,delayTimer:null,hasPopupMouseDown:!1,preClickTime:null,preTouchTime:null,mouseDownTimeout:null,childOriginEvents:{}}},data:function(){var e=this,n,r=this.$props,a;return this.popupVisible!==void 0?a=!!r.popupVisible:a=!!r.defaultPopupVisible,n9.forEach(function(o){e["fire".concat(o)]=function(i){e.fireEvents(o,i)}}),(n=this.setPortal)===null||n===void 0||n.call(this,h(kh,{key:"portal",getContainer:this.getContainer,didUpdate:this.handlePortalUpdate},{default:this.getComponent})),{prevPopupVisible:a,sPopupVisible:a,point:null}},watch:{popupVisible:function(e){e!==void 0&&(this.prevPopupVisible=this.sPopupVisible,this.sPopupVisible=e)}},created:function(){at("vcTriggerContext",{onPopupMouseDown:this.onPopupMouseDown}),Qg(this)},deactivated:function(){this.setPopupVisible(!1)},mounted:function(){var e=this;this.$nextTick(function(){e.updatedCal()})},updated:function(){var e=this;this.$nextTick(function(){e.updatedCal()})},beforeUnmount:function(){this.clearDelayTimer(),this.clearOutsideHandler(),clearTimeout(this.mouseDownTimeout),qe.cancel(this.attachId)},methods:{updatedCal:function(){var e=this.$props,n=this.$data;if(n.sPopupVisible){var r;!this.clickOutsideHandler&&(this.isClickToHide()||this.isContextmenuToShow())&&(r=e.getDocument(this.getRootDomNode()),this.clickOutsideHandler=Dt(r,"mousedown",this.onDocumentClick)),this.touchOutsideHandler||(r=r||e.getDocument(this.getRootDomNode()),this.touchOutsideHandler=Dt(r,"touchstart",this.onDocumentClick,nn?{passive:!1}:!1)),!this.contextmenuOutsideHandler1&&this.isContextmenuToShow()&&(r=r||e.getDocument(this.getRootDomNode()),this.contextmenuOutsideHandler1=Dt(r,"scroll",this.onContextmenuClose)),!this.contextmenuOutsideHandler2&&this.isContextmenuToShow()&&(this.contextmenuOutsideHandler2=Dt(window,"blur",this.onContextmenuClose))}else this.clearOutsideHandler()},onMouseenter:function(e){var n=this.$props.mouseEnterDelay;this.fireEvents("onMouseenter",e),this.delaySetPopupVisible(!0,n,n?null:e)},onMouseMove:function(e){this.fireEvents("onMousemove",e),this.setPoint(e)},onMouseleave:function(e){this.fireEvents("onMouseleave",e),this.delaySetPopupVisible(!1,this.$props.mouseLeaveDelay)},onPopupMouseenter:function(){this.clearDelayTimer()},onPopupMouseleave:function(e){var n;e&&e.relatedTarget&&!e.relatedTarget.setTimeout&&Co((n=this.popupRef)===null||n===void 0?void 0:n.getElement(),e.relatedTarget)||this.delaySetPopupVisible(!1,this.$props.mouseLeaveDelay)},onFocus:function(e){this.fireEvents("onFocus",e),this.clearDelayTimer(),this.isFocusToShow()&&(this.focusTime=Date.now(),this.delaySetPopupVisible(!0,this.$props.focusDelay))},onMousedown:function(e){this.fireEvents("onMousedown",e),this.preClickTime=Date.now()},onTouchstart:function(e){this.fireEvents("onTouchstart",e),this.preTouchTime=Date.now()},onBlur:function(e){Co(e.target,e.relatedTarget||document.activeElement)||(this.fireEvents("onBlur",e),this.clearDelayTimer(),this.isBlurToHide()&&this.delaySetPopupVisible(!1,this.$props.blurDelay))},onContextmenu:function(e){e.preventDefault(),this.fireEvents("onContextmenu",e),this.setPopupVisible(!0,e)},onContextmenuClose:function(){this.isContextmenuToShow()&&this.close()},onClick:function(e){if(this.fireEvents("onClick",e),this.focusTime){var n;if(this.preClickTime&&this.preTouchTime?n=Math.min(this.preClickTime,this.preTouchTime):this.preClickTime?n=this.preClickTime:this.preTouchTime&&(n=this.preTouchTime),Math.abs(n-this.focusTime)<20)return;this.focusTime=0}this.preClickTime=0,this.preTouchTime=0,this.isClickToShow()&&(this.isClickToHide()||this.isBlurToHide())&&e&&e.preventDefault&&e.preventDefault(),e&&e.domEvent&&e.domEvent.preventDefault();var r=!this.$data.sPopupVisible;(this.isClickToHide()&&!r||r&&this.isClickToShow())&&this.setPopupVisible(!this.$data.sPopupVisible,e)},onPopupMouseDown:function(){var e=this,n=this.vcTriggerContext,r=n===void 0?{}:n;this.hasPopupMouseDown=!0,clearTimeout(this.mouseDownTimeout),this.mouseDownTimeout=setTimeout(function(){e.hasPopupMouseDown=!1},0),r.onPopupMouseDown&&r.onPopupMouseDown.apply(r,arguments)},onDocumentClick:function(e){if(!(this.$props.mask&&!this.$props.maskClosable)){var n=e.target,r=this.getRootDomNode(),a=this.getPopupDomNode();(!Co(r,n)||this.isContextMenuOnly())&&!Co(a,n)&&!this.hasPopupMouseDown&&this.delaySetPopupVisible(!1,.1)}},getPopupDomNode:function(){var e;return((e=this.popupRef)===null||e===void 0?void 0:e.getElement())||null},getRootDomNode:function(){var e=this.$props.getTriggerDOMNode;if(e){var n=Ra(this.triggerRef);return Ra(e(n))}try{var r=Ra(this.triggerRef);if(r)return r}catch{}return Ra(this)},handleGetPopupClassFromAlign:function(e){var n=[],r=this.$props,a=r.popupPlacement,o=r.builtinPlacements,i=r.prefixCls,l=r.alignPoint,u=r.getPopupClassNameFromAlign;return a&&o&&n.push(QA(o,i,e,l)),u&&n.push(u(e)),n.join(" ")},getPopupAlign:function(){var e=this.$props,n=e.popupPlacement,r=e.popupAlign,a=e.builtinPlacements;return n&&a?Xb(a,n,r):r},getComponent:function(){var e=this,n={};this.isMouseEnterToShow()&&(n.onMouseenter=this.onPopupMouseenter),this.isMouseLeaveToHide()&&(n.onMouseleave=this.onPopupMouseleave),n.onMousedown=this.onPopupMouseDown,n[nn?"onTouchstartPassive":"onTouchstart"]=this.onPopupMouseDown;var r=this.handleGetPopupClassFromAlign,a=this.getRootDomNode,o=this.getContainer,i=this.$attrs,l=this.$props,u=l.prefixCls,s=l.destroyPopupOnHide,d=l.popupClassName,c=l.popupAnimation,f=l.popupTransitionName,v=l.popupStyle,p=l.mask,g=l.maskAnimation,m=l.maskTransitionName,b=l.zIndex,x=l.stretch,C=l.alignPoint,w=l.mobile,P=l.forceRender,S=this.$data,k=S.sPopupVisible,T=S.point,O=y(y({prefixCls:u,destroyPopupOnHide:s,visible:k,point:C?T:null,align:this.align,animation:c,getClassNameFromAlign:r,stretch:x,getRootDomNode:a,mask:p,zIndex:b,transitionName:f,maskAnimation:g,maskTransitionName:m,getContainer:o,class:d,style:v,onAlign:i.onPopupAlign||Qb},n),{},{ref:this.setPopupRef,mobile:w,forceRender:P});return h(qA,O,{default:this.$slots.popup||function(){return cg(e,"popup")}})},attachParent:function(e){var n=this;qe.cancel(this.attachId);var r=this.$props,a=r.getPopupContainer,o=r.getDocument,i=this.getRootDomNode(),l;a?(i||a.length===0)&&(l=a(i)):l=o(this.getRootDomNode()).body,l?l.appendChild(e):this.attachId=qe(function(){n.attachParent(e)})},getContainer:function(){var e=this.$props,n=e.getDocument,r=n(this.getRootDomNode()).createElement("div");return r.style.position="absolute",r.style.top="0",r.style.left="0",r.style.width="100%",this.attachParent(r),r},setPopupVisible:function(e,n){var r=this.alignPoint,a=this.sPopupVisible,o=this.onPopupVisibleChange;this.clearDelayTimer(),a!==e&&(la(this,"popupVisible")||this.setState({sPopupVisible:e,prevPopupVisible:a}),o&&o(e)),r&&n&&e&&this.setPoint(n)},setPoint:function(e){var n=this.$props.alignPoint;!n||!e||this.setState({point:{pageX:e.pageX,pageY:e.pageY}})},handlePortalUpdate:function(){this.prevPopupVisible!==this.sPopupVisible&&this.afterPopupVisibleChange(this.sPopupVisible)},delaySetPopupVisible:function(e,n,r){var a=this,o=n*1e3;if(this.clearDelayTimer(),o){var i=r?{pageX:r.pageX,pageY:r.pageY}:null;this.delayTimer=I_(function(){a.setPopupVisible(e,i),a.clearDelayTimer()},o)}else this.setPopupVisible(e,r)},clearDelayTimer:function(){this.delayTimer&&(M_(this.delayTimer),this.delayTimer=null)},clearOutsideHandler:function(){this.clickOutsideHandler&&(this.clickOutsideHandler.remove(),this.clickOutsideHandler=null),this.contextmenuOutsideHandler1&&(this.contextmenuOutsideHandler1.remove(),this.contextmenuOutsideHandler1=null),this.contextmenuOutsideHandler2&&(this.contextmenuOutsideHandler2.remove(),this.contextmenuOutsideHandler2=null),this.touchOutsideHandler&&(this.touchOutsideHandler.remove(),this.touchOutsideHandler=null)},createTwoChains:function(e){var n=function(){},r=T1(this);return this.childOriginEvents[e]&&r[e]?this["fire".concat(e)]:(n=this.childOriginEvents[e]||r[e]||n,n)},isClickToShow:function(){var e=this.$props,n=e.action,r=e.showAction;return n.indexOf("click")!==-1||r.indexOf("click")!==-1},isContextMenuOnly:function(){var e=this.$props.action;return e==="contextmenu"||e.length===1&&e[0]==="contextmenu"},isContextmenuToShow:function(){var e=this.$props,n=e.action,r=e.showAction;return n.indexOf("contextmenu")!==-1||r.indexOf("contextmenu")!==-1},isClickToHide:function(){var e=this.$props,n=e.action,r=e.hideAction;return n.indexOf("click")!==-1||r.indexOf("click")!==-1},isMouseEnterToShow:function(){var e=this.$props,n=e.action,r=e.showAction;return n.indexOf("hover")!==-1||r.indexOf("mouseenter")!==-1},isMouseLeaveToHide:function(){var e=this.$props,n=e.action,r=e.hideAction;return n.indexOf("hover")!==-1||r.indexOf("mouseleave")!==-1},isFocusToShow:function(){var e=this.$props,n=e.action,r=e.showAction;return n.indexOf("focus")!==-1||r.indexOf("focus")!==-1},isBlurToHide:function(){var e=this.$props,n=e.action,r=e.hideAction;return n.indexOf("focus")!==-1||r.indexOf("blur")!==-1},forcePopupAlign:function(){if(this.$data.sPopupVisible){var e;(e=this.popupRef)===null||e===void 0||e.forceAlign()}},fireEvents:function(e,n){this.childOriginEvents[e]&&this.childOriginEvents[e](n);var r=this.$props[e]||this.$attrs[e];r&&r(n)},close:function(){this.setPopupVisible(!1)}},render:function(){var e=this,n=this.$attrs,r=Gt(bu(this)),a=this.$props.alignPoint,o=r[0];this.childOriginEvents=T1(o);var i={key:"trigger"};this.isContextmenuToShow()?i.onContextmenu=this.onContextmenu:i.onContextmenu=this.createTwoChains("onContextmenu"),this.isClickToHide()||this.isClickToShow()?(i.onClick=this.onClick,i.onMousedown=this.onMousedown,i[nn?"onTouchstartPassive":"onTouchstart"]=this.onTouchstart):(i.onClick=this.createTwoChains("onClick"),i.onMousedown=this.createTwoChains("onMousedown"),i[nn?"onTouchstartPassive":"onTouchstart"]=this.createTwoChains("onTouchstart")),this.isMouseEnterToShow()?(i.onMouseenter=this.onMouseenter,a&&(i.onMousemove=this.onMouseMove)):i.onMouseenter=this.createTwoChains("onMouseenter"),this.isMouseLeaveToHide()?i.onMouseleave=this.onMouseleave:i.onMouseleave=this.createTwoChains("onMouseleave"),this.isFocusToShow()||this.isBlurToHide()?(i.onFocus=this.onFocus,i.onBlur=this.onBlur):(i.onFocus=this.createTwoChains("onFocus"),i.onBlur=function(d){d&&(!d.relatedTarget||!Co(d.target,d.relatedTarget))&&e.createTwoChains("onBlur")(d)});var l=ce(o&&o.props&&o.props.class,n.class);l&&(i.class=l);var u=Ct(o,y(y({},i),{},{ref:"triggerRef"}),!0,!0);if(this.popPortal)return u;var s=h(kh,{key:"portal",getContainer:this.getContainer,didUpdate:this.handlePortalUpdate},{default:this.getComponent});return h(et,null,[s,u])}});var r9=["empty"],a9=function(e){var n=e===!0?0:1;return{bottomLeft:{points:["tl","bl"],offset:[0,4],overflow:{adjustX:n,adjustY:1}},bottomRight:{points:["tr","br"],offset:[0,4],overflow:{adjustX:n,adjustY:1}},topLeft:{points:["bl","tl"],offset:[0,-4],overflow:{adjustX:n,adjustY:1}},topRight:{points:["br","tr"],offset:[0,-4],overflow:{adjustX:n,adjustY:1}}}},o9=ue({name:"SelectTrigger",inheritAttrs:!1,props:{dropdownAlign:Object,visible:{type:Boolean,default:void 0},disabled:{type:Boolean,default:void 0},dropdownClassName:String,dropdownStyle:G.object,placement:String,empty:{type:Boolean,default:void 0},prefixCls:String,popupClassName:String,animation:String,transitionName:String,getPopupContainer:Function,dropdownRender:Function,containerWidth:Number,dropdownMatchSelectWidth:G.oneOfType([Number,Boolean]).def(!0),popupElement:G.any,direction:String,getTriggerDOMNode:Function,onPopupVisibleChange:Function,onPopupMouseEnter:Function},setup:function(e,n){var r=n.slots,a=n.attrs,o=n.expose,i=B(function(){var u=e.dropdownMatchSelectWidth;return a9(u)}),l=Q();return o({getPopupElement:function(){return l.value}}),function(){var u=y(y({},e),a),s=u.empty,d=s===void 0?!1:s,c=He(u,r9),f=c.visible,v=c.dropdownAlign,p=c.prefixCls,g=c.popupElement,m=c.dropdownClassName,b=c.dropdownStyle,x=c.direction,C=x===void 0?"ltr":x,w=c.placement,P=c.dropdownMatchSelectWidth,S=c.containerWidth,k=c.dropdownRender,T=c.animation,O=c.transitionName,N=c.getPopupContainer,$=c.getTriggerDOMNode,I=c.onPopupVisibleChange,E=c.onPopupMouseEnter,F="".concat(p,"-dropdown"),j=g;k&&(j=k({menuNode:g,props:e}));var R=T?"".concat(F,"-").concat(T):O,D=y({minWidth:"".concat(S,"px")},b);return typeof P=="number"?D.width="".concat(P,"px"):P&&(D.width="".concat(S,"px")),h(Yi,y(y({},e),{},{showAction:I?["click"]:[],hideAction:I?["click"]:[],popupPlacement:w||(C==="rtl"?"bottomRight":"bottomLeft"),builtinPlacements:i.value,prefixCls:F,popupTransitionName:R,popupAlign:v,popupVisible:f,getPopupContainer:N,popupClassName:ce(m,A({},"".concat(F,"-empty"),d)),popupStyle:D,getTriggerDOMNode:$,onPopupVisibleChange:I}),{default:r.default,popup:function(){return h("div",{ref:l,onMouseenter:E},[j])}})}}});const i9=o9;var ht={MAC_ENTER:3,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,QUESTION_MARK:63,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLOCK:144,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,PERIOD:190,SLASH:191,APOSTROPHE:192,SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,WIN_KEY:224,MAC_FF_META:224,WIN_IME:229,isTextModifyingKeyEvent:function(e){var n=e.keyCode;if(e.altKey&&!e.ctrlKey||e.metaKey||n>=ht.F1&&n<=ht.F12)return!1;switch(n){case ht.ALT:case ht.CAPS_LOCK:case ht.CONTEXT_MENU:case ht.CTRL:case ht.DOWN:case ht.END:case ht.ESC:case ht.HOME:case ht.INSERT:case ht.LEFT:case ht.MAC_FF_META:case ht.META:case ht.NUMLOCK:case ht.NUM_CENTER:case ht.PAGE_DOWN:case ht.PAGE_UP:case ht.PAUSE:case ht.PRINT_SCREEN:case ht.RIGHT:case ht.SHIFT:case ht.UP:case ht.WIN_KEY:case ht.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=ht.ZERO&&e<=ht.NINE||e>=ht.NUM_ZERO&&e<=ht.NUM_MULTIPLY||e>=ht.A&&e<=ht.Z||window.navigator.userAgent.indexOf("WebKit")!==-1&&e===0)return!0;switch(e){case ht.SPACE:case ht.QUESTION_MARK:case ht.NUM_PLUS:case ht.NUM_MINUS:case ht.NUM_PERIOD:case ht.NUM_DIVISION:case ht.SEMICOLON:case ht.DASH:case ht.EQUALS:case ht.COMMA:case ht.PERIOD:case ht.SLASH:case ht.APOSTROPHE:case ht.SINGLE_QUOTE:case ht.OPEN_SQUARE_BRACKET:case ht.BACKSLASH:case ht.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}};const Ee=ht;var Cd=function(e,n){var r,a=n.slots,o=e.class,i=e.customizeIcon,l=e.customizeIconProps,u=e.onMousedown,s=e.onClick,d;return typeof i=="function"?d=i(l):d=i,h("span",{class:o,onMousedown:function(f){f.preventDefault(),u&&u(f)},style:{userSelect:"none",WebkitUserSelect:"none"},unselectable:"on",onClick:s,"aria-hidden":!0},[d!==void 0?d:h("span",{class:o.split(/\s+/).map(function(c){return"".concat(c,"-icon")})},[(r=a.default)===null||r===void 0?void 0:r.call(a)])])};Cd.inheritAttrs=!1;Cd.displayName="TransBtn";Cd.props={class:String,customizeIcon:G.any,customizeIconProps:G.any,onMousedown:Function,onClick:Function};const bc=Cd;function l9(t){t.target.composing=!0}function Zb(t){t.target.composing&&(t.target.composing=!1,u9(t.target,"input"))}function u9(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function Kf(t,e,n,r){t.addEventListener(e,n,r)}var s9={created:function(e,n){(!n.modifiers||!n.modifiers.lazy)&&(Kf(e,"compositionstart",l9),Kf(e,"compositionend",Zb),Kf(e,"change",Zb))}};const Gi=s9;var c9={inputRef:G.any,prefixCls:String,id:String,inputElement:G.VueNode,disabled:{type:Boolean,default:void 0},autofocus:{type:Boolean,default:void 0},autocomplete:String,editable:{type:Boolean,default:void 0},activeDescendantId:String,value:String,open:{type:Boolean,default:void 0},tabindex:G.oneOfType([G.number,G.string]),attrs:G.object,onKeydown:{type:Function},onMousedown:{type:Function},onChange:{type:Function},onPaste:{type:Function},onCompositionstart:{type:Function},onCompositionend:{type:Function},onFocus:{type:Function},onBlur:{type:Function}},d9=ue({compatConfig:{MODE:3},name:"Input",inheritAttrs:!1,props:c9,setup:function(e){var n=null,r=Ze("VCSelectContainerEvent");return function(){var a,o,i=e.prefixCls,l=e.id,u=e.inputElement,s=e.disabled,d=e.tabindex,c=e.autofocus,f=e.autocomplete,v=e.editable,p=e.activeDescendantId,g=e.value,m=e.onKeydown,b=e.onMousedown,x=e.onChange,C=e.onPaste,w=e.onCompositionstart,P=e.onCompositionend,S=e.onFocus,k=e.onBlur,T=e.open,O=e.inputRef,N=e.attrs,$=u||gn(h("input",null,null),[[Gi]]),I=$.props||{},E=I.onKeydown,F=I.onInput,j=I.onFocus,R=I.onBlur,D=I.onMousedown,_=I.onCompositionstart,M=I.onCompositionend,V=I.style;return $=Ct($,pt(y(y(y({type:"search"},I),{},{id:l,ref:O,disabled:s,tabindex:d,autocomplete:f||"off",autofocus:c,class:ce("".concat(i,"-selection-search-input"),(a=$)===null||a===void 0||(o=a.props)===null||o===void 0?void 0:o.class),role:"combobox","aria-expanded":T,"aria-haspopup":"listbox","aria-owns":"".concat(l,"_list"),"aria-autocomplete":"list","aria-controls":"".concat(l,"_list"),"aria-activedescendant":p},N),{},{value:v?g:"",readonly:!v,unselectable:v?null:"on",style:y(y({},V),{},{opacity:v?null:0}),onKeydown:function(U){m(U),E&&E(U)},onMousedown:function(U){b(U),D&&D(U)},onInput:function(U){x(U),F&&F(U)},onCompositionstart:function(U){w(U),_&&_(U)},onCompositionend:function(U){P(U),M&&M(U)},onPaste:C,onFocus:function(){clearTimeout(n),j&&j(arguments.length<=0?void 0:arguments[0]),S&&S(arguments.length<=0?void 0:arguments[0]),r==null||r.focus(arguments.length<=0?void 0:arguments[0])},onBlur:function(){for(var U=arguments.length,Y=new Array(U),K=0;K