@datagrok/peptides 1.15.0 → 1.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,10 +1,21 @@
1
1
  # Peptides changelog
2
2
 
3
+ ## 1.15.1 (WIP)
4
+
5
+ ### Features
6
+
7
+ * Color-coding Sequence space by scaled activity.
8
+ * Optimized Mutation Cliffs calculations to use workers.
9
+ * Hid WebLogo positions in Logo Summary Table.
10
+
11
+ ### Bug Fixes
12
+
13
+ * Fixed Invariant Map color coding wouldn't change when changing color column.
14
+
3
15
  ## 1.15.0 (2023-10-12)
4
16
 
5
17
  ### Features
6
18
 
7
- * Added viewer help.
8
19
  * Added Sequence Space viewer.
9
20
  * Selection panel columns now inherti width from main table.
10
21
  * Invarian Map cell values now rendered with contrast color relative to background.
package/dist/436.js ADDED
@@ -0,0 +1,2 @@
1
+ var peptides;(()=>{"use strict";({8436:function(){var t=this&&this.__awaiter||function(t,n,e,a){return new(e||(e=Promise))((function(o,r){function i(t){try{c(a.next(t))}catch(t){r(t)}}function s(t){try{c(a.throw(t))}catch(t){r(t)}}function c(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(i,s)}c((a=a.apply(t,n||[])).next())}))};onmessage=n=>t(void 0,void 0,void 0,(function*(){var t,e;const{startIdx:a,endIdx:o,activityArray:r,monomerInfoArray:i,settings:s,currentTargetIdx:c,targetOptions:l}=n.data,f=[],d=[],h=[],u=o-a;let v=0;const p=r.length-2-Math.floor(Math.sqrt(-8*a+4*r.length*(r.length-1)-7)/2-.5);let g=p,w=a-r.length*p+Math.floor((p+1)*(p+2)/2);const x=new Array(i.length);for(;v<u;){if(-1===c||(null===(t=l.targetCol)||void 0===t?void 0:t.rawData[g])===c&&(null===(e=l.targetCol)||void 0===e?void 0:e.rawData[w])===c){let t=0;const n=r[g]-r[w];if(Math.abs(n)>=s.minActivityDelta){let n=!1,e=0;for(const a of i)if(a.rawData[g]!==a.rawData[w]){if(t++,n=t>s.maxMutations,n)break;x[e++]={pos:a.name,seq1Idx:g,seq2Idx:w}}if(!n&&0!==t)for(let t=0;t<e;t++){const n=x[t].pos;f.push(n),d.push(g),h.push(w)}}}v++,w++,w===r.length&&(g++,w=g+1)}postMessage({pos:f,seq1Idxs:new Uint32Array(d),seq2Idxs:new Uint32Array(h)})}))}})[8436](),peptides={}})();
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,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STRCLFlBQVk1QixHQUMxQkMsU0FBVSxJQUFJMkIsWUFBWTNCLElBRWxDLEcsSUMvRW9CLFEsU0FETSxDQUFDLEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9wZXB0aWRlcy8uL3NyYy93b3JrZXJzL211dGF0aW9uLWNsaWZmcy13b3JrZXIudHMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9zdGFydHVwIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgIHZhciBfYSwgX2I7XG4gICAgY29uc3QgeyBzdGFydElkeCwgZW5kSWR4LCBhY3Rpdml0eUFycmF5LCBtb25vbWVySW5mb0FycmF5LCBzZXR0aW5ncywgY3VycmVudFRhcmdldElkeCwgdGFyZ2V0T3B0aW9ucyB9ID0gZXZlbnQuZGF0YTtcbiAgICAvLyBjb25zdCBtb25vbWVyczE6IHN0cmluZ1tdID0gW107XG4gICAgLy8gY29uc3QgbW9ub21lcnMyOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IHBvcyA9IFtdO1xuICAgIGNvbnN0IHNlcTFJZHhzID0gW107XG4gICAgY29uc3Qgc2VxMklkeHMgPSBbXTtcbiAgICBjb25zdCBjaHVua1NpemUgPSBlbmRJZHggLSBzdGFydElkeDtcbiAgICAvL2NvbnN0IG1pID0gc3RhcnRSb3c7XG4gICAgLy9jb25zdCBtaiA9IHN0YXJ0Q29sO1xuICAgIGxldCBjbnQgPSAwO1xuICAgIGNvbnN0IHN0YXJ0Um93ID0gYWN0aXZpdHlBcnJheS5sZW5ndGggLSAyIC0gTWF0aC5mbG9vcihNYXRoLnNxcnQoLTggKiBzdGFydElkeCArIDQgKiBhY3Rpdml0eUFycmF5Lmxlbmd0aCAqIChhY3Rpdml0eUFycmF5Lmxlbmd0aCAtIDEpIC0gNykgLyAyIC0gMC41KTtcbiAgICBjb25zdCBzdGFydENvbCA9IHN0YXJ0SWR4IC0gYWN0aXZpdHlBcnJheS5sZW5ndGggKiBzdGFydFJvdyArIE1hdGguZmxvb3IoKHN0YXJ0Um93ICsgMSkgKiAoc3RhcnRSb3cgKyAyKSAvIDIpO1xuICAgIGxldCBzZXExSWR4ID0gc3RhcnRSb3c7XG4gICAgbGV0IHNlcTJJZHggPSBzdGFydENvbDtcbiAgICBjb25zdCB0ZW1wRGF0YSA9IG5ldyBBcnJheShtb25vbWVySW5mb0FycmF5Lmxlbmd0aCk7XG4gICAgd2hpbGUgKGNudCA8IGNodW5rU2l6ZSkge1xuICAgICAgICBpZiAoIShjdXJyZW50VGFyZ2V0SWR4ICE9PSAtMSAmJiAoKChfYSA9IHRhcmdldE9wdGlvbnMudGFyZ2V0Q29sKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmF3RGF0YVtzZXExSWR4XSkgIT09IGN1cnJlbnRUYXJnZXRJZHggfHxcbiAgICAgICAgICAgICgoX2IgPSB0YXJnZXRPcHRpb25zLnRhcmdldENvbCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnJhd0RhdGFbc2VxMklkeF0pICE9PSBjdXJyZW50VGFyZ2V0SWR4KSkpIHtcbiAgICAgICAgICAgIGxldCBzdWJzdENvdW50ZXIgPSAwO1xuICAgICAgICAgICAgY29uc3QgYWN0aXZpdHlWYWxTZXExID0gYWN0aXZpdHlBcnJheVtzZXExSWR4XTtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2aXR5VmFsU2VxMiA9IGFjdGl2aXR5QXJyYXlbc2VxMklkeF07XG4gICAgICAgICAgICBjb25zdCBkZWx0YSA9IGFjdGl2aXR5VmFsU2VxMSAtIGFjdGl2aXR5VmFsU2VxMjtcbiAgICAgICAgICAgIGlmIChNYXRoLmFicyhkZWx0YSkgPj0gc2V0dGluZ3MubWluQWN0aXZpdHlEZWx0YSkge1xuICAgICAgICAgICAgICAgIGxldCBzdWJzdENvdW50ZXJGbGFnID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgbGV0IHRlbXBEYXRhSWR4ID0gMDtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG1vbm9tZXJJbmZvIG9mIG1vbm9tZXJJbmZvQXJyYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VxMWNhdGVnb3J5SWR4ID0gbW9ub21lckluZm8ucmF3RGF0YVtzZXExSWR4XTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VxMmNhdGVnb3J5SWR4ID0gbW9ub21lckluZm8ucmF3RGF0YVtzZXEySWR4XTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlcTFjYXRlZ29yeUlkeCA9PT0gc2VxMmNhdGVnb3J5SWR4KVxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIHN1YnN0Q291bnRlcisrO1xuICAgICAgICAgICAgICAgICAgICBzdWJzdENvdW50ZXJGbGFnID0gc3Vic3RDb3VudGVyID4gc2V0dGluZ3MubWF4TXV0YXRpb25zO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3Vic3RDb3VudGVyRmxhZylcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB0ZW1wRGF0YVt0ZW1wRGF0YUlkeCsrXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvczogbW9ub21lckluZm8ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNlcTFtb25vbWVyOiBtb25vbWVySW5mby5jYXQhW3NlcTFjYXRlZ29yeUlkeF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzZXEybW9ub21lcjogbW9ub21lckluZm8uY2F0IVtzZXEyY2F0ZWdvcnlJZHhdLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VxMUlkeDogc2VxMUlkeCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlcTJJZHg6IHNlcTJJZHgsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghKHN1YnN0Q291bnRlckZsYWcgfHwgc3Vic3RDb3VudGVyID09PSAwKSkge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRlbXBEYXRhSWR4OyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRlbXBEYXRhRWxlbWVudCA9IHRlbXBEYXRhW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0ZW1wRGF0YUVsZW1lbnQucG9zO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc3Qgc2VxMW1vbm9tZXIgPSB0ZW1wRGF0YUVsZW1lbnQuc2VxMW1vbm9tZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zdCBzZXEybW9ub21lciA9IHRlbXBEYXRhRWxlbWVudC5zZXEybW9ub21lcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1vbm9tZXJzMS5wdXNoKHNlcTFtb25vbWVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1vbm9tZXJzMi5wdXNoKHNlcTJtb25vbWVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcy5wdXNoKHBvc2l0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlcTFJZHhzLnB1c2goc2VxMUlkeCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXEySWR4cy5wdXNoKHNlcTJJZHgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNudCsrO1xuICAgICAgICBzZXEySWR4Kys7XG4gICAgICAgIGlmIChzZXEySWR4ID09PSBhY3Rpdml0eUFycmF5Lmxlbmd0aCkge1xuICAgICAgICAgICAgc2VxMUlkeCsrO1xuICAgICAgICAgICAgc2VxMklkeCA9IHNlcTFJZHggKyAxO1xuICAgICAgICB9XG4gICAgfVxuICAgIHBvc3RNZXNzYWdlKHtcbiAgICAgICAgLy8gbW9ub21lcnMxOiBtb25vbWVyczEsXG4gICAgICAgIC8vIG1vbm9tZXJzMjogbW9ub21lcnMyLFxuICAgICAgICBwb3M6IHBvcyxcbiAgICAgICAgc2VxMUlkeHM6IG5ldyBVaW50MzJBcnJheShzZXExSWR4cyksXG4gICAgICAgIHNlcTJJZHhzOiBuZXcgVWludDMyQXJyYXkoc2VxMklkeHMpLFxuICAgIH0pO1xufSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2liWFYwWVhScGIyNHRZMnhwWm1aekxYZHZjbXRsY2k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbTExZEdGMGFXOXVMV05zYVdabWN5MTNiM0pyWlhJdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096dEJRVU5CTEZOQlFWTXNSMEZCUnl4RFFVRlBMRXRCUVVzc1JVRkJhVUlzUlVGQlJUczdTVUZEZWtNc1RVRkJUU3hGUVVGRExGRkJRVkVzUlVGQlJTeE5RVUZOTEVWQlFVVXNZVUZCWVN4RlFVRkZMR2RDUVVGblFpeEZRVUZGTEZGQlFWRXNSVUZCUlN4blFrRkJaMElzUlVGQlJTeGhRVUZoTEVWQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRE8wbEJRMnhJTEd0RFFVRnJRenRKUVVOc1F5eHJRMEZCYTBNN1NVRkRiRU1zVFVGQlRTeEhRVUZITEVkQlFXRXNSVUZCUlN4RFFVRkRPMGxCUTNwQ0xFMUJRVTBzVVVGQlVTeEhRVUZoTEVWQlFVVXNRMEZCUXp0SlFVTTVRaXhOUVVGTkxGRkJRVkVzUjBGQllTeEZRVUZGTEVOQlFVTTdTVUZET1VJc1RVRkJUU3hUUVVGVExFZEJRVWNzVFVGQlRTeEhRVUZITEZGQlFWRXNRMEZCUXp0SlFVTndReXh6UWtGQmMwSTdTVUZEZEVJc2MwSkJRWE5DTzBsQlEzUkNMRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU5hTEUxQlFVMHNVVUZCVVN4SFFVRkhMR0ZCUVdFc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUTNCRUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1VVRkJVU3hIUVVGSExFTkJRVU1zUjBGQlJ5eGhRVUZoTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1lVRkJZU3hEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZEYkVjc1RVRkJUU3hSUVVGUkxFZEJRVWNzVVVGQlVTeEhRVUZITEdGQlFXRXNRMEZCUXl4TlFVRk5MRWRCUVVjc1VVRkJVU3hIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4UlFVRlJMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eFJRVUZSTEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRE9VY3NTVUZCU1N4UFFVRlBMRWRCUVVjc1VVRkJVU3hEUVVGRE8wbEJRM1pDTEVsQlFVa3NUMEZCVHl4SFFVRkhMRkZCUVZFc1EwRkJRenRKUVVOMlFpeE5RVUZOTEZGQlFWRXNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRKUVVOd1JDeFBRVUZQTEVkQlFVY3NSMEZCUnl4VFFVRlRMRVZCUVVVN1VVRkRkRUlzU1VGQlNTeERRVUZETEVOQlFVTXNaMEpCUVdkQ0xFdEJRVXNzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkJMRTFCUVVFc1lVRkJZU3hEUVVGRExGTkJRVk1zTUVOQlFVVXNUMEZCVHl4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTExHZENRVUZuUWp0WlFVTTFSaXhEUVVGQkxFMUJRVUVzWVVGQllTeERRVUZETEZOQlFWTXNNRU5CUVVVc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZMTEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUlVGQlJUdFpRVU53UlN4SlFVRkpMRmxCUVZrc1IwRkJSeXhEUVVGRExFTkJRVU03V1VGRGNrSXNUVUZCVFN4bFFVRmxMRWRCUVVjc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFsQlF5OURMRTFCUVUwc1pVRkJaU3hIUVVGSExHRkJRV0VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0WlFVTXZReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eGxRVUZsTEVkQlFVY3NaVUZCWlN4RFFVRkRPMWxCUTJoRUxFbEJRVWtzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hSUVVGUkxFTkJRVU1zWjBKQlFXZENMRVZCUVVVN1owSkJRMmhFTEVsQlFVa3NaMEpCUVdkQ0xFZEJRVWNzUzBGQlN5eERRVUZETzJkQ1FVTTNRaXhKUVVGSkxGZEJRVmNzUjBGQlJ5eERRVUZETEVOQlFVTTdaMEpCUTNCQ0xFdEJRVXNzVFVGQlRTeFhRVUZYTEVsQlFVa3NaMEpCUVdkQ0xFVkJRVVU3YjBKQlF6RkRMRTFCUVUwc1pVRkJaU3hIUVVGSExGZEJRVmNzUTBGQlF5eFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN2IwSkJRM0pFTEUxQlFVMHNaVUZCWlN4SFFVRkhMRmRCUVZjc1EwRkJReXhQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdiMEpCUTNKRUxFbEJRVWtzWlVGQlpTeExRVUZMTEdWQlFXVTdkMEpCUTNKRExGTkJRVk03YjBKQlJWZ3NXVUZCV1N4RlFVRkZMRU5CUVVNN2IwSkJRMllzWjBKQlFXZENMRWRCUVVjc1dVRkJXU3hIUVVGSExGRkJRVkVzUTBGQlF5eFpRVUZaTEVOQlFVTTdiMEpCUTNoRUxFbEJRVWtzWjBKQlFXZENPM2RDUVVOc1FpeE5RVUZOTzI5Q1FVVlNMRkZCUVZFc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF5eEhRVUZITzNkQ1FVTjRRaXhIUVVGSExFVkJRVVVzVjBGQlZ5eERRVUZETEVsQlFVazdkMEpCUTNKQ0xHdEVRVUZyUkR0M1FrRkRiRVFzYTBSQlFXdEVPM2RDUVVOc1JDeFBRVUZQTEVWQlFVVXNUMEZCVHp0M1FrRkRhRUlzVDBGQlR5eEZRVUZGTEU5QlFVODdjVUpCUTJwQ0xFTkJRVU03YVVKQlEwZzdaMEpCUTBRc1NVRkJTU3hEUVVGRExFTkJRVU1zWjBKQlFXZENMRWxCUVVrc1dVRkJXU3hMUVVGTExFTkJRVU1zUTBGQlF5eEZRVUZGTzI5Q1FVTTNReXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1YwRkJWeXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzNkQ1FVTndReXhOUVVGTkxHVkJRV1VzUjBGQlJ5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN2QwSkJRM0JETEUxQlFVMHNVVUZCVVN4SFFVRkhMR1ZCUVdVc1EwRkJReXhIUVVGSExFTkJRVU03ZDBKQlEzSkRMRzFFUVVGdFJEdDNRa0ZEYmtRc2JVUkJRVzFFTzNkQ1FVTnVSQ3dyUWtGQkswSTdkMEpCUXk5Q0xDdENRVUVyUWp0M1FrRkRMMElzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenQzUWtGRGJrSXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dDNRa0ZEZGtJc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0eFFrRkRlRUk3YVVKQlEwWTdZVUZEUmp0VFFVTkdPMUZCUTBRc1IwRkJSeXhGUVVGRkxFTkJRVU03VVVGRFRpeFBRVUZQTEVWQlFVVXNRMEZCUXp0UlFVTldMRWxCUVVrc1QwRkJUeXhMUVVGTExHRkJRV0VzUTBGQlF5eE5RVUZOTEVWQlFVVTdXVUZEY0VNc1QwRkJUeXhGUVVGRkxFTkJRVU03V1VGRFZpeFBRVUZQTEVkQlFVY3NUMEZCVHl4SFFVRkhMRU5CUVVNc1EwRkJRenRUUVVOMlFqdExRVU5HTzBsQlEwUXNWMEZCVnl4RFFVRkRPMUZCUTFZc2QwSkJRWGRDTzFGQlEzaENMSGRDUVVGM1FqdFJRVU40UWl4SFFVRkhMRVZCUVVVc1IwRkJSenRSUVVOU0xGRkJRVkVzUlVGQlJTeEpRVUZKTEZkQlFWY3NRMEZCUXl4UlFVRlJMRU5CUVVNN1VVRkRia01zVVVGQlVTeEZRVUZGTEVsQlFVa3NWMEZCVnl4RFFVRkRMRkZCUVZFc1EwRkJRenRMUVVOd1F5eERRVUZETEVOQlFVTTdRVUZEVEN4RFFVRkRMRU5CUVVFc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWx4dWIyNXRaWE56WVdkbElEMGdZWE41Ym1NZ0tHVjJaVzUwS1RvZ1VISnZiV2x6WlR4MmIybGtQaUE5UGlCN1hHNGdJR052Ym5OMElIdHpkR0Z5ZEVsa2VDd2daVzVrU1dSNExDQmhZM1JwZG1sMGVVRnljbUY1TENCdGIyNXZiV1Z5U1c1bWIwRnljbUY1TENCelpYUjBhVzVuY3l3Z1kzVnljbVZ1ZEZSaGNtZGxkRWxrZUN3Z2RHRnlaMlYwVDNCMGFXOXVjMzBnUFNCbGRtVnVkQzVrWVhSaE8xeHVJQ0F2THlCamIyNXpkQ0J0YjI1dmJXVnljekU2SUhOMGNtbHVaMXRkSUQwZ1cxMDdYRzRnSUM4dklHTnZibk4wSUcxdmJtOXRaWEp6TWpvZ2MzUnlhVzVuVzEwZ1BTQmJYVHRjYmlBZ1kyOXVjM1FnY0c5ek9pQnpkSEpwYm1kYlhTQTlJRnRkTzF4dUlDQmpiMjV6ZENCelpYRXhTV1I0Y3pvZ2JuVnRZbVZ5VzEwZ1BTQmJYVHRjYmlBZ1kyOXVjM1FnYzJWeE1rbGtlSE02SUc1MWJXSmxjbHRkSUQwZ1cxMDdYRzRnSUdOdmJuTjBJR05vZFc1clUybDZaU0E5SUdWdVpFbGtlQ0F0SUhOMFlYSjBTV1I0TzF4dUlDQXZMMk52Ym5OMElHMXBJRDBnYzNSaGNuUlNiM2M3WEc0Z0lDOHZZMjl1YzNRZ2JXb2dQU0J6ZEdGeWRFTnZiRHRjYmlBZ2JHVjBJR051ZENBOUlEQTdYRzRnSUdOdmJuTjBJSE4wWVhKMFVtOTNJRDBnWVdOMGFYWnBkSGxCY25KaGVTNXNaVzVuZEdnZ0xTQXlJQzBnVFdGMGFDNW1iRzl2Y2loY2JpQWdJQ0JOWVhSb0xuTnhjblFvTFRnZ0tpQnpkR0Z5ZEVsa2VDQXJJRFFnS2lCaFkzUnBkbWwwZVVGeWNtRjVMbXhsYm1kMGFDQXFJQ2hoWTNScGRtbDBlVUZ5Y21GNUxteGxibWQwYUNBdElERXBJQzBnTnlrZ0x5QXlJQzBnTUM0MUtUdGNiaUFnWTI5dWMzUWdjM1JoY25SRGIyd2dQU0J6ZEdGeWRFbGtlQ0F0SUdGamRHbDJhWFI1UVhKeVlYa3ViR1Z1WjNSb0lDb2djM1JoY25SU2IzY2dLeUJOWVhSb0xtWnNiMjl5S0NoemRHRnlkRkp2ZHlBcklERXBJQ29nS0hOMFlYSjBVbTkzSUNzZ01pa2dMeUF5S1R0Y2JpQWdiR1YwSUhObGNURkpaSGdnUFNCemRHRnlkRkp2ZHp0Y2JpQWdiR1YwSUhObGNUSkpaSGdnUFNCemRHRnlkRU52YkR0Y2JpQWdZMjl1YzNRZ2RHVnRjRVJoZEdFZ1BTQnVaWGNnUVhKeVlYa29iVzl1YjIxbGNrbHVabTlCY25KaGVTNXNaVzVuZEdncE8xeHVJQ0IzYUdsc1pTQW9ZMjUwSUR3Z1kyaDFibXRUYVhwbEtTQjdYRzRnSUNBZ2FXWWdLQ0VvWTNWeWNtVnVkRlJoY21kbGRFbGtlQ0FoUFQwZ0xURWdKaVlnS0hSaGNtZGxkRTl3ZEdsdmJuTXVkR0Z5WjJWMFEyOXNQeTV5WVhkRVlYUmhXM05sY1RGSlpIaGRJQ0U5UFNCamRYSnlaVzUwVkdGeVoyVjBTV1I0SUh4OFhHNGdJQ0FnSUNBZ0lIUmhjbWRsZEU5d2RHbHZibk11ZEdGeVoyVjBRMjlzUHk1eVlYZEVZWFJoVzNObGNUSkpaSGhkSUNFOVBTQmpkWEp5Wlc1MFZHRnlaMlYwU1dSNEtTa3BJSHRjYmlBZ0lDQWdJR3hsZENCemRXSnpkRU52ZFc1MFpYSWdQU0F3TzF4dUlDQWdJQ0FnWTI5dWMzUWdZV04wYVhacGRIbFdZV3hUWlhFeElEMGdZV04wYVhacGRIbEJjbkpoZVZ0elpYRXhTV1I0WFR0Y2JpQWdJQ0FnSUdOdmJuTjBJR0ZqZEdsMmFYUjVWbUZzVTJWeE1pQTlJR0ZqZEdsMmFYUjVRWEp5WVhsYmMyVnhNa2xrZUYwN1hHNGdJQ0FnSUNCamIyNXpkQ0JrWld4MFlTQTlJR0ZqZEdsMmFYUjVWbUZzVTJWeE1TQXRJR0ZqZEdsMmFYUjVWbUZzVTJWeE1qdGNiaUFnSUNBZ0lHbG1JQ2hOWVhSb0xtRmljeWhrWld4MFlTa2dQajBnYzJWMGRHbHVaM011YldsdVFXTjBhWFpwZEhsRVpXeDBZU2tnZTF4dUlDQWdJQ0FnSUNCc1pYUWdjM1ZpYzNSRGIzVnVkR1Z5Um14aFp5QTlJR1poYkhObE8xeHVJQ0FnSUNBZ0lDQnNaWFFnZEdWdGNFUmhkR0ZKWkhnZ1BTQXdPMXh1SUNBZ0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUcxdmJtOXRaWEpKYm1adklHOW1JRzF2Ym05dFpYSkpibVp2UVhKeVlYa3BJSHRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J6WlhFeFkyRjBaV2R2Y25sSlpIZ2dQU0J0YjI1dmJXVnlTVzVtYnk1eVlYZEVZWFJoVzNObGNURkpaSGhkTzF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUhObGNUSmpZWFJsWjI5eWVVbGtlQ0E5SUcxdmJtOXRaWEpKYm1adkxuSmhkMFJoZEdGYmMyVnhNa2xrZUYwN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0hObGNURmpZWFJsWjI5eWVVbGtlQ0E5UFQwZ2MyVnhNbU5oZEdWbmIzSjVTV1I0S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1ZEdsdWRXVTdYRzVjYmlBZ0lDQWdJQ0FnSUNCemRXSnpkRU52ZFc1MFpYSXJLenRjYmlBZ0lDQWdJQ0FnSUNCemRXSnpkRU52ZFc1MFpYSkdiR0ZuSUQwZ2MzVmljM1JEYjNWdWRHVnlJRDRnYzJWMGRHbHVaM011YldGNFRYVjBZWFJwYjI1ek8xeHVJQ0FnSUNBZ0lDQWdJR2xtSUNoemRXSnpkRU52ZFc1MFpYSkdiR0ZuS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNWNiaUFnSUNBZ0lDQWdJQ0IwWlcxd1JHRjBZVnQwWlcxd1JHRjBZVWxrZUNzclhTQTlJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIQnZjem9nYlc5dWIyMWxja2x1Wm04dWJtRnRaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJSE5sY1RGdGIyNXZiV1Z5T2lCdGIyNXZiV1Z5U1c1bWJ5NWpZWFFoVzNObGNURmpZWFJsWjI5eWVVbGtlRjBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJ6WlhFeWJXOXViMjFsY2pvZ2JXOXViMjFsY2tsdVptOHVZMkYwSVZ0elpYRXlZMkYwWldkdmNubEpaSGhkTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjMlZ4TVVsa2VEb2djMlZ4TVVsa2VDeGNiaUFnSUNBZ0lDQWdJQ0FnSUhObGNUSkpaSGc2SUhObGNUSkpaSGdzWEc0Z0lDQWdJQ0FnSUNBZ2ZUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JwWmlBb0lTaHpkV0p6ZEVOdmRXNTBaWEpHYkdGbklIeDhJSE4xWW5OMFEyOTFiblJsY2lBOVBUMGdNQ2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJSFJsYlhCRVlYUmhTV1I0T3lCcEt5c3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhSbGJYQkVZWFJoUld4bGJXVnVkQ0E5SUhSbGJYQkVZWFJoVzJsZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjRzl6YVhScGIyNGdQU0IwWlcxd1JHRjBZVVZzWlcxbGJuUXVjRzl6TzF4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnWTI5dWMzUWdjMlZ4TVcxdmJtOXRaWElnUFNCMFpXMXdSR0YwWVVWc1pXMWxiblF1YzJWeE1XMXZibTl0WlhJN1hHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCamIyNXpkQ0J6WlhFeWJXOXViMjFsY2lBOUlIUmxiWEJFWVhSaFJXeGxiV1Z1ZEM1elpYRXliVzl1YjIxbGNqdGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklHMXZibTl0WlhKek1TNXdkWE5vS0hObGNURnRiMjV2YldWeUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklHMXZibTl0WlhKek1pNXdkWE5vS0hObGNUSnRiMjV2YldWeUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhCdmN5NXdkWE5vS0hCdmMybDBhVzl1S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSE5sY1RGSlpIaHpMbkIxYzJnb2MyVnhNVWxrZUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6WlhFeVNXUjRjeTV3ZFhOb0tITmxjVEpKWkhncE8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQmpiblFyS3p0Y2JpQWdJQ0J6WlhFeVNXUjRLeXM3WEc0Z0lDQWdhV1lnS0hObGNUSkpaSGdnUFQwOUlHRmpkR2wyYVhSNVFYSnlZWGt1YkdWdVozUm9LU0I3WEc0Z0lDQWdJQ0J6WlhFeFNXUjRLeXM3WEc0Z0lDQWdJQ0J6WlhFeVNXUjRJRDBnYzJWeE1VbGtlQ0FySURFN1hHNGdJQ0FnZlZ4dUlDQjlYRzRnSUhCdmMzUk5aWE56WVdkbEtIdGNiaUFnSUNBdkx5QnRiMjV2YldWeWN6RTZJRzF2Ym05dFpYSnpNU3hjYmlBZ0lDQXZMeUJ0YjI1dmJXVnljekk2SUcxdmJtOXRaWEp6TWl4Y2JpQWdJQ0J3YjNNNklIQnZjeXhjYmlBZ0lDQnpaWEV4U1dSNGN6b2dibVYzSUZWcGJuUXpNa0Z5Y21GNUtITmxjVEZKWkhoektTeGNiaUFnSUNCelpYRXlTV1I0Y3pvZ2JtVjNJRlZwYm5Rek1rRnljbUY1S0hObGNUSkpaSGh6S1N4Y2JpQWdmU2s3WEc1OU8xeHVJbDE5IiwiLy8gc3RhcnR1cFxuLy8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4vLyBUaGlzIGVudHJ5IG1vZHVsZSBpcyByZWZlcmVuY2VkIGJ5IG90aGVyIG1vZHVsZXMgc28gaXQgY2FuJ3QgYmUgaW5saW5lZFxudmFyIF9fd2VicGFja19leHBvcnRzX18gPSB7fTtcbl9fd2VicGFja19tb2R1bGVzX19bODQzNl0oKTtcbiJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJ2YWx1ZSIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsIm9ubWVzc2FnZSIsImV2ZW50IiwiX2EiLCJfYiIsInN0YXJ0SWR4IiwiZW5kSWR4IiwiYWN0aXZpdHlBcnJheSIsIm1vbm9tZXJJbmZvQXJyYXkiLCJzZXR0aW5ncyIsImN1cnJlbnRUYXJnZXRJZHgiLCJ0YXJnZXRPcHRpb25zIiwiZGF0YSIsInBvcyIsInNlcTFJZHhzIiwic2VxMklkeHMiLCJjaHVua1NpemUiLCJjbnQiLCJzdGFydFJvdyIsImxlbmd0aCIsIk1hdGgiLCJmbG9vciIsInNxcnQiLCJzZXExSWR4Iiwic2VxMklkeCIsInRlbXBEYXRhIiwiQXJyYXkiLCJ0YXJnZXRDb2wiLCJyYXdEYXRhIiwic3Vic3RDb3VudGVyIiwiZGVsdGEiLCJhYnMiLCJtaW5BY3Rpdml0eURlbHRhIiwic3Vic3RDb3VudGVyRmxhZyIsInRlbXBEYXRhSWR4IiwibW9ub21lckluZm8iLCJtYXhNdXRhdGlvbnMiLCJuYW1lIiwiaSIsInBvc2l0aW9uIiwicHVzaCIsInBvc3RNZXNzYWdlIiwiVWludDMyQXJyYXkiXSwic291cmNlUm9vdCI6IiJ9