@esotericsoftware/spine-webgl 4.2.81 → 4.2.83

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 (42) hide show
  1. package/LICENSE +12 -12
  2. package/dist/AssetManager.d.ts +6 -6
  3. package/dist/AssetManager.js +7 -7
  4. package/dist/Camera.d.ts +6 -6
  5. package/dist/Camera.js +7 -7
  6. package/dist/CameraController.d.ts +6 -6
  7. package/dist/CameraController.js +7 -7
  8. package/dist/GLTexture.d.ts +6 -6
  9. package/dist/GLTexture.js +7 -7
  10. package/dist/Input.d.ts +19 -15
  11. package/dist/Input.js +80 -51
  12. package/dist/LoadingScreen.d.ts +7 -6
  13. package/dist/LoadingScreen.js +24 -7
  14. package/dist/Matrix4.d.ts +6 -6
  15. package/dist/Matrix4.js +7 -7
  16. package/dist/Mesh.d.ts +6 -6
  17. package/dist/Mesh.js +7 -7
  18. package/dist/PolygonBatcher.d.ts +6 -6
  19. package/dist/PolygonBatcher.js +7 -7
  20. package/dist/SceneRenderer.d.ts +6 -6
  21. package/dist/SceneRenderer.js +7 -7
  22. package/dist/Shader.d.ts +6 -6
  23. package/dist/Shader.js +7 -7
  24. package/dist/ShapeRenderer.d.ts +6 -6
  25. package/dist/ShapeRenderer.js +7 -7
  26. package/dist/SkeletonDebugRenderer.d.ts +6 -6
  27. package/dist/SkeletonDebugRenderer.js +7 -7
  28. package/dist/SkeletonRenderer.d.ts +6 -6
  29. package/dist/SkeletonRenderer.js +7 -7
  30. package/dist/SpineCanvas.d.ts +6 -6
  31. package/dist/SpineCanvas.js +7 -7
  32. package/dist/Vector3.d.ts +6 -6
  33. package/dist/Vector3.js +7 -7
  34. package/dist/WebGL.d.ts +6 -6
  35. package/dist/WebGL.js +7 -7
  36. package/dist/esm/spine-webgl.min.mjs +26 -26
  37. package/dist/esm/spine-webgl.mjs +1065 -1542
  38. package/dist/esm/spine-webgl.mjs.map +3 -3
  39. package/dist/iife/spine-webgl.js +1068 -1543
  40. package/dist/iife/spine-webgl.js.map +3 -3
  41. package/dist/iife/spine-webgl.min.js +26 -26
  42. package/package.json +2 -2
@@ -1,16 +1,16 @@
1
1
  /******************************************************************************
2
2
  * Spine Runtimes License Agreement
3
- * Last updated July 28, 2023. Replaces all prior versions.
3
+ * Last updated April 5, 2025. Replaces all prior versions.
4
4
  *
5
- * Copyright (c) 2013-2023, Esoteric Software LLC
5
+ * Copyright (c) 2013-2025, Esoteric Software LLC
6
6
  *
7
7
  * Integration of the Spine Runtimes into software or otherwise creating
8
8
  * derivative works of the Spine Runtimes is permitted under the terms and
9
9
  * conditions of Section 2 of the Spine Editor License Agreement:
10
10
  * http://esotericsoftware.com/spine-editor-license
11
11
  *
12
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
13
- * otherwise create derivative works of the Spine Runtimes (collectively,
12
+ * Otherwise, it is permitted to integrate the Spine Runtimes into software
13
+ * or otherwise create derivative works of the Spine Runtimes (collectively,
14
14
  * "Products"), provided that each user of the Products must obtain their own
15
15
  * Spine Editor license and redistribution of the Products in any form must
16
16
  * include this license and copyright notice.
@@ -23,8 +23,8 @@
23
23
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
24
24
  * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
25
25
  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
27
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27
+ * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
28
  *****************************************************************************/
29
29
  import { Mesh, Position2Attribute, ColorAttribute, TexCoordAttribute, Color2Attribute } from "./Mesh.js";
30
30
  import { ManagedWebGLRenderingContext } from "./WebGL.js";
@@ -162,4 +162,4 @@ export class PolygonBatcher {
162
162
  this.mesh.dispose();
163
163
  }
