@datagrok/peptides 1.17.5 → 1.17.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/997.js CHANGED
@@ -1,2 +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
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);if(this._options.maxIterations>0){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===Math.ceil(h/1.5)&&(l=0,c+=5/h,h=Math.ceil(1.5*h));const u=l%h*5/h*1.5;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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOTk3LmpzIiwibWFwcGluZ3MiOiJvQ0FBVyxFQUNBQSxFQ0FQQyxFQUFzQixDQUcxQkEsRSxHQ0hBQSxFQUF5QkMsR0FFWkEsRUFBVSxPQ0h2QkQsRUFBb0JFLEVBQUksV0FDdkIsR0FBMEIsaUJBQWZDLFdBQXlCLE9BQU9BLFdBQzNDLElBQ0MsT0FBT0MsTUFBUSxJQUFJQyxTQUFTLGNBQWIsRUFDaEIsQ0FBRSxNQUFPQyxHQUNSLEdBQXNCLGlCQUFYQyxPQUFxQixPQUFPQSxNQUN4QyxDQUNBLENBUHVCLEdDQXhCUCxFQUFvQlEsRUFBSSxDQUFDQyxFQUFLQyxJQUFVQyxPQUFPQyxVQUFVQyxlQUFlQyxLQUFLTCxFQUFLQyxHLE1DQWxGLElBQUlLLEVBQ0FmLEVBQW9CRSxFQUFFYyxnQkFBZUQsRUFBWWYsRUFBb0JFLEVBQUVlLFNBQVcsSUFDdEYsSUFBSUMsRUFBV2xCLEVBQW9CRSxFQUFFZ0IsU0FDckMsSUFBS0gsR0FBYUcsSUFDYkEsRUFBU0MsZ0JBQ1pKLEVBQVlHLEVBQVNDLGNBQWNDLE1BQy9CTCxHQUFXLENBQ2YsSUFBSU0sRUFBVUgsRUFBU0kscUJBQXFCLFVBQzVDLEdBQUdELEVBQVFFLE9BRVYsSUFEQSxJQUFJQyxFQUFJSCxFQUFRRSxPQUFTLEVBQ2xCQyxHQUFLLElBQU1ULEdBQVdBLEVBQVlNLEVBQVFHLEtBQUtKLEdBRXhELENBSUQsSUFBS0wsRUFBVyxNQUFNLElBQUlVLE1BQU0seURBQ2hDVixFQUFZQSxFQUFVVyxRQUFRLE9BQVEsSUFBSUEsUUFBUSxRQUFTLElBQUlBLFFBQVEsWUFBYSxLQUNwRjFCLEVBQW9CMkIsRUFBSVosQyxLQ2xCeEJmLEVBQW9CNEIsRUFBSUMsS0FBS1osU0FBVyxJTkM3QmxCLEVBR1IsSUFBK0IsRUFBNkIsQ0FBQyxJQUZ0QixVQUFJLFlBQzFDQSxFQUFzQyxVQUFJLFlPRnZDLE1BQU0rQixFQUFTQyxHQUFNQSxRQUNyQixTQUFTQyxFQUFjQyxFQUFhQyxFQUFTQyxFQUFLQyxHQUNyRCxHQUFJRCxFQUFNRixFQUFZQSxFQUFZVixPQUFTLEdBQ3ZDLE9BQ0osTUFBTWMsRUFBY0osRUFBWUssV0FBV0MsR0FBTUosRUFBTUksSUFDdkROLEVBQVlPLE1BQ1pQLEVBQVlRLE9BQU9KLEVBQWEsRUFBR0YsR0FDbkNELEVBQVFNLE1BQ1JOLEVBQVFPLE9BQU9KLEVBQWEsRUFBR0QsRUFDbkMsQ0NSTyxNQUFNTSxFQUNUQyxhQUNBLFdBQUFDLEdBQ0l4QyxLQUFLdUMsYUFBZUUsS0FBS0MsSUFBSUMsVUFBVUMsb0JBQXNCLEVBQUcsRUFDcEUsQ0FDQSxxQkFBTUMsQ0FBZ0JDLEVBQVFDLEVBQVNDLEVBQVdDLEVBQU8sQ0FBQyxDQUFDLEdBQUlDLEVBQVUsQ0FBQyxHQUFJQyxFQUFvQixFQUEyQkMsV0FDekgsTUFBTUMsRUFBVVAsRUFBTyxHQUFHM0IsUUFBVTJCLEVBQU8sR0FBRzNCLE9BQVMsR0FBSyxFQUN0RG1DLEVBQVliLEtBQUtjLE1BQU1GLEVBQVVyRCxLQUFLdUMsY0FDdENpQixFQUFlVixFQUFPLEdBQUczQixPQUFTLFVBQzlCbkIsS0FBS3lELG9CQUFvQlgsRUFBUUMsRUFBU0UsRUFBTUMsRUFBU0MsR0FBcUIsRUFDcEZILEVBQVlRLElBQ1pFLFFBQVFDLElBQUksbUJBQW1CSCxLQUMvQlIsRUFBWVEsR0FFaEJQLEVBQUtXLFNBQVEsQ0FBQ0MsRUFBR3pDLElBQU02QixFQUFLN0IsR0FBYyxVQUFJNEIsSUFDOUMsTUFBTWMsRUFBVyxJQUFJQyxNQUFNL0QsS0FBS3VDLGNBQzFCeUIsRUFBVSxJQUFJRCxNQUFNL0QsS0FBS3VDLGNBQzFCMEIsS0FBSyxNQUFNQyxLQUFJLElBQU0sSUFBSUMsT0FBTyxJQUFJQyxJQUFJLG9CQUM3QyxJQUFLLElBQUlDLEVBQU0sRUFBR0EsRUFBTXJFLEtBQUt1QyxhQUFjOEIsSUFDdkNQLEVBQVNPLEdBQU8sSUFBSUMsU0FBUSxDQUFDQyxFQUFlQyxLQUN4QyxNQUFNQyxFQUFXSixFQUFNZixFQUNqQm9CLEVBQVNMLElBQVFyRSxLQUFLdUMsYUFBZSxFQUFJYyxHQUFXZ0IsRUFBTSxHQUFLZixFQUNqRW9CLEdBQVVELEdBQ1ZGLEVBQWMsQ0FBRW5ELEVBQUcsSUFBSXVELFdBQVcsR0FBSUMsRUFBRyxJQUFJRCxXQUFXLEdBQUlFLFNBQVUsSUFBSUMsYUFBYSxHQUFJVCxRQUMvRkwsRUFBUUssR0FBS1UsWUFBWSxDQUFFakMsU0FBUTJCLFdBQVVDLFNBQVExQixZQUFXRCxVQUFTRSxPQUFNQyxVQUFTQyxzQkFDeEZhLEVBQVFLLEdBQUtXLFVBQVksRUFBR0MsTUFBUUMsUUFBTzlELElBQUd3RCxJQUFHQyxnQkFDekNLLEdBQ0FsQixFQUFRSyxHQUFLYyxZQUNiWCxFQUFhVSxLQUdibEIsRUFBUUssR0FBS2MsWUFDYlosRUFBYyxDQUFFbkQsSUFBR3dELElBQUdDLFdBQVVSLFFBQ3BDLENBQ0gsSUFHVCxNQUFNZSxRQUFnQmQsUUFBUWUsSUFBSXZCLEdBQzVCd0IsRUFBV0YsRUFBUUcsUUFBTyxDQUFDQyxFQUFLQyxJQUFRRCxFQUFNQyxFQUFJckUsRUFBRUQsUUFBUSxHQUM1REMsRUFBSSxJQUFJdUQsV0FBV1csR0FDbkJWLEVBQUksSUFBSUQsV0FBV1csR0FDbkJULEVBQVcsSUFBSUMsYUFBYVEsR0FDbEMsSUFBSUksRUFBUyxFQUViLElBQUssTUFBTUMsS0FBT1AsRUFDZGhFLEVBQUV3RSxJQUFJRCxFQUFJdkUsRUFBR3NFLEdBQ2JkLEVBQUVnQixJQUFJRCxFQUFJZixFQUFHYyxHQUNiYixFQUFTZSxJQUFJRCxFQUFJZCxTQUFVYSxHQUMzQkEsR0FBVUMsRUFBSXZFLEVBQUVELE9BRXBCLE1BQU8sQ0FBRUMsSUFBR3dELElBQUdDLFdBQ25CLENBQ0EsVUFBTWdCLENBQUsvQyxFQUFRZ0QsRUFBUTlDLEVBQVdDLEVBQU8sQ0FBQyxHQUUxQyxhQUFhakQsS0FBSzZDLGdCQUFnQixDQUFDQyxHQUFTLENBQUNnRCxHQUFTOUMsRUFBVyxDQUFDQyxHQUFPLENBQUMsR0FDOUUsQ0FDQSxZQUFNOEMsQ0FBT2pELEVBQVFnRCxFQUFRRSxFQUFjLEdBQUkvQyxFQUFPLENBQUMsR0FDbkQsYUFBYWpELEtBQUtpRyxlQUFlLENBQUNuRCxHQUFTLENBQUNnRCxHQUFTRSxFQUFhLENBQUMvQyxHQUFPLENBQUMsR0FDL0UsQ0FDQSxxQkFBTWlELENBQWdCcEQsRUFBUWdELEVBQVE5QyxFQUFZLEdBQUtDLEVBQU8sQ0FBQyxHQUMzRCxhQUFhakQsS0FBS21HLHdCQUF3QixDQUFDckQsR0FBUyxDQUFDZ0QsR0FBUzlDLEVBQVcsQ0FBQ0MsR0FBTyxDQUFDLEdBQ3RGLENBQ0EsNkJBQU1rRCxDQUF3QnJELEVBQVFDLEVBQVNDLEVBQVksR0FBS0MsRUFBTUMsRUFBU0MsRUFBb0IsRUFBMkJDLFdBQzFILEdBQUlOLEVBQU8zQixTQUFXNEIsRUFBUTVCLFFBQVUyQixFQUFPM0IsU0FBVzhCLEVBQUs5QixRQUFVMkIsRUFBTzNCLFNBQVcrQixFQUFRL0IsT0FDL0YsTUFBTSxJQUFJRSxNQUFNLHNGQUNwQixHQUFJeUIsRUFBT3NELE1BQU1qRSxHQUFNQSxFQUFFaEIsU0FBVzJCLEVBQU8sR0FBRzNCLFNBQzFDLE1BQU0sSUFBSUUsTUFBTSxpREFDcEIsTUFBTWdDLEVBQVVQLEVBQU8sR0FBRzNCLFFBQVUyQixFQUFPLEdBQUczQixPQUFTLEdBQUssRUFDdERtQyxFQUFZYixLQUFLYyxNQUFNRixFQUFVckQsS0FBS3VDLGNBQ3RDdUIsRUFBVyxJQUFJQyxNQUFNL0QsS0FBS3VDLGNBQzFCeUIsRUFBVSxJQUFJRCxNQUFNL0QsS0FBS3VDLGNBQzFCMEIsS0FBSyxNQUFNQyxLQUFJLElBQU0sSUFBSUMsT0FBTyxJQUFJQyxJQUFJLHFCQUM3QyxJQUFLLElBQUlDLEVBQU0sRUFBR0EsRUFBTXJFLEtBQUt1QyxhQUFjOEIsSUFDdkNQLEVBQVNPLEdBQU8sSUFBSUMsU0FBUSxDQUFDQyxFQUFlQyxLQUN4QyxNQUFNQyxFQUFXSixFQUFNZixFQUNqQm9CLEVBQVNMLElBQVFyRSxLQUFLdUMsYUFBZSxFQUFJYyxHQUFXZ0IsRUFBTSxHQUFLZixFQUNqRW9CLEdBQVVELEdBQ1ZGLEVBQWMsQ0FBRThCLGFBQWMsSUFBSXRDLE1BQU0sR0FBSXVDLFdBQVksSUFBSXZDLE1BQU0sS0FDdEVDLEVBQVFLLEdBQUtVLFlBQVksQ0FBRWpDLFNBQVEyQixXQUFVQyxTQUFRM0IsVUFBU0UsT0FBTUQsWUFBV0UsVUFBU0Msc0JBQ3hGYSxFQUFRSyxHQUFLVyxVQUFZLEVBQUdDLE1BQVFDLFFBQU9tQixlQUFjQyxrQkFDakRwQixHQUNBbEIsRUFBUUssR0FBS2MsWUFDYlgsRUFBYVUsS0FHYmxCLEVBQVFLLEdBQUtjLFlBQ2JaLEVBQWMsQ0FBRThCLGVBQWNDLGVBQ2xDLENBQ0gsSUFHVCxNQUFNbEIsUUFBZ0JkLFFBQVFlLElBQUl2QixHQUM1QnlDLEVBQVcsSUFBSTVCLFdBQVc3QixFQUFPLEdBQUczQixRQUMxQyxJQUFLLE1BQU13RSxLQUFPUCxFQUNkLElBQUssSUFBSWhFLEVBQUksRUFBR0EsRUFBSTBCLEVBQU8sR0FBRzNCLFNBQVVDLEVBQ3BDbUYsRUFBU25GLElBQU11RSxFQUFJVyxXQUFXbEYsSUFBSUQsUUFBVSxFQUVwRCxNQUFNcUYsRUFBUyxDQUNYSCxhQUFjLElBQUl0QyxNQUFNakIsRUFBTyxHQUFHM0IsUUFBUThDLEtBQUssTUFBTUMsS0FBSSxDQUFDTCxFQUFHekMsSUFBTSxJQUFJMkMsTUFBTXdDLEVBQVNuRixNQUN0RmtGLFdBQVksSUFBSXZDLE1BQU1qQixFQUFPLEdBQUczQixRQUFROEMsS0FBSyxNQUFNQyxLQUFJLENBQUNMLEVBQUd6QyxJQUFNLElBQUkyQyxNQUFNd0MsRUFBU25GLE9BRXhGLElBQUssTUFBTXVFLEtBQU9QLEVBQ2QsSUFBSyxJQUFJaEUsRUFBSSxFQUFHQSxFQUFJMEIsRUFBTyxHQUFHM0IsU0FBVUMsRUFDcEMsSUFBSyxJQUFJd0QsRUFBSSxFQUFHQSxFQUFJZSxFQUFJVSxhQUFhakYsSUFBSUQsU0FBZXlELEVBQ3BENEIsRUFBT0gsYUFBYWpGLEdBQUdtRixFQUFTbkYsR0FBSyxHQUFLdUUsRUFBSVUsYUFBYWpGLEdBQUd3RCxHQUM5RDRCLEVBQU9GLFdBQVdsRixHQUFHbUYsRUFBU25GLEdBQUssR0FBS3VFLEVBQUlXLFdBQVdsRixHQUFHd0QsR0FDMUQyQixFQUFTbkYsSUFBTSxFQUkzQixPQUFPb0YsQ0FDWCxDQUNBLG9CQUFNUCxDQUFlbkQsRUFBUUMsRUFBU2lELEVBQWMsR0FBSS9DLEVBQU1DLEVBQVNDLEVBQW9CLEVBQTJCQyxXQUNsSCxHQUFJTixFQUFPM0IsU0FBVzRCLEVBQVE1QixRQUFVMkIsRUFBTzNCLFNBQVc4QixFQUFLOUIsUUFBVTJCLEVBQU8zQixTQUFXK0IsRUFBUS9CLE9BQy9GLE1BQU0sSUFBSUUsTUFBTSxzRkFDcEIsR0FBSXlCLEVBQU9zRCxNQUFNakUsR0FBTUEsRUFBRWhCLFNBQVcyQixFQUFPLEdBQUczQixTQUMxQyxNQUFNLElBQUlFLE1BQU0saURBQ3BCLE1BQU1nQyxFQUFVUCxFQUFPLEdBQUczQixRQUFVMkIsRUFBTyxHQUFHM0IsT0FBUyxHQUFLLEVBQ3REbUMsRUFBWWIsS0FBS2MsTUFBTUYsRUFBVXJELEtBQUt1QyxjQUN0Q3VCLEVBQVcsSUFBSUMsTUFBTS9ELEtBQUt1QyxjQUMxQnlCLEVBQVUsSUFBSUQsTUFBTS9ELEtBQUt1QyxjQUMxQjBCLEtBQUssTUFBTUMsS0FBSSxJQUFNLElBQUlDLE9BQU8sSUFBSUMsSUFBSSxxQkFDN0MsSUFBSyxJQUFJQyxFQUFNLEVBQUdBLEVBQU1yRSxLQUFLdUMsYUFBYzhCLElBQ3ZDUCxFQUFTTyxHQUFPLElBQUlDLFNBQVEsQ0FBQ0MsRUFBZUMsS0FDeEMsTUFBTUMsRUFBV0osRUFBTWYsRUFDakJvQixFQUFTTCxJQUFRckUsS0FBS3VDLGFBQWUsRUFBSWMsR0FBV2dCLEVBQU0sR0FBS2YsRUFDakVvQixHQUFVRCxHQUNWRixFQUFjLENBQUU4QixhQUFjLElBQUl0QyxNQUFNLEdBQUl1QyxXQUFZLElBQUl2QyxNQUFNLEtBQ3RFQyxFQUFRSyxHQUFLVSxZQUFZLENBQUVqQyxTQUFRMkIsV0FBVUMsU0FBUTNCLFVBQVNFLE9BQU0rQyxjQUFhOUMsVUFBU0Msc0JBQzFGYSxFQUFRSyxHQUFLVyxVQUFZLEVBQUdDLE1BQVFDLFFBQU9tQixlQUFjQyxrQkFDakRwQixHQUNBbEIsRUFBUUssR0FBS2MsWUFDYlgsRUFBYVUsS0FHYmxCLEVBQVFLLEdBQUtjLFlBQ2JaLEVBQWMsQ0FBRThCLGVBQWNDLGVBQ2xDLENBQ0gsSUFHVCxNQUFNbEIsUUFBZ0JkLFFBQVFlLElBQUl2QixHQUM1QjBDLEVBQVMsQ0FDWEgsYUFBYyxJQUFJdEMsTUFBTWpCLEVBQU8sR0FBRzNCLFFBQVE4QyxLQUFLLE1BQU1DLEtBQUksSUFBTSxJQUFJSCxNQUFNaUMsR0FBYS9CLEtBQUssU0FDM0ZxQyxXQUFZLElBQUl2QyxNQUFNakIsRUFBTyxHQUFHM0IsUUFBUThDLEtBQUssTUFBTUMsS0FBSSxJQUFNLElBQUlILE1BQU1pQyxHQUFhL0IsTUFBTSxNQUU5RixJQUFLLE1BQU0wQixLQUFPUCxFQUNkLElBQUssSUFBSWhFLEVBQUksRUFBR0EsRUFBSTBCLEVBQU8sR0FBRzNCLFNBQVVDLEVBQ3BDLElBQUssSUFBSXdELEVBQUksRUFBR0EsRUFBSWUsRUFBSVUsYUFBYWpGLElBQUlELFNBQWV5RCxFQUNwRGhELEVBQWM0RSxFQUFPSCxhQUFhakYsR0FBSW9GLEVBQU9GLFdBQVdsRixHQUFJdUUsRUFBSVUsYUFBYWpGLEdBQUd3RCxHQUFJZSxFQUFJVyxXQUFXbEYsR0FBR3dELElBR2xILE9BQU80QixDQUNYLENBQ0Esd0JBQU1DLENBQW1CM0QsRUFBUUMsRUFBU0UsRUFBTyxHQUFJQyxFQUFTQyxFQUFvQixFQUEyQkMsV0FDekcsTUFBTXNELEVBQW1CLElBQUkzQyxNQUFNL0QsS0FBS3VDLGNBQWMwQixLQUFLLE1BQ3REQyxLQUFJLElBQU0sSUFBSUMsT0FBTyxJQUFJQyxJQUFJLG9CQUNsQyxJQUNJLE1BQU1mLEVBQVVQLEVBQU8sR0FBRzNCLFFBQVUyQixFQUFPLEdBQUczQixPQUFTLEdBQUssRUFDdERtQyxFQUFZYixLQUFLYyxNQUFNRixFQUFVckQsS0FBS3VDLGNBQ3RDb0UsRUFBZ0IsSUFDaEJDLEVBQWFuRSxLQUFLQyxJQUFJRCxLQUFLb0UsSUFBSXhELEVBQVUsSUFBTXNELEdBQWdCbEUsS0FBS29FLElBQUl4RCxFQUFTc0QsSUFDakZHLEVBQXVCckUsS0FBS2MsTUFBTXFELEVBQWE1RyxLQUFLdUMsY0FDcER3RSxFQUFZLElBQUloRCxNQUFNL0QsS0FBS3VDLGNBQ2pDLElBQUssSUFBSThCLEVBQU0sRUFBR0EsRUFBTXJFLEtBQUt1QyxhQUFjOEIsSUFDdkMwQyxFQUFVMUMsR0FBTyxJQUFJQyxTQUFRLENBQUNDLEVBQWVDLEtBQ3pDLE1BQU1DLEVBQVdKLEVBQU1mLEVBQ2pCb0IsRUFBU0wsSUFBUXJFLEtBQUt1QyxhQUFlLEVBQUljLEdBQVdnQixFQUFNLEdBQUtmLEVBQ3JFb0QsRUFBaUJyQyxHQUFLVSxZQUFZLENBQzlCakMsT0FBUUEsRUFBUTJCLFdBQVVDLFNBQVFzQyxhQUFjRixFQUNoRC9ELFVBQVNFLE9BQU1DLFVBQVNDLHNCQUU1QnVELEVBQWlCckMsR0FBS1csVUFBWSxFQUFHQyxNQUFRQyxRQUFPTCxnQkFDaEQ2QixFQUFpQnJDLEdBQUtjLFlBQ2xCRCxFQUNBVixFQUFhVSxHQUViWCxFQUFjLENBQUVNLFlBQVcsQ0FDbEMsSUFHVCxNQUFNTyxRQUFnQmQsUUFBUWUsSUFBSTBCLEdBQzVCekIsRUFBV0YsRUFBUUcsUUFBTyxDQUFDQyxFQUFLQyxJQUFRRCxFQUFNQyxFQUFJWixTQUFTMUQsUUFBUSxHQUNuRTBELEVBQVcsSUFBSUMsYUFBYVEsR0FDbEMsSUFBSUksRUFBUyxFQUNiLElBQUssTUFBTUMsS0FBT1AsRUFDZFAsRUFBU2UsSUFBSUQsRUFBSWQsU0FBVWEsR0FDM0JBLEdBQVVDLEVBQUlkLFNBQVMxRCxPQUczQixPQURBMEQsRUFBU29DLE9BQ0ZwQyxDQUNYLENBQ0EsTUFBTzNFLEdBR0gsT0FGQXdHLEdBQWtCOUMsU0FBU3NELEdBQU1BLEdBQUcvQixjQUNwQ3pCLFFBQVF3QixNQUFNaEYsR0FDUCxJQUFJNEUsYUFBYSxHQUFHYixLQUFLLEdBQ3BDLENBQ0osQ0FDQSx5QkFBTVIsQ0FBb0JYLEVBQVFDLEVBQVNFLEVBQU8sR0FBSUMsRUFBU0MsRUFBb0IsRUFBMkJDLFdBSzFHLElBQ0ksTUFBTUMsRUFBVVAsRUFBTzNCLFFBQVUyQixFQUFPM0IsT0FBUyxHQUFLLEVBQ2hEMEQsUUFBaUI3RSxLQUFLeUcsbUJBQW1CM0QsRUFBUUMsRUFBU0UsRUFBTUMsRUFBU0MsR0FJL0UsT0FGa0IsRUFBSTBCLEVBREFwQyxLQUFLYyxNQUpILElBSStCRixFQUFVd0IsRUFBUzFELFFBSTlFLENBQ0EsTUFBT2pCLEdBRUgsT0FEQXdELFFBQVF3QixNQUFNaEYsR0FDUCxFQUNYLENBQ0osQ0FDQSxlQUFPaUgsQ0FBU3JFLEVBQVFnRCxFQUFRc0IsRUFBWXBFLEdBQ3hDLE1BQU01QixFQUFJLEdBQ0p3RCxFQUFJLEdBQ0p5QyxFQUFZLEdBQ2xCLElBQUlDLEVBQU0sRUFDTkMsRUFBSyxFQUNMQyxFQUFLLEVBQ1QsTUFBTWxDLEVBQVd4QyxFQUFPM0IsUUFBVTJCLEVBQU8zQixPQUFTLEdBQUssRUFDdkQsS0FBT21HLEVBQU1oQyxHQUFVLENBRW5CLE1BQU1tQyxFQUFTL0YsRUFBTW9CLEVBQU95RSxLQUFTN0YsRUFBTW9CLEVBQU8wRSxJQUNULEVBQXJDSixFQUFXdEUsRUFBT3lFLEdBQUt6RSxFQUFPMEUsSUFDZixFQUFJQyxHQUNMekUsSUFDZDVCLEVBQUVzRyxLQUFLSCxHQUNQM0MsRUFBRThDLEtBQUtGLEdBQ1BILEVBQVVLLEtBQUtELElBRW5CSCxJQUNBRSxJQUNJQSxJQUFPMUUsRUFBTzNCLFNBQ2RvRyxJQUNBQyxFQUFLRCxFQUFLLEVBRWxCLENBSUEsTUFBTyxDQUFFbkcsRUFITSxJQUFJdUQsV0FBV3ZELEdBR1Z3RCxFQUZMLElBQUlELFdBQVdDLEdBRUNDLFNBRFQsSUFBSUMsYUFBYXVDLEdBRTNDLEVDdlBHTSxlQUFlQyxFQUFVQyxFQUFTQyxFQUFjOUUsR0FDbkQsTUFBTStFLEVBQUlGLEVBQVExRyxPQUNaNkcsRUFBSyxHQUNMQyxFQUFLLEdBQ1gsSUFBSyxJQUFJN0csRUFBSSxFQUFHQSxFQUFJMkcsRUFBRzNHLElBQ25CLElBQUssSUFBSXdELEVBQUl4RCxFQUFJLEVBQUd3RCxFQUFJbUQsRUFBR25ELElBQUssQ0FDNUIsTUFBTXNELEVBQUlMLEVBQVF6RyxHQUNaSSxFQUFJcUcsRUFBUWpELEdBQ2RrRCxFQUFhSSxLQUFLMUcsSUFBTXdCLElBQ3hCZ0YsRUFBR04sS0FBS3RHLEdBQ1I2RyxFQUFHUCxLQUFLOUMsR0FFaEIsQ0FFSixPQUVKLFNBQTZCb0QsRUFBSUMsRUFBSUosR0FDakMsTUFBTU0sRUFBUyxJQUFJckQsYUFBYStDLEVBQVExRyxRQUFROEMsS0FBSyxHQUFHQyxLQUFJLElBQXNCLEdBQWhCekIsS0FBSzJGLFdBQ2pFQyxFQUFTLElBQUl2RCxhQUFhK0MsRUFBUTFHLFFBQVE4QyxLQUFLLEdBQUdDLEtBQUksSUFBc0IsR0FBaEJ6QixLQUFLMkYsV0FFakVFLEVBQWMsSUFBSXhELGFBQWErQyxFQUFRMUcsUUFBUThDLEtBQUssR0FDcERzRSxFQUFjLElBQUl6RCxhQUFhK0MsRUFBUTFHLFFBQVE4QyxLQUFLLEdBQzFELElBQUssSUFBSTdDLEVBQUksRUFBR0EsRUFIRyxJQUdhQSxJQUFLLENBQ2pDLE1BQU1vSCxFQUFlLEVBQUlwSCxFQUpWLElBS2ZrSCxFQUFZckUsS0FBSyxHQUNqQnNFLEVBQVl0RSxLQUFLLEdBQ2pCLElBQUssSUFBSUksRUFBTSxFQUFHQSxFQUFNMkQsRUFBRzdHLE9BQVFrRCxJQUFPLENBQ3RDLE1BQU02RCxFQUFJRixFQUFHM0QsR0FDUDdDLEVBQUl5RyxFQUFHNUQsR0FDUG9FLEVBQUtOLEVBQU9ELEdBQUtDLEVBQU8zRyxHQUN4QmtILEVBQUtMLEVBQU9ILEdBQUtHLEVBQU83RyxHQUsxQmlCLEtBQUtrRyxJQUFJRixJQUFPLElBQ2hCSCxFQUFZSixJQUFNTSxFQUFjQyxFQUNoQ0gsRUFBWTlHLElBQU1nSCxFQUFjQyxHQUVoQ2hHLEtBQUtrRyxJQUFJRCxJQUFPLElBQ2hCSCxFQUFZTCxJQUFNTSxFQUFjRSxFQUNoQ0gsRUFBWS9HLElBQU1nSCxFQUFjRSxFQUl4QyxDQUNBLElBQUssSUFBSXJFLEVBQU0sRUFBR0EsRUFBTXdELEVBQVExRyxPQUFRa0QsSUFBTyxDQUMzQyxNQUFNdUUsRUFBVW5HLEtBQUtvRyxLQUFLUCxFQUFZakUsR0FBT2lFLEVBQVlqRSxHQUFPa0UsRUFBWWxFLEdBQU9rRSxFQUFZbEUsSUFDM0Z1RSxFQUFVLElBQ1ZULEVBQU85RCxJQUFRaUUsRUFBWWpFLEdBQU91RSxFQUFVSixFQUM1Q0gsRUFBT2hFLElBQVFrRSxFQUFZbEUsR0FBT3VFLEVBQVVKLEVBRXBELENBQ0osQ0FFQSxJQUFJTSxFQUFPWCxFQUFPLEdBQ2RZLEVBQU9WLEVBQU8sR0FDZFcsRUFBT2IsRUFBTyxHQUNkYyxFQUFPWixFQUFPLEdBQ2xCLElBQUssSUFBSWhFLEVBQU0sRUFBR0EsRUFBTXdELEVBQVExRyxPQUFRa0QsSUFDcEN5RSxFQUFPckcsS0FBS29FLElBQUlpQyxFQUFNWCxFQUFPOUQsSUFDN0IwRSxFQUFPdEcsS0FBS29FLElBQUlrQyxFQUFNVixFQUFPaEUsSUFDN0IyRSxFQUFPdkcsS0FBS0MsSUFBSXNHLEVBQU1iLEVBQU85RCxJQUM3QjRFLEVBQU94RyxLQUFLQyxJQUFJdUcsRUFBTVosRUFBT2hFLElBRWpDLElBQUk2RSxFQUFTRixFQUFPRixFQUNoQkssRUFBU0YsRUFBT0YsRUFDTCxJQUFYRyxJQUNBQSxFQUFTRixHQUNiLElBQUssSUFBSTNFLEVBQU0sRUFBR0EsRUFBTXdELEVBQVExRyxPQUFRa0QsSUFDcEM4RCxFQUFPOUQsSUFBUThELEVBQU85RCxHQUFPeUUsR0FBUUksRUFBUyxFQUFJLEdBQ3ZDLElBQVhDLElBQ0FBLEVBQVNGLEdBQ2IsSUFBSyxJQUFJNUUsRUFBTSxFQUFHQSxFQUFNd0QsRUFBUTFHLE9BQVFrRCxJQUNwQ2dFLEVBQU9oRSxJQUFRZ0UsRUFBT2hFLEdBQU8wRSxHQUFRSSxFQUFTLEVBQUksR0FDdEQsTUFBTyxDQUFFaEIsU0FBUUUsU0FDckIsQ0E5RFdlLENBQW9CcEIsRUFBSUMsRUFBSUosRUFDdkMsQ0NkTyxNQUFNd0IsRUFBb0IsQ0FDN0JDLGFBQWMsRUFDZEMsY0FBZSxFQUNmQyxjQUFlLEVBQ2ZDLFdBQVksR0FFVCxNQUFNQyxFQUNUQyxTQUNBLFdBQUFuSCxDQUFZUyxFQUFPLENBQUMsR0FDaEJqRCxLQUFLMkosU0FBVyxJQUFLTixLQUFzQnBHLEVBQy9DLENBQ0EsZUFBTTJHLENBQVVDLEVBQWNDLEdBRzFCLElBQUloQyxFQUFlOUgsS0FBSytKLGFBQWFGLEdBQ3JDLEdBQUk3SixLQUFLMkosU0FBU0osY0FBZ0IsRUFBRyxDQUNqQ3ZKLEtBQUtnSyxTQUFTbEMsRUFBY2dDLEdBQzVCOUosS0FBS2lLLFVBQVVuQyxHQUNmLElBQUssSUFBSTFHLEVBQUksRUFBR0EsRUFBSXBCLEtBQUsySixTQUFTSixjQUFlbkksSUFDN0MwRyxFQUFlOUgsS0FBS2tLLE9BQU9wQyxFQUFjZ0MsR0FDekM5SixLQUFLbUssUUFBUXJDLEdBQ2I5SCxLQUFLaUssVUFBVW5DLEVBRXZCLENBQ0EsTUFBTSxTQUFFc0MsRUFBUSxHQUFFcEMsRUFBRSxHQUFFQyxHQUFPakksS0FBS3FLLGVBQWV2QyxFQUFjZ0MsR0FDL0Q5SixLQUFLc0ssZ0JBQWdCRixHQUNyQixNQUFNRyxRQUFtQnZLLEtBQUt3SyxPQUFPSixFQUFVdEMsRUFBY2dDLEdBQzdELE1BQU8sQ0FBRU0sV0FBVWpDLE9BQVFvQyxFQUFXcEMsT0FBUUUsT0FBUWtDLEVBQVdsQyxPQUFRTCxLQUFJQyxLQUNqRixDQUNBLGVBQUFxQyxDQUFnQkYsR0FDWixNQUFNSyxFQUFpQixDQUFDLEVBQ3hCLElBQUssTUFBTTVDLEtBQVd1QyxFQUNiSyxFQUFlNUMsS0FDaEI0QyxFQUFlNUMsR0FBVyxHQUM5QjRDLEVBQWU1QyxLQUVuQixNQUFNNkMsRUFBZ0JuSyxPQUFPb0ssS0FBS0YsR0FBZ0J2RyxJQUFJMEcsUUFBUTNELE1BQUssQ0FBQ2lCLEVBQUcxRyxJQUFNaUosRUFBZXZDLEdBQUt1QyxFQUFlakosS0FDMUdxSixFQUFhLENBQUMsRUFDcEJILEVBQWM5RyxTQUFRLENBQUNrSCxFQUFZMUosSUFBTXlKLEVBQVdDLEdBQWMxSixFQUFJLElBQ3RFLElBQUssSUFBSUEsRUFBSSxFQUFHQSxFQUFJZ0osRUFBU2pKLE9BQVFDLElBQ2pDZ0osRUFBU2hKLEdBQUt5SixFQUFXVCxFQUFTaEosR0FXMUMsQ0FDQSxZQUFNb0osQ0FBT0osRUFBVVAsRUFBY0MsR0FDakMsTUFBTTNCLEVBQVMsSUFBSXJELGFBQWFnRixHQUFPN0YsS0FBSyxHQUN0Q29FLEVBQVMsSUFBSXZELGFBQWFnRixHQUFPN0YsS0FBSyxHQUN0QzRHLEVBQWEsQ0FBQyxFQUNwQlQsRUFBU3hHLFNBQVEsQ0FBQ2lFLEVBQVN6RyxLQUNsQnlKLEVBQVdoRCxLQUNaZ0QsRUFBV2hELEdBQVcsSUFDMUJnRCxFQUFXaEQsR0FBU0gsS0FBS3RHLEVBQUUsSUFJL0IsSUFBSTJKLEVBQWEsRUFDakIsTUFBTUMsRUFBcUJ6SyxPQUFPb0ssS0FBS0UsR0FDdkNHLEVBQW1CL0QsTUFBSyxDQUFDaUIsRUFBRzFHLElBQU1xSixFQUFXckosR0FBR0wsT0FBUzBKLEVBQVczQyxHQUFHL0csU0FDdkUsSUFBSThKLEVBQVMsRUFDVEMsRUFBVSxFQUVkLElBQUssTUFBTUMsS0FBZUgsRUFBb0IsQ0FDMUMsTUFBTW5ELEVBQVVnRCxFQUFXTSxHQUNyQlosUUFBbUIzQyxFQUFVQyxFQUFTZ0MsRUFBYyxNQUN0RGtCLElBQWV0SSxLQUFLMkksS0FBS0gsRUFBUyxPQUNsQ0YsRUFBYSxFQUNiRyxHQU5XLEVBTWFELEVBQ3hCQSxFQUFTeEksS0FBSzJJLEtBQWMsSUFBVEgsSUFFdkIsTUFBTUksRUFBWU4sRUFBYUUsRUFUaEIsRUFTdUNBLEVBQVUsSUFFaEUsSUFBSyxJQUFJN0osRUFBSSxFQUFHQSxFQUFJbUosRUFBV3BDLE9BQU9oSCxPQUFRQyxJQUMxQytHLEVBQU9OLEVBQVF6RyxJQVpKLEVBWVVtSixFQUFXcEMsT0FBTy9HLEdBQWtCNkosRUFBU0ksRUFDbEVoRCxFQUFPUixFQUFRekcsSUFiSixFQWFVbUosRUFBV2xDLE9BQU9qSCxHQUFrQjZKLEVBQVNDLEVBRXRFSCxHQUNKLENBQ0EsTUFBTyxDQUFFNUMsU0FBUUUsU0FDckIsQ0FDQSxhQUFBaUQsQ0FBY2xCLEVBQVVoSixFQUFHd0QsR0FDdkIsTUFBTTJHLEVBQVduQixFQUFTaEosR0FDcEJvSyxFQUFXcEIsRUFBU3hGLEdBQzFCLElBQUssSUFBSTZHLEVBQUksRUFBR0EsRUFBSXJCLEVBQVNqSixPQUFRc0ssSUFDN0JyQixFQUFTcUIsS0FBT0QsSUFDaEJwQixFQUFTcUIsR0FBS0YsRUFFMUIsQ0FDQSxjQUFBbEIsQ0FBZVIsRUFBY0MsR0FDekIsSUFBSWlCLEVBQWEsRUFDakIsTUFBTS9DLEVBQUssR0FDTEMsRUFBSyxHQUNMeUQsRUFBUWpKLEtBQUtjLE1BQU1kLEtBQUtDLElBQUlELEtBQUtrSixNQUFNN0IsR0FBUSxJQUFNLEVBQ3JEOEIsRUFBV25KLEtBQUtvSixJQUFJLEdBQUlILEdBQ3hCdEIsRUFBVyxJQUFJckcsTUFBTStGLEdBQU83RixNQUFNLEdBQ3hDLElBQUssTUFBTTdDLEtBQUtiLE9BQU9vSyxLQUFLZCxHQUN4QixJQUFLLE1BQU1qRixLQUFLckUsT0FBT29LLEtBQUtkLEVBQWF6SSxJQUNqQ3FCLEtBQUtxSixNQUFNakMsRUFBYXpJLEdBQUd3RCxHQUFLZ0gsR0FBWUEsRUFBVyxHQUN2RC9CLEVBQWF6SSxHQUFHd0QsS0FBT2dHLE9BQU94SixJQUFNd0osT0FBT2hHLEdBQUtnRyxPQUFPeEosS0FDdkQ0RyxFQUFHTixLQUFLa0QsT0FBT3hKLElBQ2Y2RyxFQUFHUCxLQUFLa0QsT0FBT2hHLEtBQ2MsSUFBekJ3RixFQUFTUSxPQUFPeEosTUFBdUMsSUFBekJnSixFQUFTUSxPQUFPaEcsSUFDMUN3RixFQUFTUSxPQUFPeEosTUFBUWdKLEVBQVNRLE9BQU9oRyxLQUN4QzVFLEtBQUtzTCxjQUFjbEIsRUFBVVEsT0FBT3hKLEdBQUl3SixPQUFPaEcsS0FFckIsSUFBekJ3RixFQUFTUSxPQUFPeEosSUFDckJnSixFQUFTUSxPQUFPaEcsSUFBTXdGLEVBQVNRLE9BQU94SixLQUVSLElBQXpCZ0osRUFBU1EsT0FBT2hHLElBQ3JCd0YsRUFBU1EsT0FBT3hKLElBQU1nSixFQUFTUSxPQUFPaEcsS0FHdENtRyxJQUNBWCxFQUFTUSxPQUFPeEosSUFBTTJKLEVBQ3RCWCxFQUFTUSxPQUFPaEcsSUFBTW1HLElBS3RDLElBQUssSUFBSTNKLEVBQUksRUFBR0EsRUFBSWdKLEVBQVNqSixPQUFRQyxLQUNaLElBQWpCZ0osRUFBU2hKLEtBQ1QySixJQUNBWCxFQUFTaEosR0FBSzJKLEdBR3RCLE1BQU8sQ0FBRVgsV0FBVXBDLEtBQUlDLEtBQzNCLENBQ0EsWUFBQThCLENBQWFGLEdBQ1QsTUFBTS9CLEVBQWUsQ0FBQyxFQUN0QixJQUFLLElBQUkxRyxFQUFJLEVBQUdBLEVBQUl5SSxFQUFhekksRUFBRUQsT0FBUUMsSUFDbEMwRyxFQUFhK0IsRUFBYXpJLEVBQUVBLE1BQzdCMEcsRUFBYStCLEVBQWF6SSxFQUFFQSxJQUFNLENBQUMsR0FDdkMwRyxFQUFhK0IsRUFBYXpJLEVBQUVBLElBQUl5SSxFQUFhakYsRUFBRXhELElBQU0sRUFBSXlJLEVBQWFoRixTQUFTekQsR0FDMUUwRyxFQUFhK0IsRUFBYWpGLEVBQUV4RCxNQUM3QjBHLEVBQWErQixFQUFhakYsRUFBRXhELElBQU0sQ0FBQyxHQUN2QzBHLEVBQWErQixFQUFhakYsRUFBRXhELElBQUl5SSxFQUFhekksRUFBRUEsSUFBTSxFQUFJeUksRUFBYWhGLFNBQVN6RCxHQUVuRixPQUFPMEcsQ0FDWCxDQUNBLFFBQUFrQyxDQUFTbEMsRUFBY2dDLEdBQ25CLElBQUssSUFBSTFJLEVBQUksRUFBR0EsRUFBSTBJLEVBQU8xSSxJQUNsQjBHLEVBQWExRyxLQUNkMEcsRUFBYTFHLEdBQUssQ0FBQyxHQUN2QjBHLEVBQWExRyxHQUFHQSxHQUFLcEIsS0FBSzJKLFNBQVNGLFVBRTNDLENBQ0EsU0FBQVEsQ0FBVW5DLEdBQ04sSUFBSyxNQUFNMUcsS0FBS2IsT0FBT29LLEtBQUs3QyxHQUFlLENBQ3ZDLE1BQU1pRSxFQUFNakUsRUFBYTFHLEdBQ3pCLElBQUk0SyxFQUFNLEVBQ1YsSUFBSyxNQUFNcEgsS0FBS3JFLE9BQU9vSyxLQUFLb0IsR0FDeEJDLEdBQU9ELEVBQUluSCxHQUNmLEdBQVksSUFBUm9ILEVBRUosSUFBSyxNQUFNcEgsS0FBS3JFLE9BQU9vSyxLQUFLb0IsR0FDeEJqRSxFQUFhMUcsR0FBR3dELElBQU1vSCxDQUM5QixDQUNKLENBQ0EsTUFBQTlCLENBQU9wQyxFQUFjZ0MsR0FDakIsTUFBTW1DLEVBQWlCLENBQUMsRUFDbEJQLEVBQVFqSixLQUFLYyxNQUFNZCxLQUFLQyxJQUFJRCxLQUFLa0osTUFBTTdCLEdBQVEsSUFBTSxFQUNyRDhCLEVBQVduSixLQUFLb0osSUFBSSxHQUFJSCxHQUM5QixJQUFLLElBQUl0SyxFQUFJLEVBQUdBLEVBQUkwSSxFQUFPMUksSUFDdkIsR0FBSzBHLEVBQWExRyxHQUFsQixDQUdBNkssRUFBZTdLLEdBQUssQ0FBQyxFQUNyQixJQUFLLElBQUl3RCxFQUFJeEQsRUFBR3dELEVBQUlrRixFQUFPbEYsSUFBSyxDQUM1QixJQUFLa0QsRUFBYTFHLEtBQUt3RCxHQUNuQixTQUNKLE1BQU1hLEVBQU16RixLQUFLa00sZUFBZXBFLEVBQWMxRyxFQUFHd0QsR0FDN0NuQyxLQUFLcUosTUFBTXJHLEVBQU1tRyxHQUFZQSxFQUFXLElBQ3hDSyxFQUFlN0ssR0FBR3dELEdBQUthLEVBQ2xCd0csRUFBZXJILEtBQ2hCcUgsRUFBZXJILEdBQUssQ0FBQyxHQUN6QnFILEVBQWVySCxHQUFHeEQsR0FBS3FFLEVBRS9CLENBYlksQ0FlaEIsT0FBT3dHLENBQ1gsQ0FHQSxPQUFBOUIsQ0FBUXJDLEdBQ0osSUFBSyxNQUFNMUcsS0FBS2IsT0FBT29LLEtBQUs3QyxHQUFlLENBQ3ZDLE1BQU1pRSxFQUFNakUsRUFBYTFHLEdBQ3pCLElBQUssTUFBTXdELEtBQUtyRSxPQUFPb0ssS0FBS29CLEdBQ3hCakUsRUFBYTFHLEdBQUd3RCxHQUFLbkMsS0FBS29KLElBQUkvRCxFQUFhMUcsR0FBR3dELEdBQUk1RSxLQUFLMkosU0FBU0gsY0FDeEUsQ0FDSixDQUNBLGNBQUEwQyxDQUFlcEUsRUFBYzFHLEVBQUd3RCxHQUM1QixJQUFJYSxFQUFNLEVBQ1YsTUFBTTBHLEVBQWlCNUwsT0FBT29LLEtBQUs3QyxFQUFhMUcsSUFBTSxDQUFDLEdBQ2pEZ0wsRUFBZTdMLE9BQU9vSyxLQUFLN0MsRUFBYWxELElBQU0sQ0FBQyxHQUNyRCxJQUFLLE1BQU02RyxLQUFLVSxFQUNSQyxFQUFhQyxTQUFTWixLQUN0QmhHLEdBQU9xQyxFQUFhMUcsR0FBR3FLLEdBQUszRCxFQUFhbEQsR0FBRzZHLElBRXBELE9BQU9oRyxDQUNYLEVDN01KVCxVQUFZMkMsTUFBTzJFLElBQ2YsTUFBTSxLQUFFckgsRUFBSSxVQUFFakMsRUFBUyxRQUFFRSxFQUFPLGtCQUFFQyxFQUFpQixlQUFFb0osRUFBYyxZQUFFQyxFQUFXLGNBQUVqRCxHQUFrQitDLEVBQU1ySCxLQUNwR3dILFFBQWUsSUFBSW5LLEdBQ3BCTyxnQkFBZ0JvQyxFQUFNdUgsRUFBYXhKLEVBQVksSUFBS3VKLEVBQWdCckosRUFBU0MsR0FDNUV3QyxRQUFZLElBQUkrRCxFQUFpQixDQUFFSCxjQUFlQSxHQUFpQixJQUFLSyxVQUFVNkMsRUFBUXhILEVBQUssR0FBRzlELFFBQ3hHNEQsWUFBWSxDQUFFWSxPQUFNLEUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy9kaXN0YW5jZS1tYXRyaXgvdHlwZXMuanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ydW50aW1lL2dldCBqYXZhc2NyaXB0IGNodW5rIGZpbGVuYW1lIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svcnVudGltZS9nbG9iYWwiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvcHVibGljUGF0aCIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvaW1wb3J0U2NyaXB0cyBjaHVuayBsb2FkaW5nIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL2Rpc3RhbmNlLW1hdHJpeC91dGlscy5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy9kaXN0YW5jZS1tYXRyaXgvc3BhcnNlLW1hdHJpeC1zZXJ2aWNlLmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL01DTC9iaW8tbGF5b3V0LmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL01DTC9tYXJjb3YtY2x1c3Rlci5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy9NQ0wvbWNsLXdvcmtlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdmFyIERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzO1xuKGZ1bmN0aW9uIChEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcykge1xuICAgIERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzW1wiRVVDTElERUFOXCJdID0gXCJFVUNMSURFQU5cIjtcbiAgICBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kc1tcIk1BTkhBVFRBTlwiXSA9IFwiTUFOSEFUVEFOXCI7XG59KShEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcyB8fCAoRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMgPSB7fSkpO1xuO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZEhsd1pYTXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKMGVYQmxjeTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeE5RVUZOTEVOQlFVNHNTVUZCV1N3d1FrRkhWRHRCUVVoSUxGZEJRVmtzTUVKQlFUQkNPMGxCUTJ4RExIRkVRVUYxUWl4RFFVRkJPMGxCUTNaQ0xIRkVRVUYxUWl4RFFVRkJPMEZCUTNwQ0xFTkJRVU1zUlVGSVV5d3dRa0ZCTUVJc1MwRkJNVUlzTUVKQlFUQkNMRkZCUjI1RE8wRkJRVUVzUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbVY0Y0c5eWRDQmxiblZ0SUVScGMzUmhibU5sUVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlJ6SUh0Y2JpQWdJQ0JGVlVOTVNVUkZRVTRnUFNBblJWVkRURWxFUlVGT0p5eGNiaUFnSUNCTlFVNUlRVlJVUVU0Z1BTQW5UVUZPU0VGVVZFRk9KeXhjYmlBZ2ZUdGNibHh1Wlhod2IzSjBJSFI1Y0dVZ1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkNBOUlHdGxlVzltSUhSNWNHVnZaaUJFYVhOMFlXNWpaVUZuWjNKbFoyRjBhVzl1VFdWMGFHOWtjenRjYmlKZGZRPT0iLCIvLyBUaGUgcmVxdWlyZSBzY29wZVxudmFyIF9fd2VicGFja19yZXF1aXJlX18gPSB7fTtcblxuLy8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbl9fd2VicGFja19yZXF1aXJlX18ubSA9IF9fd2VicGFja19tb2R1bGVzX187XG5cbiIsIi8vIFRoaXMgZnVuY3Rpb24gYWxsb3cgdG8gcmVmZXJlbmNlIGFzeW5jIGNodW5rc1xuX193ZWJwYWNrX3JlcXVpcmVfXy51ID0gKGNodW5rSWQpID0+IHtcblx0Ly8gcmV0dXJuIHVybCBmb3IgZmlsZW5hbWVzIGJhc2VkIG9uIHRlbXBsYXRlXG5cdHJldHVybiBcIlwiICsgY2h1bmtJZCArIFwiLmpzXCI7XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18uZyA9IChmdW5jdGlvbigpIHtcblx0aWYgKHR5cGVvZiBnbG9iYWxUaGlzID09PSAnb2JqZWN0JykgcmV0dXJuIGdsb2JhbFRoaXM7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIHRoaXMgfHwgbmV3IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ29iamVjdCcpIHJldHVybiB3aW5kb3c7XG5cdH1cbn0pKCk7IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsInZhciBzY3JpcHRVcmw7XG5pZiAoX193ZWJwYWNrX3JlcXVpcmVfXy5nLmltcG9ydFNjcmlwdHMpIHNjcmlwdFVybCA9IF9fd2VicGFja19yZXF1aXJlX18uZy5sb2NhdGlvbiArIFwiXCI7XG52YXIgZG9jdW1lbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmcuZG9jdW1lbnQ7XG5pZiAoIXNjcmlwdFVybCAmJiBkb2N1bWVudCkge1xuXHRpZiAoZG9jdW1lbnQuY3VycmVudFNjcmlwdClcblx0XHRzY3JpcHRVcmwgPSBkb2N1bWVudC5jdXJyZW50U2NyaXB0LnNyYztcblx0aWYgKCFzY3JpcHRVcmwpIHtcblx0XHR2YXIgc2NyaXB0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwic2NyaXB0XCIpO1xuXHRcdGlmKHNjcmlwdHMubGVuZ3RoKSB7XG5cdFx0XHR2YXIgaSA9IHNjcmlwdHMubGVuZ3RoIC0gMTtcblx0XHRcdHdoaWxlIChpID4gLTEgJiYgIXNjcmlwdFVybCkgc2NyaXB0VXJsID0gc2NyaXB0c1tpLS1dLnNyYztcblx0XHR9XG5cdH1cbn1cbi8vIFdoZW4gc3VwcG9ydGluZyBicm93c2VycyB3aGVyZSBhbiBhdXRvbWF0aWMgcHVibGljUGF0aCBpcyBub3Qgc3VwcG9ydGVkIHlvdSBtdXN0IHNwZWNpZnkgYW4gb3V0cHV0LnB1YmxpY1BhdGggbWFudWFsbHkgdmlhIGNvbmZpZ3VyYXRpb25cbi8vIG9yIHBhc3MgYW4gZW1wdHkgc3RyaW5nIChcIlwiKSBhbmQgc2V0IHRoZSBfX3dlYnBhY2tfcHVibGljX3BhdGhfXyB2YXJpYWJsZSBmcm9tIHlvdXIgY29kZSB0byB1c2UgeW91ciBvd24gbG9naWMuXG5pZiAoIXNjcmlwdFVybCkgdGhyb3cgbmV3IEVycm9yKFwiQXV0b21hdGljIHB1YmxpY1BhdGggaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGJyb3dzZXJcIik7XG5zY3JpcHRVcmwgPSBzY3JpcHRVcmwucmVwbGFjZSgvIy4qJC8sIFwiXCIpLnJlcGxhY2UoL1xcPy4qJC8sIFwiXCIpLnJlcGxhY2UoL1xcL1teXFwvXSskLywgXCIvXCIpO1xuX193ZWJwYWNrX3JlcXVpcmVfXy5wID0gc2NyaXB0VXJsOyIsIl9fd2VicGFja19yZXF1aXJlX18uYiA9IHNlbGYubG9jYXRpb24gKyBcIlwiO1xuXG4vLyBvYmplY3QgdG8gc3RvcmUgbG9hZGVkIGNodW5rc1xuLy8gXCIxXCIgbWVhbnMgXCJhbHJlYWR5IGxvYWRlZFwiXG52YXIgaW5zdGFsbGVkQ2h1bmtzID0ge1xuXHQ5OTc6IDFcbn07XG5cbi8vIG5vIGNodW5rIGluc3RhbGwgZnVuY3Rpb24gbmVlZGVkXG4vLyBubyBjaHVuayBsb2FkaW5nXG5cbi8vIG5vIEhNUlxuXG4vLyBubyBITVIgbWFuaWZlc3QiLCJpbXBvcnQgeyBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcyB9IGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0IGNvbnN0IGlzTmlsID0gKHgpID0+IHggPT09IG51bGwgfHwgeCA9PT0gdW5kZWZpbmVkO1xuZXhwb3J0IGZ1bmN0aW9uIGluc2VydFNtYWxsZXIoZGlzdGFuY2VzQXIsIGluZGV4ZXMsIG51bSwgaW5kZXgpIHtcbiAgICBpZiAobnVtID4gZGlzdGFuY2VzQXJbZGlzdGFuY2VzQXIubGVuZ3RoIC0gMV0pXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCBuZXdQb3NpdGlvbiA9IGRpc3RhbmNlc0FyLmZpbmRJbmRleCgodikgPT4gbnVtIDwgdik7XG4gICAgZGlzdGFuY2VzQXIucG9wKCk7XG4gICAgZGlzdGFuY2VzQXIuc3BsaWNlKG5ld1Bvc2l0aW9uLCAwLCBudW0pO1xuICAgIGluZGV4ZXMucG9wKCk7XG4gICAgaW5kZXhlcy5zcGxpY2UobmV3UG9zaXRpb24sIDAsIGluZGV4KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRMYXJnZXIoZGlzdGFuY2VzQXIsIGluZGV4ZXMsIG51bSwgaW5kZXgpIHtcbiAgICBpZiAobnVtIDwgZGlzdGFuY2VzQXJbZGlzdGFuY2VzQXIubGVuZ3RoIC0gMV0pXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCBuZXdQb3NpdGlvbiA9IGRpc3RhbmNlc0FyLmZpbmRJbmRleCgodikgPT4gbnVtID4gdik7XG4gICAgZGlzdGFuY2VzQXIucG9wKCk7XG4gICAgZGlzdGFuY2VzQXIuc3BsaWNlKG5ld1Bvc2l0aW9uLCAwLCBudW0pO1xuICAgIGluZGV4ZXMucG9wKCk7XG4gICAgaW5kZXhlcy5zcGxpY2UobmV3UG9zaXRpb24sIDAsIGluZGV4KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZ2dyZWdhdGlvbkZ1bmN0aW9uKGFnZ3JlZ2F0aW9uTWV0aG9kLCB3ZWlnaHRzKSB7XG4gICAgc3dpdGNoIChhZ2dyZWdhdGlvbk1ldGhvZCkge1xuICAgICAgICBjYXNlIERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzLk1BTkhBVFRBTjpcbiAgICAgICAgICAgIHJldHVybiAodnMpID0+IHZzLnJlZHVjZSgoYWNjLCB2YWwsIGlkeCkgPT4gYWNjICsgdmFsICogd2VpZ2h0c1tpZHhdLCAwKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiAodnMpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBldWNsaWRlYW5cbiAgICAgICAgICAgICAgICBjb25zdCBzdW0gPSB2cy5yZWR1Y2UoKGFjYywgdmFsLCBpZHgpID0+IGFjYyArICh2YWwgKiB3ZWlnaHRzW2lkeF0pICoqIDIsIDApO1xuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLnNxcnQoc3VtKTtcbiAgICAgICAgICAgIH07XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZFhScGJITXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKMWRHbHNjeTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeFBRVUZQTEVWQlFUUkNMREJDUVVFd1FpeEZRVUZETEUxQlFVMHNVMEZCVXl4RFFVRkRPMEZCUlRsRkxFMUJRVTBzUTBGQlF5eE5RVUZOTEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVUwc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eExRVUZMTEVsQlFVa3NTVUZCU1N4RFFVRkRMRXRCUVVzc1UwRkJVeXhEUVVGRE8wRkJSUzlFTEUxQlFVMHNWVUZCVlN4aFFVRmhMRU5CUVVNc1YwRkJjVUlzUlVGQlJTeFBRVUZwUWl4RlFVRkZMRWRCUVZjc1JVRkJSU3hMUVVGaE8wbEJRMmhITEVsQlFVa3NSMEZCUnl4SFFVRkhMRmRCUVZjc1EwRkJReXhYUVVGWExFTkJRVU1zVFVGQlRTeEhRVUZETEVOQlFVTXNRMEZCUXp0UlFVTjZReXhQUVVGUE8wbEJSVlFzVFVGQlRTeFhRVUZYTEVkQlFVY3NWMEZCVnl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRekZFTEZkQlFWY3NRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJRenRKUVVOc1FpeFhRVUZYTEVOQlFVTXNUVUZCVFN4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZEZUVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETzBsQlEyUXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMEZCUTNoRExFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNXVUZCV1N4RFFVRkRMRmRCUVhGQ0xFVkJRVVVzVDBGQmFVSXNSVUZCUlN4SFFVRlhMRVZCUVVVc1MwRkJZVHRKUVVNdlJpeEpRVUZKTEVkQlFVY3NSMEZCUnl4WFFVRlhMRU5CUVVNc1YwRkJWeXhEUVVGRExFMUJRVTBzUjBGQlF5eERRVUZETEVOQlFVTTdVVUZEZWtNc1QwRkJUenRKUVVWVUxFMUJRVTBzVjBGQlZ5eEhRVUZITEZkQlFWY3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVNeFJDeFhRVUZYTEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNN1NVRkRiRUlzVjBGQlZ5eERRVUZETEUxQlFVMHNRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJReXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzBsQlEzaERMRTlCUVU4c1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dEpRVU5rTEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU1zUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0QlFVTjRReXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEhOQ1FVRnpRaXhEUVVOd1F5eHBRa0ZCTkVNc1JVRkJSU3hQUVVGcFFqdEpRVVV2UkN4UlFVRlJMR2xDUVVGcFFpeEZRVUZGTzFGQlEzcENMRXRCUVVzc01FSkJRVEJDTEVOQlFVTXNVMEZCVXp0WlFVTjJReXhQUVVGUExFTkJRVU1zUlVGQldTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUjBGQlJ5eEhRVUZITEVkQlFVY3NUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzSkdPMWxCUTBVc1QwRkJUeXhEUVVGRExFVkJRVmtzUlVGQlJTeEZRVUZGTzJkQ1FVTjBRaXhaUVVGWk8yZENRVU5hTEUxQlFVMHNSMEZCUnl4SFFVRkhMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTXNSMEZCUnl4SFFVRkhMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRE4wVXNUMEZCVHl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlEzaENMRU5CUVVNc1EwRkJRenRMUVVOTU8wRkJRMGdzUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdSR2x6ZEdGdVkyVkJaMmR5WldkaGRHbHZiazFsZEdodlpDd2dSR2x6ZEdGdVkyVkJaMmR5WldkaGRHbHZiazFsZEdodlpITjlJR1p5YjIwZ0p5NHZkSGx3WlhNbk8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ2FYTk9hV3dnUFNBb2VEb2dZVzU1S1NBOVBpQjRJRDA5UFNCdWRXeHNJSHg4SUhnZ1BUMDlJSFZ1WkdWbWFXNWxaRHRjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdsdWMyVnlkRk50WVd4c1pYSW9aR2x6ZEdGdVkyVnpRWEk2SUc1MWJXSmxjbHRkTENCcGJtUmxlR1Z6T2lCdWRXMWlaWEpiWFN3Z2JuVnRPaUJ1ZFcxaVpYSXNJR2x1WkdWNE9pQnVkVzFpWlhJcElIdGNiaUFnYVdZZ0tHNTFiU0ErSUdScGMzUmhibU5sYzBGeVcyUnBjM1JoYm1ObGMwRnlMbXhsYm1kMGFDMHhYU2xjYmlBZ0lDQnlaWFIxY200N1hHNWNiaUFnWTI5dWMzUWdibVYzVUc5emFYUnBiMjRnUFNCa2FYTjBZVzVqWlhOQmNpNW1hVzVrU1c1a1pYZ29LSFlwSUQwK0lHNTFiU0E4SUhZcE8xeHVJQ0JrYVhOMFlXNWpaWE5CY2k1d2IzQW9LVHRjYmlBZ1pHbHpkR0Z1WTJWelFYSXVjM0JzYVdObEtHNWxkMUJ2YzJsMGFXOXVMQ0F3TENCdWRXMHBPMXh1SUNCcGJtUmxlR1Z6TG5CdmNDZ3BPMXh1SUNCcGJtUmxlR1Z6TG5Od2JHbGpaU2h1WlhkUWIzTnBkR2x2Yml3Z01Dd2dhVzVrWlhncE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYVc1elpYSjBUR0Z5WjJWeUtHUnBjM1JoYm1ObGMwRnlPaUJ1ZFcxaVpYSmJYU3dnYVc1a1pYaGxjem9nYm5WdFltVnlXMTBzSUc1MWJUb2diblZ0WW1WeUxDQnBibVJsZURvZ2JuVnRZbVZ5S1NCN1hHNGdJR2xtSUNodWRXMGdQQ0JrYVhOMFlXNWpaWE5CY2x0a2FYTjBZVzVqWlhOQmNpNXNaVzVuZEdndE1WMHBYRzRnSUNBZ2NtVjBkWEp1TzF4dVhHNGdJR052Ym5OMElHNWxkMUJ2YzJsMGFXOXVJRDBnWkdsemRHRnVZMlZ6UVhJdVptbHVaRWx1WkdWNEtDaDJLU0E5UGlCdWRXMGdQaUIyS1R0Y2JpQWdaR2x6ZEdGdVkyVnpRWEl1Y0c5d0tDazdYRzRnSUdScGMzUmhibU5sYzBGeUxuTndiR2xqWlNodVpYZFFiM05wZEdsdmJpd2dNQ3dnYm5WdEtUdGNiaUFnYVc1a1pYaGxjeTV3YjNBb0tUdGNiaUFnYVc1a1pYaGxjeTV6Y0d4cFkyVW9ibVYzVUc5emFYUnBiMjRzSURBc0lHbHVaR1Y0S1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2RsZEVGblozSmxaMkYwYVc5dVJuVnVZM1JwYjI0b1hHNGdJR0ZuWjNKbFoyRjBhVzl1VFdWMGFHOWtPaUJFYVhOMFlXNWpaVUZuWjNKbFoyRjBhVzl1VFdWMGFHOWtMQ0IzWldsbmFIUnpPaUJ1ZFcxaVpYSmJYVnh1S1RvZ0tIWmhiSFZsY3pvZ2JuVnRZbVZ5VzEwcElEMCtJRzUxYldKbGNpQjdYRzRnSUhOM2FYUmphQ0FvWVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlFwSUh0Y2JpQWdJQ0JqWVhObElFUnBjM1JoYm1ObFFXZG5jbVZuWVhScGIyNU5aWFJvYjJSekxrMUJUa2hCVkZSQlRqcGNiaUFnSUNBZ0lISmxkSFZ5YmlBb2RuTTZJRzUxYldKbGNsdGRLU0E5UGlCMmN5NXlaV1IxWTJVb0tHRmpZeXdnZG1Gc0xDQnBaSGdwSUQwK0lHRmpZeUFySUhaaGJDQXFJSGRsYVdkb2RITmJhV1I0WFN3Z01DazdYRzRnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUhKbGRIVnliaUFvZG5NNklHNTFiV0psY2x0ZEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUM4dklHVjFZMnhwWkdWaGJseHVJQ0FnSUNBZ0lDQmpiMjV6ZENCemRXMGdQU0IyY3k1eVpXUjFZMlVvS0dGall5d2dkbUZzTENCcFpIZ3BJRDArSUdGall5QXJJQ2gyWVd3Z0tpQjNaV2xuYUhSelcybGtlRjBwSUNvcUlESXNJREFwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnVFdGMGFDNXpjWEowS0hOMWJTazdYRzRnSUNBZ0lDQjlPMXh1SUNCOVhHNTlYRzRpWFgwPSIsImltcG9ydCB7IERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBpbnNlcnRTbWFsbGVyLCBpc05pbCB9IGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0IGNsYXNzIFNwYXJzZU1hdHJpeFNlcnZpY2Uge1xuICAgIF93b3JrZXJDb3VudDtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5fd29ya2VyQ291bnQgPSBNYXRoLm1heChuYXZpZ2F0b3IuaGFyZHdhcmVDb25jdXJyZW5jeSAtIDIsIDEpO1xuICAgIH1cbiAgICBhc3luYyBjYWxjTXVsdGlDb2x1bW4odmFsdWVzLCBmbk5hbWVzLCB0aHJlc2hvbGQsIG9wdHMgPSBbe31dLCB3ZWlnaHRzID0gWzFdLCBhZ2dyZWdhdGlvbk1ldGhvZCA9IERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzLkVVQ0xJREVBTikge1xuICAgICAgICBjb25zdCBtYXRTaXplID0gdmFsdWVzWzBdLmxlbmd0aCAqICh2YWx1ZXNbMF0ubGVuZ3RoIC0gMSkgLyAyO1xuICAgICAgICBjb25zdCBjaHVua1NpemUgPSBNYXRoLmZsb29yKG1hdFNpemUgLyB0aGlzLl93b3JrZXJDb3VudCk7XG4gICAgICAgIGNvbnN0IG1pblRocmVzaG9sZCA9IHZhbHVlc1swXS5sZW5ndGggPiAyMDAwMCA/XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmdldE1pbmltYWxUaHJlc2hvbGQodmFsdWVzLCBmbk5hbWVzLCBvcHRzLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCkgOiAwO1xuICAgICAgICBpZiAodGhyZXNob2xkIDwgbWluVGhyZXNob2xkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgdXNpbmcgdGhyZXNob2xkICR7bWluVGhyZXNob2xkfWApO1xuICAgICAgICAgICAgdGhyZXNob2xkID0gbWluVGhyZXNob2xkO1xuICAgICAgICB9XG4gICAgICAgIG9wdHMuZm9yRWFjaCgoXywgaSkgPT4gb3B0c1tpXVsndGhyZXNob2xkJ10gPSB0aHJlc2hvbGQpO1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IG5ldyBBcnJheSh0aGlzLl93b3JrZXJDb3VudCk7XG4gICAgICAgIGNvbnN0IHdvcmtlcnMgPSBuZXcgQXJyYXkodGhpcy5fd29ya2VyQ291bnQpXG4gICAgICAgICAgICAuZmlsbChudWxsKS5tYXAoKCkgPT4gbmV3IFdvcmtlcihuZXcgVVJMKCcuL3NwYXJzZS1tYXRyaXgtd29ya2VyJywgaW1wb3J0Lm1ldGEudXJsKSkpO1xuICAgICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCB0aGlzLl93b3JrZXJDb3VudDsgaWR4KyspIHtcbiAgICAgICAgICAgIHByb21pc2VzW2lkeF0gPSBuZXcgUHJvbWlzZSgocmVzb2x2ZVdvcmtlciwgcmVqZWN0V29ya2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRJZHggPSBpZHggKiBjaHVua1NpemU7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5kSWR4ID0gaWR4ID09PSB0aGlzLl93b3JrZXJDb3VudCAtIDEgPyBtYXRTaXplIDogKGlkeCArIDEpICogY2h1bmtTaXplO1xuICAgICAgICAgICAgICAgIGlmIChlbmRJZHggPD0gc3RhcnRJZHgpXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVXb3JrZXIoeyBpOiBuZXcgSW50MzJBcnJheSgwKSwgajogbmV3IEludDMyQXJyYXkoMCksIGRpc3RhbmNlOiBuZXcgRmxvYXQzMkFycmF5KDApLCBpZHggfSk7XG4gICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLnBvc3RNZXNzYWdlKHsgdmFsdWVzLCBzdGFydElkeCwgZW5kSWR4LCB0aHJlc2hvbGQsIGZuTmFtZXMsIG9wdHMsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kIH0pO1xuICAgICAgICAgICAgICAgIHdvcmtlcnNbaWR4XS5vbm1lc3NhZ2UgPSAoeyBkYXRhOiB7IGVycm9yLCBpLCBqLCBkaXN0YW5jZSB9IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0udGVybWluYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3RXb3JrZXIoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVdvcmtlcih7IGksIGosIGRpc3RhbmNlLCBpZHggfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICAgICAgY29uc3QgZnVsbFNpemUgPSByZXN1bHRzLnJlZHVjZSgoYWNjLCB2YWwpID0+IGFjYyArIHZhbC5pLmxlbmd0aCwgMCk7XG4gICAgICAgIGNvbnN0IGkgPSBuZXcgSW50MzJBcnJheShmdWxsU2l6ZSk7XG4gICAgICAgIGNvbnN0IGogPSBuZXcgSW50MzJBcnJheShmdWxsU2l6ZSk7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlID0gbmV3IEZsb2F0MzJBcnJheShmdWxsU2l6ZSk7XG4gICAgICAgIGxldCBvZmZzZXQgPSAwO1xuICAgICAgICAvLyBzZXR0aW5nIHRoZSByZXN1bHRzXG4gICAgICAgIGZvciAoY29uc3QgcmVzIG9mIHJlc3VsdHMpIHtcbiAgICAgICAgICAgIGkuc2V0KHJlcy5pLCBvZmZzZXQpO1xuICAgICAgICAgICAgai5zZXQocmVzLmosIG9mZnNldCk7XG4gICAgICAgICAgICBkaXN0YW5jZS5zZXQocmVzLmRpc3RhbmNlLCBvZmZzZXQpO1xuICAgICAgICAgICAgb2Zmc2V0ICs9IHJlcy5pLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpLCBqLCBkaXN0YW5jZSB9O1xuICAgIH1cbiAgICBhc3luYyBjYWxjKHZhbHVlcywgZm5OYW1lLCB0aHJlc2hvbGQsIG9wdHMgPSB7fSkge1xuICAgICAgICAvL3NpemUgb2YgZnVsbCBtYXRyaXhcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuY2FsY011bHRpQ29sdW1uKFt2YWx1ZXNdLCBbZm5OYW1lXSwgdGhyZXNob2xkLCBbb3B0c10sIFsxXSk7XG4gICAgfVxuICAgIGFzeW5jIGdldEtOTih2YWx1ZXMsIGZuTmFtZSwgbk5laWdoYm91cnMgPSAxNSwgb3B0cyA9IHt9KSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLm11bHRpQ29sdW1uS05OKFt2YWx1ZXNdLCBbZm5OYW1lXSwgbk5laWdoYm91cnMsIFtvcHRzXSwgWzFdKTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0VGhyZXNob2xkS05OKHZhbHVlcywgZm5OYW1lLCB0aHJlc2hvbGQgPSAwLjgsIG9wdHMgPSB7fSkge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5tdWx0aUNvbHVtblRocmVzaG9sZEtubihbdmFsdWVzXSwgW2ZuTmFtZV0sIHRocmVzaG9sZCwgW29wdHNdLCBbMV0pO1xuICAgIH1cbiAgICBhc3luYyBtdWx0aUNvbHVtblRocmVzaG9sZEtubih2YWx1ZXMsIGZuTmFtZXMsIHRocmVzaG9sZCA9IDAuOCwgb3B0cywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QgPSBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcy5FVUNMSURFQU4pIHtcbiAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggIT09IGZuTmFtZXMubGVuZ3RoIHx8IHZhbHVlcy5sZW5ndGggIT09IG9wdHMubGVuZ3RoIHx8IHZhbHVlcy5sZW5ndGggIT09IHdlaWdodHMubGVuZ3RoKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd2YWx1ZXMsIGRpc3RhbmNlIGZ1bmN0aW9ucywgb3B0aW9ucyBhbmQgd2VpZ2h0cyBhcnJheXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgbGVuZ3RoJyk7XG4gICAgICAgIGlmICh2YWx1ZXMuc29tZSgodikgPT4gdi5sZW5ndGggIT09IHZhbHVlc1swXS5sZW5ndGgpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdhbGwgdmFsdWVzIGFycmF5cyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBsZW5ndGgnKTtcbiAgICAgICAgY29uc3QgbWF0U2l6ZSA9IHZhbHVlc1swXS5sZW5ndGggKiAodmFsdWVzWzBdLmxlbmd0aCAtIDEpIC8gMjtcbiAgICAgICAgY29uc3QgY2h1bmtTaXplID0gTWF0aC5mbG9vcihtYXRTaXplIC8gdGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IG5ldyBBcnJheSh0aGlzLl93b3JrZXJDb3VudCk7XG4gICAgICAgIGNvbnN0IHdvcmtlcnMgPSBuZXcgQXJyYXkodGhpcy5fd29ya2VyQ291bnQpXG4gICAgICAgICAgICAuZmlsbChudWxsKS5tYXAoKCkgPT4gbmV3IFdvcmtlcihuZXcgVVJMKCcuL2tubi10aHJlc2hvbGQtd29ya2VyJywgaW1wb3J0Lm1ldGEudXJsKSkpO1xuICAgICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCB0aGlzLl93b3JrZXJDb3VudDsgaWR4KyspIHtcbiAgICAgICAgICAgIHByb21pc2VzW2lkeF0gPSBuZXcgUHJvbWlzZSgocmVzb2x2ZVdvcmtlciwgcmVqZWN0V29ya2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRJZHggPSBpZHggKiBjaHVua1NpemU7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5kSWR4ID0gaWR4ID09PSB0aGlzLl93b3JrZXJDb3VudCAtIDEgPyBtYXRTaXplIDogKGlkeCArIDEpICogY2h1bmtTaXplO1xuICAgICAgICAgICAgICAgIGlmIChlbmRJZHggPD0gc3RhcnRJZHgpXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVXb3JrZXIoeyBrbm5EaXN0YW5jZXM6IG5ldyBBcnJheSgwKSwga25uSW5kZXhlczogbmV3IEFycmF5KDApIH0pO1xuICAgICAgICAgICAgICAgIHdvcmtlcnNbaWR4XS5wb3N0TWVzc2FnZSh7IHZhbHVlcywgc3RhcnRJZHgsIGVuZElkeCwgZm5OYW1lcywgb3B0cywgdGhyZXNob2xkLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCB9KTtcbiAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0ub25tZXNzYWdlID0gKHsgZGF0YTogeyBlcnJvciwga25uRGlzdGFuY2VzLCBrbm5JbmRleGVzIH0gfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtlcnNbaWR4XS50ZXJtaW5hdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdFdvcmtlcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0udGVybWluYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlV29ya2VyKHsga25uRGlzdGFuY2VzLCBrbm5JbmRleGVzIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgICAgIGNvbnN0IGtublNpemVzID0gbmV3IEludDMyQXJyYXkodmFsdWVzWzBdLmxlbmd0aCk7XG4gICAgICAgIGZvciAoY29uc3QgcmVzIG9mIHJlc3VsdHMpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzWzBdLmxlbmd0aDsgKytpKVxuICAgICAgICAgICAgICAgIGtublNpemVzW2ldICs9IHJlcy5rbm5JbmRleGVzW2ldPy5sZW5ndGggPz8gMDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBrbm5SZXMgPSB7XG4gICAgICAgICAgICBrbm5EaXN0YW5jZXM6IG5ldyBBcnJheSh2YWx1ZXNbMF0ubGVuZ3RoKS5maWxsKG51bGwpLm1hcCgoXywgaSkgPT4gbmV3IEFycmF5KGtublNpemVzW2ldKSksXG4gICAgICAgICAgICBrbm5JbmRleGVzOiBuZXcgQXJyYXkodmFsdWVzWzBdLmxlbmd0aCkuZmlsbChudWxsKS5tYXAoKF8sIGkpID0+IG5ldyBBcnJheShrbm5TaXplc1tpXSkpXG4gICAgICAgIH07XG4gICAgICAgIGZvciAoY29uc3QgcmVzIG9mIHJlc3VsdHMpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzWzBdLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCByZXMua25uRGlzdGFuY2VzW2ldPy5sZW5ndGggPz8gMDsgKytqKSB7XG4gICAgICAgICAgICAgICAgICAgIGtublJlcy5rbm5EaXN0YW5jZXNbaV1ba25uU2l6ZXNbaV0gLSAxXSA9IHJlcy5rbm5EaXN0YW5jZXNbaV1bal07XG4gICAgICAgICAgICAgICAgICAgIGtublJlcy5rbm5JbmRleGVzW2ldW2tublNpemVzW2ldIC0gMV0gPSByZXMua25uSW5kZXhlc1tpXVtqXTtcbiAgICAgICAgICAgICAgICAgICAga25uU2l6ZXNbaV0gLT0gMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtublJlcztcbiAgICB9XG4gICAgYXN5bmMgbXVsdGlDb2x1bW5LTk4odmFsdWVzLCBmbk5hbWVzLCBuTmVpZ2hib3VycyA9IDE1LCBvcHRzLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCA9IERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzLkVVQ0xJREVBTikge1xuICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCAhPT0gZm5OYW1lcy5sZW5ndGggfHwgdmFsdWVzLmxlbmd0aCAhPT0gb3B0cy5sZW5ndGggfHwgdmFsdWVzLmxlbmd0aCAhPT0gd2VpZ2h0cy5sZW5ndGgpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3ZhbHVlcywgZGlzdGFuY2UgZnVuY3Rpb25zLCBvcHRpb25zIGFuZCB3ZWlnaHRzIGFycmF5cyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBsZW5ndGgnKTtcbiAgICAgICAgaWYgKHZhbHVlcy5zb21lKCh2KSA9PiB2Lmxlbmd0aCAhPT0gdmFsdWVzWzBdLmxlbmd0aCkpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FsbCB2YWx1ZXMgYXJyYXlzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGxlbmd0aCcpO1xuICAgICAgICBjb25zdCBtYXRTaXplID0gdmFsdWVzWzBdLmxlbmd0aCAqICh2YWx1ZXNbMF0ubGVuZ3RoIC0gMSkgLyAyO1xuICAgICAgICBjb25zdCBjaHVua1NpemUgPSBNYXRoLmZsb29yKG1hdFNpemUgLyB0aGlzLl93b3JrZXJDb3VudCk7XG4gICAgICAgIGNvbnN0IHByb21pc2VzID0gbmV3IEFycmF5KHRoaXMuX3dvcmtlckNvdW50KTtcbiAgICAgICAgY29uc3Qgd29ya2VycyA9IG5ldyBBcnJheSh0aGlzLl93b3JrZXJDb3VudClcbiAgICAgICAgICAgIC5maWxsKG51bGwpLm1hcCgoKSA9PiBuZXcgV29ya2VyKG5ldyBVUkwoJy4va25uLXdvcmtlcicsIGltcG9ydC5tZXRhLnVybCkpKTtcbiAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgdGhpcy5fd29ya2VyQ291bnQ7IGlkeCsrKSB7XG4gICAgICAgICAgICBwcm9taXNlc1tpZHhdID0gbmV3IFByb21pc2UoKHJlc29sdmVXb3JrZXIsIHJlamVjdFdvcmtlcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0SWR4ID0gaWR4ICogY2h1bmtTaXplO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZElkeCA9IGlkeCA9PT0gdGhpcy5fd29ya2VyQ291bnQgLSAxID8gbWF0U2l6ZSA6IChpZHggKyAxKSAqIGNodW5rU2l6ZTtcbiAgICAgICAgICAgICAgICBpZiAoZW5kSWR4IDw9IHN0YXJ0SWR4KVxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlV29ya2VyKHsga25uRGlzdGFuY2VzOiBuZXcgQXJyYXkoMCksIGtubkluZGV4ZXM6IG5ldyBBcnJheSgwKSB9KTtcbiAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0ucG9zdE1lc3NhZ2UoeyB2YWx1ZXMsIHN0YXJ0SWR4LCBlbmRJZHgsIGZuTmFtZXMsIG9wdHMsIG5OZWlnaGJvdXJzLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCB9KTtcbiAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0ub25tZXNzYWdlID0gKHsgZGF0YTogeyBlcnJvciwga25uRGlzdGFuY2VzLCBrbm5JbmRleGVzIH0gfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtlcnNbaWR4XS50ZXJtaW5hdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdFdvcmtlcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0udGVybWluYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlV29ya2VyKHsga25uRGlzdGFuY2VzLCBrbm5JbmRleGVzIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgICAgIGNvbnN0IGtublJlcyA9IHtcbiAgICAgICAgICAgIGtubkRpc3RhbmNlczogbmV3IEFycmF5KHZhbHVlc1swXS5sZW5ndGgpLmZpbGwobnVsbCkubWFwKCgpID0+IG5ldyBBcnJheShuTmVpZ2hib3VycykuZmlsbCg5OTk5OSkpLFxuICAgICAgICAgICAga25uSW5kZXhlczogbmV3IEFycmF5KHZhbHVlc1swXS5sZW5ndGgpLmZpbGwobnVsbCkubWFwKCgpID0+IG5ldyBBcnJheShuTmVpZ2hib3VycykuZmlsbCgtMSkpXG4gICAgICAgIH07XG4gICAgICAgIGZvciAoY29uc3QgcmVzIG9mIHJlc3VsdHMpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzWzBdLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCByZXMua25uRGlzdGFuY2VzW2ldPy5sZW5ndGggPz8gMDsgKytqKVxuICAgICAgICAgICAgICAgICAgICBpbnNlcnRTbWFsbGVyKGtublJlcy5rbm5EaXN0YW5jZXNbaV0sIGtublJlcy5rbm5JbmRleGVzW2ldLCByZXMua25uRGlzdGFuY2VzW2ldW2pdLCByZXMua25uSW5kZXhlc1tpXVtqXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtublJlcztcbiAgICB9XG4gICAgYXN5bmMgZ2V0U2FtcGxlRGlzdGFuY2VzKHZhbHVlcywgZm5OYW1lcywgb3B0cyA9IFtdLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCA9IERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzLkVVQ0xJREVBTikge1xuICAgICAgICBjb25zdCB0aHJlc2hvbGRXb3JrZXJzID0gbmV3IEFycmF5KHRoaXMuX3dvcmtlckNvdW50KS5maWxsKG51bGwpXG4gICAgICAgICAgICAubWFwKCgpID0+IG5ldyBXb3JrZXIobmV3IFVSTCgnLi9zcGFyc2UtbWF0cml4LXRocmVzaG9sZC13b3JrZXInLCBpbXBvcnQubWV0YS51cmwpKSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBtYXRTaXplID0gdmFsdWVzWzBdLmxlbmd0aCAqICh2YWx1ZXNbMF0ubGVuZ3RoIC0gMSkgLyAyO1xuICAgICAgICAgICAgY29uc3QgY2h1bmtTaXplID0gTWF0aC5mbG9vcihtYXRTaXplIC8gdGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICAgICAgY29uc3QgbWF4U2FtcGxlU2l6ZSA9IDEwMDAwMDA7XG4gICAgICAgICAgICBjb25zdCBzYW1wbGVTaXNlID0gTWF0aC5tYXgoTWF0aC5taW4obWF0U2l6ZSAvIDEwMDAsIG1heFNhbXBsZVNpemUpLCBNYXRoLm1pbihtYXRTaXplLCBtYXhTYW1wbGVTaXplKSk7XG4gICAgICAgICAgICBjb25zdCB0ZXN0U2V0U2l6ZVBlcldvcmtlciA9IE1hdGguZmxvb3Ioc2FtcGxlU2lzZSAvIHRoaXMuX3dvcmtlckNvdW50KTtcbiAgICAgICAgICAgIGNvbnN0IHRQcm9taXNlcyA9IG5ldyBBcnJheSh0aGlzLl93b3JrZXJDb3VudCk7XG4gICAgICAgICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCB0aGlzLl93b3JrZXJDb3VudDsgaWR4KyspIHtcbiAgICAgICAgICAgICAgICB0UHJvbWlzZXNbaWR4XSA9IG5ldyBQcm9taXNlKChyZXNvbHZlV29ya2VyLCByZWplY3RXb3JrZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRJZHggPSBpZHggKiBjaHVua1NpemU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuZElkeCA9IGlkeCA9PT0gdGhpcy5fd29ya2VyQ291bnQgLSAxID8gbWF0U2l6ZSA6IChpZHggKyAxKSAqIGNodW5rU2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhyZXNob2xkV29ya2Vyc1tpZHhdLnBvc3RNZXNzYWdlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlczogdmFsdWVzLCBzdGFydElkeCwgZW5kSWR4LCBzYW1wbGVMZW5ndGg6IHRlc3RTZXRTaXplUGVyV29ya2VyLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm5OYW1lcywgb3B0cywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2RcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRocmVzaG9sZFdvcmtlcnNbaWR4XS5vbm1lc3NhZ2UgPSAoeyBkYXRhOiB7IGVycm9yLCBkaXN0YW5jZSB9IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocmVzaG9sZFdvcmtlcnNbaWR4XS50ZXJtaW5hdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3RXb3JrZXIoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVXb3JrZXIoeyBkaXN0YW5jZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbCh0UHJvbWlzZXMpO1xuICAgICAgICAgICAgY29uc3QgZnVsbFNpemUgPSByZXN1bHRzLnJlZHVjZSgoYWNjLCB2YWwpID0+IGFjYyArIHZhbC5kaXN0YW5jZS5sZW5ndGgsIDApO1xuICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBuZXcgRmxvYXQzMkFycmF5KGZ1bGxTaXplKTtcbiAgICAgICAgICAgIGxldCBvZmZzZXQgPSAwO1xuICAgICAgICAgICAgZm9yIChjb25zdCByZXMgb2YgcmVzdWx0cykge1xuICAgICAgICAgICAgICAgIGRpc3RhbmNlLnNldChyZXMuZGlzdGFuY2UsIG9mZnNldCk7XG4gICAgICAgICAgICAgICAgb2Zmc2V0ICs9IHJlcy5kaXN0YW5jZS5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkaXN0YW5jZS5zb3J0KCk7XG4gICAgICAgICAgICByZXR1cm4gZGlzdGFuY2U7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocmVzaG9sZFdvcmtlcnM/LmZvckVhY2goKHcpID0+IHc/LnRlcm1pbmF0ZSgpKTtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEZsb2F0MzJBcnJheSgxKS5maWxsKDAuNSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgZ2V0TWluaW1hbFRocmVzaG9sZCh2YWx1ZXMsIGZuTmFtZXMsIG9wdHMgPSBbXSwgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QgPSBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcy5FVUNMSURFQU4pIHtcbiAgICAgICAgLy9XZSBuZWVkIHRvIGNhbGN1bGF0ZSB0aGUgbWluaW1hbCB0aHJlc2hvbGQgZmlyc3QsXG4gICAgICAgIC8vaW4gb3JkZXIgdG8gZ2V0IG1hdHJpeCBzdWNoIHRoYXQgaXQgZG9lcyBub3QgZXhjZWVkIHRoZSBtYXhpbXVtIHNpemUgb2YgMUdCXG4gICAgICAgIC8vd2UgaGF2ZSAzIHJldHVybiBhcnJheXMsIGVhY2ggNCBiaXRlcyBwZXIgZWxlbWVudCwgc28gaWYgdGhlIG1heGltdW0gc2l6ZSBvZiB0aGUgbWF0cml4IGlzIDFHQixcbiAgICAgICAgY29uc3QgbWF4U3BhcnNlTWF0cml4U2l6ZSA9IDcwMDAwMDAwO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgbWF0U2l6ZSA9IHZhbHVlcy5sZW5ndGggKiAodmFsdWVzLmxlbmd0aCAtIDEpIC8gMjtcbiAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlID0gYXdhaXQgdGhpcy5nZXRTYW1wbGVEaXN0YW5jZXModmFsdWVzLCBmbk5hbWVzLCBvcHRzLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCk7XG4gICAgICAgICAgICBjb25zdCBmcmFjdGlvbkluZGV4ID0gTWF0aC5mbG9vcihtYXhTcGFyc2VNYXRyaXhTaXplIC8gbWF0U2l6ZSAqIGRpc3RhbmNlLmxlbmd0aCk7XG4gICAgICAgICAgICBjb25zdCB0aHJlc2hvbGQgPSAxIC0gZGlzdGFuY2VbZnJhY3Rpb25JbmRleF07XG4gICAgICAgICAgICAvLyB0aHJlc2hvbGQgPSBNYXRoLm1heCh0aHJlc2hvbGQsIDAuMyk7XG4gICAgICAgICAgICByZXR1cm4gdGhyZXNob2xkO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgcmV0dXJuIDAuNTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzdGF0aWMgY2FsY1N5bmModmFsdWVzLCBmbk5hbWUsIGRpc3RhbmNlRm4sIHRocmVzaG9sZCkge1xuICAgICAgICBjb25zdCBpID0gW107XG4gICAgICAgIGNvbnN0IGogPSBbXTtcbiAgICAgICAgY29uc3QgZGlzdGFuY2VzID0gW107XG4gICAgICAgIGxldCBjbnQgPSAwO1xuICAgICAgICBsZXQgbWkgPSAwO1xuICAgICAgICBsZXQgbWogPSAwO1xuICAgICAgICBjb25zdCBmdWxsU2l6ZSA9IHZhbHVlcy5sZW5ndGggKiAodmFsdWVzLmxlbmd0aCAtIDEpIC8gMjtcbiAgICAgICAgd2hpbGUgKGNudCA8IGZ1bGxTaXplKSB7XG4gICAgICAgICAgICAvL2NvbnN0IHZhbHVlID0gc2VxMUxpc3RbbWldICYmIHNlcTFMaXN0W21qXSA/IGhhbW1pbmcoc2VxMUxpc3RbbWldLCBzZXExTGlzdFttal0pIDogMDtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gIWlzTmlsKHZhbHVlc1ttaV0pICYmICFpc05pbCh2YWx1ZXNbbWpdKSA/XG4gICAgICAgICAgICAgICAgZGlzdGFuY2VGbih2YWx1ZXNbbWldLCB2YWx1ZXNbbWpdKSA6IDE7XG4gICAgICAgICAgICBjb25zdCBzaW1pbGFyaXR5ID0gMSAtIHZhbHVlO1xuICAgICAgICAgICAgaWYgKHNpbWlsYXJpdHkgPj0gdGhyZXNob2xkKSB7XG4gICAgICAgICAgICAgICAgaS5wdXNoKG1pKTtcbiAgICAgICAgICAgICAgICBqLnB1c2gobWopO1xuICAgICAgICAgICAgICAgIGRpc3RhbmNlcy5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNudCsrO1xuICAgICAgICAgICAgbWorKztcbiAgICAgICAgICAgIGlmIChtaiA9PT0gdmFsdWVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIG1pKys7XG4gICAgICAgICAgICAgICAgbWogPSBtaSArIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaUFycmF5ID0gbmV3IEludDMyQXJyYXkoaSk7XG4gICAgICAgIGNvbnN0IGpBcnJheSA9IG5ldyBJbnQzMkFycmF5KGopO1xuICAgICAgICBjb25zdCBkaXN0YW5jZUFycmF5ID0gbmV3IEZsb2F0MzJBcnJheShkaXN0YW5jZXMpO1xuICAgICAgICByZXR1cm4geyBpOiBpQXJyYXksIGo6IGpBcnJheSwgZGlzdGFuY2U6IGRpc3RhbmNlQXJyYXkgfTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljM0JoY25ObExXMWhkSEpwZUMxelpYSjJhV05sTG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2ljM0JoY25ObExXMWhkSEpwZUMxelpYSjJhV05sTG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVTkJMRTlCUVU4c1JVRkJORUlzTUVKQlFUQkNMRVZCUVVNc1RVRkJUU3hUUVVGVExFTkJRVU03UVVGRE9VVXNUMEZCVHl4RlFVRkRMR0ZCUVdFc1JVRkJSU3hMUVVGTExFVkJRVU1zVFVGQlRTeFRRVUZUTEVOQlFVTTdRVUZoTjBNc1RVRkJUU3hQUVVGUExHMUNRVUZ0UWp0SlFVTndRaXhaUVVGWkxFTkJRVk03U1VGRE4wSTdVVUZEUlN4SlFVRkpMRU5CUVVNc1dVRkJXU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNVMEZCVXl4RFFVRkRMRzFDUVVGdFFpeEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOeVJTeERRVUZETzBsQlJVMHNTMEZCU3l4RFFVRkRMR1ZCUVdVc1EwRkJReXhOUVVGdlFpeEZRVUZGTEU5QlFYVkNMRVZCUTNoRkxGTkJRV2xDTEVWQlFVVXNUMEZCTmtJc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeFZRVUZ2UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVNM1JTeHZRa0ZCSzBNc01FSkJRVEJDTEVOQlFVTXNVMEZCVXp0UlFVVnVSaXhOUVVGTkxFOUJRVThzUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZET1VRc1RVRkJUU3hUUVVGVExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFGQlJURkVMRTFCUVUwc1dVRkJXU3hIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1MwRkJUU3hEUVVGRExFTkJRVU03V1VGRE9VTXNUVUZCVFN4SlFVRkpMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hKUVVGSkxFVkJRVVVzVDBGQlR5eEZRVUZGTEdsQ1FVRnBRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTjRSaXhKUVVGSkxGTkJRVk1zUjBGQlJ5eFpRVUZaTEVWQlFVVTdXVUZETlVJc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eHRRa0ZCYlVJc1dVRkJXU3hGUVVGRkxFTkJRVU1zUTBGQlF6dFpRVU12UXl4VFFVRlRMRWRCUVVjc1dVRkJXU3hEUVVGRE8xTkJRekZDTzFGQlEwUXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTXNSMEZCUnl4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVONlJDeE5RVUZOTEZGQlFWRXNSMEZEV2l4SlFVRkpMRXRCUVVzc1EwRkJPRUlzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMUZCUlRWRUxFMUJRVTBzVDBGQlR5eEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU03WVVGRGVrTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFZEJRVWNzUTBGQlF5eDNRa0ZCZDBJc1JVRkJSU3hOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVONFJpeExRVUZMTEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSVHRaUVVOb1JDeFJRVUZSTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1NVRkJTU3hQUVVGUExFTkJRVU1zUTBGQlF5eGhRVUZoTEVWQlFVVXNXVUZCV1N4RlFVRkZMRVZCUVVVN1owSkJRekZFTEUxQlFVMHNVVUZCVVN4SFFVRkhMRWRCUVVjc1IwRkJSeXhUUVVGVExFTkJRVU03WjBKQlEycERMRTFCUVUwc1RVRkJUU3hIUVVGSExFZEJRVWNzUzBGQlN5eEpRVUZKTEVOQlFVTXNXVUZCV1N4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eFRRVUZUTEVOQlFVTTdaMEpCUXk5RkxFbEJRVWtzVFVGQlRTeEpRVUZKTEZGQlFWRTdiMEpCUTNCQ0xHRkJRV0VzUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNTVUZCU1N4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzVVVGQlVTeEZRVUZGTEVsQlFVa3NXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFZEJRVWNzUlVGQlF5eERRVUZETEVOQlFVTTdaMEpCUTJ4SExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4WFFVRlhMRU5CUVVNc1JVRkJReXhOUVVGTkxFVkJRVVVzVVVGQlVTeEZRVUZGTEUxQlFVMHNSVUZCUlN4VFFVRlRMRVZCUVVVc1QwRkJUeXhGUVVGRkxFbEJRVWtzUlVGQlJTeFBRVUZQTEVWQlFVVXNhVUpCUVdsQ0xFVkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTXpSeXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4SFFVRkhMRU5CUVVNc1JVRkJReXhKUVVGSkxFVkJRVVVzUlVGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hSUVVGUkxFVkJRVU1zUlVGQlF5eEZRVUZSTEVWQlFVVTdiMEpCUTJwRkxFbEJRVWtzUzBGQlN5eEZRVUZGTzNkQ1FVTlVMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXp0M1FrRkRla0lzV1VGQldTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPM0ZDUVVOeVFqdDVRa0ZCVFR0M1FrRkRUQ3hQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN2QwSkJRM3BDTEdGQlFXRXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzVVVGQlVTeEZRVUZGTEVkQlFVY3NSVUZCUXl4RFFVRkRMRU5CUVVNN2NVSkJRM1JETzJkQ1FVTklMRU5CUVVNc1EwRkJRenRaUVVOS0xFTkJRVU1zUTBGQlF5eERRVUZETzFOQlEwbzdVVUZGUkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhOUVVGTkxFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1VVRkROVU1zVFVGQlRTeFJRVUZSTEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOeVJTeE5RVUZOTEVOQlFVTXNSMEZCUnl4SlFVRkpMRlZCUVZVc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU51UXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhKUVVGSkxGVkJRVlVzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0UlFVTnVReXhOUVVGTkxGRkJRVkVzUjBGQlJ5eEpRVUZKTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRSUVVNMVF5eEpRVUZKTEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRaaXh6UWtGQmMwSTdVVUZEZEVJc1MwRkJTeXhOUVVGTkxFZEJRVWNzU1VGQlNTeFBRVUZQTEVWQlFVVTdXVUZEZWtJc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8xbEJRM0pDTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0WlFVTnlRaXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRlJMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03V1VGRGJrTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETzFOQlEzaENPMUZCUTBRc1QwRkJUeXhGUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNVVUZCVVN4RlFVRkRMRU5CUVVNN1NVRkRNVUlzUTBGQlF6dEpRVVZOTEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVrc1RVRkJaMElzUlVGQlJTeE5RVUZ2UWl4RlFVRkZMRk5CUVdsQ0xFVkJRVVVzVDBGQk1rSXNSVUZCUlR0UlFVTXpSeXh4UWtGQmNVSTdVVUZEY2tJc1QwRkJUeXhOUVVGTkxFbEJRVWtzUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEZOQlFWTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTm9SaXhEUVVGRE8wbEJSVTBzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZEYWtJc1RVRkJhMElzUlVGQlJTeE5RVUZ2UWl4RlFVRkZMR05CUVhOQ0xFVkJRVVVzUlVGQlJTeFBRVUV5UWl4RlFVRkZPMUZCUldwSExFOUJRVThzVFVGQlRTeEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4WFFVRlhMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRha1lzUTBGQlF6dEpRVVZOTEV0QlFVc3NRMEZCUXl4bFFVRmxMRU5CUXpGQ0xFMUJRV3RDTEVWQlFVVXNUVUZCYjBJc1JVRkJSU3haUVVGdlFpeEhRVUZITEVWQlFVVXNUMEZCTWtJc1JVRkJSVHRSUVVWb1J5eFBRVUZQTEUxQlFVMHNTVUZCU1N4RFFVRkRMSFZDUVVGMVFpeERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeFRRVUZUTEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEZUVZc1EwRkJRenRKUVVWTkxFdEJRVXNzUTBGQlF5eDFRa0ZCZFVJc1EwRkJReXhOUVVGNVFpeEZRVUZGTEU5QlFYVkNMRVZCUVVVc1dVRkJiMElzUjBGQlJ5eEZRVU01Unl4SlFVRXdRaXhGUVVGRkxFOUJRV2xDTEVWQlF6ZERMRzlDUVVFclF5d3dRa0ZCTUVJc1EwRkJReXhUUVVGVE8xRkJSVzVHTEVsQlFVa3NUVUZCVFN4RFFVRkRMRTFCUVUwc1MwRkJTeXhQUVVGUExFTkJRVU1zVFVGQlRTeEpRVUZKTEUxQlFVMHNRMEZCUXl4TlFVRk5MRXRCUVVzc1NVRkJTU3hEUVVGRExFMUJRVTBzU1VGQlNTeE5RVUZOTEVOQlFVTXNUVUZCVFN4TFFVRkxMRTlCUVU4c1EwRkJReXhOUVVGTk8xbEJRM1pITEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc2IwWkJRVzlHTEVOQlFVTXNRMEZCUXp0UlFVVjRSeXhKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEV0QlFVc3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF6dFpRVU51UkN4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExDdERRVUVyUXl4RFFVRkRMRU5CUVVNN1VVRkZia1VzVFVGQlRTeFBRVUZQTEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUXpsRUxFMUJRVTBzVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0UlFVTXhSQ3hOUVVGTkxGRkJRVkVzUjBGRFdpeEpRVUZKTEV0QlFVc3NRMEZCY1VJc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFGQlEyNUVMRTFCUVUwc1QwRkJUeXhIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNN1lVRkRla01zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRWRCUVVjc1EwRkJReXgzUWtGQmQwSXNSVUZCUlN4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTjRSaXhMUVVGTExFbEJRVWtzUjBGQlJ5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlR0WlFVTm9SQ3hSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NTVUZCU1N4UFFVRlBMRU5CUVVNc1EwRkJReXhoUVVGaExFVkJRVVVzV1VGQldTeEZRVUZGTEVWQlFVVTdaMEpCUXpGRUxFMUJRVTBzVVVGQlVTeEhRVUZITEVkQlFVY3NSMEZCUnl4VFFVRlRMRU5CUVVNN1owSkJRMnBETEUxQlFVMHNUVUZCVFN4SFFVRkhMRWRCUVVjc1MwRkJTeXhKUVVGSkxFTkJRVU1zV1VGQldTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhUUVVGVExFTkJRVU03WjBKQlF5OUZMRWxCUVVrc1RVRkJUU3hKUVVGSkxGRkJRVkU3YjBKQlEzQkNMR0ZCUVdFc1EwRkJReXhGUVVGRExGbEJRVmtzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hWUVVGVkxFVkJRVVVzU1VGQlNTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1EwRkJReXhEUVVGRE8yZENRVU40UlN4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEVWQlFVTXNUVUZCVFN4RlFVRkZMRkZCUVZFc1JVRkJSU3hOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVsQlFVa3NSVUZCUlN4VFFVRlRMRVZCUVVVc1QwRkJUeXhGUVVGRkxHbENRVUZwUWl4RlFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRE0wY3NUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUjBGQlJ5eERRVUZETEVWQlFVTXNTVUZCU1N4RlFVRkZMRVZCUVVNc1MwRkJTeXhGUVVGRkxGbEJRVmtzUlVGQlJTeFZRVUZWTEVWQlFVTXNSVUZCUXl4RlFVRlJMRVZCUVVVN2IwSkJRek5GTEVsQlFVa3NTMEZCU3l4RlFVRkZPM2RDUVVOVUxFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJRenQzUWtGRGVrSXNXVUZCV1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8zRkNRVU55UWp0NVFrRkJUVHQzUWtGRFRDeFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03ZDBKQlEzcENMR0ZCUVdFc1EwRkJReXhGUVVGRExGbEJRVmtzUlVGQlJTeFZRVUZWTEVWQlFVTXNRMEZCUXl4RFFVRkRPM0ZDUVVNelF6dG5Ra0ZEU0N4RFFVRkRMRU5CUVVNN1dVRkRTaXhEUVVGRExFTkJRVU1zUTBGQlF6dFRRVU5LTzFGQlJVUXNUVUZCVFN4UFFVRlBMRWRCUVVjc1RVRkJUU3hQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMUZCUXpWRExFMUJRVTBzVVVGQlVTeEhRVUZITEVsQlFVa3NWVUZCVlN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTnNSQ3hMUVVGTExFMUJRVTBzUjBGQlJ5eEpRVUZKTEU5QlFVOHNSVUZCUlR0WlFVTjZRaXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNSVUZCUlN4RlFVRkZMRU5CUVVNN1owSkJRM1pETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hIUVVGSExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRTFCUVUwc1NVRkJTU3hEUVVGRExFTkJRVU03VTBGRGFrUTdVVUZEUkN4TlFVRk5MRTFCUVUwc1IwRkJZenRaUVVONFFpeFpRVUZaTEVWQlFVVXNTVUZCU1N4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEV0QlFVc3NRMEZCVXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU5zUnl4VlFVRlZMRVZCUVVVc1NVRkJTU3hMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4SlFVRkpMRXRCUVVzc1EwRkJVeXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0VFFVRkRMRU5CUVVNN1VVRkRjRWNzUzBGQlN5eE5RVUZOTEVkQlFVY3NTVUZCU1N4UFFVRlBMRVZCUVVVN1dVRkRla0lzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVU3WjBKQlEzcERMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEUxQlFVMHNTVUZCU1N4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVU3YjBKQlEzcEVMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUTJwRkxFMUJRVTBzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN2IwSkJRemRFTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03YVVKQlEyeENPMkZCUTBZN1UwRkRSanRSUVVORUxFOUJRVThzVFVGQlRTeERRVUZETzBsQlEyaENMRU5CUVVNN1NVRkZUU3hMUVVGTExFTkJRVU1zWTBGQll5eERRVUZETEUxQlFYbENMRVZCUVVVc1QwRkJkVUlzUlVGQlJTeGpRVUZ6UWl4RlFVRkZMRVZCUTNSSExFbEJRVEJDTEVWQlFVVXNUMEZCYVVJc1JVRkROME1zYjBKQlFTdERMREJDUVVFd1FpeERRVUZETEZOQlFWTTdVVUZGYmtZc1NVRkJTU3hOUVVGTkxFTkJRVU1zVFVGQlRTeExRVUZMTEU5QlFVOHNRMEZCUXl4TlFVRk5MRWxCUVVrc1RVRkJUU3hEUVVGRExFMUJRVTBzUzBGQlN5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SlFVRkpMRTFCUVUwc1EwRkJReXhOUVVGTkxFdEJRVXNzVDBGQlR5eERRVUZETEUxQlFVMDdXVUZEZGtjc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eHZSa0ZCYjBZc1EwRkJReXhEUVVGRE8xRkJSWGhITEVsQlFVa3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1MwRkJTeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRPMWxCUTI1RUxFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNLME5CUVN0RExFTkJRVU1zUTBGQlF6dFJRVVZ1UlN4TlFVRk5MRTlCUVU4c1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRE9VUXNUVUZCVFN4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVkQlFVY3NTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8xRkJRekZFTEUxQlFVMHNVVUZCVVN4SFFVTmFMRWxCUVVrc1MwRkJTeXhEUVVGeFFpeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1VVRkRia1FzVFVGQlRTeFBRVUZQTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF6dGhRVU42UXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRWxCUVVrc1RVRkJUU3hEUVVGRExFbEJRVWtzUjBGQlJ5eERRVUZETEdOQlFXTXNSVUZCUlN4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTTVSU3hMUVVGTExFbEJRVWtzUjBGQlJ5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlR0WlFVTm9SQ3hSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NTVUZCU1N4UFFVRlBMRU5CUVVNc1EwRkJReXhoUVVGaExFVkJRVVVzV1VGQldTeEZRVUZGTEVWQlFVVTdaMEpCUXpGRUxFMUJRVTBzVVVGQlVTeEhRVUZITEVkQlFVY3NSMEZCUnl4VFFVRlRMRU5CUVVNN1owSkJRMnBETEUxQlFVMHNUVUZCVFN4SFFVRkhMRWRCUVVjc1MwRkJTeXhKUVVGSkxFTkJRVU1zV1VGQldTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhUUVVGVExFTkJRVU03WjBKQlF5OUZMRWxCUVVrc1RVRkJUU3hKUVVGSkxGRkJRVkU3YjBKQlEzQkNMR0ZCUVdFc1EwRkJReXhGUVVGRExGbEJRVmtzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hWUVVGVkxFVkJRVVVzU1VGQlNTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1EwRkJReXhEUVVGRE8yZENRVU40UlN4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEVWQlFVTXNUVUZCVFN4RlFVRkZMRkZCUVZFc1JVRkJSU3hOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVsQlFVa3NSVUZCUlN4WFFVRlhMRVZCUVVVc1QwRkJUeXhGUVVGRkxHbENRVUZwUWl4RlFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRE4wY3NUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUjBGQlJ5eERRVUZETEVWQlFVTXNTVUZCU1N4RlFVRkZMRVZCUVVNc1MwRkJTeXhGUVVGRkxGbEJRVmtzUlVGQlJTeFZRVUZWTEVWQlFVTXNSVUZCUXl4RlFVRlJMRVZCUVVVN2IwSkJRek5GTEVsQlFVa3NTMEZCU3l4RlFVRkZPM2RDUVVOVUxFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJRenQzUWtGRGVrSXNXVUZCV1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8zRkNRVU55UWp0NVFrRkJUVHQzUWtGRFRDeFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03ZDBKQlEzcENMR0ZCUVdFc1EwRkJReXhGUVVGRExGbEJRVmtzUlVGQlJTeFZRVUZWTEVWQlFVTXNRMEZCUXl4RFFVRkRPM0ZDUVVNelF6dG5Ra0ZEU0N4RFFVRkRMRU5CUVVNN1dVRkRTaXhEUVVGRExFTkJRVU1zUTBGQlF6dFRRVU5LTzFGQlJVUXNUVUZCVFN4UFFVRlBMRWRCUVVjc1RVRkJUU3hQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMUZCUXpWRExFMUJRVTBzVFVGQlRTeEhRVUZqTzFsQlEzaENMRmxCUVZrc1JVRkJSU3hKUVVGSkxFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTEV0QlFVc3NRMEZCVXl4WFFVRlhMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdXVUZETVVjc1ZVRkJWU3hGUVVGRkxFbEJRVWtzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVa3NTMEZCU3l4RFFVRlRMRmRCUVZjc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMU5CUVVNc1EwRkJRenRSUVVONlJ5eExRVUZMTEUxQlFVMHNSMEZCUnl4SlFVRkpMRTlCUVU4c1JVRkJSVHRaUVVONlFpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJUdG5Ra0ZEZWtNc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNUVUZCVFN4SlFVRkpMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU03YjBKQlEzWkVMR0ZCUVdFc1EwRkJReXhOUVVGTkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRTFCUVUwc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSMEZCUnl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1lVRkROMGM3VTBGRFJqdFJRVU5FTEU5QlFVOHNUVUZCVFN4RFFVRkRPMGxCUTJoQ0xFTkJRVU03U1VGRlRTeExRVUZMTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zVFVGQmIwSXNSVUZEYkVRc1QwRkJkVUlzUlVGQlJTeFBRVUUyUWl4RlFVRkZMRVZCUVVVc1QwRkJhVUlzUlVGRE0wVXNiMEpCUVN0RExEQkNRVUV3UWl4RFFVRkRMRk5CUVZNN1VVRkRia1lzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF6dGhRVU0zUkN4SFFVRkhMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zU1VGQlNTeE5RVUZOTEVOQlFVTXNTVUZCU1N4SFFVRkhMRU5CUVVNc2EwTkJRV3RETEVWQlFVVXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGZGtZc1NVRkJTVHRaUVVOR0xFMUJRVTBzVDBGQlR5eEhRVUZITEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTTVSQ3hOUVVGTkxGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdXVUZETVVRc1RVRkJUU3hoUVVGaExFZEJRVWNzVDBGQlV5eERRVUZETzFsQlEyaERMRTFCUVUwc1ZVRkJWU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFZEJRVWNzU1VGQlNTeEZRVUZGTEdGQlFXRXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eEZRVUZGTEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRka2NzVFVGQlRTeHZRa0ZCYjBJc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZWQlFWVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03V1VGRGVFVXNUVUZCVFN4VFFVRlRMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVzlETEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRaUVVWc1JpeExRVUZMTEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSVHRuUWtGRGFFUXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFbEJRVWtzVDBGQlR5eERRVUZETEVOQlFVTXNZVUZCWVN4RlFVRkZMRmxCUVZrc1JVRkJSU3hGUVVGRk8yOUNRVU16UkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhIUVVGSExFZEJRVWNzVTBGQlV5eERRVUZETzI5Q1FVTnFReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEhRVUZITEV0QlFVc3NTVUZCU1N4RFFVRkRMRmxCUVZrc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NVMEZCVXl4RFFVRkRPMjlDUVVNdlJTeG5Ra0ZCWjBJc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTTdkMEpCUTJoRExFMUJRVTBzUlVGQlJTeE5RVUZOTEVWQlFVVXNVVUZCVVN4RlFVRkZMRTFCUVUwc1JVRkJSU3haUVVGWkxFVkJRVVVzYjBKQlFXOUNPM2RDUVVOd1JTeFBRVUZQTEVWQlFVVXNTVUZCU1N4RlFVRkZMRTlCUVU4c1JVRkJSU3hwUWtGQmFVSTdjVUpCUXpGRExFTkJRVU1zUTBGQlF6dHZRa0ZEU0N4blFrRkJaMElzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRWRCUVVjc1EwRkJReXhGUVVGRExFbEJRVWtzUlVGQlJTeEZRVUZETEV0QlFVc3NSVUZCUlN4UlFVRlJMRVZCUVVNc1JVRkJReXhGUVVGUkxFVkJRVVU3ZDBKQlEzQkZMR2RDUVVGblFpeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8zZENRVU5zUXl4SlFVRkpMRXRCUVVzN05FSkJRVVVzV1VGQldTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPenMwUWtGRE4wSXNZVUZCWVN4RFFVRkRMRVZCUVVNc1VVRkJVU3hGUVVGRExFTkJRVU1zUTBGQlF6dHZRa0ZET1VJc1EwRkJReXhEUVVGRE8yZENRVU5LTEVOQlFVTXNRMEZCUXl4RFFVRkRPMkZCUTBvN1dVRkZSQ3hOUVVGTkxFOUJRVThzUjBGQlJ5eE5RVUZOTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03V1VGRE4wTXNUVUZCVFN4UlFVRlJMRWRCUVVjc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUjBGQlJ5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU0xUlN4TlFVRk5MRkZCUVZFc1IwRkJSeXhKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0WlFVTTFReXhKUVVGSkxFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZEWml4TFFVRkxMRTFCUVUwc1IwRkJSeXhKUVVGSkxFOUJRVThzUlVGQlJUdG5Ra0ZEZWtJc1VVRkJVU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVN4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8yZENRVU51UXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTTdZVUZETDBJN1dVRkRSQ3hSUVVGUkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdXVUZGYUVJc1QwRkJUeXhSUVVGUkxFTkJRVU03VTBGRGFrSTdVVUZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSVHRaUVVOV0xHZENRVUZuUWl4RlFVRkZMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RlFVRkZMRk5CUVZNc1JVRkJSU3hEUVVGRExFTkJRVU03V1VGRGFrUXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU5xUWl4UFFVRlBMRWxCUVVrc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRUUVVOMFF6dEpRVU5JTEVOQlFVTTdTVUZGVHl4TFFVRkxMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNUVUZCYjBJc1JVRkRjRVFzVDBGQmRVSXNSVUZCUlN4UFFVRTJRaXhGUVVGRkxFVkJRVVVzVDBGQmFVSXNSVUZETTBVc2IwSkJRU3RETERCQ1FVRXdRaXhEUVVGRExGTkJRVk03VVVGRGJrWXNiVVJCUVcxRU8xRkJRMjVFTERaRlFVRTJSVHRSUVVNM1JTeHBSMEZCYVVjN1VVRkRha2NzVFVGQlRTeHRRa0ZCYlVJc1IwRkJSeXhSUVVGVkxFTkJRVU03VVVGRGRrTXNTVUZCU1R0WlFVTkdMRTFCUVUwc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTjRSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUTBGQlF5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWxCUVVrc1JVRkJSU3hQUVVGUExFVkJRVVVzYVVKQlFXbENMRU5CUVVNc1EwRkJRenRaUVVOc1J5eE5RVUZOTEdGQlFXRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHMUNRVUZ0UWl4SFFVRkhMRTlCUVU4c1IwRkJSeXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdXVUZEYkVZc1RVRkJUU3hUUVVGVExFZEJRVWNzUTBGQlF5eEhRVUZITEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJRenRaUVVNNVF5eDNRMEZCZDBNN1dVRkRlRU1zVDBGQlR5eFRRVUZUTEVOQlFVTTdVMEZEYkVJN1VVRkJReXhQUVVGUExFTkJRVU1zUlVGQlJUdFpRVU5XTEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGFrSXNUMEZCVHl4SFFVRkhMRU5CUVVNN1UwRkRXanRKUVVOSUxFTkJRVU03U1VGRlRTeE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVTndRaXhOUVVFclFpeEZRVUZGTEUxQlFXOUNMRVZCUVVVc1ZVRkJiMElzUlVGQlJTeFRRVUZwUWp0UlFVVTVSaXhOUVVGTkxFTkJRVU1zUjBGQllTeEZRVUZGTEVOQlFVTTdVVUZEZGtJc1RVRkJUU3hEUVVGRExFZEJRV0VzUlVGQlJTeERRVUZETzFGQlEzWkNMRTFCUVUwc1UwRkJVeXhIUVVGaExFVkJRVVVzUTBGQlF6dFJRVU12UWl4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRFdpeEpRVUZKTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRXQ3hKUVVGSkxFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEV0N4TlFVRk5MRkZCUVZFc1IwRkJSeXhOUVVGTkxFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEZWtRc1QwRkJUeXhIUVVGSExFZEJRVWNzVVVGQlVTeEZRVUZGTzFsQlEzSkNMSFZHUVVGMVJqdFpRVU4yUml4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU4wUkN4VlFVRlZMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEUxQlFVMHNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEZWtNc1RVRkJUU3hWUVVGVkxFZEJRVWNzUTBGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXp0WlFVTTNRaXhKUVVGSkxGVkJRVlVzU1VGQlNTeFRRVUZUTEVWQlFVVTdaMEpCUXpOQ0xFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1owSkJRMWdzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRuUWtGRFdDeFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8yRkJRM1pDTzFsQlEwUXNSMEZCUnl4RlFVRkZMRU5CUVVNN1dVRkRUaXhGUVVGRkxFVkJRVVVzUTBGQlF6dFpRVU5NTEVsQlFVa3NSVUZCUlN4TFFVRkxMRTFCUVUwc1EwRkJReXhOUVVGTkxFVkJRVVU3WjBKQlEzaENMRVZCUVVVc1JVRkJSU3hEUVVGRE8yZENRVU5NTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8yRkJRMkk3VTBGRFJqdFJRVVZFTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEycERMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTJwRExFMUJRVTBzWVVGQllTeEhRVUZITEVsQlFVa3NXVUZCV1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJSV3hFTEU5QlFVOHNSVUZCUXl4RFFVRkRMRVZCUVVVc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeE5RVUZOTEVWQlFVVXNVVUZCVVN4RlFVRkZMR0ZCUVdFc1JVRkJReXhEUVVGRE8wbEJRM3BFTEVOQlFVTTdRMEZEU2lJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN1MyNXZkMjVOWlhSeWFXTnpmU0JtY205dElDY3VMaTkwZVhCbFpDMXRaWFJ5YVdOekp6dGNibWx0Y0c5eWRDQjdSR2x6ZEdGdVkyVkJaMmR5WldkaGRHbHZiazFsZEdodlpDd2dSR2x6ZEdGdVkyVkJaMmR5WldkaGRHbHZiazFsZEdodlpITjlJR1p5YjIwZ0p5NHZkSGx3WlhNbk8xeHVhVzF3YjNKMElIdHBibk5sY25SVGJXRnNiR1Z5TENCcGMwNXBiSDBnWm5KdmJTQW5MaTkxZEdsc2N5YzdYRzVjYm1WNGNHOXlkQ0IwZVhCbElGTndZWEp6WlUxaGRISnBlRkpsYzNWc2RDQTlJSHRjYmlBZ2FUb2dTVzUwTXpKQmNuSmhlU3hjYmlBZ2Fqb2dTVzUwTXpKQmNuSmhlU3hjYmlBZ1pHbHpkR0Z1WTJVNklFWnNiMkYwTXpKQmNuSmhlU3hjYmlBZ2FXUjRQem9nYm5WdFltVnlYRzU5TzF4dVhHNWxlSEJ2Y25RZ2RIbHdaU0JMYm01U1pYTjFiSFFnUFNCN1hHNGdJR3R1YmtScGMzUmhibU5sY3pvZ2JuVnRZbVZ5VzExYlhTeGNiaUFnYTI1dVNXNWtaWGhsY3pvZ2JuVnRZbVZ5VzExYlhWeHVmVnh1Wlhod2IzSjBJR05zWVhOeklGTndZWEp6WlUxaGRISnBlRk5sY25acFkyVWdlMXh1SUNBZ0lIQnlhWFpoZEdVZ1gzZHZjbXRsY2tOdmRXNTBPaUJ1ZFcxaVpYSTdYRzRnSUNBZ1kyOXVjM1J5ZFdOMGIzSW9LU0I3WEc0Z0lDQWdJQ0IwYUdsekxsOTNiM0pyWlhKRGIzVnVkQ0E5SUUxaGRHZ3ViV0Y0S0c1aGRtbG5ZWFJ2Y2k1b1lYSmtkMkZ5WlVOdmJtTjFjbkpsYm1ONUlDMGdNaXdnTVNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY0hWaWJHbGpJR0Z6ZVc1aklHTmhiR05OZFd4MGFVTnZiSFZ0YmloMllXeDFaWE02SUVGeWNtRjVQR0Z1ZVZ0ZFBpd2dabTVPWVcxbGN6b2dTMjV2ZDI1TlpYUnlhV056VzEwc1hHNGdJQ0FnSUNCMGFISmxjMmh2YkdRNklHNTFiV0psY2l3Z2IzQjBjem9nZTF0Zk9pQnpkSEpwYm1kZE9pQmhibmw5VzEwZ1BTQmJlMzFkTENCM1pXbG5hSFJ6T2lCdWRXMWlaWEpiWFNBOUlGc3hYU3hjYmlBZ0lDQWdJR0ZuWjNKbFoyRjBhVzl1VFdWMGFHOWtPaUJFYVhOMFlXNWpaVUZuWjNKbFoyRjBhVzl1VFdWMGFHOWtJRDBnUkdsemRHRnVZMlZCWjJkeVpXZGhkR2x2YmsxbGRHaHZaSE11UlZWRFRFbEVSVUZPWEc0Z0lDQWdLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnRZWFJUYVhwbElEMGdkbUZzZFdWeld6QmRMbXhsYm1kMGFDQXFJQ2gyWVd4MVpYTmJNRjB1YkdWdVozUm9JQzBnTVNrZ0x5QXlPMXh1SUNBZ0lDQWdZMjl1YzNRZ1kyaDFibXRUYVhwbElEMGdUV0YwYUM1bWJHOXZjaWh0WVhSVGFYcGxJQzhnZEdocGN5NWZkMjl5YTJWeVEyOTFiblFwTzF4dVhHNGdJQ0FnSUNCamIyNXpkQ0J0YVc1VWFISmxjMmh2YkdRZ1BTQjJZV3gxWlhOYk1GMHViR1Z1WjNSb0lENGdNakJmTURBd0lEOWNiaUFnSUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVuWlhSTmFXNXBiV0ZzVkdoeVpYTm9iMnhrS0haaGJIVmxjeXdnWm01T1lXMWxjeXdnYjNCMGN5d2dkMlZwWjJoMGN5d2dZV2RuY21WbllYUnBiMjVOWlhSb2IyUXBJRG9nTUR0Y2JpQWdJQ0FnSUdsbUlDaDBhSEpsYzJodmJHUWdQQ0J0YVc1VWFISmxjMmh2YkdRcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzI5c1pTNXNiMmNvWUhWemFXNW5JSFJvY21WemFHOXNaQ0FrZTIxcGJsUm9jbVZ6YUc5c1pIMWdLVHRjYmlBZ0lDQWdJQ0FnZEdoeVpYTm9iMnhrSUQwZ2JXbHVWR2h5WlhOb2IyeGtPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdiM0IwY3k1bWIzSkZZV05vS0NoZkxDQnBLU0E5UGlCdmNIUnpXMmxkV3lkMGFISmxjMmh2YkdRblhTQTlJSFJvY21WemFHOXNaQ2s3WEc0Z0lDQWdJQ0JqYjI1emRDQndjbTl0YVhObGN5QTlYRzRnSUNBZ0lDQWdJRzVsZHlCQmNuSmhlVHhRY205dGFYTmxQRk53WVhKelpVMWhkSEpwZUZKbGMzVnNkRDQrS0hSb2FYTXVYM2R2Y210bGNrTnZkVzUwS1R0Y2JseHVJQ0FnSUNBZ1kyOXVjM1FnZDI5eWEyVnljeUE5SUc1bGR5QkJjbkpoZVNoMGFHbHpMbDkzYjNKclpYSkRiM1Z1ZENsY2JpQWdJQ0FnSUNBZ0xtWnBiR3dvYm5Wc2JDa3ViV0Z3S0NncElEMCtJRzVsZHlCWGIzSnJaWElvYm1WM0lGVlNUQ2duTGk5emNHRnljMlV0YldGMGNtbDRMWGR2Y210bGNpY3NJR2x0Y0c5eWRDNXRaWFJoTG5WeWJDa3BLVHRjYmlBZ0lDQWdJR1p2Y2lBb2JHVjBJR2xrZUNBOUlEQTdJR2xrZUNBOElIUm9hWE11WDNkdmNtdGxja052ZFc1ME95QnBaSGdyS3lrZ2UxeHVJQ0FnSUNBZ0lDQndjbTl0YVhObGMxdHBaSGhkSUQwZ2JtVjNJRkJ5YjIxcGMyVW9LSEpsYzI5c2RtVlhiM0pyWlhJc0lISmxhbVZqZEZkdmNtdGxjaWtnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElITjBZWEowU1dSNElEMGdhV1I0SUNvZ1kyaDFibXRUYVhwbE8xeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHVnVaRWxrZUNBOUlHbGtlQ0E5UFQwZ2RHaHBjeTVmZDI5eWEyVnlRMjkxYm5RZ0xTQXhJRDhnYldGMFUybDZaU0E2SUNocFpIZ2dLeUF4S1NBcUlHTm9kVzVyVTJsNlpUdGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb1pXNWtTV1I0SUR3OUlITjBZWEowU1dSNEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WemIyeDJaVmR2Y210bGNpaDdhVG9nYm1WM0lFbHVkRE15UVhKeVlYa29NQ2tzSUdvNklHNWxkeUJKYm5Rek1rRnljbUY1S0RBcExDQmthWE4wWVc1alpUb2dibVYzSUVac2IyRjBNekpCY25KaGVTZ3dLU3dnYVdSNGZTazdYRzRnSUNBZ0lDQWdJQ0FnZDI5eWEyVnljMXRwWkhoZExuQnZjM1JOWlhOellXZGxLSHQyWVd4MVpYTXNJSE4wWVhKMFNXUjRMQ0JsYm1SSlpIZ3NJSFJvY21WemFHOXNaQ3dnWm01T1lXMWxjeXdnYjNCMGN5d2dkMlZwWjJoMGN5d2dZV2RuY21WbllYUnBiMjVOWlhSb2IyUjlLVHRjYmlBZ0lDQWdJQ0FnSUNCM2IzSnJaWEp6VzJsa2VGMHViMjV0WlhOellXZGxJRDBnS0h0a1lYUmhPaUI3WlhKeWIzSXNJR2tzSUdvc0lHUnBjM1JoYm1ObGZYMHBPaUIyYjJsa0lEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hsY25KdmNpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjNiM0pyWlhKelcybGtlRjB1ZEdWeWJXbHVZWFJsS0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGFtVmpkRmR2Y210bGNpaGxjbkp2Y2lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjNiM0pyWlhKelcybGtlRjB1ZEdWeWJXbHVZWFJsS0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGMyOXNkbVZYYjNKclpYSW9lMmtzSUdvc0lHUnBjM1JoYm1ObExDQnBaSGg5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnWTI5dWMzUWdjbVZ6ZFd4MGN5QTlJR0YzWVdsMElGQnliMjFwYzJVdVlXeHNLSEJ5YjIxcGMyVnpLVHRjYmlBZ0lDQWdJR052Ym5OMElHWjFiR3hUYVhwbElEMGdjbVZ6ZFd4MGN5NXlaV1IxWTJVb0tHRmpZeXdnZG1Gc0tTQTlQaUJoWTJNZ0t5QjJZV3d1YVM1c1pXNW5kR2dzSURBcE8xeHVJQ0FnSUNBZ1kyOXVjM1FnYVNBOUlHNWxkeUJKYm5Rek1rRnljbUY1S0daMWJHeFRhWHBsS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJR29nUFNCdVpYY2dTVzUwTXpKQmNuSmhlU2htZFd4c1UybDZaU2s3WEc0Z0lDQWdJQ0JqYjI1emRDQmthWE4wWVc1alpTQTlJRzVsZHlCR2JHOWhkRE15UVhKeVlYa29ablZzYkZOcGVtVXBPMXh1SUNBZ0lDQWdiR1YwSUc5bVpuTmxkQ0E5SURBN1hHNGdJQ0FnSUNBdkx5QnpaWFIwYVc1bklIUm9aU0J5WlhOMWJIUnpYRzRnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJSEpsY3lCdlppQnlaWE4xYkhSektTQjdYRzRnSUNBZ0lDQWdJR2t1YzJWMEtISmxjeTVwTENCdlptWnpaWFFwTzF4dUlDQWdJQ0FnSUNCcUxuTmxkQ2h5WlhNdWFpd2diMlptYzJWMEtUdGNiaUFnSUNBZ0lDQWdaR2x6ZEdGdVkyVXVjMlYwS0hKbGN5NWthWE4wWVc1alpTd2diMlptYzJWMEtUdGNiaUFnSUNBZ0lDQWdiMlptYzJWMElDczlJSEpsY3k1cExteGxibWQwYUR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhKbGRIVnliaUI3YVN3Z2Fpd2daR2x6ZEdGdVkyVjlPMXh1SUNBZ0lIMWNibHh1SUNBZ0lIQjFZbXhwWXlCaGMzbHVZeUJqWVd4alBGUStLSFpoYkhWbGN6b2dRWEp5WVhrOFZENHNJR1p1VG1GdFpUb2dTMjV2ZDI1TlpYUnlhV056TENCMGFISmxjMmh2YkdRNklHNTFiV0psY2l3Z2IzQjBjem9nZTF0Zk9pQnpkSEpwYm1kZE9pQmhibmw5SUQwZ2UzMHBJSHRjYmlBZ0lDQWdJQzh2YzJsNlpTQnZaaUJtZFd4c0lHMWhkSEpwZUZ4dUlDQWdJQ0FnY21WMGRYSnVJR0YzWVdsMElIUm9hWE11WTJGc1kwMTFiSFJwUTI5c2RXMXVLRnQyWVd4MVpYTmRMQ0JiWm01T1lXMWxYU3dnZEdoeVpYTm9iMnhrTENCYmIzQjBjMTBzSUZzeFhTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NIVmliR2xqSUdGemVXNWpJR2RsZEV0T1RpaGNiaUFnSUNBZ0lIWmhiSFZsY3pvZ1FYSnlZWGs4WVc1NVBpd2dabTVPWVcxbE9pQkxibTkzYmsxbGRISnBZM01zSUc1T1pXbG5hR0p2ZFhKek9pQnVkVzFpWlhJZ1BTQXhOU3dnYjNCMGN6b2dlMXRmT2lCemRISnBibWRkT2lCaGJubDlJRDBnZTMxY2JpQWdJQ0FwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJoZDJGcGRDQjBhR2x6TG0xMWJIUnBRMjlzZFcxdVMwNU9LRnQyWVd4MVpYTmRMQ0JiWm01T1lXMWxYU3dnYms1bGFXZG9ZbTkxY25Nc0lGdHZjSFJ6WFN3Z1d6RmRLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQndkV0pzYVdNZ1lYTjVibU1nWjJWMFZHaHlaWE5vYjJ4a1MwNU9LRnh1SUNBZ0lDQWdkbUZzZFdWek9pQkJjbkpoZVR4aGJuaytMQ0JtYms1aGJXVTZJRXR1YjNkdVRXVjBjbWxqY3l3Z2RHaHlaWE5vYjJ4a09pQnVkVzFpWlhJZ1BTQXdMamdzSUc5d2RITTZJSHRiWHpvZ2MzUnlhVzVuWFRvZ1lXNTVmU0E5SUh0OVhHNGdJQ0FnS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWVhkaGFYUWdkR2hwY3k1dGRXeDBhVU52YkhWdGJsUm9jbVZ6YUc5c1pFdHViaWhiZG1Gc2RXVnpYU3dnVzJadVRtRnRaVjBzSUhSb2NtVnphRzlzWkN3Z1cyOXdkSE5kTENCYk1WMHBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lIQjFZbXhwWXlCaGMzbHVZeUJ0ZFd4MGFVTnZiSFZ0YmxSb2NtVnphRzlzWkV0dWJpaDJZV3gxWlhNNklFRnljbUY1UEVGeWNtRjVQR0Z1ZVQ0K0xDQm1iazVoYldWek9pQkxibTkzYmsxbGRISnBZM05iWFN3Z2RHaHlaWE5vYjJ4a09pQnVkVzFpWlhJZ1BTQXdMamdzWEc0Z0lDQWdJQ0J2Y0hSek9pQjdXMTg2SUhOMGNtbHVaMTA2SUdGdWVYMWJYU3dnZDJWcFoyaDBjem9nYm5WdFltVnlXMTBzWEc0Z0lDQWdJQ0JoWjJkeVpXZGhkR2x2YmsxbGRHaHZaRG9nUkdsemRHRnVZMlZCWjJkeVpXZGhkR2x2YmsxbGRHaHZaQ0E5SUVScGMzUmhibU5sUVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlJ6TGtWVlEweEpSRVZCVGx4dUlDQWdJQ2tnZTF4dUlDQWdJQ0FnYVdZZ0tIWmhiSFZsY3k1c1pXNW5kR2dnSVQwOUlHWnVUbUZ0WlhNdWJHVnVaM1JvSUh4OElIWmhiSFZsY3k1c1pXNW5kR2dnSVQwOUlHOXdkSE11YkdWdVozUm9JSHg4SUhaaGJIVmxjeTVzWlc1bmRHZ2dJVDA5SUhkbGFXZG9kSE11YkdWdVozUm9LVnh1SUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KM1poYkhWbGN5d2daR2x6ZEdGdVkyVWdablZ1WTNScGIyNXpMQ0J2Y0hScGIyNXpJR0Z1WkNCM1pXbG5hSFJ6SUdGeWNtRjVjeUJ6YUc5MWJHUWdhR0YyWlNCMGFHVWdjMkZ0WlNCc1pXNW5kR2duS1R0Y2JseHVJQ0FnSUNBZ2FXWWdLSFpoYkhWbGN5NXpiMjFsS0NoMktTQTlQaUIyTG14bGJtZDBhQ0FoUFQwZ2RtRnNkV1Z6V3pCZExteGxibWQwYUNrcFhHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnbllXeHNJSFpoYkhWbGN5QmhjbkpoZVhNZ2MyaHZkV3hrSUdoaGRtVWdkR2hsSUhOaGJXVWdiR1Z1WjNSb0p5azdYRzVjYmlBZ0lDQWdJR052Ym5OMElHMWhkRk5wZW1VZ1BTQjJZV3gxWlhOYk1GMHViR1Z1WjNSb0lDb2dLSFpoYkhWbGMxc3dYUzVzWlc1bmRHZ2dMU0F4S1NBdklESTdYRzRnSUNBZ0lDQmpiMjV6ZENCamFIVnVhMU5wZW1VZ1BTQk5ZWFJvTG1ac2IyOXlLRzFoZEZOcGVtVWdMeUIwYUdsekxsOTNiM0pyWlhKRGIzVnVkQ2s3WEc0Z0lDQWdJQ0JqYjI1emRDQndjbTl0YVhObGN5QTlYRzRnSUNBZ0lDQWdJRzVsZHlCQmNuSmhlVHhRY205dGFYTmxQRXR1YmxKbGMzVnNkRDQrS0hSb2FYTXVYM2R2Y210bGNrTnZkVzUwS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJSGR2Y210bGNuTWdQU0J1WlhjZ1FYSnlZWGtvZEdocGN5NWZkMjl5YTJWeVEyOTFiblFwWEc0Z0lDQWdJQ0FnSUM1bWFXeHNLRzUxYkd3cExtMWhjQ2dvS1NBOVBpQnVaWGNnVjI5eWEyVnlLRzVsZHlCVlVrd29KeTR2YTI1dUxYUm9jbVZ6YUc5c1pDMTNiM0pyWlhJbkxDQnBiWEJ2Y25RdWJXVjBZUzUxY213cEtTazdYRzRnSUNBZ0lDQm1iM0lnS0d4bGRDQnBaSGdnUFNBd095QnBaSGdnUENCMGFHbHpMbDkzYjNKclpYSkRiM1Z1ZERzZ2FXUjRLeXNwSUh0Y2JpQWdJQ0FnSUNBZ2NISnZiV2x6WlhOYmFXUjRYU0E5SUc1bGR5QlFjbTl0YVhObEtDaHlaWE52YkhabFYyOXlhMlZ5TENCeVpXcGxZM1JYYjNKclpYSXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCemRHRnlkRWxrZUNBOUlHbGtlQ0FxSUdOb2RXNXJVMmw2WlR0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCbGJtUkpaSGdnUFNCcFpIZ2dQVDA5SUhSb2FYTXVYM2R2Y210bGNrTnZkVzUwSUMwZ01TQS9JRzFoZEZOcGVtVWdPaUFvYVdSNElDc2dNU2tnS2lCamFIVnVhMU5wZW1VN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0dWdVpFbGtlQ0E4UFNCemRHRnlkRWxrZUNsY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsYzI5c2RtVlhiM0pyWlhJb2UydHVia1JwYzNSaGJtTmxjem9nYm1WM0lFRnljbUY1S0RBcExDQnJibTVKYm1SbGVHVnpPaUJ1WlhjZ1FYSnlZWGtvTUNsOUtUdGNiaUFnSUNBZ0lDQWdJQ0IzYjNKclpYSnpXMmxrZUYwdWNHOXpkRTFsYzNOaFoyVW9lM1poYkhWbGN5d2djM1JoY25SSlpIZ3NJR1Z1WkVsa2VDd2dabTVPWVcxbGN5d2diM0IwY3l3Z2RHaHlaWE5vYjJ4a0xDQjNaV2xuYUhSekxDQmhaMmR5WldkaGRHbHZiazFsZEdodlpIMHBPMXh1SUNBZ0lDQWdJQ0FnSUhkdmNtdGxjbk5iYVdSNFhTNXZibTFsYzNOaFoyVWdQU0FvZTJSaGRHRTZJSHRsY25KdmNpd2dhMjV1UkdsemRHRnVZMlZ6TENCcmJtNUpibVJsZUdWemZYMHBPaUIyYjJsa0lEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hsY25KdmNpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjNiM0pyWlhKelcybGtlRjB1ZEdWeWJXbHVZWFJsS0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGFtVmpkRmR2Y210bGNpaGxjbkp2Y2lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjNiM0pyWlhKelcybGtlRjB1ZEdWeWJXbHVZWFJsS0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGMyOXNkbVZYYjNKclpYSW9lMnR1YmtScGMzUmhibU5sY3l3Z2EyNXVTVzVrWlhobGMzMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJSDA3WEc0Z0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQmpiMjV6ZENCeVpYTjFiSFJ6SUQwZ1lYZGhhWFFnVUhKdmJXbHpaUzVoYkd3b2NISnZiV2x6WlhNcE8xeHVJQ0FnSUNBZ1kyOXVjM1FnYTI1dVUybDZaWE1nUFNCdVpYY2dTVzUwTXpKQmNuSmhlU2gyWVd4MVpYTmJNRjB1YkdWdVozUm9LVHRjYmlBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnY21WeklHOW1JSEpsYzNWc2RITXBJSHRjYmlBZ0lDQWdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCMllXeDFaWE5iTUYwdWJHVnVaM1JvT3lBcksya3BYRzRnSUNBZ0lDQWdJQ0FnYTI1dVUybDZaWE5iYVYwZ0t6MGdjbVZ6TG10dWJrbHVaR1Y0WlhOYmFWMC9MbXhsYm1kMGFDQS9QeUF3TzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnWTI5dWMzUWdhMjV1VW1Wek9pQkxibTVTWlhOMWJIUWdQU0I3WEc0Z0lDQWdJQ0FnSUd0dWJrUnBjM1JoYm1ObGN6b2dibVYzSUVGeWNtRjVLSFpoYkhWbGMxc3dYUzVzWlc1bmRHZ3BMbVpwYkd3b2JuVnNiQ2t1YldGd0tDaGZMQ0JwS1NBOVBpQnVaWGNnUVhKeVlYazhiblZ0WW1WeVBpaHJibTVUYVhwbGMxdHBYU2twTEZ4dUlDQWdJQ0FnSUNCcmJtNUpibVJsZUdWek9pQnVaWGNnUVhKeVlYa29kbUZzZFdWeld6QmRMbXhsYm1kMGFDa3VabWxzYkNodWRXeHNLUzV0WVhBb0tGOHNJR2twSUQwK0lHNWxkeUJCY25KaGVUeHVkVzFpWlhJK0tHdHVibE5wZW1WelcybGRLU2w5TzF4dUlDQWdJQ0FnWm05eUlDaGpiMjV6ZENCeVpYTWdiMllnY21WemRXeDBjeWtnZTF4dUlDQWdJQ0FnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElIWmhiSFZsYzFzd1hTNXNaVzVuZEdnN0lDc3JhU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHWnZjaUFvYkdWMElHb2dQU0F3T3lCcUlEd2djbVZ6TG10dWJrUnBjM1JoYm1ObGMxdHBYVDh1YkdWdVozUm9JRDgvSURBN0lDc3JhaWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhMjV1VW1WekxtdHVia1JwYzNSaGJtTmxjMXRwWFZ0cmJtNVRhWHBsYzF0cFhTQXRJREZkSUQwZ2NtVnpMbXR1YmtScGMzUmhibU5sYzF0cFhWdHFYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHdHVibEpsY3k1cmJtNUpibVJsZUdWelcybGRXMnR1YmxOcGVtVnpXMmxkSUMwZ01WMGdQU0J5WlhNdWEyNXVTVzVrWlhobGMxdHBYVnRxWFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR3R1YmxOcGVtVnpXMmxkSUMwOUlERTdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnYTI1dVVtVnpPMXh1SUNBZ0lIMWNibHh1SUNBZ0lIQjFZbXhwWXlCaGMzbHVZeUJ0ZFd4MGFVTnZiSFZ0Ymt0T1RpaDJZV3gxWlhNNklFRnljbUY1UEVGeWNtRjVQR0Z1ZVQ0K0xDQm1iazVoYldWek9pQkxibTkzYmsxbGRISnBZM05iWFN3Z2JrNWxhV2RvWW05MWNuTTZJRzUxYldKbGNpQTlJREUxTEZ4dUlDQWdJQ0FnYjNCMGN6b2dlMXRmT2lCemRISnBibWRkT2lCaGJubDlXMTBzSUhkbGFXZG9kSE02SUc1MWJXSmxjbHRkTEZ4dUlDQWdJQ0FnWVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlE2SUVScGMzUmhibU5sUVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlFnUFNCRWFYTjBZVzVqWlVGblozSmxaMkYwYVc5dVRXVjBhRzlrY3k1RlZVTk1TVVJGUVU1Y2JpQWdJQ0FwSUh0Y2JpQWdJQ0FnSUdsbUlDaDJZV3gxWlhNdWJHVnVaM1JvSUNFOVBTQm1iazVoYldWekxteGxibWQwYUNCOGZDQjJZV3gxWlhNdWJHVnVaM1JvSUNFOVBTQnZjSFJ6TG14bGJtZDBhQ0I4ZkNCMllXeDFaWE11YkdWdVozUm9JQ0U5UFNCM1pXbG5hSFJ6TG14bGJtZDBhQ2xjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLQ2QyWVd4MVpYTXNJR1JwYzNSaGJtTmxJR1oxYm1OMGFXOXVjeXdnYjNCMGFXOXVjeUJoYm1RZ2QyVnBaMmgwY3lCaGNuSmhlWE1nYzJodmRXeGtJR2hoZG1VZ2RHaGxJSE5oYldVZ2JHVnVaM1JvSnlrN1hHNWNiaUFnSUNBZ0lHbG1JQ2gyWVd4MVpYTXVjMjl0WlNnb2Rpa2dQVDRnZGk1c1pXNW5kR2dnSVQwOUlIWmhiSFZsYzFzd1hTNXNaVzVuZEdncEtWeHVJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb0oyRnNiQ0IyWVd4MVpYTWdZWEp5WVhseklITm9iM1ZzWkNCb1lYWmxJSFJvWlNCellXMWxJR3hsYm1kMGFDY3BPMXh1WEc0Z0lDQWdJQ0JqYjI1emRDQnRZWFJUYVhwbElEMGdkbUZzZFdWeld6QmRMbXhsYm1kMGFDQXFJQ2gyWVd4MVpYTmJNRjB1YkdWdVozUm9JQzBnTVNrZ0x5QXlPMXh1SUNBZ0lDQWdZMjl1YzNRZ1kyaDFibXRUYVhwbElEMGdUV0YwYUM1bWJHOXZjaWh0WVhSVGFYcGxJQzhnZEdocGN5NWZkMjl5YTJWeVEyOTFiblFwTzF4dUlDQWdJQ0FnWTI5dWMzUWdjSEp2YldselpYTWdQVnh1SUNBZ0lDQWdJQ0J1WlhjZ1FYSnlZWGs4VUhKdmJXbHpaVHhMYm01U1pYTjFiSFErUGloMGFHbHpMbDkzYjNKclpYSkRiM1Z1ZENrN1hHNGdJQ0FnSUNCamIyNXpkQ0IzYjNKclpYSnpJRDBnYm1WM0lFRnljbUY1S0hSb2FYTXVYM2R2Y210bGNrTnZkVzUwS1Z4dUlDQWdJQ0FnSUNBdVptbHNiQ2h1ZFd4c0tTNXRZWEFvS0NrZ1BUNGdibVYzSUZkdmNtdGxjaWh1WlhjZ1ZWSk1LQ2N1TDJ0dWJpMTNiM0pyWlhJbkxDQnBiWEJ2Y25RdWJXVjBZUzUxY213cEtTazdYRzRnSUNBZ0lDQm1iM0lnS0d4bGRDQnBaSGdnUFNBd095QnBaSGdnUENCMGFHbHpMbDkzYjNKclpYSkRiM1Z1ZERzZ2FXUjRLeXNwSUh0Y2JpQWdJQ0FnSUNBZ2NISnZiV2x6WlhOYmFXUjRYU0E5SUc1bGR5QlFjbTl0YVhObEtDaHlaWE52YkhabFYyOXlhMlZ5TENCeVpXcGxZM1JYYjNKclpYSXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCemRHRnlkRWxrZUNBOUlHbGtlQ0FxSUdOb2RXNXJVMmw2WlR0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCbGJtUkpaSGdnUFNCcFpIZ2dQVDA5SUhSb2FYTXVYM2R2Y210bGNrTnZkVzUwSUMwZ01TQS9JRzFoZEZOcGVtVWdPaUFvYVdSNElDc2dNU2tnS2lCamFIVnVhMU5wZW1VN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0dWdVpFbGtlQ0E4UFNCemRHRnlkRWxrZUNsY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsYzI5c2RtVlhiM0pyWlhJb2UydHVia1JwYzNSaGJtTmxjem9nYm1WM0lFRnljbUY1S0RBcExDQnJibTVKYm1SbGVHVnpPaUJ1WlhjZ1FYSnlZWGtvTUNsOUtUdGNiaUFnSUNBZ0lDQWdJQ0IzYjNKclpYSnpXMmxrZUYwdWNHOXpkRTFsYzNOaFoyVW9lM1poYkhWbGN5d2djM1JoY25SSlpIZ3NJR1Z1WkVsa2VDd2dabTVPWVcxbGN5d2diM0IwY3l3Z2JrNWxhV2RvWW05MWNuTXNJSGRsYVdkb2RITXNJR0ZuWjNKbFoyRjBhVzl1VFdWMGFHOWtmU2s3WEc0Z0lDQWdJQ0FnSUNBZ2QyOXlhMlZ5YzF0cFpIaGRMbTl1YldWemMyRm5aU0E5SUNoN1pHRjBZVG9nZTJWeWNtOXlMQ0JyYm01RWFYTjBZVzVqWlhNc0lHdHVia2x1WkdWNFpYTjlmU2s2SUhadmFXUWdQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dWeWNtOXlLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSGR2Y210bGNuTmJhV1I0WFM1MFpYSnRhVzVoZEdVb0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2NtVnFaV04wVjI5eWEyVnlLR1Z5Y205eUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSGR2Y210bGNuTmJhV1I0WFM1MFpYSnRhVzVoZEdVb0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2NtVnpiMngyWlZkdmNtdGxjaWg3YTI1dVJHbHpkR0Z1WTJWekxDQnJibTVKYm1SbGVHVnpmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR052Ym5OMElISmxjM1ZzZEhNZ1BTQmhkMkZwZENCUWNtOXRhWE5sTG1Gc2JDaHdjbTl0YVhObGN5azdYRzRnSUNBZ0lDQmpiMjV6ZENCcmJtNVNaWE02SUV0dWJsSmxjM1ZzZENBOUlIdGNiaUFnSUNBZ0lDQWdhMjV1UkdsemRHRnVZMlZ6T2lCdVpYY2dRWEp5WVhrb2RtRnNkV1Z6V3pCZExteGxibWQwYUNrdVptbHNiQ2h1ZFd4c0tTNXRZWEFvS0NrZ1BUNGdibVYzSUVGeWNtRjVQRzUxYldKbGNqNG9iazVsYVdkb1ltOTFjbk1wTG1acGJHd29PVGs1T1RrcEtTeGNiaUFnSUNBZ0lDQWdhMjV1U1c1a1pYaGxjem9nYm1WM0lFRnljbUY1S0haaGJIVmxjMXN3WFM1c1pXNW5kR2dwTG1acGJHd29iblZzYkNrdWJXRndLQ2dwSUQwK0lHNWxkeUJCY25KaGVUeHVkVzFpWlhJK0tHNU9aV2xuYUdKdmRYSnpLUzVtYVd4c0tDMHhLU2w5TzF4dUlDQWdJQ0FnWm05eUlDaGpiMjV6ZENCeVpYTWdiMllnY21WemRXeDBjeWtnZTF4dUlDQWdJQ0FnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElIWmhiSFZsYzFzd1hTNXNaVzVuZEdnN0lDc3JhU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHWnZjaUFvYkdWMElHb2dQU0F3T3lCcUlEd2djbVZ6TG10dWJrUnBjM1JoYm1ObGMxdHBYVDh1YkdWdVozUm9JRDgvSURBN0lDc3JhaWxjYmlBZ0lDQWdJQ0FnSUNBZ0lHbHVjMlZ5ZEZOdFlXeHNaWElvYTI1dVVtVnpMbXR1YmtScGMzUmhibU5sYzF0cFhTd2dhMjV1VW1WekxtdHVia2x1WkdWNFpYTmJhVjBzSUhKbGN5NXJibTVFYVhOMFlXNWpaWE5iYVYxYmFsMHNJSEpsY3k1cmJtNUpibVJsZUdWelcybGRXMnBkS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUd0dWJsSmxjenRjYmlBZ0lDQjlYRzVjYmlBZ0lDQndkV0pzYVdNZ1lYTjVibU1nWjJWMFUyRnRjR3hsUkdsemRHRnVZMlZ6S0haaGJIVmxjem9nUVhKeVlYazhZVzU1VzEwK0xGeHVJQ0FnSUNBZ1ptNU9ZVzFsY3pvZ1MyNXZkMjVOWlhSeWFXTnpXMTBzSUc5d2RITTZJSHRiWHpvZ2MzUnlhVzVuWFRvZ1lXNTVmVnRkSUQwZ1cxMHNJSGRsYVdkb2RITTZJRzUxYldKbGNsdGRMRnh1SUNBZ0lDQWdZV2RuY21WbllYUnBiMjVOWlhSb2IyUTZJRVJwYzNSaGJtTmxRV2RuY21WbllYUnBiMjVOWlhSb2IyUWdQU0JFYVhOMFlXNWpaVUZuWjNKbFoyRjBhVzl1VFdWMGFHOWtjeTVGVlVOTVNVUkZRVTRwT2lCUWNtOXRhWE5sUEVac2IyRjBNekpCY25KaGVUNGdlMXh1SUNBZ0lDQWdZMjl1YzNRZ2RHaHlaWE5vYjJ4a1YyOXlhMlZ5Y3lBOUlHNWxkeUJCY25KaGVTaDBhR2x6TGw5M2IzSnJaWEpEYjNWdWRDa3VabWxzYkNodWRXeHNLVnh1SUNBZ0lDQWdJQ0F1YldGd0tDZ3BJRDArSUc1bGR5QlhiM0pyWlhJb2JtVjNJRlZTVENnbkxpOXpjR0Z5YzJVdGJXRjBjbWw0TFhSb2NtVnphRzlzWkMxM2IzSnJaWEluTENCcGJYQnZjblF1YldWMFlTNTFjbXdwS1NrN1hHNWNiaUFnSUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJRzFoZEZOcGVtVWdQU0IyWVd4MVpYTmJNRjB1YkdWdVozUm9JQ29nS0haaGJIVmxjMXN3WFM1c1pXNW5kR2dnTFNBeEtTQXZJREk3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR05vZFc1clUybDZaU0E5SUUxaGRHZ3VabXh2YjNJb2JXRjBVMmw2WlNBdklIUm9hWE11WDNkdmNtdGxja052ZFc1MEtUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JXRjRVMkZ0Y0d4bFUybDZaU0E5SURGZk1EQXdYekF3TUR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYzJGdGNHeGxVMmx6WlNBOUlFMWhkR2d1YldGNEtFMWhkR2d1YldsdUtHMWhkRk5wZW1VZ0x5QXhNREF3TENCdFlYaFRZVzF3YkdWVGFYcGxLU3dnVFdGMGFDNXRhVzRvYldGMFUybDZaU3dnYldGNFUyRnRjR3hsVTJsNlpTa3BPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjBaWE4wVTJWMFUybDZaVkJsY2xkdmNtdGxjaUE5SUUxaGRHZ3VabXh2YjNJb2MyRnRjR3hsVTJselpTQXZJSFJvYVhNdVgzZHZjbXRsY2tOdmRXNTBLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdkRkJ5YjIxcGMyVnpJRDBnYm1WM0lFRnljbUY1UEZCeWIyMXBjMlU4ZTJScGMzUmhibU5sT2lCR2JHOWhkRE15UVhKeVlYbDlQajRvZEdocGN5NWZkMjl5YTJWeVEyOTFiblFwTzF4dVhHNGdJQ0FnSUNBZ0lHWnZjaUFvYkdWMElHbGtlQ0E5SURBN0lHbGtlQ0E4SUhSb2FYTXVYM2R2Y210bGNrTnZkVzUwT3lCcFpIZ3JLeWtnZTF4dUlDQWdJQ0FnSUNBZ0lIUlFjbTl0YVhObGMxdHBaSGhkSUQwZ2JtVjNJRkJ5YjIxcGMyVW9LSEpsYzI5c2RtVlhiM0pyWlhJc0lISmxhbVZqZEZkdmNtdGxjaWtnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjM1JoY25SSlpIZ2dQU0JwWkhnZ0tpQmphSFZ1YTFOcGVtVTdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JsYm1SSlpIZ2dQU0JwWkhnZ1BUMDlJSFJvYVhNdVgzZHZjbXRsY2tOdmRXNTBJQzBnTVNBL0lHMWhkRk5wZW1VZ09pQW9hV1I0SUNzZ01Ta2dLaUJqYUhWdWExTnBlbVU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhSEpsYzJodmJHUlhiM0pyWlhKelcybGtlRjB1Y0c5emRFMWxjM05oWjJVb2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCMllXeDFaWE02SUhaaGJIVmxjeXdnYzNSaGNuUkpaSGdzSUdWdVpFbGtlQ3dnYzJGdGNHeGxUR1Z1WjNSb09pQjBaWE4wVTJWMFUybDZaVkJsY2xkdmNtdGxjaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdabTVPWVcxbGN5d2diM0IwY3l3Z2QyVnBaMmgwY3l3Z1lXZG5jbVZuWVhScGIyNU5aWFJvYjJSY2JpQWdJQ0FnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2h5WlhOb2IyeGtWMjl5YTJWeWMxdHBaSGhkTG05dWJXVnpjMkZuWlNBOUlDaDdaR0YwWVRvZ2UyVnljbTl5TENCa2FYTjBZVzVqWlgxOUtUb2dkbTlwWkNBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9jbVZ6YUc5c1pGZHZjbXRsY25OYmFXUjRYUzUwWlhKdGFXNWhkR1VvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHVnljbTl5S1NCeVpXcGxZM1JYYjNKclpYSW9aWEp5YjNJcE95QmxiSE5sWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WemIyeDJaVmR2Y210bGNpaDdaR2x6ZEdGdVkyVjlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMDdYRzRnSUNBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0JqYjI1emRDQnlaWE4xYkhSeklEMGdZWGRoYVhRZ1VISnZiV2x6WlM1aGJHd29kRkJ5YjIxcGMyVnpLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdablZzYkZOcGVtVWdQU0J5WlhOMWJIUnpMbkpsWkhWalpTZ29ZV05qTENCMllXd3BJRDArSUdGall5QXJJSFpoYkM1a2FYTjBZVzVqWlM1c1pXNW5kR2dzSURBcE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCa2FYTjBZVzVqWlNBOUlHNWxkeUJHYkc5aGRETXlRWEp5WVhrb1puVnNiRk5wZW1VcE8xeHVJQ0FnSUNBZ0lDQnNaWFFnYjJabWMyVjBJRDBnTUR0Y2JpQWdJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQnlaWE1nYjJZZ2NtVnpkV3gwY3lrZ2UxeHVJQ0FnSUNBZ0lDQWdJR1JwYzNSaGJtTmxMbk5sZENoeVpYTXVaR2x6ZEdGdVkyVXNJRzltWm5ObGRDazdYRzRnSUNBZ0lDQWdJQ0FnYjJabWMyVjBJQ3M5SUhKbGN5NWthWE4wWVc1alpTNXNaVzVuZEdnN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdaR2x6ZEdGdVkyVXVjMjl5ZENncE8xeHVYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmthWE4wWVc1alpUdGNiaUFnSUNBZ0lIMGdZMkYwWTJnZ0tHVXBJSHRjYmlBZ0lDQWdJQ0FnZEdoeVpYTm9iMnhrVjI5eWEyVnljejh1Wm05eVJXRmphQ2dvZHlrZ1BUNGdkejh1ZEdWeWJXbHVZWFJsS0NrcE8xeHVJQ0FnSUNBZ0lDQmpiMjV6YjJ4bExtVnljbTl5S0dVcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JtVjNJRVpzYjJGME16SkJjbkpoZVNneEtTNW1hV3hzS0RBdU5TazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NISnBkbUYwWlNCaGMzbHVZeUJuWlhSTmFXNXBiV0ZzVkdoeVpYTm9iMnhrS0haaGJIVmxjem9nUVhKeVlYazhZVzU1VzEwK0xGeHVJQ0FnSUNBZ1ptNU9ZVzFsY3pvZ1MyNXZkMjVOWlhSeWFXTnpXMTBzSUc5d2RITTZJSHRiWHpvZ2MzUnlhVzVuWFRvZ1lXNTVmVnRkSUQwZ1cxMHNJSGRsYVdkb2RITTZJRzUxYldKbGNsdGRMRnh1SUNBZ0lDQWdZV2RuY21WbllYUnBiMjVOWlhSb2IyUTZJRVJwYzNSaGJtTmxRV2RuY21WbllYUnBiMjVOWlhSb2IyUWdQU0JFYVhOMFlXNWpaVUZuWjNKbFoyRjBhVzl1VFdWMGFHOWtjeTVGVlVOTVNVUkZRVTRwSUh0Y2JpQWdJQ0FnSUM4dlYyVWdibVZsWkNCMGJ5QmpZV3hqZFd4aGRHVWdkR2hsSUcxcGJtbHRZV3dnZEdoeVpYTm9iMnhrSUdacGNuTjBMRnh1SUNBZ0lDQWdMeTlwYmlCdmNtUmxjaUIwYnlCblpYUWdiV0YwY21sNElITjFZMmdnZEdoaGRDQnBkQ0JrYjJWeklHNXZkQ0JsZUdObFpXUWdkR2hsSUcxaGVHbHRkVzBnYzJsNlpTQnZaaUF4UjBKY2JpQWdJQ0FnSUM4dmQyVWdhR0YyWlNBeklISmxkSFZ5YmlCaGNuSmhlWE1zSUdWaFkyZ2dOQ0JpYVhSbGN5QndaWElnWld4bGJXVnVkQ3dnYzI4Z2FXWWdkR2hsSUcxaGVHbHRkVzBnYzJsNlpTQnZaaUIwYUdVZ2JXRjBjbWw0SUdseklERkhRaXhjYmlBZ0lDQWdJR052Ym5OMElHMWhlRk53WVhKelpVMWhkSEpwZUZOcGVtVWdQU0EzTUY4d01EQmZNREF3TzF4dUlDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JXRjBVMmw2WlNBOUlIWmhiSFZsY3k1c1pXNW5kR2dnS2lBb2RtRnNkV1Z6TG14bGJtZDBhQ0F0SURFcElDOGdNanRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdaR2x6ZEdGdVkyVWdQU0JoZDJGcGRDQjBhR2x6TG1kbGRGTmhiWEJzWlVScGMzUmhibU5sY3loMllXeDFaWE1zSUdadVRtRnRaWE1zSUc5d2RITXNJSGRsYVdkb2RITXNJR0ZuWjNKbFoyRjBhVzl1VFdWMGFHOWtLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdabkpoWTNScGIyNUpibVJsZUNBOUlFMWhkR2d1Wm14dmIzSW9iV0Y0VTNCaGNuTmxUV0YwY21sNFUybDZaU0F2SUcxaGRGTnBlbVVnS2lCa2FYTjBZVzVqWlM1c1pXNW5kR2dwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0IwYUhKbGMyaHZiR1FnUFNBeElDMGdaR2x6ZEdGdVkyVmJabkpoWTNScGIyNUpibVJsZUYwN1hHNGdJQ0FnSUNBZ0lDOHZJSFJvY21WemFHOXNaQ0E5SUUxaGRHZ3ViV0Y0S0hSb2NtVnphRzlzWkN3Z01DNHpLVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvY21WemFHOXNaRHRjYmlBZ0lDQWdJSDBnWTJGMFkyZ2dLR1VwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjMjlzWlM1bGNuSnZjaWhsS1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SURBdU5UdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCd2RXSnNhV01nYzNSaGRHbGpJR05oYkdOVGVXNWpQRlErS0Z4dUlDQWdJQ0FnZG1Gc2RXVnpPaUJCY25KaGVUeFVQaUI4SUVGeWNtRjVUR2xyWlR4VVBpd2dabTVPWVcxbE9pQkxibTkzYmsxbGRISnBZM01zSUdScGMzUmhibU5sUm00NklFWjFibU4wYVc5dUxDQjBhSEpsYzJodmJHUTZJRzUxYldKbGNseHVJQ0FnSUNrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnYVRvZ2JuVnRZbVZ5VzEwZ1BTQmJYVHRjYmlBZ0lDQWdJR052Ym5OMElHbzZJRzUxYldKbGNsdGRJRDBnVzEwN1hHNGdJQ0FnSUNCamIyNXpkQ0JrYVhOMFlXNWpaWE02SUc1MWJXSmxjbHRkSUQwZ1cxMDdYRzRnSUNBZ0lDQnNaWFFnWTI1MElEMGdNRHRjYmlBZ0lDQWdJR3hsZENCdGFTQTlJREE3WEc0Z0lDQWdJQ0JzWlhRZ2JXb2dQU0F3TzF4dUlDQWdJQ0FnWTI5dWMzUWdablZzYkZOcGVtVWdQU0IyWVd4MVpYTXViR1Z1WjNSb0lDb2dLSFpoYkhWbGN5NXNaVzVuZEdnZ0xTQXhLU0F2SURJN1hHNGdJQ0FnSUNCM2FHbHNaU0FvWTI1MElEd2dablZzYkZOcGVtVXBJSHRjYmlBZ0lDQWdJQ0FnTHk5amIyNXpkQ0IyWVd4MVpTQTlJSE5sY1RGTWFYTjBXMjFwWFNBbUppQnpaWEV4VEdsemRGdHRhbDBnUHlCb1lXMXRhVzVuS0hObGNURk1hWE4wVzIxcFhTd2djMlZ4TVV4cGMzUmJiV3BkS1NBNklEQTdYRzRnSUNBZ0lDQWdJR052Ym5OMElIWmhiSFZsSUQwZ0lXbHpUbWxzS0haaGJIVmxjMXR0YVYwcElDWW1JQ0ZwYzA1cGJDaDJZV3gxWlhOYmJXcGRLU0EvWEc0Z0lDQWdJQ0FnSUNBZ1pHbHpkR0Z1WTJWR2JpaDJZV3gxWlhOYmJXbGRMQ0IyWVd4MVpYTmJiV3BkS1NBNklERTdYRzRnSUNBZ0lDQWdJR052Ym5OMElITnBiV2xzWVhKcGRIa2dQU0F4SUMwZ2RtRnNkV1U3WEc0Z0lDQWdJQ0FnSUdsbUlDaHphVzFwYkdGeWFYUjVJRDQ5SUhSb2NtVnphRzlzWkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR2t1Y0hWemFDaHRhU2s3WEc0Z0lDQWdJQ0FnSUNBZ2FpNXdkWE5vS0cxcUtUdGNiaUFnSUNBZ0lDQWdJQ0JrYVhOMFlXNWpaWE11Y0hWemFDaDJZV3gxWlNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdZMjUwS3lzN1hHNGdJQ0FnSUNBZ0lHMXFLeXM3WEc0Z0lDQWdJQ0FnSUdsbUlDaHRhaUE5UFQwZ2RtRnNkV1Z6TG14bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lHMXBLeXM3WEc0Z0lDQWdJQ0FnSUNBZ2JXb2dQU0J0YVNBcklERTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnWTI5dWMzUWdhVUZ5Y21GNUlEMGdibVYzSUVsdWRETXlRWEp5WVhrb2FTazdYRzRnSUNBZ0lDQmpiMjV6ZENCcVFYSnlZWGtnUFNCdVpYY2dTVzUwTXpKQmNuSmhlU2hxS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJR1JwYzNSaGJtTmxRWEp5WVhrZ1BTQnVaWGNnUm14dllYUXpNa0Z5Y21GNUtHUnBjM1JoYm1ObGN5azdYRzVjYmlBZ0lDQWdJSEpsZEhWeWJpQjdhVG9nYVVGeWNtRjVMQ0JxT2lCcVFYSnlZWGtzSUdScGMzUmhibU5sT2lCa2FYTjBZVzVqWlVGeWNtRjVmVHRjYmlBZ0lDQjlYRzU5WEc0aVhYMD0iLCJleHBvcnQgYXN5bmMgZnVuY3Rpb24gYmlvTGF5b3V0KGNsdXN0ZXIsIHNwYXJzZU9iamVjdCwgdGhyZXNob2xkKSB7XG4gICAgY29uc3QgbiA9IGNsdXN0ZXIubGVuZ3RoO1xuICAgIGNvbnN0IGlzID0gW107XG4gICAgY29uc3QganMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykge1xuICAgICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCBuOyBqKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGEgPSBjbHVzdGVyW2ldO1xuICAgICAgICAgICAgY29uc3QgYiA9IGNsdXN0ZXJbal07XG4gICAgICAgICAgICBpZiAoc3BhcnNlT2JqZWN0W2FdPy5bYl0gPj0gdGhyZXNob2xkKSB7XG4gICAgICAgICAgICAgICAgaXMucHVzaChpKTtcbiAgICAgICAgICAgICAgICBqcy5wdXNoKGopO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBnZXRMYXlvdXRFbWJlZGRpbmdzKGlzLCBqcywgY2x1c3Rlcik7XG59XG5mdW5jdGlvbiBnZXRMYXlvdXRFbWJlZGRpbmdzKGlzLCBqcywgY2x1c3Rlcikge1xuICAgIGNvbnN0IGVtYmVkWCA9IG5ldyBGbG9hdDMyQXJyYXkoY2x1c3Rlci5sZW5ndGgpLmZpbGwoMCkubWFwKCgpID0+IE1hdGgucmFuZG9tKCkgKiAxMCk7XG4gICAgY29uc3QgZW1iZWRZID0gbmV3IEZsb2F0MzJBcnJheShjbHVzdGVyLmxlbmd0aCkuZmlsbCgwKS5tYXAoKCkgPT4gTWF0aC5yYW5kb20oKSAqIDEwKTtcbiAgICBjb25zdCBpdGVyYXRpb25zID0gMTAwO1xuICAgIGNvbnN0IHhWZWxvY2l0aWVzID0gbmV3IEZsb2F0MzJBcnJheShjbHVzdGVyLmxlbmd0aCkuZmlsbCgwKTtcbiAgICBjb25zdCB5VmVsb2NpdGllcyA9IG5ldyBGbG9hdDMyQXJyYXkoY2x1c3Rlci5sZW5ndGgpLmZpbGwoMCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVyYXRpb25zOyBpKyspIHtcbiAgICAgICAgY29uc3QgdGVtcGVyYXR1cmUgPSAoMSAtIGkgLyBpdGVyYXRpb25zKTtcbiAgICAgICAgeFZlbG9jaXRpZXMuZmlsbCgwKTtcbiAgICAgICAgeVZlbG9jaXRpZXMuZmlsbCgwKTtcbiAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgaXMubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICAgICAgY29uc3QgYSA9IGlzW2lkeF07XG4gICAgICAgICAgICBjb25zdCBiID0ganNbaWR4XTtcbiAgICAgICAgICAgIGNvbnN0IGR4ID0gZW1iZWRYW2FdIC0gZW1iZWRYW2JdO1xuICAgICAgICAgICAgY29uc3QgZHkgPSBlbWJlZFlbYV0gLSBlbWJlZFlbYl07XG4gICAgICAgICAgICAvLyAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5zcXJ0KGR4ICogZHggKyBkeSAqIGR5KTtcbiAgICAgICAgICAgIC8vICAgY29uc3QgZmFjdG9yID0gKGRpc3RhbmNlIC0gMSkgLyBkaXN0YW5jZTtcbiAgICAgICAgICAgIC8vICAgY29uc3Qgb2Zmc2V0WCA9IGR4ICogZmFjdG9yO1xuICAgICAgICAgICAgLy8gICBjb25zdCBvZmZzZXRZID0gZHkgKiBmYWN0b3I7XG4gICAgICAgICAgICBpZiAoTWF0aC5hYnMoZHgpID49IDEpIHtcbiAgICAgICAgICAgICAgICB4VmVsb2NpdGllc1thXSAtPSB0ZW1wZXJhdHVyZSAqIGR4O1xuICAgICAgICAgICAgICAgIHhWZWxvY2l0aWVzW2JdICs9IHRlbXBlcmF0dXJlICogZHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoTWF0aC5hYnMoZHkpID49IDEpIHtcbiAgICAgICAgICAgICAgICB5VmVsb2NpdGllc1thXSAtPSB0ZW1wZXJhdHVyZSAqIGR5O1xuICAgICAgICAgICAgICAgIHlWZWxvY2l0aWVzW2JdICs9IHRlbXBlcmF0dXJlICogZHk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAgIGVtYmVkWVthXSArPSBvZmZzZXRZICogdGVtcGVyYXR1cmU7XG4gICAgICAgICAgICAvLyAgIGVtYmVkWVtiXSAtPSBvZmZzZXRZICogdGVtcGVyYXR1cmU7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgY2x1c3Rlci5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgICAgICBjb25zdCB2ZWNTaXplID0gTWF0aC5zcXJ0KHhWZWxvY2l0aWVzW2lkeF0gKiB4VmVsb2NpdGllc1tpZHhdICsgeVZlbG9jaXRpZXNbaWR4XSAqIHlWZWxvY2l0aWVzW2lkeF0pO1xuICAgICAgICAgICAgaWYgKHZlY1NpemUgPiAwKSB7XG4gICAgICAgICAgICAgICAgZW1iZWRYW2lkeF0gKz0geFZlbG9jaXRpZXNbaWR4XSAvIHZlY1NpemUgKiB0ZW1wZXJhdHVyZTtcbiAgICAgICAgICAgICAgICBlbWJlZFlbaWR4XSArPSB5VmVsb2NpdGllc1tpZHhdIC8gdmVjU2l6ZSAqIHRlbXBlcmF0dXJlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIG5vcm1hbGl6ZVxuICAgIGxldCBtaW5YID0gZW1iZWRYWzBdO1xuICAgIGxldCBtaW5ZID0gZW1iZWRZWzBdO1xuICAgIGxldCBtYXhYID0gZW1iZWRYWzBdO1xuICAgIGxldCBtYXhZID0gZW1iZWRZWzBdO1xuICAgIGZvciAobGV0IGlkeCA9IDE7IGlkeCA8IGNsdXN0ZXIubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICBtaW5YID0gTWF0aC5taW4obWluWCwgZW1iZWRYW2lkeF0pO1xuICAgICAgICBtaW5ZID0gTWF0aC5taW4obWluWSwgZW1iZWRZW2lkeF0pO1xuICAgICAgICBtYXhYID0gTWF0aC5tYXgobWF4WCwgZW1iZWRYW2lkeF0pO1xuICAgICAgICBtYXhZID0gTWF0aC5tYXgobWF4WSwgZW1iZWRZW2lkeF0pO1xuICAgIH1cbiAgICBsZXQgcmFuZ2VYID0gbWF4WCAtIG1pblg7XG4gICAgbGV0IHJhbmdlWSA9IG1heFkgLSBtaW5ZO1xuICAgIGlmIChyYW5nZVggPT09IDApXG4gICAgICAgIHJhbmdlWCA9IG1heFg7XG4gICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgY2x1c3Rlci5sZW5ndGg7IGlkeCsrKVxuICAgICAgICBlbWJlZFhbaWR4XSA9IChlbWJlZFhbaWR4XSAtIG1pblgpIC8gcmFuZ2VYIC8gMiArIDAuNTtcbiAgICBpZiAocmFuZ2VZID09PSAwKVxuICAgICAgICByYW5nZVkgPSBtYXhZO1xuICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGNsdXN0ZXIubGVuZ3RoOyBpZHgrKylcbiAgICAgICAgZW1iZWRZW2lkeF0gPSAoZW1iZWRZW2lkeF0gLSBtaW5ZKSAvIHJhbmdlWSAvIDIgKyAwLjU7XG4gICAgcmV0dXJuIHsgZW1iZWRYLCBlbWJlZFkgfTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVltbHZMV3hoZVc5MWRDNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW1KcGJ5MXNZWGx2ZFhRdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJSVUVzVFVGQlRTeERRVUZETEV0QlFVc3NWVUZCVlN4VFFVRlRMRU5CUVVNc1QwRkJhVUlzUlVGQlJTeFpRVUZuUXl4RlFVRkZMRk5CUVdsQ08wbEJRM0JITEUxQlFVMHNRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU03U1VGRGVrSXNUVUZCVFN4RlFVRkZMRWRCUVdFc1JVRkJSU3hEUVVGRE8wbEJRM2hDTEUxQlFVMHNSVUZCUlN4SFFVRmhMRVZCUVVVc1EwRkJRenRKUVVONFFpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMUZCUXpGQ0xFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMWxCUXpsQ0xFMUJRVTBzUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOeVFpeE5RVUZOTEVOQlFVTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGNrSXNTVUZCU1N4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4VFFVRlRMRVZCUVVVN1owSkJRM0pETEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlExZ3NSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dGhRVU5hTzFOQlEwWTdTMEZEUmp0SlFVTkVMRTlCUVU4c2JVSkJRVzFDTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF6dEJRVU01UXl4RFFVRkRPMEZCUlVRc1UwRkJVeXh0UWtGQmJVSXNRMEZCUXl4RlFVRlpMRVZCUVVVc1JVRkJXU3hGUVVGRkxFOUJRV2xDTzBsQlEzaEZMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzV1VGQldTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJRenRKUVVOMFJpeE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRmxCUVZrc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEVOQlFVTTdTVUZEZEVZc1RVRkJUU3hWUVVGVkxFZEJRVWNzUjBGQlJ5eERRVUZETzBsQlEzWkNMRTFCUVUwc1YwRkJWeXhIUVVGSExFbEJRVWtzV1VGQldTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZETjBRc1RVRkJUU3hYUVVGWExFZEJRVWNzU1VGQlNTeFpRVUZaTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTTNSQ3hMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1ZVRkJWU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFGQlEyNURMRTFCUVUwc1YwRkJWeXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNc1EwRkJRenRSUVVONlF5eFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM0JDTEZkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGNFSXNTMEZCU3l4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRExFVkJRVVVzUjBGQlJ5eEhRVUZITEVWQlFVVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFVkJRVVU3V1VGRGVFTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlEyeENMRTFCUVUwc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTnNRaXhOUVVGTkxFVkJRVVVzUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEycERMRTFCUVUwc1JVRkJSU3hIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGFrTXNiVVJCUVcxRU8xbEJRMjVFTERoRFFVRTRRenRaUVVNNVF5eHBRMEZCYVVNN1dVRkRha01zYVVOQlFXbERPMWxCUTJwRExFbEJRVWtzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVU3WjBKQlEzSkNMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeFhRVUZYTEVkQlFVY3NSVUZCUlN4RFFVRkRPMmRDUVVOdVF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1YwRkJWeXhIUVVGSExFVkJRVVVzUTBGQlF6dGhRVU53UXp0WlFVTkVMRWxCUVVrc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVN1owSkJRM0pDTEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hYUVVGWExFZEJRVWNzUlVGQlJTeERRVUZETzJkQ1FVTnVReXhYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NWMEZCVnl4SFFVRkhMRVZCUVVVc1EwRkJRenRoUVVOd1F6dFpRVU5JTEhkRFFVRjNRenRaUVVONFF5eDNRMEZCZDBNN1UwRkRka003VVVGRFJDeExRVUZMTEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFZEJRVWNzVDBGQlR5eERRVUZETEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSVHRaUVVNM1F5eE5RVUZOTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4WFFVRlhMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzVjBGQlZ5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRmRCUVZjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEzSkhMRWxCUVVrc1QwRkJUeXhIUVVGSExFTkJRVU1zUlVGQlJUdG5Ra0ZEWml4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzVjBGQlZ5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRTlCUVU4c1IwRkJSeXhYUVVGWExFTkJRVU03WjBKQlEzaEVMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeFhRVUZYTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1QwRkJUeXhIUVVGSExGZEJRVmNzUTBGQlF6dGhRVU42UkR0VFFVTkdPMHRCUTBZN1NVRkZSQ3haUVVGWk8wbEJRMW9zU1VGQlNTeEpRVUZKTEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM0pDTEVsQlFVa3NTVUZCU1N4SFFVRkhMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU55UWl4SlFVRkpMRWxCUVVrc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEY2tJc1NVRkJTU3hKUVVGSkxFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNKQ0xFdEJRVXNzU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1IwRkJSeXhQUVVGUExFTkJRVU1zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZPMUZCUXpkRExFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1JVRkJSU3hOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTnVReXhKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRVZCUVVVc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYmtNc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RlFVRkZMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEyNURMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NSVUZCUlN4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dExRVU53UXp0SlFVTkVMRWxCUVVrc1RVRkJUU3hIUVVGSExFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTTdTVUZEZWtJc1NVRkJTU3hOUVVGTkxFZEJRVWNzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXp0SlFVTjZRaXhKUVVGSkxFMUJRVTBzUzBGQlN5eERRVUZETzFGQlEyUXNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJRenRKUVVOb1FpeExRVUZMTEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFZEJRVWNzVDBGQlR5eERRVUZETEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVN1VVRkRNME1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRTFCUVUwc1IwRkJSeXhEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETzBsQlEzaEVMRWxCUVVrc1RVRkJUU3hMUVVGTExFTkJRVU03VVVGRFpDeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRPMGxCUTJoQ0xFdEJRVXNzU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1IwRkJSeXhQUVVGUExFTkJRVU1zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlR0UlFVTXpReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NUVUZCVFN4SFFVRkhMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU03U1VGRmVFUXNUMEZCVHl4RlFVRkRMRTFCUVUwc1JVRkJSU3hOUVVGTkxFVkJRVU1zUTBGQlF6dEJRVU14UWl4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHRUY0dGeWMyVk5ZWFJ5YVhoUFltcGxZM1I5SUdaeWIyMGdKeTR2ZEhsd1pYTW5PMXh1WEc1bGVIQnZjblFnWVhONWJtTWdablZ1WTNScGIyNGdZbWx2VEdGNWIzVjBLR05zZFhOMFpYSTZJRzUxYldKbGNsdGRMQ0J6Y0dGeWMyVlBZbXBsWTNRNklGTndZWEp6WlUxaGRISnBlRTlpYW1WamRDd2dkR2h5WlhOb2IyeGtPaUJ1ZFcxaVpYSXBJSHRjYmlBZ1kyOXVjM1FnYmlBOUlHTnNkWE4wWlhJdWJHVnVaM1JvTzF4dUlDQmpiMjV6ZENCcGN6b2diblZ0WW1WeVcxMGdQU0JiWFR0Y2JpQWdZMjl1YzNRZ2FuTTZJRzUxYldKbGNsdGRJRDBnVzEwN1hHNGdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnYmpzZ2FTc3JLU0I3WEc0Z0lDQWdabTl5SUNoc1pYUWdhaUE5SUdrZ0t5QXhPeUJxSUR3Z2Jqc2dhaXNyS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JoSUQwZ1kyeDFjM1JsY2x0cFhUdGNiaUFnSUNBZ0lHTnZibk4wSUdJZ1BTQmpiSFZ6ZEdWeVcycGRPMXh1SUNBZ0lDQWdhV1lnS0hOd1lYSnpaVTlpYW1WamRGdGhYVDh1VzJKZElENDlJSFJvY21WemFHOXNaQ2tnZTF4dUlDQWdJQ0FnSUNCcGN5NXdkWE5vS0drcE8xeHVJQ0FnSUNBZ0lDQnFjeTV3ZFhOb0tHb3BPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnZlZ4dUlDQnlaWFIxY200Z1oyVjBUR0Y1YjNWMFJXMWlaV1JrYVc1bmN5aHBjeXdnYW5Nc0lHTnNkWE4wWlhJcE8xeHVmVnh1WEc1bWRXNWpkR2x2YmlCblpYUk1ZWGx2ZFhSRmJXSmxaR1JwYm1kektHbHpPaUJ1ZFcxaVpYSmJYU3dnYW5NNklHNTFiV0psY2x0ZExDQmpiSFZ6ZEdWeU9pQnVkVzFpWlhKYlhTa2dlMXh1SUNCamIyNXpkQ0JsYldKbFpGZ2dQU0J1WlhjZ1JteHZZWFF6TWtGeWNtRjVLR05zZFhOMFpYSXViR1Z1WjNSb0tTNW1hV3hzS0RBcExtMWhjQ2dvS1NBOVBpQk5ZWFJvTG5KaGJtUnZiU2dwSUNvZ01UQXBPMXh1SUNCamIyNXpkQ0JsYldKbFpGa2dQU0J1WlhjZ1JteHZZWFF6TWtGeWNtRjVLR05zZFhOMFpYSXViR1Z1WjNSb0tTNW1hV3hzS0RBcExtMWhjQ2dvS1NBOVBpQk5ZWFJvTG5KaGJtUnZiU2dwSUNvZ01UQXBPMXh1SUNCamIyNXpkQ0JwZEdWeVlYUnBiMjV6SUQwZ01UQXdPMXh1SUNCamIyNXpkQ0I0Vm1Wc2IyTnBkR2xsY3lBOUlHNWxkeUJHYkc5aGRETXlRWEp5WVhrb1kyeDFjM1JsY2k1c1pXNW5kR2dwTG1acGJHd29NQ2s3WEc0Z0lHTnZibk4wSUhsV1pXeHZZMmwwYVdWeklEMGdibVYzSUVac2IyRjBNekpCY25KaGVTaGpiSFZ6ZEdWeUxteGxibWQwYUNrdVptbHNiQ2d3S1R0Y2JpQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0JwZEdWeVlYUnBiMjV6T3lCcEt5c3BJSHRjYmlBZ0lDQmpiMjV6ZENCMFpXMXdaWEpoZEhWeVpTQTlJQ2d4SUMwZ2FTQXZJR2wwWlhKaGRHbHZibk1wTzF4dUlDQWdJSGhXWld4dlkybDBhV1Z6TG1acGJHd29NQ2s3WEc0Z0lDQWdlVlpsYkc5amFYUnBaWE11Wm1sc2JDZ3dLVHRjYmlBZ0lDQm1iM0lnS0d4bGRDQnBaSGdnUFNBd095QnBaSGdnUENCcGN5NXNaVzVuZEdnN0lHbGtlQ3NyS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JoSUQwZ2FYTmJhV1I0WFR0Y2JpQWdJQ0FnSUdOdmJuTjBJR0lnUFNCcWMxdHBaSGhkTzF4dUlDQWdJQ0FnWTI5dWMzUWdaSGdnUFNCbGJXSmxaRmhiWVYwZ0xTQmxiV0psWkZoYllsMDdYRzRnSUNBZ0lDQmpiMjV6ZENCa2VTQTlJR1Z0WW1Wa1dWdGhYU0F0SUdWdFltVmtXVnRpWFR0Y2JpQWdJQ0FnSUM4dklDQWdZMjl1YzNRZ1pHbHpkR0Z1WTJVZ1BTQk5ZWFJvTG5OeGNuUW9aSGdnS2lCa2VDQXJJR1I1SUNvZ1pIa3BPMXh1SUNBZ0lDQWdMeThnSUNCamIyNXpkQ0JtWVdOMGIzSWdQU0FvWkdsemRHRnVZMlVnTFNBeEtTQXZJR1JwYzNSaGJtTmxPMXh1SUNBZ0lDQWdMeThnSUNCamIyNXpkQ0J2Wm1aelpYUllJRDBnWkhnZ0tpQm1ZV04wYjNJN1hHNGdJQ0FnSUNBdkx5QWdJR052Ym5OMElHOW1abk5sZEZrZ1BTQmtlU0FxSUdaaFkzUnZjanRjYmlBZ0lDQWdJR2xtSUNoTllYUm9MbUZpY3loa2VDa2dQajBnTVNrZ2UxeHVJQ0FnSUNBZ0lDQjRWbVZzYjJOcGRHbGxjMXRoWFNBdFBTQjBaVzF3WlhKaGRIVnlaU0FxSUdSNE8xeHVJQ0FnSUNBZ0lDQjRWbVZzYjJOcGRHbGxjMXRpWFNBclBTQjBaVzF3WlhKaGRIVnlaU0FxSUdSNE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2FXWWdLRTFoZEdndVlXSnpLR1I1S1NBK1BTQXhLU0I3WEc0Z0lDQWdJQ0FnSUhsV1pXeHZZMmwwYVdWelcyRmRJQzA5SUhSbGJYQmxjbUYwZFhKbElDb2daSGs3WEc0Z0lDQWdJQ0FnSUhsV1pXeHZZMmwwYVdWelcySmRJQ3M5SUhSbGJYQmxjbUYwZFhKbElDb2daSGs3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdMeThnSUNCbGJXSmxaRmxiWVYwZ0t6MGdiMlptYzJWMFdTQXFJSFJsYlhCbGNtRjBkWEpsTzF4dUlDQWdJQzh2SUNBZ1pXMWlaV1JaVzJKZElDMDlJRzltWm5ObGRGa2dLaUIwWlcxd1pYSmhkSFZ5WlR0Y2JpQWdJQ0I5WEc0Z0lDQWdabTl5SUNoc1pYUWdhV1I0SUQwZ01Ec2dhV1I0SUR3Z1kyeDFjM1JsY2k1c1pXNW5kR2c3SUdsa2VDc3JLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQjJaV05UYVhwbElEMGdUV0YwYUM1emNYSjBLSGhXWld4dlkybDBhV1Z6VzJsa2VGMGdLaUI0Vm1Wc2IyTnBkR2xsYzF0cFpIaGRJQ3NnZVZabGJHOWphWFJwWlhOYmFXUjRYU0FxSUhsV1pXeHZZMmwwYVdWelcybGtlRjBwTzF4dUlDQWdJQ0FnYVdZZ0tIWmxZMU5wZW1VZ1BpQXdLU0I3WEc0Z0lDQWdJQ0FnSUdWdFltVmtXRnRwWkhoZElDczlJSGhXWld4dlkybDBhV1Z6VzJsa2VGMGdMeUIyWldOVGFYcGxJQ29nZEdWdGNHVnlZWFIxY21VN1hHNGdJQ0FnSUNBZ0lHVnRZbVZrV1Z0cFpIaGRJQ3M5SUhsV1pXeHZZMmwwYVdWelcybGtlRjBnTHlCMlpXTlRhWHBsSUNvZ2RHVnRjR1Z5WVhSMWNtVTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdMeThnYm05eWJXRnNhWHBsWEc0Z0lHeGxkQ0J0YVc1WUlEMGdaVzFpWldSWVd6QmRPMXh1SUNCc1pYUWdiV2x1V1NBOUlHVnRZbVZrV1Zzd1hUdGNiaUFnYkdWMElHMWhlRmdnUFNCbGJXSmxaRmhiTUYwN1hHNGdJR3hsZENCdFlYaFpJRDBnWlcxaVpXUlpXekJkTzF4dUlDQm1iM0lnS0d4bGRDQnBaSGdnUFNBeE95QnBaSGdnUENCamJIVnpkR1Z5TG14bGJtZDBhRHNnYVdSNEt5c3BJSHRjYmlBZ0lDQnRhVzVZSUQwZ1RXRjBhQzV0YVc0b2JXbHVXQ3dnWlcxaVpXUllXMmxrZUYwcE8xeHVJQ0FnSUcxcGJsa2dQU0JOWVhSb0xtMXBiaWh0YVc1WkxDQmxiV0psWkZsYmFXUjRYU2s3WEc0Z0lDQWdiV0Y0V0NBOUlFMWhkR2d1YldGNEtHMWhlRmdzSUdWdFltVmtXRnRwWkhoZEtUdGNiaUFnSUNCdFlYaFpJRDBnVFdGMGFDNXRZWGdvYldGNFdTd2daVzFpWldSWlcybGtlRjBwTzF4dUlDQjlYRzRnSUd4bGRDQnlZVzVuWlZnZ1BTQnRZWGhZSUMwZ2JXbHVXRHRjYmlBZ2JHVjBJSEpoYm1kbFdTQTlJRzFoZUZrZ0xTQnRhVzVaTzF4dUlDQnBaaUFvY21GdVoyVllJRDA5UFNBd0tWeHVJQ0FnSUhKaGJtZGxXQ0E5SUcxaGVGZzdYRzRnSUdadmNpQW9iR1YwSUdsa2VDQTlJREE3SUdsa2VDQThJR05zZFhOMFpYSXViR1Z1WjNSb095QnBaSGdyS3lsY2JpQWdJQ0JsYldKbFpGaGJhV1I0WFNBOUlDaGxiV0psWkZoYmFXUjRYU0F0SUcxcGJsZ3BJQzhnY21GdVoyVllJQzhnTWlBcklEQXVOVHRjYmlBZ2FXWWdLSEpoYm1kbFdTQTlQVDBnTUNsY2JpQWdJQ0J5WVc1blpWa2dQU0J0WVhoWk8xeHVJQ0JtYjNJZ0tHeGxkQ0JwWkhnZ1BTQXdPeUJwWkhnZ1BDQmpiSFZ6ZEdWeUxteGxibWQwYURzZ2FXUjRLeXNwWEc0Z0lDQWdaVzFpWldSWlcybGtlRjBnUFNBb1pXMWlaV1JaVzJsa2VGMGdMU0J0YVc1WktTQXZJSEpoYm1kbFdTQXZJRElnS3lBd0xqVTdYRzVjYmlBZ2NtVjBkWEp1SUh0bGJXSmxaRmdzSUdWdFltVmtXWDA3WEc1OVhHNGlYWDA9IiwiaW1wb3J0IHsgYmlvTGF5b3V0IH0gZnJvbSAnLi9iaW8tbGF5b3V0JztcbmV4cG9ydCBjb25zdCBkZWZhdWx0TUNMT3B0aW9ucyA9IHtcbiAgICBleHBhbmRGYWN0b3I6IDIsXG4gICAgbWF4SXRlcmF0aW9uczogNSxcbiAgICBpbmZsYXRlRmFjdG9yOiAyLFxuICAgIG11bHRGYWN0b3I6IDEsXG59O1xuZXhwb3J0IGNsYXNzIE1DTFNwYXJzZVJlZHVjZXIge1xuICAgIF9vcHRpb25zO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMgPSB7fSkge1xuICAgICAgICB0aGlzLl9vcHRpb25zID0geyAuLi5kZWZhdWx0TUNMT3B0aW9ucywgLi4ub3B0cyB9O1xuICAgIH1cbiAgICBhc3luYyB0cmFuc2Zvcm0oc3BhcnNlTWF0cml4LCBuUm93cykge1xuICAgICAgICAvLyB0ZXN0V29ya2VyTXVsdGlwbHkoKTtcbiAgICAgICAgLy8gcmV0dXJuIG5ldyBJbnQzMkFycmF5KG5Sb3dzKTtcbiAgICAgICAgbGV0IHNwYXJzZU9iamVjdCA9IHRoaXMudG9PYmplY3RGb3JtKHNwYXJzZU1hdHJpeCk7XG4gICAgICAgIGlmICh0aGlzLl9vcHRpb25zLm1heEl0ZXJhdGlvbnMgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmFkZExvb3BzKHNwYXJzZU9iamVjdCwgblJvd3MpO1xuICAgICAgICAgICAgdGhpcy5ub3JtYWxpemUoc3BhcnNlT2JqZWN0KTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fb3B0aW9ucy5tYXhJdGVyYXRpb25zOyBpKyspIHtcbiAgICAgICAgICAgICAgICBzcGFyc2VPYmplY3QgPSB0aGlzLmV4cGFuZChzcGFyc2VPYmplY3QsIG5Sb3dzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmluZmxhdGUoc3BhcnNlT2JqZWN0KTtcbiAgICAgICAgICAgICAgICB0aGlzLm5vcm1hbGl6ZShzcGFyc2VPYmplY3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgY2x1c3RlcnMsIGlzLCBqcyB9ID0gdGhpcy5hc3NpZ25DbHVzdGVycyhzcGFyc2VPYmplY3QsIG5Sb3dzKTtcbiAgICAgICAgdGhpcy5jb3JyZWN0Q2x1c3RlcnMoY2x1c3RlcnMpO1xuICAgICAgICBjb25zdCBlbWJlZGRpbmdzID0gYXdhaXQgdGhpcy5sYXlvdXQoY2x1c3RlcnMsIHNwYXJzZU9iamVjdCwgblJvd3MpO1xuICAgICAgICByZXR1cm4geyBjbHVzdGVycywgZW1iZWRYOiBlbWJlZGRpbmdzLmVtYmVkWCwgZW1iZWRZOiBlbWJlZGRpbmdzLmVtYmVkWSwgaXMsIGpzIH07XG4gICAgfVxuICAgIGNvcnJlY3RDbHVzdGVycyhjbHVzdGVycykge1xuICAgICAgICBjb25zdCBjbHVzdGVyU2l6ZU1hcCA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGNsdXN0ZXIgb2YgY2x1c3RlcnMpIHtcbiAgICAgICAgICAgIGlmICghY2x1c3RlclNpemVNYXBbY2x1c3Rlcl0pXG4gICAgICAgICAgICAgICAgY2x1c3RlclNpemVNYXBbY2x1c3Rlcl0gPSAwO1xuICAgICAgICAgICAgY2x1c3RlclNpemVNYXBbY2x1c3Rlcl0rKztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzb3J0ZWRJbmRleGVzID0gT2JqZWN0LmtleXMoY2x1c3RlclNpemVNYXApLm1hcChOdW1iZXIpLnNvcnQoKGEsIGIpID0+IGNsdXN0ZXJTaXplTWFwW2FdIC0gY2x1c3RlclNpemVNYXBbYl0pO1xuICAgICAgICBjb25zdCBjbHVzdGVyTWFwID0ge307XG4gICAgICAgIHNvcnRlZEluZGV4ZXMuZm9yRWFjaCgoY2x1c3RlcklkeCwgaSkgPT4gY2x1c3Rlck1hcFtjbHVzdGVySWR4XSA9IGkgKyAxKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjbHVzdGVycy5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgIGNsdXN0ZXJzW2ldID0gY2x1c3Rlck1hcFtjbHVzdGVyc1tpXV07XG4gICAgICAgIC8vIGxldCBjdXJDbHVzdGVyID0gMTtcbiAgICAgICAgLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBjbHVzdGVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAvLyAgIGlmICghY2x1c3Rlck1hcFtjbHVzdGVyc1tpXV0pIHtcbiAgICAgICAgLy8gICAgIGNsdXN0ZXJNYXBbY2x1c3RlcnNbaV1dID0gY3VyQ2x1c3RlcjtcbiAgICAgICAgLy8gICAgIGNsdXN0ZXJzW2ldID0gY3VyQ2x1c3RlcjtcbiAgICAgICAgLy8gICAgIGN1ckNsdXN0ZXIrKztcbiAgICAgICAgLy8gICB9IGVsc2Uge1xuICAgICAgICAvLyAgICAgY2x1c3RlcnNbaV0gPSBjbHVzdGVyTWFwW2NsdXN0ZXJzW2ldXTtcbiAgICAgICAgLy8gICB9XG4gICAgICAgIC8vIH1cbiAgICB9XG4gICAgYXN5bmMgbGF5b3V0KGNsdXN0ZXJzLCBzcGFyc2VNYXRyaXgsIG5Sb3dzKSB7XG4gICAgICAgIGNvbnN0IGVtYmVkWCA9IG5ldyBGbG9hdDMyQXJyYXkoblJvd3MpLmZpbGwoMCk7XG4gICAgICAgIGNvbnN0IGVtYmVkWSA9IG5ldyBGbG9hdDMyQXJyYXkoblJvd3MpLmZpbGwoMCk7XG4gICAgICAgIGNvbnN0IGNsdXN0ZXJNYXAgPSB7fTtcbiAgICAgICAgY2x1c3RlcnMuZm9yRWFjaCgoY2x1c3RlciwgaSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFjbHVzdGVyTWFwW2NsdXN0ZXJdKVxuICAgICAgICAgICAgICAgIGNsdXN0ZXJNYXBbY2x1c3Rlcl0gPSBbXTtcbiAgICAgICAgICAgIGNsdXN0ZXJNYXBbY2x1c3Rlcl0ucHVzaChpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGNvbnN0IG5DbHVzdGVycyA9IE9iamVjdC5rZXlzKGNsdXN0ZXJNYXApLmxlbmd0aDtcbiAgICAgICAgLy8gY29uc3QgcGVyUm93ID0gTWF0aC5mbG9vcihNYXRoLnNxcnQobkNsdXN0ZXJzKSk7XG4gICAgICAgIGxldCBjbHVzdGVyTnVtID0gMDtcbiAgICAgICAgY29uc3Qgc29ydGVkQ2x1c3Rlck5hbWVzID0gT2JqZWN0LmtleXMoY2x1c3Rlck1hcCk7XG4gICAgICAgIHNvcnRlZENsdXN0ZXJOYW1lcy5zb3J0KChhLCBiKSA9PiBjbHVzdGVyTWFwW2JdLmxlbmd0aCAtIGNsdXN0ZXJNYXBbYV0ubGVuZ3RoKTtcbiAgICAgICAgbGV0IHBlclJvdyA9IDY7XG4gICAgICAgIGxldCB5T2Zmc2V0ID0gMDtcbiAgICAgICAgY29uc3QgbGF5b3V0U2l6ZSA9IDU7XG4gICAgICAgIGZvciAoY29uc3QgY2x1c3Rlck5hbWUgb2Ygc29ydGVkQ2x1c3Rlck5hbWVzKSB7XG4gICAgICAgICAgICBjb25zdCBjbHVzdGVyID0gY2x1c3Rlck1hcFtjbHVzdGVyTmFtZV07XG4gICAgICAgICAgICBjb25zdCBlbWJlZGRpbmdzID0gYXdhaXQgYmlvTGF5b3V0KGNsdXN0ZXIsIHNwYXJzZU1hdHJpeCwgMC4wMDEpO1xuICAgICAgICAgICAgaWYgKGNsdXN0ZXJOdW0gPT09IE1hdGguY2VpbChwZXJSb3cgLyAxLjUpKSB7XG4gICAgICAgICAgICAgICAgY2x1c3Rlck51bSA9IDA7XG4gICAgICAgICAgICAgICAgeU9mZnNldCArPSBsYXlvdXRTaXplIC8gcGVyUm93O1xuICAgICAgICAgICAgICAgIHBlclJvdyA9IE1hdGguY2VpbChwZXJSb3cgKiAxLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0WCA9ICgoY2x1c3Rlck51bSAlIHBlclJvdykgKiBsYXlvdXRTaXplIC8gcGVyUm93KSAqIDEuNTtcbiAgICAgICAgICAgIC8vIGNvbnN0IG9mZnNldFkgPSBNYXRoLmZsb29yKGNsdXN0ZXJOdW0gLyBwZXJSb3cpICogMjtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZW1iZWRkaW5ncy5lbWJlZFgubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBlbWJlZFhbY2x1c3RlcltpXV0gPSBlbWJlZGRpbmdzLmVtYmVkWFtpXSAqIGxheW91dFNpemUgLyBwZXJSb3cgKyBvZmZzZXRYO1xuICAgICAgICAgICAgICAgIGVtYmVkWVtjbHVzdGVyW2ldXSA9IGVtYmVkZGluZ3MuZW1iZWRZW2ldICogbGF5b3V0U2l6ZSAvIHBlclJvdyArIHlPZmZzZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjbHVzdGVyTnVtKys7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgZW1iZWRYLCBlbWJlZFkgfTtcbiAgICB9XG4gICAgbWVyZ2VDbHVzdGVycyhjbHVzdGVycywgaSwgaikge1xuICAgICAgICBjb25zdCBpQ2x1c3RlciA9IGNsdXN0ZXJzW2ldO1xuICAgICAgICBjb25zdCBqQ2x1c3RlciA9IGNsdXN0ZXJzW2pdO1xuICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IGNsdXN0ZXJzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgICAgICBpZiAoY2x1c3RlcnNba10gPT09IGpDbHVzdGVyKVxuICAgICAgICAgICAgICAgIGNsdXN0ZXJzW2tdID0gaUNsdXN0ZXI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXNzaWduQ2x1c3RlcnMoc3BhcnNlTWF0cml4LCBuUm93cykge1xuICAgICAgICBsZXQgY2x1c3Rlck51bSA9IDA7XG4gICAgICAgIGNvbnN0IGlzID0gW107XG4gICAgICAgIGNvbnN0IGpzID0gW107XG4gICAgICAgIGNvbnN0IG9yZGVyID0gTWF0aC5mbG9vcihNYXRoLm1heChNYXRoLmxvZzEwKG5Sb3dzKSwgMikpICsgMTtcbiAgICAgICAgY29uc3QgbWluT3JkZXIgPSBNYXRoLnBvdygxMCwgb3JkZXIpO1xuICAgICAgICBjb25zdCBjbHVzdGVycyA9IG5ldyBBcnJheShuUm93cykuZmlsbCgtMSk7XG4gICAgICAgIGZvciAoY29uc3QgaSBvZiBPYmplY3Qua2V5cyhzcGFyc2VNYXRyaXgpKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGogb2YgT2JqZWN0LmtleXMoc3BhcnNlTWF0cml4W2ldKSkge1xuICAgICAgICAgICAgICAgIGlmIChNYXRoLnJvdW5kKHNwYXJzZU1hdHJpeFtpXVtqXSAqIG1pbk9yZGVyKSAvIG1pbk9yZGVyID4gMCAmJlxuICAgICAgICAgICAgICAgICAgICBzcGFyc2VNYXRyaXhbaV1bal0gIT09IE51bWJlcihpKSAmJiBOdW1iZXIoaikgPiBOdW1iZXIoaSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaXMucHVzaChOdW1iZXIoaSkpO1xuICAgICAgICAgICAgICAgICAgICBqcy5wdXNoKE51bWJlcihqKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjbHVzdGVyc1tOdW1iZXIoaSldICE9PSAtMSAmJiBjbHVzdGVyc1tOdW1iZXIoaildICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNsdXN0ZXJzW051bWJlcihpKV0gIT09IGNsdXN0ZXJzW051bWJlcihqKV0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXJnZUNsdXN0ZXJzKGNsdXN0ZXJzLCBOdW1iZXIoaSksIE51bWJlcihqKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY2x1c3RlcnNbTnVtYmVyKGkpXSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsdXN0ZXJzW051bWJlcihqKV0gPSBjbHVzdGVyc1tOdW1iZXIoaSldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNsdXN0ZXJzW051bWJlcihqKV0gIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbHVzdGVyc1tOdW1iZXIoaSldID0gY2x1c3RlcnNbTnVtYmVyKGopXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsdXN0ZXJOdW0rKztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsdXN0ZXJzW051bWJlcihpKV0gPSBjbHVzdGVyTnVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3RlcnNbTnVtYmVyKGopXSA9IGNsdXN0ZXJOdW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjbHVzdGVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGNsdXN0ZXJzW2ldID09PSAtMSkge1xuICAgICAgICAgICAgICAgIGNsdXN0ZXJOdW0rKztcbiAgICAgICAgICAgICAgICBjbHVzdGVyc1tpXSA9IGNsdXN0ZXJOdW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgY2x1c3RlcnMsIGlzLCBqcyB9O1xuICAgIH1cbiAgICB0b09iamVjdEZvcm0oc3BhcnNlTWF0cml4KSB7XG4gICAgICAgIGNvbnN0IHNwYXJzZU9iamVjdCA9IHt9O1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNwYXJzZU1hdHJpeC5pLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoIXNwYXJzZU9iamVjdFtzcGFyc2VNYXRyaXguaVtpXV0pXG4gICAgICAgICAgICAgICAgc3BhcnNlT2JqZWN0W3NwYXJzZU1hdHJpeC5pW2ldXSA9IHt9O1xuICAgICAgICAgICAgc3BhcnNlT2JqZWN0W3NwYXJzZU1hdHJpeC5pW2ldXVtzcGFyc2VNYXRyaXgualtpXV0gPSAxIC0gc3BhcnNlTWF0cml4LmRpc3RhbmNlW2ldO1xuICAgICAgICAgICAgaWYgKCFzcGFyc2VPYmplY3Rbc3BhcnNlTWF0cml4LmpbaV1dKVxuICAgICAgICAgICAgICAgIHNwYXJzZU9iamVjdFtzcGFyc2VNYXRyaXgualtpXV0gPSB7fTtcbiAgICAgICAgICAgIHNwYXJzZU9iamVjdFtzcGFyc2VNYXRyaXgualtpXV1bc3BhcnNlTWF0cml4LmlbaV1dID0gMSAtIHNwYXJzZU1hdHJpeC5kaXN0YW5jZVtpXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3BhcnNlT2JqZWN0O1xuICAgIH1cbiAgICBhZGRMb29wcyhzcGFyc2VPYmplY3QsIG5Sb3dzKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgblJvd3M7IGkrKykge1xuICAgICAgICAgICAgaWYgKCFzcGFyc2VPYmplY3RbaV0pXG4gICAgICAgICAgICAgICAgc3BhcnNlT2JqZWN0W2ldID0ge307XG4gICAgICAgICAgICBzcGFyc2VPYmplY3RbaV1baV0gPSB0aGlzLl9vcHRpb25zLm11bHRGYWN0b3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbm9ybWFsaXplKHNwYXJzZU9iamVjdCkge1xuICAgICAgICBmb3IgKGNvbnN0IGkgb2YgT2JqZWN0LmtleXMoc3BhcnNlT2JqZWN0KSkge1xuICAgICAgICAgICAgY29uc3Qgcm93ID0gc3BhcnNlT2JqZWN0W2ldO1xuICAgICAgICAgICAgbGV0IHN1bSA9IDA7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGogb2YgT2JqZWN0LmtleXMocm93KSlcbiAgICAgICAgICAgICAgICBzdW0gKz0gcm93W2pdO1xuICAgICAgICAgICAgaWYgKHN1bSA9PT0gMClcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaiBvZiBPYmplY3Qua2V5cyhyb3cpKVxuICAgICAgICAgICAgICAgIHNwYXJzZU9iamVjdFtpXVtqXSAvPSBzdW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgZXhwYW5kKHNwYXJzZU9iamVjdCwgblJvd3MpIHtcbiAgICAgICAgY29uc3QgZXhwYW5kZWRPYmplY3QgPSB7fTtcbiAgICAgICAgY29uc3Qgb3JkZXIgPSBNYXRoLmZsb29yKE1hdGgubWF4KE1hdGgubG9nMTAoblJvd3MpLCAyKSkgKyAxO1xuICAgICAgICBjb25zdCBtaW5PcmRlciA9IE1hdGgucG93KDEwLCBvcmRlcik7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgblJvd3M7IGkrKykge1xuICAgICAgICAgICAgaWYgKCFzcGFyc2VPYmplY3RbaV0pXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAvLyBjb25zdCByb3cgPSBzcGFyc2VPYmplY3RbaV07XG4gICAgICAgICAgICBleHBhbmRlZE9iamVjdFtpXSA9IHt9O1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IGk7IGogPCBuUm93czsgaisrKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzcGFyc2VPYmplY3RbaV0/LltqXSlcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsID0gdGhpcy5nZXRFeHBhbmRWYWx1ZShzcGFyc2VPYmplY3QsIGksIGopOyAvL3BydW5pbmcgc3RlcFxuICAgICAgICAgICAgICAgIGlmIChNYXRoLnJvdW5kKHZhbCAqIG1pbk9yZGVyKSAvIG1pbk9yZGVyID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBleHBhbmRlZE9iamVjdFtpXVtqXSA9IHZhbDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFleHBhbmRlZE9iamVjdFtqXSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZGVkT2JqZWN0W2pdID0ge307XG4gICAgICAgICAgICAgICAgICAgIGV4cGFuZGVkT2JqZWN0W2pdW2ldID0gdmFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZXhwYW5kZWRPYmplY3Q7XG4gICAgfVxuICAgIC8vIHByaXZhdGUgcHJ1bmUocm93OiBTcGFyc2VNYXRyaXhPYmplY3RbbnVtYmVyXSkge1xuICAgIC8vIH1cbiAgICBpbmZsYXRlKHNwYXJzZU9iamVjdCkge1xuICAgICAgICBmb3IgKGNvbnN0IGkgb2YgT2JqZWN0LmtleXMoc3BhcnNlT2JqZWN0KSkge1xuICAgICAgICAgICAgY29uc3Qgcm93ID0gc3BhcnNlT2JqZWN0W2ldO1xuICAgICAgICAgICAgZm9yIChjb25zdCBqIG9mIE9iamVjdC5rZXlzKHJvdykpXG4gICAgICAgICAgICAgICAgc3BhcnNlT2JqZWN0W2ldW2pdID0gTWF0aC5wb3coc3BhcnNlT2JqZWN0W2ldW2pdLCB0aGlzLl9vcHRpb25zLmluZmxhdGVGYWN0b3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldEV4cGFuZFZhbHVlKHNwYXJzZU9iamVjdCwgaSwgaikge1xuICAgICAgICBsZXQgdmFsID0gMDtcbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4ZXMgPSBPYmplY3Qua2V5cyhzcGFyc2VPYmplY3RbaV0gPz8ge30pO1xuICAgICAgICBjb25zdCBvdGhlckluZGV4ZXMgPSBPYmplY3Qua2V5cyhzcGFyc2VPYmplY3Rbal0gPz8ge30pO1xuICAgICAgICBmb3IgKGNvbnN0IGsgb2YgY3VycmVudEluZGV4ZXMpIHtcbiAgICAgICAgICAgIGlmIChvdGhlckluZGV4ZXMuaW5jbHVkZXMoaykpXG4gICAgICAgICAgICAgICAgdmFsICs9IHNwYXJzZU9iamVjdFtpXVtrXSAqIHNwYXJzZU9iamVjdFtqXVtrXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWJXRnlZMjkyTFdOc2RYTjBaWEl1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SnRZWEpqYjNZdFkyeDFjM1JsY2k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkRRU3hQUVVGUExFVkJRVU1zVTBGQlV5eEZRVUZETEUxQlFVMHNZMEZCWXl4RFFVRkRPMEZCUjNaRExFMUJRVTBzUTBGQlF5eE5RVUZOTEdsQ1FVRnBRaXhIUVVGbE8wbEJRek5ETEZsQlFWa3NSVUZCUlN4RFFVRkRPMGxCUTJZc1lVRkJZU3hGUVVGRkxFTkJRVU03U1VGRGFFSXNZVUZCWVN4RlFVRkZMRU5CUVVNN1NVRkRhRUlzVlVGQlZTeEZRVUZGTEVOQlFVTTdRMEZEWkN4RFFVRkRPMEZCUlVZc1RVRkJUU3hQUVVGUExHZENRVUZuUWp0SlFVTnVRaXhSUVVGUkxFTkJRV0U3U1VGRk4wSXNXVUZCV1N4UFFVRTBRaXhGUVVGRk8xRkJRM2hETEVsQlFVa3NRMEZCUXl4UlFVRlJMRWRCUVVjc1JVRkJReXhIUVVGSExHbENRVUZwUWl4RlFVRkZMRWRCUVVjc1NVRkJTU3hGUVVGRExFTkJRVU03U1VGRGJFUXNRMEZCUXp0SlFVVk5MRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zV1VGQlowTXNSVUZCUlN4TFFVRmhPMUZCUTNCRkxIZENRVUYzUWp0UlFVTjRRaXhuUTBGQlowTTdVVUZEYUVNc1NVRkJTU3haUVVGWkxFZEJRVWNzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRSUVVOdVJDeEpRVUZKTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1lVRkJZU3hIUVVGSExFTkJRVU1zUlVGQlJUdFpRVU51UXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExGbEJRVmtzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVTnVReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMWxCUXpkQ0xFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEdGQlFXRXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRuUWtGRGNFUXNXVUZCV1N4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zV1VGQldTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMmRDUVVOb1JDeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8yZENRVU16UWl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzJGQlF6bENPMU5CUTBZN1VVRkRSQ3hOUVVGTkxFVkJRVU1zVVVGQlVTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEZsQlFWa3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVOd1JTeEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJReTlDTEUxQlFVMHNWVUZCVlN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFJRVUZSTEVWQlFVVXNXVUZCV1N4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRM0JGTEU5QlFVOHNSVUZCUXl4UlFVRlJMRVZCUVVVc1RVRkJUU3hGUVVGRkxGVkJRVlVzUTBGQlF5eE5RVUZOTEVWQlFVVXNUVUZCVFN4RlFVRkZMRlZCUVZVc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUXl4RFFVRkRPMGxCUTJ4R0xFTkJRVU03U1VGRlR5eGxRVUZsTEVOQlFVTXNVVUZCYTBJN1VVRkRlRU1zVFVGQlRTeGpRVUZqTEVkQlFUQkNMRVZCUVVVc1EwRkJRenRSUVVOcVJDeExRVUZMTEUxQlFVMHNUMEZCVHl4SlFVRkpMRkZCUVZFc1JVRkJSVHRaUVVNNVFpeEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRTlCUVU4c1EwRkJRenRuUWtGRE1VSXNZMEZCWXl4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU01UWl4alFVRmpMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVVVzUTBGQlF6dFRRVU16UWp0UlFVTkVMRTFCUVUwc1lVRkJZU3hIUVVGSExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhqUVVGakxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTndTQ3hOUVVGTkxGVkJRVlVzUjBGQk1FSXNSVUZCUlN4RFFVRkRPMUZCUXpkRExHRkJRV0VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eFZRVUZWTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzcEZMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJUdFpRVU4wUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVlVGQlZTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM2hETEhOQ1FVRnpRanRSUVVOMFFpdzRRMEZCT0VNN1VVRkRPVU1zYjBOQlFXOURPMUZCUTNCRExEUkRRVUUwUXp0UlFVTTFReXhuUTBGQlowTTdVVUZEYUVNc2IwSkJRVzlDTzFGQlEzQkNMR0ZCUVdFN1VVRkRZaXcyUTBGQk5rTTdVVUZETjBNc1RVRkJUVHRSUVVOT0xFbEJRVWs3U1VGRFRpeERRVUZETzBsQlJVOHNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGclFpeEZRVUZGTEZsQlFXZERMRVZCUVVVc1MwRkJZVHRSUVVOMFJpeE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRmxCUVZrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRMME1zVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4WlFVRlpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXk5RExFMUJRVTBzVlVGQlZTeEhRVUUwUWl4RlFVRkZMRU5CUVVNN1VVRkRMME1zVVVGQlVTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdFpRVU01UWl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFOUJRVThzUTBGQlF6dG5Ra0ZEZEVJc1ZVRkJWU3hEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXp0WlFVTXpRaXhWUVVGVkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRemxDTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTBnc2IwUkJRVzlFTzFGQlEzQkVMRzFFUVVGdFJEdFJRVU51UkN4SlFVRkpMRlZCUVZVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGJrSXNUVUZCVFN4clFrRkJhMElzUjBGQlJ5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8xRkJRMjVFTEd0Q1FVRnJRaXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZSTEVOQlFVTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1ZVRkJWU3hEUVVGRExFTkJRVkVzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUXpkR0xFbEJRVWtzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVVm1MRWxCUVVrc1QwRkJUeXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU5vUWl4TlFVRk5MRlZCUVZVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGNrSXNTMEZCU3l4TlFVRk5MRmRCUVZjc1NVRkJTU3hyUWtGQmEwSXNSVUZCUlR0WlFVTTFReXhOUVVGTkxFOUJRVThzUjBGQlJ5eFZRVUZWTEVOQlFVTXNWMEZCYTBJc1EwRkJSU3hEUVVGRE8xbEJRMmhFTEUxQlFVMHNWVUZCVlN4SFFVRkhMRTFCUVUwc1UwRkJVeXhEUVVGRExFOUJRVThzUlVGQlJTeFpRVUZaTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1dVRkRha1VzU1VGQlNTeFZRVUZWTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFZEJRVWNzUjBGQlJ5eERRVUZETEVWQlFVVTdaMEpCUXpGRExGVkJRVlVzUjBGQlJ5eERRVUZETEVOQlFVTTdaMEpCUTJZc1QwRkJUeXhKUVVGSkxGVkJRVlVzUjBGQlJ5eE5RVUZOTEVOQlFVTTdaMEpCUXk5Q0xFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF6dGhRVU5zUXp0WlFVTkVMRTFCUVUwc1QwRkJUeXhIUVVGSExFTkJRVU1zUTBGQlF5eFZRVUZWTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWRCUVVjc1ZVRkJWU3hIUVVGSExFMUJRVTBzUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXp0WlFVTndSU3gxUkVGQmRVUTdXVUZGZGtRc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRlZCUVZVc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMmRDUVVOcVJDeE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVlVGQlZTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhWUVVGVkxFZEJRVWNzVFVGQlRTeEhRVUZITEU5QlFVOHNRMEZCUXp0blFrRkRNVVVzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExGVkJRVlVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1ZVRkJWU3hIUVVGSExFMUJRVTBzUjBGQlJ5eFBRVUZQTEVOQlFVTTdZVUZETTBVN1dVRkRSQ3hWUVVGVkxFVkJRVVVzUTBGQlF6dFRRVU5rTzFGQlEwUXNUMEZCVHl4RlFVRkRMRTFCUVUwc1JVRkJSU3hOUVVGTkxFVkJRVU1zUTBGQlF6dEpRVU14UWl4RFFVRkRPMGxCUlU4c1lVRkJZU3hEUVVGRExGRkJRV3RDTEVWQlFVVXNRMEZCVXl4RlFVRkZMRU5CUVZNN1VVRkROVVFzVFVGQlRTeFJRVUZSTEVkQlFVY3NVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRemRDTEUxQlFVMHNVVUZCVVN4SFFVRkhMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU0zUWl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NVVUZCVVN4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdFpRVU40UXl4SlFVRkpMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eFJRVUZSTzJkQ1FVTXhRaXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NVVUZCVVN4RFFVRkRPMU5CUXpGQ08wbEJRMGdzUTBGQlF6dEpRVU5OTEdOQlFXTXNRMEZCUXl4WlFVRm5ReXhGUVVGRkxFdEJRV0U3VVVGRGJrVXNTVUZCU1N4VlFVRlZMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMjVDTEUxQlFVMHNSVUZCUlN4SFFVRmhMRVZCUVVVc1EwRkJRenRSUVVONFFpeE5RVUZOTEVWQlFVVXNSMEZCWVN4RlFVRkZMRU5CUVVNN1VVRkRlRUlzVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkROMFFzVFVGQlRTeFJRVUZSTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEY2tNc1RVRkJUU3hSUVVGUkxFZEJRV0VzU1VGQlNTeExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEY2tRc1MwRkJTeXhOUVVGTkxFTkJRVU1zU1VGQlNTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhGUVVGRk8xbEJRM3BETEV0QlFVc3NUVUZCVFN4RFFVRkRMRWxCUVVrc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCVVN4RFFVRkRMRU5CUVVNc1JVRkJSVHRuUWtGRGJrUXNTVUZCU1N4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRlJMRU5CUVVNc1IwRkJSeXhSUVVGUkxFTkJRVU1zUjBGQlJ5eFJRVUZSTEVkQlFVY3NRMEZCUXp0dlFrRkRlRVVzV1VGQldTeERRVUZETEVOQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVZFc1EwRkJReXhMUVVGTExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZPMjlDUVVONlJTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVTnVRaXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVU51UWl4SlFVRkpMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1NVRkJTU3hSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVU3ZDBKQlF6VkVMRWxCUVVrc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdORUpCUXpkRExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNVVUZCVVN4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenR4UWtGRGRFUTdlVUpCUVUwc1NVRkJTU3hSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVU3ZDBKQlEzSkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdjVUpCUXpORE8zbENRVUZOTEVsQlFVa3NVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RlFVRkZPM2RDUVVOeVF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8zRkNRVU16UXp0NVFrRkJUVHQzUWtGRFRDeFZRVUZWTEVWQlFVVXNRMEZCUXp0M1FrRkRZaXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1ZVRkJWU3hEUVVGRE8zZENRVU5xUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRPM0ZDUVVOc1F6dHBRa0ZEUmp0aFFVTkdPMU5CUTBZN1VVRkRSQ3hMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1VVRkJVU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0WlFVTjBReXhKUVVGSkxGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSVHRuUWtGRGRFSXNWVUZCVlN4RlFVRkhMRU5CUVVNN1owSkJRMlFzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRlZCUVZVc1EwRkJRenRoUVVNeFFqdFRRVU5HTzFGQlEwUXNUMEZCVHl4RlFVRkRMRkZCUVZFc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZETEVOQlFVTTdTVUZETlVJc1EwRkJRenRKUVVWTkxGbEJRVmtzUTBGQlF5eFpRVUZuUXp0UlFVTnNSQ3hOUVVGTkxGbEJRVmtzUjBGQmVVTXNSVUZCUlN4RFFVRkRPMUZCUXpsRUxFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRaUVVNNVF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTJ4RExGbEJRVmtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETzFsQlEzWkRMRmxCUVZrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhaUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTJ4R0xFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEYkVNc1dVRkJXU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU03V1VGRGRrTXNXVUZCV1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVMEZEYmtZN1VVRkRSQ3hQUVVGUExGbEJRVmtzUTBGQlF6dEpRVU4wUWl4RFFVRkRPMGxCUlU4c1VVRkJVU3hEUVVGRExGbEJRV2RETEVWQlFVVXNTMEZCWVR0UlFVTTVSQ3hMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1MwRkJTeXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlF6bENMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTnNRaXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRPMWxCUTNaQ0xGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEZWQlFWVXNRMEZCUXp0VFFVTXZRenRKUVVOSUxFTkJRVU03U1VGRlR5eFRRVUZUTEVOQlFVTXNXVUZCWjBNN1VVRkRhRVFzUzBGQlN5eE5RVUZOTEVOQlFVTXNTVUZCU1N4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eEZRVUZGTzFsQlEzcERMRTFCUVUwc1IwRkJSeXhIUVVGSExGbEJRVmtzUTBGQlF5eERRVUZSTEVOQlFVTXNRMEZCUXp0WlFVTnVReXhKUVVGSkxFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZEV2l4TFFVRkxMRTFCUVUwc1EwRkJReXhKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRPMmRDUVVNNVFpeEhRVUZITEVsQlFVa3NSMEZCUnl4RFFVRkRMRU5CUVZFc1EwRkJReXhEUVVGRE8xbEJRM1pDTEVsQlFVa3NSMEZCUnl4TFFVRkxMRU5CUVVNN1owSkJRVVVzVTBGQlV6dFpRVU40UWl4TFFVRkxMRTFCUVUwc1EwRkJReXhKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRPMmRDUVVNNVFpeFpRVUZaTEVOQlFVTXNRMEZCVVN4RFFVRkRMRU5CUVVNc1EwRkJVU3hEUVVGRExFbEJRVWtzUjBGQlJ5eERRVUZETzFOQlF6TkRPMGxCUTBnc1EwRkJRenRKUVVWUExFMUJRVTBzUTBGQlF5eFpRVUZuUXl4RlFVRkZMRXRCUVdFN1VVRkROVVFzVFVGQlRTeGpRVUZqTEVkQlFYVkNMRVZCUVVVc1EwRkJRenRSUVVNNVF5eE5RVUZOTEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVNM1JDeE5RVUZOTEZGQlFWRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTnlReXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1MwRkJTeXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlF6bENMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTnNRaXhUUVVGVE8xbEJRMWdzSzBKQlFTdENPMWxCUXk5Q0xHTkJRV01zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNN1dVRkRka0lzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFdEJRVXNzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0blFrRkRPVUlzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dHZRa0ZEZGtJc1UwRkJVenRuUWtGRFdDeE5RVUZOTEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExGbEJRVmtzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhqUVVGak8yZENRVU51UlN4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eEhRVUZITEZGQlFWRXNRMEZCUXl4SFFVRkhMRkZCUVZFc1IwRkJSeXhEUVVGRExFVkJRVVU3YjBKQlF6ZERMR05CUVdNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNN2IwSkJRek5DTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJReXhEUVVGRE8zZENRVU53UWl4alFVRmpMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETzI5Q1FVTjZRaXhqUVVGakxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRE8ybENRVU0xUWp0aFFVTkdPMU5CUTBZN1VVRkRSQ3hQUVVGUExHTkJRV01zUTBGQlF6dEpRVU40UWl4RFFVRkRPMGxCUlVRc2JVUkJRVzFFTzBsQlJXNUVMRWxCUVVrN1NVRkZTU3hQUVVGUExFTkJRVU1zV1VGQlowTTdVVUZET1VNc1MwRkJTeXhOUVVGTkxFTkJRVU1zU1VGQlNTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhGUVVGRk8xbEJRM3BETEUxQlFVMHNSMEZCUnl4SFFVRkhMRmxCUVZrc1EwRkJReXhEUVVGUkxFTkJRVU1zUTBGQlF6dFpRVU51UXl4TFFVRkxMRTFCUVUwc1EwRkJReXhKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRPMmRDUVVNNVFpeFpRVUZaTEVOQlFVTXNRMEZCVVN4RFFVRkRMRU5CUVVNc1EwRkJVU3hEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJVU3hEUVVGRExFTkJRVU1zUTBGQlVTeERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF6dFRRVU01Unp0SlFVTklMRU5CUVVNN1NVRkZUeXhqUVVGakxFTkJRVU1zV1VGQlowTXNSVUZCUlN4RFFVRk5MRVZCUVVVc1EwRkJUVHRSUVVOeVJTeEpRVUZKTEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRXaXhOUVVGTkxHTkJRV01zUjBGQlJ5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTXhSQ3hOUVVGTkxGbEJRVmtzUjBGQlJ5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTjRSQ3hMUVVGTExFMUJRVTBzUTBGQlF5eEpRVUZKTEdOQlFXTXNSVUZCUlR0WlFVTTVRaXhKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVNeFFpeEhRVUZITEVsQlFVa3NXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVkVzUTBGQlF5eEhRVUZITEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGUkxFTkJRVU1zUTBGQlF6dFRRVU5vUlR0UlFVTkVMRTlCUVU4c1IwRkJSeXhEUVVGRE8wbEJRMklzUTBGQlF6dERRVU5HSWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUh0VGNHRnljMlZOWVhSeWFYaFNaWE4xYkhSOUlHWnliMjBnSnk0dUwyUnBjM1JoYm1ObExXMWhkSEpwZUM5emNHRnljMlV0YldGMGNtbDRMWE5sY25acFkyVW5PMXh1YVcxd2IzSjBJSHRpYVc5TVlYbHZkWFI5SUdaeWIyMGdKeTR2WW1sdkxXeGhlVzkxZENjN1hHNXBiWEJ2Y25RZ2UwMURURTl3ZEdsdmJuTXNJRk53WVhKelpVMWhkSEpwZUU5aWFtVmpkSDBnWm5KdmJTQW5MaTkwZVhCbGN5YzdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQmtaV1poZFd4MFRVTk1UM0IwYVc5dWN6b2dUVU5NVDNCMGFXOXVjeUE5SUh0Y2JpQWdaWGh3WVc1a1JtRmpkRzl5T2lBeUxGeHVJQ0J0WVhoSmRHVnlZWFJwYjI1ek9pQTFMRnh1SUNCcGJtWnNZWFJsUm1GamRHOXlPaUF5TEZ4dUlDQnRkV3gwUm1GamRHOXlPaUF4TEZ4dWZUdGNibHh1Wlhod2IzSjBJR05zWVhOeklFMURURk53WVhKelpWSmxaSFZqWlhJZ2UxeHVJQ0J3Y21sMllYUmxJRjl2Y0hScGIyNXpPaUJOUTB4UGNIUnBiMjV6TzF4dVhHNGdJR052Ym5OMGNuVmpkRzl5S0c5d2RITTZJRkJoY25ScFlXdzhUVU5NVDNCMGFXOXVjejRnUFNCN2ZTa2dlMXh1SUNBZ0lIUm9hWE11WDI5d2RHbHZibk1nUFNCN0xpNHVaR1ZtWVhWc2RFMURURTl3ZEdsdmJuTXNJQzR1TG05d2RITjlPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJR0Z6ZVc1aklIUnlZVzV6Wm05eWJTaHpjR0Z5YzJWTllYUnlhWGc2SUZOd1lYSnpaVTFoZEhKcGVGSmxjM1ZzZEN3Z2JsSnZkM002SUc1MWJXSmxjaWtnZTF4dUlDQWdJQzh2SUhSbGMzUlhiM0pyWlhKTmRXeDBhWEJzZVNncE8xeHVJQ0FnSUM4dklISmxkSFZ5YmlCdVpYY2dTVzUwTXpKQmNuSmhlU2h1VW05M2N5azdYRzRnSUNBZ2JHVjBJSE53WVhKelpVOWlhbVZqZENBOUlIUm9hWE11ZEc5UFltcGxZM1JHYjNKdEtITndZWEp6WlUxaGRISnBlQ2s3WEc0Z0lDQWdhV1lnS0hSb2FYTXVYMjl3ZEdsdmJuTXViV0Y0U1hSbGNtRjBhVzl1Y3lBK0lEQXBJSHRjYmlBZ0lDQWdJSFJvYVhNdVlXUmtURzl2Y0hNb2MzQmhjbk5sVDJKcVpXTjBMQ0J1VW05M2N5azdYRzRnSUNBZ0lDQjBhR2x6TG01dmNtMWhiR2w2WlNoemNHRnljMlZQWW1wbFkzUXBPMXh1SUNBZ0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0IwYUdsekxsOXZjSFJwYjI1ekxtMWhlRWwwWlhKaGRHbHZibk03SUdrckt5a2dlMXh1SUNBZ0lDQWdJQ0J6Y0dGeWMyVlBZbXBsWTNRZ1BTQjBhR2x6TG1WNGNHRnVaQ2h6Y0dGeWMyVlBZbXBsWTNRc0lHNVNiM2R6S1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVwYm1ac1lYUmxLSE53WVhKelpVOWlhbVZqZENrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11Ym05eWJXRnNhWHBsS0hOd1lYSnpaVTlpYW1WamRDazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUdOdmJuTjBJSHRqYkhWemRHVnljeXdnYVhNc0lHcHpmU0E5SUhSb2FYTXVZWE56YVdkdVEyeDFjM1JsY25Nb2MzQmhjbk5sVDJKcVpXTjBMQ0J1VW05M2N5azdYRzRnSUNBZ2RHaHBjeTVqYjNKeVpXTjBRMngxYzNSbGNuTW9ZMngxYzNSbGNuTXBPMXh1SUNBZ0lHTnZibk4wSUdWdFltVmtaR2x1WjNNZ1BTQmhkMkZwZENCMGFHbHpMbXhoZVc5MWRDaGpiSFZ6ZEdWeWN5d2djM0JoY25ObFQySnFaV04wTENCdVVtOTNjeWs3WEc0Z0lDQWdjbVYwZFhKdUlIdGpiSFZ6ZEdWeWN5d2daVzFpWldSWU9pQmxiV0psWkdScGJtZHpMbVZ0WW1Wa1dDd2daVzFpWldSWk9pQmxiV0psWkdScGJtZHpMbVZ0WW1Wa1dTd2dhWE1zSUdwemZUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdZMjl5Y21WamRFTnNkWE4wWlhKektHTnNkWE4wWlhKek9pQnVkVzFpWlhKYlhTa2dlMXh1SUNBZ0lHTnZibk4wSUdOc2RYTjBaWEpUYVhwbFRXRndPaUI3VzE4NklHNTFiV0psY2wwNklHNTFiV0psY24wZ1BTQjdmVHRjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR05zZFhOMFpYSWdiMllnWTJ4MWMzUmxjbk1wSUh0Y2JpQWdJQ0FnSUdsbUlDZ2hZMngxYzNSbGNsTnBlbVZOWVhCYlkyeDFjM1JsY2wwcFhHNGdJQ0FnSUNBZ0lHTnNkWE4wWlhKVGFYcGxUV0Z3VzJOc2RYTjBaWEpkSUQwZ01EdGNiaUFnSUNBZ0lHTnNkWE4wWlhKVGFYcGxUV0Z3VzJOc2RYTjBaWEpkS3lzN1hHNGdJQ0FnZlZ4dUlDQWdJR052Ym5OMElITnZjblJsWkVsdVpHVjRaWE1nUFNCUFltcGxZM1F1YTJWNWN5aGpiSFZ6ZEdWeVUybDZaVTFoY0NrdWJXRndLRTUxYldKbGNpa3VjMjl5ZENnb1lTd2dZaWtnUFQ0Z1kyeDFjM1JsY2xOcGVtVk5ZWEJiWVYwZ0xTQmpiSFZ6ZEdWeVUybDZaVTFoY0Z0aVhTazdYRzRnSUNBZ1kyOXVjM1FnWTJ4MWMzUmxjazFoY0RvZ2UxdGZPaUJ1ZFcxaVpYSmRPaUJ1ZFcxaVpYSjlJRDBnZTMwN1hHNGdJQ0FnYzI5eWRHVmtTVzVrWlhobGN5NW1iM0pGWVdOb0tDaGpiSFZ6ZEdWeVNXUjRMQ0JwS1NBOVBpQmpiSFZ6ZEdWeVRXRndXMk5zZFhOMFpYSkpaSGhkSUQwZ2FTQXJJREVwTzF4dUlDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnWTJ4MWMzUmxjbk11YkdWdVozUm9PeUJwS3lzcFhHNGdJQ0FnSUNCamJIVnpkR1Z5YzF0cFhTQTlJR05zZFhOMFpYSk5ZWEJiWTJ4MWMzUmxjbk5iYVYxZE8xeHVJQ0FnSUM4dklHeGxkQ0JqZFhKRGJIVnpkR1Z5SUQwZ01UdGNiaUFnSUNBdkx5Qm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR05zZFhOMFpYSnpMbXhsYm1kMGFEc2dhU3NyS1NCN1hHNGdJQ0FnTHk4Z0lDQnBaaUFvSVdOc2RYTjBaWEpOWVhCYlkyeDFjM1JsY25OYmFWMWRLU0I3WEc0Z0lDQWdMeThnSUNBZ0lHTnNkWE4wWlhKTllYQmJZMngxYzNSbGNuTmJhVjFkSUQwZ1kzVnlRMngxYzNSbGNqdGNiaUFnSUNBdkx5QWdJQ0FnWTJ4MWMzUmxjbk5iYVYwZ1BTQmpkWEpEYkhWemRHVnlPMXh1SUNBZ0lDOHZJQ0FnSUNCamRYSkRiSFZ6ZEdWeUt5czdYRzRnSUNBZ0x5OGdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDOHZJQ0FnSUNCamJIVnpkR1Z5YzF0cFhTQTlJR05zZFhOMFpYSk5ZWEJiWTJ4MWMzUmxjbk5iYVYxZE8xeHVJQ0FnSUM4dklDQWdmVnh1SUNBZ0lDOHZJSDFjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWVhONWJtTWdiR0Y1YjNWMEtHTnNkWE4wWlhKek9pQnVkVzFpWlhKYlhTd2djM0JoY25ObFRXRjBjbWw0T2lCVGNHRnljMlZOWVhSeWFYaFBZbXBsWTNRc0lHNVNiM2R6T2lCdWRXMWlaWElwSUh0Y2JpQWdJQ0JqYjI1emRDQmxiV0psWkZnZ1BTQnVaWGNnUm14dllYUXpNa0Z5Y21GNUtHNVNiM2R6S1M1bWFXeHNLREFwTzF4dUlDQWdJR052Ym5OMElHVnRZbVZrV1NBOUlHNWxkeUJHYkc5aGRETXlRWEp5WVhrb2JsSnZkM01wTG1acGJHd29NQ2s3WEc0Z0lDQWdZMjl1YzNRZ1kyeDFjM1JsY2sxaGNEb2dlMXRmT2lCdWRXMWlaWEpkT2lCdWRXMWlaWEpiWFgwZ1BTQjdmVHRjYmlBZ0lDQmpiSFZ6ZEdWeWN5NW1iM0pGWVdOb0tDaGpiSFZ6ZEdWeUxDQnBLU0E5UGlCN1hHNGdJQ0FnSUNCcFppQW9JV05zZFhOMFpYSk5ZWEJiWTJ4MWMzUmxjbDBwWEc0Z0lDQWdJQ0FnSUdOc2RYTjBaWEpOWVhCYlkyeDFjM1JsY2wwZ1BTQmJYVHRjYmlBZ0lDQWdJR05zZFhOMFpYSk5ZWEJiWTJ4MWMzUmxjbDB1Y0hWemFDaHBLVHRjYmlBZ0lDQjlLVHRjYmlBZ0lDQXZMeUJqYjI1emRDQnVRMngxYzNSbGNuTWdQU0JQWW1wbFkzUXVhMlY1Y3loamJIVnpkR1Z5VFdGd0tTNXNaVzVuZEdnN1hHNGdJQ0FnTHk4Z1kyOXVjM1FnY0dWeVVtOTNJRDBnVFdGMGFDNW1iRzl2Y2loTllYUm9Mbk54Y25Rb2JrTnNkWE4wWlhKektTazdYRzRnSUNBZ2JHVjBJR05zZFhOMFpYSk9kVzBnUFNBd08xeHVJQ0FnSUdOdmJuTjBJSE52Y25SbFpFTnNkWE4wWlhKT1lXMWxjeUE5SUU5aWFtVmpkQzVyWlhsektHTnNkWE4wWlhKTllYQXBPMXh1SUNBZ0lITnZjblJsWkVOc2RYTjBaWEpPWVcxbGN5NXpiM0owS0NoaExDQmlLU0E5UGlCamJIVnpkR1Z5VFdGd1cySWdZWE1nWVc1NVhTNXNaVzVuZEdnZ0xTQmpiSFZ6ZEdWeVRXRndXMkVnWVhNZ1lXNTVYUzVzWlc1bmRHZ3BPMXh1SUNBZ0lHeGxkQ0J3WlhKU2IzY2dQU0EyTzF4dVhHNGdJQ0FnYkdWMElIbFBabVp6WlhRZ1BTQXdPMXh1SUNBZ0lHTnZibk4wSUd4aGVXOTFkRk5wZW1VZ1BTQTFPMXh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdZMngxYzNSbGNrNWhiV1VnYjJZZ2MyOXlkR1ZrUTJ4MWMzUmxjazVoYldWektTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCamJIVnpkR1Z5SUQwZ1kyeDFjM1JsY2sxaGNGdGpiSFZ6ZEdWeVRtRnRaU0JoY3lCaGJubGRJVHRjYmlBZ0lDQWdJR052Ym5OMElHVnRZbVZrWkdsdVozTWdQU0JoZDJGcGRDQmlhVzlNWVhsdmRYUW9ZMngxYzNSbGNpd2djM0JoY25ObFRXRjBjbWw0TENBd0xqQXdNU2s3WEc0Z0lDQWdJQ0JwWmlBb1kyeDFjM1JsY2s1MWJTQTlQVDBnVFdGMGFDNWpaV2xzS0hCbGNsSnZkeUF2SURFdU5Ta3BJSHRjYmlBZ0lDQWdJQ0FnWTJ4MWMzUmxjazUxYlNBOUlEQTdYRzRnSUNBZ0lDQWdJSGxQWm1aelpYUWdLejBnYkdGNWIzVjBVMmw2WlNBdklIQmxjbEp2ZHp0Y2JpQWdJQ0FnSUNBZ2NHVnlVbTkzSUQwZ1RXRjBhQzVqWldsc0tIQmxjbEp2ZHlBcUlERXVOU2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JqYjI1emRDQnZabVp6WlhSWUlEMGdLQ2hqYkhWemRHVnlUblZ0SUNVZ2NHVnlVbTkzS1NBcUlHeGhlVzkxZEZOcGVtVWdMeUJ3WlhKU2IzY3BJQ29nTVM0MU8xeHVJQ0FnSUNBZ0x5OGdZMjl1YzNRZ2IyWm1jMlYwV1NBOUlFMWhkR2d1Wm14dmIzSW9ZMngxYzNSbGNrNTFiU0F2SUhCbGNsSnZkeWtnS2lBeU8xeHVYRzRnSUNBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR1Z0WW1Wa1pHbHVaM011WlcxaVpXUllMbXhsYm1kMGFEc2dhU3NyS1NCN1hHNGdJQ0FnSUNBZ0lHVnRZbVZrV0Z0amJIVnpkR1Z5VzJsZFhTQTlJR1Z0WW1Wa1pHbHVaM011WlcxaVpXUllXMmxkSUNvZ2JHRjViM1YwVTJsNlpTQXZJSEJsY2xKdmR5QXJJRzltWm5ObGRGZzdYRzRnSUNBZ0lDQWdJR1Z0WW1Wa1dWdGpiSFZ6ZEdWeVcybGRYU0E5SUdWdFltVmtaR2x1WjNNdVpXMWlaV1JaVzJsZElDb2diR0Y1YjNWMFUybDZaU0F2SUhCbGNsSnZkeUFySUhsUFptWnpaWFE3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JqYkhWemRHVnlUblZ0S3lzN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQjdaVzFpWldSWUxDQmxiV0psWkZsOU8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQnRaWEpuWlVOc2RYTjBaWEp6S0dOc2RYTjBaWEp6T2lCdWRXMWlaWEpiWFN3Z2FUb2diblZ0WW1WeUxDQnFPaUJ1ZFcxaVpYSXBJSHRjYmlBZ0lDQmpiMjV6ZENCcFEyeDFjM1JsY2lBOUlHTnNkWE4wWlhKelcybGRPMXh1SUNBZ0lHTnZibk4wSUdwRGJIVnpkR1Z5SUQwZ1kyeDFjM1JsY25OYmFsMDdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2F5QTlJREE3SUdzZ1BDQmpiSFZ6ZEdWeWN5NXNaVzVuZEdnN0lHc3JLeWtnZTF4dUlDQWdJQ0FnYVdZZ0tHTnNkWE4wWlhKelcydGRJRDA5UFNCcVEyeDFjM1JsY2lsY2JpQWdJQ0FnSUNBZ1kyeDFjM1JsY25OYmExMGdQU0JwUTJ4MWMzUmxjanRjYmlBZ0lDQjlYRzRnSUgxY2JpQWdjSFZpYkdsaklHRnpjMmxuYmtOc2RYTjBaWEp6S0hOd1lYSnpaVTFoZEhKcGVEb2dVM0JoY25ObFRXRjBjbWw0VDJKcVpXTjBMQ0J1VW05M2N6b2diblZ0WW1WeUtTQjdYRzRnSUNBZ2JHVjBJR05zZFhOMFpYSk9kVzBnUFNBd08xeHVJQ0FnSUdOdmJuTjBJR2x6T2lCdWRXMWlaWEpiWFNBOUlGdGRPMXh1SUNBZ0lHTnZibk4wSUdwek9pQnVkVzFpWlhKYlhTQTlJRnRkTzF4dUlDQWdJR052Ym5OMElHOXlaR1Z5SUQwZ1RXRjBhQzVtYkc5dmNpaE5ZWFJvTG0xaGVDaE5ZWFJvTG14dlp6RXdLRzVTYjNkektTd2dNaWtwSUNzZ01UdGNiaUFnSUNCamIyNXpkQ0J0YVc1UGNtUmxjaUE5SUUxaGRHZ3VjRzkzS0RFd0xDQnZjbVJsY2lrN1hHNGdJQ0FnWTI5dWMzUWdZMngxYzNSbGNuTTZJRzUxYldKbGNsdGRJRDBnYm1WM0lFRnljbUY1S0c1U2IzZHpLUzVtYVd4c0tDMHhLVHRjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR2tnYjJZZ1QySnFaV04wTG10bGVYTW9jM0JoY25ObFRXRjBjbWw0S1NrZ2UxeHVJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQnFJRzltSUU5aWFtVmpkQzVyWlhsektITndZWEp6WlUxaGRISnBlRnRwSUdGeklHRnVlVjBwS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hOWVhSb0xuSnZkVzVrS0hOd1lYSnpaVTFoZEhKcGVGdHBJR0Z6SUdGdWVWMWJhaUJoY3lCaGJubGRJQ29nYldsdVQzSmtaWElwSUM4Z2JXbHVUM0prWlhJZ1BpQXdJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ2MzQmhjbk5sVFdGMGNtbDRXMmtnWVhNZ1lXNTVYVnRxSUdGeklHRnVlVjBnSVQwOUlFNTFiV0psY2locEtTQW1KaUJPZFcxaVpYSW9haWtnUGlCT2RXMWlaWElvYVNrcElIdGNiaUFnSUNBZ0lDQWdJQ0JwY3k1d2RYTm9LRTUxYldKbGNpaHBLU2s3WEc0Z0lDQWdJQ0FnSUNBZ2FuTXVjSFZ6YUNoT2RXMWlaWElvYWlrcE8xeHVJQ0FnSUNBZ0lDQWdJR2xtSUNoamJIVnpkR1Z5YzF0T2RXMWlaWElvYVNsZElDRTlQU0F0TVNBbUppQmpiSFZ6ZEdWeWMxdE9kVzFpWlhJb2FpbGRJQ0U5UFNBdE1Ta2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR05zZFhOMFpYSnpXMDUxYldKbGNpaHBLVjBnSVQwOUlHTnNkWE4wWlhKelcwNTFiV0psY2locUtWMHBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YldWeVoyVkRiSFZ6ZEdWeWN5aGpiSFZ6ZEdWeWN5d2dUblZ0WW1WeUtHa3BMQ0JPZFcxaVpYSW9haWtwTzF4dUlDQWdJQ0FnSUNBZ0lIMGdaV3h6WlNCcFppQW9ZMngxYzNSbGNuTmJUblZ0WW1WeUtHa3BYU0FoUFQwZ0xURXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnNkWE4wWlhKelcwNTFiV0psY2locUtWMGdQU0JqYkhWemRHVnljMXRPZFcxaVpYSW9hU2xkTzF4dUlDQWdJQ0FnSUNBZ0lIMGdaV3h6WlNCcFppQW9ZMngxYzNSbGNuTmJUblZ0WW1WeUtHb3BYU0FoUFQwZ0xURXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnNkWE4wWlhKelcwNTFiV0psY2locEtWMGdQU0JqYkhWemRHVnljMXRPZFcxaVpYSW9haWxkTzF4dUlDQWdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYkhWemRHVnlUblZ0S3lzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYkhWemRHVnljMXRPZFcxaVpYSW9hU2xkSUQwZ1kyeDFjM1JsY2s1MWJUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOc2RYTjBaWEp6VzA1MWJXSmxjaWhxS1YwZ1BTQmpiSFZ6ZEdWeVRuVnRPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwUFRBN0lHa2dQQ0JqYkhWemRHVnljeTVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ2FXWWdLR05zZFhOMFpYSnpXMmxkSUQwOVBTQXRNU2tnZTF4dUlDQWdJQ0FnSUNCamJIVnpkR1Z5VG5WdElDc3JPMXh1SUNBZ0lDQWdJQ0JqYkhWemRHVnljMXRwWFNBOUlHTnNkWE4wWlhKT2RXMDdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUI3WTJ4MWMzUmxjbk1zSUdsekxDQnFjMzA3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nZEc5UFltcGxZM1JHYjNKdEtITndZWEp6WlUxaGRISnBlRG9nVTNCaGNuTmxUV0YwY21sNFVtVnpkV3gwS1RvZ1UzQmhjbk5sVFdGMGNtbDRUMkpxWldOMElIdGNiaUFnSUNCamIyNXpkQ0J6Y0dGeWMyVlBZbXBsWTNRNklIdGJYem9nYm5WdFltVnlYVG9nZTF0Zk9pQnVkVzFpWlhKZE9pQnVkVzFpWlhKOWZTQTlJSHQ5TzF4dUlDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnYzNCaGNuTmxUV0YwY21sNExta3ViR1Z1WjNSb095QnBLeXNwSUh0Y2JpQWdJQ0FnSUdsbUlDZ2hjM0JoY25ObFQySnFaV04wVzNOd1lYSnpaVTFoZEhKcGVDNXBXMmxkWFNsY2JpQWdJQ0FnSUNBZ2MzQmhjbk5sVDJKcVpXTjBXM053WVhKelpVMWhkSEpwZUM1cFcybGRYU0E5SUh0OU8xeHVJQ0FnSUNBZ2MzQmhjbk5sVDJKcVpXTjBXM053WVhKelpVMWhkSEpwZUM1cFcybGRYVnR6Y0dGeWMyVk5ZWFJ5YVhndWFsdHBYVjBnUFNBeElDMGdjM0JoY25ObFRXRjBjbWw0TG1ScGMzUmhibU5sVzJsZE8xeHVJQ0FnSUNBZ2FXWWdLQ0Z6Y0dGeWMyVlBZbXBsWTNSYmMzQmhjbk5sVFdGMGNtbDRMbXBiYVYxZEtWeHVJQ0FnSUNBZ0lDQnpjR0Z5YzJWUFltcGxZM1JiYzNCaGNuTmxUV0YwY21sNExtcGJhVjFkSUQwZ2UzMDdYRzRnSUNBZ0lDQnpjR0Z5YzJWUFltcGxZM1JiYzNCaGNuTmxUV0YwY21sNExtcGJhVjFkVzNOd1lYSnpaVTFoZEhKcGVDNXBXMmxkWFNBOUlERWdMU0J6Y0dGeWMyVk5ZWFJ5YVhndVpHbHpkR0Z1WTJWYmFWMDdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJ6Y0dGeWMyVlBZbXBsWTNRN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHRmtaRXh2YjNCektITndZWEp6WlU5aWFtVmpkRG9nVTNCaGNuTmxUV0YwY21sNFQySnFaV04wTENCdVVtOTNjem9nYm5WdFltVnlLU0I3WEc0Z0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0J1VW05M2N6c2dhU3NyS1NCN1hHNGdJQ0FnSUNCcFppQW9JWE53WVhKelpVOWlhbVZqZEZ0cFhTbGNiaUFnSUNBZ0lDQWdjM0JoY25ObFQySnFaV04wVzJsZElEMGdlMzA3WEc0Z0lDQWdJQ0J6Y0dGeWMyVlBZbXBsWTNSYmFWMWJhVjBnUFNCMGFHbHpMbDl2Y0hScGIyNXpMbTExYkhSR1lXTjBiM0k3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0J1YjNKdFlXeHBlbVVvYzNCaGNuTmxUMkpxWldOME9pQlRjR0Z5YzJWTllYUnlhWGhQWW1wbFkzUXBJSHRjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR2tnYjJZZ1QySnFaV04wTG10bGVYTW9jM0JoY25ObFQySnFaV04wS1NrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnY205M0lEMGdjM0JoY25ObFQySnFaV04wVzJrZ1lYTWdZVzU1WFR0Y2JpQWdJQ0FnSUd4bGRDQnpkVzBnUFNBd08xeHVJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQnFJRzltSUU5aWFtVmpkQzVyWlhsektISnZkeWtwWEc0Z0lDQWdJQ0FnSUhOMWJTQXJQU0J5YjNkYmFpQmhjeUJoYm5sZE8xeHVJQ0FnSUNBZ2FXWWdLSE4xYlNBOVBUMGdNQ2tnWTI5dWRHbHVkV1U3WEc0Z0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUdvZ2IyWWdUMkpxWldOMExtdGxlWE1vY205M0tTbGNiaUFnSUNBZ0lDQWdjM0JoY25ObFQySnFaV04wVzJrZ1lYTWdZVzU1WFZ0cUlHRnpJR0Z1ZVYwZ0x6MGdjM1Z0TzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWlhod1lXNWtLSE53WVhKelpVOWlhbVZqZERvZ1UzQmhjbk5sVFdGMGNtbDRUMkpxWldOMExDQnVVbTkzY3pvZ2JuVnRZbVZ5S1NCN1hHNGdJQ0FnWTI5dWMzUWdaWGh3WVc1a1pXUlBZbXBsWTNRNklGTndZWEp6WlUxaGRISnBlRTlpYW1WamRDQTlJSHQ5TzF4dUlDQWdJR052Ym5OMElHOXlaR1Z5SUQwZ1RXRjBhQzVtYkc5dmNpaE5ZWFJvTG0xaGVDaE5ZWFJvTG14dlp6RXdLRzVTYjNkektTd2dNaWtwSUNzZ01UdGNiaUFnSUNCamIyNXpkQ0J0YVc1UGNtUmxjaUE5SUUxaGRHZ3VjRzkzS0RFd0xDQnZjbVJsY2lrN1hHNGdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCdVVtOTNjenNnYVNzcktTQjdYRzRnSUNBZ0lDQnBaaUFvSVhOd1lYSnpaVTlpYW1WamRGdHBYU2xjYmlBZ0lDQWdJQ0FnWTI5dWRHbHVkV1U3WEc0Z0lDQWdJQ0F2THlCamIyNXpkQ0J5YjNjZ1BTQnpjR0Z5YzJWUFltcGxZM1JiYVYwN1hHNGdJQ0FnSUNCbGVIQmhibVJsWkU5aWFtVmpkRnRwWFNBOUlIdDlPMXh1SUNBZ0lDQWdabTl5SUNoc1pYUWdhaUE5SUdrN0lHb2dQQ0J1VW05M2N6c2dhaXNyS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doYzNCaGNuTmxUMkpxWldOMFcybGRQeTViYWwwcFhHNGdJQ0FnSUNBZ0lDQWdZMjl1ZEdsdWRXVTdYRzRnSUNBZ0lDQWdJR052Ym5OMElIWmhiQ0E5SUhSb2FYTXVaMlYwUlhod1lXNWtWbUZzZFdVb2MzQmhjbk5sVDJKcVpXTjBMQ0JwTENCcUtUc2dMeTl3Y25WdWFXNW5JSE4wWlhCY2JpQWdJQ0FnSUNBZ2FXWWdLRTFoZEdndWNtOTFibVFvZG1Gc0lDb2diV2x1VDNKa1pYSXBJQzhnYldsdVQzSmtaWElnUGlBd0tTQjdYRzRnSUNBZ0lDQWdJQ0FnWlhod1lXNWtaV1JQWW1wbFkzUmJhVjFiYWwwZ1BTQjJZV3c3WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLQ0ZsZUhCaGJtUmxaRTlpYW1WamRGdHFYU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lHVjRjR0Z1WkdWa1QySnFaV04wVzJwZElEMGdlMzA3WEc0Z0lDQWdJQ0FnSUNBZ1pYaHdZVzVrWldSUFltcGxZM1JiYWwxYmFWMGdQU0IyWVd3N1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJR1Y0Y0dGdVpHVmtUMkpxWldOME8xeHVJQ0I5WEc1Y2JpQWdMeThnY0hKcGRtRjBaU0J3Y25WdVpTaHliM2M2SUZOd1lYSnpaVTFoZEhKcGVFOWlhbVZqZEZ0dWRXMWlaWEpkS1NCN1hHNWNiaUFnTHk4Z2ZWeHVYRzRnSUhCeWFYWmhkR1VnYVc1bWJHRjBaU2h6Y0dGeWMyVlBZbXBsWTNRNklGTndZWEp6WlUxaGRISnBlRTlpYW1WamRDa2dlMXh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdhU0J2WmlCUFltcGxZM1F1YTJWNWN5aHpjR0Z5YzJWUFltcGxZM1FwS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0J5YjNjZ1BTQnpjR0Z5YzJWUFltcGxZM1JiYVNCaGN5QmhibmxkTzF4dUlDQWdJQ0FnWm05eUlDaGpiMjV6ZENCcUlHOW1JRTlpYW1WamRDNXJaWGx6S0hKdmR5a3BYRzRnSUNBZ0lDQWdJSE53WVhKelpVOWlhbVZqZEZ0cElHRnpJR0Z1ZVYxYmFpQmhjeUJoYm5sZElEMGdUV0YwYUM1d2IzY29jM0JoY25ObFQySnFaV04wVzJrZ1lYTWdZVzU1WFZ0cUlHRnpJR0Z1ZVYwc0lIUm9hWE11WDI5d2RHbHZibk11YVc1bWJHRjBaVVpoWTNSdmNpazdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQm5aWFJGZUhCaGJtUldZV3gxWlNoemNHRnljMlZQWW1wbFkzUTZJRk53WVhKelpVMWhkSEpwZUU5aWFtVmpkQ3dnYVRvZ1lXNTVMQ0JxT2lCaGJua3BJSHRjYmlBZ0lDQnNaWFFnZG1Gc0lEMGdNRHRjYmlBZ0lDQmpiMjV6ZENCamRYSnlaVzUwU1c1a1pYaGxjeUE5SUU5aWFtVmpkQzVyWlhsektITndZWEp6WlU5aWFtVmpkRnRwWFNBL1B5QjdmU2s3WEc0Z0lDQWdZMjl1YzNRZ2IzUm9aWEpKYm1SbGVHVnpJRDBnVDJKcVpXTjBMbXRsZVhNb2MzQmhjbk5sVDJKcVpXTjBXMnBkSUQ4L0lIdDlLVHRjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR3NnYjJZZ1kzVnljbVZ1ZEVsdVpHVjRaWE1wSUh0Y2JpQWdJQ0FnSUdsbUlDaHZkR2hsY2tsdVpHVjRaWE11YVc1amJIVmtaWE1vYXlrcFhHNGdJQ0FnSUNBZ0lIWmhiQ0FyUFNCemNHRnljMlZQWW1wbFkzUmJhVjFiYXlCaGN5QmhibmxkSUNvZ2MzQmhjbk5sVDJKcVpXTjBXMnBkVzJzZ1lYTWdZVzU1WFR0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlIWmhiRHRjYmlBZ2ZWeHVmVnh1WEc0aVhYMD0iLCJpbXBvcnQgeyBTcGFyc2VNYXRyaXhTZXJ2aWNlIH0gZnJvbSAnLi4vZGlzdGFuY2UtbWF0cml4L3NwYXJzZS1tYXRyaXgtc2VydmljZSc7XG5pbXBvcnQgeyBNQ0xTcGFyc2VSZWR1Y2VyIH0gZnJvbSAnLi9tYXJjb3YtY2x1c3Rlcic7XG5vbm1lc3NhZ2UgPSBhc3luYyAoZXZlbnQpID0+IHtcbiAgICBjb25zdCB7IGRhdGEsIHRocmVzaG9sZCwgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QsIGRpc3RhbmNlRm5BcmdzLCBkaXN0YW5jZUZucywgbWF4SXRlcmF0aW9ucyB9ID0gZXZlbnQuZGF0YTtcbiAgICBjb25zdCBzcGFyc2UgPSBhd2FpdCBuZXcgU3BhcnNlTWF0cml4U2VydmljZSgpXG4gICAgICAgIC5jYWxjTXVsdGlDb2x1bW4oZGF0YSwgZGlzdGFuY2VGbnMsIHRocmVzaG9sZCAvIDEwMCwgZGlzdGFuY2VGbkFyZ3MsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCBuZXcgTUNMU3BhcnNlUmVkdWNlcih7IG1heEl0ZXJhdGlvbnM6IG1heEl0ZXJhdGlvbnMgPz8gNSB9KS50cmFuc2Zvcm0oc3BhcnNlLCBkYXRhWzBdLmxlbmd0aCk7XG4gICAgcG9zdE1lc3NhZ2UoeyByZXMgfSk7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYldOc0xYZHZjbXRsY2k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbTFqYkMxM2IzSnJaWEl1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNUMEZCVHl4RlFVRkRMRzFDUVVGdFFpeEZRVUZETEUxQlFVMHNNRU5CUVRCRExFTkJRVU03UVVGSE4wVXNUMEZCVHl4RlFVRkRMR2RDUVVGblFpeEZRVUZETEUxQlFVMHNhMEpCUVd0Q0xFTkJRVU03UVVGRmJFUXNVMEZCVXl4SFFVRkhMRXRCUVVzc1JVRkJSU3hMUVVGTExFVkJRVVVzUlVGQlJUdEpRVU14UWl4TlFVRk5MRVZCUVVNc1NVRkJTU3hGUVVGRkxGTkJRVk1zUlVGQlJTeFBRVUZQTEVWQlFVVXNhVUpCUVdsQ0xFVkJRVVVzWTBGQll5eEZRVUZGTEZkQlFWY3NSVUZCUlN4aFFVRmhMRVZCUVVNc1IwRkhhRUlzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXp0SlFVTXhSaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eE5RVUZOTEVsQlFVa3NiVUpCUVcxQ0xFVkJRVVU3VTBGRE0wTXNaVUZCWlN4RFFVRkRMRWxCUVVrc1JVRkJSU3hYUVVGWExFVkJRVVVzVTBGQlV5eEhRVUZITEVkQlFVY3NSVUZCUlN4alFVRmpMRVZCUVVVc1QwRkJUeXhGUVVGRkxHbENRVUZwUWl4RFFVRkRMRU5CUVVNN1NVRkRia2NzVFVGQlRTeEhRVUZITEVkQlFVY3NUVUZCVFN4SlFVRkpMR2RDUVVGblFpeERRVUZETEVWQlFVTXNZVUZCWVN4RlFVRkZMR0ZCUVdFc1NVRkJTU3hEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMGxCUXpsSExGZEJRVmNzUTBGQlF5eEZRVUZETEVkQlFVY3NSVUZCUXl4RFFVRkRMRU5CUVVNN1FVRkRja0lzUTBGQlF5eERRVUZESWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUh0VGNHRnljMlZOWVhSeWFYaFRaWEoyYVdObGZTQm1jbTl0SUNjdUxpOWthWE4wWVc1alpTMXRZWFJ5YVhndmMzQmhjbk5sTFcxaGRISnBlQzF6WlhKMmFXTmxKenRjYm1sdGNHOXlkQ0I3UkdsemRHRnVZMlZCWjJkeVpXZGhkR2x2YmsxbGRHaHZaSDBnWm5KdmJTQW5MaTR2WkdsemRHRnVZMlV0YldGMGNtbDRMM1I1Y0dWekp6dGNibWx0Y0c5eWRDQjdTMjV2ZDI1TlpYUnlhV056ZlNCbWNtOXRJQ2N1TGk5MGVYQmxaQzF0WlhSeWFXTnpKenRjYm1sdGNHOXlkQ0I3VFVOTVUzQmhjbk5sVW1Wa2RXTmxjbjBnWm5KdmJTQW5MaTl0WVhKamIzWXRZMngxYzNSbGNpYzdYRzVjYm05dWJXVnpjMkZuWlNBOUlHRnplVzVqSUNobGRtVnVkQ2tnUFQ0Z2UxeHVJQ0JqYjI1emRDQjdaR0YwWVN3Z2RHaHlaWE5vYjJ4a0xDQjNaV2xuYUhSekxDQmhaMmR5WldkaGRHbHZiazFsZEdodlpDd2daR2x6ZEdGdVkyVkdia0Z5WjNNc0lHUnBjM1JoYm1ObFJtNXpMQ0J0WVhoSmRHVnlZWFJwYjI1emZUcGNiaUFnSUh0a1lYUmhPaUJoYm5sYlhWdGRMQ0IwYUhKbGMyaHZiR1E2SUc1MWJXSmxjaXhjYmlBZ0lDQjNaV2xuYUhSek9pQnVkVzFpWlhKYlhTd2dZV2RuY21WbllYUnBiMjVOWlhSb2IyUTZJRVJwYzNSaGJtTmxRV2RuY21WbllYUnBiMjVOWlhSb2IyUXNYRzRnSUNBZ1pHbHpkR0Z1WTJWR2JuTTZJRXR1YjNkdVRXVjBjbWxqYzF0ZExDQmthWE4wWVc1alpVWnVRWEpuY3pvZ1lXNTVXMTBzSUcxaGVFbDBaWEpoZEdsdmJuTTZJRzUxYldKbGNuMGdQU0JsZG1WdWRDNWtZWFJoTzF4dUlDQmpiMjV6ZENCemNHRnljMlVnUFNCaGQyRnBkQ0J1WlhjZ1UzQmhjbk5sVFdGMGNtbDRVMlZ5ZG1salpTZ3BYRzRnSUNBZ0xtTmhiR05OZFd4MGFVTnZiSFZ0Ymloa1lYUmhMQ0JrYVhOMFlXNWpaVVp1Y3l3Z2RHaHlaWE5vYjJ4a0lDOGdNVEF3TENCa2FYTjBZVzVqWlVadVFYSm5jeXdnZDJWcFoyaDBjeXdnWVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlFwTzF4dUlDQmpiMjV6ZENCeVpYTWdQU0JoZDJGcGRDQnVaWGNnVFVOTVUzQmhjbk5sVW1Wa2RXTmxjaWg3YldGNFNYUmxjbUYwYVc5dWN6b2diV0Y0U1hSbGNtRjBhVzl1Y3lBL1B5QTFmU2t1ZEhKaGJuTm1iM0p0S0hOd1lYSnpaU3dnWkdGMFlWc3dYUzVzWlc1bmRHZ3BPMXh1SUNCd2IzTjBUV1Z6YzJGblpTaDdjbVZ6ZlNrN1hHNTlPMXh1SWwxOSJdLCJuYW1lcyI6WyJEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJjaHVua0lkIiwiZyIsImdsb2JhbFRoaXMiLCJ0aGlzIiwiRnVuY3Rpb24iLCJlIiwid2luZG93IiwibyIsIm9iaiIsInByb3AiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJzY3JpcHRVcmwiLCJpbXBvcnRTY3JpcHRzIiwibG9jYXRpb24iLCJkb2N1bWVudCIsImN1cnJlbnRTY3JpcHQiLCJzcmMiLCJzY3JpcHRzIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJsZW5ndGgiLCJpIiwiRXJyb3IiLCJyZXBsYWNlIiwicCIsImIiLCJzZWxmIiwiaXNOaWwiLCJ4IiwiaW5zZXJ0U21hbGxlciIsImRpc3RhbmNlc0FyIiwiaW5kZXhlcyIsIm51bSIsImluZGV4IiwibmV3UG9zaXRpb24iLCJmaW5kSW5kZXgiLCJ2IiwicG9wIiwic3BsaWNlIiwiU3BhcnNlTWF0cml4U2VydmljZSIsIl93b3JrZXJDb3VudCIsImNvbnN0cnVjdG9yIiwiTWF0aCIsIm1heCIsIm5hdmlnYXRvciIsImhhcmR3YXJlQ29uY3VycmVuY3kiLCJjYWxjTXVsdGlDb2x1bW4iLCJ2YWx1ZXMiLCJmbk5hbWVzIiwidGhyZXNob2xkIiwib3B0cyIsIndlaWdodHMiLCJhZ2dyZWdhdGlvbk1ldGhvZCIsIkVVQ0xJREVBTiIsIm1hdFNpemUiLCJjaHVua1NpemUiLCJmbG9vciIsIm1pblRocmVzaG9sZCIsImdldE1pbmltYWxUaHJlc2hvbGQiLCJjb25zb2xlIiwibG9nIiwiZm9yRWFjaCIsIl8iLCJwcm9taXNlcyIsIkFycmF5Iiwid29ya2VycyIsImZpbGwiLCJtYXAiLCJXb3JrZXIiLCJVUkwiLCJpZHgiLCJQcm9taXNlIiwicmVzb2x2ZVdvcmtlciIsInJlamVjdFdvcmtlciIsInN0YXJ0SWR4IiwiZW5kSWR4IiwiSW50MzJBcnJheSIsImoiLCJkaXN0YW5jZSIsIkZsb2F0MzJBcnJheSIsInBvc3RNZXNzYWdlIiwib25tZXNzYWdlIiwiZGF0YSIsImVycm9yIiwidGVybWluYXRlIiwicmVzdWx0cyIsImFsbCIsImZ1bGxTaXplIiwicmVkdWNlIiwiYWNjIiwidmFsIiwib2Zmc2V0IiwicmVzIiwic2V0IiwiY2FsYyIsImZuTmFtZSIsImdldEtOTiIsIm5OZWlnaGJvdXJzIiwibXVsdGlDb2x1bW5LTk4iLCJnZXRUaHJlc2hvbGRLTk4iLCJtdWx0aUNvbHVtblRocmVzaG9sZEtubiIsInNvbWUiLCJrbm5EaXN0YW5jZXMiLCJrbm5JbmRleGVzIiwia25uU2l6ZXMiLCJrbm5SZXMiLCJnZXRTYW1wbGVEaXN0YW5jZXMiLCJ0aHJlc2hvbGRXb3JrZXJzIiwibWF4U2FtcGxlU2l6ZSIsInNhbXBsZVNpc2UiLCJtaW4iLCJ0ZXN0U2V0U2l6ZVBlcldvcmtlciIsInRQcm9taXNlcyIsInNhbXBsZUxlbmd0aCIsInNvcnQiLCJ3IiwiY2FsY1N5bmMiLCJkaXN0YW5jZUZuIiwiZGlzdGFuY2VzIiwiY250IiwibWkiLCJtaiIsInZhbHVlIiwicHVzaCIsImFzeW5jIiwiYmlvTGF5b3V0IiwiY2x1c3RlciIsInNwYXJzZU9iamVjdCIsIm4iLCJpcyIsImpzIiwiYSIsImVtYmVkWCIsInJhbmRvbSIsImVtYmVkWSIsInhWZWxvY2l0aWVzIiwieVZlbG9jaXRpZXMiLCJ0ZW1wZXJhdHVyZSIsImR4IiwiZHkiLCJhYnMiLCJ2ZWNTaXplIiwic3FydCIsIm1pblgiLCJtaW5ZIiwibWF4WCIsIm1heFkiLCJyYW5nZVgiLCJyYW5nZVkiLCJnZXRMYXlvdXRFbWJlZGRpbmdzIiwiZGVmYXVsdE1DTE9wdGlvbnMiLCJleHBhbmRGYWN0b3IiLCJtYXhJdGVyYXRpb25zIiwiaW5mbGF0ZUZhY3RvciIsIm11bHRGYWN0b3IiLCJNQ0xTcGFyc2VSZWR1Y2VyIiwiX29wdGlvbnMiLCJ0cmFuc2Zvcm0iLCJzcGFyc2VNYXRyaXgiLCJuUm93cyIsInRvT2JqZWN0Rm9ybSIsImFkZExvb3BzIiwibm9ybWFsaXplIiwiZXhwYW5kIiwiaW5mbGF0ZSIsImNsdXN0ZXJzIiwiYXNzaWduQ2x1c3RlcnMiLCJjb3JyZWN0Q2x1c3RlcnMiLCJlbWJlZGRpbmdzIiwibGF5b3V0IiwiY2x1c3RlclNpemVNYXAiLCJzb3J0ZWRJbmRleGVzIiwia2V5cyIsIk51bWJlciIsImNsdXN0ZXJNYXAiLCJjbHVzdGVySWR4IiwiY2x1c3Rlck51bSIsInNvcnRlZENsdXN0ZXJOYW1lcyIsInBlclJvdyIsInlPZmZzZXQiLCJjbHVzdGVyTmFtZSIsImNlaWwiLCJvZmZzZXRYIiwibWVyZ2VDbHVzdGVycyIsImlDbHVzdGVyIiwiakNsdXN0ZXIiLCJrIiwib3JkZXIiLCJsb2cxMCIsIm1pbk9yZGVyIiwicG93Iiwicm91bmQiLCJyb3ciLCJzdW0iLCJleHBhbmRlZE9iamVjdCIsImdldEV4cGFuZFZhbHVlIiwiY3VycmVudEluZGV4ZXMiLCJvdGhlckluZGV4ZXMiLCJpbmNsdWRlcyIsImV2ZW50IiwiZGlzdGFuY2VGbkFyZ3MiLCJkaXN0YW5jZUZucyIsInNwYXJzZSJdLCJzb3VyY2VSb290IjoiIn0=