react-bootstrap-plugins 2.7.1 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/README.md +2 -13
  2. package/dist/AutoDisplay.cjs +1 -1
  3. package/dist/AutoDisplay.d.cts +1 -1
  4. package/dist/AutoDisplay.d.ts +1 -1
  5. package/dist/AutoDisplay.js +1 -1
  6. package/dist/AutoTextarea.cjs +1 -1
  7. package/dist/AutoTextarea.d.cts +1 -1
  8. package/dist/AutoTextarea.d.ts +1 -1
  9. package/dist/AutoTextarea.js +1 -1
  10. package/dist/ConfirmDialog.cjs +1 -1
  11. package/dist/ConfirmDialog.d.cts +1 -1
  12. package/dist/ConfirmDialog.d.ts +1 -1
  13. package/dist/ConfirmDialog.js +1 -1
  14. package/dist/DatePicker.cjs +1 -1
  15. package/dist/DatePicker.d.cts +1 -1
  16. package/dist/DatePicker.d.ts +1 -1
  17. package/dist/DatePicker.js +1 -1
  18. package/dist/FormRow.cjs +1 -1
  19. package/dist/FormRow.d.cts +1 -1
  20. package/dist/FormRow.d.ts +1 -1
  21. package/dist/FormRow.js +1 -1
  22. package/dist/InputCurrency.cjs +1 -1
  23. package/dist/InputCurrency.d.cts +1 -1
  24. package/dist/InputCurrency.d.ts +1 -1
  25. package/dist/InputCurrency.js +1 -1
  26. package/dist/Label.cjs +1 -1
  27. package/dist/Label.d.cts +1 -1
  28. package/dist/Label.d.ts +1 -1
  29. package/dist/Label.js +1 -1
  30. package/dist/ListGroup.cjs +1 -1
  31. package/dist/ListGroup.d.cts +1 -1
  32. package/dist/ListGroup.d.ts +1 -1
  33. package/dist/ListGroup.js +1 -1
  34. package/dist/NavPills.cjs +1 -1
  35. package/dist/NavPills.d.cts +1 -1
  36. package/dist/NavPills.d.ts +1 -1
  37. package/dist/NavPills.js +1 -1
  38. package/dist/SearchSelect.cjs +1 -1
  39. package/dist/SearchSelect.d.cts +1 -1
  40. package/dist/SearchSelect.d.ts +1 -1
  41. package/dist/SearchSelect.js +1 -1
  42. package/dist/TableLoading.cjs +1 -1
  43. package/dist/TableLoading.d.cts +1 -1
  44. package/dist/TableLoading.d.ts +1 -1
  45. package/dist/TableLoading.js +1 -1
  46. package/dist/chunk-2JHXYFQ6.js +2 -0
  47. package/dist/chunk-3ADGRA2S.js +2 -0
  48. package/dist/chunk-42N74TNX.cjs +2 -0
  49. package/dist/chunk-52FOSLLU.cjs +2 -0
  50. package/dist/chunk-5ARKG2CR.cjs +2 -0
  51. package/dist/chunk-5CHRUXRG.js +2 -0
  52. package/dist/chunk-675RXADI.cjs +2 -0
  53. package/dist/chunk-6SOXX6RU.js +2 -0
  54. package/dist/{chunk-M3OUUXZG.cjs → chunk-723CRTRY.js} +2 -2
  55. package/dist/{chunk-TDSAO4B2.cjs → chunk-BM73MC3K.cjs} +2 -2
  56. package/dist/chunk-CXMV4Q5F.js +2 -0
  57. package/dist/chunk-DLTHOI35.cjs +2 -0
  58. package/dist/chunk-FZ4KI5ZP.js +2 -0
  59. package/dist/chunk-I2HKEXOJ.cjs +2 -0
  60. package/dist/chunk-JAD36SSE.cjs +2 -0
  61. package/dist/chunk-KHECBLQX.cjs +2 -0
  62. package/dist/chunk-RSLRCVQR.cjs +2 -0
  63. package/dist/chunk-VHL6HDDM.cjs +2 -0
  64. package/dist/chunk-VN3NDALJ.js +2 -0
  65. package/dist/chunk-WKTILGA2.js +2 -0
  66. package/dist/chunk-XMOYELJE.js +2 -0
  67. package/dist/chunk-YED54A5N.js +2 -0
  68. package/dist/index.cjs +1 -1
  69. package/dist/index.js +1 -1
  70. package/docs/AUTODISPLAY.md +1 -4
  71. package/docs/AUTOTEXTAREA.md +1 -4
  72. package/docs/CONFIRMDIALOG.md +1 -1
  73. package/docs/DATEPICKER.md +1 -4
  74. package/docs/FORMROW.md +1 -4
  75. package/docs/INPUTCURRENCY.md +1 -4
  76. package/docs/LABEL.md +1 -4
  77. package/docs/LISTGROUP.md +1 -4
  78. package/docs/NAVPILLS.md +1 -4
  79. package/docs/SEARCHSELECT.md +1 -4
  80. package/docs/TABLELOADING.md +1 -4
  81. package/package.json +6 -111
  82. package/dist/chunk-2NI6RRW6.js +0 -2
  83. package/dist/chunk-2Q4NZKMX.cjs +0 -2
  84. package/dist/chunk-2UX7JYM3.js +0 -2
  85. package/dist/chunk-3NEKISL5.js +0 -2
  86. package/dist/chunk-5IOLZUVD.cjs +0 -2
  87. package/dist/chunk-6MGNNSRS.js +0 -2
  88. package/dist/chunk-7LXLWNUR.js +0 -2
  89. package/dist/chunk-7N56SRTN.js +0 -2
  90. package/dist/chunk-AQJZQLFZ.cjs +0 -2
  91. package/dist/chunk-AWU5XGMI.cjs +0 -2
  92. package/dist/chunk-DMKBSV5Q.cjs +0 -2
  93. package/dist/chunk-H2ULQLGP.cjs +0 -2
  94. package/dist/chunk-HGRCY2U6.cjs +0 -2
  95. package/dist/chunk-HYB5IGJK.js +0 -2
  96. package/dist/chunk-IMNWS57Y.cjs +0 -2
  97. package/dist/chunk-KKWFIJKN.js +0 -2
  98. package/dist/chunk-RPHCR4FK.js +0 -2
  99. package/dist/chunk-XL4EQW5D.js +0 -2
  100. package/dist/chunk-XVAXFFB3.cjs +0 -2
  101. package/dist/chunk-ZCAQ7S2A.js +0 -2