164
164
  }
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9seWdvbkJhdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvUG9seWdvbkJhdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsrRUEyQitFO0FBSS9FLE9BQU8sRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV6RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFMUQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ2pCLE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFDO0FBQ3RDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQztBQUM1QixNQUFNLHNCQUFzQixHQUFHLE1BQU0sQ0FBQztBQUN0QyxNQUFNLHNCQUFzQixHQUFHLE1BQU0sQ0FBQztBQUN0QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUM7QUFFNUIsTUFBTSxPQUFPLGNBQWM7SUFDbkIsTUFBTSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFFN0IsT0FBTyxDQUErQjtJQUN0QyxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsTUFBTSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7SUFDbkMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNWLElBQUksQ0FBTztJQUNYLE1BQU0sR0FBa0IsSUFBSSxDQUFDO0lBQzdCLFdBQVcsR0FBcUIsSUFBSSxDQUFDO0lBQ3JDLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFDbkIsYUFBYSxHQUFHLENBQUMsQ0FBQztJQUNsQixhQUFhLENBQVM7SUFDdEIsYUFBYSxDQUFTO0lBQ3RCLFFBQVEsQ0FBUztJQUNqQixjQUFjLEdBQUcsS0FBSyxDQUFDO0lBRS9CLFlBQWEsT0FBNkQsRUFBRSxlQUF3QixJQUFJLEVBQUUsY0FBc0IsS0FBSztRQUNwSSxJQUFJLFdBQVcsR0FBRyxLQUFLO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsR0FBRyxXQUFXLENBQUMsQ0FBQztRQUMzRyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sWUFBWSw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JILElBQUksVUFBVSxHQUFHLFlBQVksQ0FBQyxDQUFDO1lBQzlCLENBQUMsSUFBSSxrQkFBa0IsRUFBRSxFQUFFLElBQUksY0FBYyxFQUFFLEVBQUUsSUFBSSxpQkFBaUIsRUFBRSxFQUFFLElBQUksZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2xHLENBQUMsSUFBSSxrQkFBa0IsRUFBRSxFQUFFLElBQUksY0FBYyxFQUFFLEVBQUUsSUFBSSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDeEUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztJQUN4QyxDQUFDO0lBRUQsS0FBSyxDQUFFLE1BQWM7UUFDcEIsSUFBSSxJQUFJLENBQUMsU0FBUztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEZBQThGLENBQUMsQ0FBQztRQUNwSSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUV0QixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN6QixFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQixFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTNGLElBQUksY0FBYyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakQsSUFBSSxJQUFJLENBQUMsY0FBYztnQkFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuRCxDQUFDO0lBQ0YsQ0FBQztJQUVPLE1BQU0sQ0FBQyxZQUFZLEdBQThFO1FBQ3hHLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO1FBQzdGLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtRQUM3RSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtRQUNuRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtLQUN2RixDQUFBO0lBRUQsWUFBWSxDQUFFLFNBQW9CLEVBQUUsa0JBQTJCO1FBQzlELE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0QsTUFBTSxhQUFhLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDdEYsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQztRQUMzQyxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO1FBRXBDLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxhQUFhLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFRO1lBQUUsT0FBTztRQUNwSCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZCxDQUFDO1FBQ0QsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDekIsRUFBRSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxJQUFJLENBQUUsT0FBa0IsRUFBRSxRQUEyQixFQUFFLE9BQXNCO1FBQzVFLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztRQUM1QixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNO1lBQ2hGLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3RFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNkLENBQUM7UUFFRCxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLGNBQWMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBRWhELElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDMUMsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQ25FLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDO1FBQzNDLElBQUksQ0FBQyxhQUFhLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsS0FBSztRQUNKLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDO1lBQUUsT0FBTztRQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVc7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV2RCxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLGNBQWMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsR0FBRztRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMEZBQTBGLENBQUMsQ0FBQztRQUNqSSxJQUFJLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQztZQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNwRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUV2QixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN6QixFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLGNBQWMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuQyxJQUFJLElBQUksQ0FBQyxjQUFjO2dCQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDRixDQUFDO0lBRUQsWUFBWTtRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN2QixDQUFDO0lBRUQsTUFBTSxDQUFDLDBCQUEwQjtRQUNoQyxJQUFJLE1BQU0sR0FBRyxjQUFjLENBQUMsZUFBZSxDQUFDO1FBQzVDLGNBQWMsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU87UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBTcGluZSBSdW50aW1lcyBMaWNlbnNlIEFncmVlbWVudFxuICogTGFzdCB1cGRhdGVkIEp1bHkgMjgsIDIwMjMuIFJlcGxhY2VzIGFsbCBwcmlvciB2ZXJzaW9ucy5cbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtMjAyMywgRXNvdGVyaWMgU29mdHdhcmUgTExDXG4gKlxuICogSW50ZWdyYXRpb24gb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmUgb3Igb3RoZXJ3aXNlIGNyZWF0aW5nXG4gKiBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpcyBwZXJtaXR0ZWQgdW5kZXIgdGhlIHRlcm1zIGFuZFxuICogY29uZGl0aW9ucyBvZiBTZWN0aW9uIDIgb2YgdGhlIFNwaW5lIEVkaXRvciBMaWNlbnNlIEFncmVlbWVudDpcbiAqIGh0dHA6Ly9lc290ZXJpY3NvZnR3YXJlLmNvbS9zcGluZS1lZGl0b3ItbGljZW5zZVxuICpcbiAqIE90aGVyd2lzZSwgaXQgaXMgcGVybWl0dGVkIHRvIGludGVncmF0ZSB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZSBvclxuICogb3RoZXJ3aXNlIGNyZWF0ZSBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyAoY29sbGVjdGl2ZWx5LFxuICogXCJQcm9kdWN0c1wiKSwgcHJvdmlkZWQgdGhhdCBlYWNoIHVzZXIgb2YgdGhlIFByb2R1Y3RzIG11c3Qgb2J0YWluIHRoZWlyIG93blxuICogU3BpbmUgRWRpdG9yIGxpY2Vuc2UgYW5kIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9kdWN0cyBpbiBhbnkgZm9ybSBtdXN0XG4gKiBpbmNsdWRlIHRoaXMgbGljZW5zZSBhbmQgY29weXJpZ2h0IG5vdGljZS5cbiAqXG4gKiBUSEUgU1BJTkUgUlVOVElNRVMgQVJFIFBST1ZJREVEIEJZIEVTT1RFUklDIFNPRlRXQVJFIExMQyBcIkFTIElTXCIgQU5EIEFOWVxuICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRFxuICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRVxuICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgRVNPVEVSSUMgU09GVFdBUkUgTExDIEJFIExJQUJMRSBGT1IgQU5ZXG4gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFU1xuICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTLFxuICogQlVTSU5FU1MgSU5URVJSVVBUSU9OLCBPUiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUykgSE9XRVZFUiBDQVVTRUQgQU5EXG4gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVFxuICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRIRVxuICogU1BJTkUgUlVOVElNRVMsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbmltcG9ydCB7IEJsZW5kTW9kZSwgRGlzcG9zYWJsZSB9IGZyb20gXCJAZXNvdGVyaWNzb2Z0d2FyZS9zcGluZS1jb3JlXCI7XG5pbXBvcnQgeyBHTFRleHR1cmUgfSBmcm9tIFwiLi9HTFRleHR1cmUuanNcIjtcbmltcG9ydCB7IE1lc2gsIFBvc2l0aW9uMkF0dHJpYnV0ZSwgQ29sb3JBdHRyaWJ1dGUsIFRleENvb3JkQXR0cmlidXRlLCBDb2xvcjJBdHRyaWJ1dGUgfSBmcm9tIFwiLi9NZXNoLmpzXCI7XG5pbXBvcnQgeyBTaGFkZXIgfSBmcm9tIFwiLi9TaGFkZXIuanNcIjtcbmltcG9ydCB7IE1hbmFnZWRXZWJHTFJlbmRlcmluZ0NvbnRleHQgfSBmcm9tIFwiLi9XZWJHTC5qc1wiO1xuXG5jb25zdCBHTF9PTkUgPSAxO1xuY29uc3QgR0xfT05FX01JTlVTX1NSQ19DT0xPUiA9IDB4MDMwMTtcbmNvbnN0IEdMX1NSQ19BTFBIQSA9IDB4MDMwMjtcbmNvbnN0IEdMX09ORV9NSU5VU19TUkNfQUxQSEEgPSAweDAzMDM7XG5jb25zdCBHTF9PTkVfTUlOVVNfRFNUX0FMUEhBID0gMHgwMzA1O1xuY29uc3QgR0xfRFNUX0NPTE9SID0gMHgwMzA2O1xuXG5leHBvcnQgY2xhc3MgUG9seWdvbkJhdGNoZXIgaW1wbGVtZW50cyBEaXNwb3NhYmxlIHtcblx0cHVibGljIHN0YXRpYyBkaXNhYmxlQ3VsbGluZyA9IGZhbHNlO1xuXG5cdHByaXZhdGUgY29udGV4dDogTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dDtcblx0cHJpdmF0ZSBkcmF3Q2FsbHMgPSAwO1xuXHRwcml2YXRlIHN0YXRpYyBnbG9iYWxEcmF3Q2FsbHMgPSAwO1xuXHRpc0RyYXdpbmcgPSBmYWxzZTtcblx0cHJpdmF0ZSBtZXNoOiBNZXNoO1xuXHRwcml2YXRlIHNoYWRlcjogU2hhZGVyIHwgbnVsbCA9IG51bGw7XG5cdHByaXZhdGUgbGFzdFRleHR1cmU6IEdMVGV4dHVyZSB8IG51bGwgPSBudWxsO1xuXHRwcml2YXRlIHZlcnRpY2VzTGVuZ3RoID0gMDtcblx0cHJpdmF0ZSBpbmRpY2VzTGVuZ3RoID0gMDtcblx0cHJpdmF0ZSBzcmNDb2xvckJsZW5kOiBudW1iZXI7XG5cdHByaXZhdGUgc3JjQWxwaGFCbGVuZDogbnVtYmVyO1xuXHRwcml2YXRlIGRzdEJsZW5kOiBudW1iZXI7XG5cdHByaXZhdGUgY3VsbFdhc0VuYWJsZWQgPSBmYWxzZTtcblxuXHRjb25zdHJ1Y3RvciAoY29udGV4dDogTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dCB8IFdlYkdMUmVuZGVyaW5nQ29udGV4dCwgdHdvQ29sb3JUaW50OiBib29sZWFuID0gdHJ1ZSwgbWF4VmVydGljZXM6IG51bWJlciA9IDEwOTIwKSB7XG5cdFx0aWYgKG1heFZlcnRpY2VzID4gMTA5MjApIHRocm93IG5ldyBFcnJvcihcIkNhbid0IGhhdmUgbW9yZSB0aGFuIDEwOTIwIHRyaWFuZ2xlcyBwZXIgYmF0Y2g6IFwiICsgbWF4VmVydGljZXMpO1xuXHRcdHRoaXMuY29udGV4dCA9IGNvbnRleHQgaW5zdGFuY2VvZiBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0ID8gY29udGV4dCA6IG5ldyBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0KGNvbnRleHQpO1xuXHRcdGxldCBhdHRyaWJ1dGVzID0gdHdvQ29sb3JUaW50ID9cblx0XHRcdFtuZXcgUG9zaXRpb24yQXR0cmlidXRlKCksIG5ldyBDb2xvckF0dHJpYnV0ZSgpLCBuZXcgVGV4Q29vcmRBdHRyaWJ1dGUoKSwgbmV3IENvbG9yMkF0dHJpYnV0ZSgpXSA6XG5cdFx0XHRbbmV3IFBvc2l0aW9uMkF0dHJpYnV0ZSgpLCBuZXcgQ29sb3JBdHRyaWJ1dGUoKSwgbmV3IFRleENvb3JkQXR0cmlidXRlKCldO1xuXHRcdHRoaXMubWVzaCA9IG5ldyBNZXNoKGNvbnRleHQsIGF0dHJpYnV0ZXMsIG1heFZlcnRpY2VzLCBtYXhWZXJ0aWNlcyAqIDMpO1xuXHRcdGxldCBnbCA9IHRoaXMuY29udGV4dC5nbDtcblx0XHR0aGlzLnNyY0NvbG9yQmxlbmQgPSBnbC5TUkNfQUxQSEE7XG5cdFx0dGhpcy5zcmNBbHBoYUJsZW5kID0gZ2wuT05FO1xuXHRcdHRoaXMuZHN0QmxlbmQgPSBnbC5PTkVfTUlOVVNfU1JDX0FMUEhBO1xuXHR9XG5cblx0YmVnaW4gKHNoYWRlcjogU2hhZGVyKSB7XG5cdFx0aWYgKHRoaXMuaXNEcmF3aW5nKSB0aHJvdyBuZXcgRXJyb3IoXCJQb2x5Z29uQmF0Y2ggaXMgYWxyZWFkeSBkcmF3aW5nLiBDYWxsIFBvbHlnb25CYXRjaC5lbmQoKSBiZWZvcmUgY2FsbGluZyBQb2x5Z29uQmF0Y2guYmVnaW4oKVwiKTtcblx0XHR0aGlzLmRyYXdDYWxscyA9IDA7XG5cdFx0dGhpcy5zaGFkZXIgPSBzaGFkZXI7XG5cdFx0dGhpcy5sYXN0VGV4dHVyZSA9IG51bGw7XG5cdFx0dGhpcy5pc0RyYXdpbmcgPSB0cnVlO1xuXG5cdFx0bGV0IGdsID0gdGhpcy5jb250ZXh0LmdsO1xuXHRcdGdsLmVuYWJsZShnbC5CTEVORCk7XG5cdFx0Z2wuYmxlbmRGdW5jU2VwYXJhdGUodGhpcy5zcmNDb2xvckJsZW5kLCB0aGlzLmRzdEJsZW5kLCB0aGlzLnNyY0FscGhhQmxlbmQsIHRoaXMuZHN0QmxlbmQpO1xuXG5cdFx0aWYgKFBvbHlnb25CYXRjaGVyLmRpc2FibGVDdWxsaW5nKSB7XG5cdFx0XHR0aGlzLmN1bGxXYXNFbmFibGVkID0gZ2wuaXNFbmFibGVkKGdsLkNVTExfRkFDRSk7XG5cdFx0XHRpZiAodGhpcy5jdWxsV2FzRW5hYmxlZCkgZ2wuZGlzYWJsZShnbC5DVUxMX0ZBQ0UpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgc3RhdGljIGJsZW5kTW9kZXNHTDogeyBzcmNSZ2I6IG51bWJlciwgc3JjUmdiUG1hOiBudW1iZXIsIGRzdFJnYjogbnVtYmVyLCBzcmNBbHBoYTogbnVtYmVyIH1bXSA9IFtcblx0XHR7IHNyY1JnYjogR0xfU1JDX0FMUEhBLCBzcmNSZ2JQbWE6IEdMX09ORSwgZHN0UmdiOiBHTF9PTkVfTUlOVVNfU1JDX0FMUEhBLCBzcmNBbHBoYTogR0xfT05FIH0sXG5cdFx0eyBzcmNSZ2I6IEdMX1NSQ19BTFBIQSwgc3JjUmdiUG1hOiBHTF9PTkUsIGRzdFJnYjogR0xfT05FLCBzcmNBbHBoYTogR0xfT05FIH0sXG5cdFx0eyBzcmNSZ2I6IEdMX0RTVF9DT0xPUiwgc3JjUmdiUG1hOiBHTF9EU1RfQ09MT1IsIGRzdFJnYjogR0xfT05FX01JTlVTX1NSQ19BTFBIQSwgc3JjQWxwaGE6IEdMX09ORSB9LFxuXHRcdHsgc3JjUmdiOiBHTF9PTkUsIHNyY1JnYlBtYTogR0xfT05FLCBkc3RSZ2I6IEdMX09ORV9NSU5VU19TUkNfQ09MT1IsIHNyY0FscGhhOiBHTF9PTkUgfVxuXHRdXG5cblx0c2V0QmxlbmRNb2RlIChibGVuZE1vZGU6IEJsZW5kTW9kZSwgcHJlbXVsdGlwbGllZEFscGhhOiBib29sZWFuKSB7XG5cdFx0Y29uc3QgYmxlbmRNb2RlR0wgPSBQb2x5Z29uQmF0Y2hlci5ibGVuZE1vZGVzR0xbYmxlbmRNb2RlXTtcblx0XHRjb25zdCBzcmNDb2xvckJsZW5kID0gcHJlbXVsdGlwbGllZEFscGhhID8gYmxlbmRNb2RlR0wuc3JjUmdiUG1hIDogYmxlbmRNb2RlR0wuc3JjUmdiO1xuXHRcdGNvbnN0IHNyY0FscGhhQmxlbmQgPSBibGVuZE1vZGVHTC5zcmNBbHBoYTtcblx0XHRjb25zdCBkc3RCbGVuZCA9IGJsZW5kTW9kZUdMLmRzdFJnYjtcblxuXHRcdGlmICh0aGlzLnNyY0NvbG9yQmxlbmQgPT0gc3JjQ29sb3JCbGVuZCAmJiB0aGlzLnNyY0FscGhhQmxlbmQgPT0gc3JjQWxwaGFCbGVuZCAmJiB0aGlzLmRzdEJsZW5kID09IGRzdEJsZW5kKSByZXR1cm47XG5cdFx0dGhpcy5zcmNDb2xvckJsZW5kID0gc3JjQ29sb3JCbGVuZDtcblx0XHR0aGlzLnNyY0FscGhhQmxlbmQgPSBzcmNBbHBoYUJsZW5kO1xuXHRcdHRoaXMuZHN0QmxlbmQgPSBkc3RCbGVuZDtcblx0XHRpZiAodGhpcy5pc0RyYXdpbmcpIHtcblx0XHRcdHRoaXMuZmx1c2goKTtcblx0XHR9XG5cdFx0bGV0IGdsID0gdGhpcy5jb250ZXh0LmdsO1xuXHRcdGdsLmJsZW5kRnVuY1NlcGFyYXRlKHNyY0NvbG9yQmxlbmQsIGRzdEJsZW5kLCBzcmNBbHBoYUJsZW5kLCBkc3RCbGVuZCk7XG5cdH1cblxuXHRkcmF3ICh0ZXh0dXJlOiBHTFRleHR1cmUsIHZlcnRpY2VzOiBBcnJheUxpa2U8bnVtYmVyPiwgaW5kaWNlczogQXJyYXk8bnVtYmVyPikge1xuXHRcdGlmICh0ZXh0dXJlICE9IHRoaXMubGFzdFRleHR1cmUpIHtcblx0XHRcdHRoaXMuZmx1c2goKTtcblx0XHRcdHRoaXMubGFzdFRleHR1cmUgPSB0ZXh0dXJlO1xuXHRcdH0gZWxzZSBpZiAodGhpcy52ZXJ0aWNlc0xlbmd0aCArIHZlcnRpY2VzLmxlbmd0aCA+IHRoaXMubWVzaC5nZXRWZXJ0aWNlcygpLmxlbmd0aCB8fFxuXHRcdFx0dGhpcy5pbmRpY2VzTGVuZ3RoICsgaW5kaWNlcy5sZW5ndGggPiB0aGlzLm1lc2guZ2V0SW5kaWNlcygpLmxlbmd0aCkge1xuXHRcdFx0dGhpcy5mbHVzaCgpO1xuXHRcdH1cblxuXHRcdGxldCBpbmRleFN0YXJ0ID0gdGhpcy5tZXNoLm51bVZlcnRpY2VzKCk7XG5cdFx0dGhpcy5tZXNoLmdldFZlcnRpY2VzKCkuc2V0KHZlcnRpY2VzLCB0aGlzLnZlcnRpY2VzTGVuZ3RoKTtcblx0XHR0aGlzLnZlcnRpY2VzTGVuZ3RoICs9IHZlcnRpY2VzLmxlbmd0aDtcblx0XHR0aGlzLm1lc2guc2V0VmVydGljZXNMZW5ndGgodGhpcy52ZXJ0aWNlc0xlbmd0aClcblxuXHRcdGxldCBpbmRpY2VzQXJyYXkgPSB0aGlzLm1lc2guZ2V0SW5kaWNlcygpO1xuXHRcdGZvciAobGV0IGkgPSB0aGlzLmluZGljZXNMZW5ndGgsIGogPSAwOyBqIDwgaW5kaWNlcy5sZW5ndGg7IGkrKywgaisrKVxuXHRcdFx0aW5kaWNlc0FycmF5W2ldID0gaW5kaWNlc1tqXSArIGluZGV4U3RhcnQ7XG5cdFx0dGhpcy5pbmRpY2VzTGVuZ3RoICs9IGluZGljZXMubGVuZ3RoO1xuXHRcdHRoaXMubWVzaC5zZXRJbmRpY2VzTGVuZ3RoKHRoaXMuaW5kaWNlc0xlbmd0aCk7XG5cdH1cblxuXHRmbHVzaCAoKSB7XG5cdFx0aWYgKHRoaXMudmVydGljZXNMZW5ndGggPT0gMCkgcmV0dXJuO1xuXHRcdGlmICghdGhpcy5sYXN0VGV4dHVyZSkgdGhyb3cgbmV3IEVycm9yKFwiTm8gdGV4dHVyZSBzZXQuXCIpO1xuXHRcdGlmICghdGhpcy5zaGFkZXIpIHRocm93IG5ldyBFcnJvcihcIk5vIHNoYWRlciBzZXQuXCIpO1xuXHRcdHRoaXMubGFzdFRleHR1cmUuYmluZCgpO1xuXHRcdHRoaXMubWVzaC5kcmF3KHRoaXMuc2hhZGVyLCB0aGlzLmNvbnRleHQuZ2wuVFJJQU5HTEVTKTtcblxuXHRcdHRoaXMudmVydGljZXNMZW5ndGggPSAwO1xuXHRcdHRoaXMuaW5kaWNlc0xlbmd0aCA9IDA7XG5cdFx0dGhpcy5tZXNoLnNldFZlcnRpY2VzTGVuZ3RoKDApO1xuXHRcdHRoaXMubWVzaC5zZXRJbmRpY2VzTGVuZ3RoKDApO1xuXHRcdHRoaXMuZHJhd0NhbGxzKys7XG5cdFx0UG9seWdvbkJhdGNoZXIuZ2xvYmFsRHJhd0NhbGxzKys7XG5cdH1cblxuXHRlbmQgKCkge1xuXHRcdGlmICghdGhpcy5pc0RyYXdpbmcpIHRocm93IG5ldyBFcnJvcihcIlBvbHlnb25CYXRjaCBpcyBub3QgZHJhd2luZy4gQ2FsbCBQb2x5Z29uQmF0Y2guYmVnaW4oKSBiZWZvcmUgY2FsbGluZyBQb2x5Z29uQmF0Y2guZW5kKClcIik7XG5cdFx0aWYgKHRoaXMudmVydGljZXNMZW5ndGggPiAwIHx8IHRoaXMuaW5kaWNlc0xlbmd0aCA+IDApIHRoaXMuZmx1c2goKTtcblx0XHR0aGlzLnNoYWRlciA9IG51bGw7XG5cdFx0dGhpcy5sYXN0VGV4dHVyZSA9IG51bGw7XG5cdFx0dGhpcy5pc0RyYXdpbmcgPSBmYWxzZTtcblxuXHRcdGxldCBnbCA9IHRoaXMuY29udGV4dC5nbDtcblx0XHRnbC5kaXNhYmxlKGdsLkJMRU5EKTtcblx0XHRpZiAoUG9seWdvbkJhdGNoZXIuZGlzYWJsZUN1bGxpbmcpIHtcblx0XHRcdGlmICh0aGlzLmN1bGxXYXNFbmFibGVkKSBnbC5lbmFibGUoZ2wuQ1VMTF9GQUNFKTtcblx0XHR9XG5cdH1cblxuXHRnZXREcmF3Q2FsbHMgKCkge1xuXHRcdHJldHVybiB0aGlzLmRyYXdDYWxscztcblx0fVxuXG5cdHN0YXRpYyBnZXRBbmRSZXNldEdsb2JhbERyYXdDYWxscyAoKSB7XG5cdFx0bGV0IHJlc3VsdCA9IFBvbHlnb25CYXRjaGVyLmdsb2JhbERyYXdDYWxscztcblx0XHRQb2x5Z29uQmF0Y2hlci5nbG9iYWxEcmF3Q2FsbHMgPSAwO1xuXHRcdHJldHVybiByZXN1bHQ7XG5cdH1cblxuXHRkaXNwb3NlICgpIHtcblx0XHR0aGlzLm1lc2guZGlzcG9zZSgpO1xuXHR9XG59XG4iXX0=
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9seWdvbkJhdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvUG9seWdvbkJhdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsrRUEyQitFO0FBSS9FLE9BQU8sRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV6RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFMUQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ2pCLE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFDO0FBQ3RDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQztBQUM1QixNQUFNLHNCQUFzQixHQUFHLE1BQU0sQ0FBQztBQUN0QyxNQUFNLHNCQUFzQixHQUFHLE1BQU0sQ0FBQztBQUN0QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUM7QUFFNUIsTUFBTSxPQUFPLGNBQWM7SUFDbkIsTUFBTSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFFN0IsT0FBTyxDQUErQjtJQUN0QyxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsTUFBTSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7SUFDbkMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNWLElBQUksQ0FBTztJQUNYLE1BQU0sR0FBa0IsSUFBSSxDQUFDO0lBQzdCLFdBQVcsR0FBcUIsSUFBSSxDQUFDO0lBQ3JDLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFDbkIsYUFBYSxHQUFHLENBQUMsQ0FBQztJQUNsQixhQUFhLENBQVM7SUFDdEIsYUFBYSxDQUFTO0lBQ3RCLFFBQVEsQ0FBUztJQUNqQixjQUFjLEdBQUcsS0FBSyxDQUFDO0lBRS9CLFlBQWEsT0FBNkQsRUFBRSxlQUF3QixJQUFJLEVBQUUsY0FBc0IsS0FBSztRQUNwSSxJQUFJLFdBQVcsR0FB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QyxNQUFNLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDRixDQUFDO0lBRUQsWUFBWTtRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN2QixDQUFDO0lBRUQsTUFBTSxDQUFDLDBCQUEwQjtRQUNoQyxJQUFJLE1BQU0sR0FBRyxjQUFjLENBQUMsZUFBZSxDQUFDO1FBQzVDLGNBQWMsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU87UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBTcGluZSBSdW50aW1lcyBMaWNlbnNlIEFncmVlbWVudFxuICogTGFzdCB1cGRhdGVkIEFwcmlsIDUsIDIwMjUuIFJlcGxhY2VzIGFsbCBwcmlvciB2ZXJzaW9ucy5cbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtMjAyNSwgRXNvdGVyaWMgU29mdHdhcmUgTExDXG4gKlxuICogSW50ZWdyYXRpb24gb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmUgb3Igb3RoZXJ3aXNlIGNyZWF0aW5nXG4gKiBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpcyBwZXJtaXR0ZWQgdW5kZXIgdGhlIHRlcm1zIGFuZFxuICogY29uZGl0aW9ucyBvZiBTZWN0aW9uIDIgb2YgdGhlIFNwaW5lIEVkaXRvciBMaWNlbnNlIEFncmVlbWVudDpcbiAqIGh0dHA6Ly9lc290ZXJpY3NvZnR3YXJlLmNvbS9zcGluZS1lZGl0b3ItbGljZW5zZVxuICpcbiAqIE90aGVyd2lzZSwgaXQgaXMgcGVybWl0dGVkIHRvIGludGVncmF0ZSB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZVxuICogb3Igb3RoZXJ3aXNlIGNyZWF0ZSBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyAoY29sbGVjdGl2ZWx5LFxuICogXCJQcm9kdWN0c1wiKSwgcHJvdmlkZWQgdGhhdCBlYWNoIHVzZXIgb2YgdGhlIFByb2R1Y3RzIG11c3Qgb2J0YWluIHRoZWlyIG93blxuICogU3BpbmUgRWRpdG9yIGxpY2Vuc2UgYW5kIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9kdWN0cyBpbiBhbnkgZm9ybSBtdXN0XG4gKiBpbmNsdWRlIHRoaXMgbGljZW5zZSBhbmQgY29weXJpZ2h0IG5vdGljZS5cbiAqXG4gKiBUSEUgU1BJTkUgUlVOVElNRVMgQVJFIFBST1ZJREVEIEJZIEVTT1RFUklDIFNPRlRXQVJFIExMQyBcIkFTIElTXCIgQU5EIEFOWVxuICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRFxuICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRVxuICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgRVNPVEVSSUMgU09GVFdBUkUgTExDIEJFIExJQUJMRSBGT1IgQU5ZXG4gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFU1xuICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTLFxuICogQlVTSU5FU1MgSU5URVJSVVBUSU9OLCBPUiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUykgSE9XRVZFUiBDQVVTRUQgQU5EXG4gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVFxuICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GXG4gKiBUSEUgU1BJTkUgUlVOVElNRVMsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbmltcG9ydCB7IEJsZW5kTW9kZSwgRGlzcG9zYWJsZSB9IGZyb20gXCJAZXNvdGVyaWNzb2Z0d2FyZS9zcGluZS1jb3JlXCI7XG5pbXBvcnQgeyBHTFRleHR1cmUgfSBmcm9tIFwiLi9HTFRleHR1cmUuanNcIjtcbmltcG9ydCB7IE1lc2gsIFBvc2l0aW9uMkF0dHJpYnV0ZSwgQ29sb3JBdHRyaWJ1dGUsIFRleENvb3JkQXR0cmlidXRlLCBDb2xvcjJBdHRyaWJ1dGUgfSBmcm9tIFwiLi9NZXNoLmpzXCI7XG5pbXBvcnQgeyBTaGFkZXIgfSBmcm9tIFwiLi9TaGFkZXIuanNcIjtcbmltcG9ydCB7IE1hbmFnZWRXZWJHTFJlbmRlcmluZ0NvbnRleHQgfSBmcm9tIFwiLi9XZWJHTC5qc1wiO1xuXG5jb25zdCBHTF9PTkUgPSAxO1xuY29uc3QgR0xfT05FX01JTlVTX1NSQ19DT0xPUiA9IDB4MDMwMTtcbmNvbnN0IEdMX1NSQ19BTFBIQSA9IDB4MDMwMjtcbmNvbnN0IEdMX09ORV9NSU5VU19TUkNfQUxQSEEgPSAweDAzMDM7XG5jb25zdCBHTF9PTkVfTUlOVVNfRFNUX0FMUEhBID0gMHgwMzA1O1xuY29uc3QgR0xfRFNUX0NPTE9SID0gMHgwMzA2O1xuXG5leHBvcnQgY2xhc3MgUG9seWdvbkJhdGNoZXIgaW1wbGVtZW50cyBEaXNwb3NhYmxlIHtcblx0cHVibGljIHN0YXRpYyBkaXNhYmxlQ3VsbGluZyA9IGZhbHNlO1xuXG5cdHByaXZhdGUgY29udGV4dDogTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dDtcblx0cHJpdmF0ZSBkcmF3Q2FsbHMgPSAwO1xuXHRwcml2YXRlIHN0YXRpYyBnbG9iYWxEcmF3Q2FsbHMgPSAwO1xuXHRpc0RyYXdpbmcgPSBmYWxzZTtcblx0cHJpdmF0ZSBtZXNoOiBNZXNoO1xuXHRwcml2YXRlIHNoYWRlcjogU2hhZGVyIHwgbnVsbCA9IG51bGw7XG5cdHByaXZhdGUgbGFzdFRleHR1cmU6IEdMVGV4dHVyZSB8IG51bGwgPSBudWxsO1xuXHRwcml2YXRlIHZlcnRpY2VzTGVuZ3RoID0gMDtcblx0cHJpdmF0ZSBpbmRpY2VzTGVuZ3RoID0gMDtcblx0cHJpdmF0ZSBzcmNDb2xvckJsZW5kOiBudW1iZXI7XG5cdHByaXZhdGUgc3JjQWxwaGFCbGVuZDogbnVtYmVyO1xuXHRwcml2YXRlIGRzdEJsZW5kOiBudW1iZXI7XG5cdHByaXZhdGUgY3VsbFdhc0VuYWJsZWQgPSBmYWxzZTtcblxuXHRjb25zdHJ1Y3RvciAoY29udGV4dDogTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dCB8IFdlYkdMUmVuZGVyaW5nQ29udGV4dCwgdHdvQ29sb3JUaW50OiBib29sZWFuID0gdHJ1ZSwgbWF4VmVydGljZXM6IG51bWJlciA9IDEwOTIwKSB7XG5cdFx0aWYgKG1heFZlcnRpY2VzID4gMTA5MjApIHRocm93IG5ldyBFcnJvcihcIkNhbid0IGhhdmUgbW9yZSB0aGFuIDEwOTIwIHRyaWFuZ2xlcyBwZXIgYmF0Y2g6IFwiICsgbWF4VmVydGljZXMpO1xuXHRcdHRoaXMuY29udGV4dCA9IGNvbnRleHQgaW5zdGFuY2VvZiBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0ID8gY29udGV4dCA6IG5ldyBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0KGNvbnRleHQpO1xuXHRcdGxldCBhdHRyaWJ1dGVzID0gdHdvQ29sb3JUaW50ID9cblx0XHRcdFtuZXcgUG9zaXRpb24yQXR0cmlidXRlKCksIG5ldyBDb2xvckF0dHJpYnV0ZSgpLCBuZXcgVGV4Q29vcmRBdHRyaWJ1dGUoKSwgbmV3IENvbG9yMkF0dHJpYnV0ZSgpXSA6XG5cdFx0XHRbbmV3IFBvc2l0aW9uMkF0dHJpYnV0ZSgpLCBuZXcgQ29sb3JBdHRyaWJ1dGUoKSwgbmV3IFRleENvb3JkQXR0cmlidXRlKCldO1xuXHRcdHRoaXMubWVzaCA9IG5ldyBNZXNoKGNvbnRleHQsIGF0dHJpYnV0ZXMsIG1heFZlcnRpY2VzLCBtYXhWZXJ0aWNlcyAqIDMpO1xuXHRcdGxldCBnbCA9IHRoaXMuY29udGV4dC5nbDtcblx0XHR0aGlzLnNyY0NvbG9yQmxlbmQgPSBnbC5TUkNfQUxQSEE7XG5cdFx0dGhpcy5zcmNBbHBoYUJsZW5kID0gZ2wuT05FO1xuXHRcdHRoaXMuZHN0QmxlbmQgPSBnbC5PTkVfTUlOVVNfU1JDX0FMUEhBO1xuXHR9XG5cblx0YmVnaW4gKHNoYWRlcjogU2hhZGVyKSB7XG5cdFx0aWYgKHRoaXMuaXNEcmF3aW5nKSB0aHJvdyBuZXcgRXJyb3IoXCJQb2x5Z29uQmF0Y2ggaXMgYWxyZWFkeSBkcmF3aW5nLiBDYWxsIFBvbHlnb25CYXRjaC5lbmQoKSBiZWZvcmUgY2FsbGluZyBQb2x5Z29uQmF0Y2guYmVnaW4oKVwiKTtcblx0XHR0aGlzLmRyYXdDYWxscyA9IDA7XG5cdFx0dGhpcy5zaGFkZXIgPSBzaGFkZXI7XG5cdFx0dGhpcy5sYXN0VGV4dHVyZSA9IG51bGw7XG5cdFx0dGhpcy5pc0RyYXdpbmcgPSB0cnVlO1xuXG5cdFx0bGV0IGdsID0gdGhpcy5jb250ZXh0LmdsO1xuXHRcdGdsLmVuYWJsZShnbC5CTEVORCk7XG5cdFx0Z2wuYmxlbmRGdW5jU2VwYXJhdGUodGhpcy5zcmNDb2xvckJsZW5kLCB0aGlzLmRzdEJsZW5kLCB0aGlzLnNyY0FscGhhQmxlbmQsIHRoaXMuZHN0QmxlbmQpO1xuXG5cdFx0aWYgKFBvbHlnb25CYXRjaGVyLmRpc2FibGVDdWxsaW5nKSB7XG5cdFx0XHR0aGlzLmN1bGxXYXNFbmFibGVkID0gZ2wuaXNFbmFibGVkKGdsLkNVTExfRkFDRSk7XG5cdFx0XHRpZiAodGhpcy5jdWxsV2FzRW5hYmxlZCkgZ2wuZGlzYWJsZShnbC5DVUxMX0ZBQ0UpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgc3RhdGljIGJsZW5kTW9kZXNHTDogeyBzcmNSZ2I6IG51bWJlciwgc3JjUmdiUG1hOiBudW1iZXIsIGRzdFJnYjogbnVtYmVyLCBzcmNBbHBoYTogbnVtYmVyIH1bXSA9IFtcblx0XHR7IHNyY1JnYjogR0xfU1JDX0FMUEhBLCBzcmNSZ2JQbWE6IEdMX09ORSwgZHN0UmdiOiBHTF9PTkVfTUlOVVNfU1JDX0FMUEhBLCBzcmNBbHBoYTogR0xfT05FIH0sXG5cdFx0eyBzcmNSZ2I6IEdMX1NSQ19BTFBIQSwgc3JjUmdiUG1hOiBHTF9PTkUsIGRzdFJnYjogR0xfT05FLCBzcmNBbHBoYTogR0xfT05FIH0sXG5cdFx0eyBzcmNSZ2I6IEdMX0RTVF9DT0xPUiwgc3JjUmdiUG1hOiBHTF9EU1RfQ09MT1IsIGRzdFJnYjogR0xfT05FX01JTlVTX1NSQ19BTFBIQSwgc3JjQWxwaGE6IEdMX09ORSB9LFxuXHRcdHsgc3JjUmdiOiBHTF9PTkUsIHNyY1JnYlBtYTogR0xfT05FLCBkc3RSZ2I6IEdMX09ORV9NSU5VU19TUkNfQ09MT1IsIHNyY0FscGhhOiBHTF9PTkUgfVxuXHRdXG5cblx0c2V0QmxlbmRNb2RlIChibGVuZE1vZGU6IEJsZW5kTW9kZSwgcHJlbXVsdGlwbGllZEFscGhhOiBib29sZWFuKSB7XG5cdFx0Y29uc3QgYmxlbmRNb2RlR0wgPSBQb2x5Z29uQmF0Y2hlci5ibGVuZE1vZGVzR0xbYmxlbmRNb2RlXTtcblx0XHRjb25zdCBzcmNDb2xvckJsZW5kID0gcHJlbXVsdGlwbGllZEFscGhhID8gYmxlbmRNb2RlR0wuc3JjUmdiUG1hIDogYmxlbmRNb2RlR0wuc3JjUmdiO1xuXHRcdGNvbnN0IHNyY0FscGhhQmxlbmQgPSBibGVuZE1vZGVHTC5zcmNBbHBoYTtcblx0XHRjb25zdCBkc3RCbGVuZCA9IGJsZW5kTW9kZUdMLmRzdFJnYjtcblxuXHRcdGlmICh0aGlzLnNyY0NvbG9yQmxlbmQgPT0gc3JjQ29sb3JCbGVuZCAmJiB0aGlzLnNyY0FscGhhQmxlbmQgPT0gc3JjQWxwaGFCbGVuZCAmJiB0aGlzLmRzdEJsZW5kID09IGRzdEJsZW5kKSByZXR1cm47XG5cdFx0dGhpcy5zcmNDb2xvckJsZW5kID0gc3JjQ29sb3JCbGVuZDtcblx0XHR0aGlzLnNyY0FscGhhQmxlbmQgPSBzcmNBbHBoYUJsZW5kO1xuXHRcdHRoaXMuZHN0QmxlbmQgPSBkc3RCbGVuZDtcblx0XHRpZiAodGhpcy5pc0RyYXdpbmcpIHtcblx0XHRcdHRoaXMuZmx1c2goKTtcblx0XHR9XG5cdFx0bGV0IGdsID0gdGhpcy5jb250ZXh0LmdsO1xuXHRcdGdsLmJsZW5kRnVuY1NlcGFyYXRlKHNyY0NvbG9yQmxlbmQsIGRzdEJsZW5kLCBzcmNBbHBoYUJsZW5kLCBkc3RCbGVuZCk7XG5cdH1cblxuXHRkcmF3ICh0ZXh0dXJlOiBHTFRleHR1cmUsIHZlcnRpY2VzOiBBcnJheUxpa2U8bnVtYmVyPiwgaW5kaWNlczogQXJyYXk8bnVtYmVyPikge1xuXHRcdGlmICh0ZXh0dXJlICE9IHRoaXMubGFzdFRleHR1cmUpIHtcblx0XHRcdHRoaXMuZmx1c2goKTtcblx0XHRcdHRoaXMubGFzdFRleHR1cmUgPSB0ZXh0dXJlO1xuXHRcdH0gZWxzZSBpZiAodGhpcy52ZXJ0aWNlc0xlbmd0aCArIHZlcnRpY2VzLmxlbmd0aCA+IHRoaXMubWVzaC5nZXRWZXJ0aWNlcygpLmxlbmd0aCB8fFxuXHRcdFx0dGhpcy5pbmRpY2VzTGVuZ3RoICsgaW5kaWNlcy5sZW5ndGggPiB0aGlzLm1lc2guZ2V0SW5kaWNlcygpLmxlbmd0aCkge1xuXHRcdFx0dGhpcy5mbHVzaCgpO1xuXHRcdH1cblxuXHRcdGxldCBpbmRleFN0YXJ0ID0gdGhpcy5tZXNoLm51bVZlcnRpY2VzKCk7XG5cdFx0dGhpcy5tZXNoLmdldFZlcnRpY2VzKCkuc2V0KHZlcnRpY2VzLCB0aGlzLnZlcnRpY2VzTGVuZ3RoKTtcblx0XHR0aGlzLnZlcnRpY2VzTGVuZ3RoICs9IHZlcnRpY2VzLmxlbmd0aDtcblx0XHR0aGlzLm1lc2guc2V0VmVydGljZXNMZW5ndGgodGhpcy52ZXJ0aWNlc0xlbmd0aClcblxuXHRcdGxldCBpbmRpY2VzQXJyYXkgPSB0aGlzLm1lc2guZ2V0SW5kaWNlcygpO1xuXHRcdGZvciAobGV0IGkgPSB0aGlzLmluZGljZXNMZW5ndGgsIGogPSAwOyBqIDwgaW5kaWNlcy5sZW5ndGg7IGkrKywgaisrKVxuXHRcdFx0aW5kaWNlc0FycmF5W2ldID0gaW5kaWNlc1tqXSArIGluZGV4U3RhcnQ7XG5cdFx0dGhpcy5pbmRpY2VzTGVuZ3RoICs9IGluZGljZXMubGVuZ3RoO1xuXHRcdHRoaXMubWVzaC5zZXRJbmRpY2VzTGVuZ3RoKHRoaXMuaW5kaWNlc0xlbmd0aCk7XG5cdH1cblxuXHRmbHVzaCAoKSB7XG5cdFx0aWYgKHRoaXMudmVydGljZXNMZW5ndGggPT0gMCkgcmV0dXJuO1xuXHRcdGlmICghdGhpcy5sYXN0VGV4dHVyZSkgdGhyb3cgbmV3IEVycm9yKFwiTm8gdGV4dHVyZSBzZXQuXCIpO1xuXHRcdGlmICghdGhpcy5zaGFkZXIpIHRocm93IG5ldyBFcnJvcihcIk5vIHNoYWRlciBzZXQuXCIpO1xuXHRcdHRoaXMubGFzdFRleHR1cmUuYmluZCgpO1xuXHRcdHRoaXMubWVzaC5kcmF3KHRoaXMuc2hhZGVyLCB0aGlzLmNvbnRleHQuZ2wuVFJJQU5HTEVTKTtcblxuXHRcdHRoaXMudmVydGljZXNMZW5ndGggPSAwO1xuXHRcdHRoaXMuaW5kaWNlc0xlbmd0aCA9IDA7XG5cdFx0dGhpcy5tZXNoLnNldFZlcnRpY2VzTGVuZ3RoKDApO1xuXHRcdHRoaXMubWVzaC5zZXRJbmRpY2VzTGVuZ3RoKDApO1xuXHRcdHRoaXMuZHJhd0NhbGxzKys7XG5cdFx0UG9seWdvbkJhdGNoZXIuZ2xvYmFsRHJhd0NhbGxzKys7XG5cdH1cblxuXHRlbmQgKCkge1xuXHRcdGlmICghdGhpcy5pc0RyYXdpbmcpIHRocm93IG5ldyBFcnJvcihcIlBvbHlnb25CYXRjaCBpcyBub3QgZHJhd2luZy4gQ2FsbCBQb2x5Z29uQmF0Y2guYmVnaW4oKSBiZWZvcmUgY2FsbGluZyBQb2x5Z29uQmF0Y2guZW5kKClcIik7XG5cdFx0aWYgKHRoaXMudmVydGljZXNMZW5ndGggPiAwIHx8IHRoaXMuaW5kaWNlc0xlbmd0aCA+IDApIHRoaXMuZmx1c2goKTtcblx0XHR0aGlzLnNoYWRlciA9IG51bGw7XG5cdFx0dGhpcy5sYXN0VGV4dHVyZSA9IG51bGw7XG5cdFx0dGhpcy5pc0RyYXdpbmcgPSBmYWxzZTtcblxuXHRcdGxldCBnbCA9IHRoaXMuY29udGV4dC5nbDtcblx0XHRnbC5kaXNhYmxlKGdsLkJMRU5EKTtcblx0XHRpZiAoUG9seWdvbkJhdGNoZXIuZGlzYWJsZUN1bGxpbmcpIHtcblx0XHRcdGlmICh0aGlzLmN1bGxXYXNFbmFibGVkKSBnbC5lbmFibGUoZ2wuQ1VMTF9GQUNFKTtcblx0XHR9XG5cdH1cblxuXHRnZXREcmF3Q2FsbHMgKCkge1xuXHRcdHJldHVybiB0aGlzLmRyYXdDYWxscztcblx0fVxuXG5cdHN0YXRpYyBnZXRBbmRSZXNldEdsb2JhbERyYXdDYWxscyAoKSB7XG5cdFx0bGV0IHJlc3VsdCA9IFBvbHlnb25CYXRjaGVyLmdsb2JhbERyYXdDYWxscztcblx0XHRQb2x5Z29uQmF0Y2hlci5nbG9iYWxEcmF3Q2FsbHMgPSAwO1xuXHRcdHJldHVybiByZXN1bHQ7XG5cdH1cblxuXHRkaXNwb3NlICgpIHtcblx0XHR0aGlzLm1lc2guZGlzcG9zZSgpO1xuXHR9XG59XG4iXX0=
@@ -1,16 +1,16 @@
1
1
  /******************************************************************************
2
2
  * Spine Runtimes License Agreement
3
- * Last updated July 28, 2023. Replaces all prior versions.
3
+ * Last updated April 5, 2025. Replaces all prior versions.
4
4
  *
5
- * Copyright (c) 2013-2023, Esoteric Software LLC
5
+ * Copyright (c) 2013-2025, Esoteric Software LLC
6
6
  *
7
7
  * Integration of the Spine Runtimes into software or otherwise creating
8
8
  * derivative works of the Spine Runtimes is permitted under the terms and
9
9
  * conditions of Section 2 of the Spine Editor License Agreement:
10
10
  * http://esotericsoftware.com/spine-editor-license
11
11
  *
12
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
13
- * otherwise create derivative works of the Spine Runtimes (collectively,
12
+ * Otherwise, it is permitted to integrate the Spine Runtimes into software
13
+ * or otherwise create derivative works of the Spine Runtimes (collectively,
14
14
  * "Products"), provided that each user of the Products must obtain their own
15
15
  * Spine Editor license and redistribution of the Products in any form must
16
16
  * include this license and copyright notice.
@@ -23,8 +23,8 @@
23
23
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
24
24
  * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
25
25
  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
27
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27
+ * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
28
  *****************************************************************************/
