@esotericsoftware/spine-core 4.3.4 → 4.3.6
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/dist/Animation.d.ts +87 -75
- package/dist/Animation.js +329 -186
- package/dist/AnimationState.d.ts +16 -14
- package/dist/AnimationState.js +86 -56
- package/dist/PhysicsConstraintData.d.ts +1 -1
- package/dist/PhysicsConstraintData.js +2 -2
- package/dist/SkeletonBinary.js +8 -3
- package/dist/SkeletonJson.js +6 -4
- package/dist/Slider.js +3 -3
- package/dist/SliderData.d.ts +2 -0
- package/dist/SliderData.js +4 -1
- package/dist/TransformConstraintData.js +4 -4
- package/dist/esm/spine-core.min.mjs +2 -2
- package/dist/esm/spine-core.mjs +457 -271
- package/dist/esm/spine-core.mjs.map +3 -3
- package/dist/iife/spine-core.js +457 -271
- package/dist/iife/spine-core.js.map +3 -3
- package/dist/iife/spine-core.min.js +2 -2
- package/package.json +1 -1
package/dist/Slider.js
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
27
27
|
* THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
28
|
*****************************************************************************/
|
|
29
|
-
import { DrawOrderFolderTimeline, DrawOrderTimeline, isConstraintTimeline, isSlotTimeline, PhysicsConstraintTimeline } from "./Animation.js";
|
|
29
|
+
import { DrawOrderFolderTimeline, DrawOrderTimeline, isConstraintTimeline, isSlotTimeline, MixFrom, PhysicsConstraintTimeline } from "./Animation.js";
|
|
30
30
|
import { Constraint } from "./Constraint.js";
|
|
31
31
|
import { SliderPose } from "./SliderPose.js";
|
|
32
32
|
/** Applies an animation based on either the slider's {@link SliderPose.time} or a bone's transform property.
|
|
@@ -69,7 +69,7 @@ export class Slider extends Constraint {
|
|
|
69
69
|
const indices = animation.bones;
|
|
70
70
|
for (let i = 0, n = animation.bones.length; i < n; i++)
|
|
71
71
|
bones[indices[i]].appliedPose.modifyLocal(skeleton);
|
|
72
|
-
animation.apply(skeleton, p.time, p.time, data.loop, null, p.mix,
|
|
72
|
+
animation.apply(skeleton, p.time, p.time, data.loop, null, p.mix, MixFrom.current, data.additive, false, true);
|
|
73
73
|
}
|
|
74
74
|
sort(skeleton) {
|
|
75
75
|
const bone = this.bone;
|
|
@@ -112,4 +112,4 @@ export class Slider extends Constraint {
|
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2xpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1NsaWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytFQTJCK0U7QUFFL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLGNBQWMsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdJLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUk3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0M7O21HQUVtRztBQUNuRyxNQUFNLE9BQU8sTUFBTyxTQUFRLFVBQTBDO0lBQzdELE1BQU0sQ0FBVSxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXJELG1HQUFtRztJQUNuRyxJQUFJLEdBQWdCLElBQUksQ0FBQztJQUV6QixZQUFhLElBQWdCLEVBQUUsUUFBa0I7UUFDaEQsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLFVBQVUsRUFBRSxFQUFFLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsUUFBUTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUUzRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSTtZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTSxJQUFJLENBQUUsUUFBa0I7UUFDOUIsSUFBSSxJQUFJLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDO0lBRU0sTUFBTSxDQUFFLFFBQWtCLEVBQUUsT0FBZ0I7UUFDbEQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMzQixJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUFFLE9BQU87UUFFeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNyRSxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07Z0JBQUUsT0FBTztZQUN6QixJQUFJLElBQUksQ0FBQyxLQUFLO2dCQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEUsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTTtrQkFDakIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDckgsSUFBSSxJQUFJLENBQUMsSUFBSTtnQkFDWixDQUFDLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQzs7Z0JBRTVELENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQzdCLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3JELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXJELFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRUQsSUFBSSxDQUFFLFFBQWtCO1FBQ3ZCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVqQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQzdCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1FBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzdELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztRQUMzQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQzdCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDekMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUNqQyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUM3QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNqRSxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsSUFBSSxjQUFjLENBQUMsQ0FBQyxDQUFDO2dCQUNwQixRQUFRLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztpQkFDckMsSUFBSSxDQUFDLFlBQVksaUJBQWlCLElBQUksQ0FBQyxZQUFZLHVCQUF1QjtnQkFDOUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztpQkFDN0IsSUFBSSxDQUFDLFlBQVkseUJBQXlCLEVBQUUsQ0FBQztnQkFDakQsSUFBSSxDQUFDLENBQUMsZUFBZSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQzlCLEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxZQUFZLEVBQUUsRUFBRSxFQUFFO3dCQUN2QyxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNwQyxDQUFDOztvQkFDQSxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztZQUN2RCxDQUFDO2lCQUFNLElBQUksb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDcEMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDLGVBQWUsQ0FBQztnQkFDMUMsSUFBSSxlQUFlLEtBQUssQ0FBQyxDQUFDO29CQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFDaEYsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogU3BpbmUgUnVudGltZXMgTGljZW5zZSBBZ3JlZW1lbnRcbiAqIExhc3QgdXBkYXRlZCBBcHJpbCA1LCAyMDI1LiBSZXBsYWNlcyBhbGwgcHJpb3IgdmVyc2lvbnMuXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLTIwMjUsIEVzb3RlcmljIFNvZnR3YXJlIExMQ1xuICpcbiAqIEludGVncmF0aW9uIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlIG9yIG90aGVyd2lzZSBjcmVhdGluZ1xuICogZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgaXMgcGVybWl0dGVkIHVuZGVyIHRoZSB0ZXJtcyBhbmRcbiAqIGNvbmRpdGlvbnMgb2YgU2VjdGlvbiAyIG9mIHRoZSBTcGluZSBFZGl0b3IgTGljZW5zZSBBZ3JlZW1lbnQ6XG4gKiBodHRwOi8vZXNvdGVyaWNzb2Z0d2FyZS5jb20vc3BpbmUtZWRpdG9yLWxpY2Vuc2VcbiAqXG4gKiBPdGhlcndpc2UsIGl0IGlzIHBlcm1pdHRlZCB0byBpbnRlZ3JhdGUgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmVcbiAqIG9yIG90aGVyd2lzZSBjcmVhdGUgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgKGNvbGxlY3RpdmVseSxcbiAqIFwiUHJvZHVjdHNcIiksIHByb3ZpZGVkIHRoYXQgZWFjaCB1c2VyIG9mIHRoZSBQcm9kdWN0cyBtdXN0IG9idGFpbiB0aGVpciBvd25cbiAqIFNwaW5lIEVkaXRvciBsaWNlbnNlIGFuZCByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZHVjdHMgaW4gYW55IGZvcm0gbXVzdFxuICogaW5jbHVkZSB0aGlzIGxpY2Vuc2UgYW5kIGNvcHlyaWdodCBub3RpY2UuXG4gKlxuICogVEhFIFNQSU5FIFJVTlRJTUVTIEFSRSBQUk9WSURFRCBCWSBFU09URVJJQyBTT0ZUV0FSRSBMTEMgXCJBUyBJU1wiIEFORCBBTllcbiAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRURcbiAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkVcbiAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEVTT1RFUklDIFNPRlRXQVJFIExMQyBCRSBMSUFCTEUgRk9SIEFOWVxuICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVNcbiAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUyxcbiAqIEJVU0lORVNTIElOVEVSUlVQVElPTiwgT1IgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFMpIEhPV0VWRVIgQ0FVU0VEIEFORFxuICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlRcbiAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRlxuICogVEhFIFNQSU5FIFJVTlRJTUVTLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5pbXBvcnQgeyBEcmF3T3JkZXJGb2xkZXJUaW1lbGluZSwgRHJhd09yZGVyVGltZWxpbmUsIGlzQ29uc3RyYWludFRpbWVsaW5lLCBpc1Nsb3RUaW1lbGluZSwgUGh5c2ljc0NvbnN0cmFpbnRUaW1lbGluZSB9IGZyb20gXCIuL0FuaW1hdGlvbi5qc1wiO1xuaW1wb3J0IHR5cGUgeyBCb25lIH0gZnJvbSBcIi4vQm9uZS5qc1wiO1xuaW1wb3J0IHsgQ29uc3RyYWludCB9IGZyb20gXCIuL0NvbnN0cmFpbnQuanNcIjtcbmltcG9ydCB0eXBlIHsgUGh5c2ljcyB9IGZyb20gXCIuL1BoeXNpY3MuanNcIjtcbmltcG9ydCB0eXBlIHsgU2tlbGV0b24gfSBmcm9tIFwiLi9Ta2VsZXRvbi5qc1wiO1xuaW1wb3J0IHR5cGUgeyBTbGlkZXJEYXRhIH0gZnJvbSBcIi4vU2xpZGVyRGF0YS5qc1wiO1xuaW1wb3J0IHsgU2xpZGVyUG9zZSB9IGZyb20gXCIuL1NsaWRlclBvc2UuanNcIjtcblxuLyoqIEFwcGxpZXMgYW4gYW5pbWF0aW9uIGJhc2VkIG9uIGVpdGhlciB0aGUgc2xpZGVyJ3Mge0BsaW5rIFNsaWRlclBvc2UudGltZX0gb3IgYSBib25lJ3MgdHJhbnNmb3JtIHByb3BlcnR5LlxuICpcbiAqIFNlZSA8YSBocmVmPVwiaHR0cHM6Ly9lc290ZXJpY3NvZnR3YXJlLmNvbS9zcGluZS1zbGlkZXJzXCI+U2xpZGVyczwvYT4gaW4gdGhlIFNwaW5lIFVzZXIgR3VpZGUuICovXG5leHBvcnQgY2xhc3MgU2xpZGVyIGV4dGVuZHMgQ29uc3RyYWludDxTbGlkZXIsIFNsaWRlckRhdGEsIFNsaWRlclBvc2U+IHtcblx0cHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgb2Zmc2V0cyA9IFswLCAwLCAwLCAwLCAwLCAwXTtcblxuXHQvKiogV2hlbiBzZXQsIHRoZSBib25lJ3MgdHJhbnNmb3JtIHByb3BlcnR5IGlzIHVzZWQgdG8gc2V0IHRoZSBzbGlkZXIncyB7QGxpbmsgU2xpZGVyUG9zZS50aW1lfS4gKi9cblx0Ym9uZTogQm9uZSB8IG51bGwgPSBudWxsO1xuXG5cdGNvbnN0cnVjdG9yIChkYXRhOiBTbGlkZXJEYXRhLCBza2VsZXRvbjogU2tlbGV0b24pIHtcblx0XHRzdXBlcihkYXRhLCBuZXcgU2xpZGVyUG9zZSgpLCBuZXcgU2xpZGVyUG9zZSgpKTtcblx0XHRpZiAoIXNrZWxldG9uKSB0aHJvdyBuZXcgRXJyb3IoXCJza2VsZXRvbiBjYW5ub3QgYmUgbnVsbC5cIik7XG5cblx0XHRpZiAoZGF0YS5ib25lICE9IG51bGwpIHRoaXMuYm9uZSA9IHNrZWxldG9uLmJvbmVzW2RhdGEuYm9uZS5pbmRleF07XG5cdH1cblxuXHRwdWJsaWMgY29weSAoc2tlbGV0b246IFNrZWxldG9uKSB7XG5cdFx0dmFyIGNvcHkgPSBuZXcgU2xpZGVyKHRoaXMuZGF0YSwgc2tlbGV0b24pO1xuXHRcdGNvcHkucG9zZS5zZXQodGhpcy5wb3NlKTtcblx0XHRyZXR1cm4gY29weTtcblx0fVxuXG5cdHB1YmxpYyB1cGRhdGUgKHNrZWxldG9uOiBTa2VsZXRvbiwgcGh5c2ljczogUGh5c2ljcykge1xuXHRcdGNvbnN0IHAgPSB0aGlzLmFwcGxpZWRQb3NlO1xuXHRcdGlmIChwLm1peCA9PT0gMCkgcmV0dXJuO1xuXG5cdFx0Y29uc3QgZGF0YSA9IHRoaXMuZGF0YSwgYW5pbWF0aW9uID0gZGF0YS5hbmltYXRpb24sIGJvbmUgPSB0aGlzLmJvbmU7XG5cdFx0aWYgKGJvbmUgIT09IG51bGwpIHtcblx0XHRcdGlmICghYm9uZS5hY3RpdmUpIHJldHVybjtcblx0XHRcdGlmIChkYXRhLmxvY2FsKSBib25lLmFwcGxpZWRQb3NlLnZhbGlkYXRlTG9jYWxUcmFuc2Zvcm0oc2tlbGV0b24pO1xuXHRcdFx0cC50aW1lID0gZGF0YS5vZmZzZXRcblx0XHRcdFx0KyAoZGF0YS5wcm9wZXJ0eS52YWx1ZShza2VsZXRvbiwgYm9uZS5hcHBsaWVkUG9zZSwgZGF0YS5sb2NhbCwgU2xpZGVyLm9mZnNldHMpIC0gZGF0YS5wcm9wZXJ0eS5vZmZzZXQpICogZGF0YS5zY2FsZTtcblx0XHRcdGlmIChkYXRhLmxvb3ApXG5cdFx0XHRcdHAudGltZSA9IGFuaW1hdGlvbi5kdXJhdGlvbiArIChwLnRpbWUgJSBhbmltYXRpb24uZHVyYXRpb24pO1xuXHRcdFx0ZWxzZVxuXHRcdFx0XHRwLnRpbWUgPSBNYXRoLm1heCgwLCBwLnRpbWUpO1xuXHRcdH1cblxuXHRcdGNvbnN0IGJvbmVzID0gc2tlbGV0b24uYm9uZXM7XG5cdFx0Y29uc3QgaW5kaWNlcyA9IGFuaW1hdGlvbi5ib25lcztcblx0XHRmb3IgKGxldCBpID0gMCwgbiA9IGFuaW1hdGlvbi5ib25lcy5sZW5ndGg7IGkgPCBuOyBpKyspXG5cdFx0XHRib25lc1tpbmRpY2VzW2ldXS5hcHBsaWVkUG9zZS5tb2RpZnlMb2NhbChza2VsZXRvbik7XG5cblx0XHRhbmltYXRpb24uYXBwbHkoc2tlbGV0b24sIHAudGltZSwgcC50aW1lLCBkYXRhLmxvb3AsIG51bGwsIHAubWl4LCBmYWxzZSwgZGF0YS5hZGRpdGl2ZSwgZmFsc2UsIHRydWUpO1xuXHR9XG5cblx0c29ydCAoc2tlbGV0b246IFNrZWxldG9uKSB7XG5cdFx0Y29uc3QgYm9uZSA9IHRoaXMuYm9uZTtcblx0XHRjb25zdCBkYXRhID0gdGhpcy5kYXRhO1xuXHRcdGlmIChib25lICYmICFkYXRhLmxvY2FsKSBza2VsZXRvbi5zb3J0Qm9uZShib25lKTtcblx0XHRza2VsZXRvbi5fdXBkYXRlQ2FjaGUucHVzaCh0aGlzKTtcblxuXHRcdGNvbnN0IGJvbmVzID0gc2tlbGV0b24uYm9uZXM7XG5cdFx0Y29uc3QgaW5kaWNlcyA9IGRhdGEuYW5pbWF0aW9uLmJvbmVzO1xuXHRcdGZvciAobGV0IGkgPSAwLCBuID0gZGF0YS5hbmltYXRpb24uYm9uZXMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG5cdFx0XHRjb25zdCBib25lID0gYm9uZXNbaW5kaWNlc1tpXV07XG5cdFx0XHRib25lLnNvcnRlZCA9IGZhbHNlO1xuXHRcdFx0c2tlbGV0b24uc29ydFJlc2V0KGJvbmUuY2hpbGRyZW4pO1xuXHRcdFx0c2tlbGV0b24uY29uc3RyYWluZWQoYm9uZSk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgdGltZWxpbmVzID0gZGF0YS5hbmltYXRpb24udGltZWxpbmVzO1xuXHRcdGNvbnN0IHNsb3RzID0gc2tlbGV0b24uc2xvdHM7XG5cdFx0Y29uc3QgY29uc3RyYWludHMgPSBza2VsZXRvbi5jb25zdHJhaW50cztcblx0XHRjb25zdCBwaHlzaWNzID0gc2tlbGV0b24ucGh5c2ljcztcblx0XHRjb25zdCBwaHlzaWNzQ291bnQgPSBza2VsZXRvbi5waHlzaWNzLmxlbmd0aDtcblx0XHRmb3IgKGxldCBpID0gMCwgbiA9IGRhdGEuYW5pbWF0aW9uLnRpbWVsaW5lcy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcblx0XHRcdGNvbnN0IHQgPSB0aW1lbGluZXNbaV07XG5cdFx0XHRpZiAoaXNTbG90VGltZWxpbmUodCkpXG5cdFx0XHRcdHNrZWxldG9uLmNvbnN0cmFpbmVkKHNsb3RzW3Quc2xvdEluZGV4XSk7XG5cdFx0XHRlbHNlIGlmICh0IGluc3RhbmNlb2YgRHJhd09yZGVyVGltZWxpbmUgfHwgdCBpbnN0YW5jZW9mIERyYXdPcmRlckZvbGRlclRpbWVsaW5lKVxuXHRcdFx0XHRza2VsZXRvbi5kcmF3T3JkZXIuY29uc3RyYWluZWQoKTtcblx0XHRcdGVsc2UgaWYgKHQgaW5zdGFuY2VvZiBQaHlzaWNzQ29uc3RyYWludFRpbWVsaW5lKSB7XG5cdFx0XHRcdGlmICh0LmNvbnN0cmFpbnRJbmRleCA9PT0gLTEpIHtcblx0XHRcdFx0XHRmb3IgKGxldCBpaSA9IDA7IGlpIDwgcGh5c2ljc0NvdW50OyBpaSsrKVxuXHRcdFx0XHRcdFx0c2tlbGV0b24uY29uc3RyYWluZWQocGh5c2ljc1tpaV0pO1xuXHRcdFx0XHR9IGVsc2Vcblx0XHRcdFx0XHRza2VsZXRvbi5jb25zdHJhaW5lZChjb25zdHJhaW50c1t0LmNvbnN0cmFpbnRJbmRleF0pO1xuXHRcdFx0fSBlbHNlIGlmIChpc0NvbnN0cmFpbnRUaW1lbGluZSh0KSkge1xuXHRcdFx0XHRjb25zdCBjb25zdHJhaW50SW5kZXggPSB0LmNvbnN0cmFpbnRJbmRleDtcblx0XHRcdFx0aWYgKGNvbnN0cmFpbnRJbmRleCAhPT0gLTEpIHNrZWxldG9uLmNvbnN0cmFpbmVkKGNvbnN0cmFpbnRzW2NvbnN0cmFpbnRJbmRleF0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIl19
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2xpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1NsaWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytFQTJCK0U7QUFFL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0SixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdDOzttR0FFbUc7QUFDbkcsTUFBTSxPQUFPLE1BQU8sU0FBUSxVQUEwQztJQUM3RCxNQUFNLENBQVUsT0FBTyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVyRCxtR0FBbUc7SUFDbkcsSUFBSSxHQUFnQixJQUFJLENBQUM7SUFFekIsWUFBYSxJQUFnQixFQUFFLFFBQWtCO1FBQ2hELEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxVQUFVLEVBQUUsRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFFBQVE7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFFM0QsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUk7WUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRU0sSUFBSSxDQUFFLFFBQWtCO1FBQzlCLElBQUksSUFBSSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0MsSUFB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SyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLFlBQVksRUFBRSxFQUFFLEVBQUU7d0JBQ3ZDLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLENBQUM7O29CQUNBLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1lBQ3ZELENBQUM7aUJBQU0sSUFBSSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNwQyxNQUFNLGVBQWUsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDO2dCQUMxQyxJQUFJLGVBQWUsS0FBSyxDQUFDLENBQUM7b0JBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztZQUNoRixDQUFDO1FBQ0YsQ0FBQztJQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBTcGluZSBSdW50aW1lcyBMaWNlbnNlIEFncmVlbWVudFxuICogTGFzdCB1cGRhdGVkIEFwcmlsIDUsIDIwMjUuIFJlcGxhY2VzIGFsbCBwcmlvciB2ZXJzaW9ucy5cbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtMjAyNSwgRXNvdGVyaWMgU29mdHdhcmUgTExDXG4gKlxuICogSW50ZWdyYXRpb24gb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmUgb3Igb3RoZXJ3aXNlIGNyZWF0aW5nXG4gKiBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpcyBwZXJtaXR0ZWQgdW5kZXIgdGhlIHRlcm1zIGFuZFxuICogY29uZGl0aW9ucyBvZiBTZWN0aW9uIDIgb2YgdGhlIFNwaW5lIEVkaXRvciBMaWNlbnNlIEFncmVlbWVudDpcbiAqIGh0dHA6Ly9lc290ZXJpY3NvZnR3YXJlLmNvbS9zcGluZS1lZGl0b3ItbGljZW5zZVxuICpcbiAqIE90aGVyd2lzZSwgaXQgaXMgcGVybWl0dGVkIHRvIGludGVncmF0ZSB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZVxuICogb3Igb3RoZXJ3aXNlIGNyZWF0ZSBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyAoY29sbGVjdGl2ZWx5LFxuICogXCJQcm9kdWN0c1wiKSwgcHJvdmlkZWQgdGhhdCBlYWNoIHVzZXIgb2YgdGhlIFByb2R1Y3RzIG11c3Qgb2J0YWluIHRoZWlyIG93blxuICogU3BpbmUgRWRpdG9yIGxpY2Vuc2UgYW5kIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9kdWN0cyBpbiBhbnkgZm9ybSBtdXN0XG4gKiBpbmNsdWRlIHRoaXMgbGljZW5zZSBhbmQgY29weXJpZ2h0IG5vdGljZS5cbiAqXG4gKiBUSEUgU1BJTkUgUlVOVElNRVMgQVJFIFBST1ZJREVEIEJZIEVTT1RFUklDIFNPRlRXQVJFIExMQyBcIkFTIElTXCIgQU5EIEFOWVxuICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRFxuICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRVxuICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgRVNPVEVSSUMgU09GVFdBUkUgTExDIEJFIExJQUJMRSBGT1IgQU5ZXG4gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFU1xuICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTLFxuICogQlVTSU5FU1MgSU5URVJSVVBUSU9OLCBPUiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUykgSE9XRVZFUiBDQVVTRUQgQU5EXG4gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVFxuICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GXG4gKiBUSEUgU1BJTkUgUlVOVElNRVMsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbmltcG9ydCB7IERyYXdPcmRlckZvbGRlclRpbWVsaW5lLCBEcmF3T3JkZXJUaW1lbGluZSwgaXNDb25zdHJhaW50VGltZWxpbmUsIGlzU2xvdFRpbWVsaW5lLCBNaXhGcm9tLCBQaHlzaWNzQ29uc3RyYWludFRpbWVsaW5lIH0gZnJvbSBcIi4vQW5pbWF0aW9uLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEJvbmUgfSBmcm9tIFwiLi9Cb25lLmpzXCI7XG5pbXBvcnQgeyBDb25zdHJhaW50IH0gZnJvbSBcIi4vQ29uc3RyYWludC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBQaHlzaWNzIH0gZnJvbSBcIi4vUGh5c2ljcy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBTa2VsZXRvbiB9IGZyb20gXCIuL1NrZWxldG9uLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFNsaWRlckRhdGEgfSBmcm9tIFwiLi9TbGlkZXJEYXRhLmpzXCI7XG5pbXBvcnQgeyBTbGlkZXJQb3NlIH0gZnJvbSBcIi4vU2xpZGVyUG9zZS5qc1wiO1xuXG4vKiogQXBwbGllcyBhbiBhbmltYXRpb24gYmFzZWQgb24gZWl0aGVyIHRoZSBzbGlkZXIncyB7QGxpbmsgU2xpZGVyUG9zZS50aW1lfSBvciBhIGJvbmUncyB0cmFuc2Zvcm0gcHJvcGVydHkuXG4gKlxuICogU2VlIDxhIGhyZWY9XCJodHRwczovL2Vzb3Rlcmljc29mdHdhcmUuY29tL3NwaW5lLXNsaWRlcnNcIj5TbGlkZXJzPC9hPiBpbiB0aGUgU3BpbmUgVXNlciBHdWlkZS4gKi9cbmV4cG9ydCBjbGFzcyBTbGlkZXIgZXh0ZW5kcyBDb25zdHJhaW50PFNsaWRlciwgU2xpZGVyRGF0YSwgU2xpZGVyUG9zZT4ge1xuXHRwcml2YXRlIHN0YXRpYyByZWFkb25seSBvZmZzZXRzID0gWzAsIDAsIDAsIDAsIDAsIDBdO1xuXG5cdC8qKiBXaGVuIHNldCwgdGhlIGJvbmUncyB0cmFuc2Zvcm0gcHJvcGVydHkgaXMgdXNlZCB0byBzZXQgdGhlIHNsaWRlcidzIHtAbGluayBTbGlkZXJQb3NlLnRpbWV9LiAqL1xuXHRib25lOiBCb25lIHwgbnVsbCA9IG51bGw7XG5cblx0Y29uc3RydWN0b3IgKGRhdGE6IFNsaWRlckRhdGEsIHNrZWxldG9uOiBTa2VsZXRvbikge1xuXHRcdHN1cGVyKGRhdGEsIG5ldyBTbGlkZXJQb3NlKCksIG5ldyBTbGlkZXJQb3NlKCkpO1xuXHRcdGlmICghc2tlbGV0b24pIHRocm93IG5ldyBFcnJvcihcInNrZWxldG9uIGNhbm5vdCBiZSBudWxsLlwiKTtcblxuXHRcdGlmIChkYXRhLmJvbmUgIT0gbnVsbCkgdGhpcy5ib25lID0gc2tlbGV0b24uYm9uZXNbZGF0YS5ib25lLmluZGV4XTtcblx0fVxuXG5cdHB1YmxpYyBjb3B5IChza2VsZXRvbjogU2tlbGV0b24pIHtcblx0XHR2YXIgY29weSA9IG5ldyBTbGlkZXIodGhpcy5kYXRhLCBza2VsZXRvbik7XG5cdFx0Y29weS5wb3NlLnNldCh0aGlzLnBvc2UpO1xuXHRcdHJldHVybiBjb3B5O1xuXHR9XG5cblx0cHVibGljIHVwZGF0ZSAoc2tlbGV0b246IFNrZWxldG9uLCBwaHlzaWNzOiBQaHlzaWNzKSB7XG5cdFx0Y29uc3QgcCA9IHRoaXMuYXBwbGllZFBvc2U7XG5cdFx0aWYgKHAubWl4ID09PSAwKSByZXR1cm47XG5cblx0XHRjb25zdCBkYXRhID0gdGhpcy5kYXRhLCBhbmltYXRpb24gPSBkYXRhLmFuaW1hdGlvbiwgYm9uZSA9IHRoaXMuYm9uZTtcblx0XHRpZiAoYm9uZSAhPT0gbnVsbCkge1xuXHRcdFx0aWYgKCFib25lLmFjdGl2ZSkgcmV0dXJuO1xuXHRcdFx0aWYgKGRhdGEubG9jYWwpIGJvbmUuYXBwbGllZFBvc2UudmFsaWRhdGVMb2NhbFRyYW5zZm9ybShza2VsZXRvbik7XG5cdFx0XHRwLnRpbWUgPSBkYXRhLm9mZnNldFxuXHRcdFx0XHQrIChkYXRhLnByb3BlcnR5LnZhbHVlKHNrZWxldG9uLCBib25lLmFwcGxpZWRQb3NlLCBkYXRhLmxvY2FsLCBTbGlkZXIub2Zmc2V0cykgLSBkYXRhLnByb3BlcnR5Lm9mZnNldCkgKiBkYXRhLnNjYWxlO1xuXHRcdFx0aWYgKGRhdGEubG9vcClcblx0XHRcdFx0cC50aW1lID0gYW5pbWF0aW9uLmR1cmF0aW9uICsgKHAudGltZSAlIGFuaW1hdGlvbi5kdXJhdGlvbik7XG5cdFx0XHRlbHNlXG5cdFx0XHRcdHAudGltZSA9IE1hdGgubWF4KDAsIHAudGltZSk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgYm9uZXMgPSBza2VsZXRvbi5ib25lcztcblx0XHRjb25zdCBpbmRpY2VzID0gYW5pbWF0aW9uLmJvbmVzO1xuXHRcdGZvciAobGV0IGkgPSAwLCBuID0gYW5pbWF0aW9uLmJvbmVzLmxlbmd0aDsgaSA8IG47IGkrKylcblx0XHRcdGJvbmVzW2luZGljZXNbaV1dLmFwcGxpZWRQb3NlLm1vZGlmeUxvY2FsKHNrZWxldG9uKTtcblxuXHRcdGFuaW1hdGlvbi5hcHBseShza2VsZXRvbiwgcC50aW1lLCBwLnRpbWUsIGRhdGEubG9vcCwgbnVsbCwgcC5taXgsIE1peEZyb20uY3VycmVudCwgZGF0YS5hZGRpdGl2ZSwgZmFsc2UsIHRydWUpO1xuXHR9XG5cblx0c29ydCAoc2tlbGV0b246IFNrZWxldG9uKSB7XG5cdFx0Y29uc3QgYm9uZSA9IHRoaXMuYm9uZTtcblx0XHRjb25zdCBkYXRhID0gdGhpcy5kYXRhO1xuXHRcdGlmIChib25lICYmICFkYXRhLmxvY2FsKSBza2VsZXRvbi5zb3J0Qm9uZShib25lKTtcblx0XHRza2VsZXRvbi5fdXBkYXRlQ2FjaGUucHVzaCh0aGlzKTtcblxuXHRcdGNvbnN0IGJvbmVzID0gc2tlbGV0b24uYm9uZXM7XG5cdFx0Y29uc3QgaW5kaWNlcyA9IGRhdGEuYW5pbWF0aW9uLmJvbmVzO1xuXHRcdGZvciAobGV0IGkgPSAwLCBuID0gZGF0YS5hbmltYXRpb24uYm9uZXMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG5cdFx0XHRjb25zdCBib25lID0gYm9uZXNbaW5kaWNlc1tpXV07XG5cdFx0XHRib25lLnNvcnRlZCA9IGZhbHNlO1xuXHRcdFx0c2tlbGV0b24uc29ydFJlc2V0KGJvbmUuY2hpbGRyZW4pO1xuXHRcdFx0c2tlbGV0b24uY29uc3RyYWluZWQoYm9uZSk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgdGltZWxpbmVzID0gZGF0YS5hbmltYXRpb24udGltZWxpbmVzO1xuXHRcdGNvbnN0IHNsb3RzID0gc2tlbGV0b24uc2xvdHM7XG5cdFx0Y29uc3QgY29uc3RyYWludHMgPSBza2VsZXRvbi5jb25zdHJhaW50cztcblx0XHRjb25zdCBwaHlzaWNzID0gc2tlbGV0b24ucGh5c2ljcztcblx0XHRjb25zdCBwaHlzaWNzQ291bnQgPSBza2VsZXRvbi5waHlzaWNzLmxlbmd0aDtcblx0XHRmb3IgKGxldCBpID0gMCwgbiA9IGRhdGEuYW5pbWF0aW9uLnRpbWVsaW5lcy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcblx0XHRcdGNvbnN0IHQgPSB0aW1lbGluZXNbaV07XG5cdFx0XHRpZiAoaXNTbG90VGltZWxpbmUodCkpXG5cdFx0XHRcdHNrZWxldG9uLmNvbnN0cmFpbmVkKHNsb3RzW3Quc2xvdEluZGV4XSk7XG5cdFx0XHRlbHNlIGlmICh0IGluc3RhbmNlb2YgRHJhd09yZGVyVGltZWxpbmUgfHwgdCBpbnN0YW5jZW9mIERyYXdPcmRlckZvbGRlclRpbWVsaW5lKVxuXHRcdFx0XHRza2VsZXRvbi5kcmF3T3JkZXIuY29uc3RyYWluZWQoKTtcblx0XHRcdGVsc2UgaWYgKHQgaW5zdGFuY2VvZiBQaHlzaWNzQ29uc3RyYWludFRpbWVsaW5lKSB7XG5cdFx0XHRcdGlmICh0LmNvbnN0cmFpbnRJbmRleCA9PT0gLTEpIHtcblx0XHRcdFx0XHRmb3IgKGxldCBpaSA9IDA7IGlpIDwgcGh5c2ljc0NvdW50OyBpaSsrKVxuXHRcdFx0XHRcdFx0c2tlbGV0b24uY29uc3RyYWluZWQocGh5c2ljc1tpaV0pO1xuXHRcdFx0XHR9IGVsc2Vcblx0XHRcdFx0XHRza2VsZXRvbi5jb25zdHJhaW5lZChjb25zdHJhaW50c1t0LmNvbnN0cmFpbnRJbmRleF0pO1xuXHRcdFx0fSBlbHNlIGlmIChpc0NvbnN0cmFpbnRUaW1lbGluZSh0KSkge1xuXHRcdFx0XHRjb25zdCBjb25zdHJhaW50SW5kZXggPSB0LmNvbnN0cmFpbnRJbmRleDtcblx0XHRcdFx0aWYgKGNvbnN0cmFpbnRJbmRleCAhPT0gLTEpIHNrZWxldG9uLmNvbnN0cmFpbmVkKGNvbnN0cmFpbnRzW2NvbnN0cmFpbnRJbmRleF0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIl19
|
package/dist/SliderData.d.ts
CHANGED
|
@@ -53,6 +53,8 @@ export declare class SliderData extends ConstraintData<Slider, SliderPose> {
|
|
|
53
53
|
offset: number;
|
|
54
54
|
/** When true and a bone is set, the bone's local transform property is read instead of its world transform. */
|
|
55
55
|
local: boolean;
|
|
56
|
+
/** When a bone is set, the maximum slider time for the bone property range, or 0 if nonessential data was not exported. */
|
|
57
|
+
max: number;
|
|
56
58
|
constructor(name: string);
|
|
57
59
|
create(skeleton: Skeleton): Slider;
|
|
58
60
|
}
|
package/dist/SliderData.js
CHANGED
|
@@ -49,6 +49,9 @@ export class SliderData extends ConstraintData {
|
|
|
49
49
|
offset = 0;
|
|
50
50
|
/** When true and a bone is set, the bone's local transform property is read instead of its world transform. */
|
|
51
51
|
local = false;
|
|
52
|
+
// Nonessential.
|
|
53
|
+
/** When a bone is set, the maximum slider time for the bone property range, or 0 if nonessential data was not exported. */
|
|
54
|
+
max = 0;
|
|
52
55
|
constructor(name) {
|
|
53
56
|
super(name, new SliderPose());
|
|
54
57
|
}
|
|
@@ -56,4 +59,4 @@ export class SliderData extends ConstraintData {
|
|
|
56
59
|
return new Slider(this, skeleton);
|
|
57
60
|
}
|
|
58
61
|
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2xpZGVyRGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9TbGlkZXJEYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0VBMkIrRTtBQUkvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHN0M7O3lIQUV5SDtBQUN6SCxNQUFNLE9BQU8sVUFBVyxTQUFRLGNBQWtDO0lBRWpFLDJDQUEyQztJQUMzQyxTQUFTLENBQWE7SUFFdEIsdUdBQXVHO0lBQ3ZHLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFFakIsNkZBQTZGO0lBQzdGLElBQUksR0FBRyxLQUFLLENBQUM7SUFFYixtR0FBbUc7SUFDbkcsSUFBSSxHQUFvQixJQUFJLENBQUM7SUFFN0IsZ0hBQWdIO0lBQ2hILFFBQVEsQ0FBZ0I7SUFFeEIsMEdBQTBHO0lBQzFHLEtBQUssR0FBRyxDQUFDLENBQUM7SUFFViwrREFBK0Q7SUFDL0QsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUVYLCtHQUErRztJQUMvRyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBRWQsZ0JBQWdCO0lBQ2hCLDJIQUEySDtJQUMzSCxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBRVIsWUFBYSxJQUFZO1FBQ3hCLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxNQUFNLENBQUUsUUFBa0I7UUFDaEMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbkMsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogU3BpbmUgUnVudGltZXMgTGljZW5zZSBBZ3JlZW1lbnRcbiAqIExhc3QgdXBkYXRlZCBBcHJpbCA1LCAyMDI1LiBSZXBsYWNlcyBhbGwgcHJpb3IgdmVyc2lvbnMuXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLTIwMjUsIEVzb3RlcmljIFNvZnR3YXJlIExMQ1xuICpcbiAqIEludGVncmF0aW9uIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlIG9yIG90aGVyd2lzZSBjcmVhdGluZ1xuICogZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgaXMgcGVybWl0dGVkIHVuZGVyIHRoZSB0ZXJtcyBhbmRcbiAqIGNvbmRpdGlvbnMgb2YgU2VjdGlvbiAyIG9mIHRoZSBTcGluZSBFZGl0b3IgTGljZW5zZSBBZ3JlZW1lbnQ6XG4gKiBodHRwOi8vZXNvdGVyaWNzb2Z0d2FyZS5jb20vc3BpbmUtZWRpdG9yLWxpY2Vuc2VcbiAqXG4gKiBPdGhlcndpc2UsIGl0IGlzIHBlcm1pdHRlZCB0byBpbnRlZ3JhdGUgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmVcbiAqIG9yIG90aGVyd2lzZSBjcmVhdGUgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgKGNvbGxlY3RpdmVseSxcbiAqIFwiUHJvZHVjdHNcIiksIHByb3ZpZGVkIHRoYXQgZWFjaCB1c2VyIG9mIHRoZSBQcm9kdWN0cyBtdXN0IG9idGFpbiB0aGVpciBvd25cbiAqIFNwaW5lIEVkaXRvciBsaWNlbnNlIGFuZCByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZHVjdHMgaW4gYW55IGZvcm0gbXVzdFxuICogaW5jbHVkZSB0aGlzIGxpY2Vuc2UgYW5kIGNvcHlyaWdodCBub3RpY2UuXG4gKlxuICogVEhFIFNQSU5FIFJVTlRJTUVTIEFSRSBQUk9WSURFRCBCWSBFU09URVJJQyBTT0ZUV0FSRSBMTEMgXCJBUyBJU1wiIEFORCBBTllcbiAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRURcbiAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkVcbiAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEVTT1RFUklDIFNPRlRXQVJFIExMQyBCRSBMSUFCTEUgRk9SIEFOWVxuICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVNcbiAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUyxcbiAqIEJVU0lORVNTIElOVEVSUlVQVElPTiwgT1IgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFMpIEhPV0VWRVIgQ0FVU0VEIEFORFxuICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlRcbiAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRlxuICogVEhFIFNQSU5FIFJVTlRJTUVTLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5pbXBvcnQgdHlwZSB7IEFuaW1hdGlvbiB9IGZyb20gXCIuL0FuaW1hdGlvbi5qc1wiO1xuaW1wb3J0IHR5cGUgeyBCb25lRGF0YSB9IGZyb20gXCIuL0JvbmVEYXRhLmpzXCI7XG5pbXBvcnQgeyBDb25zdHJhaW50RGF0YSB9IGZyb20gXCIuL0NvbnN0cmFpbnREYXRhLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFNrZWxldG9uIH0gZnJvbSBcIi4vU2tlbGV0b24uanNcIjtcbmltcG9ydCB7IFNsaWRlciB9IGZyb20gXCIuL1NsaWRlci5qc1wiO1xuaW1wb3J0IHsgU2xpZGVyUG9zZSB9IGZyb20gXCIuL1NsaWRlclBvc2UuanNcIjtcbmltcG9ydCB0eXBlIHsgRnJvbVByb3BlcnR5IH0gZnJvbSBcIi4vVHJhbnNmb3JtQ29uc3RyYWludERhdGEuanNcIjtcblxuLyoqIFN0b3JlcyB0aGUgc2V0dXAgcG9zZSBmb3IgYSB7QGxpbmsgU2xpZGVyfS5cbiAqXG4gKiBTZWUgPGEgaHJlZj1cImh0dHBzOi8vZXNvdGVyaWNzb2Z0d2FyZS5jb20vc3BpbmUtc2xpZGVyLWNvbnN0cmFpbnRzXCI+U2xpZGVyIGNvbnN0cmFpbnRzPC9hPiBpbiB0aGUgU3BpbmUgVXNlciBHdWlkZS4gKi9cbmV4cG9ydCBjbGFzcyBTbGlkZXJEYXRhIGV4dGVuZHMgQ29uc3RyYWludERhdGE8U2xpZGVyLCBTbGlkZXJQb3NlPiB7XG5cblx0LyoqIFRoZSBhbmltYXRpb24gdGhlIHNsaWRlciB3aWxsIGFwcGx5LiAqL1xuXHRhbmltYXRpb24hOiBBbmltYXRpb247XG5cblx0LyoqIFdoZW4gdHJ1ZSwgdGhlIGFuaW1hdGlvbiBpcyBhcHBsaWVkIGJ5IGFkZGluZyBpdCB0byB0aGUgY3VycmVudCBwb3NlIHJhdGhlciB0aGFuIG92ZXJ3cml0aW5nIGl0LiAqL1xuXHRhZGRpdGl2ZSA9IGZhbHNlO1xuXG5cdC8qKiBXaGVuIHRydWUsIHRoZSBhbmltYXRpb24gcmVwZWF0cyBhZnRlciBpdHMgZHVyYXRpb24sIG90aGVyd2lzZSB0aGUgbGFzdCBmcmFtZSBpcyB1c2VkLiAqL1xuXHRsb29wID0gZmFsc2U7XG5cblx0LyoqIFdoZW4gc2V0LCB0aGUgYm9uZSdzIHRyYW5zZm9ybSBwcm9wZXJ0eSBpcyB1c2VkIHRvIHNldCB0aGUgc2xpZGVyJ3Mge0BsaW5rIFNsaWRlclBvc2UudGltZX0uICovXG5cdGJvbmU6IEJvbmVEYXRhIHwgbnVsbCA9IG51bGw7XG5cblx0LyoqIFdoZW4gYSBib25lIGlzIHNldCwgdGhlIHNwZWNpZmllZCB0cmFuc2Zvcm0gcHJvcGVydHkgaXMgdXNlZCB0byBzZXQgdGhlIHNsaWRlcidzIHtAbGluayBTbGlkZXJQb3NlLnRpbWV9LiAqL1xuXHRwcm9wZXJ0eSE6IEZyb21Qcm9wZXJ0eTtcblxuXHQvKiogV2hlbiBhIGJvbmUgaXMgc2V0LCB0aGlzIGlzIHRoZSBzY2FsZSBvZiB0aGUge0BsaW5rIHByb3BlcnR5fSB2YWx1ZSBpbiByZWxhdGlvbiB0byB0aGUgc2xpZGVyIHRpbWUuICovXG5cdHNjYWxlID0gMDtcblxuXHQvKiogV2hlbiBhIGJvbmUgaXMgc2V0LCB0aGUgb2Zmc2V0IGlzIGFkZGVkIHRvIHRoZSBwcm9wZXJ0eS4gKi9cblx0b2Zmc2V0ID0gMDtcblxuXHQvKiogV2hlbiB0cnVlIGFuZCBhIGJvbmUgaXMgc2V0LCB0aGUgYm9uZSdzIGxvY2FsIHRyYW5zZm9ybSBwcm9wZXJ0eSBpcyByZWFkIGluc3RlYWQgb2YgaXRzIHdvcmxkIHRyYW5zZm9ybS4gKi9cblx0bG9jYWwgPSBmYWxzZTtcblxuXHQvLyBOb25lc3NlbnRpYWwuXG5cdC8qKiBXaGVuIGEgYm9uZSBpcyBzZXQsIHRoZSBtYXhpbXVtIHNsaWRlciB0aW1lIGZvciB0aGUgYm9uZSBwcm9wZXJ0eSByYW5nZSwgb3IgMCBpZiBub25lc3NlbnRpYWwgZGF0YSB3YXMgbm90IGV4cG9ydGVkLiAqL1xuXHRtYXggPSAwO1xuXG5cdGNvbnN0cnVjdG9yIChuYW1lOiBzdHJpbmcpIHtcblx0XHRzdXBlcihuYW1lLCBuZXcgU2xpZGVyUG9zZSgpKTtcblx0fVxuXG5cdHB1YmxpYyBjcmVhdGUgKHNrZWxldG9uOiBTa2VsZXRvbikge1xuXHRcdHJldHVybiBuZXcgU2xpZGVyKHRoaXMsIHNrZWxldG9uKTtcblx0fVxufVxuIl19
|
|
@@ -303,7 +303,7 @@ export class ToShearY extends ToProperty {
|
|
|
303
303
|
if (additive)
|
|
304
304
|
value -= MathUtils.PI / 2;
|
|
305
305
|
else {
|
|
306
|
-
value -= by - Math.atan2(bone.c /
|
|
306
|
+
value -= by - Math.atan2(bone.c / sy, bone.a / sx);
|
|
307
307
|
if (value > MathUtils.PI)
|
|
308
308
|
value -= MathUtils.PI2;
|
|
309
309
|
else if (value < -MathUtils.PI)
|
|
@@ -311,9 +311,9 @@ export class ToShearY extends ToProperty {
|
|
|
311
311
|
}
|
|
312
312
|
value = by + value * pose.mixShearY;
|
|
313
313
|
const s = Math.sqrt(b * b + d * d);
|
|
314
|
-
bone.b = Math.cos(value) * s *
|
|
315
|
-
bone.d = Math.sin(value) * s *
|
|
314
|
+
bone.b = Math.cos(value) * s * sx;
|
|
315
|
+
bone.d = Math.sin(value) * s * sy;
|
|
316
316
|
}
|
|
317
317
|
}
|
|
318
318
|
}
|
|
319
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNmb3JtQ29uc3RyYWludERhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvVHJhbnNmb3JtQ29uc3RyYWludERhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsrRUEyQitFO0FBSS9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXZDOzttSEFFbUg7QUFDbkgsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGNBQTREO0lBQ2pHLE1BQU0sQ0FBVSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQzdCLE1BQU0sQ0FBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLE1BQU0sQ0FBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLE1BQU0sQ0FBVSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLE1BQU0sQ0FBVSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLE1BQU0sQ0FBVSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBRWxDLG9FQUFvRTtJQUNwRSxLQUFLLEdBQUcsRUFBZ0IsQ0FBQztJQUV6Qiw4RUFBOEU7SUFDOUUsSUFBVyxNQUFNLENBQUUsTUFBZ0IsSUFBSSxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDL0QsSUFBVyxNQUFNO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQTs7WUFDbEQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzFCLENBQUM7SUFDTyxPQUFPLEdBQW9CLElBQUksQ0FBQztJQUV4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QUcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0JBQ25ELElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxFQUFFO29CQUN2QixLQUFLLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQztxQkFDbkIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRTtvQkFDN0IsS0FBSyxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUM7WUFDekIsQ0FBQztZQUNELEtBQUssR0FBRyxFQUFFLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDcEMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNuQyxDQUFDO0lBQ0YsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogU3BpbmUgUnVudGltZXMgTGljZW5zZSBBZ3JlZW1lbnRcbiAqIExhc3QgdXBkYXRlZCBBcHJpbCA1LCAyMDI1LiBSZXBsYWNlcyBhbGwgcHJpb3IgdmVyc2lvbnMuXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLTIwMjUsIEVzb3RlcmljIFNvZnR3YXJlIExMQ1xuICpcbiAqIEludGVncmF0aW9uIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlIG9yIG90aGVyd2lzZSBjcmVhdGluZ1xuICogZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgaXMgcGVybWl0dGVkIHVuZGVyIHRoZSB0ZXJtcyBhbmRcbiAqIGNvbmRpdGlvbnMgb2YgU2VjdGlvbiAyIG9mIHRoZSBTcGluZSBFZGl0b3IgTGljZW5zZSBBZ3JlZW1lbnQ6XG4gKiBodHRwOi8vZXNvdGVyaWNzb2Z0d2FyZS5jb20vc3BpbmUtZWRpdG9yLWxpY2Vuc2VcbiAqXG4gKiBPdGhlcndpc2UsIGl0IGlzIHBlcm1pdHRlZCB0byBpbnRlZ3JhdGUgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmVcbiAqIG9yIG90aGVyd2lzZSBjcmVhdGUgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgKGNvbGxlY3RpdmVseSxcbiAqIFwiUHJvZHVjdHNcIiksIHByb3ZpZGVkIHRoYXQgZWFjaCB1c2VyIG9mIHRoZSBQcm9kdWN0cyBtdXN0IG9idGFpbiB0aGVpciBvd25cbiAqIFNwaW5lIEVkaXRvciBsaWNlbnNlIGFuZCByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZHVjdHMgaW4gYW55IGZvcm0gbXVzdFxuICogaW5jbHVkZSB0aGlzIGxpY2Vuc2UgYW5kIGNvcHlyaWdodCBub3RpY2UuXG4gKlxuICogVEhFIFNQSU5FIFJVTlRJTUVTIEFSRSBQUk9WSURFRCBCWSBFU09URVJJQyBTT0ZUV0FSRSBMTEMgXCJBUyBJU1wiIEFORCBBTllcbiAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRURcbiAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkVcbiAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEVTT1RFUklDIFNPRlRXQVJFIExMQyBCRSBMSUFCTEUgRk9SIEFOWVxuICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVNcbiAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUyxcbiAqIEJVU0lORVNTIElOVEVSUlVQVElPTiwgT1IgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFMpIEhPV0VWRVIgQ0FVU0VEIEFORFxuICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlRcbiAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRlxuICogVEhFIFNQSU5FIFJVTlRJTUVTLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5pbXBvcnQgdHlwZSB7IEJvbmVEYXRhIH0gZnJvbSBcIi4vQm9uZURhdGEuanNcIjtcbmltcG9ydCB0eXBlIHsgQm9uZVBvc2UgfSBmcm9tIFwiLi9Cb25lUG9zZS5qc1wiO1xuaW1wb3J0IHsgQ29uc3RyYWludERhdGEgfSBmcm9tIFwiLi9Db25zdHJhaW50RGF0YS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBTa2VsZXRvbiB9IGZyb20gXCIuL1NrZWxldG9uLmpzXCI7XG5pbXBvcnQgeyBUcmFuc2Zvcm1Db25zdHJhaW50IH0gZnJvbSBcIi4vVHJhbnNmb3JtQ29uc3RyYWludC5qc1wiO1xuaW1wb3J0IHsgVHJhbnNmb3JtQ29uc3RyYWludFBvc2UgfSBmcm9tIFwiLi9UcmFuc2Zvcm1Db25zdHJhaW50UG9zZS5qc1wiO1xuaW1wb3J0IHsgTWF0aFV0aWxzIH0gZnJvbSBcIi4vVXRpbHMuanNcIjtcblxuLyoqIFN0b3JlcyB0aGUgc2V0dXAgcG9zZSBmb3IgYSB7QGxpbmsgVHJhbnNmb3JtQ29uc3RyYWludH0uXG4gKlxuICogU2VlIFtUcmFuc2Zvcm0gY29uc3RyYWludHNdKGh0dHA6Ly9lc290ZXJpY3NvZnR3YXJlLmNvbS9zcGluZS10cmFuc2Zvcm0tY29uc3RyYWludHMpIGluIHRoZSBTcGluZSBVc2VyIEd1aWRlLiAqL1xuZXhwb3J0IGNsYXNzIFRyYW5zZm9ybUNvbnN0cmFpbnREYXRhIGV4dGVuZHMgQ29uc3RyYWludERhdGE8VHJhbnNmb3JtQ29uc3RyYWludCwgVHJhbnNmb3JtQ29uc3RyYWludFBvc2U+IHtcblx0cHVibGljIHN0YXRpYyByZWFkb25seSBST1RBVElPTiA9IDA7XG5cdHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgWCA9IDE7XG5cdHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgWSA9IDI7XG5cdHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0NBTEVYID0gMztcblx0cHVibGljIHN0YXRpYyByZWFkb25seSBTQ0FMRVkgPSA0O1xuXHRwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNIRUFSWSA9IDU7XG5cblx0LyoqIFRoZSBib25lcyB0aGF0IHdpbGwgYmUgbW9kaWZpZWQgYnkgdGhpcyB0cmFuc2Zvcm0gY29uc3RyYWludC4gKi9cblx0Ym9uZXMgPSBbXSBhcyBCb25lRGF0YVtdO1xuXG5cdC8qKiBUaGUgYm9uZSB3aG9zZSB3b3JsZCB0cmFuc2Zvcm0gd2lsbCBiZSBjb3BpZWQgdG8gdGhlIGNvbnN0cmFpbmVkIGJvbmVzLiAqL1xuXHRwdWJsaWMgc2V0IHNvdXJjZSAoc291cmNlOiBCb25lRGF0YSkgeyB0aGlzLl9zb3VyY2UgPSBzb3VyY2U7IH1cblx0cHVibGljIGdldCBzb3VyY2UgKCkge1xuXHRcdGlmICghdGhpcy5fc291cmNlKSB0aHJvdyBuZXcgRXJyb3IoXCJCb25lRGF0YSBub3Qgc2V0LlwiKVxuXHRcdGVsc2UgcmV0dXJuIHRoaXMuX3NvdXJjZTtcblx0fVxuXHRwcml2YXRlIF9zb3VyY2U6IEJvbmVEYXRhIHwgbnVsbCA9IG51bGw7XG5cblx0b2Zmc2V0cyA9IFswLCAwLCAwLCAwLCAwLCAwXTtcblxuXHQvKiogQW4gb2Zmc2V0IGFkZGVkIHRvIHRoZSBjb25zdHJhaW5lZCBib25lIFggdHJhbnNsYXRpb24uICovXG5cdG9mZnNldFggPSAwO1xuXG5cdC8qKiBBbiBvZmZzZXQgYWRkZWQgdG8gdGhlIGNvbnN0cmFpbmVkIGJvbmUgWSB0cmFuc2xhdGlvbi4gKi9cblx0b2Zmc2V0WSA9IDA7XG5cblx0LyoqIFJlYWRzIHRoZSBzb3VyY2UgYm9uZSdzIGxvY2FsIHRyYW5zZm9ybSBpbnN0ZWFkIG9mIGl0cyB3b3JsZCB0cmFuc2Zvcm0uICovXG5cdGxvY2FsU291cmNlID0gZmFsc2U7XG5cblx0LyoqIFNldHMgdGhlIGNvbnN0cmFpbmVkIGJvbmVzJyBsb2NhbCB0cmFuc2Zvcm1zIGluc3RlYWQgb2YgdGhlaXIgd29ybGQgdHJhbnNmb3Jtcy4gKi9cblx0bG9jYWxUYXJnZXQgPSBmYWxzZTtcblxuXHQvKiogQWRkcyB0aGUgc291cmNlIGJvbmUgdHJhbnNmb3JtIHRvIHRoZSBjb25zdHJhaW5lZCBib25lcyBpbnN0ZWFkIG9mIHNldHRpbmcgaXQgYWJzb2x1dGVseS4gKi9cblx0YWRkaXRpdmUgPSBmYWxzZTtcblxuXHQvKiogUHJldmVudHMgY29uc3RyYWluZWQgYm9uZXMgZnJvbSBleGNlZWRpbmcgdGhlIHJhbmdlZCBkZWZpbmVkIGJ5IHtAbGluayBUb1Byb3BlcnR5Lm9mZnNldH0gYW5kIHtAbGluayBUb1Byb3BlcnR5Lm1heH0uICovXG5cdGNsYW1wID0gZmFsc2U7XG5cblx0LyoqIFRoZSBtYXBwaW5nIG9mIHRyYW5zZm9ybSBwcm9wZXJ0aWVzIHRvIG90aGVyIHRyYW5zZm9ybSBwcm9wZXJ0aWVzLiAqL1xuXHRyZWFkb25seSBwcm9wZXJ0aWVzOiBBcnJheTxGcm9tUHJvcGVydHk+ID0gW107XG5cblx0Y29uc3RydWN0b3IgKG5hbWU6IHN0cmluZykge1xuXHRcdHN1cGVyKG5hbWUsIG5ldyBUcmFuc2Zvcm1Db25zdHJhaW50UG9zZSgpKTtcblx0fVxuXG5cdHB1YmxpYyBjcmVhdGUgKHNrZWxldG9uOiBTa2VsZXRvbikge1xuXHRcdHJldHVybiBuZXcgVHJhbnNmb3JtQ29uc3RyYWludCh0aGlzLCBza2VsZXRvbik7XG5cdH1cblxuXHQvKiogQW4gb2Zmc2V0IGFkZGVkIHRvIHRoZSBjb25zdHJhaW5lZCBib25lIHJvdGF0aW9uLiAqL1xuXHRnZXRPZmZzZXRSb3RhdGlvbiAoKSB7XG5cdFx0cmV0dXJuIHRoaXMub2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5ST1RBVElPTl07XG5cdH1cblxuXHRzZXRPZmZzZXRSb3RhdGlvbiAob2Zmc2V0Um90YXRpb246IG51bWJlcikge1xuXHRcdHRoaXMub2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5ST1RBVElPTl0gPSBvZmZzZXRSb3RhdGlvbjtcblx0fVxuXG5cdC8qKiBBbiBvZmZzZXQgYWRkZWQgdG8gdGhlIGNvbnN0cmFpbmVkIGJvbmUgWCB0cmFuc2xhdGlvbi4gKi9cblx0Z2V0T2Zmc2V0WCAoKSB7XG5cdFx0cmV0dXJuIHRoaXMub2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5YXTtcblx0fVxuXG5cdHNldE9mZnNldFggKG9mZnNldFg6IG51bWJlcikge1xuXHRcdHRoaXMub2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5YXSA9IG9mZnNldFg7XG5cdH1cblxuXHQvKiogQW4gb2Zmc2V0IGFkZGVkIHRvIHRoZSBjb25zdHJhaW5lZCBib25lIFkgdHJhbnNsYXRpb24uICovXG5cdGdldE9mZnNldFkgKCkge1xuXHRcdHJldHVybiB0aGlzLm9mZnNldHNbVHJhbnNmb3JtQ29uc3RyYWludERhdGEuWV07XG5cdH1cblxuXHRzZXRPZmZzZXRZIChvZmZzZXRZOiBudW1iZXIpIHtcblx0XHR0aGlzLm9mZnNldHNbVHJhbnNmb3JtQ29uc3RyYWludERhdGEuWV0gPSBvZmZzZXRZO1xuXHR9XG5cblx0LyoqIEFuIG9mZnNldCBhZGRlZCB0byB0aGUgY29uc3RyYWluZWQgYm9uZSBzY2FsZVguICovXG5cdGdldE9mZnNldFNjYWxlWCAoKSB7XG5cdFx0cmV0dXJuIHRoaXMub2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5TQ0FMRVhdO1xuXHR9XG5cblx0c2V0T2Zmc2V0U2NhbGVYIChvZmZzZXRTY2FsZVg6IG51bWJlcikge1xuXHRcdHRoaXMub2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5TQ0FMRVhdID0gb2Zmc2V0U2NhbGVYO1xuXHR9XG5cblx0LyoqIEFuIG9mZnNldCBhZGRlZCB0byB0aGUgY29uc3RyYWluZWQgYm9uZSBzY2FsZVkuICovXG5cdGdldE9mZnNldFNjYWxlWSAoKSB7XG5cdFx0cmV0dXJuIHRoaXMub2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5TQ0FMRVldO1xuXHR9XG5cblx0c2V0T2Zmc2V0U2NhbGVZIChvZmZzZXRTY2FsZVk6IG51bWJlcikge1xuXHRcdHRoaXMub2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5TQ0FMRVldID0gb2Zmc2V0U2NhbGVZO1xuXHR9XG5cblx0LyoqIEFuIG9mZnNldCBhZGRlZCB0byB0aGUgY29uc3RyYWluZWQgYm9uZSBzaGVhclkuICovXG5cdGdldE9mZnNldFNoZWFyWSAoKSB7XG5cdFx0cmV0dXJuIHRoaXMub2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5TSEVBUlldO1xuXHR9XG5cblx0c2V0T2Zmc2V0U2hlYXJZIChvZmZzZXRTaGVhclk6IG51bWJlcikge1xuXHRcdHRoaXMub2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5TSEVBUlldID0gb2Zmc2V0U2hlYXJZO1xuXHR9XG5cbn1cblxuLyoqIFNvdXJjZSBwcm9wZXJ0eSBmb3IgYSB7QGxpbmsgVHJhbnNmb3JtQ29uc3RyYWludH0uICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRnJvbVByb3BlcnR5IHtcblx0LyoqIFRoZSB2YWx1ZSBvZiB0aGlzIHByb3BlcnR5IHRoYXQgY29ycmVzcG9uZHMgdG8ge0BsaW5rIFRvUHJvcGVydHkub2Zmc2V0fS4gKi9cblx0b2Zmc2V0ID0gMDtcblxuXHQvKiogQ29uc3RyYWluZWQgcHJvcGVydGllcy4gKi9cblx0cmVhZG9ubHkgdG86IEFycmF5PFRvUHJvcGVydHk+ID0gW107XG5cblx0LyoqIFJlYWRzIHRoaXMgcHJvcGVydHkgZnJvbSB0aGUgc3BlY2lmaWVkIGJvbmUuICovXG5cdGFic3RyYWN0IHZhbHVlIChza2VsZXRvbjogU2tlbGV0b24sIHNvdXJjZTogQm9uZVBvc2UsIGxvY2FsOiBib29sZWFuLCBvZmZzZXRzOiBBcnJheTxudW1iZXI+KTogbnVtYmVyO1xufVxuXG4vKiogQ29uc3RyYWluZWQgcHJvcGVydHkgZm9yIGEge0BsaW5rIFRyYW5zZm9ybUNvbnN0cmFpbnR9LiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRvUHJvcGVydHkge1xuXHQvKiogVGhlIHZhbHVlIG9mIHRoaXMgcHJvcGVydHkgdGhhdCBjb3JyZXNwb25kcyB0byB7QGxpbmsgRnJvbVByb3BlcnR5Lm9mZnNldH0uICovXG5cdG9mZnNldCA9IDA7XG5cblx0LyoqIFRoZSBtYXhpbXVtIHZhbHVlIG9mIHRoaXMgcHJvcGVydHkgd2hlbiB7QGxpbmsgVHJhbnNmb3JtQ29uc3RyYWludERhdGEuY2xhbXAgY2xhbXBlZH0uICovXG5cdG1heCA9IDA7XG5cblx0LyoqIFRoZSBzY2FsZSBvZiB0aGUge0BsaW5rIEZyb21Qcm9wZXJ0eX0gdmFsdWUgaW4gcmVsYXRpb24gdG8gdGhpcyBwcm9wZXJ0eS4gKi9cblx0c2NhbGUgPSAwO1xuXG5cdC8qKiBSZWFkcyB0aGUgbWl4IGZvciB0aGlzIHByb3BlcnR5IGZyb20gdGhlIHNwZWNpZmllZCBjb25zdHJhaW50LiAqL1xuXHRhYnN0cmFjdCBtaXggKHBvc2U6IFRyYW5zZm9ybUNvbnN0cmFpbnRQb3NlKTogbnVtYmVyO1xuXG5cdC8qKiBBcHBsaWVzIHRoZSB2YWx1ZSB0byB0aGlzIHByb3BlcnR5LiAqL1xuXHRhYnN0cmFjdCBhcHBseSAoc2tlbGV0b246IFNrZWxldG9uLCBwb3NlOiBUcmFuc2Zvcm1Db25zdHJhaW50UG9zZSwgYm9uZTogQm9uZVBvc2UsIHZhbHVlOiBudW1iZXIsIGxvY2FsOiBib29sZWFuLCBhZGRpdGl2ZTogYm9vbGVhbik6IHZvaWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBGcm9tUm90YXRlIGV4dGVuZHMgRnJvbVByb3BlcnR5IHtcblx0dmFsdWUgKHNrZWxldG9uOiBTa2VsZXRvbiwgc291cmNlOiBCb25lUG9zZSwgbG9jYWw6IGJvb2xlYW4sIG9mZnNldHM6IEFycmF5PG51bWJlcj4pOiBudW1iZXIge1xuXHRcdGlmIChsb2NhbCkgcmV0dXJuIHNvdXJjZS5yb3RhdGlvbiArIG9mZnNldHNbVHJhbnNmb3JtQ29uc3RyYWludERhdGEuUk9UQVRJT05dO1xuXHRcdGNvbnN0IHN4ID0gc2tlbGV0b24uc2NhbGVYLCBzeSA9IHNrZWxldG9uLnNjYWxlWTtcblx0XHRsZXQgdmFsdWUgPSBNYXRoLmF0YW4yKHNvdXJjZS5jIC8gc3ksIHNvdXJjZS5hIC8gc3gpICogTWF0aFV0aWxzLnJhZERlZ1xuXHRcdFx0KyAoKHNvdXJjZS5hICogc291cmNlLmQgLSBzb3VyY2UuYiAqIHNvdXJjZS5jKSAqIHN4ICogc3kgPiAwID8gb2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5ST1RBVElPTl0gOiAtb2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5ST1RBVElPTl0pO1xuXHRcdGlmICh2YWx1ZSA8IDApIHZhbHVlICs9IDM2MDtcblx0XHRyZXR1cm4gdmFsdWU7XG5cdH1cbn1cblxuZXhwb3J0IGNsYXNzIFRvUm90YXRlIGV4dGVuZHMgVG9Qcm9wZXJ0eSB7XG5cdG1peCAocG9zZTogVHJhbnNmb3JtQ29uc3RyYWludFBvc2UpOiBudW1iZXIge1xuXHRcdHJldHVybiBwb3NlLm1peFJvdGF0ZTtcblx0fVxuXG5cdGFwcGx5IChza2VsZXRvbjogU2tlbGV0b24sIHBvc2U6IFRyYW5zZm9ybUNvbnN0cmFpbnRQb3NlLCBib25lOiBCb25lUG9zZSwgdmFsdWU6IG51bWJlciwgbG9jYWw6IGJvb2xlYW4sIGFkZGl0aXZlOiBib29sZWFuKTogdm9pZCB7XG5cdFx0aWYgKGxvY2FsKVxuXHRcdFx0Ym9uZS5yb3RhdGlvbiArPSAoYWRkaXRpdmUgPyB2YWx1ZSA6IHZhbHVlIC0gYm9uZS5yb3RhdGlvbikgKiBwb3NlLm1peFJvdGF0ZTtcblx0XHRlbHNlIHtcblx0XHRcdGNvbnN0IHN4ID0gc2tlbGV0b24uc2NhbGVYLCBzeSA9IHNrZWxldG9uLnNjYWxlWSwgaXggPSAxIC8gc3gsIGl5ID0gMSAvIHN5O1xuXHRcdFx0Y29uc3QgYSA9IGJvbmUuYSAqIGl4LCBiID0gYm9uZS5iICogaXgsIGMgPSBib25lLmMgKiBpeSwgZCA9IGJvbmUuZCAqIGl5O1xuXHRcdFx0dmFsdWUgKj0gTWF0aFV0aWxzLmRlZ1JhZDtcblx0XHRcdGlmICghYWRkaXRpdmUpIHZhbHVlIC09IE1hdGguYXRhbjIoYywgYSk7XG5cdFx0XHRpZiAodmFsdWUgPiBNYXRoVXRpbHMuUEkpXG5cdFx0XHRcdHZhbHVlIC09IE1hdGhVdGlscy5QSTI7XG5cdFx0XHRlbHNlIGlmICh2YWx1ZSA8IC1NYXRoVXRpbHMuUEkpIC8vXG5cdFx0XHRcdHZhbHVlICs9IE1hdGhVdGlscy5QSTI7XG5cdFx0XHR2YWx1ZSAqPSBwb3NlLm1peFJvdGF0ZTtcblx0XHRcdGNvbnN0IGNvcyA9IE1hdGguY29zKHZhbHVlKSwgc2luID0gTWF0aC5zaW4odmFsdWUpO1xuXHRcdFx0Ym9uZS5hID0gKGNvcyAqIGEgLSBzaW4gKiBjKSAqIHN4O1xuXHRcdFx0Ym9uZS5iID0gKGNvcyAqIGIgLSBzaW4gKiBkKSAqIHN4O1xuXHRcdFx0Ym9uZS5jID0gKHNpbiAqIGEgKyBjb3MgKiBjKSAqIHN5O1xuXHRcdFx0Ym9uZS5kID0gKHNpbiAqIGIgKyBjb3MgKiBkKSAqIHN5O1xuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgY2xhc3MgRnJvbVggZXh0ZW5kcyBGcm9tUHJvcGVydHkge1xuXHR2YWx1ZSAoc2tlbGV0b246IFNrZWxldG9uLCBzb3VyY2U6IEJvbmVQb3NlLCBsb2NhbDogYm9vbGVhbiwgb2Zmc2V0czogQXJyYXk8bnVtYmVyPik6IG51bWJlciB7XG5cdFx0cmV0dXJuIGxvY2FsXG5cdFx0XHQ/IHNvdXJjZS54ICsgb2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5YXVxuXHRcdFx0OiAob2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5YXSAqIHNvdXJjZS5hICsgb2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5ZXSAqIHNvdXJjZS5iICsgc291cmNlLndvcmxkWCkgLyBza2VsZXRvbi5zY2FsZVg7XG5cdH1cbn1cblxuZXhwb3J0IGNsYXNzIFRvWCBleHRlbmRzIFRvUHJvcGVydHkge1xuXHRtaXggKHBvc2U6IFRyYW5zZm9ybUNvbnN0cmFpbnRQb3NlKTogbnVtYmVyIHtcblx0XHRyZXR1cm4gcG9zZS5taXhYO1xuXHR9XG5cblx0YXBwbHkgKHNrZWxldG9uOiBTa2VsZXRvbiwgcG9zZTogVHJhbnNmb3JtQ29uc3RyYWludFBvc2UsIGJvbmU6IEJvbmVQb3NlLCB2YWx1ZTogbnVtYmVyLCBsb2NhbDogYm9vbGVhbiwgYWRkaXRpdmU6IGJvb2xlYW4pOiB2b2lkIHtcblx0XHRpZiAobG9jYWwpXG5cdFx0XHRib25lLnggKz0gKGFkZGl0aXZlID8gdmFsdWUgOiB2YWx1ZSAtIGJvbmUueCkgKiBwb3NlLm1peFg7XG5cdFx0ZWxzZSB7XG5cdFx0XHRpZiAoIWFkZGl0aXZlKSB2YWx1ZSAtPSBib25lLndvcmxkWCAvIHNrZWxldG9uLnNjYWxlWDtcblx0XHRcdGJvbmUud29ybGRYICs9IHZhbHVlICogcG9zZS5taXhYICogc2tlbGV0b24uc2NhbGVYO1xuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgY2xhc3MgRnJvbVkgZXh0ZW5kcyBGcm9tUHJvcGVydHkge1xuXHR2YWx1ZSAoc2tlbGV0b246IFNrZWxldG9uLCBzb3VyY2U6IEJvbmVQb3NlLCBsb2NhbDogYm9vbGVhbiwgb2Zmc2V0czogQXJyYXk8bnVtYmVyPik6IG51bWJlciB7XG5cdFx0cmV0dXJuIGxvY2FsXG5cdFx0XHQ/IHNvdXJjZS55ICsgb2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5ZXVxuXHRcdFx0OiAob2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5YXSAqIHNvdXJjZS5jICsgb2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5ZXSAqIHNvdXJjZS5kICsgc291cmNlLndvcmxkWSkgLyBza2VsZXRvbi5zY2FsZVk7XG5cdH1cbn1cblxuZXhwb3J0IGNsYXNzIFRvWSBleHRlbmRzIFRvUHJvcGVydHkge1xuXHRtaXggKHBvc2U6IFRyYW5zZm9ybUNvbnN0cmFpbnRQb3NlKTogbnVtYmVyIHtcblx0XHRyZXR1cm4gcG9zZS5taXhZO1xuXHR9XG5cblx0YXBwbHkgKHNrZWxldG9uOiBTa2VsZXRvbiwgcG9zZTogVHJhbnNmb3JtQ29uc3RyYWludFBvc2UsIGJvbmU6IEJvbmVQb3NlLCB2YWx1ZTogbnVtYmVyLCBsb2NhbDogYm9vbGVhbiwgYWRkaXRpdmU6IGJvb2xlYW4pOiB2b2lkIHtcblx0XHRpZiAobG9jYWwpXG5cdFx0XHRib25lLnkgKz0gKGFkZGl0aXZlID8gdmFsdWUgOiB2YWx1ZSAtIGJvbmUueSkgKiBwb3NlLm1peFk7XG5cdFx0ZWxzZSB7XG5cdFx0XHRpZiAoIWFkZGl0aXZlKSB2YWx1ZSAtPSBib25lLndvcmxkWSAvIHNrZWxldG9uLnNjYWxlWTtcblx0XHRcdGJvbmUud29ybGRZICs9IHZhbHVlICogcG9zZS5taXhZICogc2tlbGV0b24uc2NhbGVZO1xuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgY2xhc3MgRnJvbVNjYWxlWCBleHRlbmRzIEZyb21Qcm9wZXJ0eSB7XG5cdHZhbHVlIChza2VsZXRvbjogU2tlbGV0b24sIHNvdXJjZTogQm9uZVBvc2UsIGxvY2FsOiBib29sZWFuLCBvZmZzZXRzOiBBcnJheTxudW1iZXI+KTogbnVtYmVyIHtcblx0XHRpZiAobG9jYWwpIHJldHVybiBzb3VyY2Uuc2NhbGVYICsgb2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5TQ0FMRVhdO1xuXHRcdGNvbnN0IGEgPSBzb3VyY2UuYSAvIHNrZWxldG9uLnNjYWxlWCwgYyA9IHNvdXJjZS5jIC8gc2tlbGV0b24uc2NhbGVZO1xuXHRcdHJldHVybiBNYXRoLnNxcnQoYSAqIGEgKyBjICogYykgKyBvZmZzZXRzW1RyYW5zZm9ybUNvbnN0cmFpbnREYXRhLlNDQUxFWF07XG5cdH1cbn1cblxuZXhwb3J0IGNsYXNzIFRvU2NhbGVYIGV4dGVuZHMgVG9Qcm9wZXJ0eSB7XG5cdG1peCAocG9zZTogVHJhbnNmb3JtQ29uc3RyYWludFBvc2UpOiBudW1iZXIge1xuXHRcdHJldHVybiBwb3NlLm1peFNjYWxlWDtcblx0fVxuXG5cdGFwcGx5IChza2VsZXRvbjogU2tlbGV0b24sIHBvc2U6IFRyYW5zZm9ybUNvbnN0cmFpbnRQb3NlLCBib25lOiBCb25lUG9zZSwgdmFsdWU6IG51bWJlciwgbG9jYWw6IGJvb2xlYW4sIGFkZGl0aXZlOiBib29sZWFuKTogdm9pZCB7XG5cdFx0aWYgKGxvY2FsKSB7XG5cdFx0XHRpZiAoYWRkaXRpdmUpXG5cdFx0XHRcdGJvbmUuc2NhbGVYICo9IDEgKyAodmFsdWUgLSAxKSAqIHBvc2UubWl4U2NhbGVYO1xuXHRcdFx0ZWxzZSBpZiAoYm9uZS5zY2FsZVggIT09IDApIC8vXG5cdFx0XHRcdGJvbmUuc2NhbGVYICs9ICh2YWx1ZSAtIGJvbmUuc2NhbGVYKSAqIHBvc2UubWl4U2NhbGVYO1xuXHRcdH0gZWxzZSBpZiAoYWRkaXRpdmUpIHtcblx0XHRcdGNvbnN0IHMgPSAxICsgKHZhbHVlIC0gMSkgKiBwb3NlLm1peFNjYWxlWDtcblx0XHRcdGJvbmUuYSAqPSBzO1xuXHRcdFx0Ym9uZS5jICo9IHM7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGxldCBhID0gYm9uZS5hIC8gc2tlbGV0b24uc2NhbGVYLCBjID0gYm9uZS5jIC8gc2tlbGV0b24uc2NhbGVZLCBzID0gTWF0aC5zcXJ0KGEgKiBhICsgYyAqIGMpO1xuXHRcdFx0aWYgKHMgIT09IDApIHtcblx0XHRcdFx0cyA9IDEgKyAodmFsdWUgLSBzKSAqIHBvc2UubWl4U2NhbGVYIC8gcztcblx0XHRcdFx0Ym9uZS5hICo9IHM7XG5cdFx0XHRcdGJvbmUuYyAqPSBzO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgY2xhc3MgRnJvbVNjYWxlWSBleHRlbmRzIEZyb21Qcm9wZXJ0eSB7XG5cdHZhbHVlIChza2VsZXRvbjogU2tlbGV0b24sIHNvdXJjZTogQm9uZVBvc2UsIGxvY2FsOiBib29sZWFuLCBvZmZzZXRzOiBBcnJheTxudW1iZXI+KTogbnVtYmVyIHtcblx0XHRpZiAobG9jYWwpIHJldHVybiBzb3VyY2Uuc2NhbGVZICsgb2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5TQ0FMRVldO1xuXHRcdGNvbnN0IGIgPSBzb3VyY2UuYiAvIHNrZWxldG9uLnNjYWxlWCwgZCA9IHNvdXJjZS5kIC8gc2tlbGV0b24uc2NhbGVZO1xuXHRcdHJldHVybiBNYXRoLnNxcnQoYiAqIGIgKyBkICogZCkgKyBvZmZzZXRzW1RyYW5zZm9ybUNvbnN0cmFpbnREYXRhLlNDQUxFWV07XG5cdH1cbn1cblxuZXhwb3J0IGNsYXNzIFRvU2NhbGVZIGV4dGVuZHMgVG9Qcm9wZXJ0eSB7XG5cdG1peCAocG9zZTogVHJhbnNmb3JtQ29uc3RyYWludFBvc2UpOiBudW1iZXIge1xuXHRcdHJldHVybiBwb3NlLm1peFNjYWxlWTtcblx0fVxuXG5cdGFwcGx5IChza2VsZXRvbjogU2tlbGV0b24sIHBvc2U6IFRyYW5zZm9ybUNvbnN0cmFpbnRQb3NlLCBib25lOiBCb25lUG9zZSwgdmFsdWU6IG51bWJlciwgbG9jYWw6IGJvb2xlYW4sIGFkZGl0aXZlOiBib29sZWFuKTogdm9pZCB7XG5cdFx0aWYgKGxvY2FsKSB7XG5cdFx0XHRpZiAoYWRkaXRpdmUpXG5cdFx0XHRcdGJvbmUuc2NhbGVZICo9IDEgKyAodmFsdWUgLSAxKSAqIHBvc2UubWl4U2NhbGVZO1xuXHRcdFx0ZWxzZSBpZiAoYm9uZS5zY2FsZVkgIT09IDApIC8vXG5cdFx0XHRcdGJvbmUuc2NhbGVZICs9ICh2YWx1ZSAtIGJvbmUuc2NhbGVZKSAqIHBvc2UubWl4U2NhbGVZO1xuXHRcdH0gZWxzZSBpZiAoYWRkaXRpdmUpIHtcblx0XHRcdGNvbnN0IHMgPSAxICsgKHZhbHVlIC0gMSkgKiBwb3NlLm1peFNjYWxlWTtcblx0XHRcdGJvbmUuYiAqPSBzO1xuXHRcdFx0Ym9uZS5kICo9IHM7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGxldCBiID0gYm9uZS5iIC8gc2tlbGV0b24uc2NhbGVYLCBkID0gYm9uZS5kIC8gc2tlbGV0b24uc2NhbGVZLCBzID0gTWF0aC5zcXJ0KGIgKiBiICsgZCAqIGQpO1xuXHRcdFx0aWYgKHMgIT09IDApIHtcblx0XHRcdFx0cyA9IDEgKyAodmFsdWUgLSBzKSAqIHBvc2UubWl4U2NhbGVZIC8gcztcblx0XHRcdFx0Ym9uZS5iICo9IHM7XG5cdFx0XHRcdGJvbmUuZCAqPSBzO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgY2xhc3MgRnJvbVNoZWFyWSBleHRlbmRzIEZyb21Qcm9wZXJ0eSB7XG5cdHZhbHVlIChza2VsZXRvbjogU2tlbGV0b24sIHNvdXJjZTogQm9uZVBvc2UsIGxvY2FsOiBib29sZWFuLCBvZmZzZXRzOiBBcnJheTxudW1iZXI+KTogbnVtYmVyIHtcblx0XHRpZiAobG9jYWwpIHJldHVybiBzb3VyY2Uuc2hlYXJZICsgb2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5TSEVBUlldO1xuXHRcdGNvbnN0IGl4ID0gMSAvIHNrZWxldG9uLnNjYWxlWCwgaXkgPSAxIC8gc2tlbGV0b24uc2NhbGVZO1xuXHRcdHJldHVybiAoTWF0aC5hdGFuMihzb3VyY2UuZCAqIGl5LCBzb3VyY2UuYiAqIGl4KSAtIE1hdGguYXRhbjIoc291cmNlLmMgKiBpeSwgc291cmNlLmEgKiBpeCkpICogTWF0aFV0aWxzLnJhZERlZyAtIDkwICsgb2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5TSEVBUlldO1xuXHR9XG59XG5cbmV4cG9ydCBjbGFzcyBUb1NoZWFyWSBleHRlbmRzIFRvUHJvcGVydHkge1xuXHRtaXggKHBvc2U6IFRyYW5zZm9ybUNvbnN0cmFpbnRQb3NlKTogbnVtYmVyIHtcblx0XHRyZXR1cm4gcG9zZS5taXhTaGVhclk7XG5cdH1cblxuXHRhcHBseSAoc2tlbGV0b246IFNrZWxldG9uLCBwb3NlOiBUcmFuc2Zvcm1Db25zdHJhaW50UG9zZSwgYm9uZTogQm9uZVBvc2UsIHZhbHVlOiBudW1iZXIsIGxvY2FsOiBib29sZWFuLCBhZGRpdGl2ZTogYm9vbGVhbik6IHZvaWQge1xuXHRcdGlmIChsb2NhbCkge1xuXHRcdFx0aWYgKCFhZGRpdGl2ZSkgdmFsdWUgLT0gYm9uZS5zaGVhclk7XG5cdFx0XHRib25lLnNoZWFyWSArPSB2YWx1ZSAqIHBvc2UubWl4U2hlYXJZO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBzeCA9IHNrZWxldG9uLnNjYWxlWCwgc3kgPSBza2VsZXRvbi5zY2FsZVksIGIgPSBib25lLmIgLyBzeCwgZCA9IGJvbmUuZCAvIHN5LCBieSA9IE1hdGguYXRhbjIoZCwgYik7XG5cdFx0XHR2YWx1ZSA9ICh2YWx1ZSArIDkwKSAqIE1hdGhVdGlscy5kZWdSYWQ7XG5cdFx0XHRpZiAoYWRkaXRpdmUpXG5cdFx0XHRcdHZhbHVlIC09IE1hdGhVdGlscy5QSSAvIDI7XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0dmFsdWUgLT0gYnkgLSBNYXRoLmF0YW4yKGJvbmUuYyAvIHN4LCBib25lLmEgLyBzeSk7XG5cdFx0XHRcdGlmICh2YWx1ZSA+IE1hdGhVdGlscy5QSSlcblx0XHRcdFx0XHR2YWx1ZSAtPSBNYXRoVXRpbHMuUEkyO1xuXHRcdFx0XHRlbHNlIGlmICh2YWx1ZSA8IC1NYXRoVXRpbHMuUEkpXG5cdFx0XHRcdFx0dmFsdWUgKz0gTWF0aFV0aWxzLlBJMjtcblx0XHRcdH1cblx0XHRcdHZhbHVlID0gYnkgKyB2YWx1ZSAqIHBvc2UubWl4U2hlYXJZO1xuXHRcdFx0Y29uc3QgcyA9IE1hdGguc3FydChiICogYiArIGQgKiBkKTtcblx0XHRcdGJvbmUuYiA9IE1hdGguY29zKHZhbHVlKSAqIHMgKiBzeTtcblx0XHRcdGJvbmUuZCA9IE1hdGguc2luKHZhbHVlKSAqIHMgKiBzeDtcblx0XHR9XG5cdH1cbn1cbiJdfQ==
|
|
319
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNmb3JtQ29uc3RyYWludERhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvVHJhbnNmb3JtQ29uc3RyYWludERhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsrRUEyQitFO0FBSS9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXZDOzttSEFFbUg7QUFDbkgsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGNBQTREO0lBQ2pHLE1BQU0sQ0FBVSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQzdCLE1BQU0sQ0FBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLE1BQU0sQ0FBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLE1BQU0sQ0FBVSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLE1BQU0sQ0FBVSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLE1BQU0sQ0FBVSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBRWxDLG9FQUFvRTtJQUNwRSxLQUFLLEdBQUcsRUFBZ0IsQ0FBQztJQUV6Qiw4RUFBOEU7SUFDOUUsSUFBVyxNQUFNLENBQUUsTUFBZ0IsSUFBSSxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDL0QsSUFBVyxNQUFNO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQTs7WUFDbEQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzFCLENBQUM7SUFDTyxPQUFPLEdBQW9CLElBQUksQ0FBQztJQUV4QyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRTdCLDZEQUE2RDtJQUM3RCxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBRVosNkRBQTZEO0lBQzdELE9BQU8sR0FBRyxDQUFDLENBQUM7SUFFWiw4RUFBOEU7SUFDOUUsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUVwQixzRkFBc0Y7SUFDdEYsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUVwQixnR0FBZ0c7SUFDaEcsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUVqQiw0SEFBNEg7SUFDNUgsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUVkLHlFQUF5RTtJQUNoRSxVQUFVLEdBQXdCLEVBQUUsQ0FBQztJQUU5QyxZQUFhLElBQVk7UUFDeEIsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLHVCQUF1QixFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU0sTUFBTSxDQUFFLFFBQWtCO1FBQ2hDLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELHdEQUF3RDtJQUN4RCxpQkFBaUI7UUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxpQkFBaUIsQ0FBRSxjQUFzQjtRQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxHQUFHLGNBQWMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsNkRBQTZEO0lBQzdELFVBQVU7UUFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELFVBQVUsQ0FBRSxPQUFlO1FBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDO0lBQ25ELENBQUM7SUFFRCw2REFBNkQ7SUFDN0QsVUFBVTtRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsVUFBVSxDQUFFLE9BQWU7UUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUM7SUFDbkQsQ0FBQztJQUVELHNEQUFzRDtJQUN0RCxlQUFlO1FBQ2QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxlQUFlLENBQUUsWUFBb0I7UUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxZQUFZLENBQUM7SUFDN0QsQ0FBQztJQUVELHNEQUFzRDtJQUN0RCxlQUFlO1FBQ2QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxlQUFlLENBQUUsWUFBb0I7UUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxZQUFZLENBQUM7SUFDN0QsQ0FBQztJQUVELHNEQUFzRDtJQUN0RCxlQUFlO1FBQ2QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxlQUFlLENBQUUsWUFBb0I7UUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxZQUFZLENBQUM7SUFDN0QsQ0FBQzs7QUFJRix5REFBeUQ7QUFDekQsTUFBTSxPQUFnQixZQUFZO0lBQ2pDLGdGQUFnRjtJQUNoRixNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBRVgsOEJBQThCO0lBQ3JCLEVBQUUsR0FBc0IsRUFBRSxDQUFDO0NBSXBDO0FBRUQsOERBQThEO0FBQzlELE1BQU0sT0FBZ0IsVUFBVTtJQUMvQixrRkFBa0Y7SUFDbEYsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUVYLDZGQUE2RjtJQUM3RixHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBRVIsZ0ZBQWdGO0lBQ2hGLEtBQUssR0FBRyxDQUFDLENBQUM7Q0FPVjtBQUVELE1BQU0sT0FBTyxVQUFXLFNBQVEsWUFBWTtJQUMzQyxLQUFLLENBQUUsUUFBa0IsRUFBRSxNQUFnQixFQUFFLEtBQWMsRUFBRSxPQUFzQjtRQUNsRixJQUFJLEtBQUs7WUFBRSxPQUFPLE1BQU0sQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDakQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNO2NBQ3BFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUN4SixJQUFJLEtBQUssR0FBRyxDQUFDO1lBQUUsS0FBSyxJQUFJLEdBQUcsQ0FBQztRQUM1QixPQUFPLEtBQUssQ0FBQztJQUNkLENBQUM7Q0FDRDtBQUVELE1BQU0sT0FBTyxRQUFTLFNBQVEsVUFBVTtJQUN2QyxHQUFHLENBQUUsSUFBNkI7UUFDakMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxLQUFLLENBQUUsUUFBa0IsRUFBRSxJQUE2QixFQUFFLElBQWMsRUFBRSxLQUFhLEVBQUUsS0FBYyxFQUFFLFFBQWlCO1FBQ3pILElBQUksS0FBSztZQUNSLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO2FBQ3pFLENBQUM7WUFDTCxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzNFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3pFLEtBQUssSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDO1lBQzFCLElBQUksQ0FBQyxRQUFRO2dCQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN6QyxJQUFJLEtBQUssR0FBRyxTQUFTLENBQUMsRUFBRTtnQkFDdkIsS0FBSyxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUM7aUJBQ25CLElBQUksS0FBSyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFO2dCQUNqQyxLQUFLLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQztZQUN4QixLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDbkMsQ0FBQztJQUNGLENBQUM7Q0FDRDtBQUVELE1BQU0sT0FBTyxLQUFNLFNBQVEsWUFBWTtJQUN0QyxLQUFLLENBQUUsUUFBa0IsRUFBRSxNQUFnQixFQUFFLEtBQWMsRUFBRSxPQUFzQjtRQUNsRixPQUFPLEtBQUs7WUFDWCxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1lBQy9DLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ3RJLENBQUM7Q0FDRDtBQUVELE1BQU0sT0FBTyxHQUFJLFNBQVEsVUFBVTtJQUNsQyxHQUFHLENBQUUsSUFBNkI7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxLQUFLLENBQUUsUUFBa0IsRUFBRSxJQUE2QixFQUFFLElBQWMsRUFBRSxLQUFhLEVBQUUsS0FBYyxFQUFFLFFBQWlCO1FBQ3pILElBQUksS0FBSztZQUNSLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ3RELENBQUM7WUFDTCxJQUFJLENBQUMsUUFBUTtnQkFBRSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ3RELElBQUksQ0FBQyxNQUFNLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUNwRCxDQUFDO0lBQ0YsQ0FBQztDQUNEO0FBRUQsTUFBTSxPQUFPLEtBQU0sU0FBUSxZQUFZO0lBQ3RDLEtBQUssQ0FBRSxRQUFrQixFQUFFLE1BQWdCLEVBQUUsS0FBYyxFQUFFLE9BQXNCO1FBQ2xGLE9BQU8sS0FBSztZQUNYLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7SUFDdEksQ0FBQztDQUNEO0FBRUQsTUFBTSxPQUFPLEdBQUksU0FBUSxVQUFVO0lBQ2xDLEdBQUcsQ0FBRSxJQUE2QjtRQUNqQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbEIsQ0FBQztJQUVELEtBQUssQ0FBRSxRQUFrQixFQUFFLElBQTZCLEVBQUUsSUFBYyxFQUFFLEtBQWEsRUFBRSxLQUFjLEVBQUUsUUFBaUI7UUFDekgsSUFBSSxLQUFLO1lBQ1IsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDdEQsQ0FBQztZQUNMLElBQUksQ0FBQyxRQUFRO2dCQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDdEQsSUFBSSxDQUFDLE1BQU0sSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ3BELENBQUM7SUFDRixDQUFDO0NBQ0Q7QUFFRCxNQUFNLE9BQU8sVUFBVyxTQUFRLFlBQVk7SUFDM0MsS0FBSyxDQUFFLFFBQWtCLEVBQUUsTUFBZ0IsRUFBRSxLQUFjLEVBQUUsT0FBc0I7UUFDbEYsSUFBSSxLQUFLO1lBQUUsT0FBTyxNQUFNLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxRSxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUNyRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNFLENBQUM7Q0FDRDtBQUVELE1BQU0sT0FBTyxRQUFTLFNBQVEsVUFBVTtJQUN2QyxHQUFHLENBQUUsSUFBNkI7UUFDakMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxLQUFLLENBQUUsUUFBa0IsRUFBRSxJQUE2QixFQUFFLElBQWMsRUFBRSxLQUFhLEVBQUUsS0FBYyxFQUFFLFFBQWlCO1FBQ3pILElBQUksS0FBSyxFQUFFLENBQUM7WUFDWCxJQUFJLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztpQkFDNUMsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxFQUFFO2dCQUM3QixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3hELENBQUM7YUFBTSxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQzNDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ1osSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDYixDQUFDO2FBQU0sQ0FBQztZQUNQLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzdGLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNiLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNaLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2IsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDO0NBQ0Q7QUFFRCxNQUFNLE9BQU8sVUFBVyxTQUFRLFlBQVk7SUFDM0MsS0FBSyxDQUFFLFFBQWtCLEVBQUUsTUFBZ0IsRUFBRSxLQUFjLEVBQUUsT0FBc0I7UUFDbEYsSUFBSSxLQUFLO1lBQUUsT0FBTyxNQUFNLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxRSxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUNyRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNFLENBQUM7Q0FDRDtBQUVELE1BQU0sT0FBTyxRQUFTLFNBQVEsVUFBVTtJQUN2QyxHQUFHLENBQUUsSUFBNkI7UUFDakMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxLQUFLLENBQUUsUUFBa0IsRUFBRSxJQUE2QixFQUFFLElBQWMsRUFBRSxLQUFhLEVBQUUsS0FBYyxFQUFFLFFBQWlCO1FBQ3pILElBQUksS0FBSyxFQUFFLENBQUM7WUFDWCxJQUFJLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztpQkFDNUMsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxFQUFFO2dCQUM3QixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3hELENBQUM7YUFBTSxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQzNDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ1osSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDYixDQUFDO2FBQU0sQ0FBQztZQUNQLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzdGLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNiLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNaLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2IsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDO0NBQ0Q7QUFFRCxNQUFNLE9BQU8sVUFBVyxTQUFRLFlBQVk7SUFDM0MsS0FBSyxDQUFFLFFBQWtCLEVBQUUsTUFBZ0IsRUFBRSxLQUFjLEVBQUUsT0FBc0I7UUFDbEYsSUFBSSxLQUFLO1lBQUUsT0FBTyxNQUFNLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxRSxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDekQsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEssQ0FBQztDQUNEO0FBRUQsTUFBTSxPQUFPLFFBQVMsU0FBUSxVQUFVO0lBQ3ZDLEdBQUcsQ0FBRSxJQUE2QjtRQUNqQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBRSxRQUFrQixFQUFFLElBQTZCLEVBQUUsSUFBYyxFQUFFLEtBQWEsRUFBRSxLQUFjLEVBQUUsUUFBaUI7UUFDekgsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxRQUFRO2dCQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxNQUFNLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDdkMsQ0FBQzthQUFNLENBQUM7WUFDUCxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFHLEtBQUssR0FBRyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO1lBQ3hDLElBQUksUUFBUTtnQkFDWCxLQUFLLElBQUksU0FBUyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7aUJBQ3RCLENBQUM7Z0JBQ0wsS0FBSyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0JBQ25ELElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxFQUFFO29CQUN2QixLQUFLLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQztxQkFDbkIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRTtvQkFDN0IsS0FBSyxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUM7WUFDekIsQ0FBQztZQUNELEtBQUssR0FBRyxFQUFFLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDcEMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNuQyxDQUFDO0lBQ0YsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogU3BpbmUgUnVudGltZXMgTGljZW5zZSBBZ3JlZW1lbnRcbiAqIExhc3QgdXBkYXRlZCBBcHJpbCA1LCAyMDI1LiBSZXBsYWNlcyBhbGwgcHJpb3IgdmVyc2lvbnMuXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLTIwMjUsIEVzb3RlcmljIFNvZnR3YXJlIExMQ1xuICpcbiAqIEludGVncmF0aW9uIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlIG9yIG90aGVyd2lzZSBjcmVhdGluZ1xuICogZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgaXMgcGVybWl0dGVkIHVuZGVyIHRoZSB0ZXJtcyBhbmRcbiAqIGNvbmRpdGlvbnMgb2YgU2VjdGlvbiAyIG9mIHRoZSBTcGluZSBFZGl0b3IgTGljZW5zZSBBZ3JlZW1lbnQ6XG4gKiBodHRwOi8vZXNvdGVyaWNzb2Z0d2FyZS5jb20vc3BpbmUtZWRpdG9yLWxpY2Vuc2VcbiAqXG4gKiBPdGhlcndpc2UsIGl0IGlzIHBlcm1pdHRlZCB0byBpbnRlZ3JhdGUgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmVcbiAqIG9yIG90aGVyd2lzZSBjcmVhdGUgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgKGNvbGxlY3RpdmVseSxcbiAqIFwiUHJvZHVjdHNcIiksIHByb3ZpZGVkIHRoYXQgZWFjaCB1c2VyIG9mIHRoZSBQcm9kdWN0cyBtdXN0IG9idGFpbiB0aGVpciBvd25cbiAqIFNwaW5lIEVkaXRvciBsaWNlbnNlIGFuZCByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZHVjdHMgaW4gYW55IGZvcm0gbXVzdFxuICogaW5jbHVkZSB0aGlzIGxpY2Vuc2UgYW5kIGNvcHlyaWdodCBub3RpY2UuXG4gKlxuICogVEhFIFNQSU5FIFJVTlRJTUVTIEFSRSBQUk9WSURFRCBCWSBFU09URVJJQyBTT0ZUV0FSRSBMTEMgXCJBUyBJU1wiIEFORCBBTllcbiAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRURcbiAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkVcbiAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEVTT1RFUklDIFNPRlRXQVJFIExMQyBCRSBMSUFCTEUgRk9SIEFOWVxuICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVNcbiAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUyxcbiAqIEJVU0lORVNTIElOVEVSUlVQVElPTiwgT1IgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFMpIEhPV0VWRVIgQ0FVU0VEIEFORFxuICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlRcbiAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRlxuICogVEhFIFNQSU5FIFJVTlRJTUVTLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5pbXBvcnQgdHlwZSB7IEJvbmVEYXRhIH0gZnJvbSBcIi4vQm9uZURhdGEuanNcIjtcbmltcG9ydCB0eXBlIHsgQm9uZVBvc2UgfSBmcm9tIFwiLi9Cb25lUG9zZS5qc1wiO1xuaW1wb3J0IHsgQ29uc3RyYWludERhdGEgfSBmcm9tIFwiLi9Db25zdHJhaW50RGF0YS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBTa2VsZXRvbiB9IGZyb20gXCIuL1NrZWxldG9uLmpzXCI7XG5pbXBvcnQgeyBUcmFuc2Zvcm1Db25zdHJhaW50IH0gZnJvbSBcIi4vVHJhbnNmb3JtQ29uc3RyYWludC5qc1wiO1xuaW1wb3J0IHsgVHJhbnNmb3JtQ29uc3RyYWludFBvc2UgfSBmcm9tIFwiLi9UcmFuc2Zvcm1Db25zdHJhaW50UG9zZS5qc1wiO1xuaW1wb3J0IHsgTWF0aFV0aWxzIH0gZnJvbSBcIi4vVXRpbHMuanNcIjtcblxuLyoqIFN0b3JlcyB0aGUgc2V0dXAgcG9zZSBmb3IgYSB7QGxpbmsgVHJhbnNmb3JtQ29uc3RyYWludH0uXG4gKlxuICogU2VlIFtUcmFuc2Zvcm0gY29uc3RyYWludHNdKGh0dHA6Ly9lc290ZXJpY3NvZnR3YXJlLmNvbS9zcGluZS10cmFuc2Zvcm0tY29uc3RyYWludHMpIGluIHRoZSBTcGluZSBVc2VyIEd1aWRlLiAqL1xuZXhwb3J0IGNsYXNzIFRyYW5zZm9ybUNvbnN0cmFpbnREYXRhIGV4dGVuZHMgQ29uc3RyYWludERhdGE8VHJhbnNmb3JtQ29uc3RyYWludCwgVHJhbnNmb3JtQ29uc3RyYWludFBvc2U+IHtcblx0cHVibGljIHN0YXRpYyByZWFkb25seSBST1RBVElPTiA9IDA7XG5cdHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgWCA9IDE7XG5cdHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgWSA9IDI7XG5cdHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0NBTEVYID0gMztcblx0cHVibGljIHN0YXRpYyByZWFkb25seSBTQ0FMRVkgPSA0O1xuXHRwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNIRUFSWSA9IDU7XG5cblx0LyoqIFRoZSBib25lcyB0aGF0IHdpbGwgYmUgbW9kaWZpZWQgYnkgdGhpcyB0cmFuc2Zvcm0gY29uc3RyYWludC4gKi9cblx0Ym9uZXMgPSBbXSBhcyBCb25lRGF0YVtdO1xuXG5cdC8qKiBUaGUgYm9uZSB3aG9zZSB3b3JsZCB0cmFuc2Zvcm0gd2lsbCBiZSBjb3BpZWQgdG8gdGhlIGNvbnN0cmFpbmVkIGJvbmVzLiAqL1xuXHRwdWJsaWMgc2V0IHNvdXJjZSAoc291cmNlOiBCb25lRGF0YSkgeyB0aGlzLl9zb3VyY2UgPSBzb3VyY2U7IH1cblx0cHVibGljIGdldCBzb3VyY2UgKCkge1xuXHRcdGlmICghdGhpcy5fc291cmNlKSB0aHJvdyBuZXcgRXJyb3IoXCJCb25lRGF0YSBub3Qgc2V0LlwiKVxuXHRcdGVsc2UgcmV0dXJuIHRoaXMuX3NvdXJjZTtcblx0fVxuXHRwcml2YXRlIF9zb3VyY2U6IEJvbmVEYXRhIHwgbnVsbCA9IG51bGw7XG5cblx0b2Zmc2V0cyA9IFswLCAwLCAwLCAwLCAwLCAwXTtcblxuXHQvKiogQW4gb2Zmc2V0IGFkZGVkIHRvIHRoZSBjb25zdHJhaW5lZCBib25lIFggdHJhbnNsYXRpb24uICovXG5cdG9mZnNldFggPSAwO1xuXG5cdC8qKiBBbiBvZmZzZXQgYWRkZWQgdG8gdGhlIGNvbnN0cmFpbmVkIGJvbmUgWSB0cmFuc2xhdGlvbi4gKi9cblx0b2Zmc2V0WSA9IDA7XG5cblx0LyoqIFJlYWRzIHRoZSBzb3VyY2UgYm9uZSdzIGxvY2FsIHRyYW5zZm9ybSBpbnN0ZWFkIG9mIGl0cyB3b3JsZCB0cmFuc2Zvcm0uICovXG5cdGxvY2FsU291cmNlID0gZmFsc2U7XG5cblx0LyoqIFNldHMgdGhlIGNvbnN0cmFpbmVkIGJvbmVzJyBsb2NhbCB0cmFuc2Zvcm1zIGluc3RlYWQgb2YgdGhlaXIgd29ybGQgdHJhbnNmb3Jtcy4gKi9cblx0bG9jYWxUYXJnZXQgPSBmYWxzZTtcblxuXHQvKiogQWRkcyB0aGUgc291cmNlIGJvbmUgdHJhbnNmb3JtIHRvIHRoZSBjb25zdHJhaW5lZCBib25lcyBpbnN0ZWFkIG9mIHNldHRpbmcgaXQgYWJzb2x1dGVseS4gKi9cblx0YWRkaXRpdmUgPSBmYWxzZTtcblxuXHQvKiogUHJldmVudHMgY29uc3RyYWluZWQgYm9uZXMgZnJvbSBleGNlZWRpbmcgdGhlIHJhbmdlZCBkZWZpbmVkIGJ5IHtAbGluayBUb1Byb3BlcnR5Lm9mZnNldH0gYW5kIHtAbGluayBUb1Byb3BlcnR5Lm1heH0uICovXG5cdGNsYW1wID0gZmFsc2U7XG5cblx0LyoqIFRoZSBtYXBwaW5nIG9mIHRyYW5zZm9ybSBwcm9wZXJ0aWVzIHRvIG90aGVyIHRyYW5zZm9ybSBwcm9wZXJ0aWVzLiAqL1xuXHRyZWFkb25seSBwcm9wZXJ0aWVzOiBBcnJheTxGcm9tUHJvcGVydHk+ID0gW107XG5cblx0Y29uc3RydWN0b3IgKG5hbWU6IHN0cmluZykge1xuXHRcdHN1cGVyKG5hbWUsIG5ldyBUcmFuc2Zvcm1Db25zdHJhaW50UG9zZSgpKTtcblx0fVxuXG5cdHB1YmxpYyBjcmVhdGUgKHNrZWxldG9uOiBTa2VsZXRvbikge1xuXHRcdHJldHVybiBuZXcgVHJhbnNmb3JtQ29uc3RyYWludCh0aGlzLCBza2VsZXRvbik7XG5cdH1cblxuXHQvKiogQW4gb2Zmc2V0IGFkZGVkIHRvIHRoZSBjb25zdHJhaW5lZCBib25lIHJvdGF0aW9uLiAqL1xuXHRnZXRPZmZzZXRSb3RhdGlvbiAoKSB7XG5cdFx0cmV0dXJuIHRoaXMub2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5ST1RBVElPTl07XG5cdH1cblxuXHRzZXRPZmZzZXRSb3RhdGlvbiAob2Zmc2V0Um90YXRpb246IG51bWJlcikge1xuXHRcdHRoaXMub2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5ST1RBVElPTl0gPSBvZmZzZXRSb3RhdGlvbjtcblx0fVxuXG5cdC8qKiBBbiBvZmZzZXQgYWRkZWQgdG8gdGhlIGNvbnN0cmFpbmVkIGJvbmUgWCB0cmFuc2xhdGlvbi4gKi9cblx0Z2V0T2Zmc2V0WCAoKSB7XG5cdFx0cmV0dXJuIHRoaXMub2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5YXTtcblx0fVxuXG5cdHNldE9mZnNldFggKG9mZnNldFg6IG51bWJlcikge1xuXHRcdHRoaXMub2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5YXSA9IG9mZnNldFg7XG5cdH1cblxuXHQvKiogQW4gb2Zmc2V0IGFkZGVkIHRvIHRoZSBjb25zdHJhaW5lZCBib25lIFkgdHJhbnNsYXRpb24uICovXG5cdGdldE9mZnNldFkgKCkge1xuXHRcdHJldHVybiB0aGlzLm9mZnNldHNbVHJhbnNmb3JtQ29uc3RyYWludERhdGEuWV07XG5cdH1cblxuXHRzZXRPZmZzZXRZIChvZmZzZXRZOiBudW1iZXIpIHtcblx0XHR0aGlzLm9mZnNldHNbVHJhbnNmb3JtQ29uc3RyYWludERhdGEuWV0gPSBvZmZzZXRZO1xuXHR9XG5cblx0LyoqIEFuIG9mZnNldCBhZGRlZCB0byB0aGUgY29uc3RyYWluZWQgYm9uZSBzY2FsZVguICovXG5cdGdldE9mZnNldFNjYWxlWCAoKSB7XG5cdFx0cmV0dXJuIHRoaXMub2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5TQ0FMRVhdO1xuXHR9XG5cblx0c2V0T2Zmc2V0U2NhbGVYIChvZmZzZXRTY2FsZVg6IG51bWJlcikge1xuXHRcdHRoaXMub2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5TQ0FMRVhdID0gb2Zmc2V0U2NhbGVYO1xuXHR9XG5cblx0LyoqIEFuIG9mZnNldCBhZGRlZCB0byB0aGUgY29uc3RyYWluZWQgYm9uZSBzY2FsZVkuICovXG5cdGdldE9mZnNldFNjYWxlWSAoKSB7XG5cdFx0cmV0dXJuIHRoaXMub2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5TQ0FMRVldO1xuXHR9XG5cblx0c2V0T2Zmc2V0U2NhbGVZIChvZmZzZXRTY2FsZVk6IG51bWJlcikge1xuXHRcdHRoaXMub2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5TQ0FMRVldID0gb2Zmc2V0U2NhbGVZO1xuXHR9XG5cblx0LyoqIEFuIG9mZnNldCBhZGRlZCB0byB0aGUgY29uc3RyYWluZWQgYm9uZSBzaGVhclkuICovXG5cdGdldE9mZnNldFNoZWFyWSAoKSB7XG5cdFx0cmV0dXJuIHRoaXMub2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5TSEVBUlldO1xuXHR9XG5cblx0c2V0T2Zmc2V0U2hlYXJZIChvZmZzZXRTaGVhclk6IG51bWJlcikge1xuXHRcdHRoaXMub2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5TSEVBUlldID0gb2Zmc2V0U2hlYXJZO1xuXHR9XG5cbn1cblxuLyoqIFNvdXJjZSBwcm9wZXJ0eSBmb3IgYSB7QGxpbmsgVHJhbnNmb3JtQ29uc3RyYWludH0uICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRnJvbVByb3BlcnR5IHtcblx0LyoqIFRoZSB2YWx1ZSBvZiB0aGlzIHByb3BlcnR5IHRoYXQgY29ycmVzcG9uZHMgdG8ge0BsaW5rIFRvUHJvcGVydHkub2Zmc2V0fS4gKi9cblx0b2Zmc2V0ID0gMDtcblxuXHQvKiogQ29uc3RyYWluZWQgcHJvcGVydGllcy4gKi9cblx0cmVhZG9ubHkgdG86IEFycmF5PFRvUHJvcGVydHk+ID0gW107XG5cblx0LyoqIFJlYWRzIHRoaXMgcHJvcGVydHkgZnJvbSB0aGUgc3BlY2lmaWVkIGJvbmUuICovXG5cdGFic3RyYWN0IHZhbHVlIChza2VsZXRvbjogU2tlbGV0b24sIHNvdXJjZTogQm9uZVBvc2UsIGxvY2FsOiBib29sZWFuLCBvZmZzZXRzOiBBcnJheTxudW1iZXI+KTogbnVtYmVyO1xufVxuXG4vKiogQ29uc3RyYWluZWQgcHJvcGVydHkgZm9yIGEge0BsaW5rIFRyYW5zZm9ybUNvbnN0cmFpbnR9LiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRvUHJvcGVydHkge1xuXHQvKiogVGhlIHZhbHVlIG9mIHRoaXMgcHJvcGVydHkgdGhhdCBjb3JyZXNwb25kcyB0byB7QGxpbmsgRnJvbVByb3BlcnR5Lm9mZnNldH0uICovXG5cdG9mZnNldCA9IDA7XG5cblx0LyoqIFRoZSBtYXhpbXVtIHZhbHVlIG9mIHRoaXMgcHJvcGVydHkgd2hlbiB7QGxpbmsgVHJhbnNmb3JtQ29uc3RyYWludERhdGEuY2xhbXAgY2xhbXBlZH0uICovXG5cdG1heCA9IDA7XG5cblx0LyoqIFRoZSBzY2FsZSBvZiB0aGUge0BsaW5rIEZyb21Qcm9wZXJ0eX0gdmFsdWUgaW4gcmVsYXRpb24gdG8gdGhpcyBwcm9wZXJ0eS4gKi9cblx0c2NhbGUgPSAwO1xuXG5cdC8qKiBSZWFkcyB0aGUgbWl4IGZvciB0aGlzIHByb3BlcnR5IGZyb20gdGhlIHNwZWNpZmllZCBjb25zdHJhaW50LiAqL1xuXHRhYnN0cmFjdCBtaXggKHBvc2U6IFRyYW5zZm9ybUNvbnN0cmFpbnRQb3NlKTogbnVtYmVyO1xuXG5cdC8qKiBBcHBsaWVzIHRoZSB2YWx1ZSB0byB0aGlzIHByb3BlcnR5LiAqL1xuXHRhYnN0cmFjdCBhcHBseSAoc2tlbGV0b246IFNrZWxldG9uLCBwb3NlOiBUcmFuc2Zvcm1Db25zdHJhaW50UG9zZSwgYm9uZTogQm9uZVBvc2UsIHZhbHVlOiBudW1iZXIsIGxvY2FsOiBib29sZWFuLCBhZGRpdGl2ZTogYm9vbGVhbik6IHZvaWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBGcm9tUm90YXRlIGV4dGVuZHMgRnJvbVByb3BlcnR5IHtcblx0dmFsdWUgKHNrZWxldG9uOiBTa2VsZXRvbiwgc291cmNlOiBCb25lUG9zZSwgbG9jYWw6IGJvb2xlYW4sIG9mZnNldHM6IEFycmF5PG51bWJlcj4pOiBudW1iZXIge1xuXHRcdGlmIChsb2NhbCkgcmV0dXJuIHNvdXJjZS5yb3RhdGlvbiArIG9mZnNldHNbVHJhbnNmb3JtQ29uc3RyYWludERhdGEuUk9UQVRJT05dO1xuXHRcdGNvbnN0IHN4ID0gc2tlbGV0b24uc2NhbGVYLCBzeSA9IHNrZWxldG9uLnNjYWxlWTtcblx0XHRsZXQgdmFsdWUgPSBNYXRoLmF0YW4yKHNvdXJjZS5jIC8gc3ksIHNvdXJjZS5hIC8gc3gpICogTWF0aFV0aWxzLnJhZERlZ1xuXHRcdFx0KyAoKHNvdXJjZS5hICogc291cmNlLmQgLSBzb3VyY2UuYiAqIHNvdXJjZS5jKSAqIHN4ICogc3kgPiAwID8gb2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5ST1RBVElPTl0gOiAtb2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5ST1RBVElPTl0pO1xuXHRcdGlmICh2YWx1ZSA8IDApIHZhbHVlICs9IDM2MDtcblx0XHRyZXR1cm4gdmFsdWU7XG5cdH1cbn1cblxuZXhwb3J0IGNsYXNzIFRvUm90YXRlIGV4dGVuZHMgVG9Qcm9wZXJ0eSB7XG5cdG1peCAocG9zZTogVHJhbnNmb3JtQ29uc3RyYWludFBvc2UpOiBudW1iZXIge1xuXHRcdHJldHVybiBwb3NlLm1peFJvdGF0ZTtcblx0fVxuXG5cdGFwcGx5IChza2VsZXRvbjogU2tlbGV0b24sIHBvc2U6IFRyYW5zZm9ybUNvbnN0cmFpbnRQb3NlLCBib25lOiBCb25lUG9zZSwgdmFsdWU6IG51bWJlciwgbG9jYWw6IGJvb2xlYW4sIGFkZGl0aXZlOiBib29sZWFuKTogdm9pZCB7XG5cdFx0aWYgKGxvY2FsKVxuXHRcdFx0Ym9uZS5yb3RhdGlvbiArPSAoYWRkaXRpdmUgPyB2YWx1ZSA6IHZhbHVlIC0gYm9uZS5yb3RhdGlvbikgKiBwb3NlLm1peFJvdGF0ZTtcblx0XHRlbHNlIHtcblx0XHRcdGNvbnN0IHN4ID0gc2tlbGV0b24uc2NhbGVYLCBzeSA9IHNrZWxldG9uLnNjYWxlWSwgaXggPSAxIC8gc3gsIGl5ID0gMSAvIHN5O1xuXHRcdFx0Y29uc3QgYSA9IGJvbmUuYSAqIGl4LCBiID0gYm9uZS5iICogaXgsIGMgPSBib25lLmMgKiBpeSwgZCA9IGJvbmUuZCAqIGl5O1xuXHRcdFx0dmFsdWUgKj0gTWF0aFV0aWxzLmRlZ1JhZDtcblx0XHRcdGlmICghYWRkaXRpdmUpIHZhbHVlIC09IE1hdGguYXRhbjIoYywgYSk7XG5cdFx0XHRpZiAodmFsdWUgPiBNYXRoVXRpbHMuUEkpXG5cdFx0XHRcdHZhbHVlIC09IE1hdGhVdGlscy5QSTI7XG5cdFx0XHRlbHNlIGlmICh2YWx1ZSA8IC1NYXRoVXRpbHMuUEkpIC8vXG5cdFx0XHRcdHZhbHVlICs9IE1hdGhVdGlscy5QSTI7XG5cdFx0XHR2YWx1ZSAqPSBwb3NlLm1peFJvdGF0ZTtcblx0XHRcdGNvbnN0IGNvcyA9IE1hdGguY29zKHZhbHVlKSwgc2luID0gTWF0aC5zaW4odmFsdWUpO1xuXHRcdFx0Ym9uZS5hID0gKGNvcyAqIGEgLSBzaW4gKiBjKSAqIHN4O1xuXHRcdFx0Ym9uZS5iID0gKGNvcyAqIGIgLSBzaW4gKiBkKSAqIHN4O1xuXHRcdFx0Ym9uZS5jID0gKHNpbiAqIGEgKyBjb3MgKiBjKSAqIHN5O1xuXHRcdFx0Ym9uZS5kID0gKHNpbiAqIGIgKyBjb3MgKiBkKSAqIHN5O1xuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgY2xhc3MgRnJvbVggZXh0ZW5kcyBGcm9tUHJvcGVydHkge1xuXHR2YWx1ZSAoc2tlbGV0b246IFNrZWxldG9uLCBzb3VyY2U6IEJvbmVQb3NlLCBsb2NhbDogYm9vbGVhbiwgb2Zmc2V0czogQXJyYXk8bnVtYmVyPik6IG51bWJlciB7XG5cdFx0cmV0dXJuIGxvY2FsXG5cdFx0XHQ/IHNvdXJjZS54ICsgb2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5YXVxuXHRcdFx0OiAob2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5YXSAqIHNvdXJjZS5hICsgb2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5ZXSAqIHNvdXJjZS5iICsgc291cmNlLndvcmxkWCkgLyBza2VsZXRvbi5zY2FsZVg7XG5cdH1cbn1cblxuZXhwb3J0IGNsYXNzIFRvWCBleHRlbmRzIFRvUHJvcGVydHkge1xuXHRtaXggKHBvc2U6IFRyYW5zZm9ybUNvbnN0cmFpbnRQb3NlKTogbnVtYmVyIHtcblx0XHRyZXR1cm4gcG9zZS5taXhYO1xuXHR9XG5cblx0YXBwbHkgKHNrZWxldG9uOiBTa2VsZXRvbiwgcG9zZTogVHJhbnNmb3JtQ29uc3RyYWludFBvc2UsIGJvbmU6IEJvbmVQb3NlLCB2YWx1ZTogbnVtYmVyLCBsb2NhbDogYm9vbGVhbiwgYWRkaXRpdmU6IGJvb2xlYW4pOiB2b2lkIHtcblx0XHRpZiAobG9jYWwpXG5cdFx0XHRib25lLnggKz0gKGFkZGl0aXZlID8gdmFsdWUgOiB2YWx1ZSAtIGJvbmUueCkgKiBwb3NlLm1peFg7XG5cdFx0ZWxzZSB7XG5cdFx0XHRpZiAoIWFkZGl0aXZlKSB2YWx1ZSAtPSBib25lLndvcmxkWCAvIHNrZWxldG9uLnNjYWxlWDtcblx0XHRcdGJvbmUud29ybGRYICs9IHZhbHVlICogcG9zZS5taXhYICogc2tlbGV0b24uc2NhbGVYO1xuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgY2xhc3MgRnJvbVkgZXh0ZW5kcyBGcm9tUHJvcGVydHkge1xuXHR2YWx1ZSAoc2tlbGV0b246IFNrZWxldG9uLCBzb3VyY2U6IEJvbmVQb3NlLCBsb2NhbDogYm9vbGVhbiwgb2Zmc2V0czogQXJyYXk8bnVtYmVyPik6IG51bWJlciB7XG5cdFx0cmV0dXJuIGxvY2FsXG5cdFx0XHQ/IHNvdXJjZS55ICsgb2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5ZXVxuXHRcdFx0OiAob2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5YXSAqIHNvdXJjZS5jICsgb2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5ZXSAqIHNvdXJjZS5kICsgc291cmNlLndvcmxkWSkgLyBza2VsZXRvbi5zY2FsZVk7XG5cdH1cbn1cblxuZXhwb3J0IGNsYXNzIFRvWSBleHRlbmRzIFRvUHJvcGVydHkge1xuXHRtaXggKHBvc2U6IFRyYW5zZm9ybUNvbnN0cmFpbnRQb3NlKTogbnVtYmVyIHtcblx0XHRyZXR1cm4gcG9zZS5taXhZO1xuXHR9XG5cblx0YXBwbHkgKHNrZWxldG9uOiBTa2VsZXRvbiwgcG9zZTogVHJhbnNmb3JtQ29uc3RyYWludFBvc2UsIGJvbmU6IEJvbmVQb3NlLCB2YWx1ZTogbnVtYmVyLCBsb2NhbDogYm9vbGVhbiwgYWRkaXRpdmU6IGJvb2xlYW4pOiB2b2lkIHtcblx0XHRpZiAobG9jYWwpXG5cdFx0XHRib25lLnkgKz0gKGFkZGl0aXZlID8gdmFsdWUgOiB2YWx1ZSAtIGJvbmUueSkgKiBwb3NlLm1peFk7XG5cdFx0ZWxzZSB7XG5cdFx0XHRpZiAoIWFkZGl0aXZlKSB2YWx1ZSAtPSBib25lLndvcmxkWSAvIHNrZWxldG9uLnNjYWxlWTtcblx0XHRcdGJvbmUud29ybGRZICs9IHZhbHVlICogcG9zZS5taXhZICogc2tlbGV0b24uc2NhbGVZO1xuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgY2xhc3MgRnJvbVNjYWxlWCBleHRlbmRzIEZyb21Qcm9wZXJ0eSB7XG5cdHZhbHVlIChza2VsZXRvbjogU2tlbGV0b24sIHNvdXJjZTogQm9uZVBvc2UsIGxvY2FsOiBib29sZWFuLCBvZmZzZXRzOiBBcnJheTxudW1iZXI+KTogbnVtYmVyIHtcblx0XHRpZiAobG9jYWwpIHJldHVybiBzb3VyY2Uuc2NhbGVYICsgb2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5TQ0FMRVhdO1xuXHRcdGNvbnN0IGEgPSBzb3VyY2UuYSAvIHNrZWxldG9uLnNjYWxlWCwgYyA9IHNvdXJjZS5jIC8gc2tlbGV0b24uc2NhbGVZO1xuXHRcdHJldHVybiBNYXRoLnNxcnQoYSAqIGEgKyBjICogYykgKyBvZmZzZXRzW1RyYW5zZm9ybUNvbnN0cmFpbnREYXRhLlNDQUxFWF07XG5cdH1cbn1cblxuZXhwb3J0IGNsYXNzIFRvU2NhbGVYIGV4dGVuZHMgVG9Qcm9wZXJ0eSB7XG5cdG1peCAocG9zZTogVHJhbnNmb3JtQ29uc3RyYWludFBvc2UpOiBudW1iZXIge1xuXHRcdHJldHVybiBwb3NlLm1peFNjYWxlWDtcblx0fVxuXG5cdGFwcGx5IChza2VsZXRvbjogU2tlbGV0b24sIHBvc2U6IFRyYW5zZm9ybUNvbnN0cmFpbnRQb3NlLCBib25lOiBCb25lUG9zZSwgdmFsdWU6IG51bWJlciwgbG9jYWw6IGJvb2xlYW4sIGFkZGl0aXZlOiBib29sZWFuKTogdm9pZCB7XG5cdFx0aWYgKGxvY2FsKSB7XG5cdFx0XHRpZiAoYWRkaXRpdmUpXG5cdFx0XHRcdGJvbmUuc2NhbGVYICo9IDEgKyAodmFsdWUgLSAxKSAqIHBvc2UubWl4U2NhbGVYO1xuXHRcdFx0ZWxzZSBpZiAoYm9uZS5zY2FsZVggIT09IDApIC8vXG5cdFx0XHRcdGJvbmUuc2NhbGVYICs9ICh2YWx1ZSAtIGJvbmUuc2NhbGVYKSAqIHBvc2UubWl4U2NhbGVYO1xuXHRcdH0gZWxzZSBpZiAoYWRkaXRpdmUpIHtcblx0XHRcdGNvbnN0IHMgPSAxICsgKHZhbHVlIC0gMSkgKiBwb3NlLm1peFNjYWxlWDtcblx0XHRcdGJvbmUuYSAqPSBzO1xuXHRcdFx0Ym9uZS5jICo9IHM7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGxldCBhID0gYm9uZS5hIC8gc2tlbGV0b24uc2NhbGVYLCBjID0gYm9uZS5jIC8gc2tlbGV0b24uc2NhbGVZLCBzID0gTWF0aC5zcXJ0KGEgKiBhICsgYyAqIGMpO1xuXHRcdFx0aWYgKHMgIT09IDApIHtcblx0XHRcdFx0cyA9IDEgKyAodmFsdWUgLSBzKSAqIHBvc2UubWl4U2NhbGVYIC8gcztcblx0XHRcdFx0Ym9uZS5hICo9IHM7XG5cdFx0XHRcdGJvbmUuYyAqPSBzO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgY2xhc3MgRnJvbVNjYWxlWSBleHRlbmRzIEZyb21Qcm9wZXJ0eSB7XG5cdHZhbHVlIChza2VsZXRvbjogU2tlbGV0b24sIHNvdXJjZTogQm9uZVBvc2UsIGxvY2FsOiBib29sZWFuLCBvZmZzZXRzOiBBcnJheTxudW1iZXI+KTogbnVtYmVyIHtcblx0XHRpZiAobG9jYWwpIHJldHVybiBzb3VyY2Uuc2NhbGVZICsgb2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5TQ0FMRVldO1xuXHRcdGNvbnN0IGIgPSBzb3VyY2UuYiAvIHNrZWxldG9uLnNjYWxlWCwgZCA9IHNvdXJjZS5kIC8gc2tlbGV0b24uc2NhbGVZO1xuXHRcdHJldHVybiBNYXRoLnNxcnQoYiAqIGIgKyBkICogZCkgKyBvZmZzZXRzW1RyYW5zZm9ybUNvbnN0cmFpbnREYXRhLlNDQUxFWV07XG5cdH1cbn1cblxuZXhwb3J0IGNsYXNzIFRvU2NhbGVZIGV4dGVuZHMgVG9Qcm9wZXJ0eSB7XG5cdG1peCAocG9zZTogVHJhbnNmb3JtQ29uc3RyYWludFBvc2UpOiBudW1iZXIge1xuXHRcdHJldHVybiBwb3NlLm1peFNjYWxlWTtcblx0fVxuXG5cdGFwcGx5IChza2VsZXRvbjogU2tlbGV0b24sIHBvc2U6IFRyYW5zZm9ybUNvbnN0cmFpbnRQb3NlLCBib25lOiBCb25lUG9zZSwgdmFsdWU6IG51bWJlciwgbG9jYWw6IGJvb2xlYW4sIGFkZGl0aXZlOiBib29sZWFuKTogdm9pZCB7XG5cdFx0aWYgKGxvY2FsKSB7XG5cdFx0XHRpZiAoYWRkaXRpdmUpXG5cdFx0XHRcdGJvbmUuc2NhbGVZICo9IDEgKyAodmFsdWUgLSAxKSAqIHBvc2UubWl4U2NhbGVZO1xuXHRcdFx0ZWxzZSBpZiAoYm9uZS5zY2FsZVkgIT09IDApIC8vXG5cdFx0XHRcdGJvbmUuc2NhbGVZICs9ICh2YWx1ZSAtIGJvbmUuc2NhbGVZKSAqIHBvc2UubWl4U2NhbGVZO1xuXHRcdH0gZWxzZSBpZiAoYWRkaXRpdmUpIHtcblx0XHRcdGNvbnN0IHMgPSAxICsgKHZhbHVlIC0gMSkgKiBwb3NlLm1peFNjYWxlWTtcblx0XHRcdGJvbmUuYiAqPSBzO1xuXHRcdFx0Ym9uZS5kICo9IHM7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGxldCBiID0gYm9uZS5iIC8gc2tlbGV0b24uc2NhbGVYLCBkID0gYm9uZS5kIC8gc2tlbGV0b24uc2NhbGVZLCBzID0gTWF0aC5zcXJ0KGIgKiBiICsgZCAqIGQpO1xuXHRcdFx0aWYgKHMgIT09IDApIHtcblx0XHRcdFx0cyA9IDEgKyAodmFsdWUgLSBzKSAqIHBvc2UubWl4U2NhbGVZIC8gcztcblx0XHRcdFx0Ym9uZS5iICo9IHM7XG5cdFx0XHRcdGJvbmUuZCAqPSBzO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgY2xhc3MgRnJvbVNoZWFyWSBleHRlbmRzIEZyb21Qcm9wZXJ0eSB7XG5cdHZhbHVlIChza2VsZXRvbjogU2tlbGV0b24sIHNvdXJjZTogQm9uZVBvc2UsIGxvY2FsOiBib29sZWFuLCBvZmZzZXRzOiBBcnJheTxudW1iZXI+KTogbnVtYmVyIHtcblx0XHRpZiAobG9jYWwpIHJldHVybiBzb3VyY2Uuc2hlYXJZICsgb2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5TSEVBUlldO1xuXHRcdGNvbnN0IGl4ID0gMSAvIHNrZWxldG9uLnNjYWxlWCwgaXkgPSAxIC8gc2tlbGV0b24uc2NhbGVZO1xuXHRcdHJldHVybiAoTWF0aC5hdGFuMihzb3VyY2UuZCAqIGl5LCBzb3VyY2UuYiAqIGl4KSAtIE1hdGguYXRhbjIoc291cmNlLmMgKiBpeSwgc291cmNlLmEgKiBpeCkpICogTWF0aFV0aWxzLnJhZERlZyAtIDkwICsgb2Zmc2V0c1tUcmFuc2Zvcm1Db25zdHJhaW50RGF0YS5TSEVBUlldO1xuXHR9XG59XG5cbmV4cG9ydCBjbGFzcyBUb1NoZWFyWSBleHRlbmRzIFRvUHJvcGVydHkge1xuXHRtaXggKHBvc2U6IFRyYW5zZm9ybUNvbnN0cmFpbnRQb3NlKTogbnVtYmVyIHtcblx0XHRyZXR1cm4gcG9zZS5taXhTaGVhclk7XG5cdH1cblxuXHRhcHBseSAoc2tlbGV0b246IFNrZWxldG9uLCBwb3NlOiBUcmFuc2Zvcm1Db25zdHJhaW50UG9zZSwgYm9uZTogQm9uZVBvc2UsIHZhbHVlOiBudW1iZXIsIGxvY2FsOiBib29sZWFuLCBhZGRpdGl2ZTogYm9vbGVhbik6IHZvaWQge1xuXHRcdGlmIChsb2NhbCkge1xuXHRcdFx0aWYgKCFhZGRpdGl2ZSkgdmFsdWUgLT0gYm9uZS5zaGVhclk7XG5cdFx0XHRib25lLnNoZWFyWSArPSB2YWx1ZSAqIHBvc2UubWl4U2hlYXJZO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBzeCA9IHNrZWxldG9uLnNjYWxlWCwgc3kgPSBza2VsZXRvbi5zY2FsZVksIGIgPSBib25lLmIgLyBzeCwgZCA9IGJvbmUuZCAvIHN5LCBieSA9IE1hdGguYXRhbjIoZCwgYik7XG5cdFx0XHR2YWx1ZSA9ICh2YWx1ZSArIDkwKSAqIE1hdGhVdGlscy5kZWdSYWQ7XG5cdFx0XHRpZiAoYWRkaXRpdmUpXG5cdFx0XHRcdHZhbHVlIC09IE1hdGhVdGlscy5QSSAvIDI7XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0dmFsdWUgLT0gYnkgLSBNYXRoLmF0YW4yKGJvbmUuYyAvIHN5LCBib25lLmEgLyBzeCk7XG5cdFx0XHRcdGlmICh2YWx1ZSA+IE1hdGhVdGlscy5QSSlcblx0XHRcdFx0XHR2YWx1ZSAtPSBNYXRoVXRpbHMuUEkyO1xuXHRcdFx0XHRlbHNlIGlmICh2YWx1ZSA8IC1NYXRoVXRpbHMuUEkpXG5cdFx0XHRcdFx0dmFsdWUgKz0gTWF0aFV0aWxzLlBJMjtcblx0XHRcdH1cblx0XHRcdHZhbHVlID0gYnkgKyB2YWx1ZSAqIHBvc2UubWl4U2hlYXJZO1xuXHRcdFx0Y29uc3QgcyA9IE1hdGguc3FydChiICogYiArIGQgKiBkKTtcblx0XHRcdGJvbmUuYiA9IE1hdGguY29zKHZhbHVlKSAqIHMgKiBzeDtcblx0XHRcdGJvbmUuZCA9IE1hdGguc2luKHZhbHVlKSAqIHMgKiBzeTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==
|