@@ -1,2 +0,0 @@
1
- import {a}from'./chunk-RR7TBRGI.js';import*as i from'react';import {createPortal}from'react-dom';import {jsxs,Fragment,jsx}from'react/jsx-runtime';var Fe=["Su","Mo","Tu","We","Th","Fr","Sa"],$e=["January","February","March","April","May","June","July","August","September","October","November","December"],We=Array.from({length:60},(a,t)=>t),D=12,B=(a,t)=>new Date(a,t+1,0).getDate(),ce=(a,t)=>a!==null&&t!==null&&a.getFullYear()===t.getFullYear()&&a.getMonth()===t.getMonth()&&a.getDate()===t.getDate(),V=a=>{let[t]=new Date().toLocaleString("en-US",{timeZone:a,hour12:false}).split(", "),[l,u,p]=t.split("/").map(Number);return new Date(p,l-1,u)},_e=(a,t,l)=>!(t&&a<new Date(t.getFullYear(),t.getMonth(),t.getDate())||l&&a>new Date(l.getFullYear(),l.getMonth(),l.getDate())),Ue=(a,t)=>{let l=new Date(a,t,1).getDay(),u=B(a,t),p=[],f=B(a,t-1);for(let d=l-1;d>=0;d--){let y=f-d;p.push({day:y,date:new Date(a,t-1,y),isOutside:true});}for(let d=1;d<=u;d++)p.push({day:d,date:new Date(a,t,d),isOutside:false});let v=42-p.length;for(let d=1;d<=v;d++)p.push({day:d,date:new Date(a,t+1,d),isOutside:true});return p},q=(a,t,l)=>{if(!a||isNaN(a.getTime()))return "";let u=a.getFullYear(),p=String(a.getMonth()+1).padStart(2,"0"),f=String(a.getDate()).padStart(2,"0"),v=a.getHours(),d=String(a.getMinutes()).padStart(2,"0"),y=v>=12?"PM":"AM";v=v%12||12;let k=String(v).padStart(2,"0");if(l)return l.replace("yyyy",String(u)).replace("MM",p).replace("dd",f).replace("hh",k).replace("mm",d).replace("aa",y);switch(t){case "time":return `${k}:${d} ${y}`;case "datetime":return `${u}-${p}-${f} ${k}:${d} ${y}`;default:return `${u}-${p}-${f}`}},O=(a,t,l="date")=>({target:{value:a,name:t,type:l},preventDefault:()=>{},stopPropagation:()=>{},nativeEvent:null}),Ve={date:300,time:300,datetime:400,year:250},qe={date:280,time:220,datetime:440,year:280},ue={position:"fixed",top:0,left:0,width:"max-content",visibility:"hidden",zIndex:1070},Be=typeof window<"u"?i.useLayoutEffect:i.useEffect,Ke=a=>{if(!a)return document.documentElement;let t=a.parentElement;for(;t;){let l=window.getComputedStyle(t),u=l.overflowY||l.overflow;if(u==="auto"||u==="scroll")return t;t=t.parentElement;}return document.documentElement},Ge=(a,t,l)=>{if(!a)return {};let u=a.getBoundingClientRect(),p=t||300,f=window.innerHeight-u.bottom,v=u.top,d=f<p&&v>f,y=window.innerWidth<576?220:260,k=l||y;return {position:"fixed",top:d?Math.max(4,u.top-p-4):u.bottom+4,left:Math.max(4,Math.min(u.left,window.innerWidth-k-4)),minWidth:y,width:"max-content",maxWidth:window.innerWidth-8,zIndex:1070}},me=i.forwardRef(({className:a$1,mode:t="date",calendar:l=false,selected:u,value:p,onChange:f,dateFormat:v,placeholderText:d,size:y,isClearable:k=false,disabled:K=false,minDate:pe,maxDate:fe,timezone:F="Africa/Kampala",id:ge,name:N,...be},$)=>{let Q=e=>{if(!e)return null;if(e instanceof Date)return isNaN(e.getTime())?null:e;if(typeof e=="string"||typeof e=="number"){let n=new Date(e);if(!isNaN(n.getTime()))return n;if(typeof e=="string"){let m=e.match(/^(\d{1,2}):(\d{2})\s*(AM|PM)$/i);if(m){let r=parseInt(m[1],10),g=parseInt(m[2],10),U=m[3].toUpperCase();r===12&&U==="AM"&&(r=0),r!==12&&U==="PM"&&(r+=12);let ne=new Date;return new Date(ne.getFullYear(),ne.getMonth(),ne.getDate(),r,g,0,0)}let c=e.match(/^(\d{4})-(\d{2})-(\d{2})\s+(\d{1,2}):(\d{2})\s*(AM|PM)$/i);if(c){let r=parseInt(c[4],10),g=parseInt(c[5],10),U=c[6].toUpperCase();return r===12&&U==="AM"&&(r=0),r!==12&&U==="PM"&&(r+=12),new Date(parseInt(c[1]),parseInt(c[2])-1,parseInt(c[3]),r,g,0,0)}}return null}return null},o=i.useMemo(()=>Q(u??p),[u instanceof Date?u.getTime():u,p instanceof Date?p.getTime():p]),ae=l||t==="date"||t==="datetime",S=!l&&(t==="time"||t==="datetime"),[E,I]=i.useState(false),[P,G]=i.useState(()=>o?o.getFullYear():V(F).getFullYear()),[h,X]=i.useState(()=>o?o.getMonth():V(F).getMonth()),[w,R]=i.useState(o),[x,re]=i.useState(()=>o&&o.getHours()%12||12),[C,se]=i.useState(()=>o?o.getMinutes():0),[T,ie]=i.useState(()=>o&&o.getHours()>=12?"PM":"AM"),[W,H]=i.useState(false),[ee,z]=i.useState(()=>Math.floor((o?o.getFullYear():V(F).getFullYear())/D)*D),[ve,oe]=i.useState(ue),L=i.useRef(null),Y=i.useRef(null),J=i.useRef(null);i.useEffect(()=>{let e=document.createElement("div");return e.className="datepicker-portal-root",document.body.appendChild(e),J.current=e,()=>{e.parentNode&&document.body.removeChild(e),J.current=null;}},[]),i.useEffect(()=>{o&&!isNaN(o.getTime())?(R(o),G(o.getFullYear()),X(o.getMonth()),re(o.getHours()%12||12),se(o.getMinutes()),ie(o.getHours()>=12?"PM":"AM"),z(Math.floor(o.getFullYear()/D)*D)):R(null);},[o]),Be(()=>{if(!E){oe(ue);return}let e=()=>Y.current?Y.current.getBoundingClientRect().height:Ve[W?"year":t]||300,n=()=>Y.current?Y.current.getBoundingClientRect().width:qe[W?"year":t]||280,m=Ke(L.current),c=()=>{oe(Ge(L.current,e(),n()));};c();let r=0,g=()=>{cancelAnimationFrame(r),r=requestAnimationFrame(c);};return m.addEventListener("scroll",g,{passive:true}),window.addEventListener("resize",g),()=>{cancelAnimationFrame(r),m.removeEventListener("scroll",g),window.removeEventListener("resize",g);}},[E,t,W]),i.useEffect(()=>{if(!E)return;let e=n=>{Y.current&&!Y.current.contains(n.target)&&L.current&&!L.current.contains(n.target)&&(I(false),H(false));};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[E]);let A=(e,n,m,c)=>{let r=new Date(e),g=n%12;return c==="PM"&&(g+=12),g===12&&c==="AM"&&(g=0),r.setHours(g,m,0,0),r},_=e=>{if(!e||isNaN(e.getTime()))return;let n=q(e,t,v);f?.(O(n,N||"",t));},ye=e=>{if(!e){f?.(O(null,N||"",t)),I(false),H(false);return}_(e),t==="date"&&(I(false),H(false));},De=e=>{if(R(e),t==="date"||l)ye(e);else if(t==="datetime"){let n=A(e,x,C,T);_(n);}},he=Ue(P,h),we=()=>{let e=P,n=h;h===0?(e=P-1,n=11):n=h-1,G(e),X(n);let m=w||new Date,c=B(e,n),r=new Date(e,n,Math.min(m.getDate(),c));R(r),_(S?A(r,x,C,T):r);},Me=()=>{let e=P,n=h;h===11?(e=P+1,n=0):n=h+1,G(e),X(n);let m=w||new Date,c=B(e,n),r=new Date(e,n,Math.min(m.getDate(),c));R(r),_(S?A(r,x,C,T):r);},ke=V(F),j=Q(pe),Z=Q(fe),Ne=j?new Date(j.getFullYear(),j.getMonth(),j.getDate()):null,Se=Z?new Date(Z.getFullYear(),Z.getMonth(),Z.getDate()):null,Ee=e=>{if(re(e),S){let n=A(w||new Date,e,C,T);f?.(O(q(n,t,v),N||"",t));}},Pe=e=>{if(se(e),S){let n=A(w||new Date,x,e,T);f?.(O(q(n,t,v),N||"",t));}},Re=e=>{if(ie(e),S){let n=A(w||new Date,x,C,e);f?.(O(q(n,t,v),N||"",t));}},xe=()=>{z(Math.floor(P/D)*D),H(true);},Ce=e=>{G(e),H(false);let n=w||new Date,m=B(e,h),c=new Date(e,h,Math.min(n.getDate(),m));R(c),_(S?A(c,x,C,T):c);},te=Math.floor(ee/D)*D,Te=Array.from({length:D},(e,n)=>te+n),Ye=e=>{e.stopPropagation(),R(null),f?.(O(null,N||""));},Ae=e=>{e.key==="Escape"&&(I(false),H(false),L.current?.blur()),(e.key==="ArrowDown"||e.key==="Enter"||e.key===" ")&&(e.preventDefault(),I(true));},Ie=i.useCallback(e=>{L.current=e,typeof $=="function"?$(e):$&&($.current=e);},[$]),He=d??(t==="time"?"Select time":t==="datetime"?"Select date & time":"Select date"),le=jsxs(Fragment,{children:[W&&ae&&jsxs("div",{className:"datepicker-year-picker p-3",children:[jsxs("div",{className:"d-flex align-items-center justify-content-between mb-2",children:[jsx("button",{type:"button",className:"btn btn-sm btn-outline-secondary border-0 px-1",onClick:()=>z(ee-D),"aria-label":"Previous years",children:"\u2039"}),jsxs("span",{className:"fw-semibold small",children:[te," \u2013 ",te+D-1]}),jsx("button",{type:"button",className:"btn btn-sm btn-outline-secondary border-0 px-1",onClick:()=>z(ee+D),"aria-label":"Next years",children:"\u203A"})]}),jsx("div",{className:"datepicker-year-grid",children:Te.map(e=>{let n=e===V(F).getFullYear(),m=w&&e===w.getFullYear();return jsx("button",{type:"button",className:a("datepicker-year-cell btn btn-sm",m&&"btn-primary",!m&&n&&"btn-outline-primary",!m&&!n&&"btn-light border"),onClick:()=>Ce(e),children:e},e)})})]}),!W&&jsx(Fragment,{children:jsxs("div",{className:a("d-flex",t==="datetime"?"flex-row":"flex-column"),children:[ae&&jsxs("div",{className:"datepicker-calendar p-2",children:[jsxs("div",{className:"d-flex align-items-center justify-content-between mb-2",children:[jsx("button",{type:"button",className:"btn btn-sm btn-outline-secondary border-0 px-1",onClick:we,"aria-label":"Previous month",children:"\u2039"}),jsxs("div",{className:"d-flex align-items-center gap-1",children:[jsx("span",{className:"fw-semibold small",children:$e[h]}),jsx("button",{type:"button",className:"btn btn-sm btn-link text-decoration-none text-primary fw-semibold small p-0",onClick:xe,"aria-label":"Choose year",children:P})]}),jsx("button",{type:"button",className:"btn btn-sm btn-outline-secondary border-0 px-1",onClick:Me,"aria-label":"Next month",children:"\u203A"})]}),jsx("div",{className:"datepicker-days-header",children:Fe.map(e=>jsx("div",{className:"datepicker-day-label",children:e},e))}),jsx("div",{className:"datepicker-days-grid",children:he.map((e,n)=>{let m=ce(e.date,ke),c=w&&ce(e.date,w),r=_e(e.date,Ne,Se),g=e.isOutside||!r;return jsx("button",{type:"button",disabled:g,className:a("datepicker-day",m&&"datepicker-day--today",c&&"datepicker-day--selected",e.isOutside&&"datepicker-day--outside",!r&&"datepicker-day--disabled"),onClick:()=>De(e.date),tabIndex:e.isOutside?-1:0,children:e.day},n)})})]}),t==="datetime"&&jsx("div",{className:"vr mx-1 my-2"}),S&&jsxs("div",{className:"datepicker-time p-2 d-flex flex-column",style:{minWidth:180},children:[t==="datetime"&&jsx("div",{className:"small fw-semibold text-muted text-center mb-1",children:"Time"}),jsxs("div",{className:"d-flex justify-content-center gap-2",children:[jsxs("div",{className:"datepicker-time-col",children:[jsx("div",{className:"datepicker-time-col-label",children:"Hour"}),jsx("div",{className:"datepicker-time-col-scroll",children:Array.from({length:12},(e,n)=>n+1).map(e=>jsx("button",{type:"button",className:a("datepicker-time-item",e===x&&"active"),onClick:()=>Ee(e),children:String(e).padStart(2,"0")},e))})]}),jsx("span",{className:"datepicker-time-separator",children:":"}),jsxs("div",{className:"datepicker-time-col",children:[jsx("div",{className:"datepicker-time-col-label",children:"Min"}),jsx("div",{className:"datepicker-time-col-scroll",children:We.map(e=>jsx("button",{type:"button",className:a("datepicker-time-item",e===C&&"active"),onClick:()=>Pe(e),children:String(e).padStart(2,"0")},e))})]}),jsxs("div",{className:"datepicker-time-col",children:[jsx("div",{className:"datepicker-time-col-label",children:"\xA0"}),jsx("div",{className:"d-flex flex-column gap-1 mt-1",children:["AM","PM"].map(e=>jsx("button",{type:"button",className:a("datepicker-time-item","datepicker-time-item--ampm",T===e&&"active"),onClick:()=>Re(e),children:e},e))})]})]})]})]})})]}),Le=jsx("div",{ref:Y,className:a("datepicker-popover card border shadow-sm",t==="datetime"&&"datepicker-popover--wide"),style:ve,children:le});return l?jsx("div",{className:a("datepicker-calendar-inline card border shadow-sm",a$1),children:le}):jsxs("div",{className:"datepicker-wrapper position-relative d-inline-block w-100",style:{minWidth:0},children:[jsxs("div",{className:"position-relative",children:[jsx("input",{ref:Ie,id:ge,name:N,type:"text",readOnly:true,disabled:K,className:a("form-control",y==="sm"&&"form-control-sm",y==="lg"&&"form-control-lg","pe-5",a$1),placeholder:He,value:q(o,t,v),onClick:()=>!K&&I(!E),onKeyDown:Ae,"aria-haspopup":"dialog","aria-expanded":E,autoComplete:"off",...be}),k&&o&&!K&&jsx("button",{type:"button",className:"btn btn-sm btn-link position-absolute top-50 end-0 translate-middle-y pe-2 text-secondary",style:{zIndex:2},onClick:Ye,tabIndex:-1,"aria-label":"Clear",children:"\xD7"})]}),E&&!K&&J.current&&createPortal(Le,J.current)]})});me.displayName="DatePicker";var je=me;export{me as a,je as b};//# sourceMappingURL=chunk-RPHCR4FK.js.map
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21wb25lbnRzL0RhdGVQaWNrZXIudHN4Il0sIm5hbWVzIjpbIkRBWVNfT0ZfV0VFSyIsIk1PTlRIUyIsIk1JTlVURVMiLCJfIiwiaSIsIllFQVJTX1BFUl9QQUdFIiwiZGF5c0luTW9udGgiLCJ5ZWFyIiwibW9udGgiLCJpc1NhbWVEYXkiLCJiIiwiZ2V0VHpUb2RheSIsInR6IiwiZGF0ZVN0ciIsImRheSIsImlzRGF0ZUluUmFuZ2UiLCJkYXRlIiwibWluIiwibWF4IiwiYnVpbGRDYWxlbmRhckdyaWQiLCJmaXJzdERheSIsInRvdGFsRGF5cyIsImNlbGxzIiwicHJldk1vbnRoRGF5cyIsInJlbWFpbmluZyIsImZvcm1hdFZhbHVlIiwibW9kZSIsImZtdCIsInkiLCJNIiwiZCIsImgiLCJtIiwiYSIsImhoIiwibWFrZUV2ZW50IiwidmFsdWUiLCJpbnB1dE5hbWUiLCJ0eXBlIiwiUE9QT1ZFUl9HVUVTUyIsIlBPUE9WRVJfV0lEVEhfR1VFU1MiLCJQUkVfUE9TSVRJT05fU1RZTEUiLCJ1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0IiwiZ2V0U2Nyb2xsUGFyZW50IiwiZWwiLCJwYXJlbnQiLCJzdHlsZSIsIm92ZXJmbG93WSIsImNhbGNQb3BvdmVyU3R5bGUiLCJpbnB1dEVsIiwicG9wb3ZlckhlaWdodCIsInBvcG92ZXJXaWR0aCIsInJlY3QiLCJzcGFjZUJlbG93Iiwic3BhY2VBYm92ZSIsInBsYWNlQWJvdmUiLCJtaW5XIiwidyIsIkRhdGVQaWNrZXIiLCJjbGFzc05hbWUiLCJjYWxlbmRhciIsInNlbGVjdGVkIiwib25DaGFuZ2UiLCJkYXRlRm9ybWF0IiwicGxhY2Vob2xkZXJUZXh0Iiwic2l6ZSIsImlzQ2xlYXJhYmxlIiwiZGlzYWJsZWQiLCJtaW5EYXRlIiwibWF4RGF0ZSIsInRpbWV6b25lIiwiaWQiLCJuYW1lIiwicHJvcHMiLCJyZWYiLCJyZXNvbHZlVmFsdWUiLCJ2IiwidGltZU1hdGNoIiwiYXAiLCJub3ciLCJkdE1hdGNoIiwicmVzb2x2ZWRWYWx1ZSIsInNob3dDYWxlbmRhciIsInNob3dUaW1lIiwiaXNPcGVuIiwic2V0SXNPcGVuIiwidmlld1llYXIiLCJzZXRWaWV3WWVhciIsInZpZXdNb250aCIsInNldFZpZXdNb250aCIsInRlbXBEYXRlIiwic2V0VGVtcERhdGUiLCJ0ZW1wSG91cnMiLCJzZXRUZW1wSG91cnMiLCJ0ZW1wTWlucyIsInNldFRlbXBNaW5zIiwidGVtcEFtUG0iLCJzZXRUZW1wQW1QbSIsInNob3dZZWFyUGlja2VyIiwic2V0U2hvd1llYXJQaWNrZXIiLCJ5ZWFyUGFnZSIsInNldFllYXJQYWdlIiwicG9wb3ZlclN0eWxlIiwic2V0UG9wb3ZlclN0eWxlIiwiaW5wdXRSZWYiLCJwb3BvdmVyUmVmIiwicG9ydGFsUmVmIiwiZ2V0SGVpZ2h0IiwiZ2V0V2lkdGgiLCJzY3JvbGxQYXJlbnQiLCJ1cGRhdGUiLCJyYWYiLCJzY2hlZHVsZVVwZGF0ZSIsImhhbmRsZXIiLCJlIiwiYnVpbGREYXRlIiwiYmFzZSIsImgxMiIsIm1pbnMiLCJhbXBtIiwiZmlyZUNoYW5nZSIsImZvcm1hdHRlZCIsImNvbW1pdCIsImNvbW1pdERhdGVPbmx5IiwiZ3JpZCIsImhhbmRsZVByZXZNb250aCIsIm5ld1kiLCJuZXdNIiwibWF4RCIsIm5ld0RhdGUiLCJoYW5kbGVOZXh0TW9udGgiLCJ0b2RheSIsInJlc29sdmVkTWluIiwicmVzb2x2ZWRNYXgiLCJtaW5EdCIsIm1heER0IiwiaGFuZGxlSG91ckNoYW5nZSIsImhhbmRsZU1pbkNoYW5nZSIsImhhbmRsZUFtUG1DaGFuZ2UiLCJvcGVuWWVhclBpY2tlciIsImhhbmRsZVllYXJTZWxlY3QiLCJ5ZWFyUGFnZVN0YXJ0IiwieWVhcnMiLCJoYW5kbGVDbGVhciIsImhhbmRsZUlucHV0S2V5RG93biIsIm1lcmdlSW5wdXRSZWYiLCJub2RlIiwicGxhY2Vob2xkZXIiLCJwaWNrZXJCb2R5IiwianN4cyIsIkZyYWdtZW50IiwianN4IiwiaXNDdXJyZW50WWVhciIsImlzU2VsZWN0ZWQiLCJjbiIsImNlbGwiLCJpc1RvZGF5IiwiaW5SYW5nZSIsImlzRGlzYWJsZWREYXkiLCJwb3BvdmVyIiwiY3JlYXRlUG9ydGFsIiwiRGF0ZVBpY2tlcl9kZWZhdWx0Il0sIm1hcHBpbmdzIjoidUpBMERNQSxFQUFBQSxDQUFlLENBQUMsSUFBQSxDQUFNLElBQUEsQ0FBTSxJQUFBLENBQU0sSUFBQSxDQUFNLElBQUEsQ0FBTSxJQUFBLENBQU0sSUFBSSxDQUFBLENBQ3hEQyxFQUFBQSxDQUFTLENBQ2IsU0FBQSxDQUFXLFdBQVksT0FBQSxDQUFTLE9BQUEsQ0FBUyxLQUFBLENBQU8sTUFBQSxDQUNoRCxPQUFRLFFBQUEsQ0FBVSxXQUFBLENBQWEsU0FBQSxDQUFXLFVBQUEsQ0FBWSxVQUN4RCxDQUFBLENBQ01DLEVBQUFBLENBQVUsS0FBQSxDQUFNLEtBQUssQ0FBRSxNQUFBLENBQVEsRUFBRyxDQUFBLENBQUcsQ0FBQ0MsQ0FBQUEsQ0FBR0MsQ0FBQUEsR0FBTUEsQ0FBQyxDQUFBLENBQ2hEQyxFQUFpQixFQUFBLENBTWpCQyxDQUFBQSxDQUFjLENBQUNDLENBQUFBLENBQWNDLElBQ2pDLElBQUksSUFBQSxDQUFLRCxDQUFBQSxDQUFNQyxDQUFBQSxDQUFRLEVBQUcsQ0FBQyxDQUFBLENBQUUsT0FBQSxFQUFRLENBRWpDQyxHQUFZLENBQUMsQ0FBQSxDQUFnQkMsQ0FBQUEsR0FDakMsQ0FBQSxHQUFNLE1BQVFBLENBQUFBLEdBQU0sSUFBQSxFQUNwQixDQUFBLENBQUUsV0FBQSxFQUFZLEdBQU1BLENBQUFBLENBQUUsV0FBQSxFQUFZLEVBQ2xDLEVBQUUsUUFBQSxFQUFTLEdBQU1BLENBQUFBLENBQUUsUUFBQSxJQUNuQixDQUFBLENBQUUsT0FBQSxFQUFRLEdBQU1BLENBQUFBLENBQUUsU0FBUSxDQU90QkMsQ0FBQUEsQ0FBY0MsQ0FBQUEsRUFBcUIsQ0FDdkMsR0FBTSxDQUFDQyxDQUFPLENBQUEsQ0FBSSxJQUFJLElBQUEsRUFBSyxDQUFFLGNBQUEsQ0FBZSxPQUFBLENBQVMsQ0FBRSxRQUFB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Q2hDb0YsR0FBQUEsQ0FBQyxRQUFBLENBQUEsQ0FDQyxJQUFBLENBQUssUUFBQSxDQUNMLFNBQUEsQ0FBVSwyRkFBQSxDQUNWLE1BQU8sQ0FBRSxNQUFBLENBQVEsQ0FBRSxDQUFBLENBQ25CLFFBQVNSLEVBQUFBLENBQ1QsUUFBQSxDQUFVLEVBQUEsQ0FDVixZQUFBLENBQVcsUUFDWixRQUFBLENBQUEsTUFBQSxDQUVELENBQUEsQ0FBQSxDQUVKLENBQUEsQ0FHQzNELENBQUFBLEVBQVUsQ0FBQ2pCLENBQUFBLEVBQVl1QyxDQUFBQSxDQUFVLE9BQUEsRUFBV3NELFlBQUFBLENBQWFELEdBQVNyRCxDQUFBQSxDQUFVLE9BQU8sQ0FBQSxDQUFBLENBQ3RGLENBRUosQ0FBQyxFQUVEaEQsRUFBQUEsQ0FBVyxXQUFBLENBQWMsWUFBQSxLQUdsQnVHLEVBQUFBLENBQVF2RyIsImZpbGUiOiJjaHVuay1SUEhDUjRGSy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHsgY24gfSBmcm9tICcuLi9saWIvY24uanMnXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogIFR5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZVBpY2tlckNoYW5nZUV2ZW50IHtcbiAgdGFyZ2V0OiB7XG4gICAgdmFsdWU6IHN0cmluZyB8IG51bGxcbiAgICBuYW1lOiBzdHJpbmdcbiAgICB0eXBlOiBzdHJpbmdcbiAgfVxuICBwcmV2ZW50RGVmYXVsdDogKCkgPT4gdm9pZFxuICBzdG9wUHJvcGFnYXRpb246ICgpID0+IHZvaWRcbiAgbmF0aXZlRXZlbnQ6IG51bGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRlUGlja2VyUHJvcHMge1xuICAvKiogUGlja2VyIG1vZGUgKGRlZmF1bHQgJ2RhdGUnKSAqL1xuICBtb2RlPzogJ2RhdGUnIHwgJ3RpbWUnIHwgJ2RhdGV0aW1lJ1xuICAvKiogV2hlbiB0cnVlLCByZW5kZXJzIHRoZSBjYWxlbmRhciBpbmxpbmUgd2l0aG91dCBhbiBpbnB1dCBmaWVsZCBvciB0aW1lIHBpY2tlciAqL1xuICBjYWxlbmRhcj86IGJvb2xlYW5cbiAgLyoqIEN1cnJlbnRseSBzZWxlY3RlZCBEYXRlIChhbGlhcyBmb3IgdmFsdWUpICovXG4gIHNlbGVjdGVkPzogRGF0ZSB8IG51bGxcbiAgLyoqIEN1cnJlbnRseSBzZWxlY3RlZCBEYXRlLCBJU08gc3RyaW5nLCBcImhoOm1tIEFBXCIgdGltZSBzdHJpbmcsIFwiWVlZWS1NTS1ERCBoaDptbSBBQVwiIGRhdGV0aW1lIHN0cmluZywgb3IgdGltZXN0YW1wICovXG4gIHZhbHVlPzogRGF0ZSB8IHN0cmluZyB8IG51bWJlciB8IG51bGxcbiAgLyoqIFN5bnRoZXRpYyBldmVudCBoYW5kbGVyIOKAlCBlLnRhcmdldC52YWx1ZSBpcyBhIHByZS1mb3JtYXR0ZWQgc3RyaW5nICovXG4gIG9uQ2hhbmdlPzogKGU6IERhdGVQaWNrZXJDaGFuZ2VFdmVudCkgPT4gdm9pZFxuICAvKiogRGlzcGxheSBmb3JtYXQgd2l0aCB0b2tlbnM6IHl5eXksIE1NLCBkZCwgaGgsIG1tLCBhYSAqL1xuICBkYXRlRm9ybWF0Pzogc3RyaW5nXG4gIC8qKiBQbGFjZWhvbGRlciB0ZXh0IHdoZW4gZW1wdHkgKi9cbiAgcGxhY2Vob2xkZXJUZXh0Pzogc3RyaW5nXG4gIC8qKiBCb290c3RyYXAgc2l6ZSB2YXJpYW50ICovXG4gIHNpemU/OiAnc20nIHwgJ2xnJ1xuICAvKiogU2hvdyBhIGNsZWFyIGJ1dHRvbiBvbiB0aGUgaW5wdXQgKi9cbiAgaXNDbGVhcmFibGU/OiBib29sZWFuXG4gIC8qKiBEaXNhYmxlIHRoZSBpbnB1dCAqL1xuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgLyoqIEVhcmxpZXN0IHNlbGVjdGFibGUgZGF0ZSDigJQgRGF0ZSwgSVNPL1wiWVlZWS1NTS1ERFwiIHN0cmluZywgb3IgdGltZXN0YW1wIChlLmcuIGFub3RoZXIgRGF0ZVBpY2tlcidzIG9uQ2hhbmdlIHZhbHVlKSAqL1xuICBtaW5EYXRlPzogRGF0ZSB8IHN0cmluZyB8IG51bWJlciB8IG51bGxcbiAgLyoqIExhdGVzdCBzZWxlY3RhYmxlIGRhdGUg4oCUIERhdGUsIElTTy9cIllZWVktTU0tRERcIiBzdHJpbmcsIG9yIHRpbWVzdGFtcCAoZS5nLiBhbm90aGVyIERhdGVQaWNrZXIncyBvbkNoYW5nZSB2YWx1ZSkgKi9cbiAgbWF4RGF0ZT86IERhdGUgfCBzdHJpbmcgfCBudW1iZXIgfCBudWxsXG4gIC8qKiBUaW1lem9uZSBpZGVudGlmaWVyIChkZWZhdWx0ICdBZnJpY2EvS2FtcGFsYScpICovXG4gIHRpbWV6b25lPzogc3RyaW5nXG4gIC8qKiBBZGRpdGlvbmFsIENTUyBjbGFzc2VzIG9uIHRoZSBpbnB1dCAqL1xuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgLyoqIElucHV0IGVsZW1lbnQgSUQgKi9cbiAgaWQ/OiBzdHJpbmdcbiAgLyoqIElucHV0IG5hbWUgYXR0cmlidXRlIOKAlCBzdXJmYWNlcyBhcyBlLnRhcmdldC5uYW1lIGluIG9uQ2hhbmdlICovXG4gIG5hbWU/OiBzdHJpbmdcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgQ29uc3RhbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5jb25zdCBEQVlTX09GX1dFRUsgPSBbJ1N1JywgJ01vJywgJ1R1JywgJ1dlJywgJ1RoJywgJ0ZyJywgJ1NhJ11cbmNvbnN0IE1PTlRIUyA9IFtcbiAgJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLFxuICAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInLFxuXVxuY29uc3QgTUlOVVRFUyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDYwIH0sIChfLCBpKSA9PiBpKVxuY29uc3QgWUVBUlNfUEVSX1BBR0UgPSAxMlxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICBIZWxwZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbmNvbnN0IGRheXNJbk1vbnRoID0gKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlcik6IG51bWJlciA9PlxuICBuZXcgRGF0ZSh5ZWFyLCBtb250aCArIDEsIDApLmdldERhdGUoKVxuXG5jb25zdCBpc1NhbWVEYXkgPSAoYTogRGF0ZSB8IG51bGwsIGI6IERhdGUgfCBudWxsKTogYm9vbGVhbiA9PlxuICBhICE9PSBudWxsICYmIGIgIT09IG51bGwgJiZcbiAgYS5nZXRGdWxsWWVhcigpID09PSBiLmdldEZ1bGxZZWFyKCkgJiZcbiAgYS5nZXRNb250aCgpID09PSBiLmdldE1vbnRoKCkgJiZcbiAgYS5nZXREYXRlKCkgPT09IGIuZ2V0RGF0ZSgpXG5cbi8qKlxuICogUmV0dXJucyBhIERhdGUgb2JqZWN0IChtaWRuaWdodCwgbG9jYWwgdGltZSkgcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50IGRhdGVcbiAqIGluIHRoZSBzcGVjaWZpZWQgdGltZXpvbmUuIFRoaXMgZW5zdXJlcyB0aGUgY2FsZW5kYXIncyBcInRvZGF5XCIgaGlnaGxpZ2h0XG4gKiBhbmQgaW5pdGlhbCB2aWV3IHJlZmxlY3QgdGhlIHRhcmdldCB0aW1lem9uZSByYXRoZXIgdGhhbiB0aGUgYnJvd3NlcidzLlxuICovXG5jb25zdCBnZXRUelRvZGF5ID0gKHR6OiBzdHJpbmcpOiBEYXRlID0+IHtcbiAgY29uc3QgW2RhdGVTdHJdID0gbmV3IERhdGUoKS50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7IHRpbWVab25lOiB0eiwgaG91cjEyOiBmYWxzZSB9KS5zcGxpdCgnLCAnKVxuICBjb25zdCBbbW9udGgsIGRheSwgeWVhcl0gPSBkYXRlU3RyLnNwbGl0KCcvJykubWFwKE51bWJlcilcbiAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5KVxufVxuXG5jb25zdCBpc0RhdGVJblJhbmdlID0gKGRhdGU6IERhdGUsIG1pbjogRGF0ZSB8IG51bGwsIG1heDogRGF0ZSB8IG51bGwpOiBib29sZWFuID0+IHtcbiAgaWYgKG1pbiAmJiBkYXRlIDwgbmV3IERhdGUobWluLmdldEZ1bGxZZWFyKCksIG1pbi5nZXRNb250aCgpLCBtaW4uZ2V0RGF0ZSgpKSkgcmV0dXJuIGZhbHNlXG4gIGlmIChtYXggJiYgZGF0ZSA+IG5ldyBEYXRlKG1heC5nZXRGdWxsWWVhcigpLCBtYXguZ2V0TW9udGgoKSwgbWF4LmdldERhdGUoKSkpIHJldHVybiBmYWxzZVxuICByZXR1cm4gdHJ1ZVxufVxuXG5pbnRlcmZhY2UgQ2FsZW5kYXJDZWxsIHtcbiAgZGF5OiBudW1iZXJcbiAgZGF0ZTogRGF0ZVxuICBpc091dHNpZGU6IGJvb2xlYW5cbn1cblxuY29uc3QgYnVpbGRDYWxlbmRhckdyaWQgPSAoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyKTogQ2FsZW5kYXJDZWxsW10gPT4ge1xuICBjb25zdCBmaXJzdERheSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxKS5nZXREYXkoKVxuICBjb25zdCB0b3RhbERheXMgPSBkYXlzSW5Nb250aCh5ZWFyLCBtb250aClcbiAgY29uc3QgY2VsbHM6IENhbGVuZGFyQ2VsbFtdID0gW11cblxuICBjb25zdCBwcmV2TW9udGhEYXlzID0gZGF5c0luTW9udGgoeWVhciwgbW9udGggLSAxKVxuICBmb3IgKGxldCBpID0gZmlyc3REYXkgLSAxOyBpID49IDA7IGktLSkge1xuICAgIGNvbnN0IGRheSA9IHByZXZNb250aERheXMgLSBpXG4gICAgY2VsbHMucHVzaCh7IGRheSwgZGF0ZTogbmV3IERhdGUoeWVhciwgbW9udGggLSAxLCBkYXkpLCBpc091dHNpZGU6IHRydWUgfSlcbiAgfVxuXG4gIGZvciAobGV0IGQgPSAxOyBkIDw9IHRvdGFsRGF5czsgZCsrKSB7XG4gICAgY2VsbHMucHVzaCh7IGRheTogZCwgZGF0ZTogbmV3IERhdGUoeWVhciwgbW9udGgsIGQpLCBpc091dHNpZGU6IGZhbHNlIH0pXG4gIH1cblxuICBjb25zdCByZW1haW5pbmcgPSA0MiAtIGNlbGxzLmxlbmd0aFxuICBmb3IgKGxldCBkID0gMTsgZCA8PSByZW1haW5pbmc7IGQrKykge1xuICAgIGNlbGxzLnB1c2goeyBkYXk6IGQsIGRhdGU6IG5ldyBEYXRlKHllYXIsIG1vbnRoICsgMSwgZCksIGlzT3V0c2lkZTogdHJ1ZSB9KVxuICB9XG5cbiAgcmV0dXJuIGNlbGxzXG59XG5cbmNvbnN0IGZvcm1hdFZhbHVlID0gKGRhdGU6IERhdGUgfCBudWxsLCBtb2RlOiBzdHJpbmcsIGZtdD86IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGlmICghZGF0ZSB8fCBpc05hTihkYXRlLmdldFRpbWUoKSkpIHJldHVybiAnJ1xuXG4gIGNvbnN0IHkgPSBkYXRlLmdldEZ1bGxZZWFyKClcbiAgY29uc3QgTSA9IFN0cmluZyhkYXRlLmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCAnMCcpXG4gIGNvbnN0IGQgPSBTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJylcbiAgbGV0IGggPSBkYXRlLmdldEhvdXJzKClcbiAgY29uc3QgbSA9IFN0cmluZyhkYXRlLmdldE1pbnV0ZXMoKSkucGFkU3RhcnQoMiwgJzAnKVxuICBjb25zdCBhID0gaCA+PSAxMiA/ICdQTScgOiAnQU0nXG4gIGggPSBoICUgMTIgfHwgMTJcbiAgY29uc3QgaGggPSBTdHJpbmcoaCkucGFkU3RhcnQoMiwgJzAnKVxuXG4gIGlmIChmbXQpIHtcbiAgICByZXR1cm4gZm10LnJlcGxhY2UoJ3l5eXknLCBTdHJpbmcoeSkpLnJlcGxhY2UoJ01NJywgTSkucmVwbGFjZSgnZGQnLCBkKS5yZXBsYWNlKCdoaCcsIGhoKS5yZXBsYWNlKCdtbScsIG0pLnJlcGxhY2UoJ2FhJywgYSlcbiAgfVxuXG4gIHN3aXRjaCAobW9kZSkge1xuICAgIGNhc2UgJ3RpbWUnOiAgICAgcmV0dXJuIGAke2hofToke219ICR7YX1gXG4gICAgY2FzZSAnZGF0ZXRpbWUnOiByZXR1cm4gYCR7eX0tJHtNfS0ke2R9ICR7aGh9OiR7bX0gJHthfWBcbiAgICBkZWZhdWx0OiAgICAgICAgIHJldHVybiBgJHt5fS0ke019LSR7ZH1gXG4gIH1cbn1cblxuLyoqXG4gKiBCdWlsZCBhIHN5bnRoZXRpYyBldmVudCBvYmplY3QgbGlrZSBhIG5hdGl2ZSBpbnB1dCdzIG9uQ2hhbmdlLlxuICovXG5jb25zdCBtYWtlRXZlbnQgPSAodmFsdWU6IHN0cmluZyB8IG51bGwsIGlucHV0TmFtZTogc3RyaW5nLCB0eXBlOiBzdHJpbmcgPSAnZGF0ZScpOiBEYXRlUGlja2VyQ2hhbmdlRXZlbnQgPT4gKHtcbiAgdGFyZ2V0OiB7XG4gICAgdmFsdWUsXG4gICAgbmFtZTogaW5wdXROYW1lLFxuICAgIHR5cGUsXG4gIH0sXG4gIHByZXZlbnREZWZhdWx0OiAoKSA9PiB7fSxcbiAgc3RvcFByb3BhZ2F0aW9uOiAoKSA9PiB7fSxcbiAgbmF0aXZlRXZlbnQ6IG51bGwsXG59KVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICBQb3BvdmVyIHBvc2l0aW9uaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKiBBcHByb3hpbWF0ZSBoZWlnaHRzIOKAlCB1c2VkIGFzIGEgZmlyc3QgZ3Vlc3MgYmVmb3JlIHRoZSByZWFsIERPTSBoZWlnaHQgaXMgbWVhc3VyZWQuICovXG5jb25zdCBQT1BPVkVSX0dVRVNTOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0geyBkYXRlOiAzMDAsIHRpbWU6IDMwMCwgZGF0ZXRpbWU6IDQwMCwgeWVhcjogMjUwIH1cblxuLyoqIEFwcHJveGltYXRlIHdpZHRocyDigJQgdXNlZCBhcyBhIGZpcnN0IGd1ZXNzIGJlZm9yZSB0aGUgcmVhbCBET00gd2lkdGggaXMgbWVhc3VyZWQuICovXG5jb25zdCBQT1BPVkVSX1dJRFRIX0dVRVNTOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0geyBkYXRlOiAyODAsIHRpbWU6IDIyMCwgZGF0ZXRpbWU6IDQ0MCwgeWVhcjogMjgwIH1cblxuLyoqXG4gKiBTdHlsZSBhcHBsaWVkIHdoaWxlIHRoZSBwb3BvdmVyIGlzIG1vdW50ZWQgYnV0IG5vdCB5ZXQgbWVhc3VyZWQuXG4gKiBgd2lkdGg6IG1heC1jb250ZW50YCBtYWtlcyB0aGUgZmlyc3QgbWVhc3VyZW1lbnQgcmVmbGVjdCB0aGUgcmVhbCBjb250ZW50XG4gKiB3aWR0aCAoYW4gZW1wdHkgc3R5bGUgbGV0cyB0aGUgY2FyZCBzdHJldGNoIHRvIHRoZSBib2R5IHdpZHRoLCB3aGljaFxuICogcG9pc29uZWQgdGhlIGZpcnN0LW9wZW4gcG9zaXRpb24pLCBhbmQgYHZpc2liaWxpdHk6IGhpZGRlbmAgcHJldmVudHMgYVxuICogbWlzcG9zaXRpb25lZCBmbGFzaCBiZWZvcmUgdGhlIG1lYXN1cmVkIHN0eWxlIGxhbmRzLlxuICovXG5jb25zdCBQUkVfUE9TSVRJT05fU1RZTEU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gIHBvc2l0aW9uOiAnZml4ZWQnLFxuICB0b3A6IDAsXG4gIGxlZnQ6IDAsXG4gIHdpZHRoOiAnbWF4LWNvbnRlbnQnLFxuICB2aXNpYmlsaXR5OiAnaGlkZGVuJyxcbiAgekluZGV4OiAxMDcwLFxufVxuXG4vKiogdXNlTGF5b3V0RWZmZWN0IHRoYXQgaXMgU1NSLXNhZmUgKGZhbGxzIGJhY2sgdG8gdXNlRWZmZWN0IG9uIHRoZSBzZXJ2ZXIpLiAqL1xuY29uc3QgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCA9XG4gIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gUmVhY3QudXNlTGF5b3V0RWZmZWN0IDogUmVhY3QudXNlRWZmZWN0XG5cbi8qKlxuICogRmluZCB0aGUgbmVhcmVzdCBzY3JvbGxhYmxlIGFuY2VzdG9yIChmb3IgY2FwdHVyaW5nIHNjcm9sbCBldmVudHMgaW5zaWRlXG4gKiBtb2RhbHMgLyBzaWRlIHBhbmVscyAvIGN1c3RvbSBjb250YWluZXJzKS5cbiAqL1xuY29uc3QgZ2V0U2Nyb2xsUGFyZW50ID0gKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpOiBIVE1MRWxlbWVudCA9PiB7XG4gIGlmICghZWwpIHJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRcbiAgbGV0IHBhcmVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWwucGFyZW50RWxlbWVudFxuICB3aGlsZSAocGFyZW50KSB7XG4gICAgY29uc3Qgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwYXJlbnQpXG4gICAgY29uc3Qgb3ZlcmZsb3dZID0gc3R5bGUub3ZlcmZsb3dZIHx8IHN0eWxlLm92ZXJmbG93XG4gICAgaWYgKG92ZXJmbG93WSA9PT0gJ2F1dG8nIHx8IG92ZXJmbG93WSA9PT0gJ3Njcm9sbCcpIHJldHVybiBwYXJlbnRcbiAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudFxuICB9XG4gIHJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRcbn1cblxuY29uc3QgY2FsY1BvcG92ZXJTdHlsZSA9IChpbnB1dEVsOiBIVE1MRWxlbWVudCB8IG51bGwsIHBvcG92ZXJIZWlnaHQ6IG51bWJlciwgcG9wb3ZlcldpZHRoOiBudW1iZXIpOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0+IHtcbiAgaWYgKCFpbnB1dEVsKSByZXR1cm4ge31cbiAgY29uc3QgcmVjdCA9IGlucHV0RWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgY29uc3QgaCA9IHBvcG92ZXJIZWlnaHQgfHwgMzAwXG5cbiAgY29uc3Qgc3BhY2VCZWxvdyA9IHdpbmRvdy5pbm5lckhlaWdodCAtIHJlY3QuYm90dG9tXG4gIGNvbnN0IHNwYWNlQWJvdmUgPSByZWN0LnRvcFxuXG4gIC8qIE9ubHkgZmxpcCBhYm92ZSB3aGVuIGJlbG93IGlzIHRydWx5IHRvbyB0aWdodCBBTkQgYWJvdmUgb2ZmZXJzIG1vcmUgcm9vbSAqL1xuICBjb25zdCBwbGFjZUFib3ZlID0gc3BhY2VCZWxvdyA8IGggJiYgc3BhY2VBYm92ZSA+IHNwYWNlQmVsb3dcblxuICAvKiBSZXNwb25zaXZlOiB1c2Ugc21hbGxlciBtaW4td2lkdGggb24gbW9iaWxlIHRvIHByZXZlbnQgb3ZlcmZsb3cuXG4gICAgIFRoZSBwb3BvdmVyIHNpemVzIHRvIGl0cyBjb250ZW50IOKAlCBpdCBtdXN0IE5PVCBzdHJldGNoIHdpdGggYSB3aWRlIGlucHV0LFxuICAgICBzbyByZWN0LndpZHRoIGlzIGludGVudGlvbmFsbHkgaWdub3JlZCBmb3Igc2l6aW5nLiAqL1xuICBjb25zdCBtaW5XID0gd2luZG93LmlubmVyV2lkdGggPCA1NzYgPyAyMjAgOiAyNjBcbiAgY29uc3QgdyA9IHBvcG92ZXJXaWR0aCB8fCBtaW5XXG5cbiAgcmV0dXJuIHtcbiAgICBwb3NpdGlvbjogJ2ZpeGVkJyxcbiAgICB0b3A6IHBsYWNlQWJvdmUgPyBNYXRoLm1heCg0LCByZWN0LnRvcCAtIGggLSA0KSA6IHJlY3QuYm90dG9tICsgNCxcbiAgICBsZWZ0OiBNYXRoLm1heCg0LCBNYXRoLm1pbihyZWN0LmxlZnQsIHdpbmRvdy5pbm5lcldpZHRoIC0gdyAtIDQpKSxcbiAgICBtaW5XaWR0aDogbWluVyxcbiAgICB3aWR0aDogJ21heC1jb250ZW50JyxcbiAgICBtYXhXaWR0aDogd2luZG93LmlubmVyV2lkdGggLSA4LFxuICAgIHpJbmRleDogMTA3MCxcbiAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICBEYXRlUGlja2VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogQ3VzdG9tIEJvb3RzdHJhcC1zdHlsZWQgZGF0ZSAvIHRpbWUgLyBkYXRldGltZSBwaWNrZXIuIFplcm8gZGVwZW5kZW5jaWVzLlxuICpcbiAqICoqSW1wb3J0YW50OioqIFRoZSBhY2NvbXBhbnlpbmcgQ1NTICoqbXVzdCoqIGJlIGltcG9ydGVkIGZvciB0aGUgcGlja2VyIHRvIHJlbmRlciBjb3JyZWN0bHk6XG4gKiBgYGBqc1xuICogaW1wb3J0ICdyZWFjdC1ib290c3RyYXAtcGx1Z2lucy9jc3MvcGx1Z2lucy5jc3MnXG4gKiBgYGBcbiAqL1xuY29uc3QgRGF0ZVBpY2tlciA9IFJlYWN0LmZvcndhcmRSZWY8SFRNTElucHV0RWxlbWVudCwgRGF0ZVBpY2tlclByb3BzPigoe1xuICBjbGFzc05hbWUsXG4gIG1vZGUgPSAnZGF0ZScsXG4gIGNhbGVuZGFyID0gZmFsc2UsXG4gIHNlbGVjdGVkLFxuICB2YWx1ZSxcbiAgb25DaGFuZ2UsXG4gIGRhdGVGb3JtYXQsXG4gIHBsYWNlaG9sZGVyVGV4dCxcbiAgc2l6ZSxcbiAgaXNDbGVhcmFibGUgPSBmYWxzZSxcbiAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgbWluRGF0ZSxcbiAgbWF4RGF0ZSxcbiAgdGltZXpvbmUgPSAnQWZyaWNhL0thbXBhbGEnLFxuICBpZCxcbiAgbmFtZSxcbiAgLi4ucHJvcHNcbn0sIHJlZikgPT4ge1xuICAvKiAtLS0tIGRlcml2ZWQgLS0tLSAqL1xuICBjb25zdCByZXNvbHZlVmFsdWUgPSAodjogRGF0ZSB8IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQpOiBEYXRlIHwgbnVsbCA9PiB7XG4gICAgaWYgKCF2KSByZXR1cm4gbnVsbFxuICAgIGlmICh2IGluc3RhbmNlb2YgRGF0ZSkgcmV0dXJuIGlzTmFOKHYuZ2V0VGltZSgpKSA/IG51bGwgOiB2XG4gICAgaWYgKHR5cGVvZiB2ID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdiA9PT0gJ251bWJlcicpIHtcbiAgICAgIC8vIFN0YW5kYXJkIERhdGUgcGFyc2luZyAod29ya3MgZm9yIElTTyA4NjAxLCBcIllZWVktTU0tRERcIiwgZXRjLilcbiAgICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSh2KVxuICAgICAgaWYgKCFpc05hTihkLmdldFRpbWUoKSkpIHJldHVybiBkXG5cbiAgICAgIC8vIEhhbmRsZSB0aW1lLW9ubHkgc3RyaW5ncyBmcm9tIGZvcm1hdFZhbHVlOiBcImhoOm1tIEFBXCJcbiAgICAgIGlmICh0eXBlb2YgdiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc3QgdGltZU1hdGNoID0gdi5tYXRjaCgvXihcXGR7MSwyfSk6KFxcZHsyfSlcXHMqKEFNfFBNKSQvaSlcbiAgICAgICAgaWYgKHRpbWVNYXRjaCkge1xuICAgICAgICAgIGxldCBoID0gcGFyc2VJbnQodGltZU1hdGNoWzFdLCAxMClcbiAgICAgICAgICBjb25zdCBtID0gcGFyc2VJbnQodGltZU1hdGNoWzJdLCAxMClcbiAgICAgICAgICBjb25zdCBhcCA9IHRpbWVNYXRjaFszXS50b1VwcGVyQ2FzZSgpXG4gICAgICAgICAgaWYgKGggPT09IDEyICYmIGFwID09PSAnQU0nKSBoID0gMFxuICAgICAgICAgIGlmIChoICE9PSAxMiAmJiBhcCA9PT0gJ1BNJykgaCArPSAxMlxuICAgICAgICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKClcbiAgICAgICAgICByZXR1cm4gbmV3IERhdGUobm93LmdldEZ1bGxZZWFyKCksIG5vdy5nZXRNb250aCgpLCBub3cuZ2V0RGF0ZSgpLCBoLCBtLCAwLCAwKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gSGFuZGxlIGRhdGV0aW1lIHN0cmluZ3MgZnJvbSBmb3JtYXRWYWx1ZTogXCJZWVlZLU1NLUREIGhoOm1tIEFBXCJcbiAgICAgICAgY29uc3QgZHRNYXRjaCA9IHYubWF0Y2goL14oXFxkezR9KS0oXFxkezJ9KS0oXFxkezJ9KVxccysoXFxkezEsMn0pOihcXGR7Mn0pXFxzKihBTXxQTSkkL2kpXG4gICAgICAgIGlmIChkdE1hdGNoKSB7XG4gICAgICAgICAgbGV0IGggPSBwYXJzZUludChkdE1hdGNoWzRdLCAxMClcbiAgICAgICAgICBjb25zdCBtID0gcGFyc2VJbnQoZHRNYXRjaFs1XSwgMTApXG4gICAgICAgICAgY29uc3QgYXAgPSBkdE1hdGNoWzZdLnRvVXBwZXJDYXNlKClcbiAgICAgICAgICBpZiAoaCA9PT0gMTIgJiYgYXAgPT09ICdBTScpIGggPSAwXG4gICAgICAgICAgaWYgKGggIT09IDEyICYmIGFwID09PSAnUE0nKSBoICs9IDEyXG4gICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHBhcnNlSW50KGR0TWF0Y2hbMV0pLCBwYXJzZUludChkdE1hdGNoWzJdKSAtIDEsIHBhcnNlSW50KGR0TWF0Y2hbM10pLCBoLCBtLCAwLCAwKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IHJlc29sdmVkVmFsdWUgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IHJlc29sdmVWYWx1ZShzZWxlY3RlZCA/PyB2YWx1ZSksXG4gICAgW1xuICAgICAgc2VsZWN0ZWQgaW5zdGFuY2VvZiBEYXRlID8gc2VsZWN0ZWQuZ2V0VGltZSgpIDogc2VsZWN0ZWQsXG4gICAgICB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZS5nZXRUaW1lKCkgOiB2YWx1ZSxcbiAgICBdLFxuICApXG4gIGNvbnN0IHNob3dDYWxlbmRhciA9IGNhbGVuZGFyIHx8IG1vZGUgPT09ICdkYXRlJyB8fCBtb2RlID09PSAnZGF0ZXRpbWUnXG4gIGNvbnN0IHNob3dUaW1lID0gIWNhbGVuZGFyICYmIChtb2RlID09PSAndGltZScgfHwgbW9kZSA9PT0gJ2RhdGV0aW1lJylcblxuICAvKiAtLS0tIGludGVybmFsIHN0YXRlIC0tLS0gKi9cbiAgY29uc3QgW2lzT3Blbiwgc2V0SXNPcGVuXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbdmlld1llYXIsIHNldFZpZXdZZWFyXSA9IFJlYWN0LnVzZVN0YXRlKCgpID0+XG4gICAgcmVzb2x2ZWRWYWx1ZSA/IHJlc29sdmVkVmFsdWUuZ2V0RnVsbFllYXIoKSA6IGdldFR6VG9kYXkodGltZXpvbmUpLmdldEZ1bGxZZWFyKCkpXG4gIGNvbnN0IFt2aWV3TW9udGgsIHNldFZpZXdNb250aF0gPSBSZWFjdC51c2VTdGF0ZSgoKSA9PlxuICAgIHJlc29sdmVkVmFsdWUgPyByZXNvbHZlZFZhbHVlLmdldE1vbnRoKCkgOiBnZXRUelRvZGF5KHRpbWV6b25lKS5nZXRNb250aCgpKVxuICBjb25zdCBbdGVtcERhdGUsIHNldFRlbXBEYXRlXSA9IFJlYWN0LnVzZVN0YXRlPERhdGUgfCBudWxsPihyZXNvbHZlZFZhbHVlKVxuICBjb25zdCBbdGVtcEhvdXJzLCBzZXRUZW1wSG91cnNdID0gUmVhY3QudXNlU3RhdGUoKCkgPT5cbiAgICByZXNvbHZlZFZhbHVlID8gKHJlc29sdmVkVmFsdWUuZ2V0SG91cnMoKSAlIDEyIHx8IDEyKSA6IDEyKVxuICBjb25zdCBbdGVtcE1pbnMsIHNldFRlbXBNaW5zXSA9IFJlYWN0LnVzZVN0YXRlKCgpID0+XG4gICAgcmVzb2x2ZWRWYWx1ZSA/IHJlc29sdmVkVmFsdWUuZ2V0TWludXRlcygpIDogMClcbiAgY29uc3QgW3RlbXBBbVBtLCBzZXRUZW1wQW1QbV0gPSBSZWFjdC51c2VTdGF0ZSgoKSA9PlxuICAgIHJlc29sdmVkVmFsdWUgPyAocmVzb2x2ZWRWYWx1ZS5nZXRIb3VycygpID49IDEyID8gJ1BNJyA6ICdBTScpIDogJ0FNJylcbiAgY29uc3QgW3Nob3dZZWFyUGlja2VyLCBzZXRTaG93WWVhclBpY2tlcl0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3llYXJQYWdlLCBzZXRZZWFyUGFnZV0gPSBSZWFjdC51c2VTdGF0ZSgoKSA9PlxuICAgIE1hdGguZmxvb3IoKHJlc29sdmVkVmFsdWUgPyByZXNvbHZlZFZhbHVlLmdldEZ1bGxZZWFyKCkgOiBnZXRUelRvZGF5KHRpbWV6b25lKS5nZXRGdWxsWWVhcigpKSAvIFlFQVJTX1BFUl9QQUdFKSAqIFlFQVJTX1BFUl9QQUdFXG4gIClcbiAgY29uc3QgW3BvcG92ZXJTdHlsZSwgc2V0UG9wb3ZlclN0eWxlXSA9IFJlYWN0LnVzZVN0YXRlPFJlYWN0LkNTU1Byb3BlcnRpZXM+KFBSRV9QT1NJVElPTl9TVFlMRSlcblxuICBjb25zdCBpbnB1dFJlZiA9IFJlYWN0LnVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKVxuICBjb25zdCBwb3BvdmVyUmVmID0gUmVhY3QudXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBwb3J0YWxSZWYgPSBSZWFjdC51c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKVxuXG4gIC8qIC0tLS0gcG9ydGFsIGNvbnRhaW5lciAtLS0tICovXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgIGVsLmNsYXNzTmFtZSA9ICdkYXRlcGlja2VyLXBvcnRhbC1yb290J1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWwpXG4gICAgcG9ydGFsUmVmLmN1cnJlbnQgPSBlbFxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoZWwucGFyZW50Tm9kZSkgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbClcbiAgICAgIHBvcnRhbFJlZi5jdXJyZW50ID0gbnVsbFxuICAgIH1cbiAgfSwgW10pXG5cbiAgLyogLS0tLSBzeW5jIHRlbXAgc3RhdGUgd2hlbiB2YWx1ZSBjaGFuZ2VzIGV4dGVybmFsbHkgLS0tLSAqL1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChyZXNvbHZlZFZhbHVlICYmICFpc05hTihyZXNvbHZlZFZhbHVlLmdldFRpbWUoKSkpIHtcbiAgICAgIHNldFRlbXBEYXRlKHJlc29sdmVkVmFsdWUpXG4gICAgICBzZXRWaWV3WWVhcihyZXNvbHZlZFZhbHVlLmdldEZ1bGxZZWFyKCkpXG4gICAgICBzZXRWaWV3TW9udGgocmVzb2x2ZWRWYWx1ZS5nZXRNb250aCgpKVxuICAgICAgc2V0VGVtcEhvdXJzKHJlc29sdmVkVmFsdWUuZ2V0SG91cnMoKSAlIDEyIHx8IDEyKVxuICAgICAgc2V0VGVtcE1pbnMocmVzb2x2ZWRWYWx1ZS5nZXRNaW51dGVzKCkpXG4gICAgICBzZXRUZW1wQW1QbShyZXNvbHZlZFZhbHVlLmdldEhvdXJzKCkgPj0gMTIgPyAnUE0nIDogJ0FNJylcbiAgICAgIHNldFllYXJQYWdlKE1hdGguZmxvb3IocmVzb2x2ZWRWYWx1ZS5nZXRGdWxsWWVhcigpIC8gWUVBUlNfUEVSX1BBR0UpICogWUVBUlNfUEVSX1BBR0UpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFRlbXBEYXRlKG51bGwpXG4gICAgfVxuICB9LCBbcmVzb2x2ZWRWYWx1ZV0pXG5cbiAgLyogLS0tLSByZXBvc2l0aW9uIHBvcG92ZXIgb24gb3BlbiAvIHNjcm9sbCAvIHJlc2l6ZSAtLS0tICovXG4gIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaXNPcGVuKSB7XG4gICAgICAvKiBSZXNldCBzbyB0aGUgbmV4dCBvcGVuIHN0YXJ0cyBoaWRkZW4gdW50aWwgbWVhc3VyZWQg4oCUIHJldXNpbmcgdGhlIGxhc3RcbiAgICAgICAgIHBvc2l0aW9uIHdvdWxkIGZsYXNoIHRoZSBwb3BvdmVyIGF0IHRoZSBwcmV2aW91cyBsb2NhdGlvbiAqL1xuICAgICAgc2V0UG9wb3ZlclN0eWxlKFBSRV9QT1NJVElPTl9TVFlMRSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8qIE1lYXN1cmUgYWN0dWFsIHBvcG92ZXIgc2l6ZSBzbyB3ZSBwb3NpdGlvbiB3aXRoIG5vIHdhc3RlZCBzcGFjZSAqL1xuICAgIGNvbnN0IGdldEhlaWdodCA9ICgpOiBudW1iZXIgPT4ge1xuICAgICAgaWYgKHBvcG92ZXJSZWYuY3VycmVudCkge1xuICAgICAgICByZXR1cm4gcG9wb3ZlclJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodFxuICAgICAgfVxuICAgICAgcmV0dXJuIFBPUE9WRVJfR1VFU1Nbc2hvd1llYXJQaWNrZXIgPyAneWVhcicgOiBtb2RlXSB8fCAzMDBcbiAgICB9XG4gICAgY29uc3QgZ2V0V2lkdGggPSAoKTogbnVtYmVyID0+IHtcbiAgICAgIGlmIChwb3BvdmVyUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuIHBvcG92ZXJSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aFxuICAgICAgfVxuICAgICAgcmV0dXJuIFBPUE9WRVJfV0lEVEhfR1VFU1Nbc2hvd1llYXJQaWNrZXIgPyAneWVhcicgOiBtb2RlXSB8fCAyODBcbiAgICB9XG5cbiAgICBjb25zdCBzY3JvbGxQYXJlbnQgPSBnZXRTY3JvbGxQYXJlbnQoaW5wdXRSZWYuY3VycmVudClcblxuICAgIGNvbnN0IHVwZGF0ZSA9ICgpID0+IHtcbiAgICAgIHNldFBvcG92ZXJTdHlsZShjYWxjUG9wb3ZlclN0eWxlKGlucHV0UmVmLmN1cnJlbnQsIGdldEhlaWdodCgpLCBnZXRXaWR0aCgpKSlcbiAgICB9XG4gICAgLyogUG9zaXRpb24gc3luY2hyb25vdXNseSBiZWZvcmUgcGFpbnQg4oCUIHRoZSBwb3BvdmVyIGlzIGFscmVhZHkgbW91bnRlZFxuICAgICAgIChoaWRkZW4sIGNvbnRlbnQtc2l6ZWQgdmlhIFBSRV9QT1NJVElPTl9TVFlMRSkgc28gbWVhc3VyZW1lbnRzIGFyZSByZWFsICovXG4gICAgdXBkYXRlKClcblxuICAgIC8qIFRocm90dGxlIHNjcm9sbC9yZXNpemUgcmVwb3NpdGlvbmluZyB0byBhbmltYXRpb24gZnJhbWVzICovXG4gICAgbGV0IHJhZiA9IDBcbiAgICBjb25zdCBzY2hlZHVsZVVwZGF0ZSA9ICgpID0+IHtcbiAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHJhZilcbiAgICAgIHJhZiA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSh1cGRhdGUpXG4gICAgfVxuXG4gICAgLyogTGlzdGVuIG9uIHRoZSBuZWFyZXN0IHNjcm9sbGFibGUgYW5jZXN0b3IgKGUuZy4gbW9kYWwgYm9keSkgQU5EIHRoZSB3aW5kb3cgKi9cbiAgICBzY3JvbGxQYXJlbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgc2NoZWR1bGVVcGRhdGUsIHsgcGFzc2l2ZTogdHJ1ZSB9KVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBzY2hlZHVsZVVwZGF0ZSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmFmKVxuICAgICAgc2Nyb2xsUGFyZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHNjaGVkdWxlVXBkYXRlKVxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHNjaGVkdWxlVXBkYXRlKVxuICAgIH1cbiAgfSwgW2lzT3BlbiwgbW9kZSwgc2hvd1llYXJQaWNrZXJdKVxuXG4gIC8qIC0tLS0gY2xpY2sgb3V0c2lkZSB0byBjbG9zZSAtLS0tICovXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc09wZW4pIHJldHVyblxuICAgIGNvbnN0IGhhbmRsZXIgPSAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKHBvcG92ZXJSZWYuY3VycmVudCAmJiAhcG9wb3ZlclJlZi5jdXJyZW50LmNvbnRhaW5zKGUudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgaW5wdXRSZWYuY3VycmVudCAmJiAhaW5wdXRSZWYuY3VycmVudC5jb250YWlucyhlLnRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgICBzZXRJc09wZW4oZmFsc2UpXG4gICAgICAgIHNldFNob3dZZWFyUGlja2VyKGZhbHNlKVxuICAgICAgfVxuICAgIH1cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVyKVxuICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVyKVxuICB9LCBbaXNPcGVuXSlcblxuICAvKiAtLS0tIGNvbW1pdCBoZWxwZXJzIC0tLS0gKi9cbiAgY29uc3QgYnVpbGREYXRlID0gKGJhc2U6IERhdGUsIGgxMjogbnVtYmVyLCBtaW5zOiBudW1iZXIsIGFtcG06IHN0cmluZyk6IERhdGUgPT4ge1xuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZShiYXNlKVxuICAgIGxldCBoID0gaDEyICUgMTJcbiAgICBpZiAoYW1wbSA9PT0gJ1BNJykgaCArPSAxMlxuICAgIGlmIChoID09PSAxMiAmJiBhbXBtID09PSAnQU0nKSBoID0gMFxuICAgIGQuc2V0SG91cnMoaCwgbWlucywgMCwgMClcbiAgICByZXR1cm4gZFxuICB9XG5cbiAgLyoqXG4gICAqIEZpcmUgb25DaGFuZ2Ugd2l0aCBhIHByZS1idWlsdCBkYXRlIHdpdGhvdXQgY2xvc2luZyB0aGUgcG9wb3Zlci5cbiAgICogQ2FsbGVycyBtdXN0IGJ1aWxkIHRoZSBjb21wbGV0ZSBkYXRlIChpbmNsdWRpbmcgdGltZSkgYmVmb3JlIHBhc3NpbmcgaXQgaW4uXG4gICAqL1xuICBjb25zdCBmaXJlQ2hhbmdlID0gKGRhdGU6IERhdGUgfCBudWxsKTogdm9pZCA9PiB7XG4gICAgaWYgKCFkYXRlIHx8IGlzTmFOKGRhdGUuZ2V0VGltZSgpKSkgcmV0dXJuXG4gICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0VmFsdWUoZGF0ZSwgbW9kZSwgZGF0ZUZvcm1hdClcbiAgICBvbkNoYW5nZT8uKG1ha2VFdmVudChmb3JtYXR0ZWQsIG5hbWUgfHwgJycsIG1vZGUpKVxuICB9XG5cbiAgY29uc3QgY29tbWl0ID0gKGRhdGU6IERhdGUgfCBudWxsKTogdm9pZCA9PiB7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICBvbkNoYW5nZT8uKG1ha2VFdmVudChudWxsLCBuYW1lIHx8ICcnLCBtb2RlKSlcbiAgICAgIHNldElzT3BlbihmYWxzZSlcbiAgICAgIHNldFNob3dZZWFyUGlja2VyKGZhbHNlKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGZpcmVDaGFuZ2UoZGF0ZSlcbiAgICBpZiAobW9kZSA9PT0gJ2RhdGUnKSB7IHNldElzT3BlbihmYWxzZSk7IHNldFNob3dZZWFyUGlja2VyKGZhbHNlKSB9XG4gIH1cblxuICBjb25zdCBjb21taXREYXRlT25seSA9IChkYXRlOiBEYXRlKTogdm9pZCA9PiB7XG4gICAgc2V0VGVtcERhdGUoZGF0ZSlcbiAgICBpZiAobW9kZSA9PT0gJ2RhdGUnIHx8IGNhbGVuZGFyKSB7XG4gICAgICBjb21taXQoZGF0ZSlcbiAgICB9IGVsc2UgaWYgKG1vZGUgPT09ICdkYXRldGltZScpIHtcbiAgICAgIC8vIEJ1aWxkIGZ1bGwgZGF0ZXRpbWUgKGRhdGUgKyBjdXJyZW50IHRpbWUgc2VsZWN0aW9uKSBhbmQgZmlyZVxuICAgICAgY29uc3QgZCA9IGJ1aWxkRGF0ZShkYXRlLCB0ZW1wSG91cnMsIHRlbXBNaW5zLCB0ZW1wQW1QbSlcbiAgICAgIGZpcmVDaGFuZ2UoZClcbiAgICB9XG4gIH1cblxuICAvKiAtLS0tIGNhbGVuZGFyIGdyaWQgLS0tLSAqL1xuICBjb25zdCBncmlkID0gYnVpbGRDYWxlbmRhckdyaWQodmlld1llYXIsIHZpZXdNb250aClcblxuICBjb25zdCBoYW5kbGVQcmV2TW9udGggPSAoKSA9PiB7XG4gICAgbGV0IG5ld1kgPSB2aWV3WWVhciwgbmV3TSA9IHZpZXdNb250aFxuICAgIGlmICh2aWV3TW9udGggPT09IDApIHsgbmV3WSA9IHZpZXdZZWFyIC0gMTsgbmV3TSA9IDExIH1cbiAgICBlbHNlIG5ld00gPSB2aWV3TW9udGggLSAxXG4gICAgc2V0Vmlld1llYXIobmV3WSk7IHNldFZpZXdNb250aChuZXdNKVxuICAgIGNvbnN0IGJhc2UgPSB0ZW1wRGF0ZSB8fCBuZXcgRGF0ZSgpXG4gICAgY29uc3QgbWF4RCA9IGRheXNJbk1vbnRoKG5ld1ksIG5ld00pXG4gICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKG5ld1ksIG5ld00sIE1hdGgubWluKGJhc2UuZ2V0RGF0ZSgpLCBtYXhEKSlcbiAgICBzZXRUZW1wRGF0ZShuZXdEYXRlKVxuICAgIGZpcmVDaGFuZ2Uoc2hvd1RpbWUgPyBidWlsZERhdGUobmV3RGF0ZSwgdGVtcEhvdXJzLCB0ZW1wTWlucywgdGVtcEFtUG0pIDogbmV3RGF0ZSlcbiAgfVxuICBjb25zdCBoYW5kbGVOZXh0TW9udGggPSAoKSA9PiB7XG4gICAgbGV0IG5ld1kgPSB2aWV3WWVhciwgbmV3TSA9IHZpZXdNb250aFxuICAgIGlmICh2aWV3TW9udGggPT09IDExKSB7IG5ld1kgPSB2aWV3WWVhciArIDE7IG5ld00gPSAwIH1cbiAgICBlbHNlIG5ld00gPSB2aWV3TW9udGggKyAxXG4gICAgc2V0Vmlld1llYXIobmV3WSk7IHNldFZpZXdNb250aChuZXdNKVxuICAgIGNvbnN0IGJhc2UgPSB0ZW1wRGF0ZSB8fCBuZXcgRGF0ZSgpXG4gICAgY29uc3QgbWF4RCA9IGRheXNJbk1vbnRoKG5ld1ksIG5ld00pXG4gICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKG5ld1ksIG5ld00sIE1hdGgubWluKGJhc2UuZ2V0RGF0ZSgpLCBtYXhEKSlcbiAgICBzZXRUZW1wRGF0ZShuZXdEYXRlKVxuICAgIGZpcmVDaGFuZ2Uoc2hvd1RpbWUgPyBidWlsZERhdGUobmV3RGF0ZSwgdGVtcEhvdXJzLCB0ZW1wTWlucywgdGVtcEFtUG0pIDogbmV3RGF0ZSlcbiAgfVxuXG4gIGNvbnN0IHRvZGF5ID0gZ2V0VHpUb2RheSh0aW1lem9uZSlcbiAgLyogbWluL21heCBhY2NlcHQgdGhlIHNhbWUgZmxleGlibGUgaW5wdXRzIGFzIGB2YWx1ZWAgKERhdGUsIHN0cmluZywgdGltZXN0YW1wKSDigJRcbiAgICAgYSBmb3JtYXR0ZWQgc3RyaW5nIGZyb20gYW5vdGhlciBEYXRlUGlja2VyJ3Mgb25DaGFuZ2UgaXMgYSBjb21tb24gc291cmNlICovXG4gIGNvbnN0IHJlc29sdmVkTWluID0gcmVzb2x2ZVZhbHVlKG1pbkRhdGUpXG4gIGNvbnN0IHJlc29sdmVkTWF4ID0gcmVzb2x2ZVZhbHVlKG1heERhdGUpXG4gIGNvbnN0IG1pbkR0ID0gcmVzb2x2ZWRNaW4gPyBuZXcgRGF0ZShyZXNvbHZlZE1pbi5nZXRGdWxsWWVhcigpLCByZXNvbHZlZE1pbi5nZXRNb250aCgpLCByZXNvbHZlZE1pbi5nZXREYXRlKCkpIDogbnVsbFxuICBjb25zdCBtYXhEdCA9IHJlc29sdmVkTWF4ID8gbmV3IERhdGUocmVzb2x2ZWRNYXguZ2V0RnVsbFllYXIoKSwgcmVzb2x2ZWRNYXguZ2V0TW9udGgoKSwgcmVzb2x2ZWRNYXguZ2V0RGF0ZSgpKSA6IG51bGxcblxuICAvKiAtLS0tIHRpbWUgY2hhbmdlIGhhbmRsZXJzIC0tLS0gKi9cbiAgY29uc3QgaGFuZGxlSG91ckNoYW5nZSA9IChoOiBudW1iZXIpID0+IHtcbiAgICBzZXRUZW1wSG91cnMoaClcbiAgICBpZiAoc2hvd1RpbWUpIHtcbiAgICAgIGNvbnN0IGQgPSBidWlsZERhdGUodGVtcERhdGUgfHwgbmV3IERhdGUoKSwgaCwgdGVtcE1pbnMsIHRlbXBBbVBtKVxuICAgICAgb25DaGFuZ2U/LihtYWtlRXZlbnQoZm9ybWF0VmFsdWUoZCwgbW9kZSwgZGF0ZUZvcm1hdCksIG5hbWUgfHwgJycsIG1vZGUpKVxuICAgIH1cbiAgfVxuICBjb25zdCBoYW5kbGVNaW5DaGFuZ2UgPSAobTogbnVtYmVyKSA9PiB7XG4gICAgc2V0VGVtcE1pbnMobSlcbiAgICBpZiAoc2hvd1RpbWUpIHtcbiAgICAgIGNvbnN0IGQgPSBidWlsZERhdGUodGVtcERhdGUgfHwgbmV3IERhdGUoKSwgdGVtcEhvdXJzLCBtLCB0ZW1wQW1QbSlcbiAgICAgIG9uQ2hhbmdlPy4obWFrZUV2ZW50KGZvcm1hdFZhbHVlKGQsIG1vZGUsIGRhdGVGb3JtYXQpLCBuYW1lIHx8ICcnLCBtb2RlKSlcbiAgICB9XG4gIH1cbiAgY29uc3QgaGFuZGxlQW1QbUNoYW5nZSA9IChhcDogc3RyaW5nKSA9PiB7XG4gICAgc2V0VGVtcEFtUG0oYXApXG4gICAgaWYgKHNob3dUaW1lKSB7XG4gICAgICBjb25zdCBkID0gYnVpbGREYXRlKHRlbXBEYXRlIHx8IG5ldyBEYXRlKCksIHRlbXBIb3VycywgdGVtcE1pbnMsIGFwKVxuICAgICAgb25DaGFuZ2U/LihtYWtlRXZlbnQoZm9ybWF0VmFsdWUoZCwgbW9kZSwgZGF0ZUZvcm1hdCksIG5hbWUgfHwgJycsIG1vZGUpKVxuICAgIH1cbiAgfVxuXG4gIC8qIC0tLS0geWVhciBwaWNrZXIgLS0tLSAqL1xuICBjb25zdCBvcGVuWWVhclBpY2tlciA9ICgpID0+IHtcbiAgICBzZXRZZWFyUGFnZShNYXRoLmZsb29yKHZpZXdZZWFyIC8gWUVBUlNfUEVSX1BBR0UpICogWUVBUlNfUEVSX1BBR0UpXG4gICAgc2V0U2hvd1llYXJQaWNrZXIodHJ1ZSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVllYXJTZWxlY3QgPSAoeTogbnVtYmVyKSA9PiB7XG4gICAgc2V0Vmlld1llYXIoeSlcbiAgICBzZXRTaG93WWVhclBpY2tlcihmYWxzZSlcbiAgICBjb25zdCBiYXNlID0gdGVtcERhdGUgfHwgbmV3IERhdGUoKVxuICAgIGNvbnN0IG1heEQgPSBkYXlzSW5Nb250aCh5LCB2aWV3TW9udGgpXG4gICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKHksIHZpZXdNb250aCwgTWF0aC5taW4oYmFzZS5nZXREYXRlKCksIG1heEQpKVxuICAgIHNldFRlbXBEYXRlKG5ld0RhdGUpXG4gICAgZmlyZUNoYW5nZShzaG93VGltZSA/IGJ1aWxkRGF0ZShuZXdEYXRlLCB0ZW1wSG91cnMsIHRlbXBNaW5zLCB0ZW1wQW1QbSkgOiBuZXdEYXRlKVxuICB9XG5cbiAgY29uc3QgeWVhclBhZ2VTdGFydCA9IE1hdGguZmxvb3IoeWVhclBhZ2UgLyBZRUFSU19QRVJfUEFHRSkgKiBZRUFSU19QRVJfUEFHRVxuICBjb25zdCB5ZWFycyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IFlFQVJTX1BFUl9QQUdFIH0sIChfLCBpKSA9PiB5ZWFyUGFnZVN0YXJ0ICsgaSlcblxuICAvKiAtLS0tIGNsZWFyIC0tLS0gKi9cbiAgY29uc3QgaGFuZGxlQ2xlYXIgPSAoZTogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICBzZXRUZW1wRGF0ZShudWxsKVxuICAgIG9uQ2hhbmdlPy4obWFrZUV2ZW50KG51bGwsIG5hbWUgfHwgJycpKVxuICB9XG5cbiAgLyogLS0tLSBrZXlib2FyZCAtLS0tICovXG4gIGNvbnN0IGhhbmRsZUlucHV0S2V5RG93biA9IChlOiBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKGUua2V5ID09PSAnRXNjYXBlJykgeyBzZXRJc09wZW4oZmFsc2UpOyBzZXRTaG93WWVhclBpY2tlcihmYWxzZSk7IGlucHV0UmVmLmN1cnJlbnQ/LmJsdXIoKSB9XG4gICAgaWYgKGUua2V5ID09PSAnQXJyb3dEb3duJyB8fCBlLmtleSA9PT0gJ0VudGVyJyB8fCBlLmtleSA9PT0gJyAnKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIHNldElzT3Blbih0cnVlKVxuICAgIH1cbiAgfVxuXG4gIC8qIC0tLS0gbWVyZ2VkIHJlZiAtLS0tICovXG4gIGNvbnN0IG1lcmdlSW5wdXRSZWYgPSBSZWFjdC51c2VDYWxsYmFjaygobm9kZTogSFRNTElucHV0RWxlbWVudCB8IG51bGwpID0+IHtcbiAgICBpbnB1dFJlZi5jdXJyZW50ID0gbm9kZVxuICAgIGlmICh0eXBlb2YgcmVmID09PSAnZnVuY3Rpb24nKSByZWYobm9kZSlcbiAgICBlbHNlIGlmIChyZWYpIHJlZi5jdXJyZW50ID0gbm9kZVxuICB9LCBbcmVmXSlcblxuICAvKiAtLS0tIHJlbmRlciAtLS0tICovXG4gIGNvbnN0IHBsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXJUZXh0XG4gICAgPz8gKG1vZGUgPT09ICd0aW1lJyA/ICdTZWxlY3QgdGltZScgOiBtb2RlID09PSAnZGF0ZXRpbWUnID8gJ1NlbGVjdCBkYXRlICYgdGltZScgOiAnU2VsZWN0IGRhdGUnKVxuXG4gIGNvbnN0IHBpY2tlckJvZHkgPSAoXG4gICAgPD5cbiAgICAgIHsvKiA9PT09PT09PT09PT09PSBZRUFSIFBJQ0tFUiA9PT09PT09PT09PT09PSAqL31cbiAgICAgIHtzaG93WWVhclBpY2tlciAmJiBzaG93Q2FsZW5kYXIgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGVwaWNrZXIteWVhci1waWNrZXIgcC0zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG1iLTJcIj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzTmFtZT1cImJ0biBidG4tc20gYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGJvcmRlci0wIHB4LTFcIiBvbkNsaWNrPXsoKSA9PiBzZXRZZWFyUGFnZSh5ZWFyUGFnZSAtIFlFQVJTX1BFUl9QQUdFKX0gYXJpYS1sYWJlbD1cIlByZXZpb3VzIHllYXJzXCI+JmxzYXF1bzs8L2J1dHRvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZ3LXNlbWlib2xkIHNtYWxsXCI+e3llYXJQYWdlU3RhcnR9IOKAkyB7eWVhclBhZ2VTdGFydCArIFlFQVJTX1BFUl9QQUdFIC0gMX08L3NwYW4+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzc05hbWU9XCJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBib3JkZXItMCBweC0xXCIgb25DbGljaz17KCkgPT4gc2V0WWVhclBhZ2UoeWVhclBhZ2UgKyBZRUFSU19QRVJfUEFHRSl9IGFyaWEtbGFiZWw9XCJOZXh0IHllYXJzXCI+JnJzYXF1bzs8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGVwaWNrZXIteWVhci1ncmlkXCI+XG4gICAgICAgICAgICB7eWVhcnMubWFwKCh5KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGlzQ3VycmVudFllYXIgPSB5ID09PSBnZXRUelRvZGF5KHRpbWV6b25lKS5nZXRGdWxsWWVhcigpXG4gICAgICAgICAgICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSB0ZW1wRGF0ZSAmJiB5ID09PSB0ZW1wRGF0ZS5nZXRGdWxsWWVhcigpXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAga2V5PXt5fVxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgICAgICAgICAgICAnZGF0ZXBpY2tlci15ZWFyLWNlbGwgYnRuIGJ0bi1zbScsXG4gICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQgJiYgJ2J0bi1wcmltYXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgIWlzU2VsZWN0ZWQgJiYgaXNDdXJyZW50WWVhciAmJiAnYnRuLW91dGxpbmUtcHJpbWFyeScsXG4gICAgICAgICAgICAgICAgICAgICFpc1NlbGVjdGVkICYmICFpc0N1cnJlbnRZZWFyICYmICdidG4tbGlnaHQgYm9yZGVyJ1xuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZVllYXJTZWxlY3QoeSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3l9XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG5cbiAgICAgIHsvKiA9PT09PT09PT09PT09PSBDQUxFTkRBUiArIFRJTUUgPT09PT09PT09PT09PT0gKi99XG4gICAgICB7IXNob3dZZWFyUGlja2VyICYmIChcbiAgICAgICAgPD5cblxuICAgICAgICAgIHsvKiAtLS0tIENBTEVOREFSICsgVElNRSBDT05UQUlORVIgLS0tLSAqL31cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y24oJ2QtZmxleCcsIG1vZGUgPT09ICdkYXRldGltZScgPyAnZmxleC1yb3cnIDogJ2ZsZXgtY29sdW1uJyl9PlxuXG4gICAgICAgICAgey8qIC0tLS0gQ0FMRU5EQVIgLS0tLSAqL31cbiAgICAgICAgICB7c2hvd0NhbGVuZGFyICYmIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0ZXBpY2tlci1jYWxlbmRhciBwLTJcIj5cbiAgICAgICAgICAgICAgey8qIE1vbnRoIC8gWWVhciBoZWFkZXIgKi99XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtYi0yXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3NOYW1lPVwiYnRuIGJ0bi1zbSBidG4tb3V0bGluZS1zZWNvbmRhcnkgYm9yZGVyLTAgcHgtMVwiIG9uQ2xpY2s9e2hhbmRsZVByZXZNb250aH0gYXJpYS1sYWJlbD1cIlByZXZpb3VzIG1vbnRoXCI+JmxzYXF1bzs8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTFcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZ3LXNlbWlib2xkIHNtYWxsXCI+e01PTlRIU1t2aWV3TW9udGhdfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJ0biBidG4tc20gYnRuLWxpbmsgdGV4dC1kZWNvcmF0aW9uLW5vbmUgdGV4dC1wcmltYXJ5IGZ3LXNlbWlib2xkIHNtYWxsIHAtMFwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29wZW5ZZWFyUGlja2VyfVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2hvb3NlIHllYXJcIlxuICAgICAgICAgICAgICAgICAgPnt2aWV3WWVhcn08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzc05hbWU9XCJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBib3JkZXItMCBweC0xXCIgb25DbGljaz17aGFuZGxlTmV4dE1vbnRofSBhcmlhLWxhYmVsPVwiTmV4dCBtb250aFwiPiZyc2FxdW87PC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIHsvKiBEYXktb2Ytd2VlayBoZWFkZXJzICovfVxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGVwaWNrZXItZGF5cy1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICB7REFZU19PRl9XRUVLLm1hcChkID0+IChcbiAgICAgICAgICAgICAgICAgIDxkaXYga2V5PXtkfSBjbGFzc05hbWU9XCJkYXRlcGlja2VyLWRheS1sYWJlbFwiPntkfTwvZGl2PlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICB7LyogRGF5IGdyaWQgKi99XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0ZXBpY2tlci1kYXlzLWdyaWRcIj5cbiAgICAgICAgICAgICAgICB7Z3JpZC5tYXAoKGNlbGwsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGlzVG9kYXkgPSBpc1NhbWVEYXkoY2VsbC5kYXRlLCB0b2RheSlcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSB0ZW1wRGF0ZSAmJiBpc1NhbWVEYXkoY2VsbC5kYXRlLCB0ZW1wRGF0ZSlcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGluUmFuZ2UgPSBpc0RhdGVJblJhbmdlKGNlbGwuZGF0ZSwgbWluRHQsIG1heER0KVxuICAgICAgICAgICAgICAgICAgY29uc3QgaXNEaXNhYmxlZERheSA9IGNlbGwuaXNPdXRzaWRlIHx8ICFpblJhbmdlXG5cbiAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e2l9XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzRGlzYWJsZWREYXl9XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgICAgICAgICAgICAgICAgICdkYXRlcGlja2VyLWRheScsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1RvZGF5ICYmICdkYXRlcGlja2VyLWRheS0tdG9kYXknLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNTZWxlY3RlZCAmJiAnZGF0ZXBpY2tlci1kYXktLXNlbGVjdGVkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuaXNPdXRzaWRlICYmICdkYXRlcGlja2VyLWRheS0tb3V0c2lkZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAhaW5SYW5nZSAmJiAnZGF0ZXBpY2tlci1kYXktLWRpc2FibGVkJ1xuICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gY29tbWl0RGF0ZU9ubHkoY2VsbC5kYXRlKX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17Y2VsbC5pc091dHNpZGUgPyAtMSA6IDB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7Y2VsbC5kYXl9XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICB7LyogLS0tLSBESVZJREVSIChkYXRldGltZSBtb2RlKSAtLS0tICovfVxuICAgICAgICAgIHttb2RlID09PSAnZGF0ZXRpbWUnICYmIDxkaXYgY2xhc3NOYW1lPVwidnIgbXgtMSBteS0yXCIgLz59XG5cbiAgICAgICAgICB7LyogLS0tLSBUSU1FIC0tLS0gKi99XG4gICAgICAgICAge3Nob3dUaW1lICYmIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0ZXBpY2tlci10aW1lIHAtMiBkLWZsZXggZmxleC1jb2x1bW5cIiBzdHlsZT17eyBtaW5XaWR0aDogMTgwIH19PlxuICAgICAgICAgICAgICB7bW9kZSA9PT0gJ2RhdGV0aW1lJyAmJiA8ZGl2IGNsYXNzTmFtZT1cInNtYWxsIGZ3LXNlbWlib2xkIHRleHQtbXV0ZWQgdGV4dC1jZW50ZXIgbWItMVwiPlRpbWU8L2Rpdj59XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICB7LyogSG91ciBjb2x1bW4gKi99XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkYXRlcGlja2VyLXRpbWUtY29sXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGVwaWNrZXItdGltZS1jb2wtbGFiZWxcIj5Ib3VyPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGVwaWNrZXItdGltZS1jb2wtc2Nyb2xsXCI+XG4gICAgICAgICAgICAgICAgICAgIHtBcnJheS5mcm9tKHsgbGVuZ3RoOiAxMiB9LCAoXywgaSkgPT4gaSArIDEpLm1hcChoID0+IChcbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2h9XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y24oJ2RhdGVwaWNrZXItdGltZS1pdGVtJywgaCA9PT0gdGVtcEhvdXJzICYmICdhY3RpdmUnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUhvdXJDaGFuZ2UoaCl9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge1N0cmluZyhoKS5wYWRTdGFydCgyLCAnMCcpfVxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRhdGVwaWNrZXItdGltZS1zZXBhcmF0b3JcIj46PC9zcGFuPlxuICAgICAgICAgICAgICAgIHsvKiBNaW51dGUgY29sdW1uICovfVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0ZXBpY2tlci10aW1lLWNvbFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkYXRlcGlja2VyLXRpbWUtY29sLWxhYmVsXCI+TWluPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGVwaWNrZXItdGltZS1jb2wtc2Nyb2xsXCI+XG4gICAgICAgICAgICAgICAgICAgIHtNSU5VVEVTLm1hcChtID0+IChcbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e219XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y24oJ2RhdGVwaWNrZXItdGltZS1pdGVtJywgbSA9PT0gdGVtcE1pbnMgJiYgJ2FjdGl2ZScpfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlTWluQ2hhbmdlKG0pfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtTdHJpbmcobSkucGFkU3RhcnQoMiwgJzAnKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB7LyogQU0vUE0gY29sdW1uICovfVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0ZXBpY2tlci10aW1lLWNvbFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkYXRlcGlja2VyLXRpbWUtY29sLWxhYmVsXCI+Jm5ic3A7PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMSBtdC0xXCI+XG4gICAgICAgICAgICAgICAgICAgIHtbJ0FNJywgJ1BNJ10ubWFwKGFwID0+IChcbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2FwfVxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NuKCdkYXRlcGlja2VyLXRpbWUtaXRlbScsICdkYXRlcGlja2VyLXRpbWUtaXRlbS0tYW1wbScsIHRlbXBBbVBtID09PSBhcCAmJiAnYWN0aXZlJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVBbVBtQ2hhbmdlKGFwKX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7YXB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvPlxuICAgICAgKX1cbiAgICA8Lz5cbiAgKVxuXG4gIGNvbnN0IHBvcG92ZXIgPSAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtwb3BvdmVyUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgJ2RhdGVwaWNrZXItcG9wb3ZlciBjYXJkIGJvcmRlciBzaGFkb3ctc20nLFxuICAgICAgICBtb2RlID09PSAnZGF0ZXRpbWUnICYmICdkYXRlcGlja2VyLXBvcG92ZXItLXdpZGUnXG4gICAgICApfVxuICAgICAgc3R5bGU9e3BvcG92ZXJTdHlsZX1cbiAgICA+XG4gICAgICB7cGlja2VyQm9keX1cbiAgICA8L2Rpdj5cbiAgKVxuXG4gIC8qIC0tLS0gaW5saW5lIGNhbGVuZGFyIG1vZGUgKG5vIGlucHV0LCBubyBwb3BvdmVyKSAtLS0tICovXG4gIGlmIChjYWxlbmRhcikge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17Y24oJ2RhdGVwaWNrZXItY2FsZW5kYXItaW5saW5lIGNhcmQgYm9yZGVyIHNoYWRvdy1zbScsIGNsYXNzTmFtZSl9PlxuICAgICAgICB7cGlja2VyQm9keX1cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJkYXRlcGlja2VyLXdyYXBwZXIgcG9zaXRpb24tcmVsYXRpdmUgZC1pbmxpbmUtYmxvY2sgdy0xMDBcIiBzdHlsZT17eyBtaW5XaWR0aDogMCB9fT5cbiAgICAgIHsvKiAtLS0tIElucHV0IC0tLS0gKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInBvc2l0aW9uLXJlbGF0aXZlXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHJlZj17bWVyZ2VJbnB1dFJlZn1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgcmVhZE9ubHlcbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgICAgICdmb3JtLWNvbnRyb2wnLFxuICAgICAgICAgICAgc2l6ZSA9PT0gJ3NtJyAmJiAnZm9ybS1jb250cm9sLXNtJyxcbiAgICAgICAgICAgIHNpemUgPT09ICdsZycgJiYgJ2Zvcm0tY29udHJvbC1sZycsXG4gICAgICAgICAgICAncGUtNScsXG4gICAgICAgICAgICBjbGFzc05hbWVcbiAgICAgICAgICApfVxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgICB2YWx1ZT17Zm9ybWF0VmFsdWUocmVzb2x2ZWRWYWx1ZSwgbW9kZSwgZGF0ZUZvcm1hdCl9XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gIWRpc2FibGVkICYmIHNldElzT3BlbighaXNPcGVuKX1cbiAgICAgICAgICBvbktleURvd249e2hhbmRsZUlucHV0S2V5RG93bn1cbiAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwiZGlhbG9nXCJcbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXtpc09wZW59XG4gICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIC8+XG4gICAgICAgIHsvKiBjbGVhciBidXR0b24gKi99XG4gICAgICAgIHtpc0NsZWFyYWJsZSAmJiByZXNvbHZlZFZhbHVlICYmICFkaXNhYmxlZCAmJiAoXG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJidG4gYnRuLXNtIGJ0bi1saW5rIHBvc2l0aW9uLWFic29sdXRlIHRvcC01MCBlbmQtMCB0cmFuc2xhdGUtbWlkZGxlLXkgcGUtMiB0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICBzdHlsZT17eyB6SW5kZXg6IDIgfX1cbiAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsZWFyfVxuICAgICAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICAmdGltZXM7XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cblxuICAgICAgey8qIC0tLS0gUG9ydGFsIHRoZSBwb3BvdmVyIHRvIGRvY3VtZW50LmJvZHkgLS0tLSAqL31cbiAgICAgIHtpc09wZW4gJiYgIWRpc2FibGVkICYmIHBvcnRhbFJlZi5jdXJyZW50ICYmIGNyZWF0ZVBvcnRhbChwb3BvdmVyLCBwb3J0YWxSZWYuY3VycmVudCl9XG4gICAgPC9kaXY+XG4gIClcbn0pXG5cbkRhdGVQaWNrZXIuZGlzcGxheU5hbWUgPSAnRGF0ZVBpY2tlcidcblxuZXhwb3J0IHsgRGF0ZVBpY2tlciB9XG5leHBvcnQgZGVmYXVsdCBEYXRlUGlja2VyXG4iXX0=
@@ -1,2 +0,0 @@
1
- import {a}from'./chunk-RR7TBRGI.js';import*as t from'react';import {createPortal}from'react-dom';import {jsxs,Fragment,jsx}from'react/jsx-runtime';var R=t.forwardRef(({show:n=false,title:h,message:E,onConfirm:N,onCancel:c,label:D="Confirm",variant:f="primary",className:C},k)=>{let[i,m]=t.useState(false),b=t.useId(),g=t.useId(),y=t.useRef(null),v=t.useRef(null),u=t.useRef(0);t.useEffect(()=>{n&&v.current?.focus();},[n]),t.useEffect(()=>{n||(u.current++,m(false));},[n]),t.useEffect(()=>{if(!n)return;let{body:e}=document,o=window.innerWidth-document.documentElement.clientWidth,r=e.style.overflow,s=e.style.paddingRight;return e.style.overflow="hidden",o>0&&(e.style.paddingRight=`${o}px`),()=>{e.style.overflow=r,e.style.paddingRight=s;}},[n]),t.useEffect(()=>{if(!n)return;let e=o=>{o.key==="Escape"&&!i&&c();};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[n,i,c]);let x=e=>{if(e.key!=="Tab")return;let o=y.current;if(!o)return;let r=Array.from(o.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')).filter(I=>!I.hasAttribute("disabled"));if(!r.length)return;let s=r[0],p=r[r.length-1];e.shiftKey&&document.activeElement===s?(e.preventDefault(),p.focus()):!e.shiftKey&&document.activeElement===p&&(e.preventDefault(),s.focus());},w=async()=>{if(i)return;let e=++u.current;m(true);try{await N();}finally{u.current===e&&m(false);}};return !n||typeof document>"u"?null:createPortal(jsxs(Fragment,{children:[jsx("div",{className:"confirmdialog-backdrop","aria-hidden":"true"}),jsx("div",{ref:k,tabIndex:-1,role:"dialog","aria-modal":"true","aria-labelledby":b,"aria-describedby":g,className:a("modal confirmdialog d-block",C),onKeyDown:x,children:jsx("div",{ref:y,className:"modal-dialog modal-dialog-centered modal-sm",children:jsxs("div",{className:"modal-content",children:[jsxs("div",{className:"confirmdialog-header",children:[jsx("span",{className:a("confirmdialog-dot",`bg-${f}`),"aria-hidden":"true"}),jsx("h5",{className:"modal-title",id:b,children:h})]}),jsx("div",{id:g,className:a("confirmdialog-body border-start border-3",`border-${f}`),children:E}),jsxs("div",{className:"confirmdialog-footer",children:[jsx("button",{type:"button",className:"btn btn-light",onClick:c,disabled:i,children:"Cancel"}),jsxs("button",{ref:v,type:"button",className:a("btn",`btn-${f}`,"fw-semibold"),onClick:w,disabled:i,children:[i&&jsx("span",{className:"spinner-border spinner-border-sm me-2","aria-hidden":"true"}),D]})]})]})})})]}),document.body)});R.displayName="ConfirmDialog";var H=R;export{R as a,H as b};//# sourceMappingURL=chunk-XL4EQW5D.js.map
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21wb25lbnRzL0NvbmZpcm1EaWFsb2cudHN4Il0sIm5hbWVzIjpbIkNvbmZpcm1EaWFsb2ciLCJzaG93IiwidGl0bGUiLCJtZXNzYWdlIiwib25Db25maXJtIiwib25DYW5jZWwiLCJsYWJlbCIsInZhcmlhbnQiLCJjbGFzc05hbWUiLCJyZWYiLCJpc1BlbmRpbmciLCJzZXRJc1BlbmRpbmciLCJ0aXRsZUlkIiwibWVzc2FnZUlkIiwiZGlhbG9nUmVmIiwiY29uZmlybVJlZiIsImNvbmZpcm1SdW5SZWYiLCJib2R5Iiwic2Nyb2xsYmFyV2lkdGgiLCJwcmV2T3ZlcmZsb3ciLCJwcmV2UGFkZGluZ1JpZ2h0IiwiaGFuZGxlS2V5IiwiZSIsImhhbmRsZUtleURvd24iLCJyb290IiwiZm9jdXNhYmxlcyIsImVsIiwiZmlyc3QiLCJsYXN0IiwiaGFuZGxlQ29uZmlybUNsaWNrIiwicnVuSWQiLCJjcmVhdGVQb3J0YWwiLCJqc3hzIiwiRnJhZ21lbnQiLCJqc3giLCJjbiIsIkNvbmZpcm1EaWFsb2dfZGVmYXVsdCJdLCJtYXBwaW5ncyI6Im1KQW9EQSxJQUFNQSxDQUFBQSxDQUFzQixDQUFBLENBQUEsVUFBQSxDQUErQyxDQUFDLENBQzFFLEtBQUFDLENBQUFBLENBQU8sS0FBQSxDQUNQLEtBQUEsQ0FBQUMsQ0FBQUEsQ0FDQSxPQUFBLENBQUFDLENBQUFBLENBQ0EsVUFBQUMsQ0FBQUEsQ0FDQSxRQUFBLENBQUFDLENBQUFBLENBQ0EsS0FBQSxDQUFBQyxDQUFBQSxDQUFRLFNBQUEsQ0FDUixRQUFBQyxDQUFBQSxDQUFVLFNBQUEsQ0FDVixTQUFBLENBQUFDLENBQ0YsQ0FBQSxDQUFHQyxDQUFBQSxHQUFRLENBQ1QsR0FBTSxDQUFDQyxDQUFBQSxDQUFXQyxDQUFZLENBQUEsQ0FBVSxDQUFBLENBQUEsUUFBQSxDQUFTLEtBQUssQ0FBQSxDQUNoREMsQ0FBQUEsQ0FBZ0IsQ0FBQSxDQUFBLEtBQUEsRUFBTSxDQUN0QkMsQ0FBQUEsQ0FBa0IsQ0FB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LENBQ0YsQ0FBQSxDQUNGLEVBQ0YsQ0FBQSxDQUFBLENBQ0YsQ0FBQSxDQUNBLFFBQUEsQ0FBUyxJQUNYLENBQ0YsQ0FBQyxFQUVETixDQUFBQSxDQUFjLFdBQUEsQ0FBYyxlQUFBLENBRzVCLElBQU9vQyxDQUFBQSxDQUFRcEMiLCJmaWxlIjoiY2h1bmstWEw0RVFXNUQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi4vbGliL2NuLmpzJ1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICBUeXBlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5leHBvcnQgdHlwZSBDb25maXJtRGlhbG9nVmFyaWFudCA9ICdwcmltYXJ5JyB8ICdkYW5nZXInIHwgJ3N1Y2Nlc3MnIHwgJ3dhcm5pbmcnIHwgJ2luZm8nXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlybURpYWxvZ1Byb3BzIHtcbiAgLyoqIFZpc2liaWxpdHkg4oCUIGZ1bGx5IGNvbnRyb2xsZWQgYnkgdGhlIGNhbGxlciAqL1xuICBzaG93OiBib29sZWFuXG4gIC8qKiBEaWFsb2cgdGl0bGUgKi9cbiAgdGl0bGU6IFJlYWN0LlJlYWN0Tm9kZVxuICAvKiogQm9keSBtZXNzYWdlIChzdHJpbmcgb3IgSlNYKSAqL1xuICBtZXNzYWdlOiBSZWFjdC5SZWFjdE5vZGVcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdGhlIGNvbmZpcm0gYnV0dG9uIGlzIGNsaWNrZWQuIE1heSByZXR1cm4gYSBwcm9taXNlIOKAlFxuICAgKiB0aGUgZGlhbG9nIHNob3dzIGEgcGVuZGluZyBzcGlubmVyIHVudGlsIGl0IHJlc29sdmVzLlxuICAgKiBPbiByZWplY3Rpb24gdGhlIGRpYWxvZyBzdGF5cyBvcGVuIGFuZCB0aGUgZXJyb3IgcHJvcGFnYXRlcztcbiAgICogY2FsbGVycyBoYW5kbGUgdGhlaXIgb3duIGVycm9yIGRpc3BsYXkgaW5zaWRlIGBvbkNvbmZpcm1gLlxuICAgKi9cbiAgb25Db25maXJtOiAoKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPlxuICAvKiogRmlyZWQgb24gdGhlIENhbmNlbCBidXR0b24gb3IgdGhlIEVzY2FwZSBrZXkgKi9cbiAgb25DYW5jZWw6ICgpID0+IHZvaWRcbiAgLyoqIENvbmZpcm0gYnV0dG9uIGxhYmVsICovXG4gIGxhYmVsPzogUmVhY3QuUmVhY3ROb2RlXG4gIC8qKiBCb290c3RyYXAgY29sb3IgdmFyaWFudCBmb3IgdGhlIGNvbmZpcm0gYnV0dG9uLCBoZWFkZXIgZG90LCBhbmQgbWVzc2FnZSBydWxlICovXG4gIHZhcmlhbnQ/OiBDb25maXJtRGlhbG9nVmFyaWFudFxuICAvKiogRXh0cmEgQ1NTIGNsYXNzZXMgb24gdGhlIGRpYWxvZyBlbGVtZW50ICovXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICBDb25maXJtRGlhbG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFplcm8tZGVwZW5kZW5jeSBCb290c3RyYXAgNSBjb25maXJtYXRpb24gZGlhbG9nLlxuICpcbiAqIFJlbmRlcnMgc3RhbmRhcmQgYC5tb2RhbGAgbWFya3VwIHBvcnRhbGVkIHRvIGBkb2N1bWVudC5ib2R5YCB3aXRoIGl0cyBvd25cbiAqIGJhY2tkcm9wIOKAlCBubyByZWFjdC1ib290c3RyYXAgcmVxdWlyZWQuIEJhY2tkcm9wIGNsaWNrcyBkbyBub3RoaW5nO1xuICogRXNjYXBlIGZpcmVzIGBvbkNhbmNlbGA7IGZvY3VzIGlzIHRyYXBwZWQgaW5zaWRlIHRoZSBkaWFsb2cgYW5kIGxhbmRzIG9uXG4gKiB0aGUgY29uZmlybSBidXR0b24gb24gb3Blbi4gQm9keSBzY3JvbGwgaXMgbG9ja2VkIHdoaWxlIHNob3duLlxuICpcbiAqICoqSW1wb3J0YW50OioqIHRoZSBhY2NvbXBhbnlpbmcgQ1NTICoqbXVzdCoqIGJlIGltcG9ydGVkIGZvciB0aGUgcHJlbWl1bVxuICogc3R5bGluZyAoYmFja2Ryb3AsIHJhZGl1cywgaGVhZGVyIGRvdCwgbWVzc2FnZSBydWxlKTpcbiAqIGBgYGpzXG4gKiBpbXBvcnQgJ3JlYWN0LWJvb3RzdHJhcC1wbHVnaW5zL2Nzcy9wbHVnaW5zLmNzcydcbiAqIGBgYFxuICovXG5jb25zdCBDb25maXJtRGlhbG9nID0gUmVhY3QuZm9yd2FyZFJlZjxIVE1MRGl2RWxlbWVudCwgQ29uZmlybURpYWxvZ1Byb3BzPigoe1xuICBzaG93ID0gZmFsc2UsXG4gIHRpdGxlLFxuICBtZXNzYWdlLFxuICBvbkNvbmZpcm0sXG4gIG9uQ2FuY2VsLFxuICBsYWJlbCA9ICdDb25maXJtJyxcbiAgdmFyaWFudCA9ICdwcmltYXJ5JyxcbiAgY2xhc3NOYW1lLFxufSwgcmVmKSA9PiB7XG4gIGNvbnN0IFtpc1BlbmRpbmcsIHNldElzUGVuZGluZ10gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgdGl0bGVJZCA9IFJlYWN0LnVzZUlkKClcbiAgY29uc3QgbWVzc2FnZUlkID0gUmVhY3QudXNlSWQoKVxuICBjb25zdCBkaWFsb2dSZWYgPSBSZWFjdC51c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGNvbmZpcm1SZWYgPSBSZWFjdC51c2VSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGNvbmZpcm1SdW5SZWYgPSBSZWFjdC51c2VSZWYoMClcblxuICAvKiBGb2N1cyB0aGUgcHJpbWFyeSBhY3Rpb24gd2hlbiB0aGUgZGlhbG9nIG9wZW5zICovXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHNob3cpIGNvbmZpcm1SZWYuY3VycmVudD8uZm9jdXMoKVxuICB9LCBbc2hvd10pXG5cbiAgLyogUmVzZXQgcGVuZGluZyB3aGVuIGNsb3NlZCDigJQgaW52YWxpZGF0ZXMgYW55IGluLWZsaWdodCBjb25maXJtICovXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFzaG93KSB7XG4gICAgICBjb25maXJtUnVuUmVmLmN1cnJlbnQrK1xuICAgICAgc2V0SXNQZW5kaW5nKGZhbHNlKVxuICAgIH1cbiAgfSwgW3Nob3ddKVxuXG4gIC8qIEJvZHkgc2Nyb2xsIGxvY2sgd2hpbGUgc2hvd24gKGNvbXBlbnNhdGUgc2Nyb2xsYmFyIGRpc2FwcGVhcmFuY2UpICovXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFzaG93KSByZXR1cm5cbiAgICBjb25zdCB7IGJvZHkgfSA9IGRvY3VtZW50XG4gICAgY29uc3Qgc2Nyb2xsYmFyV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCAtIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aFxuICAgIGNvbnN0IHByZXZPdmVyZmxvdyA9IGJvZHkuc3R5bGUub3ZlcmZsb3dcbiAgICBjb25zdCBwcmV2UGFkZGluZ1JpZ2h0ID0gYm9keS5zdHlsZS5wYWRkaW5nUmlnaHRcbiAgICBib2R5LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbidcbiAgICBpZiAoc2Nyb2xsYmFyV2lkdGggPiAwKSBib2R5LnN0eWxlLnBhZGRpbmdSaWdodCA9IGAke3Njcm9sbGJhcldpZHRofXB4YFxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBib2R5LnN0eWxlLm92ZXJmbG93ID0gcHJldk92ZXJmbG93XG4gICAgICBib2R5LnN0eWxlLnBhZGRpbmdSaWdodCA9IHByZXZQYWRkaW5nUmlnaHRcbiAgICB9XG4gIH0sIFtzaG93XSlcblxuICAvKiBFc2NhcGUgY2xvc2VzICh1bmxlc3MgYSBjb25maXJtIGlzIHBlbmRpbmcpICovXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFzaG93KSByZXR1cm5cbiAgICBjb25zdCBoYW5kbGVLZXkgPSAoZTogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKGUua2V5ID09PSAnRXNjYXBlJyAmJiAhaXNQZW5kaW5nKSBvbkNhbmNlbCgpXG4gICAgfVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXkpXG4gICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXkpXG4gIH0sIFtzaG93LCBpc1BlbmRpbmcsIG9uQ2FuY2VsXSlcblxuICAvKiBUYWIgLyBTaGlmdCtUYWIgY3ljbGUgd2l0aGluIHRoZSBkaWFsb2cgKi9cbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IChlOiBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGlmIChlLmtleSAhPT0gJ1RhYicpIHJldHVyblxuICAgIGNvbnN0IHJvb3QgPSBkaWFsb2dSZWYuY3VycmVudFxuICAgIGlmICghcm9vdCkgcmV0dXJuXG4gICAgY29uc3QgZm9jdXNhYmxlcyA9IEFycmF5LmZyb20oXG4gICAgICByb290LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KCdidXR0b24sIFtocmVmXSwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD1cIi0xXCJdKScpXG4gICAgKS5maWx0ZXIoKGVsKSA9PiAhZWwuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKVxuICAgIGlmICghZm9jdXNhYmxlcy5sZW5ndGgpIHJldHVyblxuICAgIGNvbnN0IGZpcnN0ID0gZm9jdXNhYmxlc1swXVxuICAgIGNvbnN0IGxhc3QgPSBmb2N1c2FibGVzW2ZvY3VzYWJsZXMubGVuZ3RoIC0gMV1cbiAgICBpZiAoZS5zaGlmdEtleSAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBmaXJzdCkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBsYXN0LmZvY3VzKClcbiAgICB9IGVsc2UgaWYgKCFlLnNoaWZ0S2V5ICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGxhc3QpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgZmlyc3QuZm9jdXMoKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNvbmZpcm1DbGljayA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAoaXNQZW5kaW5nKSByZXR1cm5cbiAgICBjb25zdCBydW5JZCA9ICsrY29uZmlybVJ1blJlZi5jdXJyZW50XG4gICAgc2V0SXNQZW5kaW5nKHRydWUpXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IG9uQ29uZmlybSgpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChjb25maXJtUnVuUmVmLmN1cnJlbnQgPT09IHJ1bklkKSBzZXRJc1BlbmRpbmcoZmFsc2UpXG4gICAgfVxuICB9XG5cbiAgaWYgKCFzaG93IHx8IHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIGNyZWF0ZVBvcnRhbChcbiAgICA8PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb25maXJtZGlhbG9nLWJhY2tkcm9wXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cbiAgICAgIDxkaXZcbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PXt0aXRsZUlkfVxuICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PXttZXNzYWdlSWR9XG4gICAgICAgIGNsYXNzTmFtZT17Y24oJ21vZGFsIGNvbmZpcm1kaWFsb2cgZC1ibG9jaycsIGNsYXNzTmFtZSl9XG4gICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgID5cbiAgICAgICAgPGRpdiByZWY9e2RpYWxvZ1JlZn0gY2xhc3NOYW1lPVwibW9kYWwtZGlhbG9nIG1vZGFsLWRpYWxvZy1jZW50ZXJlZCBtb2RhbC1zbVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibW9kYWwtY29udGVudFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb25maXJtZGlhbG9nLWhlYWRlclwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2NuKCdjb25maXJtZGlhbG9nLWRvdCcsIGBiZy0ke3ZhcmlhbnR9YCl9IGFyaWEtaGlkZGVuPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgICAgIDxoNSBjbGFzc05hbWU9XCJtb2RhbC10aXRsZVwiIGlkPXt0aXRsZUlkfT57dGl0bGV9PC9oNT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBpZD17bWVzc2FnZUlkfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NuKCdjb25maXJtZGlhbG9nLWJvZHkgYm9yZGVyLXN0YXJ0IGJvcmRlci0zJywgYGJvcmRlci0ke3ZhcmlhbnR9YCl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHttZXNzYWdlfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbmZpcm1kaWFsb2ctZm9vdGVyXCI+XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzTmFtZT1cImJ0biBidG4tbGlnaHRcIiBvbkNsaWNrPXtvbkNhbmNlbH0gZGlzYWJsZWQ9e2lzUGVuZGluZ30+XG4gICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgcmVmPXtjb25maXJtUmVmfVxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y24oJ2J0bicsIGBidG4tJHt2YXJpYW50fWAsICdmdy1zZW1pYm9sZCcpfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNvbmZpcm1DbGlja31cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNQZW5kaW5nfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2lzUGVuZGluZyAmJiA8c3BhbiBjbGFzc05hbWU9XCJzcGlubmVyLWJvcmRlciBzcGlubmVyLWJvcmRlci1zbSBtZS0yXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz59XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvPixcbiAgICBkb2N1bWVudC5ib2R5XG4gIClcbn0pXG5cbkNvbmZpcm1EaWFsb2cuZGlzcGxheU5hbWUgPSAnQ29uZmlybURpYWxvZydcblxuZXhwb3J0IHsgQ29uZmlybURpYWxvZyB9XG5leHBvcnQgZGVmYXVsdCBDb25maXJtRGlhbG9nXG4iXX0=
@@ -1,2 +0,0 @@
1
- 'use strict';var chunkNPQQDBFB_cjs=require('./chunk-NPQQDBFB.cjs'),i=require('react'),reactDom=require('react-dom'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var i__namespace=/*#__PURE__*/_interopNamespace(i);var Fe=["Su","Mo","Tu","We","Th","Fr","Sa"],$e=["January","February","March","April","May","June","July","August","September","October","November","December"],We=Array.from({length:60},(a,t)=>t),D=12,B=(a,t)=>new Date(a,t+1,0).getDate(),ce=(a,t)=>a!==null&&t!==null&&a.getFullYear()===t.getFullYear()&&a.getMonth()===t.getMonth()&&a.getDate()===t.getDate(),V=a=>{let[t]=new Date().toLocaleString("en-US",{timeZone:a,hour12:false}).split(", "),[l,u,p]=t.split("/").map(Number);return new Date(p,l-1,u)},_e=(a,t,l)=>!(t&&a<new Date(t.getFullYear(),t.getMonth(),t.getDate())||l&&a>new Date(l.getFullYear(),l.getMonth(),l.getDate())),Ue=(a,t)=>{let l=new Date(a,t,1).getDay(),u=B(a,t),p=[],f=B(a,t-1);for(let d=l-1;d>=0;d--){let y=f-d;p.push({day:y,date:new Date(a,t-1,y),isOutside:true});}for(let d=1;d<=u;d++)p.push({day:d,date:new Date(a,t,d),isOutside:false});let v=42-p.length;for(let d=1;d<=v;d++)p.push({day:d,date:new Date(a,t+1,d),isOutside:true});return p},q=(a,t,l)=>{if(!a||isNaN(a.getTime()))return "";let u=a.getFullYear(),p=String(a.getMonth()+1).padStart(2,"0"),f=String(a.getDate()).padStart(2,"0"),v=a.getHours(),d=String(a.getMinutes()).padStart(2,"0"),y=v>=12?"PM":"AM";v=v%12||12;let k=String(v).padStart(2,"0");if(l)return l.replace("yyyy",String(u)).replace("MM",p).replace("dd",f).replace("hh",k).replace("mm",d).replace("aa",y);switch(t){case "time":return `${k}:${d} ${y}`;case "datetime":return `${u}-${p}-${f} ${k}:${d} ${y}`;default:return `${u}-${p}-${f}`}},O=(a,t,l="date")=>({target:{value:a,name:t,type:l},preventDefault:()=>{},stopPropagation:()=>{},nativeEvent:null}),Ve={date:300,time:300,datetime:400,year:250},qe={date:280,time:220,datetime:440,year:280},ue={position:"fixed",top:0,left:0,width:"max-content",visibility:"hidden",zIndex:1070},Be=typeof window<"u"?i__namespace.useLayoutEffect:i__namespace.useEffect,Ke=a=>{if(!a)return document.documentElement;let t=a.parentElement;for(;t;){let l=window.getComputedStyle(t),u=l.overflowY||l.overflow;if(u==="auto"||u==="scroll")return t;t=t.parentElement;}return document.documentElement},Ge=(a,t,l)=>{if(!a)return {};let u=a.getBoundingClientRect(),p=t||300,f=window.innerHeight-u.bottom,v=u.top,d=f<p&&v>f,y=window.innerWidth<576?220:260,k=l||y;return {position:"fixed",top:d?Math.max(4,u.top-p-4):u.bottom+4,left:Math.max(4,Math.min(u.left,window.innerWidth-k-4)),minWidth:y,width:"max-content",maxWidth:window.innerWidth-8,zIndex:1070}},me=i__namespace.forwardRef(({className:a,mode:t="date",calendar:l=false,selected:u,value:p,onChange:f,dateFormat:v,placeholderText:d,size:y,isClearable:k=false,disabled:K=false,minDate:pe,maxDate:fe,timezone:F="Africa/Kampala",id:ge,name:N,...be},$)=>{let Q=e=>{if(!e)return null;if(e instanceof Date)return isNaN(e.getTime())?null:e;if(typeof e=="string"||typeof e=="number"){let n=new Date(e);if(!isNaN(n.getTime()))return n;if(typeof e=="string"){let m=e.match(/^(\d{1,2}):(\d{2})\s*(AM|PM)$/i);if(m){let r=parseInt(m[1],10),g=parseInt(m[2],10),U=m[3].toUpperCase();r===12&&U==="AM"&&(r=0),r!==12&&U==="PM"&&(r+=12);let ne=new Date;return new Date(ne.getFullYear(),ne.getMonth(),ne.getDate(),r,g,0,0)}let c=e.match(/^(\d{4})-(\d{2})-(\d{2})\s+(\d{1,2}):(\d{2})\s*(AM|PM)$/i);if(c){let r=parseInt(c[4],10),g=parseInt(c[5],10),U=c[6].toUpperCase();return r===12&&U==="AM"&&(r=0),r!==12&&U==="PM"&&(r+=12),new Date(parseInt(c[1]),parseInt(c[2])-1,parseInt(c[3]),r,g,0,0)}}return null}return null},o=i__namespace.useMemo(()=>Q(u??p),[u instanceof Date?u.getTime():u,p instanceof Date?p.getTime():p]),ae=l||t==="date"||t==="datetime",S=!l&&(t==="time"||t==="datetime"),[E,I]=i__namespace.useState(false),[P,G]=i__namespace.useState(()=>o?o.getFullYear():V(F).getFullYear()),[h,X]=i__namespace.useState(()=>o?o.getMonth():V(F).getMonth()),[w,R]=i__namespace.useState(o),[x,re]=i__namespace.useState(()=>o&&o.getHours()%12||12),[C,se]=i__namespace.useState(()=>o?o.getMinutes():0),[T,ie]=i__namespace.useState(()=>o&&o.getHours()>=12?"PM":"AM"),[W,H]=i__namespace.useState(false),[ee,z]=i__namespace.useState(()=>Math.floor((o?o.getFullYear():V(F).getFullYear())/D)*D),[ve,oe]=i__namespace.useState(ue),L=i__namespace.useRef(null),Y=i__namespace.useRef(null),J=i__namespace.useRef(null);i__namespace.useEffect(()=>{let e=document.createElement("div");return e.className="datepicker-portal-root",document.body.appendChild(e),J.current=e,()=>{e.parentNode&&document.body.removeChild(e),J.current=null;}},[]),i__namespace.useEffect(()=>{o&&!isNaN(o.getTime())?(R(o),G(o.getFullYear()),X(o.getMonth()),re(o.getHours()%12||12),se(o.getMinutes()),ie(o.getHours()>=12?"PM":"AM"),z(Math.floor(o.getFullYear()/D)*D)):R(null);},[o]),Be(()=>{if(!E){oe(ue);return}let e=()=>Y.current?Y.current.getBoundingClientRect().height:Ve[W?"year":t]||300,n=()=>Y.current?Y.current.getBoundingClientRect().width:qe[W?"year":t]||280,m=Ke(L.current),c=()=>{oe(Ge(L.current,e(),n()));};c();let r=0,g=()=>{cancelAnimationFrame(r),r=requestAnimationFrame(c);};return m.addEventListener("scroll",g,{passive:true}),window.addEventListener("resize",g),()=>{cancelAnimationFrame(r),m.removeEventListener("scroll",g),window.removeEventListener("resize",g);}},[E,t,W]),i__namespace.useEffect(()=>{if(!E)return;let e=n=>{Y.current&&!Y.current.contains(n.target)&&L.current&&!L.current.contains(n.target)&&(I(false),H(false));};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[E]);let A=(e,n,m,c)=>{let r=new Date(e),g=n%12;return c==="PM"&&(g+=12),g===12&&c==="AM"&&(g=0),r.setHours(g,m,0,0),r},_=e=>{if(!e||isNaN(e.getTime()))return;let n=q(e,t,v);f?.(O(n,N||"",t));},ye=e=>{if(!e){f?.(O(null,N||"",t)),I(false),H(false);return}_(e),t==="date"&&(I(false),H(false));},De=e=>{if(R(e),t==="date"||l)ye(e);else if(t==="datetime"){let n=A(e,x,C,T);_(n);}},he=Ue(P,h),we=()=>{let e=P,n=h;h===0?(e=P-1,n=11):n=h-1,G(e),X(n);let m=w||new Date,c=B(e,n),r=new Date(e,n,Math.min(m.getDate(),c));R(r),_(S?A(r,x,C,T):r);},Me=()=>{let e=P,n=h;h===11?(e=P+1,n=0):n=h+1,G(e),X(n);let m=w||new Date,c=B(e,n),r=new Date(e,n,Math.min(m.getDate(),c));R(r),_(S?A(r,x,C,T):r);},ke=V(F),j=Q(pe),Z=Q(fe),Ne=j?new Date(j.getFullYear(),j.getMonth(),j.getDate()):null,Se=Z?new Date(Z.getFullYear(),Z.getMonth(),Z.getDate()):null,Ee=e=>{if(re(e),S){let n=A(w||new Date,e,C,T);f?.(O(q(n,t,v),N||"",t));}},Pe=e=>{if(se(e),S){let n=A(w||new Date,x,e,T);f?.(O(q(n,t,v),N||"",t));}},Re=e=>{if(ie(e),S){let n=A(w||new Date,x,C,e);f?.(O(q(n,t,v),N||"",t));}},xe=()=>{z(Math.floor(P/D)*D),H(true);},Ce=e=>{G(e),H(false);let n=w||new Date,m=B(e,h),c=new Date(e,h,Math.min(n.getDate(),m));R(c),_(S?A(c,x,C,T):c);},te=Math.floor(ee/D)*D,Te=Array.from({length:D},(e,n)=>te+n),Ye=e=>{e.stopPropagation(),R(null),f?.(O(null,N||""));},Ae=e=>{e.key==="Escape"&&(I(false),H(false),L.current?.blur()),(e.key==="ArrowDown"||e.key==="Enter"||e.key===" ")&&(e.preventDefault(),I(true));},Ie=i__namespace.useCallback(e=>{L.current=e,typeof $=="function"?$(e):$&&($.current=e);},[$]),He=d??(t==="time"?"Select time":t==="datetime"?"Select date & time":"Select date"),le=jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[W&&ae&&jsxRuntime.jsxs("div",{className:"datepicker-year-picker p-3",children:[jsxRuntime.jsxs("div",{className:"d-flex align-items-center justify-content-between mb-2",children:[jsxRuntime.jsx("button",{type:"button",className:"btn btn-sm btn-outline-secondary border-0 px-1",onClick:()=>z(ee-D),"aria-label":"Previous years",children:"\u2039"}),jsxRuntime.jsxs("span",{className:"fw-semibold small",children:[te," \u2013 ",te+D-1]}),jsxRuntime.jsx("button",{type:"button",className:"btn btn-sm btn-outline-secondary border-0 px-1",onClick:()=>z(ee+D),"aria-label":"Next years",children:"\u203A"})]}),jsxRuntime.jsx("div",{className:"datepicker-year-grid",children:Te.map(e=>{let n=e===V(F).getFullYear(),m=w&&e===w.getFullYear();return jsxRuntime.jsx("button",{type:"button",className:chunkNPQQDBFB_cjs.a("datepicker-year-cell btn btn-sm",m&&"btn-primary",!m&&n&&"btn-outline-primary",!m&&!n&&"btn-light border"),onClick:()=>Ce(e),children:e},e)})})]}),!W&&jsxRuntime.jsx(jsxRuntime.Fragment,{children:jsxRuntime.jsxs("div",{className:chunkNPQQDBFB_cjs.a("d-flex",t==="datetime"?"flex-row":"flex-column"),children:[ae&&jsxRuntime.jsxs("div",{className:"datepicker-calendar p-2",children:[jsxRuntime.jsxs("div",{className:"d-flex align-items-center justify-content-between mb-2",children:[jsxRuntime.jsx("button",{type:"button",className:"btn btn-sm btn-outline-secondary border-0 px-1",onClick:we,"aria-label":"Previous month",children:"\u2039"}),jsxRuntime.jsxs("div",{className:"d-flex align-items-center gap-1",children:[jsxRuntime.jsx("span",{className:"fw-semibold small",children:$e[h]}),jsxRuntime.jsx("button",{type:"button",className:"btn btn-sm btn-link text-decoration-none text-primary fw-semibold small p-0",onClick:xe,"aria-label":"Choose year",children:P})]}),jsxRuntime.jsx("button",{type:"button",className:"btn btn-sm btn-outline-secondary border-0 px-1",onClick:Me,"aria-label":"Next month",children:"\u203A"})]}),jsxRuntime.jsx("div",{className:"datepicker-days-header",children:Fe.map(e=>jsxRuntime.jsx("div",{className:"datepicker-day-label",children:e},e))}),jsxRuntime.jsx("div",{className:"datepicker-days-grid",children:he.map((e,n)=>{let m=ce(e.date,ke),c=w&&ce(e.date,w),r=_e(e.date,Ne,Se),g=e.isOutside||!r;return jsxRuntime.jsx("button",{type:"button",disabled:g,className:chunkNPQQDBFB_cjs.a("datepicker-day",m&&"datepicker-day--today",c&&"datepicker-day--selected",e.isOutside&&"datepicker-day--outside",!r&&"datepicker-day--disabled"),onClick:()=>De(e.date),tabIndex:e.isOutside?-1:0,children:e.day},n)})})]}),t==="datetime"&&jsxRuntime.jsx("div",{className:"vr mx-1 my-2"}),S&&jsxRuntime.jsxs("div",{className:"datepicker-time p-2 d-flex flex-column",style:{minWidth:180},children:[t==="datetime"&&jsxRuntime.jsx("div",{className:"small fw-semibold text-muted text-center mb-1",children:"Time"}),jsxRuntime.jsxs("div",{className:"d-flex justify-content-center gap-2",children:[jsxRuntime.jsxs("div",{className:"datepicker-time-col",children:[jsxRuntime.jsx("div",{className:"datepicker-time-col-label",children:"Hour"}),jsxRuntime.jsx("div",{className:"datepicker-time-col-scroll",children:Array.from({length:12},(e,n)=>n+1).map(e=>jsxRuntime.jsx("button",{type:"button",className:chunkNPQQDBFB_cjs.a("datepicker-time-item",e===x&&"active"),onClick:()=>Ee(e),children:String(e).padStart(2,"0")},e))})]}),jsxRuntime.jsx("span",{className:"datepicker-time-separator",children:":"}),jsxRuntime.jsxs("div",{className:"datepicker-time-col",children:[jsxRuntime.jsx("div",{className:"datepicker-time-col-label",children:"Min"}),jsxRuntime.jsx("div",{className:"datepicker-time-col-scroll",children:We.map(e=>jsxRuntime.jsx("button",{type:"button",className:chunkNPQQDBFB_cjs.a("datepicker-time-item",e===C&&"active"),onClick:()=>Pe(e),children:String(e).padStart(2,"0")},e))})]}),jsxRuntime.jsxs("div",{className:"datepicker-time-col",children:[jsxRuntime.jsx("div",{className:"datepicker-time-col-label",children:"\xA0"}),jsxRuntime.jsx("div",{className:"d-flex flex-column gap-1 mt-1",children:["AM","PM"].map(e=>jsxRuntime.jsx("button",{type:"button",className:chunkNPQQDBFB_cjs.a("datepicker-time-item","datepicker-time-item--ampm",T===e&&"active"),onClick:()=>Re(e),children:e},e))})]})]})]})]})})]}),Le=jsxRuntime.jsx("div",{ref:Y,className:chunkNPQQDBFB_cjs.a("datepicker-popover card border shadow-sm",t==="datetime"&&"datepicker-popover--wide"),style:ve,children:le});return l?jsxRuntime.jsx("div",{className:chunkNPQQDBFB_cjs.a("datepicker-calendar-inline card border shadow-sm",a),children:le}):jsxRuntime.jsxs("div",{className:"datepicker-wrapper position-relative d-inline-block w-100",style:{minWidth:0},children:[jsxRuntime.jsxs("div",{className:"position-relative",children:[jsxRuntime.jsx("input",{ref:Ie,id:ge,name:N,type:"text",readOnly:true,disabled:K,className:chunkNPQQDBFB_cjs.a("form-control",y==="sm"&&"form-control-sm",y==="lg"&&"form-control-lg","pe-5",a),placeholder:He,value:q(o,t,v),onClick:()=>!K&&I(!E),onKeyDown:Ae,"aria-haspopup":"dialog","aria-expanded":E,autoComplete:"off",...be}),k&&o&&!K&&jsxRuntime.jsx("button",{type:"button",className:"btn btn-sm btn-link position-absolute top-50 end-0 translate-middle-y pe-2 text-secondary",style:{zIndex:2},onClick:Ye,tabIndex:-1,"aria-label":"Clear",children:"\xD7"})]}),E&&!K&&J.current&&reactDom.createPortal(Le,J.current)]})});me.displayName="DatePicker";var je=me;exports.a=me;exports.b=je;//# sourceMappingURL=chunk-XVAXFFB3.cjs.map
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21wb25lbnRzL0RhdGVQaWNrZXIudHN4Il0sIm5hbWVzIjpbIkRBWVNfT0ZfV0VFSyIsIk1PTlRIUyIsIk1JTlVURVMiLCJfIiwiaSIsIllFQVJTX1BFUl9QQUdFIiwiZGF5c0luTW9udGgiLCJ5ZWFyIiwibW9udGgiLCJpc1NhbWVEYXkiLCJiIiwiZ2V0VHpUb2RheSIsInR6IiwiZGF0ZVN0ciIsImRheSIsImlzRGF0ZUluUmFuZ2UiLCJkYXRlIiwibWluIiwibWF4IiwiYnVpbGRDYWxlbmRhckdyaWQiLCJmaXJzdERheSIsInRvdGFsRGF5cyIsImNlbGxzIiwicHJldk1vbnRoRGF5cyIsInJlbWFpbmluZyIsImZvcm1hdFZhbHVlIiwibW9kZSIsImZtdCIsInkiLCJNIiwiZCIsImgiLCJtIiwiYSIsImhoIiwibWFrZUV2ZW50IiwidmFsdWUiLCJpbnB1dE5hbWUiLCJ0eXBlIiwiUE9QT1ZFUl9HVUVTUyIsIlBPUE9WRVJfV0lEVEhfR1VFU1MiLCJQUkVfUE9TSVRJT05fU1RZTEUiLCJ1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0IiwiZ2V0U2Nyb2xsUGFyZW50IiwiZWwiLCJwYXJlbnQiLCJzdHlsZSIsIm92ZXJmbG93WSIsImNhbGNQb3BvdmVyU3R5bGUiLCJpbnB1dEVsIiwicG9wb3ZlckhlaWdodCIsInBvcG92ZXJXaWR0aCIsInJlY3QiLCJzcGFjZUJlbG93Iiwic3BhY2VBYm92ZSIsInBsYWNlQWJvdmUiLCJtaW5XIiwidyIsIkRhdGVQaWNrZXIiLCJjbGFzc05hbWUiLCJjYWxlbmRhciIsInNlbGVjdGVkIiwib25DaGFuZ2UiLCJkYXRlRm9ybWF0IiwicGxhY2Vob2xkZXJUZXh0Iiwic2l6ZSIsImlzQ2xlYXJhYmxlIiwiZGlzYWJsZWQiLCJtaW5EYXRlIiwibWF4RGF0ZSIsInRpbWV6b25lIiwiaWQiLCJuYW1lIiwicHJvcHMiLCJyZWYiLCJyZXNvbHZlVmFsdWUiLCJ2IiwidGltZU1hdGNoIiwiYXAiLCJub3ciLCJkdE1hdGNoIiwicmVzb2x2ZWRWYWx1ZSIsInNob3dDYWxlbmRhciIsInNob3dUaW1lIiwiaXNPcGVuIiwic2V0SXNPcGVuIiwidmlld1llYXIiLCJzZXRWaWV3WWVhciIsInZpZXdNb250aCIsInNldFZpZXdNb250aCIsInRlbXBEYXRlIiwic2V0VGVtcERhdGUiLCJ0ZW1wSG91cnMiLCJzZXRUZW1wSG91cnMiLCJ0ZW1wTWlucyIsInNldFRlbXBNaW5zIiwidGVtcEFtUG0iLCJzZXRUZW1wQW1QbSIsInNob3dZZWFyUGlja2VyIiwic2V0U2hvd1llYXJQaWNrZXIiLCJ5ZWFyUGFnZSIsInNldFllYXJQYWdlIiwicG9wb3ZlclN0eWxlIiwic2V0UG9wb3ZlclN0eWxlIiwiaW5wdXRSZWYiLCJwb3BvdmVyUmVmIiwicG9ydGFsUmVmIiwiZ2V0SGVpZ2h0IiwiZ2V0V2lkdGgiLCJzY3JvbGxQYXJlbnQiLCJ1cGRhdGUiLCJyYWYiLCJzY2hlZHVsZVVwZGF0ZSIsImhhbmRsZXIiLCJlIiwiYnVpbGREYXRlIiwiYmFzZSIsImgxMiIsIm1pbnMiLCJhbXBtIiwiZmlyZUNoYW5nZSIsImZvcm1hdHRlZCIsImNvbW1pdCIsImNvbW1pdERhdGVPbmx5IiwiZ3JpZCIsImhhbmRsZVByZXZNb250aCIsIm5ld1kiLCJuZXdNIiwibWF4RCIsIm5ld0RhdGUiLCJoYW5kbGVOZXh0TW9udGgiLCJ0b2RheSIsInJlc29sdmVkTWluIiwicmVzb2x2ZWRNYXgiLCJtaW5EdCIsIm1heER0IiwiaGFuZGxlSG91ckNoYW5nZSIsImhhbmRsZU1pbkNoYW5nZSIsImhhbmRsZUFtUG1DaGFuZ2UiLCJvcGVuWWVhclBpY2tlciIsImhhbmRsZVllYXJTZWxlY3QiLCJ5ZWFyUGFnZVN0YXJ0IiwieWVhcnMiLCJoYW5kbGVDbGVhciIsImhhbmRsZUlucHV0S2V5RG93biIsIm1lcmdlSW5wdXRSZWYiLCJub2RlIiwicGxhY2Vob2xkZXIiLCJwaWNrZXJCb2R5IiwianN4cyIsIkZyYWdtZW50IiwianN4IiwiaXNDdXJyZW50WWVhciIsImlzU2VsZWN0ZWQiLCJjbiIsImNlbGwiLCJpc1RvZGF5IiwiaW5SYW5nZSIsImlzRGlzYWJsZWREYXkiLCJwb3BvdmVyIiwiY3JlYXRlUG9ydGFsIiwiRGF0ZVBpY2tlcl9kZWZhdWx0Il0sIm1hcHBpbmdzIjoic2dCQTBETUEsRUFBQUEsQ0FBZSxDQUFDLElBQUEsQ0FBTSxJQUFBLENBQU0sSUFBQSxDQUFNLElBQUEsQ0FBTSxJQUFBLENBQU0sSUFBQSxDQUFNLElBQUksQ0FBQSxDQUN4REMsRUFBQUEsQ0FBUyxDQUNiLFNBQUEsQ0FBVyxXQUFZLE9BQUEsQ0FBUyxPQUFBLENBQVMsS0FBQSxDQUFPLE1BQUEsQ0FDaEQsT0FBUSxRQUFBLENBQVUsV0FBQSxDQUFhLFNBQUEsQ0FBVyxVQUFBLENBQVksVUFDeEQsQ0FBQSxDQUNNQyxFQUFBQSxDQUFVLEtBQUEsQ0FBTSxLQUFLLENBQUUsTUFBQSxDQUFRLEVBQUcsQ0FBQSxDQUFHLENBQUNDLENBQUFBLENBQUdDLENBQUFBLEdBQU1BLENBQUMsQ0FBQSxDQUNoREMsRUFBaUIsRUFBQSxDQU1qQkMsQ0FBQUEsQ0FBYyxDQUFDQyxDQUFBQSxDQUFjQyxJQUNqQyxJQUFJLElBQUEsQ0FBS0QsQ0FBQUEsQ0FBTUMsQ0FBQUEsQ0FBUSxFQUFHLENBQUMsQ0FBQSxDQUFFLE9BQUEsRUFBUSxDQUVqQ0MsR0FBWSxDQUFDLENBQUEsQ0FBZ0JDLENBQUFBLEdBQ2pDLENBQUEsR0FBTSxNQUFRQSxDQUFBQSxHQUFNLElBQUEsRUFDcEIsQ0FBQSxDQUFFLFdBQUEsRUFBWSxHQUFNQSxDQUFBQSxDQUFFLFdBQUEsRUFBWSxFQUNsQyxFQUFFLFFBQUEsRUFBUyxHQUFNQSxDQUFBQSxDQUFFLFFBQUEsSUFDbkIsQ0FBQSxDQUFFLE9BQUEsRUFBUSxHQUFNQSxDQUFBQSxDQUFFLFNBQVEsQ0FPdEJDLENBQUFBLENBQWNDLENBQUFBLEVBQXFCLENBQ3ZDLEdBQU0sQ0FBQ0MsQ0FBTyxDQUFBLENBQUksSUFBSSxJQUFBLEVBQUssQ0FBRSxjQUFBLENBQWUsT0FBQSxDQUFTLENBQUUsUUFBQSxDQUFVRCxDQUFBQSxDQUFJLE1BQUEsQ0FBUSxLQUFNLENBQUMsQ0FBQSxDQUFFLEtBQUEsQ0FBTSxJQUFJLENBQUEsQ0FDMUYsQ0FBQ0osQ0FBQUEsQ0FBT00sQ0FBQUEsQ0FBS1AsQ0FBSSxFQUFJTSxDQUFBQSxDQUFRLEtBQUEsQ0FBTSxHQUFHLENBQUEsQ0FBRSxJQUFJLE1BQU0sQ0FBQSxDQUN4RCxPQUFPLElBQUksS0FBS04sQ0FBQUEsQ0FBTUMsQ0FBQUEsQ0FBUSxDQUFBLENBQUdNLENBQUcsQ0FDdEMsQ0FBQSxDQUVNQyxFQUFBQSxDQUFnQixDQUFDQyxDQUFBQSxDQUFZQyxFQUFrQkMsQ0FBQUEsR0FDL0MsRUFBQUQsQ0FBQUEsRUFBT0QsQ0FBQUEsQ0FBTyxJQUFJLElBQUEsQ0FBS0MsQ0FBQUEsQ0FBSSxXQUFBLEVBQVksQ0FBR0EsRUFBSSxRQUFBLEVBQVMsQ0FBR0EsQ0FBQUEsQ0FBSSxPQUFBLEVBQVMsQ0FBQSxFQUN2RUMsQ0FBQUEsRUFBT0YsQ0FBQUEsQ0FBTyxJQUFJLElBQUEsQ0FBS0UsQ0FBQUEsQ0FBSSxXQUFBLEVBQVksQ0FBR0EsRUFBSSxRQUFBLEVBQVMsQ0FBR0EsQ0FBQUEsQ0FBSSxPQUFBLEVBQVMsQ0FBQSxDQUFBLENBVXZFQyxFQUFBQSxDQUFvQixDQUFDWixDQUFBQSxDQUFjQyxDQUFBQSxHQUFrQyxDQUN6RSxJQUFNWSxDQUFBQSxDQUFXLElBQUksSUFBQSxDQUFLYixDQUFBQSxDQUFNQyxDQUFBQSxDQUFPLENBQUMsRUFBRSxNQUFBLEVBQU8sQ0FDM0NhLENBQUFBLENBQVlmLENBQUFBLENBQVlDLEVBQU1DLENBQUssQ0FBQSxDQUNuQ2MsQ0FBQUEsQ0FBd0IsRUFBQyxDQUV6QkMsQ0FBQUEsQ0FBZ0JqQixDQUFBQSxDQUFZQyxDQUFBQSxDQUFNQyxFQUFRLENBQUMsQ0FBQSxDQUNqRCxJQUFBLElBQVNKLENBQUFBLENBQUlnQixFQUFXLENBQUEsQ0FBR2hCLENBQUFBLEVBQUssQ0FBQSxDQUFHQSxDQUFBQSxFQUFBQSxDQUFLLENBQ3RDLElBQU1VLENBQUFBLENBQU1TLENBQUFBLENBQWdCbkIsQ0FBQUEsQ0FDNUJrQixFQUFNLElBQUEsQ0FBSyxDQUFFLEdBQUEsQ0FBQVIsQ0FBQUEsQ0FBSyxLQUFNLElBQUksSUFBQSxDQUFLUCxDQUFBQSxDQUFNQyxDQUFBQSxDQUFRLEVBQUdNLENBQUcsQ0FBQSxDQUFHLFNBQUEsQ0FBVyxJQUFLLENBQUMsRUFDM0UsQ0FFQSxJQUFBLElBQVMsQ0FBQSxDQUFJLENBQUEsQ0FBRyxDQUFBLEVBQUtPLENBQUFBLENBQVcsQ0FBQSxFQUFBLENBQzlCQyxFQUFNLElBQUEsQ0FBSyxDQUFFLEdBQUEsQ0FBSyxDQUFBLENBQUcsS0FBTSxJQUFJLElBQUEsQ0FBS2YsQ0FBQUEsQ0FBTUMsQ0FBQUEsQ0FBTyxDQUFDLENBQUEsQ0FBRyxTQUFBLENBQVcsS0FBTSxDQUFDLEVBR3pFLElBQU1nQixDQUFBQSxDQUFZLEVBQUEsQ0FBS0YsQ0FBQUEsQ0FBTSxPQUM3QixJQUFBLElBQVMsQ0FBQSxDQUFJLENBQUEsQ0FBRyxDQUFBLEVBQUtFLEVBQVcsQ0FBQSxFQUFBLENBQzlCRixDQUFBQSxDQUFNLElBQUEsQ0FBSyxDQUFFLElBQUssQ0FBQSxDQUFHLElBQUEsQ0FBTSxJQUFJLElBQUEsQ0FBS2YsQ0FBQUEsQ0FBTUMsQ0FBQUEsQ0FBUSxDQUFBLENBQUcsQ0FBQyxFQUFHLFNBQUEsQ0FBVyxJQUFLLENBQUMsQ0FBQSxDQUc1RSxPQUFPYyxDQUNULENBQUEsQ0FFTUcsQ0FBQUEsQ0FBYyxDQUFDVCxFQUFtQlUsQ0FBQUEsQ0FBY0MsQ0FBQUEsR0FBeUIsQ0FDN0UsR0FBSSxDQUFDWCxDQUFBQSxFQUFRLEtBQUEsQ0FBTUEsQ0FBQUEsQ0FBSyxPQUFBLEVBQVMsQ0FBQSxDQUFHLE9BQU8sRUFBQSxDQUUzQyxJQUFNWSxFQUFJWixDQUFBQSxDQUFLLFdBQUEsRUFBWSxDQUNyQmEsQ0FBQUEsQ0FBSSxPQUFPYixDQUFBQSxDQUFLLFFBQUEsRUFBUyxDQUFJLENBQUMsQ0FBQSxDQUFFLFFBQUEsQ0FBUyxDQUFBLENBQUcsR0FBRyxFQUMvQ2MsQ0FBQUEsQ0FBSSxNQUFBLENBQU9kLENBQUFBLENBQUssT0FBQSxFQUFTLENBQUEsQ0FBRSxRQUFBLENBQVMsQ0FBQSxDQUFHLEdBQUcsRUFDNUNlLENBQUFBLENBQUlmLENBQUFBLENBQUssUUFBQSxFQUFTLENBQ2hCZ0IsQ0FBQUEsQ0FBSSxNQUFBLENBQU9oQixDQUFBQSxDQUFLLFVBQUEsRUFBWSxDQUFBLENBQUUsUUFBQSxDQUFTLENBQUEsQ0FBRyxHQUFHLEVBQzdDaUIsQ0FBQUEsQ0FBSUYsQ0FBQUEsRUFBSyxFQUFBLENBQUssSUFBQSxDQUFPLEtBQzNCQSxDQUFBQSxDQUFJQSxDQUFBQSxDQUFJLEVBQUEsRUFBTSxFQUFBLENBQ2QsSUFBTUcsQ0FBQUEsQ0FBSyxNQUFBLENBQU9ILENBQUMsRUFBRSxRQUFBLENBQVMsQ0FBQSxDQUFHLEdBQUcsQ0FBQSxDQUVwQyxHQUFJSixDQUFBQSxDQUNGLE9BQU9BLENBQUFBLENBQUksT0FBQSxDQUFRLE9BQVEsTUFBQSxDQUFPQyxDQUFDLENBQUMsQ0FBQSxDQUFFLFFBQVEsSUFBQSxDQUFNQyxDQUFDLENBQUEsQ0FBRSxPQUFBLENBQVEsS0FBTUMsQ0FBQyxDQUFBLENBQUUsT0FBQSxDQUFRLElBQUEsQ0FBTUksQ0FBRSxDQUFBLENBQUUsT0FBQSxDQUFRLElBQUEsQ0FBTUYsQ0FBQyxFQUFFLE9BQUEsQ0FBUSxJQUFBLENBQU1DLENBQUMsQ0FBQSxDQUc1SCxPQUFRUCxDQUFBQSxFQUNOLEtBQUssT0FBWSxPQUFPLENBQUEsRUFBR1EsQ0FBRSxDQUFBLENBQUEsRUFBSUYsQ0FBQyxDQUFBLENBQUEsRUFBSUMsQ0FBQyxDQUFBLENBQUEsQ0FDdkMsS0FBSyxXQUFZLE9BQU8sQ0FBQSxFQUFHTCxDQUFDLENBQUEsQ0FBQSxFQUFJQyxDQUFDLENBQUEsQ0FBQSxFQUFJQyxDQUFDLENBQUEsQ0FBQSxFQUFJSSxDQUFFLENBQUEsQ0FBQSxFQUFJRixDQUFDLENBQUEsQ0FBQSxFQUFJQyxDQUFDLEdBQ3RELFFBQWlCLE9BQU8sQ0FBQSxFQUFHTCxDQUFDLElBQUlDLENBQUMsQ0FBQSxDQUFBLEVBQUlDLENBQUMsQ0FBQSxDQUN4QyxDQUNGLENBQUEsQ0FLTUssQ0FBQUEsQ0FBWSxDQUFDQyxFQUFzQkMsQ0FBQUEsQ0FBbUJDLENBQUFBLENBQWUsTUFBQSxJQUFtQyxDQUM1RyxPQUFRLENBQ04sS0FBQSxDQUFBRixDQUFBQSxDQUNBLElBQUEsQ0FBTUMsRUFDTixJQUFBLENBQUFDLENBQ0YsQ0FBQSxDQUNBLGNBQUEsQ0FBZ0IsSUFBTSxDQUFDLENBQUEsQ0FDdkIsZUFBQSxDQUFpQixJQUFNLENBQUMsQ0FBQSxDQUN4QixXQUFBLENBQWEsSUFDZixDQUFBLENBQUEsQ0FPTUMsR0FBd0MsQ0FBRSxJQUFBLENBQU0sR0FBQSxDQUFLLElBQUEsQ0FBTSxJQUFLLFFBQUEsQ0FBVSxHQUFBLENBQUssSUFBQSxDQUFNLEdBQUksQ0FBQSxDQUd6RkMsRUFBQUEsQ0FBOEMsQ0FBRSxJQUFBLENBQU0sSUFBSyxJQUFBLENBQU0sR0FBQSxDQUFLLFFBQUEsQ0FBVSxHQUFBLENBQUssS0FBTSxHQUFJLENBQUEsQ0FTL0ZDLEVBQUFBLENBQTBDLENBQzlDLFNBQVUsT0FBQSxDQUNWLEdBQUEsQ0FBSyxDQUFBLENBQ0wsSUFBQSxDQUFNLENBQUEsQ0FDTixLQUFBLENBQU8sYUFBQSxDQUNQLFVBQUEsQ0FBWSxTQUNaLE1BQUEsQ0FBUSxJQUNWLENBQUEsQ0FHTUMsRUFBQUEsQ0FDSixPQUFPLE1BQUEsQ0FBVyxHQUFBLENBQW9CdEMsWUFBQSxDQUFBLGVBQUEsQ0FBd0JBLFlBQUEsQ0FBQSxTQUFBLENBTTFEdUMsR0FBbUJDLENBQUFBLEVBQXdDLENBQy9ELEdBQUksQ0FBQ0EsQ0FBQUEsQ0FBSSxPQUFPLFFBQUEsQ0FBUyxlQUFBLENBQ3pCLElBQUlDLENBQUFBLENBQTZCRCxDQUFBQSxDQUFHLGFBQUEsQ0FDcEMsS0FBT0MsR0FBUSxDQUNiLElBQU1DLENBQUFBLENBQVEsTUFBQSxDQUFPLGlCQUFpQkQsQ0FBTSxDQUFBLENBQ3RDRSxDQUFBQSxDQUFZRCxDQUFBQSxDQUFNLFdBQWFBLENBQUFBLENBQU0sUUFBQSxDQUMzQyxHQUFJQyxDQUFBQSxHQUFjLFFBQVVBLENBQUFBLEdBQWMsUUFBQSxDQUFVLE9BQU9GLENBQUFBLENBQzNEQSxFQUFTQSxDQUFBQSxDQUFPLGNBQ2xCLENBQ0EsT0FBTyxTQUFTLGVBQ2xCLENBQUEsQ0FFTUcsRUFBQUEsQ0FBbUIsQ0FBQ0MsQ0FBQUEsQ0FBNkJDLENBQUFBLENBQXVCQyxDQUFBQSxHQUE4QyxDQUMxSCxHQUFJLENBQUNGLENBQUFBLENBQVMsT0FBTyxHQUNyQixJQUFNRyxDQUFBQSxDQUFPSCxDQUFBQSxDQUFRLHFCQUFBLEdBQ2ZsQixDQUFBQSxDQUFJbUIsQ0FBQUEsRUFBaUIsR0FBQSxDQUVyQkcsQ0FBQUEsQ0FBYSxPQUFPLFdBQUEsQ0FBY0QsQ0FBQUEsQ0FBSyxNQUFBLENBQ3ZDRSxDQUFBQSxDQUFhRixFQUFLLEdBQUEsQ0FHbEJHLENBQUFBLENBQWFGLENBQUFBLENBQWF0QixDQUFBQSxFQUFLdUIsRUFBYUQsQ0FBQUEsQ0FLNUNHLENBQUFBLENBQU8sTUFBQSxDQUFPLFVBQUEsQ0FBYSxJQUFNLEdBQUEsQ0FBTSxHQUFBLENBQ3ZDQyxDQUFBQSxDQUFJTixDQUFBQSxFQUFnQkssQ0FBQUEsQ0FFMUIsT0FBTyxDQUNMLFFBQUEsQ0FBVSxRQUNWLEdBQUEsQ0FBS0QsQ0FBQUEsQ0FBYSxJQUFBLENBQUssR0FBQSxDQUFJLEVBQUdILENBQUFBLENBQUssR0FBQSxDQUFNckIsQ0FBQUEsQ0FBSSxDQUFDLEVBQUlxQixDQUFBQSxDQUFLLE1BQUEsQ0FBUyxDQUFBLENBQ2hFLElBQUEsQ0FBTSxLQUFLLEdBQUEsQ0FBSSxDQUFBLENBQUcsSUFBQSxDQUFLLEdBQUEsQ0FBSUEsRUFBSyxJQUFBLENBQU0sTUFBQSxDQUFPLFVBQUEsQ0FBYUssQ0FBQUEsQ0FBSSxDQUFDLENBQUMsQ0FBQSxDQUNoRSxRQUFBLENBQVVELENBQUFBLENBQ1YsTUFBTyxhQUFBLENBQ1AsUUFBQSxDQUFVLE1BQUEsQ0FBTyxVQUFBLENBQWEsQ0FBQSxDQUM5QixNQUFBLENBQVEsSUFDVixDQUNGLEVBY01FLEVBQUFBLENBQW1CdEQsWUFBQSxDQUFBLFVBQUEsQ0FBOEMsQ0FBQyxDQUN0RSxVQUFBdUQsQ0FBQUEsQ0FDQSxJQUFBLENBQUFqQyxDQUFBQSxDQUFPLE1BQUEsQ0FDUCxTQUFBa0MsQ0FBQUEsQ0FBVyxLQUFBLENBQ1gsUUFBQSxDQUFBQyxDQUFBQSxDQUNBLEtBQUEsQ0FBQXpCLENBQUFBLENBQ0EsUUFBQSxDQUFBMEIsQ0FBQUEsQ0FDQSxXQUFBQyxDQUFBQSxDQUNBLGVBQUEsQ0FBQUMsQ0FBQUEsQ0FDQSxJQUFBLENBQUFDLEVBQ0EsV0FBQSxDQUFBQyxDQUFBQSxDQUFjLEtBQUEsQ0FDZCxRQUFBLENBQUFDLEVBQVcsS0FBQSxDQUNYLE9BQUEsQ0FBQUMsRUFBQUEsQ0FDQSxPQUFBLENBQUFDLEVBQUFBLENBQ0EsUUFBQSxDQUFBQyxDQUFBQSxDQUFXLGdCQUFBLENBQ1gsR0FBQUMsRUFBQUEsQ0FDQSxJQUFBLENBQUFDLENBQUFBLENBQ0EsR0FBR0MsRUFDTCxDQUFBLENBQUdDLENBQUFBLEdBQVEsQ0FFVCxJQUFNQyxFQUFnQkMsQ0FBQUEsRUFBOEQsQ0FDbEYsR0FBSSxDQUFDQSxFQUFHLE9BQU8sSUFBQSxDQUNmLEdBQUlBLENBQUFBLFlBQWEsS0FBTSxPQUFPLEtBQUEsQ0FBTUEsQ0FBQUEsQ0FBRSxPQUFBLEVBQVMsQ0FBQSxDQUFJLElBQUEsQ0FBT0EsQ0FBQUEsQ0FDMUQsR0FBSSxPQUFPQSxDQUFBQSxFQUFNLFFBQUEsRUFBWSxPQUFPQSxDQUFBQSxFQUFNLFFBQUEsQ0FBVSxDQUVsRCxJQUFNOUMsQ0FBQUEsQ0FBSSxJQUFJLElBQUEsQ0FBSzhDLENBQUMsQ0FBQSxDQUNwQixHQUFJLENBQUMsS0FBQSxDQUFNOUMsQ0FBQUEsQ0FBRSxPQUFBLEVBQVMsRUFBRyxPQUFPQSxDQUFBQSxDQUdoQyxHQUFJLE9BQU84QyxDQUFBQSxFQUFNLFFBQUEsQ0FBVSxDQUN6QixJQUFNQyxFQUFZRCxDQUFBQSxDQUFFLEtBQUEsQ0FBTSxnQ0FBZ0MsQ0FBQSxDQUMxRCxHQUFJQyxDQUFBQSxDQUFXLENBQ2IsSUFBSTlDLENBQUFBLENBQUksU0FBUzhDLENBQUFBLENBQVUsQ0FBQyxDQUFBLENBQUcsRUFBRSxDQUFBLENBQzNCN0MsQ0FBQUEsQ0FBSSxRQUFBLENBQVM2QyxDQUFBQSxDQUFVLENBQUMsQ0FBQSxDQUFHLEVBQUUsQ0FBQSxDQUM3QkMsQ0FBQUEsQ0FBS0QsRUFBVSxDQUFDLENBQUEsQ0FBRSxXQUFBLEVBQVksQ0FDaEM5QyxJQUFNLEVBQUEsRUFBTStDLENBQUFBLEdBQU8sSUFBQSxHQUFNL0MsQ0FBQUEsQ0FBSSxHQUM3QkEsQ0FBQUEsR0FBTSxFQUFBLEVBQU0rQyxDQUFBQSxHQUFPLElBQUEsR0FBTS9DLEdBQUssRUFBQSxDQUFBLENBQ2xDLElBQU1nRCxFQUFBQSxDQUFNLElBQUksS0FDaEIsT0FBTyxJQUFJLElBQUEsQ0FBS0EsRUFBQUEsQ0FBSSxhQUFZLENBQUdBLEVBQUFBLENBQUksUUFBQSxFQUFTLENBQUdBLEVBQUFBLENBQUksT0FBQSxFQUFRLENBQUdoRCxDQUFBQSxDQUFHQyxFQUFHLENBQUEsQ0FBRyxDQUFDLENBQzlFLENBR0EsSUFBTWdELENBQUFBLENBQVVKLENBQUFBLENBQUUsS0FBQSxDQUFNLDBEQUEwRCxFQUNsRixHQUFJSSxDQUFBQSxDQUFTLENBQ1gsSUFBSWpELENBQUFBLENBQUksUUFBQSxDQUFTaUQsQ0FBQUEsQ0FBUSxDQUFDLEVBQUcsRUFBRSxDQUFBLENBQ3pCaEQsQ0FBQUEsQ0FBSSxRQUFBLENBQVNnRCxFQUFRLENBQUMsQ0FBQSxDQUFHLEVBQUUsQ0FBQSxDQUMzQkYsRUFBS0UsQ0FBQUEsQ0FBUSxDQUFDLENBQUEsQ0FBRSxXQUFBLEVBQVksQ0FDbEMsT0FBSWpELENBQUFBLEdBQU0sRUFBQSxFQUFNK0MsSUFBTyxJQUFBLEdBQU0vQyxDQUFBQSxDQUFJLENBQUEsQ0FBQSxDQUM3QkEsQ0FBQUEsR0FBTSxJQUFNK0MsQ0FBQUEsR0FBTyxJQUFBLEdBQU0vQyxDQUFBQSxFQUFLLEVBQUEsQ0FBQSxDQUMzQixJQUFJLElBQUEsQ0FBSyxRQUFBLENBQVNpRCxDQUFBQSxDQUFRLENBQUMsQ0FBQyxDQUFBLENBQUcsUUFBQSxDQUFTQSxDQUFBQSxDQUFRLENBQUMsQ0FBQyxDQUFBLENBQUksQ0FBQSxDQUFHLFFBQUEsQ0FBU0EsQ0FBQUEsQ0FBUSxDQUFDLENBQUMsQ0FBQSxDQUFHakQsQ0FBQUEsQ0FBR0MsQ0FBQUEsQ0FBRyxFQUFHLENBQUMsQ0FDbEcsQ0FDRixDQUNBLE9BQU8sSUFDVCxDQUNBLE9BQU8sSUFDVCxDQUFBLENBQ01pRCxDQUFBQSxDQUFzQjdFLFlBQUEsQ0FBQSxPQUFBLENBQzFCLElBQU11RSxFQUFhZCxDQUFBQSxFQUFZekIsQ0FBSyxDQUFBLENBQ3BDLENBQ0V5QixhQUFvQixJQUFBLENBQU9BLENBQUFBLENBQVMsT0FBQSxFQUFRLENBQUlBLEVBQ2hEekIsQ0FBQUEsWUFBaUIsSUFBQSxDQUFPQSxDQUFBQSxDQUFNLE9BQUEsR0FBWUEsQ0FDNUMsQ0FDRixDQUFBLENBQ004QyxFQUFBQSxDQUFldEIsR0FBWWxDLENBQUFBLEdBQVMsTUFBQSxFQUFVQSxDQUFBQSxHQUFTLFVBQUEsQ0FDdkR5RCxFQUFXLENBQUN2QixDQUFBQSxHQUFhbEMsQ0FBQUEsR0FBUyxNQUFBLEVBQVVBLENBQUFBLEdBQVMsVUFBQSxDQUFBLENBR3JELENBQUMwRCxDQUFBQSxDQUFRQyxDQUFTLENBQUEsQ0FBVWpGLFlBQUEsQ0FBQSxRQUFBLENBQVMsS0FBSyxDQUFBLENBQzFDLENBQUNrRixDQUFBQSxDQUFVQyxDQUFXLENBQUEsQ0FBVW5GLFlBQUEsQ0FBQSxRQUFBLENBQVMsSUFDN0M2RSxDQUFBQSxDQUFnQkEsQ0FBQUEsQ0FBYyxXQUFBLEVBQVksQ0FBSXRFLEVBQVcyRCxDQUFRLENBQUEsQ0FBRSxXQUFBLEVBQWEsRUFDNUUsQ0FBQ2tCLENBQUFBLENBQVdDLENBQVksQ0FBQSxDQUFVckYsc0JBQVMsSUFDL0M2RSxDQUFBQSxDQUFnQkEsQ0FBQUEsQ0FBYyxRQUFBLEdBQWF0RSxDQUFBQSxDQUFXMkQsQ0FBUSxDQUFBLENBQUUsUUFBQSxFQUFVLENBQUEsQ0FDdEUsQ0FBQ29CLENBQUFBLENBQVVDLENBQVcsQ0FBQSxDQUFVdkYsWUFBQSxDQUFBLFFBQUEsQ0FBc0I2RSxDQUFhLENBQUEsQ0FDbkUsQ0FBQ1csQ0FBQUEsQ0FBV0MsRUFBWSxDQUFBLENBQVV6RixZQUFBLENBQUEsUUFBQSxDQUFTLElBQy9DNkUsQ0FBQUEsRUFBaUJBLENBQUFBLENBQWMsUUFBQSxFQUFTLENBQUksRUFBQSxFQUFNLEVBQVEsQ0FBQSxDQUN0RCxDQUFDYSxFQUFVQyxFQUFXLENBQUEsQ0FBVTNGLFlBQUEsQ0FBQSxRQUFBLENBQVMsSUFDN0M2RSxFQUFnQkEsQ0FBQUEsQ0FBYyxVQUFBLEVBQVcsQ0FBSSxDQUFDLEVBQzFDLENBQUNlLENBQUFBLENBQVVDLEVBQVcsQ0FBQSxDQUFVN0YsWUFBQSxDQUFBLFFBQUEsQ0FBUyxJQUM3QzZFLENBQUFBLEVBQWlCQSxDQUFBQSxDQUFjLFVBQVMsRUFBSyxFQUFBLENBQUssSUFBQSxDQUFlLElBQUksRUFDakUsQ0FBQ2lCLENBQUFBLENBQWdCQyxDQUFpQixDQUFBLENBQVUvRixzQkFBUyxLQUFLLENBQUEsQ0FDMUQsQ0FBQ2dHLEVBQUFBLENBQVVDLENBQVcsQ0FBQSxDQUFVakcsWUFBQSxDQUFBLFFBQUEsQ0FBUyxJQUM3QyxJQUFBLENBQUssT0FBTzZFLENBQUFBLENBQWdCQSxDQUFBQSxDQUFjLFdBQUEsRUFBWSxDQUFJdEUsRUFBVzJELENBQVEsQ0FBQSxDQUFFLFdBQUEsRUFBWSxFQUFLakUsQ0FBYyxDQUFBLENBQUlBLENBQ3BILENBQUEsQ0FDTSxDQUFDaUcsRUFBQUEsQ0FBY0MsRUFBZSxDQUFBLENBQVVuRyxZQUFBLENBQUEsUUFBQSxDQUE4QnFDLEVBQWtCLENBQUEsQ0FFeEYrRCxDQUFBQSxDQUFpQnBHLFlBQUEsQ0FBQSxNQUFBLENBQXlCLElBQUksRUFDOUNxRyxDQUFBQSxDQUFtQnJHLFlBQUEsQ0FBQSxNQUFBLENBQXVCLElBQUksQ0FBQSxDQUM5Q3NHLEVBQWtCdEcsWUFBQSxDQUFBLE1BQUEsQ0FBOEIsSUFBSSxDQUFBLENBR3BEQSxZQUFBLENBQUEsU0FBQSxDQUFVLElBQU0sQ0FDcEIsSUFBTXdDLENBQUFBLENBQUssUUFBQSxDQUFTLGNBQWMsS0FBSyxDQUFBLENBQ3ZDLE9BQUFBLENBQUFBLENBQUcsVUFBWSx3QkFBQSxDQUNmLFFBQUEsQ0FBUyxJQUFBLENBQUssV0FBQSxDQUFZQSxDQUFFLENBQUEsQ0FDNUI4RCxDQUFBQSxDQUFVLE9BQUEsQ0FBVTlELENBQUFBLENBQ2IsSUFBTSxDQUNQQSxDQUFBQSxDQUFHLFVBQUEsRUFBWSxTQUFTLElBQUEsQ0FBSyxXQUFBLENBQVlBLENBQUUsQ0FBQSxDQUMvQzhELEVBQVUsT0FBQSxDQUFVLEtBQ3RCLENBQ0YsQ0FBQSxDQUFHLEVBQUUsQ0FBQSxDQUdDdEcsWUFBQSxDQUFBLFNBQUEsQ0FBVSxJQUFNLENBQ2hCNkUsQ0FBQUEsRUFBaUIsQ0FBQyxLQUFBLENBQU1BLENBQUFBLENBQWMsU0FBUyxDQUFBLEVBQ2pEVSxDQUFBQSxDQUFZVixDQUFhLEVBQ3pCTSxDQUFBQSxDQUFZTixDQUFBQSxDQUFjLFdBQUEsRUFBYSxFQUN2Q1EsQ0FBQUEsQ0FBYVIsQ0FBQUEsQ0FBYyxRQUFBLEVBQVUsQ0FBQSxDQUNyQ1ksRUFBQUEsQ0FBYVosQ0FBQUEsQ0FBYyxRQUFBLEdBQWEsRUFBQSxFQUFNLEVBQUUsQ0FBQSxDQUNoRGMsRUFBQUEsQ0FBWWQsRUFBYyxVQUFBLEVBQVksQ0FBQSxDQUN0Q2dCLEVBQUFBLENBQVloQixFQUFjLFFBQUEsRUFBUyxFQUFLLEVBQUEsQ0FBSyxJQUFBLENBQU8sSUFBSSxDQUFBLENBQ3hEb0IsQ0FBQUEsQ0FBWSxJQUFBLENBQUssTUFBTXBCLENBQUFBLENBQWMsV0FBQSxFQUFZLENBQUk1RSxDQUFjLEVBQUlBLENBQWMsQ0FBQSxFQUVyRnNGLENBQUFBLENBQVksSUFBSSxFQUVwQixDQUFBLENBQUcsQ0FBQ1YsQ0FBYSxDQUFDLENBQUEsQ0FHbEJ2QyxFQUFBQSxDQUEwQixJQUFNLENBQzlCLEdBQUksQ0FBQzBDLENBQUFBLENBQVEsQ0FHWG1CLEVBQUFBLENBQWdCOUQsRUFBa0IsQ0FBQSxDQUNsQyxNQUNGLENBR0EsSUFBTWtFLEVBQVksSUFDWkYsQ0FBQUEsQ0FBVyxPQUFBLENBQ05BLENBQUFBLENBQVcsUUFBUSxxQkFBQSxFQUFzQixDQUFFLE1BQUEsQ0FFN0NsRSxFQUFBQSxDQUFjMkQsRUFBaUIsTUFBQSxDQUFTeEUsQ0FBSSxDQUFBLEVBQUssR0FBQSxDQUVwRGtGLEVBQVcsSUFDWEgsQ0FBQUEsQ0FBVyxPQUFBLENBQ05BLENBQUFBLENBQVcsUUFBUSxxQkFBQSxFQUFzQixDQUFFLEtBQUEsQ0FFN0NqRSxFQUFBQSxDQUFvQjBELENBQUFBLENBQWlCLE1BQUEsQ0FBU3hFLENBQUksQ0FBQSxFQUFLLElBRzFEbUYsQ0FBQUEsQ0FBZWxFLEVBQUFBLENBQWdCNkQsQ0FBQUEsQ0FBUyxPQUFPLEVBRS9DTSxDQUFBQSxDQUFTLElBQU0sQ0FDbkJQLEVBQUFBLENBQWdCdkQsR0FBaUJ3RCxDQUFBQSxDQUFTLE9BQUEsQ0FBU0csQ0FBQUEsRUFBVSxDQUFHQyxHQUFVLENBQUMsRUFDN0UsQ0FBQSxDQUdBRSxHQUFPLENBR1AsSUFBSUMsQ0FBQUEsQ0FBTSxDQUFBLENBQ0pDLEVBQWlCLElBQU0sQ0FDM0Isb0JBQUEsQ0FBcUJELENBQUcsRUFDeEJBLENBQUFBLENBQU0scUJBQUEsQ0FBc0JELENBQU0sRUFDcEMsQ0FBQSxDQUdBLE9BQUFELENBQUFBLENBQWEsZ0JBQUEsQ0FBaUIsU0FBVUcsQ0FBQUEsQ0FBZ0IsQ0FBRSxPQUFBLENBQVMsSUFBSyxDQUFDLENBQUEsQ0FDekUsTUFBQSxDQUFPLGdCQUFBLENBQWlCLFFBQUEsQ0FBVUEsQ0FBYyxDQUFBLENBQ3pDLElBQU0sQ0FDWCxvQkFBQSxDQUFxQkQsQ0FBRyxDQUFBLENBQ3hCRixDQUFBQSxDQUFhLG1CQUFBLENBQW9CLFFBQUEsQ0FBVUcsQ0FBYyxDQUFBLENBQ3pELE1BQUEsQ0FBTyxtQkFBQSxDQUFvQixRQUFBLENBQVVBLENBQWMsRUFDckQsQ0FDRixDQUFBLENBQUcsQ0FBQzVCLEVBQVExRCxDQUFBQSxDQUFNd0UsQ0FBYyxDQUFDLENBQUEsQ0FHM0I5RixZQUFBLENBQUEsU0FBQSxDQUFVLElBQU0sQ0FDcEIsR0FBSSxDQUFDZ0YsQ0FBQUEsQ0FBUSxPQUNiLElBQU02QixDQUFBQSxDQUFXQyxHQUFrQixDQUM3QlQsQ0FBQUEsQ0FBVyxPQUFBLEVBQVcsQ0FBQ0EsRUFBVyxPQUFBLENBQVEsUUFBQSxDQUFTUyxDQUFBQSxDQUFFLE1BQWMsQ0FBQSxFQUNuRVYsQ0FBQUEsQ0FBUyxPQUFBLEVBQVcsQ0FBQ0EsRUFBUyxPQUFBLENBQVEsUUFBQSxDQUFTVSxDQUFBQSxDQUFFLE1BQWMsSUFDakU3QixDQUFBQSxDQUFVLEtBQUssQ0FBQSxDQUNmYyxDQUFBQSxDQUFrQixLQUFLLENBQUEsRUFFM0IsQ0FBQSxDQUNBLE9BQUEsUUFBQSxDQUFTLGdCQUFBLENBQWlCLFdBQUEsQ0FBYWMsQ0FBTyxDQUFBLENBQ3ZDLElBQU0sU0FBUyxtQkFBQSxDQUFvQixXQUFBLENBQWFBLENBQU8sQ0FDaEUsRUFBRyxDQUFDN0IsQ0FBTSxDQUFDLENBQUEsQ0FHWCxJQUFNK0IsQ0FBQUEsQ0FBWSxDQUFDQyxDQUFBQSxDQUFZQyxDQUFBQSxDQUFhQyxFQUFjQyxDQUFBQSxHQUF1QixDQUMvRSxJQUFNekYsQ0FBQUEsQ0FBSSxJQUFJLElBQUEsQ0FBS3NGLENBQUksQ0FBQSxDQUNuQnJGLENBQUFBLENBQUlzRixFQUFNLEVBQUEsQ0FDZCxPQUFJRSxDQUFBQSxHQUFTLElBQUEsR0FBTXhGLEdBQUssRUFBQSxDQUFBLENBQ3BCQSxDQUFBQSxHQUFNLEVBQUEsRUFBTXdGLENBQUFBLEdBQVMsSUFBQSxHQUFNeEYsQ0FBQUEsQ0FBSSxDQUFBLENBQUEsQ0FDbkNELENBQUFBLENBQUUsU0FBU0MsQ0FBQUEsQ0FBR3VGLENBQUFBLENBQU0sQ0FBQSxDQUFHLENBQUMsRUFDakJ4RixDQUNULENBQUEsQ0FNTTBGLENBQUFBLENBQWN4RyxDQUFBQSxFQUE0QixDQUM5QyxHQUFJLENBQUNBLENBQUFBLEVBQVEsS0FBQSxDQUFNQSxDQUFBQSxDQUFLLE9BQUEsRUFBUyxDQUFBLENBQUcsT0FDcEMsSUFBTXlHLENBQUFBLENBQVloRyxDQUFBQSxDQUFZVCxDQUFBQSxDQUFNVSxFQUFNcUMsQ0FBVSxDQUFBLENBQ3BERCxDQUFBQSxHQUFXM0IsQ0FBQUEsQ0FBVXNGLEVBQVdqRCxDQUFBQSxFQUFRLEVBQUEsQ0FBSTlDLENBQUksQ0FBQyxFQUNuRCxDQUFBLENBRU1nRyxFQUFBQSxDQUFVMUcsQ0FBQUEsRUFBNEIsQ0FDMUMsR0FBSSxDQUFDQSxDQUFBQSxDQUFNLENBQ1Q4QyxJQUFXM0IsQ0FBQUEsQ0FBVSxJQUFBLENBQU1xQyxDQUFBQSxFQUFRLEVBQUEsQ0FBSTlDLENBQUksQ0FBQyxDQUFBLENBQzVDMkQsQ0FBQUEsQ0FBVSxLQUFLLEVBQ2ZjLENBQUFBLENBQWtCLEtBQUssQ0FBQSxDQUN2QixNQUNGLENBQ0FxQixDQUFBQSxDQUFXeEcsQ0FBSSxDQUFBLENBQ1hVLENBQUFBLEdBQVMsU0FBVTJELENBQUFBLENBQVUsS0FBSyxDQUFBLENBQUdjLENBQUFBLENBQWtCLEtBQUssQ0FBQSxFQUNsRSxDQUFBLENBRU13QixFQUFBQSxDQUFrQjNHLENBQUFBLEVBQXFCLENBRTNDLEdBREEyRSxDQUFBQSxDQUFZM0UsQ0FBSSxFQUNaVSxDQUFBQSxHQUFTLE1BQUEsRUFBVWtDLENBQUFBLENBQ3JCOEQsRUFBQUEsQ0FBTzFHLENBQUksQ0FBQSxDQUFBLEtBQUEsR0FDRlUsQ0FBQUEsR0FBUyxVQUFBLENBQVksQ0FFOUIsSUFBTUksQ0FBQUEsQ0FBSXFGLENBQUFBLENBQVVuRyxDQUFBQSxDQUFNNEUsQ0FBQUEsQ0FBV0UsQ0FBQUEsQ0FBVUUsQ0FBUSxDQUFBLENBQ3ZEd0IsQ0FBQUEsQ0FBVzFGLENBQUMsRUFDZCxDQUNGLENBQUEsQ0FHTThGLEVBQUFBLENBQU96RyxHQUFrQm1FLENBQUFBLENBQVVFLENBQVMsQ0FBQSxDQUU1Q3FDLEVBQUFBLENBQWtCLElBQU0sQ0FDNUIsSUFBSUMsQ0FBQUEsQ0FBT3hDLENBQUFBLENBQVV5QyxDQUFBQSxDQUFPdkMsQ0FBQUEsQ0FDeEJBLENBQUFBLEdBQWMsQ0FBQSxFQUFLc0MsRUFBT3hDLENBQUFBLENBQVcsQ0FBQSxDQUFHeUMsQ0FBQUEsQ0FBTyxFQUFBLEVBQzlDQSxFQUFPdkMsQ0FBQUEsQ0FBWSxDQUFBLENBQ3hCRCxDQUFBQSxDQUFZdUMsQ0FBSSxFQUFHckMsQ0FBQUEsQ0FBYXNDLENBQUksQ0FBQSxDQUNwQyxJQUFNWCxFQUFPMUIsQ0FBQUEsRUFBWSxJQUFJLElBQUEsQ0FDdkJzQyxDQUFBQSxDQUFPMUgsRUFBWXdILENBQUFBLENBQU1DLENBQUksQ0FBQSxDQUM3QkUsQ0FBQUEsQ0FBVSxJQUFJLElBQUEsQ0FBS0gsQ0FBQUEsQ0FBTUMsQ0FBQUEsQ0FBTSxJQUFBLENBQUssSUFBSVgsQ0FBQUEsQ0FBSyxPQUFBLEVBQVEsQ0FBR1ksQ0FBSSxDQUFDLENBQUEsQ0FDbkVyQyxDQUFBQSxDQUFZc0MsQ0FBTyxFQUNuQlQsQ0FBQUEsQ0FBV3JDLENBQUFBLENBQVdnQyxDQUFBQSxDQUFVYyxDQUFBQSxDQUFTckMsRUFBV0UsQ0FBQUEsQ0FBVUUsQ0FBUSxDQUFBLENBQUlpQyxDQUFPLEVBQ25GLENBQUEsQ0FDTUMsRUFBQUEsQ0FBa0IsSUFBTSxDQUM1QixJQUFJSixDQUFBQSxDQUFPeEMsQ0FBQUEsQ0FBVXlDLENBQUFBLENBQU92QyxDQUFBQSxDQUN4QkEsSUFBYyxFQUFBLEVBQU1zQyxDQUFBQSxDQUFPeEMsQ0FBQUEsQ0FBVyxDQUFBLENBQUd5QyxFQUFPLENBQUEsRUFDL0NBLENBQUFBLENBQU92QyxDQUFBQSxDQUFZLENBQUEsQ0FDeEJELEVBQVl1QyxDQUFJLENBQUEsQ0FBR3JDLENBQUFBLENBQWFzQyxDQUFJLENBQUEsQ0FDcEMsSUFBTVgsQ0FBQUEsQ0FBTzFCLENBQUFBLEVBQVksSUFBSSxJQUFBLENBQ3ZCc0MsQ0FBQUEsQ0FBTzFILENBQUFBLENBQVl3SCxDQUFBQSxDQUFNQyxDQUFJLENBQUEsQ0FDN0JFLENBQUFBLENBQVUsSUFBSSxJQUFBLENBQUtILEVBQU1DLENBQUFBLENBQU0sSUFBQSxDQUFLLEdBQUEsQ0FBSVgsQ0FBQUEsQ0FBSyxTQUFRLENBQUdZLENBQUksQ0FBQyxDQUFBLENBQ25FckMsRUFBWXNDLENBQU8sQ0FBQSxDQUNuQlQsQ0FBQUEsQ0FBV3JDLENBQUFBLENBQVdnQyxFQUFVYyxDQUFBQSxDQUFTckMsQ0FBQUEsQ0FBV0UsQ0FBQUEsQ0FBVUUsQ0FBUSxFQUFJaUMsQ0FBTyxFQUNuRixDQUFBLENBRU1FLEVBQUFBLENBQVF4SCxDQUFBQSxDQUFXMkQsQ0FBUSxDQUFBLENBRzNCOEQsQ0FBQUEsQ0FBY3pELEVBQWFQLEVBQU8sQ0FBQSxDQUNsQ2lFLENBQUFBLENBQWMxRCxDQUFBQSxDQUFhTixFQUFPLENBQUEsQ0FDbENpRSxFQUFBQSxDQUFRRixDQUFBQSxDQUFjLElBQUksS0FBS0EsQ0FBQUEsQ0FBWSxXQUFBLEVBQVksQ0FBR0EsQ0FBQUEsQ0FBWSxRQUFBLEVBQVMsQ0FBR0EsQ0FBQUEsQ0FBWSxPQUFBLEVBQVMsQ0FBQSxDQUFJLElBQUEsQ0FDM0dHLEVBQUFBLENBQVFGLENBQUFBLENBQWMsSUFBSSxJQUFBLENBQUtBLENBQUFBLENBQVksV0FBQSxFQUFZLENBQUdBLEVBQVksUUFBQSxFQUFTLENBQUdBLENBQUFBLENBQVksT0FBQSxFQUFTLENBQUEsQ0FBSSxJQUFBLENBRzNHRyxFQUFBQSxDQUFvQnpHLEdBQWMsQ0FFdEMsR0FEQThELEVBQUFBLENBQWE5RCxDQUFDLEVBQ1ZvRCxDQUFBQSxDQUFVLENBQ1osSUFBTXJELENBQUFBLENBQUlxRixFQUFVekIsQ0FBQUEsRUFBWSxJQUFJLElBQUEsQ0FBUTNELENBQUFBLENBQUcrRCxFQUFVRSxDQUFRLENBQUEsQ0FDakVsQyxDQUFBQSxHQUFXM0IsQ0FBQUEsQ0FBVVYsRUFBWUssQ0FBQUEsQ0FBR0osQ0FBQUEsQ0FBTXFDLENBQVUsQ0FBQSxDQUFHUyxHQUFRLEVBQUEsQ0FBSTlDLENBQUksQ0FBQyxFQUMxRSxDQUNGLENBQUEsQ0FDTStHLEVBQUFBLENBQW1CekcsQ0FBQUEsRUFBYyxDQUVyQyxHQURBK0QsRUFBQUEsQ0FBWS9ELENBQUMsQ0FBQSxDQUNUbUQsRUFBVSxDQUNaLElBQU1yRCxDQUFBQSxDQUFJcUYsQ0FBQUEsQ0FBVXpCLEdBQVksSUFBSSxJQUFBLENBQVFFLENBQUFBLENBQVc1RCxDQUFBQSxDQUFHZ0UsQ0FBUSxDQUFBLENBQ2xFbEMsQ0FBQUEsR0FBVzNCLENBQUFBLENBQVVWLENBQUFBLENBQVlLLENBQUFBLENBQUdKLENBQUFBLENBQU1xQyxDQUFVLENBQUEsQ0FBR1MsR0FBUSxFQUFBLENBQUk5QyxDQUFJLENBQUMsRUFDMUUsQ0FDRixDQUFBLENBQ01nSCxFQUFBQSxDQUFvQjVELENBQUFBLEVBQWUsQ0FFdkMsR0FEQW1CLEVBQUFBLENBQVluQixDQUFFLENBQUEsQ0FDVkssQ0FBQUEsQ0FBVSxDQUNaLElBQU1yRCxDQUFBQSxDQUFJcUYsQ0FBQUEsQ0FBVXpCLEdBQVksSUFBSSxJQUFBLENBQVFFLENBQUFBLENBQVdFLENBQUFBLENBQVVoQixDQUFFLENBQUEsQ0FDbkVoQixDQUFBQSxHQUFXM0IsQ0FBQUEsQ0FBVVYsQ0FBQUEsQ0FBWUssRUFBR0osQ0FBQUEsQ0FBTXFDLENBQVUsQ0FBQSxDQUFHUyxDQUFBQSxFQUFRLEdBQUk5QyxDQUFJLENBQUMsRUFDMUUsQ0FDRixFQUdNaUgsRUFBQUEsQ0FBaUIsSUFBTSxDQUMzQnRDLENBQUFBLENBQVksS0FBSyxLQUFBLENBQU1mLENBQUFBLENBQVdqRixDQUFjLENBQUEsQ0FBSUEsQ0FBYyxDQUFBLENBQ2xFOEYsQ0FBQUEsQ0FBa0IsSUFBSSxFQUN4QixDQUFBLENBRU15QyxFQUFBQSxDQUFvQmhILENBQUFBLEVBQWMsQ0FDdEMyRCxFQUFZM0QsQ0FBQyxDQUFBLENBQ2J1RSxDQUFBQSxDQUFrQixLQUFLLEVBQ3ZCLElBQU1pQixDQUFBQSxDQUFPMUIsQ0FBQUEsRUFBWSxJQUFJLEtBQ3ZCc0MsQ0FBQUEsQ0FBTzFILENBQUFBLENBQVlzQixDQUFBQSxDQUFHNEQsQ0FBUyxDQUFBLENBQy9CeUMsQ0FBQUEsQ0FBVSxJQUFJLElBQUEsQ0FBS3JHLEVBQUc0RCxDQUFBQSxDQUFXLElBQUEsQ0FBSyxHQUFBLENBQUk0QixDQUFBQSxDQUFLLFNBQVEsQ0FBR1ksQ0FBSSxDQUFDLENBQUEsQ0FDckVyQyxFQUFZc0MsQ0FBTyxDQUFBLENBQ25CVCxDQUFBQSxDQUFXckMsQ0FBQUEsQ0FBV2dDLENBQUFBLENBQVVjLENBQUFBLENBQVNyQyxDQUFBQSxDQUFXRSxDQUFBQSxDQUFVRSxDQUFRLENBQUEsQ0FBSWlDLENBQU8sRUFDbkYsQ0FBQSxDQUVNWSxHQUFnQixJQUFBLENBQUssS0FBQSxDQUFNekMsRUFBQUEsQ0FBVy9GLENBQWMsRUFBSUEsQ0FBQUEsQ0FDeER5SSxFQUFBQSxDQUFRLEtBQUEsQ0FBTSxJQUFBLENBQUssQ0FBRSxNQUFBLENBQVF6SSxDQUFlLENBQUEsQ0FBRyxDQUFDRixFQUFHQyxDQUFBQSxHQUFNeUksRUFBQUEsQ0FBZ0J6SSxDQUFDLENBQUEsQ0FHMUUySSxHQUFlLENBQUEsRUFBd0IsQ0FDM0MsQ0FBQSxDQUFFLGVBQUEsR0FDRnBELENBQUFBLENBQVksSUFBSSxDQUFBLENBQ2hCN0IsQ0FBQUEsR0FBVzNCLENBQUFBLENBQVUsSUFBQSxDQUFNcUMsQ0FBQUEsRUFBUSxFQUFFLENBQUMsRUFDeEMsQ0FBQSxDQUdNd0UsRUFBQUEsQ0FBc0IsQ0FBQSxFQUE2QyxDQUNuRSxDQUFBLENBQUUsR0FBQSxHQUFRLFFBQUEsR0FBWTNELENBQUFBLENBQVUsS0FBSyxDQUFBLENBQUdjLENBQUFBLENBQWtCLEtBQUssQ0FBQSxDQUFHSyxFQUFTLE9BQUEsRUFBUyxJQUFBLEVBQUssQ0FBQSxDQUFBLENBQ3pGLENBQUEsQ0FBRSxNQUFRLFdBQUEsRUFBZSxDQUFBLENBQUUsR0FBQSxHQUFRLE9BQUEsRUFBVyxFQUFFLEdBQUEsR0FBUSxHQUFBLElBQzFELENBQUEsQ0FBRSxjQUFBLEdBQ0ZuQixDQUFBQSxDQUFVLElBQUksQ0FBQSxFQUVsQixDQUFBLENBR000RCxFQUFBQSxDQUFzQjdJLFlBQUEsQ0FBQSxXQUFBLENBQWE4SSxDQUFBQSxFQUFrQyxDQUN6RTFDLEVBQVMsT0FBQSxDQUFVMEMsQ0FBQUEsQ0FDZixPQUFPeEUsQ0FBQUEsRUFBUSxXQUFZQSxDQUFBQSxDQUFJd0UsQ0FBSSxDQUFBLENBQzlCeEUsQ0FBQUEsR0FBS0EsRUFBSSxPQUFBLENBQVV3RSxDQUFBQSxFQUM5QixDQUFBLENBQUcsQ0FBQ3hFLENBQUcsQ0FBQyxDQUFBLENBR0Z5RSxFQUFBQSxDQUFjbkYsQ0FBQUEsR0FDZHRDLElBQVMsTUFBQSxDQUFTLGFBQUEsQ0FBZ0JBLENBQUFBLEdBQVMsVUFBQSxDQUFhLHFCQUF1QixhQUFBLENBQUEsQ0FFL0UwSCxFQUFBQSxDQUNKQyxlQUFBQSxDQUFBQyxtQkFBQUEsQ0FBQSxDQUVHLFFBQUEsQ0FBQSxDQUFBcEQsQ0FBQUEsRUFBa0JoQixFQUFBQSxFQUNqQm1FLGVBQUFBLENBQUMsS0FBQSxDQUFBLENBQUksU0FBQSxDQUFVLDRCQUFBLENBQ2IsUUFBQSxDQUFBLENBQUFBLGdCQUFDLEtBQUEsQ0FBQSxDQUFJLFNBQUEsQ0FBVSx3REFBQSxDQUNiLFFBQUEsQ0FBQSxDQUFBRSxlQUFDLFFBQUEsQ0FBQSxDQUFPLElBQUEsQ0FBSyxRQUFBLENBQVMsU0FBQSxDQUFVLGlEQUFpRCxPQUFBLENBQVMsSUFBTWxELENBQUFBLENBQVlELEVBQUFBLENBQVcvRixDQUFjLENBQUEsQ0FBRyxZQUFBLENBQVcsZ0JBQUEsQ0FBaUIsa0JBQVEsQ0FBQSxDQUM1S2dKLGVBQUFBLENBQUMsTUFBQSxDQUFBLENBQUssU0FBQSxDQUFVLG9CQUFxQixRQUFBLENBQUEsQ0FBQVIsRUFBQUEsQ0FBYyxVQUFBLENBQUlBLEVBQUFBLENBQWdCeEksRUFBaUIsQ0FBQSxDQUFBLENBQUUsQ0FBQSxDQUMxRmtKLGNBQUFBLENBQUMsUUFBQSxDQUFBLENBQU8sSUFBQSxDQUFLLFFBQUEsQ0FBUyxTQUFBLENBQVUsZ0RBQUEsQ0FBaUQsUUFBUyxJQUFNbEQsQ0FBQUEsQ0FBWUQsRUFBQUEsQ0FBVy9GLENBQWMsRUFBRyxZQUFBLENBQVcsWUFBQSxDQUFhLFFBQUEsQ0FBQSxRQUFBLENBQVEsQ0FBQSxDQUFBLENBQzFLLEVBQ0FrSixjQUFBQSxDQUFDLEtBQUEsQ0FBQSxDQUFJLFNBQUEsQ0FBVSxzQkFBQSxDQUNaLFNBQUFULEVBQUFBLENBQU0sR0FBQSxDQUFLbEgsQ0FBQUEsRUFBTSxDQUNoQixJQUFNNEgsQ0FBQUEsQ0FBZ0I1SCxDQUFBQSxHQUFNakIsQ0FBQUEsQ0FBVzJELENBQVEsRUFBRSxXQUFBLEVBQVksQ0FDdkRtRixDQUFBQSxDQUFhL0QsQ0FBQUEsRUFBWTlELElBQU04RCxDQUFBQSxDQUFTLFdBQUEsRUFBWSxDQUMxRCxPQUNFNkQsY0FBQUEsQ0FBQyxRQUFBLENBQUEsQ0FFQyxJQUFBLENBQUssUUFBQSxDQUNMLFVBQVdHLG1CQUFBQSxDQUNULGlDQUFBLENBQ0FELENBQUFBLEVBQWMsYUFBQSxDQUNkLENBQUNBLENBQUFBLEVBQWNELENBQUFBLEVBQWlCLHFCQUFBLENBQ2hDLENBQUNDLEdBQWMsQ0FBQ0QsQ0FBQUEsRUFBaUIsa0JBQ25DLENBQUEsQ0FDQSxPQUFBLENBQVMsSUFBTVosRUFBQUEsQ0FBaUJoSCxDQUFDLEVBRWhDLFFBQUEsQ0FBQUEsQ0FBQUEsQ0FBQUEsQ0FWSUEsQ0FXUCxDQUVKLENBQUMsQ0FBQSxDQUNILENBQUEsQ0FBQSxDQUNGLENBQUEsQ0FJRCxDQUFDc0UsR0FDQXFELGNBQUFBLENBQUFELG1CQUFBQSxDQUFBLENBR0UsUUFBQSxDQUFBRCxlQUFBQSxDQUFDLEtBQUEsQ0FBQSxDQUFJLFNBQUEsQ0FBV0ssbUJBQUFBLENBQUcsU0FBVWhJLENBQUFBLEdBQVMsVUFBQSxDQUFhLFVBQUEsQ0FBYSxhQUFhLEVBRzVFLFFBQUEsQ0FBQSxDQUFBd0QsRUFBQUEsRUFDQ21FLGVBQUFBLENBQUMsS0FBQSxDQUFBLENBQUksVUFBVSx5QkFBQSxDQUViLFFBQUEsQ0FBQSxDQUFBQSxlQUFBQSxDQUFDLEtBQUEsQ0FBQSxDQUFJLFVBQVUsd0RBQUEsQ0FDYixRQUFBLENBQUEsQ0FBQUUsY0FBQUEsQ0FBQyxRQUFBLENBQUEsQ0FBTyxLQUFLLFFBQUEsQ0FBUyxTQUFBLENBQVUsZ0RBQUEsQ0FBaUQsT0FBQSxDQUFTMUIsR0FBaUIsWUFBQSxDQUFXLGdCQUFBLENBQWlCLFFBQUEsQ0FBQSxRQUFBLENBQVEsQ0FBQSxDQUMvSXdCLGdCQUFDLEtBQUEsQ0FBQSxDQUFJLFNBQUEsQ0FBVSxpQ0FBQSxDQUNiLFFBQUEsQ0FBQSxDQUFBRSxjQUFBQSxDQUFDLE1BQUEsQ0FBQSxDQUFLLFNBQUEsQ0FBVSxtQkFBQSxDQUFxQixTQUFBdEosRUFBQUEsQ0FBT3VGLENBQVMsQ0FBQSxDQUFFLENBQUEsQ0FDdkQrRCxlQUFDLFFBQUEsQ0FBQSxDQUNDLElBQUEsQ0FBSyxRQUFBLENBQ0wsU0FBQSxDQUFVLDhFQUNWLE9BQUEsQ0FBU1osRUFBQUEsQ0FDVCxZQUFBLENBQVcsYUFBQSxDQUNYLFFBQUEsQ0FBQXJELENBQUFBLENBQVMsQ0FBQSxDQUFBLENBQ2IsQ0FBQSxDQUNBaUUsZUFBQyxRQUFBLENBQUEsQ0FBTyxJQUFBLENBQUssUUFBQSxDQUFTLFNBQUEsQ0FBVSxpREFBaUQsT0FBQSxDQUFTckIsRUFBQUEsQ0FBaUIsWUFBQSxDQUFXLFlBQUEsQ0FBYSxrQkFBUSxDQUFBLENBQUEsQ0FDN0ksQ0FBQSxDQUdBcUIsY0FBQUEsQ0FBQyxLQUFBLENBQUEsQ0FBSSxTQUFBLENBQVUsd0JBQUEsQ0FDWixRQUFBLENBQUF2SixFQUFBQSxDQUFhLElBQUk4QixDQUFBQSxFQUNoQnlILGNBQUFBLENBQUMsS0FBQSxDQUFBLENBQVksU0FBQSxDQUFVLHVCQUF3QixRQUFBLENBQUF6SCxDQUFBQSxDQUFBQSxDQUFyQ0EsQ0FBdUMsQ0FDbEQsRUFDSCxDQUFBLENBR0F5SCxjQUFBQSxDQUFDLEtBQUEsQ0FBQSxDQUFJLFNBQUEsQ0FBVSx1QkFDWixRQUFBLENBQUEzQixFQUFBQSxDQUFLLEdBQUEsQ0FBSSxDQUFDK0IsRUFBTXZKLENBQUFBLEdBQU0sQ0FDckIsSUFBTXdKLENBQUFBLENBQVVuSixHQUFVa0osQ0FBQUEsQ0FBSyxJQUFBLENBQU14QixFQUFLLENBQUEsQ0FDcENzQixFQUFhL0QsQ0FBQUEsRUFBWWpGLEVBQUFBLENBQVVrSixDQUFBQSxDQUFLLElBQUEsQ0FBTWpFLENBQVEsQ0FBQSxDQUN0RG1FLENBQUFBLENBQVU5SSxFQUFBQSxDQUFjNEksRUFBSyxJQUFBLENBQU1yQixFQUFBQSxDQUFPQyxFQUFLLENBQUEsQ0FDL0N1QixFQUFnQkgsQ0FBQUEsQ0FBSyxTQUFBLEVBQWEsQ0FBQ0UsQ0FBQUEsQ0FFekMsT0FDRU4sY0FBQUEsQ0FBQyxRQUFBLENBQUEsQ0FFQyxJQUFBLENBQUssUUFBQSxDQUNMLFNBQVVPLENBQUFBLENBQ1YsU0FBQSxDQUFXSixtQkFBQUEsQ0FDVCxnQkFBQSxDQUNBRSxHQUFXLHVCQUFBLENBQ1hILENBQUFBLEVBQWMsMEJBQUEsQ0FDZEUsQ0FBQUEsQ0FBSyxXQUFhLHlCQUFBLENBQ2xCLENBQUNFLENBQUFBLEVBQVcsMEJBQ2QsRUFDQSxPQUFBLENBQVMsSUFBTWxDLEVBQUFBLENBQWVnQyxDQUFBQSxDQUFLLElBQUksQ0FBQSxDQUN2QyxRQUFBLENBQVVBLENBQUFBLENBQUssVUFBWSxFQUFBLENBQUssQ0FBQSxDQUUvQixRQUFBLENBQUFBLENBQUFBLENBQUssS0FiRHZKLENBY1AsQ0FFSixDQUFDLENBQUEsQ0FDSCxHQUNGLENBQUEsQ0FJRHNCLENBQUFBLEdBQVMsVUFBQSxFQUFjNkgsY0FBQUEsQ0FBQyxPQUFJLFNBQUEsQ0FBVSxjQUFBLENBQWUsQ0FBQSxDQUdyRHBFLENBQUFBLEVBQ0NrRSxnQkFBQyxLQUFBLENBQUEsQ0FBSSxTQUFBLENBQVUsd0NBQUEsQ0FBeUMsS0FBQSxDQUFPLENBQUUsUUFBQSxDQUFVLEdBQUksQ0FBQSxDQUM1RSxRQUFBLENBQUEsQ0FBQTNILElBQVMsVUFBQSxFQUFjNkgsY0FBQUEsQ0FBQyxLQUFBLENBQUEsQ0FBSSxTQUFBLENBQVUsK0NBQUEsQ0FBZ0QsUUFBQSxDQUFBLE1BQUEsQ0FBSSxDQUFBLENBQzNGRixlQUFBQSxDQUFDLE9BQUksU0FBQSxDQUFVLHFDQUFBLENBRWIsUUFBQSxDQUFBLENBQUFBLGVBQUFBLENBQUMsT0FBSSxTQUFBLENBQVUscUJBQUEsQ0FDYixRQUFBLENBQUEsQ0FBQUUsY0FBQUEsQ0FBQyxPQUFJLFNBQUEsQ0FBVSwyQkFBQSxDQUE0QixRQUFBLENBQUEsTUFBQSxDQUFJLENBQUEsQ0FDL0NBLGNBQUFBLENBQUMsS0FBQSxDQUFBLENBQUksU0FBQSxDQUFVLDRCQUFBLENBQ1osZUFBTSxJQUFBLENBQUssQ0FBRSxNQUFBLENBQVEsRUFBRyxFQUFHLENBQUNwSixDQUFBQSxDQUFHQyxDQUFBQSxHQUFNQSxDQUFBQSxDQUFJLENBQUMsQ0FBQSxDQUFFLEdBQUEsQ0FBSTJCLENBQUFBLEVBQy9Dd0gsY0FBQUEsQ0FBQyxRQUFBLENBQUEsQ0FFQyxJQUFBLENBQUssUUFBQSxDQUNMLFNBQUEsQ0FBV0csb0JBQUcsc0JBQUEsQ0FBd0IzSCxDQUFBQSxHQUFNNkQsQ0FBQUEsRUFBYSxRQUFRLEVBQ2pFLE9BQUEsQ0FBUyxJQUFNNEMsRUFBQUEsQ0FBaUJ6RyxDQUFDLEVBRWhDLFFBQUEsQ0FBQSxNQUFBLENBQU9BLENBQUMsQ0FBQSxDQUFFLFFBQUEsQ0FBUyxFQUFHLEdBQUcsQ0FBQSxDQUFBLENBTHJCQSxDQU1QLENBQ0QsRUFDSCxDQUFBLENBQUEsQ0FDRixDQUFBLENBQ0F3SCxjQUFBQSxDQUFDLE1BQUEsQ0FBQSxDQUFLLFVBQVUsMkJBQUEsQ0FBNEIsUUFBQSxDQUFBLEdBQUEsQ0FBQyxDQUFBLENBRTdDRixlQUFBQSxDQUFDLE9BQUksU0FBQSxDQUFVLHFCQUFBLENBQ2IsUUFBQSxDQUFBLENBQUFFLGNBQUFBLENBQUMsS0FBQSxDQUFBLENBQUksU0FBQSxDQUFVLDJCQUFBLENBQTRCLFFBQUEsQ0FBQSxLQUFBLENBQUcsRUFDOUNBLGNBQUFBLENBQUMsS0FBQSxDQUFBLENBQUksU0FBQSxDQUFVLDRCQUFBLENBQ1osU0FBQXJKLEVBQUFBLENBQVEsR0FBQSxDQUFJOEIsQ0FBQUEsRUFDWHVILGNBQUFBLENBQUMsVUFFQyxJQUFBLENBQUssUUFBQSxDQUNMLFNBQUEsQ0FBV0csbUJBQUFBLENBQUcsdUJBQXdCMUgsQ0FBQUEsR0FBTThELENBQUFBLEVBQVksUUFBUSxDQUFBLENBQ2hFLFFBQVMsSUFBTTJDLEVBQUFBLENBQWdCekcsQ0FBQyxDQUFBLENBRS9CLGdCQUFPQSxDQUFDLENBQUEsQ0FBRSxRQUFBLENBQVMsQ0FBQSxDQUFHLEdBQUcsQ0FBQSxDQUFBLENBTHJCQSxDQU1QLENBQ0QsQ0FBQSxDQUNILENBQUEsQ0FBQSxDQUNGLENBQUEsQ0FFQXFILGVBQUFBLENBQUMsS0FBQSxDQUFBLENBQUksVUFBVSxxQkFBQSxDQUNiLFFBQUEsQ0FBQSxDQUFBRSxjQUFBQSxDQUFDLEtBQUEsQ0FBQSxDQUFJLFVBQVUsMkJBQUEsQ0FBNEIsUUFBQSxDQUFBLE1BQUEsQ0FBTSxDQUFBLENBQ2pEQSxjQUFBQSxDQUFDLE9BQUksU0FBQSxDQUFVLCtCQUFBLENBQ1osUUFBQSxDQUFBLENBQUMsSUFBQSxDQUFNLElBQUksQ0FBQSxDQUFFLEdBQUEsQ0FBSXpFLENBQUFBLEVBQ2hCeUUsY0FBQUEsQ0FBQyxVQUVDLElBQUEsQ0FBSyxRQUFBLENBQ0wsU0FBQSxDQUFXRyxtQkFBQUEsQ0FBRyx1QkFBd0IsNEJBQUEsQ0FBOEIxRCxDQUFBQSxHQUFhbEIsQ0FBQUEsRUFBTSxRQUFRLEVBQy9GLE9BQUEsQ0FBUyxJQUFNNEQsRUFBQUEsQ0FBaUI1RCxDQUFFLENBQUEsQ0FFakMsUUFBQSxDQUFBQSxDQUFBQSxDQUFBQSxDQUxJQSxDQU1QLENBQ0QsQ0FBQSxDQUNILENBQUEsQ0FBQSxDQUNGLENBQUEsQ0FBQSxDQUNGLENBQUEsQ0FBQSxDQUNGLEdBRUosQ0FBQSxDQUNBLENBQUEsQ0FBQSxDQUVKLENBQUEsQ0FHSWlGLEVBQUFBLENBQ0pSLGVBQUMsS0FBQSxDQUFBLENBQ0MsR0FBQSxDQUFLOUMsQ0FBQUEsQ0FDTCxTQUFBLENBQVdpRCxtQkFBQUEsQ0FDVCwwQ0FBQSxDQUNBaEksQ0FBQUEsR0FBUyxVQUFBLEVBQWMsMEJBQ3pCLENBQUEsQ0FDQSxLQUFBLENBQU80RSxFQUFBQSxDQUVOLFFBQUEsQ0FBQThDLEdBQ0gsQ0FBQSxDQUlGLE9BQUl4RixDQUFBQSxDQUVBMkYsY0FBQUEsQ0FBQyxPQUFJLFNBQUEsQ0FBV0csbUJBQUFBLENBQUcsa0RBQUEsQ0FBb0QvRixDQUFTLENBQUEsQ0FDN0UsUUFBQSxDQUFBeUYsRUFBQUEsQ0FDSCxDQUFBLENBS0ZDLGdCQUFDLEtBQUEsQ0FBQSxDQUFJLFNBQUEsQ0FBVSwyREFBQSxDQUE0RCxLQUFBLENBQU8sQ0FBRSxRQUFBLENBQVUsQ0FBRSxDQUFBLENBRTlGLFFBQUEsQ0FBQSxDQUFBQSxnQkFBQyxLQUFBLENBQUEsQ0FBSSxTQUFBLENBQVUsbUJBQUEsQ0FDYixRQUFBLENBQUEsQ0FBQUUsZUFBQyxPQUFBLENBQUEsQ0FDQyxHQUFBLENBQUtOLEVBQUFBLENBQ0wsRUFBQSxDQUFJMUUsR0FDSixJQUFBLENBQU1DLENBQUFBLENBQ04sSUFBQSxDQUFLLE1BQUEsQ0FDTCxTQUFRLElBQUEsQ0FDUixRQUFBLENBQVVMLENBQUFBLENBQ1YsU0FBQSxDQUFXdUYsb0JBQ1QsY0FBQSxDQUNBekYsQ0FBQUEsR0FBUyxJQUFBLEVBQVEsaUJBQUEsQ0FDakJBLENBQUFBLEdBQVMsSUFBQSxFQUFRLGlCQUFBLENBQ2pCLE1BQUEsQ0FDQU4sQ0FDRixDQUFBLENBQ0EsV0FBQSxDQUFhd0YsRUFBQUEsQ0FDYixLQUFBLENBQU8xSCxFQUFZd0QsQ0FBQUEsQ0FBZXZELENBQUFBLENBQU1xQyxDQUFVLENBQUEsQ0FDbEQsUUFBUyxJQUFNLENBQUNJLENBQUFBLEVBQVlrQixDQUFBQSxDQUFVLENBQUNELENBQU0sQ0FBQSxDQUM3QyxTQUFBLENBQVc0RCxFQUFBQSxDQUNYLGdCQUFjLFFBQUEsQ0FDZCxlQUFBLENBQWU1RCxDQUFBQSxDQUNmLFlBQUEsQ0FBYSxNQUNaLEdBQUdYLEVBQUFBLENBQ04sQ0FBQSxDQUVDUCxDQUFBQSxFQUFlZSxHQUFpQixDQUFDZCxDQUFBQSxFQUNoQ29GLGNBQUFBLENBQUMsUUFBQSxDQUFBLENBQ0MsSUFBQSxDQUFLLFFBQUEsQ0FDTCxTQUFBLENBQVUsMkZBQUEsQ0FDVixNQUFPLENBQUUsTUFBQSxDQUFRLENBQUUsQ0FBQSxDQUNuQixRQUFTUixFQUFBQSxDQUNULFFBQUEsQ0FBVSxFQUFBLENBQ1YsWUFBQSxDQUFXLFFBQ1osUUFBQSxDQUFBLE1BQUEsQ0FFRCxDQUFBLENBQUEsQ0FFSixDQUFBLENBR0MzRCxDQUFBQSxFQUFVLENBQUNqQixDQUFBQSxFQUFZdUMsQ0FBQUEsQ0FBVSxPQUFBLEVBQVdzRCxxQkFBQUEsQ0FBYUQsR0FBU3JELENBQUFBLENBQVUsT0FBTyxDQUFBLENBQUEsQ0FDdEYsQ0FFSixDQUFDLEVBRURoRCxFQUFBQSxDQUFXLFdBQUEsQ0FBYyxZQUFBLEtBR2xCdUcsRUFBQUEsQ0FBUXZHIiwiZmlsZSI6ImNodW5rLVhWQVhGRkIzLmNqcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHsgY24gfSBmcm9tICcuLi9saWIvY24uanMnXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogIFR5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZVBpY2tlckNoYW5nZUV2ZW50IHtcbiAgdGFyZ2V0OiB7XG4gICAgdmFsdWU6IHN0cmluZyB8IG51bGxcbiAgICBuYW1lOiBzdHJpbmdcbiAgICB0eXBlOiBzdHJpbmdcbiAgfVxuICBwcmV2ZW50RGVmYXVsdDogKCkgPT4gdm9pZFxuICBzdG9wUHJvcGFnYXRpb246ICgpID0+IHZvaWRcbiAgbmF0aXZlRXZlbnQ6IG51bGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRlUGlja2VyUHJvcHMge1xuICAvKiogUGlja2VyIG1vZGUgKGRlZmF1bHQgJ2RhdGUnKSAqL1xuICBtb2RlPzogJ2RhdGUnIHwgJ3RpbWUnIHwgJ2RhdGV0aW1lJ1xuICAvKiogV2hlbiB0cnVlLCByZW5kZXJzIHRoZSBjYWxlbmRhciBpbmxpbmUgd2l0aG91dCBhbiBpbnB1dCBmaWVsZCBvciB0aW1lIHBpY2tlciAqL1xuICBjYWxlbmRhcj86IGJvb2xlYW5cbiAgLyoqIEN1cnJlbnRseSBzZWxlY3RlZCBEYXRlIChhbGlhcyBmb3IgdmFsdWUpICovXG4gIHNlbGVjdGVkPzogRGF0ZSB8IG51bGxcbiAgLyoqIEN1cnJlbnRseSBzZWxlY3RlZCBEYXRlLCBJU08gc3RyaW5nLCBcImhoOm1tIEFBXCIgdGltZSBzdHJpbmcsIFwiWVlZWS1NTS1ERCBoaDptbSBBQVwiIGRhdGV0aW1lIHN0cmluZywgb3IgdGltZXN0YW1wICovXG4gIHZhbHVlPzogRGF0ZSB8IHN0cmluZyB8IG51bWJlciB8IG51bGxcbiAgLyoqIFN5bnRoZXRpYyBldmVudCBoYW5kbGVyIOKAlCBlLnRhcmdldC52YWx1ZSBpcyBhIHByZS1mb3JtYXR0ZWQgc3RyaW5nICovXG4gIG9uQ2hhbmdlPzogKGU6IERhdGVQaWNrZXJDaGFuZ2VFdmVudCkgPT4gdm9pZFxuICAvKiogRGlzcGxheSBmb3JtYXQgd2l0aCB0b2tlbnM6IHl5eXksIE1NLCBkZCwgaGgsIG1tLCBhYSAqL1xuICBkYXRlRm9ybWF0Pzogc3RyaW5nXG4gIC8qKiBQbGFjZWhvbGRlciB0ZXh0IHdoZW4gZW1wdHkgKi9cbiAgcGxhY2Vob2xkZXJUZXh0Pzogc3RyaW5nXG4gIC8qKiBCb290c3RyYXAgc2l6ZSB2YXJpYW50ICovXG4gIHNpemU/OiAnc20nIHwgJ2xnJ1xuICAvKiogU2hvdyBhIGNsZWFyIGJ1dHRvbiBvbiB0aGUgaW5wdXQgKi9cbiAgaXNDbGVhcmFibGU/OiBib29sZWFuXG4gIC8qKiBEaXNhYmxlIHRoZSBpbnB1dCAqL1xuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgLyoqIEVhcmxpZXN0IHNlbGVjdGFibGUgZGF0ZSDigJQgRGF0ZSwgSVNPL1wiWVlZWS1NTS1ERFwiIHN0cmluZywgb3IgdGltZXN0YW1wIChlLmcuIGFub3RoZXIgRGF0ZVBpY2tlcidzIG9uQ2hhbmdlIHZhbHVlKSAqL1xuICBtaW5EYXRlPzogRGF0ZSB8IHN0cmluZyB8IG51bWJlciB8IG51bGxcbiAgLyoqIExhdGVzdCBzZWxlY3RhYmxlIGRhdGUg4oCUIERhdGUsIElTTy9cIllZWVktTU0tRERcIiBzdHJpbmcsIG9yIHRpbWVzdGFtcCAoZS5nLiBhbm90aGVyIERhdGVQaWNrZXIncyBvbkNoYW5nZSB2YWx1ZSkgKi9cbiAgbWF4RGF0ZT86IERhdGUgfCBzdHJpbmcgfCBudW1iZXIgfCBudWxsXG4gIC8qKiBUaW1lem9uZSBpZGVudGlmaWVyIChkZWZhdWx0ICdBZnJpY2EvS2FtcGFsYScpICovXG4gIHRpbWV6b25lPzogc3RyaW5nXG4gIC8qKiBBZGRpdGlvbmFsIENTUyBjbGFzc2VzIG9uIHRoZSBpbnB1dCAqL1xuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgLyoqIElucHV0IGVsZW1lbnQgSUQgKi9cbiAgaWQ/OiBzdHJpbmdcbiAgLyoqIElucHV0IG5hbWUgYXR0cmlidXRlIOKAlCBzdXJmYWNlcyBhcyBlLnRhcmdldC5uYW1lIGluIG9uQ2hhbmdlICovXG4gIG5hbWU/OiBzdHJpbmdcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgQ29uc3RhbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5jb25zdCBEQVlTX09GX1dFRUsgPSBbJ1N1JywgJ01vJywgJ1R1JywgJ1dlJywgJ1RoJywgJ0ZyJywgJ1NhJ11cbmNvbnN0IE1PTlRIUyA9IFtcbiAgJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLFxuICAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInLFxuXVxuY29uc3QgTUlOVVRFUyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDYwIH0sIChfLCBpKSA9PiBpKVxuY29uc3QgWUVBUlNfUEVSX1BBR0UgPSAxMlxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICBIZWxwZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbmNvbnN0IGRheXNJbk1vbnRoID0gKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlcik6IG51bWJlciA9PlxuICBuZXcgRGF0ZSh5ZWFyLCBtb250aCArIDEsIDApLmdldERhdGUoKVxuXG5jb25zdCBpc1NhbWVEYXkgPSAoYTogRGF0ZSB8IG51bGwsIGI6IERhdGUgfCBudWxsKTogYm9vbGVhbiA9PlxuICBhICE9PSBudWxsICYmIGIgIT09IG51bGwgJiZcbiAgYS5nZXRGdWxsWWVhcigpID09PSBiLmdldEZ1bGxZZWFyKCkgJiZcbiAgYS5nZXRNb250aCgpID09PSBiLmdldE1vbnRoKCkgJiZcbiAgYS5nZXREYXRlKCkgPT09IGIuZ2V0RGF0ZSgpXG5cbi8qKlxuICogUmV0dXJucyBhIERhdGUgb2JqZWN0IChtaWRuaWdodCwgbG9jYWwgdGltZSkgcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50IGRhdGVcbiAqIGluIHRoZSBzcGVjaWZpZWQgdGltZXpvbmUuIFRoaXMgZW5zdXJlcyB0aGUgY2FsZW5kYXIncyBcInRvZGF5XCIgaGlnaGxpZ2h0XG4gKiBhbmQgaW5pdGlhbCB2aWV3IHJlZmxlY3QgdGhlIHRhcmdldCB0aW1lem9uZSByYXRoZXIgdGhhbiB0aGUgYnJvd3NlcidzLlxuICovXG5jb25zdCBnZXRUelRvZGF5ID0gKHR6OiBzdHJpbmcpOiBEYXRlID0+IHtcbiAgY29uc3QgW2RhdGVTdHJdID0gbmV3IERhdGUoKS50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7IHRpbWVab25lOiB0eiwgaG91cjEyOiBmYWxzZSB9KS5zcGxpdCgnLCAnKVxuICBjb25zdCBbbW9udGgsIGRheSwgeWVhcl0gPSBkYXRlU3RyLnNwbGl0KCcvJykubWFwKE51bWJlcilcbiAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5KVxufVxuXG5jb25zdCBpc0RhdGVJblJhbmdlID0gKGRhdGU6IERhdGUsIG1pbjogRGF0ZSB8IG51bGwsIG1heDogRGF0ZSB8IG51bGwpOiBib29sZWFuID0+IHtcbiAgaWYgKG1pbiAmJiBkYXRlIDwgbmV3IERhdGUobWluLmdldEZ1bGxZZWFyKCksIG1pbi5nZXRNb250aCgpLCBtaW4uZ2V0RGF0ZSgpKSkgcmV0dXJuIGZhbHNlXG4gIGlmIChtYXggJiYgZGF0ZSA+IG5ldyBEYXRlKG1heC5nZXRGdWxsWWVhcigpLCBtYXguZ2V0TW9udGgoKSwgbWF4LmdldERhdGUoKSkpIHJldHVybiBmYWxzZVxuICByZXR1cm4gdHJ1ZVxufVxuXG5pbnRlcmZhY2UgQ2FsZW5kYXJDZWxsIHtcbiAgZGF5OiBudW1iZXJcbiAgZGF0ZTogRGF0ZVxuICBpc091dHNpZGU6IGJvb2xlYW5cbn1cblxuY29uc3QgYnVpbGRDYWxlbmRhckdyaWQgPSAoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyKTogQ2FsZW5kYXJDZWxsW10gPT4ge1xuICBjb25zdCBmaXJzdERheSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxKS5nZXREYXkoKVxuICBjb25zdCB0b3RhbERheXMgPSBkYXlzSW5Nb250aCh5ZWFyLCBtb250aClcbiAgY29uc3QgY2VsbHM6IENhbGVuZGFyQ2VsbFtdID0gW11cblxuICBjb25zdCBwcmV2TW9udGhEYXlzID0gZGF5c0luTW9udGgoeWVhciwgbW9udGggLSAxKVxuICBmb3IgKGxldCBpID0gZmlyc3REYXkgLSAxOyBpID49IDA7IGktLSkge1xuICAgIGNvbnN0IGRheSA9IHByZXZNb250aERheXMgLSBpXG4gICAgY2VsbHMucHVzaCh7IGRheSwgZGF0ZTogbmV3IERhdGUoeWVhciwgbW9udGggLSAxLCBkYXkpLCBpc091dHNpZGU6IHRydWUgfSlcbiAgfVxuXG4gIGZvciAobGV0IGQgPSAxOyBkIDw9IHRvdGFsRGF5czsgZCsrKSB7XG4gICAgY2VsbHMucHVzaCh7IGRheTogZCwgZGF0ZTogbmV3IERhdGUoeWVhciwgbW9udGgsIGQpLCBpc091dHNpZGU6IGZhbHNlIH0pXG4gIH1cblxuICBjb25zdCByZW1haW5pbmcgPSA0MiAtIGNlbGxzLmxlbmd0aFxuICBmb3IgKGxldCBkID0gMTsgZCA8PSByZW1haW5pbmc7IGQrKykge1xuICAgIGNlbGxzLnB1c2goeyBkYXk6IGQsIGRhdGU6IG5ldyBEYXRlKHllYXIsIG1vbnRoICsgMSwgZCksIGlzT3V0c2lkZTogdHJ1ZSB9KVxuICB9XG5cbiAgcmV0dXJuIGNlbGxzXG59XG5cbmNvbnN0IGZvcm1hdFZhbHVlID0gKGRhdGU6IERhdGUgfCBudWxsLCBtb2RlOiBzdHJpbmcsIGZtdD86IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGlmICghZGF0ZSB8fCBpc05hTihkYXRlLmdldFRpbWUoKSkpIHJldHVybiAnJ1xuXG4gIGNvbnN0IHkgPSBkYXRlLmdldEZ1bGxZZWFyKClcbiAgY29uc3QgTSA9IFN0cmluZyhkYXRlLmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCAnMCcpXG4gIGNvbnN0IGQgPSBTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJylcbiAgbGV0IGggPSBkYXRlLmdldEhvdXJzKClcbiAgY29uc3QgbSA9IFN0cmluZyhkYXRlLmdldE1pbnV0ZXMoKSkucGFkU3RhcnQoMiwgJzAnKVxuICBjb25zdCBhID0gaCA+PSAxMiA/ICdQTScgOiAnQU0nXG4gIGggPSBoICUgMTIgfHwgMTJcbiAgY29uc3QgaGggPSBTdHJpbmcoaCkucGFkU3RhcnQoMiwgJzAnKVxuXG4gIGlmIChmbXQpIHtcbiAgICByZXR1cm4gZm10LnJlcGxhY2UoJ3l5eXknLCBTdHJpbmcoeSkpLnJlcGxhY2UoJ01NJywgTSkucmVwbGFjZSgnZGQnLCBkKS5yZXBsYWNlKCdoaCcsIGhoKS5yZXBsYWNlKCdtbScsIG0pLnJlcGxhY2UoJ2FhJywgYSlcbiAgfVxuXG4gIHN3aXRjaCAobW9kZSkge1xuICAgIGNhc2UgJ3RpbWUnOiAgICAgcmV0dXJuIGAke2hofToke219ICR7YX1gXG4gICAgY2FzZSAnZGF0ZXRpbWUnOiByZXR1cm4gYCR7eX0tJHtNfS0ke2R9ICR7aGh9OiR7bX0gJHthfWBcbiAgICBkZWZhdWx0OiAgICAgICAgIHJldHVybiBgJHt5fS0ke019LSR7ZH1gXG4gIH1cbn1cblxuLyoqXG4gKiBCdWlsZCBhIHN5bnRoZXRpYyBldmVudCBvYmplY3QgbGlrZSBhIG5hdGl2ZSBpbnB1dCdzIG9uQ2hhbmdlLlxuICovXG5jb25zdCBtYWtlRXZlbnQgPSAodmFsdWU6IHN0cmluZyB8IG51bGwsIGlucHV0TmFtZTogc3RyaW5nLCB0eXBlOiBzdHJpbmcgPSAnZGF0ZScpOiBEYXRlUGlja2VyQ2hhbmdlRXZlbnQgPT4gKHtcbiAgdGFyZ2V0OiB7XG4gICAgdmFsdWUsXG4gICAgbmFtZTogaW5wdXROYW1lLFxuICAgIHR5cGUsXG4gIH0sXG4gIHByZXZlbnREZWZhdWx0OiAoKSA9PiB7fSxcbiAgc3RvcFByb3BhZ2F0aW9uOiAoKSA9PiB7fSxcbiAgbmF0aXZlRXZlbnQ6IG51bGwsXG59KVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICBQb3BvdmVyIHBvc2l0aW9uaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKiBBcHByb3hpbWF0ZSBoZWlnaHRzIOKAlCB1c2VkIGFzIGEgZmlyc3QgZ3Vlc3MgYmVmb3JlIHRoZSByZWFsIERPTSBoZWlnaHQgaXMgbWVhc3VyZWQuICovXG5jb25zdCBQT1BPVkVSX0dVRVNTOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0geyBkYXRlOiAzMDAsIHRpbWU6IDMwMCwgZGF0ZXRpbWU6IDQwMCwgeWVhcjogMjUwIH1cblxuLyoqIEFwcHJveGltYXRlIHdpZHRocyDigJQgdXNlZCBhcyBhIGZpcnN0IGd1ZXNzIGJlZm9yZSB0aGUgcmVhbCBET00gd2lkdGggaXMgbWVhc3VyZWQuICovXG5jb25zdCBQT1BPVkVSX1dJRFRIX0dVRVNTOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0geyBkYXRlOiAyODAsIHRpbWU6IDIyMCwgZGF0ZXRpbWU6IDQ0MCwgeWVhcjogMjgwIH1cblxuLyoqXG4gKiBTdHlsZSBhcHBsaWVkIHdoaWxlIHRoZSBwb3BvdmVyIGlzIG1vdW50ZWQgYnV0IG5vdCB5ZXQgbWVhc3VyZWQuXG4gKiBgd2lkdGg6IG1heC1jb250ZW50YCBtYWtlcyB0aGUgZmlyc3QgbWVhc3VyZW1lbnQgcmVmbGVjdCB0aGUgcmVhbCBjb250ZW50XG4gKiB3aWR0aCAoYW4gZW1wdHkgc3R5bGUgbGV0cyB0aGUgY2FyZCBzdHJldGNoIHRvIHRoZSBib2R5IHdpZHRoLCB3aGljaFxuICogcG9pc29uZWQgdGhlIGZpcnN0LW9wZW4gcG9zaXRpb24pLCBhbmQgYHZpc2liaWxpdHk6IGhpZGRlbmAgcHJldmVudHMgYVxuICogbWlzcG9zaXRpb25lZCBmbGFzaCBiZWZvcmUgdGhlIG1lYXN1cmVkIHN0eWxlIGxhbmRzLlxuICovXG5jb25zdCBQUkVfUE9TSVRJT05fU1RZTEU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gIHBvc2l0aW9uOiAnZml4ZWQnLFxuICB0b3A6IDAsXG4gIGxlZnQ6IDAsXG4gIHdpZHRoOiAnbWF4LWNvbnRlbnQnLFxuICB2aXNpYmlsaXR5OiAnaGlkZGVuJyxcbiAgekluZGV4OiAxMDcwLFxufVxuXG4vKiogdXNlTGF5b3V0RWZmZWN0IHRoYXQgaXMgU1NSLXNhZmUgKGZhbGxzIGJhY2sgdG8gdXNlRWZmZWN0IG9uIHRoZSBzZXJ2ZXIpLiAqL1xuY29uc3QgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCA9XG4gIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gUmVhY3QudXNlTGF5b3V0RWZmZWN0IDogUmVhY3QudXNlRWZmZWN0XG5cbi8qKlxuICogRmluZCB0aGUgbmVhcmVzdCBzY3JvbGxhYmxlIGFuY2VzdG9yIChmb3IgY2FwdHVyaW5nIHNjcm9sbCBldmVudHMgaW5zaWRlXG4gKiBtb2RhbHMgLyBzaWRlIHBhbmVscyAvIGN1c3RvbSBjb250YWluZXJzKS5cbiAqL1xuY29uc3QgZ2V0U2Nyb2xsUGFyZW50ID0gKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpOiBIVE1MRWxlbWVudCA9PiB7XG4gIGlmICghZWwpIHJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRcbiAgbGV0IHBhcmVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWwucGFyZW50RWxlbWVudFxuICB3aGlsZSAocGFyZW50KSB7XG4gICAgY29uc3Qgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwYXJlbnQpXG4gICAgY29uc3Qgb3ZlcmZsb3dZID0gc3R5bGUub3ZlcmZsb3dZIHx8IHN0eWxlLm92ZXJmbG93XG4gICAgaWYgKG92ZXJmbG93WSA9PT0gJ2F1dG8nIHx8IG92ZXJmbG93WSA9PT0gJ3Njcm9sbCcpIHJldHVybiBwYXJlbnRcbiAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudFxuICB9XG4gIHJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRcbn1cblxuY29uc3QgY2FsY1BvcG92ZXJTdHlsZSA9IChpbnB1dEVsOiBIVE1MRWxlbWVudCB8IG51bGwsIHBvcG92ZXJIZWlnaHQ6IG51bWJlciwgcG9wb3ZlcldpZHRoOiBudW1iZXIpOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0+IHtcbiAgaWYgKCFpbnB1dEVsKSByZXR1cm4ge31cbiAgY29uc3QgcmVjdCA9IGlucHV0RWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgY29uc3QgaCA9IHBvcG92ZXJIZWlnaHQgfHwgMzAwXG5cbiAgY29uc3Qgc3BhY2VCZWxvdyA9IHdpbmRvdy5pbm5lckhlaWdodCAtIHJlY3QuYm90dG9tXG4gIGNvbnN0IHNwYWNlQWJvdmUgPSByZWN0LnRvcFxuXG4gIC8qIE9ubHkgZmxpcCBhYm92ZSB3aGVuIGJlbG93IGlzIHRydWx5IHRvbyB0aWdodCBBTkQgYWJvdmUgb2ZmZXJzIG1vcmUgcm9vbSAqL1xuICBjb25zdCBwbGFjZUFib3ZlID0gc3BhY2VCZWxvdyA8IGggJiYgc3BhY2VBYm92ZSA+IHNwYWNlQmVsb3dcblxuICAvKiBSZXNwb25zaXZlOiB1c2Ugc21hbGxlciBtaW4td2lkdGggb24gbW9iaWxlIHRvIHByZXZlbnQgb3ZlcmZsb3cuXG4gICAgIFRoZSBwb3BvdmVyIHNpemVzIHRvIGl0cyBjb250ZW50IOKAlCBpdCBtdXN0IE5PVCBzdHJldGNoIHdpdGggYSB3aWRlIGlucHV0LFxuICAgICBzbyByZWN0LndpZHRoIGlzIGludGVudGlvbmFsbHkgaWdub3JlZCBmb3Igc2l6aW5nLiAqL1xuICBjb25zdCBtaW5XID0gd2luZG93LmlubmVyV2lkdGggPCA1NzYgPyAyMjAgOiAyNjBcbiAgY29uc3QgdyA9IHBvcG92ZXJXaWR0aCB8fCBtaW5XXG5cbiAgcmV0dXJuIHtcbiAgICBwb3NpdGlvbjogJ2ZpeGVkJyxcbiAgICB0b3A6IHBsYWNlQWJvdmUgPyBNYXRoLm1heCg0LCByZWN0LnRvcCAtIGggLSA0KSA6IHJlY3QuYm90dG9tICsgNCxcbiAgICBsZWZ0OiBNYXRoLm1heCg0LCBNYXRoLm1pbihyZWN0LmxlZnQsIHdpbmRvdy5pbm5lcldpZHRoIC0gdyAtIDQpKSxcbiAgICBtaW5XaWR0aDogbWluVyxcbiAgICB3aWR0aDogJ21heC1jb250ZW50JyxcbiAgICBtYXhXaWR0aDogd2luZG93LmlubmVyV2lkdGggLSA4LFxuICAgIHpJbmRleDogMTA3MCxcbiAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICBEYXRlUGlja2VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogQ3VzdG9tIEJvb3RzdHJhcC1zdHlsZWQgZGF0ZSAvIHRpbWUgLyBkYXRldGltZSBwaWNrZXIuIFplcm8gZGVwZW5kZW5jaWVzLlxuICpcbiAqICoqSW1wb3J0YW50OioqIFRoZSBhY2NvbXBhbnlpbmcgQ1NTICoqbXVzdCoqIGJlIGltcG9ydGVkIGZvciB0aGUgcGlja2VyIHRvIHJlbmRlciBjb3JyZWN0bHk6XG4gKiBgYGBqc1xuICogaW1wb3J0ICdyZWFjdC1ib290c3RyYXAtcGx1Z2lucy9jc3MvcGx1Z2lucy5jc3MnXG4gKiBgYGBcbiAqL1xuY29uc3QgRGF0ZVBpY2tlciA9IFJlYWN0LmZvcndhcmRSZWY8SFRNTElucHV0RWxlbWVudCwgRGF0ZVBpY2tlclByb3BzPigoe1xuICBjbGFzc05hbWUsXG4gIG1vZGUgPSAnZGF0ZScsXG4gIGNhbGVuZGFyID0gZmFsc2UsXG4gIHNlbGVjdGVkLFxuICB2YWx1ZSxcbiAgb25DaGFuZ2UsXG4gIGRhdGVGb3JtYXQsXG4gIHBsYWNlaG9sZGVyVGV4dCxcbiAgc2l6ZSxcbiAgaXNDbGVhcmFibGUgPSBmYWxzZSxcbiAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgbWluRGF0ZSxcbiAgbWF4RGF0ZSxcbiAgdGltZXpvbmUgPSAnQWZyaWNhL0thbXBhbGEnLFxuICBpZCxcbiAgbmFtZSxcbiAgLi4ucHJvcHNcbn0sIHJlZikgPT4ge1xuICAvKiAtLS0tIGRlcml2ZWQgLS0tLSAqL1xuICBjb25zdCByZXNvbHZlVmFsdWUgPSAodjogRGF0ZSB8IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQpOiBEYXRlIHwgbnVsbCA9PiB7XG4gICAgaWYgKCF2KSByZXR1cm4gbnVsbFxuICAgIGlmICh2IGluc3RhbmNlb2YgRGF0ZSkgcmV0dXJuIGlzTmFOKHYuZ2V0VGltZSgpKSA/IG51bGwgOiB2XG4gICAgaWYgKHR5cGVvZiB2ID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdiA9PT0gJ251bWJlcicpIHtcbiAgICAgIC8vIFN0YW5kYXJkIERhdGUgcGFyc2luZyAod29ya3MgZm9yIElTTyA4NjAxLCBcIllZWVktTU0tRERcIiwgZXRjLilcbiAgICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSh2KVxuICAgICAgaWYgKCFpc05hTihkLmdldFRpbWUoKSkpIHJldHVybiBkXG5cbiAgICAgIC8vIEhhbmRsZSB0aW1lLW9ubHkgc3RyaW5ncyBmcm9tIGZvcm1hdFZhbHVlOiBcImhoOm1tIEFBXCJcbiAgICAgIGlmICh0eXBlb2YgdiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc3QgdGltZU1hdGNoID0gdi5tYXRjaCgvXihcXGR7MSwyfSk6KFxcZHsyfSlcXHMqKEFNfFBNKSQvaSlcbiAgICAgICAgaWYgKHRpbWVNYXRjaCkge1xuICAgICAgICAgIGxldCBoID0gcGFyc2VJbnQodGltZU1hdGNoWzFdLCAxMClcbiAgICAgICAgICBjb25zdCBtID0gcGFyc2VJbnQodGltZU1hdGNoWzJdLCAxMClcbiAgICAgICAgICBjb25zdCBhcCA9IHRpbWVNYXRjaFszXS50b1VwcGVyQ2FzZSgpXG4gICAgICAgICAgaWYgKGggPT09IDEyICYmIGFwID09PSAnQU0nKSBoID0gMFxuICAgICAgICAgIGlmIChoICE9PSAxMiAmJiBhcCA9PT0gJ1BNJykgaCArPSAxMlxuICAgICAgICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKClcbiAgICAgICAgICByZXR1cm4gbmV3IERhdGUobm93LmdldEZ1bGxZZWFyKCksIG5vdy5nZXRNb250aCgpLCBub3cuZ2V0RGF0ZSgpLCBoLCBtLCAwLCAwKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gSGFuZGxlIGRhdGV0aW1lIHN0cmluZ3MgZnJvbSBmb3JtYXRWYWx1ZTogXCJZWVlZLU1NLUREIGhoOm1tIEFBXCJcbiAgICAgICAgY29uc3QgZHRNYXRjaCA9IHYubWF0Y2goL14oXFxkezR9KS0oXFxkezJ9KS0oXFxkezJ9KVxccysoXFxkezEsMn0pOihcXGR7Mn0pXFxzKihBTXxQTSkkL2kpXG4gICAgICAgIGlmIChkdE1hdGNoKSB7XG4gICAgICAgICAgbGV0IGggPSBwYXJzZUludChkdE1hdGNoWzRdLCAxMClcbiAgICAgICAgICBjb25zdCBtID0gcGFyc2VJbnQoZHRNYXRjaFs1XSwgMTApXG4gICAgICAgICAgY29uc3QgYXAgPSBkdE1hdGNoWzZdLnRvVXBwZXJDYXNlKClcbiAgICAgICAgICBpZiAoaCA9PT0gMTIgJiYgYXAgPT09ICdBTScpIGggPSAwXG4gICAgICAgICAgaWYgKGggIT09IDEyICYmIGFwID09PSAnUE0nKSBoICs9IDEyXG4gICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHBhcnNlSW50KGR0TWF0Y2hbMV0pLCBwYXJzZUludChkdE1hdGNoWzJdKSAtIDEsIHBhcnNlSW50KGR0TWF0Y2hbM10pLCBoLCBtLCAwLCAwKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IHJlc29sdmVkVmFsdWUgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IHJlc29sdmVWYWx1ZShzZWxlY3RlZCA/PyB2YWx1ZSksXG4gICAgW1xuICAgICAgc2VsZWN0ZWQgaW5zdGFuY2VvZiBEYXRlID8gc2VsZWN0ZWQuZ2V0VGltZSgpIDogc2VsZWN0ZWQsXG4gICAgICB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZS5nZXRUaW1lKCkgOiB2YWx1ZSxcbiAgICBdLFxuICApXG4gIGNvbnN0IHNob3dDYWxlbmRhciA9IGNhbGVuZGFyIHx8IG1vZGUgPT09ICdkYXRlJyB8fCBtb2RlID09PSAnZGF0ZXRpbWUnXG4gIGNvbnN0IHNob3dUaW1lID0gIWNhbGVuZGFyICYmIChtb2RlID09PSAndGltZScgfHwgbW9kZSA9PT0gJ2RhdGV0aW1lJylcblxuICAvKiAtLS0tIGludGVybmFsIHN0YXRlIC0tLS0gKi9cbiAgY29uc3QgW2lzT3Blbiwgc2V0SXNPcGVuXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbdmlld1llYXIsIHNldFZpZXdZZWFyXSA9IFJlYWN0LnVzZVN0YXRlKCgpID0+XG4gICAgcmVzb2x2ZWRWYWx1ZSA/IHJlc29sdmVkVmFsdWUuZ2V0RnVsbFllYXIoKSA6IGdldFR6VG9kYXkodGltZXpvbmUpLmdldEZ1bGxZZWFyKCkpXG4gIGNvbnN0IFt2aWV3TW9udGgsIHNldFZpZXdNb250aF0gPSBSZWFjdC51c2VTdGF0ZSgoKSA9PlxuICAgIHJlc29sdmVkVmFsdWUgPyByZXNvbHZlZFZhbHVlLmdldE1vbnRoKCkgOiBnZXRUelRvZGF5KHRpbWV6b25lKS5nZXRNb250aCgpKVxuICBjb25zdCBbdGVtcERhdGUsIHNldFRlbXBEYXRlXSA9IFJlYWN0LnVzZVN0YXRlPERhdGUgfCBudWxsPihyZXNvbHZlZFZhbHVlKVxuICBjb25zdCBbdGVtcEhvdXJzLCBzZXRUZW1wSG91cnNdID0gUmVhY3QudXNlU3RhdGUoKCkgPT5cbiAgICByZXNvbHZlZFZhbHVlID8gKHJlc29sdmVkVmFsdWUuZ2V0SG91cnMoKSAlIDEyIHx8IDEyKSA6IDEyKVxuICBjb25zdCBbdGVtcE1pbnMsIHNldFRlbXBNaW5zXSA9IFJlYWN0LnVzZVN0YXRlKCgpID0+XG4gICAgcmVzb2x2ZWRWYWx1ZSA/IHJlc29sdmVkVmFsdWUuZ2V0TWludXRlcygpIDogMClcbiAgY29uc3QgW3RlbXBBbVBtLCBzZXRUZW1wQW1QbV0gPSBSZWFjdC51c2VTdGF0ZSgoKSA9PlxuICAgIHJlc29sdmVkVmFsdWUgPyAocmVzb2x2ZWRWYWx1ZS5nZXRIb3VycygpID49IDEyID8gJ1BNJyA6ICdBTScpIDogJ0FNJylcbiAgY29uc3QgW3Nob3dZZWFyUGlja2VyLCBzZXRTaG93WWVhclBpY2tlcl0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3llYXJQYWdlLCBzZXRZZWFyUGFnZV0gPSBSZWFjdC51c2VTdGF0ZSgoKSA9PlxuICAgIE1hdGguZmxvb3IoKHJlc29sdmVkVmFsdWUgPyByZXNvbHZlZFZhbHVlLmdldEZ1bGxZZWFyKCkgOiBnZXRUelRvZGF5KHRpbWV6b25lKS5nZXRGdWxsWWVhcigpKSAvIFlFQVJTX1BFUl9QQUdFKSAqIFlFQVJTX1BFUl9QQUdFXG4gIClcbiAgY29uc3QgW3BvcG92ZXJTdHlsZSwgc2V0UG9wb3ZlclN0eWxlXSA9IFJlYWN0LnVzZVN0YXRlPFJlYWN0LkNTU1Byb3BlcnRpZXM+KFBSRV9QT1NJVElPTl9TVFlMRSlcblxuICBjb25zdCBpbnB1dFJlZiA9IFJlYWN0LnVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKVxuICBjb25zdCBwb3BvdmVyUmVmID0gUmVhY3QudXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBwb3J0YWxSZWYgPSBSZWFjdC51c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKVxuXG4gIC8qIC0tLS0gcG9ydGFsIGNvbnRhaW5lciAtLS0tICovXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgIGVsLmNsYXNzTmFtZSA9ICdkYXRlcGlja2VyLXBvcnRhbC1yb290J1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWwpXG4gICAgcG9ydGFsUmVmLmN1cnJlbnQgPSBlbFxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoZWwucGFyZW50Tm9kZSkgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbClcbiAgICAgIHBvcnRhbFJlZi5jdXJyZW50ID0gbnVsbFxuICAgIH1cbiAgfSwgW10pXG5cbiAgLyogLS0tLSBzeW5jIHRlbXAgc3RhdGUgd2hlbiB2YWx1ZSBjaGFuZ2VzIGV4dGVybmFsbHkgLS0tLSAqL1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChyZXNvbHZlZFZhbHVlICYmICFpc05hTihyZXNvbHZlZFZhbHVlLmdldFRpbWUoKSkpIHtcbiAgICAgIHNldFRlbXBEYXRlKHJlc29sdmVkVmFsdWUpXG4gICAgICBzZXRWaWV3WWVhcihyZXNvbHZlZFZhbHVlLmdldEZ1bGxZZWFyKCkpXG4gICAgICBzZXRWaWV3TW9udGgocmVzb2x2ZWRWYWx1ZS5nZXRNb250aCgpKVxuICAgICAgc2V0VGVtcEhvdXJzKHJlc29sdmVkVmFsdWUuZ2V0SG91cnMoKSAlIDEyIHx8IDEyKVxuICAgICAgc2V0VGVtcE1pbnMocmVzb2x2ZWRWYWx1ZS5nZXRNaW51dGVzKCkpXG4gICAgICBzZXRUZW1wQW1QbShyZXNvbHZlZFZhbHVlLmdldEhvdXJzKCkgPj0gMTIgPyAnUE0nIDogJ0FNJylcbiAgICAgIHNldFllYXJQYWdlKE1hdGguZmxvb3IocmVzb2x2ZWRWYWx1ZS5nZXRGdWxsWWVhcigpIC8gWUVBUlNfUEVSX1BBR0UpICogWUVBUlNfUEVSX1BBR0UpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFRlbXBEYXRlKG51bGwpXG4gICAgfVxuICB9LCBbcmVzb2x2ZWRWYWx1ZV0pXG5cbiAgLyogLS0tLSByZXBvc2l0aW9uIHBvcG92ZXIgb24gb3BlbiAvIHNjcm9sbCAvIHJlc2l6ZSAtLS0tICovXG4gIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaXNPcGVuKSB7XG4gICAgICAvKiBSZXNldCBzbyB0aGUgbmV4dCBvcGVuIHN0YXJ0cyBoaWRkZW4gdW50aWwgbWVhc3VyZWQg4oCUIHJldXNpbmcgdGhlIGxhc3RcbiAgICAgICAgIHBvc2l0aW9uIHdvdWxkIGZsYXNoIHRoZSBwb3BvdmVyIGF0IHRoZSBwcmV2aW91cyBsb2NhdGlvbiAqL1xuICAgICAgc2V0UG9wb3ZlclN0eWxlKFBSRV9QT1NJVElPTl9TVFlMRSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8qIE1lYXN1cmUgYWN0dWFsIHBvcG92ZXIgc2l6ZSBzbyB3ZSBwb3NpdGlvbiB3aXRoIG5vIHdhc3RlZCBzcGFjZSAqL1xuICAgIGNvbnN0IGdldEhlaWdodCA9ICgpOiBudW1iZXIgPT4ge1xuICAgICAgaWYgKHBvcG92ZXJSZWYuY3VycmVudCkge1xuICAgICAgICByZXR1cm4gcG9wb3ZlclJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodFxuICAgICAgfVxuICAgICAgcmV0dXJuIFBPUE9WRVJfR1VFU1Nbc2hvd1llYXJQaWNrZXIgPyAneWVhcicgOiBtb2RlXSB8fCAzMDBcbiAgICB9XG4gICAgY29uc3QgZ2V0V2lkdGggPSAoKTogbnVtYmVyID0+IHtcbiAgICAgIGlmIChwb3BvdmVyUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuIHBvcG92ZXJSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aFxuICAgICAgfVxuICAgICAgcmV0dXJuIFBPUE9WRVJfV0lEVEhfR1VFU1Nbc2hvd1llYXJQaWNrZXIgPyAneWVhcicgOiBtb2RlXSB8fCAyODBcbiAgICB9XG5cbiAgICBjb25zdCBzY3JvbGxQYXJlbnQgPSBnZXRTY3JvbGxQYXJlbnQoaW5wdXRSZWYuY3VycmVudClcblxuICAgIGNvbnN0IHVwZGF0ZSA9ICgpID0+IHtcbiAgICAgIHNldFBvcG92ZXJTdHlsZShjYWxjUG9wb3ZlclN0eWxlKGlucHV0UmVmLmN1cnJlbnQsIGdldEhlaWdodCgpLCBnZXRXaWR0aCgpKSlcbiAgICB9XG4gICAgLyogUG9zaXRpb24gc3luY2hyb25vdXNseSBiZWZvcmUgcGFpbnQg4oCUIHRoZSBwb3BvdmVyIGlzIGFscmVhZHkgbW91bnRlZFxuICAgICAgIChoaWRkZW4sIGNvbnRlbnQtc2l6ZWQgdmlhIFBSRV9QT1NJVElPTl9TVFlMRSkgc28gbWVhc3VyZW1lbnRzIGFyZSByZWFsICovXG4gICAgdXBkYXRlKClcblxuICAgIC8qIFRocm90dGxlIHNjcm9sbC9yZXNpemUgcmVwb3NpdGlvbmluZyB0byBhbmltYXRpb24gZnJhbWVzICovXG4gICAgbGV0IHJhZiA9IDBcbiAgICBjb25zdCBzY2hlZHVsZVVwZGF0ZSA9ICgpID0+IHtcbiAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHJhZilcbiAgICAgIHJhZiA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSh1cGRhdGUpXG4gICAgfVxuXG4gICAgLyogTGlzdGVuIG9uIHRoZSBuZWFyZXN0IHNjcm9sbGFibGUgYW5jZXN0b3IgKGUuZy4gbW9kYWwgYm9keSkgQU5EIHRoZSB3aW5kb3cgKi9cbiAgICBzY3JvbGxQYXJlbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgc2NoZWR1bGVVcGRhdGUsIHsgcGFzc2l2ZTogdHJ1ZSB9KVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBzY2hlZHVsZVVwZGF0ZSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmFmKVxuICAgICAgc2Nyb2xsUGFyZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHNjaGVkdWxlVXBkYXRlKVxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHNjaGVkdWxlVXBkYXRlKVxuICAgIH1cbiAgfSwgW2lzT3BlbiwgbW9kZSwgc2hvd1llYXJQaWNrZXJdKVxuXG4gIC8qIC0tLS0gY2xpY2sgb3V0c2lkZSB0byBjbG9zZSAtLS0tICovXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc09wZW4pIHJldHVyblxuICAgIGNvbnN0IGhhbmRsZXIgPSAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKHBvcG92ZXJSZWYuY3VycmVudCAmJiAhcG9wb3ZlclJlZi5jdXJyZW50LmNvbnRhaW5zKGUudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgaW5wdXRSZWYuY3VycmVudCAmJiAhaW5wdXRSZWYuY3VycmVudC5jb250YWlucyhlLnRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgICBzZXRJc09wZW4oZmFsc2UpXG4gICAgICAgIHNldFNob3dZZWFyUGlja2VyKGZhbHNlKVxuICAgICAgfVxuICAgIH1cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVyKVxuICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVyKVxuICB9LCBbaXNPcGVuXSlcblxuICAvKiAtLS0tIGNvbW1pdCBoZWxwZXJzIC0tLS0gKi9cbiAgY29uc3QgYnVpbGREYXRlID0gKGJhc2U6IERhdGUsIGgxMjogbnVtYmVyLCBtaW5zOiBudW1iZXIsIGFtcG06IHN0cmluZyk6IERhdGUgPT4ge1xuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZShiYXNlKVxuICAgIGxldCBoID0gaDEyICUgMTJcbiAgICBpZiAoYW1wbSA9PT0gJ1BNJykgaCArPSAxMlxuICAgIGlmIChoID09PSAxMiAmJiBhbXBtID09PSAnQU0nKSBoID0gMFxuICAgIGQuc2V0SG91cnMoaCwgbWlucywgMCwgMClcbiAgICByZXR1cm4gZFxuICB9XG5cbiAgLyoqXG4gICAqIEZpcmUgb25DaGFuZ2Ugd2l0aCBhIHByZS1idWlsdCBkYXRlIHdpdGhvdXQgY2xvc2luZyB0aGUgcG9wb3Zlci5cbiAgICogQ2FsbGVycyBtdXN0IGJ1aWxkIHRoZSBjb21wbGV0ZSBkYXRlIChpbmNsdWRpbmcgdGltZSkgYmVmb3JlIHBhc3NpbmcgaXQgaW4uXG4gICAqL1xuICBjb25zdCBmaXJlQ2hhbmdlID0gKGRhdGU6IERhdGUgfCBudWxsKTogdm9pZCA9PiB7XG4gICAgaWYgKCFkYXRlIHx8IGlzTmFOKGRhdGUuZ2V0VGltZSgpKSkgcmV0dXJuXG4gICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0VmFsdWUoZGF0ZSwgbW9kZSwgZGF0ZUZvcm1hdClcbiAgICBvbkNoYW5nZT8uKG1ha2VFdmVudChmb3JtYXR0ZWQsIG5hbWUgfHwgJycsIG1vZGUpKVxuICB9XG5cbiAgY29uc3QgY29tbWl0ID0gKGRhdGU6IERhdGUgfCBudWxsKTogdm9pZCA9PiB7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICBvbkNoYW5nZT8uKG1ha2VFdmVudChudWxsLCBuYW1lIHx8ICcnLCBtb2RlKSlcbiAgICAgIHNldElzT3BlbihmYWxzZSlcbiAgICAgIHNldFNob3dZZWFyUGlja2VyKGZhbHNlKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGZpcmVDaGFuZ2UoZGF0ZSlcbiAgICBpZiAobW9kZSA9PT0gJ2RhdGUnKSB7IHNldElzT3BlbihmYWxzZSk7IHNldFNob3dZZWFyUGlja2VyKGZhbHNlKSB9XG4gIH1cblxuICBjb25zdCBjb21taXREYXRlT25seSA9IChkYXRlOiBEYXRlKTogdm9pZCA9PiB7XG4gICAgc2V0VGVtcERhdGUoZGF0ZSlcbiAgICBpZiAobW9kZSA9PT0gJ2RhdGUnIHx8IGNhbGVuZGFyKSB7XG4gICAgICBjb21taXQoZGF0ZSlcbiAgICB9IGVsc2UgaWYgKG1vZGUgPT09ICdkYXRldGltZScpIHtcbiAgICAgIC8vIEJ1aWxkIGZ1bGwgZGF0ZXRpbWUgKGRhdGUgKyBjdXJyZW50IHRpbWUgc2VsZWN0aW9uKSBhbmQgZmlyZVxuICAgICAgY29uc3QgZCA9IGJ1aWxkRGF0ZShkYXRlLCB0ZW1wSG91cnMsIHRlbXBNaW5zLCB0ZW1wQW1QbSlcbiAgICAgIGZpcmVDaGFuZ2UoZClcbiAgICB9XG4gIH1cblxuICAvKiAtLS0tIGNhbGVuZGFyIGdyaWQgLS0tLSAqL1xuICBjb25zdCBncmlkID0gYnVpbGRDYWxlbmRhckdyaWQodmlld1llYXIsIHZpZXdNb250aClcblxuICBjb25zdCBoYW5kbGVQcmV2TW9udGggPSAoKSA9PiB7XG4gICAgbGV0IG5ld1kgPSB2aWV3WWVhciwgbmV3TSA9IHZpZXdNb250aFxuICAgIGlmICh2aWV3TW9udGggPT09IDApIHsgbmV3WSA9IHZpZXdZZWFyIC0gMTsgbmV3TSA9IDExIH1cbiAgICBlbHNlIG5ld00gPSB2aWV3TW9udGggLSAxXG4gICAgc2V0Vmlld1llYXIobmV3WSk7IHNldFZpZXdNb250aChuZXdNKVxuICAgIGNvbnN0IGJhc2UgPSB0ZW1wRGF0ZSB8fCBuZXcgRGF0ZSgpXG4gICAgY29uc3QgbWF4RCA9IGRheXNJbk1vbnRoKG5ld1ksIG5ld00pXG4gICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKG5ld1ksIG5ld00sIE1hdGgubWluKGJhc2UuZ2V0RGF0ZSgpLCBtYXhEKSlcbiAgICBzZXRUZW1wRGF0ZShuZXdEYXRlKVxuICAgIGZpcmVDaGFuZ2Uoc2hvd1RpbWUgPyBidWlsZERhdGUobmV3RGF0ZSwgdGVtcEhvdXJzLCB0ZW1wTWlucywgdGVtcEFtUG0pIDogbmV3RGF0ZSlcbiAgfVxuICBjb25zdCBoYW5kbGVOZXh0TW9udGggPSAoKSA9PiB7XG4gICAgbGV0IG5ld1kgPSB2aWV3WWVhciwgbmV3TSA9IHZpZXdNb250aFxuICAgIGlmICh2aWV3TW9udGggPT09IDExKSB7IG5ld1kgPSB2aWV3WWVhciArIDE7IG5ld00gPSAwIH1cbiAgICBlbHNlIG5ld00gPSB2aWV3TW9udGggKyAxXG4gICAgc2V0Vmlld1llYXIobmV3WSk7IHNldFZpZXdNb250aChuZXdNKVxuICAgIGNvbnN0IGJhc2UgPSB0ZW1wRGF0ZSB8fCBuZXcgRGF0ZSgpXG4gICAgY29uc3QgbWF4RCA9IGRheXNJbk1vbnRoKG5ld1ksIG5ld00pXG4gICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKG5ld1ksIG5ld00sIE1hdGgubWluKGJhc2UuZ2V0RGF0ZSgpLCBtYXhEKSlcbiAgICBzZXRUZW1wRGF0ZShuZXdEYXRlKVxuICAgIGZpcmVDaGFuZ2Uoc2hvd1RpbWUgPyBidWlsZERhdGUobmV3RGF0ZSwgdGVtcEhvdXJzLCB0ZW1wTWlucywgdGVtcEFtUG0pIDogbmV3RGF0ZSlcbiAgfVxuXG4gIGNvbnN0IHRvZGF5ID0gZ2V0VHpUb2RheSh0aW1lem9uZSlcbiAgLyogbWluL21heCBhY2NlcHQgdGhlIHNhbWUgZmxleGlibGUgaW5wdXRzIGFzIGB2YWx1ZWAgKERhdGUsIHN0cmluZywgdGltZXN0YW1wKSDigJRcbiAgICAgYSBmb3JtYXR0ZWQgc3RyaW5nIGZyb20gYW5vdGhlciBEYXRlUGlja2VyJ3Mgb25DaGFuZ2UgaXMgYSBjb21tb24gc291cmNlICovXG4gIGNvbnN0IHJlc29sdmVkTWluID0gcmVzb2x2ZVZhbHVlKG1pbkRhdGUpXG4gIGNvbnN0IHJlc29sdmVkTWF4ID0gcmVzb2x2ZVZhbHVlKG1heERhdGUpXG4gIGNvbnN0IG1pbkR0ID0gcmVzb2x2ZWRNaW4gPyBuZXcgRGF0ZShyZXNvbHZlZE1pbi5nZXRGdWxsWWVhcigpLCByZXNvbHZlZE1pbi5nZXRNb250aCgpLCByZXNvbHZlZE1pbi5nZXREYXRlKCkpIDogbnVsbFxuICBjb25zdCBtYXhEdCA9IHJlc29sdmVkTWF4ID8gbmV3IERhdGUocmVzb2x2ZWRNYXguZ2V0RnVsbFllYXIoKSwgcmVzb2x2ZWRNYXguZ2V0TW9udGgoKSwgcmVzb2x2ZWRNYXguZ2V0RGF0ZSgpKSA6IG51bGxcblxuICAvKiAtLS0tIHRpbWUgY2hhbmdlIGhhbmRsZXJzIC0tLS0gKi9cbiAgY29uc3QgaGFuZGxlSG91ckNoYW5nZSA9IChoOiBudW1iZXIpID0+IHtcbiAgICBzZXRUZW1wSG91cnMoaClcbiAgICBpZiAoc2hvd1RpbWUpIHtcbiAgICAgIGNvbnN0IGQgPSBidWlsZERhdGUodGVtcERhdGUgfHwgbmV3IERhdGUoKSwgaCwgdGVtcE1pbnMsIHRlbXBBbVBtKVxuICAgICAgb25DaGFuZ2U/LihtYWtlRXZlbnQoZm9ybWF0VmFsdWUoZCwgbW9kZSwgZGF0ZUZvcm1hdCksIG5hbWUgfHwgJycsIG1vZGUpKVxuICAgIH1cbiAgfVxuICBjb25zdCBoYW5kbGVNaW5DaGFuZ2UgPSAobTogbnVtYmVyKSA9PiB7XG4gICAgc2V0VGVtcE1pbnMobSlcbiAgICBpZiAoc2hvd1RpbWUpIHtcbiAgICAgIGNvbnN0IGQgPSBidWlsZERhdGUodGVtcERhdGUgfHwgbmV3IERhdGUoKSwgdGVtcEhvdXJzLCBtLCB0ZW1wQW1QbSlcbiAgICAgIG9uQ2hhbmdlPy4obWFrZUV2ZW50KGZvcm1hdFZhbHVlKGQsIG1vZGUsIGRhdGVGb3JtYXQpLCBuYW1lIHx8ICcnLCBtb2RlKSlcbiAgICB9XG4gIH1cbiAgY29uc3QgaGFuZGxlQW1QbUNoYW5nZSA9IChhcDogc3RyaW5nKSA9PiB7XG4gICAgc2V0VGVtcEFtUG0oYXApXG4gICAgaWYgKHNob3dUaW1lKSB7XG4gICAgICBjb25zdCBkID0gYnVpbGREYXRlKHRlbXBEYXRlIHx8IG5ldyBEYXRlKCksIHRlbXBIb3VycywgdGVtcE1pbnMsIGFwKVxuICAgICAgb25DaGFuZ2U/LihtYWtlRXZlbnQoZm9ybWF0VmFsdWUoZCwgbW9kZSwgZGF0ZUZvcm1hdCksIG5hbWUgfHwgJycsIG1vZGUpKVxuICAgIH1cbiAgfVxuXG4gIC8qIC0tLS0geWVhciBwaWNrZXIgLS0tLSAqL1xuICBjb25zdCBvcGVuWWVhclBpY2tlciA9ICgpID0+IHtcbiAgICBzZXRZZWFyUGFnZShNYXRoLmZsb29yKHZpZXdZZWFyIC8gWUVBUlNfUEVSX1BBR0UpICogWUVBUlNfUEVSX1BBR0UpXG4gICAgc2V0U2hvd1llYXJQaWNrZXIodHJ1ZSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVllYXJTZWxlY3QgPSAoeTogbnVtYmVyKSA9PiB7XG4gICAgc2V0Vmlld1llYXIoeSlcbiAgICBzZXRTaG93WWVhclBpY2tlcihmYWxzZSlcbiAgICBjb25zdCBiYXNlID0gdGVtcERhdGUgfHwgbmV3IERhdGUoKVxuICAgIGNvbnN0IG1heEQgPSBkYXlzSW5Nb250aCh5LCB2aWV3TW9udGgpXG4gICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKHksIHZpZXdNb250aCwgTWF0aC5taW4oYmFzZS5nZXREYXRlKCksIG1heEQpKVxuICAgIHNldFRlbXBEYXRlKG5ld0RhdGUpXG4gICAgZmlyZUNoYW5nZShzaG93VGltZSA/IGJ1aWxkRGF0ZShuZXdEYXRlLCB0ZW1wSG91cnMsIHRlbXBNaW5zLCB0ZW1wQW1QbSkgOiBuZXdEYXRlKVxuICB9XG5cbiAgY29uc3QgeWVhclBhZ2VTdGFydCA9IE1hdGguZmxvb3IoeWVhclBhZ2UgLyBZRUFSU19QRVJfUEFHRSkgKiBZRUFSU19QRVJfUEFHRVxuICBjb25zdCB5ZWFycyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IFlFQVJTX1BFUl9QQUdFIH0sIChfLCBpKSA9PiB5ZWFyUGFnZVN0YXJ0ICsgaSlcblxuICAvKiAtLS0tIGNsZWFyIC0tLS0gKi9cbiAgY29uc3QgaGFuZGxlQ2xlYXIgPSAoZTogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICBzZXRUZW1wRGF0ZShudWxsKVxuICAgIG9uQ2hhbmdlPy4obWFrZUV2ZW50KG51bGwsIG5hbWUgfHwgJycpKVxuICB9XG5cbiAgLyogLS0tLSBrZXlib2FyZCAtLS0tICovXG4gIGNvbnN0IGhhbmRsZUlucHV0S2V5RG93biA9IChlOiBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKGUua2V5ID09PSAnRXNjYXBlJykgeyBzZXRJc09wZW4oZmFsc2UpOyBzZXRTaG93WWVhclBpY2tlcihmYWxzZSk7IGlucHV0UmVmLmN1cnJlbnQ/LmJsdXIoKSB9XG4gICAgaWYgKGUua2V5ID09PSAnQXJyb3dEb3duJyB8fCBlLmtleSA9PT0gJ0VudGVyJyB8fCBlLmtleSA9PT0gJyAnKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIHNldElzT3Blbih0cnVlKVxuICAgIH1cbiAgfVxuXG4gIC8qIC0tLS0gbWVyZ2VkIHJlZiAtLS0tICovXG4gIGNvbnN0IG1lcmdlSW5wdXRSZWYgPSBSZWFjdC51c2VDYWxsYmFjaygobm9kZTogSFRNTElucHV0RWxlbWVudCB8IG51bGwpID0+IHtcbiAgICBpbnB1dFJlZi5jdXJyZW50ID0gbm9kZVxuICAgIGlmICh0eXBlb2YgcmVmID09PSAnZnVuY3Rpb24nKSByZWYobm9kZSlcbiAgICBlbHNlIGlmIChyZWYpIHJlZi5jdXJyZW50ID0gbm9kZVxuICB9LCBbcmVmXSlcblxuICAvKiAtLS0tIHJlbmRlciAtLS0tICovXG4gIGNvbnN0IHBsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXJUZXh0XG4gICAgPz8gKG1vZGUgPT09ICd0aW1lJyA/ICdTZWxlY3QgdGltZScgOiBtb2RlID09PSAnZGF0ZXRpbWUnID8gJ1NlbGVjdCBkYXRlICYgdGltZScgOiAnU2VsZWN0IGRhdGUnKVxuXG4gIGNvbnN0IHBpY2tlckJvZHkgPSAoXG4gICAgPD5cbiAgICAgIHsvKiA9PT09PT09PT09PT09PSBZRUFSIFBJQ0tFUiA9PT09PT09PT09PT09PSAqL31cbiAgICAgIHtzaG93WWVhclBpY2tlciAmJiBzaG93Q2FsZW5kYXIgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGVwaWNrZXIteWVhci1waWNrZXIgcC0zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG1iLTJcIj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzTmFtZT1cImJ0biBidG4tc20gYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGJvcmRlci0wIHB4LTFcIiBvbkNsaWNrPXsoKSA9PiBzZXRZZWFyUGFnZSh5ZWFyUGFnZSAtIFlFQVJTX1BFUl9QQUdFKX0gYXJpYS1sYWJlbD1cIlByZXZpb3VzIHllYXJzXCI+JmxzYXF1bzs8L2J1dHRvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZ3LXNlbWlib2xkIHNtYWxsXCI+e3llYXJQYWdlU3RhcnR9IOKAkyB7eWVhclBhZ2VTdGFydCArIFlFQVJTX1BFUl9QQUdFIC0gMX08L3NwYW4+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzc05hbWU9XCJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBib3JkZXItMCBweC0xXCIgb25DbGljaz17KCkgPT4gc2V0WWVhclBhZ2UoeWVhclBhZ2UgKyBZRUFSU19QRVJfUEFHRSl9IGFyaWEtbGFiZWw9XCJOZXh0IHllYXJzXCI+JnJzYXF1bzs8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGVwaWNrZXIteWVhci1ncmlkXCI+XG4gICAgICAgICAgICB7eWVhcnMubWFwKCh5KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGlzQ3VycmVudFllYXIgPSB5ID09PSBnZXRUelRvZGF5KHRpbWV6b25lKS5nZXRGdWxsWWVhcigpXG4gICAgICAgICAgICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSB0ZW1wRGF0ZSAmJiB5ID09PSB0ZW1wRGF0ZS5nZXRGdWxsWWVhcigpXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAga2V5PXt5fVxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgICAgICAgICAgICAnZGF0ZXBpY2tlci15ZWFyLWNlbGwgYnRuIGJ0bi1zbScsXG4gICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQgJiYgJ2J0bi1wcmltYXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgIWlzU2VsZWN0ZWQgJiYgaXNDdXJyZW50WWVhciAmJiAnYnRuLW91dGxpbmUtcHJpbWFyeScsXG4gICAgICAgICAgICAgICAgICAgICFpc1NlbGVjdGVkICYmICFpc0N1cnJlbnRZZWFyICYmICdidG4tbGlnaHQgYm9yZGVyJ1xuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZVllYXJTZWxlY3QoeSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3l9XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG5cbiAgICAgIHsvKiA9PT09PT09PT09PT09PSBDQUxFTkRBUiArIFRJTUUgPT09PT09PT09PT09PT0gKi99XG4gICAgICB7IXNob3dZZWFyUGlja2VyICYmIChcbiAgICAgICAgPD5cblxuICAgICAgICAgIHsvKiAtLS0tIENBTEVOREFSICsgVElNRSBDT05UQUlORVIgLS0tLSAqL31cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y24oJ2QtZmxleCcsIG1vZGUgPT09ICdkYXRldGltZScgPyAnZmxleC1yb3cnIDogJ2ZsZXgtY29sdW1uJyl9PlxuXG4gICAgICAgICAgey8qIC0tLS0gQ0FMRU5EQVIgLS0tLSAqL31cbiAgICAgICAgICB7c2hvd0NhbGVuZGFyICYmIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0ZXBpY2tlci1jYWxlbmRhciBwLTJcIj5cbiAgICAgICAgICAgICAgey8qIE1vbnRoIC8gWWVhciBoZWFkZXIgKi99XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtYi0yXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3NOYW1lPVwiYnRuIGJ0bi1zbSBidG4tb3V0bGluZS1zZWNvbmRhcnkgYm9yZGVyLTAgcHgtMVwiIG9uQ2xpY2s9e2hhbmRsZVByZXZNb250aH0gYXJpYS1sYWJlbD1cIlByZXZpb3VzIG1vbnRoXCI+JmxzYXF1bzs8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTFcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZ3LXNlbWlib2xkIHNtYWxsXCI+e01PTlRIU1t2aWV3TW9udGhdfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJ0biBidG4tc20gYnRuLWxpbmsgdGV4dC1kZWNvcmF0aW9uLW5vbmUgdGV4dC1wcmltYXJ5IGZ3LXNlbWlib2xkIHNtYWxsIHAtMFwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29wZW5ZZWFyUGlja2VyfVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2hvb3NlIHllYXJcIlxuICAgICAgICAgICAgICAgICAgPnt2aWV3WWVhcn08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzc05hbWU9XCJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBib3JkZXItMCBweC0xXCIgb25DbGljaz17aGFuZGxlTmV4dE1vbnRofSBhcmlhLWxhYmVsPVwiTmV4dCBtb250aFwiPiZyc2FxdW87PC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIHsvKiBEYXktb2Ytd2VlayBoZWFkZXJzICovfVxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGVwaWNrZXItZGF5cy1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICB7REFZU19PRl9XRUVLLm1hcChkID0+IChcbiAgICAgICAgICAgICAgICAgIDxkaXYga2V5PXtkfSBjbGFzc05hbWU9XCJkYXRlcGlja2VyLWRheS1sYWJlbFwiPntkfTwvZGl2PlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICB7LyogRGF5IGdyaWQgKi99XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0ZXBpY2tlci1kYXlzLWdyaWRcIj5cbiAgICAgICAgICAgICAgICB7Z3JpZC5tYXAoKGNlbGwsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGlzVG9kYXkgPSBpc1NhbWVEYXkoY2VsbC5kYXRlLCB0b2RheSlcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSB0ZW1wRGF0ZSAmJiBpc1NhbWVEYXkoY2VsbC5kYXRlLCB0ZW1wRGF0ZSlcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGluUmFuZ2UgPSBpc0RhdGVJblJhbmdlKGNlbGwuZGF0ZSwgbWluRHQsIG1heER0KVxuICAgICAgICAgICAgICAgICAgY29uc3QgaXNEaXNhYmxlZERheSA9IGNlbGwuaXNPdXRzaWRlIHx8ICFpblJhbmdlXG5cbiAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e2l9XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzRGlzYWJsZWREYXl9XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgICAgICAgICAgICAgICAgICdkYXRlcGlja2VyLWRheScsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1RvZGF5ICYmICdkYXRlcGlja2VyLWRheS0tdG9kYXknLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNTZWxlY3RlZCAmJiAnZGF0ZXBpY2tlci1kYXktLXNlbGVjdGVkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuaXNPdXRzaWRlICYmICdkYXRlcGlja2VyLWRheS0tb3V0c2lkZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAhaW5SYW5nZSAmJiAnZGF0ZXBpY2tlci1kYXktLWRpc2FibGVkJ1xuICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gY29tbWl0RGF0ZU9ubHkoY2VsbC5kYXRlKX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17Y2VsbC5pc091dHNpZGUgPyAtMSA6IDB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7Y2VsbC5kYXl9XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICB7LyogLS0tLSBESVZJREVSIChkYXRldGltZSBtb2RlKSAtLS0tICovfVxuICAgICAgICAgIHttb2RlID09PSAnZGF0ZXRpbWUnICYmIDxkaXYgY2xhc3NOYW1lPVwidnIgbXgtMSBteS0yXCIgLz59XG5cbiAgICAgICAgICB7LyogLS0tLSBUSU1FIC0tLS0gKi99XG4gICAgICAgICAge3Nob3dUaW1lICYmIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0ZXBpY2tlci10aW1lIHAtMiBkLWZsZXggZmxleC1jb2x1bW5cIiBzdHlsZT17eyBtaW5XaWR0aDogMTgwIH19PlxuICAgICAgICAgICAgICB7bW9kZSA9PT0gJ2RhdGV0aW1lJyAmJiA8ZGl2IGNsYXNzTmFtZT1cInNtYWxsIGZ3LXNlbWlib2xkIHRleHQtbXV0ZWQgdGV4dC1jZW50ZXIgbWItMVwiPlRpbWU8L2Rpdj59XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICB7LyogSG91ciBjb2x1bW4gKi99XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkYXRlcGlja2VyLXRpbWUtY29sXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGVwaWNrZXItdGltZS1jb2wtbGFiZWxcIj5Ib3VyPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGVwaWNrZXItdGltZS1jb2wtc2Nyb2xsXCI+XG4gICAgICAgICAgICAgICAgICAgIHtBcnJheS5mcm9tKHsgbGVuZ3RoOiAxMiB9LCAoXywgaSkgPT4gaSArIDEpLm1hcChoID0+IChcbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2h9XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y24oJ2RhdGVwaWNrZXItdGltZS1pdGVtJywgaCA9PT0gdGVtcEhvdXJzICYmICdhY3RpdmUnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUhvdXJDaGFuZ2UoaCl9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge1N0cmluZyhoKS5wYWRTdGFydCgyLCAnMCcpfVxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRhdGVwaWNrZXItdGltZS1zZXBhcmF0b3JcIj46PC9zcGFuPlxuICAgICAgICAgICAgICAgIHsvKiBNaW51dGUgY29sdW1uICovfVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0ZXBpY2tlci10aW1lLWNvbFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkYXRlcGlja2VyLXRpbWUtY29sLWxhYmVsXCI+TWluPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGVwaWNrZXItdGltZS1jb2wtc2Nyb2xsXCI+XG4gICAgICAgICAgICAgICAgICAgIHtNSU5VVEVTLm1hcChtID0+IChcbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e219XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y24oJ2RhdGVwaWNrZXItdGltZS1pdGVtJywgbSA9PT0gdGVtcE1pbnMgJiYgJ2FjdGl2ZScpfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlTWluQ2hhbmdlKG0pfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtTdHJpbmcobSkucGFkU3RhcnQoMiwgJzAnKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB7LyogQU0vUE0gY29sdW1uICovfVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0ZXBpY2tlci10aW1lLWNvbFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkYXRlcGlja2VyLXRpbWUtY29sLWxhYmVsXCI+Jm5ic3A7PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMSBtdC0xXCI+XG4gICAgICAgICAgICAgICAgICAgIHtbJ0FNJywgJ1BNJ10ubWFwKGFwID0+IChcbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2FwfVxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NuKCdkYXRlcGlja2VyLXRpbWUtaXRlbScsICdkYXRlcGlja2VyLXRpbWUtaXRlbS0tYW1wbScsIHRlbXBBbVBtID09PSBhcCAmJiAnYWN0aXZlJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVBbVBtQ2hhbmdlKGFwKX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7YXB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvPlxuICAgICAgKX1cbiAgICA8Lz5cbiAgKVxuXG4gIGNvbnN0IHBvcG92ZXIgPSAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtwb3BvdmVyUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgJ2RhdGVwaWNrZXItcG9wb3ZlciBjYXJkIGJvcmRlciBzaGFkb3ctc20nLFxuICAgICAgICBtb2RlID09PSAnZGF0ZXRpbWUnICYmICdkYXRlcGlja2VyLXBvcG92ZXItLXdpZGUnXG4gICAgICApfVxuICAgICAgc3R5bGU9e3BvcG92ZXJTdHlsZX1cbiAgICA+XG4gICAgICB7cGlja2VyQm9keX1cbiAgICA8L2Rpdj5cbiAgKVxuXG4gIC8qIC0tLS0gaW5saW5lIGNhbGVuZGFyIG1vZGUgKG5vIGlucHV0LCBubyBwb3BvdmVyKSAtLS0tICovXG4gIGlmIChjYWxlbmRhcikge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17Y24oJ2RhdGVwaWNrZXItY2FsZW5kYXItaW5saW5lIGNhcmQgYm9yZGVyIHNoYWRvdy1zbScsIGNsYXNzTmFtZSl9PlxuICAgICAgICB7cGlja2VyQm9keX1cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJkYXRlcGlja2VyLXdyYXBwZXIgcG9zaXRpb24tcmVsYXRpdmUgZC1pbmxpbmUtYmxvY2sgdy0xMDBcIiBzdHlsZT17eyBtaW5XaWR0aDogMCB9fT5cbiAgICAgIHsvKiAtLS0tIElucHV0IC0tLS0gKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInBvc2l0aW9uLXJlbGF0aXZlXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHJlZj17bWVyZ2VJbnB1dFJlZn1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgcmVhZE9ubHlcbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgICAgICdmb3JtLWNvbnRyb2wnLFxuICAgICAgICAgICAgc2l6ZSA9PT0gJ3NtJyAmJiAnZm9ybS1jb250cm9sLXNtJyxcbiAgICAgICAgICAgIHNpemUgPT09ICdsZycgJiYgJ2Zvcm0tY29udHJvbC1sZycsXG4gICAgICAgICAgICAncGUtNScsXG4gICAgICAgICAgICBjbGFzc05hbWVcbiAgICAgICAgICApfVxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgICB2YWx1ZT17Zm9ybWF0VmFsdWUocmVzb2x2ZWRWYWx1ZSwgbW9kZSwgZGF0ZUZvcm1hdCl9XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gIWRpc2FibGVkICYmIHNldElzT3BlbighaXNPcGVuKX1cbiAgICAgICAgICBvbktleURvd249e2hhbmRsZUlucHV0S2V5RG93bn1cbiAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwiZGlhbG9nXCJcbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXtpc09wZW59XG4gICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIC8+XG4gICAgICAgIHsvKiBjbGVhciBidXR0b24gKi99XG4gICAgICAgIHtpc0NsZWFyYWJsZSAmJiByZXNvbHZlZFZhbHVlICYmICFkaXNhYmxlZCAmJiAoXG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJidG4gYnRuLXNtIGJ0bi1saW5rIHBvc2l0aW9uLWFic29sdXRlIHRvcC01MCBlbmQtMCB0cmFuc2xhdGUtbWlkZGxlLXkgcGUtMiB0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICBzdHlsZT17eyB6SW5kZXg6IDIgfX1cbiAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsZWFyfVxuICAgICAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICAmdGltZXM7XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cblxuICAgICAgey8qIC0tLS0gUG9ydGFsIHRoZSBwb3BvdmVyIHRvIGRvY3VtZW50LmJvZHkgLS0tLSAqL31cbiAgICAgIHtpc09wZW4gJiYgIWRpc2FibGVkICYmIHBvcnRhbFJlZi5jdXJyZW50ICYmIGNyZWF0ZVBvcnRhbChwb3BvdmVyLCBwb3J0YWxSZWYuY3VycmVudCl9XG4gICAgPC9kaXY+XG4gIClcbn0pXG5cbkRhdGVQaWNrZXIuZGlzcGxheU5hbWUgPSAnRGF0ZVBpY2tlcidcblxuZXhwb3J0IHsgRGF0ZVBpY2tlciB9XG5leHBvcnQgZGVmYXVsdCBEYXRlUGlja2VyXG4iXX0=
@@ -1,2 +0,0 @@
1
- import {a}from'./chunk-RR7TBRGI.js';import*as t from'react';import {jsxs,jsx}from'react/jsx-runtime';var H=({className:y,options:r=[],labelKey:d="label",valueKey:m="value",placeholder:x="Select...",value:f=null,onChange:p,id:g="filterable-select",name:E,disabled:h=false,...N},s)=>{let[L,l]=t.useState(false),[S,c]=t.useState(""),i=t.useRef(null),R=r.length>0&&(typeof r[0]=="string"||typeof r[0]=="number"||typeof r[0]=="boolean"),o=e=>R?String(e):e?.[d]||"",u=e=>R?e:e?.[m]??null,T=r.find(e=>u(e)===f);t.useEffect(()=>{c(T!==void 0?o(T):"");},[f,r,d,m]);let v=r.filter(e=>o(e).toLowerCase().includes(S.toLowerCase()));t.useEffect(()=>{let e=a=>{i.current&&!i.current.contains(a.target)&&l(false);};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);let k=e=>{let a=u(e);c(o(e)),l(false),p&&p({target:{value:a,name:E||g}});};return jsxs("div",{ref:e=>{i.current=e,typeof s=="function"?s(e):s&&(s.current=e);},className:a("searchselect-wrapper position-relative ",y),style:{minWidth:0},...N,children:[jsx("input",{id:g,type:"text",className:"form-select",placeholder:x,value:S,disabled:h,onChange:e=>{c(e.target.value),l(true);},onFocus:()=>l(true),style:{cursor:"text",borderRadius:"inherit"}}),L&&!h&&jsx("ul",{className:"dropdown-menu show w-100 overflow-x-hidden",style:{maxHeight:"200px",marginTop:"2px",zIndex:1050,borderRadius:"0.375rem",boxShadow:"0 0.5rem 1rem rgba(0,0,0,0.15)"},children:v.length>0?v.map((e,a)=>{let C=u(e)??`option-${a}`;return jsx("li",{children:jsx("button",{type:"button",className:"dropdown-item text-truncate",onClick:()=>k(e),children:o(e)})},C)}):jsx("li",{children:jsx("span",{className:"dropdown-item disabled text-muted",style:{cursor:"default"},children:"No options found"})})})]})},w=t.forwardRef(H);w.displayName="SearchSelect";var D=w;export{w as a,D as b};//# sourceMappingURL=chunk-ZCAQ7S2A.js.map
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21wb25lbnRzL1NlYXJjaFNlbGVjdC50c3giXSwibmFtZXMiOlsiU2VhcmNoU2VsZWN0SW5uZXIiLCJjbGFzc05hbWUiLCJvcHRpb25zIiwibGFiZWxLZXkiLCJ2YWx1ZUtleSIsInBsYWNlaG9sZGVyIiwidmFsdWUiLCJvbkNoYW5nZSIsImlkIiwibmFtZSIsImRpc2FibGVkIiwicHJvcHMiLCJyZWYiLCJpc09wZW4iLCJzZXRJc09wZW4iLCJzZWFyY2hUZXJtIiwic2V0U2VhcmNoVGVybSIsIndyYXBwZXJSZWYiLCJpc1ByaW1pdGl2ZUFycmF5IiwiZ2V0TGFiZWwiLCJvcHRpb24iLCJnZXRWYWx1ZSIsInNlbGVjdGVkT3B0aW9uIiwib3B0IiwiZmlsdGVyZWRPcHRpb25zIiwiaGFuZGxlQ2xpY2tPdXRzaWRlIiwiZXZlbnQiLCJoYW5kbGVTZWxlY3QiLCJzZWxlY3RlZFZhbHVlIiwianN4cyIsIm5vZGUiLCJjbiIsImpzeCIsImluZGV4Iiwia2V5IiwiU2VhcmNoU2VsZWN0IiwiU2VhcmNoU2VsZWN0X2RlZmF1bHQiXSwibWFwcGluZ3MiOiJxR0FtQ0EsSUFBTUEsRUFBb0IsQ0FBSyxDQUMzQixVQUFBQyxDQUFBQSxDQUNBLE9BQUEsQ0FBQUMsRUFBVSxFQUFDLENBQ1gsU0FBQUMsQ0FBQUEsQ0FBVyxPQUFBLENBQ1gsUUFBQSxDQUFBQyxDQUFBQSxDQUFXLFFBQ1gsV0FBQSxDQUFBQyxDQUFBQSxDQUFjLFlBQ2QsS0FBQSxDQUFBQyxDQUFBQSxDQUFRLEtBQ1IsUUFBQSxDQUFBQyxDQUFBQSxDQUNBLEdBQUFDLENBQUFBLENBQUssbUJBQUEsQ0FDTCxLQUFBQyxDQUFBQSxDQUNBLFFBQUEsQ0FBQUMsRUFBVyxLQUFBLENBQ1gsR0FBR0MsQ0FDTCxDQUFBLENBQStEQyxDQUFBQSxHQUE0QyxDQUN6RyxHQUFNLENBQUNDLENBQUFBLENBQVFDLENBQVMsRUFBVSxDQUFBLENBQUEsUUFBQSxDQUFTLEtBQUssRUFDMUMsQ0FBQ0MsQ0FBQUEs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WkNBUTdTMkEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi4vbGliL2NuLmpzJ1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaFNlbGVjdFByb3BzPFQgPSB1bmtub3duPiB7XG4gIC8qKiBBZGRpdGlvbmFsIENTUyBjbGFzc2VzIG9uIHRoZSB3cmFwcGVyICovXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICAvKiogU2VsZWN0YWJsZSBvcHRpb25zIOKAlCBwcmltaXRpdmVzIChzdHJpbmd8bnVtYmVyfGJvb2xlYW4pIG9yIG9iamVjdHMgKi9cbiAgb3B0aW9ucz86IFRbXVxuICAvKiogS2V5IGZvciBkaXNwbGF5IHRleHQgd2hlbiBvcHRpb25zIGFyZSBvYmplY3RzIChkZWZhdWx0ICdsYWJlbCcpICovXG4gIGxhYmVsS2V5Pzogc3RyaW5nXG4gIC8qKiBLZXkgZm9yIHRoZSB2YWx1ZSB3aGVuIG9wdGlvbnMgYXJlIG9iamVjdHMgKGRlZmF1bHQgJ3ZhbHVlJykgKi9cbiAgdmFsdWVLZXk/OiBzdHJpbmdcbiAgLyoqIFBsYWNlaG9sZGVyIHRleHQgKGRlZmF1bHQgJ1NlbGVjdC4uLicpICovXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIC8qKiBDdXJyZW50bHkgc2VsZWN0ZWQgdmFsdWUgKi9cbiAgdmFsdWU/OiBUIHwgbnVsbFxuICAvKiogQ2FsbGVkIHdpdGggc3ludGhldGljIGV2ZW50OyBlLnRhcmdldC52YWx1ZSBpcyB0aGUgc2VsZWN0ZWQgdmFsdWUsIGUudGFyZ2V0Lm5hbWUgaXMgdGhlIGlucHV0IG5hbWUgKi9cbiAgb25DaGFuZ2U/OiAoZTogeyB0YXJnZXQ6IHsgdmFsdWU6IFQgfCBudWxsOyBuYW1lOiBzdHJpbmcgfSB9KSA9PiB2b2lkXG4gIC8qKiBJbnB1dCBlbGVtZW50IElEICovXG4gIGlkPzogc3RyaW5nXG4gIC8qKiBJbnB1dCBuYW1lIGF0dHJpYnV0ZSDigJQgc3VyZmFjZXMgYXMgZS50YXJnZXQubmFtZSBpbiBvbkNoYW5nZSAqL1xuICBuYW1lPzogc3RyaW5nXG4gIC8qKiBEaXNhYmxlIHRoZSBpbnB1dCAqL1xuICBkaXNhYmxlZD86IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBBIGZpbHRlcmFibGUsIHNlYXJjaGFibGUgc2VsZWN0IGRyb3Bkb3duIHN0eWxlZCB3aXRoIEJvb3RzdHJhcCA1LlxuICogU3VwcG9ydHMgYm90aCBwcmltaXRpdmUgYXJyYXlzIGFuZCBvYmplY3QgYXJyYXlzIHdpdGggY29uZmlndXJhYmxlIGxhYmVsL3ZhbHVlIGtleXMuXG4gKi9cbmludGVyZmFjZSBTZWFyY2hTZWxlY3RDb21wb25lbnQge1xuICA8VD4ocHJvcHM6IFNlYXJjaFNlbGVjdFByb3BzPFQ+ICYgUmVhY3QuUmVmQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4pOiBSZWFjdC5SZWFjdEVsZW1lbnQgfCBudWxsXG4gIGRpc3BsYXlOYW1lPzogc3RyaW5nXG59XG5cbmNvbnN0IFNlYXJjaFNlbGVjdElubmVyID0gPFQsPih7XG4gICAgY2xhc3NOYW1lLFxuICAgIG9wdGlvbnMgPSBbXSBhcyBUW10sXG4gICAgbGFiZWxLZXkgPSAnbGFiZWwnLFxuICAgIHZhbHVlS2V5ID0gJ3ZhbHVlJyxcbiAgICBwbGFjZWhvbGRlciA9ICdTZWxlY3QuLi4nLFxuICAgIHZhbHVlID0gbnVsbCxcbiAgICBvbkNoYW5nZSxcbiAgICBpZCA9ICdmaWx0ZXJhYmxlLXNlbGVjdCcsXG4gICAgbmFtZSxcbiAgICBkaXNhYmxlZCA9IGZhbHNlLFxuICAgIC4uLnByb3BzXG4gIH06IFNlYXJjaFNlbGVjdFByb3BzPFQ+ICYgUmVhY3QuUmVmQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4sIHJlZjogUmVhY3QuRm9yd2FyZGVkUmVmPEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGNvbnN0IFtpc09wZW4sIHNldElzT3Blbl0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSlcbiAgICBjb25zdCBbc2VhcmNoVGVybSwgc2V0U2VhcmNoVGVybV0gPSBSZWFjdC51c2VTdGF0ZSgnJylcbiAgICBjb25zdCB3cmFwcGVyUmVmID0gUmVhY3QudXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuXG4gICAgLy8gQVVUTy1ERVRFQ1Q6IHByaW1pdGl2ZXMgdnMgb2JqZWN0c1xuICAgIGNvbnN0IGlzUHJpbWl0aXZlQXJyYXkgPSBvcHRpb25zLmxlbmd0aCA+IDAgJiZcbiAgICAgICh0eXBlb2Ygb3B0aW9uc1swXSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG9wdGlvbnNbMF0gPT09ICdudW1iZXInIHx8IHR5cGVvZiBvcHRpb25zWzBdID09PSAnYm9vbGVhbicpXG5cbiAgICBjb25zdCBnZXRMYWJlbCA9IChvcHRpb246IFQpOiBzdHJpbmcgPT4ge1xuICAgICAgaWYgKGlzUHJpbWl0aXZlQXJyYXkpIHJldHVybiBTdHJpbmcob3B0aW9uKVxuICAgICAgcmV0dXJuIChvcHRpb24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pPy5bbGFiZWxLZXldIGFzIHN0cmluZyB8fCAnJ1xuICAgIH1cblxuICAgIGNvbnN0IGdldFZhbHVlID0gKG9wdGlvbjogVCk6IFQgfCBudWxsID0+IHtcbiAgICAgIGlmIChpc1ByaW1pdGl2ZUFycmF5KSByZXR1cm4gb3B0aW9uXG4gICAgICByZXR1cm4gKChvcHRpb24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pPy5bdmFsdWVLZXldIGFzIFQpID8/IG51bGxcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IG9wdGlvbnMuZmluZChvcHQgPT4gZ2V0VmFsdWUob3B0KSA9PT0gdmFsdWUpXG5cbiAgICAvLyBTeW5jIGlucHV0IHdoZW4gdmFsdWUgY2hhbmdlcyBleHRlcm5hbGx5XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChzZWxlY3RlZE9wdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHNldFNlYXJjaFRlcm0oZ2V0TGFiZWwoc2VsZWN0ZWRPcHRpb24pKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0U2VhcmNoVGVybSgnJylcbiAgICAgIH1cbiAgICB9LCBbdmFsdWUsIG9wdGlvbnMsIGxhYmVsS2V5LCB2YWx1ZUtleV0pXG5cbiAgICAvLyBGaWx0ZXIgb3B0aW9uc1xuICAgIGNvbnN0IGZpbHRlcmVkT3B0aW9ucyA9IG9wdGlvbnMuZmlsdGVyKG9wdGlvbiA9PlxuICAgICAgZ2V0TGFiZWwob3B0aW9uKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSlcbiAgICApXG5cbiAgICAvLyBDbGljayBvdXRzaWRlIHRvIGNsb3NlXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBpZiAod3JhcHBlclJlZi5jdXJyZW50ICYmICF3cmFwcGVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgICAgc2V0SXNPcGVuKGZhbHNlKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIH0sIFtdKVxuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ID0gKG9wdGlvbjogVCkgPT4ge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IGdldFZhbHVlKG9wdGlvbilcbiAgICAgIHNldFNlYXJjaFRlcm0oZ2V0TGFiZWwob3B0aW9uKSlcbiAgICAgIHNldElzT3BlbihmYWxzZSlcbiAgICAgIGlmIChvbkNoYW5nZSkgb25DaGFuZ2UoeyB0YXJnZXQ6IHsgdmFsdWU6IHNlbGVjdGVkVmFsdWUsIG5hbWU6IG5hbWUgfHwgaWQgfSB9KVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIHJlZj17KG5vZGUpID0+IHtcbiAgICAgICAgICB3cmFwcGVyUmVmLmN1cnJlbnQgPSBub2RlXG4gICAgICAgICAgaWYgKHR5cGVvZiByZWYgPT09ICdmdW5jdGlvbicpIHJlZihub2RlKVxuICAgICAgICAgIGVsc2UgaWYgKHJlZikgcmVmLmN1cnJlbnQgPSBub2RlXG4gICAgICAgIH19XG4gICAgICAgIGNsYXNzTmFtZT17Y24oJ3NlYXJjaHNlbGVjdC13cmFwcGVyIHBvc2l0aW9uLXJlbGF0aXZlICcsIGNsYXNzTmFtZSl9XG4gICAgICAgIHN0eWxlPXt7IG1pbldpZHRoOiAwIH19XG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgID5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBjbGFzc05hbWU9XCJmb3JtLXNlbGVjdFwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgICAgIHZhbHVlPXtzZWFyY2hUZXJtfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgIHNldFNlYXJjaFRlcm0oZS50YXJnZXQudmFsdWUpXG4gICAgICAgICAgICBzZXRJc09wZW4odHJ1ZSlcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uRm9jdXM9eygpID0+IHNldElzT3Blbih0cnVlKX1cbiAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6ICd0ZXh0JywgYm9yZGVyUmFkaXVzOiAnaW5oZXJpdCcgfX1cbiAgICAgICAgLz5cblxuICAgICAgICB7aXNPcGVuICYmICFkaXNhYmxlZCAmJiAoXG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJkcm9wZG93bi1tZW51IHNob3cgdy0xMDAgb3ZlcmZsb3cteC1oaWRkZW5cIlxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgbWF4SGVpZ2h0OiAnMjAwcHgnLFxuICAgICAgICAgICAgICBtYXJnaW5Ub3A6ICcycHgnLFxuICAgICAgICAgICAgICB6SW5kZXg6IDEwNTAsXG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzAuMzc1cmVtJyxcbiAgICAgICAgICAgICAgYm94U2hhZG93OiAnMCAwLjVyZW0gMXJlbSByZ2JhKDAsMCwwLDAuMTUpJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2ZpbHRlcmVkT3B0aW9ucy5sZW5ndGggPiAwID8gKFxuICAgICAgICAgICAgICBmaWx0ZXJlZE9wdGlvbnMubWFwKChvcHRpb24sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gKGdldFZhbHVlKG9wdGlvbikgYXMgc3RyaW5nIHwgbnVtYmVyKSA/PyBgb3B0aW9uLSR7aW5kZXh9YFxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8bGkga2V5PXtrZXl9PlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZHJvcGRvd24taXRlbSB0ZXh0LXRydW5jYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVTZWxlY3Qob3B0aW9uKX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtnZXRMYWJlbChvcHRpb24pfVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRyb3Bkb3duLWl0ZW0gZGlzYWJsZWQgdGV4dC1tdXRlZFwiIHN0eWxlPXt7IGN1cnNvcjogJ2RlZmF1bHQnIH19PlxuICAgICAgICAgICAgICAgICAgTm8gb3B0aW9ucyBmb3VuZFxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG5jb25zdCBTZWFyY2hTZWxlY3QgPSBSZWFjdC5mb3J3YXJkUmVmKFNlYXJjaFNlbGVjdElubmVyKSBhcyBTZWFyY2hTZWxlY3RDb21wb25lbnRcblNlYXJjaFNlbGVjdC5kaXNwbGF5TmFtZSA9ICdTZWFyY2hTZWxlY3QnXG5cbmV4cG9ydCBkZWZhdWx0IFNlYXJjaFNlbGVjdFxuZXhwb3J0IHsgU2VhcmNoU2VsZWN0IH1cbiJdfQ==