29
29
  import { Color, Disposable, Skeleton, TextureAtlasRegion } from "@esotericsoftware/spine-core";
30
30
  import { OrthoCamera } from "./Camera.js";
@@ -1,16 +1,16 @@
1
1
  /******************************************************************************
2
2
  * Spine Runtimes License Agreement
3
- * Last updated July 28, 2023. Replaces all prior versions.
3
+ * Last updated April 5, 2025. Replaces all prior versions.
4
4
  *
5
- * Copyright (c) 2013-2023, Esoteric Software LLC
5
+ * Copyright (c) 2013-2025, Esoteric Software LLC
6
6
  *
7
7
  * Integration of the Spine Runtimes into software or otherwise creating
8
8
  * derivative works of the Spine Runtimes is permitted under the terms and
9
9
  * conditions of Section 2 of the Spine Editor License Agreement:
10
10
  * http://esotericsoftware.com/spine-editor-license
11
11
  *
12
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
13
- * otherwise create derivative works of the Spine Runtimes (collectively,
12
+ * Otherwise, it is permitted to integrate the Spine Runtimes into software
13
+ * or otherwise create derivative works of the Spine Runtimes (collectively,
14
14
  * "Products"), provided that each user of the Products must obtain their own
15
15
  * Spine Editor license and redistribution of the Products in any form must
16
16
  * include this license and copyright notice.
@@ -23,8 +23,8 @@
23
23
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
24
24
  * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
25
25
  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
27
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27
+ * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
28
  *****************************************************************************/
29
29
  import { Color, MathUtils } from "@esotericsoftware/spine-core";
30
30
  import { OrthoCamera } from "./Camera.js";
@@ -484,4 +484,4 @@ export var ResizeMode;
484
484
  ResizeMode[ResizeMode["Expand"] = 1] = "Expand";
485
485
  ResizeMode[ResizeMode["Fit"] = 2] = "Fit";
486
486
  })(ResizeMode || (ResizeMode = {}));
