angular-three 0.0.3 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/attributes/lib/buffer-attribute/buffer-attribute.d.ts +1 -1
- package/attributes/lib/color-attribute/color-attribute.d.ts +1 -1
- package/attributes/lib/common.d.ts +2 -0
- package/attributes/lib/float16-buffer-attribute/float16-buffer-attribute.d.ts +1 -1
- package/attributes/lib/float32-buffer-attribute/float32-buffer-attribute.d.ts +1 -1
- package/attributes/lib/float64-buffer-attribute/float64-buffer-attribute.d.ts +1 -1
- package/attributes/lib/fog-attribute/fog-attribute.d.ts +1 -1
- package/attributes/lib/fog-exp2-attribute/fog-exp2-attribute.d.ts +1 -1
- package/attributes/lib/instanced-buffer-attribute/instanced-buffer-attribute.d.ts +1 -1
- package/attributes/lib/int16-buffer-attribute/int16-buffer-attribute.d.ts +1 -1
- package/attributes/lib/int32-buffer-attribute/int32-buffer-attribute.d.ts +1 -1
- package/attributes/lib/int8-buffer-attribute/int8-buffer-attribute.d.ts +1 -1
- package/attributes/lib/interleaved-buffer-attribute/interleaved-buffer-attribute.d.ts +1 -1
- package/attributes/lib/matrix3-attribute/matrix3-attribute.d.ts +1 -1
- package/attributes/lib/matrix4-attribute/matrix4-attribute.d.ts +1 -1
- package/attributes/lib/uint16-buffer-attribute/uint16-buffer-attribute.d.ts +1 -1
- package/attributes/lib/uint32-buffer-attribute/uint32-buffer-attribute.d.ts +1 -1
- package/attributes/lib/uint8-buffer-attribute/uint8-buffer-attribute.d.ts +1 -1
- package/attributes/lib/uint8-clamped-buffer-attribute/uint8-clamped-buffer-attribute.d.ts +1 -1
- package/attributes/lib/value-attribute/value-attribute.d.ts +1 -1
- package/attributes/lib/vector2-attribute/vector2-attribute.d.ts +1 -1
- package/attributes/lib/vector3-attribute/vector3-attribute.d.ts +1 -1
- package/attributes/lib/vector4-attribute/vector4-attribute.d.ts +1 -1
- package/audios/lib/audio/audio.d.ts +1 -1
- package/audios/lib/audio-listener/audio-listener.d.ts +1 -1
- package/audios/lib/common.d.ts +3 -0
- package/audios/lib/positional-audio/positional-audio.d.ts +1 -1
- package/cameras/lib/array-camera/array-camera.d.ts +1 -1
- package/cameras/lib/common.d.ts +3 -0
- package/cameras/lib/cube-camera/cube-camera.d.ts +1 -1
- package/cameras/lib/orthographic-camera/orthographic-camera.d.ts +1 -1
- package/cameras/lib/perspective-camera/perspective-camera.d.ts +1 -1
- package/cameras/lib/stereo-camera/stereo-camera.d.ts +1 -1
- package/esm2020/attributes/lib/buffer-attribute/buffer-attribute.mjs +4 -3
- package/esm2020/attributes/lib/color-attribute/color-attribute.mjs +4 -3
- package/esm2020/attributes/lib/common.mjs +28 -0
- package/esm2020/attributes/lib/float16-buffer-attribute/float16-buffer-attribute.mjs +4 -3
- package/esm2020/attributes/lib/float32-buffer-attribute/float32-buffer-attribute.mjs +4 -3
- package/esm2020/attributes/lib/float64-buffer-attribute/float64-buffer-attribute.mjs +4 -3
- package/esm2020/attributes/lib/fog-attribute/fog-attribute.mjs +4 -3
- package/esm2020/attributes/lib/fog-exp2-attribute/fog-exp2-attribute.mjs +4 -3
- package/esm2020/attributes/lib/instanced-buffer-attribute/instanced-buffer-attribute.mjs +4 -3
- package/esm2020/attributes/lib/int16-buffer-attribute/int16-buffer-attribute.mjs +4 -3
- package/esm2020/attributes/lib/int32-buffer-attribute/int32-buffer-attribute.mjs +4 -3
- package/esm2020/attributes/lib/int8-buffer-attribute/int8-buffer-attribute.mjs +4 -3
- package/esm2020/attributes/lib/interleaved-buffer-attribute/interleaved-buffer-attribute.mjs +4 -3
- package/esm2020/attributes/lib/matrix3-attribute/matrix3-attribute.mjs +4 -3
- package/esm2020/attributes/lib/matrix4-attribute/matrix4-attribute.mjs +4 -3
- package/esm2020/attributes/lib/uint16-buffer-attribute/uint16-buffer-attribute.mjs +4 -3
- package/esm2020/attributes/lib/uint32-buffer-attribute/uint32-buffer-attribute.mjs +4 -3
- package/esm2020/attributes/lib/uint8-buffer-attribute/uint8-buffer-attribute.mjs +4 -3
- package/esm2020/attributes/lib/uint8-clamped-buffer-attribute/uint8-clamped-buffer-attribute.mjs +4 -3
- package/esm2020/attributes/lib/value-attribute/value-attribute.mjs +4 -3
- package/esm2020/attributes/lib/vector2-attribute/vector2-attribute.mjs +4 -3
- package/esm2020/attributes/lib/vector3-attribute/vector3-attribute.mjs +4 -3
- package/esm2020/attributes/lib/vector4-attribute/vector4-attribute.mjs +4 -3
- package/esm2020/audios/lib/audio/audio.mjs +5 -28
- package/esm2020/audios/lib/audio-listener/audio-listener.mjs +5 -32
- package/esm2020/audios/lib/common.mjs +54 -0
- package/esm2020/audios/lib/positional-audio/positional-audio.mjs +5 -28
- package/esm2020/cameras/lib/array-camera/array-camera.mjs +5 -28
- package/esm2020/cameras/lib/common.mjs +54 -0
- package/esm2020/cameras/lib/cube-camera/cube-camera.mjs +6 -31
- package/esm2020/cameras/lib/orthographic-camera/orthographic-camera.mjs +5 -28
- package/esm2020/cameras/lib/perspective-camera/perspective-camera.mjs +5 -28
- package/esm2020/cameras/lib/stereo-camera/stereo-camera.mjs +5 -28
- package/esm2020/geometries/lib/box-geometry/box-geometry.mjs +4 -3
- package/esm2020/geometries/lib/buffer-geometry/buffer-geometry.mjs +4 -3
- package/esm2020/geometries/lib/capsule-geometry/capsule-geometry.mjs +4 -3
- package/esm2020/geometries/lib/circle-geometry/circle-geometry.mjs +4 -3
- package/esm2020/geometries/lib/common.mjs +28 -0
- package/esm2020/geometries/lib/cone-geometry/cone-geometry.mjs +4 -3
- package/esm2020/geometries/lib/cylinder-geometry/cylinder-geometry.mjs +4 -3
- package/esm2020/geometries/lib/dodecahedron-geometry/dodecahedron-geometry.mjs +4 -3
- package/esm2020/geometries/lib/edges-geometry/edges-geometry.mjs +4 -3
- package/esm2020/geometries/lib/extrude-geometry/extrude-geometry.mjs +4 -3
- package/esm2020/geometries/lib/icosahedron-geometry/icosahedron-geometry.mjs +4 -3
- package/esm2020/geometries/lib/instanced-buffer-geometry/instanced-buffer-geometry.mjs +4 -3
- package/esm2020/geometries/lib/lathe-geometry/lathe-geometry.mjs +4 -3
- package/esm2020/geometries/lib/octahedron-geometry/octahedron-geometry.mjs +4 -3
- package/esm2020/geometries/lib/plane-geometry/plane-geometry.mjs +4 -3
- package/esm2020/geometries/lib/polyhedron-geometry/polyhedron-geometry.mjs +4 -3
- package/esm2020/geometries/lib/ring-geometry/ring-geometry.mjs +4 -3
- package/esm2020/geometries/lib/shape-geometry/shape-geometry.mjs +4 -3
- package/esm2020/geometries/lib/sphere-geometry/sphere-geometry.mjs +4 -3
- package/esm2020/geometries/lib/tetrahedron-geometry/tetrahedron-geometry.mjs +4 -3
- package/esm2020/geometries/lib/torus-geometry/torus-geometry.mjs +4 -3
- package/esm2020/geometries/lib/torus-knot-geometry/torus-knot-geometry.mjs +4 -3
- package/esm2020/geometries/lib/tube-geometry/tube-geometry.mjs +4 -3
- package/esm2020/geometries/lib/wireframe-geometry/wireframe-geometry.mjs +4 -3
- package/esm2020/helpers/lib/arrow-helper/arrow-helper.mjs +4 -3
- package/esm2020/helpers/lib/axes-helper/axes-helper.mjs +4 -3
- package/esm2020/helpers/lib/box-helper/box-helper.mjs +4 -3
- package/esm2020/helpers/lib/box3-helper/box3-helper.mjs +4 -3
- package/esm2020/helpers/lib/camera-helper/camera-helper.mjs +4 -3
- package/esm2020/helpers/lib/common.mjs +28 -0
- package/esm2020/helpers/lib/directional-light-helper/directional-light-helper.mjs +4 -3
- package/esm2020/helpers/lib/grid-helper/grid-helper.mjs +4 -3
- package/esm2020/helpers/lib/hemisphere-light-helper/hemisphere-light-helper.mjs +4 -3
- package/esm2020/helpers/lib/plane-helper/plane-helper.mjs +4 -3
- package/esm2020/helpers/lib/point-light-helper/point-light-helper.mjs +4 -3
- package/esm2020/helpers/lib/polar-grid-helper/polar-grid-helper.mjs +4 -3
- package/esm2020/helpers/lib/skeleton-helper/skeleton-helper.mjs +4 -3
- package/esm2020/helpers/lib/spot-light-helper/spot-light-helper.mjs +4 -3
- package/esm2020/index.mjs +28 -1
- package/esm2020/lib/canvas.mjs +4 -2
- package/esm2020/lib/directives/cursor.mjs +35 -0
- package/esm2020/lib/directives/repeat.mjs +20 -0
- package/esm2020/lib/instance.mjs +11 -1
- package/esm2020/lib/pipes/math.mjs +15 -0
- package/esm2020/lib/pipes/pi.mjs +14 -0
- package/esm2020/lib/pipes/radian.mjs +14 -0
- package/esm2020/lib/pipes/side.mjs +22 -0
- package/esm2020/lights/lib/ambient-light/ambient-light.mjs +6 -44
- package/esm2020/lights/lib/ambient-light-probe/ambient-light-probe.mjs +6 -45
- package/esm2020/lights/lib/common.mjs +54 -0
- package/esm2020/lights/lib/directional-light/directional-light.mjs +6 -45
- package/esm2020/lights/lib/hemisphere-light/hemisphere-light.mjs +6 -46
- package/esm2020/lights/lib/hemisphere-light-probe/hemisphere-light-probe.mjs +6 -47
- package/esm2020/lights/lib/light-probe/light-probe.mjs +6 -45
- package/esm2020/lights/lib/point-light/point-light.mjs +6 -47
- package/esm2020/lights/lib/rect-area-light/rect-area-light.mjs +6 -47
- package/esm2020/lights/lib/spot-light/spot-light.mjs +5 -37
- package/esm2020/materials/lib/common.mjs +28 -0
- package/esm2020/materials/lib/line-basic-material/line-basic-material.mjs +4 -3
- package/esm2020/materials/lib/line-dashed-material/line-dashed-material.mjs +4 -3
- package/esm2020/materials/lib/mesh-basic-material/mesh-basic-material.mjs +4 -3
- package/esm2020/materials/lib/mesh-depth-material/mesh-depth-material.mjs +4 -3
- package/esm2020/materials/lib/mesh-distance-material/mesh-distance-material.mjs +4 -3
- package/esm2020/materials/lib/mesh-lambert-material/mesh-lambert-material.mjs +4 -3
- package/esm2020/materials/lib/mesh-matcap-material/mesh-matcap-material.mjs +4 -3
- package/esm2020/materials/lib/mesh-normal-material/mesh-normal-material.mjs +4 -3
- package/esm2020/materials/lib/mesh-phong-material/mesh-phong-material.mjs +4 -3
- package/esm2020/materials/lib/mesh-physical-material/mesh-physical-material.mjs +4 -3
- package/esm2020/materials/lib/mesh-standard-material/mesh-standard-material.mjs +4 -3
- package/esm2020/materials/lib/mesh-toon-material/mesh-toon-material.mjs +4 -3
- package/esm2020/materials/lib/points-material/points-material.mjs +4 -3
- package/esm2020/materials/lib/raw-shader-material/raw-shader-material.mjs +4 -3
- package/esm2020/materials/lib/shader-material/shader-material.mjs +4 -3
- package/esm2020/materials/lib/shadow-material/shadow-material.mjs +4 -3
- package/esm2020/materials/lib/sprite-material/sprite-material.mjs +4 -3
- package/esm2020/objects/lib/bone/bone.mjs +5 -32
- package/esm2020/objects/lib/common.mjs +54 -0
- package/esm2020/objects/lib/group/group.mjs +5 -32
- package/esm2020/objects/lib/instanced-mesh/instanced-mesh.mjs +5 -28
- package/esm2020/objects/lib/line/line.mjs +6 -34
- package/esm2020/objects/lib/line-loop/line-loop.mjs +6 -34
- package/esm2020/objects/lib/line-segments/line-segments.mjs +6 -34
- package/esm2020/objects/lib/lod/lod.mjs +6 -33
- package/esm2020/objects/lib/mesh/mesh.mjs +6 -34
- package/esm2020/objects/lib/points/points.mjs +6 -34
- package/esm2020/objects/lib/skeleton/skeleton.mjs +5 -13
- package/esm2020/objects/lib/skinned-mesh/skinned-mesh.mjs +5 -28
- package/esm2020/objects/lib/sprite/sprite.mjs +6 -33
- package/esm2020/primitives/lib/common.mjs +54 -0
- package/esm2020/primitives/lib/object-primitive/object-primitive.mjs +5 -32
- package/esm2020/primitives/lib/primitive/primitive.mjs +4 -3
- package/esm2020/textures/lib/canvas-texture/canvas-texture.mjs +4 -3
- package/esm2020/textures/lib/common.mjs +28 -0
- package/esm2020/textures/lib/compressed-array-texture/compressed-array-texture.mjs +4 -3
- package/esm2020/textures/lib/compressed-texture/compressed-texture.mjs +4 -3
- package/esm2020/textures/lib/cube-texture/cube-texture.mjs +4 -3
- package/esm2020/textures/lib/data-array-texture/data-array-texture.mjs +4 -3
- package/esm2020/textures/lib/data-texture/data-texture.mjs +4 -3
- package/esm2020/textures/lib/data3-dtexture/data3-dtexture.mjs +4 -3
- package/esm2020/textures/lib/depth-texture/depth-texture.mjs +4 -3
- package/esm2020/textures/lib/framebuffer-texture/framebuffer-texture.mjs +4 -3
- package/esm2020/textures/lib/video-texture/video-texture.mjs +4 -3
- package/fesm2015/angular-three-attributes.mjs +51 -23
- package/fesm2015/angular-three-attributes.mjs.map +1 -1
- package/fesm2015/angular-three-audios.mjs +64 -85
- package/fesm2015/angular-three-audios.mjs.map +1 -1
- package/fesm2015/angular-three-cameras.mjs +66 -134
- package/fesm2015/angular-three-cameras.mjs.map +1 -1
- package/fesm2015/angular-three-geometries.mjs +52 -24
- package/fesm2015/angular-three-geometries.mjs.map +1 -1
- package/fesm2015/angular-three-helpers.mjs +42 -14
- package/fesm2015/angular-three-helpers.mjs.map +1 -1
- package/fesm2015/angular-three-lights.mjs +81 -386
- package/fesm2015/angular-three-lights.mjs.map +1 -1
- package/fesm2015/angular-three-materials.mjs +46 -18
- package/fesm2015/angular-three-materials.mjs.map +1 -1
- package/fesm2015/angular-three-objects.mjs +86 -347
- package/fesm2015/angular-three-objects.mjs.map +1 -1
- package/fesm2015/angular-three-primitives.mjs +58 -33
- package/fesm2015/angular-three-primitives.mjs.map +1 -1
- package/fesm2015/angular-three-textures.mjs +39 -12
- package/fesm2015/angular-three-textures.mjs.map +1 -1
- package/fesm2015/angular-three.mjs +127 -5
- package/fesm2015/angular-three.mjs.map +1 -1
- package/fesm2020/angular-three-attributes.mjs +51 -23
- package/fesm2020/angular-three-attributes.mjs.map +1 -1
- package/fesm2020/angular-three-audios.mjs +64 -85
- package/fesm2020/angular-three-audios.mjs.map +1 -1
- package/fesm2020/angular-three-cameras.mjs +66 -134
- package/fesm2020/angular-three-cameras.mjs.map +1 -1
- package/fesm2020/angular-three-geometries.mjs +52 -24
- package/fesm2020/angular-three-geometries.mjs.map +1 -1
- package/fesm2020/angular-three-helpers.mjs +42 -14
- package/fesm2020/angular-three-helpers.mjs.map +1 -1
- package/fesm2020/angular-three-lights.mjs +81 -386
- package/fesm2020/angular-three-lights.mjs.map +1 -1
- package/fesm2020/angular-three-materials.mjs +46 -18
- package/fesm2020/angular-three-materials.mjs.map +1 -1
- package/fesm2020/angular-three-objects.mjs +86 -347
- package/fesm2020/angular-three-objects.mjs.map +1 -1
- package/fesm2020/angular-three-primitives.mjs +58 -33
- package/fesm2020/angular-three-primitives.mjs.map +1 -1
- package/fesm2020/angular-three-textures.mjs +39 -12
- package/fesm2020/angular-three-textures.mjs.map +1 -1
- package/fesm2020/angular-three.mjs +124 -5
- package/fesm2020/angular-three.mjs.map +1 -1
- package/geometries/lib/box-geometry/box-geometry.d.ts +1 -1
- package/geometries/lib/buffer-geometry/buffer-geometry.d.ts +1 -1
- package/geometries/lib/capsule-geometry/capsule-geometry.d.ts +1 -1
- package/geometries/lib/circle-geometry/circle-geometry.d.ts +1 -1
- package/geometries/lib/common.d.ts +2 -0
- package/geometries/lib/cone-geometry/cone-geometry.d.ts +1 -1
- package/geometries/lib/cylinder-geometry/cylinder-geometry.d.ts +1 -1
- package/geometries/lib/dodecahedron-geometry/dodecahedron-geometry.d.ts +1 -1
- package/geometries/lib/edges-geometry/edges-geometry.d.ts +1 -1
- package/geometries/lib/extrude-geometry/extrude-geometry.d.ts +1 -1
- package/geometries/lib/icosahedron-geometry/icosahedron-geometry.d.ts +1 -1
- package/geometries/lib/instanced-buffer-geometry/instanced-buffer-geometry.d.ts +1 -1
- package/geometries/lib/lathe-geometry/lathe-geometry.d.ts +1 -1
- package/geometries/lib/octahedron-geometry/octahedron-geometry.d.ts +1 -1
- package/geometries/lib/plane-geometry/plane-geometry.d.ts +1 -1
- package/geometries/lib/polyhedron-geometry/polyhedron-geometry.d.ts +1 -1
- package/geometries/lib/ring-geometry/ring-geometry.d.ts +1 -1
- package/geometries/lib/shape-geometry/shape-geometry.d.ts +1 -1
- package/geometries/lib/sphere-geometry/sphere-geometry.d.ts +1 -1
- package/geometries/lib/tetrahedron-geometry/tetrahedron-geometry.d.ts +1 -1
- package/geometries/lib/torus-geometry/torus-geometry.d.ts +1 -1
- package/geometries/lib/torus-knot-geometry/torus-knot-geometry.d.ts +1 -1
- package/geometries/lib/tube-geometry/tube-geometry.d.ts +1 -1
- package/geometries/lib/wireframe-geometry/wireframe-geometry.d.ts +1 -1
- package/helpers/lib/arrow-helper/arrow-helper.d.ts +1 -1
- package/helpers/lib/axes-helper/axes-helper.d.ts +1 -1
- package/helpers/lib/box-helper/box-helper.d.ts +1 -1
- package/helpers/lib/box3-helper/box3-helper.d.ts +1 -1
- package/helpers/lib/camera-helper/camera-helper.d.ts +1 -1
- package/helpers/lib/common.d.ts +2 -0
- package/helpers/lib/directional-light-helper/directional-light-helper.d.ts +1 -1
- package/helpers/lib/grid-helper/grid-helper.d.ts +1 -1
- package/helpers/lib/hemisphere-light-helper/hemisphere-light-helper.d.ts +1 -1
- package/helpers/lib/plane-helper/plane-helper.d.ts +1 -1
- package/helpers/lib/point-light-helper/point-light-helper.d.ts +1 -1
- package/helpers/lib/polar-grid-helper/polar-grid-helper.d.ts +1 -1
- package/helpers/lib/skeleton-helper/skeleton-helper.d.ts +1 -1
- package/helpers/lib/spot-light-helper/spot-light-helper.d.ts +1 -1
- package/index.d.ts +27 -0
- package/lib/canvas.d.ts +2 -2
- package/lib/directives/cursor.d.ts +7 -0
- package/lib/directives/repeat.d.ts +7 -0
- package/lib/pipes/math.d.ts +7 -0
- package/lib/pipes/pi.d.ts +7 -0
- package/lib/pipes/radian.d.ts +7 -0
- package/lib/pipes/side.d.ts +8 -0
- package/lights/lib/ambient-light/ambient-light.d.ts +1 -11
- package/lights/lib/ambient-light-probe/ambient-light-probe.d.ts +1 -11
- package/lights/lib/common.d.ts +3 -0
- package/lights/lib/directional-light/directional-light.d.ts +1 -11
- package/lights/lib/hemisphere-light/hemisphere-light.d.ts +1 -11
- package/lights/lib/hemisphere-light-probe/hemisphere-light-probe.d.ts +1 -11
- package/lights/lib/light-probe/light-probe.d.ts +1 -11
- package/lights/lib/point-light/point-light.d.ts +1 -11
- package/lights/lib/rect-area-light/rect-area-light.d.ts +1 -11
- package/lights/lib/spot-light/spot-light.d.ts +1 -11
- package/materials/lib/common.d.ts +2 -0
- package/materials/lib/line-basic-material/line-basic-material.d.ts +1 -1
- package/materials/lib/line-dashed-material/line-dashed-material.d.ts +1 -1
- package/materials/lib/mesh-basic-material/mesh-basic-material.d.ts +1 -1
- package/materials/lib/mesh-depth-material/mesh-depth-material.d.ts +1 -1
- package/materials/lib/mesh-distance-material/mesh-distance-material.d.ts +1 -1
- package/materials/lib/mesh-lambert-material/mesh-lambert-material.d.ts +1 -1
- package/materials/lib/mesh-matcap-material/mesh-matcap-material.d.ts +1 -1
- package/materials/lib/mesh-normal-material/mesh-normal-material.d.ts +1 -1
- package/materials/lib/mesh-phong-material/mesh-phong-material.d.ts +1 -1
- package/materials/lib/mesh-physical-material/mesh-physical-material.d.ts +1 -1
- package/materials/lib/mesh-standard-material/mesh-standard-material.d.ts +1 -1
- package/materials/lib/mesh-toon-material/mesh-toon-material.d.ts +1 -1
- package/materials/lib/points-material/points-material.d.ts +1 -1
- package/materials/lib/raw-shader-material/raw-shader-material.d.ts +1 -1
- package/materials/lib/shader-material/shader-material.d.ts +1 -1
- package/materials/lib/shadow-material/shadow-material.d.ts +1 -1
- package/materials/lib/sprite-material/sprite-material.d.ts +1 -1
- package/objects/lib/bone/bone.d.ts +1 -1
- package/objects/lib/common.d.ts +3 -0
- package/objects/lib/group/group.d.ts +1 -1
- package/objects/lib/instanced-mesh/instanced-mesh.d.ts +1 -1
- package/objects/lib/line/line.d.ts +1 -1
- package/objects/lib/line-loop/line-loop.d.ts +1 -1
- package/objects/lib/line-segments/line-segments.d.ts +1 -1
- package/objects/lib/lod/lod.d.ts +1 -2
- package/objects/lib/mesh/mesh.d.ts +1 -1
- package/objects/lib/points/points.d.ts +1 -1
- package/objects/lib/skeleton/skeleton.d.ts +1 -2
- package/objects/lib/skinned-mesh/skinned-mesh.d.ts +1 -1
- package/objects/lib/sprite/sprite.d.ts +1 -1
- package/package.json +2 -1
- package/primitives/lib/common.d.ts +3 -0
- package/primitives/lib/object-primitive/object-primitive.d.ts +1 -1
- package/primitives/lib/primitive/primitive.d.ts +1 -1
- package/textures/lib/canvas-texture/canvas-texture.d.ts +1 -1
- package/textures/lib/common.d.ts +2 -0
- package/textures/lib/compressed-array-texture/compressed-array-texture.d.ts +1 -1
- package/textures/lib/compressed-texture/compressed-texture.d.ts +1 -1
- package/textures/lib/cube-texture/cube-texture.d.ts +1 -1
- package/textures/lib/data-array-texture/data-array-texture.d.ts +1 -1
- package/textures/lib/data-texture/data-texture.d.ts +1 -1
- package/textures/lib/data3-dtexture/data3-dtexture.d.ts +1 -1
- package/textures/lib/depth-texture/depth-texture.d.ts +1 -1
- package/textures/lib/framebuffer-texture/framebuffer-texture.d.ts +1 -1
- package/textures/lib/video-texture/video-texture.d.ts +1 -1
package/esm2020/lib/instance.mjs
CHANGED
|
@@ -72,6 +72,16 @@ export class NgtInstance extends NgtComponentStore {
|
|
|
72
72
|
let attachToParentSubscription;
|
|
73
73
|
if (this.parentRef) {
|
|
74
74
|
attachToParentSubscription = this.attachToParent(this.parent.pipe(filter((parent) => !!parent)));
|
|
75
|
+
const { noAttach, skipWrapper } = this.read();
|
|
76
|
+
if (!noAttach && !skipWrapper) {
|
|
77
|
+
const parentInstanceNode = getInstanceLocalState(getInstanceLocalState(this.instanceValue)?.parentRef?.value);
|
|
78
|
+
if (parentInstanceNode) {
|
|
79
|
+
const collections = is.object3d(this.instanceValue)
|
|
80
|
+
? parentInstanceNode.objectsRefs
|
|
81
|
+
: parentInstanceNode.instancesRefs;
|
|
82
|
+
collections.set((s) => [...s, this.instanceRef]);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
75
85
|
}
|
|
76
86
|
let beforeRenderCleanUp;
|
|
77
87
|
if (this.beforeRender && is.object3d(this.instanceValue) && is.object3d(this.proxyInstance)) {
|
|
@@ -355,4 +365,4 @@ export const NGT_INSTANCE_INPUTS = [
|
|
|
355
365
|
'readyCallback',
|
|
356
366
|
];
|
|
357
367
|
export const NGT_INSTANCE_OUTPUTS = [...supportedEvents];
|
|
358
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXRocmVlL3NyYy9saWIvaW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLGNBQWMsRUFFZCxLQUFLLEVBQ0wsTUFBTSxFQUdOLE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFnQixHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBWTFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFeEMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0FBRXpFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUF5QixrQ0FBa0MsQ0FBQyxDQUFDO0FBQ3ZILE1BQU0sVUFBVSxrQkFBa0IsQ0FHaEMsSUFBVyxFQUFFLE9BQW1EO0lBQzlELE9BQU87UUFDSCxPQUFP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QUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07O0FBK25CWCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUMvQixLQUFLO0lBQ0wsUUFBUTtJQUNSLGFBQWE7SUFDYixVQUFVO0lBQ1YsVUFBVTtJQUNWLGNBQWM7SUFDZCxVQUFVO0lBQ1YsZ0JBQWdCO0lBQ2hCLGVBQWU7Q0FDbEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgSW5qZWN0T3B0aW9ucyxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyLCBTdWJzY3JpcHRpb24sIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTmd0UmVmIH0gZnJvbSAnLi9yZWYnO1xuaW1wb3J0IHsgTmd0Q29tcG9uZW50U3RvcmUsIHRhcEVmZmVjdCB9IGZyb20gJy4vc3RvcmVzL2NvbXBvbmVudC1zdG9yZSc7XG5pbXBvcnQgeyBOZ3RTdG9yZSB9IGZyb20gJy4vc3RvcmVzL3N0b3JlJztcbmltcG9ydCB0eXBlIHtcbiAgICBOZ3RBbnlDdG9yLFxuICAgIE5ndEFueUZ1bmN0aW9uLFxuICAgIE5ndEFueVJlY29yZCxcbiAgICBOZ3RBdHRhY2hGdW5jdGlvbixcbiAgICBOZ3RCZWZvcmVSZW5kZXJDYWxsYmFjayxcbiAgICBOZ3RFdmVudEhhbmRsZXJzLFxuICAgIE5ndEluc3RhbmNlTG9jYWxTdGF0ZSxcbiAgICBOZ3RPYnNlcnZhYmxlSW5wdXQsXG4gICAgTmd0VGhyZWVFdmVudCxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBhcHBseVByb3BzIH0gZnJvbSAnLi91dGlscy9hcHBseS1wcm9wcyc7XG5pbXBvcnQgeyByZW1vdmVJbnRlcmFjdGl2aXR5IH0gZnJvbSAnLi91dGlscy9ldmVudHMnO1xuaW1wb3J0IHsgZ2V0SW5zdGFuY2VMb2NhbFN0YXRlIH0gZnJvbSAnLi91dGlscy9nZXQtaW5zdGFuY2UtbG9jYWwtc3RhdGUnO1xuaW1wb3J0IHsgaW52YWxpZGF0ZUluc3RhbmNlIH0gZnJvbSAnLi91dGlscy9pbnN0YW5jZSc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4vdXRpbHMvaXMnO1xuaW1wb3J0IHsgbXV0YXRlIH0gZnJvbSAnLi91dGlscy9tdXRhdGUnO1xuXG5leHBvcnQgY29uc3QgTkdUX1BST1hZX0lOU1RBTkNFID0gU3ltYm9sLmZvcignX19uZ3RfX3Byb3h5X19pbnN0YW5jZV9fJyk7XG5cbmV4cG9ydCBjb25zdCBOR1RfSU5TVEFOQ0VfUkVGX0ZBQ1RPUlkgPSBuZXcgSW5qZWN0aW9uVG9rZW48Tmd0QW55RnVuY3Rpb248Tmd0UmVmPj4oJ05ndEluc3RhbmNlW2luc3RhbmNlUmVmXSBmYWN0b3J5Jyk7XG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUluc3RhbmNlUmVmPFxuICAgIFRJbnN0YW5jZVR5cGUgZXh0ZW5kcyBvYmplY3QgPSBhbnksXG4gICAgVEN0b3IgZXh0ZW5kcyBOZ3RBbnlDdG9yPFRJbnN0YW5jZVR5cGU+ID0gTmd0QW55Q3RvcjxUSW5zdGFuY2VUeXBlPlxuPihjdG9yOiBUQ3RvciwgZmFjdG9yeT86IChpbnN0YW5jZTogSW5zdGFuY2VUeXBlPFRDdG9yPikgPT4gTmd0UmVmKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZTogTkdUX0lOU1RBTkNFX1JFRl9GQUNUT1JZLFxuICAgICAgICB1c2VGYWN0b3J5OiAoaW5zdGFuY2U6IEluc3RhbmNlVHlwZTxUQ3Rvcj4pID0+IHtcbiAgICAgICAgICAgIGlmIChmYWN0b3J5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICgpID0+IGZhY3RvcnkoaW5zdGFuY2UpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gKCkgPT5cbiAgICAgICAgICAgICAgICAoaW5zdGFuY2UgYXMgTmd0QW55UmVjb3JkKVsnaW5zdGFuY2VSZWYnXSB8fCAoaW5zdGFuY2UgYXMgTmd0QW55UmVjb3JkKVsnaW5zdGFuY2UnXVsnaW5zdGFuY2VSZWYnXTtcbiAgICAgICAgfSxcbiAgICAgICAgZGVwczogW2N0b3JdLFxuICAgIH07XG59XG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0SW5zdGFuY2VSZWYoKTogTmd0QW55RnVuY3Rpb248Tmd0UmVmPjtcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RJbnN0YW5jZVJlZihvcHRpb25zOiBJbmplY3RPcHRpb25zICYgeyBvcHRpb25hbD86IGZhbHNlIH0pOiBOZ3RBbnlGdW5jdGlvbjxOZ3RSZWY+O1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEluc3RhbmNlUmVmKG9wdGlvbnM6IEluamVjdE9wdGlvbnMgJiB7IG9wdGlvbmFsPzogdHJ1ZSB9KTogTmd0QW55RnVuY3Rpb248Tmd0UmVmPiB8IG51bGw7XG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0SW5zdGFuY2VSZWYob3B0aW9uczogSW5qZWN0T3B0aW9ucyA9IHt9KSB7XG4gICAgcmV0dXJuIGluamVjdChOR1RfSU5TVEFOQ0VfUkVGX0ZBQ1RPUlksIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ndEluc3RhbmNlU3RhdGU8VEluc3RhbmNlIGV4dGVuZHMgb2JqZWN0ID0gTmd0QW55UmVjb3JkPiB7XG4gICAgaW5zdGFuY2VSZWY6IE5ndFJlZjxUSW5zdGFuY2U+O1xuICAgIGluc3RhbmNlQXJnczogdW5rbm93bltdO1xuICAgIGF0dGFjaDogc3RyaW5nW10gfCBOZ3RBdHRhY2hGdW5jdGlvbjtcbiAgICBub0F0dGFjaDogYm9vbGVhbjtcbiAgICBza2lwV3JhcHBlcjogYm9vbGVhbjtcbiAgICBza2lwSW5pdDogYm9vbGVhbjtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RJbnN0YW5jZTxUIGV4dGVuZHMgb2JqZWN0PigpOiBOZ3RJbnN0YW5jZTxUPjtcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RJbnN0YW5jZTxUIGV4dGVuZHMgb2JqZWN0PihvcHRpb25zOiBJbmplY3RPcHRpb25zICYgeyBvcHRpb25hbD86IGZhbHNlIH0pOiBOZ3RJbnN0YW5jZTxUPjtcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RJbnN0YW5jZTxUIGV4dGVuZHMgb2JqZWN0PihvcHRpb25zOiBJbmplY3RPcHRpb25zICYgeyBvcHRpb25hbD86IHRydWUgfSk6IE5ndEluc3RhbmNlPFQ+IHwgbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RJbnN0YW5jZShvcHRpb25zOiBJbmplY3RPcHRpb25zID0ge30pIHtcbiAgICByZXR1cm4gaW5qZWN0KE5ndEluc3RhbmNlLCBvcHRpb25zKTtcbn1cblxuY29uc3Qgc3VwcG9ydGVkRXZlbnRzID0gW1xuICAgICdjbGljaycsXG4gICAgJ2NvbnRleHRtZW51JyxcbiAgICAnZGJsY2xpY2snLFxuICAgICdwb2ludGVydXAnLFxuICAgICdwb2ludGVyZG93bicsXG4gICAgJ3BvaW50ZXJvdmVyJyxcbiAgICAncG9pbnRlcm91dCcsXG4gICAgJ3BvaW50ZXJlbnRlcicsXG4gICAgJ3BvaW50ZXJsZWF2ZScsXG4gICAgJ3BvaW50ZXJtb3ZlJyxcbiAgICAncG9pbnRlcm1pc3NlZCcsXG4gICAgJ3BvaW50ZXJjYW5jZWwnLFxuICAgICd3aGVlbCcsXG5dIGFzIGNvbnN0O1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tuZ3RJbnN0YW5jZV0nLFxuICAgIGV4cG9ydEFzOiAnbmd0SW5zdGFuY2UnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE5ndEluc3RhbmNlPFxuICAgICAgICBUSW5zdGFuY2UgZXh0ZW5kcyBvYmplY3QgPSBhbnksXG4gICAgICAgIFRJbnN0YW5jZVN0YXRlIGV4dGVuZHMgTmd0SW5zdGFuY2VTdGF0ZTxUSW5zdGFuY2U+ID0gTmd0SW5zdGFuY2VTdGF0ZTxUSW5zdGFuY2U+XG4gICAgPlxuICAgIGV4dGVuZHMgTmd0Q29tcG9uZW50U3RvcmU8VEluc3RhbmNlU3RhdGU+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICAgIEBJbnB1dCgpIHNldCByZWYoaW5zdGFuY2U6IFRJbnN0YW5jZSB8IE5ndFJlZjxUSW5zdGFuY2U+KSB7XG4gICAgICAgIHRoaXMud3JpdGUoeyBpbnN0YW5jZVJlZjogaXMucmVmKGluc3RhbmNlKSA/IGluc3RhbmNlIDogbmV3IE5ndFJlZihpbnN0YW5jZSkgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNraXBXcmFwcGVyKHNraXBXcmFwcGVyOiBOZ3RPYnNlcnZhYmxlSW5wdXQ8Ym9vbGVhbj4pIHtcbiAgICAgICAgdGhpcy53cml0ZSh7IHNraXBXcmFwcGVyIH0pO1xuICAgICAgICB0aGlzLndyaXRlKHsgc2tpcFdyYXBwZXJFeHBsaWNpdDogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc2tpcEluaXQoc2tpcEluaXQ6IE5ndE9ic2VydmFibGVJbnB1dDxib29sZWFuPikge1xuICAgICAgICB0aGlzLndyaXRlKHsgc2tpcEluaXQgfSk7XG4gICAgICAgIHRoaXMud3JpdGUoeyBza2lwSW5pdEV4cGxpY2l0OiB0cnVlIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBub0F0dGFjaChub0F0dGFjaDogTmd0T2JzZXJ2YWJsZUlucHV0PGJvb2xlYW4+KSB7XG4gICAgICAgIHRoaXMud3JpdGUoeyBub0F0dGFjaCB9KTtcbiAgICAgICAgdGhpcy53cml0ZSh7IG5vQXR0YWNoRXhwbGljaXQ6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGF0dGFjaCh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10gfCBbc3RyaW5nLCAuLi4oc3RyaW5nIHwgbnVtYmVyKVtdXSB8IE5ndEF0dGFjaEZ1bmN0aW9uIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgYXR0YWNoID1cbiAgICAgICAgICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgICAgICAgICAgICAgICAgID8gdmFsdWUubWFwKChpdGVtKSA9PiAodHlwZW9mIGl0ZW0gPT09ICdudW1iZXInID8gaXRlbS50b1N0cmluZygpIDogaXRlbSkpXG4gICAgICAgICAgICAgICAgICAgIDogW3ZhbHVlXTtcblxuICAgICAgICAgICAgdGhpcy53cml0ZSh7IGF0dGFjaCwgYXR0YWNoRXhwbGljaXQ6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKSBwcmlvcml0eSA9IDA7XG4gICAgQElucHV0KCkgYmVmb3JlUmVuZGVyPzogTmd0QmVmb3JlUmVuZGVyQ2FsbGJhY2s8VEluc3RhbmNlPjtcblxuICAgIEBJbnB1dCgpIHJlYWR5Q2FsbGJhY2s/OiAoKGluc3RhbmNlOiBUSW5zdGFuY2UpID0+IHZvaWQpIHwgKCgpID0+IHZvaWQpO1xuICAgIEBJbnB1dCgpIHVwZGF0ZUNhbGxiYWNrPzogKChpbnN0YW5jZTogVEluc3RhbmNlKSA9PiB2b2lkKSB8ICgoKSA9PiB2b2lkKTtcblxuICAgIEBPdXRwdXQoKSBjbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Tmd0VGhyZWVFdmVudDxNb3VzZUV2ZW50Pj4oKTtcbiAgICBAT3V0cHV0KCkgY29udGV4dG1lbnUgPSBuZXcgRXZlbnRFbWl0dGVyPE5ndFRocmVlRXZlbnQ8TW91c2VFdmVudD4+KCk7XG4gICAgQE91dHB1dCgpIGRibGNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxOZ3RUaHJlZUV2ZW50PE1vdXNlRXZlbnQ+PigpO1xuICAgIEBPdXRwdXQoKSBwb2ludGVydXAgPSBuZXcgRXZlbnRFbWl0dGVyPE5ndFRocmVlRXZlbnQ8UG9pbnRlckV2ZW50Pj4oKTtcbiAgICBAT3V0cHV0KCkgcG9pbnRlcmRvd24gPSBuZXcgRXZlbnRFbWl0dGVyPE5ndFRocmVlRXZlbnQ8UG9pbnRlckV2ZW50Pj4oKTtcbiAgICBAT3V0cHV0KCkgcG9pbnRlcm92ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPE5ndFRocmVlRXZlbnQ8UG9pbnRlckV2ZW50Pj4oKTtcbiAgICBAT3V0cHV0KCkgcG9pbnRlcm91dCA9IG5ldyBFdmVudEVtaXR0ZXI8Tmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+PigpO1xuICAgIEBPdXRwdXQoKSBwb2ludGVyZW50ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPE5ndFRocmVlRXZlbnQ8UG9pbnRlckV2ZW50Pj4oKTtcbiAgICBAT3V0cHV0KCkgcG9pbnRlcmxlYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4+KCk7XG4gICAgQE91dHB1dCgpIHBvaW50ZXJtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcjxOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4+KCk7XG4gICAgQE91dHB1dCgpIHBvaW50ZXJtaXNzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE5ndFRocmVlRXZlbnQ8UG9pbnRlckV2ZW50Pj4oKTtcbiAgICBAT3V0cHV0KCkgcG9pbnRlcmNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8Tmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+PigpO1xuICAgIEBPdXRwdXQoKSB3aGVlbCA9IG5ldyBFdmVudEVtaXR0ZXI8Tmd0VGhyZWVFdmVudDxXaGVlbEV2ZW50Pj4oKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgem9uZSA9IGluamVjdChOZ1pvbmUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBwYXJlbnRSZWYgPSBpbmplY3RJbnN0YW5jZVJlZih7IHNraXBTZWxmOiB0cnVlLCBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICBwcml2YXRlIF9pc1JhdyA9IGZhbHNlO1xuXG4gICAgc2V0IGlzUmF3KHZhbDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9pc1JhdyA9IHZhbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc0VtaXR0ZWRBbHJlYWR5ID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGluc3RhbmNlUmVhZHkgPSB0aGlzLmVmZmVjdChcbiAgICAgICAgdGFwRWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRXZlbnRzKCk7XG5cbiAgICAgICAgICAgIGxldCBhdHRhY2hUb1BhcmVudFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50UmVmKSB7XG4gICAgICAgICAgICAgICAgYXR0YWNoVG9QYXJlbnRTdWJzY3JpcHRpb24gPSB0aGlzLmF0dGFjaFRvUGFyZW50KHRoaXMucGFyZW50IS5waXBlKGZpbHRlcigocGFyZW50KSA9PiAhIXBhcmVudCkpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IGJlZm9yZVJlbmRlckNsZWFuVXA6ICgpID0+IHZvaWQ7XG4gICAgICAgICAgICBpZiAodGhpcy5iZWZvcmVSZW5kZXIgJiYgaXMub2JqZWN0M2QodGhpcy5pbnN0YW5jZVZhbHVlKSAmJiBpcy5vYmplY3QzZCh0aGlzLnByb3h5SW5zdGFuY2UpKSB7XG4gICAgICAgICAgICAgICAgYmVmb3JlUmVuZGVyQ2xlYW5VcCA9IHRoaXMuc3RvcmVcbiAgICAgICAgICAgICAgICAgICAgLnJlYWQoKHMpID0+IHMuaW50ZXJuYWwpXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgICAgICAgICAoc3RhdGUsIG9iamVjdCkgPT4gdGhpcy5iZWZvcmVSZW5kZXIhKHN0YXRlLCBvYmplY3QpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmlvcml0eSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUucmVhZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJveHlJbnN0YW5jZVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5yZWFkeUNhbGxiYWNrKSB0aGlzLnJlYWR5Q2FsbGJhY2sodGhpcy5pbnN0YW5jZVZhbHVlKTtcblxuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBiZWZvcmVSZW5kZXJDbGVhblVwPy4oKTtcbiAgICAgICAgICAgICAgICBhdHRhY2hUb1BhcmVudFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgKTtcblxuICAgIHByaXZhdGUgaGFuZGxlRXZlbnRzID0gdGhpcy5lZmZlY3Q8dm9pZD4oXG4gICAgICAgIHRhcEVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5pbnN0YW5jZVZhbHVlICYmIGlzLm9iamVjdDNkKHRoaXMuaW5zdGFuY2VWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBvYnNlcnZlZEV2ZW50cyA9IHN1cHBvcnRlZEV2ZW50cy5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgICAgIChyZXN1bHQsIGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sbGVyRXZlbnQgPSB0aGlzW2V2ZW50XS5vYnNlcnZlZCA/IHRoaXNbZXZlbnRdIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb250cm9sbGVyRXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuaGFuZGxlcnNbZXZlbnRdID0gdGhpcy5ldmVudE5hbWVUb0hhbmRsZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXJFdmVudCBhcyBFdmVudEVtaXR0ZXI8Tmd0VGhyZWVFdmVudDxhbnk+PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmV2ZW50Q291bnQgKz0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgaGFuZGxlcnM6IHt9LCBldmVudENvdW50OiAwIH0gYXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlcnM6IE5ndEV2ZW50SGFuZGxlcnM7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudENvdW50OiBudW1iZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgLy8gcGF0Y2ggX19uZ3RfXyB3aXRoIGV2ZW50c1xuICAgICAgICAgICAgICAgIGFwcGx5UHJvcHModGhpcy5fX25ndF9fLCBvYnNlcnZlZEV2ZW50cyk7XG5cbiAgICAgICAgICAgICAgICAvLyBhZGQgYXMgYW4gaW50ZXJhY3Rpb24gaWYgdGhlcmUgYXJlIGV2ZW50cyBvYnNlcnZlZFxuICAgICAgICAgICAgICAgIGlmIChvYnNlcnZlZEV2ZW50cy5ldmVudENvdW50ID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBnZXRJbnN0YW5jZUxvY2FsU3RhdGUodGhpcy5pbnN0YW5jZVZhbHVlKT8ucm9vdEZhY3RvcnkoKS5hZGRJbnRlcmFjdGlvbih0aGlzLmluc3RhbmNlVmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGlzLm9iamVjdDNkKHRoaXMuaW5zdGFuY2VWYWx1ZSkgJiYgdGhpcy5fX25ndF9fLmV2ZW50Q291bnQgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGdldEluc3RhbmNlTG9jYWxTdGF0ZSh0aGlzLmluc3RhbmNlVmFsdWUpPy5yb290RmFjdG9yeSgpLnJlbW92ZUludGVyYWN0aW9uKHRoaXMuaW5zdGFuY2VWYWx1ZS51dWlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9KVxuICAgICk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGF0dGFjaFRvUGFyZW50ID0gdGhpcy5lZmZlY3QoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhdHRhY2ggPSB0aGlzLnJlYWQoKHMpID0+IHMuYXR0YWNoKTtcblxuICAgICAgICAgICAgbGV0IHBhcmVudEluc3RhbmNlUmVmID0gdGhpcy5fX25ndF9fPy5wYXJlbnRSZWY7XG5cbiAgICAgICAgICAgIC8vIGlmIG5vIHBhcmVudEluc3RhbmNlLCB0cnkgcmUtcnVuIHRoZSBmYWN0b3J5IGR1ZSB0byBsYXRlIGluaXRcbiAgICAgICAgICAgIGlmICghcGFyZW50SW5zdGFuY2VSZWYgfHwgIXBhcmVudEluc3RhbmNlUmVmLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgLy8gcmV0dXJuIGVhcmx5IGlmIGZhaWxlZCB0byByZXRyaWV2ZVxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5wYXJlbnQ/LnZhbHVlKSByZXR1cm47XG5cbiAgICAgICAgICAgICAgICAvLyByZWFzc2lnbiBvbiBpbnN0YW5jZSBpbnRlcm5hbCBzdGF0ZVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9fbmd0X18pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fX25ndF9fLnBhcmVudFJlZiA9IHRoaXMucGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwYXJlbnRJbnN0YW5jZVJlZiA9IHRoaXMucGFyZW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGF0dGFjaCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF0dGFjaENsZWFuVXAgPSBhdHRhY2gocGFyZW50SW5zdGFuY2VSZWYsIHRoaXMuaW5zdGFuY2VSZWYsIHRoaXMuc3RvcmUucmVhZCk7XG4gICAgICAgICAgICAgICAgaWYgKGF0dGFjaENsZWFuVXApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fX25ndF9fLmF0dGFjaCA9IGF0dGFjaENsZWFuVXA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0eVRvQXR0YWNoID0gWy4uLmF0dGFjaF07XG5cbiAgICAgICAgICAgICAgICAvLyBpZiBwcm9wZXJ0eVRvQXR0YWNoIGlzIGVtcHR5XG4gICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5VG9BdHRhY2gubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgbWlnaHQgYmUgdGhlIGNhc2Ugd2hlcmUgd2UgYXJlIGF0dGFjaGluZyBhbiBvYmplY3QzRCB0byB0aGUgcGFyZW50IG9iamVjdDNEXG4gICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzLm9iamVjdDNkKHRoaXMuaW5zdGFuY2VWYWx1ZSkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzLm9iamVjdDNkKHRoaXMucHJveHlJbnN0YW5jZSkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzLm9iamVjdDNkKHRoaXMucGFyZW50Py52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcmVudD8udmFsdWUuYWRkKHRoaXMucHJveHlJbnN0YW5jZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBhcnJheSBtYXRlcmlhbCBoYW5kbGluZ1xuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVRvQXR0YWNoWzBdID09PSAnbWF0ZXJpYWwnICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVRvQXR0YWNoWzFdICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YgTnVtYmVyKHByb3BlcnR5VG9BdHRhY2hbMV0pID09PSAnbnVtYmVyJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgaXMubWF0ZXJpYWwodGhpcy5pbnN0YW5jZVZhbHVlKVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShwYXJlbnRJbnN0YW5jZVJlZi52YWx1ZS5tYXRlcmlhbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJbnN0YW5jZVJlZi52YWx1ZS5tYXRlcmlhbCA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gcmV0cmlldmUgdGhlIGN1cnJlbnQgdmFsdWUgb24gdGhlIHBhcmVudEluc3RhbmNlLCBzbyB3ZSBjYW4gcmVzZXQgaXQgbGF0ZXJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX19uZ3RfXykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fX25ndF9fLmF0dGFjaFZhbHVlID0gcHJvcGVydHlUb0F0dGFjaC5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlLCBwcm9wZXJ0eSkgPT4gdmFsdWVbcHJvcGVydHldLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudEluc3RhbmNlUmVmLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gYXR0YWNoIHRoZSBpbnN0YW5jZSB2YWx1ZSBvbiB0aGUgcGFyZW50XG4gICAgICAgICAgICAgICAgICAgIG11dGF0ZShwYXJlbnRJbnN0YW5jZVJlZi52YWx1ZSwgdGhpcy5wcm94eUluc3RhbmNlLCBwcm9wZXJ0eVRvQXR0YWNoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyB2YWxpZGF0ZSBvbiB0aGUgaW5zdGFuY2VcbiAgICAgICAgICAgICAgICBpbnZhbGlkYXRlSW5zdGFuY2UodGhpcy5pbnN0YW5jZVZhbHVlKTtcblxuICAgICAgICAgICAgICAgIC8vIHZhbGlkYXRlIG9uIHRoZSBwYXJlbnRcbiAgICAgICAgICAgICAgICBpZiAoZ2V0SW5zdGFuY2VMb2NhbFN0YXRlKHBhcmVudEluc3RhbmNlUmVmLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBpbnZhbGlkYXRlSW5zdGFuY2UocGFyZW50SW5zdGFuY2VSZWYudmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIHNhdmUgdGhlIGF0dGFjaFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9fbmd0X18pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fX25ndF9fLmF0dGFjaCA9IHByb3BlcnR5VG9BdHRhY2g7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMud3JpdGUoeyBhdHRhY2g6IHByb3BlcnR5VG9BdHRhY2ggfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgKTtcblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKSB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy53cml0ZSh7XG4gICAgICAgICAgICBpbnN0YW5jZVJlZjogbmV3IE5ndFJlZihudWxsKSxcbiAgICAgICAgICAgIGF0dGFjaDogW10sXG4gICAgICAgICAgICBub0F0dGFjaDogZmFsc2UsXG4gICAgICAgICAgICBza2lwV3JhcHBlcjogZmFsc2UsXG4gICAgICAgICAgICBza2lwSW5pdDogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5vblJlYWR5KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlUmVhZHkodGhpcy5pbnN0YW5jZVJlZi5waXBlKGZpbHRlcigoaW5zdGFuY2UpID0+ICEhaW5zdGFuY2UpKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGluc3RhbmNlUmVmKCk6IE5ndFJlZjxUSW5zdGFuY2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZCgocykgPT4gcy5pbnN0YW5jZVJlZik7XG4gICAgfVxuXG4gICAgZ2V0IGluc3RhbmNlVmFsdWUoKTogVEluc3RhbmNlIHtcbiAgICAgICAgaWYgKCF0aGlzLmluc3RhbmNlUmVmLnZhbHVlKSByZXR1cm4gdGhpcy5pbnN0YW5jZVJlZi52YWx1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzUmF3ID8gKHRoaXMuaW5zdGFuY2VSZWYudmFsdWU/LnZhbHVlT2YoKSBhcyBUSW5zdGFuY2UpIDogdGhpcy5pbnN0YW5jZVJlZi52YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgcHJveHlJbnN0YW5jZSgpOiBUSW5zdGFuY2Uge1xuICAgICAgICByZXR1cm4gKHRoaXMuaW5zdGFuY2VWYWx1ZSBhcyBhbnkpPy5bTkdUX1BST1hZX0lOU1RBTkNFXTtcbiAgICB9XG5cbiAgICBnZXQgX19uZ3RfXygpOiBOZ3RJbnN0YW5jZUxvY2FsU3RhdGUge1xuICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2VMb2NhbFN0YXRlKFxuICAgICAgICAgICAgdGhpcy5faXNSYXcgPyB0aGlzLmluc3RhbmNlUmVmLnZhbHVlIDogdGhpcy5pbnN0YW5jZVZhbHVlXG4gICAgICAgICkgYXMgTmd0SW5zdGFuY2VMb2NhbFN0YXRlO1xuICAgIH1cblxuICAgIGdldCBwYXJlbnQoKTogTmd0UmVmIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50UmVmPy4oKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlVmFsdWUpIHtcbiAgICAgICAgICAgIGlmIChpcy5vYmplY3QzZCh0aGlzLmluc3RhbmNlVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50SW5zdGFuY2UgPSB0aGlzLnBhcmVudDtcbiAgICAgICAgICAgICAgICBpZiAocGFyZW50SW5zdGFuY2UgJiYgaXMub2JqZWN0M2QocGFyZW50SW5zdGFuY2UudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZUludGVyYWN0aXZpdHkodGhpcy5fX25ndF9fLnN0YXRlRmFjdG9yeS5iaW5kKHRoaXMuX19uZ3RfXyksIHRoaXMuaW5zdGFuY2VWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHBhcmVudEluc3RhbmNlLnZhbHVlLnJlbW92ZSh0aGlzLmluc3RhbmNlVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBpbnZhbGlkYXRlSW5zdGFuY2UocGFyZW50SW5zdGFuY2UudmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmluc3RhbmNlVmFsdWUuY2xlYXIgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlVmFsdWUuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9fbmd0X18pIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gbm9uLXNjZW5lIG9iamVjdHNcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNBdHRhY2ggPSB0aGlzLl9fbmd0X18uYXR0YWNoO1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNBdHRhY2ggIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBwcmV2aW91c0F0dGFjaCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzQXR0YWNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzQXR0YWNoVmFsdWUgPSB0aGlzLl9fbmd0X18uYXR0YWNoVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX19uZ3RfXy5wYXJlbnRSZWYgJiYgdGhpcy5fX25ndF9fLnBhcmVudFJlZi52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRhdGUodGhpcy5fX25ndF9fLnBhcmVudFJlZi52YWx1ZSwgcHJldmlvdXNBdHRhY2hWYWx1ZSwgcHJldmlvdXNBdHRhY2gpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX19uZ3RfXy5wYXJlbnRSZWYgJiYgdGhpcy5fX25ndF9fLnBhcmVudFJlZi52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludmFsaWRhdGVJbnN0YW5jZSh0aGlzLl9fbmd0X18ucGFyZW50UmVmLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZGlzcG9zZSA9ICh0aGlzLmluc3RhbmNlVmFsdWUgYXMgTmd0QW55UmVjb3JkKVsnZGlzcG9zZSddO1xuICAgICAgICAgICAgaWYgKGRpc3Bvc2UgJiYgdHlwZW9mIGRpc3Bvc2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBkaXNwb3NlLmFwcGx5KHRoaXMuaW5zdGFuY2VWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLndyaXRlKHsgYXR0YWNoOiBbXSB9KTtcbiAgICAgICAgdGhpcy5pbnN0YW5jZVJlZi5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXZlbnROYW1lVG9IYW5kbGVyKFxuICAgICAgICBjb250cm9sbGVyRXZlbnQ6IEV2ZW50RW1pdHRlcjxOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4+IHwgRXZlbnRFbWl0dGVyPE5ndFRocmVlRXZlbnQ8V2hlZWxFdmVudD4+XG4gICAgKSB7XG4gICAgICAgIHJldHVybiAoZXZlbnQ6IFBhcmFtZXRlcnM8RXhjbHVkZTxOZ3RFdmVudEhhbmRsZXJzW3R5cGVvZiBzdXBwb3J0ZWRFdmVudHNbbnVtYmVyXV0sIHVuZGVmaW5lZD4+WzBdKSA9PiB7XG4gICAgICAgICAgICAvLyBnbyBiYWNrIGludG8gQW5ndWxhciBab25lIHNvIHRoYXQgc3RhdGUgdXBkYXRlcyBvbiB0aGVzZSBldmVudHMgdHJpZ2dlciBDRFxuICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlckV2ZW50LmVtaXQoZXZlbnQgYXMgTmd0VGhyZWVFdmVudDxhbnk+KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8vIHByb3RlY3RlZCBnZXQgb3B0aW9uc0ZpZWxkcygpOiBzdHJpbmdbXSB7XG4gICAgLy8gICAgIHJldHVybiBbXTtcbiAgICAvLyB9XG4gICAgLy9cbiAgICAvLyAvKipcbiAgICAvLyAgKiBTdWJjbGFzc2VzIGNhbiBjdXN0b21pemUgdGhpcyB0byBydW4gc2V0T3B0aW9ucyBvbiBjdXN0b20gdHJpZ2dlclxuICAgIC8vICAqIEBwcm90ZWN0ZWRcbiAgICAvLyAgKi9cbiAgICAvLyBwcm90ZWN0ZWQgc2V0T3B0aW9uc1RyaWdnZXIkOiBPYnNlcnZhYmxlPHt9PiA9IG9mKHt9KTtcbiAgICAvL1xuICAgIC8vIHByaXZhdGUgcmVhZG9ubHkgaW5pdCA9IHRoaXMuZWZmZWN0KHRhcEVmZmVjdCgoKSA9PiB0aGlzLmluaXRGbih0aGlzLnByZXBhcmVJbnN0YW5jZS5iaW5kKHRoaXMpKSkpO1xuICAgIC8vXG4gICAgLy8gcHJvdGVjdGVkIGFic3RyYWN0IGluaXRGbihwcmVwYXJlSW5zdGFuY2U6IE5ndFByZXBhcmVJbnN0YW5jZUZuPFRJbnN0YW5jZT4pOiAoKCkgPT4gdm9pZCkgfCB2b2lkIHwgdW5kZWZpbmVkO1xuICAgIC8vXG4gICAgLy8gcHJvdGVjdGVkIGluaXRUcmlnZ2VyJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5pbnN0YW5jZUFyZ3MkO1xuICAgIC8vXG4gICAgLy8gcHJpdmF0ZSByZWFkb25seSBzZXRPcHRpb25zID0gdGhpcy5lZmZlY3Q8c3RyaW5nW10+KFxuICAgIC8vICAgICB0YXAoKG5ld09wdGlvbnNLZXlzKSA9PiB7XG4gICAgLy8gICAgICAgICAvLyBubyBvcHRpb25zOyByZXR1cm4gZWFybHlcbiAgICAvLyAgICAgICAgIGlmIChuZXdPcHRpb25zS2V5cy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICAvL1xuICAgIC8vICAgICAgICAgY29uc3QgaW5zdGFuY2VTdGF0ZSA9IHRoaXMuZ2V0U3RhdGUoKTtcbiAgICAvLyAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7fSBhcyBOZ3RBbnlSZWNvcmQ7XG4gICAgLy9cbiAgICAvLyAgICAgICAgIC8vIGhhbmRsaW5nIHJvdGF0aW9uIGFuZCBxdWF0ZXJuaW9uXG4gICAgLy8gICAgICAgICBpZiAobmV3T3B0aW9uc0tleXMuaW5jbHVkZXMoJ3JvdGF0aW9uJykpIHtcbiAgICAvLyAgICAgICAgICAgICBvcHRpb25zWydyb3RhdGlvbiddID0gaW5zdGFuY2VTdGF0ZVsncm90YXRpb24nXTtcbiAgICAvLyAgICAgICAgIH0gZWxzZSBpZiAobmV3T3B0aW9uc0tleXMuaW5jbHVkZXMoJ3F1YXRlcm5pb24nKSkge1xuICAgIC8vICAgICAgICAgICAgIG9wdGlvbnNbJ3F1YXRlcm5pb24nXSA9IGluc3RhbmNlU3RhdGVbJ3F1YXRlcm5pb24nXTtcbiAgICAvLyAgICAgICAgIH1cbiAgICAvL1xuICAgIC8vICAgICAgICAgY29uc3QgaXNNYXRlcmlhbCA9IGlzLm1hdGVyaWFsKHRoaXMuaW5zdGFuY2VWYWx1ZSk7XG4gICAgLy8gICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBuZXdPcHRpb25zS2V5cykge1xuICAgIC8vICAgICAgICAgICAgIC8vIHNraXAgcm90YXRpb24gYW5kIHF1YXRlcm5pb24gYmVjYXVzZSB3ZSBhbHJlYWR5IGhhbmRsZWQgdGhlbVxuICAgIC8vICAgICAgICAgICAgIGlmIChbJ3JvdGF0aW9uJywgJ3F1YXRlcm5pb24nXS5pbmNsdWRlcyhrZXkpKSBjb250aW51ZTtcbiAgICAvLyAgICAgICAgICAgICBjb25zdCBzaG91bGRVc2VPcHRpb24gPSBpc01hdGVyaWFsID8gaW5zdGFuY2VTdGF0ZVtrZXldICE9PSB1bmRlZmluZWQgOiBpbnN0YW5jZVN0YXRlW2tleV0gIT09IG51bGw7XG4gICAgLy9cbiAgICAvLyAgICAgICAgICAgICBpZiAoc2hvdWxkVXNlT3B0aW9uKSB7XG4gICAgLy8gICAgICAgICAgICAgICAgIG9wdGlvbnNba2V5XSA9IGluc3RhbmNlU3RhdGVba2V5XTtcbiAgICAvLyAgICAgICAgICAgICB9XG4gICAgLy8gICAgICAgICB9XG4gICAgLy9cbiAgICAvLyAgICAgICAgIGlmIChpc01hdGVyaWFsKSB7XG4gICAgLy8gICAgICAgICAgICAgaWYgKCd1bmlmb3JtcycgaW4gdGhpcy5pbnN0YW5jZVZhbHVlICYmIG5ld09wdGlvbnNLZXlzLmluY2x1ZGVzKCd1bmlmb3JtcycpKSB7XG4gICAgLy8gICAgICAgICAgICAgICAgIG9wdGlvbnNbJ3VuaWZvcm1zJ10gPSB7XG4gICAgLy8gICAgICAgICAgICAgICAgICAgICAuLi4odGhpcy5pbnN0YW5jZVZhbHVlIGFzIHVua25vd24gYXMgVEhSRUUuU2hhZGVyTWF0ZXJpYWwpWyd1bmlmb3JtcyddLFxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgLi4uaW5zdGFuY2VTdGF0ZVsndW5pZm9ybXMnXSxcbiAgICAvLyAgICAgICAgICAgICAgICAgfTtcbiAgICAvLyAgICAgICAgICAgICB9XG4gICAgLy8gICAgICAgICB9XG4gICAgLy9cbiAgICAvLyAgICAgICAgIGFwcGx5UHJvcHModGhpcy5pbnN0YW5jZVZhbHVlLCBvcHRpb25zKTtcbiAgICAvL1xuICAgIC8vICAgICAgICAgdGhpcy5wb3N0U2V0T3B0aW9ucyh0aGlzLmluc3RhbmNlVmFsdWUpO1xuICAgIC8vXG4gICAgLy8gICAgICAgICBjaGVja1VwZGF0ZSh0aGlzLmluc3RhbmNlVmFsdWUpO1xuICAgIC8vXG4gICAgLy8gICAgICAgICBpZiAodGhpcy51cGRhdGUub2JzZXJ2ZWQpIHtcbiAgICAvLyAgICAgICAgICAgICB0aGlzLnVwZGF0ZS5lbWl0KHRoaXMuaW5zdGFuY2VWYWx1ZSk7XG4gICAgLy8gICAgICAgICB9XG4gICAgLy8gICAgIH0pXG4gICAgLy8gKTtcbiAgICAvL1xuICAgIC8vIHByaXZhdGUgcmVhZG9ubHkgYXR0YWNoVG9QYXJlbnQgPSB0aGlzLmVmZmVjdChcbiAgICAvLyAgICAgdGFwKCgpID0+IHtcbiAgICAvLyAgICAgICAgIGNvbnN0IGF0dGFjaCA9IHRoaXMuZ2V0U3RhdGUoKHMpID0+IHMuYXR0YWNoKTtcbiAgICAvL1xuICAgIC8vICAgICAgICAgbGV0IHBhcmVudEluc3RhbmNlUmVmID0gdGhpcy5fX25ndF9fLnBhcmVudFJlZjtcbiAgICAvL1xuICAgIC8vICAgICAgICAgLy8gaWYgbm8gcGFyZW50SW5zdGFuY2UsIHRyeSByZS1ydW4gdGhlIGZhY3RvcnkgZHVlIHRvIGxhdGUgaW5pdFxuICAgIC8vICAgICAgICAgaWYgKCFwYXJlbnRJbnN0YW5jZVJlZiB8fCAhcGFyZW50SW5zdGFuY2VSZWYudmFsdWUpIHtcbiAgICAvLyAgICAgICAgICAgICAvLyByZXR1cm4gZWFybHkgaWYgZmFpbGVkIHRvIHJldHJpZXZlXG4gICAgLy8gICAgICAgICAgICAgaWYgKCF0aGlzLnBhcmVudD8udmFsdWUpIHJldHVybjtcbiAgICAvL1xuICAgIC8vICAgICAgICAgICAgIC8vIHJlYXNzaWduIG9uIGluc3RhbmNlIGludGVybmFsIHN0YXRlXG4gICAgLy8gICAgICAgICAgICAgdGhpcy5fX25ndF9fLnBhcmVudFJlZiA9IHRoaXMucGFyZW50O1xuICAgIC8vICAgICAgICAgICAgIHBhcmVudEluc3RhbmNlUmVmID0gdGhpcy5wYXJlbnQ7XG4gICAgLy8gICAgICAgICB9XG4gICAgLy9cbiAgICAvLyAgICAgICAgIGlmICh0eXBlb2YgYXR0YWNoID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gICAgICAgICAgICAgY29uc3QgYXR0YWNoQ2xlYW5VcCA9IGF0dGFjaChwYXJlbnRJbnN0YW5jZVJlZiwgdGhpcy5pbnN0YW5jZVJlZik7XG4gICAgLy8gICAgICAgICAgICAgaWYgKGF0dGFjaENsZWFuVXApIHtcbiAgICAvLyAgICAgICAgICAgICAgICAgdGhpcy5fX25ndF9fLmF0dGFjaCA9IGF0dGFjaENsZWFuVXA7XG4gICAgLy8gICAgICAgICAgICAgfVxuICAgIC8vICAgICAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0eVRvQXR0YWNoID0gWy4uLmF0dGFjaF07XG4gICAgLy9cbiAgICAvLyAgICAgICAgICAgICAvLyBpZiBwcm9wZXJ0eVRvQXR0YWNoIGlzIGVtcHR5XG4gICAgLy8gICAgICAgICAgICAgaWYgKHByb3BlcnR5VG9BdHRhY2gubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgLy9cbiAgICAvLyAgICAgICAgICAgICAvLyBhcnJheSBtYXRlcmlhbCBoYW5kbGluZ1xuICAgIC8vICAgICAgICAgICAgIGlmIChcbiAgICAvLyAgICAgICAgICAgICAgICAgcHJvcGVydHlUb0F0dGFjaFswXSA9PT0gJ21hdGVyaWFsJyAmJlxuICAgIC8vICAgICAgICAgICAgICAgICBwcm9wZXJ0eVRvQXR0YWNoWzFdICYmXG4gICAgLy8gICAgICAgICAgICAgICAgIHR5cGVvZiBOdW1iZXIocHJvcGVydHlUb0F0dGFjaFsxXSkgPT09ICdudW1iZXInICYmXG4gICAgLy8gICAgICAgICAgICAgICAgIGlzLm1hdGVyaWFsKHRoaXMuaW5zdGFuY2VWYWx1ZSlcbiAgICAvLyAgICAgICAgICAgICApIHtcbiAgICAvLyAgICAgICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KChwYXJlbnRJbnN0YW5jZVJlZi52YWx1ZSBhcyB1bmtub3duIGFzIFRIUkVFLk1lc2gpLm1hdGVyaWFsKSkge1xuICAgIC8vICAgICAgICAgICAgICAgICAgICAgKHBhcmVudEluc3RhbmNlUmVmLnZhbHVlIGFzIHVua25vd24gYXMgVEhSRUUuTWVzaCkubWF0ZXJpYWwgPSBbXTtcbiAgICAvLyAgICAgICAgICAgICAgICAgfVxuICAgIC8vICAgICAgICAgICAgIH1cbiAgICAvL1xuICAgIC8vICAgICAgICAgICAgIC8vIHJldHJpZXZlIHRoZSBjdXJyZW50IHZhbHVlIG9uIHRoZSBwYXJlbnRJbnN0YW5jZSwgc28gd2UgY2FuIHJlc2V0IGl0IGxhdGVyXG4gICAgLy8gICAgICAgICAgICAgdGhpcy5fX25ndF9fLmF0dGFjaFZhbHVlID0gcHJvcGVydHlUb0F0dGFjaC5yZWR1Y2UoXG4gICAgLy8gICAgICAgICAgICAgICAgICh2YWx1ZSwgcHJvcGVydHkpID0+IHZhbHVlW3Byb3BlcnR5XSxcbiAgICAvLyAgICAgICAgICAgICAgICAgcGFyZW50SW5zdGFuY2VSZWYudmFsdWVcbiAgICAvLyAgICAgICAgICAgICApO1xuICAgIC8vXG4gICAgLy8gICAgICAgICAgICAgLy8gYXR0YWNoIHRoZSBpbnN0YW5jZSB2YWx1ZSBvbiB0aGUgcGFyZW50XG4gICAgLy8gICAgICAgICAgICAgbXV0YXRlKHBhcmVudEluc3RhbmNlUmVmLnZhbHVlLCB0aGlzLmluc3RhbmNlVmFsdWUsIHByb3BlcnR5VG9BdHRhY2gpO1xuICAgIC8vXG4gICAgLy8gICAgICAgICAgICAgLy8gdmFsaWRhdGUgb24gdGhlIGluc3RhbmNlXG4gICAgLy8gICAgICAgICAgICAgaW52YWxpZGF0ZUluc3RhbmNlKHRoaXMuaW5zdGFuY2VWYWx1ZSk7XG4gICAgLy9cbiAgICAvLyAgICAgICAgICAgICAvLyB2YWxpZGF0ZSBvbiB0aGUgcGFyZW50XG4gICAgLy8gICAgICAgICAgICAgaWYgKHBhcmVudEluc3RhbmNlUmVmLnZhbHVlLl9fbmd0X18pIHtcbiAgICAvLyAgICAgICAgICAgICAgICAgaW52YWxpZGF0ZUluc3RhbmNlKHBhcmVudEluc3RhbmNlUmVmLnZhbHVlKTtcbiAgICAvLyAgICAgICAgICAgICB9XG4gICAgLy9cbiAgICAvLyAgICAgICAgICAgICB0aGlzLl9fbmd0X18uYXR0YWNoID0gcHJvcGVydHlUb0F0dGFjaDtcbiAgICAvLyAgICAgICAgICAgICB0aGlzLnNldCh7IGF0dGFjaDogcHJvcGVydHlUb0F0dGFjaCB9KTtcbiAgICAvLyAgICAgICAgIH1cbiAgICAvL1xuICAgIC8vICAgICAgICAgY2hlY2tVcGRhdGUocGFyZW50SW5zdGFuY2VSZWYudmFsdWUpO1xuICAgIC8vICAgICAgICAgY2hlY2tVcGRhdGUodGhpcy5pbnN0YW5jZVZhbHVlKTtcbiAgICAvLyAgICAgfSlcbiAgICAvLyApO1xuICAgIC8vXG4gICAgLy8gcHJpdmF0ZSByZWFkb25seSBpbnN0YW5jZVJlYWR5ID0gdGhpcy5lZmZlY3QoXG4gICAgLy8gICAgIHRhcEVmZmVjdCgoKSA9PiB7XG4gICAgLy8gICAgICAgICB0aGlzLnBvc3RJbml0KCk7XG4gICAgLy9cbiAgICAvLyAgICAgICAgIGlmICh0aGlzLmNhbkluaXQpIHtcbiAgICAvLyAgICAgICAgICAgICAvLyBhc3NpZ25pbmcgb3B0aW9uc1xuICAgIC8vXG4gICAgLy8gICAgICAgICAgICAgY29uc3Qgc2V0T3B0aW9uc1N1YiA9IHRoaXMuc2V0T3B0aW9ucyhcbiAgICAvLyAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QoXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICBvcHRpb25zRmllbGRzVG9LZXlzJCh0aGlzLCB0aGlzLm9wdGlvbnNGaWVsZHMsIGlzLm1hdGVyaWFsKHRoaXMuaW5zdGFuY2VWYWx1ZSkpLFxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRPcHRpb25zVHJpZ2dlciQsXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICAob3B0aW9uc0tleXMpID0+IG9wdGlvbnNLZXlzXG4gICAgLy8gICAgICAgICAgICAgICAgIClcbiAgICAvLyAgICAgICAgICAgICApO1xuICAgIC8vXG4gICAgLy8gICAgICAgICAgICAgLy8gYXR0YWNoaW5nXG4gICAgLy8gICAgICAgICAgICAgaWYgKCF0aGlzLmdldFN0YXRlKChzKSA9PiBzLm5vQXR0YWNoKSkge1xuICAgIC8vICAgICAgICAgICAgICAgICB0aGlzLmF0dGFjaFRvUGFyZW50KHRoaXMucGFyZW50KTtcbiAgICAvLyAgICAgICAgICAgICB9XG4gICAgLy9cbiAgICAvLyAgICAgICAgICAgICAvLyBlbWl0dGluZ1xuICAgIC8vICAgICAgICAgICAgIGlmICghdGhpcy5oYXNFbWl0dGVkQWxyZWFkeSkge1xuICAgIC8vICAgICAgICAgICAgICAgICB0aGlzLnJlYWR5LmVtaXQodGhpcy5pbnN0YW5jZVZhbHVlKTtcbiAgICAvLyAgICAgICAgICAgICAgICAgdGhpcy5oYXNFbWl0dGVkQWxyZWFkeSA9IHRydWU7XG4gICAgLy8gICAgICAgICAgICAgfVxuICAgIC8vXG4gICAgLy8gICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAvLyAgICAgICAgICAgICAgICAgc2V0T3B0aW9uc1N1Yi51bnN1YnNjcmliZSgpO1xuICAgIC8vICAgICAgICAgICAgIH07XG4gICAgLy8gICAgICAgICB9XG4gICAgLy8gICAgIH0pXG4gICAgLy8gKTtcbiAgICAvL1xuICAgIC8vIC8qKlxuICAgIC8vICAqIFN1YmNsYXNzZXMgY2FuIHVzZSB0aGlzIGZ1bmN0aW9uIHRvIHJ1biBsb2dpYyAqKmJlZm9yZSoqIE5ndFN0b3JlIGlzIHJlYWR5XG4gICAgLy8gICogQHByb3RlY3RlZFxuICAgIC8vICAqL1xuICAgIC8vIHByb3RlY3RlZCBwcmVTdG9yZVJlYWR5KCkge1xuICAgIC8vICAgICByZXR1cm47XG4gICAgLy8gfVxuICAgIC8vXG4gICAgLy8gLyoqXG4gICAgLy8gICogU3ViY2xhc3NlcyBjYW4gdXNlIHRoaXMgZnVuY3Rpb24gdG8gcnVuIGxvZ2ljICoqYWZ0ZXIqKiBOZ3RTdG9yZSBpcyByZWFkeVxuICAgIC8vICAqIEBwcm90ZWN0ZWRcbiAgICAvLyAgKi9cbiAgICAvLyBwcm90ZWN0ZWQgcG9zdFN0b3JlUmVhZHkoKSB7XG4gICAgLy8gICAgIHJldHVybjtcbiAgICAvLyB9XG4gICAgLy9cbiAgICAvLyAvKipcbiAgICAvLyAgKiBTdWJjbGFzc2VzIGNhbiB1c2UgdGhpcyBmdW5jdGlvbiB0byBydW4gcG9zdC1pbml0IGxvZ2ljXG4gICAgLy8gICogQHByb3RlY3RlZFxuICAgIC8vICAqL1xuICAgIC8vIHByb3RlY3RlZCBwb3N0SW5pdCgpIHtcbiAgICAvLyAgICAgcmV0dXJuO1xuICAgIC8vIH1cbiAgICAvL1xuICAgIC8vIC8qKlxuICAgIC8vICAqIENhbiBiZSB1c2VkIGJ5IHN1YmNsYXNzZXMgdG8gcnVuIGFkZGl0aW9uYWwgbG9naWMgYWZ0ZXIgb3B0aW9ucyBhcmUgc2V0XG4gICAgLy8gICogQHByb3RlY3RlZFxuICAgIC8vICAqL1xuICAgIC8vIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAvLyBwcm90ZWN0ZWQgcG9zdFNldE9wdGlvbnMoXzogVEluc3RhbmNlKSB7XG4gICAgLy8gICAgIHJldHVybjtcbiAgICAvLyB9XG4gICAgLy9cbiAgICAvLyAvKipcbiAgICAvLyAgKiBTdWJjbGFzc2VzIGNhbiB1c2UgdGhpcyBmdW5jdGlvbiB0byBjYWxjdWxhdGUgaW5zdGFuY2UgYXJndW1lbnRzXG4gICAgLy8gICogQHBhcmFtIGluc3RhbmNlQXJnc1xuICAgIC8vICAqIEBwcm90ZWN0ZWRcbiAgICAvLyAgKi9cbiAgICAvLyBwcm90ZWN0ZWQgaW5pdEluc3RhbmNlQXJncyhpbnN0YW5jZUFyZ3M6IHVua25vd25bXSkge1xuICAgIC8vICAgICByZXR1cm4gaW5zdGFuY2VBcmdzO1xuICAgIC8vIH1cbiAgICAvL1xuICAgIC8vIG92ZXJyaWRlIGluaXRpYWxpemUoKSB7XG4gICAgLy8gICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAvLyAgICAgdGhpcy5zZXQoe1xuICAgIC8vICAgICAgICAgaW5zdGFuY2VSZWY6IG5ldyBOZ3RSZWYobnVsbCksXG4gICAgLy8gICAgICAgICBpbnN0YW5jZUFyZ3M6IFtdLFxuICAgIC8vICAgICAgICAgYXR0YWNoOiBbXSxcbiAgICAvLyAgICAgICAgIG5vQXR0YWNoOiBmYWxzZSxcbiAgICAvLyAgICAgICAgIHNraXBXcmFwcGVyOiBmYWxzZSxcbiAgICAvLyAgICAgICAgIHNraXBJbml0OiBmYWxzZSxcbiAgICAvLyAgICAgICAgIG5vQXR0YWNoRXhwbGljaXQ6IGZhbHNlLFxuICAgIC8vICAgICAgICAgc2tpcFdyYXBwZXJFeHBsaWNpdDogZmFsc2UsXG4gICAgLy8gICAgICAgICBza2lwSW5pdEV4cGxpY2l0OiBmYWxzZSxcbiAgICAvLyAgICAgICAgIGF0dGFjaEV4cGxpY2l0OiBmYWxzZSxcbiAgICAvLyAgICAgfSk7XG4gICAgLy8gfVxuICAgIC8vXG4gICAgLy8gbmdPbkluaXQoKSB7XG4gICAgLy8gICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgLy8gICAgICAgICAvLyBydW4gbG9naWMgYmVmb3JlIHRoZSBzdG9yZSBpcyByZWFkeTsgYWthIGJlZm9yZSB0aGUgY2FudmFzIGVudGl0aWVzIGFyZSBjcmVhdGVkIGFuZCByZWFkeVxuICAgIC8vICAgICAgICAgdGhpcy5wcmVTdG9yZVJlYWR5KCk7XG4gICAgLy9cbiAgICAvLyAgICAgICAgIHRoaXMuc3RvcmUub25SZWFkeSgoKSA9PiB7XG4gICAgLy8gICAgICAgICAgICAgdGhpcy5wb3N0U3RvcmVSZWFkeSgpO1xuICAgIC8vXG4gICAgLy8gICAgICAgICAgICAgLy8gbm93IHJ1biBpbml0LCBidXQgb25seSBpZiB0aGlzIGlzIE5PVCBhIHdyYXBwZXIgYW5kIHRoZSBza2lwSW5pdCBmbGFnIGlzIG5vdCBzZXRcbiAgICAvLyAgICAgICAgICAgICBpZiAodGhpcy5jYW5Jbml0KSB7XG4gICAgLy8gICAgICAgICAgICAgICAgIHRoaXMuaW5pdCh0aGlzLmluaXRUcmlnZ2VyJCk7XG4gICAgLy8gICAgICAgICAgICAgfVxuICAgIC8vXG4gICAgLy8gICAgICAgICAgICAgLy8gbWFrZSBzdXJlIGBpbnN0YW5jZWAgaXMgYXZhaWxhYmxlIGJlZm9yZSBkb2luZyBhbnl0aGluZ1xuICAgIC8vICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2VSZWFkeSh0aGlzLmluc3RhbmNlUmVmLnBpcGUoZmlsdGVyKChpbnN0YW5jZSkgPT4gaW5zdGFuY2UgIT09IG51bGwpKSk7XG4gICAgLy8gICAgICAgICB9KTtcbiAgICAvLyAgICAgfSk7XG4gICAgLy8gfVxuICAgIC8vXG4gICAgLy8gb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgLy8gICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgLy8gICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAvLyAgICAgfSk7XG4gICAgLy8gICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgLy8gfVxuICAgIC8vXG4gICAgLy8gcHJvdGVjdGVkIGRlc3Ryb3koKSB7XG4gICAgLy8gICAgIGlmICh0aGlzLmluc3RhbmNlVmFsdWUpIHtcbiAgICAvLyAgICAgICAgIGlmIChpcy5vYmplY3QzZCh0aGlzLmluc3RhbmNlVmFsdWUpKSB7XG4gICAgLy8gICAgICAgICAgICAgY29uc3QgcGFyZW50SW5zdGFuY2UgPSB0aGlzLnBhcmVudDtcbiAgICAvLyAgICAgICAgICAgICBpZiAocGFyZW50SW5zdGFuY2UgJiYgaXMub2JqZWN0M2QocGFyZW50SW5zdGFuY2UudmFsdWUpKSB7XG4gICAgLy8gICAgICAgICAgICAgICAgIHJlbW92ZUludGVyYWN0aXZpdHkodGhpcy5fX25ndF9fLnN0YXRlR2V0dGVyLmJpbmQodGhpcy5fX25ndF9fKSwgdGhpcy5pbnN0YW5jZVZhbHVlKTtcbiAgICAvLyAgICAgICAgICAgICB9XG4gICAgLy9cbiAgICAvLyAgICAgICAgICAgICBpZiAodGhpcy5pbnN0YW5jZVZhbHVlLmNsZWFyICE9IG51bGwpIHtcbiAgICAvLyAgICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZVZhbHVlLmNsZWFyKCk7XG4gICAgLy8gICAgICAgICAgICAgfVxuICAgIC8vICAgICAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICAgICAgICAvLyBub24tc2NlbmUgb2JqZWN0c1xuICAgIC8vICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzQXR0YWNoID0gdGhpcy5fX25ndF9fLmF0dGFjaDtcbiAgICAvLyAgICAgICAgICAgICBpZiAocHJldmlvdXNBdHRhY2ggIT0gbnVsbCkge1xuICAgIC8vICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHByZXZpb3VzQXR0YWNoID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0F0dGFjaCgpO1xuICAgIC8vICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgIC8vICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNBdHRhY2hWYWx1ZSA9IHRoaXMuX19uZ3RfXy5hdHRhY2hWYWx1ZTtcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9fbmd0X18ucGFyZW50UmVmICYmIHRoaXMuX19uZ3RfXy5wYXJlbnRSZWYudmFsdWUpIHtcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICBtdXRhdGUodGhpcy5fX25ndF9fLnBhcmVudFJlZi52YWx1ZSwgcHJldmlvdXNBdHRhY2hWYWx1ZSwgcHJldmlvdXNBdHRhY2gpO1xuICAgIC8vICAgICAgICAgICAgICAgICAgICAgfVxuICAgIC8vICAgICAgICAgICAgICAgICB9XG4gICAgLy9cbiAgICAvLyAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX19uZ3RfXy5wYXJlbnRSZWYgJiYgdGhpcy5fX25ndF9fLnBhcmVudFJlZi52YWx1ZSkge1xuICAgIC8vICAgICAgICAgICAgICAgICAgICAgY2hlY2tVcGRhdGUodGhpcy5fX25ndF9fLnBhcmVudFJlZi52YWx1ZSk7XG4gICAgLy8gICAgICAgICAgICAgICAgIH1cbiAgICAvLyAgICAgICAgICAgICB9XG4gICAgLy8gICAgICAgICB9XG4gICAgLy9cbiAgICAvLyAgICAgICAgIGNvbnN0IGRpc3Bvc2UgPSAodGhpcy5pbnN0YW5jZVZhbHVlIGFzIE5ndEFueVJlY29yZClbJ2Rpc3Bvc2UnXTtcbiAgICAvLyAgICAgICAgIGlmIChkaXNwb3NlICYmIHR5cGVvZiBkaXNwb3NlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gICAgICAgICAgICAgZGlzcG9zZS5hcHBseSh0aGlzLmluc3RhbmNlVmFsdWUpO1xuICAgIC8vICAgICAgICAgfVxuICAgIC8vICAgICB9XG4gICAgLy9cbiAgICAvLyAgICAgdGhpcy5zZXQoeyBhdHRhY2g6IFtdIH0pO1xuICAgIC8vICAgICB0aGlzLmluc3RhbmNlUmVmLmNvbXBsZXRlKCk7XG4gICAgLy8gfVxuICAgIC8vXG4gICAgLy8gcHJpdmF0ZSBwcmVwYXJlSW5zdGFuY2UoXG4gICAgLy8gICAgIGluc3RhbmNlOiBUSW5zdGFuY2UsXG4gICAgLy8gICAgIHByZXBhcmVPcHRpb25zOiB7XG4gICAgLy8gICAgICAgICBwYXJlbnRTdGF0ZUdldHRlcj86IE5ndFN0YXRlR2V0dGVyO1xuICAgIC8vICAgICAgICAgcm9vdFN0YXRlR2V0dGVyPzogTmd0U3RhdGVHZXR0ZXI7XG4gICAgLy8gICAgICAgICB1dWlkPzogc3RyaW5nO1xuICAgIC8vICAgICB9ID0ge31cbiAgICAvLyApOiBOZ3RJbnN0YW5jZU5vZGU8VEluc3RhbmNlPiB7XG4gICAgLy8gICAgIGlmICghcHJlcGFyZU9wdGlvbnMucGFyZW50U3RhdGVHZXR0ZXIpIHtcbiAgICAvLyAgICAgICAgIHByZXBhcmVPcHRpb25zLnBhcmVudFN0YXRlR2V0dGVyID0gdGhpcy5zdG9yZS5nZXRTdGF0ZTtcbiAgICAvLyAgICAgfVxuICAgIC8vXG4gICAgLy8gICAgIGlmICghcHJlcGFyZU9wdGlvbnMucm9vdFN0YXRlR2V0dGVyKSB7XG4gICAgLy8gICAgICAgICBwcmVwYXJlT3B0aW9ucy5yb290U3RhdGVHZXR0ZXIgPSB0aGlzLnN0b3JlLnJvb3RTdGF0ZUdldHRlcjtcbiAgICAvLyAgICAgfVxuICAgIC8vXG4gICAgLy8gICAgIGlmIChwcmVwYXJlT3B0aW9ucy51dWlkICYmICd1dWlkJyBpbiBpbnN0YW5jZSkge1xuICAgIC8vICAgICAgICAgKGluc3RhbmNlIGFzIE5ndEFueVJlY29yZClbJ3V1aWQnXSA9IHByZXBhcmVPcHRpb25zLnV1aWQ7XG4gICAgLy8gICAgIH1cbiAgICAvL1xuICAgIC8vICAgICBjb25zdCBwcmVwSW5zdGFuY2UgPSBwcmVwYXJlKFxuICAgIC8vICAgICAgICAgaW5zdGFuY2UsXG4gICAgLy8gICAgICAgICBwcmVwYXJlT3B0aW9ucy5wYXJlbnRTdGF0ZUdldHRlciEsXG4gICAgLy8gICAgICAgICBwcmVwYXJlT3B0aW9ucy5yb290U3RhdGVHZXR0ZXIhLFxuICAgIC8vICAgICAgICAgdGhpcy5wYXJlbnQsXG4gICAgLy8gICAgICAgICB0aGlzLmluc3RhbmNlUmVmLFxuICAgIC8vICAgICAgICAgdGhpcy5pc1ByaW1pdGl2ZVxuICAgIC8vICAgICApO1xuICAgIC8vXG4gICAgLy8gICAgIHRoaXMuaW5zdGFuY2VSZWYuc2V0KHByZXBJbnN0YW5jZSk7XG4gICAgLy9cbiAgICAvLyAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAvLyAgICAgICAgIGNvbnN0IHsgbm9BdHRhY2gsIHNraXBXcmFwcGVyIH0gPSB0aGlzLmdldFN0YXRlKCk7XG4gICAgLy8gICAgICAgICBpZiAoIW5vQXR0YWNoICYmICFza2lwV3JhcHBlcikge1xuICAgIC8vICAgICAgICAgICAgIGNvbnN0IHBhcmVudEluc3RhbmNlTm9kZSA9IGdldEluc3RhbmNlTG9jYWxTdGF0ZShnZXRJbnN0YW5jZUxvY2FsU3RhdGUocHJlcEluc3RhbmNlKT8ucGFyZW50UmVmPy52YWx1ZSk7XG4gICAgLy9cbiAgICAvLyAgICAgICAgICAgICBpZiAocGFyZW50SW5zdGFuY2VOb2RlKSB7XG4gICAgLy8gICAgICAgICAgICAgICAgIGlmIChwcmVwSW5zdGFuY2VbJ2lzR3JvdXAnXSkge1xuICAgIC8vICAgICAgICAgICAgICAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgLy8gICAgICAgICAgICAgICAgIH1cbiAgICAvLyAgICAgICAgICAgICAgICAgY29uc3QgY29sbGVjdGlvbnMgPSBpcy5vYmplY3QzZChwcmVwSW5zdGFuY2UpXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICA/IHBhcmVudEluc3RhbmNlTm9kZS5vYmplY3RzUmVmc1xuICAgIC8vICAgICAgICAgICAgICAgICAgICAgOiBwYXJlbnRJbnN0YW5jZU5vZGUuaW5zdGFuY2VzUmVmcztcbiAgICAvLyAgICAgICAgICAgICAgICAgY29sbGVjdGlvbnMuc2V0KChzKSA9PiBbLi4ucywgdGhpcy5pbnN0YW5jZVJlZl0pO1xuICAgIC8vICAgICAgICAgICAgIH1cbiAgICAvLyAgICAgICAgIH1cbiAgICAvLyAgICAgfSk7XG4gICAgLy9cbiAgICAvLyAgICAgcmV0dXJuIHByZXBJbnN0YW5jZTtcbiAgICAvLyB9XG4gICAgLy9cbiAgICAvLyBnZXQgaW5zdGFuY2VSZWYoKTogTmd0UmVmPFRJbnN0YW5jZT4ge1xuICAgIC8vICAgICByZXR1cm4gdGhpcy5nZXRTdGF0ZSgocykgPT4gcy5pbnN0YW5jZVJlZik7XG4gICAgLy8gfVxuICAgIC8vXG4gICAgLy8gZ2V0IGluc3RhbmNlVmFsdWUoKTogVEluc3RhbmNlIHtcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuaXNSYXcgPyAodGhpcy5pbnN0YW5jZVJlZi52YWx1ZT8udmFsdWVPZigpIGFzIFRJbnN0YW5jZSkgOiB0aGlzLmluc3RhbmNlUmVmLnZhbHVlO1xuICAgIC8vIH1cbiAgICAvL1xuICAgIC8vIGdldCBpbnN0YW5jZUFyZ3MkKCkge1xuICAgIC8vICAgICByZXR1cm4gdGhpcy5zZWxlY3QoKHMpID0+IHMuaW5zdGFuY2VBcmdzKTtcbiAgICAvLyB9XG4gICAgLy9cbiAgICAvLyBnZXQgaW5zdGFuY2VBcmdzKCk6IHVua25vd25bXSB7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLmdldFN0YXRlKChzKSA9PiBzLmluc3RhbmNlQXJncyk7XG4gICAgLy8gfVxuICAgIC8vXG4gICAgLy8gc2V0IGluc3RhbmNlQXJncyh2OiB1bmtub3duIHwgdW5rbm93bltdKSB7XG4gICAgLy8gICAgIGNvbnN0IGFyZ3MgPSBBcnJheS5pc0FycmF5KHYpID8gdiA6IFt2XTtcbiAgICAvLyAgICAgdGhpcy5zZXQoeyBpbnN0YW5jZUFyZ3M6IGFyZ3MgfSk7XG4gICAgLy8gICAgIGlmICh0aGlzLmluc3RhbmNlUmVmICYmIHRoaXMuX19uZ3RfXykge1xuICAgIC8vICAgICAgICAgaWYgKCF0aGlzLl9fbmd0X18ubWVtb2l6ZWQpIHtcbiAgICAvLyAgICAgICAgICAgICB0aGlzLl9fbmd0X18ubWVtb2l6ZWQgPSB7fTtcbiAgICAvLyAgICAgICAgIH1cbiAgICAvLyAgICAgICAgIHRoaXMuX19uZ3RfXy5tZW1vaXplZFsnYXJncyddID0gYXJncztcbiAgICAvLyAgICAgfVxuICAgIC8vIH1cbiAgICAvL1xuICAgIC8vIGdldCBfX25ndF9fKCk6IE5ndEluc3RhbmNlTG9jYWxTdGF0ZSB7XG4gICAgLy8gICAgIHJldHVybiBnZXRJbnN0YW5jZUxvY2FsU3RhdGUodGhpcy5pc1JhdyA/IHRoaXMuaW5zdGFuY2VSZWYudmFsdWUgOiB0aGlzLmluc3RhbmNlVmFsdWUpIGFzIE5ndEluc3RhbmNlTG9jYWxTdGF0ZTtcbiAgICAvLyB9XG4gICAgLy9cbiAgICAvLyBnZXQgcGFyZW50KCk6IE5ndFJlZiB7XG4gICAgLy8gICAgIGlmICghdGhpcy5nZXRTdGF0ZSgocykgPT4gcy5za2lwV3JhcHBlcikpIHJldHVybiB0aGlzLnBhcmVudFJlZj8uKCk7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLnBhcmVudEhvc3RSZWY/LigpIHx8IHRoaXMucGFyZW50UmVmPy4oKTtcbiAgICAvLyB9XG4gICAgLy9cbiAgICAvLyBnZXQgY2FuSW5pdCgpIHtcbiAgICAvLyAgICAgcmV0dXJuICF0aGlzLmlzV3JhcHBlciAmJiAhdGhpcy5nZXRTdGF0ZSgocykgPT4gcy5za2lwSW5pdCk7XG4gICAgLy8gfVxufVxuXG5leHBvcnQgY29uc3QgTkdUX0lOU1RBTkNFX0lOUFVUUyA9IFtcbiAgICAncmVmJyxcbiAgICAnYXR0YWNoJyxcbiAgICAnc2tpcFdyYXBwZXInLFxuICAgICdza2lwSW5pdCcsXG4gICAgJ25vQXR0YWNoJyxcbiAgICAnYmVmb3JlUmVuZGVyJyxcbiAgICAncHJpb3JpdHknLFxuICAgICd1cGRhdGVDYWxsYmFjaycsXG4gICAgJ3JlYWR5Q2FsbGJhY2snLFxuXTtcblxuZXhwb3J0IGNvbnN0IE5HVF9JTlNUQU5DRV9PVVRQVVRTID0gWy4uLnN1cHBvcnRlZEV2ZW50c107XG4iXX0=
|
|
368
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXRocmVlL3NyYy9saWIvaW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLGNBQWMsRUFFZCxLQUFLLEVBQ0wsTUFBTSxFQUdOLE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFnQixHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBWTFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFeEMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0FBRXpFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUF5QixrQ0FBa0MsQ0FBQyxDQUFDO0FBQ3ZILE1BQU0sVUFBVSxrQkFBa0IsQ0FHaEMsSUFBVyxFQUFFLE9BQW1EO0lBQzlELE9BQU87UUFDSCxPQUFPLEVBQUUsd0JBQXdCO1FBQ2pDLFVBQVUsRUFBRSxDQUFDLFFBQTZCLEVBQUUsRUFBRTtZQUMxQyxJQUFJLE9BQU8sRUFBRTtnQkFDVCxPQUFPLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNsQztZQUVELE9BQU8sR0FBRyxFQUFFLENBQ1AsUUFBeUIsQ0FBQyxhQUFhLENBQUMsSUFBSyxRQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNHLENBQUM7UUFDRCxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUM7S0FDZixDQUFDO0FBQ04sQ0FBQztBQUlELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxVQUF5QixFQUFFO0lBQ3pELE9BQU8sTUFBTSxDQUFDLHdCQUF3QixFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFhRCxNQUFNLFVBQVUsY0FBYyxDQUFDLFVBQXlCLEVBQUU7SUFDdEQsT0FBTyxNQUFNLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxNQUFNLGVBQWUsR0FBRztJQUNwQixPQUFPO0lBQ1AsYUFBYTtJQUNiLFVBQVU7SUFDVixXQUFXO0lBQ1gsYUFBYTtJQUNiLGFBQWE7SUFDYixZQUFZO0lBQ1osY0FBYztJQUNkLGNBQWM7SUFDZCxhQUFhO0lBQ2IsZUFBZTtJQUNmLGVBQWU7SUFDZixPQUFPO0NBQ0QsQ0FBQztBQU9YLE1BQU0sT0FBTyxXQUlULFNBQVEsaUJBQWlDO0lBVDdDOztRQTRDYSxhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBTVosVUFBSyxHQUFHLElBQUksWUFBWSxFQUE2QixDQUFDO1FBQ3RELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFDNUQsYUFBUSxHQUFHLElBQUksWUFBWSxFQUE2QixDQUFDO1FBQ3pELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBK0IsQ0FBQztRQUM1RCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUErQixDQUFDO1FBQzlELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQStCLENBQUM7UUFDOUQsZUFBVSxHQUFHLElBQUksWUFBWSxFQUErQixDQUFDO1FBQzdELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQStCLENBQUM7UUFDL0QsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBK0IsQ0FBQztRQUMvRCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUErQixDQUFDO1FBQzlELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQStCLENBQUM7UUFDaEUsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBK0IsQ0FBQztRQUNoRSxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFFL0MsU0FBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QixVQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXpCLGNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0UsV0FBTSxHQUFHLEtBQUssQ0FBQztRQU1mLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUVqQixrQkFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQ3hDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDWCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFcEIsSUFBSSwwQkFBd0MsQ0FBQztZQUM3QyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ2hCLDBCQUEwQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsRyxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDM0IsTUFBTSxrQkFBa0IsR0FBRyxxQkFBcUIsQ0FDNUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQzlELENBQUM7b0JBRUYsSUFBSSxrQkFBa0IsRUFBRTt3QkFDcEIsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDOzRCQUMvQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsV0FBVzs0QkFDaEMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQzt3QkFDdkMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztxQkFDcEQ7aUJBQ0o7YUFDSjtZQUVELElBQUksbUJBQStCLENBQUM7WUFDcEMsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFO2dCQUN6RixtQkFBbUIsR0FBRyxJQUFJLENBQUMsS0FBSztxQkFDM0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO3FCQUN2QixTQUFTLENBQ04sQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBYSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFDcEQsSUFBSSxDQUFDLFFBQVEsRUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFDZixJQUFJLENBQUMsYUFBYSxDQUNyQixDQUFDO2FBQ1Q7WUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhO2dCQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRS9ELE9BQU8sR0FBRyxFQUFFO2dCQUNSLG1CQUFtQixFQUFFLEVBQUUsQ0FBQztnQkFDeEIsMEJBQTBCLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDOUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUVNLGlCQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FDOUIsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDdkQsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FDekMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7b0JBQ2QsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7b0JBQ2xFLElBQUksZUFBZSxFQUFFO3dCQUNqQixNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FDNUMsZUFBbUQsQ0FDdEQsQ0FBQzt3QkFDRixNQUFNLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQztxQkFDMUI7b0JBQ0QsT0FBTyxNQUFNLENBQUM7Z0JBQ2xCLENBQUMsRUFDRCxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFHNUIsQ0FDSixDQUFDO2dCQUVGLDRCQUE0QjtnQkFDNUIsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7Z0JBRXpDLHFEQUFxRDtnQkFDckQsSUFBSSxjQUFjLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRTtvQkFDL0IscUJBQXFCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7aUJBQy9GO2FBQ0o7WUFDRCxPQUFPLEdBQUcsRUFBRTtnQkFDUixJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRTtvQkFDaEUscUJBQXFCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3ZHO1lBQ0wsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUVlLG1CQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FDekMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNMLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUUxQyxJQUFJLGlCQUFpQixHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDO1lBRWhELGdFQUFnRTtZQUNoRSxJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUU7Z0JBQ2hELHFDQUFxQztnQkFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSztvQkFBRSxPQUFPO2dCQUVoQyxzQ0FBc0M7Z0JBQ3RDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO2lCQUN4QztnQkFDRCxpQkFBaUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO2FBQ25DO1lBRUQsSUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUU7Z0JBQzlCLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ25GLElBQUksYUFBYSxFQUFFO29CQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQztpQkFDdkM7YUFDSjtpQkFBTTtnQkFDSCxNQUFNLGdCQUFnQixHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztnQkFFckMsK0JBQStCO2dCQUMvQixJQUFJLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7b0JBQy9CLG1GQUFtRjtvQkFDbkYsSUFDSSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7d0JBQy9CLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQzt3QkFDL0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUNqQzt3QkFDRSxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO3FCQUM5QztpQkFDSjtxQkFBTTtvQkFDSCwwQkFBMEI7b0JBQzFCLElBQ0ksZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEtBQUssVUFBVTt3QkFDbEMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO3dCQUNuQixPQUFPLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVE7d0JBQy9DLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUNqQzt3QkFDRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUU7NEJBQ2xELGlCQUFpQixDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO3lCQUN6QztxQkFDSjtvQkFFRCw2RUFBNkU7b0JBQzdFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTt3QkFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQzlDLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUNwQyxpQkFBaUIsQ0FBQyxLQUFLLENBQzFCLENBQUM7cUJBQ0w7b0JBRUQsMENBQTBDO29CQUMxQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztpQkFDekU7Z0JBRUQsMkJBQTJCO2dCQUMzQixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBRXZDLHlCQUF5QjtnQkFDekIsSUFBSSxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDaEQsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQy9DO2dCQUVELGtCQUFrQjtnQkFDbEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO29CQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDO2lCQUMxQztnQkFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQzthQUM1QztRQUNMLENBQUMsQ0FBQyxDQUNMLENBQUM7S0F5R0w7SUFwVUcsSUFBYSxHQUFHLENBQUMsUUFBdUM7UUFDcEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQsSUFBYSxXQUFXLENBQUMsV0FBd0M7UUFDN0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQWEsUUFBUSxDQUFDLFFBQXFDO1FBQ3ZELElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFhLFFBQVEsQ0FBQyxRQUFxQztRQUN2RCxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBYSxNQUFNLENBQUMsS0FBMkY7UUFDM0csSUFBSSxLQUFLLEVBQUU7WUFDUCxNQUFNLE1BQU0sR0FDUixPQUFPLEtBQUssS0FBSyxVQUFVO2dCQUN2QixDQUFDLENBQUMsS0FBSztnQkFDUCxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7b0JBQ3RCLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDMUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNoRDtJQUNMLENBQUM7SUE0QkQsSUFBSSxLQUFLLENBQUMsR0FBWTtRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUN0QixDQUFDO0lBaUtRLFVBQVU7UUFDZixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNQLFdBQVcsRUFBRSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDN0IsTUFBTSxFQUFFLEVBQUU7WUFDVixRQUFRLEVBQUUsS0FBSztZQUNmLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLFFBQVEsRUFBRSxLQUFLO1NBQ2xCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO2dCQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoRixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLO1lBQUUsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztRQUMzRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7SUFDbkcsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQVEsSUFBSSxDQUFDLGFBQXFCLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLHFCQUFxQixDQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FDbkMsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRVEsV0FBVztRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUM3QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVPLE9BQU87UUFDWCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDcEIsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDakMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDbkMsSUFBSSxjQUFjLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ3JELG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUN0RixjQUFjLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBQ2hELGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDNUM7Z0JBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUU7b0JBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7aUJBQzlCO2FBQ0o7aUJBQU07Z0JBQ0gsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO29CQUNkLG9CQUFvQjtvQkFDcEIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7b0JBQzNDLElBQUksY0FBYyxJQUFJLElBQUksRUFBRTt3QkFDeEIsSUFBSSxPQUFPLGNBQWMsS0FBSyxVQUFVLEVBQUU7NEJBQ3RDLGNBQWMsRUFBRSxDQUFDO3lCQUNwQjs2QkFBTTs0QkFDSCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDOzRCQUNyRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRTtnQ0FDeEQsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxjQUFjLENBQUMsQ0FBQzs2QkFDN0U7eUJBQ0o7d0JBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUU7NEJBQ3hELGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO3lCQUNwRDtxQkFDSjtpQkFDSjthQUNKO1lBRUQsTUFBTSxPQUFPLEdBQUksSUFBSSxDQUFDLGFBQThCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDaEUsSUFBSSxPQUFPLElBQUksT0FBTyxPQUFPLEtBQUssVUFBVSxFQUFFO2dCQUMxQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNyQztTQUNKO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVPLGtCQUFrQixDQUN0QixlQUFvRztRQUVwRyxPQUFPLENBQUMsS0FBMEYsRUFBRSxFQUFFO1lBQ2xHLDZFQUE2RTtZQUM3RSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2YsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUEyQixDQUFDLENBQUM7WUFDdEQsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUM7SUFDTixDQUFDOzt3R0ExVVEsV0FBVzs0RkFBWCxXQUFXOzJGQUFYLFdBQVc7a0JBTHZCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFFBQVEsRUFBRSxhQUFhO29CQUN2QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OEJBUWdCLEdBQUc7c0JBQWYsS0FBSztnQkFJTyxXQUFXO3NCQUF2QixLQUFLO2dCQUtPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBS08sUUFBUTtzQkFBcEIsS0FBSztnQkFLTyxNQUFNO3NCQUFsQixLQUFLO2dCQWFHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUksS0FBSztzQkFBZCxNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07O0FBb1JYLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHO0lBQy9CLEtBQUs7SUFDTCxRQUFRO0lBQ1IsYUFBYTtJQUNiLFVBQVU7SUFDVixVQUFVO0lBQ1YsY0FBYztJQUNkLFVBQVU7SUFDVixnQkFBZ0I7SUFDaEIsZUFBZTtDQUNsQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbmplY3Rpb25Ub2tlbixcbiAgICBJbmplY3RPcHRpb25zLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaWx0ZXIsIFN1YnNjcmlwdGlvbiwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOZ3RSZWYgfSBmcm9tICcuL3JlZic7XG5pbXBvcnQgeyBOZ3RDb21wb25lbnRTdG9yZSwgdGFwRWZmZWN0IH0gZnJvbSAnLi9zdG9yZXMvY29tcG9uZW50LXN0b3JlJztcbmltcG9ydCB7IE5ndFN0b3JlIH0gZnJvbSAnLi9zdG9yZXMvc3RvcmUnO1xuaW1wb3J0IHR5cGUge1xuICAgIE5ndEFueUN0b3IsXG4gICAgTmd0QW55RnVuY3Rpb24sXG4gICAgTmd0QW55UmVjb3JkLFxuICAgIE5ndEF0dGFjaEZ1bmN0aW9uLFxuICAgIE5ndEJlZm9yZVJlbmRlckNhbGxiYWNrLFxuICAgIE5ndEV2ZW50SGFuZGxlcnMsXG4gICAgTmd0SW5zdGFuY2VMb2NhbFN0YXRlLFxuICAgIE5ndE9ic2VydmFibGVJbnB1dCxcbiAgICBOZ3RUaHJlZUV2ZW50LFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGFwcGx5UHJvcHMgfSBmcm9tICcuL3V0aWxzL2FwcGx5LXByb3BzJztcbmltcG9ydCB7IHJlbW92ZUludGVyYWN0aXZpdHkgfSBmcm9tICcuL3V0aWxzL2V2ZW50cyc7XG5pbXBvcnQgeyBnZXRJbnN0YW5jZUxvY2FsU3RhdGUgfSBmcm9tICcuL3V0aWxzL2dldC1pbnN0YW5jZS1sb2NhbC1zdGF0ZSc7XG5pbXBvcnQgeyBpbnZhbGlkYXRlSW5zdGFuY2UgfSBmcm9tICcuL3V0aWxzL2luc3RhbmNlJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi91dGlscy9pcyc7XG5pbXBvcnQgeyBtdXRhdGUgfSBmcm9tICcuL3V0aWxzL211dGF0ZSc7XG5cbmV4cG9ydCBjb25zdCBOR1RfUFJPWFlfSU5TVEFOQ0UgPSBTeW1ib2wuZm9yKCdfX25ndF9fcHJveHlfX2luc3RhbmNlX18nKTtcblxuZXhwb3J0IGNvbnN0IE5HVF9JTlNUQU5DRV9SRUZfRkFDVE9SWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ3RBbnlGdW5jdGlvbjxOZ3RSZWY+PignTmd0SW5zdGFuY2VbaW5zdGFuY2VSZWZdIGZhY3RvcnknKTtcbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlSW5zdGFuY2VSZWY8XG4gICAgVEluc3RhbmNlVHlwZSBleHRlbmRzIG9iamVjdCA9IGFueSxcbiAgICBUQ3RvciBleHRlbmRzIE5ndEFueUN0b3I8VEluc3RhbmNlVHlwZT4gPSBOZ3RBbnlDdG9yPFRJbnN0YW5jZVR5cGU+XG4+KGN0b3I6IFRDdG9yLCBmYWN0b3J5PzogKGluc3RhbmNlOiBJbnN0YW5jZVR5cGU8VEN0b3I+KSA9PiBOZ3RSZWYpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBwcm92aWRlOiBOR1RfSU5TVEFOQ0VfUkVGX0ZBQ1RPUlksXG4gICAgICAgIHVzZUZhY3Rvcnk6IChpbnN0YW5jZTogSW5zdGFuY2VUeXBlPFRDdG9yPikgPT4ge1xuICAgICAgICAgICAgaWYgKGZhY3RvcnkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4gZmFjdG9yeShpbnN0YW5jZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiAoKSA9PlxuICAgICAgICAgICAgICAgIChpbnN0YW5jZSBhcyBOZ3RBbnlSZWNvcmQpWydpbnN0YW5jZVJlZiddIHx8IChpbnN0YW5jZSBhcyBOZ3RBbnlSZWNvcmQpWydpbnN0YW5jZSddWydpbnN0YW5jZVJlZiddO1xuICAgICAgICB9LFxuICAgICAgICBkZXBzOiBbY3Rvcl0sXG4gICAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RJbnN0YW5jZVJlZigpOiBOZ3RBbnlGdW5jdGlvbjxOZ3RSZWY+O1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEluc3RhbmNlUmVmKG9wdGlvbnM6IEluamVjdE9wdGlvbnMgJiB7IG9wdGlvbmFsPzogZmFsc2UgfSk6IE5ndEFueUZ1bmN0aW9uPE5ndFJlZj47XG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0SW5zdGFuY2VSZWYob3B0aW9uczogSW5qZWN0T3B0aW9ucyAmIHsgb3B0aW9uYWw/OiB0cnVlIH0pOiBOZ3RBbnlGdW5jdGlvbjxOZ3RSZWY+IHwgbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RJbnN0YW5jZVJlZihvcHRpb25zOiBJbmplY3RPcHRpb25zID0ge30pIHtcbiAgICByZXR1cm4gaW5qZWN0KE5HVF9JTlNUQU5DRV9SRUZfRkFDVE9SWSwgb3B0aW9ucyk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0SW5zdGFuY2VTdGF0ZTxUSW5zdGFuY2UgZXh0ZW5kcyBvYmplY3QgPSBOZ3RBbnlSZWNvcmQ+IHtcbiAgICBpbnN0YW5jZVJlZjogTmd0UmVmPFRJbnN0YW5jZT47XG4gICAgaW5zdGFuY2VBcmdzOiB1bmtub3duW107XG4gICAgYXR0YWNoOiBzdHJpbmdbXSB8IE5ndEF0dGFjaEZ1bmN0aW9uO1xuICAgIG5vQXR0YWNoOiBib29sZWFuO1xuICAgIHNraXBXcmFwcGVyOiBib29sZWFuO1xuICAgIHNraXBJbml0OiBib29sZWFuO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEluc3RhbmNlPFQgZXh0ZW5kcyBvYmplY3Q+KCk6IE5ndEluc3RhbmNlPFQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEluc3RhbmNlPFQgZXh0ZW5kcyBvYmplY3Q+KG9wdGlvbnM6IEluamVjdE9wdGlvbnMgJiB7IG9wdGlvbmFsPzogZmFsc2UgfSk6IE5ndEluc3RhbmNlPFQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEluc3RhbmNlPFQgZXh0ZW5kcyBvYmplY3Q+KG9wdGlvbnM6IEluamVjdE9wdGlvbnMgJiB7IG9wdGlvbmFsPzogdHJ1ZSB9KTogTmd0SW5zdGFuY2U8VD4gfCBudWxsO1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEluc3RhbmNlKG9wdGlvbnM6IEluamVjdE9wdGlvbnMgPSB7fSkge1xuICAgIHJldHVybiBpbmplY3QoTmd0SW5zdGFuY2UsIG9wdGlvbnMpO1xufVxuXG5jb25zdCBzdXBwb3J0ZWRFdmVudHMgPSBbXG4gICAgJ2NsaWNrJyxcbiAgICAnY29udGV4dG1lbnUnLFxuICAgICdkYmxjbGljaycsXG4gICAgJ3BvaW50ZXJ1cCcsXG4gICAgJ3BvaW50ZXJkb3duJyxcbiAgICAncG9pbnRlcm92ZXInLFxuICAgICdwb2ludGVyb3V0JyxcbiAgICAncG9pbnRlcmVudGVyJyxcbiAgICAncG9pbnRlcmxlYXZlJyxcbiAgICAncG9pbnRlcm1vdmUnLFxuICAgICdwb2ludGVybWlzc2VkJyxcbiAgICAncG9pbnRlcmNhbmNlbCcsXG4gICAgJ3doZWVsJyxcbl0gYXMgY29uc3Q7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW25ndEluc3RhbmNlXScsXG4gICAgZXhwb3J0QXM6ICduZ3RJbnN0YW5jZScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0SW5zdGFuY2U8XG4gICAgICAgIFRJbnN0YW5jZSBleHRlbmRzIG9iamVjdCA9IGFueSxcbiAgICAgICAgVEluc3RhbmNlU3RhdGUgZXh0ZW5kcyBOZ3RJbnN0YW5jZVN0YXRlPFRJbnN0YW5jZT4gPSBOZ3RJbnN0YW5jZVN0YXRlPFRJbnN0YW5jZT5cbiAgICA+XG4gICAgZXh0ZW5kcyBOZ3RDb21wb25lbnRTdG9yZTxUSW5zdGFuY2VTdGF0ZT5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95XG57XG4gICAgQElucHV0KCkgc2V0IHJlZihpbnN0YW5jZTogVEluc3RhbmNlIHwgTmd0UmVmPFRJbnN0YW5jZT4pIHtcbiAgICAgICAgdGhpcy53cml0ZSh7IGluc3RhbmNlUmVmOiBpcy5yZWYoaW5zdGFuY2UpID8gaW5zdGFuY2UgOiBuZXcgTmd0UmVmKGluc3RhbmNlKSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc2tpcFdyYXBwZXIoc2tpcFdyYXBwZXI6IE5ndE9ic2VydmFibGVJbnB1dDxib29sZWFuPikge1xuICAgICAgICB0aGlzLndyaXRlKHsgc2tpcFdyYXBwZXIgfSk7XG4gICAgICAgIHRoaXMud3JpdGUoeyBza2lwV3JhcHBlckV4cGxpY2l0OiB0cnVlIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBza2lwSW5pdChza2lwSW5pdDogTmd0T2JzZXJ2YWJsZUlucHV0PGJvb2xlYW4+KSB7XG4gICAgICAgIHRoaXMud3JpdGUoeyBza2lwSW5pdCB9KTtcbiAgICAgICAgdGhpcy53cml0ZSh7IHNraXBJbml0RXhwbGljaXQ6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IG5vQXR0YWNoKG5vQXR0YWNoOiBOZ3RPYnNlcnZhYmxlSW5wdXQ8Ym9vbGVhbj4pIHtcbiAgICAgICAgdGhpcy53cml0ZSh7IG5vQXR0YWNoIH0pO1xuICAgICAgICB0aGlzLndyaXRlKHsgbm9BdHRhY2hFeHBsaWNpdDogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYXR0YWNoKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSB8IFtzdHJpbmcsIC4uLihzdHJpbmcgfCBudW1iZXIpW11dIHwgTmd0QXR0YWNoRnVuY3Rpb24gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCBhdHRhY2ggPVxuICAgICAgICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgICAgICA/IHZhbHVlXG4gICAgICAgICAgICAgICAgICAgIDogQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZS5tYXAoKGl0ZW0pID0+ICh0eXBlb2YgaXRlbSA9PT0gJ251bWJlcicgPyBpdGVtLnRvU3RyaW5nKCkgOiBpdGVtKSlcbiAgICAgICAgICAgICAgICAgICAgOiBbdmFsdWVdO1xuXG4gICAgICAgICAgICB0aGlzLndyaXRlKHsgYXR0YWNoLCBhdHRhY2hFeHBsaWNpdDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpIHByaW9yaXR5ID0gMDtcbiAgICBASW5wdXQoKSBiZWZvcmVSZW5kZXI/OiBOZ3RCZWZvcmVSZW5kZXJDYWxsYmFjazxUSW5zdGFuY2U+O1xuXG4gICAgQElucHV0KCkgcmVhZHlDYWxsYmFjaz86ICgoaW5zdGFuY2U6IFRJbnN0YW5jZSkgPT4gdm9pZCkgfCAoKCkgPT4gdm9pZCk7XG4gICAgQElucHV0KCkgdXBkYXRlQ2FsbGJhY2s/OiAoKGluc3RhbmNlOiBUSW5zdGFuY2UpID0+IHZvaWQpIHwgKCgpID0+IHZvaWQpO1xuXG4gICAgQE91dHB1dCgpIGNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxOZ3RUaHJlZUV2ZW50PE1vdXNlRXZlbnQ+PigpO1xuICAgIEBPdXRwdXQoKSBjb250ZXh0bWVudSA9IG5ldyBFdmVudEVtaXR0ZXI8Tmd0VGhyZWVFdmVudDxNb3VzZUV2ZW50Pj4oKTtcbiAgICBAT3V0cHV0KCkgZGJsY2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPE5ndFRocmVlRXZlbnQ8TW91c2VFdmVudD4+KCk7XG4gICAgQE91dHB1dCgpIHBvaW50ZXJ1cCA9IG5ldyBFdmVudEVtaXR0ZXI8Tmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+PigpO1xuICAgIEBPdXRwdXQoKSBwb2ludGVyZG93biA9IG5ldyBFdmVudEVtaXR0ZXI8Tmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+PigpO1xuICAgIEBPdXRwdXQoKSBwb2ludGVyb3ZlciA9IG5ldyBFdmVudEVtaXR0ZXI8Tmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+PigpO1xuICAgIEBPdXRwdXQoKSBwb2ludGVyb3V0ID0gbmV3IEV2ZW50RW1pdHRlcjxOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4+KCk7XG4gICAgQE91dHB1dCgpIHBvaW50ZXJlbnRlciA9IG5ldyBFdmVudEVtaXR0ZXI8Tmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+PigpO1xuICAgIEBPdXRwdXQoKSBwb2ludGVybGVhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPE5ndFRocmVlRXZlbnQ8UG9pbnRlckV2ZW50Pj4oKTtcbiAgICBAT3V0cHV0KCkgcG9pbnRlcm1vdmUgPSBuZXcgRXZlbnRFbWl0dGVyPE5ndFRocmVlRXZlbnQ8UG9pbnRlckV2ZW50Pj4oKTtcbiAgICBAT3V0cHV0KCkgcG9pbnRlcm1pc3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Tmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+PigpO1xuICAgIEBPdXRwdXQoKSBwb2ludGVyY2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjxOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4+KCk7XG4gICAgQE91dHB1dCgpIHdoZWVsID0gbmV3IEV2ZW50RW1pdHRlcjxOZ3RUaHJlZUV2ZW50PFdoZWVsRXZlbnQ+PigpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yZSA9IGluamVjdChOZ3RTdG9yZSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhcmVudFJlZiA9IGluamVjdEluc3RhbmNlUmVmKHsgc2tpcFNlbGY6IHRydWUsIG9wdGlvbmFsOiB0cnVlIH0pO1xuICAgIHByaXZhdGUgX2lzUmF3ID0gZmFsc2U7XG5cbiAgICBzZXQgaXNSYXcodmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lzUmF3ID0gdmFsO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzRW1pdHRlZEFscmVhZHkgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5zdGFuY2VSZWFkeSA9IHRoaXMuZWZmZWN0KFxuICAgICAgICB0YXBFZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVFdmVudHMoKTtcblxuICAgICAgICAgICAgbGV0IGF0dGFjaFRvUGFyZW50U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgICAgICAgICBpZiAodGhpcy5wYXJlbnRSZWYpIHtcbiAgICAgICAgICAgICAgICBhdHRhY2hUb1BhcmVudFN1YnNjcmlwdGlvbiA9IHRoaXMuYXR0YWNoVG9QYXJlbnQodGhpcy5wYXJlbnQhLnBpcGUoZmlsdGVyKChwYXJlbnQpID0+ICEhcGFyZW50KSkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgbm9BdHRhY2gsIHNraXBXcmFwcGVyIH0gPSB0aGlzLnJlYWQoKTtcbiAgICAgICAgICAgICAgICBpZiAoIW5vQXR0YWNoICYmICFza2lwV3JhcHBlcikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnRJbnN0YW5jZU5vZGUgPSBnZXRJbnN0YW5jZUxvY2FsU3RhdGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBnZXRJbnN0YW5jZUxvY2FsU3RhdGUodGhpcy5pbnN0YW5jZVZhbHVlKT8ucGFyZW50UmVmPy52YWx1ZVxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnRJbnN0YW5jZU5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbGxlY3Rpb25zID0gaXMub2JqZWN0M2QodGhpcy5pbnN0YW5jZVZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gcGFyZW50SW5zdGFuY2VOb2RlLm9iamVjdHNSZWZzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwYXJlbnRJbnN0YW5jZU5vZGUuaW5zdGFuY2VzUmVmcztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25zLnNldCgocykgPT4gWy4uLnMsIHRoaXMuaW5zdGFuY2VSZWZdKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IGJlZm9yZVJlbmRlckNsZWFuVXA6ICgpID0+IHZvaWQ7XG4gICAgICAgICAgICBpZiAodGhpcy5iZWZvcmVSZW5kZXIgJiYgaXMub2JqZWN0M2QodGhpcy5pbnN0YW5jZVZhbHVlKSAmJiBpcy5vYmplY3QzZCh0aGlzLnByb3h5SW5zdGFuY2UpKSB7XG4gICAgICAgICAgICAgICAgYmVmb3JlUmVuZGVyQ2xlYW5VcCA9IHRoaXMuc3RvcmVcbiAgICAgICAgICAgICAgICAgICAgLnJlYWQoKHMpID0+IHMuaW50ZXJuYWwpXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgICAgICAgICAoc3RhdGUsIG9iamVjdCkgPT4gdGhpcy5iZWZvcmVSZW5kZXIhKHN0YXRlLCBvYmplY3QpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmlvcml0eSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUucmVhZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJveHlJbnN0YW5jZVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5yZWFkeUNhbGxiYWNrKSB0aGlzLnJlYWR5Q2FsbGJhY2sodGhpcy5pbnN0YW5jZVZhbHVlKTtcblxuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBiZWZvcmVSZW5kZXJDbGVhblVwPy4oKTtcbiAgICAgICAgICAgICAgICBhdHRhY2hUb1BhcmVudFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgKTtcblxuICAgIHByaXZhdGUgaGFuZGxlRXZlbnRzID0gdGhpcy5lZmZlY3Q8dm9pZD4oXG4gICAgICAgIHRhcEVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5pbnN0YW5jZVZhbHVlICYmIGlzLm9iamVjdDNkKHRoaXMuaW5zdGFuY2VWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBvYnNlcnZlZEV2ZW50cyA9IHN1cHBvcnRlZEV2ZW50cy5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgICAgIChyZXN1bHQsIGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sbGVyRXZlbnQgPSB0aGlzW2V2ZW50XS5vYnNlcnZlZCA/IHRoaXNbZXZlbnRdIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb250cm9sbGVyRXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuaGFuZGxlcnNbZXZlbnRdID0gdGhpcy5ldmVudE5hbWVUb0hhbmRsZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXJFdmVudCBhcyBFdmVudEVtaXR0ZXI8Tmd0VGhyZWVFdmVudDxhbnk+PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmV2ZW50Q291bnQgKz0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgaGFuZGxlcnM6IHt9LCBldmVudENvdW50OiAwIH0gYXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlcnM6IE5ndEV2ZW50SGFuZGxlcnM7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudENvdW50OiBudW1iZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgLy8gcGF0Y2ggX19uZ3RfXyB3aXRoIGV2ZW50c1xuICAgICAgICAgICAgICAgIGFwcGx5UHJvcHModGhpcy5fX25ndF9fLCBvYnNlcnZlZEV2ZW50cyk7XG5cbiAgICAgICAgICAgICAgICAvLyBhZGQgYXMgYW4gaW50ZXJhY3Rpb24gaWYgdGhlcmUgYXJlIGV2ZW50cyBvYnNlcnZlZFxuICAgICAgICAgICAgICAgIGlmIChvYnNlcnZlZEV2ZW50cy5ldmVudENvdW50ID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBnZXRJbnN0YW5jZUxvY2FsU3RhdGUodGhpcy5pbnN0YW5jZVZhbHVlKT8ucm9vdEZhY3RvcnkoKS5hZGRJbnRlcmFjdGlvbih0aGlzLmluc3RhbmNlVmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGlzLm9iamVjdDNkKHRoaXMuaW5zdGFuY2VWYWx1ZSkgJiYgdGhpcy5fX25ndF9fLmV2ZW50Q291bnQgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGdldEluc3RhbmNlTG9jYWxTdGF0ZSh0aGlzLmluc3RhbmNlVmFsdWUpPy5yb290RmFjdG9yeSgpLnJlbW92ZUludGVyYWN0aW9uKHRoaXMuaW5zdGFuY2VWYWx1ZS51dWlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9KVxuICAgICk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGF0dGFjaFRvUGFyZW50ID0gdGhpcy5lZmZlY3QoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhdHRhY2ggPSB0aGlzLnJlYWQoKHMpID0+IHMuYXR0YWNoKTtcblxuICAgICAgICAgICAgbGV0IHBhcmVudEluc3RhbmNlUmVmID0gdGhpcy5fX25ndF9fPy5wYXJlbnRSZWY7XG5cbiAgICAgICAgICAgIC8vIGlmIG5vIHBhcmVudEluc3RhbmNlLCB0cnkgcmUtcnVuIHRoZSBmYWN0b3J5IGR1ZSB0byBsYXRlIGluaXRcbiAgICAgICAgICAgIGlmICghcGFyZW50SW5zdGFuY2VSZWYgfHwgIXBhcmVudEluc3RhbmNlUmVmLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgLy8gcmV0dXJuIGVhcmx5IGlmIGZhaWxlZCB0byByZXRyaWV2ZVxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5wYXJlbnQ/LnZhbHVlKSByZXR1cm47XG5cbiAgICAgICAgICAgICAgICAvLyByZWFzc2lnbiBvbiBpbnN0YW5jZSBpbnRlcm5hbCBzdGF0ZVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9fbmd0X18pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fX25ndF9fLnBhcmVudFJlZiA9IHRoaXMucGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwYXJlbnRJbnN0YW5jZVJlZiA9IHRoaXMucGFyZW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGF0dGFjaCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF0dGFjaENsZWFuVXAgPSBhdHRhY2gocGFyZW50SW5zdGFuY2VSZWYsIHRoaXMuaW5zdGFuY2VSZWYsIHRoaXMuc3RvcmUucmVhZCk7XG4gICAgICAgICAgICAgICAgaWYgKGF0dGFjaENsZWFuVXApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fX25ndF9fLmF0dGFjaCA9IGF0dGFjaENsZWFuVXA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0eVRvQXR0YWNoID0gWy4uLmF0dGFjaF07XG5cbiAgICAgICAgICAgICAgICAvLyBpZiBwcm9wZXJ0eVRvQXR0YWNoIGlzIGVtcHR5XG4gICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5VG9BdHRhY2gubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgbWlnaHQgYmUgdGhlIGNhc2Ugd2hlcmUgd2UgYXJlIGF0dGFjaGluZyBhbiBvYmplY3QzRCB0byB0aGUgcGFyZW50IG9iamVjdDNEXG4gICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzLm9iamVjdDNkKHRoaXMuaW5zdGFuY2VWYWx1ZSkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzLm9iamVjdDNkKHRoaXMucHJveHlJbnN0YW5jZSkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzLm9iamVjdDNkKHRoaXMucGFyZW50Py52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcmVudD8udmFsdWUuYWRkKHRoaXMucHJveHlJbnN0YW5jZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBhcnJheSBtYXRlcmlhbCBoYW5kbGluZ1xuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVRvQXR0YWNoWzBdID09PSAnbWF0ZXJpYWwnICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVRvQXR0YWNoWzFdICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YgTnVtYmVyKHByb3BlcnR5VG9BdHRhY2hbMV0pID09PSAnbnVtYmVyJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgaXMubWF0ZXJpYWwodGhpcy5pbnN0YW5jZVZhbHVlKVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShwYXJlbnRJbnN0YW5jZVJlZi52YWx1ZS5tYXRlcmlhbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJbnN0YW5jZVJlZi52YWx1ZS5tYXRlcmlhbCA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gcmV0cmlldmUgdGhlIGN1cnJlbnQgdmFsdWUgb24gdGhlIHBhcmVudEluc3RhbmNlLCBzbyB3ZSBjYW4gcmVzZXQgaXQgbGF0ZXJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX19uZ3RfXykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fX25ndF9fLmF0dGFjaFZhbHVlID0gcHJvcGVydHlUb0F0dGFjaC5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlLCBwcm9wZXJ0eSkgPT4gdmFsdWVbcHJvcGVydHldLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudEluc3RhbmNlUmVmLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gYXR0YWNoIHRoZSBpbnN0YW5jZSB2YWx1ZSBvbiB0aGUgcGFyZW50XG4gICAgICAgICAgICAgICAgICAgIG11dGF0ZShwYXJlbnRJbnN0YW5jZVJlZi52YWx1ZSwgdGhpcy5wcm94eUluc3RhbmNlLCBwcm9wZXJ0eVRvQXR0YWNoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyB2YWxpZGF0ZSBvbiB0aGUgaW5zdGFuY2VcbiAgICAgICAgICAgICAgICBpbnZhbGlkYXRlSW5zdGFuY2UodGhpcy5pbnN0YW5jZVZhbHVlKTtcblxuICAgICAgICAgICAgICAgIC8vIHZhbGlkYXRlIG9uIHRoZSBwYXJlbnRcbiAgICAgICAgICAgICAgICBpZiAoZ2V0SW5zdGFuY2VMb2NhbFN0YXRlKHBhcmVudEluc3RhbmNlUmVmLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBpbnZhbGlkYXRlSW5zdGFuY2UocGFyZW50SW5zdGFuY2VSZWYudmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIHNhdmUgdGhlIGF0dGFjaFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9fbmd0X18pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fX25ndF9fLmF0dGFjaCA9IHByb3BlcnR5VG9BdHRhY2g7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMud3JpdGUoeyBhdHRhY2g6IHByb3BlcnR5VG9BdHRhY2ggfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgKTtcblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKSB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy53cml0ZSh7XG4gICAgICAgICAgICBpbnN0YW5jZVJlZjogbmV3IE5ndFJlZihudWxsKSxcbiAgICAgICAgICAgIGF0dGFjaDogW10sXG4gICAgICAgICAgICBub0F0dGFjaDogZmFsc2UsXG4gICAgICAgICAgICBza2lwV3JhcHBlcjogZmFsc2UsXG4gICAgICAgICAgICBza2lwSW5pdDogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5vblJlYWR5KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlUmVhZHkodGhpcy5pbnN0YW5jZVJlZi5waXBlKGZpbHRlcigoaW5zdGFuY2UpID0+ICEhaW5zdGFuY2UpKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGluc3RhbmNlUmVmKCk6IE5ndFJlZjxUSW5zdGFuY2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZCgocykgPT4gcy5pbnN0YW5jZVJlZik7XG4gICAgfVxuXG4gICAgZ2V0IGluc3RhbmNlVmFsdWUoKTogVEluc3RhbmNlIHtcbiAgICAgICAgaWYgKCF0aGlzLmluc3RhbmNlUmVmLnZhbHVlKSByZXR1cm4gdGhpcy5pbnN0YW5jZVJlZi52YWx1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzUmF3ID8gKHRoaXMuaW5zdGFuY2VSZWYudmFsdWU/LnZhbHVlT2YoKSBhcyBUSW5zdGFuY2UpIDogdGhpcy5pbnN0YW5jZVJlZi52YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgcHJveHlJbnN0YW5jZSgpOiBUSW5zdGFuY2Uge1xuICAgICAgICByZXR1cm4gKHRoaXMuaW5zdGFuY2VWYWx1ZSBhcyBhbnkpPy5bTkdUX1BST1hZX0lOU1RBTkNFXTtcbiAgICB9XG5cbiAgICBnZXQgX19uZ3RfXygpOiBOZ3RJbnN0YW5jZUxvY2FsU3RhdGUge1xuICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2VMb2NhbFN0YXRlKFxuICAgICAgICAgICAgdGhpcy5faXNSYXcgPyB0aGlzLmluc3RhbmNlUmVmLnZhbHVlIDogdGhpcy5pbnN0YW5jZVZhbHVlXG4gICAgICAgICkgYXMgTmd0SW5zdGFuY2VMb2NhbFN0YXRlO1xuICAgIH1cblxuICAgIGdldCBwYXJlbnQoKTogTmd0UmVmIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50UmVmPy4oKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlVmFsdWUpIHtcbiAgICAgICAgICAgIGlmIChpcy5vYmplY3QzZCh0aGlzLmluc3RhbmNlVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50SW5zdGFuY2UgPSB0aGlzLnBhcmVudDtcbiAgICAgICAgICAgICAgICBpZiAocGFyZW50SW5zdGFuY2UgJiYgaXMub2JqZWN0M2QocGFyZW50SW5zdGFuY2UudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZUludGVyYWN0aXZpdHkodGhpcy5fX25ndF9fLnN0YXRlRmFjdG9yeS5iaW5kKHRoaXMuX19uZ3RfXyksIHRoaXMuaW5zdGFuY2VWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHBhcmVudEluc3RhbmNlLnZhbHVlLnJlbW92ZSh0aGlzLmluc3RhbmNlVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBpbnZhbGlkYXRlSW5zdGFuY2UocGFyZW50SW5zdGFuY2UudmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmluc3RhbmNlVmFsdWUuY2xlYXIgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlVmFsdWUuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9fbmd0X18pIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gbm9uLXNjZW5lIG9iamVjdHNcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNBdHRhY2ggPSB0aGlzLl9fbmd0X18uYXR0YWNoO1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNBdHRhY2ggIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBwcmV2aW91c0F0dGFjaCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzQXR0YWNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzQXR0YWNoVmFsdWUgPSB0aGlzLl9fbmd0X18uYXR0YWNoVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX19uZ3RfXy5wYXJlbnRSZWYgJiYgdGhpcy5fX25ndF9fLnBhcmVudFJlZi52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRhdGUodGhpcy5fX25ndF9fLnBhcmVudFJlZi52YWx1ZSwgcHJldmlvdXNBdHRhY2hWYWx1ZSwgcHJldmlvdXNBdHRhY2gpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX19uZ3RfXy5wYXJlbnRSZWYgJiYgdGhpcy5fX25ndF9fLnBhcmVudFJlZi52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludmFsaWRhdGVJbnN0YW5jZSh0aGlzLl9fbmd0X18ucGFyZW50UmVmLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZGlzcG9zZSA9ICh0aGlzLmluc3RhbmNlVmFsdWUgYXMgTmd0QW55UmVjb3JkKVsnZGlzcG9zZSddO1xuICAgICAgICAgICAgaWYgKGRpc3Bvc2UgJiYgdHlwZW9mIGRpc3Bvc2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBkaXNwb3NlLmFwcGx5KHRoaXMuaW5zdGFuY2VWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLndyaXRlKHsgYXR0YWNoOiBbXSB9KTtcbiAgICAgICAgdGhpcy5pbnN0YW5jZVJlZi5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXZlbnROYW1lVG9IYW5kbGVyKFxuICAgICAgICBjb250cm9sbGVyRXZlbnQ6IEV2ZW50RW1pdHRlcjxOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4+IHwgRXZlbnRFbWl0dGVyPE5ndFRocmVlRXZlbnQ8V2hlZWxFdmVudD4+XG4gICAgKSB7XG4gICAgICAgIHJldHVybiAoZXZlbnQ6IFBhcmFtZXRlcnM8RXhjbHVkZTxOZ3RFdmVudEhhbmRsZXJzW3R5cGVvZiBzdXBwb3J0ZWRFdmVudHNbbnVtYmVyXV0sIHVuZGVmaW5lZD4+WzBdKSA9PiB7XG4gICAgICAgICAgICAvLyBnbyBiYWNrIGludG8gQW5ndWxhciBab25lIHNvIHRoYXQgc3RhdGUgdXBkYXRlcyBvbiB0aGVzZSBldmVudHMgdHJpZ2dlciBDRFxuICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlckV2ZW50LmVtaXQoZXZlbnQgYXMgTmd0VGhyZWVFdmVudDxhbnk+KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IE5HVF9JTlNUQU5DRV9JTlBVVFMgPSBbXG4gICAgJ3JlZicsXG4gICAgJ2F0dGFjaCcsXG4gICAgJ3NraXBXcmFwcGVyJyxcbiAgICAnc2tpcEluaXQnLFxuICAgICdub0F0dGFjaCcsXG4gICAgJ2JlZm9yZVJlbmRlcicsXG4gICAgJ3ByaW9yaXR5JyxcbiAgICAndXBkYXRlQ2FsbGJhY2snLFxuICAgICdyZWFkeUNhbGxiYWNrJyxcbl07XG5cbmV4cG9ydCBjb25zdCBOR1RfSU5TVEFOQ0VfT1VUUFVUUyA9IFsuLi5zdXBwb3J0ZWRFdmVudHNdO1xuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class NgtMathPipe {
|
|
4
|
+
transform(value, keyOfMath) {
|
|
5
|
+
const params = Array.isArray(value) ? value : [value];
|
|
6
|
+
return Math[keyOfMath](...params);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
NgtMathPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgtMathPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
10
|
+
NgtMathPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.0.0", ngImport: i0, type: NgtMathPipe, isStandalone: true, name: "math" });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgtMathPipe, decorators: [{
|
|
12
|
+
type: Pipe,
|
|
13
|
+
args: [{ name: 'math', standalone: true }]
|
|
14
|
+
}] });
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItdGhyZWUvc3JjL2xpYi9waXBlcy9tYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUdwRCxNQUFNLE9BQU8sV0FBVztJQUNwQixTQUFTLENBQ0wsS0FBd0IsRUFDeEIsU0FBOEc7UUFFOUcsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RELE9BQVEsSUFBSSxDQUFDLFNBQVMsQ0FBOEMsQ0FBQyxHQUFHLE1BQU0sQ0FFN0UsQ0FBQztJQUNOLENBQUM7O3dHQVRRLFdBQVc7c0dBQVgsV0FBVzsyRkFBWCxXQUFXO2tCQUR2QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7IG5hbWU6ICdtYXRoJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIE5ndE1hdGhQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKFxuICAgICAgICB2YWx1ZTogbnVtYmVyIHwgbnVtYmVyW10sXG4gICAgICAgIGtleU9mTWF0aDoga2V5b2YgT21pdDxNYXRoLCAnUEknIHwgJ0UnIHwgJ0xOMicgfCAnTE9HMkUnIHwgJ0xOMTAnIHwgJ0xPRzEwRScgfCAnU1FSVDFfMicgfCAnU1FSVDInIHwgJ3JhbmRvbSc+XG4gICAgKTogUmV0dXJuVHlwZTxFeHRyYWN0PE1hdGhbdHlwZW9mIGtleU9mTWF0aF0sICdzdHJpbmcnPj4ge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgICAgICAgcmV0dXJuIChNYXRoW2tleU9mTWF0aF0gYXMgdW5rbm93biBhcyAoLi4uYXJnczogbnVtYmVyW10pID0+IG51bWJlcikoLi4ucGFyYW1zKSBhcyBSZXR1cm5UeXBlPFxuICAgICAgICAgICAgRXh0cmFjdDxNYXRoW3R5cGVvZiBrZXlPZk1hdGhdLCAnc3RyaW5nJz5cbiAgICAgICAgPjtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class NgtPiPipe {
|
|
4
|
+
transform(value) {
|
|
5
|
+
return value * Math.PI;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
NgtPiPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgtPiPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
9
|
+
NgtPiPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.0.0", ngImport: i0, type: NgtPiPipe, isStandalone: true, name: "pi" });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgtPiPipe, decorators: [{
|
|
11
|
+
type: Pipe,
|
|
12
|
+
args: [{ name: 'pi', standalone: true }]
|
|
13
|
+
}] });
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXRocmVlL3NyYy9saWIvcGlwZXMvcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBR3BELE1BQU0sT0FBTyxTQUFTO0lBQ2xCLFNBQVMsQ0FBQyxLQUFhO1FBQ25CLE9BQU8sS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7c0dBSFEsU0FBUztvR0FBVCxTQUFTOzJGQUFULFNBQVM7a0JBRHJCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHsgbmFtZTogJ3BpJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIE5ndFBpUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybSh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlICogTWF0aC5QSTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class NgtRadianPipe {
|
|
4
|
+
transform(degree) {
|
|
5
|
+
return (degree * Math.PI) / 180;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
NgtRadianPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgtRadianPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
9
|
+
NgtRadianPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.0.0", ngImport: i0, type: NgtRadianPipe, isStandalone: true, name: "radian" });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgtRadianPipe, decorators: [{
|
|
11
|
+
type: Pipe,
|
|
12
|
+
args: [{ name: 'radian', standalone: true }]
|
|
13
|
+
}] });
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaWFuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci10aHJlZS9zcmMvbGliL3BpcGVzL3JhZGlhbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFHcEQsTUFBTSxPQUFPLGFBQWE7SUFDdEIsU0FBUyxDQUFDLE1BQWM7UUFDcEIsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ3BDLENBQUM7OzBHQUhRLGFBQWE7d0dBQWIsYUFBYTsyRkFBYixhQUFhO2tCQUR6QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7IG5hbWU6ICdyYWRpYW4nLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTmd0UmFkaWFuUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShkZWdyZWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoZGVncmVlICogTWF0aC5QSSkgLyAxODA7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as THREE from 'three';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class NgtSidePipe {
|
|
5
|
+
transform(side) {
|
|
6
|
+
switch (side) {
|
|
7
|
+
case 'front':
|
|
8
|
+
return THREE.FrontSide;
|
|
9
|
+
case 'back':
|
|
10
|
+
return THREE.BackSide;
|
|
11
|
+
case 'double':
|
|
12
|
+
return THREE.DoubleSide;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
NgtSidePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgtSidePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
17
|
+
NgtSidePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.0.0", ngImport: i0, type: NgtSidePipe, isStandalone: true, name: "side" });
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgtSidePipe, decorators: [{
|
|
19
|
+
type: Pipe,
|
|
20
|
+
args: [{ name: 'side', standalone: true }]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItdGhyZWUvc3JjL2xpYi9waXBlcy9zaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDOztBQUcvQixNQUFNLE9BQU8sV0FBVztJQUNwQixTQUFTLENBQUMsSUFBaUM7UUFDdkMsUUFBUSxJQUFJLEVBQUU7WUFDVixLQUFLLE9BQU87Z0JBQ1IsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQzNCLEtBQUssTUFBTTtnQkFDUCxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDMUIsS0FBSyxRQUFRO2dCQUNULE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQztTQUMvQjtJQUNMLENBQUM7O3dHQVZRLFdBQVc7c0dBQVgsV0FBVzsyRkFBWCxXQUFXO2tCQUR2QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuXG5AUGlwZSh7IG5hbWU6ICdzaWRlJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIE5ndFNpZGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKHNpZGU6ICdmcm9udCcgfCAnYmFjaycgfCAnZG91YmxlJyk6IFRIUkVFLlNpZGUge1xuICAgICAgICBzd2l0Y2ggKHNpZGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2Zyb250JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gVEhSRUUuRnJvbnRTaWRlO1xuICAgICAgICAgICAgY2FzZSAnYmFjayc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFRIUkVFLkJhY2tTaWRlO1xuICAgICAgICAgICAgY2FzZSAnZG91YmxlJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gVEhSRUUuRG91YmxlU2lkZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// GENERATED - AngularThree v1.0.0
|
|
2
2
|
import * as THREE from 'three';
|
|
3
3
|
import { Component } from '@angular/core';
|
|
4
|
-
import { injectArgs,
|
|
4
|
+
import { injectArgs, NgtInstance, provideInstanceRef, proxify, } from 'angular-three';
|
|
5
|
+
import { NGT_INSTANCE_INPUTS, NGT_INSTANCE_OUTPUTS, NGT_OBJECT3D_INPUTS } from '../common';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "angular-three";
|
|
7
8
|
export class NgtAmbientLight extends THREE.AmbientLight {
|
|
@@ -11,7 +12,7 @@ export class NgtAmbientLight extends THREE.AmbientLight {
|
|
|
11
12
|
}
|
|
12
13
|
}
|
|
13
14
|
NgtAmbientLight.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgtAmbientLight, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
-
NgtAmbientLight.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: NgtAmbientLight, isStandalone: true, selector: "ngt-ambient-light", inputs: { color: "color", intensity: "intensity", hex: "hex", shadow: "shadow",
|
|
15
|
+
NgtAmbientLight.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: NgtAmbientLight, isStandalone: true, selector: "ngt-ambient-light", inputs: { color: "color", intensity: "intensity", hex: "hex", shadow: "shadow", name: "name", position: "position", rotation: "rotation", quaternion: "quaternion", scale: "scale", modelViewMatrix: "modelViewMatrix", normalMatrix: "normalMatrix", matrix: "matrix", matrixWorld: "matrixWorld", matrixAutoUpdate: "matrixAutoUpdate", matrixWorldAutoUpdate: "matrixWorldAutoUpdate", matrixWorldNeedsUpdate: "matrixWorldNeedsUpdate", layers: "layers", visible: "visible", castShadow: "castShadow", receiveShadow: "receiveShadow", frustumCulled: "frustumCulled", renderOrder: "renderOrder", animations: "animations", userData: "userData", customDepthMaterial: "customDepthMaterial", customDistanceMaterial: "customDistanceMaterial", onBeforeRender: "onBeforeRender", onAfterRender: "onAfterRender" }, providers: [provideInstanceRef(NgtAmbientLight)], usesInheritance: true, hostDirectives: [{ directive: i1.NgtInstance, inputs: ["ref", "ref", "attach", "attach", "skipWrapper", "skipWrapper", "skipInit", "skipInit", "noAttach", "noAttach", "beforeRender", "beforeRender", "priority", "priority", "updateCallback", "updateCallback", "readyCallback", "readyCallback"], outputs: ["click", "click", "contextmenu", "contextmenu", "dblclick", "dblclick", "pointerup", "pointerup", "pointerdown", "pointerdown", "pointerover", "pointerover", "pointerout", "pointerout", "pointerenter", "pointerenter", "pointerleave", "pointerleave", "pointermove", "pointermove", "pointermissed", "pointermissed", "pointercancel", "pointercancel", "wheel", "wheel"] }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
|
|
15
16
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgtAmbientLight, decorators: [{
|
|
16
17
|
type: Component,
|
|
17
18
|
args: [{
|
|
@@ -20,49 +21,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
|
|
|
20
21
|
template: '<ng-content></ng-content>',
|
|
21
22
|
hostDirectives: [{ directive: NgtInstance, inputs: NGT_INSTANCE_INPUTS, outputs: NGT_INSTANCE_OUTPUTS }],
|
|
22
23
|
providers: [provideInstanceRef(NgtAmbientLight)],
|
|
23
|
-
inputs: [...getInputs()],
|
|
24
|
+
inputs: [...getInputs(), ...NGT_OBJECT3D_INPUTS],
|
|
24
25
|
}]
|
|
25
26
|
}], ctorParameters: function () { return []; } });
|
|
26
27
|
function getInputs() {
|
|
27
|
-
return [
|
|
28
|
-
'color',
|
|
29
|
-
'intensity',
|
|
30
|
-
'hex',
|
|
31
|
-
'shadow',
|
|
32
|
-
'shadowCameraFov',
|
|
33
|
-
'shadowCameraLeft',
|
|
34
|
-
'shadowCameraRight',
|
|
35
|
-
'shadowCameraTop',
|
|
36
|
-
'shadowCameraBottom',
|
|
37
|
-
'shadowCameraNear',
|
|
38
|
-
'shadowCameraFar',
|
|
39
|
-
'shadowBias',
|
|
40
|
-
'shadowMapWidth',
|
|
41
|
-
'shadowMapHeight',
|
|
42
|
-
'name',
|
|
43
|
-
'position',
|
|
44
|
-
'rotation',
|
|
45
|
-
'quaternion',
|
|
46
|
-
'scale',
|
|
47
|
-
'modelViewMatrix',
|
|
48
|
-
'normalMatrix',
|
|
49
|
-
'matrix',
|
|
50
|
-
'matrixWorld',
|
|
51
|
-
'matrixAutoUpdate',
|
|
52
|
-
'matrixWorldAutoUpdate',
|
|
53
|
-
'matrixWorldNeedsUpdate',
|
|
54
|
-
'layers',
|
|
55
|
-
'visible',
|
|
56
|
-
'castShadow',
|
|
57
|
-
'receiveShadow',
|
|
58
|
-
'frustumCulled',
|
|
59
|
-
'renderOrder',
|
|
60
|
-
'animations',
|
|
61
|
-
'userData',
|
|
62
|
-
'customDepthMaterial',
|
|
63
|
-
'customDistanceMaterial',
|
|
64
|
-
'onBeforeRender',
|
|
65
|
-
'onAfterRender',
|
|
66
|
-
];
|
|
28
|
+
return ['color', 'intensity', 'hex', 'shadow'];
|
|
67
29
|
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1iaWVudC1saWdodC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItdGhyZWUvbGlnaHRzL3NyYy9saWIvYW1iaWVudC1saWdodC9hbWJpZW50LWxpZ2h0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtDQUFrQztBQUNsQyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFDSCxVQUFVLEVBQ1YsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixPQUFPLEdBT1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFVM0YsTUFBTSxPQUFPLGVBQWdCLFNBQVEsS0FBSyxDQUFDLFlBQVk7SUFDbkQ7UUFDSSxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBNEIsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVFLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7OzRHQUpRLGVBQWU7Z0dBQWYsZUFBZSwwMUJBSGIsQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxtdEJBRnRDLDJCQUEyQjsyRkFLNUIsZUFBZTtrQkFSM0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQztvQkFDeEcsU0FBUyxFQUFFLENBQUMsa0JBQWtCLGlCQUFpQixDQUFDO29CQUNoRCxNQUFNLEVBQUUsQ0FBQyxHQUFHLFNBQVMsRUFBRSxFQUFFLEdBQUcsbUJBQW1CLENBQUM7aUJBQ25EOztBQXVERCxTQUFTLFNBQVM7SUFDZCxPQUFPLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCAtIEFuZ3VsYXJUaHJlZSB2MS4wLjBcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBpbmplY3RBcmdzLFxuICAgIE5ndEluc3RhbmNlLFxuICAgIHByb3ZpZGVJbnN0YW5jZVJlZixcbiAgICBwcm94aWZ5LFxuICAgIE5ndFZlY3RvcjMsXG4gICAgTmd0RXVsZXIsXG4gICAgTmd0UXVhdGVybmlvbixcbiAgICBOZ3RNYXRyaXg0LFxuICAgIE5ndExheWVycyxcbiAgICBOZ3RPYnNlcnZhYmxlSW5wdXQsXG59IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgTkdUX0lOU1RBTkNFX0lOUFVUUywgTkdUX0lOU1RBTkNFX09VVFBVVFMsIE5HVF9PQkpFQ1QzRF9JTlBVVFMgfSBmcm9tICcuLi9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndC1hbWJpZW50LWxpZ2h0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogTmd0SW5zdGFuY2UsIGlucHV0czogTkdUX0lOU1RBTkNFX0lOUFVUUywgb3V0cHV0czogTkdUX0lOU1RBTkNFX09VVFBVVFMgfV0sXG4gICAgcHJvdmlkZXJzOiBbcHJvdmlkZUluc3RhbmNlUmVmKE5ndEFtYmllbnRMaWdodCldLFxuICAgIGlucHV0czogWy4uLmdldElucHV0cygpLCAuLi5OR1RfT0JKRUNUM0RfSU5QVVRTXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0QW1iaWVudExpZ2h0IGV4dGVuZHMgVEhSRUUuQW1iaWVudExpZ2h0IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uKGluamVjdEFyZ3M8dHlwZW9mIFRIUkVFLkFtYmllbnRMaWdodD4oeyBvcHRpb25hbDogdHJ1ZSB9KSB8fCBbXSkpO1xuICAgICAgICByZXR1cm4gcHJveGlmeSh0aGlzKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfY29sb3I6IE5ndE9ic2VydmFibGVJbnB1dDxUSFJFRS5Db2xvclJlcHJlc2VudGF0aW9uPiB8IHVuZGVmaW5lZDtcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfaW50ZW5zaXR5OiBOZ3RPYnNlcnZhYmxlSW5wdXQ8bnVtYmVyPiB8IHVuZGVmaW5lZDtcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfaGV4OiBOZ3RPYnNlcnZhYmxlSW5wdXQ8bnVtYmVyIHwgc3RyaW5nPiB8IHVuZGVmaW5lZDtcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfc2hhZG93OiBOZ3RPYnNlcnZhYmxlSW5wdXQ8VEhSRUUuTGlnaHRTaGFkb3c+O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9uYW1lOiBOZ3RPYnNlcnZhYmxlSW5wdXQ8c3RyaW5nPjtcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfcG9zaXRpb246IE5ndE9ic2VydmFibGVJbnB1dDxOZ3RWZWN0b3IzPjtcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfcm90YXRpb246IE5ndE9ic2VydmFibGVJbnB1dDxOZ3RFdWxlcj47XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3F1YXRlcm5pb246IE5ndE9ic2VydmFibGVJbnB1dDxOZ3RRdWF0ZXJuaW9uPjtcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfc2NhbGU6IE5ndE9ic2VydmFibGVJbnB1dDxOZ3RWZWN0b3IzPjtcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbW9kZWxWaWV3TWF0cml4OiBOZ3RPYnNlcnZhYmxlSW5wdXQ8Tmd0TWF0cml4ND47XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX25vcm1hbE1hdHJpeDogTmd0T2JzZXJ2YWJsZUlucHV0PFRIUkVFLk1hdHJpeDM+O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9tYXRyaXg6IE5ndE9ic2VydmFibGVJbnB1dDxOZ3RNYXRyaXg0PjtcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbWF0cml4V29ybGQ6IE5ndE9ic2VydmFibGVJbnB1dDxOZ3RNYXRyaXg0PjtcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbWF0cml4QXV0b1VwZGF0ZTogTmd0T2JzZXJ2YWJsZUlucHV0PGJvb2xlYW4+O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9tYXRyaXhXb3JsZEF1dG9VcGRhdGU6IE5ndE9ic2VydmFibGVJbnB1dDxib29sZWFuPjtcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbWF0cml4V29ybGROZWVkc1VwZGF0ZTogTmd0T2JzZXJ2YWJsZUlucHV0PGJvb2xlYW4+O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9sYXllcnM6IE5ndE9ic2VydmFibGVJbnB1dDxOZ3RMYXllcnM+O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV92aXNpYmxlOiBOZ3RPYnNlcnZhYmxlSW5wdXQ8Ym9vbGVhbj47XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Nhc3RTaGFkb3c6IE5ndE9ic2VydmFibGVJbnB1dDxib29sZWFuPjtcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfcmVjZWl2ZVNoYWRvdzogTmd0T2JzZXJ2YWJsZUlucHV0PGJvb2xlYW4+O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9mcnVzdHVtQ3VsbGVkOiBOZ3RPYnNlcnZhYmxlSW5wdXQ8Ym9vbGVhbj47XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3JlbmRlck9yZGVyOiBOZ3RPYnNlcnZhYmxlSW5wdXQ8bnVtYmVyPjtcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfYW5pbWF0aW9uczogTmd0T2JzZXJ2YWJsZUlucHV0PFRIUkVFLkFuaW1hdGlvbkNsaXBbXT47XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3VzZXJEYXRhOiBOZ3RPYnNlcnZhYmxlSW5wdXQ8eyBba2V5OiBzdHJpbmddOiBhbnkgfT47XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2N1c3RvbURlcHRoTWF0ZXJpYWw6IE5ndE9ic2VydmFibGVJbnB1dDxUSFJFRS5NYXRlcmlhbD47XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2N1c3RvbURpc3RhbmNlTWF0ZXJpYWw6IE5ndE9ic2VydmFibGVJbnB1dDxUSFJFRS5NYXRlcmlhbD47XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX29uQmVmb3JlUmVuZGVyOiBOZ3RPYnNlcnZhYmxlSW5wdXQ8XG4gICAgICAgIChcbiAgICAgICAgICAgIHJlbmRlcmVyOiBUSFJFRS5XZWJHTFJlbmRlcmVyLFxuICAgICAgICAgICAgc2NlbmU6IFRIUkVFLlNjZW5lLFxuICAgICAgICAgICAgY2FtZXJhOiBUSFJFRS5DYW1lcmEsXG4gICAgICAgICAgICBnZW9tZXRyeTogVEhSRUUuQnVmZmVyR2VvbWV0cnksXG4gICAgICAgICAgICBtYXRlcmlhbDogVEhSRUUuTWF0ZXJpYWwsXG4gICAgICAgICAgICBncm91cDogVEhSRUUuR3JvdXBcbiAgICAgICAgKSA9PiB2b2lkXG4gICAgPjtcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfb25BZnRlclJlbmRlcjogTmd0T2JzZXJ2YWJsZUlucHV0PFxuICAgICAgICAoXG4gICAgICAgICAgICByZW5kZXJlcjogVEhSRUUuV2ViR0xSZW5kZXJlcixcbiAgICAgICAgICAgIHNjZW5lOiBUSFJFRS5TY2VuZSxcbiAgICAgICAgICAgIGNhbWVyYTogVEhSRUUuQ2FtZXJhLFxuICAgICAgICAgICAgZ2VvbWV0cnk6IFRIUkVFLkJ1ZmZlckdlb21ldHJ5LFxuICAgICAgICAgICAgbWF0ZXJpYWw6IFRIUkVFLk1hdGVyaWFsLFxuICAgICAgICAgICAgZ3JvdXA6IFRIUkVFLkdyb3VwXG4gICAgICAgICkgPT4gdm9pZFxuICAgID47XG59XG5cbmZ1bmN0aW9uIGdldElucHV0cygpIHtcbiAgICByZXR1cm4gWydjb2xvcicsICdpbnRlbnNpdHknLCAnaGV4JywgJ3NoYWRvdyddO1xufVxuIl19
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// GENERATED - AngularThree v1.0.0
|
|
2
2
|
import * as THREE from 'three';
|
|
3
3
|
import { Component } from '@angular/core';
|
|
4
|
-
import { injectArgs,
|
|
4
|
+
import { injectArgs, NgtInstance, provideInstanceRef, proxify, } from 'angular-three';
|
|
5
|
+
import { NGT_INSTANCE_INPUTS, NGT_INSTANCE_OUTPUTS, NGT_OBJECT3D_INPUTS } from '../common';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "angular-three";
|
|
7
8
|
export class NgtAmbientLightProbe extends THREE.AmbientLightProbe {
|
|
@@ -11,7 +12,7 @@ export class NgtAmbientLightProbe extends THREE.AmbientLightProbe {
|
|
|
11
12
|
}
|
|
12
13
|
}
|
|
13
14
|
NgtAmbientLightProbe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgtAmbientLightProbe, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
-
NgtAmbientLightProbe.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: NgtAmbientLightProbe, isStandalone: true, selector: "ngt-ambient-light-probe", inputs: { color: "color", intensity: "intensity", sh: "sh", hex: "hex", shadow: "shadow",
|
|
15
|
+
NgtAmbientLightProbe.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: NgtAmbientLightProbe, isStandalone: true, selector: "ngt-ambient-light-probe", inputs: { color: "color", intensity: "intensity", sh: "sh", hex: "hex", shadow: "shadow", name: "name", position: "position", rotation: "rotation", quaternion: "quaternion", scale: "scale", modelViewMatrix: "modelViewMatrix", normalMatrix: "normalMatrix", matrix: "matrix", matrixWorld: "matrixWorld", matrixAutoUpdate: "matrixAutoUpdate", matrixWorldAutoUpdate: "matrixWorldAutoUpdate", matrixWorldNeedsUpdate: "matrixWorldNeedsUpdate", layers: "layers", visible: "visible", castShadow: "castShadow", receiveShadow: "receiveShadow", frustumCulled: "frustumCulled", renderOrder: "renderOrder", animations: "animations", userData: "userData", customDepthMaterial: "customDepthMaterial", customDistanceMaterial: "customDistanceMaterial", onBeforeRender: "onBeforeRender", onAfterRender: "onAfterRender" }, providers: [provideInstanceRef(NgtAmbientLightProbe)], usesInheritance: true, hostDirectives: [{ directive: i1.NgtInstance, inputs: ["ref", "ref", "attach", "attach", "skipWrapper", "skipWrapper", "skipInit", "skipInit", "noAttach", "noAttach", "beforeRender", "beforeRender", "priority", "priority", "updateCallback", "updateCallback", "readyCallback", "readyCallback"], outputs: ["click", "click", "contextmenu", "contextmenu", "dblclick", "dblclick", "pointerup", "pointerup", "pointerdown", "pointerdown", "pointerover", "pointerover", "pointerout", "pointerout", "pointerenter", "pointerenter", "pointerleave", "pointerleave", "pointermove", "pointermove", "pointermissed", "pointermissed", "pointercancel", "pointercancel", "wheel", "wheel"] }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
|
|
15
16
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgtAmbientLightProbe, decorators: [{
|
|
16
17
|
type: Component,
|
|
17
18
|
args: [{
|
|
@@ -20,50 +21,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
|
|
|
20
21
|
template: '<ng-content></ng-content>',
|
|
21
22
|
hostDirectives: [{ directive: NgtInstance, inputs: NGT_INSTANCE_INPUTS, outputs: NGT_INSTANCE_OUTPUTS }],
|
|
22
23
|
providers: [provideInstanceRef(NgtAmbientLightProbe)],
|
|
23
|
-
inputs: [...getInputs()],
|
|
24
|
+
inputs: [...getInputs(), ...NGT_OBJECT3D_INPUTS],
|
|
24
25
|
}]
|
|
25
26
|
}], ctorParameters: function () { return []; } });
|
|
26
27
|
function getInputs() {
|
|
27
|
-
return [
|
|
28
|
-
'color',
|
|
29
|
-
'intensity',
|
|
30
|
-
'sh',
|
|
31
|
-
'hex',
|
|
32
|
-
'shadow',
|
|
33
|
-
'shadowCameraFov',
|
|
34
|
-
'shadowCameraLeft',
|
|
35
|
-
'shadowCameraRight',
|
|
36
|
-
'shadowCameraTop',
|
|
37
|
-
'shadowCameraBottom',
|
|
38
|
-
'shadowCameraNear',
|
|
39
|
-
'shadowCameraFar',
|
|
40
|
-
'shadowBias',
|
|
41
|
-
'shadowMapWidth',
|
|
42
|
-
'shadowMapHeight',
|
|
43
|
-
'name',
|
|
44
|
-
'position',
|
|
45
|
-
'rotation',
|
|
46
|
-
'quaternion',
|
|
47
|
-
'scale',
|
|
48
|
-
'modelViewMatrix',
|
|
49
|
-
'normalMatrix',
|
|
50
|
-
'matrix',
|
|
51
|
-
'matrixWorld',
|
|
52
|
-
'matrixAutoUpdate',
|
|
53
|
-
'matrixWorldAutoUpdate',
|
|
54
|
-
'matrixWorldNeedsUpdate',
|
|
55
|
-
'layers',
|
|
56
|
-
'visible',
|
|
57
|
-
'castShadow',
|
|
58
|
-
'receiveShadow',
|
|
59
|
-
'frustumCulled',
|
|
60
|
-
'renderOrder',
|
|
61
|
-
'animations',
|
|
62
|
-
'userData',
|
|
63
|
-
'customDepthMaterial',
|
|
64
|
-
'customDistanceMaterial',
|
|
65
|
-
'onBeforeRender',
|
|
66
|
-
'onAfterRender',
|
|
67
|
-
];
|
|
28
|
+
return ['color', 'intensity', 'sh', 'hex', 'shadow'];
|
|
68
29
|
}
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1iaWVudC1saWdodC1wcm9iZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItdGhyZWUvbGlnaHRzL3NyYy9saWIvYW1iaWVudC1saWdodC1wcm9iZS9hbWJpZW50LWxpZ2h0LXByb2JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtDQUFrQztBQUNsQyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFDSCxVQUFVLEVBQ1YsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixPQUFPLEdBT1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFVM0YsTUFBTSxPQUFPLG9CQUFxQixTQUFRLEtBQUssQ0FBQyxpQkFBaUI7SUFDN0Q7UUFDSSxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBaUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7O2lIQUpRLG9CQUFvQjtxR0FBcEIsb0JBQW9CLDAyQkFIbEIsQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLG10QkFGM0MsMkJBQTJCOzJGQUs1QixvQkFBb0I7a0JBUmhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLGNBQWMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLENBQUM7b0JBQ3hHLFNBQVMsRUFBRSxDQUFDLGtCQUFrQixzQkFBc0IsQ0FBQztvQkFDckQsTUFBTSxFQUFFLENBQUMsR0FBRyxTQUFTLEVBQUUsRUFBRSxHQUFHLG1CQUFtQixDQUFDO2lCQUNuRDs7QUF3REQsU0FBUyxTQUFTO0lBQ2QsT0FBTyxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztBQUN6RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIC0gQW5ndWxhclRocmVlIHYxLjAuMFxuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIGluamVjdEFyZ3MsXG4gICAgTmd0SW5zdGFuY2UsXG4gICAgcHJvdmlkZUluc3RhbmNlUmVmLFxuICAgIHByb3hpZnksXG4gICAgTmd0VmVjdG9yMyxcbiAgICBOZ3RFdWxlcixcbiAgICBOZ3RRdWF0ZXJuaW9uLFxuICAgIE5ndE1hdHJpeDQsXG4gICAgTmd0TGF5ZXJzLFxuICAgIE5ndE9ic2VydmFibGVJbnB1dCxcbn0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBOR1RfSU5TVEFOQ0VfSU5QVVRTLCBOR1RfSU5TVEFOQ0VfT1VUUFVUUywgTkdUX09CSkVDVDNEX0lOUFVUUyB9IGZyb20gJy4uL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0LWFtYmllbnQtbGlnaHQtcHJvYmUnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgICBob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RJbnN0YW5jZSwgaW5wdXRzOiBOR1RfSU5TVEFOQ0VfSU5QVVRTLCBvdXRwdXRzOiBOR1RfSU5TVEFOQ0VfT1VUUFVUUyB9XSxcbiAgICBwcm92aWRlcnM6IFtwcm92aWRlSW5zdGFuY2VSZWYoTmd0QW1iaWVudExpZ2h0UHJvYmUpXSxcbiAgICBpbnB1dHM6IFsuLi5nZXRJbnB1dHMoKSwgLi4uTkdUX09CSkVDVDNEX0lOUFVUU10sXG59KVxuZXhwb3J0IGNsYXNzIE5ndEFtYmllbnRMaWdodFByb2JlIGV4dGVuZHMgVEhSRUUuQW1iaWVudExpZ2h0UHJvYmUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlciguLi4oaW5qZWN0QXJnczx0eXBlb2YgVEhSRUUuQW1iaWVudExpZ2h0UHJvYmU+KHsgb3B0aW9uYWw6IHRydWUgfSkgfHwgW10pKTtcbiAgICAgICAgcmV0dXJuIHByb3hpZnkodGhpcyk7XG4gICAgfVxuXG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2NvbG9yOiBOZ3RPYnNlcnZhYmxlSW5wdXQ8VEhSRUUuQ29sb3JSZXByZXNlbnRhdGlvbj4gfCB1bmRlZmluZWQ7XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2ludGVuc2l0eTogTmd0T2JzZXJ2YWJsZUlucHV0PG51bWJlcj4gfCB1bmRlZmluZWQ7XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3NoOiBOZ3RPYnNlcnZhYmxlSW5wdXQ8VEhSRUUuU3BoZXJpY2FsSGFybW9uaWNzMz47XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2hleDogTmd0T2JzZXJ2YWJsZUlucHV0PG51bWJlciB8IHN0cmluZz4gfCB1bmRlZmluZWQ7XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3NoYWRvdzogTmd0T2JzZXJ2YWJsZUlucHV0PFRIUkVFLkxpZ2h0U2hhZG93PjtcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbmFtZTogTmd0T2JzZXJ2YWJsZUlucHV0PHN0cmluZz47XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3Bvc2l0aW9uOiBOZ3RPYnNlcnZhYmxlSW5wdXQ8Tmd0VmVjdG9yMz47XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3JvdGF0aW9uOiBOZ3RPYnNlcnZhYmxlSW5wdXQ8Tmd0RXVsZXI+O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9xdWF0ZXJuaW9uOiBOZ3RPYnNlcnZhYmxlSW5wdXQ8Tmd0UXVhdGVybmlvbj47XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3NjYWxlOiBOZ3RPYnNlcnZhYmxlSW5wdXQ8Tmd0VmVjdG9yMz47XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX21vZGVsVmlld01hdHJpeDogTmd0T2JzZXJ2YWJsZUlucHV0PE5ndE1hdHJpeDQ+O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9ub3JtYWxNYXRyaXg6IE5ndE9ic2VydmFibGVJbnB1dDxUSFJFRS5NYXRyaXgzPjtcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbWF0cml4OiBOZ3RPYnNlcnZhYmxlSW5wdXQ8Tmd0TWF0cml4ND47XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX21hdHJpeFdvcmxkOiBOZ3RPYnNlcnZhYmxlSW5wdXQ8Tmd0TWF0cml4ND47XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX21hdHJpeEF1dG9VcGRhdGU6IE5ndE9ic2VydmFibGVJbnB1dDxib29sZWFuPjtcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbWF0cml4V29ybGRBdXRvVXBkYXRlOiBOZ3RPYnNlcnZhYmxlSW5wdXQ8Ym9vbGVhbj47XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX21hdHJpeFdvcmxkTmVlZHNVcGRhdGU6IE5ndE9ic2VydmFibGVJbnB1dDxib29sZWFuPjtcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbGF5ZXJzOiBOZ3RPYnNlcnZhYmxlSW5wdXQ8Tmd0TGF5ZXJzPjtcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfdmlzaWJsZTogTmd0T2JzZXJ2YWJsZUlucHV0PGJvb2xlYW4+O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9jYXN0U2hhZG93OiBOZ3RPYnNlcnZhYmxlSW5wdXQ8Ym9vbGVhbj47XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3JlY2VpdmVTaGFkb3c6IE5ndE9ic2VydmFibGVJbnB1dDxib29sZWFuPjtcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZnJ1c3R1bUN1bGxlZDogTmd0T2JzZXJ2YWJsZUlucHV0PGJvb2xlYW4+O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yZW5kZXJPcmRlcjogTmd0T2JzZXJ2YWJsZUlucHV0PG51bWJlcj47XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2FuaW1hdGlvbnM6IE5ndE9ic2VydmFibGVJbnB1dDxUSFJFRS5BbmltYXRpb25DbGlwW10+O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV91c2VyRGF0YTogTmd0T2JzZXJ2YWJsZUlucHV0PHsgW2tleTogc3RyaW5nXTogYW55IH0+O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9jdXN0b21EZXB0aE1hdGVyaWFsOiBOZ3RPYnNlcnZhYmxlSW5wdXQ8VEhSRUUuTWF0ZXJpYWw+O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9jdXN0b21EaXN0YW5jZU1hdGVyaWFsOiBOZ3RPYnNlcnZhYmxlSW5wdXQ8VEhSRUUuTWF0ZXJpYWw+O1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9vbkJlZm9yZVJlbmRlcjogTmd0T2JzZXJ2YWJsZUlucHV0PFxuICAgICAgICAoXG4gICAgICAgICAgICByZW5kZXJlcjogVEhSRUUuV2ViR0xSZW5kZXJlcixcbiAgICAgICAgICAgIHNjZW5lOiBUSFJFRS5TY2VuZSxcbiAgICAgICAgICAgIGNhbWVyYTogVEhSRUUuQ2FtZXJhLFxuICAgICAgICAgICAgZ2VvbWV0cnk6IFRIUkVFLkJ1ZmZlckdlb21ldHJ5LFxuICAgICAgICAgICAgbWF0ZXJpYWw6IFRIUkVFLk1hdGVyaWFsLFxuICAgICAgICAgICAgZ3JvdXA6IFRIUkVFLkdyb3VwXG4gICAgICAgICkgPT4gdm9pZFxuICAgID47XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX29uQWZ0ZXJSZW5kZXI6IE5ndE9ic2VydmFibGVJbnB1dDxcbiAgICAgICAgKFxuICAgICAgICAgICAgcmVuZGVyZXI6IFRIUkVFLldlYkdMUmVuZGVyZXIsXG4gICAgICAgICAgICBzY2VuZTogVEhSRUUuU2NlbmUsXG4gICAgICAgICAgICBjYW1lcmE6IFRIUkVFLkNhbWVyYSxcbiAgICAgICAgICAgIGdlb21ldHJ5OiBUSFJFRS5CdWZmZXJHZW9tZXRyeSxcbiAgICAgICAgICAgIG1hdGVyaWFsOiBUSFJFRS5NYXRlcmlhbCxcbiAgICAgICAgICAgIGdyb3VwOiBUSFJFRS5Hcm91cFxuICAgICAgICApID0+IHZvaWRcbiAgICA+O1xufVxuXG5mdW5jdGlvbiBnZXRJbnB1dHMoKSB7XG4gICAgcmV0dXJuIFsnY29sb3InLCAnaW50ZW5zaXR5JywgJ3NoJywgJ2hleCcsICdzaGFkb3cnXTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// GENERATED - AngularThree v1.0.0
|
|
2
|
+
export const NGT_INSTANCE_INPUTS = [
|
|
3
|
+
'ref',
|
|
4
|
+
'attach',
|
|
5
|
+
'skipWrapper',
|
|
6
|
+
'skipInit',
|
|
7
|
+
'noAttach',
|
|
8
|
+
'beforeRender',
|
|
9
|
+
'priority',
|
|
10
|
+
'updateCallback',
|
|
11
|
+
'readyCallback',
|
|
12
|
+
];
|
|
13
|
+
export const NGT_INSTANCE_OUTPUTS = [
|
|
14
|
+
'click',
|
|
15
|
+
'contextmenu',
|
|
16
|
+
'dblclick',
|
|
17
|
+
'pointerup',
|
|
18
|
+
'pointerdown',
|
|
19
|
+
'pointerover',
|
|
20
|
+
'pointerout',
|
|
21
|
+
'pointerenter',
|
|
22
|
+
'pointerleave',
|
|
23
|
+
'pointermove',
|
|
24
|
+
'pointermissed',
|
|
25
|
+
'pointercancel',
|
|
26
|
+
'wheel',
|
|
27
|
+
];
|
|
28
|
+
export const NGT_OBJECT3D_INPUTS = [
|
|
29
|
+
'name',
|
|
30
|
+
'position',
|
|
31
|
+
'rotation',
|
|
32
|
+
'quaternion',
|
|
33
|
+
'scale',
|
|
34
|
+
'modelViewMatrix',
|
|
35
|
+
'normalMatrix',
|
|
36
|
+
'matrix',
|
|
37
|
+
'matrixWorld',
|
|
38
|
+
'matrixAutoUpdate',
|
|
39
|
+
'matrixWorldAutoUpdate',
|
|
40
|
+
'matrixWorldNeedsUpdate',
|
|
41
|
+
'layers',
|
|
42
|
+
'visible',
|
|
43
|
+
'castShadow',
|
|
44
|
+
'receiveShadow',
|
|
45
|
+
'frustumCulled',
|
|
46
|
+
'renderOrder',
|
|
47
|
+
'animations',
|
|
48
|
+
'userData',
|
|
49
|
+
'customDepthMaterial',
|
|
50
|
+
'customDistanceMaterial',
|
|
51
|
+
'onBeforeRender',
|
|
52
|
+
'onAfterRender',
|
|
53
|
+
];
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci10aHJlZS9saWdodHMvc3JjL2xpYi9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0NBQWtDO0FBQ2xDLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHO0lBQy9CLEtBQUs7SUFDTCxRQUFRO0lBQ1IsYUFBYTtJQUNiLFVBQVU7SUFDVixVQUFVO0lBQ1YsY0FBYztJQUNkLFVBQVU7SUFDVixnQkFBZ0I7SUFDaEIsZUFBZTtDQUNsQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUc7SUFDaEMsT0FBTztJQUNQLGFBQWE7SUFDYixVQUFVO0lBQ1YsV0FBVztJQUNYLGFBQWE7SUFDYixhQUFhO0lBQ2IsWUFBWTtJQUNaLGNBQWM7SUFDZCxjQUFjO0lBQ2QsYUFBYTtJQUNiLGVBQWU7SUFDZixlQUFlO0lBQ2YsT0FBTztDQUNWLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUMvQixNQUFNO0lBQ04sVUFBVTtJQUNWLFVBQVU7SUFDVixZQUFZO0lBQ1osT0FBTztJQUNQLGlCQUFpQjtJQUNqQixjQUFjO0lBQ2QsUUFBUTtJQUNSLGFBQWE7SUFDYixrQkFBa0I7SUFDbEIsdUJBQXVCO0lBQ3ZCLHdCQUF3QjtJQUN4QixRQUFRO0lBQ1IsU0FBUztJQUNULFlBQVk7SUFDWixlQUFlO0lBQ2YsZUFBZTtJQUNmLGFBQWE7SUFDYixZQUFZO0lBQ1osVUFBVTtJQUNWLHFCQUFxQjtJQUNyQix3QkFBd0I7SUFDeEIsZ0JBQWdCO0lBQ2hCLGVBQWU7Q0FDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCAtIEFuZ3VsYXJUaHJlZSB2MS4wLjBcbmV4cG9ydCBjb25zdCBOR1RfSU5TVEFOQ0VfSU5QVVRTID0gW1xuICAgICdyZWYnLFxuICAgICdhdHRhY2gnLFxuICAgICdza2lwV3JhcHBlcicsXG4gICAgJ3NraXBJbml0JyxcbiAgICAnbm9BdHRhY2gnLFxuICAgICdiZWZvcmVSZW5kZXInLFxuICAgICdwcmlvcml0eScsXG4gICAgJ3VwZGF0ZUNhbGxiYWNrJyxcbiAgICAncmVhZHlDYWxsYmFjaycsXG5dO1xuXG5leHBvcnQgY29uc3QgTkdUX0lOU1RBTkNFX09VVFBVVFMgPSBbXG4gICAgJ2NsaWNrJyxcbiAgICAnY29udGV4dG1lbnUnLFxuICAgICdkYmxjbGljaycsXG4gICAgJ3BvaW50ZXJ1cCcsXG4gICAgJ3BvaW50ZXJkb3duJyxcbiAgICAncG9pbnRlcm92ZXInLFxuICAgICdwb2ludGVyb3V0JyxcbiAgICAncG9pbnRlcmVudGVyJyxcbiAgICAncG9pbnRlcmxlYXZlJyxcbiAgICAncG9pbnRlcm1vdmUnLFxuICAgICdwb2ludGVybWlzc2VkJyxcbiAgICAncG9pbnRlcmNhbmNlbCcsXG4gICAgJ3doZWVsJyxcbl07XG5cbmV4cG9ydCBjb25zdCBOR1RfT0JKRUNUM0RfSU5QVVRTID0gW1xuICAgICduYW1lJyxcbiAgICAncG9zaXRpb24nLFxuICAgICdyb3RhdGlvbicsXG4gICAgJ3F1YXRlcm5pb24nLFxuICAgICdzY2FsZScsXG4gICAgJ21vZGVsVmlld01hdHJpeCcsXG4gICAgJ25vcm1hbE1hdHJpeCcsXG4gICAgJ21hdHJpeCcsXG4gICAgJ21hdHJpeFdvcmxkJyxcbiAgICAnbWF0cml4QXV0b1VwZGF0ZScsXG4gICAgJ21hdHJpeFdvcmxkQXV0b1VwZGF0ZScsXG4gICAgJ21hdHJpeFdvcmxkTmVlZHNVcGRhdGUnLFxuICAgICdsYXllcnMnLFxuICAgICd2aXNpYmxlJyxcbiAgICAnY2FzdFNoYWRvdycsXG4gICAgJ3JlY2VpdmVTaGFkb3cnLFxuICAgICdmcnVzdHVtQ3VsbGVkJyxcbiAgICAncmVuZGVyT3JkZXInLFxuICAgICdhbmltYXRpb25zJyxcbiAgICAndXNlckRhdGEnLFxuICAgICdjdXN0b21EZXB0aE1hdGVyaWFsJyxcbiAgICAnY3VzdG9tRGlzdGFuY2VNYXRlcmlhbCcsXG4gICAgJ29uQmVmb3JlUmVuZGVyJyxcbiAgICAnb25BZnRlclJlbmRlcicsXG5dO1xuIl19
|