@datagrok/peptides 1.17.4 → 1.17.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -1
- package/dist/23.js +2 -0
- package/dist/282.js +2 -0
- package/dist/301.js +2 -0
- package/dist/356.js +2 -2
- package/dist/40.js +2 -0
- package/dist/427.js +2 -0
- package/dist/436.js +2 -2
- package/dist/796.js +2 -2
- package/dist/997.js +2 -0
- package/dist/package-test.js +2 -2
- package/dist/package.js +2 -2
- package/package.json +2 -2
- package/src/model.ts +99 -2
- package/src/package-test.ts +4 -0
- package/src/tests/core.ts +13 -23
- package/src/tests/viewers.ts +2 -1
- package/src/tests/widgets.ts +4 -2
- package/src/utils/cell-renderer.ts +6 -2
- package/src/utils/misc.ts +12 -0
- package/src/utils/types.ts +11 -0
- package/src/viewers/sar-viewer.ts +12 -3
- package/src/widgets/peptides.ts +23 -2
- package/src/widgets/settings.ts +87 -6
- package/webpack.config.js +1 -1
package/dist/997.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var peptides;(()=>{"use strict";var t,e,n={m:{},u:t=>t+".js"};n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{var t;n.g.importScripts&&(t=n.g.location+"");var e=n.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var r=e.getElementsByTagName("script");if(r.length)for(var s=r.length-1;s>-1&&!t;)t=r[s--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=t})(),n.b=self.location+"",(e=t||(t={})).EUCLIDEAN="EUCLIDEAN",e.MANHATTAN="MANHATTAN";const r=t=>null==t;function s(t,e,n,r){if(n>t[t.length-1])return;const s=t.findIndex((t=>n<t));t.pop(),t.splice(s,0,n),e.pop(),e.splice(s,0,r)}class o{_workerCount;constructor(){this._workerCount=Math.max(navigator.hardwareConcurrency-2,1)}async calcMultiColumn(e,r,s,o=[{}],a=[1],l=t.EUCLIDEAN){const i=e[0].length*(e[0].length-1)/2,h=Math.floor(i/this._workerCount),c=e[0].length>2e4?await this.getMinimalThreshold(e,r,o,a,l):0;s<c&&(console.log(`using threshold ${c}`),s=c),o.forEach(((t,e)=>o[e].threshold=s));const u=new Array(this._workerCount),g=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(n.p+n.u(23),n.b))));for(let t=0;t<this._workerCount;t++)u[t]=new Promise(((n,c)=>{const u=t*h,f=t===this._workerCount-1?i:(t+1)*h;f<=u&&n({i:new Int32Array(0),j:new Int32Array(0),distance:new Float32Array(0),idx:t}),g[t].postMessage({values:e,startIdx:u,endIdx:f,threshold:s,fnNames:r,opts:o,weights:a,aggregationMethod:l}),g[t].onmessage=({data:{error:e,i:r,j:s,distance:o}})=>{e?(g[t].terminate(),c(e)):(g[t].terminate(),n({i:r,j:s,distance:o,idx:t}))}}));const f=await Promise.all(u),m=f.reduce(((t,e)=>t+e.i.length),0),w=new Int32Array(m),d=new Int32Array(m),p=new Float32Array(m);let y=0;for(const t of f)w.set(t.i,y),d.set(t.j,y),p.set(t.distance,y),y+=t.i.length;return{i:w,j:d,distance:p}}async calc(t,e,n,r={}){return await this.calcMultiColumn([t],[e],n,[r],[1])}async getKNN(t,e,n=15,r={}){return await this.multiColumnKNN([t],[e],n,[r],[1])}async getThresholdKNN(t,e,n=.8,r={}){return await this.multiColumnThresholdKnn([t],[e],n,[r],[1])}async multiColumnThresholdKnn(e,r,s=.8,o,a,l=t.EUCLIDEAN){if(e.length!==r.length||e.length!==o.length||e.length!==a.length)throw new Error("values, distance functions, options and weights arrays should have the same length");if(e.some((t=>t.length!==e[0].length)))throw new Error("all values arrays should have the same length");const i=e[0].length*(e[0].length-1)/2,h=Math.floor(i/this._workerCount),c=new Array(this._workerCount),u=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(n.p+n.u(427),n.b))));for(let t=0;t<this._workerCount;t++)c[t]=new Promise(((n,c)=>{const g=t*h,f=t===this._workerCount-1?i:(t+1)*h;f<=g&&n({knnDistances:new Array(0),knnIndexes:new Array(0)}),u[t].postMessage({values:e,startIdx:g,endIdx:f,fnNames:r,opts:o,threshold:s,weights:a,aggregationMethod:l}),u[t].onmessage=({data:{error:e,knnDistances:r,knnIndexes:s}})=>{e?(u[t].terminate(),c(e)):(u[t].terminate(),n({knnDistances:r,knnIndexes:s}))}}));const g=await Promise.all(c),f=new Int32Array(e[0].length);for(const t of g)for(let n=0;n<e[0].length;++n)f[n]+=t.knnIndexes[n]?.length??0;const m={knnDistances:new Array(e[0].length).fill(null).map(((t,e)=>new Array(f[e]))),knnIndexes:new Array(e[0].length).fill(null).map(((t,e)=>new Array(f[e])))};for(const t of g)for(let n=0;n<e[0].length;++n)for(let e=0;e<t.knnDistances[n]?.length;++e)m.knnDistances[n][f[n]-1]=t.knnDistances[n][e],m.knnIndexes[n][f[n]-1]=t.knnIndexes[n][e],f[n]-=1;return m}async multiColumnKNN(e,r,o=15,a,l,i=t.EUCLIDEAN){if(e.length!==r.length||e.length!==a.length||e.length!==l.length)throw new Error("values, distance functions, options and weights arrays should have the same length");if(e.some((t=>t.length!==e[0].length)))throw new Error("all values arrays should have the same length");const h=e[0].length*(e[0].length-1)/2,c=Math.floor(h/this._workerCount),u=new Array(this._workerCount),g=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(n.p+n.u(282),n.b))));for(let t=0;t<this._workerCount;t++)u[t]=new Promise(((n,s)=>{const u=t*c,f=t===this._workerCount-1?h:(t+1)*c;f<=u&&n({knnDistances:new Array(0),knnIndexes:new Array(0)}),g[t].postMessage({values:e,startIdx:u,endIdx:f,fnNames:r,opts:a,nNeighbours:o,weights:l,aggregationMethod:i}),g[t].onmessage=({data:{error:e,knnDistances:r,knnIndexes:o}})=>{e?(g[t].terminate(),s(e)):(g[t].terminate(),n({knnDistances:r,knnIndexes:o}))}}));const f=await Promise.all(u),m={knnDistances:new Array(e[0].length).fill(null).map((()=>new Array(o).fill(99999))),knnIndexes:new Array(e[0].length).fill(null).map((()=>new Array(o).fill(-1)))};for(const t of f)for(let n=0;n<e[0].length;++n)for(let e=0;e<t.knnDistances[n]?.length;++e)s(m.knnDistances[n],m.knnIndexes[n],t.knnDistances[n][e],t.knnIndexes[n][e]);return m}async getSampleDistances(e,r,s=[],o,a=t.EUCLIDEAN){const l=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(n.p+n.u(40),n.b))));try{const t=e[0].length*(e[0].length-1)/2,n=Math.floor(t/this._workerCount),i=1e6,h=Math.max(Math.min(t/1e3,i),Math.min(t,i)),c=Math.floor(h/this._workerCount),u=new Array(this._workerCount);for(let i=0;i<this._workerCount;i++)u[i]=new Promise(((h,u)=>{const g=i*n,f=i===this._workerCount-1?t:(i+1)*n;l[i].postMessage({values:e,startIdx:g,endIdx:f,sampleLength:c,fnNames:r,opts:s,weights:o,aggregationMethod:a}),l[i].onmessage=({data:{error:t,distance:e}})=>{l[i].terminate(),t?u(t):h({distance:e})}}));const g=await Promise.all(u),f=g.reduce(((t,e)=>t+e.distance.length),0),m=new Float32Array(f);let w=0;for(const t of g)m.set(t.distance,w),w+=t.distance.length;return m.sort(),m}catch(t){return l?.forEach((t=>t?.terminate())),console.error(t),new Float32Array(1).fill(.5)}}async getMinimalThreshold(e,n,r=[],s,o=t.EUCLIDEAN){try{const t=e.length*(e.length-1)/2,a=await this.getSampleDistances(e,n,r,s,o);return 1-a[Math.floor(7e7/t*a.length)]}catch(t){return console.error(t),.5}}static calcSync(t,e,n,s){const o=[],a=[],l=[];let i=0,h=0,c=0;const u=t.length*(t.length-1)/2;for(;i<u;){const e=r(t[h])||r(t[c])?1:n(t[h],t[c]);1-e>=s&&(o.push(h),a.push(c),l.push(e)),i++,c++,c===t.length&&(h++,c=h+1)}return{i:new Int32Array(o),j:new Int32Array(a),distance:new Float32Array(l)}}}async function a(t,e,n){const r=t.length,s=[],o=[];for(let a=0;a<r;a++)for(let l=a+1;l<r;l++){const r=t[a],i=t[l];e[r]?.[i]>=n&&(s.push(a),o.push(l))}return function(t,e,n){const r=new Float32Array(n.length).fill(0).map((()=>10*Math.random())),s=new Float32Array(n.length).fill(0).map((()=>10*Math.random())),o=new Float32Array(n.length).fill(0),a=new Float32Array(n.length).fill(0);for(let l=0;l<100;l++){const i=1-l/100;o.fill(0),a.fill(0);for(let n=0;n<t.length;n++){const l=t[n],h=e[n],c=r[l]-r[h],u=s[l]-s[h];Math.abs(c)>=1&&(o[l]-=i*c,o[h]+=i*c),Math.abs(u)>=1&&(a[l]-=i*u,a[h]+=i*u)}for(let t=0;t<n.length;t++){const e=Math.sqrt(o[t]*o[t]+a[t]*a[t]);e>0&&(r[t]+=o[t]/e*i,s[t]+=a[t]/e*i)}}let l=r[0],i=s[0],h=r[0],c=s[0];for(let t=1;t<n.length;t++)l=Math.min(l,r[t]),i=Math.min(i,s[t]),h=Math.max(h,r[t]),c=Math.max(c,s[t]);let u=h-l,g=c-i;0===u&&(u=h);for(let t=0;t<n.length;t++)r[t]=(r[t]-l)/u/2+.5;0===g&&(g=c);for(let t=0;t<n.length;t++)s[t]=(s[t]-i)/g/2+.5;return{embedX:r,embedY:s}}(s,o,t)}const l={expandFactor:2,maxIterations:5,inflateFactor:2,multFactor:1};class i{_options;constructor(t={}){this._options={...l,...t}}async transform(t,e){let n=this.toObjectForm(t);this.addLoops(n,e),this.normalize(n);for(let t=0;t<this._options.maxIterations;t++)n=this.expand(n,e),this.inflate(n),this.normalize(n);const{clusters:r,is:s,js:o}=this.assignClusters(n,e);this.correctClusters(r);const a=await this.layout(r,n,e);return{clusters:r,embedX:a.embedX,embedY:a.embedY,is:s,js:o}}correctClusters(t){const e={};for(const n of t)e[n]||(e[n]=0),e[n]++;const n=Object.keys(e).map(Number).sort(((t,n)=>e[t]-e[n])),r={};n.forEach(((t,e)=>r[t]=e+1));for(let e=0;e<t.length;e++)t[e]=r[t[e]]}async layout(t,e,n){const r=new Float32Array(n).fill(0),s=new Float32Array(n).fill(0),o={};t.forEach(((t,e)=>{o[t]||(o[t]=[]),o[t].push(e)}));let l=0;const i=Object.keys(o);i.sort(((t,e)=>o[e].length-o[t].length));let h=6,c=0;for(const t of i){const n=o[t],i=await a(n,e,.001);l===h&&(l=0,c+=5/h,h=Math.ceil(1.5*h));const u=l%h*5/h;for(let t=0;t<i.embedX.length;t++)r[n[t]]=5*i.embedX[t]/h+u,s[n[t]]=5*i.embedY[t]/h+c;l++}return{embedX:r,embedY:s}}mergeClusters(t,e,n){const r=t[e],s=t[n];for(let e=0;e<t.length;e++)t[e]===s&&(t[e]=r)}assignClusters(t,e){let n=0;const r=[],s=[],o=Math.floor(Math.max(Math.log10(e),2))+1,a=Math.pow(10,o),l=new Array(e).fill(-1);for(const e of Object.keys(t))for(const o of Object.keys(t[e]))Math.round(t[e][o]*a)/a>0&&t[e][o]!==Number(e)&&Number(o)>Number(e)&&(r.push(Number(e)),s.push(Number(o)),-1!==l[Number(e)]&&-1!==l[Number(o)]?l[Number(e)]!==l[Number(o)]&&this.mergeClusters(l,Number(e),Number(o)):-1!==l[Number(e)]?l[Number(o)]=l[Number(e)]:-1!==l[Number(o)]?l[Number(e)]=l[Number(o)]:(n++,l[Number(e)]=n,l[Number(o)]=n));for(let t=0;t<l.length;t++)-1===l[t]&&(n++,l[t]=n);return{clusters:l,is:r,js:s}}toObjectForm(t){const e={};for(let n=0;n<t.i.length;n++)e[t.i[n]]||(e[t.i[n]]={}),e[t.i[n]][t.j[n]]=1-t.distance[n],e[t.j[n]]||(e[t.j[n]]={}),e[t.j[n]][t.i[n]]=1-t.distance[n];return e}addLoops(t,e){for(let n=0;n<e;n++)t[n]||(t[n]={}),t[n][n]=this._options.multFactor}normalize(t){for(const e of Object.keys(t)){const n=t[e];let r=0;for(const t of Object.keys(n))r+=n[t];if(0!==r)for(const s of Object.keys(n))t[e][s]/=r}}expand(t,e){const n={},r=Math.floor(Math.max(Math.log10(e),2))+1,s=Math.pow(10,r);for(let r=0;r<e;r++)if(t[r]){n[r]={};for(let o=r;o<e;o++){if(!t[r]?.[o])continue;const e=this.getExpandValue(t,r,o);Math.round(e*s)/s>0&&(n[r][o]=e,n[o]||(n[o]={}),n[o][r]=e)}}return n}inflate(t){for(const e of Object.keys(t)){const n=t[e];for(const r of Object.keys(n))t[e][r]=Math.pow(t[e][r],this._options.inflateFactor)}}getExpandValue(t,e,n){let r=0;const s=Object.keys(t[e]??{}),o=Object.keys(t[n]??{});for(const a of s)o.includes(a)&&(r+=t[e][a]*t[n][a]);return r}}onmessage=async t=>{const{data:e,threshold:n,weights:r,aggregationMethod:s,distanceFnArgs:a,distanceFns:l,maxIterations:h}=t.data,c=await(new o).calcMultiColumn(e,l,n/100,a,r,s),u=await new i({maxIterations:h??5}).transform(c,e[0].length);postMessage({res:u})},peptides={}})();
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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TSxFQUNWLE1BQU0wRyxFQUFpQjVMLE9BQU9vSyxLQUFLN0MsRUFBYTFHLElBQU0sQ0FBQyxHQUNqRGdMLEVBQWU3TCxPQUFPb0ssS0FBSzdDLEVBQWFsRCxJQUFNLENBQUMsR0FDckQsSUFBSyxNQUFNNkcsS0FBS1UsRUFDUkMsRUFBYUMsU0FBU1osS0FDdEJoRyxHQUFPcUMsRUFBYTFHLEdBQUdxSyxHQUFLM0QsRUFBYWxELEdBQUc2RyxJQUVwRCxPQUFPaEcsQ0FDWCxFQzNNSlQsVUFBWTJDLE1BQU8yRSxJQUNmLE1BQU0sS0FBRXJILEVBQUksVUFBRWpDLEVBQVMsUUFBRUUsRUFBTyxrQkFBRUMsRUFBaUIsZUFBRW9KLEVBQWMsWUFBRUMsRUFBVyxjQUFFakQsR0FBa0IrQyxFQUFNckgsS0FDcEd3SCxRQUFlLElBQUluSyxHQUNwQk8sZ0JBQWdCb0MsRUFBTXVILEVBQWF4SixFQUFZLElBQUt1SixFQUFnQnJKLEVBQVNDLEdBQzVFd0MsUUFBWSxJQUFJK0QsRUFBaUIsQ0FBRUgsY0FBZUEsR0FBaUIsSUFBS0ssVUFBVTZDLEVBQVF4SCxFQUFLLEdBQUc5RCxRQUN4RzRELFlBQVksQ0FBRVksT0FBTSxFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvZGlzdGFuY2UtbWF0cml4L3R5cGVzLmpzIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svcnVudGltZS9nZXQgamF2YXNjcmlwdCBjaHVuayBmaWxlbmFtZSIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvZ2xvYmFsIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ydW50aW1lL3B1YmxpY1BhdGgiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ydW50aW1lL2ltcG9ydFNjcmlwdHMgY2h1bmsgbG9hZGluZyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy9kaXN0YW5jZS1tYXRyaXgvdXRpbHMuanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvZGlzdGFuY2UtbWF0cml4L3NwYXJzZS1tYXRyaXgtc2VydmljZS5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy9NQ0wvYmlvLWxheW91dC5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy9NQ0wvbWFyY292LWNsdXN0ZXIuanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvTUNML21jbC13b3JrZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHZhciBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcztcbihmdW5jdGlvbiAoRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMpIHtcbiAgICBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kc1tcIkVVQ0xJREVBTlwiXSA9IFwiRVVDTElERUFOXCI7XG4gICAgRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHNbXCJNQU5IQVRUQU5cIl0gPSBcIk1BTkhBVFRBTlwiO1xufSkoRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMgfHwgKERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzID0ge30pKTtcbjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRIbHdaWE11YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SjBlWEJsY3k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRU3hOUVVGTkxFTkJRVTRzU1VGQldTd3dRa0ZIVkR0QlFVaElMRmRCUVZrc01FSkJRVEJDTzBsQlEyeERMSEZFUVVGMVFpeERRVUZCTzBsQlEzWkNMSEZFUVVGMVFpeERRVUZCTzBGQlEzcENMRU5CUVVNc1JVRklVeXd3UWtGQk1FSXNTMEZCTVVJc01FSkJRVEJDTEZGQlIyNURPMEZCUVVFc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1WNGNHOXlkQ0JsYm5WdElFUnBjM1JoYm1ObFFXZG5jbVZuWVhScGIyNU5aWFJvYjJSeklIdGNiaUFnSUNCRlZVTk1TVVJGUVU0Z1BTQW5SVlZEVEVsRVJVRk9KeXhjYmlBZ0lDQk5RVTVJUVZSVVFVNGdQU0FuVFVGT1NFRlVWRUZPSnl4Y2JpQWdmVHRjYmx4dVpYaHdiM0owSUhSNWNHVWdSR2x6ZEdGdVkyVkJaMmR5WldkaGRHbHZiazFsZEdodlpDQTlJR3RsZVc5bUlIUjVjR1Z2WmlCRWFYTjBZVzVqWlVGblozSmxaMkYwYVc5dVRXVjBhRzlrY3p0Y2JpSmRmUT09IiwiLy8gVGhlIHJlcXVpcmUgc2NvcGVcbnZhciBfX3dlYnBhY2tfcmVxdWlyZV9fID0ge307XG5cbi8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBfX3dlYnBhY2tfbW9kdWxlc19fO1xuXG4iLCIvLyBUaGlzIGZ1bmN0aW9uIGFsbG93IHRvIHJlZmVyZW5jZSBhc3luYyBjaHVua3Ncbl9fd2VicGFja19yZXF1aXJlX18udSA9IChjaHVua0lkKSA9PiB7XG5cdC8vIHJldHVybiB1cmwgZm9yIGZpbGVuYW1lcyBiYXNlZCBvbiB0ZW1wbGF0ZVxuXHRyZXR1cm4gXCJcIiArIGNodW5rSWQgKyBcIi5qc1wiO1xufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmcgPSAoZnVuY3Rpb24oKSB7XG5cdGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gJ29iamVjdCcpIHJldHVybiBnbG9iYWxUaGlzO1xuXHR0cnkge1xuXHRcdHJldHVybiB0aGlzIHx8IG5ldyBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXHR9IGNhdGNoIChlKSB7XG5cdFx0aWYgKHR5cGVvZiB3aW5kb3cgPT09ICdvYmplY3QnKSByZXR1cm4gd2luZG93O1xuXHR9XG59KSgpOyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCJ2YXIgc2NyaXB0VXJsO1xuaWYgKF9fd2VicGFja19yZXF1aXJlX18uZy5pbXBvcnRTY3JpcHRzKSBzY3JpcHRVcmwgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmcubG9jYXRpb24gKyBcIlwiO1xudmFyIGRvY3VtZW50ID0gX193ZWJwYWNrX3JlcXVpcmVfXy5nLmRvY3VtZW50O1xuaWYgKCFzY3JpcHRVcmwgJiYgZG9jdW1lbnQpIHtcblx0aWYgKGRvY3VtZW50LmN1cnJlbnRTY3JpcHQpXG5cdFx0c2NyaXB0VXJsID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5zcmM7XG5cdGlmICghc2NyaXB0VXJsKSB7XG5cdFx0dmFyIHNjcmlwdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcInNjcmlwdFwiKTtcblx0XHRpZihzY3JpcHRzLmxlbmd0aCkge1xuXHRcdFx0dmFyIGkgPSBzY3JpcHRzLmxlbmd0aCAtIDE7XG5cdFx0XHR3aGlsZSAoaSA+IC0xICYmICFzY3JpcHRVcmwpIHNjcmlwdFVybCA9IHNjcmlwdHNbaS0tXS5zcmM7XG5cdFx0fVxuXHR9XG59XG4vLyBXaGVuIHN1cHBvcnRpbmcgYnJvd3NlcnMgd2hlcmUgYW4gYXV0b21hdGljIHB1YmxpY1BhdGggaXMgbm90IHN1cHBvcnRlZCB5b3UgbXVzdCBzcGVjaWZ5IGFuIG91dHB1dC5wdWJsaWNQYXRoIG1hbnVhbGx5IHZpYSBjb25maWd1cmF0aW9uXG4vLyBvciBwYXNzIGFuIGVtcHR5IHN0cmluZyAoXCJcIikgYW5kIHNldCB0aGUgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gdmFyaWFibGUgZnJvbSB5b3VyIGNvZGUgdG8gdXNlIHlvdXIgb3duIGxvZ2ljLlxuaWYgKCFzY3JpcHRVcmwpIHRocm93IG5ldyBFcnJvcihcIkF1dG9tYXRpYyBwdWJsaWNQYXRoIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyXCIpO1xuc2NyaXB0VXJsID0gc2NyaXB0VXJsLnJlcGxhY2UoLyMuKiQvLCBcIlwiKS5yZXBsYWNlKC9cXD8uKiQvLCBcIlwiKS5yZXBsYWNlKC9cXC9bXlxcL10rJC8sIFwiL1wiKTtcbl9fd2VicGFja19yZXF1aXJlX18ucCA9IHNjcmlwdFVybDsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmIgPSBzZWxmLmxvY2F0aW9uICsgXCJcIjtcblxuLy8gb2JqZWN0IHRvIHN0b3JlIGxvYWRlZCBjaHVua3Ncbi8vIFwiMVwiIG1lYW5zIFwiYWxyZWFkeSBsb2FkZWRcIlxudmFyIGluc3RhbGxlZENodW5rcyA9IHtcblx0OTk3OiAxXG59O1xuXG4vLyBubyBjaHVuayBpbnN0YWxsIGZ1bmN0aW9uIG5lZWRlZFxuLy8gbm8gY2h1bmsgbG9hZGluZ1xuXG4vLyBubyBITVJcblxuLy8gbm8gSE1SIG1hbmlmZXN0IiwiaW1wb3J0IHsgRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMgfSBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCBjb25zdCBpc05pbCA9ICh4KSA9PiB4ID09PSBudWxsIHx8IHggPT09IHVuZGVmaW5lZDtcbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRTbWFsbGVyKGRpc3RhbmNlc0FyLCBpbmRleGVzLCBudW0sIGluZGV4KSB7XG4gICAgaWYgKG51bSA+IGRpc3RhbmNlc0FyW2Rpc3RhbmNlc0FyLmxlbmd0aCAtIDFdKVxuICAgICAgICByZXR1cm47XG4gICAgY29uc3QgbmV3UG9zaXRpb24gPSBkaXN0YW5jZXNBci5maW5kSW5kZXgoKHYpID0+IG51bSA8IHYpO1xuICAgIGRpc3RhbmNlc0FyLnBvcCgpO1xuICAgIGRpc3RhbmNlc0FyLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgbnVtKTtcbiAgICBpbmRleGVzLnBvcCgpO1xuICAgIGluZGV4ZXMuc3BsaWNlKG5ld1Bvc2l0aW9uLCAwLCBpbmRleCk7XG59XG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0TGFyZ2VyKGRpc3RhbmNlc0FyLCBpbmRleGVzLCBudW0sIGluZGV4KSB7XG4gICAgaWYgKG51bSA8IGRpc3RhbmNlc0FyW2Rpc3RhbmNlc0FyLmxlbmd0aCAtIDFdKVxuICAgICAgICByZXR1cm47XG4gICAgY29uc3QgbmV3UG9zaXRpb24gPSBkaXN0YW5jZXNBci5maW5kSW5kZXgoKHYpID0+IG51bSA+IHYpO1xuICAgIGRpc3RhbmNlc0FyLnBvcCgpO1xuICAgIGRpc3RhbmNlc0FyLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgbnVtKTtcbiAgICBpbmRleGVzLnBvcCgpO1xuICAgIGluZGV4ZXMuc3BsaWNlKG5ld1Bvc2l0aW9uLCAwLCBpbmRleCk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0QWdncmVnYXRpb25GdW5jdGlvbihhZ2dyZWdhdGlvbk1ldGhvZCwgd2VpZ2h0cykge1xuICAgIHN3aXRjaCAoYWdncmVnYXRpb25NZXRob2QpIHtcbiAgICAgICAgY2FzZSBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcy5NQU5IQVRUQU46XG4gICAgICAgICAgICByZXR1cm4gKHZzKSA9PiB2cy5yZWR1Y2UoKGFjYywgdmFsLCBpZHgpID0+IGFjYyArIHZhbCAqIHdlaWdodHNbaWR4XSwgMCk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gKHZzKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gZXVjbGlkZWFuXG4gICAgICAgICAgICAgICAgY29uc3Qgc3VtID0gdnMucmVkdWNlKChhY2MsIHZhbCwgaWR4KSA9PiBhY2MgKyAodmFsICogd2VpZ2h0c1tpZHhdKSAqKiAyLCAwKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5zcXJ0KHN1bSk7XG4gICAgICAgICAgICB9O1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRYUnBiSE11YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SjFkR2xzY3k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRU3hQUVVGUExFVkJRVFJDTERCQ1FVRXdRaXhGUVVGRExFMUJRVTBzVTBGQlV5eERRVUZETzBGQlJUbEZMRTFCUVUwc1EwRkJReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVMHNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhMUVVGTExFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NVMEZCVXl4RFFVRkRPMEZCUlM5RUxFMUJRVTBzVlVGQlZTeGhRVUZoTEVOQlFVTXNWMEZCY1VJc1JVRkJSU3hQUVVGcFFpeEZRVUZGTEVkQlFWY3NSVUZCUlN4TFFVRmhPMGxCUTJoSExFbEJRVWtzUjBGQlJ5eEhRVUZITEZkQlFWY3NRMEZCUXl4WFFVRlhMRU5CUVVNc1RVRkJUU3hIUVVGRExFTkJRVU1zUTBGQlF6dFJRVU42UXl4UFFVRlBPMGxCUlZRc1RVRkJUU3hYUVVGWExFZEJRVWNzVjBGQlZ5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUXpGRUxGZEJRVmNzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXp0SlFVTnNRaXhYUVVGWExFTkJRVU1zVFVGQlRTeERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGVFTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRE8wbEJRMlFzVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJReXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzBGQlEzaERMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzV1VGQldTeERRVUZETEZkQlFYRkNMRVZCUVVVc1QwRkJhVUlzUlVGQlJTeEhRVUZYTEVWQlFVVXNTMEZCWVR0SlFVTXZSaXhKUVVGSkxFZEJRVWNzUjBGQlJ5eFhRVUZYTEVOQlFVTXNWMEZCVnl4RFFVRkRMRTFCUVUwc1IwRkJReXhEUVVGRExFTkJRVU03VVVGRGVrTXNUMEZCVHp0SlFVVlVMRTFCUVUwc1YwRkJWeXhIUVVGSExGZEJRVmNzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTXhSQ3hYUVVGWExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTTdTVUZEYkVJc1YwRkJWeXhEUVVGRExFMUJRVTBzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRM2hETEU5QlFVOHNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJRenRKUVVOa0xFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dEJRVU40UXl4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxITkNRVUZ6UWl4RFFVTndReXhwUWtGQk5FTXNSVUZCUlN4UFFVRnBRanRKUVVVdlJDeFJRVUZSTEdsQ1FVRnBRaXhGUVVGRk8xRkJRM3BDTEV0QlFVc3NNRUpCUVRCQ0xFTkJRVU1zVTBGQlV6dFpRVU4yUXl4UFFVRlBMRU5CUVVNc1JVRkJXU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhIUVVGSExFZEJRVWNzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM0pHTzFsQlEwVXNUMEZCVHl4RFFVRkRMRVZCUVZrc1JVRkJSU3hGUVVGRk8yZENRVU4wUWl4WlFVRlpPMmRDUVVOYUxFMUJRVTBzUjBGQlJ5eEhRVUZITEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU1zUjBGQlJ5eEhRVUZITEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkROMFVzVDBGQlR5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRM2hDTEVOQlFVTXNRMEZCUXp0TFFVTk1PMEZCUTBnc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3UkdsemRHRnVZMlZCWjJkeVpXZGhkR2x2YmsxbGRHaHZaQ3dnUkdsemRHRnVZMlZCWjJkeVpXZGhkR2x2YmsxbGRHaHZaSE45SUdaeWIyMGdKeTR2ZEhsd1pYTW5PMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdhWE5PYVd3Z1BTQW9lRG9nWVc1NUtTQTlQaUI0SUQwOVBTQnVkV3hzSUh4OElIZ2dQVDA5SUhWdVpHVm1hVzVsWkR0Y2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHbHVjMlZ5ZEZOdFlXeHNaWElvWkdsemRHRnVZMlZ6UVhJNklHNTFiV0psY2x0ZExDQnBibVJsZUdWek9pQnVkVzFpWlhKYlhTd2diblZ0T2lCdWRXMWlaWElzSUdsdVpHVjRPaUJ1ZFcxaVpYSXBJSHRjYmlBZ2FXWWdLRzUxYlNBK0lHUnBjM1JoYm1ObGMwRnlXMlJwYzNSaGJtTmxjMEZ5TG14bGJtZDBhQzB4WFNsY2JpQWdJQ0J5WlhSMWNtNDdYRzVjYmlBZ1kyOXVjM1FnYm1WM1VHOXphWFJwYjI0Z1BTQmthWE4wWVc1alpYTkJjaTVtYVc1a1NXNWtaWGdvS0hZcElEMCtJRzUxYlNBOElIWXBPMXh1SUNCa2FYTjBZVzVqWlhOQmNpNXdiM0FvS1R0Y2JpQWdaR2x6ZEdGdVkyVnpRWEl1YzNCc2FXTmxLRzVsZDFCdmMybDBhVzl1TENBd0xDQnVkVzBwTzF4dUlDQnBibVJsZUdWekxuQnZjQ2dwTzF4dUlDQnBibVJsZUdWekxuTndiR2xqWlNodVpYZFFiM05wZEdsdmJpd2dNQ3dnYVc1a1pYZ3BPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2FXNXpaWEowVEdGeVoyVnlLR1JwYzNSaGJtTmxjMEZ5T2lCdWRXMWlaWEpiWFN3Z2FXNWtaWGhsY3pvZ2JuVnRZbVZ5VzEwc0lHNTFiVG9nYm5WdFltVnlMQ0JwYm1SbGVEb2diblZ0WW1WeUtTQjdYRzRnSUdsbUlDaHVkVzBnUENCa2FYTjBZVzVqWlhOQmNsdGthWE4wWVc1alpYTkJjaTVzWlc1bmRHZ3RNVjBwWEc0Z0lDQWdjbVYwZFhKdU8xeHVYRzRnSUdOdmJuTjBJRzVsZDFCdmMybDBhVzl1SUQwZ1pHbHpkR0Z1WTJWelFYSXVabWx1WkVsdVpHVjRLQ2gyS1NBOVBpQnVkVzBnUGlCMktUdGNiaUFnWkdsemRHRnVZMlZ6UVhJdWNHOXdLQ2s3WEc0Z0lHUnBjM1JoYm1ObGMwRnlMbk53YkdsalpTaHVaWGRRYjNOcGRHbHZiaXdnTUN3Z2JuVnRLVHRjYmlBZ2FXNWtaWGhsY3k1d2IzQW9LVHRjYmlBZ2FXNWtaWGhsY3k1emNHeHBZMlVvYm1WM1VHOXphWFJwYjI0c0lEQXNJR2x1WkdWNEtUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdkbGRFRm5aM0psWjJGMGFXOXVSblZ1WTNScGIyNG9YRzRnSUdGblozSmxaMkYwYVc5dVRXVjBhRzlrT2lCRWFYTjBZVzVqWlVGblozSmxaMkYwYVc5dVRXVjBhRzlrTENCM1pXbG5hSFJ6T2lCdWRXMWlaWEpiWFZ4dUtUb2dLSFpoYkhWbGN6b2diblZ0WW1WeVcxMHBJRDArSUc1MWJXSmxjaUI3WEc0Z0lITjNhWFJqYUNBb1lXZG5jbVZuWVhScGIyNU5aWFJvYjJRcElIdGNiaUFnSUNCallYTmxJRVJwYzNSaGJtTmxRV2RuY21WbllYUnBiMjVOWlhSb2IyUnpMazFCVGtoQlZGUkJUanBjYmlBZ0lDQWdJSEpsZEhWeWJpQW9kbk02SUc1MWJXSmxjbHRkS1NBOVBpQjJjeTV5WldSMVkyVW9LR0ZqWXl3Z2RtRnNMQ0JwWkhncElEMCtJR0ZqWXlBcklIWmhiQ0FxSUhkbGFXZG9kSE5iYVdSNFhTd2dNQ2s3WEc0Z0lDQWdaR1ZtWVhWc2REcGNiaUFnSUNBZ0lISmxkSFZ5YmlBb2RuTTZJRzUxYldKbGNsdGRLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDOHZJR1YxWTJ4cFpHVmhibHh1SUNBZ0lDQWdJQ0JqYjI1emRDQnpkVzBnUFNCMmN5NXlaV1IxWTJVb0tHRmpZeXdnZG1Gc0xDQnBaSGdwSUQwK0lHRmpZeUFySUNoMllXd2dLaUIzWldsbmFIUnpXMmxrZUYwcElDb3FJRElzSURBcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1RXRjBhQzV6Y1hKMEtITjFiU2s3WEc0Z0lDQWdJQ0I5TzF4dUlDQjlYRzU5WEc0aVhYMD0iLCJpbXBvcnQgeyBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgaW5zZXJ0U21hbGxlciwgaXNOaWwgfSBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCBjbGFzcyBTcGFyc2VNYXRyaXhTZXJ2aWNlIHtcbiAgICBfd29ya2VyQ291bnQ7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuX3dvcmtlckNvdW50ID0gTWF0aC5tYXgobmF2aWdhdG9yLmhhcmR3YXJlQ29uY3VycmVuY3kgLSAyLCAxKTtcbiAgICB9XG4gICAgYXN5bmMgY2FsY011bHRpQ29sdW1uKHZhbHVlcywgZm5OYW1lcywgdGhyZXNob2xkLCBvcHRzID0gW3t9XSwgd2VpZ2h0cyA9IFsxXSwgYWdncmVnYXRpb25NZXRob2QgPSBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcy5FVUNMSURFQU4pIHtcbiAgICAgICAgY29uc3QgbWF0U2l6ZSA9IHZhbHVlc1swXS5sZW5ndGggKiAodmFsdWVzWzBdLmxlbmd0aCAtIDEpIC8gMjtcbiAgICAgICAgY29uc3QgY2h1bmtTaXplID0gTWF0aC5mbG9vcihtYXRTaXplIC8gdGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICBjb25zdCBtaW5UaHJlc2hvbGQgPSB2YWx1ZXNbMF0ubGVuZ3RoID4gMjAwMDAgP1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5nZXRNaW5pbWFsVGhyZXNob2xkKHZhbHVlcywgZm5OYW1lcywgb3B0cywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QpIDogMDtcbiAgICAgICAgaWYgKHRocmVzaG9sZCA8IG1pblRocmVzaG9sZCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYHVzaW5nIHRocmVzaG9sZCAke21pblRocmVzaG9sZH1gKTtcbiAgICAgICAgICAgIHRocmVzaG9sZCA9IG1pblRocmVzaG9sZDtcbiAgICAgICAgfVxuICAgICAgICBvcHRzLmZvckVhY2goKF8sIGkpID0+IG9wdHNbaV1bJ3RocmVzaG9sZCddID0gdGhyZXNob2xkKTtcbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSBuZXcgQXJyYXkodGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICBjb25zdCB3b3JrZXJzID0gbmV3IEFycmF5KHRoaXMuX3dvcmtlckNvdW50KVxuICAgICAgICAgICAgLmZpbGwobnVsbCkubWFwKCgpID0+IG5ldyBXb3JrZXIobmV3IFVSTCgnLi9zcGFyc2UtbWF0cml4LXdvcmtlcicsIGltcG9ydC5tZXRhLnVybCkpKTtcbiAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgdGhpcy5fd29ya2VyQ291bnQ7IGlkeCsrKSB7XG4gICAgICAgICAgICBwcm9taXNlc1tpZHhdID0gbmV3IFByb21pc2UoKHJlc29sdmVXb3JrZXIsIHJlamVjdFdvcmtlcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0SWR4ID0gaWR4ICogY2h1bmtTaXplO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZElkeCA9IGlkeCA9PT0gdGhpcy5fd29ya2VyQ291bnQgLSAxID8gbWF0U2l6ZSA6IChpZHggKyAxKSAqIGNodW5rU2l6ZTtcbiAgICAgICAgICAgICAgICBpZiAoZW5kSWR4IDw9IHN0YXJ0SWR4KVxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlV29ya2VyKHsgaTogbmV3IEludDMyQXJyYXkoMCksIGo6IG5ldyBJbnQzMkFycmF5KDApLCBkaXN0YW5jZTogbmV3IEZsb2F0MzJBcnJheSgwKSwgaWR4IH0pO1xuICAgICAgICAgICAgICAgIHdvcmtlcnNbaWR4XS5wb3N0TWVzc2FnZSh7IHZhbHVlcywgc3RhcnRJZHgsIGVuZElkeCwgdGhyZXNob2xkLCBmbk5hbWVzLCBvcHRzLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCB9KTtcbiAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0ub25tZXNzYWdlID0gKHsgZGF0YTogeyBlcnJvciwgaSwgaiwgZGlzdGFuY2UgfSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0V29ya2VyKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtlcnNbaWR4XS50ZXJtaW5hdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVXb3JrZXIoeyBpLCBqLCBkaXN0YW5jZSwgaWR4IH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgICAgIGNvbnN0IGZ1bGxTaXplID0gcmVzdWx0cy5yZWR1Y2UoKGFjYywgdmFsKSA9PiBhY2MgKyB2YWwuaS5sZW5ndGgsIDApO1xuICAgICAgICBjb25zdCBpID0gbmV3IEludDMyQXJyYXkoZnVsbFNpemUpO1xuICAgICAgICBjb25zdCBqID0gbmV3IEludDMyQXJyYXkoZnVsbFNpemUpO1xuICAgICAgICBjb25zdCBkaXN0YW5jZSA9IG5ldyBGbG9hdDMyQXJyYXkoZnVsbFNpemUpO1xuICAgICAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICAgICAgLy8gc2V0dGluZyB0aGUgcmVzdWx0c1xuICAgICAgICBmb3IgKGNvbnN0IHJlcyBvZiByZXN1bHRzKSB7XG4gICAgICAgICAgICBpLnNldChyZXMuaSwgb2Zmc2V0KTtcbiAgICAgICAgICAgIGouc2V0KHJlcy5qLCBvZmZzZXQpO1xuICAgICAgICAgICAgZGlzdGFuY2Uuc2V0KHJlcy5kaXN0YW5jZSwgb2Zmc2V0KTtcbiAgICAgICAgICAgIG9mZnNldCArPSByZXMuaS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgaSwgaiwgZGlzdGFuY2UgfTtcbiAgICB9XG4gICAgYXN5bmMgY2FsYyh2YWx1ZXMsIGZuTmFtZSwgdGhyZXNob2xkLCBvcHRzID0ge30pIHtcbiAgICAgICAgLy9zaXplIG9mIGZ1bGwgbWF0cml4XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmNhbGNNdWx0aUNvbHVtbihbdmFsdWVzXSwgW2ZuTmFtZV0sIHRocmVzaG9sZCwgW29wdHNdLCBbMV0pO1xuICAgIH1cbiAgICBhc3luYyBnZXRLTk4odmFsdWVzLCBmbk5hbWUsIG5OZWlnaGJvdXJzID0gMTUsIG9wdHMgPSB7fSkge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5tdWx0aUNvbHVtbktOTihbdmFsdWVzXSwgW2ZuTmFtZV0sIG5OZWlnaGJvdXJzLCBbb3B0c10sIFsxXSk7XG4gICAgfVxuICAgIGFzeW5jIGdldFRocmVzaG9sZEtOTih2YWx1ZXMsIGZuTmFtZSwgdGhyZXNob2xkID0gMC44LCBvcHRzID0ge30pIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMubXVsdGlDb2x1bW5UaHJlc2hvbGRLbm4oW3ZhbHVlc10sIFtmbk5hbWVdLCB0aHJlc2hvbGQsIFtvcHRzXSwgWzFdKTtcbiAgICB9XG4gICAgYXN5bmMgbXVsdGlDb2x1bW5UaHJlc2hvbGRLbm4odmFsdWVzLCBmbk5hbWVzLCB0aHJlc2hvbGQgPSAwLjgsIG9wdHMsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kID0gRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMuRVVDTElERUFOKSB7XG4gICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoICE9PSBmbk5hbWVzLmxlbmd0aCB8fCB2YWx1ZXMubGVuZ3RoICE9PSBvcHRzLmxlbmd0aCB8fCB2YWx1ZXMubGVuZ3RoICE9PSB3ZWlnaHRzLmxlbmd0aClcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndmFsdWVzLCBkaXN0YW5jZSBmdW5jdGlvbnMsIG9wdGlvbnMgYW5kIHdlaWdodHMgYXJyYXlzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGxlbmd0aCcpO1xuICAgICAgICBpZiAodmFsdWVzLnNvbWUoKHYpID0+IHYubGVuZ3RoICE9PSB2YWx1ZXNbMF0ubGVuZ3RoKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYWxsIHZhbHVlcyBhcnJheXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgbGVuZ3RoJyk7XG4gICAgICAgIGNvbnN0IG1hdFNpemUgPSB2YWx1ZXNbMF0ubGVuZ3RoICogKHZhbHVlc1swXS5sZW5ndGggLSAxKSAvIDI7XG4gICAgICAgIGNvbnN0IGNodW5rU2l6ZSA9IE1hdGguZmxvb3IobWF0U2l6ZSAvIHRoaXMuX3dvcmtlckNvdW50KTtcbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSBuZXcgQXJyYXkodGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICBjb25zdCB3b3JrZXJzID0gbmV3IEFycmF5KHRoaXMuX3dvcmtlckNvdW50KVxuICAgICAgICAgICAgLmZpbGwobnVsbCkubWFwKCgpID0+IG5ldyBXb3JrZXIobmV3IFVSTCgnLi9rbm4tdGhyZXNob2xkLXdvcmtlcicsIGltcG9ydC5tZXRhLnVybCkpKTtcbiAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgdGhpcy5fd29ya2VyQ291bnQ7IGlkeCsrKSB7XG4gICAgICAgICAgICBwcm9taXNlc1tpZHhdID0gbmV3IFByb21pc2UoKHJlc29sdmVXb3JrZXIsIHJlamVjdFdvcmtlcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0SWR4ID0gaWR4ICogY2h1bmtTaXplO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZElkeCA9IGlkeCA9PT0gdGhpcy5fd29ya2VyQ291bnQgLSAxID8gbWF0U2l6ZSA6IChpZHggKyAxKSAqIGNodW5rU2l6ZTtcbiAgICAgICAgICAgICAgICBpZiAoZW5kSWR4IDw9IHN0YXJ0SWR4KVxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlV29ya2VyKHsga25uRGlzdGFuY2VzOiBuZXcgQXJyYXkoMCksIGtubkluZGV4ZXM6IG5ldyBBcnJheSgwKSB9KTtcbiAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0ucG9zdE1lc3NhZ2UoeyB2YWx1ZXMsIHN0YXJ0SWR4LCBlbmRJZHgsIGZuTmFtZXMsIG9wdHMsIHRocmVzaG9sZCwgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QgfSk7XG4gICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLm9ubWVzc2FnZSA9ICh7IGRhdGE6IHsgZXJyb3IsIGtubkRpc3RhbmNlcywga25uSW5kZXhlcyB9IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0udGVybWluYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3RXb3JrZXIoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVdvcmtlcih7IGtubkRpc3RhbmNlcywga25uSW5kZXhlcyB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgICAgICBjb25zdCBrbm5TaXplcyA9IG5ldyBJbnQzMkFycmF5KHZhbHVlc1swXS5sZW5ndGgpO1xuICAgICAgICBmb3IgKGNvbnN0IHJlcyBvZiByZXN1bHRzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlc1swXS5sZW5ndGg7ICsraSlcbiAgICAgICAgICAgICAgICBrbm5TaXplc1tpXSArPSByZXMua25uSW5kZXhlc1tpXT8ubGVuZ3RoID8/IDA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qga25uUmVzID0ge1xuICAgICAgICAgICAga25uRGlzdGFuY2VzOiBuZXcgQXJyYXkodmFsdWVzWzBdLmxlbmd0aCkuZmlsbChudWxsKS5tYXAoKF8sIGkpID0+IG5ldyBBcnJheShrbm5TaXplc1tpXSkpLFxuICAgICAgICAgICAga25uSW5kZXhlczogbmV3IEFycmF5KHZhbHVlc1swXS5sZW5ndGgpLmZpbGwobnVsbCkubWFwKChfLCBpKSA9PiBuZXcgQXJyYXkoa25uU2l6ZXNbaV0pKVxuICAgICAgICB9O1xuICAgICAgICBmb3IgKGNvbnN0IHJlcyBvZiByZXN1bHRzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlc1swXS5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcmVzLmtubkRpc3RhbmNlc1tpXT8ubGVuZ3RoID8/IDA7ICsraikge1xuICAgICAgICAgICAgICAgICAgICBrbm5SZXMua25uRGlzdGFuY2VzW2ldW2tublNpemVzW2ldIC0gMV0gPSByZXMua25uRGlzdGFuY2VzW2ldW2pdO1xuICAgICAgICAgICAgICAgICAgICBrbm5SZXMua25uSW5kZXhlc1tpXVtrbm5TaXplc1tpXSAtIDFdID0gcmVzLmtubkluZGV4ZXNbaV1bal07XG4gICAgICAgICAgICAgICAgICAgIGtublNpemVzW2ldIC09IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrbm5SZXM7XG4gICAgfVxuICAgIGFzeW5jIG11bHRpQ29sdW1uS05OKHZhbHVlcywgZm5OYW1lcywgbk5laWdoYm91cnMgPSAxNSwgb3B0cywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QgPSBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcy5FVUNMSURFQU4pIHtcbiAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggIT09IGZuTmFtZXMubGVuZ3RoIHx8IHZhbHVlcy5sZW5ndGggIT09IG9wdHMubGVuZ3RoIHx8IHZhbHVlcy5sZW5ndGggIT09IHdlaWdodHMubGVuZ3RoKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd2YWx1ZXMsIGRpc3RhbmNlIGZ1bmN0aW9ucywgb3B0aW9ucyBhbmQgd2VpZ2h0cyBhcnJheXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgbGVuZ3RoJyk7XG4gICAgICAgIGlmICh2YWx1ZXMuc29tZSgodikgPT4gdi5sZW5ndGggIT09IHZhbHVlc1swXS5sZW5ndGgpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdhbGwgdmFsdWVzIGFycmF5cyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBsZW5ndGgnKTtcbiAgICAgICAgY29uc3QgbWF0U2l6ZSA9IHZhbHVlc1swXS5sZW5ndGggKiAodmFsdWVzWzBdLmxlbmd0aCAtIDEpIC8gMjtcbiAgICAgICAgY29uc3QgY2h1bmtTaXplID0gTWF0aC5mbG9vcihtYXRTaXplIC8gdGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IG5ldyBBcnJheSh0aGlzLl93b3JrZXJDb3VudCk7XG4gICAgICAgIGNvbnN0IHdvcmtlcnMgPSBuZXcgQXJyYXkodGhpcy5fd29ya2VyQ291bnQpXG4gICAgICAgICAgICAuZmlsbChudWxsKS5tYXAoKCkgPT4gbmV3IFdvcmtlcihuZXcgVVJMKCcuL2tubi13b3JrZXInLCBpbXBvcnQubWV0YS51cmwpKSk7XG4gICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IHRoaXMuX3dvcmtlckNvdW50OyBpZHgrKykge1xuICAgICAgICAgICAgcHJvbWlzZXNbaWR4XSA9IG5ldyBQcm9taXNlKChyZXNvbHZlV29ya2VyLCByZWplY3RXb3JrZXIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydElkeCA9IGlkeCAqIGNodW5rU2l6ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmRJZHggPSBpZHggPT09IHRoaXMuX3dvcmtlckNvdW50IC0gMSA/IG1hdFNpemUgOiAoaWR4ICsgMSkgKiBjaHVua1NpemU7XG4gICAgICAgICAgICAgICAgaWYgKGVuZElkeCA8PSBzdGFydElkeClcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVdvcmtlcih7IGtubkRpc3RhbmNlczogbmV3IEFycmF5KDApLCBrbm5JbmRleGVzOiBuZXcgQXJyYXkoMCkgfSk7XG4gICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLnBvc3RNZXNzYWdlKHsgdmFsdWVzLCBzdGFydElkeCwgZW5kSWR4LCBmbk5hbWVzLCBvcHRzLCBuTmVpZ2hib3Vycywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QgfSk7XG4gICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLm9ubWVzc2FnZSA9ICh7IGRhdGE6IHsgZXJyb3IsIGtubkRpc3RhbmNlcywga25uSW5kZXhlcyB9IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0udGVybWluYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3RXb3JrZXIoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVdvcmtlcih7IGtubkRpc3RhbmNlcywga25uSW5kZXhlcyB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgICAgICBjb25zdCBrbm5SZXMgPSB7XG4gICAgICAgICAgICBrbm5EaXN0YW5jZXM6IG5ldyBBcnJheSh2YWx1ZXNbMF0ubGVuZ3RoKS5maWxsKG51bGwpLm1hcCgoKSA9PiBuZXcgQXJyYXkobk5laWdoYm91cnMpLmZpbGwoOTk5OTkpKSxcbiAgICAgICAgICAgIGtubkluZGV4ZXM6IG5ldyBBcnJheSh2YWx1ZXNbMF0ubGVuZ3RoKS5maWxsKG51bGwpLm1hcCgoKSA9PiBuZXcgQXJyYXkobk5laWdoYm91cnMpLmZpbGwoLTEpKVxuICAgICAgICB9O1xuICAgICAgICBmb3IgKGNvbnN0IHJlcyBvZiByZXN1bHRzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlc1swXS5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcmVzLmtubkRpc3RhbmNlc1tpXT8ubGVuZ3RoID8/IDA7ICsrailcbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0U21hbGxlcihrbm5SZXMua25uRGlzdGFuY2VzW2ldLCBrbm5SZXMua25uSW5kZXhlc1tpXSwgcmVzLmtubkRpc3RhbmNlc1tpXVtqXSwgcmVzLmtubkluZGV4ZXNbaV1bal0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrbm5SZXM7XG4gICAgfVxuICAgIGFzeW5jIGdldFNhbXBsZURpc3RhbmNlcyh2YWx1ZXMsIGZuTmFtZXMsIG9wdHMgPSBbXSwgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QgPSBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcy5FVUNMSURFQU4pIHtcbiAgICAgICAgY29uc3QgdGhyZXNob2xkV29ya2VycyA9IG5ldyBBcnJheSh0aGlzLl93b3JrZXJDb3VudCkuZmlsbChudWxsKVxuICAgICAgICAgICAgLm1hcCgoKSA9PiBuZXcgV29ya2VyKG5ldyBVUkwoJy4vc3BhcnNlLW1hdHJpeC10aHJlc2hvbGQtd29ya2VyJywgaW1wb3J0Lm1ldGEudXJsKSkpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgbWF0U2l6ZSA9IHZhbHVlc1swXS5sZW5ndGggKiAodmFsdWVzWzBdLmxlbmd0aCAtIDEpIC8gMjtcbiAgICAgICAgICAgIGNvbnN0IGNodW5rU2l6ZSA9IE1hdGguZmxvb3IobWF0U2l6ZSAvIHRoaXMuX3dvcmtlckNvdW50KTtcbiAgICAgICAgICAgIGNvbnN0IG1heFNhbXBsZVNpemUgPSAxMDAwMDAwO1xuICAgICAgICAgICAgY29uc3Qgc2FtcGxlU2lzZSA9IE1hdGgubWF4KE1hdGgubWluKG1hdFNpemUgLyAxMDAwLCBtYXhTYW1wbGVTaXplKSwgTWF0aC5taW4obWF0U2l6ZSwgbWF4U2FtcGxlU2l6ZSkpO1xuICAgICAgICAgICAgY29uc3QgdGVzdFNldFNpemVQZXJXb3JrZXIgPSBNYXRoLmZsb29yKHNhbXBsZVNpc2UgLyB0aGlzLl93b3JrZXJDb3VudCk7XG4gICAgICAgICAgICBjb25zdCB0UHJvbWlzZXMgPSBuZXcgQXJyYXkodGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgdGhpcy5fd29ya2VyQ291bnQ7IGlkeCsrKSB7XG4gICAgICAgICAgICAgICAgdFByb21pc2VzW2lkeF0gPSBuZXcgUHJvbWlzZSgocmVzb2x2ZVdvcmtlciwgcmVqZWN0V29ya2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0SWR4ID0gaWR4ICogY2h1bmtTaXplO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmRJZHggPSBpZHggPT09IHRoaXMuX3dvcmtlckNvdW50IC0gMSA/IG1hdFNpemUgOiAoaWR4ICsgMSkgKiBjaHVua1NpemU7XG4gICAgICAgICAgICAgICAgICAgIHRocmVzaG9sZFdvcmtlcnNbaWR4XS5wb3N0TWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM6IHZhbHVlcywgc3RhcnRJZHgsIGVuZElkeCwgc2FtcGxlTGVuZ3RoOiB0ZXN0U2V0U2l6ZVBlcldvcmtlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZuTmFtZXMsIG9wdHMsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aHJlc2hvbGRXb3JrZXJzW2lkeF0ub25tZXNzYWdlID0gKHsgZGF0YTogeyBlcnJvciwgZGlzdGFuY2UgfSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJlc2hvbGRXb3JrZXJzW2lkeF0udGVybWluYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0V29ya2VyKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlV29ya2VyKHsgZGlzdGFuY2UgfSk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwodFByb21pc2VzKTtcbiAgICAgICAgICAgIGNvbnN0IGZ1bGxTaXplID0gcmVzdWx0cy5yZWR1Y2UoKGFjYywgdmFsKSA9PiBhY2MgKyB2YWwuZGlzdGFuY2UubGVuZ3RoLCAwKTtcbiAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlID0gbmV3IEZsb2F0MzJBcnJheShmdWxsU2l6ZSk7XG4gICAgICAgICAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVzIG9mIHJlc3VsdHMpIHtcbiAgICAgICAgICAgICAgICBkaXN0YW5jZS5zZXQocmVzLmRpc3RhbmNlLCBvZmZzZXQpO1xuICAgICAgICAgICAgICAgIG9mZnNldCArPSByZXMuZGlzdGFuY2UubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGlzdGFuY2Uuc29ydCgpO1xuICAgICAgICAgICAgcmV0dXJuIGRpc3RhbmNlO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJlc2hvbGRXb3JrZXJzPy5mb3JFYWNoKCh3KSA9PiB3Py50ZXJtaW5hdGUoKSk7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBGbG9hdDMyQXJyYXkoMSkuZmlsbCgwLjUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIGdldE1pbmltYWxUaHJlc2hvbGQodmFsdWVzLCBmbk5hbWVzLCBvcHRzID0gW10sIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kID0gRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMuRVVDTElERUFOKSB7XG4gICAgICAgIC8vV2UgbmVlZCB0byBjYWxjdWxhdGUgdGhlIG1pbmltYWwgdGhyZXNob2xkIGZpcnN0LFxuICAgICAgICAvL2luIG9yZGVyIHRvIGdldCBtYXRyaXggc3VjaCB0aGF0IGl0IGRvZXMgbm90IGV4Y2VlZCB0aGUgbWF4aW11bSBzaXplIG9mIDFHQlxuICAgICAgICAvL3dlIGhhdmUgMyByZXR1cm4gYXJyYXlzLCBlYWNoIDQgYml0ZXMgcGVyIGVsZW1lbnQsIHNvIGlmIHRoZSBtYXhpbXVtIHNpemUgb2YgdGhlIG1hdHJpeCBpcyAxR0IsXG4gICAgICAgIGNvbnN0IG1heFNwYXJzZU1hdHJpeFNpemUgPSA3MDAwMDAwMDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IG1hdFNpemUgPSB2YWx1ZXMubGVuZ3RoICogKHZhbHVlcy5sZW5ndGggLSAxKSAvIDI7XG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IGF3YWl0IHRoaXMuZ2V0U2FtcGxlRGlzdGFuY2VzKHZhbHVlcywgZm5OYW1lcywgb3B0cywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QpO1xuICAgICAgICAgICAgY29uc3QgZnJhY3Rpb25JbmRleCA9IE1hdGguZmxvb3IobWF4U3BhcnNlTWF0cml4U2l6ZSAvIG1hdFNpemUgKiBkaXN0YW5jZS5sZW5ndGgpO1xuICAgICAgICAgICAgY29uc3QgdGhyZXNob2xkID0gMSAtIGRpc3RhbmNlW2ZyYWN0aW9uSW5kZXhdO1xuICAgICAgICAgICAgLy8gdGhyZXNob2xkID0gTWF0aC5tYXgodGhyZXNob2xkLCAwLjMpO1xuICAgICAgICAgICAgcmV0dXJuIHRocmVzaG9sZDtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgIHJldHVybiAwLjU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIGNhbGNTeW5jKHZhbHVlcywgZm5OYW1lLCBkaXN0YW5jZUZuLCB0aHJlc2hvbGQpIHtcbiAgICAgICAgY29uc3QgaSA9IFtdO1xuICAgICAgICBjb25zdCBqID0gW107XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlcyA9IFtdO1xuICAgICAgICBsZXQgY250ID0gMDtcbiAgICAgICAgbGV0IG1pID0gMDtcbiAgICAgICAgbGV0IG1qID0gMDtcbiAgICAgICAgY29uc3QgZnVsbFNpemUgPSB2YWx1ZXMubGVuZ3RoICogKHZhbHVlcy5sZW5ndGggLSAxKSAvIDI7XG4gICAgICAgIHdoaWxlIChjbnQgPCBmdWxsU2l6ZSkge1xuICAgICAgICAgICAgLy9jb25zdCB2YWx1ZSA9IHNlcTFMaXN0W21pXSAmJiBzZXExTGlzdFttal0gPyBoYW1taW5nKHNlcTFMaXN0W21pXSwgc2VxMUxpc3RbbWpdKSA6IDA7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICFpc05pbCh2YWx1ZXNbbWldKSAmJiAhaXNOaWwodmFsdWVzW21qXSkgP1xuICAgICAgICAgICAgICAgIGRpc3RhbmNlRm4odmFsdWVzW21pXSwgdmFsdWVzW21qXSkgOiAxO1xuICAgICAgICAgICAgY29uc3Qgc2ltaWxhcml0eSA9IDEgLSB2YWx1ZTtcbiAgICAgICAgICAgIGlmIChzaW1pbGFyaXR5ID49IHRocmVzaG9sZCkge1xuICAgICAgICAgICAgICAgIGkucHVzaChtaSk7XG4gICAgICAgICAgICAgICAgai5wdXNoKG1qKTtcbiAgICAgICAgICAgICAgICBkaXN0YW5jZXMucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjbnQrKztcbiAgICAgICAgICAgIG1qKys7XG4gICAgICAgICAgICBpZiAobWogPT09IHZhbHVlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBtaSsrO1xuICAgICAgICAgICAgICAgIG1qID0gbWkgKyAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlBcnJheSA9IG5ldyBJbnQzMkFycmF5KGkpO1xuICAgICAgICBjb25zdCBqQXJyYXkgPSBuZXcgSW50MzJBcnJheShqKTtcbiAgICAgICAgY29uc3QgZGlzdGFuY2VBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkoZGlzdGFuY2VzKTtcbiAgICAgICAgcmV0dXJuIHsgaTogaUFycmF5LCBqOiBqQXJyYXksIGRpc3RhbmNlOiBkaXN0YW5jZUFycmF5IH07XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYzNCaGNuTmxMVzFoZEhKcGVDMXpaWEoyYVdObExtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpYzNCaGNuTmxMVzFoZEhKcGVDMXpaWEoyYVdObExuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVU5CTEU5QlFVOHNSVUZCTkVJc01FSkJRVEJDTEVWQlFVTXNUVUZCVFN4VFFVRlRMRU5CUVVNN1FVRkRPVVVzVDBGQlR5eEZRVUZETEdGQlFXRXNSVUZCUlN4TFFVRkxMRVZCUVVNc1RVRkJUU3hUUVVGVExFTkJRVU03UVVGaE4wTXNUVUZCVFN4UFFVRlBMRzFDUVVGdFFqdEpRVU53UWl4WlFVRlpMRU5CUVZNN1NVRkROMEk3VVVGRFJTeEpRVUZKTEVOQlFVTXNXVUZCV1N4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zVTBGQlV5eERRVUZETEcxQ1FVRnRRaXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTnlSU3hEUVVGRE8wbEJSVTBzUzBGQlN5eERRVUZETEdWQlFXVXNRMEZCUXl4TlFVRnZRaXhGUVVGRkxFOUJRWFZDTEVWQlEzaEZMRk5CUVdsQ0xFVkJRVVVzVDBGQk5rSXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hWUVVGdlFpeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVTTNSU3h2UWtGQkswTXNNRUpCUVRCQ0xFTkJRVU1zVTBGQlV6dFJRVVZ1Uml4TlFVRk5MRTlCUVU4c1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRE9VUXNUVUZCVFN4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVkQlFVY3NTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8xRkJSVEZFTEUxQlFVMHNXVUZCV1N4SFFVRkhMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVkQlFVY3NTMEZCVFN4RFFVRkRMRU5CUVVNN1dVRkRPVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SlFVRkpMRVZCUVVVc1QwRkJUeXhGUVVGRkxHbENRVUZwUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU40Uml4SlFVRkpMRk5CUVZNc1IwRkJSeXhaUVVGWkxFVkJRVVU3V1VGRE5VSXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXh0UWtGQmJVSXNXVUZCV1N4RlFVRkZMRU5CUVVNc1EwRkJRenRaUVVNdlF5eFRRVUZUTEVkQlFVY3NXVUZCV1N4RFFVRkRPMU5CUXpGQ08xRkJRMFFzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhYUVVGWExFTkJRVU1zUjBGQlJ5eFRRVUZUTEVOQlFVTXNRMEZCUXp0UlFVTjZSQ3hOUVVGTkxGRkJRVkVzUjBGRFdpeEpRVUZKTEV0QlFVc3NRMEZCT0VJc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFGQlJUVkVMRTFCUVUwc1QwRkJUeXhIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNN1lVRkRla01zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRWRCUVVjc1EwRkJReXgzUWtGQmQwSXNSVUZCUlN4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTjRSaXhMUVVGTExFbEJRVWtzUjBGQlJ5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlR0WlFVTm9SQ3hSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NTVUZCU1N4UFFVRlBMRU5CUVVNc1EwRkJReXhoUVVGaExFVkJRVVVzV1VGQldTeEZRVUZGTEVWQlFVVTdaMEpCUXpGRUxFMUJRVTBzVVVGQlVTeEhRVUZITEVkQlFVY3NSMEZCUnl4VFFVRlRMRU5CUVVNN1owSkJRMnBETEUxQlFVMHNUVUZCVFN4SFFVRkhMRWRCUVVjc1MwRkJTeXhKUVVGSkxFTkJRVU1zV1VGQldTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhUUVVGVExFTkJRVU03WjBKQlF5OUZMRWxCUVVrc1RVRkJUU3hKUVVGSkxGRkJRVkU3YjBKQlEzQkNMR0ZCUVdFc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzU1VGQlNTeFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1VVRkJVU3hGUVVGRkxFbEJRVWtzV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRWRCUVVjc1JVRkJReXhEUVVGRExFTkJRVU03WjBKQlEyeEhMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTXNSVUZCUXl4TlFVRk5MRVZCUVVVc1VVRkJVU3hGUVVGRkxFMUJRVTBzUlVGQlJTeFRRVUZUTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWxCUVVrc1JVRkJSU3hQUVVGUExFVkJRVVVzYVVKQlFXbENMRVZCUVVNc1EwRkJReXhEUVVGRE8yZENRVU16Unl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEVOQlFVTXNSVUZCUXl4SlFVRkpMRVZCUVVVc1JVRkJReXhMUVVGTExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4UlFVRlJMRVZCUVVNc1JVRkJReXhGUVVGUkxFVkJRVVU3YjBKQlEycEZMRWxCUVVrc1MwRkJTeXhGUVVGRk8zZENRVU5VTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF6dDNRa0ZEZWtJc1dVRkJXU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzNGQ1FVTnlRanQ1UWtGQlRUdDNRa0ZEVEN4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTTdkMEpCUTNwQ0xHRkJRV0VzUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1VVRkJVU3hGUVVGRkxFZEJRVWNzUlVGQlF5eERRVUZETEVOQlFVTTdjVUpCUTNSRE8yZENRVU5JTEVOQlFVTXNRMEZCUXp0WlFVTktMRU5CUVVNc1EwRkJReXhEUVVGRE8xTkJRMG83VVVGRlJDeE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdVVUZETlVNc1RVRkJUU3hSUVVGUkxFZEJRVWNzVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJTeERRVUZETEVkQlFVY3NSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTnlSU3hOUVVGTkxFTkJRVU1zUjBGQlJ5eEpRVUZKTEZWQlFWVXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRSUVVOdVF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4SlFVRkpMRlZCUVZVc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU51UXl4TlFVRk5MRkZCUVZFc1IwRkJSeXhKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0UlFVTTFReXhKUVVGSkxFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEWml4elFrRkJjMEk3VVVGRGRFSXNTMEZCU3l4TlFVRk5MRWRCUVVjc1NVRkJTU3hQUVVGUExFVkJRVVU3V1VGRGVrSXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRPMWxCUTNKQ0xFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dFpRVU55UWl4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eFJRVUZSTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1dVRkRia01zVFVGQlRTeEpRVUZKTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRE8xTkJRM2hDTzFGQlEwUXNUMEZCVHl4RlFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzVVVGQlVTeEZRVUZETEVOQlFVTTdTVUZETVVJc1EwRkJRenRKUVVWTkxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVa3NUVUZCWjBJc1JVRkJSU3hOUVVGdlFpeEZRVUZGTEZOQlFXbENMRVZCUVVVc1QwRkJNa0lzUlVGQlJUdFJRVU16Unl4eFFrRkJjVUk3VVVGRGNrSXNUMEZCVHl4TlFVRk5MRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxGTkJRVk1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5vUml4RFFVRkRPMGxCUlUwc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGRGFrSXNUVUZCYTBJc1JVRkJSU3hOUVVGdlFpeEZRVUZGTEdOQlFYTkNMRVZCUVVVc1JVRkJSU3hQUVVFeVFpeEZRVUZGTzFGQlJXcEhMRTlCUVU4c1RVRkJUU3hKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeFhRVUZYTEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEYWtZc1EwRkJRenRKUVVWTkxFdEJRVXNzUTBGQlF5eGxRVUZsTEVOQlF6RkNMRTFCUVd0Q0xFVkJRVVVzVFVGQmIwSXNSVUZCUlN4WlFVRnZRaXhIUVVGSExFVkJRVVVzVDBGQk1rSXNSVUZCUlR0UlFVVm9SeXhQUVVGUExFMUJRVTBzU1VGQlNTeERRVUZETEhWQ1FVRjFRaXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hUUVVGVExFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGVFWXNRMEZCUXp0SlFVVk5MRXRCUVVzc1EwRkJReXgxUWtGQmRVSXNRMEZCUXl4TlFVRjVRaXhGUVVGRkxFOUJRWFZDTEVWQlFVVXNXVUZCYjBJc1IwRkJSeXhGUVVNNVJ5eEpRVUV3UWl4RlFVRkZMRTlCUVdsQ0xFVkJRemRETEc5Q1FVRXJReXd3UWtGQk1FSXNRMEZCUXl4VFFVRlRPMUZCUlc1R0xFbEJRVWtzVFVGQlRTeERRVUZETEUxQlFVMHNTMEZCU3l4UFFVRlBMRU5CUVVNc1RVRkJUU3hKUVVGSkxFMUJRVTBzUTBGQlF5eE5RVUZOTEV0QlFVc3NTVUZCU1N4RFFVRkRMRTFCUVUwc1NVRkJTU3hOUVVGTkxFTkJRVU1zVFVGQlRTeExRVUZMTEU5QlFVOHNRMEZCUXl4TlFVRk5PMWxCUTNaSExFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNiMFpCUVc5R0xFTkJRVU1zUTBGQlF6dFJRVVY0Unl4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFdEJRVXNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJRenRaUVVOdVJDeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMQ3REUVVFclF5eERRVUZETEVOQlFVTTdVVUZGYmtVc1RVRkJUU3hQUVVGUExFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlF6bEVMRTFCUVUwc1UwRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFJRVU14UkN4TlFVRk5MRkZCUVZFc1IwRkRXaXhKUVVGSkxFdEJRVXNzUTBGQmNVSXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8xRkJRMjVFTEUxQlFVMHNUMEZCVHl4SFFVRkhMRWxCUVVrc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTTdZVUZEZWtNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVkQlFVY3NRMEZCUXl4M1FrRkJkMElzUlVGQlJTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU40Uml4TFFVRkxMRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJUdFpRVU5vUkN4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzU1VGQlNTeFBRVUZQTEVOQlFVTXNRMEZCUXl4aFFVRmhMRVZCUVVVc1dVRkJXU3hGUVVGRkxFVkJRVVU3WjBKQlF6RkVMRTFCUVUwc1VVRkJVU3hIUVVGSExFZEJRVWNzUjBGQlJ5eFRRVUZUTEVOQlFVTTdaMEpCUTJwRExFMUJRVTBzVFVGQlRTeEhRVUZITEVkQlFVY3NTMEZCU3l4SlFVRkpMRU5CUVVNc1dVRkJXU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4VFFVRlRMRU5CUVVNN1owSkJReTlGTEVsQlFVa3NUVUZCVFN4SlFVRkpMRkZCUVZFN2IwSkJRM0JDTEdGQlFXRXNRMEZCUXl4RlFVRkRMRmxCUVZrc1JVRkJSU3hKUVVGSkxFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4VlFVRlZMRVZCUVVVc1NVRkJTU3hMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVONFJTeFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1YwRkJWeXhEUVVGRExFVkJRVU1zVFVGQlRTeEZRVUZGTEZGQlFWRXNSVUZCUlN4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFbEJRVWtzUlVGQlJTeFRRVUZUTEVWQlFVVXNUMEZCVHl4RlFVRkZMR2xDUVVGcFFpeEZRVUZETEVOQlFVTXNRMEZCUXp0blFrRkRNMGNzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1IwRkJSeXhEUVVGRExFVkJRVU1zU1VGQlNTeEZRVUZGTEVWQlFVTXNTMEZCU3l4RlFVRkZMRmxCUVZrc1JVRkJSU3hWUVVGVkxFVkJRVU1zUlVGQlF5eEZRVUZSTEVWQlFVVTdiMEpCUXpORkxFbEJRVWtzUzBGQlN5eEZRVUZGTzNkQ1FVTlVMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXp0M1FrRkRla0lzV1VGQldTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPM0ZDUVVOeVFqdDVRa0ZCVFR0M1FrRkRUQ3hQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN2QwSkJRM3BDTEdGQlFXRXNRMEZCUXl4RlFVRkRMRmxCUVZrc1JVRkJSU3hWUVVGVkxFVkJRVU1zUTBGQlF5eERRVUZETzNGQ1FVTXpRenRuUWtGRFNDeERRVUZETEVOQlFVTTdXVUZEU2l4RFFVRkRMRU5CUVVNc1EwRkJRenRUUVVOS08xRkJSVVFzVFVGQlRTeFBRVUZQTEVkQlFVY3NUVUZCVFN4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlF6VkRMRTFCUVUwc1VVRkJVU3hIUVVGSExFbEJRVWtzVlVGQlZTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVU5zUkN4TFFVRkxMRTFCUVUwc1IwRkJSeXhKUVVGSkxFOUJRVThzUlVGQlJUdFpRVU42UWl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUlVGQlJTeEZRVUZGTEVOQlFVTTdaMEpCUTNaRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4SFFVRkhMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEUxQlFVMHNTVUZCU1N4RFFVRkRMRU5CUVVNN1UwRkRha1E3VVVGRFJDeE5RVUZOTEUxQlFVMHNSMEZCWXp0WlFVTjRRaXhaUVVGWkxFVkJRVVVzU1VGQlNTeExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhKUVVGSkxFdEJRVXNzUTBGQlV5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOc1J5eFZRVUZWTEVWQlFVVXNTVUZCU1N4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEV0QlFVc3NRMEZCVXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFRRVUZETEVOQlFVTTdVVUZEY0Vjc1MwRkJTeXhOUVVGTkxFZEJRVWNzU1VGQlNTeFBRVUZQTEVWQlFVVTdXVUZEZWtJc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVN1owSkJRM3BETEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFMUJRVTBzU1VGQlNTeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVN2IwSkJRM3BFTEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFZEJRVWNzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03YjBKQlEycEZMRTFCUVUwc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUXpkRUxGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN2FVSkJRMnhDTzJGQlEwWTdVMEZEUmp0UlFVTkVMRTlCUVU4c1RVRkJUU3hEUVVGRE8wbEJRMmhDTEVOQlFVTTdTVUZGVFN4TFFVRkxMRU5CUVVNc1kwRkJZeXhEUVVGRExFMUJRWGxDTEVWQlFVVXNUMEZCZFVJc1JVRkJSU3hqUVVGelFpeEZRVUZGTEVWQlEzUkhMRWxCUVRCQ0xFVkJRVVVzVDBGQmFVSXNSVUZETjBNc2IwSkJRU3RETERCQ1FVRXdRaXhEUVVGRExGTkJRVk03VVVGRmJrWXNTVUZCU1N4TlFVRk5MRU5CUVVNc1RVRkJUU3hMUVVGTExFOUJRVThzUTBGQlF5eE5RVUZOTEVsQlFVa3NUVUZCVFN4RFFVRkRMRTFCUVUwc1MwRkJTeXhKUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEUxQlFVMHNRMEZCUXl4TlFVRk5MRXRCUVVzc1QwRkJUeXhEUVVGRExFMUJRVTA3V1VGRGRrY3NUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkJReXh2UmtGQmIwWXNRMEZCUXl4RFFVRkRPMUZCUlhoSExFbEJRVWtzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNTMEZCU3l4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETzFsQlEyNUVMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zSzBOQlFTdERMRU5CUVVNc1EwRkJRenRSUVVWdVJTeE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRPVVFzVFVGQlRTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMUZCUXpGRUxFMUJRVTBzVVVGQlVTeEhRVU5hTEVsQlFVa3NTMEZCU3l4RFFVRnhRaXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdVVUZEYmtRc1RVRkJUU3hQUVVGUExFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJRenRoUVVONlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVa3NUVUZCVFN4RFFVRkRMRWxCUVVrc1IwRkJSeXhEUVVGRExHTkJRV01zUlVGQlJTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU01UlN4TFFVRkxMRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJUdFpRVU5vUkN4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzU1VGQlNTeFBRVUZQTEVOQlFVTXNRMEZCUXl4aFFVRmhMRVZCUVVVc1dVRkJXU3hGUVVGRkxFVkJRVVU3WjBKQlF6RkVMRTFCUVUwc1VVRkJVU3hIUVVGSExFZEJRVWNzUjBGQlJ5eFRRVUZUTEVOQlFVTTdaMEpCUTJwRExFMUJRVTBzVFVGQlRTeEhRVUZITEVkQlFVY3NTMEZCU3l4SlFVRkpMRU5CUVVNc1dVRkJXU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4VFFVRlRMRU5CUVVNN1owSkJReTlGTEVsQlFVa3NUVUZCVFN4SlFVRkpMRkZCUVZFN2IwSkJRM0JDTEdGQlFXRXNRMEZCUXl4RlFVRkRMRmxCUVZrc1JVRkJSU3hKUVVGSkxFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4VlFVRlZMRVZCUVVVc1NVRkJTU3hMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVONFJTeFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1YwRkJWeXhEUVVGRExFVkJRVU1zVFVGQlRTeEZRVUZGTEZGQlFWRXNSVUZCUlN4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFbEJRVWtzUlVGQlJTeFhRVUZYTEVWQlFVVXNUMEZCVHl4RlFVRkZMR2xDUVVGcFFpeEZRVUZETEVOQlFVTXNRMEZCUXp0blFrRkROMGNzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1IwRkJSeXhEUVVGRExFVkJRVU1zU1VGQlNTeEZRVUZGTEVWQlFVTXNTMEZCU3l4RlFVRkZMRmxCUVZrc1JVRkJSU3hWUVVGVkxFVkJRVU1zUlVGQlF5eEZRVUZSTEVWQlFVVTdiMEpCUXpORkxFbEJRVWtzUzBGQlN5eEZRVUZGTzNkQ1FVTlVMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXp0M1FrRkRla0lzV1VGQldTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPM0ZDUVVOeVFqdDVRa0ZCVFR0M1FrRkRUQ3hQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN2QwSkJRM3BDTEdGQlFXRXNRMEZCUXl4RlFVRkRMRmxCUVZrc1JVRkJSU3hWUVVGVkxFVkJRVU1zUTBGQlF5eERRVUZETzNGQ1FVTXpRenRuUWtGRFNDeERRVUZETEVOQlFVTTdXVUZEU2l4RFFVRkRMRU5CUVVNc1EwRkJRenRUUVVOS08xRkJSVVFzVFVGQlRTeFBRVUZQTEVkQlFVY3NUVUZCVFN4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlF6VkRMRTFCUVUwc1RVRkJUU3hIUVVGak8xbEJRM2hDTEZsQlFWa3NSVUZCUlN4SlFVRkpMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSkxFdEJRVXNzUTBGQlV5eFhRVUZYTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03V1VGRE1VY3NWVUZCVlN4RlFVRkZMRWxCUVVrc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFbEJRVWtzUzBGQlN5eERRVUZUTEZkQlFWY3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFOQlFVTXNRMEZCUXp0UlFVTjZSeXhMUVVGTExFMUJRVTBzUjBGQlJ5eEpRVUZKTEU5QlFVOHNSVUZCUlR0WlFVTjZRaXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSVHRuUWtGRGVrTXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzVFVGQlRTeEpRVUZKTEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNN2IwSkJRM1pFTEdGQlFXRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEUxQlFVMHNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUjBGQlJ5eERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEhRVUZITEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdZVUZETjBjN1UwRkRSanRSUVVORUxFOUJRVThzVFVGQlRTeERRVUZETzBsQlEyaENMRU5CUVVNN1NVRkZUU3hMUVVGTExFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1RVRkJiMElzUlVGRGJFUXNUMEZCZFVJc1JVRkJSU3hQUVVFMlFpeEZRVUZGTEVWQlFVVXNUMEZCYVVJc1JVRkRNMFVzYjBKQlFTdERMREJDUVVFd1FpeERRVUZETEZOQlFWTTdVVUZEYmtZc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJRenRoUVVNM1JDeEhRVUZITEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1NVRkJTU3hOUVVGTkxFTkJRVU1zU1VGQlNTeEhRVUZITEVOQlFVTXNhME5CUVd0RExFVkJRVVVzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRmRrWXNTVUZCU1R0WlFVTkdMRTFCUVUwc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU01UkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03V1VGRE1VUXNUVUZCVFN4aFFVRmhMRWRCUVVjc1QwRkJVeXhEUVVGRE8xbEJRMmhETEUxQlFVMHNWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRWRCUVVjc1NVRkJTU3hGUVVGRkxHRkJRV0VzUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhGUVVGRkxHRkJRV0VzUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEZGtjc1RVRkJUU3h2UWtGQmIwSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGVkJRVlVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1dVRkRlRVVzVFVGQlRTeFRRVUZUTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVc5RExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0WlFVVnNSaXhMUVVGTExFbEJRVWtzUjBGQlJ5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlR0blFrRkRhRVFzVTBGQlV5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRWxCUVVrc1QwRkJUeXhEUVVGRExFTkJRVU1zWVVGQllTeEZRVUZGTEZsQlFWa3NSVUZCUlN4RlFVRkZPMjlDUVVNelJDeE5RVUZOTEZGQlFWRXNSMEZCUnl4SFFVRkhMRWRCUVVjc1UwRkJVeXhEUVVGRE8yOUNRVU5xUXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhIUVVGSExFdEJRVXNzU1VGQlNTeERRVUZETEZsQlFWa3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzVTBGQlV5eERRVUZETzI5Q1FVTXZSU3huUWtGQlowSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhYUVVGWExFTkJRVU03ZDBKQlEyaERMRTFCUVUwc1JVRkJSU3hOUVVGTkxFVkJRVVVzVVVGQlVTeEZRVUZGTEUxQlFVMHNSVUZCUlN4WlFVRlpMRVZCUVVVc2IwSkJRVzlDTzNkQ1FVTndSU3hQUVVGUExFVkJRVVVzU1VGQlNTeEZRVUZGTEU5QlFVOHNSVUZCUlN4cFFrRkJhVUk3Y1VKQlF6RkRMRU5CUVVNc1EwRkJRenR2UWtGRFNDeG5Ra0ZCWjBJc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVkQlFVY3NRMEZCUXl4RlFVRkRMRWxCUVVrc1JVRkJSU3hGUVVGRExFdEJRVXNzUlVGQlJTeFJRVUZSTEVWQlFVTXNSVUZCUXl4RlFVRlJMRVZCUVVVN2QwSkJRM0JGTEdkQ1FVRm5RaXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRPM2RDUVVOc1F5eEpRVUZKTEV0QlFVczdORUpCUVVVc1dVRkJXU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZET3pzMFFrRkROMElzWVVGQllTeERRVUZETEVWQlFVTXNVVUZCVVN4RlFVRkRMRU5CUVVNc1EwRkJRenR2UWtGRE9VSXNRMEZCUXl4RFFVRkRPMmRDUVVOS0xFTkJRVU1zUTBGQlF5eERRVUZETzJGQlEwbzdXVUZGUkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhOUVVGTkxFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNN1dVRkROME1zVFVGQlRTeFJRVUZSTEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVNMVJTeE5RVUZOTEZGQlFWRXNSMEZCUnl4SlFVRkpMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dFpRVU0xUXl4SlFVRkpMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU03V1VGRFppeExRVUZMTEUxQlFVMHNSMEZCUnl4SlFVRkpMRTlCUVU4c1JVRkJSVHRuUWtGRGVrSXNVVUZCVVN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zVVVGQlVTeEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRPMmRDUVVOdVF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU03WVVGREwwSTdXVUZEUkN4UlFVRlJMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU03V1VGRmFFSXNUMEZCVHl4UlFVRlJMRU5CUVVNN1UwRkRha0k3VVVGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlR0WlFVTldMR2RDUVVGblFpeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eEZRVUZGTEZOQlFWTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1dVRkRha1FzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOcVFpeFBRVUZQTEVsQlFVa3NXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0VFFVTjBRenRKUVVOSUxFTkJRVU03U1VGRlR5eExRVUZMTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zVFVGQmIwSXNSVUZEY0VRc1QwRkJkVUlzUlVGQlJTeFBRVUUyUWl4RlFVRkZMRVZCUVVVc1QwRkJhVUlzUlVGRE0wVXNiMEpCUVN0RExEQkNRVUV3UWl4RFFVRkRMRk5CUVZNN1VVRkRia1lzYlVSQlFXMUVPMUZCUTI1RUxEWkZRVUUyUlR0UlFVTTNSU3hwUjBGQmFVYzdVVUZEYWtjc1RVRkJUU3h0UWtGQmJVSXNSMEZCUnl4UlFVRlZMRU5CUVVNN1VVRkRka01zU1VGQlNUdFpRVU5HTEUxQlFVMHNUMEZCVHl4SFFVRkhMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU40UkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVsQlFVa3NSVUZCUlN4UFFVRlBMRVZCUVVVc2FVSkJRV2xDTEVOQlFVTXNRMEZCUXp0WlFVTnNSeXhOUVVGTkxHRkJRV0VzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRzFDUVVGdFFpeEhRVUZITEU5QlFVOHNSMEZCUnl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03V1VGRGJFWXNUVUZCVFN4VFFVRlRMRWRCUVVjc1EwRkJReXhIUVVGSExGRkJRVkVzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXp0WlFVTTVReXgzUTBGQmQwTTdXVUZEZUVNc1QwRkJUeXhUUVVGVExFTkJRVU03VTBGRGJFSTdVVUZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSVHRaUVVOV0xFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRha0lzVDBGQlR5eEhRVUZITEVOQlFVTTdVMEZEV2p0SlFVTklMRU5CUVVNN1NVRkZUU3hOUVVGTkxFTkJRVU1zVVVGQlVTeERRVU53UWl4TlFVRXJRaXhGUVVGRkxFMUJRVzlDTEVWQlFVVXNWVUZCYjBJc1JVRkJSU3hUUVVGcFFqdFJRVVU1Uml4TlFVRk5MRU5CUVVNc1IwRkJZU3hGUVVGRkxFTkJRVU03VVVGRGRrSXNUVUZCVFN4RFFVRkRMRWRCUVdFc1JVRkJSU3hEUVVGRE8xRkJRM1pDTEUxQlFVMHNVMEZCVXl4SFFVRmhMRVZCUVVVc1EwRkJRenRSUVVNdlFpeEpRVUZKTEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRXaXhKUVVGSkxFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEV0N4SlFVRkpMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRFdDeE5RVUZOTEZGQlFWRXNSMEZCUnl4TlFVRk5MRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGVrUXNUMEZCVHl4SFFVRkhMRWRCUVVjc1VVRkJVU3hGUVVGRk8xbEJRM0pDTEhWR1FVRjFSanRaUVVOMlJpeE5RVUZOTEV0QlFVc3NSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVOMFJDeFZRVUZWTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFMUJRVTBzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGVrTXNUVUZCVFN4VlFVRlZMRWRCUVVjc1EwRkJReXhIUVVGSExFdEJRVXNzUTBGQlF6dFpRVU0zUWl4SlFVRkpMRlZCUVZVc1NVRkJTU3hUUVVGVExFVkJRVVU3WjBKQlF6TkNMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdaMEpCUTFnc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0blFrRkRXQ3hUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMkZCUTNaQ08xbEJRMFFzUjBGQlJ5eEZRVUZGTEVOQlFVTTdXVUZEVGl4RlFVRkZMRVZCUVVVc1EwRkJRenRaUVVOTUxFbEJRVWtzUlVGQlJTeExRVUZMTEUxQlFVMHNRMEZCUXl4TlFVRk5MRVZCUVVVN1owSkJRM2hDTEVWQlFVVXNSVUZCUlN4RFFVRkRPMmRDUVVOTUxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMkZCUTJJN1UwRkRSanRSUVVWRUxFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMnBETEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEycERMRTFCUVUwc1lVRkJZU3hIUVVGSExFbEJRVWtzV1VGQldTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMUZCUld4RUxFOUJRVThzUlVGQlF5eERRVUZETEVWQlFVVXNUVUZCVFN4RlFVRkZMRU5CUVVNc1JVRkJSU3hOUVVGTkxFVkJRVVVzVVVGQlVTeEZRVUZGTEdGQlFXRXNSVUZCUXl4RFFVRkRPMGxCUTNwRUxFTkJRVU03UTBGRFNpSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdTMjV2ZDI1TlpYUnlhV056ZlNCbWNtOXRJQ2N1TGk5MGVYQmxaQzF0WlhSeWFXTnpKenRjYm1sdGNHOXlkQ0I3UkdsemRHRnVZMlZCWjJkeVpXZGhkR2x2YmsxbGRHaHZaQ3dnUkdsemRHRnVZMlZCWjJkeVpXZGhkR2x2YmsxbGRHaHZaSE45SUdaeWIyMGdKeTR2ZEhsd1pYTW5PMXh1YVcxd2IzSjBJSHRwYm5ObGNuUlRiV0ZzYkdWeUxDQnBjMDVwYkgwZ1puSnZiU0FuTGk5MWRHbHNjeWM3WEc1Y2JtVjRjRzl5ZENCMGVYQmxJRk53WVhKelpVMWhkSEpwZUZKbGMzVnNkQ0E5SUh0Y2JpQWdhVG9nU1c1ME16SkJjbkpoZVN4Y2JpQWdham9nU1c1ME16SkJjbkpoZVN4Y2JpQWdaR2x6ZEdGdVkyVTZJRVpzYjJGME16SkJjbkpoZVN4Y2JpQWdhV1I0UHpvZ2JuVnRZbVZ5WEc1OU8xeHVYRzVsZUhCdmNuUWdkSGx3WlNCTGJtNVNaWE4xYkhRZ1BTQjdYRzRnSUd0dWJrUnBjM1JoYm1ObGN6b2diblZ0WW1WeVcxMWJYU3hjYmlBZ2EyNXVTVzVrWlhobGN6b2diblZ0WW1WeVcxMWJYVnh1ZlZ4dVpYaHdiM0owSUdOc1lYTnpJRk53WVhKelpVMWhkSEpwZUZObGNuWnBZMlVnZTF4dUlDQWdJSEJ5YVhaaGRHVWdYM2R2Y210bGNrTnZkVzUwT2lCdWRXMWlaWEk3WEc0Z0lDQWdZMjl1YzNSeWRXTjBiM0lvS1NCN1hHNGdJQ0FnSUNCMGFHbHpMbDkzYjNKclpYSkRiM1Z1ZENBOUlFMWhkR2d1YldGNEtHNWhkbWxuWVhSdmNpNW9ZWEprZDJGeVpVTnZibU4xY25KbGJtTjVJQzBnTWl3Z01TazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NIVmliR2xqSUdGemVXNWpJR05oYkdOTmRXeDBhVU52YkhWdGJpaDJZV3gxWlhNNklFRnljbUY1UEdGdWVWdGRQaXdnWm01T1lXMWxjem9nUzI1dmQyNU5aWFJ5YVdOelcxMHNYRzRnSUNBZ0lDQjBhSEpsYzJodmJHUTZJRzUxYldKbGNpd2diM0IwY3pvZ2UxdGZPaUJ6ZEhKcGJtZGRPaUJoYm5sOVcxMGdQU0JiZTMxZExDQjNaV2xuYUhSek9pQnVkVzFpWlhKYlhTQTlJRnN4WFN4Y2JpQWdJQ0FnSUdGblozSmxaMkYwYVc5dVRXVjBhRzlrT2lCRWFYTjBZVzVqWlVGblozSmxaMkYwYVc5dVRXVjBhRzlrSUQwZ1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkhNdVJWVkRURWxFUlVGT1hHNGdJQ0FnS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0J0WVhSVGFYcGxJRDBnZG1Gc2RXVnpXekJkTG14bGJtZDBhQ0FxSUNoMllXeDFaWE5iTUYwdWJHVnVaM1JvSUMwZ01Ta2dMeUF5TzF4dUlDQWdJQ0FnWTI5dWMzUWdZMmgxYm10VGFYcGxJRDBnVFdGMGFDNW1iRzl2Y2lodFlYUlRhWHBsSUM4Z2RHaHBjeTVmZDI5eWEyVnlRMjkxYm5RcE8xeHVYRzRnSUNBZ0lDQmpiMjV6ZENCdGFXNVVhSEpsYzJodmJHUWdQU0IyWVd4MVpYTmJNRjB1YkdWdVozUm9JRDRnTWpCZk1EQXdJRDljYmlBZ0lDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1blpYUk5hVzVwYldGc1ZHaHlaWE5vYjJ4a0tIWmhiSFZsY3l3Z1ptNU9ZVzFsY3l3Z2IzQjBjeXdnZDJWcFoyaDBjeXdnWVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlFwSURvZ01EdGNiaUFnSUNBZ0lHbG1JQ2gwYUhKbGMyaHZiR1FnUENCdGFXNVVhSEpsYzJodmJHUXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMyOXNaUzVzYjJjb1lIVnphVzVuSUhSb2NtVnphRzlzWkNBa2UyMXBibFJvY21WemFHOXNaSDFnS1R0Y2JpQWdJQ0FnSUNBZ2RHaHlaWE5vYjJ4a0lEMGdiV2x1VkdoeVpYTm9iMnhrTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnYjNCMGN5NW1iM0pGWVdOb0tDaGZMQ0JwS1NBOVBpQnZjSFJ6VzJsZFd5ZDBhSEpsYzJodmJHUW5YU0E5SUhSb2NtVnphRzlzWkNrN1hHNGdJQ0FnSUNCamIyNXpkQ0J3Y205dGFYTmxjeUE5WEc0Z0lDQWdJQ0FnSUc1bGR5QkJjbkpoZVR4UWNtOXRhWE5sUEZOd1lYSnpaVTFoZEhKcGVGSmxjM1ZzZEQ0K0tIUm9hWE11WDNkdmNtdGxja052ZFc1MEtUdGNibHh1SUNBZ0lDQWdZMjl1YzNRZ2QyOXlhMlZ5Y3lBOUlHNWxkeUJCY25KaGVTaDBhR2x6TGw5M2IzSnJaWEpEYjNWdWRDbGNiaUFnSUNBZ0lDQWdMbVpwYkd3b2JuVnNiQ2t1YldGd0tDZ3BJRDArSUc1bGR5QlhiM0pyWlhJb2JtVjNJRlZTVENnbkxpOXpjR0Z5YzJVdGJXRjBjbWw0TFhkdmNtdGxjaWNzSUdsdGNHOXlkQzV0WlhSaExuVnliQ2twS1R0Y2JpQWdJQ0FnSUdadmNpQW9iR1YwSUdsa2VDQTlJREE3SUdsa2VDQThJSFJvYVhNdVgzZHZjbXRsY2tOdmRXNTBPeUJwWkhnckt5a2dlMXh1SUNBZ0lDQWdJQ0J3Y205dGFYTmxjMXRwWkhoZElEMGdibVYzSUZCeWIyMXBjMlVvS0hKbGMyOXNkbVZYYjNKclpYSXNJSEpsYW1WamRGZHZjbXRsY2lrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE4wWVhKMFNXUjRJRDBnYVdSNElDb2dZMmgxYm10VGFYcGxPMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR1Z1WkVsa2VDQTlJR2xrZUNBOVBUMGdkR2hwY3k1ZmQyOXlhMlZ5UTI5MWJuUWdMU0F4SUQ4Z2JXRjBVMmw2WlNBNklDaHBaSGdnS3lBeEtTQXFJR05vZFc1clUybDZaVHRjYmlBZ0lDQWdJQ0FnSUNCcFppQW9aVzVrU1dSNElEdzlJSE4wWVhKMFNXUjRLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVnpiMngyWlZkdmNtdGxjaWg3YVRvZ2JtVjNJRWx1ZERNeVFYSnlZWGtvTUNrc0lHbzZJRzVsZHlCSmJuUXpNa0Z5Y21GNUtEQXBMQ0JrYVhOMFlXNWpaVG9nYm1WM0lFWnNiMkYwTXpKQmNuSmhlU2d3S1N3Z2FXUjRmU2s3WEc0Z0lDQWdJQ0FnSUNBZ2QyOXlhMlZ5YzF0cFpIaGRMbkJ2YzNSTlpYTnpZV2RsS0h0MllXeDFaWE1zSUhOMFlYSjBTV1I0TENCbGJtUkpaSGdzSUhSb2NtVnphRzlzWkN3Z1ptNU9ZVzFsY3l3Z2IzQjBjeXdnZDJWcFoyaDBjeXdnWVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlI5S1R0Y2JpQWdJQ0FnSUNBZ0lDQjNiM0pyWlhKelcybGtlRjB1YjI1dFpYTnpZV2RsSUQwZ0tIdGtZWFJoT2lCN1pYSnliM0lzSUdrc0lHb3NJR1JwYzNSaGJtTmxmWDBwT2lCMmIybGtJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNobGNuSnZjaWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0IzYjNKclpYSnpXMmxrZUYwdWRHVnliV2x1WVhSbEtDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxhbVZqZEZkdmNtdGxjaWhsY25KdmNpazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0IzYjNKclpYSnpXMmxrZUYwdWRHVnliV2x1WVhSbEtDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxjMjlzZG1WWGIzSnJaWElvZTJrc0lHb3NJR1JwYzNSaGJtTmxMQ0JwWkhoOUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQjlPMXh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ1kyOXVjM1FnY21WemRXeDBjeUE5SUdGM1lXbDBJRkJ5YjIxcGMyVXVZV3hzS0hCeWIyMXBjMlZ6S1R0Y2JpQWdJQ0FnSUdOdmJuTjBJR1oxYkd4VGFYcGxJRDBnY21WemRXeDBjeTV5WldSMVkyVW9LR0ZqWXl3Z2RtRnNLU0E5UGlCaFkyTWdLeUIyWVd3dWFTNXNaVzVuZEdnc0lEQXBPMXh1SUNBZ0lDQWdZMjl1YzNRZ2FTQTlJRzVsZHlCSmJuUXpNa0Z5Y21GNUtHWjFiR3hUYVhwbEtUdGNiaUFnSUNBZ0lHTnZibk4wSUdvZ1BTQnVaWGNnU1c1ME16SkJjbkpoZVNobWRXeHNVMmw2WlNrN1hHNGdJQ0FnSUNCamIyNXpkQ0JrYVhOMFlXNWpaU0E5SUc1bGR5QkdiRzloZERNeVFYSnlZWGtvWm5Wc2JGTnBlbVVwTzF4dUlDQWdJQ0FnYkdWMElHOW1abk5sZENBOUlEQTdYRzRnSUNBZ0lDQXZMeUJ6WlhSMGFXNW5JSFJvWlNCeVpYTjFiSFJ6WEc0Z0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUhKbGN5QnZaaUJ5WlhOMWJIUnpLU0I3WEc0Z0lDQWdJQ0FnSUdrdWMyVjBLSEpsY3k1cExDQnZabVp6WlhRcE8xeHVJQ0FnSUNBZ0lDQnFMbk5sZENoeVpYTXVhaXdnYjJabWMyVjBLVHRjYmlBZ0lDQWdJQ0FnWkdsemRHRnVZMlV1YzJWMEtISmxjeTVrYVhOMFlXNWpaU3dnYjJabWMyVjBLVHRjYmlBZ0lDQWdJQ0FnYjJabWMyVjBJQ3M5SUhKbGN5NXBMbXhsYm1kMGFEdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCN2FTd2dhaXdnWkdsemRHRnVZMlY5TzF4dUlDQWdJSDFjYmx4dUlDQWdJSEIxWW14cFl5QmhjM2x1WXlCallXeGpQRlErS0haaGJIVmxjem9nUVhKeVlYazhWRDRzSUdadVRtRnRaVG9nUzI1dmQyNU5aWFJ5YVdOekxDQjBhSEpsYzJodmJHUTZJRzUxYldKbGNpd2diM0IwY3pvZ2UxdGZPaUJ6ZEhKcGJtZGRPaUJoYm5sOUlEMGdlMzBwSUh0Y2JpQWdJQ0FnSUM4dmMybDZaU0J2WmlCbWRXeHNJRzFoZEhKcGVGeHVJQ0FnSUNBZ2NtVjBkWEp1SUdGM1lXbDBJSFJvYVhNdVkyRnNZMDExYkhScFEyOXNkVzF1S0Z0MllXeDFaWE5kTENCYlptNU9ZVzFsWFN3Z2RHaHlaWE5vYjJ4a0xDQmJiM0IwYzEwc0lGc3hYU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjSFZpYkdsaklHRnplVzVqSUdkbGRFdE9UaWhjYmlBZ0lDQWdJSFpoYkhWbGN6b2dRWEp5WVhrOFlXNTVQaXdnWm01T1lXMWxPaUJMYm05M2JrMWxkSEpwWTNNc0lHNU9aV2xuYUdKdmRYSnpPaUJ1ZFcxaVpYSWdQU0F4TlN3Z2IzQjBjem9nZTF0Zk9pQnpkSEpwYm1kZE9pQmhibmw5SUQwZ2UzMWNiaUFnSUNBcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCaGQyRnBkQ0IwYUdsekxtMTFiSFJwUTI5c2RXMXVTMDVPS0Z0MllXeDFaWE5kTENCYlptNU9ZVzFsWFN3Z2JrNWxhV2RvWW05MWNuTXNJRnR2Y0hSelhTd2dXekZkS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J3ZFdKc2FXTWdZWE41Ym1NZ1oyVjBWR2h5WlhOb2IyeGtTMDVPS0Z4dUlDQWdJQ0FnZG1Gc2RXVnpPaUJCY25KaGVUeGhibmsrTENCbWJrNWhiV1U2SUV0dWIzZHVUV1YwY21samN5d2dkR2h5WlhOb2IyeGtPaUJ1ZFcxaVpYSWdQU0F3TGpnc0lHOXdkSE02SUh0Ylh6b2djM1J5YVc1blhUb2dZVzU1ZlNBOUlIdDlYRzRnSUNBZ0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1lYZGhhWFFnZEdocGN5NXRkV3gwYVVOdmJIVnRibFJvY21WemFHOXNaRXR1YmloYmRtRnNkV1Z6WFN3Z1cyWnVUbUZ0WlYwc0lIUm9jbVZ6YUc5c1pDd2dXMjl3ZEhOZExDQmJNVjBwTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEIxWW14cFl5QmhjM2x1WXlCdGRXeDBhVU52YkhWdGJsUm9jbVZ6YUc5c1pFdHViaWgyWVd4MVpYTTZJRUZ5Y21GNVBFRnljbUY1UEdGdWVUNCtMQ0JtYms1aGJXVnpPaUJMYm05M2JrMWxkSEpwWTNOYlhTd2dkR2h5WlhOb2IyeGtPaUJ1ZFcxaVpYSWdQU0F3TGpnc1hHNGdJQ0FnSUNCdmNIUnpPaUI3VzE4NklITjBjbWx1WjEwNklHRnVlWDFiWFN3Z2QyVnBaMmgwY3pvZ2JuVnRZbVZ5VzEwc1hHNGdJQ0FnSUNCaFoyZHlaV2RoZEdsdmJrMWxkR2h2WkRvZ1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkNBOUlFUnBjM1JoYm1ObFFXZG5jbVZuWVhScGIyNU5aWFJvYjJSekxrVlZRMHhKUkVWQlRseHVJQ0FnSUNrZ2UxeHVJQ0FnSUNBZ2FXWWdLSFpoYkhWbGN5NXNaVzVuZEdnZ0lUMDlJR1p1VG1GdFpYTXViR1Z1WjNSb0lIeDhJSFpoYkhWbGN5NXNaVzVuZEdnZ0lUMDlJRzl3ZEhNdWJHVnVaM1JvSUh4OElIWmhiSFZsY3k1c1pXNW5kR2dnSVQwOUlIZGxhV2RvZEhNdWJHVnVaM1JvS1Z4dUlDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjNaaGJIVmxjeXdnWkdsemRHRnVZMlVnWm5WdVkzUnBiMjV6TENCdmNIUnBiMjV6SUdGdVpDQjNaV2xuYUhSeklHRnljbUY1Y3lCemFHOTFiR1FnYUdGMlpTQjBhR1VnYzJGdFpTQnNaVzVuZEdnbktUdGNibHh1SUNBZ0lDQWdhV1lnS0haaGJIVmxjeTV6YjIxbEtDaDJLU0E5UGlCMkxteGxibWQwYUNBaFBUMGdkbUZzZFdWeld6QmRMbXhsYm1kMGFDa3BYRzRnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpZ25ZV3hzSUhaaGJIVmxjeUJoY25KaGVYTWdjMmh2ZFd4a0lHaGhkbVVnZEdobElITmhiV1VnYkdWdVozUm9KeWs3WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJRzFoZEZOcGVtVWdQU0IyWVd4MVpYTmJNRjB1YkdWdVozUm9JQ29nS0haaGJIVmxjMXN3WFM1c1pXNW5kR2dnTFNBeEtTQXZJREk3WEc0Z0lDQWdJQ0JqYjI1emRDQmphSFZ1YTFOcGVtVWdQU0JOWVhSb0xtWnNiMjl5S0cxaGRGTnBlbVVnTHlCMGFHbHpMbDkzYjNKclpYSkRiM1Z1ZENrN1hHNGdJQ0FnSUNCamIyNXpkQ0J3Y205dGFYTmxjeUE5WEc0Z0lDQWdJQ0FnSUc1bGR5QkJjbkpoZVR4UWNtOXRhWE5sUEV0dWJsSmxjM1ZzZEQ0K0tIUm9hWE11WDNkdmNtdGxja052ZFc1MEtUdGNiaUFnSUNBZ0lHTnZibk4wSUhkdmNtdGxjbk1nUFNCdVpYY2dRWEp5WVhrb2RHaHBjeTVmZDI5eWEyVnlRMjkxYm5RcFhHNGdJQ0FnSUNBZ0lDNW1hV3hzS0c1MWJHd3BMbTFoY0Nnb0tTQTlQaUJ1WlhjZ1YyOXlhMlZ5S0c1bGR5QlZVa3dvSnk0dmEyNXVMWFJvY21WemFHOXNaQzEzYjNKclpYSW5MQ0JwYlhCdmNuUXViV1YwWVM1MWNtd3BLU2s3WEc0Z0lDQWdJQ0JtYjNJZ0tHeGxkQ0JwWkhnZ1BTQXdPeUJwWkhnZ1BDQjBhR2x6TGw5M2IzSnJaWEpEYjNWdWREc2dhV1I0S3lzcElIdGNiaUFnSUNBZ0lDQWdjSEp2YldselpYTmJhV1I0WFNBOUlHNWxkeUJRY205dGFYTmxLQ2h5WlhOdmJIWmxWMjl5YTJWeUxDQnlaV3BsWTNSWGIzSnJaWElwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQnpkR0Z5ZEVsa2VDQTlJR2xrZUNBcUlHTm9kVzVyVTJsNlpUdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQmxibVJKWkhnZ1BTQnBaSGdnUFQwOUlIUm9hWE11WDNkdmNtdGxja052ZFc1MElDMGdNU0EvSUcxaGRGTnBlbVVnT2lBb2FXUjRJQ3NnTVNrZ0tpQmphSFZ1YTFOcGVtVTdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tHVnVaRWxrZUNBOFBTQnpkR0Z5ZEVsa2VDbGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGMyOXNkbVZYYjNKclpYSW9lMnR1YmtScGMzUmhibU5sY3pvZ2JtVjNJRUZ5Y21GNUtEQXBMQ0JyYm01SmJtUmxlR1Z6T2lCdVpYY2dRWEp5WVhrb01DbDlLVHRjYmlBZ0lDQWdJQ0FnSUNCM2IzSnJaWEp6VzJsa2VGMHVjRzl6ZEUxbGMzTmhaMlVvZTNaaGJIVmxjeXdnYzNSaGNuUkpaSGdzSUdWdVpFbGtlQ3dnWm01T1lXMWxjeXdnYjNCMGN5d2dkR2h5WlhOb2IyeGtMQ0IzWldsbmFIUnpMQ0JoWjJkeVpXZGhkR2x2YmsxbGRHaHZaSDBwTzF4dUlDQWdJQ0FnSUNBZ0lIZHZjbXRsY25OYmFXUjRYUzV2Ym0xbGMzTmhaMlVnUFNBb2UyUmhkR0U2SUh0bGNuSnZjaXdnYTI1dVJHbHpkR0Z1WTJWekxDQnJibTVKYm1SbGVHVnpmWDBwT2lCMmIybGtJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNobGNuSnZjaWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0IzYjNKclpYSnpXMmxrZUYwdWRHVnliV2x1WVhSbEtDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxhbVZqZEZkdmNtdGxjaWhsY25KdmNpazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0IzYjNKclpYSnpXMmxrZUYwdWRHVnliV2x1WVhSbEtDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxjMjlzZG1WWGIzSnJaWElvZTJ0dWJrUnBjM1JoYm1ObGN5d2dhMjV1U1c1a1pYaGxjMzBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUgwN1hHNGdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JqYjI1emRDQnlaWE4xYkhSeklEMGdZWGRoYVhRZ1VISnZiV2x6WlM1aGJHd29jSEp2YldselpYTXBPMXh1SUNBZ0lDQWdZMjl1YzNRZ2EyNXVVMmw2WlhNZ1BTQnVaWGNnU1c1ME16SkJjbkpoZVNoMllXeDFaWE5iTUYwdWJHVnVaM1JvS1R0Y2JpQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2NtVnpJRzltSUhKbGMzVnNkSE1wSUh0Y2JpQWdJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQjJZV3gxWlhOYk1GMHViR1Z1WjNSb095QXJLMmtwWEc0Z0lDQWdJQ0FnSUNBZ2EyNXVVMmw2WlhOYmFWMGdLejBnY21WekxtdHVia2x1WkdWNFpYTmJhVjAvTG14bGJtZDBhQ0EvUHlBd08xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ1kyOXVjM1FnYTI1dVVtVnpPaUJMYm01U1pYTjFiSFFnUFNCN1hHNGdJQ0FnSUNBZ0lHdHVia1JwYzNSaGJtTmxjem9nYm1WM0lFRnljbUY1S0haaGJIVmxjMXN3WFM1c1pXNW5kR2dwTG1acGJHd29iblZzYkNrdWJXRndLQ2hmTENCcEtTQTlQaUJ1WlhjZ1FYSnlZWGs4Ym5WdFltVnlQaWhyYm01VGFYcGxjMXRwWFNrcExGeHVJQ0FnSUNBZ0lDQnJibTVKYm1SbGVHVnpPaUJ1WlhjZ1FYSnlZWGtvZG1Gc2RXVnpXekJkTG14bGJtZDBhQ2t1Wm1sc2JDaHVkV3hzS1M1dFlYQW9LRjhzSUdrcElEMCtJRzVsZHlCQmNuSmhlVHh1ZFcxaVpYSStLR3R1YmxOcGVtVnpXMmxkS1NsOU8xeHVJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQnlaWE1nYjJZZ2NtVnpkV3gwY3lrZ2UxeHVJQ0FnSUNBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJSFpoYkhWbGMxc3dYUzVzWlc1bmRHZzdJQ3NyYVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR29nUFNBd095QnFJRHdnY21WekxtdHVia1JwYzNSaGJtTmxjMXRwWFQ4dWJHVnVaM1JvSUQ4L0lEQTdJQ3NyYWlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYTI1dVVtVnpMbXR1YmtScGMzUmhibU5sYzF0cFhWdHJibTVUYVhwbGMxdHBYU0F0SURGZElEMGdjbVZ6TG10dWJrUnBjM1JoYm1ObGMxdHBYVnRxWFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR3R1YmxKbGN5NXJibTVKYm1SbGVHVnpXMmxkVzJ0dWJsTnBlbVZ6VzJsZElDMGdNVjBnUFNCeVpYTXVhMjV1U1c1a1pYaGxjMXRwWFZ0cVhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUd0dWJsTnBlbVZ6VzJsZElDMDlJREU3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z2EyNXVVbVZ6TzF4dUlDQWdJSDFjYmx4dUlDQWdJSEIxWW14cFl5QmhjM2x1WXlCdGRXeDBhVU52YkhWdGJrdE9UaWgyWVd4MVpYTTZJRUZ5Y21GNVBFRnljbUY1UEdGdWVUNCtMQ0JtYms1aGJXVnpPaUJMYm05M2JrMWxkSEpwWTNOYlhTd2diazVsYVdkb1ltOTFjbk02SUc1MWJXSmxjaUE5SURFMUxGeHVJQ0FnSUNBZ2IzQjBjem9nZTF0Zk9pQnpkSEpwYm1kZE9pQmhibmw5VzEwc0lIZGxhV2RvZEhNNklHNTFiV0psY2x0ZExGeHVJQ0FnSUNBZ1lXZG5jbVZuWVhScGIyNU5aWFJvYjJRNklFUnBjM1JoYm1ObFFXZG5jbVZuWVhScGIyNU5aWFJvYjJRZ1BTQkVhWE4wWVc1alpVRm5aM0psWjJGMGFXOXVUV1YwYUc5a2N5NUZWVU5NU1VSRlFVNWNiaUFnSUNBcElIdGNiaUFnSUNBZ0lHbG1JQ2gyWVd4MVpYTXViR1Z1WjNSb0lDRTlQU0JtYms1aGJXVnpMbXhsYm1kMGFDQjhmQ0IyWVd4MVpYTXViR1Z1WjNSb0lDRTlQU0J2Y0hSekxteGxibWQwYUNCOGZDQjJZV3gxWlhNdWJHVnVaM1JvSUNFOVBTQjNaV2xuYUhSekxteGxibWQwYUNsY2JpQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkMllXeDFaWE1zSUdScGMzUmhibU5sSUdaMWJtTjBhVzl1Y3l3Z2IzQjBhVzl1Y3lCaGJtUWdkMlZwWjJoMGN5QmhjbkpoZVhNZ2MyaHZkV3hrSUdoaGRtVWdkR2hsSUhOaGJXVWdiR1Z1WjNSb0p5azdYRzVjYmlBZ0lDQWdJR2xtSUNoMllXeDFaWE11YzI5dFpTZ29kaWtnUFQ0Z2RpNXNaVzVuZEdnZ0lUMDlJSFpoYkhWbGMxc3dYUzVzWlc1bmRHZ3BLVnh1SUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KMkZzYkNCMllXeDFaWE1nWVhKeVlYbHpJSE5vYjNWc1pDQm9ZWFpsSUhSb1pTQnpZVzFsSUd4bGJtZDBhQ2NwTzF4dVhHNGdJQ0FnSUNCamIyNXpkQ0J0WVhSVGFYcGxJRDBnZG1Gc2RXVnpXekJkTG14bGJtZDBhQ0FxSUNoMllXeDFaWE5iTUYwdWJHVnVaM1JvSUMwZ01Ta2dMeUF5TzF4dUlDQWdJQ0FnWTI5dWMzUWdZMmgxYm10VGFYcGxJRDBnVFdGMGFDNW1iRzl2Y2lodFlYUlRhWHBsSUM4Z2RHaHBjeTVmZDI5eWEyVnlRMjkxYm5RcE8xeHVJQ0FnSUNBZ1kyOXVjM1FnY0hKdmJXbHpaWE1nUFZ4dUlDQWdJQ0FnSUNCdVpYY2dRWEp5WVhrOFVISnZiV2x6WlR4TGJtNVNaWE4xYkhRK1BpaDBhR2x6TGw5M2IzSnJaWEpEYjNWdWRDazdYRzRnSUNBZ0lDQmpiMjV6ZENCM2IzSnJaWEp6SUQwZ2JtVjNJRUZ5Y21GNUtIUm9hWE11WDNkdmNtdGxja052ZFc1MEtWeHVJQ0FnSUNBZ0lDQXVabWxzYkNodWRXeHNLUzV0WVhBb0tDa2dQVDRnYm1WM0lGZHZjbXRsY2lodVpYY2dWVkpNS0NjdUwydHViaTEzYjNKclpYSW5MQ0JwYlhCdmNuUXViV1YwWVM1MWNtd3BLU2s3WEc0Z0lDQWdJQ0JtYjNJZ0tHeGxkQ0JwWkhnZ1BTQXdPeUJwWkhnZ1BDQjBhR2x6TGw5M2IzSnJaWEpEYjNWdWREc2dhV1I0S3lzcElIdGNiaUFnSUNBZ0lDQWdjSEp2YldselpYTmJhV1I0WFNBOUlHNWxkeUJRY205dGFYTmxLQ2h5WlhOdmJIWmxWMjl5YTJWeUxDQnlaV3BsWTNSWGIzSnJaWElwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQnpkR0Z5ZEVsa2VDQTlJR2xrZUNBcUlHTm9kVzVyVTJsNlpUdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQmxibVJKWkhnZ1BTQnBaSGdnUFQwOUlIUm9hWE11WDNkdmNtdGxja052ZFc1MElDMGdNU0EvSUcxaGRGTnBlbVVnT2lBb2FXUjRJQ3NnTVNrZ0tpQmphSFZ1YTFOcGVtVTdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tHVnVaRWxrZUNBOFBTQnpkR0Z5ZEVsa2VDbGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGMyOXNkbVZYYjNKclpYSW9lMnR1YmtScGMzUmhibU5sY3pvZ2JtVjNJRUZ5Y21GNUtEQXBMQ0JyYm01SmJtUmxlR1Z6T2lCdVpYY2dRWEp5WVhrb01DbDlLVHRjYmlBZ0lDQWdJQ0FnSUNCM2IzSnJaWEp6VzJsa2VGMHVjRzl6ZEUxbGMzTmhaMlVvZTNaaGJIVmxjeXdnYzNSaGNuUkpaSGdzSUdWdVpFbGtlQ3dnWm01T1lXMWxjeXdnYjNCMGN5d2diazVsYVdkb1ltOTFjbk1zSUhkbGFXZG9kSE1zSUdGblozSmxaMkYwYVc5dVRXVjBhRzlrZlNrN1hHNGdJQ0FnSUNBZ0lDQWdkMjl5YTJWeWMxdHBaSGhkTG05dWJXVnpjMkZuWlNBOUlDaDdaR0YwWVRvZ2UyVnljbTl5TENCcmJtNUVhWE4wWVc1alpYTXNJR3R1YmtsdVpHVjRaWE45ZlNrNklIWnZhV1FnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHVnljbTl5S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhkdmNtdGxjbk5iYVdSNFhTNTBaWEp0YVc1aGRHVW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZxWldOMFYyOXlhMlZ5S0dWeWNtOXlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhkdmNtdGxjbk5iYVdSNFhTNTBaWEp0YVc1aGRHVW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZ6YjJ4MlpWZHZjbXRsY2loN2EyNXVSR2x6ZEdGdVkyVnpMQ0JyYm01SmJtUmxlR1Z6ZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ2ZUdGNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJSEpsYzNWc2RITWdQU0JoZDJGcGRDQlFjbTl0YVhObExtRnNiQ2h3Y205dGFYTmxjeWs3WEc0Z0lDQWdJQ0JqYjI1emRDQnJibTVTWlhNNklFdHVibEpsYzNWc2RDQTlJSHRjYmlBZ0lDQWdJQ0FnYTI1dVJHbHpkR0Z1WTJWek9pQnVaWGNnUVhKeVlYa29kbUZzZFdWeld6QmRMbXhsYm1kMGFDa3VabWxzYkNodWRXeHNLUzV0WVhBb0tDa2dQVDRnYm1WM0lFRnljbUY1UEc1MWJXSmxjajRvYms1bGFXZG9ZbTkxY25NcExtWnBiR3dvT1RrNU9Ua3BLU3hjYmlBZ0lDQWdJQ0FnYTI1dVNXNWtaWGhsY3pvZ2JtVjNJRUZ5Y21GNUtIWmhiSFZsYzFzd1hTNXNaVzVuZEdncExtWnBiR3dvYm5Wc2JDa3ViV0Z3S0NncElEMCtJRzVsZHlCQmNuSmhlVHh1ZFcxaVpYSStLRzVPWldsbmFHSnZkWEp6S1M1bWFXeHNLQzB4S1NsOU8xeHVJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQnlaWE1nYjJZZ2NtVnpkV3gwY3lrZ2UxeHVJQ0FnSUNBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJSFpoYkhWbGMxc3dYUzVzWlc1bmRHZzdJQ3NyYVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR29nUFNBd095QnFJRHdnY21WekxtdHVia1JwYzNSaGJtTmxjMXRwWFQ4dWJHVnVaM1JvSUQ4L0lEQTdJQ3NyYWlsY2JpQWdJQ0FnSUNBZ0lDQWdJR2x1YzJWeWRGTnRZV3hzWlhJb2EyNXVVbVZ6TG10dWJrUnBjM1JoYm1ObGMxdHBYU3dnYTI1dVVtVnpMbXR1YmtsdVpHVjRaWE5iYVYwc0lISmxjeTVyYm01RWFYTjBZVzVqWlhOYmFWMWJhbDBzSUhKbGN5NXJibTVKYm1SbGVHVnpXMmxkVzJwZEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlHdHVibEpsY3p0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J3ZFdKc2FXTWdZWE41Ym1NZ1oyVjBVMkZ0Y0d4bFJHbHpkR0Z1WTJWektIWmhiSFZsY3pvZ1FYSnlZWGs4WVc1NVcxMCtMRnh1SUNBZ0lDQWdabTVPWVcxbGN6b2dTMjV2ZDI1TlpYUnlhV056VzEwc0lHOXdkSE02SUh0Ylh6b2djM1J5YVc1blhUb2dZVzU1ZlZ0ZElEMGdXMTBzSUhkbGFXZG9kSE02SUc1MWJXSmxjbHRkTEZ4dUlDQWdJQ0FnWVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlE2SUVScGMzUmhibU5sUVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlFnUFNCRWFYTjBZVzVqWlVGblozSmxaMkYwYVc5dVRXVjBhRzlrY3k1RlZVTk1TVVJGUVU0cE9pQlFjbTl0YVhObFBFWnNiMkYwTXpKQmNuSmhlVDRnZTF4dUlDQWdJQ0FnWTI5dWMzUWdkR2h5WlhOb2IyeGtWMjl5YTJWeWN5QTlJRzVsZHlCQmNuSmhlU2gwYUdsekxsOTNiM0pyWlhKRGIzVnVkQ2t1Wm1sc2JDaHVkV3hzS1Z4dUlDQWdJQ0FnSUNBdWJXRndLQ2dwSUQwK0lHNWxkeUJYYjNKclpYSW9ibVYzSUZWU1RDZ25MaTl6Y0dGeWMyVXRiV0YwY21sNExYUm9jbVZ6YUc5c1pDMTNiM0pyWlhJbkxDQnBiWEJ2Y25RdWJXVjBZUzUxY213cEtTazdYRzVjYmlBZ0lDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUcxaGRGTnBlbVVnUFNCMllXeDFaWE5iTUYwdWJHVnVaM1JvSUNvZ0tIWmhiSFZsYzFzd1hTNXNaVzVuZEdnZ0xTQXhLU0F2SURJN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdOb2RXNXJVMmw2WlNBOUlFMWhkR2d1Wm14dmIzSW9iV0YwVTJsNlpTQXZJSFJvYVhNdVgzZHZjbXRsY2tOdmRXNTBLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdiV0Y0VTJGdGNHeGxVMmw2WlNBOUlERmZNREF3WHpBd01EdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2MyRnRjR3hsVTJselpTQTlJRTFoZEdndWJXRjRLRTFoZEdndWJXbHVLRzFoZEZOcGVtVWdMeUF4TURBd0xDQnRZWGhUWVcxd2JHVlRhWHBsS1N3Z1RXRjBhQzV0YVc0b2JXRjBVMmw2WlN3Z2JXRjRVMkZ0Y0d4bFUybDZaU2twTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0IwWlhOMFUyVjBVMmw2WlZCbGNsZHZjbXRsY2lBOUlFMWhkR2d1Wm14dmIzSW9jMkZ0Y0d4bFUybHpaU0F2SUhSb2FYTXVYM2R2Y210bGNrTnZkVzUwS1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnZEZCeWIyMXBjMlZ6SUQwZ2JtVjNJRUZ5Y21GNVBGQnliMjFwYzJVOGUyUnBjM1JoYm1ObE9pQkdiRzloZERNeVFYSnlZWGw5UGo0b2RHaHBjeTVmZDI5eWEyVnlRMjkxYm5RcE8xeHVYRzRnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR2xrZUNBOUlEQTdJR2xrZUNBOElIUm9hWE11WDNkdmNtdGxja052ZFc1ME95QnBaSGdyS3lrZ2UxeHVJQ0FnSUNBZ0lDQWdJSFJRY205dGFYTmxjMXRwWkhoZElEMGdibVYzSUZCeWIyMXBjMlVvS0hKbGMyOXNkbVZYYjNKclpYSXNJSEpsYW1WamRGZHZjbXRsY2lrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYzNSaGNuUkpaSGdnUFNCcFpIZ2dLaUJqYUhWdWExTnBlbVU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCbGJtUkpaSGdnUFNCcFpIZ2dQVDA5SUhSb2FYTXVYM2R2Y210bGNrTnZkVzUwSUMwZ01TQS9JRzFoZEZOcGVtVWdPaUFvYVdSNElDc2dNU2tnS2lCamFIVnVhMU5wZW1VN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUhKbGMyaHZiR1JYYjNKclpYSnpXMmxrZUYwdWNHOXpkRTFsYzNOaFoyVW9lMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjJZV3gxWlhNNklIWmhiSFZsY3l3Z2MzUmhjblJKWkhnc0lHVnVaRWxrZUN3Z2MyRnRjR3hsVEdWdVozUm9PaUIwWlhOMFUyVjBVMmw2WlZCbGNsZHZjbXRsY2l4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWm01T1lXMWxjeXdnYjNCMGN5d2dkMlZwWjJoMGN5d2dZV2RuY21WbllYUnBiMjVOWlhSb2IyUmNiaUFnSUNBZ0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdoeVpYTm9iMnhrVjI5eWEyVnljMXRwWkhoZExtOXViV1Z6YzJGblpTQTlJQ2g3WkdGMFlUb2dlMlZ5Y205eUxDQmthWE4wWVc1alpYMTlLVG9nZG05cFpDQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSFJvY21WemFHOXNaRmR2Y210bGNuTmJhV1I0WFM1MFpYSnRhVzVoZEdVb0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR1Z5Y205eUtTQnlaV3BsWTNSWGIzSnJaWElvWlhKeWIzSXBPeUJsYkhObFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVnpiMngyWlZkdmNtdGxjaWg3WkdsemRHRnVZMlY5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDA3WEc0Z0lDQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNCamIyNXpkQ0J5WlhOMWJIUnpJRDBnWVhkaGFYUWdVSEp2YldselpTNWhiR3dvZEZCeWIyMXBjMlZ6S1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWm5Wc2JGTnBlbVVnUFNCeVpYTjFiSFJ6TG5KbFpIVmpaU2dvWVdOakxDQjJZV3dwSUQwK0lHRmpZeUFySUhaaGJDNWthWE4wWVc1alpTNXNaVzVuZEdnc0lEQXBPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmthWE4wWVc1alpTQTlJRzVsZHlCR2JHOWhkRE15UVhKeVlYa29ablZzYkZOcGVtVXBPMXh1SUNBZ0lDQWdJQ0JzWlhRZ2IyWm1jMlYwSUQwZ01EdGNiaUFnSUNBZ0lDQWdabTl5SUNoamIyNXpkQ0J5WlhNZ2IyWWdjbVZ6ZFd4MGN5a2dlMXh1SUNBZ0lDQWdJQ0FnSUdScGMzUmhibU5sTG5ObGRDaHlaWE11WkdsemRHRnVZMlVzSUc5bVpuTmxkQ2s3WEc0Z0lDQWdJQ0FnSUNBZ2IyWm1jMlYwSUNzOUlISmxjeTVrYVhOMFlXNWpaUzVzWlc1bmRHZzdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWkdsemRHRnVZMlV1YzI5eWRDZ3BPMXh1WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJrYVhOMFlXNWpaVHRjYmlBZ0lDQWdJSDBnWTJGMFkyZ2dLR1VwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHlaWE5vYjJ4a1YyOXlhMlZ5Y3o4dVptOXlSV0ZqYUNnb2R5a2dQVDRnZHo4dWRHVnliV2x1WVhSbEtDa3BPMXh1SUNBZ0lDQWdJQ0JqYjI1emIyeGxMbVZ5Y205eUtHVXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdibVYzSUVac2IyRjBNekpCY25KaGVTZ3hLUzVtYVd4c0tEQXVOU2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjSEpwZG1GMFpTQmhjM2x1WXlCblpYUk5hVzVwYldGc1ZHaHlaWE5vYjJ4a0tIWmhiSFZsY3pvZ1FYSnlZWGs4WVc1NVcxMCtMRnh1SUNBZ0lDQWdabTVPWVcxbGN6b2dTMjV2ZDI1TlpYUnlhV056VzEwc0lHOXdkSE02SUh0Ylh6b2djM1J5YVc1blhUb2dZVzU1ZlZ0ZElEMGdXMTBzSUhkbGFXZG9kSE02SUc1MWJXSmxjbHRkTEZ4dUlDQWdJQ0FnWVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlE2SUVScGMzUmhibU5sUVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlFnUFNCRWFYTjBZVzVqWlVGblozSmxaMkYwYVc5dVRXVjBhRzlrY3k1RlZVTk1TVVJGUVU0cElIdGNiaUFnSUNBZ0lDOHZWMlVnYm1WbFpDQjBieUJqWVd4amRXeGhkR1VnZEdobElHMXBibWx0WVd3Z2RHaHlaWE5vYjJ4a0lHWnBjbk4wTEZ4dUlDQWdJQ0FnTHk5cGJpQnZjbVJsY2lCMGJ5Qm5aWFFnYldGMGNtbDRJSE4xWTJnZ2RHaGhkQ0JwZENCa2IyVnpJRzV2ZENCbGVHTmxaV1FnZEdobElHMWhlR2x0ZFcwZ2MybDZaU0J2WmlBeFIwSmNiaUFnSUNBZ0lDOHZkMlVnYUdGMlpTQXpJSEpsZEhWeWJpQmhjbkpoZVhNc0lHVmhZMmdnTkNCaWFYUmxjeUJ3WlhJZ1pXeGxiV1Z1ZEN3Z2MyOGdhV1lnZEdobElHMWhlR2x0ZFcwZ2MybDZaU0J2WmlCMGFHVWdiV0YwY21sNElHbHpJREZIUWl4Y2JpQWdJQ0FnSUdOdmJuTjBJRzFoZUZOd1lYSnpaVTFoZEhKcGVGTnBlbVVnUFNBM01GOHdNREJmTURBd08xeHVJQ0FnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdiV0YwVTJsNlpTQTlJSFpoYkhWbGN5NXNaVzVuZEdnZ0tpQW9kbUZzZFdWekxteGxibWQwYUNBdElERXBJQzhnTWp0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWkdsemRHRnVZMlVnUFNCaGQyRnBkQ0IwYUdsekxtZGxkRk5oYlhCc1pVUnBjM1JoYm1ObGN5aDJZV3gxWlhNc0lHWnVUbUZ0WlhNc0lHOXdkSE1zSUhkbGFXZG9kSE1zSUdGblozSmxaMkYwYVc5dVRXVjBhRzlrS1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWm5KaFkzUnBiMjVKYm1SbGVDQTlJRTFoZEdndVpteHZiM0lvYldGNFUzQmhjbk5sVFdGMGNtbDRVMmw2WlNBdklHMWhkRk5wZW1VZ0tpQmthWE4wWVc1alpTNXNaVzVuZEdncE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCMGFISmxjMmh2YkdRZ1BTQXhJQzBnWkdsemRHRnVZMlZiWm5KaFkzUnBiMjVKYm1SbGVGMDdYRzRnSUNBZ0lDQWdJQzh2SUhSb2NtVnphRzlzWkNBOUlFMWhkR2d1YldGNEtIUm9jbVZ6YUc5c1pDd2dNQzR6S1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2NtVnphRzlzWkR0Y2JpQWdJQ0FnSUgwZ1kyRjBZMmdnS0dVcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzI5c1pTNWxjbkp2Y2lobEtUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlEQXVOVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzVjYmlBZ0lDQndkV0pzYVdNZ2MzUmhkR2xqSUdOaGJHTlRlVzVqUEZRK0tGeHVJQ0FnSUNBZ2RtRnNkV1Z6T2lCQmNuSmhlVHhVUGlCOElFRnljbUY1VEdsclpUeFVQaXdnWm01T1lXMWxPaUJMYm05M2JrMWxkSEpwWTNNc0lHUnBjM1JoYm1ObFJtNDZJRVoxYm1OMGFXOXVMQ0IwYUhKbGMyaHZiR1E2SUc1MWJXSmxjbHh1SUNBZ0lDa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2FUb2diblZ0WW1WeVcxMGdQU0JiWFR0Y2JpQWdJQ0FnSUdOdmJuTjBJR282SUc1MWJXSmxjbHRkSUQwZ1cxMDdYRzRnSUNBZ0lDQmpiMjV6ZENCa2FYTjBZVzVqWlhNNklHNTFiV0psY2x0ZElEMGdXMTA3WEc0Z0lDQWdJQ0JzWlhRZ1kyNTBJRDBnTUR0Y2JpQWdJQ0FnSUd4bGRDQnRhU0E5SURBN1hHNGdJQ0FnSUNCc1pYUWdiV29nUFNBd08xeHVJQ0FnSUNBZ1kyOXVjM1FnWm5Wc2JGTnBlbVVnUFNCMllXeDFaWE11YkdWdVozUm9JQ29nS0haaGJIVmxjeTVzWlc1bmRHZ2dMU0F4S1NBdklESTdYRzRnSUNBZ0lDQjNhR2xzWlNBb1kyNTBJRHdnWm5Wc2JGTnBlbVVwSUh0Y2JpQWdJQ0FnSUNBZ0x5OWpiMjV6ZENCMllXeDFaU0E5SUhObGNURk1hWE4wVzIxcFhTQW1KaUJ6WlhFeFRHbHpkRnR0YWwwZ1B5Qm9ZVzF0YVc1bktITmxjVEZNYVhOMFcyMXBYU3dnYzJWeE1VeHBjM1JiYldwZEtTQTZJREE3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSFpoYkhWbElEMGdJV2x6VG1sc0tIWmhiSFZsYzF0dGFWMHBJQ1ltSUNGcGMwNXBiQ2gyWVd4MVpYTmJiV3BkS1NBL1hHNGdJQ0FnSUNBZ0lDQWdaR2x6ZEdGdVkyVkdiaWgyWVd4MVpYTmJiV2xkTENCMllXeDFaWE5iYldwZEtTQTZJREU3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSE5wYldsc1lYSnBkSGtnUFNBeElDMGdkbUZzZFdVN1hHNGdJQ0FnSUNBZ0lHbG1JQ2h6YVcxcGJHRnlhWFI1SUQ0OUlIUm9jbVZ6YUc5c1pDa2dlMXh1SUNBZ0lDQWdJQ0FnSUdrdWNIVnphQ2h0YVNrN1hHNGdJQ0FnSUNBZ0lDQWdhaTV3ZFhOb0tHMXFLVHRjYmlBZ0lDQWdJQ0FnSUNCa2FYTjBZVzVqWlhNdWNIVnphQ2gyWVd4MVpTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWTI1MEt5czdYRzRnSUNBZ0lDQWdJRzFxS3lzN1hHNGdJQ0FnSUNBZ0lHbG1JQ2h0YWlBOVBUMGdkbUZzZFdWekxteGxibWQwYUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJRzFwS3lzN1hHNGdJQ0FnSUNBZ0lDQWdiV29nUFNCdGFTQXJJREU3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ1kyOXVjM1FnYVVGeWNtRjVJRDBnYm1WM0lFbHVkRE15UVhKeVlYa29hU2s3WEc0Z0lDQWdJQ0JqYjI1emRDQnFRWEp5WVhrZ1BTQnVaWGNnU1c1ME16SkJjbkpoZVNocUtUdGNiaUFnSUNBZ0lHTnZibk4wSUdScGMzUmhibU5sUVhKeVlYa2dQU0J1WlhjZ1JteHZZWFF6TWtGeWNtRjVLR1JwYzNSaGJtTmxjeWs3WEc1Y2JpQWdJQ0FnSUhKbGRIVnliaUI3YVRvZ2FVRnljbUY1TENCcU9pQnFRWEp5WVhrc0lHUnBjM1JoYm1ObE9pQmthWE4wWVc1alpVRnljbUY1ZlR0Y2JpQWdJQ0I5WEc1OVhHNGlYWDA9IiwiZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJpb0xheW91dChjbHVzdGVyLCBzcGFyc2VPYmplY3QsIHRocmVzaG9sZCkge1xuICAgIGNvbnN0IG4gPSBjbHVzdGVyLmxlbmd0aDtcbiAgICBjb25zdCBpcyA9IFtdO1xuICAgIGNvbnN0IGpzID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgZm9yIChsZXQgaiA9IGkgKyAxOyBqIDwgbjsgaisrKSB7XG4gICAgICAgICAgICBjb25zdCBhID0gY2x1c3RlcltpXTtcbiAgICAgICAgICAgIGNvbnN0IGIgPSBjbHVzdGVyW2pdO1xuICAgICAgICAgICAgaWYgKHNwYXJzZU9iamVjdFthXT8uW2JdID49IHRocmVzaG9sZCkge1xuICAgICAgICAgICAgICAgIGlzLnB1c2goaSk7XG4gICAgICAgICAgICAgICAganMucHVzaChqKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZ2V0TGF5b3V0RW1iZWRkaW5ncyhpcywganMsIGNsdXN0ZXIpO1xufVxuZnVuY3Rpb24gZ2V0TGF5b3V0RW1iZWRkaW5ncyhpcywganMsIGNsdXN0ZXIpIHtcbiAgICBjb25zdCBlbWJlZFggPSBuZXcgRmxvYXQzMkFycmF5KGNsdXN0ZXIubGVuZ3RoKS5maWxsKDApLm1hcCgoKSA9PiBNYXRoLnJhbmRvbSgpICogMTApO1xuICAgIGNvbnN0IGVtYmVkWSA9IG5ldyBGbG9hdDMyQXJyYXkoY2x1c3Rlci5sZW5ndGgpLmZpbGwoMCkubWFwKCgpID0+IE1hdGgucmFuZG9tKCkgKiAxMCk7XG4gICAgY29uc3QgaXRlcmF0aW9ucyA9IDEwMDtcbiAgICBjb25zdCB4VmVsb2NpdGllcyA9IG5ldyBGbG9hdDMyQXJyYXkoY2x1c3Rlci5sZW5ndGgpLmZpbGwoMCk7XG4gICAgY29uc3QgeVZlbG9jaXRpZXMgPSBuZXcgRmxvYXQzMkFycmF5KGNsdXN0ZXIubGVuZ3RoKS5maWxsKDApO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlcmF0aW9uczsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHRlbXBlcmF0dXJlID0gKDEgLSBpIC8gaXRlcmF0aW9ucyk7XG4gICAgICAgIHhWZWxvY2l0aWVzLmZpbGwoMCk7XG4gICAgICAgIHlWZWxvY2l0aWVzLmZpbGwoMCk7XG4gICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGlzLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IGEgPSBpc1tpZHhdO1xuICAgICAgICAgICAgY29uc3QgYiA9IGpzW2lkeF07XG4gICAgICAgICAgICBjb25zdCBkeCA9IGVtYmVkWFthXSAtIGVtYmVkWFtiXTtcbiAgICAgICAgICAgIGNvbnN0IGR5ID0gZW1iZWRZW2FdIC0gZW1iZWRZW2JdO1xuICAgICAgICAgICAgLy8gICBjb25zdCBkaXN0YW5jZSA9IE1hdGguc3FydChkeCAqIGR4ICsgZHkgKiBkeSk7XG4gICAgICAgICAgICAvLyAgIGNvbnN0IGZhY3RvciA9IChkaXN0YW5jZSAtIDEpIC8gZGlzdGFuY2U7XG4gICAgICAgICAgICAvLyAgIGNvbnN0IG9mZnNldFggPSBkeCAqIGZhY3RvcjtcbiAgICAgICAgICAgIC8vICAgY29uc3Qgb2Zmc2V0WSA9IGR5ICogZmFjdG9yO1xuICAgICAgICAgICAgaWYgKE1hdGguYWJzKGR4KSA+PSAxKSB7XG4gICAgICAgICAgICAgICAgeFZlbG9jaXRpZXNbYV0gLT0gdGVtcGVyYXR1cmUgKiBkeDtcbiAgICAgICAgICAgICAgICB4VmVsb2NpdGllc1tiXSArPSB0ZW1wZXJhdHVyZSAqIGR4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKE1hdGguYWJzKGR5KSA+PSAxKSB7XG4gICAgICAgICAgICAgICAgeVZlbG9jaXRpZXNbYV0gLT0gdGVtcGVyYXR1cmUgKiBkeTtcbiAgICAgICAgICAgICAgICB5VmVsb2NpdGllc1tiXSArPSB0ZW1wZXJhdHVyZSAqIGR5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gICBlbWJlZFlbYV0gKz0gb2Zmc2V0WSAqIHRlbXBlcmF0dXJlO1xuICAgICAgICAgICAgLy8gICBlbWJlZFlbYl0gLT0gb2Zmc2V0WSAqIHRlbXBlcmF0dXJlO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGNsdXN0ZXIubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICAgICAgY29uc3QgdmVjU2l6ZSA9IE1hdGguc3FydCh4VmVsb2NpdGllc1tpZHhdICogeFZlbG9jaXRpZXNbaWR4XSArIHlWZWxvY2l0aWVzW2lkeF0gKiB5VmVsb2NpdGllc1tpZHhdKTtcbiAgICAgICAgICAgIGlmICh2ZWNTaXplID4gMCkge1xuICAgICAgICAgICAgICAgIGVtYmVkWFtpZHhdICs9IHhWZWxvY2l0aWVzW2lkeF0gLyB2ZWNTaXplICogdGVtcGVyYXR1cmU7XG4gICAgICAgICAgICAgICAgZW1iZWRZW2lkeF0gKz0geVZlbG9jaXRpZXNbaWR4XSAvIHZlY1NpemUgKiB0ZW1wZXJhdHVyZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBub3JtYWxpemVcbiAgICBsZXQgbWluWCA9IGVtYmVkWFswXTtcbiAgICBsZXQgbWluWSA9IGVtYmVkWVswXTtcbiAgICBsZXQgbWF4WCA9IGVtYmVkWFswXTtcbiAgICBsZXQgbWF4WSA9IGVtYmVkWVswXTtcbiAgICBmb3IgKGxldCBpZHggPSAxOyBpZHggPCBjbHVzdGVyLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgbWluWCA9IE1hdGgubWluKG1pblgsIGVtYmVkWFtpZHhdKTtcbiAgICAgICAgbWluWSA9IE1hdGgubWluKG1pblksIGVtYmVkWVtpZHhdKTtcbiAgICAgICAgbWF4WCA9IE1hdGgubWF4KG1heFgsIGVtYmVkWFtpZHhdKTtcbiAgICAgICAgbWF4WSA9IE1hdGgubWF4KG1heFksIGVtYmVkWVtpZHhdKTtcbiAgICB9XG4gICAgbGV0IHJhbmdlWCA9IG1heFggLSBtaW5YO1xuICAgIGxldCByYW5nZVkgPSBtYXhZIC0gbWluWTtcbiAgICBpZiAocmFuZ2VYID09PSAwKVxuICAgICAgICByYW5nZVggPSBtYXhYO1xuICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGNsdXN0ZXIubGVuZ3RoOyBpZHgrKylcbiAgICAgICAgZW1iZWRYW2lkeF0gPSAoZW1iZWRYW2lkeF0gLSBtaW5YKSAvIHJhbmdlWCAvIDIgKyAwLjU7XG4gICAgaWYgKHJhbmdlWSA9PT0gMClcbiAgICAgICAgcmFuZ2VZID0gbWF4WTtcbiAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBjbHVzdGVyLmxlbmd0aDsgaWR4KyspXG4gICAgICAgIGVtYmVkWVtpZHhdID0gKGVtYmVkWVtpZHhdIC0gbWluWSkgLyByYW5nZVkgLyAyICsgMC41O1xuICAgIHJldHVybiB7IGVtYmVkWCwgZW1iZWRZIH07XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lZbWx2TFd4aGVXOTFkQzVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkltSnBieTFzWVhsdmRYUXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUlVFc1RVRkJUU3hEUVVGRExFdEJRVXNzVlVGQlZTeFRRVUZUTEVOQlFVTXNUMEZCYVVJc1JVRkJSU3haUVVGblF5eEZRVUZGTEZOQlFXbENPMGxCUTNCSExFMUJRVTBzUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNN1NVRkRla0lzVFVGQlRTeEZRVUZGTEVkQlFXRXNSVUZCUlN4RFFVRkRPMGxCUTNoQ0xFMUJRVTBzUlVGQlJTeEhRVUZoTEVWQlFVVXNRMEZCUXp0SlFVTjRRaXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFGQlF6RkNMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlF6bENMRTFCUVUwc1EwRkJReXhIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTnlRaXhOUVVGTkxFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRja0lzU1VGQlNTeFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeFRRVUZUTEVWQlFVVTdaMEpCUTNKRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRMWdzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRoUVVOYU8xTkJRMFk3UzBGRFJqdEpRVU5FTEU5QlFVOHNiVUpCUVcxQ0xFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRCUVVNNVF5eERRVUZETzBGQlJVUXNVMEZCVXl4dFFrRkJiVUlzUTBGQlF5eEZRVUZaTEVWQlFVVXNSVUZCV1N4RlFVRkZMRTlCUVdsQ08wbEJRM2hGTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1dVRkJXU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXp0SlFVTjBSaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEZsQlFWa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRGRFWXNUVUZCVFN4VlFVRlZMRWRCUVVjc1IwRkJSeXhEUVVGRE8wbEJRM1pDTEUxQlFVMHNWMEZCVnl4SFFVRkhMRWxCUVVrc1dVRkJXU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRE4wUXNUVUZCVFN4WFFVRlhMRWRCUVVjc1NVRkJTU3haUVVGWkxFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU0zUkN4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NWVUZCVlN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xRkJRMjVETEUxQlFVMHNWMEZCVnl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eFZRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTjZReXhYUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNCQ0xGZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRjRUlzUzBGQlN5eEpRVUZKTEVkQlFVY3NSMEZCUnl4RFFVRkRMRVZCUVVVc1IwRkJSeXhIUVVGSExFVkJRVVVzUTBGQlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRVZCUVVVN1dVRkRlRU1zVFVGQlRTeERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRMnhDTEUxQlFVMHNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU5zUWl4TlFVRk5MRVZCUVVVc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMnBETEUxQlFVMHNSVUZCUlN4SFFVRkhMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRha01zYlVSQlFXMUVPMWxCUTI1RUxEaERRVUU0UXp0WlFVTTVReXhwUTBGQmFVTTdXVUZEYWtNc2FVTkJRV2xETzFsQlEycERMRWxCUVVrc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVN1owSkJRM0pDTEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hYUVVGWExFZEJRVWNzUlVGQlJTeERRVUZETzJkQ1FVTnVReXhYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NWMEZCVnl4SFFVRkhMRVZCUVVVc1EwRkJRenRoUVVOd1F6dFpRVU5FTEVsQlFVa3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVTdaMEpCUTNKQ0xGZEJRVmNzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4WFFVRlhMRWRCUVVjc1JVRkJSU3hEUVVGRE8yZENRVU51UXl4WFFVRlhMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzVjBGQlZ5eEhRVUZITEVWQlFVVXNRMEZCUXp0aFFVTndRenRaUVVOSUxIZERRVUYzUXp0WlFVTjRReXgzUTBGQmQwTTdVMEZEZGtNN1VVRkRSQ3hMUVVGTExFbEJRVWtzUjBGQlJ5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRWRCUVVjc1QwRkJUeXhEUVVGRExFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlR0WlFVTTNReXhOUVVGTkxFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eFhRVUZYTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1YwRkJWeXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRM0pITEVsQlFVa3NUMEZCVHl4SFFVRkhMRU5CUVVNc1JVRkJSVHRuUWtGRFppeE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1YwRkJWeXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEU5QlFVOHNSMEZCUnl4WFFVRlhMRU5CUVVNN1owSkJRM2hFTEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hYUVVGWExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NUMEZCVHl4SFFVRkhMRmRCUVZjc1EwRkJRenRoUVVONlJEdFRRVU5HTzB0QlEwWTdTVUZGUkN4WlFVRlpPMGxCUTFvc1NVRkJTU3hKUVVGSkxFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNKQ0xFbEJRVWtzU1VGQlNTeEhRVUZITEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOeVFpeEpRVUZKTEVsQlFVa3NSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGNrSXNTVUZCU1N4SlFVRkpMRWRCUVVjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzSkNMRXRCUVVzc1NVRkJTU3hIUVVGSExFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSMEZCUnl4UFFVRlBMRU5CUVVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEZRVUZGTzFGQlF6ZERMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NSVUZCUlN4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU51UXl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVWQlFVVXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGJrTXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeEZRVUZGTEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMjVETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUlVGQlJTeE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRMUVVOd1F6dEpRVU5FTEVsQlFVa3NUVUZCVFN4SFFVRkhMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU03U1VGRGVrSXNTVUZCU1N4TlFVRk5MRWRCUVVjc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF6dEpRVU42UWl4SlFVRkpMRTFCUVUwc1MwRkJTeXhEUVVGRE8xRkJRMlFzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXp0SlFVTm9RaXhMUVVGTExFbEJRVWtzUjBGQlJ5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRWRCUVVjc1QwRkJUeXhEUVVGRExFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVTdVVUZETTBNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEUxQlFVMHNSMEZCUnl4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRE8wbEJRM2hFTEVsQlFVa3NUVUZCVFN4TFFVRkxMRU5CUVVNN1VVRkRaQ3hOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETzBsQlEyaENMRXRCUVVzc1NVRkJTU3hIUVVGSExFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSMEZCUnl4UFFVRlBMRU5CUVVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJUdFJRVU16UXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzVFVGQlRTeEhRVUZITEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNN1NVRkZlRVFzVDBGQlR5eEZRVUZETEUxQlFVMHNSVUZCUlN4TlFVRk5MRVZCUVVNc1EwRkJRenRCUVVNeFFpeERRVUZESWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUh0VGNHRnljMlZOWVhSeWFYaFBZbXBsWTNSOUlHWnliMjBnSnk0dmRIbHdaWE1uTzF4dVhHNWxlSEJ2Y25RZ1lYTjVibU1nWm5WdVkzUnBiMjRnWW1sdlRHRjViM1YwS0dOc2RYTjBaWEk2SUc1MWJXSmxjbHRkTENCemNHRnljMlZQWW1wbFkzUTZJRk53WVhKelpVMWhkSEpwZUU5aWFtVmpkQ3dnZEdoeVpYTm9iMnhrT2lCdWRXMWlaWElwSUh0Y2JpQWdZMjl1YzNRZ2JpQTlJR05zZFhOMFpYSXViR1Z1WjNSb08xeHVJQ0JqYjI1emRDQnBjem9nYm5WdFltVnlXMTBnUFNCYlhUdGNiaUFnWTI5dWMzUWdhbk02SUc1MWJXSmxjbHRkSUQwZ1cxMDdYRzRnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2Jqc2dhU3NyS1NCN1hHNGdJQ0FnWm05eUlDaHNaWFFnYWlBOUlHa2dLeUF4T3lCcUlEd2dianNnYWlzcktTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCaElEMGdZMngxYzNSbGNsdHBYVHRjYmlBZ0lDQWdJR052Ym5OMElHSWdQU0JqYkhWemRHVnlXMnBkTzF4dUlDQWdJQ0FnYVdZZ0tITndZWEp6WlU5aWFtVmpkRnRoWFQ4dVcySmRJRDQ5SUhSb2NtVnphRzlzWkNrZ2UxeHVJQ0FnSUNBZ0lDQnBjeTV3ZFhOb0tHa3BPMXh1SUNBZ0lDQWdJQ0JxY3k1d2RYTm9LR29wTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdaMlYwVEdGNWIzVjBSVzFpWldSa2FXNW5jeWhwY3l3Z2FuTXNJR05zZFhOMFpYSXBPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQm5aWFJNWVhsdmRYUkZiV0psWkdScGJtZHpLR2x6T2lCdWRXMWlaWEpiWFN3Z2FuTTZJRzUxYldKbGNsdGRMQ0JqYkhWemRHVnlPaUJ1ZFcxaVpYSmJYU2tnZTF4dUlDQmpiMjV6ZENCbGJXSmxaRmdnUFNCdVpYY2dSbXh2WVhRek1rRnljbUY1S0dOc2RYTjBaWEl1YkdWdVozUm9LUzVtYVd4c0tEQXBMbTFoY0Nnb0tTQTlQaUJOWVhSb0xuSmhibVJ2YlNncElDb2dNVEFwTzF4dUlDQmpiMjV6ZENCbGJXSmxaRmtnUFNCdVpYY2dSbXh2WVhRek1rRnljbUY1S0dOc2RYTjBaWEl1YkdWdVozUm9LUzVtYVd4c0tEQXBMbTFoY0Nnb0tTQTlQaUJOWVhSb0xuSmhibVJ2YlNncElDb2dNVEFwTzF4dUlDQmpiMjV6ZENCcGRHVnlZWFJwYjI1eklEMGdNVEF3TzF4dUlDQmpiMjV6ZENCNFZtVnNiMk5wZEdsbGN5QTlJRzVsZHlCR2JHOWhkRE15UVhKeVlYa29ZMngxYzNSbGNpNXNaVzVuZEdncExtWnBiR3dvTUNrN1hHNGdJR052Ym5OMElIbFdaV3h2WTJsMGFXVnpJRDBnYm1WM0lFWnNiMkYwTXpKQmNuSmhlU2hqYkhWemRHVnlMbXhsYm1kMGFDa3VabWxzYkNnd0tUdGNiaUFnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCcGRHVnlZWFJwYjI1ek95QnBLeXNwSUh0Y2JpQWdJQ0JqYjI1emRDQjBaVzF3WlhKaGRIVnlaU0E5SUNneElDMGdhU0F2SUdsMFpYSmhkR2x2Ym5NcE8xeHVJQ0FnSUhoV1pXeHZZMmwwYVdWekxtWnBiR3dvTUNrN1hHNGdJQ0FnZVZabGJHOWphWFJwWlhNdVptbHNiQ2d3S1R0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwWkhnZ1BTQXdPeUJwWkhnZ1BDQnBjeTVzWlc1bmRHZzdJR2xrZUNzcktTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCaElEMGdhWE5iYVdSNFhUdGNiaUFnSUNBZ0lHTnZibk4wSUdJZ1BTQnFjMXRwWkhoZE8xeHVJQ0FnSUNBZ1kyOXVjM1FnWkhnZ1BTQmxiV0psWkZoYllWMGdMU0JsYldKbFpGaGJZbDA3WEc0Z0lDQWdJQ0JqYjI1emRDQmtlU0E5SUdWdFltVmtXVnRoWFNBdElHVnRZbVZrV1Z0aVhUdGNiaUFnSUNBZ0lDOHZJQ0FnWTI5dWMzUWdaR2x6ZEdGdVkyVWdQU0JOWVhSb0xuTnhjblFvWkhnZ0tpQmtlQ0FySUdSNUlDb2daSGtwTzF4dUlDQWdJQ0FnTHk4Z0lDQmpiMjV6ZENCbVlXTjBiM0lnUFNBb1pHbHpkR0Z1WTJVZ0xTQXhLU0F2SUdScGMzUmhibU5sTzF4dUlDQWdJQ0FnTHk4Z0lDQmpiMjV6ZENCdlptWnpaWFJZSUQwZ1pIZ2dLaUJtWVdOMGIzSTdYRzRnSUNBZ0lDQXZMeUFnSUdOdmJuTjBJRzltWm5ObGRGa2dQU0JrZVNBcUlHWmhZM1J2Y2p0Y2JpQWdJQ0FnSUdsbUlDaE5ZWFJvTG1GaWN5aGtlQ2tnUGowZ01Ta2dlMXh1SUNBZ0lDQWdJQ0I0Vm1Wc2IyTnBkR2xsYzF0aFhTQXRQU0IwWlcxd1pYSmhkSFZ5WlNBcUlHUjRPMXh1SUNBZ0lDQWdJQ0I0Vm1Wc2IyTnBkR2xsYzF0aVhTQXJQU0IwWlcxd1pYSmhkSFZ5WlNBcUlHUjRPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdhV1lnS0UxaGRHZ3VZV0p6S0dSNUtTQStQU0F4S1NCN1hHNGdJQ0FnSUNBZ0lIbFdaV3h2WTJsMGFXVnpXMkZkSUMwOUlIUmxiWEJsY21GMGRYSmxJQ29nWkhrN1hHNGdJQ0FnSUNBZ0lIbFdaV3h2WTJsMGFXVnpXMkpkSUNzOUlIUmxiWEJsY21GMGRYSmxJQ29nWkhrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnTHk4Z0lDQmxiV0psWkZsYllWMGdLejBnYjJabWMyVjBXU0FxSUhSbGJYQmxjbUYwZFhKbE8xeHVJQ0FnSUM4dklDQWdaVzFpWldSWlcySmRJQzA5SUc5bVpuTmxkRmtnS2lCMFpXMXdaWEpoZEhWeVpUdGNiaUFnSUNCOVhHNGdJQ0FnWm05eUlDaHNaWFFnYVdSNElEMGdNRHNnYVdSNElEd2dZMngxYzNSbGNpNXNaVzVuZEdnN0lHbGtlQ3NyS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0IyWldOVGFYcGxJRDBnVFdGMGFDNXpjWEowS0hoV1pXeHZZMmwwYVdWelcybGtlRjBnS2lCNFZtVnNiMk5wZEdsbGMxdHBaSGhkSUNzZ2VWWmxiRzlqYVhScFpYTmJhV1I0WFNBcUlIbFdaV3h2WTJsMGFXVnpXMmxrZUYwcE8xeHVJQ0FnSUNBZ2FXWWdLSFpsWTFOcGVtVWdQaUF3S1NCN1hHNGdJQ0FnSUNBZ0lHVnRZbVZrV0Z0cFpIaGRJQ3M5SUhoV1pXeHZZMmwwYVdWelcybGtlRjBnTHlCMlpXTlRhWHBsSUNvZ2RHVnRjR1Z5WVhSMWNtVTdYRzRnSUNBZ0lDQWdJR1Z0WW1Wa1dWdHBaSGhkSUNzOUlIbFdaV3h2WTJsMGFXVnpXMmxrZUYwZ0x5QjJaV05UYVhwbElDb2dkR1Z0Y0dWeVlYUjFjbVU3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnTHk4Z2JtOXliV0ZzYVhwbFhHNGdJR3hsZENCdGFXNVlJRDBnWlcxaVpXUllXekJkTzF4dUlDQnNaWFFnYldsdVdTQTlJR1Z0WW1Wa1dWc3dYVHRjYmlBZ2JHVjBJRzFoZUZnZ1BTQmxiV0psWkZoYk1GMDdYRzRnSUd4bGRDQnRZWGhaSUQwZ1pXMWlaV1JaV3pCZE8xeHVJQ0JtYjNJZ0tHeGxkQ0JwWkhnZ1BTQXhPeUJwWkhnZ1BDQmpiSFZ6ZEdWeUxteGxibWQwYURzZ2FXUjRLeXNwSUh0Y2JpQWdJQ0J0YVc1WUlEMGdUV0YwYUM1dGFXNG9iV2x1V0N3Z1pXMWlaV1JZVzJsa2VGMHBPMXh1SUNBZ0lHMXBibGtnUFNCTllYUm9MbTFwYmlodGFXNVpMQ0JsYldKbFpGbGJhV1I0WFNrN1hHNGdJQ0FnYldGNFdDQTlJRTFoZEdndWJXRjRLRzFoZUZnc0lHVnRZbVZrV0Z0cFpIaGRLVHRjYmlBZ0lDQnRZWGhaSUQwZ1RXRjBhQzV0WVhnb2JXRjRXU3dnWlcxaVpXUlpXMmxrZUYwcE8xeHVJQ0I5WEc0Z0lHeGxkQ0J5WVc1blpWZ2dQU0J0WVhoWUlDMGdiV2x1V0R0Y2JpQWdiR1YwSUhKaGJtZGxXU0E5SUcxaGVGa2dMU0J0YVc1Wk8xeHVJQ0JwWmlBb2NtRnVaMlZZSUQwOVBTQXdLVnh1SUNBZ0lISmhibWRsV0NBOUlHMWhlRmc3WEc0Z0lHWnZjaUFvYkdWMElHbGtlQ0E5SURBN0lHbGtlQ0E4SUdOc2RYTjBaWEl1YkdWdVozUm9PeUJwWkhnckt5bGNiaUFnSUNCbGJXSmxaRmhiYVdSNFhTQTlJQ2hsYldKbFpGaGJhV1I0WFNBdElHMXBibGdwSUM4Z2NtRnVaMlZZSUM4Z01pQXJJREF1TlR0Y2JpQWdhV1lnS0hKaGJtZGxXU0E5UFQwZ01DbGNiaUFnSUNCeVlXNW5aVmtnUFNCdFlYaFpPMXh1SUNCbWIzSWdLR3hsZENCcFpIZ2dQU0F3T3lCcFpIZ2dQQ0JqYkhWemRHVnlMbXhsYm1kMGFEc2dhV1I0S3lzcFhHNGdJQ0FnWlcxaVpXUlpXMmxrZUYwZ1BTQW9aVzFpWldSWlcybGtlRjBnTFNCdGFXNVpLU0F2SUhKaGJtZGxXU0F2SURJZ0t5QXdMalU3WEc1Y2JpQWdjbVYwZFhKdUlIdGxiV0psWkZnc0lHVnRZbVZrV1gwN1hHNTlYRzRpWFgwPSIsImltcG9ydCB7IGJpb0xheW91dCB9IGZyb20gJy4vYmlvLWxheW91dCc7XG5leHBvcnQgY29uc3QgZGVmYXVsdE1DTE9wdGlvbnMgPSB7XG4gICAgZXhwYW5kRmFjdG9yOiAyLFxuICAgIG1heEl0ZXJhdGlvbnM6IDUsXG4gICAgaW5mbGF0ZUZhY3RvcjogMixcbiAgICBtdWx0RmFjdG9yOiAxLFxufTtcbmV4cG9ydCBjbGFzcyBNQ0xTcGFyc2VSZWR1Y2VyIHtcbiAgICBfb3B0aW9ucztcbiAgICBjb25zdHJ1Y3RvcihvcHRzID0ge30pIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHsgLi4uZGVmYXVsdE1DTE9wdGlvbnMsIC4uLm9wdHMgfTtcbiAgICB9XG4gICAgYXN5bmMgdHJhbnNmb3JtKHNwYXJzZU1hdHJpeCwgblJvd3MpIHtcbiAgICAgICAgLy8gdGVzdFdvcmtlck11bHRpcGx5KCk7XG4gICAgICAgIC8vIHJldHVybiBuZXcgSW50MzJBcnJheShuUm93cyk7XG4gICAgICAgIGxldCBzcGFyc2VPYmplY3QgPSB0aGlzLnRvT2JqZWN0Rm9ybShzcGFyc2VNYXRyaXgpO1xuICAgICAgICB0aGlzLmFkZExvb3BzKHNwYXJzZU9iamVjdCwgblJvd3MpO1xuICAgICAgICB0aGlzLm5vcm1hbGl6ZShzcGFyc2VPYmplY3QpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX29wdGlvbnMubWF4SXRlcmF0aW9uczsgaSsrKSB7XG4gICAgICAgICAgICBzcGFyc2VPYmplY3QgPSB0aGlzLmV4cGFuZChzcGFyc2VPYmplY3QsIG5Sb3dzKTtcbiAgICAgICAgICAgIHRoaXMuaW5mbGF0ZShzcGFyc2VPYmplY3QpO1xuICAgICAgICAgICAgdGhpcy5ub3JtYWxpemUoc3BhcnNlT2JqZWN0KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGNsdXN0ZXJzLCBpcywganMgfSA9IHRoaXMuYXNzaWduQ2x1c3RlcnMoc3BhcnNlT2JqZWN0LCBuUm93cyk7XG4gICAgICAgIHRoaXMuY29ycmVjdENsdXN0ZXJzKGNsdXN0ZXJzKTtcbiAgICAgICAgY29uc3QgZW1iZWRkaW5ncyA9IGF3YWl0IHRoaXMubGF5b3V0KGNsdXN0ZXJzLCBzcGFyc2VPYmplY3QsIG5Sb3dzKTtcbiAgICAgICAgcmV0dXJuIHsgY2x1c3RlcnMsIGVtYmVkWDogZW1iZWRkaW5ncy5lbWJlZFgsIGVtYmVkWTogZW1iZWRkaW5ncy5lbWJlZFksIGlzLCBqcyB9O1xuICAgIH1cbiAgICBjb3JyZWN0Q2x1c3RlcnMoY2x1c3RlcnMpIHtcbiAgICAgICAgY29uc3QgY2x1c3RlclNpemVNYXAgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBjbHVzdGVyIG9mIGNsdXN0ZXJzKSB7XG4gICAgICAgICAgICBpZiAoIWNsdXN0ZXJTaXplTWFwW2NsdXN0ZXJdKVxuICAgICAgICAgICAgICAgIGNsdXN0ZXJTaXplTWFwW2NsdXN0ZXJdID0gMDtcbiAgICAgICAgICAgIGNsdXN0ZXJTaXplTWFwW2NsdXN0ZXJdKys7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc29ydGVkSW5kZXhlcyA9IE9iamVjdC5rZXlzKGNsdXN0ZXJTaXplTWFwKS5tYXAoTnVtYmVyKS5zb3J0KChhLCBiKSA9PiBjbHVzdGVyU2l6ZU1hcFthXSAtIGNsdXN0ZXJTaXplTWFwW2JdKTtcbiAgICAgICAgY29uc3QgY2x1c3Rlck1hcCA9IHt9O1xuICAgICAgICBzb3J0ZWRJbmRleGVzLmZvckVhY2goKGNsdXN0ZXJJZHgsIGkpID0+IGNsdXN0ZXJNYXBbY2x1c3RlcklkeF0gPSBpICsgMSk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2x1c3RlcnMubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICBjbHVzdGVyc1tpXSA9IGNsdXN0ZXJNYXBbY2x1c3RlcnNbaV1dO1xuICAgICAgICAvLyBsZXQgY3VyQ2x1c3RlciA9IDE7XG4gICAgICAgIC8vIGZvciAobGV0IGkgPSAwOyBpIDwgY2x1c3RlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgLy8gICBpZiAoIWNsdXN0ZXJNYXBbY2x1c3RlcnNbaV1dKSB7XG4gICAgICAgIC8vICAgICBjbHVzdGVyTWFwW2NsdXN0ZXJzW2ldXSA9IGN1ckNsdXN0ZXI7XG4gICAgICAgIC8vICAgICBjbHVzdGVyc1tpXSA9IGN1ckNsdXN0ZXI7XG4gICAgICAgIC8vICAgICBjdXJDbHVzdGVyKys7XG4gICAgICAgIC8vICAgfSBlbHNlIHtcbiAgICAgICAgLy8gICAgIGNsdXN0ZXJzW2ldID0gY2x1c3Rlck1hcFtjbHVzdGVyc1tpXV07XG4gICAgICAgIC8vICAgfVxuICAgICAgICAvLyB9XG4gICAgfVxuICAgIGFzeW5jIGxheW91dChjbHVzdGVycywgc3BhcnNlTWF0cml4LCBuUm93cykge1xuICAgICAgICBjb25zdCBlbWJlZFggPSBuZXcgRmxvYXQzMkFycmF5KG5Sb3dzKS5maWxsKDApO1xuICAgICAgICBjb25zdCBlbWJlZFkgPSBuZXcgRmxvYXQzMkFycmF5KG5Sb3dzKS5maWxsKDApO1xuICAgICAgICBjb25zdCBjbHVzdGVyTWFwID0ge307XG4gICAgICAgIGNsdXN0ZXJzLmZvckVhY2goKGNsdXN0ZXIsIGkpID0+IHtcbiAgICAgICAgICAgIGlmICghY2x1c3Rlck1hcFtjbHVzdGVyXSlcbiAgICAgICAgICAgICAgICBjbHVzdGVyTWFwW2NsdXN0ZXJdID0gW107XG4gICAgICAgICAgICBjbHVzdGVyTWFwW2NsdXN0ZXJdLnB1c2goaSk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBjb25zdCBuQ2x1c3RlcnMgPSBPYmplY3Qua2V5cyhjbHVzdGVyTWFwKS5sZW5ndGg7XG4gICAgICAgIC8vIGNvbnN0IHBlclJvdyA9IE1hdGguZmxvb3IoTWF0aC5zcXJ0KG5DbHVzdGVycykpO1xuICAgICAgICBsZXQgY2x1c3Rlck51bSA9IDA7XG4gICAgICAgIGNvbnN0IHNvcnRlZENsdXN0ZXJOYW1lcyA9IE9iamVjdC5rZXlzKGNsdXN0ZXJNYXApO1xuICAgICAgICBzb3J0ZWRDbHVzdGVyTmFtZXMuc29ydCgoYSwgYikgPT4gY2x1c3Rlck1hcFtiXS5sZW5ndGggLSBjbHVzdGVyTWFwW2FdLmxlbmd0aCk7XG4gICAgICAgIGxldCBwZXJSb3cgPSA2O1xuICAgICAgICBsZXQgeU9mZnNldCA9IDA7XG4gICAgICAgIGNvbnN0IGxheW91dFNpemUgPSA1O1xuICAgICAgICBmb3IgKGNvbnN0IGNsdXN0ZXJOYW1lIG9mIHNvcnRlZENsdXN0ZXJOYW1lcykge1xuICAgICAgICAgICAgY29uc3QgY2x1c3RlciA9IGNsdXN0ZXJNYXBbY2x1c3Rlck5hbWVdO1xuICAgICAgICAgICAgY29uc3QgZW1iZWRkaW5ncyA9IGF3YWl0IGJpb0xheW91dChjbHVzdGVyLCBzcGFyc2VNYXRyaXgsIDAuMDAxKTtcbiAgICAgICAgICAgIGlmIChjbHVzdGVyTnVtID09PSBwZXJSb3cpIHtcbiAgICAgICAgICAgICAgICBjbHVzdGVyTnVtID0gMDtcbiAgICAgICAgICAgICAgICB5T2Zmc2V0ICs9IGxheW91dFNpemUgLyBwZXJSb3c7XG4gICAgICAgICAgICAgICAgcGVyUm93ID0gTWF0aC5jZWlsKHBlclJvdyAqIDEuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBvZmZzZXRYID0gKGNsdXN0ZXJOdW0gJSBwZXJSb3cpICogbGF5b3V0U2l6ZSAvIHBlclJvdztcbiAgICAgICAgICAgIC8vIGNvbnN0IG9mZnNldFkgPSBNYXRoLmZsb29yKGNsdXN0ZXJOdW0gLyBwZXJSb3cpICogMjtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZW1iZWRkaW5ncy5lbWJlZFgubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBlbWJlZFhbY2x1c3RlcltpXV0gPSBlbWJlZGRpbmdzLmVtYmVkWFtpXSAqIGxheW91dFNpemUgLyBwZXJSb3cgKyBvZmZzZXRYO1xuICAgICAgICAgICAgICAgIGVtYmVkWVtjbHVzdGVyW2ldXSA9IGVtYmVkZGluZ3MuZW1iZWRZW2ldICogbGF5b3V0U2l6ZSAvIHBlclJvdyArIHlPZmZzZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjbHVzdGVyTnVtKys7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgZW1iZWRYLCBlbWJlZFkgfTtcbiAgICB9XG4gICAgbWVyZ2VDbHVzdGVycyhjbHVzdGVycywgaSwgaikge1xuICAgICAgICBjb25zdCBpQ2x1c3RlciA9IGNsdXN0ZXJzW2ldO1xuICAgICAgICBjb25zdCBqQ2x1c3RlciA9IGNsdXN0ZXJzW2pdO1xuICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IGNsdXN0ZXJzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgICAgICBpZiAoY2x1c3RlcnNba10gPT09IGpDbHVzdGVyKVxuICAgICAgICAgICAgICAgIGNsdXN0ZXJzW2tdID0gaUNsdXN0ZXI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXNzaWduQ2x1c3RlcnMoc3BhcnNlTWF0cml4LCBuUm93cykge1xuICAgICAgICBsZXQgY2x1c3Rlck51bSA9IDA7XG4gICAgICAgIGNvbnN0IGlzID0gW107XG4gICAgICAgIGNvbnN0IGpzID0gW107XG4gICAgICAgIGNvbnN0IG9yZGVyID0gTWF0aC5mbG9vcihNYXRoLm1heChNYXRoLmxvZzEwKG5Sb3dzKSwgMikpICsgMTtcbiAgICAgICAgY29uc3QgbWluT3JkZXIgPSBNYXRoLnBvdygxMCwgb3JkZXIpO1xuICAgICAgICBjb25zdCBjbHVzdGVycyA9IG5ldyBBcnJheShuUm93cykuZmlsbCgtMSk7XG4gICAgICAgIGZvciAoY29uc3QgaSBvZiBPYmplY3Qua2V5cyhzcGFyc2VNYXRyaXgpKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGogb2YgT2JqZWN0LmtleXMoc3BhcnNlTWF0cml4W2ldKSkge1xuICAgICAgICAgICAgICAgIGlmIChNYXRoLnJvdW5kKHNwYXJzZU1hdHJpeFtpXVtqXSAqIG1pbk9yZGVyKSAvIG1pbk9yZGVyID4gMCAmJlxuICAgICAgICAgICAgICAgICAgICBzcGFyc2VNYXRyaXhbaV1bal0gIT09IE51bWJlcihpKSAmJiBOdW1iZXIoaikgPiBOdW1iZXIoaSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaXMucHVzaChOdW1iZXIoaSkpO1xuICAgICAgICAgICAgICAgICAgICBqcy5wdXNoKE51bWJlcihqKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjbHVzdGVyc1tOdW1iZXIoaSldICE9PSAtMSAmJiBjbHVzdGVyc1tOdW1iZXIoaildICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNsdXN0ZXJzW051bWJlcihpKV0gIT09IGNsdXN0ZXJzW051bWJlcihqKV0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXJnZUNsdXN0ZXJzKGNsdXN0ZXJzLCBOdW1iZXIoaSksIE51bWJlcihqKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY2x1c3RlcnNbTnVtYmVyKGkpXSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsdXN0ZXJzW051bWJlcihqKV0gPSBjbHVzdGVyc1tOdW1iZXIoaSldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNsdXN0ZXJzW051bWJlcihqKV0gIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbHVzdGVyc1tOdW1iZXIoaSldID0gY2x1c3RlcnNbTnVtYmVyKGopXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsdXN0ZXJOdW0rKztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsdXN0ZXJzW051bWJlcihpKV0gPSBjbHVzdGVyTnVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3RlcnNbTnVtYmVyKGopXSA9IGNsdXN0ZXJOdW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjbHVzdGVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGNsdXN0ZXJzW2ldID09PSAtMSkge1xuICAgICAgICAgICAgICAgIGNsdXN0ZXJOdW0rKztcbiAgICAgICAgICAgICAgICBjbHVzdGVyc1tpXSA9IGNsdXN0ZXJOdW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgY2x1c3RlcnMsIGlzLCBqcyB9O1xuICAgIH1cbiAgICB0b09iamVjdEZvcm0oc3BhcnNlTWF0cml4KSB7XG4gICAgICAgIGNvbnN0IHNwYXJzZU9iamVjdCA9IHt9O1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNwYXJzZU1hdHJpeC5pLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoIXNwYXJzZU9iamVjdFtzcGFyc2VNYXRyaXguaVtpXV0pXG4gICAgICAgICAgICAgICAgc3BhcnNlT2JqZWN0W3NwYXJzZU1hdHJpeC5pW2ldXSA9IHt9O1xuICAgICAgICAgICAgc3BhcnNlT2JqZWN0W3NwYXJzZU1hdHJpeC5pW2ldXVtzcGFyc2VNYXRyaXgualtpXV0gPSAxIC0gc3BhcnNlTWF0cml4LmRpc3RhbmNlW2ldO1xuICAgICAgICAgICAgaWYgKCFzcGFyc2VPYmplY3Rbc3BhcnNlTWF0cml4LmpbaV1dKVxuICAgICAgICAgICAgICAgIHNwYXJzZU9iamVjdFtzcGFyc2VNYXRyaXgualtpXV0gPSB7fTtcbiAgICAgICAgICAgIHNwYXJzZU9iamVjdFtzcGFyc2VNYXRyaXgualtpXV1bc3BhcnNlTWF0cml4LmlbaV1dID0gMSAtIHNwYXJzZU1hdHJpeC5kaXN0YW5jZVtpXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3BhcnNlT2JqZWN0O1xuICAgIH1cbiAgICBhZGRMb29wcyhzcGFyc2VPYmplY3QsIG5Sb3dzKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgblJvd3M7IGkrKykge1xuICAgICAgICAgICAgaWYgKCFzcGFyc2VPYmplY3RbaV0pXG4gICAgICAgICAgICAgICAgc3BhcnNlT2JqZWN0W2ldID0ge307XG4gICAgICAgICAgICBzcGFyc2VPYmplY3RbaV1baV0gPSB0aGlzLl9vcHRpb25zLm11bHRGYWN0b3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbm9ybWFsaXplKHNwYXJzZU9iamVjdCkge1xuICAgICAgICBmb3IgKGNvbnN0IGkgb2YgT2JqZWN0LmtleXMoc3BhcnNlT2JqZWN0KSkge1xuICAgICAgICAgICAgY29uc3Qgcm93ID0gc3BhcnNlT2JqZWN0W2ldO1xuICAgICAgICAgICAgbGV0IHN1bSA9IDA7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGogb2YgT2JqZWN0LmtleXMocm93KSlcbiAgICAgICAgICAgICAgICBzdW0gKz0gcm93W2pdO1xuICAgICAgICAgICAgaWYgKHN1bSA9PT0gMClcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaiBvZiBPYmplY3Qua2V5cyhyb3cpKVxuICAgICAgICAgICAgICAgIHNwYXJzZU9iamVjdFtpXVtqXSAvPSBzdW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgZXhwYW5kKHNwYXJzZU9iamVjdCwgblJvd3MpIHtcbiAgICAgICAgY29uc3QgZXhwYW5kZWRPYmplY3QgPSB7fTtcbiAgICAgICAgY29uc3Qgb3JkZXIgPSBNYXRoLmZsb29yKE1hdGgubWF4KE1hdGgubG9nMTAoblJvd3MpLCAyKSkgKyAxO1xuICAgICAgICBjb25zdCBtaW5PcmRlciA9IE1hdGgucG93KDEwLCBvcmRlcik7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgblJvd3M7IGkrKykge1xuICAgICAgICAgICAgaWYgKCFzcGFyc2VPYmplY3RbaV0pXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAvLyBjb25zdCByb3cgPSBzcGFyc2VPYmplY3RbaV07XG4gICAgICAgICAgICBleHBhbmRlZE9iamVjdFtpXSA9IHt9O1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IGk7IGogPCBuUm93czsgaisrKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzcGFyc2VPYmplY3RbaV0/LltqXSlcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsID0gdGhpcy5nZXRFeHBhbmRWYWx1ZShzcGFyc2VPYmplY3QsIGksIGopOyAvL3BydW5pbmcgc3RlcFxuICAgICAgICAgICAgICAgIGlmIChNYXRoLnJvdW5kKHZhbCAqIG1pbk9yZGVyKSAvIG1pbk9yZGVyID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBleHBhbmRlZE9iamVjdFtpXVtqXSA9IHZhbDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFleHBhbmRlZE9iamVjdFtqXSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZGVkT2JqZWN0W2pdID0ge307XG4gICAgICAgICAgICAgICAgICAgIGV4cGFuZGVkT2JqZWN0W2pdW2ldID0gdmFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZXhwYW5kZWRPYmplY3Q7XG4gICAgfVxuICAgIC8vIHByaXZhdGUgcHJ1bmUocm93OiBTcGFyc2VNYXRyaXhPYmplY3RbbnVtYmVyXSkge1xuICAgIC8vIH1cbiAgICBpbmZsYXRlKHNwYXJzZU9iamVjdCkge1xuICAgICAgICBmb3IgKGNvbnN0IGkgb2YgT2JqZWN0LmtleXMoc3BhcnNlT2JqZWN0KSkge1xuICAgICAgICAgICAgY29uc3Qgcm93ID0gc3BhcnNlT2JqZWN0W2ldO1xuICAgICAgICAgICAgZm9yIChjb25zdCBqIG9mIE9iamVjdC5rZXlzKHJvdykpXG4gICAgICAgICAgICAgICAgc3BhcnNlT2JqZWN0W2ldW2pdID0gTWF0aC5wb3coc3BhcnNlT2JqZWN0W2ldW2pdLCB0aGlzLl9vcHRpb25zLmluZmxhdGVGYWN0b3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldEV4cGFuZFZhbHVlKHNwYXJzZU9iamVjdCwgaSwgaikge1xuICAgICAgICBsZXQgdmFsID0gMDtcbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4ZXMgPSBPYmplY3Qua2V5cyhzcGFyc2VPYmplY3RbaV0gPz8ge30pO1xuICAgICAgICBjb25zdCBvdGhlckluZGV4ZXMgPSBPYmplY3Qua2V5cyhzcGFyc2VPYmplY3Rbal0gPz8ge30pO1xuICAgICAgICBmb3IgKGNvbnN0IGsgb2YgY3VycmVudEluZGV4ZXMpIHtcbiAgICAgICAgICAgIGlmIChvdGhlckluZGV4ZXMuaW5jbHVkZXMoaykpXG4gICAgICAgICAgICAgICAgdmFsICs9IHNwYXJzZU9iamVjdFtpXVtrXSAqIHNwYXJzZU9iamVjdFtqXVtrXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWJXRnlZMjkyTFdOc2RYTjBaWEl1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SnRZWEpqYjNZdFkyeDFjM1JsY2k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkRRU3hQUVVGUExFVkJRVU1zVTBGQlV5eEZRVUZETEUxQlFVMHNZMEZCWXl4RFFVRkRPMEZCUjNaRExFMUJRVTBzUTBGQlF5eE5RVUZOTEdsQ1FVRnBRaXhIUVVGbE8wbEJRek5ETEZsQlFWa3NSVUZCUlN4RFFVRkRPMGxCUTJZc1lVRkJZU3hGUVVGRkxFTkJRVU03U1VGRGFFSXNZVUZCWVN4RlFVRkZMRU5CUVVNN1NVRkRhRUlzVlVGQlZTeEZRVUZGTEVOQlFVTTdRMEZEWkN4RFFVRkRPMEZCUlVZc1RVRkJUU3hQUVVGUExHZENRVUZuUWp0SlFVTnVRaXhSUVVGUkxFTkJRV0U3U1VGRk4wSXNXVUZCV1N4UFFVRTBRaXhGUVVGRk8xRkJRM2hETEVsQlFVa3NRMEZCUXl4UlFVRlJMRWRCUVVjc1JVRkJReXhIUVVGSExHbENRVUZwUWl4RlFVRkZMRWRCUVVjc1NVRkJTU3hGUVVGRExFTkJRVU03U1VGRGJFUXNRMEZCUXp0SlFVVk5MRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zV1VGQlowTXNSVUZCUlN4TFFVRmhPMUZCUTNCRkxIZENRVUYzUWp0UlFVTjRRaXhuUTBGQlowTTdVVUZEYUVNc1NVRkJTU3haUVVGWkxFZEJRVWNzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRSUVVOdVJDeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRmxCUVZrc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU51UXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFGQlF6ZENMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExHRkJRV0VzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0WlFVTndSQ3haUVVGWkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRlpMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03V1VGRGFFUXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFpRVU16UWl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFOQlF6bENPMUZCUTBRc1RVRkJUU3hGUVVGRExGRkJRVkVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eFpRVUZaTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRjRVVzU1VGQlNTeERRVUZETEdWQlFXVXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRSUVVNdlFpeE5RVUZOTEZWQlFWVXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVVVGQlVTeEZRVUZGTEZsQlFWa3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVOd1JTeFBRVUZQTEVWQlFVTXNVVUZCVVN4RlFVRkZMRTFCUVUwc1JVRkJSU3hWUVVGVkxFTkJRVU1zVFVGQlRTeEZRVUZGTEUxQlFVMHNSVUZCUlN4VlFVRlZMRU5CUVVNc1RVRkJUU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVTXNRMEZCUXp0SlFVTnNSaXhEUVVGRE8wbEJSVThzWlVGQlpTeERRVUZETEZGQlFXdENPMUZCUTNoRExFMUJRVTBzWTBGQll5eEhRVUV3UWl4RlFVRkZMRU5CUVVNN1VVRkRha1FzUzBGQlN5eE5RVUZOTEU5QlFVOHNTVUZCU1N4UlFVRlJMRVZCUVVVN1dVRkRPVUlzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4UFFVRlBMRU5CUVVNN1owSkJRekZDTEdOQlFXTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03V1VGRE9VSXNZMEZCWXl4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFTkJRVU03VTBGRE0wSTdVVUZEUkN4TlFVRk5MR0ZCUVdFc1IwRkJSeXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1kwRkJZeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEY0Vnc1RVRkJUU3hWUVVGVkxFZEJRVEJDTEVWQlFVVXNRMEZCUXp0UlFVTTNReXhoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zVlVGQlZTeERRVUZETEZWQlFWVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU42UlN4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NVVUZCVVN4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVU3V1VGRGRFTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExGVkJRVlVzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVONFF5eHpRa0ZCYzBJN1VVRkRkRUlzT0VOQlFUaERPMUZCUXpsRExHOURRVUZ2UXp0UlFVTndReXcwUTBGQk5FTTdVVUZETlVNc1owTkJRV2RETzFGQlEyaERMRzlDUVVGdlFqdFJRVU53UWl4aFFVRmhPMUZCUTJJc05rTkJRVFpETzFGQlF6ZERMRTFCUVUwN1VVRkRUaXhKUVVGSk8wbEJRMDRzUTBGQlF6dEpRVVZQTEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1VVRkJhMElzUlVGQlJTeFpRVUZuUXl4RlFVRkZMRXRCUVdFN1VVRkRkRVlzVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4WlFVRlpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXk5RExFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NXVUZCV1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTXZReXhOUVVGTkxGVkJRVlVzUjBGQk5FSXNSVUZCUlN4RFFVRkRPMUZCUXk5RExGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3V1VGRE9VSXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhQUVVGUExFTkJRVU03WjBKQlEzUkNMRlZCUVZVc1EwRkJReXhQUVVGUExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTTdXVUZETTBJc1ZVRkJWU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVNNVFpeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTklMRzlFUVVGdlJEdFJRVU53UkN4dFJFRkJiVVE3VVVGRGJrUXNTVUZCU1N4VlFVRlZMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMjVDTEUxQlFVMHNhMEpCUVd0Q0xFZEJRVWNzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRSUVVOdVJDeHJRa0ZCYTBJc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlVTeERRVUZETEVOQlFVTXNUVUZCVFN4SFFVRkhMRlZCUVZVc1EwRkJReXhEUVVGUkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTTNSaXhKUVVGSkxFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZGWml4SlFVRkpMRTlCUVU4c1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGFFSXNUVUZCVFN4VlFVRlZMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRM0pDTEV0QlFVc3NUVUZCVFN4WFFVRlhMRWxCUVVrc2EwSkJRV3RDTEVWQlFVVTdXVUZETlVNc1RVRkJUU3hQUVVGUExFZEJRVWNzVlVGQlZTeERRVUZETEZkQlFXdENMRU5CUVVVc1EwRkJRenRaUVVOb1JDeE5RVUZOTEZWQlFWVXNSMEZCUnl4TlFVRk5MRk5CUVZNc1EwRkJReXhQUVVGUExFVkJRVVVzV1VGQldTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMWxCUTJwRkxFbEJRVWtzVlVGQlZTeExRVUZMTEUxQlFVMHNSVUZCUlR0blFrRkRla0lzVlVGQlZTeEhRVUZITEVOQlFVTXNRMEZCUXp0blFrRkRaaXhQUVVGUExFbEJRVWtzVlVGQlZTeEhRVUZITEUxQlFVMHNRMEZCUXp0blFrRkRMMElzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZETzJGQlEyeERPMWxCUTBRc1RVRkJUU3hQUVVGUExFZEJRVWNzUTBGQlF5eFZRVUZWTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWRCUVVjc1ZVRkJWU3hIUVVGSExFMUJRVTBzUTBGQlF6dFpRVU0xUkN4MVJFRkJkVVE3V1VGRmRrUXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEZWQlFWVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzJkQ1FVTnFSQ3hOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1ZVRkJWU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4VlFVRlZMRWRCUVVjc1RVRkJUU3hIUVVGSExFOUJRVThzUTBGQlF6dG5Ra0ZETVVVc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRlZCUVZVc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NWVUZCVlN4SFFVRkhMRTFCUVUwc1IwRkJSeXhQUVVGUExFTkJRVU03WVVGRE0wVTdXVUZEUkN4VlFVRlZMRVZCUVVVc1EwRkJRenRUUVVOa08xRkJRMFFzVDBGQlR5eEZRVUZETEUxQlFVMHNSVUZCUlN4TlFVRk5MRVZCUVVNc1EwRkJRenRKUVVNeFFpeERRVUZETzBsQlJVOHNZVUZCWVN4RFFVRkRMRkZCUVd0Q0xFVkJRVVVzUTBGQlV5eEZRVUZGTEVOQlFWTTdVVUZETlVRc1RVRkJUU3hSUVVGUkxFZEJRVWNzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXpkQ0xFMUJRVTBzVVVGQlVTeEhRVUZITEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVNM1FpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVVVGQlVTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRaUVVONFF5eEpRVUZKTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhSUVVGUk8yZENRVU14UWl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVVVGQlVTeERRVUZETzFOQlF6RkNPMGxCUTBnc1EwRkJRenRKUVVOTkxHTkJRV01zUTBGQlF5eFpRVUZuUXl4RlFVRkZMRXRCUVdFN1VVRkRia1VzU1VGQlNTeFZRVUZWTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTI1Q0xFMUJRVTBzUlVGQlJTeEhRVUZoTEVWQlFVVXNRMEZCUXp0UlFVTjRRaXhOUVVGTkxFVkJRVVVzUjBGQllTeEZRVUZGTEVOQlFVTTdVVUZEZUVJc1RVRkJUU3hMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZETjBRc1RVRkJUU3hSUVVGUkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGNrTXNUVUZCVFN4UlFVRlJMRWRCUVdFc1NVRkJTU3hMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGNrUXNTMEZCU3l4TlFVRk5MRU5CUVVNc1NVRkJTU3hOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RlFVRkZPMWxCUTNwRExFdEJRVXNzVFVGQlRTeERRVUZETEVsQlFVa3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlVTeERRVUZETEVOQlFVTXNSVUZCUlR0blFrRkRia1FzU1VGQlNTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZSTEVOQlFVTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1IwRkJSeXhSUVVGUkxFZEJRVWNzUTBGQlF6dHZRa0ZEZUVVc1dVRkJXU3hEUVVGRExFTkJRVkVzUTBGQlF5eERRVUZETEVOQlFWRXNRMEZCUXl4TFFVRkxMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTzI5Q1FVTjZSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVU51UWl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMjlDUVVOdVFpeEpRVUZKTEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNTVUZCU1N4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRVZCUVVVN2QwSkJRelZFTEVsQlFVa3NVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03TkVKQlF6ZERMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zVVVGQlVTeEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0eFFrRkRkRVE3ZVVKQlFVMHNTVUZCU1N4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRVZCUVVVN2QwSkJRM0pETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03Y1VKQlF6TkRPM2xDUVVGTkxFbEJRVWtzVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEZRVUZGTzNkQ1FVTnlReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPM0ZDUVVNelF6dDVRa0ZCVFR0M1FrRkRUQ3hWUVVGVkxFVkJRVVVzUTBGQlF6dDNRa0ZEWWl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRPM2RDUVVOcVF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVlVGQlZTeERRVUZETzNGQ1FVTnNRenRwUWtGRFJqdGhRVU5HTzFOQlEwWTdVVUZEUkN4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NVVUZCVVN4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdFpRVU4wUXl4SlFVRkpMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNSVUZCUlR0blFrRkRkRUlzVlVGQlZTeEZRVUZITEVOQlFVTTdaMEpCUTJRc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEZWQlFWVXNRMEZCUXp0aFFVTXhRanRUUVVOR08xRkJRMFFzVDBGQlR5eEZRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRExFTkJRVU03U1VGRE5VSXNRMEZCUXp0SlFVVk5MRmxCUVZrc1EwRkJReXhaUVVGblF6dFJRVU5zUkN4TlFVRk5MRmxCUVZrc1IwRkJlVU1zUlVGQlJTeERRVUZETzFGQlF6bEVMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0WlFVTTVReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlEyeERMRmxCUVZrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRE8xbEJRM1pETEZsQlFWa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEyeEdMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRGJFTXNXVUZCV1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNN1dVRkRka01zV1VGQldTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VTBGRGJrWTdVVUZEUkN4UFFVRlBMRmxCUVZrc1EwRkJRenRKUVVOMFFpeERRVUZETzBsQlJVOHNVVUZCVVN4RFFVRkRMRmxCUVdkRExFVkJRVVVzUzBGQllUdFJRVU01UkN4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NTMEZCU3l4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xbEJRemxDTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU5zUWl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETzFsQlEzWkNMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExGVkJRVlVzUTBGQlF6dFRRVU12UXp0SlFVTklMRU5CUVVNN1NVRkZUeXhUUVVGVExFTkJRVU1zV1VGQlowTTdVVUZEYUVRc1MwRkJTeXhOUVVGTkxFTkJRVU1zU1VGQlNTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhGUVVGRk8xbEJRM3BETEUxQlFVMHNSMEZCUnl4SFFVRkhMRmxCUVZrc1EwRkJReXhEUVVGUkxFTkJRVU1zUTBGQlF6dFpRVU51UXl4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU03V1VGRFdpeExRVUZMTEUxQlFVMHNRMEZCUXl4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETzJkQ1FVTTVRaXhIUVVGSExFbEJRVWtzUjBGQlJ5eERRVUZETEVOQlFWRXNRMEZCUXl4RFFVRkRPMWxCUTNaQ0xFbEJRVWtzUjBGQlJ5eExRVUZMTEVOQlFVTTdaMEpCUVVVc1UwRkJVenRaUVVONFFpeExRVUZMTEUxQlFVMHNRMEZCUXl4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETzJkQ1FVTTVRaXhaUVVGWkxFTkJRVU1zUTBGQlVTeERRVUZETEVOQlFVTXNRMEZCVVN4RFFVRkRMRWxCUVVrc1IwRkJSeXhEUVVGRE8xTkJRek5ETzBsQlEwZ3NRMEZCUXp0SlFVVlBMRTFCUVUwc1EwRkJReXhaUVVGblF5eEZRVUZGTEV0QlFXRTdVVUZETlVRc1RVRkJUU3hqUVVGakxFZEJRWFZDTEVWQlFVVXNRMEZCUXp0UlFVTTVReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTTNSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU55UXl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NTMEZCU3l4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xbEJRemxDTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU5zUWl4VFFVRlRPMWxCUTFnc0swSkJRU3RDTzFsQlF5OUNMR05CUVdNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTTdXVUZEZGtJc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRXRCUVVzc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdG5Ra0ZET1VJc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenR2UWtGRGRrSXNVMEZCVXp0blFrRkRXQ3hOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRmxCUVZrc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4alFVRmpPMmRDUVVOdVJTeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhIUVVGSExGRkJRVkVzUTBGQlF5eEhRVUZITEZGQlFWRXNSMEZCUnl4RFFVRkRMRVZCUVVVN2IwSkJRemRETEdOQlFXTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTTdiMEpCUXpOQ0xFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXl4RFFVRkRPM2RDUVVOd1FpeGpRVUZqTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRE8yOUNRVU42UWl4alFVRmpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRPMmxDUVVNMVFqdGhRVU5HTzFOQlEwWTdVVUZEUkN4UFFVRlBMR05CUVdNc1EwRkJRenRKUVVONFFpeERRVUZETzBsQlJVUXNiVVJCUVcxRU8wbEJSVzVFTEVsQlFVazdTVUZGU1N4UFFVRlBMRU5CUVVNc1dVRkJaME03VVVGRE9VTXNTMEZCU3l4TlFVRk5MRU5CUVVNc1NVRkJTU3hOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RlFVRkZPMWxCUTNwRExFMUJRVTBzUjBGQlJ5eEhRVUZITEZsQlFWa3NRMEZCUXl4RFFVRlJMRU5CUVVNc1EwRkJRenRaUVVOdVF5eExRVUZMTEUxQlFVMHNRMEZCUXl4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETzJkQ1FVTTVRaXhaUVVGWkxFTkJRVU1zUTBGQlVTeERRVUZETEVOQlFVTXNRMEZCVVN4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCVVN4RFFVRkRMRU5CUVVNc1EwRkJVU3hEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJRenRUUVVNNVJ6dEpRVU5JTEVOQlFVTTdTVUZGVHl4alFVRmpMRU5CUVVNc1dVRkJaME1zUlVGQlJTeERRVUZOTEVWQlFVVXNRMEZCVFR0UlFVTnlSU3hKUVVGSkxFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEV2l4TlFVRk5MR05CUVdNc1IwRkJSeXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU14UkN4TlFVRk5MRmxCUVZrc1IwRkJSeXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU40UkN4TFFVRkxMRTFCUVUwc1EwRkJReXhKUVVGSkxHTkJRV01zUlVGQlJUdFpRVU01UWl4SlFVRkpMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTXhRaXhIUVVGSExFbEJRVWtzV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVZFc1EwRkJReXhIUVVGSExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRlJMRU5CUVVNc1EwRkJRenRUUVVOb1JUdFJRVU5FTEU5QlFVOHNSMEZCUnl4RFFVRkRPMGxCUTJJc1EwRkJRenREUVVOR0lpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIdFRjR0Z5YzJWTllYUnlhWGhTWlhOMWJIUjlJR1p5YjIwZ0p5NHVMMlJwYzNSaGJtTmxMVzFoZEhKcGVDOXpjR0Z5YzJVdGJXRjBjbWw0TFhObGNuWnBZMlVuTzF4dWFXMXdiM0owSUh0aWFXOU1ZWGx2ZFhSOUlHWnliMjBnSnk0dlltbHZMV3hoZVc5MWRDYzdYRzVwYlhCdmNuUWdlMDFEVEU5d2RHbHZibk1zSUZOd1lYSnpaVTFoZEhKcGVFOWlhbVZqZEgwZ1puSnZiU0FuTGk5MGVYQmxjeWM3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JrWldaaGRXeDBUVU5NVDNCMGFXOXVjem9nVFVOTVQzQjBhVzl1Y3lBOUlIdGNiaUFnWlhod1lXNWtSbUZqZEc5eU9pQXlMRnh1SUNCdFlYaEpkR1Z5WVhScGIyNXpPaUExTEZ4dUlDQnBibVpzWVhSbFJtRmpkRzl5T2lBeUxGeHVJQ0J0ZFd4MFJtRmpkRzl5T2lBeExGeHVmVHRjYmx4dVpYaHdiM0owSUdOc1lYTnpJRTFEVEZOd1lYSnpaVkpsWkhWalpYSWdlMXh1SUNCd2NtbDJZWFJsSUY5dmNIUnBiMjV6T2lCTlEweFBjSFJwYjI1ek8xeHVYRzRnSUdOdmJuTjBjblZqZEc5eUtHOXdkSE02SUZCaGNuUnBZV3c4VFVOTVQzQjBhVzl1Y3o0Z1BTQjdmU2tnZTF4dUlDQWdJSFJvYVhNdVgyOXdkR2x2Ym5NZ1BTQjdMaTR1WkdWbVlYVnNkRTFEVEU5d2RHbHZibk1zSUM0dUxtOXdkSE45TzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdGemVXNWpJSFJ5WVc1elptOXliU2h6Y0dGeWMyVk5ZWFJ5YVhnNklGTndZWEp6WlUxaGRISnBlRkpsYzNWc2RDd2dibEp2ZDNNNklHNTFiV0psY2lrZ2UxeHVJQ0FnSUM4dklIUmxjM1JYYjNKclpYSk5kV3gwYVhCc2VTZ3BPMXh1SUNBZ0lDOHZJSEpsZEhWeWJpQnVaWGNnU1c1ME16SkJjbkpoZVNodVVtOTNjeWs3WEc0Z0lDQWdiR1YwSUhOd1lYSnpaVTlpYW1WamRDQTlJSFJvYVhNdWRHOVBZbXBsWTNSR2IzSnRLSE53WVhKelpVMWhkSEpwZUNrN1hHNGdJQ0FnZEdocGN5NWhaR1JNYjI5d2N5aHpjR0Z5YzJWUFltcGxZM1FzSUc1U2IzZHpLVHRjYmlBZ0lDQjBhR2x6TG01dmNtMWhiR2w2WlNoemNHRnljMlZQWW1wbFkzUXBPMXh1SUNBZ0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2dkR2hwY3k1ZmIzQjBhVzl1Y3k1dFlYaEpkR1Z5WVhScGIyNXpPeUJwS3lzcElIdGNiaUFnSUNBZ0lITndZWEp6WlU5aWFtVmpkQ0E5SUhSb2FYTXVaWGh3WVc1a0tITndZWEp6WlU5aWFtVmpkQ3dnYmxKdmQzTXBPMXh1SUNBZ0lDQWdkR2hwY3k1cGJtWnNZWFJsS0hOd1lYSnpaVTlpYW1WamRDazdYRzRnSUNBZ0lDQjBhR2x6TG01dmNtMWhiR2w2WlNoemNHRnljMlZQWW1wbFkzUXBPMXh1SUNBZ0lIMWNiaUFnSUNCamIyNXpkQ0I3WTJ4MWMzUmxjbk1zSUdsekxDQnFjMzBnUFNCMGFHbHpMbUZ6YzJsbmJrTnNkWE4wWlhKektITndZWEp6WlU5aWFtVmpkQ3dnYmxKdmQzTXBPMXh1SUNBZ0lIUm9hWE11WTI5eWNtVmpkRU5zZFhOMFpYSnpLR05zZFhOMFpYSnpLVHRjYmlBZ0lDQmpiMjV6ZENCbGJXSmxaR1JwYm1keklEMGdZWGRoYVhRZ2RHaHBjeTVzWVhsdmRYUW9ZMngxYzNSbGNuTXNJSE53WVhKelpVOWlhbVZqZEN3Z2JsSnZkM01wTzF4dUlDQWdJSEpsZEhWeWJpQjdZMngxYzNSbGNuTXNJR1Z0WW1Wa1dEb2daVzFpWldSa2FXNW5jeTVsYldKbFpGZ3NJR1Z0WW1Wa1dUb2daVzFpWldSa2FXNW5jeTVsYldKbFpGa3NJR2x6TENCcWMzMDdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR052Y25KbFkzUkRiSFZ6ZEdWeWN5aGpiSFZ6ZEdWeWN6b2diblZ0WW1WeVcxMHBJSHRjYmlBZ0lDQmpiMjV6ZENCamJIVnpkR1Z5VTJsNlpVMWhjRG9nZTF0Zk9pQnVkVzFpWlhKZE9pQnVkVzFpWlhKOUlEMGdlMzA3WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0JqYkhWemRHVnlJRzltSUdOc2RYTjBaWEp6S1NCN1hHNGdJQ0FnSUNCcFppQW9JV05zZFhOMFpYSlRhWHBsVFdGd1cyTnNkWE4wWlhKZEtWeHVJQ0FnSUNBZ0lDQmpiSFZ6ZEdWeVUybDZaVTFoY0Z0amJIVnpkR1Z5WFNBOUlEQTdYRzRnSUNBZ0lDQmpiSFZ6ZEdWeVUybDZaVTFoY0Z0amJIVnpkR1Z5WFNzck8xeHVJQ0FnSUgxY2JpQWdJQ0JqYjI1emRDQnpiM0owWldSSmJtUmxlR1Z6SUQwZ1QySnFaV04wTG10bGVYTW9ZMngxYzNSbGNsTnBlbVZOWVhBcExtMWhjQ2hPZFcxaVpYSXBMbk52Y25Rb0tHRXNJR0lwSUQwK0lHTnNkWE4wWlhKVGFYcGxUV0Z3VzJGZElDMGdZMngxYzNSbGNsTnBlbVZOWVhCYllsMHBPMXh1SUNBZ0lHTnZibk4wSUdOc2RYTjBaWEpOWVhBNklIdGJYem9nYm5WdFltVnlYVG9nYm5WdFltVnlmU0E5SUh0OU8xeHVJQ0FnSUhOdmNuUmxaRWx1WkdWNFpYTXVabTl5UldGamFDZ29ZMngxYzNSbGNrbGtlQ3dnYVNrZ1BUNGdZMngxYzNSbGNrMWhjRnRqYkhWemRHVnlTV1I0WFNBOUlHa2dLeUF4S1R0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUdOc2RYTjBaWEp6TG14bGJtZDBhRHNnYVNzcktWeHVJQ0FnSUNBZ1kyeDFjM1JsY25OYmFWMGdQU0JqYkhWemRHVnlUV0Z3VzJOc2RYTjBaWEp6VzJsZFhUdGNiaUFnSUNBdkx5QnNaWFFnWTNWeVEyeDFjM1JsY2lBOUlERTdYRzRnSUNBZ0x5OGdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0JqYkhWemRHVnljeTVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUM4dklDQWdhV1lnS0NGamJIVnpkR1Z5VFdGd1cyTnNkWE4wWlhKelcybGRYU2tnZTF4dUlDQWdJQzh2SUNBZ0lDQmpiSFZ6ZEdWeVRXRndXMk5zZFhOMFpYSnpXMmxkWFNBOUlHTjFja05zZFhOMFpYSTdYRzRnSUNBZ0x5OGdJQ0FnSUdOc2RYTjBaWEp6VzJsZElEMGdZM1Z5UTJ4MWMzUmxjanRjYmlBZ0lDQXZMeUFnSUNBZ1kzVnlRMngxYzNSbGNpc3JPMXh1SUNBZ0lDOHZJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQXZMeUFnSUNBZ1kyeDFjM1JsY25OYmFWMGdQU0JqYkhWemRHVnlUV0Z3VzJOc2RYTjBaWEp6VzJsZFhUdGNiaUFnSUNBdkx5QWdJSDFjYmlBZ0lDQXZMeUI5WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdGemVXNWpJR3hoZVc5MWRDaGpiSFZ6ZEdWeWN6b2diblZ0WW1WeVcxMHNJSE53WVhKelpVMWhkSEpwZURvZ1UzQmhjbk5sVFdGMGNtbDRUMkpxWldOMExDQnVVbTkzY3pvZ2JuVnRZbVZ5S1NCN1hHNGdJQ0FnWTI5dWMzUWdaVzFpWldSWUlEMGdibVYzSUVac2IyRjBNekpCY25KaGVTaHVVbTkzY3lrdVptbHNiQ2d3S1R0Y2JpQWdJQ0JqYjI1emRDQmxiV0psWkZrZ1BTQnVaWGNnUm14dllYUXpNa0Z5Y21GNUtHNVNiM2R6S1M1bWFXeHNLREFwTzF4dUlDQWdJR052Ym5OMElHTnNkWE4wWlhKTllYQTZJSHRiWHpvZ2JuVnRZbVZ5WFRvZ2JuVnRZbVZ5VzExOUlEMGdlMzA3WEc0Z0lDQWdZMngxYzNSbGNuTXVabTl5UldGamFDZ29ZMngxYzNSbGNpd2dhU2tnUFQ0Z2UxeHVJQ0FnSUNBZ2FXWWdLQ0ZqYkhWemRHVnlUV0Z3VzJOc2RYTjBaWEpkS1Z4dUlDQWdJQ0FnSUNCamJIVnpkR1Z5VFdGd1cyTnNkWE4wWlhKZElEMGdXMTA3WEc0Z0lDQWdJQ0JqYkhWemRHVnlUV0Z3VzJOc2RYTjBaWEpkTG5CMWMyZ29hU2s3WEc0Z0lDQWdmU2s3WEc0Z0lDQWdMeThnWTI5dWMzUWdia05zZFhOMFpYSnpJRDBnVDJKcVpXTjBMbXRsZVhNb1kyeDFjM1JsY2sxaGNDa3ViR1Z1WjNSb08xeHVJQ0FnSUM4dklHTnZibk4wSUhCbGNsSnZkeUE5SUUxaGRHZ3VabXh2YjNJb1RXRjBhQzV6Y1hKMEtHNURiSFZ6ZEdWeWN5a3BPMXh1SUNBZ0lHeGxkQ0JqYkhWemRHVnlUblZ0SUQwZ01EdGNiaUFnSUNCamIyNXpkQ0J6YjNKMFpXUkRiSFZ6ZEdWeVRtRnRaWE1nUFNCUFltcGxZM1F1YTJWNWN5aGpiSFZ6ZEdWeVRXRndLVHRjYmlBZ0lDQnpiM0owWldSRGJIVnpkR1Z5VG1GdFpYTXVjMjl5ZENnb1lTd2dZaWtnUFQ0Z1kyeDFjM1JsY2sxaGNGdGlJR0Z6SUdGdWVWMHViR1Z1WjNSb0lDMGdZMngxYzNSbGNrMWhjRnRoSUdGeklHRnVlVjB1YkdWdVozUm9LVHRjYmlBZ0lDQnNaWFFnY0dWeVVtOTNJRDBnTmp0Y2JseHVJQ0FnSUd4bGRDQjVUMlptYzJWMElEMGdNRHRjYmlBZ0lDQmpiMjV6ZENCc1lYbHZkWFJUYVhwbElEMGdOVHRjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR05zZFhOMFpYSk9ZVzFsSUc5bUlITnZjblJsWkVOc2RYTjBaWEpPWVcxbGN5a2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ1kyeDFjM1JsY2lBOUlHTnNkWE4wWlhKTllYQmJZMngxYzNSbGNrNWhiV1VnWVhNZ1lXNTVYU0U3WEc0Z0lDQWdJQ0JqYjI1emRDQmxiV0psWkdScGJtZHpJRDBnWVhkaGFYUWdZbWx2VEdGNWIzVjBLR05zZFhOMFpYSXNJSE53WVhKelpVMWhkSEpwZUN3Z01DNHdNREVwTzF4dUlDQWdJQ0FnYVdZZ0tHTnNkWE4wWlhKT2RXMGdQVDA5SUhCbGNsSnZkeWtnZTF4dUlDQWdJQ0FnSUNCamJIVnpkR1Z5VG5WdElEMGdNRHRjYmlBZ0lDQWdJQ0FnZVU5bVpuTmxkQ0FyUFNCc1lYbHZkWFJUYVhwbElDOGdjR1Z5VW05M08xeHVJQ0FnSUNBZ0lDQndaWEpTYjNjZ1BTQk5ZWFJvTG1ObGFXd29jR1Z5VW05M0lDb2dNUzQxS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdOdmJuTjBJRzltWm5ObGRGZ2dQU0FvWTJ4MWMzUmxjazUxYlNBbElIQmxjbEp2ZHlrZ0tpQnNZWGx2ZFhSVGFYcGxJQzhnY0dWeVVtOTNPMXh1SUNBZ0lDQWdMeThnWTI5dWMzUWdiMlptYzJWMFdTQTlJRTFoZEdndVpteHZiM0lvWTJ4MWMzUmxjazUxYlNBdklIQmxjbEp2ZHlrZ0tpQXlPMXh1WEc0Z0lDQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUdWdFltVmtaR2x1WjNNdVpXMWlaV1JZTG14bGJtZDBhRHNnYVNzcktTQjdYRzRnSUNBZ0lDQWdJR1Z0WW1Wa1dGdGpiSFZ6ZEdWeVcybGRYU0E5SUdWdFltVmtaR2x1WjNNdVpXMWlaV1JZVzJsZElDb2diR0Y1YjNWMFUybDZaU0F2SUhCbGNsSnZkeUFySUc5bVpuTmxkRmc3WEc0Z0lDQWdJQ0FnSUdWdFltVmtXVnRqYkhWemRHVnlXMmxkWFNBOUlHVnRZbVZrWkdsdVozTXVaVzFpWldSWlcybGRJQ29nYkdGNWIzVjBVMmw2WlNBdklIQmxjbEp2ZHlBcklIbFBabVp6WlhRN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCamJIVnpkR1Z5VG5WdEt5czdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUI3WlcxaVpXUllMQ0JsYldKbFpGbDlPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0J0WlhKblpVTnNkWE4wWlhKektHTnNkWE4wWlhKek9pQnVkVzFpWlhKYlhTd2dhVG9nYm5WdFltVnlMQ0JxT2lCdWRXMWlaWElwSUh0Y2JpQWdJQ0JqYjI1emRDQnBRMngxYzNSbGNpQTlJR05zZFhOMFpYSnpXMmxkTzF4dUlDQWdJR052Ym5OMElHcERiSFZ6ZEdWeUlEMGdZMngxYzNSbGNuTmJhbDA3WEc0Z0lDQWdabTl5SUNoc1pYUWdheUE5SURBN0lHc2dQQ0JqYkhWemRHVnljeTVzWlc1bmRHZzdJR3NyS3lrZ2UxeHVJQ0FnSUNBZ2FXWWdLR05zZFhOMFpYSnpXMnRkSUQwOVBTQnFRMngxYzNSbGNpbGNiaUFnSUNBZ0lDQWdZMngxYzNSbGNuTmJhMTBnUFNCcFEyeDFjM1JsY2p0Y2JpQWdJQ0I5WEc0Z0lIMWNiaUFnY0hWaWJHbGpJR0Z6YzJsbmJrTnNkWE4wWlhKektITndZWEp6WlUxaGRISnBlRG9nVTNCaGNuTmxUV0YwY21sNFQySnFaV04wTENCdVVtOTNjem9nYm5WdFltVnlLU0I3WEc0Z0lDQWdiR1YwSUdOc2RYTjBaWEpPZFcwZ1BTQXdPMXh1SUNBZ0lHTnZibk4wSUdsek9pQnVkVzFpWlhKYlhTQTlJRnRkTzF4dUlDQWdJR052Ym5OMElHcHpPaUJ1ZFcxaVpYSmJYU0E5SUZ0ZE8xeHVJQ0FnSUdOdmJuTjBJRzl5WkdWeUlEMGdUV0YwYUM1bWJHOXZjaWhOWVhSb0xtMWhlQ2hOWVhSb0xteHZaekV3S0c1U2IzZHpLU3dnTWlrcElDc2dNVHRjYmlBZ0lDQmpiMjV6ZENCdGFXNVBjbVJsY2lBOUlFMWhkR2d1Y0c5M0tERXdMQ0J2Y21SbGNpazdYRzRnSUNBZ1kyOXVjM1FnWTJ4MWMzUmxjbk02SUc1MWJXSmxjbHRkSUQwZ2JtVjNJRUZ5Y21GNUtHNVNiM2R6S1M1bWFXeHNLQzB4S1R0Y2JpQWdJQ0JtYjNJZ0tHTnZibk4wSUdrZ2IyWWdUMkpxWldOMExtdGxlWE1vYzNCaGNuTmxUV0YwY21sNEtTa2dlMXh1SUNBZ0lDQWdabTl5SUNoamIyNXpkQ0JxSUc5bUlFOWlhbVZqZEM1clpYbHpLSE53WVhKelpVMWhkSEpwZUZ0cElHRnpJR0Z1ZVYwcEtTQjdYRzRnSUNBZ0lDQWdJR2xtSUNoTllYUm9Mbkp2ZFc1a0tITndZWEp6WlUxaGRISnBlRnRwSUdGeklHRnVlVjFiYWlCaGN5QmhibmxkSUNvZ2JXbHVUM0prWlhJcElDOGdiV2x1VDNKa1pYSWdQaUF3SUNZbVhHNGdJQ0FnSUNBZ0lDQWdjM0JoY25ObFRXRjBjbWw0VzJrZ1lYTWdZVzU1WFZ0cUlHRnpJR0Z1ZVYwZ0lUMDlJRTUxYldKbGNpaHBLU0FtSmlCT2RXMWlaWElvYWlrZ1BpQk9kVzFpWlhJb2FTa3BJSHRjYmlBZ0lDQWdJQ0FnSUNCcGN5NXdkWE5vS0U1MWJXSmxjaWhwS1NrN1hHNGdJQ0FnSUNBZ0lDQWdhbk11Y0hWemFDaE9kVzFpWlhJb2Fpa3BPMXh1SUNBZ0lDQWdJQ0FnSUdsbUlDaGpiSFZ6ZEdWeWMxdE9kVzFpWlhJb2FTbGRJQ0U5UFNBdE1TQW1KaUJqYkhWemRHVnljMXRPZFcxaVpYSW9haWxkSUNFOVBTQXRNU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dOc2RYTjBaWEp6VzA1MWJXSmxjaWhwS1YwZ0lUMDlJR05zZFhOMFpYSnpXMDUxYldKbGNpaHFLVjBwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWJXVnlaMlZEYkhWemRHVnljeWhqYkhWemRHVnljeXdnVG5WdFltVnlLR2twTENCT2RXMWlaWElvYWlrcE8xeHVJQ0FnSUNBZ0lDQWdJSDBnWld4elpTQnBaaUFvWTJ4MWMzUmxjbk5iVG5WdFltVnlLR2twWFNBaFBUMGdMVEVwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05zZFhOMFpYSnpXMDUxYldKbGNpaHFLVjBnUFNCamJIVnpkR1Z5YzF0T2RXMWlaWElvYVNsZE8xeHVJQ0FnSUNBZ0lDQWdJSDBnWld4elpTQnBaaUFvWTJ4MWMzUmxjbk5iVG5WdFltVnlLR29wWFNBaFBUMGdMVEVwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05zZFhOMFpYSnpXMDUxYldKbGNpaHBLVjBnUFNCamJIVnpkR1Z5YzF0T2RXMWlaWElvYWlsZE8xeHVJQ0FnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamJIVnpkR1Z5VG5WdEt5czdYRzRnSUNBZ0lDQWdJQ0FnSUNCamJIVnpkR1Z5YzF0T2RXMWlaWElvYVNsZElEMGdZMngxYzNSbGNrNTFiVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnNkWE4wWlhKelcwNTFiV0psY2locUtWMGdQU0JqYkhWemRHVnlUblZ0TzF4dUlDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCbWIzSWdLR3hsZENCcFBUQTdJR2tnUENCamJIVnpkR1Z5Y3k1c1pXNW5kR2c3SUdrckt5a2dlMXh1SUNBZ0lDQWdhV1lnS0dOc2RYTjBaWEp6VzJsZElEMDlQU0F0TVNrZ2UxeHVJQ0FnSUNBZ0lDQmpiSFZ6ZEdWeVRuVnRJQ3NyTzF4dUlDQWdJQ0FnSUNCamJIVnpkR1Z5YzF0cFhTQTlJR05zZFhOMFpYSk9kVzA3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCN1kyeDFjM1JsY25Nc0lHbHpMQ0JxYzMwN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ2RHOVBZbXBsWTNSR2IzSnRLSE53WVhKelpVMWhkSEpwZURvZ1UzQmhjbk5sVFdGMGNtbDRVbVZ6ZFd4MEtUb2dVM0JoY25ObFRXRjBjbWw0VDJKcVpXTjBJSHRjYmlBZ0lDQmpiMjV6ZENCemNHRnljMlZQWW1wbFkzUTZJSHRiWHpvZ2JuVnRZbVZ5WFRvZ2UxdGZPaUJ1ZFcxaVpYSmRPaUJ1ZFcxaVpYSjlmU0E5SUh0OU8xeHVJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2MzQmhjbk5sVFdGMGNtbDRMbWt1YkdWdVozUm9PeUJwS3lzcElIdGNiaUFnSUNBZ0lHbG1JQ2doYzNCaGNuTmxUMkpxWldOMFczTndZWEp6WlUxaGRISnBlQzVwVzJsZFhTbGNiaUFnSUNBZ0lDQWdjM0JoY25ObFQySnFaV04wVzNOd1lYSnpaVTFoZEhKcGVDNXBXMmxkWFNBOUlIdDlPMXh1SUNBZ0lDQWdjM0JoY25ObFQySnFaV04wVzNOd1lYSnpaVTFoZEhKcGVDNXBXMmxkWFZ0emNHRnljMlZOWVhSeWFYZ3VhbHRwWFYwZ1BTQXhJQzBnYzNCaGNuTmxUV0YwY21sNExtUnBjM1JoYm1ObFcybGRPMXh1SUNBZ0lDQWdhV1lnS0NGemNHRnljMlZQWW1wbFkzUmJjM0JoY25ObFRXRjBjbWw0TG1wYmFWMWRLVnh1SUNBZ0lDQWdJQ0J6Y0dGeWMyVlBZbXBsWTNSYmMzQmhjbk5sVFdGMGNtbDRMbXBiYVYxZElEMGdlMzA3WEc0Z0lDQWdJQ0J6Y0dGeWMyVlBZbXBsWTNSYmMzQmhjbk5sVFdGMGNtbDRMbXBiYVYxZFczTndZWEp6WlUxaGRISnBlQzVwVzJsZFhTQTlJREVnTFNCemNHRnljMlZOWVhSeWFYZ3VaR2x6ZEdGdVkyVmJhVjA3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCemNHRnljMlZQWW1wbFkzUTdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR0ZrWkV4dmIzQnpLSE53WVhKelpVOWlhbVZqZERvZ1UzQmhjbk5sVFdGMGNtbDRUMkpxWldOMExDQnVVbTkzY3pvZ2JuVnRZbVZ5S1NCN1hHNGdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCdVVtOTNjenNnYVNzcktTQjdYRzRnSUNBZ0lDQnBaaUFvSVhOd1lYSnpaVTlpYW1WamRGdHBYU2xjYmlBZ0lDQWdJQ0FnYzNCaGNuTmxUMkpxWldOMFcybGRJRDBnZTMwN1hHNGdJQ0FnSUNCemNHRnljMlZQWW1wbFkzUmJhVjFiYVYwZ1BTQjBhR2x6TGw5dmNIUnBiMjV6TG0xMWJIUkdZV04wYjNJN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCdWIzSnRZV3hwZW1Vb2MzQmhjbk5sVDJKcVpXTjBPaUJUY0dGeWMyVk5ZWFJ5YVhoUFltcGxZM1FwSUh0Y2JpQWdJQ0JtYjNJZ0tHTnZibk4wSUdrZ2IyWWdUMkpxWldOMExtdGxlWE1vYzNCaGNuTmxUMkpxWldOMEtTa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2NtOTNJRDBnYzNCaGNuTmxUMkpxWldOMFcya2dZWE1nWVc1NVhUdGNiaUFnSUNBZ0lHeGxkQ0J6ZFcwZ1BTQXdPMXh1SUNBZ0lDQWdabTl5SUNoamIyNXpkQ0JxSUc5bUlFOWlhbVZqZEM1clpYbHpLSEp2ZHlrcFhHNGdJQ0FnSUNBZ0lITjFiU0FyUFNCeWIzZGJhaUJoY3lCaGJubGRPMXh1SUNBZ0lDQWdhV1lnS0hOMWJTQTlQVDBnTUNrZ1kyOXVkR2x1ZFdVN1hHNGdJQ0FnSUNCbWIzSWdLR052Ym5OMElHb2diMllnVDJKcVpXTjBMbXRsZVhNb2NtOTNLU2xjYmlBZ0lDQWdJQ0FnYzNCaGNuTmxUMkpxWldOMFcya2dZWE1nWVc1NVhWdHFJR0Z6SUdGdWVWMGdMejBnYzNWdE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1pYaHdZVzVrS0hOd1lYSnpaVTlpYW1WamREb2dVM0JoY25ObFRXRjBjbWw0VDJKcVpXTjBMQ0J1VW05M2N6b2diblZ0WW1WeUtTQjdYRzRnSUNBZ1kyOXVjM1FnWlhod1lXNWtaV1JQWW1wbFkzUTZJRk53WVhKelpVMWhkSEpwZUU5aWFtVmpkQ0E5SUh0OU8xeHVJQ0FnSUdOdmJuTjBJRzl5WkdWeUlEMGdUV0YwYUM1bWJHOXZjaWhOWVhSb0xtMWhlQ2hOWVhSb0xteHZaekV3S0c1U2IzZHpLU3dnTWlrcElDc2dNVHRjYmlBZ0lDQmpiMjV6ZENCdGFXNVBjbVJsY2lBOUlFMWhkR2d1Y0c5M0tERXdMQ0J2Y21SbGNpazdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnVVbTkzY3pzZ2FTc3JLU0I3WEc0Z0lDQWdJQ0JwWmlBb0lYTndZWEp6WlU5aWFtVmpkRnRwWFNsY2JpQWdJQ0FnSUNBZ1kyOXVkR2x1ZFdVN1hHNGdJQ0FnSUNBdkx5QmpiMjV6ZENCeWIzY2dQU0J6Y0dGeWMyVlBZbXBsWTNSYmFWMDdYRzRnSUNBZ0lDQmxlSEJoYm1SbFpFOWlhbVZqZEZ0cFhTQTlJSHQ5TzF4dUlDQWdJQ0FnWm05eUlDaHNaWFFnYWlBOUlHazdJR29nUENCdVVtOTNjenNnYWlzcktTQjdYRzRnSUNBZ0lDQWdJR2xtSUNnaGMzQmhjbk5sVDJKcVpXTjBXMmxkUHk1YmFsMHBYRzRnSUNBZ0lDQWdJQ0FnWTI5dWRHbHVkV1U3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSFpoYkNBOUlIUm9hWE11WjJWMFJYaHdZVzVrVm1Gc2RXVW9jM0JoY25ObFQySnFaV04wTENCcExDQnFLVHNnTHk5d2NuVnVhVzVuSUhOMFpYQmNiaUFnSUNBZ0lDQWdhV1lnS0UxaGRHZ3VjbTkxYm1Rb2RtRnNJQ29nYldsdVQzSmtaWElwSUM4Z2JXbHVUM0prWlhJZ1BpQXdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1pYaHdZVzVrWldSUFltcGxZM1JiYVYxYmFsMGdQU0IyWVd3N1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0NGbGVIQmhibVJsWkU5aWFtVmpkRnRxWFNsY2JpQWdJQ0FnSUNBZ0lDQWdJR1Y0Y0dGdVpHVmtUMkpxWldOMFcycGRJRDBnZTMwN1hHNGdJQ0FnSUNBZ0lDQWdaWGh3WVc1a1pXUlBZbXBsWTNSYmFsMWJhVjBnUFNCMllXdzdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUdWNGNHRnVaR1ZrVDJKcVpXTjBPMXh1SUNCOVhHNWNiaUFnTHk4Z2NISnBkbUYwWlNCd2NuVnVaU2h5YjNjNklGTndZWEp6WlUxaGRISnBlRTlpYW1WamRGdHVkVzFpWlhKZEtTQjdYRzVjYmlBZ0x5OGdmVnh1WEc0Z0lIQnlhWFpoZEdVZ2FXNW1iR0YwWlNoemNHRnljMlZQWW1wbFkzUTZJRk53WVhKelpVMWhkSEpwZUU5aWFtVmpkQ2tnZTF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYVNCdlppQlBZbXBsWTNRdWEyVjVjeWh6Y0dGeWMyVlBZbXBsWTNRcEtTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCeWIzY2dQU0J6Y0dGeWMyVlBZbXBsWTNSYmFTQmhjeUJoYm5sZE8xeHVJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQnFJRzltSUU5aWFtVmpkQzVyWlhsektISnZkeWtwWEc0Z0lDQWdJQ0FnSUhOd1lYSnpaVTlpYW1WamRGdHBJR0Z6SUdGdWVWMWJhaUJoY3lCaGJubGRJRDBnVFdGMGFDNXdiM2NvYzNCaGNuTmxUMkpxWldOMFcya2dZWE1nWVc1NVhWdHFJR0Z6SUdGdWVWMHNJSFJvYVhNdVgyOXdkR2x2Ym5NdWFXNW1iR0YwWlVaaFkzUnZjaWs3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JuWlhSRmVIQmhibVJXWVd4MVpTaHpjR0Z5YzJWUFltcGxZM1E2SUZOd1lYSnpaVTFoZEhKcGVFOWlhbVZqZEN3Z2FUb2dZVzU1TENCcU9pQmhibmtwSUh0Y2JpQWdJQ0JzWlhRZ2RtRnNJRDBnTUR0Y2JpQWdJQ0JqYjI1emRDQmpkWEp5Wlc1MFNXNWtaWGhsY3lBOUlFOWlhbVZqZEM1clpYbHpLSE53WVhKelpVOWlhbVZqZEZ0cFhTQS9QeUI3ZlNrN1hHNGdJQ0FnWTI5dWMzUWdiM1JvWlhKSmJtUmxlR1Z6SUQwZ1QySnFaV04wTG10bGVYTW9jM0JoY25ObFQySnFaV04wVzJwZElEOC9JSHQ5S1R0Y2JpQWdJQ0JtYjNJZ0tHTnZibk4wSUdzZ2IyWWdZM1Z5Y21WdWRFbHVaR1Y0WlhNcElIdGNiaUFnSUNBZ0lHbG1JQ2h2ZEdobGNrbHVaR1Y0WlhNdWFXNWpiSFZrWlhNb2F5a3BYRzRnSUNBZ0lDQWdJSFpoYkNBclBTQnpjR0Z5YzJWUFltcGxZM1JiYVYxYmF5QmhjeUJoYm5sZElDb2djM0JoY25ObFQySnFaV04wVzJwZFcyc2dZWE1nWVc1NVhUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSFpoYkR0Y2JpQWdmVnh1ZlZ4dVhHNGlYWDA9IiwiaW1wb3J0IHsgU3BhcnNlTWF0cml4U2VydmljZSB9IGZyb20gJy4uL2Rpc3RhbmNlLW1hdHJpeC9zcGFyc2UtbWF0cml4LXNlcnZpY2UnO1xuaW1wb3J0IHsgTUNMU3BhcnNlUmVkdWNlciB9IGZyb20gJy4vbWFyY292LWNsdXN0ZXInO1xub25tZXNzYWdlID0gYXN5bmMgKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgeyBkYXRhLCB0aHJlc2hvbGQsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kLCBkaXN0YW5jZUZuQXJncywgZGlzdGFuY2VGbnMsIG1heEl0ZXJhdGlvbnMgfSA9IGV2ZW50LmRhdGE7XG4gICAgY29uc3Qgc3BhcnNlID0gYXdhaXQgbmV3IFNwYXJzZU1hdHJpeFNlcnZpY2UoKVxuICAgICAgICAuY2FsY011bHRpQ29sdW1uKGRhdGEsIGRpc3RhbmNlRm5zLCB0aHJlc2hvbGQgLyAxMDAsIGRpc3RhbmNlRm5BcmdzLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgbmV3IE1DTFNwYXJzZVJlZHVjZXIoeyBtYXhJdGVyYXRpb25zOiBtYXhJdGVyYXRpb25zID8/IDUgfSkudHJhbnNmb3JtKHNwYXJzZSwgZGF0YVswXS5sZW5ndGgpO1xuICAgIHBvc3RNZXNzYWdlKHsgcmVzIH0pO1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWJXTnNMWGR2Y210bGNpNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW0xamJDMTNiM0pyWlhJdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUVzVDBGQlR5eEZRVUZETEcxQ1FVRnRRaXhGUVVGRExFMUJRVTBzTUVOQlFUQkRMRU5CUVVNN1FVRkhOMFVzVDBGQlR5eEZRVUZETEdkQ1FVRm5RaXhGUVVGRExFMUJRVTBzYTBKQlFXdENMRU5CUVVNN1FVRkZiRVFzVTBGQlV5eEhRVUZITEV0QlFVc3NSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkJSVHRKUVVNeFFpeE5RVUZOTEVWQlFVTXNTVUZCU1N4RlFVRkZMRk5CUVZNc1JVRkJSU3hQUVVGUExFVkJRVVVzYVVKQlFXbENMRVZCUVVVc1kwRkJZeXhGUVVGRkxGZEJRVmNzUlVGQlJTeGhRVUZoTEVWQlFVTXNSMEZIYUVJc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF6dEpRVU14Uml4TlFVRk5MRTFCUVUwc1IwRkJSeXhOUVVGTkxFbEJRVWtzYlVKQlFXMUNMRVZCUVVVN1UwRkRNME1zWlVGQlpTeERRVUZETEVsQlFVa3NSVUZCUlN4WFFVRlhMRVZCUVVVc1UwRkJVeXhIUVVGSExFZEJRVWNzUlVGQlJTeGpRVUZqTEVWQlFVVXNUMEZCVHl4RlFVRkZMR2xDUVVGcFFpeERRVUZETEVOQlFVTTdTVUZEYmtjc1RVRkJUU3hIUVVGSExFZEJRVWNzVFVGQlRTeEpRVUZKTEdkQ1FVRm5RaXhEUVVGRExFVkJRVU1zWVVGQllTeEZRVUZGTEdGQlFXRXNTVUZCU1N4RFFVRkRMRVZCUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzBsQlF6bEhMRmRCUVZjc1EwRkJReXhGUVVGRExFZEJRVWNzUlVGQlF5eERRVUZETEVOQlFVTTdRVUZEY2tJc1EwRkJReXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIdFRjR0Z5YzJWTllYUnlhWGhUWlhKMmFXTmxmU0JtY205dElDY3VMaTlrYVhOMFlXNWpaUzF0WVhSeWFYZ3ZjM0JoY25ObExXMWhkSEpwZUMxelpYSjJhV05sSnp0Y2JtbHRjRzl5ZENCN1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkgwZ1puSnZiU0FuTGk0dlpHbHpkR0Z1WTJVdGJXRjBjbWw0TDNSNWNHVnpKenRjYm1sdGNHOXlkQ0I3UzI1dmQyNU5aWFJ5YVdOemZTQm1jbTl0SUNjdUxpOTBlWEJsWkMxdFpYUnlhV056Snp0Y2JtbHRjRzl5ZENCN1RVTk1VM0JoY25ObFVtVmtkV05sY24wZ1puSnZiU0FuTGk5dFlYSmpiM1l0WTJ4MWMzUmxjaWM3WEc1Y2JtOXViV1Z6YzJGblpTQTlJR0Z6ZVc1aklDaGxkbVZ1ZENrZ1BUNGdlMXh1SUNCamIyNXpkQ0I3WkdGMFlTd2dkR2h5WlhOb2IyeGtMQ0IzWldsbmFIUnpMQ0JoWjJkeVpXZGhkR2x2YmsxbGRHaHZaQ3dnWkdsemRHRnVZMlZHYmtGeVozTXNJR1JwYzNSaGJtTmxSbTV6TENCdFlYaEpkR1Z5WVhScGIyNXpmVHBjYmlBZ0lIdGtZWFJoT2lCaGJubGJYVnRkTENCMGFISmxjMmh2YkdRNklHNTFiV0psY2l4Y2JpQWdJQ0IzWldsbmFIUnpPaUJ1ZFcxaVpYSmJYU3dnWVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlE2SUVScGMzUmhibU5sUVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlFzWEc0Z0lDQWdaR2x6ZEdGdVkyVkdibk02SUV0dWIzZHVUV1YwY21samMxdGRMQ0JrYVhOMFlXNWpaVVp1UVhKbmN6b2dZVzU1VzEwc0lHMWhlRWwwWlhKaGRHbHZibk02SUc1MWJXSmxjbjBnUFNCbGRtVnVkQzVrWVhSaE8xeHVJQ0JqYjI1emRDQnpjR0Z5YzJVZ1BTQmhkMkZwZENCdVpYY2dVM0JoY25ObFRXRjBjbWw0VTJWeWRtbGpaU2dwWEc0Z0lDQWdMbU5oYkdOTmRXeDBhVU52YkhWdGJpaGtZWFJoTENCa2FYTjBZVzVqWlVadWN5d2dkR2h5WlhOb2IyeGtJQzhnTVRBd0xDQmthWE4wWVc1alpVWnVRWEpuY3l3Z2QyVnBaMmgwY3l3Z1lXZG5jbVZuWVhScGIyNU5aWFJvYjJRcE8xeHVJQ0JqYjI1emRDQnlaWE1nUFNCaGQyRnBkQ0J1WlhjZ1RVTk1VM0JoY25ObFVtVmtkV05sY2loN2JXRjRTWFJsY21GMGFXOXVjem9nYldGNFNYUmxjbUYwYVc5dWN5QS9QeUExZlNrdWRISmhibk5tYjNKdEtITndZWEp6WlN3Z1pHRjBZVnN3WFM1c1pXNW5kR2dwTzF4dUlDQndiM04wVFdWemMyRm5aU2g3Y21WemZTazdYRzU5TzF4dUlsMTkiXSwibmFtZXMiOlsiRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMiLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwiY2h1bmtJZCIsImciLCJnbG9iYWxUaGlzIiwidGhpcyIsIkZ1bmN0aW9uIiwiZSIsIndpbmRvdyIsIm8iLCJvYmoiLCJwcm9wIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwic2NyaXB0VXJsIiwiaW1wb3J0U2NyaXB0cyIsImxvY2F0aW9uIiwiZG9jdW1lbnQiLCJjdXJyZW50U2NyaXB0Iiwic3JjIiwic2NyaXB0cyIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwibGVuZ3RoIiwiaSIsIkVycm9yIiwicmVwbGFjZSIsInAiLCJiIiwic2VsZiIsImlzTmlsIiwieCIsImluc2VydFNtYWxsZXIiLCJkaXN0YW5jZXNBciIsImluZGV4ZXMiLCJudW0iLCJpbmRleCIsIm5ld1Bvc2l0aW9uIiwiZmluZEluZGV4IiwidiIsInBvcCIsInNwbGljZSIsIlNwYXJzZU1hdHJpeFNlcnZpY2UiLCJfd29ya2VyQ291bnQiLCJjb25zdHJ1Y3RvciIsIk1hdGgiLCJtYXgiLCJuYXZpZ2F0b3IiLCJoYXJkd2FyZUNvbmN1cnJlbmN5IiwiY2FsY011bHRpQ29sdW1uIiwidmFsdWVzIiwiZm5OYW1lcyIsInRocmVzaG9sZCIsIm9wdHMiLCJ3ZWlnaHRzIiwiYWdncmVnYXRpb25NZXRob2QiLCJFVUNMSURFQU4iLCJtYXRTaXplIiwiY2h1bmtTaXplIiwiZmxvb3IiLCJtaW5UaHJlc2hvbGQiLCJnZXRNaW5pbWFsVGhyZXNob2xkIiwiY29uc29sZSIsImxvZyIsImZvckVhY2giLCJfIiwicHJvbWlzZXMiLCJBcnJheSIsIndvcmtlcnMiLCJmaWxsIiwibWFwIiwiV29ya2VyIiwiVVJMIiwiaWR4IiwiUHJvbWlzZSIsInJlc29sdmVXb3JrZXIiLCJyZWplY3RXb3JrZXIiLCJzdGFydElkeCIsImVuZElkeCIsIkludDMyQXJyYXkiLCJqIiwiZGlzdGFuY2UiLCJGbG9hdDMyQXJyYXkiLCJwb3N0TWVzc2FnZSIsIm9ubWVzc2FnZSIsImRhdGEiLCJlcnJvciIsInRlcm1pbmF0ZSIsInJlc3VsdHMiLCJhbGwiLCJmdWxsU2l6ZSIsInJlZHVjZSIsImFjYyIsInZhbCIsIm9mZnNldCIsInJlcyIsInNldCIsImNhbGMiLCJmbk5hbWUiLCJnZXRLTk4iLCJuTmVpZ2hib3VycyIsIm11bHRpQ29sdW1uS05OIiwiZ2V0VGhyZXNob2xkS05OIiwibXVsdGlDb2x1bW5UaHJlc2hvbGRLbm4iLCJzb21lIiwia25uRGlzdGFuY2VzIiwia25uSW5kZXhlcyIsImtublNpemVzIiwia25uUmVzIiwiZ2V0U2FtcGxlRGlzdGFuY2VzIiwidGhyZXNob2xkV29ya2VycyIsIm1heFNhbXBsZVNpemUiLCJzYW1wbGVTaXNlIiwibWluIiwidGVzdFNldFNpemVQZXJXb3JrZXIiLCJ0UHJvbWlzZXMiLCJzYW1wbGVMZW5ndGgiLCJzb3J0IiwidyIsImNhbGNTeW5jIiwiZGlzdGFuY2VGbiIsImRpc3RhbmNlcyIsImNudCIsIm1pIiwibWoiLCJ2YWx1ZSIsInB1c2giLCJhc3luYyIsImJpb0xheW91dCIsImNsdXN0ZXIiLCJzcGFyc2VPYmplY3QiLCJuIiwiaXMiLCJqcyIsImEiLCJlbWJlZFgiLCJyYW5kb20iLCJlbWJlZFkiLCJ4VmVsb2NpdGllcyIsInlWZWxvY2l0aWVzIiwidGVtcGVyYXR1cmUiLCJkeCIsImR5IiwiYWJzIiwidmVjU2l6ZSIsInNxcnQiLCJtaW5YIiwibWluWSIsIm1heFgiLCJtYXhZIiwicmFuZ2VYIiwicmFuZ2VZIiwiZ2V0TGF5b3V0RW1iZWRkaW5ncyIsImRlZmF1bHRNQ0xPcHRpb25zIiwiZXhwYW5kRmFjdG9yIiwibWF4SXRlcmF0aW9ucyIsImluZmxhdGVGYWN0b3IiLCJtdWx0RmFjdG9yIiwiTUNMU3BhcnNlUmVkdWNlciIsIl9vcHRpb25zIiwidHJhbnNmb3JtIiwic3BhcnNlTWF0cml4IiwiblJvd3MiLCJ0b09iamVjdEZvcm0iLCJhZGRMb29wcyIsIm5vcm1hbGl6ZSIsImV4cGFuZCIsImluZmxhdGUiLCJjbHVzdGVycyIsImFzc2lnbkNsdXN0ZXJzIiwiY29ycmVjdENsdXN0ZXJzIiwiZW1iZWRkaW5ncyIsImxheW91dCIsImNsdXN0ZXJTaXplTWFwIiwic29ydGVkSW5kZXhlcyIsImtleXMiLCJOdW1iZXIiLCJjbHVzdGVyTWFwIiwiY2x1c3RlcklkeCIsImNsdXN0ZXJOdW0iLCJzb3J0ZWRDbHVzdGVyTmFtZXMiLCJwZXJSb3ciLCJ5T2Zmc2V0IiwiY2x1c3Rlck5hbWUiLCJjZWlsIiwib2Zmc2V0WCIsIm1lcmdlQ2x1c3RlcnMiLCJpQ2x1c3RlciIsImpDbHVzdGVyIiwiayIsIm9yZGVyIiwibG9nMTAiLCJtaW5PcmRlciIsInBvdyIsInJvdW5kIiwicm93Iiwic3VtIiwiZXhwYW5kZWRPYmplY3QiLCJnZXRFeHBhbmRWYWx1ZSIsImN1cnJlbnRJbmRleGVzIiwib3RoZXJJbmRleGVzIiwiaW5jbHVkZXMiLCJldmVudCIsImRpc3RhbmNlRm5BcmdzIiwiZGlzdGFuY2VGbnMiLCJzcGFyc2UiXSwic291cmNlUm9vdCI6IiJ9
|