487
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVSZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9TY2VuZVJlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0VBMkIrRTtBQUUvRSxPQUFPLEVBQUUsS0FBSyxFQUF3QixTQUFTLEVBQXNCLE1BQU0sOEJBQThCLENBQUM7QUFDMUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFxQixNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxRCxDQUFDO0FBRUQsTUFBTSxJQUFJLEdBQUc7SUFDWixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN0QixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN0QixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN0QixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztDQUN0QixDQUFDO0FBQ0YsTUFBTSxjQUFjLEdBQUcsQ0FB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QUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDYixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsYUFBYSxDQUFFLE9BQWtCLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxLQUFhLEVBQUUsTUFBYyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxLQUFhO1FBQ2xKLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLO1lBQUUsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFF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RUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELFVBQVUsQ0FBRSxNQUEwQixFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxLQUFhO1FBQ3pHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLO1lBQUUsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDYixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQVksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxJQUFJLENBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEtBQWEsRUFBRSxNQUFjO1FBQ2hGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsUUFBUSxDQUFFLE1BQWUsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxLQUFhLEVBQUUsTUFBYyxFQUFFLE1BQWM7UUFDN0ksSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELElBQUksQ0FBRSxNQUFlLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxLQUFhLEVBQUUsTUFBYyxFQUFFLE1BQWMsRUFBRSxNQUFjO1FBQ2pMLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxJQUFJLENBQUUsTUFBZSxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxLQUFhO1FBQ3hGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFFBQVEsQ0FBRSxNQUFlLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEtBQWEsRUFBRSxLQUFhO1FBQ3RHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxPQUFPLENBQUUsZUFBa0MsRUFBRSxNQUFjLEVBQUUsS0FBYSxFQUFFLEtBQWE7UUFDeEYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELE1BQU0sQ0FBRSxNQUFlLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxNQUFjLEVBQUUsS0FBYSxFQUFFLFdBQW1CLENBQUM7UUFDakcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsS0FBSyxDQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsR0FBVyxFQUFFLEdBQVcsRUFBRSxHQUFXLEVBQUUsR0FBVyxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsUUFBZ0IsRUFBRSxLQUFhO1FBQ3pJLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxHQUFHO1FBQ0YsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLElBQUksQ0FBQyxPQUFPO1lBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQzthQUN4RCxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssSUFBSSxDQUFDLE1BQU07WUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxNQUFNLENBQUUsVUFBc0I7UUFDN0IsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN6QixJQUFJLEdBQUcsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFFOUMsSUFBSSxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzdDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU1RCw4RUFBOEU7UUFDOUUsSUFBSSxVQUFVLEtBQUssVUFBVSxDQUFDLE1BQU07WUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQzFCLElBQUksVUFBVSxLQUFLLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN4QyxJQUFJLFdBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQzdELElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztZQUN2RixJQUFJLFdBQVcsR0FBRyxZQUFZLEdBQUcsV0FBVyxDQUFDO1lBQzdDLElBQUksV0FBVyxHQUFHLFlBQVksR0FBRyxXQUFXLENBQUM7WUFDN0MsSUFBSSxLQUFLLEdBQUcsV0FBVyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztZQUNoRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEdBQUcsS0FBSyxFQUFFLFlBQVksR0FBRyxLQUFLLENBQUMsQ0FBQztRQUNwRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU8sY0FBYyxDQUFFLFFBQWdFO1FBQ3ZGLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxRQUFRO1lBQUUsT0FBTztRQUM3QyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDWCxJQUFJLFFBQVEsWUFBWSxjQUFjLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDeEYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDcEMsQ0FBQzthQUFNLElBQUksUUFBUSxZQUFZLGFBQWEsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2RixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ25DLENBQUM7O1lBQ0EsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUM7SUFDbkQsQ0FBQztDQUNEO0FBRUQsTUFBTSxDQUFOLElBQVksVUFJWDtBQUpELFdBQVksVUFBVTtJQUNyQixpREFBTyxDQUFBO0lBQ1AsK0NBQU0sQ0FBQTtJQUNOLHlDQUFHLENBQUE7QUFDSixDQUFDLEVBSlcsVUFBVSxLQUFWLFVBQVUsUUFJckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBTcGluZSBSdW50aW1lcyBMaWNlbnNlIEFncmVlbWVudFxuICogTGFzdCB1cGRhdGVkIEp1bHkgMjgsIDIwMjMuIFJlcGxhY2VzIGFsbCBwcmlvciB2ZXJzaW9ucy5cbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtMjAyMywgRXNvdGVyaWMgU29mdHdhcmUgTExDXG4gKlxuICogSW50ZWdyYXRpb24gb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmUgb3Igb3RoZXJ3aXNlIGNyZWF0aW5nXG4gKiBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpcyBwZXJtaXR0ZWQgdW5kZXIgdGhlIHRlcm1zIGFuZFxuICogY29uZGl0aW9ucyBvZiBTZWN0aW9uIDIgb2YgdGhlIFNwaW5lIEVkaXRvciBMaWNlbnNlIEFncmVlbWVudDpcbiAqIGh0dHA6Ly9lc290ZXJpY3NvZnR3YXJlLmNvbS9zcGluZS1lZGl0b3ItbGljZW5zZVxuICpcbiAqIE90aGVyd2lzZSwgaXQgaXMgcGVybWl0dGVkIHRvIGludGVncmF0ZSB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZSBvclxuICogb3RoZXJ3aXNlIGNyZWF0ZSBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyAoY29sbGVjdGl2ZWx5LFxuICogXCJQcm9kdWN0c1wiKSwgcHJvdmlkZWQgdGhhdCBlYWNoIHVzZXIgb2YgdGhlIFByb2R1Y3RzIG11c3Qgb2J0YWluIHRoZWlyIG93blxuICogU3BpbmUgRWRpdG9yIGxpY2Vuc2UgYW5kIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9kdWN0cyBpbiBhbnkgZm9ybSBtdXN0XG4gKiBpbmNsdWRlIHRoaXMgbGljZW5zZSBhbmQgY29weXJpZ2h0IG5vdGljZS5cbiAqXG4gKiBUSEUgU1BJTkUgUlVOVElNRVMgQVJFIFBST1ZJREVEIEJZIEVTT1RFUklDIFNPRlRXQVJFIExMQyBcIkFTIElTXCIgQU5EIEFOWVxuICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRFxuICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRVxuICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgRVNPVEVSSUMgU09GVFdBUkUgTExDIEJFIExJQUJMRSBGT1IgQU5ZXG4gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFU1xuICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTLFxuICogQlVTSU5FU1MgSU5URVJSVVBUSU9OLCBPUiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUykgSE9XRVZFUiBDQVVTRUQgQU5EXG4gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVFxuICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRIRVxuICogU1BJTkUgUlVOVElNRVMsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbmltcG9ydCB7IENvbG9yLCBEaXNwb3NhYmxlLCBTa2VsZXRvbiwgTWF0aFV0aWxzLCBUZXh0dXJlQXRsYXNSZWdpb24gfSBmcm9tIFwiQGVzb3Rlcmljc29mdHdhcmUvc3BpbmUtY29yZVwiO1xuaW1wb3J0IHsgT3J0aG9DYW1lcmEgfSBmcm9tIFwiLi9DYW1lcmEuanNcIjtcbmltcG9ydCB7IEdMVGV4dHVyZSB9IGZyb20gXCIuL0dMVGV4dHVyZS5qc1wiO1xuaW1wb3J0IHsgUG9seWdvbkJhdGNoZXIgfSBmcm9tIFwiLi9Qb2x5Z29uQmF0Y2hlci5qc1wiO1xuaW1wb3J0IHsgU2hhZGVyIH0gZnJvbSBcIi4vU2hhZGVyLmpzXCI7XG5pbXBvcnQgeyBTaGFwZVJlbmRlcmVyIH0gZnJvbSBcIi4vU2hhcGVSZW5kZXJlci5qc1wiO1xuaW1wb3J0IHsgU2tlbGV0b25EZWJ1Z1JlbmRlcmVyIH0gZnJvbSBcIi4vU2tlbGV0b25EZWJ1Z1JlbmRlcmVyLmpzXCI7XG5pbXBvcnQgeyBTa2VsZXRvblJlbmRlcmVyLCBWZXJ0ZXhUcmFuc2Zvcm1lciB9IGZyb20gXCIuL1NrZWxldG9uUmVuZGVyZXIuanNcIjtcbmltcG9ydCB7IE1hbmFnZWRXZWJHTFJlbmRlcmluZ0NvbnRleHQgfSBmcm9tIFwiLi9XZWJHTC5qc1wiO1xuO1xuXG5jb25zdCBxdWFkID0gW1xuXHQwLCAwLCAxLCAxLCAxLCAxLCAwLCAwLFxuXHQwLCAwLCAxLCAxLCAxLCAxLCAwLCAwLFxuXHQwLCAwLCAxLCAxLCAxLCAxLCAwLCAwLFxuXHQwLCAwLCAxLCAxLCAxLCAxLCAwLCAwLFxuXTtcbmNvbnN0IFFVQURfVFJJQU5HTEVTID0gWzAsIDEsIDIsIDIsIDMsIDBdO1xuY29uc3QgV0hJVEUgPSBuZXcgQ29sb3IoMSwgMSwgMSwgMSk7XG5cbmV4cG9ydCBjbGFzcyBTY2VuZVJlbmRlcmVyIGltcGxlbWVudHMgRGlzcG9zYWJsZSB7XG5cdGNvbnRleHQ6IE1hbmFnZWRXZWJHTFJlbmRlcmluZ0NvbnRleHQ7XG5cdGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQ7XG5cdGNhbWVyYTogT3J0aG9DYW1lcmE7XG5cdGJhdGNoZXI6IFBvbHlnb25CYXRjaGVyO1xuXHRwcml2YXRlIHR3b0NvbG9yVGludCA9IGZhbHNlO1xuXHRwcml2YXRlIGJhdGNoZXJTaGFkZXI6IFNoYWRlcjtcblx0cHJpdmF0ZSBzaGFwZXM6IFNoYXBlUmVuZGVyZXI7XG5cdHByaXZhdGUgc2hhcGVzU2hhZGVyOiBTaGFkZXI7XG5cdHByaXZhdGUgYWN0aXZlUmVuZGVyZXI6IFBvbHlnb25CYXRjaGVyIHwgU2hhcGVSZW5kZXJlciB8IFNrZWxldG9uRGVidWdSZW5kZXJlciB8IG51bGwgPSBudWxsO1xuXHRza2VsZXRvblJlbmRlcmVyOiBTa2VsZXRvblJlbmRlcmVyO1xuXHRza2VsZXRvbkRlYnVnUmVuZGVyZXI6IFNrZWxldG9uRGVidWdSZW5kZXJlcjtcblxuXHRjb25zdHJ1Y3RvciAoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCwgY29udGV4dDogTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dCB8IFdlYkdMUmVuZGVyaW5nQ29udGV4dCwgdHdvQ29sb3JUaW50OiBib29sZWFuID0gdHJ1ZSkge1xuXHRcdHRoaXMuY2FudmFzID0gY2FudmFzO1xuXHRcdHRoaXMuY29udGV4dCA9IGNvbnRleHQgaW5zdGFuY2VvZiBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0ID8gY29udGV4dCA6IG5ldyBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0KGNvbnRleHQpO1xuXHRcdHRoaXMudHdvQ29sb3JUaW50ID0gdHdvQ29sb3JUaW50O1xuXHRcdHRoaXMuY2FtZXJhID0gbmV3IE9ydGhvQ2FtZXJhKGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG5cdFx0dGhpcy5iYXRjaGVyU2hhZGVyID0gdHdvQ29sb3JUaW50ID8gU2hhZGVyLm5ld1R3b0NvbG9yZWRUZXh0dXJlZCh0aGlzLmNvbnRleHQpIDogU2hhZGVyLm5ld0NvbG9yZWRUZXh0dXJlZCh0aGlzLmNvbnRleHQpO1xuXHRcdHRoaXMuYmF0Y2hlciA9IG5ldyBQb2x5Z29uQmF0Y2hlcih0aGlzLmNvbnRleHQsIHR3b0NvbG9yVGludCk7XG5cdFx0dGhpcy5zaGFwZXNTaGFkZXIgPSBTaGFkZXIubmV3Q29sb3JlZCh0aGlzLmNvbnRleHQpO1xuXHRcdHRoaXMuc2hhcGVzID0gbmV3IFNoYXBlUmVuZGVyZXIodGhpcy5jb250ZXh0KTtcblx0XHR0aGlzLnNrZWxldG9uUmVuZGVyZXIgPSBuZXcgU2tlbGV0b25SZW5kZXJlcih0aGlzLmNvbnRleHQsIHR3b0NvbG9yVGludCk7XG5cdFx0dGhpcy5za2VsZXRvbkRlYnVnUmVuZGVyZXIgPSBuZXcgU2tlbGV0b25EZWJ1Z1JlbmRlcmVyKHRoaXMuY29udGV4dCk7XG5cdH1cblxuXHRkaXNwb3NlICgpIHtcblx0XHR0aGlzLmJhdGNoZXIuZGlzcG9zZSgpO1xuXHRcdHRoaXMuYmF0Y2hlclNoYWRlci5kaXNwb3NlKCk7XG5cdFx0dGhpcy5zaGFwZXMuZGlzcG9zZSgpO1xuXHRcdHRoaXMuc2hhcGVzU2hhZGVyLmRpc3Bvc2UoKTtcblx0XHR0aGlzLnNrZWxldG9uRGVidWdSZW5kZXJlci5kaXNwb3NlKCk7XG5cdH1cblxuXHRiZWdpbiAoKSB7XG5cdFx0dGhpcy5jYW1lcmEudXBkYXRlKCk7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLmJhdGNoZXIpO1xuXHR9XG5cblx0ZHJhd1NrZWxldG9uIChza2VsZXRvbjogU2tlbGV0b24sIHByZW11bHRpcGxpZWRBbHBoYSA9IGZhbHNlLCBzbG90UmFuZ2VTdGFydCA9IC0xLCBzbG90UmFuZ2VFbmQgPSAtMSwgdHJhbnNmb3JtOiBWZXJ0ZXhUcmFuc2Zvcm1lciB8IG51bGwgPSBudWxsKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLmJhdGNoZXIpO1xuXHRcdHRoaXMuc2tlbGV0b25SZW5kZXJlci5wcmVtdWx0aXBsaWVkQWxwaGEgPSBwcmVtdWx0aXBsaWVkQWxwaGE7XG5cdFx0dGhpcy5za2VsZXRvblJlbmRlcmVyLmRyYXcodGhpcy5iYXRjaGVyLCBza2VsZXRvbiwgc2xvdFJhbmdlU3RhcnQsIHNsb3RSYW5nZUVuZCwgdHJhbnNmb3JtKTtcblx0fVxuXG5cdGRyYXdTa2VsZXRvbkRlYnVnIChza2VsZXRvbjogU2tlbGV0b24sIHByZW11bHRpcGxpZWRBbHBoYSA9IGZhbHNlLCBpZ25vcmVkQm9uZXM/OiBBcnJheTxzdHJpbmc+KSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLnNoYXBlcyk7XG5cdFx0dGhpcy5za2VsZXRvbkRlYnVnUmVuZGVyZXIucHJlbXVsdGlwbGllZEFscGhhID0gcHJlbXVsdGlwbGllZEFscGhhO1xuXHRcdHRoaXMuc2tlbGV0b25EZWJ1Z1JlbmRlcmVyLmRyYXcodGhpcy5zaGFwZXMsIHNrZWxldG9uLCBpZ25vcmVkQm9uZXMpO1xuXHR9XG5cblx0ZHJhd1RleHR1cmUgKHRleHR1cmU6IEdMVGV4dHVyZSwgeDogbnVtYmVyLCB5OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLmJhdGNoZXIpO1xuXHRcdGlmICghY29sb3IpIGNvbG9yID0gV0hJVEU7XG5cdFx0dmFyIGkgPSAwO1xuXHRcdHF1YWRbaSsrXSA9IHg7XG5cdFx0cXVhZFtpKytdID0geTtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0cXVhZFtpKytdID0gMTtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHggKyB3aWR0aDtcblx0XHRxdWFkW2krK10gPSB5O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gMTtcblx0XHRxdWFkW2krK10gPSAxO1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHR9XG5cdFx0cXVhZFtpKytdID0geCArIHdpZHRoO1xuXHRcdHF1YWRbaSsrXSA9IHkgKyBoZWlnaHQ7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSAxO1xuXHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4O1xuXHRcdHF1YWRbaSsrXSA9IHkgKyBoZWlnaHQ7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSAwO1xuXHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2ldID0gMDtcblx0XHR9XG5cdFx0dGhpcy5iYXRjaGVyLmRyYXcodGV4dHVyZSwgcXVhZCwgUVVBRF9UUklBTkdMRVMpO1xuXHR9XG5cblx0ZHJhd1RleHR1cmVVViAodGV4dHVyZTogR0xUZXh0dXJlLCB4OiBudW1iZXIsIHk6IG51bWJlciwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIHU6IG51bWJlciwgdjogbnVtYmVyLCB1MjogbnVtYmVyLCB2MjogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLmJhdGNoZXIpO1xuXHRcdGlmICghY29sb3IpIGNvbG9yID0gV0hJVEU7XG5cdFx0dmFyIGkgPSAwO1xuXHRcdHF1YWRbaSsrXSA9IHg7XG5cdFx0cXVhZFtpKytdID0geTtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IHU7XG5cdFx0cXVhZFtpKytdID0gdjtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHggKyB3aWR0aDtcblx0XHRxdWFkW2krK10gPSB5O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gdTI7XG5cdFx0cXVhZFtpKytdID0gdjtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHggKyB3aWR0aDtcblx0XHRxdWFkW2krK10gPSB5ICsgaGVpZ2h0O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gdTI7XG5cdFx0cXVhZFtpKytdID0gdjI7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4O1xuXHRcdHF1YWRbaSsrXSA9IHkgKyBoZWlnaHQ7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSB1O1xuXHRcdHF1YWRbaSsrXSA9IHYyO1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpXSA9IDA7XG5cdFx0fVxuXHRcdHRoaXMuYmF0Y2hlci5kcmF3KHRleHR1cmUsIHF1YWQsIFFVQURfVFJJQU5HTEVTKTtcblx0fVxuXG5cdGRyYXdUZXh0dXJlUm90YXRlZCAodGV4dHVyZTogR0xUZXh0dXJlLCB4OiBudW1iZXIsIHk6IG51bWJlciwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIHBpdm90WDogbnVtYmVyLCBwaXZvdFk6IG51bWJlciwgYW5nbGU6IG51bWJlciwgY29sb3I/OiBDb2xvcikge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5iYXRjaGVyKTtcblx0XHRpZiAoIWNvbG9yKSBjb2xvciA9IFdISVRFO1xuXG5cdFx0Ly8gYm90dG9tIGxlZnQgYW5kIHRvcCByaWdodCBjb3JuZXIgcG9pbnRzIHJlbGF0aXZlIHRvIG9yaWdpblxuXHRcdGxldCB3b3JsZE9yaWdpblggPSB4ICsgcGl2b3RYO1xuXHRcdGxldCB3b3JsZE9yaWdpblkgPSB5ICsgcGl2b3RZO1xuXHRcdGxldCBmeCA9IC1waXZvdFg7XG5cdFx0bGV0IGZ5ID0gLXBpdm90WTtcblx0XHRsZXQgZngyID0gd2lkdGggLSBwaXZvdFg7XG5cdFx0bGV0IGZ5MiA9IGhlaWdodCAtIHBpdm90WTtcblxuXHRcdC8vIGNvbnN0cnVjdCBjb3JuZXIgcG9pbnRzLCBzdGFydCBmcm9tIHRvcCBsZWZ0IGFuZCBnbyBjb3VudGVyIGNsb2Nrd2lzZVxuXHRcdGxldCBwMXggPSBmeDtcblx0XHRsZXQgcDF5ID0gZnk7XG5cdFx0bGV0IHAyeCA9IGZ4O1xuXHRcdGxldCBwMnkgPSBmeTI7XG5cdFx0bGV0IHAzeCA9IGZ4Mjtcblx0XHRsZXQgcDN5ID0gZnkyO1xuXHRcdGxldCBwNHggPSBmeDI7XG5cdFx0bGV0IHA0eSA9IGZ5O1xuXG5cdFx0bGV0IHgxID0gMDtcblx0XHRsZXQgeTEgPSAwO1xuXHRcdGxldCB4MiA9IDA7XG5cdFx0bGV0IHkyID0gMDtcblx0XHRsZXQgeDMgPSAwO1xuXHRcdGxldCB5MyA9IDA7XG5cdFx0bGV0IHg0ID0gMDtcblx0XHRsZXQgeTQgPSAwO1xuXG5cdFx0Ly8gcm90YXRlXG5cdFx0aWYgKGFuZ2xlICE9IDApIHtcblx0XHRcdGxldCBjb3MgPSBNYXRoVXRpbHMuY29zRGVnKGFuZ2xlKTtcblx0XHRcdGxldCBzaW4gPSBNYXRoVXRpbHMuc2luRGVnKGFuZ2xlKTtcblxuXHRcdFx0eDEgPSBjb3MgKiBwMXggLSBzaW4gKiBwMXk7XG5cdFx0XHR5MSA9IHNpbiAqIHAxeCArIGNvcyAqIHAxeTtcblxuXHRcdFx0eDQgPSBjb3MgKiBwMnggLSBzaW4gKiBwMnk7XG5cdFx0XHR5NCA9IHNpbiAqIHAyeCArIGNvcyAqIHAyeTtcblxuXHRcdFx0eDMgPSBjb3MgKiBwM3ggLSBzaW4gKiBwM3k7XG5cdFx0XHR5MyA9IHNpbiAqIHAzeCArIGNvcyAqIHAzeTtcblxuXHRcdFx0eDIgPSB4MyArICh4MSAtIHg0KTtcblx0XHRcdHkyID0geTMgKyAoeTEgLSB5NCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHgxID0gcDF4O1xuXHRcdFx0eTEgPSBwMXk7XG5cblx0XHRcdHg0ID0gcDJ4O1xuXHRcdFx0eTQgPSBwMnk7XG5cblx0XHRcdHgzID0gcDN4O1xuXHRcdFx0eTMgPSBwM3k7XG5cblx0XHRcdHgyID0gcDR4O1xuXHRcdFx0eTIgPSBwNHk7XG5cdFx0fVxuXG5cdFx0eDEgKz0gd29ybGRPcmlnaW5YO1xuXHRcdHkxICs9IHdvcmxkT3JpZ2luWTtcblx0XHR4MiArPSB3b3JsZE9yaWdpblg7XG5cdFx0eTIgKz0gd29ybGRPcmlnaW5ZO1xuXHRcdHgzICs9IHdvcmxkT3JpZ2luWDtcblx0XHR5MyArPSB3b3JsZE9yaWdpblk7XG5cdFx0eDQgKz0gd29ybGRPcmlnaW5YO1xuXHRcdHk0ICs9IHdvcmxkT3JpZ2luWTtcblxuXHRcdHZhciBpID0gMDtcblx0XHRxdWFkW2krK10gPSB4MTtcblx0XHRxdWFkW2krK10gPSB5MTtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0cXVhZFtpKytdID0gMTtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHgyO1xuXHRcdHF1YWRbaSsrXSA9IHkyO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gMTtcblx0XHRxdWFkW2krK10gPSAxO1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHR9XG5cdFx0cXVhZFtpKytdID0geDM7XG5cdFx0cXVhZFtpKytdID0geTM7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSAxO1xuXHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4NDtcblx0XHRxdWFkW2krK10gPSB5NDtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0cXVhZFtpKytdID0gMDtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaV0gPSAwO1xuXHRcdH1cblx0XHR0aGlzLmJhdGNoZXIuZHJhdyh0ZXh0dXJlLCBxdWFkLCBRVUFEX1RSSUFOR0xFUyk7XG5cdH1cblxuXHRkcmF3UmVnaW9uIChyZWdpb246IFRleHR1cmVBdGxhc1JlZ2lvbiwgeDogbnVtYmVyLCB5OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLmJhdGNoZXIpO1xuXHRcdGlmICghY29sb3IpIGNvbG9yID0gV0hJVEU7XG5cdFx0dmFyIGkgPSAwO1xuXHRcdHF1YWRbaSsrXSA9IHg7XG5cdFx0cXVhZFtpKytdID0geTtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IHJlZ2lvbi51O1xuXHRcdHF1YWRbaSsrXSA9IHJlZ2lvbi52Mjtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHggKyB3aWR0aDtcblx0XHRxdWFkW2krK10gPSB5O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gcmVnaW9uLnUyO1xuXHRcdHF1YWRbaSsrXSA9IHJlZ2lvbi52Mjtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHggKyB3aWR0aDtcblx0XHRxdWFkW2krK10gPSB5ICsgaGVpZ2h0O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gcmVnaW9uLnUyO1xuXHRcdHF1YWRbaSsrXSA9IHJlZ2lvbi52O1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHR9XG5cdFx0cXVhZFtpKytdID0geDtcblx0XHRxdWFkW2krK10gPSB5ICsgaGVpZ2h0O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gcmVnaW9uLnU7XG5cdFx0cXVhZFtpKytdID0gcmVnaW9uLnY7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2ldID0gMDtcblx0XHR9XG5cdFx0dGhpcy5iYXRjaGVyLmRyYXcoPEdMVGV4dHVyZT5yZWdpb24ucGFnZS50ZXh0dXJlLCBxdWFkLCBRVUFEX1RSSUFOR0xFUyk7XG5cdH1cblxuXHRsaW5lICh4OiBudW1iZXIsIHk6IG51bWJlciwgeDI6IG51bWJlciwgeTI6IG51bWJlciwgY29sb3I/OiBDb2xvciwgY29sb3IyPzogQ29sb3IpIHtcblx0XHR0aGlzLmVuYWJsZVJlbmRlcmVyKHRoaXMuc2hhcGVzKTtcblx0XHR0aGlzLnNoYXBlcy5saW5lKHgsIHksIHgyLCB5MiwgY29sb3IpO1xuXHR9XG5cblx0dHJpYW5nbGUgKGZpbGxlZDogYm9vbGVhbiwgeDogbnVtYmVyLCB5OiBudW1iZXIsIHgyOiBudW1iZXIsIHkyOiBudW1iZXIsIHgzOiBudW1iZXIsIHkzOiBudW1iZXIsIGNvbG9yPzogQ29sb3IsIGNvbG9yMj86IENvbG9yLCBjb2xvcjM/OiBDb2xvcikge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5zaGFwZXMpO1xuXHRcdHRoaXMuc2hhcGVzLnRyaWFuZ2xlKGZpbGxlZCwgeCwgeSwgeDIsIHkyLCB4MywgeTMsIGNvbG9yLCBjb2xvcjIsIGNvbG9yMyk7XG5cdH1cblxuXHRxdWFkIChmaWxsZWQ6IGJvb2xlYW4sIHg6IG51bWJlciwgeTogbnVtYmVyLCB4MjogbnVtYmVyLCB5MjogbnVtYmVyLCB4MzogbnVtYmVyLCB5MzogbnVtYmVyLCB4NDogbnVtYmVyLCB5NDogbnVtYmVyLCBjb2xvcj86IENvbG9yLCBjb2xvcjI/OiBDb2xvciwgY29sb3IzPzogQ29sb3IsIGNvbG9yND86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLnNoYXBlcyk7XG5cdFx0dGhpcy5zaGFwZXMucXVhZChmaWxsZWQsIHgsIHksIHgyLCB5MiwgeDMsIHkzLCB4NCwgeTQsIGNvbG9yLCBjb2xvcjIsIGNvbG9yMywgY29sb3I0KTtcblx0fVxuXG5cdHJlY3QgKGZpbGxlZDogYm9vbGVhbiwgeDogbnVtYmVyLCB5OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLnNoYXBlcyk7XG5cdFx0dGhpcy5zaGFwZXMucmVjdChmaWxsZWQsIHgsIHksIHdpZHRoLCBoZWlnaHQsIGNvbG9yKTtcblx0fVxuXG5cdHJlY3RMaW5lIChmaWxsZWQ6IGJvb2xlYW4sIHgxOiBudW1iZXIsIHkxOiBudW1iZXIsIHgyOiBudW1iZXIsIHkyOiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGNvbG9yPzogQ29sb3IpIHtcblx0XHR0aGlzLmVuYWJsZVJlbmRlcmVyKHRoaXMuc2hhcGVzKTtcblx0XHR0aGlzLnNoYXBlcy5yZWN0TGluZShmaWxsZWQsIHgxLCB5MSwgeDIsIHkyLCB3aWR0aCwgY29sb3IpO1xuXHR9XG5cblx0cG9seWdvbiAocG9seWdvblZlcnRpY2VzOiBBcnJheUxpa2U8bnVtYmVyPiwgb2Zmc2V0OiBudW1iZXIsIGNvdW50OiBudW1iZXIsIGNvbG9yPzogQ29sb3IpIHtcblx0XHR0aGlzLmVuYWJsZVJlbmRlcmVyKHRoaXMuc2hhcGVzKTtcblx0XHR0aGlzLnNoYXBlcy5wb2x5Z29uKHBvbHlnb25WZXJ0aWNlcywgb2Zmc2V0LCBjb3VudCwgY29sb3IpO1xuXHR9XG5cblx0Y2lyY2xlIChmaWxsZWQ6IGJvb2xlYW4sIHg6IG51bWJlciwgeTogbnVtYmVyLCByYWRpdXM6IG51bWJlciwgY29sb3I/OiBDb2xvciwgc2VnbWVudHM6IG51bWJlciA9IDApIHtcblx0XHR0aGlzLmVuYWJsZVJlbmRlcmVyKHRoaXMuc2hhcGVzKTtcblx0XHR0aGlzLnNoYXBlcy5jaXJjbGUoZmlsbGVkLCB4LCB5LCByYWRpdXMsIGNvbG9yLCBzZWdtZW50cyk7XG5cdH1cblxuXHRjdXJ2ZSAoeDE6IG51bWJlciwgeTE6IG51bWJlciwgY3gxOiBudW1iZXIsIGN5MTogbnVtYmVyLCBjeDI6IG51bWJlciwgY3kyOiBudW1iZXIsIHgyOiBudW1iZXIsIHkyOiBudW1iZXIsIHNlZ21lbnRzOiBudW1iZXIsIGNvbG9yPzogQ29sb3IpIHtcblx0XHR0aGlzLmVuYWJsZVJlbmRlcmVyKHRoaXMuc2hhcGVzKTtcblx0XHR0aGlzLnNoYXBlcy5jdXJ2ZSh4MSwgeTEsIGN4MSwgY3kxLCBjeDIsIGN5MiwgeDIsIHkyLCBzZWdtZW50cywgY29sb3IpO1xuXHR9XG5cblx0ZW5kICgpIHtcblx0XHRpZiAodGhpcy5hY3RpdmVSZW5kZXJlciA9PT0gdGhpcy5iYXRjaGVyKSB0aGlzLmJhdGNoZXIuZW5kKCk7XG5cdFx0ZWxzZSBpZiAodGhpcy5hY3RpdmVSZW5kZXJlciA9PT0gdGhpcy5zaGFwZXMpIHRoaXMuc2hhcGVzLmVuZCgpO1xuXHRcdHRoaXMuYWN0aXZlUmVuZGVyZXIgPSBudWxsO1xuXHR9XG5cblx0cmVzaXplIChyZXNpemVNb2RlOiBSZXNpemVNb2RlKSB7XG5cdFx0bGV0IGNhbnZhcyA9IHRoaXMuY2FudmFzO1xuXHRcdHZhciBkcHIgPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxO1xuXHRcdHZhciB3ID0gTWF0aC5yb3VuZChjYW52YXMuY2xpZW50V2lkdGggKiBkcHIpO1xuXHRcdHZhciBoID0gTWF0aC5yb3VuZChjYW52YXMuY2xpZW50SGVpZ2h0ICogZHByKTtcblxuXHRcdGlmIChjYW52YXMud2lkdGggIT0gdyB8fCBjYW52YXMuaGVpZ2h0ICE9IGgpIHtcblx0XHRcdGNhbnZhcy53aWR0aCA9IHc7XG5cdFx0XHRjYW52YXMuaGVpZ2h0ID0gaDtcblx0XHR9XG5cdFx0dGhpcy5jb250ZXh0LmdsLnZpZXdwb3J0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG5cblx0XHQvLyBOb3RoaW5nIHRvIGRvIGZvciBzdHJldGNoLCB3ZSBzaW1wbHkgYXBwbHkgdGhlIHZpZXdwb3J0IHNpemUgb2YgdGhlIGNhbWVyYS5cblx0XHRpZiAocmVzaXplTW9kZSA9PT0gUmVzaXplTW9kZS5FeHBhbmQpXG5cdFx0XHR0aGlzLmNhbWVyYS5zZXRWaWV3cG9ydCh3LCBoKTtcblx0XHRlbHNlIGlmIChyZXNpemVNb2RlID09PSBSZXNpemVNb2RlLkZpdCkge1xuXHRcdFx0bGV0IHNvdXJjZVdpZHRoID0gY2FudmFzLndpZHRoLCBzb3VyY2VIZWlnaHQgPSBjYW52YXMuaGVpZ2h0O1xuXHRcdFx0bGV0IHRhcmdldFdpZHRoID0gdGhpcy5jYW1lcmEudmlld3BvcnRXaWR0aCwgdGFyZ2V0SGVpZ2h0ID0gdGhpcy5jYW1lcmEudmlld3BvcnRIZWlnaHQ7XG5cdFx0XHRsZXQgdGFyZ2V0UmF0aW8gPSB0YXJnZXRIZWlnaHQgLyB0YXJnZXRXaWR0aDtcblx0XHRcdGxldCBzb3VyY2VSYXRpbyA9IHNvdXJjZUhlaWdodCAvIHNvdXJjZVdpZHRoO1xuXHRcdFx0bGV0IHNjYWxlID0gdGFyZ2V0UmF0aW8gPCBzb3VyY2VSYXRpbyA/IHRhcmdldFdpZHRoIC8gc291cmNlV2lkdGggOiB0YXJnZXRIZWlnaHQgLyBzb3VyY2VIZWlnaHQ7XG5cdFx0XHR0aGlzLmNhbWVyYS5zZXRWaWV3cG9ydChzb3VyY2VXaWR0aCAqIHNjYWxlLCBzb3VyY2VIZWlnaHQgKiBzY2FsZSk7XG5cdFx0fVxuXHRcdHRoaXMuY2FtZXJhLnVwZGF0ZSgpO1xuXHR9XG5cblx0cHJpdmF0ZSBlbmFibGVSZW5kZXJlciAocmVuZGVyZXI6IFBvbHlnb25CYXRjaGVyIHwgU2hhcGVSZW5kZXJlciB8IFNrZWxldG9uRGVidWdSZW5kZXJlcikge1xuXHRcdGlmICh0aGlzLmFjdGl2ZVJlbmRlcmVyID09PSByZW5kZXJlcikgcmV0dXJuO1xuXHRcdHRoaXMuZW5kKCk7XG5cdFx0aWYgKHJlbmRlcmVyIGluc3RhbmNlb2YgUG9seWdvbkJhdGNoZXIpIHtcblx0XHRcdHRoaXMuYmF0Y2hlclNoYWRlci5iaW5kKCk7XG5cdFx0XHR0aGlzLmJhdGNoZXJTaGFkZXIuc2V0VW5pZm9ybTR4NGYoU2hhZGVyLk1WUF9NQVRSSVgsIHRoaXMuY2FtZXJhLnByb2plY3Rpb25WaWV3LnZhbHVlcyk7XG5cdFx0XHR0aGlzLmJhdGNoZXJTaGFkZXIuc2V0VW5pZm9ybWkoXCJ1X3RleHR1cmVcIiwgMCk7XG5cdFx0XHR0aGlzLmJhdGNoZXIuYmVnaW4odGhpcy5iYXRjaGVyU2hhZGVyKTtcblx0XHRcdHRoaXMuYWN0aXZlUmVuZGVyZXIgPSB0aGlzLmJhdGNoZXI7XG5cdFx0fSBlbHNlIGlmIChyZW5kZXJlciBpbnN0YW5jZW9mIFNoYXBlUmVuZGVyZXIpIHtcblx0XHRcdHRoaXMuc2hhcGVzU2hhZGVyLmJpbmQoKTtcblx0XHRcdHRoaXMuc2hhcGVzU2hhZGVyLnNldFVuaWZvcm00eDRmKFNoYWRlci5NVlBfTUFUUklYLCB0aGlzLmNhbWVyYS5wcm9qZWN0aW9uVmlldy52YWx1ZXMpO1xuXHRcdFx0dGhpcy5zaGFwZXMuYmVnaW4odGhpcy5zaGFwZXNTaGFkZXIpO1xuXHRcdFx0dGhpcy5hY3RpdmVSZW5kZXJlciA9IHRoaXMuc2hhcGVzO1xuXHRcdH0gZWxzZVxuXHRcdFx0dGhpcy5hY3RpdmVSZW5kZXJlciA9IHRoaXMuc2tlbGV0b25EZWJ1Z1JlbmRlcmVyO1xuXHR9XG59XG5cbmV4cG9ydCBlbnVtIFJlc2l6ZU1vZGUge1xuXHRTdHJldGNoLFxuXHRFeHBhbmQsXG5cdEZpdFxufVxuIl19
487
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVSZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9TY2VuZVJlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0VBMkIrRTtBQUUvRSxPQUFPLEVBQUUsS0FBSyxFQUF3QixTQUFTLEVBQXNCLE1BQU0sOEJBQThCLENBQUM7QUFDMUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFxQixNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxRCxDQUFDO0FBRUQsTUFBTSxJQUFJLEdBQUc7SUFDWixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN0QixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN0QixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN0QixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztDQUN0QixDQUFDO0FBQ0YsTUFBTSxjQUFjLEdBQUcsQ0FB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QUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDYixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsYUFBYSxDQUFFLE9BQWtCLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxLQUFhLEVBQUUsTUFBYyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxLQUFhO1FBQ2xKLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLO1lBQUUsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFF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RUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELFVBQVUsQ0FBRSxNQUEwQixFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxLQUFhO1FBQ3pHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLO1lBQUUsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDYixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQVksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxJQUFJLENBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEtBQWEsRUFBRSxNQUFjO1FBQ2hGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsUUFBUSxDQUFFLE1BQWUsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxLQUFhLEVBQUUsTUFBYyxFQUFFLE1BQWM7UUFDN0ksSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELElBQUksQ0FBRSxNQUFlLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxLQUFhLEVBQUUsTUFBYyxFQUFFLE1BQWMsRUFBRSxNQUFjO1FBQ2pMLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFF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LFdBQVksVUFBVTtJQUNyQixpREFBTyxDQUFBO0lBQ1AsK0NBQU0sQ0FBQTtJQUNOLHlDQUFHLENBQUE7QUFDSixDQUFDLEVBSlcsVUFBVSxLQUFWLFVBQVUsUUFJckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBTcGluZSBSdW50aW1lcyBMaWNlbnNlIEFncmVlbWVudFxuICogTGFzdCB1cGRhdGVkIEFwcmlsIDUsIDIwMjUuIFJlcGxhY2VzIGFsbCBwcmlvciB2ZXJzaW9ucy5cbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtMjAyNSwgRXNvdGVyaWMgU29mdHdhcmUgTExDXG4gKlxuICogSW50ZWdyYXRpb24gb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmUgb3Igb3RoZXJ3aXNlIGNyZWF0aW5nXG4gKiBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpcyBwZXJtaXR0ZWQgdW5kZXIgdGhlIHRlcm1zIGFuZFxuICogY29uZGl0aW9ucyBvZiBTZWN0aW9uIDIgb2YgdGhlIFNwaW5lIEVkaXRvciBMaWNlbnNlIEFncmVlbWVudDpcbiAqIGh0dHA6Ly9lc290ZXJpY3NvZnR3YXJlLmNvbS9zcGluZS1lZGl0b3ItbGljZW5zZVxuICpcbiAqIE90aGVyd2lzZSwgaXQgaXMgcGVybWl0dGVkIHRvIGludGVncmF0ZSB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZVxuICogb3Igb3RoZXJ3aXNlIGNyZWF0ZSBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyAoY29sbGVjdGl2ZWx5LFxuICogXCJQcm9kdWN0c1wiKSwgcHJvdmlkZWQgdGhhdCBlYWNoIHVzZXIgb2YgdGhlIFByb2R1Y3RzIG11c3Qgb2J0YWluIHRoZWlyIG93blxuICogU3BpbmUgRWRpdG9yIGxpY2Vuc2UgYW5kIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9kdWN0cyBpbiBhbnkgZm9ybSBtdXN0XG4gKiBpbmNsdWRlIHRoaXMgbGljZW5zZSBhbmQgY29weXJpZ2h0IG5vdGljZS5cbiAqXG4gKiBUSEUgU1BJTkUgUlVOVElNRVMgQVJFIFBST1ZJREVEIEJZIEVTT1RFUklDIFNPRlRXQVJFIExMQyBcIkFTIElTXCIgQU5EIEFOWVxuICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRFxuICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRVxuICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgRVNPVEVSSUMgU09GVFdBUkUgTExDIEJFIExJQUJMRSBGT1IgQU5ZXG4gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFU1xuICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTLFxuICogQlVTSU5FU1MgSU5URVJSVVBUSU9OLCBPUiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUykgSE9XRVZFUiBDQVVTRUQgQU5EXG4gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVFxuICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GXG4gKiBUSEUgU1BJTkUgUlVOVElNRVMsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbmltcG9ydCB7IENvbG9yLCBEaXNwb3NhYmxlLCBTa2VsZXRvbiwgTWF0aFV0aWxzLCBUZXh0dXJlQXRsYXNSZWdpb24gfSBmcm9tIFwiQGVzb3Rlcmljc29mdHdhcmUvc3BpbmUtY29yZVwiO1xuaW1wb3J0IHsgT3J0aG9DYW1lcmEgfSBmcm9tIFwiLi9DYW1lcmEuanNcIjtcbmltcG9ydCB7IEdMVGV4dHVyZSB9IGZyb20gXCIuL0dMVGV4dHVyZS5qc1wiO1xuaW1wb3J0IHsgUG9seWdvbkJhdGNoZXIgfSBmcm9tIFwiLi9Qb2x5Z29uQmF0Y2hlci5qc1wiO1xuaW1wb3J0IHsgU2hhZGVyIH0gZnJvbSBcIi4vU2hhZGVyLmpzXCI7XG5pbXBvcnQgeyBTaGFwZVJlbmRlcmVyIH0gZnJvbSBcIi4vU2hhcGVSZW5kZXJlci5qc1wiO1xuaW1wb3J0IHsgU2tlbGV0b25EZWJ1Z1JlbmRlcmVyIH0gZnJvbSBcIi4vU2tlbGV0b25EZWJ1Z1JlbmRlcmVyLmpzXCI7XG5pbXBvcnQgeyBTa2VsZXRvblJlbmRlcmVyLCBWZXJ0ZXhUcmFuc2Zvcm1lciB9IGZyb20gXCIuL1NrZWxldG9uUmVuZGVyZXIuanNcIjtcbmltcG9ydCB7IE1hbmFnZWRXZWJHTFJlbmRlcmluZ0NvbnRleHQgfSBmcm9tIFwiLi9XZWJHTC5qc1wiO1xuO1xuXG5jb25zdCBxdWFkID0gW1xuXHQwLCAwLCAxLCAxLCAxLCAxLCAwLCAwLFxuXHQwLCAwLCAxLCAxLCAxLCAxLCAwLCAwLFxuXHQwLCAwLCAxLCAxLCAxLCAxLCAwLCAwLFxuXHQwLCAwLCAxLCAxLCAxLCAxLCAwLCAwLFxuXTtcbmNvbnN0IFFVQURfVFJJQU5HTEVTID0gWzAsIDEsIDIsIDIsIDMsIDBdO1xuY29uc3QgV0hJVEUgPSBuZXcgQ29sb3IoMSwgMSwgMSwgMSk7XG5cbmV4cG9ydCBjbGFzcyBTY2VuZVJlbmRlcmVyIGltcGxlbWVudHMgRGlzcG9zYWJsZSB7XG5cdGNvbnRleHQ6IE1hbmFnZWRXZWJHTFJlbmRlcmluZ0NvbnRleHQ7XG5cdGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQ7XG5cdGNhbWVyYTogT3J0aG9DYW1lcmE7XG5cdGJhdGNoZXI6IFBvbHlnb25CYXRjaGVyO1xuXHRwcml2YXRlIHR3b0NvbG9yVGludCA9IGZhbHNlO1xuXHRwcml2YXRlIGJhdGNoZXJTaGFkZXI6IFNoYWRlcjtcblx0cHJpdmF0ZSBzaGFwZXM6IFNoYXBlUmVuZGVyZXI7XG5cdHByaXZhdGUgc2hhcGVzU2hhZGVyOiBTaGFkZXI7XG5cdHByaXZhdGUgYWN0aXZlUmVuZGVyZXI6IFBvbHlnb25CYXRjaGVyIHwgU2hhcGVSZW5kZXJlciB8IFNrZWxldG9uRGVidWdSZW5kZXJlciB8IG51bGwgPSBudWxsO1xuXHRza2VsZXRvblJlbmRlcmVyOiBTa2VsZXRvblJlbmRlcmVyO1xuXHRza2VsZXRvbkRlYnVnUmVuZGVyZXI6IFNrZWxldG9uRGVidWdSZW5kZXJlcjtcblxuXHRjb25zdHJ1Y3RvciAoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCwgY29udGV4dDogTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dCB8IFdlYkdMUmVuZGVyaW5nQ29udGV4dCwgdHdvQ29sb3JUaW50OiBib29sZWFuID0gdHJ1ZSkge1xuXHRcdHRoaXMuY2FudmFzID0gY2FudmFzO1xuXHRcdHRoaXMuY29udGV4dCA9IGNvbnRleHQgaW5zdGFuY2VvZiBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0ID8gY29udGV4dCA6IG5ldyBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0KGNvbnRleHQpO1xuXHRcdHRoaXMudHdvQ29sb3JUaW50ID0gdHdvQ29sb3JUaW50O1xuXHRcdHRoaXMuY2FtZXJhID0gbmV3IE9ydGhvQ2FtZXJhKGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG5cdFx0dGhpcy5iYXRjaGVyU2hhZGVyID0gdHdvQ29sb3JUaW50ID8gU2hhZGVyLm5ld1R3b0NvbG9yZWRUZXh0dXJlZCh0aGlzLmNvbnRleHQpIDogU2hhZGVyLm5ld0NvbG9yZWRUZXh0dXJlZCh0aGlzLmNvbnRleHQpO1xuXHRcdHRoaXMuYmF0Y2hlciA9IG5ldyBQb2x5Z29uQmF0Y2hlcih0aGlzLmNvbnRleHQsIHR3b0NvbG9yVGludCk7XG5cdFx0dGhpcy5zaGFwZXNTaGFkZXIgPSBTaGFkZXIubmV3Q29sb3JlZCh0aGlzLmNvbnRleHQpO1xuXHRcdHRoaXMuc2hhcGVzID0gbmV3IFNoYXBlUmVuZGVyZXIodGhpcy5jb250ZXh0KTtcblx0XHR0aGlzLnNrZWxldG9uUmVuZGVyZXIgPSBuZXcgU2tlbGV0b25SZW5kZXJlcih0aGlzLmNvbnRleHQsIHR3b0NvbG9yVGludCk7XG5cdFx0dGhpcy5za2VsZXRvbkRlYnVnUmVuZGVyZXIgPSBuZXcgU2tlbGV0b25EZWJ1Z1JlbmRlcmVyKHRoaXMuY29udGV4dCk7XG5cdH1cblxuXHRkaXNwb3NlICgpIHtcblx0XHR0aGlzLmJhdGNoZXIuZGlzcG9zZSgpO1xuXHRcdHRoaXMuYmF0Y2hlclNoYWRlci5kaXNwb3NlKCk7XG5cdFx0dGhpcy5zaGFwZXMuZGlzcG9zZSgpO1xuXHRcdHRoaXMuc2hhcGVzU2hhZGVyLmRpc3Bvc2UoKTtcblx0XHR0aGlzLnNrZWxldG9uRGVidWdSZW5kZXJlci5kaXNwb3NlKCk7XG5cdH1cblxuXHRiZWdpbiAoKSB7XG5cdFx0dGhpcy5jYW1lcmEudXBkYXRlKCk7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLmJhdGNoZXIpO1xuXHR9XG5cblx0ZHJhd1NrZWxldG9uIChza2VsZXRvbjogU2tlbGV0b24sIHByZW11bHRpcGxpZWRBbHBoYSA9IGZhbHNlLCBzbG90UmFuZ2VTdGFydCA9IC0xLCBzbG90UmFuZ2VFbmQgPSAtMSwgdHJhbnNmb3JtOiBWZXJ0ZXhUcmFuc2Zvcm1lciB8IG51bGwgPSBudWxsKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLmJhdGNoZXIpO1xuXHRcdHRoaXMuc2tlbGV0b25SZW5kZXJlci5wcmVtdWx0aXBsaWVkQWxwaGEgPSBwcmVtdWx0aXBsaWVkQWxwaGE7XG5cdFx0dGhpcy5za2VsZXRvblJlbmRlcmVyLmRyYXcodGhpcy5iYXRjaGVyLCBza2VsZXRvbiwgc2xvdFJhbmdlU3RhcnQsIHNsb3RSYW5nZUVuZCwgdHJhbnNmb3JtKTtcblx0fVxuXG5cdGRyYXdTa2VsZXRvbkRlYnVnIChza2VsZXRvbjogU2tlbGV0b24sIHByZW11bHRpcGxpZWRBbHBoYSA9IGZhbHNlLCBpZ25vcmVkQm9uZXM/OiBBcnJheTxzdHJpbmc+KSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLnNoYXBlcyk7XG5cdFx0dGhpcy5za2VsZXRvbkRlYnVnUmVuZGVyZXIucHJlbXVsdGlwbGllZEFscGhhID0gcHJlbXVsdGlwbGllZEFscGhhO1xuXHRcdHRoaXMuc2tlbGV0b25EZWJ1Z1JlbmRlcmVyLmRyYXcodGhpcy5zaGFwZXMsIHNrZWxldG9uLCBpZ25vcmVkQm9uZXMpO1xuXHR9XG5cblx0ZHJhd1RleHR1cmUgKHRleHR1cmU6IEdMVGV4dHVyZSwgeDogbnVtYmVyLCB5OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLmJhdGNoZXIpO1xuXHRcdGlmICghY29sb3IpIGNvbG9yID0gV0hJVEU7XG5cdFx0dmFyIGkgPSAwO1xuXHRcdHF1YWRbaSsrXSA9IHg7XG5cdFx0cXVhZFtpKytdID0geTtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0cXVhZFtpKytdID0gMTtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHggKyB3aWR0aDtcblx0XHRxdWFkW2krK10gPSB5O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gMTtcblx0XHRxdWFkW2krK10gPSAxO1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHR9XG5cdFx0cXVhZFtpKytdID0geCArIHdpZHRoO1xuXHRcdHF1YWRbaSsrXSA9IHkgKyBoZWlnaHQ7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSAxO1xuXHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4O1xuXHRcdHF1YWRbaSsrXSA9IHkgKyBoZWlnaHQ7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSAwO1xuXHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2ldID0gMDtcblx0XHR9XG5cdFx0dGhpcy5iYXRjaGVyLmRyYXcodGV4dHVyZSwgcXVhZCwgUVVBRF9UUklBTkdMRVMpO1xuXHR9XG5cblx0ZHJhd1RleHR1cmVVViAodGV4dHVyZTogR0xUZXh0dXJlLCB4OiBudW1iZXIsIHk6IG51bWJlciwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIHU6IG51bWJlciwgdjogbnVtYmVyLCB1MjogbnVtYmVyLCB2MjogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLmJhdGNoZXIpO1xuXHRcdGlmICghY29sb3IpIGNvbG9yID0gV0hJVEU7XG5cdFx0dmFyIGkgPSAwO1xuXHRcdHF1YWRbaSsrXSA9IHg7XG5cdFx0cXVhZFtpKytdID0geTtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IHU7XG5cdFx0cXVhZFtpKytdID0gdjtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHggKyB3aWR0aDtcblx0XHRxdWFkW2krK10gPSB5O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gdTI7XG5cdFx0cXVhZFtpKytdID0gdjtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHggKyB3aWR0aDtcblx0XHRxdWFkW2krK10gPSB5ICsgaGVpZ2h0O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gdTI7XG5cdFx0cXVhZFtpKytdID0gdjI7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4O1xuXHRcdHF1YWRbaSsrXSA9IHkgKyBoZWlnaHQ7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSB1O1xuXHRcdHF1YWRbaSsrXSA9IHYyO1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpXSA9IDA7XG5cdFx0fVxuXHRcdHRoaXMuYmF0Y2hlci5kcmF3KHRleHR1cmUsIHF1YWQsIFFVQURfVFJJQU5HTEVTKTtcblx0fVxuXG5cdGRyYXdUZXh0dXJlUm90YXRlZCAodGV4dHVyZTogR0xUZXh0dXJlLCB4OiBudW1iZXIsIHk6IG51bWJlciwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIHBpdm90WDogbnVtYmVyLCBwaXZvdFk6IG51bWJlciwgYW5nbGU6IG51bWJlciwgY29sb3I/OiBDb2xvcikge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5iYXRjaGVyKTtcblx0XHRpZiAoIWNvbG9yKSBjb2xvciA9IFdISVRFO1xuXG5cdFx0Ly8gYm90dG9tIGxlZnQgYW5kIHRvcCByaWdodCBjb3JuZXIgcG9pbnRzIHJlbGF0aXZlIHRvIG9yaWdpblxuXHRcdGxldCB3b3JsZE9yaWdpblggPSB4ICsgcGl2b3RYO1xuXHRcdGxldCB3b3JsZE9yaWdpblkgPSB5ICsgcGl2b3RZO1xuXHRcdGxldCBmeCA9IC1waXZvdFg7XG5cdFx0bGV0IGZ5ID0gLXBpdm90WTtcblx0XHRsZXQgZngyID0gd2lkdGggLSBwaXZvdFg7XG5cdFx0bGV0IGZ5MiA9IGhlaWdodCAtIHBpdm90WTtcblxuXHRcdC8vIGNvbnN0cnVjdCBjb3JuZXIgcG9pbnRzLCBzdGFydCBmcm9tIHRvcCBsZWZ0IGFuZCBnbyBjb3VudGVyIGNsb2Nrd2lzZVxuXHRcdGxldCBwMXggPSBmeDtcblx0XHRsZXQgcDF5ID0gZnk7XG5cdFx0bGV0IHAyeCA9IGZ4O1xuXHRcdGxldCBwMnkgPSBmeTI7XG5cdFx0bGV0IHAzeCA9IGZ4Mjtcblx0XHRsZXQgcDN5ID0gZnkyO1xuXHRcdGxldCBwNHggPSBmeDI7XG5cdFx0bGV0IHA0eSA9IGZ5O1xuXG5cdFx0bGV0IHgxID0gMDtcblx0XHRsZXQgeTEgPSAwO1xuXHRcdGxldCB4MiA9IDA7XG5cdFx0bGV0IHkyID0gMDtcblx0XHRsZXQgeDMgPSAwO1xuXHRcdGxldCB5MyA9IDA7XG5cdFx0bGV0IHg0ID0gMDtcblx0XHRsZXQgeTQgPSAwO1xuXG5cdFx0Ly8gcm90YXRlXG5cdFx0aWYgKGFuZ2xlICE9IDApIHtcblx0XHRcdGxldCBjb3MgPSBNYXRoVXRpbHMuY29zRGVnKGFuZ2xlKTtcblx0XHRcdGxldCBzaW4gPSBNYXRoVXRpbHMuc2luRGVnKGFuZ2xlKTtcblxuXHRcdFx0eDEgPSBjb3MgKiBwMXggLSBzaW4gKiBwMXk7XG5cdFx0XHR5MSA9IHNpbiAqIHAxeCArIGNvcyAqIHAxeTtcblxuXHRcdFx0eDQgPSBjb3MgKiBwMnggLSBzaW4gKiBwMnk7XG5cdFx0XHR5NCA9IHNpbiAqIHAyeCArIGNvcyAqIHAyeTtcblxuXHRcdFx0eDMgPSBjb3MgKiBwM3ggLSBzaW4gKiBwM3k7XG5cdFx0XHR5MyA9IHNpbiAqIHAzeCArIGNvcyAqIHAzeTtcblxuXHRcdFx0eDIgPSB4MyArICh4MSAtIHg0KTtcblx0XHRcdHkyID0geTMgKyAoeTEgLSB5NCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHgxID0gcDF4O1xuXHRcdFx0eTEgPSBwMXk7XG5cblx0XHRcdHg0ID0gcDJ4O1xuXHRcdFx0eTQgPSBwMnk7XG5cblx0XHRcdHgzID0gcDN4O1xuXHRcdFx0eTMgPSBwM3k7XG5cblx0XHRcdHgyID0gcDR4O1xuXHRcdFx0eTIgPSBwNHk7XG5cdFx0fVxuXG5cdFx0eDEgKz0gd29ybGRPcmlnaW5YO1xuXHRcdHkxICs9IHdvcmxkT3JpZ2luWTtcblx0XHR4MiArPSB3b3JsZE9yaWdpblg7XG5cdFx0eTIgKz0gd29ybGRPcmlnaW5ZO1xuXHRcdHgzICs9IHdvcmxkT3JpZ2luWDtcblx0XHR5MyArPSB3b3JsZE9yaWdpblk7XG5cdFx0eDQgKz0gd29ybGRPcmlnaW5YO1xuXHRcdHk0ICs9IHdvcmxkT3JpZ2luWTtcblxuXHRcdHZhciBpID0gMDtcblx0XHRxdWFkW2krK10gPSB4MTtcblx0XHRxdWFkW2krK10gPSB5MTtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0cXVhZFtpKytdID0gMTtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHgyO1xuXHRcdHF1YWRbaSsrXSA9IHkyO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gMTtcblx0XHRxdWFkW2krK10gPSAxO1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHR9XG5cdFx0cXVhZFtpKytdID0geDM7XG5cdFx0cXVhZFtpKytdID0geTM7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSAxO1xuXHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4NDtcblx0XHRxdWFkW2krK10gPSB5NDtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0cXVhZFtpKytdID0gMDtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaV0gPSAwO1xuXHRcdH1cblx0XHR0aGlzLmJhdGNoZXIuZHJhdyh0ZXh0dXJlLCBxdWFkLCBRVUFEX1RSSUFOR0xFUyk7XG5cdH1cblxuXHRkcmF3UmVnaW9uIChyZWdpb246IFRleHR1cmVBdGxhc1JlZ2lvbiwgeDogbnVtYmVyLCB5OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLmJhdGNoZXIpO1xuXHRcdGlmICghY29sb3IpIGNvbG9yID0gV0hJVEU7XG5cdFx0dmFyIGkgPSAwO1xuXHRcdHF1YWRbaSsrXSA9IHg7XG5cdFx0cXVhZFtpKytdID0geTtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IHJlZ2lvbi51O1xuXHRcdHF1YWRbaSsrXSA9IHJlZ2lvbi52Mjtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHggKyB3aWR0aDtcblx0XHRxdWFkW2krK10gPSB5O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gcmVnaW9uLnUyO1xuXHRcdHF1YWRbaSsrXSA9IHJlZ2lvbi52Mjtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHggKyB3aWR0aDtcblx0XHRxdWFkW2krK10gPSB5ICsgaGVpZ2h0O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gcmVnaW9uLnUyO1xuXHRcdHF1YWRbaSsrXSA9IHJlZ2lvbi52O1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHR9XG5cdFx0cXVhZFtpKytdID0geDtcblx0XHRxdWFkW2krK10gPSB5ICsgaGVpZ2h0O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gcmVnaW9uLnU7XG5cdFx0cXVhZFtpKytdID0gcmVnaW9uLnY7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2ldID0gMDtcblx0XHR9XG5cdFx0dGhpcy5iYXRjaGVyLmRyYXcoPEdMVGV4dHVyZT5yZWdpb24ucGFnZS50ZXh0dXJlLCBxdWFkLCBRVUFEX1RSSUFOR0xFUyk7XG5cdH1cblxuXHRsaW5lICh4OiBudW1iZXIsIHk6IG51bWJlciwgeDI6IG51bWJlciwgeTI6IG51bWJlciwgY29sb3I/OiBDb2xvciwgY29sb3IyPzogQ29sb3IpIHtcblx0XHR0aGlzLmVuYWJsZVJlbmRlcmVyKHRoaXMuc2hhcGVzKTtcblx0XHR0aGlzLnNoYXBlcy5saW5lKHgsIHksIHgyLCB5MiwgY29sb3IpO1xuXHR9XG5cblx0dHJpYW5nbGUgKGZpbGxlZDogYm9vbGVhbiwgeDogbnVtYmVyLCB5OiBudW1iZXIsIHgyOiBudW1iZXIsIHkyOiBudW1iZXIsIHgzOiBudW1iZXIsIHkzOiBudW1iZXIsIGNvbG9yPzogQ29sb3IsIGNvbG9yMj86IENvbG9yLCBjb2xvcjM/OiBDb2xvcikge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5zaGFwZXMpO1xuXHRcdHRoaXMuc2hhcGVzLnRyaWFuZ2xlKGZpbGxlZCwgeCwgeSwgeDIsIHkyLCB4MywgeTMsIGNvbG9yLCBjb2xvcjIsIGNvbG9yMyk7XG5cdH1cblxuXHRxdWFkIChmaWxsZWQ6IGJvb2xlYW4sIHg6IG51bWJlciwgeTogbnVtYmVyLCB4MjogbnVtYmVyLCB5MjogbnVtYmVyLCB4MzogbnVtYmVyLCB5MzogbnVtYmVyLCB4NDogbnVtYmVyLCB5NDogbnVtYmVyLCBjb2xvcj86IENvbG9yLCBjb2xvcjI/OiBDb2xvciwgY29sb3IzPzogQ29sb3IsIGNvbG9yND86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLnNoYXBlcyk7XG5cdFx0dGhpcy5zaGFwZXMucXVhZChmaWxsZWQsIHgsIHksIHgyLCB5MiwgeDMsIHkzLCB4NCwgeTQsIGNvbG9yLCBjb2xvcjIsIGNvbG9yMywgY29sb3I0KTtcblx0fVxuXG5cdHJlY3QgKGZpbGxlZDogYm9vbGVhbiwgeDogbnVtYmVyLCB5OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLnNoYXBlcyk7XG5cdFx0dGhpcy5zaGFwZXMucmVjdChmaWxsZWQsIHgsIHksIHdpZHRoLCBoZWlnaHQsIGNvbG9yKTtcblx0fVxuXG5cdHJlY3RMaW5lIChmaWxsZWQ6IGJvb2xlYW4sIHgxOiBudW1iZXIsIHkxOiBudW1iZXIsIHgyOiBudW1iZXIsIHkyOiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGNvbG9yPzogQ29sb3IpIHtcblx0XHR0aGlzLmVuYWJsZVJlbmRlcmVyKHRoaXMuc2hhcGVzKTtcblx0XHR0aGlzLnNoYXBlcy5yZWN0TGluZShmaWxsZWQsIHgxLCB5MSwgeDIsIHkyLCB3aWR0aCwgY29sb3IpO1xuXHR9XG5cblx0cG9seWdvbiAocG9seWdvblZlcnRpY2VzOiBBcnJheUxpa2U8bnVtYmVyPiwgb2Zmc2V0OiBudW1iZXIsIGNvdW50OiBudW1iZXIsIGNvbG9yPzogQ29sb3IpIHtcblx0XHR0aGlzLmVuYWJsZVJlbmRlcmVyKHRoaXMuc2hhcGVzKTtcblx0XHR0aGlzLnNoYXBlcy5wb2x5Z29uKHBvbHlnb25WZXJ0aWNlcywgb2Zmc2V0LCBjb3VudCwgY29sb3IpO1xuXHR9XG5cblx0Y2lyY2xlIChmaWxsZWQ6IGJvb2xlYW4sIHg6IG51bWJlciwgeTogbnVtYmVyLCByYWRpdXM6IG51bWJlciwgY29sb3I/OiBDb2xvciwgc2VnbWVudHM6IG51bWJlciA9IDApIHtcblx0XHR0aGlzLmVuYWJsZVJlbmRlcmVyKHRoaXMuc2hhcGVzKTtcblx0XHR0aGlzLnNoYXBlcy5jaXJjbGUoZmlsbGVkLCB4LCB5LCByYWRpdXMsIGNvbG9yLCBzZWdtZW50cyk7XG5cdH1cblxuXHRjdXJ2ZSAoeDE6IG51bWJlciwgeTE6IG51bWJlciwgY3gxOiBudW1iZXIsIGN5MTogbnVtYmVyLCBjeDI6IG51bWJlciwgY3kyOiBudW1iZXIsIHgyOiBudW1iZXIsIHkyOiBudW1iZXIsIHNlZ21lbnRzOiBudW1iZXIsIGNvbG9yPzogQ29sb3IpIHtcblx0XHR0aGlzLmVuYWJsZVJlbmRlcmVyKHRoaXMuc2hhcGVzKTtcblx0XHR0aGlzLnNoYXBlcy5jdXJ2ZSh4MSwgeTEsIGN4MSwgY3kxLCBjeDIsIGN5MiwgeDIsIHkyLCBzZWdtZW50cywgY29sb3IpO1xuXHR9XG5cblx0ZW5kICgpIHtcblx0XHRpZiAodGhpcy5hY3RpdmVSZW5kZXJlciA9PT0gdGhpcy5iYXRjaGVyKSB0aGlzLmJhdGNoZXIuZW5kKCk7XG5cdFx0ZWxzZSBpZiAodGhpcy5hY3RpdmVSZW5kZXJlciA9PT0gdGhpcy5zaGFwZXMpIHRoaXMuc2hhcGVzLmVuZCgpO1xuXHRcdHRoaXMuYWN0aXZlUmVuZGVyZXIgPSBudWxsO1xuXHR9XG5cblx0cmVzaXplIChyZXNpemVNb2RlOiBSZXNpemVNb2RlKSB7XG5cdFx0bGV0IGNhbnZhcyA9IHRoaXMuY2FudmFzO1xuXHRcdHZhciBkcHIgPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxO1xuXHRcdHZhciB3ID0gTWF0aC5yb3VuZChjYW52YXMuY2xpZW50V2lkdGggKiBkcHIpO1xuXHRcdHZhciBoID0gTWF0aC5yb3VuZChjYW52YXMuY2xpZW50SGVpZ2h0ICogZHByKTtcblxuXHRcdGlmIChjYW52YXMud2lkdGggIT0gdyB8fCBjYW52YXMuaGVpZ2h0ICE9IGgpIHtcblx0XHRcdGNhbnZhcy53aWR0aCA9IHc7XG5cdFx0XHRjYW52YXMuaGVpZ2h0ID0gaDtcblx0XHR9XG5cdFx0dGhpcy5jb250ZXh0LmdsLnZpZXdwb3J0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG5cblx0XHQvLyBOb3RoaW5nIHRvIGRvIGZvciBzdHJldGNoLCB3ZSBzaW1wbHkgYXBwbHkgdGhlIHZpZXdwb3J0IHNpemUgb2YgdGhlIGNhbWVyYS5cblx0XHRpZiAocmVzaXplTW9kZSA9PT0gUmVzaXplTW9kZS5FeHBhbmQpXG5cdFx0XHR0aGlzLmNhbWVyYS5zZXRWaWV3cG9ydCh3LCBoKTtcblx0XHRlbHNlIGlmIChyZXNpemVNb2RlID09PSBSZXNpemVNb2RlLkZpdCkge1xuXHRcdFx0bGV0IHNvdXJjZVdpZHRoID0gY2FudmFzLndpZHRoLCBzb3VyY2VIZWlnaHQgPSBjYW52YXMuaGVpZ2h0O1xuXHRcdFx0bGV0IHRhcmdldFdpZHRoID0gdGhpcy5jYW1lcmEudmlld3BvcnRXaWR0aCwgdGFyZ2V0SGVpZ2h0ID0gdGhpcy5jYW1lcmEudmlld3BvcnRIZWlnaHQ7XG5cdFx0XHRsZXQgdGFyZ2V0UmF0aW8gPSB0YXJnZXRIZWlnaHQgLyB0YXJnZXRXaWR0aDtcblx0XHRcdGxldCBzb3VyY2VSYXRpbyA9IHNvdXJjZUhlaWdodCAvIHNvdXJjZVdpZHRoO1xuXHRcdFx0bGV0IHNjYWxlID0gdGFyZ2V0UmF0aW8gPCBzb3VyY2VSYXRpbyA/IHRhcmdldFdpZHRoIC8gc291cmNlV2lkdGggOiB0YXJnZXRIZWlnaHQgLyBzb3VyY2VIZWlnaHQ7XG5cdFx0XHR0aGlzLmNhbWVyYS5zZXRWaWV3cG9ydChzb3VyY2VXaWR0aCAqIHNjYWxlLCBzb3VyY2VIZWlnaHQgKiBzY2FsZSk7XG5cdFx0fVxuXHRcdHRoaXMuY2FtZXJhLnVwZGF0ZSgpO1xuXHR9XG5cblx0cHJpdmF0ZSBlbmFibGVSZW5kZXJlciAocmVuZGVyZXI6IFBvbHlnb25CYXRjaGVyIHwgU2hhcGVSZW5kZXJlciB8IFNrZWxldG9uRGVidWdSZW5kZXJlcikge1xuXHRcdGlmICh0aGlzLmFjdGl2ZVJlbmRlcmVyID09PSByZW5kZXJlcikgcmV0dXJuO1xuXHRcdHRoaXMuZW5kKCk7XG5cdFx0aWYgKHJlbmRlcmVyIGluc3RhbmNlb2YgUG9seWdvbkJhdGNoZXIpIHtcblx0XHRcdHRoaXMuYmF0Y2hlclNoYWRlci5iaW5kKCk7XG5cdFx0XHR0aGlzLmJhdGNoZXJTaGFkZXIuc2V0VW5pZm9ybTR4NGYoU2hhZGVyLk1WUF9NQVRSSVgsIHRoaXMuY2FtZXJhLnByb2plY3Rpb25WaWV3LnZhbHVlcyk7XG5cdFx0XHR0aGlzLmJhdGNoZXJTaGFkZXIuc2V0VW5pZm9ybWkoXCJ1X3RleHR1cmVcIiwgMCk7XG5cdFx0XHR0aGlzLmJhdGNoZXIuYmVnaW4odGhpcy5iYXRjaGVyU2hhZGVyKTtcblx0XHRcdHRoaXMuYWN0aXZlUmVuZGVyZXIgPSB0aGlzLmJhdGNoZXI7XG5cdFx0fSBlbHNlIGlmIChyZW5kZXJlciBpbnN0YW5jZW9mIFNoYXBlUmVuZGVyZXIpIHtcblx0XHRcdHRoaXMuc2hhcGVzU2hhZGVyLmJpbmQoKTtcblx0XHRcdHRoaXMuc2hhcGVzU2hhZGVyLnNldFVuaWZvcm00eDRmKFNoYWRlci5NVlBfTUFUUklYLCB0aGlzLmNhbWVyYS5wcm9qZWN0aW9uVmlldy52YWx1ZXMpO1xuXHRcdFx0dGhpcy5zaGFwZXMuYmVnaW4odGhpcy5zaGFwZXNTaGFkZXIpO1xuXHRcdFx0dGhpcy5hY3RpdmVSZW5kZXJlciA9IHRoaXMuc2hhcGVzO1xuXHRcdH0gZWxzZVxuXHRcdFx0dGhpcy5hY3RpdmVSZW5kZXJlciA9IHRoaXMuc2tlbGV0b25EZWJ1Z1JlbmRlcmVyO1xuXHR9XG59XG5cbmV4cG9ydCBlbnVtIFJlc2l6ZU1vZGUge1xuXHRTdHJldGNoLFxuXHRFeHBhbmQsXG5cdEZpdFxufVxuIl19
package/dist/Shader.d.ts CHANGED
@@ -1,16 +1,16 @@
1
1
  /******************************************************************************
2
2
  * Spine Runtimes License Agreement
3
- * Last updated July 28, 2023. Replaces all prior versions.
3
+ * Last updated April 5, 2025. Replaces all prior versions.
4
4
  *
5
- * Copyright (c) 2013-2023, Esoteric Software LLC
5
+ * Copyright (c) 2013-2025, Esoteric Software LLC
6
6
  *
7
7
  * Integration of the Spine Runtimes into software or otherwise creating
8
8
  * derivative works of the Spine Runtimes is permitted under the terms and
9
9
  * conditions of Section 2 of the Spine Editor License Agreement:
10
10
  * http://esotericsoftware.com/spine-editor-license
11
11
  *
12
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
13
- * otherwise create derivative works of the Spine Runtimes (collectively,
12
+ * Otherwise, it is permitted to integrate the Spine Runtimes into software
13
+ * or otherwise create derivative works of the Spine Runtimes (collectively,
14
14
  * "Products"), provided that each user of the Products must obtain their own
15
15
  * Spine Editor license and redistribution of the Products in any form must
16
16
  * include this license and copyright notice.
@@ -23,8 +23,8 @@
23
23
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
24
24
  * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
25
25
  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
27
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27
+ * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
28
  *****************************************************************************/
