@jax-data-science/sci-image-visualizer 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/esm2022/lib/contracts/display-types.mjs +1 -1
  2. package/esm2022/lib/contracts/plot-type-contribution.contract.mjs +1 -1
  3. package/esm2022/lib/contracts/ports/spatial-data.port.mjs +1 -1
  4. package/esm2022/lib/contracts/spatial-dataset.contract.mjs +1 -1
  5. package/esm2022/lib/contracts/visualizer.contract.mjs +1 -1
  6. package/esm2022/lib/implementations/napari-js/napari-loading-badge.mjs +73 -0
  7. package/esm2022/lib/implementations/napari-js/napari-spatial-tiles.mjs +418 -29
  8. package/esm2022/lib/implementations/napari-js/napari-visualizer.service.mjs +35 -1
  9. package/esm2022/lib/implementations/osd/openseadragon-visualizer.service.mjs +8 -1
  10. package/esm2022/lib/implementations/spatial-data-http/spatial-data-http.service.mjs +12 -1
  11. package/esm2022/lib/implementations/spatial-data-http/spatial-wire.mjs +2 -1
  12. package/esm2022/lib/routing-visualizer.service.mjs +5 -1
  13. package/esm2022/lib/spatial/spatial-tiles.mjs +144 -1
  14. package/esm2022/lib/spatial-controls/spatial-controls.component.mjs +198 -9
  15. package/fesm2022/jax-data-science-sci-image-visualizer.mjs +878 -30
  16. package/fesm2022/jax-data-science-sci-image-visualizer.mjs.map +1 -1
  17. package/lib/contracts/display-types.d.ts +4 -2
  18. package/lib/contracts/plot-type-contribution.contract.d.ts +9 -0
  19. package/lib/contracts/ports/spatial-data.port.d.ts +12 -1
  20. package/lib/contracts/spatial-dataset.contract.d.ts +30 -0
  21. package/lib/contracts/visualizer.contract.d.ts +7 -1
  22. package/lib/implementations/napari-js/napari-loading-badge.d.ts +20 -0
  23. package/lib/implementations/napari-js/napari-spatial-tiles.d.ts +76 -1
  24. package/lib/implementations/napari-js/napari-visualizer.service.d.ts +7 -0
  25. package/lib/implementations/spatial-data-http/spatial-data-http.service.d.ts +3 -1
  26. package/lib/implementations/spatial-data-http/spatial-wire.d.ts +2 -1
  27. package/lib/spatial/spatial-tiles.d.ts +38 -1
  28. package/lib/spatial-controls/spatial-controls.component.d.ts +54 -0
  29. package/package.json +1 -1
@@ -50,4 +50,4 @@ export const DEFAULT_SPATIAL_VIEW = {
50
50
  showImage: true,
51
51
  showAnnotations: true,
52
52
  };
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJhY3RzL2Rpc3BsYXktdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFrUkgsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQXFCO0lBQ3BELE9BQU8sRUFBRSxJQUFJO0lBQ2IsVUFBVSxFQUFFLENBQUM7SUFDYixPQUFPLEVBQUUsQ0FBQztJQUNWLFFBQVEsRUFBRSxLQUFLO0lBQ2YsY0FBYyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztJQUM1QixrQkFBa0IsRUFBRSxJQUFJO0lBQ3hCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFlBQVksRUFBRSxJQUFJO0lBQ2xCLGFBQWEsRUFBRSxLQUFLO0lBQ3BCLGdCQUFnQixFQUFFLENBQUM7SUFDbkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxjQUFjLEVBQUUsSUFBSTtJQUNwQixhQUFhLEVBQUUsS0FBSztJQUNwQixnQkFBZ0IsRUFBRSxDQUFDO0lBQ25CLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsT0FBTyxFQUFFLElBQUk7SUFDYixRQUFRLEVBQUUsTUFBTTtJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsSUFBSTtJQUNwQixlQUFlLEVBQUUsRUFBRTtJQUNuQixxQkFBcUIsRUFBRSxFQUFFO0lBQ3pCLG9CQUFvQixFQUFFLEVBQUU7SUFDeEIsb0JBQW9CLEVBQUUsRUFBRTtJQUN4QixrQkFBa0IsRUFBRSxLQUFLO0lBQ3pCLGdCQUFnQixFQUFFLE9BQU87SUFDekIsY0FBYyxFQUFFLEtBQUs7SUFDckIsaUJBQWlCLEVBQUUsVUFBVTtJQUM3QixnQkFBZ0IsRUFBRSxFQUFFO0lBQ3BCLGVBQWUsRUFBRSxDQUFDO0lBQ2xCLGlCQUFpQixFQUFFLEdBQUc7SUFDdEIsaUJBQWlCLEVBQUUsTUFBTTtJQUN6QixjQUFjLEVBQUUsR0FBRztJQUNuQixVQUFVLEVBQUUsRUFBRTtJQUNkLFlBQVksRUFBRSxJQUFJO0lBQ2xCLGVBQWUsRUFBRSxJQUFJO0lBQ3JCLGFBQWEsRUFBRSxPQUFPO0lBQ3RCLGFBQWEsRUFBRSxJQUFJO0lBQ25CLGVBQWUsRUFBRSxTQUFTO0lBQzFCLFlBQVksRUFBRSxFQUFFO0lBQ2hCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsZUFBZSxFQUFFLElBQUk7Q0FDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUHVibGljYXRpb24tY3JpdGljYWwgdHlwZXMgdGhhdCB3ZXJlIGBhbnlgIG9uIHRoZSBwdWJsaWMgY29udHJhY3RzXG4gKiAocmVmYWN0b3JpbmcgcGxhbiwgU3RlcCA2KS4gRGVsaWJlcmF0ZWx5IHBlcm1pc3NpdmUg4oCUIGV2ZXJ5IGZpZWxkIG9wdGlvbmFsIOKAlFxuICogc28gZXhpc3RpbmcgaG9zdHMgKHdoaWNoIHBhc3MgUHJpbWVORyBgVHJlZU5vZGVgcyBhbmQgcGxhaW4gb3B0aW9uIG9iamVjdHMpXG4gKiBrZWVwIGNvbXBpbGluZyB1bmNoYW5nZWQgd2hpbGUgY29uc3VtZXJzIGZpbmFsbHkgZ2V0IG5hbWVkIHNoYXBlcy5cbiAqL1xuXG4vKiogQSBjb2xvcm1hcCB2YWx1ZSBhcyBQbG90bHkgdW5kZXJzdGFuZHMgaXQ6IGEgYnVpbHQtaW4gc2NhbGUgbmFtZSAoZS5nLlxuICogICdWaXJpZGlzJykgb3IgYW4gaW5saW5lIGFycmF5IG9mIGBbc3RvcCwgY29sb3JdYCBwYWlycy4gKi9cbmV4cG9ydCB0eXBlIENvbG9ybWFwVmFsdWUgPSBzdHJpbmcgfCBBcnJheTxbbnVtYmVyLCBzdHJpbmddPjtcblxuLyoqIE9uZSBub2RlIG9mIHRoZSBjb2xvcm1hcCBzZWxlY3RvciB0cmVlIChzdHJ1Y3R1cmFsbHkgY29tcGF0aWJsZSB3aXRoIHRoZVxuICogIFByaW1lTkcgYFRyZWVOb2RlYHMgdGhlIGhvc3QgcGFzc2VzKTogZ3JvdXAgbm9kZXMgY2FycnkgYGNoaWxkcmVuYCwgbGVhZlxuICogIG5vZGVzIGNhcnJ5IHRoZSBzY2FsZSBpbiBgZGF0YS52YWx1ZWAgKCsgYSBwcmV2aWV3IGltYWdlIGluIGBkYXRhLnNyY2ApLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2xvcm1hcE5vZGUge1xuICBsYWJlbD86IHN0cmluZztcbiAgZGF0YT86IHsgdmFsdWU/OiBDb2xvcm1hcFZhbHVlOyBzcmM/OiBzdHJpbmcgfTtcbiAgY2hpbGRyZW4/OiBDb2xvcm1hcE5vZGVbXTtcbn1cblxuLyoqIE1hZ2ljLXdhbmQgcGl4ZWwtY29tcGFyaXNvbiBzcGFjZS4gKi9cbmV4cG9ydCB0eXBlIFdhbmRUeXBlID0gJ0dSQVknIHwgJ1JHQicgfCAnTEFCX0RJU1RBTkNFJztcblxuLyoqIE9wdGlvbnMgZm9yIHRoZSBtYWdpYy13YW5kIHRvb2wgKFF1UGF0aC1zdHlsZSkuICovXG5leHBvcnQgaW50ZXJmYWNlIElXYW5kT3B0aW9ucyB7XG4gIHR5cGU/OiBXYW5kVHlwZTtcbiAgLyoqIEdhdXNzaWFuIHNpZ21hIGFwcGxpZWQgdG8gdGhlIHBhdGNoIGJlZm9yZSB0aHJlc2hvbGRpbmcuICovXG4gIHNpZ21hPzogbnVtYmVyO1xuICAvKiogSGlnaGVyID0gc3RyaWN0ZXIgKHNtYWxsZXIgc2VsZWN0aW9uKSBmb3IgR1JBWS9SR0I7IGhpZ2hlciA9IGxvb3NlciBmb3JcbiAgICogIExBQl9ESVNUQU5DRSDigJQgbWF0Y2hlcyBRdVBhdGguICovXG4gIHNlbnNpdGl2aXR5PzogbnVtYmVyO1xuICAvKiogU3F1YXJlIHBhdGNoIHNpemUgaW4gcGl4ZWxzIChtdXN0IGJlIG9kZCkuICovXG4gIHBhdGNoU2l6ZT86IG51bWJlcjtcbiAgLyoqIFdoZW4gdHJ1ZSwgc2tpcCBibHVyL3RocmVzaG9sZCBhbmQgZmxvb2QtZmlsbCBhdCBleGFjdC1tYXRjaFxuICAgKiAgKENtZC9DdHJsLWNsaWNrIGluIFF1UGF0aCkuICovXG4gIHNpbXBsZU1vZGU/OiBib29sZWFuO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgdGhlIGJydXNoIHJlZ2lvbiB0b29sIChRdVBhdGgtc3R5bGUpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQnJ1c2hPcHRpb25zIHtcbiAgLyoqIEJydXNoIGRpYW1ldGVyIGluIG1hdHJpeCAoaW1hZ2UpIHBpeGVscy4gKi9cbiAgc2l6ZT86IG51bWJlcjtcbiAgLyoqXG4gICAqIFBhaW50IGFzIG9uZSBjbGFzczogbmV3IHJlZ2lvbnMgdGFrZSB0aGlzIGxhYmVsLCBhbmQgYSBzdHJva2Ugb25seSBleHRlbmRzXG4gICAqIG9yIG1lcmdlcyByZWdpb25zIHdpdGggdGhlIHNhbWUgbGFiZWwuIFVuc2V0ID0gdGhlIHBsYWluIGJydXNoIChsYWJlbFxuICAgKiBgJ1JlZ2lvbidgLCBleHRlbmRzIGFueSByZWdpb24pLiBgc2V0QnJ1c2hNb2RlKHRydWUsIOKApilgIHNldHMgdGhlIGNsYXNzIGluXG4gICAqIGZ1bGw7IGBzZXRCcnVzaE9wdGlvbnNgIGNoYW5nZXMgaXQgb25seSB3aGVuIGBsYWJlbGAgb3IgYGNvbG9yYCBpcyBwYXNzZWQsXG4gICAqIHNvIGEgc2l6ZS1vbmx5IHVwZGF0ZSBrZWVwcyBpdC5cbiAgICovXG4gIGxhYmVsPzogc3RyaW5nO1xuICAvKiogQ29sb3VyIGZvciB0aGUgcGFpbnRlZCByZWdpb25zIGluc3RlYWQgb2YgdGhlIHNoYXBlIGNvbG91ci4gS2VwdCBhZ2FpbnN0IHByZXNldCByZS1hcHBseS4gKi9cbiAgY29sb3I/OiBzdHJpbmc7XG59XG5cbi8qKiBXaGF0IGRyaXZlcyBwb2ludCBjb2xvdXIgaW4gdGhlIHNwYXRpYWwtb21pY3MgbW9kZTogYW4gYW5ub3RhdGlvbiBjb2x1bW5cbiAqICBmcm9tIHRoZSBkYXRhc2V0LCBvciBvbmUgZmVhdHVyZSAoZ2VuZSkgdmVjdG9yIGZldGNoZWQgb24gZGVtYW5kLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsQ29sb3JCeSB7XG4gIGtpbmQ6ICdjb2x1bW4nIHwgJ2ZlYXR1cmUnO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKiBEaXNwbGF5IHN0YXRlIGZvciB0aGUgc3BhdGlhbC1vbWljcyBwbG90IG1vZGUuIExpdmVzIGluIGBWaXN1YWxpemVyU3RvcmVgXG4gKiAgYWxvbmdzaWRlIHRoZSBjb2xvcm1hcC9jaGFubmVsIHN0YXRlIHNvIHRoZSByZW5kZXJlciByZWFjdHMgdG8gZWRpdHMgdGhlXG4gKiAgc2FtZSB3YXkgaXQgZG9lcyBmb3IgYW4gaW1hZ2UuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxWaWV3U3RhdGUge1xuICAvKiogQ29sb3VyIHNvdXJjZTsgYG51bGxgIHJlbmRlcnMgZXZlcnkgb2JzZXJ2YXRpb24gaW4gb25lIG5ldXRyYWwgY29sb3VyXG4gICAqICAodXNlZnVsIG9uIGl0cyBvd24g4oCUIGl0IHNob3dzIHdoZXJlIHRoZSB0aXNzdWUgYWN0dWFsbHkgaXMpLiAqL1xuICBjb2xvckJ5OiBTcGF0aWFsQ29sb3JCeSB8IG51bGw7XG4gIC8qKiBNdWx0aXBsaWVyIG9uIHRoZSBkYXRhc2V0J3MgcGh5c2ljYWwgbWFya2VyIHNpemUuIDEgPSB0cnVlIHNpemUsIHdoaWNoIGZvclxuICAgKiAgYSA1NSDCtW0gVmlzaXVtIHNwb3QgaXMgY29ycmVjdCBidXQgY2FuIGJlIGludmlzaWJsZSB3aGVuIHpvb21lZCBvdXQuICovXG4gIHBvaW50U2NhbGU6IG51bWJlcjtcbiAgLyoqIEFscGhhIGZvciBwb2ludHMgdGhhdCBhcmUgbm90IG11dGVkLiAqL1xuICBvcGFjaXR5OiBudW1iZXI7XG4gIC8qKiBMb2ctc2NhbGUgY29udGludW91cyB2YWx1ZXMgYmVmb3JlIG1hcHBpbmcgdGhlbSBvbnRvIHRoZSBjb2xvcm1hcC4gU2VlZGVkXG4gICAqICBmcm9tIHRoZSBjb2x1bW4ncyBgbG9nU2NhbGVIaW50YCDigJQgY291bnQgZGF0YSBuZWVkcyBpdC4gKi9cbiAgbG9nU2NhbGU6IGJvb2xlYW47XG4gIC8qKiBQZXJjZW50aWxlIGNsaXAgZm9yIHRoZSBjb250cmFzdCB3aW5kb3cgYXMgYFtsbywgaGldYCBmcmFjdGlvbnMsIHNvIGFcbiAgICogIGhhbmRmdWwgb2Ygc2F0dXJhdGVkIG9ic2VydmF0aW9ucyBkb24ndCBmbGF0dGVuIHRoZSByZXN0LiAqL1xuICAgcGVyY2VudGlsZUNsaXA6IFtudW1iZXIsIG51bWJlcl07XG4gIC8qKlxuICAgKiBDb2xvcm1hcCBmb3IgQ09OVElOVU9VUyBzcGF0aWFsIGNvbG91cmluZyDigJQgYSBnZW5lLCBhIG51bWVyaWMgY29sdW1uIOKAlCBhcyBhXG4gICAqIHtAbGluayBDb2xvcm1hcFZhbHVlfSwgdGhlIHNhbWUgc2hhcGUgdGhlIGRpc3BsYXkgY29sb3JtYXAgY2FycmllczogYSBzY2FsZVxuICAgKiBOQU1FIGZvciB0aGUgYnVpbHQtaW5zLCBvciBhbiBpbmxpbmUgYFtzdG9wLCBjb2xvdXJdYCBhcnJheSBmb3IgdGhlIHJlc3QuXG4gICAqIE51bGwgZm9sbG93cyB0aGUgZGlzcGxheSBjb2xvcm1hcC5cbiAgICpcbiAgICogSXRzIG93biBzZXR0aW5nIGJlY2F1c2UgdGhlIGRpc3BsYXkgY29sb3JtYXAgYmVsb25ncyB0byB0aGUgdGlzc3VlIGltYWdlIGFuZFxuICAgKiBpcyB1c3VhbGx5IGEgZ3JleSByYW1wLCB3aGljaCBpcyB0aGUgd3JvbmcgdGhpbmcgdG8gcmVhZCBhIG1lYXN1cmVtZW50XG4gICAqIHRocm91Z2g6IGdyZXkgb3ZlciBncmV5IGNhbm5vdCBiZSB0b2xkIGFwYXJ0IGZyb20gdGhlIGFuYXRvbXkuIEZvbGxvd2luZyBpdFxuICAgKiAod2l0aCBhIFZpcmlkaXMgZmFsbGJhY2sgZm9yIGV4YWN0bHkgdGhhdCBjYXNlKSBpcyBhIHJlYXNvbmFibGUgZGVmYXVsdCBhbmQgYVxuICAgKiBwb29yIGNlaWxpbmcsIHNpbmNlIHdoaWNoIGdyYWRpZW50IHJlYWRzIGJlc3QgaXMgYSBqdWRnZW1lbnQgYWJvdXQgdGhlIGRhdGEuXG4gICAqXG4gICAqIE9uZSBzZXR0aW5nIGZvciB0aGUgbWFya2VycywgdGhlIDJEIGdlbmUgbWFwIGFuZCB0aGUgM0QgZ2VuZSBtYXAgdG9nZXRoZXIsIHNvXG4gICAqIHRoZSBmaWVsZCB1bmRlciB0aGUgY2VsbHMgYW5kIHRoZSBjZWxscyBvdmVyIGl0IGNhbm5vdCBkaXNhZ3JlZSBhYm91dCB3aGF0IGFcbiAgICogY29sb3VyIG1lYW5zIOKAlCBhbmQgdGhlIHBhbmVsJ3Mgb3duIGNvbG91ciBiYXIgaXMgYnVpbHQgZnJvbSBpdCB0b28uXG4gICAqL1xuICBjb250aW51b3VzQ29sb3JtYXA6IENvbG9ybWFwVmFsdWUgfCBudWxsO1xuICAvKipcbiAgICogV2hhdCB0aGUgM0Qgc2NlbmUgZHJhd3MuIFRoZSB0aHJlZSB0aGluZ3MgaW4gaXQg4oCUIHRoZSByZWZlcmVuY2Ugdm9sdW1lLCB0aGVcbiAgICogb2JzZXJ2YXRpb24gY2xvdWQgYW5kIHRoZSBjbHVzdGVyIGRlbnNpdHkgdm9sdW1lcyDigJQgb2NjdXB5IHRoZSBzYW1lIHNwYWNlLCBzb1xuICAgKiBhbnkgdHdvIG9mIHRoZW0gaGlkZSBlYWNoIG90aGVyIHRvIHNvbWUgZGVncmVlLiBUaGVzZSBhcmUgaW5kZXBlbmRlbnQgYmVjYXVzZVxuICAgKiB0aGUgdXNlZnVsIHZpZXdzIGFyZSB0aGUgY29tYmluYXRpb25zOiB0aGUgdm9sdW1lcyBhbG9uZSB0byByZWFkIGFuIGVzdGltYXRlZFxuICAgKiBkaXN0cmlidXRpb24sIG9uZSBzZWN0aW9uJ3MgY2VsbHMgb3ZlciB0aGVtIHRvIGNoZWNrIHRoYXQgZXN0aW1hdGUgYWdhaW5zdCB0aGVcbiAgICogbWVhc3VyZW1lbnQsIHRoZSBhbmF0b215IGFsb25lIHRvIGZpbmQgYSBsYW5kbWFyay5cbiAgICpcbiAgICogVmlzaWJpbGl0eSBvbmx5IOKAlCB0aGUgbGF5ZXJzIHN0YXkgYnVpbHQsIHNvIHRvZ2dsaW5nIG9uZSBiYWNrIG9uIGlzIGltbWVkaWF0ZVxuICAgKiBhbmQgZG9lcyBub3QgcmUtcnVuIGEgcmFzdGVyaXNhdGlvbi4ge0BsaW5rIGRlbnNpdHlWb2x1bWV9IGlzIHRoZSBleGNlcHRpb24gYW5kXG4gICAqIGdlbnVpbmVseSBnYXRlcyBjb25zdHJ1Y3Rpb24sIGJlY2F1c2UgYnVpbGRpbmcgc2l4IHZvbHVtZXMgaXMgbm90IGZyZWUuXG4gICAqL1xuICBzaG93Vm9sdW1lOiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIHJlZmVyZW5jZSB2b2x1bWUncyBvcGFjaXR5LlxuICAgKlxuICAgKiBJdHMgb3duLCBub3Qge0BsaW5rIG9wYWNpdHl9ICh3aGljaCBiZWxvbmdzIHRvIHRoZSBtYXJrZXJzKTogdGhlIHZvbHVtZSBpcyBhXG4gICAqIEJBQ0tEUk9QLCBhbmQgcmVhZGluZyB0aGUgY2xvdWQgb3IgYSBkZW5zaXR5IGZpZWxkIHRocm91Z2ggaXQgbWVhbnMgdHVybmluZ1xuICAgKiB0aGUgYW5hdG9teSBkb3duIHdpdGhvdXQgdG91Y2hpbmcgdGhlIGRhdGEgZHJhd24gb3ZlciBpdC4gUmFuZ2VzIGxvd2VyIHRoYW5cbiAgICogdGhlIG1hcmtlcnMnIHNsaWRlciBmb3IgdGhlIHNhbWUgcmVhc29uIOKAlCBhIGZhaW50IGFuYXRvbWljYWwgaGludCBpcyBhIHVzZWZ1bFxuICAgKiBzZXR0aW5nIGZvciBhIGJhY2tkcm9wIGFuZCBhIHVzZWxlc3Mgb25lIGZvciB0aGUgbWVhc3VyZW1lbnQuXG4gICAqL1xuICB2b2x1bWVPcGFjaXR5OiBudW1iZXI7XG4gIC8qKiBEcmF3IHRoZSBvYnNlcnZhdGlvbiBtYXJrZXJzIOKAlCB0aGUgM0QgY2xvdWQsIG9yIHRoZSAyRCBjaXJjbGVzLiBJbiAyRCB0aGV5IGFsc29cbiAgICogIHN0YW5kIGluIGZvciBjZWxscyB0b28gc21hbGwgb24gc2NyZWVuIHRvIG91dGxpbmUuICovXG4gIHNob3dQb2ludHM6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBSZXN0cmljdCB0aGUgY2xvdWQgdG8gT05FIGltYWdlZCBzZWN0aW9uLCBieSBpbmRleCBpbnRvIHRoZSBkYXRhc2V0J3Mgc2FtcGxlZFxuICAgKiBzZWN0aW9uczsgbnVsbCBkcmF3cyBldmVyeSBzZWN0aW9uLlxuICAgKlxuICAgKiBUaGUgd2hvbGUgY2xvdWQgaXMgYSBzdGFjayBvZiBkaXNjcyB0aGF0IGhpZGVzIHdoYXRldmVyIGlzIGRyYXduIGJldHdlZW4gdGhlbS5cbiAgICogT25lIHNlY3Rpb24gYXQgYSB0aW1lIGlzIHRoZSB2aWV3IHRoYXQgYW5zd2VycyBcImRvZXMgdGhlIGVzdGltYXRlZCBmaWVsZFxuICAgKiBhY3R1YWxseSBmb2xsb3cgdGhlIGNlbGxzIEkgbWVhc3VyZWRcIiDigJQgYW5kIGl0IGlzIG9ubHkgb2ZmZXJlZCBmb3IgZGF0YSB0aGF0XG4gICAqIHJlYWxseSBpcyBzZWN0aW9uZWQgKHNlZSBgc2FtcGxlZFNlY3Rpb25zYCkuXG4gICAqL1xuICBwb2ludFNlY3Rpb246IG51bWJlciB8IG51bGw7XG4gIC8qKlxuICAgKiBEcmF3IGVhY2ggY2x1c3RlciBhcyBhIHRyYW5zbHVjZW50IERFTlNJVFkgdm9sdW1lIGFsb25nc2lkZSB0aGUgM0QgY2xvdWQuXG4gICAqXG4gICAqIFNlcmlhbCBzZWN0aW9ucyBodW5kcmVkcyBvZiBtaWNyb25zIGFwYXJ0IG1ha2UgYSBjbG91ZCBoYXJkIHRvIHJlYWQgYXMgYW5cbiAgICogYW5hdG9taWNhbCBkaXN0cmlidXRpb24g4oCUIHRoZSBleWUgY2Fubm90IGludGVncmF0ZSBkaXNjcyBpbnRvIGEgc2hhcGUuIEFcbiAgICogZGVuc2l0eSBmaWVsZCBjYW4gYmUgZXN0aW1hdGVkIGJldHdlZW4gdGhlIGltYWdlZCBwbGFuZXMgKGEgY29udGludW91c1xuICAgKiBlc3RpbWF0ZSwgdW5saWtlIGluZGl2aWR1YWwgY2VsbHMsIHdoaWNoIGhhdmUgbm8gY29ycmVzcG9uZGVuY2UgdG9cbiAgICogaW50ZXJwb2xhdGUgYWxvbmcpIGFuZCByZW5kZXJzIGFzIGEgY2xvdWQgdGhhdCByZWFkcyBhcyBhbiBlc3RpbWF0ZS5cbiAgICovXG4gIGRlbnNpdHlWb2x1bWU6IGJvb2xlYW47XG4gIC8qKiBNdWx0aXBsaWVyIG9uIHRoZSBkZWZhdWx0IGtlcm5lbCBiYW5kd2lkdGguIEFib3ZlIDEgaXMgc21vb3RoZXIgYW5kIGxlc3NcbiAgICogIGNvbW1pdHRhbDsgYmVsb3cgMSBleHBvc2VzIHRoZSBpbmRpdmlkdWFsIHNlY3Rpb25zLiAqL1xuICBkZW5zaXR5U21vb3RoaW5nOiBudW1iZXI7XG4gIC8qKlxuICAgKiBEcmF3IHRoZSBhY3RpdmUgR0VORSBhcyBhIGNvbnRpbnVvdXMgZmllbGQgdW5kZXIgdGhlIG9ic2VydmF0aW9ucyAoMkQpLlxuICAgKlxuICAgKiBDb2xvdXJpbmcgdGhlIG1hcmtlcnMgYnkgYSBnZW5lIHNheXMgd2hpY2ggY2VsbHMgZXhwcmVzcyBpdDsgaXQgY2Fubm90IHNheVxuICAgKiB3aGVyZSwgYmVjYXVzZSB0aGUgZXllIHdpbGwgbm90IGludGVncmF0ZSB0aG91c2FuZHMgb2YgZG90cyBpbnRvIGEgdGVycml0b3J5LlxuICAgKiBUaGUgZmllbGQgaXMgYW4gZXN0aW1hdGUg4oCUIGEga2VybmVsLXdlaWdodGVkIG1lYW4gcGVyIGNlbGwsIHRyYW5zcGFyZW50IHdoZXJlXG4gICAqIG5vIGNlbGwgd2FzIG1lYXN1cmVkIOKAlCBhbmQgaXQgaXMgZHJhd24gYmVuZWF0aCB0aGUgY2VsbHMsIG5vdCBpbnN0ZWFkIG9mIHRoZW0sXG4gICAqIHNvIHRoZSBtZWFzdXJlbWVudCBzdGF5cyBvbiBzY3JlZW4gbmV4dCB0byB0aGUgaW50ZXJwb2xhdGlvbi5cbiAgICpcbiAgICogSWdub3JlZCB1bmxlc3MgdGhlIGNvbG91ciBzb3VyY2UgaXMgYSBnZW5lOiB0aGVyZSBpcyBub3RoaW5nIGVsc2UgdG8gbWFwLlxuICAgKi9cbiAgZ2VuZU1hcDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFJlc3RyaWN0IHRoZSAzRCBnZW5lIG1hcCB0byBPTkUgaW1hZ2VkIHNlY3Rpb24sIGJ5IGluZGV4IGludG8gdGhlIGRhdGFzZXQnc1xuICAgKiBzYW1wbGVkIHNlY3Rpb25zOyBudWxsIGRyYXdzIGV2ZXJ5IHNlY3Rpb24ncyBzaGVldC5cbiAgICpcbiAgICogU2VwYXJhdGUgZnJvbSB7QGxpbmsgcG9pbnRTZWN0aW9ufSBzbyB0aGUgY29tYmluYXRpb25zIHN0YXkgb3BlbjogYWxsIHRoZVxuICAgKiBzaGVldHMgd2l0aCBvbmUgc2VjdGlvbidzIGNlbGxzIG92ZXIgdGhlbSBpcyBhIHVzZWZ1bCB2aWV3LCBhbmQgc28gaXMgb25lXG4gICAqIHNoZWV0IGluc2lkZSB0aGUgd2hvbGUgY2xvdWQuIElnbm9yZWQgd2hpbGUge0BsaW5rIGdlbmVNYXBWb2x1bWV9IGlzIHNldCDigJRcbiAgICogaW50ZXJwb2xhdGluZyBhIHNpbmdsZSBzZWN0aW9uIGFsb25nIHogd291bGQgc21lYXIgb25lIHNsaWRlIHRocm91Z2ggdGhlXG4gICAqIHNwZWNpbWVuJ3Mgd2hvbGUgZGVwdGggYW5kIGNhbGwgaXQgYW4gZXN0aW1hdGUuXG4gICAqL1xuICBnZW5lTWFwU2VjdGlvbjogbnVtYmVyIHwgbnVsbDtcbiAgLyoqXG4gICAqIFNtb290aCB0aGUgcGVyLXNlY3Rpb24gZ2VuZSBtYXBzIGFsb25nIHogaW50byBhIGNvbnRpbnVvdXMgVk9MVU1FICgzRCkuXG4gICAqXG4gICAqIFRoZSBzaGVldHMgYXJlIHdoYXQgd2FzIG1lYXN1cmVkIOKAlCBvbmUgZmllbGQgcGVyIGltYWdlZCBzbGlkZSwgd2l0aCB0aGUgZ2Fwc1xuICAgKiBiZXR3ZWVuIHRoZW0gZW1wdHkuIFRoaXMgdHVybnMgdGhlbSBpbnRvIGFuIGVzdGltYXRlIGRlZmluZWQgYmV0d2VlbiB0aGVcbiAgICogc2xpZGVzLCB0aGUgc2FtZSBtb3ZlIHRoZSBjbHVzdGVyIGRlbnNpdHkgdm9sdW1lcyBtYWtlIGFuZCB3aXRoIHRoZSBzYW1lXG4gICAqIGNhdmVhdDogYSBmaWVsZCBtYXkgYmUgaW50ZXJwb2xhdGVkIGJldHdlZW4gc2VjdGlvbnMsIGluZGl2aWR1YWwgY2VsbHMgbWF5XG4gICAqIG5vdCwgYW5kIHRoZSByZXN1bHQgaXMgZHJhd24gYXMgYSB0cmFuc2x1Y2VudCBjbG91ZCBzbyBpdCBjYW5ub3QgYmUgbWlzdGFrZW5cbiAgICogZm9yIG1lYXN1cmVtZW50LlxuICAgKi9cbiAgZ2VuZU1hcFZvbHVtZTogYm9vbGVhbjtcbiAgLyoqIE11bHRpcGxpZXIgb24gdGhlIGdlbmUgbWFwJ3Mga2VybmVsIGJhbmR3aWR0aC4gKi9cbiAgZ2VuZU1hcFNtb290aGluZzogbnVtYmVyO1xuICAvKiogVGhlIGdlbmUgbWFwJ3Mgb3duIG9wYWNpdHkuIFNlcGFyYXRlIGZyb20ge0BsaW5rIG9wYWNpdHl9LCB3aGljaCBiZWxvbmdzIHRvXG4gICAqICB0aGUgbWFya2VyczogdHVybmluZyB0aGUgY2VsbHMgZG93biB0byByZWFkIHRoZSBmaWVsZCB1bmRlcm5lYXRoIG11c3Qgbm90XG4gICAqICB0dXJuIHRoZSBmaWVsZCBkb3duIHdpdGggdGhlbS4gKi9cbiAgZ2VuZU1hcE9wYWNpdHk6IG51bWJlcjtcbiAgLyoqXG4gICAqIERyYXcgY2VsbCBib3VuZGFyaWVzIChmb3IgYSBkYXRhc2V0IHdpdGggYHBvbHlnb25UaWxlc2Agb3IgYHBvbHlnb25zYCkuXG4gICAqXG4gICAqIE91dGxpbmVzIGFyZSBsZXZlbC1vZi1kZXRhaWw6IGNvYXJzZSByaW5ncyB3aGVuIHpvb21lZCBvdXQsIGV2ZXJ5IHZlcnRleCBhdCB0aGVcbiAgICogZmluZXN0IHpvb20sIGFuZCBub25lIGF0IGFsbCBvbmNlIGEgY2VsbCBpcyBhIGZldyBwaXhlbHMgd2lkZSDigJQgdGhlcmUgdGhlXG4gICAqIG9ic2VydmF0aW9uIG1hcmtlcnMgYWxyZWFkeSBkcmF3IGl0IGFzIGEgZG90LlxuICAgKlxuICAgKiBgbnVsbGAgKHRoZSBkZWZhdWx0KSBtZWFucyBhdXRvbWF0aWM6IG9uIGZvciBhbnkgZGF0YXNldCB0aGF0IGhhcyBvdXRsaW5lcywgc2luY2UgYVxuICAgKiBzZWdtZW50ZWQgY2VsbCBpcyBiZXR0ZXIgc2hvd24gYXMgaXRzIHNoYXBlIHRoYW4gYXMgYSBjaXJjbGUuIEEgYm9vbGVhbiBpcyB0aGVcbiAgICogdXNlcidzIGV4cGxpY2l0IGNob2ljZS5cbiAgICovXG4gIHNob3dDZWxsczogYm9vbGVhbiB8IG51bGw7XG4gIC8qKiBXaGljaCBib3VuZGFyeSBzZXQgKGBjZWxsYCwgYG51Y2xldXNgLCBvciBgYm90aGAg4oCUIGNlbGxzIGFzIHNldCBieVxuICAgKiAge0BsaW5rIGNlbGxEcmF3fSwgbnVjbGVpIG91dGxpbmVkIG92ZXIgdGhlbSk7IG51bGwgdGFrZXMgdGhlIGRhdGFzZXQncyBkZWZhdWx0LiAqL1xuICBjZWxsU2V0OiBzdHJpbmcgfCBudWxsO1xuICAvKipcbiAgICogV2hhdCBjb2xvdXJzIHRoZSBjZWxscyDigJQgWGVuaXVtIEV4cGxvcmVyJ3MgXCJDZWxsIENvbG9yXCI6IHRoZSBhY3RpdmUgZ3JvdXBcbiAgICogKHtAbGluayBjZWxsVHlwZUNvbHVtbn0pLCBvbmUgZ2VuZSdzIGV4cHJlc3Npb24gKHtAbGluayBjZWxsQ29sb3JHZW5lfSksIHRoZSBjZWxsJ3NcbiAgICogdHJhbnNjcmlwdCBkZW5zaXR5LCBvbmUgZmxhdCBjb2xvdXIsIG9yIGhvdyB0aGUgY2VsbCB3YXMgc2VnbWVudGVkLlxuICAgKi9cbiAgY2VsbENvbG9yTW9kZTogJ2dyb3VwJyB8ICdnZW5lJyB8ICd0cmFuc2NyaXB0RGVuc2l0eScgfCAnc2luZ2xlJyB8ICdzZWdtZW50YXRpb24nO1xuICBjZWxsQ29sb3JHZW5lOiBzdHJpbmcgfCBudWxsO1xuICAvKiogYCNycmdnYmJgIGZvciB7QGxpbmsgY2VsbENvbG9yTW9kZX0gYHNpbmdsZWAuICovXG4gIGNlbGxTaW5nbGVDb2xvcjogc3RyaW5nO1xuICAvKipcbiAgICogQ2F0ZWdvcmllcyBvZiB7QGxpbmsgY2VsbFR5cGVDb2x1bW59IHN3aXRjaGVkIG9mZiBpbiB0aGUgZ3JvdXBzIGxpc3Q6IHRoZWlyIGNlbGxzIGFyZVxuICAgKiBub3QgZHJhd24sIG5vciB0aGUgdHJhbnNjcmlwdHMgaW5zaWRlIHRoZW0uIENsZWFyZWQgd2hlbiB0aGUgZ3JvdXAgY29sdW1uIGNoYW5nZXMuXG4gICAqL1xuICBoaWRkZW5Hcm91cHM6IHN0cmluZ1tdO1xuICAvKiogRHJhdyB0aGUgdGlzc3VlIGltYWdlICh0aGUgSW1hZ2VzIHNlY3Rpb24ncyBzd2l0Y2gpLiAqL1xuICBzaG93SW1hZ2U6IGJvb2xlYW47XG4gIC8qKiBEcmF3IHRoZSBhbm5vdGF0aW9uIHJlZ2lvbnMgKHRoZSBBbm5vdGF0aW9ucyBzZWN0aW9uJ3Mgc3dpdGNoKS4gU2VsZWN0aW5nIGZyb20gdGhlbVxuICAgKiAgc3RpbGwgd29ya3Mgd2hpbGUgdGhleSBhcmUgaGlkZGVuLiAqL1xuICBzaG93QW5ub3RhdGlvbnM6IGJvb2xlYW47XG4gIC8qKiBGaWxsIHRoZSBjZWxscyB3aXRoIHRoZWlyIGNvbG91ciwgb3V0bGluZSB0aGVtLCBvciBib3RoLiAqL1xuICBjZWxsRHJhdzogJ2ZpbGwnIHwgJ291dGxpbmUnIHwgJ2JvdGgnO1xuICAvKiogT3BhY2l0eSBvZiB0aGUgY2VsbCBmaWxsIChvdXRsaW5lcyBkcmF3IG9wYXF1ZSkuICovXG4gIGNlbGxPcGFjaXR5OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgY2F0ZWdvcmljYWwgY29sdW1uIHRoYXQgc2F5cyB3aGF0IFRZUEUgZWFjaCBjZWxsIGlzOiBpdCBjb2xvdXJzIHRoZSBjZWxsc1xuICAgKiB3aGVuZXZlciBub3RoaW5nIGVsc2UgaXMgY2hvc2VuLCBhbmQgaXQgY29sb3VycyBldmVyeSB0cmFuc2NyaXB0IGJ5IHRoZSBjZWxsIGl0XG4gICAqIGZhbGxzIGluLiBOdWxsIHBpY2tzIHRoZSBkYXRhc2V0J3MgZmlyc3QgY2F0ZWdvcmljYWwgY29sdW1uLiBTd2FwcGluZyBiZXR3ZWVuIGFcbiAgICogcGlwZWxpbmUncyBjbHVzdGVyaW5nIGFuZCBhIGN1cmF0ZWQgYW5ub3RhdGlvbiBpcyBzd2FwcGluZyB0aGlzLlxuICAgKi9cbiAgY2VsbFR5cGVDb2x1bW46IHN0cmluZyB8IG51bGw7XG4gIC8qKiBHZW5lcyB3aG9zZSB0cmFuc2NyaXB0cyBhcmUgZHJhd24uICovXG4gIHRyYW5zY3JpcHRHZW5lczogc3RyaW5nW107XG4gIC8qKiBTZWxlY3RlZCBnZW5lcyBzd2l0Y2hlZCBvZmYgd2l0aCB0aGVpciBleWUgdG9nZ2xlIOKAlCBrZXB0IGluIHRoZSBsaXN0LCBub3QgZHJhd24uICovXG4gIHRyYW5zY3JpcHRIaWRkZW5HZW5lczogc3RyaW5nW107XG4gIC8qKiBQZXItZ2VuZSBtYXJrZXIgY29sb3VyIChgI3JyZ2diYmApOyBnZW5lcyBub3QgbGlzdGVkIHRha2UgdGhlIHBhbGV0dGUgYnkgcG9zaXRpb24uICovXG4gIHRyYW5zY3JpcHRHZW5lQ29sb3JzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKiogTmFtZWQgZ2VuZSBncm91cHMgKGUuZy4gbWFya2VyIGdlbmVzIHBlciBjZWxsIHR5cGUpIGZvciB0aGUgc2VsZWN0ZWQtZ2VuZXMgdHJlZS4gKi9cbiAgdHJhbnNjcmlwdEdlbmVHcm91cHM6IHsgbmFtZTogc3RyaW5nOyBnZW5lczogc3RyaW5nW10gfVtdO1xuICAvKipcbiAgICogRHJhdyBFVkVSWSBnZW5lJ3MgdHJhbnNjcmlwdHMgaW5zdGVhZCBvZiB7QGxpbmsgdHJhbnNjcmlwdEdlbmVzfTogZ3JvdXBlZCBpbnRvIGJpbnNcbiAgICogc2l6ZWQgYnkgaG93IG1hbnkgdHJhbnNjcmlwdHMgdGhleSBob2xkLCBmaW5lciBhcyB0aGUgY2FtZXJhIHpvb21zIGluLCBkb3duIHRvIG9uZVxuICAgKiBtYXJrZXIgcGVyIHRyYW5zY3JpcHQgb25jZSB0aG9zZSBmaXQge0BsaW5rIHRyYW5zY3JpcHRCdWRnZXR9LlxuICAgKi9cbiAgdHJhbnNjcmlwdEFsbEdlbmVzOiBib29sZWFuO1xuICAvKipcbiAgICogTW9zdCB0cmFuc2NyaXB0IG1hcmtlcnMgZHJhd24gYXQgb25jZS4gVGhlIGxldmVsIG9mIGRldGFpbCBpcyBjaG9zZW4gdG8gc3RheSB1bmRlciBpdCxcbiAgICogd2hpY2ggaXMgd2hhdCBrZWVwcyBwYW4gYW5kIHpvb20gcmVzcG9uc2l2ZSBob3dldmVyIGRlbnNlIHRoZSBkYXRhIGlzLlxuICAgKi9cbiAgdHJhbnNjcmlwdEJ1ZGdldDogbnVtYmVyO1xuICAvKipcbiAgICogSG93IHRyYW5zY3JpcHRzIGFyZSBkcmF3bjogYGNpcmNsZXNgIHNpemVkIGJ5IGhvdyBtYW55IHRyYW5zY3JpcHRzIGVhY2ggc3RhbmRzIGZvcixcbiAgICogYGdseXBoc2AgKG9uZSBpY29uIHNoYXBlIHBlciBnZW5lKSwgb3IgYSBgZGVuc2l0eWAgcmFzdGVyLiBDaXJjbGVzIGFuZCBnbHlwaHMgYXJlXG4gICAqIGxldmVsLW9mLWRldGFpbCDigJQgYWdncmVnYXRlZCB3aGVuIHpvb21lZCBvdXQsIG9uZSBwZXIgdHJhbnNjcmlwdCBhdCB0aGUgZmluZXN0IHpvb20uXG4gICAqL1xuICB0cmFuc2NyaXB0TW9kZTogJ29mZicgfCAnY2lyY2xlcycgfCAnZ2x5cGhzJyB8ICdkZW5zaXR5JztcbiAgLyoqIENvbG91ciB0cmFuc2NyaXB0cyBieSB0aGUgdHlwZSBvZiB0aGUgY2VsbCB0aGV5IGZhbGwgaW4sIG9yIGJ5IGdlbmUuICovXG4gIHRyYW5zY3JpcHRDb2xvckJ5OiAnY2VsbFR5cGUnIHwgJ2dlbmUnO1xuICAvKiogR2x5cGggcGVyIGdlbmUgZm9yIGBnbHlwaHNgIG1vZGU7IGdlbmVzIG5vdCBsaXN0ZWQgdGFrZSBvbmUgYnkgcG9zaXRpb24uICovXG4gIHRyYW5zY3JpcHRHbHlwaHM6IFJlY29yZDxzdHJpbmcsIFRyYW5zY3JpcHRHbHlwaE5hbWU+O1xuICAvKiogTXVsdGlwbGllciBvbiB0cmFuc2NyaXB0IG1hcmtlciBzaXplLiAqL1xuICB0cmFuc2NyaXB0U2NhbGU6IG51bWJlcjtcbiAgdHJhbnNjcmlwdE9wYWNpdHk6IG51bWJlcjtcbiAgLyoqIGBoaWdoYCBrZWVwcyBvbmx5IGNvbmZpZGVudGx5IGRlY29kZWQgdHJhbnNjcmlwdHMuICovXG4gIHRyYW5zY3JpcHRRdWFsaXR5OiAnaGlnaCcgfCAnYWxsJztcbiAgLyoqIE9wYWNpdHkgb2YgdGhlIHRyYW5zY3JpcHQgZGVuc2l0eSByYXN0ZXIuICovXG4gIGRlbnNpdHlPcGFjaXR5OiBudW1iZXI7XG4gIC8qKiBEZW5zaXR5IGJpbiBlZGdlIGluIG9ic2VydmF0aW9uIHVuaXRzICjCtW0pOiAxMCwgMjAsIDQwIG9yIDgwLiAqL1xuICBkZW5zaXR5QmluOiBudW1iZXI7XG4gIC8qKiBDb2xvdXIgd2luZG93IGluIHRyYW5zY3JpcHRzIHBlciB1bml0wrIgKMK1bcKyKTsgbnVsbCBkZXJpdmVzIGl0IGZyb20gdGhlIGRhdGEuICovXG4gIGRlbnNpdHlSYW5nZTogW251bWJlciwgbnVtYmVyXSB8IG51bGw7XG4gIC8qKiBDb2xvcm1hcCBmb3IgdGhlIGRlbnNpdHkgYmluczsgbnVsbCB1c2VzIEluZmVybm8uICovXG4gIGRlbnNpdHlDb2xvcm1hcDogQ29sb3JtYXBWYWx1ZSB8IG51bGw7XG59XG5cbi8qKiBUcmFuc2NyaXB0IGdseXBoIG5hbWVzIOKAlCBzZWUgYFRSQU5TQ1JJUFRfR0xZUEhTYCBpbiBgc3BhdGlhbC9zcGF0aWFsLXRpbGVzLnRzYC4gKi9cbmV4cG9ydCB0eXBlIFRyYW5zY3JpcHRHbHlwaE5hbWUgPVxuICB8ICdjaXJjbGUnIHwgJ3N0YXInIHwgJ3RyaWFuZ2xlJyB8ICdzcXVhcmUnIHwgJ2RpYW1vbmQnIHwgJ2Nyb3NzJyB8ICdoZXhhZ29uJ1xuICB8ICd0cmlhbmdsZS1kb3duJyB8ICdwZW50YWdvbicgfCAneCc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NQQVRJQUxfVklFVzogU3BhdGlhbFZpZXdTdGF0ZSA9IHtcbiAgY29sb3JCeTogbnVsbCxcbiAgcG9pbnRTY2FsZTogMSxcbiAgb3BhY2l0eTogMSxcbiAgbG9nU2NhbGU6IGZhbHNlLFxuICBwZXJjZW50aWxlQ2xpcDogWzAuMDEsIDAuOTldLFxuICBjb250aW51b3VzQ29sb3JtYXA6IG51bGwsXG4gIHNob3dWb2x1bWU6IHRydWUsXG4gIHZvbHVtZU9wYWNpdHk6IDAuNSxcbiAgc2hvd1BvaW50czogdHJ1ZSxcbiAgcG9pbnRTZWN0aW9uOiBudWxsLFxuICBkZW5zaXR5Vm9sdW1lOiBmYWxzZSxcbiAgZGVuc2l0eVNtb290aGluZzogMSxcbiAgZ2VuZU1hcDogZmFsc2UsXG4gIGdlbmVNYXBTZWN0aW9uOiBudWxsLFxuICBnZW5lTWFwVm9sdW1lOiBmYWxzZSxcbiAgZ2VuZU1hcFNtb290aGluZzogMSxcbiAgZ2VuZU1hcE9wYWNpdHk6IDAuODUsXG4gIHNob3dDZWxsczogbnVsbCxcbiAgY2VsbFNldDogbnVsbCxcbiAgY2VsbERyYXc6ICdmaWxsJyxcbiAgY2VsbE9wYWNpdHk6IDAuNTUsXG4gIGNlbGxUeXBlQ29sdW1uOiBudWxsLFxuICB0cmFuc2NyaXB0R2VuZXM6IFtdLFxuICB0cmFuc2NyaXB0SGlkZGVuR2VuZXM6IFtdLFxuICB0cmFuc2NyaXB0R2VuZUNvbG9yczoge30sXG4gIHRyYW5zY3JpcHRHZW5lR3JvdXBzOiBbXSxcbiAgdHJhbnNjcmlwdEFsbEdlbmVzOiBmYWxzZSxcbiAgdHJhbnNjcmlwdEJ1ZGdldDogMTAwXzAwMCxcbiAgdHJhbnNjcmlwdE1vZGU6ICdvZmYnLFxuICB0cmFuc2NyaXB0Q29sb3JCeTogJ2NlbGxUeXBlJyxcbiAgdHJhbnNjcmlwdEdseXBoczoge30sXG4gIHRyYW5zY3JpcHRTY2FsZTogMSxcbiAgdHJhbnNjcmlwdE9wYWNpdHk6IDAuOSxcbiAgdHJhbnNjcmlwdFF1YWxpdHk6ICdoaWdoJyxcbiAgZGVuc2l0eU9wYWNpdHk6IDAuOCxcbiAgZGVuc2l0eUJpbjogMTAsXG4gIGRlbnNpdHlSYW5nZTogbnVsbCxcbiAgZGVuc2l0eUNvbG9ybWFwOiBudWxsLFxuICBjZWxsQ29sb3JNb2RlOiAnZ3JvdXAnLFxuICBjZWxsQ29sb3JHZW5lOiBudWxsLFxuICBjZWxsU2luZ2xlQ29sb3I6ICcjNGZjM2Y3JyxcbiAgaGlkZGVuR3JvdXBzOiBbXSxcbiAgc2hvd0ltYWdlOiB0cnVlLFxuICBzaG93QW5ub3RhdGlvbnM6IHRydWUsXG59O1xuIl19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJhY3RzL2Rpc3BsYXktdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFvUkgsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQXFCO0lBQ3BELE9BQU8sRUFBRSxJQUFJO0lBQ2IsVUFBVSxFQUFFLENBQUM7SUFDYixPQUFPLEVBQUUsQ0FBQztJQUNWLFFBQVEsRUFBRSxLQUFLO0lBQ2YsY0FBYyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztJQUM1QixrQkFBa0IsRUFBRSxJQUFJO0lBQ3hCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFlBQVksRUFBRSxJQUFJO0lBQ2xCLGFBQWEsRUFBRSxLQUFLO0lBQ3BCLGdCQUFnQixFQUFFLENBQUM7SUFDbkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxjQUFjLEVBQUUsSUFBSTtJQUNwQixhQUFhLEVBQUUsS0FBSztJQUNwQixnQkFBZ0IsRUFBRSxDQUFDO0lBQ25CLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsT0FBTyxFQUFFLElBQUk7SUFDYixRQUFRLEVBQUUsTUFBTTtJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsSUFBSTtJQUNwQixlQUFlLEVBQUUsRUFBRTtJQUNuQixxQkFBcUIsRUFBRSxFQUFFO0lBQ3pCLG9CQUFvQixFQUFFLEVBQUU7SUFDeEIsb0JBQW9CLEVBQUUsRUFBRTtJQUN4QixrQkFBa0IsRUFBRSxLQUFLO0lBQ3pCLGdCQUFnQixFQUFFLE9BQU87SUFDekIsY0FBYyxFQUFFLEtBQUs7SUFDckIsaUJBQWlCLEVBQUUsVUFBVTtJQUM3QixnQkFBZ0IsRUFBRSxFQUFFO0lBQ3BCLGVBQWUsRUFBRSxDQUFDO0lBQ2xCLGlCQUFpQixFQUFFLEdBQUc7SUFDdEIsaUJBQWlCLEVBQUUsTUFBTTtJQUN6QixjQUFjLEVBQUUsR0FBRztJQUNuQixVQUFVLEVBQUUsRUFBRTtJQUNkLFlBQVksRUFBRSxJQUFJO0lBQ2xCLGVBQWUsRUFBRSxJQUFJO0lBQ3JCLGFBQWEsRUFBRSxPQUFPO0lBQ3RCLGFBQWEsRUFBRSxJQUFJO0lBQ25CLGVBQWUsRUFBRSxTQUFTO0lBQzFCLFlBQVksRUFBRSxFQUFFO0lBQ2hCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsZUFBZSxFQUFFLElBQUk7Q0FDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUHVibGljYXRpb24tY3JpdGljYWwgdHlwZXMgdGhhdCB3ZXJlIGBhbnlgIG9uIHRoZSBwdWJsaWMgY29udHJhY3RzXG4gKiAocmVmYWN0b3JpbmcgcGxhbiwgU3RlcCA2KS4gRGVsaWJlcmF0ZWx5IHBlcm1pc3NpdmUg4oCUIGV2ZXJ5IGZpZWxkIG9wdGlvbmFsIOKAlFxuICogc28gZXhpc3RpbmcgaG9zdHMgKHdoaWNoIHBhc3MgUHJpbWVORyBgVHJlZU5vZGVgcyBhbmQgcGxhaW4gb3B0aW9uIG9iamVjdHMpXG4gKiBrZWVwIGNvbXBpbGluZyB1bmNoYW5nZWQgd2hpbGUgY29uc3VtZXJzIGZpbmFsbHkgZ2V0IG5hbWVkIHNoYXBlcy5cbiAqL1xuXG4vKiogQSBjb2xvcm1hcCB2YWx1ZSBhcyBQbG90bHkgdW5kZXJzdGFuZHMgaXQ6IGEgYnVpbHQtaW4gc2NhbGUgbmFtZSAoZS5nLlxuICogICdWaXJpZGlzJykgb3IgYW4gaW5saW5lIGFycmF5IG9mIGBbc3RvcCwgY29sb3JdYCBwYWlycy4gKi9cbmV4cG9ydCB0eXBlIENvbG9ybWFwVmFsdWUgPSBzdHJpbmcgfCBBcnJheTxbbnVtYmVyLCBzdHJpbmddPjtcblxuLyoqIE9uZSBub2RlIG9mIHRoZSBjb2xvcm1hcCBzZWxlY3RvciB0cmVlIChzdHJ1Y3R1cmFsbHkgY29tcGF0aWJsZSB3aXRoIHRoZVxuICogIFByaW1lTkcgYFRyZWVOb2RlYHMgdGhlIGhvc3QgcGFzc2VzKTogZ3JvdXAgbm9kZXMgY2FycnkgYGNoaWxkcmVuYCwgbGVhZlxuICogIG5vZGVzIGNhcnJ5IHRoZSBzY2FsZSBpbiBgZGF0YS52YWx1ZWAgKCsgYSBwcmV2aWV3IGltYWdlIGluIGBkYXRhLnNyY2ApLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2xvcm1hcE5vZGUge1xuICBsYWJlbD86IHN0cmluZztcbiAgZGF0YT86IHsgdmFsdWU/OiBDb2xvcm1hcFZhbHVlOyBzcmM/OiBzdHJpbmcgfTtcbiAgY2hpbGRyZW4/OiBDb2xvcm1hcE5vZGVbXTtcbn1cblxuLyoqIE1hZ2ljLXdhbmQgcGl4ZWwtY29tcGFyaXNvbiBzcGFjZS4gKi9cbmV4cG9ydCB0eXBlIFdhbmRUeXBlID0gJ0dSQVknIHwgJ1JHQicgfCAnTEFCX0RJU1RBTkNFJztcblxuLyoqIE9wdGlvbnMgZm9yIHRoZSBtYWdpYy13YW5kIHRvb2wgKFF1UGF0aC1zdHlsZSkuICovXG5leHBvcnQgaW50ZXJmYWNlIElXYW5kT3B0aW9ucyB7XG4gIHR5cGU/OiBXYW5kVHlwZTtcbiAgLyoqIEdhdXNzaWFuIHNpZ21hIGFwcGxpZWQgdG8gdGhlIHBhdGNoIGJlZm9yZSB0aHJlc2hvbGRpbmcuICovXG4gIHNpZ21hPzogbnVtYmVyO1xuICAvKiogSGlnaGVyID0gc3RyaWN0ZXIgKHNtYWxsZXIgc2VsZWN0aW9uKSBmb3IgR1JBWS9SR0I7IGhpZ2hlciA9IGxvb3NlciBmb3JcbiAgICogIExBQl9ESVNUQU5DRSDigJQgbWF0Y2hlcyBRdVBhdGguICovXG4gIHNlbnNpdGl2aXR5PzogbnVtYmVyO1xuICAvKiogU3F1YXJlIHBhdGNoIHNpemUgaW4gcGl4ZWxzIChtdXN0IGJlIG9kZCkuICovXG4gIHBhdGNoU2l6ZT86IG51bWJlcjtcbiAgLyoqIFdoZW4gdHJ1ZSwgc2tpcCBibHVyL3RocmVzaG9sZCBhbmQgZmxvb2QtZmlsbCBhdCBleGFjdC1tYXRjaFxuICAgKiAgKENtZC9DdHJsLWNsaWNrIGluIFF1UGF0aCkuICovXG4gIHNpbXBsZU1vZGU/OiBib29sZWFuO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgdGhlIGJydXNoIHJlZ2lvbiB0b29sIChRdVBhdGgtc3R5bGUpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQnJ1c2hPcHRpb25zIHtcbiAgLyoqIEJydXNoIGRpYW1ldGVyIGluIG1hdHJpeCAoaW1hZ2UpIHBpeGVscy4gKi9cbiAgc2l6ZT86IG51bWJlcjtcbiAgLyoqXG4gICAqIFBhaW50IGFzIG9uZSBjbGFzczogbmV3IHJlZ2lvbnMgdGFrZSB0aGlzIGxhYmVsLCBhbmQgYSBzdHJva2Ugb25seSBleHRlbmRzXG4gICAqIG9yIG1lcmdlcyByZWdpb25zIHdpdGggdGhlIHNhbWUgbGFiZWwuIFVuc2V0ID0gdGhlIHBsYWluIGJydXNoIChsYWJlbFxuICAgKiBgJ1JlZ2lvbidgLCBleHRlbmRzIGFueSByZWdpb24pLiBgc2V0QnJ1c2hNb2RlKHRydWUsIOKApilgIHNldHMgdGhlIGNsYXNzIGluXG4gICAqIGZ1bGw7IGBzZXRCcnVzaE9wdGlvbnNgIGNoYW5nZXMgaXQgb25seSB3aGVuIGBsYWJlbGAgb3IgYGNvbG9yYCBpcyBwYXNzZWQsXG4gICAqIHNvIGEgc2l6ZS1vbmx5IHVwZGF0ZSBrZWVwcyBpdC5cbiAgICovXG4gIGxhYmVsPzogc3RyaW5nO1xuICAvKiogQ29sb3VyIGZvciB0aGUgcGFpbnRlZCByZWdpb25zIGluc3RlYWQgb2YgdGhlIHNoYXBlIGNvbG91ci4gS2VwdCBhZ2FpbnN0IHByZXNldCByZS1hcHBseS4gKi9cbiAgY29sb3I/OiBzdHJpbmc7XG59XG5cbi8qKiBXaGF0IGRyaXZlcyBwb2ludCBjb2xvdXIgaW4gdGhlIHNwYXRpYWwtb21pY3MgbW9kZTogYW4gYW5ub3RhdGlvbiBjb2x1bW5cbiAqICBmcm9tIHRoZSBkYXRhc2V0LCBvciBvbmUgZmVhdHVyZSAoZ2VuZSkgdmVjdG9yIGZldGNoZWQgb24gZGVtYW5kLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsQ29sb3JCeSB7XG4gIGtpbmQ6ICdjb2x1bW4nIHwgJ2ZlYXR1cmUnO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKiBEaXNwbGF5IHN0YXRlIGZvciB0aGUgc3BhdGlhbC1vbWljcyBwbG90IG1vZGUuIExpdmVzIGluIGBWaXN1YWxpemVyU3RvcmVgXG4gKiAgYWxvbmdzaWRlIHRoZSBjb2xvcm1hcC9jaGFubmVsIHN0YXRlIHNvIHRoZSByZW5kZXJlciByZWFjdHMgdG8gZWRpdHMgdGhlXG4gKiAgc2FtZSB3YXkgaXQgZG9lcyBmb3IgYW4gaW1hZ2UuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxWaWV3U3RhdGUge1xuICAvKiogQ29sb3VyIHNvdXJjZTsgYG51bGxgIHJlbmRlcnMgZXZlcnkgb2JzZXJ2YXRpb24gaW4gb25lIG5ldXRyYWwgY29sb3VyXG4gICAqICAodXNlZnVsIG9uIGl0cyBvd24g4oCUIGl0IHNob3dzIHdoZXJlIHRoZSB0aXNzdWUgYWN0dWFsbHkgaXMpLiAqL1xuICBjb2xvckJ5OiBTcGF0aWFsQ29sb3JCeSB8IG51bGw7XG4gIC8qKiBNdWx0aXBsaWVyIG9uIHRoZSBkYXRhc2V0J3MgcGh5c2ljYWwgbWFya2VyIHNpemUuIDEgPSB0cnVlIHNpemUsIHdoaWNoIGZvclxuICAgKiAgYSA1NSDCtW0gVmlzaXVtIHNwb3QgaXMgY29ycmVjdCBidXQgY2FuIGJlIGludmlzaWJsZSB3aGVuIHpvb21lZCBvdXQuICovXG4gIHBvaW50U2NhbGU6IG51bWJlcjtcbiAgLyoqIEFscGhhIGZvciBwb2ludHMgdGhhdCBhcmUgbm90IG11dGVkLiAqL1xuICBvcGFjaXR5OiBudW1iZXI7XG4gIC8qKiBMb2ctc2NhbGUgY29udGludW91cyB2YWx1ZXMgYmVmb3JlIG1hcHBpbmcgdGhlbSBvbnRvIHRoZSBjb2xvcm1hcC4gU2VlZGVkXG4gICAqICBmcm9tIHRoZSBjb2x1bW4ncyBgbG9nU2NhbGVIaW50YCDigJQgY291bnQgZGF0YSBuZWVkcyBpdC4gKi9cbiAgbG9nU2NhbGU6IGJvb2xlYW47XG4gIC8qKiBQZXJjZW50aWxlIGNsaXAgZm9yIHRoZSBjb250cmFzdCB3aW5kb3cgYXMgYFtsbywgaGldYCBmcmFjdGlvbnMsIHNvIGFcbiAgICogIGhhbmRmdWwgb2Ygc2F0dXJhdGVkIG9ic2VydmF0aW9ucyBkb24ndCBmbGF0dGVuIHRoZSByZXN0LiAqL1xuICAgcGVyY2VudGlsZUNsaXA6IFtudW1iZXIsIG51bWJlcl07XG4gIC8qKlxuICAgKiBDb2xvcm1hcCBmb3IgQ09OVElOVU9VUyBzcGF0aWFsIGNvbG91cmluZyDigJQgYSBnZW5lLCBhIG51bWVyaWMgY29sdW1uIOKAlCBhcyBhXG4gICAqIHtAbGluayBDb2xvcm1hcFZhbHVlfSwgdGhlIHNhbWUgc2hhcGUgdGhlIGRpc3BsYXkgY29sb3JtYXAgY2FycmllczogYSBzY2FsZVxuICAgKiBOQU1FIGZvciB0aGUgYnVpbHQtaW5zLCBvciBhbiBpbmxpbmUgYFtzdG9wLCBjb2xvdXJdYCBhcnJheSBmb3IgdGhlIHJlc3QuXG4gICAqIE51bGwgZm9sbG93cyB0aGUgZGlzcGxheSBjb2xvcm1hcC5cbiAgICpcbiAgICogSXRzIG93biBzZXR0aW5nIGJlY2F1c2UgdGhlIGRpc3BsYXkgY29sb3JtYXAgYmVsb25ncyB0byB0aGUgdGlzc3VlIGltYWdlIGFuZFxuICAgKiBpcyB1c3VhbGx5IGEgZ3JleSByYW1wLCB3aGljaCBpcyB0aGUgd3JvbmcgdGhpbmcgdG8gcmVhZCBhIG1lYXN1cmVtZW50XG4gICAqIHRocm91Z2g6IGdyZXkgb3ZlciBncmV5IGNhbm5vdCBiZSB0b2xkIGFwYXJ0IGZyb20gdGhlIGFuYXRvbXkuIEZvbGxvd2luZyBpdFxuICAgKiAod2l0aCBhIFZpcmlkaXMgZmFsbGJhY2sgZm9yIGV4YWN0bHkgdGhhdCBjYXNlKSBpcyBhIHJlYXNvbmFibGUgZGVmYXVsdCBhbmQgYVxuICAgKiBwb29yIGNlaWxpbmcsIHNpbmNlIHdoaWNoIGdyYWRpZW50IHJlYWRzIGJlc3QgaXMgYSBqdWRnZW1lbnQgYWJvdXQgdGhlIGRhdGEuXG4gICAqXG4gICAqIE9uZSBzZXR0aW5nIGZvciB0aGUgbWFya2VycywgdGhlIDJEIGdlbmUgbWFwIGFuZCB0aGUgM0QgZ2VuZSBtYXAgdG9nZXRoZXIsIHNvXG4gICAqIHRoZSBmaWVsZCB1bmRlciB0aGUgY2VsbHMgYW5kIHRoZSBjZWxscyBvdmVyIGl0IGNhbm5vdCBkaXNhZ3JlZSBhYm91dCB3aGF0IGFcbiAgICogY29sb3VyIG1lYW5zIOKAlCBhbmQgdGhlIHBhbmVsJ3Mgb3duIGNvbG91ciBiYXIgaXMgYnVpbHQgZnJvbSBpdCB0b28uXG4gICAqL1xuICBjb250aW51b3VzQ29sb3JtYXA6IENvbG9ybWFwVmFsdWUgfCBudWxsO1xuICAvKipcbiAgICogV2hhdCB0aGUgM0Qgc2NlbmUgZHJhd3MuIFRoZSB0aHJlZSB0aGluZ3MgaW4gaXQg4oCUIHRoZSByZWZlcmVuY2Ugdm9sdW1lLCB0aGVcbiAgICogb2JzZXJ2YXRpb24gY2xvdWQgYW5kIHRoZSBjbHVzdGVyIGRlbnNpdHkgdm9sdW1lcyDigJQgb2NjdXB5IHRoZSBzYW1lIHNwYWNlLCBzb1xuICAgKiBhbnkgdHdvIG9mIHRoZW0gaGlkZSBlYWNoIG90aGVyIHRvIHNvbWUgZGVncmVlLiBUaGVzZSBhcmUgaW5kZXBlbmRlbnQgYmVjYXVzZVxuICAgKiB0aGUgdXNlZnVsIHZpZXdzIGFyZSB0aGUgY29tYmluYXRpb25zOiB0aGUgdm9sdW1lcyBhbG9uZSB0byByZWFkIGFuIGVzdGltYXRlZFxuICAgKiBkaXN0cmlidXRpb24sIG9uZSBzZWN0aW9uJ3MgY2VsbHMgb3ZlciB0aGVtIHRvIGNoZWNrIHRoYXQgZXN0aW1hdGUgYWdhaW5zdCB0aGVcbiAgICogbWVhc3VyZW1lbnQsIHRoZSBhbmF0b215IGFsb25lIHRvIGZpbmQgYSBsYW5kbWFyay5cbiAgICpcbiAgICogVmlzaWJpbGl0eSBvbmx5IOKAlCB0aGUgbGF5ZXJzIHN0YXkgYnVpbHQsIHNvIHRvZ2dsaW5nIG9uZSBiYWNrIG9uIGlzIGltbWVkaWF0ZVxuICAgKiBhbmQgZG9lcyBub3QgcmUtcnVuIGEgcmFzdGVyaXNhdGlvbi4ge0BsaW5rIGRlbnNpdHlWb2x1bWV9IGlzIHRoZSBleGNlcHRpb24gYW5kXG4gICAqIGdlbnVpbmVseSBnYXRlcyBjb25zdHJ1Y3Rpb24sIGJlY2F1c2UgYnVpbGRpbmcgc2l4IHZvbHVtZXMgaXMgbm90IGZyZWUuXG4gICAqL1xuICBzaG93Vm9sdW1lOiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIHJlZmVyZW5jZSB2b2x1bWUncyBvcGFjaXR5LlxuICAgKlxuICAgKiBJdHMgb3duLCBub3Qge0BsaW5rIG9wYWNpdHl9ICh3aGljaCBiZWxvbmdzIHRvIHRoZSBtYXJrZXJzKTogdGhlIHZvbHVtZSBpcyBhXG4gICAqIEJBQ0tEUk9QLCBhbmQgcmVhZGluZyB0aGUgY2xvdWQgb3IgYSBkZW5zaXR5IGZpZWxkIHRocm91Z2ggaXQgbWVhbnMgdHVybmluZ1xuICAgKiB0aGUgYW5hdG9teSBkb3duIHdpdGhvdXQgdG91Y2hpbmcgdGhlIGRhdGEgZHJhd24gb3ZlciBpdC4gUmFuZ2VzIGxvd2VyIHRoYW5cbiAgICogdGhlIG1hcmtlcnMnIHNsaWRlciBmb3IgdGhlIHNhbWUgcmVhc29uIOKAlCBhIGZhaW50IGFuYXRvbWljYWwgaGludCBpcyBhIHVzZWZ1bFxuICAgKiBzZXR0aW5nIGZvciBhIGJhY2tkcm9wIGFuZCBhIHVzZWxlc3Mgb25lIGZvciB0aGUgbWVhc3VyZW1lbnQuXG4gICAqL1xuICB2b2x1bWVPcGFjaXR5OiBudW1iZXI7XG4gIC8qKiBEcmF3IHRoZSBvYnNlcnZhdGlvbiBtYXJrZXJzIOKAlCB0aGUgM0QgY2xvdWQsIG9yIHRoZSAyRCBjaXJjbGVzLiBJbiAyRCB0aGV5IGFsc29cbiAgICogIHN0YW5kIGluIGZvciBjZWxscyB0b28gc21hbGwgb24gc2NyZWVuIHRvIG91dGxpbmUuICovXG4gIHNob3dQb2ludHM6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBSZXN0cmljdCB0aGUgY2xvdWQgdG8gT05FIGltYWdlZCBzZWN0aW9uLCBieSBpbmRleCBpbnRvIHRoZSBkYXRhc2V0J3Mgc2FtcGxlZFxuICAgKiBzZWN0aW9uczsgbnVsbCBkcmF3cyBldmVyeSBzZWN0aW9uLlxuICAgKlxuICAgKiBUaGUgd2hvbGUgY2xvdWQgaXMgYSBzdGFjayBvZiBkaXNjcyB0aGF0IGhpZGVzIHdoYXRldmVyIGlzIGRyYXduIGJldHdlZW4gdGhlbS5cbiAgICogT25lIHNlY3Rpb24gYXQgYSB0aW1lIGlzIHRoZSB2aWV3IHRoYXQgYW5zd2VycyBcImRvZXMgdGhlIGVzdGltYXRlZCBmaWVsZFxuICAgKiBhY3R1YWxseSBmb2xsb3cgdGhlIGNlbGxzIEkgbWVhc3VyZWRcIiDigJQgYW5kIGl0IGlzIG9ubHkgb2ZmZXJlZCBmb3IgZGF0YSB0aGF0XG4gICAqIHJlYWxseSBpcyBzZWN0aW9uZWQgKHNlZSBgc2FtcGxlZFNlY3Rpb25zYCkuXG4gICAqL1xuICBwb2ludFNlY3Rpb246IG51bWJlciB8IG51bGw7XG4gIC8qKlxuICAgKiBEcmF3IGVhY2ggY2x1c3RlciBhcyBhIHRyYW5zbHVjZW50IERFTlNJVFkgdm9sdW1lIGFsb25nc2lkZSB0aGUgM0QgY2xvdWQuXG4gICAqXG4gICAqIFNlcmlhbCBzZWN0aW9ucyBodW5kcmVkcyBvZiBtaWNyb25zIGFwYXJ0IG1ha2UgYSBjbG91ZCBoYXJkIHRvIHJlYWQgYXMgYW5cbiAgICogYW5hdG9taWNhbCBkaXN0cmlidXRpb24g4oCUIHRoZSBleWUgY2Fubm90IGludGVncmF0ZSBkaXNjcyBpbnRvIGEgc2hhcGUuIEFcbiAgICogZGVuc2l0eSBmaWVsZCBjYW4gYmUgZXN0aW1hdGVkIGJldHdlZW4gdGhlIGltYWdlZCBwbGFuZXMgKGEgY29udGludW91c1xuICAgKiBlc3RpbWF0ZSwgdW5saWtlIGluZGl2aWR1YWwgY2VsbHMsIHdoaWNoIGhhdmUgbm8gY29ycmVzcG9uZGVuY2UgdG9cbiAgICogaW50ZXJwb2xhdGUgYWxvbmcpIGFuZCByZW5kZXJzIGFzIGEgY2xvdWQgdGhhdCByZWFkcyBhcyBhbiBlc3RpbWF0ZS5cbiAgICovXG4gIGRlbnNpdHlWb2x1bWU6IGJvb2xlYW47XG4gIC8qKiBNdWx0aXBsaWVyIG9uIHRoZSBkZWZhdWx0IGtlcm5lbCBiYW5kd2lkdGguIEFib3ZlIDEgaXMgc21vb3RoZXIgYW5kIGxlc3NcbiAgICogIGNvbW1pdHRhbDsgYmVsb3cgMSBleHBvc2VzIHRoZSBpbmRpdmlkdWFsIHNlY3Rpb25zLiAqL1xuICBkZW5zaXR5U21vb3RoaW5nOiBudW1iZXI7XG4gIC8qKlxuICAgKiBEcmF3IHRoZSBhY3RpdmUgR0VORSBhcyBhIGNvbnRpbnVvdXMgZmllbGQgdW5kZXIgdGhlIG9ic2VydmF0aW9ucyAoMkQpLlxuICAgKlxuICAgKiBDb2xvdXJpbmcgdGhlIG1hcmtlcnMgYnkgYSBnZW5lIHNheXMgd2hpY2ggY2VsbHMgZXhwcmVzcyBpdDsgaXQgY2Fubm90IHNheVxuICAgKiB3aGVyZSwgYmVjYXVzZSB0aGUgZXllIHdpbGwgbm90IGludGVncmF0ZSB0aG91c2FuZHMgb2YgZG90cyBpbnRvIGEgdGVycml0b3J5LlxuICAgKiBUaGUgZmllbGQgaXMgYW4gZXN0aW1hdGUg4oCUIGEga2VybmVsLXdlaWdodGVkIG1lYW4gcGVyIGNlbGwsIHRyYW5zcGFyZW50IHdoZXJlXG4gICAqIG5vIGNlbGwgd2FzIG1lYXN1cmVkIOKAlCBhbmQgaXQgaXMgZHJhd24gYmVuZWF0aCB0aGUgY2VsbHMsIG5vdCBpbnN0ZWFkIG9mIHRoZW0sXG4gICAqIHNvIHRoZSBtZWFzdXJlbWVudCBzdGF5cyBvbiBzY3JlZW4gbmV4dCB0byB0aGUgaW50ZXJwb2xhdGlvbi5cbiAgICpcbiAgICogSWdub3JlZCB1bmxlc3MgdGhlIGNvbG91ciBzb3VyY2UgaXMgYSBnZW5lOiB0aGVyZSBpcyBub3RoaW5nIGVsc2UgdG8gbWFwLlxuICAgKi9cbiAgZ2VuZU1hcDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFJlc3RyaWN0IHRoZSAzRCBnZW5lIG1hcCB0byBPTkUgaW1hZ2VkIHNlY3Rpb24sIGJ5IGluZGV4IGludG8gdGhlIGRhdGFzZXQnc1xuICAgKiBzYW1wbGVkIHNlY3Rpb25zOyBudWxsIGRyYXdzIGV2ZXJ5IHNlY3Rpb24ncyBzaGVldC5cbiAgICpcbiAgICogU2VwYXJhdGUgZnJvbSB7QGxpbmsgcG9pbnRTZWN0aW9ufSBzbyB0aGUgY29tYmluYXRpb25zIHN0YXkgb3BlbjogYWxsIHRoZVxuICAgKiBzaGVldHMgd2l0aCBvbmUgc2VjdGlvbidzIGNlbGxzIG92ZXIgdGhlbSBpcyBhIHVzZWZ1bCB2aWV3LCBhbmQgc28gaXMgb25lXG4gICAqIHNoZWV0IGluc2lkZSB0aGUgd2hvbGUgY2xvdWQuIElnbm9yZWQgd2hpbGUge0BsaW5rIGdlbmVNYXBWb2x1bWV9IGlzIHNldCDigJRcbiAgICogaW50ZXJwb2xhdGluZyBhIHNpbmdsZSBzZWN0aW9uIGFsb25nIHogd291bGQgc21lYXIgb25lIHNsaWRlIHRocm91Z2ggdGhlXG4gICAqIHNwZWNpbWVuJ3Mgd2hvbGUgZGVwdGggYW5kIGNhbGwgaXQgYW4gZXN0aW1hdGUuXG4gICAqL1xuICBnZW5lTWFwU2VjdGlvbjogbnVtYmVyIHwgbnVsbDtcbiAgLyoqXG4gICAqIFNtb290aCB0aGUgcGVyLXNlY3Rpb24gZ2VuZSBtYXBzIGFsb25nIHogaW50byBhIGNvbnRpbnVvdXMgVk9MVU1FICgzRCkuXG4gICAqXG4gICAqIFRoZSBzaGVldHMgYXJlIHdoYXQgd2FzIG1lYXN1cmVkIOKAlCBvbmUgZmllbGQgcGVyIGltYWdlZCBzbGlkZSwgd2l0aCB0aGUgZ2Fwc1xuICAgKiBiZXR3ZWVuIHRoZW0gZW1wdHkuIFRoaXMgdHVybnMgdGhlbSBpbnRvIGFuIGVzdGltYXRlIGRlZmluZWQgYmV0d2VlbiB0aGVcbiAgICogc2xpZGVzLCB0aGUgc2FtZSBtb3ZlIHRoZSBjbHVzdGVyIGRlbnNpdHkgdm9sdW1lcyBtYWtlIGFuZCB3aXRoIHRoZSBzYW1lXG4gICAqIGNhdmVhdDogYSBmaWVsZCBtYXkgYmUgaW50ZXJwb2xhdGVkIGJldHdlZW4gc2VjdGlvbnMsIGluZGl2aWR1YWwgY2VsbHMgbWF5XG4gICAqIG5vdCwgYW5kIHRoZSByZXN1bHQgaXMgZHJhd24gYXMgYSB0cmFuc2x1Y2VudCBjbG91ZCBzbyBpdCBjYW5ub3QgYmUgbWlzdGFrZW5cbiAgICogZm9yIG1lYXN1cmVtZW50LlxuICAgKi9cbiAgZ2VuZU1hcFZvbHVtZTogYm9vbGVhbjtcbiAgLyoqIE11bHRpcGxpZXIgb24gdGhlIGdlbmUgbWFwJ3Mga2VybmVsIGJhbmR3aWR0aC4gKi9cbiAgZ2VuZU1hcFNtb290aGluZzogbnVtYmVyO1xuICAvKiogVGhlIGdlbmUgbWFwJ3Mgb3duIG9wYWNpdHkuIFNlcGFyYXRlIGZyb20ge0BsaW5rIG9wYWNpdHl9LCB3aGljaCBiZWxvbmdzIHRvXG4gICAqICB0aGUgbWFya2VyczogdHVybmluZyB0aGUgY2VsbHMgZG93biB0byByZWFkIHRoZSBmaWVsZCB1bmRlcm5lYXRoIG11c3Qgbm90XG4gICAqICB0dXJuIHRoZSBmaWVsZCBkb3duIHdpdGggdGhlbS4gKi9cbiAgZ2VuZU1hcE9wYWNpdHk6IG51bWJlcjtcbiAgLyoqXG4gICAqIERyYXcgY2VsbCBib3VuZGFyaWVzIChmb3IgYSBkYXRhc2V0IHdpdGggYHBvbHlnb25UaWxlc2Agb3IgYHBvbHlnb25zYCkuXG4gICAqXG4gICAqIE91dGxpbmVzIGFyZSBsZXZlbC1vZi1kZXRhaWw6IGNvYXJzZSByaW5ncyB3aGVuIHpvb21lZCBvdXQsIGV2ZXJ5IHZlcnRleCBhdCB0aGVcbiAgICogZmluZXN0IHpvb20sIGFuZCBub25lIGF0IGFsbCBvbmNlIGEgY2VsbCBpcyBhIGZldyBwaXhlbHMgd2lkZSDigJQgdGhlcmUgdGhlXG4gICAqIG9ic2VydmF0aW9uIG1hcmtlcnMgYWxyZWFkeSBkcmF3IGl0IGFzIGEgZG90LlxuICAgKlxuICAgKiBgbnVsbGAgKHRoZSBkZWZhdWx0KSBtZWFucyBhdXRvbWF0aWM6IG9uIGZvciBhbnkgZGF0YXNldCB0aGF0IGhhcyBvdXRsaW5lcywgc2luY2UgYVxuICAgKiBzZWdtZW50ZWQgY2VsbCBpcyBiZXR0ZXIgc2hvd24gYXMgaXRzIHNoYXBlIHRoYW4gYXMgYSBjaXJjbGUuIEEgYm9vbGVhbiBpcyB0aGVcbiAgICogdXNlcidzIGV4cGxpY2l0IGNob2ljZS5cbiAgICovXG4gIHNob3dDZWxsczogYm9vbGVhbiB8IG51bGw7XG4gIC8qKiBXaGljaCBib3VuZGFyeSBzZXQgKGBjZWxsYCwgYG51Y2xldXNgLCBvciBgYm90aGAg4oCUIGNlbGxzIGFzIHNldCBieVxuICAgKiAge0BsaW5rIGNlbGxEcmF3fSwgbnVjbGVpIG91dGxpbmVkIG92ZXIgdGhlbSk7IG51bGwgdGFrZXMgdGhlIGRhdGFzZXQncyBkZWZhdWx0LiAqL1xuICBjZWxsU2V0OiBzdHJpbmcgfCBudWxsO1xuICAvKipcbiAgICogV2hhdCBjb2xvdXJzIHRoZSBjZWxscyDigJQgWGVuaXVtIEV4cGxvcmVyJ3MgXCJDZWxsIENvbG9yXCI6IHRoZSBhY3RpdmUgZ3JvdXBcbiAgICogKHtAbGluayBjZWxsVHlwZUNvbHVtbn0pLCBvbmUgZ2VuZSdzIGV4cHJlc3Npb24gKHtAbGluayBjZWxsQ29sb3JHZW5lfSksIHRoZSBjZWxsJ3NcbiAgICogdHJhbnNjcmlwdCBkZW5zaXR5LCBvbmUgZmxhdCBjb2xvdXIsIG9yIGhvdyB0aGUgY2VsbCB3YXMgc2VnbWVudGVkLlxuICAgKi9cbiAgY2VsbENvbG9yTW9kZTogJ2dyb3VwJyB8ICdnZW5lJyB8ICd0cmFuc2NyaXB0RGVuc2l0eScgfCAnc2luZ2xlJyB8ICdzZWdtZW50YXRpb24nO1xuICBjZWxsQ29sb3JHZW5lOiBzdHJpbmcgfCBudWxsO1xuICAvKiogYCNycmdnYmJgIGZvciB7QGxpbmsgY2VsbENvbG9yTW9kZX0gYHNpbmdsZWAuICovXG4gIGNlbGxTaW5nbGVDb2xvcjogc3RyaW5nO1xuICAvKipcbiAgICogQ2F0ZWdvcmllcyBvZiB7QGxpbmsgY2VsbFR5cGVDb2x1bW59IHN3aXRjaGVkIG9mZiBpbiB0aGUgZ3JvdXBzIGxpc3Q6IHRoZWlyIGNlbGxzIGFyZVxuICAgKiBub3QgZHJhd24sIG5vciB0aGUgdHJhbnNjcmlwdHMgaW5zaWRlIHRoZW0uIENsZWFyZWQgd2hlbiB0aGUgZ3JvdXAgY29sdW1uIGNoYW5nZXMuXG4gICAqL1xuICBoaWRkZW5Hcm91cHM6IHN0cmluZ1tdO1xuICAvKiogRHJhdyB0aGUgdGlzc3VlIGltYWdlICh0aGUgSW1hZ2VzIHNlY3Rpb24ncyBzd2l0Y2gpLiAqL1xuICBzaG93SW1hZ2U6IGJvb2xlYW47XG4gIC8qKiBEcmF3IHRoZSBhbm5vdGF0aW9uIHJlZ2lvbnMgKHRoZSBBbm5vdGF0aW9ucyBzZWN0aW9uJ3Mgc3dpdGNoKS4gU2VsZWN0aW5nIGZyb20gdGhlbVxuICAgKiAgc3RpbGwgd29ya3Mgd2hpbGUgdGhleSBhcmUgaGlkZGVuLiAqL1xuICBzaG93QW5ub3RhdGlvbnM6IGJvb2xlYW47XG4gIC8qKiBGaWxsIHRoZSBjZWxscyB3aXRoIHRoZWlyIGNvbG91ciwgb3V0bGluZSB0aGVtLCBvciBib3RoLiAqL1xuICBjZWxsRHJhdzogJ2ZpbGwnIHwgJ291dGxpbmUnIHwgJ2JvdGgnO1xuICAvKiogT3BhY2l0eSBvZiB0aGUgY2VsbCBmaWxsIChvdXRsaW5lcyBkcmF3IG9wYXF1ZSkuICovXG4gIGNlbGxPcGFjaXR5OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgY2F0ZWdvcmljYWwgY29sdW1uIHRoYXQgc2F5cyB3aGF0IFRZUEUgZWFjaCBjZWxsIGlzOiBpdCBjb2xvdXJzIHRoZSBjZWxsc1xuICAgKiB3aGVuZXZlciBub3RoaW5nIGVsc2UgaXMgY2hvc2VuLCBhbmQgaXQgY29sb3VycyBldmVyeSB0cmFuc2NyaXB0IGJ5IHRoZSBjZWxsIGl0XG4gICAqIGZhbGxzIGluLiBOdWxsIHBpY2tzIHRoZSBkYXRhc2V0J3MgZmlyc3QgY2F0ZWdvcmljYWwgY29sdW1uLiBTd2FwcGluZyBiZXR3ZWVuIGFcbiAgICogcGlwZWxpbmUncyBjbHVzdGVyaW5nIGFuZCBhIGN1cmF0ZWQgYW5ub3RhdGlvbiBpcyBzd2FwcGluZyB0aGlzLlxuICAgKi9cbiAgY2VsbFR5cGVDb2x1bW46IHN0cmluZyB8IG51bGw7XG4gIC8qKiBHZW5lcyB3aG9zZSB0cmFuc2NyaXB0cyBhcmUgZHJhd24uICovXG4gIHRyYW5zY3JpcHRHZW5lczogc3RyaW5nW107XG4gIC8qKiBTZWxlY3RlZCBnZW5lcyBzd2l0Y2hlZCBvZmYgd2l0aCB0aGVpciBleWUgdG9nZ2xlIOKAlCBrZXB0IGluIHRoZSBsaXN0LCBub3QgZHJhd24uICovXG4gIHRyYW5zY3JpcHRIaWRkZW5HZW5lczogc3RyaW5nW107XG4gIC8qKiBQZXItZ2VuZSBtYXJrZXIgY29sb3VyIChgI3JyZ2diYmApOyBnZW5lcyBub3QgbGlzdGVkIHRha2UgdGhlIHBhbGV0dGUgYnkgcG9zaXRpb24uICovXG4gIHRyYW5zY3JpcHRHZW5lQ29sb3JzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKiogTmFtZWQgZ2VuZSBncm91cHMgKGUuZy4gbWFya2VyIGdlbmVzIHBlciBjZWxsIHR5cGUpIGZvciB0aGUgc2VsZWN0ZWQtZ2VuZXMgdHJlZS4gKi9cbiAgdHJhbnNjcmlwdEdlbmVHcm91cHM6IHsgbmFtZTogc3RyaW5nOyBnZW5lczogc3RyaW5nW10gfVtdO1xuICAvKipcbiAgICogRHJhdyBFVkVSWSBnZW5lJ3MgdHJhbnNjcmlwdHMgaW5zdGVhZCBvZiB7QGxpbmsgdHJhbnNjcmlwdEdlbmVzfTogZ3JvdXBlZCBpbnRvIGJpbnNcbiAgICogc2l6ZWQgYnkgaG93IG1hbnkgdHJhbnNjcmlwdHMgdGhleSBob2xkLCBmaW5lciBhcyB0aGUgY2FtZXJhIHpvb21zIGluLCBkb3duIHRvIG9uZVxuICAgKiBtYXJrZXIgcGVyIHRyYW5zY3JpcHQgb25jZSB0aG9zZSBmaXQge0BsaW5rIHRyYW5zY3JpcHRCdWRnZXR9LlxuICAgKi9cbiAgdHJhbnNjcmlwdEFsbEdlbmVzOiBib29sZWFuO1xuICAvKipcbiAgICogTW9zdCB0cmFuc2NyaXB0IG1hcmtlcnMgZHJhd24gYXQgb25jZS4gVGhlIGxldmVsIG9mIGRldGFpbCBpcyBjaG9zZW4gdG8gc3RheSB1bmRlciBpdCxcbiAgICogd2hpY2ggaXMgd2hhdCBrZWVwcyBwYW4gYW5kIHpvb20gcmVzcG9uc2l2ZSBob3dldmVyIGRlbnNlIHRoZSBkYXRhIGlzLlxuICAgKi9cbiAgdHJhbnNjcmlwdEJ1ZGdldDogbnVtYmVyO1xuICAvKipcbiAgICogSG93IHRyYW5zY3JpcHRzIGFyZSBkcmF3bjogYGNpcmNsZXNgIHNpemVkIGJ5IGhvdyBtYW55IHRyYW5zY3JpcHRzIGVhY2ggc3RhbmRzIGZvcixcbiAgICogYGdseXBoc2AgKG9uZSBpY29uIHNoYXBlIHBlciBnZW5lKSwgb3IgYSBgZGVuc2l0eWAgcmFzdGVyLiBDaXJjbGVzIGFuZCBnbHlwaHMgYXJlXG4gICAqIGxldmVsLW9mLWRldGFpbCDigJQgYWdncmVnYXRlZCB3aGVuIHpvb21lZCBvdXQsIG9uZSBwZXIgdHJhbnNjcmlwdCBhdCB0aGUgZmluZXN0IHpvb20uXG4gICAqL1xuICB0cmFuc2NyaXB0TW9kZTogJ29mZicgfCAnY2lyY2xlcycgfCAnZ2x5cGhzJyB8ICdkZW5zaXR5JztcbiAgLyoqIENvbG91ciB0cmFuc2NyaXB0cyBieSB0aGUgdHlwZSBvZiB0aGUgY2VsbCB0aGV5IGZhbGwgaW4sIGJ5IGdlbmUsIG9yIGJ5IHRoZSBnZW5lLXRyZWVcbiAgICogIGNsdXN0ZXIgdGhlaXIgZ2VuZSBpcyBpbiAoaW4gdGhlIGNvbG91ciB0aGF0IGNsdXN0ZXIncyBjZWxscyBoYXZlLCB3aGVuIGEgY2VsbCBncm91cGluZ1xuICAgKiAgbmFtZXMgaXQpLiAqL1xuICB0cmFuc2NyaXB0Q29sb3JCeTogJ2NlbGxUeXBlJyB8ICdnZW5lJyB8ICdjbHVzdGVyJztcbiAgLyoqIEdseXBoIHBlciBnZW5lIGZvciBgZ2x5cGhzYCBtb2RlOyBnZW5lcyBub3QgbGlzdGVkIHRha2Ugb25lIGJ5IHBvc2l0aW9uLiAqL1xuICB0cmFuc2NyaXB0R2x5cGhzOiBSZWNvcmQ8c3RyaW5nLCBUcmFuc2NyaXB0R2x5cGhOYW1lPjtcbiAgLyoqIE11bHRpcGxpZXIgb24gdHJhbnNjcmlwdCBtYXJrZXIgc2l6ZS4gKi9cbiAgdHJhbnNjcmlwdFNjYWxlOiBudW1iZXI7XG4gIHRyYW5zY3JpcHRPcGFjaXR5OiBudW1iZXI7XG4gIC8qKiBgaGlnaGAga2VlcHMgb25seSBjb25maWRlbnRseSBkZWNvZGVkIHRyYW5zY3JpcHRzLiAqL1xuICB0cmFuc2NyaXB0UXVhbGl0eTogJ2hpZ2gnIHwgJ2FsbCc7XG4gIC8qKiBPcGFjaXR5IG9mIHRoZSB0cmFuc2NyaXB0IGRlbnNpdHkgcmFzdGVyLiAqL1xuICBkZW5zaXR5T3BhY2l0eTogbnVtYmVyO1xuICAvKiogRGVuc2l0eSBiaW4gZWRnZSBpbiBvYnNlcnZhdGlvbiB1bml0cyAowrVtKTogMTAsIDIwLCA0MCBvciA4MC4gKi9cbiAgZGVuc2l0eUJpbjogbnVtYmVyO1xuICAvKiogQ29sb3VyIHdpbmRvdyBpbiB0cmFuc2NyaXB0cyBwZXIgdW5pdMKyICjCtW3Csik7IG51bGwgZGVyaXZlcyBpdCBmcm9tIHRoZSBkYXRhLiAqL1xuICBkZW5zaXR5UmFuZ2U6IFtudW1iZXIsIG51bWJlcl0gfCBudWxsO1xuICAvKiogQ29sb3JtYXAgZm9yIHRoZSBkZW5zaXR5IGJpbnM7IG51bGwgdXNlcyBJbmZlcm5vLiAqL1xuICBkZW5zaXR5Q29sb3JtYXA6IENvbG9ybWFwVmFsdWUgfCBudWxsO1xufVxuXG4vKiogVHJhbnNjcmlwdCBnbHlwaCBuYW1lcyDigJQgc2VlIGBUUkFOU0NSSVBUX0dMWVBIU2AgaW4gYHNwYXRpYWwvc3BhdGlhbC10aWxlcy50c2AuICovXG5leHBvcnQgdHlwZSBUcmFuc2NyaXB0R2x5cGhOYW1lID1cbiAgfCAnY2lyY2xlJyB8ICdzdGFyJyB8ICd0cmlhbmdsZScgfCAnc3F1YXJlJyB8ICdkaWFtb25kJyB8ICdjcm9zcycgfCAnaGV4YWdvbidcbiAgfCAndHJpYW5nbGUtZG93bicgfCAncGVudGFnb24nIHwgJ3gnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9TUEFUSUFMX1ZJRVc6IFNwYXRpYWxWaWV3U3RhdGUgPSB7XG4gIGNvbG9yQnk6IG51bGwsXG4gIHBvaW50U2NhbGU6IDEsXG4gIG9wYWNpdHk6IDEsXG4gIGxvZ1NjYWxlOiBmYWxzZSxcbiAgcGVyY2VudGlsZUNsaXA6IFswLjAxLCAwLjk5XSxcbiAgY29udGludW91c0NvbG9ybWFwOiBudWxsLFxuICBzaG93Vm9sdW1lOiB0cnVlLFxuICB2b2x1bWVPcGFjaXR5OiAwLjUsXG4gIHNob3dQb2ludHM6IHRydWUsXG4gIHBvaW50U2VjdGlvbjogbnVsbCxcbiAgZGVuc2l0eVZvbHVtZTogZmFsc2UsXG4gIGRlbnNpdHlTbW9vdGhpbmc6IDEsXG4gIGdlbmVNYXA6IGZhbHNlLFxuICBnZW5lTWFwU2VjdGlvbjogbnVsbCxcbiAgZ2VuZU1hcFZvbHVtZTogZmFsc2UsXG4gIGdlbmVNYXBTbW9vdGhpbmc6IDEsXG4gIGdlbmVNYXBPcGFjaXR5OiAwLjg1LFxuICBzaG93Q2VsbHM6IG51bGwsXG4gIGNlbGxTZXQ6IG51bGwsXG4gIGNlbGxEcmF3OiAnZmlsbCcsXG4gIGNlbGxPcGFjaXR5OiAwLjU1LFxuICBjZWxsVHlwZUNvbHVtbjogbnVsbCxcbiAgdHJhbnNjcmlwdEdlbmVzOiBbXSxcbiAgdHJhbnNjcmlwdEhpZGRlbkdlbmVzOiBbXSxcbiAgdHJhbnNjcmlwdEdlbmVDb2xvcnM6IHt9LFxuICB0cmFuc2NyaXB0R2VuZUdyb3VwczogW10sXG4gIHRyYW5zY3JpcHRBbGxHZW5lczogZmFsc2UsXG4gIHRyYW5zY3JpcHRCdWRnZXQ6IDEwMF8wMDAsXG4gIHRyYW5zY3JpcHRNb2RlOiAnb2ZmJyxcbiAgdHJhbnNjcmlwdENvbG9yQnk6ICdjZWxsVHlwZScsXG4gIHRyYW5zY3JpcHRHbHlwaHM6IHt9LFxuICB0cmFuc2NyaXB0U2NhbGU6IDEsXG4gIHRyYW5zY3JpcHRPcGFjaXR5OiAwLjksXG4gIHRyYW5zY3JpcHRRdWFsaXR5OiAnaGlnaCcsXG4gIGRlbnNpdHlPcGFjaXR5OiAwLjgsXG4gIGRlbnNpdHlCaW46IDEwLFxuICBkZW5zaXR5UmFuZ2U6IG51bGwsXG4gIGRlbnNpdHlDb2xvcm1hcDogbnVsbCxcbiAgY2VsbENvbG9yTW9kZTogJ2dyb3VwJyxcbiAgY2VsbENvbG9yR2VuZTogbnVsbCxcbiAgY2VsbFNpbmdsZUNvbG9yOiAnIzRmYzNmNycsXG4gIGhpZGRlbkdyb3VwczogW10sXG4gIHNob3dJbWFnZTogdHJ1ZSxcbiAgc2hvd0Fubm90YXRpb25zOiB0cnVlLFxufTtcbiJdfQ==
@@ -63,4 +63,4 @@ export const PLOT_MODE_SESSION = new InjectionToken('PLOT_MODE_SESSION');
63
63
  export function contributedPlotTypeOption(d, base) {
64
64
  return { ...d, source: base.source };
65
65
  }
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxvdC10eXBlLWNvbnRyaWJ1dGlvbi5jb250cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJhY3RzL3Bsb3QtdHlwZS1jb250cmlidXRpb24uY29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0NHO0FBQ0gsT0FBTyxFQUFFLGNBQWMsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQW1JckQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQ2xDLElBQUksY0FBYyxDQUFrQyx5QkFBeUIsQ0FBQyxDQUFDO0FBQ2pGLGtFQUFrRTtBQUNsRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBa0IsbUJBQW1CLENBQUMsQ0FBQztBQUMxRixrRUFBa0U7QUFDbEUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQWtCLG1CQUFtQixDQUFDLENBQUM7QUFhMUYsbUZBQW1GO0FBQ25GLE1BQU0sVUFBVSx5QkFBeUIsQ0FDdkMsQ0FBZ0MsRUFDaEMsSUFBd0I7SUFFeEIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7QUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSG93IGEgcGxvdCBtb2RlIGdldHMgaW50byB0aGUgcGxvdC10eXBlIHNlbGVjdG9yIHdpdGhvdXQgdGhpcyBsaWJyYXJ5IGtub3dpbmdcbiAqIHdoYXQgaXQgaXMuXG4gKlxuICogQSBwYWNrYWdlIGNvbnRyaWJ1dGVzIGEgbW9kZSBieSBwcm92aWRpbmcgYSB7QGxpbmsgUGxvdFR5cGVDb250cmlidXRpb259IG9uIHRoZVxuICoge0BsaW5rIFBMT1RfVFlQRV9DT05UUklCVVRJT05TfSBtdWx0aS1wcm92aWRlciB0b2tlbiwgdGhlIHNhbWUgd2F5XG4gKiBgVE9PTEJBUl9UT09MU2AgY29udHJpYnV0ZXMgdG9vbGJhciB0b29scy4gTm90aGluZyByZWdpc3RlcnMgYXQgaW1wb3J0IHRpbWU6XG4gKiBpbnN0YWxsaW5nIGEgcGFja2FnZSBtYWtlcyBhIG1vZGUgYXZhaWxhYmxlLCBhbmQgYWRkaW5nIGl0cyBwcm92aWRlciB0dXJucyBpdFxuICogb24uIEEgcGxhaW4gb2JqZWN0IHdvcmtzLCBzbyB0aGUgY29udHJpYnV0aW5nIHBhY2thZ2UgbmVlZHMgbm8gQW5ndWxhclxuICogY29tcGlsZXIgYW5kIG5vIGRlY29yYXRvcnM6XG4gKlxuICogICAgIHsgcHJvdmlkZTogUExPVF9UWVBFX0NPTlRSSUJVVElPTlMsIHVzZVZhbHVlOiBteUNvbnRyaWJ1dGlvbiwgbXVsdGk6IHRydWUgfVxuICogICAgIHsgcHJvdmlkZTogUExPVF9UWVBFX0NPTlRSSUJVVElPTlMsIHVzZUZhY3Rvcnk6ICgpID0+IG1ha2VDb250cmlidXRpb24oKSwgbXVsdGk6IHRydWUgfVxuICpcbiAqIFByb3ZpZGUgbm90aGluZyBhbmQgdGhlIHNlbGVjdG9yLCB0aGUgcmVuZGVyIHBhdGggYW5kIHRoZSBwYW5lbCBhcmVhIGJlaGF2ZVxuICogZXhhY3RseSBhcyB0aGV5IGRpZCBiZWZvcmUgdGhpcyBleHRlbnNpb24gcG9pbnQgZXhpc3RlZC5cbiAqXG4gKiBXSFkgQSBDT05UUklCVVRFRCBNT0RFIFJJREVTIE9OIEEgQlVJTFQtSU4gT05FXG4gKiBBIGNvbnRyaWJ1dGVkIG1vZGUgZG9lcyBub3QgYnJpbmcgYSByZW5kZXJlci4gSXQgbmFtZXMgYSBidWlsdC1pblxuICoge0BsaW5rIENvbnRyaWJ1dGVkUGxvdFR5cGVEZXNjcmlwdG9yLmJhc2VUeXBlfSDigJQgaW4gdjEgb25seSBgUGxvdFR5cGUuSU1BR0VgLFxuICogdGhlIE9wZW5TZWFkcmFnb24gdmlldyDigJQgYW5kIHRoZSB2aXN1YWxpemVyIHBsb3RzIGV4YWN0bHkgYXMgaWYgdGhhdCB0eXBlIGhhZFxuICogYmVlbiBzZWxlY3RlZDogc2FtZSBiYWNrZW5kLCBzYW1lIHRvb2xiYXIsIHNhbWUgcmVnaW9uIHRvb2xzLCBzYW1lIHdoZWVsXG4gKiBoYW5kbGluZy4gVGhlIGNvbnRyaWJ1dGlvbiB0aGVuIGRyYXdzIG92ZXIgaXQgdGhyb3VnaCB0aGVcbiAqIHtAbGluayBQbG90TW9kZVZpZXdwb3J0fSBhbmQgdGFsa3MgdG8gdGhlIHZpZXdlciB0aHJvdWdoIHRoZSBwdWJsaWNcbiAqIHtAbGluayBJVmlzdWFsaXplcn0uIFRoYXQga2VlcHMgZXZlcnkgcmVuZGVyaW5nIGRlY2lzaW9uIGluIG9uZSBwbGFjZSBhbmQgbWVhbnNcbiAqIGEgY29udHJpYnV0aW9uIGNhbiBuZXZlciBiZSBoYWxmLXN1cHBvcnRlZCBieSBzb21lIGNvZGUgcGF0aCB0aGF0IHN3aXRjaGVzIG9uXG4gKiB0aGUgcGxvdCB0eXBlLlxuICpcbiAqIFdIQVQgVEhFIFZJU1VBTElaRVIgR1VBUkFOVEVFU1xuICogIDEuIENvbnRyaWJ1dGVkIGRlc2NyaXB0b3JzIGFyZSBhcHBlbmRlZCBhZnRlciB0aGUgYnVpbHQtaW4gb25lcyBhbmQgY3VyYXRlZCBieVxuICogICAgIHRoZSBzYW1lIGBwcm9kdWN0aW9uTGFiZWxgIC8gdGVzdC1tb2RlIC8gYHJlcXVpcmVzKmAgcnVsZXMuXG4gKiAgMi4gU2VsZWN0aW5nIG9uZSBwbG90cyB3aXRoIGBiYXNlVHlwZWAncyBiYWNrZW5kLCB0aGVuIGNhbGxzIGBhY3RpdmF0ZShjdHgpYFxuICogICAgIG9uY2UgdGhlIHZpZXdwb3J0IGlzIHJlYWR5LlxuICogIDMuIExlYXZpbmcgdGhlIG1vZGUg4oCUIGFub3RoZXIgdHlwZSwgYW4gaW1hZ2Ugc3dpdGNoIChvciBhbnkgcmUtcmVuZGVyIG9mIHRoZVxuICogICAgIGJhc2UgdmlldyksIG9yIHRoZSB2aXN1YWxpemVyIGJlaW5nIGRlc3Ryb3llZCDigJQgY2FsbHMgYHNlc3Npb24uZGVhY3RpdmF0ZSgpYFxuICogICAgIGV4YWN0bHkgb25jZSwgYmVmb3JlIHRoZSBuZXh0IG1vZGUgZHJhd3MuIElmIHRoZSBtb2RlIGlzIHN0aWxsIHNlbGVjdGVkXG4gKiAgICAgd2hlbiB0aGUgbmV3IGltYWdlIGhhcyBwbG90dGVkLCBhIGZyZXNoIHNlc3Npb24gaXMgYWN0aXZhdGVkIGZvciBpdC5cbiAqICA0LiBgcGFuZWxgIGlzIHNob3duIG9ubHkgd2hpbGUgYSBzZXNzaW9uIGlzIGxpdmUuXG4gKiAgNS4gQSB0aHJvd24gZXJyb3Igb3IgcmVqZWN0ZWQgcHJvbWlzZSBmcm9tIGBhY3RpdmF0ZWAsIGBkZWFjdGl2YXRlYCwgYG1vdW50YFxuICogICAgIG9yIGEgbW91bnQncyB0ZWFyZG93biBpcyBjYXVnaHQgYW5kIGxvZ2dlZDsgbm9uZSBlc2NhcGVzLCBzbyBhIGNvbnRyaWJ1dGlvblxuICogICAgIGNhbm5vdCBicmVhayB0aGUgdmlld2VyLiBGYWlsaW5nIHRvIHN0YXJ0IChgYWN0aXZhdGVgLCBgbW91bnRgLCBvciBhIHBhbmVsXG4gKiAgICAgY29tcG9uZW50IHRocm93aW5nIHdoaWxlIGl0IGlzIGNyZWF0ZWQgLyBmaXJzdCByZW5kZXJlZCkgZmFsbHMgYmFja1xuICogICAgIHRvIGBiYXNlVHlwZWAuIEZhaWxpbmcgdG8gY2xlYW4gdXAgZmFsbHMgYmFjayB3aGVuIHRoYXQgc2FtZSBtb2RlIGlzIGJlaW5nXG4gKiAgICAgcmUtYWN0aXZhdGVkIChiYXNlIHJlLXJlbmRlciwgaW1hZ2Ugc3dpdGNoKSDigJQgaW1tZWRpYXRlbHkgaWYgaXQgYWxyZWFkeSBpc1xuICogICAgIGxpdmUgYWdhaW4g4oCUIGFuZCBpcyBvbmx5IGxvZ2dlZCB3aGVuIHRoZSB1c2VyIGhhcyBtb3ZlZCB0byBhbm90aGVyIG1vZGU7IHRoZVxuICogICAgIHVzZXIgZXhwbGljaXRseSBzZWxlY3RpbmcgaXQgYWdhaW4gZ2V0cyBhIGZyZXNoIGF0dGVtcHQuXG4gKiAgNi4ge0BsaW5rIFBMT1RfVFlQRV9DT05UUklCVVRJT05TfSBoYXMgbm8gZmFjdG9yeTogbm8gcHJvdmlkZXJzLCBubyBtb2Rlcy5cbiAqL1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgdHlwZSB7IElJbWFnZUluZm8gfSBmcm9tICcuL2ltYWdlLmNvbnRyYWN0JztcbmltcG9ydCB0eXBlIHsgUGxvdFR5cGUsIFBsb3RUeXBlRGVzY3JpcHRvciwgUGxvdFR5cGVJZCB9IGZyb20gJy4vcGxvdC10eXBlJztcbmltcG9ydCB0eXBlIHsgSVZpc3VhbGl6ZXIgfSBmcm9tICcuL3Zpc3VhbGl6ZXIuY29udHJhY3QnO1xuXG4vKiogQSByZWN0YW5nbGUgaW4gbGV2ZWwtMCBpbWFnZSBwaXhlbHMuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsb3RNb2RlUmVjdCB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbn1cblxuLyoqIFNlbGVjdG9yIG1ldGFkYXRhIGZvciBhIGNvbnRyaWJ1dGVkIHBsb3QgbW9kZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJpYnV0ZWRQbG90VHlwZURlc2NyaXB0b3Ige1xuICAvKiogVW5pcXVlIGlkLCBuYW1lc3BhY2VkLCBlLmcuICdkaWFubmUnLiBNdXN0IG5vdCBjbGFzaCB3aXRoIFBsb3RUeXBlIHZhbHVlcy4gKi9cbiAgdHlwZTogc3RyaW5nO1xuICAvKiogVGVzdC1tb2RlIGxhYmVsLCBlLmcuICdEaWdpdGFsIFBhdGhvbG9neSAtIERJQU5ORScuICovXG4gIGxhYmVsOiBzdHJpbmc7XG4gIC8qKiBEZWZhdWx0LXNlbGVjdG9yIGxhYmVsOyBvbWl0IHRvIG1ha2UgdGhlIG1vZGUgdGVzdC1vbmx5IChzYW1lIHJ1bGUgYXMgYnVpbHQtaW5zKS4gKi9cbiAgcHJvZHVjdGlvbkxhYmVsPzogc3RyaW5nO1xuICAvKiogJ3BpIHBpLeKApicgY2xhc3Mgb3IgYXNzZXQgcGF0aCwgc2FtZSBhcyBQbG90VHlwZURlc2NyaXB0b3IuaWNvbi4gKi9cbiAgaWNvbj86IHN0cmluZztcbiAgLyoqIEFsd2F5cyAnMmQnIGluIHYxLiAqL1xuICBkaW1lbnNpb25zOiAnMmQnO1xuICAvKiogQnVpbHQtaW4gdHlwZSB3aG9zZSBiYWNrZW5kIHJlbmRlcnMgdGhlIGJhc2UgaW1hZ2UuIHYxIHN1cHBvcnRzIFBsb3RUeXBlLklNQUdFIChPU0QpLiAqL1xuICBiYXNlVHlwZTogUGxvdFR5cGU7XG4gIC8qKiBTYW1lIGdhdGVzIGFzIFBsb3RUeXBlRGVzY3JpcHRvciwgZXZhbHVhdGVkIGluIGFkZGl0aW9uIHRvIHRoZSBiYXNlIHR5cGUncyBvd24uICovXG4gIHJlcXVpcmVzR3JheXNjYWxlPzogYm9vbGVhbjtcbiAgcmVxdWlyZXNTdGFjaz86IGJvb2xlYW47XG4gIC8qKiBIaWRkZW4gdW50aWwgYSBgU3BhdGlhbERhdGFzZXRgIGlzIHB1Ymxpc2hlZCBvbiBTUEFUSUFMX0RBVEFfUE9SVCAoYW4gb3ZlcmxheSBvZiBzcGF0aWFsIG9ic2VydmF0aW9ucykuICovXG4gIHJlcXVpcmVzU3BhdGlhbERhdGE/OiBib29sZWFuO1xuICAvKiogSGlkZGVuIHVubGVzcyB0aGUgcHVibGlzaGVkIGRhdGFzZXQgY2FycmllcyBgb2JzZXJ2YXRpb25zLnpgLiAqL1xuICByZXF1aXJlc1NwYXRpYWwzZD86IGJvb2xlYW47XG59XG5cbi8qKiBUaGUgYmFzZSB2aWV3J3Mgdmlld3BvcnQsIGFzIGEgY29udHJpYnV0ZWQgbW9kZSBzZWVzIGl0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbG90TW9kZVZpZXdwb3J0IHtcbiAgLyoqIEVsZW1lbnQgdGhlIG1vZGUncyBvdmVybGF5IGNhbnZhcy9TVkcgYXR0YWNoZXMgdG87IGZpbGxzIHRoZSBwbG90IGFyZWEuICovXG4gIGdldE92ZXJsYXlDb250YWluZXIoKTogSFRNTEVsZW1lbnQgfCBudWxsO1xuICAvKiogTGV2ZWwtMCBpbWFnZSBweCAtPiBjbGllbnQgcHgsIGFuZCB0aGUgcmV2ZXJzZS4gKi9cbiAgZGF0YVRvQ2xpZW50KHg6IG51bWJlciwgeTogbnVtYmVyKTogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xuICBjbGllbnRUb0RhdGEoY2xpZW50WDogbnVtYmVyLCBjbGllbnRZOiBudW1iZXIpOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XG4gIC8qKiBTY3JlZW4gcHggcGVyIGltYWdlIHB4IGF0IHRoZSBjdXJyZW50IHpvb20uICovXG4gIGRhdGFMZW5ndGhUb1NjcmVlbihsZW46IG51bWJlcik6IG51bWJlcjtcbiAgaXNSZWFkeSgpOiBib29sZWFuO1xuICAvKiogVmlzaWJsZSBpbWFnZSByZWN0IGluIGxldmVsLTAgcHgsIGVtaXR0ZWQgb24gZXZlcnkgcmVkcmF3IGZyYW1lIChwYW4vem9vbSBhbmltYXRpb24pLlxuICAgKiAgQSBuZXcgc3Vic2NyaWJlciBmaXJzdCByZWNlaXZlcyB0aGUgY3VycmVudCByZWN0IHdoZW4gdGhlIHZpZXdwb3J0IGlzIHJlYWR5LiAqL1xuICBmcmFtZSQ6IE9ic2VydmFibGU8UGxvdE1vZGVSZWN0PjtcbiAgLyoqIFNhbWUgcmVjdCwgZW1pdHRlZCBvbmNlIHRoZSB2aWV3cG9ydCBzZXR0bGVzIChleGlzdGluZyBnZXRWaWV3cG9ydENoYW5nZSQgc2VtYW50aWNzKS5cbiAgICogIEEgbmV3IHN1YnNjcmliZXIgZmlyc3QgcmVjZWl2ZXMgdGhlIGN1cnJlbnQgcmVjdCB3aGVuIHRoZSB2aWV3cG9ydCBpcyByZWFkeS4gKi9cbiAgc2V0dGxlZCQ6IE9ic2VydmFibGU8UGxvdE1vZGVSZWN0Pjtcbn1cblxuLyoqIFRoZSBjbGFzcyBhIHtAbGluayBQbG90TW9kZVRvb2xzLmFybUJydXNofSBzdHJva2UgcGFpbnRzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbG90TW9kZUJydXNoQ2xhc3Mge1xuICAvKiogTGFiZWwgZm9yIHRoZSBwYWludGVkIHJlZ2lvbnM7IHRoZSBzdHJva2Ugb25seSBleHRlbmRzIG9yIG1lcmdlcyByZWdpb25zIHdpdGggaXQuICovXG4gIGxhYmVsPzogc3RyaW5nO1xuICAvKiogQ29sb3VyIGZvciB0aGUgcGFpbnRlZCByZWdpb25zIChpbnN0ZWFkIG9mIHRoZSB0b29sYmFyJ3Mgc2hhcGUgY29sb3VyKS4gKi9cbiAgY29sb3I/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIHZpc3VhbGl6ZXIncyBvd24gdG9vbGJhciB0b29scywgYXJtZWQgb24gYSBtb2RlJ3MgYmVoYWxmLiBHb2luZyB0aHJvdWdoXG4gKiB0aGlzIHJhdGhlciB0aGFuIHtAbGluayBJVmlzdWFsaXplcn0ga2VlcHMgdGhlIHRvb2xiYXIgaW4gc3RlcDogdGhlIGFybWVkXG4gKiB0b29sJ3MgYnV0dG9uIGlzIGhpZ2hsaWdodGVkIGFuZCBpdHMgY29udHJvbHMgKGUuZy4gdGhlIGJydXNoIHNpemUpIHNob3cuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxvdE1vZGVUb29scyB7XG4gIC8qKlxuICAgKiBBcm0gdGhlIHRvb2xiYXIgYnJ1c2gsIHBhaW50aW5nIGBicnVzaENsYXNzYC4gQ2FsbGluZyBpdCBhZ2FpbiB3aGlsZSB0aGVcbiAgICogYnJ1c2ggaXMgYXJtZWQgc3dpdGNoZXMgY2xhc3M7IHRoZSBuZXh0IHN0cm9rZSBzdGFydHMgYSByZWdpb24gb2YgaXQuXG4gICAqIFRoZSB1c2VyIHBpY2tpbmcgYW55IHRvb2wgZnJvbSB0aGUgdG9vbGJhciAoaW5jbHVkaW5nIHRoZSBicnVzaCkgcmVwbGFjZXNcbiAgICogdGhpcyB3aXRoIHRoZSBwbGFpbiB0b29sLlxuICAgKi9cbiAgYXJtQnJ1c2goYnJ1c2hDbGFzcz86IFBsb3RNb2RlQnJ1c2hDbGFzcyk6IHZvaWQ7XG4gIC8qKiBEaXNhcm0gd2hhdGV2ZXIgdG9vbCBpcyBhcm1lZCwgYXMgaWYgdGhlIHVzZXIgdG9nZ2xlZCBpdCBvZmYuICovXG4gIGRpc2FybSgpOiB2b2lkO1xuICAvKiogVGhlIGFybWVkIHRvb2xiYXIgdG9vbCBpZCAoJ2JydXNoJywgJ3BhbicsIOKApiBvciBudWxsKS4gUmVwbGF5cyB0aGUgY3VycmVudCB2YWx1ZS4gKi9cbiAgYWN0aXZlVG9vbCQ6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD47XG59XG5cbi8qKiBFdmVyeXRoaW5nIGEgY29udHJpYnV0ZWQgbW9kZSBnZXRzIHRvIHdvcmsgd2l0aCB3aGlsZSBpdCBpcyBhY3RpdmUuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsb3RNb2RlQ29udGV4dCB7XG4gIC8qKiBGdWxsIHB1YmxpYyB2aXN1YWxpemVyIEFQSTogcmVnaW9ucywgcmVnaW9uIG92ZXJsYXkgKHRvb2wgbW9kZXMpLCB1bmRvLCBldGMuICovXG4gIHZpc3VhbGl6ZXI6IElWaXN1YWxpemVyO1xuICB2aWV3cG9ydDogUGxvdE1vZGVWaWV3cG9ydDtcbiAgLyoqIEN1cnJlbnQgaW1hZ2UgaW5mbyBmcm9tIElNQUdFX1NUQVRFX1BPUlQgKG51bGwgdW50aWwgYW4gaW1hZ2UgaXMgbG9hZGVkKS4gKi9cbiAgaW1hZ2VJbmZvJDogT2JzZXJ2YWJsZTxJSW1hZ2VJbmZvIHwgbnVsbD47XG4gIC8qKiBUb29sYmFyIHRvb2xzIChzaW5jZSAwLjYuMCkuIE9wdGlvbmFsIHNvIGEgY29udGV4dCBidWlsdCBmb3IgMC41LjAgc3RpbGwgdHlwZS1jaGVja3MuICovXG4gIHRvb2xzPzogUGxvdE1vZGVUb29scztcbn1cblxuLyoqIEEgbGl2ZSBhY3RpdmF0aW9uIG9mIGEgY29udHJpYnV0ZWQgbW9kZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxvdE1vZGVTZXNzaW9uIHtcbiAgLyoqIENhbGxlZCB3aGVuIHRoZSB1c2VyIGxlYXZlcyB0aGUgbW9kZSwgdGhlIGltYWdlIGNoYW5nZXMsIG9yIHRoZSB2aXN1YWxpemVyIGlzIGRlc3Ryb3llZC4gKi9cbiAgZGVhY3RpdmF0ZSgpOiB2b2lkO1xufVxuXG4vKipcbiAqIFRoZSBtb2RlJ3Mgc2lkZSBwYW5lbCwgc2hvd24gaW4gdGhlIHZpc3VhbGl6ZXIncyByaWdodC1oYW5kIHBhbmVsIGFyZWEgd2hpbGVcbiAqIGEgc2Vzc2lvbiBpcyBsaXZlLiBUd28gZm9ybXM6XG4gKlxuICogIC0gYGNvbXBvbmVudGA6IGFuIEFuZ3VsYXIgY29tcG9uZW50LCByZW5kZXJlZCB0aHJvdWdoIGBOZ0NvbXBvbmVudE91dGxldGBcbiAqICAgIHdpdGgge0BsaW5rIFBMT1RfTU9ERV9DT05URVhUfSBhbmQge0BsaW5rIFBMT1RfTU9ERV9TRVNTSU9OfSBpbiBpdHNcbiAqICAgIGluamVjdG9yLiBOZWVkcyBhbiBBT1QtY29tcGlsZWQgKHBhcnRpYWwtSXZ5KSBjb21wb25lbnQuXG4gKiAgLSBgbW91bnRgOiBmcmFtZXdvcmstYWdub3N0aWMuIFRoZSB2aXN1YWxpemVyIGhhbmRzIG92ZXIgYW4gZW1wdHkgaG9zdFxuICogICAgZWxlbWVudCBhZnRlciBgYWN0aXZhdGVgIHJlc29sdmVzOyB0aGUgZnVuY3Rpb24gcmVuZGVycyBpbnRvIGl0IGFuZCByZXR1cm5zXG4gKiAgICBhIHRlYXJkb3duLiBUaGUgdGVhcmRvd24gaXMgY2FsbGVkIGV4YWN0bHkgb25jZSB3aGVuIHRoZSBtb2RlIGRlYWN0aXZhdGVzLFxuICogICAgYmVmb3JlIGBzZXNzaW9uLmRlYWN0aXZhdGUoKWAsIGFuZCB0aGUgaG9zdCBlbGVtZW50IGlzIHRoZW4gcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IHR5cGUgUGxvdE1vZGVQYW5lbCA9XG4gIHwgeyB0aXRsZTogc3RyaW5nOyBjb21wb25lbnQ6IFR5cGU8dW5rbm93bj4gfVxuICB8IHtcbiAgICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgICBtb3VudChob3N0OiBIVE1MRWxlbWVudCwgY3R4OiBQbG90TW9kZUNvbnRleHQsIHNlc3Npb246IFBsb3RNb2RlU2Vzc2lvbik6ICgpID0+IHZvaWQ7XG4gICAgfTtcblxuLyoqIEEgcGxvdCBtb2RlIGNvbnRyaWJ1dGVkIHRvIHRoZSBzZWxlY3Rvci4gQSBwbGFpbiBvYmplY3QgaXMgZW5vdWdoLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbG90VHlwZUNvbnRyaWJ1dGlvbiB7XG4gIGRlc2NyaXB0b3I6IENvbnRyaWJ1dGVkUGxvdFR5cGVEZXNjcmlwdG9yO1xuICAvKiogQ2FsbGVkIGFmdGVyIHRoZSBiYXNlIGJhY2tlbmQgaGFzIHBsb3R0ZWQgdGhlIGltYWdlIGluIHRoaXMgbW9kZS4gKi9cbiAgYWN0aXZhdGUoY3R4OiBQbG90TW9kZUNvbnRleHQpOiBQbG90TW9kZVNlc3Npb24gfCBQcm9taXNlPFBsb3RNb2RlU2Vzc2lvbj47XG4gIC8qKlxuICAgKiBPcHRpb25hbCBzaWRlIHBhbmVsLCByZW5kZXJlZCBpbiB0aGUgdmlzdWFsaXplcidzIHJpZ2h0LWhhbmQgcGFuZWwgYXJlYSB3aGlsZSB0aGVcbiAgICogbW9kZSBpcyBhY3RpdmUuIEEgY29tcG9uZW50IHBhbmVsIGNhbiBpbmplY3QgUExPVF9NT0RFX0NPTlRFWFQgYW5kIFBMT1RfTU9ERV9TRVNTSU9OLlxuICAgKi9cbiAgcGFuZWw/OiBQbG90TW9kZVBhbmVsO1xufVxuXG4vKipcbiAqIE11bHRpLXByb3ZpZGVyIHRva2VuIGZvciBjb250cmlidXRlZCBwbG90IG1vZGVzLlxuICpcbiAqIERlbGliZXJhdGVseSBoYXMgbm8gYGZhY3RvcnlgOiB1bnJlZ2lzdGVyZWQgbWVhbnMgbm8gY29udHJpYnV0ZWQgbW9kZXMsIGFuZCB0aGVcbiAqIGxpYnJhcnkgYmVoYXZlcyBleGFjdGx5IGFzIGJlZm9yZS4gVGhlIHZpc3VhbGl6ZXIgaW5qZWN0cyBpdCBgeyBvcHRpb25hbDogdHJ1ZSB9YFxuICogYW5kIHRyZWF0cyBudWxsIGFzIGVtcHR5LlxuICovXG5leHBvcnQgY29uc3QgUExPVF9UWVBFX0NPTlRSSUJVVElPTlMgPVxuICBuZXcgSW5qZWN0aW9uVG9rZW48cmVhZG9ubHkgUGxvdFR5cGVDb250cmlidXRpb25bXT4oJ1BMT1RfVFlQRV9DT05UUklCVVRJT05TJyk7XG4vKiogVGhlIGFjdGl2ZSBtb2RlJ3MgY29udGV4dCwgaW4gYSBjb21wb25lbnQgcGFuZWwncyBpbmplY3Rvci4gKi9cbmV4cG9ydCBjb25zdCBQTE9UX01PREVfQ09OVEVYVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxQbG90TW9kZUNvbnRleHQ+KCdQTE9UX01PREVfQ09OVEVYVCcpO1xuLyoqIFRoZSBhY3RpdmUgbW9kZSdzIHNlc3Npb24sIGluIGEgY29tcG9uZW50IHBhbmVsJ3MgaW5qZWN0b3IuICovXG5leHBvcnQgY29uc3QgUExPVF9NT0RFX1NFU1NJT04gPSBuZXcgSW5qZWN0aW9uVG9rZW48UGxvdE1vZGVTZXNzaW9uPignUExPVF9NT0RFX1NFU1NJT04nKTtcblxuLyoqXG4gKiBPbmUgZW50cnkgaW4gdGhlIHBsb3QtdHlwZSBzZWxlY3RvcjogYSBidWlsdC1pbiB7QGxpbmsgUGxvdFR5cGVEZXNjcmlwdG9yfVxuICogYXMtaXMsIG9yIGEgY29udHJpYnV0ZWQgZGVzY3JpcHRvciBjb21wbGV0ZWQgd2l0aCBpdHMgYmFzZSB0eXBlJ3MgYHNvdXJjZWAuXG4gKiBFdmVyeSBlbnRyeSB0aGVyZWZvcmUgY2FycmllcyB0aGUgc2FtZSBmaWVsZHMgdGhlIHNlbGVjdG9yIGN1cmF0ZXMgYnkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxvdFR5cGVPcHRpb24gZXh0ZW5kcyBPbWl0PFBsb3RUeXBlRGVzY3JpcHRvciwgJ3R5cGUnPiB7XG4gIHR5cGU6IFBsb3RUeXBlSWQ7XG4gIC8qKiBTZXQgb25seSBmb3IgYSBjb250cmlidXRlZCBtb2RlOiB0aGUgYnVpbHQtaW4gdHlwZSB0aGF0IHJlbmRlcnMgaXQuICovXG4gIGJhc2VUeXBlPzogUGxvdFR5cGU7XG59XG5cbi8qKiBUaGUgc2VsZWN0b3IgZW50cnkgZm9yIGEgY29udHJpYnV0ZWQgbW9kZSwgZ2l2ZW4gaXRzIGJhc2UgdHlwZSdzIGRlc2NyaXB0b3IuICovXG5leHBvcnQgZnVuY3Rpb24gY29udHJpYnV0ZWRQbG90VHlwZU9wdGlvbihcbiAgZDogQ29udHJpYnV0ZWRQbG90VHlwZURlc2NyaXB0b3IsXG4gIGJhc2U6IFBsb3RUeXBlRGVzY3JpcHRvcixcbik6IFBsb3RUeXBlT3B0aW9uIHtcbiAgcmV0dXJuIHsgLi4uZCwgc291cmNlOiBiYXNlLnNvdXJjZSB9O1xufVxuIl19
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxvdC10eXBlLWNvbnRyaWJ1dGlvbi5jb250cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJhY3RzL3Bsb3QtdHlwZS1jb250cmlidXRpb24uY29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0NHO0FBQ0gsT0FBTyxFQUFFLGNBQWMsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQTBJckQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQ2xDLElBQUksY0FBYyxDQUFrQyx5QkFBeUIsQ0FBQyxDQUFDO0FBQ2pGLGtFQUFrRTtBQUNsRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBa0IsbUJBQW1CLENBQUMsQ0FBQztBQUMxRixrRUFBa0U7QUFDbEUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQWtCLG1CQUFtQixDQUFDLENBQUM7QUFhMUYsbUZBQW1GO0FBQ25GLE1BQU0sVUFBVSx5QkFBeUIsQ0FDdkMsQ0FBZ0MsRUFDaEMsSUFBd0I7SUFFeEIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7QUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSG93IGEgcGxvdCBtb2RlIGdldHMgaW50byB0aGUgcGxvdC10eXBlIHNlbGVjdG9yIHdpdGhvdXQgdGhpcyBsaWJyYXJ5IGtub3dpbmdcbiAqIHdoYXQgaXQgaXMuXG4gKlxuICogQSBwYWNrYWdlIGNvbnRyaWJ1dGVzIGEgbW9kZSBieSBwcm92aWRpbmcgYSB7QGxpbmsgUGxvdFR5cGVDb250cmlidXRpb259IG9uIHRoZVxuICoge0BsaW5rIFBMT1RfVFlQRV9DT05UUklCVVRJT05TfSBtdWx0aS1wcm92aWRlciB0b2tlbiwgdGhlIHNhbWUgd2F5XG4gKiBgVE9PTEJBUl9UT09MU2AgY29udHJpYnV0ZXMgdG9vbGJhciB0b29scy4gTm90aGluZyByZWdpc3RlcnMgYXQgaW1wb3J0IHRpbWU6XG4gKiBpbnN0YWxsaW5nIGEgcGFja2FnZSBtYWtlcyBhIG1vZGUgYXZhaWxhYmxlLCBhbmQgYWRkaW5nIGl0cyBwcm92aWRlciB0dXJucyBpdFxuICogb24uIEEgcGxhaW4gb2JqZWN0IHdvcmtzLCBzbyB0aGUgY29udHJpYnV0aW5nIHBhY2thZ2UgbmVlZHMgbm8gQW5ndWxhclxuICogY29tcGlsZXIgYW5kIG5vIGRlY29yYXRvcnM6XG4gKlxuICogICAgIHsgcHJvdmlkZTogUExPVF9UWVBFX0NPTlRSSUJVVElPTlMsIHVzZVZhbHVlOiBteUNvbnRyaWJ1dGlvbiwgbXVsdGk6IHRydWUgfVxuICogICAgIHsgcHJvdmlkZTogUExPVF9UWVBFX0NPTlRSSUJVVElPTlMsIHVzZUZhY3Rvcnk6ICgpID0+IG1ha2VDb250cmlidXRpb24oKSwgbXVsdGk6IHRydWUgfVxuICpcbiAqIFByb3ZpZGUgbm90aGluZyBhbmQgdGhlIHNlbGVjdG9yLCB0aGUgcmVuZGVyIHBhdGggYW5kIHRoZSBwYW5lbCBhcmVhIGJlaGF2ZVxuICogZXhhY3RseSBhcyB0aGV5IGRpZCBiZWZvcmUgdGhpcyBleHRlbnNpb24gcG9pbnQgZXhpc3RlZC5cbiAqXG4gKiBXSFkgQSBDT05UUklCVVRFRCBNT0RFIFJJREVTIE9OIEEgQlVJTFQtSU4gT05FXG4gKiBBIGNvbnRyaWJ1dGVkIG1vZGUgZG9lcyBub3QgYnJpbmcgYSByZW5kZXJlci4gSXQgbmFtZXMgYSBidWlsdC1pblxuICoge0BsaW5rIENvbnRyaWJ1dGVkUGxvdFR5cGVEZXNjcmlwdG9yLmJhc2VUeXBlfSDigJQgaW4gdjEgb25seSBgUGxvdFR5cGUuSU1BR0VgLFxuICogdGhlIE9wZW5TZWFkcmFnb24gdmlldyDigJQgYW5kIHRoZSB2aXN1YWxpemVyIHBsb3RzIGV4YWN0bHkgYXMgaWYgdGhhdCB0eXBlIGhhZFxuICogYmVlbiBzZWxlY3RlZDogc2FtZSBiYWNrZW5kLCBzYW1lIHRvb2xiYXIsIHNhbWUgcmVnaW9uIHRvb2xzLCBzYW1lIHdoZWVsXG4gKiBoYW5kbGluZy4gVGhlIGNvbnRyaWJ1dGlvbiB0aGVuIGRyYXdzIG92ZXIgaXQgdGhyb3VnaCB0aGVcbiAqIHtAbGluayBQbG90TW9kZVZpZXdwb3J0fSBhbmQgdGFsa3MgdG8gdGhlIHZpZXdlciB0aHJvdWdoIHRoZSBwdWJsaWNcbiAqIHtAbGluayBJVmlzdWFsaXplcn0uIFRoYXQga2VlcHMgZXZlcnkgcmVuZGVyaW5nIGRlY2lzaW9uIGluIG9uZSBwbGFjZSBhbmQgbWVhbnNcbiAqIGEgY29udHJpYnV0aW9uIGNhbiBuZXZlciBiZSBoYWxmLXN1cHBvcnRlZCBieSBzb21lIGNvZGUgcGF0aCB0aGF0IHN3aXRjaGVzIG9uXG4gKiB0aGUgcGxvdCB0eXBlLlxuICpcbiAqIFdIQVQgVEhFIFZJU1VBTElaRVIgR1VBUkFOVEVFU1xuICogIDEuIENvbnRyaWJ1dGVkIGRlc2NyaXB0b3JzIGFyZSBhcHBlbmRlZCBhZnRlciB0aGUgYnVpbHQtaW4gb25lcyBhbmQgY3VyYXRlZCBieVxuICogICAgIHRoZSBzYW1lIGBwcm9kdWN0aW9uTGFiZWxgIC8gdGVzdC1tb2RlIC8gYHJlcXVpcmVzKmAgcnVsZXMuXG4gKiAgMi4gU2VsZWN0aW5nIG9uZSBwbG90cyB3aXRoIGBiYXNlVHlwZWAncyBiYWNrZW5kLCB0aGVuIGNhbGxzIGBhY3RpdmF0ZShjdHgpYFxuICogICAgIG9uY2UgdGhlIHZpZXdwb3J0IGlzIHJlYWR5LlxuICogIDMuIExlYXZpbmcgdGhlIG1vZGUg4oCUIGFub3RoZXIgdHlwZSwgYW4gaW1hZ2Ugc3dpdGNoIChvciBhbnkgcmUtcmVuZGVyIG9mIHRoZVxuICogICAgIGJhc2UgdmlldyksIG9yIHRoZSB2aXN1YWxpemVyIGJlaW5nIGRlc3Ryb3llZCDigJQgY2FsbHMgYHNlc3Npb24uZGVhY3RpdmF0ZSgpYFxuICogICAgIGV4YWN0bHkgb25jZSwgYmVmb3JlIHRoZSBuZXh0IG1vZGUgZHJhd3MuIElmIHRoZSBtb2RlIGlzIHN0aWxsIHNlbGVjdGVkXG4gKiAgICAgd2hlbiB0aGUgbmV3IGltYWdlIGhhcyBwbG90dGVkLCBhIGZyZXNoIHNlc3Npb24gaXMgYWN0aXZhdGVkIGZvciBpdC5cbiAqICA0LiBgcGFuZWxgIGlzIHNob3duIG9ubHkgd2hpbGUgYSBzZXNzaW9uIGlzIGxpdmUuXG4gKiAgNS4gQSB0aHJvd24gZXJyb3Igb3IgcmVqZWN0ZWQgcHJvbWlzZSBmcm9tIGBhY3RpdmF0ZWAsIGBkZWFjdGl2YXRlYCwgYG1vdW50YFxuICogICAgIG9yIGEgbW91bnQncyB0ZWFyZG93biBpcyBjYXVnaHQgYW5kIGxvZ2dlZDsgbm9uZSBlc2NhcGVzLCBzbyBhIGNvbnRyaWJ1dGlvblxuICogICAgIGNhbm5vdCBicmVhayB0aGUgdmlld2VyLiBGYWlsaW5nIHRvIHN0YXJ0IChgYWN0aXZhdGVgLCBgbW91bnRgLCBvciBhIHBhbmVsXG4gKiAgICAgY29tcG9uZW50IHRocm93aW5nIHdoaWxlIGl0IGlzIGNyZWF0ZWQgLyBmaXJzdCByZW5kZXJlZCkgZmFsbHMgYmFja1xuICogICAgIHRvIGBiYXNlVHlwZWAuIEZhaWxpbmcgdG8gY2xlYW4gdXAgZmFsbHMgYmFjayB3aGVuIHRoYXQgc2FtZSBtb2RlIGlzIGJlaW5nXG4gKiAgICAgcmUtYWN0aXZhdGVkIChiYXNlIHJlLXJlbmRlciwgaW1hZ2Ugc3dpdGNoKSDigJQgaW1tZWRpYXRlbHkgaWYgaXQgYWxyZWFkeSBpc1xuICogICAgIGxpdmUgYWdhaW4g4oCUIGFuZCBpcyBvbmx5IGxvZ2dlZCB3aGVuIHRoZSB1c2VyIGhhcyBtb3ZlZCB0byBhbm90aGVyIG1vZGU7IHRoZVxuICogICAgIHVzZXIgZXhwbGljaXRseSBzZWxlY3RpbmcgaXQgYWdhaW4gZ2V0cyBhIGZyZXNoIGF0dGVtcHQuXG4gKiAgNi4ge0BsaW5rIFBMT1RfVFlQRV9DT05UUklCVVRJT05TfSBoYXMgbm8gZmFjdG9yeTogbm8gcHJvdmlkZXJzLCBubyBtb2Rlcy5cbiAqL1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgdHlwZSB7IElJbWFnZUluZm8gfSBmcm9tICcuL2ltYWdlLmNvbnRyYWN0JztcbmltcG9ydCB0eXBlIHsgUGxvdFR5cGUsIFBsb3RUeXBlRGVzY3JpcHRvciwgUGxvdFR5cGVJZCB9IGZyb20gJy4vcGxvdC10eXBlJztcbmltcG9ydCB0eXBlIHsgSVZpc3VhbGl6ZXIgfSBmcm9tICcuL3Zpc3VhbGl6ZXIuY29udHJhY3QnO1xuXG4vKiogQSByZWN0YW5nbGUgaW4gbGV2ZWwtMCBpbWFnZSBwaXhlbHMuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsb3RNb2RlUmVjdCB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbn1cblxuLyoqIFNlbGVjdG9yIG1ldGFkYXRhIGZvciBhIGNvbnRyaWJ1dGVkIHBsb3QgbW9kZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJpYnV0ZWRQbG90VHlwZURlc2NyaXB0b3Ige1xuICAvKiogVW5pcXVlIGlkLCBuYW1lc3BhY2VkLCBlLmcuICdkaWFubmUnLiBNdXN0IG5vdCBjbGFzaCB3aXRoIFBsb3RUeXBlIHZhbHVlcy4gKi9cbiAgdHlwZTogc3RyaW5nO1xuICAvKiogVGVzdC1tb2RlIGxhYmVsLCBlLmcuICdEaWdpdGFsIFBhdGhvbG9neSAtIERJQU5ORScuICovXG4gIGxhYmVsOiBzdHJpbmc7XG4gIC8qKiBEZWZhdWx0LXNlbGVjdG9yIGxhYmVsOyBvbWl0IHRvIG1ha2UgdGhlIG1vZGUgdGVzdC1vbmx5IChzYW1lIHJ1bGUgYXMgYnVpbHQtaW5zKS4gKi9cbiAgcHJvZHVjdGlvbkxhYmVsPzogc3RyaW5nO1xuICAvKiogJ3BpIHBpLeKApicgY2xhc3Mgb3IgYXNzZXQgcGF0aCwgc2FtZSBhcyBQbG90VHlwZURlc2NyaXB0b3IuaWNvbi4gKi9cbiAgaWNvbj86IHN0cmluZztcbiAgLyoqIEFsd2F5cyAnMmQnIGluIHYxLiAqL1xuICBkaW1lbnNpb25zOiAnMmQnO1xuICAvKiogQnVpbHQtaW4gdHlwZSB3aG9zZSBiYWNrZW5kIHJlbmRlcnMgdGhlIGJhc2UgaW1hZ2UuIHYxIHN1cHBvcnRzIFBsb3RUeXBlLklNQUdFIChPU0QpLiAqL1xuICBiYXNlVHlwZTogUGxvdFR5cGU7XG4gIC8qKiBTYW1lIGdhdGVzIGFzIFBsb3RUeXBlRGVzY3JpcHRvciwgZXZhbHVhdGVkIGluIGFkZGl0aW9uIHRvIHRoZSBiYXNlIHR5cGUncyBvd24uICovXG4gIHJlcXVpcmVzR3JheXNjYWxlPzogYm9vbGVhbjtcbiAgcmVxdWlyZXNTdGFjaz86IGJvb2xlYW47XG4gIC8qKiBIaWRkZW4gdW50aWwgYSBgU3BhdGlhbERhdGFzZXRgIGlzIHB1Ymxpc2hlZCBvbiBTUEFUSUFMX0RBVEFfUE9SVCAoYW4gb3ZlcmxheSBvZiBzcGF0aWFsIG9ic2VydmF0aW9ucykuICovXG4gIHJlcXVpcmVzU3BhdGlhbERhdGE/OiBib29sZWFuO1xuICAvKiogSGlkZGVuIHVubGVzcyB0aGUgcHVibGlzaGVkIGRhdGFzZXQgY2FycmllcyBgb2JzZXJ2YXRpb25zLnpgLiAqL1xuICByZXF1aXJlc1NwYXRpYWwzZD86IGJvb2xlYW47XG59XG5cbi8qKiBUaGUgYmFzZSB2aWV3J3Mgdmlld3BvcnQsIGFzIGEgY29udHJpYnV0ZWQgbW9kZSBzZWVzIGl0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbG90TW9kZVZpZXdwb3J0IHtcbiAgLyoqIEVsZW1lbnQgdGhlIG1vZGUncyBvdmVybGF5IGNhbnZhcy9TVkcgYXR0YWNoZXMgdG87IGZpbGxzIHRoZSBwbG90IGFyZWEuICovXG4gIGdldE92ZXJsYXlDb250YWluZXIoKTogSFRNTEVsZW1lbnQgfCBudWxsO1xuICAvKiogTGV2ZWwtMCBpbWFnZSBweCAtPiBjbGllbnQgcHgsIGFuZCB0aGUgcmV2ZXJzZS4gKi9cbiAgZGF0YVRvQ2xpZW50KHg6IG51bWJlciwgeTogbnVtYmVyKTogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xuICBjbGllbnRUb0RhdGEoY2xpZW50WDogbnVtYmVyLCBjbGllbnRZOiBudW1iZXIpOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XG4gIC8qKiBTY3JlZW4gcHggcGVyIGltYWdlIHB4IGF0IHRoZSBjdXJyZW50IHpvb20uICovXG4gIGRhdGFMZW5ndGhUb1NjcmVlbihsZW46IG51bWJlcik6IG51bWJlcjtcbiAgaXNSZWFkeSgpOiBib29sZWFuO1xuICAvKiogVmlzaWJsZSBpbWFnZSByZWN0IGluIGxldmVsLTAgcHgsIGVtaXR0ZWQgb24gZXZlcnkgcmVkcmF3IGZyYW1lIChwYW4vem9vbSBhbmltYXRpb24pLlxuICAgKiAgQSBuZXcgc3Vic2NyaWJlciBmaXJzdCByZWNlaXZlcyB0aGUgY3VycmVudCByZWN0IHdoZW4gdGhlIHZpZXdwb3J0IGlzIHJlYWR5LiAqL1xuICBmcmFtZSQ6IE9ic2VydmFibGU8UGxvdE1vZGVSZWN0PjtcbiAgLyoqIFNhbWUgcmVjdCwgZW1pdHRlZCBvbmNlIHRoZSB2aWV3cG9ydCBzZXR0bGVzIChleGlzdGluZyBnZXRWaWV3cG9ydENoYW5nZSQgc2VtYW50aWNzKS5cbiAgICogIEEgbmV3IHN1YnNjcmliZXIgZmlyc3QgcmVjZWl2ZXMgdGhlIGN1cnJlbnQgcmVjdCB3aGVuIHRoZSB2aWV3cG9ydCBpcyByZWFkeS4gKi9cbiAgc2V0dGxlZCQ6IE9ic2VydmFibGU8UGxvdE1vZGVSZWN0PjtcbiAgLyoqXG4gICAqIFBhbiBhbmQgem9vbSBzbyBhIGxldmVsLTAgaW1hZ2UgcmVjdCBmaWxscyB0aGUgdmlldyAod2l0aGluIHRoZSB2aWV3ZXIncyB6b29tXG4gICAqIGNvbnN0cmFpbnRzKSwgZS5nLiB0byB0YWtlIHRoZSB1c2VyIHRvIGEgcmVnaW9uIGEgbW9kZSBwcm9wb3Nlcy4gQW5pbWF0ZWQgdW5sZXNzXG4gICAqIGBpbW1lZGlhdGVseWAuIEEgbm8tb3Agd2hpbGUgdGhlIHZpZXdwb3J0IGlzIG5vdCByZWFkeS4gT3B0aW9uYWw6IGJhY2tlbmRzIHdpdGhvdXRcbiAgICogYSAyRCBpbWFnZSB2aWV3cG9ydCBsZWF2ZSBpdCBvdXQsIHNvIGNhbGxlcnMgZmVhdHVyZS1kZXRlY3QgaXQuXG4gICAqL1xuICBmaXRCb3VuZHM/KHJlY3Q6IFBsb3RNb2RlUmVjdCwgb3B0aW9ucz86IHsgaW1tZWRpYXRlbHk/OiBib29sZWFuIH0pOiB2b2lkO1xufVxuXG4vKiogVGhlIGNsYXNzIGEge0BsaW5rIFBsb3RNb2RlVG9vbHMuYXJtQnJ1c2h9IHN0cm9rZSBwYWludHMuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsb3RNb2RlQnJ1c2hDbGFzcyB7XG4gIC8qKiBMYWJlbCBmb3IgdGhlIHBhaW50ZWQgcmVnaW9uczsgdGhlIHN0cm9rZSBvbmx5IGV4dGVuZHMgb3IgbWVyZ2VzIHJlZ2lvbnMgd2l0aCBpdC4gKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG4gIC8qKiBDb2xvdXIgZm9yIHRoZSBwYWludGVkIHJlZ2lvbnMgKGluc3RlYWQgb2YgdGhlIHRvb2xiYXIncyBzaGFwZSBjb2xvdXIpLiAqL1xuICBjb2xvcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgdmlzdWFsaXplcidzIG93biB0b29sYmFyIHRvb2xzLCBhcm1lZCBvbiBhIG1vZGUncyBiZWhhbGYuIEdvaW5nIHRocm91Z2hcbiAqIHRoaXMgcmF0aGVyIHRoYW4ge0BsaW5rIElWaXN1YWxpemVyfSBrZWVwcyB0aGUgdG9vbGJhciBpbiBzdGVwOiB0aGUgYXJtZWRcbiAqIHRvb2wncyBidXR0b24gaXMgaGlnaGxpZ2h0ZWQgYW5kIGl0cyBjb250cm9scyAoZS5nLiB0aGUgYnJ1c2ggc2l6ZSkgc2hvdy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbG90TW9kZVRvb2xzIHtcbiAgLyoqXG4gICAqIEFybSB0aGUgdG9vbGJhciBicnVzaCwgcGFpbnRpbmcgYGJydXNoQ2xhc3NgLiBDYWxsaW5nIGl0IGFnYWluIHdoaWxlIHRoZVxuICAgKiBicnVzaCBpcyBhcm1lZCBzd2l0Y2hlcyBjbGFzczsgdGhlIG5leHQgc3Ryb2tlIHN0YXJ0cyBhIHJlZ2lvbiBvZiBpdC5cbiAgICogVGhlIHVzZXIgcGlja2luZyBhbnkgdG9vbCBmcm9tIHRoZSB0b29sYmFyIChpbmNsdWRpbmcgdGhlIGJydXNoKSByZXBsYWNlc1xuICAgKiB0aGlzIHdpdGggdGhlIHBsYWluIHRvb2wuXG4gICAqL1xuICBhcm1CcnVzaChicnVzaENsYXNzPzogUGxvdE1vZGVCcnVzaENsYXNzKTogdm9pZDtcbiAgLyoqIERpc2FybSB3aGF0ZXZlciB0b29sIGlzIGFybWVkLCBhcyBpZiB0aGUgdXNlciB0b2dnbGVkIGl0IG9mZi4gKi9cbiAgZGlzYXJtKCk6IHZvaWQ7XG4gIC8qKiBUaGUgYXJtZWQgdG9vbGJhciB0b29sIGlkICgnYnJ1c2gnLCAncGFuJywg4oCmIG9yIG51bGwpLiBSZXBsYXlzIHRoZSBjdXJyZW50IHZhbHVlLiAqL1xuICBhY3RpdmVUb29sJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPjtcbn1cblxuLyoqIEV2ZXJ5dGhpbmcgYSBjb250cmlidXRlZCBtb2RlIGdldHMgdG8gd29yayB3aXRoIHdoaWxlIGl0IGlzIGFjdGl2ZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxvdE1vZGVDb250ZXh0IHtcbiAgLyoqIEZ1bGwgcHVibGljIHZpc3VhbGl6ZXIgQVBJOiByZWdpb25zLCByZWdpb24gb3ZlcmxheSAodG9vbCBtb2RlcyksIHVuZG8sIGV0Yy4gKi9cbiAgdmlzdWFsaXplcjogSVZpc3VhbGl6ZXI7XG4gIHZpZXdwb3J0OiBQbG90TW9kZVZpZXdwb3J0O1xuICAvKiogQ3VycmVudCBpbWFnZSBpbmZvIGZyb20gSU1BR0VfU1RBVEVfUE9SVCAobnVsbCB1bnRpbCBhbiBpbWFnZSBpcyBsb2FkZWQpLiAqL1xuICBpbWFnZUluZm8kOiBPYnNlcnZhYmxlPElJbWFnZUluZm8gfCBudWxsPjtcbiAgLyoqIFRvb2xiYXIgdG9vbHMgKHNpbmNlIDAuNi4wKS4gT3B0aW9uYWwgc28gYSBjb250ZXh0IGJ1aWx0IGZvciAwLjUuMCBzdGlsbCB0eXBlLWNoZWNrcy4gKi9cbiAgdG9vbHM/OiBQbG90TW9kZVRvb2xzO1xufVxuXG4vKiogQSBsaXZlIGFjdGl2YXRpb24gb2YgYSBjb250cmlidXRlZCBtb2RlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbG90TW9kZVNlc3Npb24ge1xuICAvKiogQ2FsbGVkIHdoZW4gdGhlIHVzZXIgbGVhdmVzIHRoZSBtb2RlLCB0aGUgaW1hZ2UgY2hhbmdlcywgb3IgdGhlIHZpc3VhbGl6ZXIgaXMgZGVzdHJveWVkLiAqL1xuICBkZWFjdGl2YXRlKCk6IHZvaWQ7XG59XG5cbi8qKlxuICogVGhlIG1vZGUncyBzaWRlIHBhbmVsLCBzaG93biBpbiB0aGUgdmlzdWFsaXplcidzIHJpZ2h0LWhhbmQgcGFuZWwgYXJlYSB3aGlsZVxuICogYSBzZXNzaW9uIGlzIGxpdmUuIFR3byBmb3JtczpcbiAqXG4gKiAgLSBgY29tcG9uZW50YDogYW4gQW5ndWxhciBjb21wb25lbnQsIHJlbmRlcmVkIHRocm91Z2ggYE5nQ29tcG9uZW50T3V0bGV0YFxuICogICAgd2l0aCB7QGxpbmsgUExPVF9NT0RFX0NPTlRFWFR9IGFuZCB7QGxpbmsgUExPVF9NT0RFX1NFU1NJT059IGluIGl0c1xuICogICAgaW5qZWN0b3IuIE5lZWRzIGFuIEFPVC1jb21waWxlZCAocGFydGlhbC1JdnkpIGNvbXBvbmVudC5cbiAqICAtIGBtb3VudGA6IGZyYW1ld29yay1hZ25vc3RpYy4gVGhlIHZpc3VhbGl6ZXIgaGFuZHMgb3ZlciBhbiBlbXB0eSBob3N0XG4gKiAgICBlbGVtZW50IGFmdGVyIGBhY3RpdmF0ZWAgcmVzb2x2ZXM7IHRoZSBmdW5jdGlvbiByZW5kZXJzIGludG8gaXQgYW5kIHJldHVybnNcbiAqICAgIGEgdGVhcmRvd24uIFRoZSB0ZWFyZG93biBpcyBjYWxsZWQgZXhhY3RseSBvbmNlIHdoZW4gdGhlIG1vZGUgZGVhY3RpdmF0ZXMsXG4gKiAgICBiZWZvcmUgYHNlc3Npb24uZGVhY3RpdmF0ZSgpYCwgYW5kIHRoZSBob3N0IGVsZW1lbnQgaXMgdGhlbiByZW1vdmVkLlxuICovXG5leHBvcnQgdHlwZSBQbG90TW9kZVBhbmVsID1cbiAgfCB7IHRpdGxlOiBzdHJpbmc7IGNvbXBvbmVudDogVHlwZTx1bmtub3duPiB9XG4gIHwge1xuICAgICAgdGl0bGU6IHN0cmluZztcbiAgICAgIG1vdW50KGhvc3Q6IEhUTUxFbGVtZW50LCBjdHg6IFBsb3RNb2RlQ29udGV4dCwgc2Vzc2lvbjogUGxvdE1vZGVTZXNzaW9uKTogKCkgPT4gdm9pZDtcbiAgICB9O1xuXG4vKiogQSBwbG90IG1vZGUgY29udHJpYnV0ZWQgdG8gdGhlIHNlbGVjdG9yLiBBIHBsYWluIG9iamVjdCBpcyBlbm91Z2guICovXG5leHBvcnQgaW50ZXJmYWNlIFBsb3RUeXBlQ29udHJpYnV0aW9uIHtcbiAgZGVzY3JpcHRvcjogQ29udHJpYnV0ZWRQbG90VHlwZURlc2NyaXB0b3I7XG4gIC8qKiBDYWxsZWQgYWZ0ZXIgdGhlIGJhc2UgYmFja2VuZCBoYXMgcGxvdHRlZCB0aGUgaW1hZ2UgaW4gdGhpcyBtb2RlLiAqL1xuICBhY3RpdmF0ZShjdHg6IFBsb3RNb2RlQ29udGV4dCk6IFBsb3RNb2RlU2Vzc2lvbiB8IFByb21pc2U8UGxvdE1vZGVTZXNzaW9uPjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIHNpZGUgcGFuZWwsIHJlbmRlcmVkIGluIHRoZSB2aXN1YWxpemVyJ3MgcmlnaHQtaGFuZCBwYW5lbCBhcmVhIHdoaWxlIHRoZVxuICAgKiBtb2RlIGlzIGFjdGl2ZS4gQSBjb21wb25lbnQgcGFuZWwgY2FuIGluamVjdCBQTE9UX01PREVfQ09OVEVYVCBhbmQgUExPVF9NT0RFX1NFU1NJT04uXG4gICAqL1xuICBwYW5lbD86IFBsb3RNb2RlUGFuZWw7XG59XG5cbi8qKlxuICogTXVsdGktcHJvdmlkZXIgdG9rZW4gZm9yIGNvbnRyaWJ1dGVkIHBsb3QgbW9kZXMuXG4gKlxuICogRGVsaWJlcmF0ZWx5IGhhcyBubyBgZmFjdG9yeWA6IHVucmVnaXN0ZXJlZCBtZWFucyBubyBjb250cmlidXRlZCBtb2RlcywgYW5kIHRoZVxuICogbGlicmFyeSBiZWhhdmVzIGV4YWN0bHkgYXMgYmVmb3JlLiBUaGUgdmlzdWFsaXplciBpbmplY3RzIGl0IGB7IG9wdGlvbmFsOiB0cnVlIH1gXG4gKiBhbmQgdHJlYXRzIG51bGwgYXMgZW1wdHkuXG4gKi9cbmV4cG9ydCBjb25zdCBQTE9UX1RZUEVfQ09OVFJJQlVUSU9OUyA9XG4gIG5ldyBJbmplY3Rpb25Ub2tlbjxyZWFkb25seSBQbG90VHlwZUNvbnRyaWJ1dGlvbltdPignUExPVF9UWVBFX0NPTlRSSUJVVElPTlMnKTtcbi8qKiBUaGUgYWN0aXZlIG1vZGUncyBjb250ZXh0LCBpbiBhIGNvbXBvbmVudCBwYW5lbCdzIGluamVjdG9yLiAqL1xuZXhwb3J0IGNvbnN0IFBMT1RfTU9ERV9DT05URVhUID0gbmV3IEluamVjdGlvblRva2VuPFBsb3RNb2RlQ29udGV4dD4oJ1BMT1RfTU9ERV9DT05URVhUJyk7XG4vKiogVGhlIGFjdGl2ZSBtb2RlJ3Mgc2Vzc2lvbiwgaW4gYSBjb21wb25lbnQgcGFuZWwncyBpbmplY3Rvci4gKi9cbmV4cG9ydCBjb25zdCBQTE9UX01PREVfU0VTU0lPTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxQbG90TW9kZVNlc3Npb24+KCdQTE9UX01PREVfU0VTU0lPTicpO1xuXG4vKipcbiAqIE9uZSBlbnRyeSBpbiB0aGUgcGxvdC10eXBlIHNlbGVjdG9yOiBhIGJ1aWx0LWluIHtAbGluayBQbG90VHlwZURlc2NyaXB0b3J9XG4gKiBhcy1pcywgb3IgYSBjb250cmlidXRlZCBkZXNjcmlwdG9yIGNvbXBsZXRlZCB3aXRoIGl0cyBiYXNlIHR5cGUncyBgc291cmNlYC5cbiAqIEV2ZXJ5IGVudHJ5IHRoZXJlZm9yZSBjYXJyaWVzIHRoZSBzYW1lIGZpZWxkcyB0aGUgc2VsZWN0b3IgY3VyYXRlcyBieS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbG90VHlwZU9wdGlvbiBleHRlbmRzIE9taXQ8UGxvdFR5cGVEZXNjcmlwdG9yLCAndHlwZSc+IHtcbiAgdHlwZTogUGxvdFR5cGVJZDtcbiAgLyoqIFNldCBvbmx5IGZvciBhIGNvbnRyaWJ1dGVkIG1vZGU6IHRoZSBidWlsdC1pbiB0eXBlIHRoYXQgcmVuZGVycyBpdC4gKi9cbiAgYmFzZVR5cGU/OiBQbG90VHlwZTtcbn1cblxuLyoqIFRoZSBzZWxlY3RvciBlbnRyeSBmb3IgYSBjb250cmlidXRlZCBtb2RlLCBnaXZlbiBpdHMgYmFzZSB0eXBlJ3MgZGVzY3JpcHRvci4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb250cmlidXRlZFBsb3RUeXBlT3B0aW9uKFxuICBkOiBDb250cmlidXRlZFBsb3RUeXBlRGVzY3JpcHRvcixcbiAgYmFzZTogUGxvdFR5cGVEZXNjcmlwdG9yLFxuKTogUGxvdFR5cGVPcHRpb24ge1xuICByZXR1cm4geyAuLi5kLCBzb3VyY2U6IGJhc2Uuc291cmNlIH07XG59XG4iXX0=
@@ -2,4 +2,4 @@ import { InjectionToken } from '@angular/core';
2
2
  /** {@link TranscriptTileQuery.genes} value meaning "every gene". */
3
3
  export const ALL_GENES = '*';
4
4
  export const SPATIAL_DATA_PORT = new InjectionToken('SPATIAL_DATA_PORT');
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhdGlhbC1kYXRhLnBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyYWN0cy9wb3J0cy9zcGF0aWFsLWRhdGEucG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBdUIvQyxvRUFBb0U7QUFDcEUsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQztBQTRJN0IsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQWtCLG1CQUFtQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBTcGF0aWFsQ29sdW1uLCBTcGF0aWFsRGF0YXNldCwgU3BhdGlhbERlbnNpdHlSYXN0ZXIsIFNwYXRpYWxFbWJlZGRpbmcsIFNwYXRpYWxQb2x5Z29uVGlsZSxcbiAgQ2F0ZWdvcmljYWxDb2x1bW5NZXRhLCBTcGF0aWFsUG9seWdvbnMsIFNwYXRpYWxUcmFuc2NyaXB0Q291bnRzLCBTcGF0aWFsVHJhbnNjcmlwdFN1bW1hcnksXG4gIFNwYXRpYWxUcmFuc2NyaXB0VGlsZSxcbn0gZnJvbSAnLi4vc3BhdGlhbC1kYXRhc2V0LmNvbnRyYWN0JztcblxuLyoqIE9wdGlvbnMgZm9yIHtAbGluayBTcGF0aWFsRGF0YVBvcnQuZ2V0VHJhbnNjcmlwdFRpbGV9LiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFuc2NyaXB0VGlsZVF1ZXJ5IHtcbiAgLyoqXG4gICAqIEdlbmVzIHRvIGluY2x1ZGUsIGJ5IG5hbWU7IHRoZSB0aWxlJ3MgYGdlbmVgIGNvZGVzIGluZGV4IHRoaXMgbGlzdC4gYFtBTExfR0VORVNdYFxuICAgKiBhc2tzIGZvciBldmVyeSBnZW5lLCB1bmFnZ3JlZ2F0ZWQsIGF0IGxldmVsIDAgb25seSBhbmQgY2xpcHBlZCB0byB7QGxpbmsgYm94fSDigJQgdGhlXG4gICAqIGBnZW5lYCBjb2RlcyBhcmUgdGhlbiB0aGUgZGF0YXNldCdzIG93biBnZW5lIGluZGljZXMuXG4gICAqL1xuICBnZW5lczogc3RyaW5nW107XG4gIC8qKiBgaGlnaGAgKGRlZmF1bHQpIGtlZXBzIG9ubHkgY29uZmlkZW50bHkgZGVjb2RlZCB0cmFuc2NyaXB0cy4gKi9cbiAgcXVhbGl0eT86ICdoaWdoJyB8ICdhbGwnO1xuICAvKiogQ2xpcCB0byBgW3gwLCB5MCwgeDEsIHkxXWAgaW4gb2JzZXJ2YXRpb24gdW5pdHMuICovXG4gIGJveD86IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdO1xufVxuXG4vKioge0BsaW5rIFRyYW5zY3JpcHRUaWxlUXVlcnkuZ2VuZXN9IHZhbHVlIG1lYW5pbmcgXCJldmVyeSBnZW5lXCIuICovXG5leHBvcnQgY29uc3QgQUxMX0dFTkVTID0gJyonO1xuXG4vKipcbiAqIFNwYXRpYWwtb21pY3MgZGF0YSBhY2Nlc3MsIGludmVydGVkIGFzIGEgcG9ydCBzbyB0aGUgdmlzdWFsaXphdGlvbiBsaWJyYXJ5XG4gKiBuZXZlciBsZWFybnMgaG93IHRoZSBkYXRhIGlzIHN0b3JlZCBvciBzZXJ2ZWQg4oCUIGV4YWN0bHkgbGlrZVxuICogYFRJTEVfQUNDRVNTX1BPUlRgIGZvciB0aWxlcyBhbmQgYFJFR0lPTl9JT19QT1JUYCBmb3IgYW5ub3RhdGlvbnMuIFRoZSBob3N0XG4gKiBzdXBwbGllcyBhbiBhZGFwdGVyOyB0aGUgbGlicmFyeSBjb25zdW1lcyB0eXBlZCBhcnJheXMuXG4gKlxuICogV0hZIEEgUE9SVCBBTkQgTk9UIEEgUkVBREVSXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFRoZSBpbnRlcmNoYW5nZSBmb3JtYXQgZm9yIHRoaXMgZGF0YSAoU3BhdGlhbERhdGEgWmFyciB2MyArIEFubkRhdGFcbiAqIGNvbnZlbnRpb25zICsgR2VvUGFycXVldCBzaGFwZXMpIG5lZWRzIHRocmVlIHBhcnNlcnMsIGFuZCBpdHMgZXhwcmVzc2lvblxuICogbWF0cml4IGlzIHN0b3JlZCBvYnNlcnZhdGlvbi1tYWpvciDigJQgc28gcmVhZGluZyBhIHNpbmdsZSBnZW5lJ3MgY29sdW1uIG1lYW5zXG4gKiB0b3VjaGluZyBldmVyeSByb3cuIEEgc2VydmVyIGNhbiBwcmUtaW5kZXggdGhhdCBvbmNlOyBhIGJyb3dzZXIgY2Fubm90LiBTb1xuICogdGhlIGxpYnJhcnkgdGFrZXMgdmVjdG9ycyBpdCBjYW4gcmVuZGVyIGFuZCBsZWF2ZXMgaW5nZXN0IHRvIHdob2V2ZXIgb3ducyB0aGVcbiAqIGRhdGEuIGBTcGF0aWFsRGF0YUh0dHBTZXJ2aWNlYCBpcyBhIHJlYWR5LW1hZGUgYWRhcHRlciBmb3IgdGhlIHdpcmUgZm9ybWF0XG4gKiB0aGUgYnVuZGxlZCBleGFtcGxlIHNlcnZlciBzcGVha3M7IGEgaG9zdCB3aXRoIGl0cyBvd24gYmFja2VuZCBpbXBsZW1lbnRzXG4gKiB0aGlzIGludGVyZmFjZSBpbnN0ZWFkLlxuICpcbiAqIExBWklORVNTIElTIFRIRSBQT0lOVFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBgZ2V0RGF0YXNldCQoKWAgeWllbGRzIG9ubHkgd2hhdCBpcyBjaGVhcCB0byBob2xkOiBjb29yZGluYXRlcyBwbHVzIGNvbHVtblxuICogYW5kIGZlYXR1cmUgKm1ldGFkYXRhKi4gRXZlcnkgYWNjZXNzb3IgYmVsb3cgZmV0Y2hlcyBvbmUgdmVjdG9yIGF0IGEgdGltZSxcbiAqIGZvciB0aGUgb25lIGNvbHVtbiBvciBnZW5lIGN1cnJlbnRseSBiZWluZyBkaXNwbGF5ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbERhdGFQb3J0IHtcbiAgLyoqXG4gICAqIFRoZSBkYXRhc2V0IGN1cnJlbnRseSBiZWluZyB2aXN1YWxpemVkLCBvciBudWxsIHdoZW4gbm9uZSBpcyBzZWxlY3RlZC5cbiAgICogRW1pdHMgYWdhaW4gd2hlbiB0aGUgaG9zdCBzd2l0Y2hlcyBkYXRhc2V0cywgc28gdGhlIHZpZXcgY2FuIHJlYnVpbGQuXG4gICAqL1xuICBnZXREYXRhc2V0JCgpOiBPYnNlcnZhYmxlPFNwYXRpYWxEYXRhc2V0IHwgbnVsbD47XG5cbiAgLyoqXG4gICAqIFZhbHVlcyBmb3Igb25lIGFubm90YXRpb24gY29sdW1uLCBpbmRleC1hbGlnbmVkIHdpdGggdGhlIG9ic2VydmF0aW9ucy5cbiAgICogVGhlIGNvbHVtbiBtdXN0IGJlIG9uZSBhZHZlcnRpc2VkIGluIGBTcGF0aWFsRGF0YXNldC5jb2x1bW5zYDsgcmVqZWN0XG4gICAqIChkb24ndCByZXNvbHZlIGVtcHR5KSB3aGVuIGl0IGlzbid0LCBzbyBhIHR5cG8gc3VyZmFjZXMgaW5zdGVhZCBvZlxuICAgKiByZW5kZXJpbmcgYXMgXCJubyBkYXRhXCIuXG4gICAqXG4gICAqIEltcGxlbWVudGF0aW9ucyBzaG91bGQgY2FjaGUg4oCUIGNvbG91cmluZyBieSBjbHVzdGVyLCB0aGVuIGJ5IGEgZ2VuZSwgdGhlblxuICAgKiBiYWNrIGJ5IGNsdXN0ZXIgbXVzdCBub3QgcmVmZXRjaC5cbiAgICovXG4gIGdldENvbHVtbihuYW1lOiBzdHJpbmcpOiBQcm9taXNlPFNwYXRpYWxDb2x1bW4+O1xuXG4gIC8qKlxuICAgKiBPbmUgZmVhdHVyZSdzIChnZW5lJ3MpIGV4cHJlc3Npb24gdmVjdG9yLCBpbmRleC1hbGlnbmVkIHdpdGggdGhlXG4gICAqIG9ic2VydmF0aW9ucy4gUmVqZWN0cyBmb3IgYW4gdW5rbm93biBmZWF0dXJlLlxuICAgKi9cbiAgZ2V0RmVhdHVyZVZlY3RvcihuYW1lOiBzdHJpbmcpOiBQcm9taXNlPEZsb2F0MzJBcnJheT47XG5cbiAgLyoqXG4gICAqIE9uZSBlbWJlZGRpbmcncyBjb29yZGluYXRlcywgaW5kZXgtYWxpZ25lZCB3aXRoIHRoZSBvYnNlcnZhdGlvbnMuXG4gICAqXG4gICAqIFRoZSBuYW1lIG11c3QgYmUgb25lIGFkdmVydGlzZWQgaW4gYFNwYXRpYWxEYXRhc2V0LmVtYmVkZGluZ3NgOyByZWplY3RzIG90aGVyd2lzZSwgZm9yIHRoZVxuICAgKiBzYW1lIHJlYXNvbiBgZ2V0Q29sdW1uYCBkb2VzIOKAlCBhIHR5cG8gc2hvdWxkIHN1cmZhY2UgcmF0aGVyIHRoYW4gcmVuZGVyIGFzIGFuIGVtcHR5IHBsb3QuXG4gICAqXG4gICAqIE9wdGlvbmFsOiBhIGhvc3Qgd2l0aCBubyBlbWJlZGRpbmdzIHNpbXBseSBvbWl0cyBpdCwgYW5kIHRoZSBVSSBvZmZlcnMgbm8gZW1iZWRkaW5nIHZpZXdzLlxuICAgKi9cbiAgZ2V0RW1iZWRkaW5nPyhuYW1lOiBzdHJpbmcpOiBQcm9taXNlPFNwYXRpYWxFbWJlZGRpbmc+O1xuXG4gIC8qKlxuICAgKiBUeXBlYWhlYWQgb3ZlciBmZWF0dXJlIG5hbWVzLCBmb3IgZGF0YXNldHMgdG9vIHdpZGUgdG8gaW5saW5lIHRoZSBsaXN0XG4gICAqIChgU3BhdGlhbEZlYXR1cmVNZXRhLm5hbWVzYCBhYnNlbnQpLiBPcHRpb25hbDogYSBob3N0IHdob3NlIHBhbmVsIGlzIHNtYWxsXG4gICAqIGVub3VnaCB0byBpbmxpbmUgZXZlcnkgbmFtZSBuZWVkIG5vdCBpbXBsZW1lbnQgaXQg4oCUIHRoZSBVSSBmYWxscyBiYWNrIHRvXG4gICAqIGZpbHRlcmluZyBgbmFtZXNgIGxvY2FsbHkuXG4gICAqL1xuICBzZWFyY2hGZWF0dXJlcz8ocXVlcnk6IHN0cmluZywgbGltaXQ/OiBudW1iZXIpOiBQcm9taXNlPHN0cmluZ1tdPjtcblxuICAvKipcbiAgICogUGVyLW9ic2VydmF0aW9uIGJvdW5kYXJ5IGdlb21ldHJ5LCB3aGVuIHRoZSBkYXRhc2V0IGFkdmVydGlzZXNcbiAgICogYHBvbHlnb25zYC4gT3B0aW9uYWwg4oCUIGEgc3BvdC1iYXNlZCBhc3NheSAoVmlzaXVtKSBoYXMgbm8gc2VnbWVudGF0aW9uLlxuICAgKi9cbiAgZ2V0UG9seWdvbnM/KCk6IFByb21pc2U8U3BhdGlhbFBvbHlnb25zPjtcblxuICAvKipcbiAgICogT25lIHRpbGUgb2YgYm91bmRhcmllcyBmcm9tIGBwb2x5Z29uVGlsZXNgLiBBbiBlbXB0eSB0aWxlIHJlc29sdmVzIHdpdGggYGNvdW50YCAwIOKAlFxuICAgKiBhIHRpbGUgb3V0c2lkZSB0aGUgdGlzc3VlIGlzIGFuIGFuc3dlciwgbm90IGFuIGVycm9yLiBPcHRpb25hbDogb25seSBkYXRhc2V0cyB0aGF0XG4gICAqIGFkdmVydGlzZSBgcG9seWdvblRpbGVzYCBuZWVkIGl0LlxuICAgKi9cbiAgZ2V0UG9seWdvblRpbGU/KHNldDogc3RyaW5nLCBsZXZlbDogbnVtYmVyLCBneDogbnVtYmVyLCBneTogbnVtYmVyKTogUHJvbWlzZTxTcGF0aWFsUG9seWdvblRpbGU+O1xuXG4gIC8qKlxuICAgKiBPbmUgdGlsZSBvZiB0cmFuc2NyaXB0cyBmcm9tIGB0cmFuc2NyaXB0VGlsZXNgLCByZXN0cmljdGVkIHRvIGBxdWVyeS5nZW5lc2AuXG4gICAqIE9wdGlvbmFsOiBvbmx5IGRhdGFzZXRzIHRoYXQgYWR2ZXJ0aXNlIGB0cmFuc2NyaXB0VGlsZXNgIG5lZWQgaXQuXG4gICAqL1xuICBnZXRUcmFuc2NyaXB0VGlsZT8oXG4gICAgbGV2ZWw6IG51bWJlciwgZ3g6IG51bWJlciwgZ3k6IG51bWJlciwgcXVlcnk6IFRyYW5zY3JpcHRUaWxlUXVlcnksXG4gICk6IFByb21pc2U8U3BhdGlhbFRyYW5zY3JpcHRUaWxlPjtcblxuICAvKipcbiAgICogT25lIHRpbGUgb2YgdGhlIGFsbC1nZW5lIGdyb3VwaW5nIHB5cmFtaWQgKGB0cmFuc2NyaXB0Qmluc2ApOiBhbiBlbnRyeSBwZXIgYmluLCB3aXRoXG4gICAqIGB3ZWlnaHRgIGl0cyB0cmFuc2NyaXB0IGNvdW50IGFuZCBgb2JzZXJ2YXRpb25gIGl0cyBkb21pbmFudCBjZWxsLlxuICAgKi9cbiAgZ2V0VHJhbnNjcmlwdEJpbnM/KGxldmVsOiBudW1iZXIsIHR4OiBudW1iZXIsIHR5OiBudW1iZXIpOiBQcm9taXNlPFNwYXRpYWxUcmFuc2NyaXB0VGlsZT47XG5cbiAgLyoqXG4gICAqIFdoYXQgaXMgaW5zaWRlIGBib3hgIChvYnNlcnZhdGlvbiB1bml0cyk6IHRyYW5zY3JpcHQgY291bnQsIGRpc3RpbmN0IGdlbmVzIGFuZCBjZWxscyxcbiAgICogdGhlIG1vc3QgZnJlcXVlbnQgb2YgZWFjaCDigJQgb3B0aW9uYWxseSByZXN0cmljdGVkIHRvIGBnZW5lc2Ag4oCUIHBsdXMgZGlzcGxheSBpZHMgZm9yXG4gICAqIGBjZWxsc2AuIE9taXQgYGJveGAgZm9yIGEgY2VsbC1pZCBsb29rdXAgb25seS4gT3B0aW9uYWw7IGRyaXZlcyB0aGUgaG92ZXIgZGV0YWlscyBvZlxuICAgKiB0cmFuc2NyaXB0IG1hcmtlcnMuXG4gICAqL1xuICBnZXRUcmFuc2NyaXB0U3VtbWFyeT8ocXVlcnk6IHtcbiAgICBib3g/OiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXTsgZ2VuZXM/OiBzdHJpbmdbXTsgY2VsbHM/OiBudW1iZXJbXTtcbiAgfSk6IFByb21pc2U8U3BhdGlhbFRyYW5zY3JpcHRTdW1tYXJ5PjtcblxuICAvKipcbiAgICogVGhlIHN1bW1lZCB0cmFuc2NyaXB0IGRlbnNpdHkgb2YgYGdlbmVzYCAoYFtBTExfR0VORVNdYCBmb3IgZXZlcnkgZ2VuZSkgb24gdGhlXG4gICAqIGRhdGFzZXQncyBgZGVuc2l0eWAgcmFzdGVyLCByZS1iaW5uZWQgdG8gYGJpblNpemVgIG9ic2VydmF0aW9uIHVuaXRzIHdoZW4gZ2l2ZW4uXG4gICAqIE9wdGlvbmFsOiBvbmx5IGRhdGFzZXRzIHRoYXQgYWR2ZXJ0aXNlIGBkZW5zaXR5YCBuZWVkIGl0LlxuICAgKi9cbiAgZ2V0RGVuc2l0eT8oZ2VuZXM6IHN0cmluZ1tdLCBiaW5TaXplPzogbnVtYmVyKTogUHJvbWlzZTxTcGF0aWFsRGVuc2l0eVJhc3Rlcj47XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhIGNlbGwgZ3JvdXBpbmcg4oCUIGEgQ1NWL1RTViBvZiBgY2VsbF9pZGAgYW5kIGBncm91cGAg4oCUIHVuZGVyIGBsYWJlbGAuIFRoZSBuZXdcbiAgICogY2F0ZWdvcmljYWwgY29sdW1uIGlzIGFkZGVkIHRvIHRoZSBkYXRhc2V0ICh3aGljaCByZS1lbWl0cykgYW5kIHJlc29sdmVkLiBPcHRpb25hbC5cbiAgICovXG4gIGltcG9ydEdyb3Vwcz8obGFiZWw6IHN0cmluZywgdGFibGU6IHN0cmluZyk6IFByb21pc2U8eyBjb2x1bW46IENhdGVnb3JpY2FsQ29sdW1uTWV0YTsgbWF0Y2hlZDogbnVtYmVyIH0+O1xuXG4gIC8qKiBUcmFuc2NyaXB0IHRvdGFscyBwZXIgZ2VuZSwgZm9yIGVzdGltYXRpbmcgaG93IG1hbnkgbWFya2VycyBhIHNlbGVjdGlvbiBkcmF3cy4gKi9cbiAgZ2V0VHJhbnNjcmlwdENvdW50cz8oZ2VuZXM6IHN0cmluZ1tdKTogUHJvbWlzZTxTcGF0aWFsVHJhbnNjcmlwdENvdW50cz47XG5cbiAgLyoqXG4gICAqIFRoZSByZWZlcmVuY2Ugdm9sdW1lJ3Mgdm94ZWxzOiBhIHVpbnQ4IHNjYWxhciBmaWVsZCwgeC1mYXN0ZXN0LCBvZiBleGFjdGx5XG4gICAqIGB3aWR0aCAqIGhlaWdodCAqIGRlcHRoYCBieXRlcyBhcyB0aGUgZGF0YXNldCdzIHtAbGluayBTcGF0aWFsVm9sdW1lTWV0YX1cbiAgICogZGVjbGFyZXMuXG4gICAqXG4gICAqIE9wdGlvbmFsLCBhbmQgb25seSBtZWFuaW5nZnVsIHdoZW4gdGhlIGRhdGFzZXQgYWR2ZXJ0aXNlcyBhIHZvbHVtZS4gU2VwYXJhdGVcbiAgICogZnJvbSBgZ2V0RGF0YXNldCQoKWAgYmVjYXVzZSBpdCBpcyBtZWdhYnl0ZXM6IGEgaG9zdCB0aGF0IG5ldmVyIG9wZW5zIHRoZSAzRFxuICAgKiBtb2RlIHNob3VsZCBuZXZlciBwYXkgZm9yIGl0LlxuICAgKi9cbiAgZ2V0Vm9sdW1lPygpOiBQcm9taXNlPFVpbnQ4QXJyYXk+O1xuXG4gIC8qKlxuICAgKiBTZXJ2ZXItc2lkZSBcIndoaWNoIG9ic2VydmF0aW9ucyBmYWxsIGluc2lkZSB0aGlzIHBvbHlnb25cIiwgZm9yIGRhdGFzZXRzXG4gICAqIHRvbyBsYXJnZSB0byBoaXQtdGVzdCBjbGllbnQtc2lkZS4gT3B0aW9uYWw6IHdpdGhvdXQgaXQgdGhlIGxpYnJhcnlcbiAgICogcG9pbnQtaW4tcG9seWdvbnMgdGhlIHJlc2lkZW50IGNvb3JkaW5hdGVzIGl0c2VsZiwgd2hpY2ggaXMgZmluZSBpbnRvIHRoZVxuICAgKiAxMF41IHJhbmdlLiBDb29yZGluYXRlcyBhcmUgaW4gdGhlIHNhbWUgc3BhY2UgYXMgdGhlIG9ic2VydmF0aW9ucy5cbiAgICovXG4gIHF1ZXJ5Um9pPyhwb2x5Z29uOiB7IHg6IG51bWJlcltdOyB5OiBudW1iZXJbXSB9KTogUHJvbWlzZTxVaW50MzJBcnJheT47XG59XG5cbmV4cG9ydCBjb25zdCBTUEFUSUFMX0RBVEFfUE9SVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTcGF0aWFsRGF0YVBvcnQ+KCdTUEFUSUFMX0RBVEFfUE9SVCcpO1xuIl19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhdGlhbC1kYXRhLnBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyYWN0cy9wb3J0cy9zcGF0aWFsLWRhdGEucG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBdUIvQyxvRUFBb0U7QUFDcEUsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQztBQXlKN0IsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQWtCLG1CQUFtQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBTcGF0aWFsQ29sdW1uLCBTcGF0aWFsRGF0YXNldCwgU3BhdGlhbERlbnNpdHlSYXN0ZXIsIFNwYXRpYWxFbWJlZGRpbmcsIFNwYXRpYWxQb2x5Z29uVGlsZSxcbiAgQ2F0ZWdvcmljYWxDb2x1bW5NZXRhLCBTcGF0aWFsTWFya2VyR2VuZXMsIFNwYXRpYWxQb2x5Z29ucywgU3BhdGlhbFRyYW5zY3JpcHRDb3VudHMsIFNwYXRpYWxUcmFuc2NyaXB0U3VtbWFyeSxcbiAgU3BhdGlhbFRyYW5zY3JpcHRUaWxlLFxufSBmcm9tICcuLi9zcGF0aWFsLWRhdGFzZXQuY29udHJhY3QnO1xuXG4vKiogT3B0aW9ucyBmb3Ige0BsaW5rIFNwYXRpYWxEYXRhUG9ydC5nZXRUcmFuc2NyaXB0VGlsZX0uICovXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zY3JpcHRUaWxlUXVlcnkge1xuICAvKipcbiAgICogR2VuZXMgdG8gaW5jbHVkZSwgYnkgbmFtZTsgdGhlIHRpbGUncyBgZ2VuZWAgY29kZXMgaW5kZXggdGhpcyBsaXN0LiBgW0FMTF9HRU5FU11gXG4gICAqIGFza3MgZm9yIGV2ZXJ5IGdlbmUsIHVuYWdncmVnYXRlZCwgYXQgbGV2ZWwgMCBvbmx5IGFuZCBjbGlwcGVkIHRvIHtAbGluayBib3h9IOKAlCB0aGVcbiAgICogYGdlbmVgIGNvZGVzIGFyZSB0aGVuIHRoZSBkYXRhc2V0J3Mgb3duIGdlbmUgaW5kaWNlcy5cbiAgICovXG4gIGdlbmVzOiBzdHJpbmdbXTtcbiAgLyoqIGBoaWdoYCAoZGVmYXVsdCkga2VlcHMgb25seSBjb25maWRlbnRseSBkZWNvZGVkIHRyYW5zY3JpcHRzLiAqL1xuICBxdWFsaXR5PzogJ2hpZ2gnIHwgJ2FsbCc7XG4gIC8qKiBDbGlwIHRvIGBbeDAsIHkwLCB4MSwgeTFdYCBpbiBvYnNlcnZhdGlvbiB1bml0cy4gKi9cbiAgYm94PzogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG59XG5cbi8qKiB7QGxpbmsgVHJhbnNjcmlwdFRpbGVRdWVyeS5nZW5lc30gdmFsdWUgbWVhbmluZyBcImV2ZXJ5IGdlbmVcIi4gKi9cbmV4cG9ydCBjb25zdCBBTExfR0VORVMgPSAnKic7XG5cbi8qKlxuICogU3BhdGlhbC1vbWljcyBkYXRhIGFjY2VzcywgaW52ZXJ0ZWQgYXMgYSBwb3J0IHNvIHRoZSB2aXN1YWxpemF0aW9uIGxpYnJhcnlcbiAqIG5ldmVyIGxlYXJucyBob3cgdGhlIGRhdGEgaXMgc3RvcmVkIG9yIHNlcnZlZCDigJQgZXhhY3RseSBsaWtlXG4gKiBgVElMRV9BQ0NFU1NfUE9SVGAgZm9yIHRpbGVzIGFuZCBgUkVHSU9OX0lPX1BPUlRgIGZvciBhbm5vdGF0aW9ucy4gVGhlIGhvc3RcbiAqIHN1cHBsaWVzIGFuIGFkYXB0ZXI7IHRoZSBsaWJyYXJ5IGNvbnN1bWVzIHR5cGVkIGFycmF5cy5cbiAqXG4gKiBXSFkgQSBQT1JUIEFORCBOT1QgQSBSRUFERVJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVGhlIGludGVyY2hhbmdlIGZvcm1hdCBmb3IgdGhpcyBkYXRhIChTcGF0aWFsRGF0YSBaYXJyIHYzICsgQW5uRGF0YVxuICogY29udmVudGlvbnMgKyBHZW9QYXJxdWV0IHNoYXBlcykgbmVlZHMgdGhyZWUgcGFyc2VycywgYW5kIGl0cyBleHByZXNzaW9uXG4gKiBtYXRyaXggaXMgc3RvcmVkIG9ic2VydmF0aW9uLW1ham9yIOKAlCBzbyByZWFkaW5nIGEgc2luZ2xlIGdlbmUncyBjb2x1bW4gbWVhbnNcbiAqIHRvdWNoaW5nIGV2ZXJ5IHJvdy4gQSBzZXJ2ZXIgY2FuIHByZS1pbmRleCB0aGF0IG9uY2U7IGEgYnJvd3NlciBjYW5ub3QuIFNvXG4gKiB0aGUgbGlicmFyeSB0YWtlcyB2ZWN0b3JzIGl0IGNhbiByZW5kZXIgYW5kIGxlYXZlcyBpbmdlc3QgdG8gd2hvZXZlciBvd25zIHRoZVxuICogZGF0YS4gYFNwYXRpYWxEYXRhSHR0cFNlcnZpY2VgIGlzIGEgcmVhZHktbWFkZSBhZGFwdGVyIGZvciB0aGUgd2lyZSBmb3JtYXRcbiAqIHRoZSBidW5kbGVkIGV4YW1wbGUgc2VydmVyIHNwZWFrczsgYSBob3N0IHdpdGggaXRzIG93biBiYWNrZW5kIGltcGxlbWVudHNcbiAqIHRoaXMgaW50ZXJmYWNlIGluc3RlYWQuXG4gKlxuICogTEFaSU5FU1MgSVMgVEhFIFBPSU5UXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIGBnZXREYXRhc2V0JCgpYCB5aWVsZHMgb25seSB3aGF0IGlzIGNoZWFwIHRvIGhvbGQ6IGNvb3JkaW5hdGVzIHBsdXMgY29sdW1uXG4gKiBhbmQgZmVhdHVyZSAqbWV0YWRhdGEqLiBFdmVyeSBhY2Nlc3NvciBiZWxvdyBmZXRjaGVzIG9uZSB2ZWN0b3IgYXQgYSB0aW1lLFxuICogZm9yIHRoZSBvbmUgY29sdW1uIG9yIGdlbmUgY3VycmVudGx5IGJlaW5nIGRpc3BsYXllZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsRGF0YVBvcnQge1xuICAvKipcbiAgICogVGhlIGRhdGFzZXQgY3VycmVudGx5IGJlaW5nIHZpc3VhbGl6ZWQsIG9yIG51bGwgd2hlbiBub25lIGlzIHNlbGVjdGVkLlxuICAgKiBFbWl0cyBhZ2FpbiB3aGVuIHRoZSBob3N0IHN3aXRjaGVzIGRhdGFzZXRzLCBzbyB0aGUgdmlldyBjYW4gcmVidWlsZC5cbiAgICovXG4gIGdldERhdGFzZXQkKCk6IE9ic2VydmFibGU8U3BhdGlhbERhdGFzZXQgfCBudWxsPjtcblxuICAvKipcbiAgICogVmFsdWVzIGZvciBvbmUgYW5ub3RhdGlvbiBjb2x1bW4sIGluZGV4LWFsaWduZWQgd2l0aCB0aGUgb2JzZXJ2YXRpb25zLlxuICAgKiBUaGUgY29sdW1uIG11c3QgYmUgb25lIGFkdmVydGlzZWQgaW4gYFNwYXRpYWxEYXRhc2V0LmNvbHVtbnNgOyByZWplY3RcbiAgICogKGRvbid0IHJlc29sdmUgZW1wdHkpIHdoZW4gaXQgaXNuJ3QsIHNvIGEgdHlwbyBzdXJmYWNlcyBpbnN0ZWFkIG9mXG4gICAqIHJlbmRlcmluZyBhcyBcIm5vIGRhdGFcIi5cbiAgICpcbiAgICogSW1wbGVtZW50YXRpb25zIHNob3VsZCBjYWNoZSDigJQgY29sb3VyaW5nIGJ5IGNsdXN0ZXIsIHRoZW4gYnkgYSBnZW5lLCB0aGVuXG4gICAqIGJhY2sgYnkgY2x1c3RlciBtdXN0IG5vdCByZWZldGNoLlxuICAgKi9cbiAgZ2V0Q29sdW1uKG5hbWU6IHN0cmluZyk6IFByb21pc2U8U3BhdGlhbENvbHVtbj47XG5cbiAgLyoqXG4gICAqIE9uZSBmZWF0dXJlJ3MgKGdlbmUncykgZXhwcmVzc2lvbiB2ZWN0b3IsIGluZGV4LWFsaWduZWQgd2l0aCB0aGVcbiAgICogb2JzZXJ2YXRpb25zLiBSZWplY3RzIGZvciBhbiB1bmtub3duIGZlYXR1cmUuXG4gICAqL1xuICBnZXRGZWF0dXJlVmVjdG9yKG5hbWU6IHN0cmluZyk6IFByb21pc2U8RmxvYXQzMkFycmF5PjtcblxuICAvKipcbiAgICogT25lIGVtYmVkZGluZydzIGNvb3JkaW5hdGVzLCBpbmRleC1hbGlnbmVkIHdpdGggdGhlIG9ic2VydmF0aW9ucy5cbiAgICpcbiAgICogVGhlIG5hbWUgbXVzdCBiZSBvbmUgYWR2ZXJ0aXNlZCBpbiBgU3BhdGlhbERhdGFzZXQuZW1iZWRkaW5nc2A7IHJlamVjdHMgb3RoZXJ3aXNlLCBmb3IgdGhlXG4gICAqIHNhbWUgcmVhc29uIGBnZXRDb2x1bW5gIGRvZXMg4oCUIGEgdHlwbyBzaG91bGQgc3VyZmFjZSByYXRoZXIgdGhhbiByZW5kZXIgYXMgYW4gZW1wdHkgcGxvdC5cbiAgICpcbiAgICogT3B0aW9uYWw6IGEgaG9zdCB3aXRoIG5vIGVtYmVkZGluZ3Mgc2ltcGx5IG9taXRzIGl0LCBhbmQgdGhlIFVJIG9mZmVycyBubyBlbWJlZGRpbmcgdmlld3MuXG4gICAqL1xuICBnZXRFbWJlZGRpbmc/KG5hbWU6IHN0cmluZyk6IFByb21pc2U8U3BhdGlhbEVtYmVkZGluZz47XG5cbiAgLyoqXG4gICAqIFR5cGVhaGVhZCBvdmVyIGZlYXR1cmUgbmFtZXMsIGZvciBkYXRhc2V0cyB0b28gd2lkZSB0byBpbmxpbmUgdGhlIGxpc3RcbiAgICogKGBTcGF0aWFsRmVhdHVyZU1ldGEubmFtZXNgIGFic2VudCkuIE9wdGlvbmFsOiBhIGhvc3Qgd2hvc2UgcGFuZWwgaXMgc21hbGxcbiAgICogZW5vdWdoIHRvIGlubGluZSBldmVyeSBuYW1lIG5lZWQgbm90IGltcGxlbWVudCBpdCDigJQgdGhlIFVJIGZhbGxzIGJhY2sgdG9cbiAgICogZmlsdGVyaW5nIGBuYW1lc2AgbG9jYWxseS5cbiAgICovXG4gIHNlYXJjaEZlYXR1cmVzPyhxdWVyeTogc3RyaW5nLCBsaW1pdD86IG51bWJlcik6IFByb21pc2U8c3RyaW5nW10+O1xuXG4gIC8qKlxuICAgKiBQZXItb2JzZXJ2YXRpb24gYm91bmRhcnkgZ2VvbWV0cnksIHdoZW4gdGhlIGRhdGFzZXQgYWR2ZXJ0aXNlc1xuICAgKiBgcG9seWdvbnNgLiBPcHRpb25hbCDigJQgYSBzcG90LWJhc2VkIGFzc2F5IChWaXNpdW0pIGhhcyBubyBzZWdtZW50YXRpb24uXG4gICAqL1xuICBnZXRQb2x5Z29ucz8oKTogUHJvbWlzZTxTcGF0aWFsUG9seWdvbnM+O1xuXG4gIC8qKlxuICAgKiBPbmUgdGlsZSBvZiBib3VuZGFyaWVzIGZyb20gYHBvbHlnb25UaWxlc2AuIEFuIGVtcHR5IHRpbGUgcmVzb2x2ZXMgd2l0aCBgY291bnRgIDAg4oCUXG4gICAqIGEgdGlsZSBvdXRzaWRlIHRoZSB0aXNzdWUgaXMgYW4gYW5zd2VyLCBub3QgYW4gZXJyb3IuIE9wdGlvbmFsOiBvbmx5IGRhdGFzZXRzIHRoYXRcbiAgICogYWR2ZXJ0aXNlIGBwb2x5Z29uVGlsZXNgIG5lZWQgaXQuXG4gICAqL1xuICBnZXRQb2x5Z29uVGlsZT8oc2V0OiBzdHJpbmcsIGxldmVsOiBudW1iZXIsIGd4OiBudW1iZXIsIGd5OiBudW1iZXIpOiBQcm9taXNlPFNwYXRpYWxQb2x5Z29uVGlsZT47XG5cbiAgLyoqXG4gICAqIE9uZSB0aWxlIG9mIHRyYW5zY3JpcHRzIGZyb20gYHRyYW5zY3JpcHRUaWxlc2AsIHJlc3RyaWN0ZWQgdG8gYHF1ZXJ5LmdlbmVzYC5cbiAgICogT3B0aW9uYWw6IG9ubHkgZGF0YXNldHMgdGhhdCBhZHZlcnRpc2UgYHRyYW5zY3JpcHRUaWxlc2AgbmVlZCBpdC5cbiAgICovXG4gIGdldFRyYW5zY3JpcHRUaWxlPyhcbiAgICBsZXZlbDogbnVtYmVyLCBneDogbnVtYmVyLCBneTogbnVtYmVyLCBxdWVyeTogVHJhbnNjcmlwdFRpbGVRdWVyeSxcbiAgKTogUHJvbWlzZTxTcGF0aWFsVHJhbnNjcmlwdFRpbGU+O1xuXG4gIC8qKlxuICAgKiBPbmUgdGlsZSBvZiB0aGUgYWxsLWdlbmUgZ3JvdXBpbmcgcHlyYW1pZCAoYHRyYW5zY3JpcHRCaW5zYCk6IGFuIGVudHJ5IHBlciBiaW4sIHdpdGhcbiAgICogYHdlaWdodGAgaXRzIHRyYW5zY3JpcHQgY291bnQgYW5kIGBvYnNlcnZhdGlvbmAgaXRzIGRvbWluYW50IGNlbGwuXG4gICAqL1xuICBnZXRUcmFuc2NyaXB0Qmlucz8obGV2ZWw6IG51bWJlciwgdHg6IG51bWJlciwgdHk6IG51bWJlcik6IFByb21pc2U8U3BhdGlhbFRyYW5zY3JpcHRUaWxlPjtcblxuICAvKipcbiAgICogT25lIHRpbGUgb2YgdGhlIHBlci1nZW5lIGxldmVscyBmb3IgYGdlbmVzYDogZWFjaCBlbnRyeSBpcyBvbmUgZ2VuZSdzIHRyYW5zY3JpcHRzIGluIG9uZSBiaW5cbiAgICogKGNlbnRyb2lkLCBjb3VudCwgZG9taW5hbnQgY2VsbCk7IGl0cyBgZ2VuZWAgaXMgdGhlIHBvc2l0aW9uIGluIGBnZW5lc2AuIE9wdGlvbmFsLlxuICAgKi9cbiAgZ2V0VHJhbnNjcmlwdEdlbmVCaW5zPyhsZXZlbDogbnVtYmVyLCB0eDogbnVtYmVyLCB0eTogbnVtYmVyLCBnZW5lczogc3RyaW5nW10pOiBQcm9taXNlPFNwYXRpYWxUcmFuc2NyaXB0VGlsZT47XG5cbiAgLyoqXG4gICAqIFdoYXQgaXMgaW5zaWRlIGBib3hgIChvYnNlcnZhdGlvbiB1bml0cyk6IHRyYW5zY3JpcHQgY291bnQsIGRpc3RpbmN0IGdlbmVzIGFuZCBjZWxscyxcbiAgICogdGhlIG1vc3QgZnJlcXVlbnQgb2YgZWFjaCDigJQgb3B0aW9uYWxseSByZXN0cmljdGVkIHRvIGBnZW5lc2Ag4oCUIHBsdXMgZGlzcGxheSBpZHMgZm9yXG4gICAqIGBjZWxsc2AuIE9taXQgYGJveGAgZm9yIGEgY2VsbC1pZCBsb29rdXAgb25seS4gT3B0aW9uYWw7IGRyaXZlcyB0aGUgaG92ZXIgZGV0YWlscyBvZlxuICAgKiB0cmFuc2NyaXB0IG1hcmtlcnMuXG4gICAqL1xuICBnZXRUcmFuc2NyaXB0U3VtbWFyeT8ocXVlcnk6IHtcbiAgICBib3g/OiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXTsgZ2VuZXM/OiBzdHJpbmdbXTsgY2VsbHM/OiBudW1iZXJbXTtcbiAgfSk6IFByb21pc2U8U3BhdGlhbFRyYW5zY3JpcHRTdW1tYXJ5PjtcblxuICAvKipcbiAgICogVGhlIHN1bW1lZCB0cmFuc2NyaXB0IGRlbnNpdHkgb2YgYGdlbmVzYCAoYFtBTExfR0VORVNdYCBmb3IgZXZlcnkgZ2VuZSkgb24gdGhlXG4gICAqIGRhdGFzZXQncyBgZGVuc2l0eWAgcmFzdGVyLCByZS1iaW5uZWQgdG8gYGJpblNpemVgIG9ic2VydmF0aW9uIHVuaXRzIHdoZW4gZ2l2ZW4uXG4gICAqIE9wdGlvbmFsOiBvbmx5IGRhdGFzZXRzIHRoYXQgYWR2ZXJ0aXNlIGBkZW5zaXR5YCBuZWVkIGl0LlxuICAgKi9cbiAgZ2V0RGVuc2l0eT8oZ2VuZXM6IHN0cmluZ1tdLCBiaW5TaXplPzogbnVtYmVyKTogUHJvbWlzZTxTcGF0aWFsRGVuc2l0eVJhc3Rlcj47XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhIGNlbGwgZ3JvdXBpbmcg4oCUIGEgQ1NWL1RTViBvZiBgY2VsbF9pZGAgYW5kIGBncm91cGAg4oCUIHVuZGVyIGBsYWJlbGAuIFRoZSBuZXdcbiAgICogY2F0ZWdvcmljYWwgY29sdW1uIGlzIGFkZGVkIHRvIHRoZSBkYXRhc2V0ICh3aGljaCByZS1lbWl0cykgYW5kIHJlc29sdmVkLiBPcHRpb25hbC5cbiAgICovXG4gIGltcG9ydEdyb3Vwcz8obGFiZWw6IHN0cmluZywgdGFibGU6IHN0cmluZyk6IFByb21pc2U8eyBjb2x1bW46IENhdGVnb3JpY2FsQ29sdW1uTWV0YTsgbWF0Y2hlZDogbnVtYmVyIH0+O1xuXG4gIC8qKiBUcmFuc2NyaXB0IHRvdGFscyBwZXIgZ2VuZSwgZm9yIGVzdGltYXRpbmcgaG93IG1hbnkgbWFya2VycyBhIHNlbGVjdGlvbiBkcmF3cy4gKi9cbiAgZ2V0VHJhbnNjcmlwdENvdW50cz8oZ2VuZXM6IHN0cmluZ1tdKTogUHJvbWlzZTxTcGF0aWFsVHJhbnNjcmlwdENvdW50cz47XG5cbiAgLyoqXG4gICAqIFRoZSB0b3AgYHBlckdyb3VwYCBtYXJrZXIgZ2VuZXMgb2YgZXZlcnkgZ3JvdXAgb2YgY2F0ZWdvcmljYWwgYGNvbHVtbmAsIGZvciBidWlsZGluZ1xuICAgKiBnZW5lIGdyb3VwcyBmcm9tIGNlbGwgY2x1c3RlcnMgKFwiTWFjcm9waGFnZXM6IENEMTYzLCBNUkMxLCDigKZcIikuIE9wdGlvbmFsLCBhbmQgcG9zc2libHlcbiAgICogc2xvdyB0aGUgZmlyc3QgdGltZTogdGhlIHNlcnZlciBtYWtlcyBvbmUgcGFzcyBvdmVyIHRoZSBleHByZXNzaW9uIG1hdHJpeC5cbiAgICovXG4gIGdldE1hcmtlckdlbmVzPyhjb2x1bW46IHN0cmluZywgcGVyR3JvdXA/OiBudW1iZXIpOiBQcm9taXNlPFNwYXRpYWxNYXJrZXJHZW5lcz47XG5cbiAgLyoqXG4gICAqIFRoZSByZWZlcmVuY2Ugdm9sdW1lJ3Mgdm94ZWxzOiBhIHVpbnQ4IHNjYWxhciBmaWVsZCwgeC1mYXN0ZXN0LCBvZiBleGFjdGx5XG4gICAqIGB3aWR0aCAqIGhlaWdodCAqIGRlcHRoYCBieXRlcyBhcyB0aGUgZGF0YXNldCdzIHtAbGluayBTcGF0aWFsVm9sdW1lTWV0YX1cbiAgICogZGVjbGFyZXMuXG4gICAqXG4gICAqIE9wdGlvbmFsLCBhbmQgb25seSBtZWFuaW5nZnVsIHdoZW4gdGhlIGRhdGFzZXQgYWR2ZXJ0aXNlcyBhIHZvbHVtZS4gU2VwYXJhdGVcbiAgICogZnJvbSBgZ2V0RGF0YXNldCQoKWAgYmVjYXVzZSBpdCBpcyBtZWdhYnl0ZXM6IGEgaG9zdCB0aGF0IG5ldmVyIG9wZW5zIHRoZSAzRFxuICAgKiBtb2RlIHNob3VsZCBuZXZlciBwYXkgZm9yIGl0LlxuICAgKi9cbiAgZ2V0Vm9sdW1lPygpOiBQcm9taXNlPFVpbnQ4QXJyYXk+O1xuXG4gIC8qKlxuICAgKiBTZXJ2ZXItc2lkZSBcIndoaWNoIG9ic2VydmF0aW9ucyBmYWxsIGluc2lkZSB0aGlzIHBvbHlnb25cIiwgZm9yIGRhdGFzZXRzXG4gICAqIHRvbyBsYXJnZSB0byBoaXQtdGVzdCBjbGllbnQtc2lkZS4gT3B0aW9uYWw6IHdpdGhvdXQgaXQgdGhlIGxpYnJhcnlcbiAgICogcG9pbnQtaW4tcG9seWdvbnMgdGhlIHJlc2lkZW50IGNvb3JkaW5hdGVzIGl0c2VsZiwgd2hpY2ggaXMgZmluZSBpbnRvIHRoZVxuICAgKiAxMF41IHJhbmdlLiBDb29yZGluYXRlcyBhcmUgaW4gdGhlIHNhbWUgc3BhY2UgYXMgdGhlIG9ic2VydmF0aW9ucy5cbiAgICovXG4gIHF1ZXJ5Um9pPyhwb2x5Z29uOiB7IHg6IG51bWJlcltdOyB5OiBudW1iZXJbXSB9KTogUHJvbWlzZTxVaW50MzJBcnJheT47XG59XG5cbmV4cG9ydCBjb25zdCBTUEFUSUFMX0RBVEFfUE9SVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTcGF0aWFsRGF0YVBvcnQ+KCdTUEFUSUFMX0RBVEFfUE9SVCcpO1xuIl19
@@ -44,4 +44,4 @@ export const NO_OBSERVATION = 0xffffffff;
44
44
  export function findColumnMeta(dataset, name) {
45
45
  return dataset.columns.find((c) => c.name === name);
46
46
  }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhdGlhbC1kYXRhc2V0LmNvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb250cmFjdHMvc3BhdGlhbC1kYXRhc2V0LmNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCRztBQThFSDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFtQmxDLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxDQUFnQjtJQUNsRCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQztBQUN2QyxDQUFDO0FBQ0QsTUFBTSxVQUFVLGtCQUFrQixDQUFDLENBQWdCO0lBQ2pELE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDO0FBQ3RDLENBQUM7QUFxT0QscUVBQXFFO0FBQ3JFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUM7QUFvR3pDLDZDQUE2QztBQUM3QyxNQUFNLFVBQVUsY0FBYyxDQUM1QixPQUF1QixFQUFFLElBQVk7SUFFckMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztBQUN0RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCYWNrZW5kLW5ldXRyYWwgZGF0YSBtb2RlbCBmb3IgYSAqKnNwYXRpYWwtb21pY3MgZGF0YXNldCoqOiBOIG9ic2VydmF0aW9uc1xuICogKFZpc2l1bSBzcG90cywgc2VnbWVudGVkIGNlbGxzLCBudWNsZWksIOKApikgcG9zaXRpb25lZCBpbiB0aGUgcGl4ZWwgc3BhY2Ugb2YgYVxuICogdGlzc3VlIGltYWdlLCBlYWNoIGNhcnJ5aW5nIGNhdGVnb3JpY2FsIGFuZCBjb250aW51b3VzIGFubm90YXRpb25zLCBwbHVzIGFuXG4gKiBvcHRpb25hbCBmZWF0dXJlIChnZW5lKSBtYXRyaXggYW5kIG9wdGlvbmFsIHBlci1vYnNlcnZhdGlvbiBib3VuZGFyaWVzLlxuICpcbiAqIERFU0lHTlxuICogLS0tLS0tXG4gKiAxLiAqKlN0cnVjdC1vZi1hcnJheXMsIG5vdCBvYmplY3QtcGVyLWNlbGwuKiogUmVhbCBkYXRhc2V0cyBydW4gMTBeMyAoVmlzaXVtKVxuICogICAgdG8gMTBeNiAoWGVuaXVtL0Nvc014KSBvYnNlcnZhdGlvbnMuIGB7eCwgeX1bXWAgYXQgNTAwayBjZWxscyBpcyB+NTAwa1xuICogICAgb2JqZWN0cyB0aGUgR0MgaGFzIHRvIHdhbGs7IHR3byBgRmxvYXQzMkFycmF5YHMgYXJlIHR3byBhbGxvY2F0aW9ucyBhbmRcbiAqICAgIHVwbG9hZCB0byB0aGUgR1BVIHdpdGhvdXQgYSBjb3B5LlxuICpcbiAqIDIuICoqTWV0YWRhdGEgaXMgZWFnZXIsIHZhbHVlcyBhcmUgbGF6eS4qKiBBIGRhdGFzZXQgYWR2ZXJ0aXNlcyAqd2hpY2gqXG4gKiAgICBjb2x1bW5zIGFuZCBmZWF0dXJlcyBleGlzdCAoe0BsaW5rIFNwYXRpYWxDb2x1bW5NZXRhfSxcbiAqICAgIHtAbGluayBTcGF0aWFsRmVhdHVyZU1ldGF9KTsgdGhlIHZlY3RvcnMgdGhlbXNlbHZlcyBhcmUgZmV0Y2hlZCBvbiBkZW1hbmRcbiAqICAgIHRocm91Z2gge0BsaW5rIFNwYXRpYWxEYXRhUG9ydH0uIEEgVmlzaXVtIHRhYmxlIGlzIH4zMGsgZ2VuZXMgd2lkZSDigJQgdGhlXG4gKiAgICBkZW5zZSBtYXRyaXggaXMgfjgwMCBNQiDigJQgc28gXCJsb2FkIHRoZSBkYXRhc2V0XCIgY2FuIG5ldmVyIG1lYW4gXCJsb2FkIHRoZVxuICogICAgbWF0cml4XCIuIE9ubHkgdGhlIGhhbmRmdWwgb2YgY29sdW1ucyBhY3R1YWxseSBiZWluZyBkaXNwbGF5ZWQgaXMgcmVzaWRlbnQuXG4gKlxuICogMy4gKipEYXRhIHN0YXlzIGRhdGEuKiogTm8gSS9PLCBubyBSeEpTLCBubyBBbmd1bGFyIGluIHRoaXMgZmlsZSDigJQgdGhlIHNhbWVcbiAqICAgIHJ1bGUgYHBsb3RseS10cmFjZS1idWlsZGVycy50c2AgZm9sbG93cy4gRmV0Y2hpbmcgbGl2ZXMgb24gdGhlIHBvcnQuXG4gKlxuICogVGhlIHNoYXBlIG1pcnJvcnMgaG93IHRoZSBmaWVsZCBhbHJlYWR5IHN0b3JlcyB0aGlzIChTcGF0aWFsRGF0YS9Bbm5EYXRhOlxuICogYG9ic2AgYW5ub3RhdGlvbnMsIGB2YXJgIGZlYXR1cmVzLCBgb2JzbS9zcGF0aWFsYCBjb29yZGluYXRlcywgc2hhcGVzIHdpdGggYVxuICogY29vcmRpbmF0ZSB0cmFuc2Zvcm0pIHNvIGFuIGFkYXB0ZXIgaXMgYSBwcm9qZWN0aW9uLCBub3QgYSB0cmFuc2xhdGlvbi5cbiAqL1xuXG4vKipcbiAqIE9ic2VydmF0aW9uIHBvc2l0aW9ucy4gRXZlcnkgYXJyYXkgaXMgbGVuZ3RoIHtAbGluayBjb3VudH0gYW5kIGluZGV4LWFsaWduZWQ6XG4gKiBvYnNlcnZhdGlvbiBgaWAgaXMgYXQgYCh4W2ldLCB5W2ldKWAsIGFuZCBjb2x1bW4vZmVhdHVyZSB2ZWN0b3JzIGluZGV4IHRoZVxuICogc2FtZSB3YXkuIFRoaXMgc2hhcmVkIGluZGV4IGlzIHRoZSBqb2luIGtleSBmb3IgdGhlIHdob2xlIG1vZGVsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxPYnNlcnZhdGlvbnMge1xuICAvKiogTiDigJQgbnVtYmVyIG9mIG9ic2VydmF0aW9ucy4gKi9cbiAgcmVhZG9ubHkgY291bnQ6IG51bWJlcjtcbiAgLyoqIFggaW4gdGhlIHJlZmVyZW5jZSBpbWFnZSdzIHBpeGVsIHNwYWNlIChzZWUge0BsaW5rIFNwYXRpYWxJbWFnZVJlZn0pLiAqL1xuICB4OiBGbG9hdDMyQXJyYXk7XG4gIC8qKiBZIGluIHRoZSByZWZlcmVuY2UgaW1hZ2UncyBwaXhlbCBzcGFjZS4gKi9cbiAgeTogRmxvYXQzMkFycmF5O1xuICAvKiogWiwgZm9yIHNlcmlhbCBzZWN0aW9ucyBvciBnZW51aW5lbHkgM0QgYXNzYXlzLiBBYnNlbnQgZm9yIGEgc2luZ2xlIHBsYW5lLiAqL1xuICB6PzogRmxvYXQzMkFycmF5O1xuICAvKiogU3RhYmxlIHBlci1vYnNlcnZhdGlvbiBpZHMgKGJhcmNvZGVzLCBjZWxsIGlkcykgZm9yIHRvb2x0aXBzIGFuZCBleHBvcnQuXG4gICAqICBPcHRpb25hbCDigJQgb21pdCBmb3IgbGFyZ2UgZGF0YXNldHMgd2hlcmUgdGhlIHN0cmluZ3MgY29zdCBtb3JlIHRoYW4gdGhleVxuICAgKiAgYXJlIHdvcnRoLiAqL1xuICBpZHM/OiBzdHJpbmdbXTtcbiAgLyoqIE1hcmtlciBSQURJVVMgaW4gaW1hZ2UgcGl4ZWxzOiBvbmUgdmFsdWUgc2hhcmVkIGJ5IGFsbCBvYnNlcnZhdGlvbnMgKGFcbiAgICogIFZpc2l1bSBzcG90IGlzIGEgZml4ZWQgNTUgwrVtIOKHkiBgMjcuNSAvIG1wcFhgIHB4KSwgb3Igb25lIHBlciBvYnNlcnZhdGlvblxuICAgKiAgKHNlZ21lbnRlZCBjZWxscykuIEFic2VudCDih5IgdGhlIHJlbmRlcmVyIHBpY2tzIGEgZGlzcGxheSBkZWZhdWx0LiAqL1xuICByYWRpdXM/OiBGbG9hdDMyQXJyYXkgfCBudW1iZXI7XG59XG5cbi8qKiBGaWVsZHMgY29tbW9uIHRvIGV2ZXJ5IGNvbHVtbiBkZXNjcmlwdG9yLiAqL1xuaW50ZXJmYWNlIFNwYXRpYWxDb2x1bW5NZXRhQmFzZSB7XG4gIC8qKiBDb2x1bW4gbmFtZSBhcyB0aGUgdXNlciBzZWVzIGl0IChgbGVpZGVuYCwgYHRvdGFsX2NvdW50c2ApLiAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBMb25nZXIgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gZm9yIHRvb2x0aXBzL21lbnVzLiAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIGRpc2NyZXRlIGFubm90YXRpb24g4oCUIGNsdXN0ZXIsIGNlbGwgdHlwZSwgcmVnaW9uLCBzYW1wbGUuIFJlbmRlcmVkIGFzIGFcbiAqIHBhbGV0dGUgKyBsZWdlbmQ7IGEgbGVnZW5kIGNsaWNrIHNlbGVjdHMgdGhlIGNhdGVnb3J5J3Mgb2JzZXJ2YXRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhdGVnb3JpY2FsQ29sdW1uTWV0YSBleHRlbmRzIFNwYXRpYWxDb2x1bW5NZXRhQmFzZSB7XG4gIGtpbmQ6ICdjYXRlZ29yaWNhbCc7XG4gIC8qKiBDYXRlZ29yeSBsYWJlbHM7IGEgdmFsdWUncyBsYWJlbCBpcyBgY2F0ZWdvcmllc1tjb2Rlc1tpXV1gLiAqL1xuICBjYXRlZ29yaWVzOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIEhlYWRpbmcgdGhlIGNvbHVtbiBpcyBsaXN0ZWQgdW5kZXIgaW4gYSBncm91cCBwaWNrZXIg4oCUIGUuZy4gXCJYZW5pdW0gT25ib2FyZCBBbmFseXNpc1xuICAgKiBncm91cHNcIiBmb3IgYSBwaXBlbGluZSdzIGNsdXN0ZXJpbmdzLCBcIkltcG9ydGVkIGdyb3Vwc1wiIGZvciBvbmVzIGFkZGVkIGJ5IGEgdXNlci5cbiAgICovXG4gIHNlY3Rpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDb2x1bW5zIHRoYXQgYXJlIHZhcmlhbnRzIG9mIG9uZSBjaG9pY2Ug4oCUIGstbWVhbnMgYXQgayA9IDLigKYxMCDigJQgc2hhcmUgYSBmYW1pbHk6IGFcbiAgICogcGlja2VyIGxpc3RzIHRoZSBmYW1pbHkgb25jZSBhbmQgb2ZmZXJzIHRoZSB2YXJpYW50cyBiZXNpZGUgaXQuXG4gICAqL1xuICBmYW1pbHk/OiB7IGlkOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IHZhcmlhbnQ6IHN0cmluZyB9O1xuICAvKiogQXV0aG9yZWQgZGlzcGxheSBjb2xvdXJzIGFzIGAjcnJnZ2JiYCwgaW5kZXgtYWxpZ25lZCB3aXRoXG4gICAqICB7QGxpbmsgY2F0ZWdvcmllc30uIFN1cHBseSB0aGVzZSB0byBrZWVwIHRoZSB2aWV3ZXIncyBwYWxldHRlIGlkZW50aWNhbCB0b1xuICAgKiAgdGhlIGZpZ3VyZXMgdGhlIHNhbWUgYW5hbHlzaXMgcHJvZHVjZWQgaW4gUi9QeXRob247IG9taXQgdG8gbGV0IHRoZSB2aWV3ZXJcbiAgICogIGRlcml2ZSBvbmUuICovXG4gIGNvbG9ycz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEEgY29udGludW91cyBtZWFzdXJlbWVudCDigJQgZXhwcmVzc2lvbiwgUUMgbWV0cmljLCBhcmVhLCBkZW5zaXR5LiBSZW5kZXJlZFxuICogdGhyb3VnaCB0aGUgc2hhcmVkIGNvbG9ybWFwL0xVVCArIGNvbnRyYXN0IHdpbmRvdy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250aW51b3VzQ29sdW1uTWV0YSBleHRlbmRzIFNwYXRpYWxDb2x1bW5NZXRhQmFzZSB7XG4gIGtpbmQ6ICdjb250aW51b3VzJztcbiAgLyoqIFVuaXQgZm9yIGF4aXMvdG9vbHRpcCBsYWJlbHMgKGBjb3VudHNgLCBgwrVtwrJgKS4gKi9cbiAgdW5pdD86IHN0cmluZztcbiAgLyoqIFRydWUgd2hlbiB0aGUgY29sdW1uIHJlYWRzIGJlc3QgbG9nLXNjYWxlZCDigJQgY291bnQgZGF0YSBhbG1vc3QgYWx3YXlzXG4gICAqICBkb2VzLCBhbmQgYSBsaW5lYXIgc2NhbGUgY29sbGFwc2VzIGl0IGFnYWluc3QgYSBmZXcgYnJpZ2h0IG91dGxpZXJzLiAqL1xuICBsb2dTY2FsZUhpbnQ/OiBib29sZWFuO1xuICAvKiogT2JzZXJ2ZWQgZXh0cmVtZXMsIHdoZW4gdGhlIHByb2R1Y2VyIGtub3dzIHRoZW0uIExldHMgdGhlIFVJIHNlZWQgYVxuICAgKiAgY29udHJhc3Qgd2luZG93IGFuZCBheGlzIHJhbmdlIHdpdGhvdXQgZmlyc3Qgc2Nhbm5pbmcgdGhlIHZlY3Rvci4gKi9cbiAgbWluPzogbnVtYmVyO1xuICBtYXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIFNwYXRpYWxDb2x1bW5NZXRhID0gQ2F0ZWdvcmljYWxDb2x1bW5NZXRhIHwgQ29udGludW91c0NvbHVtbk1ldGE7XG5cbi8qKlxuICogQ29kZSBtZWFuaW5nIFwidGhpcyBvYnNlcnZhdGlvbiBoYXMgbm8gY2F0ZWdvcnlcIiAodW5hc3NpZ25lZCAvIGZpbHRlcmVkIG91dCAvXG4gKiBub3QgaW4gdGlzc3VlKS4gUmVuZGVyZXJzIHNob3VsZCBkcmF3IGl0IGluIHRoZSBtdXRlZCBiYWNrZ3JvdW5kIHN0eWxlIHJhdGhlclxuICogdGhhbiBhcyBhIHJlYWwgY2F0ZWdvcnksIGFuZCBpdCBtdXN0IG5ldmVyIGluZGV4IHtAbGlua1xuICogQ2F0ZWdvcmljYWxDb2x1bW5NZXRhLmNhdGVnb3JpZXN9LlxuICovXG5leHBvcnQgY29uc3QgTk9fQ0FURUdPUlkgPSAweGZmZmY7XG5cbi8qKiBBIGxvYWRlZCBjYXRlZ29yaWNhbCBjb2x1bW46IHBlci1vYnNlcnZhdGlvbiBpbmRpY2VzIGludG8gYG1ldGEuY2F0ZWdvcmllc2AsXG4gKiAgb3Ige0BsaW5rIE5PX0NBVEVHT1JZfS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2F0ZWdvcmljYWxDb2x1bW4ge1xuICBtZXRhOiBDYXRlZ29yaWNhbENvbHVtbk1ldGE7XG4gIC8qKiBMZW5ndGggPSB7QGxpbmsgU3BhdGlhbE9ic2VydmF0aW9ucy5jb3VudH0uICovXG4gIGNvZGVzOiBVaW50MTZBcnJheTtcbn1cblxuLyoqIEEgbG9hZGVkIGNvbnRpbnVvdXMgY29sdW1uLiBgTmFOYCBtYXJrcyBhIG1pc3NpbmcgdmFsdWUuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnRpbnVvdXNDb2x1bW4ge1xuICBtZXRhOiBDb250aW51b3VzQ29sdW1uTWV0YTtcbiAgLyoqIExlbmd0aCA9IHtAbGluayBTcGF0aWFsT2JzZXJ2YXRpb25zLmNvdW50fS4gKi9cbiAgdmFsdWVzOiBGbG9hdDMyQXJyYXk7XG59XG5cbmV4cG9ydCB0eXBlIFNwYXRpYWxDb2x1bW4gPSBDYXRlZ29yaWNhbENvbHVtbiB8IENvbnRpbnVvdXNDb2x1bW47XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NhdGVnb3JpY2FsQ29sdW1uKGM6IFNwYXRpYWxDb2x1bW4pOiBjIGlzIENhdGVnb3JpY2FsQ29sdW1uIHtcbiAgcmV0dXJuIGMubWV0YS5raW5kID09PSAnY2F0ZWdvcmljYWwnO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udGludW91c0NvbHVtbihjOiBTcGF0aWFsQ29sdW1uKTogYyBpcyBDb250aW51b3VzQ29sdW1uIHtcbiAgcmV0dXJuIGMubWV0YS5raW5kID09PSAnY29udGludW91cyc7XG59XG5cbi8qKlxuICogVGhlIGZlYXR1cmUgKGdlbmUpIG1hdHJpeCwgZGVzY3JpYmVkIGJ1dCBuZXZlciBkZWxpdmVyZWQgd2hvbGUuIFZlY3RvcnMgY29tZVxuICogb25lIGF0IGEgdGltZSBmcm9tIHtAbGluayBTcGF0aWFsRGF0YVBvcnQuZ2V0RmVhdHVyZVZlY3Rvcn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbEZlYXR1cmVNZXRhIHtcbiAgLyoqIE51bWJlciBvZiBmZWF0dXJlcyBhdmFpbGFibGUuICovXG4gIGNvdW50OiBudW1iZXI7XG4gIC8qKlxuICAgKiBBbGwgZmVhdHVyZSBuYW1lcywgd2hlbiB0aGUgcHJvZHVjZXIgY2hvc2UgdG8gaW5saW5lIHRoZW0uIFByZXNlbnQgZm9yXG4gICAqIHRhcmdldGVkIHBhbmVscyAoWGVuaXVtL0Nvc014IHNoaXAgMzAw4oCTNSwwMDAgZ2VuZXMg4oeSIGEgZmV3IGRvemVuIEtCKSBhbmRcbiAgICogYWJzZW50IGZvciB3aG9sZS10cmFuc2NyaXB0b21lIGRhdGEgKFZpc2l1bSBzaGlwcyB+MzFrIOKHkiB+MzUwIEtCKSwgd2hlcmVcbiAgICogdGhlIFVJIHNob3VsZCB1c2Uge0BsaW5rIFNwYXRpYWxEYXRhUG9ydC5zZWFyY2hGZWF0dXJlc30gZm9yIHR5cGVhaGVhZFxuICAgKiBpbnN0ZWFkIG9mIGRvd25sb2FkaW5nIHRoZSBsaXN0LiBDb25zdW1lcnMgbXVzdCBoYW5kbGUgYm90aC5cbiAgICovXG4gIG5hbWVzPzogc3RyaW5nW107XG4gIC8qKiBXaGF0IGEgZmVhdHVyZSB2YWx1ZSBtZWFucyAoYGxvZzFwIG5vcm1hbGl6ZWRgLCBgcmF3IGNvdW50c2ApLiAqL1xuICB1bml0Pzogc3RyaW5nO1xuICAvKiogVHJ1ZSB3aGVuIGZlYXR1cmUgdmVjdG9ycyByZWFkIGJlc3QgbG9nLXNjYWxlZCAocmF3IGNvdW50cykuICovXG4gIGxvZ1NjYWxlSGludD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUGVyLW9ic2VydmF0aW9uIGJvdW5kYXJpZXMgKGNlbGwvbnVjbGV1cyBzZWdtZW50YXRpb24sIHNwb3Qgb3V0bGluZXMpIGFzIGZsYXRcbiAqIHJpbmdzIOKAlCBkZWxpYmVyYXRlbHkgTk9UIEdlb0pTT04gb2JqZWN0cywgd2hpY2ggY29zdCBvbmUgb2JqZWN0ICsgb25lIGFycmF5XG4gKiBwZXIgY2VsbCBhbmQgd291bGQgZG9taW5hdGUgbWVtb3J5IGF0IDEwXjUgcG9seWdvbnMuXG4gKlxuICogUmluZyBgaWAgb2NjdXBpZXMgYGNvb3Jkc1syKm9mZnNldHNbaV0gLi4gMipvZmZzZXRzW2krMV0pYCBhcyBgeDAseTAseDEseTEs4oCmYFxuICogYW5kIGlzIGltcGxpY2l0bHkgY2xvc2VkLiBgb2Zmc2V0c2AgaGFzIGxlbmd0aCBgY291bnQgKyAxYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsUG9seWdvbnMge1xuICBjb29yZHM6IEZsb2F0MzJBcnJheTtcbiAgb2Zmc2V0czogVWludDMyQXJyYXk7XG4gIC8qKiBOdW1iZXIgb2YgcmluZ3Mg4oCUIGBvZmZzZXRzLmxlbmd0aCAtIDFgLiAqL1xuICByZWFkb25seSBjb3VudDogbnVtYmVyO1xufVxuXG4vKiogUHJlc2VuY2Uvc2l6ZSBvZiB0aGUgYm91bmRhcnkgZ2VvbWV0cnksIHdpdGhvdXQgbG9hZGluZyBpdC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFBvbHlnb25zTWV0YSB7XG4gIGNvdW50OiBudW1iZXI7XG59XG5cbi8qKlxuICogSG93IG9ic2VydmF0aW9uIGNvb3JkaW5hdGVzIHJlbGF0ZSB0byB0aGUgdGlzc3VlIGltYWdlIHRoZXkgYXJlIGRyYXduIG92ZXIuXG4gKiBBcHBsaWVkIGFzIGB3b3JsZCA9IGNvb3JkICogc2NhbGUgKyB0cmFuc2xhdGVgLCBtYXRjaGluZyB0aGUgYWZmaW5lIHRoYXRcbiAqIFNwYXRpYWxEYXRhIHJlY29yZHMgcGVyIGNvb3JkaW5hdGUgc3lzdGVtIOKAlCBhbmQgdGhlIGZ1bGwtcmVzb2x1dGlvbiB3b3JsZFxuICogY29udmVudGlvbiB0aGUgbmFwYXJpLWpzIGJhY2tlbmQgYWxyZWFkeSB1c2VzIHNvIHByZS1zYXZlZCByZWdpb25zIGFsaWduIG9uXG4gKiBweXJhbWlkYWwgc2xpZGVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxJbWFnZVJlZiB7XG4gIC8qKiBIb3N0LWRlZmluZWQgaWQgb2YgdGhlIGltYWdlIHRoZXNlIGNvb3JkaW5hdGVzIGxpdmUgaW4sIHNvIHRoZSBob3N0IGNhblxuICAgKiAgcmVzb2x2ZSBpdCB0byBhbiBgSUltYWdlSW5mb2AuICovXG4gIGltYWdlSWQ/OiBzdHJpbmc7XG4gIC8qKiBEYXRh4oaSd29ybGQgc2NhbGUuIERlZmF1bHRzIHRvIGBbMSwgMV1gIChjb29yZGluYXRlcyBhbHJlYWR5IGluXG4gICAqICBmdWxsLXJlc29sdXRpb24gaW1hZ2UgcGl4ZWxzKS4gKi9cbiAgc2NhbGU/OiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKiogRGF0YeKGkndvcmxkIHRyYW5zbGF0aW9uLCBpbiB0aGUgc2FtZSB1bml0cyBhcyB7QGxpbmsgc2NhbGV9J3Mgb3V0cHV0LiAqL1xuICB0cmFuc2xhdGU/OiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKiogUGh5c2ljYWwgcGl4ZWwgc2l6ZSBpbiDCtW0g4oCUIGRyaXZlcyB0aGUgc2NhbGUgYmFyIGFuZCBwaHlzaWNhbCBtYXJrZXJcbiAgICogIHNpemluZyAoYSA1NSDCtW0gVmlzaXVtIHNwb3QpLiAqL1xuICBtcHBYPzogbnVtYmVyO1xuICBtcHBZPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgc3BhdGlhbC1vbWljcyBkYXRhc2V0OiBldmVyeXRoaW5nIGNoZWFwIGVub3VnaCB0byBob2xkIHJlc2lkZW50LiBDb2x1bW4gYW5kXG4gKiBmZWF0dXJlICp2YWx1ZXMqLCBhbmQgcG9seWdvbiAqZ2VvbWV0cnkqLCBhcmUgZmV0Y2hlZCB0aHJvdWdoXG4gKiB7QGxpbmsgU3BhdGlhbERhdGFQb3J0fSBhcyB0aGV5IGFyZSBkaXNwbGF5ZWQuXG4gKi9cbi8qKlxuICogQSBwcmVjb21wdXRlZCBsb3ctZGltZW5zaW9uYWwgZW1iZWRkaW5nIG92ZXIgdGhlIFNBTUUgb2JzZXJ2YXRpb25zIOKAlCBVTUFQLCB0LVNORSwgUENBLlxuICpcbiAqIEFubm91bmNlZCBpbiB0aGUgZGF0YXNldCBhbmQgZmV0Y2hlZCBvbiBkZW1hbmQsIGV4YWN0bHkgbGlrZSBhIGNvbHVtbiBvciBhIGdlbmU6IHRoZVxuICogY29vcmRpbmF0ZXMgYXJlIGFub3RoZXIgcGVyLW9ic2VydmF0aW9uIHZlY3RvciwgYW5kIGEgZGF0YXNldCBtYXkgY2Fycnkgc2V2ZXJhbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsRW1iZWRkaW5nTWV0YSB7XG4gIC8qKiBLZXkgYXMgdGhlIHNvdXJjZSBuYW1lcyBpdCwgZS5nLiBgWF91bWFwYC4gKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogU2hvcnQgbGFiZWwgZm9yIG1lbnVzOyBmYWxscyBiYWNrIHRvIHtAbGluayBuYW1lfS4gKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG4gIC8qKiAyIGZvciBhIHBsYW5lLCAzIGZvciBhIGNsb3VkLiAqL1xuICBkaW1zOiAyIHwgMztcbiAgLyoqXG4gICAqIFRydWUgd2hlbiB0aGUgY29vcmRpbmF0ZXMgd2VyZSBDT01QVVRFRCBmb3IgdGhpcyBidW5kbGUgcmF0aGVyIHRoYW4gcHVibGlzaGVkIHdpdGggdGhlXG4gICAqIGRhdGFzZXQuIFdvcnRoIHN1cmZhY2luZzogYSBVTUFQIHJlY29tcHV0ZWQgd2l0aCBkaWZmZXJlbnQgcGFyYW1ldGVycyBpcyBhIGRpZmZlcmVudCBwaWN0dXJlLFxuICAgKiBhbmQgYSByZWFkZXIgY29tcGFyaW5nIGFnYWluc3QgYSBwYXBlcidzIGZpZ3VyZSBuZWVkcyB0byBrbm93IHdoaWNoIHRoZXkgYXJlIGxvb2tpbmcgYXQuXG4gICAqL1xuICBkZXJpdmVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEZyYWN0aW9uIG9mIHRvdGFsIHZhcmlhbmNlIGVhY2ggYXhpcyBhY2NvdW50cyBmb3IsIGluZGV4LWFsaWduZWQgd2l0aCB0aGUgZGltZW5zaW9ucy5cbiAgICpcbiAgICogT25seSBtZWFuaW5nZnVsIGZvciBhIExJTkVBUiBlbWJlZGRpbmcg4oCUIFBDQS4gSXRzIGF4ZXMgYXJlIG9yZGVyZWQsIGFuZCBlYWNoIG9uZSBleHBsYWlucyBhXG4gICAqIG1lYXN1cmFibGUgc2hhcmUgb2YgdGhlIHZhcmlhbmNlLCB3aGljaCBpcyB0aGUgd2hvbGUgcmVhc29uIHRvIGxvb2sgYXQgYSBQQ0EgcmF0aGVyIHRoYW4gYVxuICAgKiBVTUFQOiBcIlBDMSAoMjMlKVwiIHNheXMgc29tZXRoaW5nLCB3aGVyZSBcIlVNQVAgMVwiIHNheXMgbm90aGluZyBhdCBhbGwuIEEgVU1BUCdzIGNvb3JkaW5hdGVzXG4gICAqIGFyZSBhbiBhcmJpdHJhcnkgb3V0cHV0IG9mIGFuIG9wdGltaXNhdGlvbiB3aXRoIG5vIHZhcmlhbmNlIHRvIHJlcG9ydCwgc28gdGhpcyBzdGF5cyBhYnNlbnRcbiAgICogdGhlcmUgcmF0aGVyIHRoYW4gYmVpbmcgZmFrZWQuXG4gICAqL1xuICB2YXJpYW5jZVJhdGlvPzogbnVtYmVyW107XG4gIC8qKlxuICAgKiBIb3cgYSBkZXJpdmVkIGVtYmVkZGluZyB3YXMgY29tcHV0ZWQsIGluIGEgZmV3IHdvcmRzIOKAlCBlLmcuIFwiUENBKDUwKSB0aGVuIHBlcnBsZXhpdHkgMzAsXG4gICAqIHNlZWQgMFwiLlxuICAgKlxuICAgKiBOb3QgZGVjb3JhdGlvbi4gQSB0LVNORSBvciBVTUFQIGlzIHN0b2NoYXN0aWMsIGFuZCBpdHMgcGljdHVyZSBjaGFuZ2VzIG1hdGVyaWFsbHkgd2l0aFxuICAgKiBwZXJwbGV4aXR5IG9yIGBuX25laWdoYm9yc2A7IHR3byBydW5zIGF0IGRpZmZlcmVudCBzZXR0aW5ncyBhcmUgZGlmZmVyZW50IHBpY3R1cmVzIG9mIHRoZSBzYW1lXG4gICAqIGNlbGxzLCBhbmQgbmVpdGhlciBpcyBtb3JlIGNvcnJlY3QuIFNheWluZyBcImNvbXB1dGVkIGhlcmVcIiB3aXRob3V0IHNheWluZyBIT1cgbGVhdmVzIGEgcmVhZGVyXG4gICAqIHVuYWJsZSB0byByZXByb2R1Y2Ugb3IgY29tcGFyZSBpdC4gQWJzZW50IGZvciBhIHB1Ymxpc2hlZCBlbWJlZGRpbmcsIHdob3NlIHBhcmFtZXRlcnMgYmVsb25nXG4gICAqIHRvIHdob2V2ZXIgcHVibGlzaGVkIGl0LlxuICAgKi9cbiAgcGFyYW1zPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9uZSBlbWJlZGRpbmcncyBjb29yZGluYXRlcy5cbiAqXG4gKiBEZWxpYmVyYXRlbHkgc2hhcGVkIGxpa2Uge0BsaW5rIFNwYXRpYWxPYnNlcnZhdGlvbnN9JyBgeGAvYHlgL2B6YCByYXRoZXIgdGhhbiBhbiAoTiwgRCkgbWF0cml4OlxuICogdGhlIHBvaW50IG9mIGFuIGVtYmVkZGluZyBoZXJlIGlzIHRvIGJlIHN3YXBwZWQgaW4gYXMgdGhlIHNjYXR0ZXIncyBjb29yZGluYXRlIHNvdXJjZSwgYW5kXG4gKiBtYXRjaGluZyB0aGF0IHNoYXBlIG1lYW5zIHRoZSByZW5kZXJlciwgdGhlIGhvdmVyIGhpdC10ZXN0IGFuZCB0aGUgc2VsZWN0aW9uIGNvZGUgbmVlZCBub1xuICogdmFyaWFudCBmb3IgaXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbEVtYmVkZGluZyB7XG4gIG1ldGE6IFNwYXRpYWxFbWJlZGRpbmdNZXRhO1xuICB4OiBGbG9hdDMyQXJyYXk7XG4gIHk6IEZsb2F0MzJBcnJheTtcbiAgej86IEZsb2F0MzJBcnJheTtcbn1cblxuLyoqXG4gKiBMZXZlbC1vZi1kZXRhaWwgZ2VvbWV0cnksIHNlcnZlZCBvbmUgZ3JpZCB0aWxlIGF0IGEgdGltZS5cbiAqXG4gKiBXaG9sZS1kYXRhc2V0IHZlY3RvcnMgc3RvcCB3b3JraW5nIHNvbWV3aGVyZSBwYXN0IDEwXjUgb2JzZXJ2YXRpb25zOiA3MTdrIFhlbml1bSBjZWxsXG4gKiBvdXRsaW5lcyBhcmUgfjE0MCBNQiwgYW5kIGEgd2hvbGUtdHJhbnNjcmlwdG9tZSBydW4gaGFzIH4xMF45IHRyYW5zY3JpcHRzLiBXaGF0IHNjYWxlc1xuICogaXMgd2hhdCBtYXAgdGlsZXMgZG8g4oCUIGEgc3F1YXJlIGdyaWQgaW4gdGhlIG9ic2VydmF0aW9ucycgY29vcmRpbmF0ZSBzcGFjZSwgb25lIGdyaWRcbiAqIHBlciBsZXZlbCwgZWFjaCBsZXZlbCdzIHRpbGVzIHR3aWNlIHRoZSBzaXplIG9mIHRoZSBvbmUgYmVsb3cgYW5kIGNhcnJ5aW5nIGNvYXJzZXJcbiAqIGdlb21ldHJ5LiBUaGUgcmVuZGVyZXIgYXNrcyBvbmx5IGZvciB0aGUgdGlsZXMgb24gc2NyZWVuLCBhdCB0aGUgbGV2ZWwgdGhlIHpvb20gbmVlZHMuXG4gKlxuICogVGlsZSBgKGd4LCBneSlgIGF0IGxldmVsIGBsYCBjb3ZlcnMgYFtneMK3cywgKGd4KzEpwrdzKSDDlyBbZ3nCt3MsIChneSsxKcK3cylgIHdpdGhcbiAqIGBzID0gbGV2ZWxzW2xdLnRpbGVTaXplYCwgaW4gdGhlIHNhbWUgdW5pdHMgYXMge0BsaW5rIFNwYXRpYWxPYnNlcnZhdGlvbnMueH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFRpbGVMZXZlbCB7XG4gIC8qKiBFZGdlIGxlbmd0aCBvZiBvbmUgdGlsZSwgaW4gb2JzZXJ2YXRpb24gY29vcmRpbmF0ZSB1bml0cy4gKi9cbiAgdGlsZVNpemU6IG51bWJlcjtcbn1cblxuLyoqIEF4aXMtYWxpZ25lZCBleHRlbnQgYFttaW5YLCBtaW5ZLCBtYXhYLCBtYXhZXWAgaW4gb2JzZXJ2YXRpb24gY29vcmRpbmF0ZXMuICovXG5leHBvcnQgdHlwZSBTcGF0aWFsQm91bmRzID0gW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG5cbi8qKiBUaWxlZCBjZWxsL251Y2xldXMgYm91bmRhcmllcy4gTGV2ZWwgMCBpcyB0aGUgZmluZXN0IChldmVyeSB2ZXJ0ZXgpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsUG9seWdvblRpbGVzTWV0YSB7XG4gIGJvdW5kczogU3BhdGlhbEJvdW5kcztcbiAgLyoqIEJvdW5kYXJ5IHNldHMgb24gb2ZmZXIg4oCUIHR5cGljYWxseSBgY2VsbGAgYW5kIGBudWNsZXVzYC4gKi9cbiAgc2V0czogeyBuYW1lOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfVtdO1xuICAvKiogVGhlIHNldCB0byBkcmF3IHdoZW4gdGhlIHVzZXIgaGFzIG5vdCBjaG9zZW4uICovXG4gIGRlZmF1bHRTZXQ/OiBzdHJpbmc7XG4gIGxldmVsczogU3BhdGlhbFRpbGVMZXZlbFtdO1xufVxuXG4vKiogVGlsZWQgdHJhbnNjcmlwdHMuIExldmVsIDAgaXMgb25lIGVudHJ5IHBlciB0cmFuc2NyaXB0OyBjb2Fyc2VyIGxldmVscyBhZ2dyZWdhdGUuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxUcmFuc2NyaXB0VGlsZXNNZXRhIHtcbiAgYm91bmRzOiBTcGF0aWFsQm91bmRzO1xuICAvKiogVG90YWwgdHJhbnNjcmlwdHMsIGZvciBkaXNwbGF5LiAqL1xuICBjb3VudD86IG51bWJlcjtcbiAgLyoqIFJlYWwgZ2VuZXMgKGNvbnRyb2wgcHJvYmVzIGV4Y2x1ZGVkKS4gTmFtZXMgY29tZSBmcm9tIHRoZSBmZWF0dXJlIHNlYXJjaC4gKi9cbiAgZ2VuZUNvdW50OiBudW1iZXI7XG4gIGhhc1o6IGJvb2xlYW47XG4gIGxldmVsczogKFNwYXRpYWxUaWxlTGV2ZWwgJiB7XG4gICAgLyoqIFRydWUgd2hlbiBhbiBlbnRyeSBzdGFuZHMgZm9yIHNldmVyYWwgdHJhbnNjcmlwdHMgKHNlZSB7QGxpbmsgU3BhdGlhbFRyYW5zY3JpcHRUaWxlLndlaWdodH0pLiAqL1xuICAgIGFnZ3JlZ2F0ZWQ6IGJvb2xlYW47XG4gIH0pW107XG4gIC8qKlxuICAgKiBMZXZlbHMgdXAgdG8gYW5kIGluY2x1ZGluZyB0aGlzIG9uZSBhc3NpZ24gZWFjaCBlbnRyeSB0byB0aGUgY2VsbCBpdCBsaWVzIGluXG4gICAqIGV4YWN0bHk7IGFib3ZlIGl0IHRoZSBhc3NpZ25tZW50IG5hbWVzIHRoZSBjZWxsIG5lYXJlc3QgYW4gYWdncmVnYXRlJ3MgY2VudHJvaWQuXG4gICAqL1xuICBleGFjdENlbGxMZXZlbD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBUaGUgYWxsLWdlbmUgdHJhbnNjcmlwdCBncm91cGluZyBweXJhbWlkOiBzcXVhcmUgYmlucywgZm91ciB0aW1lcyBjb2Fyc2VyIHBlciBsZXZlbCxcbiAqIGVhY2ggaG9sZGluZyBhIGNvdW50LCBhIGNlbnRyb2lkIGFuZCB0aGUgY2VsbCB0aGF0IGNvbnRyaWJ1dGVkIG1vc3Qgb2YgaXRzIHRyYW5zY3JpcHRzLlxuICogU2VydmVkIHBlciB0aWxlLCBpbiB0aGUge0BsaW5rIFNwYXRpYWxUcmFuc2NyaXB0VGlsZX0gbGF5b3V0IChvbmUgZW50cnkgcGVyIGJpbikuXG4gKlxuICogVGlsZSBgKHR4LCB0eSlgIG9mIGxldmVsIGBsYCBjb3ZlcnMgYG9yaWdpbiArIFt0eMK3cywgKHR4KzEpwrdzKSDDlyBbdHnCt3MsICh0eSsxKcK3cylgIHdpdGhcbiAqIGBzID0gbGV2ZWxzW2xdLnRpbGVTaXplYCDigJQgbm90ZSB0aGUgb3JpZ2luLCB3aGljaCB0aGUgcGVyLWdlbmUgdGlsZXMgZG8gbm90IGhhdmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFRyYW5zY3JpcHRCaW5zTWV0YSB7XG4gIGJvdW5kczogU3BhdGlhbEJvdW5kcztcbiAgb3JpZ2luOiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKiogVHJhbnNjcmlwdHMgdGhlIHB5cmFtaWQgd2FzIGJ1aWx0IGZyb20uICovXG4gIGNvdW50OiBudW1iZXI7XG4gIGxldmVsczogeyBiaW5TaXplOiBudW1iZXI7IHRpbGVTaXplOiBudW1iZXIgfVtdO1xufVxuXG4vKipcbiAqIEEgZ3JvdXBpbmcgcHlyYW1pZCB0aGUgc2VydmVyIGlzIHN0aWxsIGJ1aWxkaW5nIChpdCBidWlsZHMgb25lIGl0c2VsZiB3aGVuIGEgZGF0YXNldFxuICogYXJyaXZlcyB3aXRob3V0IGl0KS4gXCJBbGwgZ2VuZXNcIiBiZWNvbWVzIGF2YWlsYWJsZSBvbmNlIGl0IGlzIGRvbmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFRyYW5zY3JpcHRCaW5zU3RhdHVzIHtcbiAgc3RhdGU6ICdxdWV1ZWQnIHwgJ2J1aWxkaW5nJyB8ICdmYWlsZWQnO1xuICAvKiogU291cmNlIHRpbGVzIHByb2Nlc3NlZCBzbyBmYXIsIG9mIGB0b3RhbGAuICovXG4gIGRvbmU/OiBudW1iZXI7XG4gIHRvdGFsPzogbnVtYmVyO1xuICBtZXNzYWdlPzogc3RyaW5nO1xufVxuXG4vKiogV2hhdCBpcyBpbiBhbiBhcmVhIOKAlCB0aGUgaG92ZXIgZGV0YWlscyBvZiBhIHRyYW5zY3JpcHQgbWFya2VyIG9yIGdyb3VwZWQgYmluLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsVHJhbnNjcmlwdFN1bW1hcnkge1xuICAvKiogQWJzZW50IGZvciBhIHB1cmUgY2VsbC1pZCBsb29rdXAuICovXG4gIHRyYW5zY3JpcHRzPzogbnVtYmVyO1xuICAvKiogRGlzdGluY3QgZ2VuZXMgYW1vbmcgdGhlbS4gKi9cbiAgZ2VuZXM/OiBudW1iZXI7XG4gIHRvcEdlbmVzPzogeyBuYW1lOiBzdHJpbmc7IGNvdW50OiBudW1iZXIgfVtdO1xuICAvKiogRGlzdGluY3QgY2VsbHMgdGhleSBmYWxsIGluLCBhbmQgaG93IG1hbnkgZmFsbCBpbiBub25lLiAqL1xuICBjZWxscz86IG51bWJlcjtcbiAgdW5hc3NpZ25lZD86IG51bWJlcjtcbiAgdG9wQ2VsbHM/OiB7IGluZGV4OiBudW1iZXI7IGlkPzogc3RyaW5nOyBjb3VudDogbnVtYmVyIH1bXTtcbiAgLyoqIERpc3BsYXkgaWRzIG9mIHRoZSBjZWxscyBhc2tlZCBmb3IsIGJ5IG9ic2VydmF0aW9uIGluZGV4LiAqL1xuICBjZWxsSWRzPzogUmVjb3JkPG51bWJlciwgc3RyaW5nPjtcbn1cblxuLyoqIEEgcGVyLWdlbmUgdHJhbnNjcmlwdC1jb3VudCByYXN0ZXIgY292ZXJpbmcgdGhlIHNlY3Rpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxEZW5zaXR5TWV0YSB7XG4gIC8qKiBTaXplIG9mIG9uZSByYXN0ZXIgY2VsbCwgaW4gb2JzZXJ2YXRpb24gdW5pdHMsIGBbeCwgeV1gLiAqL1xuICBncmlkU2l6ZTogW251bWJlciwgbnVtYmVyXTtcbiAgLyoqIE9ic2VydmF0aW9uLXNwYWNlIHBvc2l0aW9uIG9mIHJhc3RlciBjZWxsICgwLCAwKSdzIG5lYXIgY29ybmVyLiAqL1xuICBvcmlnaW46IFtudW1iZXIsIG51bWJlcl07XG4gIHJvd3M6IG51bWJlcjtcbiAgY29sczogbnVtYmVyO1xufVxuXG4vKiogXCJObyBvYnNlcnZhdGlvblwiIGluIHtAbGluayBTcGF0aWFsVHJhbnNjcmlwdFRpbGUub2JzZXJ2YXRpb259LiAqL1xuZXhwb3J0IGNvbnN0IE5PX09CU0VSVkFUSU9OID0gMHhmZmZmZmZmZjtcblxuLyoqIE9uZSB0aWxlIG9mIGJvdW5kYXJpZXM6IHJpbmdzIGFzIGluIHtAbGluayBTcGF0aWFsUG9seWdvbnN9LCBwbHVzIHdobyBvd25zIGVhY2ggcmluZy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFBvbHlnb25UaWxlIGV4dGVuZHMgU3BhdGlhbFBvbHlnb25zIHtcbiAgLyoqIE9ic2VydmF0aW9uIGluZGV4IG9mIHJpbmcgYGlgIOKAlCB0aGUgam9pbiBrZXkgdG8gY29sdW1ucyBhbmQgZmVhdHVyZXMuICovXG4gIG9ic2VydmF0aW9uOiBVaW50MzJBcnJheTtcbn1cblxuLyoqIE9uZSB0aWxlIG9mIHRyYW5zY3JpcHRzIChvciBhZ2dyZWdhdGVzIG9mIHRoZW0pLiBFdmVyeSBhcnJheSBoYXMgbGVuZ3RoIHtAbGluayBjb3VudH0uICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxUcmFuc2NyaXB0VGlsZSB7XG4gIHJlYWRvbmx5IGNvdW50OiBudW1iZXI7XG4gIGFnZ3JlZ2F0ZWQ6IGJvb2xlYW47XG4gIHg6IEZsb2F0MzJBcnJheTtcbiAgeTogRmxvYXQzMkFycmF5O1xuICB6OiBGbG9hdDMyQXJyYXk7XG4gIC8qKiBUcmFuc2NyaXB0cyBlYWNoIGVudHJ5IHN0YW5kcyBmb3Ig4oCUIDEgYXQgYW4gdW5hZ2dyZWdhdGVkIGxldmVsLiAqL1xuICB3ZWlnaHQ6IFVpbnQzMkFycmF5O1xuICAvKiogT2JzZXJ2YXRpb24gKGNlbGwpIHRoZSBlbnRyeSBmYWxscyBpbiwgb3Ige0BsaW5rIE5PX09CU0VSVkFUSU9OfS4gKi9cbiAgb2JzZXJ2YXRpb246IFVpbnQzMkFycmF5O1xuICAvKiogSW5kZXggaW50byB0aGUgYGdlbmVzYCBsaXN0IHRoZSB0aWxlIHdhcyByZXF1ZXN0ZWQgd2l0aC4gKi9cbiAgZ2VuZTogVWludDE2QXJyYXk7XG59XG5cbi8qKiBUcmFuc2NyaXB0IHRvdGFscyBmb3IgYW4gZXN0aW1hdGUgb2YgaG93IG1hbnkgbWFya2VycyBhIHNlbGVjdGlvbiB3b3VsZCBkcmF3LiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsVHJhbnNjcmlwdENvdW50cyB7XG4gIC8qKiBUb3RhbCB0cmFuc2NyaXB0cyBwZXIgcmVxdWVzdGVkIGdlbmUsIG92ZXIgdGhlIHdob2xlIGRhdGFzZXQuICovXG4gIGNvdW50czogUmVjb3JkPHN0cmluZywgbnVtYmVyPjtcbiAgLyoqIFRvdGFsIG92ZXIgZXZlcnkgZ2VuZS4gKi9cbiAgdG90YWw6IG51bWJlcjtcbiAgLyoqIEV4dGVudCB0aGUgdG90YWxzIGFyZSBzcHJlYWQgb3ZlciAob2JzZXJ2YXRpb24gdW5pdHMpLiAqL1xuICBib3VuZHM6IFNwYXRpYWxCb3VuZHM7XG59XG5cbi8qKiBBIHN1bW1lZCBkZW5zaXR5IHJhc3RlciBmb3IgYSBsaXN0IG9mIGdlbmVzOyBgdmFsdWVzYCBpcyByb3ctbWFqb3IgYHJvd3Mgw5cgY29sc2AuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxEZW5zaXR5UmFzdGVyIHtcbiAgbWV0YTogU3BhdGlhbERlbnNpdHlNZXRhO1xuICBnZW5lczogc3RyaW5nW107XG4gIHZhbHVlczogRmxvYXQzMkFycmF5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxEYXRhc2V0IHtcbiAgLyoqIFN0YWJsZSBpZCDigJQgdGhlIGtleSB0aGUgcG9ydCdzIGxhenkgYWNjZXNzb3JzIGFyZSBzY29wZWQgdG8uICovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBuYW1lIGZvciBtZW51cy4gKi9cbiAgbmFtZTogc3RyaW5nO1xuICBvYnNlcnZhdGlvbnM6IFNwYXRpYWxPYnNlcnZhdGlvbnM7XG4gIC8qKiBFdmVyeSBjb2x1bW4gYXZhaWxhYmxlLCB3aGV0aGVyIG9yIG5vdCBpdHMgdmFsdWVzIGFyZSBsb2FkZWQuICovXG4gIGNvbHVtbnM6IFNwYXRpYWxDb2x1bW5NZXRhW107XG4gIGZlYXR1cmVzPzogU3BhdGlhbEZlYXR1cmVNZXRhO1xuICBwb2x5Z29ucz86IFNwYXRpYWxQb2x5Z29uc01ldGE7XG4gIGltYWdlUmVmPzogU3BhdGlhbEltYWdlUmVmO1xuICAvKiogUHJlc2VuY2UgKyBnZW9tZXRyeSBvZiBhIHJlZmVyZW5jZSB2b2x1bWUgdGhlIG9ic2VydmF0aW9ucyBzaXQgaW5zaWRlLiAqL1xuICB2b2x1bWU/OiBTcGF0aWFsVm9sdW1lTWV0YTtcbiAgLyoqIEVtYmVkZGluZ3MgYXZhaWxhYmxlIGZvciB0aGVzZSBvYnNlcnZhdGlvbnMsIHdob3NlIGNvb3JkaW5hdGVzIGFyZSBmZXRjaGVkIG9uIGRlbWFuZC4gKi9cbiAgZW1iZWRkaW5ncz86IFNwYXRpYWxFbWJlZGRpbmdNZXRhW107XG4gIC8qKiBMZXZlbC1vZi1kZXRhaWwgYm91bmRhcmllcywgZmV0Y2hlZCBwZXIgdGlsZSDigJQgc2VlIHtAbGluayBTcGF0aWFsUG9seWdvblRpbGVzTWV0YX0uICovXG4gIHBvbHlnb25UaWxlcz86IFNwYXRpYWxQb2x5Z29uVGlsZXNNZXRhO1xuICAvKiogTGV2ZWwtb2YtZGV0YWlsIHRyYW5zY3JpcHRzLCBmZXRjaGVkIHBlciB0aWxlIOKAlCBzZWUge0BsaW5rIFNwYXRpYWxUcmFuc2NyaXB0VGlsZXNNZXRhfS4gKi9cbiAgdHJhbnNjcmlwdFRpbGVzPzogU3BhdGlhbFRyYW5zY3JpcHRUaWxlc01ldGE7XG4gIC8qKiBBIHNlcnZlZCBwZXItZ2VuZSB0cmFuc2NyaXB0IGRlbnNpdHkgcmFzdGVyLiAqL1xuICBkZW5zaXR5PzogU3BhdGlhbERlbnNpdHlNZXRhO1xuICAvKiogVGhlIGFsbC1nZW5lIHRyYW5zY3JpcHQgZ3JvdXBpbmcgcHlyYW1pZCwgd2hlbiBpdCBoYXMgYmVlbiBidWlsdC4gKi9cbiAgdHJhbnNjcmlwdEJpbnM/OiBTcGF0aWFsVHJhbnNjcmlwdEJpbnNNZXRhO1xuICAvKiogUHJlc2VudCB3aGlsZSB0aGUgc2VydmVyIGlzIHN0aWxsIGJ1aWxkaW5nIHtAbGluayB0cmFuc2NyaXB0Qmluc30uICovXG4gIHRyYW5zY3JpcHRCaW5zU3RhdHVzPzogU3BhdGlhbFRyYW5zY3JpcHRCaW5zU3RhdHVzO1xuICAvKipcbiAgICogTWljcm9ucyBwZXIgb2JzZXJ2YXRpb24gY29vcmRpbmF0ZSB1bml0IOKAlCB3aGF0IG1ha2VzIGEgc2NhbGUgYmFyIHBvc3NpYmxlLlxuICAgKlxuICAgKiBUaGUgMkQgcGF0aCBnZXRzIHRoaXMgZnJvbSBgaW1hZ2VSZWYubXBwWGAsIGJlY2F1c2UgdGhlcmUgdGhlIGNvb3JkaW5hdGVzIGFyZVxuICAgKiBpbWFnZSBwaXhlbHMuIEEgM0QgY2xvdWQgaGFzIG5vIGltYWdlLCBzbyBpdCBoYXMgdG8gc2F5IGZvciBpdHNlbGY6IGAxYCBtZWFuc1xuICAgKiB0aGUgY29vcmRpbmF0ZXMgYXJlIGFscmVhZHkgbWljcm9ucy5cbiAgICpcbiAgICogQWJzZW50IG1lYW5zIHRoZSB1bml0IGlzIFVOS05PV04sIGFuZCBhIHJlbmRlcmVyIG11c3QgdGhlbiBkcmF3IG5vIHNjYWxlIGJhclxuICAgKiByYXRoZXIgdGhhbiBhc3N1bWUgb25lLiBBIGJhciBsYWJlbGxlZCBpbiBtaWNyb25zIG92ZXIgcGl4ZWwtc3BhY2VcbiAgICogY29vcmRpbmF0ZXMgaXMgd29yc2UgdGhhbiBubyBiYXI6IGl0IGxvb2tzIGxpa2UgYSBtZWFzdXJlbWVudC5cbiAgICovXG4gIG1pY3JvbnNQZXJVbml0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgM0Qgc2NhbGFyIHJlZmVyZW5jZSB2b2x1bWUgcmVnaXN0ZXJlZCB0byB0aGUgb2JzZXJ2YXRpb24gY29vcmRpbmF0ZXMg4oCUIHRoZVxuICogYW5hdG9taWNhbCBiYWNrZHJvcCBmb3IgYSBwb2ludCBjbG91ZCAoYW4gYXRsYXMgdGVtcGxhdGUsIG9yIGFuIGltYWdlIHotc3RhY2spLlxuICpcbiAqIEdlb21ldHJ5IG9ubHk7IHRoZSB2b3hlbHMgYXJlIGZldGNoZWQgdGhyb3VnaFxuICoge0BsaW5rIFNwYXRpYWxEYXRhUG9ydC5nZXRWb2x1bWV9IHdoZW4gc29tZXRoaW5nIGlzIGdvaW5nIHRvIGRyYXcgdGhlbS4gQSBjbG91ZFxuICogd2l0aG91dCBvbmUgc3RpbGwgcmVuZGVycywganVzdCBpbiBlbXB0eSBzcGFjZS5cbiAqXG4gKiBUaGUgb2JzZXJ2YXRpb25zJyBjb29yZGluYXRlIGZyYW1lIG11c3QgYmUgdGhlIHZvbHVtZSdzIG93bjogdm94ZWwgYChpLCBqLCBrKWBcbiAqIGNvdmVycyBgW2kgKiB2b3hlbFNpemVbMF0sIChpICsgMSkgKiB2b3hlbFNpemVbMF0pYCBvbiB4LCBhbmQgc28gb24uIFRoYXQgbWVhbnNcbiAqIHRoZSB2b2x1bWUncyBuZWFyIGNvcm5lciBzaXRzIGF0IHRoZSBjb29yZGluYXRlIG9yaWdpbiwgc28gYSByZW5kZXJlciBjYW4gcGxhY2VcbiAqIHRoZSB0d28gdG9nZXRoZXIga25vd2luZyBub3RoaW5nIGVsc2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFZvbHVtZU1ldGEge1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgZGVwdGg6IG51bWJlcjtcbiAgLyoqIFdvcmxkIHNpemUgb2Ygb25lIHZveGVsIHBlciBheGlzLCBpbiB0aGUgb2JzZXJ2YXRpb25zJyB1bml0cy4gKi9cbiAgdm94ZWxTaXplOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG59XG5cbi8qKiBMb29rIGEgY29sdW1uJ3MgZGVzY3JpcHRvciB1cCBieSBuYW1lLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRDb2x1bW5NZXRhKFxuICBkYXRhc2V0OiBTcGF0aWFsRGF0YXNldCwgbmFtZTogc3RyaW5nLFxuKTogU3BhdGlhbENvbHVtbk1ldGEgfCB1bmRlZmluZWQge1xuICByZXR1cm4gZGF0YXNldC5jb2x1bW5zLmZpbmQoKGMpID0+IGMubmFtZSA9PT0gbmFtZSk7XG59XG4iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhdGlhbC1kYXRhc2V0LmNvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb250cmFjdHMvc3BhdGlhbC1kYXRhc2V0LmNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCRztBQThFSDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFtQmxDLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxDQUFnQjtJQUNsRCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQztBQUN2QyxDQUFDO0FBQ0QsTUFBTSxVQUFVLGtCQUFrQixDQUFDLENBQWdCO0lBQ2pELE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDO0FBQ3RDLENBQUM7QUFxT0QscUVBQXFFO0FBQ3JFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUM7QUE0SHpDLDZDQUE2QztBQUM3QyxNQUFNLFVBQVUsY0FBYyxDQUM1QixPQUF1QixFQUFFLElBQVk7SUFFckMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztBQUN0RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCYWNrZW5kLW5ldXRyYWwgZGF0YSBtb2RlbCBmb3IgYSAqKnNwYXRpYWwtb21pY3MgZGF0YXNldCoqOiBOIG9ic2VydmF0aW9uc1xuICogKFZpc2l1bSBzcG90cywgc2VnbWVudGVkIGNlbGxzLCBudWNsZWksIOKApikgcG9zaXRpb25lZCBpbiB0aGUgcGl4ZWwgc3BhY2Ugb2YgYVxuICogdGlzc3VlIGltYWdlLCBlYWNoIGNhcnJ5aW5nIGNhdGVnb3JpY2FsIGFuZCBjb250aW51b3VzIGFubm90YXRpb25zLCBwbHVzIGFuXG4gKiBvcHRpb25hbCBmZWF0dXJlIChnZW5lKSBtYXRyaXggYW5kIG9wdGlvbmFsIHBlci1vYnNlcnZhdGlvbiBib3VuZGFyaWVzLlxuICpcbiAqIERFU0lHTlxuICogLS0tLS0tXG4gKiAxLiAqKlN0cnVjdC1vZi1hcnJheXMsIG5vdCBvYmplY3QtcGVyLWNlbGwuKiogUmVhbCBkYXRhc2V0cyBydW4gMTBeMyAoVmlzaXVtKVxuICogICAgdG8gMTBeNiAoWGVuaXVtL0Nvc014KSBvYnNlcnZhdGlvbnMuIGB7eCwgeX1bXWAgYXQgNTAwayBjZWxscyBpcyB+NTAwa1xuICogICAgb2JqZWN0cyB0aGUgR0MgaGFzIHRvIHdhbGs7IHR3byBgRmxvYXQzMkFycmF5YHMgYXJlIHR3byBhbGxvY2F0aW9ucyBhbmRcbiAqICAgIHVwbG9hZCB0byB0aGUgR1BVIHdpdGhvdXQgYSBjb3B5LlxuICpcbiAqIDIuICoqTWV0YWRhdGEgaXMgZWFnZXIsIHZhbHVlcyBhcmUgbGF6eS4qKiBBIGRhdGFzZXQgYWR2ZXJ0aXNlcyAqd2hpY2gqXG4gKiAgICBjb2x1bW5zIGFuZCBmZWF0dXJlcyBleGlzdCAoe0BsaW5rIFNwYXRpYWxDb2x1bW5NZXRhfSxcbiAqICAgIHtAbGluayBTcGF0aWFsRmVhdHVyZU1ldGF9KTsgdGhlIHZlY3RvcnMgdGhlbXNlbHZlcyBhcmUgZmV0Y2hlZCBvbiBkZW1hbmRcbiAqICAgIHRocm91Z2gge0BsaW5rIFNwYXRpYWxEYXRhUG9ydH0uIEEgVmlzaXVtIHRhYmxlIGlzIH4zMGsgZ2VuZXMgd2lkZSDigJQgdGhlXG4gKiAgICBkZW5zZSBtYXRyaXggaXMgfjgwMCBNQiDigJQgc28gXCJsb2FkIHRoZSBkYXRhc2V0XCIgY2FuIG5ldmVyIG1lYW4gXCJsb2FkIHRoZVxuICogICAgbWF0cml4XCIuIE9ubHkgdGhlIGhhbmRmdWwgb2YgY29sdW1ucyBhY3R1YWxseSBiZWluZyBkaXNwbGF5ZWQgaXMgcmVzaWRlbnQuXG4gKlxuICogMy4gKipEYXRhIHN0YXlzIGRhdGEuKiogTm8gSS9PLCBubyBSeEpTLCBubyBBbmd1bGFyIGluIHRoaXMgZmlsZSDigJQgdGhlIHNhbWVcbiAqICAgIHJ1bGUgYHBsb3RseS10cmFjZS1idWlsZGVycy50c2AgZm9sbG93cy4gRmV0Y2hpbmcgbGl2ZXMgb24gdGhlIHBvcnQuXG4gKlxuICogVGhlIHNoYXBlIG1pcnJvcnMgaG93IHRoZSBmaWVsZCBhbHJlYWR5IHN0b3JlcyB0aGlzIChTcGF0aWFsRGF0YS9Bbm5EYXRhOlxuICogYG9ic2AgYW5ub3RhdGlvbnMsIGB2YXJgIGZlYXR1cmVzLCBgb2JzbS9zcGF0aWFsYCBjb29yZGluYXRlcywgc2hhcGVzIHdpdGggYVxuICogY29vcmRpbmF0ZSB0cmFuc2Zvcm0pIHNvIGFuIGFkYXB0ZXIgaXMgYSBwcm9qZWN0aW9uLCBub3QgYSB0cmFuc2xhdGlvbi5cbiAqL1xuXG4vKipcbiAqIE9ic2VydmF0aW9uIHBvc2l0aW9ucy4gRXZlcnkgYXJyYXkgaXMgbGVuZ3RoIHtAbGluayBjb3VudH0gYW5kIGluZGV4LWFsaWduZWQ6XG4gKiBvYnNlcnZhdGlvbiBgaWAgaXMgYXQgYCh4W2ldLCB5W2ldKWAsIGFuZCBjb2x1bW4vZmVhdHVyZSB2ZWN0b3JzIGluZGV4IHRoZVxuICogc2FtZSB3YXkuIFRoaXMgc2hhcmVkIGluZGV4IGlzIHRoZSBqb2luIGtleSBmb3IgdGhlIHdob2xlIG1vZGVsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxPYnNlcnZhdGlvbnMge1xuICAvKiogTiDigJQgbnVtYmVyIG9mIG9ic2VydmF0aW9ucy4gKi9cbiAgcmVhZG9ubHkgY291bnQ6IG51bWJlcjtcbiAgLyoqIFggaW4gdGhlIHJlZmVyZW5jZSBpbWFnZSdzIHBpeGVsIHNwYWNlIChzZWUge0BsaW5rIFNwYXRpYWxJbWFnZVJlZn0pLiAqL1xuICB4OiBGbG9hdDMyQXJyYXk7XG4gIC8qKiBZIGluIHRoZSByZWZlcmVuY2UgaW1hZ2UncyBwaXhlbCBzcGFjZS4gKi9cbiAgeTogRmxvYXQzMkFycmF5O1xuICAvKiogWiwgZm9yIHNlcmlhbCBzZWN0aW9ucyBvciBnZW51aW5lbHkgM0QgYXNzYXlzLiBBYnNlbnQgZm9yIGEgc2luZ2xlIHBsYW5lLiAqL1xuICB6PzogRmxvYXQzMkFycmF5O1xuICAvKiogU3RhYmxlIHBlci1vYnNlcnZhdGlvbiBpZHMgKGJhcmNvZGVzLCBjZWxsIGlkcykgZm9yIHRvb2x0aXBzIGFuZCBleHBvcnQuXG4gICAqICBPcHRpb25hbCDigJQgb21pdCBmb3IgbGFyZ2UgZGF0YXNldHMgd2hlcmUgdGhlIHN0cmluZ3MgY29zdCBtb3JlIHRoYW4gdGhleVxuICAgKiAgYXJlIHdvcnRoLiAqL1xuICBpZHM/OiBzdHJpbmdbXTtcbiAgLyoqIE1hcmtlciBSQURJVVMgaW4gaW1hZ2UgcGl4ZWxzOiBvbmUgdmFsdWUgc2hhcmVkIGJ5IGFsbCBvYnNlcnZhdGlvbnMgKGFcbiAgICogIFZpc2l1bSBzcG90IGlzIGEgZml4ZWQgNTUgwrVtIOKHkiBgMjcuNSAvIG1wcFhgIHB4KSwgb3Igb25lIHBlciBvYnNlcnZhdGlvblxuICAgKiAgKHNlZ21lbnRlZCBjZWxscykuIEFic2VudCDih5IgdGhlIHJlbmRlcmVyIHBpY2tzIGEgZGlzcGxheSBkZWZhdWx0LiAqL1xuICByYWRpdXM/OiBGbG9hdDMyQXJyYXkgfCBudW1iZXI7XG59XG5cbi8qKiBGaWVsZHMgY29tbW9uIHRvIGV2ZXJ5IGNvbHVtbiBkZXNjcmlwdG9yLiAqL1xuaW50ZXJmYWNlIFNwYXRpYWxDb2x1bW5NZXRhQmFzZSB7XG4gIC8qKiBDb2x1bW4gbmFtZSBhcyB0aGUgdXNlciBzZWVzIGl0IChgbGVpZGVuYCwgYHRvdGFsX2NvdW50c2ApLiAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBMb25nZXIgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gZm9yIHRvb2x0aXBzL21lbnVzLiAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIGRpc2NyZXRlIGFubm90YXRpb24g4oCUIGNsdXN0ZXIsIGNlbGwgdHlwZSwgcmVnaW9uLCBzYW1wbGUuIFJlbmRlcmVkIGFzIGFcbiAqIHBhbGV0dGUgKyBsZWdlbmQ7IGEgbGVnZW5kIGNsaWNrIHNlbGVjdHMgdGhlIGNhdGVnb3J5J3Mgb2JzZXJ2YXRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhdGVnb3JpY2FsQ29sdW1uTWV0YSBleHRlbmRzIFNwYXRpYWxDb2x1bW5NZXRhQmFzZSB7XG4gIGtpbmQ6ICdjYXRlZ29yaWNhbCc7XG4gIC8qKiBDYXRlZ29yeSBsYWJlbHM7IGEgdmFsdWUncyBsYWJlbCBpcyBgY2F0ZWdvcmllc1tjb2Rlc1tpXV1gLiAqL1xuICBjYXRlZ29yaWVzOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIEhlYWRpbmcgdGhlIGNvbHVtbiBpcyBsaXN0ZWQgdW5kZXIgaW4gYSBncm91cCBwaWNrZXIg4oCUIGUuZy4gXCJYZW5pdW0gT25ib2FyZCBBbmFseXNpc1xuICAgKiBncm91cHNcIiBmb3IgYSBwaXBlbGluZSdzIGNsdXN0ZXJpbmdzLCBcIkltcG9ydGVkIGdyb3Vwc1wiIGZvciBvbmVzIGFkZGVkIGJ5IGEgdXNlci5cbiAgICovXG4gIHNlY3Rpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDb2x1bW5zIHRoYXQgYXJlIHZhcmlhbnRzIG9mIG9uZSBjaG9pY2Ug4oCUIGstbWVhbnMgYXQgayA9IDLigKYxMCDigJQgc2hhcmUgYSBmYW1pbHk6IGFcbiAgICogcGlja2VyIGxpc3RzIHRoZSBmYW1pbHkgb25jZSBhbmQgb2ZmZXJzIHRoZSB2YXJpYW50cyBiZXNpZGUgaXQuXG4gICAqL1xuICBmYW1pbHk/OiB7IGlkOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IHZhcmlhbnQ6IHN0cmluZyB9O1xuICAvKiogQXV0aG9yZWQgZGlzcGxheSBjb2xvdXJzIGFzIGAjcnJnZ2JiYCwgaW5kZXgtYWxpZ25lZCB3aXRoXG4gICAqICB7QGxpbmsgY2F0ZWdvcmllc30uIFN1cHBseSB0aGVzZSB0byBrZWVwIHRoZSB2aWV3ZXIncyBwYWxldHRlIGlkZW50aWNhbCB0b1xuICAgKiAgdGhlIGZpZ3VyZXMgdGhlIHNhbWUgYW5hbHlzaXMgcHJvZHVjZWQgaW4gUi9QeXRob247IG9taXQgdG8gbGV0IHRoZSB2aWV3ZXJcbiAgICogIGRlcml2ZSBvbmUuICovXG4gIGNvbG9ycz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEEgY29udGludW91cyBtZWFzdXJlbWVudCDigJQgZXhwcmVzc2lvbiwgUUMgbWV0cmljLCBhcmVhLCBkZW5zaXR5LiBSZW5kZXJlZFxuICogdGhyb3VnaCB0aGUgc2hhcmVkIGNvbG9ybWFwL0xVVCArIGNvbnRyYXN0IHdpbmRvdy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250aW51b3VzQ29sdW1uTWV0YSBleHRlbmRzIFNwYXRpYWxDb2x1bW5NZXRhQmFzZSB7XG4gIGtpbmQ6ICdjb250aW51b3VzJztcbiAgLyoqIFVuaXQgZm9yIGF4aXMvdG9vbHRpcCBsYWJlbHMgKGBjb3VudHNgLCBgwrVtwrJgKS4gKi9cbiAgdW5pdD86IHN0cmluZztcbiAgLyoqIFRydWUgd2hlbiB0aGUgY29sdW1uIHJlYWRzIGJlc3QgbG9nLXNjYWxlZCDigJQgY291bnQgZGF0YSBhbG1vc3QgYWx3YXlzXG4gICAqICBkb2VzLCBhbmQgYSBsaW5lYXIgc2NhbGUgY29sbGFwc2VzIGl0IGFnYWluc3QgYSBmZXcgYnJpZ2h0IG91dGxpZXJzLiAqL1xuICBsb2dTY2FsZUhpbnQ/OiBib29sZWFuO1xuICAvKiogT2JzZXJ2ZWQgZXh0cmVtZXMsIHdoZW4gdGhlIHByb2R1Y2VyIGtub3dzIHRoZW0uIExldHMgdGhlIFVJIHNlZWQgYVxuICAgKiAgY29udHJhc3Qgd2luZG93IGFuZCBheGlzIHJhbmdlIHdpdGhvdXQgZmlyc3Qgc2Nhbm5pbmcgdGhlIHZlY3Rvci4gKi9cbiAgbWluPzogbnVtYmVyO1xuICBtYXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIFNwYXRpYWxDb2x1bW5NZXRhID0gQ2F0ZWdvcmljYWxDb2x1bW5NZXRhIHwgQ29udGludW91c0NvbHVtbk1ldGE7XG5cbi8qKlxuICogQ29kZSBtZWFuaW5nIFwidGhpcyBvYnNlcnZhdGlvbiBoYXMgbm8gY2F0ZWdvcnlcIiAodW5hc3NpZ25lZCAvIGZpbHRlcmVkIG91dCAvXG4gKiBub3QgaW4gdGlzc3VlKS4gUmVuZGVyZXJzIHNob3VsZCBkcmF3IGl0IGluIHRoZSBtdXRlZCBiYWNrZ3JvdW5kIHN0eWxlIHJhdGhlclxuICogdGhhbiBhcyBhIHJlYWwgY2F0ZWdvcnksIGFuZCBpdCBtdXN0IG5ldmVyIGluZGV4IHtAbGlua1xuICogQ2F0ZWdvcmljYWxDb2x1bW5NZXRhLmNhdGVnb3JpZXN9LlxuICovXG5leHBvcnQgY29uc3QgTk9fQ0FURUdPUlkgPSAweGZmZmY7XG5cbi8qKiBBIGxvYWRlZCBjYXRlZ29yaWNhbCBjb2x1bW46IHBlci1vYnNlcnZhdGlvbiBpbmRpY2VzIGludG8gYG1ldGEuY2F0ZWdvcmllc2AsXG4gKiAgb3Ige0BsaW5rIE5PX0NBVEVHT1JZfS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2F0ZWdvcmljYWxDb2x1bW4ge1xuICBtZXRhOiBDYXRlZ29yaWNhbENvbHVtbk1ldGE7XG4gIC8qKiBMZW5ndGggPSB7QGxpbmsgU3BhdGlhbE9ic2VydmF0aW9ucy5jb3VudH0uICovXG4gIGNvZGVzOiBVaW50MTZBcnJheTtcbn1cblxuLyoqIEEgbG9hZGVkIGNvbnRpbnVvdXMgY29sdW1uLiBgTmFOYCBtYXJrcyBhIG1pc3NpbmcgdmFsdWUuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnRpbnVvdXNDb2x1bW4ge1xuICBtZXRhOiBDb250aW51b3VzQ29sdW1uTWV0YTtcbiAgLyoqIExlbmd0aCA9IHtAbGluayBTcGF0aWFsT2JzZXJ2YXRpb25zLmNvdW50fS4gKi9cbiAgdmFsdWVzOiBGbG9hdDMyQXJyYXk7XG59XG5cbmV4cG9ydCB0eXBlIFNwYXRpYWxDb2x1bW4gPSBDYXRlZ29yaWNhbENvbHVtbiB8IENvbnRpbnVvdXNDb2x1bW47XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NhdGVnb3JpY2FsQ29sdW1uKGM6IFNwYXRpYWxDb2x1bW4pOiBjIGlzIENhdGVnb3JpY2FsQ29sdW1uIHtcbiAgcmV0dXJuIGMubWV0YS5raW5kID09PSAnY2F0ZWdvcmljYWwnO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udGludW91c0NvbHVtbihjOiBTcGF0aWFsQ29sdW1uKTogYyBpcyBDb250aW51b3VzQ29sdW1uIHtcbiAgcmV0dXJuIGMubWV0YS5raW5kID09PSAnY29udGludW91cyc7XG59XG5cbi8qKlxuICogVGhlIGZlYXR1cmUgKGdlbmUpIG1hdHJpeCwgZGVzY3JpYmVkIGJ1dCBuZXZlciBkZWxpdmVyZWQgd2hvbGUuIFZlY3RvcnMgY29tZVxuICogb25lIGF0IGEgdGltZSBmcm9tIHtAbGluayBTcGF0aWFsRGF0YVBvcnQuZ2V0RmVhdHVyZVZlY3Rvcn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbEZlYXR1cmVNZXRhIHtcbiAgLyoqIE51bWJlciBvZiBmZWF0dXJlcyBhdmFpbGFibGUuICovXG4gIGNvdW50OiBudW1iZXI7XG4gIC8qKlxuICAgKiBBbGwgZmVhdHVyZSBuYW1lcywgd2hlbiB0aGUgcHJvZHVjZXIgY2hvc2UgdG8gaW5saW5lIHRoZW0uIFByZXNlbnQgZm9yXG4gICAqIHRhcmdldGVkIHBhbmVscyAoWGVuaXVtL0Nvc014IHNoaXAgMzAw4oCTNSwwMDAgZ2VuZXMg4oeSIGEgZmV3IGRvemVuIEtCKSBhbmRcbiAgICogYWJzZW50IGZvciB3aG9sZS10cmFuc2NyaXB0b21lIGRhdGEgKFZpc2l1bSBzaGlwcyB+MzFrIOKHkiB+MzUwIEtCKSwgd2hlcmVcbiAgICogdGhlIFVJIHNob3VsZCB1c2Uge0BsaW5rIFNwYXRpYWxEYXRhUG9ydC5zZWFyY2hGZWF0dXJlc30gZm9yIHR5cGVhaGVhZFxuICAgKiBpbnN0ZWFkIG9mIGRvd25sb2FkaW5nIHRoZSBsaXN0LiBDb25zdW1lcnMgbXVzdCBoYW5kbGUgYm90aC5cbiAgICovXG4gIG5hbWVzPzogc3RyaW5nW107XG4gIC8qKiBXaGF0IGEgZmVhdHVyZSB2YWx1ZSBtZWFucyAoYGxvZzFwIG5vcm1hbGl6ZWRgLCBgcmF3IGNvdW50c2ApLiAqL1xuICB1bml0Pzogc3RyaW5nO1xuICAvKiogVHJ1ZSB3aGVuIGZlYXR1cmUgdmVjdG9ycyByZWFkIGJlc3QgbG9nLXNjYWxlZCAocmF3IGNvdW50cykuICovXG4gIGxvZ1NjYWxlSGludD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUGVyLW9ic2VydmF0aW9uIGJvdW5kYXJpZXMgKGNlbGwvbnVjbGV1cyBzZWdtZW50YXRpb24sIHNwb3Qgb3V0bGluZXMpIGFzIGZsYXRcbiAqIHJpbmdzIOKAlCBkZWxpYmVyYXRlbHkgTk9UIEdlb0pTT04gb2JqZWN0cywgd2hpY2ggY29zdCBvbmUgb2JqZWN0ICsgb25lIGFycmF5XG4gKiBwZXIgY2VsbCBhbmQgd291bGQgZG9taW5hdGUgbWVtb3J5IGF0IDEwXjUgcG9seWdvbnMuXG4gKlxuICogUmluZyBgaWAgb2NjdXBpZXMgYGNvb3Jkc1syKm9mZnNldHNbaV0gLi4gMipvZmZzZXRzW2krMV0pYCBhcyBgeDAseTAseDEseTEs4oCmYFxuICogYW5kIGlzIGltcGxpY2l0bHkgY2xvc2VkLiBgb2Zmc2V0c2AgaGFzIGxlbmd0aCBgY291bnQgKyAxYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsUG9seWdvbnMge1xuICBjb29yZHM6IEZsb2F0MzJBcnJheTtcbiAgb2Zmc2V0czogVWludDMyQXJyYXk7XG4gIC8qKiBOdW1iZXIgb2YgcmluZ3Mg4oCUIGBvZmZzZXRzLmxlbmd0aCAtIDFgLiAqL1xuICByZWFkb25seSBjb3VudDogbnVtYmVyO1xufVxuXG4vKiogUHJlc2VuY2Uvc2l6ZSBvZiB0aGUgYm91bmRhcnkgZ2VvbWV0cnksIHdpdGhvdXQgbG9hZGluZyBpdC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFBvbHlnb25zTWV0YSB7XG4gIGNvdW50OiBudW1iZXI7XG59XG5cbi8qKlxuICogSG93IG9ic2VydmF0aW9uIGNvb3JkaW5hdGVzIHJlbGF0ZSB0byB0aGUgdGlzc3VlIGltYWdlIHRoZXkgYXJlIGRyYXduIG92ZXIuXG4gKiBBcHBsaWVkIGFzIGB3b3JsZCA9IGNvb3JkICogc2NhbGUgKyB0cmFuc2xhdGVgLCBtYXRjaGluZyB0aGUgYWZmaW5lIHRoYXRcbiAqIFNwYXRpYWxEYXRhIHJlY29yZHMgcGVyIGNvb3JkaW5hdGUgc3lzdGVtIOKAlCBhbmQgdGhlIGZ1bGwtcmVzb2x1dGlvbiB3b3JsZFxuICogY29udmVudGlvbiB0aGUgbmFwYXJpLWpzIGJhY2tlbmQgYWxyZWFkeSB1c2VzIHNvIHByZS1zYXZlZCByZWdpb25zIGFsaWduIG9uXG4gKiBweXJhbWlkYWwgc2xpZGVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxJbWFnZVJlZiB7XG4gIC8qKiBIb3N0LWRlZmluZWQgaWQgb2YgdGhlIGltYWdlIHRoZXNlIGNvb3JkaW5hdGVzIGxpdmUgaW4sIHNvIHRoZSBob3N0IGNhblxuICAgKiAgcmVzb2x2ZSBpdCB0byBhbiBgSUltYWdlSW5mb2AuICovXG4gIGltYWdlSWQ/OiBzdHJpbmc7XG4gIC8qKiBEYXRh4oaSd29ybGQgc2NhbGUuIERlZmF1bHRzIHRvIGBbMSwgMV1gIChjb29yZGluYXRlcyBhbHJlYWR5IGluXG4gICAqICBmdWxsLXJlc29sdXRpb24gaW1hZ2UgcGl4ZWxzKS4gKi9cbiAgc2NhbGU/OiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKiogRGF0YeKGkndvcmxkIHRyYW5zbGF0aW9uLCBpbiB0aGUgc2FtZSB1bml0cyBhcyB7QGxpbmsgc2NhbGV9J3Mgb3V0cHV0LiAqL1xuICB0cmFuc2xhdGU/OiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKiogUGh5c2ljYWwgcGl4ZWwgc2l6ZSBpbiDCtW0g4oCUIGRyaXZlcyB0aGUgc2NhbGUgYmFyIGFuZCBwaHlzaWNhbCBtYXJrZXJcbiAgICogIHNpemluZyAoYSA1NSDCtW0gVmlzaXVtIHNwb3QpLiAqL1xuICBtcHBYPzogbnVtYmVyO1xuICBtcHBZPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgc3BhdGlhbC1vbWljcyBkYXRhc2V0OiBldmVyeXRoaW5nIGNoZWFwIGVub3VnaCB0byBob2xkIHJlc2lkZW50LiBDb2x1bW4gYW5kXG4gKiBmZWF0dXJlICp2YWx1ZXMqLCBhbmQgcG9seWdvbiAqZ2VvbWV0cnkqLCBhcmUgZmV0Y2hlZCB0aHJvdWdoXG4gKiB7QGxpbmsgU3BhdGlhbERhdGFQb3J0fSBhcyB0aGV5IGFyZSBkaXNwbGF5ZWQuXG4gKi9cbi8qKlxuICogQSBwcmVjb21wdXRlZCBsb3ctZGltZW5zaW9uYWwgZW1iZWRkaW5nIG92ZXIgdGhlIFNBTUUgb2JzZXJ2YXRpb25zIOKAlCBVTUFQLCB0LVNORSwgUENBLlxuICpcbiAqIEFubm91bmNlZCBpbiB0aGUgZGF0YXNldCBhbmQgZmV0Y2hlZCBvbiBkZW1hbmQsIGV4YWN0bHkgbGlrZSBhIGNvbHVtbiBvciBhIGdlbmU6IHRoZVxuICogY29vcmRpbmF0ZXMgYXJlIGFub3RoZXIgcGVyLW9ic2VydmF0aW9uIHZlY3RvciwgYW5kIGEgZGF0YXNldCBtYXkgY2Fycnkgc2V2ZXJhbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsRW1iZWRkaW5nTWV0YSB7XG4gIC8qKiBLZXkgYXMgdGhlIHNvdXJjZSBuYW1lcyBpdCwgZS5nLiBgWF91bWFwYC4gKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogU2hvcnQgbGFiZWwgZm9yIG1lbnVzOyBmYWxscyBiYWNrIHRvIHtAbGluayBuYW1lfS4gKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG4gIC8qKiAyIGZvciBhIHBsYW5lLCAzIGZvciBhIGNsb3VkLiAqL1xuICBkaW1zOiAyIHwgMztcbiAgLyoqXG4gICAqIFRydWUgd2hlbiB0aGUgY29vcmRpbmF0ZXMgd2VyZSBDT01QVVRFRCBmb3IgdGhpcyBidW5kbGUgcmF0aGVyIHRoYW4gcHVibGlzaGVkIHdpdGggdGhlXG4gICAqIGRhdGFzZXQuIFdvcnRoIHN1cmZhY2luZzogYSBVTUFQIHJlY29tcHV0ZWQgd2l0aCBkaWZmZXJlbnQgcGFyYW1ldGVycyBpcyBhIGRpZmZlcmVudCBwaWN0dXJlLFxuICAgKiBhbmQgYSByZWFkZXIgY29tcGFyaW5nIGFnYWluc3QgYSBwYXBlcidzIGZpZ3VyZSBuZWVkcyB0byBrbm93IHdoaWNoIHRoZXkgYXJlIGxvb2tpbmcgYXQuXG4gICAqL1xuICBkZXJpdmVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEZyYWN0aW9uIG9mIHRvdGFsIHZhcmlhbmNlIGVhY2ggYXhpcyBhY2NvdW50cyBmb3IsIGluZGV4LWFsaWduZWQgd2l0aCB0aGUgZGltZW5zaW9ucy5cbiAgICpcbiAgICogT25seSBtZWFuaW5nZnVsIGZvciBhIExJTkVBUiBlbWJlZGRpbmcg4oCUIFBDQS4gSXRzIGF4ZXMgYXJlIG9yZGVyZWQsIGFuZCBlYWNoIG9uZSBleHBsYWlucyBhXG4gICAqIG1lYXN1cmFibGUgc2hhcmUgb2YgdGhlIHZhcmlhbmNlLCB3aGljaCBpcyB0aGUgd2hvbGUgcmVhc29uIHRvIGxvb2sgYXQgYSBQQ0EgcmF0aGVyIHRoYW4gYVxuICAgKiBVTUFQOiBcIlBDMSAoMjMlKVwiIHNheXMgc29tZXRoaW5nLCB3aGVyZSBcIlVNQVAgMVwiIHNheXMgbm90aGluZyBhdCBhbGwuIEEgVU1BUCdzIGNvb3JkaW5hdGVzXG4gICAqIGFyZSBhbiBhcmJpdHJhcnkgb3V0cHV0IG9mIGFuIG9wdGltaXNhdGlvbiB3aXRoIG5vIHZhcmlhbmNlIHRvIHJlcG9ydCwgc28gdGhpcyBzdGF5cyBhYnNlbnRcbiAgICogdGhlcmUgcmF0aGVyIHRoYW4gYmVpbmcgZmFrZWQuXG4gICAqL1xuICB2YXJpYW5jZVJhdGlvPzogbnVtYmVyW107XG4gIC8qKlxuICAgKiBIb3cgYSBkZXJpdmVkIGVtYmVkZGluZyB3YXMgY29tcHV0ZWQsIGluIGEgZmV3IHdvcmRzIOKAlCBlLmcuIFwiUENBKDUwKSB0aGVuIHBlcnBsZXhpdHkgMzAsXG4gICAqIHNlZWQgMFwiLlxuICAgKlxuICAgKiBOb3QgZGVjb3JhdGlvbi4gQSB0LVNORSBvciBVTUFQIGlzIHN0b2NoYXN0aWMsIGFuZCBpdHMgcGljdHVyZSBjaGFuZ2VzIG1hdGVyaWFsbHkgd2l0aFxuICAgKiBwZXJwbGV4aXR5IG9yIGBuX25laWdoYm9yc2A7IHR3byBydW5zIGF0IGRpZmZlcmVudCBzZXR0aW5ncyBhcmUgZGlmZmVyZW50IHBpY3R1cmVzIG9mIHRoZSBzYW1lXG4gICAqIGNlbGxzLCBhbmQgbmVpdGhlciBpcyBtb3JlIGNvcnJlY3QuIFNheWluZyBcImNvbXB1dGVkIGhlcmVcIiB3aXRob3V0IHNheWluZyBIT1cgbGVhdmVzIGEgcmVhZGVyXG4gICAqIHVuYWJsZSB0byByZXByb2R1Y2Ugb3IgY29tcGFyZSBpdC4gQWJzZW50IGZvciBhIHB1Ymxpc2hlZCBlbWJlZGRpbmcsIHdob3NlIHBhcmFtZXRlcnMgYmVsb25nXG4gICAqIHRvIHdob2V2ZXIgcHVibGlzaGVkIGl0LlxuICAgKi9cbiAgcGFyYW1zPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9uZSBlbWJlZGRpbmcncyBjb29yZGluYXRlcy5cbiAqXG4gKiBEZWxpYmVyYXRlbHkgc2hhcGVkIGxpa2Uge0BsaW5rIFNwYXRpYWxPYnNlcnZhdGlvbnN9JyBgeGAvYHlgL2B6YCByYXRoZXIgdGhhbiBhbiAoTiwgRCkgbWF0cml4OlxuICogdGhlIHBvaW50IG9mIGFuIGVtYmVkZGluZyBoZXJlIGlzIHRvIGJlIHN3YXBwZWQgaW4gYXMgdGhlIHNjYXR0ZXIncyBjb29yZGluYXRlIHNvdXJjZSwgYW5kXG4gKiBtYXRjaGluZyB0aGF0IHNoYXBlIG1lYW5zIHRoZSByZW5kZXJlciwgdGhlIGhvdmVyIGhpdC10ZXN0IGFuZCB0aGUgc2VsZWN0aW9uIGNvZGUgbmVlZCBub1xuICogdmFyaWFudCBmb3IgaXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbEVtYmVkZGluZyB7XG4gIG1ldGE6IFNwYXRpYWxFbWJlZGRpbmdNZXRhO1xuICB4OiBGbG9hdDMyQXJyYXk7XG4gIHk6IEZsb2F0MzJBcnJheTtcbiAgej86IEZsb2F0MzJBcnJheTtcbn1cblxuLyoqXG4gKiBMZXZlbC1vZi1kZXRhaWwgZ2VvbWV0cnksIHNlcnZlZCBvbmUgZ3JpZCB0aWxlIGF0IGEgdGltZS5cbiAqXG4gKiBXaG9sZS1kYXRhc2V0IHZlY3RvcnMgc3RvcCB3b3JraW5nIHNvbWV3aGVyZSBwYXN0IDEwXjUgb2JzZXJ2YXRpb25zOiA3MTdrIFhlbml1bSBjZWxsXG4gKiBvdXRsaW5lcyBhcmUgfjE0MCBNQiwgYW5kIGEgd2hvbGUtdHJhbnNjcmlwdG9tZSBydW4gaGFzIH4xMF45IHRyYW5zY3JpcHRzLiBXaGF0IHNjYWxlc1xuICogaXMgd2hhdCBtYXAgdGlsZXMgZG8g4oCUIGEgc3F1YXJlIGdyaWQgaW4gdGhlIG9ic2VydmF0aW9ucycgY29vcmRpbmF0ZSBzcGFjZSwgb25lIGdyaWRcbiAqIHBlciBsZXZlbCwgZWFjaCBsZXZlbCdzIHRpbGVzIHR3aWNlIHRoZSBzaXplIG9mIHRoZSBvbmUgYmVsb3cgYW5kIGNhcnJ5aW5nIGNvYXJzZXJcbiAqIGdlb21ldHJ5LiBUaGUgcmVuZGVyZXIgYXNrcyBvbmx5IGZvciB0aGUgdGlsZXMgb24gc2NyZWVuLCBhdCB0aGUgbGV2ZWwgdGhlIHpvb20gbmVlZHMuXG4gKlxuICogVGlsZSBgKGd4LCBneSlgIGF0IGxldmVsIGBsYCBjb3ZlcnMgYFtneMK3cywgKGd4KzEpwrdzKSDDlyBbZ3nCt3MsIChneSsxKcK3cylgIHdpdGhcbiAqIGBzID0gbGV2ZWxzW2xdLnRpbGVTaXplYCwgaW4gdGhlIHNhbWUgdW5pdHMgYXMge0BsaW5rIFNwYXRpYWxPYnNlcnZhdGlvbnMueH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFRpbGVMZXZlbCB7XG4gIC8qKiBFZGdlIGxlbmd0aCBvZiBvbmUgdGlsZSwgaW4gb2JzZXJ2YXRpb24gY29vcmRpbmF0ZSB1bml0cy4gKi9cbiAgdGlsZVNpemU6IG51bWJlcjtcbn1cblxuLyoqIEF4aXMtYWxpZ25lZCBleHRlbnQgYFttaW5YLCBtaW5ZLCBtYXhYLCBtYXhZXWAgaW4gb2JzZXJ2YXRpb24gY29vcmRpbmF0ZXMuICovXG5leHBvcnQgdHlwZSBTcGF0aWFsQm91bmRzID0gW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG5cbi8qKiBUaWxlZCBjZWxsL251Y2xldXMgYm91bmRhcmllcy4gTGV2ZWwgMCBpcyB0aGUgZmluZXN0IChldmVyeSB2ZXJ0ZXgpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsUG9seWdvblRpbGVzTWV0YSB7XG4gIGJvdW5kczogU3BhdGlhbEJvdW5kcztcbiAgLyoqIEJvdW5kYXJ5IHNldHMgb24gb2ZmZXIg4oCUIHR5cGljYWxseSBgY2VsbGAgYW5kIGBudWNsZXVzYC4gKi9cbiAgc2V0czogeyBuYW1lOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfVtdO1xuICAvKiogVGhlIHNldCB0byBkcmF3IHdoZW4gdGhlIHVzZXIgaGFzIG5vdCBjaG9zZW4uICovXG4gIGRlZmF1bHRTZXQ/OiBzdHJpbmc7XG4gIGxldmVsczogU3BhdGlhbFRpbGVMZXZlbFtdO1xufVxuXG4vKiogVGlsZWQgdHJhbnNjcmlwdHMuIExldmVsIDAgaXMgb25lIGVudHJ5IHBlciB0cmFuc2NyaXB0OyBjb2Fyc2VyIGxldmVscyBhZ2dyZWdhdGUuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxUcmFuc2NyaXB0VGlsZXNNZXRhIHtcbiAgYm91bmRzOiBTcGF0aWFsQm91bmRzO1xuICAvKiogVG90YWwgdHJhbnNjcmlwdHMsIGZvciBkaXNwbGF5LiAqL1xuICBjb3VudD86IG51bWJlcjtcbiAgLyoqIFJlYWwgZ2VuZXMgKGNvbnRyb2wgcHJvYmVzIGV4Y2x1ZGVkKS4gTmFtZXMgY29tZSBmcm9tIHRoZSBmZWF0dXJlIHNlYXJjaC4gKi9cbiAgZ2VuZUNvdW50OiBudW1iZXI7XG4gIGhhc1o6IGJvb2xlYW47XG4gIGxldmVsczogKFNwYXRpYWxUaWxlTGV2ZWwgJiB7XG4gICAgLyoqIFRydWUgd2hlbiBhbiBlbnRyeSBzdGFuZHMgZm9yIHNldmVyYWwgdHJhbnNjcmlwdHMgKHNlZSB7QGxpbmsgU3BhdGlhbFRyYW5zY3JpcHRUaWxlLndlaWdodH0pLiAqL1xuICAgIGFnZ3JlZ2F0ZWQ6IGJvb2xlYW47XG4gIH0pW107XG4gIC8qKlxuICAgKiBMZXZlbHMgdXAgdG8gYW5kIGluY2x1ZGluZyB0aGlzIG9uZSBhc3NpZ24gZWFjaCBlbnRyeSB0byB0aGUgY2VsbCBpdCBsaWVzIGluXG4gICAqIGV4YWN0bHk7IGFib3ZlIGl0IHRoZSBhc3NpZ25tZW50IG5hbWVzIHRoZSBjZWxsIG5lYXJlc3QgYW4gYWdncmVnYXRlJ3MgY2VudHJvaWQuXG4gICAqL1xuICBleGFjdENlbGxMZXZlbD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBUaGUgYWxsLWdlbmUgdHJhbnNjcmlwdCBncm91cGluZyBweXJhbWlkOiBzcXVhcmUgYmlucywgZm91ciB0aW1lcyBjb2Fyc2VyIHBlciBsZXZlbCxcbiAqIGVhY2ggaG9sZGluZyBhIGNvdW50LCBhIGNlbnRyb2lkIGFuZCB0aGUgY2VsbCB0aGF0IGNvbnRyaWJ1dGVkIG1vc3Qgb2YgaXRzIHRyYW5zY3JpcHRzLlxuICogU2VydmVkIHBlciB0aWxlLCBpbiB0aGUge0BsaW5rIFNwYXRpYWxUcmFuc2NyaXB0VGlsZX0gbGF5b3V0IChvbmUgZW50cnkgcGVyIGJpbikuXG4gKlxuICogVGlsZSBgKHR4LCB0eSlgIG9mIGxldmVsIGBsYCBjb3ZlcnMgYG9yaWdpbiArIFt0eMK3cywgKHR4KzEpwrdzKSDDlyBbdHnCt3MsICh0eSsxKcK3cylgIHdpdGhcbiAqIGBzID0gbGV2ZWxzW2xdLnRpbGVTaXplYCDigJQgbm90ZSB0aGUgb3JpZ2luLCB3aGljaCB0aGUgcGVyLWdlbmUgdGlsZXMgZG8gbm90IGhhdmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFRyYW5zY3JpcHRCaW5zTWV0YSB7XG4gIGJvdW5kczogU3BhdGlhbEJvdW5kcztcbiAgb3JpZ2luOiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKiogVHJhbnNjcmlwdHMgdGhlIHB5cmFtaWQgd2FzIGJ1aWx0IGZyb20uICovXG4gIGNvdW50OiBudW1iZXI7XG4gIGxldmVsczogeyBiaW5TaXplOiBudW1iZXI7IHRpbGVTaXplOiBudW1iZXIgfVtdO1xufVxuXG4vKipcbiAqIEEgZ3JvdXBpbmcgcHlyYW1pZCB0aGUgc2VydmVyIGlzIHN0aWxsIGJ1aWxkaW5nIChpdCBidWlsZHMgb25lIGl0c2VsZiB3aGVuIGEgZGF0YXNldFxuICogYXJyaXZlcyB3aXRob3V0IGl0KS4gXCJBbGwgZ2VuZXNcIiBiZWNvbWVzIGF2YWlsYWJsZSBvbmNlIGl0IGlzIGRvbmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFRyYW5zY3JpcHRCaW5zU3RhdHVzIHtcbiAgc3RhdGU6ICdxdWV1ZWQnIHwgJ2J1aWxkaW5nJyB8ICdmYWlsZWQnO1xuICAvKiogU291cmNlIHRpbGVzIHByb2Nlc3NlZCBzbyBmYXIsIG9mIGB0b3RhbGAuICovXG4gIGRvbmU/OiBudW1iZXI7XG4gIHRvdGFsPzogbnVtYmVyO1xuICBtZXNzYWdlPzogc3RyaW5nO1xufVxuXG4vKiogV2hhdCBpcyBpbiBhbiBhcmVhIOKAlCB0aGUgaG92ZXIgZGV0YWlscyBvZiBhIHRyYW5zY3JpcHQgbWFya2VyIG9yIGdyb3VwZWQgYmluLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsVHJhbnNjcmlwdFN1bW1hcnkge1xuICAvKiogQWJzZW50IGZvciBhIHB1cmUgY2VsbC1pZCBsb29rdXAuICovXG4gIHRyYW5zY3JpcHRzPzogbnVtYmVyO1xuICAvKiogRGlzdGluY3QgZ2VuZXMgYW1vbmcgdGhlbS4gKi9cbiAgZ2VuZXM/OiBudW1iZXI7XG4gIHRvcEdlbmVzPzogeyBuYW1lOiBzdHJpbmc7IGNvdW50OiBudW1iZXIgfVtdO1xuICAvKiogRGlzdGluY3QgY2VsbHMgdGhleSBmYWxsIGluLCBhbmQgaG93IG1hbnkgZmFsbCBpbiBub25lLiAqL1xuICBjZWxscz86IG51bWJlcjtcbiAgdW5hc3NpZ25lZD86IG51bWJlcjtcbiAgdG9wQ2VsbHM/OiB7IGluZGV4OiBudW1iZXI7IGlkPzogc3RyaW5nOyBjb3VudDogbnVtYmVyIH1bXTtcbiAgLyoqIERpc3BsYXkgaWRzIG9mIHRoZSBjZWxscyBhc2tlZCBmb3IsIGJ5IG9ic2VydmF0aW9uIGluZGV4LiAqL1xuICBjZWxsSWRzPzogUmVjb3JkPG51bWJlciwgc3RyaW5nPjtcbn1cblxuLyoqIEEgcGVyLWdlbmUgdHJhbnNjcmlwdC1jb3VudCByYXN0ZXIgY292ZXJpbmcgdGhlIHNlY3Rpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxEZW5zaXR5TWV0YSB7XG4gIC8qKiBTaXplIG9mIG9uZSByYXN0ZXIgY2VsbCwgaW4gb2JzZXJ2YXRpb24gdW5pdHMsIGBbeCwgeV1gLiAqL1xuICBncmlkU2l6ZTogW251bWJlciwgbnVtYmVyXTtcbiAgLyoqIE9ic2VydmF0aW9uLXNwYWNlIHBvc2l0aW9uIG9mIHJhc3RlciBjZWxsICgwLCAwKSdzIG5lYXIgY29ybmVyLiAqL1xuICBvcmlnaW46IFtudW1iZXIsIG51bWJlcl07XG4gIHJvd3M6IG51bWJlcjtcbiAgY29sczogbnVtYmVyO1xufVxuXG4vKiogXCJObyBvYnNlcnZhdGlvblwiIGluIHtAbGluayBTcGF0aWFsVHJhbnNjcmlwdFRpbGUub2JzZXJ2YXRpb259LiAqL1xuZXhwb3J0IGNvbnN0IE5PX09CU0VSVkFUSU9OID0gMHhmZmZmZmZmZjtcblxuLyoqIE9uZSB0aWxlIG9mIGJvdW5kYXJpZXM6IHJpbmdzIGFzIGluIHtAbGluayBTcGF0aWFsUG9seWdvbnN9LCBwbHVzIHdobyBvd25zIGVhY2ggcmluZy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFBvbHlnb25UaWxlIGV4dGVuZHMgU3BhdGlhbFBvbHlnb25zIHtcbiAgLyoqIE9ic2VydmF0aW9uIGluZGV4IG9mIHJpbmcgYGlgIOKAlCB0aGUgam9pbiBrZXkgdG8gY29sdW1ucyBhbmQgZmVhdHVyZXMuICovXG4gIG9ic2VydmF0aW9uOiBVaW50MzJBcnJheTtcbn1cblxuLyoqIE9uZSB0aWxlIG9mIHRyYW5zY3JpcHRzIChvciBhZ2dyZWdhdGVzIG9mIHRoZW0pLiBFdmVyeSBhcnJheSBoYXMgbGVuZ3RoIHtAbGluayBjb3VudH0uICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxUcmFuc2NyaXB0VGlsZSB7XG4gIHJlYWRvbmx5IGNvdW50OiBudW1iZXI7XG4gIGFnZ3JlZ2F0ZWQ6IGJvb2xlYW47XG4gIHg6IEZsb2F0MzJBcnJheTtcbiAgeTogRmxvYXQzMkFycmF5O1xuICB6OiBGbG9hdDMyQXJyYXk7XG4gIC8qKiBUcmFuc2NyaXB0cyBlYWNoIGVudHJ5IHN0YW5kcyBmb3Ig4oCUIDEgYXQgYW4gdW5hZ2dyZWdhdGVkIGxldmVsLiAqL1xuICB3ZWlnaHQ6IFVpbnQzMkFycmF5O1xuICAvKiogT2JzZXJ2YXRpb24gKGNlbGwpIHRoZSBlbnRyeSBmYWxscyBpbiwgb3Ige0BsaW5rIE5PX09CU0VSVkFUSU9OfS4gKi9cbiAgb2JzZXJ2YXRpb246IFVpbnQzMkFycmF5O1xuICAvKiogSW5kZXggaW50byB0aGUgYGdlbmVzYCBsaXN0IHRoZSB0aWxlIHdhcyByZXF1ZXN0ZWQgd2l0aC4gKi9cbiAgZ2VuZTogVWludDE2QXJyYXk7XG59XG5cbi8qKiBUcmFuc2NyaXB0IHRvdGFscyBmb3IgYW4gZXN0aW1hdGUgb2YgaG93IG1hbnkgbWFya2VycyBhIHNlbGVjdGlvbiB3b3VsZCBkcmF3LiAqL1xuLyoqIFRoZSBwZXItZ2VuZSBsZXZlbHM6IGVhY2ggbGV2ZWwncyBiaW4gYW5kIHRpbGUgc2l6ZSwgb24gdGhlIGFsbC1nZW5lIHB5cmFtaWQncyBncmlkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsVHJhbnNjcmlwdEdlbmVCaW5zTWV0YSB7XG4gIG9yaWdpbjogW251bWJlciwgbnVtYmVyXTtcbiAgbGV2ZWxzOiB7IGJpblNpemU6IG51bWJlcjsgdGlsZVNpemU6IG51bWJlciB9W107XG59XG5cbi8qKlxuICogTWFya2VyIGdlbmVzIG9mIGVhY2ggZ3JvdXAgb2YgYSBjYXRlZ29yaWNhbCBjb2x1bW46IHBlciBncm91cCwgdGhlIHJlYWwgZ2VuZXMgbW9zdFxuICogc3BlY2lmaWMgdG8gaXQsIGJlc3QgZmlyc3QuIEEgZ2VuZSdzIHNjb3JlIGlzIGl0cyBtZWFuIGBsb2cxcChjb3VudClgIGluIHRoZSBncm91cCBtaW51c1xuICogdGhhdCBpbiBldmVyeSBvdGhlciBjZWxsOyBpdCBtdXN0IGJlIGRldGVjdGVkIGluIGF0IGxlYXN0IDEwJSBvZiB0aGUgZ3JvdXAncyBjZWxscywgYW5kXG4gKiBpbiBtb3JlIG9mIHRoZW0gdGhhbiBlbHNld2hlcmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbE1hcmtlckdlbmVzIHtcbiAgY29sdW1uOiBzdHJpbmc7XG4gIGdyb3Vwczoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICAvKiogQ2VsbHMgaW4gdGhlIGdyb3VwLiAqL1xuICAgIGNlbGxzOiBudW1iZXI7XG4gICAgZ2VuZXM6IHsgbmFtZTogc3RyaW5nOyBzY29yZTogbnVtYmVyOyBwY3RJbjogbnVtYmVyOyBwY3RPdXQ6IG51bWJlciB9W107XG4gIH1bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsVHJhbnNjcmlwdENvdW50cyB7XG4gIC8qKiBUb3RhbCB0cmFuc2NyaXB0cyBwZXIgcmVxdWVzdGVkIGdlbmUsIG92ZXIgdGhlIHdob2xlIGRhdGFzZXQuICovXG4gIGNvdW50czogUmVjb3JkPHN0cmluZywgbnVtYmVyPjtcbiAgLyoqIFRvdGFsIG92ZXIgZXZlcnkgZ2VuZS4gKi9cbiAgdG90YWw6IG51bWJlcjtcbiAgLyoqIEV4dGVudCB0aGUgdG90YWxzIGFyZSBzcHJlYWQgb3ZlciAob2JzZXJ2YXRpb24gdW5pdHMpLiAqL1xuICBib3VuZHM6IFNwYXRpYWxCb3VuZHM7XG59XG5cbi8qKiBBIHN1bW1lZCBkZW5zaXR5IHJhc3RlciBmb3IgYSBsaXN0IG9mIGdlbmVzOyBgdmFsdWVzYCBpcyByb3ctbWFqb3IgYHJvd3Mgw5cgY29sc2AuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxEZW5zaXR5UmFzdGVyIHtcbiAgbWV0YTogU3BhdGlhbERlbnNpdHlNZXRhO1xuICBnZW5lczogc3RyaW5nW107XG4gIHZhbHVlczogRmxvYXQzMkFycmF5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxEYXRhc2V0IHtcbiAgLyoqIFN0YWJsZSBpZCDigJQgdGhlIGtleSB0aGUgcG9ydCdzIGxhenkgYWNjZXNzb3JzIGFyZSBzY29wZWQgdG8uICovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBuYW1lIGZvciBtZW51cy4gKi9cbiAgbmFtZTogc3RyaW5nO1xuICBvYnNlcnZhdGlvbnM6IFNwYXRpYWxPYnNlcnZhdGlvbnM7XG4gIC8qKiBFdmVyeSBjb2x1bW4gYXZhaWxhYmxlLCB3aGV0aGVyIG9yIG5vdCBpdHMgdmFsdWVzIGFyZSBsb2FkZWQuICovXG4gIGNvbHVtbnM6IFNwYXRpYWxDb2x1bW5NZXRhW107XG4gIGZlYXR1cmVzPzogU3BhdGlhbEZlYXR1cmVNZXRhO1xuICBwb2x5Z29ucz86IFNwYXRpYWxQb2x5Z29uc01ldGE7XG4gIGltYWdlUmVmPzogU3BhdGlhbEltYWdlUmVmO1xuICAvKiogUHJlc2VuY2UgKyBnZW9tZXRyeSBvZiBhIHJlZmVyZW5jZSB2b2x1bWUgdGhlIG9ic2VydmF0aW9ucyBzaXQgaW5zaWRlLiAqL1xuICB2b2x1bWU/OiBTcGF0aWFsVm9sdW1lTWV0YTtcbiAgLyoqIEVtYmVkZGluZ3MgYXZhaWxhYmxlIGZvciB0aGVzZSBvYnNlcnZhdGlvbnMsIHdob3NlIGNvb3JkaW5hdGVzIGFyZSBmZXRjaGVkIG9uIGRlbWFuZC4gKi9cbiAgZW1iZWRkaW5ncz86IFNwYXRpYWxFbWJlZGRpbmdNZXRhW107XG4gIC8qKiBMZXZlbC1vZi1kZXRhaWwgYm91bmRhcmllcywgZmV0Y2hlZCBwZXIgdGlsZSDigJQgc2VlIHtAbGluayBTcGF0aWFsUG9seWdvblRpbGVzTWV0YX0uICovXG4gIHBvbHlnb25UaWxlcz86IFNwYXRpYWxQb2x5Z29uVGlsZXNNZXRhO1xuICAvKiogTGV2ZWwtb2YtZGV0YWlsIHRyYW5zY3JpcHRzLCBmZXRjaGVkIHBlciB0aWxlIOKAlCBzZWUge0BsaW5rIFNwYXRpYWxUcmFuc2NyaXB0VGlsZXNNZXRhfS4gKi9cbiAgdHJhbnNjcmlwdFRpbGVzPzogU3BhdGlhbFRyYW5zY3JpcHRUaWxlc01ldGE7XG4gIC8qKiBBIHNlcnZlZCBwZXItZ2VuZSB0cmFuc2NyaXB0IGRlbnNpdHkgcmFzdGVyLiAqL1xuICBkZW5zaXR5PzogU3BhdGlhbERlbnNpdHlNZXRhO1xuICAvKiogVGhlIGFsbC1nZW5lIHRyYW5zY3JpcHQgZ3JvdXBpbmcgcHlyYW1pZCwgd2hlbiBpdCBoYXMgYmVlbiBidWlsdC4gKi9cbiAgdHJhbnNjcmlwdEJpbnM/OiBTcGF0aWFsVHJhbnNjcmlwdEJpbnNNZXRhO1xuICAvKiogUGVyLWdlbmUgbGV2ZWxzIG9mIHRoZSB0cmFuc2NyaXB0IHB5cmFtaWQgKHNhbWUgYmlucyk6IGEgZ2VuZSBzZWxlY3Rpb24gYXQgYW55IHpvb20uICovXG4gIHRyYW5zY3JpcHRHZW5lQmlucz86IFNwYXRpYWxUcmFuc2NyaXB0R2VuZUJpbnNNZXRhO1xuICAvKiogUHJlc2VudCB3aGlsZSB0aGUgc2VydmVyIGlzIHN0aWxsIGJ1aWxkaW5nIHtAbGluayB0cmFuc2NyaXB0Qmluc30uICovXG4gIHRyYW5zY3JpcHRCaW5zU3RhdHVzPzogU3BhdGlhbFRyYW5zY3JpcHRCaW5zU3RhdHVzO1xuICAvKipcbiAgICogTWljcm9ucyBwZXIgb2JzZXJ2YXRpb24gY29vcmRpbmF0ZSB1bml0IOKAlCB3aGF0IG1ha2VzIGEgc2NhbGUgYmFyIHBvc3NpYmxlLlxuICAgKlxuICAgKiBUaGUgMkQgcGF0aCBnZXRzIHRoaXMgZnJvbSBgaW1hZ2VSZWYubXBwWGAsIGJlY2F1c2UgdGhlcmUgdGhlIGNvb3JkaW5hdGVzIGFyZVxuICAgKiBpbWFnZSBwaXhlbHMuIEEgM0QgY2xvdWQgaGFzIG5vIGltYWdlLCBzbyBpdCBoYXMgdG8gc2F5IGZvciBpdHNlbGY6IGAxYCBtZWFuc1xuICAgKiB0aGUgY29vcmRpbmF0ZXMgYXJlIGFscmVhZHkgbWljcm9ucy5cbiAgICpcbiAgICogQWJzZW50IG1lYW5zIHRoZSB1bml0IGlzIFVOS05PV04sIGFuZCBhIHJlbmRlcmVyIG11c3QgdGhlbiBkcmF3IG5vIHNjYWxlIGJhclxuICAgKiByYXRoZXIgdGhhbiBhc3N1bWUgb25lLiBBIGJhciBsYWJlbGxlZCBpbiBtaWNyb25zIG92ZXIgcGl4ZWwtc3BhY2VcbiAgICogY29vcmRpbmF0ZXMgaXMgd29yc2UgdGhhbiBubyBiYXI6IGl0IGxvb2tzIGxpa2UgYSBtZWFzdXJlbWVudC5cbiAgICovXG4gIG1pY3JvbnNQZXJVbml0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgM0Qgc2NhbGFyIHJlZmVyZW5jZSB2b2x1bWUgcmVnaXN0ZXJlZCB0byB0aGUgb2JzZXJ2YXRpb24gY29vcmRpbmF0ZXMg4oCUIHRoZVxuICogYW5hdG9taWNhbCBiYWNrZHJvcCBmb3IgYSBwb2ludCBjbG91ZCAoYW4gYXRsYXMgdGVtcGxhdGUsIG9yIGFuIGltYWdlIHotc3RhY2spLlxuICpcbiAqIEdlb21ldHJ5IG9ubHk7IHRoZSB2b3hlbHMgYXJlIGZldGNoZWQgdGhyb3VnaFxuICoge0BsaW5rIFNwYXRpYWxEYXRhUG9ydC5nZXRWb2x1bWV9IHdoZW4gc29tZXRoaW5nIGlzIGdvaW5nIHRvIGRyYXcgdGhlbS4gQSBjbG91ZFxuICogd2l0aG91dCBvbmUgc3RpbGwgcmVuZGVycywganVzdCBpbiBlbXB0eSBzcGFjZS5cbiAqXG4gKiBUaGUgb2JzZXJ2YXRpb25zJyBjb29yZGluYXRlIGZyYW1lIG11c3QgYmUgdGhlIHZvbHVtZSdzIG93bjogdm94ZWwgYChpLCBqLCBrKWBcbiAqIGNvdmVycyBgW2kgKiB2b3hlbFNpemVbMF0sIChpICsgMSkgKiB2b3hlbFNpemVbMF0pYCBvbiB4LCBhbmQgc28gb24uIFRoYXQgbWVhbnNcbiAqIHRoZSB2b2x1bWUncyBuZWFyIGNvcm5lciBzaXRzIGF0IHRoZSBjb29yZGluYXRlIG9yaWdpbiwgc28gYSByZW5kZXJlciBjYW4gcGxhY2VcbiAqIHRoZSB0d28gdG9nZXRoZXIga25vd2luZyBub3RoaW5nIGVsc2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFZvbHVtZU1ldGEge1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgZGVwdGg6IG51bWJlcjtcbiAgLyoqIFdvcmxkIHNpemUgb2Ygb25lIHZveGVsIHBlciBheGlzLCBpbiB0aGUgb2JzZXJ2YXRpb25zJyB1bml0cy4gKi9cbiAgdm94ZWxTaXplOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG59XG5cbi8qKiBMb29rIGEgY29sdW1uJ3MgZGVzY3JpcHRvciB1cCBieSBuYW1lLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRDb2x1bW5NZXRhKFxuICBkYXRhc2V0OiBTcGF0aWFsRGF0YXNldCwgbmFtZTogc3RyaW5nLFxuKTogU3BhdGlhbENvbHVtbk1ldGEgfCB1bmRlZmluZWQge1xuICByZXR1cm4gZGF0YXNldC5jb2x1bW5zLmZpbmQoKGMpID0+IGMubmFtZSA9PT0gbmFtZSk7XG59XG4iXX0=
@@ -7,4 +7,4 @@ import { InjectionToken } from '@angular/core';
7
7
  * the routing/fallback implementation can change without touching constructors.
8
8
  */
9
9
  export const VISUALIZER = new InjectionToken('VISUALIZER');
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsaXplci5jb250cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJhY3RzL3Zpc3VhbGl6ZXIuY29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQW9lL0M7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksY0FBYyxDQUFjLFlBQVksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEltYWdlIH0gZnJvbSAnaW1hZ2UtanMnO1xuXG5pbXBvcnQgeyBJSW1hZ2VJbmZvLCBJSW1hZ2VNZXRhZGF0YSB9IGZyb20gJy4vaW1hZ2UuY29udHJhY3QnO1xuaW1wb3J0IHsgUmVnaW9uIH0gZnJvbSAnLi4vbW9kZWxzL3JlZ2lvbic7XG5pbXBvcnQgeyBQbG90VHlwZSwgUGxvdFR5cGVEZXNjcmlwdG9yIH0gZnJvbSAnLi9wbG90LXR5cGUnO1xuaW1wb3J0IHsgVmlld2VyQ2FwYWJpbGl0aWVzIH0gZnJvbSAnLi9jYXBhYmlsaXRpZXMuY29udHJhY3QnO1xuaW1wb3J0IHsgSVJlZ2lvbk92ZXJsYXkgfSBmcm9tICcuL3JlZ2lvbi1vdmVybGF5LmNvbnRyYWN0JztcbmltcG9ydCB7IElIaXN0b2dyYW0gfSBmcm9tICcuL2NoYW5uZWwtaGlzdG9ncmFtLWFwaS5jb250cmFjdCc7XG5pbXBvcnQgeyBDb2xvcm1hcE5vZGUsIElXYW5kT3B0aW9ucywgSUJydXNoT3B0aW9ucywgU3BhdGlhbFZpZXdTdGF0ZSwgU3BhdGlhbENvbG9yQnkgfSBmcm9tICcuL2Rpc3BsYXktdHlwZXMnO1xuaW1wb3J0IHtcbiAgQ2F0ZWdvcmljYWxDb2x1bW5NZXRhLFxuICBTcGF0aWFsRGF0YXNldCxcbiAgU3BhdGlhbEVtYmVkZGluZyxcbiAgU3BhdGlhbFRyYW5zY3JpcHRDb3VudHMsXG59IGZyb20gJy4vc3BhdGlhbC1kYXRhc2V0LmNvbnRyYWN0JztcbmltcG9ydCB7IFNwYXRpYWxTZWxlY3Rpb25NYXNrIH0gZnJvbSAnLi4vc3BhdGlhbC9zcGF0aWFsLXNlbGVjdGlvbic7XG5pbXBvcnQgdHlwZSB7IFBsb3RNb2RlVmlld3BvcnQgfSBmcm9tICcuL3Bsb3QtdHlwZS1jb250cmlidXRpb24uY29udHJhY3QnO1xuXG4vKipcbiAqIEJhY2tlbmQtbmV1dHJhbCB2aXN1YWxpemF0aW9uIGNvbnRyYWN0LiBQbG90bHkgaXMgb25lIGltcGxlbWVudGF0aW9uO1xuICogT3BlblNlYWRyYWdvbiBpcyBhbm90aGVyIChmb3IgdGhlIGltYWdlIHBsb3QgdHlwZSkuIFRoZSBhYnN0cmFjdGlvbiByZW5kZXJzXG4gKiBkYXRhIOKAlCBhIHJhc3RlciBpbWFnZSBPUiBhIHNjaWVudGlmaWMgcGxvdCAoaGVhdG1hcCwgc3VyZmFjZSwgY29udG91cixcbiAqIHNjYXR0ZXIsIGxpbmUsIGlzb3N1cmZhY2UpIOKAlCBkcmF3cyByZWdpb25zIG9uIGl0LCBhbmQgZHJpdmVzIG9uLWNhbnZhcyB0b29scy5cbiAqXG4gKiBTcGxpdCBpbnRvIHJvbGUgaW50ZXJmYWNlcyBzbyBhIGNvbnN1bWVyIGNhbiBkZXBlbmQgb25seSBvbiB0aGUgc2xpY2UgaXRcbiAqIHVzZXMsIHRoZW4gY29tcG9zZWQgaW50byBgSVZpc3VhbGl6ZXJgLlxuICpcbiAqIFR5cGVzIGFyZSBpbnRlbnRpb25hbGx5IHBlcm1pc3NpdmUgKGBhbnlgIHdoZXJlIHRoZSBjdXJyZW50IFBsb3RseSBzZXJ2aWNlXG4gKiBpcyB1bnR5cGVkKSBzbyBgUGxvdGx5U2VydmljZWAgc2F0aXNmaWVzIHRoZSBjb250cmFjdCB3aXRob3V0IGEgdHlwaW5nXG4gKiByZXdyaXRlIOKAlCB0aWdodGVuaW5nIGlzIGEgZm9sbG93LXVwLCBub3QgcGFydCBvZiBzdGFuZGluZyB0aGUgaW50ZXJmYWNlIHVwLlxuICovXG5cbi8qKiBQaXhlbCByZWFkYmFjayBzaGFwZSByZXR1cm5lZCBieSBgZ2V0RGlzcGxheWVkUGl4ZWxEYXRhYC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGl4ZWxEYXRhIHtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIGNoYW5uZWxzOiBudW1iZXI7XG4gIGRhdGE6IFVpbnQ4Q2xhbXBlZEFycmF5O1xufVxuXG4vKiogSW50ZW5zaXR5IHNhbXBsZWQgYWxvbmcgYSBsaW5lIFJPSSAoUGxvdFR5cGUuTElORSBvdmVyIGltYWdlIGRhdGEpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRlbnNpdHlQcm9maWxlIHtcbiAgLyoqIERpc3RhbmNlIGFsb25nIHRoZSBsaW5lLiBJbiBtaWNyb25zIHdoZW4gdGhlIGltYWdlIGNhcnJpZXMgYSBwaHlzaWNhbFxuICAgKiAgcGl4ZWwgc2l6ZSAobXBwKTsgb3RoZXJ3aXNlIGluIGltYWdlIHBpeGVscy4gU2VlIHtAbGluayB1bml0fS4gKi9cbiAgcG9zaXRpb25zOiBudW1iZXJbXTtcbiAgLyoqIFNhbXBsZWQgaW50ZW5zaXR5IChncmF5c2NhbGUgdmFsdWUgb3IgUkdCIGx1bWluYW5jZSkuICovXG4gIHZhbHVlczogbnVtYmVyW107XG4gIC8qKiBVbml0IG9mIHtAbGluayBwb3NpdGlvbnN9OiAnwrVtJyB3aGVuIHNjYWxlZCBieSB0aGUgaW1hZ2UncyBtcHAsIGVsc2UgJ3B4Jy4gKi9cbiAgdW5pdD86ICfCtW0nIHwgJ3B4JztcbiAgLyoqIFN0YWJsZSBpZCBvZiB0aGUgbGluZSBST0kgdGhpcyBwcm9maWxlIGNhbWUgZnJvbSAobXVsdGktbGluZSBzdXBwb3J0KS4gKi9cbiAgaWQ/OiBudW1iZXI7XG4gIC8qKiBDb2xvdXIgb2YgdGhlIGxpbmUgUk9JIOKAlCB0aGUgaW5zZXQgdHJhY2UgaXMgZHJhd24gaW4gdGhlIHNhbWUgY29sb3VyLiAqL1xuICBjb2xvcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgcmVuZGVyL3ZpZXdwb3J0IHJvbGU6IGxvYWQgZGF0YSwgcmVuZGVyIGl0IChpbWFnZSBvciBwbG90KSwgYW5kIGhhbmRsZVxuICogem9vbSwgc3RhY2sgbmF2aWdhdGlvbiwgYW5kIHBpeGVsIHJlYWRiYWNrLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElEYXRhUmVuZGVyZXIge1xuICBsb2FkKGltYWdlSW5mbzogSUltYWdlSW5mbywgekluZGV4OiBudW1iZXIpOiBQcm9taXNlPGFueT47XG4gIC8qKiBgaW1hZ2VMb2FkZWRgIGlzIHRoZSBiYWNrZW5kLXNwZWNpZmljIGhhbmRsZSByZXR1cm5lZCBieSBgbG9hZCgpYCDigJRcbiAgICogIHRyZWF0IGl0IGFzIG9wYXF1ZSBhbmQgcGFzcyBpdCBzdHJhaWdodCB0aHJvdWdoLiAqL1xuICBwbG90KHBsb3REaXY6IHN0cmluZywgaW1hZ2VMb2FkZWQ6IHVua25vd24sIGltYWdlSW5mbzogSUltYWdlSW5mbywgc2NyZWVuSGVpZ2h0OiBudW1iZXIsXG4gICAgICAgcGxvdFR5cGU6IFBsb3RUeXBlLCBpblBsYWNlPzogYm9vbGVhbik6IFByb21pc2U8Ym9vbGVhbj47XG4gIC8qKiBAZGVwcmVjYXRlZCBQbG90bHktc3BlY2lmaWMgcmUtcmVuZGVyOyB0aGUgT1NEIGJhY2tlbmQgbm8tb3BzIGl0LiBUaGUgaG9zdFxuICAgKiAgcmUtZHJpdmVzIGBwbG90KClgIGZyb20gaXRzIGltYWdlIHN0cmVhbSBpbnN0ZWFkLiAqL1xuICByZWxvYWRBbmRQbG90KCk6IHZvaWQ7XG4gIHJlc2V0KCk6IHZvaWQ7XG4gIHJlbGF5b3V0KHRydWVJbWFnZVNpemU/OiBudW1iZXJbXSk6IHZvaWQ7XG4gIC8qKiBAZGVwcmVjYXRlZCBQbG90bHktc3BlY2lmaWMgKGF4aXMgcmVzZXQpOyB0aGUgT1NEIGJhY2tlbmQgbm8tb3BzIGl0LiBHYXRlXG4gICAqICBvbiB7QGxpbmsgVmlld2VyQ2FwYWJpbGl0aWVzfSBiZWZvcmUgY2FsbGluZy4gKi9cbiAgcmVzZXRBeGVzKCk6IHZvaWQ7XG4gIC8qKiBAZGVwcmVjYXRlZCBQbG90bHktc3BlY2lmaWMgKGF1dG9zY2FsZSk7IHRoZSBPU0QgYmFja2VuZCBuby1vcHMgaXQuIEdhdGVcbiAgICogIG9uIHtAbGluayBWaWV3ZXJDYXBhYmlsaXRpZXN9IGJlZm9yZSBjYWxsaW5nLiAqL1xuICBhdXRvc2NhbGUoKTogdm9pZDtcbiAgem9vbUluKCk6IHZvaWQ7XG4gIHpvb21PdXQoKTogdm9pZDtcbiAgc2V0RHJhZ01vZGUobW9kZTogc3RyaW5nIHwgZmFsc2UpOiB2b2lkO1xuICAvKiogU2hvdy9oaWRlIHRoZSBvdmVydmlldyBuYXZpZ2F0b3IgKHRoZSBtaW5pbWFwKS4gT3BlblNlYWRyYWdvbiBvbmx5IOKAlCBQbG90bHlcbiAgICogIG5vLW9wcyBpdCAoaXQgaGFzIG5vIG5hdmlnYXRvcikuIEFwcGxpZWQgd2hlbiB0aGUgdmlld2VyIGlzIChyZSljcmVhdGVkLCBhbmRcbiAgICogIHRvZ2dsZWQgbGl2ZSB3aGVuIG9uZSBpcyBhbHJlYWR5IG1vdW50ZWQuICovXG4gIHNldE5hdmlnYXRvclZpc2libGUodmlzaWJsZTogYm9vbGVhbik6IHZvaWQ7XG4gIC8qKiBJbWFnZSBzbW9vdGhpbmcgKGJpbGluZWFyIGludGVycG9sYXRpb24pLiBgZmFsc2VgID0gbmVhcmVzdC1uZWlnaGJvdXIsIHNvXG4gICAqICB6b29taW5nIHBhc3QgMToxIHNob3dzIGNyaXNwIHBpeGVsIGJsb2NrcyAocGl4ZWwtbGV2ZWwgaW5zcGVjdGlvbikuXG4gICAqICBPcGVuU2VhZHJhZ29uIG9ubHkg4oCUIFBsb3RseSBuby1vcHMgaXQuIEFwcGxpZWQgYXQgdmlld2VyIGNyZWF0aW9uIGFuZCBsaXZlXG4gICAqICAod2l0aCBhIHJlZHJhdykgd2hlbiBvbmUgaXMgbW91bnRlZC4gKi9cbiAgc2V0SW1hZ2VTbW9vdGhpbmdFbmFibGVkKGVuYWJsZWQ6IGJvb2xlYW4pOiB2b2lkO1xuXG4gIHNldFNob3dTdGFjayhzaG93c3RhY2s6IGJvb2xlYW4pOiB2b2lkO1xuICBzZXRaSW5kZXgoekluZGV4OiBudW1iZXIpOiB2b2lkO1xuICBzZXRTdGFja0xvYWRpbmcoc3RhY2tMb2FkaW5nOiBib29sZWFuKTogdm9pZDtcbiAgaXNTdGFja0xvYWRpbmcoKTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgZ2V0U3RhY2tMb2FkaW5nUHJvZ3Jlc3MoKTogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICAvKiogQ2FuY2VsIGFueSBpbi1mbGlnaHQgbXVsdGktZnJhbWUgbG9hZGluZyAodm9sdW1lLWFzc2VtYmx5IC8gc3VyZmFjZSBwcmVsb2FkKSBzbyBpdCBzdG9wc1xuICAgKiAgZmV0Y2hpbmcgbW9yZSBmcmFtZXMgYW5kIGNsZWFycyB0aGUgbG9hZGluZyBzdGF0ZS4gT3B0aW9uYWwg4oCUIG9ubHkgYmFja2VuZHMgdGhhdCBzdHJlYW0gYVxuICAgKiAgei1zdGFjayAobmFwYXJpLWpzIFdlYkdQVSkgZG8gcmVhbCB3b3JrIGhlcmU7IG90aGVycyBuby1vcC4gKi9cbiAgY2FuY2VsTG9hZGluZz8oKTogdm9pZDtcblxuICBnZXRUcnVlSW1hZ2VTaXplKCk6IHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXIgfSB8IG51bGw7XG4gIGdldEN1cnJlbnRJbWFnZSgpOiBQcm9taXNlPEltYWdlIHwgbnVsbD47XG4gIGdldERpc3BsYXllZFBpeGVsRGF0YSgpOiBQaXhlbERhdGEgfCBudWxsO1xuICAvKipcbiAgICogVGhlIHJlZ2lvbiBvZiB0aGUgb3JpZ2luYWwsIGZ1bGwtcmVzb2x1dGlvbiBpbWFnZSB0aGF0IHRoZSBwaXhlbHMgcmV0dXJuZWRcbiAgICogYnkge0BsaW5rIGdldERpc3BsYXllZFBpeGVsRGF0YX0gY3VycmVudGx5IGNvdmVyIOKAlCBgeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH1gXG4gICAqIGluIGZ1bGwtaW1hZ2UgcGl4ZWwgY29vcmRpbmF0ZXMuIFdoZW4gem9vbWVkL3Bhbm5lZCBpbnRvIGEgc3ViLWFyZWEgdGhpcyBpc1xuICAgKiB0aGUgY3JvcCdzIG9yaWdpbiArIGV4dGVudDsgd2hlbiB6b29tZWQgb3V0L3Bhbm5lZCBiZXlvbmQgdGhlIGVkZ2VzLCB0aGVcbiAgICogcmVjdGFuZ2xlIG1heSBleHRlbmQgb3V0c2lkZSB0aGUgaW1hZ2UgYm91bmRzIChtYXRjaGluZyB0aGUgcGl4ZWwgcmVhZGJhY2tcbiAgICogY2FudmFzKS4gTGV0cyBhIGNvbnN1bWVyIG1hcCBkaXNwbGF5ZWQtcGl4ZWwgY29vcmRpbmF0ZXMgYmFjayB0byB0aGUgb3JpZ2luYWxcbiAgICogaW1hZ2UgdmlhIGBvcmlnaW4gKyBkaXNwbGF5ZWRQeCAqIChleHRlbnQgLyBkaXNwbGF5ZWREaW0pYC4gXG4gICAqXG4gICAqIFJldHVybnMgYG51bGxgIHdoZW4gdGhlIHZpZXdwb3J0IGlzbid0IGxhaWQgb3V0IHlldCBvciB0aGUgYmFja2VuZCBjYW4ndFxuICAgKiByZXBvcnQgaXQg4oCUIGNhbGxlcnMgc2hvdWxkIHRoZW4gZmFsbCBiYWNrIHRvIHRoZSBmdWxsLWltYWdlIHNjYWxlICh0cmVhdFxuICAgKiB0aGUgZGlzcGxheWVkIHBpeGVscyBhcyBhIGRvd25zYW1wbGUgb2YgdGhlIHdob2xlIGltYWdlKS5cbiAgICovXG4gIGdldERpc3BsYXllZFNvdXJjZVJlY3QoKTogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXIgfSB8IG51bGw7XG4gIGRvd25sb2FkSW1hZ2UoKTogdm9pZDtcblxuICBzZXRQbG90VHlwZShwbG90VHlwZTogUGxvdFR5cGUpOiB2b2lkO1xuICAvKiogU2V0IHRoZSBuYXBhcmkgM0QgZGVjaW1hdGUgZmFjdG9yICgxID0gZnVsbCDigKYgOCA9IOKFmykuIE9wdGlvbmFsIOKAlCBvbmx5IHRoZSBuYXBhcmktanMgV2ViR1BVXG4gICAqICBiYWNrZW5kIGhvbm9ycyBpdDsgY2hhbmdpbmcgaXQgcmUtbG9hZHMgdGhlIGN1cnJlbnQgM0QgcGxvdCBhdCB0aGUgY29hcnNlci9maW5lciBzYW1wbGluZy4gKi9cbiAgc2V0UmVzb2x1dGlvblNjYWxlPyhzY2FsZTogbnVtYmVyKTogdm9pZDtcbiAgLyoqIFRoZSBjdXJyZW50IG5hcGFyaSAzRCBkZWNpbWF0ZSBmYWN0b3IgKHRvIGluaXRpYWxpemUgdGhlIFJlc29sdXRpb24gY29udHJvbCkuIE9wdGlvbmFsLiAqL1xuICBnZXRSZXNvbHV0aW9uU2NhbGU/KCk6IG51bWJlcjtcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBgZ2V0U3VyZmFjZTNkQ29udHJvbHMoKWAg4oCUIDNEIHNjZW5lIGNvbnRyb2xzIG9ubHkgZXhpc3Qgb25cbiAgICogIGEgYmFja2VuZCB0aGF0IHJlbmRlcnMgM0QgcGxvdCB0eXBlczsgdGhpcyBtZXRob2Qgc2lsZW50bHkgbm8tb3BzIG9uIE9TRC4gKi9cbiAgc2V0U3VyZmFjZURyYWdNb2RlKG1vZGU6IHN0cmluZyk6IHZvaWQ7XG4gIC8qKiBAZGVwcmVjYXRlZCBVc2UgYGdldFN1cmZhY2UzZENvbnRyb2xzKClgIOKAlCBzZWUge0BsaW5rIHNldFN1cmZhY2VEcmFnTW9kZX0uICovXG4gIHJlc2V0U3VyZmFjZUNhbWVyYSgpOiB2b2lkO1xuXG4gIGdldEF1dG9zY2FsZUV2ZW50KCk6IE9ic2VydmFibGU8YW55PjtcblxuICAvKiogUGxvdCB0eXBlcyB0aGlzIGJhY2tlbmQgYWR2ZXJ0aXNlcyAoZHJpdmVzIHRoZSBVSSBzZWxlY3RvcikuICovXG4gIGdldFBsb3RUeXBlRGVzY3JpcHRvcnMoKTogUGxvdFR5cGVEZXNjcmlwdG9yW107XG5cbiAgLyoqIEludGVuc2l0eSBhbG9uZyB0aGUgbGluZSBST0lzOyBlbWl0cyB0aGUgZnVsbCBzZXQgYXMgYW55IGxpbmUgaXMgYWRkZWQsXG4gICAqICBtb3ZlZCwgb3IgcmVtb3ZlZCAoUGxvdFR5cGUuTElORSkuIE9uZSBlbnRyeSBwZXIgbGluZSBST0kuICovXG4gIGdldEludGVuc2l0eVByb2ZpbGUkKCk6IE9ic2VydmFibGU8SW50ZW5zaXR5UHJvZmlsZVtdPjtcblxuICAvKiogUmVuZGVyIHRoZSBmbG9hdGluZyBpbnRlbnNpdHktcHJvZmlsZSBpbnNldCBjaGFydCBpbnRvIGBkaXZJZGAgZnJvbSB0aGVcbiAgICogIGdpdmVuIHByb2ZpbGVzIChvbmUgdHJhY2UgcGVyIGxpbmUgUk9JLCBjb2xvdXJlZCB0byBtYXRjaCBpdHMgbGluZSkuXG4gICAqICBPd25lZCBieSB0aGUgYmFja2VuZCBzbyBjb25zdW1lcnMgbmV2ZXIgcmVhY2ggYSBjaGFydGluZyBsaWJyYXJ5IGRpcmVjdGx5LiAqL1xuICByZW5kZXJJbnRlbnNpdHlJbnNldChkaXZJZDogc3RyaW5nLCBwcm9maWxlczogSW50ZW5zaXR5UHJvZmlsZVtdKTogdm9pZDtcbn1cblxuLyoqIFJlZ2lvbi9zaGFwZSBzdGF0ZTogQ1JVRCwgc2VsZWN0aW9uLCBjbGFzc2lmaWNhdGlvbiBjb2xvdXJzLCBHZW9KU09OIEkvTy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVJlZ2lvblN0b3JlIHtcbiAgc2V0UmVnaW9ucyhyZWdpb25zOiBSZWdpb25bXSwgc2hvd1JlZ2lvbkxhYmVsPzogYm9vbGVhbiwgaXNSZWdpb25TYXZlT24/OiBib29sZWFuLFxuICAgICAgICAgICAgIGZpbGxDb2xvcj86IHN0cmluZywgYXBwZW5kPzogYm9vbGVhbik6IHZvaWQ7XG4gIC8qKiBGcmFtZXdvcmstbmV1dHJhbCBhY2Nlc3NvciDigJQgdGhlIGNhbm9uaWNhbCB3YXkgdG8gcmVhZCBjdXJyZW50IHJlZ2lvbnMuICovXG4gIGdldFJlZ2lvbnMoKTogUmVnaW9uW107XG4gIGdldFJlZ2lvblBvbHlnb25zKCk6IGFueVtdO1xuICBnZXRSZWdpb25VcGRhdGVFdmVudCgpOiBPYnNlcnZhYmxlPGFueVtdPjtcblxuICBzZXRTZWxlY3RlZFNoYXBlSW5kaWNlcyhpbmRpY2VzOiBudW1iZXJbXSk6IHZvaWQ7XG4gIGdldFNlbGVjdGVkU2hhcGVJbmRpY2VzJCgpOiBPYnNlcnZhYmxlPG51bWJlcltdPjtcbiAgLyoqIFNlbGVjdCBhIHNwZWNpZmljIHJlZ2lvbiAoYnkgaWRlbnRpdHkpLCBoaWdobGlnaHRpbmcgaXQgb24gd2hpY2hldmVyXG4gICAqICBiYWNrZW5kIGlzIHJlbmRlcmluZyDigJQgUGxvdGx5IHNldHMgaXRzIGFjdGl2ZS1zaGFwZSBoYW5kbGVzLCBPcGVuU2VhZHJhZ29uXG4gICAqICBoaWdobGlnaHRzIHRoZSBTVkcgZWxlbWVudC4gTm8tb3AgaWYgdGhlIHJlZ2lvbiBpc24ndCBpbiB0aGUgc3RvcmUuICovXG4gIHNlbGVjdFJlZ2lvbihyZWdpb246IFJlZ2lvbik6IHZvaWQ7XG4gIGRlbGV0ZUFjdGl2ZVNoYXBlKCk6IHZvaWQ7XG5cbiAgZ2V0U2hvd1NoYXBlTGFiZWwoKTogYm9vbGVhbjtcbiAgZ2V0U2hhcGVDb2xvcigpOiBzdHJpbmc7XG4gIGdldEZpbGxDb2xvcigpOiBzdHJpbmc7XG4gIGdldENsYXNzaWZpY2F0aW9uQ29sb3JzKCk6IE1hcDxzdHJpbmcsIHN0cmluZz47XG4gIHNldENsYXNzaWZpY2F0aW9uQ29sb3IobGFiZWw6IHN0cmluZywgY29sb3I6IHN0cmluZyk6IHZvaWQ7XG5cbiAgcGxvdFByZXZpb3VzU2hhcGVzKCk6IHZvaWQ7XG4gIHNldFByZXZpb3VzU2hhcGVzKHNoYXBlczogYW55W10pOiB2b2lkO1xuICBnZXRQcmV2aW91c1NoYXBlcygpOiBhbnlbXTtcblxuICAvKiogVW5kbyB0aGUgbW9zdCByZWNlbnQgcmVnaW9uIGFjdGlvbiAoaml0LXVpIzg1KS4gUmVzdG9yZXMgdGhlIHJlZ2lvbiBzZXQgdG9cbiAgICogIHRoZSBzdGF0ZSBiZWZvcmUgdGhhdCBhY3Rpb247IHVwIHRvIGEgc21hbGwgZml4ZWQgZGVwdGggKDEwKSBpcyByZXRhaW5lZCxcbiAgICogIHNvIGl0IGNhbiBiZSBpbnZva2VkIHVwIHRvIDEwIHRpbWVzIGluIGEgcm93LiBOby1vcCB3aGVuIG5vdGhpbmcgaXMgbGVmdCB0b1xuICAgKiAgdW5kby4gKi9cbiAgdW5kbygpOiB2b2lkO1xuICAvKiogUmUtYXBwbHkgdGhlIG1vc3QgcmVjZW50bHkgdW5kb25lIHJlZ2lvbiBhY3Rpb24uIE5vLW9wIHdoZW4gdGhlcmUnc1xuICAgKiAgbm90aGluZyB0byByZWRvIChhbnkgZnJlc2ggcmVnaW9uIGFjdGlvbiBjbGVhcnMgdGhlIHJlZG8gZnV0dXJlKS4gKi9cbiAgcmVkbygpOiB2b2lkO1xuICAvKiogU3luY2hyb25vdXMgcmVhZCBvZiB7QGxpbmsgZ2V0Q2FuVW5kbyR9LiAqL1xuICBjYW5VbmRvKCk6IGJvb2xlYW47XG4gIC8qKiBTeW5jaHJvbm91cyByZWFkIG9mIHtAbGluayBnZXRDYW5SZWRvJH0uICovXG4gIGNhblJlZG8oKTogYm9vbGVhbjtcbiAgLyoqIEVtaXRzIHdoZXRoZXIgYW4gdW5kbyBzdGVwIGlzIGN1cnJlbnRseSBhdmFpbGFibGUg4oCUIGRyaXZlcyB0aGUgdG9vbGJhclxuICAgKiAgVW5kbyBidXR0b24ncyBlbmFibGVkIChncmV5ZWQtb3V0KSBzdGF0ZS4gKi9cbiAgZ2V0Q2FuVW5kbyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgLyoqIEVtaXRzIHdoZXRoZXIgYSByZWRvIHN0ZXAgaXMgY3VycmVudGx5IGF2YWlsYWJsZSDigJQgZHJpdmVzIHRoZSB0b29sYmFyXG4gICAqICBSZWRvIGJ1dHRvbidzIGVuYWJsZWQgKGdyZXllZC1vdXQpIHN0YXRlLiAqL1xuICBnZXRDYW5SZWRvJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAvKiogQ2xlYXIgdGhlIHVuZG8vcmVkbyBoaXN0b3J5IChlLmcuIG9uIGltYWdlIGxvYWQvc3dpdGNoKS4gKi9cbiAgcmVzZXRVbmRvSGlzdG9yeSgpOiB2b2lkO1xuXG4gIGltcG9ydFJlZ2lvbnMoZ2VvSnNvblN0cjogc3RyaW5nKTogUmVnaW9uW107XG4gIGV4cG9ydFJlZ2lvbnMocmVnaW9uczogUmVnaW9uW10pOiB2b2lkO1xuICBnZXRHZW9Kc29uU3RyaW5nKHJlZ2lvbnM6IFJlZ2lvbltdKTogc3RyaW5nO1xuXG4gIC8qKiBCZWdpbiBhIHBlci1zbGljZSB6LXN0YWNrIHJlZ2lvbiBzZXNzaW9uIChqaXQtdWkjOTMpLiBgc2xpY2VzYCBtYXBzIGVhY2hcbiAgICogIHplcm8tYmFzZWQgc2xpY2UgaW5kZXggdG8gdGhhdCBzbGljZSdzIHJlZ2lvbnM7IHRoZSBzdG9yZSBzaG93cyBgaW5pdGlhbFpgXG4gICAqICBsaXZlIHdoaWxlIGhvbGRpbmcgdGhlIHJlc3QsIHNvIHNjcnViYmluZyBzd2FwcyByZWdpb24gc2V0cyBhbmQgZWRpdHMgb24gYVxuICAgKiAgc2xpY2UgcGVyc2lzdC4gYHNhdmVMYXlvdXRgIHJlY29yZHMgaG93IHRoZSBzdGFjayBwZXJzaXN0cyDigJQgYGNvbWJpbmVkYFxuICAgKiAgKG9uZSB6LWluZGV4ZWQgZ2VvanNvbiwgc2luZ2xlLWZpbGUgei1zdGFjaykgb3IgYHBlci1zbGljZS1maWxlYCAoZm9sZGVyXG4gICAqICBzdGFjaykuIFNlZSB7QGxpbmsgc2V0RGlzcGxheVNsaWNlfSwge0BsaW5rIGdldFNsaWNlUmVnaW9uc30uICovXG4gIGVudGVyU3RhY2tNb2RlKHNsaWNlczogTWFwPG51bWJlciwgUmVnaW9uW10+LCBpbml0aWFsWj86IG51bWJlcixcbiAgICAgICAgICAgICAgICAgc2F2ZUxheW91dD86ICdjb21iaW5lZCcgfCAncGVyLXNsaWNlLWZpbGUnKTogdm9pZDtcbiAgLyoqIEVuZCB0aGUgcGVyLXNsaWNlIHNlc3Npb24gKHNpbmdsZS1wbGFuZSBpbWFnZSwgb3IgdGhlIHN0YWNrIHdhcyBjbG9zZWQpLiAqL1xuICBleGl0U3RhY2tNb2RlKCk6IHZvaWQ7XG4gIC8qKiBUcnVlIHdoaWxlIGEgcGVyLXNsaWNlIHotc3RhY2sgc2Vzc2lvbiBpcyBhY3RpdmUuICovXG4gIGlzU3RhY2tNb2RlKCk6IGJvb2xlYW47XG4gIC8qKiBIb3cgdGhlIGN1cnJlbnQgc3RhY2sgcGVyc2lzdHMgdG8gZGlzayAoaml0LXVpIzkzKS4gKi9cbiAgZ2V0U3RhY2tTYXZlTGF5b3V0KCk6ICdjb21iaW5lZCcgfCAncGVyLXNsaWNlLWZpbGUnO1xuICAvKiogU3dhcCB0aGUgbGl2ZSByZWdpb24gc2V0IHRvIHNsaWNlIGB6YCAoc3RhY2sgbW9kZSBvbmx5KSwgY2FwdHVyaW5nIHRoZVxuICAgKiAgY3VycmVudCBzbGljZSdzIGVkaXRzIGZpcnN0LiBDYWxsZWQgb24gZXZlcnkgY29tbWl0dGVkIHNsaWNlIHNjcnViLiAqL1xuICBzZXREaXNwbGF5U2xpY2UoejogbnVtYmVyKTogdm9pZDtcbiAgLyoqIEV2ZXJ5IHNsaWNlJ3MgcmVnaW9ucyBmb3Igc2F2ZS9leHBvcnQsIGVhY2ggdGFnZ2VkIHdpdGggaXRzIHplcm8tYmFzZWRcbiAgICogIHtAbGluayBSZWdpb24uen07IHRoZSBmbGF0IHNldCBvdXRzaWRlIHN0YWNrIG1vZGUuICovXG4gIGdldFNsaWNlUmVnaW9ucygpOiBSZWdpb25bXTtcbiAgLyoqIFNsaWNlcyB0byB3cml0ZSBvbiBhIHBlci1zbGljZS1maWxlIHNhdmUgKGZvbGRlciBzdGFjaywgaml0LXVpIzkzKTogZWFjaFxuICAgKiAgc2xpY2Ugd2l0aCByZWdpb25zLCBwbHVzIHNsaWNlcyBjbGVhcmVkIHNpbmNlIGxvYWQgKGVtcHR5LCB0byBvdmVyd3JpdGUpLlxuICAgKiAgS2V5ZWQgYnkgemVyby1iYXNlZCBzbGljZSBpbmRleDsgcmVnaW9ucyB0YWdnZWQgd2l0aCB0aGVpciB6LiAqL1xuICBnZXRTdGFja1NhdmVTbGljZXMoKTogTWFwPG51bWJlciwgUmVnaW9uW10+O1xufVxuXG4vKiogT24tY2FudmFzIHRvb2wgbW9kZXMgKHdhbmQsIGJydXNoLCB2ZXJ0ZXggZXJhc2VyLCB6b29tLXRvLWJveCkuICovXG5leHBvcnQgaW50ZXJmYWNlIElUb29sQ29udHJvbGxlciB7XG4gIHNldFdhbmRNb2RlKGFjdGl2ZTogYm9vbGVhbiwgb3B0aW9ucz86IElXYW5kT3B0aW9ucyk6IHZvaWQ7XG4gIHNldFdhbmRPcHRpb25zKG9wdGlvbnM6IElXYW5kT3B0aW9ucyk6IHZvaWQ7XG4gIGNsZWFyQWN0aXZlV2FuZFJlZ2lvbigpOiB2b2lkO1xuICAvKiogQnJ1c2ggcmVnaW9uIHRvb2wuIGBzaXplYCAobWF0cml4LXBpeGVsIGRpYW1ldGVyKSBzaXplcyB0aGUgcGFpbnRlZCBkaXNjLiAqL1xuICBzZXRCcnVzaE1vZGUoYWN0aXZlOiBib29sZWFuLCBvcHRpb25zPzogSUJydXNoT3B0aW9ucyk6IHZvaWQ7XG4gIHNldEJydXNoT3B0aW9ucyhvcHRpb25zOiBJQnJ1c2hPcHRpb25zKTogdm9pZDtcbiAgc2V0VmVydGV4RXJhc2VyTW9kZShhY3RpdmU6IGJvb2xlYW4pOiB2b2lkO1xuICBzZXRWZXJ0ZXhFcmFzZXJSYWRpdXMocmFkaXVzOiBudW1iZXIpOiB2b2lkO1xuICBzZXRab29tVG9Cb3hNb2RlKGFjdGl2ZTogYm9vbGVhbik6IHZvaWQ7XG4gIC8qKiBCb3gtcHJvbXB0ZWQgU0FNIHNlZ21lbnRhdGlvbjogc2VnbWVudCBldmVyeSByZWN0YW5nbGUgcmVnaW9uIGludG8gbWFza3MuXG4gICAqICBSZXR1cm5zIHRoZSBudW1iZXIgb2YgbWFzayByZWdpb25zIGFkZGVkLiAoaml0LXVpIzkwKSAqL1xuICBzZWdtZW50UmVjdGFuZ2xlcygpOiBQcm9taXNlPG51bWJlcj47XG4gIC8qKiBDZWxscG9zZS1vbi1jcm9wOiBjbGllbnQgc2xpZGUtY3JvcCBlYWNoIHJlY3RhbmdsZSBhbmQgc2VnbWVudCBjZWxscyBpbiBpdFxuICAgKiAgKGNlbGxwb3NlLVNBTSB2aWEgdGhlIGhvc3QncyBDRUxMX1NFR01FTlRFUikuIFJldHVybnMgcmVnaW9ucyBhZGRlZC4gKi9cbiAgc2VnbWVudFJlY3RhbmdsZXNDZWxscG9zZSgpOiBQcm9taXNlPG51bWJlcj47XG4gIC8qKiBDaG9vc2UgdGhlIHJlZ2lzdGVyZWQgU0FNIG1vZGVsIHRoZSBzZWdtZW50IHRvb2xzIHVzZSAoaml0LXVpIzkwIFAxKS4gKi9cbiAgc2V0U2FtTW9kZWwoaWQ6IHN0cmluZyk6IHZvaWQ7XG4gIC8qKiBUb2dnbGUgdGhlIGludGVyYWN0aXZlIFNBTSBwb2ludC1wcm9tcHQgdG9vbCAoY2xpY2sgPSArcG9pbnQsIFNoaWZ0ID0gLSkuICovXG4gIHNldFNhbVBvaW50TW9kZShhY3RpdmU6IGJvb2xlYW4pOiB2b2lkO1xuICAvKiogRmluYWxpc2UgLyBkaXNjYXJkIHRoZSBpbi1wcm9ncmVzcyBTQU0gcG9pbnQgb2JqZWN0LiAqL1xuICBjb21taXRTYW1Qb2ludHMoKTogdm9pZDtcbiAgY2xlYXJTYW1Qb2ludHMoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBDb250cm9scyBzcGVjaWZpYyB0byB0aGUgSVNPU1VSRkFDRSBwbG90IHR5cGUuIE9wdGlvbmFsIGFuZCBjYXBhYmlsaXR5LWdhdGVkXG4gKiAoYFZpZXdlckZlYXR1cmUuSXNvc3VyZmFjZWApOiBvbmx5IGEgYmFja2VuZCB0aGF0IHJlbmRlcnMgaXNvc3VyZmFjZXMgZXhwb3Nlc1xuICogaXQsIHZpYSBgSVZpc3VhbGl6ZXIuZ2V0SXNvc3VyZmFjZUNvbnRyb2xzKClgLiBLZXB0IG9mZiB0aGUgYWx3YXlzLW9uXG4gKiBjb250cmFjdCBzbyBjb25zdW1lcnMgbmV2ZXIgY2FsbCBhIGNvbnRyb2wgdGhhdCdzIG1lYW5pbmdsZXNzIGZvciB0aGUgY3VycmVudFxuICogcGxvdCB0eXBlIC8gYmFja2VuZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJSXNvc3VyZmFjZUNvbnRyb2xzIHtcbiAgLyoqIExpdmUtdXBkYXRlIHRoZSBpc29zdXJmYWNlIGludGVuc2l0eSBiYW5kIFtpc29taW4sIGlzb21heF0gb3ZlciAw4oCTMjU1LiAqL1xuICBzZXRJc29SYW5nZShpc29NaW46IG51bWJlciwgaXNvTWF4OiBudW1iZXIpOiB2b2lkO1xufVxuXG4vKipcbiAqIENvbnRyb2xzIHNwZWNpZmljIHRvIHRoZSAzRCBwbG90IHR5cGVzIChTVVJGQUNFIC8gU0NBVFRFUjNEIC8gSVNPU1VSRkFDRVxuICogc2NlbmVzKS4gQ2FwYWJpbGl0eS1nYXRlZCBsaWtlIHtAbGluayBJSXNvc3VyZmFjZUNvbnRyb2xzfTogb25seSBhIGJhY2tlbmRcbiAqIHRoYXQgcmVuZGVycyAzRCBzY2VuZXMgZXhwb3NlcyBpdCwgdmlhIGBJVmlzdWFsaXplci5nZXRTdXJmYWNlM2RDb250cm9scygpYCDigJRcbiAqIHRoZSBkZXByZWNhdGVkIHRvcC1sZXZlbCBgc2V0U3VyZmFjZURyYWdNb2RlYC9gcmVzZXRTdXJmYWNlQ2FtZXJhYCBzaWxlbnRseVxuICogbm8tb3Agb24gMkQtb25seSBiYWNrZW5kcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJU3VyZmFjZTNkQ29udHJvbHMge1xuICAvKiogU3dpdGNoIHRoZSAzRCBzY2VuZSBpbnRlcmFjdGlvbiBtb2RlIChvcmJpdCAvIHR1cm50YWJsZSAvIHBhbiAvIHpvb20pLiAqL1xuICBzZXRTdXJmYWNlRHJhZ01vZGUobW9kZTogc3RyaW5nKTogdm9pZDtcbiAgLyoqIFJlc2V0IHRoZSAzRCBzY2VuZSBjYW1lcmEgdG8gaXRzIGRlZmF1bHQgZXllIHBvc2l0aW9uLiAqL1xuICByZXNldFN1cmZhY2VDYW1lcmEoKTogdm9pZDtcbiAgLyoqIFRvZ2dsZSB0aGUgM0QgY29vcmRpbmF0ZS1heGVzIC8gc2NhbGUgZ2l6bW8gb24vb2ZmLiBPcHRpb25hbCDigJQgb25seSB0aGUgbmFwYXJpLWpzIFdlYkdQVVxuICAgKiAgdm9sdW1lL2lzb3N1cmZhY2UgYmFja2VuZCByZW5kZXJzIG9uZSAoaml0LXVpIzEwMikuICovXG4gIHNldEF4ZXNWaXNpYmxlPyh2aXNpYmxlOiBib29sZWFuKTogdm9pZDtcbiAgLyoqIFdoZXRoZXIgdGhlIGF4ZXMgZ2l6bW8gaXMgY3VycmVudGx5IHNob3duIChmb3IgaW5pdGlhbGl6aW5nIHRoZSB0b2dnbGUgVUkpLiBPcHRpb25hbC4gKi9cbiAgYXhlc1Zpc2libGU/KCk6IGJvb2xlYW47XG4gIC8qKiBSZW5kZXIgdGhlIHN1cmZhY2UgYXMgYSB3aXJlZnJhbWUgKGVkZ2VzKSBpbnN0ZWFkIG9mIGEgZmlsbGVkIHN1cmZhY2UuIE9wdGlvbmFsIOKAlCBvbmx5IHRoZVxuICAgKiAgbmFwYXJpLWpzIFdlYkdQVSBzdXJmYWNlIGJhY2tlbmQgc3VwcG9ydHMgaXQgKGppdC11aSMxMDIpLiAqL1xuICBzZXRXaXJlZnJhbWU/KG9uOiBib29sZWFuKTogdm9pZDtcbiAgLyoqIFdoZXRoZXIgdGhlIHN1cmZhY2UgaXMgY3VycmVudGx5IGRyYXduIGFzIGEgd2lyZWZyYW1lIChmb3IgaW5pdGlhbGl6aW5nIHRoZSB0b2dnbGUgVUkpLiAqL1xuICB3aXJlZnJhbWU/KCk6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29udHJvbHMgc3BlY2lmaWMgdG8gdGhlIExJTkUgKGludGVuc2l0eS1wcm9maWxlKSBwbG90IHR5cGUuIENhcGFiaWxpdHktZ2F0ZWRcbiAqIGxpa2Uge0BsaW5rIElJc29zdXJmYWNlQ29udHJvbHN9OiBvbmx5IGEgYmFja2VuZCB0aGF0IHJlbmRlcnMgdGhlIGxpbmUtUk9JIC9cbiAqIGluc2V0IGV4cG9zZXMgaXQsIHZpYSBgSVZpc3VhbGl6ZXIuZ2V0SW50ZW5zaXR5Q29udHJvbHMoKWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUludGVuc2l0eUNvbnRyb2xzIHtcbiAgLyoqIEFkZCBhbm90aGVyIGxpbmUgUk9JIChuZXh0IGJyaWdodCBwYWxldHRlIGNvbG91cikgYW5kIGl0cyBpbnNldCB0cmFjZS5cbiAgICogIFJldHVybnMgdGhlIGNyZWF0ZWQgcmVnaW9uIHNvIHRoZSBjYWxsZXIgY2FuIHNlbGVjdCBpdCBvbiB0aGUgYWN0aXZlXG4gICAqICBiYWNrZW5kLCBvciBudWxsIGlmIG5vIGltYWdlIGV4dGVudCBpcyBrbm93biB5ZXQuICovXG4gIGFkZFByb2ZpbGVMaW5lKCk6IFJlZ2lvbiB8IG51bGw7XG59XG5cbi8qKiBBIGNhdGVnb3JpY2FsIGNvbHVtbiByZXNvbHZlZCBmb3IgY2hhcnRpbmc6IGxhYmVscywgY29kZXMgYW5kIG1hcCBjb2xvdXJzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsQ2F0ZWdvcmljYWxWaWV3IHtcbiAgbmFtZTogc3RyaW5nO1xuICBjYXRlZ29yaWVzOiBzdHJpbmdbXTtcbiAgLyoqIGAjcnJnZ2JiYCBwZXIgY2F0ZWdvcnksIGluZGV4LWFsaWduZWQgd2l0aCB7QGxpbmsgY2F0ZWdvcmllc30uICovXG4gIGNvbG9yczogc3RyaW5nW107XG4gIC8qKiBQZXItb2JzZXJ2YXRpb24gY2F0ZWdvcnkgaW5kZXgsIG9yIGBOT19DQVRFR09SWWAuICovXG4gIGNvZGVzOiBVaW50MTZBcnJheTtcbn1cblxuLyoqXG4gKiBDb250cm9scyBmb3IgdGhlIFNQQVRJQUxfT01JQ1MgcGxvdCB0eXBlOiB3aGF0IHRoZSBvYnNlcnZhdGlvbiBtYXJrZXJzIGFyZVxuICogY29sb3VyZWQgYnksIGFuZCBob3cgdGhleSBhcmUgZHJhd24uIENhcGFiaWxpdHktZ2F0ZWQgbGlrZVxuICoge0BsaW5rIElJc29zdXJmYWNlQ29udHJvbHN9IOKAlCBgZ2V0U3BhdGlhbENvbnRyb2xzKClgIHJldHVybnMgbnVsbCB1bmxlc3MgYVxuICogaG9zdCBoYXMgYm91bmQgYFNQQVRJQUxfREFUQV9QT1JUYC5cbiAqXG4gKiBUaGUgdmlldyBzdGF0ZSBpcyBiYWNrZW5kLW5ldXRyYWwgKGl0IGxpdmVzIGluIHRoZSBzaGFyZWQgc3RvcmUsIGxpa2UgdGhlXG4gKiBjb2xvcm1hcCksIHNvIHRoZXNlIGNvbnRyb2xzIHdvcmsgd2hpY2hldmVyIGJhY2tlbmQgaXMgb24gc2NyZWVuLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElTcGF0aWFsQ29udHJvbHMge1xuICAvKiogVGhlIGRhdGFzZXQgYmVpbmcgdmlzdWFsaXplZCwgb3IgbnVsbC4gRHJpdmVzIHRoZSBjb2x1bW4vZ2VuZSBwaWNrZXJzIGFuZFxuICAgKiAgdGhlIGxlZ2VuZC4gKi9cbiAgZ2V0RGF0YXNldCQoKTogT2JzZXJ2YWJsZTxTcGF0aWFsRGF0YXNldCB8IG51bGw+O1xuICAvKiogQ3VycmVudCBkaXNwbGF5IHN0YXRlIChjb2xvdXIgc291cmNlLCBwb2ludCBzY2FsZSwgb3BhY2l0eSwgc2NhbGluZykuICovXG4gIGdldFZpZXdTdGF0ZSQoKTogT2JzZXJ2YWJsZTxTcGF0aWFsVmlld1N0YXRlPjtcbiAgLyoqIFN5bmNocm9ub3VzIHJlYWQsIGZvciBzZWVkaW5nIGEgY29udHJvbCdzIGluaXRpYWwgdmFsdWUuICovXG4gIHZpZXdTdGF0ZSgpOiBTcGF0aWFsVmlld1N0YXRlO1xuICAvKiogUGF0Y2ggdGhlIGRpc3BsYXkgc3RhdGU7IHRoZSBtYXJrZXJzIHJlYnVpbGQgd2l0aG91dCByZW1vdW50aW5nIHRoZSBzY2VuZS4gKi9cbiAgc2V0Vmlld1N0YXRlKHBhcnRpYWw6IFBhcnRpYWw8U3BhdGlhbFZpZXdTdGF0ZT4pOiB2b2lkO1xuICAvKiogQ29sb3VyIGJ5IGFuIGFubm90YXRpb24gY29sdW1uLiBSZWplY3RzIGZvciBhbiB1bmtub3duIGNvbHVtbi4gKi9cbiAgY29sb3JCeUNvbHVtbihuYW1lOiBzdHJpbmcpOiB2b2lkO1xuICAvKiogQ29sb3VyIGJ5IGEgZ2VuZTsgaXRzIHZlY3RvciBpcyBmZXRjaGVkIG9uIGRlbWFuZC4gKi9cbiAgY29sb3JCeUZlYXR1cmUobmFtZTogc3RyaW5nKTogdm9pZDtcbiAgLyoqIENsZWFyIHRoZSBjb2xvdXIgc291cmNlIOKAlCBldmVyeSBvYnNlcnZhdGlvbiByZW5kZXJzIGluIG9uZSBuZXV0cmFsIGNvbG91ci4gKi9cbiAgY2xlYXJDb2xvckJ5KCk6IHZvaWQ7XG4gIC8qKiBUeXBlYWhlYWQgb3ZlciBmZWF0dXJlIG5hbWVzLCBmb3IgZGF0YXNldHMgdG9vIHdpZGUgdG8gaW5saW5lIHRoZSBsaXN0LiAqL1xuICBzZWFyY2hGZWF0dXJlcyhxdWVyeTogc3RyaW5nLCBsaW1pdD86IG51bWJlcik6IFByb21pc2U8c3RyaW5nW10+O1xuICAvKiogUGVyLWNhdGVnb3J5IGRpc3BsYXkgY29sb3VycyBmb3IgYSBjYXRlZ29yaWNhbCBjb2x1bW4sIGluZGV4LWFsaWduZWQgd2l0aFxuICAgKiAgaXRzIGBjYXRlZ29yaWVzYCDigJQgdGhlIGxlZ2VuZCdzIHN3YXRjaGVzLCByZXNvbHZlZCB0aGUgc2FtZSB3YXkgdGhlXG4gICAqICByZW5kZXJlciByZXNvbHZlcyB0aGVtIHNvIHRoZSB0d28gY2Fubm90IGRpc2FncmVlLiAqL1xuICBjYXRlZ29yeUNvbG9ycyhuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZ1tdPjtcblxuICAvLyDilIDilIAgdmFsdWVzLCBmb3IgdGhlIDEtRCBjaGFydHMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gIC8qKlxuICAgKiBUaGUgdmFsdWVzIGJlaGluZCBhIGNvbG91ciBzb3VyY2UsIGluZGV4LWFsaWduZWQgd2l0aCB0aGUgb2JzZXJ2YXRpb25zLlxuICAgKiBSZWplY3RzIGZvciBhIGNhdGVnb3JpY2FsIGNvbHVtbiDigJQgdGhlcmUgaXMgbm90aGluZyBjb250aW51b3VzIHRvIGNoYXJ0LlxuICAgKi9cbiAgY29udGludW91c1ZhbHVlcyhzb3VyY2U6IFNwYXRpYWxDb2xvckJ5KTogUHJvbWlzZTxGbG9hdDMyQXJyYXk+O1xuICAvKipcbiAgICogQSBjYXRlZ29yaWNhbCBjb2x1bW4ncyBjYXRlZ29yaWVzLCBwZXItb2JzZXJ2YXRpb24gY29kZXMgYW5kIGRpc3BsYXlcbiAgICogY29sb3VycyDigJQgZXZlcnl0aGluZyBhIGdyb3VwZWQgdmlvbGluL2JveCBuZWVkcywgd2l0aCB0aGUgY29sb3VycyByZXNvbHZlZFxuICAgKiB0aGUgc2FtZSB3YXkgdGhlIG1hcCByZXNvbHZlcyB0aGVtLlxuICAgKi9cbiAgY2F0ZWdvcmljYWxWaWV3KGNvbHVtbjogc3RyaW5nKTogUHJvbWlzZTxTcGF0aWFsQ2F0ZWdvcmljYWxWaWV3PjtcblxuICAvKipcbiAgICogT25lIGVtYmVkZGluZydzIGNvb3JkaW5hdGVzIOKAlCBhIFVNQVAsIHQtU05FIG9yIFBDQSBwbGFuZSBvdmVyIHRoZSBzYW1lIG9ic2VydmF0aW9ucy5cbiAgICpcbiAgICogT3B0aW9uYWwsIGFuZCBhYnNlbnQgd2hlbiB0aGUgZGF0YSBzb3VyY2Ugc2VydmVzIG5vbmU6IGBTcGF0aWFsRGF0YVBvcnQuZ2V0RW1iZWRkaW5nYFxuICAgKiBpcyBpdHNlbGYgb3B0aW9uYWwsIHNvIGEgcGFuZWwgbXVzdCBiZSBhYmxlIHRvIGFzayB3aGV0aGVyIHRoaXMgZXhpc3RzIHJhdGhlciB0aGFuXG4gICAqIGNhbGxpbmcgaXQgYW5kIGNhdGNoaW5nLlxuICAgKi9cbiAgZ2V0RW1iZWRkaW5nPyhuYW1lOiBzdHJpbmcpOiBQcm9taXNlPFNwYXRpYWxFbWJlZGRpbmc+O1xuICAvKiogTmFtZXMgb2YgdGhlIGNhdGVnb3JpY2FsIGNvbHVtbnMgYXZhaWxhYmxlIHRvIGdyb3VwIGJ5LiAqL1xuICBjYXRlZ29yaWNhbENvbHVtbnMoKTogc3RyaW5nW107XG4gIC8qKlxuICAgKiBJbXBvcnQgYSBjZWxsIGdyb3VwaW5nIChDU1YvVFNWIG9mIGBjZWxsX2lkYCwgYGdyb3VwYCkgYXMgYSBuZXcgY2F0ZWdvcmljYWwgY29sdW1uLlxuICAgKiBPcHRpb25hbDogb25seSBkYXRhIHNvdXJjZXMgdGhhdCBjYW4gam9pbiBjZWxsIGlkcyBpbXBsZW1lbnQgaXQuXG4gICAqL1xuICBpbXBvcnRHcm91cHM/KGxhYmVsOiBzdHJpbmcsIHRhYmxlOiBzdHJpbmcpOiBQcm9taXNlPHsgY29sdW1uOiBDYXRlZ29yaWNhbENvbHVtbk1ldGE7IG1hdGNoZWQ6IG51bWJlciB9PjtcbiAgLyoqIFRyYW5zY3JpcHQgdG90YWxzIHBlciBnZW5lIOKAlCBmb3IgdGhlIHBvaW50cyBlc3RpbWF0ZS4gT3B0aW9uYWwuICovXG4gIHRyYW5zY3JpcHRDb3VudHM/KGdlbmVzOiBzdHJpbmdbXSk6IFByb21pc2U8U3BhdGlhbFRyYW5zY3JpcHRDb3VudHM+O1xuICAvKiogRXN0aW1hdGVkIHRyYW5zY3JpcHRzIGluIHZpZXcgZm9yIHRoZSBjdXJyZW50IHNlbGVjdGlvbiwgYWdhaW5zdCB0aGUgbWFya2VyIGJ1ZGdldC4gKi9cbiAgZ2V0VHJhbnNjcmlwdEVzdGltYXRlJD8oKTogT2JzZXJ2YWJsZTx7IHBvaW50czogbnVtYmVyOyBtYXg6IG51bWJlciB9IHwgbnVsbD47XG4gIC8qKiBUaGUgZGVuc2l0eSBtYXAncyBjb2xvdXIgd2luZG93IGluIHVzZSAoYXV0by1kZXJpdmVkIG9yIHNldCkgYW5kIGl0cyBkZW5zZXN0IGJpbi4gKi9cbiAgZ2V0RGVuc2l0eVN0YXRzJD8oKTogT2JzZXJ2YWJsZTx7IGxvOiBudW1iZXI7IGhpOiBudW1iZXI7IG1heDogbnVtYmVyIH0gfCBudWxsPjtcbiAgLyoqXG4gICAqIFRoZSB6IHBvc2l0aW9ucyBvZiB0aGUgc2VjdGlvbnMgdGhlIGRhdGFzZXQgd2FzIGltYWdlZCBhdCwgYXNjZW5kaW5nIOKAlCBvclxuICAgKiBudWxsIHdoZW4gaXRzIHogaXMgY29udGludW91cyByYXRoZXIgdGhhbiBzZWN0aW9uZWQgKHNvIHRoZXJlIGFyZSBubyBzZWN0aW9uc1xuICAgKiB0byBvZmZlcikgb3Igd2hlbiB0aGVyZSBpcyBubyBkYXRhc2V0LlxuICAgKlxuICAgKiBMZXRzIGEgcGFuZWwgb2ZmZXIgXCJvbmUgc2VjdGlvbiBhdCBhIHRpbWVcIiBmb3IgdGhlIDNEIGNsb3VkIG9ubHkgd2hlcmUgdGhhdFxuICAgKiBtZWFucyBzb21ldGhpbmcsIGFuZCBsYWJlbCB0aGUgY2hvc2VuIG9uZS4gU2Nhbm5lZCBvbmNlIHBlciBkYXRhc2V0LlxuICAgKi9cbiAgc2FtcGxlZFNlY3Rpb25zKCk6IEZsb2F0MzJBcnJheSB8IG51bGw7XG5cbiAgLy8g4pSA4pSAIHNlbGVjdGlvbiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgLyoqIFRoZSBjdXJyZW50IHNlbGVjdGlvbi4gRW1wdHkgbWVhbnMgXCJub3RoaW5nIHNlbGVjdGVkXCIsIGluIHdoaWNoIGNhc2UgdGhlXG4gICAqICB3aG9sZSB0aXNzdWUgcmVuZGVycyBub3JtYWxseSByYXRoZXIgdGhhbiBldmVyeXRoaW5nIGJlaW5nIG11dGVkLiAqL1xuICBnZXRTZWxlY3Rpb24kKCk6IE9ic2VydmFibGU8U3BhdGlhbFNlbGVjdGlvbk1hc2s+O1xuICAvKipcbiAgICogU2VsZWN0IGV2ZXJ5IG9ic2VydmF0aW9uIGluc2lkZSB0aGUgY3VycmVudGx5LWRyYXduIHJlZ2lvbnMgKHRoZWlyIHVuaW9uKS5cbiAgICogUmV1c2VzIHRoZSBleGlzdGluZyBST0kgdG9vbHMg4oCUIHJlY3RhbmdsZSwgcG9seWdvbiwgZnJlZWhhbmQsIHdhbmQsIGJydXNoIOKAlFxuICAgKiBzbyB0aGVyZSBpcyBubyBzZXBhcmF0ZSBtYXJxdWVlIHRvIGxlYXJuLiBSZXR1cm5zIGhvdyBtYW55IHdlcmUgc2VsZWN0ZWQuXG4gICAqL1xuICBzZWxlY3RGcm9tUmVnaW9ucygpOiBudW1iZXI7XG4gIC8qKiBTZWxlY3QgZXZlcnkgb2JzZXJ2YXRpb24gaW4gb25lIGNhdGVnb3J5IG9mIGEgY2F0ZWdvcmljYWwgY29sdW1uIOKAlCB0aGVcbiAgICogIGxlZ2VuZCBjbGljay4gUmVqZWN0cyBmb3IgYW4gdW5rbm93biBvciBjb250aW51b3VzIGNvbHVtbi4gKi9cbiAgc2VsZWN0Q2F0ZWdvcnkoY29sdW1uOiBzdHJpbmcsIGNhdGVnb3J5SW5kZXg6IG51bWJlcik6IFByb21pc2U8bnVtYmVyPjtcblxuICAvKipcbiAgICogU2VsZWN0IGFuIGV4cGxpY2l0IHNldCBvZiBvYnNlcnZhdGlvbnMsIHJlcGxhY2luZyBhbnkgY3VycmVudCBzZWxlY3Rpb24uXG4gICAqXG4gICAqIEZvciBhIGxpbmtlZCBwbG90OiBsYXNzb2luZyBwb2ludHMgaW4gYW4gZW1iZWRkaW5nIGlzIGEgc2VsZWN0aW9uIE9GIG9ic2VydmF0aW9ucyxcbiAgICogYW5kIGV2ZXJ5IG90aGVyIHZpZXcg4oCUIHRoZSBtYXAsIHRoZSBkaXN0cmlidXRpb25zIOKAlCByZWFkcyB0aGUgc2FtZSBtYXNrLCBzbyBicnVzaGluZ1xuICAgKiBvbmUgbGlnaHRzIHVwIHRoZSByZXN0LiBSZXR1cm5zIGhvdyBtYW55IHdlcmUgc2VsZWN0ZWQuXG4gICAqL1xuICBzZWxlY3RJbmRpY2VzKGluZGljZXM6IEl0ZXJhYmxlPG51bWJlcj4pOiBudW1iZXI7XG4gIGNsZWFyU2VsZWN0aW9uKCk6IHZvaWQ7XG59XG5cbi8qKiBEaXNwbGF5IG9wdGlvbnMgKGNvbG9ybWFwL0xVVCwgcmV2ZXJzZSBzY2FsZSwgaW1hZ2UgbWV0YWRhdGEpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRGlzcGxheU9wdGlvbnMge1xuICBnZXRDb2xvcm1hcCgpOiBPYnNlcnZhYmxlPENvbG9ybWFwTm9kZSB8IG51bGw+O1xuICBzZXRDb2xvcm1hcChjb2xvcm1hcDogQ29sb3JtYXBOb2RlKTogdm9pZDtcbiAgZ2V0Q29sb3JtYXBPcHRpb25zKCk6IENvbG9ybWFwTm9kZVtdO1xuICBnZXRSZXZlcnNlU2NhbGUoKTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgc2V0UmV2ZXJzZVNjYWxlKHJldmVyc2NhbGU6IGFueSk6IHZvaWQ7XG4gIHNldEltYWdlTWV0YShpbWFnZU1ldGE6IElJbWFnZU1ldGFkYXRhW10pOiB2b2lkO1xuICBnZXRJbWFnZU1ldGEoKTogT2JzZXJ2YWJsZTxJSW1hZ2VNZXRhZGF0YVtdPjtcbn1cblxuLyoqXG4gKiBJbnRlbnNpdHktcHJvZmlsZSBzYW1wbGluZyAoUGxvdFR5cGUuTElORSkuIFRoZSBzYW1wbGluZyAqc291cmNlKiBsaXZlcyBpbiB0aGVcbiAqIFBsb3RseSBiYWNrZW5kIChpdCBvd25zIHBpeGVsIHJlYWRiYWNrKTsgT3BlblNlYWRyYWdvbiBjb250cmlidXRlcyBvbmx5IHRoZVxuICogdmlld3BvcnQtY2hhbmdlIHNpZ25hbCB0aGF0IGRyaXZlcyByZS1zYW1wbGluZyBhdCB0aGUgY3VycmVudCB6b29tLiBFYWNoXG4gKiBiYWNrZW5kIGltcGxlbWVudHMgdGhlIHBhcnQgaXQgb3ducyBhbmQgbm8tb3BzIHRoZSByZXN0IOKAlCBtaXJyb3JpbmcgdGhlXG4gKiBkZXByZWNhdGVkIG5vLW9wIHBhdHRlcm4gb24ge0BsaW5rIElEYXRhUmVuZGVyZXJ9IOKAlCBzbyB0aGUgY29udHJhY3QgaXMgdW5pZm9ybVxuICogYW5kIGEgY29uc3VtZXIgY2FuIGRlcGVuZCBvbiBgSVZpc3VhbGl6ZXJgIGFsb25lIChubyBjb25jcmV0ZS10eXBlIHJlYWNoLWluKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJSW50ZW5zaXR5U2FtcGxpbmcge1xuICAvKiogUG9wdWxhdGUgdGhlIGludGVuc2l0eS1zYW1wbGluZyBjYWNoZSBmb3IgdGhlIGN1cnJlbnQgaW1hZ2Uvc2xpY2Ugc28gdGhlXG4gICAqICBsaW5lLVJPSSBwcm9maWxlcyBoYXZlIHBpeGVsIGRhdGEuIFJlYWwgb24gUGxvdGx5OyBuby1vcCBvbiBPU0QuICovXG4gIGVuc3VyZUludGVuc2l0eVNhbXBsaW5nKGltYWdlSW5mbzogSUltYWdlSW5mbywgekluZGV4OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+O1xuICAvKiogUmUtc2FtcGxlIHRoZSBwcm9maWxlcyBmcm9tIGEgZnJlc2ggY3JvcCBvZiB0aGUgZ2l2ZW4gaW1hZ2UtcGl4ZWwgUk9JIGF0XG4gICAqICBkaXNwbGF5IHJlc29sdXRpb24uIFJlYWwgb24gUGxvdGx5OyBuby1vcCBvbiBPU0QuICovXG4gIHJlZnJlc2hJbnRlbnNpdHlTYW1wbGluZ0ZvclJvaSh4OiBudW1iZXIsIHk6IG51bWJlciwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IG51bWJlcik6IHZvaWQ7XG4gIC8qKiBWaXNpYmxlLXJlZ2lvbiBjaGFuZ2VzIChpbWFnZS1waXhlbCBjb29yZHMpLCBlbWl0dGVkIHdoZW4gdGhlIHZpZXcgc2V0dGxlcyxcbiAgICogIHNvIHRoZSBpbnNldCBjYW4gcmUtc2FtcGxlIGF0IHRoZSBjdXJyZW50IHpvb20uIFJlYWwgb24gT1NEOyBlbXB0eSBvbiBQbG90bHlcbiAgICogIChpdHMgaGlnaC1kZWYgem9vbSB1cGRhdGVzIHRoZSBzYW1wbGluZyBjYWNoZSBpbmxpbmUgaW5zdGVhZCkuICovXG4gIGdldFZpZXdwb3J0Q2hhbmdlJCgpOiBPYnNlcnZhYmxlPHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0+O1xufVxuXG4vKiogQ29tcG9zaXRlIGNvbnRyYWN0IGEgdmlzdWFsaXphdGlvbiBiYWNrZW5kIGltcGxlbWVudHMuICovXG5leHBvcnQgaW50ZXJmYWNlIElWaXN1YWxpemVyIGV4dGVuZHMgSURhdGFSZW5kZXJlciwgSVJlZ2lvblN0b3JlLCBJVG9vbENvbnRyb2xsZXIsIElEaXNwbGF5T3B0aW9ucyxcbiAgSUludGVuc2l0eVNhbXBsaW5nIHtcbiAgcmVhZG9ubHkgY2FwYWJpbGl0aWVzOiBWaWV3ZXJDYXBhYmlsaXRpZXM7XG4gIC8qKiBUaGlzIGJhY2tlbmQncyByZWdpb24gcmVuZGVyZXIuIE1heSBiZSBudWxsIHVudGlsIGEgcGxvdCBpcyBtb3VudGVkXG4gICAqICAoT3BlblNlYWRyYWdvbikuIERyaXZlcyByZWdpb24gZHJhdy9zZWxlY3QgbW9kZXMgdW5pZm9ybWx5LiAqL1xuICBnZXRSZWdpb25PdmVybGF5KCk6IElSZWdpb25PdmVybGF5IHwgbnVsbDtcbiAgLyoqIElzb3N1cmZhY2UgY29udHJvbHMgd2hlbiB0aGlzIGJhY2tlbmQgYWR2ZXJ0aXNlcyBgVmlld2VyRmVhdHVyZS5Jc29zdXJmYWNlYCxcbiAgICogIGVsc2UgbnVsbCDigJQgc28gY29uc3VtZXJzIGdhdGUgb24gdGhlIHJldHVybmVkIG9iamVjdCwgbm90IGEgbm8tb3AgbWV0aG9kLiAqL1xuICBnZXRJc29zdXJmYWNlQ29udHJvbHMoKTogSUlzb3N1cmZhY2VDb250cm9scyB8IG51bGw7XG4gIC8qKiBJbnRlbnNpdHkgKGxpbmUtUk9JKSBjb250cm9scyB3aGVuIHRoZSBiYWNrZW5kIHJlbmRlcnMgdGhlIExJTkUgcGxvdCB0eXBlLFxuICAgKiAgZWxzZSBudWxsLiAqL1xuICBnZXRJbnRlbnNpdHlDb250cm9scygpOiBJSW50ZW5zaXR5Q29udHJvbHMgfCBudWxsO1xuICAvKiogM0Qgc2NlbmUgY29udHJvbHMgd2hlbiB0aGlzIGJhY2tlbmQgcmVuZGVycyAzRCBwbG90IHR5cGVzLCBlbHNlIG51bGwg4oCUXG4gICAqICB0aGUgY2FwYWJpbGl0eS1nYXRlZCByZXBsYWNlbWVudCBmb3IgdGhlIGRlcHJlY2F0ZWQgdG9wLWxldmVsXG4gICAqICBgc2V0U3VyZmFjZURyYWdNb2RlYC9gcmVzZXRTdXJmYWNlQ2FtZXJhYC4gKi9cbiAgZ2V0U3VyZmFjZTNkQ29udHJvbHMoKTogSVN1cmZhY2UzZENvbnRyb2xzIHwgbnVsbDtcbiAgLyoqIFNwYXRpYWwtb21pY3MgY29udHJvbHMgd2hlbiBhIGBTUEFUSUFMX0RBVEFfUE9SVGAgaXMgYm91bmQsIGVsc2UgbnVsbC5cbiAgICogIE9wdGlvbmFsOiBvbmx5IHRoZSByb3V0aW5nIHNlcnZpY2UgaW1wbGVtZW50cyBpdCwgc2luY2UgdGhlIHN0YXRlIGlzIHNoYXJlZFxuICAgKiAgcmF0aGVyIHRoYW4gb3duZWQgYnkgYW55IG9uZSBiYWNrZW5kLiAqL1xuICBnZXRTcGF0aWFsQ29udHJvbHM/KCk6IElTcGF0aWFsQ29udHJvbHMgfCBudWxsO1xuICAvKiogVGhlIHZpZXdwb3J0IGEgY29udHJpYnV0ZWQgcGxvdCBtb2RlIGRyYXdzIG92ZXIsIHdoZW4gdGhlIGJhY2tlbmQgb25cbiAgICogIHNjcmVlbiBjYW4gcHJvdmlkZSBvbmUgKE9wZW5TZWFkcmFnb24pLCBlbHNlIG51bGwuIE9wdGlvbmFsOiBiYWNrZW5kcyB0aGF0XG4gICAqICBubyBjb250cmlidXRlZCBtb2RlIHJpZGVzIG9uIG5lZWQgbm90IGltcGxlbWVudCBpdC4gKi9cbiAgZ2V0UGxvdE1vZGVWaWV3cG9ydD8oKTogUGxvdE1vZGVWaWV3cG9ydCB8IG51bGw7XG4gIC8qKiBCaW5uZWQgaW50ZW5zaXR5IGhpc3RvZ3JhbSBmb3IgYSBjaGFubmVsIGZyb20gdGhlIGN1cnJlbnRseS1kaXNwbGF5ZWRcbiAgICogIHBpeGVscywgb3IgbnVsbCB3aGVuIG5vbmUgYXJlIGF2YWlsYWJsZS4gRmVlZHMgdGhlIENoYW5uZWxzICYgSGlzdG9ncmFtXG4gICAqICBwYW5lLiAqL1xuICBnZXRIaXN0b2dyYW0oY2hhbm5lbEluZGV4OiBudW1iZXIsIGJpbnM6IG51bWJlcik6IElIaXN0b2dyYW0gfCBudWxsO1xuICAvKiogQXN5bmMgaGlzdG9ncmFtIHN0cmVhbSDigJQgbmF0aXZlIGJpdCBkZXB0aCBmb3IgPjgtYml0IGltYWdlcyAoc2VydmVyKSwgZWxzZVxuICAgKiAgdGhlIDgtYml0IGNsaWVudCBoaXN0b2dyYW0uICovXG4gIGdldEhpc3RvZ3JhbSQoY2hhbm5lbEluZGV4OiBudW1iZXIsIGJpbnM6IG51bWJlcik6IE9ic2VydmFibGU8SUhpc3RvZ3JhbSB8IG51bGw+O1xuICAvKiogRXhwb3J0IHRoZSBkaXNwbGF5ZWQgaW1hZ2UsIGNvbXBvc2l0ZWQgd2l0aCB0aGUgY3VycmVudCBkaXNwbGF5IHNldHRpbmdzLFxuICAgKiAgYXMgYSBwdWJsaWNhdGlvbi1yZWFkeSBQTkcgZG93bmxvYWQuICovXG4gIGV4cG9ydENvbXBvc2l0ZSgpOiB2b2lkO1xuICAvKiogRXhwb3J0IHRoZSB1bmRlcmx5aW5nIGltYWdlIGRhdGEgYXMgYSBkYXRhLXByZXNlcnZpbmcgbXVsdGktYmFuZCBUSUZGXG4gICAqICAobmF0aXZlIGJpdCBkZXB0aCkuIE5vLW9wIG9uIGJhY2tlbmRzIHRoYXQgY2FuJ3QgcHJvdmlkZSBpdC4gKi9cbiAgZXhwb3J0RGF0YSgpOiB2b2lkO1xuICB1bnN1YnNjcmliZSgpOiB2b2lkO1xufVxuXG4vKipcbiAqIERJIHRva2VuIGZvciB0aGUgYWN0aXZlIHZpc3VhbGl6YXRpb24gYmFja2VuZC4gQmluZCBpdCAoYHVzZUV4aXN0aW5nYCkgdG8gdGhlXG4gKiBgUm91dGluZ1Zpc3VhbGl6ZXJTZXJ2aWNlYCwgd2hpY2ggc2VsZWN0cyBQbG90bHkgdnMgT3BlblNlYWRyYWdvbiBwZXIgcGxvdFxuICogdHlwZS4gQ29uc3VtZXJzIOKAlCBpbmNsdWRpbmcgdGhpcyBsaWJyYXJ5J3Mgb3duIGBWaXN1YWxpemVyQ29tcG9uZW50YCDigJRcbiAqIGluamVjdCBgSVZpc3VhbGl6ZXJgIHRocm91Z2ggdGhpcyB0b2tlbiByYXRoZXIgdGhhbiB0aGUgY29uY3JldGUgcm91dGVyLCBzb1xuICogdGhlIHJvdXRpbmcvZmFsbGJhY2sgaW1wbGVtZW50YXRpb24gY2FuIGNoYW5nZSB3aXRob3V0IHRvdWNoaW5nIGNvbnN0cnVjdG9ycy5cbiAqL1xuZXhwb3J0IGNvbnN0IFZJU1VBTElaRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48SVZpc3VhbGl6ZXI+KCdWSVNVQUxJWkVSJyk7XG4iXX0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsaXplci5jb250cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJhY3RzL3Zpc3VhbGl6ZXIuY29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQTBlL0M7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksY0FBYyxDQUFjLFlBQVksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEltYWdlIH0gZnJvbSAnaW1hZ2UtanMnO1xuXG5pbXBvcnQgeyBJSW1hZ2VJbmZvLCBJSW1hZ2VNZXRhZGF0YSB9IGZyb20gJy4vaW1hZ2UuY29udHJhY3QnO1xuaW1wb3J0IHsgUmVnaW9uIH0gZnJvbSAnLi4vbW9kZWxzL3JlZ2lvbic7XG5pbXBvcnQgeyBQbG90VHlwZSwgUGxvdFR5cGVEZXNjcmlwdG9yIH0gZnJvbSAnLi9wbG90LXR5cGUnO1xuaW1wb3J0IHsgVmlld2VyQ2FwYWJpbGl0aWVzIH0gZnJvbSAnLi9jYXBhYmlsaXRpZXMuY29udHJhY3QnO1xuaW1wb3J0IHsgSVJlZ2lvbk92ZXJsYXkgfSBmcm9tICcuL3JlZ2lvbi1vdmVybGF5LmNvbnRyYWN0JztcbmltcG9ydCB7IElIaXN0b2dyYW0gfSBmcm9tICcuL2NoYW5uZWwtaGlzdG9ncmFtLWFwaS5jb250cmFjdCc7XG5pbXBvcnQgeyBDb2xvcm1hcE5vZGUsIElXYW5kT3B0aW9ucywgSUJydXNoT3B0aW9ucywgU3BhdGlhbFZpZXdTdGF0ZSwgU3BhdGlhbENvbG9yQnkgfSBmcm9tICcuL2Rpc3BsYXktdHlwZXMnO1xuaW1wb3J0IHtcbiAgQ2F0ZWdvcmljYWxDb2x1bW5NZXRhLFxuICBTcGF0aWFsRGF0YXNldCxcbiAgU3BhdGlhbEVtYmVkZGluZyxcbiAgU3BhdGlhbE1hcmtlckdlbmVzLCBTcGF0aWFsVHJhbnNjcmlwdENvdW50cyxcbn0gZnJvbSAnLi9zcGF0aWFsLWRhdGFzZXQuY29udHJhY3QnO1xuaW1wb3J0IHsgU3BhdGlhbFNlbGVjdGlvbk1hc2sgfSBmcm9tICcuLi9zcGF0aWFsL3NwYXRpYWwtc2VsZWN0aW9uJztcbmltcG9ydCB0eXBlIHsgUGxvdE1vZGVWaWV3cG9ydCB9IGZyb20gJy4vcGxvdC10eXBlLWNvbnRyaWJ1dGlvbi5jb250cmFjdCc7XG5cbi8qKlxuICogQmFja2VuZC1uZXV0cmFsIHZpc3VhbGl6YXRpb24gY29udHJhY3QuIFBsb3RseSBpcyBvbmUgaW1wbGVtZW50YXRpb247XG4gKiBPcGVuU2VhZHJhZ29uIGlzIGFub3RoZXIgKGZvciB0aGUgaW1hZ2UgcGxvdCB0eXBlKS4gVGhlIGFic3RyYWN0aW9uIHJlbmRlcnNcbiAqIGRhdGEg4oCUIGEgcmFzdGVyIGltYWdlIE9SIGEgc2NpZW50aWZpYyBwbG90IChoZWF0bWFwLCBzdXJmYWNlLCBjb250b3VyLFxuICogc2NhdHRlciwgbGluZSwgaXNvc3VyZmFjZSkg4oCUIGRyYXdzIHJlZ2lvbnMgb24gaXQsIGFuZCBkcml2ZXMgb24tY2FudmFzIHRvb2xzLlxuICpcbiAqIFNwbGl0IGludG8gcm9sZSBpbnRlcmZhY2VzIHNvIGEgY29uc3VtZXIgY2FuIGRlcGVuZCBvbmx5IG9uIHRoZSBzbGljZSBpdFxuICogdXNlcywgdGhlbiBjb21wb3NlZCBpbnRvIGBJVmlzdWFsaXplcmAuXG4gKlxuICogVHlwZXMgYXJlIGludGVudGlvbmFsbHkgcGVybWlzc2l2ZSAoYGFueWAgd2hlcmUgdGhlIGN1cnJlbnQgUGxvdGx5IHNlcnZpY2VcbiAqIGlzIHVudHlwZWQpIHNvIGBQbG90bHlTZXJ2aWNlYCBzYXRpc2ZpZXMgdGhlIGNvbnRyYWN0IHdpdGhvdXQgYSB0eXBpbmdcbiAqIHJld3JpdGUg4oCUIHRpZ2h0ZW5pbmcgaXMgYSBmb2xsb3ctdXAsIG5vdCBwYXJ0IG9mIHN0YW5kaW5nIHRoZSBpbnRlcmZhY2UgdXAuXG4gKi9cblxuLyoqIFBpeGVsIHJlYWRiYWNrIHNoYXBlIHJldHVybmVkIGJ5IGBnZXREaXNwbGF5ZWRQaXhlbERhdGFgLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXhlbERhdGEge1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgY2hhbm5lbHM6IG51bWJlcjtcbiAgZGF0YTogVWludDhDbGFtcGVkQXJyYXk7XG59XG5cbi8qKiBJbnRlbnNpdHkgc2FtcGxlZCBhbG9uZyBhIGxpbmUgUk9JIChQbG90VHlwZS5MSU5FIG92ZXIgaW1hZ2UgZGF0YSkuICovXG5leHBvcnQgaW50ZXJmYWNlIEludGVuc2l0eVByb2ZpbGUge1xuICAvKiogRGlzdGFuY2UgYWxvbmcgdGhlIGxpbmUuIEluIG1pY3JvbnMgd2hlbiB0aGUgaW1hZ2UgY2FycmllcyBhIHBoeXNpY2FsXG4gICAqICBwaXhlbCBzaXplIChtcHApOyBvdGhlcndpc2UgaW4gaW1hZ2UgcGl4ZWxzLiBTZWUge0BsaW5rIHVuaXR9LiAqL1xuICBwb3NpdGlvbnM6IG51bWJlcltdO1xuICAvKiogU2FtcGxlZCBpbnRlbnNpdHkgKGdyYXlzY2FsZSB2YWx1ZSBvciBSR0IgbHVtaW5hbmNlKS4gKi9cbiAgdmFsdWVzOiBudW1iZXJbXTtcbiAgLyoqIFVuaXQgb2Yge0BsaW5rIHBvc2l0aW9uc306ICfCtW0nIHdoZW4gc2NhbGVkIGJ5IHRoZSBpbWFnZSdzIG1wcCwgZWxzZSAncHgnLiAqL1xuICB1bml0PzogJ8K1bScgfCAncHgnO1xuICAvKiogU3RhYmxlIGlkIG9mIHRoZSBsaW5lIFJPSSB0aGlzIHByb2ZpbGUgY2FtZSBmcm9tIChtdWx0aS1saW5lIHN1cHBvcnQpLiAqL1xuICBpZD86IG51bWJlcjtcbiAgLyoqIENvbG91ciBvZiB0aGUgbGluZSBST0kg4oCUIHRoZSBpbnNldCB0cmFjZSBpcyBkcmF3biBpbiB0aGUgc2FtZSBjb2xvdXIuICovXG4gIGNvbG9yPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSByZW5kZXIvdmlld3BvcnQgcm9sZTogbG9hZCBkYXRhLCByZW5kZXIgaXQgKGltYWdlIG9yIHBsb3QpLCBhbmQgaGFuZGxlXG4gKiB6b29tLCBzdGFjayBuYXZpZ2F0aW9uLCBhbmQgcGl4ZWwgcmVhZGJhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGFSZW5kZXJlciB7XG4gIGxvYWQoaW1hZ2VJbmZvOiBJSW1hZ2VJbmZvLCB6SW5kZXg6IG51bWJlcik6IFByb21pc2U8YW55PjtcbiAgLyoqIGBpbWFnZUxvYWRlZGAgaXMgdGhlIGJhY2tlbmQtc3BlY2lmaWMgaGFuZGxlIHJldHVybmVkIGJ5IGBsb2FkKClgIOKAlFxuICAgKiAgdHJlYXQgaXQgYXMgb3BhcXVlIGFuZCBwYXNzIGl0IHN0cmFpZ2h0IHRocm91Z2guICovXG4gIHBsb3QocGxvdERpdjogc3RyaW5nLCBpbWFnZUxvYWRlZDogdW5rbm93biwgaW1hZ2VJbmZvOiBJSW1hZ2VJbmZvLCBzY3JlZW5IZWlnaHQ6IG51bWJlcixcbiAgICAgICBwbG90VHlwZTogUGxvdFR5cGUsIGluUGxhY2U/OiBib29sZWFuKTogUHJvbWlzZTxib29sZWFuPjtcbiAgLyoqIEBkZXByZWNhdGVkIFBsb3RseS1zcGVjaWZpYyByZS1yZW5kZXI7IHRoZSBPU0QgYmFja2VuZCBuby1vcHMgaXQuIFRoZSBob3N0XG4gICAqICByZS1kcml2ZXMgYHBsb3QoKWAgZnJvbSBpdHMgaW1hZ2Ugc3RyZWFtIGluc3RlYWQuICovXG4gIHJlbG9hZEFuZFBsb3QoKTogdm9pZDtcbiAgcmVzZXQoKTogdm9pZDtcbiAgcmVsYXlvdXQodHJ1ZUltYWdlU2l6ZT86IG51bWJlcltdKTogdm9pZDtcbiAgLyoqIEBkZXByZWNhdGVkIFBsb3RseS1zcGVjaWZpYyAoYXhpcyByZXNldCk7IHRoZSBPU0QgYmFja2VuZCBuby1vcHMgaXQuIEdhdGVcbiAgICogIG9uIHtAbGluayBWaWV3ZXJDYXBhYmlsaXRpZXN9IGJlZm9yZSBjYWxsaW5nLiAqL1xuICByZXNldEF4ZXMoKTogdm9pZDtcbiAgLyoqIEBkZXByZWNhdGVkIFBsb3RseS1zcGVjaWZpYyAoYXV0b3NjYWxlKTsgdGhlIE9TRCBiYWNrZW5kIG5vLW9wcyBpdC4gR2F0ZVxuICAgKiAgb24ge0BsaW5rIFZpZXdlckNhcGFiaWxpdGllc30gYmVmb3JlIGNhbGxpbmcuICovXG4gIGF1dG9zY2FsZSgpOiB2b2lkO1xuICB6b29tSW4oKTogdm9pZDtcbiAgem9vbU91dCgpOiB2b2lkO1xuICBzZXREcmFnTW9kZShtb2RlOiBzdHJpbmcgfCBmYWxzZSk6IHZvaWQ7XG4gIC8qKiBTaG93L2hpZGUgdGhlIG92ZXJ2aWV3IG5hdmlnYXRvciAodGhlIG1pbmltYXApLiBPcGVuU2VhZHJhZ29uIG9ubHkg4oCUIFBsb3RseVxuICAgKiAgbm8tb3BzIGl0IChpdCBoYXMgbm8gbmF2aWdhdG9yKS4gQXBwbGllZCB3aGVuIHRoZSB2aWV3ZXIgaXMgKHJlKWNyZWF0ZWQsIGFuZFxuICAgKiAgdG9nZ2xlZCBsaXZlIHdoZW4gb25lIGlzIGFscmVhZHkgbW91bnRlZC4gKi9cbiAgc2V0TmF2aWdhdG9yVmlzaWJsZSh2aXNpYmxlOiBib29sZWFuKTogdm9pZDtcbiAgLyoqIEltYWdlIHNtb290aGluZyAoYmlsaW5lYXIgaW50ZXJwb2xhdGlvbikuIGBmYWxzZWAgPSBuZWFyZXN0LW5laWdoYm91ciwgc29cbiAgICogIHpvb21pbmcgcGFzdCAxOjEgc2hvd3MgY3Jpc3AgcGl4ZWwgYmxvY2tzIChwaXhlbC1sZXZlbCBpbnNwZWN0aW9uKS5cbiAgICogIE9wZW5TZWFkcmFnb24gb25seSDigJQgUGxvdGx5IG5vLW9wcyBpdC4gQXBwbGllZCBhdCB2aWV3ZXIgY3JlYXRpb24gYW5kIGxpdmVcbiAgICogICh3aXRoIGEgcmVkcmF3KSB3aGVuIG9uZSBpcyBtb3VudGVkLiAqL1xuICBzZXRJbWFnZVNtb290aGluZ0VuYWJsZWQoZW5hYmxlZDogYm9vbGVhbik6IHZvaWQ7XG5cbiAgc2V0U2hvd1N0YWNrKHNob3dzdGFjazogYm9vbGVhbik6IHZvaWQ7XG4gIHNldFpJbmRleCh6SW5kZXg6IG51bWJlcik6IHZvaWQ7XG4gIHNldFN0YWNrTG9hZGluZyhzdGFja0xvYWRpbmc6IGJvb2xlYW4pOiB2b2lkO1xuICBpc1N0YWNrTG9hZGluZygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBnZXRTdGFja0xvYWRpbmdQcm9ncmVzcygpOiBPYnNlcnZhYmxlPG51bWJlcj47XG4gIC8qKiBDYW5jZWwgYW55IGluLWZsaWdodCBtdWx0aS1mcmFtZSBsb2FkaW5nICh2b2x1bWUtYXNzZW1ibHkgLyBzdXJmYWNlIHByZWxvYWQpIHNvIGl0IHN0b3BzXG4gICAqICBmZXRjaGluZyBtb3JlIGZyYW1lcyBhbmQgY2xlYXJzIHRoZSBsb2FkaW5nIHN0YXRlLiBPcHRpb25hbCDigJQgb25seSBiYWNrZW5kcyB0aGF0IHN0cmVhbSBhXG4gICAqICB6LXN0YWNrIChuYXBhcmktanMgV2ViR1BVKSBkbyByZWFsIHdvcmsgaGVyZTsgb3RoZXJzIG5vLW9wLiAqL1xuICBjYW5jZWxMb2FkaW5nPygpOiB2b2lkO1xuXG4gIGdldFRydWVJbWFnZVNpemUoKTogeyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9IHwgbnVsbDtcbiAgZ2V0Q3VycmVudEltYWdlKCk6IFByb21pc2U8SW1hZ2UgfCBudWxsPjtcbiAgZ2V0RGlzcGxheWVkUGl4ZWxEYXRhKCk6IFBpeGVsRGF0YSB8IG51bGw7XG4gIC8qKlxuICAgKiBUaGUgcmVnaW9uIG9mIHRoZSBvcmlnaW5hbCwgZnVsbC1yZXNvbHV0aW9uIGltYWdlIHRoYXQgdGhlIHBpeGVscyByZXR1cm5lZFxuICAgKiBieSB7QGxpbmsgZ2V0RGlzcGxheWVkUGl4ZWxEYXRhfSBjdXJyZW50bHkgY292ZXIg4oCUIGB7IHgsIHksIHdpZHRoLCBoZWlnaHQgfWBcbiAgICogaW4gZnVsbC1pbWFnZSBwaXhlbCBjb29yZGluYXRlcy4gV2hlbiB6b29tZWQvcGFubmVkIGludG8gYSBzdWItYXJlYSB0aGlzIGlzXG4gICAqIHRoZSBjcm9wJ3Mgb3JpZ2luICsgZXh0ZW50OyB3aGVuIHpvb21lZCBvdXQvcGFubmVkIGJleW9uZCB0aGUgZWRnZXMsIHRoZVxuICAgKiByZWN0YW5nbGUgbWF5IGV4dGVuZCBvdXRzaWRlIHRoZSBpbWFnZSBib3VuZHMgKG1hdGNoaW5nIHRoZSBwaXhlbCByZWFkYmFja1xuICAgKiBjYW52YXMpLiBMZXRzIGEgY29uc3VtZXIgbWFwIGRpc3BsYXllZC1waXhlbCBjb29yZGluYXRlcyBiYWNrIHRvIHRoZSBvcmlnaW5hbFxuICAgKiBpbWFnZSB2aWEgYG9yaWdpbiArIGRpc3BsYXllZFB4ICogKGV4dGVudCAvIGRpc3BsYXllZERpbSlgLiBcbiAgICpcbiAgICogUmV0dXJucyBgbnVsbGAgd2hlbiB0aGUgdmlld3BvcnQgaXNuJ3QgbGFpZCBvdXQgeWV0IG9yIHRoZSBiYWNrZW5kIGNhbid0XG4gICAqIHJlcG9ydCBpdCDigJQgY2FsbGVycyBzaG91bGQgdGhlbiBmYWxsIGJhY2sgdG8gdGhlIGZ1bGwtaW1hZ2Ugc2NhbGUgKHRyZWF0XG4gICAqIHRoZSBkaXNwbGF5ZWQgcGl4ZWxzIGFzIGEgZG93bnNhbXBsZSBvZiB0aGUgd2hvbGUgaW1hZ2UpLlxuICAgKi9cbiAgZ2V0RGlzcGxheWVkU291cmNlUmVjdCgpOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9IHwgbnVsbDtcbiAgZG93bmxvYWRJbWFnZSgpOiB2b2lkO1xuXG4gIHNldFBsb3RUeXBlKHBsb3RUeXBlOiBQbG90VHlwZSk6IHZvaWQ7XG4gIC8qKiBTZXQgdGhlIG5hcGFyaSAzRCBkZWNpbWF0ZSBmYWN0b3IgKDEgPSBmdWxsIOKApiA4ID0g4oWbKS4gT3B0aW9uYWwg4oCUIG9ubHkgdGhlIG5hcGFyaS1qcyBXZWJHUFVcbiAgICogIGJhY2tlbmQgaG9ub3JzIGl0OyBjaGFuZ2luZyBpdCByZS1sb2FkcyB0aGUgY3VycmVudCAzRCBwbG90IGF0IHRoZSBjb2Fyc2VyL2ZpbmVyIHNhbXBsaW5nLiAqL1xuICBzZXRSZXNvbHV0aW9uU2NhbGU/KHNjYWxlOiBudW1iZXIpOiB2b2lkO1xuICAvKiogVGhlIGN1cnJlbnQgbmFwYXJpIDNEIGRlY2ltYXRlIGZhY3RvciAodG8gaW5pdGlhbGl6ZSB0aGUgUmVzb2x1dGlvbiBjb250cm9sKS4gT3B0aW9uYWwuICovXG4gIGdldFJlc29sdXRpb25TY2FsZT8oKTogbnVtYmVyO1xuICAvKiogQGRlcHJlY2F0ZWQgVXNlIGBnZXRTdXJmYWNlM2RDb250cm9scygpYCDigJQgM0Qgc2NlbmUgY29udHJvbHMgb25seSBleGlzdCBvblxuICAgKiAgYSBiYWNrZW5kIHRoYXQgcmVuZGVycyAzRCBwbG90IHR5cGVzOyB0aGlzIG1ldGhvZCBzaWxlbnRseSBuby1vcHMgb24gT1NELiAqL1xuICBzZXRTdXJmYWNlRHJhZ01vZGUobW9kZTogc3RyaW5nKTogdm9pZDtcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBgZ2V0U3VyZmFjZTNkQ29udHJvbHMoKWAg4oCUIHNlZSB7QGxpbmsgc2V0U3VyZmFjZURyYWdNb2RlfS4gKi9cbiAgcmVzZXRTdXJmYWNlQ2FtZXJhKCk6IHZvaWQ7XG5cbiAgZ2V0QXV0b3NjYWxlRXZlbnQoKTogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIC8qKiBQbG90IHR5cGVzIHRoaXMgYmFja2VuZCBhZHZlcnRpc2VzIChkcml2ZXMgdGhlIFVJIHNlbGVjdG9yKS4gKi9cbiAgZ2V0UGxvdFR5cGVEZXNjcmlwdG9ycygpOiBQbG90VHlwZURlc2NyaXB0b3JbXTtcblxuICAvKiogSW50ZW5zaXR5IGFsb25nIHRoZSBsaW5lIFJPSXM7IGVtaXRzIHRoZSBmdWxsIHNldCBhcyBhbnkgbGluZSBpcyBhZGRlZCxcbiAgICogIG1vdmVkLCBvciByZW1vdmVkIChQbG90VHlwZS5MSU5FKS4gT25lIGVudHJ5IHBlciBsaW5lIFJPSS4gKi9cbiAgZ2V0SW50ZW5zaXR5UHJvZmlsZSQoKTogT2JzZXJ2YWJsZTxJbnRlbnNpdHlQcm9maWxlW10+O1xuXG4gIC8qKiBSZW5kZXIgdGhlIGZsb2F0aW5nIGludGVuc2l0eS1wcm9maWxlIGluc2V0IGNoYXJ0IGludG8gYGRpdklkYCBmcm9tIHRoZVxuICAgKiAgZ2l2ZW4gcHJvZmlsZXMgKG9uZSB0cmFjZSBwZXIgbGluZSBST0ksIGNvbG91cmVkIHRvIG1hdGNoIGl0cyBsaW5lKS5cbiAgICogIE93bmVkIGJ5IHRoZSBiYWNrZW5kIHNvIGNvbnN1bWVycyBuZXZlciByZWFjaCBhIGNoYXJ0aW5nIGxpYnJhcnkgZGlyZWN0bHkuICovXG4gIHJlbmRlckludGVuc2l0eUluc2V0KGRpdklkOiBzdHJpbmcsIHByb2ZpbGVzOiBJbnRlbnNpdHlQcm9maWxlW10pOiB2b2lkO1xufVxuXG4vKiogUmVnaW9uL3NoYXBlIHN0YXRlOiBDUlVELCBzZWxlY3Rpb24sIGNsYXNzaWZpY2F0aW9uIGNvbG91cnMsIEdlb0pTT04gSS9PLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUmVnaW9uU3RvcmUge1xuICBzZXRSZWdpb25zKHJlZ2lvbnM6IFJlZ2lvbltdLCBzaG93UmVnaW9uTGFiZWw/OiBib29sZWFuLCBpc1JlZ2lvblNhdmVPbj86IGJvb2xlYW4sXG4gICAgICAgICAgICAgZmlsbENvbG9yPzogc3RyaW5nLCBhcHBlbmQ/OiBib29sZWFuKTogdm9pZDtcbiAgLyoqIEZyYW1ld29yay1uZXV0cmFsIGFjY2Vzc29yIOKAlCB0aGUgY2Fub25pY2FsIHdheSB0byByZWFkIGN1cnJlbnQgcmVnaW9ucy4gKi9cbiAgZ2V0UmVnaW9ucygpOiBSZWdpb25bXTtcbiAgZ2V0UmVnaW9uUG9seWdvbnMoKTogYW55W107XG4gIGdldFJlZ2lvblVwZGF0ZUV2ZW50KCk6IE9ic2VydmFibGU8YW55W10+O1xuXG4gIHNldFNlbGVjdGVkU2hhcGVJbmRpY2VzKGluZGljZXM6IG51bWJlcltdKTogdm9pZDtcbiAgZ2V0U2VsZWN0ZWRTaGFwZUluZGljZXMkKCk6IE9ic2VydmFibGU8bnVtYmVyW10+O1xuICAvKiogU2VsZWN0IGEgc3BlY2lmaWMgcmVnaW9uIChieSBpZGVudGl0eSksIGhpZ2hsaWdodGluZyBpdCBvbiB3aGljaGV2ZXJcbiAgICogIGJhY2tlbmQgaXMgcmVuZGVyaW5nIOKAlCBQbG90bHkgc2V0cyBpdHMgYWN0aXZlLXNoYXBlIGhhbmRsZXMsIE9wZW5TZWFkcmFnb25cbiAgICogIGhpZ2hsaWdodHMgdGhlIFNWRyBlbGVtZW50LiBOby1vcCBpZiB0aGUgcmVnaW9uIGlzbid0IGluIHRoZSBzdG9yZS4gKi9cbiAgc2VsZWN0UmVnaW9uKHJlZ2lvbjogUmVnaW9uKTogdm9pZDtcbiAgZGVsZXRlQWN0aXZlU2hhcGUoKTogdm9pZDtcblxuICBnZXRTaG93U2hhcGVMYWJlbCgpOiBib29sZWFuO1xuICBnZXRTaGFwZUNvbG9yKCk6IHN0cmluZztcbiAgZ2V0RmlsbENvbG9yKCk6IHN0cmluZztcbiAgZ2V0Q2xhc3NpZmljYXRpb25Db2xvcnMoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcbiAgc2V0Q2xhc3NpZmljYXRpb25Db2xvcihsYWJlbDogc3RyaW5nLCBjb2xvcjogc3RyaW5nKTogdm9pZDtcblxuICBwbG90UHJldmlvdXNTaGFwZXMoKTogdm9pZDtcbiAgc2V0UHJldmlvdXNTaGFwZXMoc2hhcGVzOiBhbnlbXSk6IHZvaWQ7XG4gIGdldFByZXZpb3VzU2hhcGVzKCk6IGFueVtdO1xuXG4gIC8qKiBVbmRvIHRoZSBtb3N0IHJlY2VudCByZWdpb24gYWN0aW9uIChqaXQtdWkjODUpLiBSZXN0b3JlcyB0aGUgcmVnaW9uIHNldCB0b1xuICAgKiAgdGhlIHN0YXRlIGJlZm9yZSB0aGF0IGFjdGlvbjsgdXAgdG8gYSBzbWFsbCBmaXhlZCBkZXB0aCAoMTApIGlzIHJldGFpbmVkLFxuICAgKiAgc28gaXQgY2FuIGJlIGludm9rZWQgdXAgdG8gMTAgdGltZXMgaW4gYSByb3cuIE5vLW9wIHdoZW4gbm90aGluZyBpcyBsZWZ0IHRvXG4gICAqICB1bmRvLiAqL1xuICB1bmRvKCk6IHZvaWQ7XG4gIC8qKiBSZS1hcHBseSB0aGUgbW9zdCByZWNlbnRseSB1bmRvbmUgcmVnaW9uIGFjdGlvbi4gTm8tb3Agd2hlbiB0aGVyZSdzXG4gICAqICBub3RoaW5nIHRvIHJlZG8gKGFueSBmcmVzaCByZWdpb24gYWN0aW9uIGNsZWFycyB0aGUgcmVkbyBmdXR1cmUpLiAqL1xuICByZWRvKCk6IHZvaWQ7XG4gIC8qKiBTeW5jaHJvbm91cyByZWFkIG9mIHtAbGluayBnZXRDYW5VbmRvJH0uICovXG4gIGNhblVuZG8oKTogYm9vbGVhbjtcbiAgLyoqIFN5bmNocm9ub3VzIHJlYWQgb2Yge0BsaW5rIGdldENhblJlZG8kfS4gKi9cbiAgY2FuUmVkbygpOiBib29sZWFuO1xuICAvKiogRW1pdHMgd2hldGhlciBhbiB1bmRvIHN0ZXAgaXMgY3VycmVudGx5IGF2YWlsYWJsZSDigJQgZHJpdmVzIHRoZSB0b29sYmFyXG4gICAqICBVbmRvIGJ1dHRvbidzIGVuYWJsZWQgKGdyZXllZC1vdXQpIHN0YXRlLiAqL1xuICBnZXRDYW5VbmRvJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAvKiogRW1pdHMgd2hldGhlciBhIHJlZG8gc3RlcCBpcyBjdXJyZW50bHkgYXZhaWxhYmxlIOKAlCBkcml2ZXMgdGhlIHRvb2xiYXJcbiAgICogIFJlZG8gYnV0dG9uJ3MgZW5hYmxlZCAoZ3JleWVkLW91dCkgc3RhdGUuICovXG4gIGdldENhblJlZG8kKCk6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIC8qKiBDbGVhciB0aGUgdW5kby9yZWRvIGhpc3RvcnkgKGUuZy4gb24gaW1hZ2UgbG9hZC9zd2l0Y2gpLiAqL1xuICByZXNldFVuZG9IaXN0b3J5KCk6IHZvaWQ7XG5cbiAgaW1wb3J0UmVnaW9ucyhnZW9Kc29uU3RyOiBzdHJpbmcpOiBSZWdpb25bXTtcbiAgZXhwb3J0UmVnaW9ucyhyZWdpb25zOiBSZWdpb25bXSk6IHZvaWQ7XG4gIGdldEdlb0pzb25TdHJpbmcocmVnaW9uczogUmVnaW9uW10pOiBzdHJpbmc7XG5cbiAgLyoqIEJlZ2luIGEgcGVyLXNsaWNlIHotc3RhY2sgcmVnaW9uIHNlc3Npb24gKGppdC11aSM5MykuIGBzbGljZXNgIG1hcHMgZWFjaFxuICAgKiAgemVyby1iYXNlZCBzbGljZSBpbmRleCB0byB0aGF0IHNsaWNlJ3MgcmVnaW9uczsgdGhlIHN0b3JlIHNob3dzIGBpbml0aWFsWmBcbiAgICogIGxpdmUgd2hpbGUgaG9sZGluZyB0aGUgcmVzdCwgc28gc2NydWJiaW5nIHN3YXBzIHJlZ2lvbiBzZXRzIGFuZCBlZGl0cyBvbiBhXG4gICAqICBzbGljZSBwZXJzaXN0LiBgc2F2ZUxheW91dGAgcmVjb3JkcyBob3cgdGhlIHN0YWNrIHBlcnNpc3RzIOKAlCBgY29tYmluZWRgXG4gICAqICAob25lIHotaW5kZXhlZCBnZW9qc29uLCBzaW5nbGUtZmlsZSB6LXN0YWNrKSBvciBgcGVyLXNsaWNlLWZpbGVgIChmb2xkZXJcbiAgICogIHN0YWNrKS4gU2VlIHtAbGluayBzZXREaXNwbGF5U2xpY2V9LCB7QGxpbmsgZ2V0U2xpY2VSZWdpb25zfS4gKi9cbiAgZW50ZXJTdGFja01vZGUoc2xpY2VzOiBNYXA8bnVtYmVyLCBSZWdpb25bXT4sIGluaXRpYWxaPzogbnVtYmVyLFxuICAgICAgICAgICAgICAgICBzYXZlTGF5b3V0PzogJ2NvbWJpbmVkJyB8ICdwZXItc2xpY2UtZmlsZScpOiB2b2lkO1xuICAvKiogRW5kIHRoZSBwZXItc2xpY2Ugc2Vzc2lvbiAoc2luZ2xlLXBsYW5lIGltYWdlLCBvciB0aGUgc3RhY2sgd2FzIGNsb3NlZCkuICovXG4gIGV4aXRTdGFja01vZGUoKTogdm9pZDtcbiAgLyoqIFRydWUgd2hpbGUgYSBwZXItc2xpY2Ugei1zdGFjayBzZXNzaW9uIGlzIGFjdGl2ZS4gKi9cbiAgaXNTdGFja01vZGUoKTogYm9vbGVhbjtcbiAgLyoqIEhvdyB0aGUgY3VycmVudCBzdGFjayBwZXJzaXN0cyB0byBkaXNrIChqaXQtdWkjOTMpLiAqL1xuICBnZXRTdGFja1NhdmVMYXlvdXQoKTogJ2NvbWJpbmVkJyB8ICdwZXItc2xpY2UtZmlsZSc7XG4gIC8qKiBTd2FwIHRoZSBsaXZlIHJlZ2lvbiBzZXQgdG8gc2xpY2UgYHpgIChzdGFjayBtb2RlIG9ubHkpLCBjYXB0dXJpbmcgdGhlXG4gICAqICBjdXJyZW50IHNsaWNlJ3MgZWRpdHMgZmlyc3QuIENhbGxlZCBvbiBldmVyeSBjb21taXR0ZWQgc2xpY2Ugc2NydWIuICovXG4gIHNldERpc3BsYXlTbGljZSh6OiBudW1iZXIpOiB2b2lkO1xuICAvKiogRXZlcnkgc2xpY2UncyByZWdpb25zIGZvciBzYXZlL2V4cG9ydCwgZWFjaCB0YWdnZWQgd2l0aCBpdHMgemVyby1iYXNlZFxuICAgKiAge0BsaW5rIFJlZ2lvbi56fTsgdGhlIGZsYXQgc2V0IG91dHNpZGUgc3RhY2sgbW9kZS4gKi9cbiAgZ2V0U2xpY2VSZWdpb25zKCk6IFJlZ2lvbltdO1xuICAvKiogU2xpY2VzIHRvIHdyaXRlIG9uIGEgcGVyLXNsaWNlLWZpbGUgc2F2ZSAoZm9sZGVyIHN0YWNrLCBqaXQtdWkjOTMpOiBlYWNoXG4gICAqICBzbGljZSB3aXRoIHJlZ2lvbnMsIHBsdXMgc2xpY2VzIGNsZWFyZWQgc2luY2UgbG9hZCAoZW1wdHksIHRvIG92ZXJ3cml0ZSkuXG4gICAqICBLZXllZCBieSB6ZXJvLWJhc2VkIHNsaWNlIGluZGV4OyByZWdpb25zIHRhZ2dlZCB3aXRoIHRoZWlyIHouICovXG4gIGdldFN0YWNrU2F2ZVNsaWNlcygpOiBNYXA8bnVtYmVyLCBSZWdpb25bXT47XG59XG5cbi8qKiBPbi1jYW52YXMgdG9vbCBtb2RlcyAod2FuZCwgYnJ1c2gsIHZlcnRleCBlcmFzZXIsIHpvb20tdG8tYm94KS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVRvb2xDb250cm9sbGVyIHtcbiAgc2V0V2FuZE1vZGUoYWN0aXZlOiBib29sZWFuLCBvcHRpb25zPzogSVdhbmRPcHRpb25zKTogdm9pZDtcbiAgc2V0V2FuZE9wdGlvbnMob3B0aW9uczogSVdhbmRPcHRpb25zKTogdm9pZDtcbiAgY2xlYXJBY3RpdmVXYW5kUmVnaW9uKCk6IHZvaWQ7XG4gIC8qKiBCcnVzaCByZWdpb24gdG9vbC4gYHNpemVgIChtYXRyaXgtcGl4ZWwgZGlhbWV0ZXIpIHNpemVzIHRoZSBwYWludGVkIGRpc2MuICovXG4gIHNldEJydXNoTW9kZShhY3RpdmU6IGJvb2xlYW4sIG9wdGlvbnM/OiBJQnJ1c2hPcHRpb25zKTogdm9pZDtcbiAgc2V0QnJ1c2hPcHRpb25zKG9wdGlvbnM6IElCcnVzaE9wdGlvbnMpOiB2b2lkO1xuICBzZXRWZXJ0ZXhFcmFzZXJNb2RlKGFjdGl2ZTogYm9vbGVhbik6IHZvaWQ7XG4gIHNldFZlcnRleEVyYXNlclJhZGl1cyhyYWRpdXM6IG51bWJlcik6IHZvaWQ7XG4gIHNldFpvb21Ub0JveE1vZGUoYWN0aXZlOiBib29sZWFuKTogdm9pZDtcbiAgLyoqIEJveC1wcm9tcHRlZCBTQU0gc2VnbWVudGF0aW9uOiBzZWdtZW50IGV2ZXJ5IHJlY3RhbmdsZSByZWdpb24gaW50byBtYXNrcy5cbiAgICogIFJldHVybnMgdGhlIG51bWJlciBvZiBtYXNrIHJlZ2lvbnMgYWRkZWQuIChqaXQtdWkjOTApICovXG4gIHNlZ21lbnRSZWN0YW5nbGVzKCk6IFByb21pc2U8bnVtYmVyPjtcbiAgLyoqIENlbGxwb3NlLW9uLWNyb3A6IGNsaWVudCBzbGlkZS1jcm9wIGVhY2ggcmVjdGFuZ2xlIGFuZCBzZWdtZW50IGNlbGxzIGluIGl0XG4gICAqICAoY2VsbHBvc2UtU0FNIHZpYSB0aGUgaG9zdCdzIENFTExfU0VHTUVOVEVSKS4gUmV0dXJucyByZWdpb25zIGFkZGVkLiAqL1xuICBzZWdtZW50UmVjdGFuZ2xlc0NlbGxwb3NlKCk6IFByb21pc2U8bnVtYmVyPjtcbiAgLyoqIENob29zZSB0aGUgcmVnaXN0ZXJlZCBTQU0gbW9kZWwgdGhlIHNlZ21lbnQgdG9vbHMgdXNlIChqaXQtdWkjOTAgUDEpLiAqL1xuICBzZXRTYW1Nb2RlbChpZDogc3RyaW5nKTogdm9pZDtcbiAgLyoqIFRvZ2dsZSB0aGUgaW50ZXJhY3RpdmUgU0FNIHBvaW50LXByb21wdCB0b29sIChjbGljayA9ICtwb2ludCwgU2hpZnQgPSAtKS4gKi9cbiAgc2V0U2FtUG9pbnRNb2RlKGFjdGl2ZTogYm9vbGVhbik6IHZvaWQ7XG4gIC8qKiBGaW5hbGlzZSAvIGRpc2NhcmQgdGhlIGluLXByb2dyZXNzIFNBTSBwb2ludCBvYmplY3QuICovXG4gIGNvbW1pdFNhbVBvaW50cygpOiB2b2lkO1xuICBjbGVhclNhbVBvaW50cygpOiB2b2lkO1xufVxuXG4vKipcbiAqIENvbnRyb2xzIHNwZWNpZmljIHRvIHRoZSBJU09TVVJGQUNFIHBsb3QgdHlwZS4gT3B0aW9uYWwgYW5kIGNhcGFiaWxpdHktZ2F0ZWRcbiAqIChgVmlld2VyRmVhdHVyZS5Jc29zdXJmYWNlYCk6IG9ubHkgYSBiYWNrZW5kIHRoYXQgcmVuZGVycyBpc29zdXJmYWNlcyBleHBvc2VzXG4gKiBpdCwgdmlhIGBJVmlzdWFsaXplci5nZXRJc29zdXJmYWNlQ29udHJvbHMoKWAuIEtlcHQgb2ZmIHRoZSBhbHdheXMtb25cbiAqIGNvbnRyYWN0IHNvIGNvbnN1bWVycyBuZXZlciBjYWxsIGEgY29udHJvbCB0aGF0J3MgbWVhbmluZ2xlc3MgZm9yIHRoZSBjdXJyZW50XG4gKiBwbG90IHR5cGUgLyBiYWNrZW5kLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElJc29zdXJmYWNlQ29udHJvbHMge1xuICAvKiogTGl2ZS11cGRhdGUgdGhlIGlzb3N1cmZhY2UgaW50ZW5zaXR5IGJhbmQgW2lzb21pbiwgaXNvbWF4XSBvdmVyIDDigJMyNTUuICovXG4gIHNldElzb1JhbmdlKGlzb01pbjogbnVtYmVyLCBpc29NYXg6IG51bWJlcik6IHZvaWQ7XG59XG5cbi8qKlxuICogQ29udHJvbHMgc3BlY2lmaWMgdG8gdGhlIDNEIHBsb3QgdHlwZXMgKFNVUkZBQ0UgLyBTQ0FUVEVSM0QgLyBJU09TVVJGQUNFXG4gKiBzY2VuZXMpLiBDYXBhYmlsaXR5LWdhdGVkIGxpa2Uge0BsaW5rIElJc29zdXJmYWNlQ29udHJvbHN9OiBvbmx5IGEgYmFja2VuZFxuICogdGhhdCByZW5kZXJzIDNEIHNjZW5lcyBleHBvc2VzIGl0LCB2aWEgYElWaXN1YWxpemVyLmdldFN1cmZhY2UzZENvbnRyb2xzKClgIOKAlFxuICogdGhlIGRlcHJlY2F0ZWQgdG9wLWxldmVsIGBzZXRTdXJmYWNlRHJhZ01vZGVgL2ByZXNldFN1cmZhY2VDYW1lcmFgIHNpbGVudGx5XG4gKiBuby1vcCBvbiAyRC1vbmx5IGJhY2tlbmRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElTdXJmYWNlM2RDb250cm9scyB7XG4gIC8qKiBTd2l0Y2ggdGhlIDNEIHNjZW5lIGludGVyYWN0aW9uIG1vZGUgKG9yYml0IC8gdHVybnRhYmxlIC8gcGFuIC8gem9vbSkuICovXG4gIHNldFN1cmZhY2VEcmFnTW9kZShtb2RlOiBzdHJpbmcpOiB2b2lkO1xuICAvKiogUmVzZXQgdGhlIDNEIHNjZW5lIGNhbWVyYSB0byBpdHMgZGVmYXVsdCBleWUgcG9zaXRpb24uICovXG4gIHJlc2V0U3VyZmFjZUNhbWVyYSgpOiB2b2lkO1xuICAvKiogVG9nZ2xlIHRoZSAzRCBjb29yZGluYXRlLWF4ZXMgLyBzY2FsZSBnaXptbyBvbi9vZmYuIE9wdGlvbmFsIOKAlCBvbmx5IHRoZSBuYXBhcmktanMgV2ViR1BVXG4gICAqICB2b2x1bWUvaXNvc3VyZmFjZSBiYWNrZW5kIHJlbmRlcnMgb25lIChqaXQtdWkjMTAyKS4gKi9cbiAgc2V0QXhlc1Zpc2libGU/KHZpc2libGU6IGJvb2xlYW4pOiB2b2lkO1xuICAvKiogV2hldGhlciB0aGUgYXhlcyBnaXptbyBpcyBjdXJyZW50bHkgc2hvd24gKGZvciBpbml0aWFsaXppbmcgdGhlIHRvZ2dsZSBVSSkuIE9wdGlvbmFsLiAqL1xuICBheGVzVmlzaWJsZT8oKTogYm9vbGVhbjtcbiAgLyoqIFJlbmRlciB0aGUgc3VyZmFjZSBhcyBhIHdpcmVmcmFtZSAoZWRnZXMpIGluc3RlYWQgb2YgYSBmaWxsZWQgc3VyZmFjZS4gT3B0aW9uYWwg4oCUIG9ubHkgdGhlXG4gICAqICBuYXBhcmktanMgV2ViR1BVIHN1cmZhY2UgYmFja2VuZCBzdXBwb3J0cyBpdCAoaml0LXVpIzEwMikuICovXG4gIHNldFdpcmVmcmFtZT8ob246IGJvb2xlYW4pOiB2b2lkO1xuICAvKiogV2hldGhlciB0aGUgc3VyZmFjZSBpcyBjdXJyZW50bHkgZHJhd24gYXMgYSB3aXJlZnJhbWUgKGZvciBpbml0aWFsaXppbmcgdGhlIHRvZ2dsZSBVSSkuICovXG4gIHdpcmVmcmFtZT8oKTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb250cm9scyBzcGVjaWZpYyB0byB0aGUgTElORSAoaW50ZW5zaXR5LXByb2ZpbGUpIHBsb3QgdHlwZS4gQ2FwYWJpbGl0eS1nYXRlZFxuICogbGlrZSB7QGxpbmsgSUlzb3N1cmZhY2VDb250cm9sc306IG9ubHkgYSBiYWNrZW5kIHRoYXQgcmVuZGVycyB0aGUgbGluZS1ST0kgL1xuICogaW5zZXQgZXhwb3NlcyBpdCwgdmlhIGBJVmlzdWFsaXplci5nZXRJbnRlbnNpdHlDb250cm9scygpYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJSW50ZW5zaXR5Q29udHJvbHMge1xuICAvKiogQWRkIGFub3RoZXIgbGluZSBST0kgKG5leHQgYnJpZ2h0IHBhbGV0dGUgY29sb3VyKSBhbmQgaXRzIGluc2V0IHRyYWNlLlxuICAgKiAgUmV0dXJucyB0aGUgY3JlYXRlZCByZWdpb24gc28gdGhlIGNhbGxlciBjYW4gc2VsZWN0IGl0IG9uIHRoZSBhY3RpdmVcbiAgICogIGJhY2tlbmQsIG9yIG51bGwgaWYgbm8gaW1hZ2UgZXh0ZW50IGlzIGtub3duIHlldC4gKi9cbiAgYWRkUHJvZmlsZUxpbmUoKTogUmVnaW9uIHwgbnVsbDtcbn1cblxuLyoqIEEgY2F0ZWdvcmljYWwgY29sdW1uIHJlc29sdmVkIGZvciBjaGFydGluZzogbGFiZWxzLCBjb2RlcyBhbmQgbWFwIGNvbG91cnMuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxDYXRlZ29yaWNhbFZpZXcge1xuICBuYW1lOiBzdHJpbmc7XG4gIGNhdGVnb3JpZXM6IHN0cmluZ1tdO1xuICAvKiogYCNycmdnYmJgIHBlciBjYXRlZ29yeSwgaW5kZXgtYWxpZ25lZCB3aXRoIHtAbGluayBjYXRlZ29yaWVzfS4gKi9cbiAgY29sb3JzOiBzdHJpbmdbXTtcbiAgLyoqIFBlci1vYnNlcnZhdGlvbiBjYXRlZ29yeSBpbmRleCwgb3IgYE5PX0NBVEVHT1JZYC4gKi9cbiAgY29kZXM6IFVpbnQxNkFycmF5O1xufVxuXG4vKipcbiAqIENvbnRyb2xzIGZvciB0aGUgU1BBVElBTF9PTUlDUyBwbG90IHR5cGU6IHdoYXQgdGhlIG9ic2VydmF0aW9uIG1hcmtlcnMgYXJlXG4gKiBjb2xvdXJlZCBieSwgYW5kIGhvdyB0aGV5IGFyZSBkcmF3bi4gQ2FwYWJpbGl0eS1nYXRlZCBsaWtlXG4gKiB7QGxpbmsgSUlzb3N1cmZhY2VDb250cm9sc30g4oCUIGBnZXRTcGF0aWFsQ29udHJvbHMoKWAgcmV0dXJucyBudWxsIHVubGVzcyBhXG4gKiBob3N0IGhhcyBib3VuZCBgU1BBVElBTF9EQVRBX1BPUlRgLlxuICpcbiAqIFRoZSB2aWV3IHN0YXRlIGlzIGJhY2tlbmQtbmV1dHJhbCAoaXQgbGl2ZXMgaW4gdGhlIHNoYXJlZCBzdG9yZSwgbGlrZSB0aGVcbiAqIGNvbG9ybWFwKSwgc28gdGhlc2UgY29udHJvbHMgd29yayB3aGljaGV2ZXIgYmFja2VuZCBpcyBvbiBzY3JlZW4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVNwYXRpYWxDb250cm9scyB7XG4gIC8qKiBUaGUgZGF0YXNldCBiZWluZyB2aXN1YWxpemVkLCBvciBudWxsLiBEcml2ZXMgdGhlIGNvbHVtbi9nZW5lIHBpY2tlcnMgYW5kXG4gICAqICB0aGUgbGVnZW5kLiAqL1xuICBnZXREYXRhc2V0JCgpOiBPYnNlcnZhYmxlPFNwYXRpYWxEYXRhc2V0IHwgbnVsbD47XG4gIC8qKiBDdXJyZW50IGRpc3BsYXkgc3RhdGUgKGNvbG91ciBzb3VyY2UsIHBvaW50IHNjYWxlLCBvcGFjaXR5LCBzY2FsaW5nKS4gKi9cbiAgZ2V0Vmlld1N0YXRlJCgpOiBPYnNlcnZhYmxlPFNwYXRpYWxWaWV3U3RhdGU+O1xuICAvKiogU3luY2hyb25vdXMgcmVhZCwgZm9yIHNlZWRpbmcgYSBjb250cm9sJ3MgaW5pdGlhbCB2YWx1ZS4gKi9cbiAgdmlld1N0YXRlKCk6IFNwYXRpYWxWaWV3U3RhdGU7XG4gIC8qKiBQYXRjaCB0aGUgZGlzcGxheSBzdGF0ZTsgdGhlIG1hcmtlcnMgcmVidWlsZCB3aXRob3V0IHJlbW91bnRpbmcgdGhlIHNjZW5lLiAqL1xuICBzZXRWaWV3U3RhdGUocGFydGlhbDogUGFydGlhbDxTcGF0aWFsVmlld1N0YXRlPik6IHZvaWQ7XG4gIC8qKiBDb2xvdXIgYnkgYW4gYW5ub3RhdGlvbiBjb2x1bW4uIFJlamVjdHMgZm9yIGFuIHVua25vd24gY29sdW1uLiAqL1xuICBjb2xvckJ5Q29sdW1uKG5hbWU6IHN0cmluZyk6IHZvaWQ7XG4gIC8qKiBDb2xvdXIgYnkgYSBnZW5lOyBpdHMgdmVjdG9yIGlzIGZldGNoZWQgb24gZGVtYW5kLiAqL1xuICBjb2xvckJ5RmVhdHVyZShuYW1lOiBzdHJpbmcpOiB2b2lkO1xuICAvKiogQ2xlYXIgdGhlIGNvbG91ciBzb3VyY2Ug4oCUIGV2ZXJ5IG9ic2VydmF0aW9uIHJlbmRlcnMgaW4gb25lIG5ldXRyYWwgY29sb3VyLiAqL1xuICBjbGVhckNvbG9yQnkoKTogdm9pZDtcbiAgLyoqIFR5cGVhaGVhZCBvdmVyIGZlYXR1cmUgbmFtZXMsIGZvciBkYXRhc2V0cyB0b28gd2lkZSB0byBpbmxpbmUgdGhlIGxpc3QuICovXG4gIHNlYXJjaEZlYXR1cmVzKHF1ZXJ5OiBzdHJpbmcsIGxpbWl0PzogbnVtYmVyKTogUHJvbWlzZTxzdHJpbmdbXT47XG4gIC8qKiBQZXItY2F0ZWdvcnkgZGlzcGxheSBjb2xvdXJzIGZvciBhIGNhdGVnb3JpY2FsIGNvbHVtbiwgaW5kZXgtYWxpZ25lZCB3aXRoXG4gICAqICBpdHMgYGNhdGVnb3JpZXNgIOKAlCB0aGUgbGVnZW5kJ3Mgc3dhdGNoZXMsIHJlc29sdmVkIHRoZSBzYW1lIHdheSB0aGVcbiAgICogIHJlbmRlcmVyIHJlc29sdmVzIHRoZW0gc28gdGhlIHR3byBjYW5ub3QgZGlzYWdyZWUuICovXG4gIGNhdGVnb3J5Q29sb3JzKG5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+O1xuXG4gIC8vIOKUgOKUgCB2YWx1ZXMsIGZvciB0aGUgMS1EIGNoYXJ0cyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgLyoqXG4gICAqIFRoZSB2YWx1ZXMgYmVoaW5kIGEgY29sb3VyIHNvdXJjZSwgaW5kZXgtYWxpZ25lZCB3aXRoIHRoZSBvYnNlcnZhdGlvbnMuXG4gICAqIFJlamVjdHMgZm9yIGEgY2F0ZWdvcmljYWwgY29sdW1uIOKAlCB0aGVyZSBpcyBub3RoaW5nIGNvbnRpbnVvdXMgdG8gY2hhcnQuXG4gICAqL1xuICBjb250aW51b3VzVmFsdWVzKHNvdXJjZTogU3BhdGlhbENvbG9yQnkpOiBQcm9taXNlPEZsb2F0MzJBcnJheT47XG4gIC8qKlxuICAgKiBBIGNhdGVnb3JpY2FsIGNvbHVtbidzIGNhdGVnb3JpZXMsIHBlci1vYnNlcnZhdGlvbiBjb2RlcyBhbmQgZGlzcGxheVxuICAgKiBjb2xvdXJzIOKAlCBldmVyeXRoaW5nIGEgZ3JvdXBlZCB2aW9saW4vYm94IG5lZWRzLCB3aXRoIHRoZSBjb2xvdXJzIHJlc29sdmVkXG4gICAqIHRoZSBzYW1lIHdheSB0aGUgbWFwIHJlc29sdmVzIHRoZW0uXG4gICAqL1xuICBjYXRlZ29yaWNhbFZpZXcoY29sdW1uOiBzdHJpbmcpOiBQcm9taXNlPFNwYXRpYWxDYXRlZ29yaWNhbFZpZXc+O1xuXG4gIC8qKlxuICAgKiBPbmUgZW1iZWRkaW5nJ3MgY29vcmRpbmF0ZXMg4oCUIGEgVU1BUCwgdC1TTkUgb3IgUENBIHBsYW5lIG92ZXIgdGhlIHNhbWUgb2JzZXJ2YXRpb25zLlxuICAgKlxuICAgKiBPcHRpb25hbCwgYW5kIGFic2VudCB3aGVuIHRoZSBkYXRhIHNvdXJjZSBzZXJ2ZXMgbm9uZTogYFNwYXRpYWxEYXRhUG9ydC5nZXRFbWJlZGRpbmdgXG4gICAqIGlzIGl0c2VsZiBvcHRpb25hbCwgc28gYSBwYW5lbCBtdXN0IGJlIGFibGUgdG8gYXNrIHdoZXRoZXIgdGhpcyBleGlzdHMgcmF0aGVyIHRoYW5cbiAgICogY2FsbGluZyBpdCBhbmQgY2F0Y2hpbmcuXG4gICAqL1xuICBnZXRFbWJlZGRpbmc/KG5hbWU6IHN0cmluZyk6IFByb21pc2U8U3BhdGlhbEVtYmVkZGluZz47XG4gIC8qKiBOYW1lcyBvZiB0aGUgY2F0ZWdvcmljYWwgY29sdW1ucyBhdmFpbGFibGUgdG8gZ3JvdXAgYnkuICovXG4gIGNhdGVnb3JpY2FsQ29sdW1ucygpOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIEltcG9ydCBhIGNlbGwgZ3JvdXBpbmcgKENTVi9UU1Ygb2YgYGNlbGxfaWRgLCBgZ3JvdXBgKSBhcyBhIG5ldyBjYXRlZ29yaWNhbCBjb2x1bW4uXG4gICAqIE9wdGlvbmFsOiBvbmx5IGRhdGEgc291cmNlcyB0aGF0IGNhbiBqb2luIGNlbGwgaWRzIGltcGxlbWVudCBpdC5cbiAgICovXG4gIGltcG9ydEdyb3Vwcz8obGFiZWw6IHN0cmluZywgdGFibGU6IHN0cmluZyk6IFByb21pc2U8eyBjb2x1bW46IENhdGVnb3JpY2FsQ29sdW1uTWV0YTsgbWF0Y2hlZDogbnVtYmVyIH0+O1xuICAvKiogVHJhbnNjcmlwdCB0b3RhbHMgcGVyIGdlbmUg4oCUIGZvciB0aGUgcG9pbnRzIGVzdGltYXRlLiBPcHRpb25hbC4gKi9cbiAgdHJhbnNjcmlwdENvdW50cz8oZ2VuZXM6IHN0cmluZ1tdKTogUHJvbWlzZTxTcGF0aWFsVHJhbnNjcmlwdENvdW50cz47XG4gIC8qKiBNYXJrZXIgZ2VuZXMgb2YgZWFjaCBncm91cCBvZiBhIGNhdGVnb3JpY2FsIGNvbHVtbi4gT3B0aW9uYWwgKHNlZSB0aGUgcG9ydCkuICovXG4gIG1hcmtlckdlbmVzPyhjb2x1bW46IHN0cmluZywgcGVyR3JvdXA/OiBudW1iZXIpOiBQcm9taXNlPFNwYXRpYWxNYXJrZXJHZW5lcz47XG4gIC8qKiBUcmFuc2NyaXB0cyBvZiBlYWNoIHNlbGVjdGVkIGdlbmUgaW4gdGhlIGN1cnJlbnQgdmlldywgb3IgbnVsbCB3aGVuIG5vdCBrbm93blxuICAgKiAgKGFsbCBnZW5lcyBhdCBvbmNlLCB0cmFuc2NyaXB0cyBvZmYsIG9yIGEgc2VsZWN0aW9uIHpvb21lZCBvdXQgb24gYSBkYXRhc2V0IHdpdGhvdXQgdGhlXG4gICAqICBweXJhbWlkJ3MgcGVyLWdlbmUgbGV2ZWxzLCB3aGVyZSBjbHVzdGVycyBhcmUgZHJhd24gZnJvbSBzdW1tZWQgZGVuc2l0eSBncmlkcykuICovXG4gIGdldEdlbmVDb3VudHNJblZpZXckPygpOiBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIG51bWJlcj4gfCBudWxsPjtcbiAgLyoqIEVzdGltYXRlZCB0cmFuc2NyaXB0cyBpbiB2aWV3IGZvciB0aGUgY3VycmVudCBzZWxlY3Rpb24sIGFnYWluc3QgdGhlIG1hcmtlciBidWRnZXQuICovXG4gIGdldFRyYW5zY3JpcHRFc3RpbWF0ZSQ/KCk6IE9ic2VydmFibGU8eyBwb2ludHM6IG51bWJlcjsgbWF4OiBudW1iZXIgfSB8IG51bGw+O1xuICAvKiogVGhlIGRlbnNpdHkgbWFwJ3MgY29sb3VyIHdpbmRvdyBpbiB1c2UgKGF1dG8tZGVyaXZlZCBvciBzZXQpIGFuZCBpdHMgZGVuc2VzdCBiaW4uICovXG4gIGdldERlbnNpdHlTdGF0cyQ/KCk6IE9ic2VydmFibGU8eyBsbzogbnVtYmVyOyBoaTogbnVtYmVyOyBtYXg6IG51bWJlciB9IHwgbnVsbD47XG4gIC8qKlxuICAgKiBUaGUgeiBwb3NpdGlvbnMgb2YgdGhlIHNlY3Rpb25zIHRoZSBkYXRhc2V0IHdhcyBpbWFnZWQgYXQsIGFzY2VuZGluZyDigJQgb3JcbiAgICogbnVsbCB3aGVuIGl0cyB6IGlzIGNvbnRpbnVvdXMgcmF0aGVyIHRoYW4gc2VjdGlvbmVkIChzbyB0aGVyZSBhcmUgbm8gc2VjdGlvbnNcbiAgICogdG8gb2ZmZXIpIG9yIHdoZW4gdGhlcmUgaXMgbm8gZGF0YXNldC5cbiAgICpcbiAgICogTGV0cyBhIHBhbmVsIG9mZmVyIFwib25lIHNlY3Rpb24gYXQgYSB0aW1lXCIgZm9yIHRoZSAzRCBjbG91ZCBvbmx5IHdoZXJlIHRoYXRcbiAgICogbWVhbnMgc29tZXRoaW5nLCBhbmQgbGFiZWwgdGhlIGNob3NlbiBvbmUuIFNjYW5uZWQgb25jZSBwZXIgZGF0YXNldC5cbiAgICovXG4gIHNhbXBsZWRTZWN0aW9ucygpOiBGbG9hdDMyQXJyYXkgfCBudWxsO1xuXG4gIC8vIOKUgOKUgCBzZWxlY3Rpb24g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gIC8qKiBUaGUgY3VycmVudCBzZWxlY3Rpb24uIEVtcHR5IG1lYW5zIFwibm90aGluZyBzZWxlY3RlZFwiLCBpbiB3aGljaCBjYXNlIHRoZVxuICAgKiAgd2hvbGUgdGlzc3VlIHJlbmRlcnMgbm9ybWFsbHkgcmF0aGVyIHRoYW4gZXZlcnl0aGluZyBiZWluZyBtdXRlZC4gKi9cbiAgZ2V0U2VsZWN0aW9uJCgpOiBPYnNlcnZhYmxlPFNwYXRpYWxTZWxlY3Rpb25NYXNrPjtcbiAgLyoqXG4gICAqIFNlbGVjdCBldmVyeSBvYnNlcnZhdGlvbiBpbnNpZGUgdGhlIGN1cnJlbnRseS1kcmF3biByZWdpb25zICh0aGVpciB1bmlvbikuXG4gICAqIFJldXNlcyB0aGUgZXhpc3RpbmcgUk9JIHRvb2xzIOKAlCByZWN0YW5nbGUsIHBvbHlnb24sIGZyZWVoYW5kLCB3YW5kLCBicnVzaCDigJRcbiAgICogc28gdGhlcmUgaXMgbm8gc2VwYXJhdGUgbWFycXVlZSB0byBsZWFybi4gUmV0dXJucyBob3cgbWFueSB3ZXJlIHNlbGVjdGVkLlxuICAgKi9cbiAgc2VsZWN0RnJvbVJlZ2lvbnMoKTogbnVtYmVyO1xuICAvKiogU2VsZWN0IGV2ZXJ5IG9ic2VydmF0aW9uIGluIG9uZSBjYXRlZ29yeSBvZiBhIGNhdGVnb3JpY2FsIGNvbHVtbiDigJQgdGhlXG4gICAqICBsZWdlbmQgY2xpY2suIFJlamVjdHMgZm9yIGFuIHVua25vd24gb3IgY29udGludW91cyBjb2x1bW4uICovXG4gIHNlbGVjdENhdGVnb3J5KGNvbHVtbjogc3RyaW5nLCBjYXRlZ29yeUluZGV4OiBudW1iZXIpOiBQcm9taXNlPG51bWJlcj47XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBhbiBleHBsaWNpdCBzZXQgb2Ygb2JzZXJ2YXRpb25zLCByZXBsYWNpbmcgYW55IGN1cnJlbnQgc2VsZWN0aW9uLlxuICAgKlxuICAgKiBGb3IgYSBsaW5rZWQgcGxvdDogbGFzc29pbmcgcG9pbnRzIGluIGFuIGVtYmVkZGluZyBpcyBhIHNlbGVjdGlvbiBPRiBvYnNlcnZhdGlvbnMsXG4gICAqIGFuZCBldmVyeSBvdGhlciB2aWV3IOKAlCB0aGUgbWFwLCB0aGUgZGlzdHJpYnV0aW9ucyDigJQgcmVhZHMgdGhlIHNhbWUgbWFzaywgc28gYnJ1c2hpbmdcbiAgICogb25lIGxpZ2h0cyB1cCB0aGUgcmVzdC4gUmV0dXJucyBob3cgbWFueSB3ZXJlIHNlbGVjdGVkLlxuICAgKi9cbiAgc2VsZWN0SW5kaWNlcyhpbmRpY2VzOiBJdGVyYWJsZTxudW1iZXI+KTogbnVtYmVyO1xuICBjbGVhclNlbGVjdGlvbigpOiB2b2lkO1xufVxuXG4vKiogRGlzcGxheSBvcHRpb25zIChjb2xvcm1hcC9MVVQsIHJldmVyc2Ugc2NhbGUsIGltYWdlIG1ldGFkYXRhKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSURpc3BsYXlPcHRpb25zIHtcbiAgZ2V0Q29sb3JtYXAoKTogT2JzZXJ2YWJsZTxDb2xvcm1hcE5vZGUgfCBudWxsPjtcbiAgc2V0Q29sb3JtYXAoY29sb3JtYXA6IENvbG9ybWFwTm9kZSk6IHZvaWQ7XG4gIGdldENvbG9ybWFwT3B0aW9ucygpOiBDb2xvcm1hcE5vZGVbXTtcbiAgZ2V0UmV2ZXJzZVNjYWxlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHNldFJldmVyc2VTY2FsZShyZXZlcnNjYWxlOiBhbnkpOiB2b2lkO1xuICBzZXRJbWFnZU1ldGEoaW1hZ2VNZXRhOiBJSW1hZ2VNZXRhZGF0YVtdKTogdm9pZDtcbiAgZ2V0SW1hZ2VNZXRhKCk6IE9ic2VydmFibGU8SUltYWdlTWV0YWRhdGFbXT47XG59XG5cbi8qKlxuICogSW50ZW5zaXR5LXByb2ZpbGUgc2FtcGxpbmcgKFBsb3RUeXBlLkxJTkUpLiBUaGUgc2FtcGxpbmcgKnNvdXJjZSogbGl2ZXMgaW4gdGhlXG4gKiBQbG90bHkgYmFja2VuZCAoaXQgb3ducyBwaXhlbCByZWFkYmFjayk7IE9wZW5TZWFkcmFnb24gY29udHJpYnV0ZXMgb25seSB0aGVcbiAqIHZpZXdwb3J0LWNoYW5nZSBzaWduYWwgdGhhdCBkcml2ZXMgcmUtc2FtcGxpbmcgYXQgdGhlIGN1cnJlbnQgem9vbS4gRWFjaFxuICogYmFja2VuZCBpbXBsZW1lbnRzIHRoZSBwYXJ0IGl0IG93bnMgYW5kIG5vLW9wcyB0aGUgcmVzdCDigJQgbWlycm9yaW5nIHRoZVxuICogZGVwcmVjYXRlZCBuby1vcCBwYXR0ZXJuIG9uIHtAbGluayBJRGF0YVJlbmRlcmVyfSDigJQgc28gdGhlIGNvbnRyYWN0IGlzIHVuaWZvcm1cbiAqIGFuZCBhIGNvbnN1bWVyIGNhbiBkZXBlbmQgb24gYElWaXN1YWxpemVyYCBhbG9uZSAobm8gY29uY3JldGUtdHlwZSByZWFjaC1pbikuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUludGVuc2l0eVNhbXBsaW5nIHtcbiAgLyoqIFBvcHVsYXRlIHRoZSBpbnRlbnNpdHktc2FtcGxpbmcgY2FjaGUgZm9yIHRoZSBjdXJyZW50IGltYWdlL3NsaWNlIHNvIHRoZVxuICAgKiAgbGluZS1ST0kgcHJvZmlsZXMgaGF2ZSBwaXhlbCBkYXRhLiBSZWFsIG9uIFBsb3RseTsgbm8tb3Agb24gT1NELiAqL1xuICBlbnN1cmVJbnRlbnNpdHlTYW1wbGluZyhpbWFnZUluZm86IElJbWFnZUluZm8sIHpJbmRleDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPjtcbiAgLyoqIFJlLXNhbXBsZSB0aGUgcHJvZmlsZXMgZnJvbSBhIGZyZXNoIGNyb3Agb2YgdGhlIGdpdmVuIGltYWdlLXBpeGVsIFJPSSBhdFxuICAgKiAgZGlzcGxheSByZXNvbHV0aW9uLiBSZWFsIG9uIFBsb3RseTsgbm8tb3Agb24gT1NELiAqL1xuICByZWZyZXNoSW50ZW5zaXR5U2FtcGxpbmdGb3JSb2koeDogbnVtYmVyLCB5OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgekluZGV4OiBudW1iZXIpOiB2b2lkO1xuICAvKiogVmlzaWJsZS1yZWdpb24gY2hhbmdlcyAoaW1hZ2UtcGl4ZWwgY29vcmRzKSwgZW1pdHRlZCB3aGVuIHRoZSB2aWV3IHNldHRsZXMsXG4gICAqICBzbyB0aGUgaW5zZXQgY2FuIHJlLXNhbXBsZSBhdCB0aGUgY3VycmVudCB6b29tLiBSZWFsIG9uIE9TRDsgZW1wdHkgb24gUGxvdGx5XG4gICAqICAoaXRzIGhpZ2gtZGVmIHpvb20gdXBkYXRlcyB0aGUgc2FtcGxpbmcgY2FjaGUgaW5saW5lIGluc3RlYWQpLiAqL1xuICBnZXRWaWV3cG9ydENoYW5nZSQoKTogT2JzZXJ2YWJsZTx7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9Pjtcbn1cblxuLyoqIENvbXBvc2l0ZSBjb250cmFjdCBhIHZpc3VhbGl6YXRpb24gYmFja2VuZCBpbXBsZW1lbnRzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVmlzdWFsaXplciBleHRlbmRzIElEYXRhUmVuZGVyZXIsIElSZWdpb25TdG9yZSwgSVRvb2xDb250cm9sbGVyLCBJRGlzcGxheU9wdGlvbnMsXG4gIElJbnRlbnNpdHlTYW1wbGluZyB7XG4gIHJlYWRvbmx5IGNhcGFiaWxpdGllczogVmlld2VyQ2FwYWJpbGl0aWVzO1xuICAvKiogVGhpcyBiYWNrZW5kJ3MgcmVnaW9uIHJlbmRlcmVyLiBNYXkgYmUgbnVsbCB1bnRpbCBhIHBsb3QgaXMgbW91bnRlZFxuICAgKiAgKE9wZW5TZWFkcmFnb24pLiBEcml2ZXMgcmVnaW9uIGRyYXcvc2VsZWN0IG1vZGVzIHVuaWZvcm1seS4gKi9cbiAgZ2V0UmVnaW9uT3ZlcmxheSgpOiBJUmVnaW9uT3ZlcmxheSB8IG51bGw7XG4gIC8qKiBJc29zdXJmYWNlIGNvbnRyb2xzIHdoZW4gdGhpcyBiYWNrZW5kIGFkdmVydGlzZXMgYFZpZXdlckZlYXR1cmUuSXNvc3VyZmFjZWAsXG4gICAqICBlbHNlIG51bGwg4oCUIHNvIGNvbnN1bWVycyBnYXRlIG9uIHRoZSByZXR1cm5lZCBvYmplY3QsIG5vdCBhIG5vLW9wIG1ldGhvZC4gKi9cbiAgZ2V0SXNvc3VyZmFjZUNvbnRyb2xzKCk6IElJc29zdXJmYWNlQ29udHJvbHMgfCBudWxsO1xuICAvKiogSW50ZW5zaXR5IChsaW5lLVJPSSkgY29udHJvbHMgd2hlbiB0aGUgYmFja2VuZCByZW5kZXJzIHRoZSBMSU5FIHBsb3QgdHlwZSxcbiAgICogIGVsc2UgbnVsbC4gKi9cbiAgZ2V0SW50ZW5zaXR5Q29udHJvbHMoKTogSUludGVuc2l0eUNvbnRyb2xzIHwgbnVsbDtcbiAgLyoqIDNEIHNjZW5lIGNvbnRyb2xzIHdoZW4gdGhpcyBiYWNrZW5kIHJlbmRlcnMgM0QgcGxvdCB0eXBlcywgZWxzZSBudWxsIOKAlFxuICAgKiAgdGhlIGNhcGFiaWxpdHktZ2F0ZWQgcmVwbGFjZW1lbnQgZm9yIHRoZSBkZXByZWNhdGVkIHRvcC1sZXZlbFxuICAgKiAgYHNldFN1cmZhY2VEcmFnTW9kZWAvYHJlc2V0U3VyZmFjZUNhbWVyYWAuICovXG4gIGdldFN1cmZhY2UzZENvbnRyb2xzKCk6IElTdXJmYWNlM2RDb250cm9scyB8IG51bGw7XG4gIC8qKiBTcGF0aWFsLW9taWNzIGNvbnRyb2xzIHdoZW4gYSBgU1BBVElBTF9EQVRBX1BPUlRgIGlzIGJvdW5kLCBlbHNlIG51bGwuXG4gICAqICBPcHRpb25hbDogb25seSB0aGUgcm91dGluZyBzZXJ2aWNlIGltcGxlbWVudHMgaXQsIHNpbmNlIHRoZSBzdGF0ZSBpcyBzaGFyZWRcbiAgICogIHJhdGhlciB0aGFuIG93bmVkIGJ5IGFueSBvbmUgYmFja2VuZC4gKi9cbiAgZ2V0U3BhdGlhbENvbnRyb2xzPygpOiBJU3BhdGlhbENvbnRyb2xzIHwgbnVsbDtcbiAgLyoqIFRoZSB2aWV3cG9ydCBhIGNvbnRyaWJ1dGVkIHBsb3QgbW9kZSBkcmF3cyBvdmVyLCB3aGVuIHRoZSBiYWNrZW5kIG9uXG4gICAqICBzY3JlZW4gY2FuIHByb3ZpZGUgb25lIChPcGVuU2VhZHJhZ29uKSwgZWxzZSBudWxsLiBPcHRpb25hbDogYmFja2VuZHMgdGhhdFxuICAgKiAgbm8gY29udHJpYnV0ZWQgbW9kZSByaWRlcyBvbiBuZWVkIG5vdCBpbXBsZW1lbnQgaXQuICovXG4gIGdldFBsb3RNb2RlVmlld3BvcnQ/KCk6IFBsb3RNb2RlVmlld3BvcnQgfCBudWxsO1xuICAvKiogQmlubmVkIGludGVuc2l0eSBoaXN0b2dyYW0gZm9yIGEgY2hhbm5lbCBmcm9tIHRoZSBjdXJyZW50bHktZGlzcGxheWVkXG4gICAqICBwaXhlbHMsIG9yIG51bGwgd2hlbiBub25lIGFyZSBhdmFpbGFibGUuIEZlZWRzIHRoZSBDaGFubmVscyAmIEhpc3RvZ3JhbVxuICAgKiAgcGFuZS4gKi9cbiAgZ2V0SGlzdG9ncmFtKGNoYW5uZWxJbmRleDogbnVtYmVyLCBiaW5zOiBudW1iZXIpOiBJSGlzdG9ncmFtIHwgbnVsbDtcbiAgLyoqIEFzeW5jIGhpc3RvZ3JhbSBzdHJlYW0g4oCUIG5hdGl2ZSBiaXQgZGVwdGggZm9yID44LWJpdCBpbWFnZXMgKHNlcnZlciksIGVsc2VcbiAgICogIHRoZSA4LWJpdCBjbGllbnQgaGlzdG9ncmFtLiAqL1xuICBnZXRIaXN0b2dyYW0kKGNoYW5uZWxJbmRleDogbnVtYmVyLCBiaW5zOiBudW1iZXIpOiBPYnNlcnZhYmxlPElIaXN0b2dyYW0gfCBudWxsPjtcbiAgLyoqIEV4cG9ydCB0aGUgZGlzcGxheWVkIGltYWdlLCBjb21wb3NpdGVkIHdpdGggdGhlIGN1cnJlbnQgZGlzcGxheSBzZXR0aW5ncyxcbiAgICogIGFzIGEgcHVibGljYXRpb24tcmVhZHkgUE5HIGRvd25sb2FkLiAqL1xuICBleHBvcnRDb21wb3NpdGUoKTogdm9pZDtcbiAgLyoqIEV4cG9ydCB0aGUgdW5kZXJseWluZyBpbWFnZSBkYXRhIGFzIGEgZGF0YS1wcmVzZXJ2aW5nIG11bHRpLWJhbmQgVElGRlxuICAgKiAgKG5hdGl2ZSBiaXQgZGVwdGgpLiBOby1vcCBvbiBiYWNrZW5kcyB0aGF0IGNhbid0IHByb3ZpZGUgaXQuICovXG4gIGV4cG9ydERhdGEoKTogdm9pZDtcbiAgdW5zdWJzY3JpYmUoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBESSB0b2tlbiBmb3IgdGhlIGFjdGl2ZSB2aXN1YWxpemF0aW9uIGJhY2tlbmQuIEJpbmQgaXQgKGB1c2VFeGlzdGluZ2ApIHRvIHRoZVxuICogYFJvdXRpbmdWaXN1YWxpemVyU2VydmljZWAsIHdoaWNoIHNlbGVjdHMgUGxvdGx5IHZzIE9wZW5TZWFkcmFnb24gcGVyIHBsb3RcbiAqIHR5cGUuIENvbnN1bWVycyDigJQgaW5jbHVkaW5nIHRoaXMgbGlicmFyeSdzIG93biBgVmlzdWFsaXplckNvbXBvbmVudGAg4oCUXG4gKiBpbmplY3QgYElWaXN1YWxpemVyYCB0aHJvdWdoIHRoaXMgdG9rZW4gcmF0aGVyIHRoYW4gdGhlIGNvbmNyZXRlIHJvdXRlciwgc29cbiAqIHRoZSByb3V0aW5nL2ZhbGxiYWNrIGltcGxlbWVudGF0aW9uIGNhbiBjaGFuZ2Ugd2l0aG91dCB0b3VjaGluZyBjb25zdHJ1Y3RvcnMuXG4gKi9cbmV4cG9ydCBjb25zdCBWSVNVQUxJWkVSID0gbmV3IEluamVjdGlvblRva2VuPElWaXN1YWxpemVyPignVklTVUFMSVpFUicpO1xuIl19