angular-three-soba 2.0.0-beta.4 → 2.0.0-beta.40
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/abstractions/billboard/billboard.d.ts +12 -8
- package/abstractions/detailed/detailed.d.ts +26 -0
- package/abstractions/edges/edges.d.ts +24 -12
- package/abstractions/grid/grid.d.ts +42 -51
- package/abstractions/index.d.ts +1 -7
- package/abstractions/text/text.d.ts +10 -4
- package/abstractions/text-3d/text-3d.d.ts +51 -41
- package/cameras/camera/camera-content.d.ts +1 -1
- package/cameras/camera/camera.d.ts +16 -13
- package/cameras/cube-camera/cube-camera.d.ts +49 -23
- package/cameras/index.d.ts +0 -1
- package/cameras/orthographic-camera/orthographic-camera.d.ts +29 -18
- package/cameras/perspective-camera/perspective-camera.d.ts +10 -1
- package/controls/orbit-controls/orbit-controls.d.ts +34 -15
- package/esm2022/abstractions/billboard/billboard.mjs +36 -33
- package/esm2022/abstractions/detailed/detailed.mjs +64 -0
- package/esm2022/abstractions/edges/edges.mjs +58 -63
- package/esm2022/abstractions/grid/grid.mjs +140 -110
- package/esm2022/abstractions/index.mjs +2 -8
- package/esm2022/abstractions/text/text.mjs +123 -122
- package/esm2022/abstractions/text-3d/text-3d.mjs +120 -115
- package/esm2022/cameras/camera/camera-content.mjs +6 -6
- package/esm2022/cameras/camera/camera.mjs +48 -42
- package/esm2022/cameras/cube-camera/cube-camera.mjs +120 -100
- package/esm2022/cameras/index.mjs +1 -2
- package/esm2022/cameras/orthographic-camera/orthographic-camera.mjs +78 -75
- package/esm2022/cameras/perspective-camera/perspective-camera.mjs +25 -26
- package/esm2022/controls/orbit-controls/orbit-controls.mjs +109 -85
- package/esm2022/gizmos/angular-three-soba-gizmos.mjs +5 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-helper.mjs +198 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/constants.mjs +31 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +93 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +151 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.mjs +66 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +71 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +195 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +272 -0
- package/esm2022/gizmos/index.mjs +4 -0
- package/esm2022/loaders/gltf-loader/gltf-loader.mjs +14 -9
- package/esm2022/loaders/loader/loader.mjs +92 -87
- package/esm2022/loaders/progress/progress.mjs +31 -30
- package/esm2022/loaders/texture-loader/texture-loader.mjs +20 -15
- package/esm2022/materials/index.mjs +2 -1
- package/esm2022/materials/mesh-distort-material/mesh-distort-material.mjs +60 -51
- package/esm2022/materials/mesh-reflector-material/mesh-reflector-material.mjs +239 -255
- package/esm2022/materials/mesh-refraction-material/mesh-refraction-material.mjs +99 -97
- package/esm2022/materials/mesh-transmission-material/mesh-transmission-material.mjs +164 -144
- package/esm2022/materials/mesh-wobble-material/mesh-wobble-material.mjs +44 -42
- package/esm2022/materials/point-material/point-material.mjs +50 -0
- package/esm2022/misc/animations/animations.mjs +28 -23
- package/esm2022/misc/bake-shadows/bake-shadows.mjs +13 -13
- package/esm2022/misc/caustics/caustics.mjs +387 -0
- package/esm2022/misc/decal/decal.mjs +187 -0
- package/esm2022/misc/depth-buffer/depth-buffer.mjs +41 -37
- package/esm2022/misc/example/example.mjs +161 -0
- package/esm2022/misc/fbo/fbo.mjs +42 -36
- package/esm2022/misc/html/html-wrapper.mjs +478 -0
- package/esm2022/misc/html/html.mjs +305 -0
- package/esm2022/misc/index.mjs +10 -1
- package/esm2022/misc/sampler/sampler.mjs +132 -0
- package/esm2022/misc/shadow/shadow.mjs +111 -0
- package/esm2022/misc/stats-gl/stats-gl.mjs +61 -0
- package/esm2022/misc/trail/trail.mjs +204 -0
- package/esm2022/misc/trail-texture/inject-trail-texture.mjs +17 -0
- package/esm2022/misc/trail-texture/trail-texture.mjs +106 -0
- package/esm2022/modifiers/angular-three-soba-modifiers.mjs +5 -0
- package/esm2022/modifiers/curve-modifier/curve-modifier.mjs +64 -0
- package/esm2022/modifiers/index.mjs +2 -0
- package/esm2022/performances/adaptive-dpr/adaptive-dpr.mjs +44 -0
- package/esm2022/performances/adaptive-events/adaptive-events.mjs +27 -0
- package/esm2022/performances/angular-three-soba-performances.mjs +5 -0
- package/esm2022/performances/index.mjs +8 -0
- package/esm2022/performances/instances/instances.mjs +221 -0
- package/esm2022/performances/instances/position-mesh.mjs +52 -0
- package/esm2022/performances/points/points-input.mjs +64 -0
- package/esm2022/performances/points/points.mjs +327 -0
- package/esm2022/performances/points/position-point.mjs +54 -0
- package/esm2022/performances/segments/segment-object.mjs +9 -0
- package/esm2022/performances/segments/segments.mjs +183 -0
- package/esm2022/shaders/blur-pass/blur-pass.mjs +2 -2
- package/esm2022/shaders/caustics/caustics-material.mjs +130 -0
- package/esm2022/shaders/caustics/caustics-projection-material.mjs +32 -0
- package/esm2022/shaders/convolution-material/convolution-material.mjs +3 -2
- package/esm2022/shaders/discard-material/discard-material.mjs +1 -1
- package/esm2022/shaders/grid-material/grid-material.mjs +30 -14
- package/esm2022/shaders/index.mjs +5 -3
- package/esm2022/shaders/mesh-distort-material/mesh-distort-material.mjs +42 -41
- package/esm2022/shaders/mesh-reflector-material/mesh-reflector-material.mjs +2 -2
- package/esm2022/shaders/mesh-refraction-material/mesh-refraction-material.mjs +3 -2
- package/esm2022/shaders/mesh-transmission-material/mesh-transmission-material.mjs +7 -4
- package/esm2022/shaders/mesh-wobble-material/mesh-wobble-material.mjs +1 -1
- package/esm2022/shaders/shader-material/shader-material.mjs +3 -5
- package/esm2022/shaders/soft-shadow-material/soft-shadow-material.mjs +18 -25
- package/esm2022/shaders/sparkles-material/sparkles-material.mjs +32 -46
- package/esm2022/shaders/spot-light-material/spot-light-material.mjs +8 -7
- package/esm2022/shaders/star-field-material/star-field-material.mjs +3 -2
- package/esm2022/shaders/wireframe-material/wireframe-material.mjs +247 -0
- package/esm2022/staging/accumulative-shadows/accumulative-shadows.mjs +161 -176
- package/esm2022/staging/accumulative-shadows/progressive-light-map.mjs +8 -8
- package/esm2022/staging/accumulative-shadows/randomized-lights.mjs +129 -129
- package/esm2022/staging/backdrop/backdrop.mjs +77 -0
- package/esm2022/staging/bb-anchor/bb-anchor.mjs +69 -0
- package/esm2022/staging/bounds/bounds.mjs +145 -143
- package/esm2022/staging/camera-shake/camera-shake.mjs +86 -80
- package/esm2022/staging/center/center.mjs +129 -112
- package/esm2022/staging/cloud/cloud.mjs +118 -124
- package/esm2022/staging/contact-shadows/contact-shadows.mjs +131 -136
- package/esm2022/staging/environment/assets.mjs +12 -12
- package/esm2022/staging/environment/environment-cube.mjs +28 -30
- package/esm2022/staging/environment/environment-ground.mjs +17 -19
- package/esm2022/staging/environment/environment-input.mjs +98 -85
- package/esm2022/staging/environment/environment-map.mjs +33 -33
- package/esm2022/staging/environment/environment-portal.mjs +75 -97
- package/esm2022/staging/environment/environment.mjs +34 -51
- package/esm2022/staging/environment/utils.mjs +40 -17
- package/esm2022/staging/float/float.mjs +70 -58
- package/esm2022/staging/index.mjs +7 -3
- package/esm2022/staging/matcap-texture/matcap-texture.mjs +64 -0
- package/esm2022/staging/normal-texture/normal-texture.mjs +53 -0
- package/esm2022/staging/sky/sky.mjs +85 -80
- package/esm2022/staging/sparkles/sparkles.mjs +108 -105
- package/esm2022/staging/spot-light/shadow-mesh-input.mjs +63 -0
- package/esm2022/staging/spot-light/shadow-mesh.mjs +267 -0
- package/esm2022/staging/spot-light/spot-light-input.mjs +67 -58
- package/esm2022/staging/spot-light/spot-light.mjs +51 -63
- package/esm2022/staging/spot-light/volumetric-mesh.mjs +67 -70
- package/esm2022/staging/stage/stage.mjs +305 -290
- package/esm2022/staging/stars/stars.mjs +101 -102
- package/esm2022/staging/wireframe/wireframe-input.mjs +191 -0
- package/esm2022/staging/wireframe/wireframe.mjs +228 -0
- package/esm2022/utils/angular-three-soba-utils.mjs +5 -0
- package/esm2022/utils/constants.mjs +3 -0
- package/esm2022/utils/content/content.mjs +15 -0
- package/esm2022/utils/index.mjs +3 -0
- package/fesm2022/angular-three-soba-abstractions.mjs +504 -2079
- package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
- package/fesm2022/angular-three-soba-cameras.mjs +293 -260
- package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
- package/fesm2022/angular-three-soba-controls.mjs +108 -83
- package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
- package/fesm2022/angular-three-soba-gizmos.mjs +1045 -0
- package/fesm2022/angular-three-soba-gizmos.mjs.map +1 -0
- package/fesm2022/angular-three-soba-loaders.mjs +148 -132
- package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
- package/fesm2022/angular-three-soba-materials.mjs +656 -588
- package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
- package/fesm2022/angular-three-soba-misc.mjs +2202 -99
- package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
- package/fesm2022/angular-three-soba-modifiers.mjs +71 -0
- package/fesm2022/angular-three-soba-modifiers.mjs.map +1 -0
- package/fesm2022/angular-three-soba-performances.mjs +957 -0
- package/fesm2022/angular-three-soba-performances.mjs.map +1 -0
- package/fesm2022/angular-three-soba-shaders.mjs +508 -269
- package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
- package/fesm2022/angular-three-soba-staging.mjs +2910 -2573
- package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
- package/fesm2022/angular-three-soba-utils.mjs +25 -0
- package/fesm2022/angular-three-soba-utils.mjs.map +1 -0
- package/gizmos/README.md +3 -0
- package/gizmos/gizmo-helper/gizmo-helper.d.ts +73 -0
- package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +22 -0
- package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +29 -0
- package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.d.ts +33 -0
- package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +10 -0
- package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +40 -0
- package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +30 -0
- package/gizmos/index.d.ts +3 -0
- package/loaders/gltf-loader/gltf-loader.d.ts +15 -4
- package/loaders/loader/loader.d.ts +19 -17
- package/loaders/progress/progress.d.ts +1 -1
- package/loaders/texture-loader/texture-loader.d.ts +8 -3
- package/materials/index.d.ts +1 -0
- package/materials/mesh-distort-material/mesh-distort-material.d.ts +25 -15
- package/materials/mesh-reflector-material/mesh-reflector-material.d.ts +74 -56
- package/materials/mesh-refraction-material/mesh-refraction-material.d.ts +33 -21
- package/materials/mesh-transmission-material/mesh-transmission-material.d.ts +55 -39
- package/materials/mesh-wobble-material/mesh-wobble-material.d.ts +19 -10
- package/materials/point-material/point-material.d.ts +24 -0
- package/metadata.json +1 -0
- package/misc/animations/animations.d.ts +6 -4
- package/misc/caustics/caustics.d.ts +87 -0
- package/misc/decal/decal.d.ts +49 -0
- package/misc/depth-buffer/depth-buffer.d.ts +2 -2
- package/misc/example/example.d.ts +85 -0
- package/misc/fbo/fbo.d.ts +2 -2
- package/misc/html/html-wrapper.d.ts +559 -0
- package/misc/html/html.d.ts +218 -0
- package/misc/index.d.ts +9 -0
- package/misc/sampler/sampler.d.ts +67 -0
- package/misc/shadow/shadow.d.ts +37 -0
- package/misc/stats-gl/stats-gl.d.ts +24 -0
- package/misc/trail/trail.d.ts +57 -0
- package/misc/trail-texture/inject-trail-texture.d.ts +9 -0
- package/misc/trail-texture/trail-texture.d.ts +50 -0
- package/modifiers/README.md +3 -0
- package/modifiers/curve-modifier/curve-modifier.d.ts +23 -0
- package/modifiers/index.d.ts +1 -0
- package/package.json +36 -18
- package/performances/README.md +3 -0
- package/performances/adaptive-dpr/adaptive-dpr.d.ts +14 -0
- package/{performance/adaptive → performances/adaptive-events}/adaptive-events.d.ts +3 -0
- package/performances/index.d.ts +7 -0
- package/performances/instances/instances.d.ts +83 -0
- package/{performance → performances}/instances/position-mesh.d.ts +1 -1
- package/performances/points/points-input.d.ts +32 -0
- package/performances/points/points.d.ts +96 -0
- package/performances/points/position-point.d.ts +11 -0
- package/performances/segments/segment-object.d.ts +7 -0
- package/performances/segments/segments.d.ts +128 -0
- package/shaders/grid-material/grid-material.d.ts +33 -0
- package/shaders/index.d.ts +4 -2
- package/shaders/mesh-distort-material/mesh-distort-material.d.ts +173 -6
- package/shaders/mesh-transmission-material/mesh-transmission-material.d.ts +1 -1
- package/shaders/shader-material/shader-material.d.ts +2 -2
- package/shaders/soft-shadow-material/soft-shadow-material.d.ts +10 -1
- package/shaders/sparkles-material/sparkles-material.d.ts +13 -0
- package/shaders/spot-light-material/spot-light-material.d.ts +11 -2
- package/shaders/star-field-material/star-field-material.d.ts +9 -0
- package/shaders/wireframe-material/wireframe-material.d.ts +58 -0
- package/staging/accumulative-shadows/accumulative-shadows.d.ts +93 -39
- package/staging/accumulative-shadows/randomized-lights.d.ts +41 -28
- package/staging/backdrop/backdrop.d.ts +30 -0
- package/staging/bb-anchor/bb-anchor.d.ts +27 -0
- package/staging/bounds/bounds.d.ts +105 -25
- package/staging/camera-shake/camera-shake.d.ts +30 -19
- package/staging/center/center.d.ts +43 -35
- package/staging/cloud/cloud.d.ts +27 -24
- package/staging/contact-shadows/contact-shadows.d.ts +43 -30
- package/staging/environment/assets.d.ts +9 -9
- package/staging/environment/environment-cube.d.ts +9 -5
- package/staging/environment/environment-ground.d.ts +7 -7
- package/staging/environment/environment-input.d.ts +38 -38
- package/staging/environment/environment-map.d.ts +10 -5
- package/staging/environment/environment-portal.d.ts +10 -5
- package/staging/environment/environment.d.ts +0 -4
- package/staging/environment/utils.d.ts +2 -2
- package/staging/float/float.d.ts +15 -11
- package/staging/index.d.ts +6 -2
- package/staging/matcap-texture/matcap-texture.d.ts +13 -0
- package/staging/normal-texture/normal-texture.d.ts +16 -0
- package/staging/sky/sky.d.ts +28 -21
- package/staging/sparkles/sparkles.d.ts +36 -22
- package/staging/spot-light/shadow-mesh-input.d.ts +29 -0
- package/staging/spot-light/shadow-mesh.d.ts +37 -0
- package/staging/spot-light/spot-light-input.d.ts +25 -25
- package/staging/spot-light/spot-light.d.ts +35 -15
- package/staging/spot-light/volumetric-mesh.d.ts +15 -9
- package/staging/stage/stage.d.ts +89 -65
- package/staging/stars/stars.d.ts +28 -17
- package/staging/wireframe/wireframe-input.d.ts +65 -0
- package/staging/wireframe/wireframe.d.ts +28 -0
- package/utils/README.md +3 -0
- package/utils/constants.d.ts +1 -0
- package/utils/content/content.d.ts +8 -0
- package/utils/index.d.ts +2 -0
- package/web-types.json +1 -0
- package/abstractions/catmull-rom-line/catmull-rom-line.d.ts +0 -25
- package/abstractions/cubic-bezier-line/cubic-bezier-line.d.ts +0 -25
- package/abstractions/gizmo-helper/gizmo-helper.d.ts +0 -34
- package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +0 -22
- package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +0 -30
- package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +0 -32
- package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +0 -14
- package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +0 -47
- package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +0 -40
- package/abstractions/line/line-input.d.ts +0 -42
- package/abstractions/line/line.d.ts +0 -35
- package/abstractions/quadratic-bezier-line/quadratic-bezier-line.d.ts +0 -23
- package/esm2022/abstractions/catmull-rom-line/catmull-rom-line.mjs +0 -131
- package/esm2022/abstractions/cubic-bezier-line/cubic-bezier-line.mjs +0 -113
- package/esm2022/abstractions/gizmo-helper/gizmo-helper.mjs +0 -210
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/constants.mjs +0 -31
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -95
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -155
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +0 -62
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +0 -80
- package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -206
- package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +0 -273
- package/esm2022/abstractions/line/line-input.mjs +0 -113
- package/esm2022/abstractions/line/line.mjs +0 -165
- package/esm2022/abstractions/quadratic-bezier-line/quadratic-bezier-line.mjs +0 -128
- package/esm2022/performance/adaptive/adaptive-dpr.mjs +0 -46
- package/esm2022/performance/adaptive/adaptive-events.mjs +0 -31
- package/esm2022/performance/angular-three-soba-performance.mjs +0 -5
- package/esm2022/performance/detailed/detailed.mjs +0 -61
- package/esm2022/performance/index.mjs +0 -7
- package/esm2022/performance/instances/instance.mjs +0 -48
- package/esm2022/performance/instances/instances.mjs +0 -189
- package/esm2022/performance/instances/position-mesh.mjs +0 -52
- package/esm2022/performance/stats/stats.mjs +0 -79
- package/esm2022/shaders/caustics-material/caustics-material.mjs +0 -128
- package/esm2022/shaders/caustics-material/caustics-projection-material.mjs +0 -33
- package/esm2022/staging/caustics/caustisc.mjs +0 -384
- package/esm2022/staging/spot-light/spot-light-shadow-mesh-input.mjs +0 -57
- package/esm2022/staging/spot-light/spot-light-shadow-mesh.mjs +0 -256
- package/fesm2022/angular-three-soba-performance.mjs +0 -487
- package/fesm2022/angular-three-soba-performance.mjs.map +0 -1
- package/performance/README.md +0 -3
- package/performance/adaptive/adaptive-dpr.d.ts +0 -8
- package/performance/detailed/detailed.d.ts +0 -20
- package/performance/index.d.ts +0 -6
- package/performance/instances/instance.d.ts +0 -9
- package/performance/instances/instances.d.ts +0 -35
- package/performance/stats/stats.d.ts +0 -18
- package/plugin/generators.json +0 -19
- package/plugin/libs/plugin/README.md +0 -11
- package/plugin/package.json +0 -9
- package/plugin/src/generators/init/compat.d.ts +0 -2
- package/plugin/src/generators/init/compat.js +0 -6
- package/plugin/src/generators/init/compat.js.map +0 -1
- package/plugin/src/generators/init/init.d.ts +0 -7
- package/plugin/src/generators/init/init.js +0 -28
- package/plugin/src/generators/init/init.js.map +0 -1
- package/plugin/src/generators/init/schema.json +0 -6
- package/plugin/src/index.d.ts +0 -1
- package/plugin/src/index.js +0 -6
- package/plugin/src/index.js.map +0 -1
- package/staging/caustics/caustisc.d.ts +0 -70
- package/staging/spot-light/spot-light-shadow-mesh-input.d.ts +0 -29
- package/staging/spot-light/spot-light-shadow-mesh.d.ts +0 -38
- /package/{abstractions → gizmos}/gizmo-helper/gizmo-viewcube/constants.d.ts +0 -0
- /package/shaders/{caustics-material → caustics}/caustics-material.d.ts +0 -0
- /package/shaders/{caustics-material → caustics}/caustics-projection-material.d.ts +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * from './blur-pass/blur-pass';
|
|
2
|
-
export * from './caustics
|
|
3
|
-
export * from './caustics
|
|
2
|
+
export * from './caustics/caustics-material';
|
|
3
|
+
export * from './caustics/caustics-projection-material';
|
|
4
4
|
export * from './convolution-material/convolution-material';
|
|
5
5
|
export * from './discard-material/discard-material';
|
|
6
6
|
export * from './grid-material/grid-material';
|
|
@@ -9,8 +9,10 @@ export * from './mesh-reflector-material/mesh-reflector-material';
|
|
|
9
9
|
export * from './mesh-refraction-material/mesh-refraction-material';
|
|
10
10
|
export * from './mesh-transmission-material/mesh-transmission-material';
|
|
11
11
|
export * from './mesh-wobble-material/mesh-wobble-material';
|
|
12
|
+
export * from './shader-material/shader-material';
|
|
12
13
|
export * from './soft-shadow-material/soft-shadow-material';
|
|
13
14
|
export * from './sparkles-material/sparkles-material';
|
|
14
15
|
export * from './spot-light-material/spot-light-material';
|
|
15
16
|
export * from './star-field-material/star-field-material';
|
|
16
|
-
|
|
17
|
+
export * from './wireframe-material/wireframe-material';
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc2hhZGVycy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHlDQUF5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ibHVyLXBhc3MvYmx1ci1wYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vY2F1c3RpY3MvY2F1c3RpY3MtbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXVzdGljcy9jYXVzdGljcy1wcm9qZWN0aW9uLW1hdGVyaWFsJztcbmV4cG9ydCAqIGZyb20gJy4vY29udm9sdXRpb24tbWF0ZXJpYWwvY29udm9sdXRpb24tbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXNjYXJkLW1hdGVyaWFsL2Rpc2NhcmQtbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9ncmlkLW1hdGVyaWFsL2dyaWQtbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXNoLWRpc3RvcnQtbWF0ZXJpYWwvbWVzaC1kaXN0b3J0LW1hdGVyaWFsJztcbmV4cG9ydCAqIGZyb20gJy4vbWVzaC1yZWZsZWN0b3ItbWF0ZXJpYWwvbWVzaC1yZWZsZWN0b3ItbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXNoLXJlZnJhY3Rpb24tbWF0ZXJpYWwvbWVzaC1yZWZyYWN0aW9uLW1hdGVyaWFsJztcbmV4cG9ydCAqIGZyb20gJy4vbWVzaC10cmFuc21pc3Npb24tbWF0ZXJpYWwvbWVzaC10cmFuc21pc3Npb24tbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXNoLXdvYmJsZS1tYXRlcmlhbC9tZXNoLXdvYmJsZS1tYXRlcmlhbCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYWRlci1tYXRlcmlhbC9zaGFkZXItbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zb2Z0LXNoYWRvdy1tYXRlcmlhbC9zb2Z0LXNoYWRvdy1tYXRlcmlhbCc7XG5leHBvcnQgKiBmcm9tICcuL3NwYXJrbGVzLW1hdGVyaWFsL3NwYXJrbGVzLW1hdGVyaWFsJztcbmV4cG9ydCAqIGZyb20gJy4vc3BvdC1saWdodC1tYXRlcmlhbC9zcG90LWxpZ2h0LW1hdGVyaWFsJztcbmV4cG9ydCAqIGZyb20gJy4vc3Rhci1maWVsZC1tYXRlcmlhbC9zdGFyLWZpZWxkLW1hdGVyaWFsJztcbmV4cG9ydCAqIGZyb20gJy4vd2lyZWZyYW1lLW1hdGVyaWFsL3dpcmVmcmFtZS1tYXRlcmlhbCc7XG4iXX0=
|
|
@@ -1,55 +1,56 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
1
|
+
import { InjectionToken, Type, inject } from '@angular/core';
|
|
2
2
|
import * as THREE from 'three';
|
|
3
3
|
export const NGTS_DISTORT_MATERIAL_SHADER = new InjectionToken('DistortMaterialShader');
|
|
4
|
-
export function
|
|
5
|
-
return
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
4
|
+
export function injectNgtsMeshDistortMaterial() {
|
|
5
|
+
return inject(NGTS_DISTORT_MATERIAL_SHADER);
|
|
6
|
+
}
|
|
7
|
+
export function createMeshDistortMaterial(distortShader) {
|
|
8
|
+
return class extends THREE.MeshPhysicalMaterial {
|
|
9
|
+
constructor(parameters = {}) {
|
|
10
|
+
super(parameters);
|
|
11
|
+
this.setValues(parameters);
|
|
12
|
+
this._time = { value: 0 };
|
|
13
|
+
this._distort = { value: 0.4 };
|
|
14
|
+
this._radius = { value: 1 };
|
|
15
|
+
}
|
|
16
|
+
onBeforeCompile(shader) {
|
|
17
|
+
shader.uniforms['time'] = this._time;
|
|
18
|
+
shader.uniforms['radius'] = this._radius;
|
|
19
|
+
shader.uniforms['distort'] = this._distort;
|
|
20
|
+
shader.vertexShader = `
|
|
21
21
|
uniform float time;
|
|
22
22
|
uniform float radius;
|
|
23
23
|
uniform float distort;
|
|
24
24
|
${distortShader}
|
|
25
25
|
${shader.vertexShader}
|
|
26
26
|
`;
|
|
27
|
-
|
|
27
|
+
shader.vertexShader = shader.vertexShader.replace('#include <begin_vertex>', `
|
|
28
28
|
float updateTime = time / 50.0;
|
|
29
29
|
float noise = snoise(vec3(position / 2.0 + updateTime * 5.0));
|
|
30
30
|
vec3 transformed = vec3(position * (noise * pow(distort, 2.0) + radius));
|
|
31
31
|
`);
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
};
|
|
52
|
-
},
|
|
32
|
+
}
|
|
33
|
+
get time() {
|
|
34
|
+
return this._time.value;
|
|
35
|
+
}
|
|
36
|
+
set time(v) {
|
|
37
|
+
this._time.value = v;
|
|
38
|
+
}
|
|
39
|
+
get distort() {
|
|
40
|
+
return this._distort.value;
|
|
41
|
+
}
|
|
42
|
+
set distort(v) {
|
|
43
|
+
this._distort.value = v;
|
|
44
|
+
}
|
|
45
|
+
get radius() {
|
|
46
|
+
return this._radius.value;
|
|
47
|
+
}
|
|
48
|
+
set radius(v) {
|
|
49
|
+
this._radius.value = v;
|
|
50
|
+
}
|
|
53
51
|
};
|
|
54
52
|
}
|
|
55
|
-
|
|
53
|
+
export function provideNgtsMeshDistortMaterialShader(distortShader) {
|
|
54
|
+
return { provide: NGTS_DISTORT_MATERIAL_SHADER, useFactory: () => createMeshDistortMaterial(distortShader) };
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC1kaXN0b3J0LW1hdGVyaWFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3NoYWRlcnMvc3JjL21lc2gtZGlzdG9ydC1tYXRlcmlhbC9tZXNoLWRpc3RvcnQtbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBc0IvQixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLGNBQWMsQ0FBc0IsdUJBQXVCLENBQUMsQ0FBQztBQUU3RyxNQUFNLFVBQVUsNkJBQTZCO0lBQzVDLE9BQU8sTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxhQUFxQjtJQUM5RCxPQUFPLEtBQU0sU0FBUSxLQUFLLENBQUMsb0JBQW9CO1FBSzlDLFlBQVksYUFBbUQsRUFBRTtZQUNoRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUM3QixDQUFDO1FBRVEsZUFBZSxDQUFDLE1BQW9CO1lBQzVDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNyQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDekMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBRTNDLE1BQU0sQ0FBQyxZQUFZLEdBQUc7Ozs7ZUFJVixhQUFhO2VBQ2IsTUFBTSxDQUFDLFlBQVk7WUFDdEIsQ0FBQztZQUNWLE1BQU0sQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQ2hELHlCQUF5QixFQUN6Qjs7OztnQkFJWSxDQUNaLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxJQUFJO1lBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN6QixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsQ0FBQztZQUNULElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUN0QixDQUFDO1FBRUQsSUFBSSxPQUFPO1lBQ1YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUM1QixDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsQ0FBQztZQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUN6QixDQUFDO1FBRUQsSUFBSSxNQUFNO1lBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUMzQixDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsQ0FBQztZQUNYLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUN4QixDQUFDO0tBQ0QsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsb0NBQW9DLENBQUMsYUFBcUI7SUFDekUsT0FBTyxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztBQUM5RyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFR5cGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuXG5pbnRlcmZhY2UgVW5pZm9ybTxUPiB7XG5cdHZhbHVlOiBUO1xufVxuXG4vKipcbiAqIG5wbSBpIC1EIHJhdy1sb2FkZXIgZ2xzbGlmeS1sb2FkZXIgZ2xzbC1ub2lzZVxuICogVXNhZ2U6IGltcG9ydCBkaXN0b3J0IGZyb20gJ3Jhdy1sb2FkZXIhZ2xzbGlmeS1sb2FkZXIhYW5ndWxhci10aHJlZS1zb2JhL2Fzc2V0cy9kaXN0b3J0LnZlcnQuZ2xzbCdcbiAqXG4gKiB1c2luZyBwcm92aWRlcjpcbiAqIC0gcHJvdmlkZU5ndHNNZXNoRGlzdG9ydE1hdGVyaWFsU2hhZGVyKGRpc3RvcnQpXG4gKiAtIHJlYWRvbmx5IE1lc2hEaXN0b3J0TWF0ZXJpYWwgPSBpbmplY3ROZ3RzTWVzaERpc3RvcnRNYXRlcmlhbCgpXG4gKiAtIG1hdGVyaWFsID0gbmV3IHRoaXMuTWVzaERpc3RvcnRNYXRlcmlhbCgpOyAvLyB0aGVuIHVzZSB0aGlzIHdpdGggcHJpbWl0aXZlXG4gKlxuICogdXNpbmcgY3JlYXRlTWVzaERpc3RvcnRNYXRlcmlhbDogY3JlYXRlTWVzaERpc3RvcnRNYXRlcmlhbChkaXN0b3J0KTtcbiAqIC0gY29uc3QgTWVzaERpc3RvcnRNYXRlcmlhbCA9IGNyZWF0ZU1lc2hEaXN0b3J0TWF0ZXJpYWwoZGlzdG9ydCk7XG4gKiAtIGV4dGVuZCh7IE1lc2hEaXN0b3J0TWF0ZXJpYWwgfSk7IC8vIHRoZW4gdXNlIGFzIG5ndC1tZXNoLWRpc3RvcnQtbWF0ZXJpYWxcbiAqL1xuXG5leHBvcnQgdHlwZSBNZXNoRGlzdG9ydE1hdGVyaWFsID0gVHlwZTx7IHRpbWU6IG51bWJlcjsgZGlzdG9ydDogbnVtYmVyOyByYWRpdXM6IG51bWJlciB9ICYgVEhSRUUuTWVzaFBoeXNpY2FsTWF0ZXJpYWw+O1xuXG5leHBvcnQgY29uc3QgTkdUU19ESVNUT1JUX01BVEVSSUFMX1NIQURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxNZXNoRGlzdG9ydE1hdGVyaWFsPignRGlzdG9ydE1hdGVyaWFsU2hhZGVyJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3ROZ3RzTWVzaERpc3RvcnRNYXRlcmlhbCgpIHtcblx0cmV0dXJuIGluamVjdChOR1RTX0RJU1RPUlRfTUFURVJJQUxfU0hBREVSKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1lc2hEaXN0b3J0TWF0ZXJpYWwoZGlzdG9ydFNoYWRlcjogc3RyaW5nKSB7XG5cdHJldHVybiBjbGFzcyBleHRlbmRzIFRIUkVFLk1lc2hQaHlzaWNhbE1hdGVyaWFsIHtcblx0XHRfdGltZTogVW5pZm9ybTxudW1iZXI+O1xuXHRcdF9kaXN0b3J0OiBVbmlmb3JtPG51bWJlcj47XG5cdFx0X3JhZGl1czogVW5pZm9ybTxudW1iZXI+O1xuXG5cdFx0Y29uc3RydWN0b3IocGFyYW1ldGVyczogVEhSRUUuTWVzaFBoeXNpY2FsTWF0ZXJpYWxQYXJhbWV0ZXJzID0ge30pIHtcblx0XHRcdHN1cGVyKHBhcmFtZXRlcnMpO1xuXHRcdFx0dGhpcy5zZXRWYWx1ZXMocGFyYW1ldGVycyk7XG5cdFx0XHR0aGlzLl90aW1lID0geyB2YWx1ZTogMCB9O1xuXHRcdFx0dGhpcy5fZGlzdG9ydCA9IHsgdmFsdWU6IDAuNCB9O1xuXHRcdFx0dGhpcy5fcmFkaXVzID0geyB2YWx1ZTogMSB9O1xuXHRcdH1cblxuXHRcdG92ZXJyaWRlIG9uQmVmb3JlQ29tcGlsZShzaGFkZXI6IFRIUkVFLlNoYWRlcikge1xuXHRcdFx0c2hhZGVyLnVuaWZvcm1zWyd0aW1lJ10gPSB0aGlzLl90aW1lO1xuXHRcdFx0c2hhZGVyLnVuaWZvcm1zWydyYWRpdXMnXSA9IHRoaXMuX3JhZGl1cztcblx0XHRcdHNoYWRlci51bmlmb3Jtc1snZGlzdG9ydCddID0gdGhpcy5fZGlzdG9ydDtcblxuXHRcdFx0c2hhZGVyLnZlcnRleFNoYWRlciA9IGBcblx0XHRcdFx0XHRcdFx0XHRcdCAgICB1bmlmb3JtIGZsb2F0IHRpbWU7XG5cdFx0XHRcdFx0XHRcdFx0XHQgICAgdW5pZm9ybSBmbG9hdCByYWRpdXM7XG5cdFx0XHRcdFx0XHRcdFx0XHQgICAgdW5pZm9ybSBmbG9hdCBkaXN0b3J0O1xuXHRcdFx0XHRcdFx0XHRcdFx0ICAgICR7ZGlzdG9ydFNoYWRlcn1cblx0XHRcdFx0XHRcdFx0XHRcdCAgICAke3NoYWRlci52ZXJ0ZXhTaGFkZXJ9XG5cdFx0XHRcdFx0XHRcdFx0XHQgIGA7XG5cdFx0XHRzaGFkZXIudmVydGV4U2hhZGVyID0gc2hhZGVyLnZlcnRleFNoYWRlci5yZXBsYWNlKFxuXHRcdFx0XHQnI2luY2x1ZGUgPGJlZ2luX3ZlcnRleD4nLFxuXHRcdFx0XHRgXG5cdFx0XHRcdFx0XHRcdFx0XHQgICAgICBmbG9hdCB1cGRhdGVUaW1lID0gdGltZSAvIDUwLjA7XG5cdFx0XHRcdFx0XHRcdFx0XHQgICAgICBmbG9hdCBub2lzZSA9IHNub2lzZSh2ZWMzKHBvc2l0aW9uIC8gMi4wICsgdXBkYXRlVGltZSAqIDUuMCkpO1xuXHRcdFx0XHRcdFx0XHRcdFx0ICAgICAgdmVjMyB0cmFuc2Zvcm1lZCA9IHZlYzMocG9zaXRpb24gKiAobm9pc2UgKiBwb3coZGlzdG9ydCwgMi4wKSArIHJhZGl1cykpO1xuXHRcdFx0XHRcdFx0XHRcdFx0ICAgICAgYCxcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0Z2V0IHRpbWUoKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5fdGltZS52YWx1ZTtcblx0XHR9XG5cblx0XHRzZXQgdGltZSh2KSB7XG5cdFx0XHR0aGlzLl90aW1lLnZhbHVlID0gdjtcblx0XHR9XG5cblx0XHRnZXQgZGlzdG9ydCgpIHtcblx0XHRcdHJldHVybiB0aGlzLl9kaXN0b3J0LnZhbHVlO1xuXHRcdH1cblxuXHRcdHNldCBkaXN0b3J0KHYpIHtcblx0XHRcdHRoaXMuX2Rpc3RvcnQudmFsdWUgPSB2O1xuXHRcdH1cblxuXHRcdGdldCByYWRpdXMoKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5fcmFkaXVzLnZhbHVlO1xuXHRcdH1cblxuXHRcdHNldCByYWRpdXModikge1xuXHRcdFx0dGhpcy5fcmFkaXVzLnZhbHVlID0gdjtcblx0XHR9XG5cdH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlTmd0c01lc2hEaXN0b3J0TWF0ZXJpYWxTaGFkZXIoZGlzdG9ydFNoYWRlcjogc3RyaW5nKSB7XG5cdHJldHVybiB7IHByb3ZpZGU6IE5HVFNfRElTVE9SVF9NQVRFUklBTF9TSEFERVIsIHVzZUZhY3Rvcnk6ICgpID0+IGNyZWF0ZU1lc2hEaXN0b3J0TWF0ZXJpYWwoZGlzdG9ydFNoYWRlcikgfTtcbn1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MeshStandardMaterial } from 'three';
|
|
1
|
+
import { Matrix4, MeshStandardMaterial, Texture } from 'three';
|
|
2
2
|
export class MeshReflectorMaterial extends MeshStandardMaterial {
|
|
3
3
|
constructor(parameters = {}) {
|
|
4
4
|
super(parameters);
|
|
@@ -220,4 +220,4 @@ export class MeshReflectorMaterial extends MeshStandardMaterial {
|
|
|
220
220
|
this._mixContrast.value = v;
|
|
221
221
|
}
|
|
222
222
|
}
|
|
223
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC1yZWZsZWN0b3ItbWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc2hhZGVycy9zcmMvbWVzaC1yZWZsZWN0b3ItbWF0ZXJpYWwvbWVzaC1yZWZsZWN0b3ItbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLG9CQUFvQixFQUFXLE1BQU0sT0FBTyxDQUFDO0FBSS9ELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxvQkFBb0I7SUFpQjNELFlBQVksVUFBVSxHQUFHLEVBQUU7UUFDdkIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBakJkLFlBQU8sR0FBa0MsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDekQsbUJBQWMsR0FBa0MsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDaEUsY0FBUyxHQUFrQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUMzRCxrQkFBYSxHQUFrQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUMvRCxtQkFBYyxHQUFrQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUNoRSxhQUFRLEdBQXVCLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ2hELFlBQU8sR0FBc0IsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDNUMsYUFBUSxHQUFzQixFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUM3QyxrQkFBYSxHQUFzQixFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNsRCx1QkFBa0IsR0FBc0IsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDdkQsdUJBQWtCLEdBQXNCLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3JELGdCQUFXLEdBQXNCLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFD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SUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO0lBQ25DLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxDQUFTO1FBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNoQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXRyaXg0LCBNZXNoU3RhbmRhcmRNYXRlcmlhbCwgVGV4dHVyZSB9IGZyb20gJ3RocmVlJztcblxudHlwZSBVbmluaXRpYWxpemVkVW5pZm9ybTxWYWx1ZT4gPSB7IHZhbHVlOiBWYWx1ZSB8IG51bGwgfTtcblxuZXhwb3J0IGNsYXNzIE1lc2hSZWZsZWN0b3JNYXRlcmlhbCBleHRlbmRzIE1lc2hTdGFuZGFyZE1hdGVyaWFsIHtcbiAgICBwcml2YXRlIF90RGVwdGg6IFVuaW5pdGlhbGl6ZWRVbmlmb3JtPFRleHR1cmU+ID0geyB2YWx1ZTogbnVsbCB9O1xuICAgIHByaXZhdGUgX2Rpc3RvcnRpb25NYXA6IFVuaW5pdGlhbGl6ZWRVbmlmb3JtPFRleHR1cmU+ID0geyB2YWx1ZTogbnVsbCB9O1xuICAgIHByaXZhdGUgX3REaWZmdXNlOiBVbmluaXRpYWxpemVkVW5pZm9ybTxUZXh0dXJlPiA9IHsgdmFsdWU6IG51bGwgfTtcbiAgICBwcml2YXRlIF90RGlmZnVzZUJsdXI6IFVuaW5pdGlhbGl6ZWRVbmlmb3JtPFRleHR1cmU+ID0geyB2YWx1ZTogbnVsbCB9O1xuICAgIHByaXZhdGUgX3RleHR1cmVNYXRyaXg6IFVuaW5pdGlhbGl6ZWRVbmlmb3JtPE1hdHJpeDQ+ID0geyB2YWx1ZTogbnVsbCB9O1xuICAgIHByaXZhdGUgX2hhc0JsdXI6IHsgdmFsdWU6IGJvb2xlYW4gfSA9IHsgdmFsdWU6IGZhbHNlIH07XG4gICAgcHJpdmF0ZSBfbWlycm9yOiB7IHZhbHVlOiBudW1iZXIgfSA9IHsgdmFsdWU6IDAuMCB9O1xuICAgIHByaXZhdGUgX21peEJsdXI6IHsgdmFsdWU6IG51bWJlciB9ID0geyB2YWx1ZTogMC4wIH07XG4gICAgcHJpdmF0ZSBfYmx1clN0cmVuZ3RoOiB7IHZhbHVlOiBudW1iZXIgfSA9IHsgdmFsdWU6IDAuNSB9O1xuICAgIHByaXZhdGUgX21pbkRlcHRoVGhyZXNob2xkOiB7IHZhbHVlOiBudW1iZXIgfSA9IHsgdmFsdWU6IDAuOSB9O1xuICAgIHByaXZhdGUgX21heERlcHRoVGhyZXNob2xkOiB7IHZhbHVlOiBudW1iZXIgfSA9IHsgdmFsdWU6IDEgfTtcbiAgICBwcml2YXRlIF9kZXB0aFNjYWxlOiB7IHZhbHVlOiBudW1iZXIgfSA9IHsgdmFsdWU6IDAgfTtcbiAgICBwcml2YXRlIF9kZXB0aFRvQmx1clJhdGlvQmlhczogeyB2YWx1ZTogbnVtYmVyIH0gPSB7IHZhbHVlOiAwLjI1IH07XG4gICAgcHJpdmF0ZSBfZGlzdG9ydGlvbjogeyB2YWx1ZTogbnVtYmVyIH0gPSB7IHZhbHVlOiAxIH07XG4gICAgcHJpdmF0ZSBfbWl4Q29udHJhc3Q6IHsgdmFsdWU6IG51bWJlciB9ID0geyB2YWx1ZTogMS4wIH07XG5cbiAgICBjb25zdHJ1Y3RvcihwYXJhbWV0ZXJzID0ge30pIHtcbiAgICAgICAgc3VwZXIocGFyYW1ldGVycyk7XG4gICAgICAgIHRoaXMuc2V0VmFsdWVzKHBhcmFtZXRlcnMpO1xuICAgIH1cbiAgICBvdmVycmlkZSBvbkJlZm9yZUNvbXBpbGUoc2hhZGVyOiBhbnkpIHtcbiAgICAgICAgaWYgKCFzaGFkZXIuZGVmaW5lcz8uVVNFX1VWKSB7XG4gICAgICAgICAgICBzaGFkZXIuZGVmaW5lcy5VU0VfVVYgPSAnJztcbiAgICAgICAgfVxuICAgICAgICBzaGFkZXIudW5pZm9ybXMuaGFzQmx1ciA9IHRoaXMuX2hhc0JsdXI7XG4gICAgICAgIHNoYWRlci51bmlmb3Jtcy50RGlmZnVzZSA9IHRoaXMuX3REaWZmdXNlO1xuICAgICAgICBzaGFkZXIudW5pZm9ybXMudERlcHRoID0gdGhpcy5fdERlcHRoO1xuICAgICAgICBzaGFkZXIudW5pZm9ybXMuZGlzdG9ydGlvbk1hcCA9IHRoaXMuX2Rpc3RvcnRpb25NYXA7XG4gICAgICAgIHNoYWRlci51bmlmb3Jtcy50RGlmZnVzZUJsdXIgPSB0aGlzLl90RGlmZnVzZUJsdXI7XG4gICAgICAgIHNoYWRlci51bmlmb3Jtcy50ZXh0dXJlTWF0cml4ID0gdGhpcy5fdGV4dHVyZU1hdHJpeDtcbiAgICAgICAgc2hhZGVyLnVuaWZvcm1zLm1pcnJvciA9IHRoaXMuX21pcnJvcjtcbiAgICAgICAgc2hhZGVyLnVuaWZvcm1zLm1peEJsdXIgPSB0aGlzLl9taXhCbHVyO1xuICAgICAgICBzaGFkZXIudW5pZm9ybXMubWl4U3RyZW5ndGggPSB0aGlzLl9ibHVyU3RyZW5ndGg7XG4gICAgICAgIHNoYWRlci51bmlmb3Jtcy5taW5EZXB0aFRocmVzaG9sZCA9IHRoaXMuX21pbkRlcHRoVGhyZXNob2xkO1xuICAgICAgICBzaGFkZXIudW5pZm9ybXMubWF4RGVwdGhUaHJlc2hvbGQgPSB0aGlzLl9tYXhEZXB0aFRocmVzaG9sZDtcbiAgICAgICAgc2hhZGVyLnVuaWZvcm1zLmRlcHRoU2NhbGUgPSB0aGlzLl9kZXB0aFNjYWxlO1xuICAgICAgICBzaGFkZXIudW5pZm9ybXMuZGVwdGhUb0JsdXJSYXRpb0JpYXMgPSB0aGlzLl9kZXB0aFRvQmx1clJhdGlvQmlhcztcbiAgICAgICAgc2hhZGVyLnVuaWZvcm1zLmRpc3RvcnRpb24gPSB0aGlzLl9kaXN0b3J0aW9uO1xuICAgICAgICBzaGFkZXIudW5pZm9ybXMubWl4Q29udHJhc3QgPSB0aGlzLl9taXhDb250cmFzdDtcbiAgICAgICAgc2hhZGVyLnZlcnRleFNoYWRlciA9IGBcbiAgICAgICAgdW5pZm9ybSBtYXQ0IHRleHR1cmVNYXRyaXg7XG4gICAgICAgIHZhcnlpbmcgdmVjNCBteV92VXY7XG4gICAgICAke3NoYWRlci52ZXJ0ZXhTaGFkZXJ9YDtcbiAgICAgICAgc2hhZGVyLnZlcnRleFNoYWRlciA9IHNoYWRlci52ZXJ0ZXhTaGFkZXIucmVwbGFjZShcbiAgICAgICAgICAgICcjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+JyxcbiAgICAgICAgICAgIGAjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XG4gICAgICAgIG15X3ZVdiA9IHRleHR1cmVNYXRyaXggKiB2ZWM0KCBwb3NpdGlvbiwgMS4wICk7XG4gICAgICAgIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIG1vZGVsVmlld01hdHJpeCAqIHZlYzQoIHBvc2l0aW9uLCAxLjAgKTtgXG4gICAgICAgICk7XG4gICAgICAgIHNoYWRlci5mcmFnbWVudFNoYWRlciA9IGBcbiAgICAgICAgdW5pZm9ybSBzYW1wbGVyMkQgdERpZmZ1c2U7XG4gICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIHREaWZmdXNlQmx1cjtcbiAgICAgICAgdW5pZm9ybSBzYW1wbGVyMkQgdERlcHRoO1xuICAgICAgICB1bmlmb3JtIHNhbXBsZXIyRCBkaXN0b3J0aW9uTWFwO1xuICAgICAgICB1bmlmb3JtIGZsb2F0IGRpc3RvcnRpb247XG4gICAgICAgIHVuaWZvcm0gZmxvYXQgY2FtZXJhTmVhcjtcblx0XHRcdCAgdW5pZm9ybSBmbG9hdCBjYW1lcmFGYXI7XG4gICAgICAgIHVuaWZvcm0gYm9vbCBoYXNCbHVyO1xuICAgICAgICB1bmlmb3JtIGZsb2F0IG1peEJsdXI7XG4gICAgICAgIHVuaWZvcm0gZmxvYXQgbWlycm9yO1xuICAgICAgICB1bmlmb3JtIGZsb2F0IG1peFN0cmVuZ3RoO1xuICAgICAgICB1bmlmb3JtIGZsb2F0IG1pbkRlcHRoVGhyZXNob2xkO1xuICAgICAgICB1bmlmb3JtIGZsb2F0IG1heERlcHRoVGhyZXNob2xkO1xuICAgICAgICB1bmlmb3JtIGZsb2F0IG1peENvbnRyYXN0O1xuICAgICAgICB1bmlmb3JtIGZsb2F0IGRlcHRoU2NhbGU7XG4gICAgICAgIHVuaWZvcm0gZmxvYXQgZGVwdGhUb0JsdXJSYXRpb0JpYXM7XG4gICAgICAgIHZhcnlpbmcgdmVjNCBteV92VXY7XG4gICAgICAgICR7c2hhZGVyLmZyYWdtZW50U2hhZGVyfWA7XG4gICAgICAgIHNoYWRlci5mcmFnbWVudFNoYWRlciA9IHNoYWRlci5mcmFnbWVudFNoYWRlci5yZXBsYWNlKFxuICAgICAgICAgICAgJyNpbmNsdWRlIDxlbWlzc2l2ZW1hcF9mcmFnbWVudD4nLFxuICAgICAgICAgICAgYCNpbmNsdWRlIDxlbWlzc2l2ZW1hcF9mcmFnbWVudD5cblxuICAgICAgZmxvYXQgZGlzdG9ydGlvbkZhY3RvciA9IDAuMDtcbiAgICAgICNpZmRlZiBVU0VfRElTVE9SVElPTlxuICAgICAgICBkaXN0b3J0aW9uRmFjdG9yID0gdGV4dHVyZTJEKGRpc3RvcnRpb25NYXAsIHZVdikuciAqIGRpc3RvcnRpb247XG4gICAgICAjZW5kaWZcblxuICAgICAgdmVjNCBuZXdfdlV2ID0gbXlfdlV2O1xuICAgICAgbmV3X3ZVdi54ICs9IGRpc3RvcnRpb25GYWN0b3I7XG4gICAgICBuZXdfdlV2LnkgKz0gZGlzdG9ydGlvbkZhY3RvcjtcblxuICAgICAgdmVjNCBiYXNlID0gdGV4dHVyZTJEUHJvaih0RGlmZnVzZSwgbmV3X3ZVdik7XG4gICAgICB2ZWM0IGJsdXIgPSB0ZXh0dXJlMkRQcm9qKHREaWZmdXNlQmx1ciwgbmV3X3ZVdik7XG5cbiAgICAgIHZlYzQgbWVyZ2UgPSBiYXNlO1xuXG4gICAgICAjaWZkZWYgVVNFX05PUk1BTE1BUFxuICAgICAgICB2ZWMyIG5vcm1hbF91diA9IHZlYzIoMC4wKTtcbiAgICAgICAgdmVjNCBub3JtYWxDb2xvciA9IHRleHR1cmUyRChub3JtYWxNYXAsIHZVdiAqIG5vcm1hbFNjYWxlKTtcbiAgICAgICAgdmVjMyBteV9ub3JtYWwgPSBub3JtYWxpemUoIHZlYzMoIG5vcm1hbENvbG9yLnIgKiAyLjAgLSAxLjAsIG5vcm1hbENvbG9yLmIsICBub3JtYWxDb2xvci5nICogMi4wIC0gMS4wICkgKTtcbiAgICAgICAgdmVjMyBjb29yZCA9IG5ld192VXYueHl6IC8gbmV3X3ZVdi53O1xuICAgICAgICBub3JtYWxfdXYgPSBjb29yZC54eSArIGNvb3JkLnogKiBteV9ub3JtYWwueHogKiAwLjA1O1xuICAgICAgICB2ZWM0IGJhc2Vfbm9ybWFsID0gdGV4dHVyZTJEKHREaWZmdXNlLCBub3JtYWxfdXYpO1xuICAgICAgICB2ZWM0IGJsdXJfbm9ybWFsID0gdGV4dHVyZTJEKHREaWZmdXNlQmx1ciwgbm9ybWFsX3V2KTtcbiAgICAgICAgbWVyZ2UgPSBiYXNlX25vcm1hbDtcbiAgICAgICAgYmx1ciA9IGJsdXJfbm9ybWFsO1xuICAgICAgI2VuZGlmXG5cbiAgICAgIGZsb2F0IGRlcHRoRmFjdG9yID0gMC4wMDAxO1xuICAgICAgZmxvYXQgYmx1ckZhY3RvciA9IDAuMDtcblxuICAgICAgI2lmZGVmIFVTRV9ERVBUSFxuICAgICAgICB2ZWM0IGRlcHRoID0gdGV4dHVyZTJEUHJvaih0RGVwdGgsIG5ld192VXYpO1xuICAgICAgICBkZXB0aEZhY3RvciA9IHNtb290aHN0ZXAobWluRGVwdGhUaHJlc2hvbGQsIG1heERlcHRoVGhyZXNob2xkLCAxLjAtKGRlcHRoLnIgKiBkZXB0aC5hKSk7XG4gICAgICAgIGRlcHRoRmFjdG9yICo9IGRlcHRoU2NhbGU7XG4gICAgICAgIGRlcHRoRmFjdG9yID0gbWF4KDAuMDAwMSwgbWluKDEuMCwgZGVwdGhGYWN0b3IpKTtcblxuICAgICAgICAjaWZkZWYgVVNFX0JMVVJcbiAgICAgICAgICBibHVyID0gYmx1ciAqIG1pbigxLjAsIGRlcHRoRmFjdG9yICsgZGVwdGhUb0JsdXJSYXRpb0JpYXMpO1xuICAgICAgICAgIG1lcmdlID0gbWVyZ2UgKiBtaW4oMS4wLCBkZXB0aEZhY3RvciArIDAuNSk7XG4gICAgICAgICNlbHNlXG4gICAgICAgICAgbWVyZ2UgPSBtZXJnZSAqIGRlcHRoRmFjdG9yO1xuICAgICAgICAjZW5kaWZcblxuICAgICAgI2VuZGlmXG5cbiAgICAgIGZsb2F0IHJlZmxlY3RvclJvdWdobmVzc0ZhY3RvciA9IHJvdWdobmVzcztcbiAgICAgICNpZmRlZiBVU0VfUk9VR0hORVNTTUFQXG4gICAgICAgIHZlYzQgcmVmbGVjdG9yVGV4ZWxSb3VnaG5lc3MgPSB0ZXh0dXJlMkQoIHJvdWdobmVzc01hcCwgdlV2ICk7XG4gICAgICAgIHJlZmxlY3RvclJvdWdobmVzc0ZhY3RvciAqPSByZWZsZWN0b3JUZXhlbFJvdWdobmVzcy5nO1xuICAgICAgI2VuZGlmXG5cbiAgICAgICNpZmRlZiBVU0VfQkxVUlxuICAgICAgICBibHVyRmFjdG9yID0gbWluKDEuMCwgbWl4Qmx1ciAqIHJlZmxlY3RvclJvdWdobmVzc0ZhY3Rvcik7XG4gICAgICAgIG1lcmdlID0gbWl4KG1lcmdlLCBibHVyLCBibHVyRmFjdG9yKTtcbiAgICAgICNlbmRpZlxuXG4gICAgICB2ZWM0IG5ld01lcmdlID0gdmVjNCgwLjAsIDAuMCwgMC4wLCAxLjApO1xuICAgICAgbmV3TWVyZ2UuciA9IChtZXJnZS5yIC0gMC41KSAqIG1peENvbnRyYXN0ICsgMC41O1xuICAgICAgbmV3TWVyZ2UuZyA9IChtZXJnZS5nIC0gMC41KSAqIG1peENvbnRyYXN0ICsgMC41O1xuICAgICAgbmV3TWVyZ2UuYiA9IChtZXJnZS5iIC0gMC41KSAqIG1peENvbnRyYXN0ICsgMC41O1xuXG4gICAgICBkaWZmdXNlQ29sb3IucmdiID0gZGlmZnVzZUNvbG9yLnJnYiAqICgoMS4wIC0gbWluKDEuMCwgbWlycm9yKSkgKyBuZXdNZXJnZS5yZ2IgKiBtaXhTdHJlbmd0aCk7XG4gICAgICBgXG4gICAgICAgICk7XG4gICAgfVxuICAgIGdldCB0RGlmZnVzZSgpOiBUZXh0dXJlIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl90RGlmZnVzZS52YWx1ZTtcbiAgICB9XG4gICAgc2V0IHREaWZmdXNlKHY6IFRleHR1cmUgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX3REaWZmdXNlLnZhbHVlID0gdjtcbiAgICB9XG4gICAgZ2V0IHREZXB0aCgpOiBUZXh0dXJlIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl90RGVwdGgudmFsdWU7XG4gICAgfVxuICAgIHNldCB0RGVwdGgodjogVGV4dHVyZSB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5fdERlcHRoLnZhbHVlID0gdjtcbiAgICB9XG4gICAgZ2V0IGRpc3RvcnRpb25NYXAoKTogVGV4dHVyZSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzdG9ydGlvbk1hcC52YWx1ZTtcbiAgICB9XG4gICAgc2V0IGRpc3RvcnRpb25NYXAodjogVGV4dHVyZSB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5fZGlzdG9ydGlvbk1hcC52YWx1ZSA9IHY7XG4gICAgfVxuICAgIGdldCB0RGlmZnVzZUJsdXIoKTogVGV4dHVyZSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fdERpZmZ1c2VCbHVyLnZhbHVlO1xuICAgIH1cbiAgICBzZXQgdERpZmZ1c2VCbHVyKHY6IFRleHR1cmUgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX3REaWZmdXNlQmx1ci52YWx1ZSA9IHY7XG4gICAgfVxuICAgIGdldCB0ZXh0dXJlTWF0cml4KCk6IE1hdHJpeDQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RleHR1cmVNYXRyaXgudmFsdWU7XG4gICAgfVxuICAgIHNldCB0ZXh0dXJlTWF0cml4KHY6IE1hdHJpeDQgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX3RleHR1cmVNYXRyaXgudmFsdWUgPSB2O1xuICAgIH1cbiAgICBnZXQgaGFzQmx1cigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc0JsdXIudmFsdWU7XG4gICAgfVxuICAgIHNldCBoYXNCbHVyKHY6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faGFzQmx1ci52YWx1ZSA9IHY7XG4gICAgfVxuICAgIGdldCBtaXJyb3IoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pcnJvci52YWx1ZTtcbiAgICB9XG4gICAgc2V0IG1pcnJvcih2OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fbWlycm9yLnZhbHVlID0gdjtcbiAgICB9XG4gICAgZ2V0IG1peEJsdXIoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21peEJsdXIudmFsdWU7XG4gICAgfVxuICAgIHNldCBtaXhCbHVyKHY6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9taXhCbHVyLnZhbHVlID0gdjtcbiAgICB9XG4gICAgZ2V0IG1peFN0cmVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ibHVyU3RyZW5ndGgudmFsdWU7XG4gICAgfVxuICAgIHNldCBtaXhTdHJlbmd0aCh2OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fYmx1clN0cmVuZ3RoLnZhbHVlID0gdjtcbiAgICB9XG4gICAgZ2V0IG1pbkRlcHRoVGhyZXNob2xkKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9taW5EZXB0aFRocmVzaG9sZC52YWx1ZTtcbiAgICB9XG4gICAgc2V0IG1pbkRlcHRoVGhyZXNob2xkKHY6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9taW5EZXB0aFRocmVzaG9sZC52YWx1ZSA9IHY7XG4gICAgfVxuICAgIGdldCBtYXhEZXB0aFRocmVzaG9sZCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWF4RGVwdGhUaHJlc2hvbGQudmFsdWU7XG4gICAgfVxuICAgIHNldCBtYXhEZXB0aFRocmVzaG9sZCh2OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fbWF4RGVwdGhUaHJlc2hvbGQudmFsdWUgPSB2O1xuICAgIH1cbiAgICBnZXQgZGVwdGhTY2FsZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVwdGhTY2FsZS52YWx1ZTtcbiAgICB9XG4gICAgc2V0IGRlcHRoU2NhbGUodjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2RlcHRoU2NhbGUudmFsdWUgPSB2O1xuICAgIH1cbiAgICBnZXQgZGVwdGhUb0JsdXJSYXRpb0JpYXMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlcHRoVG9CbHVyUmF0aW9CaWFzLnZhbHVlO1xuICAgIH1cbiAgICBzZXQgZGVwdGhUb0JsdXJSYXRpb0JpYXModjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2RlcHRoVG9CbHVyUmF0aW9CaWFzLnZhbHVlID0gdjtcbiAgICB9XG4gICAgZ2V0IGRpc3RvcnRpb24oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3RvcnRpb24udmFsdWU7XG4gICAgfVxuICAgIHNldCBkaXN0b3J0aW9uKHY6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9kaXN0b3J0aW9uLnZhbHVlID0gdjtcbiAgICB9XG4gICAgZ2V0IG1peENvbnRyYXN0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9taXhDb250cmFzdC52YWx1ZTtcbiAgICB9XG4gICAgc2V0IG1peENvbnRyYXN0KHY6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9taXhDb250cmFzdC52YWx1ZSA9IHY7XG4gICAgfVxufVxuIl19
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC1yZWZsZWN0b3ItbWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc2hhZGVycy9zcmMvbWVzaC1yZWZsZWN0b3ItbWF0ZXJpYWwvbWVzaC1yZWZsZWN0b3ItbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFJL0QsTUFBTSxPQUFPLHFCQUFzQixTQUFRLG9CQUFvQjtJQWlCOUQsWUFBWSxVQUFVLEdBQUcsRUFBRTtRQUMxQixLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFqQlgsWUFBTyxHQUFrQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN6RCxtQkFBYyxHQUFrQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUNoRSxjQUFTLEdBQWtDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzNELGtCQUFhLEdBQWtDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQy9ELG1CQUFjLEdBQWtDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ2hFLGFBQVEsR0FBdUIsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDaEQsWUFBTyxHQUFzQixFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUM1QyxhQUFRLEdBQXNCLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQzdDLGtCQUFhLEdBQXNCLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2xELHVCQUFrQixHQUFzQixFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUN2RCx1QkFBa0IsR0FBc0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckQsZ0JBQVcsR0FBc0IsRUFBRSxLQUFL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LFVBQVUsQ0FBQyxDQUFTO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxXQUFXO1FBQ2QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBQ0QsSUFBSSxXQUFXLENBQUMsQ0FBUztRQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0cml4NCwgTWVzaFN0YW5kYXJkTWF0ZXJpYWwsIFRleHR1cmUgfSBmcm9tICd0aHJlZSc7XG5cbnR5cGUgVW5pbml0aWFsaXplZFVuaWZvcm08VmFsdWU+ID0geyB2YWx1ZTogVmFsdWUgfCBudWxsIH07XG5cbmV4cG9ydCBjbGFzcyBNZXNoUmVmbGVjdG9yTWF0ZXJpYWwgZXh0ZW5kcyBNZXNoU3RhbmRhcmRNYXRlcmlhbCB7XG5cdHByaXZhdGUgX3REZXB0aDogVW5pbml0aWFsaXplZFVuaWZvcm08VGV4dHVyZT4gPSB7IHZhbHVlOiBudWxsIH07XG5cdHByaXZhdGUgX2Rpc3RvcnRpb25NYXA6IFVuaW5pdGlhbGl6ZWRVbmlmb3JtPFRleHR1cmU+ID0geyB2YWx1ZTogbnVsbCB9O1xuXHRwcml2YXRlIF90RGlmZnVzZTogVW5pbml0aWFsaXplZFVuaWZvcm08VGV4dHVyZT4gPSB7IHZhbHVlOiBudWxsIH07XG5cdHByaXZhdGUgX3REaWZmdXNlQmx1cjogVW5pbml0aWFsaXplZFVuaWZvcm08VGV4dHVyZT4gPSB7IHZhbHVlOiBudWxsIH07XG5cdHByaXZhdGUgX3RleHR1cmVNYXRyaXg6IFVuaW5pdGlhbGl6ZWRVbmlmb3JtPE1hdHJpeDQ+ID0geyB2YWx1ZTogbnVsbCB9O1xuXHRwcml2YXRlIF9oYXNCbHVyOiB7IHZhbHVlOiBib29sZWFuIH0gPSB7IHZhbHVlOiBmYWxzZSB9O1xuXHRwcml2YXRlIF9taXJyb3I6IHsgdmFsdWU6IG51bWJlciB9ID0geyB2YWx1ZTogMC4wIH07XG5cdHByaXZhdGUgX21peEJsdXI6IHsgdmFsdWU6IG51bWJlciB9ID0geyB2YWx1ZTogMC4wIH07XG5cdHByaXZhdGUgX2JsdXJTdHJlbmd0aDogeyB2YWx1ZTogbnVtYmVyIH0gPSB7IHZhbHVlOiAwLjUgfTtcblx0cHJpdmF0ZSBfbWluRGVwdGhUaHJlc2hvbGQ6IHsgdmFsdWU6IG51bWJlciB9ID0geyB2YWx1ZTogMC45IH07XG5cdHByaXZhdGUgX21heERlcHRoVGhyZXNob2xkOiB7IHZhbHVlOiBudW1iZXIgfSA9IHsgdmFsdWU6IDEgfTtcblx0cHJpdmF0ZSBfZGVwdGhTY2FsZTogeyB2YWx1ZTogbnVtYmVyIH0gPSB7IHZhbHVlOiAwIH07XG5cdHByaXZhdGUgX2RlcHRoVG9CbHVyUmF0aW9CaWFzOiB7IHZhbHVlOiBudW1iZXIgfSA9IHsgdmFsdWU6IDAuMjUgfTtcblx0cHJpdmF0ZSBfZGlzdG9ydGlvbjogeyB2YWx1ZTogbnVtYmVyIH0gPSB7IHZhbHVlOiAxIH07XG5cdHByaXZhdGUgX21peENvbnRyYXN0OiB7IHZhbHVlOiBudW1iZXIgfSA9IHsgdmFsdWU6IDEuMCB9O1xuXG5cdGNvbnN0cnVjdG9yKHBhcmFtZXRlcnMgPSB7fSkge1xuXHRcdHN1cGVyKHBhcmFtZXRlcnMpO1xuXHRcdHRoaXMuc2V0VmFsdWVzKHBhcmFtZXRlcnMpO1xuXHR9XG5cdG92ZXJyaWRlIG9uQmVmb3JlQ29tcGlsZShzaGFkZXI6IGFueSkge1xuXHRcdGlmICghc2hhZGVyLmRlZmluZXM/LlVTRV9VVikge1xuXHRcdFx0c2hhZGVyLmRlZmluZXMuVVNFX1VWID0gJyc7XG5cdFx0fVxuXHRcdHNoYWRlci51bmlmb3Jtcy5oYXNCbHVyID0gdGhpcy5faGFzQmx1cjtcblx0XHRzaGFkZXIudW5pZm9ybXMudERpZmZ1c2UgPSB0aGlzLl90RGlmZnVzZTtcblx0XHRzaGFkZXIudW5pZm9ybXMudERlcHRoID0gdGhpcy5fdERlcHRoO1xuXHRcdHNoYWRlci51bmlmb3Jtcy5kaXN0b3J0aW9uTWFwID0gdGhpcy5fZGlzdG9ydGlvbk1hcDtcblx0XHRzaGFkZXIudW5pZm9ybXMudERpZmZ1c2VCbHVyID0gdGhpcy5fdERpZmZ1c2VCbHVyO1xuXHRcdHNoYWRlci51bmlmb3Jtcy50ZXh0dXJlTWF0cml4ID0gdGhpcy5fdGV4dHVyZU1hdHJpeDtcblx0XHRzaGFkZXIudW5pZm9ybXMubWlycm9yID0gdGhpcy5fbWlycm9yO1xuXHRcdHNoYWRlci51bmlmb3Jtcy5taXhCbHVyID0gdGhpcy5fbWl4Qmx1cjtcblx0XHRzaGFkZXIudW5pZm9ybXMubWl4U3RyZW5ndGggPSB0aGlzLl9ibHVyU3RyZW5ndGg7XG5cdFx0c2hhZGVyLnVuaWZvcm1zLm1pbkRlcHRoVGhyZXNob2xkID0gdGhpcy5fbWluRGVwdGhUaHJlc2hvbGQ7XG5cdFx0c2hhZGVyLnVuaWZvcm1zLm1heERlcHRoVGhyZXNob2xkID0gdGhpcy5fbWF4RGVwdGhUaHJlc2hvbGQ7XG5cdFx0c2hhZGVyLnVuaWZvcm1zLmRlcHRoU2NhbGUgPSB0aGlzLl9kZXB0aFNjYWxlO1xuXHRcdHNoYWRlci51bmlmb3Jtcy5kZXB0aFRvQmx1clJhdGlvQmlhcyA9IHRoaXMuX2RlcHRoVG9CbHVyUmF0aW9CaWFzO1xuXHRcdHNoYWRlci51bmlmb3Jtcy5kaXN0b3J0aW9uID0gdGhpcy5fZGlzdG9ydGlvbjtcblx0XHRzaGFkZXIudW5pZm9ybXMubWl4Q29udHJhc3QgPSB0aGlzLl9taXhDb250cmFzdDtcblx0XHRzaGFkZXIudmVydGV4U2hhZGVyID0gYFxuICAgICAgICB1bmlmb3JtIG1hdDQgdGV4dHVyZU1hdHJpeDtcbiAgICAgICAgdmFyeWluZyB2ZWM0IG15X3ZVdjtcbiAgICAgICR7c2hhZGVyLnZlcnRleFNoYWRlcn1gO1xuXHRcdHNoYWRlci52ZXJ0ZXhTaGFkZXIgPSBzaGFkZXIudmVydGV4U2hhZGVyLnJlcGxhY2UoXG5cdFx0XHQnI2luY2x1ZGUgPHByb2plY3RfdmVydGV4PicsXG5cdFx0XHRgI2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxuICAgICAgICBteV92VXYgPSB0ZXh0dXJlTWF0cml4ICogdmVjNCggcG9zaXRpb24sIDEuMCApO1xuICAgICAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KCBwb3NpdGlvbiwgMS4wICk7YCxcblx0XHQpO1xuXHRcdHNoYWRlci5mcmFnbWVudFNoYWRlciA9IGBcbiAgICAgICAgdW5pZm9ybSBzYW1wbGVyMkQgdERpZmZ1c2U7XG4gICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIHREaWZmdXNlQmx1cjtcbiAgICAgICAgdW5pZm9ybSBzYW1wbGVyMkQgdERlcHRoO1xuICAgICAgICB1bmlmb3JtIHNhbXBsZXIyRCBkaXN0b3J0aW9uTWFwO1xuICAgICAgICB1bmlmb3JtIGZsb2F0IGRpc3RvcnRpb247XG4gICAgICAgIHVuaWZvcm0gZmxvYXQgY2FtZXJhTmVhcjtcblx0XHRcdCAgdW5pZm9ybSBmbG9hdCBjYW1lcmFGYXI7XG4gICAgICAgIHVuaWZvcm0gYm9vbCBoYXNCbHVyO1xuICAgICAgICB1bmlmb3JtIGZsb2F0IG1peEJsdXI7XG4gICAgICAgIHVuaWZvcm0gZmxvYXQgbWlycm9yO1xuICAgICAgICB1bmlmb3JtIGZsb2F0IG1peFN0cmVuZ3RoO1xuICAgICAgICB1bmlmb3JtIGZsb2F0IG1pbkRlcHRoVGhyZXNob2xkO1xuICAgICAgICB1bmlmb3JtIGZsb2F0IG1heERlcHRoVGhyZXNob2xkO1xuICAgICAgICB1bmlmb3JtIGZsb2F0IG1peENvbnRyYXN0O1xuICAgICAgICB1bmlmb3JtIGZsb2F0IGRlcHRoU2NhbGU7XG4gICAgICAgIHVuaWZvcm0gZmxvYXQgZGVwdGhUb0JsdXJSYXRpb0JpYXM7XG4gICAgICAgIHZhcnlpbmcgdmVjNCBteV92VXY7XG4gICAgICAgICR7c2hhZGVyLmZyYWdtZW50U2hhZGVyfWA7XG5cdFx0c2hhZGVyLmZyYWdtZW50U2hhZGVyID0gc2hhZGVyLmZyYWdtZW50U2hhZGVyLnJlcGxhY2UoXG5cdFx0XHQnI2luY2x1ZGUgPGVtaXNzaXZlbWFwX2ZyYWdtZW50PicsXG5cdFx0XHRgI2luY2x1ZGUgPGVtaXNzaXZlbWFwX2ZyYWdtZW50PlxuXG4gICAgICBmbG9hdCBkaXN0b3J0aW9uRmFjdG9yID0gMC4wO1xuICAgICAgI2lmZGVmIFVTRV9ESVNUT1JUSU9OXG4gICAgICAgIGRpc3RvcnRpb25GYWN0b3IgPSB0ZXh0dXJlMkQoZGlzdG9ydGlvbk1hcCwgdlV2KS5yICogZGlzdG9ydGlvbjtcbiAgICAgICNlbmRpZlxuXG4gICAgICB2ZWM0IG5ld192VXYgPSBteV92VXY7XG4gICAgICBuZXdfdlV2LnggKz0gZGlzdG9ydGlvbkZhY3RvcjtcbiAgICAgIG5ld192VXYueSArPSBkaXN0b3J0aW9uRmFjdG9yO1xuXG4gICAgICB2ZWM0IGJhc2UgPSB0ZXh0dXJlMkRQcm9qKHREaWZmdXNlLCBuZXdfdlV2KTtcbiAgICAgIHZlYzQgYmx1ciA9IHRleHR1cmUyRFByb2oodERpZmZ1c2VCbHVyLCBuZXdfdlV2KTtcblxuICAgICAgdmVjNCBtZXJnZSA9IGJhc2U7XG5cbiAgICAgICNpZmRlZiBVU0VfTk9STUFMTUFQXG4gICAgICAgIHZlYzIgbm9ybWFsX3V2ID0gdmVjMigwLjApO1xuICAgICAgICB2ZWM0IG5vcm1hbENvbG9yID0gdGV4dHVyZTJEKG5vcm1hbE1hcCwgdlV2ICogbm9ybWFsU2NhbGUpO1xuICAgICAgICB2ZWMzIG15X25vcm1hbCA9IG5vcm1hbGl6ZSggdmVjMyggbm9ybWFsQ29sb3IuciAqIDIuMCAtIDEuMCwgbm9ybWFsQ29sb3IuYiwgIG5vcm1hbENvbG9yLmcgKiAyLjAgLSAxLjAgKSApO1xuICAgICAgICB2ZWMzIGNvb3JkID0gbmV3X3ZVdi54eXogLyBuZXdfdlV2Lnc7XG4gICAgICAgIG5vcm1hbF91diA9IGNvb3JkLnh5ICsgY29vcmQueiAqIG15X25vcm1hbC54eiAqIDAuMDU7XG4gICAgICAgIHZlYzQgYmFzZV9ub3JtYWwgPSB0ZXh0dXJlMkQodERpZmZ1c2UsIG5vcm1hbF91dik7XG4gICAgICAgIHZlYzQgYmx1cl9ub3JtYWwgPSB0ZXh0dXJlMkQodERpZmZ1c2VCbHVyLCBub3JtYWxfdXYpO1xuICAgICAgICBtZXJnZSA9IGJhc2Vfbm9ybWFsO1xuICAgICAgICBibHVyID0gYmx1cl9ub3JtYWw7XG4gICAgICAjZW5kaWZcblxuICAgICAgZmxvYXQgZGVwdGhGYWN0b3IgPSAwLjAwMDE7XG4gICAgICBmbG9hdCBibHVyRmFjdG9yID0gMC4wO1xuXG4gICAgICAjaWZkZWYgVVNFX0RFUFRIXG4gICAgICAgIHZlYzQgZGVwdGggPSB0ZXh0dXJlMkRQcm9qKHREZXB0aCwgbmV3X3ZVdik7XG4gICAgICAgIGRlcHRoRmFjdG9yID0gc21vb3Roc3RlcChtaW5EZXB0aFRocmVzaG9sZCwgbWF4RGVwdGhUaHJlc2hvbGQsIDEuMC0oZGVwdGguciAqIGRlcHRoLmEpKTtcbiAgICAgICAgZGVwdGhGYWN0b3IgKj0gZGVwdGhTY2FsZTtcbiAgICAgICAgZGVwdGhGYWN0b3IgPSBtYXgoMC4wMDAxLCBtaW4oMS4wLCBkZXB0aEZhY3RvcikpO1xuXG4gICAgICAgICNpZmRlZiBVU0VfQkxVUlxuICAgICAgICAgIGJsdXIgPSBibHVyICogbWluKDEuMCwgZGVwdGhGYWN0b3IgKyBkZXB0aFRvQmx1clJhdGlvQmlhcyk7XG4gICAgICAgICAgbWVyZ2UgPSBtZXJnZSAqIG1pbigxLjAsIGRlcHRoRmFjdG9yICsgMC41KTtcbiAgICAgICAgI2Vsc2VcbiAgICAgICAgICBtZXJnZSA9IG1lcmdlICogZGVwdGhGYWN0b3I7XG4gICAgICAgICNlbmRpZlxuXG4gICAgICAjZW5kaWZcblxuICAgICAgZmxvYXQgcmVmbGVjdG9yUm91Z2huZXNzRmFjdG9yID0gcm91Z2huZXNzO1xuICAgICAgI2lmZGVmIFVTRV9ST1VHSE5FU1NNQVBcbiAgICAgICAgdmVjNCByZWZsZWN0b3JUZXhlbFJvdWdobmVzcyA9IHRleHR1cmUyRCggcm91Z2huZXNzTWFwLCB2VXYgKTtcbiAgICAgICAgcmVmbGVjdG9yUm91Z2huZXNzRmFjdG9yICo9IHJlZmxlY3RvclRleGVsUm91Z2huZXNzLmc7XG4gICAgICAjZW5kaWZcblxuICAgICAgI2lmZGVmIFVTRV9CTFVSXG4gICAgICAgIGJsdXJGYWN0b3IgPSBtaW4oMS4wLCBtaXhCbHVyICogcmVmbGVjdG9yUm91Z2huZXNzRmFjdG9yKTtcbiAgICAgICAgbWVyZ2UgPSBtaXgobWVyZ2UsIGJsdXIsIGJsdXJGYWN0b3IpO1xuICAgICAgI2VuZGlmXG5cbiAgICAgIHZlYzQgbmV3TWVyZ2UgPSB2ZWM0KDAuMCwgMC4wLCAwLjAsIDEuMCk7XG4gICAgICBuZXdNZXJnZS5yID0gKG1lcmdlLnIgLSAwLjUpICogbWl4Q29udHJhc3QgKyAwLjU7XG4gICAgICBuZXdNZXJnZS5nID0gKG1lcmdlLmcgLSAwLjUpICogbWl4Q29udHJhc3QgKyAwLjU7XG4gICAgICBuZXdNZXJnZS5iID0gKG1lcmdlLmIgLSAwLjUpICogbWl4Q29udHJhc3QgKyAwLjU7XG5cbiAgICAgIGRpZmZ1c2VDb2xvci5yZ2IgPSBkaWZmdXNlQ29sb3IucmdiICogKCgxLjAgLSBtaW4oMS4wLCBtaXJyb3IpKSArIG5ld01lcmdlLnJnYiAqIG1peFN0cmVuZ3RoKTtcbiAgICAgIGAsXG5cdFx0KTtcblx0fVxuXHRnZXQgdERpZmZ1c2UoKTogVGV4dHVyZSB8IG51bGwge1xuXHRcdHJldHVybiB0aGlzLl90RGlmZnVzZS52YWx1ZTtcblx0fVxuXHRzZXQgdERpZmZ1c2UodjogVGV4dHVyZSB8IG51bGwpIHtcblx0XHR0aGlzLl90RGlmZnVzZS52YWx1ZSA9IHY7XG5cdH1cblx0Z2V0IHREZXB0aCgpOiBUZXh0dXJlIHwgbnVsbCB7XG5cdFx0cmV0dXJuIHRoaXMuX3REZXB0aC52YWx1ZTtcblx0fVxuXHRzZXQgdERlcHRoKHY6IFRleHR1cmUgfCBudWxsKSB7XG5cdFx0dGhpcy5fdERlcHRoLnZhbHVlID0gdjtcblx0fVxuXHRnZXQgZGlzdG9ydGlvbk1hcCgpOiBUZXh0dXJlIHwgbnVsbCB7XG5cdFx0cmV0dXJuIHRoaXMuX2Rpc3RvcnRpb25NYXAudmFsdWU7XG5cdH1cblx0c2V0IGRpc3RvcnRpb25NYXAodjogVGV4dHVyZSB8IG51bGwpIHtcblx0XHR0aGlzLl9kaXN0b3J0aW9uTWFwLnZhbHVlID0gdjtcblx0fVxuXHRnZXQgdERpZmZ1c2VCbHVyKCk6IFRleHR1cmUgfCBudWxsIHtcblx0XHRyZXR1cm4gdGhpcy5fdERpZmZ1c2VCbHVyLnZhbHVlO1xuXHR9XG5cdHNldCB0RGlmZnVzZUJsdXIodjogVGV4dHVyZSB8IG51bGwpIHtcblx0XHR0aGlzLl90RGlmZnVzZUJsdXIudmFsdWUgPSB2O1xuXHR9XG5cdGdldCB0ZXh0dXJlTWF0cml4KCk6IE1hdHJpeDQgfCBudWxsIHtcblx0XHRyZXR1cm4gdGhpcy5fdGV4dHVyZU1hdHJpeC52YWx1ZTtcblx0fVxuXHRzZXQgdGV4dHVyZU1hdHJpeCh2OiBNYXRyaXg0IHwgbnVsbCkge1xuXHRcdHRoaXMuX3RleHR1cmVNYXRyaXgudmFsdWUgPSB2O1xuXHR9XG5cdGdldCBoYXNCbHVyKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLl9oYXNCbHVyLnZhbHVlO1xuXHR9XG5cdHNldCBoYXNCbHVyKHY6IGJvb2xlYW4pIHtcblx0XHR0aGlzLl9oYXNCbHVyLnZhbHVlID0gdjtcblx0fVxuXHRnZXQgbWlycm9yKCk6IG51bWJlciB7XG5cdFx0cmV0dXJuIHRoaXMuX21pcnJvci52YWx1ZTtcblx0fVxuXHRzZXQgbWlycm9yKHY6IG51bWJlcikge1xuXHRcdHRoaXMuX21pcnJvci52YWx1ZSA9IHY7XG5cdH1cblx0Z2V0IG1peEJsdXIoKTogbnVtYmVyIHtcblx0XHRyZXR1cm4gdGhpcy5fbWl4Qmx1ci52YWx1ZTtcblx0fVxuXHRzZXQgbWl4Qmx1cih2OiBudW1iZXIpIHtcblx0XHR0aGlzLl9taXhCbHVyLnZhbHVlID0gdjtcblx0fVxuXHRnZXQgbWl4U3RyZW5ndGgoKTogbnVtYmVyIHtcblx0XHRyZXR1cm4gdGhpcy5fYmx1clN0cmVuZ3RoLnZhbHVlO1xuXHR9XG5cdHNldCBtaXhTdHJlbmd0aCh2OiBudW1iZXIpIHtcblx0XHR0aGlzLl9ibHVyU3RyZW5ndGgudmFsdWUgPSB2O1xuXHR9XG5cdGdldCBtaW5EZXB0aFRocmVzaG9sZCgpOiBudW1iZXIge1xuXHRcdHJldHVybiB0aGlzLl9taW5EZXB0aFRocmVzaG9sZC52YWx1ZTtcblx0fVxuXHRzZXQgbWluRGVwdGhUaHJlc2hvbGQodjogbnVtYmVyKSB7XG5cdFx0dGhpcy5fbWluRGVwdGhUaHJlc2hvbGQudmFsdWUgPSB2O1xuXHR9XG5cdGdldCBtYXhEZXB0aFRocmVzaG9sZCgpOiBudW1iZXIge1xuXHRcdHJldHVybiB0aGlzLl9tYXhEZXB0aFRocmVzaG9sZC52YWx1ZTtcblx0fVxuXHRzZXQgbWF4RGVwdGhUaHJlc2hvbGQodjogbnVtYmVyKSB7XG5cdFx0dGhpcy5fbWF4RGVwdGhUaHJlc2hvbGQudmFsdWUgPSB2O1xuXHR9XG5cdGdldCBkZXB0aFNjYWxlKCk6IG51bWJlciB7XG5cdFx0cmV0dXJuIHRoaXMuX2RlcHRoU2NhbGUudmFsdWU7XG5cdH1cblx0c2V0IGRlcHRoU2NhbGUodjogbnVtYmVyKSB7XG5cdFx0dGhpcy5fZGVwdGhTY2FsZS52YWx1ZSA9IHY7XG5cdH1cblx0Z2V0IGRlcHRoVG9CbHVyUmF0aW9CaWFzKCk6IG51bWJlciB7XG5cdFx0cmV0dXJuIHRoaXMuX2RlcHRoVG9CbHVyUmF0aW9CaWFzLnZhbHVlO1xuXHR9XG5cdHNldCBkZXB0aFRvQmx1clJhdGlvQmlhcyh2OiBudW1iZXIpIHtcblx0XHR0aGlzLl9kZXB0aFRvQmx1clJhdGlvQmlhcy52YWx1ZSA9IHY7XG5cdH1cblx0Z2V0IGRpc3RvcnRpb24oKTogbnVtYmVyIHtcblx0XHRyZXR1cm4gdGhpcy5fZGlzdG9ydGlvbi52YWx1ZTtcblx0fVxuXHRzZXQgZGlzdG9ydGlvbih2OiBudW1iZXIpIHtcblx0XHR0aGlzLl9kaXN0b3J0aW9uLnZhbHVlID0gdjtcblx0fVxuXHRnZXQgbWl4Q29udHJhc3QoKTogbnVtYmVyIHtcblx0XHRyZXR1cm4gdGhpcy5fbWl4Q29udHJhc3QudmFsdWU7XG5cdH1cblx0c2V0IG1peENvbnRyYXN0KHY6IG51bWJlcikge1xuXHRcdHRoaXMuX21peENvbnRyYXN0LnZhbHVlID0gdjtcblx0fVxufVxuIl19
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// Author: N8Programs
|
|
2
2
|
// https://github.com/N8python/diamonds
|
|
3
|
+
import { revision } from 'angular-three-soba/utils';
|
|
3
4
|
import * as THREE from 'three';
|
|
4
5
|
// @ts-expect-error: shaderIntersectFunction is available but typescript complains
|
|
5
6
|
import { MeshBVHUniformStruct, shaderIntersectFunction, shaderStructs } from 'three-mesh-bvh';
|
|
@@ -165,6 +166,6 @@ export const MeshRefractionMaterial = shaderMaterial({
|
|
|
165
166
|
float nFresnel = fresnelFunc(viewDirection, normal) * fresnel;
|
|
166
167
|
gl_FragColor = vec4(mix(finalColor, vec3(1.0), nFresnel), 1.0);
|
|
167
168
|
#include <tonemapping_fragment>
|
|
168
|
-
#include
|
|
169
|
+
#include <${revision >= 154 ? 'colorspace_fragment' : 'encodings_fragment'}>
|
|
169
170
|
}`);
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC1yZWZyYWN0aW9uLW1hdGVyaWFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3NoYWRlcnMvc3JjL21lc2gtcmVmcmFjdGlvbi1tYXRlcmlhbC9tZXNoLXJlZnJhY3Rpb24tbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCO0FBQ3JCLHVDQUF1QztBQUV2QyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixrRkFBa0Y7QUFDbEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVwRSxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxjQUFjLENBQ2hEO0lBQ0ksTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsQ0FBQztJQUNWLEdBQUcsRUFBRSxHQUFHO0lBQ1IsV0FBVyxFQUFFLElBQUk7SUFDakIsa0JBQWtCLEVBQUUsSUFBSTtJQUN4QixPQUFPLEVBQUUsQ0FBQztJQUNWLDBDQUEwQztJQUMxQyxHQUFHLEVBQUUsSUFBSSxvQkFBb0IsRUFBRTtJQUMvQixLQUFLLEVBQUUsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUMvQixVQUFVLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO0lBQy9CLGlCQUFpQixFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtJQUN0Qyx1QkFBdUIsRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7Q0FDL0M7QUFDRCxRQUFRLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBZ0NUO0FBQ0EsUUFBUSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBbUJULGFBQWE7SUFDYix1QkFBdUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBK0Z2QixDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBdXRob3I6IE44UHJvZ3JhbXNcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9OOHB5dGhvbi9kaWFtb25kc1xuXG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG4vLyBAdHMtZXhwZWN0LWVycm9yOiBzaGFkZXJJbnRlcnNlY3RGdW5jdGlvbiBpcyBhdmFpbGFibGUgYnV0IHR5cGVzY3JpcHQgY29tcGxhaW5zXG5pbXBvcnQgeyBNZXNoQlZIVW5pZm9ybVN0cnVjdCwgc2hhZGVySW50ZXJzZWN0RnVuY3Rpb24sIHNoYWRlclN0cnVjdHMgfSBmcm9tICd0aHJlZS1tZXNoLWJ2aCc7XG5pbXBvcnQgeyBzaGFkZXJNYXRlcmlhbCB9IGZyb20gJy4uL3NoYWRlci1tYXRlcmlhbC9zaGFkZXItbWF0ZXJpYWwnO1xuXG5leHBvcnQgY29uc3QgTWVzaFJlZnJhY3Rpb25NYXRlcmlhbCA9IHNoYWRlck1hdGVyaWFsKFxuICAgIHtcbiAgICAgICAgZW52TWFwOiBudWxsLFxuICAgICAgICBib3VuY2VzOiAzLFxuICAgICAgICBpb3I6IDIuNCxcbiAgICAgICAgY29ycmVjdE1pcHM6IHRydWUsXG4gICAgICAgIGFiZXJyYXRpb25TdHJlbmd0aDogMC4wMSxcbiAgICAgICAgZnJlc25lbDogMCxcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogdHlwaW5nIGlzIG5vdCBtYXRjaGVkXG4gICAgICAgIGJ2aDogbmV3IE1lc2hCVkhVbmlmb3JtU3RydWN0KCksXG4gICAgICAgIGNvbG9yOiBuZXcgVEhSRUUuQ29sb3IoJ3doaXRlJyksXG4gICAgICAgIHJlc29sdXRpb246IG5ldyBUSFJFRS5WZWN0b3IyKCksXG4gICAgICAgIHZpZXdNYXRyaXhJbnZlcnNlOiBuZXcgVEhSRUUuTWF0cml4NCgpLFxuICAgICAgICBwcm9qZWN0aW9uTWF0cml4SW52ZXJzZTogbmV3IFRIUkVFLk1hdHJpeDQoKSxcbiAgICB9LFxuICAgIC8qZ2xzbCovIGBcbiAgdW5pZm9ybSBtYXQ0IHZpZXdNYXRyaXhJbnZlcnNlO1xuXG4gIHZhcnlpbmcgdmVjMyB2V29ybGRQb3NpdGlvbjtcbiAgdmFyeWluZyB2ZWMzIHZOb3JtYWw7XG4gIHZhcnlpbmcgbWF0NCB2TW9kZWxNYXRyaXhJbnZlcnNlO1xuXG4gICNpZmRlZiBVU0VfSU5TVEFOQ0lOR19DT0xPUlxuICAgIHZhcnlpbmcgdmVjMyB2SW5zdGFuY2VDb2xvcjtcbiAgI2VuZGlmXG5cbiAgdm9pZCBtYWluKCkge1xuICAgIHZlYzQgdHJhbnNmb3JtZWROb3JtYWwgPSB2ZWM0KG5vcm1hbCwgMC4wKTtcbiAgICB2ZWM0IHRyYW5zZm9ybWVkUG9zaXRpb24gPSB2ZWM0KHBvc2l0aW9uLCAxLjApO1xuICAgICNpZmRlZiBVU0VfSU5TVEFOQ0lOR1xuICAgICAgdHJhbnNmb3JtZWROb3JtYWwgPSBpbnN0YW5jZU1hdHJpeCAqIHRyYW5zZm9ybWVkTm9ybWFsO1xuICAgICAgdHJhbnNmb3JtZWRQb3NpdGlvbiA9IGluc3RhbmNlTWF0cml4ICogdHJhbnNmb3JtZWRQb3NpdGlvbjtcbiAgICAjZW5kaWZcblxuICAgICNpZmRlZiBVU0VfSU5TVEFOQ0lOR1xuICAgICAgdk1vZGVsTWF0cml4SW52ZXJzZSA9IGludmVyc2UobW9kZWxNYXRyaXggKiBpbnN0YW5jZU1hdHJpeCk7XG4gICAgI2Vsc2VcbiAgICAgIHZNb2RlbE1hdHJpeEludmVyc2UgPSBpbnZlcnNlKG1vZGVsTWF0cml4KTtcbiAgICAjZW5kaWZcblxuICAgICNpZmRlZiBVU0VfSU5TVEFOQ0lOR19DT0xPUlxuICAgICAgdkluc3RhbmNlQ29sb3IgPSBpbnN0YW5jZUNvbG9yLnJnYjtcbiAgICAjZW5kaWZcblxuICAgIHZXb3JsZFBvc2l0aW9uID0gKG1vZGVsTWF0cml4ICogdHJhbnNmb3JtZWRQb3NpdGlvbikueHl6O1xuICAgIHZOb3JtYWwgPSBub3JtYWxpemUoKHZpZXdNYXRyaXhJbnZlcnNlICogdmVjNChub3JtYWxNYXRyaXggKiB0cmFuc2Zvcm1lZE5vcm1hbC54eXosIDAuMCkpLnh5eik7XG4gICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogdmlld01hdHJpeCAqIG1vZGVsTWF0cml4ICogdHJhbnNmb3JtZWRQb3NpdGlvbjtcbiAgfWAsXG4gICAgLypnbHNsKi8gYFxuICAjZGVmaW5lIEVOVk1BUF9UWVBFX0NVQkVfVVZcbiAgcHJlY2lzaW9uIGhpZ2hwIGlzYW1wbGVyMkQ7XG4gIHByZWNpc2lvbiBoaWdocCB1c2FtcGxlcjJEO1xuICB2YXJ5aW5nIHZlYzMgdldvcmxkUG9zaXRpb247XG4gIHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuICB2YXJ5aW5nIG1hdDQgdk1vZGVsTWF0cml4SW52ZXJzZTtcblxuICAjaWZkZWYgVVNFX0lOU1RBTkNJTkdfQ09MT1JcbiAgICB2YXJ5aW5nIHZlYzMgdkluc3RhbmNlQ29sb3I7XG4gICNlbmRpZlxuXG4gICNpZmRlZiBFTlZNQVBfVFlQRV9DVUJFTVxuICAgIHVuaWZvcm0gc2FtcGxlckN1YmUgZW52TWFwO1xuICAjZWxzZVxuICAgIHVuaWZvcm0gc2FtcGxlcjJEIGVudk1hcDtcbiAgI2VuZGlmXG5cbiAgdW5pZm9ybSBmbG9hdCBib3VuY2VzO1xuICAke3NoYWRlclN0cnVjdHN9XG4gICR7c2hhZGVySW50ZXJzZWN0RnVuY3Rpb259XG4gIHVuaWZvcm0gQlZIIGJ2aDtcbiAgdW5pZm9ybSBmbG9hdCBpb3I7XG4gIHVuaWZvcm0gYm9vbCBjb3JyZWN0TWlwcztcbiAgdW5pZm9ybSB2ZWMyIHJlc29sdXRpb247XG4gIHVuaWZvcm0gZmxvYXQgZnJlc25lbDtcbiAgdW5pZm9ybSBtYXQ0IG1vZGVsTWF0cml4O1xuICB1bmlmb3JtIG1hdDQgcHJvamVjdGlvbk1hdHJpeEludmVyc2U7XG4gIHVuaWZvcm0gbWF0NCB2aWV3TWF0cml4SW52ZXJzZTtcbiAgdW5pZm9ybSBmbG9hdCBhYmVycmF0aW9uU3RyZW5ndGg7XG4gIHVuaWZvcm0gdmVjMyBjb2xvcjtcblxuICBmbG9hdCBmcmVzbmVsRnVuYyh2ZWMzIHZpZXdEaXJlY3Rpb24sIHZlYzMgd29ybGROb3JtYWwpIHtcbiAgICByZXR1cm4gcG93KCAxLjAgKyBkb3QoIHZpZXdEaXJlY3Rpb24sIHdvcmxkTm9ybWFsKSwgMTAuMCApO1xuICB9XG5cbiAgdmVjMyB0b3RhbEludGVybmFsUmVmbGVjdGlvbih2ZWMzIHJvLCB2ZWMzIHJkLCB2ZWMzIG5vcm1hbCwgZmxvYXQgaW9yLCBtYXQ0IG1vZGVsTWF0cml4SW52ZXJzZSkge1xuICAgIHZlYzMgcmF5T3JpZ2luID0gcm87XG4gICAgdmVjMyByYXlEaXJlY3Rpb24gPSByZDtcbiAgICByYXlEaXJlY3Rpb24gPSByZWZyYWN0KHJheURpcmVjdGlvbiwgbm9ybWFsLCAxLjAgLyBpb3IpO1xuICAgIHJheU9yaWdpbiA9IHZXb3JsZFBvc2l0aW9uICsgcmF5RGlyZWN0aW9uICogMC4wMDE7XG4gICAgcmF5T3JpZ2luID0gKG1vZGVsTWF0cml4SW52ZXJzZSAqIHZlYzQocmF5T3JpZ2luLCAxLjApKS54eXo7XG4gICAgcmF5RGlyZWN0aW9uID0gbm9ybWFsaXplKChtb2RlbE1hdHJpeEludmVyc2UgKiB2ZWM0KHJheURpcmVjdGlvbiwgMC4wKSkueHl6KTtcbiAgICBmb3IoZmxvYXQgaSA9IDAuMDsgaSA8IGJvdW5jZXM7IGkrKykge1xuICAgICAgdXZlYzQgZmFjZUluZGljZXMgPSB1dmVjNCggMHUgKTtcbiAgICAgIHZlYzMgZmFjZU5vcm1hbCA9IHZlYzMoIDAuMCwgMC4wLCAxLjAgKTtcbiAgICAgIHZlYzMgYmFyeWNvb3JkID0gdmVjMyggMC4wICk7XG4gICAgICBmbG9hdCBzaWRlID0gMS4wO1xuICAgICAgZmxvYXQgZGlzdCA9IDAuMDtcbiAgICAgIGJ2aEludGVyc2VjdEZpcnN0SGl0KCBidmgsIHJheU9yaWdpbiwgcmF5RGlyZWN0aW9uLCBmYWNlSW5kaWNlcywgZmFjZU5vcm1hbCwgYmFyeWNvb3JkLCBzaWRlLCBkaXN0ICk7XG4gICAgICB2ZWMzIGhpdFBvcyA9IHJheU9yaWdpbiArIHJheURpcmVjdGlvbiAqIG1heChkaXN0IC0gMC4wMDEsIDAuMCk7XG4gICAgICB2ZWMzIHRlbXBEaXIgPSByZWZyYWN0KHJheURpcmVjdGlvbiwgZmFjZU5vcm1hbCwgaW9yKTtcbiAgICAgIGlmIChsZW5ndGgodGVtcERpcikgIT0gMC4wKSB7XG4gICAgICAgIHJheURpcmVjdGlvbiA9IHRlbXBEaXI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcmF5RGlyZWN0aW9uID0gcmVmbGVjdChyYXlEaXJlY3Rpb24sIGZhY2VOb3JtYWwpO1xuICAgICAgcmF5T3JpZ2luID0gaGl0UG9zICsgcmF5RGlyZWN0aW9uICogMC4wMTtcbiAgICB9XG4gICAgcmF5RGlyZWN0aW9uID0gbm9ybWFsaXplKChtb2RlbE1hdHJpeCAqIHZlYzQocmF5RGlyZWN0aW9uLCAwLjApKS54eXopO1xuICAgIHJldHVybiByYXlEaXJlY3Rpb247XG4gIH1cblxuICAjaW5jbHVkZSA8Y29tbW9uPlxuICAjaW5jbHVkZSA8Y3ViZV91dl9yZWZsZWN0aW9uX2ZyYWdtZW50PlxuXG4gICNpZmRlZiBFTlZNQVBfVFlQRV9DVUJFTVxuICAgIHZlYzQgdGV4dHVyZUdyYWRpZW50KHNhbXBsZXJDdWJlIGVudk1hcCwgdmVjMyByYXlEaXJlY3Rpb24sIHZlYzMgZGlyZWN0aW9uQ2FtUGVyZmVjdCkge1xuICAgICAgcmV0dXJuIHRleHR1cmVHcmFkKGVudk1hcCwgcmF5RGlyZWN0aW9uLCBkRmR4KGNvcnJlY3RNaXBzID8gZGlyZWN0aW9uQ2FtUGVyZmVjdDogcmF5RGlyZWN0aW9uKSwgZEZkeShjb3JyZWN0TWlwcyA/IGRpcmVjdGlvbkNhbVBlcmZlY3Q6IHJheURpcmVjdGlvbikpO1xuICAgIH1cbiAgI2Vsc2VcbiAgICB2ZWM0IHRleHR1cmVHcmFkaWVudChzYW1wbGVyMkQgZW52TWFwLCB2ZWMzIHJheURpcmVjdGlvbiwgdmVjMyBkaXJlY3Rpb25DYW1QZXJmZWN0KSB7XG4gICAgICB2ZWMyIHV2diA9IGVxdWlyZWN0VXYoIHJheURpcmVjdGlvbiApO1xuICAgICAgdmVjMiBzbW9vdGhVdiA9IGVxdWlyZWN0VXYoIGRpcmVjdGlvbkNhbVBlcmZlY3QgKTtcbiAgICAgIHJldHVybiB0ZXh0dXJlR3JhZChlbnZNYXAsIHV2diwgZEZkeChjb3JyZWN0TWlwcyA/IHNtb290aFV2IDogdXZ2KSwgZEZkeShjb3JyZWN0TWlwcyA/IHNtb290aFV2IDogdXZ2KSk7XG4gICAgfVxuICAjZW5kaWZcblxuICB2b2lkIG1haW4oKSB7XG4gICAgdmVjMiB1diA9IGdsX0ZyYWdDb29yZC54eSAvIHJlc29sdXRpb247XG4gICAgdmVjMyBkaXJlY3Rpb25DYW1QZXJmZWN0ID0gKHByb2plY3Rpb25NYXRyaXhJbnZlcnNlICogdmVjNCh1diAqIDIuMCAtIDEuMCwgMC4wLCAxLjApKS54eXo7XG4gICAgZGlyZWN0aW9uQ2FtUGVyZmVjdCA9ICh2aWV3TWF0cml4SW52ZXJzZSAqIHZlYzQoZGlyZWN0aW9uQ2FtUGVyZmVjdCwgMC4wKSkueHl6O1xuICAgIGRpcmVjdGlvbkNhbVBlcmZlY3QgPSBub3JtYWxpemUoZGlyZWN0aW9uQ2FtUGVyZmVjdCk7XG4gICAgdmVjMyBub3JtYWwgPSB2Tm9ybWFsO1xuICAgIHZlYzMgcmF5T3JpZ2luID0gY2FtZXJhUG9zaXRpb247XG4gICAgdmVjMyByYXlEaXJlY3Rpb24gPSBub3JtYWxpemUodldvcmxkUG9zaXRpb24gLSBjYW1lcmFQb3NpdGlvbik7XG4gICAgdmVjMyBmaW5hbENvbG9yO1xuICAgICNpZmRlZiBDSFJPTUFUSUNfQUJFUlJBVElPTlNcbiAgICAgIHZlYzMgcmF5RGlyZWN0aW9uRyA9IHRvdGFsSW50ZXJuYWxSZWZsZWN0aW9uKHJheU9yaWdpbiwgcmF5RGlyZWN0aW9uLCBub3JtYWwsIG1heChpb3IsIDEuMCksIHZNb2RlbE1hdHJpeEludmVyc2UpO1xuICAgICAgI2lmZGVmIEZBU1RfQ0hST01BXG4gICAgICAgIHZlYzMgcmF5RGlyZWN0aW9uUiA9IG5vcm1hbGl6ZShyYXlEaXJlY3Rpb25HICsgMS4wICogdmVjMyhhYmVycmF0aW9uU3RyZW5ndGggLyAyLjApKTtcbiAgICAgICAgdmVjMyByYXlEaXJlY3Rpb25CID0gbm9ybWFsaXplKHJheURpcmVjdGlvbkcgLSAxLjAgKiB2ZWMzKGFiZXJyYXRpb25TdHJlbmd0aCAvIDIuMCkpO1xuICAgICAgI2Vsc2VcbiAgICAgICAgdmVjMyByYXlEaXJlY3Rpb25SID0gdG90YWxJbnRlcm5hbFJlZmxlY3Rpb24ocmF5T3JpZ2luLCByYXlEaXJlY3Rpb24sIG5vcm1hbCwgbWF4KGlvciAqICgxLjAgLSBhYmVycmF0aW9uU3RyZW5ndGgpLCAxLjApLCB2TW9kZWxNYXRyaXhJbnZlcnNlKTtcbiAgICAgICAgdmVjMyByYXlEaXJlY3Rpb25CID0gdG90YWxJbnRlcm5hbFJlZmxlY3Rpb24ocmF5T3JpZ2luLCByYXlEaXJlY3Rpb24sIG5vcm1hbCwgbWF4KGlvciAqICgxLjAgKyBhYmVycmF0aW9uU3RyZW5ndGgpLCAxLjApLCB2TW9kZWxNYXRyaXhJbnZlcnNlKTtcbiAgICAgICNlbmRpZlxuICAgICAgZmxvYXQgZmluYWxDb2xvclIgPSB0ZXh0dXJlR3JhZGllbnQoZW52TWFwLCByYXlEaXJlY3Rpb25SLCBkaXJlY3Rpb25DYW1QZXJmZWN0KS5yO1xuICAgICAgZmxvYXQgZmluYWxDb2xvckcgPSB0ZXh0dXJlR3JhZGllbnQoZW52TWFwLCByYXlEaXJlY3Rpb25HLCBkaXJlY3Rpb25DYW1QZXJmZWN0KS5nO1xuICAgICAgZmxvYXQgZmluYWxDb2xvckIgPSB0ZXh0dXJlR3JhZGllbnQoZW52TWFwLCByYXlEaXJlY3Rpb25CLCBkaXJlY3Rpb25DYW1QZXJmZWN0KS5iO1xuICAgICAgZmluYWxDb2xvciA9IHZlYzMoZmluYWxDb2xvclIsIGZpbmFsQ29sb3JHLCBmaW5hbENvbG9yQik7XG4gICAgI2Vsc2VcbiAgICAgIHJheURpcmVjdGlvbiA9IHRvdGFsSW50ZXJuYWxSZWZsZWN0aW9uKHJheU9yaWdpbiwgcmF5RGlyZWN0aW9uLCBub3JtYWwsIG1heChpb3IsIDEuMCksIHZNb2RlbE1hdHJpeEludmVyc2UpO1xuICAgICAgZmluYWxDb2xvciA9IHRleHR1cmVHcmFkaWVudChlbnZNYXAsIHJheURpcmVjdGlvbiwgZGlyZWN0aW9uQ2FtUGVyZmVjdCkucmdiO1xuICAgICNlbmRpZlxuXG4gICAgZmluYWxDb2xvciAqPSBjb2xvcjtcbiAgICAjaWZkZWYgVVNFX0lOU1RBTkNJTkdfQ09MT1JcbiAgICAgIGZpbmFsQ29sb3IgKj0gdkluc3RhbmNlQ29sb3I7XG4gICAgI2VuZGlmXG5cbiAgICB2ZWMzIHZpZXdEaXJlY3Rpb24gPSBub3JtYWxpemUodldvcmxkUG9zaXRpb24gLSBjYW1lcmFQb3NpdGlvbik7XG4gICAgZmxvYXQgbkZyZXNuZWwgPSBmcmVzbmVsRnVuYyh2aWV3RGlyZWN0aW9uLCBub3JtYWwpICogZnJlc25lbDtcbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KG1peChmaW5hbENvbG9yLCB2ZWMzKDEuMCksIG5GcmVzbmVsKSwgMS4wKTtcbiAgICAjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG4gICAgI2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cbiAgfWBcbik7XG4iXX0=
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC1yZWZyYWN0aW9uLW1hdGVyaWFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3NoYWRlcnMvc3JjL21lc2gtcmVmcmFjdGlvbi1tYXRlcmlhbC9tZXNoLXJlZnJhY3Rpb24tbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCO0FBQ3JCLHVDQUF1QztBQUV2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0Isa0ZBQWtGO0FBQ2xGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFcEUsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsY0FBYyxDQUNuRDtJQUNDLE1BQU0sRUFBRSxJQUFJO0lBQ1osT0FBTyxFQUFFLENBQUM7SUFDVixHQUFHLEVBQUUsR0FBRztJQUNSLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGtCQUFrQixFQUFFLElBQUk7SUFDeEIsT0FBTyxFQUFFLENBQUM7SUFDViwwQ0FBMEM7SUFDMUMsR0FBRyxFQUFFLElBQUksb0JBQW9CLEVBQUU7SUFDL0IsS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7SUFDL0IsVUFBVSxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtJQUMvQixpQkFBaUIsRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7SUFDdEMsdUJBQXVCLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO0NBQzVDO0FBQ0QsUUFBUSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQWdDTjtBQUNILFFBQVEsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQW1CTixhQUFhO0lBQ2IsdUJBQXVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2dCQThGWCxRQUFRLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsb0JBQW9CO0lBQzFFLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEF1dGhvcjogTjhQcm9ncmFtc1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL044cHl0aG9uL2RpYW1vbmRzXG5cbmltcG9ydCB7IHJldmlzaW9uIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL3V0aWxzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbi8vIEB0cy1leHBlY3QtZXJyb3I6IHNoYWRlckludGVyc2VjdEZ1bmN0aW9uIGlzIGF2YWlsYWJsZSBidXQgdHlwZXNjcmlwdCBjb21wbGFpbnNcbmltcG9ydCB7IE1lc2hCVkhVbmlmb3JtU3RydWN0LCBzaGFkZXJJbnRlcnNlY3RGdW5jdGlvbiwgc2hhZGVyU3RydWN0cyB9IGZyb20gJ3RocmVlLW1lc2gtYnZoJztcbmltcG9ydCB7IHNoYWRlck1hdGVyaWFsIH0gZnJvbSAnLi4vc2hhZGVyLW1hdGVyaWFsL3NoYWRlci1tYXRlcmlhbCc7XG5cbmV4cG9ydCBjb25zdCBNZXNoUmVmcmFjdGlvbk1hdGVyaWFsID0gc2hhZGVyTWF0ZXJpYWwoXG5cdHtcblx0XHRlbnZNYXA6IG51bGwsXG5cdFx0Ym91bmNlczogMyxcblx0XHRpb3I6IDIuNCxcblx0XHRjb3JyZWN0TWlwczogdHJ1ZSxcblx0XHRhYmVycmF0aW9uU3RyZW5ndGg6IDAuMDEsXG5cdFx0ZnJlc25lbDogMCxcblx0XHQvLyBAdHMtZXhwZWN0LWVycm9yOiB0eXBpbmcgaXMgbm90IG1hdGNoZWRcblx0XHRidmg6IG5ldyBNZXNoQlZIVW5pZm9ybVN0cnVjdCgpLFxuXHRcdGNvbG9yOiBuZXcgVEhSRUUuQ29sb3IoJ3doaXRlJyksXG5cdFx0cmVzb2x1dGlvbjogbmV3IFRIUkVFLlZlY3RvcjIoKSxcblx0XHR2aWV3TWF0cml4SW52ZXJzZTogbmV3IFRIUkVFLk1hdHJpeDQoKSxcblx0XHRwcm9qZWN0aW9uTWF0cml4SW52ZXJzZTogbmV3IFRIUkVFLk1hdHJpeDQoKSxcblx0fSxcblx0LypnbHNsKi8gYFxuICB1bmlmb3JtIG1hdDQgdmlld01hdHJpeEludmVyc2U7XG5cbiAgdmFyeWluZyB2ZWMzIHZXb3JsZFBvc2l0aW9uO1xuICB2YXJ5aW5nIHZlYzMgdk5vcm1hbDtcbiAgdmFyeWluZyBtYXQ0IHZNb2RlbE1hdHJpeEludmVyc2U7XG5cbiAgI2lmZGVmIFVTRV9JTlNUQU5DSU5HX0NPTE9SXG4gICAgdmFyeWluZyB2ZWMzIHZJbnN0YW5jZUNvbG9yO1xuICAjZW5kaWZcblxuICB2b2lkIG1haW4oKSB7XG4gICAgdmVjNCB0cmFuc2Zvcm1lZE5vcm1hbCA9IHZlYzQobm9ybWFsLCAwLjApO1xuICAgIHZlYzQgdHJhbnNmb3JtZWRQb3NpdGlvbiA9IHZlYzQocG9zaXRpb24sIDEuMCk7XG4gICAgI2lmZGVmIFVTRV9JTlNUQU5DSU5HXG4gICAgICB0cmFuc2Zvcm1lZE5vcm1hbCA9IGluc3RhbmNlTWF0cml4ICogdHJhbnNmb3JtZWROb3JtYWw7XG4gICAgICB0cmFuc2Zvcm1lZFBvc2l0aW9uID0gaW5zdGFuY2VNYXRyaXggKiB0cmFuc2Zvcm1lZFBvc2l0aW9uO1xuICAgICNlbmRpZlxuXG4gICAgI2lmZGVmIFVTRV9JTlNUQU5DSU5HXG4gICAgICB2TW9kZWxNYXRyaXhJbnZlcnNlID0gaW52ZXJzZShtb2RlbE1hdHJpeCAqIGluc3RhbmNlTWF0cml4KTtcbiAgICAjZWxzZVxuICAgICAgdk1vZGVsTWF0cml4SW52ZXJzZSA9IGludmVyc2UobW9kZWxNYXRyaXgpO1xuICAgICNlbmRpZlxuXG4gICAgI2lmZGVmIFVTRV9JTlNUQU5DSU5HX0NPTE9SXG4gICAgICB2SW5zdGFuY2VDb2xvciA9IGluc3RhbmNlQ29sb3IucmdiO1xuICAgICNlbmRpZlxuXG4gICAgdldvcmxkUG9zaXRpb24gPSAobW9kZWxNYXRyaXggKiB0cmFuc2Zvcm1lZFBvc2l0aW9uKS54eXo7XG4gICAgdk5vcm1hbCA9IG5vcm1hbGl6ZSgodmlld01hdHJpeEludmVyc2UgKiB2ZWM0KG5vcm1hbE1hdHJpeCAqIHRyYW5zZm9ybWVkTm9ybWFsLnh5eiwgMC4wKSkueHl6KTtcbiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiB2aWV3TWF0cml4ICogbW9kZWxNYXRyaXggKiB0cmFuc2Zvcm1lZFBvc2l0aW9uO1xuICB9YCxcblx0LypnbHNsKi8gYFxuICAjZGVmaW5lIEVOVk1BUF9UWVBFX0NVQkVfVVZcbiAgcHJlY2lzaW9uIGhpZ2hwIGlzYW1wbGVyMkQ7XG4gIHByZWNpc2lvbiBoaWdocCB1c2FtcGxlcjJEO1xuICB2YXJ5aW5nIHZlYzMgdldvcmxkUG9zaXRpb247XG4gIHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuICB2YXJ5aW5nIG1hdDQgdk1vZGVsTWF0cml4SW52ZXJzZTtcblxuICAjaWZkZWYgVVNFX0lOU1RBTkNJTkdfQ09MT1JcbiAgICB2YXJ5aW5nIHZlYzMgdkluc3RhbmNlQ29sb3I7XG4gICNlbmRpZlxuXG4gICNpZmRlZiBFTlZNQVBfVFlQRV9DVUJFTVxuICAgIHVuaWZvcm0gc2FtcGxlckN1YmUgZW52TWFwO1xuICAjZWxzZVxuICAgIHVuaWZvcm0gc2FtcGxlcjJEIGVudk1hcDtcbiAgI2VuZGlmXG5cbiAgdW5pZm9ybSBmbG9hdCBib3VuY2VzO1xuICAke3NoYWRlclN0cnVjdHN9XG4gICR7c2hhZGVySW50ZXJzZWN0RnVuY3Rpb259XG4gIHVuaWZvcm0gQlZIIGJ2aDtcbiAgdW5pZm9ybSBmbG9hdCBpb3I7XG4gIHVuaWZvcm0gYm9vbCBjb3JyZWN0TWlwcztcbiAgdW5pZm9ybSB2ZWMyIHJlc29sdXRpb247XG4gIHVuaWZvcm0gZmxvYXQgZnJlc25lbDtcbiAgdW5pZm9ybSBtYXQ0IG1vZGVsTWF0cml4O1xuICB1bmlmb3JtIG1hdDQgcHJvamVjdGlvbk1hdHJpeEludmVyc2U7XG4gIHVuaWZvcm0gbWF0NCB2aWV3TWF0cml4SW52ZXJzZTtcbiAgdW5pZm9ybSBmbG9hdCBhYmVycmF0aW9uU3RyZW5ndGg7XG4gIHVuaWZvcm0gdmVjMyBjb2xvcjtcblxuICBmbG9hdCBmcmVzbmVsRnVuYyh2ZWMzIHZpZXdEaXJlY3Rpb24sIHZlYzMgd29ybGROb3JtYWwpIHtcbiAgICByZXR1cm4gcG93KCAxLjAgKyBkb3QoIHZpZXdEaXJlY3Rpb24sIHdvcmxkTm9ybWFsKSwgMTAuMCApO1xuICB9XG5cbiAgdmVjMyB0b3RhbEludGVybmFsUmVmbGVjdGlvbih2ZWMzIHJvLCB2ZWMzIHJkLCB2ZWMzIG5vcm1hbCwgZmxvYXQgaW9yLCBtYXQ0IG1vZGVsTWF0cml4SW52ZXJzZSkge1xuICAgIHZlYzMgcmF5T3JpZ2luID0gcm87XG4gICAgdmVjMyByYXlEaXJlY3Rpb24gPSByZDtcbiAgICByYXlEaXJlY3Rpb24gPSByZWZyYWN0KHJheURpcmVjdGlvbiwgbm9ybWFsLCAxLjAgLyBpb3IpO1xuICAgIHJheU9yaWdpbiA9IHZXb3JsZFBvc2l0aW9uICsgcmF5RGlyZWN0aW9uICogMC4wMDE7XG4gICAgcmF5T3JpZ2luID0gKG1vZGVsTWF0cml4SW52ZXJzZSAqIHZlYzQocmF5T3JpZ2luLCAxLjApKS54eXo7XG4gICAgcmF5RGlyZWN0aW9uID0gbm9ybWFsaXplKChtb2RlbE1hdHJpeEludmVyc2UgKiB2ZWM0KHJheURpcmVjdGlvbiwgMC4wKSkueHl6KTtcbiAgICBmb3IoZmxvYXQgaSA9IDAuMDsgaSA8IGJvdW5jZXM7IGkrKykge1xuICAgICAgdXZlYzQgZmFjZUluZGljZXMgPSB1dmVjNCggMHUgKTtcbiAgICAgIHZlYzMgZmFjZU5vcm1hbCA9IHZlYzMoIDAuMCwgMC4wLCAxLjAgKTtcbiAgICAgIHZlYzMgYmFyeWNvb3JkID0gdmVjMyggMC4wICk7XG4gICAgICBmbG9hdCBzaWRlID0gMS4wO1xuICAgICAgZmxvYXQgZGlzdCA9IDAuMDtcbiAgICAgIGJ2aEludGVyc2VjdEZpcnN0SGl0KCBidmgsIHJheU9yaWdpbiwgcmF5RGlyZWN0aW9uLCBmYWNlSW5kaWNlcywgZmFjZU5vcm1hbCwgYmFyeWNvb3JkLCBzaWRlLCBkaXN0ICk7XG4gICAgICB2ZWMzIGhpdFBvcyA9IHJheU9yaWdpbiArIHJheURpcmVjdGlvbiAqIG1heChkaXN0IC0gMC4wMDEsIDAuMCk7XG4gICAgICB2ZWMzIHRlbXBEaXIgPSByZWZyYWN0KHJheURpcmVjdGlvbiwgZmFjZU5vcm1hbCwgaW9yKTtcbiAgICAgIGlmIChsZW5ndGgodGVtcERpcikgIT0gMC4wKSB7XG4gICAgICAgIHJheURpcmVjdGlvbiA9IHRlbXBEaXI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcmF5RGlyZWN0aW9uID0gcmVmbGVjdChyYXlEaXJlY3Rpb24sIGZhY2VOb3JtYWwpO1xuICAgICAgcmF5T3JpZ2luID0gaGl0UG9zICsgcmF5RGlyZWN0aW9uICogMC4wMTtcbiAgICB9XG4gICAgcmF5RGlyZWN0aW9uID0gbm9ybWFsaXplKChtb2RlbE1hdHJpeCAqIHZlYzQocmF5RGlyZWN0aW9uLCAwLjApKS54eXopO1xuICAgIHJldHVybiByYXlEaXJlY3Rpb247XG4gIH1cblxuICAjaW5jbHVkZSA8Y29tbW9uPlxuICAjaW5jbHVkZSA8Y3ViZV91dl9yZWZsZWN0aW9uX2ZyYWdtZW50PlxuXG4gICNpZmRlZiBFTlZNQVBfVFlQRV9DVUJFTVxuICAgIHZlYzQgdGV4dHVyZUdyYWRpZW50KHNhbXBsZXJDdWJlIGVudk1hcCwgdmVjMyByYXlEaXJlY3Rpb24sIHZlYzMgZGlyZWN0aW9uQ2FtUGVyZmVjdCkge1xuICAgICAgcmV0dXJuIHRleHR1cmVHcmFkKGVudk1hcCwgcmF5RGlyZWN0aW9uLCBkRmR4KGNvcnJlY3RNaXBzID8gZGlyZWN0aW9uQ2FtUGVyZmVjdDogcmF5RGlyZWN0aW9uKSwgZEZkeShjb3JyZWN0TWlwcyA/IGRpcmVjdGlvbkNhbVBlcmZlY3Q6IHJheURpcmVjdGlvbikpO1xuICAgIH1cbiAgI2Vsc2VcbiAgICB2ZWM0IHRleHR1cmVHcmFkaWVudChzYW1wbGVyMkQgZW52TWFwLCB2ZWMzIHJheURpcmVjdGlvbiwgdmVjMyBkaXJlY3Rpb25DYW1QZXJmZWN0KSB7XG4gICAgICB2ZWMyIHV2diA9IGVxdWlyZWN0VXYoIHJheURpcmVjdGlvbiApO1xuICAgICAgdmVjMiBzbW9vdGhVdiA9IGVxdWlyZWN0VXYoIGRpcmVjdGlvbkNhbVBlcmZlY3QgKTtcbiAgICAgIHJldHVybiB0ZXh0dXJlR3JhZChlbnZNYXAsIHV2diwgZEZkeChjb3JyZWN0TWlwcyA/IHNtb290aFV2IDogdXZ2KSwgZEZkeShjb3JyZWN0TWlwcyA/IHNtb290aFV2IDogdXZ2KSk7XG4gICAgfVxuICAjZW5kaWZcblxuICB2b2lkIG1haW4oKSB7XG4gICAgdmVjMiB1diA9IGdsX0ZyYWdDb29yZC54eSAvIHJlc29sdXRpb247XG4gICAgdmVjMyBkaXJlY3Rpb25DYW1QZXJmZWN0ID0gKHByb2plY3Rpb25NYXRyaXhJbnZlcnNlICogdmVjNCh1diAqIDIuMCAtIDEuMCwgMC4wLCAxLjApKS54eXo7XG4gICAgZGlyZWN0aW9uQ2FtUGVyZmVjdCA9ICh2aWV3TWF0cml4SW52ZXJzZSAqIHZlYzQoZGlyZWN0aW9uQ2FtUGVyZmVjdCwgMC4wKSkueHl6O1xuICAgIGRpcmVjdGlvbkNhbVBlcmZlY3QgPSBub3JtYWxpemUoZGlyZWN0aW9uQ2FtUGVyZmVjdCk7XG4gICAgdmVjMyBub3JtYWwgPSB2Tm9ybWFsO1xuICAgIHZlYzMgcmF5T3JpZ2luID0gY2FtZXJhUG9zaXRpb247XG4gICAgdmVjMyByYXlEaXJlY3Rpb24gPSBub3JtYWxpemUodldvcmxkUG9zaXRpb24gLSBjYW1lcmFQb3NpdGlvbik7XG4gICAgdmVjMyBmaW5hbENvbG9yO1xuICAgICNpZmRlZiBDSFJPTUFUSUNfQUJFUlJBVElPTlNcbiAgICAgIHZlYzMgcmF5RGlyZWN0aW9uRyA9IHRvdGFsSW50ZXJuYWxSZWZsZWN0aW9uKHJheU9yaWdpbiwgcmF5RGlyZWN0aW9uLCBub3JtYWwsIG1heChpb3IsIDEuMCksIHZNb2RlbE1hdHJpeEludmVyc2UpO1xuICAgICAgI2lmZGVmIEZBU1RfQ0hST01BXG4gICAgICAgIHZlYzMgcmF5RGlyZWN0aW9uUiA9IG5vcm1hbGl6ZShyYXlEaXJlY3Rpb25HICsgMS4wICogdmVjMyhhYmVycmF0aW9uU3RyZW5ndGggLyAyLjApKTtcbiAgICAgICAgdmVjMyByYXlEaXJlY3Rpb25CID0gbm9ybWFsaXplKHJheURpcmVjdGlvbkcgLSAxLjAgKiB2ZWMzKGFiZXJyYXRpb25TdHJlbmd0aCAvIDIuMCkpO1xuICAgICAgI2Vsc2VcbiAgICAgICAgdmVjMyByYXlEaXJlY3Rpb25SID0gdG90YWxJbnRlcm5hbFJlZmxlY3Rpb24ocmF5T3JpZ2luLCByYXlEaXJlY3Rpb24sIG5vcm1hbCwgbWF4KGlvciAqICgxLjAgLSBhYmVycmF0aW9uU3RyZW5ndGgpLCAxLjApLCB2TW9kZWxNYXRyaXhJbnZlcnNlKTtcbiAgICAgICAgdmVjMyByYXlEaXJlY3Rpb25CID0gdG90YWxJbnRlcm5hbFJlZmxlY3Rpb24ocmF5T3JpZ2luLCByYXlEaXJlY3Rpb24sIG5vcm1hbCwgbWF4KGlvciAqICgxLjAgKyBhYmVycmF0aW9uU3RyZW5ndGgpLCAxLjApLCB2TW9kZWxNYXRyaXhJbnZlcnNlKTtcbiAgICAgICNlbmRpZlxuICAgICAgZmxvYXQgZmluYWxDb2xvclIgPSB0ZXh0dXJlR3JhZGllbnQoZW52TWFwLCByYXlEaXJlY3Rpb25SLCBkaXJlY3Rpb25DYW1QZXJmZWN0KS5yO1xuICAgICAgZmxvYXQgZmluYWxDb2xvckcgPSB0ZXh0dXJlR3JhZGllbnQoZW52TWFwLCByYXlEaXJlY3Rpb25HLCBkaXJlY3Rpb25DYW1QZXJmZWN0KS5nO1xuICAgICAgZmxvYXQgZmluYWxDb2xvckIgPSB0ZXh0dXJlR3JhZGllbnQoZW52TWFwLCByYXlEaXJlY3Rpb25CLCBkaXJlY3Rpb25DYW1QZXJmZWN0KS5iO1xuICAgICAgZmluYWxDb2xvciA9IHZlYzMoZmluYWxDb2xvclIsIGZpbmFsQ29sb3JHLCBmaW5hbENvbG9yQik7XG4gICAgI2Vsc2VcbiAgICAgIHJheURpcmVjdGlvbiA9IHRvdGFsSW50ZXJuYWxSZWZsZWN0aW9uKHJheU9yaWdpbiwgcmF5RGlyZWN0aW9uLCBub3JtYWwsIG1heChpb3IsIDEuMCksIHZNb2RlbE1hdHJpeEludmVyc2UpO1xuICAgICAgZmluYWxDb2xvciA9IHRleHR1cmVHcmFkaWVudChlbnZNYXAsIHJheURpcmVjdGlvbiwgZGlyZWN0aW9uQ2FtUGVyZmVjdCkucmdiO1xuICAgICNlbmRpZlxuXG4gICAgZmluYWxDb2xvciAqPSBjb2xvcjtcbiAgICAjaWZkZWYgVVNFX0lOU1RBTkNJTkdfQ09MT1JcbiAgICAgIGZpbmFsQ29sb3IgKj0gdkluc3RhbmNlQ29sb3I7XG4gICAgI2VuZGlmXG5cbiAgICB2ZWMzIHZpZXdEaXJlY3Rpb24gPSBub3JtYWxpemUodldvcmxkUG9zaXRpb24gLSBjYW1lcmFQb3NpdGlvbik7XG4gICAgZmxvYXQgbkZyZXNuZWwgPSBmcmVzbmVsRnVuYyh2aWV3RGlyZWN0aW9uLCBub3JtYWwpICogZnJlc25lbDtcbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KG1peChmaW5hbENvbG9yLCB2ZWMzKDEuMCksIG5GcmVzbmVsKSwgMS4wKTtcbiAgICAjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG4gICAgI2luY2x1ZGUgPCR7cmV2aXNpb24gPj0gMTU0ID8gJ2NvbG9yc3BhY2VfZnJhZ21lbnQnIDogJ2VuY29kaW5nc19mcmFnbWVudCd9PlxuICB9YCxcbik7XG4iXX0=
|
|
@@ -15,7 +15,7 @@ export class MeshTransmissionMaterial extends THREE.MeshPhysicalMaterial {
|
|
|
15
15
|
thicknessMap: { value: null },
|
|
16
16
|
attenuationDistance: { value: Infinity },
|
|
17
17
|
attenuationColor: { value: new THREE.Color('white') },
|
|
18
|
-
|
|
18
|
+
anisotropicBlur: { value: 0.1 },
|
|
19
19
|
time: { value: 0 },
|
|
20
20
|
distortion: { value: 0.0 },
|
|
21
21
|
distortionScale: { value: 0.5 },
|
|
@@ -27,6 +27,9 @@ export class MeshTransmissionMaterial extends THREE.MeshPhysicalMaterial {
|
|
|
27
27
|
...shader.uniforms,
|
|
28
28
|
...this.uniforms,
|
|
29
29
|
};
|
|
30
|
+
if (this.anisotropy && this.anisotropy > 0) {
|
|
31
|
+
shader.defines['USE_ANISOTROPY'] = '';
|
|
32
|
+
}
|
|
30
33
|
// If the transmission sampler is active inject a flag
|
|
31
34
|
if (transmissionSampler)
|
|
32
35
|
shader.defines['USE_SAMPLER'] = '';
|
|
@@ -38,7 +41,7 @@ export class MeshTransmissionMaterial extends THREE.MeshPhysicalMaterial {
|
|
|
38
41
|
shader.fragmentShader =
|
|
39
42
|
/*glsl*/ `
|
|
40
43
|
uniform float chromaticAberration;
|
|
41
|
-
uniform float
|
|
44
|
+
uniform float anisotropicBlur;
|
|
42
45
|
uniform float time;
|
|
43
46
|
uniform float distortion;
|
|
44
47
|
uniform float distortionScale;
|
|
@@ -229,7 +232,7 @@ export class MeshTransmissionMaterial extends THREE.MeshPhysicalMaterial {
|
|
|
229
232
|
vec3 transmission = vec3(0.0);
|
|
230
233
|
float transmissionR, transmissionB, transmissionG;
|
|
231
234
|
float randomCoords = rand();
|
|
232
|
-
float thickness_smear = thickness * max(pow(roughnessFactor, 0.33),
|
|
235
|
+
float thickness_smear = thickness * max(pow(roughnessFactor, 0.33), anisotropicBlur);
|
|
233
236
|
vec3 distortionNormal = vec3(0.0);
|
|
234
237
|
vec3 temporalOffset = vec3(time, -time, -time) * temporalDistortion;
|
|
235
238
|
if (distortion > 0.0) {
|
|
@@ -265,4 +268,4 @@ export class MeshTransmissionMaterial extends THREE.MeshPhysicalMaterial {
|
|
|
265
268
|
}));
|
|
266
269
|
}
|
|
267
270
|
}
|
|
268
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC10cmFuc21pc3Npb24tbWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc2hhZGVycy9zcmMvbWVzaC10cmFuc21pc3Npb24tbWF0ZXJpYWwvbWVzaC10cmFuc21pc3Npb24tbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFNL0IsTUFBTSxPQUFPLHdCQUF5QixTQUFRLEtBQUssQ0FBQyxvQkFBb0I7SUFtQnBFLFlBQVksT0FBTyxHQUFHLENBQUMsRUFBRSxtQkFBbUIsR0FBRyxLQUFLO1FBQ2hELEtBQUssRUFBRSxDQUFDO1FBRVIsSUFBSSxDQUFDLFFBQVEsR0FBRztZQUNaLG1CQUFtQixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNwQywwRUFBMEU7WUFDMUUsWUFBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUMxQiwwREFBMEQ7WUFDMUQsYUFBYSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUMzQixlQUFlLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2hDLG9HQUFvRztZQUNwRyxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1lBQ3ZCLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7WUFDdkIsWUFBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUM3QixtQkFBbUIsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDeEMsZ0JBQWdCLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3JELFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDMUIsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNsQixVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO1lBQzFCLGVBQWUsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDL0Isa0JBQWtCLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO1lBQ2xDLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7U0FDMUIsQ0FBQztRQUVGLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxNQUE2RCxFQUFFLEVBQUU7WUFDckYsTUFBTSxDQUFDLFFBQVEsR0FBRztnQkFDZCxHQUFHLE1BQU0sQ0FBQyxRQUFRO2dCQUNsQixHQUFHLElBQUksQ0FBQyxRQUFRO2FBQ25CLENBQUM7WUFFRixzREFBc0Q7WUFDdEQsSUFBSSxtQkFBbUI7Z0JBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDNUQsa0ZBQWtGO1lBQ2xGLHlDQUF5Qzs7Z0JBQ3BDLE1BQU0sQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLENBQUM7WUFFN0MsT0FBTztZQUNQLE1BQU0sQ0FBQyxjQUFjO2dCQUNqQixRQUFRLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7VUEyRmYsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDO1lBRXZCLHNCQUFzQjtZQUN0QixNQUFNLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUNqRCx1Q0FBdUM7WUFDdkMsUUFBUSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQTRFUixDQUNKLENBQUM7WUFFRixpQkFBaUI7WUFDakIsTUFBTSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FDakQsa0NBQWtDO1lBQ2xDLFFBQVEsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0NBMEJTLE9BQU87Ozs7K0lBSXNHLE9BQU87Ozs7O3NJQUtoQixPQUFPLDBFQUEwRSxPQUFPOzs7OzsySUFLbkYsT0FBTyx5RUFBeUUsT0FBTzs7Ozs7OzswQkFPeE0sT0FBTzt1RkFDc0QsQ0FDMUUsQ0FBQztRQUNOLENBQUMsQ0FBQztRQUVGLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ3hDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtZQUM5QixHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFrQyxDQUFDLENBQUMsS0FBSztZQUNsRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFrQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztTQUM1RSxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcblxuaW50ZXJmYWNlIFVuaWZvcm08VD4ge1xuICAgIHZhbHVlOiBUO1xufVxuXG5leHBvcnQgY2xhc3MgTWVzaFRyYW5zbWlzc2lvbk1hdGVyaWFsIGV4dGVuZHMgVEhSRUUuTWVzaFBoeXNpY2FsTWF0ZXJpYWwge1xuICAgIHVuaWZvcm1zOiB7XG4gICAgICAgIGNocm9tYXRpY0FiZXJyYXRpb246IFVuaWZvcm08bnVtYmVyPjtcbiAgICAgICAgdHJhbnNtaXNzaW9uOiBVbmlmb3JtPG51bWJlcj47XG4gICAgICAgIHRyYW5zbWlzc2lvbk1hcDogVW5pZm9ybTxUSFJFRS5UZXh0dXJlIHwgbnVsbD47XG4gICAgICAgIF90cmFuc21pc3Npb246IFVuaWZvcm08bnVtYmVyPjtcbiAgICAgICAgdGhpY2tuZXNzOiBVbmlmb3JtPG51bWJlcj47XG4gICAgICAgIHJvdWdobmVzczogVW5pZm9ybTxudW1iZXI+O1xuICAgICAgICB0aGlja25lc3NNYXA6IFVuaWZvcm08VEhSRUUuVGV4dHVyZSB8IG51bGw+O1xuICAgICAgICBhdHRlbnVhdGlvbkRpc3RhbmNlOiBVbmlmb3JtPG51bWJlcj47XG4gICAgICAgIGF0dGVudWF0aW9uQ29sb3I6IFVuaWZvcm08VEhSRUUuQ29sb3I+O1xuICAgICAgICBhbmlzb3Ryb3B5OiBVbmlmb3JtPG51bWJlcj47XG4gICAgICAgIHRpbWU6IFVuaWZvcm08bnVtYmVyPjtcbiAgICAgICAgZGlzdG9ydGlvbjogVW5pZm9ybTxudW1iZXI+O1xuICAgICAgICBkaXN0b3J0aW9uU2NhbGU6IFVuaWZvcm08bnVtYmVyPjtcbiAgICAgICAgdGVtcG9yYWxEaXN0b3J0aW9uOiBVbmlmb3JtPG51bWJlcj47XG4gICAgICAgIGJ1ZmZlcjogVW5pZm9ybTxUSFJFRS5UZXh0dXJlIHwgbnVsbD47XG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHNhbXBsZXMgPSA2LCB0cmFuc21pc3Npb25TYW1wbGVyID0gZmFsc2UpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLnVuaWZvcm1zID0ge1xuICAgICAgICAgICAgY2hyb21hdGljQWJlcnJhdGlvbjogeyB2YWx1ZTogMC4wNSB9LFxuICAgICAgICAgICAgLy8gVHJhbnNtaXNzaW9uIG11c3QgYWx3YXlzIGJlIDAsIHVubGVzcyB0cmFuc21pc3Npb25TYW1wbGVyIGlzIGJlaW5nIHVzZWRcbiAgICAgICAgICAgIHRyYW5zbWlzc2lvbjogeyB2YWx1ZTogMCB9LFxuICAgICAgICAgICAgLy8gSW5zdGVhZCBhIHdvcmthcm91bmQgaXMgdXNlZCwgc2VlIGJlbG93IGZvciByZWFzb25zIHdoeVxuICAgICAgICAgICAgX3RyYW5zbWlzc2lvbjogeyB2YWx1ZTogMSB9LFxuICAgICAgICAgICAgdHJhbnNtaXNzaW9uTWFwOiB7IHZhbHVlOiBudWxsIH0sXG4gICAgICAgICAgICAvLyBSb3VnaG5lc3MgaXMgMSBpbiBUSFJFRS5NZXNoUGh5c2ljYWxNYXRlcmlhbCBidXQgaXQgbWFrZXMgbGl0dGxlIHNlbnNlIGluIGEgdHJhbnNtaXNzaW9uIG1hdGVyaWFsXG4gICAgICAgICAgICByb3VnaG5lc3M6IHsgdmFsdWU6IDAgfSxcbiAgICAgICAgICAgIHRoaWNrbmVzczogeyB2YWx1ZTogMCB9LFxuICAgICAgICAgICAgdGhpY2tuZXNzTWFwOiB7IHZhbHVlOiBudWxsIH0sXG4gICAgICAgICAgICBhdHRlbnVhdGlvbkRpc3RhbmNlOiB7IHZhbHVlOiBJbmZpbml0eSB9LFxuICAgICAgICAgICAgYXR0ZW51YXRpb25Db2xvcjogeyB2YWx1ZTogbmV3IFRIUkVFLkNvbG9yKCd3aGl0ZScpIH0sXG4gICAgICAgICAgICBhbmlzb3Ryb3B5OiB7IHZhbHVlOiAwLjEgfSxcbiAgICAgICAgICAgIHRpbWU6IHsgdmFsdWU6IDAgfSxcbiAgICAgICAgICAgIGRpc3RvcnRpb246IHsgdmFsdWU6IDAuMCB9LFxuICAgICAgICAgICAgZGlzdG9ydGlvblNjYWxlOiB7IHZhbHVlOiAwLjUgfSxcbiAgICAgICAgICAgIHRlbXBvcmFsRGlzdG9ydGlvbjogeyB2YWx1ZTogMC4wIH0sXG4gICAgICAgICAgICBidWZmZXI6IHsgdmFsdWU6IG51bGwgfSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLm9uQmVmb3JlQ29tcGlsZSA9IChzaGFkZXI6IFRIUkVFLlNoYWRlciAmIHsgZGVmaW5lczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB9KSA9PiB7XG4gICAgICAgICAgICBzaGFkZXIudW5pZm9ybXMgPSB7XG4gICAgICAgICAgICAgICAgLi4uc2hhZGVyLnVuaWZvcm1zLFxuICAgICAgICAgICAgICAgIC4uLnRoaXMudW5pZm9ybXMsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAvLyBJZiB0aGUgdHJhbnNtaXNzaW9uIHNhbXBsZXIgaXMgYWN0aXZlIGluamVjdCBhIGZsYWdcbiAgICAgICAgICAgIGlmICh0cmFuc21pc3Npb25TYW1wbGVyKSBzaGFkZXIuZGVmaW5lc1snVVNFX1NBTVBMRVInXSA9ICcnO1xuICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIHdlIGRvIHVzZSB1c2UgLnRyYW5zbWlzc2lvbiBhbmQgbXVzdCB0aGVyZWZvcmUgZm9yY2UgVVNFX1RSQU5TTUlTU0lPTlxuICAgICAgICAgICAgLy8gYmVjYXVzZSB0aHJlZWpzIHdvbid0IGluamVjdCBpdCBmb3IgdXNcbiAgICAgICAgICAgIGVsc2Ugc2hhZGVyLmRlZmluZXNbJ1VTRV9UUkFOU01JU1NJT04nXSA9ICcnO1xuXG4gICAgICAgICAgICAvLyBIZWFkXG4gICAgICAgICAgICBzaGFkZXIuZnJhZ21lbnRTaGFkZXIgPVxuICAgICAgICAgICAgICAgIC8qZ2xzbCovIGBcbiAgICAgIHVuaWZvcm0gZmxvYXQgY2hyb21hdGljQWJlcnJhdGlvbjtcbiAgICAgIHVuaWZvcm0gZmxvYXQgYW5pc290cm9weTtcbiAgICAgIHVuaWZvcm0gZmxvYXQgdGltZTtcbiAgICAgIHVuaWZvcm0gZmxvYXQgZGlzdG9ydGlvbjtcbiAgICAgIHVuaWZvcm0gZmxvYXQgZGlzdG9ydGlvblNjYWxlO1xuICAgICAgdW5pZm9ybSBmbG9hdCB0ZW1wb3JhbERpc3RvcnRpb247XG4gICAgICB1bmlmb3JtIHNhbXBsZXIyRCBidWZmZXI7XG5cbiAgICAgIHZlYzMgcmFuZG9tMyh2ZWMzIGMpIHtcbiAgICAgICAgZmxvYXQgaiA9IDQwOTYuMCpzaW4oZG90KGMsdmVjMygxNy4wLCA1OS40LCAxNS4wKSkpO1xuICAgICAgICB2ZWMzIHI7XG4gICAgICAgIHIueiA9IGZyYWN0KDUxMi4wKmopO1xuICAgICAgICBqICo9IC4xMjU7XG4gICAgICAgIHIueCA9IGZyYWN0KDUxMi4wKmopO1xuICAgICAgICBqICo9IC4xMjU7XG4gICAgICAgIHIueSA9IGZyYWN0KDUxMi4wKmopO1xuICAgICAgICByZXR1cm4gci0wLjU7XG4gICAgICB9XG5cbiAgICAgIGZsb2F0IHNlZWQgPSAwLjA7XG4gICAgICB1aW50IGhhc2goIHVpbnQgeCApIHtcbiAgICAgICAgeCArPSAoIHggPDwgMTB1ICk7XG4gICAgICAgIHggXj0gKCB4ID4+ICA2dSApO1xuICAgICAgICB4ICs9ICggeCA8PCAgM3UgKTtcbiAgICAgICAgeCBePSAoIHggPj4gMTF1ICk7XG4gICAgICAgIHggKz0gKCB4IDw8IDE1dSApO1xuICAgICAgICByZXR1cm4geDtcbiAgICAgIH1cblxuICAgICAgLy8gQ29tcG91bmQgdmVyc2lvbnMgb2YgdGhlIGhhc2hpbmcgYWxnb3JpdGhtIEkgd2hpcHBlZCB0b2dldGhlci5cbiAgICAgIHVpbnQgaGFzaCggdXZlYzIgdiApIHsgcmV0dXJuIGhhc2goIHYueCBeIGhhc2godi55KSAgICAgICAgICAgICAgICAgICAgICAgICApOyB9XG4gICAgICB1aW50IGhhc2goIHV2ZWMzIHYgKSB7IHJldHVybiBoYXNoKCB2LnggXiBoYXNoKHYueSkgXiBoYXNoKHYueikgICAgICAgICAgICAgKTsgfVxuICAgICAgdWludCBoYXNoKCB1dmVjNCB2ICkgeyByZXR1cm4gaGFzaCggdi54IF4gaGFzaCh2LnkpIF4gaGFzaCh2LnopIF4gaGFzaCh2LncpICk7IH1cblxuICAgICAgLy8gQ29uc3RydWN0IGEgZmxvYXQgd2l0aCBoYWxmLW9wZW4gcmFuZ2UgWzA6MV0gdXNpbmcgbG93IDIzIGJpdHMuXG4gICAgICAvLyBBbGwgemVyb2VzIHlpZWxkcyAwLjAsIGFsbCBvbmVzIHlpZWxkcyB0aGUgbmV4dCBzbWFsbGVzdCByZXByZXNlbnRhYmxlIHZhbHVlIGJlbG93IDEuMC5cbiAgICAgIGZsb2F0IGZsb2F0Q29uc3RydWN0KCB1aW50IG0gKSB7XG4gICAgICAgIGNvbnN0IHVpbnQgaWVlZU1hbnRpc3NhID0gMHgwMDdGRkZGRnU7IC8vIGJpbmFyeTMyIG1hbnRpc3NhIGJpdG1hc2tcbiAgICAgICAgY29uc3QgdWludCBpZWVlT25lICAgICAgPSAweDNGODAwMDAwdTsgLy8gMS4wIGluIElFRUUgYmluYXJ5MzJcbiAgICAgICAgbSAmPSBpZWVlTWFudGlzc2E7ICAgICAgICAgICAgICAgICAgICAgLy8gS2VlcCBvbmx5IG1hbnRpc3NhIGJpdHMgKGZyYWN0aW9uYWwgcGFydClcbiAgICAgICAgbSB8PSBpZWVlT25lOyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWRkIGZyYWN0aW9uYWwgcGFydCB0byAxLjBcbiAgICAgICAgZmxvYXQgIGYgPSB1aW50Qml0c1RvRmxvYXQoIG0gKTsgICAgICAgLy8gUmFuZ2UgWzE6Ml1cbiAgICAgICAgcmV0dXJuIGYgLSAxLjA7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmFuZ2UgWzA6MV1cbiAgICAgIH1cblxuICAgICAgLy8gUHNldWRvLXJhbmRvbSB2YWx1ZSBpbiBoYWxmLW9wZW4gcmFuZ2UgWzA6MV0uXG4gICAgICBmbG9hdCByYW5kb20oIGZsb2F0IHggKSB7IHJldHVybiBmbG9hdENvbnN0cnVjdChoYXNoKGZsb2F0Qml0c1RvVWludCh4KSkpOyB9XG4gICAgICBmbG9hdCByYW5kb20oIHZlYzIgIHYgKSB7IHJldHVybiBmbG9hdENvbnN0cnVjdChoYXNoKGZsb2F0Qml0c1RvVWludCh2KSkpOyB9XG4gICAgICBmbG9hdCByYW5kb20oIHZlYzMgIHYgKSB7IHJldHVybiBmbG9hdENvbnN0cnVjdChoYXNoKGZsb2F0Qml0c1RvVWludCh2KSkpOyB9XG4gICAgICBmbG9hdCByYW5kb20oIHZlYzQgIHYgKSB7IHJldHVybiBmbG9hdENvbnN0cnVjdChoYXNoKGZsb2F0Qml0c1RvVWludCh2KSkpOyB9XG5cbiAgICAgIGZsb2F0IHJhbmQoKSB7XG4gICAgICAgIGZsb2F0IHJlc3VsdCA9IHJhbmRvbSh2ZWMzKGdsX0ZyYWdDb29yZC54eSwgc2VlZCkpO1xuICAgICAgICBzZWVkICs9IDEuMDtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmxvYXQgRjMgPSAgMC4zMzMzMzMzO1xuICAgICAgY29uc3QgZmxvYXQgRzMgPSAgMC4xNjY2NjY3O1xuXG4gICAgICBmbG9hdCBzbm9pc2UodmVjMyBwKSB7XG4gICAgICAgIHZlYzMgcyA9IGZsb29yKHAgKyBkb3QocCwgdmVjMyhGMykpKTtcbiAgICAgICAgdmVjMyB4ID0gcCAtIHMgKyBkb3QocywgdmVjMyhHMykpO1xuICAgICAgICB2ZWMzIGUgPSBzdGVwKHZlYzMoMC4wKSwgeCAtIHgueXp4KTtcbiAgICAgICAgdmVjMyBpMSA9IGUqKDEuMCAtIGUuenh5KTtcbiAgICAgICAgdmVjMyBpMiA9IDEuMCAtIGUuenh5KigxLjAgLSBlKTtcbiAgICAgICAgdmVjMyB4MSA9IHggLSBpMSArIEczO1xuICAgICAgICB2ZWMzIHgyID0geCAtIGkyICsgMi4wKkczO1xuICAgICAgICB2ZWMzIHgzID0geCAtIDEuMCArIDMuMCpHMztcbiAgICAgICAgdmVjNCB3LCBkO1xuICAgICAgICB3LnggPSBkb3QoeCwgeCk7XG4gICAgICAgIHcueSA9IGRvdCh4MSwgeDEpO1xuICAgICAgICB3LnogPSBkb3QoeDIsIHgyKTtcbiAgICAgICAgdy53ID0gZG90KHgzLCB4Myk7XG4gICAgICAgIHcgPSBtYXgoMC42IC0gdywgMC4wKTtcbiAgICAgICAgZC54ID0gZG90KHJhbmRvbTMocyksIHgpO1xuICAgICAgICBkLnkgPSBkb3QocmFuZG9tMyhzICsgaTEpLCB4MSk7XG4gICAgICAgIGQueiA9IGRvdChyYW5kb20zKHMgKyBpMiksIHgyKTtcbiAgICAgICAgZC53ID0gZG90KHJhbmRvbTMocyArIDEuMCksIHgzKTtcbiAgICAgICAgdyAqPSB3O1xuICAgICAgICB3ICo9IHc7XG4gICAgICAgIGQgKj0gdztcbiAgICAgICAgcmV0dXJuIGRvdChkLCB2ZWM0KDUyLjApKTtcbiAgICAgIH1cblxuICAgICAgZmxvYXQgc25vaXNlRnJhY3RhbCh2ZWMzIG0pIHtcbiAgICAgICAgcmV0dXJuIDAuNTMzMzMzMyogc25vaXNlKG0pXG4gICAgICAgICAgICAgICswLjI2NjY2NjcqIHNub2lzZSgyLjAqbSlcbiAgICAgICAgICAgICAgKzAuMTMzMzMzMyogc25vaXNlKDQuMCptKVxuICAgICAgICAgICAgICArMC4wNjY2NjY3KiBzbm9pc2UoOC4wKm0pO1xuICAgICAgfVxcbmAgKyBzaGFkZXIuZnJhZ21lbnRTaGFkZXI7XG5cbiAgICAgICAgICAgIC8vIFJlbW92ZSB0cmFuc21pc3Npb25cbiAgICAgICAgICAgIHNoYWRlci5mcmFnbWVudFNoYWRlciA9IHNoYWRlci5mcmFnbWVudFNoYWRlci5yZXBsYWNlKFxuICAgICAgICAgICAgICAgICcjaW5jbHVkZSA8dHJhbnNtaXNzaW9uX3BhcnNfZnJhZ21lbnQ+JyxcbiAgICAgICAgICAgICAgICAvKmdsc2wqLyBgXG4gICAgICAgICNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OXG4gICAgICAgICAgLy8gVHJhbnNtaXNzaW9uIGNvZGUgaXMgYmFzZWQgb24gZ2xURi1TYW1wbGVyLVZpZXdlclxuICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9LaHJvbm9zR3JvdXAvZ2xURi1TYW1wbGUtVmlld2VyXG4gICAgICAgICAgdW5pZm9ybSBmbG9hdCBfdHJhbnNtaXNzaW9uO1xuICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdGhpY2tuZXNzO1xuICAgICAgICAgIHVuaWZvcm0gZmxvYXQgYXR0ZW51YXRpb25EaXN0YW5jZTtcbiAgICAgICAgICB1bmlmb3JtIHZlYzMgYXR0ZW51YXRpb25Db2xvcjtcbiAgICAgICAgICAjaWZkZWYgVVNFX1RSQU5TTUlTU0lPTk1BUFxuICAgICAgICAgICAgdW5pZm9ybSBzYW1wbGVyMkQgdHJhbnNtaXNzaW9uTWFwO1xuICAgICAgICAgICNlbmRpZlxuICAgICAgICAgICNpZmRlZiBVU0VfVEhJQ0tORVNTTUFQXG4gICAgICAgICAgICB1bmlmb3JtIHNhbXBsZXIyRCB0aGlja25lc3NNYXA7XG4gICAgICAgICAgI2VuZGlmXG4gICAgICAgICAgdW5pZm9ybSB2ZWMyIHRyYW5zbWlzc2lvblNhbXBsZXJTaXplO1xuICAgICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIHRyYW5zbWlzc2lvblNhbXBsZXJNYXA7XG4gICAgICAgICAgdW5pZm9ybSBtYXQ0IG1vZGVsTWF0cml4O1xuICAgICAgICAgIHVuaWZvcm0gbWF0NCBwcm9qZWN0aW9uTWF0cml4O1xuICAgICAgICAgIHZhcnlpbmcgdmVjMyB2V29ybGRQb3NpdGlvbjtcbiAgICAgICAgICB2ZWMzIGdldFZvbHVtZVRyYW5zbWlzc2lvblJheSggY29uc3QgaW4gdmVjMyBuLCBjb25zdCBpbiB2ZWMzIHYsIGNvbnN0IGluIGZsb2F0IHRoaWNrbmVzcywgY29uc3QgaW4gZmxvYXQgaW9yLCBjb25zdCBpbiBtYXQ0IG1vZGVsTWF0cml4ICkge1xuICAgICAgICAgICAgLy8gRGlyZWN0aW9uIG9mIHJlZnJhY3RlZCBsaWdodC5cbiAgICAgICAgICAgIHZlYzMgcmVmcmFjdGlvblZlY3RvciA9IHJlZnJhY3QoIC0gdiwgbm9ybWFsaXplKCBuICksIDEuMCAvIGlvciApO1xuICAgICAgICAgICAgLy8gQ29tcHV0ZSByb3RhdGlvbi1pbmRlcGVuZGFudCBzY2FsaW5nIG9mIHRoZSBtb2RlbCBtYXRyaXguXG4gICAgICAgICAgICB2ZWMzIG1vZGVsU2NhbGU7XG4gICAgICAgICAgICBtb2RlbFNjYWxlLnggPSBsZW5ndGgoIHZlYzMoIG1vZGVsTWF0cml4WyAwIF0ueHl6ICkgKTtcbiAgICAgICAgICAgIG1vZGVsU2NhbGUueSA9IGxlbmd0aCggdmVjMyggbW9kZWxNYXRyaXhbIDEgXS54eXogKSApO1xuICAgICAgICAgICAgbW9kZWxTY2FsZS56ID0gbGVuZ3RoKCB2ZWMzKCBtb2RlbE1hdHJpeFsgMiBdLnh5eiApICk7XG4gICAgICAgICAgICAvLyBUaGUgdGhpY2tuZXNzIGlzIHNwZWNpZmllZCBpbiBsb2NhbCBzcGFjZS5cbiAgICAgICAgICAgIHJldHVybiBub3JtYWxpemUoIHJlZnJhY3Rpb25WZWN0b3IgKSAqIHRoaWNrbmVzcyAqIG1vZGVsU2NhbGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGZsb2F0IGFwcGx5SW9yVG9Sb3VnaG5lc3MoIGNvbnN0IGluIGZsb2F0IHJvdWdobmVzcywgY29uc3QgaW4gZmxvYXQgaW9yICkge1xuICAgICAgICAgICAgLy8gU2NhbGUgcm91Z2huZXNzIHdpdGggSU9SIHNvIHRoYXQgYW4gSU9SIG9mIDEuMCByZXN1bHRzIGluIG5vIG1pY3JvZmFjZXQgcmVmcmFjdGlvbiBhbmRcbiAgICAgICAgICAgIC8vIGFuIElPUiBvZiAxLjUgcmVzdWx0cyBpbiB0aGUgZGVmYXVsdCBhbW91bnQgb2YgbWljcm9mYWNldCByZWZyYWN0aW9uLlxuICAgICAgICAgICAgcmV0dXJuIHJvdWdobmVzcyAqIGNsYW1wKCBpb3IgKiAyLjAgLSAyLjAsIDAuMCwgMS4wICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZlYzQgZ2V0VHJhbnNtaXNzaW9uU2FtcGxlKCBjb25zdCBpbiB2ZWMyIGZyYWdDb29yZCwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzLCBjb25zdCBpbiBmbG9hdCBpb3IgKSB7XG4gICAgICAgICAgICBmbG9hdCBmcmFtZWJ1ZmZlckxvZCA9IGxvZzIoIHRyYW5zbWlzc2lvblNhbXBsZXJTaXplLnggKSAqIGFwcGx5SW9yVG9Sb3VnaG5lc3MoIHJvdWdobmVzcywgaW9yICk7XG4gICAgICAgICAgICAjaWZkZWYgVVNFX1NBTVBMRVJcbiAgICAgICAgICAgICAgI2lmZGVmIHRleHR1cmUyRExvZEVYVFxuICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0dXJlMkRMb2RFWFQodHJhbnNtaXNzaW9uU2FtcGxlck1hcCwgZnJhZ0Nvb3JkLnh5LCBmcmFtZWJ1ZmZlckxvZCk7XG4gICAgICAgICAgICAgICNlbHNlXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRleHR1cmUyRCh0cmFuc21pc3Npb25TYW1wbGVyTWFwLCBmcmFnQ29vcmQueHksIGZyYW1lYnVmZmVyTG9kKTtcbiAgICAgICAgICAgICAgI2VuZGlmXG4gICAgICAgICAgICAjZWxzZVxuICAgICAgICAgICAgICByZXR1cm4gdGV4dHVyZTJEKGJ1ZmZlciwgZnJhZ0Nvb3JkLnh5KTtcbiAgICAgICAgICAgICNlbmRpZlxuICAgICAgICAgIH1cbiAgICAgICAgICB2ZWMzIGFwcGx5Vm9sdW1lQXR0ZW51YXRpb24oIGNvbnN0IGluIHZlYzMgcmFkaWFuY2UsIGNvbnN0IGluIGZsb2F0IHRyYW5zbWlzc2lvbkRpc3RhbmNlLCBjb25zdCBpbiB2ZWMzIGF0dGVudWF0aW9uQ29sb3IsIGNvbnN0IGluIGZsb2F0IGF0dGVudWF0aW9uRGlzdGFuY2UgKSB7XG4gICAgICAgICAgICBpZiAoIGlzaW5mKCBhdHRlbnVhdGlvbkRpc3RhbmNlICkgKSB7XG4gICAgICAgICAgICAgIC8vIEF0dGVudWF0aW9uIGRpc3RhbmNlIGlzICviiJ4sIGkuZS4gdGhlIHRyYW5zbWl0dGVkIGNvbG9yIGlzIG5vdCBhdHRlbnVhdGVkIGF0IGFsbC5cbiAgICAgICAgICAgICAgcmV0dXJuIHJhZGlhbmNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gQ29tcHV0ZSBsaWdodCBhdHRlbnVhdGlvbiB1c2luZyBCZWVyJ3MgbGF3LlxuICAgICAgICAgICAgICB2ZWMzIGF0dGVudWF0aW9uQ29lZmZpY2llbnQgPSAtbG9nKCBhdHRlbnVhdGlvbkNvbG9yICkgLyBhdHRlbnVhdGlvbkRpc3RhbmNlO1xuICAgICAgICAgICAgICB2ZWMzIHRyYW5zbWl0dGFuY2UgPSBleHAoIC0gYXR0ZW51YXRpb25Db2VmZmljaWVudCAqIHRyYW5zbWlzc2lvbkRpc3RhbmNlICk7IC8vIEJlZXIncyBsYXdcbiAgICAgICAgICAgICAgcmV0dXJuIHRyYW5zbWl0dGFuY2UgKiByYWRpYW5jZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgdmVjNCBnZXRJQkxWb2x1bWVSZWZyYWN0aW9uKCBjb25zdCBpbiB2ZWMzIG4sIGNvbnN0IGluIHZlYzMgdiwgY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzLCBjb25zdCBpbiB2ZWMzIGRpZmZ1c2VDb2xvcixcbiAgICAgICAgICAgIGNvbnN0IGluIHZlYzMgc3BlY3VsYXJDb2xvciwgY29uc3QgaW4gZmxvYXQgc3BlY3VsYXJGOTAsIGNvbnN0IGluIHZlYzMgcG9zaXRpb24sIGNvbnN0IGluIG1hdDQgbW9kZWxNYXRyaXgsXG4gICAgICAgICAgICBjb25zdCBpbiBtYXQ0IHZpZXdNYXRyaXgsIGNvbnN0IGluIG1hdDQgcHJvak1hdHJpeCwgY29uc3QgaW4gZmxvYXQgaW9yLCBjb25zdCBpbiBmbG9hdCB0aGlja25lc3MsXG4gICAgICAgICAgICBjb25zdCBpbiB2ZWMzIGF0dGVudWF0aW9uQ29sb3IsIGNvbnN0IGluIGZsb2F0IGF0dGVudWF0aW9uRGlzdGFuY2UgKSB7XG4gICAgICAgICAgICB2ZWMzIHRyYW5zbWlzc2lvblJheSA9IGdldFZvbHVtZVRyYW5zbWlzc2lvblJheSggbiwgdiwgdGhpY2tuZXNzLCBpb3IsIG1vZGVsTWF0cml4ICk7XG4gICAgICAgICAgICB2ZWMzIHJlZnJhY3RlZFJheUV4aXQgPSBwb3NpdGlvbiArIHRyYW5zbWlzc2lvblJheTtcbiAgICAgICAgICAgIC8vIFByb2plY3QgcmVmcmFjdGVkIHZlY3RvciBvbiB0aGUgZnJhbWVidWZmZXIsIHdoaWxlIG1hcHBpbmcgdG8gbm9ybWFsaXplZCBkZXZpY2UgY29vcmRpbmF0ZXMuXG4gICAgICAgICAgICB2ZWM0IG5kY1BvcyA9IHByb2pNYXRyaXggKiB2aWV3TWF0cml4ICogdmVjNCggcmVmcmFjdGVkUmF5RXhpdCwgMS4wICk7XG4gICAgICAgICAgICB2ZWMyIHJlZnJhY3Rpb25Db29yZHMgPSBuZGNQb3MueHkgLyBuZGNQb3MudztcbiAgICAgICAgICAgIHJlZnJhY3Rpb25Db29yZHMgKz0gMS4wO1xuICAgICAgICAgICAgcmVmcmFjdGlvbkNvb3JkcyAvPSAyLjA7XG4gICAgICAgICAgICAvLyBTYW1wbGUgZnJhbWVidWZmZXIgdG8gZ2V0IHBpeGVsIHRoZSByZWZyYWN0ZWQgcmF5IGhpdHMuXG4gICAgICAgICAgICB2ZWM0IHRyYW5zbWl0dGVkTGlnaHQgPSBnZXRUcmFuc21pc3Npb25TYW1wbGUoIHJlZnJhY3Rpb25Db29yZHMsIHJvdWdobmVzcywgaW9yICk7XG4gICAgICAgICAgICB2ZWMzIGF0dGVudWF0ZWRDb2xvciA9IGFwcGx5Vm9sdW1lQXR0ZW51YXRpb24oIHRyYW5zbWl0dGVkTGlnaHQucmdiLCBsZW5ndGgoIHRyYW5zbWlzc2lvblJheSApLCBhdHRlbnVhdGlvbkNvbG9yLCBhdHRlbnVhdGlvbkRpc3RhbmNlICk7XG4gICAgICAgICAgICAvLyBHZXQgdGhlIHNwZWN1bGFyIGNvbXBvbmVudC5cbiAgICAgICAgICAgIHZlYzMgRiA9IEVudmlyb25tZW50QlJERiggbiwgdiwgc3BlY3VsYXJDb2xvciwgc3BlY3VsYXJGOTAsIHJvdWdobmVzcyApO1xuICAgICAgICAgICAgcmV0dXJuIHZlYzQoICggMS4wIC0gRiApICogYXR0ZW51YXRlZENvbG9yICogZGlmZnVzZUNvbG9yLCB0cmFuc21pdHRlZExpZ2h0LmEgKTtcbiAgICAgICAgICB9XG4gICAgICAgICNlbmRpZlxcbmBcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIEFkZCByZWZyYWN0aW9uXG4gICAgICAgICAgICBzaGFkZXIuZnJhZ21lbnRTaGFkZXIgPSBzaGFkZXIuZnJhZ21lbnRTaGFkZXIucmVwbGFjZShcbiAgICAgICAgICAgICAgICAnI2luY2x1ZGUgPHRyYW5zbWlzc2lvbl9mcmFnbWVudD4nLFxuICAgICAgICAgICAgICAgIC8qZ2xzbCovIGBcbiAgICAgICAgLy8gSW1wcm92ZSB0aGUgcmVmcmFjdGlvbiB0byB1c2UgdGhlIHdvcmxkIHBvc1xuICAgICAgICBtYXRlcmlhbC50cmFuc21pc3Npb24gPSBfdHJhbnNtaXNzaW9uO1xuICAgICAgICBtYXRlcmlhbC50cmFuc21pc3Npb25BbHBoYSA9IDEuMDtcbiAgICAgICAgbWF0ZXJpYWwudGhpY2tuZXNzID0gdGhpY2tuZXNzO1xuICAgICAgICBtYXRlcmlhbC5hdHRlbnVhdGlvbkRpc3RhbmNlID0gYXR0ZW51YXRpb25EaXN0YW5jZTtcbiAgICAgICAgbWF0ZXJpYWwuYXR0ZW51YXRpb25Db2xvciA9IGF0dGVudWF0aW9uQ29sb3I7XG4gICAgICAgICNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OTUFQXG4gICAgICAgICAgbWF0ZXJpYWwudHJhbnNtaXNzaW9uICo9IHRleHR1cmUyRCggdHJhbnNtaXNzaW9uTWFwLCB2VXYgKS5yO1xuICAgICAgICAjZW5kaWZcbiAgICAgICAgI2lmZGVmIFVTRV9USElDS05FU1NNQVBcbiAgICAgICAgICBtYXRlcmlhbC50aGlja25lc3MgKj0gdGV4dHVyZTJEKCB0aGlja25lc3NNYXAsIHZVdiApLmc7XG4gICAgICAgICNlbmRpZlxuXG4gICAgICAgIHZlYzMgcG9zID0gdldvcmxkUG9zaXRpb247XG4gICAgICAgIHZlYzMgdiA9IG5vcm1hbGl6ZSggY2FtZXJhUG9zaXRpb24gLSBwb3MgKTtcbiAgICAgICAgdmVjMyBuID0gaW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbiggbm9ybWFsLCB2aWV3TWF0cml4ICk7XG4gICAgICAgIHZlYzMgdHJhbnNtaXNzaW9uID0gdmVjMygwLjApO1xuICAgICAgICBmbG9hdCB0cmFuc21pc3Npb25SLCB0cmFuc21pc3Npb25CLCB0cmFuc21pc3Npb25HO1xuICAgICAgICBmbG9hdCByYW5kb21Db29yZHMgPSByYW5kKCk7XG4gICAgICAgIGZsb2F0IHRoaWNrbmVzc19zbWVhciA9IHRoaWNrbmVzcyAqIG1heChwb3cocm91Z2huZXNzRmFjdG9yLCAwLjMzKSwgYW5pc290cm9weSk7XG4gICAgICAgIHZlYzMgZGlzdG9ydGlvbk5vcm1hbCA9IHZlYzMoMC4wKTtcbiAgICAgICAgdmVjMyB0ZW1wb3JhbE9mZnNldCA9IHZlYzModGltZSwgLXRpbWUsIC10aW1lKSAqIHRlbXBvcmFsRGlzdG9ydGlvbjtcbiAgICAgICAgaWYgKGRpc3RvcnRpb24gPiAwLjApIHtcbiAgICAgICAgICBkaXN0b3J0aW9uTm9ybWFsID0gZGlzdG9ydGlvbiAqIHZlYzMoc25vaXNlRnJhY3RhbCh2ZWMzKChwb3MgKiBkaXN0b3J0aW9uU2NhbGUgKyB0ZW1wb3JhbE9mZnNldCkpKSwgc25vaXNlRnJhY3RhbCh2ZWMzKHBvcy56eHkgKiBkaXN0b3J0aW9uU2NhbGUgLSB0ZW1wb3JhbE9mZnNldCkpLCBzbm9pc2VGcmFjdGFsKHZlYzMocG9zLnl4eiAqIGRpc3RvcnRpb25TY2FsZSArIHRlbXBvcmFsT2Zmc2V0KSkpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoZmxvYXQgaSA9IDAuMDsgaSA8ICR7c2FtcGxlc30uMDsgaSArKykge1xuICAgICAgICAgIHZlYzMgc2FtcGxlTm9ybSA9IG5vcm1hbGl6ZShuICsgcm91Z2huZXNzRmFjdG9yICogcm91Z2huZXNzRmFjdG9yICogMi4wICogbm9ybWFsaXplKHZlYzMocmFuZCgpIC0gMC41LCByYW5kKCkgLSAwLjUsIHJhbmQoKSAtIDAuNSkpICogcG93KHJhbmQoKSwgMC4zMykgKyBkaXN0b3J0aW9uTm9ybWFsKTtcbiAgICAgICAgICB0cmFuc21pc3Npb25SID0gZ2V0SUJMVm9sdW1lUmVmcmFjdGlvbihcbiAgICAgICAgICAgIHNhbXBsZU5vcm0sIHYsIG1hdGVyaWFsLnJvdWdobmVzcywgbWF0ZXJpYWwuZGlmZnVzZUNvbG9yLCBtYXRlcmlhbC5zcGVjdWxhckNvbG9yLCBtYXRlcmlhbC5zcGVjdWxhckY5MCxcbiAgICAgICAgICAgIHBvcywgbW9kZWxNYXRyaXgsIHZpZXdNYXRyaXgsIHByb2plY3Rpb25NYXRyaXgsIG1hdGVyaWFsLmlvciwgbWF0ZXJpYWwudGhpY2tuZXNzICArIHRoaWNrbmVzc19zbWVhciAqIChpICsgcmFuZG9tQ29vcmRzKSAvIGZsb2F0KCR7c2FtcGxlc30pLFxuICAgICAgICAgICAgbWF0ZXJpYWwuYXR0ZW51YXRpb25Db2xvciwgbWF0ZXJpYWwuYXR0ZW51YXRpb25EaXN0YW5jZVxuICAgICAgICAgICkucjtcbiAgICAgICAgICB0cmFuc21pc3Npb25HID0gZ2V0SUJMVm9sdW1lUmVmcmFjdGlvbihcbiAgICAgICAgICAgIHNhbXBsZU5vcm0sIHYsIG1hdGVyaWFsLnJvdWdobmVzcywgbWF0ZXJpYWwuZGlmZnVzZUNvbG9yLCBtYXRlcmlhbC5zcGVjdWxhckNvbG9yLCBtYXRlcmlhbC5zcGVjdWxhckY5MCxcbiAgICAgICAgICAgIHBvcywgbW9kZWxNYXRyaXgsIHZpZXdNYXRyaXgsIHByb2plY3Rpb25NYXRyaXgsIG1hdGVyaWFsLmlvciAgKiAoMS4wICsgY2hyb21hdGljQWJlcnJhdGlvbiAqIChpICsgcmFuZG9tQ29vcmRzKSAvIGZsb2F0KCR7c2FtcGxlc30pKSAsIG1hdGVyaWFsLnRoaWNrbmVzcyArIHRoaWNrbmVzc19zbWVhciAqIChpICsgcmFuZG9tQ29vcmRzKSAvIGZsb2F0KCR7c2FtcGxlc30pLFxuICAgICAgICAgICAgbWF0ZXJpYWwuYXR0ZW51YXRpb25Db2xvciwgbWF0ZXJpYWwuYXR0ZW51YXRpb25EaXN0YW5jZVxuICAgICAgICAgICkuZztcbiAgICAgICAgICB0cmFuc21pc3Npb25CID0gZ2V0SUJMVm9sdW1lUmVmcmFjdGlvbihcbiAgICAgICAgICAgIHNhbXBsZU5vcm0sIHYsIG1hdGVyaWFsLnJvdWdobmVzcywgbWF0ZXJpYWwuZGlmZnVzZUNvbG9yLCBtYXRlcmlhbC5zcGVjdWxhckNvbG9yLCBtYXRlcmlhbC5zcGVjdWxhckY5MCxcbiAgICAgICAgICAgIHBvcywgbW9kZWxNYXRyaXgsIHZpZXdNYXRyaXgsIHByb2plY3Rpb25NYXRyaXgsIG1hdGVyaWFsLmlvciAqICgxLjAgKyAyLjAgKiBjaHJvbWF0aWNBYmVycmF0aW9uICogKGkgKyByYW5kb21Db29yZHMpIC8gZmxvYXQoJHtzYW1wbGVzfSkpLCBtYXRlcmlhbC50aGlja25lc3MgKyB0aGlja25lc3Nfc21lYXIgKiAoaSArIHJhbmRvbUNvb3JkcykgLyBmbG9hdCgke3NhbXBsZXN9KSxcbiAgICAgICAgICAgIG1hdGVyaWFsLmF0dGVudWF0aW9uQ29sb3IsIG1hdGVyaWFsLmF0dGVudWF0aW9uRGlzdGFuY2VcbiAgICAgICAgICApLmI7XG4gICAgICAgICAgdHJhbnNtaXNzaW9uLnIgKz0gdHJhbnNtaXNzaW9uUjtcbiAgICAgICAgICB0cmFuc21pc3Npb24uZyArPSB0cmFuc21pc3Npb25HO1xuICAgICAgICAgIHRyYW5zbWlzc2lvbi5iICs9IHRyYW5zbWlzc2lvbkI7XG4gICAgICAgIH1cbiAgICAgICAgdHJhbnNtaXNzaW9uIC89ICR7c2FtcGxlc30uMDtcbiAgICAgICAgdG90YWxEaWZmdXNlID0gbWl4KCB0b3RhbERpZmZ1c2UsIHRyYW5zbWlzc2lvbi5yZ2IsIG1hdGVyaWFsLnRyYW5zbWlzc2lvbiApO1xcbmBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH07XG5cbiAgICAgICAgT2JqZWN0LmtleXModGhpcy51bmlmb3JtcykuZm9yRWFjaCgobmFtZSkgPT5cbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBuYW1lLCB7XG4gICAgICAgICAgICAgICAgZ2V0OiAoKSA9PiB0aGlzLnVuaWZvcm1zW25hbWUgYXMga2V5b2YgdHlwZW9mIHRoaXMudW5pZm9ybXNdLnZhbHVlLFxuICAgICAgICAgICAgICAgIHNldDogKHYpID0+ICh0aGlzLnVuaWZvcm1zW25hbWUgYXMga2V5b2YgdHlwZW9mIHRoaXMudW5pZm9ybXNdLnZhbHVlID0gdiksXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
|
|
271
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC10cmFuc21pc3Npb24tbWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc2hhZGVycy9zcmMvbWVzaC10cmFuc21pc3Npb24tbWF0ZXJpYWwvbWVzaC10cmFuc21pc3Npb24tbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFNL0IsTUFBTSxPQUFPLHdCQUF5QixTQUFRLEtBQUssQ0FBQyxvQkFBb0I7SUFtQnZFLFlBQVksT0FBTyxHQUFHLENBQUMsRUFBRSxtQkFBbUIsR0FBRyxLQUFLO1FBQ25ELEtBQUssRUFBRSxDQUFDO1FBRVIsSUFBSSxDQUFDLFFBQVEsR0FBRztZQUNmLG1CQUFtQixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNwQywwRUFBMEU7WUFDMUUsWUFBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUMxQiwwREFBMEQ7WUFDMUQsYUFBYSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUMzQixlQUFlLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2hDLG9HQUFvRztZQUNwRyxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1lBQ3ZCLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7WUFDdkIsWUFBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUM3QixtQkFBbUIsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDeEMsZ0JBQWdCLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3JELGVBQWUsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDL0IsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNsQixVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO1lBQzFCLGVBQWUsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDL0Isa0JBQWtCLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO1lBQ2xDLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7U0FDdkIsQ0FBQztRQUVGLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxNQUE2RCxFQUFFLEVBQUU7WUFDeEYsTUFBTSxDQUFDLFFBQVEsR0FBRztnQkFDakIsR0FBRyxNQUFNLENBQUMsUUFBUTtnQkFDbEIsR0FBRyxJQUFJLENBQUMsUUFBUTthQUNoQixDQUFDO1lBRUYsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxFQUFFO2dCQUMzQyxNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQ3RDO1lBRUQsc0RBQXNEO1lBQ3RELElBQUksbUJBQW1CO2dCQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzVELGtGQUFrRjtZQUNsRix5Q0FBeUM7O2dCQUNwQyxNQUFNLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxDQUFDO1lBRTdDLE9BQU87WUFDUCxNQUFNLENBQUMsY0FBYztnQkFDcEIsUUFBUSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1VBMkZILEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQztZQUVoQyxzQkFBc0I7WUFDdEIsTUFBTSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FDcEQsdUNBQXVDO1lBQ3ZDLFFBQVEsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQkE0RUksQ0FDYixDQUFDO1lBRUYsaUJBQWlCO1lBQ2pCLE1BQU0sQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQ3BELGtDQUFrQztZQUNsQyxRQUFRLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tDQTBCcUIsT0FBTzs7OzsrSUFJc0csT0FBTzs7Ozs7c0lBS2hCLE9BQU8sMEVBQTBFLE9BQU87Ozs7OzJJQUtuRixPQUFPLHlFQUF5RSxPQUFPOzs7Ozs7OzBCQU94TSxPQUFPO3VGQUNzRCxDQUNuRixDQUFDO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDM0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ2pDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQWtDLENBQUMsQ0FBQyxLQUFLO1lBQ2xFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQWtDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQ3pFLENBQUMsQ0FDRixDQUFDO0lBQ0gsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuXG5pbnRlcmZhY2UgVW5pZm9ybTxUPiB7XG5cdHZhbHVlOiBUO1xufVxuXG5leHBvcnQgY2xhc3MgTWVzaFRyYW5zbWlzc2lvbk1hdGVyaWFsIGV4dGVuZHMgVEhSRUUuTWVzaFBoeXNpY2FsTWF0ZXJpYWwge1xuXHR1bmlmb3Jtczoge1xuXHRcdGNocm9tYXRpY0FiZXJyYXRpb246IFVuaWZvcm08bnVtYmVyPjtcblx0XHR0cmFuc21pc3Npb246IFVuaWZvcm08bnVtYmVyPjtcblx0XHR0cmFuc21pc3Npb25NYXA6IFVuaWZvcm08VEhSRUUuVGV4dHVyZSB8IG51bGw+O1xuXHRcdF90cmFuc21pc3Npb246IFVuaWZvcm08bnVtYmVyPjtcblx0XHR0aGlja25lc3M6IFVuaWZvcm08bnVtYmVyPjtcblx0XHRyb3VnaG5lc3M6IFVuaWZvcm08bnVtYmVyPjtcblx0XHR0aGlja25lc3NNYXA6IFVuaWZvcm08VEhSRUUuVGV4dHVyZSB8IG51bGw+O1xuXHRcdGF0dGVudWF0aW9uRGlzdGFuY2U6IFVuaWZvcm08bnVtYmVyPjtcblx0XHRhdHRlbnVhdGlvbkNvbG9yOiBVbmlmb3JtPFRIUkVFLkNvbG9yPjtcblx0XHRhbmlzb3Ryb3BpY0JsdXI6IFVuaWZvcm08bnVtYmVyPjtcblx0XHR0aW1lOiBVbmlmb3JtPG51bWJlcj47XG5cdFx0ZGlzdG9ydGlvbjogVW5pZm9ybTxudW1iZXI+O1xuXHRcdGRpc3RvcnRpb25TY2FsZTogVW5pZm9ybTxudW1iZXI+O1xuXHRcdHRlbXBvcmFsRGlzdG9ydGlvbjogVW5pZm9ybTxudW1iZXI+O1xuXHRcdGJ1ZmZlcjogVW5pZm9ybTxUSFJFRS5UZXh0dXJlIHwgbnVsbD47XG5cdH07XG5cblx0Y29uc3RydWN0b3Ioc2FtcGxlcyA9IDYsIHRyYW5zbWlzc2lvblNhbXBsZXIgPSBmYWxzZSkge1xuXHRcdHN1cGVyKCk7XG5cblx0XHR0aGlzLnVuaWZvcm1zID0ge1xuXHRcdFx0Y2hyb21hdGljQWJlcnJhdGlvbjogeyB2YWx1ZTogMC4wNSB9LFxuXHRcdFx0Ly8gVHJhbnNtaXNzaW9uIG11c3QgYWx3YXlzIGJlIDAsIHVubGVzcyB0cmFuc21pc3Npb25TYW1wbGVyIGlzIGJlaW5nIHVzZWRcblx0XHRcdHRyYW5zbWlzc2lvbjogeyB2YWx1ZTogMCB9LFxuXHRcdFx0Ly8gSW5zdGVhZCBhIHdvcmthcm91bmQgaXMgdXNlZCwgc2VlIGJlbG93IGZvciByZWFzb25zIHdoeVxuXHRcdFx0X3RyYW5zbWlzc2lvbjogeyB2YWx1ZTogMSB9LFxuXHRcdFx0dHJhbnNtaXNzaW9uTWFwOiB7IHZhbHVlOiBudWxsIH0sXG5cdFx0XHQvLyBSb3VnaG5lc3MgaXMgMSBpbiBUSFJFRS5NZXNoUGh5c2ljYWxNYXRlcmlhbCBidXQgaXQgbWFrZXMgbGl0dGxlIHNlbnNlIGluIGEgdHJhbnNtaXNzaW9uIG1hdGVyaWFsXG5cdFx0XHRyb3VnaG5lc3M6IHsgdmFsdWU6IDAgfSxcblx0XHRcdHRoaWNrbmVzczogeyB2YWx1ZTogMCB9LFxuXHRcdFx0dGhpY2tuZXNzTWFwOiB7IHZhbHVlOiBudWxsIH0sXG5cdFx0XHRhdHRlbnVhdGlvbkRpc3RhbmNlOiB7IHZhbHVlOiBJbmZpbml0eSB9LFxuXHRcdFx0YXR0ZW51YXRpb25Db2xvcjogeyB2YWx1ZTogbmV3IFRIUkVFLkNvbG9yKCd3aGl0ZScpIH0sXG5cdFx0XHRhbmlzb3Ryb3BpY0JsdXI6IHsgdmFsdWU6IDAuMSB9LFxuXHRcdFx0dGltZTogeyB2YWx1ZTogMCB9LFxuXHRcdFx0ZGlzdG9ydGlvbjogeyB2YWx1ZTogMC4wIH0sXG5cdFx0XHRkaXN0b3J0aW9uU2NhbGU6IHsgdmFsdWU6IDAuNSB9LFxuXHRcdFx0dGVtcG9yYWxEaXN0b3J0aW9uOiB7IHZhbHVlOiAwLjAgfSxcblx0XHRcdGJ1ZmZlcjogeyB2YWx1ZTogbnVsbCB9LFxuXHRcdH07XG5cblx0XHR0aGlzLm9uQmVmb3JlQ29tcGlsZSA9IChzaGFkZXI6IFRIUkVFLlNoYWRlciAmIHsgZGVmaW5lczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB9KSA9PiB7XG5cdFx0XHRzaGFkZXIudW5pZm9ybXMgPSB7XG5cdFx0XHRcdC4uLnNoYWRlci51bmlmb3Jtcyxcblx0XHRcdFx0Li4udGhpcy51bmlmb3Jtcyxcblx0XHRcdH07XG5cblx0XHRcdGlmICh0aGlzLmFuaXNvdHJvcHkgJiYgdGhpcy5hbmlzb3Ryb3B5ID4gMCkge1xuXHRcdFx0XHRzaGFkZXIuZGVmaW5lc1snVVNFX0FOSVNPVFJPUFknXSA9ICcnO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBJZiB0aGUgdHJhbnNtaXNzaW9uIHNhbXBsZXIgaXMgYWN0aXZlIGluamVjdCBhIGZsYWdcblx0XHRcdGlmICh0cmFuc21pc3Npb25TYW1wbGVyKSBzaGFkZXIuZGVmaW5lc1snVVNFX1NBTVBMRVInXSA9ICcnO1xuXHRcdFx0Ly8gT3RoZXJ3aXNlIHdlIGRvIHVzZSB1c2UgLnRyYW5zbWlzc2lvbiBhbmQgbXVzdCB0aGVyZWZvcmUgZm9yY2UgVVNFX1RSQU5TTUlTU0lPTlxuXHRcdFx0Ly8gYmVjYXVzZSB0aHJlZWpzIHdvbid0IGluamVjdCBpdCBmb3IgdXNcblx0XHRcdGVsc2Ugc2hhZGVyLmRlZmluZXNbJ1VTRV9UUkFOU01JU1NJT04nXSA9ICcnO1xuXG5cdFx0XHQvLyBIZWFkXG5cdFx0XHRzaGFkZXIuZnJhZ21lbnRTaGFkZXIgPVxuXHRcdFx0XHQvKmdsc2wqLyBgXG4gICAgICB1bmlmb3JtIGZsb2F0IGNocm9tYXRpY0FiZXJyYXRpb247XG4gICAgICB1bmlmb3JtIGZsb2F0IGFuaXNvdHJvcGljQmx1cjtcbiAgICAgIHVuaWZvcm0gZmxvYXQgdGltZTtcbiAgICAgIHVuaWZvcm0gZmxvYXQgZGlzdG9ydGlvbjtcbiAgICAgIHVuaWZvcm0gZmxvYXQgZGlzdG9ydGlvblNjYWxlO1xuICAgICAgdW5pZm9ybSBmbG9hdCB0ZW1wb3JhbERpc3RvcnRpb247XG4gICAgICB1bmlmb3JtIHNhbXBsZXIyRCBidWZmZXI7XG5cbiAgICAgIHZlYzMgcmFuZG9tMyh2ZWMzIGMpIHtcbiAgICAgICAgZmxvYXQgaiA9IDQwOTYuMCpzaW4oZG90KGMsdmVjMygxNy4wLCA1OS40LCAxNS4wKSkpO1xuICAgICAgICB2ZWMzIHI7XG4gICAgICAgIHIueiA9IGZyYWN0KDUxMi4wKmopO1xuICAgICAgICBqICo9IC4xMjU7XG4gICAgICAgIHIueCA9IGZyYWN0KDUxMi4wKmopO1xuICAgICAgICBqICo9IC4xMjU7XG4gICAgICAgIHIueSA9IGZyYWN0KDUxMi4wKmopO1xuICAgICAgICByZXR1cm4gci0wLjU7XG4gICAgICB9XG5cbiAgICAgIGZsb2F0IHNlZWQgPSAwLjA7XG4gICAgICB1aW50IGhhc2goIHVpbnQgeCApIHtcbiAgICAgICAgeCArPSAoIHggPDwgMTB1ICk7XG4gICAgICAgIHggXj0gKCB4ID4+ICA2dSApO1xuICAgICAgICB4ICs9ICggeCA8PCAgM3UgKTtcbiAgICAgICAgeCBePSAoIHggPj4gMTF1ICk7XG4gICAgICAgIHggKz0gKCB4IDw8IDE1dSApO1xuICAgICAgICByZXR1cm4geDtcbiAgICAgIH1cblxuICAgICAgLy8gQ29tcG91bmQgdmVyc2lvbnMgb2YgdGhlIGhhc2hpbmcgYWxnb3JpdGhtIEkgd2hpcHBlZCB0b2dldGhlci5cbiAgICAgIHVpbnQgaGFzaCggdXZlYzIgdiApIHsgcmV0dXJuIGhhc2goIHYueCBeIGhhc2godi55KSAgICAgICAgICAgICAgICAgICAgICAgICApOyB9XG4gICAgICB1aW50IGhhc2goIHV2ZWMzIHYgKSB7IHJldHVybiBoYXNoKCB2LnggXiBoYXNoKHYueSkgXiBoYXNoKHYueikgICAgICAgICAgICAgKTsgfVxuICAgICAgdWludCBoYXNoKCB1dmVjNCB2ICkgeyByZXR1cm4gaGFzaCggdi54IF4gaGFzaCh2LnkpIF4gaGFzaCh2LnopIF4gaGFzaCh2LncpICk7IH1cblxuICAgICAgLy8gQ29uc3RydWN0IGEgZmxvYXQgd2l0aCBoYWxmLW9wZW4gcmFuZ2UgWzA6MV0gdXNpbmcgbG93IDIzIGJpdHMuXG4gICAgICAvLyBBbGwgemVyb2VzIHlpZWxkcyAwLjAsIGFsbCBvbmVzIHlpZWxkcyB0aGUgbmV4dCBzbWFsbGVzdCByZXByZXNlbnRhYmxlIHZhbHVlIGJlbG93IDEuMC5cbiAgICAgIGZsb2F0IGZsb2F0Q29uc3RydWN0KCB1aW50IG0gKSB7XG4gICAgICAgIGNvbnN0IHVpbnQgaWVlZU1hbnRpc3NhID0gMHgwMDdGRkZGRnU7IC8vIGJpbmFyeTMyIG1hbnRpc3NhIGJpdG1hc2tcbiAgICAgICAgY29uc3QgdWludCBpZWVlT25lICAgICAgPSAweDNGODAwMDAwdTsgLy8gMS4wIGluIElFRUUgYmluYXJ5MzJcbiAgICAgICAgbSAmPSBpZWVlTWFudGlzc2E7ICAgICAgICAgICAgICAgICAgICAgLy8gS2VlcCBvbmx5IG1hbnRpc3NhIGJpdHMgKGZyYWN0aW9uYWwgcGFydClcbiAgICAgICAgbSB8PSBpZWVlT25lOyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWRkIGZyYWN0aW9uYWwgcGFydCB0byAxLjBcbiAgICAgICAgZmxvYXQgIGYgPSB1aW50Qml0c1RvRmxvYXQoIG0gKTsgICAgICAgLy8gUmFuZ2UgWzE6Ml1cbiAgICAgICAgcmV0dXJuIGYgLSAxLjA7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmFuZ2UgWzA6MV1cbiAgICAgIH1cblxuICAgICAgLy8gUHNldWRvLXJhbmRvbSB2YWx1ZSBpbiBoYWxmLW9wZW4gcmFuZ2UgWzA6MV0uXG4gICAgICBmbG9hdCByYW5kb20oIGZsb2F0IHggKSB7IHJldHVybiBmbG9hdENvbnN0cnVjdChoYXNoKGZsb2F0Qml0c1RvVWludCh4KSkpOyB9XG4gICAgICBmbG9hdCByYW5kb20oIHZlYzIgIHYgKSB7IHJldHVybiBmbG9hdENvbnN0cnVjdChoYXNoKGZsb2F0Qml0c1RvVWludCh2KSkpOyB9XG4gICAgICBmbG9hdCByYW5kb20oIHZlYzMgIHYgKSB7IHJldHVybiBmbG9hdENvbnN0cnVjdChoYXNoKGZsb2F0Qml0c1RvVWludCh2KSkpOyB9XG4gICAgICBmbG9hdCByYW5kb20oIHZlYzQgIHYgKSB7IHJldHVybiBmbG9hdENvbnN0cnVjdChoYXNoKGZsb2F0Qml0c1RvVWludCh2KSkpOyB9XG5cbiAgICAgIGZsb2F0IHJhbmQoKSB7XG4gICAgICAgIGZsb2F0IHJlc3VsdCA9IHJhbmRvbSh2ZWMzKGdsX0ZyYWdDb29yZC54eSwgc2VlZCkpO1xuICAgICAgICBzZWVkICs9IDEuMDtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmxvYXQgRjMgPSAgMC4zMzMzMzMzO1xuICAgICAgY29uc3QgZmxvYXQgRzMgPSAgMC4xNjY2NjY3O1xuXG4gICAgICBmbG9hdCBzbm9pc2UodmVjMyBwKSB7XG4gICAgICAgIHZlYzMgcyA9IGZsb29yKHAgKyBkb3QocCwgdmVjMyhGMykpKTtcbiAgICAgICAgdmVjMyB4ID0gcCAtIHMgKyBkb3QocywgdmVjMyhHMykpO1xuICAgICAgICB2ZWMzIGUgPSBzdGVwKHZlYzMoMC4wKSwgeCAtIHgueXp4KTtcbiAgICAgICAgdmVjMyBpMSA9IGUqKDEuMCAtIGUuenh5KTtcbiAgICAgICAgdmVjMyBpMiA9IDEuMCAtIGUuenh5KigxLjAgLSBlKTtcbiAgICAgICAgdmVjMyB4MSA9IHggLSBpMSArIEczO1xuICAgICAgICB2ZWMzIHgyID0geCAtIGkyICsgMi4wKkczO1xuICAgICAgICB2ZWMzIHgzID0geCAtIDEuMCArIDMuMCpHMztcbiAgICAgICAgdmVjNCB3LCBkO1xuICAgICAgICB3LnggPSBkb3QoeCwgeCk7XG4gICAgICAgIHcueSA9IGRvdCh4MSwgeDEpO1xuICAgICAgICB3LnogPSBkb3QoeDIsIHgyKTtcbiAgICAgICAgdy53ID0gZG90KHgzLCB4Myk7XG4gICAgICAgIHcgPSBtYXgoMC42IC0gdywgMC4wKTtcbiAgICAgICAgZC54ID0gZG90KHJhbmRvbTMocyksIHgpO1xuICAgICAgICBkLnkgPSBkb3QocmFuZG9tMyhzICsgaTEpLCB4MSk7XG4gICAgICAgIGQueiA9IGRvdChyYW5kb20zKHMgKyBpMiksIHgyKTtcbiAgICAgICAgZC53ID0gZG90KHJhbmRvbTMocyArIDEuMCksIHgzKTtcbiAgICAgICAgdyAqPSB3O1xuICAgICAgICB3ICo9IHc7XG4gICAgICAgIGQgKj0gdztcbiAgICAgICAgcmV0dXJuIGRvdChkLCB2ZWM0KDUyLjApKTtcbiAgICAgIH1cblxuICAgICAgZmxvYXQgc25vaXNlRnJhY3RhbCh2ZWMzIG0pIHtcbiAgICAgICAgcmV0dXJuIDAuNTMzMzMzMyogc25vaXNlKG0pXG4gICAgICAgICAgICAgICswLjI2NjY2NjcqIHNub2lzZSgyLjAqbSlcbiAgICAgICAgICAgICAgKzAuMTMzMzMzMyogc25vaXNlKDQuMCptKVxuICAgICAgICAgICAgICArMC4wNjY2NjY3KiBzbm9pc2UoOC4wKm0pO1xuICAgICAgfVxcbmAgKyBzaGFkZXIuZnJhZ21lbnRTaGFkZXI7XG5cblx0XHRcdC8vIFJlbW92ZSB0cmFuc21pc3Npb25cblx0XHRcdHNoYWRlci5mcmFnbWVudFNoYWRlciA9IHNoYWRlci5mcmFnbWVudFNoYWRlci5yZXBsYWNlKFxuXHRcdFx0XHQnI2luY2x1ZGUgPHRyYW5zbWlzc2lvbl9wYXJzX2ZyYWdtZW50PicsXG5cdFx0XHRcdC8qZ2xzbCovIGBcbiAgICAgICAgI2lmZGVmIFVTRV9UUkFOU01JU1NJT05cbiAgICAgICAgICAvLyBUcmFuc21pc3Npb24gY29kZSBpcyBiYXNlZCBvbiBnbFRGLVNhbXBsZXItVmlld2VyXG4gICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0tocm9ub3NHcm91cC9nbFRGLVNhbXBsZS1WaWV3ZXJcbiAgICAgICAgICB1bmlmb3JtIGZsb2F0IF90cmFuc21pc3Npb247XG4gICAgICAgICAgdW5pZm9ybSBmbG9hdCB0aGlja25lc3M7XG4gICAgICAgICAgdW5pZm9ybSBmbG9hdCBhdHRlbnVhdGlvbkRpc3RhbmNlO1xuICAgICAgICAgIHVuaWZvcm0gdmVjMyBhdHRlbnVhdGlvbkNvbG9yO1xuICAgICAgICAgICNpZmRlZiBVU0VfVFJBTlNNSVNTSU9OTUFQXG4gICAgICAgICAgICB1bmlmb3JtIHNhbXBsZXIyRCB0cmFuc21pc3Npb25NYXA7XG4gICAgICAgICAgI2VuZGlmXG4gICAgICAgICAgI2lmZGVmIFVTRV9USElDS05FU1NNQVBcbiAgICAgICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIHRoaWNrbmVzc01hcDtcbiAgICAgICAgICAjZW5kaWZcbiAgICAgICAgICB1bmlmb3JtIHZlYzIgdHJhbnNtaXNzaW9uU2FtcGxlclNpemU7XG4gICAgICAgICAgdW5pZm9ybSBzYW1wbGVyMkQgdHJhbnNtaXNzaW9uU2FtcGxlck1hcDtcbiAgICAgICAgICB1bmlmb3JtIG1hdDQgbW9kZWxNYXRyaXg7XG4gICAgICAgICAgdW5pZm9ybSBtYXQ0IHByb2plY3Rpb25NYXRyaXg7XG4gICAgICAgICAgdmFyeWluZyB2ZWMzIHZXb3JsZFBvc2l0aW9uO1xuICAgICAgICAgIHZlYzMgZ2V0Vm9sdW1lVHJhbnNtaXNzaW9uUmF5KCBjb25zdCBpbiB2ZWMzIG4sIGNvbnN0IGluIHZlYzMgdiwgY29uc3QgaW4gZmxvYXQgdGhpY2tuZXNzLCBjb25zdCBpbiBmbG9hdCBpb3IsIGNvbnN0IGluIG1hdDQgbW9kZWxNYXRyaXggKSB7XG4gICAgICAgICAgICAvLyBEaXJlY3Rpb24gb2YgcmVmcmFjdGVkIGxpZ2h0LlxuICAgICAgICAgICAgdmVjMyByZWZyYWN0aW9uVmVjdG9yID0gcmVmcmFjdCggLSB2LCBub3JtYWxpemUoIG4gKSwgMS4wIC8gaW9yICk7XG4gICAgICAgICAgICAvLyBDb21wdXRlIHJvdGF0aW9uLWluZGVwZW5kYW50IHNjYWxpbmcgb2YgdGhlIG1vZGVsIG1hdHJpeC5cbiAgICAgICAgICAgIHZlYzMgbW9kZWxTY2FsZTtcbiAgICAgICAgICAgIG1vZGVsU2NhbGUueCA9IGxlbmd0aCggdmVjMyggbW9kZWxNYXRyaXhbIDAgXS54eXogKSApO1xuICAgICAgICAgICAgbW9kZWxTY2FsZS55ID0gbGVuZ3RoKCB2ZWMzKCBtb2RlbE1hdHJpeFsgMSBdLnh5eiApICk7XG4gICAgICAgICAgICBtb2RlbFNjYWxlLnogPSBsZW5ndGgoIHZlYzMoIG1vZGVsTWF0cml4WyAyIF0ueHl6ICkgKTtcbiAgICAgICAgICAgIC8vIFRoZSB0aGlja25lc3MgaXMgc3BlY2lmaWVkIGluIGxvY2FsIHNwYWNlLlxuICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZSggcmVmcmFjdGlvblZlY3RvciApICogdGhpY2tuZXNzICogbW9kZWxTY2FsZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZmxvYXQgYXBwbHlJb3JUb1JvdWdobmVzcyggY29uc3QgaW4gZmxvYXQgcm91Z2huZXNzLCBjb25zdCBpbiBmbG9hdCBpb3IgKSB7XG4gICAgICAgICAgICAvLyBTY2FsZSByb3VnaG5lc3Mgd2l0aCBJT1Igc28gdGhhdCBhbiBJT1Igb2YgMS4wIHJlc3VsdHMgaW4gbm8gbWljcm9mYWNldCByZWZyYWN0aW9uIGFuZFxuICAgICAgICAgICAgLy8gYW4gSU9SIG9mIDEuNSByZXN1bHRzIGluIHRoZSBkZWZhdWx0IGFtb3VudCBvZiBtaWNyb2ZhY2V0IHJlZnJhY3Rpb24uXG4gICAgICAgICAgICByZXR1cm4gcm91Z2huZXNzICogY2xhbXAoIGlvciAqIDIuMCAtIDIuMCwgMC4wLCAxLjAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmVjNCBnZXRUcmFuc21pc3Npb25TYW1wbGUoIGNvbnN0IGluIHZlYzIgZnJhZ0Nvb3JkLCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MsIGNvbnN0IGluIGZsb2F0IGlvciApIHtcbiAgICAgICAgICAgIGZsb2F0IGZyYW1lYnVmZmVyTG9kID0gbG9nMiggdHJhbnNtaXNzaW9uU2FtcGxlclNpemUueCApICogYXBwbHlJb3JUb1JvdWdobmVzcyggcm91Z2huZXNzLCBpb3IgKTtcbiAgICAgICAgICAgICNpZmRlZiBVU0VfU0FNUExFUlxuICAgICAgICAgICAgICAjaWZkZWYgdGV4dHVyZTJETG9kRVhUXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRleHR1cmUyRExvZEVYVCh0cmFuc21pc3Npb25TYW1wbGVyTWFwLCBmcmFnQ29vcmQueHksIGZyYW1lYnVmZmVyTG9kKTtcbiAgICAgICAgICAgICAgI2Vsc2VcbiAgICAgICAgICAgICAgICByZXR1cm4gdGV4dHVyZTJEKHRyYW5zbWlzc2lvblNhbXBsZXJNYXAsIGZyYWdDb29yZC54eSwgZnJhbWVidWZmZXJMb2QpO1xuICAgICAgICAgICAgICAjZW5kaWZcbiAgICAgICAgICAgICNlbHNlXG4gICAgICAgICAgICAgIHJldHVybiB0ZXh0dXJlMkQoYnVmZmVyLCBmcmFnQ29vcmQueHkpO1xuICAgICAgICAgICAgI2VuZGlmXG4gICAgICAgICAgfVxuICAgICAgICAgIHZlYzMgYXBwbHlWb2x1bWVBdHRlbnVhdGlvbiggY29uc3QgaW4gdmVjMyByYWRpYW5jZSwgY29uc3QgaW4gZmxvYXQgdHJhbnNtaXNzaW9uRGlzdGFuY2UsIGNvbnN0IGluIHZlYzMgYXR0ZW51YXRpb25Db2xvciwgY29uc3QgaW4gZmxvYXQgYXR0ZW51YXRpb25EaXN0YW5jZSApIHtcbiAgICAgICAgICAgIGlmICggaXNpbmYoIGF0dGVudWF0aW9uRGlzdGFuY2UgKSApIHtcbiAgICAgICAgICAgICAgLy8gQXR0ZW51YXRpb24gZGlzdGFuY2UgaXMgK+KIniwgaS5lLiB0aGUgdHJhbnNtaXR0ZWQgY29sb3IgaXMgbm90IGF0dGVudWF0ZWQgYXQgYWxsLlxuICAgICAgICAgICAgICByZXR1cm4gcmFkaWFuY2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBDb21wdXRlIGxpZ2h0IGF0dGVudWF0aW9uIHVzaW5nIEJlZXIncyBsYXcuXG4gICAgICAgICAgICAgIHZlYzMgYXR0ZW51YXRpb25Db2VmZmljaWVudCA9IC1sb2coIGF0dGVudWF0aW9uQ29sb3IgKSAvIGF0dGVudWF0aW9uRGlzdGFuY2U7XG4gICAgICAgICAgICAgIHZlYzMgdHJhbnNtaXR0YW5jZSA9IGV4cCggLSBhdHRlbnVhdGlvbkNvZWZmaWNpZW50ICogdHJhbnNtaXNzaW9uRGlzdGFuY2UgKTsgLy8gQmVlcidzIGxhd1xuICAgICAgICAgICAgICByZXR1cm4gdHJhbnNtaXR0YW5jZSAqIHJhZGlhbmNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB2ZWM0IGdldElCTFZvbHVtZVJlZnJhY3Rpb24oIGNvbnN0IGluIHZlYzMgbiwgY29uc3QgaW4gdmVjMyB2LCBjb25zdCBpbiBmbG9hdCByb3VnaG5lc3MsIGNvbnN0IGluIHZlYzMgZGlmZnVzZUNvbG9yLFxuICAgICAgICAgICAgY29uc3QgaW4gdmVjMyBzcGVjdWxhckNvbG9yLCBjb25zdCBpbiBmbG9hdCBzcGVjdWxhckY5MCwgY29uc3QgaW4gdmVjMyBwb3NpdGlvbiwgY29uc3QgaW4gbWF0NCBtb2RlbE1hdHJpeCxcbiAgICAgICAgICAgIGNvbnN0IGluIG1hdDQgdmlld01hdHJpeCwgY29uc3QgaW4gbWF0NCBwcm9qTWF0cml4LCBjb25zdCBpbiBmbG9hdCBpb3IsIGNvbnN0IGluIGZsb2F0IHRoaWNrbmVzcyxcbiAgICAgICAgICAgIGNvbnN0IGluIHZlYzMgYXR0ZW51YXRpb25Db2xvciwgY29uc3QgaW4gZmxvYXQgYXR0ZW51YXRpb25EaXN0YW5jZSApIHtcbiAgICAgICAgICAgIHZlYzMgdHJhbnNtaXNzaW9uUmF5ID0gZ2V0Vm9sdW1lVHJhbnNtaXNzaW9uUmF5KCBuLCB2LCB0aGlja25lc3MsIGlvciwgbW9kZWxNYXRyaXggKTtcbiAgICAgICAgICAgIHZlYzMgcmVmcmFjdGVkUmF5RXhpdCA9IHBvc2l0aW9uICsgdHJhbnNtaXNzaW9uUmF5O1xuICAgICAgICAgICAgLy8gUHJvamVjdCByZWZyYWN0ZWQgdmVjdG9yIG9uIHRoZSBmcmFtZWJ1ZmZlciwgd2hpbGUgbWFwcGluZyB0byBub3JtYWxpemVkIGRldmljZSBjb29yZGluYXRlcy5cbiAgICAgICAgICAgIHZlYzQgbmRjUG9zID0gcHJvak1hdHJpeCAqIHZpZXdNYXRyaXggKiB2ZWM0KCByZWZyYWN0ZWRSYXlFeGl0LCAxLjAgKTtcbiAgICAgICAgICAgIHZlYzIgcmVmcmFjdGlvbkNvb3JkcyA9IG5kY1Bvcy54eSAvIG5kY1Bvcy53O1xuICAgICAgICAgICAgcmVmcmFjdGlvbkNvb3JkcyArPSAxLjA7XG4gICAgICAgICAgICByZWZyYWN0aW9uQ29vcmRzIC89IDIuMDtcbiAgICAgICAgICAgIC8vIFNhbXBsZSBmcmFtZWJ1ZmZlciB0byBnZXQgcGl4ZWwgdGhlIHJlZnJhY3RlZCByYXkgaGl0cy5cbiAgICAgICAgICAgIHZlYzQgdHJhbnNtaXR0ZWRMaWdodCA9IGdldFRyYW5zbWlzc2lvblNhbXBsZSggcmVmcmFjdGlvbkNvb3Jkcywgcm91Z2huZXNzLCBpb3IgKTtcbiAgICAgICAgICAgIHZlYzMgYXR0ZW51YXRlZENvbG9yID0gYXBwbHlWb2x1bWVBdHRlbnVhdGlvbiggdHJhbnNtaXR0ZWRMaWdodC5yZ2IsIGxlbmd0aCggdHJhbnNtaXNzaW9uUmF5ICksIGF0dGVudWF0aW9uQ29sb3IsIGF0dGVudWF0aW9uRGlzdGFuY2UgKTtcbiAgICAgICAgICAgIC8vIEdldCB0aGUgc3BlY3VsYXIgY29tcG9uZW50LlxuICAgICAgICAgICAgdmVjMyBGID0gRW52aXJvbm1lbnRCUkRGKCBuLCB2LCBzcGVjdWxhckNvbG9yLCBzcGVjdWxhckY5MCwgcm91Z2huZXNzICk7XG4gICAgICAgICAgICByZXR1cm4gdmVjNCggKCAxLjAgLSBGICkgKiBhdHRlbnVhdGVkQ29sb3IgKiBkaWZmdXNlQ29sb3IsIHRyYW5zbWl0dGVkTGlnaHQuYSApO1xuICAgICAgICAgIH1cbiAgICAgICAgI2VuZGlmXFxuYCxcblx0XHRcdCk7XG5cblx0XHRcdC8vIEFkZCByZWZyYWN0aW9uXG5cdFx0XHRzaGFkZXIuZnJhZ21lbnRTaGFkZXIgPSBzaGFkZXIuZnJhZ21lbnRTaGFkZXIucmVwbGFjZShcblx0XHRcdFx0JyNpbmNsdWRlIDx0cmFuc21pc3Npb25fZnJhZ21lbnQ+Jyxcblx0XHRcdFx0LypnbHNsKi8gYFxuICAgICAgICAvLyBJbXByb3ZlIHRoZSByZWZyYWN0aW9uIHRvIHVzZSB0aGUgd29ybGQgcG9zXG4gICAgICAgIG1hdGVyaWFsLnRyYW5zbWlzc2lvbiA9IF90cmFuc21pc3Npb247XG4gICAgICAgIG1hdGVyaWFsLnRyYW5zbWlzc2lvbkFscGhhID0gMS4wO1xuICAgICAgICBtYXRlcmlhbC50aGlja25lc3MgPSB0aGlja25lc3M7XG4gICAgICAgIG1hdGVyaWFsLmF0dGVudWF0aW9uRGlzdGFuY2UgPSBhdHRlbnVhdGlvbkRpc3RhbmNlO1xuICAgICAgICBtYXRlcmlhbC5hdHRlbnVhdGlvbkNvbG9yID0gYXR0ZW51YXRpb25Db2xvcjtcbiAgICAgICAgI2lmZGVmIFVTRV9UUkFOU01JU1NJT05NQVBcbiAgICAgICAgICBtYXRlcmlhbC50cmFuc21pc3Npb24gKj0gdGV4dHVyZTJEKCB0cmFuc21pc3Npb25NYXAsIHZVdiApLnI7XG4gICAgICAgICNlbmRpZlxuICAgICAgICAjaWZkZWYgVVNFX1RISUNLTkVTU01BUFxuICAgICAgICAgIG1hdGVyaWFsLnRoaWNrbmVzcyAqPSB0ZXh0dXJlMkQoIHRoaWNrbmVzc01hcCwgdlV2ICkuZztcbiAgICAgICAgI2VuZGlmXG5cbiAgICAgICAgdmVjMyBwb3MgPSB2V29ybGRQb3NpdGlvbjtcbiAgICAgICAgdmVjMyB2ID0gbm9ybWFsaXplKCBjYW1lcmFQb3NpdGlvbiAtIHBvcyApO1xuICAgICAgICB2ZWMzIG4gPSBpbnZlcnNlVHJhbnNmb3JtRGlyZWN0aW9uKCBub3JtYWwsIHZpZXdNYXRyaXggKTtcbiAgICAgICAgdmVjMyB0cmFuc21pc3Npb24gPSB2ZWMzKDAuMCk7XG4gICAgICAgIGZsb2F0IHRyYW5zbWlzc2lvblIsIHRyYW5zbWlzc2lvbkIsIHRyYW5zbWlzc2lvbkc7XG4gICAgICAgIGZsb2F0IHJhbmRvbUNvb3JkcyA9IHJhbmQoKTtcbiAgICAgICAgZmxvYXQgdGhpY2tuZXNzX3NtZWFyID0gdGhpY2tuZXNzICogbWF4KHBvdyhyb3VnaG5lc3NGYWN0b3IsIDAuMzMpLCBhbmlzb3Ryb3BpY0JsdXIpO1xuICAgICAgICB2ZWMzIGRpc3RvcnRpb25Ob3JtYWwgPSB2ZWMzKDAuMCk7XG4gICAgICAgIHZlYzMgdGVtcG9yYWxPZmZzZXQgPSB2ZWMzKHRpbWUsIC10aW1lLCAtdGltZSkgKiB0ZW1wb3JhbERpc3RvcnRpb247XG4gICAgICAgIGlmIChkaXN0b3J0aW9uID4gMC4wKSB7XG4gICAgICAgICAgZGlzdG9ydGlvbk5vcm1hbCA9IGRpc3RvcnRpb24gKiB2ZWMzKHNub2lzZUZyYWN0YWwodmVjMygocG9zICogZGlzdG9ydGlvblNjYWxlICsgdGVtcG9yYWxPZmZzZXQpKSksIHNub2lzZUZyYWN0YWwodmVjMyhwb3Muenh5ICogZGlzdG9ydGlvblNjYWxlIC0gdGVtcG9yYWxPZmZzZXQpKSwgc25vaXNlRnJhY3RhbCh2ZWMzKHBvcy55eHogKiBkaXN0b3J0aW9uU2NhbGUgKyB0ZW1wb3JhbE9mZnNldCkpKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGZsb2F0IGkgPSAwLjA7IGkgPCAke3NhbXBsZXN9LjA7IGkgKyspIHtcbiAgICAgICAgICB2ZWMzIHNhbXBsZU5vcm0gPSBub3JtYWxpemUobiArIHJvdWdobmVzc0ZhY3RvciAqIHJvdWdobmVzc0ZhY3RvciAqIDIuMCAqIG5vcm1hbGl6ZSh2ZWMzKHJhbmQoKSAtIDAuNSwgcmFuZCgpIC0gMC41LCByYW5kKCkgLSAwLjUpKSAqIHBvdyhyYW5kKCksIDAuMzMpICsgZGlzdG9ydGlvbk5vcm1hbCk7XG4gICAgICAgICAgdHJhbnNtaXNzaW9uUiA9IGdldElCTFZvbHVtZVJlZnJhY3Rpb24oXG4gICAgICAgICAgICBzYW1wbGVOb3JtLCB2LCBtYXRlcmlhbC5yb3VnaG5lc3MsIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciwgbWF0ZXJpYWwuc3BlY3VsYXJDb2xvciwgbWF0ZXJpYWwuc3BlY3VsYXJGOTAsXG4gICAgICAgICAgICBwb3MsIG1vZGVsTWF0cml4LCB2aWV3TWF0cml4LCBwcm9qZWN0aW9uTWF0cml4LCBtYXRlcmlhbC5pb3IsIG1hdGVyaWFsLnRoaWNrbmVzcyAgKyB0aGlja25lc3Nfc21lYXIgKiAoaSArIHJhbmRvbUNvb3JkcykgLyBmbG9hdCgke3NhbXBsZXN9KSxcbiAgICAgICAgICAgIG1hdGVyaWFsLmF0dGVudWF0aW9uQ29sb3IsIG1hdGVyaWFsLmF0dGVudWF0aW9uRGlzdGFuY2VcbiAgICAgICAgICApLnI7XG4gICAgICAgICAgdHJhbnNtaXNzaW9uRyA9IGdldElCTFZvbHVtZVJlZnJhY3Rpb24oXG4gICAgICAgICAgICBzYW1wbGVOb3JtLCB2LCBtYXRlcmlhbC5yb3VnaG5lc3MsIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciwgbWF0ZXJpYWwuc3BlY3VsYXJDb2xvciwgbWF0ZXJpYWwuc3BlY3VsYXJGOTAsXG4gICAgICAgICAgICBwb3MsIG1vZGVsTWF0cml4LCB2aWV3TWF0cml4LCBwcm9qZWN0aW9uTWF0cml4LCBtYXRlcmlhbC5pb3IgICogKDEuMCArIGNocm9tYXRpY0FiZXJyYXRpb24gKiAoaSArIHJhbmRvbUNvb3JkcykgLyBmbG9hdCgke3NhbXBsZXN9KSkgLCBtYXRlcmlhbC50aGlja25lc3MgKyB0aGlja25lc3Nfc21lYXIgKiAoaSArIHJhbmRvbUNvb3JkcykgLyBmbG9hdCgke3NhbXBsZXN9KSxcbiAgICAgICAgICAgIG1hdGVyaWFsLmF0dGVudWF0aW9uQ29sb3IsIG1hdGVyaWFsLmF0dGVudWF0aW9uRGlzdGFuY2VcbiAgICAgICAgICApLmc7XG4gICAgICAgICAgdHJhbnNtaXNzaW9uQiA9IGdldElCTFZvbHVtZVJlZnJhY3Rpb24oXG4gICAgICAgICAgICBzYW1wbGVOb3JtLCB2LCBtYXRlcmlhbC5yb3VnaG5lc3MsIG1hdGVyaWFsLmRpZmZ1c2VDb2xvciwgbWF0ZXJpYWwuc3BlY3VsYXJDb2xvciwgbWF0ZXJpYWwuc3BlY3VsYXJGOTAsXG4gICAgICAgICAgICBwb3MsIG1vZGVsTWF0cml4LCB2aWV3TWF0cml4LCBwcm9qZWN0aW9uTWF0cml4LCBtYXRlcmlhbC5pb3IgKiAoMS4wICsgMi4wICogY2hyb21hdGljQWJlcnJhdGlvbiAqIChpICsgcmFuZG9tQ29vcmRzKSAvIGZsb2F0KCR7c2FtcGxlc30pKSwgbWF0ZXJpYWwudGhpY2tuZXNzICsgdGhpY2tuZXNzX3NtZWFyICogKGkgKyByYW5kb21Db29yZHMpIC8gZmxvYXQoJHtzYW1wbGVzfSksXG4gICAgICAgICAgICBtYXRlcmlhbC5hdHRlbnVhdGlvbkNvbG9yLCBtYXRlcmlhbC5hdHRlbnVhdGlvbkRpc3RhbmNlXG4gICAgICAgICAgKS5iO1xuICAgICAgICAgIHRyYW5zbWlzc2lvbi5yICs9IHRyYW5zbWlzc2lvblI7XG4gICAgICAgICAgdHJhbnNtaXNzaW9uLmcgKz0gdHJhbnNtaXNzaW9uRztcbiAgICAgICAgICB0cmFuc21pc3Npb24uYiArPSB0cmFuc21pc3Npb25CO1xuICAgICAgICB9XG4gICAgICAgIHRyYW5zbWlzc2lvbiAvPSAke3NhbXBsZXN9LjA7XG4gICAgICAgIHRvdGFsRGlmZnVzZSA9IG1peCggdG90YWxEaWZmdXNlLCB0cmFuc21pc3Npb24ucmdiLCBtYXRlcmlhbC50cmFuc21pc3Npb24gKTtcXG5gLFxuXHRcdFx0KTtcblx0XHR9O1xuXG5cdFx0T2JqZWN0LmtleXModGhpcy51bmlmb3JtcykuZm9yRWFjaCgobmFtZSkgPT5cblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBuYW1lLCB7XG5cdFx0XHRcdGdldDogKCkgPT4gdGhpcy51bmlmb3Jtc1tuYW1lIGFzIGtleW9mIHR5cGVvZiB0aGlzLnVuaWZvcm1zXS52YWx1ZSxcblx0XHRcdFx0c2V0OiAodikgPT4gKHRoaXMudW5pZm9ybXNbbmFtZSBhcyBrZXlvZiB0eXBlb2YgdGhpcy51bmlmb3Jtc10udmFsdWUgPSB2KSxcblx0XHRcdH0pLFxuXHRcdCk7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -34,4 +34,4 @@ export class MeshWobbleMaterial extends THREE.MeshStandardMaterial {
|
|
|
34
34
|
this._factor.value = v;
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC13b2JibGUtbWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc2hhZGVycy9zcmMvbWVzaC13b2JibGUtbWF0ZXJpYWwvbWVzaC13b2JibGUtbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFNL0IsTUFBTSxPQUFPLGtCQUFtQixTQUFRLEtBQUssQ0FBQyxvQkFBb0I7SUFJakUsWUFBWSxhQUFtRCxFQUFFO1FBQ2hFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRVEsZUFBZSxDQUFDLE1BQW9CO1FBQzVDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNyQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFekMsTUFBTSxDQUFDLFlBQVksR0FBRzs7O1FBR2hCLE1BQU0sQ0FBQyxZQUFZO0tBQ3RCLENBQUM7UUFDSixNQUFNLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUNoRCx5QkFBeUIsRUFDekI7Ozs7OytCQUs0QixDQUM1QixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksSUFBSTtRQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLENBQUM7UUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDeEIsQ0FBQztDQUdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuXG5pbnRlcmZhY2UgVW5pZm9ybTxUPiB7XG5cdHZhbHVlOiBUO1xufVxuXG5leHBvcnQgY2xhc3MgTWVzaFdvYmJsZU1hdGVyaWFsIGV4dGVuZHMgVEhSRUUuTWVzaFN0YW5kYXJkTWF0ZXJpYWwge1xuXHRfdGltZTogVW5pZm9ybTxudW1iZXI+O1xuXHRfZmFjdG9yOiBVbmlmb3JtPG51bWJlcj47XG5cblx0Y29uc3RydWN0b3IocGFyYW1ldGVyczogVEhSRUUuTWVzaFN0YW5kYXJkTWF0ZXJpYWxQYXJhbWV0ZXJzID0ge30pIHtcblx0XHRzdXBlcihwYXJhbWV0ZXJzKTtcblx0XHR0aGlzLnNldFZhbHVlcyhwYXJhbWV0ZXJzKTtcblx0XHR0aGlzLl90aW1lID0geyB2YWx1ZTogMCB9O1xuXHRcdHRoaXMuX2ZhY3RvciA9IHsgdmFsdWU6IDEgfTtcblx0fVxuXG5cdG92ZXJyaWRlIG9uQmVmb3JlQ29tcGlsZShzaGFkZXI6IFRIUkVFLlNoYWRlcikge1xuXHRcdHNoYWRlci51bmlmb3Jtc1sndGltZSddID0gdGhpcy5fdGltZTtcblx0XHRzaGFkZXIudW5pZm9ybXNbJ2ZhY3RvciddID0gdGhpcy5fZmFjdG9yO1xuXG5cdFx0c2hhZGVyLnZlcnRleFNoYWRlciA9IGBcbiAgICAgIHVuaWZvcm0gZmxvYXQgdGltZTtcbiAgICAgIHVuaWZvcm0gZmxvYXQgZmFjdG9yO1xuICAgICAgJHtzaGFkZXIudmVydGV4U2hhZGVyfVxuICAgIGA7XG5cdFx0c2hhZGVyLnZlcnRleFNoYWRlciA9IHNoYWRlci52ZXJ0ZXhTaGFkZXIucmVwbGFjZShcblx0XHRcdCcjaW5jbHVkZSA8YmVnaW5fdmVydGV4PicsXG5cdFx0XHRgZmxvYXQgdGhldGEgPSBzaW4oIHRpbWUgKyBwb3NpdGlvbi55ICkgLyAyLjAgKiBmYWN0b3I7XG4gICAgICAgIGZsb2F0IGMgPSBjb3MoIHRoZXRhICk7XG4gICAgICAgIGZsb2F0IHMgPSBzaW4oIHRoZXRhICk7XG4gICAgICAgIG1hdDMgbSA9IG1hdDMoIGMsIDAsIHMsIDAsIDEsIDAsIC1zLCAwLCBjICk7XG4gICAgICAgIHZlYzMgdHJhbnNmb3JtZWQgPSB2ZWMzKCBwb3NpdGlvbiApICogbTtcbiAgICAgICAgdk5vcm1hbCA9IHZOb3JtYWwgKiBtO2AsXG5cdFx0KTtcblx0fVxuXG5cdGdldCB0aW1lKCkge1xuXHRcdHJldHVybiB0aGlzLl90aW1lLnZhbHVlO1xuXHR9XG5cblx0c2V0IHRpbWUodikge1xuXHRcdHRoaXMuX3RpbWUudmFsdWUgPSB2O1xuXHR9XG5cblx0Z2V0IGZhY3RvcigpIHtcblx0XHRyZXR1cm4gdGhpcy5fZmFjdG9yLnZhbHVlO1xuXHR9XG5cblx0c2V0IGZhY3Rvcih2KSB7XG5cdFx0dGhpcy5fZmFjdG9yLnZhbHVlID0gdjtcblx0fVxuXG5cdGRlY2xhcmUgc3BlZWQ6IG51bWJlcjtcbn1cbiJdfQ==
|
|
@@ -7,10 +7,8 @@ export function shaderMaterial(uniforms, vertexShader, fragmentShader, onInit) {
|
|
|
7
7
|
super({
|
|
8
8
|
uniforms: entries.reduce((acc, [name, value]) => {
|
|
9
9
|
const uniform = THREE.UniformsUtils.clone({ [name]: { value } });
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
...uniform,
|
|
13
|
-
};
|
|
10
|
+
Object.assign(acc, uniform);
|
|
11
|
+
return acc;
|
|
14
12
|
}, {}),
|
|
15
13
|
vertexShader,
|
|
16
14
|
fragmentShader,
|
|
@@ -31,4 +29,4 @@ export function shaderMaterial(uniforms, vertexShader, fragmentShader, onInit) {
|
|
|
31
29
|
material.key = THREE.MathUtils.generateUUID();
|
|
32
30
|
return material;
|
|
33
31
|
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhZGVyLW1hdGVyaWFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3NoYWRlcnMvc3JjL3NoYWRlci1tYXRlcmlhbC9zaGFkZXItbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFL0IsTUFBTSxVQUFVLGNBQWMsQ0FvQjdCLFFBQWtCLEVBQ2xCLFlBQW9CLEVBQ3BCLGNBQXNCLEVBQ3RCLE1BQWtEO0lBRWxELE1BQU0sUUFBUSxHQUFHLEtBQU0sU0FBUSxLQUFLLENBQUMsY0FBYztRQUVsRCxZQUFZLFVBQVUsR0FBRyxFQUFFO1lBQzFCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekMsNkJBQTZCO1lBQzdCLEtBQUssQ0FBQztnQkFDTCxRQUFRLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO29CQUMvQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ2pFLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO29CQUM1QixPQUFPLEdBQUcsQ0FBQztnQkFDWixDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNOLFlBQVk7Z0JBQ1osY0FBYzthQUNkLENBQUMsQ0FBQztZQVpHLFFBQUcsR0FBVyxFQUFFLENBQUM7WUFhdkIsd0JBQXdCO1lBQ3hCLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FDMUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO2dCQUNqQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLO2dCQUNwQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO2FBQzNDLENBQUMsQ0FDRixDQUFDO1lBRUYsaURBQWlEO1lBQ2pELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ2hDLGNBQWM7WUFDZCxJQUFJLE1BQU07Z0JBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLENBQUM7S0FDMkQsQ0FBQztJQUM5RCxRQUFRLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDOUMsT0FBTyxRQUFRLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNoYWRlck1hdGVyaWFsPFxuXHRVbmlmb3JtcyBleHRlbmRzIHtcblx0XHRbbmFtZTogc3RyaW5nXTpcblx0XHRcdHwgVEhSRUUuQ3ViZVRleHR1cmVcblx0XHRcdHwgVEhSRUUuVGV4dHVyZVxuXHRcdFx0fCBJbnQzMkFycmF5XG5cdFx0XHR8IEZsb2F0MzJBcnJheVxuXHRcdFx0fCBUSFJFRS5NYXRyaXg0XG5cdFx0XHR8IFRIUkVFLk1hdHJpeDNcblx0XHRcdHwgVEhSRUUuUXVhdGVybmlvblxuXHRcdFx0fCBUSFJFRS5WZWN0b3I0XG5cdFx0XHR8IFRIUkVFLlZlY3RvcjNcblx0XHRcdHwgVEhSRUUuVmVjdG9yMlxuXHRcdFx0fCBUSFJFRS5Db2xvclxuXHRcdFx0fCBudW1iZXJcblx0XHRcdHwgYm9vbGVhblxuXHRcdFx0fCBBcnJheTxhbnk+XG5cdFx0XHR8IG51bGw7XG5cdH0sXG4+KFxuXHR1bmlmb3JtczogVW5pZm9ybXMsXG5cdHZlcnRleFNoYWRlcjogc3RyaW5nLFxuXHRmcmFnbWVudFNoYWRlcjogc3RyaW5nLFxuXHRvbkluaXQ/OiAobWF0ZXJpYWw/OiBUSFJFRS5TaGFkZXJNYXRlcmlhbCkgPT4gdm9pZCxcbikge1xuXHRjb25zdCBtYXRlcmlhbCA9IGNsYXNzIGV4dGVuZHMgVEhSRUUuU2hhZGVyTWF0ZXJpYWwge1xuXHRcdHB1YmxpYyBrZXk6IHN0cmluZyA9ICcnO1xuXHRcdGNvbnN0cnVjdG9yKHBhcmFtZXRlcnMgPSB7fSkge1xuXHRcdFx0Y29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKHVuaWZvcm1zKTtcblx0XHRcdC8vIENyZWF0ZSB1bmZvcm1zIGFuZCBzaGFkZXJzXG5cdFx0XHRzdXBlcih7XG5cdFx0XHRcdHVuaWZvcm1zOiBlbnRyaWVzLnJlZHVjZSgoYWNjLCBbbmFtZSwgdmFsdWVdKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgdW5pZm9ybSA9IFRIUkVFLlVuaWZvcm1zVXRpbHMuY2xvbmUoeyBbbmFtZV06IHsgdmFsdWUgfSB9KTtcblx0XHRcdFx0XHRPYmplY3QuYXNzaWduKGFjYywgdW5pZm9ybSk7XG5cdFx0XHRcdFx0cmV0dXJuIGFjYztcblx0XHRcdFx0fSwge30pLFxuXHRcdFx0XHR2ZXJ0ZXhTaGFkZXIsXG5cdFx0XHRcdGZyYWdtZW50U2hhZGVyLFxuXHRcdFx0fSk7XG5cdFx0XHQvLyBDcmVhdGUgZ2V0dGVyL3NldHRlcnNcblx0XHRcdGVudHJpZXMuZm9yRWFjaCgoW25hbWVdKSA9PlxuXHRcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgbmFtZSwge1xuXHRcdFx0XHRcdGdldDogKCkgPT4gdGhpcy51bmlmb3Jtc1tuYW1lXS52YWx1ZSxcblx0XHRcdFx0XHRzZXQ6ICh2KSA9PiAodGhpcy51bmlmb3Jtc1tuYW1lXS52YWx1ZSA9IHYpLFxuXHRcdFx0XHR9KSxcblx0XHRcdCk7XG5cblx0XHRcdC8vIEFzc2lnbiBwYXJhbWV0ZXJzLCB0aGlzIG1pZ2h0IGluY2x1ZGUgdW5pZm9ybXNcblx0XHRcdE9iamVjdC5hc3NpZ24odGhpcywgcGFyYW1ldGVycyk7XG5cdFx0XHQvLyBDYWxsIG9uSW5pdFxuXHRcdFx0aWYgKG9uSW5pdCkgb25Jbml0KHRoaXMpO1xuXHRcdH1cblx0fSBhcyB1bmtub3duIGFzIHR5cGVvZiBUSFJFRS5TaGFkZXJNYXRlcmlhbCAmIHsga2V5OiBzdHJpbmcgfTtcblx0bWF0ZXJpYWwua2V5ID0gVEhSRUUuTWF0aFV0aWxzLmdlbmVyYXRlVVVJRCgpO1xuXHRyZXR1cm4gbWF0ZXJpYWw7XG59XG4iXX0=
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { revision } from 'angular-three-soba/utils';
|
|
1
2
|
import * as THREE from 'three';
|
|
2
3
|
import { shaderMaterial } from '../shader-material/shader-material';
|
|
3
4
|
export const SoftShadowMaterial = shaderMaterial({
|
|
@@ -6,28 +7,20 @@ export const SoftShadowMaterial = shaderMaterial({
|
|
|
6
7
|
alphaTest: 0.75,
|
|
7
8
|
opacity: 0,
|
|
8
9
|
map: null,
|
|
9
|
-
},
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
void main() {
|
|
27
|
-
vec4 sampledDiffuseColor = texture2D(map, vUv);
|
|
28
|
-
gl_FragColor = vec4(color * sampledDiffuseColor.r * blend, max(0.0, (1.0 - (sampledDiffuseColor.r + sampledDiffuseColor.g + sampledDiffuseColor.b) / alphaTest)) * opacity);
|
|
29
|
-
#include <tonemapping_fragment>
|
|
30
|
-
#include <encodings_fragment>
|
|
31
|
-
}
|
|
32
|
-
`);
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mdC1zaGFkb3ctbWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc2hhZGVycy9zcmMvc29mdC1zaGFkb3ctbWF0ZXJpYWwvc29mdC1zaGFkb3ctbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXBFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FDNUM7SUFDSSxLQUFLLEVBQUUsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFO0lBQ3hCLEtBQUssRUFBRSxHQUFHO0lBQ1YsU0FBUyxFQUFFLElBQUk7SUFDZixPQUFPLEVBQUUsQ0FBQztJQUNWLEdBQUcsRUFBRSxJQUFJO0NBQ1o7QUFDRCxnQkFBZ0I7QUFDaEI7Ozs7OztLQU1DO0FBQ0QsZ0JBQWdCO0FBQ2hCOzs7Ozs7Ozs7Ozs7O0tBYUMsQ0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgc2hhZGVyTWF0ZXJpYWwgfSBmcm9tICcuLi9zaGFkZXItbWF0ZXJpYWwvc2hhZGVyLW1hdGVyaWFsJztcblxuZXhwb3J0IGNvbnN0IFNvZnRTaGFkb3dNYXRlcmlhbCA9IHNoYWRlck1hdGVyaWFsKFxuICAgIHtcbiAgICAgICAgY29sb3I6IG5ldyBUSFJFRS5Db2xvcigpLFxuICAgICAgICBibGVuZDogMi4wLFxuICAgICAgICBhbHBoYVRlc3Q6IDAuNzUsXG4gICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgIG1hcDogbnVsbCxcbiAgICB9LFxuICAgIC8vIGxhbmd1YWdlPWdsc2xcbiAgICBgXG52YXJ5aW5nIHZlYzIgdlV2O1xudm9pZCBtYWluKCkge1xuICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiB2aWV3TWF0cml4ICogbW9kZWxNYXRyaXggKiB2ZWM0KHBvc2l0aW9uLCAxLik7XG4gIHZVdiA9IHV2O1xufVxuICAgIGAsXG4gICAgLy8gbGFuZ3VhZ2U9Z2xzbFxuICAgIGBcbnZhcnlpbmcgdmVjMiB2VXY7XG51bmlmb3JtIHNhbXBsZXIyRCBtYXA7XG51bmlmb3JtIHZlYzMgY29sb3I7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG51bmlmb3JtIGZsb2F0IGFscGhhVGVzdDtcbnVuaWZvcm0gZmxvYXQgYmxlbmQ7XG52b2lkIG1haW4oKSB7XG4gIHZlYzQgc2FtcGxlZERpZmZ1c2VDb2xvciA9IHRleHR1cmUyRChtYXAsIHZVdik7XG4gIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3IgKiBzYW1wbGVkRGlmZnVzZUNvbG9yLnIgKiBibGVuZCwgbWF4KDAuMCwgKDEuMCAtIChzYW1wbGVkRGlmZnVzZUNvbG9yLnIgKyBzYW1wbGVkRGlmZnVzZUNvbG9yLmcgKyBzYW1wbGVkRGlmZnVzZUNvbG9yLmIpIC8gYWxwaGFUZXN0KSkgKiBvcGFjaXR5KTtcbiAgI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuICAjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxufVxuICAgIGBcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29mdFNoYWRvd01hdGVyaWFsSW5wdXRzIHtcbiAgICBtYXA6IFRIUkVFLlRleHR1cmU7XG4gICAgY29sb3I/OiBUSFJFRS5Db2xvclJlcHJlc2VudGF0aW9uO1xuICAgIGFscGhhVGVzdD86IG51bWJlcjtcbiAgICBibGVuZD86IG51bWJlcjtcbn1cbiJdfQ==
|
|
10
|
+
}, `varying vec2 vUv;
|
|
11
|
+
void main() {
|
|
12
|
+
gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);
|
|
13
|
+
vUv = uv;
|
|
14
|
+
}`, `varying vec2 vUv;
|
|
15
|
+
uniform sampler2D map;
|
|
16
|
+
uniform vec3 color;
|
|
17
|
+
uniform float opacity;
|
|
18
|
+
uniform float alphaTest;
|
|
19
|
+
uniform float blend;
|
|
20
|
+
void main() {
|
|
21
|
+
vec4 sampledDiffuseColor = texture2D(map, vUv);
|
|
22
|
+
gl_FragColor = vec4(color * sampledDiffuseColor.r * blend, max(0.0, (1.0 - (sampledDiffuseColor.r + sampledDiffuseColor.g + sampledDiffuseColor.b) / alphaTest)) * opacity);
|
|
23
|
+
#include <tonemapping_fragment>
|
|
24
|
+
#include <${revision >= 154 ? 'colorspace_fragment' : 'encodings_fragment'}>
|
|
25
|
+
}`);
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mdC1zaGFkb3ctbWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc2hhZGVycy9zcmMvc29mdC1zaGFkb3ctbWF0ZXJpYWwvc29mdC1zaGFkb3ctbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVwRSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxjQUFjLENBQy9DO0lBQ0MsS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRTtJQUN4QixLQUFLLEVBQUUsR0FBRztJQUNWLFNBQVMsRUFBRSxJQUFJO0lBQ2YsT0FBTyxFQUFFLENBQUM7SUFDVixHQUFHLEVBQUUsSUFBSTtDQUNULEVBQ0Q7Ozs7S0FJSSxFQUNKOzs7Ozs7Ozs7O2lCQVVnQixRQUFRLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsb0JBQW9CO0tBQzFFLENBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTmd0U2hhZGVyTWF0ZXJpYWwgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IHJldmlzaW9uIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL3V0aWxzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IHNoYWRlck1hdGVyaWFsIH0gZnJvbSAnLi4vc2hhZGVyLW1hdGVyaWFsL3NoYWRlci1tYXRlcmlhbCc7XG5cbmV4cG9ydCBjb25zdCBTb2Z0U2hhZG93TWF0ZXJpYWwgPSBzaGFkZXJNYXRlcmlhbChcblx0e1xuXHRcdGNvbG9yOiBuZXcgVEhSRUUuQ29sb3IoKSxcblx0XHRibGVuZDogMi4wLFxuXHRcdGFscGhhVGVzdDogMC43NSxcblx0XHRvcGFjaXR5OiAwLFxuXHRcdG1hcDogbnVsbCxcblx0fSxcblx0YHZhcnlpbmcgdmVjMiB2VXY7XG4gICB2b2lkIG1haW4oKSB7XG4gICAgIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIHZpZXdNYXRyaXggKiBtb2RlbE1hdHJpeCAqIHZlYzQocG9zaXRpb24sIDEuKTtcbiAgICAgdlV2ID0gdXY7XG4gICB9YCxcblx0YHZhcnlpbmcgdmVjMiB2VXY7XG4gICB1bmlmb3JtIHNhbXBsZXIyRCBtYXA7XG4gICB1bmlmb3JtIHZlYzMgY29sb3I7XG4gICB1bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4gICB1bmlmb3JtIGZsb2F0IGFscGhhVGVzdDtcbiAgIHVuaWZvcm0gZmxvYXQgYmxlbmQ7XG4gICB2b2lkIG1haW4oKSB7XG4gICAgIHZlYzQgc2FtcGxlZERpZmZ1c2VDb2xvciA9IHRleHR1cmUyRChtYXAsIHZVdik7XG4gICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3IgKiBzYW1wbGVkRGlmZnVzZUNvbG9yLnIgKiBibGVuZCwgbWF4KDAuMCwgKDEuMCAtIChzYW1wbGVkRGlmZnVzZUNvbG9yLnIgKyBzYW1wbGVkRGlmZnVzZUNvbG9yLmcgKyBzYW1wbGVkRGlmZnVzZUNvbG9yLmIpIC8gYWxwaGFUZXN0KSkgKiBvcGFjaXR5KTtcbiAgICAgI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuICAgICAjaW5jbHVkZSA8JHtyZXZpc2lvbiA+PSAxNTQgPyAnY29sb3JzcGFjZV9mcmFnbWVudCcgOiAnZW5jb2RpbmdzX2ZyYWdtZW50J30+XG4gICB9YCxcbik7XG5cbmV4cG9ydCB0eXBlIE5ndFNvZnRTaGFkb3dNYXRlcmlhbFN0YXRlID0ge1xuXHRtYXA6IFRIUkVFLlRleHR1cmU7XG5cdGNvbG9yPzogVEhSRUUuQ29sb3JSZXByZXNlbnRhdGlvbjtcblx0YWxwaGFUZXN0PzogbnVtYmVyO1xuXHRibGVuZD86IG51bWJlcjtcbn07XG5cbmRlY2xhcmUgZ2xvYmFsIHtcblx0aW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG5cdFx0LyoqXG5cdFx0ICogIEBleHRlbmRzIG5ndC1zaGFkZXItbWF0ZXJpYWxcblx0XHQgKi9cblx0XHQnbmd0LXNvZnQtc2hhZG93LW1hdGVyaWFsJzogTmd0U29mdFNoYWRvd01hdGVyaWFsU3RhdGUgJiBOZ3RTaGFkZXJNYXRlcmlhbDtcblx0fVxufVxuIl19
|