UNPKG

ngx-spine

Version:

[![Build Status](https://travis-ci.org/PoiScript/ngx-spine.svg?branch=master)](https://travis-ci.org/PoiScript/ngx-spine)

205 lines 15.2 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * *************************************************************************** * Spine Runtimes License Agreement * Last updated May 1, 2019. Replaces all prior versions. * * Copyright (c) 2013-2019, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and * conditions of Section 2 of the Spine Editor License Agreement: * http://esotericsoftware.com/spine-editor-license * * Otherwise, it is permitted to integrate the Spine Runtimes into software * or otherwise create derivative works of the Spine Runtimes (collectively, * "Products"), provided that each user of the Products must obtain their own * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN * NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS * INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * *************************************************************************** * @abstract */ export class Texture { /** * @param {?} image */ constructor(image) { this._image = image; } /** * @return {?} */ getImage() { return this._image; } /** * @param {?} text * @return {?} */ static filterFromString(text) { switch (text.toLowerCase()) { case "nearest": return TextureFilter.Nearest; case "linear": return TextureFilter.Linear; case "mipmap": return TextureFilter.MipMap; case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; default: throw new Error(`Unknown texture filter ${text}`); } } /** * @param {?} text * @return {?} */ static wrapFromString(text) { switch (text.toLowerCase()) { case "mirroredtepeat": return TextureWrap.MirroredRepeat; case "clamptoedge": return TextureWrap.ClampToEdge; case "repeat": return TextureWrap.Repeat; default: throw new Error(`Unknown texture wrap ${text}`); } } } if (false) { /** * @type {?} * @protected */ Texture.prototype._image; /** * @abstract * @param {?} minFilter * @param {?} magFilter * @return {?} */ Texture.prototype.setFilters = function (minFilter, magFilter) { }; /** * @abstract * @param {?} uWrap * @param {?} vWrap * @return {?} */ Texture.prototype.setWraps = function (uWrap, vWrap) { }; /** * @abstract * @return {?} */ Texture.prototype.dispose = function () { }; } /** @enum {number} */ const TextureFilter = { Nearest: 9728, Linear: 9729, MipMap: 9987, MipMapNearestNearest: 9984, MipMapLinearNearest: 9985, MipMapNearestLinear: 9986, MipMapLinearLinear: 9987 // WebGLRenderingContext.LINEAR_MIPMAP_LINEAR , }; export { TextureFilter }; TextureFilter[TextureFilter.Nearest] = 'Nearest'; TextureFilter[TextureFilter.Linear] = 'Linear'; TextureFilter[TextureFilter.MipMap] = 'MipMap'; TextureFilter[TextureFilter.MipMapNearestNearest] = 'MipMapNearestNearest'; TextureFilter[TextureFilter.MipMapLinearNearest] = 'MipMapLinearNearest'; TextureFilter[TextureFilter.MipMapNearestLinear] = 'MipMapNearestLinear'; TextureFilter[TextureFilter.MipMapLinearLinear] = 'MipMapLinearLinear'; /** @enum {number} */ const TextureWrap = { MirroredRepeat: 33648, ClampToEdge: 33071, Repeat: 10497 // WebGLRenderingContext.REPEAT , }; export { TextureWrap }; TextureWrap[TextureWrap.MirroredRepeat] = 'MirroredRepeat'; TextureWrap[TextureWrap.ClampToEdge] = 'ClampToEdge'; TextureWrap[TextureWrap.Repeat] = 'Repeat'; export class TextureRegion { constructor() { this.u = 0; this.v = 0; this.u2 = 0; this.v2 = 0; this.width = 0; this.height = 0; this.rotate = false; this.offsetX = 0; this.offsetY = 0; this.originalWidth = 0; this.originalHeight = 0; } } if (false) { /** @type {?} */ TextureRegion.prototype.renderObject; /** @type {?} */ TextureRegion.prototype.u; /** @type {?} */ TextureRegion.prototype.v; /** @type {?} */ TextureRegion.prototype.u2; /** @type {?} */ TextureRegion.prototype.v2; /** @type {?} */ TextureRegion.prototype.width; /** @type {?} */ TextureRegion.prototype.height; /** @type {?} */ TextureRegion.prototype.rotate; /** @type {?} */ TextureRegion.prototype.offsetX; /** @type {?} */ TextureRegion.prototype.offsetY; /** @type {?} */ TextureRegion.prototype.originalWidth; /** @type {?} */ TextureRegion.prototype.originalHeight; } export class FakeTexture extends Texture { /** * @param {?} minFilter * @param {?} magFilter * @return {?} */ setFilters(minFilter, magFilter) { } /** * @param {?} uWrap * @param {?} vWrap * @return {?} */ setWraps(uWrap, vWrap) { } /** * @return {?} */ dispose() { } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGV4dHVyZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1zcGluZS8iLCJzb3VyY2VzIjpbImxpYi9zcGluZS10cy9jb3JlL1RleHR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE0QkEsTUFBTSxPQUFnQixPQUFPOzs7O0lBRTNCLFlBQVksS0FBdUI7UUFDakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQzs7OztJQUNELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQzs7Ozs7SUFJTSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBWTtRQUN6QyxRQUFRLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUMxQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxhQUFhLENBQUMsT0FBTyxDQUFDO1lBQy9CLEtBQUssUUFBUTtnQkFDWCxPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQUM7WUFDOUIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sYUFBYSxDQUFDLE1BQU0sQ0FBQztZQUM5QixLQUFLLHNCQUFzQjtnQkFDekIsT0FBTyxhQUFhLENBQUMsb0JBQW9CLENBQUM7WUFDNUMsS0FBSyxxQkFBcUI7Z0JBQ3hCLE9BQU8sYUFBYSxDQUFDLG1CQUFtQixDQUFDO1lBQzNDLEtBQUsscUJBQXFCO2dCQUN4QixPQUFPLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQztZQUMzQyxLQUFLLG9CQUFvQjtnQkFDdkIsT0FBTyxhQUFhLENBQUMsa0JBQWtCLENBQUM7WUFDMUM7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNyRDtJQUNILENBQUM7Ozs7O0lBQ00sTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFZO1FBQ3ZDLFFBQVEsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQzFCLEtBQUssZ0JBQWdCO2dCQUNuQixPQUFPLFdBQVcsQ0FBQyxjQUFjLENBQUM7WUFDcEMsS0FBSyxhQUFhO2dCQUNoQixPQUFPLFdBQVcsQ0FBQyxXQUFXLENBQUM7WUFDakMsS0FBSyxRQUFRO2dCQUNYLE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQztZQUM1QjtnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ25EO0lBQ0gsQ0FBQztDQUNGOzs7Ozs7SUExQ0MseUJBQW1DOzs7Ozs7O0lBT25DLG1FQUE4RTs7Ozs7OztJQUM5RSx5REFBZ0U7Ozs7O0lBQ2hFLDRDQUF5Qjs7OztJQW1DekIsYUFBYztJQUNkLFlBQWE7SUFDYixZQUFhO0lBQ2IsMEJBQTJCO0lBQzNCLHlCQUEwQjtJQUMxQix5QkFBMEI7SUFDMUIsd0JBQXlCLENBQUMsNkNBQTZDOzs7Ozs7Ozs7Ozs7O0lBR3ZFLHFCQUFzQjtJQUN0QixrQkFBbUI7SUFDbkIsYUFBYyxDQUFDLCtCQUErQjs7Ozs7OztBQUVoRCxNQUFNLE9BQU8sYUFBYTtJQUExQjtRQUVFLE1BQUMsR0FBRyxDQUFDLENBQUM7UUFDTixNQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ04sT0FBRSxHQUFHLENBQUMsQ0FBQztRQUNQLE9BQUUsR0FBRyxDQUFDLENBQUM7UUFDUCxVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUNYLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ1osWUFBTyxHQUFHLENBQUMsQ0FBQztRQUNaLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7Q0FBQTs7O0lBWkMscUNBQWtCOztJQUNsQiwwQkFBTTs7SUFDTiwwQkFBTTs7SUFDTiwyQkFBTzs7SUFDUCwyQkFBTzs7SUFDUCw4QkFBVTs7SUFDViwrQkFBVzs7SUFDWCwrQkFBZTs7SUFDZixnQ0FBWTs7SUFDWixnQ0FBWTs7SUFDWixzQ0FBa0I7O0lBQ2xCLHVDQUFtQjs7QUFFckIsTUFBTSxPQUFPLFdBQVksU0FBUSxPQUFPOzs7Ozs7SUFDdEMsVUFBVSxDQUFDLFNBQXdCLEVBQUUsU0FBd0IsSUFBRyxDQUFDOzs7Ozs7SUFDakUsUUFBUSxDQUFDLEtBQWtCLEVBQUUsS0FBa0IsSUFBRyxDQUFDOzs7O0lBQ25ELE9BQU8sS0FBSSxDQUFDO0NBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAqIFNwaW5lIFJ1bnRpbWVzIExpY2Vuc2UgQWdyZWVtZW50XHJcbiAqIExhc3QgdXBkYXRlZCBNYXkgMSwgMjAxOS4gUmVwbGFjZXMgYWxsIHByaW9yIHZlcnNpb25zLlxyXG4gKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtMjAxOSwgRXNvdGVyaWMgU29mdHdhcmUgTExDXHJcbiAqXHJcbiAqIEludGVncmF0aW9uIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlIG9yIG90aGVyd2lzZSBjcmVhdGluZ1xyXG4gKiBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpcyBwZXJtaXR0ZWQgdW5kZXIgdGhlIHRlcm1zIGFuZFxyXG4gKiBjb25kaXRpb25zIG9mIFNlY3Rpb24gMiBvZiB0aGUgU3BpbmUgRWRpdG9yIExpY2Vuc2UgQWdyZWVtZW50OlxyXG4gKiBodHRwOi8vZXNvdGVyaWNzb2Z0d2FyZS5jb20vc3BpbmUtZWRpdG9yLWxpY2Vuc2VcclxuICpcclxuICogT3RoZXJ3aXNlLCBpdCBpcyBwZXJtaXR0ZWQgdG8gaW50ZWdyYXRlIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlXHJcbiAqIG9yIG90aGVyd2lzZSBjcmVhdGUgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgKGNvbGxlY3RpdmVseSxcclxuICogXCJQcm9kdWN0c1wiKSwgcHJvdmlkZWQgdGhhdCBlYWNoIHVzZXIgb2YgdGhlIFByb2R1Y3RzIG11c3Qgb2J0YWluIHRoZWlyIG93blxyXG4gKiBTcGluZSBFZGl0b3IgbGljZW5zZSBhbmQgcmVkaXN0cmlidXRpb24gb2YgdGhlIFByb2R1Y3RzIGluIGFueSBmb3JtIG11c3RcclxuICogaW5jbHVkZSB0aGlzIGxpY2Vuc2UgYW5kIGNvcHlyaWdodCBub3RpY2UuXHJcbiAqXHJcbiAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgRVNPVEVSSUMgU09GVFdBUkUgTExDIFwiQVMgSVNcIiBBTkQgQU5ZIEVYUFJFU1NcclxuICogT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFU1xyXG4gKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTlxyXG4gKiBOTyBFVkVOVCBTSEFMTCBFU09URVJJQyBTT0ZUV0FSRSBMTEMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCxcclxuICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORyxcclxuICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTLCBCVVNJTkVTU1xyXG4gKiBJTlRFUlJVUFRJT04sIE9SIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZXHJcbiAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElOR1xyXG4gKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsXHJcbiAqIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRleHR1cmUge1xyXG4gIHByb3RlY3RlZCBfaW1hZ2U6IEhUTUxJbWFnZUVsZW1lbnQ7XHJcbiAgY29uc3RydWN0b3IoaW1hZ2U6IEhUTUxJbWFnZUVsZW1lbnQpIHtcclxuICAgIHRoaXMuX2ltYWdlID0gaW1hZ2U7XHJcbiAgfVxyXG4gIGdldEltYWdlKCk6IEhUTUxJbWFnZUVsZW1lbnQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ltYWdlO1xyXG4gIH1cclxuICBhYnN0cmFjdCBzZXRGaWx0ZXJzKG1pbkZpbHRlcjogVGV4dHVyZUZpbHRlciwgbWFnRmlsdGVyOiBUZXh0dXJlRmlsdGVyKTogdm9pZDtcclxuICBhYnN0cmFjdCBzZXRXcmFwcyh1V3JhcDogVGV4dHVyZVdyYXAsIHZXcmFwOiBUZXh0dXJlV3JhcCk6IHZvaWQ7XHJcbiAgYWJzdHJhY3QgZGlzcG9zZSgpOiB2b2lkO1xyXG4gIHB1YmxpYyBzdGF0aWMgZmlsdGVyRnJvbVN0cmluZyh0ZXh0OiBzdHJpbmcpOiBUZXh0dXJlRmlsdGVyIHtcclxuICAgIHN3aXRjaCAodGV4dC50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgIGNhc2UgXCJuZWFyZXN0XCI6XHJcbiAgICAgICAgcmV0dXJuIFRleHR1cmVGaWx0ZXIuTmVhcmVzdDtcclxuICAgICAgY2FzZSBcImxpbmVhclwiOlxyXG4gICAgICAgIHJldHVybiBUZXh0dXJlRmlsdGVyLkxpbmVhcjtcclxuICAgICAgY2FzZSBcIm1pcG1hcFwiOlxyXG4gICAgICAgIHJldHVybiBUZXh0dXJlRmlsdGVyLk1pcE1hcDtcclxuICAgICAgY2FzZSBcIm1pcG1hcG5lYXJlc3RuZWFyZXN0XCI6XHJcbiAgICAgICAgcmV0dXJuIFRleHR1cmVGaWx0ZXIuTWlwTWFwTmVhcmVzdE5lYXJlc3Q7XHJcbiAgICAgIGNhc2UgXCJtaXBtYXBsaW5lYXJuZWFyZXN0XCI6XHJcbiAgICAgICAgcmV0dXJuIFRleHR1cmVGaWx0ZXIuTWlwTWFwTGluZWFyTmVhcmVzdDtcclxuICAgICAgY2FzZSBcIm1pcG1hcG5lYXJlc3RsaW5lYXJcIjpcclxuICAgICAgICByZXR1cm4gVGV4dHVyZUZpbHRlci5NaXBNYXBOZWFyZXN0TGluZWFyO1xyXG4gICAgICBjYXNlIFwibWlwbWFwbGluZWFybGluZWFyXCI6XHJcbiAgICAgICAgcmV0dXJuIFRleHR1cmVGaWx0ZXIuTWlwTWFwTGluZWFyTGluZWFyO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biB0ZXh0dXJlIGZpbHRlciAke3RleHR9YCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHB1YmxpYyBzdGF0aWMgd3JhcEZyb21TdHJpbmcodGV4dDogc3RyaW5nKTogVGV4dHVyZVdyYXAge1xyXG4gICAgc3dpdGNoICh0ZXh0LnRvTG93ZXJDYXNlKCkpIHtcclxuICAgICAgY2FzZSBcIm1pcnJvcmVkdGVwZWF0XCI6XHJcbiAgICAgICAgcmV0dXJuIFRleHR1cmVXcmFwLk1pcnJvcmVkUmVwZWF0O1xyXG4gICAgICBjYXNlIFwiY2xhbXB0b2VkZ2VcIjpcclxuICAgICAgICByZXR1cm4gVGV4dHVyZVdyYXAuQ2xhbXBUb0VkZ2U7XHJcbiAgICAgIGNhc2UgXCJyZXBlYXRcIjpcclxuICAgICAgICByZXR1cm4gVGV4dHVyZVdyYXAuUmVwZWF0O1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biB0ZXh0dXJlIHdyYXAgJHt0ZXh0fWApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5leHBvcnQgZW51bSBUZXh0dXJlRmlsdGVyIHtcclxuICBOZWFyZXN0ID0gOTcyOCwgLy8gV2ViR0xSZW5kZXJpbmdDb250ZXh0Lk5FQVJFU1RcclxuICBMaW5lYXIgPSA5NzI5LCAvLyBXZWJHTFJlbmRlcmluZ0NvbnRleHQuTElORUFSXHJcbiAgTWlwTWFwID0gOTk4NywgLy8gV2ViR0xSZW5kZXJpbmdDb250ZXh0LkxJTkVBUl9NSVBNQVBfTElORUFSXHJcbiAgTWlwTWFwTmVhcmVzdE5lYXJlc3QgPSA5OTg0LCAvLyBXZWJHTFJlbmRlcmluZ0NvbnRleHQuTkVBUkVTVF9NSVBNQVBfTkVBUkVTVFxyXG4gIE1pcE1hcExpbmVhck5lYXJlc3QgPSA5OTg1LCAvLyBXZWJHTFJlbmRlcmluZ0NvbnRleHQuTElORUFSX01JUE1BUF9ORUFSRVNUXHJcbiAgTWlwTWFwTmVhcmVzdExpbmVhciA9IDk5ODYsIC8vIFdlYkdMUmVuZGVyaW5nQ29udGV4dC5ORUFSRVNUX01JUE1BUF9MSU5FQVJcclxuICBNaXBNYXBMaW5lYXJMaW5lYXIgPSA5OTg3IC8vIFdlYkdMUmVuZGVyaW5nQ29udGV4dC5MSU5FQVJfTUlQTUFQX0xJTkVBUlxyXG59XHJcbmV4cG9ydCBlbnVtIFRleHR1cmVXcmFwIHtcclxuICBNaXJyb3JlZFJlcGVhdCA9IDMzNjQ4LCAvLyBXZWJHTFJlbmRlcmluZ0NvbnRleHQuTUlSUk9SRURfUkVQRUFUXHJcbiAgQ2xhbXBUb0VkZ2UgPSAzMzA3MSwgLy8gV2ViR0xSZW5kZXJpbmdDb250ZXh0LkNMQU1QX1RPX0VER0VcclxuICBSZXBlYXQgPSAxMDQ5NyAvLyBXZWJHTFJlbmRlcmluZ0NvbnRleHQuUkVQRUFUXHJcbn1cclxuZXhwb3J0IGNsYXNzIFRleHR1cmVSZWdpb24ge1xyXG4gIHJlbmRlck9iamVjdDogYW55O1xyXG4gIHUgPSAwO1xyXG4gIHYgPSAwO1xyXG4gIHUyID0gMDtcclxuICB2MiA9IDA7XHJcbiAgd2lkdGggPSAwO1xyXG4gIGhlaWdodCA9IDA7XHJcbiAgcm90YXRlID0gZmFsc2U7XHJcbiAgb2Zmc2V0WCA9IDA7XHJcbiAgb2Zmc2V0WSA9IDA7XHJcbiAgb3JpZ2luYWxXaWR0aCA9IDA7XHJcbiAgb3JpZ2luYWxIZWlnaHQgPSAwO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBGYWtlVGV4dHVyZSBleHRlbmRzIFRleHR1cmUge1xyXG4gIHNldEZpbHRlcnMobWluRmlsdGVyOiBUZXh0dXJlRmlsdGVyLCBtYWdGaWx0ZXI6IFRleHR1cmVGaWx0ZXIpIHt9XHJcbiAgc2V0V3JhcHModVdyYXA6IFRleHR1cmVXcmFwLCB2V3JhcDogVGV4dHVyZVdyYXApIHt9XHJcbiAgZGlzcG9zZSgpIHt9XHJcbn1cclxuIl19