29
29
  import { Disposable, Restorable } from "@esotericsoftware/spine-core";
30
30
  import { ManagedWebGLRenderingContext } from "./WebGL.js";
package/dist/Shader.js CHANGED
@@ -1,16 +1,16 @@
1
1
  /******************************************************************************
2
2
  * Spine Runtimes License Agreement
3
- * Last updated July 28, 2023. Replaces all prior versions.
3
+ * Last updated April 5, 2025. Replaces all prior versions.
4
4
  *
5
- * Copyright (c) 2013-2023, Esoteric Software LLC
5
+ * Copyright (c) 2013-2025, Esoteric Software LLC
6
6
  *
7
7
  * Integration of the Spine Runtimes into software or otherwise creating
8
8
  * derivative works of the Spine Runtimes is permitted under the terms and
9
9
  * conditions of Section 2 of the Spine Editor License Agreement:
10
10
  * http://esotericsoftware.com/spine-editor-license
11
11
  *
12
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
13
- * otherwise create derivative works of the Spine Runtimes (collectively,
12
+ * Otherwise, it is permitted to integrate the Spine Runtimes into software
13
+ * or otherwise create derivative works of the Spine Runtimes (collectively,
14
14
  * "Products"), provided that each user of the Products must obtain their own
15
15
  * Spine Editor license and redistribution of the Products in any form must
16
16
  * include this license and copyright notice.
@@ -23,8 +23,8 @@
23
23
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
24
24
  * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
25
25
  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
27
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27
+ * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
28
  *****************************************************************************/
29
29
  import { ManagedWebGLRenderingContext } from "./WebGL.js";
30
30
  export class Shader {
@@ -277,4 +277,4 @@ void main () {
277
277
  return new Shader(context, vs, fs);
278
278
  }
279
279
  }
280
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2hhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1NoYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytFQTJCK0U7QUFHL0UsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTFELE1BQU0sT0FBTyxNQUFNO0lBd0JrRTtJQUE4QjtJQXZCM0csTUFBTSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUM7SUFDbEMsTUFBTSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUM7SUFDL0IsTUFBTSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7SUFDekIsTUFBTSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUM7SUFDM0IsTUFBTSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUM7SUFDakMsTUFBTSxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUM7SUFFNUIsT0FBTyxDQUErQjtJQUN0QyxFQUFFLEdBQXVCLElBQUksQ0FBQztJQUM5QixRQUFRLENBQVM7SUFDakIsRUFBRSxHQUF1QixJQUFJLENBQUM7SUFDOUIsUUFBUSxDQUFTO0lBQ2pCLE9BQU8sR0FBd0IsSUFBSSxDQUFDO0lBQ3BDLE1BQU0sR0FBaUIsSUFBSSxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sR0FBaUIsSUFBSSxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sR0FBaUIsSUFBSSxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRWhELFVBQVUsS0FBTSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLGVBQWUsS0FBTSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ2hELGlCQUFpQixLQUFNLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDcEQscUJB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WVYsQ0FBQztRQUVBLE9BQU8sSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogU3BpbmUgUnVudGltZXMgTGljZW5zZSBBZ3JlZW1lbnRcbiAqIExhc3QgdXBkYXRlZCBKdWx5IDI4LCAyMDIzLiBSZXBsYWNlcyBhbGwgcHJpb3IgdmVyc2lvbnMuXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLTIwMjMsIEVzb3RlcmljIFNvZnR3YXJlIExMQ1xuICpcbiAqIEludGVncmF0aW9uIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlIG9yIG90aGVyd2lzZSBjcmVhdGluZ1xuICogZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgaXMgcGVybWl0dGVkIHVuZGVyIHRoZSB0ZXJtcyBhbmRcbiAqIGNvbmRpdGlvbnMgb2YgU2VjdGlvbiAyIG9mIHRoZSBTcGluZSBFZGl0b3IgTGljZW5zZSBBZ3JlZW1lbnQ6XG4gKiBodHRwOi8vZXNvdGVyaWNzb2Z0d2FyZS5jb20vc3BpbmUtZWRpdG9yLWxpY2Vuc2VcbiAqXG4gKiBPdGhlcndpc2UsIGl0IGlzIHBlcm1pdHRlZCB0byBpbnRlZ3JhdGUgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmUgb3JcbiAqIG90aGVyd2lzZSBjcmVhdGUgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgKGNvbGxlY3RpdmVseSxcbiAqIFwiUHJvZHVjdHNcIiksIHByb3ZpZGVkIHRoYXQgZWFjaCB1c2VyIG9mIHRoZSBQcm9kdWN0cyBtdXN0IG9idGFpbiB0aGVpciBvd25cbiAqIFNwaW5lIEVkaXRvciBsaWNlbnNlIGFuZCByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZHVjdHMgaW4gYW55IGZvcm0gbXVzdFxuICogaW5jbHVkZSB0aGlzIGxpY2Vuc2UgYW5kIGNvcHlyaWdodCBub3RpY2UuXG4gKlxuICogVEhFIFNQSU5FIFJVTlRJTUVTIEFSRSBQUk9WSURFRCBCWSBFU09URVJJQyBTT0ZUV0FSRSBMTEMgXCJBUyBJU1wiIEFORCBBTllcbiAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRURcbiAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkVcbiAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEVTT1RFUklDIFNPRlRXQVJFIExMQyBCRSBMSUFCTEUgRk9SIEFOWVxuICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVNcbiAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUyxcbiAqIEJVU0lORVNTIElOVEVSUlVQVElPTiwgT1IgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFMpIEhPV0VWRVIgQ0FVU0VEIEFORFxuICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlRcbiAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSEVcbiAqIFNQSU5FIFJVTlRJTUVTLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5pbXBvcnQgeyBEaXNwb3NhYmxlLCBSZXN0b3JhYmxlIH0gZnJvbSBcIkBlc290ZXJpY3NvZnR3YXJlL3NwaW5lLWNvcmVcIjtcbmltcG9ydCB7IE1hbmFnZWRXZWJHTFJlbmRlcmluZ0NvbnRleHQgfSBmcm9tIFwiLi9XZWJHTC5qc1wiO1xuXG5leHBvcnQgY2xhc3MgU2hhZGVyIGltcGxlbWVudHMgRGlzcG9zYWJsZSwgUmVzdG9yYWJsZSB7XG5cdHB1YmxpYyBzdGF0aWMgTVZQX01BVFJJWCA9IFwidV9wcm9qVHJhbnNcIjtcblx0cHVibGljIHN0YXRpYyBQT1NJVElPTiA9IFwiYV9wb3NpdGlvblwiO1xuXHRwdWJsaWMgc3RhdGljIENPTE9SID0gXCJhX2NvbG9yXCI7XG5cdHB1YmxpYyBzdGF0aWMgQ09MT1IyID0gXCJhX2NvbG9yMlwiO1xuXHRwdWJsaWMgc3RhdGljIFRFWENPT1JEUyA9IFwiYV90ZXhDb29yZHNcIjtcblx0cHVibGljIHN0YXRpYyBTQU1QTEVSID0gXCJ1X3RleHR1cmVcIjtcblxuXHRwcml2YXRlIGNvbnRleHQ6IE1hbmFnZWRXZWJHTFJlbmRlcmluZ0NvbnRleHQ7XG5cdHByaXZhdGUgdnM6IFdlYkdMU2hhZGVyIHwgbnVsbCA9IG51bGw7XG5cdHByaXZhdGUgdnNTb3VyY2U6IHN0cmluZztcblx0cHJpdmF0ZSBmczogV2ViR0xTaGFkZXIgfCBudWxsID0gbnVsbDtcblx0cHJpdmF0ZSBmc1NvdXJjZTogc3RyaW5nO1xuXHRwcml2YXRlIHByb2dyYW06IFdlYkdMUHJvZ3JhbSB8IG51bGwgPSBudWxsO1xuXHRwcml2YXRlIHRtcDJ4MjogRmxvYXQzMkFycmF5ID0gbmV3IEZsb2F0MzJBcnJheSgyICogMik7XG5cdHByaXZhdGUgdG1wM3gzOiBGbG9hdDMyQXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KDMgKiAzKTtcblx0cHJpdmF0ZSB0bXA0eDQ6IEZsb2F0MzJBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkoNCAqIDQpO1xuXG5cdHB1YmxpYyBnZXRQcm9ncmFtICgpIHsgcmV0dXJuIHRoaXMucHJvZ3JhbTsgfVxuXHRwdWJsaWMgZ2V0VmVydGV4U2hhZGVyICgpIHsgcmV0dXJuIHRoaXMudmVydGV4U2hhZGVyOyB9XG5cdHB1YmxpYyBnZXRGcmFnbWVudFNoYWRlciAoKSB7IHJldHVybiB0aGlzLmZyYWdtZW50U2hhZGVyOyB9XG5cdHB1YmxpYyBnZXRWZXJ0ZXhTaGFkZXJTb3VyY2UgKCkgeyByZXR1cm4gdGhpcy52c1NvdXJjZTsgfVxuXHRwdWJsaWMgZ2V0RnJhZ21lbnRTb3VyY2UgKCkgeyByZXR1cm4gdGhpcy5mc1NvdXJjZTsgfVxuXG5cdGNvbnN0cnVjdG9yIChjb250ZXh0OiBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0IHwgV2ViR0xSZW5kZXJpbmdDb250ZXh0LCBwcml2YXRlIHZlcnRleFNoYWRlcjogc3RyaW5nLCBwcml2YXRlIGZyYWdtZW50U2hhZGVyOiBzdHJpbmcpIHtcblx0XHR0aGlzLnZzU291cmNlID0gdmVydGV4U2hhZGVyO1xuXHRcdHRoaXMuZnNTb3VyY2UgPSBmcmFnbWVudFNoYWRlcjtcblx0XHR0aGlzLmNvbnRleHQgPSBjb250ZXh0IGluc3RhbmNlb2YgTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dCA/IGNvbnRleHQgOiBuZXcgTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dChjb250ZXh0KTtcblx0XHR0aGlzLmNvbnRleHQuYWRkUmVzdG9yYWJsZSh0aGlzKTtcblx0XHR0aGlzLmNvbXBpbGUoKTtcblx0fVxuXG5cdHByaXZhdGUgY29tcGlsZSAoKSB7XG5cdFx0bGV0IGdsID0gdGhpcy5jb250ZXh0LmdsO1xuXHRcdHRyeSB7XG5cdFx0XHR0aGlzLnZzID0gdGhpcy5jb21waWxlU2hhZGVyKGdsLlZFUlRFWF9TSEFERVIsIHRoaXMudmVydGV4U2hhZGVyKTtcblx0XHRcdGlmICghdGhpcy52cykgdGhyb3cgbmV3IEVycm9yKFwiQ291bGRuJ3QgY29tcGlsZSB2ZXJ0ZXggc2hhZGVyLlwiKTtcblx0XHRcdHRoaXMuZnMgPSB0aGlzLmNvbXBpbGVTaGFkZXIoZ2wuRlJBR01FTlRfU0hBREVSLCB0aGlzLmZyYWdtZW50U2hhZGVyKTtcblx0XHRcdGlmICghdGhpcy5mcykgdGhyb3cgbmV3IEVycm9yKFwiQ291bGRuI3QgY29tcGlsZSBmcmFnbWVudCBzaGFkZXIuXCIpO1xuXHRcdFx0dGhpcy5wcm9ncmFtID0gdGhpcy5jb21waWxlUHJvZ3JhbSh0aGlzLnZzLCB0aGlzLmZzKTtcblx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHR0aGlzLmRpc3Bvc2UoKTtcblx0XHRcdHRocm93IGU7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBjb21waWxlU2hhZGVyICh0eXBlOiBudW1iZXIsIHNvdXJjZTogc3RyaW5nKSB7XG5cdFx0bGV0IGdsID0gdGhpcy5jb250ZXh0LmdsO1xuXHRcdGxldCBzaGFkZXIgPSBnbC5jcmVhdGVTaGFkZXIodHlwZSk7XG5cdFx0aWYgKCFzaGFkZXIpIHRocm93IG5ldyBFcnJvcihcIkNvdWxkbid0IGNyZWF0ZSBzaGFkZXIuXCIpO1xuXHRcdGdsLnNoYWRlclNvdXJjZShzaGFkZXIsIHNvdXJjZSk7XG5cdFx0Z2wuY29tcGlsZVNoYWRlcihzaGFkZXIpO1xuXHRcdGlmICghZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKHNoYWRlciwgZ2wuQ09NUElMRV9TVEFUVVMpKSB7XG5cdFx0XHRsZXQgZXJyb3IgPSBcIkNvdWxkbid0IGNvbXBpbGUgc2hhZGVyOiBcIiArIGdsLmdldFNoYWRlckluZm9Mb2coc2hhZGVyKTtcblx0XHRcdGdsLmRlbGV0ZVNoYWRlcihzaGFkZXIpO1xuXHRcdFx0aWYgKCFnbC5pc0NvbnRleHRMb3N0KCkpIHRocm93IG5ldyBFcnJvcihlcnJvcik7XG5cdFx0fVxuXHRcdHJldHVybiBzaGFkZXI7XG5cdH1cblxuXHRwcml2YXRlIGNvbXBpbGVQcm9ncmFtICh2czogV2ViR0xTaGFkZXIsIGZzOiBXZWJHTFNoYWRlcikge1xuXHRcdGxldCBnbCA9IHRoaXMuY29udGV4dC5nbDtcblx0XHRsZXQgcHJvZ3JhbSA9IGdsLmNyZWF0ZVByb2dyYW0oKTtcblx0XHRpZiAoIXByb2dyYW0pIHRocm93IG5ldyBFcnJvcihcIkNvdWxkbid0IGNvbXBpbGUgcHJvZ3JhbS5cIik7XG5cdFx0Z2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIHZzKTtcblx0XHRnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgZnMpO1xuXHRcdGdsLmxpbmtQcm9ncmFtKHByb2dyYW0pO1xuXG5cdFx0aWYgKCFnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIGdsLkxJTktfU1RBVFVTKSkge1xuXHRcdFx0bGV0IGVycm9yID0gXCJDb3VsZG4ndCBjb21waWxlIHNoYWRlciBwcm9ncmFtOiBcIiArIGdsLmdldFByb2dyYW1JbmZvTG9nKHByb2dyYW0pO1xuXHRcdFx0Z2wuZGVsZXRlUHJvZ3JhbShwcm9ncmFtKTtcblx0XHRcdGlmICghZ2wuaXNDb250ZXh0TG9zdCgpKSB0aHJvdyBuZXcgRXJyb3IoZXJyb3IpO1xuXHRcdH1cblx0XHRyZXR1cm4gcHJvZ3JhbTtcblx0fVxuXG5cdHJlc3RvcmUgKCkge1xuXHRcdHRoaXMuY29tcGlsZSgpO1xuXHR9XG5cblx0cHVibGljIGJpbmQgKCkge1xuXHRcdHRoaXMuY29udGV4dC5nbC51c2VQcm9ncmFtKHRoaXMucHJvZ3JhbSk7XG5cdH1cblxuXHRwdWJsaWMgdW5iaW5kICgpIHtcblx0XHR0aGlzLmNvbnRleHQuZ2wudXNlUHJvZ3JhbShudWxsKTtcblx0fVxuXG5cdHB1YmxpYyBzZXRVbmlmb3JtaSAodW5pZm9ybTogc3RyaW5nLCB2YWx1ZTogbnVtYmVyKSB7XG5cdFx0dGhpcy5jb250ZXh0LmdsLnVuaWZvcm0xaSh0aGlzLmdldFVuaWZvcm1Mb2NhdGlvbih1bmlmb3JtKSwgdmFsdWUpO1xuXHR9XG5cblx0cHVibGljIHNldFVuaWZvcm1mICh1bmlmb3JtOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIpIHtcblx0XHR0aGlzLmNvbnRleHQuZ2wudW5pZm9ybTFmKHRoaXMuZ2V0VW5pZm9ybUxvY2F0aW9uKHVuaWZvcm0pLCB2YWx1ZSk7XG5cdH1cblxuXHRwdWJsaWMgc2V0VW5pZm9ybTJmICh1bmlmb3JtOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIsIHZhbHVlMjogbnVtYmVyKSB7XG5cdFx0dGhpcy5jb250ZXh0LmdsLnVuaWZvcm0yZih0aGlzLmdldFVuaWZvcm1Mb2NhdGlvbih1bmlmb3JtKSwgdmFsdWUsIHZhbHVlMik7XG5cdH1cblxuXHRwdWJsaWMgc2V0VW5pZm9ybTNmICh1bmlmb3JtOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIsIHZhbHVlMjogbnVtYmVyLCB2YWx1ZTM6IG51bWJlcikge1xuXHRcdHRoaXMuY29udGV4dC5nbC51bmlmb3JtM2YodGhpcy5nZXRVbmlmb3JtTG9jYXRpb24odW5pZm9ybSksIHZhbHVlLCB2YWx1ZTIsIHZhbHVlMyk7XG5cdH1cblxuXHRwdWJsaWMgc2V0VW5pZm9ybTRmICh1bmlmb3JtOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIsIHZhbHVlMjogbnVtYmVyLCB2YWx1ZTM6IG51bWJlciwgdmFsdWU0OiBudW1iZXIpIHtcblx0XHR0aGlzLmNvbnRleHQuZ2wudW5pZm9ybTRmKHRoaXMuZ2V0VW5pZm9ybUxvY2F0aW9uKHVuaWZvcm0pLCB2YWx1ZSwgdmFsdWUyLCB2YWx1ZTMsIHZhbHVlNCk7XG5cdH1cblxuXHRwdWJsaWMgc2V0VW5pZm9ybTJ4MmYgKHVuaWZvcm06IHN0cmluZywgdmFsdWU6IEFycmF5TGlrZTxudW1iZXI+KSB7XG5cdFx0bGV0IGdsID0gdGhpcy5jb250ZXh0LmdsO1xuXHRcdHRoaXMudG1wMngyLnNldCh2YWx1ZSk7XG5cdFx0Z2wudW5pZm9ybU1hdHJpeDJmdih0aGlzLmdldFVuaWZvcm1Mb2NhdGlvbih1bmlmb3JtKSwgZmFsc2UsIHRoaXMudG1wMngyKTtcblx0fVxuXG5cdHB1YmxpYyBzZXRVbmlmb3JtM3gzZiAodW5pZm9ybTogc3RyaW5nLCB2YWx1ZTogQXJyYXlMaWtlPG51bWJlcj4pIHtcblx0XHRsZXQgZ2wgPSB0aGlzLmNvbnRleHQuZ2w7XG5cdFx0dGhpcy50bXAzeDMuc2V0KHZhbHVlKTtcblx0XHRnbC51bmlmb3JtTWF0cml4M2Z2KHRoaXMuZ2V0VW5pZm9ybUxvY2F0aW9uKHVuaWZvcm0pLCBmYWxzZSwgdGhpcy50bXAzeDMpO1xuXHR9XG5cblx0cHVibGljIHNldFVuaWZvcm00eDRmICh1bmlmb3JtOiBzdHJpbmcsIHZhbHVlOiBBcnJheUxpa2U8bnVtYmVyPikge1xuXHRcdGxldCBnbCA9IHRoaXMuY29udGV4dC5nbDtcblx0XHR0aGlzLnRtcDR4NC5zZXQodmFsdWUpO1xuXHRcdGdsLnVuaWZvcm1NYXRyaXg0ZnYodGhpcy5nZXRVbmlmb3JtTG9jYXRpb24odW5pZm9ybSksIGZhbHNlLCB0aGlzLnRtcDR4NCk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0VW5pZm9ybUxvY2F0aW9uICh1bmlmb3JtOiBzdHJpbmcpOiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiB8IG51bGwge1xuXHRcdGxldCBnbCA9IHRoaXMuY29udGV4dC5nbDtcblx0XHRpZiAoIXRoaXMucHJvZ3JhbSkgdGhyb3cgbmV3IEVycm9yKFwiU2hhZGVyIG5vdCBjb21waWxlZC5cIik7XG5cdFx0bGV0IGxvY2F0aW9uID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHRoaXMucHJvZ3JhbSwgdW5pZm9ybSk7XG5cdFx0aWYgKCFsb2NhdGlvbiAmJiAhZ2wuaXNDb250ZXh0TG9zdCgpKSB0aHJvdyBuZXcgRXJyb3IoYENvdWxkbid0IGZpbmQgbG9jYXRpb24gZm9yIHVuaWZvcm0gJHt1bmlmb3JtfWApO1xuXHRcdHJldHVybiBsb2NhdGlvbjtcblx0fVxuXG5cdHB1YmxpYyBnZXRBdHRyaWJ1dGVMb2NhdGlvbiAoYXR0cmlidXRlOiBzdHJpbmcpOiBudW1iZXIge1xuXHRcdGxldCBnbCA9IHRoaXMuY29udGV4dC5nbDtcblx0XHRpZiAoIXRoaXMucHJvZ3JhbSkgdGhyb3cgbmV3IEVycm9yKFwiU2hhZGVyIG5vdCBjb21waWxlZC5cIik7XG5cdFx0bGV0IGxvY2F0aW9uID0gZ2wuZ2V0QXR0cmliTG9jYXRpb24odGhpcy5wcm9ncmFtLCBhdHRyaWJ1dGUpO1xuXHRcdGlmIChsb2NhdGlvbiA9PSAtMSAmJiAhZ2wuaXNDb250ZXh0TG9zdCgpKSB0aHJvdyBuZXcgRXJyb3IoYENvdWxkbid0IGZpbmQgbG9jYXRpb24gZm9yIGF0dHJpYnV0ZSAke2F0dHJpYnV0ZX1gKTtcblx0XHRyZXR1cm4gbG9jYXRpb247XG5cdH1cblxuXHRwdWJsaWMgZGlzcG9zZSAoKSB7XG5cdFx0dGhpcy5jb250ZXh0LnJlbW92ZVJlc3RvcmFibGUodGhpcyk7XG5cblx0XHRsZXQgZ2wgPSB0aGlzLmNvbnRleHQuZ2w7XG5cdFx0aWYgKHRoaXMudnMpIHtcblx0XHRcdGdsLmRlbGV0ZVNoYWRlcih0aGlzLnZzKTtcblx0XHRcdHRoaXMudnMgPSBudWxsO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLmZzKSB7XG5cdFx0XHRnbC5kZWxldGVTaGFkZXIodGhpcy5mcyk7XG5cdFx0XHR0aGlzLmZzID0gbnVsbDtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5wcm9ncmFtKSB7XG5cdFx0XHRnbC5kZWxldGVQcm9ncmFtKHRoaXMucHJvZ3JhbSk7XG5cdFx0XHR0aGlzLnByb2dyYW0gPSBudWxsO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgbmV3Q29sb3JlZFRleHR1cmVkIChjb250ZXh0OiBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0IHwgV2ViR0xSZW5kZXJpbmdDb250ZXh0KTogU2hhZGVyIHtcblx0XHRsZXQgdnMgPSBgXG5hdHRyaWJ1dGUgdmVjNCAke1NoYWRlci5QT1NJVElPTn07XG5hdHRyaWJ1dGUgdmVjNCAke1NoYWRlci5DT0xPUn07XG5hdHRyaWJ1dGUgdmVjMiAke1NoYWRlci5URVhDT09SRFN9O1xudW5pZm9ybSBtYXQ0ICR7U2hhZGVyLk1WUF9NQVRSSVh9O1xudmFyeWluZyB2ZWM0IHZfY29sb3I7XG52YXJ5aW5nIHZlYzIgdl90ZXhDb29yZHM7XG5cbnZvaWQgbWFpbiAoKSB7XG5cdHZfY29sb3IgPSAke1NoYWRlci5DT0xPUn07XG5cdHZfdGV4Q29vcmRzID0gJHtTaGFkZXIuVEVYQ09PUkRTfTtcblx0Z2xfUG9zaXRpb24gPSAke1NoYWRlci5NVlBfTUFUUklYfSAqICR7U2hhZGVyLlBPU0lUSU9OfTtcbn1cbmA7XG5cblx0XHRsZXQgZnMgPSBgXG4jaWZkZWYgR0xfRVNcblx0I2RlZmluZSBMT1dQIGxvd3Bcblx0cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZWxzZVxuXHQjZGVmaW5lIExPV1BcbiNlbmRpZlxudmFyeWluZyBMT1dQIHZlYzQgdl9jb2xvcjtcbnZhcnlpbmcgdmVjMiB2X3RleENvb3JkcztcbnVuaWZvcm0gc2FtcGxlcjJEIHVfdGV4dHVyZTtcblxudm9pZCBtYWluICgpIHtcblx0Z2xfRnJhZ0NvbG9yID0gdl9jb2xvciAqIHRleHR1cmUyRCh1X3RleHR1cmUsIHZfdGV4Q29vcmRzKTtcbn1cbmA7XG5cblx0XHRyZXR1cm4gbmV3IFNoYWRlcihjb250ZXh0LCB2cywgZnMpO1xuXHR9XG5cblx0cHVibGljIHN0YXRpYyBuZXdUd29Db2xvcmVkVGV4dHVyZWQgKGNvbnRleHQ6IE1hbmFnZWRXZWJHTFJlbmRlcmluZ0NvbnRleHQgfCBXZWJHTFJlbmRlcmluZ0NvbnRleHQpOiBTaGFkZXIge1xuXHRcdGxldCB2cyA9IGBcbmF0dHJpYnV0ZSB2ZWM0ICR7U2hhZGVyLlBPU0lUSU9OfTtcbmF0dHJpYnV0ZSB2ZWM0ICR7U2hhZGVyLkNPTE9SfTtcbmF0dHJpYnV0ZSB2ZWM0ICR7U2hhZGVyLkNPTE9SMn07XG5hdHRyaWJ1dGUgdmVjMiAke1NoYWRlci5URVhDT09SRFN9O1xudW5pZm9ybSBtYXQ0ICR7U2hhZGVyLk1WUF9NQVRSSVh9O1xudmFyeWluZyB2ZWM0IHZfbGlnaHQ7XG52YXJ5aW5nIHZlYzQgdl9kYXJrO1xudmFyeWluZyB2ZWMyIHZfdGV4Q29vcmRzO1xuXG52b2lkIG1haW4gKCkge1xuXHR2X2xpZ2h0ID0gJHtTaGFkZXIuQ09MT1J9O1xuXHR2X2RhcmsgPSAke1NoYWRlci5DT0xPUjJ9O1xuXHR2X3RleENvb3JkcyA9ICR7U2hhZGVyLlRFWENPT1JEU307XG5cdGdsX1Bvc2l0aW9uID0gJHtTaGFkZXIuTVZQX01BVFJJWH0gKiAke1NoYWRlci5QT1NJVElPTn07XG59XG5gO1xuXG5cdFx0bGV0IGZzID0gYFxuI2lmZGVmIEdMX0VTXG5cdCNkZWZpbmUgTE9XUCBsb3dwXG5cdHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2Vsc2Vcblx0I2RlZmluZSBMT1dQXG4jZW5kaWZcbnZhcnlpbmcgTE9XUCB2ZWM0IHZfbGlnaHQ7XG52YXJ5aW5nIExPV1AgdmVjNCB2X2Rhcms7XG52YXJ5aW5nIHZlYzIgdl90ZXhDb29yZHM7XG51bmlmb3JtIHNhbXBsZXIyRCB1X3RleHR1cmU7XG5cbnZvaWQgbWFpbiAoKSB7XG5cdHZlYzQgdGV4Q29sb3IgPSB0ZXh0dXJlMkQodV90ZXh0dXJlLCB2X3RleENvb3Jkcyk7XG5cdGdsX0ZyYWdDb2xvci5hID0gdGV4Q29sb3IuYSAqIHZfbGlnaHQuYTtcblx0Z2xfRnJhZ0NvbG9yLnJnYiA9ICgodGV4Q29sb3IuYSAtIDEuMCkgKiB2X2RhcmsuYSArIDEuMCAtIHRleENvbG9yLnJnYikgKiB2X2RhcmsucmdiICsgdGV4Q29sb3IucmdiICogdl9saWdodC5yZ2I7XG59XG5gO1xuXG5cdFx0cmV0dXJuIG5ldyBTaGFkZXIoY29udGV4dCwgdnMsIGZzKTtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgbmV3Q29sb3JlZCAoY29udGV4dDogTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dCB8IFdlYkdMUmVuZGVyaW5nQ29udGV4dCk6IFNoYWRlciB7XG5cdFx0bGV0IHZzID0gYFxuYXR0cmlidXRlIHZlYzQgJHtTaGFkZXIuUE9TSVRJT059O1xuYXR0cmlidXRlIHZlYzQgJHtTaGFkZXIuQ09MT1J9O1xudW5pZm9ybSBtYXQ0ICR7U2hhZGVyLk1WUF9NQVRSSVh9O1xudmFyeWluZyB2ZWM0IHZfY29sb3I7XG5cbnZvaWQgbWFpbiAoKSB7XG5cdHZfY29sb3IgPSAke1NoYWRlci5DT0xPUn07XG5cdGdsX1Bvc2l0aW9uID0gJHtTaGFkZXIuTVZQX01BVFJJWH0gKiAke1NoYWRlci5QT1NJVElPTn07XG59XG5gO1xuXG5cdFx0bGV0IGZzID0gYFxuI2lmZGVmIEdMX0VTXG5cdCNkZWZpbmUgTE9XUCBsb3dwXG5cdHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2Vsc2Vcblx0I2RlZmluZSBMT1dQXG4jZW5kaWZcbnZhcnlpbmcgTE9XUCB2ZWM0IHZfY29sb3I7XG5cbnZvaWQgbWFpbiAoKSB7XG5cdGdsX0ZyYWdDb2xvciA9IHZfY29sb3I7XG59XG5gO1xuXG5cdFx0cmV0dXJuIG5ldyBTaGFkZXIoY29udGV4dCwgdnMsIGZzKTtcblx0fVxufVxuIl19
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2hhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1NoYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytFQTJCK0U7QUFHL0UsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTFELE1BQU0sT0FBTyxNQUFNO0lBd0JrRTtJQUE4QjtJQXZCM0csTUFBTSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUM7SUFDbEMsTUFBTSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUM7SUFDL0IsTUFBTSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7SUFDekIsTUFBTSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUM7SUFDM0IsTUFBTSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUM7SUFDakMsTUFBTSxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUM7SUFFNUIsT0FBTyxDQUErQjtJQUN0QyxFQUFFLEdBQXVCLElBQUksQ0FBQztJQUM5QixRQUFRLENBQVM7SUFDakIsRUFBRSxHQUF1QixJQUFJLENBQUM7SUFDOUIsUUFBUSxDQUFTO0lBQ2pCLE9BQU8sR0FBd0IsSUFBSSxDQUFDO0lBQ3BDLE1BQU0sR0FBaUIsSUFBSSxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sR0FBaUIsSUFBSSxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sR0FBaUIsSUFBSSxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRWhELFVBQVUsS0FBTSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLGVBQWUsS0FBTSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ2hELGlCQUFpQixLQUFNLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDcEQscUJBQXFCLEtBQU0sT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNsRCxpQkFBaUIsS0FBTSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBRXJELFlBQWEsT0FBNkQsRUFBVSxZQUFvQixFQUFVLGNBQXNCO1FBQXBELGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFDdkksSUFBSSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxjQUFjLENBQUM7UUFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLFlBQVksNEJBQTRCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNySCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVPLE9BQU87UUFDZCxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUM7WUFDSixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztZQUNqRSxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDdEUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztZQUNuRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZixNQUFNLENBQUMsQ0FBQztRQUNULENBQUM7SUFDRixDQUFDO0lBRU8sYUFBYSxDQUFFLElBQVksRUFBRSxNQUFjO1FBQ2xELElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3pCLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLE1BQU07WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDeEQsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUN2RCxJQUFJLEtBQUssR0FBRywyQkFBMkIsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEUsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRTtnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNmLENBQUM7SUFFTyxjQUFjLENBQUUsRUFBZSxFQUFFLEVBQWU7UUFDdkQsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDekIsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQzNELEVBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLEVBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLEVBQUUsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDdEQsSUFBSSxLQUFLLEdBQUcsbUNBQW1DLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2hGLEVBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUU7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDaEIsQ0FBQztJQUVELE9BQU87UUFDTixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVNLElBQUk7UUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxNQUFNO1FBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxXQUFXLENBQUUsT0FBZSxFQUFFLEtBQWE7UUFDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRU0sV0FBVyxDQUFFLE9BQWUsRUFBRSxLQUFhO1FBQ2pELElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVNLFlBQVksQ0FBRSxPQUFlLEVBQUUsS0FBYSxFQUFFLE1BQWM7UUFDbEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVNLFlBQVksQ0FBRSxPQUFlLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxNQUFjO1FBQ2xGLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRU0sWUFBWSxDQUFFLE9BQWUsRUFBRSxLQUFhLEVBQUUsTUFBYyxFQUFFLE1BQWMsRUFBRSxNQUFjO1FBQ2xHLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVNLGNBQWMsQ0FBRSxPQUFlLEVBQUUsS0FBd0I7UUFDL0QsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsRUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFTSxjQUFjLENBQUUsT0FBZSxFQUFFLEtBQXdCO1FBQy9ELElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRU0sY0FBYyxDQUFFLE9BQWUsRUFBRSxLQUF3QjtRQUMvRCxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVNLGtCQUFrQixDQUFFLE9BQWU7UUFDekMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzNELElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN2RyxPQUFPLFFBQVEsQ0FBQztJQUNqQixDQUFDO0lBRU0sb0JBQW9CLENBQUUsU0FBaUI7UUFDN0MsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzNELElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzdELElBQUksUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDaEgsT0FBTyxRQUFRLENBQUM7SUFDakIsQ0FBQztJQUVNLE9BQU87UUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2IsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2IsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLENBQUM7SUFDRixDQUFDO0lBRU0sTUFBTSxDQUFDLGtCQUFrQixDQUFFLE9BQTZEO1FBQzlGLElBQUksRUFBRSxHQUFHO2lCQUNNLE1BQU0sQ0FBQyxRQUFRO2lCQUNmLE1BQU0sQ0FBQyxLQUFLO2lCQUNaLE1BQU0sQ0FBQyxTQUFTO2VBQ2xCLE1BQU0sQ0FBQyxVQUFVOzs7OzthQUtuQixNQUFNLENBQUMsS0FBSztpQkFDUixNQUFNLENBQUMsU0FBUztpQkFDaEIsTUFBTSxDQUFDLFVBQVUsTUFBTSxNQUFNLENBQUMsUUFBUTs7Q0FFdEQsQ0FBQztRQUVBLElBQUksRUFBRSxHQUFHOzs7Ozs7Ozs7Ozs7OztDQWNWLENBQUM7UUFFQSxPQUFPLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBRSxPQUE2RDtRQUNqRyxJQUFJLEVBQUUsR0FBRztpQkFDTSxNQUFNLENBQUMsUUFBUTtpQkFDZixNQUFNLENBQUMsS0FBSztpQkFDWixNQUFNLENBQUMsTUFBTTtpQkFDYixNQUFNLENBQUMsU0FBUztlQUNsQixNQUFNLENBQUMsVUFBVTs7Ozs7O2FBTW5CLE1BQU0sQ0FBQyxLQUFLO1lBQ2IsTUFBTSxDQUFDLE1BQU07aUJBQ1IsTUFBTSxDQUFDLFNBQVM7aUJBQ2hCLE1BQU0sQ0FBQyxVQUFVLE1BQU0sTUFBTSxDQUFDLFFBQVE7O0NBRXRELENBQUM7UUFFQSxJQUFJLEVBQUUsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FpQlYsQ0FBQztRQUVBLE9BQU8sSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0sTUFBTSxDQUFDLFVBQVUsQ0FBRSxPQUE2RDtRQUN0RixJQUFJLEVBQUUsR0FBRztpQkFDTSxNQUFNLENBQUMsUUFBUTtpQkFDZixNQUFNLENBQUMsS0FBSztlQUNkLE1BQU0sQ0FBQyxVQUFVOzs7O2FBSW5CLE1BQU0sQ0FBQyxLQUFLO2lCQUNSLE1BQU0sQ0FBQyxVQUFVLE1BQU0sTUFBTSxDQUFDLFFBQVE7O0NBRXRELENBQUM7UUFFQSxJQUFJLEVBQUUsR0FBRzs7Ozs7Ozs7Ozs7O0NBWVYsQ0FBQztRQUVBLE9BQU8sSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogU3BpbmUgUnVudGltZXMgTGljZW5zZSBBZ3JlZW1lbnRcbiAqIExhc3QgdXBkYXRlZCBBcHJpbCA1LCAyMDI1LiBSZXBsYWNlcyBhbGwgcHJpb3IgdmVyc2lvbnMuXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLTIwMjUsIEVzb3RlcmljIFNvZnR3YXJlIExMQ1xuICpcbiAqIEludGVncmF0aW9uIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlIG9yIG90aGVyd2lzZSBjcmVhdGluZ1xuICogZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgaXMgcGVybWl0dGVkIHVuZGVyIHRoZSB0ZXJtcyBhbmRcbiAqIGNvbmRpdGlvbnMgb2YgU2VjdGlvbiAyIG9mIHRoZSBTcGluZSBFZGl0b3IgTGljZW5zZSBBZ3JlZW1lbnQ6XG4gKiBodHRwOi8vZXNvdGVyaWNzb2Z0d2FyZS5jb20vc3BpbmUtZWRpdG9yLWxpY2Vuc2VcbiAqXG4gKiBPdGhlcndpc2UsIGl0IGlzIHBlcm1pdHRlZCB0byBpbnRlZ3JhdGUgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmVcbiAqIG9yIG90aGVyd2lzZSBjcmVhdGUgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgKGNvbGxlY3RpdmVseSxcbiAqIFwiUHJvZHVjdHNcIiksIHByb3ZpZGVkIHRoYXQgZWFjaCB1c2VyIG9mIHRoZSBQcm9kdWN0cyBtdXN0IG9idGFpbiB0aGVpciBvd25cbiAqIFNwaW5lIEVkaXRvciBsaWNlbnNlIGFuZCByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZHVjdHMgaW4gYW55IGZvcm0gbXVzdFxuICogaW5jbHVkZSB0aGlzIGxpY2Vuc2UgYW5kIGNvcHlyaWdodCBub3RpY2UuXG4gKlxuICogVEhFIFNQSU5FIFJVTlRJTUVTIEFSRSBQUk9WSURFRCBCWSBFU09URVJJQyBTT0ZUV0FSRSBMTEMgXCJBUyBJU1wiIEFORCBBTllcbiAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRURcbiAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkVcbiAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEVTT1RFUklDIFNPRlRXQVJFIExMQyBCRSBMSUFCTEUgRk9SIEFOWVxuICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVNcbiAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUyxcbiAqIEJVU0lORVNTIElOVEVSUlVQVElPTiwgT1IgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFMpIEhPV0VWRVIgQ0FVU0VEIEFORFxuICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlRcbiAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRlxuICogVEhFIFNQSU5FIFJVTlRJTUVTLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5pbXBvcnQgeyBEaXNwb3NhYmxlLCBSZXN0b3JhYmxlIH0gZnJvbSBcIkBlc290ZXJpY3NvZnR3YXJlL3NwaW5lLWNvcmVcIjtcbmltcG9ydCB7IE1hbmFnZWRXZWJHTFJlbmRlcmluZ0NvbnRleHQgfSBmcm9tIFwiLi9XZWJHTC5qc1wiO1xuXG5leHBvcnQgY2xhc3MgU2hhZGVyIGltcGxlbWVudHMgRGlzcG9zYWJsZSwgUmVzdG9yYWJsZSB7XG5cdHB1YmxpYyBzdGF0aWMgTVZQX01BVFJJWCA9IFwidV9wcm9qVHJhbnNcIjtcblx0cHVibGljIHN0YXRpYyBQT1NJVElPTiA9IFwiYV9wb3NpdGlvblwiO1xuXHRwdWJsaWMgc3RhdGljIENPTE9SID0gXCJhX2NvbG9yXCI7XG5cdHB1YmxpYyBzdGF0aWMgQ09MT1IyID0gXCJhX2NvbG9yMlwiO1xuXHRwdWJsaWMgc3RhdGljIFRFWENPT1JEUyA9IFwiYV90ZXhDb29yZHNcIjtcblx0cHVibGljIHN0YXRpYyBTQU1QTEVSID0gXCJ1X3RleHR1cmVcIjtcblxuXHRwcml2YXRlIGNvbnRleHQ6IE1hbmFnZWRXZWJHTFJlbmRlcmluZ0NvbnRleHQ7XG5cdHByaXZhdGUgdnM6IFdlYkdMU2hhZGVyIHwgbnVsbCA9IG51bGw7XG5cdHByaXZhdGUgdnNTb3VyY2U6IHN0cmluZztcblx0cHJpdmF0ZSBmczogV2ViR0xTaGFkZXIgfCBudWxsID0gbnVsbDtcblx0cHJpdmF0ZSBmc1NvdXJjZTogc3RyaW5nO1xuXHRwcml2YXRlIHByb2dyYW06IFdlYkdMUHJvZ3JhbSB8IG51bGwgPSBudWxsO1xuXHRwcml2YXRlIHRtcDJ4MjogRmxvYXQzMkFycmF5ID0gbmV3IEZsb2F0MzJBcnJheSgyICogMik7XG5cdHByaXZhdGUgdG1wM3gzOiBGbG9hdDMyQXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KDMgKiAzKTtcblx0cHJpdmF0ZSB0bXA0eDQ6IEZsb2F0MzJBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkoNCAqIDQpO1xuXG5cdHB1YmxpYyBnZXRQcm9ncmFtICgpIHsgcmV0dXJuIHRoaXMucHJvZ3JhbTsgfVxuXHRwdWJsaWMgZ2V0VmVydGV4U2hhZGVyICgpIHsgcmV0dXJuIHRoaXMudmVydGV4U2hhZGVyOyB9XG5cdHB1YmxpYyBnZXRGcmFnbWVudFNoYWRlciAoKSB7IHJldHVybiB0aGlzLmZyYWdtZW50U2hhZGVyOyB9XG5cdHB1YmxpYyBnZXRWZXJ0ZXhTaGFkZXJTb3VyY2UgKCkgeyByZXR1cm4gdGhpcy52c1NvdXJjZTsgfVxuXHRwdWJsaWMgZ2V0RnJhZ21lbnRTb3VyY2UgKCkgeyByZXR1cm4gdGhpcy5mc1NvdXJjZTsgfVxuXG5cdGNvbnN0cnVjdG9yIChjb250ZXh0OiBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0IHwgV2ViR0xSZW5kZXJpbmdDb250ZXh0LCBwcml2YXRlIHZlcnRleFNoYWRlcjogc3RyaW5nLCBwcml2YXRlIGZyYWdtZW50U2hhZGVyOiBzdHJpbmcpIHtcblx0XHR0aGlzLnZzU291cmNlID0gdmVydGV4U2hhZGVyO1xuXHRcdHRoaXMuZnNTb3VyY2UgPSBmcmFnbWVudFNoYWRlcjtcblx0XHR0aGlzLmNvbnRleHQgPSBjb250ZXh0IGluc3RhbmNlb2YgTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dCA/IGNvbnRleHQgOiBuZXcgTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dChjb250ZXh0KTtcblx0XHR0aGlzLmNvbnRleHQuYWRkUmVzdG9yYWJsZSh0aGlzKTtcblx0XHR0aGlzLmNvbXBpbGUoKTtcblx0fVxuXG5cdHByaXZhdGUgY29tcGlsZSAoKSB7XG5cdFx0bGV0IGdsID0gdGhpcy5jb250ZXh0LmdsO1xuXHRcdHRyeSB7XG5cdFx0XHR0aGlzLnZzID0gdGhpcy5jb21waWxlU2hhZGVyKGdsLlZFUlRFWF9TSEFERVIsIHRoaXMudmVydGV4U2hhZGVyKTtcblx0XHRcdGlmICghdGhpcy52cykgdGhyb3cgbmV3IEVycm9yKFwiQ291bGRuJ3QgY29tcGlsZSB2ZXJ0ZXggc2hhZGVyLlwiKTtcblx0XHRcdHRoaXMuZnMgPSB0aGlzLmNvbXBpbGVTaGFkZXIoZ2wuRlJBR01FTlRfU0hBREVSLCB0aGlzLmZyYWdtZW50U2hhZGVyKTtcblx0XHRcdGlmICghdGhpcy5mcykgdGhyb3cgbmV3IEVycm9yKFwiQ291bGRuI3QgY29tcGlsZSBmcmFnbWVudCBzaGFkZXIuXCIpO1xuXHRcdFx0dGhpcy5wcm9ncmFtID0gdGhpcy5jb21waWxlUHJvZ3JhbSh0aGlzLnZzLCB0aGlzLmZzKTtcblx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHR0aGlzLmRpc3Bvc2UoKTtcblx0XHRcdHRocm93IGU7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBjb21waWxlU2hhZGVyICh0eXBlOiBudW1iZXIsIHNvdXJjZTogc3RyaW5nKSB7XG5cdFx0bGV0IGdsID0gdGhpcy5jb250ZXh0LmdsO1xuXHRcdGxldCBzaGFkZXIgPSBnbC5jcmVhdGVTaGFkZXIodHlwZSk7XG5cdFx0aWYgKCFzaGFkZXIpIHRocm93IG5ldyBFcnJvcihcIkNvdWxkbid0IGNyZWF0ZSBzaGFkZXIuXCIpO1xuXHRcdGdsLnNoYWRlclNvdXJjZShzaGFkZXIsIHNvdXJjZSk7XG5cdFx0Z2wuY29tcGlsZVNoYWRlcihzaGFkZXIpO1xuXHRcdGlmICghZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKHNoYWRlciwgZ2wuQ09NUElMRV9TVEFUVVMpKSB7XG5cdFx0XHRsZXQgZXJyb3IgPSBcIkNvdWxkbid0IGNvbXBpbGUgc2hhZGVyOiBcIiArIGdsLmdldFNoYWRlckluZm9Mb2coc2hhZGVyKTtcblx0XHRcdGdsLmRlbGV0ZVNoYWRlcihzaGFkZXIpO1xuXHRcdFx0aWYgKCFnbC5pc0NvbnRleHRMb3N0KCkpIHRocm93IG5ldyBFcnJvcihlcnJvcik7XG5cdFx0fVxuXHRcdHJldHVybiBzaGFkZXI7XG5cdH1cblxuXHRwcml2YXRlIGNvbXBpbGVQcm9ncmFtICh2czogV2ViR0xTaGFkZXIsIGZzOiBXZWJHTFNoYWRlcikge1xuXHRcdGxldCBnbCA9IHRoaXMuY29udGV4dC5nbDtcblx0XHRsZXQgcHJvZ3JhbSA9IGdsLmNyZWF0ZVByb2dyYW0oKTtcblx0XHRpZiAoIXByb2dyYW0pIHRocm93IG5ldyBFcnJvcihcIkNvdWxkbid0IGNvbXBpbGUgcHJvZ3JhbS5cIik7XG5cdFx0Z2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIHZzKTtcblx0XHRnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgZnMpO1xuXHRcdGdsLmxpbmtQcm9ncmFtKHByb2dyYW0pO1xuXG5cdFx0aWYgKCFnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIGdsLkxJTktfU1RBVFVTKSkge1xuXHRcdFx0bGV0IGVycm9yID0gXCJDb3VsZG4ndCBjb21waWxlIHNoYWRlciBwcm9ncmFtOiBcIiArIGdsLmdldFByb2dyYW1JbmZvTG9nKHByb2dyYW0pO1xuXHRcdFx0Z2wuZGVsZXRlUHJvZ3JhbShwcm9ncmFtKTtcblx0XHRcdGlmICghZ2wuaXNDb250ZXh0TG9zdCgpKSB0aHJvdyBuZXcgRXJyb3IoZXJyb3IpO1xuXHRcdH1cblx0XHRyZXR1cm4gcHJvZ3JhbTtcblx0fVxuXG5cdHJlc3RvcmUgKCkge1xuXHRcdHRoaXMuY29tcGlsZSgpO1xuXHR9XG5cblx0cHVibGljIGJpbmQgKCkge1xuXHRcdHRoaXMuY29udGV4dC5nbC51c2VQcm9ncmFtKHRoaXMucHJvZ3JhbSk7XG5cdH1cblxuXHRwdWJsaWMgdW5iaW5kICgpIHtcblx0XHR0aGlzLmNvbnRleHQuZ2wudXNlUHJvZ3JhbShudWxsKTtcblx0fVxuXG5cdHB1YmxpYyBzZXRVbmlmb3JtaSAodW5pZm9ybTogc3RyaW5nLCB2YWx1ZTogbnVtYmVyKSB7XG5cdFx0dGhpcy5jb250ZXh0LmdsLnVuaWZvcm0xaSh0aGlzLmdldFVuaWZvcm1Mb2NhdGlvbih1bmlmb3JtKSwgdmFsdWUpO1xuXHR9XG5cblx0cHVibGljIHNldFVuaWZvcm1mICh1bmlmb3JtOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIpIHtcblx0XHR0aGlzLmNvbnRleHQuZ2wudW5pZm9ybTFmKHRoaXMuZ2V0VW5pZm9ybUxvY2F0aW9uKHVuaWZvcm0pLCB2YWx1ZSk7XG5cdH1cblxuXHRwdWJsaWMgc2V0VW5pZm9ybTJmICh1bmlmb3JtOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIsIHZhbHVlMjogbnVtYmVyKSB7XG5cdFx0dGhpcy5jb250ZXh0LmdsLnVuaWZvcm0yZih0aGlzLmdldFVuaWZvcm1Mb2NhdGlvbih1bmlmb3JtKSwgdmFsdWUsIHZhbHVlMik7XG5cdH1cblxuXHRwdWJsaWMgc2V0VW5pZm9ybTNmICh1bmlmb3JtOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIsIHZhbHVlMjogbnVtYmVyLCB2YWx1ZTM6IG51bWJlcikge1xuXHRcdHRoaXMuY29udGV4dC5nbC51bmlmb3JtM2YodGhpcy5nZXRVbmlmb3JtTG9jYXRpb24odW5pZm9ybSksIHZhbHVlLCB2YWx1ZTIsIHZhbHVlMyk7XG5cdH1cblxuXHRwdWJsaWMgc2V0VW5pZm9ybTRmICh1bmlmb3JtOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIsIHZhbHVlMjogbnVtYmVyLCB2YWx1ZTM6IG51bWJlciwgdmFsdWU0OiBudW1iZXIpIHtcblx0XHR0aGlzLmNvbnRleHQuZ2wudW5pZm9ybTRmKHRoaXMuZ2V0VW5pZm9ybUxvY2F0aW9uKHVuaWZvcm0pLCB2YWx1ZSwgdmFsdWUyLCB2YWx1ZTMsIHZhbHVlNCk7XG5cdH1cblxuXHRwdWJsaWMgc2V0VW5pZm9ybTJ4MmYgKHVuaWZvcm06IHN0cmluZywgdmFsdWU6IEFycmF5TGlrZTxudW1iZXI+KSB7XG5cdFx0bGV0IGdsID0gdGhpcy5jb250ZXh0LmdsO1xuXHRcdHRoaXMudG1wMngyLnNldCh2YWx1ZSk7XG5cdFx0Z2wudW5pZm9ybU1hdHJpeDJmdih0aGlzLmdldFVuaWZvcm1Mb2NhdGlvbih1bmlmb3JtKSwgZmFsc2UsIHRoaXMudG1wMngyKTtcblx0fVxuXG5cdHB1YmxpYyBzZXRVbmlmb3JtM3gzZiAodW5pZm9ybTogc3RyaW5nLCB2YWx1ZTogQXJyYXlMaWtlPG51bWJlcj4pIHtcblx0XHRsZXQgZ2wgPSB0aGlzLmNvbnRleHQuZ2w7XG5cdFx0dGhpcy50bXAzeDMuc2V0KHZhbHVlKTtcblx0XHRnbC51bmlmb3JtTWF0cml4M2Z2KHRoaXMuZ2V0VW5pZm9ybUxvY2F0aW9uKHVuaWZvcm0pLCBmYWxzZSwgdGhpcy50bXAzeDMpO1xuXHR9XG5cblx0cHVibGljIHNldFVuaWZvcm00eDRmICh1bmlmb3JtOiBzdHJpbmcsIHZhbHVlOiBBcnJheUxpa2U8bnVtYmVyPikge1xuXHRcdGxldCBnbCA9IHRoaXMuY29udGV4dC5nbDtcblx0XHR0aGlzLnRtcDR4NC5zZXQodmFsdWUpO1xuXHRcdGdsLnVuaWZvcm1NYXRyaXg0ZnYodGhpcy5nZXRVbmlmb3JtTG9jYXRpb24odW5pZm9ybSksIGZhbHNlLCB0aGlzLnRtcDR4NCk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0VW5pZm9ybUxvY2F0aW9uICh1bmlmb3JtOiBzdHJpbmcpOiBXZWJHTFVuaWZvcm1Mb2NhdGlvbiB8IG51bGwge1xuXHRcdGxldCBnbCA9IHRoaXMuY29udGV4dC5nbDtcblx0XHRpZiAoIXRoaXMucHJvZ3JhbSkgdGhyb3cgbmV3IEVycm9yKFwiU2hhZGVyIG5vdCBjb21waWxlZC5cIik7XG5cdFx0bGV0IGxvY2F0aW9uID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHRoaXMucHJvZ3JhbSwgdW5pZm9ybSk7XG5cdFx0aWYgKCFsb2NhdGlvbiAmJiAhZ2wuaXNDb250ZXh0TG9zdCgpKSB0aHJvdyBuZXcgRXJyb3IoYENvdWxkbid0IGZpbmQgbG9jYXRpb24gZm9yIHVuaWZvcm0gJHt1bmlmb3JtfWApO1xuXHRcdHJldHVybiBsb2NhdGlvbjtcblx0fVxuXG5cdHB1YmxpYyBnZXRBdHRyaWJ1dGVMb2NhdGlvbiAoYXR0cmlidXRlOiBzdHJpbmcpOiBudW1iZXIge1xuXHRcdGxldCBnbCA9IHRoaXMuY29udGV4dC5nbDtcblx0XHRpZiAoIXRoaXMucHJvZ3JhbSkgdGhyb3cgbmV3IEVycm9yKFwiU2hhZGVyIG5vdCBjb21waWxlZC5cIik7XG5cdFx0bGV0IGxvY2F0aW9uID0gZ2wuZ2V0QXR0cmliTG9jYXRpb24odGhpcy5wcm9ncmFtLCBhdHRyaWJ1dGUpO1xuXHRcdGlmIChsb2NhdGlvbiA9PSAtMSAmJiAhZ2wuaXNDb250ZXh0TG9zdCgpKSB0aHJvdyBuZXcgRXJyb3IoYENvdWxkbid0IGZpbmQgbG9jYXRpb24gZm9yIGF0dHJpYnV0ZSAke2F0dHJpYnV0ZX1gKTtcblx0XHRyZXR1cm4gbG9jYXRpb247XG5cdH1cblxuXHRwdWJsaWMgZGlzcG9zZSAoKSB7XG5cdFx0dGhpcy5jb250ZXh0LnJlbW92ZVJlc3RvcmFibGUodGhpcyk7XG5cblx0XHRsZXQgZ2wgPSB0aGlzLmNvbnRleHQuZ2w7XG5cdFx0aWYgKHRoaXMudnMpIHtcblx0XHRcdGdsLmRlbGV0ZVNoYWRlcih0aGlzLnZzKTtcblx0XHRcdHRoaXMudnMgPSBudWxsO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLmZzKSB7XG5cdFx0XHRnbC5kZWxldGVTaGFkZXIodGhpcy5mcyk7XG5cdFx0XHR0aGlzLmZzID0gbnVsbDtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5wcm9ncmFtKSB7XG5cdFx0XHRnbC5kZWxldGVQcm9ncmFtKHRoaXMucHJvZ3JhbSk7XG5cdFx0XHR0aGlzLnByb2dyYW0gPSBudWxsO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgbmV3Q29sb3JlZFRleHR1cmVkIChjb250ZXh0OiBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0IHwgV2ViR0xSZW5kZXJpbmdDb250ZXh0KTogU2hhZGVyIHtcblx0XHRsZXQgdnMgPSBgXG5hdHRyaWJ1dGUgdmVjNCAke1NoYWRlci5QT1NJVElPTn07XG5hdHRyaWJ1dGUgdmVjNCAke1NoYWRlci5DT0xPUn07XG5hdHRyaWJ1dGUgdmVjMiAke1NoYWRlci5URVhDT09SRFN9O1xudW5pZm9ybSBtYXQ0ICR7U2hhZGVyLk1WUF9NQVRSSVh9O1xudmFyeWluZyB2ZWM0IHZfY29sb3I7XG52YXJ5aW5nIHZlYzIgdl90ZXhDb29yZHM7XG5cbnZvaWQgbWFpbiAoKSB7XG5cdHZfY29sb3IgPSAke1NoYWRlci5DT0xPUn07XG5cdHZfdGV4Q29vcmRzID0gJHtTaGFkZXIuVEVYQ09PUkRTfTtcblx0Z2xfUG9zaXRpb24gPSAke1NoYWRlci5NVlBfTUFUUklYfSAqICR7U2hhZGVyLlBPU0lUSU9OfTtcbn1cbmA7XG5cblx0XHRsZXQgZnMgPSBgXG4jaWZkZWYgR0xfRVNcblx0I2RlZmluZSBMT1dQIGxvd3Bcblx0cHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZWxzZVxuXHQjZGVmaW5lIExPV1BcbiNlbmRpZlxudmFyeWluZyBMT1dQIHZlYzQgdl9jb2xvcjtcbnZhcnlpbmcgdmVjMiB2X3RleENvb3JkcztcbnVuaWZvcm0gc2FtcGxlcjJEIHVfdGV4dHVyZTtcblxudm9pZCBtYWluICgpIHtcblx0Z2xfRnJhZ0NvbG9yID0gdl9jb2xvciAqIHRleHR1cmUyRCh1X3RleHR1cmUsIHZfdGV4Q29vcmRzKTtcbn1cbmA7XG5cblx0XHRyZXR1cm4gbmV3IFNoYWRlcihjb250ZXh0LCB2cywgZnMpO1xuXHR9XG5cblx0cHVibGljIHN0YXRpYyBuZXdUd29Db2xvcmVkVGV4dHVyZWQgKGNvbnRleHQ6IE1hbmFnZWRXZWJHTFJlbmRlcmluZ0NvbnRleHQgfCBXZWJHTFJlbmRlcmluZ0NvbnRleHQpOiBTaGFkZXIge1xuXHRcdGxldCB2cyA9IGBcbmF0dHJpYnV0ZSB2ZWM0ICR7U2hhZGVyLlBPU0lUSU9OfTtcbmF0dHJpYnV0ZSB2ZWM0ICR7U2hhZGVyLkNPTE9SfTtcbmF0dHJpYnV0ZSB2ZWM0ICR7U2hhZGVyLkNPTE9SMn07XG5hdHRyaWJ1dGUgdmVjMiAke1NoYWRlci5URVhDT09SRFN9O1xudW5pZm9ybSBtYXQ0ICR7U2hhZGVyLk1WUF9NQVRSSVh9O1xudmFyeWluZyB2ZWM0IHZfbGlnaHQ7XG52YXJ5aW5nIHZlYzQgdl9kYXJrO1xudmFyeWluZyB2ZWMyIHZfdGV4Q29vcmRzO1xuXG52b2lkIG1haW4gKCkge1xuXHR2X2xpZ2h0ID0gJHtTaGFkZXIuQ09MT1J9O1xuXHR2X2RhcmsgPSAke1NoYWRlci5DT0xPUjJ9O1xuXHR2X3RleENvb3JkcyA9ICR7U2hhZGVyLlRFWENPT1JEU307XG5cdGdsX1Bvc2l0aW9uID0gJHtTaGFkZXIuTVZQX01BVFJJWH0gKiAke1NoYWRlci5QT1NJVElPTn07XG59XG5gO1xuXG5cdFx0bGV0IGZzID0gYFxuI2lmZGVmIEdMX0VTXG5cdCNkZWZpbmUgTE9XUCBsb3dwXG5cdHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2Vsc2Vcblx0I2RlZmluZSBMT1dQXG4jZW5kaWZcbnZhcnlpbmcgTE9XUCB2ZWM0IHZfbGlnaHQ7XG52YXJ5aW5nIExPV1AgdmVjNCB2X2Rhcms7XG52YXJ5aW5nIHZlYzIgdl90ZXhDb29yZHM7XG51bmlmb3JtIHNhbXBsZXIyRCB1X3RleHR1cmU7XG5cbnZvaWQgbWFpbiAoKSB7XG5cdHZlYzQgdGV4Q29sb3IgPSB0ZXh0dXJlMkQodV90ZXh0dXJlLCB2X3RleENvb3Jkcyk7XG5cdGdsX0ZyYWdDb2xvci5hID0gdGV4Q29sb3IuYSAqIHZfbGlnaHQuYTtcblx0Z2xfRnJhZ0NvbG9yLnJnYiA9ICgodGV4Q29sb3IuYSAtIDEuMCkgKiB2X2RhcmsuYSArIDEuMCAtIHRleENvbG9yLnJnYikgKiB2X2RhcmsucmdiICsgdGV4Q29sb3IucmdiICogdl9saWdodC5yZ2I7XG59XG5gO1xuXG5cdFx0cmV0dXJuIG5ldyBTaGFkZXIoY29udGV4dCwgdnMsIGZzKTtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgbmV3Q29sb3JlZCAoY29udGV4dDogTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dCB8IFdlYkdMUmVuZGVyaW5nQ29udGV4dCk6IFNoYWRlciB7XG5cdFx0bGV0IHZzID0gYFxuYXR0cmlidXRlIHZlYzQgJHtTaGFkZXIuUE9TSVRJT059O1xuYXR0cmlidXRlIHZlYzQgJHtTaGFkZXIuQ09MT1J9O1xudW5pZm9ybSBtYXQ0ICR7U2hhZGVyLk1WUF9NQVRSSVh9O1xudmFyeWluZyB2ZWM0IHZfY29sb3I7XG5cbnZvaWQgbWFpbiAoKSB7XG5cdHZfY29sb3IgPSAke1NoYWRlci5DT0xPUn07XG5cdGdsX1Bvc2l0aW9uID0gJHtTaGFkZXIuTVZQX01BVFJJWH0gKiAke1NoYWRlci5QT1NJVElPTn07XG59XG5gO1xuXG5cdFx0bGV0IGZzID0gYFxuI2lmZGVmIEdMX0VTXG5cdCNkZWZpbmUgTE9XUCBsb3dwXG5cdHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2Vsc2Vcblx0I2RlZmluZSBMT1dQXG4jZW5kaWZcbnZhcnlpbmcgTE9XUCB2ZWM0IHZfY29sb3I7XG5cbnZvaWQgbWFpbiAoKSB7XG5cdGdsX0ZyYWdDb2xvciA9IHZfY29sb3I7XG59XG5gO1xuXG5cdFx0cmV0dXJuIG5ldyBTaGFkZXIoY29udGV4dCwgdnMsIGZzKTtcblx0fVxufVxuIl19